@charset "UTF-8";
/*!
 * The Bronson adaptation for the Škoda Flow design
 * @version v14.1.0
 * @link https://bronson.vwfs.tools
 * @author Volkswagen Financial Services AG
 * @license LicenseRef-VWFS-Standard-License
 * Copyright ©2023 Volkswagen Financial Services AG. All rights reserved.
 */
/**
 * Skoda static spacing as defined in styleguide that do not fit
 * multi-brand XXSMALL to XXLARGE spacing scales.
 */
/**
 * Spacings are required settings for all brands (XXSMALL - XXLARGE).
 * - Required to have all scales available in all brands (multibrand & one-markup-approach).
 * - Used for generating of spacing utilities.
 */
/**
 * Flow elevation concept:
 * https://www.figma.com/file/6qOAnI1JSFb2CLT4E3xahQ/FLOW---Web-%2F-Styles?node-id=4762%3A0
 */
/**
 * [1] @TODO: Different disabled colors according to styleguide.
 *            Currently not consistent throughout styleguide, needs to be
 *            clarified with brand.
 */
/**
 * Flow elevation concept:
 * https://www.figma.com/file/6qOAnI1JSFb2CLT4E3xahQ/FLOW---Web-%2F-Styles?node-id=4762%3A0
 */
/**
 * @TODO:
 * - icon alignment?
 */
/**
 * Spacings are required settings for all brands (XXSMALL - XXLARGE).
 * - Required to have all scales available in all brands (multibrand & one-markup-approach).
 * - Used for generating of spacing utilities.
 */
/* ------------------------------------*\
    #FORMS
\*------------------------------------ */
/**
 * [1] Add spacing of 96px (not part of global spacing scale) according to styleguide:
 *     https://www.figma.com/file/6qOAnI1JSFb2CLT4E3xahQ/FLOW---Web-%2F-Styles?node-id=4083%3A0
 * [2] Add spacing of 12px (not part of global spacing scale) according to styleguide:
 *     https://www.figma.com/file/6qOAnI1JSFb2CLT4E3xahQ/FLOW---Web-%2F-Styles?node-id=4083%3A0
 */
/* stylelint-disable scss/media-feature-value-dollar-variable */
/* stylelint-enable scss/media-feature-value-dollar-variable */
/* stylelint-disable itcss/no-at-important */
/* stylelint-enable itcss/no-at-important */
/**
 * Get alignment for flexbox-based modules.
 * Remaps alignment (center, left, right) to flexbox values.
 */ /**
 * [1] `transparent` does not work in iOS.
 */
/**
 * [1] Only overwrite the bottom and top spacing if a specific
 *     `$spacing-between-modules` is defined and it is different from
 *     `$spacing-vertical`.
 * [2] Raise specificity to overwrite `:first-child` and `:last-child` selectors
 *     of spacing-container mixin.
 */
/**
 * [1] Reset default dot styles.
 *     By using `all` does not require to reset all the properties
 *     on dots. This saves code and increases maintainability.
 * [2] Prevent navigation by clicking on count.
 * [3] Reset dot spacings to remove reserved spacing.
 * [4] Inherit typographic styles after [1].
 */
/**
 * [1] Show English message as default for languages that do not have a dedicated translation.
 */
/* ------------------------------------*\
    #SCOPED STYLES
\*------------------------------------ */
/**
 * In order to encapsulate Bronson components from the regular styled parts of
 * Non-Bronson pages that use Bronson components, we must reset styles.
 *
 * `$GLOBAL-SCOPED` will be set by Gulp while the scoped styles are being
 * compiled. (see `gulp/tasks/styles.js` and `packages/bronson-default/styleguide/docs/20-how-to/use-bronson-scoped-styles.md`)
 */
/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */
/*
Document
========
*/
/**
Use a better box model (opinionated).
*/
*,
::before,
::after {
  box-sizing: border-box;
}

/**
Use a more readable tab size (opinionated).
*/
html {
  tab-size: 4;
}

/**
1. Correct the line height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
*/
html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/*
Sections
========
*/
/**
Remove the margin in all browsers.
*/
body {
  margin: 0;
}

/**
Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
*/
body {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
}

/*
Grouping content
================
*/
/**
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
*/
hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
}

/*
Text-level semantics
====================
*/
/**
Add the correct text decoration in Chrome, Edge, and Safari.
*/
abbr[title] {
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}

/**
Add the correct font weight in Edge and Safari.
*/
b,
strong {
  font-weight: bolder;
}

/**
1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
2. Correct the odd 'em' font sizing in all browsers.
*/
code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
Add the correct font size in all browsers.
*/
small {
  font-size: 80%;
}

/**
Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
*/
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
Tabular data
============
*/
/**
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
*/
table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
}

/*
Forms
=====
*/
/**
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
Remove the inheritance of text transform in Edge and Firefox.
1. Remove the inheritance of text transform in Firefox.
*/
button,
select { /* 1 */
  text-transform: none;
}

/**
Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

/**
Remove the inner border and padding in Firefox.
*/
::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
Restore the focus styles unset by the previous rule.
*/
:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
Remove the additional ':invalid' styles in Firefox.
See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737
*/
:-moz-ui-invalid {
  box-shadow: none;
}

/**
Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
*/
legend {
  padding: 0;
}

/**
Add the correct vertical alignment in Chrome and Firefox.
*/
progress {
  vertical-align: baseline;
}

/**
Correct the cursor style of increment and decrement buttons in Safari.
*/
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/**
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/
[type=search] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
Remove the inner padding in Chrome and Safari on macOS.
*/
::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to 'inherit' in Safari.
*/
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Interactive
===========
*/
/*
Add the correct display in Chrome and Safari.
*/
summary {
  display: list-item;
}

/* ------------------------------------*\
    #BOX-SIZING
\*------------------------------------ */
/**
 * More sensible default box-sizing:
 * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice
 * We are overriding modern-normalize's opinionated box-sizing rules.
 */
html {
  box-sizing: border-box;
}

*, *::before, *::after {
  box-sizing: inherit;
}

/* ------------------------------------*\
    #RESET
\*------------------------------------ */
/**
 * Besides using normalize.css, it is often advantageous to remove all margins
 * from certain elements.
 */
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
dl,
dd,
ol,
ul,
form,
fieldset,
legend,
figure,
table,
th,
td,
caption,
hr {
  margin: 0;
  padding: 0;
}

/**
 * Some browsers have weird default styles for the <fieldset> element.
 * E.g. Chrome has `min-width: -webkit-min-content;` as default style. We
 * definitely don't want that, so we explicitly set it to `auto` here.
 */
fieldset {
  min-width: auto;
}

/* ------------------------------------*\
    #SHARED
\*------------------------------------ */
/**
 * Where `margin-bottom` is concerned, this value will be the same as the
 * `$GLOBAL-LINE-HEIGHT`. This allows us to keep a consistent vertical rhythm.
 *
 * https://csswizardry.com/2012/06/single-direction-margin-declarations
 */
ul,
ol,
dl,
blockquote,
p,
address,
hr,
table,
pre {
  margin-bottom: 24px;
}

/* ------------------------------------*\
    #FONT-FACE
\*------------------------------------ */
@font-face {
  font-family: "skoda-next";
  src: url("../fonts/fonts/skoda-next-bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "skoda-next";
  src: url("../fonts/fonts/skoda-next-regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "skoda-next";
  src: url("../fonts/fonts/skoda-next-light.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "bronson-skoda";
  src: url("../fonts/icon-fonts/bronson-skoda.woff2?v=sAHwxreb0v1wF54HgOhNBGjxkWY=") format("woff2");
  font-weight: normal;
  font-style: normal;
  font-display: block;
}
/* ------------------------------------*\
    #FORMS
\*------------------------------------ */
/**
 * [1] Remove user agent border style.
 * [2] Remove native search styles as they can not be customized and
 *     visually conflicts with the rest of inputs.
 */
fieldset {
  border: 0; /* [1] */
}

input[type=search]::-webkit-search-decoration,
input[type=search]::-webkit-search-cancel-button,
input[type=search]::-webkit-search-results-button,
input[type=search]::-webkit-search-results-decoration {
  display: none; /* [2] */
}

/* ------------------------------------*\
    #IMAGES
\*------------------------------------ */
/**
 * All our images are fluid, thus all getting `max-width: 100%`.
 * Never ever set `width` and `height` attributes in HTML on `<img>` elements!
 *
 * [1] Fluid images for responsive purposes.
 * [2] Setting `vertical-align` removes the whitespace that appears under `img`
 *     elements when they are dropped into a page as-is. This is a afer
 *     alternative to using `display: block;` for the `<img>`.
 * [3] Visually offset `alt` text from surrounding copy (useful if the image may
 *     not load properly).
 */
img {
  max-width: 100%; /* [1] */
  font-style: italic; /* [3] */
  vertical-align: middle; /* [2] */
}

/* ------------------------------------*\
    #LISTS
\*------------------------------------ */
/**
 * [1] Align the bullets/numbers of lists horizontally with sourrounding content.
 * [2] Remove extra vertical spacing when nesting lists.
 */
ul, ol {
  margin-left: 24px; /* [1] */
}

li > ul,
li > ol {
  margin-bottom: 0; /* [2] */
}

/* ------------------------------------*\
    #SMALL
\*------------------------------------ */
/**
 * Smallprint text.
 */
small {
  font-size: 0.75rem;
}

/* ------------------------------------*\
    #DETAILS
\*------------------------------------ */
/**
 * [1] Set `box-sizing` specifically for `<details>`
 *     incl. child- and pseudo-elements as the elements "resets"
 *     the inheritance/cascade for `box-sizing`.
 *     https://stackoverflow.com/questions/75347448/box-sizing-not-inherited-through-details-element/75349350#75349350
 */
details, details::before, details::after,
details > *,
details > *::before,
details > *::after {
  box-sizing: border-box; /* [1] */
}

/* ------------------------------------*\
    #HEADINGS
\*------------------------------------ */
/**
 * Headings 1–6.
 *
 * Only font-sizes are assigned for `<h1>` – `<h6>` elements.
 * Any additional cosmetic styles are bound to an extra class and never
 * directly to a heading element!
 *
 * The individual font-sizes are defined in `01-settings/_font-sizes.scss`.
 */
h1 {
  font-size: 2.0625rem;
  line-height: 1.2;
}
@media (min-width: 721px) {
  h1 {
    font-size: 2.375rem;
    line-height: 1.2;
  }
}
@media (min-width: 1281px) {
  h1 {
    font-size: 2.75rem;
    line-height: 1.2;
  }
}

h2 {
  font-size: 1.75rem;
  line-height: 1.2;
}
@media (min-width: 721px) {
  h2 {
    font-size: 2rem;
    line-height: 1.2;
  }
}
@media (min-width: 1281px) {
  h2 {
    font-size: 2.25rem;
    line-height: 1.2;
  }
}

h3 {
  font-size: 1.4375rem;
  line-height: 1.2;
}
@media (min-width: 721px) {
  h3 {
    font-size: 1.6875rem;
    line-height: 1.2;
  }
}
@media (min-width: 1281px) {
  h3 {
    font-size: 1.875rem;
    line-height: 1.2;
  }
}

h4 {
  font-size: 1.25rem;
  line-height: 1.2;
}
@media (min-width: 721px) {
  h4 {
    font-size: 1.4375rem;
    line-height: 1.2;
  }
}
@media (min-width: 1281px) {
  h4 {
    font-size: 1.5rem;
    line-height: 1.2;
  }
}

h5 {
  font-size: 1.25rem;
  line-height: 1.2;
}
@media (min-width: 721px) {
  h5 {
    font-size: 1.4375rem;
    line-height: 1.2;
  }
}
@media (min-width: 1281px) {
  h5 {
    font-size: 1.5rem;
    line-height: 1.2;
  }
}

h6 {
  font-size: 1rem;
  line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-bottom: 24px;
  font-weight: 700;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=brand] h1,
[data-theme=brand] h2,
[data-theme=brand] h3,
[data-theme=brand] h4,
[data-theme=brand] h5,
[data-theme=brand] h6 {
  color: #ffffff;
}

/* ------------------------------------*\
    #PAGE
\*------------------------------------ */
/**
 * High-, page-level styling.
 *
 * [1] Ensure the page always fills at least the entire height of the viewport.
 * [2] Force scrollbars to always be visible to prevent awkward ‘jumps’ when
 *     navigating between pages that do/do not have enough content to produce
 *     scrollbars naturally.
 * [3] Set the default `font-size` and `line-height` for the entire project,
 *     sourced from our base variables. The `font-size` is calculated to exist
 *     in ems, the `line-height` is calculated to exist unitlessly.
 *     navigating between pages that do/do not have enough content to produce
 *     scrollbars naturally.
 * [4] Assign our base `font-family` for the whole site.
 *     We have to inherit `font-family` on `body` to override modern-normalize’s default
 *     system `font-family`. See https://github.com/sindresorhus/modern-normalize/issues/3
 * [5] Set our sites background color globally.
 * [6] Set our base text color globally.
 * [7] Progressively enhanced smooth scrolling.
 *     See https://developer.mozilla.org/de/docs/Web/CSS/scroll-behavior
 * [8] If the user prefers reduced motion, set transition duration to `0`.
 *     The CSS custom property is being used by `02-tools/_tools.transition.scss`.
 * [9] If the user prefers reduced motion, disable smooth scrolling animations.
 */
html {
  min-height: 100%; /* [1] */
  overflow-y: initial; /* [2] */
  font-family: "skoda-next", Arial, sans-serif; /* [4] */
  font-weight: 300;
  background-color: #ffffff; /* [5] */
  color: #161718; /* [6] */
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  scroll-behavior: smooth; /* [7] */
  font-size: 1em; /* [3] */
  line-height: 1.5; /* [3] */
  /* stylelint-disable-next-line scss/media-feature-value-dollar-variable */
}
@media screen and (prefers-reduced-motion: reduce), (update: slow) {
  html {
    --transition-duration-reduced-motion: 0;
    scroll-behavior: auto;
  }
}

/**
 * Assign the base font-size to the page. The `responsive-font-size` mixin has
 * to be assigned to the body element to work properly for all elements that get
 * their font-size via the `font-size` mixin.
 */
body {
  font-size: 1rem;
  font-family: inherit; /* [4] */
}

/* ------------------------------------*\
    #DEFINITION LIST
\*------------------------------------ */
/**
 * @DEPRECATED: The use of `dl` for specific styling is deprecated.
 *              Use the Description List component instead.
 */
dt {
  font-size: 1rem;
  font-weight: 300;
  color: #161718;
}

dd {
  font-size: 1rem;
  margin-bottom: 16px;
  font-weight: 700;
  color: #161718;
}
dd:last-child {
  margin-bottom: 0;
}

/* ------------------------------------*\
    #ELEMENTS
\*------------------------------------ */
button {
  cursor: pointer;
}

/* ------------------------------------*\
    #LABEL
\*------------------------------------ */
/**
 * Native <label> HTML element.
 */
label {
  display: inline-block;
  margin-bottom: 8px;
  color: #161718;
}

/* ------------------------------------*\
    #LISTS
\*------------------------------------ */
/* stylelint-disable selector-max-combinators, selector-max-compound-selectors, selector-max-type */
/**
 * [1] Second level lists have a smaller spacing on top and
 *     a normal one at the bottom.
 * [2] Third level lists have a smaller spacing on top and
 *     at the bottom.
 * [3] Offset by one character to align container with 2 digit index
 *     and prevent cut-off.
 *     This depends on the font, font-size and global-spacing, so a flag is used
 *     to selectively set it per brand.
 */
ul li,
ol li {
  margin-bottom: 0;
}
ul li > ul,
ul li > ol,
ol li > ul,
ol li > ol {
  margin-top: 8px; /* [1] */
  margin-bottom: 0; /* [1] */
}
ul li > ul li,
ul li > ol li,
ol li > ul li,
ol li > ol li {
  margin-bottom: 0;
}
ul li > ul li > ul,
ul li > ol li > ul,
ol li > ul li > ul,
ol li > ol li > ul {
  margin-bottom: 8px; /* [2] */
}

/* stylelint-enable */
/* ------------------------------------*\
    #HR
\*------------------------------------ */
hr {
  display: block;
  width: 100%;
  height: 1px;
  margin-right: auto;
  margin-bottom: 16px;
  margin-left: auto;
  border: 0;
  background-color: #e4e4e4;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=alternative] hr {
  background-color: #161718;
}

/* ------------------------------------*\
    #ANCHOR
\*------------------------------------ */
/**
 * [1] Exclude `.c-btn` because buttons should always have the same behavior in
 *     all states regardless of the element. `where()`is used to not increase
 *     the specificity.
 */
a:where(:not(.c-btn)) { /* [1] */
  text-decoration: underline;
  color: inherit;
  cursor: pointer;
  /* [2] */
}
a:where(:not(.c-btn)):hover {
  /* [2] */
}
a:where(:not(.c-btn)):focus {
  /* [2] */
}
a:where(:not(.c-btn)):active {
  /* [2] */
}

/* ------------------------------------*\
    #STRONG (`<b>`, `<strong>`)
\*------------------------------------ */
/**
 * [1] Set/Overwrite weight that is set by `normalize.css`
 */
b,
strong {
  font-weight: 700; /* [1] */
}

/* ------------------------------------*\
    #ELEMENTS
\*------------------------------------ */
button {
  font-weight: 300;
}

/**
 * Spacings derive from spacing template in styleguide.
 * https://www.figma.com/file/8ct8rVAKCJyZmDmpjJuVlv/FLOW---Web-%2F-UI-1.0.0?node-id=19673%3A41974
 */
/* ------------------------------------*\
    #INLINE-GROUP
\*------------------------------------ */
/**
 * An object that arranges items with defined horizontal and
 * vertical spacing in a row. If the items do not fit into one row,
 * they will wrap to the next row.
 */
/**
 * [1] We use `display: flex` instead of `display: inline-block`
 *     to avoid unnecessary white space between items.
 * [2] Set spacing between items via `column-gap` and `row-gap` for flexbox.
 * [3] Defensively reset any child element’s margins.
 * [4] For browsers that do not support `gap` for flexbox (https://caniuse.com/flexbox-gap),
 *     create horizontal and vertical spacing between items by adding margins
 *     around all sides of the items and compensate this by adding negative
 *     margins to the container. This could result in overflow issues if
 *     `.o-inline-group`’s parent container has `overflow: hidden` or
 *     `overscroll: scroll`.
 * [5] Stretch items to fill the container.
 * [6] Align items to the bottom.
 * [7] Center items vertically.
 */
.o-inline-group {
  display: flex; /* [1] */
  flex-wrap: wrap; /* [1] */
  column-gap: 32px; /* [2] */
  row-gap: 24px; /* [2] */
}

.o-inline-group--small {
  column-gap: 24px; /* [2] */
  row-gap: 16px; /* [2] */
}

.o-inline-group__item > * {
  margin: 0; /* [3] */
}

.o-inline-group--stretch .o-inline-group__item {
  flex-grow: 1; /* [5] */
}

.o-inline-group--bottom {
  align-items: flex-end; /* [6] */
}

.o-inline-group--center {
  align-items: center; /* [7] */
}

/* ------------------------------------*\
    #LAYOUT
\*------------------------------------ */
/**
 * The layout system uses `display: inline-block` to create an extremely
 * powerful, flexible alternative to the traditional grid system. Combine the
 * layout items with the widths-classes found in
 * `10-utilities/_utilities.widths.scss`.
 *
 * [1a] These properties accept a responsive map (responsive-property).
 */
/* [1a] */
/* [1a] */
/**
 * [1] Allows us to use the layout object on any type of element.
 * [2] We need to defensively reset any box-model properties.
 * [3] Use the negative margin trick for multi-row grids:
 *     https://csswizardry.com/2011/08/building-better-grid-systems/
 * [4] Workaround for the HTML-comments trick to remove any whitespace between
 *     items in the markup.
 * [4a] Redefine a font-size to compensate [4].
 * [5] Required in order to combine fluid widths with fixed gutters.
 * [6] Allows us to manipulate grids vertically, with text-level properties, etc.
 * [7] Default item alignment is top.
 * [8] By default, all layout items are full-width.
 * [9] Gutters provided by left padding:
 *     https://csswizardry.com/2011/08/building-better-grid-systems/
 * [10] Define a default vertical spacing between layout items. Use `margin-top`
 *      instead of `margin-bottom`, so if a `margin-bottom` is set on the
 *      `.o-layout` container, the margins do not collapse.
 * [11] If we use `.o-layout--flush`, we do not not want vertical spacing, too.
 * [12] When the equal-height and the center variants are combined,
 *      `text-align: center` isn't enough to center the items.
 * [13] Use alignment via flexbox when both equal-height and right modifiers
 *      are used.
 * [14] Use Flexbox to adjust adjacent items to the same height.
 * [15] Hide vertical and horizontal dividers outside of `.o-layout`.
 * [16] Use vertical divider spacing between items.
 * [17] Equalize the bottom margin of `.o-layout`.
 *      Specificity has to be increased by prefix the selector with `:root:root`
 *      to overrule overly specific rules of other components.
 * [18] Use horizontal divider spacing between items.
 * [19] Remove bottom margin of last layout item child.
 * [20] Add shared declarations for vertical and horizontal dividers.
 * [21] Use `::before` for vertical dividers.
 * [22] Position vertical dividers.
 * [23] Center vertical dividers if divider width is an odd value (1, 3, 5, …).
 *      The divider position will be adjusted to the nearest full pixel
 *      in order to avoid half pixel values and anti-aliasing
 *      (depending on the screen resolution).
 * [24] Center vertical dividers if divider width is an even value (2, 4, 6, …).
 * [25] Use `::after` for horizontal dividers.
 * [26] Position horizontal dividers.
 * [27] Center horizontal dividers if divider width is an odd value (1, 3, 5, …).
 *      The divider position will be adjusted to the nearest full pixel
 *      in order to avoid half pixel values and anti-aliasing
 *      (depending on the screen resolution).
 * [28] Center horizontal dividers if divider width is an even value (2, 4, 6, …).
 * [29] On equal-height layouts the flex-item child elements are not taking up the
 *      entire width due to the `display: flex` on the flex-items.
 *      To fix this we have to make them grow as wide as their flex-item parent.
 * [30] The compensation for vertical gaps from [10] can result in overlapping
 *      elements above the layout-object, resulting in blocked interaction
 *      (click, text-selection, etc.). Disable interaction via `pointer-events`
 *      on layout and...
 * [31] ...Restore interaction on content.
 * [32] Prevent too wide content in equal height layout items from affecting the
 *      maximum width of its layout item container.
 * [33] Set vertical offset for the divider line.
 */
.o-layout {
  display: block; /* [1] */
  margin: 0; /* [2] */
  padding: 0; /* [2] */
  font-size: 0; /* [4] */
  text-align: left;
  list-style: none; /* [1] */
  pointer-events: none; /* [30] */
  /* stylelint-disable order/order */
  margin-top: -24px;
  /* [10] */
  margin-left: -24px;
  /* [3] */
  /* stylelint-enable order/order */
}
.o-layout > .o-layout__item {
  margin-top: 24px;
  /* [10] */
}
.o-layout.o-layout--equal-height {
  display: flex;
  flex-wrap: wrap;
}
.o-layout.o-layout--equal-height.o-layout--right {
  justify-content: flex-end; /* [13] */
}

.o-layout__item {
  font-size: 1rem;
  /* [4a] */
  padding-left: 24px;
  /* [9] */
  box-sizing: border-box; /* [5] */
  display: inline-block; /* [6] */
  width: 100%; /* [8] */
  vertical-align: top; /* [7] */
  pointer-events: auto; /* [31] */
}
.o-layout--middle > .o-layout__item {
  vertical-align: middle;
}
.o-layout--equal-height > .o-layout__item {
  display: flex;
}
.o-layout--equal-height > .o-layout__item > * {
  flex-grow: 1; /* [29] */
  flex-shrink: 1;
  flex-basis: auto;
  max-width: 100%; /* [32] */
}

/**
 * Layout modifier to fill up the layout system from the center.
 */
.o-layout--center {
  text-align: center;
}
.o-layout--center.o-layout--equal-height {
  justify-content: center; /* [12] */
}
.o-layout--center > .o-layout__item {
  text-align: left;
}

/**
 * Layout modifier to fill up the layout system from the right hand side.
 */
.o-layout--right {
  text-align: right;
}
.o-layout--right > .o-layout__item {
  text-align: left;
}

/**
 * Layout modifier to eliminate the spacing between the layout items.
 */
.o-layout--flush {
  margin-left: 0;
  margin-top: 0; /* [11] */
}
.o-layout--flush > .o-layout__item {
  padding-left: 0;
  margin-top: 0; /* [11] */
}

/**
 * Layout modifier to add horizontal and vertical divider lines
 * between layout items.
 */
.o-layout--divider {
  display: flex; /* [14] */
  flex-wrap: wrap; /* [14] */
  overflow: hidden; /* [15] */
  margin-top: -16px; /* [16] */
  margin-left: -32px; /* [18] */
}
.o-layout--divider.o-layout--divider.o-layout--divider {
  margin-bottom: -16px; /* [17] */
}
.o-layout--divider > .o-layout__item {
  position: relative;
  margin-top: 16px; /* [16] */
  padding-left: 32px; /* [18] */
  padding-bottom: 16px; /* [16] */
}
.o-layout--divider > .o-layout__item > *:last-child {
  margin-bottom: 0; /* [19] */
}
.o-layout--divider > .o-layout__item::before, .o-layout--divider > .o-layout__item::after {
  content: ""; /* [20] */
  position: absolute; /* [20] */
  border-width: 1px; /* [20] */
  border-color: #e4e4e4; /* [20] */
}
.o-layout--divider > .o-layout__item::before { /* [21] */
  top: -16px; /* [22] */
  left: 32px; /* [22] */
  right: 0; /* [22] */
  border-top-style: solid;
  transform: translateY(-0.5px); /* [24] */
  margin-top: -1px; /* [33] */
}
.o-layout--divider > .o-layout__item::after { /* [25] */
  top: 0; /* [26] */
  bottom: 16px; /* [26] */
  right: -16px; /* [26] */
  border-left-style: solid;
  transform: translateX(0.5px); /* [28] */
}

/* ------------------------------------*\
    #LIST-BARE
\*------------------------------------ */
/**
 * The list-bare object simply removes any indents and bullet points from lists.
 *
 * If you don't want to use the class, there is also a mixin available.
 * (`02-tools/_tools.list-bare.scss`)
 */
.o-list-bare {
  margin: 0;
  padding: 0;
  list-style: none;
}
.o-list-bare li {
  display: block;
  margin-bottom: 0;
}

/* ------------------------------------*\
    #LIST-CASUAL
\*------------------------------------ */
/**
 * List whose items have more space between them to make the whole list look a
 * bit more spacey.
 */
.o-list-casual li {
  margin-bottom: 12px;
}

/* ------------------------------------*\
    #LIST-INLINE
\*------------------------------------ */
/**
 * The list-inline object simply removes any indents and bullet points from
 * lists and puts them in a horizontal order.
 * [1] Set an approximately spacing matching the one whitespace character
 *     of the current list.
 */
.o-list-inline {
  display: inline-flex;
  flex-wrap: wrap;
  column-gap: 0.25em; /* [1] */
  margin: 0;
  padding: 0;
  list-style: none;
}
.o-list-inline > li {
  margin-bottom: 0;
}

/* ------------------------------------*\
    #MEDIA
\*------------------------------------ */
/**
 * An adaption of the famous media object.
 * (http://www.stubbornella.org/content/2010/06/25/the-media-object-saves-hundreds-of-lines-of-code/)
 *
 * We rewrite the original one with `display: flex` to be more flexible.
 */
/**
 * [1] Make sure the media body takes up all the available space it needs if
 *     its content is not that long.
 * [2] Fix to make text truncate possible inside of media body (needed for the
 *     contact list).
 */
.o-media {
  display: flex;
  flex-direction: row;
  /**
   * Stack the image on top of the media content on small screen.
   */
}
.o-media.o-media--reversed {
  flex-direction: row-reverse;
}
@media (max-width: 720px) {
  .o-media.o-media--column\@s {
    flex-direction: column;
  }
}
@media (max-width: 720px) {
  .o-media.o-media--column-reverse\@s {
    flex-direction: column-reverse;
  }
}

.o-media__img {
  flex-grow: 0;
  flex-shrink: 0;
  align-self: flex-start;
  margin-right: 24px;
}
.o-media--small .o-media__img {
  margin-right: 16px;
}
.o-media--large .o-media__img {
  margin-right: 32px;
}
.o-media--xlarge .o-media__img {
  margin-right: 48px;
}
.o-media--reversed .o-media__img {
  margin-right: 0;
  margin-left: 24px;
}
.o-media--reversed.o-media--small .o-media__img {
  margin-left: 16px;
}
.o-media--reversed.o-media--large .o-media__img {
  margin-left: 32px;
}
.o-media--reversed.o-media--xlarge .o-media__img {
  margin-left: 48px;
}
.o-media--middle .o-media__img {
  align-self: center;
}
.o-media--bottom .o-media__img {
  align-self: flex-end;
}
@media (max-width: 720px) {
  .o-media--column\@s .o-media__img {
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 24px;
  }
}
@media (max-width: 720px) {
  .o-media--column-reverse\@s .o-media__img {
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 0;
    margin-top: 24px;
  }
}
@media (max-width: 720px) {
  .o-media--reversed.o-media--column\@s .o-media__img {
    margin-left: auto;
    margin-right: auto;
  }
}
@media (max-width: 720px) {
  .o-media--reversed.o-media--column-reverse\@s .o-media__img {
    margin-left: auto;
    margin-right: auto;
  }
}

.o-media__body {
  flex-grow: 1; /* [1] */
  flex-shrink: 1;
  flex-basis: auto;
  min-width: 0; /* [2] */
}
.o-media__body > *:last-child {
  margin-bottom: 0;
}
.o-media--middle .o-media__body {
  align-self: center;
}
.o-media--bottom .o-media__body {
  align-self: flex-end;
}
@media (max-width: 720px) {
  .o-media--column-reverse\@s .o-media__body {
    margin-bottom: 24px;
  }
}

/* ------------------------------------*\
    #RATIO
\*------------------------------------ */
/**
 * With the Ratio object .o-ratio you can set fixed intrinsic aspect ratios for
 * certain elements (e.g. images, videos, iframes or embedded content) that will
 * be kept regardless of the content even when scaled.
 *
 * See http://alistapart.com/article/creating-intrinsic-ratios-for-video
 */
/**
 * 1. Create ratio-bound content block, to keep media (e.g. images, videos) in
 *    their correct aspect ratios.
 *    We only set a ratio if a `.o-ratio--` modifier class is set as well to
 *    avoid unwanted layout errors when no specific ratio was specified with the
 *    `.o-ratio--` modifier.
 * 2. The `.o-ratio` container will be used as a box with an intrinsic ratio by
 *    adding a `padding-bottom` with the `.o-ratio--` modifier class which sets
 *    the ratio.
 * 3. The child element will be positioned absolutely so that it covers the
 *    entire width and height of `.o-ratio`.
 */
.o-ratio[class*=o-ratio--] { /* [1] */
  position: relative; /* [2] */
  display: block; /* [2] */
}
.o-ratio[class*=o-ratio--]::before {
  content: ""; /* [2] */
  display: block; /* [2] */
  width: 100%; /* [2] */
}
.o-ratio[class*=o-ratio--] > .o-ratio__content,
.o-ratio[class*=o-ratio--] > iframe,
.o-ratio[class*=o-ratio--] > embed,
.o-ratio[class*=o-ratio--] > object {
  position: absolute; /* [3] */
  top: 0; /* [3] */
  bottom: 0; /* [3] */
  left: 0; /* [3] */
  right: 0; /* [3] */
  width: 100%; /* [3] */
  height: 100%; /* [3] */
}

/**
 * Ratio variants.
 * Generate a series of ratio classes to be used like so:
 *
 *   <div class="o-ratio  o-ratio--16:9">
 *
 */
.o-ratio--1\:1:before {
  padding-bottom: 100%; /* [2] */
}

.o-ratio--4\:3:before {
  padding-bottom: 75%; /* [2] */
}

.o-ratio--16\:9:before {
  padding-bottom: 56.25%; /* [2] */
}

/* ------------------------------------*\
    #PAGE-WRAP
\*------------------------------------ */
/**
 * [1] Add page wrap widths as CSS custom property so that it can be used in
 *     calculations (e.g. for the Float grid).
 * [2] Add variants, e.g. `.o-page-wrap--small`.
 */
:root {
  --page-wrap-width: 1248px; /* [1] */
}

.o-page-wrap {
  max-width: calc(1248px + 192px);
  padding-left: 96px;
  padding-right: 96px;
  --page-wrap: 96px;
  margin-right: auto;
  margin-left: auto;
  /* [2] */
}
@media (max-width: 960px) {
  .o-page-wrap {
    max-width: calc(1248px + 96px);
    padding-left: 48px;
    padding-right: 48px;
    --page-wrap: 48px;
  }
}
@media (max-width: 720px) {
  .o-page-wrap {
    max-width: calc(1248px + 48px);
    padding-left: 24px;
    padding-right: 24px;
    --page-wrap: 24px;
  }
}
@media (max-width: 480px) {
  .o-page-wrap {
    max-width: calc(1248px + 24px);
    padding-left: 12px;
    padding-right: 12px;
    --page-wrap: 12px;
  }
}
.o-page-wrap.o-page-wrap--medium {
  max-width: calc(1248px + 192px);
}
@media (max-width: 960px) {
  .o-page-wrap.o-page-wrap--medium {
    max-width: calc(1248px + 96px);
  }
}
@media (max-width: 720px) {
  .o-page-wrap.o-page-wrap--medium {
    max-width: calc(1248px + 48px);
  }
}
@media (max-width: 480px) {
  .o-page-wrap.o-page-wrap--medium {
    max-width: calc(1248px + 24px);
  }
}
.o-page-wrap.o-page-wrap--small {
  max-width: calc(1040px + 192px);
}
@media (max-width: 960px) {
  .o-page-wrap.o-page-wrap--small {
    max-width: calc(1040px + 96px);
  }
}
@media (max-width: 720px) {
  .o-page-wrap.o-page-wrap--small {
    max-width: calc(1040px + 48px);
  }
}
@media (max-width: 480px) {
  .o-page-wrap.o-page-wrap--small {
    max-width: calc(1040px + 24px);
  }
}
.o-page-wrap.o-page-wrap--xsmall {
  max-width: calc(832px + 192px);
}
@media (max-width: 960px) {
  .o-page-wrap.o-page-wrap--xsmall {
    max-width: calc(832px + 96px);
  }
}
@media (max-width: 720px) {
  .o-page-wrap.o-page-wrap--xsmall {
    max-width: calc(832px + 48px);
  }
}
@media (max-width: 480px) {
  .o-page-wrap.o-page-wrap--xsmall {
    max-width: calc(832px + 24px);
  }
}
.o-page-wrap.o-page-wrap--xxsmall {
  max-width: calc(624px + 192px);
}
@media (max-width: 960px) {
  .o-page-wrap.o-page-wrap--xxsmall {
    max-width: calc(624px + 96px);
  }
}
@media (max-width: 720px) {
  .o-page-wrap.o-page-wrap--xxsmall {
    max-width: calc(624px + 48px);
  }
}
@media (max-width: 480px) {
  .o-page-wrap.o-page-wrap--xxsmall {
    max-width: calc(624px + 24px);
  }
}

/* ------------------------------------*\
    #MAIN-CONTAINER
\*------------------------------------ */
/**
 * [1] Enable the footer to be positioned at the bottom of the viewport
 *     if the content is not as high as the remaining space.
*/
.o-root {
  display: flex; /* [1] */
  flex-direction: column; /* [1] */
  min-height: 100vh; /* [1] */
}

/* ------------------------------------*\
    #MAIN-WRAPPER
\*------------------------------------ */
/**
 * [1] Stretch the content of the main selector to push
 *     down the footer, when the content is too shallow.
*/
.o-main {
  flex-grow: 1; /* [1] */
  flex-shrink: 1; /* [1] */
  flex-basis: auto; /* [1] */
}

/* ------------------------------------*\
    #FIELDSET
\*------------------------------------ */
/**
 * Handle spacings between form elements in form sets.
 */
.o-fieldset:not(:last-child) {
  margin-bottom: 24px;
}

.o-fieldset__row:not(:last-child) {
  margin-bottom: 24px;
}

/* ------------------------------------*\
    #BUTTON-CONTAINER
\*------------------------------------ */
/**
 * [1] If it’s the only button, limit its width on larger viewports.
 * [2] Show last button (usually CTA) on top when buttons are stacked vertically.
 * [3] Combine positioning options for nav modifier based on defined alignment.
 *     This allows flexibility for brands with one-markup.
 * [4] Make sure that the buttons in a navigational context
 *     collapse to its content.
 * [5] Set a max-width for the nav buttons as we allow them
 *     to grow via its content. Allow full width buttons for small
 *     viewports as they are stacked on top each other but
 *     limit them on larger viewports.
 * [6] On larger viewports we allow the button to grow up to its half-width
 *     depending on the but assure also a min-width.
 * [7] Both reverse modifier share the same reversed flex direction.
 * [8] Apply `row-reverse` only for non-vertical directions and bigger viewports
 *     and reset the button spacings accordingly.
 * [9] Override the @extend for smaller viewports as the nav-variant always
 *      uses centered items.
 * [10] Pull the reversed items to the opposite side.
 * [11] Wrap if the items exceed the available space.
 * [12] Make the button at least as wide to fit the content inside the current available space.
 * [13] The stretch variant forces a full-width layout.
 */
.o-button-container {
  display: flex;
  flex-wrap: wrap; /* [11] */
  align-items: center;
  width: 100% !important;
  column-gap: 8px;
  row-gap: 16px;
}

.o-button-container--stretch { /* [13] */ }
.o-button-container--stretch .o-button-container__button {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: auto;
  width: 100%;
  max-width: initial;
}

.o-button-container--nowrap {
  flex-wrap: nowrap;
}

.o-button-container--wrap-reverse {
  flex-wrap: wrap-reverse;
}

.o-button-container--center, .o-button-container--nav {
  justify-content: center;
}

.o-button-container--left {
  justify-content: flex-start;
}

.o-button-container--right {
  justify-content: flex-end;
}

.o-button-container--nav { /* [3] */ /* stylelint-disable-line scss/at-extend-no-missing-placeholder */
}
@media (max-width: 720px) {
  .o-button-container--nav {
    flex-direction: column-reverse;
    align-items: center;
  }
  .o-button-container--nav .o-button-container__button {
    width: 100%;
  }
}
.o-button-container--nav .o-button-container__button {
  flex-grow: 0;
}
@media (min-width: 721px) {
  .o-button-container--nav .o-button-container__button {
    width: max-content; /* [4] */
    max-width: 50%; /* [5] */
  }
}

.o-button-container--reverse {
  flex-direction: row-reverse; /* [8] */
  /* stylelint-disable-next-line order/order */
}
.o-button-container--reverse.o-button-container--left .o-button-container__button:first-child {
  margin-right: auto; /* [10] */
}
.o-button-container--reverse.o-button-container--right .o-button-container__button:last-child {
  margin-left: auto; /* [10] */
}
@media (max-width: 720px) {
  .o-button-container--reverse.o-button-container--left\@s .o-button-container__button:first-child {
    margin-right: auto; /* [10] */
  }
  .o-button-container--reverse.o-button-container--right\@s .o-button-container__button:last-child {
    margin-left: auto; /* [10] */
  }
}

.o-button-container--vertical {
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  /* stylelint-disable-next-line order/order */
}
.o-button-container--vertical.o-button-container--left {
  align-items: flex-start;
}
.o-button-container--vertical.o-button-container--center, .o-button-container--vertical.o-button-container--nav {
  align-items: center;
}
.o-button-container--vertical.o-button-container--right {
  align-items: flex-end;
}
.o-button-container--vertical.o-button-container--reverse {
  flex-direction: column-reverse;
}
@media (max-width: 720px) {
  .o-button-container--vertical.o-button-container--left\@s {
    align-items: flex-start;
  }
  .o-button-container--vertical.o-button-container--center\@s {
    align-items: center;
  }
  .o-button-container--vertical.o-button-container--right\@s {
    align-items: flex-end;
  }
  .o-button-container--vertical.o-button-container--reverse\@s {
    flex-direction: column-reverse;
  }
}

@media (max-width: 720px) {
  .o-button-container--left\@s {
    justify-content: flex-start;
  }
}

@media (max-width: 720px) {
  .o-button-container--center\@s {
    justify-content: center;
  }
}

@media (max-width: 720px) {
  .o-button-container--right\@s {
    justify-content: flex-end;
  }
}

@media (max-width: 720px) {
  .o-button-container--vertical\@s {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
  }
  .o-button-container--vertical\@s.o-button-container--left, .o-button-container--vertical\@s.o-button-container--left\@s {
    align-items: flex-start;
  }
  .o-button-container--vertical\@s.o-button-container--center, .o-button-container--vertical\@s.o-button-container--nav, .o-button-container--vertical\@s.o-button-container--center\@s {
    align-items: center;
  }
  .o-button-container--vertical\@s.o-button-container--right, .o-button-container--vertical\@s.o-button-container--right\@s {
    align-items: flex-end;
  }
  .o-button-container--vertical\@s.o-button-container--reverse, .o-button-container--vertical\@s.o-button-container--reverse\@s {
    flex-direction: column-reverse;
  }
}

.o-button-container--reverse\@s { /* [7] */ }
@media (max-width: 720px) {
  .o-button-container--reverse\@s {
    flex-direction: row-reverse; /* [8] */
  }
  .o-button-container--reverse\@s.o-button-container--left .o-button-container__button:first-child, .o-button-container--reverse\@s.o-button-container--left\@s .o-button-container__button:first-child {
    margin-right: auto; /* [10] */
  }
  .o-button-container--reverse\@s.o-button-container--right .o-button-container__button:last-child, .o-button-container--reverse\@s.o-button-container--right\@s .o-button-container__button:last-child {
    margin-left: auto; /* [10] */
  }
}

@media (max-width: 720px) {
  .o-button-container--stretch\@s .o-button-container__button {
    width: max(100px, calc(100% - 8px)); /* [6] */
    max-width: initial;
  }
}

.o-button-container__button {
  flex-grow: 0;
  flex-shrink: 1;
  flex-basis: auto;
  width: max(100px, calc(50% - 4px)); /* [6] */
  max-width: 300px;
  min-width: -moz-fit-content;
  min-width: fit-content; /* [12] */ /* stylelint-disable-line */
}
@media (min-width: 721px) {
  .o-button-container__button:only-child {
    max-width: 50%; /* [1] */
  }
}

/* ------------------------------------*\
    #CONTENT-SECTION
\*------------------------------------ */
/**
 * An object wrapping the content of entire sections to ensure a consistent
 * spacing around the sections content.
 */
.o-content-section {
  padding-top: 32px;
  padding-bottom: 32px;
}

/* ------------------------------------*\
    #COMPONENT-WRAPPER
\*------------------------------------ */
/**
 * The component-wrapper is an object that needs to be the container of every
 * component, which sits directly in a content section. It makes sure that the
 * spacing between the components is always correct.
 */
.o-component-wrapper:not(:last-child) {
  margin-bottom: 32px;
}

/* ------------------------------------*\
   #FLOAT-GRID
\*------------------------------------ */
/**
 * [1] Consider responsive page wrap paddings when calculating grid template
 *     columns.
 * [2] Define named grid areas (Unfortunately it is not possible with Sass to
 *     define this as a multiline variable).
 * [3] Calculate grid template columns.
 * [4] Set grid template rows.
 * [5] Disable Float Grid pointer events to allow click through the grid.
 * [6] Position items in grid areas as flex items.
 * [7] Generate CSS custom property `--float-grid-areas` that will be used by
 *     JavaScript to build the Float Grid areas’ markup.
 * [8] Generate `data-float-grid-area` CSS rules for each area.
 * [9] Enable pointer events for items in Float Grid areas.
 * [10] Change the minimum Float Grid area size from `max-content` to `0` in
 *      smaller viewports to allow the overlapping of Float Grid area content
 *      with other areas. This is a compromise to give items enough space
 *      (e.g. the Incognito Action Buttons).
 * [11] The item offset is being used to push an item out of a Float Grid area
 *      if enough space is available. `100%` is equal to the item width.
 * [12] Set the direction of the item offset by setting a custom property that
 *      will be used later in the offset calculation. Negative values will push
 *      the item to the left, positive values will push it to the right.
 * [13] Add each Float Grid area selector to the selector list with the calculation.
 *      We are using `@extend' instead of a mixin to avoid duplicating the
 *      complex `transform` property for each area.
 * [14] Calculate the transform property to move items out of Float Grid areas.
 *      Check inline comments for details.
 */
.o-float-grid {
  --page-wrap-padding-horizontal: 0; /* [1] */
  --float-grid-column-min-size: max-content;
  --float-grid-row-min-size: var(--float-grid-column-min-size);
  --float-grid-column-gap: var(--page-wrap-padding-horizontal); /* [1] */
  --float-grid-row-gap: 16px;
  --float-grid-item-gap: 16px;
  position: fixed;
  z-index: 2050;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  display: grid;
  grid-template-areas: "t   t   t   t   t" ".   tl  tc  tr  ." ".   cl  cc  cr  ." ".   bl  bc  br  ." "b   b   b   b   b"; /* [2] */
  grid-template-columns: calc((100% - 1248px) / 2 - var(--page-wrap-padding-horizontal)) repeat(3, minmax(var(--float-grid-column-min-size), 1fr)) calc((100% - 1248px) / 2 - var(--page-wrap-padding-horizontal)); /* [1] [3] */
  grid-template-rows: auto repeat(3, minmax(var(--float-grid-row-min-size), 1fr)) auto; /* [4] */
  column-gap: var(--float-grid-column-gap); /* [1] */
  row-gap: var(--float-grid-row-gap);
  pointer-events: none; /* [5] */
  --page-wrap-padding-horizontal: 96px;
  /* [1] */
}
@media (max-width: 960px) {
  .o-float-grid {
    --page-wrap-padding-horizontal: 48px;
  }
}
@media (max-width: 720px) {
  .o-float-grid {
    --page-wrap-padding-horizontal: 24px;
  }
}
@media (max-width: 480px) {
  .o-float-grid {
    --page-wrap-padding-horizontal: 12px;
  }
}
@media (max-width: 719px) {
  .o-float-grid {
    --float-grid-column-min-size: 0; /* [10] */
  }
}

.o-float-grid__area {
  --grid-area-item-offset: 100%; /* [11] */
  display: flex; /* [6] */
  gap: var(--float-grid-item-gap);
  flex-direction: column;
  padding-top: var(--float-grid-area-padding-vertical);
  padding-right: var(--float-grid-area-padding-horizontal);
  padding-bottom: var(--float-grid-area-padding-vertical);
  padding-left: var(--float-grid-area-padding-horizontal);
}

/* [7] */ /* stylelint-disable-line scss/dollar-variable-default */
/* [7] */
[data-float-grid-area=top] { -ms-grid-row: 1; -ms-grid-column: 1; -ms-grid-column-span: 9; /* [8] */
  grid-area: t;
}

/* [7] */
[data-float-grid-area=bottom] { -ms-grid-row: 9; -ms-grid-column: 1; -ms-grid-column-span: 9; /* [8] */
  grid-area: b;
}

/* [7] */
[data-float-grid-area=top-left] { -ms-grid-row: 3; -ms-grid-column: 3; /* [8] */
  --float-grid-area-padding-horizontal: 16px;
  grid-area: tl;
  justify-content: start;
  align-items: start;
  --grid-area-offset-direction: -1; /* [12] */
}
[data-float-grid-area=top-left] > * {
  /* [13] */
}

/* [7] */
[data-float-grid-area=top-center] { -ms-grid-row: 3; -ms-grid-column: 5; /* [8] */
  --float-grid-area-padding-horizontal: 16px;
  grid-area: tc;
  flex-direction: row;
  justify-content: center;
  align-items: flex-start;
}

/* [7] */
[data-float-grid-area=top-right] { -ms-grid-row: 3; -ms-grid-column: 7; /* [8] */
  --float-grid-area-padding-horizontal: 16px;
  grid-area: tr;
  justify-content: flex-start;
  align-items: flex-end;
  --grid-area-offset-direction: 1; /* [12] */
}
[data-float-grid-area=top-right] > * {
  /* [13] */
}

/* [7] */
[data-float-grid-area=center-left] { -ms-grid-row: 5; -ms-grid-column: 3; /* [8] */
  --float-grid-area-padding-horizontal: 16px;
  grid-area: cl;
  justify-content: center;
  align-items: flex-start;
  --grid-area-offset-direction: -1; /* [12] */
}
[data-float-grid-area=center-left] > * {
  /* [13] */
}

/* [7] */
[data-float-grid-area=center-center] { -ms-grid-row: 5; -ms-grid-column: 5; /* [8] */
  --float-grid-area-padding-horizontal: 16px;
  grid-area: cc;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

/* [7] */
[data-float-grid-area=center-right] { -ms-grid-row: 5; -ms-grid-column: 7; /* [8] */
  --float-grid-area-padding-horizontal: 16px;
  grid-area: cr;
  justify-content: center;
  align-items: flex-end;
  --grid-area-offset-direction: 1; /* [12] */
}
[data-float-grid-area=center-right] > * {
  /* [13] */
}

/* [7] */
[data-float-grid-area=bottom-left] { -ms-grid-row: 7; -ms-grid-column: 3; /* [8] */
  --float-grid-area-padding-horizontal: 16px;
  grid-area: bl;
  justify-content: flex-end;
  align-items: flex-start;
  --grid-area-offset-direction: -1; /* [12] */
}
[data-float-grid-area=bottom-left] > * {
  /* [13] */
}

/* [7] */
[data-float-grid-area=bottom-center] { -ms-grid-row: 7; -ms-grid-column: 5; /* [8] */
  --float-grid-area-padding-horizontal: 16px;
  grid-area: bc;
  flex-direction: row;
  justify-content: center;
  align-items: flex-end;
}

/* [7] */
[data-float-grid-area=bottom-right] { -ms-grid-row: 7; -ms-grid-column: 7; /* [8] */
  --float-grid-area-padding-horizontal: 16px;
  grid-area: br;
  justify-content: flex-end;
  align-items: flex-end;
  --grid-area-offset-direction: 1; /* [12] */
}
[data-float-grid-area=bottom-right] > * {
  /* [13] */
}

/* stylelint-disable */
.c-action-buttons-container__item,
.c-action-buttons-container__toggle, .js-enable-3rd-party-float-grid #mercury-widget .teaser,
.js-enable-3rd-party-float-grid #mercury-widget .toggle-button, [data-float-grid-area=top-left] > *, [data-float-grid-area=top-right] > *, [data-float-grid-area=center-left] > *, [data-float-grid-area=center-right] > *, [data-float-grid-area=bottom-left] > *, [data-float-grid-area=bottom-right] > * {
  transform: translateX(calc(min(max((100vw - var(--page-wrap-width)) / 2, 0px), var(--grid-area-item-offset) + var(--float-grid-area-padding-horizontal) * 2) * var(--grid-area-offset-direction)));
}

:root {
  --float-grid-areas: top bottom top-left top-center top-right center-left center-center center-right bottom-left bottom-center bottom-right; /* [7] */
}

#float-grid .o-float-grid__area > * {
  pointer-events: auto; /* [9] */
}

/* stylelint-enable */
/* ------------------------------------*\
    #FLICKITY
\*------------------------------------ */
/**
 * Flickity v2.0.10
 * (https://flickity.metafizzy.co)
 */
/**
 * [1] Reset default list styles.
 * [2] Horizontally center page-dots.
 * [3] Hide default Flickity icon.
 * [4] Remove focus outline styles for the fullscreen button.
 * [5] Hide Flickity’s injected SVG icon.
 * [6] Hide the reveal button when presenting in fullscreen.
 * [7] Set minimal pointer size for the dots.
 * [8] Make space for the dots in the fullscreen mode.
 * [9] Height is set to 0 before being overwritten by min-height to vertically center
 *     the dots in IE11. Otherwise align-items: center would not work in IE11.
 * [10] When the number of dots exceeds the limit, the dots turn into a counter.
 *      CSS generated content shows `x / y`.
 *      - `counter-increment` is used for numbering
 *      - `::before` pseudo element on the current item is used for the counter
 *      - `::after` pseudo element on the last item is used for the denominator
 *         including a seperator (`/`).
 * [11] Force the slider items to take up all horizontal space.
 * [12] Show controls only when slider has slideable items (> 1).
 * [13] Transform the dots (e.g. `scale(1.5)`).
 * [14] Ensure horizontal and vertical centering.
 * [15] Spacing for controls (buttons, dots).
 */
.flickity-enabled {
  position: relative;
  display: flex; /* [8] */
  flex-direction: row; /* [8] */
  flex-wrap: wrap; /* [8] */
  justify-content: center; /* [9] */
  align-items: center;
  row-gap: 16px; /* [15] */
  column-gap: 16px; /* [15] */
  padding-right: 0;
  padding-left: 0;
  /**
   * Draggable.
   */
  /**
   * Fullscreen.
   */
}
.flickity-enabled:focus {
  outline: none;
}
.flickity-enabled.is-draggable {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-user-select: none;
  user-select: none;
  /* stylelint-disable selector-max-class */
  /* stylelint-enable */
}
.flickity-enabled.is-draggable .flickity-viewport {
  cursor: grab;
}
.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down {
  cursor: grabbing;
}
.flickity-enabled.is-fullscreen {
  position: fixed;
  z-index: 4500;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding-bottom: 44px; /* [8] */
  background-color: #ffffff;
}
.flickity-enabled.is-fullscreen .flickity-fullscreen-button-exit {
  display: block;
}
.flickity-enabled.is-fullscreen .flickity-fullscreen-button-exit::before {
  content: "\f17b";
}
.flickity-enabled.is-fullscreen .flickity-fullscreen-button-view {
  display: none; /* [6] */
}
.flickity-enabled .flickity-fullscreen-button {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  position: absolute;
  top: auto;
  right: 16px;
  bottom: 16px;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 50px;
  background-color: #ffffff;
}
.flickity-enabled .flickity-fullscreen-button::before {
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.5rem;
  line-height: 1;
  content: "\f178";
  display: flex;
  align-items: center;
  justify-content: center;
  color: #161718;
  cursor: pointer;
}
.flickity-enabled .flickity-fullscreen-button:hover, .flickity-enabled .flickity-fullscreen-button:focus {
  background-color: rgba(22, 23, 24, 0.06);
}
.flickity-enabled .flickity-fullscreen-button:focus-visible {
  outline: 0; /* [4] */
}
.flickity-enabled .flickity-fullscreen-button-exit {
  display: none; /* [3] */
}
.flickity-enabled .flickity-button-icon {
  display: none; /* [5] */
}

.flickity-viewport {
  position: relative;
  width: 100%; /* [11] */
  height: 100%;
  overflow: hidden;
}

.flickity-slider {
  position: absolute;
  order: 0;
  width: 100%;
  height: 100%;
}

/**
 * Previous/next buttons.
 */
.flickity-prev-next-button {
  display: inline-flex; /* [14] */
  justify-content: center; /* [14] */
  align-items: center; /* [14] */
  width: 44px;
  height: 44px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background-color: transparent;
  color: #161718;
  cursor: pointer;
}
.flickity-prev-next-button::before {
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 2rem;
  line-height: 1;
  position: relative;
  z-index: 10;
}
.flickity-prev-next-button:hover {
  background-color: rgba(22, 23, 24, 0.06);
}
.flickity-prev-next-button:focus-visible {
  outline: 0;
}
.flickity-prev-next-button:disabled {
  opacity: 0; /* [12] */
  visibility: hidden; /* [12] */
}
.flickity-prev-next-button.previous {
  order: 1;
}
.flickity-prev-next-button.previous::before {
  content: "\f117";
}
.flickity-prev-next-button.next {
  order: 3;
}
.flickity-prev-next-button.next::before {
  content: "\f118";
}

.flickity-page-dots {
  display: flex; /* [2] */
  align-items: center;
  justify-content: center; /* [2] */
  order: 2;
  margin: 0; /* [1] */
  padding: 0; /* [1] */
}
.flickity-page-dots .dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 0; /* [9] */
  min-height: 32px; /* [7] */
  margin-right: 4px;
  margin-bottom: 0;
  margin-left: 4px;
  cursor: pointer;
}
.flickity-page-dots .dot:only-child {
  display: none; /* [12] */
}
.flickity-page-dots .dot::after {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  /* [13] */
  border: 1px solid #39815c;
  border-radius: 50%;
  background-color: #ffffff;
}
.flickity-page-dots .dot.is-selected::after {
  /* [13] */
  border-color: #39815c;
  background-color: #39815c;
}

/* [10] */
.flickity-enabled:not(.c-hero-teaser) .dot:nth-last-child(n+2), .flickity-enabled:not(.c-hero-teaser) .dot:nth-last-child(n+2) ~ .dot {
  counter-increment: slider-count;
  margin: 0; /* [3] */
  cursor: default;
  pointer-events: none; /* [2] */
}
.flickity-enabled:not(.c-hero-teaser) .dot:nth-last-child(n+2)::before, .flickity-enabled:not(.c-hero-teaser) .dot:nth-last-child(n+2)::after, .flickity-enabled:not(.c-hero-teaser) .dot:nth-last-child(n+2) ~ .dot::before, .flickity-enabled:not(.c-hero-teaser) .dot:nth-last-child(n+2) ~ .dot::after {
  all: initial; /* [1] */
  /* stylelint-disable-next-line order/order */
  font-size: 1rem;
  line-height: 1;
  font-family: inherit; /* [4] */
  font-weight: 700;
  color: #7c7d7e;
  pointer-events: none; /* [2] */
}
.flickity-enabled:not(.c-hero-teaser) .dot:nth-last-child(n+2)::before, .flickity-enabled:not(.c-hero-teaser) .dot:nth-last-child(n+2) ~ .dot::before {
  content: counter(slider-count) " ";
}
.flickity-enabled:not(.c-hero-teaser) .dot:nth-last-child(n+2):last-child::after, .flickity-enabled:not(.c-hero-teaser) .dot:nth-last-child(n+2) ~ .dot:last-child::after {
  content: "/ " counter(slider-count);
  display: block;
}
.flickity-enabled:not(.c-hero-teaser) .dot:nth-last-child(n+2):not(.is-selected)::before, .flickity-enabled:not(.c-hero-teaser) .dot:nth-last-child(n+2) ~ .dot:not(.is-selected)::before {
  display: none;
}
.flickity-enabled:not(.c-hero-teaser) .dot:nth-last-child(n+2)::after, .flickity-enabled:not(.c-hero-teaser) .dot:nth-last-child(n+2) ~ .dot::after {
  display: none;
}
.flickity-enabled[data-slider-counter=true] .dot:nth-last-child(n+2), .flickity-enabled[data-slider-counter=true] .dot:nth-last-child(n+2) ~ .dot {
  counter-increment: slider-count;
  margin: 0; /* [3] */
  cursor: default;
  pointer-events: none; /* [2] */
}
.flickity-enabled[data-slider-counter=true] .dot:nth-last-child(n+2)::before, .flickity-enabled[data-slider-counter=true] .dot:nth-last-child(n+2)::after, .flickity-enabled[data-slider-counter=true] .dot:nth-last-child(n+2) ~ .dot::before, .flickity-enabled[data-slider-counter=true] .dot:nth-last-child(n+2) ~ .dot::after {
  all: initial; /* [1] */
  /* stylelint-disable-next-line order/order */
  font-size: 1rem;
  line-height: 1;
  font-family: inherit; /* [4] */
  font-weight: 700;
  color: #7c7d7e;
  pointer-events: none; /* [2] */
}
.flickity-enabled[data-slider-counter=true] .dot:nth-last-child(n+2)::before, .flickity-enabled[data-slider-counter=true] .dot:nth-last-child(n+2) ~ .dot::before {
  content: counter(slider-count) " ";
}
.flickity-enabled[data-slider-counter=true] .dot:nth-last-child(n+2):last-child::after, .flickity-enabled[data-slider-counter=true] .dot:nth-last-child(n+2) ~ .dot:last-child::after {
  content: "/ " counter(slider-count);
  display: block;
}
.flickity-enabled[data-slider-counter=true] .dot:nth-last-child(n+2):not(.is-selected)::before, .flickity-enabled[data-slider-counter=true] .dot:nth-last-child(n+2) ~ .dot:not(.is-selected)::before {
  display: none;
}
.flickity-enabled[data-slider-counter=true] .dot:nth-last-child(n+2)::after, .flickity-enabled[data-slider-counter=true] .dot:nth-last-child(n+2) ~ .dot::after {
  display: none;
}

/* ------------------------------------*\
    #FLICKITY
\*------------------------------------ */
/**
 * [1] Enforce background color not to change on focus, only on hover.
 * [2] Add brand-specific styles for focus outline.
 */
.flickity-enabled .flickity-prev-next-button,
.flickity-enabled .flickity-fullscreen-button {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
}
.flickity-enabled .flickity-prev-next-button:focus,
.flickity-enabled .flickity-fullscreen-button:focus { /* [1] */
  background-color: #ffffff !important;
}
.flickity-enabled .flickity-prev-next-button:focus-visible,
.flickity-enabled .flickity-fullscreen-button:focus-visible { /* [2] */
  --focus-outline-color: #161718;
  --focus-outline-offset: 1px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}
.flickity-enabled .flickity-page-dots .dot {
  /* stylelint-disable-next-line selector-max-class */
}
.flickity-enabled .flickity-page-dots .dot.is-selected {
  /* stylelint-disable-next-line selector-max-specificity, selector-max-class, max-nesting-depth */
}
.flickity-enabled .flickity-page-dots .dot.is-selected::before {
  color: #161718 !important;
}

/* ------------------------------------*\
    #TIPPYJS
\*------------------------------------ */
/**
 * This is a custom adaptation of the Tippy.js Sass file to make it
 * themable for other brands.
 */
/**
 * [1] Align with arrow reference element.
 */
/**
 * [1] Reference for the arrow.
 * [2] If the browser supports `filter: drop-shadow`, apply this declaration to
 *     include the arrow in the shadow as well.
 * [3] Defensively reset any spacing-bottom of the last element in the body.
 * [4] Limit the height of the tooltip for large content and make it scrollable.
 * [5] Make sure that “normal” HTML elements like `<h1>` etc. all get the
 *     correct text color, when they are placed inside of the tooltip.
 *     Use `!important` to avoid text color being overwritten by higher specificity.
 * [6] Check if the tooltip will have a border and render the triangle differently
 *     as the original approach uses `border` itself to render the triangle.
 * [7] Overwrite the default hover link border color.
 * [8] Fix issue where the drop shadow was sometimes missing in some versions
 *     of Safari. Unfortunately, we do not have a reliable CSS-only solution
 *     to intercept the Safari browser. Therefore, we add `will-change: transform`
 *     only when a drop shadow is set.
 * [9] Makes sure that the text within the tooltip wraps normally even if
 *     a parent element suppresses line breaks using `white-space: nowrap`.
 * [10] Normalize `font-weight` but exclude `<strong>` and `<b>`.
 */
[data-tippy-root] {
  max-width: 320px;
  white-space: normal; /* [9] */
}

.tippy-box {
  font-size: 0.75rem;
  position: relative; /* [1] */
  border-radius: 2px;
  background-color: #464748;
}
.tippy-box:focus {
  --focus-outline-color: transparent;
  --focus-outline-offset: 1px;
  --focus-outline-style: solid;
  --focus-outline-width: 0;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}
.tippy-box,
.tippy-box * {
  color: #ffffff !important; /* [5] */
}
.tippy-box *:not(strong, b) { /* [10] */
  font-weight: 400;
}
.tippy-box[data-state=visible] {
  opacity: 1;
}
.tippy-box[data-state=hidden] {
  opacity: 0;
}
.tippy-box a:hover {
  /* [7] */
}

.tippy-arrow {
  width: 16px;
  height: 16px;
}
.tippy-arrow::before {
  content: "";
  position: absolute;
}

.tippy-content {
  position: relative;
  z-index: 1;
  max-height: 300px; /* [4] */
  overflow: auto; /* [4] */
  padding: 8px 12px;
  line-height: 1.5;
}
.tippy-content > *:last-child {
  margin-bottom: 0; /* [3] */
}

.tippy-box[data-placement^=top] {
  transform: translateY(-8px);
}
.tippy-box[data-placement^=top] .tippy-arrow {
  bottom: 0;
}
.tippy-box[data-placement^=top] .tippy-arrow::before {
  border-top: 8px solid #464748;
  border-right: 8px solid transparent;
  border-left: 8px solid transparent;
  bottom: -8px;
  left: 0; /* [1] */
  transform-origin: 50% 0%;
}

.tippy-box[data-placement^=bottom] {
  transform: translateY(8px);
}
.tippy-box[data-placement^=bottom] .tippy-arrow {
  top: 0;
}
.tippy-box[data-placement^=bottom] .tippy-arrow::before {
  border-bottom: 8px solid #464748;
  border-right: 8px solid transparent;
  border-left: 8px solid transparent;
  top: -8px;
  left: 0; /* [1] */
  transform-origin: 50% 100%;
}

.tippy-box[data-placement^=left] {
  transform: translateX(-8px);
}
.tippy-box[data-placement^=left] .tippy-arrow {
  right: 0;
}
.tippy-box[data-placement^=left] .tippy-arrow::before {
  border-left: 8px solid #464748;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  right: -8px;
  transform-origin: 0% 50%;
}

.tippy-box[data-placement^=right] {
  transform: translateX(8px);
}
.tippy-box[data-placement^=right] .tippy-arrow {
  left: 0;
}
.tippy-box[data-placement^=right] .tippy-arrow::before {
  border-right: 8px solid #464748;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  left: -8px;
  transform-origin: 100% 50%;
}

/* ------------------------------------*\
    #FLATPICKR-OVERRIDES
\*------------------------------------ */
/**
 * [1]  Set 'important' to override inline CSS styles set by flatpickr and prevent
 *      rendering issues (especially in Firefox).
 * [2]  Prevent outline if user clicks on the space between root element and inner
 *      container.
 * [3]  Remove border which is displayed on focus.
 * [4]  Optimize the size and position of the calendar for small mobile devices
 * [5]  Add a rectangle that points from the open calendar to the corresponding
 *      input element.
 * [6]  Show cursor pointer on element that is natively not interactive.
 * [7]  Prevent calendar on mobile devices from being wider than on the desktop.
 * [8]  Remove native input spin box.
 * [9]  Don't show outline when clicking on arrows.
 * [10] Correct wrong positioning of `.flatpickr-time` caused by negative margin.
 * [11] Use `line-height` to set the `height` of the timepicker and to ensure
 *      the `inputs` fill the entire space.
 * [12] Only apply the font colors to days in different months if the day is in
 *      "default state". If hover/selected is active the color might collide
 *      with the font color defined here, making the day unreadable.
 * [13] Hide closed datepicker to prevent taking up space.
 * [14] Manages the position of the calendar when opening to top.
 * [15] Make transitions optional.
 * [16] Allows centering the controls for all viewports.
 * [17] Center strike-through above number.
 * [18] Improve alignment for `months` row.
 * [19] Hide controls when disabled and removing them from the accessibility tree.
 * [20] Suppress the cached state of previous interactions.
 * [21] Add an extra week numbers column by adding extra width to the container.
 * [22] Add extra widths to the inner container to account for the extra week
 *      numbers column.
 * [23] The week number should not be interacted with.
 * [24] A vertical border is added as pseudo element to the week number column
 *      to separate it from the rest of the calendar without changing the
 *      element’s width.
 * [25] The border should be only as high as characters in the top row.
 */
/**
 * GENERAL FLATPICKR STYLES
 */
.flatpickr-calendar {
  --flatpickr-extra-width: 0px; /* [21] */ /* stylelint-disable-line length-zero-no-unit */
  position: absolute;
  z-index: 4800;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  flex-shrink: 0;
  flex-basis: auto;
  width: calc(var(--flatpickr-extra-width) + 344px) !important; /* [1] */ /* stylelint-disable-line itcss/no-at-important */
  max-width: calc(var(--flatpickr-extra-width) + 344px); /* [7] */
  padding: 24px 24px;
  text-align: center;
  background-color: #ffffff;
  visibility: hidden;
  outline: 0; /* [2] */
  opacity: 0;
  -webkit-user-select: none;
  user-select: none;
  border-radius: 4px;
  box-shadow: 0 2px 25px rgba(0, 0, 0, 0.15);
}
@media (max-width: 480px) {
  .flatpickr-calendar { /* [4] */
    left: 50% !important; /* [1] */
    width: 90vw !important; /* [1] */
    transform: translateX(-50%);
  }
}
.flatpickr-calendar:not(.open) {
  display: none; /* [13] */
}
.flatpickr-calendar.open {
  visibility: visible;
  opacity: 1;
}
.flatpickr-calendar.hasWeeks {
  --flatpickr-extra-width: 42px; /* [22] */
}
.flatpickr-calendar.arrowBottom {
  margin-top: -50px; /* [14] */
}

.flatpickr-innerContainer {
  width: calc(294px + var(--flatpickr-extra-width));
}
@media (max-width: 480px) {
  .flatpickr-innerContainer { /* [4] */
    width: 100%; /* [1] */
  }
}

.flatpickr-input, .flatpickr-input[readonly] {
  cursor: pointer;
}
.flatpickr-input[disabled] ~ .c-input__addon .c-icon {
  color: #9e9fa0;
}

/**
 * FLATPICKR INPUT WRAPPER STYLES
 */
.numInputWrapper {
  position: relative;
}
.numInputWrapper:hover .arrowUp,
.numInputWrapper:hover .arrowDown {
  opacity: 1;
}
.flatpickr-months .numInputWrapper {
  display: inline-block;
  width: 3.5em;
}
.flatpickr-months .numInputWrapper .arrowUp,
.flatpickr-months .numInputWrapper .arrowDown {
  font-size: 1.5rem;
  line-height: 1;
  right: -15px;
  width: 15px;
}
.flatpickr-time .numInputWrapper {
  display: flex;
  flex-grow: 1;
}
.flatpickr-time .numInputWrapper .arrowUp,
.flatpickr-time .numInputWrapper .arrowDown {
  font-size: 1.5rem;
  line-height: 28px;
  right: 0;
  width: 28px;
  color: #161718;
}
.numInputWrapper .arrowUp,
.numInputWrapper .arrowDown {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50%;
  overflow: hidden;
  color: #161718;
  opacity: 0;
}
.numInputWrapper .arrowUp:hover,
.numInputWrapper .arrowDown:hover {
  background-color: #f1f1f1;
  cursor: pointer; /* [6] */
}
.numInputWrapper .arrowUp::before,
.numInputWrapper .arrowDown::before {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
}
.numInputWrapper .arrowUp {
  top: 0;
}
.numInputWrapper .arrowUp::before {
  content: "\f156";
}
.numInputWrapper .arrowDown {
  bottom: 0;
}
.numInputWrapper .arrowDown::before {
  content: "\f151";
}
.numInputWrapper input[type=number] {
  -webkit-appearance: textfield;
  appearance: textfield; /* [8] */
}
.numInputWrapper input::-ms-clear {
  display: none; /* [8] */
}
.numInputWrapper input::-webkit-outer-spin-button,
.numInputWrapper input::-webkit-inner-spin-button {
  margin: 0; /* [8] */
  -webkit-appearance: none;
  appearance: none; /* [8] */
}

.numInput {
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: 400;
  text-align: center;
  background-color: transparent;
  color: #161718;
}
.numInput:focus {
  outline: 0;
}
.flatpickr-time .numInput {
  font-weight: 400;
  color: #161718;
}

/**
 * FLATPICKR MONTH STYLES
 */
.flatpickr-months {
  display: flex;
  align-items: center; /* [16] */
  margin-bottom: 16px;
}

.flatpickr-month {
  flex-grow: 1;
  flex-shrink: 0;
  flex-basis: auto;
  line-height: 1;
  text-align: center;
  -webkit-user-select: none;
  user-select: none;
}

.flatpickr-current-month {
  font-size: 1.25rem;
  line-height: 1.2;
  font-weight: 700;
  color: #161718;
}

.flatpickr-prev-month,
.flatpickr-next-month {
  display: flex; /* [18] */
  justify-content: center;
  width: 34px;
  line-height: 1;
  cursor: pointer;
}
.flatpickr-prev-month.flatpickr-disabled,
.flatpickr-next-month.flatpickr-disabled {
  opacity: 0; /* [19] */
  visibility: hidden; /* [19] */
  pointer-events: none; /* [20] */
}
.flatpickr-prev-month .c-icon,
.flatpickr-next-month .c-icon {
  font-size: 1.5rem;
  line-height: 1;
  color: #161718;
}

/**
 * FLATPICKR WEEKDAY STYLES
 */
.flatpickr-weekdays {
  overflow: hidden;
  background-color: transparent;
}

.flatpickr-weekdaycontainer {
  display: flex;
  justify-content: center;
}

.flatpickr-weekday {
  font-size: 0.875rem;
  line-height: 34px;
  width: 34px;
  height: 34px;
  margin: 4px 4px;
  font-weight: 400;
  color: #161718;
  cursor: default;
}
@media (max-width: 480px) {
  .flatpickr-weekday { /* [4] */
    width: calc(14.2857142857% - (2 * 4px));
    height: calc(14.2857142857% - (2 * 4px));
  }
}

/**
 * FLATPICKR DAY STYLES
 */
.flatpickr-days {
  width: 100% !important; /* [1] */ /* stylelint-disable-line itcss/no-at-important */
}

.dayContainer {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  overflow: hidden;
}

.flatpickr-day {
  font-size: 1rem;
  line-height: 34px;
  position: relative;
  width: 34px;
  height: 34px;
  margin: 4px 4px;
  border-radius: 50%;
  font-weight: 400;
  color: #161718;
  cursor: pointer;
  /* stylelint-disable selector-max-specificity */
  /* stylelint-enable */
}
@media (max-width: 480px) {
  .flatpickr-day { /* [4] */
    width: calc(14.2857142857% - (2 * 4px));
    height: calc(14.2857142857% - (2 * 4px));
  }
}
.flatpickr-day:hover {
  font-weight: 400;
  background-color: #f1f1f1;
  color: #161718;
}
.flatpickr-day.inRange {
  background-color: #a8ffcc;
}
.flatpickr-day.inRange:hover {
  background-color: #f1f1f1;
}
.flatpickr-day.startRange {
  background-color: #39815c;
  color: #ffffff;
}
.flatpickr-day.endRange {
  background-color: #39815c;
  color: #ffffff;
}
.flatpickr-day.flatpickr-disabled {
  color: #9e9fa0;
  pointer-events: none;
}
.flatpickr-day.flatpickr-disabled::before {
  content: "";
  position: absolute;
  z-index: 1;
  top: 50%; /* [17] */
  left: 50%; /* [17] */
  display: block;
  width: 25px;
  height: 1px;
  transform: rotate(-30deg) translate(-50%, -50%); /* [17] */
  transform-origin: 0; /* [17] */
  background-color: currentColor;
}
.flatpickr-day:not(.inRange):not(.startRange):not(.endRange):not(.selected):not(:hover):not(:focus) { /* [12] */ }
.flatpickr-day:not(.inRange):not(.startRange):not(.endRange):not(.selected):not(:hover):not(:focus).prevMonthDay, .flatpickr-day:not(.inRange):not(.startRange):not(.endRange):not(.selected):not(:hover):not(:focus).nextMonthDay {
  color: #9e9fa0;
}
.flatpickr-day.today:not(.flatpickr-disabled) {
  font-weight: 400;
  border: 1px solid currentColor;
  color: #161718;
}
.flatpickr-day.selected:not(.flatpickr-disabled) {
  font-weight: 400;
  background-color: #39815c;
  color: #ffffff;
  -webkit-user-select: none;
  user-select: none;
  outline: 0; /* [3] */
}
.flatpickr-day.selected:not(.flatpickr-disabled):hover {
  background-color: #39815c;
  color: #ffffff;
}

/**
 * FLATPICKR WEEK NUMBERS
 */
.flatpickr-weekwrapper {
  position: relative;
  float: left;
  pointer-events: none; /* [23] */
}
.flatpickr-weekwrapper::before { /* [24] */
  content: "";
  position: absolute;
  top: calc((34px - 16px) / 2); /* [25] */
  right: 0;
  bottom: 0;
  border-right: 1px solid #e4e4e4;
}
.flatpickr-weekwrapper .flatpickr-weekday {
  display: block;
  width: 34px;
}
.flatpickr-weekwrapper .flatpickr-day, .flatpickr-weekwrapper .flatpickr-day:hover {
  font-size: 0.875rem;
  display: block;
  font-weight: 400;
  color: #161718;
}
.flatpickr-weekwrapper .flatpickr-weeks {
  display: flex;
  flex-direction: column;
}

/**
 * FLATPICKR TIME STYLES
 */
.flatpickr-time {
  display: flex;
  margin: -24px -24px; /* [10] */
  color: #161718;
}
.flatpickr-time:focus {
  outline: 0; /* [9] */
}

.flatpickr-hour,
.flatpickr-minute,
.flatpickr-second {
  font-size: 0.875rem;
  line-height: 56px;
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: auto;
  width: 100%; /* [10] */
  border: 0;
  text-align: center;
  background-color: transparent;
}
.flatpickr-hour:focus, .flatpickr-hour:hover,
.flatpickr-minute:focus,
.flatpickr-minute:hover,
.flatpickr-second:focus,
.flatpickr-second:hover {
  outline: 0;
}

.flatpickr-time-separator {
  line-height: 56px;
  pointer-events: none;
  -webkit-user-select: none;
  user-select: none;
}

.flatpickr-am-pm {
  font-size: 0.875rem;
  line-height: 56px;
  display: block;
  min-width: 90px;
  cursor: pointer;
}
/**
 * [1] Allow to add `padding` to size to avoid shift of dates in calendar layout.
 * [2] Remove "gap", and "restore" by using `padding` to have a gap-less range.
 * [3] Add additional "square" background for start & end.
 * [4] Overlap to create seamless range style.
 * [5] Additional background only to side towards in-range items.
 * [6] InRange-Start background only when ranges are selected or endDate is
 *     followed directly by startDate (the following day).
 *     `:has` is used as a progressive enhancement to avoid "cutoff" start/end
 *     range on dates. For non `:has` fallback see fallback layer.
 * [7] Reset default.
 * [8] Show controls in actual size (icon-size x icon-size), not limited size.
 * [9] Improve space distribution when month selection
 *     is done via `<select>` (`.flatpickr-monthDropdown-months`).
 * [10] Selectors can not be chained (limitation of `button-icon-states()` mixin).
 */
.flatpickr-day {
  /* [6] */
  /* [6] */
}
.flatpickr-day.inRange:not(.startRange, .endRange) {
  box-sizing: content-box; /* [1] */
  margin-left: 0; /* [2] */
  margin-right: 0; /* [2] */
  padding-left: 4px; /* [2] */
  padding-right: 4px; /* [2] */
  border-radius: 0;
}
.flatpickr-day.startRange, .flatpickr-day.endRange {
  position: relative;
  /* [3] */
}
.flatpickr-day.startRange::before, .flatpickr-day.endRange::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  height: 100%;
  pointer-events: none;
}
.flatpickr-day.startRange:has(+ .inRange)::before, .flatpickr-day.startRange:has(+ .endRange)::before {
  background-color: #a8ffcc;
}
.flatpickr-day.startRange + .endRange::before, .flatpickr-day.inRange + .endRange::before {
  background-color: #a8ffcc;
}
.flatpickr-day.startRange::before {
  left: 50%; /* [5] */
  right: -4px; /* [4] */
}
.flatpickr-day.endRange::before {
  left: -4px; /* [4] */
  right: 50%; /* [5] */
}

/* [10] */
.flatpickr-prev-month .c-icon {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  scale: 1;
}
.flatpickr-prev-month .c-icon::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  transition: inherit;
}
.flatpickr-prev-month .c-icon:hover::after {
  background-color: rgba(22, 23, 24, 0.06);
}

.flatpickr-prev-month .c-icon:active {
  scale: 0.95;
}

/* [10] */
.flatpickr-next-month .c-icon {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  scale: 1;
}
.flatpickr-next-month .c-icon::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  transition: inherit;
}
.flatpickr-next-month .c-icon:hover::after {
  background-color: rgba(22, 23, 24, 0.06);
}

.flatpickr-next-month .c-icon:active {
  scale: 0.95;
}

/* [8] */
.flatpickr-months .numInputWrapper .arrowUp,
.flatpickr-months .numInputWrapper .arrowDown {
  right: auto; /* [7] */
  left: 100%;
  width: auto;
  height: auto;
}
.flatpickr-months .numInputWrapper .arrowUp {
  transform: translateY(-50%);
}
.flatpickr-months .numInputWrapper .arrowDown {
  transform: translateY(50%);
}
.flatpickr-monthDropdown-months ~ .numInputWrapper {
  margin-right: 16px; /* [9] */
}

@keyframes plyr-progress {
  to {
    background-position: 25px 0;
  }
}
@keyframes plyr-popup {
  0% {
    opacity: 0.5;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes plyr-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.plyr {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  align-items: center;
  direction: ltr;
  display: flex;
  flex-direction: column;
  font-family: "skoda-next", Arial, sans-serif;
  font-variant-numeric: tabular-nums;
  font-weight: 400;
  line-height: 24px;
  max-width: 100%;
  min-width: 200px;
  position: relative;
  text-shadow: none;
  transition: box-shadow 0.3s ease;
  z-index: 0;
}
.plyr video,
.plyr audio,
.plyr iframe {
  display: block;
  height: 100%;
  width: 100%;
}
.plyr button {
  font: inherit;
  line-height: inherit;
  width: auto;
}
.plyr:focus {
  outline: 0;
}

.plyr--full-ui {
  box-sizing: border-box;
}
.plyr--full-ui *,
.plyr--full-ui *::after,
.plyr--full-ui *::before {
  box-sizing: inherit;
}

.plyr--full-ui a,
.plyr--full-ui button,
.plyr--full-ui input,
.plyr--full-ui label {
  touch-action: manipulation;
}

.plyr__badge {
  background: #ffffff;
  border-radius: 4px;
  color: #ffffff;
  font-size: 12px;
  line-height: 1;
  padding: 3px 4px;
}

.plyr--full-ui ::-webkit-media-text-track-container {
  display: none;
}

.plyr__captions {
  animation: plyr-fade-in 0.3s ease;
  bottom: 0;
  display: none;
  font-size: 16px;
  left: 0;
  padding: 24px;
  position: absolute;
  text-align: center;
  transition: transform 0.4s ease-in-out;
  width: 100%;
}
.plyr__captions span:empty {
  display: none;
}
@media (min-width: 480px) {
  .plyr__captions {
    font-size: 16px;
    padding: calc(24px * 2);
  }
}
@media (min-width: 720px) {
  .plyr__captions {
    font-size: 20px;
  }
}

.plyr--captions-active .plyr__captions {
  display: block;
}

.plyr:not(.plyr--hide-controls) .plyr__controls:not(:empty) ~ .plyr__captions {
  transform: translateY(calc(24px * -4));
}

.plyr__caption {
  background: #ffffff;
  border-radius: 2px;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  color: #161718;
  line-height: 185%;
  padding: 0.2em 0.5em;
  white-space: pre-wrap;
}
.plyr__caption div {
  display: inline;
}

.plyr__control {
  background: transparent;
  border: 0;
  border-radius: 4px;
  color: inherit;
  cursor: pointer;
  flex-shrink: 0;
  overflow: visible;
  padding: 24px;
  position: relative;
  transition: all 0.3s ease;
}
.plyr__control svg {
  display: block;
  fill: currentColor;
  height: 24px;
  pointer-events: none;
  width: 24px;
}
.plyr__control:focus {
  outline: 0;
}
.plyr__control.plyr__tab-focus {
  outline-color: #ffffff;
  outline-offset: 2px;
  outline-style: dotted;
  outline-width: 3px;
}

a.plyr__control {
  text-decoration: none;
}
a.plyr__control::after, a.plyr__control::before {
  display: none;
}

.plyr__control:not(.plyr__control--pressed) .icon--pressed,
.plyr__control.plyr__control--pressed .icon--not-pressed,
.plyr__control:not(.plyr__control--pressed) .label--pressed,
.plyr__control.plyr__control--pressed .label--not-pressed {
  display: none;
}

.plyr--full-ui ::-webkit-media-controls {
  display: none;
}

.plyr__controls {
  align-items: center;
  display: flex;
  justify-content: flex-end;
  text-align: center;
}
.plyr__controls .plyr__progress__container {
  flex: 1;
  min-width: 0;
}
.plyr__controls .plyr__controls__item {
  margin-left: calc(24px / 4);
}
.plyr__controls .plyr__controls__item:first-child {
  margin-left: 0;
  margin-right: auto;
}
.plyr__controls .plyr__controls__item.plyr__progress__container {
  padding-left: calc(24px / 4);
}
.plyr__controls .plyr__controls__item.plyr__time {
  padding: 0 calc(24px / 2);
}
.plyr__controls .plyr__controls__item.plyr__progress__container:first-child, .plyr__controls .plyr__controls__item.plyr__time:first-child, .plyr__controls .plyr__controls__item.plyr__time + .plyr__time {
  padding-left: 0;
}
.plyr__controls:empty {
  display: none;
}

.plyr [data-plyr=captions],
.plyr [data-plyr=pip],
.plyr [data-plyr=airplay],
.plyr [data-plyr=fullscreen] {
  display: none;
}

.plyr--captions-enabled [data-plyr=captions],
.plyr--pip-supported [data-plyr=pip],
.plyr--airplay-supported [data-plyr=airplay],
.plyr--fullscreen-enabled [data-plyr=fullscreen] {
  display: inline-block;
}

.plyr__menu {
  display: flex;
  position: relative;
}
.plyr__menu .plyr__control svg {
  transition: transform 0.3s ease;
}
.plyr__menu .plyr__control[aria-expanded=true] svg {
  transform: rotate(90deg);
}
.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip {
  display: none;
}
.plyr__menu__container {
  animation: plyr-popup 0.2s ease;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 4px;
  bottom: 100%;
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.15);
  color: #ffffff;
  font-size: 16px;
  margin-bottom: 10px;
  position: absolute;
  right: -3px;
  text-align: left;
  white-space: nowrap;
  z-index: 3;
}
.plyr__menu__container > div {
  overflow: hidden;
  transition: height 0.35s cubic-bezier(0.4, 0, 0.2, 1), width 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.plyr__menu__container::after {
  border: 6px solid transparent;
  border-top-color: rgba(255, 255, 255, 0.9);
  content: "";
  height: 0;
  position: absolute;
  right: calc(((24px / 2) + 24px) - (6px / 2));
  top: 100%;
  width: 0;
}
.plyr__menu__container [role=menu] {
  padding: 24px;
}
.plyr__menu__container [role=menuitem],
.plyr__menu__container [role=menuitemradio] {
  margin-top: 2px;
}
.plyr__menu__container [role=menuitem]:first-child,
.plyr__menu__container [role=menuitemradio]:first-child {
  margin-top: 0;
}
.plyr__menu__container .plyr__control {
  align-items: center;
  color: #ffffff;
  display: flex;
  font-size: 16px;
  padding-bottom: calc(24px / 1.5);
  padding-left: calc(24px * 1.5);
  padding-right: calc(24px * 1.5);
  padding-top: calc(24px / 1.5);
  -webkit-user-select: none;
  user-select: none;
  width: 100%;
}
.plyr__menu__container .plyr__control > span {
  align-items: inherit;
  display: flex;
  width: 100%;
}
.plyr__menu__container .plyr__control::after {
  border: 6px solid transparent;
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.plyr__menu__container .plyr__control--forward {
  padding-right: calc(24px * 4);
}
.plyr__menu__container .plyr__control--forward::after {
  border-left-color: #ffffff;
  right: calc((24px * 1.5) - 6px);
}
.plyr__menu__container .plyr__control--forward.plyr__tab-focus::after, .plyr__menu__container .plyr__control--forward:hover::after {
  border-left-color: currentColor;
}
.plyr__menu__container .plyr__control--back {
  font-weight: 400;
  margin: 24px;
  margin-bottom: calc(24px / 2);
  padding-left: calc(24px * 4);
  position: relative;
  width: calc(100% - (24px * 2));
}
.plyr__menu__container .plyr__control--back::after {
  border-right-color: #ffffff;
  left: calc((24px * 1.5) - 6px);
}
.plyr__menu__container .plyr__control--back::before {
  background: #ffffff;
  box-shadow: 0 1px 0 #ffffff;
  content: "";
  height: 1px;
  left: 0;
  margin-top: calc(24px / 2);
  overflow: hidden;
  position: absolute;
  right: 0;
  top: 100%;
}
.plyr__menu__container .plyr__control--back.plyr__tab-focus::after, .plyr__menu__container .plyr__control--back:hover::after {
  border-right-color: currentColor;
}
.plyr__menu__container .plyr__control[role=menuitemradio] {
  padding-left: 24px;
}
.plyr__menu__container .plyr__control[role=menuitemradio]::before, .plyr__menu__container .plyr__control[role=menuitemradio]::after {
  border-radius: 100%;
}
.plyr__menu__container .plyr__control[role=menuitemradio]::before {
  background: rgba(0, 0, 0, 0.1);
  content: "";
  display: block;
  flex-shrink: 0;
  height: 16px;
  margin-right: 24px;
  transition: all 0.3s ease;
  width: 16px;
}
.plyr__menu__container .plyr__control[role=menuitemradio]::after {
  background: #fff;
  border: 0;
  height: 6px;
  left: 12px;
  opacity: 0;
  top: 50%;
  transform: translateY(-50%) scale(0);
  transition: transform 0.3s ease, opacity 0.3s ease;
  width: 6px;
}
.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]::before {
  background: #ffffff;
}
.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]::after {
  opacity: 1;
  transform: translateY(-50%) scale(1);
}
.plyr__menu__container .plyr__control[role=menuitemradio].plyr__tab-focus::before, .plyr__menu__container .plyr__control[role=menuitemradio]:hover::before {
  background: rgba(35, 40, 47, 0.1);
}
.plyr__menu__container .plyr__menu__value {
  align-items: center;
  display: flex;
  margin-left: auto;
  margin-right: calc((24px - 2) * -1);
  overflow: hidden;
  padding-left: calc(24px * 3.5);
  pointer-events: none;
}

.plyr--full-ui input[type=range] {
  -webkit-appearance: none; /* stylelint-disable-line */
  background: transparent;
  border: 0;
  border-radius: calc(16px * 2);
  color: #78faae;
  display: block;
  height: calc((3px * 2) + 16px);
  margin: 0;
  min-width: 0;
  padding: 0;
  transition: box-shadow 0.3s ease;
  width: 100%;
}
.plyr--full-ui input[type=range]::-webkit-slider-runnable-track {
  background: transparent;
  border: 0;
  border-radius: calc(4px / 2);
  height: 4px;
  -webkit-transition: box-shadow 0.3s ease;
  transition: box-shadow 0.3s ease;
  -webkit-user-select: none;
  user-select: none;
  background-image: linear-gradient(to right, currentColor 0%, transparent 0%);
}
.plyr--full-ui input[type=range]::-webkit-slider-thumb {
  background: #39815c;
  border: 0;
  border-radius: 100%;
  box-shadow: none;
  height: 16px;
  position: relative;
  -webkit-transition: all 0.2s ease;
  transition: all 0.2s ease;
  width: 16px;
  -webkit-appearance: none; /* stylelint-disable-line */
  margin-top: calc((16px - 4px) / 2 * -1);
}
.plyr--full-ui input[type=range]::-moz-range-track {
  background: transparent;
  border: 0;
  border-radius: calc(4px / 2);
  height: 4px;
  -moz-transition: box-shadow 0.3s ease;
  transition: box-shadow 0.3s ease;
  user-select: none;
}
.plyr--full-ui input[type=range]::-moz-range-thumb {
  background: #39815c;
  border: 0;
  border-radius: 100%;
  box-shadow: none;
  height: 16px;
  position: relative;
  -moz-transition: all 0.2s ease;
  transition: all 0.2s ease;
  width: 16px;
}
.plyr--full-ui input[type=range]::-moz-range-progress {
  background: currentColor;
  border-radius: calc(4px / 2);
  height: 4px;
}
.plyr--full-ui input[type=range]::-ms-track {
  background: transparent;
  border: 0;
  border-radius: calc(4px / 2);
  height: 4px;
  -ms-transition: box-shadow 0.3s ease;
  transition: box-shadow 0.3s ease;
  user-select: none;
  color: transparent;
}
.plyr--full-ui input[type=range]::-ms-fill-upper {
  background: transparent;
  border: 0;
  border-radius: calc(4px / 2);
  height: 4px;
  -ms-transition: box-shadow 0.3s ease;
  transition: box-shadow 0.3s ease;
  user-select: none;
}
.plyr--full-ui input[type=range]::-ms-fill-lower {
  background: transparent;
  border: 0;
  border-radius: calc(4px / 2);
  height: 4px;
  -ms-transition: box-shadow 0.3s ease;
  transition: box-shadow 0.3s ease;
  user-select: none;
  background: currentColor;
}
.plyr--full-ui input[type=range]::-ms-thumb {
  background: #39815c;
  border: 0;
  border-radius: 100%;
  box-shadow: none;
  height: 16px;
  position: relative;
  -ms-transition: all 0.2s ease;
  transition: all 0.2s ease;
  width: 16px;
  margin-top: 0;
}
.plyr--full-ui input[type=range]::-ms-tooltip {
  display: none;
}
.plyr--full-ui input[type=range]:focus {
  outline: 0;
}
.plyr--full-ui input[type=range]::-moz-focus-outer {
  border: 0;
}
.plyr--full-ui input[type=range].plyr__tab-focus::-webkit-slider-runnable-track {
  outline-color: #ffffff;
  outline-offset: 2px;
  outline-style: dotted;
  outline-width: 3px;
}
.plyr--full-ui input[type=range].plyr__tab-focus::-moz-range-track {
  outline-color: #ffffff;
  outline-offset: 2px;
  outline-style: dotted;
  outline-width: 3px;
}
.plyr--full-ui input[type=range].plyr__tab-focus::-ms-track {
  outline-color: #ffffff;
  outline-offset: 2px;
  outline-style: dotted;
  outline-width: 3px;
}

.plyr__poster {
  background-color: #161718;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: contain;
  height: 100%;
  left: 0;
  opacity: 0;
  position: absolute;
  top: 0;
  transition: opacity 0.2s ease;
  width: 100%;
  z-index: 1;
}

.plyr--stopped.plyr__poster-enabled .plyr__poster {
  opacity: 1;
}

.plyr--youtube.plyr--paused.plyr__poster-enabled:not(.plyr--stopped) .plyr__poster {
  display: none;
}

.plyr__time {
  font-size: 12px;
}

.plyr__time + .plyr__time::before {
  content: "⁄";
  margin-right: 24px;
}
@media (max-width: 719px) {
  .plyr__time + .plyr__time {
    display: none;
  }
}

.plyr__tooltip {
  background: #464748;
  border-radius: 2px;
  bottom: 100%;
  box-shadow: none;
  color: #ffffff;
  font-size: 16px;
  font-weight: 400;
  left: 50%;
  line-height: 1.3;
  margin-bottom: calc(8px 12px * 2);
  opacity: 0;
  padding: 8px 12px calc(8px 12px * 1.5);
  pointer-events: none;
  position: absolute;
  transform: translate(-50%, 10px) scale(0.8);
  transform-origin: 50% 100%;
  transition: transform 0.2s 0.1s ease, opacity 0.2s 0.1s ease;
  white-space: nowrap;
  z-index: 2;
}
.plyr__tooltip::before {
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 8px solid #464748;
  bottom: calc(8px * -1);
  content: "";
  height: 0;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  width: 0;
  z-index: 2;
}

.plyr .plyr__control:hover .plyr__tooltip,
.plyr .plyr__control.plyr__tab-focus .plyr__tooltip,
.plyr__tooltip--visible {
  opacity: 1;
  transform: translate(-50%, 0) scale(1);
}

.plyr .plyr__control:hover .plyr__tooltip {
  z-index: 3;
}

.plyr__controls > .plyr__control:first-child .plyr__tooltip,
.plyr__controls > .plyr__control:first-child + .plyr__control .plyr__tooltip {
  left: 0;
  transform: translate(0, 10px) scale(0.8);
  transform-origin: 0 100%;
}
.plyr__controls > .plyr__control:first-child .plyr__tooltip::before,
.plyr__controls > .plyr__control:first-child + .plyr__control .plyr__tooltip::before {
  left: calc((24px / 2) + 24px);
}

.plyr__controls > .plyr__control:last-child .plyr__tooltip {
  left: auto;
  right: 0;
  transform: translate(0, 10px) scale(0.8);
  transform-origin: 100% 100%;
}
.plyr__controls > .plyr__control:last-child .plyr__tooltip::before {
  left: auto;
  right: calc((24px / 2) + 24px);
  transform: translateX(50%);
}

.plyr__controls > .plyr__control:first-child:hover .plyr__tooltip, .plyr__controls > .plyr__control:first-child.plyr__tab-focus .plyr__tooltip,
.plyr__controls > .plyr__control:first-child .plyr__tooltip--visible,
.plyr__controls > .plyr__control:first-child + .plyr__control:hover .plyr__tooltip,
.plyr__controls > .plyr__control:first-child + .plyr__control.plyr__tab-focus .plyr__tooltip,
.plyr__controls > .plyr__control:first-child + .plyr__control .plyr__tooltip--visible,
.plyr__controls > .plyr__control:last-child:hover .plyr__tooltip,
.plyr__controls > .plyr__control:last-child.plyr__tab-focus .plyr__tooltip,
.plyr__controls > .plyr__control:last-child .plyr__tooltip--visible {
  transform: translate(0, 0) scale(1);
}

.plyr__progress {
  left: calc(16px * 0.5);
  margin-right: 16px;
  position: relative;
}
.plyr__progress input[type=range], .plyr__progress__buffer {
  margin-left: calc(16px * -0.5);
  margin-right: calc(16px * -0.5);
  width: calc(100% + 16px);
}
.plyr__progress input[type=range] {
  position: relative;
  z-index: 2;
}
.plyr__progress .plyr__tooltip {
  font-size: 12px;
  left: 0;
}

.plyr__progress__buffer {
  -webkit-appearance: none; /* stylelint-disable-line */
  background: transparent;
  border: 0;
  border-radius: 100px;
  height: 4px;
  left: 0;
  margin-top: calc((4px / 2) * -1);
  padding: 0;
  position: absolute;
  top: 50%;
}
.plyr__progress__buffer::-webkit-progress-bar {
  background: transparent;
}
.plyr__progress__buffer::-webkit-progress-value {
  background: currentColor;
  border-radius: 100px;
  min-width: 4px;
  -webkit-transition: width 0.2s ease;
  transition: width 0.2s ease;
}
.plyr__progress__buffer::-moz-progress-bar {
  background: currentColor;
  border-radius: 100px;
  min-width: 4px;
  -moz-transition: width 0.2s ease;
  transition: width 0.2s ease;
}
.plyr__progress__buffer::-ms-fill {
  border-radius: 100px;
  -ms-transition: width 0.2s ease;
  transition: width 0.2s ease;
}

.plyr--loading .plyr__progress__buffer {
  animation: plyr-progress 1s linear infinite;
  background-image: linear-gradient(-45deg, rgba(22, 23, 24, 0.25) 25%, transparent 25%, transparent 50%, rgba(22, 23, 24, 0.25) 50%, rgba(22, 23, 24, 0.25) 75%, transparent 75%, transparent);
  background-repeat: repeat-x;
  background-size: 25px 25px;
  color: transparent;
}

.plyr--video.plyr--loading .plyr__progress__buffer {
  background-color: rgba(255, 255, 255, 0.75);
}

.plyr--audio.plyr--loading .plyr__progress__buffer {
  background-color: rgba(255, 255, 255, 0.75);
}

.plyr__volume {
  align-items: center;
  display: flex;
  max-width: 110px;
  min-width: 80px;
  position: relative;
  width: 20%;
}
.plyr__volume input[type=range] {
  margin-left: calc(24px / 2);
  margin-right: calc(24px / 2);
  position: relative;
  z-index: 2;
}

.plyr--is-ios .plyr__volume {
  min-width: 0;
  width: auto;
}

.plyr--audio {
  display: block;
}

.plyr--audio .plyr__controls {
  background: #ffffff;
  border-radius: inherit;
  color: #ffffff;
  padding: 24px;
}

.plyr--audio .plyr__control.plyr__tab-focus, .plyr--audio .plyr__control:hover, .plyr--audio .plyr__control[aria-expanded=true] {
  background: transparent;
  color: #39815c;
}

.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track {
  background-color: rgba(255, 255, 255, 0.75);
}
.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track {
  background-color: rgba(255, 255, 255, 0.75);
}
.plyr--full-ui.plyr--audio input[type=range]::-ms-track {
  background-color: rgba(255, 255, 255, 0.75);
}
.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb {
  box-shadow: none, 0 0 0 3px rgba(65, 148, 104, 0.9);
}
.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb {
  box-shadow: none, 0 0 0 3px rgba(65, 148, 104, 0.9);
}
.plyr--full-ui.plyr--audio input[type=range]:active::-ms-thumb {
  box-shadow: none, 0 0 0 3px rgba(65, 148, 104, 0.9);
}

.plyr--audio .plyr__progress__buffer {
  color: rgba(255, 255, 255, 0.75);
}

.plyr--video {
  background: #161718;
  overflow: hidden;
}
.plyr--video.plyr--menu-open {
  overflow: visible;
}

.plyr__video-wrapper {
  background: #161718;
  height: 100%;
  margin: auto;
  overflow: hidden;
  position: relative;
  width: 100%;
}

.plyr__video-embed,
.plyr__video-wrapper--fixed-ratio {
  aspect-ratio: 16/9;
}
@supports not (aspect-ratio: 16/9) {
  .plyr__video-embed,
  .plyr__video-wrapper--fixed-ratio {
    height: 0;
    padding-bottom: 56.25%;
    position: relative;
  }
}

.plyr__video-embed iframe,
.plyr__video-wrapper--fixed-ratio video {
  border: 0;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

.plyr--full-ui .plyr__video-embed > .plyr__video-embed__container {
  padding-bottom: 240%;
  position: relative;
  transform: translateY(-38.28125%);
}

.plyr--video .plyr__controls {
  background: #39815c;
  border-bottom-left-radius: inherit;
  border-bottom-right-radius: inherit;
  bottom: 0;
  color: #ffffff;
  left: 0;
  padding: calc(24px / 2);
  padding-top: calc(24px * 2);
  position: absolute;
  right: 0;
  transition: opacity 0.4s ease-in-out, transform 0.4s ease-in-out;
  z-index: 3;
}
@media (min-width: 480px) {
  .plyr--video .plyr__controls {
    padding: 24px;
    padding-top: calc(24px * 3.5);
  }
}

.plyr--video.plyr--hide-controls .plyr__controls {
  opacity: 0;
  pointer-events: none;
  transform: translateY(100%);
}

.plyr--video .plyr__control.plyr__tab-focus, .plyr--video .plyr__control:hover, .plyr--video .plyr__control[aria-expanded=true] {
  background: transparent;
  color: #ffffff;
}

.plyr__control--overlaid {
  background: transparent;
  border: 0;
  border-radius: 100%;
  color: #ffffff;
  display: none;
  left: 50%;
  opacity: 0.9;
  padding: calc(24px * 1.5);
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: 0.3s;
  z-index: 2;
}
.plyr__control--overlaid svg {
  left: 2px;
  position: relative;
}
.plyr__control--overlaid:hover, .plyr__control--overlaid:focus {
  opacity: 1;
}

.plyr--playing .plyr__control--overlaid {
  opacity: 0;
  visibility: hidden;
}

.plyr--full-ui.plyr--video .plyr__control--overlaid {
  display: block;
}

.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track {
  background-color: #d8d8d8;
}
.plyr--full-ui.plyr--video input[type=range]::-moz-range-track {
  background-color: #d8d8d8;
}
.plyr--full-ui.plyr--video input[type=range]::-ms-track {
  background-color: #d8d8d8;
}
.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb {
  box-shadow: none, 0 0 0 3px rgba(255, 255, 255, 0.9);
}
.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb {
  box-shadow: none, 0 0 0 3px rgba(255, 255, 255, 0.9);
}
.plyr--full-ui.plyr--video input[type=range]:active::-ms-thumb {
  box-shadow: none, 0 0 0 3px rgba(255, 255, 255, 0.9);
}

.plyr--video .plyr__progress__buffer {
  color: rgba(255, 255, 255, 0.75);
}

.plyr:-webkit-full-screen {
  background: #000;
  border-radius: 0 !important;
  height: 100%;
  margin: 0;
  width: 100%;
}

.plyr:fullscreen {
  background: #000;
  border-radius: 0 !important;
  height: 100%;
  margin: 0;
  width: 100%;
}
.plyr:-webkit-full-screen video {
  height: 100%;
}
.plyr:fullscreen video {
  height: 100%;
}
.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen {
  display: block;
}
.plyr:fullscreen .plyr__control .icon--exit-fullscreen {
  display: block;
}
.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen + svg {
  display: none;
}
.plyr:fullscreen .plyr__control .icon--exit-fullscreen + svg {
  display: none;
}
.plyr:-webkit-full-screen.plyr--hide-controls {
  cursor: none;
}
.plyr:fullscreen.plyr--hide-controls {
  cursor: none;
}
@media (min-width: 1280px) {
  .plyr:-webkit-full-screen .plyr__captions {
    font-size: 20px;
  }
  .plyr:fullscreen .plyr__captions {
    font-size: 20px;
  }
}

/* stylelint-disable-next-line */
.plyr:-webkit-full-screen {
  background: #000;
  border-radius: 0 !important;
  height: 100%;
  margin: 0;
  width: 100%;
}
.plyr:-webkit-full-screen video {
  height: 100%;
}
.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen {
  display: block;
}
.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen + svg {
  display: none;
}
.plyr:-webkit-full-screen.plyr--hide-controls {
  cursor: none;
}
@media (min-width: 1280px) {
  .plyr:-webkit-full-screen .plyr__captions {
    font-size: 20px;
  }
}

/* stylelint-disable-next-line */
.plyr:-moz-full-screen {
  background: #000;
  border-radius: 0 !important;
  height: 100%;
  margin: 0;
  width: 100%;
}
.plyr:-moz-full-screen video {
  height: 100%;
}
.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen {
  display: block;
}
.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen + svg {
  display: none;
}
.plyr:-moz-full-screen.plyr--hide-controls {
  cursor: none;
}
@media (min-width: 1280px) {
  .plyr:-moz-full-screen .plyr__captions {
    font-size: 20px;
  }
}

/* stylelint-disable-next-line */
.plyr:-ms-fullscreen {
  background: #000;
  border-radius: 0 !important;
  height: 100%;
  margin: 0;
  width: 100%;
}
.plyr:-ms-fullscreen video {
  height: 100%;
}
.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen {
  display: block;
}
.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen + svg {
  display: none;
}
.plyr:-ms-fullscreen.plyr--hide-controls {
  cursor: none;
}
@media (min-width: 1280px) {
  .plyr:-ms-fullscreen .plyr__captions {
    font-size: 20px;
  }
}

.plyr--fullscreen-fallback {
  background: #000;
  border-radius: 0 !important;
  height: 100%;
  margin: 0;
  width: 100%;
  bottom: 0;
  display: block;
  left: 0;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 10000000;
}
.plyr--fullscreen-fallback video {
  height: 100%;
}
.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen {
  display: block;
}
.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen + svg {
  display: none;
}
.plyr--fullscreen-fallback.plyr--hide-controls {
  cursor: none;
}
@media (min-width: 1280px) {
  .plyr--fullscreen-fallback .plyr__captions {
    font-size: 20px;
  }
}

.plyr__ads {
  border-radius: inherit;
  bottom: 0;
  cursor: pointer;
  left: 0;
  overflow: hidden;
  position: absolute;
  right: 0;
  top: 0;
  z-index: -1;
}
.plyr__ads > div,
.plyr__ads > div iframe {
  height: 100%;
  position: absolute;
  width: 100%;
}
.plyr__ads::after {
  background: hsl(216, 15%, 16%);
  border-radius: 2px;
  bottom: 24px;
  color: #fff;
  content: attr(data-badge-text);
  font-size: 11px;
  padding: 2px 6px;
  pointer-events: none;
  position: absolute;
  right: 24px;
  z-index: 3;
}
.plyr__ads:empty::after {
  display: none;
}

.plyr__cues {
  background: currentColor;
  display: block;
  height: 4px;
  left: 0;
  margin: -2px 0 0;
  opacity: 0.8;
  position: absolute;
  top: 50%;
  width: 3px;
  z-index: 3;
}

.plyr__preview-thumb {
  background-color: #464748;
  border-radius: 3px;
  bottom: 100%;
  box-shadow: none;
  margin-bottom: calc(8px 12px * 2);
  opacity: 0;
  padding: 2px;
  pointer-events: none;
  position: absolute;
  transform: translate(0, 10px) scale(0.8);
  transform-origin: 50% 100%;
  transition: transform 0.2s 0.1s ease, opacity 0.2s 0.1s ease;
  z-index: 2;
}
.plyr__preview-thumb--is-shown {
  opacity: 1;
  transform: translate(0, 0) scale(1);
}
.plyr__preview-thumb::before {
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 8px solid #464748;
  bottom: calc(8px * -1);
  content: "";
  height: 0;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  width: 0;
  z-index: 2;
}
.plyr__preview-thumb__image-container {
  background: hsl(216, 15%, 79%);
  border-radius: calc(2px - 1px);
  overflow: hidden;
  position: relative;
  z-index: 0;
}
.plyr__preview-thumb__image-container img {
  height: 100%;
  left: 0;
  max-height: none;
  max-width: none;
  position: absolute;
  top: 0;
  width: 100%;
}
.plyr__preview-thumb__time-container {
  bottom: 6px;
  left: 0;
  position: absolute;
  right: 0;
  white-space: nowrap;
  z-index: 3;
}
.plyr__preview-thumb__time-container span {
  background-color: rgba(0, 0, 0, 0.55);
  border-radius: calc(2px - 1px);
  color: #fff;
  font-size: 12px;
  padding: 3px 6px;
}

.plyr__preview-scrubbing {
  bottom: 0;
  filter: blur(1px);
  height: 100%;
  left: 0;
  margin: auto;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  position: absolute;
  right: 0;
  top: 0;
  transition: opacity 0.3s ease;
  width: 100%;
  z-index: 1;
}
.plyr__preview-scrubbing--is-shown {
  opacity: 1;
}
.plyr__preview-scrubbing img {
  height: 100%;
  left: 0;
  max-height: none;
  max-width: none;
  object-fit: contain;
  position: absolute;
  top: 0;
  width: 100%;
}

.plyr--no-transition {
  transition: none !important;
}

.plyr__sr-only {
  clip: rect(1px, 1px, 1px, 1px);
  overflow: hidden;
  border: 0 !important;
  height: 1px !important;
  padding: 0 !important;
  position: absolute !important;
  width: 1px !important;
}

.plyr [hidden] {
  display: none !important;
}

/* ------------------------------------*\
    #CIVIC-COOKIE-CONTROL
\*------------------------------------ */
/**
 * [1] Hide SVG that does not seem to be used anyway but would cover other
 *     Float Grid elements. `overflow: hidden` would not work properly with the
 *     Float Grid’s column sizing.
 */
/* stylelint-disable selector-max-specificity, selector-max-id, itcss/no-at-important */
.js-enable-3rd-party-float-grid #ccc-icon {
  --float-grid-area: bottom-right;
  position: static;
  order: 1;
  position: static !important;
  margin: 0 !important;
}
.js-enable-3rd-party-float-grid #ccc-icon > * {
  --float-grid-area: false;
}
.js-enable-3rd-party-float-grid #ccc-icon > svg {
  position: absolute !important; /* stylelint-disable-line itcss/no-at-important */
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
}

/* stylelint-enable selector-max-specificity, selector-max-id, itcss/no-at-important */
/* ------------------------------------*\
    #MERCURY-CHAT-BOT
\*------------------------------------ */
/**
 * [1] Move to the first Float Grid area items position.
 */
/* stylelint-disable selector-max-specificity, selector-max-id, itcss/no-at-important */
.js-enable-3rd-party-float-grid #mercury-widget {
  --float-grid-area: bottom-right;
  position: static;
  display: contents;
}
.js-enable-3rd-party-float-grid #mercury-widget > * {
  --float-grid-area: false;
}
.js-enable-3rd-party-float-grid #mercury-widget .teaser,
.js-enable-3rd-party-float-grid #mercury-widget .toggle-button {
  order: -1; /* [1] */
}
.js-enable-3rd-party-float-grid #mercury-widget .teaser,
.js-enable-3rd-party-float-grid #mercury-widget .open-toggle {
  position: static !important;
  margin: 0 !important;
}

/* stylelint-enable selector-max-specificity, selector-max-id, itcss/no-at-important */
/* ------------------------------------*\
    #ICONS
\*------------------------------------ */
/**
 * [1] In case the icon is an `<a>` element, this gives us an easy way of
 *     eliminating an underline appearing in IE11. In case you actually want
 *     any text-decoration, you can override the `$icon-text-decoration`
 *     variable.
 */
.c-icon {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  padding: 0;
  border: 0;
  background-color: transparent;
  font-size: 2.5rem;
  text-decoration: none; /* [1] */
  color: currentColor;
}
.c-icon:focus {
  outline: 0;
}
.c-icon::before {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  content: var(--bron-icon);
  display: inline-block;
}

/**
 * Generate fallback-icons.
 * Use key as name and value as icon content.
 */
/**
 * Generate icon definitions for default and optional complexities.
 */
.c-icon--\[write\] {
  --bron-icon: "\f219";
}

.c-icon--\[windscreen_wiper\] {
  --bron-icon: "\f218";
}

.c-icon--\[window\] {
  --bron-icon: "\f217";
}

.c-icon--\[wifi-no_signal\] {
  --bron-icon: "\f216";
}

.c-icon--\[wifi-medium\] {
  --bron-icon: "\f215";
}

.c-icon--\[wifi-low\] {
  --bron-icon: "\f214";
}

.c-icon--\[wifi-high\] {
  --bron-icon: "\f213";
}

.c-icon--\[wifi-disabled\] {
  --bron-icon: "\f212";
}

.c-icon--\[weather-rainy\] {
  --bron-icon: "\f211";
}

.c-icon--\[warning\], .c-icon--\[semantic-warning\] {
  --bron-icon: "\f210";
}

.c-icon--\[wallet\], .c-icon--\[semantic-fs-payment\] {
  --bron-icon: "\f20f";
}

.c-icon--\[user\], .c-icon--\[semantic-user\] {
  --bron-icon: "\f20e";
}

.c-icon--\[upload\], .c-icon--\[semantic-upload\] {
  --bron-icon: "\f20d";
}

.c-icon--\[upload-cloud\], .c-icon--\[semantic-save-cloud\] {
  --bron-icon: "\f20c";
}

.c-icon--\[upload-circle\] {
  --bron-icon: "\f20b";
}

.c-icon--\[tyres\] {
  --bron-icon: "\f20a";
}

.c-icon--\[tyre_tracks\] {
  --bron-icon: "\f209";
}

.c-icon--\[trashcan\], .c-icon--\[semantic-delete\] {
  --bron-icon: "\f208";
}

.c-icon--\[transmission-manual\], .c-icon--\[semantic-transmission-manual\] {
  --bron-icon: "\f207";
}

.c-icon--\[transmission-automatic\], .c-icon--\[semantic-transmission-automatic\] {
  --bron-icon: "\f206";
}

.c-icon--\[tire-snow-chains\], .c-icon--\[semantic-snow-chains\] {
  --bron-icon: "\f205";
}

.c-icon--\[ticket\] {
  --bron-icon: "\f204";
}

.c-icon--\[thumb-up\], .c-icon--\[semantic-like\] {
  --bron-icon: "\f203";
}

.c-icon--\[thumb-down\], .c-icon--\[semantic-dislike\] {
  --bron-icon: "\f202";
}

.c-icon--\[technical_info\] {
  --bron-icon: "\f201";
}

.c-icon--\[task-scheduled\] {
  --bron-icon: "\f200";
}

.c-icon--\[task-none\] {
  --bron-icon: "\f1ff";
}

.c-icon--\[task-done\] {
  --bron-icon: "\f1fe";
}

.c-icon--\[suitcase\], .c-icon--\[semantic-briefcase\] {
  --bron-icon: "\f1fd";
}

.c-icon--\[stopwatch\] {
  --bron-icon: "\f1fc";
}

.c-icon--\[steering_wheel\], .c-icon--\[semantic-steering-wheel\] {
  --bron-icon: "\f1fb";
}

.c-icon--\[stats\] {
  --bron-icon: "\f1fa";
}

.c-icon--\[star-half\], .c-icon--\[semantic-star-half\] {
  --bron-icon: "\f1f9";
}

.c-icon--\[star-filled\], .c-icon--\[semantic-star-filled\] {
  --bron-icon: "\f1f8";
}

.c-icon--\[spark-plug\], .c-icon--\[semantic-spark-plug\] {
  --bron-icon: "\f1f7";
}

.c-icon--\[soundwave\] {
  --bron-icon: "\f1f6";
}

.c-icon--\[sort-up\], .c-icon--\[semantic-sort-asc\] {
  --bron-icon: "\f1f5";
}

.c-icon--\[sort-down\], .c-icon--\[semantic-sort-desc\] {
  --bron-icon: "\f1f4";
}

.c-icon--\[social-youtube\], .c-icon--\[semantic-social-youtube\] {
  --bron-icon: "\f1f3";
}

.c-icon--\[social-xing\], .c-icon--\[semantic-social-xing\] {
  --bron-icon: "\f1f2";
}

.c-icon--\[social-vimeo\], .c-icon--\[semantic-social-vimeo\] {
  --bron-icon: "\f1f1";
}

.c-icon--\[social-twitter\], .c-icon--\[semantic-social-twitter\] {
  --bron-icon: "\f1f0";
}

.c-icon--\[social-rss\], .c-icon--\[semantic-social-rss\] {
  --bron-icon: "\f1ef";
}

.c-icon--\[social-pinterest\], .c-icon--\[semantic-social-pinterest\] {
  --bron-icon: "\f1ee";
}

.c-icon--\[social-linkedin\], .c-icon--\[semantic-social-linkedin\] {
  --bron-icon: "\f1ed";
}

.c-icon--\[social-instagram\], .c-icon--\[semantic-social-instagram\] {
  --bron-icon: "\f1ec";
}

.c-icon--\[social-facebook\], .c-icon--\[semantic-social-facebook\] {
  --bron-icon: "\f1eb";
}

.c-icon--\[snow\], .c-icon--\[semantic-tires-winter\] {
  --bron-icon: "\f1ea";
}

.c-icon--\[slash-circle\] {
  --bron-icon: "\f1e9";
}

.c-icon--\[signal\] {
  --bron-icon: "\f1e8";
}

.c-icon--\[shuffle\], .c-icon--\[semantic-switch\] {
  --bron-icon: "\f1e7";
}

.c-icon--\[show\] {
  --bron-icon: "\f1e6";
}

.c-icon--\[shopping_bag\] {
  --bron-icon: "\f1e5";
}

.c-icon--\[shield\] {
  --bron-icon: "\f1e4";
}

.c-icon--\[share\], .c-icon--\[semantic-share\] {
  --bron-icon: "\f1e3";
}

.c-icon--\[share-folder\] {
  --bron-icon: "\f1e2";
}

.c-icon--\[shapes\] {
  --bron-icon: "\f1e1";
}

.c-icon--\[shape-triangle\] {
  --bron-icon: "\f1e0";
}

.c-icon--\[shape-star\], .c-icon--\[semantic-star-outline\] {
  --bron-icon: "\f1df";
}

.c-icon--\[shape-square\] {
  --bron-icon: "\f1de";
}

.c-icon--\[shape-rhombus\] {
  --bron-icon: "\f1dd";
}

.c-icon--\[shape-rectangle_vertical\] {
  --bron-icon: "\f1dc";
}

.c-icon--\[shape-rectangle_rounded\] {
  --bron-icon: "\f1db";
}

.c-icon--\[shape-rectangle_horizontal\] {
  --bron-icon: "\f1da";
}

.c-icon--\[shape-circle\] {
  --bron-icon: "\f1d9";
}

.c-icon--\[settings\], .c-icon--\[semantic-settings\] {
  --bron-icon: "\f1d8";
}

.c-icon--\[send\] {
  --bron-icon: "\f1d7";
}

.c-icon--\[select\] {
  --bron-icon: "\f1d6";
}

.c-icon--\[select_all\] {
  --bron-icon: "\f1d5";
}

.c-icon--\[search\], .c-icon--\[semantic-search\] {
  --bron-icon: "\f1d4";
}

.c-icon--\[search-plus\], .c-icon--\[semantic-zoom-in\] {
  --bron-icon: "\f1d3";
}

.c-icon--\[search-minus\], .c-icon--\[semantic-zoom-out\] {
  --bron-icon: "\f1d2";
}

.c-icon--\[save-local\], .c-icon--\[semantic-save-local\] {
  --bron-icon: "\f1d1";
}

.c-icon--\[road_block\] {
  --bron-icon: "\f1d0";
}

.c-icon--\[revert\] {
  --bron-icon: "\f1cf";
}

.c-icon--\[reload\] {
  --bron-icon: "\f1ce";
}

.c-icon--\[refresh\], .c-icon--\[semantic-reload\] {
  --bron-icon: "\f1cd";
}

.c-icon--\[radar\] {
  --bron-icon: "\f1cc";
}

.c-icon--\[question-circle\], .c-icon--\[semantic-faq\] {
  --bron-icon: "\f1cb";
}

.c-icon--\[quality\], .c-icon--\[semantic-quality\] {
  --bron-icon: "\f1ca";
}

.c-icon--\[quality-medal\], .c-icon--\[semantic-guarantee\] {
  --bron-icon: "\f1c9";
}

.c-icon--\[qr_code\] {
  --bron-icon: "\f1c8";
}

.c-icon--\[pump\], .c-icon--\[semantic-fuel\] {
  --bron-icon: "\f1c7";
}

.c-icon--\[printer\], .c-icon--\[semantic-print\] {
  --bron-icon: "\f1c6";
}

.c-icon--\[price_tag\], .c-icon--\[semantic-offers\] {
  --bron-icon: "\f1c5";
}

.c-icon--\[premium-s\], .c-icon--\[semantic-premium-s\] {
  --bron-icon: "\f1c4";
}

.c-icon--\[premium-m\], .c-icon--\[semantic-premium-m\] {
  --bron-icon: "\f1c3";
}

.c-icon--\[premium-l\], .c-icon--\[semantic-premium-l\] {
  --bron-icon: "\f1c2";
}

.c-icon--\[plus\], .c-icon--\[semantic-plus\] {
  --bron-icon: "\f1c1";
}

.c-icon--\[plus-circle\] {
  --bron-icon: "\f1c0";
}

.c-icon--\[plug\], .c-icon--\[semantic-electric\] {
  --bron-icon: "\f1bf";
}

.c-icon--\[plane\], .c-icon--\[semantic-plane\] {
  --bron-icon: "\f1be";
}

.c-icon--\[piggybank\], .c-icon--\[semantic-benefit-finance\] {
  --bron-icon: "\f1bd";
}

.c-icon--\[picture\] {
  --bron-icon: "\f1bc";
}

.c-icon--\[phone\], .c-icon--\[semantic-phone\] {
  --bron-icon: "\f1bb";
}

.c-icon--\[paste\] {
  --bron-icon: "\f1ba";
}

.c-icon--\[paragraph\], .c-icon--\[semantic-paragraph\] {
  --bron-icon: "\f1b9";
}

.c-icon--\[newspaper\], .c-icon--\[semantic-news\], .c-icon--\[semantic-brochure\] {
  --bron-icon: "\f1b8";
}

.c-icon--\[news\] {
  --bron-icon: "\f1b7";
}

.c-icon--\[natural-gas\], .c-icon--\[semantic-fuel-natural-gas\] {
  --bron-icon: "\f1b6";
}

.c-icon--\[mute\] {
  --bron-icon: "\f1b5";
}

.c-icon--\[musical_note\] {
  --bron-icon: "\f1b4";
}

.c-icon--\[more-vertical\] {
  --bron-icon: "\f1b3";
}

.c-icon--\[more-horizontal\], .c-icon--\[semantic-more\] {
  --bron-icon: "\f1b2";
}

.c-icon--\[minus\], .c-icon--\[semantic-minus\] {
  --bron-icon: "\f1b1";
}

.c-icon--\[minus-circle\] {
  --bron-icon: "\f1b0";
}

.c-icon--\[microphone\] {
  --bron-icon: "\f1af";
}

.c-icon--\[message\], .c-icon--\[semantic-mail\] {
  --bron-icon: "\f1ae";
}

.c-icon--\[menu\], .c-icon--\[semantic-menu\] {
  --bron-icon: "\f1ad";
}

.c-icon--\[menu-waffle\], .c-icon--\[semantic-grid\] {
  --bron-icon: "\f1ac";
}

.c-icon--\[map-pin\] {
  --bron-icon: "\f1ab";
}

.c-icon--\[map-marker\], .c-icon--\[semantic-location\] {
  --bron-icon: "\f1aa";
}

.c-icon--\[map-map\] {
  --bron-icon: "\f1a9";
}

.c-icon--\[map-location\], .c-icon--\[semantic-navigation\] {
  --bron-icon: "\f1a8";
}

.c-icon--\[map-flag\] {
  --bron-icon: "\f1a7";
}

.c-icon--\[map-compass\] {
  --bron-icon: "\f1a6";
}

.c-icon--\[map-center\], .c-icon--\[semantic-locator\] {
  --bron-icon: "\f1a5";
}

.c-icon--\[manual\] {
  --bron-icon: "\f1a4";
}

.c-icon--\[maintenance\], .c-icon--\[semantic-service\] {
  --bron-icon: "\f1a3";
}

.c-icon--\[logout\] {
  --bron-icon: "\f1a2";
}

.c-icon--\[login\], .c-icon--\[semantic-login\] {
  --bron-icon: "\f1a1";
}

.c-icon--\[locked_steering_wheel\] {
  --bron-icon: "\f1a0";
}

.c-icon--\[lock-opened\] {
  --bron-icon: "\f19f";
}

.c-icon--\[lock-closed\], .c-icon--\[semantic-lock\] {
  --bron-icon: "\f19e";
}

.c-icon--\[list\], .c-icon--\[semantic-list\] {
  --bron-icon: "\f19d";
}

.c-icon--\[lights\] {
  --bron-icon: "\f19c";
}

.c-icon--\[information-circle\], .c-icon--\[semantic-info\] {
  --bron-icon: "\f19b";
}

.c-icon--\[information-circle-filled\] {
  --bron-icon: "\f19a";
}

.c-icon--\[inbox\] {
  --bron-icon: "\f199";
}

.c-icon--\[import\] {
  --bron-icon: "\f198";
}

.c-icon--\[id_card\] {
  --bron-icon: "\f197";
}

.c-icon--\[hybrid\], .c-icon--\[semantic-hybrid\] {
  --bron-icon: "\f196";
}

.c-icon--\[home\] {
  --bron-icon: "\f195";
}

.c-icon--\[history\] {
  --bron-icon: "\f194";
}

.c-icon--\[hide\] {
  --bron-icon: "\f193";
}

.c-icon--\[heart\], .c-icon--\[semantic-favorite\] {
  --bron-icon: "\f192";
}

.c-icon--\[heart-filled\] {
  --bron-icon: "\f191";
}

.c-icon--\[health_scan\] {
  --bron-icon: "\f190";
}

.c-icon--\[hand-key\], .c-icon--\[semantic-car-return\] {
  --bron-icon: "\f18f";
}

.c-icon--\[hand-car\], .c-icon--\[semantic-car-handover\] {
  --bron-icon: "\f18e";
}

.c-icon--\[group\] {
  --bron-icon: "\f18d";
}

.c-icon--\[globe\] {
  --bron-icon: "\f18c";
}

.c-icon--\[gear-oil\], .c-icon--\[semantic-gear-oil\] {
  --bron-icon: "\f18b";
}

.c-icon--\[gauge\], .c-icon--\[semantic-performance\] {
  --bron-icon: "\f18a";
}

.c-icon--\[front-axle\], .c-icon--\[semantic-front-wheel-drive\] {
  --bron-icon: "\f189";
}

.c-icon--\[four-wheel-drive\], .c-icon--\[semantic-four-wheel-drive\] {
  --bron-icon: "\f188";
}

.c-icon--\[folder\] {
  --bron-icon: "\f187";
}

.c-icon--\[first_aid\] {
  --bron-icon: "\f186";
}

.c-icon--\[finger_print\] {
  --bron-icon: "\f185";
}

.c-icon--\[filters\] {
  --bron-icon: "\f184";
}

.c-icon--\[filter\], .c-icon--\[semantic-filter\] {
  --bron-icon: "\f183";
}

.c-icon--\[file\], .c-icon--\[semantic-file\] {
  --bron-icon: "\f182";
}

.c-icon--\[file-new\] {
  --bron-icon: "\f181";
}

.c-icon--\[file-missing\] {
  --bron-icon: "\f180";
}

.c-icon--\[feedback\], .c-icon--\[semantic-feedback\] {
  --bron-icon: "\f17f";
}

.c-icon--\[fan\] {
  --bron-icon: "\f17e";
}

.c-icon--\[external_link\] {
  --bron-icon: "\f17d";
}

.c-icon--\[export\] {
  --bron-icon: "\f17c";
}

.c-icon--\[exit-fullscreen\], .c-icon--\[semantic-exit-fullscreen\] {
  --bron-icon: "\f17b";
}

.c-icon--\[exclamation-circle\], .c-icon--\[semantic-error\] {
  --bron-icon: "\f17a";
}

.c-icon--\[equalsign\], .c-icon--\[semantic-equalsign\] {
  --bron-icon: "\f179";
}

.c-icon--\[enter-fullscreen\], .c-icon--\[semantic-enter-fullscreen\] {
  --bron-icon: "\f178";
}

.c-icon--\[engine\], .c-icon--\[semantic-engine\] {
  --bron-icon: "\f177";
}

.c-icon--\[engine-oil\], .c-icon--\[semantic-engine-oil\] {
  --bron-icon: "\f176";
}

.c-icon--\[electric_charger\] {
  --bron-icon: "\f175";
}

.c-icon--\[edit\], .c-icon--\[semantic-edit\] {
  --bron-icon: "\f174";
}

.c-icon--\[drop\], .c-icon--\[semantic-petrol\] {
  --bron-icon: "\f173";
}

.c-icon--\[drop-filled\], .c-icon--\[semantic-diesel\] {
  --bron-icon: "\f172";
}

.c-icon--\[download\], .c-icon--\[semantic-download\] {
  --bron-icon: "\f171";
}

.c-icon--\[download-cloud\] {
  --bron-icon: "\f170";
}

.c-icon--\[download-circle\] {
  --bron-icon: "\f16f";
}

.c-icon--\[device-smartphone\], .c-icon--\[semantic-smartphone\] {
  --bron-icon: "\f16e";
}

.c-icon--\[details\], .c-icon--\[semantic-details\] {
  --bron-icon: "\f16d";
}

.c-icon--\[dealer\], .c-icon--\[semantic-dealer\] {
  --bron-icon: "\f16c";
}

.c-icon--\[cut\] {
  --bron-icon: "\f16b";
}

.c-icon--\[copy\] {
  --bron-icon: "\f16a";
}

.c-icon--\[cookie-settings\], .c-icon--\[semantic-cookie-settings\] {
  --bron-icon: "\f169";
}

.c-icon--\[control-stop\], .c-icon--\[semantic-stop\] {
  --bron-icon: "\f168";
}

.c-icon--\[control-skip_previous\] {
  --bron-icon: "\f167";
}

.c-icon--\[control-skip_next\] {
  --bron-icon: "\f166";
}

.c-icon--\[control-rewind\] {
  --bron-icon: "\f165";
}

.c-icon--\[control-reverse\] {
  --bron-icon: "\f164";
}

.c-icon--\[control-record\] {
  --bron-icon: "\f163";
}

.c-icon--\[control-play\], .c-icon--\[semantic-play\] {
  --bron-icon: "\f162";
}

.c-icon--\[control-pause\], .c-icon--\[semantic-pause\] {
  --bron-icon: "\f161";
}

.c-icon--\[control-forward\] {
  --bron-icon: "\f160";
}

.c-icon--\[contrast\] {
  --bron-icon: "\f15f";
}

.c-icon--\[comfort\] {
  --bron-icon: "\f15e";
}

.c-icon--\[cloud-co2\], .c-icon--\[semantic-emission\] {
  --bron-icon: "\f15d";
}

.c-icon--\[closed-captions-on\] {
  --bron-icon: "\f15c";
}

.c-icon--\[closed-captions-off\] {
  --bron-icon: "\f15b";
}

.c-icon--\[close\], .c-icon--\[semantic-close\] {
  --bron-icon: "\f15a";
}

.c-icon--\[close-circle\], .c-icon--\[semantic-crossed-out\] {
  --bron-icon: "\f159";
}

.c-icon--\[clock\], .c-icon--\[semantic-clock\] {
  --bron-icon: "\f158";
}

.c-icon--\[clip\] {
  --bron-icon: "\f157";
}

.c-icon--\[chevron-up\], .c-icon--\[semantic-up\], .c-icon--\[semantic-collapse\] {
  --bron-icon: "\f156";
}

.c-icon--\[chevron-right\], .c-icon--\[semantic-forward\], .c-icon--\[semantic-arrow-right\] {
  --bron-icon: "\f155";
}

.c-icon--\[chevron-previous\] {
  --bron-icon: "\f154";
}

.c-icon--\[chevron-next\] {
  --bron-icon: "\f153";
}

.c-icon--\[chevron-left\], .c-icon--\[semantic-back\] {
  --bron-icon: "\f152";
}

.c-icon--\[chevron-down\], .c-icon--\[semantic-expand\] {
  --bron-icon: "\f151";
}

.c-icon--\[chevron-double_up\] {
  --bron-icon: "\f150";
}

.c-icon--\[chevron-double_right\] {
  --bron-icon: "\f14f";
}

.c-icon--\[chevron-double_left\] {
  --bron-icon: "\f14e";
}

.c-icon--\[chevron-double_down\] {
  --bron-icon: "\f14d";
}

.c-icon--\[chevron-circle-up\] {
  --bron-icon: "\f14c";
}

.c-icon--\[chevron-circle-right\] {
  --bron-icon: "\f14b";
}

.c-icon--\[chevron-circle-left\] {
  --bron-icon: "\f14a";
}

.c-icon--\[chevron-circle-down\] {
  --bron-icon: "\f149";
}

.c-icon--\[check\], .c-icon--\[semantic-checkmark\] {
  --bron-icon: "\f148";
}

.c-icon--\[check-shield\] {
  --bron-icon: "\f147";
}

.c-icon--\[check-circle\], .c-icon--\[semantic-success\] {
  --bron-icon: "\f146";
}

.c-icon--\[chat\], .c-icon--\[semantic-chat\] {
  --bron-icon: "\f145";
}

.c-icon--\[change_order\] {
  --bron-icon: "\f144";
}

.c-icon--\[card\] {
  --bron-icon: "\f143";
}

.c-icon--\[car\], .c-icon--\[semantic-car\] {
  --bron-icon: "\f142";
}

.c-icon--\[car-tow-bar\], .c-icon--\[semantic-car-tow-bar\] {
  --bron-icon: "\f141";
}

.c-icon--\[car-star\], .c-icon--\[semantic-mobility\], .c-icon--\[semantic-car-value\] {
  --bron-icon: "\f140";
}

.c-icon--\[car-side\], .c-icon--\[semantic-car-side\] {
  --bron-icon: "\f13f";
}

.c-icon--\[car-seat\], .c-icon--\[semantic-car-seat\] {
  --bron-icon: "\f13e";
}

.c-icon--\[car-seat-child\], .c-icon--\[semantic-car-seat-child\] {
  --bron-icon: "\f13d";
}

.c-icon--\[car-seat-baby\], .c-icon--\[semantic-car-seat-baby\] {
  --bron-icon: "\f13c";
}

.c-icon--\[car-rack-rooftop\], .c-icon--\[semantic-car-rack-rooftop\] {
  --bron-icon: "\f13b";
}

.c-icon--\[car-rack-bike\], .c-icon--\[semantic-car-rack-bike\] {
  --bron-icon: "\f13a";
}

.c-icon--\[car-magnifier\], .c-icon--\[semantic-safety-check\] {
  --bron-icon: "\f139";
}

.c-icon--\[car-info\], .c-icon--\[semantic-configuration-details\] {
  --bron-icon: "\f138";
}

.c-icon--\[car-door\], .c-icon--\[semantic-car-door\] {
  --bron-icon: "\f137";
}

.c-icon--\[camera\] {
  --bron-icon: "\f136";
}

.c-icon--\[calendar\], .c-icon--\[semantic-calendar\] {
  --bron-icon: "\f135";
}

.c-icon--\[calendar-point\] {
  --bron-icon: "\f134";
}

.c-icon--\[calendar-check\] {
  --bron-icon: "\f133";
}

.c-icon--\[calculator\], .c-icon--\[semantic-calculator\] {
  --bron-icon: "\f132";
}

.c-icon--\[brightness\] {
  --bron-icon: "\f131";
}

.c-icon--\[brakes\] {
  --bron-icon: "\f130";
}

.c-icon--\[brake-fluid\], .c-icon--\[semantic-brake-fluid\] {
  --bron-icon: "\f12f";
}

.c-icon--\[box\], .c-icon--\[semantic-accessoires\] {
  --bron-icon: "\f12e";
}

.c-icon--\[bookmark\] {
  --bron-icon: "\f12d";
}

.c-icon--\[bolt\] {
  --bron-icon: "\f12c";
}

.c-icon--\[bluetooth-circle\] {
  --bron-icon: "\f12b";
}

.c-icon--\[bell\], .c-icon--\[semantic-notification\] {
  --bron-icon: "\f12a";
}

.c-icon--\[battery\] {
  --bron-icon: "\f129";
}

.c-icon--\[battery-two_thirds\] {
  --bron-icon: "\f128";
}

.c-icon--\[battery-one_third\] {
  --bron-icon: "\f127";
}

.c-icon--\[battery-full\] {
  --bron-icon: "\f126";
}

.c-icon--\[battery-empty\] {
  --bron-icon: "\f125";
}

.c-icon--\[bar_code\] {
  --bron-icon: "\f124";
}

.c-icon--\[balloon\], .c-icon--\[semantic-contact\] {
  --bron-icon: "\f123";
}

.c-icon--\[back_to_parent\] {
  --bron-icon: "\f122";
}

.c-icon--\[audio-on\], .c-icon--\[semantic-volume\], .c-icon--\[semantic-volume-up\] {
  --bron-icon: "\f121";
}

.c-icon--\[audio-off\] {
  --bron-icon: "\f120";
}

.c-icon--\[audio-mute\], .c-icon--\[semantic-volume-down\] {
  --bron-icon: "\f11f";
}

.c-icon--\[audio-mid\] {
  --bron-icon: "\f11e";
}

.c-icon--\[assistance\] {
  --bron-icon: "\f11d";
}

.c-icon--\[artboard\] {
  --bron-icon: "\f11c";
}

.c-icon--\[arrow-up\] {
  --bron-icon: "\f11b";
}

.c-icon--\[arrow-top_right\] {
  --bron-icon: "\f11a";
}

.c-icon--\[arrow-top_left\] {
  --bron-icon: "\f119";
}

.c-icon--\[arrow-right\] {
  --bron-icon: "\f118";
}

.c-icon--\[arrow-left\] {
  --bron-icon: "\f117";
}

.c-icon--\[arrow-down\] {
  --bron-icon: "\f116";
}

.c-icon--\[arrow-curved-up\] {
  --bron-icon: "\f115";
}

.c-icon--\[arrow-curved-up_flipped\] {
  --bron-icon: "\f114";
}

.c-icon--\[arrow-curved-right\] {
  --bron-icon: "\f113";
}

.c-icon--\[arrow-curved-right_flipped\] {
  --bron-icon: "\f112";
}

.c-icon--\[arrow-curved-left\] {
  --bron-icon: "\f111";
}

.c-icon--\[arrow-curved-left_flipped\] {
  --bron-icon: "\f110";
}

.c-icon--\[arrow-curved-down\] {
  --bron-icon: "\f10f";
}

.c-icon--\[arrow-curved-down_flipped\] {
  --bron-icon: "\f10e";
}

.c-icon--\[arrow-circle-up\] {
  --bron-icon: "\f10d";
}

.c-icon--\[arrow-circle-top_right\] {
  --bron-icon: "\f10c";
}

.c-icon--\[arrow-circle-top_left\] {
  --bron-icon: "\f10b";
}

.c-icon--\[arrow-circle-right\] {
  --bron-icon: "\f10a";
}

.c-icon--\[arrow-circle-left\] {
  --bron-icon: "\f109";
}

.c-icon--\[arrow-circle-down\] {
  --bron-icon: "\f108";
}

.c-icon--\[arrow-circle-bottom_right\] {
  --bron-icon: "\f107";
}

.c-icon--\[arrow-circle-bottom_left\] {
  --bron-icon: "\f106";
}

.c-icon--\[arrow-bottom_right\] {
  --bron-icon: "\f105";
}

.c-icon--\[arrow-bottom_left\] {
  --bron-icon: "\f104";
}

.c-icon--\[archive\] {
  --bron-icon: "\f103";
}

.c-icon--\[air-filter\], .c-icon--\[semantic-air-filter\] {
  --bron-icon: "\f102";
}

.c-icon--\[add\], .c-icon--\[semantic-add\] {
  --bron-icon: "\f101";
}

/**
 * Extend icon selectors for semantic icons.
 */
.c-icon--\[semantic-accessoires\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-add\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-air-filter\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-arrow-right\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-back\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-benefit-finance\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-brake-fluid\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-briefcase\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-brochure\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-calculator\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-calendar\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-car-door\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-car-handover\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-car-rack-bike\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-car-rack-rooftop\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-car-return\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-car-seat-baby\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-car-seat-child\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-car-seat\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-car-side\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-car-tow-bar\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-car-value\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-car\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-chat\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-checkmark\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-clock\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-close\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-collapse\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-configuration-details\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-contact\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-cookie-settings\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-crossed-out\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-dealer\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-delete\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-details\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-diesel\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-dislike\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-download\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-edit\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-electric\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-emission\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-engine-oil\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-engine\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-enter-fullscreen\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-equalsign\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-error\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-exit-fullscreen\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-expand\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-faq\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-favorite\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-feedback\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-file\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-filter\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-forward\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-four-wheel-drive\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-front-wheel-drive\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-fs-payment\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-fuel-natural-gas\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-fuel\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-gear-oil\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-grid\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-guarantee\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-hybrid\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-info\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-like\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-list\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-location\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-locator\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-lock\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-login\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-mail\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-menu\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-minus\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-mobility\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-more\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-navigation\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-news\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-notification\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-offers\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-paragraph\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-pause\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-performance\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-petrol\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-phone\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-plane\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-play\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-plus\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-premium-l\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-premium-m\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-premium-s\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-print\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-quality\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-reload\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-safety-check\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-save-cloud\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-save-local\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-search\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-service\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-settings\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-share\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-smartphone\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-snow-chains\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-social-facebook\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-social-instagram\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-social-linkedin\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-social-pinterest\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-social-rss\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-social-twitter\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-social-vimeo\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-social-xing\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-social-youtube\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-sort-asc\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-sort-desc\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-spark-plug\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-star-filled\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-star-half\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-star-outline\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-steering-wheel\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-stop\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-success\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-switch\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-tires-winter\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-transmission-automatic\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-transmission-manual\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-up\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-upload\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-user\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-volume-down\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-volume-up\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-volume\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-warning\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-zoom-in\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

.c-icon--\[semantic-zoom-out\] { /* stylelint-disable-line scss/at-extend-no-missing-placeholder */ }

/**
 * Extend icon selectors for fallbacks.
 */
/**
 * Generate combo modifier for size & complexity.
 */
/**
* Generate sizing modifiers.
*/
.c-icon--xxsmall {
  font-size: 1.25rem;
}

.c-icon--xsmall {
  font-size: 1.5rem;
}

.c-icon--small {
  font-size: 2rem;
}

.c-icon--large {
  font-size: 3rem;
}

.c-icon--xlarge {
  font-size: 4rem;
}

.c-icon--xxlarge {
  font-size: 6rem;
}

/* ------------------------------------*\
    #HEADER
\*------------------------------------ */
/**
 * [1] Use `auto` instead of `0` in case there are other fixed elements above
 *     the header component (e.g. notifications).
 * [2] Only output a background-color if a color is defined. This way, if you
 *     don’t want any background on the header (i.e. transparent), no CSS is
 *     generated.
 * [3] Variant to force a `position: static`. Useful if your default header
 *     is absolute or sticky, but you also need a variant that provides a
 *     static header that sits in the normal flow of the page.
 * [4] Only apply a spacing-bottom if it’s not absolute or fixed positioned.
 * [5] Make sure that all elements of the header are aligned to the outer edges.
 * [6] If the default spacing-bottom for the static header alters on small
 *     screen, assign it for that specific media-query.
 * [7] Position `.c-header__nav` after `.c-header__notification-center` in
 *     small viewports.
 * [8] Make sure that the header always spans all its children.
 * [9] Stretch the log to full height by making the container a flexbox container.
 * [10] Center the sub brand logo vertically in the header.
 * [11] Push the sub brand logo to left.
 * [12] Adjust the spacing between the sub brand logo and the logo in small
 *      viewports to avoid horizontal scrolling.
 * [13] Apply a safe-space to the sub-brand logo on the right-hand side if it is
 *      not the last element and only for larger viewports.
 */
.c-header__wrapper {
  position: relative;
  z-index: 2000;
}

.c-header {
  width: -moz-fit-content;
  width: fit-content; /* [8] */ /* stylelint-disable-line scale-unlimited/declaration-strict-value */
  height: 64px;
  min-width: 100%;
  margin-bottom: 0; /* [4] */
  background-color: #ffffff; /* [2] */
  border-bottom: 1px solid #e4e4e4;
}
@media (max-width: 960px) {
  .c-header {
    height: 64px;
  }
}
.c-header.c-header--static { /* [3] */
  position: static;
  margin-bottom: 0; /* [4] */
}

.c-header__content-wrapper {
  max-width: calc(1248px + 192px);
  padding-left: 96px;
  padding-right: 96px;
  --page-wrap: 96px;
  margin-right: auto;
  margin-left: auto;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between; /* [5] */
  height: 64px;
}
@media (max-width: 960px) {
  .c-header__content-wrapper {
    max-width: calc(1248px + 96px);
    padding-left: 48px;
    padding-right: 48px;
    --page-wrap: 48px;
  }
}
@media (max-width: 720px) {
  .c-header__content-wrapper {
    max-width: calc(1248px + 48px);
    padding-left: 24px;
    padding-right: 24px;
    --page-wrap: 24px;
  }
}
@media (max-width: 480px) {
  .c-header__content-wrapper {
    max-width: calc(1248px + 24px);
    padding-left: 12px;
    padding-right: 12px;
    --page-wrap: 12px;
  }
}
@media (max-width: 960px) {
  .c-header__content-wrapper {
    height: 64px;
  }
}

.c-header__logo {
  margin-right: 16px;
}

.c-header__sub-brand-logo {
  display: none;
}

.c-header__nav {
  display: flex; /* [6] */
}
@media (min-width: 961px) {
  .c-header__nav {
    flex-grow: 1;
    flex-shrink: 1;
    flex-basis: 100%;
  }
}
@media (max-width: 960px) {
  .c-header__nav {
    order: 1; /* [7] */
  }
}

.c-header__notification-center {
  position: relative;
  height: 100%;
}

/* ------------------------------------*\
    #FOOTER
\*------------------------------------ */
/**
 * [1] If no breadcrumb is included in the footer, hide the container.
 * [2] If the meta nav has a deviating background color, assign it.
 * [3] If the footnotes have a deviating background color, assign it.
 * [4] Manage automatic vertical spacing between nav columns when stacked.
 * [5] Responsive behaviour without media-queries, i.e. don’t let the columns
 *     shrink under a width of `$footer-nav-column-min-width`...
 * [6] ...but force a one-column layout at breakpoint and below.
 * [7] Only hide the accordion panel when the JS is loaded.
 * [8] Make sure to just provide the whole accordion-on-small-screen
 *     shizzle-dizzle, when JS is loaded.
 * [9] Reset potential browser default margin for certain HTML elements and
 *     instead assign the bottom spacing to `.c-footer-nav__title`.
 * [10] Make sure that the presented HTML elements make sense for accessibility.
 *      The `.is-heading`/`.is-button` classes are added dynamically via JS, so
 *      with this progressive mechanism we make sure that this all happens just
 *      when JS is loaded.
 * [11] Align meta bar content at the top edge of the flex container.
 * [12] If the meta nav has a deviating background color, we need to add a
 *      padding to the top to give it some space to the footer nav.
 * [13] If the footer nav has a border, we need to add a padding to the top to
 *      give it some space to the footer nav.
 * [14] If the meta nav is the first element inside the footer, it needs a
 *      top padding.
 * [15] If the meta nav is the last element inside the footer, we set the
 *      padding bottom equal to the superior footer padding-bottom.
 * [16] If the meta nav is the only child of the footer, we want the same
 *      padding at the top and the bottom.
 * [17] If the meta nav is the direct following element of the breadcrumb
 *      (i.e. the footer nav is missing), we need to offset the meta nav from
 *      the breadcrumb.
 * [18] If the breadcrumb is hidden, so the meta nav is _visually_ the first
 *      element in the footer, replace the margin with a padding, so the meta
 *      nav items are not stuck at the top of the footer.
 * [19] Enable meta nav bar to occupy relatively more space if necessary.
 * [20] Ensure that social media link spans and thus is clickable over the whole
 *      size of the social media icon.
 * [21] Align sign and text (media-object like).
 * [22] Enforce line break for '.c-footer-copyright' and ensure that full width
 *      of the container is used.
 * [23] Reset potential browser default margin for social media element and links.
 * [24] Ensure wrapping (column layout).
 * [25] Check if the icon should be rendered as either a round or square variant.
 * [26] Prevent doubling the spacing when the breadcrumb is followed by the meta nav.
 */
.c-footer {
  background-color: #303132;
  color: #ffffff;
}

.c-footer__module.c-footer__module--breadcrumb {
  display: none; /* [1] */
}
.c-footer__module.c-footer__module--breadcrumb {
  /* [2] */
}

.c-footer-breadcrumb {
  padding-top: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid #161718;
}

.c-footer-nav {
  padding-top: 48px;
  padding-bottom: 48px;
}

.c-footer-nav__columns {
  display: flex;
  flex-wrap: wrap;
  margin-top: -16px; /* [4] */
}

.c-footer-nav__column {
  flex-grow: 1; /* [5] */
  flex-shrink: 1; /* [5] */
  flex-basis: 200px; /* [5] */
  margin-top: 16px; /* [4] */
  margin-right: 16px;
}
@media (max-width: 720px) {
  .c-footer-nav__column {
    flex-basis: 100%; /* [6] */
    margin-right: 0;
  }
}

.c-footer-nav__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.c-footer-nav__list li {
  display: block;
  margin-bottom: 0;
}

.c-footer-nav__title {
  margin-bottom: 0;
}

.c-footer-nav__title-label {
  font-size: 1rem;
  line-height: 1.5;
  padding: 0;
  border: 0;
  background-color: transparent;
  margin-bottom: 0; /* [9] */
  font-family: "skoda-next", Arial, sans-serif;
  font-weight: 700;
  color: #9e9fa0;
}
.c-footer-nav__title-label:focus {
  outline: 0;
}
@media (max-width: 720px) {
  .c-footer-nav__title-label.is-heading {
    display: none; /* [10] */
  }
}
@media (min-width: 721px) {
  .c-footer-nav__title-label.is-button {
    display: none; /* [10] */
  }
}

.c-footer-nav__item {
  padding-top: 4px;
  padding-bottom: 4px;
}

.c-footer-nav__link {
  font-size: 0.875rem;
  line-height: 1.7142857143;
  font-weight: 700;
  text-decoration: none;
  color: #ffffff;

  /** a11y **/
  min-height: 44px;
  vertical-align: middle;
  align-items: center;
  display: flex;
}
.c-footer-nav__link:hover, .c-footer-nav__link:focus, .c-footer-nav__link:active {
  color: #ffffff;
}

.c-footer-meta-bar {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-start; /* [11] */
  padding-bottom: 16px;
}
@media (max-width: 720px) {
  .c-footer-meta-bar > * {
    flex-basis: 100%; /* [24] */
  }
}
.c-footer__module--meta-nav:first-child .c-footer-meta-bar {
  padding-top: 16px; /* [14] */
}
.c-footer__module--meta-nav:last-child .c-footer-meta-bar {
  padding-bottom: 48px; /* [15] */
}
.c-footer__module--meta-nav:last-child:only-child .c-footer-meta-bar {
  padding-bottom: 16px; /* [16] */
}
.c-footer__module--breadcrumb + .c-footer__module--meta-nav .c-footer-meta-bar {
  margin-top: 0;
  padding-top: 16px; /* [18] */
}

.c-footer-meta-nav {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  flex-grow: 1; /* [19] */
  flex-shrink: 1;
  flex-basis: auto;
  padding-bottom: 16px;
}
.c-footer-meta-nav li {
  display: block;
  margin-bottom: 0;
}
@media (max-width: 720px) {
  .c-footer-meta-nav {
    flex-direction: column;
  }
}

@media (min-width: 721px) {
  .c-footer-meta-nav__item:not(:last-child) {
    margin-right: 16px;
  }
}

.c-footer-meta-nav__link {
  font-size: 0.875rem;
  line-height: 1.7142857143;
  display: block;
  text-decoration: none;
  color: #9e9fa0;
}
.c-footer-meta-nav__link:hover, .c-footer-meta-nav__link:focus, .c-footer-meta-nav__link:active {
  color: #ffffff;
}

.c-footer-social-media {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  column-gap: 24px; /* [27] */
  margin: 0; /* [23] */
  padding-bottom: 16px;
  list-style: none;
}
@media (max-width: 720px) {
  .c-footer-social-media {
    justify-content: center;
  }
}

.c-footer-social-media__item {
  margin-bottom: 0; /* [23] */
}

.c-footer-social-media__link {
  display: flex; /* [20] */
}

.c-footer-social-media__icon {
  font-size: 32px;
  line-height: 1;
  text-decoration: none;
  color: #ffffff;
}
.c-footer-social-media__icon:hover, .c-footer-social-media__icon:focus, .c-footer-social-media__icon:active {
  color: #ffffff;
}

.c-footer-copyright {
  font-size: 0.875rem;
  display: inline-flex; /* [21] */
  flex-grow: 0;
  flex-shrink: 1;
  flex-basis: 100%; /* [22] */
  color: #9e9fa0;
}
.c-footer-copyright__sign {
  margin-right: 0.25em;
}

.c-footer-footnotes {
  font-size: 0.75rem;
  padding-top: 8px;
  padding-bottom: 48px;
  font-weight: 400;
  color: #9e9fa0;
}
.c-footer-footnotes a {
  color: inherit;
}
.c-footer-footnotes a:hover, .c-footer-footnotes a:focus, .c-footer-footnotes a:active {
  color: inherit;
}

/* ------------------------------------*\
    #FOOTER
\*------------------------------------ */
@media (max-width: 720px) {
  .c-footer-meta-nav {
    gap: 8px;
    padding-bottom: 48px;
  }
}

/* ------------------------------------*\
    #BADGE
\*------------------------------------ */
/**
 * [1] Display the badge in line with the label and other badges, even if
 *     the badge contains an icon and handles correct wrapping when available
 *     space is exceeded.
 *     Resolves inline-block space issue that can occur for example when
 *     markup is minified.
 * [2] Vertically center the icon inside the badge.
 * [3] Vertically center the label next to the badge.
 * [4] Prevent distortion (keep 1:1 size).
 * [5] Apply all flexbox properties with default values (legacy support).
 */
.c-badge__wrapper {
  display: inline-flex; /* [1] */
  align-items: baseline;
}
.c-badge__wrapper .c-badge__label {
  margin-left: 8px;
  vertical-align: middle; /* [3] */
}
.c-badge__wrapper .c-badge {
  flex-grow: 1; /* [4] */
  flex-shrink: 0; /* [4] */
  flex-basis: auto; /* [5] */
}

.c-badge {
  font-size: 0.75rem;
  line-height: 24px;
  position: relative;
  display: inline-block;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.05em;
  background-color: #c4c6c7;
  color: #161718;
  vertical-align: middle; /* [1] */
}
.c-badge.c-badge--success, .c-badge.c-badge--positive {
  background-color: #37d002;
  color: #161718;
}
.c-badge.c-badge--warning {
  background-color: #cd4a19;
  color: #ffffff;
}
.c-badge.c-badge--notification {
  background-color: #cd4a19;
  color: #ffffff;
}
.c-badge.c-badge--error, .c-badge.c-badge--negative {
  background-color: #d92b35;
  color: #ffffff;
}
.c-badge .c-badge__icon {
  font-size: 20px;
  line-height: inherit; /* [2] */
  vertical-align: top; /* [3] */
  color: inherit;
}

.c-badge__label {
  font-size: 1rem;
}

/* stylelint-disable length-zero-no-unit */
/* stylelint-enable length-zero-no-unit */
/* ------------------------------------*\
    #BUTTONS
\*------------------------------------ */
/* stylelint-disable scss/no-duplicate-dollar-variables */
/* stylelint-disable-line scss/dollar-variable-default */
/* stylelint-disable-line scss/dollar-variable-default */
/* stylelint-enable scss/no-duplicate-dollar-variables */
/* [16] */
/**
 * [1] `inline-flex` is a good method to center elements vertically inside of
 *     the button.
 * [2] Center text, and text to icon horizontally and vertically inside of the
 *     button.
 * [3] Make the cursor behaviour the same for `<button>` and `<a>` elements.
 * [4] `<a>` elements are left aligned by default. Override this to match
 *     `<button>` and `<a>` elements.
 * [5] Text left, icon right.
 * [6] Icon left, text right.
 * [7] Increase specificity, so that the styles don’t get overridden later on by different themes.
 *      @TODO: This is definitely a code smell and should be refactored.
 *             https://jira.platform.vwfs.io/browse/BRON-6709
 * [8] Fix for iOS bug, where the button text is not centered (BRON-534). Just
 *     occurs in iOS 10 or lower (every browser), for the full-width button and
 *     only, if it's a `<button>` element.
 * [9] Prevent text selection on all button (sub-) elements, especially for
 *      touch-devices, i.e. a `<span>` element in the button.
 * [10] Prevent the padding from becoming negative.
 * [11] Although this declaration is in an if-condition that only matches for
 *      fixed height buttons, it is still a sensible idea to assign a
 *      min-height rather than a fixed height, so the button grows if the text
 *      does not fit vertically.
 * [12] Remove transition causing delay with animation of the inner icon of the
 *      `.c-btn--icon` variant on hover. This effect would be visible if the
 *      text- and icon-color would change on hover.
 * [13] Limit the height of `.c-btn--link`, so it does not inherit its height
 *      from `.c-btn` and only takes up the height it needs.
 * [14] Override line-height, set by default button component. This is needed, so
 *      that the icon gets its correct height.
 * [15] Align the content left for link buttons. This only has an effect if
 *      the button is larger than its content, e.g. when combining a
 *      `.c-btn--link` with `.c-btn--full`.
 * [16] If the icon only variant needs a special border-radius, i.e. VW6.
 * [17] Also apply focus styles when an element is focused that is a child
 *      of a shared parent element. This is needed for buttons in the
 *      upload component (`.c-upload`).
 * [18] The native `disabled` attribute prevents`:hover` and `:active` events,
 *      but we need to proactively exclude synthetic `.is-disabled` selectors
 *      from receiving `:active` styles.
 * [19] Without a transparent border the link will "jump" on hover.
 * [20] Raise the specificity to prevent leaks from `.c-btn--secondary` in a theme context.
 *      @TODO: This is definitely a code smell and should be refactored.
 *             https://jira.platform.vwfs.io/browse/BRON-6709
 * [21] Margin between icon and text.
 * [22] Negative horizontal icon margin that centers the icon when collapsed and
 *      ensures that it remains fixed during the transition.
 * [23] We don’t want the centered alignment of the default button here,
 * [24] Since the Incognito icon is always square, or circular, when collapsed,
 *      it must be at least as wide as it is tall.
 * [25] We need a maximum width so that the expanded Incognito button
 *      (when used in the Float Grid) is not wider than the viewport.
 * [26] We need to hide overflowing content otherwise the text would be
 *      visible during the transition.
 * [27] Truncate the text with an ellipse (…) if it does not fit.
 * [28] Use CSS custom properties conditionals to control the the collapsed
 *      state where the text is hidden and only the icon is shown. This way we
 *      control enable the collapsed state from other components as well.
 *      Learn more about this technique here:
 *      - https://dev.to/siddharthshyniben/conditional-logic-with-css-the-css-custom-property-trick-44hb
 *      - https://lea.verou.me/2020/10/the-var-space-hack-to-toggle-multiple-values-with-one-custom-property/
 * [29] When the reverse selector is applied, reverse the flex-flow of the button.
 *      Force the flex-order of the icon element `.c-btn__icon` to always be displayed first
 *      when it is the first child element of the button.
 * [30] Reset all button child elements spacings and apply them via `column-gap`
 *      on the main button element.
 * [31] Ensure icon is centered horizontally & vertically.
 */
/* stylelint-disable selector-max-class, selector-max-specificity */
.c-btn {
  --button-height: 44px;
  --button-padding-horizontal: 24px;
  --button-padding-vertical: 0; /* [10] */
  --button-icon-size: 24px;
  --button-text-icon-spacing: 8px;
  --button-border-width: 0px; /* stylelint-disable-line length-zero-no-unit */
  font-size: 1rem;
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  display: inline-flex; /* [1] */
  align-items: center; /* [2] */
  justify-content: center; /* [2] */
  flex-direction: var(--button-flex-direction, row);
  padding: var(--button-padding-vertical) var(--button-padding-horizontal);
  border-color: var(--button-border-color);
  border-radius: 50px;
  font-family: "skoda-next", Arial, sans-serif;
  font-weight: 700;
  text-decoration: none;
  text-transform: inherit;
  line-height: 24px;
  text-align: center; /* [4] */
  vertical-align: middle;
  background-color: var(--button-background);
  color: var(--button-text-color);
  box-shadow: var(--button-box-shadow);
  cursor: pointer; /* [3] */
  min-height: 44px; /* [11] */
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
.c-btn {
  --button-border-color: var(--button-primary-border-color);
  --button-background: var(--button-primary-background, #78faae);
  --button-text-color: var(--button-primary-text-color, #161718);
  --button-box-shadow: var(--button-primary-box-shadow);
  --button-border-width: 0;
  border-width: var(--button-border-width);
  /**
   * @TODO: needs refactoring, see [7]
   * Opt-out btn--link styles for action buttons.
   *
   * `action` modifier can not be combined with `link`
   * avoid unnecessary style generation
   */
}
.c-btn:hover, .c-btn:focus, label:focus-within .c-btn { /* [17] */
  --button-border-color: var(--button-primary-border-color-hover);
  --button-background: var(--button-primary-background-hover, #a8ffcc);
  --button-text-color: var(--button-primary-text-color-hover);
  --button-box-shadow: var(--button-primary-box-shadow-hover);
}
.c-btn:not(.is-disabled):active { /* [18] */
  --button-border-color: var(--button-primary-border-color-active);
  --button-background: var(--button-primary-background-active, #a8ffcc);
  --button-text-color: var(--button-primary-text-color-active);
  --button-box-shadow: var(--button-primary-box-shadow-active);
}
.c-btn[disabled], .c-btn.is-disabled {
  --button-border-color: var(--button-primary-border-color-disabled);
  --button-background: var(--button-primary-background-disabled, #d8d8d8);
  --button-text-color: var(--button-primary-text-color-disabled, #9e9fa0);
  --button-box-shadow: var(--button-primary-box-shadow-disabled);
}
.c-btn[disabled]:hover, .c-btn[disabled]:focus, .c-btn.is-disabled:hover, .c-btn.is-disabled:focus {
  --button-border-color: var(--button-primary-border-color-disabled-hover);
  --button-background: var(--button-primary-background-disabled-hover);
  --button-text-color: var(--button-primary-text-color-disabled-hover);
  --button-box-shadow: var(--button-primary-box-shadow-disabled-hover);
}
.c-btn.c-btn--link {
  justify-content: flex-end; /* [15] */
}
.c-btn.c-btn--link:hover, .c-btn.c-btn--link:focus {
  background: none;
  box-shadow: none;
}
.c-btn.c-btn--link:hover .c-btn__text, .c-btn.c-btn--link:focus .c-btn__text {
  color: #39815c;
}
.c-btn.c-btn--link:hover .c-btn__icon, .c-btn.c-btn--link:focus .c-btn__icon {
  color: #39815c;
}
.c-btn.c-btn--link:not(.is-disabled):active { /* [18] */ }
.c-btn.c-btn--link .c-btn__text {
  color: #161718;
}
.c-btn.c-btn--link .c-btn__icon {
  color: #161718;
}
.c-btn.c-btn--link[disabled] .c-btn__text, .c-btn.c-btn--link.is-disabled .c-btn__text {
  color: #c4c6c7;
}
.c-btn.c-btn--link[disabled] .c-btn__icon, .c-btn.c-btn--link.is-disabled .c-btn__icon {
  color: #c4c6c7;
}
.c-btn.c-btn--simple.c-btn--simple { /* [7] */ }
.c-btn.c-btn--simple.c-btn--simple .c-btn__icon::before {
  padding: 0;
  border: 0;
  background: none;
}
.c-btn.c-btn--icon-only.c-btn--icon-only { /* [7] */
  min-width: 0;
  border: 0 solid transparent;
  background-color: #78faae;
}
.c-btn.c-btn--icon-only.c-btn--icon-only .c-btn__icon {
  color: #161718;
}
.c-btn.c-btn--icon-only.c-btn--icon-only:hover, .c-btn.c-btn--icon-only.c-btn--icon-only:focus {
  border: 0 solid;
  background-color: #a8ffcc;
}
.c-btn.c-btn--icon-only.c-btn--icon-only:not(.is-disabled):active { /* [18] */
  border: 0 solid;
  background-color: #a8ffcc;
}
.c-btn.c-btn--icon-only.c-btn--icon-only[disabled], .c-btn.c-btn--icon-only.c-btn--icon-only.is-disabled {
  background-color: #d8d8d8;
}
.c-btn.c-btn--icon-only.c-btn--icon-only[disabled] .c-btn__icon, .c-btn.c-btn--icon-only.c-btn--icon-only.is-disabled .c-btn__icon {
  color: #9e9fa0;
}

.c-btn.c-btn--secondary {
  --button-border-color: var(--button-secondary-border-color);
  --button-background: var(--button-secondary-background, #464748);
  --button-text-color: var(--button-secondary-text-color, #ffffff);
  --button-box-shadow: var(--button-secondary-box-shadow);
  border-width: var(--button-border-width);
  /**
   * @TODO: needs refactoring, see [7]
   * Opt-out btn--link styles for action buttons.
   *
   * `action` modifier can not be combined with `link`
   * avoid unnecessary style generation
   */
}
.c-btn.c-btn--secondary:hover, .c-btn.c-btn--secondary:focus, label:focus-within .c-btn.c-btn--secondary { /* [17] */
  --button-border-color: var(--button-secondary-border-color-hover);
  --button-background: var(--button-secondary-background-hover, #5a5b5c);
  --button-text-color: var(--button-secondary-text-color-hover, #ffffff);
  --button-box-shadow: var(--button-secondary-box-shadow-hover);
}
.c-btn.c-btn--secondary:not(.is-disabled):active { /* [18] */
  --button-border-color: var(--button-secondary-border-color-active);
  --button-background: var(--button-secondary-background-active, #5a5b5c);
  --button-text-color: var(--button-secondary-text-color-active, #ffffff);
  --button-box-shadow: var(--button-secondary-box-shadow-active);
}
.c-btn.c-btn--secondary[disabled], .c-btn.c-btn--secondary.is-disabled {
  --button-border-color: var(--button-secondary-border-color-disabled);
  --button-background: var(--button-secondary-background-disabled, #d8d8d8);
  --button-text-color: var(--button-secondary-text-color-disabled, #9e9fa0);
  --button-box-shadow: var(--button-secondary-box-shadow-disabled);
}
.c-btn.c-btn--secondary[disabled]:hover, .c-btn.c-btn--secondary[disabled]:focus, .c-btn.c-btn--secondary.is-disabled:hover, .c-btn.c-btn--secondary.is-disabled:focus {
  --button-border-color: var(--button-secondary-border-color-disabled-hover);
  --button-background: var(--button-secondary-background-disabled-hover);
  --button-text-color: var(--button-secondary-text-color-disabled-hover);
  --button-box-shadow: var(--button-secondary-box-shadow-disabled-hover);
}
.c-btn.c-btn--secondary.c-btn--link {
  justify-content: flex-end; /* [15] */
}
.c-btn.c-btn--secondary.c-btn--link:hover, .c-btn.c-btn--secondary.c-btn--link:focus {
  background: none;
  box-shadow: none;
}
.c-btn.c-btn--secondary.c-btn--link:hover .c-btn__icon, .c-btn.c-btn--secondary.c-btn--link:focus .c-btn__icon {
  color: #39815c;
}
.c-btn.c-btn--secondary.c-btn--link:not(.is-disabled):active { /* [18] */ }
.c-btn.c-btn--secondary.c-btn--link .c-btn__icon {
  color: #161718;
}
.c-btn.c-btn--secondary.c-btn--link[disabled] .c-btn__icon, .c-btn.c-btn--secondary.c-btn--link.is-disabled .c-btn__icon {
  color: #c4c6c7;
}
.c-btn.c-btn--secondary.c-btn--simple.c-btn--simple { /* [7] */ }
.c-btn.c-btn--secondary.c-btn--simple.c-btn--simple .c-btn__icon::before {
  padding: 0;
  border: 0;
  background: none;
}
.c-btn.c-btn--secondary.c-btn--icon-only.c-btn--icon-only { /* [7] */
  min-width: 0;
  border: 0 solid;
  background-color: transparent;
}
.c-btn.c-btn--secondary.c-btn--icon-only.c-btn--icon-only:hover, .c-btn.c-btn--secondary.c-btn--icon-only.c-btn--icon-only:focus {
  border: 0 solid;
  background-color: rgba(22, 23, 24, 0.06);
}
.c-btn.c-btn--secondary.c-btn--icon-only.c-btn--icon-only:not(.is-disabled):active { /* [18] */
  border: 0 solid;
  background-color: rgba(22, 23, 24, 0.06);
}
.c-btn.c-btn--secondary.c-btn--icon-only.c-btn--icon-only[disabled], .c-btn.c-btn--secondary.c-btn--icon-only.c-btn--icon-only.is-disabled {
  background-color: #d8d8d8;
}
.c-btn.c-btn--secondary.c-btn--icon-only.c-btn--icon-only[disabled] .c-btn__icon, .c-btn.c-btn--secondary.c-btn--icon-only.c-btn--icon-only.is-disabled .c-btn__icon {
  color: #9e9fa0;
}

.c-btn.c-btn--action {
  --button-border-color: var(--button-action-border-color);
  --button-background: var(--button-action-background, #78faae);
  --button-text-color: var(--button-action-text-color);
  --button-box-shadow: var(--button-action-box-shadow);
  --button-padding-horizontal: calc(var(--button-height) / 2);
  --button-border-width: 0px;
  border-width: var(--button-border-width);
  border-radius: calc(var(--button-height) / 2);
  /**
   * @TODO: needs refactoring, see [7]
   * Opt-out btn--link styles for action buttons.
   *
   * `action` modifier can not be combined with `link`
   * avoid unnecessary style generation
   */
}
.c-btn.c-btn--action:hover, .c-btn.c-btn--action:focus, label:focus-within .c-btn.c-btn--action { /* [17] */
  --button-border-color: var(--button-action-border-color-hover);
  --button-background: var(--button-action-background-hover, #a8ffcc);
  --button-text-color: var(--button-action-text-color-hover);
  --button-box-shadow: var(--button-action-box-shadow-hover);
}
.c-btn.c-btn--action:not(.is-disabled):active { /* [18] */
  --button-border-color: var(--button-action-border-color-active);
  --button-background: var(--button-action-background-active, #a8ffcc);
  --button-text-color: var(--button-action-text-color-active);
  --button-box-shadow: var(--button-action-box-shadow-active);
}
.c-btn.c-btn--action[disabled], .c-btn.c-btn--action.is-disabled {
  --button-border-color: var(--button-action-border-color-disabled);
  --button-background: var(--button-action-background-disabled, #d8d8d8);
  --button-text-color: var(--button-action-text-color-disabled, #9e9fa0);
  --button-box-shadow: var(--button-action-box-shadow-disabled);
}
.c-btn.c-btn--action[disabled]:hover, .c-btn.c-btn--action[disabled]:focus, .c-btn.c-btn--action.is-disabled:hover, .c-btn.c-btn--action.is-disabled:focus {
  --button-border-color: var(--button-action-border-color-disabled-hover);
  --button-background: var(--button-action-background-disabled-hover);
  --button-text-color: var(--button-action-text-color-disabled-hover);
  --button-box-shadow: var(--button-action-box-shadow-disabled-hover);
}
.c-btn.c-btn--action.c-btn--simple.c-btn--simple { /* [7] */ }
.c-btn.c-btn--action.c-btn--simple.c-btn--simple .c-btn__icon::before {
  padding: 0;
  border: 0;
  background: none;
}
.c-btn.c-btn--action.c-btn--icon-only.c-btn--icon-only { /* [7] */
  min-width: 0;
  border: 0 solid;
}
.c-btn.c-btn--action.c-btn--icon-only.c-btn--icon-only:hover, .c-btn.c-btn--action.c-btn--icon-only.c-btn--icon-only:focus {
  border: 0 solid;
}
.c-btn.c-btn--action.c-btn--icon-only.c-btn--icon-only:not(.is-disabled):active { /* [18] */
  border: 0 solid;
}
.c-btn.c-btn--action.c-btn--icon-only.c-btn--icon-only[disabled], .c-btn.c-btn--action.c-btn--icon-only.c-btn--icon-only.is-disabled {
  background-color: #d8d8d8;
}
.c-btn.c-btn--action.c-btn--icon-only.c-btn--icon-only[disabled] .c-btn__icon, .c-btn.c-btn--action.c-btn--icon-only.c-btn--icon-only.is-disabled .c-btn__icon {
  color: #9e9fa0;
}

/* [1] */
[data-theme=brand] .c-btn {
  --button-border-color: var(--button-primary-border-color);
  --button-background: var(--button-primary-background, #78faae);
  --button-text-color: var(--button-primary-text-color, #161718);
  --button-box-shadow: var(--button-primary-box-shadow);
  --button-border-width: 0;
  border-width: var(--button-border-width);
  /**
   * @TODO: needs refactoring, see [7]
   * Opt-out btn--link styles for action buttons.
   *
   * `action` modifier can not be combined with `link`
   * avoid unnecessary style generation
   */
}
[data-theme=brand] .c-btn:hover, [data-theme=brand] .c-btn:focus, label:focus-within [data-theme=brand] .c-btn { /* [17] */
  --button-border-color: var(--button-primary-border-color-hover);
  --button-background: var(--button-primary-background-hover, #a8ffcc);
  --button-text-color: var(--button-primary-text-color-hover, #161718);
  --button-box-shadow: var(--button-primary-box-shadow-hover);
}
[data-theme=brand] .c-btn:not(.is-disabled):active { /* [18] */
  --button-border-color: var(--button-primary-border-color-active);
  --button-background: var(--button-primary-background-active, #a8ffcc);
  --button-text-color: var(--button-primary-text-color-active, #161718);
  --button-box-shadow: var(--button-primary-box-shadow-active);
}
[data-theme=brand] .c-btn[disabled], [data-theme=brand] .c-btn.is-disabled {
  --button-border-color: var(--button-primary-border-color-disabled);
  --button-background: var(--button-primary-background-disabled, #d8d8d8);
  --button-text-color: var(--button-primary-text-color-disabled, #9e9fa0);
  --button-box-shadow: var(--button-primary-box-shadow-disabled);
}
[data-theme=brand] .c-btn[disabled]:hover, [data-theme=brand] .c-btn[disabled]:focus, [data-theme=brand] .c-btn.is-disabled:hover, [data-theme=brand] .c-btn.is-disabled:focus {
  --button-border-color: var(--button-primary-border-color-disabled-hover);
  --button-background: var(--button-primary-background-disabled-hover);
  --button-text-color: var(--button-primary-text-color-disabled-hover);
  --button-box-shadow: var(--button-primary-box-shadow-disabled-hover);
}
[data-theme=brand] .c-btn.c-btn--link {
  justify-content: flex-end; /* [15] */
}
[data-theme=brand] .c-btn.c-btn--link:hover, [data-theme=brand] .c-btn.c-btn--link:focus {
  background: none;
  box-shadow: none;
}
[data-theme=brand] .c-btn.c-btn--link:hover .c-btn__text, [data-theme=brand] .c-btn.c-btn--link:focus .c-btn__text {
  color: #39815c;
}
[data-theme=brand] .c-btn.c-btn--link:hover .c-btn__icon, [data-theme=brand] .c-btn.c-btn--link:focus .c-btn__icon {
  color: #39815c;
}
[data-theme=brand] .c-btn.c-btn--link:not(.is-disabled):active { /* [18] */ }
[data-theme=brand] .c-btn.c-btn--link .c-btn__text {
  color: #161718;
}
[data-theme=brand] .c-btn.c-btn--link .c-btn__icon {
  color: #161718;
}
[data-theme=brand] .c-btn.c-btn--link[disabled] .c-btn__text, [data-theme=brand] .c-btn.c-btn--link.is-disabled .c-btn__text {
  color: #c4c6c7;
}
[data-theme=brand] .c-btn.c-btn--link[disabled] .c-btn__icon, [data-theme=brand] .c-btn.c-btn--link.is-disabled .c-btn__icon {
  color: #c4c6c7;
}
[data-theme=brand] .c-btn.c-btn--simple.c-btn--simple { /* [7] */ }
[data-theme=brand] .c-btn.c-btn--simple.c-btn--simple .c-btn__icon::before {
  padding: 0;
  border: 0;
  background: none;
}
[data-theme=brand] .c-btn.c-btn--icon-only.c-btn--icon-only { /* [7] */
  min-width: 0;
  border: 0 solid transparent;
  background-color: #78faae;
}
[data-theme=brand] .c-btn.c-btn--icon-only.c-btn--icon-only .c-btn__icon {
  color: #161718;
}
[data-theme=brand] .c-btn.c-btn--icon-only.c-btn--icon-only:hover, [data-theme=brand] .c-btn.c-btn--icon-only.c-btn--icon-only:focus {
  border: 0 solid;
  background-color: #a8ffcc;
}
[data-theme=brand] .c-btn.c-btn--icon-only.c-btn--icon-only:not(.is-disabled):active { /* [18] */
  border: 0 solid;
  background-color: #a8ffcc;
}
[data-theme=brand] .c-btn.c-btn--icon-only.c-btn--icon-only[disabled], [data-theme=brand] .c-btn.c-btn--icon-only.c-btn--icon-only.is-disabled {
  background-color: #d8d8d8;
}
[data-theme=brand] .c-btn.c-btn--icon-only.c-btn--icon-only[disabled] .c-btn__icon, [data-theme=brand] .c-btn.c-btn--icon-only.c-btn--icon-only.is-disabled .c-btn__icon {
  color: #9e9fa0;
}
[data-theme=brand] .c-btn.c-btn--secondary {
  --button-border-color: var(--button-secondary-border-color);
  --button-background: var(--button-secondary-background, #464748);
  --button-text-color: var(--button-secondary-text-color, #ffffff);
  --button-box-shadow: var(--button-secondary-box-shadow);
  border-width: var(--button-border-width);
  /**
   * @TODO: needs refactoring, see [7]
   * Opt-out btn--link styles for action buttons.
   *
   * `action` modifier can not be combined with `link`
   * avoid unnecessary style generation
   */
}
[data-theme=brand] .c-btn.c-btn--secondary:hover, [data-theme=brand] .c-btn.c-btn--secondary:focus, label:focus-within [data-theme=brand] .c-btn.c-btn--secondary { /* [17] */
  --button-border-color: var(--button-secondary-border-color-hover);
  --button-background: var(--button-secondary-background-hover, #5a5b5c);
  --button-text-color: var(--button-secondary-text-color-hover, #ffffff);
  --button-box-shadow: var(--button-secondary-box-shadow-hover);
}
[data-theme=brand] .c-btn.c-btn--secondary:not(.is-disabled):active { /* [18] */
  --button-border-color: var(--button-secondary-border-color-active);
  --button-background: var(--button-secondary-background-active, #5a5b5c);
  --button-text-color: var(--button-secondary-text-color-active, #ffffff);
  --button-box-shadow: var(--button-secondary-box-shadow-active);
}
[data-theme=brand] .c-btn.c-btn--secondary[disabled], [data-theme=brand] .c-btn.c-btn--secondary.is-disabled {
  --button-border-color: var(--button-secondary-border-color-disabled);
  --button-background: var(--button-secondary-background-disabled, #d8d8d8);
  --button-text-color: var(--button-secondary-text-color-disabled, #9e9fa0);
  --button-box-shadow: var(--button-secondary-box-shadow-disabled);
}
[data-theme=brand] .c-btn.c-btn--secondary[disabled]:hover, [data-theme=brand] .c-btn.c-btn--secondary[disabled]:focus, [data-theme=brand] .c-btn.c-btn--secondary.is-disabled:hover, [data-theme=brand] .c-btn.c-btn--secondary.is-disabled:focus {
  --button-border-color: var(--button-secondary-border-color-disabled-hover);
  --button-background: var(--button-secondary-background-disabled-hover);
  --button-text-color: var(--button-secondary-text-color-disabled-hover);
  --button-box-shadow: var(--button-secondary-box-shadow-disabled-hover);
}
[data-theme=brand] .c-btn.c-btn--secondary.c-btn--link {
  justify-content: flex-end; /* [15] */
}
[data-theme=brand] .c-btn.c-btn--secondary.c-btn--link:hover, [data-theme=brand] .c-btn.c-btn--secondary.c-btn--link:focus {
  background: none;
  box-shadow: none;
}
[data-theme=brand] .c-btn.c-btn--secondary.c-btn--link:hover .c-btn__icon, [data-theme=brand] .c-btn.c-btn--secondary.c-btn--link:focus .c-btn__icon {
  color: #39815c;
}
[data-theme=brand] .c-btn.c-btn--secondary.c-btn--link:not(.is-disabled):active { /* [18] */ }
[data-theme=brand] .c-btn.c-btn--secondary.c-btn--link .c-btn__icon {
  color: #161718;
}
[data-theme=brand] .c-btn.c-btn--secondary.c-btn--link[disabled] .c-btn__icon, [data-theme=brand] .c-btn.c-btn--secondary.c-btn--link.is-disabled .c-btn__icon {
  color: #c4c6c7;
}
[data-theme=brand] .c-btn.c-btn--secondary.c-btn--simple.c-btn--simple { /* [7] */ }
[data-theme=brand] .c-btn.c-btn--secondary.c-btn--simple.c-btn--simple .c-btn__icon::before {
  padding: 0;
  border: 0;
  background: none;
}
[data-theme=brand] .c-btn.c-btn--secondary.c-btn--icon-only.c-btn--icon-only { /* [7] */
  min-width: 0;
  border: 0 solid;
  background-color: transparent;
}
[data-theme=brand] .c-btn.c-btn--secondary.c-btn--icon-only.c-btn--icon-only:hover, [data-theme=brand] .c-btn.c-btn--secondary.c-btn--icon-only.c-btn--icon-only:focus {
  border: 0 solid;
  background-color: rgba(22, 23, 24, 0.06);
}
[data-theme=brand] .c-btn.c-btn--secondary.c-btn--icon-only.c-btn--icon-only:not(.is-disabled):active { /* [18] */
  border: 0 solid;
  background-color: rgba(22, 23, 24, 0.06);
}
[data-theme=brand] .c-btn.c-btn--secondary.c-btn--icon-only.c-btn--icon-only[disabled], [data-theme=brand] .c-btn.c-btn--secondary.c-btn--icon-only.c-btn--icon-only.is-disabled {
  background-color: #d8d8d8;
}
[data-theme=brand] .c-btn.c-btn--secondary.c-btn--icon-only.c-btn--icon-only[disabled] .c-btn__icon, [data-theme=brand] .c-btn.c-btn--secondary.c-btn--icon-only.c-btn--icon-only.is-disabled .c-btn__icon {
  color: #9e9fa0;
}
[data-theme=brand] .c-btn.c-btn--action {
  --button-border-color: var(--button-action-border-color);
  --button-background: var(--button-action-background, #78faae);
  --button-text-color: var(--button-action-text-color);
  --button-box-shadow: var(--button-action-box-shadow);
  --button-padding-horizontal: calc(var(--button-height) / 2);
  --button-border-width: 0px;
  border-width: var(--button-border-width);
  border-radius: calc(var(--button-height) / 2);
  /**
   * @TODO: needs refactoring, see [7]
   * Opt-out btn--link styles for action buttons.
   *
   * `action` modifier can not be combined with `link`
   * avoid unnecessary style generation
   */
}
[data-theme=brand] .c-btn.c-btn--action:hover, [data-theme=brand] .c-btn.c-btn--action:focus, label:focus-within [data-theme=brand] .c-btn.c-btn--action { /* [17] */
  --button-border-color: var(--button-action-border-color-hover);
  --button-background: var(--button-action-background-hover, #a8ffcc);
  --button-text-color: var(--button-action-text-color-hover);
  --button-box-shadow: var(--button-action-box-shadow-hover);
}
[data-theme=brand] .c-btn.c-btn--action:not(.is-disabled):active { /* [18] */
  --button-border-color: var(--button-action-border-color-active);
  --button-background: var(--button-action-background-active, #a8ffcc);
  --button-text-color: var(--button-action-text-color-active);
  --button-box-shadow: var(--button-action-box-shadow-active);
}
[data-theme=brand] .c-btn.c-btn--action[disabled], [data-theme=brand] .c-btn.c-btn--action.is-disabled {
  --button-border-color: var(--button-action-border-color-disabled);
  --button-background: var(--button-action-background-disabled, #d8d8d8);
  --button-text-color: var(--button-action-text-color-disabled, #9e9fa0);
  --button-box-shadow: var(--button-action-box-shadow-disabled);
}
[data-theme=brand] .c-btn.c-btn--action[disabled]:hover, [data-theme=brand] .c-btn.c-btn--action[disabled]:focus, [data-theme=brand] .c-btn.c-btn--action.is-disabled:hover, [data-theme=brand] .c-btn.c-btn--action.is-disabled:focus {
  --button-border-color: var(--button-action-border-color-disabled-hover);
  --button-background: var(--button-action-background-disabled-hover);
  --button-text-color: var(--button-action-text-color-disabled-hover);
  --button-box-shadow: var(--button-action-box-shadow-disabled-hover);
}
[data-theme=brand] .c-btn.c-btn--action.c-btn--simple.c-btn--simple { /* [7] */ }
[data-theme=brand] .c-btn.c-btn--action.c-btn--simple.c-btn--simple .c-btn__icon::before {
  padding: 0;
  border: 0;
  background: none;
}
[data-theme=brand] .c-btn.c-btn--action.c-btn--icon-only.c-btn--icon-only { /* [7] */
  min-width: 0;
  border: 0 solid;
}
[data-theme=brand] .c-btn.c-btn--action.c-btn--icon-only.c-btn--icon-only:hover, [data-theme=brand] .c-btn.c-btn--action.c-btn--icon-only.c-btn--icon-only:focus {
  border: 0 solid;
}
[data-theme=brand] .c-btn.c-btn--action.c-btn--icon-only.c-btn--icon-only:not(.is-disabled):active { /* [18] */
  border: 0 solid;
}
[data-theme=brand] .c-btn.c-btn--action.c-btn--icon-only.c-btn--icon-only[disabled], [data-theme=brand] .c-btn.c-btn--action.c-btn--icon-only.c-btn--icon-only.is-disabled {
  background-color: #d8d8d8;
}
[data-theme=brand] .c-btn.c-btn--action.c-btn--icon-only.c-btn--icon-only[disabled] .c-btn__icon, [data-theme=brand] .c-btn.c-btn--action.c-btn--icon-only.c-btn--icon-only.is-disabled .c-btn__icon {
  color: #9e9fa0;
}

.c-btn[disabled], .c-btn.is-disabled {
  pointer-events: none;
  cursor: default;
}
.c-btn.c-btn--full {
  width: 100%;
}
.c-btn.c-btn--link.c-btn--link.c-btn--link { /* [20] */
  min-height: auto; /* [13] */
  padding: 0;
  border: 1px solid transparent; /* [19] */
  background: none;
  box-shadow: none;
}
.c-btn.c-btn--icon-only {
  min-height: auto;
  padding: 0;
  border: 0;
}
.c-btn.c-btn--icon-only:not(.c-btn-round) {
  width: 44px;
  height: 44px;
}
.c-btn.c-btn--icon-only:not(.c-btn-round).c-btn--small {
  width: 32px;
  height: 32px;
}
.c-btn.c-btn--icon-only.c-btn--round {
  width: 44px;
  height: 44px;
  border-radius: 50%;
}
.c-btn.c-btn--icon-only.c-btn--round.c-btn--small {
  width: 32px;
  height: 32px;
}
.c-btn.c-btn--truncate {
  max-width: 100%;
}
.c-btn:where(.c-btn--icon.c-btn--reversed), .c-btn:where(.c-btn--incognito.c-btn--reversed) {
  --button-flex-direction: row-reverse;
}
.c-btn:where(.c-btn--link:not(.c-btn--reversed)) {
  --button-flex-direction: row-reverse;
}
.c-btn:where(:not(.c-btn--icon-only, .c-btn--incognito.c-btn--incognito)) { /* [xxx] */
  column-gap: var(--button-text-icon-spacing);
}
.c-btn:where(:not(.c-btn--icon-only, .c-btn--incognito.c-btn--incognito)) .c-btn__text,
.c-btn:where(:not(.c-btn--icon-only, .c-btn--incognito.c-btn--incognito)) .c-btn__icon {
  --button-text-icon-spacing: 0;
  margin: 0; /* [30] */
}
.c-btn * {
  -webkit-user-select: none;
  user-select: none; /* [9] */
}
.c-btn > * {
  transition: inherit;
}

.c-btn__text {
  letter-spacing: 0.05em;
}
.c-btn__text:not(:last-child) {
  margin-right: var(--button-text-icon-spacing); /* [5] */
}
.c-btn__text:last-child:not(:only-child) {
  margin-left: var(--button-text-icon-spacing); /* [6] */
}
.c-btn.c-btn--full .c-btn__text {
  display: block; /* [8] */
  margin-right: auto; /* [8] */
  margin-left: auto; /* [8] */
}
.c-btn.c-btn--link .c-btn__text {
  font-weight: 700;
  text-align: left;
}
.c-btn.c-btn--truncate .c-btn__text {
  display: inline-block;
  max-width: 100%;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}

.c-btn__icon.c-btn__icon { /* [7] */
  color: inherit;
  font-size: var(--button-icon-size);
}
.c-btn__icon.c-btn__icon::before {
  transition: none; /* [12] */
}
.c-btn.c-btn--link .c-btn__icon.c-btn__icon {
  line-height: 1; /* [14] */
}
.c-btn.c-btn--link.c-btn--round.c-btn--small.c-btn--link.c-btn--round.c-btn--small .c-btn__icon.c-btn__icon { /* [7] */ }
.c-btn.c-btn--link.c-btn--small.c-btn--link.c-btn--small .c-btn__icon.c-btn__icon { /* [7] */ }
.c-btn.c-btn--icon-only .c-btn__icon.c-btn__icon {
  font-size: 1.25rem;
}
.c-btn.c-btn--icon-only.c-btn--small .c-btn__icon.c-btn__icon {
  font-size: 1.25rem;
}

/**
 * Incognito Button
 */
.c-btn--incognito.c-btn--incognito {
  --button-text-horizontal-spacing: calc(var(--button-text-icon-spacing) + var(--button-icon-size) * 0.5); /* [21] */
  --button-icon-horizontal-offset: calc((var(--button-border-width) + var(--button-padding-horizontal)) * -1); /* [22] */
  --button-collapsed: initial; /* [28] */
  justify-content: space-between; /* [23] */
  min-width: var(--button-height); /* [24] */
  max-width: calc(100vw - var(--page-wrap-padding-horizontal) * 2); /* [25] */
  overflow: hidden; /* [26] */
}
.c-btn--incognito.c-btn--incognito.c-btn--reversed .c-btn__text:first-child {
  margin-left: var(--button-text-margin-when-collapsed, var(--button-text-horizontal-spacing)); /* [21] [28] */
  margin-right: 0;
}
.c-btn--incognito.c-btn--incognito .c-btn__text {
  --button-text-max-width-when-collapsed: var(--button-collapsed) 0; /* [28] */
  --button-text-margin-when-collapsed: var(--button-collapsed) 0; /* [28] */
  --button-text-opacity-when-collapsed: var(--button-collapsed) 0; /* [28] */
  max-width: var(--button-text-max-width-when-collapsed, 30em); /* [25] [28] */
  white-space: nowrap; /* [27] */
  text-overflow: ellipsis; /* [27] */
  opacity: var(--button-text-opacity-when-collapsed, 1); /* [28] */
}
.c-btn--incognito.c-btn--incognito .c-btn__text:first-child {
  margin-right: var(--button-text-margin-when-collapsed, var(--button-text-horizontal-spacing)); /* [21] [28] */
}
.c-btn--incognito.c-btn--incognito .c-btn__text:last-child {
  margin-left: var(--button-text-margin-when-collapsed, var(--button-text-horizontal-spacing)); /* [21] [28] */
}
.c-btn--incognito.c-btn--incognito .c-btn__icon {
  display: inline-flex; /* [31] */
  justify-content: center; /* [31] */
  align-items: center; /* [31] */
  width: var(--button-height);
  margin-left: var(--button-icon-horizontal-offset); /* [22] */
  margin-right: var(--button-icon-horizontal-offset); /* [22] */
}
.c-btn--incognito.c-btn--incognito:where(:not(:hover):not(:focus)) {
  --button-collapsed: ; /* [28] */ /* stylelint-disable-line */
}

/* stylelint-enable selector-max-class, selector-max-specificity */
/**
 * `border-radius` is not applied for outline in Safari,
 * uses rectangular shape instead.
 * @link https://bugs.webkit.org/show_bug.cgi?id=20807
 */
.c-btn:focus-visible {
  /* [1] */
  --focus-outline-color: #161718;
  --focus-outline-offset: 1px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}
.c-btn:not(.c-btn--secondary):focus {
  --button-background: #78faae;
}
.c-btn.c-btn--secondary:focus {
  --button-background: #464748;
}
.c-btn:active {
  scale: 0.95;
}
.c-btn.c-btn--link {
  border-radius: 0;
}
.c-btn.c-btn--link:focus .c-btn__text {
  color: #161718;
}
.c-btn.c-btn--link:focus .c-btn__icon.c-btn__icon { /* stylelint-disable-line selector-max-specificity, selector-max-class */
  color: #161718;
}
.c-btn.c-btn--link:focus-visible {
  --focus-outline-color: #161718;
  --focus-outline-offset: 8px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

/* ------------------------------------*\
   #BACK-TO-TOP
\*------------------------------------ */
/**
 * [1] Flexible left or right alignment of the component.
 */
.c-back-to-top {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  padding-top: 16px;
  padding-bottom: 16px;
}

.c-back-to-top .c-btn--link {
    min-height: 44px !important;
}

.c-back-to-top__pagewrap {
  text-align: right; /* [1] */
  max-width: calc(1248px + 192px);
  padding-left: 96px;
  padding-right: 96px;
  --page-wrap: 96px;
  margin-right: auto;
  margin-left: auto;
}
@media (max-width: 960px) {
  .c-back-to-top__pagewrap {
    max-width: calc(1248px + 96px);
    padding-left: 48px;
    padding-right: 48px;
    --page-wrap: 48px;
  }
}
@media (max-width: 720px) {
  .c-back-to-top__pagewrap {
    max-width: calc(1248px + 48px);
    padding-left: 24px;
    padding-right: 24px;
    --page-wrap: 24px;
  }
}
@media (max-width: 480px) {
  .c-back-to-top__pagewrap {
    max-width: calc(1248px + 24px);
    padding-left: 12px;
    padding-right: 12px;
    --page-wrap: 12px;
  }
}

.c-back-to-top__icon::before {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  content: "\f156";
}

/* ------------------------------------*\
    #BUTTON-GROUP
\*------------------------------------ */
/**
 * The button group component is a set of buttons to choose between several
 * options in forms. So, technically speaking, it's actually radio buttons
 * or checkboxes, just in the look of a bunch of buttons.
 */
/* stylelint-disable-line scss/no-duplicate-dollar-variables */
/**
 * [1] Better alignment management.
 * [2] When the items do have spacing beneath each other, make sure to take care
 *     of the vertical spacing between the items (when multiline) and to
 *     surrounding components.
 * [3] Defensively default to `display: flex`.
 * [4] Center text inside items.
 * [5] If the items do have spacing beneath each other, give each item, except
 *      the last one, a spacing.
 * [6] Make it blocky so it can take up 100% width of its parent.
 * [7] Hide the original radio-button.
 * [8] Reset margin-bottom to 0 (set by `<label>` declaration).
 * [9] Overwrite default icon `transition`
 *      to be in sync with button-group transition.
 * [10] Stretch to the highest item in row.
 * [11] Subtract (compensate) margins to prevent unnecessary wrapping (100+%).
 * [12] Allow growing/shrinking if max-count is not reached (quantity queries).
 * [13] Vertically center item content.
 * [14] Get a min-width of `$button-group-item-min-size` and a max width of
 *      `1fr` for each grid-item.
 * [15] Get equal-height grid-rows.
 * [16] The display of icons in button group items is optional.
 */
/* autoprefixer: ignore next */
.c-button-group {
  display: grid; /* [1] */
  grid-template-columns: repeat(auto-fit, minmax(152px, 1fr)); /* [14] */
  grid-auto-rows: 1fr; /* [15] */
  row-gap: 16px; /* [2] */
  column-gap: 8px; /* [2] */
}
.c-button-group.c-button-group--auto {
  /* autoprefixer: ignore next */
  grid-template-columns: repeat(auto-fill, minmax(152px, 1fr)); /* [5] */
}

.c-button-group__item {
  display: flex; /* [3] */
  margin-bottom: 0; /* [8] */
  text-align: center; /* [4] */
}

.c-button-group__label {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  font-size: 1rem;
  line-height: 24px;
  position: relative;
  display: inline-flex; /* [6] */
  flex-direction: column;
  justify-content: center; /* [13] */
  width: 100%; /* [6] */
  height: 100%; /* [10] */
  padding: 8px 24px;
  border: 2px solid currentColor;
  border-radius: 4px;
  font-weight: 700;
  letter-spacing: 0.05em;
  background-color: transparent;
  color: #464748;
  cursor: pointer;
}
.c-button-group__item:focus-within .c-button-group__label, .c-button-group__input:hover + .c-button-group__label, .c-button-group__input:focus + .c-button-group__label, .c-button-group__label:hover, .c-button-group__label:focus {
  z-index: 1;
  border-color: currentColor;
  border-radius: 4px;
  background-color: #f1f1f1;
  color: #464748;
}
.c-button-group__input:checked + .c-button-group__label {
  z-index: 1;
  border-color: #464748;
  background-color: #464748;
  color: #ffffff;
}
.c-button-group__input[disabled] + .c-button-group__label {
  color: #9e9fa0;
  cursor: default;
}

.c-button-group__icon { /* 22 */
  margin-bottom: 8px;
}
.c-button-group__icon::before {
  font-size: 40px;
  transition: none; /* [9] */
}

.c-button-group__input {
  position: absolute !important; /* stylelint-disable-line itcss/no-at-important */
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  /* [7] */
}

/* ------------------------------------*\
    #BUTTON-GROUP
\*------------------------------------ */
.c-button-group__input:focus-visible ~ .c-button-group__label {
  --focus-outline-color: #161718;
  --focus-outline-offset: 1px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}
.c-button-group__input:checked + .c-button-group__label:hover {
  border-color: #5a5b5c;
  background-color: #5a5b5c;
}
.c-button-group__input:not(:checked):focus + .c-button-group__label {
  background-color: transparent;
}

/* ------------------------------------*\
    #LIST-NESTED-COUNTER
\*------------------------------------ */
/**
 * [1] Selector applies to either an ordered list with nested list class (e.g.
 *     `<ol class="c-list-nested-counter">` or to an ordered list with the
 *     nested list classes added to one of it's parents, e.g.
 *     ```
 *     <div class="c-list-nested-counter">
 *         <ol>
 *             ...
 *         </ol>
 *     </div>
 *     ```.
 */
ol.c-list-nested-counter,
.c-list-nested-counter ol { /* [1] */
  margin-left: 24px;
  list-style-type: none;
  counter-reset: section;
}
ol.c-list-nested-counter ol,
.c-list-nested-counter ol ol {
  margin-left: 32px;
  /* stylelint-disable */
  /* stylelint-enable */
}
ol.c-list-nested-counter ol li,
.c-list-nested-counter ol ol li {
  margin-bottom: 8px;
}
ol.c-list-nested-counter li::before,
.c-list-nested-counter ol li::before {
  counter-increment: section;
  content: counters(section, ".") ". ";
  font-weight: 400;
}

/* ------------------------------------*\
    #LIST-NESTED-COUNTER
\*------------------------------------ */
/**
 * [1] Add spacing between counter and items.
 */
ol.c-list-nested-counter li,
.c-list-nested-counter ol li {
  margin-bottom: 8px;
}
ol.c-list-nested-counter li::before,
.c-list-nested-counter ol li::before {
  position: absolute; /* [1] */
  padding-right: 8px; /* [1] */
  transform: translateX(-100%); /* [1] */
}

/* ------------------------------------*\
    #ORDERED-LIST
\*------------------------------------ */
.c-ol,
.c-ol ol {
  counter-reset: li;
  list-style-type: none;
}
.c-ol > li,
.c-ol ol > li {
  margin-bottom: 8px;
  padding-left: 8px;
  /* stylelint-disable selector-max-combinators, selector-max-compound-selectors, selector-max-type */
  /* stylelint-enable */
}
.c-ol > li > ol,
.c-ol ol > li > ol {
  margin-top: 8px;
  margin-left: 24px;
}

/* ------------------------------------*\
    #ORDERED-LIST
\*------------------------------------ */
/**
 * [1] Add a counter and reset it on each `li` nesting. Set the counter style to put in leading zeros.
 * [2] Position the counter absolute and move it by itself and the `$skoda-ordered-list-item-counter-offset` to the left.
 */
.c-ol li {
  position: relative;
}
.c-ol li::before {
  content: counter(li, decimal-leading-zero); /* [1] */
  position: absolute; /* [2] */
  padding-right: 8px; /* [2] */
  transform: translateX(-100%); /* [2] */
  counter-increment: li;
}

/* ------------------------------------*\
    #UNORDERED-LIST
\*------------------------------------ */
/**
 * [1] Make sure the selector is also applied to nested `<ul>` elements.
 * [2] If a custom list icon is set, we explicitly set the list’s `list-style` to `none`,
 *     otherwise we do fall back to the inherited `list-style` of the `ul`.
 * [2] Unset the initial `margin-left` from the `ul`.
 * [3] Check if a custom list icon is set. If so, disable `list-style` on the list
 *     and apply a custom icon via pseudo element.
 * [4] Whether to use an icon from the icon set or (a) custom char(s).
 *     In the case of custom char(s) any text-level styling should happen in the brand itself,
 *     as the default component cannot augment any possible style combination.
 * [5] Style only unordered list items.
 */
.c-ul,
.c-ul ul { /* [1] */
  margin-left: 0; /* [2] */
  list-style: none; /* [3] */
}
.c-ul > li,
.c-ul ul > li { /* [5] */
  margin-top: 8px;
  margin-left: 16px;
  /* [3] */
  position: relative;
}
.c-ul > li::before,
.c-ul ul > li::before {
  content: "•";
  position: absolute;
  left: -16px;
  color: inherit;
  /* [4] */
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1rem;
  line-height: 1.2;
}

/* ------------------------------------*\
    #SECTION-HEADINGS
\*------------------------------------ */
/**
 * [1] Wrap text and possible inline elements in `span`. Left empty here for
 *     documentation and prospective usage.
 * [2] Make sure other spacings do not apply.
 */
.c-section-heading {
  margin-bottom: 24px;
}
.c-section-heading.c-section-heading--center {
  text-align: center;
}
.c-section-heading.c-section-heading--center .c-section-heading__title {
  justify-content: center;
}
.c-section-heading.c-section-heading--small-spacing { /* [1] */
  margin-bottom: 16px;
}
.c-section-heading.c-section-heading--small-spacing .c-section-heading__subtitle {
  margin-top: 0;
}

.c-section-heading__icon {
  font-size: 2.5rem;
  line-height: 1;
  margin-right: 16px;
  color: #39815c;
}

.c-section-heading__title {
  font-size: 1.4375rem;
  line-height: 1.2;
  margin-bottom: 0;
  font-weight: 700;
  color: #161718;
}
@media (min-width: 721px) {
  .c-section-heading__title {
    font-size: 1.6875rem;
    line-height: 1.2;
  }
}
@media (min-width: 1281px) {
  .c-section-heading__title {
    font-size: 1.875rem;
    line-height: 1.2;
  }
}
.c-section-heading--primary .c-section-heading__title {
  font-size: 2.0625rem;
  line-height: 1.2;
  margin-bottom: 16px;
  padding-bottom: 16px;
}
@media (min-width: 721px) {
  .c-section-heading--primary .c-section-heading__title {
    font-size: 2.375rem;
    line-height: 1.2;
  }
}
@media (min-width: 1281px) {
  .c-section-heading--primary .c-section-heading__title {
    font-size: 2.75rem;
    line-height: 1.2;
  }
}

.c-section-heading__title-text { /* [1] */ }

.c-section-heading__subtitle {
  font-size: 1rem;
  margin-bottom: 0; /* [2] */
  margin-top: 24px;
  color: #161718;
}

/* ------------------------------------*\
    #FORM-HEADING (Settings)
\*------------------------------------ */
/* ------------------------------------*\
    #FORM-HEADING
\*------------------------------------ */
/**
 * [1] Reset margin bottom for text and manage it over
 *     `$form-headings-spacing` on `.c-form-heading`.
 * [2] Make sure that an (optional) icon is centered vertically.
 * [3] Nesting required to overrule `.c-icon` selector.
 * [4] Wrap text and possible inline elements in `<span>` because of parent's
 *     flex setting. Left empty here for documentation and prospective usage.
 * [5] Hide icon if disabled.
 * [6] Add bottom spacing to title only if there is no additional sibling element.
 */
.c-form-heading {
  margin-bottom: 16px;
}

.c-form-heading__title {
  font-size: 1.4375rem;
  display: flex; /* [2] */
  align-items: center; /* [2] */
  font-weight: 700;
  color: #161718;
}
@media (min-width: 721px) {
  .c-form-heading__title {
    font-size: 1.6875rem;
  }
}
@media (min-width: 1281px) {
  .c-form-heading__title {
    font-size: 1.875rem;
  }
}
.c-form-heading__title:not(:only-child) {
  margin-bottom: 16px; /* [6] */
}
.c-form-heading__title .c-form-heading__icon { /* [3] */
  margin-right: 8px;
  font-size: 32px;
}

.c-form-heading__text {
  font-size: 1rem;
  display: block;
  margin-bottom: 0; /* [1] */
  color: #161718;
}

.c-form-heading__title-text { /* [4] */ }

/* ------------------------------------*\
    #FORM-FIELD
\*------------------------------------ */
/**
 * [1]  Sets `transform-origin` to bottom/left for all inputs.
 *      This also fixes the blurry text issue when scale is used.
 *      See https://stackoverflow.com/questions/29037176/preventing-blurry-rendering-with-transform-scale/29037803
 * [2]  We have to scale up the label when floated in and not vice versa.
 *      Otherwise, the box of the floated out label would be larger than the
 *      content itself. This causes e.g. an unwanted spacings between the
 *      content of the label and siblings like info icons.
 * [3]  Since the text is scaled up using transform, reduce the max-width
 *      of the label accordingly. Important for labels that break into multiple
 *      lines.
 * [4]  Calculate horizontal and vertical position of floating labels inside textarea.
 * [5]  Prevent all `pointer-events` in order to be able to select
 *      the underneath input element when clicking on the label.
 * [6]  Allow all `pointer-events` on the label when its parent
 *      `.c-form-field` element is active or has focus.
 * [7]  Apply the styles of the input states to the `.c-form-field` element.
 *      We override the default styles via `!important` to avoid potential conflicts.
 * [8]  If a hint is displayed together with an error message,
 *      subtract the margin bottom from the error message to decrease the distance
 *      between hint and error message.
 * [9]  Limit width to its content.
 *      Useful when a link is used and only the text should be clickable.
 * [10] Set a different spacing for the label, which is needed in some cases,
 *      especially in combination with a textarea.
 * [11] Disable transform settings so that the label has the correct position.
 * [12] Remove spacing for floating labels.
 * [13] Handle spacing via transform.
 * [14] Ensure read-only labels can not be interacted with and not rely on
 *      specificity.
 * [15] Remove unwanted spacing that might be applied by default
 *      depending on used element.
 * [16] Indent Form Field Extra if a CSS custom property is set
 *      (by radio button or checkbox)
*/
.c-form-field {
  display: flex;
  flex-direction: column;
}
.c-form-field.c-form-field--inline {
  /**
   * @TODO:
   * check if vertical is sufficient
   * fallbacks: non-gap
   */
  flex-direction: row;
  flex-wrap: wrap;
  align-items: baseline;
  row-gap: 8px;
  column-gap: 8px;
}
.c-form-field.c-form-field--inline .c-form-field__label {
  margin: 0;
  transform: none; /* [11] */
}
.c-form-field.c-form-field--inline .c-form-field__box {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: auto;
}
.c-form-field.c-form-field--textarea { /* [10] */ }
.c-form-field.c-form-field--static .c-form-field__label {
  margin-bottom: 8px;
}
.c-form-field:focus-within .c-form-field__label {
  color: #39815c;
}
.c-form-field.is-error .c-form-field__hint {
  margin-top: -16px; /* [8] */
}
.c-form-field.is-readonly .c-form-field__label {
  pointer-events: none !important; /* [14] */
}

.c-form-field__hint {
  font-size: 0.75rem;
  width: -moz-fit-content;
  width: fit-content; /* [9] */ /* stylelint-disable-line scale-unlimited/declaration-strict-value */
  margin-top: 0;
  margin-bottom: 0; /* [15] */
  font-weight: 400;
  color: #5a5b5c;
}

a.c-form-field__hint, .c-form-field__hint a {
  color: inherit;
}

.c-form-field__label {
  font-size: 0.75rem;
  line-height: 1;
  position: relative;
  display: inline-block;
  font-weight: 400;
  text-align: left;
  color: #5a5b5c;
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  z-index: 2;
  margin-bottom: 0; /* [13] */
  transform: translate3d(12px, 100%, 0) scale(1); /* [2] */
  /* stylelint-disable selector-max-class, selector-max-specificity */
  /* stylelint-enable */
}
form.is-js-on .c-form-field:not(.c-form-field--no-floating, .c-form-field--inline) .c-form-field__label {
  max-width: 75%; /* [3] */
  transform: translate3d(12px, calc(100% + 12px), 0) scale(1.3333333333); /* [2] */
  transform-origin: bottom left; /* [1] */
  pointer-events: none; /* [5] */
}
form.is-js-on .c-form-field--textarea:not(.c-form-field--no-floating, .c-form-field--inline) .c-form-field__label { /* [4] */
  transform: translate3d(12px, calc(100% + 12px), 0) scale(1.3333333333); /* [2] */
}
form.is-js-on .c-form-field:not(.c-form-field--no-floating, .c-form-field--inline):focus-within .c-form-field__label, form.is-js-on .c-form-field:not(.c-form-field--no-floating, .c-form-field--inline).is-active .c-form-field__label {
  max-width: 75%; /* [3] */
  transform: translate3d(12px, 100%, 0) scale(1); /* [2] */
  color: #161718;
  pointer-events: all; /* [6] */
}
form.is-js-on .c-form-field.c-form-field--static .c-form-field__label {
  transform: none !important; /* [11] */
}
form.is-js-on .c-form-field--textarea:not(.c-form-field--no-floating, .c-form-field--inline):focus-within .c-form-field__label, form.is-js-on .c-form-field--textarea:not(.c-form-field--no-floating, .c-form-field--inline).is-active .c-form-field__label {
  transform: translate3d(12px, 100%, 0) scale(1); /* [2] */
}
form.is-js-on .c-form-field:hover:not(:focus-within, .is-disabled) .c-form-field__label {
  color: #161718 !important; /* [7] */
}
form.is-js-on .c-form-field:not(:focus-within, :hover).is-success .c-form-field__label {
  /* [7] */
}
form.is-js-on .c-form-field:not(:focus-within).is-success:hover .c-form-field__label {
  color: #161718 !important; /* [7] */
}
form.is-js-on .c-form-field:not(:focus-within, :hover).is-error .c-form-field__label {
  /* [7] */
}
form.is-js-on .c-form-field:not(:focus-within).is-error:hover .c-form-field__label {
  color: #d92b35 !important; /* [7] */
}
form.is-js-on .c-form-field.is-disabled .c-form-field__label {
  color: #9e9fa0 !important; /* [7] */
}
form.is-js-on .c-form-field.is-readonly .c-form-field__label {
  color: #161718 !important; /* [7] */
}

.c-form-field__extra {
  padding-left: var(--form-field-extra-indent, 0); /* [16] */
}
.c-form-field__extra *:last-child {
  margin-bottom: 0;
}

/**
 * [1] Set different color for focus than active, which is combined in default.
 * [2] Adjust label color in filled state, for both static and floating labels.
 * [3] Prevent label from creating extra space above form-field.
 */
.c-form-field__label {
  /* stylelint-disable-next-line selector-max-specificity */
  /* stylelint-disable-next-line selector-max-specificity, selector-max-class */
}
.c-form-field.is-active .c-form-field__label {
  color: #161718; /* [2] */
}
form.is-js-on .c-form-field:not(.c-form-field--inline):focus-within .c-form-field__label {
  color: #39815c; /* [1] */
}
form.is-js-on .c-form-field.is-error:not(.c-form-field--inline):focus-within .c-form-field__label {
  color: #d92b35;
}

/* ------------------------------------*\
    #FORM-SECTION
\*------------------------------------ */
/**
 * [1] Border below the last accordion item.
 * [2] Reset various browser and general button styles that would interfere
 *     with form section header or title styles.
 * [3] Max line-length of title.
 * [4] Remove bottom margin of either title, subtitle or last content element.
 * [5] Add spacing between sections, except if it is the only/last item
 *     within its wrapper.
 * [6] Hide button link icon if brand needs it based on variable setting.
 * [7] Reset button link margin if no icon is shown. High specificity needed
 *     in order to overwrite default button styles.
 * [8] Properly align link button vertically with title.
 * [9] Span title wrapper to full width to be able to place the link element
 *      more flexible (e.g. to the right).
 * [10] Cut off title and subtitle only when section is collapsed.
 * [11] Align item to top on small screens to prevent vertical movement upon
 *      opening/closing the section with truncated title and subtitle.
 * [12] Prevent unwanted vertical movement when truncating is triggered upon
 *      opening/closing the section.
 * [13] Align link button vertically with title baseline as the default setting
 *      varies from browser to browser (e.g. Google Chrome).
 * [14] Collapse/expand panel with CSS only by utilizing the `animate-height`
 *      mixin.
 * [15] Covering overlay in disabled state. To also disable all form fields on a
 *      markup level, add the `disabled` attribute to the `fieldset` element.
 *      See https://codepen.io/stevef/post/short-note-on-the-disabled-attribute
 * [16] Stack overlay above stacked elements inside form-section.
 *      Use arbitrary/scoped value as it's not relevant in global stacking
 *      context and therefore not in `$Z-LAYERS`.
 * [17] Grayscale / desaturate via overlay to emphasize the disabled state.
 *      Works only in browsers supporting CSS filter.
 * [18] Disable visual focus indicator in disabled state.
 * [19] "Stack" header (triggers toggle) above disabled section in order to
 *      allow expanding/collapsing form section.
 *      The value is a magic number and only works > 10.
 *      Not in global stacking context and therefore not in `$Z-LAYERS`.
 * [20] Reset heading styles.
 * [21] Set opacity of form labels to `0` to let floating form labels blend in.
 *      Otherwise they would be visible during the form section transition
 *      because of their absolute positioning inside a grid item [23].
 * [22] Increase specificity, so that the styles don't get overwritten by the
 *      icon component later on.
 * [23] Use `grid-template-rows` to transition the height.
 *      No more choppy `max-height` transition. (see https://www.stefanjudis.com/snippets/how-to-animate-height-with-css-grid/)
 * [24] We have to set the vertical paddings for child element instead of the
 *      form section content element. Otherwise the content would not completely
 *      be hidden in collapsed state because it’s a grid item [23].
 * [25] Inherit radius from section to prevent overlay cutting of border.
 */
.c-form-section[aria-disabled=true],
.c-form-section[aria-disabled=true] .c-form-section__header {
  position: relative;
  outline: 0; /* [18] */
  filter: grayscale(1); /* [17] */
}
.c-form-section[aria-disabled=true]::after,
.c-form-section[aria-disabled=true] .c-form-section__header::after { /* [15] */
  content: "";
  position: absolute;
  z-index: 10; /* [16] */
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: inherit; /* [25] */
  background-color: rgba(255, 255, 255, 0.5);
}
.c-form-section[aria-disabled=true] .c-form-section__header {
  z-index: 20; /* [19] */
  box-shadow: none; /* [18] */
}

.c-form-section {
  position: relative;
  border: 1px solid #e4e4e4;
  border-radius: 4px;
  background-color: #f1f1f1;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=alternative] .c-form-section {
  background-color: #ffffff;
}

.c-form-section:not(:last-child) {
  margin-bottom: 24px; /* [5] */
}
.c-form-section:hover {
  border-color: #161718;
}
.c-form-section.c-form-section--error {
  border: 1px solid #d92b35;
}

.c-form-section__header {
  padding: 0;
  border: 0;
  background-color: transparent;
  /* [2] */
  padding-top: 24px;
  padding-right: 24px;
  padding-bottom: 24px;
  padding-left: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin: 0;
  font-family: inherit; /* [2] */
  line-height: inherit; /* [2] */
  text-align: left; /* [2] */
  cursor: pointer;
}
.c-form-section__header:focus {
  outline: 0;
}

.c-form-section__header-content {
  flex-grow: 1;
  overflow: hidden;
  padding-right: 16px;
}
.c-form-section__header-content > *:last-child {
  margin-bottom: 0; /* [4] */
}

.c-form-section__title {
  padding: 0;
  border: 0;
  background-color: transparent;
  /* [2] */
  font-size: 1rem;
  line-height: 24px;
  display: flex;
  align-items: baseline; /* [13] */
  width: 100%; /* [9] */
  margin-bottom: 8px;
  font-family: inherit; /* [20] */
  font-weight: 700;
  letter-spacing: inherit; /* [20] */
  text-align: left; /* [2] */
  color: #161718;
  outline: none; /* [2] */
  cursor: pointer;
}
.c-form-section__title:focus {
  outline: 0;
}

.c-form-section__title-text {
  max-width: 30em; /* [3] */
}
.c-form-section__header[aria-expanded=false]:not(.c-form-section__header--no-truncate) .c-form-section__title-text {
  display: inline-block;
  max-width: 100%;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  /* [10] */
}

.c-form-section__title-link.c-form-section__title-link { /* [22] */
  margin-left: 16px;
}
@media (max-width: 720px) {
  .c-form-section__title-link.c-form-section__title-link {
    display: none;
  }
}

.c-form-section__subtitle {
  font-size: 1rem;
  line-height: 24px;
  display: inline-block; /* [12] */
  overflow: hidden; /* [12] */
  font-weight: 300;
  color: #161718;
}
.c-form-section__header[aria-expanded=false]:not(.c-form-section__header--no-truncate) .c-form-section__subtitle {
  display: inline-block;
  max-width: 100%;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  /* [10] */
}

@media (max-width: 720px) {
  .c-form-section__header-icon {
    align-self: flex-start; /* [11] */
  }
}
.c-form-section__header-icon::before {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.5rem;
  content: "\f1c1";
  transform: none;
  color: #161718;
  transition: transform 0.3333333333s ease;
}
@media (max-width: 480px) {
  .c-form-section__header-icon::before {
    font-size: 1.5rem;
    line-height: 1;
  }
}
.c-form-section--success .c-form-section__header-icon::before, .c-form-section--error .c-form-section__header-icon::before {
  font-size: 1.5rem;
  line-height: 1;
  transform: none;
}
@media (max-width: 480px) {
  .c-form-section--success .c-form-section__header-icon::before, .c-form-section--error .c-form-section__header-icon::before {
    font-size: 1.5rem;
    line-height: 1;
  }
}
.c-form-section--success .c-form-section__header-icon::before {
  content: "\f146";
  color: #37d002;
}
.c-form-section--error .c-form-section__header-icon::before {
  content: "\f17a";
  color: #d92b35;
}
.c-form-section__header[aria-expanded=true] .c-form-section__header-icon::before {
  content: "\f1b1";
  transform: none;
}
.c-form-section--success .c-form-section__header[aria-expanded=true] .c-form-section__header-icon::before, .c-form-section--error .c-form-section__header[aria-expanded=true] .c-form-section__header-icon::before {
  transform: none;
}
.c-form-section--success .c-form-section__header[aria-expanded=true] .c-form-section__header-icon::before {
  content: "\f146";
}
.c-form-section--error .c-form-section__header[aria-expanded=true] .c-form-section__header-icon::before {
  content: "\f17a";
}

.c-form-section__panel {
  /* stylelint-disable order/order */
  --transition-property: grid-template-rows;
  --transition-duration: var(--transition-duration-reduced-motion, 0.5s);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  /* [23] */
  display: grid; /* [23] */
  grid-template-rows: 0fr; /* [23] */
}
.c-form-section__panel > * {
  overflow: hidden; /* [23] */
}
.c-form-section__panel:not([aria-hidden=false]) .c-form-field__label {
  overflow: hidden; /* [24] */
  opacity: 0; /* [21] */
}
.c-form-section__panel[aria-hidden=false] {
  grid-template-rows: 1fr; /* [23] */
}

.c-form-section__content {
  padding-right: 24px;
  padding-left: 24px;
}
.c-form-section__content > :first-child {
  padding-top: 0;
  /* [24] */
}
.c-form-section__content > :last-child {
  padding-bottom: 24px;
  /* [24] */
  margin-bottom: 0; /* [4] */
}

.c-form-section {
  /* stylelint-disable order/order */
  --transition-property: border-color;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
}

.c-form-section__header-icon {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  scale: 1;
}
.c-form-section__header-icon::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  transition: inherit;
}
.c-form-section__header:hover .c-form-section__header-icon::after {
  background-color: rgba(22, 23, 24, 0.06);
}

.c-form-section__header:focus-visible .c-form-section__header-icon::after {
  --focus-outline-color: #161718;
  --focus-outline-offset: 0;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

.c-form-section__header:active .c-form-section__header-icon {
  scale: 0.95;
}

/* ------------------------------------*\
    #INPUT-TEXT
\*------------------------------------ */
/**
 * [1] Allow us to style box model properties.
 * [2] Line different sized inputs up a little nicer.
 * [3] Only change border for non-background addons.
 * [4] If the input has rounded borders, the fake line's `width` must have the
 *     same value as the `border-radius` to totally cover the border. The
 *     input's border must be replaced by a border attached to the fake line.
 * [5] Set minimum width for addon to have equal size
 *     up to a certain amount of content.
 * [6] Reset default label spacing.
 * [7] Border-depends on the position of symbol.
 * [8] Control position of addon via CSS - not markup order.
 * [9] Set input height (minus vertical borders).
 * [10] Reset default button-style.
 * [11] Chrome needs a reset appearance, otherwise it sets a default
 *      border-radius, in case it's a `<select>`.
 * [12] Textareas must not get a fixed height and a corresponding line-height...
 * [13] ...but instead get a custom padding-top and -bottom to offset the text
 *      content from the top edge of the textarea.
 * [14] Defensively reset border-radius.
 * [15] Create complete border-radius when there is no `.c-input__addon`.
 * [16] Perfectly align the icon inside of `.c-input__addon`.
 * [17] When the input is a `<select>`, the addon is taken out of the documents
 *      flow, so the border-radius needs to be set explicitly here.
 * [18] Since the the icon is laying on top of the select, a click on the arrow
 *      has to be ignored and looped through to the select itself.
 * [19] If it's a `<select>`, don't let long select input text overflow the
 *      dropdown arrow.
 * [20] Vertical center the icon.
 * [21] Firefox won't hide its dotted outline on focus on select elements. This
 *      fixes it. Be aware: Although it works, it's still a hack!
 * [22] Reset styles of input and `.c-input__addon` for readonly state to
 *      prevent focus styles from being used here.
 * [23] Reset styles of input and `.c-input__addon` for disabled state to
 *      prevent default styles from being used here
 * [24] Prevent IE 11 and Edge from showing a browser default cross icon to clear
 *      the text input.
 * [25] Fixes Firefox issue. Firefox grows the input when an input addon is
 *      present. `min-width: 0` fixes that issue. (https://github.com/philipwalton/flexbugs/tree/38fdbe408e2ae6dcf32bff1e29db41c6ab964f55#flexbug-1)
 * [26] When the dropdown icon is hidden at disabled state, stack the select
 *      above the dropdown. This is done as there is no way
 *      (due to missing parent selector) to select the icon (pseudo element on parent)
 *      when the select is disabled.
 * [27] Inherit the color assigned to `.c-input__addon` instead of applying the
 *      default icon color.
 * [28] Explicitly override the border width if text inputs only have a
 *      `border-bottom`. Due to a lack of specificity, the border has to be
 *      reset for the reversed modifier explicitly.
 * [29] Check if textareas should be included in the border-bottom-only
 *      styling and modify the selector accordingly.
 * [30] Add horizontal padding to textareas if they don’t have
 *      border-bottom-only styling.
 * [31] The fake line to cover the border between input and addon is not needed
 *      in Bronson-Audi, because there is not border to cover.
 * [32] Required to display the border color correct on iOS.
 * [33] Enable flex wrap to allow positioning of the character counter below
 *      textareas.
 * [34] Fix positioning of (non-textarea) input fields (with addon) because
 *      of [33].
 * [35] Stretch the counter to full width to ensure it will be displayed below
 *      textarea.
 * [35] Hide counter for disabled and read-only input fields.
 * [37] Styles for the counter alert state.
 * [38] Requires state-class to be applied to input wrapper (`.c-input`)
 *      instead of actual input. This derives on how state classes are
 *      set on other types of inputs.
 *      But due to the limited styling possibilities of native select,
 *      this is a workaround and can be seen as "progressive enhancement".
 * [39] Conditionally show state icon. Depending on brand e.g. the state-icon
 *      for invalid (error) inputs do not have a state-icon but an error message.
 * [40] Overwrite default `transition-property: all` only when `$input-border-width-focus`
 *      is larger than `$input-border-width` to avoid choppy animations due
 *      `border-width` transitions.
 * [41] Use the same transition for all direct children (e.g. `.c-input__addon`)
 * [42] Align color and font-weight settings according to Combobox styles
 *      as progressive enhancement, which is currently not supported by all
 *      browsers, see also: https://caniuse.com/css-has).
 * [43] Ensure correct option text color (for browsers that support setting
 *      option colors via CSS), prevent inheritance from `<select>`.
 */
.c-input {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  --transition-property: color, background-color, border-color, box-shadow, opacity; /* [40] */
  position: relative;
  display: flex;
  flex-wrap: wrap; /* [33] */
  /* [28] */
  /* stylelint-disable-next-line order/order */
}
.c-input > * {
  transition: inherit; /* [41] */
}
.c-input.c-input--select {
  /* [38] */
}
.c-input.c-input--select::after {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.5rem;
  content: "\f151";
  position: absolute;
  top: 50%; /* [20] */
  right: 12px;
  transform: translateY(-50%); /* [20] */
  border: 0;
  color: #161718;
  pointer-events: none; /* [18] */
}
.c-input.c-input--select.is-disabled::after {
  color: #d8d8d8;
}
.c-input.c-input--select .c-input__input {
  /* stylelint-disable selector-max-specificity */
  /* stylelint-enable */
}
.c-input.c-input--select .c-input__input:has(:disabled:checked) {
  font-weight: 400; /* [42] */
  color: #5a5b5c; /* [42] */
}
.c-input.c-input--select .c-input__input:-moz-focusring {
  color: transparent; /* [21] */
  text-shadow: 0 0 0 #161718; /* [21] */
}
.c-input.c-input--select .c-input__input::-ms-expand {
  display: none; /* [26] */
}
.c-input.c-input--select option {
  color: #161718; /* [43] */
}
.c-input.c-input--select option:disabled {
  color: #9e9fa0;
}
.c-input .c-icon {
  font-size: 1.5rem;
  line-height: 1;
  vertical-align: middle;
}
.c-input::before {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  content: "";
  position: absolute;
  z-index: 1;
  right: 0; /* [33] */
  bottom: 0;
  left: 0; /* [33] */
  height: 2px;
  margin-right: auto; /* [33] */
  margin-left: auto; /* [33] */
  background: #39815c;
  opacity: 0;
}
.c-input:focus-within::before {
  opacity: 1;
}
.c-form-field.is-readonly .c-input:focus-within {
  /* stylelint-disable-next-line selector-max-specificity */
}
.c-form-field.is-readonly .c-input:focus-within::before {
  background: #9e9fa0; /* [22] */
}
.c-form-field.is-error .c-input::before,
.c-input.is-error::before {
  background: #d92b35;
}

.c-form-field.is-error:hover, .c-form-field.is-error:focus-within {
  /* stylelint-disable-next-line selector-max-class */
}
.c-form-field.is-error:hover .c-input::before, .c-form-field.is-error:focus-within .c-input::before {
  background: #d92b35;
}

.c-input.is-error:hover::before, .c-input.is-error:focus-within::before {
  background: #d92b35;
}

.c-form-field.is-success .c-input::before,
.c-input.is-success::before {
  background: #37d002;
}

.c-form-field.is-success:hover, .c-form-field.is-success:focus-within {
  /* stylelint-disable-next-line selector-max-class */
}
.c-form-field.is-success:hover .c-input::before, .c-form-field.is-success:focus-within .c-input::before {
  background: #37d002;
}

.c-input.is-success:hover::before, .c-input.is-success:focus-within::before {
  background: #37d002;
}

.c-input__input {
  flex-grow: 1; /* [34] */
  flex-shrink: 1; /* [34] */
  flex-basis: 0; /* [34] */
  width: 100%;
  min-width: 0; /* [25] */
  padding: 0 12px;
  border: 1px solid #5a5b5c;
  border-radius: 0; /* [14] */
  font-weight: 400;
  background: rgba(22, 23, 24, 0.06);
  color: #161718;
  box-shadow: none;
  -webkit-appearance: none;
  appearance: none; /* [11] */
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
  /**
   * Hover state styles
   */
  /**
   * Focus state styles
   */
  /**
   * Disabled state styles
   */
  /**
   * Readonly state styles
   */
  /**
   * Input status themes
   */
  /* stylelint-disable-next-line order/order */
}
.c-input__input:only-child {
  border-radius: 4px; /* [15] */
}
.c-input__input:not(textarea) {
  font-size: 1rem;
  line-height: 56px;
  /* [12] */
  height: 56px; /* [12] */
}
textarea.c-input__input {
  font-size: 1rem;
  line-height: 24px;
  flex-basis: auto; /* [34] */
  padding-top: 8px; /* [13] */
  padding-bottom: 8px; /* [13] */
}

select.c-input__input {
  border-top-right-radius: 4px; /* [17] */
  border-bottom-right-radius: 4px; /* [17] */
}

.c-input--select .c-input__input {
  padding-right: 48px; /* [19] */
}
.c-input--reversed .c-input__input {
  border-right: 1px solid #5a5b5c;
  border-left: 0; /* [7] */
  border-radius: 0;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
}
.c-input__input::placeholder {
  font-weight: 400;
  color: #5a5b5c;
  opacity: 1;
}
.c-input__input::-ms-clear {
  display: none; /* [24] */
}
.c-input__input:hover {
  border-color: #161718;
}
.c-input__input:hover ~ .c-input__addon {
  border-color: #161718; /* [3] */
}
.c-input__input:focus, .c-input__input:focus-visible {
  border-color: #39815c;
  outline: none;
}
.c-input__input:focus ~ .c-input__addon, .c-input__input:focus-visible ~ .c-input__addon {
  border-color: #39815c;
}
.c-input__input.is-disabled, .c-input__input[disabled] {
  border-color: #9e9fa0;
  background-color: rgba(22, 23, 24, 0.06);
  color: #9e9fa0;
  pointer-events: none;
  cursor: default;
  -webkit-text-fill-color: #9e9fa0;
  opacity: 1; /* [32] */
}
.c-input__input.is-disabled ~ .c-input__addon, .c-input__input[disabled] ~ .c-input__addon {
  border-color: #9e9fa0 !important; /* [23] */ /* stylelint-disable-line itcss/no-at-important */
  background-color: rgba(22, 23, 24, 0.06); /* [23] */
  color: #d8d8d8; /* [23] */
  pointer-events: none;
  cursor: default;
  /* stylelint-disable-next-line selector-max-class */
}
.c-input__input.is-disabled ~ .c-input__addon:not(.c-input__addon--no-background), .c-input__input[disabled] ~ .c-input__addon:not(.c-input__addon--no-background) {
  background-color: #9e9fa0; /* [23] */
  color: #d8d8d8; /* [23] */
}
.c-input__input.is-disabled ~ .c-input__addon.c-input__addon--no-background, .c-input__input[disabled] ~ .c-input__addon.c-input__addon--no-background {
  color: #d8d8d8;
}
.c-input__input.is-readonly, .c-input__input[readonly] {
  border-color: #9e9fa0;
  background-color: rgba(22, 23, 24, 0.06);
  color: #161718;
  pointer-events: none;
  cursor: default;
  -webkit-text-fill-color: #161718;
}
.c-input__input.is-readonly ~ .c-input__addon, .c-input__input[readonly] ~ .c-input__addon {
  border-color: #9e9fa0; /* [22] */
  background-color: rgba(22, 23, 24, 0.06); /* [22] */
  color: #161718; /* [22] */
  pointer-events: none;
  cursor: default;
}
.c-input__input.is-readonly ~ .c-input__addon:not(.c-input__addon--no-background), .c-input__input[readonly] ~ .c-input__addon:not(.c-input__addon--no-background) {
  background-color: #9e9fa0; /* [22] */
}
.c-input__input.is-readonly:focus, .c-input__input[readonly]:focus {
  border-color: #9e9fa0; /* [22] */
}
.c-input__input.is-readonly:focus ~ .c-input__addon, .c-input__input[readonly]:focus ~ .c-input__addon {
  border-color: #9e9fa0; /* [22] */
}
.c-input__input.is-error {
  border-color: #d92b35 !important;
  color: #161718;
}
.c-input__input.is-error ~ .c-input__addon,
.c-input__input.is-error ~ .c-input__state-icon {
  border-color: #d92b35;
  color: #161718;
  /* stylelint-disable-next-line selector-max-class */
}
.c-input__input.is-error ~ .c-input__addon.c-input__addon--no-background,
.c-input__input.is-error ~ .c-input__state-icon.c-input__addon--no-background {
  color: #d92b35;
}
.c-input__input.is-error:focus ~ .c-input__addon,
.c-input__input.is-error:focus ~ .c-input__state-icon {
  border-color: #d92b35;
}
.c-input__input.is-error:hover {
  border-color: #d92b35;
}
.c-input__input.is-error:hover ~ .c-input__addon,
.c-input__input.is-error:hover ~ .c-input__state-icon {
  border-color: #d92b35;
}
.c-input__input.is-success {
  border-color: #37d002 !important;
  color: #161718;
}
.c-input__input.is-success ~ .c-input__addon,
.c-input__input.is-success ~ .c-input__state-icon {
  border-color: #37d002;
  color: #161718;
  /* stylelint-disable-next-line selector-max-class */
}
.c-input__input.is-success ~ .c-input__addon.c-input__addon--no-background,
.c-input__input.is-success ~ .c-input__state-icon.c-input__addon--no-background {
  color: #37d002;
}
.c-input__input.is-success:focus ~ .c-input__addon,
.c-input__input.is-success:focus ~ .c-input__state-icon {
  border-color: #37d002;
}
.c-input__input.is-success:hover {
  border-color: #37d002;
}
.c-input__input.is-success:hover ~ .c-input__addon,
.c-input__input.is-success:hover ~ .c-input__state-icon {
  border-color: #37d002;
}
.c-input .c-input__input, .c-input--reversed .c-input__input {
  border-width: 0; /* [28] */
  border-bottom-width: 1px; /* [28] */
}

.c-input__addon {
  font-size: 1rem;
  line-height: 1;
  position: relative;
  display: flex; /* [16] */
  align-items: center; /* [16] */
  justify-content: center; /* [16] */
  order: 5; /* [8] */
  margin-bottom: 0; /* [6] */
  padding-right: 12px;
  padding-left: 12px;
  border: 1px solid #5a5b5c; /* [7] */
  border-left: 0; /* [7] */
  text-align: center;
  background-color: rgba(22, 23, 24, 0.06);
  color: #161718;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
  /**
   * Modify fake line to cover up border between input and addon
   * when `.c-input--reversed` modifier is used.
   */
  justify-content: flex-end;
  padding-right: 0;
}
.c-input__addon .c-icon {
  color: inherit; /* [27] */
}
.c-input--reversed .c-input__addon {
  order: -5; /* [8] */
  border: 1px solid #5a5b5c; /* [7] */
  border-right: 0; /* [7] */
  border-radius: 0;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
}
.c-input--reversed .c-input__addon::before {
  right: auto;
  left: 100%;
}
.c-input__addon, .c-input--reversed .c-input__addon {
  border-width: 0; /* [28] */
  border-bottom-width: 1px; /* [28] */
}
.c-input--reversed .c-input__addon {
  justify-content: flex-start;
  padding-right: 12px;
  padding-left: 0;
}
.c-input__addon::after {
  display: none; /* [31] */
}

button.c-input__addon {
  padding-top: 0; /* [10] */
  padding-bottom: 0; /* [10] */
  -webkit-appearance: none;
  appearance: none; /* [10] */
  cursor: pointer;
}
button.c-input__addon:focus {
  outline: 0; /* [10] */
}

.c-input__addon--no-background {
  position: relative;
  background-color: rgba(22, 23, 24, 0.06);
  color: #161718;
}

.c-input__state-icon {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  /* [9] */
  font-size: 1.5rem;
  line-height: 54px;
  position: relative;
  padding-right: 12px;
  padding-left: 12px;
  border: 1px solid #5a5b5c;
  background: rgba(22, 23, 24, 0.06);
  /* stylelint-disable-next-line order/order */
  /**
   * Modify fake line to cover up the ROUNDED border between input and state icon.
   */
  padding-right: 0;
  border-width: 0; /* [28] */
  border-bottom-width: 1px; /* [28] */
}
.c-input--reversed .c-input__state-icon, .c-input__state-icon:last-child {
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
}
.c-input__input.is-error ~ .c-input__state-icon {
  border-color: #d92b35;
  color: #d92b35;
}
.c-input__input.is-error ~ .c-input__state-icon::after {
  content: "\f17a";
}
.c-input__input.is-success ~ .c-input__state-icon {
  border-color: #37d002;
  color: #37d002;
}
.c-input__input.is-success ~ .c-input__state-icon::after {
  content: "\f146";
}
.c-input--reversed .c-input__state-icon::before { /* [4] */
  top: -1px;
  bottom: -1px;
  width: 4px;
  border-top: 1px solid #5a5b5c;
  border-bottom: 1px solid #5a5b5c;
  border-color: inherit;
}

.c-input__counter {
  font-size: 0.75rem;
  width: 100%; /* [35] */
  padding-top: 2px;
  font-weight: 400;
  line-height: 1;
  text-align: right;
  color: #7c7d7e;
}
.c-input__input ~ .c-input__counter {
  margin-top: 2px;
}
.c-input__input.is-disabled + .c-input__counter, .c-input__input[disabled] + .c-input__counter, .c-input__input.is-readonly + .c-input__counter, .c-input__input[readonly] + .c-input__counter {
  display: none; /* [35] */
}

.c-input__counter--alert { /* [37] */
  color: #d92b35;
}

/* ------------------------------------*\
    #INPUT
\*------------------------------------ */
/**
 * [1] Placeholder, non-filled.
 *     `:placeholder-shown` can not be utilized due to partly custom element
 *     structure with wrappers and pseudo-elements.
 * [2] Filled inputs.
 * [3] Vertically center next to input.
 * [4] Visually center of visual fake container (input + label)
 *     in form-field context.
 * [5] Exclude height adjustment for combobox (search) to use regular input height..
 * [6] Addon can contain 4 characters while maintaining alignment with other inputs.
 *     See input component notes for details.
 */
.c-input, .c-input.c-input--reversed {
  /* stylelint-disable-next-line selector-max-class */
}
.c-input .c-input__input.c-input__input,
.c-input .c-input__addon, .c-input.c-input--reversed .c-input__input.c-input__input,
.c-input.c-input--reversed .c-input__addon {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  line-height: 1;
}
.c-form-field:not(.c-form-field--inline) .c-input.c-input--select::after {
  top: 0; /* [4] */
  transform: none; /* [4] */
}

.c-input__input:where([disabled], [readonly]) ~ .c-input__addon:not(.c-input__addon--no-background) {
  min-width: calc(4ch + 24px); /* [6] */
}
.c-input__addon:where(button):has(.c-icon) .c-icon {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  scale: 1;
  position: relative;
}
.c-input__addon:where(button):has(.c-icon) .c-icon::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  transition: inherit;
}
.c-input__addon:where(button):has(.c-icon) .c-icon:hover::after {
  background-color: rgba(22, 23, 24, 0.06);
}

.c-input__addon:where(button):has(.c-icon) .c-icon:active {
  scale: 0.95;
}

.c-input__addon:where(button):has(.c-icon) .c-icon::after {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.c-input__addon:where(button):has(.c-icon):focus-visible {
  outline: 0;
  /* stylelint-disable-next-line selector-max-specificity */
}
.c-input__addon:where(button):has(.c-icon):focus-visible .c-icon::after {
  --focus-outline-color: #161718;
  --focus-outline-offset: 1px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}
.c-input__addon:where(button):has(.c-icon)::after {
  display: block;
}

.c-form-field:not(.c-form-field--inline):not(.c-form-field--no-floating):not(.c-form-field--textarea) {
  /* stylelint-disable-next-line selector-max-specificity */
}
.c-form-field:not(.c-form-field--inline):not(.c-form-field--no-floating):not(.c-form-field--textarea) .c-input__input {
  padding-top: 28px;
  padding-bottom: 8px;
}

.c-form-field.c-form-field--textarea .c-input__input {
  padding-top: 28px;
}

.c-form-field--inline .c-form-field__label {
  transform: none; /* [3] */
}

.c-form-field--static .c-form-field__label {
  margin-bottom: 8px;
}

.c-form-field:not(.c-form-field--no-floating, .c-form-field--inline, .c-form-field--static) .c-form-field__label {
  position: absolute; /* [3] */
}

.c-form-field--no-floating:not(.c-form-field--static) .c-form-field__label {
  padding-top: 8px;
  padding-left: 12px;
  padding-right: 12px;
  transform: none;
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
  background-color: rgba(22, 23, 24, 0.06);
}
.c-form-field--no-floating:not(.c-form-field--static) .c-input__input {
  height: 36px;
}
.c-form-field--no-floating:not(.c-form-field--static) .c-combobox .c-input__input {
  height: 56px; /* [5] */
}
.c-form-field--no-floating:not(.c-form-field--static) .c-input__input,
.c-form-field--no-floating:not(.c-form-field--static) .c-input__addon {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

/* stylelint-disable selector-max-specificity */
.c-input__input:not(.c-inline-editable__input, .is-error, [disabled], [readonly], :focus) {
  /* [1] */
  /* [2] */
}
.c-input__input:not(.c-inline-editable__input, .is-error, [disabled], [readonly], :focus)[value]:not([value=""]),
.c-input__input:not(.c-inline-editable__input, .is-error, [disabled], [readonly], :focus)[value]:not([value=""]) ~ .c-input__addon, .c-input__input:not(.c-inline-editable__input, .is-error, [disabled], [readonly], :focus):not(:placeholder-shown),
.c-input__input:not(.c-inline-editable__input, .is-error, [disabled], [readonly], :focus):not(:placeholder-shown) ~ .c-input__addon {
  border-color: #464748;
}

.c-input__input.is-error[value]:not([value=""]),
.c-input__input.is-error[value]:not([value=""]) ~ .c-input__addon,
.c-input__input.is-error[value]:not([value=""]) ~ .c-input__state-icon, .c-input__input.is-error:not(:placeholder-shown),
.c-input__input.is-error:not(:placeholder-shown) ~ .c-input__addon,
.c-input__input.is-error:not(:placeholder-shown) ~ .c-input__state-icon {
  border-bottom-width: 2px;
}

/* stylelint-enable selector-max-specificity */
.c-input__state-icon,
.c-input__addon {
  padding-right: 12px;
}
.c-input--reversed .c-input__state-icon,
.c-input--reversed .c-input__addon {
  padding-left: 12px;
  padding-right: 0;
}
.c-input--reversed .c-input__state-icon, .c-input__state-icon:last-child,
.c-input--reversed .c-input__addon,
.c-input__addon:last-child {
  border-bottom-right-radius: 0;
}

button.c-input__addon,
a.c-input__addon {
  text-decoration: underline;
}
button.c-input__addon:focus-visible,
a.c-input__addon:focus-visible {
  --focus-outline-color: #161718;
  --focus-outline-offset: 1px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

/* ------------------------------------*\
    #ERROR-MESSAGE (Settings)
\*------------------------------------ */
/* ------------------------------------*\
    #ERROR-MESSAGE
\*------------------------------------ */
/**
 * [1] Just output the declaration when it's != 0.
 * [2] Hide messages without content. Selector only matches for NO content,
 *     whitespaces & comments are not considered as empty.
 * [3] Match selector even with whitespaces & comments,
 *     analogue to `:blank` (firefox only).
 * [4] Move error message visually to the end in a flexbox context to make it
 *     work properly with `.c-input__counter`.
 */
.c-error-message {
  font-size: 0.75rem;
  order: 1;
  font-weight: 400;
  color: #d92b35;
}
.c-error-message:empty {
  display: none; /* [2] */
}
.c-error-message:-moz-only-whitespace {
  display: none; /* [3] */
}
.c-error-message a {
  color: currentColor;
}

/* ------------------------------------*\
    #CHECKBOX
\*------------------------------------ */
/**
 * [1] Defensively reset any `margin-bottom`.
 * [2] Set the indent of an adjusting `.c-form-field__extra` via a CSS custom
 *     property.
 * [3] Hide original checkbox.
 * [4] Make it block so everything behaves as expected.
 * [5] Setting the height of the label text to a minimum of the checkbox
 *     size makes the text clickable on its entire height, i.e.: It increases
 *     the click area.
 * [6] Align the first (or only) row of label text vertically centered to the
 *     checkbox.
 * [7] Keep the spacing between checkbox and label text consistent,
 *     independent from the checkbox size.
 * [8] Relation for the checkbox.
 * [9] Vertically center the icon inside of the checkbox.
 * [10] The overlay has the same dimensions as the box but transparent borders
 *      and `background-clip: content-box;` to avoid sometimes invisible borders
 *      in smaller browser zoom levels.
 * [11] Animate the positioning of the overlay over the icon.
 */
.c-checkbox {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  margin-bottom: 0; /* [1] */
}
.c-checkbox + .c-form-field__extra {
  --form-field-extra-indent: 26px; /* [2] */
}

.c-checkbox__input {
  position: absolute !important; /* stylelint-disable-line itcss/no-at-important */
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  /* [3] */
}

.c-checkbox__label, .c-combobox__listbox[aria-multiselectable=true] .c-combobox__item__text {
  /* stylelint-disable-line scss/no-duplicate-dollar-variables */
  font-size: 0.875rem;
  line-height: 24px;
  position: relative; /* [8] */
  display: block; /* [4] */
  min-height: 18px; /* [5] */
  /* [6] */
  padding-left: 26px; /* [7] */
  font-weight: 400;
  color: #161718;
  cursor: pointer;
}
.c-checkbox__input:focus + .c-checkbox__label::before, .c-combobox__listbox[aria-multiselectable=true] .c-checkbox__input:focus + .c-combobox__item__text::before {
  border-color: #464748;
}
.c-checkbox__input[disabled] + .c-checkbox__label, .c-combobox__listbox[aria-multiselectable=true] .c-checkbox__input[disabled] + .c-combobox__item__text {
  color: #9e9fa0;
  cursor: default;
  -webkit-user-select: none;
  user-select: none;
}
.c-checkbox__input.is-error + .c-checkbox__label, .c-combobox__listbox[aria-multiselectable=true] .c-checkbox__input.is-error + .c-combobox__item__text {
  color: #d92b35;
}
.c-checkbox__label::before, .c-combobox__listbox[aria-multiselectable=true] .c-combobox__item__text::before {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 18px;
  height: 18px;
  border: 2px solid #464748;
  border-radius: 2px;
  background-color: transparent;
  /* stylelint-disable-next-line selector-max-specificity */
  /* stylelint-disable selector-max-specificity */
  /* stylelint-enable */
}
.c-checkbox:hover .c-checkbox__label::before, .c-checkbox:hover .c-combobox__listbox[aria-multiselectable=true] .c-combobox__item__text::before, .c-combobox__listbox[aria-multiselectable=true] .c-checkbox:hover .c-combobox__item__text::before {
  border-color: #161718;
}
.c-checkbox__input:checked + .c-checkbox__label::before, .c-combobox__listbox[aria-multiselectable=true] .c-checkbox__input:checked + .c-combobox__item__text::before {
  border-color: #39815c;
  background-color: #39815c;
}
.c-checkbox:hover .c-checkbox__input:not(.is-error, [disabled]):checked + .c-checkbox__label::before, .c-checkbox:hover .c-combobox__listbox[aria-multiselectable=true] .c-checkbox__input:not(.is-error, [disabled]):checked + .c-combobox__item__text::before, .c-combobox__listbox[aria-multiselectable=true] .c-checkbox:hover .c-checkbox__input:not(.is-error, [disabled]):checked + .c-combobox__item__text::before {
  border-color: #59bc87;
  background-color: #59bc87;
}
.c-checkbox__input[disabled] + .c-checkbox__label::before, .c-combobox__listbox[aria-multiselectable=true] .c-checkbox__input[disabled] + .c-combobox__item__text::before {
  border-color: #9e9fa0;
  background-color: transparent;
}
.c-checkbox__input.is-error + .c-checkbox__label::before, .c-combobox__listbox[aria-multiselectable=true] .c-checkbox__input.is-error + .c-combobox__item__text::before {
  border-color: #d92b35;
  background-color: transparent;
}
.c-checkbox__input:checked[disabled] + .c-checkbox__label::before, .c-combobox__listbox[aria-multiselectable=true] .c-checkbox__input:checked[disabled] + .c-combobox__item__text::before {
  background-color: #9e9fa0;
}
.c-checkbox__input:checked.is-error + .c-checkbox__label::before, .c-combobox__listbox[aria-multiselectable=true] .c-checkbox__input:checked.is-error + .c-combobox__item__text::before {
  background-color: #d92b35;
}
.c-checkbox__label::after, .c-combobox__listbox[aria-multiselectable=true] .c-combobox__item__text::after {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  content: "\f148";
  position: absolute;
  top: 0; /* [10] */
  left: 0; /* [10] */
  width: 18px; /* [10] */
  height: 18px; /* [10] */
  transform: scale(0);
  transform-origin: center center;
  font-size: 18px;
  line-height: 18px; /* [9] */
  text-align: center;
  background-clip: content-box; /* [10] */
  background-color: transparent; /* [10] */
  color: #ffffff;
  visibility: hidden;
}
.c-checkbox__input:checked + .c-checkbox__label::after, .c-combobox__listbox[aria-multiselectable=true] .c-checkbox__input:checked + .c-combobox__item__text::after {
  transform: scale(1);
  visibility: visible;
}
.c-checkbox__input.is-error + .c-checkbox__label::after, .c-combobox__listbox[aria-multiselectable=true] .c-checkbox__input.is-error + .c-combobox__item__text::after {
  color: #ffffff;
}

/* ------------------------------------*\
    #CHECKBOX
\*------------------------------------ */
/**
 * [1] Vertically center checkbox with first line of label.
 * [2] Transition from transparent to target color,
 *     otherwise the transition is not smooth.
 * [3] Prevent unnecessary spacing when no text is used as label.
 */
.c-checkbox__input + .c-checkbox__label::before, .c-combobox__listbox[aria-multiselectable=true] .c-checkbox__input + .c-combobox__item__text::before {
  --focus-outline-color: transparent;
  --focus-outline-offset: 1px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
  /* [2] */
}
.c-checkbox__input:focus-visible + .c-checkbox__label::before, .c-combobox__listbox[aria-multiselectable=true] .c-checkbox__input:focus-visible + .c-combobox__item__text::before {
  --focus-outline-color: #161718;
  --focus-outline-offset: 1px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}
.c-checkbox__label::before, .c-combobox__listbox[aria-multiselectable=true] .c-combobox__item__text::before, .c-checkbox__label::after, .c-combobox__listbox[aria-multiselectable=true] .c-combobox__item__text::after {
  top: 3px; /* [1] */
}
.c-checkbox__label:empty, .c-combobox__listbox[aria-multiselectable=true] .c-combobox__item__text:empty {
  padding-left: 18px; /* [3] */
}

/**
 * [1] Resemble checkbox styles.
 */
/* ------------------------------------*\
    #COMBOBOX
\*------------------------------------ */
/* stylelint-disable-line scss/dollar-variable-default, scss/no-duplicate-dollar-variables */
/**
 * [1]  Prevent text-selection on (accidental) double-click.
 * [2]  Mimic (select) input style.
 * [3]  Use `calc` only if `padding` is > `0` to prevent division by 0
 *      resulting in invalid calculation and declaration being ignored.
 * [4]  Mimic (custom) checkbox styles without actual checkbox component.
 * [5]  Place the listbox directly under the select label.
 * [6]  Span full width.
 * [7]  Toggle visibility for open/closed state, fade animation.
 * [8]  If the `max-height` of the listbox is exceeded, make it
 *      scrollable.
 * [9]  Do not assign any horizontal padding as it would interfere with the
 *      `:hover` on the items if the borders are not full width.
 * [10] Prevent double-border between combobox and listbox.
 * [11] Act as a visual representation / human readable values,
 *      do not interfere with combobox interaction.
 * [12] Create the border between the dropdown items with a pseudo-element, so
 *      we can better handle the padding + `:hover` on the items.
 * [13] Increase specificity to avoid issues resulting from `@extend` [4].
 * [14] Avoid overlapping icon & value presentation.
 *      BRON-7857 for more robust solution.
 * [15] Maintain default input height
 *      while allowing for some padding for multiline text.
 * [16] Center icon in Firefox.
 * [17] Use `::before` pseudo-element for the border to avoid box-model changes
 *      when the border width changes.
 * [18] Display the `noOptionsMessage` via `[data-combobox-no-options-message]`.
 * [19] Align the search input with the options and separate it via a bottom border.
 * [20] Prevent `noOptionsMessage` from being selectable.
 * [21] Prevent any pointer-events on disabled or readonly variants of the combobox.
 * [22] Apply the respective disabled and readonly colors to the input icon and border.
 * [23] Overwrite color of checkbox label resulting from `@extend` [4].
 * [24] Prevent interaction with options when the Combobox is closed.
 */
.c-combobox__wrapper {
  position: relative;
}
.c-combobox__wrapper > * {
  -webkit-user-select: none;
  user-select: none; /* [1] */
}

.c-combobox {
  position: relative;
  display: flex;
  gap: 8px;
  align-items: center;
  min-height: 36px; /* [2] */
  padding-left: 12px; /* [2] */
  padding-right: 12px; /* [2] */
  padding-top: 0; /* [15] */
  padding-bottom: 0; /* [15] */
  background-color: rgba(22, 23, 24, 0.06);
}
.c-combobox:hover {
  border-color: #161718;
}
.c-combobox::before { /* [17] */
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  border-bottom: 1px solid #5a5b5c; /* [2] */
}
.c-combobox:focus, .c-combobox:focus-within {
  outline: 0;
}
.c-combobox:focus::before, .c-combobox:focus-within::before { /* [17] */
  border-width: 2px;
  border-color: #39815c;
  outline: 0;
}
.c-combobox::after {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.5rem;
  align-self: flex-end;
  margin-top: auto; /* [16] */
  margin-bottom: auto; /* [16] */
}
.c-combobox[aria-expanded=false]::after {
  content: "\f151";
}
.c-combobox[aria-expanded=true]::before { /* [17] */
  border-width: 2px;
  border-color: #347954;
}
.c-combobox[aria-expanded=true]::after {
  content: "\f156";
}
.c-combobox[aria-disabled=true], .c-combobox[aria-readonly=true] {
  pointer-events: none; /* [21] */
}
.c-combobox[aria-disabled=true] {
  background-color: #d8d8d8;
}
.c-combobox[aria-disabled=true]::before {
  border-color: #9e9fa0; /* [22] */
}
.c-combobox[aria-disabled=true]::after {
  color: #9e9fa0; /* [22] */
}
.c-combobox[aria-readonly=true] {
  background-color: #ffffff;
}
.c-combobox[aria-readonly=true]::before {
  border-color: #9e9fa0; /* [22] */
}
.c-combobox[aria-readonly=true]::after {
  color: #161718; /* [22] */
}

.c-combobox__value-presentation {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: auto;
  pointer-events: none; /* [11] */
}

.c-combobox__value-presentation__text {
  font-weight: 400;
  line-height: 1.2;
  word-break: break-word; /* [14] */
  color: #161718;
}
.c-combobox__value-presentation__text.has-placeholder {
  font-weight: 400;
  color: #5a5b5c;
}
[aria-disabled=true] .c-combobox__value-presentation__text {
  color: #9e9fa0;
}
[aria-readonly=true] .c-combobox__value-presentation__text {
  color: #161718;
}

.c-combobox__listbox-container {
  /* stylelint-disable */
  background: linear-gradient(#ffffff 30%, rgba(255, 255, 255, 0)), linear-gradient(rgba(255, 255, 255, 0), #ffffff 70%) 0 100%, radial-gradient(farthest-side at 50% 0, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0)), radial-gradient(farthest-side at 50% 100%, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0)) 0 100%;
  background-repeat: no-repeat;
  background-color: #ffffff;
  background-size: 100% 42px, 100% 42px, 100% 14px, 100% 14px;
  background-attachment: local, local, scroll, scroll;
  /* stylelint-enable */
  max-height: 240px;
  overflow-y: auto;
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  position: absolute;
  z-index: 1700;
  top: 100%; /* [5] */
  right: 0; /* [6] */
  left: 0; /* [6] */
  visibility: hidden; /* [7] */
  opacity: 0; /* [7] */
  max-height: 240px;
  overflow-y: auto; /* [8] */
  padding: 0 0; /* [9] */
  background-color: #ffffff;
  border-top-width: 0; /* [10] */
  border-bottom-right-radius: 4px;
  border-bottom-left-radius: 4px;
  pointer-events: none; /* [24] */
}
.c-combobox[aria-expanded=true] .c-combobox__listbox-container {
  visibility: visible; /* [7] */
  opacity: 1; /* [7] */
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.15);
  pointer-events: initial; /* [24] */
}

.c-combobox__item {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  position: relative;
  padding: 12px 24px;
  color: #161718;
  cursor: pointer;
}
.c-combobox__item:not([aria-disabled=true])[aria-selected=true] {
  background-color: #ffffff;
}
.c-combobox__item:not([aria-disabled=true]):hover, .c-combobox__item:not([aria-disabled=true]).is-focused {
  background-color: #f1f1f1;
  color: #161718;
}
.c-combobox__item[aria-disabled=true] {
  pointer-events: none;
}

.c-combobox__item__text {
  /* stylelint-disable-line scss/dollar-variable-colon-space-after */
  font-size: 1rem !important;
  display: flex !important; /* [13] */
  align-items: center;
  font-weight: 400 !important;
}
.c-combobox__listbox[aria-multiselectable=true] .c-combobox__item__text {
  /* [4] */ /* stylelint-disable-line scss/at-extend-no-missing-placeholder */
  /* [23] */
}
.c-combobox__item:hover .c-combobox__item__text {
  font-weight: 400;
}
.c-combobox__item[aria-disabled=true] .c-combobox__item__text {
  color: #9e9fa0 !important; /* [13] */
}
.c-combobox__item[aria-disabled=true] .c-combobox__item__text::before {
  border-color: #9e9fa0 !important; /* [13] */
  background-color: transparent !important; /* [13] */
}
.c-combobox__item[aria-selected=true] .c-combobox__item__text {
  font-weight: 700 !important; /* [13] */
  /* [13] */
}
.c-combobox__item[aria-selected=true] .c-combobox__item__text::before {
  border-color: #347954 !important; /* [13] */
  background-color: #347954 !important; /* [13] */
}
.c-combobox__item[aria-selected=true] .c-combobox__item__text::after {
  /* [4] */
  transform: scale(1) !important; /* [13] */
  visibility: visible !important; /* [13] */
  /* [13] */
}

.c-combobox__listbox.has-no-options::after { /* [18] */
  content: attr(data-combobox-no-options-message);
  display: block;
  width: 100%;
  padding: 12px 24px;
  text-align: center;
  pointer-events: none; /* [20] */
}

.c-combobox__search-input {
  padding: 16px 24px; /* [19] */
  /* [19] */
}

/* ------------------------------------*\
    #COMBOBOX
\*------------------------------------ */
/**
 * [1] Apply `border-radius` to all sides, default only applies to bottom.
 * [2] Visually center of visual fake container (input + label).
 */
.c-combobox__wrapper input[name=combobox-values][value]:not([value=""]) ~ .c-combobox:not([aria-disabled=true]):not([aria-readonly=true]):not(:focus)::before {
  border-color: #464748;
}

.c-form-field .c-combobox {
  background-color: rgba(22, 23, 24, 0.06);
}
.c-form-field .c-combobox::after {
  position: absolute;
  top: 0; /* [2] */
  right: 12px;
}

.c-combobox__listbox-container {
  transform: translateY(16px);
  border-radius: 4px; /* [1] */
}

/* ------------------------------------*\
    #TILE-SELECT
\*------------------------------------ */
/*
 *  Mixin defines some common styling declarations for the various component
 *  states.
 */
/**
 * [1] Compensate for the additional space required for the check mark at the
 *     top.
 * [2] Ensure tile icon foreground and background use common position.
 * [3] Ensure that check icon is centered.
 * [4] Make `.c-tile-select__body-top` take up all available space to push
 *     `.c-tile-select__body-bottom` to the very bottom of the body.
 * [5] Add half the size of the check mark to the top padding to compensate for
 *     the space the check mark takes up.
 * [6] Apply margin if the element is not the first child in it's container.
 * [7] If the icon is hidden on small screens, the title below it should not
 *     have a top margin.
 * [8] Place the pseudo element at the top center of the `.c-tile-select__body`
 *     And translate it back by half it's width and height for it to be
 *     centered.
 * [9] Override hint colors for selected, disabled or disabled selected tiles.
 * [10] Ensure that all content is centered.
 * [11] Ensure that all content has top spacing.
 * [12] Place all footer content in a new line.
 * [13] Make sure, the footer content does not stretch across the parent
 *      container.
 */
.c-tile-select {
  width: 100%;
  height: 100%;
  padding-top: 16px; /* [1] */
}

.c-tile-select__input {
  position: absolute !important; /* stylelint-disable-line itcss/no-at-important */
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
}

.c-tile-select__label {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
}

.c-tile-select__body {
  padding-top: 40px;
  padding-left: 24px;
  padding-bottom: 24px;
  padding-right: 24px;
  position: relative; /* [1] */
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 1px solid #e4e4e4;
  border-radius: 8px;
  background-color: #f1f1f1;
  transition-property: color, background-color, border-color;
  transition-duration: 300ms;
  transition-timing-function: ease-in-out;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.c-tile-select__body::before, .c-tile-select__body::after { /* [2] */
  content: "";
  position: absolute;
  top: 0; /* [8] */
  left: 50%; /* [8] */
  display: block;
  width: 32px;
  height: 32px;
  transform: translate(-50%, -50%); /* [8] */
  transition-property: color, background-color, border-color;
  transition-duration: 300ms;
  transition-timing-function: ease-in-out;
}
.c-tile-select__body::before {
  border: 1px solid #e4e4e4;
  border-radius: 50%;
  background-color: #e4e4e4;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.c-tile-select__body::after {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  content: "\f148";
  font-size: 20px;
  line-height: 32px; /* [3] */
  text-align: center; /* [3] */
  color: #ffffff;
}
.c-tile-select__input + .c-tile-select__body:hover, .c-tile-select__input:focus + .c-tile-select__body {
  border-color: #9e9fa0;
  cursor: pointer;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.c-tile-select__input + .c-tile-select__body:hover::before, .c-tile-select__input:focus + .c-tile-select__body::before {
  border-color: #9e9fa0;
  background-color: #d8d8d8;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.c-tile-select__input + .c-tile-select__body:hover::after, .c-tile-select__input:focus + .c-tile-select__body::after {
  color: #ffffff;
}
.c-tile-select__input:checked + .c-tile-select__body {
  border-color: #347954;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.c-tile-select__input:checked + .c-tile-select__body::before {
  border-color: #347954;
  background-color: #347954;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.c-tile-select__input:checked + .c-tile-select__body::after {
  color: #ffffff;
}
.c-tile-select__input:disabled + .c-tile-select__body {
  border-color: #d8d8d8;
  opacity: 1;
  cursor: auto;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.c-tile-select__input:disabled + .c-tile-select__body::before {
  border-color: #d8d8d8;
  background-color: #e4e4e4;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.c-tile-select__input:disabled + .c-tile-select__body::after {
  color: #ffffff;
}
.c-tile-select__input:checked:disabled + .c-tile-select__body {
  border-color: #9e9fa0;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.c-tile-select__input:checked:disabled + .c-tile-select__body::before {
  border-color: #9e9fa0;
  background-color: #d8d8d8;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.c-tile-select__input:checked:disabled + .c-tile-select__body::after {
  color: #ffffff;
}
.is-error .c-tile-select__body {
  border-color: #d92b35;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.is-error .c-tile-select__body::before {
  border-color: #d92b35;
  background-color: #e4e4e4;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.is-error .c-tile-select__body::after {
  color: #ffffff;
}
.is-error .c-tile-select__input:hover + .c-tile-select__body, .is-error .c-tile-select__input:focus + .c-tile-select__body {
  border-color: #d92b35;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.is-error .c-tile-select__input:hover + .c-tile-select__body::before, .is-error .c-tile-select__input:focus + .c-tile-select__body::before {
  border-color: #d92b35;
  background-color: #e4e4e4;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.is-error .c-tile-select__input:hover + .c-tile-select__body::after, .is-error .c-tile-select__input:focus + .c-tile-select__body::after {
  color: #ffffff;
}
.is-error .c-tile-select__input:checked + .c-tile-select__body {
  border-color: #d92b35;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.is-error .c-tile-select__input:checked + .c-tile-select__body::before {
  border-color: #d92b35;
  background-color: #d92b35;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.is-error .c-tile-select__input:checked + .c-tile-select__body::after {
  color: #ffffff;
}

.c-tile-select__body-top {
  flex-grow: 1; /* [4] */
  flex-shrink: 1;
  flex-basis: auto;
  text-align: center;
}

.c-tile-select__body-bottom {
  margin-top: 24px;
  /* [11] */
  row-gap: 24px;
  /* [11] */
  display: flex;
  justify-content: center; /* [10] */
  flex-direction: column; /* [12] */
  align-items: center; /* [13] */
}
@media (max-width: 720px) {
  .c-tile-select__body-bottom {
    margin-top: 16px;
  }
}
@media (max-width: 720px) {
  .c-tile-select__body-bottom {
    row-gap: 16px;
  }
}

.c-tile-select__icon {
  display: block;
  font-size: 48px;
}

.c-tile-select__title,
.c-tile-select__text {
  display: block;
}

.c-tile-select__title {
  font-size: 1.4375rem;
  font-weight: 700;
  line-height: 1.2;
}

* + .c-tile-select__title { /* [6] */
  margin-top: 8px;
}

* + .c-tile-select__text { /* [6] */
  margin-top: 8px;
}

/**
 * [1] Reset default.
 * [2] Handle disabled state via color on all elements, not opacity.
 * [3] Reset compensation as the indicator icon is placed differently in this brand.
 */
.c-tile-select {
  padding-top: 0; /* [3] */
}

.c-tile-select__body {
  /* stylelint-disable-next-line selector-max-specificity */
}
.c-tile-select__body::before, .c-tile-select__body::after {
  top: 16px;
  right: 16px;
  left: auto; /* [1] */
  transform: none; /* [1] */
}
.c-tile-select__body::before {
  border: 0; /* [1] */
}
.c-tile-select:not(.is-error) .c-tile-select__input[type=checkbox]:checked:not(:disabled) + .c-tile-select__body:hover {
  border-color: #59bc87;
  /* stylelint-disable-next-line selector-max-specificity */
}
.c-tile-select:not(.is-error) .c-tile-select__input[type=checkbox]:checked:not(:disabled) + .c-tile-select__body:hover::before {
  background-color: #59bc87;
}
.c-tile-select__input:disabled + .c-tile-select__body *:not(.c-btn, .c-btn__text) {
  color: #9e9fa0; /* [2] */
}
.c-tile-select__input:disabled + .c-tile-select__body .c-hint {
  opacity: 0.3;
}

/* ------------------------------------*\
    #RADIO-BUTTON
\*------------------------------------ */
/**
 * [1] Defaulting to inline-block gives us the most flexibility.
 * [2] Defensively reset any margin-bottom.
 * [3] Set the indent of an adjusting `.c-form-field__extra` via a CSS custom
 *     property.
 * [4] Hide original radio button.
 * [5] Make it blocky so everything behaves as expected.
 * [6] Setting the height of the label text to a minimum of the radio button
 *     size makes the text clickable on its entire height, i.e.: It increases
 *     the click area.
 * [7] Align the first (or only) row of label text vertically centered to the
 *     radio button.
 *     Use `max` to ensure the calculation does not result in negative value.
 *     `max()` is the Sass function, not the native CSS function.
 * [8] Keep the spacing between radio button and label text consistent,
 *     independent from the radio button size.
 * [9] Relation for the radio button.
 * [10] Horizontally center the dot inside of the radio button.
 * [11] Scaling seems to be the most efficient and only “nice” method that
 *      works across all browsers. Other methods brought yanky, jumpy
 *      animation artifacts.
 * [12] `.c-radio__label-container` could be an additional container for the
 *      label. For example, it is used by the “Compare and Select” component to
 *      change radio button styles.
 */
.c-radio {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  display: inline-block; /* [1] */
  margin-bottom: 0; /* [2] */
  cursor: pointer;
}
.c-radio + .c-form-field__extra {
  --form-field-extra-indent: 28px; /* [3] */
}

.c-radio__input {
  position: absolute !important; /* stylelint-disable-line itcss/no-at-important */
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  /* [4] */
}

.c-radio__label {
  font-size: 0.875rem;
  line-height: 24px;
  position: relative; /* [9] */
  display: block; /* [5] */
  min-height: 20px; /* [6] */
  padding-top: 0; /* [7] */
  padding-left: 28px; /* [8] */
  font-weight: 400;
  color: #161718;
  /* stylelint-disable selector-max-class, selector-max-specificity */
  /* stylelint-enable */
}
.c-radio__label:hover {
  color: #161718;
}
.c-radio__input:hover + .c-radio__label::before {
  border-color: #161718;
}
.c-radio__input:focus + .c-radio__label::before {
  border-color: #464748;
}
.c-radio__input[disabled] + .c-radio__label {
  color: #9e9fa0;
  cursor: default;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=alternative] .c-radio__input[disabled] + .c-radio__label {
  color: #9e9fa0;
}

.c-radio__input.is-error + .c-radio__label {
  color: #d92b35;
}
.c-radio__label::before, .c-radio__label::after {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  content: "";
  position: absolute;
  display: block;
  border-radius: 50%;
}
.c-radio__label::before {
  top: 0;
  left: 0;
  width: 20px;
  height: 20px;
  border: 2px solid #464748;
  background-color: transparent;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.c-radio__input:checked + .c-radio__label::before, .c-radio__input:checked + .c-radio__label-container .c-radio__label::before { /* [12] */
  border-color: #347954;
  background-color: transparent;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=alternative] .c-radio__input:checked + .c-radio__label::before, [data-theme=alternative] .c-radio__input:checked + .c-radio__label-container .c-radio__label::before {
  background-color: transparent;
}

.c-radio__input:checked:hover:not(.is-error, [disabled]) + .c-radio__label::before {
  border-color: #59bc87;
}
.c-radio__input[disabled] + .c-radio__label::before, .c-radio__input[disabled] + .c-radio__label-container .c-radio__label::before { /* [12] */
  border-color: #9e9fa0;
  background-color: transparent;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=alternative] .c-radio__input[disabled] + .c-radio__label::before, [data-theme=alternative] .c-radio__input[disabled] + .c-radio__label-container .c-radio__label::before {
  border-color: #9e9fa0;
}

.c-radio__input.is-error + .c-radio__label::before, .c-radio__input.is-error + .c-radio__label-container .c-radio__label::before { /* [12] */
  border-color: #d92b35;
}
.c-radio__label::after {
  top: 5px; /* [7] */
  left: 5px; /* [10] */
  width: 10px;
  height: 10px;
  transform: scale(0); /* [11] */
  background-color: #347954;
}
:hover + .c-radio__label::after {
  background-color: #59bc87;
}
.c-radio__input:checked + .c-radio__label::after, .c-radio__input:checked + .c-radio__label-container .c-radio__label::after { /* [12] */
  transform: scale(1); /* [11] */
}
.c-radio__input[disabled] + .c-radio__label::after, .c-radio__input[disabled] + .c-radio__label-container .c-radio__label::after { /* [12] */
  background-color: #9e9fa0;
}
.c-radio__input.is-error + .c-radio__label::after, .c-radio__input.is-error + .c-radio__label-container .c-radio__label::after { /* [12] */
  background-color: #d92b35;
}

/* ------------------------------------*\
    #RADIO-BUTTON
\*------------------------------------ */
/**
 * [1] Fix vertical alignment with label.
 * [2] Transition from transparent to target color,
 *     otherwise the transition is not smooth.
 */
.c-radio__input + .c-radio__label::before {
  --focus-outline-color: transparent;
  --focus-outline-offset: 1px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
  /* [2] */
}
.c-radio__input:focus-visible + .c-radio__label::before {
  --focus-outline-color: #161718;
  --focus-outline-offset: 2px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}
.c-radio__label::before {
  top: 2px; /* [1] */ /* stylelint-disable-line scale-unlimited/declaration-strict-value */
}
.c-radio__label::after {
  top: 7px; /* [1] */ /* stylelint-disable-line scale-unlimited/declaration-strict-value */
}

/* ------------------------------------*\
    #MODAL
\*------------------------------------ */
/**
 * [1]  Modal has to sit on top of everything else.
 * [2]  Fix wobbling inline elements when hovering buttons in the modal
 *      (e.g. macOS Chrome 78 on non-retina displays).
 * [3]  Center the modal content in the middle of the viewport.
 * [4]  If the modal content exceeds the viewport height, this still makes the
 *      content accessible (i.e. scrollable).
 * [5]  The modal title should always be semantically a `<h1>`, but of course
 *      have a smaller font-size.
 * [6]  Add a near-logarithmic gradient at bottom of content.
 * [7]  Allow click through.
 * [8]  Avoid showing gradient when not necessary and override the default
 *      margin-bottom of the last element in the modal content (e.g. `<p>`
 *      has margin-bottom by default).
 * [9]  Reset default heading element spacing.
 * [10] If $modal-content-padding-horizontal is a map, we need to divide the
 *      values in half for each breakpoint.
 * [11] Loop through paddings, take half of each value and push to new map
 *      $content-padding-horizontal-half.
 * [12] The gradient should not overlay the scrollbar.
 * [13] Indicate interaction on non-interactive elements.
 * [14] Prevent elements inside the modal-trigger catching any events
 *      due to event delegation.
 * [15] Overwrite settings to enable `.c-modal--stretch` modal.
 * [16] Position the `.c-modal--stretch` modal in the center without transition.
 * [17] Add some bottom spacing.
 * [18] Prevent interaction with modal content when closed.
 * [19] Take available space in order for alignment on the parent to take effect.
 * [20] This allows scrolling (e.g. when modal height exceeds viewport height)
 *      while pointer is on the overlay.
 * [21] Reduce the line-height to avoid large spacing.
 * [22] Prevent overscroll in the background outside of the modal.
 * [23] Add second param to `min()` function to maintain safespace
 *      for `stretch` variant.
 *      `min()` function not necessary for non-stretch variants.
 * [24] Inline with status-icon by default.
 *      Wrap title to next line to ensure readability when not enough space for title.
 * [25] Improve readability with adjusted line-height for title,
 *      make it independent of heading level and improve status-icon alignment.
 */
.c-modal {
  --modal-width-min: 500px;
  --modal-width-max: 800px;
  /* stylelint-disable-next-line order/order */
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  position: fixed;
  z-index: 4500; /* [1] */
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  opacity: 1;
  visibility: visible;
  backface-visibility: hidden; /* [2] */
}
.c-modal.c-modal--large {
  --modal-width-min: 1000px;
  --modal-width-max: 1600px;
}
.c-modal.c-modal--video {
  --modal-width-min: 750px;
  --modal-width-max: 1000px;
}
.c-modal[aria-hidden=true] {
  pointer-events: none; /* [18] */
  opacity: 0;
  visibility: hidden;
}

.c-modal--center .c-modal__title__wrapper {
  justify-content: center;
}
.c-modal--center .c-modal__title {
  flex-grow: 0;
  flex-basis: auto;
  text-align: center;
}
.c-modal--center .c-modal__content {
  text-align: center;
}

.c-modal--stretch .c-modal__wrapper {
  position: relative; /* [15] */
  top: 32px;
  left: auto;
  margin: auto;
  margin-bottom: 32px;
  transform: none !important; /* [15] */ /* stylelint-disable-line itcss/no-at-important */ /* [15] */ /* [16] */ /* [17] */
}

.c-modal--stretch .c-modal__wrapper,
.c-modal--video .c-modal__wrapper {
  max-height: 90vh;
  overflow-y: auto;
  overscroll-behavior: none; /* [22] */
}
.c-modal--stretch .c-modal__content,
.c-modal--video .c-modal__content {
  max-height: none;
}

.c-modal--no-scroll-shadow .c-modal__footer::before {
  content: none;
}

.c-modal--video .c-modal__footer::before {
  content: none;
}
.c-modal--video .c-modal__content {
  margin-right: 0;
  margin-left: 0;
  padding-right: 0;
  padding-left: 0;
}

/**
 * Styles applied to a js-hook (which is a no-no) is an exception as the trigger
 * can be applied to arbitrary elements but need those additional styles to
 * work properly.
 */
.js-modal-trigger {
  cursor: pointer; /* [13] */
}
.js-modal-trigger * {
  pointer-events: none; /* [14] */
}

.c-modal__overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: rgba(228, 228, 228, 0.8);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  z-index: -1; /* [20] */
}

.c-modal__wrapper {
  position: fixed; /* [3] */
  top: 50%; /* [3] */
  left: 50%; /* [3] */
  min-width: min(var(--modal-width-min), 100vw - 48px);
  max-width: min(var(--modal-width-max), 100vw - 48px); /* [23] */
  transform: translate(-50%, -50%); /* [3] */
  border-radius: 8px;
  background-color: #ffffff;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.15);
}

.c-modal__header {
  padding-top: 32px;
  padding-left: 32px;
  padding-right: 32px;
  padding-bottom: 16px;
  display: flex;
  gap: 16px;
}

.c-modal__title__wrapper {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: auto;
  text-align: left;
}

.c-modal__status-icon {
  align-self: baseline;
  font-size: 40px;
  line-height: 1; /* [21] */
  /* stylelint-disable-next-line order/order */
}
.c-modal__status-icon::before {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
}
.c-modal--info .c-modal__status-icon {
  color: inherit;
}
.c-modal--info .c-modal__status-icon::before {
  content: "\f19b";
}
.c-modal--success .c-modal__status-icon {
  color: #37d002;
}
.c-modal--success .c-modal__status-icon::before {
  content: "\f146";
}
.c-modal--warning .c-modal__status-icon {
  color: #cd4a19;
}
.c-modal--warning .c-modal__status-icon::before {
  content: "\f210";
}
.c-modal--error .c-modal__status-icon {
  color: #d92b35;
}
.c-modal--error .c-modal__status-icon::before {
  content: "\f17a";
}

.c-modal__title {
  font-size: 1.4375rem;
  line-height: 1.2;
  /* [5] */ /* [25] */
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 80%; /* [24] */
  margin-bottom: 0; /* [9] */
}
@media (min-width: 721px) {
  .c-modal__title {
    font-size: 1.6875rem;
    line-height: 1.2;
  }
}
@media (min-width: 1281px) {
  .c-modal__title {
    font-size: 1.875rem;
    line-height: 1.2;
  }
}

.c-modal__close-btn {
  padding: 0;
  border: 0;
  background-color: transparent;
  align-self: baseline;
  margin-left: auto;
  line-height: 1;
  cursor: pointer;
}
.c-modal__close-btn:focus {
  outline: 0;
}
.c-modal__close-btn::before {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.5rem;
  content: "\f15a";
}

.c-modal__content {
  padding-left: 16px;
  margin-left: 16px;
  padding-right: 16px;
  margin-right: 16px;
  max-height: 45vh; /* [4] */
  overflow-y: auto; /* [4] */
  overscroll-behavior: none; /* [22] */
  text-align: left;
  color: #161718;
}
.c-modal__content > *:last-child {
  margin-bottom: 1.5em; /* [8] */
}

.c-modal__footer {
  padding-top: 16px;
  padding-left: 32px;
  padding-right: 32px;
  padding-bottom: 32px;
  position: relative;
  text-align: left;
}
.c-modal__footer::before {
  right: 32px;
  /* [12] */
  content: "";
  position: absolute;
  top: -1.5em; /* [6] */
  left: 0;
  height: 1.5em;
  background: linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.9), #ffffff); /* [6] */
  pointer-events: none; /* [7] */
}

.c-modal__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  column-gap: 16px;
  row-gap: 8px;
}

.c-modal__actions__item {
  flex-shrink: 1;
  flex-basis: 180px;
  flex-grow: 0;
}
.c-modal__actions__item > * {
  width: 100%;
  height: 100%;
}

/* ------------------------------------*\
    #MODAL (Settings)
\*------------------------------------ */
/**
 * [1] Align icon vertically to the text.
 */
.c-modal__close-btn {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  scale: 1;
}
.c-modal__close-btn::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  transition: inherit;
}
.c-modal__close-btn:hover::after {
  background-color: rgba(22, 23, 24, 0.06);
}

.c-modal__close-btn:focus-visible::after {
  --focus-outline-color: #161718;
  --focus-outline-offset: 0;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

.c-modal__close-btn:active {
  scale: 0.95;
}

.c-modal__status-icon {
  display: flex; /* [1] */
}

/* ------------------------------------*\
    #ACCORDION
\*------------------------------------ */
/**
 * [1]  Border below and above the accordion component.
 * [2]  Reset browser-default button styles.
 * [3]  Max line-length.
 * [4]  Lower duration for collapsing to focus on the expanding content.
 * [5]  Remove whitespace from heading (`h*`), `line-height` is set on button.
 * [6]  Do not use `border-top` on first item, because it’s set with
 *      `$accordion-border-top`.
 * [7]  Add offset for CSS-generated icons to accommodate for different
 *      `stroke-width`.
 * [8]  Use `grid-template-rows` to transition the height.
 *      No more choppy `max-height` transition. (see https://www.stefanjudis.com/snippets/how-to-animate-height-with-css-grid/)
 * [9]  Hide panel overflow content (e.g. expanded Combo Box) and only allow
 *      overflow after the finished transition via the dynamically added
 *      `$accordion-panel-state-expanded-transition-end` class.
 * [10] Disable the top border for sibling accordions only if there is
 *      no bottom border.
 * [11] Use pseudo elements to fake vertical padding because actual paddings
 *      would unintentionally enlarge the `.c-accordion__content` grid item.
 * [12] Align `.c-accordion__title-label` to the left and right via flexbox.
 * [13] Stack `.c-accordion__title-label`s vertically in small viewports.
 * [14] Add vertical space between `.c-accordion__title-label` in small
 *      viewports.
 * [15] Push info icon to the left in splitted header titles.
 * [16] Add a space between both splitted header title parts.
 * [17] Defines the indentation width of the header.
 * [18] Resolves the `z-index problem of the tooltip.
 * [19] Since `[role=button]` does not inherit any button styles we need to
 *      manually set them here.
 * [20] To prevent cut-off, overflowing stylistic features (e.g. box shadow),
 *      a large enough padding (`$accordion-overflow-offset`) is added and
 *      compensated with negative margins. Additionally the panel content is
 *      being hidden via `opacity` when the panel is closed.
 * [21] Disable extra padding from [20] for Accordion with panel
 *      background color to avoid visible background outside of the accordion.
 * [22] Prevent layout issues with absolute positioned elements inside the panel.
 */
.c-accordion {
  position: relative;
  border-top: 1px solid #e4e4e4; /* [1] */
  border-bottom: 1px solid #e4e4e4; /* [1] */
  background-color: #ffffff;
}
.c-accordion + .c-accordion {
  border-top: none; /* [10] */
}

.c-accordion__header {
  padding-top: 24px;
  padding-right: 40px;
  padding-bottom: 24px;
  padding-left: 0;
  position: relative;
  width: 100%;
  margin: 0;
  cursor: pointer;
}
* + .c-accordion__header {
  border-top: 1px solid #e4e4e4; /* [6] */
}
.c-accordion__header > *:last-child {
  margin-bottom: 0;
}

.c-accordion__title {
  font-size: 1rem;
  line-height: 24px;
  margin-bottom: 0;
}

.c-accordion__title-label {
  padding: 0;
  border: 0;
  background-color: transparent;
  /* [2] */
  display: inline-flex; /* [19] */
  max-width: 50em; /* [3] */
  font-family: "skoda-next", Arial, sans-serif; /* [19] */
  font-weight: 700;
  letter-spacing: normal; /* [19] */
  line-height: 1.15; /* [19] */
  text-align: left;
  color: #161718;
  cursor: pointer;
}
.c-accordion__title-label:focus {
  outline: 0;
}

.c-accordion__title-info-icon {
  margin-right: auto; /* [15] */
}

.c-accordion__title-icon {
  top: 24px;
  right: 8px;
  left: auto;
  position: absolute;
  width: 24px;
  height: 24px;
}
@media (min-width: 961px) {
  .c-accordion__title-icon {
    top: 24px;
  }
}
.c-accordion__title-icon::before {
  /* stylelint-disable order/order */
  --transition-property: transform;
  --transition-duration: var(--transition-duration-reduced-motion, 333.3333333333ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  font-size: 1.5rem;
  line-height: 1;
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  content: "\f1c1";
  transform: none;
  color: #161718;
}
.c-accordion__header.is-active .c-accordion__title-icon::before {
  content: "\f1b1";
  transform: none;
}

.c-accordion__subtitle {
  margin-top: 8px;
}

.c-accordion__panel {
  --accordion-overflow-offset: 0.5rem; /* [20] */
  --accordion-panel-padding-top: 0px;
  --accordion-panel-padding-right: 24px;
  --accordion-panel-padding-bottom: 24px;
  --accordion-panel-padding-left: 0px;
  /* stylelint-disable order/order */
  --transition-property: grid-template-rows;
  --transition-duration: var(--transition-duration-reduced-motion, 500ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  /* [8] */
  display: grid; /* [8] */
  grid-template-rows: 0fr; /* [8] */
}
.c-accordion__panel[aria-hidden=false] {
  grid-template-rows: 1fr; /* [8] */
}
.c-accordion--bg-panel .c-accordion__panel {
  --accordion-overflow-offset: 0px; /* [21] */ /* stylelint-disable-line length-zero-no-unit */
  --accordion-panel-padding-top: 24px;
  --accordion-panel-padding-right: 16px;
  --accordion-panel-padding-bottom: 24px;
  --accordion-panel-padding-left: 16px;
  background-color: #f1f1f1;
  background-image: linear-gradient(to bottom, , transparent);
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=alternative] .c-accordion--bg-panel .c-accordion__panel {
  background-color: #ffffff;
}

.c-accordion__content {
  position: relative; /* [22] */
  overflow: hidden; /* [9] */
  margin-right: calc(var(--accordion-overflow-offset) * -1); /* [20] */
  margin-bottom: calc(var(--accordion-overflow-offset) * -1); /* [20] */
  margin-left: calc(var(--accordion-overflow-offset) * -1); /* [20] */
  padding-right: calc(var(--accordion-panel-padding-right, 0px) + var(--accordion-overflow-offset)); /* [20] */
  padding-left: calc(var(--accordion-panel-padding-left, 0px) + var(--accordion-overflow-offset)); /* [20] */
  opacity: 0; /* [20] */
  transition: opacity 0s; /* [20] */
  transition-delay: var(--transition-duration); /* [20] */
}
[aria-hidden=false] .c-accordion__content {
  opacity: 1; /* [20] */
  transition: none; /* [20] */
}
[aria-hidden=false].is-expanded .c-accordion__content {
  overflow: visible; /* [9] */
}
.c-accordion__content::before, .c-accordion__content::after { /* [11] */
  content: "";
  display: block;
  height: calc(var(--accordion-panel-padding-top) + var(--accordion-overflow-offset)); /* [20] */
}
.c-accordion__content::after { /* [11] */
  height: calc(var(--accordion-panel-padding-bottom) + var(--accordion-overflow-offset)); /* [20] */
}
.c-accordion__content > *:last-child {
  margin-bottom: 0;
}

.c-accordion--header-split .c-accordion__header {
  padding-right: 48px;
  padding-left: 0;
}
.c-accordion--header-split .c-accordion__title-label {
  display: inline-flex; /* [12] */
  flex-direction: row; /* [12] */
  justify-content: space-between; /* [12] */
  align-items: flex-start; /* [12] */
  width: 100%; /* [12] */
  max-width: none; /* [12] */
}
@media (max-width: 720px) {
  .c-accordion--header-split .c-accordion__title-label {
    flex-direction: column; /* [13] */
  }
}
.c-accordion--header-split .c-accordion__title-label-text + .c-accordion__title-label-text {
  margin-left: 24px; /* [16] */
}
@media (max-width: 720px) {
  .c-accordion--header-split .c-accordion__title-label-text + .c-accordion__title-label-text {
    margin-top: 8px; /* [14] */
    margin-left: 0; /* [16] */
  }
}

/**
 * [1] Emulate interactive icon states. Mixin can not be used as the trigger
 *     is not the button itself.
 */
.c-accordion__title-icon {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  scale: 1;
}
.c-accordion__title-icon::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  transition: inherit;
}
.c-accordion__header:hover .c-accordion__title-icon::after {
  background-color: rgba(22, 23, 24, 0.06);
}

.c-accordion__header:focus-within .c-accordion__title-icon::after {
  --focus-outline-color: #161718;
  --focus-outline-offset: 0;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

.c-accordion__header:active .c-accordion__title-icon {
  scale: 0.95;
}

.c-accordion__header:hover .c-accordion__title-label-text {
  /* stylelint-disable order/order */
  --transition-property: color;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  color: #464748;
}

.c-accordion__content::before {
  content: none;
}

/* ------------------------------------*\
    #BREADCRUMB
\*------------------------------------ */
/**
 * [1] Reset default list styles.
 * [2] Easier management of alignment.
 * [3] Let the breadcrumb items wrap into multiline when they don't fit on
 *     screen anymore.
 * [4] Align the items center on the y-axis to each other.
 * [5] Vertically center the item text with the icon.
 * [6] Set spacing between delimiter and following items text.
 * [7] Set spacing between text and delimiter of the same breadcrumb item.
 * [8] If the delimiter is a custom text.
 * [9] If the delimiter is an icon of the icon set.
 */
.c-breadcrumb {
  padding-top: 0;
  padding-left: 0;
  padding-right: 0;
  padding-bottom: 0;
  display: flex; /* [2] */
  flex-wrap: wrap; /* [3] */
  align-items: center; /* [4] */
  margin: 0; /* [1] */
  font-weight: 400;
  line-height: 2;
  list-style: none; /* [1] */
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.c-breadcrumb__item {
  display: flex; /* [5] */
  align-items: center; /* [5] */
  margin-bottom: 0; /* [1] */
}
.c-breadcrumb__item:not(:last-child) {
  margin-right: 8px; /* [6] */
}
.c-breadcrumb__item:not(:last-child)::after {
  margin-left: 8px; /* [7] */
  color: #7c7d7e;
  /* [8] */
  content: "/";
}

.c-breadcrumb__link {
  font-size: 1rem;
  text-decoration: none;
  color: #7c7d7e;
}
.c-breadcrumb__link:hover {
  color: #161718;
}
.c-breadcrumb__link.is-current {
  color: #161718;
}
.c-breadcrumb__link.is-disabled {
  pointer-events: none;
}

/* ------------------------------------*\
    #FOOTNOTES
\*------------------------------------ */
/**
 * [1] Define * as default content.
 * [2] Show index instead of character.
 * [3] Show data-bullet instead of default character, if attribute
 *     data-footnote-bullet is given.
 * [4] Overwrite default `<li>` margin.
 */
.c-footnotes {
  font-size: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
  padding-left: 16px;
  counter-reset: footnotes-raised-counter;
  color: #161718;
}
.c-footnotes li {
  display: block;
  margin-bottom: 0;
}

.c-footnotes__item,
.c-footnotes li {
  position: relative;
  margin-bottom: 0; /* [4] */
}
.c-footnotes__item::before,
.c-footnotes li::before { /* [1] */
  content: "*";
  position: absolute;
  left: -16px;
  font-size: 0.8em;
}

ol.c-footnotes,
.c-footnotes--numbered { /* [2] */ }
ol.c-footnotes .c-footnotes__item::before,
ol.c-footnotes > li::before,
.c-footnotes--numbered .c-footnotes__item::before,
.c-footnotes--numbered > li::before {
  content: counter(footnotes-raised-counter);
  font-size: 0.8em;
  counter-increment: footnotes-raised-counter;
}

ul.c-footnotes { /* [3] */ }
ul.c-footnotes .c-footnotes__item[data-footnote-bullet]::before,
ul.c-footnotes > li[data-footnote-bullet]::before {
  content: attr(data-footnote-bullet);
}

/* ------------------------------------*\
    #TABLES
\*------------------------------------ */
/* stylelint-disable-line length-zero-no-unit */
/* stylelint-disable-line length-zero-no-unit */
/*
 * [1] Use pseudo elements for horizontal table cell borders (`::before` for the
 *     top border and `::after` for the bottom border) to allow visual spacing
 *     between columns without the side effects that you have with
 *     `border-spacing`.
 * [2] Tables are always full-width by default.
 * [3] Set all columns to an equal width for the fixed width table variant.
 * [4] To make sure the styling of first row is correct when not using `<thead>`
 *     element, as well as when `<thead>` is correctly used.
 * [5] Provide a simple responsive table mechanism by just enabling horizontal
 *     scrolling below a specific breakpoint.
 * [6] Let the auto-width table be wide/narrow as it is.
 * [7] Auto tables are not full-width.
 * [8] Ensure that table is centered.
 * [9] Each column can be as wide as their content.
 * [10] Remove default spacing bottom.
 * [11] Make sure to add a bottom spacing if there is some content following
 *      the table.
 * [12] Styles for sortables in the table header.
 * [14] Keep icon and text combination inline in the data control table.
 * [15] Overwrite the border and spacing settings for buttons.
 * [16] Apply the highlight variant style to certain columns.
 * [17] Wrap text and possible inline elements in `<span>` because of parent's
 *      flex setting. Left empty here for documentation and prospective usage.
 * [18] Table modifier for wide and narrow variants.
 * [19] Collapse cell borders to eliminate visible space between cell borders.
 * [20] Set overflow to `visible` to allow sticky positioning in the first
 *      place.
 * [21] Cover the following rows with the cells of the head row.
 *      `z-index` should be larger than the `z-index` of the disabled rows
 *      overlay ([55]).
 * [22] Cover the following columns with the cells of the first column.
 * [23] Cover the following columns with the first `thead` cell if the table has
 *      sticky a head row and a sticky first column.
 * [24] For zebra style tables inherit the background color of the table row.
 * [25] Do not render a left border on any first children in the top-most rows.
 * [26] Enables borders styles for merged cells.
 * [27] Unused, for prospective future usage and avoid BEM errors.
 * [28] Flex helper to align multiple content inside a cell.
 * [29] Provide the required minimum height for each cell.
 * [30] Cell icon colors differ across brands in color and need scoping in
 *      `thead` and `tbody`.
 * [31] Increase specificity because of high `.c-button` specificity.
 * [32] Ascending and descending sort icons.
 * [33] Increase specificity and exclude `.c-info-icon` and `.c-badge__icon`
 *      from table icon styling.
 * [34] Avoid borders being cutoff if table gets scrollable.
 * [35] Disable all pointer-events to prevent hover-styles for table cell and
 *      row elements only.
 * [36] Re-enable all pointer-events for all table elements that are not
 *      affected via [35].
 * [37] Responsive variant: Increase specificity to be able to override
 *      `min-width` that is being used for the more simple responsive overscroll
 *      effect.
 * [38] Responsive variant: reset `min-width`.
 * [39] Responsive variant: Set all table elements to `display: block`. Note
 *      that the roles of the individual elements must be restored with
 *      aria-roles attributes for accessibility reasons.
 * [40] Responsive variant: Hide `thead` in an accessible way so that users can
 *      still access all content in it with assistive technologies.
 * [41] Responsive variant: Reset some `th`/`td` styles.
 * [42] Responsive variant: Hide bottom border of the last cell in a `tr`.
 * [43] Responsive variant: `[data-columnheader]` is used to repeat the column
 *      header before each cell as pseudo element.
 * [44] Responsive variant: Display the value of `[data-columnheader]` before
 *      each cell as a pseudo element.
 * [45] Responsive variant: Set position to `static` to reset absolute
 *      positioning that is needed for horizontal borders in larger viewports.
 *      See [1].
 * [46] Responsive variant: Enable hyphenation for column headers before each
 *      cell, as there often is not enough width for longer words, especially
 *      in small viewports.
 * [47] Responsive variant: If a background color is set for the responsive
 *      column header, the header should be displayed over the entire row height.
 * [48] Responsive variant: Use CSS grid in modern browsers to layout the
 *      column header and cells side by side.
 * [49] Responsive variant: Disable background color change on hover.
 * [50] Responsive variant: To make sure that really only the first `th` in a
 *      row is used as row header, we use the `:first-child` pseudo class.
 * [51] Responsive variant: Add spacing and border between `tr`s.
 * [52] Inherit `color` so that the color of the root element is not used in
 *      scoped Bronson styles.
 * [53] Optional height for table head.
 * [54] Optionally all styles for pseudo element can be reset via `all: unset`.
 * [55] Add overlay via pseudo element for disabled rows and cells.
 * [56] Make sure the overlay aligns with table borders and column spacings.
 * [57] Add background color with opacity via pseudo element for disabled
 *      rows and cells.
 * [58] Spacing when overlay is used for `is-disabled` or `[aria-disabled]=true`
 *      and `$table-column-spacing` is set.
 * [59] Position the sticky head row or first column to `-1px` (top/left) to
 *      recognize its sticky state via Intersection Observer.
 * [60] Gradients to make a sticky head row or first column stand out.
 * [61] `.has-sticky-head` is set via JS when the head row is sticky.
 * [62] `.has-sticky-column` is set via JS when the first column is sticky.
 * [63] By using CSS custom properties for some properties, we can set and use
 *      these properties more easily in certain contexts.
 *      For example, in sticky row and column states.
 * [64] Fade the shadow in and out smoothly via opacity transition.
 * [65] For brands that have `$table-thead-border-top-width` we can’t set a
 *      shadow for a sticky column in `thead` because `::before` is already
 *      used for the top border.
 */
.c-table-wrapper .c-icon.c-icon.c-icon:not(.c-info-icon):not(.c-badge__icon) { /* [33] */ /* stylelint-disable-line selector-max-class, selector-max-specificity */
  font-size: 1.5rem;
  line-height: 1;
}
.c-table-wrapper:not(:last-child) {
  margin-bottom: 24px; /* [11] */
}
@media (max-width: 960px) {
  .c-table-wrapper:not(.c-table-wrapper--no-scroll):not([class*=c-table--sticky]) {
    overflow-x: auto; /* [5] */
  }
  .c-table-wrapper:not(.c-table-wrapper--no-scroll):not([class*=c-table--sticky]) table {
    margin-left: 0px; /* [34] */
  }
}
.c-table-wrapper.c-table-wrapper--auto {
  width: auto; /* [6] */
}
.c-table-wrapper th,
.c-table-wrapper td {
  position: relative; /* [1] */
  padding: 16px 16px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.2;
  text-align: left;
  /* [1] */
}
.c-table-wrapper th::before, .c-table-wrapper th::after,
.c-table-wrapper td::before,
.c-table-wrapper td::after {
  content: "";
  position: absolute;
  right: 0;
  left: 0;
}
.c-table-wrapper th::before,
.c-table-wrapper td::before {
  top: 0;
}
.c-table-wrapper th::after,
.c-table-wrapper td::after {
  bottom: 0;
}
.c-table-wrapper th {
  /* [53] */
  vertical-align: middle;
  color: var(--table-cell-color, #161718);
}
.c-table-wrapper th .c-icon:not(.c-info-icon)::before {
  color: #161718; /* [30] */
}
.c-table-wrapper td {
  height: 32px; /* [29] */
  vertical-align: middle;
  color: var(--table-cell-color, #161718);
}
.c-table-wrapper td .c-icon:not(.c-info-icon)::before {
  /* [30] */
}
.c-table-wrapper table {
  width: 100%; /* [2] */
  margin-bottom: 0; /* [10] */
  border-collapse: collapse; /* [19] */
  color: inherit; /* [52] */
  /* stylelint-disable selector-max-compound-selectors, selector-max-combinators, selector-max-type */
  /* stylelint-enable */
  /* stylelint-disable selector-max-compound-selectors, selector-max-combinators, selector-max-type */
  /* stylelint-enable */
  /* stylelint-disable selector-max-compound-selectors, selector-max-combinators, selector-max-type */
  /* stylelint-enable */
}
@media (max-width: 960px) {
  .c-table-wrapper:not(.c-table-wrapper--no-scroll) table {
    min-width: 720px; /* [5] */
  }
}

.c-table-wrapper--auto table {
  width: auto; /* [7] */
  margin-right: auto; /* [8] */
  margin-left: auto; /* [8] */
  table-layout: auto; /* [9] */
}
@media (max-width: 960px) {
  .c-table-wrapper--auto table {
    margin-left: 0;
  }
}

.c-table-wrapper table caption {
  position: absolute !important; /* stylelint-disable-line itcss/no-at-important */
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
}
.c-table-wrapper table :not(thead) + tbody tr:first-child,
.c-table-wrapper table thead { /* [4] */
  background-color: #ffffff;
}
.c-table-wrapper table :not(thead) + tbody tr:first-child th,
.c-table-wrapper table :not(thead) + tbody tr:first-child td,
.c-table-wrapper table thead th,
.c-table-wrapper table thead td {
  vertical-align: middle;
  color: #161718;
}
.c-table-wrapper table :not(thead) + tbody tr:first-child th,
.c-table-wrapper table thead th {
  font-weight: 700;
}
.c-table-wrapper table tbody {
  /* stylelint-disable-next-line order/order */
  /* stylelint-disable max-nesting-depth */
  /* stylelint-enable max-nesting-depth */
  /* stylelint-disable max-nesting-depth */
  /* stylelint-enable max-nesting-depth */
}
.c-table-wrapper table tbody th,
.c-table-wrapper table tbody td {
  /* stylelint-disable order/order */
  --transition-property: background-color, color, opacity;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  background-color: var(--table-cell-background-color);
}
.c-table-wrapper table tbody th::after,
.c-table-wrapper table tbody td::after {
  border-bottom: 1px solid #e4e4e4;
}
.c-table-wrapper table tbody tr:hover {
  --table-cell-background-color: #f1f1f1; /* [63] */
}
.c-table-wrapper table tbody tr.is-selected {
  --table-cell-background-color: #ffffff; /* [63] */
}
.c-table-wrapper table tbody tr.is-selected th::after,
.c-table-wrapper table tbody tr.is-selected td::after {
  border-color: #e4e4e4;
}
.c-table-wrapper table tbody tr.is-selected:hover {
  --table-cell-background-color: #f1f1f1; /* [63] */
}
.c-table-wrapper table tbody tr.is-success th::after,
.c-table-wrapper table tbody tr.is-success td::after {
  border-width: 1px;
  border-color: #37d002;
}
.c-table-wrapper table tbody tr.is-error {
  --table-cell-color: #d92b35; /* [63] */
}
.c-table-wrapper table tbody tr.is-error th::after,
.c-table-wrapper table tbody tr.is-error td::after {
  border-width: 1px;
  border-color: #d92b35;
}
.c-table-wrapper table tbody tr.is-disabled th::after,
.c-table-wrapper table tbody tr.is-disabled td::after, .c-table-wrapper table tbody [aria-disabled=true] th::after,
.c-table-wrapper table tbody [aria-disabled=true] td::after {
  border-width: 1px;
  border-color: #e4e4e4;
}
.c-table-wrapper table tbody tr.is-disabled.is-selected th::after,
.c-table-wrapper table tbody tr.is-disabled.is-selected td::after, .c-table-wrapper table tbody [aria-disabled=true].is-selected th::after,
.c-table-wrapper table tbody [aria-disabled=true].is-selected td::after {
  border-width: 1px;
  border-color: #e4e4e4;
}
.c-table-wrapper table tbody tr th.is-success,
.c-table-wrapper table tbody tr td.is-success {
  color: #37d002;
}
.c-table-wrapper table tbody tr th.is-success::after,
.c-table-wrapper table tbody tr td.is-success::after {
  border-width: 1px;
  border-color: #e4e4e4;
}
.c-table-wrapper table tbody tr th.is-error,
.c-table-wrapper table tbody tr td.is-error {
  color: #d92b35;
}
.c-table-wrapper table tbody tr th.is-error::after,
.c-table-wrapper table tbody tr td.is-error::after {
  border-width: 1px;
  border-color: #d92b35;
}
.c-table-wrapper table tbody tr th.is-disabled::after, .c-table-wrapper table tbody tr [aria-disabled=true]::after,
.c-table-wrapper table tbody tr td.is-disabled::after, .c-table-wrapper table tbody tr [aria-disabled=true]::after {
  border-width: 1px;
  border-color: #e4e4e4;
}
.c-table-wrapper table tbody tr:hover th.is-success,
.c-table-wrapper table tbody tr:hover td.is-success {
  color: #37d002;
}
.c-table-wrapper table tbody tr.is-selected th.is-disabled::after, .c-table-wrapper table tbody tr.is-selected [aria-disabled=true]::after,
.c-table-wrapper table tbody tr.is-selected td.is-disabled::after, .c-table-wrapper table tbody tr.is-selected [aria-disabled=true]::after {
  border-color: #e4e4e4;
}
.c-table-wrapper table tbody tr,
.c-table-wrapper table tbody th,
.c-table-wrapper table tbody td {
  /* stylelint-disable-next-line max-nesting-depth */
}
.c-table-wrapper table tbody tr.is-disabled, .c-table-wrapper table tbody tr[aria-disabled=true],
.c-table-wrapper table tbody th.is-disabled,
.c-table-wrapper table tbody th[aria-disabled=true],
.c-table-wrapper table tbody td.is-disabled,
.c-table-wrapper table tbody td[aria-disabled=true] {
  pointer-events: none;
}
.c-table-wrapper table tbody th {
  font-weight: 700;
}
.c-table-wrapper table tbody > tr:first-child {
  border-left: none; /* [25] */
}
.c-table-wrapper table tfoot th {
  font-weight: 700;
}
.c-table-wrapper tr:where([aria-disabled=true], .is-disabled),
.c-table-wrapper td:where([aria-disabled=true], .is-disabled) {
  position: relative;
}
.c-table-wrapper tr:where([aria-disabled=true], .is-disabled)::after,
.c-table-wrapper td:where([aria-disabled=true], .is-disabled)::after {
  all: unset; /* [54] */
  content: ""; /* [55] */
  position: absolute; /* [55] */
  z-index: 10; /* [55] */
  top: 0; /* [56] */
  bottom: 0; /* [56] */
  left: 0; /* [56] */
  right: 0; /* [56] */
  background-color: #ffffff; /* [57] */
  opacity: 0.6; /* [57] */
  pointer-events: none;
}

.c-table--narrow { /* [18] */ }
.c-table--narrow th,
.c-table--narrow td {
  padding: 8px 16px;
  font-size: 14px;
}

.c-table--wide { /* [18] */ }
.c-table--wide th,
.c-table--wide td {
  padding: 24px 16px;
  font-size: 16px;
}

.c-table__layout--fixed,
.c-table--layout-fixed { /* [3] */ }
.c-table__layout--fixed table,
.c-table--layout-fixed table {
  table-layout: fixed;
}

.c-table__btn { /* [15] */ }
.c-table__btn, .c-table__btn:hover, .c-table__btn:focus, .c-table__btn:active {
  margin: 0;
  padding: 0;
  border: 0 !important;
  box-shadow: none;
}

/* stylelint-disable selector-max-class, selector-max-specificity */
.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort { /* [31] */
  --button-flex-direction: row-reverse;
}
.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort, .c-table__btn-sort.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort:hover, .c-table__btn-sort.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort:focus, .c-table__btn-sort.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort:active {
  justify-content: flex-end;
  min-height: 0;
  border: none;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  text-transform: inherit;
  background: none; /* 35 */
  color: inherit;
}
.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort .c-btn__icon, .c-table__btn-sort.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort:hover .c-btn__icon, .c-table__btn-sort.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort:focus .c-btn__icon, .c-table__btn-sort.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort:active .c-btn__icon {
  font-size: 1.5rem;
  line-height: 1;
}
.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort .c-btn__icon::before, .c-table__btn-sort.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort:hover .c-btn__icon::before, .c-table__btn-sort.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort:focus .c-btn__icon::before, .c-table__btn-sort.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort:active .c-btn__icon::before {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  vertical-align: bottom;
  color: #161718;
}
.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort, .c-table__btn-sort.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort[data-sort-order=asc] { /* [32] */ }
.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort .c-btn__icon::before, .c-table__btn-sort.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort[data-sort-order=asc] .c-btn__icon::before {
  content: "\f1f5";
}
.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort[data-sort-order=desc] { /* [32] */ }
.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort.c-table__btn-sort[data-sort-order=desc] .c-btn__icon::before {
  content: "\f1f4";
}

/* stylelint-enable */
.c-table__sortable-header-text { /* [17] */ }

.c-table__cell { /* [27] */ }

.c-table__cell__icon {
  font-size: 1.5rem;
  line-height: 1;
  margin-right: 8px;
}

.c-table__cell-align { /* [28] */
  display: flex;
  flex-direction: row;
  align-items: center;
}

/**
 * Each table variant has its own min-height.
*/
.c-table--narrow td {
  height: 24px; /* [29] */
}

.c-table--wide td {
  height: 48px; /* [29] */
}

.c-table--no-hover td,
.c-table--no-hover td td,
.c-table--no-hover td th,
.c-table--no-hover td tr,
.c-table--no-hover th,
.c-table--no-hover th td,
.c-table--no-hover th th,
.c-table--no-hover th tr,
.c-table--no-hover tr,
.c-table--no-hover tr td,
.c-table--no-hover tr th,
.c-table--no-hover tr tr {
  pointer-events: none !important; /* [35] */
}
.c-table--no-hover td > *:not(td):not(th):not(tr),
.c-table--no-hover th > *:not(td):not(th):not(tr),
.c-table--no-hover tr > *:not(td):not(th):not(tr) {
  pointer-events: all !important; /* [36] */
}

/**
 * Individual table cells can be highlighted via the
 * `.c-table--highlight` class.
*/
.c-table--highlight tr > :nth-child(n+3):not(th) { /* [16] */
  background-color: #e8fff1;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=alternative] .c-table--highlight tr > :nth-child(n+3):not(th) {
  background-color: #ffffff;
}

.c-table--highlight tr > :nth-child(n+3):not(th):not(:last-child) {
  border-right: 8px solid #ffffff;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=alternative] .c-table--highlight tr > :nth-child(n+3):not(th):not(:last-child) {
  border-right: 16px solid #d8d8d8;
}

/**
 * Table with color scheme
 */
.c-table--colored tbody tr:nth-of-type(odd) {
  --table-cell-background-color: #ffffff;
  background-color: #ffffff;
}
.c-table--colored tbody tr:nth-of-type(even) {
  --table-cell-background-color: #e4e4e4;
  background-color: #e4e4e4;
}

/**
 * Table with border scheme and joined cells and rows
 */
.c-table--bordered {
  border-spacing: 16px 0;
}
.c-table--bordered td {
  padding-top: 16px;
  padding-right: 16px;
  padding-bottom: 16px;
  padding-left: 16px;
}
.c-table--bordered td + td,
.c-table--bordered th + td {
  border-left: 1px solid #e4e4e4;
}

/**
* Table with sticky head row
*/
.c-table--sticky-head {
  overflow: visible; /* [20] */
}
.c-table--sticky-head thead {
  position: relative;
  z-index: 20; /* [21] */
}
.c-table--sticky-head thead tr > * { /* stylelint-disable-line selector-max-combinators, selector-max-compound-selectors */
  position: sticky;
  top: calc(var(--bron-sticky-offset, 0px) - 1px); /* [59] */
  background-color: #ffffff; /* [21] */
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=alternative] .c-table--sticky-head thead tr > * {
  background-color: #ffffff;
}

.c-table--sticky-head thead tr::after { /* [60] */
  /* stylelint-disable order/order */
  --transition-property: opacity;
  --transition-duration: var(--transition-duration-reduced-motion, 500ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  /* [64] */
  content: "";
  position: absolute;
  top: calc(100% + 0px);
  right: 0;
  left: 0;
  height: 20px;
  opacity: 0; /* [64] */
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));
}
.c-table--sticky-head.has-sticky-head { /* [61] */ }
.c-table--sticky-head.has-sticky-head thead tr {
  position: sticky;
  z-index: 100;
  top: calc(var(--bron-sticky-offset, 0px) - 1px); /* stylelint-disable-line scale-unlimited/declaration-strict-value */
}
.c-table--sticky-head.has-sticky-head thead tr::after {
  opacity: 1; /* [64] */
}

/**
* Table with sticky first column
*/
.c-table--sticky-column {
  overflow: visible; /* [20] */
}
.c-table--sticky-column tr > :first-child {
  position: sticky;
  z-index: 1; /* [22] */
  left: -1px; /* [59] */ /* stylelint-disable-line scale-unlimited/declaration-strict-value */
}
.c-table--sticky-column thead tr > :first-child { /* stylelint-disable-line selector-max-combinators, selector-max-compound-selectors */
  z-index: 2; /* [23] */
}
.c-table--sticky-column.c-table--colored:not(.has-sticky-column) tbody {
  /* stylelint-disable selector-max-specificity */
  /* stylelint-enable selector-max-specificity */
}
.c-table--sticky-column.c-table--colored:not(.has-sticky-column) tbody th:first-child,
.c-table--sticky-column.c-table--colored:not(.has-sticky-column) tbody td:first-child {
  background-color: inherit; /* [24] */
}

/**
* Responsive table
*/
@media (max-width: 720px) {
  .c-table--responsive {
    /* Column Header */
    /* Row Header */
  }
  .c-table--responsive.c-table--responsive > table { /* [37] */
    min-width: 0; /* [38] */
  }
  .c-table--responsive.c-table--responsive > table tr:hover {
    /* stylelint-disable-next-line selector-max-combinators, selector-max-compound-selectors, selector-max-type */
  }
  .c-table--responsive.c-table--responsive > table tr:hover th,
  .c-table--responsive.c-table--responsive > table tr:hover td {
    background-color: initial; /* [49] */
  }
  .c-table--responsive table,
  .c-table--responsive thead,
  .c-table--responsive tbody,
  .c-table--responsive tfoot,
  .c-table--responsive tr,
  .c-table--responsive th,
  .c-table--responsive td {
    display: block; /* [39] */
  }
  .c-table--responsive thead {
    position: absolute !important; /* stylelint-disable-line itcss/no-at-important */
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    /* [40] */
  }
  .c-table--responsive th,
  .c-table--responsive td {
    height: auto; /* [41] */
    padding-right: 0; /* [41] */
    padding-left: 0; /* [41] */
  }
  .c-table--responsive [data-columnheader] { /* [43] */
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 16px;
  }
  .c-table--responsive [data-columnheader]::before {
    content: attr(data-columnheader); /* [44] */
    position: static; /* [45] */
    font-weight: 700;
    vertical-align: top;
    -webkit-hyphens: auto;
    hyphens: auto; /* [46] */
    background-color: #ffffff;
    color: #161718;
    margin-top: -16px; /* [47] */
    margin-bottom: -16px; /* [47] */
    padding: 16px 16px; /* [47] */
  }
  .c-table--responsive th:first-child { /* [50] */
    padding-bottom: 16px;
    font-weight: 700;
    color: #161718;
  }
  .c-table--responsive tr + tr {
    margin-top: 24px; /* [51] */
    padding-top: 24px; /* [51] */
    /* [51] */
  }
}

/* stylelint-disable selector-max-type, selector-max-compound-selectors, selector-max-combinators, max-nesting-depth */
/* stylelint-disable no-duplicate-selectors */
/**
 * [1] Ensure visibility, also when header is sticky.
 * [2] Draw line between header/footer and body. This can be done only for the
 *     header/footer as the cells need to be able to have
 *     colorized borders based on state.
 * [3] Vertical borders for header cells that are not full height.
 * [4] Draw "corners" / "edges" on each side.
 * [5] Border on left and right side.
 * [6] Ensure colorized cells have rounded corners that are at the end
 *     to inherit the outer border.
 * [7] Ensure all pseudo element styles are unset to set custom styles
 *     without manual (re)sets.
 * [8] Overwrite default, fix straight line and border-radius.
 * [9] Overwrite defaults (bronson-default).
 * [10] Specificity 💩 – Don’t ask!
 * [11] Sticky column shadow.
 * [12] Recreate bottom border for the sticky column cell in the last row.
 */
.c-table-wrapper:not(.c-table--responsive) {
  /* [4] */
  /* [4] */
  /* [4] */
  /* [5] */
}
.c-table-wrapper:not(.c-table--responsive) thead th::after,
.c-table-wrapper:not(.c-table--responsive) thead td::after,
.c-table-wrapper:not(.c-table--responsive) tfoot th::after,
.c-table-wrapper:not(.c-table--responsive) tfoot td::after {
  all: unset; /* [7] */
}
.c-table-wrapper:not(.c-table--responsive) thead th:not(:first-child, :last-child)::after,
.c-table-wrapper:not(.c-table--responsive) thead td:not(:first-child, :last-child)::after,
.c-table-wrapper:not(.c-table--responsive) tfoot th:not(:first-child, :last-child)::after,
.c-table-wrapper:not(.c-table--responsive) tfoot td:not(:first-child, :last-child)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
  background-color: #e4e4e4;
}
.c-table-wrapper:not(.c-table--responsive) thead tr {
  border-bottom: 1px solid #e4e4e4; /* [2] */
}
.c-table-wrapper:not(.c-table--responsive) thead th {
  /* [3] */
}
.c-table-wrapper:not(.c-table--responsive) thead th::before {
  top: 16px;
  bottom: 16px;
  width: 1px;
  background-color: #e4e4e4;
}
.c-table-wrapper:not(.c-table--responsive) thead th:not(:first-child, :last-child)::after,
.c-table-wrapper:not(.c-table--responsive) thead td:not(:first-child, :last-child)::after {
  top: 0; /* [3] */
}
.c-table-wrapper:not(.c-table--responsive) thead th:first-child::after, .c-table-wrapper:not(.c-table--responsive) thead th:last-child::after,
.c-table-wrapper:not(.c-table--responsive) thead td:first-child::after,
.c-table-wrapper:not(.c-table--responsive) thead td:last-child::after,
.c-table-wrapper:not(.c-table--responsive) tfoot th:first-child::after,
.c-table-wrapper:not(.c-table--responsive) tfoot th:last-child::after,
.c-table-wrapper:not(.c-table--responsive) tfoot td:first-child::after,
.c-table-wrapper:not(.c-table--responsive) tfoot td:last-child::after {
  all: unset; /* [7] */
  content: "";
  position: absolute;
  z-index: 10;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
}
.c-table-wrapper:not(.c-table--responsive) thead th:first-child::after,
.c-table-wrapper:not(.c-table--responsive) thead td:first-child::after,
.c-table-wrapper:not(.c-table--responsive) tfoot th:first-child::after,
.c-table-wrapper:not(.c-table--responsive) tfoot td:first-child::after {
  border-left: 1px solid #e4e4e4;
}
.c-table-wrapper:not(.c-table--responsive) thead th:last-child::after,
.c-table-wrapper:not(.c-table--responsive) thead td:last-child::after,
.c-table-wrapper:not(.c-table--responsive) tfoot th:last-child::after,
.c-table-wrapper:not(.c-table--responsive) tfoot td:last-child::after {
  border-right: 1px solid #e4e4e4;
}
.c-table-wrapper:not(.c-table--responsive) thead th:first-child::after, .c-table-wrapper:not(.c-table--responsive) thead th:last-child::after,
.c-table-wrapper:not(.c-table--responsive) thead td:first-child::after,
.c-table-wrapper:not(.c-table--responsive) thead td:last-child::after {
  border-top: 1px solid #e4e4e4; /* [2] */
}
.c-table-wrapper:not(.c-table--responsive) thead th:first-child::after,
.c-table-wrapper:not(.c-table--responsive) thead td:first-child::after {
  border-top-left-radius: 8px;
}
.c-table-wrapper:not(.c-table--responsive) thead th:last-child::after,
.c-table-wrapper:not(.c-table--responsive) thead td:last-child::after {
  border-top-right-radius: 8px;
}
.c-table-wrapper:not(.c-table--responsive) tfoot th:not(:first-child, :last-child)::after,
.c-table-wrapper:not(.c-table--responsive) tfoot td:not(:first-child, :last-child)::after {
  bottom: 0;
}
.c-table-wrapper:not(.c-table--responsive) tfoot th:first-child::after, .c-table-wrapper:not(.c-table--responsive) tfoot th:last-child::after,
.c-table-wrapper:not(.c-table--responsive) tfoot td:first-child::after,
.c-table-wrapper:not(.c-table--responsive) tfoot td:last-child::after {
  border-bottom: 1px solid #e4e4e4;
}
.c-table-wrapper:not(.c-table--responsive) tfoot th:first-child::after,
.c-table-wrapper:not(.c-table--responsive) tfoot td:first-child::after {
  border-bottom-left-radius: 8px;
}
.c-table-wrapper:not(.c-table--responsive) tfoot th:last-child::after,
.c-table-wrapper:not(.c-table--responsive) tfoot td:last-child::after {
  border-bottom-right-radius: 8px;
}
.c-table-wrapper:not(.c-table--responsive):not(.c-table--data-controls) tbody tr:last-child th:first-child::after, .c-table-wrapper:not(.c-table--responsive):not(.c-table--data-controls) tbody tr:last-child th:last-child::after,
.c-table-wrapper:not(.c-table--responsive):not(.c-table--data-controls) tbody tr:last-child td:first-child::after,
.c-table-wrapper:not(.c-table--responsive):not(.c-table--data-controls) tbody tr:last-child td:last-child::after {
  border: 0; /* [8] */
}
.c-table-wrapper:not(.c-table--responsive):not(.c-table--data-controls) tbody tr:last-child th:first-child::before, .c-table-wrapper:not(.c-table--responsive):not(.c-table--data-controls) tbody tr:last-child th:last-child::before,
.c-table-wrapper:not(.c-table--responsive):not(.c-table--data-controls) tbody tr:last-child td:first-child::before,
.c-table-wrapper:not(.c-table--responsive):not(.c-table--data-controls) tbody tr:last-child td:last-child::before {
  all: unset; /* [7] */
  content: "";
  position: absolute;
  z-index: 10;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-bottom: 1px solid #e4e4e4;
  pointer-events: none;
}
.c-table-wrapper:not(.c-table--responsive):not(.c-table--data-controls) tbody tr:last-child th:first-child::before,
.c-table-wrapper:not(.c-table--responsive):not(.c-table--data-controls) tbody tr:last-child td:first-child::before {
  border-left: 1px solid #e4e4e4;
  border-bottom-left-radius: 8px;
}
.c-table-wrapper:not(.c-table--responsive):not(.c-table--data-controls) tbody tr:last-child th:last-child::before,
.c-table-wrapper:not(.c-table--responsive):not(.c-table--data-controls) tbody tr:last-child td:last-child::before {
  border-right: 1px solid #e4e4e4;
  border-bottom-right-radius: 8px;
}
.c-table-wrapper:not(.c-table--responsive) tbody th:first-child::before, .c-table-wrapper:not(.c-table--responsive) tbody th:last-child::before,
.c-table-wrapper:not(.c-table--responsive) tbody td:first-child::before,
.c-table-wrapper:not(.c-table--responsive) tbody td:last-child::before {
  all: unset; /* [7] */
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background-color: #e4e4e4;
}
.c-table-wrapper:not(.c-table--responsive) tbody th:first-child::before,
.c-table-wrapper:not(.c-table--responsive) tbody td:first-child::before {
  left: 0;
}
.c-table-wrapper:not(.c-table--responsive) tbody th:last-child::before,
.c-table-wrapper:not(.c-table--responsive) tbody td:last-child::before {
  right: 0;
}
.c-table-wrapper:not(.c-table--responsive) tbody tr:last-child > *:first-child {
  border-bottom-left-radius: 8px; /* [6] */
}
.c-table-wrapper:not(.c-table--responsive) tbody tr:last-child > *:last-child {
  border-bottom-right-radius: 8px; /* [6] */
}

.c-table--sticky-column {
  /* stylelint-disable */
  /* stylelint-enable */
}
.c-table--sticky-column.has-sticky-column.has-sticky-column.has-sticky-column.has-sticky-column { /* [10] */ }
.c-table--sticky-column.has-sticky-column.has-sticky-column.has-sticky-column.has-sticky-column tr > :first-child {
  background-color: var(--table-cell-background-color, #ffffff);
  opacity: 1;
}
.c-table--sticky-column.has-sticky-column.has-sticky-column.has-sticky-column.has-sticky-column tr > :first-child::before { /* [11] */
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 100%;
  width: 20px;
  border: none;
  border-radius: 0;
  background-color: transparent;
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));
}
.c-table--sticky-column.has-sticky-column.has-sticky-column.has-sticky-column.has-sticky-column tbody tr:last-child > :first-child::after {
  border-bottom: 1px solid #e4e4e4; /* [12] */
}

.c-table--responsive th:first-child {
  padding-left: 16px;
  padding-right: 16px;
}

@media (min-width: 721px) {
  .c-table--responsive {
    /* [4] */
    /* [4] */
    /* [4] */
    /* [5] */
  }
  .c-table--responsive thead th::after,
  .c-table--responsive thead td::after,
  .c-table--responsive tfoot th::after,
  .c-table--responsive tfoot td::after {
    all: unset; /* [7] */
  }
  .c-table--responsive thead th:not(:first-child, :last-child)::after,
  .c-table--responsive thead td:not(:first-child, :last-child)::after,
  .c-table--responsive tfoot th:not(:first-child, :last-child)::after,
  .c-table--responsive tfoot td:not(:first-child, :last-child)::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    height: 1px;
    background-color: #e4e4e4;
  }
  .c-table--responsive thead tr {
    border-bottom: 1px solid #e4e4e4; /* [2] */
  }
  .c-table--responsive thead th {
    /* [3] */
  }
  .c-table--responsive thead th::before {
    top: 16px;
    bottom: 16px;
    width: 1px;
    background-color: #e4e4e4;
  }
  .c-table--responsive thead th:not(:first-child, :last-child)::after,
  .c-table--responsive thead td:not(:first-child, :last-child)::after {
    top: 0; /* [3] */
  }
  .c-table--responsive thead th:first-child::after, .c-table--responsive thead th:last-child::after,
  .c-table--responsive thead td:first-child::after,
  .c-table--responsive thead td:last-child::after,
  .c-table--responsive tfoot th:first-child::after,
  .c-table--responsive tfoot th:last-child::after,
  .c-table--responsive tfoot td:first-child::after,
  .c-table--responsive tfoot td:last-child::after {
    all: unset; /* [7] */
    content: "";
    position: absolute;
    z-index: 10;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
  }
  .c-table--responsive thead th:first-child::after,
  .c-table--responsive thead td:first-child::after,
  .c-table--responsive tfoot th:first-child::after,
  .c-table--responsive tfoot td:first-child::after {
    border-left: 1px solid #e4e4e4;
  }
  .c-table--responsive thead th:last-child::after,
  .c-table--responsive thead td:last-child::after,
  .c-table--responsive tfoot th:last-child::after,
  .c-table--responsive tfoot td:last-child::after {
    border-right: 1px solid #e4e4e4;
  }
  .c-table--responsive thead th:first-child::after, .c-table--responsive thead th:last-child::after,
  .c-table--responsive thead td:first-child::after,
  .c-table--responsive thead td:last-child::after {
    border-top: 1px solid #e4e4e4; /* [2] */
  }
  .c-table--responsive thead th:first-child::after,
  .c-table--responsive thead td:first-child::after {
    border-top-left-radius: 8px;
  }
  .c-table--responsive thead th:last-child::after,
  .c-table--responsive thead td:last-child::after {
    border-top-right-radius: 8px;
  }
  .c-table--responsive tfoot th:not(:first-child, :last-child)::after,
  .c-table--responsive tfoot td:not(:first-child, :last-child)::after {
    bottom: 0;
  }
  .c-table--responsive tfoot th:first-child::after, .c-table--responsive tfoot th:last-child::after,
  .c-table--responsive tfoot td:first-child::after,
  .c-table--responsive tfoot td:last-child::after {
    border-bottom: 1px solid #e4e4e4;
  }
  .c-table--responsive tfoot th:first-child::after,
  .c-table--responsive tfoot td:first-child::after {
    border-bottom-left-radius: 8px;
  }
  .c-table--responsive tfoot th:last-child::after,
  .c-table--responsive tfoot td:last-child::after {
    border-bottom-right-radius: 8px;
  }
  .c-table--responsive:not(.c-table--data-controls) tbody tr:last-child th:first-child::after, .c-table--responsive:not(.c-table--data-controls) tbody tr:last-child th:last-child::after,
  .c-table--responsive:not(.c-table--data-controls) tbody tr:last-child td:first-child::after,
  .c-table--responsive:not(.c-table--data-controls) tbody tr:last-child td:last-child::after {
    border: 0; /* [8] */
  }
  .c-table--responsive:not(.c-table--data-controls) tbody tr:last-child th:first-child::before, .c-table--responsive:not(.c-table--data-controls) tbody tr:last-child th:last-child::before,
  .c-table--responsive:not(.c-table--data-controls) tbody tr:last-child td:first-child::before,
  .c-table--responsive:not(.c-table--data-controls) tbody tr:last-child td:last-child::before {
    all: unset; /* [7] */
    content: "";
    position: absolute;
    z-index: 10;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border-bottom: 1px solid #e4e4e4;
    pointer-events: none;
  }
  .c-table--responsive:not(.c-table--data-controls) tbody tr:last-child th:first-child::before,
  .c-table--responsive:not(.c-table--data-controls) tbody tr:last-child td:first-child::before {
    border-left: 1px solid #e4e4e4;
    border-bottom-left-radius: 8px;
  }
  .c-table--responsive:not(.c-table--data-controls) tbody tr:last-child th:last-child::before,
  .c-table--responsive:not(.c-table--data-controls) tbody tr:last-child td:last-child::before {
    border-right: 1px solid #e4e4e4;
    border-bottom-right-radius: 8px;
  }
  .c-table--responsive tbody th:first-child::before, .c-table--responsive tbody th:last-child::before,
  .c-table--responsive tbody td:first-child::before,
  .c-table--responsive tbody td:last-child::before {
    all: unset; /* [7] */
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 1px;
    background-color: #e4e4e4;
  }
  .c-table--responsive tbody th:first-child::before,
  .c-table--responsive tbody td:first-child::before {
    left: 0;
  }
  .c-table--responsive tbody th:last-child::before,
  .c-table--responsive tbody td:last-child::before {
    right: 0;
  }
  .c-table--responsive tbody tr:last-child > *:first-child {
    border-bottom-left-radius: 8px; /* [6] */
  }
  .c-table--responsive tbody tr:last-child > *:last-child {
    border-bottom-right-radius: 8px; /* [6] */
  }
}
@media (max-width: 720px) {
  .c-table--responsive tr {
    border: 1px solid #e4e4e4;
    border-radius: 8px;
  }
  .c-table--responsive tr + tr {
    padding-top: 0; /* [9] */
  }
  .c-table--responsive table tbody > tr:first-child {
    border-left: 1px solid #e4e4e4; /* [9] */
  }
  .c-table--responsive [data-columnheader]::after {
    all: unset; /* [7] */
    content: "";
    position: absolute;
    top: 16px;
    bottom: 16px;
    left: calc(50% - 16px);
    width: 1px;
    background-color: #e4e4e4;
  }
  .c-table--responsive [data-columnheader]:last-child::before {
    border-bottom-left-radius: 8px;
  }
  .c-table--responsive [data-columnheader]:not(:last-child) {
    border-bottom: 1px solid #e4e4e4;
  }
}

/* ------------------------------------*\
    #TOGGLE
\*------------------------------------ */
/* stylelint-disable selector-max-specificity */
/**
 * [1] Hide native checkbox.
 * [2] Give space for the (absolute positioned) toggle.
 * [3] Vertical alignment for toggle and text.
 * [4] Correct alignment.
 * [5] Relative labels to help position the pseudo elements.
 *	   The z-index will be handy later, when the labels that overlap the visual
 *     toggle UI need to be adjusted
 *	   to allow for a user to toggle the toggle without having to move their
 *     mouse/finger to the different sides of the UI.
 * [6] The large padding is used to position the labels on top of the visual UI,
 *     so the toggle UI itself can be mouse clicked or finger tapped to toggle
 *     the current option.
 * [7] Move the 2nd label to have a lower z-index, so when that option is
 *     toggled, the first label will overlay on top of the toggle ui, and the
 *     toggle can be pressed again to toggle back to the previous state.
 * [8] Prevent text selection on fast double clicks.
 */
.c-toggle {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

.c-toggle__input {
  position: absolute !important; /* stylelint-disable-line itcss/no-at-important */
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  /* [1] */
}
.c-toggle__input:checked + .c-toggle__text:last-child {
  /**
   * :checked state.
   */
}
.c-toggle__input:checked + .c-toggle__text:last-child::before {
  background-color: #347954;
}
.c-toggle__input:checked + .c-toggle__text:last-child::after {
  transform: translateX(28px);
  background-color: #ffffff;
}
.c-toggle--on-off .c-toggle__input:checked + .c-toggle__text:last-child {
  /**
   * :checked state.
   */
}
.c-toggle--on-off .c-toggle__input:checked + .c-toggle__text:last-child::after {
  background-color: #ffffff;
}

.c-toggle__text {
  font-size: 0.875rem;
  position: relative;
  display: inline-block; /* [2] */
  font-weight: 400;
  line-height: 24px; /* [3] */
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none; /* [8] */
}
.c-toggle__text:first-child {
  margin-right: 8px;
}
.c-toggle__text:last-child {
  padding-left: 60px; /* [2] */
  /**
   * The toggle bar.
   */
  /**
   * The toggle handle.
   */
}
.c-toggle__text:last-child::before, .c-toggle__text:last-child::after {
  content: "";
  position: absolute;
  display: block;
}
.c-toggle__text:last-child::before {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 100ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  top: 0;
  left: 0;
  width: 52px;
  height: 24px;
  border-radius: 12px;
  background-color: #7c7d7e;
  transition: 100ms;
}
.c-toggle__text:last-child::after {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  top: 3px; /* [4] */
  left: 3px; /* [4] */
  width: 18px;
  height: 18px;
  border-radius: 100px;
  background-color: #ffffff;
}

/* stylelint-enable */
.c-toggle__input:focus-visible ~ ::before {
  --focus-outline-color: #161718;
  --focus-outline-offset: 2px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

/* ------------------------------------*\
    #PROGRESS
\*------------------------------------ */
/**
 * [1] Reset browser-default styles.
 * [2] Set track background. Mainly used for Firefox as Firefox does not support
 *     pseudo element for track.
 */
.c-progress {
  --progress-track-background: #c4c6c7;
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  display: block;
  -webkit-appearance: none;
  appearance: none; /* [1] */
  width: 100%;
  height: 4px;
  border: 0; /* [1] */
  border-radius: 4px;
  background-color: var(--progress-track-background); /* [2] */
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
  /**
   * TRACK ("background)
   */
  /**
   * VALUE (The "filled" part of the progress bar)
   */
  /**
   * Firefox-specific styling.
   *
   * Firefox supports only a pseudo element for value.
   * The track background is styled via the `<progress>` element [2].
   */
}
/* [1] */
[data-theme=alternative] .c-progress {
  --progress-track-background: #ffffff;
}

.c-progress::-webkit-progress-bar {
  border-radius: 4px;
  background-color: var(--progress-track-background); /* [2] */
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=alternative] .c-progress::-webkit-progress-bar {
  --progress-track-background: #ffffff;
}

.c-progress::-webkit-progress-value {
  --progress-value-background: #347954;
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  -webkit-transition-property: var(--transition-property);
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  border-radius: 4px;
  background-color: var(--progress-value-background);
}
.is-success.c-progress::-webkit-progress-value {
  --progress-value-background: #347954;
}

.is-error.c-progress::-webkit-progress-value {
  --progress-value-background: #d92b35;
}

.c-progress::-moz-progress-bar {
  --progress-value-background: #347954;
  border-radius: 4px;
  background-color: var(--progress-value-background);
}
.is-success.c-progress::-moz-progress-bar {
  --progress-value-background: #347954;
}

.is-error.c-progress::-moz-progress-bar {
  --progress-value-background: #d92b35;
}

/* ------------------------------------*\
    #PRICE (Settings)
\*------------------------------------ */
/**
 * [1] Reset default margin.
 * [2] Ensure crossed-out text if `<s>` is not used or
 *     User-Agent styles are not applied.
 * [3] Ensure price not getting wrapped.
 * [4] Limit the additional info text-length when container
 *     is displayed with a large width to
    *     a) improve readability
    *     b) keep "visual connection" to price information above
 * [5] Allow wrapping in case discount value & price can not be displayed
 *     side-by-side.
 * [6] Wrap text in extra container to avoid overflow and still maintain
 *     text limitation via `max-length`.
 * [7] Set `max-width: 100%` to avoid text overflow.
 *     https://github.com/philipwalton/flexbugs#flexbug-2
 * [8] Conditionally output only shadow (overwrite) when shadow is set initially
 *     set in base variant.
 * [9] It’s easier to control elements in `.c-price-box__body__content` as
 *      flex items (e.g. `margin` for `span`s).
 * [10] Shift the text just a little bit upwards towards the price. We are
 *      using the Sass `or` operator here to avoid a long ternary condition.
 * [11] Consistent vertical spacing between body content items.
 * [12] Reduce spacing and font-size when container has a small width.
 * [13] Reset spacing and font-size when container has a bigger width.
 */
.c-price-box {
  --container-widths: "0 260";
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.15);
}
.c-price-box[data-container-width~="0"] .c-price-box__body {
  padding: 24px 16px; /* [12] */
}
.c-price-box[data-container-width~="0"] .c-price-box__price {
  font-size: 1.25rem;
  line-height: 1;
  /* [12] */
}
.c-price-box[data-container-width~="260"] .c-price-box__header {
  font-size: 1rem;
  line-height: 1.5;
}
.c-price-box[data-container-width~="260"] .c-price-box__body {
  padding: 16px; /* [13] */
}
.c-price-box[data-container-width~="260"] .c-price-box__price {
  font-size: 1.4375rem;
  line-height: 1;
}
.c-price-box.c-price-box--integrated {
  box-shadow: none; /* [8] */
}

.c-price-box__header {
  padding: 8px 24px;
  font-weight: 700;
  text-align: center;
  background-color: #347954;
  color: #ffffff;
}
.c-price-box--integrated .c-price-box__header {
  border-bottom: 1px solid #347954;
  background-color: transparent;
  color: #161718;
}

.c-price-box__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background-color: #d8d8d8;
  color: #161718;
}
.c-price-box--integrated .c-price-box__body {
  background-color: transparent;
}

.c-price-box__body__content {
  display: flex; /* [9] */
  /* [11] */
  flex-direction: column; /* [9] */
  text-align: left;
}

.c-price-box__discount {
  display: flex;
  gap: 8px;
  flex-wrap: wrap; /* [5] */
  align-items: center;
  margin-bottom: 4px;
}

.c-price-box__discount__old-price {
  font-size: 1rem;
  text-decoration: line-through; /* [2] */
}

.c-price-box__price {
  display: block;
  font-weight: 700;
}

.c-price-box__price,
.c-price-box__discount__old-price {
  white-space: nowrap; /* [3] */
}

.c-price-box__price ~ .c-price-box__text {
  margin-top: -0.15em; /* [10] */
}

.c-price-box__additional-info {
  max-width: 100%; /* [7] */
  margin-top: 4px;
}

/* [6] */
.c-price-box__additional-info__text {
  font-size: 0.75rem;
  max-width: 50ch; /* [4] */
  font-weight: 400;
  text-align: left;
}
.c-price-box__additional-info__text:last-child {
  margin-bottom: 0; /* [1] */
}

/* ------------------------------------*\
    #UPLOAD
\*------------------------------------ */
/**
 * Upload component which utilizes the native `<input type="file">` element.
 * It’s prepared to be used with drag-and-drop JS extensions in providing
 * a `.has-mouseover` state class when a file is dragged upon the upload
 * container.
 */
/**
 * [1] Reset default `<label>` spacing.
 * [2] Reference for the mouseover element.
 * [3] Disable the input (i.e. upload function) when loading or disabled.
 * [4] Hide original `<input>` but keep it accessible.
 * [5] Just hide visually, so the height of the container does not change.
 * [6] Create a padding for the mouseover element by using the calc function
 *     for the width property. Since this element is positioned `absolute`,
 *     a width of `100%` wouldn’t work. That’s why we subtract the the padding
 *     value off of both sides.
 * [7] Center the state elements inside the upload container.
 *     Avoids layout shift by positioning manually (see [5]).
 * [8] Override the buttons default transition so it doesn’t look weird.
 * [9] It would work to omit the `left` declaration, however it is advised to
 *     always apply a `left` (or `right`) value to an `absolute` positioned
 *     element. A value of `0` wouldn’t work correctly, so we use the padding
 *     value instead.
 * [10] Place `.c-upload__input` over the entire upload component to allow drag
 *      and drop of files onto the file input field. This is only done when no
 *      hovering takes place to allow interacting with buttons (or other
 *      elements) inside the component.
 * [11] Disabled variant styles for browser which do not support `:has` yet.
 */
.c-upload {
  position: relative; /* [2] */
  display: block;
  margin-bottom: 0; /* [1] */
  padding: 24px 24px;
  text-align: center;
  background-color: #f1f1f1;
  cursor: pointer;
}
.c-upload::after, .c-upload::before {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  display: block;
  pointer-events: none;
  border: 1px solid #7c7d7e;
  border-radius: 4px;
  opacity: 0;
}
.c-upload::before {
  opacity: 1;
}
.c-upload::after {
  border-color: #161718;
}
.c-upload:not(.has-mouseover):hover::after {
  opacity: 1;
}
.c-upload:not(.has-mouseover):hover::before {
  opacity: 0;
}
.c-upload:focus, .c-upload:active {
  border: #347954;
}
.c-upload.has-mouseover::before {
  opacity: 0;
  border-width: 2px;
}
.c-upload.has-mouseover::after {
  opacity: 1;
  border-color: #347954;
}
.c-upload.is-loading,
.c-upload.is-loading .c-upload__input {
  pointer-events: none; /* [3] */
}
.c-upload.has-mouseover .c-upload__description,
.c-upload.has-mouseover .c-upload__actions, .c-upload.is-loading .c-upload__description,
.c-upload.is-loading .c-upload__actions {
  visibility: hidden; /* [5] */
}
.c-upload:has(.c-upload__input:active)::before, .c-upload:has(.c-upload__input:active)::after {
  border-style: solid;
}
.c-upload:has(.c-upload__input[disabled]) {
  background-color: #f1f1f1;
  pointer-events: none; /* [3] */
}
.c-upload:has(.c-upload__input[disabled])::before, .c-upload:has(.c-upload__input[disabled])::after {
  border-color: #9e9fa0;
}
.c-upload:has(.c-upload__input[disabled]) .c-upload__disabled {
  display: block;
}
.c-upload:has(.c-upload__input[disabled]) .c-upload__description,
.c-upload:has(.c-upload__input[disabled]) .c-upload__actions {
  visibility: hidden; /* [5] */
}
.c-upload.is-disabled { /* [11] */
  background-color: #f1f1f1;
}
.c-upload.is-disabled::before, .c-upload.is-disabled::after {
  border-color: #9e9fa0;
}
.c-upload.is-disabled,
.c-upload.is-disabled .c-upload__input {
  pointer-events: none;
}
.c-upload.is-disabled .c-upload__disabled {
  display: block;
}
.c-upload.is-disabled .c-upload__description,
.c-upload.is-disabled .c-upload__actions {
  visibility: hidden;
}

.c-upload__input {
  position: absolute; /* [4] */
  z-index: -1; /* [4] */
  width: 0.1px; /* [4] */ /* stylelint-disable-line scale-unlimited/declaration-strict-value */
  height: 0.1px; /* [4] */ /* stylelint-disable-line scale-unlimited/declaration-strict-value */
  opacity: 0; /* [4] */
  overflow: hidden; /* [4] */
}
.c-upload:not(:hover) .c-upload__input {
  z-index: 1; /* [10] */
  top: 0; /* [10] */
  left: 0; /* [10] */
  width: 100%; /* [10] */
  height: 100%; /* [10] */
}

.c-upload__description {
  display: block;
}

.c-upload__description-text {
  font-size: 1rem;
  display: block;
  margin-bottom: 0;
  font-weight: 700;
  color: #161718;
}
.c-upload__description-text:not(:last-child) {
  margin-bottom: 0;
}

.c-upload__description-supplementary-text {
  font-size: 0.875rem;
  display: block;
  margin-bottom: 0;
  font-weight: 300;
  color: #161718;
}

.c-upload__icon {
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 2.5rem;
  line-height: 1;
  display: block;
  margin-bottom: 8px;
  color: #161718;
}
.c-upload__icon::before {
  content: "\f20d";
}

.c-upload__mouseover,
.c-upload__loader,
.c-upload__disabled {
  position: absolute; /* [7] */
  top: 50%; /* [7] */
  left: 24px; /* [9] */
  display: block;
  width: calc(100% - (48px)); /* [6] */
  transform: translateY(-50%); /* [7] */
}

.c-upload__mouseover {
  color: #161718;
}
.c-upload:not(.has-mouseover) .c-upload__mouseover {
  display: none;
}
.c-upload__mouseover > *:last-child {
  margin-bottom: 0;
}

.c-upload__mouseover-icon {
  display: block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 2.5rem;
  line-height: 1.2;
  color: #161718;
}
.c-upload__mouseover-icon::before {
  content: "\f182";
}

.c-upload__mouseover-text {
  font-size: 0.875rem;
  display: block;
  font-weight: 300;
}

.c-upload__loader {
  display: block;
}
.c-upload:not(.is-loading) .c-upload__loader {
  display: none;
}

.c-upload__loader-text {
  font-size: 0.875rem;
  display: block;
  margin-top: 8px;
  color: #161718;
}

.c-upload__disabled {
  display: none;
  color: #9e9fa0;
}

.c-upload__disabled-icon {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 2.5rem;
  line-height: 1;
  color: #9e9fa0;
}
.c-upload__disabled-icon::before {
  content: "\f17a";
}

.c-upload__disabled-text {
  font-size: 1rem;
  display: block;
  margin-bottom: 0;
  font-weight: 700;
}
.c-upload__disabled-text:not(:last-child) {
  margin-bottom: 0;
}

.c-upload__disabled-supplementary-text {
  font-size: 0.875rem;
  display: block;
  margin-bottom: 0;
  color: #9e9fa0;
}

.c-upload__actions {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 16px;
}

.c-upload__button {
  margin-bottom: 0;
}
.has-mouseover .c-upload__button {
  transition: 0s; /* [8] */
}

/* ------------------------------------*\
    #UPLOAD-ITEM
\*------------------------------------ */
/**
 * [1] Always stretch the content to full-width.
 * [2] Break long file names into multiline.
 * [3] Don’t wrap icons into multiline.
 * [4] Hide file icon if `$upload-item-icon-is-hidden: true`.
 * [5] Place the image below on small viewports.
 * [6] Align items across the row.
 * [7] Make sure the image has proper dimensions.
 * [8] Remove link border for brands with border set.
 */
.c-upload-item {
  display: flex;
  align-items: stretch;
  border-radius: 5px;
}
@media (max-width: 480px) {
  .c-upload-item.c-upload-item--preview {
    flex-direction: column-reverse; /* [5] */
    align-items: initial; /* [6] */
  }
}

.c-upload-item__icon {
  font-size: 2rem;
  line-height: 1;
  margin-right: 8px;
  color: #347954;
}
@media (max-width: 480px) {
  .c-upload-item__icon {
    display: none;
  }
}

.c-upload-item__content {
  flex-grow: 1; /* [1] */
  flex-shrink: 1;
  flex-basis: auto;
}

.c-upload-item__title-row {
  display: flex;
  justify-content: space-between;
}

.c-upload-item__title {
  font-size: 1rem;
  line-height: 1.5;
  flex-grow: 0;
  flex-shrink: 1;
  flex-basis: auto;
  margin-bottom: 0;
  font-weight: 300;
  word-break: break-all; /* [2] */
}

.c-upload-item__progress {
  display: none;
  margin-top: 12px;
  margin-bottom: 8px;
}
.c-upload-item.is-loading .c-upload-item__progress, .c-upload-item.is-success .c-upload-item__progress, .c-upload-item.is-error .c-upload-item__progress {
  display: block;
}

.c-upload-item__subtitle-row {
  font-size: 0.75rem;
  line-height: 1.5;
  margin-bottom: 0;
  font-weight: 400;
}

.c-upload-item__interaction-icons {
  display: inline-flex;
  flex-grow: 0;
  flex-shrink: 0; /* [3] */
  flex-basis: auto;
  margin-left: 16px;
}
@media (max-width: 720px) {
  .c-upload-item__interaction-icons {
    margin-left: 16px;
  }
}

.c-upload-item__interaction-icon,
.c-upload-item__status-icon {
  padding: 0;
  border: 0;
  background-color: transparent;
  display: inline-flex;
}
.c-upload-item__interaction-icon::before,
.c-upload-item__status-icon::before {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.5rem;
  color: #161718;
}
.c-upload-item__interaction-icon:not(:first-child),
.c-upload-item__status-icon:not(:first-child) {
  margin-left: 16px;
}
@media (max-width: 720px) {
  .c-upload-item__interaction-icon:not(:first-child),
  .c-upload-item__status-icon:not(:first-child) {
    margin-left: 16px;
  }
}

.c-upload-item__interaction-icon {
  text-decoration: none;
}

.c-upload-item.is-error .c-upload-item__interaction-icon--main, .c-upload-item.is-success .c-upload-item__interaction-icon--main {
  display: none;
}
.c-upload-item__interaction-icon--main::before {
  content: "\f1d4";
}
.c-upload-item.is-loading .c-upload-item__interaction-icon--main::before {
  content: "\f15a";
}

.c-upload-item.is-loading .c-upload-item__interaction-icon--secondary, .c-upload-item.is-error .c-upload-item__interaction-icon--secondary, .c-upload-item.is-success .c-upload-item__interaction-icon--secondary {
  display: none;
}
.c-upload-item__interaction-icon--secondary::before {
  content: "\f208";
}

.c-upload-item__status-icon {
  display: none;
}
.c-upload-item.is-success .c-upload-item__status-icon {
  display: inline-flex;
}
.c-upload-item.is-success .c-upload-item__status-icon::before {
  content: "\f146";
  color: #37d002;
}
.c-upload-item.is-error .c-upload-item__status-icon {
  display: inline-flex;
}
.c-upload-item.is-error .c-upload-item__status-icon::before {
  content: "\f17a";
  color: #d92b35;
}

.c-upload-item__filesize-progress {
  display: none;
}
.c-upload-item.is-loading .c-upload-item__filesize-progress, .c-upload-item.is-success .c-upload-item__filesize-progress {
  display: inline;
}

.c-upload-item.is-error .c-upload-item__filesize {
  display: none;
}

.c-upload-item__message {
  display: block;
}
.c-upload-item.is-success .c-upload-item__message,
.c-upload-item.is-success .c-upload-item__message a {
  color: #37d002;
}
.c-upload-item.is-error .c-upload-item__message,
.c-upload-item.is-error .c-upload-item__message a {
  color: #d92b35;
}

.c-upload-item__image-wrapper {
  margin-right: 16px;
}
@media (max-width: 480px) {
  .c-upload-item__image-wrapper {
    margin-top: 16px;
    margin-right: 0;
  }
}

.c-upload-item__image {
  width: 80px;
}
@media (max-width: 480px) {
  .c-upload-item__image {
    width: 60px;
  }
}

.c-upload-item__image-link {
  display: inline-block;
  border: 0; /* [8] */
  text-decoration: none;
  text-align: center;
}
.c-upload-item__image-link:focus-visible {
  --focus-outline-color: #161718;
  --focus-outline-offset: 2px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

/**
 * Switch file icon by file types
 */
/* ------------------------------------*\
    #UPLOAD-ITEM
\*------------------------------------ */
/**
 * [1] Avoid duplicated outline.
 */
.c-upload-item__title-row {
  align-items: center;
}

.c-upload-item__interaction-icon {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  scale: 1;
  position: relative;
}
.c-upload-item__interaction-icon::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  transition: inherit;
}
.c-upload-item__interaction-icon:hover::after {
  background-color: rgba(22, 23, 24, 0.06);
}

.c-upload-item__interaction-icon:focus-visible::after {
  --focus-outline-color: #161718;
  --focus-outline-offset: 0;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

.c-upload-item__interaction-icon:active {
  scale: 0.95;
}

.c-upload-item__interaction-icon:focus-visible {
  outline: 0;
}

/* ------------------------------------*\
    #UPLOAD-CONTAINER
\*------------------------------------ */
/**
 * [1] Reset default list styling.
 * [2] Reset default `<li>` styling.
 */
.c-upload-container__field {
  margin-bottom: 24px;
}

.c-upload-container__itemlist {
  margin: 0;
  padding: 0;
  list-style: none;
  /* [1] */
}
.c-upload-container__itemlist li {
  display: block;
  margin-bottom: 0;
}

.c-upload-container__item {
  margin-bottom: 0; /* [2] */
}
.c-upload-container__item:not(:last-child) {
  margin-bottom: 24px;
}

/* ------------------------------------*\
    #ICON-LIST (Settings)
\*------------------------------------ */
/* ------------------------------------*\
    #ICON-LIST
\*------------------------------------ */
/**
 * [1] Create spacing between icon and text...
 * [2] Reset default list stylings. We do not use the `@include list-bare()`
 *     mixin, since we explicitly do want the margin between the `<li>`s, which
 *     list-bare removes.
 * [3] Magic number to _properly_ align the icon vertically to the text.
 * [4] If the design specifies a spacing between icon list items, set it.
 *     This applies to all items except the first one.
 * [5] Set positioning context for `.c-icon-list__icon`. This helps to make
 *     the icon stay in place in overflow contexts, see BRON-6699.
 */
.c-icon-list {
  margin: 0;
  padding-left: 32px; /* [1] */
  text-align: left;
  list-style: none; /* [2] */
}
.c-icon-list li {
  position: relative; /* [5] */
}
.c-icon-list li + li {
  margin-top: 8px; /* [4] */
}

.c-icon-list__icon {
  position: absolute;
  line-height: inherit;
}
.c-icon-list__icon::before {
  font-size: 1.5rem;
  line-height: 1;
  position: absolute;
  top: 0; /* [3] */
  left: -32px;
}

/* ------------------------------------*\
    #TABS
\*------------------------------------ */
/* [8] */
/**
 * [1] We need to defensively reset any default list-style properties.
 * [2] Remove whitespace for inline(-block) elements.
 * [3] Draw the line through, it will be hidden by parents overflow hidden.
 *     This is the line that exceeds to the right.
 * [4] Divide the amount of spacing by two, so that the sum of both paddings
 *     equals the variable.
 * [5] The ::before pseudo element represents the border-bottom below each item.
 * [6] The ::after pseudo element represents the border that exceeds all the
 *     way to the right. To make this component compliant to the Bluelabel
 *     design, this exceeding border cannot be build with a border-bottom on the
 *     list element.
 * [7] Make the border long enough.
 * [8] Eliminate any additional margin inside the tab content.
 * [9] Place the text out of the viewport so that is still accessible.
 * [10] Enable/disable pointer events prev/next buttons.
 */
.c-tabs__nav {
  overflow: hidden;
  margin: 0; /* [1] */
  padding: 0; /* [1] */
  font-size: 0; /* [2] */
  background-color: transparent;
  list-style: none;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.c-tabs__nav .flickity-prev-next-button {
  position: absolute;
  top: 50%;
  height: 100%; /* [7] */
  margin-top: 0; /* [8] */
  transform: translateY(-50%);
  pointer-events: auto; /* [10] */
}
.c-tabs__nav .flickity-prev-next-button.next {
  right: 0;
  justify-content: flex-end;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, white 40%); /* [9] */
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=alternative] .c-tabs__nav .flickity-prev-next-button.next {
  background: linear-gradient(90deg, rgba(216, 216, 216, 0) 0%, #d8d8d8 40%); /* [9] */
}

.c-tabs__nav .flickity-prev-next-button.previous {
  left: 0;
  justify-content: flex-start;
  background: linear-gradient(90deg, white 60%, rgba(255, 255, 255, 0) 100%); /* [9] */
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=alternative] .c-tabs__nav .flickity-prev-next-button.previous {
  background: linear-gradient(90deg, #d8d8d8 40%, rgba(216, 216, 216, 0) 100%); /* [9] */
}

.c-tabs__nav .flickity-prev-next-button:disabled {
  pointer-events: none; /* [10] */
  opacity: 0;
}
.c-tabs__nav .flickity-prev-next-button::before {
  font-size: 1.5rem;
  line-height: 1;
}

.c-tabs__nav-item {
  display: inline-flex;
  margin-bottom: 0;
  white-space: nowrap;
}

.c-tabs__nav-link {
  padding: 0;
  border: 0;
  background-color: transparent;
  font-size: 1rem;
  line-height: 24px;
  padding-left: 12px;
  padding-right: 12px;
  padding-top: 8px;
  padding-bottom: 8px;
  position: relative;
  display: inline-block;
  font-weight: 700;
  text-decoration: none;
  text-transform: none;
  color: #464748;
}
.c-tabs__nav-link:focus {
  outline: 0;
}
.c-tabs__nav-link:hover, .c-tabs__nav-link:focus {
  color: #161718;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=alternative] .c-tabs__nav-link:hover, [data-theme=alternative] .c-tabs__nav-link:focus {
  background-color: #ffffff;
}

.c-tabs__nav-link:hover::before, .c-tabs__nav-link:focus::before {
  background-color: #347954;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=alternative] .c-tabs__nav-link:hover::before, [data-theme=alternative] .c-tabs__nav-link:focus::before {
  background-color: #ffffff;
}

.c-tabs__nav-link.is-active {
  font-weight: 700;
  color: #161718;
}
.c-tabs__nav-link.is-active::before {
  height: 3px;
  background-color: #347954;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=alternative] .c-tabs__nav-link.is-active::before {
  background-color: #ffffff;
}

.c-tabs__nav-link::before { /* [5] */
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 1px;
  background-color: #161718;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=alternative] .c-tabs__nav-link::before {
  background-color: #347954;
}

.c-tabs__nav-link.is-disabled {
  color: #9e9fa0;
  cursor: default;
  pointer-events: none;
}
.c-tabs__nav-link.is-disabled::before {
  background-color: #7c7d7e;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=alternative] .c-tabs__nav-link.is-disabled::before {
  background-color: #9e9fa0;
}

.c-tabs__nav.c-tabs__nav--icons .c-tabs__nav-link {
  display: flex;
  align-items: center;
}
.c-tabs__nav.c-tabs__nav--icons-stacked .c-tabs__nav-link {
  font-size: 1rem;
  line-height: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-bottom: 8px;
}
.c-tabs__nav--icons-only .c-tabs__nav-link {
  font-size: 1rem;
  line-height: 1;
  padding-top: 8px;
  padding-bottom: 8px;
}
.c-tabs__nav--icons-only .c-tabs__nav-link .c-tabs__text {
  position: absolute;
  left: -100vw; /* [9] */
}

.c-tabs__nav.c-tabs__nav--icons .c-tabs__icon {
  font-size: 1.5rem;
  line-height: 1;
  margin-right: 8px;
}
.c-tabs__nav.c-tabs__nav--icons-stacked .c-tabs__icon {
  font-size: 1.5rem;
  line-height: 1;
  margin-top: 8px;
  margin-bottom: 8px;
}
.c-tabs__nav.c-tabs__nav--icons-only .c-tabs__icon {
  font-size: 2.5rem;
  line-height: 1;
}

.c-tabs__content {
  display: block;
  padding: 24px 0;
}
.c-tabs__content > *:last-child {
  margin-bottom: 0; /* [8] */
}
.c-tabs__content[aria-hidden=true] {
  display: none;
}

/* ------------------------------------*\
    #TABS
\*------------------------------------ */
/**

 * [1] Reset default background settings.
 * [2] Reset default flickity background settings.
 * [3] Reset default outline settings.
 * [4] Reduce spacing on smaller screens.
 * [5] Hide bottom border for non-active tabs.
 * [6] Hide browser focus outline for browsers that also support `:focus-visible`.
 * [7] Add outline as per brand guideline, for browsers that support `:focus-visible`.
 */
.c-tabs__nav .flickity-prev-next-button.previous {
  background: transparent; /* [1] */
}
.c-tabs__nav .flickity-prev-next-button.previous::before {
  background: linear-gradient(to left, rgba(255, 255, 255, 0) 0%, white 30%); /* [1] */
}
.c-tabs__nav .flickity-prev-next-button.next {
  background: transparent; /* [1] */
}
.c-tabs__nav .flickity-prev-next-button.next::before {
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, white 30%); /* [1] */
}
.c-tabs__nav .flickity-prev-next-button:focus, .c-tabs__nav .flickity-prev-next-button:focus-visible {
  outline: 0; /* [6] */
  background-color: transparent !important; /* [2] */
}
.c-tabs__nav .flickity-prev-next-button:focus::before, .c-tabs__nav .flickity-prev-next-button:focus-visible::before {
  --focus-outline-color: #161718;
  --focus-outline-offset: -1px;
  --focus-outline-style: solid;
  --focus-outline-width: 1px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
  /* [3] */
}

.c-tabs__nav-item {
  margin-right: 48px;
}
@media (max-width: 720px) {
  .c-tabs__nav-item {
    margin-right: 24px; /* [4] */
  }
}

.c-tabs__nav--icons-stacked .c-tabs__nav-link .c-tabs__text {
  margin-bottom: 4px;
}

.c-tabs__nav-link:not(.is-active)::before {
  display: none; /* [5] */
}
.c-tabs__nav-link:focus-visible::after { /* [7] */
  content: "";
  position: absolute;
  top: 8px;
  right: 8px;
  bottom: 8px;
  left: 8px;
  outline: 2px solid #161718;
}

/* ------------------------------------*\
   #CARD
\*------------------------------------ */
/**
 * @TODO icons
 * - order
 * - naming (plural vs singular)
 */
/**
 * [1] Fill horizontal space of parent.
 * [2] Calculate the space needed of 100% of the content by subtracting the
 *     needed space from the icon.
 * [3] Defensively reset any potential spacing that comes with plain HTML
 *     elements.
 * [4] The logical and therefore reading order of flex items is separate from
 *     the visual order. In this case the order property can allow patterns to
 *     be easily implemented in position needed.
 * [5] Reset ordering set by [4].
 * [6] Prevent too much spacing below below image in IE.
 * [7] To prevent unwanted stacking spacing at the bottom of the body, remove
 *     any unwanted spacing, no matter what element the last element in
 *     `.c-card__body` is.
 * [8] Place footer at the bottom. This only works in context, where the card
 *     is larger than the actual content, e.g. manually set height or
 *     equal-height with other items in a row.
 * [9] Center horizontally.
 * [10] Add additional `padding-right` to the element following `.c-card__icon`
 *      if [14a] the icon is placed on the left for the `.c-card--states`
 *      variant and this is  NOT the `.c-card--states` variant or [14b] if the
 *      icon is placed on the right for all variants.
 * [11] Add a `padding-top` that matches the card's outer padding to the element
 *      which is following `.c-card__icon` if the icon was taken out of the flow
 *      and moved to the right.
 * [12] Add additional `padding-left` for card-header if the state icon
 *      is placed on the left.
 * [13] Remove outer padding for images.
 * [14] Make the image always take up the entire width for cards.
 * [15] Vertical alignment for icon to title.
 * [16] Reset all spacings for `<hr>`.
 * [17] Empty class for special card variant `Card Expandable`.
 * [18] Enable enough spacing when displayed on small devices.
 * [19] Reduce the size of the wrapper accordion icon if wanted.
 * [20] Animate the wrapper accordion icon when parent has class `.is-active`.
 * [21] Set the display context for items inside the expandable body.
 * [22] Move the expandable trigger to the right-hand side.
 * [23] Set custom alignments for expandable cards.
 * [24] Conditionally apply `border-radius` to image if it is the first element
 *      inside the card block.
 *      Removes the need to overwrite e.g. if image is not
 *      the first element.
 * [25] Set spacing for small screens.
 * [26] Hide icon on small screens.
 * [27] Show toggle button only on small screens.
 * [28] Swap icon when `[aria-expanded="true"]`.
 * [29] Toggle visibility of `.c-card__body`.
 * [30] Increase click area by adding a pseudo element to the button for the
 *      Card Responsive Collapse variant.
 * [31] Reduce content spacing for Card Responsive Collapse variant.
 * [32] Remove any unwanted spacing.
 * [33] Hide footer for inactive cards to exclude, in this case, non-interactive
 *      footer content (e.g. buttons, links) for all users and input methods.
 *      We have to remove transitions from the child elements to prevent an
 *      unwanted delay.
 */
.c-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%; /* [1] */
  border: 1px solid #e4e4e4;
  border-radius: 8px;
  text-align: left;
  background-color: #f1f1f1;
  color: #161718;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
.c-card > * {
  padding-top: 4px;
  padding-right: 24px;
  padding-bottom: 4px;
  padding-left: 24px; /* [1] */
}
.c-card > *:first-child {
  padding-top: 24px;
}
.c-card > *:last-child {
  padding-bottom: 24px;
}
/* [1] */
.c-card > *:not(.c-card__icon):not(.c-price-box) {
  width: 100%;
}
.c-card__image {
  padding-right: 0;
  padding-left: 0;
  /* [13] */
  flex-grow: 0; /* [6] */
  flex-shrink: 0; /* [6] */
  flex-basis: auto; /* [6] */
  text-align: center; /* [9] */
  /* [24] */
}
.c-card__image:first-child {
  padding-top: 0;
}
.c-card__image:last-child {
  padding-bottom: 0;
}
.c-card__image:is(:first-child) > img {
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
}
.c-card__image > img {
  width: 100%; /* [14] */
}

.c-card__icon {
  display: block;
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 48px;
}
.c-card--states.c-card--states-success .c-card__icon .c-icon {
  color: #37d002;
}
.c-card--states.c-card--states-warning .c-card__icon .c-icon {
  color: #cd4a19;
}
.c-card--states.c-card--states-error .c-card__icon .c-icon {
  color: #d92b35;
}
.c-card__icon .c-icon {
  font-size: 3rem;
  line-height: 1;
  color: #161718;
}
.c-card__header {
  flex-grow: 0;
  flex-shrink: 1;
  flex-basis: auto;
}
.c-card__title {
  font-size: 1.4375rem;
  margin-bottom: 0;
  font-weight: 700;
}

.c-card__subtitle {
  font-size: 1rem;
  margin-bottom: 0; /* [3] */
  font-weight: 700;
}

.c-card__divider {
  margin-top: 24px;
  margin-bottom: 24px;
  padding-top: 0; /* [16] */
  padding-bottom: 0; /* [16] */
}

.c-card__body {
  flex-grow: 0;
  flex-shrink: 1;
  flex-basis: auto;
  color: #161718;
}
@media (max-width: 720px) {
  .c-card__body.js-is-ready.is-closed {
    display: none; /* [29] */
  }
}
.c-card__body > *:last-child {
  margin-bottom: 0; /* [7] */
}
.c-card__body + * {
  padding-top: 12px;
}

.c-card__footer {
  font-size: 0.875rem;
  display: flex;
  justify-content: flex-start;
  flex-grow: 0;
  flex-shrink: 1;
  flex-basis: auto;
  margin-top: auto; /* [8] */
}

.c-card--states .c-card__icon .c-icon {
  font-size: 3rem;
  line-height: 1;
}

.c-card--inactive {
  opacity: 1;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.c-card--inactive .c-card__footer {
  visibility: hidden; /* [33] */
}
.c-card--inactive .c-card__footer * {
  transition: none; /* [33] */
}

.c-card--scrollable {
  /* stylelint-disable */
  background: linear-gradient(#f1f1f1 30%, rgba(241, 241, 241, 0)), linear-gradient(rgba(241, 241, 241, 0), #f1f1f1 70%) 0 100%, radial-gradient(farthest-side at 50% 0, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0)), radial-gradient(farthest-side at 50% 100%, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0)) 0 100%;
  background-repeat: no-repeat;
  background-color: #f1f1f1;
  background-size: 100% 42px, 100% 42px, 100% 14px, 100% 14px;
  background-attachment: local, local, scroll, scroll;
  /* stylelint-enable */
  max-height: 336px;
  overflow-y: auto;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.c-card--expandable { /* [17] */
  align-items: flex-start; /* [23] */
  text-align: left; /* [23] */
}
.c-card--expandable .c-card__expandable-panel {
  display: none;
}
.c-card--expandable .is-open .c-btn--card-icon {
  transform: rotateX(180deg); /* [20] */
}
.c-card--expandable .is-open .c-card__expandable-panel {
  display: block;
}

@media (max-width: 720px) {
  .c-card--responsive-collapse .c-card__header {
    padding-top: 24px;
    /* [25] */
    padding-bottom: 24px;
    /* [25] */
    position: relative;
  }
  .c-card--responsive-collapse .c-card__title {
    font-size: 1.75rem;
    margin-bottom: 0;
  }
}
@media (max-width: 720px) and (min-width: 721px) {
  .c-card--responsive-collapse .c-card__title {
    font-size: 2rem;
  }
}
@media (max-width: 720px) and (min-width: 1281px) {
  .c-card--responsive-collapse .c-card__title {
    font-size: 2.25rem;
  }
}
@media (max-width: 720px) {
  .c-card--responsive-collapse .c-card__subtitle {
    font-size: 1rem;
  }
  .c-card--responsive-collapse .c-card__body {
    margin-top: -4px;
    /* [31] */
    padding-top: 0; /* [31] */
  }
}
.c-card--responsive-collapse .c-card__header-items {
  flex-direction: row;
  justify-content: space-between;
}
.c-card--responsive-collapse .c-card__header-items > *:first-child {
  margin-top: 0;
}
@media (max-width: 720px) {
  .c-card--responsive-collapse .c-card__header-items > *:first-child {
    padding-right: 24px;
    /* [25] */
  }
}
@media (max-width: 720px) {
  .c-card--responsive-collapse .c-card__icon {
    display: none; /* [26] */
  }
}

.c-card--responsive-collapse__toggle {
  display: none; /* [27] */
}
@media (max-width: 720px) {
  .c-card--responsive-collapse__toggle {
    display: block;
    padding-right: 0; /* [32] */
    border: none;
    background: transparent;
    color: #347954;
  }
  .c-card--responsive-collapse__toggle::before {
    display: inline-block;
    font-family: "bronson-skoda" !important; /* [1] */
    font-weight: normal;
    font-style: normal;
    line-height: 1;
    font-variant: normal;
    text-transform: none;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    /* stylelint-disable order/order */
    --transition-property: all;
    --transition-duration: var(--transition-duration-reduced-motion, 300ms);
    --transition-timing-function: ease-in-out;
    --transition-delay: ;
    transition-property: var(--transition-property);
    transition-duration: var(--transition-duration);
    transition-timing-function: var(--transition-timing-function);
    transition-delay: var(--transition-delay);
    font-size: 1.5rem;
    content: "\f1c1";
  }
  .c-card--responsive-collapse__toggle::after {
    content: ""; /* [30] */
    position: absolute;
    left: 0;
    top: 0;
    display: block;
    width: 100%;
    height: 100%;
  }
  [aria-expanded=true] .c-card--responsive-collapse__toggle::before {
    /* stylelint-disable order/order */
    --transition-property: all;
    --transition-duration: var(--transition-duration-reduced-motion, 300ms);
    --transition-timing-function: ease-in-out;
    --transition-delay: ;
    transition-property: var(--transition-property);
    transition-duration: var(--transition-duration);
    transition-timing-function: var(--transition-timing-function);
    transition-delay: var(--transition-delay);
    content: "\f1c1";
    transform: rotateZ(45deg);
  }
}

.c-card__header-items {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}
@media (max-width: 720px) {
  .c-card__header-items {
    flex-direction: column-reverse;
    align-items: flex-start;
  }
  .c-card__header-items > *:first-child {
    margin-top: 24px; /* [18] */
  }
}

.c-card__expandable {
  display: flex; /* [21] */
  flex-direction: column; /* [21] */
}

.c-card__expandable-btn {
  align-self: flex-end; /* [22] */
}

/**
 * [1] Add overlay to visualize blocked inactive/disabled state.
 *     Due to the flexible nature of the component of including
 *     arbitrary elements inside, an overlay is used instead of
 *     colorizing single elements inside which would add complexity and
 *     is error-prone.
 *     Options in default do not satisfy the visual requirements for this brand.
 * [2] Use custom spacing that can not be set via default setting or would
 *     be too complex.
 */
.c-card--inactive {
  /* [1] */
}
.c-card--inactive::before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  opacity: 0.6;
  border-radius: inherit;
  background-color: #ffffff;
}

.c-card__image {
  padding-top: 20px; /* [2] */
  padding-bottom: 20px; /* [2] */
}

@media (max-width: 720px) {
  .c-card--responsive-collapse__toggle::before {
    /* stylelint-disable order/order */
    --transition-property: transform, background-color;
    --transition-duration: var(--transition-duration-reduced-motion, 300ms);
    --transition-timing-function: ease-in-out;
    --transition-delay: ;
    transition-property: var(--transition-property);
    transition-duration: var(--transition-duration);
    transition-timing-function: var(--transition-timing-function);
    transition-delay: var(--transition-delay);
    border-radius: 50%;
  }
  .c-card__header:hover .c-card--responsive-collapse__toggle::before {
    background-color: rgba(22, 23, 24, 0.06);
  }
  .c-card__header:focus-within .c-card--responsive-collapse__toggle::before {
    --focus-outline-color: #161718;
    --focus-outline-offset: 1px;
    --focus-outline-style: solid;
    --focus-outline-width: 2px;
    outline-color: var(--focus-outline-color, #161718);
    outline-offset: var(--focus-outline-offset, 1px);
    outline-style: var(--focus-outline-style, solid);
    outline-width: var(--focus-outline-width, 2px);
  }
}
/* ------------------------------------*\
    #LIST-UI
\*------------------------------------ */
/* stylelint-disable-line unit-disallowed-list */
/**
 * [1] Vertically center counter with first line of text.
 *     Offset to compensate misalignment caused by `baseline`.
 * [2] Pseudo-element for the numbering of the ordered variant.
 * [3] Ensure alignment of numbers independent of number width.
 */
.c-list-ui {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid #e4e4e4;
}
.c-list-ui li {
  display: block;
  margin-bottom: 0;
}

.c-list-ui--ordered {
  counter-reset: section;
}

.c-list-ui__item {
  font-size: 1rem;
  padding: 16px 0;
  border-bottom: 1px solid #e4e4e4;
}
.c-list-ui--ordered .c-list-ui__item {
  display: flex; /* [1] */
  align-items: baseline; /* [1] */
}
.c-list-ui--ordered .c-list-ui__item::before { /* [2] */
  font-size: 1rem;
  line-height: 1;
  margin-right: 8px;
  content: counter(section, decimal-leading-zero);
  counter-increment: section;
  /* [1] */
  font-weight: 700;
  font-variant-numeric: tabular-nums; /* [3] */
  /* [3] */
}

/* ------------------------------------*\
    #TAG
\*------------------------------------ */
/**
 * [1] Vertically align close-icon.
 */
.c-tag, .c-compare-and-select__label {
  font-size: 0.75rem;
  display: inline-flex;
  align-items: center;
  padding: 6px 8px;
  background-color: #c4c6c7;
  color: #161718;
  border-radius: 2px;
}
.c-tag--info {
  border-color: #2d71d7;
  background-color: #2d71d7;
  color: #ffffff;
}

.c-tag--success {
  border-color: #37d002;
  background-color: #37d002;
  color: #161718;
}

.c-tag--warning {
  border-color: #cd4a19;
  background-color: #cd4a19;
  color: #ffffff;
}

.c-tag--error {
  border-color: #d92b35;
  background-color: #d92b35;
  color: #ffffff;
}

.c-tag--positive {
  border-color: #37d002;
  background-color: #37d002;
  color: #161718;
}

.c-tag--negative {
  border-color: #d92b35;
  background-color: #d92b35;
  color: #ffffff;
}

.c-tag__label {
  display: block;
  min-height: 20px;
  font-weight: 700;
  text-transform: uppercase;
  line-height: 20px;
  letter-spacing: 0.05em;
}

.c-tag__close {
  padding: 0;
  border: 0;
  background-color: transparent;
  position: relative; /* [1] */
  display: inline-flex; /* [1] */
  height: 20px;
  margin-left: 4px;
  color: inherit;
  cursor: pointer;
}
.c-tag__close:focus {
  outline: 0;
}
.c-tag__close::before {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.25rem;
  content: "\f15a";
}

/**
 * [1] Remove line-height and component height dependency based on icon size.
 * [2] Offset to fit into tag without creating extra space.
 */
.c-tag__label {
  min-height: 0; /* [1] */
  line-height: 1; /* [2] */
}

.c-tag__close {
  margin-top: -6px; /* [2] */
  margin-bottom: -6px; /* [2] */
  margin-right: -8px; /* [2] */
}

/* ------------------------------------*\
    #TAG-LIST
\*------------------------------------ */
/**
 * [1] Reset default list styles.
 * [2] Set font size and line height of list element to the same as the tags in
 *     order to prevent the (larger) base line height from adding spacing on top of
 *     the tags.
 */
.c-tag-list {
  display: flex;
  flex-wrap: wrap;
  column-gap: 8px;
  row-gap: 16px;
  margin: 0; /* [1] */
  padding: 0; /* [1] */
  list-style: none; /* [1] */
}
.c-tag-list li {
  font-size: 1rem;
  /* [2] */
  margin-bottom: 0; /* [1] */
}

/* ------------------------------------*\
    #TOOLTIP
\*------------------------------------ */
/**
 * These are the styles exclusively for the tooltip link, i.e. the trigger for
 * the tooltip popup. The styles for the tooltip popup are handled by Tippy.js
 * to be found in the lib-folder .
 */
.c-tooltip {
  padding: 0;
  border: 0;
  background-color: transparent;
  text-decoration: underline;
  color: inherit;
  cursor: pointer;
}
.c-tooltip:focus {
  outline: 0;
}

.c-tooltip:focus-visible {
  --focus-outline-color: #161718;
  --focus-outline-offset: 1px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

/* ------------------------------------*\
    #ITEM-TEASER
\*------------------------------------ */
/**
 * [1] Increase specificity, so the declaration also works on grey background.
 * [2] Force item wrapping.
 * [3] Rewrite styles to align icon aside to content.
 * [4] Block layout (stacked icon and content) at breakpoint.
 * [5] Optionally disable responsive `font-size`.
 + [6] Use “row” layout when component is wider than `$item-teaser-row-item-break-width`.
 *     @TODO: Refactor to real container queries when browser support is high enough.
 * [7] Break after the title if there are more than 2 body items in total or
 *     the next item is not a button. For browser without `:has` support,
 *     a break is added after the title if there are 3 body items in total.
 * [8] Do not allow a line break in the link or button.
 */
.c-item-teaser {
  display: flex;
  flex-wrap: wrap; /* [2] */
  text-align: center;
}
.c-item-teaser > * {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 100%; /* [2] */
}

.c-item-teaser__icon {
  font-size: 3rem;
  line-height: 1;
  margin-bottom: 16px;
}
.c-item-teaser__icon.c-item-teaser__icon { /* [1] */
  color: #161718;
}
.c-item-teaser--small .c-item-teaser__icon {
  font-size: 2.5rem;
  line-height: 1;
}
.c-item-teaser--inline .c-item-teaser__icon { /* [3] */
  align-self: baseline;
  margin-right: 16px;
  margin-bottom: 0;
}

.c-item-teaser__title {
  font-size: 1.4375rem;
  line-height: 1.2;
  margin-bottom: 8px;
  font-weight: 700;
}
@media (max-width: 720px) {
  .c-item-teaser__title {
    margin-bottom: 8px;
  }
}
.c-item-teaser--inline .c-item-teaser__title {
  margin-bottom: 8px;
}
.c-item-teaser--small.c-item-teaser--inline .c-item-teaser__title {
  margin-bottom: 8px;
}

.c-item-teaser__text {
  margin-bottom: 0;
}

.c-item-teaser__link {
  margin-top: 16px;
}
@media (max-width: 720px) {
  .c-item-teaser__link {
    margin-top: 16px;
  }
}

.c-item-teaser--small {
  --item-teaser-alternative-padding: 16px;
  --item-teaser-row-spacing-columns: 16px;
  --item-teaser-row-spacing-rows: 16px;
}

.c-item-teaser--inline { /* [3] */
  display: flex;
  justify-content: flex-start;
  flex-wrap: nowrap;
  align-items: flex-start;
  text-align: left;
}
.c-item-teaser--inline > * {
  flex-grow: 0;
  flex-shrink: 1;
  flex-basis: auto;
}

.c-item-teaser--block {
  display: flex;
  flex-wrap: wrap; /* [2] */
  text-align: center;
}
.c-item-teaser--block > * {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 100%; /* [2] */
}

.c-item-teaser--alternative {
  padding: var(--item-teaser-alternative-padding, 24px);
  background-color: #f1f1f1;
}

.c-item-teaser--row {
  --container-widths: "0 496";
  display: flex;
  flex-direction: column;
  column-gap: var(--item-teaser-row-spacing-columns, 24px);
  row-gap: var(--item-teaser-row-spacing-rows, 16px);
}
.c-item-teaser--row .c-item-teaser__icon {
  margin-bottom: 0;
}
.c-item-teaser--row > .c-item-teaser__body {
  display: flex;
  flex-direction: column;
  column-gap: var(--item-teaser-row-spacing-columns, 24px);
  row-gap: var(--item-teaser-row-spacing-rows, 16px);
}
.c-item-teaser--row > .c-item-teaser__body > * {
  margin-top: 0;
  margin-bottom: 0;
}
.c-item-teaser--row[data-container-width~="496"] {
  /* [6] */
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  text-align: left;
}
.c-item-teaser--row[data-container-width~="496"] > * {
  flex: 0 1 auto;
}
.c-item-teaser--row[data-container-width~="496"] > .c-item-teaser__icon {
  margin-right: auto;
  margin-bottom: 0;
  margin-left: auto;
}
.c-item-teaser--row[data-container-width~="496"] > .c-item-teaser__body {
  flex-wrap: wrap;
  flex-direction: row;
  align-items: center;
  flex-grow: 1;
  /* stylelint-disable selector-max-specificity, selector-max-combinators, selector-max-compound-selectors */
  /* stylelint-enable */
}
.c-item-teaser--row[data-container-width~="496"] > .c-item-teaser__body > :not(:last-child) {
  flex-grow: 1;
}
@supports not selector(:has(.support)) {
  .c-item-teaser--row[data-container-width~="496"] > .c-item-teaser__body > .c-item-teaser__title:nth-child(1):nth-last-child(3) {
    flex-basis: 100%; /* [7] */
  }
}
.c-item-teaser--row[data-container-width~="496"] > .c-item-teaser__body > .c-item-teaser__title:has(~ :nth-child(3)), .c-item-teaser--row[data-container-width~="496"] > .c-item-teaser__body > .c-item-teaser__title:has(+ :not(.c-item-teaser__link)) {
  flex-basis: 100%; /* [7] */
}
.c-item-teaser--row[data-container-width~="496"] > .c-item-teaser__body > .c-item-teaser__link > * {
  white-space: nowrap; /* [8] */
}

@media (max-width: 720px) {
  .c-item-teaser--inline\@small-screen { /* [3] */
    display: flex;
    justify-content: flex-start;
    flex-wrap: nowrap;
    align-items: flex-start;
    text-align: left;
  }
  .c-item-teaser--inline\@small-screen > * {
    flex-grow: 0;
    flex-shrink: 1;
    flex-basis: auto;
  }
  .c-item-teaser--inline\@small-screen .c-item-teaser__icon {
    align-self: baseline;
    margin-right: 16px;
    margin-bottom: 0;
  }
  .c-item-teaser--inline\@small-screen .c-item-teaser__title {
    margin-bottom: 8px;
  }
  .c-item-teaser--block\@small-screen { /* [4] */
    display: flex;
    flex-wrap: wrap; /* [2] */
    text-align: center;
  }
  .c-item-teaser--block\@small-screen > * {
    flex-grow: 1;
    flex-shrink: 1;
    flex-basis: 100%; /* [2] */
  }
}
/* ------------------------------------*\
    #ITEM-TEASER
\*------------------------------------ */
/*
 * [1] Align all items at the top.
 * [2] Use “row” layout when component is wider
 *     than `$item-teaser-row-item-break-width`.
 */
.c-item-teaser.c-item-teaser--block {
  text-align: left;
}

.c-item-teaser--row {
  align-items: flex-start; /* [1] */
}
.c-item-teaser--row[data-container-width~="0"] {
  /* [2] */
  display: flex;
  justify-content: flex-start;
  flex-wrap: nowrap;
  align-items: flex-start;
  text-align: left;
}
.c-item-teaser--row[data-container-width~="0"] > * {
  flex-grow: 0;
  flex-shrink: 1;
  flex-basis: auto;
}

.c-item-teaser--alternative {
  border: 1px solid #e4e4e4;
  border-radius: 8px;
}

/* ------------------------------------*\
    #LOGO
\*------------------------------------ */
/**
 * [1] In addition to the logo in the HTML we have to assign the logo via CSS
 *     as a background image fallback for the former version without
 *     `img` or `picture` elements in the markup.
 * [2] To hide the fallback background image when the logo image is placed as
 *     `img` or `picture` in the HTML, an additional modifier class is necessary.
 *     To ensure compatibility with Bronson's multibrand development mode,
 *     the background image must not be removed, but must be pushed out of
 *     the container with 'background-position`. This will be reversed in
 *     `packages/bronson-default/styleguide/theme-overrides/styles/_sg-styles.scss`.
 * [3] Just apply a different logo for the background image fallback,
 *     if the small screen variant differs from the large screen variant.
 * [4] Defensively reset any transition, e.g. when `.c-logo` is on an `<a>`
 *     element, that is carrying any transition.
 * [5] Convert `.c-logo__image` to a block-level element to remove unwanted
 *     spacing around the image.
 */
.c-logo {
  display: block;
  width: 114px;
  height: 16px;
  background-image: url("../img/logo.svg"); /* [1] */
  background-size: 100%;
  background-repeat: no-repeat;
  background-position: center;
  transition: none; /* [4] */
  /** a11y **/
  min-height: 44px;
  display: flex;
  align-items: center;
}
@media (max-width: 720px) {
  .c-logo {
    width: 114px;
    height: 16px;
  }
}

.c-logo--has-image {
  background-position: 999px; /* [2] */
  background-repeat: no-repeat; /* [2] */
}

.c-logo__image {
  display: block; /* [5] */
  max-height: 100%;
  /** a11y **/
  width: 100%;
}

.c-logo:focus-visible {
  --focus-outline-color: #161718;
  --focus-outline-offset: 8px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

/* ------------------------------------*\
    #LOGO-BANNER
\*------------------------------------ */
/**
 * [1] Revert all styles to reset potential global link styles.
 * [2] Use CSS custom properties with a fallback to allow some properties
 *     (color, background color, logo height) to be customizable from the markup
 *     (through inline styles). For example:
 *     ```
 *         <a href="#" class="c-logo-banner" style="--logo-banner-color: #ffffff">
 *     ```
 * [3] We set the logo’s dimensions based on height. As a result, the width
 *     can vary and is determined by the logo’s aspect ratio.
 *     `clamp` is used to set a minimum value, a viewport width based value
 *     and a maximum value to make the logo responsive within a given range.
 */
.c-logo-banner {
  font-size: 1.25rem;
  line-height: 1.2;
  display: flex;
  justify-content: center;
  padding: 24px;
  font-weight: 400;
  background-color: var(--logo-banner-background-color, #e4e4e4); /* [2] */
}
@media (min-width: 721px) {
  .c-logo-banner {
    font-size: 1.4375rem;
    line-height: 1.2;
  }
}
@media (min-width: 1281px) {
  .c-logo-banner {
    font-size: 1.5rem;
    line-height: 1.2;
  }
}
@media (max-width: 720px) {
  .c-logo-banner {
    font-size: 1rem;
    gap: 8px;
  }
}

.c-logo-banner__body {
  all: revert; /* [1] */
  display: flex;
  gap: 16px;
  flex-direction: column;
  justify-content: center;
  flex-wrap: wrap;
  align-items: center;
  text-align: center;
  text-decoration: none;
  color: var(--logo-banner-color, #161718); /* [2] */
}

.c-logo-banner__logo {
  height: clamp(var(--logo-banner-logo-height, 32px)/1.5, 8vw, var(--logo-banner-logo-height, 32px)); /* [2] [3] */
}

.c-logo-banner--row {
  min-height: 70px;
  padding: 16px;
}
.c-logo-banner--row .c-logo-banner__body {
  flex-direction: row;
}

/* ------------------------------------*\
    #PAGINATION
\*------------------------------------ */
/**
 * [1] Stepper icon should have same line-height as .c-pagination__link text.
 */
.c-pagination__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
}
.c-pagination__list li {
  display: block;
  margin-bottom: 0;
}

.c-pagination__link {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  display: block;
  margin: 0 4px;
  padding: 0 0;
  border-radius: 4px;
  font-weight: 400;
  text-decoration: none;
  background: transparent;
  color: #161718;
  /* stylelint-disable selector-max-class, selector-max-specificity */
  /* stylelint-enable */
}
.c-pagination__link:not([href]) {
  cursor: inherit;
}
.c-pagination__link:not(.is-disabled):not(.is-active):hover, .c-pagination__link:not(.is-disabled):not(.is-active):focus {
  background: rgba(22, 23, 24, 0.06);
  color: #161718;
}
.c-pagination__link.is-active {
  background: rgba(22, 23, 24, 0.06);
  color: #161718;
}
.c-pagination__link.is-disabled {
  background: transparent;
  color: #9e9fa0;
}
.c-pagination__link[class*=c-pagination__link--stepper-]::before {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: inherit;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  /* [1] */
  font-size: 24px;
}
.c-pagination__link[class*=c-pagination__link--stepper-].is-disabled {
  color: #9e9fa0;
}
.c-pagination__link[class*=c-pagination__link--stepper-].c-pagination__link--stepper-prev {
  margin-right: 32px;
}
.c-pagination__link[class*=c-pagination__link--stepper-].c-pagination__link--stepper-prev::before {
  content: "\f152";
}
.c-pagination__link[class*=c-pagination__link--stepper-].c-pagination__link--stepper-next {
  margin-left: 32px;
}
.c-pagination__link[class*=c-pagination__link--stepper-].c-pagination__link--stepper-next::before {
  content: "\f155";
}

/* ------------------------------------*\
    #PAGINATION
\*------------------------------------ */
/**
 * [1] Unset hover from default link.
 * [2] Focus styles handled via pseudo element.
 */
.c-pagination__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.c-pagination__link:not([class*=c-pagination__link--stepper-]) {
  /** width: 36px; **/
  /** height: 36px; **/
  /** a11y **/
  width: 44px;
  height: 44px;
}
.c-pagination__link[class*=c-pagination__link--stepper-]:not(.is-disabled) {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  scale: 1;
  scale: 1;
}
.c-pagination__link[class*=c-pagination__link--stepper-]:not(.is-disabled)::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  transition: inherit;
}
.c-pagination__link[class*=c-pagination__link--stepper-]:not(.is-disabled):hover::after {
  background-color: rgba(22, 23, 24, 0.06);
}

.c-pagination__link[class*=c-pagination__link--stepper-]:not(.is-disabled):focus-visible::after {
  --focus-outline-color: #161718;
  --focus-outline-offset: 0;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

.c-pagination__link[class*=c-pagination__link--stepper-]:not(.is-disabled):active {
  scale: 0.95;
}

.c-pagination__link[class*=c-pagination__link--stepper-]:not(.is-disabled):hover, .c-pagination__link[class*=c-pagination__link--stepper-]:not(.is-disabled):focus {
  background-color: transparent !important; /* [1] */
}
.c-pagination__link[class*=c-pagination__link--stepper-]:not(.is-disabled):focus-visible {
  outline: 0; /* [2] */
}
.c-pagination__link[class*=c-pagination__link--stepper-]:not(.is-disabled):active {
  scale: 0.95;
}

/* ------------------------------------*\
    #LICENSE-PLATE
\*------------------------------------ */
/**
 * [1] Make all license plates except "xsmall" variant have the same size for <=s breakpoint.
 * [2] Modify license plate with a country-specific background for Netherlands.
 * [3] Prevent the underlining of the country code when it is inside of an abbr element.
 * [4] Avoid sharp edge overlapping rounded corner on horizontal-strip.
 */
.c-license-plate {
  display: inline-flex;
  overflow: hidden;
  border: 1px solid #c9c9c9;
  border-radius: 3px;
  font-weight: 700;
  background-color: #ffffff;
}
.c-license-plate--large {
  height: 40px;
  min-width: 200px;
  font-size: 23px;
  /* [1] */
}
@media (max-width: 720px) {
  .c-license-plate--large {
    height: 32px;
    min-width: 140px;
    font-size: 16px;
  }
}

.c-license-plate--medium {
  height: 40px;
  min-width: 160px;
  font-size: 18px;
  /* [1] */
}
@media (max-width: 720px) {
  .c-license-plate--medium {
    height: 32px;
    min-width: 140px;
    font-size: 16px;
  }
}

.c-license-plate--small {
  height: 32px;
  min-width: 140px;
  font-size: 16px;
  /* [1] */
}
@media (max-width: 720px) {
  .c-license-plate--small {
    height: 32px;
    min-width: 140px;
    font-size: 16px;
  }
}

.c-license-plate--xsmall {
  height: 24px;
  min-width: 110px;
  font-size: 12px;
}

.c-license-plate.c-license-plate--nl { /* [2] */
  background-color: #f7ca45;
}
.c-license-plate.c-license-plate--jp {
  line-height: 1; /* [2] */
}
.c-license-plate.c-license-plate--jp.c-license-plate--large {
  font-size: 21px;
  /* [1] */
}
@media (max-width: 720px) {
  .c-license-plate.c-license-plate--jp.c-license-plate--large {
    height: 32px;
    min-width: auto;
    font-size: 16px;
  }
}
.c-license-plate.c-license-plate--jp.c-license-plate--medium {
  height: 40px;
  min-width: auto;
  font-size: 21px;
  /* [1] */
}
@media (max-width: 720px) {
  .c-license-plate.c-license-plate--jp.c-license-plate--medium {
    height: 32px;
    min-width: auto;
    font-size: 16px;
  }
}
.c-license-plate.c-license-plate--jp.c-license-plate--small {
  height: 32px;
  min-width: auto;
  font-size: 16px;
}
.c-license-plate.c-license-plate--jp.c-license-plate--xsmall {
  height: 32px;
  min-width: auto;
  font-size: 12px;
}
.c-license-plate abbr {
  text-decoration: none; /* [3] */
}

.c-license-plate__registration-number {
  flex-grow: 1;
  flex-shrink: 0;
  flex-basis: auto;
  align-self: center;
  padding: 0 0.2em;
  font-family: inherit;
  text-align: center;
  white-space: nowrap;
}
.c-license-plate--jp .c-license-plate__registration-number {
  display: flex;
  flex-direction: column;
  margin-top: 0;
  padding-right: 4px;
  padding-left: 0;
  font-weight: 700;
  text-align: left;
}

.c-license-plate__registration-top-bar {
  margin-bottom: 2px;
  font-weight: 700;
}
.c-license-plate--large .c-license-plate__registration-top-bar {
  font-size: 9px;
}
@media (max-width: 720px) {
  .c-license-plate--large .c-license-plate__registration-top-bar {
    font-size: 7px;
  }
}
.c-license-plate--medium .c-license-plate__registration-top-bar {
  font-size: 9px;
}
@media (max-width: 720px) {
  .c-license-plate--medium .c-license-plate__registration-top-bar {
    font-size: 7px;
  }
}
.c-license-plate--small .c-license-plate__registration-top-bar {
  font-size: 7px;
}
.c-license-plate--xsmall .c-license-plate__registration-top-bar {
  font-size: 7px;
}

.c-license-plate__horizontal-strip {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  align-items: center;
  align-self: stretch;
  overflow: hidden; /* [4] */
}
.c-license-plate--large .c-license-plate__horizontal-strip {
  min-width: 30px;
  font-size: 18px;
}
@media (max-width: 720px) {
  .c-license-plate--large .c-license-plate__horizontal-strip {
    min-width: 20px;
    font-size: 12px;
  }
}
.c-license-plate--medium .c-license-plate__horizontal-strip {
  min-width: 24px;
  font-size: 14px;
}
@media (max-width: 720px) {
  .c-license-plate--medium .c-license-plate__horizontal-strip {
    min-width: 20px;
    font-size: 12px;
  }
}
.c-license-plate--small .c-license-plate__horizontal-strip {
  min-width: 20px;
  font-size: 12px;
}
@media (max-width: 720px) {
  .c-license-plate--small .c-license-plate__horizontal-strip {
    min-width: 20px;
    font-size: 12px;
  }
}
.c-license-plate--xsmall .c-license-plate__horizontal-strip {
  min-width: 16px;
  font-size: 10px;
}
.c-license-plate__horizontal-strip.c-license-plate__horizontal-strip--eu {
  background-color: #003399;
}
.c-license-plate__horizontal-strip.c-license-plate__horizontal-strip--jp {
  align-items: center;
  justify-content: flex-end;
  padding-bottom: 1em;
}
.c-license-plate--large .c-license-plate__horizontal-strip.c-license-plate__horizontal-strip--jp {
  min-width: 18px;
  font-size: 9px;
}
@media (max-width: 720px) {
  .c-license-plate--large .c-license-plate__horizontal-strip.c-license-plate__horizontal-strip--jp {
    min-width: 14px;
    font-size: 7px;
  }
}
.c-license-plate--medium .c-license-plate__horizontal-strip.c-license-plate__horizontal-strip--jp {
  min-width: 18px;
  font-size: 9px;
}
@media (max-width: 720px) {
  .c-license-plate--medium .c-license-plate__horizontal-strip.c-license-plate__horizontal-strip--jp {
    min-width: 14px;
    font-size: 7px;
  }
}
.c-license-plate--small .c-license-plate__horizontal-strip.c-license-plate__horizontal-strip--jp {
  min-width: 14px;
  font-size: 7px;
}
.c-license-plate--xsmall .c-license-plate__horizontal-strip.c-license-plate__horizontal-strip--jp {
  min-width: 14px;
  font-size: 7px;
}

.c-license-plate__eu-stars::before {
  content: "";
  display: block;
  width: 0.875em;
  height: 0.875em;
  background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" xml:space="preserve"><path fill="%23ffcc00" d="M227 87c3-11.1 6.3-22.1 10-33-8.6-7.1-17.7-13.8-27-20-1-1 3-1 17-1l18-1c4.4-10.4 8.1-21.1 11-32l6 16 5 16 18 1 17 1-13 10-14 10 5 17c5 14 5 16 4 16-9.6-5.9-18.9-12.3-28-19l-14 9c-13 10-15 11-15 10zm0 425c2.9-11.4 6.3-22.8 10-34-8.6-7.1-17.7-13.8-27-20h17l18-1c4.4-10.4 8.1-21.1 11-32l6 15 5 17 18 1h17l-13 11-14 10 5 16c5 15 5 17 4 17-9.6-6.3-19-12.9-28-20l-14 10c-13 10-15 11-15 10zm210-213c2.6-11.1 5.6-22.1 9-33-8.6-7.1-17.7-13.8-27-20l17-1h18c4.5-10.7 8.1-21.8 11-33 3.6 10.8 7.6 21.5 12 32l18 1 17 1-14 10-13 11 4 16 5 17c-9.6-6.3-19-12.9-28-20l-14 10-15 9zm-419 0c2.6-11.1 5.6-22.1 9-33-8.6-7.1-17.7-13.8-27-20l17-1h18c4.5-10.7 8.1-21.8 11-33 3.6 10.8 7.6 21.5 12 32l18 1 17 1-14 10-14 11 5 16 5 17c-10-6.2-19.6-12.9-29-20l-14 10-14 9zm24-105c3-11.1 6.3-22.1 10-33-8.6-7.1-17.7-13.8-27-20l17-1h18c4.5-10.7 8.1-21.8 11-33 3.6 10.8 7.6 21.5 12 32l17 1 18 1-14 10-14 11 5 16 5 17c-10-6.2-19.6-12.9-29-20l-14 10c-13 9-15 10-15 9zm371 0c3-11.1 6.3-22.1 10-33-8.6-7.1-17.7-13.8-27-20l17-1h18c4.5-10.7 8.1-21.8 11-33l6 16 5 16 18 1 17 1-13 10-14 11 5 16c5 15 5 17 4 17-9.6-6.3-19-12.9-28-20l-14 10c-13 9-15 10-15 9zM49 414c2.6-11.1 5.6-22.1 9-33-8.6-7.1-17.7-13.8-27-20l18-1 17-1c4.4-10.4 8.1-21.1 11-32 1-1 2 1 7 16l5 16 18 1 17 1-13 10-14 10 5 16 4 17c-9.6-5.9-18.9-12.3-28-19l-14 9c-13 10-15 11-15 10zm358 0c2.6-11.1 5.6-22.1 9-33-8.3-7.1-17-13.8-26-20-1-1 3-1 17-1l18-1c4.4-10.4 8.1-21.1 11-32l6 16 5 16 18 1 17 1-13 10-14 10 5 16c5 15 5 17 4 17-9.6-5.9-18.9-12.3-28-19l-14 9c-13 10-15 11-15 10zM121 115c3-11.1 6.3-22.1 10-33-8.6-7.1-17.7-13.8-27-20l17-1 18-1c4.4-10.4 8.1-21.1 11-32 3.6 10.8 7.6 21.5 12 32l17 1 18 1-14 10-14 10 5 17 5 17c-10-6.2-19.6-12.9-29-20l-14 9c-13 10-15 11-15 10zm212 0c2.6-11.1 5.6-22.1 9-33-8.6-7.1-17.7-13.8-27-20l17-1 18-1c4.4-10.4 8.1-21.1 11-32 3.6 10.8 7.6 21.5 12 32l18 1 17 1-14 10-13 10c-1 1 2 8 4 17l5 17c-9.6-6.3-19-12.9-28-20l-14 9-15 10zM122 483c2.6-11.1 5.6-22.1 9-33-8.6-7.1-17.7-13.8-27-20l17-1 18-1c4.4-10.4 8.1-21.1 11-32 3.6 10.8 7.6 21.5 12 32l18 1 17 1-14 10-14 10 5 16 5 17c-9.9-5.9-19.6-12.3-29-19l-14 9-14 10zm211 0c3-11.1 6.3-22.1 10-33-8.6-7.1-17.7-13.8-27-20l17-1 18-1c4.4-10.4 8.1-21.1 11-32l6 16 5 16 18 1 18 1-14 10-14 10 5 16 5 17c-9.9-5.9-19.6-12.3-29-19l-14 9c-13 10-15 11-15 10z"/></svg>');
  background-repeat: no-repeat;
}

.c-license-plate__country-code {
  line-height: 1;
  color: #ffffff;
}

/* ------------------------------------*\
    #SITE-NAV
\*------------------------------------ */
/**
 * [1]  If there is a `.site-nav--right`, preserve space between the two navs.
 * [2]  Align the toggle to the right side.
 * [3]  Center `.c-site-nav__toggle-icon` and `.c-site-nav__toggle-close-label`.
 * [4]  Hide the label only visibly and not from screen readers. Note that the
 *      label is set to `display: none` when the menu is not expanded since the
 *      label is used exclusively for the close action.
 * [5]  We can either use an icon from the icon font or use a CSS-built triangle.
 *      Control that with the `$site-nav-link-icon-is-custom` feature flag.
 * [6]  Always set the value of `flex-direction` to the opposite value if
 *      `.is-reversed` is used and set it to `row` at the breakpoint.
 * [7]  Add spacing between label and icon, depending on the default position
 *      of the icon (before or after the label).
 * [8]  Make sure the site nav dropdown is aligned to the `.c-site-nav__item.`
 *      and is not overlapping the header.
 * [9]  Place list item on top when collapsed.
 * [10] Reset default list style. Similar to `list-bare` mixin but only
 *      necessary styles for this component and with less generic selectors
 *      and output.
 * [11] Reset default `<button>` styles.
 * [12] If `.c-site-nav__link` is a `button` (triggering a dropdown), hide the
 *      focus outline if the dropdown gets expanded. The focus outline visually
 *      differentiates buttons from links when using a pointing device (such as
 *      a mouse) – which is not wanted here. The transition delay is necessary
 *      to avoid a short flickering of the outline. When navigating by keyboard
 *      the focus outline should be visible for accessibility reasons.
 * [13] Some brands (e.g. VW6) don't need flex-direction.
 * [14] Set margin for reversed link icons, depending on the default position
 *      of the icon (before or after the label). The selector had to be
 *      duplicated because the `site-nav-breakpoint` mixin does not work with
 *      nested selector referencing parent (`&`).
 */
.c-site-nav {
  display: flex;
  width: 100%;
  height: 64px;
}
@media (max-width: 960px) {
  .c-site-nav {
    height: 64px;
  }
}
.c-site-nav__toggle {
  padding: 0;
  border: 0;
  background-color: transparent;
  display: none;
  color: currentColor;
  margin-left: auto; /* [2] */
}
.c-site-nav__toggle:focus {
  outline: 0;
}
@media (max-width: 960px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav__toggle {
    display: flex; /* [3] */
    justify-content: center;
    align-items: center; /* [3] */
  }
}
@media (max-width: 1920px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav__toggle {
    display: flex; /* [3] */
    justify-content: center;
    align-items: center; /* [3] */
  }
}
@media (max-width: 1600px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav__toggle {
    display: flex; /* [3] */
    justify-content: center;
    align-items: center; /* [3] */
  }
}
@media (max-width: 1280px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav__toggle {
    display: flex; /* [3] */
    justify-content: center;
    align-items: center; /* [3] */
  }
}
@media (max-width: 960px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav__toggle {
    display: flex; /* [3] */
    justify-content: center;
    align-items: center; /* [3] */
  }
}
@media (max-width: 720px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav__toggle {
    display: flex; /* [3] */
    justify-content: center;
    align-items: center; /* [3] */
  }
}
@media (max-width: 480px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav__toggle {
    display: flex; /* [3] */
    justify-content: center;
    align-items: center; /* [3] */
  }
}
.c-site-nav__toggle-open-label {
  position: absolute !important; /* stylelint-disable-line itcss/no-at-important */
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
}

.c-site-nav__toggle-close-label {
  display: none;
}

.c-site-nav__toggle-icon {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.5rem;
  line-height: 1;
}
.c-site-nav__toggle-icon::before {
  content: "\f1ad";
}
.c-site-nav__toggle[aria-expanded=true] .c-site-nav__toggle-icon ~ .c-site-nav__toggle-open-label {
  display: none;
}
.c-site-nav__toggle[aria-expanded=true] .c-site-nav__toggle-icon ~ .c-site-nav__toggle-close-label {
  display: block;
  position: absolute !important; /* stylelint-disable-line itcss/no-at-important */
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  /* [4] */
}

.c-site-nav__panel {
  display: flex;
  width: 100%;
}
@media (max-width: 960px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav__panel {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
  }
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav__panel:not(.is-collapsed) {
    display: flex;
  }
}
@media (max-width: 1920px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav__panel {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
  }
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav__panel:not(.is-collapsed) {
    display: flex;
  }
}
@media (max-width: 1600px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav__panel {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
  }
  .c-site-nav.c-site-nav--break\@xl .c-site-nav__panel:not(.is-collapsed) {
    display: flex;
  }
}
@media (max-width: 1280px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav__panel {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
  }
  .c-site-nav.c-site-nav--break\@l .c-site-nav__panel:not(.is-collapsed) {
    display: flex;
  }
}
@media (max-width: 960px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav__panel {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
  }
  .c-site-nav.c-site-nav--break\@m .c-site-nav__panel:not(.is-collapsed) {
    display: flex;
  }
}
@media (max-width: 720px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav__panel {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
  }
  .c-site-nav.c-site-nav--break\@s .c-site-nav__panel:not(.is-collapsed) {
    display: flex;
  }
}
@media (max-width: 480px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav__panel {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
  }
  .c-site-nav.c-site-nav--break\@xs .c-site-nav__panel:not(.is-collapsed) {
    display: flex;
  }
}

.c-site-nav__navs {
  display: flex;
  justify-content: space-between;
  width: 100%;
}
@media (max-width: 960px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav__navs {
    padding-top: 24px;
    padding-left: 96px;
    padding-right: 96px;
    padding-bottom: 24px;
    flex-direction: column; /* [13] */
    background-color: #ffffff;
  }
}
@media (max-width: 960px) and (max-width: 960px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav__navs {
    padding-left: 48px;
    padding-right: 48px;
  }
}
@media (max-width: 960px) and (max-width: 720px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav__navs {
    padding-left: 24px;
    padding-right: 24px;
  }
}
@media (max-width: 960px) and (max-width: 480px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav__navs {
    padding-left: 12px;
    padding-right: 12px;
  }
}
@media (max-width: 1920px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav__navs {
    padding-top: 24px;
    padding-left: 96px;
    padding-right: 96px;
    padding-bottom: 24px;
    flex-direction: column; /* [13] */
    background-color: #ffffff;
  }
}
@media (max-width: 1920px) and (max-width: 960px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav__navs {
    padding-left: 48px;
    padding-right: 48px;
  }
}
@media (max-width: 1920px) and (max-width: 720px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav__navs {
    padding-left: 24px;
    padding-right: 24px;
  }
}
@media (max-width: 1920px) and (max-width: 480px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav__navs {
    padding-left: 12px;
    padding-right: 12px;
  }
}
@media (max-width: 1600px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav__navs {
    padding-top: 24px;
    padding-left: 96px;
    padding-right: 96px;
    padding-bottom: 24px;
    flex-direction: column; /* [13] */
    background-color: #ffffff;
  }
}
@media (max-width: 1600px) and (max-width: 960px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav__navs {
    padding-left: 48px;
    padding-right: 48px;
  }
}
@media (max-width: 1600px) and (max-width: 720px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav__navs {
    padding-left: 24px;
    padding-right: 24px;
  }
}
@media (max-width: 1600px) and (max-width: 480px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav__navs {
    padding-left: 12px;
    padding-right: 12px;
  }
}
@media (max-width: 1280px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav__navs {
    padding-top: 24px;
    padding-left: 96px;
    padding-right: 96px;
    padding-bottom: 24px;
    flex-direction: column; /* [13] */
    background-color: #ffffff;
  }
}
@media (max-width: 1280px) and (max-width: 960px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav__navs {
    padding-left: 48px;
    padding-right: 48px;
  }
}
@media (max-width: 1280px) and (max-width: 720px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav__navs {
    padding-left: 24px;
    padding-right: 24px;
  }
}
@media (max-width: 1280px) and (max-width: 480px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav__navs {
    padding-left: 12px;
    padding-right: 12px;
  }
}
@media (max-width: 960px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav__navs {
    padding-top: 24px;
    padding-left: 96px;
    padding-right: 96px;
    padding-bottom: 24px;
    flex-direction: column; /* [13] */
    background-color: #ffffff;
  }
}
@media (max-width: 960px) and (max-width: 960px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav__navs {
    padding-left: 48px;
    padding-right: 48px;
  }
}
@media (max-width: 960px) and (max-width: 720px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav__navs {
    padding-left: 24px;
    padding-right: 24px;
  }
}
@media (max-width: 960px) and (max-width: 480px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav__navs {
    padding-left: 12px;
    padding-right: 12px;
  }
}
@media (max-width: 720px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav__navs {
    padding-top: 24px;
    padding-left: 96px;
    padding-right: 96px;
    padding-bottom: 24px;
    flex-direction: column; /* [13] */
    background-color: #ffffff;
  }
}
@media (max-width: 720px) and (max-width: 960px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav__navs {
    padding-left: 48px;
    padding-right: 48px;
  }
}
@media (max-width: 720px) and (max-width: 720px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav__navs {
    padding-left: 24px;
    padding-right: 24px;
  }
}
@media (max-width: 720px) and (max-width: 480px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav__navs {
    padding-left: 12px;
    padding-right: 12px;
  }
}
@media (max-width: 480px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav__navs {
    padding-top: 24px;
    padding-left: 96px;
    padding-right: 96px;
    padding-bottom: 24px;
    flex-direction: column; /* [13] */
    background-color: #ffffff;
  }
}
@media (max-width: 480px) and (max-width: 960px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav__navs {
    padding-left: 48px;
    padding-right: 48px;
  }
}
@media (max-width: 480px) and (max-width: 720px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav__navs {
    padding-left: 24px;
    padding-right: 24px;
  }
}
@media (max-width: 480px) and (max-width: 480px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav__navs {
    padding-left: 12px;
    padding-right: 12px;
  }
}

.c-site-nav__nav {
  display: flex;
  align-items: center;
  margin: 0; /* [10] */
  padding: 0; /* [10] */
  list-style: none; /* [10] */
}
@media (max-width: 960px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav__nav {
    flex-direction: column;
    align-items: flex-end;
  }
}
@media (max-width: 1920px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav__nav {
    flex-direction: column;
    align-items: flex-end;
  }
}
@media (max-width: 1600px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav__nav {
    flex-direction: column;
    align-items: flex-end;
  }
}
@media (max-width: 1280px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav__nav {
    flex-direction: column;
    align-items: flex-end;
  }
}
@media (max-width: 960px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav__nav {
    flex-direction: column;
    align-items: flex-end;
  }
}
@media (max-width: 720px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav__nav {
    flex-direction: column;
    align-items: flex-end;
  }
}
@media (max-width: 480px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav__nav {
    flex-direction: column;
    align-items: flex-end;
  }
}
.c-site-nav__nav:not(:last-child) {
  margin-right: 16px; /* [1] */
}
@media (max-width: 960px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav__nav:not(:last-child) {
    margin-right: 0;
  }
}
@media (max-width: 1920px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav__nav:not(:last-child) {
    margin-right: 0;
  }
}
@media (max-width: 1600px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav__nav:not(:last-child) {
    margin-right: 0;
  }
}
@media (max-width: 1280px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav__nav:not(:last-child) {
    margin-right: 0;
  }
}
@media (max-width: 960px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav__nav:not(:last-child) {
    margin-right: 0;
  }
}
@media (max-width: 720px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav__nav:not(:last-child) {
    margin-right: 0;
  }
}
@media (max-width: 480px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav__nav:not(:last-child) {
    margin-right: 0;
  }
}

.c-site-nav__item.c-site-nav__item {
  position: relative; /* [8] */
  display: flex;
  align-items: center;
  margin-bottom: 0; /* [10] */
}
@media (min-width: 961px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav__item.c-site-nav__item {
    height: 100%; /* [8] */
  }
}
@media (min-width: 1921px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav__item.c-site-nav__item {
    height: 100%; /* [8] */
  }
}
@media (min-width: 1601px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav__item.c-site-nav__item {
    height: 100%; /* [8] */
  }
}
@media (min-width: 1281px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav__item.c-site-nav__item {
    height: 100%; /* [8] */
  }
}
@media (min-width: 961px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav__item.c-site-nav__item {
    height: 100%; /* [8] */
  }
}
@media (min-width: 721px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav__item.c-site-nav__item {
    height: 100%; /* [8] */
  }
}
@media (min-width: 481px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav__item.c-site-nav__item {
    height: 100%; /* [8] */
  }
}
.c-site-nav.c-site-nav--break\@none .c-site-nav__item.c-site-nav__item {
  height: 100%; /* [8] */
}
@media (max-width: 960px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav__item.c-site-nav__item {
    flex-direction: column;
    width: 100%;
  }
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav__item.c-site-nav__item.c-site-nav__item--top-at-breakpoint {
    order: -1; /* [9] */
  }
}
@media (max-width: 1920px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav__item.c-site-nav__item {
    flex-direction: column;
    width: 100%;
  }
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav__item.c-site-nav__item.c-site-nav__item--top-at-breakpoint {
    order: -1; /* [9] */
  }
}
@media (max-width: 1600px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav__item.c-site-nav__item {
    flex-direction: column;
    width: 100%;
  }
  .c-site-nav.c-site-nav--break\@xl .c-site-nav__item.c-site-nav__item.c-site-nav__item--top-at-breakpoint {
    order: -1; /* [9] */
  }
}
@media (max-width: 1280px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav__item.c-site-nav__item {
    flex-direction: column;
    width: 100%;
  }
  .c-site-nav.c-site-nav--break\@l .c-site-nav__item.c-site-nav__item.c-site-nav__item--top-at-breakpoint {
    order: -1; /* [9] */
  }
}
@media (max-width: 960px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav__item.c-site-nav__item {
    flex-direction: column;
    width: 100%;
  }
  .c-site-nav.c-site-nav--break\@m .c-site-nav__item.c-site-nav__item.c-site-nav__item--top-at-breakpoint {
    order: -1; /* [9] */
  }
}
@media (max-width: 720px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav__item.c-site-nav__item {
    flex-direction: column;
    width: 100%;
  }
  .c-site-nav.c-site-nav--break\@s .c-site-nav__item.c-site-nav__item.c-site-nav__item--top-at-breakpoint {
    order: -1; /* [9] */
  }
}
@media (max-width: 480px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav__item.c-site-nav__item {
    flex-direction: column;
    width: 100%;
  }
  .c-site-nav.c-site-nav--break\@xs .c-site-nav__item.c-site-nav__item.c-site-nav__item--top-at-breakpoint {
    order: -1; /* [9] */
  }
}
.c-site-nav__item.c-site-nav__item:not(:last-child) {
  margin-right: 24px;
}
@media (max-width: 960px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav__item.c-site-nav__item:not(:last-child) {
    margin-right: 0;
  }
}
@media (max-width: 1920px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav__item.c-site-nav__item:not(:last-child) {
    margin-right: 0;
  }
}
@media (max-width: 1600px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav__item.c-site-nav__item:not(:last-child) {
    margin-right: 0;
  }
}
@media (max-width: 1280px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav__item.c-site-nav__item:not(:last-child) {
    margin-right: 0;
  }
}
@media (max-width: 960px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav__item.c-site-nav__item:not(:last-child) {
    margin-right: 0;
  }
}
@media (max-width: 720px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav__item.c-site-nav__item:not(:last-child) {
    margin-right: 0;
  }
}
@media (max-width: 480px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav__item.c-site-nav__item:not(:last-child) {
    margin-right: 0;
  }
}

.c-site-nav__link {
  padding: 0;
  border: 0;
  background-color: transparent;
  /* [11] */
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-direction: row;
  text-decoration: none;
  /** a11y **/
  min-height: 44px;
}
@media (max-width: 960px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav__link {
    padding-top: 12px;
    padding-left: 16px;
    padding-right: 16px;
    padding-bottom: 12px;
    flex-direction: row; /* [6] */
    width: 100%;
  }
}
@media (max-width: 1920px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav__link {
    padding-top: 12px;
    padding-left: 16px;
    padding-right: 16px;
    padding-bottom: 12px;
    flex-direction: row; /* [6] */
    width: 100%;
  }
}
@media (max-width: 1600px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav__link {
    padding-top: 12px;
    padding-left: 16px;
    padding-right: 16px;
    padding-bottom: 12px;
    flex-direction: row; /* [6] */
    width: 100%;
  }
}
@media (max-width: 1280px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav__link {
    padding-top: 12px;
    padding-left: 16px;
    padding-right: 16px;
    padding-bottom: 12px;
    flex-direction: row; /* [6] */
    width: 100%;
  }
}
@media (max-width: 960px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav__link {
    padding-top: 12px;
    padding-left: 16px;
    padding-right: 16px;
    padding-bottom: 12px;
    flex-direction: row; /* [6] */
    width: 100%;
  }
}
@media (max-width: 720px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav__link {
    padding-top: 12px;
    padding-left: 16px;
    padding-right: 16px;
    padding-bottom: 12px;
    flex-direction: row; /* [6] */
    width: 100%;
  }
}
@media (max-width: 480px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav__link {
    padding-top: 12px;
    padding-left: 16px;
    padding-right: 16px;
    padding-bottom: 12px;
    flex-direction: row; /* [6] */
    width: 100%;
  }
}
.c-site-nav__link.is-reversed {
  flex-direction: row-reverse; /* [6] */
}

button.c-site-nav__link {
  outline-width: 0; /* [12] */
}
button.c-site-nav__link:focus {
  outline-width: initial; /* [12] */
  transition: 0s outline 0.2s; /* [12] */
}
button.c-site-nav__link[aria-expanded=true]:focus {
  outline-width: 0; /* [12] */
  transition-delay: 0s; /* [12] */
}

.c-site-nav__link-label {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  font-size: 1rem;
  line-height: 1.5;
  font-weight: 400;
  color: #161718;
}
@media (max-width: 960px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav__link-label {
    text-align: left;
  }
}
@media (max-width: 1920px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav__link-label {
    text-align: left;
  }
}
@media (max-width: 1600px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav__link-label {
    text-align: left;
  }
}
@media (max-width: 1280px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav__link-label {
    text-align: left;
  }
}
@media (max-width: 960px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav__link-label {
    text-align: left;
  }
}
@media (max-width: 720px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav__link-label {
    text-align: left;
  }
}
@media (max-width: 480px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav__link-label {
    text-align: left;
  }
}
.c-site-nav__link:hover .c-site-nav__link-label, .c-site-nav__link:focus .c-site-nav__link-label {
  color: #161718;
}
.c-site-nav__link.is-active .c-site-nav__link-label, .c-site-nav__link[aria-expanded=true] .c-site-nav__link-label {
  color: #161718;
}
.c-site-nav__link-icon {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  display: flex;
  /* [7] */
  margin-left: 0;
  font-size: 1.25rem;
  line-height: 1;
  color: #161718;
}
@media (max-width: 960px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav__link-icon {
    font-size: 1.25rem;
    line-height: 1;
  }
}
@media (max-width: 1920px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav__link-icon {
    font-size: 1.25rem;
    line-height: 1;
  }
}
@media (max-width: 1600px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav__link-icon {
    font-size: 1.25rem;
    line-height: 1;
  }
}
@media (max-width: 1280px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav__link-icon {
    font-size: 1.25rem;
    line-height: 1;
  }
}
@media (max-width: 960px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav__link-icon {
    font-size: 1.25rem;
    line-height: 1;
  }
}
@media (max-width: 720px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav__link-icon {
    font-size: 1.25rem;
    line-height: 1;
  }
}
@media (max-width: 480px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav__link-icon {
    font-size: 1.25rem;
    line-height: 1;
  }
}
.c-site-nav__link-icon::after {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  content: "\f151";
}
.c-site-nav__link:hover .c-site-nav__link-icon, .c-site-nav__link:focus .c-site-nav__link-icon {
  color: #161718;
}
.c-site-nav__link.is-active .c-site-nav__link-icon, .c-site-nav__link[aria-expanded=true] .c-site-nav__link-icon {
  color: #161718;
}
/* stylelint-disable-next-line no-duplicate-selectors */
.c-site-nav__link.is-reversed { /* [14] */ }
@media (min-width: 961px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav__link.is-reversed .c-site-nav__link-icon {
    margin-right: 0;
    margin-left: 0;
  }
}
@media (min-width: 1921px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav__link.is-reversed .c-site-nav__link-icon {
    margin-right: 0;
    margin-left: 0;
  }
}
@media (min-width: 1601px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav__link.is-reversed .c-site-nav__link-icon {
    margin-right: 0;
    margin-left: 0;
  }
}
@media (min-width: 1281px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav__link.is-reversed .c-site-nav__link-icon {
    margin-right: 0;
    margin-left: 0;
  }
}
@media (min-width: 961px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav__link.is-reversed .c-site-nav__link-icon {
    margin-right: 0;
    margin-left: 0;
  }
}
@media (min-width: 721px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav__link.is-reversed .c-site-nav__link-icon {
    margin-right: 0;
    margin-left: 0;
  }
}
@media (min-width: 481px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav__link.is-reversed .c-site-nav__link-icon {
    margin-right: 0;
    margin-left: 0;
  }
}
.c-site-nav.c-site-nav--break\@none .c-site-nav__link.is-reversed .c-site-nav__link-icon {
  margin-right: 0;
  margin-left: 0;
}

/* ------------------------------------*\
    #SITE-NAV
\*------------------------------------ */
/**
 * [1] Flip the icon around the horizontal axis so that the chevrons point in the
 *     opposite direction in the expanded state.
 * [2] Add spacing and shadow to panel in small viewports.
 * [3] Set an invisible border to prevent layout shifts when the link gets active.
 */
@media (max-width: 960px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav__panel {
    /* [2] */
    left: 16px;
    width: calc(100% - 2 * 16px);
    overflow: hidden;
    margin-top: 8px;
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
  }
}
@media (max-width: 1920px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav__panel {
    /* [2] */
    left: 16px;
    width: calc(100% - 2 * 16px);
    overflow: hidden;
    margin-top: 8px;
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
  }
}
@media (max-width: 1600px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav__panel {
    /* [2] */
    left: 16px;
    width: calc(100% - 2 * 16px);
    overflow: hidden;
    margin-top: 8px;
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
  }
}
@media (max-width: 1280px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav__panel {
    /* [2] */
    left: 16px;
    width: calc(100% - 2 * 16px);
    overflow: hidden;
    margin-top: 8px;
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
  }
}
@media (max-width: 960px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav__panel {
    /* [2] */
    left: 16px;
    width: calc(100% - 2 * 16px);
    overflow: hidden;
    margin-top: 8px;
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
  }
}
@media (max-width: 720px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav__panel {
    /* [2] */
    left: 16px;
    width: calc(100% - 2 * 16px);
    overflow: hidden;
    margin-top: 8px;
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
  }
}
@media (max-width: 480px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav__panel {
    /* [2] */
    left: 16px;
    width: calc(100% - 2 * 16px);
    overflow: hidden;
    margin-top: 8px;
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
  }
}

.c-site-nav__toggle {
  align-self: center;
}

.c-site-nav__toggle[aria-expanded=true] .c-site-nav__toggle-icon::before {
  content: "\f15a";
}

.c-site-nav__link-icon {
  /* stylelint-disable order/order */
  --transition-property: transform;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
}
.c-site-nav__link[aria-expanded=true] .c-site-nav__link-icon {
  transform: scaleY(-1); /* [1] */
}

.c-site-nav__link .c-site-nav__link-label {
  border-bottom: 2px solid transparent; /* [3] */
}
.c-site-nav__link[aria-expanded=true] .c-site-nav__link-label, .c-site-nav__link.is-active .c-site-nav__link-label {
  border-bottom-color: currentColor;
}
.c-site-nav__link:focus-visible {
  --focus-outline-color: #161718;
  --focus-outline-offset: 8px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}
.c-site-nav__link:focus {
  outline-width: 2px !important; /* stylelint-disable-line itcss/no-at-important */
}

/* ------------------------------------*\
    #SITE-NAV-DROPDOWN
\*------------------------------------ */
/**
 * [1] If there is more then one `.c-site-nav__nav`, always align the dropdown
 *     of the last `.c-site-nav__nav` to the right.
 * [2] Make the transition just available for viewport width above breakpoint.
 * [3] Change the list's position for fly-in and fly-out effects.
 * [4] At breakpoint, the dropdown always has full width.
 * [5] Defensively reset any default list-style properties.
 */
.c-site-nav-dropdown {
  max-height: 0;
  visibility: hidden;
  overflow: hidden;
}
@media (min-width: 961px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    width: 312px;
  }
}
@media (min-width: 1921px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    width: 312px;
  }
}
@media (min-width: 1601px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    width: 312px;
  }
}
@media (min-width: 1281px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    width: 312px;
  }
}
@media (min-width: 961px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    width: 312px;
  }
}
@media (min-width: 721px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    width: 312px;
  }
}
@media (min-width: 481px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    width: 312px;
  }
}
.c-site-nav.c-site-nav--break\@none .c-site-nav-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  width: 312px;
}
@media (max-width: 960px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav-dropdown {
    width: 100%; /* [4] */
  }
}
@media (max-width: 1920px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav-dropdown {
    width: 100%; /* [4] */
  }
}
@media (max-width: 1600px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav-dropdown {
    width: 100%; /* [4] */
  }
}
@media (max-width: 1280px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav-dropdown {
    width: 100%; /* [4] */
  }
}
@media (max-width: 960px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav-dropdown {
    width: 100%; /* [4] */
  }
}
@media (max-width: 720px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav-dropdown {
    width: 100%; /* [4] */
  }
}
@media (max-width: 480px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav-dropdown {
    width: 100%; /* [4] */
  }
}
.c-site-nav-dropdown:not(.is-collapsed) {
  max-height: none;
  visibility: visible;
}

@media (min-width: 961px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav__nav:last-child:not(:only-child) .c-site-nav-dropdown {
    right: 0; /* [1] */
    left: auto; /* [1] */
  }
}
@media (min-width: 1921px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav__nav:last-child:not(:only-child) .c-site-nav-dropdown {
    right: 0; /* [1] */
    left: auto; /* [1] */
  }
}
@media (min-width: 1601px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav__nav:last-child:not(:only-child) .c-site-nav-dropdown {
    right: 0; /* [1] */
    left: auto; /* [1] */
  }
}
@media (min-width: 1281px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav__nav:last-child:not(:only-child) .c-site-nav-dropdown {
    right: 0; /* [1] */
    left: auto; /* [1] */
  }
}
@media (min-width: 961px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav__nav:last-child:not(:only-child) .c-site-nav-dropdown {
    right: 0; /* [1] */
    left: auto; /* [1] */
  }
}
@media (min-width: 721px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav__nav:last-child:not(:only-child) .c-site-nav-dropdown {
    right: 0; /* [1] */
    left: auto; /* [1] */
  }
}
@media (min-width: 481px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav__nav:last-child:not(:only-child) .c-site-nav-dropdown {
    right: 0; /* [1] */
    left: auto; /* [1] */
  }
}
.c-site-nav.c-site-nav--break\@none .c-site-nav__nav:last-child:not(:only-child) .c-site-nav-dropdown {
  right: 0; /* [1] */
  left: auto; /* [1] */
}

.c-site-nav-dropdown__list {
  margin: 0; /* [5] */
  padding: 0 0;
  transform: translateY(-100%); /* [3] */
  list-style: none; /* [5] */
  background-color: #ffffff;
}
@media (max-width: 960px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav-dropdown__list {
    padding-top: 0;
    padding-left: 24px;
    padding-right: 24px;
    padding-bottom: 0;
  }
}
@media (max-width: 1920px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav-dropdown__list {
    padding-top: 0;
    padding-left: 24px;
    padding-right: 24px;
    padding-bottom: 0;
  }
}
@media (max-width: 1600px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav-dropdown__list {
    padding-top: 0;
    padding-left: 24px;
    padding-right: 24px;
    padding-bottom: 0;
  }
}
@media (max-width: 1280px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav-dropdown__list {
    padding-top: 0;
    padding-left: 24px;
    padding-right: 24px;
    padding-bottom: 0;
  }
}
@media (max-width: 960px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav-dropdown__list {
    padding-top: 0;
    padding-left: 24px;
    padding-right: 24px;
    padding-bottom: 0;
  }
}
@media (max-width: 720px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav-dropdown__list {
    padding-top: 0;
    padding-left: 24px;
    padding-right: 24px;
    padding-bottom: 0;
  }
}
@media (max-width: 480px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav-dropdown__list {
    padding-top: 0;
    padding-left: 24px;
    padding-right: 24px;
    padding-bottom: 0;
  }
}
.c-site-nav-dropdown:not(.is-collapsed) .c-site-nav-dropdown__list {
  transform: translateY(0); /* [3] */
}

.c-site-nav-dropdown__title {
  font-size: 0.75rem;
  display: block;
  padding: 8px 24px;
  font-weight: 700;
  color: #7c7d7e;
}
@media (max-width: 960px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav-dropdown__title {
    padding-top: 8px;
    padding-left: 8px;
    padding-right: 8px;
    padding-bottom: 8px;
  }
}
@media (max-width: 1920px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav-dropdown__title {
    padding-top: 8px;
    padding-left: 8px;
    padding-right: 8px;
    padding-bottom: 8px;
  }
}
@media (max-width: 1600px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav-dropdown__title {
    padding-top: 8px;
    padding-left: 8px;
    padding-right: 8px;
    padding-bottom: 8px;
  }
}
@media (max-width: 1280px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav-dropdown__title {
    padding-top: 8px;
    padding-left: 8px;
    padding-right: 8px;
    padding-bottom: 8px;
  }
}
@media (max-width: 960px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav-dropdown__title {
    padding-top: 8px;
    padding-left: 8px;
    padding-right: 8px;
    padding-bottom: 8px;
  }
}
@media (max-width: 720px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav-dropdown__title {
    padding-top: 8px;
    padding-left: 8px;
    padding-right: 8px;
    padding-bottom: 8px;
  }
}
@media (max-width: 480px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav-dropdown__title {
    padding-top: 8px;
    padding-left: 8px;
    padding-right: 8px;
    padding-bottom: 8px;
  }
}

.c-site-nav-dropdown__link {
  font-size: 1rem;
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  display: block;
  padding: 12px 24px;
  font-weight: 400;
  text-decoration: none;
  color: inherit;
}
@media (max-width: 960px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav-dropdown__link {
    padding-top: 12px;
    padding-left: 8px;
    padding-right: 8px;
    padding-bottom: 12px;
  }
}
@media (max-width: 1920px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav-dropdown__link {
    padding-top: 12px;
    padding-left: 8px;
    padding-right: 8px;
    padding-bottom: 12px;
  }
}
@media (max-width: 1600px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav-dropdown__link {
    padding-top: 12px;
    padding-left: 8px;
    padding-right: 8px;
    padding-bottom: 12px;
  }
}
@media (max-width: 1280px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav-dropdown__link {
    padding-top: 12px;
    padding-left: 8px;
    padding-right: 8px;
    padding-bottom: 12px;
  }
}
@media (max-width: 960px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav-dropdown__link {
    padding-top: 12px;
    padding-left: 8px;
    padding-right: 8px;
    padding-bottom: 12px;
  }
}
@media (max-width: 720px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav-dropdown__link {
    padding-top: 12px;
    padding-left: 8px;
    padding-right: 8px;
    padding-bottom: 12px;
  }
}
@media (max-width: 480px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav-dropdown__link {
    padding-top: 12px;
    padding-left: 8px;
    padding-right: 8px;
    padding-bottom: 12px;
  }
}
.c-site-nav-dropdown__link:hover {
  background-color: #f1f1f1;
  color: inherit;
}
.c-site-nav-dropdown__link.is-active, .c-site-nav-dropdown__link:focus {
  background-color: #f1f1f1;
  color: inherit;
}

/* ------------------------------------*\
    #SITE-NAV
\*------------------------------------ */
/**
 * 1. Transition the opacity because a slide-in transition would not work very
 *    well with the box shadow of the component.
 */
@media (min-width: 961px) {
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav-dropdown {
    /* stylelint-disable order/order */
    --transition-property: all;
    --transition-duration: var(--transition-duration-reduced-motion, 300ms);
    --transition-timing-function: ease-in-out;
    --transition-delay: ;
    transition-property: var(--transition-property);
    transition-duration: var(--transition-duration);
    transition-timing-function: var(--transition-timing-function);
    transition-delay: var(--transition-delay);
    margin-top: 8px;
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
    opacity: 0; /* [1] */
  }
  .c-site-nav:not([class*="c-site-nav--break@"]) .c-site-nav-dropdown:not(.is-collapsed) {
    opacity: 1; /* [1] */
  }
}
@media (min-width: 1921px) {
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav-dropdown {
    /* stylelint-disable order/order */
    --transition-property: all;
    --transition-duration: var(--transition-duration-reduced-motion, 300ms);
    --transition-timing-function: ease-in-out;
    --transition-delay: ;
    transition-property: var(--transition-property);
    transition-duration: var(--transition-duration);
    transition-timing-function: var(--transition-timing-function);
    transition-delay: var(--transition-delay);
    margin-top: 8px;
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
    opacity: 0; /* [1] */
  }
  .c-site-nav.c-site-nav--break\@xxl .c-site-nav-dropdown:not(.is-collapsed) {
    opacity: 1; /* [1] */
  }
}
@media (min-width: 1601px) {
  .c-site-nav.c-site-nav--break\@xl .c-site-nav-dropdown {
    /* stylelint-disable order/order */
    --transition-property: all;
    --transition-duration: var(--transition-duration-reduced-motion, 300ms);
    --transition-timing-function: ease-in-out;
    --transition-delay: ;
    transition-property: var(--transition-property);
    transition-duration: var(--transition-duration);
    transition-timing-function: var(--transition-timing-function);
    transition-delay: var(--transition-delay);
    margin-top: 8px;
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
    opacity: 0; /* [1] */
  }
  .c-site-nav.c-site-nav--break\@xl .c-site-nav-dropdown:not(.is-collapsed) {
    opacity: 1; /* [1] */
  }
}
@media (min-width: 1281px) {
  .c-site-nav.c-site-nav--break\@l .c-site-nav-dropdown {
    /* stylelint-disable order/order */
    --transition-property: all;
    --transition-duration: var(--transition-duration-reduced-motion, 300ms);
    --transition-timing-function: ease-in-out;
    --transition-delay: ;
    transition-property: var(--transition-property);
    transition-duration: var(--transition-duration);
    transition-timing-function: var(--transition-timing-function);
    transition-delay: var(--transition-delay);
    margin-top: 8px;
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
    opacity: 0; /* [1] */
  }
  .c-site-nav.c-site-nav--break\@l .c-site-nav-dropdown:not(.is-collapsed) {
    opacity: 1; /* [1] */
  }
}
@media (min-width: 961px) {
  .c-site-nav.c-site-nav--break\@m .c-site-nav-dropdown {
    /* stylelint-disable order/order */
    --transition-property: all;
    --transition-duration: var(--transition-duration-reduced-motion, 300ms);
    --transition-timing-function: ease-in-out;
    --transition-delay: ;
    transition-property: var(--transition-property);
    transition-duration: var(--transition-duration);
    transition-timing-function: var(--transition-timing-function);
    transition-delay: var(--transition-delay);
    margin-top: 8px;
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
    opacity: 0; /* [1] */
  }
  .c-site-nav.c-site-nav--break\@m .c-site-nav-dropdown:not(.is-collapsed) {
    opacity: 1; /* [1] */
  }
}
@media (min-width: 721px) {
  .c-site-nav.c-site-nav--break\@s .c-site-nav-dropdown {
    /* stylelint-disable order/order */
    --transition-property: all;
    --transition-duration: var(--transition-duration-reduced-motion, 300ms);
    --transition-timing-function: ease-in-out;
    --transition-delay: ;
    transition-property: var(--transition-property);
    transition-duration: var(--transition-duration);
    transition-timing-function: var(--transition-timing-function);
    transition-delay: var(--transition-delay);
    margin-top: 8px;
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
    opacity: 0; /* [1] */
  }
  .c-site-nav.c-site-nav--break\@s .c-site-nav-dropdown:not(.is-collapsed) {
    opacity: 1; /* [1] */
  }
}
@media (min-width: 481px) {
  .c-site-nav.c-site-nav--break\@xs .c-site-nav-dropdown {
    /* stylelint-disable order/order */
    --transition-property: all;
    --transition-duration: var(--transition-duration-reduced-motion, 300ms);
    --transition-timing-function: ease-in-out;
    --transition-delay: ;
    transition-property: var(--transition-property);
    transition-duration: var(--transition-duration);
    transition-timing-function: var(--transition-timing-function);
    transition-delay: var(--transition-delay);
    margin-top: 8px;
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
    opacity: 0; /* [1] */
  }
  .c-site-nav.c-site-nav--break\@xs .c-site-nav-dropdown:not(.is-collapsed) {
    opacity: 1; /* [1] */
  }
}
.c-site-nav.c-site-nav--break\@none .c-site-nav-dropdown {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  margin-top: 8px;
  border-radius: 8px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
  opacity: 0; /* [1] */
}
.c-site-nav.c-site-nav--break\@none .c-site-nav-dropdown:not(.is-collapsed) {
  opacity: 1; /* [1] */
}

.c-site-nav-dropdown__title {
  padding-top: 16px;
}

/* ------------------------------------*\
    #CONTEXT BAR
\*------------------------------------ */
/**
 * [1] Toggle visibility of label underneath context bar icon.
*/
.c-context-bar {
  height: 64px;
  display: flex;
}
@media (max-width: 960px) {
  .c-context-bar {
    height: 64px;
  }
}

.c-context-bar__panel {
  display: flex;
  width: 100%;
}

.c-context-bar__navs {
  display: flex;
  justify-content: space-between;
  width: 100%;
}

.c-context-bar__nav {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  align-items: center;
}
.c-context-bar__nav li {
  display: block;
  margin-bottom: 0;
}

.c-context-bar__title {
  font-weight: 700;
  color: #161718;
}
@media (max-width: 960px) {
  .c-context-bar__title {
    display: none;
  }
}

.c-context-bar__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-left: 0;
  text-decoration: none;
  color: #161718;
}

.c-context-bar__icon {
  color: inherit;
  font-size: 24px;
}
.c-context-bar__icon-label {
  display: none;
}

/* ------------------------------------*\
    #DATA-OVERVIEW
\*------------------------------------ */
/**
 * [1]  Fix vertical alignment with other elements in header.
 * [2]  Defensively reset any potential margin-bottom that comes with the
 *      elements that are being used as the title.
 * [4]  Defensively reset any trailing margin-bottom at the end of the
 *      component.
 * [5]  Ensure that the icon always just takes up the space equal to its size.
 * [6]  Words can be broken at appropriate hyphenation points either as
 *      determined by hyphenation characters (soft `&shy;` or hard `U+2010`
 *      hyphen) inside the word or as determined automatically by a
 *      language-appropriate hyphenation resource (e.g. the `lang` attribute for
 *      the document or parent element). Setting a language appropriate to the
 *      content seems to be more important in some browsers (e.g. Firefox) than
 *      in others (Chrome). All in all, hyphenation should be considered a
 *      progressive enhancement, which behaves differently in different browsers.
 * [7]  Break a word onto multiple lines if it’s too large to fit.
 * [8]  Allow header items to wrap.
 * [9]  Vertical space between header items have broken under each other.
 * [10] Hide button label for component breakpoint.
 * [11] Always hide the data-overview header icon as per design.
 * [12] Remove minimum width for buttons in `.c-data-overview`.
 */
.c-data-overview {
  padding-top: 24px;
  padding-right: 24px;
  padding-bottom: 24px;
  padding-left: 24px;
  border: 1px solid #e4e4e4;
  border-radius: 8px;
  background-color: #f1f1f1;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=alternative] .c-data-overview {
  background-color: #ffffff;
}

.c-data-overview__header {
  display: flex;
  flex-wrap: wrap; /* [8] */
  justify-content: space-between;
  align-items: center;
  margin-top: -16px; /* [9] */
  margin-bottom: 24px;
}
@media (max-width: 720px) {
  .c-data-overview__header {
    margin-bottom: 24px;
  }
}
.c-data-overview__header > * {
  margin-top: 16px; /* [9] */
}

.c-data-overview__icon {
  flex-grow: 0; /* [5] */
  flex-shrink: 0; /* [5] */
  flex-basis: 32px; /* [5] */
  margin-right: 16px;
}
.c-data-overview__icon .c-icon {
  font-size: 2rem;
  line-height: 1;
  display: block; /* [1] */
  color: #161718;
}

.c-data-overview__title {
  font-size: 1.4375rem;
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 5em;
  max-width: 100%;
  margin-right: 16px;
  margin-bottom: 0; /* [2] */
  font-weight: 700;
  -webkit-hyphens: auto;
  hyphens: auto; /* [6] */
  color: #161718;
  overflow-wrap: break-word; /* [7] */
}

.c-data-overview__button {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: auto;
}
.c-data-overview__button .c-btn__icon::before {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  content: "\f174";
  font-size: 20px;
}
.c-data-overview__button.c-btn {
  min-width: auto; /* [12] */
}

.c-data-overview__body > *:last-child {
  margin-bottom: 0; /* [4] */
}

/* ------------------------------------*\
    #DATEPICKER
\*------------------------------------ */
/**
 * [1] This class is currently only a placeholder. It is part of the timepicker's
 *     HTML markup and is designed to prevent changes to the markup. Please refer
 *     to `vendor/flatpickr/flatpickr.scss` and `vendor/flatpickr/flatpickr.settings.scss`
 *     to see the styling of the current timepicker.
 */
.c-datepicker {
  /* [1] */
}

/* ------------------------------------*\
    #TIMEPICKER
\*------------------------------------ */
/**
 * [1] This class is currently only a placeholder. It is part of the timepicker's
 *     HTML markup and is designed to prevent changes to the markup. Please refer
 *     to `vendor/flatpickr/flatpickr.scss` and `vendor/flatpickr/flatpickr.settings.scss`
 *     to see the styling of the current timepicker.
 */
.c-timepicker {
  /* [1] */
}

/* ------------------------------------*\
    #INSTRUCTION-STEPPER
\*------------------------------------ */
/* stylelint-disable-line length-zero-no-unit */
/* [11] */ /* stylelint-disable-line unit-disallowed-list */
/**
 * [1] Reset custom numbering.
 * [2] Make all items same-width.
 * [3] Reset default margin, padding, and list style type of lists.
 * [4] Horizontal connector.
 * [5] Vertical connector.
 * [6] Move the beginning of the horizontal/vertical connector to the center of
 *     the respective item.
 * [7] Fix overlapping `<div>`s in IE.
 * [8] Stack item above connector.
 * [9] Reset horizontal spacing.
 * [10] Remove spacing to align default and active items.
 * [11] Start title in center of item.
 *      Using baseline does not center it properly. Using `ex` is based on the
 *      x-height of the title which approx. is half of the size, needed as an offset.
 * [12] Improve readability by limiting the maximal line length.
 * [13] The `px` units must be removed because the `font-size` mixin sees
 *      CSS custom properties as a string and does not know its value. The
 *      following conversion to `REM` via CSS `calc` must be done without unit.
 * [14] A correction buffer for lines to avoid micro gaps between steps and connectors.
 */
.c-instruction-stepper {
  --instruction-stepper-gap: 24px;
  --instruction-stepper-line-gap: 2px;
  --instruction-stepper-item-size: 64px;
  --instruction-stepper-item-font-size: 28; /* [13] */
  --instruction-stepper-item-icon-size: 40; /* [13] */
  --instruction-stepper-correction-buffer: 0px; /* [14] */ /* stylelint-disable-line length-zero-no-unit */
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  margin: 0; /* [3] */
  padding: 0; /* [3] */
  list-style-type: none; /* [3] */
}
@media (min-width: 721px) {
  .c-instruction-stepper.c-instruction-stepper--center {
    max-width: -moz-fit-content;
    max-width: fit-content; /* stylelint-disable-line scale-unlimited/declaration-strict-value */
    margin-right: auto;
    margin-left: auto;
  }
}
@media (min-width: 721px) {
  .c-instruction-stepper:not(.c-instruction-stepper--vertical) {
    flex-direction: row;
  }
}

.c-instruction-stepper--numbered {
  counter-reset: instruction-stepper-count; /* [1] */
}

.c-instruction-stepper__step {
  position: relative;
  display: flex;
  align-items: flex-start; /* [11] */
  flex-grow: 1; /* [2] */
  flex-shrink: 1;
  min-height: var(--instruction-stepper-item-size);
  margin-bottom: 24px;
  /**
   * Position logic just changes in orthogonality so we swap out the properties respectively.
   * a. Control the thickness property for the line.
   * b. Control the dimension property of the line:
   *    `height` for vertical orientation and `width` for horizontal orientation.
   * c. The property that controls the line dimensional _offset.
   * d. Calculate the gap (offset) of the line by taking item size and
   *    line gap into account.
   * e. The property that controls the alignment.
   * f. Calculate the width or height of the line by taking item size,
   *    item gap, line gap and (if set) correction buffer into account.
   */
  /* [a] */
  /* [b] */
  /* [c] */
  /* [d] */
  /* [e] */
}
.c-instruction-stepper__step::before {
  content: "";
  position: absolute;
  display: block;
  width: 2px;
  height: calc(var(--instruction-stepper-correction-buffer) + 100% - var(--instruction-stepper-item-size) + var(--instruction-stepper-gap) - var(--instruction-stepper-line-gap) * 2); /* [f] */
  left: calc(var(--instruction-stepper-item-size) / 2);
  top: calc(var(--instruction-stepper-item-size) + var(--instruction-stepper-line-gap));
}
.c-instruction-stepper__step:last-child::before {
  display: none;
}
.c-instruction-stepper__step::before {
  background-color: #464748;
}
@media (min-width: 721px) {
  :not(.c-instruction-stepper--vertical) > .c-instruction-stepper__step {
    /**
     * Position logic just changes in orthogonality so we swap out the properties respectively.
     * a. Control the thickness property for the line.
     * b. Control the dimension property of the line:
     *    `height` for vertical orientation and `width` for horizontal orientation.
     * c. The property that controls the line dimensional _offset.
     * d. Calculate the gap (offset) of the line by taking item size and
     *    line gap into account.
     * e. The property that controls the alignment.
     * f. Calculate the width or height of the line by taking item size,
     *    item gap, line gap and (if set) correction buffer into account.
     */
    /* [a] */
    /* [b] */
    /* [c] */
    /* [d] */
    /* [e] */
  }
  :not(.c-instruction-stepper--vertical) > .c-instruction-stepper__step::before {
    content: "";
    position: absolute;
    display: block;
    height: 2px;
    width: calc(var(--instruction-stepper-correction-buffer) + 100% - var(--instruction-stepper-item-size) + var(--instruction-stepper-gap) - var(--instruction-stepper-line-gap) * 2); /* [f] */
    top: calc(var(--instruction-stepper-item-size) / 2);
    left: calc(50% + var(--instruction-stepper-item-size) / 2 + var(--instruction-stepper-line-gap));
  }
  :not(.c-instruction-stepper--vertical) > .c-instruction-stepper__step:last-child::before {
    display: none;
  }
  :not(.c-instruction-stepper--vertical) > .c-instruction-stepper__step::before {
    background-color: #464748;
  }
}
@media (min-width: 721px) {
  :not(.c-instruction-stepper--vertical) > .c-instruction-stepper__step {
    flex-direction: column;
    align-items: center;
    flex-basis: 0; /* [2] */
    margin-bottom: 0;
  }
  :not(.c-instruction-stepper--vertical) > .c-instruction-stepper__step:not(:last-child) {
    margin-right: 24px;
  }
}

.c-instruction-stepper__item {
  font-size: calc(var(--instruction-stepper-item-font-size) / 16 * 1rem); /* stylelint-disable-line order/order */
  line-height: 1;
  position: relative;
  z-index: 1; /* [8] */
  display: flex;
  align-items: center;
  justify-content: center;
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: auto;
  width: var(--instruction-stepper-item-size);
  height: var(--instruction-stepper-item-size);
  border: 2px solid #9e9fa0;
  border-radius: 50%;
  font-weight: 700;
  text-align: center;
  background-color: #d8d8d8;
  color: #9e9fa0;
}
.c-instruction-stepper--numbered .c-instruction-stepper__item::before {
  content: counter(instruction-stepper-count);
  counter-increment: instruction-stepper-count;
}
.c-instruction-stepper__step.is-active .c-instruction-stepper__item {
  border: 0;
  background-color: #464748;
  color: #ffffff;
  /* stylelint-disable selector-max-class */
  /* stylelint-enable */
}
.c-instruction-stepper__step.is-active .c-instruction-stepper__item .c-icon {
  color: currentColor;
}
.c-instruction-stepper__item .c-icon {
  font-size: calc(var(--instruction-stepper-item-icon-size) / 16 * 1rem); /* stylelint-disable-line order/order */
  line-height: 1;
  color: currentColor;
}

.c-instruction-stepper__detail {
  display: block;
  max-width: 100%; /* [7] */
  margin-top: calc(var(--instruction-stepper-item-size) / 2 - 1ex); /* [11] */
  margin-left: 16px;
  text-align: left;
}
@media (min-width: 721px) {
  :not(.c-instruction-stepper--vertical) > .c-instruction-stepper__step .c-instruction-stepper__detail {
    margin-top: 16px;
    margin-left: 0;
    text-align: center;
  }
}

.c-instruction-stepper__title {
  font-size: 1rem;
  line-height: 1.5;
  display: block;
  font-weight: 700;
  color: #161718;
}

.c-instruction-stepper__description {
  font-size: 0.875rem;
  line-height: 1.5;
  display: block;
  max-width: 50ch; /* [12] */
  margin-top: 8px;
  font-weight: 300;
  color: #161718;
}
@media (max-width: 719px) {
  .c-instruction-stepper__description {
    max-width: 60ch; /* [12] */
  }
}
.c-instruction-stepper--vertical .c-instruction-stepper__description {
  max-width: 60ch; /* [12] */
}

.c-instruction-stepper--vertical.c-instruction-stepper--reversed {
  align-items: flex-end;
}
.c-instruction-stepper--vertical.c-instruction-stepper--reversed .c-instruction-stepper__step {
  flex-direction: row-reverse;
}
.c-instruction-stepper--vertical.c-instruction-stepper--reversed .c-instruction-stepper__step::before {
  right: calc(var(--instruction-stepper-item-size) / 2);
  left: auto;
}
.c-instruction-stepper--vertical.c-instruction-stepper--reversed .c-instruction-stepper__detail {
  margin-right: 16px;
  margin-left: 0;
  text-align: right;
}

.c-instruction-stepper--small {
  --instruction-stepper-item-size: 48px;
  --instruction-stepper-item-font-size: 23; /* [13] */
  --instruction-stepper-item-icon-size: 24; /* [13] */
}

/* ------------------------------------*\
    #PRODUCT-TABLE
\*------------------------------------ */
/* stylelint-disable-line scss/dollar-variable-default */
/**
 * [1] Set section spacing responsivly via container query based CSS custom
 *     property.
 *     The selector `.c-product-table` needs to be added to the
 *     `ContainerQuery` `componentSelector` in
 *     `packages/bronson-default/src/js/module/container-query-observer.js`
 *     @TODO: Maybe we could use _real_ container queries (or a polyfill),
 *            so no custom SCSS/JS hybrid solution is needed anymore.
 * [2] Remove bottom margin of the last child of a section.
 * [3] Add a horizontal border between sections at the half of the section spacing.
 */
.c-product-table {
  --container-widths: "0 720"; /* [1] */
  --product-table-section-spacing: 32px; /* [1] */
  display: flex; /* stylelint-disable-line order/order */
  flex-direction: column;
}
.c-product-table[data-container-width~="720"] {
  --product-table-section-spacing: 48px; /* [1] */
}

.c-product-table__title {
  font-size: 1.25rem;
  margin-bottom: 24px;
}
@media (min-width: 721px) {
  .c-product-table__title {
    font-size: 1.4375rem;
  }
}
@media (min-width: 1281px) {
  .c-product-table__title {
    font-size: 1.5rem;
  }
}

.c-product-table__section {
  position: relative;
}
.c-product-table__section > :last-child {
  margin-bottom: 0; /* [2] */
}
.c-product-table__section + .c-product-table__section {
  margin-top: var(--product-table-section-spacing); /* [1] */
}
.c-product-table__section + .c-product-table__section::before { /* [3] */
  content: "";
  position: absolute;
  top: calc(var(--product-table-section-spacing) / -2); /* [1] [3] */
  right: 0;
  left: 0;
  border-top: 1px solid #d8d8d8;
}

.c-product-table__item-detail-comment {
  font-size: 0.75rem;
  display: block;
  font-weight: 300;
}

.c-product-table__item-term-comment {
  font-size: 0.75rem;
  display: block;
  font-weight: 300;
}

.c-product-table__inner-title {
  font-size: 1.25rem;
  margin-bottom: 16px;
  font-weight: 700;
  text-align: center;
  color: #161718;
}
@media (min-width: 721px) {
  .c-product-table__inner-title {
    font-size: 1.4375rem;
  }
}
@media (min-width: 1281px) {
  .c-product-table__inner-title {
    font-size: 1.5rem;
  }
}

.c-product-table__section--summary { /* [4] */ }
.c-product-table__section--summary .c-product-table__summary-term {
  font-size: 1.25rem;
  font-weight: 700;
}
@media (min-width: 721px) {
  .c-product-table__section--summary .c-product-table__summary-term {
    font-size: 1.4375rem;
  }
}
@media (min-width: 1281px) {
  .c-product-table__section--summary .c-product-table__summary-term {
    font-size: 1.5rem;
  }
}
.c-product-table__section--summary .c-product-table__summary-detail {
  font-size: 1.25rem;
  font-weight: 700;
}
@media (min-width: 721px) {
  .c-product-table__section--summary .c-product-table__summary-detail {
    font-size: 1.4375rem;
  }
}
@media (min-width: 1281px) {
  .c-product-table__section--summary .c-product-table__summary-detail {
    font-size: 1.5rem;
  }
}
.c-product-table__section--summary .c-product-table__information {
  font-weight: 300;
}
.c-product-table__section--summary .c-product-table__information.c-product-table__information.c-product-table__information { /* stylelint-disable-line no-duplicate-selectors, selector-max-class */ /* [4] */
  text-align: left;
}

/* ------------------------------------*\
    #SPINNER
\*------------------------------------ */
/**
 * [1] Magic number that places the ‘corner’ dots/stripe correctly to form a
 *     perfect circle. If someone can come up with the correct formula of
 *     calculating this properly...you're a freak! But it’ll be nice,
 *     nonetheless.
 * [2] Use an `inset` box shadow, so that the outer border (this box-shadow one)
 *     and the overlaying inner border of the pseudo element are matching
 *     exactly.
 * [3] Set transition to fade in/out the spinner when it is shown/hidden
 *     dynamically.
 * [4] Take up the size from the parent (`.c-spinner__loader`).
 * [5] Create a Pac-Man shape by omitting the bottom border color.
 * [6] Place the spinner of the full-page, text and section variant precisely
 *     in the center of the backdrop.
 * [7] Remove margins from any element inside the text container.
 */
.c-spinner.c-spinner--full-page, .c-spinner.c-spinner--section, .c-spinner.c-spinner--text {
  position: relative;
}
.c-spinner.c-spinner--full-page::before, .c-spinner.c-spinner--section::before, .c-spinner.c-spinner--text::before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: rgba(228, 228, 228, 0.8);
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  content: "";
  z-index: 4999;
  opacity: 0;
  visibility: hidden;
}
.c-spinner.c-spinner--full-page[aria-busy=true]::before, .c-spinner.c-spinner--section[aria-busy=true]::before, .c-spinner.c-spinner--text[aria-busy=true]::before {
  opacity: 1;
  visibility: visible;
}
.c-spinner.c-spinner--full-page::before, .c-spinner.c-spinner--text::before {
  position: fixed;
}
.c-spinner.c-spinner--center {
  display: flex;
  justify-content: center;
}
.c-spinner.c-spinner--text {
  text-align: center;
}

.c-spinner__loader {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  /* [3] */
  position: relative;
  z-index: 5000;
  display: none;
  width: 64px;
  height: 64px;
}
.c-spinner__loader::before {
  content: "";
  position: absolute; /* [4] */
  top: 0; /* [4] */
  left: 0; /* [4] */
  display: block;
  width: 64px; /* [4] */
  height: 64px; /* [4] */
  border-radius: 50%;
  box-shadow: 0 0 0 8px #d8d8d8 inset; /* [2] */
}
.c-spinner--small .c-spinner__loader::before, .c-upload .c-spinner .c-spinner__loader::before {
  width: 24px;
  height: 24px;
  box-shadow: 0 0 0 4px #d8d8d8 inset; /* [2] */
}
.c-spinner__loader::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 64px;
  height: 64px;
  border: 8px solid #347954;
  border-radius: 50%;
  animation-name: spinner-circle-animation;
  animation-duration: 1s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  border-bottom-color: transparent; /* [5] */
}
.c-spinner--small .c-spinner__loader::after, .c-upload .c-spinner .c-spinner__loader::after {
  width: 24px;
  height: 24px;
  border-width: 4px;
}
.c-spinner[aria-busy=true] .c-spinner__loader {
  display: block;
}
.c-spinner--small .c-spinner__loader, .c-upload .c-spinner .c-spinner__loader {
  width: 24px;
  height: 24px;
}
.c-spinner--section .c-spinner__loader, .c-spinner--full-page:not(.c-spinner--text) .c-spinner__loader {
  position: absolute;
  top: 50%; /* [6] */
  left: 50%; /* [6] */
  transform: translate(-50%, -50%); /* [6] */
}
.c-spinner--full-page:not(.c-spinner--text) .c-spinner__loader {
  position: fixed;
}
.c-spinner--text .c-spinner__loader {
  margin-right: auto;
  margin-left: auto;
}

.c-spinner__content {
  width: 33.3333333333%;
  position: fixed;
  z-index: 5000;
  top: 50%; /* [6] */
  left: 50%; /* [6] */
  display: none;
  padding: 24px;
  transform: translate(-50%, -50%); /* [6] */
  border-radius: 8px;
  background-color: #ffffff;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.15);
}
@media (max-width: 1280px) {
  .c-spinner__content {
    width: 50%;
  }
}
@media (max-width: 960px) {
  .c-spinner__content {
    width: 66.6666666667%;
  }
}
@media (max-width: 720px) {
  .c-spinner__content {
    width: calc(100vw - 48px);
  }
}
.c-spinner[aria-busy=true] .c-spinner__content {
  display: block;
}

.c-spinner__text {
  font-size: 1rem;
  display: inline-block;
  padding-top: 16px;
  padding-right: 24px;
  padding-left: 24px;
  color: #161718;
}
.c-spinner__text * {
  margin: 0; /* [7] */
}

.c-spinner__element {
  display: none;
}

@keyframes spinner-circle-animation {
  from {
    transform: rotate(0turn);
  }
  to {
    transform: rotate(1turn);
  }
}
@keyframes spinner-dots-animation {
  0% {
    opacity: 0.2;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0.2;
  }
}
@keyframes spinner-stripe-animation {
  0% {
    background-color: #7c7d7e;
  }
  12.5% {
    background-color: #347954;
  }
  25% {
    background-color: #7c7d7e;
  }
}
/* ------------------------------------*\
    #SPINNER
\*------------------------------------ */
.c-spinner::before {
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}

/* ------------------------------------*\
    #CUSTOM-RANGE-SLIDER
\*------------------------------------ */
/* stylelint-disable-line scss/dollar-variable-default, scss/no-duplicate-dollar-variables */
/**
 * [1]  Set the left and right margin of the slider to half the size of the thumb.
 * [2]  Add pseudo element so we can set width and height of the range slider
 *      to the size needed.
 * [3]  Center marker on track.
 * [4]  Show marker above track / connect.
 * [5]  Add transition when tapping on track.
 * [6]  Hide the overflow of the connector to make border radius of the track
 *      visible.
 * [7]  Set the spacing between value and marker.
 * [8]  Markers are now generally set `in-range` via script.
 * [9]  Add pseudo-elements for markers (`::before` element) and their dots
 *      (`::after` element).
 * [10] Align elements, so that the thumb is fully placed inside of the range
 *      slider container.
 * [11] Default tooltip display is top - above the current value.
 * [12] Tooltip is displayed below the current value when variable is set to false.
 * [13] Add spacing when tooltip is present.
 * [14] Defines the positioning of the tooltip container and its indicator.
 * [15] Align first (min) and last (max) with the outer boundaries of the track
 *      and pips.
 * [16] Overwrite inline-style set by plugin.
 * [17] Avoid selector being applied to last (max) value if only 1 pip is displayed.
 * [18] Put pseudo-area above track to increase (touch-)target when interacting
 *      with track.
 * [19] Manually update the `.c-custom-range-slider__origin` `width` and `height` to reflect the styles in `noUiSlider`.
 * [20] Reserver space around component to account for thumb and optional tooltip.
 */
.c-custom-range-slider {
  position: relative;
  height: 16px;
  margin-right: 8px; /* [1] */
  margin-left: 8px; /* [1] */
  margin-top: 2px; /* [20] */
}
.c-custom-range-slider::after { /* [2] */
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 4px;
  transform: translateY(-50%);
  background-color: #c4c6c7;
  border-radius: 4px;
}
.c-custom-range-slider[disabled]::after {
  background-color: #d8d8d8;
}
.c-custom-range-slider[data-custom-range-slider-pips] {
  height: 40px;
}
.c-custom-range-slider[data-custom-range-slider-pips]::after {
  top: calc(50% - 11.1428571429px); /* [10] */
}

.c-custom-range-slider__target {
  position: relative;
}
.c-custom-range-slider__target * {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  touch-action: none;
  -webkit-user-select: none;
  user-select: none;
}

.c-custom-range-slider__base {
  position: relative;
  z-index: 1;
  top: 50%;
  width: 100%;
  height: 4px;
  transform: translateY(-50%);
  cursor: pointer;
  /* [15] */
}
.c-custom-range-slider__base::before {
  content: "";
  position: absolute;
  right: 0;
  left: 0;
  height: 40px;
  transform: translateY(-50%);
}
.c-custom-range-slider[disabled] .c-custom-range-slider__base {
  cursor: initial;
}
.c-custom-range-slider[data-custom-range-slider-pips] .c-custom-range-slider__base {
  top: calc(50% - 11.1428571429px); /* [10] */
}

.c-custom-range-slider__origin {
  position: absolute;
  right: 0;
  width: 100%; /* [19] */
  height: 100%; /* [19] */
}
.c-custom-range-slider--tap .c-custom-range-slider__origin {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  /* [5] */
}

.c-custom-range-slider__thumb {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 150ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  position: absolute;
  top: -2px;
  right: 0;
  width: 16px;
  height: 16px;
  transform: translate(50%, -50%);
  background-color: #347954;
  cursor: grab;
  border-radius: 50%;
}
.c-custom-range-slider[disabled] .c-custom-range-slider__thumb {
  border-color: #9e9fa0;
  background-color: #9e9fa0;
  pointer-events: none;
  cursor: initial;
}
.c-custom-range-slider__thumb:focus {
  outline: none;
}
.c-custom-range-slider__thumb:active {
  cursor: grabbing;
}
.c-custom-range-slider__thumb::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 14px;
  height: 14px;
  transform: translate(-50%, -50%);
  background-color: #347954;
  border-radius: 50%;
}
.c-custom-range-slider[disabled] .c-custom-range-slider__thumb::before {
  background-color: #9e9fa0;
}

/**
* Connects
*/
.c-custom-range-slider__connect-container {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden; /* [6] */
  border-radius: 4px;
  /* [18] */
}
.c-custom-range-slider__connect-container::before {
  content: "";
  position: absolute;
  right: 0;
  left: 0;
  height: 40px;
  transform: translateY(-50%);
}

.c-custom-range-slider__connect {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  transform-origin: 0 0;
  background-color: #78faae;
}
.c-custom-range-slider--tap .c-custom-range-slider__connect {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  /* [5] */
}
.c-custom-range-slider[disabled] .c-custom-range-slider__connect {
  background-color: #c4c6c7;
}

/**
* Pips, Markers & Values
*/
.c-custom-range-slider__pips {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.c-custom-range-slider__marker {
  position: absolute;
  z-index: initial; /* [4] */
  top: 50%; /* [3] */
  display: block;
  width: 40px;
  height: 40px;
  transform: translate(-50%, -50%); /* [3] */
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
}
.c-custom-range-slider__marker::before, .c-custom-range-slider__marker::after { /* [9] */
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  transform: translate(-50%, -50%);
  cursor: pointer;
  border-radius: 50%;
}
.c-custom-range-slider__marker::before {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  width: 2px;
  height: 2px;
  background-color: #9e9fa0;
}
.c-custom-range-slider__marker.is-active:first-of-type::before, .c-custom-range-slider__marker.is-active:first-of-type::after {
  background-color: #78faae; /* [8] */
}
.c-custom-range-slider__marker.in-range::before, .c-custom-range-slider__marker.in-range::after {
  background-color: #78faae;
}
.c-custom-range-slider[disabled] .c-custom-range-slider__marker, .c-custom-range-slider[disabled] .c-custom-range-slider__marker::before, .c-custom-range-slider[disabled] .c-custom-range-slider__marker::after {
  touch-action: none;
  cursor: initial;
}
.c-custom-range-slider[disabled] .c-custom-range-slider__marker::before, .c-custom-range-slider[disabled] .c-custom-range-slider__marker::after {
  background-color: #c4c6c7;
}
.c-custom-range-slider[disabled] .c-custom-range-slider__marker.is-active, .c-custom-range-slider[disabled] .c-custom-range-slider__marker.in-range {
  /* stylelint-disable-next-line selector-max-specificity */
}
.c-custom-range-slider[disabled] .c-custom-range-slider__marker.is-active::before, .c-custom-range-slider[disabled] .c-custom-range-slider__marker.is-active::after, .c-custom-range-slider[disabled] .c-custom-range-slider__marker.in-range::before, .c-custom-range-slider[disabled] .c-custom-range-slider__marker.in-range::after {
  background-color: #c4c6c7;
}
.c-custom-range-slider[data-custom-range-slider-pips] .c-custom-range-slider__marker {
  top: calc(50% - 11.1428571429px); /* [10] */
}

.c-custom-range-slider__value {
  font-size: 0.875rem;
  line-height: 1;
  position: absolute;
  padding-top: 26px; /* [7] */
  transform: translateX(-50%);
  font-weight: 400;
  white-space: nowrap;
  text-align: center;
  color: #161718;
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
}
.c-custom-range-slider__value:nth-child(2):not(:last-child) { /* [17] */
  transform: translateX(-1px); /* [15] */
}
.c-custom-range-slider__value:last-child {
  right: 0;
  left: auto !important; /* [16] */ /* stylelint-disable-line itcss/no-at-important */
  transform: translateX(1px); /* [15] */
}
.c-custom-range-slider[disabled] .c-custom-range-slider__value {
  color: #9e9fa0;
  cursor: initial;
  touch-action: none;
}

.c-custom-range-slider__tooltip-wrapper {
  position: absolute;
  left: 50%;
  display: block;
  padding: 8px;
  transform: translateX(-50%);
  border-radius: 2px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  text-align: center;
  white-space: nowrap;
  background-color: #464748;
  color: #ffffff;
  cursor: default;
}
.c-custom-range-slider__arrow { /* [14] */
  content: "";
  position: absolute;
  left: 50%;
  width: 8px;
  height: 8px;
  transform: translateX(-50%);
  border-style: solid;
  border-color: transparent;
  border-width: 8px;
}

.c-custom-range-slider[data-custom-range-slider-tooltips] {
  margin-top: 48px; /* [20] */
}

.c-custom-range-slider:not([data-custom-range-slider-tooltip-position=bottom]) { /* [11] */ }
.c-custom-range-slider:not([data-custom-range-slider-tooltip-position=bottom]) .c-custom-range-slider__tooltip-wrapper {
  bottom: 28px;
}
.c-custom-range-slider:not([data-custom-range-slider-tooltip-position=bottom]) .c-custom-range-slider__arrow {
  top: 100%;
  border-bottom-width: 0;
  border-top-color: #464748;
}

[data-custom-range-slider-tooltip-position=bottom],
.custom-range-slider-tooltip--bottom { /* [12] */
  margin-bottom: 48px; /* [20] */
}
[data-custom-range-slider-tooltip-position=bottom] .c-custom-range-slider__tooltip-wrapper,
.custom-range-slider-tooltip--bottom .c-custom-range-slider__tooltip-wrapper {
  top: 28px;
}
[data-custom-range-slider-tooltip-position=bottom] .c-custom-range-slider__arrow,
.custom-range-slider-tooltip--bottom .c-custom-range-slider__arrow {
  bottom: 100%;
  border-top-width: 0;
  border-bottom-color: #464748;
}

/**
 * [1] Show when outline for focus and when currently dragged (`--active`).
 * [2] Improve outline animation by applying a transparent outline without
 *     offset by default which gets animated. Otherwise the outline just
 *     disappears on "blur".
 * [3] No option for different padding directions in default.
 */
.c-custom-range-slider:not([disabled]) .c-custom-range-slider__thumb {
  /* [1] */
}
.c-custom-range-slider:not([disabled]) .c-custom-range-slider__thumb::before {
  /* [2] */
  --focus-outline-color: transparent;
  --focus-outline-offset: 0;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 150ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
}
.c-custom-range-slider:not([disabled]) .c-custom-range-slider__thumb:active, .c-custom-range-slider:not([disabled]) .c-custom-range-slider__thumb:hover, .c-custom-range-slider:not([disabled]) .c-custom-range-slider__thumb:focus-visible {
  /* stylelint-disable-next-line selector-max-specificity */
}
.c-custom-range-slider:not([disabled]) .c-custom-range-slider__thumb:active::before, .c-custom-range-slider:not([disabled]) .c-custom-range-slider__thumb:hover::before, .c-custom-range-slider:not([disabled]) .c-custom-range-slider__thumb:focus-visible::before {
  width: 18px;
  height: 18px;
}
.c-custom-range-slider:not([disabled]) .c-custom-range-slider__thumb:active, .c-custom-range-slider:not([disabled]) .c-custom-range-slider__thumb:focus-visible {
  /* stylelint-disable-next-line selector-max-specificity */
}
.c-custom-range-slider:not([disabled]) .c-custom-range-slider__thumb:active::before, .c-custom-range-slider:not([disabled]) .c-custom-range-slider__thumb:focus-visible::before {
  --focus-outline-color: #161718;
  --focus-outline-offset: 4px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

.c-custom-range-slider__tooltip-wrapper {
  padding: 8px 12px; /* [3] */
}

/* ------------------------------------*\
   #NOTIFICATIONS (Settings)
\*------------------------------------ */
/* ------------------------------------*\
   #NOTIFICATIONS
\*------------------------------------ */
/**
 * [1]  Notifications are always sticky.
 * [2]  Notifications are displayed either at the top or at the bottom of the page.
 * [3]  Visually hide notifications as long as JS is not loaded.
 * [4]  To properly animate the opening/closing of the notifications, hide the
 *      overflow.
 * [5]  Add transition after JS is loaded to prevent weird flickering of the
 *      notification on page-load.
 * [6]  Add height of `0` when the notification is closed to be able to
 *      animate the opening/closing.
 * [8]  Vertically align the icon with the first line of the notifications text.
 * [9]  Relation for the icon.
 * [10] Spacing for the icon on the right.
 * [11] Make sure that links in notifications are always legible.
 * [13] Modifier for flex-direction behavior on mobile.
 * [14] Remove margin-bottom from paragraph.
 * [15] Add status specific color.
 * [16] Set `transform` to `none` instead of `translateY(0)` as this would
 *      hide the bottom border in combination with `overflow: hidden` on the
 *      container (only necessary for Firefox).
 * [17] Restrict the height of the container to the viewport height, so it is
 *      scrollable with many items in it.
 * [18] In case of many notifications, ensure scrollability,...
 * [19] ...but prevent on the x-axis.
 * [20] Generate button CSS custom properties
 * [21] Generate status theme button CSS custom properties
 */
.c-notifications-group {
  position: sticky; /* [1] */
  z-index: 2500;
  top: 0;
  width: 100%;
  max-height: 100vh; /* [17] */
  visibility: hidden; /* [3] */
  overflow-y: auto; /* [18] */
  overflow-x: hidden; /* [19] */
}
.c-notifications-group.js-is-ready {
  visibility: inherit;
}

.js-context-notification {
  margin-bottom: 24px;
}

.c-notification {
  width: 100%;
  padding-top: 16px;
  padding-bottom: 16px;
  transform: none; /* [16] */
  border: var(--notification-border);
  background-color: var(--notification-background-color, #0e3a2f);
  color: var(--notification-text-color, #ffffff);
  /* stylelint-disable-next-line order/order */
}
.c-notifications-group.js-is-ready > .c-notification, .c-notification__container.js-is-ready .c-notification {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  /* [5] */
}
.c-notification--info .c-notification__status-icon {
  font-size: 24px;
}
.c-notification--info .c-notification__status-icon::before {
  content: "\f19b";
}

.c-notification--success .c-notification__status-icon {
  font-size: 24px;
}
.c-notification--success .c-notification__status-icon::before {
  content: "\f146";
}

.c-notification--warning .c-notification__status-icon {
  font-size: 24px;
}
.c-notification--warning .c-notification__status-icon::before {
  content: "\f210";
}

.c-notification--error .c-notification__status-icon {
  font-size: 24px;
}
.c-notification--error .c-notification__status-icon::before {
  content: "\f17a";
}

/* Normal Notifications (not Context Notifications) */
:not(.c-notification--context).c-notification {
  /* [20] */
  --button-secondary-background: transparent;
  --button-secondary-text-color: #ffffff;
  --button-secondary-border-color: currentColor;
  --button-secondary-border-color-hover: currentColor;
}
:not(.c-notification--context).c-notification--info {
  --notification-background-color: #0e3a2f;
  --notification-text-color: #ffffff;
}

:not(.c-notification--context).c-notification--success {
  --notification-background-color: #0e3a2f;
  --notification-text-color: #ffffff;
  --notification-icon-color: #37d002;
}

:not(.c-notification--context).c-notification--warning {
  --notification-background-color: #0e3a2f;
  --notification-text-color: #ffffff;
  --notification-icon-color: #cd4a19;
}

:not(.c-notification--context).c-notification--error {
  --notification-background-color: #0e3a2f;
  --notification-text-color: #ffffff;
  --notification-icon-color: #d92b35;
}

/* Marketing Colors Notifications */
/* stylelint-disable-next-line no-duplicate-selectors */
.c-notification[data-marketing-theme="1"] {
  --button-secondary-background: #464748;
  --button-secondary-background-hover: #5a5b5c;
  --button-secondary-text-color: #ffffff;
  --button-secondary-text-color-hover: #ffffff;
  --notification-background-color: #f9d1b8;
  --notification-text-color: #161718;
  --notification-title-color: #161718;
}
.c-notification[data-marketing-theme="2"] {
  --button-secondary-background: #464748;
  --button-secondary-background-hover: #5a5b5c;
  --button-secondary-text-color: #ffffff;
  --button-secondary-text-color-hover: #ffffff;
  --notification-background-color: #c3f1b3;
  --notification-text-color: #161718;
  --notification-title-color: #161718;
}

/* Context Notifications */
.c-notification--context {
  --notification-text-color: #161718;
  --notification-title-color: #161718;
  --notification-background-color: #e4e4e4;
  --notification-border-style: solid;
  --notification-border-width: 0;
  --notification-border-color: #7c7d7e;
  border: var(--notification-border, 0 solid #7c7d7e);
  border-color: var(--notification-border-color);
  /* [20] */
}
.c-notification--context.c-notification--info {
  --notification-title-color: #161718;
  --notification-border-color: #2d71d7;
}

.c-notification--context.c-notification--success {
  --notification-title-color: #161718;
  --notification-icon-color: #37d002;
  --notification-border-color: #37d002;
}

.c-notification--context.c-notification--warning {
  --notification-title-color: #161718;
  --notification-icon-color: #cd4a19;
  --notification-border-color: #cd4a19;
}

.c-notification--context.c-notification--error {
  --notification-title-color: #161718;
  --notification-icon-color: #d92b35;
  --notification-border-color: #d92b35;
}

.c-notification__container {
  overflow: hidden; /* [4] */
}
.c-notification__container + .c-notification__container {
  margin-top: 8px;
}
.js-is-ready > .c-notification__container {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  /* [5] */
}
.c-notification__container.is-closed {
  height: 0; /* [6] */
  visibility: hidden;
}

.c-notification__close {
  padding: 0;
  border: 0;
  background-color: transparent;
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  position: absolute;
  top: -11.25px; /* [8] */
  right: 0;
  height: 24px;
  border-radius: 50%;
  cursor: pointer;
  outline: none;
}
.c-notification__close:focus {
  outline: 0;
}
.c-notification__close::before {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  content: "\f15a";
  font-size: 24px;
  vertical-align: middle;
  color: var(--notification-text-color, #ffffff);
}

.c-notification__status-icon {
  margin-right: 8px;
  font-size: 24px;
  color: var(--notification-icon-color);
}
.c-notification .c-notification__status-icon::before {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
}

.c-notification__outer-wrap {
  max-width: calc(1248px + 192px);
  padding-left: 96px;
  padding-right: 96px;
  --page-wrap: 96px;
  margin-right: auto;
  margin-left: auto;
}
@media (max-width: 960px) {
  .c-notification__outer-wrap {
    max-width: calc(1248px + 96px);
    padding-left: 48px;
    padding-right: 48px;
    --page-wrap: 48px;
  }
}
@media (max-width: 720px) {
  .c-notification__outer-wrap {
    max-width: calc(1248px + 48px);
    padding-left: 24px;
    padding-right: 24px;
    --page-wrap: 24px;
  }
}
@media (max-width: 480px) {
  .c-notification__outer-wrap {
    max-width: calc(1248px + 24px);
    padding-left: 12px;
    padding-right: 12px;
    --page-wrap: 12px;
  }
}

.c-notification__inner-wrap {
  font-size: 0.875rem;
  line-height: 1.5;
  /* [8] */
  position: relative; /* [9] */
  display: flex;
  margin-bottom: 0;
  padding-right: 40px; /* [10] */
}

.c-notification__text,
.c-notification__text > p:last-child {
  margin-bottom: 0; /* [14] */
}
.c-notification__text a {
  color: inherit; /* [11] */
}

.c-notification__title {
  font-size: 1rem;
  margin-bottom: 8px;
  font-weight: 700;
  color: var(--notification-title-color, #ffffff);
}

.c-notification__buttons {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 16px;
}

/* ------------------------------------*\
   #NOTIFICATIONS
\*------------------------------------ */
/**
 * [1] Compensate misalignment between icon and title/text.
 * [2] Avoid collision with button states.
 */
.c-notification {
  --focus-outline-color: #ffffff;
}
.c-notification.c-notification--context, .c-notification[data-marketing-theme] {
  --focus-outline-color: #161718;
}
.c-notification:not(.c-notification--context, [data-marketing-theme]) .c-btn {
  border: 2px solid currentColor;
}
.c-notification:not(.c-notification--context, [data-marketing-theme]) .c-btn:focus-visible {
  --focus-outline-color: #ffffff;
}

.c-notification__close {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  scale: 1;
  top: 0;
}
.c-notification__close::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  transition: inherit;
}
.c-notification__close:hover::after {
  background-color: rgba(243, 243, 243, 0.12);
}

.c-notification__close:focus-visible::after {
  --focus-outline-color: #ffffff;
  --focus-outline-offset: 0;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

.c-notification__close:active {
  scale: 0.95;
}

@media (max-width: 480px) {
  .c-notification__close {
    right: 4px; /* [2] */
  }
}
.c-notification--context .c-notification__close:hover::after, [data-marketing-theme] .c-notification__close:hover::after {
  background-color: rgba(22, 23, 24, 0.06);
}
.c-notification--context .c-notification__close::after, [data-marketing-theme] .c-notification__close::after {
  --focus-outline-color: #161718;
}

.c-notification__status-icon {
  margin-top: -0.15em; /* [1] */
}

:not(.c-notification--context).c-notification {
  position: relative;
}
:not(.c-notification--context).c-notification--success {
  border-left: 0;
}
:not(.c-notification--context).c-notification--success::after {
  background-color: #37d002;
}

:not(.c-notification--context).c-notification--warning {
  border-left: 0;
}
:not(.c-notification--context).c-notification--warning::after {
  background-color: #cd4a19;
}

:not(.c-notification--context).c-notification--error {
  border-left: 0;
}
:not(.c-notification--context).c-notification--error::after {
  background-color: #d92b35;
}

:not(.c-notification--context).c-notification::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 6px;
  height: 100%;
}

/* ------------------------------------*\
    #WIZARD
\*------------------------------------ */
/**
 * [1] Make sure all items are the same width.
 * [2] If the indicator is positioned above the item text, make sure that the
 *     items are aligned to each other at the top.
 * [3] Force collapsing of items on small screen and align it to the left.
 * [4] Create little stroke arrow between items. The arrows are always placed
 *     in front of the items.
 * [5] Upper half of the stroke arrow.
 * [6] Bottom half of the stroke arrow.
 * [7] Add block arrow to items with certain states (disabled, active) by using
 *     two skewed pseudo elements as background.
 * [8] Fix block arrow items not being wide enough for first and last item and
 *     cut them off when they overflow the container.
 * [9] Change background and text colors for the specific states.
 * [10] Change link text colors for the specific states upon hover/focus.
 * [11] The default items (i.e. the future items) are not clickable.
 * [12] The done and active items have to be made clickable again (see [11]).
 * [13] On small screen, the indicator is always aligned in row with the text
 *      and left aligned.
 * [14] Position content above arrows and overlap arrows for states with
 *      background color.
 * [15] Add relative positioning to have a reference for pseudo elements that
 *      need e.g. absolute positioning (used for arrows and such).
 * [16] Add background colors to all states for small screen list.
 * [17] Stretch wizard link to full height to center its content vertically.
 * [18] Use icon as link indicator if the indicator should not be numbered.
 * [19] Add regular font styles if link indicator should not be numbered instead
 *      of being an icon.
 * [20] Change indicator styling for the specific states.
 * [21] Change indicator styling for the specific states upon hover/focus.
 * [22] Optionally revert order of trigger icon, counter and text.
 * [23] Prevent interaction of the element(s), when modifier is given
 *      except on the .c-wizard__trigger on mobile.
 * [24] Set horizontal link content alignment.
 * [25] Set vertical link content alignment, but always reset to `center` for
 *      collapsed layout in small viewports.
 * [26] If `$wizard-page-wrap: true` limit the wizard width to the page wrap
 *      width.
 * [27] Resize the wizard to the full page wrap width.
 * [28] If an icon is used as indicator but it is set to `none`, still use an empty
 *      `content` attribute to show the pseudo element as an empty indicator.
 */
.c-wizard {
  margin-top: 24px;
  margin-bottom: 24px;
}

.c-wizard__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  /* [26] */
  max-width: calc(1248px + 192px);
  padding-left: 96px;
  padding-right: 96px;
  --page-wrap: 96px;
  margin-right: auto;
  margin-left: auto;
  /* [26] */
  width: 100%; /* [27] */
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
.c-wizard__list li {
  display: block;
  margin-bottom: 0;
}
@media (max-width: 960px) {
  .c-wizard__list {
    max-width: calc(1248px + 96px);
    padding-left: 48px;
    padding-right: 48px;
    --page-wrap: 48px;
  }
}
@media (max-width: 720px) {
  .c-wizard__list {
    max-width: calc(1248px + 48px);
    padding-left: 24px;
    padding-right: 24px;
    --page-wrap: 24px;
  }
}
@media (max-width: 480px) {
  .c-wizard__list {
    max-width: calc(1248px + 24px);
    padding-left: 12px;
    padding-right: 12px;
    --page-wrap: 12px;
  }
}
/* [1] */
@media (max-width: 720px) {
  [data-wizard-collapse=s] .c-wizard__list {
    flex-direction: column; /* [3] */
    align-items: flex-start; /* [3] */
  }
}
@media (max-width: 960px) {
  [data-wizard-collapse=m] .c-wizard__list {
    flex-direction: column; /* [3] */
    align-items: flex-start; /* [3] */
  }
}
@media (max-width: 1280px) {
  [data-wizard-collapse=l] .c-wizard__list {
    flex-direction: column; /* [3] */
    align-items: flex-start; /* [3] */
  }
}

@media (max-width: 720px) {
  [data-wizard-collapse=s].js-is-ready .c-wizard__list.is-closed {
    display: none;
  }
}

@media (max-width: 960px) {
  [data-wizard-collapse=m].js-is-ready .c-wizard__list.is-closed {
    display: none;
  }
}

@media (max-width: 1280px) {
  [data-wizard-collapse=l].js-is-ready .c-wizard__list.is-closed {
    display: none;
  }
}

.c-wizard__item {
  position: relative; /* [15] */
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 0; /* [1] */
  padding-top: 4px;
  padding-right: 8px;
  padding-bottom: 4px;
  padding-left: 8px;
  min-height: 60px;
}
@media (max-width: 720px) {
  [data-wizard-collapse=s] .c-wizard__item {
    flex-basis: auto;
    width: 100%;
    min-height: auto;
    padding-right: 0;
    padding-left: 0;
    /* [16] */
  }
  [data-wizard-collapse=s] .c-wizard__item.is-disabled {
    /* [16] */
  }
  [data-wizard-collapse=s] .c-wizard__item.is-done {
    /* [16] */
  }
  [data-wizard-collapse=s] .c-wizard__item.is-active {
    background-color: #ffffff; /* [16] */
  }
}
@media (max-width: 960px) {
  [data-wizard-collapse=m] .c-wizard__item {
    flex-basis: auto;
    width: 100%;
    min-height: auto;
    padding-right: 0;
    padding-left: 0;
    /* [16] */
  }
  [data-wizard-collapse=m] .c-wizard__item.is-disabled {
    /* [16] */
  }
  [data-wizard-collapse=m] .c-wizard__item.is-done {
    /* [16] */
  }
  [data-wizard-collapse=m] .c-wizard__item.is-active {
    background-color: #ffffff; /* [16] */
  }
}
@media (max-width: 1280px) {
  [data-wizard-collapse=l] .c-wizard__item {
    flex-basis: auto;
    width: 100%;
    min-height: auto;
    padding-right: 0;
    padding-left: 0;
    /* [16] */
  }
  [data-wizard-collapse=l] .c-wizard__item.is-disabled {
    /* [16] */
  }
  [data-wizard-collapse=l] .c-wizard__item.is-done {
    /* [16] */
  }
  [data-wizard-collapse=l] .c-wizard__item.is-active {
    background-color: #ffffff; /* [16] */
  }
}

.c-wizard__link {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  position: relative; /* [11] */
  z-index: 3; /* [14] */
  display: flex;
  flex-direction: row;
  align-items: center; /* [25] */
  justify-content: center; /* [24] */
  height: 100%; /* [17] */
  text-decoration: none;
  text-align: center;
  color: #9e9fa0;
  cursor: default; /* [11] */
  pointer-events: none; /* [11] */
  font-weight: bold;
  font-size: 1.25rem;
}
@media (max-width: 720px) {
  [data-wizard-collapse=s] .c-wizard__link {
    flex-direction: row; /* [13] */
    align-items: center; /* [25] */
    justify-content: flex-start; /* [13] */
    padding-top: 8px;
    padding-bottom: 8px;
    text-align: left;
  }
}
@media (max-width: 960px) {
  [data-wizard-collapse=m] .c-wizard__link {
    flex-direction: row; /* [13] */
    align-items: center; /* [25] */
    justify-content: flex-start; /* [13] */
    padding-top: 8px;
    padding-bottom: 8px;
    text-align: left;
  }
}
@media (max-width: 1280px) {
  [data-wizard-collapse=l] .c-wizard__link {
    flex-direction: row; /* [13] */
    align-items: center; /* [25] */
    justify-content: flex-start; /* [13] */
    padding-top: 8px;
    padding-bottom: 8px;
    text-align: left;
  }
}
.c-wizard__item.is-disabled .c-wizard__link {
  color: #9e9fa0; /* [9] */
}
.c-wizard__item.is-done .c-wizard__link, .c-wizard__item.is-active .c-wizard__link, .c-wizard__item.is-error .c-wizard__link {
  cursor: pointer; /* [12] */
  pointer-events: auto; /* [12] */
}
.c-wizard__item.has-no-interaction .c-wizard__link {
  pointer-events: none; /* [23] */
}
.c-wizard__item.is-done .c-wizard__link {
  color: #464748; /* [9] */
}
.c-wizard__item.is-done .c-wizard__link:hover, .c-wizard__item.is-done .c-wizard__link:focus {
  color: #161718; /* [10] */
}
.c-wizard__item.is-done .c-wizard__link:hover, .c-wizard__item.is-done .c-wizard__link:focus {
  /* stylelint-disable-next-line selector-max-specificity */
}
.c-wizard__item.is-done .c-wizard__link:hover::before, .c-wizard__item.is-done .c-wizard__link:focus::before {
  color: #161718; /* [21] */
}
.c-wizard__item.is-active .c-wizard__link {
  color: #464748; /* [9] */
}
.c-wizard__item.is-active .c-wizard__link:hover, .c-wizard__item.is-active .c-wizard__link:focus {
  color: #161718; /* [10] */
}
.c-wizard__item.is-active .c-wizard__link:hover, .c-wizard__item.is-active .c-wizard__link:focus {
  /* stylelint-disable-next-line selector-max-specificity */
}
.c-wizard__item.is-active .c-wizard__link:hover::before, .c-wizard__item.is-active .c-wizard__link:focus::before {
  color: #161718; /* [21] */
}
.c-wizard__item.is-error .c-wizard__link {
  color: #d92b35; /* [9] */
}
.c-wizard__link::before {
  border-radius: 50%;
  padding: 6px;
}
.c-wizard__link::before {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 20px;
  width: 20px;
  height: 20px;
  margin-right: 4px;
  color: #161718;
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  /* [18] */
  content: ""; /* [28] */
}
@media (max-width: 720px) {
  [data-wizard-collapse=s] .c-wizard__link::before {
    margin-right: 4px;
    margin-bottom: 0;
  }
}
@media (max-width: 960px) {
  [data-wizard-collapse=m] .c-wizard__link::before {
    margin-right: 4px;
    margin-bottom: 0;
  }
}
@media (max-width: 1280px) {
  [data-wizard-collapse=l] .c-wizard__link::before {
    margin-right: 4px;
    margin-bottom: 0;
  }
}
.c-wizard__item.is-disabled .c-wizard__link::before {
  color: #9e9fa0; /* [20] */
}
.c-wizard__item.is-done .c-wizard__link::before {
  content: "\f146"; /* [20] */
  color: #37d002; /* [20] */
}
.c-wizard__item.is-active .c-wizard__link::before {
  color: #464748; /* [20] */
}
.c-wizard__item.is-error .c-wizard__link::before {
  content: "\f17a"; /* [20] */
  color: #d92b35; /* [20] */
}

.c-wizard__link-title {
  font-size: 0.875rem;
  line-height: 1;
}

.c-wizard__trigger {
  display: none;
}
@media (max-width: 720px) {
  [data-wizard-collapse=s] .c-wizard__trigger {
    padding: 0;
    border: 0;
    background-color: transparent;
    display: flex;
    align-items: center;
    /* [26] */
    max-width: calc(1248px + 192px);
    padding-left: 96px;
    padding-right: 96px;
    --page-wrap: 96px;
    margin-right: auto;
    margin-left: auto;
    /* [26] */
    width: 100%;
    min-height: 60px;
    padding-top: 8px;
    padding-bottom: 8px;
    color: #464748;
  }
  [data-wizard-collapse=s] .c-wizard__trigger:focus {
    outline: 0;
  }
}
@media (max-width: 720px) and (max-width: 960px) {
  [data-wizard-collapse=s] .c-wizard__trigger {
    max-width: calc(1248px + 96px);
    padding-left: 48px;
    padding-right: 48px;
    --page-wrap: 48px;
  }
}
@media (max-width: 720px) and (max-width: 720px) {
  [data-wizard-collapse=s] .c-wizard__trigger {
    max-width: calc(1248px + 48px);
    padding-left: 24px;
    padding-right: 24px;
    --page-wrap: 24px;
  }
}
@media (max-width: 720px) and (max-width: 480px) {
  [data-wizard-collapse=s] .c-wizard__trigger {
    max-width: calc(1248px + 24px);
    padding-left: 12px;
    padding-right: 12px;
    --page-wrap: 12px;
  }
}
@media (max-width: 720px) {
  [data-wizard-collapse=s] .c-wizard__trigger:hover, [data-wizard-collapse=s] .c-wizard__trigger:focus {
    color: #161718;
  }
}
@media (max-width: 960px) {
  [data-wizard-collapse=m] .c-wizard__trigger {
    padding: 0;
    border: 0;
    background-color: transparent;
    display: flex;
    align-items: center;
    /* [26] */
    max-width: calc(1248px + 192px);
    padding-left: 96px;
    padding-right: 96px;
    --page-wrap: 96px;
    margin-right: auto;
    margin-left: auto;
    /* [26] */
    width: 100%;
    min-height: 60px;
    padding-top: 8px;
    padding-bottom: 8px;
    color: #464748;
  }
  [data-wizard-collapse=m] .c-wizard__trigger:focus {
    outline: 0;
  }
}
@media (max-width: 960px) and (max-width: 960px) {
  [data-wizard-collapse=m] .c-wizard__trigger {
    max-width: calc(1248px + 96px);
    padding-left: 48px;
    padding-right: 48px;
    --page-wrap: 48px;
  }
}
@media (max-width: 960px) and (max-width: 720px) {
  [data-wizard-collapse=m] .c-wizard__trigger {
    max-width: calc(1248px + 48px);
    padding-left: 24px;
    padding-right: 24px;
    --page-wrap: 24px;
  }
}
@media (max-width: 960px) and (max-width: 480px) {
  [data-wizard-collapse=m] .c-wizard__trigger {
    max-width: calc(1248px + 24px);
    padding-left: 12px;
    padding-right: 12px;
    --page-wrap: 12px;
  }
}
@media (max-width: 960px) {
  [data-wizard-collapse=m] .c-wizard__trigger:hover, [data-wizard-collapse=m] .c-wizard__trigger:focus {
    color: #161718;
  }
}
@media (max-width: 1280px) {
  [data-wizard-collapse=l] .c-wizard__trigger {
    padding: 0;
    border: 0;
    background-color: transparent;
    display: flex;
    align-items: center;
    /* [26] */
    max-width: calc(1248px + 192px);
    padding-left: 96px;
    padding-right: 96px;
    --page-wrap: 96px;
    margin-right: auto;
    margin-left: auto;
    /* [26] */
    width: 100%;
    min-height: 60px;
    padding-top: 8px;
    padding-bottom: 8px;
    color: #464748;
  }
  [data-wizard-collapse=l] .c-wizard__trigger:focus {
    outline: 0;
  }
}
@media (max-width: 1280px) and (max-width: 960px) {
  [data-wizard-collapse=l] .c-wizard__trigger {
    max-width: calc(1248px + 96px);
    padding-left: 48px;
    padding-right: 48px;
    --page-wrap: 48px;
  }
}
@media (max-width: 1280px) and (max-width: 720px) {
  [data-wizard-collapse=l] .c-wizard__trigger {
    max-width: calc(1248px + 48px);
    padding-left: 24px;
    padding-right: 24px;
    --page-wrap: 24px;
  }
}
@media (max-width: 1280px) and (max-width: 480px) {
  [data-wizard-collapse=l] .c-wizard__trigger {
    max-width: calc(1248px + 24px);
    padding-left: 12px;
    padding-right: 12px;
    --page-wrap: 12px;
  }
}
@media (max-width: 1280px) {
  [data-wizard-collapse=l] .c-wizard__trigger:hover, [data-wizard-collapse=l] .c-wizard__trigger:focus {
    color: #161718;
  }
}

.c-wizard__trigger-icon {
  font-size: 1.5rem;
  color: inherit;
  margin-right: 4px;
}
.c-wizard__trigger-icon::before {
  border-radius: 50%;
  padding: 3px;
}
.c-wizard__trigger-icon::before {
  border: 1px solid transparent;
  background-color: transparent;
}
.c-wizard__trigger-icon::before {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  content: "\f156";
}
.c-wizard__trigger[aria-expanded=false] .c-wizard__trigger-icon::before {
  content: "\f151";
}

.c-wizard__trigger-text {
  font-size: 0.875rem;
  line-height: 1;
  font-weight: bold;
  text-align: left;
}

.c-wizard__trigger-counter {
  font-size: 0.875rem;
  line-height: 1;
  font-weight: bold;
  margin-left: 8px;
}

.c-wizard--no-interaction .c-wizard__list * {
  pointer-events: none !important; /* stylelint-disable-line itcss/no-at-important */ /* [23] */
}

/**
 * [1] We use a linear gradient as line background to create cutouts for the dots.
 * [2] The outer lines of the first and last items are displayed transparently.
 */
.c-wizard {
  --wizard-item-dot-size: 12px;
  --wizard-item-dot-color: #9e9fa0;
  --wizard-item-dot-gap: 2px;
  --wizard-item-dot-border-width: 1.5px;
  --wizard-item-line-width: 2px;
  --wizard-item-line-color: #9e9fa0;
}

.c-wizard__trigger-icon {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  scale: 1;
}
.c-wizard__trigger-icon::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  transition: inherit;
}
.c-wizard__trigger:hover .c-wizard__trigger-icon::after {
  background-color: rgba(22, 23, 24, 0.06);
}

.c-wizard__trigger:focus-visible .c-wizard__trigger-icon::after {
  --focus-outline-color: #161718;
  --focus-outline-offset: 0;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

.c-wizard__trigger:active .c-wizard__trigger-icon {
  scale: 0.95;
}

@media (max-width: 720px) {
  [data-wizard-collapse=s] .c-wizard__trigger-icon {
    order: 1;
    margin-left: auto;
  }
}
@media (max-width: 960px) {
  [data-wizard-collapse=m] .c-wizard__trigger-icon {
    order: 1;
    margin-left: auto;
  }
}
@media (max-width: 1280px) {
  [data-wizard-collapse=l] .c-wizard__trigger-icon {
    order: 1;
    margin-left: auto;
  }
}

.c-wizard__item {
  --wizard-item-dot-color: #464748;
  --wizard-item-dot-background-color: var(--wizard-item-dot-color);
  --wizard-item-line-color: #464748;
  --wizard-item-line-before-color: var(--wizard-item-line-color);
  --wizard-item-line-after-color: var(--wizard-item-line-color);
  /* line */
  /* dots */
  /* all items after the active item */
  /* stylelint-disable-next-line selector-max-class */
}
.c-wizard__item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: var(--wizard-item-line-width);
  transform: translateY(-50%);
  /* stylelint-disable */
  background-image: linear-gradient(to var(--wizard-item-line-direction, right), var(--wizard-item-line-before-color) calc(50% - var(--wizard-item-dot-size) / 2 - var(--wizard-item-dot-gap)), transparent calc(50% - var(--wizard-item-dot-size) / 2 - var(--wizard-item-dot-gap)), transparent calc(50% + var(--wizard-item-dot-size) / 2 + var(--wizard-item-dot-gap)), var(--wizard-item-line-after-color) 0); /* [1] */
  /* stylelint-enable */
}
.c-wizard__item::after {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: var(--wizard-item-dot-size);
  height: var(--wizard-item-dot-size);
  transform: translate(-50%, -50%);
  border: var(--wizard-item-dot-border-width) solid var(--wizard-item-dot-border-color, var(--wizard-item-dot-color));
  border-radius: 50%;
  background-color: var(--wizard-item-dot-background-color);
}
.c-wizard__item.c-wizard__item.is-active ~ .c-wizard__item {
  --wizard-item-line-color: #9e9fa0;
  --wizard-item-dot-color: #9e9fa0;
  --wizard-item-dot-background-color: transparent;
}
.c-wizard__item.is-disabled {
  --wizard-item-dot-color: #9e9fa0;
}
.c-wizard__item.is-active {
  --wizard-item-line-after-color: #9e9fa0;
  --wizard-item-dot-size: 18px;
  --wizard-item-dot-color: #464748;
}
.c-wizard__item.is-done .c-wizard__link, .c-wizard__item.is-error .c-wizard__link {
  text-align: left;
}
.c-wizard__item:first-child {
  --wizard-item-line-before-color: transparent; /* [2] */
}
.c-wizard__item:last-child {
  --wizard-item-line-after-color: transparent; /* [2] */
}
.c-wizard__item:has(.c-wizard__link:hover, .c-wizard__link:focus) {
  --wizard-item-dot-background-color: #78faae;
}

.c-wizard__link::before {
  content: unset;
  padding: 0;
}

@media (max-width: 720px) {
  [data-wizard-collapse=s] .c-wizard__list {
    margin-top: -16px;
  }
  [data-wizard-collapse=s] .c-wizard__item {
    --wizard-item-line-direction: bottom;
    padding-left: 34px;
  }
  [data-wizard-collapse=s] .c-wizard__item::before {
    left: calc(18px / 2);
    right: unset; /* stylelint-disable-line */
    bottom: 0;
    width: var(--wizard-item-line-width);
    height: auto;
    transform: translateX(-50%);
  }
  [data-wizard-collapse=s] .c-wizard__item::after {
    top: 50%;
    left: calc(18px / 2);
  }
}

@media (max-width: 960px) {
  [data-wizard-collapse=m] .c-wizard__list {
    margin-top: -16px;
  }
  [data-wizard-collapse=m] .c-wizard__item {
    --wizard-item-line-direction: bottom;
    padding-left: 34px;
  }
  [data-wizard-collapse=m] .c-wizard__item::before {
    left: calc(18px / 2);
    right: unset; /* stylelint-disable-line */
    bottom: 0;
    width: var(--wizard-item-line-width);
    height: auto;
    transform: translateX(-50%);
  }
  [data-wizard-collapse=m] .c-wizard__item::after {
    top: 50%;
    left: calc(18px / 2);
  }
}

@media (max-width: 1280px) {
  [data-wizard-collapse=l] .c-wizard__list {
    margin-top: -16px;
  }
  [data-wizard-collapse=l] .c-wizard__item {
    --wizard-item-line-direction: bottom;
    padding-left: 34px;
  }
  [data-wizard-collapse=l] .c-wizard__item::before {
    left: calc(18px / 2);
    right: unset; /* stylelint-disable-line */
    bottom: 0;
    width: var(--wizard-item-line-width);
    height: auto;
    transform: translateX(-50%);
  }
  [data-wizard-collapse=l] .c-wizard__item::after {
    top: 50%;
    left: calc(18px / 2);
  }
}

/* ------------------------------------*\
    #INFO-ICON
\*------------------------------------ */
/**
 * [1] Vertically align icon, if needed.
 * [2] Reduce the height of Info Icon by removing the padding
 *     inherited from the `icon-variant` mixin.
 * [3] Ensure other components are not affected by the Info Icon.
 * [4] Horizontal spacing.
 * [5] Additional styles for brands that need a CSS border.
 * [6] Fix clipping by slightly offsetting (Safari).
 */
.c-info-icon {
  color: currentColor;
  position: relative; /* [3] */
  margin-top: -100px; /* [3] */ /* stylelint-disable-line scale-unlimited/declaration-strict-value */
  margin-bottom: -100px; /* [3] */ /* stylelint-disable-line scale-unlimited/declaration-strict-value */
  /* [4] */
  padding: 0.03em; /* [6] */ /* stylelint-disable-line scale-unlimited/declaration-strict-value */
  line-height: 1; /* [3] */
  vertical-align: middle; /* [1] */
}
.c-info-icon::before {
  padding: 0; /* [2] */
  line-height: 1;
}

/**
 * [1] Set a preferred size for the icon that is based on the text's size.
 *     Use `clamp()` to set bounds - with defined minimum and maximum size
 *     based on defined icon sizes.
 *     This way the icon stays proportional to the (responsive) text size
 *     without need of media-queries.
 *     This also solves potential misalignments, e.g. with section-heading.
 * [2] Use negative offset due to the larger size with "whitespace" of the info-icon
 *     in order to not create spacing/padding between icon and outline.
 * [3] Use "inverted" icon on hover.
 */
.c-info-icon {
  border-radius: 50%;
  /* stylelint-disable */
  /* [1] */
  font-size: clamp(24px, 1em, 32px);
  /* stylelint-enable */
}
.c-info-icon.c-icon--\[semantic-info\]:where(:hover, :focus-visible) {
  --bron-icon: "\f19a"; /* [3] */
}
.c-info-icon:focus-visible {
  outline: 0;
}

/* ------------------------------------*\
    #HERO-TEASER
\*------------------------------------ */
/**
 * [1]  Reference for the `.c-hero-teaser__image`.
 * [2]  Prepare for worst case: If the text content does not fit the hero-teaser
 *      container, at least cut off its overflow.
 * [3]  Provide anchor point modifiers for the hero-teaser image.
 * [4]  By default, when the image is cropped inside the hero-teaser
 *      container, crop it from the dead center.
 * [5]  Always fill the entire hero-teaser container with the image.
 * [6]  Override standard behaviour, so the image can bleed out over the
 *      viewport edges.
 * [7]  The hero image should not reserve any height, if `.c-hero-teaser--auto`,
        since the content controls the height in this case.
 * [8]  Set position to `relative` so it reserves the necessary height.
 * [9]  Provide the correct spacing between the page-head (i.e. logo) and the
 *      hero-teaser content.
 * [10] Position content on top of image.
 * [11] Reset default spacing.
 * [12] Since the content defines the height of the hero image for
 *      `.c-hero-teaser--auto` and `c-hero-teaser--layer`, centering the content
 *      does not make sense.
 * [13] Provide fallback for existing br tags between title_row spans.
 * [14] If activated (by default), align content horizontally with global
 *      page wrap.
 * [15] Fixes a vertical offset when `$hero-teaser-content-default-margin-bottom` is set.
 *      The `margin-bottom` of the last child of `.c-hero-teaser__heading` creates
 *      an extra space and thus is reset here.
 * [16] Set optional max width and center hero teaser horizontally.
 * [17] Set inverted variant button styles.
 * [18] Stretch the media element to the whole viewport width.
 * [19] Place the background-video controls on top of the hero teaser
 *      media and position it accordingly.
 * [20] Disable pointer events for the content element so that the video controls
 *      can receive events but enable it for content heading and content button children.
 * [21] Make sure the image does not stretch in relation to the hero teaser layer when
 *      expanding in variant `c-hero-teaser--layer`.
 * [22] Position the content in the variant `c-hero-teaser--layer` below the hero
 *      image on small screens.
 * [23] The variant `c-hero-teaser--layer` needs relative positioning in order to
 *      push the content downwards when expanding.
 * [24] The layer should always `$hero-teaser-layer-width`,  unless a different
 *      width is specified via `[data-hero-teaser-layer-size]` for larger viewports.
 * [25] Make sure that the layer never exceeds the width of the hero teaser.
 * [26] Add spacing between header and layer content.
 * [27] Ensure that the image height does not exceed the outer wrapper.
 * [28] Ensure that the layer content is set within the page-wrap.
 * [29] Add variable to set flex-alignment.
 * [30] Add space between layer and previous element (e.g. `.c-hero-teaser__heading`).
 * [31] Remove bottom margin from last layer child element (e.g. `<p>`).
 * [32] Invoke colors when layer and inverted variant are combined.
 */
.c-hero-teaser {
  position: relative; /* [1] */
  overflow: hidden; /* [2] */
}
.c-hero-teaser.c-hero-teaser--layer {
  min-height: 700px;
  /* [27] */
}
@media (max-width: 720px) {
  .c-hero-teaser.c-hero-teaser--layer {
    min-height: 540px;
  }
}
@media (max-width: 480px) {
  .c-hero-teaser.c-hero-teaser--layer {
    min-height: 320px;
  }
}

.c-hero-teaser__background-video {
  position: relative;
  z-index: 700;
  width: 100%; /* [18] */
}
.c-hero-teaser__background-video video {
  object-fit: cover;
  height: 700px;
  width: 100%; /* [18] */
}
@media (max-width: 720px) {
  .c-hero-teaser__background-video video {
    height: 540px;
  }
}
@media (max-width: 480px) {
  .c-hero-teaser__background-video video {
    height: 320px;
  }
}

.c-hero-teaser__background-video-control {
  position: absolute; /* [19] */
}
@media (max-width: 480px) {
  .c-hero-teaser__background-video-control {
    bottom: 50%; /* [19] */
    right: 50%; /* [19] */
    transform: translate3d(50%, 50%, 0);
  }
  .c-hero-teaser__background-video-control:not(.is-paused) {
    visibility: hidden;
  }
}
@media (min-width: 481px) {
  .c-hero-teaser__background-video-control {
    bottom: 24px; /* [19] */
    right: 24px; /* [19] */
  }
}
.c-hero-teaser__background-video-control:not(.is-paused) {
  --play-button-icon: "\f161";
}
.c-hero-teaser__background-video-control.is-paused {
  --play-button-icon: "\f162";
}

.c-hero-teaser__image {
  object-fit: cover;
  /* [3] [4] */
  height: 700px;
  position: relative;
  z-index: 700;
  width: 100%;
  min-width: 100%; /* [5] */
  max-width: none; /* [6] */
  /* [3] */
  /* [3] */
  /* [3] */
  /* [3] */
  /* [3] */
  /* [3] */
  /* [3] */
  /* [3] */
}
@media (max-width: 720px) {
  .c-hero-teaser__image {
    height: 540px;
  }
}
@media (max-width: 480px) {
  .c-hero-teaser__image {
    height: 320px;
  }
}
.c-hero-teaser--shallow .c-hero-teaser__image {
  height: 540px;
}
@media (max-width: 720px) {
  .c-hero-teaser--shallow .c-hero-teaser__image {
    height: 480px;
  }
}
@media (max-width: 480px) {
  .c-hero-teaser--shallow .c-hero-teaser__image {
    height: 280px;
  }
}
.c-hero-teaser--auto .c-hero-teaser__image {
  height: 100%;
  /* [6] */
}
@media (min-width: 481px) {
  .c-hero-teaser--auto .c-hero-teaser__image {
    position: absolute; /* [7] */
  }
}
.c-hero-teaser--layer .c-hero-teaser__image {
  position: absolute; /* [21] */
}
@media (max-width: 479px) {
  .c-hero-teaser--layer .c-hero-teaser__image {
    position: relative; /* [22] */
  }
}
.c-hero-teaser--top-center .c-hero-teaser__image {
  object-fit: cover;
  object-position: top center;
}
.c-hero-teaser--top-left .c-hero-teaser__image {
  object-fit: cover;
  object-position: top left;
}
.c-hero-teaser--top-right .c-hero-teaser__image {
  object-fit: cover;
  object-position: top right;
}
.c-hero-teaser--center-left .c-hero-teaser__image {
  object-fit: cover;
  object-position: center left;
}
.c-hero-teaser--center-right .c-hero-teaser__image {
  object-fit: cover;
  object-position: center right;
}
.c-hero-teaser--bottom-center .c-hero-teaser__image {
  object-fit: cover;
  object-position: bottom center;
}
.c-hero-teaser--bottom-left .c-hero-teaser__image {
  object-fit: cover;
  object-position: bottom left;
}
.c-hero-teaser--bottom-right .c-hero-teaser__image {
  object-fit: cover;
  object-position: bottom right;
}

.c-hero-teaser__play-button.c-hero-teaser__play-button--video {
  position: absolute;
  z-index: 800;
  left: 50%;
  transform: translate(-50%, -50%);
  top: 160px;
}
@media (min-width: 481px) {
  .c-hero-teaser__play-button.c-hero-teaser__play-button--video {
    display: none;
  }
}
@media (max-width: 480px) {
  .c-hero-teaser__play-button.c-hero-teaser__play-button--modal {
    display: none;
  }
}

.c-hero-teaser__content {
  padding-top: 48px;
  padding-bottom: 32px;
  position: absolute; /* [10] */
  z-index: 900;
}
@media (max-width: 480px) {
  .c-hero-teaser__content {
    padding-top: 0;
    padding-bottom: 16px;
  }
}
@media (max-width: 480px) {
  .c-hero-teaser__content {
    position: relative; /* [8] */
    margin-top: 0;
  }
}
.c-hero-teaser:not(.c-hero-teaser--auto):not(.c-hero-teaser--layer) .c-hero-teaser__content { /* [12] */ }
@media (min-width: 481px) {
  .c-hero-teaser:not(.c-hero-teaser--auto):not(.c-hero-teaser--layer) .c-hero-teaser__content {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
  }
}
.c-hero-teaser--auto .c-hero-teaser__content {
  position: relative;
}
.c-hero-teaser--layer .c-hero-teaser__content {
  min-height: 700px;
  /* [27] */
  position: relative; /* [23] */
  display: flex;
  flex-direction: column;
  justify-content: center; /* [29] */
}
@media (max-width: 720px) {
  .c-hero-teaser--layer .c-hero-teaser__content {
    min-height: 540px;
  }
}
@media (max-width: 480px) {
  .c-hero-teaser--layer .c-hero-teaser__content {
    min-height: 320px;
  }
}
.c-hero-teaser--video .c-hero-teaser__content {
  pointer-events: none; /* [20] */
  /* stylelint-disable selector-max-combinators, selector-max-compound-selectors */
}
.c-hero-teaser--video .c-hero-teaser__content .c-hero-teaser__heading *,
.c-hero-teaser--video .c-hero-teaser__content .c-hero-teaser__button * {
  pointer-events: all; /* [20] */
}

.c-hero-teaser__content-inner {
  max-width: calc(1248px + 192px);
  padding-left: 96px;
  padding-right: 96px;
  --page-wrap: 96px;
  margin-right: auto;
  margin-left: auto;
  /* [14] */
}
@media (max-width: 960px) {
  .c-hero-teaser__content-inner {
    max-width: calc(1248px + 96px);
    padding-left: 48px;
    padding-right: 48px;
    --page-wrap: 48px;
  }
}
@media (max-width: 720px) {
  .c-hero-teaser__content-inner {
    max-width: calc(1248px + 48px);
    padding-left: 24px;
    padding-right: 24px;
    --page-wrap: 24px;
  }
}
@media (max-width: 480px) {
  .c-hero-teaser__content-inner {
    max-width: calc(1248px + 24px);
    padding-left: 12px;
    padding-right: 12px;
    --page-wrap: 12px;
  }
}
.c-hero-teaser--layer .c-hero-teaser__content-inner {
  width: 100%; /* [28] */
}

.c-hero-teaser__heading {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  /* [15] */
}
.c-hero-teaser__heading h1, .c-hero-teaser__heading h2, .c-hero-teaser__heading h3, .c-hero-teaser__heading h4, .c-hero-teaser__heading h5, .c-hero-teaser__heading h6, .c-hero-teaser__heading p { /* [11] */
  margin-bottom: 0;
}
.c-hero-teaser__heading > :last-child {
  margin-bottom: 0;
}

.c-hero-teaser__title > * {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.c-hero-teaser__title-row + br {
  display: none; /* [13] */
}

.c-hero-teaser__layer {
  width: var(--hero-teaser-layer-width, 100%); /* [24] */
  max-width: 100%; /* [25] */
  padding: 32px;
  border: 1px solid #e4e4e4;
  background-color: rgba(255, 255, 255, 0.9);
}
* + .c-hero-teaser__layer {
  margin-top: 24px; /* [30] */
}
.c-hero-teaser__layer > :last-child {
  margin-bottom: 0; /* [31] */
}
@media (min-width: 960px) {
  .c-hero-teaser__layer[data-hero-teaser-layer-size=small] {
    --hero-teaser-layer-width: 460px; /* [24] */
  }
}
@media (min-width: 960px) {
  .c-hero-teaser__layer[data-hero-teaser-layer-size=medium] {
    --hero-teaser-layer-width: 720px; /* [24] */
  }
}
@media (min-width: 960px) {
  .c-hero-teaser__layer[data-hero-teaser-layer-size=large] {
    --hero-teaser-layer-width: 960px; /* [24] */
  }
}
@media (min-width: 960px) {
  .c-hero-teaser__layer[data-hero-teaser-layer-size=xlarge] {
    --hero-teaser-layer-width: 1280px; /* [24] */
  }
}

.c-hero-teaser__layer {
  padding-left: 32px;
  padding-right: 32px;
  border-radius: 8px;
}

.c-hero-teaser__title {
  margin-bottom: 8px;
}

.c-hero-teaser__title-row {
  font-size: 2.0625rem;
  line-height: 1;
  color: #ffffff;
}
@media (min-width: 721px) {
  .c-hero-teaser__title-row {
    font-size: 2.375rem;
  }
}
@media (min-width: 1281px) {
  .c-hero-teaser__title-row {
    font-size: 2.75rem;
  }
}

.c-hero-teaser__pretitle {
  font-size: 0.75rem;
  font-weight: 700;
  color: #ffffff;
  margin-bottom: 8px;
}

.c-hero-teaser__subtitle {
  font-size: 1.25rem;
  color: #ffffff;
  margin-bottom: 8px;
}
@media (min-width: 721px) {
  .c-hero-teaser__subtitle {
    font-size: 1.4375rem;
  }
}
@media (min-width: 1281px) {
  .c-hero-teaser__subtitle {
    font-size: 1.5rem;
  }
}

.c-hero-teaser__text {
  font-size: 1rem;
  color: #ffffff;
  margin-bottom: 8px;
}

.c-hero-teaser__button {
  margin-top: 24px;
}

@media (min-width: 481px) {
  .c-hero-teaser--inverted { /* [17] */ }
  .c-hero-teaser--inverted .c-hero-teaser__content {
    color: #ffffff;
  }
  .c-hero-teaser--inverted .c-hero-teaser__content .c-hero-teaser__title-row {
    color: #161718;
  }
  .c-hero-teaser--inverted .c-hero-teaser__content .c-hero-teaser__pretitle {
    color: #161718;
  }
  .c-hero-teaser--inverted .c-hero-teaser__content .c-hero-teaser__subtitle {
    color: #161718;
  }
  .c-hero-teaser--inverted .c-hero-teaser__content .c-hero-teaser__text {
    color: #161718;
  }
  .c-hero-teaser--inverted .c-hero-teaser__layer { /* [32] */
    color: #161718;
  }
  .c-hero-teaser--inverted .c-hero-teaser__layer .c-hero-teaser__layer {
    padding-left: 32px;
    padding-right: 32px;
    border-radius: 8px;
  }
  .c-hero-teaser--inverted .c-hero-teaser__layer .c-hero-teaser__title {
    margin-bottom: 8px;
  }
  .c-hero-teaser--inverted .c-hero-teaser__layer .c-hero-teaser__title-row {
    font-size: 2.0625rem;
    line-height: 1;
    color: #ffffff;
  }
}
@media (min-width: 481px) and (min-width: 721px) {
  .c-hero-teaser--inverted .c-hero-teaser__layer .c-hero-teaser__title-row {
    font-size: 2.375rem;
  }
}
@media (min-width: 481px) and (min-width: 1281px) {
  .c-hero-teaser--inverted .c-hero-teaser__layer .c-hero-teaser__title-row {
    font-size: 2.75rem;
  }
}
@media (min-width: 481px) {
  .c-hero-teaser--inverted .c-hero-teaser__layer .c-hero-teaser__pretitle {
    font-size: 0.75rem;
    font-weight: 700;
    color: #ffffff;
    margin-bottom: 8px;
  }
  .c-hero-teaser--inverted .c-hero-teaser__layer .c-hero-teaser__subtitle {
    font-size: 1.25rem;
    color: #ffffff;
    margin-bottom: 8px;
  }
}
@media (min-width: 481px) and (min-width: 721px) {
  .c-hero-teaser--inverted .c-hero-teaser__layer .c-hero-teaser__subtitle {
    font-size: 1.4375rem;
  }
}
@media (min-width: 481px) and (min-width: 1281px) {
  .c-hero-teaser--inverted .c-hero-teaser__layer .c-hero-teaser__subtitle {
    font-size: 1.5rem;
  }
}
@media (min-width: 481px) {
  .c-hero-teaser--inverted .c-hero-teaser__layer .c-hero-teaser__text {
    font-size: 1rem;
    color: #ffffff;
    margin-bottom: 8px;
  }
  .c-hero-teaser--inverted .c-hero-teaser__layer .c-hero-teaser__button {
    margin-top: 24px;
  }
  .c-hero-teaser--inverted .c-btn:not(.c-hero-teaser__layer .c-btn) {
    background-color: #78faae;
    color: #161718;
    /* stylelint-disable-next-line selector-max-specificity */
    /* stylelint-disable-next-line selector-max-specificity */
    /* stylelint-disable-next-line selector-max-specificity */
  }
  .c-hero-teaser--inverted .c-btn:not(.c-hero-teaser__layer .c-btn):hover {
    background-color: #a8ffcc;
    color: #161718;
  }
  .c-hero-teaser--inverted .c-btn:not(.c-hero-teaser__layer .c-btn):focus {
    background-color: #a8ffcc;
    color: #161718;
  }
  .c-hero-teaser--inverted .c-btn:not(.c-hero-teaser__layer .c-btn):active {
    background-color: transparent;
    color: #161718;
  }
  .c-hero-teaser--inverted .c-btn--link:hover {
    border-color: transparent;
    border-bottom: 1px solid #347954;
    background-color: transparent;
  }
}

.c-hero-teaser__guiding-line {
  position: absolute;
  z-index: 901;
  right: 0;
  bottom: 0;
  left: 0;
}

/**
 * [1] On smaller screens the inverted color scheme is used for all variants.
 * [2] Button elements should be aligned at the bottom.
 * [3] Enable gradient for default variant on bigger screens.
 * [4] Enable gradient for inverted variant on bigger screens.
 * [5] Show above image/video, below content.
 * [6] Reduce video height on small screens.
 * [7] Set height for the overlay for Layer Variant to avoid
 *     exceeding the image height.
 */
@media (max-width: 480px) {
  .c-hero-teaser {
    /* [1] */
    color: #161718;
  }
  .c-hero-teaser .c-hero-teaser__title-row {
    color: #161718;
  }
  .c-hero-teaser .c-hero-teaser__pretitle {
    color: #161718;
  }
  .c-hero-teaser .c-hero-teaser__subtitle {
    color: #161718;
  }
  .c-hero-teaser .c-hero-teaser__text {
    color: #161718;
  }
  .c-hero-teaser__title-row {
    line-height: 1.2;
  }
}
.c-hero-teaser__content {
  padding-top: 64px;
}
@media (max-width: 960px) {
  .c-hero-teaser__content {
    padding-top: 32px;
  }
}
@media (max-width: 480px) {
  .c-hero-teaser__content {
    padding-top: 24px;
  }
}

.c-hero-teaser__content-inner {
  display: flex;
  flex-direction: column;
  justify-content: space-between; /* [2] */
  height: 100%;
}

.c-hero-teaser__pretitle {
  letter-spacing: 0.05em;
}

.c-hero-teaser__text {
  margin-top: 24px;
}

.c-hero-teaser--inverted {
  color: #161718;
}
.c-hero-teaser--inverted .c-hero-teaser__title-row {
  color: #161718;
}
.c-hero-teaser--inverted .c-hero-teaser__pretitle {
  color: #161718;
}
.c-hero-teaser--inverted .c-hero-teaser__subtitle {
  color: #161718;
}
.c-hero-teaser--inverted .c-hero-teaser__text {
  color: #161718;
}

.c-hero-teaser__background-video video {
  height: auto; /* [6] */
}

@media (min-width: 481px) {
  .c-hero-teaser {
    --hero-teaser-overlay-color-start: rgba(22, 23, 24, 0.75);
    --hero-teaser-overlay-color-end: rgba(22, 23, 24, 0);
  }
  .c-hero-teaser::after {
    content: "";
    position: absolute;
    z-index: 701; /* [5] */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, var(--hero-teaser-overlay-color-start) 0, var(--hero-teaser-overlay-color-end) 80%); /* [3] */
    pointer-events: none;
  }
  .c-hero-teaser.c-hero-teaser--layer::after {
    height: 700px;
    /* [7] */
  }
}
@media (min-width: 481px) and (max-width: 720px) {
  .c-hero-teaser.c-hero-teaser--layer::after {
    height: 540px;
  }
}
@media (min-width: 481px) and (max-width: 480px) {
  .c-hero-teaser.c-hero-teaser--layer::after {
    height: 320px;
  }
}
@media (min-width: 481px) {
  .c-hero-teaser--inverted {
    --hero-teaser-overlay-color-start: rgba(255, 255, 255, 0.75);
    --hero-teaser-overlay-color-end: rgba(255, 255, 255, 0);
  }
  .c-hero-teaser--inverted.c-hero-teaser--layer {
    --hero-teaser-overlay-color-start: rgba(255, 255, 255, 0.75);
    --hero-teaser-overlay-color-end: rgba(255, 255, 255, 0);
  }
}
@media (min-width: 960px) {
  .c-hero-teaser:not(.c-hero-teaser--layer) .c-hero-teaser__heading {
    max-width: 60%;
  }
}
/* ------------------------------------*\
    #MEDIA-TEASER
\*------------------------------------ */
/**
 * [1]  `top` does not have to be aligned, since it's the default.
 * [2]  Convert alignment `bottom` to `flex-end`.
 * [3]  Only align vertically if the ratio is not flexible. If the ratio is
 *      flexible, the image will always take up 100% of the available height and
 *      no alignment is necessary.
 * [4]  Reverse the order of image and the caption.
 * [5]  If inside and outside spacings are the same, there is no need to
 *      overwrite them for the reversed variant.
 * [6]  Add styling for caption elements.
 * [7]  Make both flex-items the same width. Note that setting all flex items
 *      to the same width using `flex: 1 1 0;` will not work here because it
 *      takes paddings into account and will end up with different widths for
 *      some brands.
 * [8]  Remove all bottom-margins from any last element.
 * [9]  Make it configurable if top and bottom spacings are set as margins or
 *      paddings.
 * [10] Set the positioning context for the link spanning.
 * [11] Fake a pointer cursor for the full-link variant.
 * [12] Transform the image when the container receives either a focus-within or hover.
 * [13] This collapses the `.c-media-teaser__media` on content children.
 *      The `0%` is mandatory to make this work on browsers not supporting `align-self`.
 * [14] Clip the image to the `.c-media-teaser__media` when it is scaled.
 * [15] Progressive enhancement for [13].
 * [16] Make the link spanning pseudo from [17] escape its link parent element which has a
 *      relative position context from the normalize styles.
 * [17] This pseudo element makes the parent element spanning across the whole
 *      container set in [10].
 * [18] For the video variant `.c-media-teaser--video` we only span across the
 *      `.c-media-teaser__caption`.
 * [19] Disable transitions for touch devices.
 * [20] Elevate all links and buttons to make them appear on-top of the link span
 *      inside the `.c-media-teaser--full-link` variant.
 */
.c-media-teaser {
  /* [9] */
  margin-top: 32px;
  margin-bottom: 32px;
}
@media (min-width: 721px) {
  .c-media-teaser:not(.c-media-teaser--vertical) {
    display: flex;
    /* [3] */
  }
  .c-media-teaser:not(.c-media-teaser--vertical) .c-media-teaser__media,
  .c-media-teaser:not(.c-media-teaser--vertical) .c-media-teaser__caption {
    flex-grow: 0;
    flex-shrink: 1;
    flex-basis: 50%; /* [7] */
  }
  .c-media-teaser:not(.c-media-teaser--vertical) .c-media-teaser__image {
    flex-grow: 0;
    flex-basis: auto;
  }
  .c-media-teaser:not(.c-media-teaser--vertical) .c-media-teaser__caption {
    /* [1] */
    display: flex;
    flex-direction: column;
    justify-content: center; /* [2] */
  }
  .c-media-teaser:not(.c-media-teaser--vertical).c-media-teaser--reversed {
    flex-direction: row-reverse; /* [4] */
    /* [5] */
  }
  .c-media-teaser:not(.c-media-teaser--vertical).c-media-teaser--reversed .c-media-teaser__caption {
    padding-right: 24px;
    padding-left: 24px;
  }
}
.c-media-teaser.c-media-teaser--vertical {
  margin-top: 32px;
  margin-bottom: 32px;
  /**
   * Allow bottom alignment for footer when in equal-height layout.
   * Affects only vertical layout (via modifier, not MQ).
   */
  display: flex;
  flex-direction: column;
}
.c-media-teaser.c-media-teaser--vertical .c-media-teaser__caption {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: auto;
}
.c-media-teaser.c-media-teaser--vertical .c-media-teaser__footer {
  margin-top: auto;
}
.c-media-teaser[data-marketing-theme][data-marketing-theme="1"] {
  background-color: #f9d1b8;
  color: #161718;
}
.c-media-teaser[data-marketing-theme][data-marketing-theme="2"] {
  background-color: #c3f1b3;
  color: #161718;
}

.c-media-teaser__caption {
  padding-top: 24px;
  padding-right: 24px;
  padding-bottom: 24px;
  padding-left: 24px;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.c-media-teaser--vertical .c-media-teaser__caption {
  padding-top: 24px;
  padding-right: 24px;
  padding-bottom: 24px;
  padding-left: 24px;
}
[data-marketing-theme] .c-media-teaser__caption {
  padding-right: 24px;
  padding-left: 24px;
}
@media (max-width: 720px) {
  [data-marketing-theme] .c-media-teaser__caption {
    padding-right: 16px;
    padding-left: 16px;
  }
}

.c-media-teaser__caption *:last-child {
  margin-bottom: 0; /* [8] */
}

.c-media-teaser__pretitle {
  margin-bottom: 0;
}

.c-media-teaser__title {
  margin-bottom: 16px;
}

.c-media-teaser__body {
  margin-bottom: 16px;
}

/* [6] */
.c-media-teaser--full-link {
  position: relative; /* [10] */
}
.c-media-teaser--full-link:hover {
  cursor: pointer; /* [11] */
}
.c-media-teaser--full-link:hover .c-media-teaser__image, .c-media-teaser--full-link:focus-within .c-media-teaser__image {
  transform: scale(1.03); /* [12] */
}
.c-media-teaser--full-link a,
.c-media-teaser--full-link button { /* [20] */
  position: relative;
  z-index: 1;
}
.c-media-teaser--full-link .c-media-teaser__media {
  height: 0%; /* [13] */
  overflow: hidden; /* [14] */
}
@supports (align-self: flex-start) {
  .c-media-teaser--full-link .c-media-teaser__media { /* [15] */
    align-self: flex-start;
    height: auto;
  }
}
.c-media-teaser--full-link .c-media-teaser__image {
  /* stylelint-disable order/order */
  --transition-property: transform;
  --transition-duration: var(--transition-duration-reduced-motion, 2.2s);
  --transition-timing-function: cubic-bezier(0.14, 1.12, 0.67, 0.99);
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  /* stylelint-disable-next-line scss/media-feature-value-dollar-variable */
}
@media (pointer: coarse) {
  .c-media-teaser--full-link .c-media-teaser__image { /* [19] */
    transition: none;
  }
}
.c-media-teaser--full-link .c-media-teaser__link {
  position: static; /* [16] */
}
.c-media-teaser--full-link .c-media-teaser__link::after { /* [17] */
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  width: 100%;
  height: 100%;
}
.c-media-teaser--full-link.c-media-teaser--video .c-media-teaser__caption {
  position: relative; /* [18] */
}

/* ------------------------------------*\
    #MEDIA-TEASER
\*------------------------------------ */
/*
 * [1] Set border radius for media like images and video.
 * [2] If media teaser has a marketing theme, set border radius for the whole
 *     component and remove from included media because of the background color.
 */
.c-media-teaser__media { /* [1] */
  overflow: hidden;
}
.c-media-teaser__media > * {
  border-radius: 8px;
}

.c-media-teaser__pretitle {
  font-weight: 700;
}

.c-media-teaser__title {
  font-size: 1.4375rem;
  font-weight: 700;
  color: #161718;
}
@media (min-width: 721px) {
  .c-media-teaser__title {
    font-size: 1.6875rem;
  }
}
@media (min-width: 1281px) {
  .c-media-teaser__title {
    font-size: 1.875rem;
  }
}

.c-media-teaser[data-marketing-theme] { /* [2] */
  overflow: hidden;
  border-radius: 8px;
}
.c-media-teaser[data-marketing-theme] .c-media-teaser__media > * {
  border-radius: 0;
}

/* ------------------------------------*\
    #MEDIA-GRID (Settings)
\*------------------------------------ */
/* ------------------------------------*\
    #MEDIA-GRID
\*------------------------------------ */
/**
 * The media grid component places images or icons (with optional text below)
 * next to each other in a smart way, so the amount of items doesn't matter. The
 * items wrap dynamically into new lines, depending on the viewport. It is built
 * with CSS grid.
 */
/**
 * [1] Fade out all grid item images except the hovered one on hover and focus.
 * [2] Remove link-border for brands with set border.
 * [3] Ensure equal aspect ratios
 *     even if the images have different ratios and sizes.
 * [4] Ensure correct sizing with fixed aspect ratio.
 * [5] Use `auto-fit` to allow horizontal alignment.
 * [6] Set `width` to apply `aspect-ratio` in non-Chromium browsers.
 *     https://stackoverflow.com/a/70160430
 */
.c-media-grid {
  --column-count: 6;
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(auto-fit, calc(100% / var(--column-count) - 24px)); /* [5] */
  justify-content: center; /* [5] */
  margin: 0;
  /* [3] */
  /* stylelint-disable-next-line scss/media-feature-value-dollar-variable */
}
@media (max-width: 960px) {
  .c-media-grid {
    --column-count: 4;
  }
}
@media (max-width: 720px) {
  .c-media-grid {
    --column-count: 3;
  }
}
@media (max-width: 480px) {
  .c-media-grid {
    --column-count: 2;
  }
}
.c-media-grid[data-aspect-ratio="1/1"] {
  --aspect-ratio: 1/1;
}
.c-media-grid[data-aspect-ratio="4/3"] {
  --aspect-ratio: 4/3;
}
.c-media-grid[data-aspect-ratio="16/9"] {
  --aspect-ratio: 16/9;
}
@media (prefers-reduced-motion: no-preference) and (pointer: fine) {
  @supports selector(:has(.support)) {
    .c-media-grid:has(.c-media-grid__link:where(:hover, :focus-visible)) .c-media-grid__link:where(:not(:hover, :focus-visible)) .c-media-grid__image {
      opacity: 0.3; /* [1] */
      filter: blur(2px);
    }
  }
}

.c-media-grid__image {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  aspect-ratio: var(--aspect-ratio, auto);
}
.c-media-grid[data-aspect-ratio] .c-media-grid__image {
  width: 100%; /* [6] */
  object-fit: contain; /* [4] */
}

.c-media-grid__item {
  margin: 0;
  list-style: none;
}

.c-media-grid__link {
  display: block;
  border: 0; /* [2] */
  text-decoration: none;
  text-align: center;
}
.c-media-grid__link:focus-visible {
  --focus-outline-color: #161718;
  --focus-outline-offset: 2px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}
.c-media-grid__link:hover .c-media-grid__label, .c-media-grid__link:focus-visible .c-media-grid__label {
  color: #347954;
}

.c-media-grid__label {
  /* stylelint-disable order/order */
  --transition-property: color;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  font-size: 1rem;
  line-height: 1;
  display: block;
  margin-top: 8px;
  font-weight: 700;
  color: #161718;
}

/* ------------------------------------*\
   #CAROUSEL
\*------------------------------------ */
/**
 * [1] Make sure buttons don't get overlapped by an item.
 * [2] Set the width to 100% to ensure that images always are full width with
 *     their default `max-width: 100%;`.
 * [3] Always center the dots.
 * [4] Add a margin, if the dots are placed outside of the carousel.
 * [5] Center the button vertically.
 * [6] Center the icon and label vertically and horizontally within the button.
 * [7] Center the dots horizontally within the carousel.
 * [8] Add horizontal outer spacing to the carousel items
 *     (e.g. if the design requires space for the buttons)
 * [9] Use opacity in combination with the button transition to fade out
 *      disabled buttons.
 * [10] Hide component until Flickity is fully loaded and prevent "Flash of
 *      visible button".
 * [11] Transform the prev/next button icons on `:hover`
 * [12] Shift prev/next button labels horizontally on `:hover`
 * [13] Reverse order of icon and label.
 * [14] Anchor `.c-carousel__button-label` for previous and next buttons
 *      in respect to their position.
 * [15] `.flickity-viewport` has no fixed height set in fullscreen mode,
 *      so we need to make sure the items do not exceed the slider’s boundaries.
 * [16] Make the image always fit inside the fullscreen container.
 * [17] Add pointer target space to the button labels.
 * [18] Always display the buttons with the `.c-carousel--buttons-visible`
 *      modifier class and overwrite package settings.
 * [19] Always hide the buttons with the `.c-carousel--buttons-on-hover`
 *      modifier class and display them only on hover and overwrite package
 *      settings.
 * [20] Always show fullscreen button on "touch" devices.
 * [21] Use `pointer: coarse` media-query to target browsers with
 *      limited precision as primary input device ("touch").
 *      https://caniuse.com/css-media-interaction
 * [22] Position dots at the bottom in fullscreen to be visible.
 */
.c-carousel {
  /* stylelint-disable order/order */
  --transition-property: opacity;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  position: relative;
  /* [4] */
  opacity: 0; /* [10] */
}
.c-carousel.flickity-enabled {
  opacity: 1; /* [10] */
}
.c-carousel.is-fullscreen .c-carousel__item,
.c-carousel.is-fullscreen .c-carousel__image {
  height: 100%; /* [15] */
}
.c-carousel.is-fullscreen .c-carousel__image {
  object-fit: contain;
  /* [16] */
}
.c-carousel.is-fullscreen .flickity-page-dots {
  bottom: 0; /* [22] */
}
.c-carousel .flickity-page-dots {
  position: absolute;
  bottom: 16px;
  left: 50%; /* [7] */
  transform: translateX(-50%); /* [7] */
}
.c-carousel .flickity-prev-next-button {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  position: absolute;
  z-index: 1; /* [1] */
  top: 50%; /* [5] */
  display: flex; /* [6] */
  align-items: center; /* [6] */
  justify-content: center; /* [6] */
  width: 44px;
  height: 44px;
  transform: translateY(-50%); /* [5] */
  border: 0;
  background-color: #ffffff;
  color: #161718;
  cursor: pointer;
}
.c-carousel .flickity-prev-next-button.previous {
  left: 16px;
}
.c-carousel .flickity-prev-next-button.previous::before {
  content: "\f117";
}
.c-carousel .flickity-prev-next-button.next {
  right: 16px;
}
.c-carousel .flickity-prev-next-button.next::before {
  content: "\f118";
}
.c-carousel .flickity-prev-next-button:hover, .c-carousel .flickity-prev-next-button:focus {
  background-color: rgba(22, 23, 24, 0.06);
}
.c-carousel .flickity-prev-next-button:focus-visible {
  outline: 0;
}
.c-carousel .flickity-prev-next-button:not([disabled]) {
  /* [10] */
}
.c-carousel .flickity-prev-next-button[disabled] {
  opacity: 0; /* [9] */
  pointer-events: none; /* [9] */
}
@media (max-width: 480px) {
  .c-carousel .flickity-prev-next-button {
    display: none;
  }
}
.c-carousel .flickity-prev-next-button::before, .c-carousel .flickity-prev-next-button::after {
  transition: inherit;
}
.c-carousel .flickity-prev-next-button::before {
  font-size: 2rem;
  line-height: 1;
  display: block;
}
.c-carousel .flickity-prev-next-button:hover {
  /* stylelint-disable-next-line selector-max-specificity */
  /* stylelint-disable-next-line selector-max-specificity */
}
.c-carousel .flickity-prev-next-button:hover::before { /* prev/next button icon */
  /* [11] */
}
.c-carousel__item {
  width: 100%;
}

.c-carousel__image {
  object-fit: cover;
  width: 100%; /* [2] */
}

.c-carousel--buttons-visible { /* [18] */ }
.c-carousel--buttons-visible .flickity-prev-next-button:not([disabled]) {
  opacity: 1;
}

.c-carousel--buttons-on-hover { /* [19] */
  /* stylelint-disable-next-line scss/media-feature-value-dollar-variable */
}
@media (pointer: coarse) {
  .c-carousel--buttons-on-hover { /* [21] */ }
  .c-carousel--buttons-on-hover .flickity-fullscreen-button {
    opacity: 1 !important; /* [20] */
  }
}
.c-carousel--buttons-on-hover .flickity-prev-next-button,
.c-carousel--buttons-on-hover .flickity-fullscreen-button {
  opacity: 0;
}
.c-carousel--buttons-on-hover:hover .flickity-prev-next-button:not([disabled]),
.c-carousel--buttons-on-hover:hover .flickity-fullscreen-button:not([disabled]), .c-carousel--buttons-on-hover:focus .flickity-prev-next-button:not([disabled]),
.c-carousel--buttons-on-hover:focus .flickity-fullscreen-button:not([disabled]) {
  opacity: 1;
}

/* ------------------------------------*\
    #CAROUSEL
\*------------------------------------ */
/**
 * [1] Suppress unwanted spacing in fullscreen mode.
 * [2] Reset `transform` because the pagination does not have
 *     to be displayed centered according to brand guidelines.
 * [3] Enforce counter according to brand guidelines.
 * [4] Overwrite `min-height` so that the background color
 *     of the counter gets the correct height.
 * [5] Enforce visibility of fullscreen button so that there is
 *     no visual gap to pagination once the CSS modifier
 *     `.c-carousel--buttons-on-hover` is set.
 * [6] Handles the right positioning of pagination.
 * [7] Overwrite `outline: 0`, which is inherited
 *     from the Bronson-Default package.
 */
.c-carousel.is-fullscreen {
  padding-bottom: 0; /* [1] */
}
.c-carousel.is-fullscreen .flickity-page-dots {
  bottom: 16px;
}
.c-carousel[data-carousel-fullscreen=true] .flickity-page-dots {
  right: 64px;
}
.c-carousel .flickity-page-dots {
  left: auto; /* [6] */
  right: 16px; /* [6] */
  padding-left: 8px;
  padding-right: 8px;
  transform: none; /* [2] */
  border-radius: 4px;
  background-color: rgba(22, 23, 24, 0.75);
}
.c-carousel .flickity-page-dots .dot {
  /* stylelint-disable-next-line selector-max-class */
}
.c-carousel .flickity-page-dots .dot.is-selected {
  /* stylelint-disable-next-line selector-max-specificity, selector-max-class, max-nesting-depth */
}
.c-carousel .flickity-page-dots .dot.is-selected::before {
  color: #ffffff !important;
}
.c-carousel .flickity-prev-next-button:focus-visible { /* [7] */
  --focus-outline-color: #161718;
  --focus-outline-offset: 1px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

.c-carousel--buttons-on-hover .flickity-fullscreen-button {
  opacity: 1; /* [5] */
}

/* ------------------------------------*\
    #STICKY-CONTAINER
\*------------------------------------ */
/**
 * [1] As the name suggests, the component is sticky. For browsers that don’t
 *     support `position: sticky`, make sure to provide a JS polyfill. By
 *     default, this is provided in Bronson via the stickyfill polyfill.
 *     @DEPRECATED
 * [2] Ensure that the user is not trapped in scrolling hell when the sticky
 *     container contains lot of content and the vertical space is limited (e.g.
 *     on small screen).
 * [3] Make sure that any potential spacing bottom is eliminated.
 */
.c-sticky-container {
  position: sticky; /* [1] */
  z-index: 2100;
  top: 0; /* [1] */
  max-height: 75vh; /* [2] */
  overflow-y: auto; /* [2] */
  padding-top: 24px;
  padding-bottom: 24px;
  background-color: #ffffff;
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.15);
}

.c-sticky-container__inner {
  max-width: calc(1248px + 192px);
  padding-left: 96px;
  padding-right: 96px;
  --page-wrap: 96px;
  margin-right: auto;
  margin-left: auto;
  width: 100%;
}
@media (max-width: 960px) {
  .c-sticky-container__inner {
    max-width: calc(1248px + 96px);
    padding-left: 48px;
    padding-right: 48px;
    --page-wrap: 48px;
  }
}
@media (max-width: 720px) {
  .c-sticky-container__inner {
    max-width: calc(1248px + 48px);
    padding-left: 24px;
    padding-right: 24px;
    --page-wrap: 24px;
  }
}
@media (max-width: 480px) {
  .c-sticky-container__inner {
    max-width: calc(1248px + 24px);
    padding-left: 12px;
    padding-right: 12px;
    --page-wrap: 12px;
  }
}
.c-sticky-container__inner > *:last-child {
  margin-bottom: 0; /* [3] */
}

/* ------------------------------------*\
    #FOLD-OUT
\*------------------------------------ */
/**
 * [1] Reset default `<button>` styles.
 * [2] Provide vertical spacing when the fold-out is expanded.
 * [3] Display the head and footer icon via pseudo element as it is
 *     completely decorative.
 * [4] The footer icon is reversed according to its position.
 * [5] Conditionally display a fold out footer.
 * [6] Force the correct color for the button and its child elements.
 *     For example, Safari 15 on macOS and iOS has made some changes
 *     to the user agent styles, including overriding the color property
 *     of all form elements such as inputs, buttons etc.
 */
.c-fold-out {
  max-width: calc(1248px + 192px);
  padding-left: 96px;
  padding-right: 96px;
  --page-wrap: 96px;
  margin-right: auto;
  margin-left: auto;
}
@media (max-width: 960px) {
  .c-fold-out {
    max-width: calc(1248px + 96px);
    padding-left: 48px;
    padding-right: 48px;
    --page-wrap: 48px;
  }
}
@media (max-width: 720px) {
  .c-fold-out {
    max-width: calc(1248px + 48px);
    padding-left: 24px;
    padding-right: 24px;
    --page-wrap: 24px;
  }
}
@media (max-width: 480px) {
  .c-fold-out {
    max-width: calc(1248px + 24px);
    padding-left: 12px;
    padding-right: 12px;
    --page-wrap: 12px;
  }
}

.c-fold-out__header {
  padding: 0;
  border: 0;
  background-color: transparent;
  /* [1] */
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  text-align: left;
  color: inherit; /* [6] */
}
.c-fold-out__header:focus {
  outline: 0;
}
.c-fold-out__header[aria-expanded=true] {
  margin-bottom: 0; /* [2] */
}
.c-fold-out__header > * {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: auto;
}
.c-fold-out__header > *:not(:last-child) {
  margin-right: 16px;
}
@media (max-width: 720px) {
  .c-fold-out__header > *:not(:last-child) {
    margin-right: 16px;
  }
}

.c-fold-out__content:not([aria-hidden=false]) {
  display: none;
}
.c-fold-out__content > *:last-child {
  margin-bottom: 0;
}

.c-fold-out__footer {
  padding: 0;
  border: 0;
  background-color: transparent;
  /* [1] */
  display: none; /* [5] */
  text-align: right;
}
.c-fold-out__footer:focus {
  outline: 0;
}

.c-fold-out__header,
.c-fold-out__footer { /* [3]  */
  position: relative;
}
.c-fold-out__header::before,
.c-fold-out__footer::before {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  flex-basis: 32px;
  font-size: 32px;
  margin-left: 16px;
  content: "\f1c1";
  color: #161718;
}
@media (max-width: 720px) {
  .c-fold-out__header::before,
  .c-fold-out__footer::before {
    flex-basis: 32px;
    font-size: 32px;
    margin-left: 16px;
  }
}
.c-fold-out__header[aria-expanded=false]::before,
.c-fold-out__footer[aria-expanded=false]::before {
  rotate: 0deg;
}
.c-fold-out__header[aria-expanded=true]::before,
.c-fold-out__footer[aria-expanded=true]::before {
  rotate: 45deg;
}

/* ------------------------------------*\
    #FOLD-OUT
\*------------------------------------ */
/* [1] */
/**
 * [1] Set height to have button (icon) clickable.
 *     Add outline as offset to avoid overflow/cutoffs.
 * [2] Outline handled via icon.
 * [3] Magic numbers for aligning circle for states with icon.
 * [4] Place button (icon) on the right side.
 */
.c-fold-out__header {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.c-fold-out__header::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 44px;
  height: 44px;
  border-radius: 50%;
}
.c-fold-out__header:hover::after {
  background-color: rgba(22, 23, 24, 0.06);
}

.c-fold-out__header:focus-visible::after {
  --focus-outline-color: #161718;
  --focus-outline-offset: 0;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

.c-fold-out__header:focus-visible {
  outline: 0; /* [2] */
}
.c-fold-out__header::before {
  order: 1; /* [4] */
}
.c-fold-out__header::after {
  /* stylelint-disable order/order */
  --transition-property: background-color;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  right: -6px; /* [3] */
}
.c-fold-out__header[aria-expanded=false]::after {
  top: 50%;
  transform: translateY(-50%);
}
.c-fold-out__header[aria-expanded=true] {
  height: 48px; /* [1] */
}

/* ------------------------------------*\
    #PRODUCT-INFO
\*------------------------------------ */
/**
 * [1] Conditionally render the info aside as flex container to
 *     set a gap if it was specified.
 * [2] Span header across columns.
 */
.c-product-info {
  row-gap: 24px;
  column-gap: 24px;
  display: grid;
  grid-template-columns: 1fr 1fr;
}
@media (max-width: 720px) {
  .c-product-info {
    row-gap: 24px;
  }
}
@media (max-width: 720px) {
  .c-product-info {
    column-gap: 24px;
  }
}

.c-product-info__media {
  grid-column: 1/2;
}
@media (max-width: 720px) {
  .c-product-info__media {
    grid-column: 1/span 2;
  }
}

.c-product-info__aside { /* [1] */
  row-gap: 32px;
  display: flex;
  flex-direction: column;
  grid-column: 2/2;
  background-color: #ffffff;
}
@media (max-width: 720px) {
  .c-product-info__aside {
    row-gap: 16px;
  }
}
@media (max-width: 720px) {
  .c-product-info__aside {
    grid-column: 1/span 2;
  }
}

.c-product-info__header {
  grid-column: 1/-1; /* [2] */
}

.c-product-info__title {
  font-size: 1.4375rem;
  margin: 0;
}
@media (min-width: 721px) {
  .c-product-info__title {
    font-size: 1.6875rem;
  }
}
@media (min-width: 1281px) {
  .c-product-info__title {
    font-size: 1.875rem;
  }
}

.c-product-info__subtitle {
  font-size: 1.25rem;
  margin-top: 8px;
  margin-bottom: 0;
}
@media (min-width: 721px) {
  .c-product-info__subtitle {
    font-size: 1.4375rem;
  }
}
@media (min-width: 1281px) {
  .c-product-info__subtitle {
    font-size: 1.5rem;
  }
}

.c-product-info__image {
  margin-bottom: 16px;
  display: block;
  max-width: 100%;
}

.c-product-info__caption {
  color: #161718;
}

/* ------------------------------------*\
    #PRODUCT-INFO-SUMMARY
\*------------------------------------ */
/**
 * [1] In compact mode we remove the bottom spacing from the info label.
 * [2] Pull the info element to the right.
 * [3] Change `flex-direction` to arrange items one below the other.
 */
.c-product-info-summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  text-align: left;
}
@media (max-width: 720px) {
  .c-product-info-summary {
    flex-direction: column; /* [3] */
    align-items: flex-start;
  }
}
.c-product-info-summary > * {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: auto;
}
.c-product-info-summary > *:not(:last-child) {
  margin-right: 16px;
}
@media (max-width: 720px) {
  .c-product-info-summary > *:not(:last-child) {
    margin-right: 16px;
  }
}
.c-product-info-summary.c-product-info-summary--compact .c-product-info-summary__img {
  display: none;
}
.c-product-info-summary.c-product-info-summary--compact .c-product-info-summary__info {
  flex-direction: row;
  align-items: baseline;
  justify-content: flex-end;
}
.c-product-info-summary.c-product-info-summary--compact .c-product-info-summary__info-value {
  font-size: 1.75rem;
  margin-left: 4px;
}
@media (min-width: 721px) {
  .c-product-info-summary.c-product-info-summary--compact .c-product-info-summary__info-value {
    font-size: 2rem;
  }
}
@media (min-width: 1281px) {
  .c-product-info-summary.c-product-info-summary--compact .c-product-info-summary__info-value {
    font-size: 2.25rem;
  }
}
.c-product-info-summary.c-product-info-summary--compact .c-product-info-summary__info-label {
  margin-bottom: 0; /* [1] */
}
.c-product-info-summary.c-product-info-summary--compact .c-product-info-summary__heading {
  display: flex;
  align-items: baseline;
  justify-content: flex-start;
}
.c-product-info-summary.c-product-info-summary--compact .c-product-info-summary__title {
  margin-right: 4px;
  margin-bottom: 0;
}

.c-product-info-summary__img {
  flex-grow: 0;
  flex-shrink: 1;
  flex-basis: 175px;
}
@media (max-width: 720px) {
  .c-product-info-summary__img {
    display: none;
  }
}

@media (max-width: 720px) {
  .c-product-info-summary__heading {
    margin-right: auto;
    margin-left: 0;
  }
}

.c-product-info-summary__title {
  font-size: 1.25rem;
  display: block;
  margin-bottom: 8px;
  font-weight: 700;
}
@media (min-width: 721px) {
  .c-product-info-summary__title {
    font-size: 1.4375rem;
  }
}
@media (min-width: 1281px) {
  .c-product-info-summary__title {
    font-size: 1.5rem;
  }
}

.c-product-info-summary__subtitle {
  font-size: 0.875rem;
  display: block;
  margin-bottom: 0;
}
@media (max-width: 720px) {
  .c-product-info-summary__subtitle {
    display: none;
  }
}

.c-product-info-summary__info {
  font-size: 1.25rem;
  display: flex;
  flex-direction: column;
  row-gap: 4px;
  margin-left: auto; /* [2] */
  font-weight: 700;
  text-align: right;
}
@media (min-width: 721px) {
  .c-product-info-summary__info {
    font-size: 1.4375rem;
  }
}
@media (min-width: 1281px) {
  .c-product-info-summary__info {
    font-size: 1.5rem;
  }
}
@media (max-width: 720px) {
  .c-product-info-summary__info {
    margin-right: auto;
    margin-left: 0;
    text-align: left;
  }
}
.c-product-info-summary__info > *:last-child {
  margin-bottom: 0;
}

/* ------------------------------------*\
    #PLYR-OVERRIDES
\*------------------------------------ */
/**
 * This partial overrides the default styles of plyr that couldn't be handled
 * with the variables in `06-vendor/plyr/_vendor.plyr.settings.scss`.
 */
/**
 * [1]  Remove padding and take care of spacing at another place.
 * [2]  Set the height of the control bar to the correct height.
 * [3]  Initially hide the controls, so you don't see them before
 *      the video started...
 * [4]  ...and show them again when the mouse enters the video container.
 * [5]  The plyr video-player notices, when the mouse hasn't been moved for two
 *      seconds. It then puts the `.plyr--hide-controls` class to the container.
 *      Since we've overridden the basic appearance of the controls with [3]
 *      and [4], we need to override it again here, so that the controls
 *      actually hide after two seconds of no mouse movement.
 * [6]  If you specify voices in the captions, two `<span>`s get generated
 *      inside of each other and both get a half-transparent background and
 *      padding by default which looks kinda odd. This override removes
 *      the background of the inner `<span>`.
 * [7]  Button hover styles for controls.
 * [8]  Play Button hover style.
 * [9]  Unfortunately, we cannot use the `translate` trick to center the icon,
 *      because that doesn't work in older Firefox versions (e.g. v52).
 *      See BRON-828.
 * [10] Position tooltip above control section.
 * [11] Despite set options for volume and mute,
 *      the elements get an `[hidden]` attribute resulting in `display:none`.
 * [12] Change the default control-item order: Play, Volume, ...
 * [13] Target area to bridge gap between volume button and volume slider.
 * [14] Fade-in volume slider.
 * [15] Remove spacing when volume slider is vertical.
 * [16] Override specificity set by plugin styles.
 * [17] Prevent interaction with non-visible poster.
 * [18] Prevent overwrite of width declaration from plyr vendor styles.
 * [19] Remove the transparency of the play button.
 * [20] Use `transition-duration: 0s` instead of `transition: none`.
 *      By default the browser set the `transition-property` to `all`
 *      for each element. Setting the `transition-duration` to the default `0s`
 *      renders the `transition-property` irrelevant.
 * [21] Replace the dotted outline with a visual border as a keyboard-only
 *      focus style. The visual border is accomplished with `box-shadow`.
 * [22] Focus styles of all controls.
 * [23] Handles the track color of the `input[type="range"]`.
 *      Already defined in `plyr/src/sass/components/sliders.scss`.
 *      Since we have disabled CSS custom properties within the plyr styles,
 *      we need to reset the track color here. CSS custom properties are
 *      necessary at this point.
 * [24] Specify `transition-property` to avoid performance issues.
 * [25] Increase the `outline-offset` to prevent the focus ring to clash with controls.
 * [26] Stack captions above controls.
 */
.plyr--video .plyr__controls {
  z-index: 20;
  height: 60px; /* [2] */
  padding: 24px; /* [1] */
  background: transparent;
  opacity: 0; /* [3] */
}
.plyr--video .plyr__controls .plyr__control:hover {
  /* [7] */
  color: #ffffff; /* [7] */
}
.plyr--video .plyr__control:focus-visible, .plyr--video .plyr__control.plyr__tab-focus {
  --focus-outline-color: #ffffff;
  --focus-outline-offset: 0;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
  /* [20] */
}

.plyr__captions {
  z-index: 10; /* [26] */
  padding: 24px;
  pointer-events: none; /* [x] */
}
.plyr__captions * {
  pointer-events: auto;
}
.plyr__captions span span {
  background: transparent; /* [6] */
}

.plyr__caption {
  padding: 8px 16px;
  border-radius: 4px;
  letter-spacing: 0.05em;
}

.plyr--video .plyr__progress__buffer {
  box-shadow: none;
}

@media (max-width: 720px) {
  .plyr__controls {
    height: 30px;
  }
}
.plyr:hover .plyr__controls, .plyr:focus-within .plyr__controls {
  opacity: 1; /* [4] */
}
.plyr.plyr--hide-controls:hover .plyr__controls, .plyr.plyr--hide-controls:focus-within .plyr__controls {
  opacity: 0; /* [5] */
}
.c-hero-teaser--video .plyr__controls {
  display: none;
}
.plyr__controls .plyr__controls__item {
  margin-left: 8px;
}
.plyr__controls .plyr__controls__item:first-child {
  margin-right: auto;
  margin-left: 0;
}
.plyr__controls .plyr__time {
  margin-left: 0;
}
@media (max-width: 480px) {
  .plyr__controls .plyr__time {
    margin-left: 24px;
  }
}

.plyr__time--current {
  color: #ffffff;
}

.plyr__tooltip {
  margin-bottom: 8px; /* [10] */
  padding: 8px 12px;
  line-height: 1.5;
}

.plyr__control.plyr__control {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: auto;
  height: auto;
  min-width: auto; /* [18] */
  padding: 0;
  border: 0 solid transparent;
  border-radius: 50%;
}
.plyr__menu__container .plyr__control.plyr__control {
  border: 0;
  border-radius: initial;
}

.plyr .plyr__control--overlaid {
  width: 44px;
  height: 44px;
  padding: 0;
  background: transparent;
  color: #ffffff;
  box-shadow: none;
  opacity: 1; /* [19] */
}
.plyr .plyr__control--overlaid:hover, .plyr .plyr__control--overlaid:focus-visible, .plyr .plyr__control--overlaid.plyr__tab-focus {
  background: rgba(243, 243, 243, 0.18); /* [8] */
  color: #ffffff; /* [8] */
}
.c-hero-teaser--video .plyr .plyr__control--overlaid {
  display: none;
}
.plyr .plyr__control--overlaid svg {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 40px;
  height: 40px;
  margin-top: -20px; /* [9] */
  margin-left: -20px; /* [9] */
}

.plyr__poster {
  visibility: hidden; /* [17] */
}
.plyr--stopped.plyr__poster-enabled .plyr__poster {
  visibility: visible;
}

/* stylelint-disable selector-max-specificity */
.plyr--full-ui.plyr--video input[type=range] {
  cursor: pointer;
}
.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb, .plyr--full-ui.plyr--video input[type=range]:hover::-webkit-slider-thumb {
  transform: scale(1.125);
}
.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb, .plyr--full-ui.plyr--video input[type=range]:hover::-moz-range-thumb {
  transform: scale(1.125);
}
.plyr--full-ui.plyr--video input[type=range]:focus-visible, .plyr--full-ui.plyr--video input[type=range].plyr__tab-focus {
  --focus-outline-color: #ffffff;
  --focus-outline-offset: 0;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}
.plyr--full-ui.plyr--video input[type=range]:focus-visible::-webkit-slider-runnable-track, .plyr--full-ui.plyr--video input[type=range].plyr__tab-focus::-webkit-slider-runnable-track {
  outline: 0; /* [21] */
}
.plyr--full-ui.plyr--video input[type=range]:focus-visible::-moz-range-track, .plyr--full-ui.plyr--video input[type=range].plyr__tab-focus::-moz-range-track {
  outline: 0; /* [21] */
}
.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track {
  background-image: linear-gradient(to right, currentColor var(--value, 0%), transparent var(--value, 0%)); /* [23] */
}

.plyr .plyr__volume { /* [11] */
  display: flex;
  flex-grow: 0;
  flex-shrink: 1;
  flex-basis: auto;
  min-width: 100px;
  max-width: 150px;
}
@media (max-width: 720px) {
  .plyr .plyr__volume {
    display: none;
  }
}
.plyr .plyr__volume.plyr__controls__item { /* [16] */
  padding-right: 0; /* [15] */
}
.plyr .plyr__volume:hover input[type=range], .plyr .plyr__volume:focus-within input[type=range] {
  opacity: 1; /* [14] */
  visibility: visible; /* [14] */
}

/* stylelint-enable selector-max-specificity */
.plyr [data-plyr=mute] { /* [11] */
  display: inline-flex;
}

.plyr:not(.plyr--captions-enabled) [data-plyr=captions] {
  display: none; /* [11] */
}

.plyr--captions-enabled [data-plyr=captions],
.plyr--pip-supported [data-plyr=pip],
.plyr--airplay-supported [data-plyr=airplay],
.plyr--fullscreen-enabled [data-plyr=fullscreen] {
  display: inline-flex;
}

/* ------------------------------------*\
    #PLYR-OVERRIDES
\*------------------------------------ */
/**
 * [1] Disable default outline.
 * [2] Apply custom outline to thumb.
 * [3] Reduce specificity to respect visibility settings for certain controls
 *     (e.g. caption).
 * [4] Remove fixed height. Set it here instead of module variable as it is
 *     used for multiple calculations.
 */
.plyr--video {
  /* stylelint-disable-next-line order/order */
}
.plyr--video::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 200px;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.35), transparent);
  pointer-events: none;
  opacity: 0;
}
@media (max-width: 720px) {
  .plyr--video::after {
    height: 100px;
  }
}
.plyr--video:hover::after {
  opacity: 1;
}
.plyr--video .plyr__controls {
  flex-wrap: wrap;
  justify-content: flex-start;
  height: auto; /* [4] */
  padding-top: 16px;
  padding-bottom: 16px;
}
.plyr--video :where(.plyr__control) {
  display: inline-flex; /* [3] */
}
.plyr--video .plyr__control:not(.plyr__control--overlaid) {
  width: 44px;
  height: 44px;
}
.plyr--video .plyr__control:not(.plyr__control--overlaid):hover {
  background-color: rgba(243, 243, 243, 0.12);
}
.plyr--video .plyr__control:active {
  scale: 0.95;
}
.plyr--video .plyr__controls__item.plyr__progress__container {
  flex-basis: 100%;
  order: 50;
  padding-left: 0;
}
.plyr--video .plyr__control--overlaid {
  filter: drop-shadow(0 0 8px rgba(0, 0, 0, 0.35));
}
.plyr--video .plyr__time {
  margin-right: auto;
}
@media (max-width: 720px) {
  .plyr--video .plyr__controls {
    padding: 8px;
  }
}
@media (min-width: 721px) {
  .plyr--video .plyr__controls__item.plyr__progress__container {
    order: -50;
    margin-left: 0;
    margin-bottom: 8px;
  }
  .plyr--video .plyr__controls__item[data-plyr=play] {
    order: -30;
    margin-right: 0;
  }
  .plyr--video .plyr__controls__item.plyr__volume {
    order: -30;
  }
}
@media (max-width: 720px) {
  .plyr--video .plyr__controls__item[data-plyr=play] {
    display: none;
  }
  .plyr--video .plyr__time {
    margin-left: 0;
    font-size: 12px;
  }
}

/* stylelint-disable selector-max-specificity */
.plyr--full-ui.plyr--video input[type=range]:focus-visible, .plyr--full-ui.plyr--video input[type=range].plyr__tab-focus, .plyr--full-ui.plyr--video input[type=range]:active {
  outline: 0; /* [1] */
}
.plyr--full-ui.plyr--video input[type=range]:focus-visible::-webkit-slider-thumb, .plyr--full-ui.plyr--video input[type=range].plyr__tab-focus::-webkit-slider-thumb, .plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb {
  --focus-outline-color: #ffffff;
  --focus-outline-offset: 4px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}
.plyr--full-ui.plyr--video input[type=range]:focus-visible::-moz-range-thumb, .plyr--full-ui.plyr--video input[type=range].plyr__tab-focus::-moz-range-thumb, .plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb {
  --focus-outline-color: #ffffff;
  --focus-outline-offset: 4px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

/* stylelint-enable selector-max-specificity */
.plyr--full-ui input[data-plyr=volume][type=range] {
  color: #ffffff;
}
.plyr--full-ui input[data-plyr=volume][type=range]::-webkit-slider-thumb {
  background-color: #ffffff;
}
.plyr--full-ui input[data-plyr=volume][type=range]::-moz-range-thumb {
  background-color: #ffffff;
}
.plyr--full-ui input[data-plyr=volume][type=range]::-webkit-slider-runnable-track {
  background-color: rgba(243, 243, 243, 0.18);
}
.plyr--full-ui input[data-plyr=volume][type=range]::-moz-range-track {
  background-color: rgba(243, 243, 243, 0.18);
}

/* ------------------------------------*\
    #FAV-BUTTON
\*------------------------------------ */
/**
 * [1] Reset the browser button styles.
 * [2] Align styles to the Button Link’s implementation.
 * [3] Handles the pressed state.
 * [4] Inherit the transitions like in the Button Link implementation.
 * [5] Visually hide the label for `.c-fav-button--icon-only` variant to improve a11y.
 */
.c-fav-button {
  --fav-button-color: #161718;
  --fav-button-icon-name: "\f192";
  --fav-button-item-spacing: 8px;
  padding: 0;
  border: 0;
  background-color: transparent;
  /* [1] */
  font-size: 1rem;
  /* [2] */
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  /* [2] */
  display: inline-flex; /* [2] */
  align-items: center; /* [2] */
  justify-content: flex-end; /* [2] */
  column-gap: var(--fav-button-item-spacing); /* [2] */
  line-height: 1; /* [2] */
  text-transform: inherit; /* [2] */
  text-align: left;
  /**
   * @deprecated: Remove `[aria-pressed="true"]` in v15.
   */
}
.c-fav-button:focus {
  outline: 0;
}
.c-fav-button [aria-pressed=true], .c-fav-button.is-active {
  --fav-button-icon-name: "\f191"; /* [3] */
  --fav-button-color: #161718; /* [3] */
}
.c-fav-button.c-fav-button--reversed {
  flex-direction: row-reverse;
  text-align: right;
}
.c-fav-button:hover {
  --fav-button-color: #347954;
}
.c-fav-button:focus, .c-fav-button:active {
  --fav-button-color: #161718;
}
.c-fav-button[disabled] {
  --fav-button-color: #c4c6c7;
}

.c-fav-button__label {
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--fav-button-color);
  transition: inherit; /* [4] */
}
.c-fav-button--icon-only .c-fav-button__label {
  position: absolute !important; /* stylelint-disable-line itcss/no-at-important */
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  /* [5] */
}

.c-fav-button__label--on {
  display: none;
  /**
   * @deprecated: Remove `[aria-pressed="true"] &` in v15.
   */
}
[aria-pressed=true] .c-fav-button__label--on, .c-fav-button.is-active .c-fav-button__label--on {
  display: block;
}

.c-fav-button__label--off {
  display: block;
  /**
   * @deprecated: Remove `[aria-pressed="true"] &` in v15.
   */
}
[aria-pressed=true] .c-fav-button__label--off, .c-fav-button.is-active .c-fav-button__label--off {
  display: none;
}

.c-fav-button__icon {
  font-size: 24px;
  color: var(--fav-button-color);
  transition: inherit; /* [4] */
}
.c-fav-button__icon::before {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  content: var(--fav-button-icon-name);
  font-size: inherit;
  vertical-align: middle;
}

/* ------------------------------------*\
    #FAV-BUTTON
\*------------------------------------ */
.c-fav-button:focus-visible {
  --focus-outline-color: #161718;
  --focus-outline-offset: 8px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

/* ------------------------------------*\
    #BLOCKQUOTE
\*------------------------------------ */
.c-blockquote {
  margin-bottom: 0;
}

.c-blockquote__text {
  font-size: 1.75rem;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
@media (min-width: 721px) {
  .c-blockquote__text {
    font-size: 2rem;
  }
}
@media (min-width: 1281px) {
  .c-blockquote__text {
    font-size: 2.25rem;
  }
}
/* [1] */
/* [1] */
.c-blockquote__footer {
  font-size: 0.875rem;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
/* [1] */
.c-blockquote__cite {
  font-style: normal;
}

/* ------------------------------------*\
    #FLOATING-BUTTON (Settings)
\*------------------------------------ */
/* ------------------------------------*\
    #FLOATING-BUTTON
\*------------------------------------ */
/**
 * [1] Allow click-through events if click-targets are behind the sticky
 *     back-to-top container.
 * [2] Reset default button padding to prevent issues with size.
 * [3] Ensure correct positioning, independent of parent's spacings etc.
 */
.c-floating-button {
  --float-grid-area: bottom-right;
  position: static;
}
.c-floating-button > * {
  --float-grid-area: false;
}

.c-floating-button__button {
  width: 44px;
  height: 44px;
  padding: 0; /* [2] */
  border-radius: 50%;
  pointer-events: auto; /* [1] */
}
.c-floating-button__button:disabled, .c-floating-button__button[disabled] {
  background-color: var(--button-background);
}

.c-floating-button__icon {
  font-size: 1.5rem;
  line-height: 1;
  color: inherit;
}

.c-floating-button__label {
  position: absolute !important; /* stylelint-disable-line itcss/no-at-important */
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  color: inherit;
}

/* ------------------------------------*\
    #FLOATING-BAR
\*------------------------------------ */
/**
 * [1] FLIP the transform to hoist element in the transform context to optimise transition. https://aerotwist.com/blog/flip-your-animations/
 * [2] Disable potential links styles.
 * [3] Display the action icon here flush-right aligned with the page-wrap.
 */
.c-floating-bar {
  padding-top: 16px;
  padding-bottom: 16px;
  position: fixed;
  z-index: 1800;
  top: 0;
  right: 0;
  left: 0;
  width: 100%;
  transform: translateY(-100%); /* [1] */
  border-bottom: none; /* [2] */
  text-decoration: none; /* [2] */
  background-color: #ffffff;
  transition: opacity 300ms ease-in-out, transform 300ms ease-in-out;
  opacity: 0;
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.15);
}
@media (max-width: 720px) {
  .c-floating-bar {
    padding-top: 8px;
    padding-bottom: 8px;
  }
}
.c-floating-bar.has-target-outside-view.has-target-leave-above-view {
  transform: translateY(0); /* [1] */
  opacity: 1;
}

.c-floating-bar__inner {
  max-width: calc(1248px + 192px);
  padding-left: 96px;
  padding-right: 96px;
  --page-wrap: 96px;
  margin-right: auto;
  margin-left: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media (max-width: 960px) {
  .c-floating-bar__inner {
    max-width: calc(1248px + 96px);
    padding-left: 48px;
    padding-right: 48px;
    --page-wrap: 48px;
  }
}
@media (max-width: 720px) {
  .c-floating-bar__inner {
    max-width: calc(1248px + 48px);
    padding-left: 24px;
    padding-right: 24px;
    --page-wrap: 24px;
  }
}
@media (max-width: 480px) {
  .c-floating-bar__inner {
    max-width: calc(1248px + 24px);
    padding-left: 12px;
    padding-right: 12px;
    --page-wrap: 12px;
  }
}
.c-floating-bar__inner::after { /* [3] */
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  flex-basis: 40px;
  font-size: 40px;
  margin-left: 32px;
  content: "\f156";
  color: #347954;
}
@media (max-width: 720px) {
  .c-floating-bar__inner::after {
    flex-basis: 32px;
    font-size: 32px;
    margin-left: 16px;
  }
}

/* ------------------------------------*\
    #EXPANDABLE-CONTENT
\*------------------------------------ */
/* stylelint-disable-line number-no-trailing-zeros */
/**
 * [1]  Use pseudo element for collapsible background so it can be animated
 *      (also see [15]).
 * [2]  Default background-color when the background section container is white.
 * [3]  Make sure to just reveal the differing background-color when the extra-
 *      content is visible. Unfortunately, `!important` is necessary so that
 *      the declaration also applies, if the expandable-content component also carries
 *      the `[data-theme]` attribute.
 * [4]  Initially hide the element and set `display: block` by JS on page-load to
 *      show it again. This ensures that in case JS isn't executed for whatever
 *      reason, the trigger is not shown (because a trigger triggers nothing,
 *      when it's lacking the necessary JS-function).
 * [5]  Use `grid-template-rows` to transition the height.
 *      No more choppy `max-height` transition. (see https://www.stefanjudis.com/snippets/how-to-animate-height-with-css-grid/)
 * [6]  Pulling the text up above the icon. The amount comprises of the text-
 *      size plus spacing between the text and the icon
 *      ($expandable-content-trigger-text-icon-gap).
 * [7]  Make sure the line-height equals the font-size so the math is correct.
 *      This will ever only work, if the trigger text is a one-liner!
 * [8]  In case the trigger text is exceedingly long, this ensures the text
 *      will never wrap...
 * [9]  ...and prevent horizontal scrollbar...
 * [10] ...and instead just show an ellipsis.
 * [11] Also hide the overflow on the y-axis, because IE-issues.
 * [12] Animate the icon when triggering the expandable-content.
 * [13] Make the icon box round.
 * [14] We have to use pseudo elements for paddings here. Otherwise it would not
 *      completely hide the content in collapsed state because it’s a grid item.
 *      See [5].
 * [15] The animation of the pseudo element needs to have a shorter duration
 *      than the expandable-content itself. Just dividing it by two makes sure it
 *      always is without creating an extra variable.
 * [16] The animation of the trigger text should be sequentially before the
 *      animation of the expandable-content itself. Dividing it by two with the
 *      default transition duration prevents us from creating a separate
 *      variable.
 * [17] The specificity needs to be raised to trump the selector making the
 *      element visible after the JavaScript was loaded.
 * [18] Disable (an re-establish) pointer-events if trigger button is invisible.
 * [19] We need to set the height of the trigger button in order to add a height
 *      animation to it. The height is a combination of font-size (which is a
 *      responsive map), height of the icon and the gap between icon and text.
 */
.c-expandable-content {
  position: relative;
  z-index: 2;
  top: 0;
  margin-top: 32px;
  margin-bottom: 32px;
}
.c-expandable-content::before { /* [1] */
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: block;
  background-color: #f1f1f1; /* [2] */
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=alternative] .c-expandable-content::before {
  background-color: #ffffff;
}

.c-expandable-content.js-is-ready {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 650ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  /* [15] */
}
.c-expandable-content.js-is-ready::before {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 325ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
}
.c-expandable-content.c-expandable-content--no-background::before {
  background-color: transparent;
}
.c-expandable-content.is-closed-within {
  top: 95px;
}
.c-expandable-content.is-closed-within.js-is-ready {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 650ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
}
.c-expandable-content.is-closed-within::before {
  background-color: transparent !important; /* [3] */ /* stylelint-disable-line itcss/no-at-important */
}

.c-expandable-content__trigger {
  padding: 0;
  border: 0;
  background-color: transparent;
  display: none; /* [4] */
  width: 100%;
}
.c-expandable-content__trigger:focus {
  outline: 0;
}
.c-expandable-content.js-is-ready .c-expandable-content__trigger {
  display: block; /* [4] */
}

.c-expandable-content__trigger-open {
  height: 0;
  transform: translateY(0);
  opacity: 0;
}
.c-expandable-content.js-is-ready .c-expandable-content__trigger-open {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 650ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
}
.c-expandable-content.is-closed-within .c-expandable-content__trigger-open {
  transform: translateY(-95px);
}
.c-expandable-content__trigger-open,
.c-expandable-content__trigger-open > * {
  pointer-events: none; /* [18] */
}
.c-expandable-content.is-closed-within .c-expandable-content__trigger-open {
  height: 56px;
  opacity: 1;
}
.c-expandable-content.is-closed-within .c-expandable-content__trigger-open,
.c-expandable-content.is-closed-within .c-expandable-content__trigger-open > * {
  pointer-events: auto; /* [18] */
}

.c-expandable-content__trigger-text {
  font-size: 1rem;
  line-height: 1;
  /* [7] */
  display: block;
  width: 100%;
  overflow: hidden; /* [9] */ /* [11] */
  font-weight: 700;
  text-overflow: ellipsis; /* [10] */
  text-transform: none;
  text-align: center;
  white-space: nowrap; /* [8] */
  color: #161718;
}
.c-expandable-content__trigger-text-open {
  top: -24px; /* [6] */
  opacity: 0;
}
.c-expandable-content.js-is-ready .c-expandable-content__trigger-text-open {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 325ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  /* [16] */
}
.c-expandable-content.is-closed-within .c-expandable-content__trigger-text-open {
  opacity: 1;
}

.c-expandable-content__icon {
  font-size: 1.5rem;
  color: #161718;
  display: block;
  margin-top: 8px;
  text-align: center;
}
.c-expandable-content__icon::before {
  border-radius: 50%;
  padding: 3px;
}
.c-expandable-content__icon::before {
  border: 1px solid transparent;
  background-color: transparent;
}
.c-expandable-content__icon::before {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 325ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  content: "\f151";
  /* [12] */
}
.c-expandable-content__trigger:hover .c-expandable-content__icon::before {
  border-color: transparent;
  background-color: transparent;
  color: #161718;
}

.c-expandable-content .c-expandable-content__collapse {
  /* stylelint-disable order/order */
  --transition-property: grid-template-rows;
  --transition-duration: var(--transition-duration-reduced-motion, 650ms);
  --transition-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955);
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  /* [5] */
  display: grid; /* [5] */
  grid-template-rows: 0fr 0fr; /* [5] */
}
.c-expandable-content .c-expandable-content__collapse > * {
  overflow: hidden; /* [5] */
}
.c-expandable-content .c-expandable-content__collapse[aria-hidden=false] {
  grid-template-rows: 1fr min-content; /* [5] */
}

.c-expandable-content__content::before, .c-expandable-content__content::after {
  content: "";
  display: block;
  height: min(24px, var(--page-wrap) * 1.5); /* [14] */
}

.c-expandable-content__trigger-close.c-expandable-content__trigger-close {
  /* stylelint-disable order/order */
  --transition-property: opacity, padding;
  --transition-duration: var(--transition-duration-reduced-motion, 650ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
}
:not([aria-hidden=false]) > .c-expandable-content__trigger-close.c-expandable-content__trigger-close {
  pointer-events: none; /* [18] */
  visibility: hidden;
  opacity: 0;
}
[aria-hidden=false] > .c-expandable-content__trigger-close.c-expandable-content__trigger-close {
  padding-bottom: 16px;
  opacity: 1;
}
.c-expandable-content__trigger-close.c-expandable-content__trigger-close .c-expandable-content__icon::before {
  content: "\f156";
}

/* ------------------------------------*\
    #EXPANDABLE-CONTENT
\*------------------------------------ */
.c-expandable-content::before {
  border-color: #e4e4e4;
}
.c-expandable-content:not(.is-closed-within)::before {
  border: 1px solid #e4e4e4;
  border-radius: 8px;
}

.c-expandable-content__content > *:last-child {
  margin-bottom: 0;
}

.c-expandable-content__icon {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  scale: 1;
}
.c-expandable-content__icon::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  transition: inherit;
}
.c-expandable-content__trigger:hover .c-expandable-content__icon::after {
  background-color: rgba(22, 23, 24, 0.06);
}

.c-expandable-content__trigger:focus-visible .c-expandable-content__icon::after {
  --focus-outline-color: #161718;
  --focus-outline-offset: 0;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

.c-expandable-content__trigger:active .c-expandable-content__icon {
  scale: 0.95;
}

/* ------------------------------------*\
    #GUIDING-LINE
\*------------------------------------ */
/**
 * [1] Border radius of the line container.
 * [2] Border radius of the line.
*/
.c-guiding-line {
  display: none;
}

/**
 * [1] Center icon inside button.
 * [2] Overwrite plyr default.
 * [3] Center play button icon.
 */
.c-play-button {
  --play-button-icon: "\f162";
  --play-button-background-color: transparent;
  --play-button-background-color-hover: rgba(243, 243, 243, 0.18);
  --play-button-border: 2px solid #ffffff;
  --play-button-icon-color: #ffffff;
  --play-button-icon-color-hover: #ffffff;
  display: inline-flex !important; /* [1][2] */ /* stylelint-disable-line itcss/no-at-important */
  align-items: center; /* [1] */
  justify-content: center; /* [2] */
  width: 44px;
  height: 44px;
  padding: 0;
  border: var(--play-button-border);
  border-radius: 100%;
  line-height: 0; /* [3] */
  background: var(--play-button-background-color);
  color: var(--play-button-icon-color);
  transition: all 300ms ease-in-out;
}
@media (max-width: 720px) {
  .c-play-button {
    width: 40px;
    height: 40px;
  }
}
.c-play-button:hover, .c-play-button:focus {
  background: var(--play-button-background-color-hover);
  color: var(--play-button-icon-color-hover);
}

.c-play-button__icon {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 32px;
}
.c-play-button__icon::before {
  content: var(--play-button-icon);
}

.c-play-button__label {
  position: absolute !important; /* stylelint-disable-line itcss/no-at-important */
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
}

.c-play-button {
  filter: drop-shadow(0 0 8px rgba(0, 0, 0, 0.35));
}
.c-play-button:focus-visible {
  --focus-outline-color: #ffffff;
  --focus-outline-offset: 1px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}
.c-play-button:active {
  scale: 0.95;
}

/* ------------------------------------*\
    #LABELED-CONTENT-SECTION
\*------------------------------------ */
/**
 * [1] Use the same paddings as the content section object.
 */
.c-labeled-content-section {
  padding-top: 32px; /* [1] */
  padding-bottom: 32px; /* [1] */
}

.c-labeled-content-section__label {
  margin-bottom: 8px;
}

/* ------------------------------------*\
    #COMPARE-AND-SELECT (Settings)
\*------------------------------------ */
/* ------------------------------------*\
    #COMPARE-AND-SELECT
\*------------------------------------ */
/**
 * [1] Only add padding and border to the top if this element is not a
 *     direct sibling of the header element.
 * [2] Hide native input element and do not act as a "scroll anchor"
 *     when the associated label is clicked.
 * [3] Center the icon and title text. `display: flex` is set by `.o-media`.
 * [4] Reset default `margin-bottom`.
 * [5] The button stretches across the full width by default. Optionally it can
 *      be centered via flexbox and `auto` margins.
 * [6] Eliminate the spacing bottom below the very last
 *     element in the container.
 * [7] Although the `margin` property is used here, what it actually does
 *     **visually** is setting a padding. That's why our
 *     `$compare-and-select-padding` variable is used.
 * [8] To align the slider dots and the slider arrows properly, we set the
 *     container to flex and reposition the items with the `order` property.
 *     This prevents us from using `position: absolute` plus magic numbers.
 * [9] Center the dots and the arrows horizontally.
 * [10] Center the dots and the arrows vertically.
 * [11] Force the slider items to take up all horizontal space.
 * [12] Hack to prevent a cut-off of the box-shadow by the necessary
 *      `overflow: hidden` of the slider container.
 * [13] Hide the dots and arrows, if there is nothing to slide.
 * [14] Compensate only above breakpoint. Smaller breakpoints go edge-to-edge,
 *      no compensation required.
 * [15] The actual arrow icons of the slider. The size of the icons has to be
 *      done directly on the pseudo element.
 * [16] `box-shadow` can be used for real box shadow effects or simulated
 *      borders that do not affect the inner element˚s widths.
 * [17] Use flexbox to allow reversed order of total and suffix.
 * [18] Set the spacing between value total and value suffix depending on the
 *      visual order of both elements.
 * [19] Set `position` to allow positioning of inner elements like the label.
 * [20] Increase the radio button label width to the full component width.
 *      them horizontally.
 * [21] Create (responsive) gutter between the slider elements while still
 *      aligning the content correctly horizontally. That is why we need the
 *      negative padding "trick" here.
 * [22] Make all slider elements the same height while pushing the radio addon
 *      and legal text to the bottom.
 * [23] Calculate correct spacing between slider and navigation controls by
 *      substracting the bottom offset if needed. This makes sure that the spacing
 *      in total is always the value we set for the vertical spacing.
 * [24] Hide label without content. Selector only matches for NO content,
 *      whitespaces & comments are not considered as empty.
 * [25] Match selector even with whitespaces & comments,
 *      analogue to `:blank` (firefox only).
 * [26] Move title down if a label is present in order to align titles of items
 *      with and without label side-by-side. We account for the label height using
 *      an offset value.
 * [27] Enables child elements to work with utility class `u-text-truncate`.
 * [28] Make sure when the background has a brand color, the `.c-icon` inherits the parent's color.
 * [29] Allow component to break out of page-wrap to go from edge-to-edge.
 * [30] Enable and disable Flickity with CSS depending on the defined breakpoint.
 *      @see https://flickity.metafizzy.co/options.html#watchcss
 * [31] When stacked enable full viewport width for items.
 * [32] Hide the initial marker for all browsers.
 * [33] Display the `<summary>` element of the parent `<details>` element only on small screens.
 * [34] Retrieve the breakpoint custom property to use within the component script.
 * [35] Remove any inherited margin, e.g. from `.c-compare-and-select__list`.
 * [36] Add bottom spacing to any item when in stacked mode on smaller screens.
 * [37] Rotate the icon to indicate the open `<details>`.
 * [38] Ensure spacing on smaller screens.
 * [39] Remove reserved space for label to reduce whitespace in stacked mode.
 * [40] Override hint colors for selected tiles.
 * [41] Activate the equal height functionality only for larger viewports.
 * [42] Align the pricing component always from the bottom-up.
 * [43] Apply calculated title height.
 */
/* stylelint-disable selector-max-compound-selectors, selector-max-combinators, selector-max-specificity */
.o-page-wrap .c-compare-and-select-container {
  /* [29] */
  /* [29] */
}
@media (max-width: 960px) {
  .o-page-wrap .c-compare-and-select-container {
    margin-left: -48px;
  }
}
@media (max-width: 720px) {
  .o-page-wrap .c-compare-and-select-container {
    margin-left: -24px;
  }
}
@media (max-width: 480px) {
  .o-page-wrap .c-compare-and-select-container {
    margin-left: -12px;
  }
}
@media (max-width: 960px) {
  .o-page-wrap .c-compare-and-select-container {
    margin-right: -48px;
  }
}
@media (max-width: 720px) {
  .o-page-wrap .c-compare-and-select-container {
    margin-right: -24px;
  }
}
@media (max-width: 480px) {
  .o-page-wrap .c-compare-and-select-container {
    margin-right: -12px;
  }
}
.c-compare-and-select-container .flickity-viewport {
  order: 0; /* [8] */
}
.c-compare-and-select-container .flickity-prev-next-button {
  position: relative; /* [11] */
  display: block; /* [13] */
  transform: none; /* [11] */
}
.c-compare-and-select-container .flickity-prev-next-button::before { /* [15] */
  vertical-align: middle; /* [10] */
}
.c-compare-and-select-container .flickity-prev-next-button.previous {
  order: 1; /* [8] */
}
.c-compare-and-select-container .flickity-prev-next-button.next {
  order: 3; /* [8] */
}
.c-compare-and-select-container .flickity-page-dots {
  display: flex; /* [13] */
  order: 2; /* [8] */
}

.c-compare-and-select-container__inner {
  --bron-compare-and-select-min-height: initial;
}
.c-compare-and-select-container__inner.flickity-resize {
  margin-left: -12px;
  /* [21] */
  margin-right: -12px;
  /* [21] */
}
@media (max-width: 960px) {
  .c-compare-and-select-container__inner.flickity-resize {
    margin-left: 0 !important; /* [14] */
    margin-right: 0 !important; /* [14] */
  }
}
.c-compare-and-select-container__inner.flickity-resize .c-compare-and-select__item,
.c-compare-and-select-container__inner.flickity-resize .c-compare-and-select {
  height: 100%; /* [22] */
}

.c-compare-and-select--stacked {
  --bron-compare-select-accordion-breakpoint: 720px; /* [34] */
}
.c-compare-and-select--stacked::after {
  content: "flickity"; /* [30] */
  display: none; /* [30] */
}
@media (max-width: 719px) {
  .c-compare-and-select--stacked::after {
    content: ""; /* [30] */
  }
}
@media (max-width: 720px) {
  .c-compare-and-select--stacked .c-compare-and-select__item {
    width: 100%; /* [31] */
    margin-bottom: 24px; /* [36] */
  }
}
@media (max-width: 720px) {
  .c-compare-and-select--stacked .c-compare-and-select__label:empty + .c-compare-and-select__title {
    margin-top: 0; /* [39] */
  }
  .c-compare-and-select--stacked .c-compare-and-select__label:-moz-only-whitespace + .c-compare-and-select__title {
    margin-top: 0; /* [39] */
  }
}

.c-compare-and-select__details {
  display: flex;
  margin-right: 24px;
  margin-left: 24px;
}
@media (max-width: 719px) {
  .c-compare-and-select__details {
    margin-bottom: 24px; /* [38] */
  }
}
.c-compare-and-select__details[open] {
  margin-bottom: 0; /* [38] */
}
.c-compare-and-select__details[open] .c-compare-and-select__summary {
  margin-bottom: 24px;
}
@media (min-width: 721px) {
  .c-compare-and-select__details[open] .c-compare-and-select__summary {
    display: none; /* [33] */
  }
}
.c-compare-and-select__details[open] .c-btn__icon {
  transform: rotate(180deg); /* [37] */
}
.c-compare-and-select__details[open] > * {
  margin-left: 0; /* [35] */
  margin-right: 0; /* [35] */
}

.c-compare-and-select__summary {
  list-style: none; /* [32] */
  cursor: pointer;
}
.c-compare-and-select__summary::-webkit-details-marker {
  display: none; /* [32] */
}
@media (max-width: 720px) {
  .c-compare-and-select__summary::before {
    color: #347954;
  }
}

.c-compare-and-select__item {
  width: 33.3333333333%;
  /* [12] */
  /* [12] */
}
@media (max-width: 960px) {
  .c-compare-and-select__item {
    width: 41.6666666667%;
  }
}
@media (max-width: 720px) {
  .c-compare-and-select__item {
    width: 66.6666666667%;
  }
}
@media (max-width: 480px) {
  .c-compare-and-select__item {
    width: 83.3333333333%;
  }
}

.c-compare-and-select {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  margin-left: 12px;
  /* [21] */
  margin-right: 12px;
  /* [21] */
  position: relative; /* [19] */
  display: flex;
  flex-direction: column;
  padding-top: 32px;
  border: 1px solid #e4e4e4;
  border-radius: 8px;
  background-color: #f1f1f1;
  /* [16] */
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.c-compare-and-select__hidden-input {
  display: none;
}

.c-compare-and-select__label {
  position: absolute;
  top: 24px;
  align-self: center;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background-color: #0e3a2f;
  color: #ffffff;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.c-compare-and-select__label:empty {
  display: none; /* [24] */
}
.c-compare-and-select__label:-moz-only-whitespace {
  display: none; /* [25] */
}

.c-compare-and-select__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  /* [3] */
  padding-right: 24px;
  padding-left: 24px;
  text-align: center;
  margin-bottom: 24px;
}
@media (min-width: 721px) {
  .c-compare-and-select__title { /* [41] */
    min-height: var(--bron-compare-and-select-min-height); /* [43] */
  }
}
.c-compare-and-select__label + .c-compare-and-select__title {
  margin-top: 32px; /* [26] */
}

.c-compare-and-select__icon {
  font-size: 3rem;
  line-height: 1;
  margin-bottom: 8px;
  color: #161718;
}

.c-compare-and-select__title-text {
  font-size: 1.4375rem;
  max-width: 100%; /* [27] */
  margin-bottom: 0; /* [4] */
}

.c-compare-and-select__title-indicator-text {
  font-size: 2.0625rem;
}

.c-compare-and-select__description {
  font-size: 0.875rem;
  margin-right: 24px; /* [7] */
  margin-bottom: 24px;
  margin-left: 24px; /* [7] */
}

.c-compare-and-select__pricing {
  display: flex; /* [42] */
  flex-direction: column; /* [42] */
  justify-content: flex-end; /* [42] */
  min-height: var(--bron-compare-and-select-min-height); /* [43] */
  margin-right: 24px; /* [7] */
  margin-left: 24px; /* [7] */
}

.c-compare-and-select__button {
  margin-right: 24px; /* [5] */
  margin-left: 24px; /* [5] */
  margin-bottom: 24px;
}
.c-compare-and-select > .c-compare-and-select__button {
  margin-bottom: 24px;
}

.c-compare-and-select__legal {
  font-size: 0.75rem;
  margin-right: 24px; /* [7] */
  margin-left: 24px; /* [7] */
  margin-bottom: 24px;
  font-weight: 400;
}

.c-compare-and-select__list {
  margin-right: 24px; /* [7] */
  margin-bottom: 24px;
  margin-left: 24px; /* [7] */
}
.c-compare-and-select__list.c-icon-list li:last-child {
  margin-bottom: 0; /* [6] */
}

.c-compare-and-select__checkbox {
  margin-right: 24px; /* [7] */
  margin-bottom: 24px;
  margin-left: 24px; /* [7] */
}
.c-compare-and-select__checkbox .c-checkbox {
  color: inherit;
}
.c-compare-and-select__radio {
  display: block; /* [20] */
  padding-top: 24px;
  padding-right: 24px; /* [7] */
  padding-bottom: 24px;
  padding-left: 24px; /* [7] */
  color: inherit;
}
.c-compare-and-select__radio-label {
  font-size: 0.875rem;
  font-weight: 400;
}
.c-compare-and-select__radio-label, .c-compare-and-select__radio-label:hover {
  color: inherit;
}
.c-compare-and-select__radio-description {
  display: block;
  font-size: 0.75rem;
  font-weight: 400;
}

.c-compare-and-select--selected,
.c-compare-and-select__hidden-input:checked + .c-compare-and-select {
  --hint-text-color: $compare-and-select-color-checked; /* [40] */
  --hint-text-color-hover: $compare-and-select-color-checked; /* [40] */
  border-color: #347954;
  /* [16] */
  background-color: #f1f1f1;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.c-compare-and-select--selected .c-compare-and-select__label,
.c-compare-and-select__hidden-input:checked + .c-compare-and-select .c-compare-and-select__label {
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
.c-compare-and-select--selected .c-checkbox__label, .c-compare-and-select--selected .c-combobox__listbox[aria-multiselectable=true] .c-combobox__item__text, .c-combobox__listbox[aria-multiselectable=true] .c-compare-and-select--selected .c-combobox__item__text,
.c-compare-and-select__hidden-input:checked + .c-compare-and-select .c-checkbox__label,
.c-compare-and-select__hidden-input:checked + .c-compare-and-select .c-combobox__listbox[aria-multiselectable=true] .c-combobox__item__text,
.c-combobox__listbox[aria-multiselectable=true] .c-compare-and-select__hidden-input:checked + .c-compare-and-select .c-combobox__item__text {
  color: inherit;
}
.c-compare-and-select--selected .c-compare-and-select__summary > *,
.c-compare-and-select__hidden-input:checked + .c-compare-and-select .c-compare-and-select__summary > * {
  color: #347954;
}
.c-compare-and-select--selected .c-compare-and-select__summary::before,
.c-compare-and-select__hidden-input:checked + .c-compare-and-select .c-compare-and-select__summary::before {
  color: #347954;
}

.c-compare-and-select__footer {
  display: flex;
  flex-direction: column;
  margin-top: auto; /* [22] */
}

/* stylelint-enable */
.c-compare-and-select--selected .c-icon,
.c-compare-and-select__hidden-input:checked + .c-compare-and-select .c-icon,
.c-compare-and-select__radio .c-icon {
  /* [28] */
}

/* ------------------------------------*\
    #COMPARE-AND-SELECT
\*------------------------------------ */
/**
 * [1] Ensure tile icon foreground and background use common position.
 * [2] Ensure that icon is centered.
 * [3] Create safe-space only for elements that are next to indicator.
 *     This can be an indicator title, label or title.
 * [4] Prevent collision with title elements and indicator.
 * [5] Apply safe-space to both sides to maintain horizontal alignment.
 * [6] Change visuals when toggle items (button, radio-button) is hovered
 *     to indicate that state changes.
 * [7] "Undo" selected state as compare & select items can be selected, but
 *     not toggled off directly (checkbox functionality), they can only be
 *     selected exclusively (radio-button functionality).
 * [8] Mimic tag by reusing it's settings via `@extend`.
 * [9} Ensure correct height without having the same markup as tag (`.c-tag__label`).
 */
.c-compare-and-select {
  /* [6] */
}
.c-compare-and-select::before, .c-compare-and-select::after { /* [1] */
  /* stylelint-disable order/order */
  --transition-property: background-color;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  content: "";
  position: absolute;
  top: 16px;
  right: 16px;
  display: block;
  width: 32px;
  height: 32px;
}
.c-compare-and-select::before {
  border-radius: 50%;
  background-color: #e4e4e4;
}
.c-compare-and-select::after {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  content: "\f148";
  font-size: 20px;
  line-height: 32px; /* [2] */
  text-align: center; /* [2] */
  color: #ffffff;
}
.c-compare-and-select.c-compare-and-select--selected::before, .c-compare-and-select__hidden-input:checked + .c-compare-and-select::before {
  background-color: #347954;
}
.c-compare-and-select:has(.c-compare-and-select__button:hover, .c-compare-and-select__radio:hover) {
  border-color: #9e9fa0;
  /* stylelint-disable-next-line selector-max-specificity */
}
.c-compare-and-select:has(.c-compare-and-select__button:hover, .c-compare-and-select__radio:hover)::before {
  background-color: #d8d8d8;
}
.c-compare-and-select:has(.c-compare-and-select__button:hover, .c-compare-and-select__radio:hover).c-compare-and-select--selected::before, .c-compare-and-select__hidden-input:checked + .c-compare-and-select:has(.c-compare-and-select__button:hover, .c-compare-and-select__radio:hover)::before {
  background-color: #347954; /* [7] */
}

.c-compare-and-select__title {
  /* [3] */
}
.c-compare-and-select__title > :first-child {
  padding-right: 20px; /* [4] */
  padding-left: 20px; /* [5] */
}

.c-compare-and-select__label {
  /* [8] */ /* stylelint-disable-line scss/at-extend-no-missing-placeholder */
  line-height: 1; /* [9] */
}

/* ------------------------------------*\
    #INBOX-FILTER
\*------------------------------------ */
.c-inbox-filter {
  margin-bottom: 32px;
}

.c-inbox-filter__title {
  font-size: 1.25rem;
  line-height: 1.5;
  margin: 0;
  margin-bottom: 24px;
  padding: 0;
  font-weight: 700;
}
@media (min-width: 721px) {
  .c-inbox-filter__title {
    font-size: 1.4375rem;
    line-height: 1.5;
  }
}
@media (min-width: 1281px) {
  .c-inbox-filter__title {
    font-size: 1.5rem;
    line-height: 1.5;
  }
}

.c-inbox-filter__badge {
  margin-left: 4px;
}

.c-inbox-filter__body {
  padding: 0;
}

/* ------------------------------------*\
    #INBOX-TABLE (Settings)
\*------------------------------------ */
/* ------------------------------------*\
    #INBOX-TABLE
\*------------------------------------ */
/**
 * [1] Nest `.c-inbox-table` elements to increase specificity that let it
 *     overwrite `.c-table` styles.
 * [2] Define a minimum height to have same table cell heights, regardless of
 *     whether the content is one or two lines long.
 * [3] The date cell should have a `min-width` so that this column is always the
 *     same width in separate tables.
 * [4] Stretch the subject column to the widest possible width.
 * [5] Small viewports: Remove `table` related behavior from all table elements
 *     and format everything as a block-level element.
 * [6] Small viewports: Hide table head row in an accessibly.
 * [7] Small viewports: Position action buttons/icons into the top right corner.
 * [8] Small viewports: Remove bottom table cell borders except for the last
 *     cell.
 * [9] Reset some table link styles for the normal, non-hover state.
*/
.c-inbox-table {
  /**
   * Responsive variant for small viewports
   */
  /* stylelint-disable-next-line order/order */
}
.c-inbox-table .c-inbox-table__subheading { /* [1] */
  font-size: 1.25rem;
  margin-top: 24px;
  margin-bottom: 8px;
  font-weight: 700;
}
@media (min-width: 721px) {
  .c-inbox-table .c-inbox-table__subheading {
    font-size: 1.4375rem;
  }
}
@media (min-width: 1281px) {
  .c-inbox-table .c-inbox-table__subheading {
    font-size: 1.5rem;
  }
}
.c-inbox-table .c-inbox-table__body .c-table__btn {
  margin-right: 8px;
  margin-left: 8px;
}
.c-inbox-table .c-inbox-table__tr.is-unread {
  /* stylelint-disable-next-line selector-max-class */
}
.c-inbox-table .c-inbox-table__tr.is-unread .c-inbox-table__td {
  font-weight: 700;
}
.c-inbox-table .c-inbox-table__td {
  font-size: 1rem;
  line-height: 1.5;
  height: 32px; /* [2] */
  vertical-align: middle;
}
.c-inbox-table .c-inbox-table__td--date {
  min-width: 8em; /* [3] */
  white-space: nowrap;
}
.c-inbox-table .c-inbox-table__td--action {
  padding-top: 0;
  padding-bottom: 0;
}
.c-inbox-table .c-inbox-table__td--subject {
  position: relative;
  width: 100%; /* [4] */
  padding-left: 38px;
}
.c-inbox-table .c-inbox-table__td__subject {
  position: relative;
}
.c-inbox-table .c-inbox-table__status-indicator {
  position: absolute;
  top: 0.3em;
  left: -22px;
}
@media (max-width: 720px) {
  .c-inbox-table.c-inbox-table table {
    min-width: auto;
  }
  .c-inbox-table.c-inbox-table table, .c-inbox-table.c-inbox-table thead, .c-inbox-table.c-inbox-table tbody, .c-inbox-table.c-inbox-table tr, .c-inbox-table.c-inbox-table th, .c-inbox-table.c-inbox-table td {
    display: block; /* [5] */
  }
  .c-inbox-table.c-inbox-table thead tr {
    position: absolute !important; /* stylelint-disable-line itcss/no-at-important */
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    /* [6] */
  }
  .c-inbox-table.c-inbox-table tr {
    position: relative; /* [7] */
    margin-top: 0;
  }
  .c-inbox-table.c-inbox-table th, .c-inbox-table.c-inbox-table td {
    position: static; /* [7] */
    height: auto;
    padding: 0;
  }
  .c-inbox-table.c-inbox-table th::after, .c-inbox-table.c-inbox-table td::after {
    left: 0;
  }
  .c-inbox-table.c-inbox-table th::after:not(:last-child), .c-inbox-table.c-inbox-table td::after:not(:last-child) {
    border: none; /* [8] */
  }
  .c-inbox-table.c-inbox-table .c-table__btn {
    position: absolute; /* [7] */
    top: 0; /* [7] */
    right: 0; /* [7] */
    width: auto;
    height: auto;
    margin-right: 0;
    margin-left: 0;
  }
  .c-inbox-table.c-inbox-table .c-inbox-table__td--date {
    margin-bottom: 16px;
  }
  .c-inbox-table.c-inbox-table .c-inbox-table__td--subject {
    position: relative;
    padding-left: 22px;
    padding-bottom: 0;
  }
}

.c-inbox-table__extra-info {
  font-size: 0.75rem;
  margin-bottom: 0;
  font-weight: 400;
}

.c-inbox-table__link:not(:hover) {
  border-bottom: none; /* [9] */
  text-decoration: none; /* [9] */
  color: inherit; /* [9] */
}

/* ------------------------------------*\
    #INBOX-TABLE
\*------------------------------------ */
/**
 * [1] Increase specificity to override default table and inbox table styles (so sad).
 * [2] Use a pseudo element to add a border with rounded corners to the table.
 * [3] Disable EMIL borders based on `td, th` pseudo elements in favor of [2].
 * [4] Disable unneeded `::after` pseudo element in `th`s which prevents buttons
 *     from being clicked in the header.
 * [5] Remove column dividers between empty `th`s in `thead`. Because we are
 *     checking for `:empty`, the cells must not even contain whitespace.
 *     (This will change with browser support for CSS Selectors Level 4: https://drafts.csswg.org/selectors-4/#the-empty-pseudo)
 * [6] Small viewports: Add hover effect to the `tr` instead of `td, th`.
 *
 */
.c-inbox-table.c-inbox-table { /* [1] */
  /* stylelint-disable selector-max-specificity, selector-max-class */
  /* stylelint-disable-next-line order/order */
  /* stylelint-enable selector-max-specificity, selector-max-class */
}
.c-inbox-table.c-inbox-table table {
  position: relative; /* [2] */
  border: none; /* [3] */
}
.c-inbox-table.c-inbox-table table::after { /* [2] */
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  border: 1px solid #e4e4e4;
  border-radius: 8px;
  pointer-events: none;
}
.c-inbox-table.c-inbox-table.c-inbox-table.c-inbox-table.c-inbox-table.c-inbox-table { /* [1] */ }
.c-inbox-table.c-inbox-table.c-inbox-table.c-inbox-table.c-inbox-table.c-inbox-table td::before {
  display: none; /* [3] */
}
.c-inbox-table.c-inbox-table.c-inbox-table.c-inbox-table.c-inbox-table.c-inbox-table th::after {
  display: none; /* [4] */
}
.c-inbox-table.c-inbox-table.c-inbox-table.c-inbox-table.c-inbox-table.c-inbox-table th:empty::before {
  display: none; /* [5] */
}
@media (max-width: 720px) {
  .c-inbox-table.c-inbox-table tr {
    padding: 16px;
    transition: all 300ms ease-in-out; /* [6] */
  }
  .c-inbox-table.c-inbox-table tr:hover {
    background-color: #f1f1f1; /* [6] */
  }
  .c-inbox-table.c-inbox-table tr:hover th, .c-inbox-table.c-inbox-table tr:hover td {
    background-color: transparent; /* [6] */
  }
  .c-inbox-table.c-inbox-table th:not(:last-child)::after, .c-inbox-table.c-inbox-table td:not(:last-child)::after {
    display: none; /* [3] */
  }
  .c-inbox-table.c-inbox-table .c-table__btn.c-table__btn {
    top: 16px;
    right: 16px;
  }
}

/* ------------------------------------*\
   #TOAST-NOTIFICATION
\*------------------------------------ */
/**
 * [1] Restrict the height of the container to the viewport height, so it is
 *     scrollable with many items in it.
 * [2] Provide offset spacing for small screens, when the notifications would
 *     otherwise touch the left viewport edge.
 * [3] Offset the notifications to the right with `padding-right` instead of
 *     the `right` property, so the slide-right animation looks authentic.
 * [4] In case of many notifications, ensure scrollability,...
 * [5] ...but prevent on the x-axis.
 * [6] Delay the vertical animation, so the horizontal animation runs first.
 * [7] If there are any elements in notifications that bring spacing with it,
 *     prevent it from screwing up the padding.
 * [8] Shrink size to zero.
 * [9] Also reset margin-bottom as this contributes to the compound height.
 * [10] Reference for the close button.
 * [11] Push the notification out of screen when closed.
 * [12] Preserve space for the close button.
 * [13] Delay the horizontal animation when an item should be added, so the
 *      vertical animation runs first and gives up its space for the new item.
 * [14] Reset the transition-delay for the reversed animation, i.e. the adding
 *      of new notification items.
 * [15] Prevents the notifications to take up any space when it’s closed and
 *      takes care of eliminating any potential scroll bars.
 * [16] Provide a default text color.
 * [17] Make sure the icon color is the same as the text color, hence prevent
 *      any override from the `$ICON-COLOR` settings.
 * [18] Disable transition during initializations.
 */
.c-toast-notifications {
  position: fixed;
  z-index: 6000;
  top: 24px;
  right: 0; /* [3] */
  max-height: 100vh; /* [1] */
  overflow-x: hidden; /* [5] */
  overflow-y: auto; /* [4] */
  margin-left: 24px; /* [2] */
  padding-right: 24px; /* [3] */
}

.c-toast-notification {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  position: relative;
  overflow: hidden; /* [15] */
  transition-delay: 0s; /* [14] */
}
@media (min-width: 721px) {
  .c-toast-notification {
    max-width: 300px;
  }
}
.c-toast-notification:not(:last-child) {
  margin-bottom: 8px;
}
.c-toast-notification *:last-child {
  margin-bottom: 0; /* [7] */
}
.c-toast-notification.is-closed {
  height: 0; /* [8] */
  margin-bottom: 0; /* [9] */
  transition-delay: 300ms; /* [6] */
  visibility: hidden;
}

.c-toast-notification__content {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  position: relative; /* [10] */
  padding: 16px 24px;
  background-color: #0e3a2f;
  color: #ffffff; /* [16] */
  transition-delay: 300ms; /* [13] */
}
.c-toast-notification--info .c-toast-notification__content {
  background-color: #0e3a2f;
  color: #ffffff;
}
.c-toast-notification--success .c-toast-notification__content {
  background-color: #0e3a2f;
  color: #ffffff;
}
.c-toast-notification--warning .c-toast-notification__content {
  background-color: #0e3a2f;
  color: #ffffff;
}
.c-toast-notification--error .c-toast-notification__content {
  background-color: #0e3a2f;
  color: #ffffff;
}
.c-toast-notification[data-marketing-theme="1"] .c-toast-notification__content {
  background-color: #f9d1b8;
  color: #161718;
}
.c-toast-notification[data-marketing-theme="2"] .c-toast-notification__content {
  background-color: #c3f1b3;
  color: #161718;
}
.c-toast-notification.is-closed .c-toast-notification__content {
  transform: translateX(200%); /* [11] */
  transition-delay: 0s; /* [14] */
}

.c-toast-notification__body {
  font-size: 0.875rem;
  line-height: 1.5;
  padding-right: 28px; /* [12] */
}

.c-toast-notification__close {
  padding: 0;
  border: 0;
  background-color: transparent;
  position: absolute;
  top: 16px;
  right: 24px;
  color: currentColor; /* [17] */
}
.c-toast-notification__close:focus {
  outline: 0;
}
.c-toast-notification__close::before {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  content: "\f15a";
  font-size: 20px;
}

.c-toast-notification:not(.js-is-ready),
.c-toast-notification:not(.js-is-ready) .c-toast-notification__content {
  transition: none !important; /* [18] */
}

.c-toast-notification {
  --focus-outline-color: #ffffff;
  /* stylelint-disable-next-line order/order */
}
.c-toast-notification[data-marketing-theme] {
  --focus-outline-color: #161718;
}
.c-toast-notification--success .c-toast-notification__content {
  border-left: 0;
}
.c-toast-notification--success .c-toast-notification__content::after {
  background-color: #37d002;
}

.c-toast-notification--warning .c-toast-notification__content {
  border-left: 0;
}
.c-toast-notification--warning .c-toast-notification__content::after {
  background-color: #cd4a19;
}

.c-toast-notification--error .c-toast-notification__content {
  border-left: 0;
}
.c-toast-notification--error .c-toast-notification__content::after {
  background-color: #d92b35;
}

.c-toast-notification .c-toast-notification__content {
  position: relative;
}
.c-toast-notification .c-toast-notification__content::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 6px;
}

.c-toast-notification__close {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  scale: 1;
}
.c-toast-notification__close::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  transition: inherit;
}
.c-toast-notification__close:hover::after {
  background-color: rgba(243, 243, 243, 0.12);
}

.c-toast-notification__close:focus-visible::after {
  --focus-outline-color: #ffffff;
  --focus-outline-offset: 0;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

.c-toast-notification__close:active {
  scale: 0.95;
}

[data-marketing-theme] .c-toast-notification__close:hover::after {
  background-color: rgba(22, 23, 24, 0.06);
}
[data-marketing-theme] .c-toast-notification__close::after {
  --focus-outline-color: #161718;
}

/* ------------------------------------*\
    #DESCRIPTION-LIST-ACCORDION
\*------------------------------------ */
/**
 * [1] The bottom accordion border separates the accordion and the total section.
 * [2] Align item label and value to the left and right via flexbox.
 * [3] Reset `dl` margins.
 * [4] Stack item label and value vertically in small viewports.
 * [5] Increase specificity to overrule specificity of
 *     `.c-accordion:not(:only-child)`.
 * [6] Increase specificity to overrule specificity of
 *     `.c-accordion--header-split .c-accordion__header`.
 * [7] Make sure to not use the default `<dt>` color.
 */
.c-description-list-accordion__accordion.c-description-list-accordion__accordion { /* [5] */
  border-top: none;
  border-bottom: 1px solid #e4e4e4; /* [1] */
}

.c-description-list-accordion__header.c-description-list-accordion__header { /* [6] */ }
* + .c-description-list-accordion__header.c-description-list-accordion__header {
  border-top: 1px solid #e4e4e4;
}

.c-description-list-accordion__title-label {
  font-size: 1rem;
  font-weight: 700;
}

.c-description-list-accordion__title-value {
  font-size: 1rem;
  font-weight: 700;
}
@media (max-width: 720px) {
  .c-description-list-accordion__title-value {
    margin-top: 4px;
  }
}

.c-description-list-accordion__content,
.c-description-list-accordion__item--total {
  padding-right: 48px;
  padding-left: 0;
}

.c-description-list-accordion__item {
  display: flex; /* [2] */
  flex-direction: row; /* [2] */
  justify-content: space-between; /* [2] */
  align-items: flex-start; /* [2] */
  margin-top: 0; /* [3] */
  margin-bottom: 0; /* [3] */
}
@media (max-width: 720px) {
  .c-description-list-accordion__item {
    display: block; /* [4] */
  }
}
.c-description-list-accordion__item + .c-description-list-accordion__item {
  margin-top: 8px;
}

.c-description-list-accordion__item__label {
  color: inherit; /* [7] */
}

.c-description-list-accordion__item__label-text {
  font-size: 1rem;
  font-weight: 300;
}

.c-description-list-accordion__item__label-note {
  font-size: 0.875rem;
  font-weight: 400;
}
@media (max-width: 720px) {
  .c-description-list-accordion__item__label-note {
    margin-bottom: 4px;
  }
}

.c-description-list-accordion__item__value {
  font-size: 1rem;
  font-weight: 700;
}

.c-description-list-accordion__item--total {
  padding-top: 16px;
}
.c-description-list-accordion__item--total .c-description-list-accordion__item__label-text {
  font-size: 1.25rem;
  font-weight: 700;
}
@media (min-width: 721px) {
  .c-description-list-accordion__item--total .c-description-list-accordion__item__label-text {
    font-size: 1.4375rem;
  }
}
@media (min-width: 1281px) {
  .c-description-list-accordion__item--total .c-description-list-accordion__item__label-text {
    font-size: 1.5rem;
  }
}
.c-description-list-accordion__item--total .c-description-list-accordion__item__value {
  font-size: 1.25rem;
  font-weight: 700;
}
@media (min-width: 721px) {
  .c-description-list-accordion__item--total .c-description-list-accordion__item__value {
    font-size: 1.4375rem;
  }
}
@media (min-width: 1281px) {
  .c-description-list-accordion__item--total .c-description-list-accordion__item__value {
    font-size: 1.5rem;
  }
}

/* ------------------------------------*\
   #NOTIFICATION-CENTER (Settings)
\*------------------------------------ */
/* ------------------------------------*\
   #NOTIFICATION-CENTER
\*------------------------------------ */
/**
 * [1] Position the Notification Center toggle in the header.
 * [2] Spacing to other header items (e.g. the context bar).
 * [3] Add space for the badge in smaller viewports so that it will not overlap
 *     the navigation toggle “hamburger” icon.
 * [4] Remove unwanted vertical space by making the icon a block element.
 * [5] Position the badge absolutely inside the toggle.
 * [6] Shift the badge horizontally or vertically if necessary. This can also be
 *     set separately for smaller viewports.
 * [7] Add shadow to the bottom or top if content is outside of the viewport.
 * [8] Make panel scrollable.
 * [9] Set panel `z-index` to overlay other elements (e.g. VW6 navigation layers).
 * [10] Fade panel in with a smooth transition in small viewports.
 *      `pointer-events` are disabled in the collapsed state.
 * [11] Push the first item down by the height of the fixed positioned panel
 *      heading.
 * [12] Fixate the panel header to the top and increase `z-index` so it always
 *      stays in front of the panel items.
 * [13] Set panel header padding to a responsive map or fixed value
 *      (default is `$page-wrap-padding-horizontal`)
 * [14] Increase specificity to allow button styles to be overwritten.
 * [15] Display all items below each other, no matter if they are block or
 *      inline elements.
 * [16] Set same spacings between inner item elements.
 * [17] Animate panel items in with a smooth transition in small viewports.
 * [18] Position the status point vertically centered to the first line of the
 *      article heading by dividing the responsive font size of the heading in
 *      half considering its line spacing.
 * [19] Change heading `font-weight` for read items.
 * [20] Remove bottom margin of last child element (e.g. a paragraph).
 * [21] Overwrite `.c-btn` font size.
 * [22] Push link to the left in flexbox context for brands (VW6) that use a
 *      border as link decoration.
 * [23] Show item overlay on hovering/focusing the
 *      `.c-notification-center__item__mark-read-toggle` button.
 */
.c-notification-center {
  display: flex; /* [1] */
  align-items: center; /* [1] */
  height: 100%; /* [1] */
}

.c-notification-center__toggle {
  padding: 0;
  border: 0;
  background-color: transparent;
  position: relative; /* [5] */
  margin-left: 0; /* [2] */
}
@media (max-width: 960px) {
  .c-notification-center__toggle {
    margin-right: 12px; /* [3] */
  }
}
.c-notification-center__toggle::after {
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.5rem;
  line-height: 1;
  content: "\f12a";
  display: block; /* [4] */
  color: inherit;
}

.c-notification-center__toggle__label {
  position: absolute !important; /* stylelint-disable-line itcss/no-at-important */
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
}

.c-notification-center__toggle__badge {
  position: absolute; /* [5] */
  top: 50%; /* [5] */
  left: 100%; /* [5] */
  /* [6] */
  /* [6] */
  transform: translate(-85%, -50%); /* [5] */
}
@media (max-width: 960px) {
  .c-notification-center__toggle__badge {
    /* [6] */
    /* [6] */
  }
}

.c-notification-center__panel {
  /* stylelint-disable */
  background: linear-gradient(#ffffff 30%, rgba(255, 255, 255, 0)), linear-gradient(rgba(255, 255, 255, 0), #ffffff 70%) 0 100%, radial-gradient(farthest-side at 50% 0, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0)), radial-gradient(farthest-side at 50% 100%, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0)) 0 100%;
  background-repeat: no-repeat;
  background-color: #ffffff;
  background-size: 100% 42px, 100% 42px, 100% 14px, 100% 14px;
  background-attachment: local, local, scroll, scroll;
  /* stylelint-enable */
  max-height: 100%;
  overflow-y: auto;
  font-size: 0.75rem;
  overflow: auto; /* [8] */
  border-radius: 8px;
  font-weight: 400;
}
@media (min-width: 961px) {
  .c-notification-center__panel {
    position: absolute;
    top: 100%;
    right: 0;
    display: none;
    width: 38em;
    max-height: calc(100vh - 64px - 80px);
    border: 1px solid #e4e4e4;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.15);
  }
  .c-notification-center__panel[aria-hidden=false] {
    display: block;
  }
}
@media (max-width: 960px) {
  .c-notification-center__panel {
    /* stylelint-disable order/order */
    --transition-property: opacity;
    --transition-duration: var(--transition-duration-reduced-motion, 300ms);
    --transition-timing-function: ease-in-out;
    --transition-delay: ;
    transition-property: var(--transition-property);
    transition-duration: var(--transition-duration);
    transition-timing-function: var(--transition-timing-function);
    transition-delay: var(--transition-delay);
    position: fixed;
    z-index: 2500; /* [9] */
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    pointer-events: none; /* [10] */
    opacity: 0; /* [10] */
  }
  .c-notification-center__panel[aria-hidden=false] {
    pointer-events: auto; /* [10] */
    opacity: 1; /* [10] */
  }
  .c-notification-center__panel > .c-notification-center__item:first-of-type {
    margin-top: 64px; /* [11] */
  }
}

.c-notification-center__panel__header {
  position: fixed; /* [12] */
  z-index: 1; /* [12] */
  top: 0; /* [12] */
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 64px;
  border-bottom: 1px solid #e4e4e4;
  background-color: #ffffff;
  color: #161718;
  padding-right: 32px; /* [13] */
  padding-left: 32px; /* [13] */
}
@media (min-width: 961px) {
  .c-notification-center__panel__header {
    display: none;
  }
}

.c-notification-center__panel__heading {
  font-size: 1.4375rem;
  margin: 0;
  font-weight: 700;
}
@media (min-width: 721px) {
  .c-notification-center__panel__heading {
    font-size: 1.6875rem;
  }
}
@media (min-width: 1281px) {
  .c-notification-center__panel__heading {
    font-size: 1.875rem;
  }
}

/* stylelint-disable selector-max-class, selector-max-specificity */
.c-notification-center__panel__close.c-notification-center__panel__close.c-notification-center__panel__close { /* [14] */ }
.c-notification-center__panel__close.c-notification-center__panel__close.c-notification-center__panel__close .c-btn__icon {
  display: inline-flex;
}
.c-notification-center__panel__close.c-notification-center__panel__close.c-notification-center__panel__close .c-btn__icon::before {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  content: "\f15a";
}
.c-notification-center__panel__close.c-notification-center__panel__close.c-notification-center__panel__close .c-btn__text { /* [14] */ }
/* stylelint-enable */
.c-notification-center__item {
  position: relative;
  display: flex; /* [15] */
  flex-direction: column; /* [15] */
  padding: 24px 32px;
}
@media (max-width: 960px) {
  .c-notification-center__item {
    transform: translateY(-30px); /* [17] */
    transition: all 300ms ease-in-out; /* [17] */
  }
  .c-notification-center__panel[aria-hidden=false] .c-notification-center__item {
    transform: translateY(0); /* [17] */
  }
}
.c-notification-center__item + .c-notification-center__item {
  border-top: 1px solid #e4e4e4;
}
.c-notification-center__item > * + * {
  margin-top: 8px; /* [16] */
  margin-bottom: 0; /* [16] */
}

.c-notification-center__item__status {
  position: absolute;
  top: 34px; /* [18] */
  left: 32px;
}

.c-notification-center__item__heading {
  font-size: 1rem;
  line-height: 1.2;
  margin-top: 0;
  margin-bottom: 0;
  font-weight: 700;
}
.c-notification-center__item--read .c-notification-center__item__heading {
  font-weight: 700; /* [19] */
}

.c-notification-center__item__heading-link {
  border-style: none;
  text-decoration: none;
}

.c-notification-center__item__body > :last-child {
  margin-bottom: 0; /* [20] */
}

.c-notification-center__item__timestamp {
  font-size: 0.75rem;
  font-weight: 400;
  color: #7c7d7e;
}

.c-notification-center__item__mark-read-toggle {
  font-size: 0.875rem;
  /* [21] */
  margin-right: auto; /* [22] */
  position: static;
}
.c-notification-center__item__mark-read-toggle::before { /* [23] */
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: #f1f1f1;
  transition: all 300ms ease-in-out;
  pointer-events: none;
  opacity: 0;
  mix-blend-mode: darken;
}
.c-notification-center__item__mark-read-toggle:hover, .c-notification-center__item__mark-read-toggle:focus {
  mix-blend-mode: darken;
}
.c-notification-center__item__mark-read-toggle:hover::before, .c-notification-center__item__mark-read-toggle:focus::before {
  opacity: 1; /* [23] */
}

.c-notification-content-center__item__close {
  padding: 0;
  border: 0;
  background-color: transparent;
  width: auto;
  overflow: visible;
  margin: 0;
  font: inherit;
  line-height: normal;
  text-align: inherit;
  text-transform: inherit;
  color: inherit;
  -webkit-font-smoothing: inherit;
  -moz-osx-font-smoothing: inherit;
  -webkit-appearance: none;
  position: absolute;
  top: 12px;
  right: 24px;
  padding: 0;
  transform: translateX(50%);
  color: #161718;
}
.c-notification-content-center__item__close::-moz-focus-inner {
  padding: 0;
  border: 0;
}
.c-notification-content-center__item__close::before {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  content: "\f15a";
  font-size: 20px;
}

.c-notification-content-center__item__close-label {
  position: absolute !important; /* stylelint-disable-line itcss/no-at-important */
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
}

/* ------------------------------------*\
   #NOTIFICATION-CENTER
\*------------------------------------ */
/**
 * [1] Overlay on toggle-hover not needed. Overwrite default.
 * [2] Colorize item background
 *     while maintaining scroll-shadow visibility (item overlay).
 * [2a] Unread status (default).
 * [2b] Read. status.
 * [3] Disable toggle overlay to show item overlay (item background).
 * [4] Imply "read" status by hovering toggle from "unread".
 *     Progressive enhancement:
 *     Use `:has` selector to check for child state and modify on parent level.
 *     Non-supporting browsers do not change background by hovering toggle.
 */
.c-notification-center__item {
  /* [2] */
}
.c-notification-center__item:has(.c-notification-center__item__mark-read-toggle:hover) {
  /* stylelint-disable-next-line selector-max-specificity */
}
.c-notification-center__item:has(.c-notification-center__item__mark-read-toggle:hover)::before {
  background-color: #ffffff; /* [4] */
}
.c-notification-center__item:not(.c-notification-center__item--read) {
  padding-left: 54px;
  /* stylelint-disable-next-line selector-max-specificity */
}
.c-notification-center__item:not(.c-notification-center__item--read) .c-notification-center__item__mark-read-toggle:hover::before {
  content: unset; /* [3] */
}
.c-notification-center__item::before {
  /* stylelint-disable order/order */
  --transition-property: background-color;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: #f1f1f1; /* [2a] */
  pointer-events: none;
  mix-blend-mode: darken;
}
.c-notification-center__item.c-notification-center__item--read::before {
  background-color: #ffffff; /* [2b] */
}

.c-notification-center__item__mark-read-toggle {
  padding: 16px 16px;
}

.c-notification-content-center__item__close {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  scale: 1;
}
.c-notification-content-center__item__close::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  transition: inherit;
}
.c-notification-content-center__item__close:hover::after {
  background-color: rgba(22, 23, 24, 0.06);
}

.c-notification-content-center__item__close:focus-visible::after {
  --focus-outline-color: #161718;
  --focus-outline-offset: 0;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

.c-notification-content-center__item__close:active {
  scale: 0.95;
}

.c-notification-content-center__item__close:focus-visible {
  outline: 0;
}

/* ------------------------------------*\
    #CARDS-SLIDER
\*------------------------------------ */
/**
 * [1] The flickity slider used for this component creates an
 *     `overflow: hidden` which cuts-off the shadow of the cards. Adding the
 *     same amount of padding as the box-shadow spread of the cards
 *     compensates this.
 * [2] Set equal content heights for sliders cells.
 * [3] Reset default flickity next/prev button styles.
 * [4] Soft fade left and right of the slider to prevent a hard overflow/cutoff.
 * [5] Show shadow above slides.
 * [6] Compensate gutter.
 */
.c-cards-slider-container {
  /* stylelint-disable order/order */
  --transition-property: opacity;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  opacity: 0;
}
.c-cards-slider-container.is-initialized {
  opacity: 1;
}

.c-cards-slider {
  margin-left: -24px; /* [6] */
}
.c-cards-slider.flickity-resize .c-cards-slider__item,
.c-cards-slider.flickity-resize .c-cards-slider__card-wrapper,
.c-cards-slider.flickity-resize .c-card {
  height: 100%; /* [2] */
}

/**
 * On large screens, the cards are shown completely (4 default cards and 5
 * small cards). On smaller screens, the last visible card is always shown
 * half to indicate to the user that there are more cards to scroll to.
 */
.c-cards-slider__item {
  padding-left: 24px;
  width: 25%;
}
@media (max-width: 960px) {
  .c-cards-slider__item {
    width: 33.3333333333%;
  }
}
@media (max-width: 720px) {
  .c-cards-slider__item {
    width: 50%;
  }
}
@media (max-width: 480px) {
  .c-cards-slider__item {
    width: 100%;
  }
}

.c-cards-slider__card-wrapper {
  padding: 4px 4px; /* [1] */
}

/* ------------------------------------*\
    #TREE-VIEW
\*------------------------------------ */
/**
 * [1] We need to clip the horizontal bounds at root level
 *     to cut off the pseudo-element from [5].
 * [2] Handle the collapse and expanded state of nested lists via the
 *     `aria-expanded` attribute from the parent tree list item.
 * [3] Disable focus styles on the focusable element and pass them down
 *     to the contained tree-view body.
 * [4] Only enable pointer for expandable tree list items.
 * [5] State is handled via tree list item parent but the styles are applied to the
 *     `.c-tree-view__body` and its `::before` pseudo-element. The pseudo-element
 *     carries the background and border state colors.
 * [6] If the parent tree list item receives focus, hover or has the
 *     `.is-selected`, `.is-accented` or `.is-alt-accented` class
 *     style the element accordingly.
 * [7] Display the tree view icon as `::after` pseudo-element of the `.c-tree-view__body`.
 * [8] Change the tree view icon depending on the parent tree list item state from [2].
 * [9] Reset default list styles.
 * [10] Offset the icon by its site which is the item’s margin.
 * [11] The pseudo-element spans across the double of the viewport and is pulled back
 *      by the width of the viewport (-100vw) to be independent of position context and nesting.
 *      The pseudo-element should always cover the whole row.
 * [12] Lower the positioning layer to make the pseudo-element from [5] appear below the row content.
 * [13] Indent nested tree view items.
 */
.c-tree-view {
  margin: 0; /* [9] */
  padding: 0; /* [9] */
  list-style: none; /* [9] */
}
.c-tree-view.is-tree-view-root-node {
  overflow-x: hidden; /* [1] */
  border-bottom: 1px #e4e4e4 solid;
}
[aria-expanded=false] > .c-tree-view {
  display: none; /* [2] */
}
[aria-expanded=true] > .c-tree-view {
  display: block; /* [2] */
}

.c-tree-view__item {
  --focus-outline-color: transparent;
  --focus-outline-offset: 1px;
  --focus-outline-style: solid;
  --focus-outline-width: 0;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
  /* [3] */
  position: relative;
  margin: 0;
}
.c-tree-view__item[aria-expanded].is-hovered {
  cursor: pointer; /* [4] */
}
.c-tree-view__item[aria-expanded].is-disabled {
  cursor: default;
}
.c-tree-view__item .c-tree-view__item { /* [13] */
  padding-left: 32px;
}
@media (max-width: 720px) {
  .c-tree-view__item .c-tree-view__item {
    padding-left: 16px;
  }
}

.c-tree-view__body {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  padding-top: 24px;
  padding-bottom: 24px;
  padding-left: 32px;
  /* stylelint-disable selector-max-class, selector-max-specificity */
  /* stylelint-enable */
  /* stylelint-disable selector-max-class, selector-max-specificity */
  /* stylelint-enable */
}
@media (max-width: 720px) {
  .c-tree-view__body {
    padding-top: 8px;
    padding-bottom: 8px;
    padding-left: 16px;
  }
}
.c-tree-view__body::before { /* [5] */
  content: "";
  position: absolute;
  z-index: -1; /* [12] */
  top: 0;
  left: -100vw; /* [11] */
  display: block;
  width: 200vw; /* [11] */
  height: 100%;
  border-top: 1px #e4e4e4 solid;
  transition: background-color 300ms ease-in-out;
}
.c-tree-view__item:focus > .c-tree-view__body { /* [6] */
  --focus-outline-color: #161718;
  --focus-outline-offset: -2px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}
.c-tree-view__item.is-hovered > .c-tree-view__body::before { /* [6] */
  background-color: #d8d8d8;
}
.c-tree-view__item.is-selected > .c-tree-view__body::before { /* [6] */
  background-color: #347954;
}
.c-tree-view__item.is-accented > .c-tree-view__body::before { /* [6] */ }
.c-tree-view__item.is-alt-accented > .c-tree-view__body::before { /* [6] */ }
.c-tree-view__item.is-selected.is-accented > .c-tree-view__body::before, .c-tree-view__item.is-hovered.is-accented > .c-tree-view__body::before { /* [6] */ }
.c-tree-view__item.is-selected.is-alt-accented > .c-tree-view__body::before, .c-tree-view__item.is-hovered.is-alt-accented > .c-tree-view__body::before { /* [6] */ }
.c-tree-view__item.is-disabled > .c-tree-view__body::before { /* [6] */
  background-color: transparent;
}
.c-tree-view__item.is-selected.is-disabled > .c-tree-view__body::before { /* [6] */
  background-color: #d8d8d8;
}
.c-tree-view__item.is-tree-view-parent-node > .c-tree-view__body { /* [7] */
  position: relative;
}
.c-tree-view__item.is-tree-view-parent-node > .c-tree-view__body::after {
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.5rem;
  line-height: 1;
  /* stylelint-disable order/order */
  --transition-property: transform;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  content: "\f151";
  position: absolute;
  top: 24px;
  left: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin-left: -32px; /* [10] */
  transform-origin: center;
  color: #347954;
}
@media (max-width: 720px) {
  .c-tree-view__item.is-tree-view-parent-node > .c-tree-view__body::after {
    top: 8px;
    width: 16px;
    height: 16px;
    margin-left: -16px; /* [10] */
  }
}
.c-tree-view__item.is-accented > .c-tree-view__body::after {
  color: #347954;
}
.c-tree-view__item.is-alt-accented > .c-tree-view__body::after {
  color: #347954;
}
.c-tree-view__item.is-disabled > .c-tree-view__body::after {
  color: #9e9fa0;
}
.c-tree-view__item[aria-expanded=true] > .c-tree-view__body::after { /* [8] */
  transform: rotate(0);
}
.c-tree-view__item[aria-expanded=false] > .c-tree-view__body::after { /* [8] */
  transform: rotate(-90deg);
}

.c-tree-view__title {
  font-size: 1rem;
  color: #161718;
  /* stylelint-disable selector-max-class */
  /* stylelint-enable */
}
.c-tree-view__item.is-hovered > .c-tree-view__body .c-tree-view__title {
  color: #161718;
}
.c-tree-view__item.is-selected > .c-tree-view__body .c-tree-view__title {
  color: #161718;
}
.c-tree-view__item.is-accented > .c-tree-view__body .c-tree-view__title {
  color: #161718;
}
.c-tree-view__item.is-alt-accented > .c-tree-view__body .c-tree-view__title {
  color: #161718;
}
.c-tree-view__item.is-disabled > .c-tree-view__body .c-tree-view__title {
  color: #9e9fa0;
}

.c-tree-view__subtitle {
  font-size: 1rem;
  color: #161718;
  /* stylelint-disable selector-max-class */
  /* stylelint-enable */
}
.c-tree-view__item.is-hovered > .c-tree-view__body .c-tree-view__subtitle {
  color: #161718;
}
.c-tree-view__item.is-selected > .c-tree-view__body .c-tree-view__subtitle {
  color: #161718;
}
.c-tree-view__item.is-accented > .c-tree-view__body .c-tree-view__subtitle {
  color: #161718;
}
.c-tree-view__item.is-alt-accented > .c-tree-view__body .c-tree-view__subtitle {
  color: #161718;
}
.c-tree-view__item.is-disabled > .c-tree-view__body .c-tree-view__subtitle {
  color: #9e9fa0;
}

/* ------------------------------------*\
    #CALLOUT
\*------------------------------------ */
/**
 * Use a callout to display a prominent message with a call to action.
 */
/**
 * [1] Magic number defined in Abstract to limit the height of the image.
 * [2] Make the image always fit inside the element’s / container’s size.
 * [3] Set spacing for every direct child element of the callout
 *     except the last one. Lower the selector specificity via `:where`
 *     to make it overrideable via other selectors (see title and media).
 */
.c-callout {
  padding: 32px 48px;
  text-align: center;
  background-color: #303132;
  color: #ffffff;
}
@media (max-width: 480px) {
  .c-callout {
    padding: 24px 24px;
  }
}
.c-callout > :where(* + *:not(:last-child)) { /* [3] */
  margin-bottom: 16px;
}

.c-callout__media {
  margin-bottom: 32px;
}

.c-callout__image {
  height: 144px !important; /* [1] */
  object-fit: contain; /* [2] */
}

.c-callout__title {
  font-size: 1.25rem;
  line-height: 1.2;
}
@media (min-width: 721px) {
  .c-callout__title {
    font-size: 1.4375rem;
    line-height: 1.2;
  }
}
@media (min-width: 1281px) {
  .c-callout__title {
    font-size: 1.5rem;
    line-height: 1.2;
  }
}

/* ------------------------------------*\
    #CALLOUT
\*------------------------------------ */
/**
 * [1] Override brand theme background with custom callout color.
 */
.c-callout[data-theme=brand] {
  /* stylelint-disable-next-line itcss/no-at-important */
  background-color: #303132 !important; /* [1] */
}

/* ------------------------------------*\
    #INLINE-EDITABLE
\*------------------------------------ */
/**
 * [1] Add proper button spacing.
 * [2] Reset right padding because browser’s already add safe-space there
 *     when not in editing mode.
 * [3] Reset all input properties when in non-editing mode.
 * [4] Hide the submit and reset button when in non-editing mode.
 * [5] Show the submit and reset button and hide the edit button
 *     when in editing mode.
 * [6] Add the addon minimum `min-width` to the input sizer width.
 * [7] Add the dynamic sizer via a pseudo element.
 * [8] The sizer width is controlled via the input value that is being
 *     dynamically updated via the `data-inline-editable-size` attribute.
 * [9] Include the font-size and font-width to make measuring the content more robust.
 * [10] Use an inline grid to position the input and taking up the sizer element’s space.
 * [11] Adjust sizer when in editable mode.
 * [12] Position the input and the sizer in one column and make it grow equally.
 *      The addon is positioned in the second column.
 */
.c-inline-editable {
  display: inline-flex;
  flex-direction: column;
}
.c-inline-editable:hover {
  cursor: text;
}
.c-inline-editable[aria-hidden=false] .c-inline-editable__submit,
.c-inline-editable[aria-hidden=false] .c-inline-editable__cancel {
  display: block; /* [5] */
}
.c-inline-editable[aria-hidden=false] .c-inline-editable__btn {
  display: none; /* [5] */
}
.c-inline-editable[aria-hidden=false] .c-input {
  margin-right: 16px; /* [1] */
}

.c-inline-editable__wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
}

.c-inline-editable__input,
.c-inline-editable__input-addon {
  transition: none !important;
}
.c-inline-editable:not([aria-hidden=false]) .c-inline-editable__input,
.c-inline-editable:not([aria-hidden=false]) .c-inline-editable__input-addon { /* [3] */
  height: inherit;
  min-width: inherit;
  padding: inherit;
  border-color: transparent;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  background-color: inherit;
  color: inherit;
}

.c-inline-editable__input {
  grid-area: 1/2; /* [12] */
}

.c-inline-editable__input-addon {
  grid-area: 1/3; /* [12] */
}

.c-inline-editable:not([aria-hidden=false]) .c-inline-editable__input {
  padding-right: 0; /* [2] */
}

.c-inline-editable__cancel,
.c-inline-editable__submit {
  display: none; /* [4] */
}

.c-inline-editable__btn,
.c-inline-editable__cancel {
  margin-left: 8px;
}

.c-inline-editable [data-inline-editable-size] {
  display: inline-grid; /* [10] */
}

[data-inline-editable-size]::after { /* [7] */
  content: attr(data-inline-editable-size) " "; /* [8] */
  display: block;
  grid-area: 1/2; /* [12] */
  white-space: pre;
  width: min-content;
  min-width: 1em;
  visibility: hidden;
}
.c-inline-editable[aria-hidden=false] [data-inline-editable-size]::after { /* [11] */
  font-size: 1rem;
  /* [9] */
  padding-left: 12px;
  padding-right: 12px;
  font-weight: 400; /* [9] */
}

/* ------------------------------------*\
   #PRODUCT-CARD
\*------------------------------------ */
/**
 * @TODO:
 * extract card-pattern styles to settings layer for reusability and consistency.
 */
/**
 * [1] Apply spacing to first child, not to panel to avoid visible spacing
 *     when panel is collapsed.
 * [2] Scoped modifications to price-box:
 *     right-aligned, more condensed and without border.
 *     As modifications are quite special,
 *     a general modifier is hard to abstract. @TODO: reconsider
 * [3] Place features on the right side in horizontal mode.
 * [4] Display fav-button and tag below each other in larger container widths.
 * [5] Reserve enough space for tag-list to show items horizontally
 *     if space is available.
 * [6] Align to right in horizontal mode.
 * [7] Keep flex-items in place and do not distribute, e.g. in context of
 *     equal-height grid.
 * [8] Keep favorites aligned top, especially when tag-list wraps
 *     (in horizontal mode).
 * [9] Decrease available spacing for pricing to increase spacing for title and
 *      image.
 * [10] Use `grid-template-rows` to transition the height.
 *      (see https://www.stefanjudis.com/snippets/how-to-animate-height-with-css-grid/)
 *      The trigger button must be taken out of the grid via absolute positioning
 *      for this technique to work.
 * [11] Defensively reset spacing from arbitrary element.
 * [12] Roughly align bottom of tags with option tag on right side in horizontal
 *      mode if title is not multiline. As this also depends on title and
 *      fav-button size it can not be perfectly aligned.
 * [13] Align to right (due to reversed direction).
 * [14] Make the image always fit inside the element’s aspect ratio.
 * [15] Make child elements inactive by disabling pointer events and reduce
 *      opacity.
 * [16] Position button(s) absolutely in empty card variant.
 * [17] Add a fallback element with a background color and a icon.
 *      - Aspect ratio should be controlled via `.o-ratio.
 *      - Use `.c-icon` and `.c-icon--[semantic-ICON]` to set the icon.
 * [18] Align fav-button always to the right, regardless of other
 *      `.c-product-card__features__item`s.
 * [19] Move status visually to the top in small container widths.
 * [20] Overwrite `order: -1` to display status  in source order in larger
 *      container widths.
 * [21] Set `.c-product-card__inline` elements width to a percentage of the
 *      parent’s width, taking flex gaps into account. The elements are not
 *      allowed to grow, only to shrink. This keeps the widths of
 *      `.c-product-card__media` and `.c-product-card__meta` elements always the
 *      same even if one or more `.c-product-card__inline` are not present
 *      (e.g. `.c-product-card__pricing` in `.c-product-card--inactive` and
 *      `.c-product-card--empty`).
 *      `flex-basis` calculation parts:
 *          - 100% => full parent widths
 *          - 16px * 2
 *            => total width of all gaps
 *          - 0.4
 *            => max. percentage element width in decimal format (40% => 0.4)
 * [22] Overwrite settings from [21] for the pricing element to let it grow into
 *      the available space.
 * [23] Swap position of tag label and fav-button.
 * [24] Push the tag label to the left in small container widths, even if it is
 *      the only child of `.c-product-card__features`.
 * [25] Order in vertical mode via DOM order:
 *      header + meta | media | pricing
 *      Order in horizontal mode (visually):
 *      header + media | media | pricing
 */
.c-product-card {
  position: relative; /* [16] */
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  align-content: flex-start; /* [7] */
  padding: 24px;
  border: 1px solid #e4e4e4;
  border-radius: 8px;
  background-color: #f1f1f1;
}
.c-product-card > * {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 100%;
}
.c-product-card .c-price-box__header {
  padding: 0; /* [2] */
  padding-bottom: 8px;
}

.c-product-card__media-fallback { /* [17] */
  background-color: #d8d8d8;
}

.c-product-card__media-fallback__icon { /* [17] */
  display: flex;
  justify-content: center;
  align-items: center;
  color: #7c7d7e;
}
.c-product-card__media-fallback__icon::before {
  font-size: 7.5rem;
  line-height: 1;
}

.c-product-card__image {
  object-fit: contain; /* [14] */
}

.c-product-card__title {
  font-size: 1.4375rem;
  margin-bottom: 8px;
  font-weight: 700;
}

.c-product-card__subtitle {
  font-size: 1rem;
  margin-bottom: 0;
  font-weight: 700;
}

.c-product-card__header {
  display: flex;
  gap: 16px;
  flex-direction: column;
  flex-wrap: wrap;
}
.c-product-card__header > * {
  flex-grow: 1;
  flex-shrink: 1;
}

.c-product-card__features {
  display: flex;
  flex-direction: row-reverse; /* [23] */
  flex-wrap: wrap;
  justify-content: space-between;
  column-gap: 16px;
}

.c-product-card__features__item--tag {
  margin-right: auto; /* [24] */
}

.c-product-card__tag-list {
  display: flex;
  gap: 16px;
  flex-direction: column;
  justify-content: space-between; /* [12] */
  flex-grow: 3; /* [5] */
}

.c-product-card__tag-list__title {
  font-size: 1rem;
  margin-bottom: 0;
  font-weight: 700;
}

.c-product-card__body > :last-child {
  margin-bottom: 0; /* [11] */
}

.c-product-card__buttons {
  --button-flex-direction: row-reverse;
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  justify-content: center;
  flex-grow: 1;
  flex-shrink: 1;
  margin-left: auto;
  margin-right: auto;
}
.c-product-card__status + .c-product-card__buttons {
  flex-basis: auto;
}

.c-product-card__buttons__item {
  flex-grow: 0;
  flex-shrink: 1;
  flex-basis: 100%;
  max-width: 300px;
}

.c-product-card__status {
  order: -1; /* [19] */
}

.c-product-card__progress__wrapper {
  margin-top: 16px;
}

.c-product-card__progress__label {
  font-size: 0.875rem;
  margin-top: 8px;
  margin-bottom: 0;
  text-align: center;
}

.js-card-expandable__trigger .c-btn__icon {
  /* stylelint-disable order/order */
  --transition-property: transform;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
}
.js-card-expandable__trigger[aria-expanded=true] .c-btn__icon {
  transform: rotateX(180deg);
}

.c-product-card__expandable {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  /* [10] */
  position: relative; /* [10] */
  display: grid; /* [10] */
  grid-template-rows: 0fr; /* [10] */
  padding-top: 24px; /* [10] */
}
.c-product-card__expandable.is-open {
  grid-template-rows: 1fr; /* [10] */
}
.c-product-card__expandable > .c-btn:first-child {
  position: absolute; /* [10] */
}

.c-product-card__expandable-panel {
  overflow: hidden; /* [10] */
}
.c-product-card__expandable-panel > *:first-child {
  margin-top: 24px; /* [1] */
}
.c-product-card__expandable-panel > *:not(:last-child) {
  margin-bottom: 24px;
}

.c-product-card__expandable-panel__title {
  margin-bottom: 16px;
}

.c-product-card--inactive > *:not(.c-product-card__buttons):not(.c-product-card__status) {
  pointer-events: none; /* [15] */
  opacity: 1; /* [15] */
}

.c-product-card--empty > *:not(.c-product-card__buttons):not(.c-product-card__status) {
  pointer-events: none; /* [15] */
  /* [15] */
}

[data-container-query=product-card] {
  --container-widths: "0 450 680";
}
[data-container-query=product-card][data-container-width~="450"] .c-product-card__media,
[data-container-query=product-card][data-container-width~="450"] .c-product-card__meta,
[data-container-query=product-card][data-container-width~="450"] .c-product-card__status {
  flex-basis: calc(50% - 16px);
}
[data-container-query=product-card][data-container-width~="450"].c-product-card--empty .c-product-card__buttons {
  position: absolute; /* [16] */
  bottom: 24px;
  right: 24px;
}
[data-container-query=product-card][data-container-width~="450"] .c-product-card__status {
  order: initial; /* [20] */
}
[data-container-query=product-card][data-container-width~="450"] .c-product-card__media,
[data-container-query=product-card][data-container-width~="450"] .c-product-card__header {
  order: -1; /* [25] */
}
[data-container-query=product-card][data-container-width~="680"] {
  /**
   * HEADER
   */
  /**
   * FEATURES
   */
  /**
   * PRICE BOX
   */
  /* [2] */
  /* [2] */
  /* [2] */
  /**
   * PROGRESS
   */
}
[data-container-query=product-card][data-container-width~="680"] .c-product-card__header {
  flex-direction: row;
}
[data-container-query=product-card][data-container-width~="680"] .c-product-card__features {
  gap: 16px;
  flex-direction: column-reverse; /* [4] */
  justify-content: flex-end; /* [8] */
  align-items: flex-end; /* [6] */
  order: 1; /* [3] */
}
[data-container-query=product-card][data-container-width~="680"] .c-product-card__features__item--fav-button {
  order: 1; /* [18] */
}
[data-container-query=product-card][data-container-width~="680"] .c-product-card__features__item--tag {
  margin-right: initial; /* [24] */
}
[data-container-query=product-card][data-container-width~="680"] .c-product-card__inline {
  flex-grow: 0; /* [21] */
  flex-shrink: 1; /* [21] */
  flex-basis: calc((100% - 16px * 2) * 0.4); /* [21] */
}
[data-container-query=product-card][data-container-width~="680"] .c-product-card__pricing {
  flex-grow: 1; /* [22] */
  flex-basis: 0; /* [22] */
  min-width: 0; /* [22] */
}
[data-container-query=product-card][data-container-width~="680"] .c-price-box__header {
  border: 0;
}
[data-container-query=product-card][data-container-width~="680"] .c-price-box__header,
[data-container-query=product-card][data-container-width~="680"] .c-price-box__body__content,
[data-container-query=product-card][data-container-width~="680"] .c-price-box__additional-info__text {
  text-align: right;
}
[data-container-query=product-card][data-container-width~="680"] .c-price-box__body {
  align-items: flex-end;
  padding-top: 0;
  padding-right: 0;
  padding-bottom: 0;
  padding-left: 0;
}
[data-container-query=product-card][data-container-width~="680"] .c-price-box__discount {
  justify-content: flex-end;
}
[data-container-query=product-card][data-container-width~="680"] .c-product-card__progress__label {
  text-align: right;
}
[data-container-query=product-card][data-container-width~="680"] .c-product-card__buttons {
  flex-direction: row-reverse;
  justify-content: flex-start; /* [13] */
  align-items: flex-start;
  flex-grow: 1;
}
[data-container-query=product-card][data-container-width~="680"] .c-product-card__buttons__item {
  flex-basis: auto;
}

/**
 * [1] Add overlay to visualize blocked inactive/disabled state.
 *     Due to the flexible nature of the component of including
 *     arbitrary elements inside, an overlay is used instead of
 *     colorizing single elements inside which would add complexity and
 *     is error-prone.
 *     Options in default do not satisfy the visual requirements for this brand.
 * [2] Stack above layer, exclude from inactive state.
 */
.c-product-card--inactive {
  /* [1] */
}
.c-product-card--inactive::before {
  content: "";
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  opacity: 0.6;
  border-radius: inherit;
  background-color: #ffffff;
}

.c-product-card__buttons,
.c-product-card__status {
  position: relative; /* [2] */
  z-index: 10; /* [2] */
}

/* ------------------------------------*\
    #PRODUCT-SEARCH
\*------------------------------------ */
/**
 * [1] Span header always across all columns.
 * [2] Initially hide sidebar below breakpoint. @TODO: toggle visibility
 */
.c-product-search {
  display: grid;
  grid-template-columns: auto;
  grid-template-rows: auto;
  gap: 24px;
}

@media (min-width: 961px) {
  .c-product-search--has-sidebar {
    grid-template-columns: 300px auto;
  }
}

.c-product-search__header,
.c-product-search__aside,
.c-product-search__footer {
  grid-column: 1/-1; /* [1] */
}

.c-product-search__sidebar {
  display: none; /* [2] */
}
.c-product-search--has-sidebar .c-product-search__sidebar {
  display: block; /* [2] */
}
@media (max-width: 960px) {
  .c-product-search--has-sidebar .c-product-search__sidebar {
    display: none; /* [2] */
  }
}

@media (min-width: 961px) {
  .c-product-search--has-sidebar .c-product-search__aside {
    display: none; /* [2] */
  }
}

/**
 * [1]  The Interaction Layer is placed above every other element.
 * [2]  Remove browser based focus color in Chrome.
 * [3]  Align the content at the right side of the viewport.
 * [4]  If the content exceeds the viewport height, this still makes the
 *      content accessible (i.e. scrollable).
 * [5]  Prevent interaction with content when closed.
 * [6]  The content allows any kind of elements. This ensures, that
 *      elements carrying a default margin-bottom (`<p>` etc.) get
 *      consciously reset to let the surrounding padding do its job properly.
 * [7]  Avoid showing gradient when not necessary.
 * [8]  Indicate actions on non-interactive elements.
 * [9]  Prevent elements inside the `.js-interaction-layer-trigger` catching any
 *      events due to event delegation.
 * [10] Add styling to display a clickable icon button.
 * [11] Hide with slide out animation (left to right).
 * [12] Show with slide in animation (right to left).
 * [13] Add a modal backdrop layer.
 * [14] Always keep the button bar on the bottom of the interaction layer,
 *      regardless of the amount of content placed inside.
 * [15] Always show button bar in front of interaction layer content.
 * [16] Prevent overscroll in the container.
 * [17] Prevent horizontal shift when scrollbar gets visible during runtime
 *      by increased content height (e.g. expanding components).
 */
.c-interaction-layer__wrapper {
  position: fixed;
  z-index: 2700; /* [1] */
  top: 0;
  bottom: 0;
}
.c-interaction-layer__wrapper:focus { /* [2] */
  border: none;
  outline: none;
}
.c-interaction-layer__wrapper[aria-hidden=false] .c-interaction-layer {
  transform: translateX(-100%);
}

.c-interaction-layer {
  width: 50vw;
  max-width: 50vw;
  /* stylelint-disable order/order */
  --transition-property: transform;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  position: fixed;
  left: 100%;
  display: flex; /* [14] */
  flex-direction: column; /* [14] */
  height: 100vh;
  overflow-y: auto; /* [4] */
  transform: translateX(64px);
  background-color: #ffffff;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.15);
  overscroll-behavior: none; /* [16] */
  scrollbar-gutter: stable; /* [17] */
}
@media (max-width: 720px) {
  .c-interaction-layer {
    width: calc(100vw - 24px);
    max-width: calc(100vw - 24px);
  }
}

.c-interaction-layer--large .c-interaction-layer {
  width: 66vw;
  max-width: 66vw;
}
@media (max-width: 720px) {
  .c-interaction-layer--large .c-interaction-layer {
    width: calc(100vw - 24px);
    max-width: calc(100vw - 24px);
  }
}

.c-interaction-layer--small .c-interaction-layer {
  width: 33vw;
  max-width: 33vw;
}
@media (max-width: 720px) {
  .c-interaction-layer--small .c-interaction-layer {
    width: calc(100vw - 24px);
    max-width: calc(100vw - 24px);
  }
}

.c-interaction-layer--modal::before { /* [13] */
  content: "";
  position: fixed;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  display: none;
  width: 100vw;
  height: 100vh;
  background-color: rgba(228, 228, 228, 0.8);
}
.c-interaction-layer--modal[aria-hidden=false]::before {
  display: block;
}

.c-interaction-layer__header {
  padding-top: 32px;
  padding-left: 48px;
  padding-right: 48px;
  padding-bottom: 0;
}
@media (max-width: 720px) {
  .c-interaction-layer__header {
    padding-top: 24px;
    padding-left: 24px;
    padding-right: 24px;
  }
}

.c-interaction-layer__close-btn {
  padding: 0;
  border: 0;
  background-color: transparent;
  cursor: pointer;
}
.c-interaction-layer__close-btn:focus {
  outline: 0;
}
.c-interaction-layer__close-btn::before { /* [10] */
  font-size: 1.5rem;
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  content: "\f15a";
  color: #161718;
}
.c-interaction-layer__close-btn:hover::before, .c-interaction-layer__close-btn:focus::before {
  color: #161718;
}

.c-interaction-layer__content {
  padding-left: 48px;
  padding-right: 48px;
  padding-top: 24px;
  padding-bottom: 1.5em; /* [7] */
  color: #161718;
}
@media (max-width: 720px) {
  .c-interaction-layer__content {
    padding-left: 24px;
    padding-right: 24px;
  }
}
.c-interaction-layer__content > *:last-child {
  margin-bottom: 0; /* [6] */
}

.c-interaction-layer__footer {
  padding-top: 0;
  padding-left: 48px;
  padding-right: 48px;
  padding-bottom: 48px;
  position: relative;
}
@media (max-width: 720px) {
  .c-interaction-layer__footer {
    padding-left: 32px;
    padding-right: 32px;
    padding-bottom: 32px;
  }
}

/**
 * Styles applied to a js-hook (which is a no-no) is an exception as the trigger
 * can be applied to arbitrary elements but need those additional styles to
 * work properly.
 */
.js-interaction-layer-trigger {
  cursor: pointer; /* [8] */
}
.js-interaction-layer-trigger * {
  pointer-events: none; /* [9] */
}

.c-interaction-layer__button-bar {
  padding-left: 48px;
  padding-right: 48px;
  position: sticky; /* [14] */
  z-index: 100; /* [15] */
  bottom: 0; /* [14] */
  width: 100%;
  margin-top: auto; /* [14] */
  padding-top: 16px;
  padding-bottom: 16px;
  background-color: #ffffff;
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.15);
}
@media (max-width: 720px) {
  .c-interaction-layer__button-bar {
    padding-left: 24px;
    padding-right: 24px;
  }
}

/* ------------------------------------*\
    #INTERACTION-LAYER
\*------------------------------------ */
.c-interaction-layer__wrapper::before {
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}

.c-interaction-layer__close-btn {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  scale: 1;
}
.c-interaction-layer__close-btn::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  transition: inherit;
}
.c-interaction-layer__close-btn:hover::after {
  background-color: rgba(22, 23, 24, 0.06);
}

.c-interaction-layer__close-btn:focus-visible::after {
  --focus-outline-color: #161718;
  --focus-outline-offset: 0;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

.c-interaction-layer__close-btn:active {
  scale: 0.95;
}

/* ------------------------------------*\
    #PRODUCT-SEARCH-HEADER
\*------------------------------------ */
/**
 * [1] Enforce full width when wrapped and in separate row.
 * [2] Show items 50% but account for gap to remove premature wrapping.
 * [3] Overwrite btn modifiers.
 * [4] Position the filter bar fixed to the top on large screens and make it
 *     span the whole width.
 * [5] Offset the bar off-screen to the top.
 * [6] Remove any `box-shadow` since the bar is off-canvas.
 * [7] On smaller viewports the bar is permanently displayed at the bottom of the
 *     screen.
 * [8] Always show `box-shadow` on smaller viewports (when the bar is always
 *     visible).
 * [9]  Display the normal `box-shadow` only on larger screens when revealed.
 * [10] Reveal the bar when its scroll observer has activated it on larger viewports.
 * [11] Remove unwanted vertical spacing.
 * [12] Always hide the title on smaller viewports and only show the button
 *      (when the bar is always visible).
 * [13] Hide the filter toggle button in the static header on small viewports
 *      as it is always visible due to the fixed bottom bar.
 * [14] Hide the filter toggle when the sidebar is already visible.
 * [15] Move filter to Float Grid area (for small viewports).
 */
.c-product-search-header {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  justify-content: space-between;
}

.c-product-search-header__title {
  flex-grow: 1; /* [1] */
  flex-shrink: 1;
  flex-basis: auto;
  align-self: center;
  margin: 0;
}

.c-product-search-header__filter-toggle {
  flex-grow: 0; /* [1] */
  flex-shrink: 0;
  flex-basis: auto;
  align-self: center;
}
@media (min-width: 961px) {
  .c-product-search--has-sidebar .c-product-search-header__filter-toggle {
    display: none;
  }
}
@media (max-width: 480px) {
  .c-product-search-header__filter-toggle {
    flex-grow: 1;
    flex-basis: 100%;
  }
  .c-product-search-header--sticky > .c-product-search-header__filter-toggle { /* [13] */
    display: none;
  }
}
.c-product-search-header__filter-toggle > .c-btn {
  width: 100%;
}

.c-product-search-header__body {
  display: flex;
  gap: 24px;
  justify-content: space-between;
  align-items: baseline;
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 100%;
}
@media (max-width: 960px) {
  .c-product-search-header__body {
    flex-wrap: wrap;
  }
}

.c-product-search-header__filter {
  display: flex;
  gap: 24px;
  align-items: baseline;
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: auto;
}
@media (max-width: 960px) {
  .c-product-search-header__filter {
    flex-wrap: wrap;
    flex-basis: 100%;
  }
}

.c-product-search-header__filter__label {
  position: absolute !important; /* stylelint-disable-line itcss/no-at-important */
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
}

.c-product-search-header__filter__tags {
  flex-grow: 0;
  flex-shrink: 1;
  flex-basis: auto;
}

.c-product-search-header__filter__reset {
  white-space: nowrap;
}

.c-product-search-header__actions {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  flex-grow: 0;
  flex-shrink: 1;
  flex-basis: auto;
  margin-left: auto;
}

@media (max-width: 480px) {
  .c-product-search-header__actions__item {
    flex-grow: 1;
    flex-shrink: 0;
    flex-basis: calc(50% - 12px); /* [2] */
  }
  .c-product-search-header__actions__item > * {
    justify-content: center !important; /* [3] */
    width: 100%;
  }
}

@media (min-width: 961px) {
  .c-product-search-header__actions__item--wrap {
    flex-basis: 100%;
  }
}

.c-product-search-header__sort {
  display: flex;
  justify-content: flex-end;
}
@media (max-width: 480px) {
  .c-product-search-header__sort > * {
    flex-grow: 1;
  }
}

.c-product-search-header__filter-bar {
  --float-grid-area: bottom;
  position: static;
  /* [15] */
  /* stylelint-disable order/order */
  --transition-property: visibility, transform;
  --transition-duration: var(--transition-duration-reduced-motion, 0s, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  top: 0; /* [4] */
  right: 0; /* [4] */
  left: 0; /* [4] */
  width: 100%;
  padding-top: 8px;
  padding-bottom: 8px;
  background-color: #ffffff;
  box-shadow: none; /* [6] */
}
.c-product-search-header__filter-bar > * {
  --float-grid-area: false;
}
@media (max-width: 480px) {
  .c-product-search-header__filter-bar {
    display: block; /* [7| */
  }
  .c-product-search-header__filter-bar, .c-product-search-header__filter-bar.has-target-outside-view {
    box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.15); /* [8] */
  }
}
@media (min-width: 481px) {
  .c-product-search-header__filter-bar {
    position: fixed; /* [4] */
    z-index: 1950;
    transform: translateY(-100%); /* [5] */
  }
  .c-product-search-header__filter-bar.has-target-outside-view {
    box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.15); /* [9] */
  }
}
@media (min-width: 961px) {
  .c-product-search--has-sidebar .c-product-search-header__filter-bar, .c-product-search-header__filter-bar.c-product-search-header__filter-bar--sidebar {
    display: none; /* [14] */
  }
}
.c-product-search-header__filter-bar.has-target-outside-view {
  transform: translateY(0); /* [10] */
}

.c-product-search-header__filter-bar__inner {
  max-width: calc(1248px + 192px);
  padding-left: 96px;
  padding-right: 96px;
  --page-wrap: 96px;
  margin-right: auto;
  margin-left: auto;
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  justify-content: space-between;
}
@media (max-width: 960px) {
  .c-product-search-header__filter-bar__inner {
    max-width: calc(1248px + 96px);
    padding-left: 48px;
    padding-right: 48px;
    --page-wrap: 48px;
  }
}
@media (max-width: 720px) {
  .c-product-search-header__filter-bar__inner {
    max-width: calc(1248px + 48px);
    padding-left: 24px;
    padding-right: 24px;
    --page-wrap: 24px;
  }
}
@media (max-width: 480px) {
  .c-product-search-header__filter-bar__inner {
    max-width: calc(1248px + 24px);
    padding-left: 12px;
    padding-right: 12px;
    --page-wrap: 12px;
  }
}

.c-product-search-header__filter-bar__title {
  align-self: center;
  margin-bottom: 0; /* [11] */
}
@media (max-width: 480px) {
  .c-product-search-header__filter-bar__title {
    display: none; /* [12] */
  }
}

/* ------------------------------------*\
   #PRODUCT SEARCH FORM
\*------------------------------------ */
/**
 * [1] Change the flex-direction for the vertical mode to display the result
 *     button above the check more filters button.
 * [2] Adapt button width to the media-query breakpoints.
 */
.c-product-search-form {
  display: flex;
  flex-wrap: wrap;
  padding: 24px;
  background-color: #ffffff;
}
.c-product-search-form > * {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 100%;
}

.c-product-search-form__action-buttons {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}
@media (max-width: 960px) {
  .c-product-search-form__action-buttons {
    flex-direction: column-reverse; /* [1] */
  }
}

.c-product-search-form__button-container {
  display: flex;
  gap: 16px;
  justify-content: flex-end; /* [1] */
}

@media (max-width: 960px) {
  .c-product-search-form__reset-button {
    display: none;
  }
}

@media (max-width: 960px) {
  .c-product-search-form__result-button {
    width: 100% !important; /* [2] */
    max-width: 100% !important; /* [2] */
    margin-bottom: 16px;
  }
}

/* ------------------------------------*\
    #INDICATOR-DOT (Settings)
\*------------------------------------ */
/* ------------------------------------*\
    #INDICATOR-DOT
\*------------------------------------ */
/* stylelint-disable function-comma-newline-after */
/* stylelint-enable function-comma-newline-after */
/**
 * [1] Keep dot size, avoid distortion.
 * [2] Align in-line with first line. `baseline` creates an offset.
 */
.c-indicator-dot {
  display: inline-flex;
  align-items: flex-start; /* [2] */
}

.c-indicator-dot__dot {
  flex-grow: 0; /* [1] */
  flex-shrink: 0; /* [1] */
  flex-basis: auto; /* [1] */
  width: 14px;
  height: 14px;
  margin-right: 8px;
  transform: translateY(1px); /* [2] */
  border-radius: 50%;
  background-color: #c4c6c7;
}

button.c-indicator-dot__dot {
  padding: 0;
  border: 0;
}
button.c-indicator-dot__dot:focus {
  outline: 0;
}

.c-indicator-dot__label {
  font-size: 1rem;
  line-height: 1;
}

.c-indicator-dot--info .c-indicator-dot__dot {
  background-color: #2d71d7;
}
.c-indicator-dot--info .c-indicator-dot__label {
  color: #161718;
}

.c-indicator-dot--success .c-indicator-dot__dot {
  background-color: #37d002;
}
.c-indicator-dot--success .c-indicator-dot__label {
  color: #161718;
}

.c-indicator-dot--warning .c-indicator-dot__dot {
  background-color: #cd4a19;
}
.c-indicator-dot--warning .c-indicator-dot__label {
  color: #161718;
}

.c-indicator-dot--error .c-indicator-dot__dot {
  background-color: #d92b35;
}
.c-indicator-dot--error .c-indicator-dot__label {
  color: #d92b35;
}

.c-indicator-dot--unread .c-indicator-dot__dot {
  background-color: #c4c6c7;
}
.c-indicator-dot--unread .c-indicator-dot__label {
  color: #161718;
}

/* ------------------------------------*\
    #SECTION-NAV
\*------------------------------------ */
/**
 * [1]  Move the section nav off-canvas and display it when
 *      the tracked section appears.
 * [2]  Align the buttons inside the section nav header via grid and make
 *      the section label as tall as possible. Hide it on larger viewports.
 * [3]  Align the scrollable list and a possible inside the section nav
 *      container via grid and make the list as tall as possible. Display
 *      the section container on smaller viewports via the `.is-visible` class
 *      and hide it otherwise.
 * [4]  Inherit the grid to proxy the grid behavior. Another possibility would
 *      be `display: content` if we decide against the scroll buttons.
 * [5]  Hide scrollbars as we implement custom paging and scroll hints.
 * [6]  Move the container for small viewports down the stack.
 * [7]  Truncate the content after two lines.
 * [8]  We display the `box-shadow` on certain elements when switching
 *      between viewports and visible state of the scroll list.
 * [9]  Prevent text selection on all clickable elements, especially for
 *      touch-devices, i.e. a `<button>` or `<a>` element.
 * [10] Add a backdrop and span it across the whole viewport.
 * [11] The prev/next buttons icon pseudo element.
 * [12] Make the scroll hints overlay the list to suggest the list can be
 *      scrolled in its respective direction.
 * [13] Make the scroll list scrollable via one-finger touch gestures.
 * [14] Stack the scroll hints above the list items.
 * [15] For small viewports, remove the spacing at the bottom
 *      if there is no button.
 * [16] By changing `font-weight` the link element need different widths,
 *      this causes shifting. This workaround prevents shifting on large
 *      viewports when the `.is-active` class is added.
 * [17] Prevents the document from background scrolling.
 * [18] The pseudo elements act as scroll hints by overlaying the outermost
 *      left and right part of the navigation list.
 * [19] Expose the section nav custom property to use within
 *      the section nav script.
 * [20] Establish minimum pointer/touch target size.
 * [21] Hide the call-to-action when the navigation is expanded
 *      on smaller screens.
 * [22] Ensure element is hidden. Prevents overwrites from more specific styles
 *      that might set another value for `display` property (e.g. `block` vs `flex`).
 */
.c-section-nav {
  --bron-section-nav-breakpoint: 720px; /* [19] */
  /* stylelint-disable order/order */
  --transition-property: visiblity, opacity, transform;
  --transition-duration: var(--transition-duration-reduced-motion, 0, 0, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  position: sticky;
  z-index: 1900;
  top: 0;
  -webkit-user-select: none;
  user-select: none; /* [9] */
}
@media (min-width: 721px) {
  .c-section-nav {
    background-color: #ffffff;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15); /* [8] */
  }
}

.c-section-nav--reveal {
  position: fixed;
  top: 0;
  width: 100%;
  transform: translateY(-100%); /* [1] */
  box-shadow: none;
}
.c-section-nav--reveal.has-target-inside-view.has-target-enter-above-view, .c-section-nav--reveal.has-target-inside-view.has-target-enter-below-view, .c-section-nav--reveal.has-target-leave-above-view {
  /* stylelint-disable order/order */
  --transition-property: visiblity, opacity, transform;
  --transition-duration: var(--transition-duration-reduced-motion, 0, 300ms, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  transform: translateY(0); /* [1] */
}
@media (min-width: 721px) {
  .c-section-nav--reveal.has-target-inside-view.has-target-enter-above-view, .c-section-nav--reveal.has-target-inside-view.has-target-enter-below-view, .c-section-nav--reveal.has-target-leave-above-view {
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15); /* [8] */
  }
}
.c-section-nav--reveal.has-target-inside-view.has-target-enter-above-view .c-section-nav__header, .c-section-nav--reveal.has-target-inside-view.has-target-enter-below-view .c-section-nav__header, .c-section-nav--reveal.has-target-leave-above-view .c-section-nav__header {
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15); /* [8] */
}
.c-section-nav--reveal .c-section-nav__header {
  box-shadow: none;
}

@media (max-width: 720px) {
  .c-section-nav-prevent-scroll {
    overflow: hidden !important; /* [17] */
  }
}

.c-section-nav__header {
  max-width: calc(1248px + 192px);
  padding-left: 96px;
  padding-right: 96px;
  --page-wrap: 96px;
  margin-right: auto;
  margin-left: auto;
  column-gap: 16px;
  position: relative;
  z-index: 1899;
  display: grid; /* [2] */
  grid-template-columns: minmax(0, 1fr) max-content; /* [2] */
  width: 100%;
  height: 64px;
  padding-top: 0;
  padding-bottom: 0;
  background-color: #ffffff;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15); /* [8] */
}
@media (max-width: 960px) {
  .c-section-nav__header {
    max-width: calc(1248px + 96px);
    padding-left: 48px;
    padding-right: 48px;
    --page-wrap: 48px;
  }
}
@media (max-width: 720px) {
  .c-section-nav__header {
    max-width: calc(1248px + 48px);
    padding-left: 24px;
    padding-right: 24px;
    --page-wrap: 24px;
  }
}
@media (max-width: 480px) {
  .c-section-nav__header {
    max-width: calc(1248px + 24px);
    padding-left: 12px;
    padding-right: 12px;
    --page-wrap: 12px;
  }
}
@media (min-width: 721px) {
  .c-section-nav__header {
    display: none; /* [2] */
  }
}

.c-section-nav__container {
  background-color: #ffffff;
}
@media (max-width: 720px) {
  .c-section-nav__container {
    /* stylelint-disable order/order */
    --transition-property: visiblity, opacity, transform;
    --transition-duration: var(--transition-duration-reduced-motion, 0, 0, 300ms);
    --transition-timing-function: ease-in-out;
    --transition-delay: ;
    transition-property: var(--transition-property);
    transition-duration: var(--transition-duration);
    transition-timing-function: var(--transition-timing-function);
    transition-delay: var(--transition-delay);
    position: absolute;
    z-index: 1898; /* [6] */
    width: 100%;
    transform: translateY(-64px);
    visibility: hidden;
    opacity: 0;
  }
  .c-section-nav__container.is-visible {
    /* stylelint-disable order/order */
    --transition-property: visiblity, opacity, transform;
    --transition-duration: var(--transition-duration-reduced-motion, 0, 300ms, 300ms);
    --transition-timing-function: ease-in-out;
    --transition-delay: ;
    transition-property: var(--transition-property);
    transition-duration: var(--transition-duration);
    transition-timing-function: var(--transition-timing-function);
    transition-delay: var(--transition-delay);
    transform: translateY(0);
    visibility: visible;
    opacity: 1;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15); /* [8] */
  }
  .c-section-nav__container::after { /* [10] */
    content: "";
    position: fixed;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    display: block;
    height: 100vh;
    background-color: rgba(228, 228, 228, 0.8);
  }
}
@media (min-width: 721px) {
  .c-section-nav__container {
    max-width: calc(1248px + 192px);
    padding-left: 96px;
    padding-right: 96px;
    --page-wrap: 96px;
    margin-right: auto;
    margin-left: auto;
    display: grid; /* [3] */
    grid-template-columns: 1fr max-content; /* [3] */
    align-items: center; /* [3] */
    justify-content: space-between; /* [3] */
    width: 100%;
    padding-top: 0;
    padding-bottom: 0;
  }
}
@media (min-width: 721px) and (max-width: 960px) {
  .c-section-nav__container {
    max-width: calc(1248px + 96px);
    padding-left: 48px;
    padding-right: 48px;
    --page-wrap: 48px;
  }
}
@media (min-width: 721px) and (max-width: 720px) {
  .c-section-nav__container {
    max-width: calc(1248px + 48px);
    padding-left: 24px;
    padding-right: 24px;
    --page-wrap: 24px;
  }
}
@media (min-width: 721px) and (max-width: 480px) {
  .c-section-nav__container {
    max-width: calc(1248px + 24px);
    padding-left: 12px;
    padding-right: 12px;
    --page-wrap: 12px;
  }
}

.c-section-nav__scroll {
  position: relative;
  display: inherit; /* [4] */
}
@media (max-width: 720px) {
  .c-section-nav__scroll:last-child .c-section-nav__list {
    border-bottom-width: 0; /* [15] */
  }
}

.c-section-nav__section-label {
  padding: 0;
  border: 0;
  background-color: transparent;
  display: inline-flex;
  align-items: center;
  overflow: hidden;
  text-align: left;
  color: inherit;
}
.c-section-nav__section-label:focus {
  outline: 0;
}
.c-section-nav__section-label[aria-expanded=true]::before {
  content: "\f156";
}
.c-section-nav__section-label[aria-expanded=true] + .c-section-nav__btn { /* [21] */
  display: none;
}
.c-section-nav__section-label::before {
  font-size: 1.5rem;
  line-height: 1;
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  content: "\f151";
  color: currentColor;
}

.c-section-nav__section-label__text {
  font-size: 1rem;
  line-height: normal;
  /* stylelint-disable */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  box-orient: vertical;
  /* stylelint-enable */
  overflow: hidden;
  /* [7] */
  padding-left: 16px;
  font-weight: 700;
  -webkit-hyphens: auto;
  hyphens: auto;
}

.c-section-nav__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}
.c-section-nav__list li {
  display: block;
  margin-bottom: 0;
}
@media (max-width: 720px) {
  .c-section-nav__list {
    max-width: calc(1248px + 192px);
    padding-left: 96px;
    padding-right: 96px;
    --page-wrap: 96px;
    margin-right: auto;
    margin-left: auto;
    row-gap: 8px;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    max-height: calc(100vh - 64px);
    overflow-x: hidden;
    overflow-y: auto;
    padding-top: 0;
    padding-bottom: 0;
    touch-action: pan-y; /* [13] */
    border-bottom: 64px solid #ffffff;
    background-color: #ffffff;
  }
}
@media (max-width: 720px) and (max-width: 960px) {
  .c-section-nav__list {
    max-width: calc(1248px + 96px);
    padding-left: 48px;
    padding-right: 48px;
    --page-wrap: 48px;
  }
}
@media (max-width: 720px) and (max-width: 720px) {
  .c-section-nav__list {
    max-width: calc(1248px + 48px);
    padding-left: 24px;
    padding-right: 24px;
    --page-wrap: 24px;
  }
}
@media (max-width: 720px) and (max-width: 480px) {
  .c-section-nav__list {
    max-width: calc(1248px + 24px);
    padding-left: 12px;
    padding-right: 12px;
    --page-wrap: 12px;
  }
}
@media (min-width: 721px) {
  .c-section-nav__list {
    column-gap: 16px;
    align-items: center;
    overflow-x: auto;
    overflow-y: hidden;
    touch-action: pan-x;
    scroll-snap-type: x mandatory; /* [5] */
    scroll-margin-left: 4rem; /* [5] */
    scrollbar-width: none; /* [5] */
    -ms-overflow-style: none; /* [5] */
  }
  .c-section-nav__list::-webkit-scrollbar {
    display: none; /* [5] */
  }
  .c-section-nav__list::before, .c-section-nav__list::after { /* [18] */
    /* stylelint-disable order/order */
    --transition-property: opacity;
    --transition-duration: var(--transition-duration-reduced-motion, 300ms);
    --transition-timing-function: ease-in-out;
    --transition-delay: ;
    transition-property: var(--transition-property);
    transition-duration: var(--transition-duration);
    transition-timing-function: var(--transition-timing-function);
    transition-delay: var(--transition-delay);
    content: "";
    position: absolute;
    z-index: 1901; /* [14] */
    top: 0;
    display: block;
    width: 4rem;
    height: 100%;
    pointer-events: none;
    opacity: 0;
  }
  .c-section-nav__list::before {
    left: 0;
    background-image: linear-gradient(to left, rgba(255, 255, 255, 0.1), #ffffff);
  }
  .c-section-nav__list::after {
    right: 0;
    background-image: linear-gradient(to right, rgba(255, 255, 255, 0.1), #ffffff);
  }
  .has-overflow-left .c-section-nav__list::before, .has-overflow-right .c-section-nav__list::after {
    opacity: 1;
  }
}

@media (max-width: 720px) {
  .c-section-nav__item {
    font-size: 1rem;
    line-height: normal;
    position: relative;
    width: 100%;
  }
}
@media (min-width: 721px) {
  .c-section-nav__item {
    font-size: 1rem;
    line-height: 56px;
  }
}

.c-section-nav__link {
  display: flex;
  align-items: center;
  min-height: 56px; /* [20] */
  font-weight: 700;
  text-decoration: none;
}
@media (min-width: 721px) {
  .c-section-nav__link {
    position: relative;
    flex-direction: column;
    padding-top: 0;
    padding-bottom: 0;
    white-space: nowrap;
    text-align: center; /* [16] */
  }
  .c-section-nav__link::before { /* [16] */
    content: attr(data-text);
    display: block;
    height: 0;
    visibility: hidden;
    overflow: hidden;
    font-weight: 700;
  }
}
.c-section-nav__link:hover {
  color: #161718;
}
.c-section-nav__link.is-active {
  font-weight: 700;
  color: #161718;
}

.c-section-nav__scroll-button {
  padding: 0;
  border: 0;
  background-color: transparent;
  width: 16px;
  /* stylelint-disable order/order */
  --transition-property: visiblity, opacity, transform;
  --transition-duration: var(--transition-duration-reduced-motion, 0, 0, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  position: absolute;
  z-index: 1910;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: currentColor;
  opacity: 0;
  visibility: hidden;
}
.c-section-nav__scroll-button:focus {
  outline: 0;
}
@media (max-width: 720px) {
  .c-section-nav__scroll-button {
    display: none !important; /* [22] */
  }
}
.c-section-nav__scroll-button::before { /* [11] */
  font-size: 1.5rem;
  line-height: 1;
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
}

.c-section-nav__scroll-button--prev {
  left: 0;
}
.c-section-nav__scroll-button--prev::before {
  content: "\f152";
}
.has-overflow-left .c-section-nav__scroll-button--prev {
  transform: translateX(-100%); /* [12] */
}

.c-section-nav__scroll-button--next {
  right: 0;
}
.c-section-nav__scroll-button--next::before {
  content: "\f155";
}
.has-overflow-right .c-section-nav__scroll-button--next {
  transform: translateX(100%); /* [12] */
}

.has-overflow-left .c-section-nav__scroll-button--prev,
.has-overflow-right .c-section-nav__scroll-button--next {
  /* stylelint-disable order/order */
  --transition-property: visiblity, opacity, transform;
  --transition-duration: var(--transition-duration-reduced-motion, 0, 300ms, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  opacity: 1;
  visibility: visible;
}

.c-section-nav__container .c-section-nav__btn {
  left: 16px;
  right: 16px;
  position: absolute;
  bottom: 0;
}
@media (min-width: 721px) {
  .c-section-nav__container .c-section-nav__btn {
    position: initial;
    margin-left: 32px;
  }
}

.c-section-nav__section {
  scroll-margin-top: 64px;
}

/* ------------------------------------*\
    #SECTION-NAV
\*------------------------------------ */
/**
 * [1] Mark active link with a left border in smaller viewports.
 * [2] Mark active link with a bottom border in larger viewports.
 * [3] Disable default pseudo element styles, because don’t want to interfere with [4]
 * [4] Add focus rectangle as pseudo element.
 * [5] Use a smaller header shadow, when `.c-section-nav__container` is expanded.
 * [6] Position pseudo-element (circle) on icon.
 *     Magic number via pixel-pushing as there can be no connection/relation be found.
 */
.c-section-nav__container {
  min-height: 64px;
}
@media (max-width: 720px) {
  .c-section-nav__container .c-section-nav__btn {
    margin-bottom: 16px;
  }
}

@media (max-width: 720px) {
  .c-section-nav__list {
    padding-top: 16px;
    border-bottom-width: calc(64px + 8px);
  }
}

.c-section-nav__link {
  padding-right: 8px;
  padding-left: 8px;
  color: #6e6d6d;
}
.c-section-nav__link::before {
  all: initial; /* [3] */
}
.c-section-nav__link.is-active::after {
  content: "";
  position: absolute;
  background-color: #347954;
}
@media (max-width: 720px) {
  .c-section-nav__link.is-active::after { /* [1] */
    top: 0;
    bottom: 0;
    left: calc(var(--page-wrap) * -1);
    width: 3px;
  }
}
@media (min-width: 721px) {
  .c-section-nav__link.is-active::after { /* [2] */
    bottom: 8px;
    left: 0;
    right: 0;
    height: 3px;
  }
}
.c-section-nav__link:focus-visible { /* [4] */
  outline: none;
}
.c-section-nav__link:focus-visible::before {
  content: "";
  position: absolute;
  top: 16px;
  right: 2px;
  bottom: 16px;
  left: 2px;
  outline: 2px solid #161718;
}

@media (max-width: 720px) {
  .c-section-nav__btn {
    align-self: center;
  }
}

.c-section-nav__header:has(+ .c-section-nav__container.is-visible) {
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.15);
}

.c-section-nav__section-label {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
}
.c-section-nav__section-label::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  transition: inherit;
}
.c-section-nav__section-label:hover::after {
  background-color: rgba(22, 23, 24, 0.06);
}

.c-section-nav__section-label:focus-visible::after {
  --focus-outline-color: #161718;
  --focus-outline-offset: 0;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

.c-section-nav__section-label::after {
  left: 14px; /* [6] */ /* stylelint-disable-line scale-unlimited/declaration-strict-value */
}
@media (max-width: 480px) {
  .c-section-nav__section-label::after {
    left: 2px; /* [6] */ /* stylelint-disable-line scale-unlimited/declaration-strict-value */
  }
}

.c-section-nav__scroll-button {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  scale: 1;
}
.c-section-nav__scroll-button::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 44px;
  height: 44px;
  border-radius: 50%;
}
.c-section-nav__scroll-button:hover::after {
  background-color: rgba(22, 23, 24, 0.06);
}

.c-section-nav__scroll-button:focus-visible::after {
  --focus-outline-color: #161718;
  --focus-outline-offset: 0;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

.c-section-nav__scroll-button:active {
  scale: 0.95;
}

.c-section-nav__scroll-button:focus-visible {
  outline: 0;
}
.c-section-nav__scroll-button::after {
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
}

/* ------------------------------------*\
    #STATUS-MESSAGE
\*------------------------------------ */
/**
 * The status component displays a status icon + text message.
 */
/* stylelint-disable function-comma-newline-after */
/* stylelint-enable function-comma-newline-after */
/**
 * [1] Adjust vertical alignment of icon and first text line.
 */
.c-status-message {
  display: flex;
  align-items: baseline;
}
.c-status-message--info {
  color: #161718;
}
.c-status-message--info::before {
  content: "\f19b";
  color: #2d71d7;
}

.c-status-message--success {
  color: #161718;
}
.c-status-message--success::before {
  content: "\f146";
  color: #37d002;
}

.c-status-message--warning {
  color: #161718;
}
.c-status-message--warning::before {
  content: "\f210";
  color: #cd4a19;
}

.c-status-message--error {
  color: #d92b35;
}
.c-status-message--error::before {
  content: "\f17a";
  color: #d92b35;
}

.c-status-message::before {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 0;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.5rem;
  margin-right: 8px;
  transform: translateY(0.3em); /* [1] */
}

/* ------------------------------------*\
    #HINT
\*------------------------------------ */
/**
 * This component extends the standard `<sup>` HTML element with the
 * possibility of clicking/hovering over it.
 */
/* stylelint-disable-line */
/**
 * [1] Set a minimum size for the hint relative to its fluid font-size.
 *     So that it can grow equally. Also set a safe space to avoid collision
 *     of content and border.
 * [2] Offset the hint relatively to its superscript position.
 * [3] Center the text vertically in the box via `line-height`.
 * [4] Align the hint vertically in the font’s superscript position.
 * [5] Inherit all font and color related styles and use `!important` to
 *     prevent overriding of the text color on `:hover` or `[data-theme]` scope.
 * [6] Try to use linear numbers instead of old figures to make alignment easier.
 * [7] Enable spacing for pill-shaped hint when content increases.
 * [8] Make sure the hint content fills the entire wrapper.
 * [9] Enable a fully clickable area.
 * [10] Enable hover and focus state styles only if the inner element is a link,
 *      button or is focusable. `:has()` has currently limited browser support.
 *      Therefore we duplicate the CSS rules via a mixin to avoid “invalid” CSS
 *      selectors for browsers that do not support `:has()`.
 */
.c-hint {
  top: 0; /* [2] */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.3333333333em; /* [1] */
  min-height: 1.3333333333em; /* [1] */
  margin-right: 0.3em;
  margin-left: 0.3em;
  padding-top: 1px; /* [1] */
  padding-bottom: 1px; /* [1] */
  padding-left: 0.3em; /* [7] */
  padding-right: 0.3em; /* [7] */
  border-radius: 16px;
  font-size: clamp(12px, 0.75em, 14px);
  font-weight: 400;
  line-height: 1 !important; /* [3] */
  text-align: center;
  vertical-align: super; /* [4] */
  background-color: var(--hint-background-color, #161718);
  color: var(--hint-text-color, #ffffff);
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=brand] .c-hint {
  color: inherit;
}
[data-theme=brand] .c-hint:has(a:hover, button:hover) {
  color: inherit; /* [10] */
}
[data-theme=brand] .c-hint:focus-within {
  color: inherit; /* [10] */
}

.c-hint:has(a:hover, button:hover) {
  /* [10] */
  border-color: currentColor; /* [5] */
  background-color: #464748;
  color: var(--hint-text-color-hover, #ffffff);
  /* [10] */
}
.c-hint:focus-within {
  /* [10] */
  border-color: currentColor; /* [5] */
  background-color: #464748;
  color: var(--hint-text-color-hover, #ffffff);
  /* [10] */
}
.c-hint > * {
  padding: 0;
  border: 0;
  background-color: transparent;
  margin-top: -1px; /* [8] */
  margin-right: -0.3em; /* [8] */
  margin-bottom: -1px; /* [8] */
  margin-left: -0.3em; /* [8] */
  padding-top: 1px; /* [1] */
  padding-right: 0.3em; /* [7] */
  padding-bottom: 1px; /* [1] */
  padding-left: 0.3em; /* [7] */
  font-size: inherit !important; /* [5] */
  font-weight: inherit !important; /* [5] */
  line-height: inherit !important; /* [5] */
  text-decoration: none !important; /* [5] */
  font-feature-settings: "lnum" 1; /* [6] */
  color: inherit !important; /* [5] */
}
.c-hint > *:focus {
  outline: 0;
}
.c-hint > a::after,
.c-hint > button::after { /* [9] */
  content: "";
  position: absolute;
  top: -1px;
  left: -0.3em;
  min-width: 1.3333333333em;
  min-height: 1.3333333333em;
  border-radius: 16px;
}

.c-hint:focus-within {
  --focus-outline-color: #161718;
  --focus-outline-offset: 1px;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

/* ------------------------------------*\
    #DESCRIPTION-LIST
\*------------------------------------ */
/**
 * [1] Reset potential default style from generic and element layers.
 * [2] Use `inline-flex` so that child elements,
 *     like `.c-description-list__action`, can be aligned properly.
 * [3] `.c-description-list__text` is needed to not let inline elements be
 *     influenced by the flexbox context.
 * [4] Let `.c-description-list__text` grow so that it plays nice with
 *     `.c-description-list__action` in “split variant”.
 * [5] Let `.c-description-list__action` grow if it’s the only child of
 *     `.c-description-list__detail`.
 * [6] Technique is based on the based on Flexbox Holy Albatross
 *     https://heydonworks.com/article/the-flexbox-holy-albatross
 * [7] Set `flex-basis` to a extreme negative or positive value based on
 *     `$description-list-horizontal-item-break-width` and therefore enlarge the
 *     description list group element to full width or shrink to the `min-width`.
 * [8] Set `min-width`to 50% width (taking the horizontal spacing into account).
 * [9] `flex-end` because we want to align multiple consecutive details to the
 *     right.
 * [10] Let the description list item horizontally grow if the `flex-basis` value
 *     is negative (when the parent is smaller than
 *     `$description-list-horizontal-item-break-width`).
 * [11] Set `flex-basis` to a extreme negative or positive value based on
 *      `$description-list-horizontal-item-break-width` and therefore wrap and
 *      enlarge the description list items to full width or display side by side.
 * [12] Set `min-width` to `50%` width (taking the horizontal spacing into account).
 * [13] Do not allow consecutive details to grow in width so that they are not
 *      displayed below the term when the description list is wider than
 *      `$description-list-horizontal-item-break-width`.
 * [14] Add `0.1px` to the `min-width` to make it a very tiny bit wider than `50%`
 *      so that consecutive details are displayed one below the other and not
 *      side by side.
 * [15] Unset `min-width` because in the “terms short” variant the size of the
 *      term will be determined by the detail width.
 * [16] Calculate the `min-width` by subtracting the terms’ width and horizontal
 *      spacing.
 * [17] Use `container` mixin to right align text above the
 *     `$description-list-split-item-break-width` “breakpoint”.
 *      The selector `.c-description-list--split` needs to be added to the
 *      `ContainerQuery` `componentSelector` in
 *      `packages/bronson-default/src/js/module/container-query-observer.js`
 *      @TODO: Maybe we could use _real_ container queries (or a polyfill),
 *             so no custom SCSS/JS hybrid solution is needed anymore.
 * [18] This a CSS custom properties conditional logic technique (**hack**)
 *      that allows us to set properties depending on the size of `.c-description-list--split`.
 *      `--if-description-list-split-is-wide` can be used as toggle to set
 *      invalid or valid values to CSS properties. For example:
 *          `flex-direction: var(--if-description-list-split-is-wide) column;`
 *      We need this for the Product Table summary in VW6.
 *      Learn more about this technique here:
 *      - https://dev.to/siddharthshyniben/conditional-logic-with-css-the-css-custom-property-trick-44hb
 *      - https://lea.verou.me/2020/10/the-var-space-hack-to-toggle-multiple-values-with-one-custom-property/
 * [19] Let (consecutive) detail elements grow so that that they are right
 *      aligned above the “breakpoint”.
 * [20] Break each detail element into its own line when there is not enough
 *      space besides the term element. Reset again above the “breakpoint”.
 * [21] Display consecutive details one below the other by letting them grow to
 *     `100%` width.
 * [22] Convert the list semantically and stylistically into a table so that it
 *      behaves like a table.
 * [23] We are using `padding` for the spacing because we can't use `gap` or
 *      `margin` in a table.
 * [24] We display details only as table cell, when there are no consecutive
 *      details. Otherwise additional columns would be added to the “table”.
 * [25] Add custom property as an "API" for text-alignment based on scope/context.
 * [26] Reset default element margin.
 * [27] Alter text-alignment based on split-mode condition.
 */
.c-description-list {
  display: flex;
  flex-direction: column;
  row-gap: 16px;
  column-gap: 16px;
  margin-bottom: 0; /* [26] */
  text-align: var(--description-list-text-align, left); /* [25] */
  color: #161718;
}

.c-description-list__group {
  display: flex;
  flex-direction: column;
  column-gap: 16px;
}

.c-description-list__term {
  font-size: 1rem;
  margin: 0; /* [1] */
  font-weight: 300;
  text-align: var(--description-list-text-align);
  color: inherit;
}

.c-description-list__detail {
  --text-align-end: var(--if-description-list-split-is-wide) right; /* [27] */
  --text-align: var(--text-align-end, var(--description-list-text-align));
  font-size: 1rem;
  display: inline-flex; /* [2] */
  flex-wrap: wrap; /* [2] */
  justify-content: space-between; /* [2] */
  align-items: flex-start; /* [2] */
  column-gap: 16px;
  margin: 0; /* [1] */
  font-weight: 700;
  text-align: var(--text-align);
  color: inherit;
}
.c-description-list__detail > :last-child {
  flex-basis: 100%; /* [2] */
}
.c-description-list__detail > :last-child.c-description-list__action {
  flex-basis: auto; /* [2] */
}

.c-description-list__text { /* [3] */
  flex-grow: 1; /* [4] */
}
.c-description-list__text > :last-child {
  margin-bottom: 0;
}

.c-description-list__time {
  font-size: 0.875rem;
  font-weight: 400;
}

.c-description-list__action:only-child {
  flex-grow: 1; /* [5] */
}

/*
 * Grid variant
 */
.c-description-list--grid {
  flex-wrap: wrap;
  flex-direction: row;
}
.c-description-list--grid > .c-description-list__group {
  flex-basis: calc((35rem - 100%) * 999); /* [6] [7] */
  min-width: calc(50% - 8px); /* [8] */
}

/*
 * Horizontal variant
 */
.c-description-list--horizontal .c-description-list__group {
  flex-wrap: wrap;
  flex-direction: row;
  justify-content: flex-end; /* [9] */
}
.c-description-list--horizontal .c-description-list__group > * {
  flex-grow: 1; /* [6] [10] */
  flex-basis: calc((35rem - 100%) * 999); /* [6] [11] */
  min-width: calc(50% - 8px); /* [12] */
}
.c-description-list--horizontal .c-description-list__detail + .c-description-list__detail {
  flex-grow: 0; /* [13] */
  min-width: calc(50% - 8px + 0.1px); /* [14] */
}

/*
 * Small terms variant (could be combined with the horizontal variants)
 */
.c-description-list--terms-short .c-description-list__term {
  min-width: unset; /* [15] */ /* stylelint-disable-line scale-unlimited/declaration-strict-value */
}
.c-description-list--terms-short .c-description-list__detail,
.c-description-list--terms-short .c-description-list__detail + .c-description-list__detail {
  min-width: calc(100% - 15rem - 16px); /* [16] */
}

/*
 * Split variant
 */
.c-description-list--split {
  --container-widths: "0 320"; /* [17] */
  --if-description-list-split-is-wide: initial; /* [18] */
  /* stylelint-disable-next-line order/order */
}
.c-description-list--split .c-description-list__group {
  flex-wrap: wrap;
  flex-direction: row;
  justify-content: space-between;
}
.c-description-list--split .c-description-list__detail {
  flex-grow: 1; /* [19] */
  flex-basis: 100%; /* [20] */
}
.c-description-list--split[data-container-width~="320"] {
  /* [17] */
  --if-description-list-split-is-wide: ; /* [18] */ /* stylelint-disable-line */
}
.c-description-list--split[data-container-width~="320"] .c-description-list__detail {
  flex-basis: var(--if-description-list-split-is-wide) unset; /* [20] */ /* stylelint-disable-line scale-unlimited/declaration-strict-value */
}
.c-description-list--split[data-container-width~="320"] .c-description-list__detail + .c-description-list__detail {
  flex-basis: 100%; /* [21] */
}

/*
 * Table variant
 */
.c-description-list--table {
  display: table; /* [22] */
}
.c-description-list--table .c-description-list__group {
  display: table-row; /* [22] */
}
.c-description-list--table .c-description-list__group + .c-description-list__group > :first-of-type { /* stylelint-disable selector-max-combinators, selector-max-compound-selectors */
  padding-top: 16px; /* [23] */
}
.c-description-list--table .c-description-list__term {
  display: table-cell; /* [22] */
  padding-right: 8px; /* [23] */
}
.c-description-list--table .c-description-list__detail {
  display: block;
  padding-left: 8px; /* [23] */
}
.c-description-list--table .c-description-list__detail:first-of-type:last-child {
  display: table-cell; /* [24] */
}
.c-description-list--table .c-description-list__detail + .c-description-list__detail {
  /* [23] */
}

/* ------------------------------------*\
   #TOGGLE
\*------------------------------------ */
/**
 * [1] Handle the hidden/unhidden state for the label.
 */
.o-toggle:not([aria-expanded=true]) .o-toggle__label--target-unhidden, .o-toggle[aria-expanded=true] .o-toggle__label--target-hidden {
  display: none; /* [1] */
}

/* ------------------------------------*\
    #SHOW-MORE
\*------------------------------------ */
/**
 * [1] Remove any trailing spacing for the first-two level of nested last-child elements inside `c-show-more__body`.
 * [2] Render the show more button icon via CSS and default to the collapse state.
 * [4] Truncate any visible overflow.
 * [5] Handle the collapsed state for the toggle content target.
 * [6] Handle the initial state for the toggle content target.
 * [7] Align icon and button text when differ in size.
 */
.c-show-more__body {
  /* stylelint-disable order/order */
  --transition-property: visibility, max-height, opacity;
  --transition-duration: var(--transition-duration-reduced-motion, 650ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  max-height: 200em;
  overflow: hidden;
  opacity: 1;
  visibility: visible;
}
.c-show-more__body[aria-hidden=true] { /* [5] */
  /* stylelint-disable order/order */
  --transition-property: visibility, max-height, opacity;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: 650ms, 0s, 0s;;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  max-height: 0;
  opacity: 0;
  visibility: hidden;
}
.c-show-more__body:not([aria-hidden=false]):not([aria-hidden=true]) { /* [6] */
  max-height: 0;
  transition-duration: 0s;
  animation-duration: 0s;
}
.c-show-more__body > :last-child,
.c-show-more__body > :last-child > :last-child {
  margin-bottom: initial; /* [1] */
}

.c-show-more__button {
  --show-more-button-icon: "\f151";
  /* [7] */
  margin-top: 24px;
}
.c-show-more__button[aria-expanded=true] {
  --show-more-button-icon: "\f156";
}

.c-show-more__icon::before { /* [2] */
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  content: var(--show-more-button-icon);
  font-size: 24px;
}

/* ------------------------------------*\
   #TOGGLE
\*------------------------------------ */
/**
 * [1] Handle the hidden/unhidden state for the label.
 */
.o-toggle:not([aria-expanded=true]) .o-toggle__label--target-unhidden, .o-toggle[aria-expanded=true] .o-toggle__label--target-hidden {
  display: none; /* [1] */
}

/* ------------------------------------*\
   #ACTIONS-BUTTONS-CONTAINER
\*------------------------------------ */
/**
 * [1] Don’t generate a display box for the container and the buttons wrapper
 *     so that the items will be positioned by the outer float grid area Flexbox rules.
 * [2] Position buttons in Float Grid area.
 * [3] Transition items from `0px` height to button height in unhidden state.
 * [4] Increase `transition-delay` for each item (up to `$action-buttons-container-max-items`)
 *     to display one after the other.
 * [5] With `toggle.$toggle-target-active-selector` we can check if the toggle is
 *     working. If not (e.g. with disabled JavaScript), we don’t hide the items.
 * [6] Remove flexbox gap between items in hidden state.
 * [7] Target devices that primary input mechanism can not hover and has not a
 *     fine pointer, so essentially devices with touch capabilities.
 * [8] Increase specificity to override `.c-btn--incognito`.
 * [9] Use a feature of the Incognito Button: CSS custom properties conditionals
 *     to set the collapsed state of a button. Check the related comment in
 *     `_components.buttons.scss`.
 * [10] Fix some unwanted toggle button height change for some brands (e.g. AUDI)
 *      when the container gets expanded in a Float Grid area.
 * [11] We don’t want to animate `transform` for the buttons and the toggle button.
 *      That would result in some weird movements while resizing the browser
 *      window (due to the `transition-delay`).
 * [12] because we already know the width of the collapsed buttons (`--button-height`)
 *      we can use that to calculate the offset in the Float Grid area.
 *      The default offset of `100%` would shift the whole button when it gets
 *      expanded.
 * [13] Extend the Float Grid area offset transformation. For details check the
 *      comments in `_objects.float-grid.scss`.
 * [14] Remove any visible `box-shadow` when in collapsed state.
 */
.c-action-buttons-container,
.c-action-buttons-container__items {
  display: contents; /* [1] */
}

.c-action-buttons-container {
  --action-buttons-container-item-transition-duration: var(--transition-duration-reduced-motion, 0.05s);
  --float-grid-area: bottom-right;
  position: static;
}
.c-action-buttons-container > * {
  --float-grid-area: false;
}

.c-action-buttons-container__item {
  --action-buttons-container-item-transition-delay: calc((var(--action-buttons-container-item-transition-duration) * var(--action-buttons-container-item-transition-delay-multiplier, 1)) - var(--action-buttons-container-item-transition-duration)); /* [4] */
  max-height: var(--button-height); /* [3] */
  transition: var(--transition-property) var(--action-buttons-container-item-transition-duration) var(--transition-timing-function) var(--action-buttons-container-item-transition-delay), opacity calc(var(--action-buttons-container-item-transition-duration) * 5) ease-in-out var(--action-buttons-container-item-transition-delay), transform 0s;
  /* stylelint-disable-next-line scss/media-feature-value-dollar-variable, order/order */
}
.c-action-buttons-container__item:nth-child(1) {
  --action-buttons-container-item-transition-delay-multiplier: 1; /* [4] */
}
.c-action-buttons-container__item:nth-child(2) {
  --action-buttons-container-item-transition-delay-multiplier: 2; /* [4] */
}
.c-action-buttons-container__item:nth-child(3) {
  --action-buttons-container-item-transition-delay-multiplier: 3; /* [4] */
}
.c-action-buttons-container__item:nth-child(4) {
  --action-buttons-container-item-transition-delay-multiplier: 4; /* [4] */
}
.c-action-buttons-container__item:nth-child(5) {
  --action-buttons-container-item-transition-delay-multiplier: 5; /* [4] */
}
.c-action-buttons-container__item:nth-child(6) {
  --action-buttons-container-item-transition-delay-multiplier: 6; /* [4] */
}
.c-action-buttons-container__item:nth-child(7) {
  --action-buttons-container-item-transition-delay-multiplier: 7; /* [4] */
}
.c-action-buttons-container__item:nth-child(8) {
  --action-buttons-container-item-transition-delay-multiplier: 8; /* [4] */
}
.c-action-buttons-container__item:nth-child(9) {
  --action-buttons-container-item-transition-delay-multiplier: 9; /* [4] */
}
.c-action-buttons-container__item:nth-child(10) {
  --action-buttons-container-item-transition-delay-multiplier: 10; /* [4] */
}
[aria-labelledby]:not([aria-hidden=false]) > .c-action-buttons-container__item { /* [5] */
  min-height: 0; /* [3] */
  max-height: 0; /* [3] */
  margin-top: calc(var(--float-grid-item-gap) * -1); /* [3] [6] */
  padding-top: 0; /* [3] */
  padding-bottom: 0; /* [3] */
  border-top-width: 0; /* [3] */
  border-bottom-width: 0; /* [3] */
  box-shadow: none; /* [14] */
}
@media not all and (hover: hover) and (pointer: fine) {
  .c-action-buttons-container__item { /* [7] */ }
  .c-action-buttons-container__item.c-action-buttons-container__item { /* [8] */
    --button-collapsed: initial; /* [9] */
  }
}

.c-action-buttons-container__toggle {
  --transition-property: var(--transition-property), transform;
  --transition-duration: var(--transition-duration), 0s;
  --action-buttons-container-toggle-icon: "\f1c1";
  flex-basis: var(--button-height); /* 10 */
  /* stylelint-disable-next-line scss/media-feature-value-dollar-variable */
}
@media not all and (hover: hover) and (pointer: fine) {
  .c-action-buttons-container__toggle { /* [7] */ }
  .c-action-buttons-container__toggle:not(.is-collapsed) {
    --button-collapsed: initial; /* [9] */
  }
}
.c-action-buttons-container__toggle[aria-expanded=true] {
  --action-buttons-container-toggle-icon: "\f1b1";
}

.c-action-buttons-container__toggle__icon::before {
  display: inline-block;
  font-family: "bronson-skoda" !important; /* [1] */
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  font-variant: normal;
  text-transform: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  content: var(--action-buttons-container-toggle-icon);
}

.c-action-buttons-container__item,
.c-action-buttons-container__toggle {
  --grid-area-item-offset: var(--button-height); /* [12] */
  /* [13] */
}

/* ------------------------------------*\
    #EFFICIENCY-TAG
\*------------------------------------ */
/**
 * [1] Reset all properties to their initial values so that no unwanted styles
 *     are leaked into the component.
 * [2] Re-set some properties again after the reset in [1].
 * [3] Center text vertically.
 * [4] The right padding is doubled to account for the reduced height at the
       arrowhead.
 * [5] Shift the tag a tiny bit to the top to align it visually nicer vertically
 *     next to text.
 * [6] We use `clip-path` to make an arrow-like shape.
 */
.c-efficiency-tag {
  all: initial; /* [1] */
  box-sizing: border-box; /* [2] */
  display: inline-flex; /* [3] */
  align-items: center; /* [3] */
  min-width: 3.5em;
  min-height: 1.6em;
  padding-right: 1em; /* [4] */
  padding-left: 0.5em;
  transform: translateY(-0.1em); /* [5] */
  font-family: "skoda-next";
  font-size: 0.8em;
  font-weight: 700;
  vertical-align: baseline;
  background: var(--efficiency-tag-color, #7c7d7e);
  color: var(--efficiency-tag-text-color, #ffffff);
  /* stylelint-disable */
  -webkit-clip-path: polygon(0% 0%, calc(100% - 0.8em) 0%, 100% 50%, calc(100% - 0.8em) 100%, 0% 100%);
  clip-path: polygon(0% 0%, calc(100% - 0.8em) 0%, 100% 50%, calc(100% - 0.8em) 100%, 0% 100%); /* [6] */
  /* stylelint-enable */
}

/* Variants */
[data-efficiency-tag="a+++" i] {
  --efficiency-tag-color: #009640;
}

[data-efficiency-tag="a++" i] {
  --efficiency-tag-color: #009640;
}

[data-efficiency-tag="a+" i] {
  --efficiency-tag-color: #52ae32;
}

[data-efficiency-tag=a i] {
  --efficiency-tag-color: #c8d400;
}

[data-efficiency-tag=b i] {
  --efficiency-tag-color: #c8d400;
}

[data-efficiency-tag=c i] {
  --efficiency-tag-color: #ffed00;
}

[data-efficiency-tag=d i] {
  --efficiency-tag-color: #ec6608;
}

[data-efficiency-tag=e i] {
  --efficiency-tag-color: #e30613;
}

[data-efficiency-tag=f i] {
  --efficiency-tag-color: #e30613;
}

[data-efficiency-tag=g i] {
  --efficiency-tag-color: #e30613;
}

/* ------------------------------------*\
    #CUSTOM-PROGRESS
\*------------------------------------ */
/**
 * [1] Reserve space for tooltip to avoid collision with other components.
 * [2] Apply clipping to achieve border-radius.
 * [3] Prevent subsequent origins blocking interaction on `connect` elements.
 * [4] Indicator for hover that triggers optional tooltip.
 *     `aria-describedby` is set when tooltip is visible.
 * [5] Position tooltip thumbs with icon differently. `3px` is a magic number to
 *     shift the circle edge over the track edge.
 * [6] Shift icon for the last segment to the left side of the segment.
 * [7] Use icons with simple complexity if set.
 * [8] Add invisible pseudo element to increase track height to icon (circle)
 *     height. This increases the hover/clickable area and includes the icon area.
 * [9] The start item is the first child connect and the 2nd child of `.c-custom-progress__connect-container`
 *     which is the first origin.
 * [10] The end item is the last connect and last origin.
 * [11] The main item is defined by the initial visible tooltip and the
 *      dynamically set `.c-custom-progress__step--main` class.
 */
.c-custom-progress__visualization {
  --custom-progress-thumb-icon-size: 24px;
  --custom-progress-thumb-icon-circle-size: 48px;
  --custom-progress-connect-main-background-color: #347954;
  --custom-progress-connect-main-icon-color: #ffffff;
  --custom-progress-connect-start-background-color: #0e3a2f;
  --custom-progress-connect-start-icon-color: #ffffff;
  --custom-progress-connect-end-background-color: #7c7d7e;
  --custom-progress-connect-end-icon-color: #ffffff;
  /* stylelint-disable-next-line order/order */
  position: relative;
  height: 25px;
  margin-top: 100px; /* [1] */
}
.c-custom-progress__visualization[data-custom-progress-theme=alt-1] {
  --custom-progress-connect-main-background-color: #7c7d7e;
  --custom-progress-connect-main-icon-color: #ffffff;
  --custom-progress-connect-start-background-color: #347954;
  --custom-progress-connect-start-icon-color: #ffffff;
  --custom-progress-connect-end-background-color: #0e3a2f;
  --custom-progress-connect-end-icon-color: #ffffff;
}
.c-custom-progress__visualization[data-custom-progress-theme=alt-2] {
  --custom-progress-connect-main-background-color: #0e3a2f;
  --custom-progress-connect-main-icon-color: #ffffff;
  --custom-progress-connect-start-background-color: #7c7d7e;
  --custom-progress-connect-start-icon-color: #ffffff;
  --custom-progress-connect-end-background-color: #347954;
  --custom-progress-connect-end-icon-color: #ffffff;
}
@media (max-width: 479px) {
  .c-custom-progress__visualization {
    --custom-progress-thumb-icon-size: 20px;
    --custom-progress-thumb-icon-circle-size: 32px;
  }
}
.c-custom-progress__visualization .tippy-content {
  width: max-content; /* stylelint-disable-line scale-unlimited/declaration-strict-value */
  max-width: 250px;
  text-align: center;
}

.c-custom-progress__target {
  position: relative;
}
.c-custom-progress__target * {
  touch-action: none;
  -webkit-user-select: none;
  user-select: none;
}

/* Track */
.c-custom-progress__base {
  position: relative;
  z-index: 1;
  top: 50%;
  width: 100%;
  height: 10px;
  transform: translateY(-50%);
  cursor: auto;
}

.c-custom-progress__connect-container {
  height: 100%;
  background-color: #c4c6c7;
  -webkit-clip-path: inset(0 round 10px);
  clip-path: inset(0 round 10px); /* [2] */
}

.c-custom-progress__origin {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  pointer-events: none; /* [3] */
}

.c-custom-progress__thumb {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  background-color: transparent; /* [4] */
  /*
   * @DEPRECATED: Remove `.c-custom-progress__thumb--has-icon` when `:has` browser support is sufficient.
   * `where()` is used to get a forgiving selector list: https://drafts.csswg.org/selectors-4/#typedef-forgiving-selector-list
   */
}
.c-custom-progress__thumb:where(:has(.c-custom-progress__thumb__icon),
.c-custom-progress__thumb--has-icon) {
  top: 50%; /* [5] */
  bottom: auto; /* [5] */
  transform: translate(3px, -50%); /* [5] */
}
.c-custom-progress__origin:last-child .c-custom-progress__thumb:where(:has(.c-custom-progress__thumb__icon),
.c-custom-progress__thumb--has-icon) {
  transform: translate(calc(100% - 3px), -50%); /* [6] */
}

.c-custom-progress__thumb__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--custom-progress-thumb-icon-circle-size);
  aspect-ratio: 1;
  border-radius: 50%;
  font-size: var(--custom-progress-thumb-icon-size);
  background: var(--custom-progress-connect-background-color);
  color: var(--custom-progress-connect-icon-color);
}

.c-custom-progress__connect {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  transform-origin: 0 0;
  background-color: var(--custom-progress-connect-background-color);
  color: var(--custom-progress-connect-icon-color);
  cursor: pointer; /* [4] */
}
.c-custom-progress__connect[aria-describedby] {
  cursor: auto; /* [4] */
}
.c-custom-progress__connect::before { /* [8] */
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  bottom: 0;
  left: 0;
  height: var(--custom-progress-thumb-icon-circle-size);
  transform: translateY(-50%);
}

/* start */ /* [9] */
.c-custom-progress__connect:first-child,
.c-custom-progress__origin:nth-child(2) {
  --custom-progress-connect-icon-color: var(--custom-progress-connect-start-icon-color);
  --custom-progress-connect-background-color: var(--custom-progress-connect-start-background-color);
}

/* end */ /* [10] */
.c-custom-progress__connect:last-child,
.c-custom-progress__origin:last-child {
  --custom-progress-connect-icon-color: var(--custom-progress-connect-end-icon-color);
  --custom-progress-connect-background-color: var(--custom-progress-connect-end-background-color);
}

/* main */ /* [11] */
.c-custom-progress__connect.c-custom-progress__step--main,
.c-custom-progress__thumb.c-custom-progress__step--main {
  --custom-progress-connect-icon-color: var(--custom-progress-connect-main-icon-color);
  --custom-progress-connect-background-color: var(--custom-progress-connect-main-background-color);
}

.c-custom-progress__pips {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.c-custom-progress__value {
  position: absolute;
  transform: translateX(-50%);
  text-align: center;
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
}

.c-custom-progress__description {
  display: flex;
  gap: 24px;
  flex-direction: column;
  flex-wrap: wrap;
  margin-top: 24px;
}

@media (min-width: 481px) {
  .c-custom-progress__description {
    flex-direction: row;
  }
  .c-custom-progress__description__item {
    flex-basis: calc(50% - 24px);
  }
  .c-custom-progress__description__item--end {
    margin-left: auto;
  }
}
/* ------------------------------------*\
    #DROPDOWN-CONTAINER
\*------------------------------------ */
/**
 * [1] Conditionally display an arrow for the dropdown-container.
 * [2] Add open state styles to the button conditionally.
 * [3] Make the trigger wrapper behave like an inline element to track its
 *     collapsed box-dimensions via JavaScript.
 */
.c-dropdown-container {
  --dropdown-container-border-color: transparent;
  --dropdown-container-border-size: 1px;
  --dropdown-container-layer: 2700;
  --dropdown-container-max-width: 400px;
  --dropdown-container-min-width: 200px;
  --js-dropdown-container-offset: 8px;
  position: relative;
}

.c-dropdown-container__arrow { /* [1] */
  display: none;
}

.c-dropdown-container__panel {
  /* stylelint-disable order/order */
  --transition-property: opacity, visibility;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  z-index: var(--dropdown-container-layer);
  display: flex;
  gap: 24px;
  flex-direction: column;
  min-width: var(--dropdown-container-min-width);
  max-width: var(--dropdown-container-max-width);
  padding: 24px;
  border: var(--dropdown-container-border-size) solid var(--dropdown-container-border-color);
  border-radius: 8px;
  background-color: #ffffff;
  filter: drop-shadow(0 2px 25px rgba(0, 0, 0, 0.15));
  visibility: hidden;
  opacity: 0;
}
.c-dropdown-container__panel[aria-hidden=false] {
  visibility: visible;
  opacity: 1;
}

.c-dropdown-container__divider {
  width: 100%;
  height: 1px;
  background-color: #e4e4e4;
}

.c-dropdown-container__button[aria-expanded=true] {
  --button-text-color: ; /* [2] */
}
.c-dropdown-container__button[aria-expanded=true] .c-dropdown-container__icon.c-dropdown-container__icon { /* [2] */ }

.c-dropdown-container__trigger-wrapper {
  display: inline-flex; /* [3] */
}

/* ------------------------------------*\
    #FAV-BUTTON (Deprecated)
\*------------------------------------ */
/**
 * Fallback for icon in markup via SVG
 * Replaced icon via iconfont
 */
.c-fav-button__svg {
  display: none;
}

/* ------------------------------------*\
    #FLATPICKR (Deprecated)
\*------------------------------------ */
/**
 * Selector for disabled state was changed in flatpickr 4.6
 * Fallback for < 4.6
 */
.flatpickr-day.disabled {
  color: #9e9fa0;
  pointer-events: none;
}

/* ------------------------------------*\
    #Legacy Browser Notification
\*------------------------------------ */
/**
 * Display notification only in non-affected browsers.
 * Might be removed in the future if user numbers can be ignored completely
 * instead of providing custom message regarding legacy (outdated) browser.
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  [lang=cs] body:not([data-legacy-browser-notification-off])::before, [lang*=cs-] body:not([data-legacy-browser-notification-off])::before {
    content: "Upozorňujeme, že váš webový prohlížeč je zastaralý. Pro zajištění optimálního zabezpečení, nejlepší uživatelské zkušenosti a technické spolehlivosti doporučujeme aktualizovat verzi vašeho prohlížeče.";
  }
  [lang=de] body:not([data-legacy-browser-notification-off])::before, [lang*=de-] body:not([data-legacy-browser-notification-off])::before {
    content: "Ihr Webbrowser ist veraltet. Dies kann zu niedriger Geschwindigkeit und Sicherheitsproblemen beim Surfen führen sowie zu fehlerhafter Funktionalität und Darstellung der Seite. Bitte aktualisieren Sie Ihre Webbrowser-Version.";
  }
  [lang=en] body:not([data-legacy-browser-notification-off])::before, [lang*=en-] body:not([data-legacy-browser-notification-off])::before {
    content: "Please note, your web browser is outdated. In order to ensure optimum security, best user experience and technical reliability, we suggest updating your browser version.";
  }
  [lang=es] body:not([data-legacy-browser-notification-off])::before, [lang*=es-] body:not([data-legacy-browser-notification-off])::before {
    content: "Tenga en cuenta que su navegador web está desactualizado. Para garantizar una seguridad óptima, la mejor experiencia de usuario y fiabilidad técnica, le sugerimos que actualice la versión de su navegador.";
  }
  [lang=fr] body:not([data-legacy-browser-notification-off])::before, [lang*=fr-] body:not([data-legacy-browser-notification-off])::before {
    content: "Veuillez noter que votre navigateur Web est obsolète. Afin de garantir une sécurité optimale, une meilleure expérience utilisateur et une fiabilité technique, nous vous suggérons de mettre à jour la version de votre navigateur.";
  }
  [lang=it] body:not([data-legacy-browser-notification-off])::before, [lang*=it-] body:not([data-legacy-browser-notification-off])::before {
    content: "Tieni presente che il tuo browser web è obsoleto. Al fine di garantire la massima sicurezza, la migliore esperienza utente e l'affidabilità tecnica, suggeriamo di aggiornare la versione del browser.";
  }
  [lang=ja] body:not([data-legacy-browser-notification-off])::before, [lang*=ja-] body:not([data-legacy-browser-notification-off])::before {
    content: "お使いのウェブブラウザは古くなっていますのでご注意ください。最適なセキュリティ、最高のユーザーエクスペリエンス、技術的な信頼性を確保するために、ブラウザのバージョンを更新することをお勧めします。";
  }
  [lang=ko] body:not([data-legacy-browser-notification-off])::before, [lang*=ko-] body:not([data-legacy-browser-notification-off])::before {
    content: "웹 브라우저가 구식입니다. 최적의 보안, 최상의 사용자 경험 및 기술적 안정성을 보장하기 위해 브라우저 버전을 업데이트하는 것이 좋습니다.";
  }
  [lang=pl] body:not([data-legacy-browser-notification-off])::before, [lang*=pl-] body:not([data-legacy-browser-notification-off])::before {
    content: "Pamiętaj, że Twoja przeglądarka internetowa jest przestarzała. W celu zapewnienia optymalnego bezpieczeństwa, najlepszego doświadczenia użytkownika i niezawodności technicznej sugerujemy aktualizację wersji przeglądarki.";
  }
  [lang=pt] body:not([data-legacy-browser-notification-off])::before, [lang*=pt-] body:not([data-legacy-browser-notification-off])::before {
    content: "Observe que seu navegador da web está desatualizado. Para garantir a máxima segurança, melhor experiência do usuário e confiabilidade técnica, sugerimos atualizar a versão do seu navegador.";
  }
  [lang=sv] body:not([data-legacy-browser-notification-off])::before, [lang*=sv-] body:not([data-legacy-browser-notification-off])::before {
    content: "Observera att din webbläsare är föråldrad. För att säkerställa optimal säkerhet, bästa användarupplevelse och teknisk tillförlitlighet föreslår vi att du uppdaterar din webbläsarversion.";
  }
  body:not([data-legacy-browser-notification-off])[data-legacy-browser-notification]::before {
    content: attr(data-legacy-browser-notification);
  }
  body:not([data-legacy-browser-notification-off])::before {
    /* [1] */
    content: "Please note, your web browser is outdated. In order to ensure optimum security, best user experience and technical reliability, we suggest updating your browser version."; /* [1] */
    display: block;
    padding: 24px;
    font-weight: 400;
    background-color: #cd4a19;
  }
}
@supports (-ms-ime-align: auto) {
  [lang=cs] body:not([data-legacy-browser-notification-off])::before, [lang*=cs-] body:not([data-legacy-browser-notification-off])::before {
    content: "Upozorňujeme, že váš webový prohlížeč je zastaralý. Pro zajištění optimálního zabezpečení, nejlepší uživatelské zkušenosti a technické spolehlivosti doporučujeme aktualizovat verzi vašeho prohlížeče.";
  }
  [lang=de] body:not([data-legacy-browser-notification-off])::before, [lang*=de-] body:not([data-legacy-browser-notification-off])::before {
    content: "Ihr Webbrowser ist veraltet. Dies kann zu niedriger Geschwindigkeit und Sicherheitsproblemen beim Surfen führen sowie zu fehlerhafter Funktionalität und Darstellung der Seite. Bitte aktualisieren Sie Ihre Webbrowser-Version.";
  }
  [lang=en] body:not([data-legacy-browser-notification-off])::before, [lang*=en-] body:not([data-legacy-browser-notification-off])::before {
    content: "Please note, your web browser is outdated. In order to ensure optimum security, best user experience and technical reliability, we suggest updating your browser version.";
  }
  [lang=es] body:not([data-legacy-browser-notification-off])::before, [lang*=es-] body:not([data-legacy-browser-notification-off])::before {
    content: "Tenga en cuenta que su navegador web está desactualizado. Para garantizar una seguridad óptima, la mejor experiencia de usuario y fiabilidad técnica, le sugerimos que actualice la versión de su navegador.";
  }
  [lang=fr] body:not([data-legacy-browser-notification-off])::before, [lang*=fr-] body:not([data-legacy-browser-notification-off])::before {
    content: "Veuillez noter que votre navigateur Web est obsolète. Afin de garantir une sécurité optimale, une meilleure expérience utilisateur et une fiabilité technique, nous vous suggérons de mettre à jour la version de votre navigateur.";
  }
  [lang=it] body:not([data-legacy-browser-notification-off])::before, [lang*=it-] body:not([data-legacy-browser-notification-off])::before {
    content: "Tieni presente che il tuo browser web è obsoleto. Al fine di garantire la massima sicurezza, la migliore esperienza utente e l'affidabilità tecnica, suggeriamo di aggiornare la versione del browser.";
  }
  [lang=ja] body:not([data-legacy-browser-notification-off])::before, [lang*=ja-] body:not([data-legacy-browser-notification-off])::before {
    content: "お使いのウェブブラウザは古くなっていますのでご注意ください。最適なセキュリティ、最高のユーザーエクスペリエンス、技術的な信頼性を確保するために、ブラウザのバージョンを更新することをお勧めします。";
  }
  [lang=ko] body:not([data-legacy-browser-notification-off])::before, [lang*=ko-] body:not([data-legacy-browser-notification-off])::before {
    content: "웹 브라우저가 구식입니다. 최적의 보안, 최상의 사용자 경험 및 기술적 안정성을 보장하기 위해 브라우저 버전을 업데이트하는 것이 좋습니다.";
  }
  [lang=pl] body:not([data-legacy-browser-notification-off])::before, [lang*=pl-] body:not([data-legacy-browser-notification-off])::before {
    content: "Pamiętaj, że Twoja przeglądarka internetowa jest przestarzała. W celu zapewnienia optymalnego bezpieczeństwa, najlepszego doświadczenia użytkownika i niezawodności technicznej sugerujemy aktualizację wersji przeglądarki.";
  }
  [lang=pt] body:not([data-legacy-browser-notification-off])::before, [lang*=pt-] body:not([data-legacy-browser-notification-off])::before {
    content: "Observe que seu navegador da web está desatualizado. Para garantir a máxima segurança, melhor experiência do usuário e confiabilidade técnica, sugerimos atualizar a versão do seu navegador.";
  }
  [lang=sv] body:not([data-legacy-browser-notification-off])::before, [lang*=sv-] body:not([data-legacy-browser-notification-off])::before {
    content: "Observera att din webbläsare är föråldrad. För att säkerställa optimal säkerhet, bästa användarupplevelse och teknisk tillförlitlighet föreslår vi att du uppdaterar din webbläsarversion.";
  }
  body:not([data-legacy-browser-notification-off])[data-legacy-browser-notification]::before {
    content: attr(data-legacy-browser-notification);
  }
  body:not([data-legacy-browser-notification-off])::before {
    /* [1] */
    content: "Please note, your web browser is outdated. In order to ensure optimum security, best user experience and technical reliability, we suggest updating your browser version."; /* [1] */
    display: block;
    padding: 24px;
    font-weight: 400;
    background-color: #cd4a19;
  }
}
/* ------------------------------------*\
    #INPUT (Scopes)
\*------------------------------------ */
/**
 * [1] Add fallback spacing when selector `.c-form-field--static` is not present.
 * [2] Do not apply fallback to combobox items (inherited via `@extend`).
*/
.c-form-field:not(.c-form-field--static) .c-radio__label,
.c-form-field:not(.c-form-field--static) .c-checkbox__label,
.c-form-field:not(.c-form-field--static) .c-combobox__listbox[aria-multiselectable=true] .c-combobox__item__text,
.c-combobox__listbox[aria-multiselectable=true] .c-form-field:not(.c-form-field--static) .c-combobox__item__text {
  margin-top: 8px; /* [1] */
}
.c-form-field:not(.c-form-field--static) .c-combobox__item__text {
  margin-top: 0 !important; /* [2] */
}

/* ------------------------------------*\
    #MEDIA-GRID (Deprecated)
\*------------------------------------ */
/**
 * @FALLBACK:
 * Browsers without `:has` support.
 *
 * This triggers animation on hover/focus on container instead of single elements.
 */
/**
 * [1] Avoid triggering animation on hover for container when in between items.
 * [2] Reset pointer events for items.
 */
@supports not selector(:has(.support)) {
  .c-media-grid {
    /* stylelint-disable-next-line scss/media-feature-value-dollar-variable */
  }
  @media (prefers-reduced-motion: no-preference) and (pointer: fine) {
    .c-media-grid {
      pointer-events: none; /* [1] */
    }
    .c-media-grid:hover .c-media-grid__link .c-media-grid__image, .c-media-grid:focus-within .c-media-grid__image {
      opacity: 0.3;
      filter: blur(2px);
    }
    .c-media-grid:hover .c-media-grid__link:hover, .c-media-grid:hover .c-media-grid__link:focus-visible,
    .c-media-grid .c-media-grid__link:hover,
    .c-media-grid .c-media-grid__link:focus-visible {
      /* stylelint-disable-next-line selector-max-specificity */
    }
    .c-media-grid:hover .c-media-grid__link:hover .c-media-grid__image, .c-media-grid:hover .c-media-grid__link:focus-visible .c-media-grid__image,
    .c-media-grid .c-media-grid__link:hover .c-media-grid__image,
    .c-media-grid .c-media-grid__link:focus-visible .c-media-grid__image {
      opacity: 1;
      filter: blur(0);
    }
    .c-media-grid .c-media-grid__item {
      pointer-events: auto; /* [2] */
    }
  }
}
/* ------------------------------------*\
    #Flatpickr (Fallback)
\*------------------------------------ */
/**
 * [1] Fallback for non-supporting browser for `:has` selector.
 *     This will always show the InRange-Start/End background even when no
 *     range is selected (yet).
 *     https://caniuse.com/css-has
 */
@supports not selector(:has(.support)) {
  .flatpickr-day.startRange::before, .flatpickr-day.endRange::before {
    background-color: #a8ffcc; /* [1] */
  }
}
/* ------------------------------------*\
    #Indicator Dot (Scope Settings)
\*------------------------------------ */
/* ----------------------------------------------------------------------*\
    #Sticky Elements (Scopes)

    Define offsets for sticky elements for specific contexts/scopes.

    As per design/recommendation, only 2 sticky elements should be combined.
\*---------------------------------------------------------------------- */
/**
  * [1] Fallback for non-supporting browsers of `:has`.
     Relies on DOM structure (table needs to be in section-nav section).
     @DEPRECATED
 */
:root:has(.c-section-nav) {
  --bron-sticky-offset: 64px;
}

/* [1] */
@supports not selector(:has(.support)) {
  .c-section-nav__section .c-table--sticky-head {
    --bron-sticky-offset: 64px;
  }
}
/* ------------------------------------*\
    #BUTTONS (Scopes)
\*------------------------------------ */
/*
 * [1] Set the button width to 100% on media teaser breakpoint.
 * [2] The vertical media teaser's button is always 100% width.
 * [3] Overwrite the disabled styles as they are handled by the overlay.
 */
.c-btn {
  /* stylelint-disable selector-max-specificity, selector-max-combinators, selector-max-compound-selectors, selector-max-class */
  /* stylelint-enable selector-max-specificity, selector-max-combinators, selector-max-compound-selectors, selector-max-class */
}
@media (max-width: 720px) {
  .c-media-teaser .c-media-teaser__footer .c-btn {
    width: 100%; /* [1] */
  }
}
.c-media-teaser--vertical .c-media-teaser__footer .c-btn {
  width: 100%; /* [2] */
}
.c-back-to-top .c-btn {
  --button-flex-direction: row;
}
.c-table-wrapper [aria-disabled=true] .c-btn .c-btn__text.c-btn__text,
.c-table-wrapper [aria-disabled=true] .c-btn .c-btn__icon.c-btn__icon, .c-table-wrapper .is-disabled .c-btn .c-btn__text.c-btn__text,
.c-table-wrapper .is-disabled .c-btn .c-btn__icon.c-btn__icon {
  color: #161718; /* [3] */
}

/* ------------------------------------*\
    #INPUT (Scopes)
\*------------------------------------ */
/**
 * [1] Hide placeholder texts if floating labels are activated.
 * [2] When Floating Label spacing is bigger than `0`, add this space to
 *     the Checkbox or Radio Label to ensure enough space between them.
 * // @TODO: move to fallback layer
 * [3] Add fallback spacing when selector `.c-form-field--static` is not present.
*/
.c-input__input {
  /* stylelint-disable */
  /* stylelint-enable */
}
form.is-js-on .c-form-field:not(.c-form-field--no-floating) .c-input__input { /* [1] */ }
form.is-js-on .c-form-field:not(.c-form-field--no-floating) .c-input__input::placeholder {
  color: transparent;
  -webkit-text-fill-color: transparent;
}
form.is-js-on .c-form-field:not(.c-form-field--no-floating) .c-input__input:disabled::placeholder {
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
}

/* ------------------------------------*\
    #ACCORDION (Scopes)
\*------------------------------------ */
/**
 * [1] Styling of a single accordion component within a card component.
 * [2] If an accordion with only one child element is placed in a card collapsible
 *     component, paddings have to be removed.
 */
.c-card .c-accordion { /* [1] */
  border-top: none;
  border-bottom: none;
  background-color: transparent;
}
.c-card .c-accordion:only-child { /* [1] */
  text-align: left;
}
.c-card .c-accordion:only-child .c-accordion__header {
  padding-right: 32px;
  padding-left: 0;
}
.c-card .c-accordion:only-child .c-accordion__content {
  --accordion-panel-padding-top: 24px;
}
.c-card:not(.c-card--expandable) .c-accordion { /* [2] */
  /* stylelint-disable selector-max-specificity */
  /* stylelint-enable */
}
.c-card:not(.c-card--expandable) .c-accordion:only-child .c-accordion__header {
  padding-top: 0;
  padding-bottom: 0;
}
.c-card:not(.c-card--expandable) .c-accordion:only-child .c-accordion__title-icon {
  top: 0;
  right: 0;
}
.c-card:not(.c-card--expandable) .c-accordion:only-child .c-accordion__panel {
  /* stylelint-disable length-zero-no-unit */
  --accordion-panel-padding-right: 0px;
  --accordion-panel-padding-bottom: 0px;
  --accordion-panel-padding-left: 0px;
  /* stylelint-enable length-zero-no-unit */
}

/* ------------------------------------*\
    #PRODUCT-INFO-SUMMARY (Scopes)
\*------------------------------------ */
/**
 * [1] Styling of a product info summary in a fold out.
 */
.c-fold-out__header[aria-expanded=true] .c-product-info-summary .c-product-info-summary__heading,
.c-fold-out__header[aria-expanded=true] .c-product-info-summary .c-product-info-summary__img,
.c-fold-out__header[aria-expanded=true] .c-product-info-summary .c-product-info-summary__info {
  display: none;
}

/* ------------------------------------*\
    #INFO-ICON (Scopes)
\*------------------------------------ */
/**
 * Hotfix for Info Icon layout issues when the icon is a direct child of
 * `.c-form-field` The size and position of the info icon was affected by the
 * flexbox context. `.c-form-field > .c-info-icon` is not a recommended markup
 * order. Ideally `.c-info-icon` should be inside of `.c-form-field__label`.
 * But we ourselves have wrongly demonstrated this in
 * https://bronson.vwfs.tools/default/v/7.14.0/components/preview/bronson-calculation-page--calculation-page.html)
 * Bug report: https://jira.platform.vwfs.io/browse/BRONSD-135?focusedCommentId=49997&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-49997
 *
 * @TODO: Refactor Info Icon CSS for all brands by simplifying SCSS and making it more robust.
 *
 * [hf-1] Reset negative margins. See [3].
 * [hf-2] Override the default `align-items` value (`stretch`).
 */
.c-form-field > .c-info-icon {
  align-self: center; /* [hf-2] */
  margin-top: 0; /* [hf-1] */
  margin-bottom: 0; /* [hf-1] */
}

/**
 * Fix incorrect positioning in various contexts due to negative margin "hack".
 */
.c-section-heading .c-info-icon {
  margin-top: 0;
  margin-bottom: 0;
  vertical-align: top;
}

/* ------------------------------------*\
    #HEADER (Scopes)
\*------------------------------------ */
/**
 * [1] Push to right side.
 * [2] No spacing between context-bar & notification-center
 *     to visually group them.
 * [3] Fallback for old markup (context-bar nested in header-nav) for positioning.
 * [4] Layout context-bar with only logo & context-bar in header.
 */
@media (min-width: 961px) {
  .c-header__content-wrapper .c-header__logo:not(:last-child),
  .c-header__content-wrapper .c-header__nav:not(:last-child) {
    margin-right: 32px;
  }
}
@media (max-width: 960px) {
  .c-header__content-wrapper .c-header__nav {
    margin-left: 16px;
  }
  .c-header__content-wrapper .c-header__nav > .c-context-bar {
    order: -1; /* [3] */
    margin-right: 16px;
  }
}
.c-header__content-wrapper .c-context-bar,
.c-header__content-wrapper .c-header__notification-center {
  margin-left: auto; /* [1] */
}
.c-header__content-wrapper .c-header__logo + .c-context-bar { /* [4] */
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: auto;
}

@media (max-width: 960px) {
  .c-context-bar ~ .c-header__notification-center {
    margin-left: 0; /* [2] */
  }
}

/* ------------------------------------*\
    #PRODUCT-SEARCH-FILTER (Scopes)
\*------------------------------------ */
/**
 * [1] Remove horizontal padding for accordions inside product search filters.
 * [2] Decrease button group item width inside product search filters.
 */
.c-product-search-filter .c-accordion__panel {
  --accordion-panel-padding-left: 0px; /* [1] */
  --accordion-panel-padding-right: 0px; /* [1] */
}
.c-product-search-filter .c-button-group {
  grid-template-columns: repeat(auto-fit, minmax(122px, 1fr)); /* [2] */
}
.c-product-search-filter .c-button-group.c-button-group--auto {
  /* autoprefixer: ignore next */
  grid-template-columns: repeat(auto-fill, minmax(122px, 1fr)); /* [2] */
}

/* ------------------------------------*\
    #PRODUCT SEARCH FORM (Scopes)
\*------------------------------------ */
/**
 * [1] Align buttons to the right side on horizontal mode and center them
 *     on vertical mode.
 */
@media (max-width: 960px) {
  .c-product-search-form .c-btn--small {
    justify-content: center;
  }
}

/* ------------------------------------*\
    #Indicator Dot (Scope Settings)
\*------------------------------------ */
/* ------------------------------------*\
    #Indicator Dot (Scopes)
\*------------------------------------ */
/**
 * [1] Unset (re-) positioning as in those scopes the position is handled differently.
 * [2] Pixel-pushing deluxe! Since the positioning is depending on too many parameters
 *     (`font-size`, `line-height`, etc.) a magic number is used here
 *     to visually align dot to baseline.
 */
.c-inbox-table__status-indicator .c-indicator-dot__dot {
  transform: none; /* [1] */
}
.c-notification-center__item__status .c-indicator-dot__dot {
  transform: translateY(-50%); /* [1] */
}
/* ------------------------------------*\
    #INTERACTION-LAYER (Scopes)
\*------------------------------------ */
/**
 * [1] Center button text in smaller viewports.
 * [2] Change `flex-direction` on reversed button-container on smaller viewports
 *     to display call-to-action on top.
 */
@media (max-width: 960px) {
  .c-interaction-layer__button-bar .c-btn--link {
    justify-content: center; /* [1] */
  }
  .c-interaction-layer__button-bar .o-button-container {
    flex-direction: column-reverse; /* [2] */
  }
}

/* ------------------------------------*\
    #TABLES (Scopes)
\*------------------------------------ */
/**
 * [1] Responsive variant: Prevents the width of `.c-badge` from blowing up
 *     when a combination of CSS grid and CSS flexbox comes into play.
 * [2] Vertically align with text
 */
.c-table-wrapper th .c-badge__icon::before,
.c-table-wrapper td .c-badge__icon::before {
  color: inherit;
}
.c-table-wrapper th .c-status-message,
.c-table-wrapper td .c-status-message {
  align-items: baseline; /* [2] */
}

@media (max-width: 720px) {
  @supports (display: grid) {
    .c-table--responsive [data-columnheader] .c-badge {
      flex-grow: 0; /* [1] */
    }
  }
}

/* ------------------------------------*\
    #HERO-TEASER (Scopes)
\*------------------------------------ */
/**
 * [1] If the inverted variant of the Hero Teaser component is enabled via
 *     the `$hero-teaser-inverted` Sass variable, the color must be inverted
 *     manually, since the color cannot be inherited from
 *     `[data-theme="brand"]`.
 * [2] For brands that have not enabled the inverted variant of the
 *     Hero Teaser component via the `$hero-teaser-inverted` Sass variable,
 *     but still need to adjust the color of the Hint component.
 * [3] Scale the video wrapper for background-videos to the parent’s height.
 * [4] Use same size mode as background video (`cover`) to provide a smoother experience before the video is loaded.
 * [5] Bypass the `Show more` settings, as they are hiding the input borders and make the focus styles partially invisible.
 */
.c-hero-teaser__pretitle .c-hint {
  border-color: currentColor;
  background-color: #ffffff;
  color: #161718;
}
.c-hero-teaser__title .c-hint {
  border-color: currentColor;
  background-color: #ffffff;
  color: #161718;
}
.c-hero-teaser__subtitle .c-hint {
  border-color: currentColor;
  background-color: #ffffff;
  color: #161718;
}
.c-hero-teaser__text .c-hint {
  border-color: currentColor;
  background-color: #ffffff;
  color: #161718;
}
.c-hero-teaser--inverted .c-hero-teaser__pretitle .c-hint {
  border-color: currentColor;
  background-color: #161718;
  color: #ffffff;
}
.c-hero-teaser--inverted .c-hero-teaser__pretitle .c-hint:hover {
  background-color: #ffffff;
  color: #161718;
}
.c-hero-teaser--inverted .c-hero-teaser__title .c-hint {
  border-color: currentColor;
  background-color: #161718;
  color: #ffffff;
}
.c-hero-teaser--inverted .c-hero-teaser__title .c-hint:hover {
  background-color: #ffffff;
  color: #161718;
}
.c-hero-teaser--inverted .c-hero-teaser__subtitle .c-hint {
  border-color: currentColor;
  background-color: #161718;
  color: #ffffff;
}
.c-hero-teaser--inverted .c-hero-teaser__subtitle .c-hint:hover {
  background-color: #ffffff;
  color: #161718;
}
.c-hero-teaser--inverted .c-hero-teaser__text .c-hint {
  border-color: currentColor;
  background-color: #161718;
  color: #ffffff;
}
.c-hero-teaser--inverted .c-hero-teaser__text .c-hint:hover {
  background-color: #ffffff;
  color: #161718;
}

.c-hero-teaser__background-video .plyr--video {
  height: inherit; /* [3] */
}
.c-hero-teaser__background-video .plyr__poster {
  background-size: cover; /* [4] */
}

/* ------------------------------------*\
    #CUSTOM-PROGRESS (Scope)
\*------------------------------------ */
@media (min-width: 481px) {
  .c-custom-progress__description__item--end {
    --description-list-text-align: right;
    --if-description-list-split-is-wide: ; /* stylelint-disable-line */
  }
}
/* ------------------------------------*\
    #CARDS (Scopes)
\*------------------------------------ */
/**
 * [1] Add vertical spacing between form fields.
 */
.c-card__body .c-form-field + .c-form-field {
  margin-top: 24px; /* [1] */
}

/* ------------------------------------*\
    #SHOW-MORE (Scopes)
\*------------------------------------ */
/**
 * [1] Vertical spacing between Fieldset object and Show More.
 * [2] Vertical spacing between Show More and Button Container object.
 */
.o-fieldset + .c-show-more .c-show-more__button {
  margin-top: 0; /* [1] */
}
.o-fieldset + .c-show-more .c-show-more__button[aria-expanded=true] {
  margin-top: 24px; /* [1] */
}
.c-show-more + .o-button-container {
  margin-top: 24px; /* [2] */
}

.c-modal .c-progress {
  margin-top: 24px;
}

/* ------------------------------------*\
    #INFO-ICON (Scopes)
\*------------------------------------ */
/**
 * [1] Visually align Info Icon.
 */
.c-section-heading .c-info-icon {
  vertical-align: baseline; /* [1] */
}

/* ------------------------------------*\
    #SPINNER (Scopes)
\*------------------------------------ */
/**
 * [1] Small size in upload context. Use `@extend` as multiple selectors
 *     and properties need to be set.
 */
.c-upload .c-spinner {
  /* [1] */ /* stylelint-disable-line scss/at-extend-no-missing-placeholder */
}

/* ------------------------------------*\
    #FOOTNOTES (Scopes)
\*------------------------------------ */
/**
 * [1] Avoid Inline Link Element styles.
 */
.c-footer .c-footnotes {
  color: #9e9fa0;
}
.c-footnotes a {
  border-color: inherit; /* [1] */
}

/**
 * [1] Reset defaults.
 */
.c-product-card .c-carousel {
  margin-bottom: 32px;
}
.c-product-card .c-carousel .flickity-page-dots {
  bottom: auto; /* [1] */
  right: auto; /* [1] */
  top: calc(100% + 4px);
  padding-top: 4px;
  padding-bottom: 4px;
  background-color: transparent;
}
.c-product-card .c-carousel .dot {
  height: auto;
  min-height: auto;
  /* stylelint-disable-next-line selector-max-class */
}
.c-product-card .c-carousel .dot.is-selected {
  /* stylelint-disable-next-line selector-max-specificity, selector-max-class, max-nesting-depth */
}
.c-product-card .c-carousel .dot.is-selected::before {
  color: #161718 !important;
}
.c-product-card .c-carousel .flickity-prev-next-button {
  width: 32px;
  height: 32px;
  /* stylelint-disable-next-line selector-max-class */
  /* stylelint-disable-next-line selector-max-class */
}
.c-product-card .c-carousel .flickity-prev-next-button::before {
  font-size: 24px;
}
.c-product-card .c-carousel .flickity-prev-next-button.next {
  right: 4px;
}
.c-product-card .c-carousel .flickity-prev-next-button.previous {
  left: 4px;
}
.c-product-card .c-carousel .flickity-fullscreen-button {
  right: 4px;
  bottom: 4px;
}

/* ------------------------------------*\
    #HERO-TEASER (Scopes)
\*------------------------------------ */
/**
 * [1] Invert hint styles on small screens.
 * [2] Disable gradient for controls.
 */
@media (max-width: 480px) {
  .c-hero-teaser .c-hero-teaser__pretitle .c-hint {
    border-color: currentColor;
    background-color: #161718;
    color: #ffffff;
  }
  .c-hero-teaser .c-hero-teaser__pretitle .c-hint:hover {
    background-color: #ffffff;
    color: #161718;
  }
  .c-hero-teaser .c-hero-teaser__title .c-hint {
    border-color: currentColor;
    background-color: #161718;
    color: #ffffff;
  }
  .c-hero-teaser .c-hero-teaser__title .c-hint:hover {
    background-color: #ffffff;
    color: #161718;
  }
  .c-hero-teaser .c-hero-teaser__subtitle .c-hint {
    border-color: currentColor;
    background-color: #161718;
    color: #ffffff;
  }
  .c-hero-teaser .c-hero-teaser__subtitle .c-hint:hover {
    background-color: #ffffff;
    color: #161718;
  }
  .c-hero-teaser .c-hero-teaser__text .c-hint {
    border-color: currentColor;
    background-color: #161718;
    color: #ffffff;
  }
  .c-hero-teaser .c-hero-teaser__text .c-hint:hover {
    background-color: #ffffff;
    color: #161718;
  }
}
.c-hero-teaser__background-video .plyr--video::after {
  content: unset; /* [2] */
}

/* ------------------------------------*\
    #Header (Scope Settings)
\*------------------------------------ */
/* ------------------------------------*\
    #Header
\*------------------------------------ */
/**
 * [1] Override default that has no dedicated setting.
 */
.c-header .c-header__nav {
  margin: 0; /* [1] */
}

.c-context-bar__link,
.c-notification-center__toggle,
.c-site-nav__toggle {
  width: 44px;
  height: 44px;
}

.c-context-bar__link {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  scale: 1;
}
.c-context-bar__link::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  transition: inherit;
}
.c-context-bar__link:hover::after {
  background-color: rgba(22, 23, 24, 0.06);
}

.c-context-bar__link:focus-visible::after {
  --focus-outline-color: #161718;
  --focus-outline-offset: 0;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

.c-context-bar__link:active {
  scale: 0.95;
}

.c-context-bar__link:focus-visible {
  outline: 0;
}

.c-notification-center__toggle {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  scale: 1;
}
.c-notification-center__toggle::before {
  content: "";
  position: absolute;
  z-index: -1;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  transition: inherit;
}
.c-notification-center__toggle:hover::before {
  background-color: rgba(22, 23, 24, 0.06);
}

.c-notification-center__toggle:focus-visible::before {
  --focus-outline-color: #161718;
  --focus-outline-offset: 0;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

.c-notification-center__toggle:active {
  scale: 0.95;
}

.c-notification-center__toggle:focus-visible {
  outline: 0;
}

.c-site-nav__toggle {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  /* stylelint-disable order/order */
  --transition-property: all;
  --transition-duration: var(--transition-duration-reduced-motion, 300ms);
  --transition-timing-function: ease-in-out;
  --transition-delay: ;
  transition-property: var(--transition-property);
  transition-duration: var(--transition-duration);
  transition-timing-function: var(--transition-timing-function);
  transition-delay: var(--transition-delay);
  scale: 1;
}
.c-site-nav__toggle::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  transition: inherit;
}
.c-site-nav__toggle:hover::after {
  background-color: rgba(22, 23, 24, 0.06);
}

.c-site-nav__toggle:focus-visible::after {
  --focus-outline-color: #161718;
  --focus-outline-offset: 0;
  --focus-outline-style: solid;
  --focus-outline-width: 2px;
  outline-color: var(--focus-outline-color, #161718);
  outline-offset: var(--focus-outline-offset, 1px);
  outline-style: var(--focus-outline-style, solid);
  outline-width: var(--focus-outline-width, 2px);
}

.c-site-nav__toggle:active {
  scale: 0.95;
}

/* ------------------------------------*\
    #TABLES (Scopes)
\*------------------------------------ */
/**
 * [1] Reset color to default link color as disabled rows have an overlay.
 */
.c-table-wrapper tr.is-disabled .c-btn--link,
.c-table-wrapper tr[aria-disabled=true] .c-btn--link {
  /* stylelint-disable-next-line */
}
.c-table-wrapper tr.is-disabled .c-btn--link .c-btn__icon,
.c-table-wrapper tr.is-disabled .c-btn--link .c-btn__text,
.c-table-wrapper tr[aria-disabled=true] .c-btn--link .c-btn__icon,
.c-table-wrapper tr[aria-disabled=true] .c-btn--link .c-btn__text {
  color: #161718 !important; /* [1] */
}

/* ------------------------------------*\
    #BLOCK
\*------------------------------------ */
/**
 * Utility class to make an element `display: block;`.
 */
.u-block {
  display: block !important;
}

/* ------------------------------------*\
    #BORDER
\*------------------------------------ */
/**
 * Utility class to make an element have borders like `border: 1px solid red;`.
 */
.u-border {
  border: 1px solid #e4e4e4 !important;
}

.u-border-t {
  border-top: 1px solid #e4e4e4 !important;
}

.u-border-r {
  border-right: 1px solid #e4e4e4 !important;
}

.u-border-b {
  border-bottom: 1px solid #e4e4e4 !important;
}

.u-border-l {
  border-left: 1px solid #e4e4e4 !important;
}

.u-border-v {
  border-left: 1px solid #e4e4e4 !important;
  border-right: 1px solid #e4e4e4 !important;
}

.u-border-h {
  border-top: 1px solid #e4e4e4 !important;
  border-bottom: 1px solid #e4e4e4 !important;
}

/* ------------------------------------*\
    #CLEARFIX
\*------------------------------------ */
/**
 * Clearfix utility class.
 */
.u-clearfix::after {
  content: "" !important;
  display: block !important;
  clear: both !important;
}

/* ------------------------------------*\
    #DEBUG
\*------------------------------------ */
/* stylelint-disable */
/* stylelint-enable */
/**
 * Disable debug on Plyr video controls. The used plugin (Plyr) does not follow
 * the "no modifier without base class" BEM rule.
 *
 * @TODO: find better solution to exclude Plyr.
 */
.plyr__control > svg {
  outline: none !important;
}

/* ------------------------------------*\
    #FLOAT
\*------------------------------------ */
/**
 * Helper classes to float elements either left, right or none.
 */
.u-float-left {
  float: left !important;
}

.u-float-right {
  float: right !important;
}

.u-float-none {
  float: none !important;
}

@media (max-width: 1920px) {
  .u-float-left\@xxl {
    float: left !important;
  }
  .u-float-right\@xxl {
    float: right !important;
  }
  .u-float-none\@xxl {
    float: none !important;
  }
}
@media (min-width: 1921px) {
  .u-float-left\@xxl-up {
    float: left !important;
  }
  .u-float-right\@xxl-up {
    float: right !important;
  }
  .u-float-none\@xxl-up {
    float: none !important;
  }
}
@media (max-width: 1600px) {
  .u-float-left\@xl {
    float: left !important;
  }
  .u-float-right\@xl {
    float: right !important;
  }
  .u-float-none\@xl {
    float: none !important;
  }
}
@media (min-width: 1601px) {
  .u-float-left\@xl-up {
    float: left !important;
  }
  .u-float-right\@xl-up {
    float: right !important;
  }
  .u-float-none\@xl-up {
    float: none !important;
  }
}
@media (max-width: 1280px) {
  .u-float-left\@l {
    float: left !important;
  }
  .u-float-right\@l {
    float: right !important;
  }
  .u-float-none\@l {
    float: none !important;
  }
}
@media (min-width: 1281px) {
  .u-float-left\@l-up {
    float: left !important;
  }
  .u-float-right\@l-up {
    float: right !important;
  }
  .u-float-none\@l-up {
    float: none !important;
  }
}
@media (max-width: 960px) {
  .u-float-left\@m {
    float: left !important;
  }
  .u-float-right\@m {
    float: right !important;
  }
  .u-float-none\@m {
    float: none !important;
  }
}
@media (min-width: 961px) {
  .u-float-left\@m-up {
    float: left !important;
  }
  .u-float-right\@m-up {
    float: right !important;
  }
  .u-float-none\@m-up {
    float: none !important;
  }
}
@media (max-width: 720px) {
  .u-float-left\@s {
    float: left !important;
  }
  .u-float-right\@s {
    float: right !important;
  }
  .u-float-none\@s {
    float: none !important;
  }
}
@media (min-width: 721px) {
  .u-float-left\@s-up {
    float: left !important;
  }
  .u-float-right\@s-up {
    float: right !important;
  }
  .u-float-none\@s-up {
    float: none !important;
  }
}
@media (max-width: 480px) {
  .u-float-left\@xs {
    float: left !important;
  }
  .u-float-right\@xs {
    float: right !important;
  }
  .u-float-none\@xs {
    float: none !important;
  }
}
@media (min-width: 481px) {
  .u-float-left\@xs-up {
    float: left !important;
  }
  .u-float-right\@xs-up {
    float: right !important;
  }
  .u-float-none\@xs-up {
    float: none !important;
  }
}
/* ------------------------------------*\
    #FONT-SIZES
\*------------------------------------ */
/**
 * Utility classes to enforce font sizes.
 */
.u-font-size-fs6 {
  /* stylelint-disable-line scss/dollar-variable-colon-space-after */
  font-size: 2.5rem !important;
}
@media (min-width: 721px) {
  .u-font-size-fs6 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 3.5rem !important;
  }
}
@media (min-width: 1281px) {
  .u-font-size-fs6 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 4.5rem !important;
  }
}

.u-font-size-fs5 {
  /* stylelint-disable-line scss/dollar-variable-colon-space-after */
  font-size: 2.5rem !important;
}
@media (min-width: 721px) {
  .u-font-size-fs5 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 3.5rem !important;
  }
}
@media (min-width: 1281px) {
  .u-font-size-fs5 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 4.5rem !important;
  }
}

.u-font-size-fs4 {
  /* stylelint-disable-line scss/dollar-variable-colon-space-after */
  font-size: 2.0625rem !important;
}
@media (min-width: 721px) {
  .u-font-size-fs4 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 2.375rem !important;
  }
}
@media (min-width: 1281px) {
  .u-font-size-fs4 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 2.75rem !important;
  }
}

.u-font-size-fs3 {
  /* stylelint-disable-line scss/dollar-variable-colon-space-after */
  font-size: 1.75rem !important;
}
@media (min-width: 721px) {
  .u-font-size-fs3 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 2rem !important;
  }
}
@media (min-width: 1281px) {
  .u-font-size-fs3 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 2.25rem !important;
  }
}

.u-font-size-fs2 {
  /* stylelint-disable-line scss/dollar-variable-colon-space-after */
  font-size: 1.4375rem !important;
}
@media (min-width: 721px) {
  .u-font-size-fs2 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 1.6875rem !important;
  }
}
@media (min-width: 1281px) {
  .u-font-size-fs2 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 1.875rem !important;
  }
}

.u-font-size-fs1 {
  /* stylelint-disable-line scss/dollar-variable-colon-space-after */
  font-size: 1.25rem !important;
}
@media (min-width: 721px) {
  .u-font-size-fs1 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 1.4375rem !important;
  }
}
@media (min-width: 1281px) {
  .u-font-size-fs1 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 1.5rem !important;
  }
}

.u-font-size-fs0 {
  /* stylelint-disable-line scss/dollar-variable-colon-space-after */
  font-size: 1rem !important;
}

.u-font-size-fs-1 {
  /* stylelint-disable-line scss/dollar-variable-colon-space-after */
  font-size: 0.875rem !important;
}

.u-font-size-fs-2 {
  /* stylelint-disable-line scss/dollar-variable-colon-space-after */
  font-size: 0.75rem !important;
}

.u-font-size-fs-3 {
  /* stylelint-disable-line scss/dollar-variable-colon-space-after */
  font-size: 0.75rem !important;
}

/* ------------------------------------*\
    #HIDE
\*------------------------------------ */
/**
 * Hide helper classes to hide elements on certain veiwports.
 */
.u-hide {
  display: none !important;
}

/**
 * Breakpoints specific hide classes.
 */
@media (max-width: 1920px) {
  .u-hide\@xxl {
    display: none !important;
  }
}
@media (min-width: 1921px) {
  .u-hide\@xxl-up {
    display: none !important;
  }
}
@media (max-width: 1600px) {
  .u-hide\@xl {
    display: none !important;
  }
}
@media (min-width: 1601px) {
  .u-hide\@xl-up {
    display: none !important;
  }
}
@media (max-width: 1280px) {
  .u-hide\@l {
    display: none !important;
  }
}
@media (min-width: 1281px) {
  .u-hide\@l-up {
    display: none !important;
  }
}
@media (max-width: 960px) {
  .u-hide\@m {
    display: none !important;
  }
}
@media (min-width: 961px) {
  .u-hide\@m-up {
    display: none !important;
  }
}
@media (max-width: 720px) {
  .u-hide\@s {
    display: none !important;
  }
}
@media (min-width: 721px) {
  .u-hide\@s-up {
    display: none !important;
  }
}
@media (max-width: 480px) {
  .u-hide\@xs {
    display: none !important;
  }
}
@media (min-width: 481px) {
  .u-hide\@xs-up {
    display: none !important;
  }
}
/* ------------------------------------*\
    #NO-CARPET
\*------------------------------------ */
/**
 * A utility class to eliminate the `text-decoration: underline`, set by the
 * `<a>` element.
 */
.u-no-carpet {
  text-decoration: none !important;
}

/* ------------------------------------*\
    #ROUND
\*------------------------------------ */
/**
 * A utility class to make elements ‘round’.
 */
.u-round {
  border-radius: 50%;
}

/* ------------------------------------*\
    #SPACING SETTINGS
\*------------------------------------ */
/* ------------------------------------*\
    #SPACINGS
\*------------------------------------ */
/**
 * Margin and padding helper classes. Use these to tweak layout on a micro level.
 */
.u-m-xxsmall {
  margin: 4px !important;
}

@media (max-width: 1920px) {
  .u-m-xxsmall\@xxl {
    margin: 4px !important;
  }
}
@media (max-width: 1600px) {
  .u-m-xxsmall\@xl {
    margin: 4px !important;
  }
}
@media (max-width: 1280px) {
  .u-m-xxsmall\@l {
    margin: 4px !important;
  }
}
@media (max-width: 960px) {
  .u-m-xxsmall\@m {
    margin: 4px !important;
  }
}
@media (max-width: 720px) {
  .u-m-xxsmall\@s {
    margin: 4px !important;
  }
}
@media (max-width: 480px) {
  .u-m-xxsmall\@xs {
    margin: 4px !important;
  }
}
.u-m-xsmall {
  margin: 8px !important;
}

@media (max-width: 1920px) {
  .u-m-xsmall\@xxl {
    margin: 8px !important;
  }
}
@media (max-width: 1600px) {
  .u-m-xsmall\@xl {
    margin: 8px !important;
  }
}
@media (max-width: 1280px) {
  .u-m-xsmall\@l {
    margin: 8px !important;
  }
}
@media (max-width: 960px) {
  .u-m-xsmall\@m {
    margin: 8px !important;
  }
}
@media (max-width: 720px) {
  .u-m-xsmall\@s {
    margin: 8px !important;
  }
}
@media (max-width: 480px) {
  .u-m-xsmall\@xs {
    margin: 8px !important;
  }
}
.u-m-small {
  margin: 16px !important;
}

@media (max-width: 1920px) {
  .u-m-small\@xxl {
    margin: 16px !important;
  }
}
@media (max-width: 1600px) {
  .u-m-small\@xl {
    margin: 16px !important;
  }
}
@media (max-width: 1280px) {
  .u-m-small\@l {
    margin: 16px !important;
  }
}
@media (max-width: 960px) {
  .u-m-small\@m {
    margin: 16px !important;
  }
}
@media (max-width: 720px) {
  .u-m-small\@s {
    margin: 16px !important;
  }
}
@media (max-width: 480px) {
  .u-m-small\@xs {
    margin: 16px !important;
  }
}
.u-m {
  margin: 24px !important;
}

@media (max-width: 1920px) {
  .u-m\@xxl {
    margin: 24px !important;
  }
}
@media (max-width: 1600px) {
  .u-m\@xl {
    margin: 24px !important;
  }
}
@media (max-width: 1280px) {
  .u-m\@l {
    margin: 24px !important;
  }
}
@media (max-width: 960px) {
  .u-m\@m {
    margin: 24px !important;
  }
}
@media (max-width: 720px) {
  .u-m\@s {
    margin: 24px !important;
  }
}
@media (max-width: 480px) {
  .u-m\@xs {
    margin: 24px !important;
  }
}
.u-m-large {
  margin: 32px !important;
}

@media (max-width: 1920px) {
  .u-m-large\@xxl {
    margin: 32px !important;
  }
}
@media (max-width: 1600px) {
  .u-m-large\@xl {
    margin: 32px !important;
  }
}
@media (max-width: 1280px) {
  .u-m-large\@l {
    margin: 32px !important;
  }
}
@media (max-width: 960px) {
  .u-m-large\@m {
    margin: 32px !important;
  }
}
@media (max-width: 720px) {
  .u-m-large\@s {
    margin: 32px !important;
  }
}
@media (max-width: 480px) {
  .u-m-large\@xs {
    margin: 32px !important;
  }
}
.u-m-xlarge {
  margin: 48px !important;
}

@media (max-width: 1920px) {
  .u-m-xlarge\@xxl {
    margin: 48px !important;
  }
}
@media (max-width: 1600px) {
  .u-m-xlarge\@xl {
    margin: 48px !important;
  }
}
@media (max-width: 1280px) {
  .u-m-xlarge\@l {
    margin: 48px !important;
  }
}
@media (max-width: 960px) {
  .u-m-xlarge\@m {
    margin: 48px !important;
  }
}
@media (max-width: 720px) {
  .u-m-xlarge\@s {
    margin: 48px !important;
  }
}
@media (max-width: 480px) {
  .u-m-xlarge\@xs {
    margin: 48px !important;
  }
}
.u-m-none {
  margin: 0 !important;
}

@media (max-width: 1920px) {
  .u-m-none\@xxl {
    margin: 0 !important;
  }
}
@media (max-width: 1600px) {
  .u-m-none\@xl {
    margin: 0 !important;
  }
}
@media (max-width: 1280px) {
  .u-m-none\@l {
    margin: 0 !important;
  }
}
@media (max-width: 960px) {
  .u-m-none\@m {
    margin: 0 !important;
  }
}
@media (max-width: 720px) {
  .u-m-none\@s {
    margin: 0 !important;
  }
}
@media (max-width: 480px) {
  .u-m-none\@xs {
    margin: 0 !important;
  }
}
.u-mt-xxsmall {
  margin-top: 4px !important;
}

@media (max-width: 1920px) {
  .u-mt-xxsmall\@xxl {
    margin-top: 4px !important;
  }
}
@media (max-width: 1600px) {
  .u-mt-xxsmall\@xl {
    margin-top: 4px !important;
  }
}
@media (max-width: 1280px) {
  .u-mt-xxsmall\@l {
    margin-top: 4px !important;
  }
}
@media (max-width: 960px) {
  .u-mt-xxsmall\@m {
    margin-top: 4px !important;
  }
}
@media (max-width: 720px) {
  .u-mt-xxsmall\@s {
    margin-top: 4px !important;
  }
}
@media (max-width: 480px) {
  .u-mt-xxsmall\@xs {
    margin-top: 4px !important;
  }
}
.u-mt-xsmall {
  margin-top: 8px !important;
}

@media (max-width: 1920px) {
  .u-mt-xsmall\@xxl {
    margin-top: 8px !important;
  }
}
@media (max-width: 1600px) {
  .u-mt-xsmall\@xl {
    margin-top: 8px !important;
  }
}
@media (max-width: 1280px) {
  .u-mt-xsmall\@l {
    margin-top: 8px !important;
  }
}
@media (max-width: 960px) {
  .u-mt-xsmall\@m {
    margin-top: 8px !important;
  }
}
@media (max-width: 720px) {
  .u-mt-xsmall\@s {
    margin-top: 8px !important;
  }
}
@media (max-width: 480px) {
  .u-mt-xsmall\@xs {
    margin-top: 8px !important;
  }
}
.u-mt-small {
  margin-top: 16px !important;
}

@media (max-width: 1920px) {
  .u-mt-small\@xxl {
    margin-top: 16px !important;
  }
}
@media (max-width: 1600px) {
  .u-mt-small\@xl {
    margin-top: 16px !important;
  }
}
@media (max-width: 1280px) {
  .u-mt-small\@l {
    margin-top: 16px !important;
  }
}
@media (max-width: 960px) {
  .u-mt-small\@m {
    margin-top: 16px !important;
  }
}
@media (max-width: 720px) {
  .u-mt-small\@s {
    margin-top: 16px !important;
  }
}
@media (max-width: 480px) {
  .u-mt-small\@xs {
    margin-top: 16px !important;
  }
}
.u-mt {
  margin-top: 24px !important;
}

@media (max-width: 1920px) {
  .u-mt\@xxl {
    margin-top: 24px !important;
  }
}
@media (max-width: 1600px) {
  .u-mt\@xl {
    margin-top: 24px !important;
  }
}
@media (max-width: 1280px) {
  .u-mt\@l {
    margin-top: 24px !important;
  }
}
@media (max-width: 960px) {
  .u-mt\@m {
    margin-top: 24px !important;
  }
}
@media (max-width: 720px) {
  .u-mt\@s {
    margin-top: 24px !important;
  }
}
@media (max-width: 480px) {
  .u-mt\@xs {
    margin-top: 24px !important;
  }
}
.u-mt-large {
  margin-top: 32px !important;
}

@media (max-width: 1920px) {
  .u-mt-large\@xxl {
    margin-top: 32px !important;
  }
}
@media (max-width: 1600px) {
  .u-mt-large\@xl {
    margin-top: 32px !important;
  }
}
@media (max-width: 1280px) {
  .u-mt-large\@l {
    margin-top: 32px !important;
  }
}
@media (max-width: 960px) {
  .u-mt-large\@m {
    margin-top: 32px !important;
  }
}
@media (max-width: 720px) {
  .u-mt-large\@s {
    margin-top: 32px !important;
  }
}
@media (max-width: 480px) {
  .u-mt-large\@xs {
    margin-top: 32px !important;
  }
}
.u-mt-xlarge {
  margin-top: 48px !important;
}

@media (max-width: 1920px) {
  .u-mt-xlarge\@xxl {
    margin-top: 48px !important;
  }
}
@media (max-width: 1600px) {
  .u-mt-xlarge\@xl {
    margin-top: 48px !important;
  }
}
@media (max-width: 1280px) {
  .u-mt-xlarge\@l {
    margin-top: 48px !important;
  }
}
@media (max-width: 960px) {
  .u-mt-xlarge\@m {
    margin-top: 48px !important;
  }
}
@media (max-width: 720px) {
  .u-mt-xlarge\@s {
    margin-top: 48px !important;
  }
}
@media (max-width: 480px) {
  .u-mt-xlarge\@xs {
    margin-top: 48px !important;
  }
}
.u-mt-none {
  margin-top: 0 !important;
}

@media (max-width: 1920px) {
  .u-mt-none\@xxl {
    margin-top: 0 !important;
  }
}
@media (max-width: 1600px) {
  .u-mt-none\@xl {
    margin-top: 0 !important;
  }
}
@media (max-width: 1280px) {
  .u-mt-none\@l {
    margin-top: 0 !important;
  }
}
@media (max-width: 960px) {
  .u-mt-none\@m {
    margin-top: 0 !important;
  }
}
@media (max-width: 720px) {
  .u-mt-none\@s {
    margin-top: 0 !important;
  }
}
@media (max-width: 480px) {
  .u-mt-none\@xs {
    margin-top: 0 !important;
  }
}
.u-mr-xxsmall {
  margin-right: 4px !important;
}

@media (max-width: 1920px) {
  .u-mr-xxsmall\@xxl {
    margin-right: 4px !important;
  }
}
@media (max-width: 1600px) {
  .u-mr-xxsmall\@xl {
    margin-right: 4px !important;
  }
}
@media (max-width: 1280px) {
  .u-mr-xxsmall\@l {
    margin-right: 4px !important;
  }
}
@media (max-width: 960px) {
  .u-mr-xxsmall\@m {
    margin-right: 4px !important;
  }
}
@media (max-width: 720px) {
  .u-mr-xxsmall\@s {
    margin-right: 4px !important;
  }
}
@media (max-width: 480px) {
  .u-mr-xxsmall\@xs {
    margin-right: 4px !important;
  }
}
.u-mr-xsmall {
  margin-right: 8px !important;
}

@media (max-width: 1920px) {
  .u-mr-xsmall\@xxl {
    margin-right: 8px !important;
  }
}
@media (max-width: 1600px) {
  .u-mr-xsmall\@xl {
    margin-right: 8px !important;
  }
}
@media (max-width: 1280px) {
  .u-mr-xsmall\@l {
    margin-right: 8px !important;
  }
}
@media (max-width: 960px) {
  .u-mr-xsmall\@m {
    margin-right: 8px !important;
  }
}
@media (max-width: 720px) {
  .u-mr-xsmall\@s {
    margin-right: 8px !important;
  }
}
@media (max-width: 480px) {
  .u-mr-xsmall\@xs {
    margin-right: 8px !important;
  }
}
.u-mr-small {
  margin-right: 16px !important;
}

@media (max-width: 1920px) {
  .u-mr-small\@xxl {
    margin-right: 16px !important;
  }
}
@media (max-width: 1600px) {
  .u-mr-small\@xl {
    margin-right: 16px !important;
  }
}
@media (max-width: 1280px) {
  .u-mr-small\@l {
    margin-right: 16px !important;
  }
}
@media (max-width: 960px) {
  .u-mr-small\@m {
    margin-right: 16px !important;
  }
}
@media (max-width: 720px) {
  .u-mr-small\@s {
    margin-right: 16px !important;
  }
}
@media (max-width: 480px) {
  .u-mr-small\@xs {
    margin-right: 16px !important;
  }
}
.u-mr {
  margin-right: 24px !important;
}

@media (max-width: 1920px) {
  .u-mr\@xxl {
    margin-right: 24px !important;
  }
}
@media (max-width: 1600px) {
  .u-mr\@xl {
    margin-right: 24px !important;
  }
}
@media (max-width: 1280px) {
  .u-mr\@l {
    margin-right: 24px !important;
  }
}
@media (max-width: 960px) {
  .u-mr\@m {
    margin-right: 24px !important;
  }
}
@media (max-width: 720px) {
  .u-mr\@s {
    margin-right: 24px !important;
  }
}
@media (max-width: 480px) {
  .u-mr\@xs {
    margin-right: 24px !important;
  }
}
.u-mr-large {
  margin-right: 32px !important;
}

@media (max-width: 1920px) {
  .u-mr-large\@xxl {
    margin-right: 32px !important;
  }
}
@media (max-width: 1600px) {
  .u-mr-large\@xl {
    margin-right: 32px !important;
  }
}
@media (max-width: 1280px) {
  .u-mr-large\@l {
    margin-right: 32px !important;
  }
}
@media (max-width: 960px) {
  .u-mr-large\@m {
    margin-right: 32px !important;
  }
}
@media (max-width: 720px) {
  .u-mr-large\@s {
    margin-right: 32px !important;
  }
}
@media (max-width: 480px) {
  .u-mr-large\@xs {
    margin-right: 32px !important;
  }
}
.u-mr-xlarge {
  margin-right: 48px !important;
}

@media (max-width: 1920px) {
  .u-mr-xlarge\@xxl {
    margin-right: 48px !important;
  }
}
@media (max-width: 1600px) {
  .u-mr-xlarge\@xl {
    margin-right: 48px !important;
  }
}
@media (max-width: 1280px) {
  .u-mr-xlarge\@l {
    margin-right: 48px !important;
  }
}
@media (max-width: 960px) {
  .u-mr-xlarge\@m {
    margin-right: 48px !important;
  }
}
@media (max-width: 720px) {
  .u-mr-xlarge\@s {
    margin-right: 48px !important;
  }
}
@media (max-width: 480px) {
  .u-mr-xlarge\@xs {
    margin-right: 48px !important;
  }
}
.u-mr-none {
  margin-right: 0 !important;
}

@media (max-width: 1920px) {
  .u-mr-none\@xxl {
    margin-right: 0 !important;
  }
}
@media (max-width: 1600px) {
  .u-mr-none\@xl {
    margin-right: 0 !important;
  }
}
@media (max-width: 1280px) {
  .u-mr-none\@l {
    margin-right: 0 !important;
  }
}
@media (max-width: 960px) {
  .u-mr-none\@m {
    margin-right: 0 !important;
  }
}
@media (max-width: 720px) {
  .u-mr-none\@s {
    margin-right: 0 !important;
  }
}
@media (max-width: 480px) {
  .u-mr-none\@xs {
    margin-right: 0 !important;
  }
}
.u-mb-xxsmall {
  margin-bottom: 4px !important;
}

@media (max-width: 1920px) {
  .u-mb-xxsmall\@xxl {
    margin-bottom: 4px !important;
  }
}
@media (max-width: 1600px) {
  .u-mb-xxsmall\@xl {
    margin-bottom: 4px !important;
  }
}
@media (max-width: 1280px) {
  .u-mb-xxsmall\@l {
    margin-bottom: 4px !important;
  }
}
@media (max-width: 960px) {
  .u-mb-xxsmall\@m {
    margin-bottom: 4px !important;
  }
}
@media (max-width: 720px) {
  .u-mb-xxsmall\@s {
    margin-bottom: 4px !important;
  }
}
@media (max-width: 480px) {
  .u-mb-xxsmall\@xs {
    margin-bottom: 4px !important;
  }
}
.u-mb-xsmall {
  margin-bottom: 8px !important;
}

@media (max-width: 1920px) {
  .u-mb-xsmall\@xxl {
    margin-bottom: 8px !important;
  }
}
@media (max-width: 1600px) {
  .u-mb-xsmall\@xl {
    margin-bottom: 8px !important;
  }
}
@media (max-width: 1280px) {
  .u-mb-xsmall\@l {
    margin-bottom: 8px !important;
  }
}
@media (max-width: 960px) {
  .u-mb-xsmall\@m {
    margin-bottom: 8px !important;
  }
}
@media (max-width: 720px) {
  .u-mb-xsmall\@s {
    margin-bottom: 8px !important;
  }
}
@media (max-width: 480px) {
  .u-mb-xsmall\@xs {
    margin-bottom: 8px !important;
  }
}
.u-mb-small {
  margin-bottom: 16px !important;
}

@media (max-width: 1920px) {
  .u-mb-small\@xxl {
    margin-bottom: 16px !important;
  }
}
@media (max-width: 1600px) {
  .u-mb-small\@xl {
    margin-bottom: 16px !important;
  }
}
@media (max-width: 1280px) {
  .u-mb-small\@l {
    margin-bottom: 16px !important;
  }
}
@media (max-width: 960px) {
  .u-mb-small\@m {
    margin-bottom: 16px !important;
  }
}
@media (max-width: 720px) {
  .u-mb-small\@s {
    margin-bottom: 16px !important;
  }
}
@media (max-width: 480px) {
  .u-mb-small\@xs {
    margin-bottom: 16px !important;
  }
}
.u-mb {
  margin-bottom: 24px !important;
}

@media (max-width: 1920px) {
  .u-mb\@xxl {
    margin-bottom: 24px !important;
  }
}
@media (max-width: 1600px) {
  .u-mb\@xl {
    margin-bottom: 24px !important;
  }
}
@media (max-width: 1280px) {
  .u-mb\@l {
    margin-bottom: 24px !important;
  }
}
@media (max-width: 960px) {
  .u-mb\@m {
    margin-bottom: 24px !important;
  }
}
@media (max-width: 720px) {
  .u-mb\@s {
    margin-bottom: 24px !important;
  }
}
@media (max-width: 480px) {
  .u-mb\@xs {
    margin-bottom: 24px !important;
  }
}
.u-mb-large {
  margin-bottom: 32px !important;
}

@media (max-width: 1920px) {
  .u-mb-large\@xxl {
    margin-bottom: 32px !important;
  }
}
@media (max-width: 1600px) {
  .u-mb-large\@xl {
    margin-bottom: 32px !important;
  }
}
@media (max-width: 1280px) {
  .u-mb-large\@l {
    margin-bottom: 32px !important;
  }
}
@media (max-width: 960px) {
  .u-mb-large\@m {
    margin-bottom: 32px !important;
  }
}
@media (max-width: 720px) {
  .u-mb-large\@s {
    margin-bottom: 32px !important;
  }
}
@media (max-width: 480px) {
  .u-mb-large\@xs {
    margin-bottom: 32px !important;
  }
}
.u-mb-xlarge {
  margin-bottom: 48px !important;
}

@media (max-width: 1920px) {
  .u-mb-xlarge\@xxl {
    margin-bottom: 48px !important;
  }
}
@media (max-width: 1600px) {
  .u-mb-xlarge\@xl {
    margin-bottom: 48px !important;
  }
}
@media (max-width: 1280px) {
  .u-mb-xlarge\@l {
    margin-bottom: 48px !important;
  }
}
@media (max-width: 960px) {
  .u-mb-xlarge\@m {
    margin-bottom: 48px !important;
  }
}
@media (max-width: 720px) {
  .u-mb-xlarge\@s {
    margin-bottom: 48px !important;
  }
}
@media (max-width: 480px) {
  .u-mb-xlarge\@xs {
    margin-bottom: 48px !important;
  }
}
.u-mb-none {
  margin-bottom: 0 !important;
}

@media (max-width: 1920px) {
  .u-mb-none\@xxl {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 1600px) {
  .u-mb-none\@xl {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 1280px) {
  .u-mb-none\@l {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 960px) {
  .u-mb-none\@m {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 720px) {
  .u-mb-none\@s {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 480px) {
  .u-mb-none\@xs {
    margin-bottom: 0 !important;
  }
}
.u-ml-xxsmall {
  margin-left: 4px !important;
}

@media (max-width: 1920px) {
  .u-ml-xxsmall\@xxl {
    margin-left: 4px !important;
  }
}
@media (max-width: 1600px) {
  .u-ml-xxsmall\@xl {
    margin-left: 4px !important;
  }
}
@media (max-width: 1280px) {
  .u-ml-xxsmall\@l {
    margin-left: 4px !important;
  }
}
@media (max-width: 960px) {
  .u-ml-xxsmall\@m {
    margin-left: 4px !important;
  }
}
@media (max-width: 720px) {
  .u-ml-xxsmall\@s {
    margin-left: 4px !important;
  }
}
@media (max-width: 480px) {
  .u-ml-xxsmall\@xs {
    margin-left: 4px !important;
  }
}
.u-ml-xsmall {
  margin-left: 8px !important;
}

@media (max-width: 1920px) {
  .u-ml-xsmall\@xxl {
    margin-left: 8px !important;
  }
}
@media (max-width: 1600px) {
  .u-ml-xsmall\@xl {
    margin-left: 8px !important;
  }
}
@media (max-width: 1280px) {
  .u-ml-xsmall\@l {
    margin-left: 8px !important;
  }
}
@media (max-width: 960px) {
  .u-ml-xsmall\@m {
    margin-left: 8px !important;
  }
}
@media (max-width: 720px) {
  .u-ml-xsmall\@s {
    margin-left: 8px !important;
  }
}
@media (max-width: 480px) {
  .u-ml-xsmall\@xs {
    margin-left: 8px !important;
  }
}
.u-ml-small {
  margin-left: 16px !important;
}

@media (max-width: 1920px) {
  .u-ml-small\@xxl {
    margin-left: 16px !important;
  }
}
@media (max-width: 1600px) {
  .u-ml-small\@xl {
    margin-left: 16px !important;
  }
}
@media (max-width: 1280px) {
  .u-ml-small\@l {
    margin-left: 16px !important;
  }
}
@media (max-width: 960px) {
  .u-ml-small\@m {
    margin-left: 16px !important;
  }
}
@media (max-width: 720px) {
  .u-ml-small\@s {
    margin-left: 16px !important;
  }
}
@media (max-width: 480px) {
  .u-ml-small\@xs {
    margin-left: 16px !important;
  }
}
.u-ml {
  margin-left: 24px !important;
}

@media (max-width: 1920px) {
  .u-ml\@xxl {
    margin-left: 24px !important;
  }
}
@media (max-width: 1600px) {
  .u-ml\@xl {
    margin-left: 24px !important;
  }
}
@media (max-width: 1280px) {
  .u-ml\@l {
    margin-left: 24px !important;
  }
}
@media (max-width: 960px) {
  .u-ml\@m {
    margin-left: 24px !important;
  }
}
@media (max-width: 720px) {
  .u-ml\@s {
    margin-left: 24px !important;
  }
}
@media (max-width: 480px) {
  .u-ml\@xs {
    margin-left: 24px !important;
  }
}
.u-ml-large {
  margin-left: 32px !important;
}

@media (max-width: 1920px) {
  .u-ml-large\@xxl {
    margin-left: 32px !important;
  }
}
@media (max-width: 1600px) {
  .u-ml-large\@xl {
    margin-left: 32px !important;
  }
}
@media (max-width: 1280px) {
  .u-ml-large\@l {
    margin-left: 32px !important;
  }
}
@media (max-width: 960px) {
  .u-ml-large\@m {
    margin-left: 32px !important;
  }
}
@media (max-width: 720px) {
  .u-ml-large\@s {
    margin-left: 32px !important;
  }
}
@media (max-width: 480px) {
  .u-ml-large\@xs {
    margin-left: 32px !important;
  }
}
.u-ml-xlarge {
  margin-left: 48px !important;
}

@media (max-width: 1920px) {
  .u-ml-xlarge\@xxl {
    margin-left: 48px !important;
  }
}
@media (max-width: 1600px) {
  .u-ml-xlarge\@xl {
    margin-left: 48px !important;
  }
}
@media (max-width: 1280px) {
  .u-ml-xlarge\@l {
    margin-left: 48px !important;
  }
}
@media (max-width: 960px) {
  .u-ml-xlarge\@m {
    margin-left: 48px !important;
  }
}
@media (max-width: 720px) {
  .u-ml-xlarge\@s {
    margin-left: 48px !important;
  }
}
@media (max-width: 480px) {
  .u-ml-xlarge\@xs {
    margin-left: 48px !important;
  }
}
.u-ml-none {
  margin-left: 0 !important;
}

@media (max-width: 1920px) {
  .u-ml-none\@xxl {
    margin-left: 0 !important;
  }
}
@media (max-width: 1600px) {
  .u-ml-none\@xl {
    margin-left: 0 !important;
  }
}
@media (max-width: 1280px) {
  .u-ml-none\@l {
    margin-left: 0 !important;
  }
}
@media (max-width: 960px) {
  .u-ml-none\@m {
    margin-left: 0 !important;
  }
}
@media (max-width: 720px) {
  .u-ml-none\@s {
    margin-left: 0 !important;
  }
}
@media (max-width: 480px) {
  .u-ml-none\@xs {
    margin-left: 0 !important;
  }
}
.u-mh-xxsmall {
  margin-left: 4px !important;
  margin-right: 4px !important;
}

@media (max-width: 1920px) {
  .u-mh-xxsmall\@xxl {
    margin-left: 4px !important;
    margin-right: 4px !important;
  }
}
@media (max-width: 1600px) {
  .u-mh-xxsmall\@xl {
    margin-left: 4px !important;
    margin-right: 4px !important;
  }
}
@media (max-width: 1280px) {
  .u-mh-xxsmall\@l {
    margin-left: 4px !important;
    margin-right: 4px !important;
  }
}
@media (max-width: 960px) {
  .u-mh-xxsmall\@m {
    margin-left: 4px !important;
    margin-right: 4px !important;
  }
}
@media (max-width: 720px) {
  .u-mh-xxsmall\@s {
    margin-left: 4px !important;
    margin-right: 4px !important;
  }
}
@media (max-width: 480px) {
  .u-mh-xxsmall\@xs {
    margin-left: 4px !important;
    margin-right: 4px !important;
  }
}
.u-mh-xsmall {
  margin-left: 8px !important;
  margin-right: 8px !important;
}

@media (max-width: 1920px) {
  .u-mh-xsmall\@xxl {
    margin-left: 8px !important;
    margin-right: 8px !important;
  }
}
@media (max-width: 1600px) {
  .u-mh-xsmall\@xl {
    margin-left: 8px !important;
    margin-right: 8px !important;
  }
}
@media (max-width: 1280px) {
  .u-mh-xsmall\@l {
    margin-left: 8px !important;
    margin-right: 8px !important;
  }
}
@media (max-width: 960px) {
  .u-mh-xsmall\@m {
    margin-left: 8px !important;
    margin-right: 8px !important;
  }
}
@media (max-width: 720px) {
  .u-mh-xsmall\@s {
    margin-left: 8px !important;
    margin-right: 8px !important;
  }
}
@media (max-width: 480px) {
  .u-mh-xsmall\@xs {
    margin-left: 8px !important;
    margin-right: 8px !important;
  }
}
.u-mh-small {
  margin-left: 16px !important;
  margin-right: 16px !important;
}

@media (max-width: 1920px) {
  .u-mh-small\@xxl {
    margin-left: 16px !important;
    margin-right: 16px !important;
  }
}
@media (max-width: 1600px) {
  .u-mh-small\@xl {
    margin-left: 16px !important;
    margin-right: 16px !important;
  }
}
@media (max-width: 1280px) {
  .u-mh-small\@l {
    margin-left: 16px !important;
    margin-right: 16px !important;
  }
}
@media (max-width: 960px) {
  .u-mh-small\@m {
    margin-left: 16px !important;
    margin-right: 16px !important;
  }
}
@media (max-width: 720px) {
  .u-mh-small\@s {
    margin-left: 16px !important;
    margin-right: 16px !important;
  }
}
@media (max-width: 480px) {
  .u-mh-small\@xs {
    margin-left: 16px !important;
    margin-right: 16px !important;
  }
}
.u-mh {
  margin-left: 24px !important;
  margin-right: 24px !important;
}

@media (max-width: 1920px) {
  .u-mh\@xxl {
    margin-left: 24px !important;
    margin-right: 24px !important;
  }
}
@media (max-width: 1600px) {
  .u-mh\@xl {
    margin-left: 24px !important;
    margin-right: 24px !important;
  }
}
@media (max-width: 1280px) {
  .u-mh\@l {
    margin-left: 24px !important;
    margin-right: 24px !important;
  }
}
@media (max-width: 960px) {
  .u-mh\@m {
    margin-left: 24px !important;
    margin-right: 24px !important;
  }
}
@media (max-width: 720px) {
  .u-mh\@s {
    margin-left: 24px !important;
    margin-right: 24px !important;
  }
}
@media (max-width: 480px) {
  .u-mh\@xs {
    margin-left: 24px !important;
    margin-right: 24px !important;
  }
}
.u-mh-large {
  margin-left: 32px !important;
  margin-right: 32px !important;
}

@media (max-width: 1920px) {
  .u-mh-large\@xxl {
    margin-left: 32px !important;
    margin-right: 32px !important;
  }
}
@media (max-width: 1600px) {
  .u-mh-large\@xl {
    margin-left: 32px !important;
    margin-right: 32px !important;
  }
}
@media (max-width: 1280px) {
  .u-mh-large\@l {
    margin-left: 32px !important;
    margin-right: 32px !important;
  }
}
@media (max-width: 960px) {
  .u-mh-large\@m {
    margin-left: 32px !important;
    margin-right: 32px !important;
  }
}
@media (max-width: 720px) {
  .u-mh-large\@s {
    margin-left: 32px !important;
    margin-right: 32px !important;
  }
}
@media (max-width: 480px) {
  .u-mh-large\@xs {
    margin-left: 32px !important;
    margin-right: 32px !important;
  }
}
.u-mh-xlarge {
  margin-left: 48px !important;
  margin-right: 48px !important;
}

@media (max-width: 1920px) {
  .u-mh-xlarge\@xxl {
    margin-left: 48px !important;
    margin-right: 48px !important;
  }
}
@media (max-width: 1600px) {
  .u-mh-xlarge\@xl {
    margin-left: 48px !important;
    margin-right: 48px !important;
  }
}
@media (max-width: 1280px) {
  .u-mh-xlarge\@l {
    margin-left: 48px !important;
    margin-right: 48px !important;
  }
}
@media (max-width: 960px) {
  .u-mh-xlarge\@m {
    margin-left: 48px !important;
    margin-right: 48px !important;
  }
}
@media (max-width: 720px) {
  .u-mh-xlarge\@s {
    margin-left: 48px !important;
    margin-right: 48px !important;
  }
}
@media (max-width: 480px) {
  .u-mh-xlarge\@xs {
    margin-left: 48px !important;
    margin-right: 48px !important;
  }
}
.u-mh-none {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

@media (max-width: 1920px) {
  .u-mh-none\@xxl {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}
@media (max-width: 1600px) {
  .u-mh-none\@xl {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}
@media (max-width: 1280px) {
  .u-mh-none\@l {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}
@media (max-width: 960px) {
  .u-mh-none\@m {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}
@media (max-width: 720px) {
  .u-mh-none\@s {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}
@media (max-width: 480px) {
  .u-mh-none\@xs {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}
.u-mv-xxsmall {
  margin-top: 4px !important;
  margin-bottom: 4px !important;
}

@media (max-width: 1920px) {
  .u-mv-xxsmall\@xxl {
    margin-top: 4px !important;
    margin-bottom: 4px !important;
  }
}
@media (max-width: 1600px) {
  .u-mv-xxsmall\@xl {
    margin-top: 4px !important;
    margin-bottom: 4px !important;
  }
}
@media (max-width: 1280px) {
  .u-mv-xxsmall\@l {
    margin-top: 4px !important;
    margin-bottom: 4px !important;
  }
}
@media (max-width: 960px) {
  .u-mv-xxsmall\@m {
    margin-top: 4px !important;
    margin-bottom: 4px !important;
  }
}
@media (max-width: 720px) {
  .u-mv-xxsmall\@s {
    margin-top: 4px !important;
    margin-bottom: 4px !important;
  }
}
@media (max-width: 480px) {
  .u-mv-xxsmall\@xs {
    margin-top: 4px !important;
    margin-bottom: 4px !important;
  }
}
.u-mv-xsmall {
  margin-top: 8px !important;
  margin-bottom: 8px !important;
}

@media (max-width: 1920px) {
  .u-mv-xsmall\@xxl {
    margin-top: 8px !important;
    margin-bottom: 8px !important;
  }
}
@media (max-width: 1600px) {
  .u-mv-xsmall\@xl {
    margin-top: 8px !important;
    margin-bottom: 8px !important;
  }
}
@media (max-width: 1280px) {
  .u-mv-xsmall\@l {
    margin-top: 8px !important;
    margin-bottom: 8px !important;
  }
}
@media (max-width: 960px) {
  .u-mv-xsmall\@m {
    margin-top: 8px !important;
    margin-bottom: 8px !important;
  }
}
@media (max-width: 720px) {
  .u-mv-xsmall\@s {
    margin-top: 8px !important;
    margin-bottom: 8px !important;
  }
}
@media (max-width: 480px) {
  .u-mv-xsmall\@xs {
    margin-top: 8px !important;
    margin-bottom: 8px !important;
  }
}
.u-mv-small {
  margin-top: 16px !important;
  margin-bottom: 16px !important;
}

@media (max-width: 1920px) {
  .u-mv-small\@xxl {
    margin-top: 16px !important;
    margin-bottom: 16px !important;
  }
}
@media (max-width: 1600px) {
  .u-mv-small\@xl {
    margin-top: 16px !important;
    margin-bottom: 16px !important;
  }
}
@media (max-width: 1280px) {
  .u-mv-small\@l {
    margin-top: 16px !important;
    margin-bottom: 16px !important;
  }
}
@media (max-width: 960px) {
  .u-mv-small\@m {
    margin-top: 16px !important;
    margin-bottom: 16px !important;
  }
}
@media (max-width: 720px) {
  .u-mv-small\@s {
    margin-top: 16px !important;
    margin-bottom: 16px !important;
  }
}
@media (max-width: 480px) {
  .u-mv-small\@xs {
    margin-top: 16px !important;
    margin-bottom: 16px !important;
  }
}
.u-mv {
  margin-top: 24px !important;
  margin-bottom: 24px !important;
}

@media (max-width: 1920px) {
  .u-mv\@xxl {
    margin-top: 24px !important;
    margin-bottom: 24px !important;
  }
}
@media (max-width: 1600px) {
  .u-mv\@xl {
    margin-top: 24px !important;
    margin-bottom: 24px !important;
  }
}
@media (max-width: 1280px) {
  .u-mv\@l {
    margin-top: 24px !important;
    margin-bottom: 24px !important;
  }
}
@media (max-width: 960px) {
  .u-mv\@m {
    margin-top: 24px !important;
    margin-bottom: 24px !important;
  }
}
@media (max-width: 720px) {
  .u-mv\@s {
    margin-top: 24px !important;
    margin-bottom: 24px !important;
  }
}
@media (max-width: 480px) {
  .u-mv\@xs {
    margin-top: 24px !important;
    margin-bottom: 24px !important;
  }
}
.u-mv-large {
  margin-top: 32px !important;
  margin-bottom: 32px !important;
}

@media (max-width: 1920px) {
  .u-mv-large\@xxl {
    margin-top: 32px !important;
    margin-bottom: 32px !important;
  }
}
@media (max-width: 1600px) {
  .u-mv-large\@xl {
    margin-top: 32px !important;
    margin-bottom: 32px !important;
  }
}
@media (max-width: 1280px) {
  .u-mv-large\@l {
    margin-top: 32px !important;
    margin-bottom: 32px !important;
  }
}
@media (max-width: 960px) {
  .u-mv-large\@m {
    margin-top: 32px !important;
    margin-bottom: 32px !important;
  }
}
@media (max-width: 720px) {
  .u-mv-large\@s {
    margin-top: 32px !important;
    margin-bottom: 32px !important;
  }
}
@media (max-width: 480px) {
  .u-mv-large\@xs {
    margin-top: 32px !important;
    margin-bottom: 32px !important;
  }
}
.u-mv-xlarge {
  margin-top: 48px !important;
  margin-bottom: 48px !important;
}

@media (max-width: 1920px) {
  .u-mv-xlarge\@xxl {
    margin-top: 48px !important;
    margin-bottom: 48px !important;
  }
}
@media (max-width: 1600px) {
  .u-mv-xlarge\@xl {
    margin-top: 48px !important;
    margin-bottom: 48px !important;
  }
}
@media (max-width: 1280px) {
  .u-mv-xlarge\@l {
    margin-top: 48px !important;
    margin-bottom: 48px !important;
  }
}
@media (max-width: 960px) {
  .u-mv-xlarge\@m {
    margin-top: 48px !important;
    margin-bottom: 48px !important;
  }
}
@media (max-width: 720px) {
  .u-mv-xlarge\@s {
    margin-top: 48px !important;
    margin-bottom: 48px !important;
  }
}
@media (max-width: 480px) {
  .u-mv-xlarge\@xs {
    margin-top: 48px !important;
    margin-bottom: 48px !important;
  }
}
.u-mv-none {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

@media (max-width: 1920px) {
  .u-mv-none\@xxl {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
}
@media (max-width: 1600px) {
  .u-mv-none\@xl {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
}
@media (max-width: 1280px) {
  .u-mv-none\@l {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
}
@media (max-width: 960px) {
  .u-mv-none\@m {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
}
@media (max-width: 720px) {
  .u-mv-none\@s {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
}
@media (max-width: 480px) {
  .u-mv-none\@xs {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
}
.u-p-xxsmall {
  padding: 4px !important;
}

@media (max-width: 1920px) {
  .u-p-xxsmall\@xxl {
    padding: 4px !important;
  }
}
@media (max-width: 1600px) {
  .u-p-xxsmall\@xl {
    padding: 4px !important;
  }
}
@media (max-width: 1280px) {
  .u-p-xxsmall\@l {
    padding: 4px !important;
  }
}
@media (max-width: 960px) {
  .u-p-xxsmall\@m {
    padding: 4px !important;
  }
}
@media (max-width: 720px) {
  .u-p-xxsmall\@s {
    padding: 4px !important;
  }
}
@media (max-width: 480px) {
  .u-p-xxsmall\@xs {
    padding: 4px !important;
  }
}
.u-p-xsmall {
  padding: 8px !important;
}

@media (max-width: 1920px) {
  .u-p-xsmall\@xxl {
    padding: 8px !important;
  }
}
@media (max-width: 1600px) {
  .u-p-xsmall\@xl {
    padding: 8px !important;
  }
}
@media (max-width: 1280px) {
  .u-p-xsmall\@l {
    padding: 8px !important;
  }
}
@media (max-width: 960px) {
  .u-p-xsmall\@m {
    padding: 8px !important;
  }
}
@media (max-width: 720px) {
  .u-p-xsmall\@s {
    padding: 8px !important;
  }
}
@media (max-width: 480px) {
  .u-p-xsmall\@xs {
    padding: 8px !important;
  }
}
.u-p-small {
  padding: 16px !important;
}

@media (max-width: 1920px) {
  .u-p-small\@xxl {
    padding: 16px !important;
  }
}
@media (max-width: 1600px) {
  .u-p-small\@xl {
    padding: 16px !important;
  }
}
@media (max-width: 1280px) {
  .u-p-small\@l {
    padding: 16px !important;
  }
}
@media (max-width: 960px) {
  .u-p-small\@m {
    padding: 16px !important;
  }
}
@media (max-width: 720px) {
  .u-p-small\@s {
    padding: 16px !important;
  }
}
@media (max-width: 480px) {
  .u-p-small\@xs {
    padding: 16px !important;
  }
}
.u-p {
  padding: 24px !important;
}

@media (max-width: 1920px) {
  .u-p\@xxl {
    padding: 24px !important;
  }
}
@media (max-width: 1600px) {
  .u-p\@xl {
    padding: 24px !important;
  }
}
@media (max-width: 1280px) {
  .u-p\@l {
    padding: 24px !important;
  }
}
@media (max-width: 960px) {
  .u-p\@m {
    padding: 24px !important;
  }
}
@media (max-width: 720px) {
  .u-p\@s {
    padding: 24px !important;
  }
}
@media (max-width: 480px) {
  .u-p\@xs {
    padding: 24px !important;
  }
}
.u-p-large {
  padding: 32px !important;
}

@media (max-width: 1920px) {
  .u-p-large\@xxl {
    padding: 32px !important;
  }
}
@media (max-width: 1600px) {
  .u-p-large\@xl {
    padding: 32px !important;
  }
}
@media (max-width: 1280px) {
  .u-p-large\@l {
    padding: 32px !important;
  }
}
@media (max-width: 960px) {
  .u-p-large\@m {
    padding: 32px !important;
  }
}
@media (max-width: 720px) {
  .u-p-large\@s {
    padding: 32px !important;
  }
}
@media (max-width: 480px) {
  .u-p-large\@xs {
    padding: 32px !important;
  }
}
.u-p-xlarge {
  padding: 48px !important;
}

@media (max-width: 1920px) {
  .u-p-xlarge\@xxl {
    padding: 48px !important;
  }
}
@media (max-width: 1600px) {
  .u-p-xlarge\@xl {
    padding: 48px !important;
  }
}
@media (max-width: 1280px) {
  .u-p-xlarge\@l {
    padding: 48px !important;
  }
}
@media (max-width: 960px) {
  .u-p-xlarge\@m {
    padding: 48px !important;
  }
}
@media (max-width: 720px) {
  .u-p-xlarge\@s {
    padding: 48px !important;
  }
}
@media (max-width: 480px) {
  .u-p-xlarge\@xs {
    padding: 48px !important;
  }
}
.u-p-none {
  padding: 0 !important;
}

@media (max-width: 1920px) {
  .u-p-none\@xxl {
    padding: 0 !important;
  }
}
@media (max-width: 1600px) {
  .u-p-none\@xl {
    padding: 0 !important;
  }
}
@media (max-width: 1280px) {
  .u-p-none\@l {
    padding: 0 !important;
  }
}
@media (max-width: 960px) {
  .u-p-none\@m {
    padding: 0 !important;
  }
}
@media (max-width: 720px) {
  .u-p-none\@s {
    padding: 0 !important;
  }
}
@media (max-width: 480px) {
  .u-p-none\@xs {
    padding: 0 !important;
  }
}
.u-pt-xxsmall {
  padding-top: 4px !important;
}

@media (max-width: 1920px) {
  .u-pt-xxsmall\@xxl {
    padding-top: 4px !important;
  }
}
@media (max-width: 1600px) {
  .u-pt-xxsmall\@xl {
    padding-top: 4px !important;
  }
}
@media (max-width: 1280px) {
  .u-pt-xxsmall\@l {
    padding-top: 4px !important;
  }
}
@media (max-width: 960px) {
  .u-pt-xxsmall\@m {
    padding-top: 4px !important;
  }
}
@media (max-width: 720px) {
  .u-pt-xxsmall\@s {
    padding-top: 4px !important;
  }
}
@media (max-width: 480px) {
  .u-pt-xxsmall\@xs {
    padding-top: 4px !important;
  }
}
.u-pt-xsmall {
  padding-top: 8px !important;
}

@media (max-width: 1920px) {
  .u-pt-xsmall\@xxl {
    padding-top: 8px !important;
  }
}
@media (max-width: 1600px) {
  .u-pt-xsmall\@xl {
    padding-top: 8px !important;
  }
}
@media (max-width: 1280px) {
  .u-pt-xsmall\@l {
    padding-top: 8px !important;
  }
}
@media (max-width: 960px) {
  .u-pt-xsmall\@m {
    padding-top: 8px !important;
  }
}
@media (max-width: 720px) {
  .u-pt-xsmall\@s {
    padding-top: 8px !important;
  }
}
@media (max-width: 480px) {
  .u-pt-xsmall\@xs {
    padding-top: 8px !important;
  }
}
.u-pt-small {
  padding-top: 16px !important;
}

@media (max-width: 1920px) {
  .u-pt-small\@xxl {
    padding-top: 16px !important;
  }
}
@media (max-width: 1600px) {
  .u-pt-small\@xl {
    padding-top: 16px !important;
  }
}
@media (max-width: 1280px) {
  .u-pt-small\@l {
    padding-top: 16px !important;
  }
}
@media (max-width: 960px) {
  .u-pt-small\@m {
    padding-top: 16px !important;
  }
}
@media (max-width: 720px) {
  .u-pt-small\@s {
    padding-top: 16px !important;
  }
}
@media (max-width: 480px) {
  .u-pt-small\@xs {
    padding-top: 16px !important;
  }
}
.u-pt {
  padding-top: 24px !important;
}

@media (max-width: 1920px) {
  .u-pt\@xxl {
    padding-top: 24px !important;
  }
}
@media (max-width: 1600px) {
  .u-pt\@xl {
    padding-top: 24px !important;
  }
}
@media (max-width: 1280px) {
  .u-pt\@l {
    padding-top: 24px !important;
  }
}
@media (max-width: 960px) {
  .u-pt\@m {
    padding-top: 24px !important;
  }
}
@media (max-width: 720px) {
  .u-pt\@s {
    padding-top: 24px !important;
  }
}
@media (max-width: 480px) {
  .u-pt\@xs {
    padding-top: 24px !important;
  }
}
.u-pt-large {
  padding-top: 32px !important;
}

@media (max-width: 1920px) {
  .u-pt-large\@xxl {
    padding-top: 32px !important;
  }
}
@media (max-width: 1600px) {
  .u-pt-large\@xl {
    padding-top: 32px !important;
  }
}
@media (max-width: 1280px) {
  .u-pt-large\@l {
    padding-top: 32px !important;
  }
}
@media (max-width: 960px) {
  .u-pt-large\@m {
    padding-top: 32px !important;
  }
}
@media (max-width: 720px) {
  .u-pt-large\@s {
    padding-top: 32px !important;
  }
}
@media (max-width: 480px) {
  .u-pt-large\@xs {
    padding-top: 32px !important;
  }
}
.u-pt-xlarge {
  padding-top: 48px !important;
}

@media (max-width: 1920px) {
  .u-pt-xlarge\@xxl {
    padding-top: 48px !important;
  }
}
@media (max-width: 1600px) {
  .u-pt-xlarge\@xl {
    padding-top: 48px !important;
  }
}
@media (max-width: 1280px) {
  .u-pt-xlarge\@l {
    padding-top: 48px !important;
  }
}
@media (max-width: 960px) {
  .u-pt-xlarge\@m {
    padding-top: 48px !important;
  }
}
@media (max-width: 720px) {
  .u-pt-xlarge\@s {
    padding-top: 48px !important;
  }
}
@media (max-width: 480px) {
  .u-pt-xlarge\@xs {
    padding-top: 48px !important;
  }
}
.u-pt-none {
  padding-top: 0 !important;
}

@media (max-width: 1920px) {
  .u-pt-none\@xxl {
    padding-top: 0 !important;
  }
}
@media (max-width: 1600px) {
  .u-pt-none\@xl {
    padding-top: 0 !important;
  }
}
@media (max-width: 1280px) {
  .u-pt-none\@l {
    padding-top: 0 !important;
  }
}
@media (max-width: 960px) {
  .u-pt-none\@m {
    padding-top: 0 !important;
  }
}
@media (max-width: 720px) {
  .u-pt-none\@s {
    padding-top: 0 !important;
  }
}
@media (max-width: 480px) {
  .u-pt-none\@xs {
    padding-top: 0 !important;
  }
}
.u-pr-xxsmall {
  padding-right: 4px !important;
}

@media (max-width: 1920px) {
  .u-pr-xxsmall\@xxl {
    padding-right: 4px !important;
  }
}
@media (max-width: 1600px) {
  .u-pr-xxsmall\@xl {
    padding-right: 4px !important;
  }
}
@media (max-width: 1280px) {
  .u-pr-xxsmall\@l {
    padding-right: 4px !important;
  }
}
@media (max-width: 960px) {
  .u-pr-xxsmall\@m {
    padding-right: 4px !important;
  }
}
@media (max-width: 720px) {
  .u-pr-xxsmall\@s {
    padding-right: 4px !important;
  }
}
@media (max-width: 480px) {
  .u-pr-xxsmall\@xs {
    padding-right: 4px !important;
  }
}
.u-pr-xsmall {
  padding-right: 8px !important;
}

@media (max-width: 1920px) {
  .u-pr-xsmall\@xxl {
    padding-right: 8px !important;
  }
}
@media (max-width: 1600px) {
  .u-pr-xsmall\@xl {
    padding-right: 8px !important;
  }
}
@media (max-width: 1280px) {
  .u-pr-xsmall\@l {
    padding-right: 8px !important;
  }
}
@media (max-width: 960px) {
  .u-pr-xsmall\@m {
    padding-right: 8px !important;
  }
}
@media (max-width: 720px) {
  .u-pr-xsmall\@s {
    padding-right: 8px !important;
  }
}
@media (max-width: 480px) {
  .u-pr-xsmall\@xs {
    padding-right: 8px !important;
  }
}
.u-pr-small {
  padding-right: 16px !important;
}

@media (max-width: 1920px) {
  .u-pr-small\@xxl {
    padding-right: 16px !important;
  }
}
@media (max-width: 1600px) {
  .u-pr-small\@xl {
    padding-right: 16px !important;
  }
}
@media (max-width: 1280px) {
  .u-pr-small\@l {
    padding-right: 16px !important;
  }
}
@media (max-width: 960px) {
  .u-pr-small\@m {
    padding-right: 16px !important;
  }
}
@media (max-width: 720px) {
  .u-pr-small\@s {
    padding-right: 16px !important;
  }
}
@media (max-width: 480px) {
  .u-pr-small\@xs {
    padding-right: 16px !important;
  }
}
.u-pr {
  padding-right: 24px !important;
}

@media (max-width: 1920px) {
  .u-pr\@xxl {
    padding-right: 24px !important;
  }
}
@media (max-width: 1600px) {
  .u-pr\@xl {
    padding-right: 24px !important;
  }
}
@media (max-width: 1280px) {
  .u-pr\@l {
    padding-right: 24px !important;
  }
}
@media (max-width: 960px) {
  .u-pr\@m {
    padding-right: 24px !important;
  }
}
@media (max-width: 720px) {
  .u-pr\@s {
    padding-right: 24px !important;
  }
}
@media (max-width: 480px) {
  .u-pr\@xs {
    padding-right: 24px !important;
  }
}
.u-pr-large {
  padding-right: 32px !important;
}

@media (max-width: 1920px) {
  .u-pr-large\@xxl {
    padding-right: 32px !important;
  }
}
@media (max-width: 1600px) {
  .u-pr-large\@xl {
    padding-right: 32px !important;
  }
}
@media (max-width: 1280px) {
  .u-pr-large\@l {
    padding-right: 32px !important;
  }
}
@media (max-width: 960px) {
  .u-pr-large\@m {
    padding-right: 32px !important;
  }
}
@media (max-width: 720px) {
  .u-pr-large\@s {
    padding-right: 32px !important;
  }
}
@media (max-width: 480px) {
  .u-pr-large\@xs {
    padding-right: 32px !important;
  }
}
.u-pr-xlarge {
  padding-right: 48px !important;
}

@media (max-width: 1920px) {
  .u-pr-xlarge\@xxl {
    padding-right: 48px !important;
  }
}
@media (max-width: 1600px) {
  .u-pr-xlarge\@xl {
    padding-right: 48px !important;
  }
}
@media (max-width: 1280px) {
  .u-pr-xlarge\@l {
    padding-right: 48px !important;
  }
}
@media (max-width: 960px) {
  .u-pr-xlarge\@m {
    padding-right: 48px !important;
  }
}
@media (max-width: 720px) {
  .u-pr-xlarge\@s {
    padding-right: 48px !important;
  }
}
@media (max-width: 480px) {
  .u-pr-xlarge\@xs {
    padding-right: 48px !important;
  }
}
.u-pr-none {
  padding-right: 0 !important;
}

@media (max-width: 1920px) {
  .u-pr-none\@xxl {
    padding-right: 0 !important;
  }
}
@media (max-width: 1600px) {
  .u-pr-none\@xl {
    padding-right: 0 !important;
  }
}
@media (max-width: 1280px) {
  .u-pr-none\@l {
    padding-right: 0 !important;
  }
}
@media (max-width: 960px) {
  .u-pr-none\@m {
    padding-right: 0 !important;
  }
}
@media (max-width: 720px) {
  .u-pr-none\@s {
    padding-right: 0 !important;
  }
}
@media (max-width: 480px) {
  .u-pr-none\@xs {
    padding-right: 0 !important;
  }
}
.u-pb-xxsmall {
  padding-bottom: 4px !important;
}

@media (max-width: 1920px) {
  .u-pb-xxsmall\@xxl {
    padding-bottom: 4px !important;
  }
}
@media (max-width: 1600px) {
  .u-pb-xxsmall\@xl {
    padding-bottom: 4px !important;
  }
}
@media (max-width: 1280px) {
  .u-pb-xxsmall\@l {
    padding-bottom: 4px !important;
  }
}
@media (max-width: 960px) {
  .u-pb-xxsmall\@m {
    padding-bottom: 4px !important;
  }
}
@media (max-width: 720px) {
  .u-pb-xxsmall\@s {
    padding-bottom: 4px !important;
  }
}
@media (max-width: 480px) {
  .u-pb-xxsmall\@xs {
    padding-bottom: 4px !important;
  }
}
.u-pb-xsmall {
  padding-bottom: 8px !important;
}

@media (max-width: 1920px) {
  .u-pb-xsmall\@xxl {
    padding-bottom: 8px !important;
  }
}
@media (max-width: 1600px) {
  .u-pb-xsmall\@xl {
    padding-bottom: 8px !important;
  }
}
@media (max-width: 1280px) {
  .u-pb-xsmall\@l {
    padding-bottom: 8px !important;
  }
}
@media (max-width: 960px) {
  .u-pb-xsmall\@m {
    padding-bottom: 8px !important;
  }
}
@media (max-width: 720px) {
  .u-pb-xsmall\@s {
    padding-bottom: 8px !important;
  }
}
@media (max-width: 480px) {
  .u-pb-xsmall\@xs {
    padding-bottom: 8px !important;
  }
}
.u-pb-small {
  padding-bottom: 16px !important;
}

@media (max-width: 1920px) {
  .u-pb-small\@xxl {
    padding-bottom: 16px !important;
  }
}
@media (max-width: 1600px) {
  .u-pb-small\@xl {
    padding-bottom: 16px !important;
  }
}
@media (max-width: 1280px) {
  .u-pb-small\@l {
    padding-bottom: 16px !important;
  }
}
@media (max-width: 960px) {
  .u-pb-small\@m {
    padding-bottom: 16px !important;
  }
}
@media (max-width: 720px) {
  .u-pb-small\@s {
    padding-bottom: 16px !important;
  }
}
@media (max-width: 480px) {
  .u-pb-small\@xs {
    padding-bottom: 16px !important;
  }
}
.u-pb {
  padding-bottom: 24px !important;
}

@media (max-width: 1920px) {
  .u-pb\@xxl {
    padding-bottom: 24px !important;
  }
}
@media (max-width: 1600px) {
  .u-pb\@xl {
    padding-bottom: 24px !important;
  }
}
@media (max-width: 1280px) {
  .u-pb\@l {
    padding-bottom: 24px !important;
  }
}
@media (max-width: 960px) {
  .u-pb\@m {
    padding-bottom: 24px !important;
  }
}
@media (max-width: 720px) {
  .u-pb\@s {
    padding-bottom: 24px !important;
  }
}
@media (max-width: 480px) {
  .u-pb\@xs {
    padding-bottom: 24px !important;
  }
}
.u-pb-large {
  padding-bottom: 32px !important;
}

@media (max-width: 1920px) {
  .u-pb-large\@xxl {
    padding-bottom: 32px !important;
  }
}
@media (max-width: 1600px) {
  .u-pb-large\@xl {
    padding-bottom: 32px !important;
  }
}
@media (max-width: 1280px) {
  .u-pb-large\@l {
    padding-bottom: 32px !important;
  }
}
@media (max-width: 960px) {
  .u-pb-large\@m {
    padding-bottom: 32px !important;
  }
}
@media (max-width: 720px) {
  .u-pb-large\@s {
    padding-bottom: 32px !important;
  }
}
@media (max-width: 480px) {
  .u-pb-large\@xs {
    padding-bottom: 32px !important;
  }
}
.u-pb-xlarge {
  padding-bottom: 48px !important;
}

@media (max-width: 1920px) {
  .u-pb-xlarge\@xxl {
    padding-bottom: 48px !important;
  }
}
@media (max-width: 1600px) {
  .u-pb-xlarge\@xl {
    padding-bottom: 48px !important;
  }
}
@media (max-width: 1280px) {
  .u-pb-xlarge\@l {
    padding-bottom: 48px !important;
  }
}
@media (max-width: 960px) {
  .u-pb-xlarge\@m {
    padding-bottom: 48px !important;
  }
}
@media (max-width: 720px) {
  .u-pb-xlarge\@s {
    padding-bottom: 48px !important;
  }
}
@media (max-width: 480px) {
  .u-pb-xlarge\@xs {
    padding-bottom: 48px !important;
  }
}
.u-pb-none {
  padding-bottom: 0 !important;
}

@media (max-width: 1920px) {
  .u-pb-none\@xxl {
    padding-bottom: 0 !important;
  }
}
@media (max-width: 1600px) {
  .u-pb-none\@xl {
    padding-bottom: 0 !important;
  }
}
@media (max-width: 1280px) {
  .u-pb-none\@l {
    padding-bottom: 0 !important;
  }
}
@media (max-width: 960px) {
  .u-pb-none\@m {
    padding-bottom: 0 !important;
  }
}
@media (max-width: 720px) {
  .u-pb-none\@s {
    padding-bottom: 0 !important;
  }
}
@media (max-width: 480px) {
  .u-pb-none\@xs {
    padding-bottom: 0 !important;
  }
}
.u-pl-xxsmall {
  padding-left: 4px !important;
}

@media (max-width: 1920px) {
  .u-pl-xxsmall\@xxl {
    padding-left: 4px !important;
  }
}
@media (max-width: 1600px) {
  .u-pl-xxsmall\@xl {
    padding-left: 4px !important;
  }
}
@media (max-width: 1280px) {
  .u-pl-xxsmall\@l {
    padding-left: 4px !important;
  }
}
@media (max-width: 960px) {
  .u-pl-xxsmall\@m {
    padding-left: 4px !important;
  }
}
@media (max-width: 720px) {
  .u-pl-xxsmall\@s {
    padding-left: 4px !important;
  }
}
@media (max-width: 480px) {
  .u-pl-xxsmall\@xs {
    padding-left: 4px !important;
  }
}
.u-pl-xsmall {
  padding-left: 8px !important;
}

@media (max-width: 1920px) {
  .u-pl-xsmall\@xxl {
    padding-left: 8px !important;
  }
}
@media (max-width: 1600px) {
  .u-pl-xsmall\@xl {
    padding-left: 8px !important;
  }
}
@media (max-width: 1280px) {
  .u-pl-xsmall\@l {
    padding-left: 8px !important;
  }
}
@media (max-width: 960px) {
  .u-pl-xsmall\@m {
    padding-left: 8px !important;
  }
}
@media (max-width: 720px) {
  .u-pl-xsmall\@s {
    padding-left: 8px !important;
  }
}
@media (max-width: 480px) {
  .u-pl-xsmall\@xs {
    padding-left: 8px !important;
  }
}
.u-pl-small {
  padding-left: 16px !important;
}

@media (max-width: 1920px) {
  .u-pl-small\@xxl {
    padding-left: 16px !important;
  }
}
@media (max-width: 1600px) {
  .u-pl-small\@xl {
    padding-left: 16px !important;
  }
}
@media (max-width: 1280px) {
  .u-pl-small\@l {
    padding-left: 16px !important;
  }
}
@media (max-width: 960px) {
  .u-pl-small\@m {
    padding-left: 16px !important;
  }
}
@media (max-width: 720px) {
  .u-pl-small\@s {
    padding-left: 16px !important;
  }
}
@media (max-width: 480px) {
  .u-pl-small\@xs {
    padding-left: 16px !important;
  }
}
.u-pl {
  padding-left: 24px !important;
}

@media (max-width: 1920px) {
  .u-pl\@xxl {
    padding-left: 24px !important;
  }
}
@media (max-width: 1600px) {
  .u-pl\@xl {
    padding-left: 24px !important;
  }
}
@media (max-width: 1280px) {
  .u-pl\@l {
    padding-left: 24px !important;
  }
}
@media (max-width: 960px) {
  .u-pl\@m {
    padding-left: 24px !important;
  }
}
@media (max-width: 720px) {
  .u-pl\@s {
    padding-left: 24px !important;
  }
}
@media (max-width: 480px) {
  .u-pl\@xs {
    padding-left: 24px !important;
  }
}
.u-pl-large {
  padding-left: 32px !important;
}

@media (max-width: 1920px) {
  .u-pl-large\@xxl {
    padding-left: 32px !important;
  }
}
@media (max-width: 1600px) {
  .u-pl-large\@xl {
    padding-left: 32px !important;
  }
}
@media (max-width: 1280px) {
  .u-pl-large\@l {
    padding-left: 32px !important;
  }
}
@media (max-width: 960px) {
  .u-pl-large\@m {
    padding-left: 32px !important;
  }
}
@media (max-width: 720px) {
  .u-pl-large\@s {
    padding-left: 32px !important;
  }
}
@media (max-width: 480px) {
  .u-pl-large\@xs {
    padding-left: 32px !important;
  }
}
.u-pl-xlarge {
  padding-left: 48px !important;
}

@media (max-width: 1920px) {
  .u-pl-xlarge\@xxl {
    padding-left: 48px !important;
  }
}
@media (max-width: 1600px) {
  .u-pl-xlarge\@xl {
    padding-left: 48px !important;
  }
}
@media (max-width: 1280px) {
  .u-pl-xlarge\@l {
    padding-left: 48px !important;
  }
}
@media (max-width: 960px) {
  .u-pl-xlarge\@m {
    padding-left: 48px !important;
  }
}
@media (max-width: 720px) {
  .u-pl-xlarge\@s {
    padding-left: 48px !important;
  }
}
@media (max-width: 480px) {
  .u-pl-xlarge\@xs {
    padding-left: 48px !important;
  }
}
.u-pl-none {
  padding-left: 0 !important;
}

@media (max-width: 1920px) {
  .u-pl-none\@xxl {
    padding-left: 0 !important;
  }
}
@media (max-width: 1600px) {
  .u-pl-none\@xl {
    padding-left: 0 !important;
  }
}
@media (max-width: 1280px) {
  .u-pl-none\@l {
    padding-left: 0 !important;
  }
}
@media (max-width: 960px) {
  .u-pl-none\@m {
    padding-left: 0 !important;
  }
}
@media (max-width: 720px) {
  .u-pl-none\@s {
    padding-left: 0 !important;
  }
}
@media (max-width: 480px) {
  .u-pl-none\@xs {
    padding-left: 0 !important;
  }
}
.u-ph-xxsmall {
  padding-left: 4px !important;
  padding-right: 4px !important;
}

@media (max-width: 1920px) {
  .u-ph-xxsmall\@xxl {
    padding-left: 4px !important;
    padding-right: 4px !important;
  }
}
@media (max-width: 1600px) {
  .u-ph-xxsmall\@xl {
    padding-left: 4px !important;
    padding-right: 4px !important;
  }
}
@media (max-width: 1280px) {
  .u-ph-xxsmall\@l {
    padding-left: 4px !important;
    padding-right: 4px !important;
  }
}
@media (max-width: 960px) {
  .u-ph-xxsmall\@m {
    padding-left: 4px !important;
    padding-right: 4px !important;
  }
}
@media (max-width: 720px) {
  .u-ph-xxsmall\@s {
    padding-left: 4px !important;
    padding-right: 4px !important;
  }
}
@media (max-width: 480px) {
  .u-ph-xxsmall\@xs {
    padding-left: 4px !important;
    padding-right: 4px !important;
  }
}
.u-ph-xsmall {
  padding-left: 8px !important;
  padding-right: 8px !important;
}

@media (max-width: 1920px) {
  .u-ph-xsmall\@xxl {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
}
@media (max-width: 1600px) {
  .u-ph-xsmall\@xl {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
}
@media (max-width: 1280px) {
  .u-ph-xsmall\@l {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
}
@media (max-width: 960px) {
  .u-ph-xsmall\@m {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
}
@media (max-width: 720px) {
  .u-ph-xsmall\@s {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
}
@media (max-width: 480px) {
  .u-ph-xsmall\@xs {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
}
.u-ph-small {
  padding-left: 16px !important;
  padding-right: 16px !important;
}

@media (max-width: 1920px) {
  .u-ph-small\@xxl {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}
@media (max-width: 1600px) {
  .u-ph-small\@xl {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}
@media (max-width: 1280px) {
  .u-ph-small\@l {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}
@media (max-width: 960px) {
  .u-ph-small\@m {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}
@media (max-width: 720px) {
  .u-ph-small\@s {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}
@media (max-width: 480px) {
  .u-ph-small\@xs {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}
.u-ph {
  padding-left: 24px !important;
  padding-right: 24px !important;
}

@media (max-width: 1920px) {
  .u-ph\@xxl {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}
@media (max-width: 1600px) {
  .u-ph\@xl {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}
@media (max-width: 1280px) {
  .u-ph\@l {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}
@media (max-width: 960px) {
  .u-ph\@m {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}
@media (max-width: 720px) {
  .u-ph\@s {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}
@media (max-width: 480px) {
  .u-ph\@xs {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}
.u-ph-large {
  padding-left: 32px !important;
  padding-right: 32px !important;
}

@media (max-width: 1920px) {
  .u-ph-large\@xxl {
    padding-left: 32px !important;
    padding-right: 32px !important;
  }
}
@media (max-width: 1600px) {
  .u-ph-large\@xl {
    padding-left: 32px !important;
    padding-right: 32px !important;
  }
}
@media (max-width: 1280px) {
  .u-ph-large\@l {
    padding-left: 32px !important;
    padding-right: 32px !important;
  }
}
@media (max-width: 960px) {
  .u-ph-large\@m {
    padding-left: 32px !important;
    padding-right: 32px !important;
  }
}
@media (max-width: 720px) {
  .u-ph-large\@s {
    padding-left: 32px !important;
    padding-right: 32px !important;
  }
}
@media (max-width: 480px) {
  .u-ph-large\@xs {
    padding-left: 32px !important;
    padding-right: 32px !important;
  }
}
.u-ph-xlarge {
  padding-left: 48px !important;
  padding-right: 48px !important;
}

@media (max-width: 1920px) {
  .u-ph-xlarge\@xxl {
    padding-left: 48px !important;
    padding-right: 48px !important;
  }
}
@media (max-width: 1600px) {
  .u-ph-xlarge\@xl {
    padding-left: 48px !important;
    padding-right: 48px !important;
  }
}
@media (max-width: 1280px) {
  .u-ph-xlarge\@l {
    padding-left: 48px !important;
    padding-right: 48px !important;
  }
}
@media (max-width: 960px) {
  .u-ph-xlarge\@m {
    padding-left: 48px !important;
    padding-right: 48px !important;
  }
}
@media (max-width: 720px) {
  .u-ph-xlarge\@s {
    padding-left: 48px !important;
    padding-right: 48px !important;
  }
}
@media (max-width: 480px) {
  .u-ph-xlarge\@xs {
    padding-left: 48px !important;
    padding-right: 48px !important;
  }
}
.u-ph-none {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

@media (max-width: 1920px) {
  .u-ph-none\@xxl {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
@media (max-width: 1600px) {
  .u-ph-none\@xl {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
@media (max-width: 1280px) {
  .u-ph-none\@l {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
@media (max-width: 960px) {
  .u-ph-none\@m {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
@media (max-width: 720px) {
  .u-ph-none\@s {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
@media (max-width: 480px) {
  .u-ph-none\@xs {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
.u-pv-xxsmall {
  padding-top: 4px !important;
  padding-bottom: 4px !important;
}

@media (max-width: 1920px) {
  .u-pv-xxsmall\@xxl {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
  }
}
@media (max-width: 1600px) {
  .u-pv-xxsmall\@xl {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
  }
}
@media (max-width: 1280px) {
  .u-pv-xxsmall\@l {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
  }
}
@media (max-width: 960px) {
  .u-pv-xxsmall\@m {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
  }
}
@media (max-width: 720px) {
  .u-pv-xxsmall\@s {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
  }
}
@media (max-width: 480px) {
  .u-pv-xxsmall\@xs {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
  }
}
.u-pv-xsmall {
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}

@media (max-width: 1920px) {
  .u-pv-xsmall\@xxl {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }
}
@media (max-width: 1600px) {
  .u-pv-xsmall\@xl {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }
}
@media (max-width: 1280px) {
  .u-pv-xsmall\@l {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }
}
@media (max-width: 960px) {
  .u-pv-xsmall\@m {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }
}
@media (max-width: 720px) {
  .u-pv-xsmall\@s {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }
}
@media (max-width: 480px) {
  .u-pv-xsmall\@xs {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }
}
.u-pv-small {
  padding-top: 16px !important;
  padding-bottom: 16px !important;
}

@media (max-width: 1920px) {
  .u-pv-small\@xxl {
    padding-top: 16px !important;
    padding-bottom: 16px !important;
  }
}
@media (max-width: 1600px) {
  .u-pv-small\@xl {
    padding-top: 16px !important;
    padding-bottom: 16px !important;
  }
}
@media (max-width: 1280px) {
  .u-pv-small\@l {
    padding-top: 16px !important;
    padding-bottom: 16px !important;
  }
}
@media (max-width: 960px) {
  .u-pv-small\@m {
    padding-top: 16px !important;
    padding-bottom: 16px !important;
  }
}
@media (max-width: 720px) {
  .u-pv-small\@s {
    padding-top: 16px !important;
    padding-bottom: 16px !important;
  }
}
@media (max-width: 480px) {
  .u-pv-small\@xs {
    padding-top: 16px !important;
    padding-bottom: 16px !important;
  }
}
.u-pv {
  padding-top: 24px !important;
  padding-bottom: 24px !important;
}

@media (max-width: 1920px) {
  .u-pv\@xxl {
    padding-top: 24px !important;
    padding-bottom: 24px !important;
  }
}
@media (max-width: 1600px) {
  .u-pv\@xl {
    padding-top: 24px !important;
    padding-bottom: 24px !important;
  }
}
@media (max-width: 1280px) {
  .u-pv\@l {
    padding-top: 24px !important;
    padding-bottom: 24px !important;
  }
}
@media (max-width: 960px) {
  .u-pv\@m {
    padding-top: 24px !important;
    padding-bottom: 24px !important;
  }
}
@media (max-width: 720px) {
  .u-pv\@s {
    padding-top: 24px !important;
    padding-bottom: 24px !important;
  }
}
@media (max-width: 480px) {
  .u-pv\@xs {
    padding-top: 24px !important;
    padding-bottom: 24px !important;
  }
}
.u-pv-large {
  padding-top: 32px !important;
  padding-bottom: 32px !important;
}

@media (max-width: 1920px) {
  .u-pv-large\@xxl {
    padding-top: 32px !important;
    padding-bottom: 32px !important;
  }
}
@media (max-width: 1600px) {
  .u-pv-large\@xl {
    padding-top: 32px !important;
    padding-bottom: 32px !important;
  }
}
@media (max-width: 1280px) {
  .u-pv-large\@l {
    padding-top: 32px !important;
    padding-bottom: 32px !important;
  }
}
@media (max-width: 960px) {
  .u-pv-large\@m {
    padding-top: 32px !important;
    padding-bottom: 32px !important;
  }
}
@media (max-width: 720px) {
  .u-pv-large\@s {
    padding-top: 32px !important;
    padding-bottom: 32px !important;
  }
}
@media (max-width: 480px) {
  .u-pv-large\@xs {
    padding-top: 32px !important;
    padding-bottom: 32px !important;
  }
}
.u-pv-xlarge {
  padding-top: 48px !important;
  padding-bottom: 48px !important;
}

@media (max-width: 1920px) {
  .u-pv-xlarge\@xxl {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
}
@media (max-width: 1600px) {
  .u-pv-xlarge\@xl {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
}
@media (max-width: 1280px) {
  .u-pv-xlarge\@l {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
}
@media (max-width: 960px) {
  .u-pv-xlarge\@m {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
}
@media (max-width: 720px) {
  .u-pv-xlarge\@s {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
}
@media (max-width: 480px) {
  .u-pv-xlarge\@xs {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
}
.u-pv-none {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

@media (max-width: 1920px) {
  .u-pv-none\@xxl {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}
@media (max-width: 1600px) {
  .u-pv-none\@xl {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}
@media (max-width: 1280px) {
  .u-pv-none\@l {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}
@media (max-width: 960px) {
  .u-pv-none\@m {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}
@media (max-width: 720px) {
  .u-pv-none\@s {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}
@media (max-width: 480px) {
  .u-pv-none\@xs {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}
/* ------------------------------------*\
    #TEXT-ALIGN
\*------------------------------------ */
/**
 * Helper classes to align elements either left, right or center.
 */
.u-text-left {
  text-align: left !important;
}

.u-text-right {
  text-align: right !important;
}

.u-text-center {
  text-align: center !important;
}

@media (max-width: 1920px) {
  .u-text-left\@xxl {
    text-align: left !important;
  }
  .u-text-right\@xxl {
    text-align: right !important;
  }
  .u-text-center\@xxl {
    text-align: center !important;
  }
}
@media (min-width: 1921px) {
  .u-text-left\@xxl-up {
    text-align: left !important;
  }
  .u-text-right\@xxl-up {
    text-align: right !important;
  }
  .u-text-center\@xxl-up {
    text-align: center !important;
  }
}
@media (max-width: 1600px) {
  .u-text-left\@xl {
    text-align: left !important;
  }
  .u-text-right\@xl {
    text-align: right !important;
  }
  .u-text-center\@xl {
    text-align: center !important;
  }
}
@media (min-width: 1601px) {
  .u-text-left\@xl-up {
    text-align: left !important;
  }
  .u-text-right\@xl-up {
    text-align: right !important;
  }
  .u-text-center\@xl-up {
    text-align: center !important;
  }
}
@media (max-width: 1280px) {
  .u-text-left\@l {
    text-align: left !important;
  }
  .u-text-right\@l {
    text-align: right !important;
  }
  .u-text-center\@l {
    text-align: center !important;
  }
}
@media (min-width: 1281px) {
  .u-text-left\@l-up {
    text-align: left !important;
  }
  .u-text-right\@l-up {
    text-align: right !important;
  }
  .u-text-center\@l-up {
    text-align: center !important;
  }
}
@media (max-width: 960px) {
  .u-text-left\@m {
    text-align: left !important;
  }
  .u-text-right\@m {
    text-align: right !important;
  }
  .u-text-center\@m {
    text-align: center !important;
  }
}
@media (min-width: 961px) {
  .u-text-left\@m-up {
    text-align: left !important;
  }
  .u-text-right\@m-up {
    text-align: right !important;
  }
  .u-text-center\@m-up {
    text-align: center !important;
  }
}
@media (max-width: 720px) {
  .u-text-left\@s {
    text-align: left !important;
  }
  .u-text-right\@s {
    text-align: right !important;
  }
  .u-text-center\@s {
    text-align: center !important;
  }
}
@media (min-width: 721px) {
  .u-text-left\@s-up {
    text-align: left !important;
  }
  .u-text-right\@s-up {
    text-align: right !important;
  }
  .u-text-center\@s-up {
    text-align: center !important;
  }
}
@media (max-width: 480px) {
  .u-text-left\@xs {
    text-align: left !important;
  }
  .u-text-right\@xs {
    text-align: right !important;
  }
  .u-text-center\@xs {
    text-align: center !important;
  }
}
@media (min-width: 481px) {
  .u-text-left\@xs-up {
    text-align: left !important;
  }
  .u-text-right\@xs-up {
    text-align: right !important;
  }
  .u-text-center\@xs-up {
    text-align: center !important;
  }
}
/* ------------------------------------*\
    #TEXT-TRANSFORM
\*------------------------------------ */
/**
 * The following classes will transform text into
 * uppercased, capitalized or lowercased characters.
 */
.u-text-lowercase {
  text-transform: lowercase !important;
}

.u-text-uppercase {
  text-transform: uppercase !important;
}

.u-text-capitalize {
  text-transform: capitalize !important;
}

/* ------------------------------------*\
    #TEXT-TRUNCATE
\*------------------------------------ */
/**
 * A utility class to truncate text with "..." when content is wider than the available space.
 * Works only for single-line truncation
 */
.u-text-truncate {
  display: inline-block;
  max-width: 100%;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}

/* ------------------------------------*\
    #TEXT-WRAP
\*------------------------------------ */
/**
 * A utility class to enforce text wrapping. With hyphens if possible
 * otherwise with hard word-breaks.
 */
.u-text-wrap {
  word-break: break-word;
  -webkit-hyphens: auto;
  hyphens: auto;
}

/* ------------------------------------*\
    #VISUALLY-HIDDEN
\*------------------------------------ */
/**
 * A utility class to hide elements visually
 * but keep the element text available to be announced by a screen reader.
 */
.u-visually-hidden {
  position: absolute !important; /* stylelint-disable-line itcss/no-at-important */
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(1px, 1px, 1px, 1px) !important;
}

/* ------------------------------------*\
   #WHITE-SPACE
\*------------------------------------ */
.u-ws-nowrap {
  white-space: nowrap !important;
}

/* ------------------------------------*\
    #WIDTHS
\*------------------------------------ */
/**
 * A series of widths helper classes that you can use to size things like grid
 * systems. Classes take a fraction-like format (e.g. `.u-2/3`).
 */
.u-1\/1 {
  width: 100%;
}

.u-1\/2 {
  width: 50%;
}

.u-2\/2 {
  width: 100%;
}

.u-1\/3 {
  width: 33.3333333333%;
}

.u-2\/3 {
  width: 66.6666666667%;
}

.u-3\/3 {
  width: 100%;
}

.u-1\/4 {
  width: 25%;
}

.u-2\/4 {
  width: 50%;
}

.u-3\/4 {
  width: 75%;
}

.u-4\/4 {
  width: 100%;
}

.u-1\/5 {
  width: 20%;
}

.u-2\/5 {
  width: 40%;
}

.u-3\/5 {
  width: 60%;
}

.u-4\/5 {
  width: 80%;
}

.u-5\/5 {
  width: 100%;
}

.u-1\/6 {
  width: 16.6666666667%;
}

.u-2\/6 {
  width: 33.3333333333%;
}

.u-3\/6 {
  width: 50%;
}

.u-4\/6 {
  width: 66.6666666667%;
}

.u-5\/6 {
  width: 83.3333333333%;
}

.u-6\/6 {
  width: 100%;
}

.u-1\/12 {
  width: 8.3333333333%;
}

.u-2\/12 {
  width: 16.6666666667%;
}

.u-3\/12 {
  width: 25%;
}

.u-4\/12 {
  width: 33.3333333333%;
}

.u-5\/12 {
  width: 41.6666666667%;
}

.u-6\/12 {
  width: 50%;
}

.u-7\/12 {
  width: 58.3333333333%;
}

.u-8\/12 {
  width: 66.6666666667%;
}

.u-9\/12 {
  width: 75%;
}

.u-10\/12 {
  width: 83.3333333333%;
}

.u-11\/12 {
  width: 91.6666666667%;
}

.u-12\/12 {
  width: 100%;
}

@media (max-width: 1920px) {
  .u-1\/1\@xxl {
    width: 100%;
  }
  .u-1\/2\@xxl {
    width: 50%;
  }
  .u-2\/2\@xxl {
    width: 100%;
  }
  .u-1\/3\@xxl {
    width: 33.3333333333%;
  }
  .u-2\/3\@xxl {
    width: 66.6666666667%;
  }
  .u-3\/3\@xxl {
    width: 100%;
  }
  .u-1\/4\@xxl {
    width: 25%;
  }
  .u-2\/4\@xxl {
    width: 50%;
  }
  .u-3\/4\@xxl {
    width: 75%;
  }
  .u-4\/4\@xxl {
    width: 100%;
  }
  .u-1\/5\@xxl {
    width: 20%;
  }
  .u-2\/5\@xxl {
    width: 40%;
  }
  .u-3\/5\@xxl {
    width: 60%;
  }
  .u-4\/5\@xxl {
    width: 80%;
  }
  .u-5\/5\@xxl {
    width: 100%;
  }
  .u-1\/6\@xxl {
    width: 16.6666666667%;
  }
  .u-2\/6\@xxl {
    width: 33.3333333333%;
  }
  .u-3\/6\@xxl {
    width: 50%;
  }
  .u-4\/6\@xxl {
    width: 66.6666666667%;
  }
  .u-5\/6\@xxl {
    width: 83.3333333333%;
  }
  .u-6\/6\@xxl {
    width: 100%;
  }
  .u-1\/12\@xxl {
    width: 8.3333333333%;
  }
  .u-2\/12\@xxl {
    width: 16.6666666667%;
  }
  .u-3\/12\@xxl {
    width: 25%;
  }
  .u-4\/12\@xxl {
    width: 33.3333333333%;
  }
  .u-5\/12\@xxl {
    width: 41.6666666667%;
  }
  .u-6\/12\@xxl {
    width: 50%;
  }
  .u-7\/12\@xxl {
    width: 58.3333333333%;
  }
  .u-8\/12\@xxl {
    width: 66.6666666667%;
  }
  .u-9\/12\@xxl {
    width: 75%;
  }
  .u-10\/12\@xxl {
    width: 83.3333333333%;
  }
  .u-11\/12\@xxl {
    width: 91.6666666667%;
  }
  .u-12\/12\@xxl {
    width: 100%;
  }
}
@media (max-width: 1600px) {
  .u-1\/1\@xl {
    width: 100%;
  }
  .u-1\/2\@xl {
    width: 50%;
  }
  .u-2\/2\@xl {
    width: 100%;
  }
  .u-1\/3\@xl {
    width: 33.3333333333%;
  }
  .u-2\/3\@xl {
    width: 66.6666666667%;
  }
  .u-3\/3\@xl {
    width: 100%;
  }
  .u-1\/4\@xl {
    width: 25%;
  }
  .u-2\/4\@xl {
    width: 50%;
  }
  .u-3\/4\@xl {
    width: 75%;
  }
  .u-4\/4\@xl {
    width: 100%;
  }
  .u-1\/5\@xl {
    width: 20%;
  }
  .u-2\/5\@xl {
    width: 40%;
  }
  .u-3\/5\@xl {
    width: 60%;
  }
  .u-4\/5\@xl {
    width: 80%;
  }
  .u-5\/5\@xl {
    width: 100%;
  }
  .u-1\/6\@xl {
    width: 16.6666666667%;
  }
  .u-2\/6\@xl {
    width: 33.3333333333%;
  }
  .u-3\/6\@xl {
    width: 50%;
  }
  .u-4\/6\@xl {
    width: 66.6666666667%;
  }
  .u-5\/6\@xl {
    width: 83.3333333333%;
  }
  .u-6\/6\@xl {
    width: 100%;
  }
  .u-1\/12\@xl {
    width: 8.3333333333%;
  }
  .u-2\/12\@xl {
    width: 16.6666666667%;
  }
  .u-3\/12\@xl {
    width: 25%;
  }
  .u-4\/12\@xl {
    width: 33.3333333333%;
  }
  .u-5\/12\@xl {
    width: 41.6666666667%;
  }
  .u-6\/12\@xl {
    width: 50%;
  }
  .u-7\/12\@xl {
    width: 58.3333333333%;
  }
  .u-8\/12\@xl {
    width: 66.6666666667%;
  }
  .u-9\/12\@xl {
    width: 75%;
  }
  .u-10\/12\@xl {
    width: 83.3333333333%;
  }
  .u-11\/12\@xl {
    width: 91.6666666667%;
  }
  .u-12\/12\@xl {
    width: 100%;
  }
}
@media (max-width: 1280px) {
  .u-1\/1\@l {
    width: 100%;
  }
  .u-1\/2\@l {
    width: 50%;
  }
  .u-2\/2\@l {
    width: 100%;
  }
  .u-1\/3\@l {
    width: 33.3333333333%;
  }
  .u-2\/3\@l {
    width: 66.6666666667%;
  }
  .u-3\/3\@l {
    width: 100%;
  }
  .u-1\/4\@l {
    width: 25%;
  }
  .u-2\/4\@l {
    width: 50%;
  }
  .u-3\/4\@l {
    width: 75%;
  }
  .u-4\/4\@l {
    width: 100%;
  }
  .u-1\/5\@l {
    width: 20%;
  }
  .u-2\/5\@l {
    width: 40%;
  }
  .u-3\/5\@l {
    width: 60%;
  }
  .u-4\/5\@l {
    width: 80%;
  }
  .u-5\/5\@l {
    width: 100%;
  }
  .u-1\/6\@l {
    width: 16.6666666667%;
  }
  .u-2\/6\@l {
    width: 33.3333333333%;
  }
  .u-3\/6\@l {
    width: 50%;
  }
  .u-4\/6\@l {
    width: 66.6666666667%;
  }
  .u-5\/6\@l {
    width: 83.3333333333%;
  }
  .u-6\/6\@l {
    width: 100%;
  }
  .u-1\/12\@l {
    width: 8.3333333333%;
  }
  .u-2\/12\@l {
    width: 16.6666666667%;
  }
  .u-3\/12\@l {
    width: 25%;
  }
  .u-4\/12\@l {
    width: 33.3333333333%;
  }
  .u-5\/12\@l {
    width: 41.6666666667%;
  }
  .u-6\/12\@l {
    width: 50%;
  }
  .u-7\/12\@l {
    width: 58.3333333333%;
  }
  .u-8\/12\@l {
    width: 66.6666666667%;
  }
  .u-9\/12\@l {
    width: 75%;
  }
  .u-10\/12\@l {
    width: 83.3333333333%;
  }
  .u-11\/12\@l {
    width: 91.6666666667%;
  }
  .u-12\/12\@l {
    width: 100%;
  }
}
@media (max-width: 960px) {
  .u-1\/1\@m {
    width: 100%;
  }
  .u-1\/2\@m {
    width: 50%;
  }
  .u-2\/2\@m {
    width: 100%;
  }
  .u-1\/3\@m {
    width: 33.3333333333%;
  }
  .u-2\/3\@m {
    width: 66.6666666667%;
  }
  .u-3\/3\@m {
    width: 100%;
  }
  .u-1\/4\@m {
    width: 25%;
  }
  .u-2\/4\@m {
    width: 50%;
  }
  .u-3\/4\@m {
    width: 75%;
  }
  .u-4\/4\@m {
    width: 100%;
  }
  .u-1\/5\@m {
    width: 20%;
  }
  .u-2\/5\@m {
    width: 40%;
  }
  .u-3\/5\@m {
    width: 60%;
  }
  .u-4\/5\@m {
    width: 80%;
  }
  .u-5\/5\@m {
    width: 100%;
  }
  .u-1\/6\@m {
    width: 16.6666666667%;
  }
  .u-2\/6\@m {
    width: 33.3333333333%;
  }
  .u-3\/6\@m {
    width: 50%;
  }
  .u-4\/6\@m {
    width: 66.6666666667%;
  }
  .u-5\/6\@m {
    width: 83.3333333333%;
  }
  .u-6\/6\@m {
    width: 100%;
  }
  .u-1\/12\@m {
    width: 8.3333333333%;
  }
  .u-2\/12\@m {
    width: 16.6666666667%;
  }
  .u-3\/12\@m {
    width: 25%;
  }
  .u-4\/12\@m {
    width: 33.3333333333%;
  }
  .u-5\/12\@m {
    width: 41.6666666667%;
  }
  .u-6\/12\@m {
    width: 50%;
  }
  .u-7\/12\@m {
    width: 58.3333333333%;
  }
  .u-8\/12\@m {
    width: 66.6666666667%;
  }
  .u-9\/12\@m {
    width: 75%;
  }
  .u-10\/12\@m {
    width: 83.3333333333%;
  }
  .u-11\/12\@m {
    width: 91.6666666667%;
  }
  .u-12\/12\@m {
    width: 100%;
  }
}
@media (max-width: 720px) {
  .u-1\/1\@s {
    width: 100%;
  }
  .u-1\/2\@s {
    width: 50%;
  }
  .u-2\/2\@s {
    width: 100%;
  }
  .u-1\/3\@s {
    width: 33.3333333333%;
  }
  .u-2\/3\@s {
    width: 66.6666666667%;
  }
  .u-3\/3\@s {
    width: 100%;
  }
  .u-1\/4\@s {
    width: 25%;
  }
  .u-2\/4\@s {
    width: 50%;
  }
  .u-3\/4\@s {
    width: 75%;
  }
  .u-4\/4\@s {
    width: 100%;
  }
  .u-1\/5\@s {
    width: 20%;
  }
  .u-2\/5\@s {
    width: 40%;
  }
  .u-3\/5\@s {
    width: 60%;
  }
  .u-4\/5\@s {
    width: 80%;
  }
  .u-5\/5\@s {
    width: 100%;
  }
  .u-1\/6\@s {
    width: 16.6666666667%;
  }
  .u-2\/6\@s {
    width: 33.3333333333%;
  }
  .u-3\/6\@s {
    width: 50%;
  }
  .u-4\/6\@s {
    width: 66.6666666667%;
  }
  .u-5\/6\@s {
    width: 83.3333333333%;
  }
  .u-6\/6\@s {
    width: 100%;
  }
  .u-1\/12\@s {
    width: 8.3333333333%;
  }
  .u-2\/12\@s {
    width: 16.6666666667%;
  }
  .u-3\/12\@s {
    width: 25%;
  }
  .u-4\/12\@s {
    width: 33.3333333333%;
  }
  .u-5\/12\@s {
    width: 41.6666666667%;
  }
  .u-6\/12\@s {
    width: 50%;
  }
  .u-7\/12\@s {
    width: 58.3333333333%;
  }
  .u-8\/12\@s {
    width: 66.6666666667%;
  }
  .u-9\/12\@s {
    width: 75%;
  }
  .u-10\/12\@s {
    width: 83.3333333333%;
  }
  .u-11\/12\@s {
    width: 91.6666666667%;
  }
  .u-12\/12\@s {
    width: 100%;
  }
}
@media (max-width: 480px) {
  .u-1\/1\@xs {
    width: 100%;
  }
  .u-1\/2\@xs {
    width: 50%;
  }
  .u-2\/2\@xs {
    width: 100%;
  }
  .u-1\/3\@xs {
    width: 33.3333333333%;
  }
  .u-2\/3\@xs {
    width: 66.6666666667%;
  }
  .u-3\/3\@xs {
    width: 100%;
  }
  .u-1\/4\@xs {
    width: 25%;
  }
  .u-2\/4\@xs {
    width: 50%;
  }
  .u-3\/4\@xs {
    width: 75%;
  }
  .u-4\/4\@xs {
    width: 100%;
  }
  .u-1\/5\@xs {
    width: 20%;
  }
  .u-2\/5\@xs {
    width: 40%;
  }
  .u-3\/5\@xs {
    width: 60%;
  }
  .u-4\/5\@xs {
    width: 80%;
  }
  .u-5\/5\@xs {
    width: 100%;
  }
  .u-1\/6\@xs {
    width: 16.6666666667%;
  }
  .u-2\/6\@xs {
    width: 33.3333333333%;
  }
  .u-3\/6\@xs {
    width: 50%;
  }
  .u-4\/6\@xs {
    width: 66.6666666667%;
  }
  .u-5\/6\@xs {
    width: 83.3333333333%;
  }
  .u-6\/6\@xs {
    width: 100%;
  }
  .u-1\/12\@xs {
    width: 8.3333333333%;
  }
  .u-2\/12\@xs {
    width: 16.6666666667%;
  }
  .u-3\/12\@xs {
    width: 25%;
  }
  .u-4\/12\@xs {
    width: 33.3333333333%;
  }
  .u-5\/12\@xs {
    width: 41.6666666667%;
  }
  .u-6\/12\@xs {
    width: 50%;
  }
  .u-7\/12\@xs {
    width: 58.3333333333%;
  }
  .u-8\/12\@xs {
    width: 66.6666666667%;
  }
  .u-9\/12\@xs {
    width: 75%;
  }
  .u-10\/12\@xs {
    width: 83.3333333333%;
  }
  .u-11\/12\@xs {
    width: 91.6666666667%;
  }
  .u-12\/12\@xs {
    width: 100%;
  }
}
/* ------------------------------------*\
    #SPACING-ITEM
\*------------------------------------ */
.u-spacing-item-flush {
  padding-right: 0;
  padding-left: 0;
}
.u-spacing-item-flush:first-child {
  padding-top: 0;
}
.u-spacing-item-flush:last-child {
  padding-bottom: 0;
}

.u-spacing-item-flush-all.u-spacing-item-flush-all {
  padding: 0; /* [2] */
}

/* ------------------------------------*\
    #OVERFLOW-HIDDEN
\*------------------------------------ */
/**
 * A utility class for clipping the content at the element’s padding box.
 * No scrollbars are provided, and no support for allowing the user to scroll
 * (such as by dragging or using a scroll wheel) is allowed.
 */
.u-overflow-hidden {
  overflow: hidden !important;
}

/* ------------------------------------*\
    #BACKGROUND-COLORS
\*------------------------------------ */
[data-theme=alternative],
.u-bg-alternative {
  background-color: #ffffff !important;
}

[data-theme=brand],
.u-bg-brand {
  background-color: #347954 !important;
}

[data-theme=white],
.u-bg-white {
  background-color: #ffffff !important;
}

/* ------------------------------------*\
    #TEXT-COLORS
\*------------------------------------ */
.u-text-base {
  color: #161718 !important;
}

.u-text-muted {
  color: #d8d8d8 !important;
}

/* ------------------------------------*\
    #TEXT-COLORS
\*------------------------------------ */
.u-text-subtle {
  color: #7c7d7e !important;
}

/* ------------------------------------*\
    #BLOCK-CENTER
\*------------------------------------ */
.u-block-center {
  margin-right: auto !important;
  margin-left: auto !important;
}

/* ------------------------------------*\
    #FOCUS-POINTS
\*------------------------------------ */
.u-focus-point-top-center {
  object-fit: cover !important;
  object-position: top center !important;
}

.u-focus-point-top-left {
  object-fit: cover !important;
  object-position: top left !important;
}

.u-focus-point-top-right {
  object-fit: cover !important;
  object-position: top right !important;
}

.u-focus-point-center-left {
  object-fit: cover !important;
  object-position: center left !important;
}

.u-focus-point-center-center {
  object-fit: cover !important;
  object-position: center center !important;
}

.u-focus-point-center-right {
  object-fit: cover !important;
  object-position: center right !important;
}

.u-focus-point-bottom-center {
  object-fit: cover !important;
  object-position: bottom center !important;
}

.u-focus-point-bottom-left {
  object-fit: cover !important;
  object-position: bottom left !important;
}

.u-focus-point-bottom-right {
  object-fit: cover !important;
  object-position: bottom right !important;
}

/* ------------------------------------*\
    #BASE-LINK
\*------------------------------------ */
/**
 * Makes it possible to style arbitrary elements and components as inline link.
 * [1] Reset all possible vendor button styles except focus styles.
 * [2] Add the shared link styles to the utility.
 * [3] Make sure to always inline the element.
 * [4] Reset submit input styles.
 */
.u-base-link {
  padding: 0;
  border: 0;
  background-color: transparent;
  /* [1] */
  text-decoration: underline !important;
  color: inherit !important;
  cursor: pointer !important;
  /* [2] */
  /* [2] */
  display: inline !important; /* [3] */
}
.u-base-link:hover {
  /* [2] */
}
.u-base-link:focus {
  /* [2] */
}
.u-base-link:active {
  /* [2] */
}
.u-base-link[type=submit] {
  -webkit-appearance: none;
  appearance: none; /* [4] */
  font-family: inherit; /* [4] */
}

/* ------------------------------------*\
    #HEADINGS
\*------------------------------------ */
/**
 * Headings 1–6's corresponding classes for double-stranded heading hierarchy:
 * https://csswizardry.com/2012/02/pragmatic-practical-font-sizing-in-css
 *
 * Use these helper classes to cause heading elements to adopt the font-size of
 * another respective heading level, e.g.:
 *
 * `<h3 class="u-h1">Semantic h3, looks like h1<h3>`
 *
 */
.u-h1 {
  /* stylelint-disable-line scss/dollar-variable-colon-space-after */
  font-size: 2.0625rem !important;
  line-height: 1.2 !important;
}
@media (min-width: 721px) {
  .u-h1 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 2.375rem !important;
    line-height: 1.2 !important;
  }
}
@media (min-width: 1281px) {
  .u-h1 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 2.75rem !important;
    line-height: 1.2 !important;
  }
}

.u-h2 {
  /* stylelint-disable-line scss/dollar-variable-colon-space-after */
  font-size: 1.75rem !important;
  line-height: 1.2 !important;
}
@media (min-width: 721px) {
  .u-h2 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 2rem !important;
    line-height: 1.2 !important;
  }
}
@media (min-width: 1281px) {
  .u-h2 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 2.25rem !important;
    line-height: 1.2 !important;
  }
}

.u-h3 {
  /* stylelint-disable-line scss/dollar-variable-colon-space-after */
  font-size: 1.4375rem !important;
  line-height: 1.2 !important;
}
@media (min-width: 721px) {
  .u-h3 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 1.6875rem !important;
    line-height: 1.2 !important;
  }
}
@media (min-width: 1281px) {
  .u-h3 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 1.875rem !important;
    line-height: 1.2 !important;
  }
}

.u-h4 {
  /* stylelint-disable-line scss/dollar-variable-colon-space-after */
  font-size: 1.25rem !important;
  line-height: 1.2 !important;
}
@media (min-width: 721px) {
  .u-h4 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 1.4375rem !important;
    line-height: 1.2 !important;
  }
}
@media (min-width: 1281px) {
  .u-h4 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 1.5rem !important;
    line-height: 1.2 !important;
  }
}

.u-h5 {
  /* stylelint-disable-line scss/dollar-variable-colon-space-after */
  font-size: 1.25rem !important;
  line-height: 1.2 !important;
}
@media (min-width: 721px) {
  .u-h5 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 1.4375rem !important;
    line-height: 1.2 !important;
  }
}
@media (min-width: 1281px) {
  .u-h5 {
    /* stylelint-disable-line scss/dollar-variable-colon-space-after */
    font-size: 1.5rem !important;
    line-height: 1.2 !important;
  }
}

.u-h6 {
  /* stylelint-disable-line scss/dollar-variable-colon-space-after */
  font-size: 1rem !important;
  line-height: 1.5 !important;
}

.u-h1,
.u-h2,
.u-h3,
.u-h4,
.u-h5,
.u-h6 {
  display: block;
  /* stylelint-disable-next-line order/order */
  margin-bottom: 24px !important;
  font-weight: 700 !important;
  /**
   * [1] Check if a theme is set or if the default theme (null) is used.
   *     If the `default` theme is used we execute the already present logic,
   *     else we just return the content unwrapped.
   */
}
/* [1] */
[data-theme=brand] .u-h1,
[data-theme=brand] .u-h2,
[data-theme=brand] .u-h3,
[data-theme=brand] .u-h4,
[data-theme=brand] .u-h5,
[data-theme=brand] .u-h6 {
  color: #ffffff !important;
}

/* ------------------------------------*\
   #OBJECT-FIT
\*------------------------------------ */
/**
 * [1] Scale the width and height of a replacement element (e.g. `<img>` or
 * `<video>`) to its container dimensions.
 */
.u-object-fit-contain {
  object-fit: contain !important;
  width: 100%; /* [1] */
  height: 100%; /* [1] */
}

.u-object-fit-cover {
  object-fit: cover !important;
  width: 100%; /* [1] */
  height: 100%; /* [1] */
}

/* ------------------------------------*\
    #SHAME
\*------------------------------------ */
/**
 * Hacky, nasty code. These bits have to be repaired!
 *
 * Guidelines:
 * - Ticket Reference
 * - Document why this fix is needed
 */
/**
 * This CSS custom property provides the selectors list for `float-grid.js`.
 * Since the list is only complete after the `float-grid-area` mixin has been
 * processed for all Float Grid components, we choose '_shame.scss' as its
 * location.
 */
.o-float-grid {
  --float-grid-selectors: .js-enable-3rd-party-float-grid #ccc-icon, .js-enable-3rd-party-float-grid #mercury-widget, .c-floating-button, .c-product-search-header__filter-bar, .c-action-buttons-container;
}

/**
 * When `transition-property: all` is applied, the focus outline is not displayed
 * for buttons that have border applied (not secondary).
 * This only occurs in Safari.
 * By limiting the transition to relevant properties (bg-color, transform) fixes the issue as this
 * is the main property that needs a transition.
 */
@supports (-webkit-hyphens: none) {
  .c-btn {
    transition-property: background-color, transform;
  }
}

/**
 * Use proper line-height for text.
 * line-height variables are used for multiple size and spacing calculations,
 * therefore can't be unitless.
 */
.c-btn__text,
.c-button-group__label,
.c-link__body {
  line-height: 1;
}

/**
 * Ensure proper circular shape.
 * Other properties that determine the height does not result in 1:1 ratio.
 */
.c-btn--action {
  min-height: var(--button-height);
}

/**
 * Disable outline on thumb to avoid rendering issues while dragging.
 */
@supports (-webkit-hyphens: none) {
  .c-custom-range-slider:not([disabled]) .c-custom-range-slider__thumb::before {
    outline: 0 !important; /* stylelint-disable-line itcss/no-at-important */
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjAxLXNldHRpbmdzL19zZXR0aW5ncy5iYXNlLnNjc3MiLCIwMS1zZXR0aW5ncy9fc2V0dGluZ3Muc2hhZG93cy5zY3NzIiwiMDEtc2V0dGluZ3MvX3NldHRpbmdzLmJ1dHRvbnMuc2NzcyIsIjAxLXNldHRpbmdzL19zZXR0aW5ncy5jYXJkLXBhdHRlcm5zLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDEtc2V0dGluZ3MvX3NldHRpbmdzLmJhc2Uuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wMS1zZXR0aW5ncy9fc2V0dGluZ3MuZm9ybXMuc2NzcyIsIjAyLXRvb2xzL190b29scy5wYWdlLXdyYXAuc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tY29yZS8wMi10b29scy9fdG9vbHMuYnJvd3Nlci1oYWNrcy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1jb3JlLzAyLXRvb2xzL190b29scy5jbGVhcmZpeC5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1jb3JlLzAyLXRvb2xzL190b29scy5mbGV4LWFsaWdubWVudC5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1jb3JlLzAyLXRvb2xzL190b29scy50b3VjaC1oaWdobGlnaHQuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tY29yZS8wMi10b29scy9fdG9vbHMuc3BhY2luZy1jb250YWluZXIuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wMi10b29scy9fdG9vbHMuZmxpY2tpdHkuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wMi10b29scy9fdG9vbHMubGVnYWN5LWJyb3dzZXItbm90aWZpY2F0aW9uLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWNvcmUvMDMtZ2VuZXJpYy9fZ2VuZXJpYy5zY29wZWQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb2Rlcm4tbm9ybWFsaXplL21vZGVybi1ub3JtYWxpemUuY3NzIiwic3R5bGUuY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1jb3JlLzAzLWdlbmVyaWMvX2dlbmVyaWMuYm94LXNpemluZy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1jb3JlLzAzLWdlbmVyaWMvX2dlbmVyaWMucmVzZXQuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tY29yZS8wMy1nZW5lcmljL19nZW5lcmljLnNoYXJlZC5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzAzLWdlbmVyaWMvX2dlbmVyaWMuZm9udC1mYWNlLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDItdG9vbHMvX3Rvb2xzLmZvbnQtZmFjZS5zY3NzIiwiMDEtc2V0dGluZ3MvX3NldHRpbmdzLmZvbnRzLnNjc3MiLCIwMS1zZXR0aW5ncy9fc2V0dGluZ3MuaWNvbi1mb250cy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzAzLWdlbmVyaWMvX2dlbmVyaWMuaWNvbi1mb250cy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1jb3JlLzA0LWVsZW1lbnRzL19lbGVtZW50cy5mb3Jtcy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1jb3JlLzA0LWVsZW1lbnRzL19lbGVtZW50cy5pbWFnZXMuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tY29yZS8wNC1lbGVtZW50cy9fZWxlbWVudHMubGlzdHMuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tY29yZS8wNC1lbGVtZW50cy9fZWxlbWVudHMuc21hbGwuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tY29yZS8wMi10b29scy9fdG9vbHMuZm9udC1zaXplLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWNvcmUvMDQtZWxlbWVudHMvX2VsZW1lbnRzLmRldGFpbHMuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNC1lbGVtZW50cy9fZWxlbWVudHMuaGVhZGluZ3Muc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tY29yZS8wMi10b29scy9fdG9vbHMubWVkaWEtcXVlcnkuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tY29yZS8wMi10b29scy9fdG9vbHMuaGVhZGluZ3Muc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tY29yZS8wMi10b29scy9fdG9vbHMudmFyeS5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA0LWVsZW1lbnRzL19lbGVtZW50cy5wYWdlLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDEtc2V0dGluZ3MvX3NldHRpbmdzLmZvbnRzLnNjc3MiLCIwMS1zZXR0aW5ncy9fc2V0dGluZ3MuY29sb3JzLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDQtZWxlbWVudHMvX2VsZW1lbnRzLmRsLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDQtZWxlbWVudHMvX2VsZW1lbnRzLmZvcm1zLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDQtZWxlbWVudHMvX2VsZW1lbnRzLmxhYmVsLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDQtZWxlbWVudHMvX2VsZW1lbnRzLmxpc3RzLnNjc3MiLCIwNC1lbGVtZW50cy9fZWxlbWVudHMubGlzdHMuc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNC1lbGVtZW50cy9fZWxlbWVudHMuaHIuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNC1lbGVtZW50cy9fZWxlbWVudHMuYS5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzAyLXRvb2xzL190b29scy5iYXNlLWxpbmsuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNC1lbGVtZW50cy9fZWxlbWVudHMuc3Ryb25nLnNjc3MiLCIwNC1lbGVtZW50cy9fZWxlbWVudHMuZm9ybXMuc2NzcyIsIjA1LW9iamVjdHMvX29iamVjdHMubGF5b3V0LnNldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWNvcmUvMDUtb2JqZWN0cy9fb2JqZWN0cy5pbmxpbmUtZ3JvdXAuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tY29yZS8wNS1vYmplY3RzL19vYmplY3RzLmxheW91dC5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1jb3JlLzAyLXRvb2xzL190b29scy5yZXNwb25zaXZlLXByb3BlcnR5LnNjc3MiLCIwMS1zZXR0aW5ncy9fc2V0dGluZ3MuYm9yZGVyLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWNvcmUvMDUtb2JqZWN0cy9fb2JqZWN0cy5saXN0LWJhcmUuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tY29yZS8wMi10b29scy9fdG9vbHMubGlzdC1iYXJlLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWNvcmUvMDUtb2JqZWN0cy9fb2JqZWN0cy5saXN0LWNhc3VhbC5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1jb3JlLzA1LW9iamVjdHMvX29iamVjdHMubGlzdC1pbmxpbmUuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tY29yZS8wNS1vYmplY3RzL19vYmplY3RzLm1lZGlhLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWNvcmUvMDUtb2JqZWN0cy9fb2JqZWN0cy5yYXRpby5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA1LW9iamVjdHMvX29iamVjdHMucGFnZS13cmFwLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDItdG9vbHMvX3Rvb2xzLnBhZ2Utd3JhcC5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA1LW9iamVjdHMvX29iamVjdHMucm9vdC1jb250YWluZXIuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNS1vYmplY3RzL19vYmplY3RzLm1haW4td3JhcHBlci5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA1LW9iamVjdHMvX29iamVjdHMuZmllbGRzZXQuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNS1vYmplY3RzL19vYmplY3RzLmJ1dHRvbi1jb250YWluZXIuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wMS1zZXR0aW5ncy9fc2V0dGluZ3MuYnV0dG9ucy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA1LW9iamVjdHMvX29iamVjdHMuY29udGVudC1zZWN0aW9uLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDUtb2JqZWN0cy9fb2JqZWN0cy5jb21wb25lbnQtd3JhcHBlci5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA1LW9iamVjdHMvX29iamVjdHMuZmxvYXQtZ3JpZC5zY3NzIiwiPG5vIHNvdXJjZT4iLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDYtdmVuZG9yL2ZsaWNraXR5L19mbGlja2l0eS5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1jb3JlLzAxLXNldHRpbmdzL19zZXR0aW5ncy5iYXNlLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDItdG9vbHMvX3Rvb2xzLnRyYW5zaXRpb24uc2NzcyIsIjA2LXZlbmRvci9mbGlja2l0eS9fZmxpY2tpdHkuc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wMi10b29scy9fdG9vbHMuaWNvbnMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mYW1pbHkuc2Nzcy9zb3VyY2Uvc3JjL19mYW1pbHkuc2NzcyIsIjA2LXZlbmRvci9mbGlja2l0eS9fZmxpY2tpdHkuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tY29yZS8wMi10b29scy9fdG9vbHMuZm9jdXMuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNi12ZW5kb3IvdGlwcHlqcy90aXBweS5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA2LXZlbmRvci90aXBweWpzL19taXhpbnMuc2NzcyIsIjAxLXNldHRpbmdzL19zZXR0aW5ncy50b29sdGlwLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDYtdmVuZG9yL2ZsYXRwaWNrci9fZmxhdHBpY2tyLnNjc3MiLCIwNi12ZW5kb3IvZmxhdHBpY2tyL19mbGF0cGlja3Iuc2V0dGluZ3Muc2NzcyIsIjAxLXNldHRpbmdzL19zZXR0aW5ncy5mb3Jtcy5zY3NzIiwiMDYtdmVuZG9yL2ZsYXRwaWNrci9fZmxhdHBpY2tyLnNjc3MiLCIwMi10b29scy9fdG9vbHMuYnV0dG9uLWljb24tc3RhdGVzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcGx5ci9zcmMvc2Fzcy9saWIvYW5pbWF0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcGx5ci9zcmMvc2Fzcy9iYXNlLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcGx5ci9zcmMvc2Fzcy9saWIvbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcGx5ci9zcmMvc2Fzcy9jb21wb25lbnRzL2JhZGdlcy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA2LXZlbmRvci9wbHlyL192ZW5kb3IucGx5ci5zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BseXIvc3JjL3Nhc3MvY29tcG9uZW50cy9jYXB0aW9ucy5zY3NzIiwiMDYtdmVuZG9yL3BseXIvX3ZlbmRvci5wbHlyLnNldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcGx5ci9zcmMvc2Fzcy9jb21wb25lbnRzL2NvbnRyb2wuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wbHlyL3NyYy9zYXNzL2NvbXBvbmVudHMvY29udHJvbHMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wbHlyL3NyYy9zYXNzL2NvbXBvbmVudHMvbWVudXMuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wMS1zZXR0aW5ncy9fc2V0dGluZ3Muc2hhZG93cy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BseXIvc3JjL3Nhc3MvY29tcG9uZW50cy9zbGlkZXJzLnNjc3MiLCIwMS1zZXR0aW5ncy9fc2V0dGluZ3MucmFuZ2Utc2xpZGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcGx5ci9zcmMvc2Fzcy9jb21wb25lbnRzL3Bvc3Rlci5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BseXIvc3JjL3Nhc3MvY29tcG9uZW50cy90aW1lcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BseXIvc3JjL3Nhc3MvY29tcG9uZW50cy90b29sdGlwcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BseXIvc3JjL3Nhc3MvY29tcG9uZW50cy9wcm9ncmVzcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BseXIvc3JjL3Nhc3MvY29tcG9uZW50cy92b2x1bWUuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wbHlyL3NyYy9zYXNzL3R5cGVzL2F1ZGlvLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcGx5ci9zcmMvc2Fzcy90eXBlcy92aWRlby5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BseXIvc3JjL3Nhc3Mvc3RhdGVzL2Z1bGxzY3JlZW4uc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wbHlyL3NyYy9zYXNzL3BsdWdpbnMvYWRzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcGx5ci9zcmMvc2Fzcy9zZXR0aW5ncy9jb2xvcnMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wbHlyL3NyYy9zYXNzL3BsdWdpbnMvcHJldmlldy10aHVtYm5haWxzL2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcGx5ci9zcmMvc2Fzcy9wbHVnaW5zL3ByZXZpZXctdGh1bWJuYWlscy9zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BseXIvc3JjL3Nhc3MvdXRpbHMvYW5pbWF0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcGx5ci9zcmMvc2Fzcy91dGlscy9oaWRkZW4uc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNi12ZW5kb3IvY2l2aWMtY29va2llLWNvbnRyb2wvX2NpdmljLWNvb2tpZS1jb250cm9sLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDItdG9vbHMvX3Rvb2xzLmZsb2F0LWdyaWQuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tY29yZS8wMi10b29scy9fdG9vbHMuYTExeS1oaWRkZW4uc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNi12ZW5kb3IvbWVyY3VyeS9fbWVyY3VyeS5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuaWNvbnMuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tY29yZS8wMi10b29scy9fdG9vbHMucmVzZXQtYnV0dG9uLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5oZWFkZXIuc2NzcyIsIjAxLXNldHRpbmdzL19zZXR0aW5ncy5oZWFkZXIuc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuaGVhZGVyLnNldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5mb290ZXIuc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuZm9vdGVyLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5iYWRnZS5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzAyLXRvb2xzL190b29scy5iYWRnZS5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5iYWRnZS5zZXR0aW5ncy5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5idXR0b25zLnNldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5idXR0b25zLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWNvcmUvMDItdG9vbHMvX3Rvb2xzLnRydW5jYXRlLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmJ1dHRvbnMuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLmJhY2stdG8tdG9wLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5idXR0b24tZ3JvdXAuc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuYnV0dG9uLWdyb3VwLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5saXN0LW5lc3RlZC1jb3VudGVyLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmxpc3QtbmVzdGVkLWNvdW50ZXIuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLm9yZGVyZWQtbGlzdC5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5vcmRlcmVkLWxpc3Quc2V0dGluZ3Muc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMub3JkZXJlZC1saXN0LnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy51bm9yZGVyZWQtbGlzdC5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy51bm9yZGVyZWQtbGlzdC5zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuc2VjdGlvbi1oZWFkaW5ncy5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5mb3JtLWhlYWRpbmdzLnNldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5mb3JtLWhlYWRpbmdzLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5mb3JtLWZpZWxkLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmZvcm0tZmllbGQuc2V0dGluZ3Muc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuZm9ybS1maWVsZC5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuZm9ybS1zZWN0aW9uLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmZvcm0tc2VjdGlvbi5zZXR0aW5ncy5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5mb3JtLXNlY3Rpb24uc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLmlucHV0LnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmlucHV0LnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmVycm9yLW1lc3NhZ2Uuc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLmVycm9yLW1lc3NhZ2Uuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLmNoZWNrYm94LnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmNoZWNrYm94LnNldHRpbmdzLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmNoZWNrYm94LnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmNvbWJvYm94LnNldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5jb21ib2JveC5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzAyLXRvb2xzL190b29scy5zY3JvbGxhYmxlLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmNvbWJvYm94LnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy50aWxlLXNlbGVjdC5zY3NzIiwiMDEtc2V0dGluZ3MvX3NldHRpbmdzLnRyYW5zaXRpb24uc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMudGlsZS1zZWxlY3Quc2V0dGluZ3Muc2NzcyIsIjAxLXNldHRpbmdzL19zZXR0aW5ncy5oZWFkaW5ncy5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy50aWxlLXNlbGVjdC5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMucmFkaW8tYnV0dG9uLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLnJhZGlvLWJ1dHRvbi5zZXR0aW5ncy5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5yYWRpby1idXR0b24uc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLm1vZGFsLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDItdG9vbHMvX3Rvb2xzLmJhY2tkcm9wLnNjc3MiLCIwMS1zZXR0aW5ncy9fc2V0dGluZ3MuYmFja2Ryb3Auc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMubW9kYWwuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLmFjY29yZGlvbi5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5hY2NvcmRpb24uc2V0dGluZ3Muc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuYWNjb3JkaW9uLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5icmVhZGNydW1iLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmJyZWFkY3J1bWIuc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLmZvb3Rub3Rlcy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMudGFibGVzLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLnRhYmxlcy5zZXR0aW5ncy5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy50YWJsZXMuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLnRvZ2dsZS5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy50b2dnbGUuc2V0dGluZ3Muc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMudG9nZ2xlLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5wcm9ncmVzcy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzAxLXNldHRpbmdzL19zZXR0aW5ncy5wcm9ncmVzcy5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5wcmljZS1ib3guc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLnByaWNlLWJveC5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMudXBsb2FkLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLnVwbG9hZC5zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMudXBsb2FkLWl0ZW0uc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMudXBsb2FkLWl0ZW0uc2V0dGluZ3Muc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMudXBsb2FkLWl0ZW0uc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLnVwbG9hZC1jb250YWluZXIuc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuaWNvbi1saXN0LnNldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5pY29uLWxpc3Quc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLnRhYnMuc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMudGFicy5zZXR0aW5ncy5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy50YWJzLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5jYXJkcy5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5jYXJkcy5zZXR0aW5ncy5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5jYXJkcy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMubGlzdC11aS5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMudGFnLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLnRhZy5zZXR0aW5ncy5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy50YWcuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLnRhZy1saXN0LnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy50b29sdGlwLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLnRvb2x0aXAuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLml0ZW0tdGVhc2VyLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWNvcmUvMDItdG9vbHMvX3Rvb2xzLmNvbnRhaW5lci1xdWVyeS5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzAyLXRvb2xzL190b29scy5zdXBwb3J0cy1oYXMtc2VsZWN0b3Iuc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuaXRlbS10ZWFzZXIuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLmxvZ28uc2NzcyIsIjAxLXNldHRpbmdzL19zZXR0aW5ncy5sb2dvLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmxvZ28uc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLmxvZ28tYmFubmVyLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5wYWdpbmF0aW9uLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLnBhZ2luYXRpb24uc2V0dGluZ3Muc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMucGFnaW5hdGlvbi5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMubGljZW5zZS1wbGF0ZS5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuc2l0ZS1uYXYuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wMi10b29scy9fdG9vbHMuc2l0ZS1uYXYuc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuc2l0ZS1uYXYuc2V0dGluZ3Muc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuc2l0ZS1uYXYuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLnNpdGUtbmF2LWRyb3Bkb3duLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLnNpdGUtbmF2LWRyb3Bkb3duLnNldHRpbmdzLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLnNpdGUtbmF2LWRyb3Bkb3duLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5jb250ZXh0LWJhci5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5jb250ZXh0LWJhci5zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuZGF0YS1vdmVydmlldy5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5kYXRhLW92ZXJ2aWV3LnNldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5kYXRlcGlja2VyLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy50aW1lcGlja2VyLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5pbnN0cnVjdGlvbi1zdGVwcGVyLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmluc3RydWN0aW9uLXN0ZXBwZXIuc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLnByb2R1Y3QtdGFibGUuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLnNwaW5uZXIuc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuc3Bpbm5lci5zZXR0aW5ncy5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5zcGlubmVyLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5jdXN0b20tcmFuZ2Utc2xpZGVyLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDEtc2V0dGluZ3MvX3NldHRpbmdzLnJhbmdlLXNsaWRlci5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5jdXN0b20tcmFuZ2Utc2xpZGVyLnNldHRpbmdzLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmN1c3RvbS1yYW5nZS1zbGlkZXIuc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMubm90aWZpY2F0aW9ucy5zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMubm90aWZpY2F0aW9ucy5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5ub3RpZmljYXRpb25zLnNjc3MiLCIwMS1zZXR0aW5ncy9fc2V0dGluZ3Mubm90aWZpY2F0aW9ucy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMud2l6YXJkLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLndpemFyZC5zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzAyLXRvb2xzL190b29scy5pY29uLXZhcmlhbnRzLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLndpemFyZC5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuaW5mby1pY29uLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmluZm8taWNvbi5zZXR0aW5ncy5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5pbmZvLWljb24uc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLmhlcm8tdGVhc2VyLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDItdG9vbHMvX3Rvb2xzLm9iamVjdC1maXQuc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuaGVyby10ZWFzZXIuc2V0dGluZ3Muc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuaGVyby10ZWFzZXIuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLm1lZGlhLXRlYXNlci5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5tZWRpYS10ZWFzZXIuc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMubWVkaWEtZ3JpZC5zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMubWVkaWEtZ3JpZC5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuY2Fyb3VzZWwuc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuY2Fyb3VzZWwuc2V0dGluZ3Muc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuY2Fyb3VzZWwuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLnN0aWNreS1jb250YWluZXIuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLmZvbGQtb3V0LnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmZvbGQtb3V0LnNldHRpbmdzLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmZvbGQtb3V0LnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5wcm9kdWN0LWluZm8uc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLnByb2R1Y3QtaW5mby1zdW1tYXJ5LnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5wbHlyLm92ZXJyaWRlcy5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5wbHlyLm92ZXJyaWRlcy5zZXR0aW5ncy5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5wbHlyLm92ZXJyaWRlcy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuZmF2LWJ1dHRvbi5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5mYXYtYnV0dG9uLnNldHRpbmdzLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmZhdi1idXR0b24uc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLmJsb2NrcXVvdGUuc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuZmxvYXRpbmctYnV0dG9uLnNldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5mbG9hdGluZy1idXR0b24uc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLmZsb2F0aW5nLWJhci5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuZXhwYW5kYWJsZS1jb250ZW50LnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmV4cGFuZGFibGUtY29udGVudC5zZXR0aW5ncy5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5leHBhbmRhYmxlLWNvbnRlbnQuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLmd1aWRpbmctbGluZS5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMucGxheS1idXR0b24uc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMucGxheS1idXR0b24uc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLmxhYmVsZWQtY29udGVudC1zZWN0aW9uLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmNvbXBhcmUtYW5kLXNlbGVjdC5zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuY29tcGFyZS1hbmQtc2VsZWN0LnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmNvbXBhcmUtYW5kLXNlbGVjdC5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuaW5ib3gtZmlsdGVyLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmluYm94LXRhYmxlLnNldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5pbmJveC10YWJsZS5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5pbmJveC10YWJsZS5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMudG9hc3Qtbm90aWZpY2F0aW9uLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLnRvYXN0LW5vdGlmaWNhdGlvbi5zZXR0aW5ncy5zY3NzIiwiMDctY29tcG9uZW50cy9fY29tcG9uZW50cy50b2FzdC1ub3RpZmljYXRpb24uc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLmRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLnNldHRpbmdzLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLm5vdGlmaWNhdGlvbi1jZW50ZXIuc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLm5vdGlmaWNhdGlvbi1jZW50ZXIuc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMubm90aWZpY2F0aW9uLWNlbnRlci5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuY2FyZHMtc2xpZGVyLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy50cmVlLXZpZXcuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLmNhbGxvdXQuc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuY2FsbG91dC5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuaW5saW5lLWVkaXRhYmxlLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5wcm9kdWN0LWNhcmQuc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMucHJvZHVjdC1jYXJkLnNldHRpbmdzLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLnByb2R1Y3QtY2FyZC5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMucHJvZHVjdC1zZWFyY2guc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLmludGVyYWN0aW9uLWxheWVyLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmludGVyYWN0aW9uLWxheWVyLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5wcm9kdWN0LXNlYXJjaC1oZWFkZXIuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLnByb2R1Y3Qtc2VhcmNoLWZvcm0uc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuaW5kaWNhdG9yLWRvdC5zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuaW5kaWNhdG9yLWRvdC5zY3NzIiwiMDEtc2V0dGluZ3MvX3NldHRpbmdzLmluZGljYXRvci1kb3Quc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLnNlY3Rpb24tbmF2LnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLnNlY3Rpb24tbmF2LnNldHRpbmdzLnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLnNlY3Rpb24tbmF2LnNjc3MiLCIwMS1zZXR0aW5ncy9fc2V0dGluZ3MuZm9jdXMuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLnN0YXR1cy1tZXNzYWdlLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5oaW50LnNjc3MiLCIwNy1jb21wb25lbnRzL19jb21wb25lbnRzLmhpbnQuc2V0dGluZ3Muc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuaGludC5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuZGVzY3JpcHRpb24tbGlzdC5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA1LW9iamVjdHMvX29iamVjdHMudG9nZ2xlLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5zaG93LW1vcmUuc2NzcyIsIjA3LWNvbXBvbmVudHMvX2NvbXBvbmVudHMuc2hvdy1tb3JlLnNldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5hY3Rpb24tYnV0dG9ucy1jb250YWluZXIuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLmVmZmljaWVuY3ktdGFnLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDctY29tcG9uZW50cy9fY29tcG9uZW50cy5jdXN0b20tcHJvZ3Jlc3Muc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wNy1jb21wb25lbnRzL19jb21wb25lbnRzLmRyb3Bkb3duLWNvbnRhaW5lci5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA4LWZhbGxiYWNrcy9fZmFsbGJhY2tzLmZhdi1idXR0b24uc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wOC1mYWxsYmFja3MvX2ZhbGxiYWNrcy5mbGF0cGlja3Iuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wOC1mYWxsYmFja3MvX2ZhbGxiYWNrcy5sZWdhY3ktYnJvd3Nlci1ub3RpZmljYXRpb24uc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wOC1mYWxsYmFja3MvX2ZhbGxiYWNrcy5mb3JtLWZpZWxkLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDgtZmFsbGJhY2tzL19mYWxsYmFja3MubWVkaWEtZ3JpZC5zY3NzIiwiMDgtZmFsbGJhY2tzL19mYWxsYmFja3MuZmxhdHBpY2tyLnNjc3MiLCIwOS1zY29wZXMvX3Njb3Blcy5pbmRpY2F0b3ItZG90LnNldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDktc2NvcGVzL19zY29wZXMub2Zmc2V0LXN0aWNreS1lbGVtZW50cy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA5LXNjb3Blcy9fc2NvcGVzLmJ1dHRvbnMuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wOS1zY29wZXMvX3Njb3Blcy5pbnB1dC5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA5LXNjb3Blcy9fc2NvcGVzLmFjY29yZGlvbi5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA5LXNjb3Blcy9fc2NvcGVzLnByb2R1Y3QtaW5mby1zdW1tYXJ5LnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDktc2NvcGVzL19zY29wZXMuaW5mby1pY29uLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDktc2NvcGVzL19zY29wZXMuaGVhZGVyLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDktc2NvcGVzL19zY29wZXMucHJvZHVjdC1zZWFyY2gtZmlsdGVyLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDktc2NvcGVzL19zY29wZXMucHJvZHVjdC1zZWFyY2gtZm9ybS5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA5LXNjb3Blcy9fc2NvcGVzLmluZGljYXRvci1kb3Quc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wOS1zY29wZXMvX3Njb3Blcy5pbmRpY2F0b3ItZG90LnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDktc2NvcGVzL19zY29wZXMuaW50ZXJhY3Rpb24tbGF5ZXIuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wOS1zY29wZXMvX3Njb3Blcy50YWJsZXMuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wOS1zY29wZXMvX3Njb3Blcy5oZXJvLXRlYXNlci5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA5LXNjb3Blcy9fc2NvcGVzLmN1c3RvbS1wcm9ncmVzcy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzA5LXNjb3Blcy9fc2NvcGVzLmNhcmRzLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDktc2NvcGVzL19zY29wZXMuc2hvdy1tb3JlLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDktc2NvcGVzL19zY29wZXMucHJvZ3Jlc3Muc2NzcyIsIjA5LXNjb3Blcy9fc2NvcGVzLmluZm8taWNvbi5zY3NzIiwiMDktc2NvcGVzL19zY29wZXMuc3Bpbm5lci5zY3NzIiwiMDktc2NvcGVzL19zY29wZXMuZm9vdG5vdGVzLnNjc3MiLCIwOS1zY29wZXMvX3Njb3Blcy5jYXJvdXNlbC5zY3NzIiwiMDktc2NvcGVzL19zY29wZXMuaGVyby10ZWFzZXIuc2NzcyIsIjA5LXNjb3Blcy9fc2NvcGVzLmhlYWRlci5zZXR0aW5ncy5zY3NzIiwiMDktc2NvcGVzL19zY29wZXMuaGVhZGVyLnNjc3MiLCIwOS1zY29wZXMvX3Njb3Blcy50YWJsZXMuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tY29yZS8xMC11dGlsaXRpZXMvX3V0aWxpdGllcy5ibG9jay5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1jb3JlLzEwLXV0aWxpdGllcy9fdXRpbGl0aWVzLmJvcmRlci5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1jb3JlLzEwLXV0aWxpdGllcy9fdXRpbGl0aWVzLmNsZWFyZml4LnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWNvcmUvMTAtdXRpbGl0aWVzL191dGlsaXRpZXMuZGVidWcuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tY29yZS8xMC11dGlsaXRpZXMvX3V0aWxpdGllcy5mbG9hdC5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1jb3JlLzEwLXV0aWxpdGllcy9fdXRpbGl0aWVzLmZvbnQtc2l6ZXMuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tY29yZS8xMC11dGlsaXRpZXMvX3V0aWxpdGllcy5oaWRlLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWNvcmUvMTAtdXRpbGl0aWVzL191dGlsaXRpZXMubm8tY2FycGV0LnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWNvcmUvMTAtdXRpbGl0aWVzL191dGlsaXRpZXMucm91bmQuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tY29yZS8xMC11dGlsaXRpZXMvX3V0aWxpdGllcy5zcGFjaW5ncy5zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1jb3JlLzEwLXV0aWxpdGllcy9fdXRpbGl0aWVzLnNwYWNpbmdzLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWNvcmUvMTAtdXRpbGl0aWVzL191dGlsaXRpZXMudGV4dC1hbGlnbi5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1jb3JlLzEwLXV0aWxpdGllcy9fdXRpbGl0aWVzLnRleHQtdHJhbnNmb3JtLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWNvcmUvMTAtdXRpbGl0aWVzL191dGlsaXRpZXMudGV4dC10cnVuY2F0ZS5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1jb3JlLzEwLXV0aWxpdGllcy9fdXRpbGl0aWVzLnRleHQtd3JhcC5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1jb3JlLzAyLXRvb2xzL190b29scy50ZXh0LXdyYXAuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tY29yZS8xMC11dGlsaXRpZXMvX3V0aWxpdGllcy52aXN1YWxseS1oaWRkZW4uc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tY29yZS8xMC11dGlsaXRpZXMvX3V0aWxpdGllcy53aGl0ZS1zcGFjZS5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1jb3JlLzEwLXV0aWxpdGllcy9fdXRpbGl0aWVzLndpZHRocy5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1jb3JlLzEwLXV0aWxpdGllcy9fdXRpbGl0aWVzLnNwYWNpbmctaXRlbS5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1jb3JlLzEwLXV0aWxpdGllcy9fdXRpbGl0aWVzLm92ZXJmbG93LWhpZGRlbi5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzEwLXV0aWxpdGllcy9fdXRpbGl0aWVzLmJhY2tncm91bmQtY29sb3JzLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMTAtdXRpbGl0aWVzL191dGlsaXRpZXMudGV4dC1jb2xvcnMuc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8xMC11dGlsaXRpZXMvX3V0aWxpdGllcy50ZXh0LWNvbG9ycy5mYWxsYmFjay5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzEwLXV0aWxpdGllcy9fdXRpbGl0aWVzLmJsb2NrLWNlbnRlci5zY3NzIiwiLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzEwLXV0aWxpdGllcy9fdXRpbGl0aWVzLmZvY3VzLXBvaW50LnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMTAtdXRpbGl0aWVzL191dGlsaXRpZXMuYmFzZS1saW5rLnNjc3MiLCIuLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMTAtdXRpbGl0aWVzL191dGlsaXRpZXMuaGVhZGluZ3Muc2NzcyIsIi4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8xMC11dGlsaXRpZXMvX3V0aWxpdGllcy5vYmplY3QtZml0LnNjc3MiLCJfc2hhbWUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFRQTs7O0VBQUE7QUFNQTs7OztFQUFBO0FDVkE7OztFQUFBO0FDQUE7Ozs7RUFBQTtBREFBOzs7RUFBQTtBRXVEQTs7O0VBQUE7QUNuREE7Ozs7RUFBQTtBQ1JBOzt3Q0FBQTtBQ1lBOzs7OztFQUFBO0FDUkEsK0RBQUE7QUE2Q0EsOERBQUE7QUM3Q0EsNENBQUE7QUFrQkEsMkNBQUE7QUNsQkE7OztFQUFBLEVDR0E7O0VBQUE7QUNIQTs7Ozs7O0VBQUE7QUNLQTs7Ozs7OztFQUFBO0FDQ0E7O0VBQUE7QUNWQTs7d0NBQUE7QUFJQTs7Ozs7O0VBQUE7QUNKQSw4RkFBQTtBQUVBOzs7Q0FBQTtBQUtBOztDQUFBO0FBSUE7OztFQUdDLHNCQUFBO0FDNEVEOztBRHpFQTs7Q0FBQTtBQUlBO0VBRUMsV0FBQTtBQzJFRDs7QUR4RUE7OztDQUFBO0FBS0E7RUFDQyxpQkFBQSxFQUFBLE1BQUE7RUFDQSw4QkFBQSxFQUFBLE1BQUE7QUMwRUQ7O0FEdkVBOzs7Q0FBQTtBQUtBOztDQUFBO0FBSUE7RUFDQyxTQUFBO0FDd0VEOztBRHJFQTs7Q0FBQTtBQUlBO0VBQ0MsOEhBQ0M7QUNzRUY7O0FEM0RBOzs7Q0FBQTtBQUtBOzs7Q0FBQTtBQUtBO0VBQ0MsU0FBQSxFQUFBLE1BQUE7RUFDQSxjQUFBLEVBQUEsTUFBQTtBQzRERDs7QUR6REE7OztDQUFBO0FBS0E7O0NBQUE7QUFJQTtFQUNDLHlDQUFBO0VBQUEsaUNBQUE7QUMwREQ7O0FEdkRBOztDQUFBO0FBSUE7O0VBRUMsbUJBQUE7QUN5REQ7O0FEdERBOzs7Q0FBQTtBQUtBOzs7O0VBSUMsd0ZBQ0MsRUFLVyxNQUFBO0VBQ1osY0FBQSxFQUFBLE1BQUE7QUNrREQ7O0FEL0NBOztDQUFBO0FBSUE7RUFDQyxjQUFBO0FDaUREOztBRDlDQTs7Q0FBQTtBQUlBOztFQUVDLGNBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSx3QkFBQTtBQ2dERDs7QUQ3Q0E7RUFDQyxlQUFBO0FDZ0REOztBRDdDQTtFQUNDLFdBQUE7QUNnREQ7O0FEN0NBOzs7Q0FBQTtBQUtBOzs7Q0FBQTtBQUtBO0VBQ0MsY0FBQSxFQUFBLE1BQUE7RUFDQSxxQkFBQSxFQUFBLE1BQUE7QUM4Q0Q7O0FEM0NBOzs7Q0FBQTtBQUtBOzs7Q0FBQTtBQUtBOzs7OztFQUtDLG9CQUFBLEVBQUEsTUFBQTtFQUNBLGVBQUEsRUFBQSxNQUFBO0VBQ0EsaUJBQUEsRUFBQSxNQUFBO0VBQ0EsU0FBQSxFQUFBLE1BQUE7QUM0Q0Q7O0FEekNBOzs7Q0FBQTtBQUtBO1NBQ1MsTUFBQTtFQUNSLG9CQUFBO0FDMkNEOztBRHhDQTs7Q0FBQTtBQUlBOzs7O0VBSUMsMEJBQUE7QUMwQ0Q7O0FEdkNBOztDQUFBO0FBSUE7RUFDQyxrQkFBQTtFQUNBLFVBQUE7QUN5Q0Q7O0FEdENBOztDQUFBO0FBSUE7RUFDQyw4QkFBQTtBQ3dDRDs7QURyQ0E7OztDQUFBO0FBS0E7RUFDQyxnQkFBQTtBQ3VDRDs7QURwQ0E7O0NBQUE7QUFJQTtFQUNDLFVBQUE7QUNzQ0Q7O0FEbkNBOztDQUFBO0FBSUE7RUFDQyx3QkFBQTtBQ3FDRDs7QURsQ0E7O0NBQUE7QUFJQTs7RUFFQyxZQUFBO0FDb0NEOztBRGpDQTs7O0NBQUE7QUFLQTtFQUNDLDZCQUFBLEVBQUEsTUFBQTtFQUNBLG9CQUFBLEVBQUEsTUFBQTtBQ21DRDs7QURoQ0E7O0NBQUE7QUFJQTtFQUNDLHdCQUFBO0FDa0NEOztBRC9CQTs7O0NBQUE7QUFLQTtFQUNDLDBCQUFBLEVBQUEsTUFBQTtFQUNBLGFBQUEsRUFBQSxNQUFBO0FDaUNEOztBRDlCQTs7O0NBQUE7QUFLQTs7Q0FBQTtBQUlBO0VBQ0Msa0JBQUE7QUMrQkQ7O0FDdlVBOzt3Q0FBQTtBQUlBOzs7O0VBQUE7QUFNQTtFQUNDLHNCQUFBO0FEd1VEOztBQ25VQztFQUdDLG1CQUFBO0FEb1VGOztBRXZWQTs7d0NBQUE7QUFJQTs7O0VBQUE7QUFLQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF1QkksU0FBQTtFQUNBLFVBQUE7QUZ3Vko7O0FFclZBOzs7O0VBQUE7QUFLQTtFQUNJLGVBQUE7QUZ3Vko7O0FHbFlBOzt3Q0FBQTtBQUlBOzs7OztFQUFBO0FBT0E7Ozs7Ozs7OztFQVNJLG1CbkJRMEI7QWdCMlg5Qjs7QUl2WkE7O3dDQUFBO0FDdUZJO0VBQ0kseUJDcEVxQjtFRHFFckIsZ0VBQUE7RUFDQSxnQkNwRWE7RURzRWIsa0JBaEJJO0VBaUJKLGtCQWRNO0FMbVZkO0FLM1VJO0VBQ0kseUJDcEVxQjtFRHFFckIsbUVBQUE7RUFDQSxnQkNwRWE7RURzRWIsa0JBaEJJO0VBaUJKLGtCQWRNO0FMMFZkO0FLbFZJO0VBQ0kseUJDcEVxQjtFRHFFckIsaUVBQUE7RUFDQSxnQkNwRWE7RURzRWIsa0JBaEJJO0VBaUJKLGtCQWRNO0FMaVdkO0FLelZJO0VBQ0ksNEJFbkZJO0VGb0ZKLGtHQUFBO0VBQ0EsbUJBaEJLO0VBa0JMLGtCQWhCSTtFQWlCSixtQkdyRlE7QVIrYWhCO0FTdmJBOzt3Q0FBQTtBQUlBOzs7O0VBQUE7QUFLQTtFQUNJLFNBQUEsRUFBQSxRQUFBO0FUd2JKOztBU3JiQTs7OztFQUlFLGFBQUEsRUFBQSxRQUFBO0FUd2JGOztBVXpjQTs7d0NBQUE7QUFJQTs7Ozs7Ozs7OztFQUFBO0FBV0E7RUFDSSxlQUFBLEVBQUEsUUFBQTtFQUNBLGtCQUFBLEVBQUEsUUFBQTtFQUNBLHNCQUFBLEVBQUEsUUFBQTtBVjJjSjs7QVc3ZEE7O3dDQUFBO0FBSUE7OztFQUFBO0FBSUE7RUFDSSxpQjNCbUIwQixFMkJuQlMsUUFBQTtBWCtkdkM7O0FXMWRJOztFQUVJLGdCQUFBLEVBQUEsUUFBQTtBWDZkUjs7QVk3ZUE7O3dDQUFBO0FBSUE7O0VBQUE7QUFRQTtFQzJJWSxrQkFBQTtBYmdXWjs7QWN2ZkE7O3dDQUFBO0FBSUE7Ozs7O0VBQUE7QUFRSTs7OztFQU1JLHNCQUFBLEVBQUEsUUFBQTtBZHFmUjs7QWV2Z0JBOzt3Q0FBQTtBQUlBOzs7Ozs7OztFQUFBO0FBVUE7RUZ5SVksb0JBQUE7RUFhQSxnQkFBQTtBYm9YWjtBZ0J6UlE7RURqUFI7SUZ5SVksbUJBQUE7SUFhQSxnQkFBQTtFYnlYVjtBQUNGO0FnQi9SUTtFRGpQUjtJRnlJWSxrQkFBQTtJQWFBLGdCQUFBO0ViK1hWO0FBQ0Y7O0FlL2dCQTtFRmtJWSxrQkFBQTtFQWFBLGdCQUFBO0FicVlaO0FnQjFTUTtFRDFPUjtJRmtJWSxlQUFBO0lBYUEsZ0JBQUE7RWIwWVY7QUFDRjtBZ0JoVFE7RUQxT1I7SUZrSVksa0JBQUE7SUFhQSxnQkFBQTtFYmdaVjtBQUNGOztBZXpoQkE7RUYySFksb0JBQUE7RUFhQSxnQkFBQTtBYnNaWjtBZ0IzVFE7RURuT1I7SUYySFksb0JBQUE7SUFhQSxnQkFBQTtFYjJaVjtBQUNGO0FnQmpVUTtFRG5PUjtJRjJIWSxtQkFBQTtJQWFBLGdCQUFBO0ViaWFWO0FBQ0Y7O0FlbmlCQTtFRm9IWSxrQkFBQTtFQWFBLGdCQUFBO0FidWFaO0FnQjVVUTtFRDVOUjtJRm9IWSxvQkFBQTtJQWFBLGdCQUFBO0ViNGFWO0FBQ0Y7QWdCbFZRO0VENU5SO0lGb0hZLGlCQUFBO0lBYUEsZ0JBQUE7RWJrYlY7QUFDRjs7QWU3aUJBO0VGNkdZLGtCQUFBO0VBYUEsZ0JBQUE7QWJ3Ylo7QWdCN1ZRO0VEck5SO0lGNkdZLG9CQUFBO0lBYUEsZ0JBQUE7RWI2YlY7QUFDRjtBZ0JuV1E7RURyTlI7SUY2R1ksaUJBQUE7SUFhQSxnQkFBQTtFYm1jVjtBQUNGOztBZXZqQkE7RUZzR1ksZUFBQTtFQWFBLGdCQUFBO0FieWNaOztBZXJqQkE7Ozs7OztFRW5CSSxtQkFBQTtFQUVBLGdCQUFBO0VDK1JGOzs7O0lBQUE7QWxCc1RGO0FrQmhUa0MsUUFBQTtBQUVwQjs7Ozs7O0VEalNGLGNBQUE7QWpCd2xCWjs7QW1Ccm9CQTs7d0NBQUE7QUFlQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUFBO0FBdUJBO0VBRVEsZ0JBQUEsRUFBQSxRQUFBO0VBQ0EsbUJBQUEsRUFBQSxRQUFBO0VBRUosNENDbEJ5QixFRGtCSyxRQUFBO0VBQzlCLGdCYi9CeUI7RWFnQ3pCLHlCRVplLEVGWTJCLFFBQUE7RUFDMUMsY0VwQmUsRUZvQlUsUUFBQTtFQUN6QixrQ0FBQTtFQUNBLG1DQUFBO0VBQ0EsdUJBQUEsRUFBQSxRQUFBO0VBR0ksY0FBQSxFQUFBLFFBQUE7RUFDQSxnQkFBQSxFQUFBLFFBQUE7RUFLSix5RUFBQTtBbkJvbkJKO0FtQm5uQkk7RUFyQko7SUFzQlEsdUNBQUE7SUFDQSxxQkFBQTtFbkJzbkJOO0FBQ0Y7O0FtQm5uQkE7Ozs7RUFBQTtBQUtBO0VOaUZZLGVBQUE7RU0vRVIsb0JBQUEsRUFBQSxRQUFBO0FuQnNuQko7O0FzQjlyQkE7O3dDQUFBO0FBSUE7OztFQUFBO0FBa0JBO0VUaUlZLGVBQUE7RVM5SFIsZ0JoQlp5QjtFZ0JhekIsY0FBQTtBdEJpckJKOztBc0I5cUJBO0VUMEhZLGVBQUE7RVN4SFIsbUJBQUE7RUFDQSxnQmhCakJ5QjtFZ0JrQnpCLGNEUGU7QXJCd3JCbkI7QXNCL3FCSTtFQUNJLGdCQUFBO0F0QmlyQlI7O0F1QnJ0QkE7O3dDQUFBO0FBSUE7RUFDSSxlQUFBO0F2QnV0Qko7O0F3QjV0QkE7O3dDQUFBO0FBSUE7O0VBQUE7QUFPQTtFQUNJLHFCQUFBO0VBQ0Esa0J4Q2lCMEI7RXdDaEIxQixjSFllO0FyQjhzQm5COztBeUJ4dUJBOzt3Q0FBQTtBQUlBLG1HQUFBO0FBT0E7Ozs7Ozs7OztFQUFBO0FBYUk7O0VBQ0ksZ0JDckJnQjtBMUJ1dkJ4QjtBeUJodUJROzs7O0VBRUksZXpDQ2tCLEV5Q0R3QixRQUFBO0VBQzFDLGdCQzFCWSxFRDBCMkIsUUFBQTtBekJvdUJuRDtBeUJsdUJZOzs7O0VBQ0ksZ0JBeEJpQjtBekIrdkJqQztBeUJwdUJZOzs7O0VBQ0ksa0J6Q1BjLEV5Q08rQixRQUFBO0F6Qnl1QjdEOztBeUJqdUJBLHFCQUFBO0FFN0NBOzt3Q0FBQTtBQWlCQTtFQUNJLGNBQUE7RUFDQSxXQVplO0VBYWYsV0FaZTtFQWFmLGtCQWpCZTtFQWtCZixtQjNDUzBCO0UyQ1IxQixpQkFsQmU7RUFtQmYsU0FBQTtFQUNBLHlCTlBlO0VIb1RqQjs7OztJQUFBO0FsQjRkRjtBa0J0ZGtDLFFBQUE7QUFFcEI7RVNsVE4seUJBQUE7QTNCMHdCUjs7QTRCdHlCQTs7d0NBQUE7QUFJQTs7OztFQUFBO0FBS0Esd0JBQUEsUUFBQTtFQzhCSSwwQkFBQTtFQUdBLGNBQUE7RUFDQSxlQUFBO0VBQ3VFLFFBQUE7QTdCeXdCM0U7QTZCM3ZCSTtFQUUwRSxRQUFBO0E3QjR2QjlFO0E2Qnp2Qkk7RUFFMEUsUUFBQTtBN0IwdkI5RTtBNkJ2dkJJO0VBRTJFLFFBQUE7QTdCd3ZCL0U7O0E4Qjl6QkE7O3dDQUFBO0FBTUE7O0VBQUE7QUFHQTs7RUFFSSxnQnhCSXlCLEV3QkplLFFBQUE7QTlCOHpCNUM7O0ErQnowQkE7O3dDQUFBO0FBTUE7RUFDSSxnQnpCTXlCO0FObTBCN0I7O0FnQzUwQkE7OztFQUFBO0FDSkE7O3dDQUFBO0FBSUE7Ozs7RUFBQTtBQWNBOzs7Ozs7Ozs7Ozs7OztFQUFBO0FBZ0JBO0VBQ0ksYUFBQSxFQUFBLFFBQUE7RUFDQSxlQUFBLEVBQUEsUUFBQTtFQUNBLGdCakRMMEIsRWlES29CLFFBQUE7RUFDOUMsYWpEVjBCLEVpRFVlLFFBQUE7QWpDNDBCN0M7O0FpQ3owQkk7RUFDSSxnQmpEZHNCLEVpRGM4QixRQUFBO0VBQ3BELGFqRFpzQixFaURZeUIsUUFBQTtBakM0MEJ2RDs7QWlDdjBCUTtFQUNJLFNBQUEsRUFBQSxRQUFBO0FqQzAwQlo7O0FpQ24wQlE7RUFDSSxZQUFBLEVBQUEsUUFBQTtBakNzMEJaOztBaUNqMEJJO0VBQ0kscUJBQUEsRUFBQSxRQUFBO0FqQ28wQlI7O0FpQ2owQkk7RUFDSSxtQkFBQSxFQUFBLFFBQUE7QWpDbzBCUjs7QWtDdjRCQTs7d0NBQUE7QUFNQTs7Ozs7OztFQUFBO0FBU21FLFNBQUE7QUFDQSxTQUFBO0FBWW5FOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUFBO0FBeURBO0VBQ0ksY0FBQSxFQUFBLFFBQUE7RUFDQSxTQUFBLEVBQUEsUUFBQTtFQUNBLFVBQUEsRUFBQSxRQUFBO0VBQ0EsWUFBQSxFQUFBLFFBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBLEVBQUEsUUFBQTtFQUNBLG9CQUFBLEVBQUEsU0FBQTtFQUVBLGtDQUFBO0VDdEVBLGlCQW9Kb0I7RUQ1RWdHLFNBQUE7RUN4RXBILGtCQW9Kb0I7RUQzRWtGLFFBQUE7RUFDdEcsaUNBQUE7QWxDMjNCSjtBa0N6M0JJO0VDNUVBLGdCQW9Kb0I7RUR2RTJELFNBQUE7QWxDNDNCbkY7QWtDejNCSTtFQUNJLGFBQUE7RUFDQSxlQUFBO0FsQzIzQlI7QWtDejNCUTtFQUNJLHlCQUFBLEVBQUEsU0FBQTtBbEMyM0JaOztBa0NyM0JJO0VyQm9DUSxlQUFBO0VxQm5Dd0QsU0FBQTtFQzVGaEUsa0JBb0pvQjtFRHZEOEMsUUFBQTtFQUM5RCxzQkFBQSxFQUFBLFFBQUE7RUFDQSxxQkFBQSxFQUFBLFFBQUE7RUFDQSxXQUFBLEVBQUEsUUFBQTtFQUNBLG1CQUFBLEVBQUEsUUFBQTtFQUNBLG9CQUFBLEVBQUEsU0FBQTtBbEMwM0JSO0FrQ3YzQlE7RUFDSSxzQkFBQTtBbEN5M0JaO0FrQ3QzQlE7RUFDSSxhQUFBO0FsQ3czQlo7QWtDdDNCWTtFQUNJLFlBQUEsRUFBQSxTQUFBO0VBQ0EsY0FBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQSxFQUFBLFNBQUE7QWxDdzNCaEI7O0FrQy8yQkE7O0VBQUE7QUFHQTtFQUNJLGtCQUFBO0FsQ2szQko7QWtDaDNCSTtFQUNJLHVCQUFBLEVBQUEsU0FBQTtBbENrM0JSO0FrQy8yQkk7RUFDSSxnQkFBQTtBbENpM0JSOztBa0MxMkJBOztFQUFBO0FBR0E7RUFDSSxpQkFBQTtBbEM2MkJKO0FrQzMyQkk7RUFDSSxnQkFBQTtBbEM2MkJSOztBa0N0MkJBOztFQUFBO0FBR0E7RUFDSSxjQUFBO0VBQ0EsYUFBQSxFQUFBLFNBQUE7QWxDeTJCSjtBa0N2MkJJO0VBQ0ksZUFBQTtFQUNBLGFBQUEsRUFBQSxTQUFBO0FsQ3kyQlI7O0FrQ2wyQkE7OztFQUFBO0FBSUE7RUFDSSxhQUFBLEVBQUEsU0FBQTtFQUNBLGVBQUEsRUFBQSxTQUFBO0VBQ0EsZ0JBQUEsRUFBQSxTQUFBO0VBQ0EsaUJBQUEsRUFBQSxTQUFBO0VBQ0Esa0JBQUEsRUFBQSxTQUFBO0FsQ3EyQko7QWtDbjJCSTtFQUNJLG9CQUFBLEVBQUEsU0FBQTtBbENxMkJSO0FrQ2wyQkk7RUFDSSxrQkFBQTtFQUNBLGdCQTNMNEIsRUEyTGlCLFNBQUE7RUFDN0Msa0JsRG5Mc0IsRWtEbUw0QixTQUFBO0VBQ2xELG9CQTdMNEIsRUE2THFCLFNBQUE7QWxDbzJCekQ7QWtDbDJCUTtFQUNJLGdCQUFBLEVBQUEsU0FBQTtBbENvMkJaO0FrQ2oyQlE7RUFFSSxXQUFBLEVBQUEsU0FBQTtFQUNBLGtCQUFBLEVBQUEsU0FBQTtFQUNBLGlCRTFOVSxFRjBOMkIsU0FBQTtFQUNyQyxxQmI3TU8sRWE2TThCLFNBQUE7QWxDazJCakQ7QWtDLzFCUSwrQ0FBQSxTQUFBO0VBQ0ksVUFBQSxFQUFBLFNBQUE7RUFDQSxVbERwTWtCLEVrRG9Nd0IsU0FBQTtFQUMxQyxRQUFBLEVBQUEsU0FBQTtFQUNBLHVCQWpOd0I7RUFzTnBCLDZCQUFBLEVBQUEsU0FBQTtFQUdKLGdCRjlOd0IsRUU4TmdCLFNBQUE7QWxDMjFCcEQ7QWtDeDFCUSw4Q0FBQSxTQUFBO0VBQ0ksTUFBQSxFQUFBLFNBQUE7RUFDQSxZbERwTmtCLEVrRG9Od0IsU0FBQTtFQUMxQyxZQUFBLEVBQUEsU0FBQTtFQUNBLHdCQWhPd0I7RUFxT3BCLDRCQUFBLEVBQUEsU0FBQTtBbENzMUJoQjs7QXFDaGxDQTs7d0NBQUE7QUFJQTs7Ozs7RUFBQTtBQU9BO0VDRUksU0FBQTtFQUNBLFVBQUE7RUFDQSxnQkFBQTtBdENnbENKO0FzQ3JrQ1E7RUFDSSxjQUFBO0VBQ0EsZ0JBQUE7QXRDdWtDWjs7QXVDbm1DQTs7d0NBQUE7QUFJQTs7O0VBQUE7QUFTSTtFQUNJLG1CQUxtQjtBdkNxbUMzQjs7QXdDOW1DQTs7d0NBQUE7QUFJQTs7Ozs7RUFBQTtBQU9BO0VBQ0ksb0JBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUEsRUFBQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUFDQSxnQkFBQTtBeEMrbUNKO0F3QzdtQ0k7RUFDSSxnQkFBQTtBeEMrbUNSOztBeUNub0NBOzt3Q0FBQTtBQUlBOzs7OztFQUFBO0FBYUE7Ozs7O0VBQUE7QUFNQTtFQUNJLGFBQUE7RUFDQSxtQkFBQTtFQU1BOztJQUFBO0F6QzJuQ0o7QXlDL25DSTtFQUNJLDJCQUFBO0F6Q2lvQ1I7QWdCOTVCUTtFeUI3Tko7SUFFUSxzQkFBQTtFekM2bkNWO0FBQ0Y7QWdCbjZCUTtFeUJ2Tko7SUFFUSw4QkFBQTtFekM0bkNWO0FBQ0Y7O0F5Q3ZuQ0k7RUFDSSxZQUFBO0VBQ0EsY0FBQTtFQUNBLHNCQUFBO0VBQ0Esa0J6RHhCc0I7QWdCa3BDOUI7QXlDeG5DUTtFQUNJLGtCekR4QmtCO0FnQmtwQzlCO0F5Q3ZuQ1E7RUFDSSxrQnpEM0JrQjtBZ0JvcEM5QjtBeUN0bkNRO0VBQ0ksa0J6RDlCa0I7QWdCc3BDOUI7QXlDcm5DUTtFQUNJLGVBQUE7RUFDQSxpQnpEeENrQjtBZ0IrcEM5QjtBeUNwbkNRO0VBQ0ksaUJ6RHpDa0I7QWdCK3BDOUI7QXlDbm5DUTtFQUNJLGlCekQ1Q2tCO0FnQmlxQzlCO0F5Q2xuQ1E7RUFDSSxpQnpEL0NrQjtBZ0JtcUM5QjtBeUNqbkNRO0VBQ0ksa0JBQUE7QXpDbW5DWjtBeUNobkNRO0VBQ0ksb0JBQUE7QXpDa25DWjtBZ0IzOEJRO0V5QnBLQTtJQUVRLGlCQUFBO0lBQ0Esa0JBQUE7SUFDQSxtQnpEbkVjO0VnQm9yQzVCO0FBQ0Y7QWdCbDlCUTtFeUI1SkE7SUFFUSxpQkFBQTtJQUNBLGtCQUFBO0lBQ0EsZ0JBQUE7SUFDQSxnQnpENUVjO0VnQjRyQzVCO0FBQ0Y7QWdCMTlCUTtFeUJuSkE7SUFFUSxpQkFBQTtJQUNBLGtCQUFBO0V6QyttQ2Q7QUFDRjtBZ0JoK0JRO0V5QjVJQTtJQUVRLGlCQUFBO0lBQ0Esa0JBQUE7RXpDOG1DZDtBQUNGOztBeUN6bUNJO0VBQ0ksWUFBQSxFQUFBLFFBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSxZQUFBLEVBQUEsUUFBQTtBekM0bUNSO0F5QzFtQ1E7RUFDSSxnQkFBQTtBekM0bUNaO0F5Q3ptQ1E7RUFDSSxrQkFBQTtBekMybUNaO0F5Q3htQ1E7RUFDSSxvQkFBQTtBekMwbUNaO0FnQnQvQlE7RXlCakhBO0lBRVEsbUJ6RHBIYztFZ0I2dEM1QjtBQUNGOztBMEMxdkNBOzt3Q0FBQTtBQUtBOzs7Ozs7RUFBQTtBQXFCQTs7Ozs7Ozs7Ozs7RUFBQTtBQWFBLDZCQUFBLFFBQUE7RUFDSSxrQkFBQSxFQUFBLFFBQUE7RUFDQSxjQUFBLEVBQUEsUUFBQTtBMUM0dUNKO0EwQzF1Q0k7RUFDSSxXQUFBLEVBQUEsUUFBQTtFQUNBLGNBQUEsRUFBQSxRQUFBO0VBQ0EsV0FBQSxFQUFBLFFBQUE7QTFDNHVDUjtBMEN6dUNJOzs7O0VBSUksa0JBQUEsRUFBQSxRQUFBO0VBQ0EsTUFBQSxFQUFBLFFBQUE7RUFDQSxTQUFBLEVBQUEsUUFBQTtFQUNBLE9BQUEsRUFBQSxRQUFBO0VBQ0EsUUFBQSxFQUFBLFFBQUE7RUFDQSxXQUFBLEVBQUEsUUFBQTtFQUNBLFlBQUEsRUFBQSxRQUFBO0ExQzJ1Q1I7O0EwQ3R1Q0E7Ozs7OztFQUFBO0FBbUJRO0VBQ0ksb0JBQUEsRUFBQSxRQUFBO0ExQzZ0Q1o7O0EwQzl0Q1E7RUFDSSxtQkFBQSxFQUFBLFFBQUE7QTFDaXVDWjs7QTBDbHVDUTtFQUNJLHNCQUFBLEVBQUEsUUFBQTtBMUNxdUNaOztBMkN6ekNBOzt3Q0FBQTtBQXdCQTs7OztFQUFBO0FBS0E7RUFDSSx5QkFBQSxFQUFBLFFBQUE7QTNDdXlDSjs7QTJDcHlDQTtFUlRJLCtCQW9Kb0I7RUFwSnBCLGtCQW9Kb0I7RUFwSnBCLG1CQW9Kb0I7RUFwSnBCLGlCQW9Kb0I7RVMzSHBCLGtCQUFBO0VBQ0EsaUJBQUE7RURmMEUsUUFBQTtBM0M0eUM5RTtBZ0JobENRO0UyQjlOUjtJUlRJLDhCQThKd0I7SUE5SnhCLGtCQThKd0I7SUE5SnhCLG1CQThKd0I7SUE5SnhCLGlCQThKd0I7RW5DZ3FDMUI7QUFDRjtBZ0J4bENRO0UyQjlOUjtJUlRJLDhCQThKd0I7SUE5SnhCLGtCQThKd0I7SUE5SnhCLG1CQThKd0I7SUE5SnhCLGlCQThKd0I7RW5Dd3FDMUI7QUFDRjtBZ0JobUNRO0UyQjlOUjtJUlRJLDhCQThKd0I7SUE5SnhCLGtCQThKd0I7SUE5SnhCLG1CQThKd0I7SUE5SnhCLGlCQThKd0I7RW5DZ3JDMUI7QUFDRjtBbUNqb0NRO0VBOU1KLCtCQW9Kb0I7QW5DOHJDeEI7QWdCM21DUTtFbUJ6QkE7SUE5TUosOEJBOEp3QjtFbkN3ckMxQjtBQUNGO0FnQmhuQ1E7RW1CekJBO0lBOU1KLDhCQThKd0I7RW5DNnJDMUI7QUFDRjtBZ0JybkNRO0VtQnpCQTtJQTlNSiw4QkE4SndCO0VuQ2tzQzFCO0FBQ0Y7QW1DbnBDUTtFQTlNSiwrQkFvSm9CO0FuQ2d0Q3hCO0FnQjduQ1E7RW1CekJBO0lBOU1KLDhCQThKd0I7RW5DMHNDMUI7QUFDRjtBZ0Jsb0NRO0VtQnpCQTtJQTlNSiw4QkE4SndCO0VuQytzQzFCO0FBQ0Y7QWdCdm9DUTtFbUJ6QkE7SUE5TUosOEJBOEp3QjtFbkNvdEMxQjtBQUNGO0FtQ3JxQ1E7RUE5TUosOEJBb0pvQjtBbkNrdUN4QjtBZ0Ivb0NRO0VtQnpCQTtJQTlNSiw2QkE4SndCO0VuQzR0QzFCO0FBQ0Y7QWdCcHBDUTtFbUJ6QkE7SUE5TUosNkJBOEp3QjtFbkNpdUMxQjtBQUNGO0FnQnpwQ1E7RW1CekJBO0lBOU1KLDZCQThKd0I7RW5Dc3VDMUI7QUFDRjtBbUN2ckNRO0VBOU1KLDhCQW9Kb0I7QW5Db3ZDeEI7QWdCanFDUTtFbUJ6QkE7SUE5TUosNkJBOEp3QjtFbkM4dUMxQjtBQUNGO0FnQnRxQ1E7RW1CekJBO0lBOU1KLDZCQThKd0I7RW5DbXZDMUI7QUFDRjtBZ0IzcUNRO0VtQnpCQTtJQTlNSiw2QkE4SndCO0VuQ3d2QzFCO0FBQ0Y7O0E2Qy82Q0E7O3dDQUFBO0FBSUE7OztDQUFBO0FBS0E7RUFDSSxhQUFBLEVBQUEsUUFBQTtFQUNBLHNCQUFBLEVBQUEsUUFBQTtFQUNBLGlCQUFBLEVBQUEsUUFBQTtBN0NnN0NKOztBOEM1N0NBOzt3Q0FBQTtBQUlBOzs7Q0FBQTtBQUtBO0VBQ0ksWUFBQSxFQUFBLFFBQUE7RUFDQSxjQUFBLEVBQUEsUUFBQTtFQUNBLGdCQUFBLEVBQUEsUUFBQTtBOUM2N0NKOztBK0N6OENBOzt3Q0FBQTtBQUlBOztFQUFBO0FBUUk7RUFDSSxtQi9EZXNCO0FnQnU3QzlCOztBK0MvN0NRO0VBQ0ksbUIvRE9rQjtBZ0IyN0M5Qjs7QWdEdjlDQTs7d0NBQUE7QUFjQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUFBO0FBdUJBO0VBQ0ksYUFBQTtFQUNBLGVBQUEsRUFBQSxTQUFBO0VBQ0EsbUJBQUE7RUFDQSxzQkFBQTtFQUNBLGVoRVowQjtFZ0VhMUIsYWhFWjBCO0FnQjI5QzlCOztBZ0Q1OENBLCtCQUFBLFNBQUEsRUFBQTtBQUVJO0VBQ0ksWUFBQTtFQUNBLGNBQUE7RUFDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtBaEQ4OENSOztBZ0R6OENBO0VBQ0ksaUJBQUE7QWhENDhDSjs7QWdEejhDQTtFQUNJLHVCQUFBO0FoRDQ4Q0o7O0FnRHo4Q0E7RUFDSSx1QkFBQTtBaEQ0OENKOztBZ0R6OENBO0VBQ0ksMkJBQUE7QWhENDhDSjs7QWdEejhDQTtFQUNJLHlCQUFBO0FoRDQ4Q0o7O0FnRHo4Q0EsMkJBQ3FFLFFBQUEsRUFBQSxpRUFBQTtBaEQyOENyRTtBZ0IzeENRO0VnQ2pMUjtJQUlRLDhCQUFBO0lBQ0EsbUJBQUE7RWhENDhDTjtFZ0QxOENNO0lBQ0ksV0FBQTtFaEQ0OENWO0FBQ0Y7QWdEeDhDSTtFQUNJLFlBQUE7QWhEMDhDUjtBZ0J2eUNRO0VnQ3BLSjtJQUlRLGtCQW5GMEIsRUFtRmlCLFFBQUE7SUFDM0MsY0FBQSxFQUFBLFFBQUE7RWhEMjhDVjtBQUNGOztBZ0RyOENBO0VBQ0ksMkJBQUEsRUFBQSxRQUFBO0VBa0JBLDRDQUFBO0FoRHU3Q0o7QWdEcjhDUTtFQUNJLGtCQUFBLEVBQUEsU0FBQTtBaER1OENaO0FnRGg4Q1E7RUFDSSxpQkFBQSxFQUFBLFNBQUE7QWhEazhDWjtBZ0J4ekNRO0VnQ2hJSTtJQUNJLGtCQUFBLEVBQUEsU0FBQTtFaEQyN0NkO0VnRHA3Q1U7SUFDSSxpQkFBQSxFQUFBLFNBQUE7RWhEczdDZDtBQUNGOztBZ0Q5NkNBO0VBQ0ksc0JBQUE7RUFDQSx1QkFBQTtFQUNBLHVCQUFBO0VBa0JBLDRDQUFBO0FoRGc2Q0o7QWdEaDdDSTtFQUNJLHVCQUFBO0FoRGs3Q1I7QWdELzZDSTtFQUNJLG1CQUFBO0FoRGk3Q1I7QWdEOTZDSTtFQUNJLHFCQUFBO0FoRGc3Q1I7QWdENzZDSTtFQUNJLDhCQUFBO0FoRCs2Q1I7QWdCbjFDUTtFZ0N0RkE7SUFDSSx1QkFBQTtFaEQ0NkNWO0VnRHo2Q007SUFDSSxtQkFBQTtFaEQyNkNWO0VnRHg2Q007SUFDSSxxQkFBQTtFaEQwNkNWO0VnRHY2Q007SUFDSSw4QkFBQTtFaER5NkNWO0FBQ0Y7O0FnQmoyQ1E7RWdDbEVSO0lBR1EsMkJBQUE7RWhEcTZDTjtBQUNGOztBZ0J2MkNRO0VnQzFEUjtJQUdRLHVCQUFBO0VoRG02Q047QUFDRjs7QWdCNzJDUTtFZ0NsRFI7SUFHUSx5QkFBQTtFaERpNkNOO0FBQ0Y7O0FnQm4zQ1E7RWdDMUNSO0lBR1Esc0JBQUE7SUFDQSx1QkFBQTtJQUNBLHVCQUFBO0VoRCs1Q047RWdENzVDTTtJQUVJLHVCQUFBO0VoRDg1Q1Y7RWdEMzVDTTtJQUVJLG1CQUFBO0VoRDQ1Q1Y7RWdEejVDTTtJQUVJLHFCQUFBO0VoRDA1Q1Y7RWdEdjVDTTtJQUVJLDhCQUFBO0VoRHc1Q1Y7QUFDRjs7QWdEbDVDQSxrQ0FBQSxRQUFBLEVBQUE7QWhDV1E7RWdDWFI7SUFHUSwyQkFBQSxFQUFBLFFBQUE7RWhEcTVDTjtFZ0RoNUNVO0lBQ0ksa0JBQUEsRUFBQSxTQUFBO0VoRGs1Q2Q7RWdEMTRDVTtJQUNJLGlCQUFBLEVBQUEsU0FBQTtFaEQ0NENkO0FBQ0Y7O0FnQnA1Q1E7RWdDb0JBO0lBQ0ksbUNBQUEsRUFBQSxRQUFBO0lBQ0Esa0JBQUE7RWhEbzRDVjtBQUNGOztBZ0Q3M0NBO0VBQ0ksWUFBQTtFQUNBLGNBQUE7RUFDQSxnQkFBQTtFQUNBLGtDQUFBLEVBQUEsUUFBQTtFQUNBLGdCQ2pSdUM7RURrUnZDLDJCQUFBO0VBQUEsc0JBQUEsRUFBQSxTQUFBLEVBQUEsMkJBQUE7QWhEZzRDSjtBZ0JwNkNRO0VnQ3dDQTtJQUNJLGNBQUEsRUFBQSxRQUFBO0VoRCszQ1Y7QUFDRjs7QWtEeHFEQTs7d0NBQUE7QUFJQTs7O0VBQUE7QUFTQTtFQUNJLGlCbEVrQjBCO0VrRWpCMUIsb0JsRWlCMEI7QWdCb3BEOUI7O0FtRHByREE7O3dDQUFBO0FBSUE7Ozs7RUFBQTtBQVVJO0VBQ0ksbUJuRWlCc0I7QWdCZ3FEOUI7O0FvRGhzREE7O3dDQUFBO0FBd0dBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFBQTtBQTZCQTtFQUNJLGlDQUFBLEVBQUEsUUFBQTtFQUNBLHlDQUFBO0VBQ0EsNERBQUE7RUFDQSw0REFBQSxFQUFBLFFBQUE7RUFDQSwwQkFBQTtFQUNBLDJCQUFBO0VBQ0EsZUFBQTtFQUNBLGFBQUE7RUFDQSxNQXRJc0M7RUF1SXRDLFNBdklzQztFQXdJdEMsT0F4SXNDO0VBeUl0QyxRQXpJc0M7RUEwSXRDLGFBQUE7RUFDQSx3SEFDSSxFQUlxQixRQUFBO0VBQ3pCLGdOQUFBLEVBQUEsWUFBQTtFQUNBLG9GQUFBLEVBQUEsUUFBQTtFQUNBLHdDQUFBLEVBQUEsUUFBQTtFQUNBLGtDQUFBO0VBQ0Esb0JBQUEsRUFBQSxRQUFBO0VqQnJJQSxvQ0FvSm9CO0VpQlowRixRQUFBO0FwRHVsRGxIO0FnQngvQ1E7RW9DMUhSO0lqQjdHSSxvQ0E4SndCO0VuQ3FrRDFCO0FBQ0Y7QWdCNy9DUTtFb0MxSFI7SWpCN0dJLG9DQThKd0I7RW5DMGtEMUI7QUFDRjtBZ0JsZ0RRO0VvQzFIUjtJakI3R0ksb0NBOEp3QjtFbkMra0QxQjtBQUNGO0FnQnZnRFE7RW9DMUhSO0lBaUNRLCtCQUFBLEVBQUEsU0FBQTtFcERvbUROO0FBQ0Y7O0FvRGptREE7RUFDSSw2QkFBQSxFQUFBLFNBQUE7RUFDQSxhQUFBLEVBQUEsUUFBQTtFQUNBLCtCQUFBO0VBQ0Esc0JBQUE7RUFDQSxvREFBQTtFQUNBLHdEQUFBO0VBQ0EsdURBQUE7RUFDQSx1REFBQTtBcERvbURKOztBb0RqbUR3QyxRQUFBLEVBQUEsd0RBQUE7QUFHd0QsUUFBQTtBQUU1Riw2QkMxTEosZ0JBQUEsQ0FBQSxtQkFBQSxDQUFBLHdCQUFBLENEMExJLFFBQUE7RUFPSSxZQUFBO0FwRDJsRFI7O0FvRHBtRGdHLFFBQUE7QUFFNUYsZ0NDMUxKLGdCQUFBLENBQUEsbUJBQUEsQ0FBQSx3QkFBQSxDRDBMSSxRQUFBO0VBT0ksWUFBQTtBcERnbURSOztBb0R6bURnRyxRQUFBO0FBRTVGLGtDQzFMSixnQkFBQSxDQUFBLG1CQUFBLENEMExJLFFBQUE7RUFFUSwwQ0FBQTtFQUtKLGFBQUE7RUFFQSxzQkFBQTtFQUNBLGtCQUFBO0VBR0ksZ0NBQUEsRUFBQSxTQUFBO0FwRG1tRFo7QW9Eam1EWTtFQUNxQyxTQUFBO0FwRG1tRGpEOztBb0RybkRnRyxRQUFBO0FBRTVGLG9DQzFMSixnQkFBQSxDQUFBLG1CQUFBLENEMExJLFFBQUE7RUFFUSwwQ0FBQTtFQUtKLGFBQUE7RUFDQSxtQkFBQTtFQUNBLHVCQUFBO0VBQ0EsdUJBQUE7QXBEa25EUjs7QW9EOW5EZ0csUUFBQTtBQUU1RixtQ0MxTEosZ0JBQUEsQ0FBQSxtQkFBQSxDRDBMSSxRQUFBO0VBRVEsMENBQUE7RUFLSixhQUFBO0VBRUEsMkJBQUE7RUFDQSxxQkFBQTtFQUdJLCtCQUFBLEVBQUEsU0FBQTtBcER3bkRaO0FvRHRuRFk7RUFDcUMsU0FBQTtBcER3bkRqRDs7QW9EMW9EZ0csUUFBQTtBQUU1RixxQ0MxTEosZ0JBQUEsQ0FBQSxtQkFBQSxDRDBMSSxRQUFBO0VBRVEsMENBQUE7RUFLSixhQUFBO0VBRUEsdUJBQUE7RUFDQSx1QkFBQTtFQUdJLGdDQUFBLEVBQUEsU0FBQTtBcERvb0RaO0FvRGxvRFk7RUFDcUMsU0FBQTtBcERvb0RqRDs7QW9EdHBEZ0csUUFBQTtBQUU1Rix1Q0MxTEosZ0JBQUEsQ0FBQSxtQkFBQSxDRDBMSSxRQUFBO0VBRVEsMENBQUE7RUFLSixhQUFBO0VBQ0EsbUJBQUE7RUFDQSx1QkFBQTtFQUNBLG1CQUFBO0FwRG1wRFI7O0FvRC9wRGdHLFFBQUE7QUFFNUYsc0NDMUxKLGdCQUFBLENBQUEsbUJBQUEsQ0QwTEksUUFBQTtFQUVRLDBDQUFBO0VBS0osYUFBQTtFQUVBLHVCQUFBO0VBQ0EscUJBQUE7RUFHSSwrQkFBQSxFQUFBLFNBQUE7QXBEeXBEWjtBb0R2cERZO0VBQ3FDLFNBQUE7QXBEeXBEakQ7O0FvRDNxRGdHLFFBQUE7QUFFNUYscUNDMUxKLGdCQUFBLENBQUEsbUJBQUEsQ0QwTEksUUFBQTtFQUVRLDBDQUFBO0VBS0osYUFBQTtFQUVBLHlCQUFBO0VBQ0EsdUJBQUE7RUFHSSxnQ0FBQSxFQUFBLFNBQUE7QXBEcXFEWjtBb0RucURZO0VBQ3FDLFNBQUE7QXBEcXFEakQ7O0FvRHZyRGdHLFFBQUE7QUFFNUYsdUNDMUxKLGdCQUFBLENBQUEsbUJBQUEsQ0QwTEksUUFBQTtFQUVRLDBDQUFBO0VBS0osYUFBQTtFQUNBLG1CQUFBO0VBQ0EsdUJBQUE7RUFDQSxxQkFBQTtBcERvckRSOztBb0Roc0RnRyxRQUFBO0FBRTVGLHNDQzFMSixnQkFBQSxDQUFBLG1CQUFBLENEMExJLFFBQUE7RUFFUSwwQ0FBQTtFQUtKLGFBQUE7RUFFQSx5QkFBQTtFQUNBLHFCQUFBO0VBR0ksK0JBQUEsRUFBQSxTQUFBO0FwRDByRFo7QW9EeHJEWTtFQUNxQyxTQUFBO0FwRDByRGpEOztBb0RuckRBLHNCQUFBO0FBQ0E7OztFQUNJLGtNQUFBO0FwRHdyREo7O0FvRGxxREE7RUFDSSwwSUFBQSxFQUFBLFFBQUE7QXBEcXFESjs7QW9EanFEQTtFQUNJLG9CQUFBLEVBQUEsUUFBQTtBcERvcURKOztBb0RscURBLHFCQUFBO0FFalBBOzt3Q0FBQTtBQUlBOzs7RUFBQTtBQXVEQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUFBO0FBK0NBO0VBQ0ksa0JBQUE7RUFDQSxhQUFBLEVBQUEsUUFBQTtFQUNBLG1CQUFBLEVBQUEsUUFBQTtFQUNBLGVBQUEsRUFBQSxRQUFBO0VBQ0EsdUJBQUEsRUFBQSxRQUFBO0VBQ0EsbUJBQUE7RUFDQSxhdEVsRjBCLEVzRWtGb0IsU0FBQTtFQUM5QyxnQnRFbkYwQixFc0VtRnlCLFNBQUE7RUFDbkQsZ0JBQUE7RUFDQSxlQUFBO0VBTUE7O0lBQUE7RUFrQkE7O0lBQUE7QXREeXpESjtBc0QvMERJO0VBQ0ksYUFBQTtBdERpMURSO0FzRDMwREk7RTVEbEhBLDZDQUFBO0U0RG9ISSx5QkFBQTtFQUFBLGlCQUFBO0VBTUEseUNBQUE7RUFJQSxxQkFBQTtBdERxMERSO0FzRDcwRFE7RUFDSSxZQUFBO0F0RCswRFo7QXNEMzBEUTtFQUNJLGdCQUFBO0F0RDYwRFo7QXNEcjBESTtFQUNJLGVBQUE7RUFDQSxhQXBINEM7RUFxSDVDLE1BQUE7RUFDQSxPQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxvQkNsSHNCLEVEa0h3QixRQUFBO0VBQzlDLHlCakN0SFc7QXJCNjdEbkI7QXNEcjBEUTtFQUNJLGNBQUE7QXREdTBEWjtBc0RyMERZO0VBQ0ksZ0JBcEhvQztBdEQyN0RwRDtBc0RuMERRO0VBQ0ksYUFBQSxFQUFBLFFBQUE7QXREcTBEWjtBc0RoMERJO0VFM0lBLGtDQUFBO0VBQ0EsMEJBQUE7RUFHSSx1RUFBQTtFQUlKLHlDQUFBO0VBQ0Esb0JBQUE7RUFHSSwrQ0FBQTtFQUNBLCtDQUFBO0VBQ0EsNkRBQUE7RUFDQSx5Q0FBQTtFRjhIQSxrQkFBQTtFQUNBLFNHeEo0QztFSHlKNUMsV3RFNUlzQjtFc0U2SXRCLFl0RTdJc0I7RXNFK0l0QixXR3pKNEM7RUgwSjVDLFlHMUo0QztFSDRKNUMsU0ExSTRDO0VBMkk1QyxtQnBFakptRDtFb0VrSm5ELHlCakNsSlc7QXJCMDlEbkI7QXNEdDBEUTtFSTdKSix1Q0FBQSxFQUFBLFFBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBRUEsb0JBQUE7RUFDQSxvQkFBQTtFQUNBLGtDQUFBO0VBQ0EsbUNBQUE7RTdDd0hRLGlCQUFBO0VBYUEsY0FBQTtFeUN1QkEsZ0JBbkp3QztFQW9KeEMsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsdUJBQUE7RUFDQSxjakNyS087RWlDc0tQLGVBQUE7QXRENDBEWjtBc0R4MERZO0VBRUksd0NqQ2pLZTtBckIwK0QvQjtBc0RyMERRO0VBQ0ksVUFBQSxFQUFBLFFBQUE7QXREdTBEWjtBc0RsMERJO0VBQ0ksYUFBQSxFQUFBLFFBQUE7QXREbzBEUjtBc0RqMERJO0VBQ0ksYUFBQSxFQUFBLFFBQUE7QXREbTBEUjs7QXNEOXpEQTtFQUNJLGtCQUFBO0VBQ0EsV0FBQSxFQUFBLFNBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7QXREaTBESjs7QXNEOXpEQTtFQUNJLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0F0RGkwREo7O0FzRDd6REE7O0VBQUE7QUFHQTtFQUNJLG9CQUFBLEVBQUEsU0FBQTtFQUNBLHVCQUFBLEVBQUEsU0FBQTtFQUNBLG1CQUFBLEVBQUEsU0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsVUFBQTtFQUNBLFlBQUE7RUFDQSxrQkcxT2dEO0VIMk9oRCw2QkFBQTtFQUNBLGNqQzVOZTtFaUM2TmYsZUFBQTtBdERnMERKO0FzRDd6REk7RUlsT0EsdUNBQUEsRUFBQSxRQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUVBLG9CQUFBO0VBQ0Esb0JBQUE7RUFDQSxrQ0FBQTtFQUNBLG1DQUFBO0U3Q3dIUSxlQUFBO0VBYUEsY0FBQTtFeUM0Rkosa0JBQUE7RUFDQSxXQUFBO0F0RG0wRFI7QXNEaDBESTtFQUNJLHdDakNoT3VCO0FyQmtpRS9CO0FzRDl6REk7RUFDSSxVQUFBO0F0RGcwRFI7QXNEN3pESTtFQUNJLFVBQUEsRUFBQSxTQUFBO0VBQ0Esa0JBQUEsRUFBQSxTQUFBO0F0RCt6RFI7QXNENXpESTtFQUNJLFFBQUE7QXREOHpEUjtBc0Q1ekRRO0VBQ0ksZ0JHaFJ3QztBekQ4a0VwRDtBc0R6ekRJO0VBQ0ksUUFBQTtBdEQyekRSO0FzRHp6RFE7RUFDSSxnQkcxUndDO0F6RHFsRXBEOztBc0RwekRBO0VBQ0ksYUFBQSxFQUFBLFFBQUE7RUFDQSxtQkFBQTtFQUNBLHVCQUFBLEVBQUEsUUFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBLEVBQUEsUUFBQTtFQUNBLFVBQUEsRUFBQSxRQUFBO0F0RHV6REo7QXNEcnpESTtFQUNJLG9CQUFBO0VBQ0EsbUJBQUE7RUFDQSx1QkFBQTtFQUNBLFNBQUEsRUFBQSxRQUFBO0VBQ0EsZ0JHdFI0QyxFSHNSWixRQUFBO0VBQ2hDLGlCdEV2UnNCO0VzRXdSdEIsZ0JBQUE7RUFDQSxnQnRFelJzQjtFc0UwUnRCLGVBQUE7QXREdXpEUjtBc0RyekRRO0VBQ0ksYUFBQSxFQUFBLFNBQUE7QXREdXpEWjtBc0RwekRRO0VFalNKLGtDQUFBO0VBQ0EsMEJBQUE7RUFHSSx1RUFBQTtFQUlKLHlDQUFBO0VBQ0Esb0JBQUE7RUFHSSwrQ0FBQTtFQUNBLCtDQUFBO0VBQ0EsNkRBQUE7RUFDQSx5Q0FBQTtFRm9SSSxXQUFBO0VBQ0EsY0FBQTtFQUNBLFdBcFJ3QztFQXFSeEMsWUFyUndDO0VBc1JKLFNBQUE7RUFDcEMseUJBaFJ3QztFQWlSeEMsa0JBaFJ3QztFQWlSeEMseUJqQ3JTTztBckJtbUVuQjtBc0R6ekRZO0VBQ2lELFNBQUE7RUFDN0MscUJqQ2xVRztFaUNtVUgseUJqQ25VRztBckI4bkVuQjs7QXNEbHpEQSxTQUFBO0FLbktFO0UvRDFJTSwrQkFBQTtFQUNBLFNBQUEsRUFBQSxRQUFBO0VBQ0EsZUFBQTtFQUNBLG9CQUFBLEVBQUEsUUFBQTtBSW9tRVI7QUpsbUVRO0VBRUksWUFBQSxFQUFBLFFBQUE7RUFDQSw0Q0FBQTtFaUJxR0EsZUFBQTtFQWFBLGNBQUE7RWpCN0dBLG9CQUFBLEVBQUEsUUFBQTtFQUNBLGdCVXpDaUI7RVYwQ2pCLGN5Qm5DTztFekJvQ1Asb0JBQUEsRUFBQSxRQUFBO0FJaW1FWjtBSjdsRVE7RUFDSSxrQ0FBQTtBSStsRVo7QUozbEVRO0VBQ0ksbUNBQUE7RUFDQSxjQUFBO0FJNmxFWjtBSnZsRVk7RUFDSSxhQUFBO0FJeWxFaEI7QUpubEVRO0VBQ0ksYUFBQTtBSXFsRVo7QTJEcC9ERTtFL0QxSU0sK0JBQUE7RUFDQSxTQUFBLEVBQUEsUUFBQTtFQUNBLGVBQUE7RUFDQSxvQkFBQSxFQUFBLFFBQUE7QUlpb0VSO0FKL25FUTtFQUVJLFlBQUEsRUFBQSxRQUFBO0VBQ0EsNENBQUE7RWlCcUdBLGVBQUE7RUFhQSxjQUFBO0VqQjdHQSxvQkFBQSxFQUFBLFFBQUE7RUFDQSxnQlV6Q2lCO0VWMENqQixjeUJuQ087RXpCb0NQLG9CQUFBLEVBQUEsUUFBQTtBSThuRVo7QUoxbkVRO0VBQ0ksa0NBQUE7QUk0bkVaO0FKeG5FUTtFQUNJLG1DQUFBO0VBQ0EsY0FBQTtBSTBuRVo7QUpwbkVZO0VBQ0ksYUFBQTtBSXNuRWhCO0FKaG5FUTtFQUNJLGFBQUE7QUlrbkVaOztBNERyc0VBOzt3Q0FBQTtBQVFBOzs7RUFBQTtBQU1JOztFSmNBLGtDQUFBO0VBQ0EsMEJBQUE7RUFHSSx1RUFBQTtFQUlKLHlDQUFBO0VBQ0Esb0JBQUE7RUFHSSwrQ0FBQTtFQUNBLCtDQUFBO0VBQ0EsNkRBQUE7RUFDQSx5Q0FBQTtBeEQ4cUVSO0E0RHZzRVE7c0RBQUEsUUFBQTtFQUNJLG9DQUFBO0E1RDBzRVo7QTREdnNFUTs4REFBQSxRQUFBO0VDU0EsOEJBQUE7RUFDQSwyQkFBQTtFQUNBLDRCQUFBO0VBQ0EsMEJBQUE7RUFHSixrREFBQTtFQUNBLGdEQUFBO0VBQ0EsZ0RBQUE7RUFDQSw4Q0FBQTtBN0Rnc0VKO0E0RDFzRVE7RUFFSSxtREFBQTtBNUQyc0VaO0E0RDFzRVk7RUFFSSxnR0FBQTtBNUQyc0VoQjtBNEQxc0VnQjtFQUNJLHlCQUFBO0E1RDRzRXBCOztBOERqdkVBOzt3Q0FBQTtBQUtBOzs7RUFBQTtBQ2lCQTs7RUFBQTtBRHNCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUFBO0FBcUJBO0VBQ0ksZ0JBeER3QjtFQXlEeEIsbUJBQUEsRUFBQSxRQUFBO0E5RGl0RUo7O0E4RDlzRUE7RWpEaUZZLGtCQUFBO0VpRC9FUixrQkFBQSxFQUFBLFFBQUE7RUFDQSxrQkU5RHlCO0VGK0R6Qix5QnpDbERlO0FyQm13RW5CO0E4RC9yRUk7RUQ3REksa0NBQUE7RUFDQSwyQkFBQTtFQUNBLDRCQUFBO0VBQ0Esd0JBQUE7RUFHSixrREFBQTtFQUNBLGdEQUFBO0VBQ0EsZ0RBQUE7RUFDQSw4Q0FBQTtBN0Q2dkVKO0E4RHJzRUk7O0VBRUkseUJBQUEsRUFBQSxRQUFBO0E5RHVzRVI7QThEcHNFSSw4QkFBQSxTQUFBO0VBQ0ksZ0J4RHhGcUI7QU44eEU3QjtBOERuc0VJO0VBQ0ksVUFBQTtBOURxc0VSO0E4RGxzRUk7RUFDSSxVQUFBO0E5RG9zRVI7QThEOXJFUTtFQUVrRCxRQUFBO0E5RCtyRTFEOztBOER4ckVBO0VBR1EsV0FBQTtFQUNBLFlBQUE7QTlEeXJFUjtBOERwckVJO0VBQ0ksV0FBQTtFQUNBLGtCQUFBO0E5RHNyRVI7O0E4RGpyRUE7RUFDSSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxpQkFySXdCLEVBcUlPLFFBQUE7RUFDL0IsY0FBQSxFQUFBLFFBQUE7RUFDQSxpQkFBQTtFQUNBLGdCRTNJeUI7QWhFK3pFN0I7QThEbHJFSTtFQUNJLGdCQUFBLEVBQUEsUUFBQTtBOURvckVSOztBOEQzcUVRO0VBR1EsMkJBQUE7QTlENHFFaEI7QThEN3BFZ0I7RUFFSSxTQUFBO0E5RDhwRXBCO0E4RDVwRW9CO0VDakxaLDZCQUFBO0VBQ0EsbUNBQUE7RUFDQSxrQ0FBQTtFQXFCQSxZQUFBO0VBQ0EsT0FBQSxFQUFBLFFBQUE7RUF1QkEsd0JBQUE7QS9Ec3lFUjs7QThEMXJFUTtFQUtRLDBCQUFBO0E5RHlyRWhCO0E4RDVxRWdCO0VBRUksTUFBQTtBOUQ2cUVwQjtBOEQzcUVvQjtFQzdLWixnQ0FBQTtFQUNBLG1DQUFBO0VBQ0Esa0NBQUE7RUFvQkEsU0FBQTtFQUNBLE9BQUEsRUFBQSxRQUFBO0VBc0JBLDBCQUFBO0EvRG16RVI7O0E4RHpzRVE7RUFPUSwyQkFBQTtBOURzc0VoQjtBOEQzckVnQjtFQUVJLFFBQUE7QTlENHJFcEI7QThEMXJFb0I7RUN6S1osOEJBQUE7RUFDQSxpQ0FBQTtFQUNBLG9DQUFBO0VBNEJJLFdBQUE7RUFhSix3QkFBQTtBL0QrekVSOztBOER2dEVRO0VBU1EsMEJBQUE7QTlEa3RFaEI7QThEenNFZ0I7RUFFSSxPQUFBO0E5RDBzRXBCO0E4RHhzRW9CO0VDcktaLCtCQUFBO0VBQ0EsaUNBQUE7RUFDQSxvQ0FBQTtFQTBCSSxVQUFBO0VBYUosMEJBQUE7QS9EMjBFUjs7QWlFcDRFQTs7d0NBQUE7QUFzSUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBQUE7QUFxQ0E7O0VBQUE7QUFJQTtFQUNJLDRCQUFBLEVBQUEsU0FBQSxFQUFBLCtDQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQTdKNkM7RUE4SjdDLGFBQUE7RUFDQSxzQkFBQTtFQUNBLFlBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSw0REFBQSxFQUFBLFFBQUEsRUFBQSxpREFBQTtFQUNBLHFEQS9KNkMsRUErSmYsUUFBQTtFQUM5QixrQkFBQTtFQUVBLGtCQUFBO0VBQ0EseUI1QzVKZTtFNEM2SmYsa0JBQUE7RUFDQSxVQUFBLEVBQUEsUUFBQTtFQUNBLFVBQUE7RUFDQSx5QkFBQTtFQUFBLGlCQUFBO0VBS0ksa0JqRi9Kc0I7RWlGa0t0QiwwQ2hGN0txQjtBZXc2RTdCO0FnQnJzRVE7RWlEaEZSLHNCQTZCNkQsUUFBQTtJQUNyRCxvQkFBQSxFQUFBLFFBQUE7SUFDQSxzQkFBQSxFQUFBLFFBQUE7SUFDQSwyQkFBQTtFakUydkVOO0FBQ0Y7QWlFenZFSTtFQUNJLGFBQUEsRUFBQSxTQUFBO0FqRTJ2RVI7QWlFeHZFSTtFQUNJLG1CQUFBO0VBQ0EsVUFBQTtBakUwdkVSO0FpRXZ2RUk7RUFDSSw2QkFBQSxFQUFBLFNBQUE7QWpFeXZFUjtBaUVsc0VJO0VBQ0ksaUJBdlB5QyxFQXVQUyxTQUFBO0FqRW9zRTFEOztBaUUvckVBO0VBQ0ksaURBQUE7QWpFa3NFSjtBZ0I3dEVRO0VpRDBCUiw0QkFHNkQsUUFBQTtJQUNyRCxXQUFBLEVBQUEsUUFBQTtFakVtc0VOO0FBQ0Y7O0FpRTdyRUk7RUFFSSxlQUFBO0FqRStyRVI7QWlFMXJFUTtFQUNJLGM1Q3ZSTztBckJtOUVuQjs7QWlFbnJFQTs7RUFBQTtBQUlBO0VBQ0ksa0JBQUE7QWpFcXJFSjtBaUU3cUVROztFQUVJLFVBQUE7QWpFK3FFWjtBaUV6cUVJO0VBQ0kscUJBQUE7RUFDQSxZQTVSeUM7QWpFdThFakQ7QWlFenFFUTs7RXBEdkxJLGlCQUFBO0VBYUEsY0FBQTtFb0RnTEEsWUFBQTtFQUNBLFdBdlNxQztBakVnOUVqRDtBaUVwcUVJO0VBQ0ksYUFBQTtFQUNBLFlBQUE7QWpFc3FFUjtBaUVwcUVROztFcER2TUksaUJBQUE7RUFhQSxpQkFBQTtFb0RnTUEsUUFqUHFDO0VBa1ByQyxXQUFBO0VBQ0EsYzVDNVVPO0FyQmcvRW5CO0FpRS9wRUk7O0VUL1VBLGtDQUFBO0VBQ0EsMEJBQUE7RUFHSSx1RUFBQTtFQUlKLHlDQUFBO0VBQ0Esb0JBQUE7RUFHSSwrQ0FBQTtFQUNBLCtDQUFBO0VBQ0EsNkRBQUE7RUFDQSx5Q0FBQTtFU21VQSxrQkFBQTtFQUNBLGFBQUE7RUFDQSxtQkFBQTtFQUNBLHVCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsYzVDMVZXO0U0QzJWWCxVQUFBO0FqRXlxRVI7QWlFdnFFUTs7RUFDSSx5QkFBQTtFQUVBLGVBQUEsRUFBQSxRQUFBO0FqRXlxRVo7QWlFdHFFUTs7RVB0V0oscUJBQUE7RUFDQSx1Q0FBQSxFQUFBLFFBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7RUFDQSxrQ0FBQTtFQUNBLG1DQUFBO0ExRGdoRko7QWlFNXFFSTtFQUNJLE1BQUE7QWpFOHFFUjtBaUU1cUVRO0VBQ0ksZ0JBL1ZxQztBakU2Z0ZqRDtBaUV6cUVJO0VBQ0ksU0FBQTtBakUycUVSO0FpRXpxRVE7RUFDSSxnQkF2V3FDO0FqRWtoRmpEO0FpRXRxRUk7RUFDSSw2QkFBQTtFQUFBLHFCQUFBLEVBQUEsUUFBQTtBakV3cUVSO0FpRXJxRUk7RUFDSSxhQUFBLEVBQUEsUUFBQTtBakV1cUVSO0FpRXBxRUk7O0VBRUksU0FBQSxFQUFBLFFBQUE7RUFDQSx3QkFBQTtFQUFBLGdCQUFBLEVBQUEsUUFBQTtBakVzcUVSOztBaUVqcUVBO0VBQ0ksV0FBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0EsU0F4WDZDO0VBeVg3QyxnQjNENVp5QjtFMkQ2WnpCLGtCQUFBO0VBQ0EsNkJBelg2QztFQTBYN0MsYzVDblplO0FyQnVqRm5CO0FpRWxxRUk7RUFDSSxVQUFBO0FqRW9xRVI7QWlFanFFSTtFQUNJLGdCM0R0YXFCO0UyRHVhckIsYzVDM1pXO0FyQjhqRm5COztBaUU1cEVBOztFQUFBO0FBSUE7RUFDSSxhQUFBO0VBQ0EsbUJBQUEsRUFBQSxTQUFBO0VBQ0EsbUJqRnBhMEI7QWdCa2tGOUI7O0FpRTNwRUE7RUFDSSxZQUFBO0VBQ0EsY0FBQTtFQUNBLGdCQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0EseUJBQUE7RUFBQSxpQkFBQTtBakU4cEVKOztBaUUzcEVBO0VwRHhUWSxrQkFBQTtFQVFKLGdCQUFBO0VvRG9USixnQjNEcGN5QjtFMkRxY3pCLGM1QzFiZTtBckJ1bEZuQjs7QWlFMXBFQTs7RUFFSSxhQUFBLEVBQUEsU0FBQTtFQUNBLHVCQUFBO0VBQ0EsV0N2ZDZDO0VEd2Q3QyxjQUFBO0VBQ0EsZUFBQTtBakU2cEVKO0FpRW5wRUk7O0VBQ0ksVUFBQSxFQUFBLFNBQUE7RUFDQSxrQkFBQSxFQUFBLFNBQUE7RUFDQSxvQkFBQSxFQUFBLFNBQUE7QWpFc3BFUjtBaUVucEVJOztFcER0VlEsaUJBQUE7RUFhQSxjQUFBO0VvRDhVSixjNUN4ZFc7QXJCNG1GbkI7O0FpRTdvRUE7O0VBQUE7QUFJQTtFQUNJLGdCQUFBO0VBQ0EsNkJBbmM2QztBakVrbEZqRDs7QWlFNW9FQTtFQUNJLGFBQUE7RUFDQSx1QkFBQTtBakUrb0VKOztBaUU1b0VBO0VwRGhYWSxtQkFBQTtFQWFBLGlCQUFBO0VvRHdXUixXQ3hnQjZDO0VEeWdCN0MsWUN6Z0I2QztFRDBnQjdDLGVBQUE7RUFDQSxnQjNEamdCeUI7RTJEa2dCekIsYzVDdGZlO0U0Q3VmZixlQUFBO0FqRTZvRUo7QWdCLzVFUTtFaUR3UVIscUJBWTZELFFBQUE7SUFHakQsdUNBQUE7SUFDQSx3Q0FBQTtFakU0b0VWO0FBQ0Y7O0FpRWpvRUE7O0VBQUE7QUFHQTtFQUNJLHNCQUFBLEVBQUEsUUFBQSxFQUFBLGlEQUFBO0FqRW9vRUo7O0FpRWpvRUE7RUFDSSxhQUFBO0VBQ0EsZUFBQTtFQUNBLHVCQUFBO0VBQ0EsZ0JBQUE7QWpFb29FSjs7QWlFam9FQTtFcEQxWlksZUFBQTtFQWFBLGlCQUFBO0VvRGtaUixrQkFBQTtFQUNBLFdDbmpCNkM7RURvakI3QyxZQ3BqQjZDO0VEcWpCN0MsZUFBQTtFQUNBLGtCQ3hoQjZDO0VEeWhCN0MsZ0IzRDdpQnlCO0UyRDhpQnpCLGM1Q2xpQmU7RTRDbWlCZixlQUFBO0VBaUVBLCtDQUFBO0VBU0EscUJBQUE7QWpFMGpFSjtBZ0JsOEVRO0VpRGtUUixpQkFpQjZELFFBQUE7SUFHakQsdUNBQUE7SUFDQSx3Q0FBQTtFakVnb0VWO0FBQ0Y7QWlFem5FSTtFQUNJLGdCM0Rqa0JxQjtFMkRra0JyQix5QjVDL2pCVztFNENna0JYLGM1Q3ZqQlc7QXJCa3JGbkI7QWlFeG5FSTtFQUVJLHlCNUM5a0JXO0FyQnVzRm5CO0FpRXRuRVE7RUFDSSx5QjVDemtCTztBckJpc0ZuQjtBaUVsbkVJO0VBQ0kseUI1Q3RsQlc7RTRDdWxCWCxjNUNqa0JXO0FyQnFyRm5CO0FpRWpuRUk7RUFDSSx5QjVDM2xCVztFNEM0bEJYLGM1Q3RrQlc7QXJCeXJGbkI7QWlFaG5FSTtFQUNJLGM1Q3RsQlc7RTRDdWxCWCxvQkFBQTtBakVrbkVSO0FpRS9tRVE7RUFDSSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0EsUUFBQSxFQUFBLFNBQUE7RUFDQSxTQUFBLEVBQUEsU0FBQTtFQUNBLGNBQUE7RUFDQSxXQzdrQnFDO0VEOGtCckMsV0FuaEJxQztFQW9oQnJDLCtDQUFBLEVBQUEsU0FBQTtFQUNBLG1CQUFBLEVBQUEsU0FBQTtFQUNBLDhCQXJoQnFDO0FqRXNvRmpEO0FpRTVtRUksc0dBQUEsU0FBQSxFQUFBO0FBRUk7RUFFSSxjNUM5bUJPO0FyQjB0Rm5CO0FpRXRtRUk7RUFDSSxnQjNENW5CcUI7RTJEOG5CakIsOEJBdGpCcUM7RUF5akJyQyxjNUNybkJPO0FyQjB0Rm5CO0FpRWhtRUk7RUFDSSxnQjNEdm9CcUI7RTJEd29CckIseUI1QzNvQlc7RTRDNG9CWCxjNUN0bkJXO0U0Q3VuQlgseUJBQUE7RUFBQSxpQkFBQTtFQUNBLFVBQUEsRUFBQSxRQUFBO0FqRWttRVI7QWlFaG1FUTtFQUNJLHlCNUNqcEJPO0U0Q2twQlAsYzVDNW5CTztBckI4dEZuQjs7QWlFemxFQTs7RUFBQTtBQUdBO0VBQ0ksa0JBQUE7RUFDQSxXQUFBO0VBQ0Esb0JBQUEsRUFBQSxTQUFBO0FqRTRsRUo7QWlFMWxFSSxpQ0FBQSxTQUFBO0VBQ0ksV0FBQTtFQUNBLGtCQUFBO0VBQ0EsNEJBQUEsRUFBQSxTQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSwrQkFBQTtBakU0bEVSO0FpRXhsRUk7RUFDSSxjQUFBO0VBQ0EsV0N0ckJ5QztBbEVneEZqRDtBaUV0bEVRO0VwRHZpQkksbUJBQUE7RW9ENGlCQSxjQUFBO0VBQ0EsZ0IzRHRyQmlCO0UyRHVyQmpCLGM1QzNxQk87QXJCZ3dGbkI7QWlFaGxFSTtFQUNJLGFBQUE7RUFDQSxzQkFBQTtBakVrbEVSOztBaUUza0VBOztFQUFBO0FBSUE7RUFDSSxhQUFBO0VBQ0EsbUJBQUEsRUFBQSxTQUFBO0VBQ0EsYzVDaHNCZTtBckI2d0ZuQjtBaUUza0VJO0VBQ0ksVUFBQSxFQUFBLFFBQUE7QWpFNmtFUjs7QWlFeGtFQTs7O0VwRDNrQlksbUJBQUE7RUFhQSxpQkFBQTtFb0Rxa0JSLFlBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSxXQUFBLEVBQUEsU0FBQTtFQUNBLFNBQUE7RUFDQSxrQkFBQTtFQUNBLDZCQUFBO0FqRXlrRUo7QWlFdmtFSTs7Ozs7RUFFSSxVQUFBO0FqRTRrRVI7O0FpRXZrRUE7RUFDSSxpQkVydkJxQztFRnN2QnJDLG9CQUFBO0VBQ0EseUJBQUE7RUFBQSxpQkFBQTtBakUwa0VKOztBaUV2a0VBO0VwRHZtQlksbUJBQUE7RUFhQSxpQkFBQTtFb0QrbEJSLGNBQUE7RUFDQSxlQWhwQjZDO0VBaXBCN0MsZUFBQTtBakV3a0VKO0FvRXYwRkE7Ozs7Ozs7Ozs7Ozs7OztFQUFBO0FBaUJBO0VBMEJJLFFBQUE7RUFVQSxRQUFBO0FwRXN5Rko7QW9FeDBGSTtFQUNJLHVCQUFBLEVBQUEsUUFBQTtFQUNBLGNBQUEsRUFBQSxRQUFBO0VBQ0EsZUFBQSxFQUFBLFFBQUE7RUFDQSxpQkFBQSxFQUFBLFFBQUE7RUFDQSxrQnBGRHNCLEVvRkM4QixRQUFBO0VBQ3BELGdCQUFBO0FwRTAwRlI7QW9FdjBGSTtFQUVJLGtCQUFBO0VBRUEsUUFBQTtBcEV1MEZSO0FvRXQwRlE7RUFDSSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBO0VBQ0EsTUFBQTtFQUNBLFlBQUE7RUFDQSxvQkFBQTtBcEV3MEZaO0FvRWgwRlE7RUFDSSx5Qi9DOUNPO0FyQmczRm5CO0FvRXp6RlE7RUFDSSx5Qi9DeERPO0FyQm0zRm5CO0FvRXB6RlE7RUFDSSxTQUFBLEVBQUEsUUFBQTtFQUNBLFdBQUEsRUFBQSxRQUFBO0FwRXN6Rlo7QW9FL3lGUTtFQUNJLFVBQUEsRUFBQSxRQUFBO0VBQ0EsVUFBQSxFQUFBLFFBQUE7QXBFaXpGWjs7QW9FMXlGQSxTQUFBO0FBR0k7RTFFakZBLDZDQUFBO0U4RGlCQSxrQ0FBQTtFQUNBLDBCQUFBO0VBR0ksdUVBQUE7RUFJSix5Q0FBQTtFQUNBLG9CQUFBO0VBR0ksK0NBQUE7RUFDQSwrQ0FBQTtFQUNBLDZEQUFBO0VBQ0EseUNBQUE7RWFNQSxvQkFBQTtFQUNBLHVCQUFBO0VBQ0EsbUJBQUE7RUFxQ0EsUUFBQTtBckU2ekZSO0FxRS8xRkk7RUFDSSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQTVCcUI7RUE2QnJCLFduRmhEbUQ7RW1GaURuRCxZbkZqRG1EO0VtRmtEbkQsa0JBQUE7RUFDQSxtQkFBQTtBckVpMkZSO0FxRTUxRlE7RUFDSSx3Q2hEOUJtQjtBckI0M0YvQjs7QXFFdjBGaUI7RUFDTCxXbkY1RCtDO0FjczRGM0Q7O0FvRWowRkEsU0FBQTtBQUdJO0UxRTVGQSw2Q0FBQTtFOERpQkEsa0NBQUE7RUFDQSwwQkFBQTtFQUdJLHVFQUFBO0VBSUoseUNBQUE7RUFDQSxvQkFBQTtFQUdJLCtDQUFBO0VBQ0EsK0NBQUE7RUFDQSw2REFBQTtFQUNBLHlDQUFBO0VhTUEsb0JBQUE7RUFDQSx1QkFBQTtFQUNBLG1CQUFBO0VBcUNBLFFBQUE7QXJFKzFGUjtBcUVqNEZJO0VBQ0ksV0FBQTtFQUNBLGtCQUFBO0VBQ0EsV0E1QnFCO0VBNkJyQixXbkZoRG1EO0VtRmlEbkQsWW5GakRtRDtFbUZrRG5ELGtCQUFBO0VBQ0EsbUJBQUE7QXJFbTRGUjtBcUU5M0ZRO0VBQ0ksd0NoRDlCbUI7QXJCODVGL0I7O0FxRXoyRmlCO0VBQ0wsV25GNUQrQztBY3c2RjNEOztBb0V4MUZBLFFBQUE7QUFLUTs7RUFFSSxXQUFBLEVBQUEsUUFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtBcEV1MUZaO0FvRXAxRlE7RUFDSSwyQkFBQTtBcEVzMUZaO0FvRW4xRlE7RUFDSSwwQkFBQTtBcEVxMUZaO0FvRWgxRkk7RUFDSSxrQnBGeEdzQixFb0Z3R3FDLFFBQUE7QXBFazFGbkU7O0FzRXI5RkE7RUFDRTtJQUNFLDJCQUFBO0V0RXc5RkY7QUFDRjtBc0VyOUZBO0VBQ0U7SUFDRSxZQUFBO0lBQ0EsMkJBQUE7RXRFdTlGRjtFc0VwOUZBO0lBQ0UsVUFBQTtJQUNBLHdCQUFBO0V0RXM5RkY7QUFDRjtBc0VuOUZBO0VBQ0U7SUFDRSxVQUFBO0V0RXE5RkY7RXNFbDlGQTtJQUNFLFVBQUE7RXRFbzlGRjtBQUNGO0F1RTUrRkE7RUNZSSxrQ0FBQTtFQUNBLG1DQUFBO0VEWEYsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsYUFBQTtFQUNBLHNCQUFBO0VBQ0EsNENuRGMyQjtFbURiM0Isa0NBQUE7RUFDQSxnQmpFQzJCO0VpRUEzQixpQnZGYzRCO0V1RmI1QixlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0NBQUE7RUFDQSxVQUFBO0F2RSsrRkY7QXVFNStGRTs7O0VBR0UsY0FBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0F2RTgrRko7QXVFMytGRTtFQUNFLGFBQUE7RUFDQSxvQkFBQTtFQUNBLFdBQUE7QXZFNitGSjtBdUV6K0ZFO0VBQ0UsVUFBQTtBdkUyK0ZKOztBdUVwK0ZFO0VBQ0Usc0JBQUE7QXZFdStGSjtBdUVyK0ZJOzs7RUFHRSxtQkFBQTtBdkV1K0ZOOztBdUUvOUZJOzs7O0VBSUUsMEJBQUE7QXZFaytGTjs7QXlFOWhHQTtFQUNFLG1CcEQ0QmlCO0VvRDNCakIsa0J6RmlDNEI7RXlGaEM1QixjcEQwQmlCO0VvRHpCakIsZUN3QjJDO0VEdkIzQyxjQUFBO0VBQ0EsZ0JBQUE7QXpFaWlHRjs7QTJFdGlHQTtFQUNFLGFBQUE7QTNFeWlHRjs7QTJFdGlHQTtFQUNFLGlDQUFBO0VBQ0EsU0FBQTtFQUNBLGFBQUE7RUFDQSxlQ2tCa0M7RURqQmxDLE9BQUE7RUFDQSxhM0ZhNEI7RTJGWjVCLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxzQ0FBQTtFQUNBLFdBQUE7QTNFeWlHRjtBMkV2aUdFO0VBQ0UsYUFBQTtBM0V5aUdKO0EyRXRpR0U7RUFoQkY7SUFpQkksZUFBQTtJQUNBLHVCQUFBO0UzRXlpR0Y7QUFDRjtBMkV2aUdFO0VBckJGO0lBc0JJLGVDQ2dDO0U1RXlpR2xDO0FBQ0Y7O0EyRXZpR0E7RUFDRSxjQUFBO0EzRTBpR0Y7O0EyRXRpR0E7RUFDRSxzQ0FBQTtBM0V5aUdGOztBMkV0aUdBO0VBQ0UsbUJ0RFppQjtFc0RhakIsa0JBQUE7RUFDQSxtQ0FBQTtFQUFBLDJCQUFBO0VBQ0EsY3REdEJpQjtFc0R1QmpCLGlCQUFBO0VBQ0Esb0JBQUE7RUFDQSxxQkFBQTtBM0V5aUdGO0EyRXRpR0U7RUFDRSxlQUFBO0EzRXdpR0o7O0E2RTNsR0E7RUFDRSx1QkFBQTtFQUNBLFNBQUE7RUFDQSxrQjdGZ0M0QjtFNkYvQjVCLGNBQUE7RUFDQSxlQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBO0VBQ0EsYTdGZ0I0QjtFNkZmNUIsa0JBQUE7RUFDQSx5QkFBQTtBN0U4bEdGO0E2RTVsR0U7RUFDRSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSxZRE9nQztFQ05oQyxvQkFBQTtFQUNBLFdES2dDO0E1RXlsR3BDO0E2RTFsR0U7RUFDRSxVQUFBO0E3RTRsR0o7QTZFeGxHRTtFTHZCQSxzQm5EMEJpQjtFbUR6QmpCLG1CQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtBeEVrbkdGOztBNkV4bEdBO0VBQ0UscUJBQUE7QTdFMmxHRjtBNkV6bEdFO0VBRUUsYUFBQTtBN0UwbEdKOztBNkVybEdBOzs7O0VBSUUsYUFBQTtBN0V3bEdGOztBOEVyb0dBO0VBQ0UsYUFBQTtBOUV3b0dGOztBOEVwb0dBO0VBQ0UsbUJBQUE7RUFDQSxhQUFBO0VBQ0EseUJBQUE7RUFDQSxrQkFBQTtBOUV1b0dGO0E4RXJvR0U7RUFDRSxPQUFBO0VBQ0EsWUFBQTtBOUV1b0dKO0E4RW5vR0U7RUFDRSwyQkFBQTtBOUVxb0dKO0E4RW5vR0k7RUFDRSxjQUFBO0VBQ0Esa0JBQUE7QTlFcW9HTjtBOEVsb0dJO0VBQ0UsNEJBQUE7QTlFb29HTjtBOEVqb0dJO0VBQ0UseUJBQUE7QTlFbW9HTjtBOEVob0dJO0VBR0UsZUFBQTtBOUVnb0dOO0E4RTNuR0U7RUFDRSxhQUFBO0E5RTZuR0o7O0E4RXhuR0E7Ozs7RUFJRSxhQUFBO0E5RTJuR0Y7O0E4RXpuR0E7Ozs7RUFJRSxxQkFBQTtBOUU0bkdGOztBK0V0ckdBO0VBQ0UsYUFBQTtFQUNBLGtCQUFBO0EvRXlyR0Y7QStFdHJHRTtFQUNFLCtCQUFBO0EvRXdyR0o7QStFcnJHSTtFQUNFLHdCQUFBO0EvRXVyR047QStFbnJHSTtFQUNFLGFBQUE7QS9FcXJHTjtBK0VockdFO0VBQ0UsK0JBQUE7RUFDQSxvQ0xtRHlDO0VLbER6QyxrQkFBQTtFQUNBLFlBQUE7RUFDQSx5Q0NwQjRCO0VEcUI1QixjMURHZTtFMERGZixlTEx5QztFS016QyxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsbUJBQUE7RUFDQSxVQUFBO0EvRWtyR0o7QStFaHJHSTtFQUNFLGdCQUFBO0VBQ0EsK0ZBQUE7QS9Fa3JHTjtBK0U5cUdJO0VBQ0UsNkJBQUE7RUFDQSwwQ0w4QnVDO0VLN0J2QyxXQUFBO0VBQ0EsU0FBQTtFQUNBLGtCQUFBO0VBQ0EsNENBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTtBL0VnckdOO0ErRTdxR0k7RUFDRSxhL0Y3QndCO0FnQjRzRzlCO0ErRTVxR0k7O0VBRUUsZUFBQTtBL0U4cUdOO0ErRTVxR007O0VBQ0UsYUFBQTtBL0UrcUdSO0ErRTFxR0k7RUFDRSxtQkFBQTtFQUNBLGMxRHZDYTtFMER3Q2IsYUFBQTtFQUNBLGVIcEU4QjtFR3FFOUIsZ0NBQUE7RUFDQSw4QkFBQTtFQUNBLCtCQUFBO0VBQ0EsNkJBQUE7RUFDQSx5QkFBQTtFQUFBLGlCQUFBO0VBQ0EsV0FBQTtBL0U0cUdOO0ErRTFxR007RUFDRSxvQkFBQTtFQUNBLGFBQUE7RUFDQSxXQUFBO0EvRTRxR1I7QStFenFHTTtFQUNFLDZCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLDJCQUFBO0EvRTJxR1I7QStFeHFHTTtFQUNFLDZCQUFBO0EvRTBxR1I7QStFeHFHUTtFQUNFLDBCMURuRVM7RTBEb0VULCtCQUFBO0EvRTBxR1Y7QStFdnFHUTtFQUVFLCtCQUFBO0EvRXdxR1Y7QStFcHFHTTtFQUNFLGdCekVqR3FCO0V5RWtHckIsWS9GcEZzQjtFK0ZxRnRCLDZCQUFBO0VBQ0EsNEJBQUE7RUFDQSxrQkFBQTtFQUNBLDhCQUFBO0EvRXNxR1I7QStFcHFHUTtFQUNFLDJCMUR0RlM7RTBEdUZULDhCQUFBO0EvRXNxR1Y7QStFbnFHUTtFQUNFLG1CMUQzRlM7RTBENEZULDJCQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7RUFDQSxPQUFBO0VBQ0EsMEJBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7QS9FcXFHVjtBK0VscUdRO0VBRUUsZ0NBQUE7QS9FbXFHVjtBK0U5cEdJO0VBQ0Usa0IvRnBId0I7QWdCb3hHOUI7QStFOXBHTTtFQUVFLG1CQUFBO0EvRStwR1I7QStFNXBHTTtFQUNFLDhCQUFBO0VBQ0EsV0FBQTtFQUNBLGNBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtFQUNBLGtCL0ZqSXNCO0UrRmtJdEIseUJBQUE7RUFDQSxXQUFBO0EvRThwR1I7QStFM3BHTTtFQUNFLGdCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0VBQ0EsVUFBQTtFQUNBLFFBQUE7RUFDQSxvQ0FBQTtFQUNBLGtEQUFBO0VBQ0EsVUFBQTtBL0U2cEdSO0ErRXpwR1E7RUFDRSxtQjFEL0lTO0FyQjB5R25CO0ErRXpwR1E7RUFDRSxVQUFBO0VBQ0Esb0NBQUE7QS9FMnBHVjtBK0V2cEdNO0VBRUUsaUNBQUE7QS9Fd3BHUjtBK0VucEdJO0VBQ0UsbUJBQUE7RUFDQSxhQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQ0FBQTtFQUNBLGdCQUFBO0VBQ0EsOEJBQUE7RUFDQSxvQkFBQTtBL0VxcEdOOztBaUZ2MUdBO0VBQ0Usd0JBQUEsRUFBQSwyQkFBQTtFQUNBLHVCQUFBO0VBQ0EsU0FBQTtFQUNBLDZCQUFBO0VBRUEsYzVERGlCO0U0REVqQixjQUFBO0VBQ0EsOEJBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLFVBQUE7RUFDQSxnQ0FBQTtFQUNBLFdBQUE7QWpGeTFHRjtBaUZ2MUdFO0VUTUEsdUJBQUE7RUFDQSxTQUFBO0VBQ0EsNEJBQUE7RUFDQSxXVXhCb0Q7RVZ5QnBELHdDQUFBO0VBQUEsZ0NBQUE7RUFDQSx5QkFBQTtFQUFBLGlCQUFBO0VTVEUsNEVBQUE7QWpGODFHSjtBaUYzMUdFO0VUVUEsbUJuRHZCaUI7RW1Ed0JqQixTQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkU2RDJDO0VGNUQzQyxZVXhCb0Q7RVZ5QnBELGtCQUFBO0VBQ0EsaUNBQUE7RUFBQSx5QkFBQTtFQUNBLFdVM0JvRDtFRFlsRCx3QkFBQSxFQUFBLDJCQUFBO0VBQ0EsdUNBQUE7QWpGbzJHSjtBaUZoMkdFO0VUTkEsdUJBQUE7RUFDQSxTQUFBO0VBQ0EsNEJBQUE7RUFDQSxXVXhCb0Q7RVZ5QnBELHFDQUFBO0VBQUEsZ0NBQUE7RUFDQSxpQkFBQTtBeEV5MkdGO0FpRnAyR0U7RVREQSxtQm5EdkJpQjtFbUR3QmpCLFNBQUE7RUFDQSxtQkFBQTtFQUNBLGdCRTZEMkM7RUY1RDNDLFlVeEJvRDtFVnlCcEQsa0JBQUE7RUFDQSw4QkFBQTtFQUFBLHlCQUFBO0VBQ0EsV1UzQm9EO0FsRm00R3REO0FpRjEyR0U7RUFDRSx3QkFBQTtFQUNBLDRCQUFBO0VBQ0EsV0N0Q2tEO0FsRms1R3REO0FpRngyR0U7RVRyQkEsdUJBQUE7RUFDQSxTQUFBO0VBQ0EsNEJBQUE7RUFDQSxXVXhCb0Q7RVZ5QnBELG9DQUFBO0VBQUEsZ0NBQUE7RUFDQSxpQkFBQTtFU2tCRSxrQkFBQTtBakYrMkdKO0FpRjUyR0U7RVQxQkEsdUJBQUE7RUFDQSxTQUFBO0VBQ0EsNEJBQUE7RUFDQSxXVXhCb0Q7RVZ5QnBELG9DQUFBO0VBQUEsZ0NBQUE7RUFDQSxpQkFBQTtBeEV5NEdGO0FpRmgzR0U7RVQ5QkEsdUJBQUE7RUFDQSxTQUFBO0VBQ0EsNEJBQUE7RUFDQSxXVXhCb0Q7RVZ5QnBELG9DQUFBO0VBQUEsZ0NBQUE7RUFDQSxpQkFBQTtFUzRCRSx3QkFBQTtBakZzM0dKO0FpRm4zR0U7RVQzQkEsbUJuRHZCaUI7RW1Ed0JqQixTQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkU2RDJDO0VGNUQzQyxZVXhCb0Q7RVZ5QnBELGtCQUFBO0VBQ0EsNkJBQUE7RUFBQSx5QkFBQTtFQUNBLFdVM0JvRDtFRGtEbEQsYUFBQTtBakYyM0dKO0FpRngzR0U7RUFDRSxhQUFBO0FqRjAzR0o7QWlGdDNHRTtFQUNFLFVBQUE7QWpGdzNHSjtBaUZyM0dFO0VBQ0UsU0FBQTtBakZ1M0dKO0FpRm4zR0k7RVQxRUYsc0JuRDBCaUI7RW1EekJqQixtQkFBQTtFQUNBLHFCQUFBO0VBQ0Esa0JBQUE7QXhFZzhHRjtBaUZyM0dJO0VUOUVGLHNCbkQwQmlCO0VtRHpCakIsbUJBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBO0F4RXM4R0Y7QWlGdjNHSTtFVGxGRixzQm5EMEJpQjtFbUR6QmpCLG1CQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtBeEU0OEdGOztBbUZsOUdBO0VBQ0UseUJBQUE7RUFDQSw0QkFBQTtFQUNBLDRCQUFBO0VBQ0Esd0JBQUE7RUFDQSxZQUFBO0VBQ0EsT0FBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSw2QkFBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0FuRnE5R0Y7O0FtRmw5R0E7RUFDRSxVQUFBO0FuRnE5R0Y7O0FtRmo5R0E7RUFDRSxhQUFBO0FuRm85R0Y7O0FvRnorR0E7RUFDRSxlcEJDMkI7QWhFMitHN0I7O0FvRnQrR0U7RUFDRSxZQUFBO0VBQ0Esa0JwR2UwQjtBZ0IwOUc5QjtBb0Z0K0dFO0VBUEY7SUFRSSxhQUFBO0VwRnkrR0Y7QUFDRjs7QXFGdi9HQTtFQUNFLG1CaEVtQmlCO0VnRWxCakIsa0JyQksyQjtFcUJKM0IsWUFBQTtFQUNBLGdCVGFrQztFU1psQyxjaEV3QmlCO0VnRXZCakIsZVRKa0M7RVNLbEMsZ0IvRUcyQjtFK0VGM0IsU0FBQTtFQUNBLGdCQUFBO0VBQ0EsaUNBQUE7RUFDQSxVQUFBO0VBQ0Esc0NBQUE7RUFDQSxvQkFBQTtFQUNBLGtCQUFBO0VBQ0EsMkNBQUE7RUFDQSwwQkFBQTtFQUNBLDREQUFBO0VBQ0EsbUJBQUE7RUFDQSxVQUFBO0FyRjAvR0Y7QXFGdi9HRTtFQUNFLGtDQUFBO0VBQ0EsbUNBQUE7RUFDQSw2QkFBQTtFQUNBLHNCQUFBO0VBQ0EsV0FBQTtFQUNBLFNBQUE7RUFDQSxTQUFBO0VBQ0Esa0JBQUE7RUFDQSwyQkFBQTtFQUNBLFFBQUE7RUFDQSxVQUFBO0FyRnkvR0o7O0FxRnAvR0E7OztFQUdFLFVBQUE7RUFDQSxzQ0FBQTtBckZ1L0dGOztBcUZwL0dBO0VBQ0UsVUFBQTtBckZ1L0dGOztBcUZuL0dBOztFQUVFLE9BQUE7RUFDQSx3Q0FBQTtFQUNBLHdCQUFBO0FyRnMvR0Y7QXFGcC9HRTs7RUFDRSw2QkFBQTtBckZ1L0dKOztBcUZsL0dBO0VBQ0UsVUFBQTtFQUNBLFFBQUE7RUFDQSx3Q0FBQTtFQUNBLDJCQUFBO0FyRnEvR0Y7QXFGbi9HRTtFQUNFLFVBQUE7RUFDQSw4QkFBQTtFQUNBLDBCQUFBO0FyRnEvR0o7O0FxRjkrR0U7Ozs7Ozs7O0VBR0UsbUNBQUE7QXJGcy9HSjs7QXNGcGtIQTtFQUNFLHNCQUFBO0VBQ0Esa0JKS29EO0VJSnBELGtCQUFBO0F0RnVrSEY7QXNGcmtIRTtFQUVFLDhCQUFBO0VBQ0EsK0JBQUE7RUFDQSx3QkFBQTtBdEZza0hKO0FzRm5rSEU7RUFDRSxrQkFBQTtFQUNBLFVBQUE7QXRGcWtISjtBc0Zqa0hFO0VBQ0UsZXRCcEJ5QjtFc0JxQnpCLE9BQUE7QXRGbWtISjs7QXNGL2pIQTtFQUNFLHdCQUFBLEVBQUEsMkJBQUE7RUFDQSx1QkFBQTtFQUNBLFNBQUE7RUFDQSxvQkFBQTtFQUNBLFdKaENvRDtFSWlDcEQsT0FBQTtFQUNBLGdDQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsUUFBQTtBdEZra0hGO0FzRmhrSEU7RUFDRSx1QkFBQTtBdEZra0hKO0FzRi9qSEU7RUFDRSx3QkFBQTtFQUNBLG9CQUFBO0VBQ0EsY0o5Q2tEO0VJK0NsRCxtQ0FBQTtFQUFBLDJCQUFBO0F0RmlrSEo7QXNGN2pIRTtFQUNFLHdCQUFBO0VBQ0Esb0JBQUE7RUFDQSxjSnREa0Q7RUl1RGxELGdDQUFBO0VBQUEsMkJBQUE7QXRGK2pISjtBc0YzakhFO0VBQ0Usb0JBQUE7RUFDQSwrQkFBQTtFQUFBLDJCQUFBO0F0RjZqSEo7O0FzRnhqSEE7RUFDRSwyQ0FBQTtFQUNBLDZMQUFBO0VBVUEsMkJBQUE7RUFDQSwwQkFBQTtFQUNBLGtCQUFBO0F0RmtqSEY7O0FzRi9pSEE7RUFDRSwyQ1pHMkM7QTFFK2lIN0M7O0FzRi9pSEE7RUFDRSwyQ0FBQTtBdEZrakhGOztBdUYxb0hBO0VBQ0UsbUJBQUE7RUFDQSxhQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0F2RjZvSEY7QXVGM29IRTtFQUNFLDJCQUFBO0VBQ0EsNEJBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7QXZGNm9ISjs7QXVGeG9IQTtFQUNFLFlBQUE7RUFDQSxXQUFBO0F2RjJvSEY7O0F3RjdwSEE7RUFDRSxjQUFBO0F4RmdxSEY7O0F3RjVwSEE7RUFDRSxtQm5Fc0JpQjtFbUVyQmpCLHNCQUFBO0VBQ0EsY25Fb0JpQjtFbUVuQmpCLGF4R2M0QjtBZ0JpcEg5Qjs7QXdGMXBIRTtFQUdFLHVCZDZDeUM7RWM1Q3pDLGNuRVplO0FyQnVxSG5COztBd0ZycEhFO0VBQ0UsMkNkOER5QztBMUUwbEg3QztBd0ZycEhFO0VBQ0UsMkNkMER5QztBMUU2bEg3QztBd0ZwcEhFO0VBQ0UsMkNkc0R5QztBMUVnbUg3QztBd0ZqcEhJO0VoQkVGLG1EQUFBO0F4RWtwSEY7QXdGaHBISTtFaEJGRixtREFBQTtBeEVxcEhGO0F3Ri9vSEk7RWhCTkYsbURBQUE7QXhFd3BIRjs7QXdGM29IQTtFQUNFLGdDZGlDMkM7QTFFNm1IN0M7O0F5RmxzSEE7RUFDRSxtQkFBQTtFQUNBLGdCQUFBO0F6RnFzSEY7QXlGbnNIRTtFQUNFLGlCQUFBO0F6RnFzSEo7O0F5RmpzSEE7RUFDRSxtQkFBQTtFQUNBLFlBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7QXpGb3NIRjs7QXlGOXJIQTs7RUFRRSxrQkFBQTtBekYyckhGO0F5RmpzSEU7RUFGRjs7SUFHSSxTQUFBO0lBQ0Esc0JBQUE7SUFDQSxrQkFBQTtFekZxc0hGO0FBQ0Y7O0F5RmhzSEE7O0VBRUUsU0FBQTtFQUNBLFlBQUE7RUFDQSxPQUFBO0VBQ0Esa0JBQUE7RUFDQSxNQUFBO0VBQ0EsV0FBQTtBekZtc0hGOztBeUYvckhBO0VBR0Usb0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlDQUFBO0F6RmdzSEY7O0F5RjVySEE7RUFDRSxtQnBFakRpQjtFb0VrRGpCLGtDQUFBO0VBQ0EsbUNBQUE7RUFDQSxTQUFBO0VBQ0EsY3BFL0JpQjtFb0VnQ2pCLE9BQUE7RUFDQSx1QkFBQTtFQUNBLDJCQUFBO0VBQ0Esa0JBQUE7RUFDQSxRQUFBO0VBQ0EsZ0VBQUE7RUFDQSxVQUFBO0F6RitySEY7QXlGN3JIRTtFQWRGO0lBZUksYXpHOUMwQjtJeUcrQzFCLDZCQUFBO0V6RmdzSEY7QUFDRjs7QXlGNXJIQTtFQUNFLFVBQUE7RUFDQSxvQkFBQTtFQUNBLDJCQUFBO0F6RitySEY7O0F5RnpySEU7RUFHRSx1QmY3QnlDO0VlOEJ6QyxjcEU1RGU7QXJCc3ZIbkI7O0F5RnJySEE7RUFDRSx1QmZwQzJDO0VlcUMzQyxTQUFBO0VBQ0EsbUJBQUE7RUFDQSxjcEVyRWlCO0VvRXNFakIsYUFBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0VBQ0EseUJBQUE7RUFDQSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxnQ0FBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtBekZ3ckhGO0F5RnJySEU7RUFDRSxTQUFBO0VBQ0Esa0JBQUE7QXpGdXJISjtBeUZwckhFO0VBRUUsVUFBQTtBekZxckhKOztBeUZqckhBO0VBQ0UsVUFBQTtFQUNBLGtCQUFBO0F6Rm9ySEY7O0F5RmpySEE7RUFDRSxjQUFBO0F6Rm9ySEY7O0F5Ri9xSEU7RUFDRSx5QnBFdEhlO0FyQnd5SG5CO0F5Ri9xSEU7RUFDRSx5QnBFMUhlO0FyQjJ5SG5CO0F5RjlxSEU7RUFDRSx5QnBFOUhlO0FyQjh5SG5CO0F5RjNxSEk7RWpCekdGLG9EQUFBO0F4RXV4SEY7QXlGMXFISTtFakI3R0Ysb0RBQUE7QXhFMHhIRjtBeUZ6cUhJO0VqQmpIRixvREFBQTtBeEU2eEhGOztBeUZycUhBO0VBQ0UsZ0NmM0UyQztBMUVtdkg3Qzs7QTBGMTBIQTtFbEIrQ0UsZ0JBQUE7RUFDQSwyQkFBQTtFQUNBLFlBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtBeEUreEhGOztBMEZsMUhBO0VsQitDRSxnQkFBQTtFQUNBLDJCQUFBO0VBQ0EsWUFBQTtFQUNBLFNBQUE7RUFDQSxXQUFBO0F4RSt4SEY7QXdFN3hIRTtFQUNFLFlBQUE7QXhFK3hISjtBd0VoeUhFO0VBQ0UsWUFBQTtBeEUreEhKO0F3RTN4SEU7RUFDRSxjQUFBO0F4RTZ4SEo7QXdFOXhIRTtFQUNFLGNBQUE7QXhFNnhISjtBd0UzeEhJO0VBQ0UsYUFBQTtBeEU2eEhOO0F3RTl4SEk7RUFDRSxhQUFBO0F4RTZ4SE47QXdFeHhIRTtFQUNFLFlBQUE7QXhFMHhISjtBd0UzeEhFO0VBQ0UsWUFBQTtBeEUweEhKO0F3RXR4SEU7RUFDRTtJQUNFLGVJN0M4QjtFNUVxMEhsQztFd0V6eEhFO0lBQ0UsZUk3QzhCO0U1RXEwSGxDO0FBQ0Y7O0EwRi8xSEEsZ0NBQUE7QUFDQTtFbEIwQ0UsZ0JBQUE7RUFDQSwyQkFBQTtFQUNBLFlBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtBeEV5ekhGO0F3RXZ6SEU7RUFDRSxZQUFBO0F4RXl6SEo7QXdFcnpIRTtFQUNFLGNBQUE7QXhFdXpISjtBd0VyekhJO0VBQ0UsYUFBQTtBeEV1ekhOO0F3RWx6SEU7RUFDRSxZQUFBO0F4RW96SEo7QXdFaHpIRTtFQUNFO0lBQ0UsZUk3QzhCO0U1RSsxSGxDO0FBQ0Y7O0EwRnAzSEEsZ0NBQUE7QUFDQTtFbEJxQ0UsZ0JBQUE7RUFDQSwyQkFBQTtFQUNBLFlBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtBeEVtMUhGO0F3RWoxSEU7RUFDRSxZQUFBO0F4RW0xSEo7QXdFLzBIRTtFQUNFLGNBQUE7QXhFaTFISjtBd0UvMEhJO0VBQ0UsYUFBQTtBeEVpMUhOO0F3RTUwSEU7RUFDRSxZQUFBO0F4RTgwSEo7QXdFMTBIRTtFQUNFO0lBQ0UsZUk3QzhCO0U1RXkzSGxDO0FBQ0Y7O0EwRno0SEEsZ0NBQUE7QUFDQTtFbEJnQ0UsZ0JBQUE7RUFDQSwyQkFBQTtFQUNBLFlBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtBeEU2MkhGO0F3RTMySEU7RUFDRSxZQUFBO0F4RTYySEo7QXdFejJIRTtFQUNFLGNBQUE7QXhFMjJISjtBd0V6MkhJO0VBQ0UsYUFBQTtBeEUyMkhOO0F3RXQySEU7RUFDRSxZQUFBO0F4RXcySEo7QXdFcDJIRTtFQUNFO0lBQ0UsZUk3QzhCO0U1RW01SGxDO0FBQ0Y7O0EwRjc1SEE7RWxCMkJFLGdCQUFBO0VBQ0EsMkJBQUE7RUFDQSxZQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RWtCN0JBLFNBQUE7RUFDQSxjQUFBO0VBQ0EsT0FBQTtFQUNBLGVBQUE7RUFDQSxRQUFBO0VBQ0EsTUFBQTtFQUNBLGlCQUFBO0ExRm82SEY7QXdFMzRIRTtFQUNFLFlBQUE7QXhFNjRISjtBd0V6NEhFO0VBQ0UsY0FBQTtBeEUyNEhKO0F3RXo0SEk7RUFDRSxhQUFBO0F4RTI0SE47QXdFdDRIRTtFQUNFLFlBQUE7QXhFdzRISjtBd0VwNEhFO0VBQ0U7SUFDRSxlSTdDOEI7RTVFbTdIbEM7QUFDRjs7QTJGajlIQTtFQUNFLHNCQUFBO0VBQ0EsU0FBQTtFQUNBLGVBQUE7RUFDQSxPQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxNQUFBO0VBQ0EsV0FBQTtBM0ZvOUhGO0EyRmo5SEU7O0VBRUUsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtBM0ZtOUhKO0EyRi84SEU7RUFDRSw4QkNqQmtCO0VEa0JsQixrQkFBQTtFQUNBLFkzR0MwQjtFMkdBMUIsV0FBQTtFQUNBLDhCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0Esb0JBQUE7RUFDQSxrQkFBQTtFQUNBLFczR04wQjtFMkdPMUIsVUFBQTtBM0ZpOUhKO0EyRjk4SEU7RUFDRSxhQUFBO0EzRmc5SEo7O0EyRjM4SEE7RUFDRSx3QkFBQTtFQUNBLGNBQUE7RUFDQSxXVDNDb0Q7RVM0Q3BELE9BQUE7RUFDQSxnQkFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxVQUFBO0VBQ0EsVUFBQTtBM0Y4OEhGOztBNkY5L0hBO0VBQ0UseUJ4RWlCaUI7RXdFaEJqQixrQkFBQTtFQUNBLFlBQUE7RUFDQSxnQmpCV2tDO0VpQlZsQyxpQ0FBQTtFQUNBLFVBQUE7RUFDQSxZN0JGMkI7RTZCRzNCLG9CQUFBO0VBQ0Esa0JBQUE7RUFDQSx3Q0FBQTtFQUNBLDBCQUFBO0VBQ0EsNERBQUE7RUFDQSxVQUFBO0E3RmlnSUY7QTZGLy9IRTtFQUNFLFVBQUE7RUFDQSxtQ0FBQTtBN0ZpZ0lKO0E2RjcvSEU7RUFDRSxrQ0FBQTtFQUNBLG1DQUFBO0VBQ0EsNkJBQUE7RUFDQSxzQkFBQTtFQUNBLFdBQUE7RUFDQSxTQUFBO0VBQ0EsU0FBQTtFQUNBLGtCQUFBO0VBQ0EsMkJBQUE7RUFDQSxRQUFBO0VBQ0EsVUFBQTtBN0YrL0hKO0E2RjUvSEU7RUFDRSw4QkQzQmtCO0VDNEJsQiw4QkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0E3RjgvSEo7QTZGNS9ISTtFQUNFLFlBQUE7RUFDQSxPQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxNQUFBO0VBQ0EsV0FBQTtBN0Y4L0hOO0E2RnovSEU7RUFDRSxXQy9DOEI7RURnRDlCLE9BQUE7RUFDQSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxtQkFBQTtFQUNBLFVBQUE7QTdGMi9ISjtBNkZ6L0hJO0VBQ0UscUNDekR5QjtFRDBEekIsOEJBQUE7RUFDQSxXQzFEb0I7RUQyRHBCLGU3QmxFdUI7RTZCbUV2QixnQkM5RHNCO0E5RnlqSTVCOztBNkZ0L0hBO0VBQ0UsU0FBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLE9BQUE7RUFDQSxZQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBO0VBQ0Esb0JBQUE7RUFDQSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxNQUFBO0VBQ0EsNkJBQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtBN0Z5L0hGO0E2RnYvSEU7RUFDRSxVQUFBO0E3RnkvSEo7QTZGdC9IRTtFQUNFLFlBQUE7RUFDQSxPQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxXQUFBO0E3RncvSEo7O0ErRjlsSUE7RUFDRSwyQkFBQTtBL0ZpbUlGOztBZ0dqbUlBO0VBQ0UsOEJBQUE7RUFDQSxnQkFBQTtFQUlFLG9CQUFBO0VBQ0Esc0JBQUE7RUFDQSxxQkFBQTtFQUNBLDZCQUFBO0VBQ0EscUJBQUE7QWhHaW1JSjs7QWdHdmxJQTtFQUNFLHdCQUFBO0FoRzBsSUY7O0FpR3BuSUE7O3dDQUFBO0FBTUE7Ozs7RUFBQTtBQU1BLHVGQUFBO0FBR0k7RUNPQSwrQkFBQTtFQUVBLGdCQUhxQztFQUlyQyxRRFBnQjtFQUVaLDJCQUFBO0VBQ0Esb0JBQUE7QWpHZ25JUjtBa0cxbUlJO0VBQ0ksd0JBQUE7QWxHNG1JUjtBaUdqbklRO0VFaEJKLDZCQUFBLEVBQUEsaURBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsOEJBQUE7QW5Hb29JSjs7QWlHbG5JQSxzRkFBQTtBRzdCQTs7d0NBQUE7QUFNQTs7RUFBQTtBQUlBLHVGQUFBO0FBR0k7RUZTQSwrQkFBQTtFQUVBLGdCQUhxQztFRUhqQyxpQkFBQTtBcEcyb0lSO0FrR2xvSUk7RUFDSSx3QkFBQTtBbEdvb0lSO0FvRzVvSVE7O0VBR0ksU0FBQSxFQUFBLFFBQUE7QXBHNm9JWjtBb0cxb0lROztFQUVJLDJCQUFBO0VBQ0Esb0JBQUE7QXBHNG9JWjs7QW9Hdm9JQSxzRkFBQTtBQ2xDQTs7d0NBQUE7QUFTQTs7Ozs7RUFBQTtBQU1BO0UzQ1FJLHFCQUFBO0VBQ0EsdUNBQUEsRUFBQSxRQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VBQ0Esa0NBQUE7RUFDQSxtQ0FBQTtFNENyQkEsVUFBQTtFQUNBLFNBQUE7RUFDQSw2QkFIMEU7RXpGOElsRSxpQkFBQTtFd0ZqSVIscUJBZm1CLEVBZXFCLFFBQUE7RUFDeEMsbUI5RjBCUztBUG9wSWI7QXNHenBJUTtFQUNJLFVBQUE7QXRHMnBJWjtBcUcvcUlJO0U3Q0dBLGtDQUFBO0VBQ0EsMEJBQUE7RUFHSSx1RUFBQTtFQUlKLHlDQUFBO0VBQ0Esb0JBQUE7RUFHSSwrQ0FBQTtFQUNBLCtDQUFBO0VBQ0EsNkRBQUE7RUFDQSx5Q0FBQTtFNkNoQkEseUJBQUE7RUFDQSxxQkFBQTtBckd5cklSOztBcUdscklBOzs7RUFBQTtBQWlCQTs7RUFBQTtBQUlJO0UzQytVSSxvQkFBQTtBMUR5MUhSOztBcUd4cUlJO0UzQytVSSxvQkFBQTtBMUQ2MUhSOztBcUc1cUlJO0UzQytVSSxvQkFBQTtBMURpMkhSOztBcUdocklJO0UzQytVSSxvQkFBQTtBMURxMkhSOztBcUdwcklJO0UzQytVSSxvQkFBQTtBMUR5MkhSOztBcUd4cklJO0UzQytVSSxvQkFBQTtBMUQ2MkhSOztBcUc1cklJO0UzQytVSSxvQkFBQTtBMURpM0hSOztBcUdoc0lJO0UzQytVSSxvQkFBQTtBMURxM0hSOztBcUdwc0lJO0UzQytVSSxvQkFBQTtBMUR5M0hSOztBcUd4c0lJO0UzQytVSSxvQkFBQTtBMUQ2M0hSOztBcUc1c0lJO0UzQytVSSxvQkFBQTtBMURpNEhSOztBcUdodElJO0UzQytVSSxvQkFBQTtBMURxNEhSOztBcUdwdElJO0UzQytVSSxvQkFBQTtBMUR5NEhSOztBcUd4dElJO0UzQytVSSxvQkFBQTtBMUQ2NEhSOztBcUc1dElJO0UzQytVSSxvQkFBQTtBMURpNUhSOztBcUdodUlJO0UzQytVSSxvQkFBQTtBMURxNUhSOztBcUdwdUlJO0UzQytVSSxvQkFBQTtBMUR5NUhSOztBcUd4dUlJO0UzQytVSSxvQkFBQTtBMUQ2NUhSOztBcUc1dUlJO0UzQytVSSxvQkFBQTtBMURpNkhSOztBcUdodklJO0UzQytVSSxvQkFBQTtBMURxNkhSOztBcUdwdklJO0UzQytVSSxvQkFBQTtBMUR5NkhSOztBcUd4dklJO0UzQytVSSxvQkFBQTtBMUQ2NkhSOztBcUc1dklJO0UzQytVSSxvQkFBQTtBMURpN0hSOztBcUdod0lJO0UzQytVSSxvQkFBQTtBMURxN0hSOztBcUdwd0lJO0UzQytVSSxvQkFBQTtBMUR5N0hSOztBcUd4d0lJO0UzQytVSSxvQkFBQTtBMUQ2N0hSOztBcUc1d0lJO0UzQytVSSxvQkFBQTtBMURpOEhSOztBcUdoeElJO0UzQytVSSxvQkFBQTtBMURxOEhSOztBcUdweElJO0UzQytVSSxvQkFBQTtBMUR5OEhSOztBcUd4eElJO0UzQytVSSxvQkFBQTtBMUQ2OEhSOztBcUc1eElJO0UzQytVSSxvQkFBQTtBMURpOUhSOztBcUdoeUlJO0UzQytVSSxvQkFBQTtBMURxOUhSOztBcUdweUlJO0UzQytVSSxvQkFBQTtBMUR5OUhSOztBcUd4eUlJO0UzQytVSSxvQkFBQTtBMUQ2OUhSOztBcUc1eUlJO0UzQytVSSxvQkFBQTtBMURpK0hSOztBcUdoeklJO0UzQytVSSxvQkFBQTtBMURxK0hSOztBcUdweklJO0UzQytVSSxvQkFBQTtBMUR5K0hSOztBcUd4eklJO0UzQytVSSxvQkFBQTtBMUQ2K0hSOztBcUc1eklJO0UzQytVSSxvQkFBQTtBMURpL0hSOztBcUdoMElJO0UzQytVSSxvQkFBQTtBMURxL0hSOztBcUdwMElJO0UzQytVSSxvQkFBQTtBMUR5L0hSOztBcUd4MElJO0UzQytVSSxvQkFBQTtBMUQ2L0hSOztBcUc1MElJO0UzQytVSSxvQkFBQTtBMURpZ0lSOztBcUdoMUlJO0UzQytVSSxvQkFBQTtBMURxZ0lSOztBcUdwMUlJO0UzQytVSSxvQkFBQTtBMUR5Z0lSOztBcUd4MUlJO0UzQytVSSxvQkFBQTtBMUQ2Z0lSOztBcUc1MUlJO0UzQytVSSxvQkFBQTtBMURpaElSOztBcUdoMklJO0UzQytVSSxvQkFBQTtBMURxaElSOztBcUdwMklJO0UzQytVSSxvQkFBQTtBMUR5aElSOztBcUd4MklJO0UzQytVSSxvQkFBQTtBMUQ2aElSOztBcUc1MklJO0UzQytVSSxvQkFBQTtBMURpaUlSOztBcUdoM0lJO0UzQytVSSxvQkFBQTtBMURxaUlSOztBcUdwM0lJO0UzQytVSSxvQkFBQTtBMUR5aUlSOztBcUd4M0lJO0UzQytVSSxvQkFBQTtBMUQ2aUlSOztBcUc1M0lJO0UzQytVSSxvQkFBQTtBMURpaklSOztBcUdoNElJO0UzQytVSSxvQkFBQTtBMURxaklSOztBcUdwNElJO0UzQytVSSxvQkFBQTtBMUR5aklSOztBcUd4NElJO0UzQytVSSxvQkFBQTtBMUQ2aklSOztBcUc1NElJO0UzQytVSSxvQkFBQTtBMURpa0lSOztBcUdoNUlJO0UzQytVSSxvQkFBQTtBMURxa0lSOztBcUdwNUlJO0UzQytVSSxvQkFBQTtBMUR5a0lSOztBcUd4NUlJO0UzQytVSSxvQkFBQTtBMUQ2a0lSOztBcUc1NUlJO0UzQytVSSxvQkFBQTtBMURpbElSOztBcUdoNklJO0UzQytVSSxvQkFBQTtBMURxbElSOztBcUdwNklJO0UzQytVSSxvQkFBQTtBMUR5bElSOztBcUd4NklJO0UzQytVSSxvQkFBQTtBMUQ2bElSOztBcUc1NklJO0UzQytVSSxvQkFBQTtBMURpbUlSOztBcUdoN0lJO0UzQytVSSxvQkFBQTtBMURxbUlSOztBcUdwN0lJO0UzQytVSSxvQkFBQTtBMUR5bUlSOztBcUd4N0lJO0UzQytVSSxvQkFBQTtBMUQ2bUlSOztBcUc1N0lJO0UzQytVSSxvQkFBQTtBMURpbklSOztBcUdoOElJO0UzQytVSSxvQkFBQTtBMURxbklSOztBcUdwOElJO0UzQytVSSxvQkFBQTtBMUR5bklSOztBcUd4OElJO0UzQytVSSxvQkFBQTtBMUQ2bklSOztBcUc1OElJO0UzQytVSSxvQkFBQTtBMURpb0lSOztBcUdoOUlJO0UzQytVSSxvQkFBQTtBMURxb0lSOztBcUdwOUlJO0UzQytVSSxvQkFBQTtBMUR5b0lSOztBcUd4OUlJO0UzQytVSSxvQkFBQTtBMUQ2b0lSOztBcUc1OUlJO0UzQytVSSxvQkFBQTtBMURpcElSOztBcUdoK0lJO0UzQytVSSxvQkFBQTtBMURxcElSOztBcUdwK0lJO0UzQytVSSxvQkFBQTtBMUR5cElSOztBcUd4K0lJO0UzQytVSSxvQkFBQTtBMUQ2cElSOztBcUc1K0lJO0UzQytVSSxvQkFBQTtBMURpcUlSOztBcUdoL0lJO0UzQytVSSxvQkFBQTtBMURxcUlSOztBcUdwL0lJO0UzQytVSSxvQkFBQTtBMUR5cUlSOztBcUd4L0lJO0UzQytVSSxvQkFBQTtBMUQ2cUlSOztBcUc1L0lJO0UzQytVSSxvQkFBQTtBMURpcklSOztBcUdoZ0pJO0UzQytVSSxvQkFBQTtBMURxcklSOztBcUdwZ0pJO0UzQytVSSxvQkFBQTtBMUR5cklSOztBcUd4Z0pJO0UzQytVSSxvQkFBQTtBMUQ2cklSOztBcUc1Z0pJO0UzQytVSSxvQkFBQTtBMURpc0lSOztBcUdoaEpJO0UzQytVSSxvQkFBQTtBMURxc0lSOztBcUdwaEpJO0UzQytVSSxvQkFBQTtBMUR5c0lSOztBcUd4aEpJO0UzQytVSSxvQkFBQTtBMUQ2c0lSOztBcUc1aEpJO0UzQytVSSxvQkFBQTtBMURpdElSOztBcUdoaUpJO0UzQytVSSxvQkFBQTtBMURxdElSOztBcUdwaUpJO0UzQytVSSxvQkFBQTtBMUR5dElSOztBcUd4aUpJO0UzQytVSSxvQkFBQTtBMUQ2dElSOztBcUc1aUpJO0UzQytVSSxvQkFBQTtBMURpdUlSOztBcUdoakpJO0UzQytVSSxvQkFBQTtBMURxdUlSOztBcUdwakpJO0UzQytVSSxvQkFBQTtBMUR5dUlSOztBcUd4akpJO0UzQytVSSxvQkFBQTtBMUQ2dUlSOztBcUc1akpJO0UzQytVSSxvQkFBQTtBMURpdklSOztBcUdoa0pJO0UzQytVSSxvQkFBQTtBMURxdklSOztBcUdwa0pJO0UzQytVSSxvQkFBQTtBMUR5dklSOztBcUd4a0pJO0UzQytVSSxvQkFBQTtBMUQ2dklSOztBcUc1a0pJO0UzQytVSSxvQkFBQTtBMURpd0lSOztBcUdobEpJO0UzQytVSSxvQkFBQTtBMURxd0lSOztBcUdwbEpJO0UzQytVSSxvQkFBQTtBMUR5d0lSOztBcUd4bEpJO0UzQytVSSxvQkFBQTtBMUQ2d0lSOztBcUc1bEpJO0UzQytVSSxvQkFBQTtBMURpeElSOztBcUdobUpJO0UzQytVSSxvQkFBQTtBMURxeElSOztBcUdwbUpJO0UzQytVSSxvQkFBQTtBMUR5eElSOztBcUd4bUpJO0UzQytVSSxvQkFBQTtBMUQ2eElSOztBcUc1bUpJO0UzQytVSSxvQkFBQTtBMURpeUlSOztBcUdobkpJO0UzQytVSSxvQkFBQTtBMURxeUlSOztBcUdwbkpJO0UzQytVSSxvQkFBQTtBMUR5eUlSOztBcUd4bkpJO0UzQytVSSxvQkFBQTtBMUQ2eUlSOztBcUc1bkpJO0UzQytVSSxvQkFBQTtBMURpeklSOztBcUdob0pJO0UzQytVSSxvQkFBQTtBMURxeklSOztBcUdwb0pJO0UzQytVSSxvQkFBQTtBMUR5eklSOztBcUd4b0pJO0UzQytVSSxvQkFBQTtBMUQ2eklSOztBcUc1b0pJO0UzQytVSSxvQkFBQTtBMURpMElSOztBcUdocEpJO0UzQytVSSxvQkFBQTtBMURxMElSOztBcUdwcEpJO0UzQytVSSxvQkFBQTtBMUR5MElSOztBcUd4cEpJO0UzQytVSSxvQkFBQTtBMUQ2MElSOztBcUc1cEpJO0UzQytVSSxvQkFBQTtBMURpMUlSOztBcUdocUpJO0UzQytVSSxvQkFBQTtBMURxMUlSOztBcUdwcUpJO0UzQytVSSxvQkFBQTtBMUR5MUlSOztBcUd4cUpJO0UzQytVSSxvQkFBQTtBMUQ2MUlSOztBcUc1cUpJO0UzQytVSSxvQkFBQTtBMURpMklSOztBcUdockpJO0UzQytVSSxvQkFBQTtBMURxMklSOztBcUdwckpJO0UzQytVSSxvQkFBQTtBMUR5MklSOztBcUd4ckpJO0UzQytVSSxvQkFBQTtBMUQ2MklSOztBcUc1ckpJO0UzQytVSSxvQkFBQTtBMURpM0lSOztBcUdoc0pJO0UzQytVSSxvQkFBQTtBMURxM0lSOztBcUdwc0pJO0UzQytVSSxvQkFBQTtBMUR5M0lSOztBcUd4c0pJO0UzQytVSSxvQkFBQTtBMUQ2M0lSOztBcUc1c0pJO0UzQytVSSxvQkFBQTtBMURpNElSOztBcUdodEpJO0UzQytVSSxvQkFBQTtBMURxNElSOztBcUdwdEpJO0UzQytVSSxvQkFBQTtBMUR5NElSOztBcUd4dEpJO0UzQytVSSxvQkFBQTtBMUQ2NElSOztBcUc1dEpJO0UzQytVSSxvQkFBQTtBMURpNUlSOztBcUdodUpJO0UzQytVSSxvQkFBQTtBMURxNUlSOztBcUdwdUpJO0UzQytVSSxvQkFBQTtBMUR5NUlSOztBcUd4dUpJO0UzQytVSSxvQkFBQTtBMUQ2NUlSOztBcUc1dUpJO0UzQytVSSxvQkFBQTtBMURpNklSOztBcUdodkpJO0UzQytVSSxvQkFBQTtBMURxNklSOztBcUdwdkpJO0UzQytVSSxvQkFBQTtBMUR5NklSOztBcUd4dkpJO0UzQytVSSxvQkFBQTtBMUQ2NklSOztBcUc1dkpJO0UzQytVSSxvQkFBQTtBMURpN0lSOztBcUdod0pJO0UzQytVSSxvQkFBQTtBMURxN0lSOztBcUdwd0pJO0UzQytVSSxvQkFBQTtBMUR5N0lSOztBcUd4d0pJO0UzQytVSSxvQkFBQTtBMUQ2N0lSOztBcUc1d0pJO0UzQytVSSxvQkFBQTtBMURpOElSOztBcUdoeEpJO0UzQytVSSxvQkFBQTtBMURxOElSOztBcUdweEpJO0UzQytVSSxvQkFBQTtBMUR5OElSOztBcUd4eEpJO0UzQytVSSxvQkFBQTtBMUQ2OElSOztBcUc1eEpJO0UzQytVSSxvQkFBQTtBMURpOUlSOztBcUdoeUpJO0UzQytVSSxvQkFBQTtBMURxOUlSOztBcUdweUpJO0UzQytVSSxvQkFBQTtBMUR5OUlSOztBcUd4eUpJO0UzQytVSSxvQkFBQTtBMUQ2OUlSOztBcUc1eUpJO0UzQytVSSxvQkFBQTtBMURpK0lSOztBcUdoekpJO0UzQytVSSxvQkFBQTtBMURxK0lSOztBcUdwekpJO0UzQytVSSxvQkFBQTtBMUR5K0lSOztBcUd4ekpJO0UzQytVSSxvQkFBQTtBMUQ2K0lSOztBcUc1ekpJO0UzQytVSSxvQkFBQTtBMURpL0lSOztBcUdoMEpJO0UzQytVSSxvQkFBQTtBMURxL0lSOztBcUdwMEpJO0UzQytVSSxvQkFBQTtBMUR5L0lSOztBcUd4MEpJO0UzQytVSSxvQkFBQTtBMUQ2L0lSOztBcUc1MEpJO0UzQytVSSxvQkFBQTtBMURpZ0pSOztBcUdoMUpJO0UzQytVSSxvQkFBQTtBMURxZ0pSOztBcUdwMUpJO0UzQytVSSxvQkFBQTtBMUR5Z0pSOztBcUd4MUpJO0UzQytVSSxvQkFBQTtBMUQ2Z0pSOztBcUc1MUpJO0UzQytVSSxvQkFBQTtBMURpaEpSOztBcUdoMkpJO0UzQytVSSxvQkFBQTtBMURxaEpSOztBcUdwMkpJO0UzQytVSSxvQkFBQTtBMUR5aEpSOztBcUd4MkpJO0UzQytVSSxvQkFBQTtBMUQ2aEpSOztBcUc1MkpJO0UzQytVSSxvQkFBQTtBMURpaUpSOztBcUdoM0pJO0UzQytVSSxvQkFBQTtBMURxaUpSOztBcUdwM0pJO0UzQytVSSxvQkFBQTtBMUR5aUpSOztBcUd4M0pJO0UzQytVSSxvQkFBQTtBMUQ2aUpSOztBcUc1M0pJO0UzQytVSSxvQkFBQTtBMURpakpSOztBcUdoNEpJO0UzQytVSSxvQkFBQTtBMURxakpSOztBcUdwNEpJO0UzQytVSSxvQkFBQTtBMUR5akpSOztBcUd4NEpJO0UzQytVSSxvQkFBQTtBMUQ2akpSOztBcUc1NEpJO0UzQytVSSxvQkFBQTtBMURpa0pSOztBcUdoNUpJO0UzQytVSSxvQkFBQTtBMURxa0pSOztBcUdwNUpJO0UzQytVSSxvQkFBQTtBMUR5a0pSOztBcUd4NUpJO0UzQytVSSxvQkFBQTtBMUQ2a0pSOztBcUc1NUpJO0UzQytVSSxvQkFBQTtBMURpbEpSOztBcUdoNkpJO0UzQytVSSxvQkFBQTtBMURxbEpSOztBcUdwNkpJO0UzQytVSSxvQkFBQTtBMUR5bEpSOztBcUd4NkpJO0UzQytVSSxvQkFBQTtBMUQ2bEpSOztBcUc1NkpJO0UzQytVSSxvQkFBQTtBMURpbUpSOztBcUdoN0pJO0UzQytVSSxvQkFBQTtBMURxbUpSOztBcUdwN0pJO0UzQytVSSxvQkFBQTtBMUR5bUpSOztBcUd4N0pJO0UzQytVSSxvQkFBQTtBMUQ2bUpSOztBcUc1N0pJO0UzQytVSSxvQkFBQTtBMURpbkpSOztBcUdoOEpJO0UzQytVSSxvQkFBQTtBMURxbkpSOztBcUdwOEpJO0UzQytVSSxvQkFBQTtBMUR5bkpSOztBcUd4OEpJO0UzQytVSSxvQkFBQTtBMUQ2bkpSOztBcUc1OEpJO0UzQytVSSxvQkFBQTtBMURpb0pSOztBcUdoOUpJO0UzQytVSSxvQkFBQTtBMURxb0pSOztBcUdwOUpJO0UzQytVSSxvQkFBQTtBMUR5b0pSOztBcUd4OUpJO0UzQytVSSxvQkFBQTtBMUQ2b0pSOztBcUc1OUpJO0UzQytVSSxvQkFBQTtBMURpcEpSOztBcUdoK0pJO0UzQytVSSxvQkFBQTtBMURxcEpSOztBcUdwK0pJO0UzQytVSSxvQkFBQTtBMUR5cEpSOztBcUd4K0pJO0UzQytVSSxvQkFBQTtBMUQ2cEpSOztBcUc1K0pJO0UzQytVSSxvQkFBQTtBMURpcUpSOztBcUdoL0pJO0UzQytVSSxvQkFBQTtBMURxcUpSOztBcUdwL0pJO0UzQytVSSxvQkFBQTtBMUR5cUpSOztBcUd4L0pJO0UzQytVSSxvQkFBQTtBMUQ2cUpSOztBcUc1L0pJO0UzQytVSSxvQkFBQTtBMURpckpSOztBcUdoZ0tJO0UzQytVSSxvQkFBQTtBMURxckpSOztBcUdwZ0tJO0UzQytVSSxvQkFBQTtBMUR5ckpSOztBcUd4Z0tJO0UzQytVSSxvQkFBQTtBMUQ2ckpSOztBcUc1Z0tJO0UzQytVSSxvQkFBQTtBMURpc0pSOztBcUdoaEtJO0UzQytVSSxvQkFBQTtBMURxc0pSOztBcUdwaEtJO0UzQytVSSxvQkFBQTtBMUR5c0pSOztBcUd4aEtJO0UzQytVSSxvQkFBQTtBMUQ2c0pSOztBcUc1aEtJO0UzQytVSSxvQkFBQTtBMURpdEpSOztBcUdoaUtJO0UzQytVSSxvQkFBQTtBMURxdEpSOztBcUdwaUtJO0UzQytVSSxvQkFBQTtBMUR5dEpSOztBcUd4aUtJO0UzQytVSSxvQkFBQTtBMUQ2dEpSOztBcUc1aUtJO0UzQytVSSxvQkFBQTtBMURpdUpSOztBcUdoaktJO0UzQytVSSxvQkFBQTtBMURxdUpSOztBcUdwaktJO0UzQytVSSxvQkFBQTtBMUR5dUpSOztBcUd4aktJO0UzQytVSSxvQkFBQTtBMUQ2dUpSOztBcUc1aktJO0UzQytVSSxvQkFBQTtBMURpdkpSOztBcUdoa0tJO0UzQytVSSxvQkFBQTtBMURxdkpSOztBcUdwa0tJO0UzQytVSSxvQkFBQTtBMUR5dkpSOztBcUd4a0tJO0UzQytVSSxvQkFBQTtBMUQ2dkpSOztBcUc1a0tJO0UzQytVSSxvQkFBQTtBMURpd0pSOztBcUdobEtJO0UzQytVSSxvQkFBQTtBMURxd0pSOztBcUdwbEtJO0UzQytVSSxvQkFBQTtBMUR5d0pSOztBcUd4bEtJO0UzQytVSSxvQkFBQTtBMUQ2d0pSOztBcUc1bEtJO0UzQytVSSxvQkFBQTtBMURpeEpSOztBcUdobUtJO0UzQytVSSxvQkFBQTtBMURxeEpSOztBcUdwbUtJO0UzQytVSSxvQkFBQTtBMUR5eEpSOztBcUd4bUtJO0UzQytVSSxvQkFBQTtBMUQ2eEpSOztBcUc1bUtJO0UzQytVSSxvQkFBQTtBMURpeUpSOztBcUdobktJO0UzQytVSSxvQkFBQTtBMURxeUpSOztBcUdwbktJO0UzQytVSSxvQkFBQTtBMUR5eUpSOztBcUd4bktJO0UzQytVSSxvQkFBQTtBMUQ2eUpSOztBcUc1bktJO0UzQytVSSxvQkFBQTtBMURpekpSOztBcUdob0tJO0UzQytVSSxvQkFBQTtBMURxekpSOztBcUdwb0tJO0UzQytVSSxvQkFBQTtBMUR5ekpSOztBcUd4b0tJO0UzQytVSSxvQkFBQTtBMUQ2ekpSOztBcUc1b0tJO0UzQytVSSxvQkFBQTtBMURpMEpSOztBcUdocEtJO0UzQytVSSxvQkFBQTtBMURxMEpSOztBcUdwcEtJO0UzQytVSSxvQkFBQTtBMUR5MEpSOztBcUd4cEtJO0UzQytVSSxvQkFBQTtBMUQ2MEpSOztBcUc1cEtJO0UzQytVSSxvQkFBQTtBMURpMUpSOztBcUdocUtJO0UzQytVSSxvQkFBQTtBMURxMUpSOztBcUdwcUtJO0UzQytVSSxvQkFBQTtBMUR5MUpSOztBcUd4cUtJO0UzQytVSSxvQkFBQTtBMUQ2MUpSOztBcUc1cUtJO0UzQytVSSxvQkFBQTtBMURpMkpSOztBcUdocktJO0UzQytVSSxvQkFBQTtBMURxMkpSOztBcUdwcktJO0UzQytVSSxvQkFBQTtBMUR5MkpSOztBcUd4cktJO0UzQytVSSxvQkFBQTtBMUQ2MkpSOztBcUc1cktJO0UzQytVSSxvQkFBQTtBMURpM0pSOztBcUdoc0tJO0UzQytVSSxvQkFBQTtBMURxM0pSOztBcUdwc0tJO0UzQytVSSxvQkFBQTtBMUR5M0pSOztBcUd4c0tJO0UzQytVSSxvQkFBQTtBMUQ2M0pSOztBcUc1c0tJO0UzQytVSSxvQkFBQTtBMURpNEpSOztBcUdodEtJO0UzQytVSSxvQkFBQTtBMURxNEpSOztBcUdwdEtJO0UzQytVSSxvQkFBQTtBMUR5NEpSOztBcUd4dEtJO0UzQytVSSxvQkFBQTtBMUQ2NEpSOztBcUc1dEtJO0UzQytVSSxvQkFBQTtBMURpNUpSOztBcUdodUtJO0UzQytVSSxvQkFBQTtBMURxNUpSOztBcUdwdUtJO0UzQytVSSxvQkFBQTtBMUR5NUpSOztBcUd4dUtJO0UzQytVSSxvQkFBQTtBMUQ2NUpSOztBcUc1dUtJO0UzQytVSSxvQkFBQTtBMURpNkpSOztBcUdodktJO0UzQytVSSxvQkFBQTtBMURxNkpSOztBcUdwdktJO0UzQytVSSxvQkFBQTtBMUR5NkpS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O0E2SGxxT1E7RUFDSSxhQTVCdUM7QTdIZ3NPbkQ7O0E2SDdwT0k7RWhIb0dRLGlCQUFBO0VBYUEsY0FBQTtFZ0gzR0Esa0I3STFCa0I7RTZJMkJsQixjeEcvQ087QXJCNHNPbkI7O0E2SHZwT0k7RWhIdUZRLG9CQUFBO0VBYUEsZ0JBQUE7RWdIbEdKLGdCQTVEMkM7RUE2RDNDLGdCdkhwRHFCO0V1SHFEckIsY3hHMUNXO0FyQnFzT25CO0FnQmgrTlE7RTZHL0xKO0loSHVGUSxvQkFBQTtJQWFBLGdCQUFBO0ViZ2tPVjtBQUNGO0FnQnQrTlE7RTZHL0xKO0loSHVGUSxtQkFBQTtJQWFBLGdCQUFBO0Vic2tPVjtBQUNGO0E2SHJxT1E7RWhIaUZJLG9CQUFBO0VBYUEsZ0JBQUE7RWdINUZBLG1CN0l6Q2tCO0U2STBDbEIsb0I3STFDa0I7QWdCa3RPOUI7QWdCbC9OUTtFNkd6TEE7SWhIaUZJLG1CQUFBO0lBYUEsZ0JBQUE7RWJrbE9WO0FBQ0Y7QWdCeC9OUTtFNkd6TEE7SWhIaUZJLGtCQUFBO0lBYUEsZ0JBQUE7RWJ3bE9WO0FBQ0Y7O0E2SDlxT0ksaUNBQUEsUUFBQSxFQUFBOztBQUdBO0VoSHFFUSxlQUFBO0VnSG5FSixnQkFBQSxFQUFBLFFBQUE7RUFDQSxnQjdJekRzQjtFNkkwRHRCLGN4RzVEVztBckI0dU9uQjs7QThIdHdPQTs7d0NBQUE7QUNBQTs7d0NBQUE7QUFnQkE7Ozs7Ozs7OztFQUFBO0FBVUE7RUFDSSxtQi9JSTBCO0FnQjJ2TzlCOztBK0g1dk9JO0VsSHlIUSxvQkFBQTtFa0h2SEosYUFBQSxFQUFBLFFBQUE7RUFDQSxtQkFBQSxFQUFBLFFBQUE7RUFDQSxnQnpIbkJxQjtFeUhvQnJCLGMxR1RXO0FyQnd3T25CO0FnQm5pT1E7RStHak9KO0lsSHlIUSxvQkFBQTtFYitvT1Y7QUFDRjtBZ0J4aU9RO0UrR2pPSjtJbEh5SFEsbUJBQUE7RWJvcE9WO0FBQ0Y7QStIdndPUTtFQUNJLG1CL0lQa0IsRStJTzBCLFFBQUE7QS9IeXdPeEQ7QStIdHdPUSwrQ0FBQSxRQUFBO0VBR1EsaUIvSWRjO0UrSWVkLGVEckNnQjtBOUgyeU9oQzs7QStIN3ZPSTtFbEhpR1EsZUFBQTtFa0gvRkosY0FBQTtFQUNBLGdCQUFBLEVBQUEsUUFBQTtFQUVBLGMxR2pDVztBckJneU9uQjs7QStINXZPSSw4QkFBQSxRQUFBLEVBQUE7O0FDOURKOzt3Q0FBQTtBQXVEQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQUFBO0FBbUNBO0VBQ0ksYUFBQTtFQUNBLHNCQUFBO0FoSTJ3T0o7QWdJendPSTtFQUNJOzs7O0lBQUE7RUFLQSxtQkFBQTtFQUNBLGVBQUE7RUFDQSxxQkFBQTtFQUNBLFloSnpFc0I7RWdKMEV0QixlaEoxRXNCO0FnQnExTzlCO0FnSXp3T1E7RUFDSSxTQUFBO0VBR0ksZUFBQSxFQUFBLFNBQUE7QWhJeXdPaEI7QWdJcHdPUTtFQUNJLFlBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7QWhJc3dPWjtBZ0lqd09JLHVDQUFBLFNBQUEsRUFBQTtBQWNJO0VBQ0ksa0JoSjVHa0I7QWdCazJPOUI7QWdJL3VPUTtFQUNJLGMzR3ZJTztBckJ3M09uQjtBZ0kxdU9RO0VBQ0ksaUJBNUg0QyxFQTRITSxRQUFBO0FoSTR1TzlEO0FnSXJ1T1E7RUFDSSwrQkFBQSxFQUFBLFNBQUE7QWhJdXVPWjs7QWdJaHVPSTtFbkhsQlEsa0JBQUE7RW1IK0JKLHVCQUFBO0VBQUEsa0JBQUEsRUFBQSxRQUFBLEVBQUEsb0VBQUE7RUFDQSxhQzdLMkM7RUQ4SzNDLGdCQUFBLEVBQUEsU0FBQTtFQUNBLGdCMUgzS3FCO0UwSDRLckIsYzNHbktXO0FyQjIzT25COztBZ0ludE9RO0VBRUksY25HNUxxQjtBN0JpNU9qQzs7QWdJaHRPSTtFbkgvQ1Esa0JBQUE7RUFhQSxjQUFBO0VtSGdESixrQkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0IxSHhNcUI7RTBIeU1yQixnQkFBQTtFQUNBLGMzR2pNVztFbUNLZixrQ0FBQTtFQUNBLDBCQUFBO0VBR0ksdUVBQUE7RUFJSix5Q0FBQTtFQUNBLG9CQUFBO0VBR0ksK0NBQUE7RUFDQSwrQ0FBQTtFQUNBLDZEQUFBO0VBQ0EseUNBQUE7RXdFaUxJLFVBQUE7RUFDQSxnQkFBQSxFQUFBLFNBQUE7RUFDQSw4Q0FBQSxFQUFBLFFBQUE7RUFFQSxtRUFBQTtFQXNFQSxxQkFBQTtBaEl3b09aO0FnSTdzT1k7RUFDSSxjQUFBLEVBQUEsUUFBQTtFQUNBLHNFQUFBLEVBQUEsUUFBQTtFQUNBLDZCQUFBLEVBQUEsUUFBQTtFQUNBLG9CQUFBLEVBQUEsUUFBQTtBaEkrc09oQjtBZ0k1c09ZLG9IQUFBLFFBQUE7RUFDSSxzRUFBQSxFQUFBLFFBQUE7QWhJOHNPaEI7QWdJMXNPWTtFQUVJLGNBQUEsRUFBQSxRQUFBO0VBQ0EsOENBQUEsRUFBQSxRQUFBO0VBQ0EsYzNHdk5HO0UyR3dOSCxtQkFBQSxFQUFBLFFBQUE7QWhJMnNPaEI7QWdJL3JPWTtFQUdRLDBCQUFBLEVBQUEsU0FBQTtBaEkrck9wQjtBZ0kxck9ZO0VBRUksOENBQUEsRUFBQSxRQUFBO0FoSTJyT2hCO0FnSXhyT1k7RUFDSSx5QkFBQSxFQUFBLFFBQUE7QWhJMHJPaEI7QWdJdnJPWTtFQUM2RCxRQUFBO0FoSXlyT3pFO0FnSXRyT1k7RUFDSSx5QkFBQSxFQUFBLFFBQUE7QWhJd3JPaEI7QWdJcnJPWTtFQUMyRCxRQUFBO0FoSXVyT3ZFO0FnSXByT1k7RUFDSSx5QkFBQSxFQUFBLFFBQUE7QWhJc3JPaEI7QWdJbnJPWTtFQUNJLHlCQUFBLEVBQUEsUUFBQTtBaElxck9oQjtBZ0lsck9ZO0VBQ0kseUJBQUEsRUFBQSxRQUFBO0FoSW9yT2hCOztBZ0kxcU9JO0VBQ0ksK0NBQUEsRUFBQSxTQUFBO0FoSTZxT1I7QWdJM3FPUTtFQUNJLGdCQUFBO0FoSTZxT1o7O0FrSXY5T0E7Ozs7RUFBQTtBQUtBO0VBTUkseURBQUE7RUFLQSw2RUFBQTtBbElpOU9KO0FrSTE5T0k7RUFDSSxjN0dVVyxFNkdWa0MsUUFBQTtBbEk0OU9yRDtBa0l4OU9JO0VBQ0ksYzdHVlcsRTZHVWlDLFFBQUE7QWxJMDlPcEQ7QWtJdDlPSTtFQUNJLGM3R0VXO0FyQnM5T25COztBbUlsL09BOzt3Q0FBQTtBQXFHQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBQUE7QUFvREk7O0VBRUksa0JBQUE7RUFDQSxVQUFBLEVBQUEsU0FBQTtFQUNBLG9CQUFBLEVBQUEsU0FBQTtBbklnNU9SO0FtSTk0T1E7cUVBQUEsU0FBQTtFQUNJLFdBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUEsRUFBQSxTQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLHNCQUFBLEVBQUEsU0FBQTtFQUNBLDBDQzdKcUM7QXBJOGlQakQ7QW1JNTRPSTtFQUNJLFdBQUEsRUFBQSxTQUFBO0VBQ0EsZ0JBQUEsRUFBQSxTQUFBO0FuSTg0T1I7O0FtSXo0T0E7RUFDSSxrQkFBQTtFQUNBLHlCQy9LNkM7RURnTDdDLGtCbkpoSjBCO0VtSmlKMUIseUI5R3ZLZTtFSHFUakI7Ozs7SUFBQTtBbEJtd09GO0FrQjd2T2tDLFFBQUE7QUFFcEI7RWlIL0lOLHlCQUFBO0FuSTg0T1I7O0FtSTM0T0k7RUFDSSxtQm5KdktzQixFbUp1S2dCLFFBQUE7QW5JODRPOUM7QW1JMzRPSTtFQUNJLHFCOUc3S1c7QXJCMGpQbkI7QW1JdDRPSTtFQUNJLHlCQXRIMkM7QW5JOC9PbkQ7O0FtSW40T0k7RTdCMU1BLFVBQUE7RUFDQSxTQUFBO0VBQ0EsNkJBSDBFO0U2QjRNN0MsUUFBQTtFaEc3TDdCLGlCQW9Kb0I7RUFwSnBCLG1CQW9Kb0I7RUFwSnBCLG9CQW9Kb0I7RUFwSnBCLGtCQW9Kb0I7RWdHZ0RoQixhQUFBO0VBQ0EsbUJBbkwyQztFQW9MM0MsOEJBQUE7RUFDQSxXQUFBO0VBQ0EsU0FBQTtFQUNBLG9CQUFBLEVBQUEsUUFBQTtFQUNBLG9CQUFBLEVBQUEsUUFBQTtFQUNBLGdCQUFBLEVBQUEsUUFBQTtFQUNBLGVBQUE7QW5JdTRPUjtBc0cvalBRO0VBQ0ksVUFBQTtBdEdpa1BaOztBbUk1M09JO0VBQ0ksWUFBQTtFQUNBLGdCQUFBO0VBQ0EsbUJuSnROc0I7QWdCcWxQOUI7QW1JNzNPUTtFQUNJLGdCQUFBLEVBQUEsUUFBQTtBbkkrM09aOztBbUkxM09JO0U3Qm5QQSxVQUFBO0VBQ0EsU0FBQTtFQUNBLDZCQUgwRTtFNkJxUDdDLFFBQUE7RXRIdkdyQixlQUFBO0VBYUEsaUJBQUE7RXNIK0ZKLGFBQUE7RUFDQSxxQkFBQSxFQUFBLFNBQUE7RUFDQSxXQUFBLEVBQUEsUUFBQTtFQUNBLGtCbkp4T3NCO0VtSnlPdEIsb0JBeE4yQyxFQXdORyxTQUFBO0VBQzlDLGdCN0h6UHFCO0U2SDBQckIsdUJBeE4yQyxFQXdOYyxTQUFBO0VBQ3pELGdCQUFBLEVBQUEsUUFBQTtFQUNBLGM5R2pQVztFOEdrUFgsYUFBQSxFQUFBLFFBQUE7RUFDQSxlQUFBO0FuSTgzT1I7QXNHL2xQUTtFQUNJLFVBQUE7QXRHaW1QWjs7QW1JOTNPSTtFQUNJLGVBN04yQyxFQTZOSixRQUFBO0FuSWk0Ty9DO0FtSS8zT1E7RWxCaFFBLHFCQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsdUJBQUE7RUFHSixnQkFBQTtFa0IyUDZCLFNBQUE7QW5JczRPakM7O0FtSWo0T0kseURBQUEsU0FBQTtFQUVJLGlCbko1UHNCO0FnQituUDlCO0FnQi81T1E7RW1IMEJKO0lBTVEsYUFBQTtFbkltNE9WO0FBQ0Y7O0FtSS8zT0k7RXRIN0lRLGVBQUE7RUFhQSxpQkFBQTtFc0hxSUoscUJBQUEsRUFBQSxTQUFBO0VBQ0EsZ0JBQUEsRUFBQSxTQUFBO0VBQ0EsZ0I3SDlScUI7RTZIK1JyQixjOUdsUlc7QXJCa3BQbkI7QW1JOTNPUTtFbEIzUkEscUJBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSx1QkFBQTtFQUdKLGdCQUFBO0VrQnNSNkIsU0FBQTtBbklxNE9qQzs7QWdCcjdPUTtFbUhxREo7SUFFUSxzQkFBQSxFQUFBLFNBQUE7RW5JbTRPVjtBQUNGO0FtSWo0T1E7RXpFbFNKLHFCQUFBO0VBQ0EsdUNBQUEsRUFBQSxRQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VBQ0Esa0NBQUE7RUFDQSxtQ0FBQTtFN0N3SFEsaUJBQUE7RXNId0tBLGdCQ3hTcUM7RUR5U3JDLGVDclNxQztFRHNTckMsYzlHdlNPO0U4R3dTUCx3Q0FBQTtBbkl3NE9aO0FnQjM4T1E7RW1IMERBO0l0SGxLSSxpQkFBQTtJQWFBLGNBQUE7RWIyaVBWO0FBQ0Y7QW1JcjRPWTtFdEhwTEEsaUJBQUE7RUFhQSxjQUFBO0VzSDZLSSxlQWpRbUM7QW5JcW9QbkQ7QWdCdDlPUTtFbUg0RUk7SXRIcExBLGlCQUFBO0lBYUEsY0FBQTtFYnNqUFY7QUFDRjtBbUkvM09ZO0VBQ0ksZ0JDaFVpQztFRGlVakMsYzlHL1RHO0FyQmdzUG5CO0FtSTkzT1k7RUFDSSxnQkF0UW1DO0VBdVFuQyxjOUd2VUc7QXJCdXNQbkI7QW1JNzNPWTtFQUNJLGdCQy9VaUM7RURnVmpDLGVDOVVpQztBcEk2c1BqRDtBbUk3M09nQjtFQUVJLGVBN1IrQjtBbkkycFBuRDtBbUkzM09nQjtFQUNJLGdCQ25WNkI7QXBJZ3RQakQ7QW1JMTNPZ0I7RUFDSSxnQkF6UitCO0FuSXFwUG5EOztBbUluM09JO0UzRWpXQSxrQ0FBQTtFQUNBLHlDQUFBO0VBR0ksc0VBQUE7RUFJSix5Q0FBQTtFQUNBLG9CQUFBO0VBR0ksK0NBQUE7RUFDQSwrQ0FBQTtFQUNBLDZEQUFBO0VBQ0EseUNBQUE7RTJFc1ZHLFNBQUE7RUFDSCxhQUFBLEVBQUEsU0FBQTtFQUNBLHVCQUFBLEVBQUEsU0FBQTtBbkk0M09SO0FtSTEzT1E7RUFDSSxnQkFBQSxFQUFBLFNBQUE7QW5JNDNPWjtBbUl6M09RO0VBQ0ksZ0JBQUEsRUFBQSxTQUFBO0VBQ0EsVUFBQSxFQUFBLFNBQUE7QW5JMjNPWjtBbUl4M09RO0VBQ0ksdUJBQUEsRUFBQSxTQUFBO0FuSTAzT1o7O0FtSXIzT0k7RWhHNVhBLG1CQW9Kb0I7RUFwSnBCLGtCQW9Kb0I7QW5Da21QeEI7QW1JcDNPUTtFaEdsWUosY0FvSm9CO0VnRytPa0UsU0FBQTtBbkl1M08xRjtBbUlwM09RO0VoR3RZSixvQkFvSm9CO0VnR21Qd0UsU0FBQTtFQUNwRixnQkFBQSxFQUFBLFFBQUE7QW5JdTNPWjs7QXFJbHhQQTtFN0V1Qkksa0NBQUE7RUFDQSxtQ0FBQTtFQUdJLHVFQUFBO0VBSUoseUNBQUE7RUFDQSxvQkFBQTtFQUdJLCtDQUFBO0VBQ0EsK0NBQUE7RUFDQSw2REFBQTtFQUNBLHlDQUFBO0F4RHd2UFI7O0FxSXh4UEk7RTNJQUEsNkNBQUE7RThEaUJBLGtDQUFBO0VBQ0EsMEJBQUE7RUFHSSx1RUFBQTtFQUlKLHlDQUFBO0VBQ0Esb0JBQUE7RUFHSSwrQ0FBQTtFQUNBLCtDQUFBO0VBQ0EsNkRBQUE7RUFDQSx5Q0FBQTtFYU1BLG9CQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtFQXFDQSxRQUFBO0FyRTR0UFI7QXFFOXZQSTtFQUNJLFdBQUE7RUFDQSxrQkFBQTtFQUNBLFdBNUJxQjtFQTZCckIsV25GaERtRDtFbUZpRG5ELFluRmpEbUQ7RW1Ga0RuRCxrQkFBQTtFQUNBLG1CQUFBO0FyRWd3UFI7QXFFM3ZQUTtFQUNJLHdDaEQ5Qm1CO0FyQjJ4UC9COztBcUVwdlBZO0VSN0NKLDhCQUFBO0VBQ0EseUJBQUE7RUFDQSw0QkFBQTtFQUNBLDBCQUFBO0VBR0osa0RBQUE7RUFDQSxnREFBQTtFQUNBLGdEQUFBO0VBQ0EsOENBQUE7QTdEbXlQSjs7QXFFanZQaUI7RUFDTCxXbkY1RCtDO0FjZ3pQM0Q7O0FzSS8wUEE7O3dDQUFBO0FBdUZBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBQUE7QUFnRkE7RTlFM0lJLGtDQUFBO0VBQ0EsMEJBQUE7RUFHSSx1RUFBQTtFQUlKLHlDQUFBO0VBQ0Esb0JBQUE7RUFHSSwrQ0FBQTtFQUNBLCtDQUFBO0VBQ0EsNkRBQUE7RUFDQSx5Q0FBQTtFOEUrSEEsaUZBQUEsRUFBQSxTQUFBO0VBRUosa0JBQUE7RUFDQSxhQUFBO0VBQ0EsZUFBQSxFQUFBLFNBQUE7RUF3RXlELFNBQUE7RUFpQ3JELDRDQUFBO0F0STZwUFI7QXNJcHdQSTtFQUNJLG1CQUFBLEVBQUEsU0FBQTtBdElzd1BSO0FzSW53UEk7RUFrQkksU0FBQTtBdElvdlBSO0FzSXB3UFE7RTVFL0pKLHFCQUFBO0VBQ0EsdUNBQUEsRUFBQSxRQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VBQ0Esa0NBQUE7RUFDQSxtQ0FBQTtFN0N3SFEsaUJBQUE7RXlIcUNBLGdCQTdJNEI7RUE4STVCLGtCQUFBO0VBQ0EsUUFBQSxFQUFBLFNBQUE7RUFDQSxXdEpuTG1CO0VzSm9MbkIsMkJBQUEsRUFBQSxTQUFBO0VBQ0EsU0FBQTtFQUNBLGNqSHhLTztFaUh5S1Asb0JBQUEsRUFBQSxTQUFBO0F0STJ3UFo7QXNJcndQWTtFQUNJLGNqSHZMRztBckI4N1BuQjtBc0lsd1BRO0VBRUksK0NBQUE7RUFLQSxxQkFBQTtBdEkrdlBaO0FzSW53UFk7RUFDSSxnQmhJck1hLEVnSXFNZ0MsU0FBQTtFQUM3Qyxjakg3TEcsRWlINkxtQyxTQUFBO0F0SXF3UHREO0FzSWp3UFk7RUFDSSxrQkFBQSxFQUFBLFNBQUE7RUFDQSwwQkFBQSxFQUFBLFNBQUE7QXRJbXdQaEI7QXNJaHdQWTtFQUNJLGFBQUEsRUFBQSxTQUFBO0F0SWt3UGhCO0FzSTd2UFE7RUFDSSxjakgxTU8sRWlIME00QixTQUFBO0F0SSt2UC9DO0FzSTd2UFk7RUFDSSxjakhsTkc7QXJCaTlQbkI7QXNJeHZQSTtFekh2RlEsaUJBQUE7RUFhQSxjQUFBO0V5SCtFSixzQkFBQTtBdEl3dlBSO0FzSXB2UFE7RTlFM05KLGtDQUFBO0VBQ0EsMEJBQUE7RUFHSSx1RUFBQTtFQUlKLHlDQUFBO0VBQ0Esb0JBQUE7RUFHSSwrQ0FBQTtFQUNBLCtDQUFBO0VBQ0EsNkRBQUE7RUFDQSx5Q0FBQTtFOEU4TUksV0FBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFFBQUEsRUFBQSxTQUFBO0VBQ0EsU0FBQTtFQUNBLE9BQUEsRUFBQSxTQUFBO0VBQ0EsV25FdFA2QjtFbUV1UDdCLGtCQUFBLEVBQUEsU0FBQTtFQUNBLGlCQUFBLEVBQUEsU0FBQTtFQUNBLG1Cakh2UE87RWlId1BQLFVBQUE7QXRJOHZQWjtBc0l6dlBZO0VBQ0ksVUFBQTtBdEkydlBoQjtBc0l0dlBRO0VBRUkseURBQUE7QXRJdXZQWjtBc0l0dlBZO0VBQ0ksbUJqSDdQRyxFaUg2UHVDLFNBQUE7QXRJd3ZQMUQ7QXNJNXVQb0I7O0VBQ0ksbUJBQUE7QXRJK3VQeEI7O0FzSXh1UG9CO0VBR0ksbURBQUE7QXRJeXVQeEI7QXNJeHVQd0I7RUFDSSxtQkFBQTtBdEkwdVA1Qjs7QXNJOXRQd0I7RUFDSSxtQkFBQTtBdElpdVA1Qjs7QXNJM3ZQb0I7O0VBQ0ksbUJBQUE7QXRJK3ZQeEI7O0FzSXh2UG9CO0VBR0ksbURBQUE7QXRJeXZQeEI7QXNJeHZQd0I7RUFDSSxtQkFBQTtBdEkwdlA1Qjs7QXNJOXVQd0I7RUFDSSxtQkFBQTtBdElpdlA1Qjs7QXNJbHVQSTtFQUNJLFlBQUEsRUFBQSxTQUFBO0VBQ0EsY0FBQSxFQUFBLFNBQUE7RUFDQSxhQUFBLEVBQUEsU0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBLEVBQUEsU0FBQTtFQUNBLGVBQUE7RUFDQSx5QmpKaFVzQztFaUppVXRDLGdCQUFBLEVBQUEsU0FBQTtFQUNBLGdCaElsVXFCO0VnSW1VckIsa0NuRTFVaUM7RW1FMlVqQyxjakh4VFc7RWlIeVRYLGdCQUFBO0VBQ0Esd0JBQUE7RUFBQSxnQkFBQSxFQUFBLFNBQUE7RUFFSSwyQnRKL1NrQjtFc0pnVGxCLDhCdEpoVGtCO0VzSjRXdEI7O0lBQUE7RUFZQTs7SUFBQTtFQWNBOztJQUFBO0VBdUNBOztJQUFBO0VBbUNBOztJQUFBO0VBR0EsNENBQUE7QXRJaWxQUjtBc0lodlBZO0VBQ0ksa0J0SnJUYyxFc0pxVHVCLFNBQUE7QXRJa3ZQckQ7QXNJOXVQUTtFekh6TUksZUFBQTtFQWFBLGlCQUFBO0V5SGdNRyxTQUFBO0VBQ0gsWW5Falc2QixFbUVpV04sU0FBQTtBdEkrdVBuQztBc0kxdVBZO0V6SG5OQSxlQUFBO0VBYUEsaUJBQUE7RXlIMk1JLGdCQUFBLEVBQUEsU0FBQTtFQUNBLGdCdEpsVmMsRXNKa1ZpQyxTQUFBO0VBQy9DLG1CdEpuVmMsRXNKbVZvQyxTQUFBO0F0STB1UGxFOztBc0l2dVBZO0VBQ0ksNEJ0SjlVYyxFc0o4VWlDLFNBQUE7RUFDL0MsK0J0Si9VYyxFc0orVW9DLFNBQUE7QXRJMHVQbEU7O0FzSXJ1UFE7RUFDSSxtQkFBQSxFQUFBLFNBQUE7QXRJd3VQWjtBc0lydVBRO0VBQ0ksK0JqSmxYa0M7RWlKbVhsQyxjQUFBLEVBQUEsUUFBQTtFQUVJLGdCQUFBO0VBQ0EsNEJ0SjdWYztFc0o4VmQsK0J0SjlWYztBZ0Jva1E5QjtBc0lsdVBRO0VBQ0ksZ0JoSTVYaUI7RWdJNlhqQixjakhwWE87RWlIcVhQLFVBQUE7QXRJb3VQWjtBc0lqdVBRO0VBQ0ksYUFBQSxFQUFBLFNBQUE7QXRJbXVQWjtBc0k3dFBRO0VBQ0kscUJqSDdYTztBckI0bFFuQjtBc0k3dFBZO0VBQ0kscUJqSGhZRyxFaUhnWXNDLFFBQUE7QXRJK3RQekQ7QXNJdnRQUTtFQUVJLHFCakh6Wk87RWlIMFpQLGFBQUE7QXRJd3RQWjtBc0l0dFBZO0VBQ0kscUJqSDdaRztBckJxblFuQjtBc0lodFBRO0VBRUkscUJqSDdaTztFaUg4WlAsd0NuRTVhNkI7RW1FNmE3QixjakgvWk87RWlIZ2FQLG9CQUFBO0VBQ0EsZUFBQTtFQUNBLGdDakhsYU87RWlIbWFQLFVBQUEsRUFBQSxTQUFBO0F0SWl0UFo7QXNJMXNQWTtFQUNJLGdDQUFBLEVBQUEsU0FBQSxFQUFBLGlEQUFBO0VBQ0Esd0NuRTFieUIsRW1FMGJxQixTQUFBO0VBQzlDLGNqSC9hRyxFaUgrYXNDLFNBQUE7RUFDekMsb0JBQUE7RUFDQSxlQUFBO0VBT0EsbURBQUE7QXRJc3NQaEI7QXNJM3NQZ0I7RUFDSSx5QmpIbGJELEVpSGticUQsU0FBQTtFQUNwRCxjakhyYkQsRWlIcWIwQyxTQUFBO0F0STZzUDdEO0FzSXpzUGdCO0VBQ0ksY2pI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SDNKTztBckI0cVNuQjtBaUozM1JRO0VBbkxKLHFCNUg1SWU7RTRIOElmLFVFMUp5QztFRjJKekMsWUFxTXVDO0UvSGpDekM7Ozs7SUFBQTtBbEJpNVJGO0FrQjM0UmtDLFFBQUE7QStIMUoxQjtFQUNJLHFCNUhoS087RTRIaUtQLHlCNUhsS087RUhvVGpCOzs7O0lBQUE7QWxCMjVSRjtBa0JyNVJrQyxRQUFBO0ErSGpKMUI7RUFDSSxjNUgzSk87QXJCb3NTbkI7QWlKejNSUTtFQTdNSixxQjVIMUllO0VIaVRqQjs7OztJQUFBO0FsQnU2UkY7QWtCajZSa0MsUUFBQTtBK0gxSjFCO0VBQ0kscUI1SDlKTztFNEgrSlAseUI1SGpLTztFSG1UakI7Ozs7SUFBQTtBbEJpN1JGO0FrQjM2UmtDLFFBQUE7QStIakoxQjtFQUNJLGM1SDNKTztBckIwdFNuQjtBaUp6M1JRO0VBbk9KLHFCNUhuSWU7RUgwU2pCOzs7O0lBQUE7QWxCNjdSRjtBa0J2N1JrQyxRQUFBO0ErSDFKMUI7RUFDSSxxQjVIdkpPO0U0SHdKUCx5QjVIbEtPO0VIb1RqQjs7OztJQUFBO0FsQnU4UkY7QWtCajhSa0MsUUFBQTtBK0hqSjFCO0VBQ0ksYzVIM0pPO0FyQmd2U25CO0FpSmo0UlE7RUFqUEoscUI1SG5JZTtFSDBTakI7Ozs7SUFBQTtBbEJtOVJGO0FrQjc4UmtDLFFBQUE7QStIMUoxQjtFQUNJLHFCNUh2Sk87RTRId0pQLHlCNUhsS087RUhvVGpCOzs7O0lBQUE7QWxCNjlSRjtBa0J2OVJrQyxRQUFBO0ErSGpKMUI7RUFDSSxjNUgzSk87QXJCc3dTbkI7QWlKeDRSUTtFQWhRSixxQjVIbkllO0VIMFNqQjs7OztJQUFBO0FsQnkrUkY7QWtCbitSa0MsUUFBQTtBK0gxSjFCO0VBQ0kscUI1SHZKTztFNEh3SlAseUI1SHhKTztFSDBTakI7Ozs7SUFBQTtBbEJtL1JGO0FrQjcrUmtDLFFBQUE7QStIakoxQjtFQUNJLGM1SDNKTztBckI0eFNuQjs7QWlKLzRSSTtFQUNJLFlBQUEsRUFBQSxRQUFBO0VBQ0EsY0FBQTtFQUNBLGdCQUFBO0VB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O0lEMk5BLHNCQUFBO0lBQ0EscUJBQUE7RTlNa3ljVjtBQUNGO0E4TWh5Y1E7RUFDSSxrQjlON09rQixFOE42TzBCLFFBQUE7QTlNa3ljeEQ7QWdCL3ljUTtFK0xwT0o7SURvUFksZUFBQTtFOU1teWNkO0FBQ0Y7QWdCcHpjUTtFK0xuTkk7SURtT0ksZUFBQTtFOU13eWNkO0FBQ0Y7QWdCenpjUTtFK0xuTkk7SURtT0ksZUFBQTtFOU02eWNkO0FBQ0Y7QWdCOXpjUTtFK0xuTkk7SURtT0ksZUFBQTtFOU1remNkO0FBQ0Y7QWdCbjBjUTtFK0xuTkk7SURtT0ksZUFBQTtFOU11emNkO0FBQ0Y7QWdCeDBjUTtFK0xuTkk7SURtT0ksZUFBQTtFOU00emNkO0FBQ0Y7QWdCNzBjUTtFK0xuTkk7SURtT0ksZUFBQTtFOU1pMGNkO0FBQ0Y7O0E4TTN6Y0k7RUFDSSxrQkFBQSxFQUFBLFFBQUE7RUFDQSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkFBQSxFQUFBLFNBQUE7QTlNOHpjUjtBZ0J6MWNRO0UrTHBPSjtJRGtRUSxZQUFBLEVBQUEsUUFBQTtFOU0remNWO0FBQ0Y7QWdCOTFjUTtFK0xuTkk7SURpUEEsWUFBQSxFQUFBLFFBQUE7RTlNbzBjVjtBQUNGO0FnQm4yY1E7RStMbk5JO0lEaVBBLFlBQUEsRUFBQSxRQUFBO0U5TXkwY1Y7QUFDRjtBZ0J4MmNRO0UrTG5OSTtJRGlQQSxZQUFBLEVBQUEsUUFBQTtFOU04MGNWO0FBQ0Y7QWdCNzJjUTtFK0xuTkk7SURpUEEsWUFBQSxFQUFBLFFBQUE7RTlNbTFjVjtBQUNGO0FnQmwzY1E7RStMbk5JO0lEaVBBLFlBQUEsRUFBQSxRQUFBO0U5TXcxY1Y7QUFDRjtBZ0J2M2NRO0UrTG5OSTtJRGlQQSxZQUFBLEVBQUEsUUFBQTtFOU02MWNWO0FBQ0Y7QStNamtkUTtFRG1PSSxZQUFBLEVBQUEsUUFBQTtBOU1pMmNaO0FnQi8zY1E7RStMcE9KO0lEc1FRLHNCQUFBO0lBQ0EsV0FBQTtFOU1pMmNWO0U4TTMxY1U7SUFDSSxTQUFBLEVBQUEsUUFBQTtFOU02MWNkO0FBQ0Y7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QUE7RTlNby9jbEI7QUFDRjtBZ0JqdmRRO0U4TDBQUTtJQUNJLGVBdmJtQztJQXdibkMsY0FBQTtFOU0wL2NsQjtBQUNGO0E4TTcvY2dCO0VBQ0ksZUF2Ym1DO0VBd2JuQyxjQUFBO0E5TSsvY3BCOztBaU4xL2RBOzt3Q0FBQTtBQWVBOzs7OztFQUFBO0FqTWdQUTtFK0xwT0o7SUVBd0MsUUFBQTtJQUNwQyxVak9Hc0I7SWlPRnRCLDRCQUFBO0lBQ0EsZ0JBQUE7SUFDQSxlak9Ec0I7SWlPRXRCLGtCak9Nc0I7SWlPTHRCLDBDaE9IcUI7RWVnL2QzQjtBQUNGO0FnQmh4ZFE7RStMbk5JO0lFakJnQyxRQUFBO0lBQ3BDLFVqT0dzQjtJaU9GdEIsNEJBQUE7SUFDQSxnQkFBQTtJQUNBLGVqT0RzQjtJaU9FdEIsa0JqT01zQjtJaU9MdEIsMENoT0hxQjtFZTIvZDNCO0FBQ0Y7QWdCM3hkUTtFK0xuTkk7SUVqQmdDLFFBQUE7SUFDcEMsVWpPR3NCO0lpT0Z0Qiw0QkFBQTtJQUNBLGdCQUFBO0lBQ0EsZWpPRHNCO0lpT0V0QixrQmpPTXNCO0lpT0x0QiwwQ2hPSHFCO0Vlc2dlM0I7QUFDRjtBZ0J0eWRRO0UrTG5OSTtJRWpCZ0MsUUFBQTtJQUNwQyxVak9Hc0I7SWlPRnRCLDRCQUFBO0lBQ0EsZ0JBQUE7SUFDQSxlak9Ec0I7SWlPRXRCLGtCak9Nc0I7SWlPTHRCLDBDaE9IcUI7RWVpaGUzQjtBQUNGO0FnQmp6ZFE7RStMbk5JO0lFakJnQyxRQUFBO0lBQ3BDLFVqT0dzQjtJaU9GdEIsNEJBQUE7SUFDQSxnQkFBQTtJQUNBLGVqT0RzQjtJaU9FdEIsa0JqT01zQjtJaU9MdEIsMENoT0hxQjtFZTRoZTNCO0FBQ0Y7QWdCNXpkUTtFK0xuTkk7SUVqQmdDLFFBQUE7SUFDcEMsVWpPR3NCO0lpT0Z0Qiw0QkFBQTtJQUNBLGdCQUFBO0lBQ0EsZWpPRHNCO0lpT0V0QixrQmpPTXNCO0lpT0x0QiwwQ2hPSHFCO0VldWllM0I7QUFDRjtBZ0J2MGRRO0UrTG5OSTtJRWpCZ0MsUUFBQTtJQUNwQyxVak9Hc0I7SWlPRnRC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QTZOMWpnQkk7RUFDSSxrQkFBQTtBN042amdCUjtBNk4zamdCUTtFQUNJLGdCQUFBLEVBQUEsUUFBQTtBN042amdCWjtBNk4xamdCUTtFQUNJLGdEQUFBLEVBQUEsUUFBQTtBN040amdCWjtBNk4xamdCWSxnRUFBQSxRQUFBO0VBQ0ksV0FBQTtFQUNBLGtCQUFBO0VBQ0Esb0RBQUEsRUFBQSxZQUFBO0VBQ0EsUUFBQTtFQUNBLE9BQUE7RUFDQSw2QkF0RnVDO0E3TmtwZ0J2RDs7QTZOcmpnQkk7RWhOMENRLGtCQUFBO0VnTnhDSixjQUFBO0VBQ0EsZ0J2Tm5HcUI7QU4ycGdCN0I7O0E2TnBqZ0JJO0VoTm1DUSxrQkFBQTtFZ05qQ0osY0FBQTtFQUNBLGdCdk4xR3FCO0FOaXFnQjdCOztBNk5uamdCSTtFaE40QlEsa0JBQUE7RWdOekJKLG1CN08vRnNCO0U2T2dHdEIsZ0J2TmhIcUI7RXVOaUhyQixrQkFqRytDO0VBa0cvQyxjeE12R1c7QXJCNHBnQm5CO0FnQnY3ZlE7RTZNcElKO0loTjRCUSxvQkFBQTtFYm1pZ0JWO0FBQ0Y7QWdCNTdmUTtFNk1wSUo7SWhONEJRLGlCQUFBO0Vid2lnQlY7QUFDRjs7QTZONWpnQkkscUNBQUEsUUFBQSxFQUFBO0FBUUk7RWhOV0ksa0JBQUE7RWdOUkEsZ0J2TmhJaUI7QU51cmdCN0I7QWdCdjhmUTtFNk1uSEE7SWhOV0ksb0JBQUE7RWJtamdCVjtBQUNGO0FnQjU4ZlE7RTZNbkhBO0loTldJLGlCQUFBO0Vid2pnQlY7QUFDRjtBNk43amdCUTtFaE5JSSxrQkFBQTtFZ05EQSxnQnZOdklpQjtBTnFzZ0I3QjtBZ0JyOWZRO0U2TTVHQTtJaE5JSSxvQkFBQTtFYmlrZ0JWO0FBQ0Y7QWdCMTlmUTtFNk01R0E7SWhOSUksaUJBQUE7RWJza2dCVjtBQUNGO0E2TnBrZ0JRO0VBSUksZ0J2TmpKaUI7QU5vdGdCN0I7QTZOL2pnQlEsNkhBQUEsc0VBQUEsRUFBQSxRQUFBO0VBQ0ksZ0JBbEgyQztBN05tcmdCdkQ7O0E4TnB1Z0JBOzt3Q0FBQTtBQStEQTs7Ozs7Ozs7Ozs7Ozs7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MmtCVjtBQUNGOztBbUNyeGtCUTtFdEIvRUksa0JBQUE7RXNCL0hSLGdCQW9Kb0I7RUFwSnBCLGNBb0pvQjtFQXBKcEIsa0JBb0pvQjtBbkNzMWtCeEI7O0FtQzV4a0JRO0V0Qi9FSSxrQkFBQTtFc0IvSFIsY0FvSm9CO0VBcEpwQixrQkFvSm9CO0FuQzQxa0J4QjtBZ0J6d2tCUTtFbUJ6QkE7SXRCL0VJLG9CQUFBO0VicTNrQlY7QUFDRjtBZ0I5d2tCUTtFbUJ6QkE7SXRCL0VJLGlCQUFBO0ViMDNrQlY7QUFDRjs7QW1DNXlrQlE7RXRCL0VJLGVBQUE7RXNCL0hSLGNBb0pvQjtFQXBKcEIsa0JBb0pvQjtBbkM0MmtCeEI7O0FtQ2x6a0JRO0VBOU1KLGdCQW9Kb0I7QW5DZzNrQnhCOztBZ0I3eGtCUTtFZ09tUkEsMkJBYWlELFNBQUEsRUFBQTtFQVZ6QztJQUVJLGMzTnRmRDtFckJpZ2xCakI7RW1DNXprQk07SUE5TUosY0FvSm9CO0VuQ3kza0J0QjtFbUMvemtCTTtJQTlNSixjQW9Kb0I7RW5DNDNrQnRCO0VtQ2wwa0JNO0lBOU1KLGNBb0pvQjtFbkMrM2tCdEI7RW1DcjBrQk07SUE5TUosY0FvSm9CO0VuQ2s0a0J0QjtFZ1BwaGtCYyxpREFBQSxTQUFBO0lBRUksYzNObGdCRDtFckJ1aGxCakI7RW1DMzBrQk07SUE5TUosa0JBb0pvQjtJQXBKcEIsbUJBb0pvQjtJQXBKcEIsa0JBb0pvQjtFbkMwNGtCdEI7RW1DaDFrQk07SUE5TUosa0JBb0pvQjtFbkM2NGtCdEI7RW1DbjFrQk07SXRCL0VJLG9CQUFBO0lzQi9IUixjQW9Kb0I7SUFwSnBCLGNBb0pvQjtFbkNrNWtCdEI7QUFDRjtBZ0JoMGtCUTtFbUJ6QkE7SXRCL0VJLG1CQUFBO0ViNDZrQlY7QUFDRjtBZ0JyMGtCUTtFbUJ6QkE7SXRCL0VJLGtCQUFBO0ViaTdrQlY7QUFDRjtBZ0IxMGtCUTtFbUJ6QkE7SXRCL0VJLGtCQUFBO0lzQi9IUixnQkFvSm9CO0lBcEpwQixjQW9Kb0I7SUFwSnBCLGtCQW9Kb0I7RW5DbzZrQnRCO0VtQzEya0JNO0l0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O0FnQjMrbUJRO0VnUDVNQTtJN04zQkosa0JBOEp3QjtFbkN3am5CMUI7QUFDRjtBZ1Fwcm5CUTtFQUNJLGFBQUE7QWhRc3JuQlo7QWdRbnJuQlE7RUFDSSxtQkFBQTtFQUNBLHFCQUFBO0VBQ0EseUJBQUE7QWhRcXJuQlo7QWdRbHJuQlE7RW5Qa0ZJLGtCQUFBO0VtUGhGQSxnQmhSMUNrQjtBZ0I4dG5COUI7QWdCNS9tQlE7RWdQMUxBO0luUGtGSSxlQUFBO0Vid21uQlY7QUFDRjtBZ0JqZ25CUTtFZ1AxTEE7SW5Qa0ZJLGtCQUFBO0ViNm1uQlY7QUFDRjtBZ1Ezcm5CUTtFQUNJLGdCQUFBLEVBQUEsUUFBQTtBaFE2cm5CWjtBZ1Excm5CUTtFQUNJLGFBQUE7RUFDQSxxQkFBQTtFQUNBLDJCQUFBO0FoUTRybkJaO0FnUXpybkJRO0VBQ0ksaUJoUnhEa0I7RWdSeURsQixnQkFBQTtBaFEycm5CWjs7QWdRcHJuQkk7RUFDSSxZQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQTNGNEM7QWhRa3huQnBEO0FnQnhobkJRO0VnUGxLSjtJQU1RLGFBQUE7RWhRd3JuQlY7QUFDRjs7QWdCN2huQlE7RWdQdkpKO0lBR1Esa0JBQUE7SUFDQSxjQUFBO0VoUXNybkJWO0FBQ0Y7O0FnUWxybkJJO0VuUHNDUSxrQkFBQTtFbVBwQ0osY0FBQTtFQUNBLGtCaFJ0RnNCO0VnUndGdEIsZ0IxUHZHcUI7QU4yeG5CN0I7QWdCM2luQlE7RWdQOUlKO0luUHNDUSxvQkFBQTtFYnVwbkJWO0FBQ0Y7QWdCaGpuQlE7RWdQOUlKO0luUHNDUSxpQkFBQTtFYjRwbkJWO0FBQ0Y7O0FnUTFybkJJO0VuUDZCUSxtQkFBQTtFbVAzQkosY0FBQTtFQUNBLGdCQUFBO0FoUTZybkJSO0FnQjNqbkJRO0VnUHJJSjtJQVNRLGFBQUE7RWhRMnJuQlY7QUFDRjs7QWdRdnJuQkk7RW5QZVEsa0JBQUE7RW1QVkosYUFBQTtFQUNBLHNCQUFBO0VBQ0EsWWhSbEhzQjtFZ1JtSHRCLGlCQUFBLEVBQUEsUUFBQTtFQUVBLGdCMVBuSXFCO0UwUG9JckIsaUJBQUE7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QUFBO0FuUjQwcEIxRDs7QW1SejBwQlk7RUFDSSxrQkFBQSxFQUFBLFFBQUE7RUFDQSxpQkFBQSxFQUFBLFFBQUE7RUFDQSxtQm5TemVjO0FnQnF6cUI5QjtBbVIxMHBCZ0I7RUFDSSxtQm5TNWVVO0FnQnd6cUI5Qjs7QW1SdjBwQlk7RXRRdFhBLGtCQUFBO0VzUXdYSSxrQm5TbmZjLEVtU21mNkIsUUFBQTtFQUMzQyxpQm5TcGZjLEVtU29mNEIsUUFBQTtFQUMxQyxtQm5TcmZjO0VtU3NmZCxnQjdRcGdCYTtBTjgwcUI3Qjs7QW1SdDBwQlk7RUFDSSxrQm5TM2ZjLEVtUzJmNkIsUUFBQTtFQUMzQyxtQm5TNWZjO0VtUzZmZCxpQm5TN2ZjLEVtUzZmNEIsUUFBQTtBblJ5MHBCMUQ7QW1SdjBwQmdCO0VBQ0ksZ0JBQUEsRUFBQSxRQUFBO0FuUnkwcEJwQjs7QW1ScDBwQlk7RUFDSSxrQm5TdGdCYyxFbVNzZ0I2QixRQUFBO0VBQzNDLG1CblN2Z0JjO0VtU3dnQmQsaUJuU3hnQmMsRW1Td2dCNEIsUUFBQTtBblJ1MHBCMUQ7QW1ScjBwQmdCO0VBQ0ksY0FBQTtBblJ1MHBCcEI7QW1ScHpwQlk7RUFDSSxjQUFBLEVBQUEsU0FBQTtFQUNBLGlCblNoaUJjO0VtU2lpQmQsbUJuU2ppQmMsRW1TaWlCOEIsUUFBQTtFQUM1QyxvQm5TbGlCYztFbVNtaUJkLGtCblNuaUJjLEVtU21pQjZCLFFBQUE7RUFFM0MsY0FBQTtBblJxenBCaEI7QW1SN3lwQmdCO0V0UWxiSixtQkFBQTtFc1FzYlEsZ0I3US9qQlM7QU40MnFCN0I7QW1SM3lwQm9CO0VBQ0ksY0EvZGtDO0FuUjR3cUIxRDtBbVJ6d3BCZ0I7RUFDSSxjQUFBO0V0UTlkUixrQkFBQTtFc1FrZVEsZ0I3UTNtQlM7QU5vM3FCN0I7O0FtUnJ3cEJZOztFQUVJLG9EQUFBLEVBQUEsU0FBQTtFQUNBLDBEQUFBLEVBQUEsU0FBQTtFQUNBLHFCOVB0bkJHO0U4UHVuQm9HLFNBQUE7RUFDdkcseUJBQUE7RWpRN1RkOzs7O0lBQUE7QWxCMGtxQkY7QWtCcGtxQmtDLFFBQUE7QWlROFRsQjs7RWpRcFVkOzs7O0lBQUE7QWxCbWxxQkY7QWtCN2txQmtDLFFBQUE7QWlReVZsQjs7OztFQUNJLGNBamtCc0M7QW5SMnpxQjFEO0FtUmp2cEJvQjs7RUFDSSxjOVBycUJMO0FyQnk1cUJuQjtBbVJqdnBCb0I7O0VBQ0ksYzlQenFCTDtBckI2NXFCbkI7O0FtUjd1cEJRO0VBQ0ksYUFBQTtFQUNBLHNCQUFBO0VBQ0EsZ0JBQUEsRUFBQSxTQUFBO0FuUmd2cEJaOztBbVI3dXBCQSxxQkFBQTtBQU1JOzs7RUFDcUcsU0FBQTtBblI2dXBCekc7O0FvUnI3cUJBOzt3Q0FBQTtBQXVCQTs7Ozs7Ozs7Ozs7Ozs7RUFBQTtBQWVBO0VBeUNJLFFBQUE7QXBSNDNxQko7QW9SbjZxQkksOERBQzhELFFBQUE7RTVOYjlELGtDQUFBO0VBQ0EsdUNBQUE7RUFHSSx1RUFBQTtFQUlKLHlDQUFBO0VBQ0Esb0JBQUE7RUFHSSwrQ0FBQTtFQUNBLCtDQUFBO0VBQ0EsNkRBQUE7RUFDQSx5Q0FBQTtFNE5HQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxTcFNqQnNCO0VvU2tCdEIsV3BTbEJzQjtFb1NtQnRCLGNBQUE7RUFDQSxXalNMd0Q7RWlTTXhELFlqU053RDtBYSs2cUJoRTtBb1J0NnFCSTtFQUNJLGtCQUFBO0VBQ0EseUIvUHZDVztBckIrOHFCbkI7QW9ScjZxQkk7RTFOckNBLHFCQUFBO0VBQ0EsdUNBQUEsRUFBQSxRQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUVBLG9CQUFBO0VBQ0Esb0JBQUE7RUFDQSxrQ0FBQTtFQUNBLG1DQUFBO0UwTitCSSxnQkE5Q3VEO0VBK0N2RCxlQTlDdUQ7RUErQ3ZELGlCalNsQndELEVpU2tCVSxRQUFBO0VBQ2xFLGtCQUFBLEVBQUEsUUFBQTtFQUNBLGMvUGpDVztBckIrOHFCbkI7QW9SdjZxQlE7RUFDSSx5Qi9QL0RPO0FyQncrcUJuQjtBb1JuNnFCSTtFQUNJLHFCL1A1RFc7RStQa0VYLHlEQUFBO0FwUmc2cUJSO0FvUnA2cUJRO0VBQ0kseUIvUGpFTztBckJ1K3FCbkI7QW9SLzVxQlk7RUFDSSx5Qi9QakZHLEUrUGlGOEUsUUFBQTtBcFJpNnFCakc7O0FvUnY1cUJJO0VBRUksUUFBQTtBcFJ5NXFCUjtBb1J4NXFCUTtFQUNJLG1CQXpGbUQsRUF5RlksUUFBQTtFQUMvRCxrQkExRm1ELEVBMEZXLFFBQUE7QXBSMDVxQjFFOztBb1JyNXFCSTtFQUNvQixRQUFBLEVBQUEsaUVBQUE7RUFDaEIsY0FBQSxFQUFBLFFBQUE7QXBSdzVxQlI7O0FxUjFnckJBOzt3Q0FBQTtBQWdCQTtFQUNJLG1CclNlMEI7QWdCaS9xQjlCOztBcVI1L3FCSTtFeFFrSVEsa0JBQUE7RUFhQSxnQkFBQTtFd1ExSUosU0FBQTtFQUNBLG1CQUFBO0VBQ0EsVUF0QjJCO0VBdUIzQixnQi9RZHFCO0FOMmdyQjdCO0FnQjN4cUJRO0VxUTFPSjtJeFFrSVEsb0JBQUE7SUFhQSxnQkFBQTtFYjIzcUJWO0FBQ0Y7QWdCanlxQlE7RXFRMU9KO0l4UWtJUSxpQkFBQTtJQWFBLGdCQUFBO0ViaTRxQlY7QUFDRjs7QXFSdGdyQkk7RUFDSSxnQnJTSnNCO0FnQjZnckI5Qjs7QXFSdGdyQkk7RUFDSSxVQS9CMkI7QXJSd2lyQm5DOztBc1I5aXJCQTs7d0NBQUE7QUNBQTs7d0NBQUE7QUF3Q0E7Ozs7Ozs7Ozs7Ozs7OztDQUFBO0FBa0JBO0VBMEVJOztJQUFBO0VBR0EsNENBQUE7QXZSbzhxQko7QXVSL2dyQkksNENBQUEsUUFBQTtFMVEyRlEsa0JBQUE7RTBRdkZKLGdCdlNwQ3NCO0V1U3FDdEIsa0J2U25Dc0I7RXVTc0N0QixnQmpSckRxQjtBTmtrckI3QjtBZ0JsMXFCUTtFdVFuTUo7STFRMkZRLG9CQUFBO0ViODdxQlY7QUFDRjtBZ0J2MXFCUTtFdVFuTUo7STFRMkZRLGlCQUFBO0VibThxQlY7QUFDRjtBdVJoaHJCUTtFQUNJLGlCdlM5Q2tCO0V1UytDbEIsZ0J2Uy9Da0I7QWdCaWtyQjlCO0F1UjNnckJRO0VBRUksbURBQUE7QXZSNGdyQlo7QXVSM2dyQlk7RUFDSSxnQmpSekVhO0FOc2xyQjdCO0F1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VjtBQUNGO0FnQnBuMUJRO0V1VnROUjtJMVY0RmdDLGtFQUFBO0lBa0JwQiw0QkFBQTtFYml1MUJWO0FBQ0Y7O0F1V3QwMUJBO0UxVmtGZ0Msa0VBQUE7RUFrQnBCLDRCQUFBO0FidXUxQlo7QWdCL24xQlE7RXVWNU1SO0kxVmtGZ0Msa0VBQUE7SUFrQnBCLDRCQUFBO0ViNHUxQlY7QUFDRjtBZ0JybzFCUTtFdVY1TVI7STFWa0ZnQyxrRUFBQTtJQWtCcEIsNEJBQUE7RWJrdjFCVjtBQUNGOztBdVc3MDFCQTtFMVZ3RWdDLGtFQUFBO0VBa0JwQiwrQkFBQTtBYnd2MUJaO0FnQmhwMUJRO0V1VmxNUjtJMVZ3RWdDLGtFQUFBO0lBa0JwQiw4QkFBQTtFYjZ2MUJWO0FBQ0Y7QWdCdHAxQlE7RXVWbE1SO0kxVndFZ0Msa0VBQUE7SUFrQnBCLDZCQUFBO0VibXcxQlY7QUFDRjs7QXVXcDExQkE7RTFWOERnQyxrRUFBQTtFQWtCcEIsNkJBQUE7QWJ5dzFCWjtBZ0JqcTFCUTtFdVZ4TFI7STFWOERnQyxrRUFBQTtJQWtCcEIsMEJBQUE7RWI4dzFCVjtBQUNGO0FnQnZxMUJRO0V1VnhMUjtJMVY4RGdDLGtFQUFBO0lBa0JwQiw2QkFBQTtFYm94MUJWO0FBQ0Y7O0F1VzMxMUJBO0UxVm9EZ0Msa0VBQUE7RUFrQnBCLCtCQUFBO0FiMHgxQlo7QWdCbHIxQlE7RXVWOUtSO0kxVm9EZ0Msa0VBQUE7SUFrQnBCLCtCQUFBO0ViK3gxQlY7QUFDRjtBZ0J4cjFCUTtFdVY5S1I7STFWb0RnQyxrRUFBQTtJQWtCcEIsOEJBQUE7RWJxeTFCVjtBQUNGOztBdVdsMjFCQTtFMVYwQ2dDLGtFQUFBO0VBa0JwQiw2QkFBQTtBYjJ5MUJaO0FnQm5zMUJRO0V1VnBLUjtJMVYwQ2dDLGtFQUFBO0lBa0JwQiwrQkFBQTtFYmd6MUJWO0FBQ0Y7QWdCenMxQlE7RXVWcEtSO0kxVjBDZ0Msa0VBQUE7SUFrQnBCLDRCQUFBO0Vic3oxQlY7QUFDRjs7QXVXejIxQkE7RTFWZ0NnQyxrRUFBQTtFQWtCcEIsMEJBQUE7QWI0ejFCWjs7QXVXcDIxQkE7RTFWc0JnQyxrRUFBQTtFQWtCcEIsOEJBQUE7QWJpMDFCWjs7QXVXLzExQkE7RTFWWWdDLGtFQUFBO0VBa0JwQiw2QkFBQTtBYnMwMUJaOztBdVcxMTFCQTtFMVZFZ0Msa0VBQUE7RUFrQnBCLDZCQUFBO0FiMjAxQlo7O0F3V2wrMUJBOzt3Q0FBQTtBQUlBOztFQUFBO0FBSUE7RUFDSSx3QkFBQTtBeFdtKzFCSjs7QXdXOTkxQkE7O0VBQUE7QXhWaVBRO0V3VnJPQTtJQUNJLHdCQUFBO0V4V3k5MUJWO0FBQ0Y7QWdCdHYxQlE7RXdWN05BO0lBQ0ksd0JBQUE7RXhXczkxQlY7QUFDRjtBZ0IzdjFCUTtFd1ZyT0E7SUFDSSx3QkFBQTtFeFdtKzFCVjtBQUNGO0FnQmh3MUJRO0V3VjdOQTtJQUNJLHdCQUFBO0V4V2crMUJWO0FBQ0Y7QWdCcncxQlE7RXdWck9BO0lBQ0ksd0JBQUE7RXhXNisxQlY7QUFDRjtBZ0IxdzFCUTtFd1Y3TkE7SUFDSSx3QkFBQTtFeFcwKzFCVjtBQUNGO0FnQi93MUJRO0V3VnJPQTtJQUNJLHdCQUFBO0V4V3UvMUJWO0FBQ0Y7QWdCcHgxQlE7RXdWN05BO0lBQ0ksd0JBQUE7RXhXby8xQlY7QUFDRjtBZ0J6eDFCUTtFd1ZyT0E7SUFDSSx3QkFBQTtFeFdpZzJCVjtBQUNGO0FnQjl4MUJRO0V3VjdOQTtJQUNJLHdCQUFBO0V4VzgvMUJWO0FBQ0Y7QWdCbnkxQlE7RXdWck9BO0lBQ0ksd0JBQUE7RXhXMmcyQlY7QUFDRjtBZ0J4eTFCUTtFd1Y3TkE7SUFDSSx3QkFBQTtFeFd3ZzJCVjtBQUNGO0F5VzVpMkJBOzt3Q0FBQTtBQUtBOzs7RUFBQTtBQUtBO0VBQ0ksZ0NBQUE7QXpXMmkyQko7O0EwV3RqMkJBOzt3Q0FBQTtBQUlBOztFQUFBO0FBSUE7RUFDSSxrQkFBQTtBMVd1ajJCSjs7QTJXaGsyQkE7O3dDQUFBO0FDQUE7O3dDQUFBO0FBSUE7O0VBQUE7QUFTWTtFQUdRLHNCQUFBO0E1VzZqMkJwQjs7QWdCOTAxQlE7RTRWck9ZO0lBR1Esc0JBQUE7RTVXcWoyQjFCO0FBQ0Y7QWdCcDExQlE7RTRWck9ZO0lBR1Esc0JBQUE7RTVXMGoyQjFCO0FBQ0Y7QWdCejExQlE7RTRWck9ZO0lBR1Esc0JBQUE7RTVXK2oyQjFCO0FBQ0Y7QWdCOTExQlE7RTRWck9ZO0lBR1Esc0JBQUE7RTVXb2syQjFCO0FBQ0Y7QWdCbjIxQlE7RTRWck9ZO0lBR1Esc0JBQUE7RTVXeWsyQjFCO0FBQ0Y7QWdCeDIxQlE7RTRWck9ZO0lBR1Esc0JBQUE7RTVXOGsyQjFCO0FBQ0Y7QTRXL2wyQlk7RUFHUSxzQkFBQTtBNVcrbDJCcEI7O0FnQmgzMUJRO0U0VnJPWTtJQUdRLHNCQUFBO0U1V3VsMkIxQjtBQUNGO0FnQnQzMUJRO0U0VnJPWTtJQUdRLHNCQUFBO0U1VzRsMkIxQjtBQUNGO0FnQjMzMUJRO0U0VnJPWTtJQUdRLHNCQUFBO0U1V2ltMkIxQjtBQUNGO0FnQmg0MUJRO0U0VnJPWTtJQUdRLHNCQUFBO0U1V3NtMkIxQjtBQUNGO0FnQnI0MUJRO0U0VnJPWTtJQUdRLHNCQUFBO0U1VzJtMkIxQjtBQUNGO0FnQjE0MUJRO0U0VnJPWTtJQUdRLHNCQUFBO0U1V2duMkIxQjtBQUNGO0E0V2pvMkJZO0VBR1EsdUJBQUE7QTVXaW8yQnBCOztBZ0JsNTFCUTtFNFZyT1k7SUFHUSx1QkFBQTtFNVd5bjJCMUI7QUFDRjtBZ0J4NTFCUTtFNFZyT1k7SUFHUSx1QkFBQTtFNVc4bjJCMUI7QUFDRjtBZ0I3NTFCUTtFNFZyT1k7SUFHUSx1QkFBQTtFNVdtbzJCMUI7QUFDRjtBZ0JsNjFCUTtFNFZyT1k7SUFHUSx1QkFBQTtFNVd3bzJCMUI7QUFDRjtBZ0J2NjFCUTtFNFZyT1k7SUFHUSx1QkFBQTtFNVc2bzJCMUI7QUFDRjtBZ0I1NjFCUTtFNFZyT1k7SUFHUSx1QkFBQTtFNVdrcDJCMUI7QUFDRjtBNFducTJCWTtFQUdRLHVCQUFBO0E1V21xMkJwQjs7QWdCcDcxQlE7RTRWck9ZO0lBR1EsdUJBQUE7RTVXMnAyQjFCO0FBQ0Y7QWdCMTcxQlE7RTRWck9ZO0lBR1EsdUJBQUE7RTVXZ3EyQjFCO0FBQ0Y7QWdCLzcxQlE7RTRWck9ZO0lBR1EsdUJBQUE7RTVXcXEyQjFCO0FBQ0Y7QWdCcDgxQlE7RTRWck9ZO0lBR1EsdUJBQUE7RTVXMHEyQjFCO0FBQ0Y7QWdCejgxQlE7RTRWck9ZO0lBR1EsdUJBQUE7RTVXK3EyQjFCO0FBQ0Y7QWdCOTgxQlE7RTRWck9ZO0lBR1EsdUJBQUE7RTVXb3IyQjFCO0FBQ0Y7QTRXcnMyQlk7RUFHUSx1QkFBQTtBNVdxczJCcEI7O0FnQnQ5MUJRO0U0VnJPWTtJQUdRLHVCQUFBO0U1VzZyMkIxQjtBQUNGO0FnQjU5MUJRO0U0VnJPWTtJQUdRLHVCQUFBO0U1V2tzMkIxQjtBQUNGO0FnQmorMUJRO0U0VnJPWTtJQUdRLHVCQUFBO0U1V3VzMkIxQjtBQUNGO0FnQnQrMUJRO0U0VnJPWTtJQUdRLHVCQUFBO0U1VzRzMkIxQjtBQUNGO0FnQjMrMUJRO0U0VnJPWTtJQUdRLHVCQUFBO0U1V2l0MkIxQjtBQUNGO0FnQmgvMUJRO0U0VnJPWTtJQUdRLHVCQUFBO0U1V3N0MkIxQjtBQUNGO0E0V3Z1MkJZO0VBR1EsdUJBQUE7QTVXdXUyQnBCOztBZ0J4LzFCUTtFNFZyT1k7SUFHUSx1QkFBQTtFNVcrdDJCMUI7QUFDRjtBZ0I5LzFCUTtFNFZyT1k7SUFHUSx1QkFBQTtFNVdvdTJCMUI7QUFDRjtBZ0JuZzJCUTtFNFZyT1k7SUFHUSx1QkFBQTtFNVd5dTJCMUI7QUFDRjtBZ0J4ZzJCUTtFNFZyT1k7SUFHUSx1QkFBQTtFNVc4dTJCMUI7QUFDRjtBZ0I3ZzJCUTtFNFZyT1k7SUFHUSx1QkFBQTtFNVdtdjJCMUI7QUFDRjtBZ0JsaDJCUTtFNFZyT1k7SUFHUSx1QkFBQTtFNVd3djJCMUI7QUFDRjtBNFd6dzJCWTtFQUdRLG9CQUFBO0E1V3l3MkJwQjs7QWdCMWgyQlE7RTRWck9ZO0lBR1Esb0JBQUE7RTVXaXcyQjFCO0FBQ0Y7QWdCaGkyQlE7RTRWck9ZO0lBR1Esb0JBQUE7RTVXc3cyQjFCO0FBQ0Y7QWdCcmkyQlE7RTRWck9ZO0lBR1Esb0JBQUE7RTVXMncyQjFCO0FBQ0Y7QWdCMWkyQlE7RTRWck9ZO0lBR1Esb0JBQUE7RTVXZ3gyQjFCO0FBQ0Y7QWdCL2kyQlE7RTRWck9ZO0lBR1Esb0JBQUE7RTVXcXgyQjFCO0FBQ0Y7QWdCcGoyQlE7RTRWck9ZO0lBR1Esb0JBQUE7RTVXMHgyQjFCO0FBQ0Y7QTRXM3kyQlk7RUFHUSwwQkFBQTtBNVcyeTJCcEI7O0FnQjVqMkJRO0U0VnJPWTtJQUdRLDBCQUFBO0U1V215MkIxQjtBQUNGO0FnQmxrMkJRO0U0VnJPWTtJQUdRLDBCQUFBO0U1V3d5MkIxQjtBQUNGO0FnQnZrMkJRO0U0VnJPWTtJQUdRLDBCQUFBO0U1VzZ5MkIxQjtBQUNGO0FnQjVrMkJRO0U0VnJPWTtJQUdRLDBCQUFBO0U1V2t6MkIxQjtBQUNGO0FnQmpsMkJRO0U0VnJPWTtJQUdRLDBCQUFBO0U1V3V6MkIxQjtBQUNGO0FnQnRsMkJRO0U0VnJPWTtJQUdRLDBCQUFBO0U1VzR6MkIxQjtBQUNGO0E0VzcwMkJZO0VBR1EsMEJBQUE7QTVXNjAyQnBCOztBZ0I5bDJCUTtFNFZyT1k7SUFHUSwwQkFBQTtFNVdxMDJCMUI7QUFDRjtBZ0JwbTJCUTtFNFZyT1k7SUFHUSwwQkFBQTtFNVcwMDJCMUI7QUFDRjtBZ0J6bTJCUTtFNFZyT1k7SUFHUSwwQkFBQTtFNVcrMDJCMUI7QUFDRjtBZ0I5bTJCUTtFNFZyT1k7SUFHUSwwQkFBQTtFNVdvMTJCMUI7QUFDRjtBZ0JubjJCUTtFNFZyT1k7SUFHUSwwQkFBQTtFNVd5MTJCMUI7QUFDRjtBZ0J4bjJCUTtFNFZyT1k7SUFHUSwwQkFBQTtFNVc4MTJCMUI7QUFDRjtBNFcvMjJCWTtFQUdRLDJCQUFBO0E1VysyMkJwQjs7QWdCaG8yQlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXdTIyQjFCO0FBQ0Y7QWdCdG8yQlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXNDIyQjFCO0FBQ0Y7QWdCM28yQlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXaTMyQjFCO0FBQ0Y7QWdCaHAyQlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXczMyQjFCO0FBQ0Y7QWdCcnAyQlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXMjMyQjFCO0FBQ0Y7QWdCMXAyQlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXZzQyQjFCO0FBQ0Y7QTRXajUyQlk7RUFHUSwyQkFBQTtBNVdpNTJCcEI7O0FnQmxxMkJRO0U0VnJPWTtJQUdRLDJCQUFBO0U1V3k0MkIxQjtBQUNGO0FnQnhxMkJRO0U0VnJPWTtJQUdRLDJCQUFBO0U1Vzg0MkIxQjtBQUNGO0FnQjdxMkJRO0U0VnJPWTtJQUdRLDJCQUFBO0U1V201MkIxQjtBQUNGO0FnQmxyMkJRO0U0VnJPWTtJQUdRLDJCQUFBO0U1V3c1MkIxQjtBQUNGO0FnQnZyMkJRO0U0VnJPWTtJQUdRLDJCQUFBO0U1VzY1MkIxQjtBQUNGO0FnQjVyMkJRO0U0VnJPWTtJQUdRLDJCQUFBO0U1V2s2MkIxQjtBQUNGO0E0V243MkJZO0VBR1EsMkJBQUE7QTVXbTcyQnBCOztBZ0JwczJCUTtFNFZyT1k7SUFHUSwyQkFBQTtFNVcyNjJCMUI7QUFDRjtBZ0IxczJCUTtFNFZyT1k7SUFHUSwyQkFBQTtFNVdnNzJCMUI7QUFDRjtBZ0IvczJCUTtFNFZyT1k7SUFHUSwyQkFBQTtFNVdxNzJCMUI7QUFDRjtBZ0JwdDJCUTtFNFZyT1k7SUFHUSwyQkFBQTtFNVcwNzJCMUI7QUFDRjtBZ0J6dDJCUTtFNFZyT1k7SUFHUSwyQkFBQTtFNVcrNzJCMUI7QUFDRjtBZ0I5dDJCUTtFNFZyT1k7SUFHUSwyQkFBQTtFNVdvODJCMUI7QUFDRjtBNFdyOTJCWTtFQUdRLDJCQUFBO0E1V3E5MkJwQjs7QWdCdHUyQlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXNjgyQjFCO0FBQ0Y7QWdCNXUyQlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXazkyQjFCO0FBQ0Y7QWdCanYyQlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXdTkyQjFCO0FBQ0Y7QWdCdHYyQlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXNDkyQjFCO0FBQ0Y7QWdCM3YyQlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXaSsyQjFCO0FBQ0Y7QWdCaHcyQlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXcysyQjFCO0FBQ0Y7QTRXdi8yQlk7RUFHUSx3QkFBQTtBNVd1LzJCcEI7O0FnQnh3MkJRO0U0VnJPWTtJQUdRLHdCQUFBO0U1VysrMkIxQjtBQUNGO0FnQjl3MkJRO0U0VnJPWTtJQUdRLHdCQUFBO0U1V28vMkIxQjtBQUNGO0FnQm54MkJRO0U0VnJPWTtJQUdRLHdCQUFBO0U1V3kvMkIxQjtBQUNGO0FnQnh4MkJRO0U0VnJPWTtJQUdRLHdCQUFBO0U1VzgvMkIxQjtBQUNGO0FnQjd4MkJRO0U0VnJPWTtJQUdRLHdCQUFBO0U1V21nM0IxQjtBQUNGO0FnQmx5MkJRO0U0VnJPWTtJQUdRLHdCQUFBO0U1V3dnM0IxQjtBQUNGO0E0V3poM0JZO0VBR1EsNEJBQUE7QTVXeWgzQnBCOztBZ0IxeTJCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVdpaDNCMUI7QUFDRjtBZ0JoejJCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVdzaDNCMUI7QUFDRjtBZ0JyejJCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVcyaDNCMUI7QUFDRjtBZ0IxejJCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVdnaTNCMUI7QUFDRjtBZ0IvejJCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVdxaTNCMUI7QUFDRjtBZ0JwMDJCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVcwaTNCMUI7QUFDRjtBNFczajNCWTtFQUdRLDRCQUFBO0E1VzJqM0JwQjs7QWdCNTAyQlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXbWozQjFCO0FBQ0Y7QWdCbDEyQlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXd2ozQjFCO0FBQ0Y7QWdCdjEyQlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXNmozQjFCO0FBQ0Y7QWdCNTEyQlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXa2szQjFCO0FBQ0Y7QWdCajIyQlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXdWszQjFCO0FBQ0Y7QWdCdDIyQlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXNGszQjFCO0FBQ0Y7QTRXN2wzQlk7RUFHUSw2QkFBQTtBNVc2bDNCcEI7O0FnQjkyMkJRO0U0VnJPWTtJQUdRLDZCQUFBO0U1V3FsM0IxQjtBQUNGO0FnQnAzMkJRO0U0VnJPWTtJQUdRLDZCQUFBO0U1VzBsM0IxQjtBQUNGO0FnQnozMkJRO0U0VnJPWTtJQUdRLDZCQUFBO0U1VytsM0IxQjtBQUNGO0FnQjkzMkJRO0U0VnJPWTtJQUdRLDZCQUFBO0U1V29tM0IxQjtBQUNGO0FnQm40MkJRO0U0VnJPWTtJQUdRLDZCQUFBO0U1V3ltM0IxQjtBQUNGO0FnQng0MkJRO0U0VnJPWTtJQUdRLDZCQUFBO0U1VzhtM0IxQjtBQUNGO0E0Vy9uM0JZO0VBR1EsNkJBQUE7QTVXK24zQnBCOztBZ0JoNTJCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVd1bjNCMUI7QUFDRjtBZ0J0NTJCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVc0bjNCMUI7QUFDRjtBZ0IzNTJCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVdpbzNCMUI7QUFDRjtBZ0JoNjJCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVdzbzNCMUI7QUFDRjtBZ0JyNjJCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVcybzNCMUI7QUFDRjtBZ0IxNjJCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVdncDNCMUI7QUFDRjtBNFdqcTNCWTtFQUdRLDZCQUFBO0E1V2lxM0JwQjs7QWdCbDcyQlE7RTRWck9ZO0lBR1EsNkJBQUE7RTVXeXAzQjFCO0FBQ0Y7QWdCeDcyQlE7RTRWck9ZO0lBR1EsNkJBQUE7RTVXOHAzQjFCO0FBQ0Y7QWdCNzcyQlE7RTRWck9ZO0lBR1EsNkJBQUE7RTVXbXEzQjFCO0FBQ0Y7QWdCbDgyQlE7RTRWck9ZO0lBR1EsNkJBQUE7RTVXd3EzQjFCO0FBQ0Y7QWdCdjgyQlE7RTRWck9ZO0lBR1EsNkJBQUE7RTVXNnEzQjFCO0FBQ0Y7QWdCNTgyQlE7RTRWck9ZO0lBR1EsNkJBQUE7RTVXa3IzQjFCO0FBQ0Y7QTRXbnMzQlk7RUFHUSw2QkFBQTtBNVdtczNCcEI7O0FnQnA5MkJRO0U0VnJPWTtJQUdRLDZCQUFBO0U1VzJyM0IxQjtBQUNGO0FnQjE5MkJRO0U0VnJPWTtJQUdRLDZCQUFBO0U1V2dzM0IxQjtBQUNGO0FnQi85MkJRO0U0VnJPWTtJQUdRLDZCQUFBO0U1V3FzM0IxQjtBQUNGO0FnQnArMkJRO0U0VnJPWTtJQUdRLDZCQUFBO0U1VzBzM0IxQjtBQUNGO0FnQnorMkJRO0U0VnJPWTtJQUdRLDZCQUFBO0U1VytzM0IxQjtBQUNGO0FnQjkrMkJRO0U0VnJPWTtJQUdRLDZCQUFBO0U1V290M0IxQjtBQUNGO0E0V3J1M0JZO0VBR1EsMEJBQUE7QTVXcXUzQnBCOztBZ0J0LzJCUTtFNFZyT1k7SUFHUSwwQkFBQTtFNVc2dDNCMUI7QUFDRjtBZ0I1LzJCUTtFNFZyT1k7SUFHUSwwQkFBQTtFNVdrdTNCMUI7QUFDRjtBZ0JqZzNCUTtFNFZyT1k7SUFHUSwwQkFBQTtFNVd1dTNCMUI7QUFDRjtBZ0J0ZzNCUTtFNFZyT1k7SUFHUSwwQkFBQTtFNVc0dTNCMUI7QUFDRjtBZ0IzZzNCUTtFNFZyT1k7SUFHUSwwQkFBQTtFNVdpdjNCMUI7QUFDRjtBZ0JoaDNCUTtFNFZyT1k7SUFHUSwwQkFBQTtFNVdzdjNCMUI7QUFDRjtBNFd2dzNCWTtFQUdRLDZCQUFBO0E1V3V3M0JwQjs7QWdCeGgzQlE7RTRWck9ZO0lBR1EsNkJBQUE7RTVXK3YzQjFCO0FBQ0Y7QWdCOWgzQlE7RTRWck9ZO0lBR1EsNkJBQUE7RTVXb3czQjFCO0FBQ0Y7QWdCbmkzQlE7RTRWck9ZO0lBR1EsNkJBQUE7RTVXeXczQjFCO0FBQ0Y7QWdCeGkzQlE7RTRWck9ZO0lBR1EsNkJBQUE7RTVXOHczQjFCO0FBQ0Y7QWdCN2kzQlE7RTRWck9ZO0lBR1EsNkJBQUE7RTVXbXgzQjFCO0FBQ0Y7QWdCbGozQlE7RTRWck9ZO0lBR1EsNkJBQUE7RTVXd3gzQjFCO0FBQ0Y7QTRXenkzQlk7RUFHUSw2QkFBQTtBNVd5eTNCcEI7O0FnQjFqM0JRO0U0VnJPWTtJQUdRLDZCQUFBO0U1V2l5M0IxQjtBQUNGO0FnQmhrM0JRO0U0VnJPWTtJQUdRLDZCQUFBO0U1V3N5M0IxQjtBQUNGO0FnQnJrM0JRO0U0VnJPWTtJQUdRLDZCQUFBO0U1VzJ5M0IxQjtBQUNGO0FnQjFrM0JRO0U0VnJPWTtJQUdRLDZCQUFBO0U1V2d6M0IxQjtBQUNGO0FnQi9rM0JRO0U0VnJPWTtJQUdRLDZCQUFBO0U1V3F6M0IxQjtBQUNGO0FnQnBsM0JRO0U0VnJPWTtJQUdRLDZCQUFBO0U1VzB6M0IxQjtBQUNGO0E0VzMwM0JZO0VBR1EsOEJBQUE7QTVXMjAzQnBCOztBZ0I1bDNCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVdtMDNCMUI7QUFDRjtBZ0JsbTNCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVd3MDNCMUI7QUFDRjtBZ0J2bTNCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVc2MDNCMUI7QUFDRjtBZ0I1bTNCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVdrMTNCMUI7QUFDRjtBZ0JqbjNCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVd1MTNCMUI7QUFDRjtBZ0J0bjNCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVc0MTNCMUI7QUFDRjtBNFc3MjNCWTtFQUdRLDhCQUFBO0E1VzYyM0JwQjs7QWdCOW4zQlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXcTIzQjFCO0FBQ0Y7QWdCcG8zQlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXMDIzQjFCO0FBQ0Y7QWdCem8zQlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXKzIzQjFCO0FBQ0Y7QWdCOW8zQlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXbzMzQjFCO0FBQ0Y7QWdCbnAzQlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXeTMzQjFCO0FBQ0Y7QWdCeHAzQlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXODMzQjFCO0FBQ0Y7QTRXLzQzQlk7RUFHUSw4QkFBQTtBNVcrNDNCcEI7O0FnQmhxM0JRO0U0VnJPWTtJQUdRLDhCQUFBO0U1V3U0M0IxQjtBQUNGO0FnQnRxM0JRO0U0VnJPWTtJQUdRLDhCQUFBO0U1VzQ0M0IxQjtBQUNGO0FnQjNxM0JRO0U0VnJPWTtJQUdRLDhCQUFBO0U1V2k1M0IxQjtBQUNGO0FnQmhyM0JRO0U0VnJPWTtJQUdRLDhCQUFBO0U1V3M1M0IxQjtBQUNGO0FnQnJyM0JRO0U0VnJPWTtJQUdRLDhCQUFBO0U1VzI1M0IxQjtBQUNGO0FnQjFyM0JRO0U0VnJPWTtJQUdRLDhCQUFBO0U1V2c2M0IxQjtBQUNGO0E0V2o3M0JZO0VBR1EsOEJBQUE7QTVXaTczQnBCOztBZ0JsczNCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVd5NjNCMUI7QUFDRjtBZ0J4czNCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVc4NjNCMUI7QUFDRjtBZ0I3czNCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVdtNzNCMUI7QUFDRjtBZ0JsdDNCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVd3NzNCMUI7QUFDRjtBZ0J2dDNCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVc2NzNCMUI7QUFDRjtBZ0I1dDNCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVdrODNCMUI7QUFDRjtBNFduOTNCWTtFQUdRLDJCQUFBO0E1V205M0JwQjs7QWdCcHUzQlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXMjgzQjFCO0FBQ0Y7QWdCMXUzQlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXZzkzQjFCO0FBQ0Y7QWdCL3UzQlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXcTkzQjFCO0FBQ0Y7QWdCcHYzQlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXMDkzQjFCO0FBQ0Y7QWdCenYzQlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXKzkzQjFCO0FBQ0Y7QWdCOXYzQlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXbyszQjFCO0FBQ0Y7QTRXci8zQlk7RUFHUSwyQkFBQTtBNVdxLzNCcEI7O0FnQnR3M0JRO0U0VnJPWTtJQUdRLDJCQUFBO0U1VzYrM0IxQjtBQUNGO0FnQjV3M0JRO0U0VnJPWTtJQUdRLDJCQUFBO0U1V2svM0IxQjtBQUNGO0FnQmp4M0JRO0U0VnJPWTtJQUdRLDJCQUFBO0U1V3UvM0IxQjtBQUNGO0FnQnR4M0JRO0U0VnJPWTtJQUdRLDJCQUFBO0U1VzQvM0IxQjtBQUNGO0FnQjN4M0JRO0U0VnJPWTtJQUdRLDJCQUFBO0U1V2lnNEIxQjtBQUNGO0FnQmh5M0JRO0U0VnJPWTtJQUdRLDJCQUFBO0U1V3NnNEIxQjtBQUNGO0E0V3ZoNEJZO0VBR1EsMkJBQUE7QTVXdWg0QnBCOztBZ0J4eTNCUTtFNFZyT1k7SUFHUSwyQkFBQTtFNVcrZzRCMUI7QUFDRjtBZ0I5eTNCUTtFNFZyT1k7SUFHUSwyQkFBQTtFNVdvaDRCMUI7QUFDRjtBZ0JuejNCUTtFNFZyT1k7SUFHUSwyQkFBQTtFNVd5aDRCMUI7QUFDRjtBZ0J4ejNCUTtFNFZyT1k7SUFHUSwyQkFBQTtFNVc4aDRCMUI7QUFDRjtBZ0I3ejNCUTtFNFZyT1k7SUFHUSwyQkFBQTtFNVdtaTRCMUI7QUFDRjtBZ0JsMDNCUTtFNFZyT1k7SUFHUSwyQkFBQTtFNVd3aTRCMUI7QUFDRjtBNFd6ajRCWTtFQUdRLDRCQUFBO0E1V3lqNEJwQjs7QWdCMTAzQlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXaWo0QjFCO0FBQ0Y7QWdCaDEzQlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXc2o0QjFCO0FBQ0Y7QWdCcjEzQlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXMmo0QjFCO0FBQ0Y7QWdCMTEzQlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXZ2s0QjFCO0FBQ0Y7QWdCLzEzQlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXcWs0QjFCO0FBQ0Y7QWdCcDIzQlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXMGs0QjFCO0FBQ0Y7QTRXM2w0Qlk7RUFHUSw0QkFBQTtBNVcybDRCcEI7O0FnQjUyM0JRO0U0VnJPWTtJQUdRLDRCQUFBO0U1V21sNEIxQjtBQUNGO0FnQmwzM0JRO0U0VnJPWTtJQUdRLDRCQUFBO0U1V3dsNEIxQjtBQUNGO0FnQnYzM0JRO0U0VnJPWTtJQUdRLDRCQUFBO0U1VzZsNEIxQjtBQUNGO0FnQjUzM0JRO0U0VnJPWTtJQUdRLDRCQUFBO0U1V2ttNEIxQjtBQUNGO0FnQmo0M0JRO0U0VnJPWTtJQUdRLDRCQUFBO0U1V3VtNEIxQjtBQUNGO0FnQnQ0M0JRO0U0VnJPWTtJQUdRLDRCQUFBO0U1VzRtNEIxQjtBQUNGO0E0VzduNEJZO0VBR1EsNEJBQUE7QTVXNm40QnBCOztBZ0I5NDNCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVdxbjRCMUI7QUFDRjtBZ0JwNTNCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVcwbjRCMUI7QUFDRjtBZ0J6NTNCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVcrbjRCMUI7QUFDRjtBZ0I5NTNCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVdvbzRCMUI7QUFDRjtBZ0JuNjNCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVd5bzRCMUI7QUFDRjtBZ0J4NjNCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVc4bzRCMUI7QUFDRjtBNFcvcDRCWTtFQUdRLDRCQUFBO0E1VytwNEJwQjs7QWdCaDczQlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXdXA0QjFCO0FBQ0Y7QWdCdDczQlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXNHA0QjFCO0FBQ0Y7QWdCMzczQlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXaXE0QjFCO0FBQ0Y7QWdCaDgzQlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXc3E0QjFCO0FBQ0Y7QWdCcjgzQlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXMnE0QjFCO0FBQ0Y7QWdCMTgzQlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXZ3I0QjFCO0FBQ0Y7QTRXanM0Qlk7RUFHUSx5QkFBQTtBNVdpczRCcEI7O0FnQmw5M0JRO0U0VnJPWTtJQUdRLHlCQUFBO0U1V3lyNEIxQjtBQUNGO0FnQng5M0JRO0U0VnJPWTtJQUdRLHlCQUFBO0U1VzhyNEIxQjtBQUNGO0FnQjc5M0JRO0U0VnJPWTtJQUdRLHlCQUFBO0U1V21zNEIxQjtBQUNGO0FnQmwrM0JRO0U0VnJPWTtJQUdRLHlCQUFBO0U1V3dzNEIxQjtBQUNGO0FnQnYrM0JRO0U0VnJPWTtJQUdRLHlCQUFBO0U1VzZzNEIxQjtBQUNGO0FnQjUrM0JRO0U0VnJPWTtJQUdRLHlCQUFBO0U1V2t0NEIxQjtBQUNGO0E0V251NEJZO0VBR1EsMkJBQUE7RUFBQSw0QkFBQTtBNVdvdTRCcEI7O0FnQnIvM0JRO0U0VnJPWTtJQUdRLDJCQUFBO0lBQUEsNEJBQUE7RTVXNnQ0QjFCO0FBQ0Y7QWdCNS8zQlE7RTRWck9ZO0lBR1EsMkJBQUE7SUFBQSw0QkFBQTtFNVdtdTRCMUI7QUFDRjtBZ0JsZzRCUTtFNFZyT1k7SUFHUSwyQkFBQTtJQUFBLDRCQUFBO0U1V3l1NEIxQjtBQUNGO0FnQnhnNEJRO0U0VnJPWTtJQUdRLDJCQUFBO0lBQUEsNEJBQUE7RTVXK3U0QjFCO0FBQ0Y7QWdCOWc0QlE7RTRWck9ZO0lBR1EsMkJBQUE7SUFBQSw0QkFBQTtFNVdxdjRCMUI7QUFDRjtBZ0JwaDRCUTtFNFZyT1k7SUFHUSwyQkFBQTtJQUFBLDRCQUFBO0U1VzJ2NEIxQjtBQUNGO0E0VzV3NEJZO0VBR1EsMkJBQUE7RUFBQSw0QkFBQTtBNVc2dzRCcEI7O0FnQjloNEJRO0U0VnJPWTtJQUdRLDJCQUFBO0lBQUEsNEJBQUE7RTVXc3c0QjFCO0FBQ0Y7QWdCcmk0QlE7RTRWck9ZO0lBR1EsMkJBQUE7SUFBQSw0QkFBQTtFNVc0dzRCMUI7QUFDRjtBZ0IzaTRCUTtFNFZyT1k7SUFHUSwyQkFBQTtJQUFBLDRCQUFBO0U1V2t4NEIxQjtBQUNGO0FnQmpqNEJRO0U0VnJPWTtJQUdRLDJCQUFBO0lBQUEsNEJBQUE7RTVXd3g0QjFCO0FBQ0Y7QWdCdmo0QlE7RTRWck9ZO0lBR1EsMkJBQUE7SUFBQSw0QkFBQTtFNVc4eDRCMUI7QUFDRjtBZ0I3ajRCUTtFNFZyT1k7SUFHUSwyQkFBQTtJQUFBLDRCQUFBO0U1V295NEIxQjtBQUNGO0E0V3J6NEJZO0VBR1EsNEJBQUE7RUFBQSw2QkFBQTtBNVdzejRCcEI7O0FnQnZrNEJRO0U0VnJPWTtJQUdRLDRCQUFBO0lBQUEsNkJBQUE7RTVXK3k0QjFCO0FBQ0Y7QWdCOWs0QlE7RTRWck9ZO0lBR1EsNEJBQUE7SUFBQSw2QkFBQTtFNVdxejRCMUI7QUFDRjtBZ0JwbDRCUTtFNFZyT1k7SUFHUSw0QkFBQTtJQUFBLDZCQUFBO0U1VzJ6NEIxQjtBQUNGO0FnQjFsNEJRO0U0VnJPWTtJQUdRLDRCQUFBO0lBQUEsNkJBQUE7RTVXaTA0QjFCO0FBQ0Y7QWdCaG00QlE7RTRWck9ZO0lBR1EsNEJBQUE7SUFBQSw2QkFBQTtFNVd1MDRCMUI7QUFDRjtBZ0J0bTRCUTtFNFZyT1k7SUFHUSw0QkFBQTtJQUFBLDZCQUFBO0U1VzYwNEIxQjtBQUNGO0E0VzkxNEJZO0VBR1EsNEJBQUE7RUFBQSw2QkFBQTtBNVcrMTRCcEI7O0FnQmhuNEJRO0U0VnJPWTtJQUdRLDRCQUFBO0lBQUEsNkJBQUE7RTVXdzE0QjFCO0FBQ0Y7QWdCdm40QlE7RTRWck9ZO0lBR1EsNEJBQUE7SUFBQSw2QkFBQTtFNVc4MTRCMUI7QUFDRjtBZ0I3bjRCUTtFNFZyT1k7SUFHUSw0QkFBQTtJQUFBLDZCQUFBO0U1V28yNEIxQjtBQUNGO0FnQm5vNEJRO0U0VnJPWTtJQUdRLDRCQUFBO0lBQUEsNkJBQUE7RTVXMDI0QjFCO0FBQ0Y7QWdCem80QlE7RTRWck9ZO0lBR1EsNEJBQUE7SUFBQSw2QkFBQTtFNVdnMzRCMUI7QUFDRjtBZ0IvbzRCUTtFNFZyT1k7SUFHUSw0QkFBQTtJQUFBLDZCQUFBO0U1V3MzNEIxQjtBQUNGO0E0V3Y0NEJZO0VBR1EsNEJBQUE7RUFBQSw2QkFBQTtBNVd3NDRCcEI7O0FnQnpwNEJRO0U0VnJPWTtJQUdRLDRCQUFBO0lBQUEsNkJBQUE7RTVXaTQ0QjFCO0FBQ0Y7QWdCaHE0QlE7RTRWck9ZO0lBR1EsNEJBQUE7SUFBQSw2QkFBQTtFNVd1NDRCMUI7QUFDRjtBZ0J0cTRCUTtFNFZyT1k7SUFHUSw0QkFBQTtJQUFBLDZCQUFBO0U1VzY0NEIxQjtBQUNGO0FnQjVxNEJRO0U0VnJPWTtJQUdRLDRCQUFBO0lBQUEsNkJBQUE7RTVXbTU0QjFCO0FBQ0Y7QWdCbHI0QlE7RTRWck9ZO0lBR1EsNEJBQUE7SUFBQSw2QkFBQTtFNVd5NTRCMUI7QUFDRjtBZ0J4cjRCUTtFNFZyT1k7SUFHUSw0QkFBQTtJQUFBLDZCQUFBO0U1Vys1NEIxQjtBQUNGO0E0V2g3NEJZO0VBR1EsNEJBQUE7RUFBQSw2QkFBQTtBNVdpNzRCcEI7O0FnQmxzNEJRO0U0VnJPWTtJQUdRLDRCQUFBO0lBQUEsNkJBQUE7RTVXMDY0QjFCO0FBQ0Y7QWdCenM0QlE7RTRWck9ZO0lBR1EsNEJBQUE7SUFBQSw2QkFBQTtFNVdnNzRCMUI7QUFDRjtBZ0IvczRCUTtFNFZyT1k7SUFHUSw0QkFBQTtJQUFBLDZCQUFBO0U1V3M3NEIxQjtBQUNGO0FnQnJ0NEJRO0U0VnJPWTtJQUdRLDRCQUFBO0lBQUEsNkJBQUE7RTVXNDc0QjFCO0FBQ0Y7QWdCM3Q0QlE7RTRWck9ZO0lBR1EsNEJBQUE7SUFBQSw2QkFBQTtFNVdrODRCMUI7QUFDRjtBZ0JqdTRCUTtFNFZyT1k7SUFHUSw0QkFBQTtJQUFBLDZCQUFBO0U1V3c4NEIxQjtBQUNGO0E0V3o5NEJZO0VBR1EseUJBQUE7RUFBQSwwQkFBQTtBNVcwOTRCcEI7O0FnQjN1NEJRO0U0VnJPWTtJQUdRLHlCQUFBO0lBQUEsMEJBQUE7RTVXbTk0QjFCO0FBQ0Y7QWdCbHY0QlE7RTRWck9ZO0lBR1EseUJBQUE7SUFBQSwwQkFBQTtFNVd5OTRCMUI7QUFDRjtBZ0J4djRCUTtFNFZyT1k7SUFHUSx5QkFBQTtJQUFBLDBCQUFBO0U1Vys5NEIxQjtBQUNGO0FnQjl2NEJRO0U0VnJPWTtJQUdRLHlCQUFBO0lBQUEsMEJBQUE7RTVXcSs0QjFCO0FBQ0Y7QWdCcHc0QlE7RTRWck9ZO0lBR1EseUJBQUE7SUFBQSwwQkFBQTtFNVcyKzRCMUI7QUFDRjtBZ0IxdzRCUTtFNFZyT1k7SUFHUSx5QkFBQTtJQUFBLDBCQUFBO0U1V2kvNEIxQjtBQUNGO0E0V2xnNUJZO0VBR1EsMEJBQUE7RUFBQSw2QkFBQTtBNVdtZzVCcEI7O0FnQnB4NEJRO0U0VnJPWTtJQUdRLDBCQUFBO0lBQUEsNkJBQUE7RTVXNC80QjFCO0FBQ0Y7QWdCM3g0QlE7RTRWck9ZO0lBR1EsMEJBQUE7SUFBQSw2QkFBQTtFNVdrZzVCMUI7QUFDRjtBZ0JqeTRCUTtFNFZyT1k7SUFHUSwwQkFBQTtJQUFBLDZCQUFBO0U1V3dnNUIxQjtBQUNGO0FnQnZ5NEJRO0U0VnJPWTtJQUdRLDBCQUFBO0lBQUEsNkJBQUE7RTVXOGc1QjFCO0FBQ0Y7QWdCN3k0QlE7RTRWck9ZO0lBR1EsMEJBQUE7SUFBQSw2QkFBQTtFNVdvaDVCMUI7QUFDRjtBZ0JuejRCUTtFNFZyT1k7SUFHUSwwQkFBQTtJQUFBLDZCQUFBO0U1VzBoNUIxQjtBQUNGO0E0VzNpNUJZO0VBR1EsMEJBQUE7RUFBQSw2QkFBQTtBNVc0aTVCcEI7O0FnQjd6NEJRO0U0VnJPWTtJQUdRLDBCQUFBO0lBQUEsNkJBQUE7RTVXcWk1QjFCO0FBQ0Y7QWdCcDA0QlE7RTRWck9ZO0lBR1EsMEJBQUE7SUFBQSw2QkFBQTtFNVcyaTVCMUI7QUFDRjtBZ0IxMDRCUTtFNFZyT1k7SUFHUSwwQkFBQTtJQUFBLDZCQUFBO0U1V2lqNUIxQjtBQUNGO0FnQmgxNEJRO0U0VnJPWTtJQUdRLDBCQUFBO0lBQUEsNkJBQUE7RTVXdWo1QjFCO0FBQ0Y7QWdCdDE0QlE7RTRWck9ZO0lBR1EsMEJBQUE7SUFBQSw2QkFBQTtFNVc2ajVCMUI7QUFDRjtBZ0I1MTRCUTtFNFZyT1k7SUFHUSwwQkFBQTtJQUFBLDZCQUFBO0U1V21rNUIxQjtBQUNGO0E0V3BsNUJZO0VBR1EsMkJBQUE7RUFBQSw4QkFBQTtBNVdxbDVCcEI7O0FnQnQyNEJRO0U0VnJPWTtJQUdRLDJCQUFBO0lBQUEsOEJBQUE7RTVXOGs1QjFCO0FBQ0Y7QWdCNzI0QlE7RTRWck9ZO0lBR1EsMkJBQUE7SUFBQSw4QkFBQTtFNVdvbDVCMUI7QUFDRjtBZ0JuMzRCUTtFNFZyT1k7SUFHUSwyQkFBQTtJQUFBLDhCQUFBO0U1VzBsNUIxQjtBQUNGO0FnQnozNEJRO0U0VnJPWTtJQUdRLDJCQUFBO0lBQUEsOEJBQUE7RTVXZ201QjFCO0FBQ0Y7QWdCLzM0QlE7RTRWck9ZO0lBR1EsMkJBQUE7SUFBQSw4QkFBQTtFNVdzbTVCMUI7QUFDRjtBZ0JyNDRCUTtFNFZyT1k7SUFHUSwyQkFBQTtJQUFBLDhCQUFBO0U1VzRtNUIxQjtBQUNGO0E0VzduNUJZO0VBR1EsMkJBQUE7RUFBQSw4QkFBQTtBNVc4bjVCcEI7O0FnQi80NEJRO0U0VnJPWTtJQUdRLDJCQUFBO0lBQUEsOEJBQUE7RTVXdW41QjFCO0FBQ0Y7QWdCdDU0QlE7RTRWck9ZO0lBR1EsMkJBQUE7SUFBQSw4QkFBQTtFNVc2bjVCMUI7QUFDRjtBZ0I1NTRCUTtFNFZyT1k7SUFHUSwyQkFBQTtJQUFBLDhCQUFBO0U1V21vNUIxQjtBQUNGO0FnQmw2NEJRO0U0VnJPWTtJQUdRLDJCQUFBO0lBQUEsOEJBQUE7RTVXeW81QjFCO0FBQ0Y7QWdCeDY0QlE7RTRWck9ZO0lBR1EsMkJBQUE7SUFBQSw4QkFBQTtFNVcrbzVCMUI7QUFDRjtBZ0I5NjRCUTtFNFZyT1k7SUFHUSwyQkFBQTtJQUFBLDhCQUFBO0U1V3FwNUIxQjtBQUNGO0E0V3RxNUJZO0VBR1EsMkJBQUE7RUFBQSw4QkFBQTtBNVd1cTVCcEI7O0FnQng3NEJRO0U0VnJPWTtJQUdRLDJCQUFBO0lBQUEsOEJBQUE7RTVXZ3E1QjFCO0FBQ0Y7QWdCLzc0QlE7RTRWck9ZO0lBR1EsMkJBQUE7SUFBQSw4QkFBQTtFNVdzcTVCMUI7QUFDRjtBZ0JyODRCUTtFNFZyT1k7SUFHUSwyQkFBQTtJQUFBLDhCQUFBO0U1VzRxNUIxQjtBQUNGO0FnQjM4NEJRO0U0VnJPWTtJQUdRLDJCQUFBO0lBQUEsOEJBQUE7RTVXa3I1QjFCO0FBQ0Y7QWdCajk0QlE7RTRWck9ZO0lBR1EsMkJBQUE7SUFBQSw4QkFBQTtFNVd3cjVCMUI7QUFDRjtBZ0J2OTRCUTtFNFZyT1k7SUFHUSwyQkFBQTtJQUFBLDhCQUFBO0U1VzhyNUIxQjtBQUNGO0E0Vy9zNUJZO0VBR1EsMkJBQUE7RUFBQSw4QkFBQTtBNVdndDVCcEI7O0FnQmorNEJRO0U0VnJPWTtJQUdRLDJCQUFBO0lBQUEsOEJBQUE7RTVXeXM1QjFCO0FBQ0Y7QWdCeCs0QlE7RTRWck9ZO0lBR1EsMkJBQUE7SUFBQSw4QkFBQTtFNVcrczVCMUI7QUFDRjtBZ0I5KzRCUTtFNFZyT1k7SUFHUSwyQkFBQTtJQUFBLDhCQUFBO0U1V3F0NUIxQjtBQUNGO0FnQnAvNEJRO0U0VnJPWTtJQUdRLDJCQUFBO0lBQUEsOEJBQUE7RTVXMnQ1QjFCO0FBQ0Y7QWdCMS80QlE7RTRWck9ZO0lBR1EsMkJBQUE7SUFBQSw4QkFBQTtFNVdpdTVCMUI7QUFDRjtBZ0JoZzVCUTtFNFZyT1k7SUFHUSwyQkFBQTtJQUFBLDhCQUFBO0U1V3V1NUIxQjtBQUNGO0E0V3h2NUJZO0VBR1Esd0JBQUE7RUFBQSwyQkFBQTtBNVd5djVCcEI7O0FnQjFnNUJRO0U0VnJPWTtJQUdRLHdCQUFBO0lBQUEsMkJBQUE7RTVXa3Y1QjFCO0FBQ0Y7QWdCamg1QlE7RTRWck9ZO0lBR1Esd0JBQUE7SUFBQSwyQkFBQTtFNVd3djVCMUI7QUFDRjtBZ0J2aDVCUTtFNFZyT1k7SUFHUSx3QkFBQTtJQUFBLDJCQUFBO0U1Vzh2NUIxQjtBQUNGO0FnQjdoNUJRO0U0VnJPWTtJQUdRLHdCQUFBO0lBQUEsMkJBQUE7RTVXb3c1QjFCO0FBQ0Y7QWdCbmk1QlE7RTRWck9ZO0lBR1Esd0JBQUE7SUFBQSwyQkFBQTtFNVcwdzVCMUI7QUFDRjtBZ0J6aTVCUTtFNFZyT1k7SUFHUSx3QkFBQTtJQUFBLDJCQUFBO0U1V2d4NUIxQjtBQUNGO0E0V2p5NUJZO0VBR1EsdUJBQUE7QTVXaXk1QnBCOztBZ0JsajVCUTtFNFZyT1k7SUFHUSx1QkFBQTtFNVd5eDVCMUI7QUFDRjtBZ0J4ajVCUTtFNFZyT1k7SUFHUSx1QkFBQTtFNVc4eDVCMUI7QUFDRjtBZ0I3ajVCUTtFNFZyT1k7SUFHUSx1QkFBQTtFNVdteTVCMUI7QUFDRjtBZ0JsazVCUTtFNFZyT1k7SUFHUSx1QkFBQTtFNVd3eTVCMUI7QUFDRjtBZ0J2azVCUTtFNFZyT1k7SUFHUSx1QkFBQTtFNVc2eTVCMUI7QUFDRjtBZ0I1azVCUTtFNFZyT1k7SUFHUSx1QkFBQTtFNVdrejVCMUI7QUFDRjtBNFduMDVCWTtFQUdRLHVCQUFBO0E1V20wNUJwQjs7QWdCcGw1QlE7RTRWck9ZO0lBR1EsdUJBQUE7RTVXMno1QjFCO0FBQ0Y7QWdCMWw1QlE7RTRWck9ZO0lBR1EsdUJBQUE7RTVXZzA1QjFCO0FBQ0Y7QWdCL2w1QlE7RTRWck9ZO0lBR1EsdUJBQUE7RTVXcTA1QjFCO0FBQ0Y7QWdCcG01QlE7RTRWck9ZO0lBR1EsdUJBQUE7RTVXMDA1QjFCO0FBQ0Y7QWdCem01QlE7RTRWck9ZO0lBR1EsdUJBQUE7RTVXKzA1QjFCO0FBQ0Y7QWdCOW01QlE7RTRWck9ZO0lBR1EsdUJBQUE7RTVXbzE1QjFCO0FBQ0Y7QTRXcjI1Qlk7RUFHUSx3QkFBQTtBNVdxMjVCcEI7O0FnQnRuNUJRO0U0VnJPWTtJQUdRLHdCQUFBO0U1VzYxNUIxQjtBQUNGO0FnQjVuNUJRO0U0VnJPWTtJQUdRLHdCQUFBO0U1V2syNUIxQjtBQUNGO0FnQmpvNUJRO0U0VnJPWTtJQUdRLHdCQUFBO0U1V3UyNUIxQjtBQUNGO0FnQnRvNUJRO0U0VnJPWTtJQUdRLHdCQUFBO0U1VzQyNUIxQjtBQUNGO0FnQjNvNUJRO0U0VnJPWTtJQUdRLHdCQUFBO0U1V2kzNUIxQjtBQUNGO0FnQmhwNUJRO0U0VnJPWTtJQUdRLHdCQUFBO0U1V3MzNUIxQjtBQUNGO0E0V3Y0NUJZO0VBR1Esd0JBQUE7QTVXdTQ1QnBCOztBZ0J4cDVCUTtFNFZyT1k7SUFHUSx3QkFBQTtFNVcrMzVCMUI7QUFDRjtBZ0I5cDVCUTtFNFZyT1k7SUFHUSx3QkFBQTtFNVdvNDVCMUI7QUFDRjtBZ0JucTVCUTtFNFZyT1k7SUFHUSx3QkFBQTtFNVd5NDVCMUI7QUFDRjtBZ0J4cTVCUTtFNFZyT1k7SUFHUSx3QkFBQTtFNVc4NDVCMUI7QUFDRjtBZ0I3cTVCUTtFNFZyT1k7SUFHUSx3QkFBQTtFNVdtNTVCMUI7QUFDRjtBZ0JscjVCUTtFNFZyT1k7SUFHUSx3QkFBQTtFNVd3NTVCMUI7QUFDRjtBNFd6NjVCWTtFQUdRLHdCQUFBO0E1V3k2NUJwQjs7QWdCMXI1QlE7RTRWck9ZO0lBR1Esd0JBQUE7RTVXaTY1QjFCO0FBQ0Y7QWdCaHM1QlE7RTRWck9ZO0lBR1Esd0JBQUE7RTVXczY1QjFCO0FBQ0Y7QWdCcnM1QlE7RTRWck9ZO0lBR1Esd0JBQUE7RTVXMjY1QjFCO0FBQ0Y7QWdCMXM1QlE7RTRWck9ZO0lBR1Esd0JBQUE7RTVXZzc1QjFCO0FBQ0Y7QWdCL3M1QlE7RTRWck9ZO0lBR1Esd0JBQUE7RTVXcTc1QjFCO0FBQ0Y7QWdCcHQ1QlE7RTRWck9ZO0lBR1Esd0JBQUE7RTVXMDc1QjFCO0FBQ0Y7QTRXMzg1Qlk7RUFHUSx3QkFBQTtBNVcyODVCcEI7O0FnQjV0NUJRO0U0VnJPWTtJQUdRLHdCQUFBO0U1V204NUIxQjtBQUNGO0FnQmx1NUJRO0U0VnJPWTtJQUdRLHdCQUFBO0U1V3c4NUIxQjtBQUNGO0FnQnZ1NUJRO0U0VnJPWTtJQUdRLHdCQUFBO0U1VzY4NUIxQjtBQUNGO0FnQjV1NUJRO0U0VnJPWTtJQUdRLHdCQUFBO0U1V2s5NUIxQjtBQUNGO0FnQmp2NUJRO0U0VnJPWTtJQUdRLHdCQUFBO0U1V3U5NUIxQjtBQUNGO0FnQnR2NUJRO0U0VnJPWTtJQUdRLHdCQUFBO0U1VzQ5NUIxQjtBQUNGO0E0VzcrNUJZO0VBR1EscUJBQUE7QTVXNis1QnBCOztBZ0I5djVCUTtFNFZyT1k7SUFHUSxxQkFBQTtFNVdxKzVCMUI7QUFDRjtBZ0JwdzVCUTtFNFZyT1k7SUFHUSxxQkFBQTtFNVcwKzVCMUI7QUFDRjtBZ0J6dzVCUTtFNFZyT1k7SUFHUSxxQkFBQTtFNVcrKzVCMUI7QUFDRjtBZ0I5dzVCUTtFNFZyT1k7SUFHUSxxQkFBQTtFNVdvLzVCMUI7QUFDRjtBZ0JueDVCUTtFNFZyT1k7SUFHUSxxQkFBQTtFNVd5LzVCMUI7QUFDRjtBZ0J4eDVCUTtFNFZyT1k7SUFHUSxxQkFBQTtFNVc4LzVCMUI7QUFDRjtBNFcvZzZCWTtFQUdRLDJCQUFBO0E1VytnNkJwQjs7QWdCaHk1QlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXdWc2QjFCO0FBQ0Y7QWdCdHk1QlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXNGc2QjFCO0FBQ0Y7QWdCM3k1QlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXaWg2QjFCO0FBQ0Y7QWdCaHo1QlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXc2g2QjFCO0FBQ0Y7QWdCcno1QlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXMmg2QjFCO0FBQ0Y7QWdCMXo1QlE7RTRWck9ZO0lBR1EsMkJBQUE7RTVXZ2k2QjFCO0FBQ0Y7QTRXamo2Qlk7RUFHUSwyQkFBQTtBNVdpajZCcEI7O0FnQmwwNUJRO0U0VnJPWTtJQUdRLDJCQUFBO0U1V3lpNkIxQjtBQUNGO0FnQngwNUJRO0U0VnJPWTtJQUdRLDJCQUFBO0U1VzhpNkIxQjtBQUNGO0FnQjcwNUJRO0U0VnJPWTtJQUdRLDJCQUFBO0U1V21qNkIxQjtBQUNGO0FnQmwxNUJRO0U0VnJPWTtJQUdRLDJCQUFBO0U1V3dqNkIxQjtBQUNGO0FnQnYxNUJRO0U0VnJPWTtJQUdRLDJCQUFBO0U1VzZqNkIxQjtBQUNGO0FnQjUxNUJRO0U0VnJPWTtJQUdRLDJCQUFBO0U1V2trNkIxQjtBQUNGO0E0V25sNkJZO0VBR1EsNEJBQUE7QTVXbWw2QnBCOztBZ0JwMjVCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVcyazZCMUI7QUFDRjtBZ0IxMjVCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVdnbDZCMUI7QUFDRjtBZ0IvMjVCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVdxbDZCMUI7QUFDRjtBZ0JwMzVCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVcwbDZCMUI7QUFDRjtBZ0J6MzVCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVcrbDZCMUI7QUFDRjtBZ0I5MzVCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVdvbTZCMUI7QUFDRjtBNFdybjZCWTtFQUdRLDRCQUFBO0E1V3FuNkJwQjs7QWdCdDQ1QlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXNm02QjFCO0FBQ0Y7QWdCNTQ1QlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXa242QjFCO0FBQ0Y7QWdCajU1QlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXdW42QjFCO0FBQ0Y7QWdCdDU1QlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXNG42QjFCO0FBQ0Y7QWdCMzU1QlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXaW82QjFCO0FBQ0Y7QWdCaDY1QlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXc282QjFCO0FBQ0Y7QTRXdnA2Qlk7RUFHUSw0QkFBQTtBNVd1cDZCcEI7O0FnQng2NUJRO0U0VnJPWTtJQUdRLDRCQUFBO0U1VytvNkIxQjtBQUNGO0FnQjk2NUJRO0U0VnJPWTtJQUdRLDRCQUFBO0U1V29wNkIxQjtBQUNGO0FnQm43NUJRO0U0VnJPWTtJQUdRLDRCQUFBO0U1V3lwNkIxQjtBQUNGO0FnQng3NUJRO0U0VnJPWTtJQUdRLDRCQUFBO0U1VzhwNkIxQjtBQUNGO0FnQjc3NUJRO0U0VnJPWTtJQUdRLDRCQUFBO0U1V21xNkIxQjtBQUNGO0FnQmw4NUJRO0U0VnJPWTtJQUdRLDRCQUFBO0U1V3dxNkIxQjtBQUNGO0E0V3pyNkJZO0VBR1EsNEJBQUE7QTVXeXI2QnBCOztBZ0IxODVCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVdpcjZCMUI7QUFDRjtBZ0JoOTVCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVdzcjZCMUI7QUFDRjtBZ0JyOTVCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVcycjZCMUI7QUFDRjtBZ0IxOTVCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVdnczZCMUI7QUFDRjtBZ0IvOTVCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVdxczZCMUI7QUFDRjtBZ0JwKzVCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVcwczZCMUI7QUFDRjtBNFczdDZCWTtFQUdRLHlCQUFBO0E1VzJ0NkJwQjs7QWdCNSs1QlE7RTRWck9ZO0lBR1EseUJBQUE7RTVXbXQ2QjFCO0FBQ0Y7QWdCbC81QlE7RTRWck9ZO0lBR1EseUJBQUE7RTVXd3Q2QjFCO0FBQ0Y7QWdCdi81QlE7RTRWck9ZO0lBR1EseUJBQUE7RTVXNnQ2QjFCO0FBQ0Y7QWdCNS81QlE7RTRWck9ZO0lBR1EseUJBQUE7RTVXa3U2QjFCO0FBQ0Y7QWdCamc2QlE7RTRWck9ZO0lBR1EseUJBQUE7RTVXdXU2QjFCO0FBQ0Y7QWdCdGc2QlE7RTRWck9ZO0lBR1EseUJBQUE7RTVXNHU2QjFCO0FBQ0Y7QTRXN3Y2Qlk7RUFHUSw2QkFBQTtBNVc2djZCcEI7O0FnQjlnNkJRO0U0VnJPWTtJQUdRLDZCQUFBO0U1V3F2NkIxQjtBQUNGO0FnQnBoNkJRO0U0VnJPWTtJQUdRLDZCQUFBO0U1VzB2NkIxQjtBQUNGO0FnQnpoNkJRO0U0VnJPWTtJQUdRLDZCQUFBO0U1Vyt2NkIxQjtBQUNGO0FnQjloNkJRO0U0VnJPWTtJQUdRLDZCQUFBO0U1V293NkIxQjtBQUNGO0FnQm5pNkJRO0U0VnJPWTtJQUdRLDZCQUFBO0U1V3l3NkIxQjtBQUNGO0FnQnhpNkJRO0U0VnJPWTtJQUdRLDZCQUFBO0U1Vzh3NkIxQjtBQUNGO0E0Vy94NkJZO0VBR1EsNkJBQUE7QTVXK3g2QnBCOztBZ0JoajZCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVd1eDZCMUI7QUFDRjtBZ0J0ajZCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVc0eDZCMUI7QUFDRjtBZ0IzajZCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVdpeTZCMUI7QUFDRjtBZ0JoazZCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVdzeTZCMUI7QUFDRjtBZ0JyazZCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVcyeTZCMUI7QUFDRjtBZ0IxazZCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVdnejZCMUI7QUFDRjtBNFdqMDZCWTtFQUdRLDhCQUFBO0E1V2kwNkJwQjs7QWdCbGw2QlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXeXo2QjFCO0FBQ0Y7QWdCeGw2QlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXOHo2QjFCO0FBQ0Y7QWdCN2w2QlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXbTA2QjFCO0FBQ0Y7QWdCbG02QlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXdzA2QjFCO0FBQ0Y7QWdCdm02QlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXNjA2QjFCO0FBQ0Y7QWdCNW02QlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXazE2QjFCO0FBQ0Y7QTRXbjI2Qlk7RUFHUSw4QkFBQTtBNVdtMjZCcEI7O0FnQnBuNkJRO0U0VnJPWTtJQUdRLDhCQUFBO0U1VzIxNkIxQjtBQUNGO0FnQjFuNkJRO0U0VnJPWTtJQUdRLDhCQUFBO0U1V2cyNkIxQjtBQUNGO0FnQi9uNkJRO0U0VnJPWTtJQUdRLDhCQUFBO0U1V3EyNkIxQjtBQUNGO0FnQnBvNkJRO0U0VnJPWTtJQUdRLDhCQUFBO0U1VzAyNkIxQjtBQUNGO0FnQnpvNkJRO0U0VnJPWTtJQUdRLDhCQUFBO0U1VysyNkIxQjtBQUNGO0FnQjlvNkJRO0U0VnJPWTtJQUdRLDhCQUFBO0U1V28zNkIxQjtBQUNGO0E0V3I0NkJZO0VBR1EsOEJBQUE7QTVXcTQ2QnBCOztBZ0J0cDZCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVc2MzZCMUI7QUFDRjtBZ0I1cDZCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVdrNDZCMUI7QUFDRjtBZ0JqcTZCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVd1NDZCMUI7QUFDRjtBZ0J0cTZCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVc0NDZCMUI7QUFDRjtBZ0IzcTZCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVdpNTZCMUI7QUFDRjtBZ0JocjZCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVdzNTZCMUI7QUFDRjtBNFd2NjZCWTtFQUdRLDhCQUFBO0E1V3U2NkJwQjs7QWdCeHI2QlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXKzU2QjFCO0FBQ0Y7QWdCOXI2QlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXbzY2QjFCO0FBQ0Y7QWdCbnM2QlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXeTY2QjFCO0FBQ0Y7QWdCeHM2QlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXODY2QjFCO0FBQ0Y7QWdCN3M2QlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXbTc2QjFCO0FBQ0Y7QWdCbHQ2QlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXdzc2QjFCO0FBQ0Y7QTRXejg2Qlk7RUFHUSwyQkFBQTtBNVd5ODZCcEI7O0FnQjF0NkJRO0U0VnJPWTtJQUdRLDJCQUFBO0U1V2k4NkIxQjtBQUNGO0FnQmh1NkJRO0U0VnJPWTtJQUdRLDJCQUFBO0U1V3M4NkIxQjtBQUNGO0FnQnJ1NkJRO0U0VnJPWTtJQUdRLDJCQUFBO0U1VzI4NkIxQjtBQUNGO0FnQjF1NkJRO0U0VnJPWTtJQUdRLDJCQUFBO0U1V2c5NkIxQjtBQUNGO0FnQi91NkJRO0U0VnJPWTtJQUdRLDJCQUFBO0U1V3E5NkIxQjtBQUNGO0FnQnB2NkJRO0U0VnJPWTtJQUdRLDJCQUFBO0U1VzA5NkIxQjtBQUNGO0E0VzMrNkJZO0VBR1EsOEJBQUE7QTVXMis2QnBCOztBZ0I1djZCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVdtKzZCMUI7QUFDRjtBZ0JsdzZCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVd3KzZCMUI7QUFDRjtBZ0J2dzZCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVc2KzZCMUI7QUFDRjtBZ0I1dzZCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVdrLzZCMUI7QUFDRjtBZ0JqeDZCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVd1LzZCMUI7QUFDRjtBZ0J0eDZCUTtFNFZyT1k7SUFHUSw4QkFBQTtFNVc0LzZCMUI7QUFDRjtBNFc3ZzdCWTtFQUdRLDhCQUFBO0E1VzZnN0JwQjs7QWdCOXg2QlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXcWc3QjFCO0FBQ0Y7QWdCcHk2QlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXMGc3QjFCO0FBQ0Y7QWdCenk2QlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXK2c3QjFCO0FBQ0Y7QWdCOXk2QlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXb2g3QjFCO0FBQ0Y7QWdCbno2QlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXeWg3QjFCO0FBQ0Y7QWdCeHo2QlE7RTRWck9ZO0lBR1EsOEJBQUE7RTVXOGg3QjFCO0FBQ0Y7QTRXL2k3Qlk7RUFHUSwrQkFBQTtBNVcraTdCcEI7O0FnQmgwNkJRO0U0VnJPWTtJQUdRLCtCQUFBO0U1V3VpN0IxQjtBQUNGO0FnQnQwNkJRO0U0VnJPWTtJQUdRLCtCQUFBO0U1VzRpN0IxQjtBQUNGO0FnQjMwNkJRO0U0VnJPWTtJQUdRLCtCQUFBO0U1V2lqN0IxQjtBQUNGO0FnQmgxNkJRO0U0VnJPWTtJQUdRLCtCQUFBO0U1V3NqN0IxQjtBQUNGO0FnQnIxNkJRO0U0VnJPWTtJQUdRLCtCQUFBO0U1VzJqN0IxQjtBQUNGO0FnQjExNkJRO0U0VnJPWTtJQUdRLCtCQUFBO0U1V2drN0IxQjtBQUNGO0E0V2psN0JZO0VBR1EsK0JBQUE7QTVXaWw3QnBCOztBZ0JsMjZCUTtFNFZyT1k7SUFHUSwrQkFBQTtFNVd5azdCMUI7QUFDRjtBZ0J4MjZCUTtFNFZyT1k7SUFHUSwrQkFBQTtFNVc4azdCMUI7QUFDRjtBZ0I3MjZCUTtFNFZyT1k7SUFHUSwrQkFBQTtFNVdtbDdCMUI7QUFDRjtBZ0JsMzZCUTtFNFZyT1k7SUFHUSwrQkFBQTtFNVd3bDdCMUI7QUFDRjtBZ0J2MzZCUTtFNFZyT1k7SUFHUSwrQkFBQTtFNVc2bDdCMUI7QUFDRjtBZ0I1MzZCUTtFNFZyT1k7SUFHUSwrQkFBQTtFNVdrbTdCMUI7QUFDRjtBNFdubjdCWTtFQUdRLCtCQUFBO0E1V21uN0JwQjs7QWdCcDQ2QlE7RTRWck9ZO0lBR1EsK0JBQUE7RTVXMm03QjFCO0FBQ0Y7QWdCMTQ2QlE7RTRWck9ZO0lBR1EsK0JBQUE7RTVXZ243QjFCO0FBQ0Y7QWdCLzQ2QlE7RTRWck9ZO0lBR1EsK0JBQUE7RTVXcW43QjFCO0FBQ0Y7QWdCcDU2QlE7RTRWck9ZO0lBR1EsK0JBQUE7RTVXMG43QjFCO0FBQ0Y7QWdCejU2QlE7RTRWck9ZO0lBR1EsK0JBQUE7RTVXK243QjFCO0FBQ0Y7QWdCOTU2QlE7RTRWck9ZO0lBR1EsK0JBQUE7RTVXb283QjFCO0FBQ0Y7QTRXcnA3Qlk7RUFHUSwrQkFBQTtBNVdxcDdCcEI7O0FnQnQ2NkJRO0U0VnJPWTtJQUdRLCtCQUFBO0U1VzZvN0IxQjtBQUNGO0FnQjU2NkJRO0U0VnJPWTtJQUdRLCtCQUFBO0U1V2twN0IxQjtBQUNGO0FnQmo3NkJRO0U0VnJPWTtJQUdRLCtCQUFBO0U1V3VwN0IxQjtBQUNGO0FnQnQ3NkJRO0U0VnJPWTtJQUdRLCtCQUFBO0U1VzRwN0IxQjtBQUNGO0FnQjM3NkJRO0U0VnJPWTtJQUdRLCtCQUFBO0U1V2lxN0IxQjtBQUNGO0FnQmg4NkJRO0U0VnJPWTtJQUdRLCtCQUFBO0U1V3NxN0IxQjtBQUNGO0E0V3ZyN0JZO0VBR1EsNEJBQUE7QTVXdXI3QnBCOztBZ0J4ODZCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVcrcTdCMUI7QUFDRjtBZ0I5ODZCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVdvcjdCMUI7QUFDRjtBZ0JuOTZCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVd5cjdCMUI7QUFDRjtBZ0J4OTZCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVc4cjdCMUI7QUFDRjtBZ0I3OTZCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVdtczdCMUI7QUFDRjtBZ0JsKzZCUTtFNFZyT1k7SUFHUSw0QkFBQTtFNVd3czdCMUI7QUFDRjtBNFd6dDdCWTtFQUdRLDRCQUFBO0E1V3l0N0JwQjs7QWdCMSs2QlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXaXQ3QjFCO0FBQ0Y7QWdCaC82QlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXc3Q3QjFCO0FBQ0Y7QWdCci82QlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXMnQ3QjFCO0FBQ0Y7QWdCMS82QlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXZ3U3QjFCO0FBQ0Y7QWdCLy82QlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXcXU3QjFCO0FBQ0Y7QWdCcGc3QlE7RTRWck9ZO0lBR1EsNEJBQUE7RTVXMHU3QjFCO0FBQ0Y7QTRXM3Y3Qlk7RUFHUSw0QkFBQTtBNVcydjdCcEI7O0FnQjVnN0JRO0U0VnJPWTtJQUdRLDRCQUFBO0U1V212N0IxQjtBQUNGO0FnQmxoN0JRO0U0VnJPWTtJQUdRLDRCQUFBO0U1V3d2N0IxQjtBQUNGO0FnQnZoN0JRO0U0VnJPWTtJQUdRLDRCQUFBO0U1VzZ2N0IxQjtBQUNGO0FnQjVoN0JRO0U0VnJPWTtJQUdRLDRCQUFBO0U1V2t3N0IxQjtBQUNGO0FnQmppN0JRO0U0VnJPWTtJQUdRLDRCQUFBO0U1V3V3N0IxQjtBQUNGO0FnQnRpN0JRO0U0VnJPWTtJQUdRLDRCQUFBO0U1VzR3N0IxQjtBQUNGO0E0Vzd4N0JZO0VBR1EsNkJBQUE7QTVXNng3QnBCOztBZ0I5aTdCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVdxeDdCMUI7QUFDRjtBZ0JwajdCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVcweDdCMUI7QUFDRjtBZ0J6ajdCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVcreDdCMUI7QUFDRjtBZ0I5ajdCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVdveTdCMUI7QUFDRjtBZ0JuazdCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVd5eTdCMUI7QUFDRjtBZ0J4azdCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVc4eTdCMUI7QUFDRjtBNFcvejdCWTtFQUdRLDZCQUFBO0E1Vyt6N0JwQjs7QWdCaGw3QlE7RTRWck9ZO0lBR1EsNkJBQUE7RTVXdXo3QjFCO0FBQ0Y7QWdCdGw3QlE7RTRWck9ZO0lBR1EsNkJBQUE7RTVXNHo3QjFCO0FBQ0Y7QWdCM2w3QlE7RTRWck9ZO0lBR1EsNkJBQUE7RTVXaTA3QjFCO0FBQ0Y7QWdCaG03QlE7RTRWck9ZO0lBR1EsNkJBQUE7RTVXczA3QjFCO0FBQ0Y7QWdCcm03QlE7RTRWck9ZO0lBR1EsNkJBQUE7RTVXMjA3QjFCO0FBQ0Y7QWdCMW03QlE7RTRWck9ZO0lBR1EsNkJBQUE7RTVXZzE3QjFCO0FBQ0Y7QTRXajI3Qlk7RUFHUSw2QkFBQTtBNVdpMjdCcEI7O0FnQmxuN0JRO0U0VnJPWTtJQUdRLDZCQUFBO0U1V3kxN0IxQjtBQUNGO0FnQnhuN0JRO0U0VnJPWTtJQUdRLDZCQUFBO0U1VzgxN0IxQjtBQUNGO0FnQjduN0JRO0U0VnJPWTtJQUdRLDZCQUFBO0U1V20yN0IxQjtBQUNGO0FnQmxvN0JRO0U0VnJPWTtJQUdRLDZCQUFBO0U1V3cyN0IxQjtBQUNGO0FnQnZvN0JRO0U0VnJPWTtJQUdRLDZCQUFBO0U1VzYyN0IxQjtBQUNGO0FnQjVvN0JRO0U0VnJPWTtJQUdRLDZCQUFBO0U1V2szN0IxQjtBQUNGO0E0V240N0JZO0VBR1EsNkJBQUE7QTVXbTQ3QnBCOztBZ0JwcDdCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVcyMzdCMUI7QUFDRjtBZ0IxcDdCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVdnNDdCMUI7QUFDRjtBZ0IvcDdCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVdxNDdCMUI7QUFDRjtBZ0JwcTdCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVcwNDdCMUI7QUFDRjtBZ0J6cTdCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVcrNDdCMUI7QUFDRjtBZ0I5cTdCUTtFNFZyT1k7SUFHUSw2QkFBQTtFNVdvNTdCMUI7QUFDRjtBNFdyNjdCWTtFQUdRLDBCQUFBO0E1V3E2N0JwQjs7QWdCdHI3QlE7RTRWck9ZO0lBR1EsMEJBQUE7RTVXNjU3QjFCO0FBQ0Y7QWdCNXI3QlE7RTRWck9ZO0lBR1EsMEJBQUE7RTVXazY3QjFCO0FBQ0Y7QWdCanM3QlE7RTRWck9ZO0lBR1EsMEJBQUE7RTVXdTY3QjFCO0FBQ0Y7QWdCdHM3QlE7RTRWck9ZO0lBR1EsMEJBQUE7RTVXNDY3QjFCO0FBQ0Y7QWdCM3M3QlE7RTRWck9ZO0lBR1EsMEJBQUE7RTVXaTc3QjFCO0FBQ0Y7QWdCaHQ3QlE7RTRWck9ZO0lBR1EsMEJBQUE7RTVXczc3QjFCO0FBQ0Y7QTRXdjg3Qlk7RUFHUSw0QkFBQTtFQUFBLDZCQUFBO0E1V3c4N0JwQjs7QWdCenQ3QlE7RTRWck9ZO0lBR1EsNEJBQUE7SUFBQSw2QkFBQTtFNVdpODdCMUI7QUFDRjtBZ0JodTdCUTtFNFZyT1k7SUFHUSw0QkFBQTtJQUFBLDZCQUFBO0U1V3U4N0IxQjtBQUNGO0FnQnR1N0JRO0U0VnJPWTtJQUdRLDRCQUFBO0lBQUEsNkJBQUE7RTVXNjg3QjFCO0FBQ0Y7QWdCNXU3QlE7RTRWck9ZO0lBR1EsNEJBQUE7SUFBQSw2QkFBQTtFNVdtOTdCMUI7QUFDRjtBZ0JsdjdCUTtFNFZyT1k7SUFHUSw0QkFBQTtJQUFBLDZCQUFBO0U1V3k5N0IxQjtBQUNGO0FnQnh2N0JRO0U0VnJPWTtJQUdRLDRCQUFBO0lBQUEsNkJBQUE7RTVXKzk3QjFCO0FBQ0Y7QTRXaC83Qlk7RUFHUSw0QkFBQTtFQUFBLDZCQUFBO0E1V2kvN0JwQjs7QWdCbHc3QlE7RTRWck9ZO0lBR1EsNEJBQUE7SUFBQSw2QkFBQTtFNVcwKzdCMUI7QUFDRjtBZ0J6dzdCUTtFNFZyT1k7SUFHUSw0QkFBQTtJQUFBLDZCQUFBO0U1V2cvN0IxQjtBQUNGO0FnQi93N0JRO0U0VnJPWTtJQUdRLDRCQUFBO0lBQUEsNkJBQUE7RTVXcy83QjFCO0FBQ0Y7QWdCcng3QlE7RTRWck9ZO0lBR1EsNEJBQUE7SUFBQSw2QkFBQTtFNVc0LzdCMUI7QUFDRjtBZ0IzeDdCUTtFNFZyT1k7SUFHUSw0QkFBQTtJQUFBLDZCQUFBO0U1V2tnOEIxQjtBQUNGO0FnQmp5N0JRO0U0VnJPWTtJQUdRLDRCQUFBO0lBQUEsNkJBQUE7RTVXd2c4QjFCO0FBQ0Y7QTRXemg4Qlk7RUFHUSw2QkFBQTtFQUFBLDhCQUFBO0E1VzBoOEJwQjs7QWdCM3k3QlE7RTRWck9ZO0lBR1EsNkJBQUE7SUFBQSw4QkFBQTtFNVdtaDhCMUI7QUFDRjtBZ0JsejdCUTtFNFZyT1k7SUFHUSw2QkFBQTtJQUFBLDhCQUFBO0U1V3loOEIxQjtBQUNGO0FnQnh6N0JRO0U0VnJPWTtJQUdRLDZCQUFBO0lBQUEsOEJBQUE7RTVXK2g4QjFCO0FBQ0Y7QWdCOXo3QlE7RTRWck9ZO0lBR1EsNkJBQUE7SUFBQSw4QkFBQTtFNVdxaThCMUI7QUFDRjtBZ0JwMDdCUTtFNFZyT1k7SUFHUSw2QkFBQTtJQUFBLDhCQUFBO0U1VzJpOEIxQjtBQUNGO0FnQjEwN0JRO0U0VnJPWTtJQUdRLDZCQUFBO0lBQUEsOEJBQUE7RTVXaWo4QjFCO0FBQ0Y7QTRXbGs4Qlk7RUFHUSw2QkFBQTtFQUFBLDhCQUFBO0E1V21rOEJwQjs7QWdCcDE3QlE7RTRWck9ZO0lBR1EsNkJBQUE7SUFBQSw4QkFBQTtFNVc0ajhCMUI7QUFDRjtBZ0IzMTdCUTtFNFZyT1k7SUFHUSw2QkFBQTtJQUFBLDhCQUFBO0U1V2trOEIxQjtBQUNGO0FnQmoyN0JRO0U0VnJPWTtJQUdRLDZCQUFBO0lBQUEsOEJBQUE7RTVXd2s4QjFCO0FBQ0Y7QWdCdjI3QlE7RTRWck9ZO0lBR1EsNkJBQUE7SUFBQSw4QkFBQTtFNVc4azhCMUI7QUFDRjtBZ0I3MjdCUTtFNFZyT1k7SUFHUSw2QkFBQTtJQUFBLDhCQUFBO0U1V29sOEIxQjtBQUNGO0FnQm4zN0JRO0U0VnJPWTtJQUdRLDZCQUFBO0lBQUEsOEJBQUE7RTVXMGw4QjFCO0FBQ0Y7QTRXM204Qlk7RUFHUSw2QkFBQTtFQUFBLDhCQUFBO0E1VzRtOEJwQjs7QWdCNzM3QlE7RTRWck9ZO0lBR1EsNkJBQUE7SUFBQSw4QkFBQTtFNVdxbThCMUI7QUFDRjtBZ0JwNDdCUTtFNFZyT1k7SUFHUSw2QkFBQTtJQUFBLDhCQUFBO0U1VzJtOEIxQjtBQUNGO0FnQjE0N0JRO0U0VnJPWTtJQUdRLDZCQUFBO0lBQUEsOEJBQUE7RTVXaW44QjFCO0FBQ0Y7QWdCaDU3QlE7RTRWck9ZO0lBR1EsNkJBQUE7SUFBQSw4QkFBQTtFNVd1bjhCMUI7QUFDRjtBZ0J0NTdCUTtFNFZyT1k7SUFHUSw2QkFBQTtJQUFBLDhCQUFBO0U1VzZuOEIxQjtBQUNGO0FnQjU1N0JRO0U0VnJPWTtJQUdRLDZCQUFBO0lBQUEsOEJBQUE7RTVXbW84QjFCO0FBQ0Y7QTRXcHA4Qlk7RUFHUSw2QkFBQTtFQUFBLDhCQUFBO0E1V3FwOEJwQjs7QWdCdDY3QlE7RTRWck9ZO0lBR1EsNkJBQUE7SUFBQSw4QkFBQTtFNVc4bzhCMUI7QUFDRjtBZ0I3NjdCUTtFNFZyT1k7SUFHUSw2QkFBQTtJQUFBLDhCQUFBO0U1V29wOEIxQjtBQUNGO0FnQm43N0JRO0U0VnJPWTtJQUdRLDZCQUFBO0lBQUEsOEJBQUE7RTVXMHA4QjFCO0FBQ0Y7QWdCejc3QlE7RTRWck9ZO0lBR1EsNkJBQUE7SUFBQSw4QkFBQTtFNVdncThCMUI7QUFDRjtBZ0IvNzdCUTtFNFZyT1k7SUFHUSw2QkFBQTtJQUFBLDhCQUFBO0U1V3NxOEIxQjtBQUNGO0FnQnI4N0JRO0U0VnJPWTtJQUdRLDZCQUFBO0lBQUEsOEJBQUE7RTVXNHE4QjFCO0FBQ0Y7QTRXN3I4Qlk7RUFHUSwwQkFBQTtFQUFBLDJCQUFBO0E1VzhyOEJwQjs7QWdCLzg3QlE7RTRWck9ZO0lBR1EsMEJBQUE7SUFBQSwyQkFBQTtFNVd1cjhCMUI7QUFDRjtBZ0J0OTdCUTtFNFZyT1k7SUFHUSwwQkFBQTtJQUFBLDJCQUFBO0U1VzZyOEIxQjtBQUNGO0FnQjU5N0JRO0U0VnJPWTtJQUdRLDBCQUFBO0lBQUEsMkJBQUE7RTVXbXM4QjFCO0FBQ0Y7QWdCbCs3QlE7RTRWck9ZO0lBR1EsMEJBQUE7SUFBQSwyQkFBQTtFNVd5czhCMUI7QUFDRjtBZ0J4KzdCUTtFNFZyT1k7SUFHUSwwQkFBQTtJQUFBLDJCQUFBO0U1VytzOEIxQjtBQUNGO0FnQjkrN0JRO0U0VnJPWTtJQUdRLDBCQUFBO0lBQUEsMkJBQUE7RTVXcXQ4QjFCO0FBQ0Y7QTRXdHU4Qlk7RUFHUSwyQkFBQTtFQUFBLDhCQUFBO0E1V3V1OEJwQjs7QWdCeC83QlE7RTRWck9ZO0lBR1EsMkJBQUE7SUFBQSw4QkFBQTtFNVdndThCMUI7QUFDRjtBZ0IvLzdCUTtFNFZyT1k7SUFHUSwyQkFBQTtJQUFBLDhCQUFBO0U1V3N1OEIxQjtBQUNGO0FnQnJnOEJRO0U0VnJPWTtJQUdRLDJCQUFBO0lBQUEsOEJBQUE7RTVXNHU4QjFCO0FBQ0Y7QWdCM2c4QlE7RTRWck9ZO0lBR1EsMkJBQUE7SUFBQSw4QkFBQTtFNVdrdjhCMUI7QUFDRjtBZ0JqaDhCUTtFNFZyT1k7SUFHUSwyQkFBQTtJQUFBLDhCQUFBO0U1V3d2OEIxQjtBQUNGO0FnQnZoOEJRO0U0VnJPWTtJQUdRLDJCQUFBO0lBQUEsOEJBQUE7RTVXOHY4QjFCO0FBQ0Y7QTRXL3c4Qlk7RUFHUSwyQkFBQTtFQUFBLDhCQUFBO0E1V2d4OEJwQjs7QWdCamk4QlE7RTRWck9ZO0lBR1EsMkJBQUE7SUFBQSw4QkFBQTtFNVd5dzhCMUI7QUFDRjtBZ0J4aThCUTtFNFZyT1k7SUFHUSwyQkFBQTtJQUFBLDhCQUFBO0U1Vyt3OEIxQjtBQUNGO0FnQjlpOEJRO0U0VnJPWTtJQUdRLDJCQUFBO0lBQUEsOEJBQUE7RTVXcXg4QjFCO0FBQ0Y7QWdCcGo4QlE7RTRWck9ZO0lBR1EsMkJBQUE7SUFBQSw4QkFBQTtFNVcyeDhCMUI7QUFDRjtBZ0IxajhCUTtFNFZyT1k7SUFHUSwyQkFBQTtJQUFBLDhCQUFBO0U1V2l5OEIxQjtBQUNGO0FnQmhrOEJRO0U0VnJPWTtJQUdRLDJCQUFBO0lBQUEsOEJBQUE7RTVXdXk4QjFCO0FBQ0Y7QTRXeHo4Qlk7RUFHUSw0QkFBQTtFQUFBLCtCQUFBO0E1V3l6OEJwQjs7QWdCMWs4QlE7RTRWck9ZO0lBR1EsNEJBQUE7SUFBQSwrQkFBQTtFNVdrejhCMUI7QUFDRjtBZ0JqbDhCUTtFNFZyT1k7SUFHUSw0QkFBQTtJQUFBLCtCQUFBO0U1V3d6OEIxQjtBQUNGO0FnQnZsOEJRO0U0VnJPWTtJQUdRLDRCQUFBO0lBQUEsK0JBQUE7RTVXOHo4QjFCO0FBQ0Y7QWdCN2w4QlE7RTRWck9ZO0lBR1EsNEJBQUE7SUFBQSwrQkFBQTtFNVdvMDhCMUI7QUFDRjtBZ0JubThCUTtFNFZyT1k7SUFHUSw0QkFBQTtJQUFBLCtCQUFBO0U1VzAwOEIxQjtBQUNGO0FnQnptOEJRO0U0VnJPWTtJQUdRLDRCQUFBO0lBQUEsK0JBQUE7RTVXZzE4QjFCO0FBQ0Y7QTRXajI4Qlk7RUFHUSw0QkFBQTtFQUFBLCtCQUFBO0E1V2syOEJwQjs7QWdCbm44QlE7RTRWck9ZO0lBR1EsNEJBQUE7SUFBQSwrQkFBQTtFNVcyMThCMUI7QUFDRjtBZ0IxbjhCUTtFNFZyT1k7SUFHUSw0QkFBQTtJQUFBLCtCQUFBO0U1V2kyOEIxQjtBQUNGO0FnQmhvOEJRO0U0VnJPWTtJQUdRLDRCQUFBO0lBQUEsK0JBQUE7RTVXdTI4QjFCO0FBQ0Y7QWdCdG84QlE7RTRWck9ZO0lBR1EsNEJBQUE7SUFBQSwrQkFBQTtFNVc2MjhCMUI7QUFDRjtBZ0I1bzhCUTtFNFZyT1k7SUFHUSw0QkFBQTtJQUFBLCtCQUFBO0U1V20zOEIxQjtBQUNGO0FnQmxwOEJRO0U0VnJPWTtJQUdRLDRCQUFBO0lBQUEsK0JBQUE7RTVXeTM4QjFCO0FBQ0Y7QTRXMTQ4Qlk7RUFHUSw0QkFBQTtFQUFBLCtCQUFBO0E1VzI0OEJwQjs7QWdCNXA4QlE7RTRWck9ZO0lBR1EsNEJBQUE7SUFBQSwrQkFBQTtFNVdvNDhCMUI7QUFDRjtBZ0JucThCUTtFNFZyT1k7SUFHUSw0QkFBQTtJQUFBLCtCQUFBO0U1VzA0OEIxQjtBQUNGO0FnQnpxOEJRO0U0VnJPWTtJQUdRLDRCQUFBO0lBQUEsK0JBQUE7RTVXZzU4QjFCO0FBQ0Y7QWdCL3E4QlE7RTRWck9ZO0lBR1EsNEJBQUE7SUFBQSwrQkFBQTtFNVdzNThCMUI7QUFDRjtBZ0JycjhCUTtFNFZyT1k7SUFHUSw0QkFBQTtJQUFBLCtCQUFBO0U1VzQ1OEIxQjtBQUNGO0FnQjNyOEJRO0U0VnJPWTtJQUdRLDRCQUFBO0lBQUEsK0JBQUE7RTVXazY4QjFCO0FBQ0Y7QTRXbjc4Qlk7RUFHUSw0QkFBQTtFQUFBLCtCQUFBO0E1V283OEJwQjs7QWdCcnM4QlE7RTRWck9ZO0lBR1EsNEJBQUE7SUFBQSwrQkFBQTtFNVc2NjhCMUI7QUFDRjtBZ0I1czhCUTtFNFZyT1k7SUFHUSw0QkFBQTtJQUFBLCtCQUFBO0U1V203OEIxQjtBQUNGO0FnQmx0OEJRO0U0VnJPWTtJQUdRLDRCQUFBO0lBQUEsK0JBQUE7RTVXeTc4QjFCO0FBQ0Y7QWdCeHQ4QlE7RTRWck9ZO0lBR1EsNEJBQUE7SUFBQSwrQkFBQTtFNVcrNzhCMUI7QUFDRjtBZ0I5dDhCUTtFNFZyT1k7SUFHUSw0QkFBQTtJQUFBLCtCQUFBO0U1V3E4OEIxQjtBQUNGO0FnQnB1OEJRO0U0VnJPWTtJQUdRLDRCQUFBO0lBQUEsK0JBQUE7RTVXMjg4QjFCO0FBQ0Y7QTRXNTk4Qlk7RUFHUSx5QkFBQTtFQUFBLDRCQUFBO0E1VzY5OEJwQjs7QWdCOXU4QlE7RTRWck9ZO0lBR1EseUJBQUE7SUFBQSw0QkFBQTtFNVdzOThCMUI7QUFDRjtBZ0JydjhCUTtFNFZyT1k7SUFHUSx5QkFBQTtJQUFBLDRCQUFBO0U1VzQ5OEIxQjtBQUNGO0FnQjN2OEJRO0U0VnJPWTtJQUdRLHlCQUFBO0lBQUEsNEJBQUE7RTVXays4QjFCO0FBQ0Y7QWdCanc4QlE7RTRWck9ZO0lBR1EseUJBQUE7SUFBQSw0QkFBQTtFNVd3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Qjs7QW9YNzA5Qlk7RUFDSSxxQkFBQTtBcFhnMTlCaEI7O0FvWGoxOUJZO0VBQ0kscUJBQUE7QXBYbzE5QmhCOztBb1hyMTlCWTtFQUNJLFVBQUE7QXBYdzE5QmhCOztBb1h6MTlCWTtFQUNJLHFCQUFBO0FwWDQxOUJoQjs7QW9YNzE5Qlk7RUFDSSxxQkFBQTtBcFhnMjlCaEI7O0FvWGoyOUJZO0VBQ0ksV0FBQTtBcFhvMjlCaEI7O0FnQnZuOUJRO0VvV2hPWTtJQUNJLFdBQUE7RXBYMjE5QnRCO0VvWDUxOUJrQjtJQUNJLFVBQUE7RXBYODE5QnRCO0VvWC8xOUJrQjtJQUNJLFdBQUE7RXBYaTI5QnRCO0VvWGwyOUJrQjtJQUNJLHFCQUFBO0VwWG8yOUJ0QjtFb1hyMjlCa0I7SUFDSSxxQkFBQTtFcFh1MjlCdEI7RW9YeDI5QmtCO0lBQ0ksV0FBQTtFcFgwMjlCdEI7RW9YMzI5QmtCO0lBQ0ksVUFBQTtFcFg2MjlCdEI7RW9YOTI5QmtCO0lBQ0ksVUFBQTtFcFhnMzlCdEI7RW9YajM5QmtCO0lBQ0ksVUFBQTtFcFhtMzlCdEI7RW9YcDM5QmtCO0lBQ0ksV0FBQTtFcFhzMzlCdEI7RW9YdjM5QmtCO0lBQ0ksVUFBQTtFcFh5MzlCdEI7RW9YMTM5QmtCO0lBQ0ksVUFBQTtFcFg0MzlCdEI7RW9YNzM5QmtCO0lBQ0ksVUFBQTtFcFgrMzlCdEI7RW9YaDQ5QmtCO0lBQ0ksVUFBQTtFcFhrNDlCdEI7RW9YbjQ5QmtCO0lBQ0ksV0FBQTtFcFhxNDlCdEI7RW9YdDQ5QmtCO0lBQ0kscUJBQUE7RXBYdzQ5QnRCO0VvWHo0OUJrQjtJQUNJLHFCQUFBO0VwWDI0OUJ0QjtFb1g1NDlCa0I7SUFDSSxVQUFBO0VwWDg0OUJ0QjtFb1gvNDlCa0I7SUFDSSxxQkFBQTtFcFhpNTlCdEI7RW9YbDU5QmtCO0lBQ0kscUJBQUE7RXBYbzU5QnRCO0VvWHI1OUJrQjtJQUNJLFdBQUE7RXBYdTU5QnRCO0VvWHg1OUJrQjtJQUNJLG9CQUFBO0VwWDA1OUJ0QjtFb1gzNTlCa0I7SUFDSSxxQkFBQTtFcFg2NTlCdEI7RW9YOTU5QmtCO0lBQ0ksVUFBQTtFcFhnNjlCdEI7RW9YajY5QmtCO0lBQ0kscUJBQUE7RXBYbTY5QnRCO0VvWHA2OUJrQjtJQUNJLHFCQUFBO0VwWHM2OUJ0QjtFb1h2NjlCa0I7SUFDSSxVQUFBO0VwWHk2OUJ0QjtFb1gxNjlCa0I7SUFDSSxxQkFBQTtFcFg0NjlCdEI7RW9YNzY5QmtCO0lBQ0kscUJBQUE7RXBYKzY5QnRCO0VvWGg3OUJrQjtJQUNJLFVBQUE7RXBYazc5QnRCO0VvWG43OUJrQjtJQUNJLHFCQUFBO0VwWHE3OUJ0QjtFb1h0NzlCa0I7SUFDSSxxQkFBQTtFcFh3NzlCdEI7RW9Yejc5QmtCO0lBQ0ksV0FBQTtFcFgyNzlCdEI7QUFDRjtBZ0I3dDlCUTtFb1doT1k7SUFDSSxXQUFBO0VwWGc4OUJ0QjtFb1hqODlCa0I7SUFDSSxVQUFBO0VwWG04OUJ0QjtFb1hwODlCa0I7SUFDSSxXQUFBO0VwWHM4OUJ0QjtFb1h2ODlCa0I7SUFDSSxxQkFBQTtFcFh5ODlCdEI7RW9YMTg5QmtCO0lBQ0kscUJBQUE7RXBYNDg5QnRCO0VvWDc4OUJrQjtJQUNJLFdBQUE7RXBYKzg5QnRCO0VvWGg5OUJrQjtJQUNJLFVBQUE7RXBYazk5QnRCO0VvWG45OUJrQjtJQUNJLFVBQUE7RXBYcTk5QnRCO0VvWHQ5OUJrQjtJQUNJLFVBQUE7RXBYdzk5QnRCO0VvWHo5OUJrQjtJQUNJLFdBQUE7RXBYMjk5QnRCO0VvWDU5OUJrQjtJQUNJLFVBQUE7RXBYODk5QnRCO0VvWC85OUJrQjtJQUNJLFVBQUE7RXBYaSs5QnRCO0VvWGwrOUJrQjtJQUNJLFVBQUE7RXBYbys5QnRCO0VvWHIrOUJrQjtJQUNJLFVBQUE7RXBYdSs5QnRCO0VvWHgrOUJrQjtJQUNJLFdBQUE7RXBYMCs5QnRCO0VvWDMrOUJrQjtJQUNJLHFCQUFBO0VwWDYrOUJ0QjtFb1g5KzlCa0I7SUFDSSxxQkFBQTtFcFhnLzlCdEI7RW9Yai85QmtCO0lBQ0ksVUFBQTtFcFhtLzlCdEI7RW9YcC85QmtCO0lBQ0kscUJBQUE7RXBYcy85QnRCO0VvWHYvOUJrQjtJQUNJLHFCQUFBO0VwWHkvOUJ0QjtFb1gxLzlCa0I7SUFDSSxXQUFBO0VwWDQvOUJ0QjtFb1g3LzlCa0I7SUFDSSxvQkFBQTtFcFgrLzlCdEI7RW9YaGcrQmtCO0lBQ0kscUJBQUE7RXBYa2crQnRCO0VvWG5nK0JrQjtJQUNJLFVBQUE7RXBYcWcrQnRCO0VvWHRnK0JrQjtJQUNJLHFCQUFBO0VwWHdnK0J0QjtFb1h6ZytCa0I7SUFDSSxxQkFBQTtFcFgyZytCdEI7RW9YNWcrQmtCO0lBQ0ksVUFBQTtFcFg4ZytCdEI7RW9YL2crQmtCO0lBQ0kscUJBQUE7RXBYaWgrQnRCO0VvWGxoK0JrQjtJQUNJLHFCQUFBO0VwWG9oK0J0QjtFb1hyaCtCa0I7SUFDSSxVQUFBO0VwWHVoK0J0QjtFb1h4aCtCa0I7SUFDSSxxQkFBQTtFcFgwaCtCdEI7RW9YM2grQmtCO0lBQ0kscUJBQUE7RXBYNmgrQnRCO0VvWDloK0JrQjtJQUNJLFdBQUE7RXBYZ2krQnRCO0FBQ0Y7QWdCbDA5QlE7RW9XaE9ZO0lBQ0ksV0FBQTtFcFhxaStCdEI7RW9YdGkrQmtCO0lBQ0ksVUFBQTtFcFh3aStCdEI7RW9YemkrQmtCO0lBQ0ksV0FBQTtFcFgyaStCdEI7RW9YNWkrQmtCO0lBQ0kscUJBQUE7RXBYOGkrQnRCO0VvWC9pK0JrQjtJQUNJLHFCQUFBO0VwWGlqK0J0QjtFb1hsaitCa0I7SUFDSSxXQUFBO0VwWG9qK0J0QjtFb1hyaitCa0I7SUFDSSxVQUFBO0VwWHVqK0J0QjtFb1h4aitCa0I7SUFDSSxVQUFBO0VwWDBqK0J0QjtFb1gzaitCa0I7SUFDSSxVQUFBO0VwWDZqK0J0QjtFb1g5aitCa0I7SUFDSSxXQUFBO0VwWGdrK0J0QjtFb1hqaytCa0I7SUFDSSxVQUFBO0VwWG1rK0J0QjtFb1hwaytCa0I7SUFDSSxVQUFBO0VwWHNrK0J0QjtFb1h2aytCa0I7SUFDSSxVQUFBO0VwWHlrK0J0QjtFb1gxaytCa0I7SUFDSSxVQUFBO0VwWDRrK0J0QjtFb1g3aytCa0I7SUFDSSxXQUFBO0VwWCtrK0J0QjtFb1hobCtCa0I7SUFDSSxxQkFBQTtFcFhrbCtCdEI7RW9YbmwrQmtCO0lBQ0kscUJBQUE7RXBYcWwrQnRCO0VvWHRsK0JrQjtJQUNJLFVBQUE7RXBYd2wrQnRCO0VvWHpsK0JrQjtJQUNJLHFCQUFBO0VwWDJsK0J0QjtFb1g1bCtCa0I7SUFDSSxxQkFBQTtFcFg4bCtCdEI7RW9YL2wrQmtCO0lBQ0ksV0FBQTtFcFhpbStCdEI7RW9YbG0rQmtCO0lBQ0ksb0JBQUE7RXBYb20rQnRCO0VvWHJtK0JrQjtJQUNJLHFCQUFBO0VwWHVtK0J0QjtFb1h4bStCa0I7SUFDSSxVQUFBO0VwWDBtK0J0QjtFb1gzbStCa0I7SUFDSSxxQkFBQTtFcFg2bStCdEI7RW9YOW0rQmtCO0lBQ0kscUJBQUE7RXBYZ24rQnRCO0VvWGpuK0JrQjtJQUNJLFVBQUE7RXBYbW4rQnRCO0VvWHBuK0JrQjtJQUNJLHFCQUFBO0VwWHNuK0J0QjtFb1h2bitCa0I7SUFDSSxxQkFBQTtFcFh5bitCdEI7RW9YMW4rQmtCO0lBQ0ksVUFBQTtFcFg0bitCdEI7RW9YN24rQmtCO0lBQ0kscUJBQUE7RXBYK24rQnRCO0VvWGhvK0JrQjtJQUNJLHFCQUFBO0VwWGtvK0J0QjtFb1hubytCa0I7SUFDSSxXQUFBO0VwWHFvK0J0QjtBQUNGO0FnQnY2OUJRO0VvV2hPWTtJQUNJLFdBQUE7RXBYMG8rQnRCO0VvWDNvK0JrQjtJQUNJLFVBQUE7RXBYNm8rQnRCO0VvWDlvK0JrQjtJQUNJLFdBQUE7RXBYZ3ArQnRCO0VvWGpwK0JrQjtJQUNJLHFCQUFBO0VwWG1wK0J0QjtFb1hwcCtCa0I7SUFDSSxxQkFBQTtFcFhzcCtCdEI7RW9YdnArQmtCO0lBQ0ksV0FBQTtFcFh5cCtCdEI7RW9YMXArQmtCO0lBQ0ksVUFBQTtFcFg0cCtCdEI7RW9YN3ArQmtCO0lBQ0ksVUFBQTtFcFgrcCtCdEI7RW9YaHErQmtCO0lBQ0ksVUFBQTtFcFhrcStCdEI7RW9YbnErQmtCO0lBQ0ksV0FBQTtFcFhxcStCdEI7RW9YdHErQmtCO0lBQ0ksVUFBQTtFcFh3cStCdEI7RW9YenErQmtCO0lBQ0ksVUFBQTtFcFgycStCdEI7RW9YNXErQmtCO0lBQ0ksVUFBQTtFcFg4cStCdEI7RW9YL3ErQmtCO0lBQ0ksVUFBQTtFcFhpcitCdEI7RW9YbHIrQmtCO0lBQ0ksV0FBQTtFcFhvcitCdEI7RW9YcnIrQmtCO0lBQ0kscUJBQUE7RXBYdXIrQnRCO0VvWHhyK0JrQjtJQUNJLHFCQUFBO0VwWDByK0J0QjtFb1gzcitCa0I7SUFDSSxVQUFBO0VwWDZyK0J0QjtFb1g5citCa0I7SUFDSSxxQkFBQTtFcFhncytCdEI7RW9YanMrQmtCO0lBQ0kscUJBQUE7RXBYbXMrQnRCO0VvWHBzK0JrQjtJQUNJLFdBQUE7RXBYc3MrQnRCO0VvWHZzK0JrQjtJQUNJLG9CQUFBO0VwWHlzK0J0QjtFb1gxcytCa0I7SUFDSSxxQkFBQTtFcFg0cytCdEI7RW9YN3MrQmtCO0lBQ0ksVUFBQTtFcFgrcytCdEI7RW9YaHQrQmtCO0lBQ0kscUJBQUE7RXBYa3QrQnRCO0VvWG50K0JrQjtJQUNJLHFCQUFBO0VwWHF0K0J0QjtFb1h0dCtCa0I7SUFDSSxVQUFBO0VwWHd0K0J0QjtFb1h6dCtCa0I7SUFDSSxxQkFBQTtFcFgydCtCdEI7RW9YNXQrQmtCO0lBQ0kscUJBQUE7RXBYOHQrQnRCO0VvWC90K0JrQjtJQUNJLFVBQUE7RXBYaXUrQnRCO0VvWGx1K0JrQjtJQUNJLHFCQUFBO0VwWG91K0J0QjtFb1hydStCa0I7SUFDSSxxQkFBQTtFcFh1dStCdEI7RW9YeHUrQmtCO0lBQ0ksV0FBQTtFcFgwdStCdEI7QUFDRjtBZ0I1ZytCUTtFb1doT1k7SUFDSSxXQUFBO0VwWCt1K0J0QjtFb1hoditCa0I7SUFDSSxVQUFBO0VwWGt2K0J0QjtFb1huditCa0I7SUFDSSxXQUFBO0VwWHF2K0J0QjtFb1h0ditCa0I7SUFDSSxxQkFBQTtFcFh3ditCdEI7RW9YenYrQmtCO0lBQ0kscUJBQUE7RXBYMnYrQnRCO0VvWDV2K0JrQjtJQUNJLFdBQUE7RXBYOHYrQnRCO0VvWC92K0JrQjtJQUNJLFVBQUE7RXBYaXcrQnRCO0VvWGx3K0JrQjtJQUNJLFVBQUE7RXBYb3crQnRCO0VvWHJ3K0JrQjtJQUNJLFVBQUE7RXBYdXcrQnRCO0VvWHh3K0JrQjtJQUNJLFdBQUE7RXBYMHcrQnRCO0VvWDN3K0JrQjtJQUNJLFVBQUE7RXBYNncrQnRCO0VvWDl3K0JrQjtJQUNJLFVBQUE7RXBYZ3grQnRCO0VvWGp4K0JrQjtJQUNJLFVBQUE7RXBYbXgrQnRCO0VvWHB4K0JrQjtJQUNJLFVBQUE7RXBYc3grQnRCO0VvWHZ4K0JrQjtJQUNJLFdBQUE7RXBYeXgrQnRCO0VvWDF4K0JrQjtJQUNJLHFCQUFBO0VwWDR4K0J0QjtFb1g3eCtCa0I7SUFDSSxxQkFBQTtFcFgreCtCdEI7RW9YaHkrQmtCO0lBQ0ksVUFBQTtFcFhreStCdEI7RW9YbnkrQmtCO0lBQ0kscUJBQUE7RXBYcXkrQnRCO0VvWHR5K0JrQjtJQUNJLHFCQUFBO0VwWHd5K0J0QjtFb1h6eStCa0I7SUFDSSxXQUFBO0VwWDJ5K0J0QjtFb1g1eStCa0I7SUFDSSxvQkFBQTtFcFg4eStCdEI7RW9YL3krQmtCO0lBQ0kscUJBQUE7RXBYaXorQnRCO0VvWGx6K0JrQjtJQUNJLFVBQUE7RXBYb3orQnRCO0VvWHJ6K0JrQjtJQUNJLHFCQUFBO0VwWHV6K0J0QjtFb1h4eitCa0I7SUFDSSxxQkFBQTtFcFgweitCdEI7RW9YM3orQmtCO0lBQ0ksVUFBQTtFcFg2eitCdEI7RW9YOXorQmtCO0lBQ0kscUJBQUE7RXBYZzArQnRCO0VvWGowK0JrQjtJQUNJLHFCQUFBO0VwWG0wK0J0QjtFb1hwMCtCa0I7SUFDSSxVQUFBO0VwWHMwK0J0QjtFb1h2MCtCa0I7SUFDSSxxQkFBQTtFcFh5MCtCdEI7RW9YMTArQmtCO0lBQ0kscUJBQUE7RXBYNDArQnRCO0VvWDcwK0JrQjtJQUNJLFdBQUE7RXBYKzArQnRCO0FBQ0Y7QWdCam4rQlE7RW9XaE9ZO0lBQ0ksV0FBQTtFcFhvMStCdEI7RW9YcjErQmtCO0lBQ0ksVUFBQTtFcFh1MStCdEI7RW9YeDErQmtCO0lBQ0ksV0FBQTtFcFgwMStCdEI7RW9YMzErQmtCO0lBQ0kscUJBQUE7RXBYNjErQnRCO0VvWDkxK0JrQjtJQUNJLHFCQUFBO0VwWGcyK0J0QjtFb1hqMitCa0I7SUFDSSxXQUFBO0VwWG0yK0J0QjtFb1hwMitCa0I7SUFDSSxVQUFBO0VwWHMyK0J0QjtFb1h2MitCa0I7SUFDSSxVQUFBO0VwWHkyK0J0QjtFb1gxMitCa0I7SUFDSSxVQUFBO0VwWDQyK0J0QjtFb1g3MitCa0I7SUFDSSxXQUFBO0VwWCsyK0J0QjtFb1hoMytCa0I7SUFDSSxVQUFBO0VwWGszK0J0QjtFb1huMytCa0I7SUFDSSxVQUFBO0VwWHEzK0J0QjtFb1h0MytCa0I7SUFDSSxVQUFBO0VwWHczK0J0QjtFb1h6MytCa0I7SUFDSSxVQUFBO0VwWDIzK0J0QjtFb1g1MytCa0I7SUFDSSxXQUFBO0VwWDgzK0J0QjtFb1gvMytCa0I7SUFDSSxxQkFBQTtFcFhpNCtCdEI7RW9YbDQrQmtCO0lBQ0kscUJBQUE7RXBYbzQrQnRCO0VvWHI0K0JrQjtJQUNJLFVBQUE7RXBYdTQrQnRCO0VvWHg0K0JrQjtJQUNJLHFCQUFBO0VwWDA0K0J0QjtFb1gzNCtCa0I7SUFDSSxxQkFBQTtFcFg2NCtCdEI7RW9YOTQrQmtCO0lBQ0ksV0FBQTtFcFhnNStCdEI7RW9YajUrQmtCO0lBQ0ksb0JBQUE7RXBYbTUrQnRCO0VvWHA1K0JrQjtJQUNJLHFCQUFBO0VwWHM1K0J0QjtFb1h2NStCa0I7SUFDSSxVQUFBO0VwWHk1K0J0QjtFb1gxNStCa0I7SUFDSSxxQkFBQTtFcFg0NStCdEI7RW9YNzUrQmtCO0lBQ0kscUJBQUE7RXBYKzUrQnRCO0VvWGg2K0JrQjtJQUNJLFVBQUE7RXBYazYrQnRCO0VvWG42K0JrQjtJQUNJLHFCQUFBO0VwWHE2K0J0QjtFb1h0NitCa0I7SUFDSSxxQkFBQTtFcFh3NitCdEI7RW9YejYrQmtCO0lBQ0ksVUFBQTtFcFgyNitCdEI7RW9YNTYrQmtCO0lBQ0kscUJBQUE7RXBYODYrQnRCO0VvWC82K0JrQjtJQUNJLHFCQUFBO0VwWGk3K0J0QjtFb1hsNytCa0I7SUFDSSxXQUFBO0VwWG83K0J0QjtBQUNGO0FxWHI5K0JBOzt3Q0FBQTtBQUtBO0Ux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RUFDSSxnQ0FBQTtBL1h1eC9CSjs7QStYcHgvQkE7O0VBQUE7QXhZMUNJO0V3WWdESTtJQUNJLHFCQUFBLEVBQUEsaURBQUE7RS9YcXgvQlY7QUFDRiIsImZpbGUiOiJzdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjQkFTRSBTRVRUSU5HU1xuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRHTE9CQUwtRk9OVC1TSVpFOiAgICAgICAgICAgIDE2cHggIWRlZmF1bHQ7XG5cbiRHTE9CQUwtQkFTRUxJTkU6ICAgICAgICAgICAgIDhweCAhZGVmYXVsdDtcblxuLyoqXG4gKiBTa29kYSBzdGF0aWMgc3BhY2luZyBhcyBkZWZpbmVkIGluIHN0eWxlZ3VpZGUgdGhhdCBkbyBub3QgZml0XG4gKiBtdWx0aS1icmFuZCBYWFNNQUxMIHRvIFhYTEFSR0Ugc3BhY2luZyBzY2FsZXMuXG4gKi9cbiRfX1NLT0RBLVNQQUNJTkctU1RBVElDLTEyX186ICAxMnB4ICFkZWZhdWx0O1xuXG4vKipcbiAqIFNwYWNpbmdzIGFyZSByZXF1aXJlZCBzZXR0aW5ncyBmb3IgYWxsIGJyYW5kcyAoWFhTTUFMTCAtIFhYTEFSR0UpLlxuICogLSBSZXF1aXJlZCB0byBoYXZlIGFsbCBzY2FsZXMgYXZhaWxhYmxlIGluIGFsbCBicmFuZHMgKG11bHRpYnJhbmQgJiBvbmUtbWFya3VwLWFwcHJvYWNoKS5cbiAqIC0gVXNlZCBmb3IgZ2VuZXJhdGluZyBvZiBzcGFjaW5nIHV0aWxpdGllcy5cbiAqL1xuXG4kU0NBTEUtRkFDVE9SLVhYU01BTEw6ICAgICAgICAwLjUgIWRlZmF1bHQ7XG4kU0NBTEUtRkFDVE9SLVhTTUFMTDogICAgICAgICAxICFkZWZhdWx0O1xuJFNDQUxFLUZBQ1RPUi1TTUFMTDogICAgICAgICAgMiAhZGVmYXVsdDtcbiRTQ0FMRS1GQUNUT1I6ICAgICAgICAgICAgICAgIDMgIWRlZmF1bHQ7XG4kU0NBTEUtRkFDVE9SLUxBUkdFOiAgICAgICAgICA0ICFkZWZhdWx0O1xuJFNDQUxFLUZBQ1RPUi1YTEFSR0U6ICAgICAgICAgNiAhZGVmYXVsdDtcbiRTQ0FMRS1GQUNUT1ItWFhMQVJHRTogICAgICAgIDggIWRlZmF1bHQ7XG5cbiRHTE9CQUwtU1BBQ0lORy1VTklUOiAgICAgICAgICRHTE9CQUwtQkFTRUxJTkUgKiAkU0NBTEUtRkFDVE9SICFkZWZhdWx0O1xuJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFhTTUFMTDogJEdMT0JBTC1CQVNFTElORSAqICRTQ0FMRS1GQUNUT1ItWFhTTUFMTCAhZGVmYXVsdDtcbiRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTDogICRHTE9CQUwtQkFTRUxJTkUgKiAkU0NBTEUtRkFDVE9SLVhTTUFMTCAhZGVmYXVsdDtcbiRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMOiAgICRHTE9CQUwtQkFTRUxJTkUgKiAkU0NBTEUtRkFDVE9SLVNNQUxMICFkZWZhdWx0O1xuJEdMT0JBTC1TUEFDSU5HLVVOSVQtTEFSR0U6ICAgJEdMT0JBTC1CQVNFTElORSAqICRTQ0FMRS1GQUNUT1ItTEFSR0UgIWRlZmF1bHQ7XG4kR0xPQkFMLVNQQUNJTkctVU5JVC1YTEFSR0U6ICAkR0xPQkFMLUJBU0VMSU5FICogJFNDQUxFLUZBQ1RPUi1YTEFSR0UgIWRlZmF1bHQ7XG4kR0xPQkFMLVNQQUNJTkctVU5JVC1YWExBUkdFOiAkR0xPQkFMLUJBU0VMSU5FICogJFNDQUxFLUZBQ1RPUi1YWExBUkdFICFkZWZhdWx0O1xuXG4kR0xPQkFMLUxJTkUtSEVJR0hUOiAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcblxuJEdMT0JBTC1CT1JERVItUkFESVVTOiAgICAgICAgOHB4ICFkZWZhdWx0O1xuJEdMT0JBTC1CT1JERVItUkFESVVTLVNNQUxMOiAgNHB4ICFkZWZhdWx0O1xuXG4kTEFZT1VULUdVVFRFUjogKFxuICAgIG51bGw6ICRHTE9CQUwtU1BBQ0lORy1VTklULFxuKSAhZGVmYXVsdDtcbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNTSEFET1dTXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBGbG93IGVsZXZhdGlvbiBjb25jZXB0OlxuICogaHR0cHM6Ly93d3cuZmlnbWEuY29tL2ZpbGUvNnFPQW5JMUpTRmIyQ0xUNEUzeGFoUS9GTE9XLS0tV2ViLSUyRi1TdHlsZXM/bm9kZS1pZD00NzYyJTNBMFxuICovXG5cbiRHTE9CQUwtQk9YLVNIQURPVy1PRkZTRVQtWDogMCAhZGVmYXVsdDtcbiRHTE9CQUwtQk9YLVNIQURPVy1PRkZTRVQtWTogMCAhZGVmYXVsdDtcbiRHTE9CQUwtQk9YLVNIQURPVy1DT0xPUjogICAgcmdiYSgwLCAwLCAwLCAwLjE1KSAhZGVmYXVsdDtcblxuJERST1AtU0hBRE9XLUNPTE9SOiAgICAgICAgICAkR0xPQkFMLUJPWC1TSEFET1ctQ09MT1IgIWRlZmF1bHQ7XG5cbiREUk9QLVNIQURPVy1TSVpFLVhTOiAgICAgICAgOHB4ICFkZWZhdWx0O1xuJERST1AtU0hBRE9XLVNJWkUtUzogICAgICAgICAyNXB4ICFkZWZhdWx0O1xuJERST1AtU0hBRE9XLVNJWkUtTTogICAgICAgICAyNXB4ICFkZWZhdWx0O1xuJERST1AtU0hBRE9XLVNJWkUtTDogICAgICAgICAzMnB4ICFkZWZhdWx0O1xuJERST1AtU0hBRE9XLVNJWkUtWEw6ICAgICAgICA2NHB4ICFkZWZhdWx0O1xuXG4kRFJPUC1TSEFET1ctT0ZGU0VULVhTOiAgICAgIDAgIWRlZmF1bHQ7XG4kRFJPUC1TSEFET1ctT0ZGU0VULVM6ICAgICAgIDJweCAhZGVmYXVsdDtcbiREUk9QLVNIQURPVy1PRkZTRVQtTTogICAgICAgNXB4ICFkZWZhdWx0O1xuJERST1AtU0hBRE9XLU9GRlNFVC1MOiAgICAgICA4cHggIWRlZmF1bHQ7XG4kRFJPUC1TSEFET1ctT0ZGU0VULVhMOiAgICAgIDI0cHggIWRlZmF1bHQ7XG5cbiREUk9QLVNIQURPVy1YUzogICAgICAgICAgICAgMCAkRFJPUC1TSEFET1ctT0ZGU0VULVhTICREUk9QLVNIQURPVy1TSVpFLVhTICREUk9QLVNIQURPVy1DT0xPUiAhZGVmYXVsdDtcbiREUk9QLVNIQURPVy1TOiAgICAgICAgICAgICAgMCAkRFJPUC1TSEFET1ctT0ZGU0VULVMgJERST1AtU0hBRE9XLVNJWkUtUyAkRFJPUC1TSEFET1ctQ09MT1IgIWRlZmF1bHQ7XG4kRFJPUC1TSEFET1ctTTogICAgICAgICAgICAgIDAgJERST1AtU0hBRE9XLU9GRlNFVC1NICREUk9QLVNIQURPVy1TSVpFLU0gJERST1AtU0hBRE9XLUNPTE9SICFkZWZhdWx0O1xuJERST1AtU0hBRE9XLUw6ICAgICAgICAgICAgICAwICREUk9QLVNIQURPVy1PRkZTRVQtTCAkRFJPUC1TSEFET1ctU0laRS1MICREUk9QLVNIQURPVy1DT0xPUiAhZGVmYXVsdDtcbiREUk9QLVNIQURPVy1YTDogICAgICAgICAgICAgMCAkRFJPUC1TSEFET1ctT0ZGU0VULVhMICREUk9QLVNIQURPVy1TSVpFLVhMICREUk9QLVNIQURPVy1DT0xPUiAhZGVmYXVsdDtcblxuJERST1AtU0hBRE9XLVBMQVktQlVUVE9OOiAgICBkcm9wLXNoYWRvdygkR0xPQkFMLUJPWC1TSEFET1ctT0ZGU0VULVggJEdMT0JBTC1CT1gtU0hBRE9XLU9GRlNFVC1ZICREUk9QLVNIQURPVy1TSVpFLVhTIHJnYmEoMCwgMCwgMCwgMC4zNSkpICFkZWZhdWx0O1xuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0JVVFRPTlNcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFsxXSBAVE9ETzogRGlmZmVyZW50IGRpc2FibGVkIGNvbG9ycyBhY2NvcmRpbmcgdG8gc3R5bGVndWlkZS5cbiAqICAgICAgICAgICAgQ3VycmVudGx5IG5vdCBjb25zaXN0ZW50IHRocm91Z2hvdXQgc3R5bGVndWlkZSwgbmVlZHMgdG8gYmVcbiAqICAgICAgICAgICAgY2xhcmlmaWVkIHdpdGggYnJhbmQuXG4gKi9cblxuJEJVVFRPTi1IRUlHSFQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NHB4ICFkZWZhdWx0O1xuXG4kQlVUVE9OLVBBRERJTkctVkVSVElDQUw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJEJVVFRPTi1QQURESU5HLUhPUklaT05UQUw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcblxuJEJVVFRPTi1JVEVNLVNQQUNJTkctVkVSVElDQUw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRCVVRUT04tSVRFTS1TUEFDSU5HLUhPUklaT05UQUw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuXG4kQlVUVE9OLUdST1VQLUlURU0tU1BBQ0lORy1WRVJUSUNBTDogICAgICAgICAgICAgICAgICAgICAgJEJVVFRPTi1JVEVNLVNQQUNJTkctVkVSVElDQUwgIWRlZmF1bHQ7XG4kQlVUVE9OLUdST1VQLUlURU0tU1BBQ0lORy1IT1JJWk9OVEFMOiAgICAgICAgICAgICAgICAgICAgJEJVVFRPTi1JVEVNLVNQQUNJTkctSE9SSVpPTlRBTCAhZGVmYXVsdDtcblxuJEJVVFRPTi1CQUNLR1JPVU5ELUNPTE9SOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQtU0VDT05EQVJZICFkZWZhdWx0O1xuJEJVVFRPTi1CQUNLR1JPVU5ELUNPTE9SLUhPVkVSOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQtU0VDT05EQVJZLUhPVkVSICFkZWZhdWx0O1xuJEJVVFRPTi1CQUNLR1JPVU5ELUNPTE9SLUFDVElWRTogICAgICAgICAgICAgICAgICAgICAgICAgICAkQlVUVE9OLUJBQ0tHUk9VTkQtQ09MT1ItSE9WRVIgIWRlZmF1bHQ7XG4kQlVUVE9OLUJBQ0tHUk9VTkQtQ09MT1ItRk9DVVM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCVVRUT04tQkFDS0dST1VORC1DT0xPUiAhZGVmYXVsdDtcbiRCVVRUT04tQkFDS0dST1VORC1DT0xPUi1ESVNBQkxFRDogICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLU9OLVNVUkZBQ0UtMTAwICFkZWZhdWx0OyAvLyBbMV1cblxuJEJVVFRPTi1GT05ULUNPTE9SOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQkFTRS1URVhUICFkZWZhdWx0O1xuJEJVVFRPTi1GT05ULUNPTE9SLURJU0FCTEVEOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItT04tU1VSRkFDRS0zMDAgIWRlZmF1bHQ7IC8vIFsxXVxuJEJVVFRPTi1GT05ULVdFSUdIVDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQgIWRlZmF1bHQ7XG5cbiRCVVRUT04tU0NBTEUtQUNUSVZFOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC45NSAhZGVmYXVsdDtcblxuJEJVVFRPTi1CT1JERVItUkFESVVTOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1MHB4ICFkZWZhdWx0O1xuXG4kQlVUVE9OLVRFWFQtU0laRTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRGUzAgIWRlZmF1bHQ7XG4kQlVUVE9OLUxJTkUtSEVJR0hUOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtTElORS1IRUlHSFQgIWRlZmF1bHQ7IC8vIF49IGBsaW5lLWhlaWdodDogMWAgYnV0IG5lZWRzIHZhbHVlIGluIHB4IGZvciB2YXJpb3VzIGNhbGN1bGF0aW9uc1xuJEJVVFRPTi1MRVRURVItU1BBQ0lORzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtTEVUVEVSLVNQQUNJTkcgIWRlZmF1bHQ7XG5cbiRCVVRUT04tSUNPTi1TSVpFOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ4c21hbGxcIiAhZGVmYXVsdDtcblxuJEJVVFRPTi1JQ09OLUlOVEVSQUNUSU9OLVNJWkU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQlVUVE9OLUhFSUdIVCAhZGVmYXVsdDtcbiRCVVRUT04tSUNPTi1JTlRFUkFDVElPTi1TSVpFLVNNQUxMOiAgICAgICAgICAgICAgICAgICAgICAgMzJweCAhZGVmYXVsdDsgLy8gVXNlZCBmb3IgeHhzbWFsbCBpY29uIHNpemVcblxuLy8gT24gbGlnaHQgYmFja2dyb3VuZCwgZS5nLiB3aGl0ZSwgZ3JheSAoZGVmYXVsdClcbiRCVVRUT04tSUNPTi1JTlRFUkFDVElPTi1CQUNLR1JPVU5ELUNPTE9SLUhPVkVSLU9OLUxJR0hUOiAgJENPTE9SLVRSQU5TUEFSRU5DWS1QUklNQVJZICFkZWZhdWx0O1xuLy8gT24gZGFyayBiYWNrZ3JvdW5kLCBlLmcuIGJyYW5kLCBiYXNlLWNvbG9yXG4kQlVUVE9OLUlDT04tSU5URVJBQ1RJT04tQkFDS0dST1VORC1DT0xPUi1IT1ZFUi1PTi1EQVJLOiAgICRDT0xPUi1UUkFOU1BBUkVOQ1ktVEVSVElBUlkgIWRlZmF1bHQ7XG5cbiRCVVRUT04tVEVYVC1JQ09OLVNQQUNJTkc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuXG4vLyBTRUNPTkRBUllcbiRCVVRUT04tU0VDT05EQVJZLUJBQ0tHUk9VTkQtQ09MT1I6ICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLU9OLVNVUkZBQ0UtNzAwICFkZWZhdWx0O1xuJEJVVFRPTi1TRUNPTkRBUlktQkFDS0dST1VORC1DT0xPUi1IT1ZFUjogICAgICAgICAgICAgICAgICAkQ09MT1ItT04tU1VSRkFDRS02MDAgIWRlZmF1bHQ7XG4kQlVUVE9OLVNFQ09OREFSWS1CQUNLR1JPVU5ELUNPTE9SLUFDVElWRTogICAgICAgICAgICAgICAgICRCVVRUT04tU0VDT05EQVJZLUJBQ0tHUk9VTkQtQ09MT1ItSE9WRVIgIWRlZmF1bHQ7XG4kQlVUVE9OLVNFQ09OREFSWS1CQUNLR1JPVU5ELUNPTE9SLUZPQ1VTOiAgICAgICAgICAgICAgICAgICRCVVRUT04tU0VDT05EQVJZLUJBQ0tHUk9VTkQtQ09MT1IgIWRlZmF1bHQ7XG4kQlVUVE9OLVNFQ09OREFSWS1CQUNLR1JPVU5ELUNPTE9SLURJU0FCTEVEOiAgICAgICAgICAgICAgICRCVVRUT04tQkFDS0dST1VORC1DT0xPUi1ESVNBQkxFRCAhZGVmYXVsdDsgLy8gWzFdXG5cbiRCVVRUT04tU0VDT05EQVJZLVRFWFQtQ09MT1I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJEJVVFRPTi1TRUNPTkRBUlktVEVYVC1DT0xPUi1IT1ZFUjogICAgICAgICAgICAgICAgICAgICAgICAkQlVUVE9OLVNFQ09OREFSWS1URVhULUNPTE9SICFkZWZhdWx0O1xuJEJVVFRPTi1TRUNPTkRBUlktVEVYVC1DT0xPUi1BQ1RJVkU6ICAgICAgICAgICAgICAgICAgICAgICAkQlVUVE9OLVNFQ09OREFSWS1URVhULUNPTE9SICFkZWZhdWx0O1xuJEJVVFRPTi1TRUNPTkRBUlktVEVYVC1DT0xPUi1ESVNBQkxFRDogICAgICAgICAgICAgICAgICAgICAkQlVUVE9OLUZPTlQtQ09MT1ItRElTQUJMRUQgIWRlZmF1bHQ7XG5cbi8vIFRFUlRJQVJZXG4kQlVUVE9OLVRFUlRJQVJZLUJBQ0tHUk9VTkQtQ09MT1I6ICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJEJVVFRPTi1URVJUSUFSWS1CQUNLR1JPVU5ELUNPTE9SLUhPVkVSOiAgICAgICAgICAgICAgICAgICAkQlVUVE9OLUlDT04tSU5URVJBQ1RJT04tQkFDS0dST1VORC1DT0xPUi1IT1ZFUi1PTi1MSUdIVCAhZGVmYXVsdDtcbiRCVVRUT04tVEVSVElBUlktQkFDS0dST1VORC1DT0xPUi1BQ1RJVkU6ICAgICAgICAgICAgICAgICAgJEJVVFRPTi1URVJUSUFSWS1CQUNLR1JPVU5ELUNPTE9SLUhPVkVSICFkZWZhdWx0O1xuJEJVVFRPTi1URVJUSUFSWS1CQUNLR1JPVU5ELUNPTE9SLUZPQ1VTOiAgICAgICAgICAgICAgICAgICAkQlVUVE9OLVRFUlRJQVJZLUJBQ0tHUk9VTkQtQ09MT1IgIWRlZmF1bHQ7XG5cblxuXG4vLyBHSE9TVFxuJEJVVFRPTi1HSE9TVC1CQUNLR1JPVU5ELUNPTE9SOiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRCVVRUT04tR0hPU1QtQkFDS0dST1VORC1DT0xPUi1IT1ZFUjogICAgICAgICAgICAgICAgICAgICAgJEJVVFRPTi1JQ09OLUlOVEVSQUNUSU9OLUJBQ0tHUk9VTkQtQ09MT1ItSE9WRVItT04tTElHSFQgIWRlZmF1bHQ7XG4kQlVUVE9OLUdIT1NULUJBQ0tHUk9VTkQtQ09MT1ItQUNUSVZFOiAgICAgICAgICAgICAgICAgICAgICRCVVRUT04tR0hPU1QtQkFDS0dST1VORC1DT0xPUi1IT1ZFUiAhZGVmYXVsdDtcbiRCVVRUT04tR0hPU1QtQkFDS0dST1VORC1DT0xPUi1GT0NVUzogICAgICAgICAgICAgICAgICAgICAgJEJVVFRPTi1HSE9TVC1CQUNLR1JPVU5ELUNPTE9SICFkZWZhdWx0O1xuJEJVVFRPTi1HSE9TVC1CT1JERVItV0lEVEg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAycHggIWRlZmF1bHQ7XG4kQlVUVE9OLUdIT1NULUJPUkRFUi1TVFlMRTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvbGlkICFkZWZhdWx0O1xuJEJVVFRPTi1HSE9TVC1CT1JERVItQ09MT1I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q29sb3IgIWRlZmF1bHQ7XG5cbiRCVVRUT04tR0hPU1QtRk9OVC1DT0xPUjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLU9OLVNVUkZBQ0UtNzAwICFkZWZhdWx0O1xuXG5cbi8vIEdIT1NUIE9OIERBUksgQkFDS0dST1VORFxuJEJVVFRPTi1HSE9TVC1PTi1EQVJLLVNVUkZBQ0UtQkFDS0dST1VORC1DT0xPUjogICAgICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRCVVRUT04tR0hPU1QtT04tREFSSy1TVVJGQUNFLUJBQ0tHUk9VTkQtQ09MT1ItSE9WRVI6ICAgICAgJENPTE9SLU9OLVNVUkZBQ0UtNzAwICFkZWZhdWx0O1xuJEJVVFRPTi1HSE9TVC1PTi1EQVJLLVNVUkZBQ0UtQkFDS0dST1VORC1DT0xPUi1BQ1RJVkU6ICAgICAkQlVUVE9OLUdIT1NULU9OLURBUkstU1VSRkFDRS1CQUNLR1JPVU5ELUNPTE9SLUhPVkVSICFkZWZhdWx0O1xuJEJVVFRPTi1HSE9TVC1PTi1EQVJLLVNVUkZBQ0UtQkFDS0dST1VORC1DT0xPUi1GT0NVUzogICAgICAkQlVUVE9OLUdIT1NULU9OLURBUkstU1VSRkFDRS1CQUNLR1JPVU5ELUNPTE9SICFkZWZhdWx0O1xuJEJVVFRPTi1HSE9TVC1PTi1EQVJLLVNVUkZBQ0UtQk9SREVSLVdJRFRIOiAgICAgICAgICAgICAgICAycHggIWRlZmF1bHQ7XG4kQlVUVE9OLUdIT1NULU9OLURBUkstU1VSRkFDRS1CT1JERVItU1RZTEU6ICAgICAgICAgICAgICAgIHNvbGlkICFkZWZhdWx0O1xuJEJVVFRPTi1HSE9TVC1PTi1EQVJLLVNVUkZBQ0UtQk9SREVSLUNPTE9SOiAgICAgICAgICAgICAgICBjdXJyZW50Q29sb3IgIWRlZmF1bHQ7XG5cbiRCVVRUT04tR0hPU1QtT04tREFSSy1GT05ULUNPTE9SOiAgICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuXG5cblxuLy8gTElOS1xuJEJVVFRPTi1MSU5LLVRFWFQtQ09MT1I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQkFTRS1URVhUICFkZWZhdWx0O1xuJEJVVFRPTi1MSU5LLVRFWFQtQ09MT1ItSE9WRVI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kQlVUVE9OLUxJTkstVEVYVC1DT0xPUi1GT0NVUzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCVVRUT04tTElOSy1URVhULUNPTE9SICFkZWZhdWx0O1xuJEJVVFRPTi1MSU5LLVRFWFQtQ09MT1ItRElTQUJMRUQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItT04tU1VSRkFDRS0yMDAgIWRlZmF1bHQ7IC8vIFsxXVxuXG4kQlVUVE9OLUxJTkstSUNPTi1DT0xPUjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCVVRUT04tTElOSy1URVhULUNPTE9SICFkZWZhdWx0O1xuJEJVVFRPTi1MSU5LLUlDT04tQ09MT1ItSE9WRVI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQlVUVE9OLUxJTkstVEVYVC1DT0xPUi1IT1ZFUiAhZGVmYXVsdDtcbiRCVVRUT04tTElOSy1JQ09OLUNPTE9SLUZPQ1VTOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJVVFRPTi1MSU5LLUlDT04tQ09MT1IgIWRlZmF1bHQ7XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjQ0FSRC1QQVRURVJOUyAoU2V0dGluZ3MpXG4vL1xuLy8gICAgIEdsb2JhbCBzZXR0aW5ncyBmb3IgY2FyZC1saWtlIHBhdHRlcm5zXG4vLyAgICAgdGhhdCBzaGFyZSB2aXN1YWwgcHJvcGVydGllcy5cbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AdXNlIFwic2FzczptYXBcIjtcblxuJENBUkQtUEFUVEVSTi1QQURESU5HOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJENBUkQtUEFUVEVSTi1QQURESU5HLUhPUklaT05UQUw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDQVJELVBBVFRFUk4tUEFERElORyAhZGVmYXVsdDtcbiRDQVJELVBBVFRFUk4tUEFERElORy1WRVJUSUNBTDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ0FSRC1QQVRURVJOLVBBRERJTkcgIWRlZmF1bHQ7XG4kQ0FSRC1QQVRURVJOLU1PRFVMRS1TUEFDSU5HOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuXG4kQ0FSRC1QQVRURVJOLUJBQ0tHUk9VTkQtQ09MT1I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLVNVUkZBQ0UtUFJJTUFSWSAhZGVmYXVsdDtcblxuJENBUkQtUEFUVEVSTi1URVhULUNPTE9SOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG5cbi8vIFJlc3BvbnNpdmUgZm9udCBzaXplIG9wdC1vdXQuXG4kQ0FSRC1QQVRURVJOLVRJVExFLVNJWkU6IChcbiAgICBudWxsOiBtYXAuZ2V0KCRGUzIsIG51bGwpLFxuKSAhZGVmYXVsdDtcblxuJENBUkQtUEFUVEVSTi1USVRMRS1XRUlHSFQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCAhZGVmYXVsdDtcbiRDQVJELVBBVFRFUk4tVElUTEUtQ09MT1I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ0FSRC1QQVRURVJOLVRFWFQtQ09MT1IgIWRlZmF1bHQ7XG5cbi8vIFJlc3BvbnNpdmUgZm9udCBzaXplIG9wdC1vdXQuXG4kQ0FSRC1QQVRURVJOLVNVQlRJVExFLVNJWkU6IChcbiAgICBudWxsOiBtYXAuZ2V0KCRGUzAsIG51bGwpLFxuKSAhZGVmYXVsdDtcblxuJENBUkQtUEFUVEVSTi1TVUJUSVRMRS1XRUlHSFQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDQVJELVBBVFRFUk4tVElUTEUtV0VJR0hUICFkZWZhdWx0O1xuXG4kQ0FSRC1QQVRURVJOLUJPUkRFUi1SQURJVVM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1CT1JERVItUkFESVVTICFkZWZhdWx0O1xuXG4kQ0FSRC1QQVRURVJOLUJPUkRFUi1XSURUSDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMXB4ICFkZWZhdWx0O1xuJENBUkQtUEFUVEVSTi1CT1JERVItU1RZTEU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvbGlkICFkZWZhdWx0O1xuJENBUkQtUEFUVEVSTi1CT1JERVItQ09MT1I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CT1JERVIgIWRlZmF1bHQ7XG4kQ0FSRC1QQVRURVJOLUJPUkRFUi1DT0xPUi1IT1ZFUjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLU9OLVNVUkZBQ0UtMzAwICFkZWZhdWx0O1xuJENBUkQtUEFUVEVSTi1CT1JERVItQ09MT1ItU0VMRUNURUQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiRDQVJELVBBVFRFUk4tQk9SREVSLUNPTE9SLVNFTEVDVEVELUhPVkVSOiAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQtSE9WRVIgIWRlZmF1bHQ7XG4kQ0FSRC1QQVRURVJOLUJPUkRFUjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJENBUkQtUEFUVEVSTi1CT1JERVItV0lEVEggJENBUkQtUEFUVEVSTi1CT1JERVItU1RZTEUgJENBUkQtUEFUVEVSTi1CT1JERVItQ09MT1IgIWRlZmF1bHQ7XG5cbiRDQVJELVBBVFRFUk4tSUNPTi1TSVpFOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXJnZSAhZGVmYXVsdDtcbiRDQVJELVBBVFRFUk4tSUNPTi1DT0xPUjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ0FSRC1QQVRURVJOLVRFWFQtQ09MT1IgIWRlZmF1bHQ7XG5cbiRDQVJELVBBVFRFUk4tU0VMRUNULUlORElDQVRPUi1CQUNLR1JPVU5ELVNJWkU6ICAgICAgICAgICAgICAgICBtYXAuZ2V0KCRJQ09OLVJPVU5ELUZVTEwtU0laRVMsIHhzbWFsbCkgIWRlZmF1bHQ7XG4kQ0FSRC1QQVRURVJOLVNFTEVDVC1JTkRJQ0FUT1ItQkFDS0dST1VORC1DT0xPUjogICAgICAgICAgICAgICAgJENPTE9SLVNVUkZBQ0UtU0VDT05EQVJZICFkZWZhdWx0O1xuJENBUkQtUEFUVEVSTi1TRUxFQ1QtSU5ESUNBVE9SLUJBQ0tHUk9VTkQtQ09MT1ItSE9WRVI6ICAgICAgICAgICRDT0xPUi1PTi1TVVJGQUNFLTEwMCAhZGVmYXVsdDtcbiRDQVJELVBBVFRFUk4tU0VMRUNULUlORElDQVRPUi1CQUNLR1JPVU5ELUNPTE9SLVNFTEVDVEVEOiAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kQ0FSRC1QQVRURVJOLVNFTEVDVC1JTkRJQ0FUT1ItQkFDS0dST1VORC1DT0xPUi1TRUxFQ1RFRC1IT1ZFUjogJENPTE9SLUJSQU5ELUhPVkVSICFkZWZhdWx0O1xuXG4kQ0FSRC1QQVRURVJOLVNFTEVDVC1JTkRJQ0FUT1ItSUNPTjogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VtYW50aWMtY2hlY2ttYXJrICFkZWZhdWx0O1xuJENBUkQtUEFUVEVSTi1TRUxFQ1QtSU5ESUNBVE9SLUlDT04tU0laRTogICAgICAgICAgICAgICAgICAgICAgIHh4c21hbGwgIWRlZmF1bHQ7XG4kQ0FSRC1QQVRURVJOLVNFTEVDVC1JTkRJQ0FUT1ItSUNPTi1DT0xPUjogICAgICAgICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuXG4kQ0FSRC1QQVRURVJOLUlOQUNUSVZFLUxBWUVSLUJBQ0tHUk9VTkQtQ09MT1I6ICAgICAgICAgICAgICAgICAgJENPTE9SLUlOQUNUSVZFLUxBWUVSLUNPTE9SICFkZWZhdWx0O1xuJENBUkQtUEFUVEVSTi1JTkFDVElWRS1MQVlFUi1PUEFDSVRZOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1JTkFDVElWRS1MQVlFUi1PUEFDSVRZICFkZWZhdWx0O1xuXG4vKipcbiAqIEBUT0RPOlxuICogLSBpY29uIGFsaWdubWVudD9cbiAqL1xuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0JBU0UgU0VUVElOR1Ncbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kR0xPQkFMLUZPTlQtU0laRTogICAgICAgICAgICAxOHB4ICFkZWZhdWx0O1xuXG4kR0xPQkFMLUJBU0VMSU5FOiAgICAgICAgICAgICA4cHggIWRlZmF1bHQ7XG5cbi8qKlxuICogU3BhY2luZ3MgYXJlIHJlcXVpcmVkIHNldHRpbmdzIGZvciBhbGwgYnJhbmRzIChYWFNNQUxMIC0gWFhMQVJHRSkuXG4gKiAtIFJlcXVpcmVkIHRvIGhhdmUgYWxsIHNjYWxlcyBhdmFpbGFibGUgaW4gYWxsIGJyYW5kcyAobXVsdGlicmFuZCAmIG9uZS1tYXJrdXAtYXBwcm9hY2gpLlxuICogLSBVc2VkIGZvciBnZW5lcmF0aW5nIG9mIHNwYWNpbmcgdXRpbGl0aWVzLlxuICovXG5cbiRTQ0FMRS1GQUNUT1ItWFhTTUFMTDogICAgICAgIDAuNSAhZGVmYXVsdDtcbiRTQ0FMRS1GQUNUT1ItWFNNQUxMOiAgICAgICAgIDEgIWRlZmF1bHQ7XG4kU0NBTEUtRkFDVE9SLVNNQUxMOiAgICAgICAgICAyICFkZWZhdWx0O1xuJFNDQUxFLUZBQ1RPUjogICAgICAgICAgICAgICAgMyAhZGVmYXVsdDtcbiRTQ0FMRS1GQUNUT1ItTEFSR0U6ICAgICAgICAgIDQgIWRlZmF1bHQ7XG4kU0NBTEUtRkFDVE9SLVhMQVJHRTogICAgICAgICA4ICFkZWZhdWx0O1xuJFNDQUxFLUZBQ1RPUi1YWExBUkdFOiAgICAgICAgJFNDQUxFLUZBQ1RPUi1YTEFSR0UgIWRlZmF1bHQ7IC8vZmFsbGJhY2sgdG8gWExBUkdFIGlmIG5vdCBkZWZpbmVkIGluIHN1Yi1icmFuZHNcblxuXG4kR0xPQkFMLVNQQUNJTkctVU5JVDogICAgICAgICAkR0xPQkFMLUJBU0VMSU5FICogJFNDQUxFLUZBQ1RPUiAhZGVmYXVsdDtcbiRHTE9CQUwtU1BBQ0lORy1VTklULVhYU01BTEw6ICRHTE9CQUwtQkFTRUxJTkUgKiAkU0NBTEUtRkFDVE9SLVhYU01BTEwgIWRlZmF1bHQ7XG4kR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEw6ICAkR0xPQkFMLUJBU0VMSU5FICogJFNDQUxFLUZBQ1RPUi1YU01BTEwgIWRlZmF1bHQ7XG4kR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTDogICAkR0xPQkFMLUJBU0VMSU5FICogJFNDQUxFLUZBQ1RPUi1TTUFMTCAhZGVmYXVsdDtcbiRHTE9CQUwtU1BBQ0lORy1VTklULUxBUkdFOiAgICRHTE9CQUwtQkFTRUxJTkUgKiAkU0NBTEUtRkFDVE9SLUxBUkdFICFkZWZhdWx0O1xuJEdMT0JBTC1TUEFDSU5HLVVOSVQtWExBUkdFOiAgJEdMT0JBTC1CQVNFTElORSAqICRTQ0FMRS1GQUNUT1ItWExBUkdFICFkZWZhdWx0O1xuJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFhMQVJHRTogJEdMT0JBTC1CQVNFTElORSAqICRTQ0FMRS1GQUNUT1ItWFhMQVJHRSAhZGVmYXVsdDsgLy8gbm90IGF2YWlsYWJsZSBpbiBfdXRpbGl0aWVzLnNwYWNpbmdzLnNldHRpbmdzLnNjc3NcblxuJEdMT0JBTC1MSU5FLUhFSUdIVDogICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG5cbiRHTE9CQUwtQk9SREVSLVJBRElVUzogICAgICAgIDAgIWRlZmF1bHQ7XG5cbiRHTE9CQUwtQVJST1ctU0laRTogICAgICAgICAgIDEwcHggIWRlZmF1bHQ7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjRk9STVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kR0xPQkFMLUlOUFVULUhFSUdIVDogICAgICAgICAgICAgICAgICAgICAgICAgNDhweCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtUEFERElORy1IT1JJWk9OVEFMOiAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQkFDS0dST1VORDogICAgICAgICAgICAgICAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJBQ0tHUk9VTkQtRElTQUJMRUQ6ICAgICAgICAgICAgJENPTE9SLVBBTEUgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJBQ0tHUk9VTkQtUkVBRE9OTFk6ICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1CT1JERVItQk9UVE9NLU9OTFk6ICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1CT1JERVItV0lEVEg6ICAgICAgICAgICAgICAgICAgIDFweCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQk9SREVSLVdJRFRILUZPQ1VTOiAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUJPUkRFUi1XSURUSCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQk9SREVSLVNUWUxFOiAgICAgICAgICAgICAgICAgICBzb2xpZCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQk9SREVSLUNPTE9SOiAgICAgICAgICAgICAgICAgICAkQ09MT1ItU1VCVExFICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1CT1JERVI6ICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtQk9SREVSLVdJRFRIICRHTE9CQUwtSU5QVVQtQk9SREVSLVNUWUxFICRHTE9CQUwtSU5QVVQtQk9SREVSLUNPTE9SICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1CT1JERVItQ09MT1ItSE9WRVI6ICAgICAgICAgICAgICRDT0xPUi1ISUdITElHSFQgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJPUkRFUi1DT0xPUi1GT0NVUzogICAgICAgICAgICAgJENPTE9SLUhJR0hMSUdIVCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQk9SREVSLUNPTE9SLUVSUk9SOiAgICAgICAgICAgICAkQ09MT1ItQUxFUlQgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJPUkRFUi1DT0xPUi1FUlJPUi1IT1ZFUjogICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItQ09MT1ItRVJST1IgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJPUkRFUi1DT0xPUi1TVUNDRVNTOiAgICAgICAgICAgJENPTE9SLVNVQ0NFU1MgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJPUkRFUi1DT0xPUi1TVUNDRVNTLUhPVkVSOiAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItQ09MT1ItU1VDQ0VTUyAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQk9SREVSLUNPTE9SLURJU0FCTEVEOiAgICAgICAgICAkQ09MT1ItSU5BQ1RJVkUgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJPUkRFUi1DT0xPUi1SRUFET05MWTogICAgICAgICAgJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1CT1JERVItUkFESVVTOiAgICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUZPTlQtRkFNSUxZOiAgICAgICAgICAgICAgICAgICAgJEJBU0UtRk9OVC1GQU1JTFkgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUZPTlQtU0laRTogICAgICAgICAgICAgICAgICAgICAgJEZTMCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtRk9OVC1XRUlHSFQ6ICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUZPTlQtQ09MT1I6ICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtRk9OVC1DT0xPUi1FUlJPUjogICAgICAgICAgICAgICAkQ09MT1ItQkFTRS1URVhUICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1GT05ULUNPTE9SLVNVQ0NFU1M6ICAgICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUZPTlQtQ09MT1ItRElTQUJMRUQ6ICAgICAgICAgICAgJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1GT05ULUNPTE9SLVJFQURPTkxZOiAgICAgICAgICAgICRDT0xPUi1JTkFDVElWRSAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtRk9OVC1DT0xPUi1QTEFDRUhPTERFUjogICAgICAgICAkQ09MT1ItSU5BQ1RJVkUgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUZPTlQtV0VJR0hULVBMQUNFSE9MREVSOiAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1SRUdVTEFSICFkZWZhdWx0O1xuXG4kR0xPQkFMLUlOUFVULUxBQkVMLVNJWkU6ICAgICAgICAgICAgICAgICAgICAgJEZTLTEgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUxBQkVMLUZPTlQtV0VJR0hUOiAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtTEFCRUwtQ09MT1I6ICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQkFTRS1URVhUICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1MQUJFTC1DT0xPUi1IT1ZFUjogICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUxBQkVMLUNPTE9SLVNVQ0NFU1M6ICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1MQUJFTC1DT0xPUiAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtTEFCRUwtQ09MT1ItQUNUSVZFOiAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUxBQkVMLUNPTE9SICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1MQUJFTC1DT0xPUi1GT0NVUzogICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUxBQkVMLUNPTE9SLUVSUk9SOiAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1MQUJFTC1DT0xPUiAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtTEFCRUwtQ09MT1ItRElTQUJMRUQ6ICAgICAgICAgICAkR0xPQkFMLUlOUFVULUxBQkVMLUNPTE9SICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1MQUJFTC1DT0xPUi1SRUFET05MWTogICAgICAgICAgICRHTE9CQUwtSU5QVVQtTEFCRUwtQ09MT1IgIWRlZmF1bHQ7XG5cbiRHTE9CQUwtSU5QVVQtVEVYVEFSRUEtUEFERElORy1WRVJUSUNBTDogICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtVEVYVEFSRUEtUEFERElORy1IT1JJWk9OVEFMOiAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtVEVYVEFSRUEtRk9OVC1TSVpFOiAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUZPTlQtU0laRSAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtVEVYVEFSRUEtTElORS1IRUlHSFQ6ICAgICAgICAgICAkR0xPQkFMLUxJTkUtSEVJR0hUICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1URVhUQVJFQS1CT1JERVItQk9UVE9NLU9OTFk6ICAgICRHTE9CQUwtSU5QVVQtQk9SREVSLUJPVFRPTS1PTkxZICFkZWZhdWx0O1xuXG4kR0xPQkFMLUlOUFVULUFERE9OLVBBRERJTkctSE9SSVpPTlRBTDogICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1BRERPTi1GT05ULVNJWkU6ICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtRk9OVC1TSVpFICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1BRERPTi1GT05ULUNPTE9SOiAgICAgICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUFERE9OLUZPTlQtQ09MT1ItTk8tQkc6ICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1BRERPTi1GT05ULUNPTE9SLUVSUk9SOiAgICAgICAgICRHTE9CQUwtSU5QVVQtQURET04tRk9OVC1DT0xPUiAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQURET04tRk9OVC1DT0xPUi1TVUNDRVNTOiAgICAgICAkR0xPQkFMLUlOUFVULUFERE9OLUZPTlQtQ09MT1IgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUFERE9OLUZPTlQtQ09MT1ItTk8tQkctRVJST1I6ICAgJENPTE9SLUFMRVJUICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1BRERPTi1GT05ULUNPTE9SLU5PLUJHLVNVQ0NFU1M6ICRDT0xPUi1TVUNDRVNTICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1BRERPTi1GT05ULUNPTE9SLURJU0FCTEVEOiAgICAgIHJnYmEoJENPTE9SLUJBU0UtVEVYVCwgMC41KSAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQURET04tRk9OVC1DT0xPUi1SRUFET05MWTogICAgICAkR0xPQkFMLUlOUFVULUZPTlQtQ09MT1ItUkVBRE9OTFkgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUFERE9OLUJBQ0tHUk9VTkQ6ICAgICAgICAgICAgICAgJENPTE9SLVBBTEUgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUFERE9OLUJBQ0tHUk9VTkQtRElTQUJMRUQ6ICAgICAgJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1BRERPTi1CQUNLR1JPVU5ELVJFQURPTkxZOiAgICAgICRDT0xPUi1JTkFDVElWRSAhZGVmYXVsdDtcbi8vIENhbm5vdCB1c2UgdGhlIGBpY29uLXNpemUoKWAgZnVuY3Rpb24gaGVyZSwgc2luY2UgaXQncyBub3QgYXZhaWxhYmxlIGluXG4vLyBzZXR0aW5ncyBsYXllciwgc28gd2UgYXNzaWduIGp1c3QgdGhlIHNpemUgcGFyYW1ldGVyIGhlcmUgYW5kIHVzZSB0aGlzIGluXG4vLyB0aGUgYGljb24tc2l6ZSgpYCBmdW5jdGlvbiBjYWxsIGxhdGVyIG9uIGluIGNvbXBvbmVudHMgbGF5ZXIuXG4kR0xPQkFMLUlOUFVULUFERE9OLUlDT04tU0laRTogICAgICAgICAgICAgICAgc21hbGwgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUFERE9OLUZBS0UtTElORS1XSURUSDogICAgICAgICAgNHB4ICFkZWZhdWx0O1xuXG4kR0xPQkFMLUlOUFVULVNFTEVDVC1JQ09OLVNJWkU6ICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1BRERPTi1JQ09OLVNJWkUgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULU9QVElPTi1DT0xPUjogICAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtT1BUSU9OLUNPTE9SLURJU0FCTEVEOiAgICAgICAgICByZ2JhKCRDT0xPUi1CQVNFLVRFWFQsIDAuNSkgIWRlZmF1bHQ7XG5cbiRHTE9CQUwtSU5QVVQtQ09VTlRFUi1GT05ULVNJWkU6ICAgICAgICAgICAgICAkRlMtMiAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQ09VTlRFUi1GT05ULVdFSUdIVDogICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG4vLyBUbyByZW1haW4gcmVsYXRpdmUgdG8gdGhlIHNwYWNpbmcgb2YgYSBicmFuZCwgYSBzcGFjaW5nIHVuaXQgd2FzIGRpdmlkZWQuXG4vLyAoV2Ugd291bGQgcHJvYmFibHkgbmVlZCBhbiBldmVuIHNtYWxsZXIgc3BhY2luZyB2YXJpYWJsZSBoZXJlLilcbiRHTE9CQUwtSU5QVVQtQ09VTlRFUi1TUEFDSU5HLVRPUDogICAgICAgICAgICAoJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFhTTUFMTCAqIDAuNSkgIWRlZmF1bHQ7XG4vLyBXZSBhcmUgdXNpbmcgYHJlbWAgYmVjYXVzZSB0aGUgc3BhY2luZyBzaG91bGQgZGVwZW5kIG9uIHRoZSBiYXNlIGZvbnQgc2l6ZVxuLy8gYW5kIG5vdCB0aGUgZ2xvYmFsIHNwYWNpbmdcbiRHTE9CQUwtSU5QVVQtQ09VTlRFUi1JTlBVVC1TUEFDSU5HLUJPVFRPTTogICAxcmVtICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1DT1VOVEVSLUNPTE9SOiAgICAgICAgICAgICAgICAgICRDT0xPUi1TVUJUTEUgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUNPVU5URVItQ09MT1ItQUxFUlQ6ICAgICAgICAgICAgJENPTE9SLUFMRVJUICFkZWZhdWx0O1xuXG4kR0xPQkFMLUZJRUxEU0VULUlURU0tU1BBQ0lORzogICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjUEFHRS1XUkFQIChTZXR0aW5ncylcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vLyBAc2Fzcy1leHBvcnQtc2VjdGlvbj1cInRvb2xzUGFnZVdyYXBcIlxuXG4vLyBTZXQgYWNjb3JkaW5nIHRvIHN0eWxlZ3VpZGU6XG4vLyBodHRwczovL3d3dy5maWdtYS5jb20vZmlsZS82cU9BbkkxSlNGYjJDTFQ0RTN4YWhRL0ZMT1ctLS1XZWItJTJGLVN0eWxlcz9ubyUyMCUyMCUyMCUyMCUyMGUtaWQ9MzM5JTNBMlxuJHBhZ2Utd3JhcC13aWR0aDogMTI0OHB4ICFkZWZhdWx0O1xuXG4vLyBAZW5kLXNhc3MtZXhwb3J0LXNlY3Rpb25cblxuLyoqXG4gKiBbMV0gQWRkIHNwYWNpbmcgb2YgOTZweCAobm90IHBhcnQgb2YgZ2xvYmFsIHNwYWNpbmcgc2NhbGUpIGFjY29yZGluZyB0byBzdHlsZWd1aWRlOlxuICogICAgIGh0dHBzOi8vd3d3LmZpZ21hLmNvbS9maWxlLzZxT0FuSTFKU0ZiMkNMVDRFM3hhaFEvRkxPVy0tLVdlYi0lMkYtU3R5bGVzP25vZGUtaWQ9NDA4MyUzQTBcbiAqIFsyXSBBZGQgc3BhY2luZyBvZiAxMnB4IChub3QgcGFydCBvZiBnbG9iYWwgc3BhY2luZyBzY2FsZSkgYWNjb3JkaW5nIHRvIHN0eWxlZ3VpZGU6XG4gKiAgICAgaHR0cHM6Ly93d3cuZmlnbWEuY29tL2ZpbGUvNnFPQW5JMUpTRmIyQ0xUNEUzeGFoUS9GTE9XLS0tV2ViLSUyRi1TdHlsZXM/bm9kZS1pZD00MDgzJTNBMFxuICovXG5cbiRwYWdlLXdyYXAtcGFkZGluZy1ob3Jpem9udGFsOiAoXG4gICAgbnVsbDogJEdMT0JBTC1TUEFDSU5HLVVOSVQtWExBUkdFICogMiwgLyogWzFdICovXG4gICAgXCJtXCI6ICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YTEFSR0UsXG4gICAgXCJzXCI6ICAkR0xPQkFMLVNQQUNJTkctVU5JVCxcbiAgICBcInhzXCI6ICRHTE9CQUwtU1BBQ0lORy1VTklUICogMC41IC8qIFsyXSAqL1xuKSAhZGVmYXVsdDtcbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNCUk9XU0VSLUhBQ0tTXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyogc3R5bGVsaW50LWRpc2FibGUgc2Nzcy9tZWRpYS1mZWF0dXJlLXZhbHVlLWRvbGxhci12YXJpYWJsZSAqL1xuXG4vLyBUYXJnZXQgc3BlY2lmaWMgYnJvd3NlcnMgd2l0aCBDU1Mgb25seS5cbi8vIGh0dHBzOi8vYnJvd3NlcmhhY2tzLmNvbS9cblxuLy8gU2FmYXJpIDkrXG4vLyBodHRwczovL2Jyb3dzZXJzdHJhbmdlbmVzcy5naXRodWIuaW8vY3NzX2hhY2tzLmh0bWwjc2FmYXJpXG5AbWl4aW4gc2FmYXJpLW9ubHkoKSB7XG4gICAgQHN1cHBvcnRzICgtd2Via2l0LWh5cGhlbnM6bm9uZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3ZWJraXQtb25seSgpIHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWVkaWEtZmVhdHVyZS1jb2xvbi1zcGFjZS1hZnRlciAqL1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MCkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmZi1vbmx5KCkge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jdGlvbi11cmwtcXVvdGVzICovXG4gICAgQC1tb3otZG9jdW1lbnQgdXJsLXByZWZpeCgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLyBJRSBDU1MgSE9PS1xuLy8gVGFyZ2V0IG9ubHkgSUUxMCtcbi8vIEBERVBSRUNBVEVEIExFR0FDWSBCUk9XU0VSXG5AbWl4aW4gaWUtb25seSgpIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8vIEVkZ2UgQnJvd3NlciAxMisgZm9yIFdpbmRvd3MgMTAgKGFsbCBNUyBFZGdlKVxuLy8gaHR0cHM6Ly9icm93c2Vyc3RyYW5nZW5lc3MuYml0YnVja2V0Lm9yZy9jc3NfaGFja3MuaHRtbCNlZGdlXG4vLyBAREVQUkVDQVRFRCBMRUdBQ1kgQlJPV1NFUlxuQG1peGluIGVkZ2Utb25seSgpIHtcbiAgICBAc3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246YXV0bykge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIHN0eWxlbGludC1lbmFibGUgc2Nzcy9tZWRpYS1mZWF0dXJlLXZhbHVlLWRvbGxhci12YXJpYWJsZSAqL1xuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0NMRUFSRklYXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyogc3R5bGVsaW50LWRpc2FibGUgaXRjc3Mvbm8tYXQtaW1wb3J0YW50ICovXG5cbi8vIE1peGluIHRvIGRyb3AgbWljcm8gY2xlYXJmaXggaW50byBhIHNlbGVjdG9yLiBGdXJ0aGVyIHJlYWRpbmc6XG4vLyBodHRwczovL3d3dy5jc3Ntb2pvLmNvbS90aGUtdmVyeS1sYXRlc3QtY2xlYXJmaXgtcmVsb2FkZWQvXG4vL1xuLy8gLnVzYWdlIHtcbi8vICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbi8vIH1cbkBtaXhpbiBjbGVhcmZpeCgpIHtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIiAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICBjbGVhcjogYm90aCAhaW1wb3J0YW50O1xuICAgIH1cblxufVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlIGl0Y3NzL25vLWF0LWltcG9ydGFudCAqL1xuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0ZMRVgtQUxJR05NRU5UXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBHZXQgYWxpZ25tZW50IGZvciBmbGV4Ym94LWJhc2VkIG1vZHVsZXMuXG4gKiBSZW1hcHMgYWxpZ25tZW50IChjZW50ZXIsIGxlZnQsIHJpZ2h0KSB0byBmbGV4Ym94IHZhbHVlcy5cbiAqL1xuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXJlY3Rpb24gaG9yaXpvbnRhbHx2ZXJ0aWNhbFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYWxpZ24gaG9yaXpvbnRhbDogbGVmdHxjZW50ZXJ8cmlnaHQsIHZlcnRpY2FsOiB0b3B8Y2VudGVyfGJvdHRvbVxuLy8vIEByZXR1cm4ge1N0cmluZ30gcmUtbWFwcGVkIGFsaWdubWVudCB2YWx1ZVxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBmbGV4LWFsaWdubWVudChcImxlZnRcIikgPT4gZmxleC1zdGFydFxuLy8vIGZsZXgtYWxpZ25tZW50KFwiY2VudGVyXCIpID0+IGNlbnRlclxuLy8vIGZsZXgtYWxpZ25tZW50KFwiYm90dG9tXCIsIFwidmVydGljYWxcIikgPT4gZmxleC1ib3R0b21cbkBmdW5jdGlvbiBmbGV4LWFsaWdubWVudCgkYWxpZ24sICRkaXJlY3Rpb246IFwiaG9yaXpvbnRhbFwiKSB7XG4gICAgQGlmICgkYWxpZ24gPT0gXCJjZW50ZXJcIikge1xuICAgICAgICBAcmV0dXJuIGNlbnRlcjtcbiAgICB9XG5cbiAgICBAaWYgKCRkaXJlY3Rpb24gPT0gXCJob3Jpem9udGFsXCIpIHtcbiAgICAgICAgQGlmICgkYWxpZ24gPT0gXCJsZWZ0XCIpIHtcbiAgICAgICAgICAgIEByZXR1cm4gZmxleC1zdGFydDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGFsaWduID09IFwicmlnaHRcIikge1xuICAgICAgICAgICAgQHJldHVybiBmbGV4LWVuZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJGRpcmVjdGlvbiA9PSBcInZlcnRpY2FsXCIpIHtcbiAgICAgICAgQGlmICgkYWxpZ24gPT0gXCJ0b3BcIikge1xuICAgICAgICAgICAgQHJldHVybiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkYWxpZ24gPT0gXCJib3R0b21cIikge1xuICAgICAgICAgICAgQHJldHVybiBmbGV4LWVuZDtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0RJU0FCTEUgVE9VQ0ggSElHSExJR0hUXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gUmVtb3ZlIGhpZ2hsaWdodGluZyB0aGUgdG91Y2hpbmcgYXJlYS5cbi8vIFVzZWZ1bCB3aGVuIHlvdSB3YW50IHRvIGRpc2FibGUgZGlzdHJhY3RpbmcgaGlnaGxpZ2h0cyBvbiBob3Zlci1lZmZlY3RzLCBldGMuXG5cbi8qKlxuICogWzFdIGB0cmFuc3BhcmVudGAgZG9lcyBub3Qgd29yayBpbiBpT1MuXG4gKi9cbkBtaXhpbiBkaXNhYmxlLXRvdWNoLWhpZ2hsaWdodCgpIHtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7IC8vIFsxXVxufVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI1NQQUNJTkctQ09OVEFJTkVSXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBbMV0gT25seSBvdmVyd3JpdGUgdGhlIGJvdHRvbSBhbmQgdG9wIHNwYWNpbmcgaWYgYSBzcGVjaWZpY1xuICogICAgIGAkc3BhY2luZy1iZXR3ZWVuLW1vZHVsZXNgIGlzIGRlZmluZWQgYW5kIGl0IGlzIGRpZmZlcmVudCBmcm9tXG4gKiAgICAgYCRzcGFjaW5nLXZlcnRpY2FsYC5cbiAqIFsyXSBSYWlzZSBzcGVjaWZpY2l0eSB0byBvdmVyd3JpdGUgYDpmaXJzdC1jaGlsZGAgYW5kIGA6bGFzdC1jaGlsZGAgc2VsZWN0b3JzXG4gKiAgICAgb2Ygc3BhY2luZy1jb250YWluZXIgbWl4aW4uXG4gKi9cblxuLy8gTWFrZXMgdGhlIGVsZW1lbnQgYSBtb2R1bGUgY29udGFpbmVyLiBNYWtlIHN1cmUgdGhhdCB0aGUgbW9kdWxlcyBhcmUgZGlyZWN0XG4vLyBjaGlsZHJlbiBvZiB0aGlzIGNvbnRhaW5lci4gTW9kdWxlcyBhcmUgYWxpZ25lZCB2ZXJ0aWNhbGx5LlxuQG1peGluIHNwYWNpbmctY29udGFpbmVyKCRzcGFjaW5nLXZlcnRpY2FsLCAkc3BhY2luZy1ob3Jpem9udGFsOiBudWxsLCAkc3BhY2luZy1iZXR3ZWVuLW1vZHVsZXM6IG51bGwpIHtcblxuICAgID4gKiB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXG4gICAgICAgICAgICAoXCJwYWRkaW5nLXRvcFwiLCAgICBpZigkc3BhY2luZy1iZXR3ZWVuLW1vZHVsZXMsICRzcGFjaW5nLWJldHdlZW4tbW9kdWxlcywgJHNwYWNpbmctdmVydGljYWwpKSxcbiAgICAgICAgICAgIChcInBhZGRpbmctcmlnaHRcIiwgIGlmKCRzcGFjaW5nLWhvcml6b250YWwsICRzcGFjaW5nLWhvcml6b250YWwsICRzcGFjaW5nLXZlcnRpY2FsKSksXG4gICAgICAgICAgICAoXCJwYWRkaW5nLWJvdHRvbVwiLCBpZigkc3BhY2luZy1iZXR3ZWVuLW1vZHVsZXMsICRzcGFjaW5nLWJldHdlZW4tbW9kdWxlcywgJHNwYWNpbmctdmVydGljYWwpKSxcbiAgICAgICAgICAgIChcInBhZGRpbmctbGVmdFwiLCAgIGlmKCRzcGFjaW5nLWhvcml6b250YWwsICRzcGFjaW5nLWhvcml6b250YWwsICRzcGFjaW5nLXZlcnRpY2FsKSlcbiAgICAgICAgKTtcblxuICAgICAgICBAaWYgKCRzcGFjaW5nLWJldHdlZW4tbW9kdWxlcyBhbmQgJHNwYWNpbmctYmV0d2Vlbi1tb2R1bGVzICE9ICRzcGFjaW5nLXZlcnRpY2FsKSB7IC8qIFsxXSAqL1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFwicGFkZGluZy10b3BcIiwgJHNwYWNpbmctdmVydGljYWwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXCJwYWRkaW5nLWJvdHRvbVwiLCAkc3BhY2luZy12ZXJ0aWNhbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4vLyBSZW1vdmVzIHRoZSBvdXRlciBwYWRkaW5ncyBmb3IgYSBjb21wb25lbnQgbW9kdWxlIChlLmcuIHRoZSBjb21wb25lbnQnc1xuLy8gaGVhZGVyLCBib2R5LCBmb290ZXIpLlxuLy8gSWYgYCRiZXR3ZWVuLW1vZHVsZXNgIGlzIHRydWUsIGFsc28gcmVtb3ZlcyBzcGFjaW5nIGJldHdlZW4gbW9kdWxlcy5cbkBtaXhpbiBzcGFjaW5nLWl0ZW0tZmx1c2goJGJldHdlZW4tbW9kdWxlczogZmFsc2UpIHtcbiAgICBAaWYgKCRiZXR3ZWVuLW1vZHVsZXMpIHtcbiAgICAgICAgJiN7Jn0ge1xuICAgICAgICAgICAgcGFkZGluZzogMDsvKiBbMl0gKi9cbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNGTElDS0lUWVxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRmbGlja2l0eS1jb3VudGVyLXN3aXRjaC1saW1pdDogNSAhZGVmYXVsdDtcbiRmbGlja2l0eS1jb3VudGVyLWZvbnQtd2VpZ2h0OiAgbnVsbCAhZGVmYXVsdDtcbiRmbGlja2l0eS1jb3VudGVyLWZvbnQtc2l6ZTogICAgJEZTMCAhZGVmYXVsdDtcbiRmbGlja2l0eS1jb3VudGVyLWNvbG9yOiAgICAgICAgaW5oZXJpdCAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gUmVzZXQgZGVmYXVsdCBkb3Qgc3R5bGVzLlxuICogICAgIEJ5IHVzaW5nIGBhbGxgIGRvZXMgbm90IHJlcXVpcmUgdG8gcmVzZXQgYWxsIHRoZSBwcm9wZXJ0aWVzXG4gKiAgICAgb24gZG90cy4gVGhpcyBzYXZlcyBjb2RlIGFuZCBpbmNyZWFzZXMgbWFpbnRhaW5hYmlsaXR5LlxuICogWzJdIFByZXZlbnQgbmF2aWdhdGlvbiBieSBjbGlja2luZyBvbiBjb3VudC5cbiAqIFszXSBSZXNldCBkb3Qgc3BhY2luZ3MgdG8gcmVtb3ZlIHJlc2VydmVkIHNwYWNpbmcuXG4gKiBbNF0gSW5oZXJpdCB0eXBvZ3JhcGhpYyBzdHlsZXMgYWZ0ZXIgWzFdLlxuICovXG5cbi8vLyBNaXhpbiB0byBhdXRvbWF0aWNhbGx5IHN3aXRjaCBiZXR3ZWVuIGRvdCBhbmQgY291bnRlciBwYWdpbmF0aW9uIHdoZW5cbi8vLyBsaW1pdCBpcyBleGNlZWRlZC5cbi8vL1xuLy8vIENTUyBnZW5lcmF0ZWQgY29udGVudCBzaG93cyBgeCAvIHlgLlxuLy8vIC0gYGNvdW50ZXItaW5jcmVtZW50YCBpcyB1c2VkIGZvciBudW1iZXJpbmdcbi8vLyAtIGA6OmJlZm9yZWAgcHNldWRvIGVsZW1lbnQgb24gdGhlIGN1cnJlbnQgaXRlbSBpcyB1c2VkIGZvciB0aGUgY291bnRlclxuLy8vIC0gYDo6YWZ0ZXJgIHBzZXVkbyBlbGVtZW50IG9uIHRoZSBsYXN0IGl0ZW0gaXMgdXNlZCBmb3IgdGhlIGRlbm9taW5hdG9yXG4vLy8gICAgaW5jbHVkaW5nIGEgc2VwZXJhdG9yIChgL2ApLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsaW1pdCBNYXhpbXVtIGJlZm9yZSBhdXRvbWF0aWMgc3dpdGNoLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZm9udC13ZWlnaHQgQ291bnRlciBmb250LXdlaWdodC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGZvbnQtc2l6ZSBDb3VudGVyIGZvbnQtc2l6ZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgQ291bnRlciBjb2xvci5cbkBtaXhpbiBmbGlja2l0eS1kb3QtY291bnRlci1zd2l0Y2goXG4gICAgJGxpbWl0OiAgICAgICAkZmxpY2tpdHktY291bnRlci1zd2l0Y2gtbGltaXQsXG4gICAgJGZvbnQtd2VpZ2h0OiAkZmxpY2tpdHktY291bnRlci1mb250LXdlaWdodCxcbiAgICAkZm9udC1zaXplOiAgICRmbGlja2l0eS1jb3VudGVyLWZvbnQtc2l6ZSxcbiAgICAkY29sb3I6ICAgICAgICRmbGlja2l0eS1jb3VudGVyLWNvbG9yLFxuKSB7XG4gICAgQGluY2x1ZGUgYXQtbGVhc3QoJGxpbWl0ICsgMSkge1xuXG4gICAgICAgIC8vIHdoaXRlc3BhY2UgYmV0d2VlbiBzZXBlcmF0b3IgYW5kIGRlbm9taW5hdG9yXG4gICAgICAgICRfc3BhY2UtY2hhcjogXCJcXDAwYTBcIjtcblxuICAgICAgICBjb3VudGVyLWluY3JlbWVudDogc2xpZGVyLWNvdW50O1xuICAgICAgICBtYXJnaW46IDA7IC8qIFszXSAqL1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbMl0gKi9cblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGFsbDogaW5pdGlhbDsgLyogWzFdICovXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb3JkZXIvb3JkZXIgKi9cbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICRmb250LXNpemU6ICAgJGZvbnQtc2l6ZSxcbiAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6IDEsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIFs0XSAqL1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodDtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogWzJdICovXG4gICAgICAgIH1cblxuICAgICAgICAvLyBjdXJyZW50IGluZGV4XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBjb3VudGVyKHNsaWRlci1jb3VudCkgXCIjeyRfc3BhY2UtY2hhcn1cIjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNlcGVyYXRvciArIGRlbGltaXRlclxuICAgICAgICAmOmxhc3QtY2hpbGQ6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiLyN7JF9zcGFjZS1jaGFyfVwiIGNvdW50ZXIoc2xpZGVyLWNvdW50KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2hvdyBvbmx5IGN1cnJlbnQgYW5kIGxhc3QgKHRvdGFsKVxuICAgICAgICAmOm5vdCguaXMtc2VsZWN0ZWQpIHtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAvLyBoaWRlIGRvdHNcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG4iLCIvLyAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNMRUdBQ1ktQlJPV1NFUi1OT1RJRklDQVRJT05cbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiRsZWdhY3ktYnJvd3Nlci1ub3RpZmljYXRpb24tYmFja2dyb3VuZDogICAgJENPTE9SLVdBUk5JTkcgIWRlZmF1bHQ7XG4kbGVnYWN5LWJyb3dzZXItbm90aWZpY2F0aW9uLXBhZGRpbmc6ICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJGxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1mb250LXdlaWdodDogICBudWxsICFkZWZhdWx0O1xuJGxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi10ZXh0LWNvbG9yOiAgICBudWxsICFkZWZhdWx0O1xuJGxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi10ZXh0czogICAgICAgICAkTEVHQUNZLUJST1dTRVItTk9USUZJQ0FUSU9OLVRFWFRTICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBTaG93IEVuZ2xpc2ggbWVzc2FnZSBhcyBkZWZhdWx0IGZvciBsYW5ndWFnZXMgdGhhdCBkbyBub3QgaGF2ZSBhIGRlZGljYXRlZCB0cmFuc2xhdGlvbi5cbiAqL1xuXG4vLy8gUmVuZGVyIG5vdGlmaWNhdGlvbiB3aXRoIHBzZXVkby1lbGVtZW50IHdpdGggZGVmYXVsdCBhbmQgbXVsdGlsYW5ndWFnZSB0ZXh0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbXCJib2R5XCJdIFNlbGVjdG9yIHRvIGFwcGx5IHBzZXVkby1lbGVtZW50IHRvXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3Rvci1jb21iaW5hdG9yIFtudWxsXSBPcHRpb25hbCBjb21iaW5hdG9yLlxuLy8vIEhlbHBzIG1ha2luZyB0aGUgc2VsZWN0b3IgbW9yZSBzcGVjaWZpYyB3aGVuIHJlcXVpcmVkIChlLmcuIGZvciBkZW1vIHB1cnBvc2VzKS5cbkBtaXhpbiBsZWdhY3ktYnJvd3Nlci1ub3RpZmljYXRpb24oJHNlbGVjdG9yOiBcImJvZHlcIiwgJHNlbGVjdG9yLWNvbWJpbmF0b3I6IG51bGwpIHtcbiAgICAjeyRzZWxlY3Rvcn06bm90KFtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1vZmZdKSB7XG5cbiAgICAgICAgLy8gVGV4dCBjb250ZW50XG4gICAgICAgIEBlYWNoICRjb2RlLCAkdGV4dCBpbiAkbGVnYWN5LWJyb3dzZXItbm90aWZpY2F0aW9uLXRleHRzIHtcbiAgICAgICAgICAgIC8vIGRpcmVjdCBtYXRjaFxuICAgICAgICAgICAgW2xhbmc9XCIjeyRjb2RlfVwiXSAjeyRzZWxlY3Rvci1jb21iaW5hdG9yfSAmOjpiZWZvcmUsXG4gICAgICAgICAgICAvLyBtYXRjaCB3aXRoIFwiZGlhbGVjdFwiLCBlLmcuIGBwdC1icmBcbiAgICAgICAgICAgIFtsYW5nKj1cIiN7JGNvZGV9LVwiXSAjeyRzZWxlY3Rvci1jb21iaW5hdG9yfSAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHF1b3RlKCR0ZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE92ZXJ3cml0ZSB3aXRoIGN1c3RvbSBtZXNzYWdlIHdoZW4gYXR0cmlidXRlIGlzIHByZXNlbnRcbiAgICAgICAgJltkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbl06OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtbGVnYWN5LWJyb3dzZXItbm90aWZpY2F0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFN0eWxlXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAkX2RlZmF1bHQtdGV4dDogbWFwLWdldCgkbGVnYWN5LWJyb3dzZXItbm90aWZpY2F0aW9uLXRleHRzLCBcImVuXCIpOyAvKiBbMV0gKi9cbiAgICAgICAgICAgIGNvbnRlbnQ6ICRfZGVmYXVsdC10ZXh0OyAvKiBbMV0gKi9cbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogJGxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1wYWRkaW5nO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRsZWdhY3ktYnJvd3Nlci1ub3RpZmljYXRpb24tZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGVnYWN5LWJyb3dzZXItbm90aWZpY2F0aW9uLWJhY2tncm91bmQ7XG4gICAgICAgICAgICBjb2xvcjogJGxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi10ZXh0LWNvbG9yO1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNTQ09QRUQgU1RZTEVTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBJbiBvcmRlciB0byBlbmNhcHN1bGF0ZSBCcm9uc29uIGNvbXBvbmVudHMgZnJvbSB0aGUgcmVndWxhciBzdHlsZWQgcGFydHMgb2ZcbiAqIE5vbi1Ccm9uc29uIHBhZ2VzIHRoYXQgdXNlIEJyb25zb24gY29tcG9uZW50cywgd2UgbXVzdCByZXNldCBzdHlsZXMuXG4gKlxuICogYCRHTE9CQUwtU0NPUEVEYCB3aWxsIGJlIHNldCBieSBHdWxwIHdoaWxlIHRoZSBzY29wZWQgc3R5bGVzIGFyZSBiZWluZ1xuICogY29tcGlsZWQuIChzZWUgYGd1bHAvdGFza3Mvc3R5bGVzLmpzYCBhbmQgYHBhY2thZ2VzL2Jyb25zb24tZGVmYXVsdC9zdHlsZWd1aWRlL2RvY3MvMjAtaG93LXRvL3VzZS1icm9uc29uLXNjb3BlZC1zdHlsZXMubWRgKVxuICovXG5cbkBpZiAoJEdMT0JBTC1TQ09QRUQpIHtcblxuICAgIC8qKlxuICAgICAqIFJlc2V0cyBhbGwgYXBwbGllZCBzdHlsZXMgdG8gaXRzIGluaXRpYWwgdmFsdWVzLlxuICAgICAqL1xuICAgIC5icm9uLFxuICAgIC5icm9uOjpiZWZvcmUsXG4gICAgLmJyb246OmFmdGVyLFxuICAgIC5icm9uICosXG4gICAgLmJyb24gKjo6YmVmb3JlLFxuICAgIC5icm9uICo6OmFmdGVyIHtcbiAgICAgICAgYWxsOiBpbml0aWFsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc2V0cyBhbGwgYXBwbGllZCBzdHlsZXMgdG8gYnJvd3Nlci91c2VyIGRlZmF1bHRzLlxuICAgICAqL1xuICAgIC5icm9uLWh0bWwsXG4gICAgLmJyb24taHRtbDo6YmVmb3JlLFxuICAgIC5icm9uLWh0bWw6OmFmdGVyLFxuICAgIC5icm9uLWh0bWwgKixcbiAgICAuYnJvbi1odG1sICo6OmJlZm9yZSxcbiAgICAuYnJvbi1odG1sICo6OmFmdGVyIHtcbiAgICAgICAgYWxsOiByZXZlcnQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGF0Y2ggdGhlIGlmcmFtZSBgW2ZyYW1lYm9yZGVyPVwiMFwiXWAgYXR0cmlidXRlIGZyb20gYmVpbmcgb3ZlcnJ1bGVkIGJ5IGBhbGw6IHJldmVydDtgLlxuICAgICAqL1xuICAgIFtmcmFtZWJvcmRlcj1cIjBcIl0ge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgfVxuXG59XG4iLCIvKiEgbW9kZXJuLW5vcm1hbGl6ZSB2MS4xLjAgfCBNSVQgTGljZW5zZSB8IGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvbW9kZXJuLW5vcm1hbGl6ZSAqL1xuXG4vKlxuRG9jdW1lbnRcbj09PT09PT09XG4qL1xuXG4vKipcblVzZSBhIGJldHRlciBib3ggbW9kZWwgKG9waW5pb25hdGVkKS5cbiovXG5cbiosXG46OmJlZm9yZSxcbjo6YWZ0ZXIge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4vKipcblVzZSBhIG1vcmUgcmVhZGFibGUgdGFiIHNpemUgKG9waW5pb25hdGVkKS5cbiovXG5cbmh0bWwge1xuXHQtbW96LXRhYi1zaXplOiA0O1xuXHR0YWItc2l6ZTogNDtcbn1cblxuLyoqXG4xLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4yLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiovXG5cbmh0bWwge1xuXHRsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuXHQtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLypcblNlY3Rpb25zXG49PT09PT09PVxuKi9cblxuLyoqXG5SZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuXG5ib2R5IHtcblx0bWFyZ2luOiAwO1xufVxuXG4vKipcbkltcHJvdmUgY29uc2lzdGVuY3kgb2YgZGVmYXVsdCBmb250cyBpbiBhbGwgYnJvd3NlcnMuIChodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL21vZGVybi1ub3JtYWxpemUvaXNzdWVzLzMpXG4qL1xuXG5ib2R5IHtcblx0Zm9udC1mYW1pbHk6XG5cdFx0c3lzdGVtLXVpLFxuXHRcdC1hcHBsZS1zeXN0ZW0sIC8qIEZpcmVmb3ggc3VwcG9ydHMgdGhpcyBidXQgbm90IHlldCBgc3lzdGVtLXVpYCAqL1xuXHRcdCdTZWdvZSBVSScsXG5cdFx0Um9ib3RvLFxuXHRcdEhlbHZldGljYSxcblx0XHRBcmlhbCxcblx0XHRzYW5zLXNlcmlmLFxuXHRcdCdBcHBsZSBDb2xvciBFbW9qaScsXG5cdFx0J1NlZ29lIFVJIEVtb2ppJztcbn1cblxuLypcbkdyb3VwaW5nIGNvbnRlbnRcbj09PT09PT09PT09PT09PT1cbiovXG5cbi8qKlxuMS4gQWRkIHRoZSBjb3JyZWN0IGhlaWdodCBpbiBGaXJlZm94LlxuMi4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2Ugb2YgYm9yZGVyIGNvbG9yIGluIEZpcmVmb3guIChodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2NTUpXG4qL1xuXG5ociB7XG5cdGhlaWdodDogMDsgLyogMSAqL1xuXHRjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKlxuVGV4dC1sZXZlbCBzZW1hbnRpY3Ncbj09PT09PT09PT09PT09PT09PT09XG4qL1xuXG4vKipcbkFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuKi9cblxuYWJiclt0aXRsZV0ge1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG59XG5cbi8qKlxuQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIEVkZ2UgYW5kIFNhZmFyaS5cbiovXG5cbmIsXG5zdHJvbmcge1xuXHRmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbjEuIEltcHJvdmUgY29uc2lzdGVuY3kgb2YgZGVmYXVsdCBmb250cyBpbiBhbGwgYnJvd3NlcnMuIChodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL21vZGVybi1ub3JtYWxpemUvaXNzdWVzLzMpXG4yLiBDb3JyZWN0IHRoZSBvZGQgJ2VtJyBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuXG5jb2RlLFxua2JkLFxuc2FtcCxcbnByZSB7XG5cdGZvbnQtZmFtaWx5OlxuXHRcdHVpLW1vbm9zcGFjZSxcblx0XHRTRk1vbm8tUmVndWxhcixcblx0XHRDb25zb2xhcyxcblx0XHQnTGliZXJhdGlvbiBNb25vJyxcblx0XHRNZW5sbyxcblx0XHRtb25vc3BhY2U7IC8qIDEgKi9cblx0Zm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyoqXG5BZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiovXG5cbnNtYWxsIHtcblx0Zm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuUHJldmVudCAnc3ViJyBhbmQgJ3N1cCcgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiovXG5cbnN1YixcbnN1cCB7XG5cdGZvbnQtc2l6ZTogNzUlO1xuXHRsaW5lLWhlaWdodDogMDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG5cdGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcblx0dG9wOiAtMC41ZW07XG59XG5cbi8qXG5UYWJ1bGFyIGRhdGFcbj09PT09PT09PT09PVxuKi9cblxuLyoqXG4xLiBSZW1vdmUgdGV4dCBpbmRlbnRhdGlvbiBmcm9tIHRhYmxlIGNvbnRlbnRzIGluIENocm9tZSBhbmQgU2FmYXJpLiAoaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9OTk5MDg4LCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMjk3KVxuMi4gQ29ycmVjdCB0YWJsZSBib3JkZXIgY29sb3IgaW5oZXJpdGFuY2UgaW4gYWxsIENocm9tZSBhbmQgU2FmYXJpLiAoaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9OTM1NzI5LCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MDE2KVxuKi9cblxudGFibGUge1xuXHR0ZXh0LWluZGVudDogMDsgLyogMSAqL1xuXHRib3JkZXItY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLypcbkZvcm1zXG49PT09PVxuKi9cblxuLyoqXG4xLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbjIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG5cdGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiAxICovXG5cdGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuXHRsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuXHRtYXJnaW46IDA7IC8qIDIgKi9cbn1cblxuLyoqXG5SZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UgYW5kIEZpcmVmb3guXG4xLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4qL1xuXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG5cdHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbkNvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4qL1xuXG5idXR0b24sXG5bdHlwZT0nYnV0dG9uJ10sXG5bdHlwZT0ncmVzZXQnXSxcblt0eXBlPSdzdWJtaXQnXSB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG4vKipcblJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4qL1xuXG46Oi1tb3otZm9jdXMtaW5uZXIge1xuXHRib3JkZXItc3R5bGU6IG5vbmU7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuKi9cblxuOi1tb3otZm9jdXNyaW5nIHtcblx0b3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcblJlbW92ZSB0aGUgYWRkaXRpb25hbCAnOmludmFsaWQnIHN0eWxlcyBpbiBGaXJlZm94LlxuU2VlOiBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrby1kZXYvYmxvYi8yZjllYWNkOWQzZDk5NWM5MzdiNDI1MWE1NTU3ZDk1ZDQ5NGM5YmUxL2xheW91dC9zdHlsZS9yZXMvZm9ybXMuY3NzI0w3MjgtTDczN1xuKi9cblxuOi1tb3otdWktaW52YWxpZCB7XG5cdGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qKlxuUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dCAnZmllbGRzZXQnIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiovXG5cbmxlZ2VuZCB7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUgYW5kIEZpcmVmb3guXG4qL1xuXG5wcm9ncmVzcyB7XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG5Db3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBTYWZhcmkuXG4qL1xuXG46Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG46Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuXHRoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4yLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiovXG5cblt0eXBlPSdzZWFyY2gnXSB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG5cdG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuKi9cblxuOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbjEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4yLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvICdpbmhlcml0JyBpbiBTYWZhcmkuXG4qL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cblx0Zm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKlxuSW50ZXJhY3RpdmVcbj09PT09PT09PT09XG4qL1xuXG4vKlxuQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4qL1xuXG5zdW1tYXJ5IHtcblx0ZGlzcGxheTogbGlzdC1pdGVtO1xufVxuIiwiLyoqXG4gKiBTa29kYSBzdGF0aWMgc3BhY2luZyBhcyBkZWZpbmVkIGluIHN0eWxlZ3VpZGUgdGhhdCBkbyBub3QgZml0XG4gKiBtdWx0aS1icmFuZCBYWFNNQUxMIHRvIFhYTEFSR0Ugc3BhY2luZyBzY2FsZXMuXG4gKi9cbi8qKlxuICogU3BhY2luZ3MgYXJlIHJlcXVpcmVkIHNldHRpbmdzIGZvciBhbGwgYnJhbmRzIChYWFNNQUxMIC0gWFhMQVJHRSkuXG4gKiAtIFJlcXVpcmVkIHRvIGhhdmUgYWxsIHNjYWxlcyBhdmFpbGFibGUgaW4gYWxsIGJyYW5kcyAobXVsdGlicmFuZCAmIG9uZS1tYXJrdXAtYXBwcm9hY2gpLlxuICogLSBVc2VkIGZvciBnZW5lcmF0aW5nIG9mIHNwYWNpbmcgdXRpbGl0aWVzLlxuICovXG4vKipcbiAqIEZsb3cgZWxldmF0aW9uIGNvbmNlcHQ6XG4gKiBodHRwczovL3d3dy5maWdtYS5jb20vZmlsZS82cU9BbkkxSlNGYjJDTFQ0RTN4YWhRL0ZMT1ctLS1XZWItJTJGLVN0eWxlcz9ub2RlLWlkPTQ3NjIlM0EwXG4gKi9cbi8qKlxuICogWzFdIEBUT0RPOiBEaWZmZXJlbnQgZGlzYWJsZWQgY29sb3JzIGFjY29yZGluZyB0byBzdHlsZWd1aWRlLlxuICogICAgICAgICAgICBDdXJyZW50bHkgbm90IGNvbnNpc3RlbnQgdGhyb3VnaG91dCBzdHlsZWd1aWRlLCBuZWVkcyB0byBiZVxuICogICAgICAgICAgICBjbGFyaWZpZWQgd2l0aCBicmFuZC5cbiAqL1xuLyoqXG4gKiBGbG93IGVsZXZhdGlvbiBjb25jZXB0OlxuICogaHR0cHM6Ly93d3cuZmlnbWEuY29tL2ZpbGUvNnFPQW5JMUpTRmIyQ0xUNEUzeGFoUS9GTE9XLS0tV2ViLSUyRi1TdHlsZXM/bm9kZS1pZD00NzYyJTNBMFxuICovXG4vKipcbiAqIEBUT0RPOlxuICogLSBpY29uIGFsaWdubWVudD9cbiAqL1xuLyoqXG4gKiBTcGFjaW5ncyBhcmUgcmVxdWlyZWQgc2V0dGluZ3MgZm9yIGFsbCBicmFuZHMgKFhYU01BTEwgLSBYWExBUkdFKS5cbiAqIC0gUmVxdWlyZWQgdG8gaGF2ZSBhbGwgc2NhbGVzIGF2YWlsYWJsZSBpbiBhbGwgYnJhbmRzIChtdWx0aWJyYW5kICYgb25lLW1hcmt1cC1hcHByb2FjaCkuXG4gKiAtIFVzZWQgZm9yIGdlbmVyYXRpbmcgb2Ygc3BhY2luZyB1dGlsaXRpZXMuXG4gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNGT1JNU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBBZGQgc3BhY2luZyBvZiA5NnB4IChub3QgcGFydCBvZiBnbG9iYWwgc3BhY2luZyBzY2FsZSkgYWNjb3JkaW5nIHRvIHN0eWxlZ3VpZGU6XG4gKiAgICAgaHR0cHM6Ly93d3cuZmlnbWEuY29tL2ZpbGUvNnFPQW5JMUpTRmIyQ0xUNEUzeGFoUS9GTE9XLS0tV2ViLSUyRi1TdHlsZXM/bm9kZS1pZD00MDgzJTNBMFxuICogWzJdIEFkZCBzcGFjaW5nIG9mIDEycHggKG5vdCBwYXJ0IG9mIGdsb2JhbCBzcGFjaW5nIHNjYWxlKSBhY2NvcmRpbmcgdG8gc3R5bGVndWlkZTpcbiAqICAgICBodHRwczovL3d3dy5maWdtYS5jb20vZmlsZS82cU9BbkkxSlNGYjJDTFQ0RTN4YWhRL0ZMT1ctLS1XZWItJTJGLVN0eWxlcz9ub2RlLWlkPTQwODMlM0EwXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIHNjc3MvbWVkaWEtZmVhdHVyZS12YWx1ZS1kb2xsYXItdmFyaWFibGUgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgc2Nzcy9tZWRpYS1mZWF0dXJlLXZhbHVlLWRvbGxhci12YXJpYWJsZSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgaXRjc3Mvbm8tYXQtaW1wb3J0YW50ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlIGl0Y3NzL25vLWF0LWltcG9ydGFudCAqL1xuLyoqXG4gKiBHZXQgYWxpZ25tZW50IGZvciBmbGV4Ym94LWJhc2VkIG1vZHVsZXMuXG4gKiBSZW1hcHMgYWxpZ25tZW50IChjZW50ZXIsIGxlZnQsIHJpZ2h0KSB0byBmbGV4Ym94IHZhbHVlcy5cbiAqLyAvKipcbiAqIFsxXSBgdHJhbnNwYXJlbnRgIGRvZXMgbm90IHdvcmsgaW4gaU9TLlxuICovXG4vKipcbiAqIFsxXSBPbmx5IG92ZXJ3cml0ZSB0aGUgYm90dG9tIGFuZCB0b3Agc3BhY2luZyBpZiBhIHNwZWNpZmljXG4gKiAgICAgYCRzcGFjaW5nLWJldHdlZW4tbW9kdWxlc2AgaXMgZGVmaW5lZCBhbmQgaXQgaXMgZGlmZmVyZW50IGZyb21cbiAqICAgICBgJHNwYWNpbmctdmVydGljYWxgLlxuICogWzJdIFJhaXNlIHNwZWNpZmljaXR5IHRvIG92ZXJ3cml0ZSBgOmZpcnN0LWNoaWxkYCBhbmQgYDpsYXN0LWNoaWxkYCBzZWxlY3RvcnNcbiAqICAgICBvZiBzcGFjaW5nLWNvbnRhaW5lciBtaXhpbi5cbiAqL1xuLyoqXG4gKiBbMV0gUmVzZXQgZGVmYXVsdCBkb3Qgc3R5bGVzLlxuICogICAgIEJ5IHVzaW5nIGBhbGxgIGRvZXMgbm90IHJlcXVpcmUgdG8gcmVzZXQgYWxsIHRoZSBwcm9wZXJ0aWVzXG4gKiAgICAgb24gZG90cy4gVGhpcyBzYXZlcyBjb2RlIGFuZCBpbmNyZWFzZXMgbWFpbnRhaW5hYmlsaXR5LlxuICogWzJdIFByZXZlbnQgbmF2aWdhdGlvbiBieSBjbGlja2luZyBvbiBjb3VudC5cbiAqIFszXSBSZXNldCBkb3Qgc3BhY2luZ3MgdG8gcmVtb3ZlIHJlc2VydmVkIHNwYWNpbmcuXG4gKiBbNF0gSW5oZXJpdCB0eXBvZ3JhcGhpYyBzdHlsZXMgYWZ0ZXIgWzFdLlxuICovXG4vKipcbiAqIFsxXSBTaG93IEVuZ2xpc2ggbWVzc2FnZSBhcyBkZWZhdWx0IGZvciBsYW5ndWFnZXMgdGhhdCBkbyBub3QgaGF2ZSBhIGRlZGljYXRlZCB0cmFuc2xhdGlvbi5cbiAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1NDT1BFRCBTVFlMRVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBJbiBvcmRlciB0byBlbmNhcHN1bGF0ZSBCcm9uc29uIGNvbXBvbmVudHMgZnJvbSB0aGUgcmVndWxhciBzdHlsZWQgcGFydHMgb2ZcbiAqIE5vbi1Ccm9uc29uIHBhZ2VzIHRoYXQgdXNlIEJyb25zb24gY29tcG9uZW50cywgd2UgbXVzdCByZXNldCBzdHlsZXMuXG4gKlxuICogYCRHTE9CQUwtU0NPUEVEYCB3aWxsIGJlIHNldCBieSBHdWxwIHdoaWxlIHRoZSBzY29wZWQgc3R5bGVzIGFyZSBiZWluZ1xuICogY29tcGlsZWQuIChzZWUgYGd1bHAvdGFza3Mvc3R5bGVzLmpzYCBhbmQgYHBhY2thZ2VzL2Jyb25zb24tZGVmYXVsdC9zdHlsZWd1aWRlL2RvY3MvMjAtaG93LXRvL3VzZS1icm9uc29uLXNjb3BlZC1zdHlsZXMubWRgKVxuICovXG4vKiEgbW9kZXJuLW5vcm1hbGl6ZSB2MS4xLjAgfCBNSVQgTGljZW5zZSB8IGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvbW9kZXJuLW5vcm1hbGl6ZSAqL1xuLypcbkRvY3VtZW50XG49PT09PT09PVxuKi9cbi8qKlxuVXNlIGEgYmV0dGVyIGJveCBtb2RlbCAob3BpbmlvbmF0ZWQpLlxuKi9cbiosXG46OmJlZm9yZSxcbjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4vKipcblVzZSBhIG1vcmUgcmVhZGFibGUgdGFiIHNpemUgKG9waW5pb25hdGVkKS5cbiovXG5odG1sIHtcbiAgLW1vei10YWItc2l6ZTogNDtcbiAgdGFiLXNpemU6IDQ7XG59XG5cbi8qKlxuMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4qL1xuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKlxuU2VjdGlvbnNcbj09PT09PT09XG4qL1xuLyoqXG5SZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG5JbXByb3ZlIGNvbnNpc3RlbmN5IG9mIGRlZmF1bHQgZm9udHMgaW4gYWxsIGJyb3dzZXJzLiAoaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9tb2Rlcm4tbm9ybWFsaXplL2lzc3Vlcy8zKVxuKi9cbmJvZHkge1xuICBmb250LWZhbWlseTogc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBcIlNlZ29lIFVJXCIsIFJvYm90bywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCI7XG59XG5cbi8qXG5Hcm91cGluZyBjb250ZW50XG49PT09PT09PT09PT09PT09XG4qL1xuLyoqXG4xLiBBZGQgdGhlIGNvcnJlY3QgaGVpZ2h0IGluIEZpcmVmb3guXG4yLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBvZiBib3JkZXIgY29sb3IgaW4gRmlyZWZveC4gKGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDY1NSlcbiovXG5ociB7XG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKlxuVGV4dC1sZXZlbCBzZW1hbnRpY3Ncbj09PT09PT09PT09PT09PT09PT09XG4qL1xuLyoqXG5BZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiovXG5hYmJyW3RpdGxlXSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbn1cblxuLyoqXG5BZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gRWRnZSBhbmQgU2FmYXJpLlxuKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbjEuIEltcHJvdmUgY29uc2lzdGVuY3kgb2YgZGVmYXVsdCBmb250cyBpbiBhbGwgYnJvd3NlcnMuIChodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL21vZGVybi1ub3JtYWxpemUvaXNzdWVzLzMpXG4yLiBDb3JyZWN0IHRoZSBvZGQgJ2VtJyBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuY29kZSxcbmtiZCxcbnNhbXAsXG5wcmUge1xuICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIE1lbmxvLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyoqXG5BZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcblByZXZlbnQgJ3N1YicgYW5kICdzdXAnIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLypcblRhYnVsYXIgZGF0YVxuPT09PT09PT09PT09XG4qL1xuLyoqXG4xLiBSZW1vdmUgdGV4dCBpbmRlbnRhdGlvbiBmcm9tIHRhYmxlIGNvbnRlbnRzIGluIENocm9tZSBhbmQgU2FmYXJpLiAoaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9OTk5MDg4LCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMjk3KVxuMi4gQ29ycmVjdCB0YWJsZSBib3JkZXIgY29sb3IgaW5oZXJpdGFuY2UgaW4gYWxsIENocm9tZSBhbmQgU2FmYXJpLiAoaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9OTM1NzI5LCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MDE2KVxuKi9cbnRhYmxlIHtcbiAgdGV4dC1pbmRlbnQ6IDA7IC8qIDEgKi9cbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qXG5Gb3Jtc1xuPT09PT1cbiovXG4vKipcbjEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICBtYXJnaW46IDA7IC8qIDIgKi9cbn1cblxuLyoqXG5SZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UgYW5kIEZpcmVmb3guXG4xLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4qL1xuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG5Db3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuKi9cbmJ1dHRvbixcblt0eXBlPWJ1dHRvbl0sXG5bdHlwZT1yZXNldF0sXG5bdHlwZT1zdWJtaXRdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiovXG46Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuKi9cbjotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG5SZW1vdmUgdGhlIGFkZGl0aW9uYWwgJzppbnZhbGlkJyBzdHlsZXMgaW4gRmlyZWZveC5cblNlZTogaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvZ2Vja28tZGV2L2Jsb2IvMmY5ZWFjZDlkM2Q5OTVjOTM3YjQyNTFhNTU1N2Q5NWQ0OTRjOWJlMS9sYXlvdXQvc3R5bGUvcmVzL2Zvcm1zLmNzcyNMNzI4LUw3MzdcbiovXG46LW1vei11aS1pbnZhbGlkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLyoqXG5SZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0ICdmaWVsZHNldCcgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuKi9cbmxlZ2VuZCB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUgYW5kIEZpcmVmb3guXG4qL1xucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gU2FmYXJpLlxuKi9cbjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbjo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4xLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbjIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuKi9cblt0eXBlPXNlYXJjaF0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcblJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiovXG46Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbjIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gJ2luaGVyaXQnIGluIFNhZmFyaS5cbiovXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKlxuSW50ZXJhY3RpdmVcbj09PT09PT09PT09XG4qL1xuLypcbkFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIENocm9tZSBhbmQgU2FmYXJpLlxuKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNCT1gtU0laSU5HXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogTW9yZSBzZW5zaWJsZSBkZWZhdWx0IGJveC1zaXppbmc6XG4gKiBjc3MtdHJpY2tzLmNvbS9pbmhlcml0aW5nLWJveC1zaXppbmctcHJvYmFibHktc2xpZ2h0bHktYmV0dGVyLWJlc3QtcHJhY3RpY2VcbiAqIFdlIGFyZSBvdmVycmlkaW5nIG1vZGVybi1ub3JtYWxpemUncyBvcGluaW9uYXRlZCBib3gtc2l6aW5nIHJ1bGVzLlxuICovXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNSRVNFVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIEJlc2lkZXMgdXNpbmcgbm9ybWFsaXplLmNzcywgaXQgaXMgb2Z0ZW4gYWR2YW50YWdlb3VzIHRvIHJlbW92ZSBhbGwgbWFyZ2luc1xuICogZnJvbSBjZXJ0YWluIGVsZW1lbnRzLlxuICovXG5ib2R5LFxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxucCxcbmJsb2NrcXVvdGUsXG5wcmUsXG5kbCxcbmRkLFxub2wsXG51bCxcbmZvcm0sXG5maWVsZHNldCxcbmxlZ2VuZCxcbmZpZ3VyZSxcbnRhYmxlLFxudGgsXG50ZCxcbmNhcHRpb24sXG5ociB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBTb21lIGJyb3dzZXJzIGhhdmUgd2VpcmQgZGVmYXVsdCBzdHlsZXMgZm9yIHRoZSA8ZmllbGRzZXQ+IGVsZW1lbnQuXG4gKiBFLmcuIENocm9tZSBoYXMgYG1pbi13aWR0aDogLXdlYmtpdC1taW4tY29udGVudDtgIGFzIGRlZmF1bHQgc3R5bGUuIFdlXG4gKiBkZWZpbml0ZWx5IGRvbid0IHdhbnQgdGhhdCwgc28gd2UgZXhwbGljaXRseSBzZXQgaXQgdG8gYGF1dG9gIGhlcmUuXG4gKi9cbmZpZWxkc2V0IHtcbiAgbWluLXdpZHRoOiBhdXRvO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjU0hBUkVEXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogV2hlcmUgYG1hcmdpbi1ib3R0b21gIGlzIGNvbmNlcm5lZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIHRoZSBzYW1lIGFzIHRoZVxuICogYCRHTE9CQUwtTElORS1IRUlHSFRgLiBUaGlzIGFsbG93cyB1cyB0byBrZWVwIGEgY29uc2lzdGVudCB2ZXJ0aWNhbCByaHl0aG0uXG4gKlxuICogaHR0cHM6Ly9jc3N3aXphcmRyeS5jb20vMjAxMi8wNi9zaW5nbGUtZGlyZWN0aW9uLW1hcmdpbi1kZWNsYXJhdGlvbnNcbiAqL1xudWwsXG5vbCxcbmRsLFxuYmxvY2txdW90ZSxcbnAsXG5hZGRyZXNzLFxuaHIsXG50YWJsZSxcbnByZSB7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNGT05ULUZBQ0VcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcInNrb2RhLW5leHRcIjtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9mb250cy9za29kYS1uZXh0LWJvbGQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcInNrb2RhLW5leHRcIjtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9mb250cy9za29kYS1uZXh0LXJlZ3VsYXIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcInNrb2RhLW5leHRcIjtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9mb250cy9za29kYS1uZXh0LWxpZ2h0LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJicm9uc29uLXNrb2RhXCI7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvaWNvbi1mb250cy9icm9uc29uLXNrb2RhLndvZmYyP3Y9c0FId3hyZWIwdjF3RjU0SGdPaE5CR2p4a1dZPVwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IGJsb2NrO1xufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZPUk1TXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIFJlbW92ZSB1c2VyIGFnZW50IGJvcmRlciBzdHlsZS5cbiAqIFsyXSBSZW1vdmUgbmF0aXZlIHNlYXJjaCBzdHlsZXMgYXMgdGhleSBjYW4gbm90IGJlIGN1c3RvbWl6ZWQgYW5kXG4gKiAgICAgdmlzdWFsbHkgY29uZmxpY3RzIHdpdGggdGhlIHJlc3Qgb2YgaW5wdXRzLlxuICovXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMDsgLyogWzFdICovXG59XG5cbmlucHV0W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbixcbmlucHV0W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG5pbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7IC8qIFsyXSAqL1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSU1BR0VTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogQWxsIG91ciBpbWFnZXMgYXJlIGZsdWlkLCB0aHVzIGFsbCBnZXR0aW5nIGBtYXgtd2lkdGg6IDEwMCVgLlxuICogTmV2ZXIgZXZlciBzZXQgYHdpZHRoYCBhbmQgYGhlaWdodGAgYXR0cmlidXRlcyBpbiBIVE1MIG9uIGA8aW1nPmAgZWxlbWVudHMhXG4gKlxuICogWzFdIEZsdWlkIGltYWdlcyBmb3IgcmVzcG9uc2l2ZSBwdXJwb3Nlcy5cbiAqIFsyXSBTZXR0aW5nIGB2ZXJ0aWNhbC1hbGlnbmAgcmVtb3ZlcyB0aGUgd2hpdGVzcGFjZSB0aGF0IGFwcGVhcnMgdW5kZXIgYGltZ2BcbiAqICAgICBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIGRyb3BwZWQgaW50byBhIHBhZ2UgYXMtaXMuIFRoaXMgaXMgYSBhZmVyXG4gKiAgICAgYWx0ZXJuYXRpdmUgdG8gdXNpbmcgYGRpc3BsYXk6IGJsb2NrO2AgZm9yIHRoZSBgPGltZz5gLlxuICogWzNdIFZpc3VhbGx5IG9mZnNldCBgYWx0YCB0ZXh0IGZyb20gc3Vycm91bmRpbmcgY29weSAodXNlZnVsIGlmIHRoZSBpbWFnZSBtYXlcbiAqICAgICBub3QgbG9hZCBwcm9wZXJseSkuXG4gKi9cbmltZyB7XG4gIG1heC13aWR0aDogMTAwJTsgLyogWzFdICovXG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgLyogWzNdICovXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8qIFsyXSAqL1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTElTVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gQWxpZ24gdGhlIGJ1bGxldHMvbnVtYmVycyBvZiBsaXN0cyBob3Jpem9udGFsbHkgd2l0aCBzb3Vycm91bmRpbmcgY29udGVudC5cbiAqIFsyXSBSZW1vdmUgZXh0cmEgdmVydGljYWwgc3BhY2luZyB3aGVuIG5lc3RpbmcgbGlzdHMuXG4gKi9cbnVsLCBvbCB7XG4gIG1hcmdpbi1sZWZ0OiAyNHB4OyAvKiBbMV0gKi9cbn1cblxubGkgPiB1bCxcbmxpID4gb2wge1xuICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbMl0gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1NNQUxMXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogU21hbGxwcmludCB0ZXh0LlxuICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0RFVEFJTFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gU2V0IGBib3gtc2l6aW5nYCBzcGVjaWZpY2FsbHkgZm9yIGA8ZGV0YWlscz5gXG4gKiAgICAgaW5jbC4gY2hpbGQtIGFuZCBwc2V1ZG8tZWxlbWVudHMgYXMgdGhlIGVsZW1lbnRzIFwicmVzZXRzXCJcbiAqICAgICB0aGUgaW5oZXJpdGFuY2UvY2FzY2FkZSBmb3IgYGJveC1zaXppbmdgLlxuICogICAgIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1MzQ3NDQ4L2JveC1zaXppbmctbm90LWluaGVyaXRlZC10aHJvdWdoLWRldGFpbHMtZWxlbWVudC83NTM0OTM1MCM3NTM0OTM1MFxuICovXG5kZXRhaWxzLCBkZXRhaWxzOjpiZWZvcmUsIGRldGFpbHM6OmFmdGVyLFxuZGV0YWlscyA+ICosXG5kZXRhaWxzID4gKjo6YmVmb3JlLFxuZGV0YWlscyA+ICo6OmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogWzFdICovXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNIRUFESU5HU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIEhlYWRpbmdzIDHigJM2LlxuICpcbiAqIE9ubHkgZm9udC1zaXplcyBhcmUgYXNzaWduZWQgZm9yIGA8aDE+YCDigJMgYDxoNj5gIGVsZW1lbnRzLlxuICogQW55IGFkZGl0aW9uYWwgY29zbWV0aWMgc3R5bGVzIGFyZSBib3VuZCB0byBhbiBleHRyYSBjbGFzcyBhbmQgbmV2ZXJcbiAqIGRpcmVjdGx5IHRvIGEgaGVhZGluZyBlbGVtZW50IVxuICpcbiAqIFRoZSBpbmRpdmlkdWFsIGZvbnQtc2l6ZXMgYXJlIGRlZmluZWQgaW4gYDAxLXNldHRpbmdzL19mb250LXNpemVzLnNjc3NgLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMi4wNjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIGgxIHtcbiAgICBmb250LXNpemU6IDIuMzc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgxcHgpIHtcbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMi43NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG59XG5cbmgyIHtcbiAgZm9udC1zaXplOiAxLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIGgyIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyODFweCkge1xuICBoMiB7XG4gICAgZm9udC1zaXplOiAyLjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIH1cbn1cblxuaDMge1xuICBmb250LXNpemU6IDEuNDM3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICBoMyB7XG4gICAgZm9udC1zaXplOiAxLjY4NzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyODFweCkge1xuICBoMyB7XG4gICAgZm9udC1zaXplOiAxLjg3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG59XG5cbmg0IHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIGg0IHtcbiAgICBmb250LXNpemU6IDEuNDM3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIGg0IHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG59XG5cbmg1IHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIGg1IHtcbiAgICBmb250LXNpemU6IDEuNDM3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIGg1IHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG59XG5cbmg2IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi8qIFsxXSAqL1xuW2RhdGEtdGhlbWU9YnJhbmRdIGgxLFxuW2RhdGEtdGhlbWU9YnJhbmRdIGgyLFxuW2RhdGEtdGhlbWU9YnJhbmRdIGgzLFxuW2RhdGEtdGhlbWU9YnJhbmRdIGg0LFxuW2RhdGEtdGhlbWU9YnJhbmRdIGg1LFxuW2RhdGEtdGhlbWU9YnJhbmRdIGg2IHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNQQUdFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogSGlnaC0sIHBhZ2UtbGV2ZWwgc3R5bGluZy5cbiAqXG4gKiBbMV0gRW5zdXJlIHRoZSBwYWdlIGFsd2F5cyBmaWxscyBhdCBsZWFzdCB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgdmlld3BvcnQuXG4gKiBbMl0gRm9yY2Ugc2Nyb2xsYmFycyB0byBhbHdheXMgYmUgdmlzaWJsZSB0byBwcmV2ZW50IGF3a3dhcmQg4oCYanVtcHPigJkgd2hlblxuICogICAgIG5hdmlnYXRpbmcgYmV0d2VlbiBwYWdlcyB0aGF0IGRvL2RvIG5vdCBoYXZlIGVub3VnaCBjb250ZW50IHRvIHByb2R1Y2VcbiAqICAgICBzY3JvbGxiYXJzIG5hdHVyYWxseS5cbiAqIFszXSBTZXQgdGhlIGRlZmF1bHQgYGZvbnQtc2l6ZWAgYW5kIGBsaW5lLWhlaWdodGAgZm9yIHRoZSBlbnRpcmUgcHJvamVjdCxcbiAqICAgICBzb3VyY2VkIGZyb20gb3VyIGJhc2UgdmFyaWFibGVzLiBUaGUgYGZvbnQtc2l6ZWAgaXMgY2FsY3VsYXRlZCB0byBleGlzdFxuICogICAgIGluIGVtcywgdGhlIGBsaW5lLWhlaWdodGAgaXMgY2FsY3VsYXRlZCB0byBleGlzdCB1bml0bGVzc2x5LlxuICogICAgIG5hdmlnYXRpbmcgYmV0d2VlbiBwYWdlcyB0aGF0IGRvL2RvIG5vdCBoYXZlIGVub3VnaCBjb250ZW50IHRvIHByb2R1Y2VcbiAqICAgICBzY3JvbGxiYXJzIG5hdHVyYWxseS5cbiAqIFs0XSBBc3NpZ24gb3VyIGJhc2UgYGZvbnQtZmFtaWx5YCBmb3IgdGhlIHdob2xlIHNpdGUuXG4gKiAgICAgV2UgaGF2ZSB0byBpbmhlcml0IGBmb250LWZhbWlseWAgb24gYGJvZHlgIHRvIG92ZXJyaWRlIG1vZGVybi1ub3JtYWxpemXigJlzIGRlZmF1bHRcbiAqICAgICBzeXN0ZW0gYGZvbnQtZmFtaWx5YC4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvbW9kZXJuLW5vcm1hbGl6ZS9pc3N1ZXMvM1xuICogWzVdIFNldCBvdXIgc2l0ZXMgYmFja2dyb3VuZCBjb2xvciBnbG9iYWxseS5cbiAqIFs2XSBTZXQgb3VyIGJhc2UgdGV4dCBjb2xvciBnbG9iYWxseS5cbiAqIFs3XSBQcm9ncmVzc2l2ZWx5IGVuaGFuY2VkIHNtb290aCBzY3JvbGxpbmcuXG4gKiAgICAgU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RlL2RvY3MvV2ViL0NTUy9zY3JvbGwtYmVoYXZpb3JcbiAqIFs4XSBJZiB0aGUgdXNlciBwcmVmZXJzIHJlZHVjZWQgbW90aW9uLCBzZXQgdHJhbnNpdGlvbiBkdXJhdGlvbiB0byBgMGAuXG4gKiAgICAgVGhlIENTUyBjdXN0b20gcHJvcGVydHkgaXMgYmVpbmcgdXNlZCBieSBgMDItdG9vbHMvX3Rvb2xzLnRyYW5zaXRpb24uc2Nzc2AuXG4gKiBbOV0gSWYgdGhlIHVzZXIgcHJlZmVycyByZWR1Y2VkIG1vdGlvbiwgZGlzYWJsZSBzbW9vdGggc2Nyb2xsaW5nIGFuaW1hdGlvbnMuXG4gKi9cbmh0bWwge1xuICBtaW4taGVpZ2h0OiAxMDAlOyAvKiBbMV0gKi9cbiAgb3ZlcmZsb3cteTogaW5pdGlhbDsgLyogWzJdICovXG4gIGZvbnQtZmFtaWx5OiBcInNrb2RhLW5leHRcIiwgQXJpYWwsIHNhbnMtc2VyaWY7IC8qIFs0XSAqL1xuICBmb250LXdlaWdodDogMzAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyAvKiBbNV0gKi9cbiAgY29sb3I6ICMxNjE3MTg7IC8qIFs2XSAqL1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7IC8qIFs3XSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogWzNdICovXG4gIGxpbmUtaGVpZ2h0OiAxLjU7IC8qIFszXSAqL1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9tZWRpYS1mZWF0dXJlLXZhbHVlLWRvbGxhci12YXJpYWJsZSAqL1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSksICh1cGRhdGU6IHNsb3cpIHtcbiAgaHRtbCB7XG4gICAgLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uOiAwO1xuICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bztcbiAgfVxufVxuXG4vKipcbiAqIEFzc2lnbiB0aGUgYmFzZSBmb250LXNpemUgdG8gdGhlIHBhZ2UuIFRoZSBgcmVzcG9uc2l2ZS1mb250LXNpemVgIG1peGluIGhhc1xuICogdG8gYmUgYXNzaWduZWQgdG8gdGhlIGJvZHkgZWxlbWVudCB0byB3b3JrIHByb3Blcmx5IGZvciBhbGwgZWxlbWVudHMgdGhhdCBnZXRcbiAqIHRoZWlyIGZvbnQtc2l6ZSB2aWEgdGhlIGBmb250LXNpemVgIG1peGluLlxuICovXG5ib2R5IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogWzRdICovXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNERUZJTklUSU9OIExJU1RcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBAREVQUkVDQVRFRDogVGhlIHVzZSBvZiBgZGxgIGZvciBzcGVjaWZpYyBzdHlsaW5nIGlzIGRlcHJlY2F0ZWQuXG4gKiAgICAgICAgICAgICAgVXNlIHRoZSBEZXNjcmlwdGlvbiBMaXN0IGNvbXBvbmVudCBpbnN0ZWFkLlxuICovXG5kdCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG5cbmRkIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogIzE2MTcxODtcbn1cbmRkOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjRUxFTUVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuYnV0dG9uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTEFCRUxcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBOYXRpdmUgPGxhYmVsPiBIVE1MIGVsZW1lbnQuXG4gKi9cbmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTElTVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LWNvbWJpbmF0b3JzLCBzZWxlY3Rvci1tYXgtY29tcG91bmQtc2VsZWN0b3JzLCBzZWxlY3Rvci1tYXgtdHlwZSAqL1xuLyoqXG4gKiBbMV0gU2Vjb25kIGxldmVsIGxpc3RzIGhhdmUgYSBzbWFsbGVyIHNwYWNpbmcgb24gdG9wIGFuZFxuICogICAgIGEgbm9ybWFsIG9uZSBhdCB0aGUgYm90dG9tLlxuICogWzJdIFRoaXJkIGxldmVsIGxpc3RzIGhhdmUgYSBzbWFsbGVyIHNwYWNpbmcgb24gdG9wIGFuZFxuICogICAgIGF0IHRoZSBib3R0b20uXG4gKiBbM10gT2Zmc2V0IGJ5IG9uZSBjaGFyYWN0ZXIgdG8gYWxpZ24gY29udGFpbmVyIHdpdGggMiBkaWdpdCBpbmRleFxuICogICAgIGFuZCBwcmV2ZW50IGN1dC1vZmYuXG4gKiAgICAgVGhpcyBkZXBlbmRzIG9uIHRoZSBmb250LCBmb250LXNpemUgYW5kIGdsb2JhbC1zcGFjaW5nLCBzbyBhIGZsYWcgaXMgdXNlZFxuICogICAgIHRvIHNlbGVjdGl2ZWx5IHNldCBpdCBwZXIgYnJhbmQuXG4gKi9cbnVsIGxpLFxub2wgbGkge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxudWwgbGkgPiB1bCxcbnVsIGxpID4gb2wsXG5vbCBsaSA+IHVsLFxub2wgbGkgPiBvbCB7XG4gIG1hcmdpbi10b3A6IDhweDsgLyogWzFdICovXG4gIG1hcmdpbi1ib3R0b206IDA7IC8qIFsxXSAqL1xufVxudWwgbGkgPiB1bCBsaSxcbnVsIGxpID4gb2wgbGksXG5vbCBsaSA+IHVsIGxpLFxub2wgbGkgPiBvbCBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG51bCBsaSA+IHVsIGxpID4gdWwsXG51bCBsaSA+IG9sIGxpID4gdWwsXG5vbCBsaSA+IHVsIGxpID4gdWwsXG5vbCBsaSA+IG9sIGxpID4gdWwge1xuICBtYXJnaW4tYm90dG9tOiA4cHg7IC8qIFsyXSAqL1xufVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSFJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuaHIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7XG4gIC8qKlxuICAgKiBbMV0gQ2hlY2sgaWYgYSB0aGVtZSBpcyBzZXQgb3IgaWYgdGhlIGRlZmF1bHQgdGhlbWUgKG51bGwpIGlzIHVzZWQuXG4gICAqICAgICBJZiB0aGUgYGRlZmF1bHRgIHRoZW1lIGlzIHVzZWQgd2UgZXhlY3V0ZSB0aGUgYWxyZWFkeSBwcmVzZW50IGxvZ2ljLFxuICAgKiAgICAgZWxzZSB3ZSBqdXN0IHJldHVybiB0aGUgY29udGVudCB1bndyYXBwZWQuXG4gICAqL1xufVxuLyogWzFdICovXG5bZGF0YS10aGVtZT1hbHRlcm5hdGl2ZV0gaHIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTYxNzE4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQU5DSE9SXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIEV4Y2x1ZGUgYC5jLWJ0bmAgYmVjYXVzZSBidXR0b25zIHNob3VsZCBhbHdheXMgaGF2ZSB0aGUgc2FtZSBiZWhhdmlvciBpblxuICogICAgIGFsbCBzdGF0ZXMgcmVnYXJkbGVzcyBvZiB0aGUgZWxlbWVudC4gYHdoZXJlKClgaXMgdXNlZCB0byBub3QgaW5jcmVhc2VcbiAqICAgICB0aGUgc3BlY2lmaWNpdHkuXG4gKi9cbmE6d2hlcmUoOm5vdCguYy1idG4pKSB7IC8qIFsxXSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLyogWzJdICovXG59XG5hOndoZXJlKDpub3QoLmMtYnRuKSk6aG92ZXIge1xuICAvKiBbMl0gKi9cbn1cbmE6d2hlcmUoOm5vdCguYy1idG4pKTpmb2N1cyB7XG4gIC8qIFsyXSAqL1xufVxuYTp3aGVyZSg6bm90KC5jLWJ0bikpOmFjdGl2ZSB7XG4gIC8qIFsyXSAqL1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjU1RST05HIChgPGI+YCwgYDxzdHJvbmc+YClcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gU2V0L092ZXJ3cml0ZSB3ZWlnaHQgdGhhdCBpcyBzZXQgYnkgYG5vcm1hbGl6ZS5jc3NgXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogNzAwOyAvKiBbMV0gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0VMRU1FTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmJ1dHRvbiB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbi8qKlxuICogU3BhY2luZ3MgZGVyaXZlIGZyb20gc3BhY2luZyB0ZW1wbGF0ZSBpbiBzdHlsZWd1aWRlLlxuICogaHR0cHM6Ly93d3cuZmlnbWEuY29tL2ZpbGUvOGN0OHJWQUtDSnlabURtcGpKdVZsdi9GTE9XLS0tV2ViLSUyRi1VSS0xLjAuMD9ub2RlLWlkPTE5NjczJTNBNDE5NzRcbiAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0lOTElORS1HUk9VUFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIEFuIG9iamVjdCB0aGF0IGFycmFuZ2VzIGl0ZW1zIHdpdGggZGVmaW5lZCBob3Jpem9udGFsIGFuZFxuICogdmVydGljYWwgc3BhY2luZyBpbiBhIHJvdy4gSWYgdGhlIGl0ZW1zIGRvIG5vdCBmaXQgaW50byBvbmUgcm93LFxuICogdGhleSB3aWxsIHdyYXAgdG8gdGhlIG5leHQgcm93LlxuICovXG4vKipcbiAqIFsxXSBXZSB1c2UgYGRpc3BsYXk6IGZsZXhgIGluc3RlYWQgb2YgYGRpc3BsYXk6IGlubGluZS1ibG9ja2BcbiAqICAgICB0byBhdm9pZCB1bm5lY2Vzc2FyeSB3aGl0ZSBzcGFjZSBiZXR3ZWVuIGl0ZW1zLlxuICogWzJdIFNldCBzcGFjaW5nIGJldHdlZW4gaXRlbXMgdmlhIGBjb2x1bW4tZ2FwYCBhbmQgYHJvdy1nYXBgIGZvciBmbGV4Ym94LlxuICogWzNdIERlZmVuc2l2ZWx5IHJlc2V0IGFueSBjaGlsZCBlbGVtZW504oCZcyBtYXJnaW5zLlxuICogWzRdIEZvciBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IGBnYXBgIGZvciBmbGV4Ym94IChodHRwczovL2Nhbml1c2UuY29tL2ZsZXhib3gtZ2FwKSxcbiAqICAgICBjcmVhdGUgaG9yaXpvbnRhbCBhbmQgdmVydGljYWwgc3BhY2luZyBiZXR3ZWVuIGl0ZW1zIGJ5IGFkZGluZyBtYXJnaW5zXG4gKiAgICAgYXJvdW5kIGFsbCBzaWRlcyBvZiB0aGUgaXRlbXMgYW5kIGNvbXBlbnNhdGUgdGhpcyBieSBhZGRpbmcgbmVnYXRpdmVcbiAqICAgICBtYXJnaW5zIHRvIHRoZSBjb250YWluZXIuIFRoaXMgY291bGQgcmVzdWx0IGluIG92ZXJmbG93IGlzc3VlcyBpZlxuICogICAgIGAuby1pbmxpbmUtZ3JvdXBg4oCZcyBwYXJlbnQgY29udGFpbmVyIGhhcyBgb3ZlcmZsb3c6IGhpZGRlbmAgb3JcbiAqICAgICBgb3ZlcnNjcm9sbDogc2Nyb2xsYC5cbiAqIFs1XSBTdHJldGNoIGl0ZW1zIHRvIGZpbGwgdGhlIGNvbnRhaW5lci5cbiAqIFs2XSBBbGlnbiBpdGVtcyB0byB0aGUgYm90dG9tLlxuICogWzddIENlbnRlciBpdGVtcyB2ZXJ0aWNhbGx5LlxuICovXG4uby1pbmxpbmUtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4OyAvKiBbMV0gKi9cbiAgZmxleC13cmFwOiB3cmFwOyAvKiBbMV0gKi9cbiAgY29sdW1uLWdhcDogMzJweDsgLyogWzJdICovXG4gIHJvdy1nYXA6IDI0cHg7IC8qIFsyXSAqL1xufVxuXG4uby1pbmxpbmUtZ3JvdXAtLXNtYWxsIHtcbiAgY29sdW1uLWdhcDogMjRweDsgLyogWzJdICovXG4gIHJvdy1nYXA6IDE2cHg7IC8qIFsyXSAqL1xufVxuXG4uby1pbmxpbmUtZ3JvdXBfX2l0ZW0gPiAqIHtcbiAgbWFyZ2luOiAwOyAvKiBbM10gKi9cbn1cblxuLm8taW5saW5lLWdyb3VwLS1zdHJldGNoIC5vLWlubGluZS1ncm91cF9faXRlbSB7XG4gIGZsZXgtZ3JvdzogMTsgLyogWzVdICovXG59XG5cbi5vLWlubGluZS1ncm91cC0tYm90dG9tIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyAvKiBbNl0gKi9cbn1cblxuLm8taW5saW5lLWdyb3VwLS1jZW50ZXIge1xuICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiBbN10gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0xBWU9VVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFRoZSBsYXlvdXQgc3lzdGVtIHVzZXMgYGRpc3BsYXk6IGlubGluZS1ibG9ja2AgdG8gY3JlYXRlIGFuIGV4dHJlbWVseVxuICogcG93ZXJmdWwsIGZsZXhpYmxlIGFsdGVybmF0aXZlIHRvIHRoZSB0cmFkaXRpb25hbCBncmlkIHN5c3RlbS4gQ29tYmluZSB0aGVcbiAqIGxheW91dCBpdGVtcyB3aXRoIHRoZSB3aWR0aHMtY2xhc3NlcyBmb3VuZCBpblxuICogYDEwLXV0aWxpdGllcy9fdXRpbGl0aWVzLndpZHRocy5zY3NzYC5cbiAqXG4gKiBbMWFdIFRoZXNlIHByb3BlcnRpZXMgYWNjZXB0IGEgcmVzcG9uc2l2ZSBtYXAgKHJlc3BvbnNpdmUtcHJvcGVydHkpLlxuICovXG4vKiBbMWFdICovXG4vKiBbMWFdICovXG4vKipcbiAqIFsxXSBBbGxvd3MgdXMgdG8gdXNlIHRoZSBsYXlvdXQgb2JqZWN0IG9uIGFueSB0eXBlIG9mIGVsZW1lbnQuXG4gKiBbMl0gV2UgbmVlZCB0byBkZWZlbnNpdmVseSByZXNldCBhbnkgYm94LW1vZGVsIHByb3BlcnRpZXMuXG4gKiBbM10gVXNlIHRoZSBuZWdhdGl2ZSBtYXJnaW4gdHJpY2sgZm9yIG11bHRpLXJvdyBncmlkczpcbiAqICAgICBodHRwczovL2Nzc3dpemFyZHJ5LmNvbS8yMDExLzA4L2J1aWxkaW5nLWJldHRlci1ncmlkLXN5c3RlbXMvXG4gKiBbNF0gV29ya2Fyb3VuZCBmb3IgdGhlIEhUTUwtY29tbWVudHMgdHJpY2sgdG8gcmVtb3ZlIGFueSB3aGl0ZXNwYWNlIGJldHdlZW5cbiAqICAgICBpdGVtcyBpbiB0aGUgbWFya3VwLlxuICogWzRhXSBSZWRlZmluZSBhIGZvbnQtc2l6ZSB0byBjb21wZW5zYXRlIFs0XS5cbiAqIFs1XSBSZXF1aXJlZCBpbiBvcmRlciB0byBjb21iaW5lIGZsdWlkIHdpZHRocyB3aXRoIGZpeGVkIGd1dHRlcnMuXG4gKiBbNl0gQWxsb3dzIHVzIHRvIG1hbmlwdWxhdGUgZ3JpZHMgdmVydGljYWxseSwgd2l0aCB0ZXh0LWxldmVsIHByb3BlcnRpZXMsIGV0Yy5cbiAqIFs3XSBEZWZhdWx0IGl0ZW0gYWxpZ25tZW50IGlzIHRvcC5cbiAqIFs4XSBCeSBkZWZhdWx0LCBhbGwgbGF5b3V0IGl0ZW1zIGFyZSBmdWxsLXdpZHRoLlxuICogWzldIEd1dHRlcnMgcHJvdmlkZWQgYnkgbGVmdCBwYWRkaW5nOlxuICogICAgIGh0dHBzOi8vY3Nzd2l6YXJkcnkuY29tLzIwMTEvMDgvYnVpbGRpbmctYmV0dGVyLWdyaWQtc3lzdGVtcy9cbiAqIFsxMF0gRGVmaW5lIGEgZGVmYXVsdCB2ZXJ0aWNhbCBzcGFjaW5nIGJldHdlZW4gbGF5b3V0IGl0ZW1zLiBVc2UgYG1hcmdpbi10b3BgXG4gKiAgICAgIGluc3RlYWQgb2YgYG1hcmdpbi1ib3R0b21gLCBzbyBpZiBhIGBtYXJnaW4tYm90dG9tYCBpcyBzZXQgb24gdGhlXG4gKiAgICAgIGAuby1sYXlvdXRgIGNvbnRhaW5lciwgdGhlIG1hcmdpbnMgZG8gbm90IGNvbGxhcHNlLlxuICogWzExXSBJZiB3ZSB1c2UgYC5vLWxheW91dC0tZmx1c2hgLCB3ZSBkbyBub3Qgbm90IHdhbnQgdmVydGljYWwgc3BhY2luZywgdG9vLlxuICogWzEyXSBXaGVuIHRoZSBlcXVhbC1oZWlnaHQgYW5kIHRoZSBjZW50ZXIgdmFyaWFudHMgYXJlIGNvbWJpbmVkLFxuICogICAgICBgdGV4dC1hbGlnbjogY2VudGVyYCBpc24ndCBlbm91Z2ggdG8gY2VudGVyIHRoZSBpdGVtcy5cbiAqIFsxM10gVXNlIGFsaWdubWVudCB2aWEgZmxleGJveCB3aGVuIGJvdGggZXF1YWwtaGVpZ2h0IGFuZCByaWdodCBtb2RpZmllcnNcbiAqICAgICAgYXJlIHVzZWQuXG4gKiBbMTRdIFVzZSBGbGV4Ym94IHRvIGFkanVzdCBhZGphY2VudCBpdGVtcyB0byB0aGUgc2FtZSBoZWlnaHQuXG4gKiBbMTVdIEhpZGUgdmVydGljYWwgYW5kIGhvcml6b250YWwgZGl2aWRlcnMgb3V0c2lkZSBvZiBgLm8tbGF5b3V0YC5cbiAqIFsxNl0gVXNlIHZlcnRpY2FsIGRpdmlkZXIgc3BhY2luZyBiZXR3ZWVuIGl0ZW1zLlxuICogWzE3XSBFcXVhbGl6ZSB0aGUgYm90dG9tIG1hcmdpbiBvZiBgLm8tbGF5b3V0YC5cbiAqICAgICAgU3BlY2lmaWNpdHkgaGFzIHRvIGJlIGluY3JlYXNlZCBieSBwcmVmaXggdGhlIHNlbGVjdG9yIHdpdGggYDpyb290OnJvb3RgXG4gKiAgICAgIHRvIG92ZXJydWxlIG92ZXJseSBzcGVjaWZpYyBydWxlcyBvZiBvdGhlciBjb21wb25lbnRzLlxuICogWzE4XSBVc2UgaG9yaXpvbnRhbCBkaXZpZGVyIHNwYWNpbmcgYmV0d2VlbiBpdGVtcy5cbiAqIFsxOV0gUmVtb3ZlIGJvdHRvbSBtYXJnaW4gb2YgbGFzdCBsYXlvdXQgaXRlbSBjaGlsZC5cbiAqIFsyMF0gQWRkIHNoYXJlZCBkZWNsYXJhdGlvbnMgZm9yIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIGRpdmlkZXJzLlxuICogWzIxXSBVc2UgYDo6YmVmb3JlYCBmb3IgdmVydGljYWwgZGl2aWRlcnMuXG4gKiBbMjJdIFBvc2l0aW9uIHZlcnRpY2FsIGRpdmlkZXJzLlxuICogWzIzXSBDZW50ZXIgdmVydGljYWwgZGl2aWRlcnMgaWYgZGl2aWRlciB3aWR0aCBpcyBhbiBvZGQgdmFsdWUgKDEsIDMsIDUsIOKApikuXG4gKiAgICAgIFRoZSBkaXZpZGVyIHBvc2l0aW9uIHdpbGwgYmUgYWRqdXN0ZWQgdG8gdGhlIG5lYXJlc3QgZnVsbCBwaXhlbFxuICogICAgICBpbiBvcmRlciB0byBhdm9pZCBoYWxmIHBpeGVsIHZhbHVlcyBhbmQgYW50aS1hbGlhc2luZ1xuICogICAgICAoZGVwZW5kaW5nIG9uIHRoZSBzY3JlZW4gcmVzb2x1dGlvbikuXG4gKiBbMjRdIENlbnRlciB2ZXJ0aWNhbCBkaXZpZGVycyBpZiBkaXZpZGVyIHdpZHRoIGlzIGFuIGV2ZW4gdmFsdWUgKDIsIDQsIDYsIOKApikuXG4gKiBbMjVdIFVzZSBgOjphZnRlcmAgZm9yIGhvcml6b250YWwgZGl2aWRlcnMuXG4gKiBbMjZdIFBvc2l0aW9uIGhvcml6b250YWwgZGl2aWRlcnMuXG4gKiBbMjddIENlbnRlciBob3Jpem9udGFsIGRpdmlkZXJzIGlmIGRpdmlkZXIgd2lkdGggaXMgYW4gb2RkIHZhbHVlICgxLCAzLCA1LCDigKYpLlxuICogICAgICBUaGUgZGl2aWRlciBwb3NpdGlvbiB3aWxsIGJlIGFkanVzdGVkIHRvIHRoZSBuZWFyZXN0IGZ1bGwgcGl4ZWxcbiAqICAgICAgaW4gb3JkZXIgdG8gYXZvaWQgaGFsZiBwaXhlbCB2YWx1ZXMgYW5kIGFudGktYWxpYXNpbmdcbiAqICAgICAgKGRlcGVuZGluZyBvbiB0aGUgc2NyZWVuIHJlc29sdXRpb24pLlxuICogWzI4XSBDZW50ZXIgaG9yaXpvbnRhbCBkaXZpZGVycyBpZiBkaXZpZGVyIHdpZHRoIGlzIGFuIGV2ZW4gdmFsdWUgKDIsIDQsIDYsIOKApikuXG4gKiBbMjldIE9uIGVxdWFsLWhlaWdodCBsYXlvdXRzIHRoZSBmbGV4LWl0ZW0gY2hpbGQgZWxlbWVudHMgYXJlIG5vdCB0YWtpbmcgdXAgdGhlXG4gKiAgICAgIGVudGlyZSB3aWR0aCBkdWUgdG8gdGhlIGBkaXNwbGF5OiBmbGV4YCBvbiB0aGUgZmxleC1pdGVtcy5cbiAqICAgICAgVG8gZml4IHRoaXMgd2UgaGF2ZSB0byBtYWtlIHRoZW0gZ3JvdyBhcyB3aWRlIGFzIHRoZWlyIGZsZXgtaXRlbSBwYXJlbnQuXG4gKiBbMzBdIFRoZSBjb21wZW5zYXRpb24gZm9yIHZlcnRpY2FsIGdhcHMgZnJvbSBbMTBdIGNhbiByZXN1bHQgaW4gb3ZlcmxhcHBpbmdcbiAqICAgICAgZWxlbWVudHMgYWJvdmUgdGhlIGxheW91dC1vYmplY3QsIHJlc3VsdGluZyBpbiBibG9ja2VkIGludGVyYWN0aW9uXG4gKiAgICAgIChjbGljaywgdGV4dC1zZWxlY3Rpb24sIGV0Yy4pLiBEaXNhYmxlIGludGVyYWN0aW9uIHZpYSBgcG9pbnRlci1ldmVudHNgXG4gKiAgICAgIG9uIGxheW91dCBhbmQuLi5cbiAqIFszMV0gLi4uUmVzdG9yZSBpbnRlcmFjdGlvbiBvbiBjb250ZW50LlxuICogWzMyXSBQcmV2ZW50IHRvbyB3aWRlIGNvbnRlbnQgaW4gZXF1YWwgaGVpZ2h0IGxheW91dCBpdGVtcyBmcm9tIGFmZmVjdGluZyB0aGVcbiAqICAgICAgbWF4aW11bSB3aWR0aCBvZiBpdHMgbGF5b3V0IGl0ZW0gY29udGFpbmVyLlxuICogWzMzXSBTZXQgdmVydGljYWwgb2Zmc2V0IGZvciB0aGUgZGl2aWRlciBsaW5lLlxuICovXG4uby1sYXlvdXQge1xuICBkaXNwbGF5OiBibG9jazsgLyogWzFdICovXG4gIG1hcmdpbjogMDsgLyogWzJdICovXG4gIHBhZGRpbmc6IDA7IC8qIFsyXSAqL1xuICBmb250LXNpemU6IDA7IC8qIFs0XSAqL1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBsaXN0LXN0eWxlOiBub25lOyAvKiBbMV0gKi9cbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIFszMF0gKi9cbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgbWFyZ2luLXRvcDogLTI0cHg7XG4gIC8qIFsxMF0gKi9cbiAgbWFyZ2luLWxlZnQ6IC0yNHB4O1xuICAvKiBbM10gKi9cbiAgLyogc3R5bGVsaW50LWVuYWJsZSBvcmRlci9vcmRlciAqL1xufVxuLm8tbGF5b3V0ID4gLm8tbGF5b3V0X19pdGVtIHtcbiAgbWFyZ2luLXRvcDogMjRweDtcbiAgLyogWzEwXSAqL1xufVxuLm8tbGF5b3V0Lm8tbGF5b3V0LS1lcXVhbC1oZWlnaHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4uby1sYXlvdXQuby1sYXlvdXQtLWVxdWFsLWhlaWdodC5vLWxheW91dC0tcmlnaHQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyAvKiBbMTNdICovXG59XG5cbi5vLWxheW91dF9faXRlbSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgLyogWzRhXSAqL1xuICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gIC8qIFs5XSAqL1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiBbNV0gKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiBbNl0gKi9cbiAgd2lkdGg6IDEwMCU7IC8qIFs4XSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyAvKiBbN10gKi9cbiAgcG9pbnRlci1ldmVudHM6IGF1dG87IC8qIFszMV0gKi9cbn1cbi5vLWxheW91dC0tbWlkZGxlID4gLm8tbGF5b3V0X19pdGVtIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5vLWxheW91dC0tZXF1YWwtaGVpZ2h0ID4gLm8tbGF5b3V0X19pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi5vLWxheW91dC0tZXF1YWwtaGVpZ2h0ID4gLm8tbGF5b3V0X19pdGVtID4gKiB7XG4gIGZsZXgtZ3JvdzogMTsgLyogWzI5XSAqL1xuICBmbGV4LXNocmluazogMTtcbiAgZmxleC1iYXNpczogYXV0bztcbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiBbMzJdICovXG59XG5cbi8qKlxuICogTGF5b3V0IG1vZGlmaWVyIHRvIGZpbGwgdXAgdGhlIGxheW91dCBzeXN0ZW0gZnJvbSB0aGUgY2VudGVyLlxuICovXG4uby1sYXlvdXQtLWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5vLWxheW91dC0tY2VudGVyLm8tbGF5b3V0LS1lcXVhbC1oZWlnaHQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogWzEyXSAqL1xufVxuLm8tbGF5b3V0LS1jZW50ZXIgPiAuby1sYXlvdXRfX2l0ZW0ge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4vKipcbiAqIExheW91dCBtb2RpZmllciB0byBmaWxsIHVwIHRoZSBsYXlvdXQgc3lzdGVtIGZyb20gdGhlIHJpZ2h0IGhhbmQgc2lkZS5cbiAqL1xuLm8tbGF5b3V0LS1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLm8tbGF5b3V0LS1yaWdodCA+IC5vLWxheW91dF9faXRlbSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi8qKlxuICogTGF5b3V0IG1vZGlmaWVyIHRvIGVsaW1pbmF0ZSB0aGUgc3BhY2luZyBiZXR3ZWVuIHRoZSBsYXlvdXQgaXRlbXMuXG4gKi9cbi5vLWxheW91dC0tZmx1c2gge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXRvcDogMDsgLyogWzExXSAqL1xufVxuLm8tbGF5b3V0LS1mbHVzaCA+IC5vLWxheW91dF9faXRlbSB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luLXRvcDogMDsgLyogWzExXSAqL1xufVxuXG4vKipcbiAqIExheW91dCBtb2RpZmllciB0byBhZGQgaG9yaXpvbnRhbCBhbmQgdmVydGljYWwgZGl2aWRlciBsaW5lc1xuICogYmV0d2VlbiBsYXlvdXQgaXRlbXMuXG4gKi9cbi5vLWxheW91dC0tZGl2aWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7IC8qIFsxNF0gKi9cbiAgZmxleC13cmFwOiB3cmFwOyAvKiBbMTRdICovXG4gIG92ZXJmbG93OiBoaWRkZW47IC8qIFsxNV0gKi9cbiAgbWFyZ2luLXRvcDogLTE2cHg7IC8qIFsxNl0gKi9cbiAgbWFyZ2luLWxlZnQ6IC0zMnB4OyAvKiBbMThdICovXG59XG4uby1sYXlvdXQtLWRpdmlkZXIuby1sYXlvdXQtLWRpdmlkZXIuby1sYXlvdXQtLWRpdmlkZXIge1xuICBtYXJnaW4tYm90dG9tOiAtMTZweDsgLyogWzE3XSAqL1xufVxuLm8tbGF5b3V0LS1kaXZpZGVyID4gLm8tbGF5b3V0X19pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAxNnB4OyAvKiBbMTZdICovXG4gIHBhZGRpbmctbGVmdDogMzJweDsgLyogWzE4XSAqL1xuICBwYWRkaW5nLWJvdHRvbTogMTZweDsgLyogWzE2XSAqL1xufVxuLm8tbGF5b3V0LS1kaXZpZGVyID4gLm8tbGF5b3V0X19pdGVtID4gKjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzE5XSAqL1xufVxuLm8tbGF5b3V0LS1kaXZpZGVyID4gLm8tbGF5b3V0X19pdGVtOjpiZWZvcmUsIC5vLWxheW91dC0tZGl2aWRlciA+IC5vLWxheW91dF9faXRlbTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiOyAvKiBbMjBdICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLyogWzIwXSAqL1xuICBib3JkZXItd2lkdGg6IDFweDsgLyogWzIwXSAqL1xuICBib3JkZXItY29sb3I6ICNlNGU0ZTQ7IC8qIFsyMF0gKi9cbn1cbi5vLWxheW91dC0tZGl2aWRlciA+IC5vLWxheW91dF9faXRlbTo6YmVmb3JlIHsgLyogWzIxXSAqL1xuICB0b3A6IC0xNnB4OyAvKiBbMjJdICovXG4gIGxlZnQ6IDMycHg7IC8qIFsyMl0gKi9cbiAgcmlnaHQ6IDA7IC8qIFsyMl0gKi9cbiAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC41cHgpOyAvKiBbMjRdICovXG4gIG1hcmdpbi10b3A6IC0xcHg7IC8qIFszM10gKi9cbn1cbi5vLWxheW91dC0tZGl2aWRlciA+IC5vLWxheW91dF9faXRlbTo6YWZ0ZXIgeyAvKiBbMjVdICovXG4gIHRvcDogMDsgLyogWzI2XSAqL1xuICBib3R0b206IDE2cHg7IC8qIFsyNl0gKi9cbiAgcmlnaHQ6IC0xNnB4OyAvKiBbMjZdICovXG4gIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAuNXB4KTsgLyogWzI4XSAqL1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTElTVC1CQVJFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogVGhlIGxpc3QtYmFyZSBvYmplY3Qgc2ltcGx5IHJlbW92ZXMgYW55IGluZGVudHMgYW5kIGJ1bGxldCBwb2ludHMgZnJvbSBsaXN0cy5cbiAqXG4gKiBJZiB5b3UgZG9uJ3Qgd2FudCB0byB1c2UgdGhlIGNsYXNzLCB0aGVyZSBpcyBhbHNvIGEgbWl4aW4gYXZhaWxhYmxlLlxuICogKGAwMi10b29scy9fdG9vbHMubGlzdC1iYXJlLnNjc3NgKVxuICovXG4uby1saXN0LWJhcmUge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4uby1saXN0LWJhcmUgbGkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0xJU1QtQ0FTVUFMXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogTGlzdCB3aG9zZSBpdGVtcyBoYXZlIG1vcmUgc3BhY2UgYmV0d2VlbiB0aGVtIHRvIG1ha2UgdGhlIHdob2xlIGxpc3QgbG9vayBhXG4gKiBiaXQgbW9yZSBzcGFjZXkuXG4gKi9cbi5vLWxpc3QtY2FzdWFsIGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0xJU1QtSU5MSU5FXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogVGhlIGxpc3QtaW5saW5lIG9iamVjdCBzaW1wbHkgcmVtb3ZlcyBhbnkgaW5kZW50cyBhbmQgYnVsbGV0IHBvaW50cyBmcm9tXG4gKiBsaXN0cyBhbmQgcHV0cyB0aGVtIGluIGEgaG9yaXpvbnRhbCBvcmRlci5cbiAqIFsxXSBTZXQgYW4gYXBwcm94aW1hdGVseSBzcGFjaW5nIG1hdGNoaW5nIHRoZSBvbmUgd2hpdGVzcGFjZSBjaGFyYWN0ZXJcbiAqICAgICBvZiB0aGUgY3VycmVudCBsaXN0LlxuICovXG4uby1saXN0LWlubGluZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGNvbHVtbi1nYXA6IDAuMjVlbTsgLyogWzFdICovXG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbi5vLWxpc3QtaW5saW5lID4gbGkge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTUVESUFcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBBbiBhZGFwdGlvbiBvZiB0aGUgZmFtb3VzIG1lZGlhIG9iamVjdC5cbiAqIChodHRwOi8vd3d3LnN0dWJib3JuZWxsYS5vcmcvY29udGVudC8yMDEwLzA2LzI1L3RoZS1tZWRpYS1vYmplY3Qtc2F2ZXMtaHVuZHJlZHMtb2YtbGluZXMtb2YtY29kZS8pXG4gKlxuICogV2UgcmV3cml0ZSB0aGUgb3JpZ2luYWwgb25lIHdpdGggYGRpc3BsYXk6IGZsZXhgIHRvIGJlIG1vcmUgZmxleGlibGUuXG4gKi9cbi8qKlxuICogWzFdIE1ha2Ugc3VyZSB0aGUgbWVkaWEgYm9keSB0YWtlcyB1cCBhbGwgdGhlIGF2YWlsYWJsZSBzcGFjZSBpdCBuZWVkcyBpZlxuICogICAgIGl0cyBjb250ZW50IGlzIG5vdCB0aGF0IGxvbmcuXG4gKiBbMl0gRml4IHRvIG1ha2UgdGV4dCB0cnVuY2F0ZSBwb3NzaWJsZSBpbnNpZGUgb2YgbWVkaWEgYm9keSAobmVlZGVkIGZvciB0aGVcbiAqICAgICBjb250YWN0IGxpc3QpLlxuICovXG4uby1tZWRpYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIC8qKlxuICAgKiBTdGFjayB0aGUgaW1hZ2Ugb24gdG9wIG9mIHRoZSBtZWRpYSBjb250ZW50IG9uIHNtYWxsIHNjcmVlbi5cbiAgICovXG59XG4uby1tZWRpYS5vLW1lZGlhLS1yZXZlcnNlZCB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuby1tZWRpYS5vLW1lZGlhLS1jb2x1bW5cXEBzIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLm8tbWVkaWEuby1tZWRpYS0tY29sdW1uLXJldmVyc2VcXEBzIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gIH1cbn1cblxuLm8tbWVkaWFfX2ltZyB7XG4gIGZsZXgtZ3JvdzogMDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIG1hcmdpbi1yaWdodDogMjRweDtcbn1cbi5vLW1lZGlhLS1zbWFsbCAuby1tZWRpYV9faW1nIHtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xufVxuLm8tbWVkaWEtLWxhcmdlIC5vLW1lZGlhX19pbWcge1xuICBtYXJnaW4tcmlnaHQ6IDMycHg7XG59XG4uby1tZWRpYS0teGxhcmdlIC5vLW1lZGlhX19pbWcge1xuICBtYXJnaW4tcmlnaHQ6IDQ4cHg7XG59XG4uby1tZWRpYS0tcmV2ZXJzZWQgLm8tbWVkaWFfX2ltZyB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDI0cHg7XG59XG4uby1tZWRpYS0tcmV2ZXJzZWQuby1tZWRpYS0tc21hbGwgLm8tbWVkaWFfX2ltZyB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufVxuLm8tbWVkaWEtLXJldmVyc2VkLm8tbWVkaWEtLWxhcmdlIC5vLW1lZGlhX19pbWcge1xuICBtYXJnaW4tbGVmdDogMzJweDtcbn1cbi5vLW1lZGlhLS1yZXZlcnNlZC5vLW1lZGlhLS14bGFyZ2UgLm8tbWVkaWFfX2ltZyB7XG4gIG1hcmdpbi1sZWZ0OiA0OHB4O1xufVxuLm8tbWVkaWEtLW1pZGRsZSAuby1tZWRpYV9faW1nIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuLm8tbWVkaWEtLWJvdHRvbSAuby1tZWRpYV9faW1nIHtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLm8tbWVkaWEtLWNvbHVtblxcQHMgLm8tbWVkaWFfX2ltZyB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuby1tZWRpYS0tY29sdW1uLXJldmVyc2VcXEBzIC5vLW1lZGlhX19pbWcge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuby1tZWRpYS0tcmV2ZXJzZWQuby1tZWRpYS0tY29sdW1uXFxAcyAuby1tZWRpYV9faW1nIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuby1tZWRpYS0tcmV2ZXJzZWQuby1tZWRpYS0tY29sdW1uLXJldmVyc2VcXEBzIC5vLW1lZGlhX19pbWcge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxufVxuXG4uby1tZWRpYV9fYm9keSB7XG4gIGZsZXgtZ3JvdzogMTsgLyogWzFdICovXG4gIGZsZXgtc2hyaW5rOiAxO1xuICBmbGV4LWJhc2lzOiBhdXRvO1xuICBtaW4td2lkdGg6IDA7IC8qIFsyXSAqL1xufVxuLm8tbWVkaWFfX2JvZHkgPiAqOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLm8tbWVkaWEtLW1pZGRsZSAuby1tZWRpYV9fYm9keSB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cbi5vLW1lZGlhLS1ib3R0b20gLm8tbWVkaWFfX2JvZHkge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuby1tZWRpYS0tY29sdW1uLXJldmVyc2VcXEBzIC5vLW1lZGlhX19ib2R5IHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNSQVRJT1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFdpdGggdGhlIFJhdGlvIG9iamVjdCAuby1yYXRpbyB5b3UgY2FuIHNldCBmaXhlZCBpbnRyaW5zaWMgYXNwZWN0IHJhdGlvcyBmb3JcbiAqIGNlcnRhaW4gZWxlbWVudHMgKGUuZy4gaW1hZ2VzLCB2aWRlb3MsIGlmcmFtZXMgb3IgZW1iZWRkZWQgY29udGVudCkgdGhhdCB3aWxsXG4gKiBiZSBrZXB0IHJlZ2FyZGxlc3Mgb2YgdGhlIGNvbnRlbnQgZXZlbiB3aGVuIHNjYWxlZC5cbiAqXG4gKiBTZWUgaHR0cDovL2FsaXN0YXBhcnQuY29tL2FydGljbGUvY3JlYXRpbmctaW50cmluc2ljLXJhdGlvcy1mb3ItdmlkZW9cbiAqL1xuLyoqXG4gKiAxLiBDcmVhdGUgcmF0aW8tYm91bmQgY29udGVudCBibG9jaywgdG8ga2VlcCBtZWRpYSAoZS5nLiBpbWFnZXMsIHZpZGVvcykgaW5cbiAqICAgIHRoZWlyIGNvcnJlY3QgYXNwZWN0IHJhdGlvcy5cbiAqICAgIFdlIG9ubHkgc2V0IGEgcmF0aW8gaWYgYSBgLm8tcmF0aW8tLWAgbW9kaWZpZXIgY2xhc3MgaXMgc2V0IGFzIHdlbGwgdG9cbiAqICAgIGF2b2lkIHVud2FudGVkIGxheW91dCBlcnJvcnMgd2hlbiBubyBzcGVjaWZpYyByYXRpbyB3YXMgc3BlY2lmaWVkIHdpdGggdGhlXG4gKiAgICBgLm8tcmF0aW8tLWAgbW9kaWZpZXIuXG4gKiAyLiBUaGUgYC5vLXJhdGlvYCBjb250YWluZXIgd2lsbCBiZSB1c2VkIGFzIGEgYm94IHdpdGggYW4gaW50cmluc2ljIHJhdGlvIGJ5XG4gKiAgICBhZGRpbmcgYSBgcGFkZGluZy1ib3R0b21gIHdpdGggdGhlIGAuby1yYXRpby0tYCBtb2RpZmllciBjbGFzcyB3aGljaCBzZXRzXG4gKiAgICB0aGUgcmF0aW8uXG4gKiAzLiBUaGUgY2hpbGQgZWxlbWVudCB3aWxsIGJlIHBvc2l0aW9uZWQgYWJzb2x1dGVseSBzbyB0aGF0IGl0IGNvdmVycyB0aGVcbiAqICAgIGVudGlyZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIGAuby1yYXRpb2AuXG4gKi9cbi5vLXJhdGlvW2NsYXNzKj1vLXJhdGlvLS1dIHsgLyogWzFdICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogWzJdICovXG4gIGRpc3BsYXk6IGJsb2NrOyAvKiBbMl0gKi9cbn1cbi5vLXJhdGlvW2NsYXNzKj1vLXJhdGlvLS1dOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiOyAvKiBbMl0gKi9cbiAgZGlzcGxheTogYmxvY2s7IC8qIFsyXSAqL1xuICB3aWR0aDogMTAwJTsgLyogWzJdICovXG59XG4uby1yYXRpb1tjbGFzcyo9by1yYXRpby0tXSA+IC5vLXJhdGlvX19jb250ZW50LFxuLm8tcmF0aW9bY2xhc3MqPW8tcmF0aW8tLV0gPiBpZnJhbWUsXG4uby1yYXRpb1tjbGFzcyo9by1yYXRpby0tXSA+IGVtYmVkLFxuLm8tcmF0aW9bY2xhc3MqPW8tcmF0aW8tLV0gPiBvYmplY3Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qIFszXSAqL1xuICB0b3A6IDA7IC8qIFszXSAqL1xuICBib3R0b206IDA7IC8qIFszXSAqL1xuICBsZWZ0OiAwOyAvKiBbM10gKi9cbiAgcmlnaHQ6IDA7IC8qIFszXSAqL1xuICB3aWR0aDogMTAwJTsgLyogWzNdICovXG4gIGhlaWdodDogMTAwJTsgLyogWzNdICovXG59XG5cbi8qKlxuICogUmF0aW8gdmFyaWFudHMuXG4gKiBHZW5lcmF0ZSBhIHNlcmllcyBvZiByYXRpbyBjbGFzc2VzIHRvIGJlIHVzZWQgbGlrZSBzbzpcbiAqXG4gKiAgIDxkaXYgY2xhc3M9XCJvLXJhdGlvICBvLXJhdGlvLS0xNjo5XCI+XG4gKlxuICovXG4uby1yYXRpby0tMVxcOjE6YmVmb3JlIHtcbiAgcGFkZGluZy1ib3R0b206IDEwMCU7IC8qIFsyXSAqL1xufVxuXG4uby1yYXRpby0tNFxcOjM6YmVmb3JlIHtcbiAgcGFkZGluZy1ib3R0b206IDc1JTsgLyogWzJdICovXG59XG5cbi5vLXJhdGlvLS0xNlxcOjk6YmVmb3JlIHtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI1JTsgLyogWzJdICovXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNQQUdFLVdSQVBcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gQWRkIHBhZ2Ugd3JhcCB3aWR0aHMgYXMgQ1NTIGN1c3RvbSBwcm9wZXJ0eSBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGluXG4gKiAgICAgY2FsY3VsYXRpb25zIChlLmcuIGZvciB0aGUgRmxvYXQgZ3JpZCkuXG4gKiBbMl0gQWRkIHZhcmlhbnRzLCBlLmcuIGAuby1wYWdlLXdyYXAtLXNtYWxsYC5cbiAqL1xuOnJvb3Qge1xuICAtLXBhZ2Utd3JhcC13aWR0aDogMTI0OHB4OyAvKiBbMV0gKi9cbn1cblxuLm8tcGFnZS13cmFwIHtcbiAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDE5MnB4KTtcbiAgcGFkZGluZy1sZWZ0OiA5NnB4O1xuICBwYWRkaW5nLXJpZ2h0OiA5NnB4O1xuICAtLXBhZ2Utd3JhcDogOTZweDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgLyogWzJdICovXG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLm8tcGFnZS13cmFwIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTI0OHB4ICsgOTZweCk7XG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHg7XG4gICAgLS1wYWdlLXdyYXA6IDQ4cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuby1wYWdlLXdyYXAge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyA0OHB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgICAtLXBhZ2Utd3JhcDogMjRweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5vLXBhZ2Utd3JhcCB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDI0cHgpO1xuICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xuICAgIC0tcGFnZS13cmFwOiAxMnB4O1xuICB9XG59XG4uby1wYWdlLXdyYXAuby1wYWdlLXdyYXAtLW1lZGl1bSB7XG4gIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyAxOTJweCk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLm8tcGFnZS13cmFwLm8tcGFnZS13cmFwLS1tZWRpdW0ge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyA5NnB4KTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5vLXBhZ2Utd3JhcC5vLXBhZ2Utd3JhcC0tbWVkaXVtIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTI0OHB4ICsgNDhweCk7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuby1wYWdlLXdyYXAuby1wYWdlLXdyYXAtLW1lZGl1bSB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDI0cHgpO1xuICB9XG59XG4uby1wYWdlLXdyYXAuby1wYWdlLXdyYXAtLXNtYWxsIHtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwNDBweCArIDE5MnB4KTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuby1wYWdlLXdyYXAuby1wYWdlLXdyYXAtLXNtYWxsIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTA0MHB4ICsgOTZweCk7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuby1wYWdlLXdyYXAuby1wYWdlLXdyYXAtLXNtYWxsIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTA0MHB4ICsgNDhweCk7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuby1wYWdlLXdyYXAuby1wYWdlLXdyYXAtLXNtYWxsIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTA0MHB4ICsgMjRweCk7XG4gIH1cbn1cbi5vLXBhZ2Utd3JhcC5vLXBhZ2Utd3JhcC0teHNtYWxsIHtcbiAgbWF4LXdpZHRoOiBjYWxjKDgzMnB4ICsgMTkycHgpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5vLXBhZ2Utd3JhcC5vLXBhZ2Utd3JhcC0teHNtYWxsIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoODMycHggKyA5NnB4KTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5vLXBhZ2Utd3JhcC5vLXBhZ2Utd3JhcC0teHNtYWxsIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoODMycHggKyA0OHB4KTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5vLXBhZ2Utd3JhcC5vLXBhZ2Utd3JhcC0teHNtYWxsIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoODMycHggKyAyNHB4KTtcbiAgfVxufVxuLm8tcGFnZS13cmFwLm8tcGFnZS13cmFwLS14eHNtYWxsIHtcbiAgbWF4LXdpZHRoOiBjYWxjKDYyNHB4ICsgMTkycHgpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5vLXBhZ2Utd3JhcC5vLXBhZ2Utd3JhcC0teHhzbWFsbCB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDYyNHB4ICsgOTZweCk7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuby1wYWdlLXdyYXAuby1wYWdlLXdyYXAtLXh4c21hbGwge1xuICAgIG1heC13aWR0aDogY2FsYyg2MjRweCArIDQ4cHgpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLm8tcGFnZS13cmFwLm8tcGFnZS13cmFwLS14eHNtYWxsIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoNjI0cHggKyAyNHB4KTtcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTUFJTi1DT05UQUlORVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gRW5hYmxlIHRoZSBmb290ZXIgdG8gYmUgcG9zaXRpb25lZCBhdCB0aGUgYm90dG9tIG9mIHRoZSB2aWV3cG9ydFxuICogICAgIGlmIHRoZSBjb250ZW50IGlzIG5vdCBhcyBoaWdoIGFzIHRoZSByZW1haW5pbmcgc3BhY2UuXG4qL1xuLm8tcm9vdCB7XG4gIGRpc3BsYXk6IGZsZXg7IC8qIFsxXSAqL1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyAvKiBbMV0gKi9cbiAgbWluLWhlaWdodDogMTAwdmg7IC8qIFsxXSAqL1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTUFJTi1XUkFQUEVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIFN0cmV0Y2ggdGhlIGNvbnRlbnQgb2YgdGhlIG1haW4gc2VsZWN0b3IgdG8gcHVzaFxuICogICAgIGRvd24gdGhlIGZvb3Rlciwgd2hlbiB0aGUgY29udGVudCBpcyB0b28gc2hhbGxvdy5cbiovXG4uby1tYWluIHtcbiAgZmxleC1ncm93OiAxOyAvKiBbMV0gKi9cbiAgZmxleC1zaHJpbms6IDE7IC8qIFsxXSAqL1xuICBmbGV4LWJhc2lzOiBhdXRvOyAvKiBbMV0gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZJRUxEU0VUXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogSGFuZGxlIHNwYWNpbmdzIGJldHdlZW4gZm9ybSBlbGVtZW50cyBpbiBmb3JtIHNldHMuXG4gKi9cbi5vLWZpZWxkc2V0Om5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuXG4uby1maWVsZHNldF9fcm93Om5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQlVUVE9OLUNPTlRBSU5FUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBJZiBpdOKAmXMgdGhlIG9ubHkgYnV0dG9uLCBsaW1pdCBpdHMgd2lkdGggb24gbGFyZ2VyIHZpZXdwb3J0cy5cbiAqIFsyXSBTaG93IGxhc3QgYnV0dG9uICh1c3VhbGx5IENUQSkgb24gdG9wIHdoZW4gYnV0dG9ucyBhcmUgc3RhY2tlZCB2ZXJ0aWNhbGx5LlxuICogWzNdIENvbWJpbmUgcG9zaXRpb25pbmcgb3B0aW9ucyBmb3IgbmF2IG1vZGlmaWVyIGJhc2VkIG9uIGRlZmluZWQgYWxpZ25tZW50LlxuICogICAgIFRoaXMgYWxsb3dzIGZsZXhpYmlsaXR5IGZvciBicmFuZHMgd2l0aCBvbmUtbWFya3VwLlxuICogWzRdIE1ha2Ugc3VyZSB0aGF0IHRoZSBidXR0b25zIGluIGEgbmF2aWdhdGlvbmFsIGNvbnRleHRcbiAqICAgICBjb2xsYXBzZSB0byBpdHMgY29udGVudC5cbiAqIFs1XSBTZXQgYSBtYXgtd2lkdGggZm9yIHRoZSBuYXYgYnV0dG9ucyBhcyB3ZSBhbGxvdyB0aGVtXG4gKiAgICAgdG8gZ3JvdyB2aWEgaXRzIGNvbnRlbnQuIEFsbG93IGZ1bGwgd2lkdGggYnV0dG9ucyBmb3Igc21hbGxcbiAqICAgICB2aWV3cG9ydHMgYXMgdGhleSBhcmUgc3RhY2tlZCBvbiB0b3AgZWFjaCBvdGhlciBidXRcbiAqICAgICBsaW1pdCB0aGVtIG9uIGxhcmdlciB2aWV3cG9ydHMuXG4gKiBbNl0gT24gbGFyZ2VyIHZpZXdwb3J0cyB3ZSBhbGxvdyB0aGUgYnV0dG9uIHRvIGdyb3cgdXAgdG8gaXRzIGhhbGYtd2lkdGhcbiAqICAgICBkZXBlbmRpbmcgb24gdGhlIGJ1dCBhc3N1cmUgYWxzbyBhIG1pbi13aWR0aC5cbiAqIFs3XSBCb3RoIHJldmVyc2UgbW9kaWZpZXIgc2hhcmUgdGhlIHNhbWUgcmV2ZXJzZWQgZmxleCBkaXJlY3Rpb24uXG4gKiBbOF0gQXBwbHkgYHJvdy1yZXZlcnNlYCBvbmx5IGZvciBub24tdmVydGljYWwgZGlyZWN0aW9ucyBhbmQgYmlnZ2VyIHZpZXdwb3J0c1xuICogICAgIGFuZCByZXNldCB0aGUgYnV0dG9uIHNwYWNpbmdzIGFjY29yZGluZ2x5LlxuICogWzldIE92ZXJyaWRlIHRoZSBAZXh0ZW5kIGZvciBzbWFsbGVyIHZpZXdwb3J0cyBhcyB0aGUgbmF2LXZhcmlhbnQgYWx3YXlzXG4gKiAgICAgIHVzZXMgY2VudGVyZWQgaXRlbXMuXG4gKiBbMTBdIFB1bGwgdGhlIHJldmVyc2VkIGl0ZW1zIHRvIHRoZSBvcHBvc2l0ZSBzaWRlLlxuICogWzExXSBXcmFwIGlmIHRoZSBpdGVtcyBleGNlZWQgdGhlIGF2YWlsYWJsZSBzcGFjZS5cbiAqIFsxMl0gTWFrZSB0aGUgYnV0dG9uIGF0IGxlYXN0IGFzIHdpZGUgdG8gZml0IHRoZSBjb250ZW50IGluc2lkZSB0aGUgY3VycmVudCBhdmFpbGFibGUgc3BhY2UuXG4gKiBbMTNdIFRoZSBzdHJldGNoIHZhcmlhbnQgZm9yY2VzIGEgZnVsbC13aWR0aCBsYXlvdXQuXG4gKi9cbi5vLWJ1dHRvbi1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IC8qIFsxMV0gKi9cbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgY29sdW1uLWdhcDogOHB4O1xuICByb3ctZ2FwOiAxNnB4O1xufVxuXG4uby1idXR0b24tY29udGFpbmVyLS1zdHJldGNoIHsgLyogWzEzXSAqLyB9XG4uby1idXR0b24tY29udGFpbmVyLS1zdHJldGNoIC5vLWJ1dHRvbi1jb250YWluZXJfX2J1dHRvbiB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgZmxleC1zaHJpbms6IDE7XG4gIGZsZXgtYmFzaXM6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IGluaXRpYWw7XG59XG5cbi5vLWJ1dHRvbi1jb250YWluZXItLW5vd3JhcCB7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xufVxuXG4uby1idXR0b24tY29udGFpbmVyLS13cmFwLXJldmVyc2Uge1xuICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTtcbn1cblxuLm8tYnV0dG9uLWNvbnRhaW5lci0tY2VudGVyLCAuby1idXR0b24tY29udGFpbmVyLS1uYXYge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm8tYnV0dG9uLWNvbnRhaW5lci0tbGVmdCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLm8tYnV0dG9uLWNvbnRhaW5lci0tcmlnaHQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4uby1idXR0b24tY29udGFpbmVyLS1uYXYgeyAvKiBbM10gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovXG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLm8tYnV0dG9uLWNvbnRhaW5lci0tbmF2IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICAuby1idXR0b24tY29udGFpbmVyLS1uYXYgLm8tYnV0dG9uLWNvbnRhaW5lcl9fYnV0dG9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuLm8tYnV0dG9uLWNvbnRhaW5lci0tbmF2IC5vLWJ1dHRvbi1jb250YWluZXJfX2J1dHRvbiB7XG4gIGZsZXgtZ3JvdzogMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICAuby1idXR0b24tY29udGFpbmVyLS1uYXYgLm8tYnV0dG9uLWNvbnRhaW5lcl9fYnV0dG9uIHtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7IC8qIFs0XSAqL1xuICAgIG1heC13aWR0aDogNTAlOyAvKiBbNV0gKi9cbiAgfVxufVxuXG4uby1idXR0b24tY29udGFpbmVyLS1yZXZlcnNlIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyAvKiBbOF0gKi9cbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG9yZGVyL29yZGVyICovXG59XG4uby1idXR0b24tY29udGFpbmVyLS1yZXZlcnNlLm8tYnV0dG9uLWNvbnRhaW5lci0tbGVmdCAuby1idXR0b24tY29udGFpbmVyX19idXR0b246Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87IC8qIFsxMF0gKi9cbn1cbi5vLWJ1dHRvbi1jb250YWluZXItLXJldmVyc2Uuby1idXR0b24tY29udGFpbmVyLS1yaWdodCAuby1idXR0b24tY29udGFpbmVyX19idXR0b246bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvOyAvKiBbMTBdICovXG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLm8tYnV0dG9uLWNvbnRhaW5lci0tcmV2ZXJzZS5vLWJ1dHRvbi1jb250YWluZXItLWxlZnRcXEBzIC5vLWJ1dHRvbi1jb250YWluZXJfX2J1dHRvbjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyAvKiBbMTBdICovXG4gIH1cbiAgLm8tYnV0dG9uLWNvbnRhaW5lci0tcmV2ZXJzZS5vLWJ1dHRvbi1jb250YWluZXItLXJpZ2h0XFxAcyAuby1idXR0b24tY29udGFpbmVyX19idXR0b246bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IC8qIFsxMF0gKi9cbiAgfVxufVxuXG4uby1idXR0b24tY29udGFpbmVyLS12ZXJ0aWNhbCB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG9yZGVyL29yZGVyICovXG59XG4uby1idXR0b24tY29udGFpbmVyLS12ZXJ0aWNhbC5vLWJ1dHRvbi1jb250YWluZXItLWxlZnQge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cbi5vLWJ1dHRvbi1jb250YWluZXItLXZlcnRpY2FsLm8tYnV0dG9uLWNvbnRhaW5lci0tY2VudGVyLCAuby1idXR0b24tY29udGFpbmVyLS12ZXJ0aWNhbC5vLWJ1dHRvbi1jb250YWluZXItLW5hdiB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uby1idXR0b24tY29udGFpbmVyLS12ZXJ0aWNhbC5vLWJ1dHRvbi1jb250YWluZXItLXJpZ2h0IHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xufVxuLm8tYnV0dG9uLWNvbnRhaW5lci0tdmVydGljYWwuby1idXR0b24tY29udGFpbmVyLS1yZXZlcnNlIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5vLWJ1dHRvbi1jb250YWluZXItLXZlcnRpY2FsLm8tYnV0dG9uLWNvbnRhaW5lci0tbGVmdFxcQHMge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB9XG4gIC5vLWJ1dHRvbi1jb250YWluZXItLXZlcnRpY2FsLm8tYnV0dG9uLWNvbnRhaW5lci0tY2VudGVyXFxAcyB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICAuby1idXR0b24tY29udGFpbmVyLS12ZXJ0aWNhbC5vLWJ1dHRvbi1jb250YWluZXItLXJpZ2h0XFxAcyB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICB9XG4gIC5vLWJ1dHRvbi1jb250YWluZXItLXZlcnRpY2FsLm8tYnV0dG9uLWNvbnRhaW5lci0tcmV2ZXJzZVxcQHMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLm8tYnV0dG9uLWNvbnRhaW5lci0tbGVmdFxcQHMge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLm8tYnV0dG9uLWNvbnRhaW5lci0tY2VudGVyXFxAcyB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5vLWJ1dHRvbi1jb250YWluZXItLXJpZ2h0XFxAcyB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLm8tYnV0dG9uLWNvbnRhaW5lci0tdmVydGljYWxcXEBzIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG4gIC5vLWJ1dHRvbi1jb250YWluZXItLXZlcnRpY2FsXFxAcy5vLWJ1dHRvbi1jb250YWluZXItLWxlZnQsIC5vLWJ1dHRvbi1jb250YWluZXItLXZlcnRpY2FsXFxAcy5vLWJ1dHRvbi1jb250YWluZXItLWxlZnRcXEBzIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgfVxuICAuby1idXR0b24tY29udGFpbmVyLS12ZXJ0aWNhbFxcQHMuby1idXR0b24tY29udGFpbmVyLS1jZW50ZXIsIC5vLWJ1dHRvbi1jb250YWluZXItLXZlcnRpY2FsXFxAcy5vLWJ1dHRvbi1jb250YWluZXItLW5hdiwgLm8tYnV0dG9uLWNvbnRhaW5lci0tdmVydGljYWxcXEBzLm8tYnV0dG9uLWNvbnRhaW5lci0tY2VudGVyXFxAcyB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICAuby1idXR0b24tY29udGFpbmVyLS12ZXJ0aWNhbFxcQHMuby1idXR0b24tY29udGFpbmVyLS1yaWdodCwgLm8tYnV0dG9uLWNvbnRhaW5lci0tdmVydGljYWxcXEBzLm8tYnV0dG9uLWNvbnRhaW5lci0tcmlnaHRcXEBzIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIH1cbiAgLm8tYnV0dG9uLWNvbnRhaW5lci0tdmVydGljYWxcXEBzLm8tYnV0dG9uLWNvbnRhaW5lci0tcmV2ZXJzZSwgLm8tYnV0dG9uLWNvbnRhaW5lci0tdmVydGljYWxcXEBzLm8tYnV0dG9uLWNvbnRhaW5lci0tcmV2ZXJzZVxcQHMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgfVxufVxuXG4uby1idXR0b24tY29udGFpbmVyLS1yZXZlcnNlXFxAcyB7IC8qIFs3XSAqLyB9XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLm8tYnV0dG9uLWNvbnRhaW5lci0tcmV2ZXJzZVxcQHMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgLyogWzhdICovXG4gIH1cbiAgLm8tYnV0dG9uLWNvbnRhaW5lci0tcmV2ZXJzZVxcQHMuby1idXR0b24tY29udGFpbmVyLS1sZWZ0IC5vLWJ1dHRvbi1jb250YWluZXJfX2J1dHRvbjpmaXJzdC1jaGlsZCwgLm8tYnV0dG9uLWNvbnRhaW5lci0tcmV2ZXJzZVxcQHMuby1idXR0b24tY29udGFpbmVyLS1sZWZ0XFxAcyAuby1idXR0b24tY29udGFpbmVyX19idXR0b246Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi1yaWdodDogYXV0bzsgLyogWzEwXSAqL1xuICB9XG4gIC5vLWJ1dHRvbi1jb250YWluZXItLXJldmVyc2VcXEBzLm8tYnV0dG9uLWNvbnRhaW5lci0tcmlnaHQgLm8tYnV0dG9uLWNvbnRhaW5lcl9fYnV0dG9uOmxhc3QtY2hpbGQsIC5vLWJ1dHRvbi1jb250YWluZXItLXJldmVyc2VcXEBzLm8tYnV0dG9uLWNvbnRhaW5lci0tcmlnaHRcXEBzIC5vLWJ1dHRvbi1jb250YWluZXJfX2J1dHRvbjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bzsgLyogWzEwXSAqL1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuby1idXR0b24tY29udGFpbmVyLS1zdHJldGNoXFxAcyAuby1idXR0b24tY29udGFpbmVyX19idXR0b24ge1xuICAgIHdpZHRoOiBtYXgoMTAwcHgsIGNhbGMoMTAwJSAtIDhweCkpOyAvKiBbNl0gKi9cbiAgICBtYXgtd2lkdGg6IGluaXRpYWw7XG4gIH1cbn1cblxuLm8tYnV0dG9uLWNvbnRhaW5lcl9fYnV0dG9uIHtcbiAgZmxleC1ncm93OiAwO1xuICBmbGV4LXNocmluazogMTtcbiAgZmxleC1iYXNpczogYXV0bztcbiAgd2lkdGg6IG1heCgxMDBweCwgY2FsYyg1MCUgLSA0cHgpKTsgLyogWzZdICovXG4gIG1heC13aWR0aDogMzAwcHg7XG4gIG1pbi13aWR0aDogZml0LWNvbnRlbnQ7IC8qIFsxMl0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSAqL1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5vLWJ1dHRvbi1jb250YWluZXJfX2J1dHRvbjpvbmx5LWNoaWxkIHtcbiAgICBtYXgtd2lkdGg6IDUwJTsgLyogWzFdICovXG4gIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0NPTlRFTlQtU0VDVElPTlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIEFuIG9iamVjdCB3cmFwcGluZyB0aGUgY29udGVudCBvZiBlbnRpcmUgc2VjdGlvbnMgdG8gZW5zdXJlIGEgY29uc2lzdGVudFxuICogc3BhY2luZyBhcm91bmQgdGhlIHNlY3Rpb25zIGNvbnRlbnQuXG4gKi9cbi5vLWNvbnRlbnQtc2VjdGlvbiB7XG4gIHBhZGRpbmctdG9wOiAzMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMzJweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0NPTVBPTkVOVC1XUkFQUEVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogVGhlIGNvbXBvbmVudC13cmFwcGVyIGlzIGFuIG9iamVjdCB0aGF0IG5lZWRzIHRvIGJlIHRoZSBjb250YWluZXIgb2YgZXZlcnlcbiAqIGNvbXBvbmVudCwgd2hpY2ggc2l0cyBkaXJlY3RseSBpbiBhIGNvbnRlbnQgc2VjdGlvbi4gSXQgbWFrZXMgc3VyZSB0aGF0IHRoZVxuICogc3BhY2luZyBiZXR3ZWVuIHRoZSBjb21wb25lbnRzIGlzIGFsd2F5cyBjb3JyZWN0LlxuICovXG4uby1jb21wb25lbnQtd3JhcHBlcjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAjRkxPQVQtR1JJRFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBDb25zaWRlciByZXNwb25zaXZlIHBhZ2Ugd3JhcCBwYWRkaW5ncyB3aGVuIGNhbGN1bGF0aW5nIGdyaWQgdGVtcGxhdGVcbiAqICAgICBjb2x1bW5zLlxuICogWzJdIERlZmluZSBuYW1lZCBncmlkIGFyZWFzIChVbmZvcnR1bmF0ZWx5IGl0IGlzIG5vdCBwb3NzaWJsZSB3aXRoIFNhc3MgdG9cbiAqICAgICBkZWZpbmUgdGhpcyBhcyBhIG11bHRpbGluZSB2YXJpYWJsZSkuXG4gKiBbM10gQ2FsY3VsYXRlIGdyaWQgdGVtcGxhdGUgY29sdW1ucy5cbiAqIFs0XSBTZXQgZ3JpZCB0ZW1wbGF0ZSByb3dzLlxuICogWzVdIERpc2FibGUgRmxvYXQgR3JpZCBwb2ludGVyIGV2ZW50cyB0byBhbGxvdyBjbGljayB0aHJvdWdoIHRoZSBncmlkLlxuICogWzZdIFBvc2l0aW9uIGl0ZW1zIGluIGdyaWQgYXJlYXMgYXMgZmxleCBpdGVtcy5cbiAqIFs3XSBHZW5lcmF0ZSBDU1MgY3VzdG9tIHByb3BlcnR5IGAtLWZsb2F0LWdyaWQtYXJlYXNgIHRoYXQgd2lsbCBiZSB1c2VkIGJ5XG4gKiAgICAgSmF2YVNjcmlwdCB0byBidWlsZCB0aGUgRmxvYXQgR3JpZCBhcmVhc+KAmSBtYXJrdXAuXG4gKiBbOF0gR2VuZXJhdGUgYGRhdGEtZmxvYXQtZ3JpZC1hcmVhYCBDU1MgcnVsZXMgZm9yIGVhY2ggYXJlYS5cbiAqIFs5XSBFbmFibGUgcG9pbnRlciBldmVudHMgZm9yIGl0ZW1zIGluIEZsb2F0IEdyaWQgYXJlYXMuXG4gKiBbMTBdIENoYW5nZSB0aGUgbWluaW11bSBGbG9hdCBHcmlkIGFyZWEgc2l6ZSBmcm9tIGBtYXgtY29udGVudGAgdG8gYDBgIGluXG4gKiAgICAgIHNtYWxsZXIgdmlld3BvcnRzIHRvIGFsbG93IHRoZSBvdmVybGFwcGluZyBvZiBGbG9hdCBHcmlkIGFyZWEgY29udGVudFxuICogICAgICB3aXRoIG90aGVyIGFyZWFzLiBUaGlzIGlzIGEgY29tcHJvbWlzZSB0byBnaXZlIGl0ZW1zIGVub3VnaCBzcGFjZVxuICogICAgICAoZS5nLiB0aGUgSW5jb2duaXRvIEFjdGlvbiBCdXR0b25zKS5cbiAqIFsxMV0gVGhlIGl0ZW0gb2Zmc2V0IGlzIGJlaW5nIHVzZWQgdG8gcHVzaCBhbiBpdGVtIG91dCBvZiBhIEZsb2F0IEdyaWQgYXJlYVxuICogICAgICBpZiBlbm91Z2ggc3BhY2UgaXMgYXZhaWxhYmxlLiBgMTAwJWAgaXMgZXF1YWwgdG8gdGhlIGl0ZW0gd2lkdGguXG4gKiBbMTJdIFNldCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBpdGVtIG9mZnNldCBieSBzZXR0aW5nIGEgY3VzdG9tIHByb3BlcnR5IHRoYXRcbiAqICAgICAgd2lsbCBiZSB1c2VkIGxhdGVyIGluIHRoZSBvZmZzZXQgY2FsY3VsYXRpb24uIE5lZ2F0aXZlIHZhbHVlcyB3aWxsIHB1c2hcbiAqICAgICAgdGhlIGl0ZW0gdG8gdGhlIGxlZnQsIHBvc2l0aXZlIHZhbHVlcyB3aWxsIHB1c2ggaXQgdG8gdGhlIHJpZ2h0LlxuICogWzEzXSBBZGQgZWFjaCBGbG9hdCBHcmlkIGFyZWEgc2VsZWN0b3IgdG8gdGhlIHNlbGVjdG9yIGxpc3Qgd2l0aCB0aGUgY2FsY3VsYXRpb24uXG4gKiAgICAgIFdlIGFyZSB1c2luZyBgQGV4dGVuZCcgaW5zdGVhZCBvZiBhIG1peGluIHRvIGF2b2lkIGR1cGxpY2F0aW5nIHRoZVxuICogICAgICBjb21wbGV4IGB0cmFuc2Zvcm1gIHByb3BlcnR5IGZvciBlYWNoIGFyZWEuXG4gKiBbMTRdIENhbGN1bGF0ZSB0aGUgdHJhbnNmb3JtIHByb3BlcnR5IHRvIG1vdmUgaXRlbXMgb3V0IG9mIEZsb2F0IEdyaWQgYXJlYXMuXG4gKiAgICAgIENoZWNrIGlubGluZSBjb21tZW50cyBmb3IgZGV0YWlscy5cbiAqL1xuLm8tZmxvYXQtZ3JpZCB7XG4gIC0tcGFnZS13cmFwLXBhZGRpbmctaG9yaXpvbnRhbDogMDsgLyogWzFdICovXG4gIC0tZmxvYXQtZ3JpZC1jb2x1bW4tbWluLXNpemU6IG1heC1jb250ZW50O1xuICAtLWZsb2F0LWdyaWQtcm93LW1pbi1zaXplOiB2YXIoLS1mbG9hdC1ncmlkLWNvbHVtbi1taW4tc2l6ZSk7XG4gIC0tZmxvYXQtZ3JpZC1jb2x1bW4tZ2FwOiB2YXIoLS1wYWdlLXdyYXAtcGFkZGluZy1ob3Jpem9udGFsKTsgLyogWzFdICovXG4gIC0tZmxvYXQtZ3JpZC1yb3ctZ2FwOiAxNnB4O1xuICAtLWZsb2F0LWdyaWQtaXRlbS1nYXA6IDE2cHg7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMjA1MDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWFyZWFzOiBcInQgICB0ICAgdCAgIHQgICB0XCIgXCIuICAgdGwgIHRjICB0ciAgLlwiIFwiLiAgIGNsICBjYyAgY3IgIC5cIiBcIi4gICBibCAgYmMgIGJyICAuXCIgXCJiICAgYiAgIGIgICBiICAgYlwiOyAvKiBbMl0gKi9cbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBjYWxjKCgxMDAlIC0gMTI0OHB4KSAvIDIgLSB2YXIoLS1wYWdlLXdyYXAtcGFkZGluZy1ob3Jpem9udGFsKSkgcmVwZWF0KDMsIG1pbm1heCh2YXIoLS1mbG9hdC1ncmlkLWNvbHVtbi1taW4tc2l6ZSksIDFmcikpIGNhbGMoKDEwMCUgLSAxMjQ4cHgpIC8gMiAtIHZhcigtLXBhZ2Utd3JhcC1wYWRkaW5nLWhvcml6b250YWwpKTsgLyogWzFdIFszXSAqL1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gcmVwZWF0KDMsIG1pbm1heCh2YXIoLS1mbG9hdC1ncmlkLXJvdy1taW4tc2l6ZSksIDFmcikpIGF1dG87IC8qIFs0XSAqL1xuICBjb2x1bW4tZ2FwOiB2YXIoLS1mbG9hdC1ncmlkLWNvbHVtbi1nYXApOyAvKiBbMV0gKi9cbiAgcm93LWdhcDogdmFyKC0tZmxvYXQtZ3JpZC1yb3ctZ2FwKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIFs1XSAqL1xuICAtLXBhZ2Utd3JhcC1wYWRkaW5nLWhvcml6b250YWw6IDk2cHg7XG4gIC8qIFsxXSAqL1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5vLWZsb2F0LWdyaWQge1xuICAgIC0tcGFnZS13cmFwLXBhZGRpbmctaG9yaXpvbnRhbDogNDhweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5vLWZsb2F0LWdyaWQge1xuICAgIC0tcGFnZS13cmFwLXBhZGRpbmctaG9yaXpvbnRhbDogMjRweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5vLWZsb2F0LWdyaWQge1xuICAgIC0tcGFnZS13cmFwLXBhZGRpbmctaG9yaXpvbnRhbDogMTJweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcxOXB4KSB7XG4gIC5vLWZsb2F0LWdyaWQge1xuICAgIC0tZmxvYXQtZ3JpZC1jb2x1bW4tbWluLXNpemU6IDA7IC8qIFsxMF0gKi9cbiAgfVxufVxuXG4uby1mbG9hdC1ncmlkX19hcmVhIHtcbiAgLS1ncmlkLWFyZWEtaXRlbS1vZmZzZXQ6IDEwMCU7IC8qIFsxMV0gKi9cbiAgZGlzcGxheTogZmxleDsgLyogWzZdICovXG4gIGdhcDogdmFyKC0tZmxvYXQtZ3JpZC1pdGVtLWdhcCk7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1mbG9hdC1ncmlkLWFyZWEtcGFkZGluZy12ZXJ0aWNhbCk7XG4gIHBhZGRpbmctcmlnaHQ6IHZhcigtLWZsb2F0LWdyaWQtYXJlYS1wYWRkaW5nLWhvcml6b250YWwpO1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tZmxvYXQtZ3JpZC1hcmVhLXBhZGRpbmctdmVydGljYWwpO1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLWZsb2F0LWdyaWQtYXJlYS1wYWRkaW5nLWhvcml6b250YWwpO1xufVxuXG4vKiBbN10gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1kZWZhdWx0ICovXG4vKiBbN10gKi9cbltkYXRhLWZsb2F0LWdyaWQtYXJlYT10b3BdIHsgLyogWzhdICovXG4gIGdyaWQtYXJlYTogdDtcbn1cblxuLyogWzddICovXG5bZGF0YS1mbG9hdC1ncmlkLWFyZWE9Ym90dG9tXSB7IC8qIFs4XSAqL1xuICBncmlkLWFyZWE6IGI7XG59XG5cbi8qIFs3XSAqL1xuW2RhdGEtZmxvYXQtZ3JpZC1hcmVhPXRvcC1sZWZ0XSB7IC8qIFs4XSAqL1xuICAtLWZsb2F0LWdyaWQtYXJlYS1wYWRkaW5nLWhvcml6b250YWw6IDE2cHg7XG4gIGdyaWQtYXJlYTogdGw7XG4gIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgLS1ncmlkLWFyZWEtb2Zmc2V0LWRpcmVjdGlvbjogLTE7IC8qIFsxMl0gKi9cbn1cbltkYXRhLWZsb2F0LWdyaWQtYXJlYT10b3AtbGVmdF0gPiAqIHtcbiAgLyogWzEzXSAqL1xufVxuXG4vKiBbN10gKi9cbltkYXRhLWZsb2F0LWdyaWQtYXJlYT10b3AtY2VudGVyXSB7IC8qIFs4XSAqL1xuICAtLWZsb2F0LWdyaWQtYXJlYS1wYWRkaW5nLWhvcml6b250YWw6IDE2cHg7XG4gIGdyaWQtYXJlYTogdGM7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLyogWzddICovXG5bZGF0YS1mbG9hdC1ncmlkLWFyZWE9dG9wLXJpZ2h0XSB7IC8qIFs4XSAqL1xuICAtLWZsb2F0LWdyaWQtYXJlYS1wYWRkaW5nLWhvcml6b250YWw6IDE2cHg7XG4gIGdyaWQtYXJlYTogdHI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAtLWdyaWQtYXJlYS1vZmZzZXQtZGlyZWN0aW9uOiAxOyAvKiBbMTJdICovXG59XG5bZGF0YS1mbG9hdC1ncmlkLWFyZWE9dG9wLXJpZ2h0XSA+ICoge1xuICAvKiBbMTNdICovXG59XG5cbi8qIFs3XSAqL1xuW2RhdGEtZmxvYXQtZ3JpZC1hcmVhPWNlbnRlci1sZWZ0XSB7IC8qIFs4XSAqL1xuICAtLWZsb2F0LWdyaWQtYXJlYS1wYWRkaW5nLWhvcml6b250YWw6IDE2cHg7XG4gIGdyaWQtYXJlYTogY2w7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgLS1ncmlkLWFyZWEtb2Zmc2V0LWRpcmVjdGlvbjogLTE7IC8qIFsxMl0gKi9cbn1cbltkYXRhLWZsb2F0LWdyaWQtYXJlYT1jZW50ZXItbGVmdF0gPiAqIHtcbiAgLyogWzEzXSAqL1xufVxuXG4vKiBbN10gKi9cbltkYXRhLWZsb2F0LWdyaWQtYXJlYT1jZW50ZXItY2VudGVyXSB7IC8qIFs4XSAqL1xuICAtLWZsb2F0LWdyaWQtYXJlYS1wYWRkaW5nLWhvcml6b250YWw6IDE2cHg7XG4gIGdyaWQtYXJlYTogY2M7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4vKiBbN10gKi9cbltkYXRhLWZsb2F0LWdyaWQtYXJlYT1jZW50ZXItcmlnaHRdIHsgLyogWzhdICovXG4gIC0tZmxvYXQtZ3JpZC1hcmVhLXBhZGRpbmctaG9yaXpvbnRhbDogMTZweDtcbiAgZ3JpZC1hcmVhOiBjcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgLS1ncmlkLWFyZWEtb2Zmc2V0LWRpcmVjdGlvbjogMTsgLyogWzEyXSAqL1xufVxuW2RhdGEtZmxvYXQtZ3JpZC1hcmVhPWNlbnRlci1yaWdodF0gPiAqIHtcbiAgLyogWzEzXSAqL1xufVxuXG4vKiBbN10gKi9cbltkYXRhLWZsb2F0LWdyaWQtYXJlYT1ib3R0b20tbGVmdF0geyAvKiBbOF0gKi9cbiAgLS1mbG9hdC1ncmlkLWFyZWEtcGFkZGluZy1ob3Jpem9udGFsOiAxNnB4O1xuICBncmlkLWFyZWE6IGJsO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgLS1ncmlkLWFyZWEtb2Zmc2V0LWRpcmVjdGlvbjogLTE7IC8qIFsxMl0gKi9cbn1cbltkYXRhLWZsb2F0LWdyaWQtYXJlYT1ib3R0b20tbGVmdF0gPiAqIHtcbiAgLyogWzEzXSAqL1xufVxuXG4vKiBbN10gKi9cbltkYXRhLWZsb2F0LWdyaWQtYXJlYT1ib3R0b20tY2VudGVyXSB7IC8qIFs4XSAqL1xuICAtLWZsb2F0LWdyaWQtYXJlYS1wYWRkaW5nLWhvcml6b250YWw6IDE2cHg7XG4gIGdyaWQtYXJlYTogYmM7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG59XG5cbi8qIFs3XSAqL1xuW2RhdGEtZmxvYXQtZ3JpZC1hcmVhPWJvdHRvbS1yaWdodF0geyAvKiBbOF0gKi9cbiAgLS1mbG9hdC1ncmlkLWFyZWEtcGFkZGluZy1ob3Jpem9udGFsOiAxNnB4O1xuICBncmlkLWFyZWE6IGJyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIC0tZ3JpZC1hcmVhLW9mZnNldC1kaXJlY3Rpb246IDE7IC8qIFsxMl0gKi9cbn1cbltkYXRhLWZsb2F0LWdyaWQtYXJlYT1ib3R0b20tcmlnaHRdID4gKiB7XG4gIC8qIFsxM10gKi9cbn1cblxuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbi5jLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lcl9faXRlbSxcbi5jLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lcl9fdG9nZ2xlLCAuanMtZW5hYmxlLTNyZC1wYXJ0eS1mbG9hdC1ncmlkICNtZXJjdXJ5LXdpZGdldCAudGVhc2VyLFxuLmpzLWVuYWJsZS0zcmQtcGFydHktZmxvYXQtZ3JpZCAjbWVyY3VyeS13aWRnZXQgLnRvZ2dsZS1idXR0b24sIFtkYXRhLWZsb2F0LWdyaWQtYXJlYT10b3AtbGVmdF0gPiAqLCBbZGF0YS1mbG9hdC1ncmlkLWFyZWE9dG9wLXJpZ2h0XSA+ICosIFtkYXRhLWZsb2F0LWdyaWQtYXJlYT1jZW50ZXItbGVmdF0gPiAqLCBbZGF0YS1mbG9hdC1ncmlkLWFyZWE9Y2VudGVyLXJpZ2h0XSA+ICosIFtkYXRhLWZsb2F0LWdyaWQtYXJlYT1ib3R0b20tbGVmdF0gPiAqLCBbZGF0YS1mbG9hdC1ncmlkLWFyZWE9Ym90dG9tLXJpZ2h0XSA+ICoge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYyhtaW4obWF4KCgxMDB2dyAtIHZhcigtLXBhZ2Utd3JhcC13aWR0aCkpIC8gMiwgMHB4KSwgdmFyKC0tZ3JpZC1hcmVhLWl0ZW0tb2Zmc2V0KSArIHZhcigtLWZsb2F0LWdyaWQtYXJlYS1wYWRkaW5nLWhvcml6b250YWwpICogMikgKiB2YXIoLS1ncmlkLWFyZWEtb2Zmc2V0LWRpcmVjdGlvbikpKTtcbn1cblxuOnJvb3Qge1xuICAtLWZsb2F0LWdyaWQtYXJlYXM6IHRvcCBib3R0b20gdG9wLWxlZnQgdG9wLWNlbnRlciB0b3AtcmlnaHQgY2VudGVyLWxlZnQgY2VudGVyLWNlbnRlciBjZW50ZXItcmlnaHQgYm90dG9tLWxlZnQgYm90dG9tLWNlbnRlciBib3R0b20tcmlnaHQ7IC8qIFs3XSAqL1xufVxuXG4jZmxvYXQtZ3JpZCAuby1mbG9hdC1ncmlkX19hcmVhID4gKiB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvOyAvKiBbOV0gKi9cbn1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZMSUNLSVRZXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogRmxpY2tpdHkgdjIuMC4xMFxuICogKGh0dHBzOi8vZmxpY2tpdHkubWV0YWZpenp5LmNvKVxuICovXG4vKipcbiAqIFsxXSBSZXNldCBkZWZhdWx0IGxpc3Qgc3R5bGVzLlxuICogWzJdIEhvcml6b250YWxseSBjZW50ZXIgcGFnZS1kb3RzLlxuICogWzNdIEhpZGUgZGVmYXVsdCBGbGlja2l0eSBpY29uLlxuICogWzRdIFJlbW92ZSBmb2N1cyBvdXRsaW5lIHN0eWxlcyBmb3IgdGhlIGZ1bGxzY3JlZW4gYnV0dG9uLlxuICogWzVdIEhpZGUgRmxpY2tpdHnigJlzIGluamVjdGVkIFNWRyBpY29uLlxuICogWzZdIEhpZGUgdGhlIHJldmVhbCBidXR0b24gd2hlbiBwcmVzZW50aW5nIGluIGZ1bGxzY3JlZW4uXG4gKiBbN10gU2V0IG1pbmltYWwgcG9pbnRlciBzaXplIGZvciB0aGUgZG90cy5cbiAqIFs4XSBNYWtlIHNwYWNlIGZvciB0aGUgZG90cyBpbiB0aGUgZnVsbHNjcmVlbiBtb2RlLlxuICogWzldIEhlaWdodCBpcyBzZXQgdG8gMCBiZWZvcmUgYmVpbmcgb3ZlcndyaXR0ZW4gYnkgbWluLWhlaWdodCB0byB2ZXJ0aWNhbGx5IGNlbnRlclxuICogICAgIHRoZSBkb3RzIGluIElFMTEuIE90aGVyd2lzZSBhbGlnbi1pdGVtczogY2VudGVyIHdvdWxkIG5vdCB3b3JrIGluIElFMTEuXG4gKiBbMTBdIFdoZW4gdGhlIG51bWJlciBvZiBkb3RzIGV4Y2VlZHMgdGhlIGxpbWl0LCB0aGUgZG90cyB0dXJuIGludG8gYSBjb3VudGVyLlxuICogICAgICBDU1MgZ2VuZXJhdGVkIGNvbnRlbnQgc2hvd3MgYHggLyB5YC5cbiAqICAgICAgLSBgY291bnRlci1pbmNyZW1lbnRgIGlzIHVzZWQgZm9yIG51bWJlcmluZ1xuICogICAgICAtIGA6OmJlZm9yZWAgcHNldWRvIGVsZW1lbnQgb24gdGhlIGN1cnJlbnQgaXRlbSBpcyB1c2VkIGZvciB0aGUgY291bnRlclxuICogICAgICAtIGA6OmFmdGVyYCBwc2V1ZG8gZWxlbWVudCBvbiB0aGUgbGFzdCBpdGVtIGlzIHVzZWQgZm9yIHRoZSBkZW5vbWluYXRvclxuICogICAgICAgICBpbmNsdWRpbmcgYSBzZXBlcmF0b3IgKGAvYCkuXG4gKiBbMTFdIEZvcmNlIHRoZSBzbGlkZXIgaXRlbXMgdG8gdGFrZSB1cCBhbGwgaG9yaXpvbnRhbCBzcGFjZS5cbiAqIFsxMl0gU2hvdyBjb250cm9scyBvbmx5IHdoZW4gc2xpZGVyIGhhcyBzbGlkZWFibGUgaXRlbXMgKD4gMSkuXG4gKiBbMTNdIFRyYW5zZm9ybSB0aGUgZG90cyAoZS5nLiBgc2NhbGUoMS41KWApLlxuICogWzE0XSBFbnN1cmUgaG9yaXpvbnRhbCBhbmQgdmVydGljYWwgY2VudGVyaW5nLlxuICogWzE1XSBTcGFjaW5nIGZvciBjb250cm9scyAoYnV0dG9ucywgZG90cykuXG4gKi9cbi5mbGlja2l0eS1lbmFibGVkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4OyAvKiBbOF0gKi9cbiAgZmxleC1kaXJlY3Rpb246IHJvdzsgLyogWzhdICovXG4gIGZsZXgtd3JhcDogd3JhcDsgLyogWzhdICovXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKiBbOV0gKi9cbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcm93LWdhcDogMTZweDsgLyogWzE1XSAqL1xuICBjb2x1bW4tZ2FwOiAxNnB4OyAvKiBbMTVdICovXG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgLyoqXG4gICAqIERyYWdnYWJsZS5cbiAgICovXG4gIC8qKlxuICAgKiBGdWxsc2NyZWVuLlxuICAgKi9cbn1cbi5mbGlja2l0eS1lbmFibGVkOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5mbGlja2l0eS1lbmFibGVkLmlzLWRyYWdnYWJsZSB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1jbGFzcyAqL1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG4uZmxpY2tpdHktZW5hYmxlZC5pcy1kcmFnZ2FibGUgLmZsaWNraXR5LXZpZXdwb3J0IHtcbiAgY3Vyc29yOiBncmFiO1xufVxuLmZsaWNraXR5LWVuYWJsZWQuaXMtZHJhZ2dhYmxlIC5mbGlja2l0eS12aWV3cG9ydC5pcy1wb2ludGVyLWRvd24ge1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuLmZsaWNraXR5LWVuYWJsZWQuaXMtZnVsbHNjcmVlbiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogNDUwMDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nLWJvdHRvbTogNDRweDsgLyogWzhdICovXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG4uZmxpY2tpdHktZW5hYmxlZC5pcy1mdWxsc2NyZWVuIC5mbGlja2l0eS1mdWxsc2NyZWVuLWJ1dHRvbi1leGl0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uZmxpY2tpdHktZW5hYmxlZC5pcy1mdWxsc2NyZWVuIC5mbGlja2l0eS1mdWxsc2NyZWVuLWJ1dHRvbi1leGl0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3YlwiO1xufVxuLmZsaWNraXR5LWVuYWJsZWQuaXMtZnVsbHNjcmVlbiAuZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b24tdmlldyB7XG4gIGRpc3BsYXk6IG5vbmU7IC8qIFs2XSAqL1xufVxuLmZsaWNraXR5LWVuYWJsZWQgLmZsaWNraXR5LWZ1bGxzY3JlZW4tYnV0dG9uIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBhdXRvO1xuICByaWdodDogMTZweDtcbiAgYm90dG9tOiAxNnB4O1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG4uZmxpY2tpdHktZW5hYmxlZCAuZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b246OmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBcImJyb25zb24tc2tvZGFcIiAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbnRlbnQ6IFwiXFxmMTc4XCI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2xvcjogIzE2MTcxODtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmZsaWNraXR5LWVuYWJsZWQgLmZsaWNraXR5LWZ1bGxzY3JlZW4tYnV0dG9uOmhvdmVyLCAuZmxpY2tpdHktZW5hYmxlZCAuZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyLCAyMywgMjQsIDAuMDYpO1xufVxuLmZsaWNraXR5LWVuYWJsZWQgLmZsaWNraXR5LWZ1bGxzY3JlZW4tYnV0dG9uOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAwOyAvKiBbNF0gKi9cbn1cbi5mbGlja2l0eS1lbmFibGVkIC5mbGlja2l0eS1mdWxsc2NyZWVuLWJ1dHRvbi1leGl0IHtcbiAgZGlzcGxheTogbm9uZTsgLyogWzNdICovXG59XG4uZmxpY2tpdHktZW5hYmxlZCAuZmxpY2tpdHktYnV0dG9uLWljb24ge1xuICBkaXNwbGF5OiBub25lOyAvKiBbNV0gKi9cbn1cblxuLmZsaWNraXR5LXZpZXdwb3J0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTsgLyogWzExXSAqL1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5mbGlja2l0eS1zbGlkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9yZGVyOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4vKipcbiAqIFByZXZpb3VzL25leHQgYnV0dG9ucy5cbiAqL1xuLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgLyogWzE0XSAqL1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogWzE0XSAqL1xuICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiBbMTRdICovXG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICMxNjE3MTg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uOjpiZWZvcmUge1xuICBmb250LWZhbWlseTogXCJicm9uc29uLXNrb2RhXCIgIWltcG9ydGFudDsgLyogWzFdICovXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAycmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxMDtcbn1cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMiwgMjMsIDI0LCAwLjA2KTtcbn1cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAwO1xufVxuLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b246ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwOyAvKiBbMTJdICovXG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgLyogWzEyXSAqL1xufVxuLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ucHJldmlvdXMge1xuICBvcmRlcjogMTtcbn1cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uLnByZXZpb3VzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExN1wiO1xufVxuLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ubmV4dCB7XG4gIG9yZGVyOiAzO1xufVxuLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ubmV4dDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMThcIjtcbn1cblxuLmZsaWNraXR5LXBhZ2UtZG90cyB7XG4gIGRpc3BsYXk6IGZsZXg7IC8qIFsyXSAqL1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogWzJdICovXG4gIG9yZGVyOiAyO1xuICBtYXJnaW46IDA7IC8qIFsxXSAqL1xuICBwYWRkaW5nOiAwOyAvKiBbMV0gKi9cbn1cbi5mbGlja2l0eS1wYWdlLWRvdHMgLmRvdCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiAwOyAvKiBbOV0gKi9cbiAgbWluLWhlaWdodDogMzJweDsgLyogWzddICovXG4gIG1hcmdpbi1yaWdodDogNHB4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBtYXJnaW4tbGVmdDogNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uZmxpY2tpdHktcGFnZS1kb3RzIC5kb3Q6b25seS1jaGlsZCB7XG4gIGRpc3BsYXk6IG5vbmU7IC8qIFsxMl0gKi9cbn1cbi5mbGlja2l0eS1wYWdlLWRvdHMgLmRvdDo6YWZ0ZXIge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG4gIC8qIFsxM10gKi9cbiAgYm9yZGVyOiAxcHggc29saWQgIzQxOTQ2ODtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuLmZsaWNraXR5LXBhZ2UtZG90cyAuZG90LmlzLXNlbGVjdGVkOjphZnRlciB7XG4gIC8qIFsxM10gKi9cbiAgYm9yZGVyLWNvbG9yOiAjNDE5NDY4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDE5NDY4O1xufVxuXG4vKiBbMTBdICovXG4uZmxpY2tpdHktZW5hYmxlZDpub3QoLmMtaGVyby10ZWFzZXIpIC5kb3Q6bnRoLWxhc3QtY2hpbGQobisyKSwgLmZsaWNraXR5LWVuYWJsZWQ6bm90KC5jLWhlcm8tdGVhc2VyKSAuZG90Om50aC1sYXN0LWNoaWxkKG4rMikgfiAuZG90IHtcbiAgY291bnRlci1pbmNyZW1lbnQ6IHNsaWRlci1jb3VudDtcbiAgbWFyZ2luOiAwOyAvKiBbM10gKi9cbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogWzJdICovXG59XG4uZmxpY2tpdHktZW5hYmxlZDpub3QoLmMtaGVyby10ZWFzZXIpIC5kb3Q6bnRoLWxhc3QtY2hpbGQobisyKTo6YmVmb3JlLCAuZmxpY2tpdHktZW5hYmxlZDpub3QoLmMtaGVyby10ZWFzZXIpIC5kb3Q6bnRoLWxhc3QtY2hpbGQobisyKTo6YWZ0ZXIsIC5mbGlja2l0eS1lbmFibGVkOm5vdCguYy1oZXJvLXRlYXNlcikgLmRvdDpudGgtbGFzdC1jaGlsZChuKzIpIH4gLmRvdDo6YmVmb3JlLCAuZmxpY2tpdHktZW5hYmxlZDpub3QoLmMtaGVyby10ZWFzZXIpIC5kb3Q6bnRoLWxhc3QtY2hpbGQobisyKSB+IC5kb3Q6OmFmdGVyIHtcbiAgYWxsOiBpbml0aWFsOyAvKiBbMV0gKi9cbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG9yZGVyL29yZGVyICovXG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiBbNF0gKi9cbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICM3YzdkN2U7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbMl0gKi9cbn1cbi5mbGlja2l0eS1lbmFibGVkOm5vdCguYy1oZXJvLXRlYXNlcikgLmRvdDpudGgtbGFzdC1jaGlsZChuKzIpOjpiZWZvcmUsIC5mbGlja2l0eS1lbmFibGVkOm5vdCguYy1oZXJvLXRlYXNlcikgLmRvdDpudGgtbGFzdC1jaGlsZChuKzIpIH4gLmRvdDo6YmVmb3JlIHtcbiAgY29udGVudDogY291bnRlcihzbGlkZXItY291bnQpIFwiwqBcIjtcbn1cbi5mbGlja2l0eS1lbmFibGVkOm5vdCguYy1oZXJvLXRlYXNlcikgLmRvdDpudGgtbGFzdC1jaGlsZChuKzIpOmxhc3QtY2hpbGQ6OmFmdGVyLCAuZmxpY2tpdHktZW5hYmxlZDpub3QoLmMtaGVyby10ZWFzZXIpIC5kb3Q6bnRoLWxhc3QtY2hpbGQobisyKSB+IC5kb3Q6bGFzdC1jaGlsZDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIi/CoFwiIGNvdW50ZXIoc2xpZGVyLWNvdW50KTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uZmxpY2tpdHktZW5hYmxlZDpub3QoLmMtaGVyby10ZWFzZXIpIC5kb3Q6bnRoLWxhc3QtY2hpbGQobisyKTpub3QoLmlzLXNlbGVjdGVkKTo6YmVmb3JlLCAuZmxpY2tpdHktZW5hYmxlZDpub3QoLmMtaGVyby10ZWFzZXIpIC5kb3Q6bnRoLWxhc3QtY2hpbGQobisyKSB+IC5kb3Q6bm90KC5pcy1zZWxlY3RlZCk6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uZmxpY2tpdHktZW5hYmxlZDpub3QoLmMtaGVyby10ZWFzZXIpIC5kb3Q6bnRoLWxhc3QtY2hpbGQobisyKTo6YWZ0ZXIsIC5mbGlja2l0eS1lbmFibGVkOm5vdCguYy1oZXJvLXRlYXNlcikgLmRvdDpudGgtbGFzdC1jaGlsZChuKzIpIH4gLmRvdDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmZsaWNraXR5LWVuYWJsZWRbZGF0YS1zbGlkZXItY291bnRlcj10cnVlXSAuZG90Om50aC1sYXN0LWNoaWxkKG4rMiksIC5mbGlja2l0eS1lbmFibGVkW2RhdGEtc2xpZGVyLWNvdW50ZXI9dHJ1ZV0gLmRvdDpudGgtbGFzdC1jaGlsZChuKzIpIH4gLmRvdCB7XG4gIGNvdW50ZXItaW5jcmVtZW50OiBzbGlkZXItY291bnQ7XG4gIG1hcmdpbjogMDsgLyogWzNdICovXG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIFsyXSAqL1xufVxuLmZsaWNraXR5LWVuYWJsZWRbZGF0YS1zbGlkZXItY291bnRlcj10cnVlXSAuZG90Om50aC1sYXN0LWNoaWxkKG4rMik6OmJlZm9yZSwgLmZsaWNraXR5LWVuYWJsZWRbZGF0YS1zbGlkZXItY291bnRlcj10cnVlXSAuZG90Om50aC1sYXN0LWNoaWxkKG4rMik6OmFmdGVyLCAuZmxpY2tpdHktZW5hYmxlZFtkYXRhLXNsaWRlci1jb3VudGVyPXRydWVdIC5kb3Q6bnRoLWxhc3QtY2hpbGQobisyKSB+IC5kb3Q6OmJlZm9yZSwgLmZsaWNraXR5LWVuYWJsZWRbZGF0YS1zbGlkZXItY291bnRlcj10cnVlXSAuZG90Om50aC1sYXN0LWNoaWxkKG4rMikgfiAuZG90OjphZnRlciB7XG4gIGFsbDogaW5pdGlhbDsgLyogWzFdICovXG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBvcmRlci9vcmRlciAqL1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogWzRdICovXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiAjN2M3ZDdlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogWzJdICovXG59XG4uZmxpY2tpdHktZW5hYmxlZFtkYXRhLXNsaWRlci1jb3VudGVyPXRydWVdIC5kb3Q6bnRoLWxhc3QtY2hpbGQobisyKTo6YmVmb3JlLCAuZmxpY2tpdHktZW5hYmxlZFtkYXRhLXNsaWRlci1jb3VudGVyPXRydWVdIC5kb3Q6bnRoLWxhc3QtY2hpbGQobisyKSB+IC5kb3Q6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IGNvdW50ZXIoc2xpZGVyLWNvdW50KSBcIsKgXCI7XG59XG4uZmxpY2tpdHktZW5hYmxlZFtkYXRhLXNsaWRlci1jb3VudGVyPXRydWVdIC5kb3Q6bnRoLWxhc3QtY2hpbGQobisyKTpsYXN0LWNoaWxkOjphZnRlciwgLmZsaWNraXR5LWVuYWJsZWRbZGF0YS1zbGlkZXItY291bnRlcj10cnVlXSAuZG90Om50aC1sYXN0LWNoaWxkKG4rMikgfiAuZG90Omxhc3QtY2hpbGQ6OmFmdGVyIHtcbiAgY29udGVudDogXCIvwqBcIiBjb3VudGVyKHNsaWRlci1jb3VudCk7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmZsaWNraXR5LWVuYWJsZWRbZGF0YS1zbGlkZXItY291bnRlcj10cnVlXSAuZG90Om50aC1sYXN0LWNoaWxkKG4rMik6bm90KC5pcy1zZWxlY3RlZCk6OmJlZm9yZSwgLmZsaWNraXR5LWVuYWJsZWRbZGF0YS1zbGlkZXItY291bnRlcj10cnVlXSAuZG90Om50aC1sYXN0LWNoaWxkKG4rMikgfiAuZG90Om5vdCguaXMtc2VsZWN0ZWQpOjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmZsaWNraXR5LWVuYWJsZWRbZGF0YS1zbGlkZXItY291bnRlcj10cnVlXSAuZG90Om50aC1sYXN0LWNoaWxkKG4rMik6OmFmdGVyLCAuZmxpY2tpdHktZW5hYmxlZFtkYXRhLXNsaWRlci1jb3VudGVyPXRydWVdIC5kb3Q6bnRoLWxhc3QtY2hpbGQobisyKSB+IC5kb3Q6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZMSUNLSVRZXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIEVuZm9yY2UgYmFja2dyb3VuZCBjb2xvciBub3QgdG8gY2hhbmdlIG9uIGZvY3VzLCBvbmx5IG9uIGhvdmVyLlxuICogWzJdIEFkZCBicmFuZC1zcGVjaWZpYyBzdHlsZXMgZm9yIGZvY3VzIG91dGxpbmUuXG4gKi9cbi5mbGlja2l0eS1lbmFibGVkIC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uLFxuLmZsaWNraXR5LWVuYWJsZWQgLmZsaWNraXR5LWZ1bGxzY3JlZW4tYnV0dG9uIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG59XG4uZmxpY2tpdHktZW5hYmxlZCAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbjpmb2N1cyxcbi5mbGlja2l0eS1lbmFibGVkIC5mbGlja2l0eS1mdWxsc2NyZWVuLWJ1dHRvbjpmb2N1cyB7IC8qIFsxXSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4uZmxpY2tpdHktZW5hYmxlZCAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbjpmb2N1cy12aXNpYmxlLFxuLmZsaWNraXR5LWVuYWJsZWQgLmZsaWNraXR5LWZ1bGxzY3JlZW4tYnV0dG9uOmZvY3VzLXZpc2libGUgeyAvKiBbMl0gKi9cbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjMTYxNzE4O1xuICAtLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIC0tZm9jdXMtb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIC0tZm9jdXMtb3V0bGluZS13aWR0aDogMnB4O1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb2N1cy1vdXRsaW5lLWNvbG9yLCAjMTYxNzE4KTtcbiAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWZvY3VzLW91dGxpbmUtb2Zmc2V0LCAxcHgpO1xuICBvdXRsaW5lLXN0eWxlOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXN0eWxlLCBzb2xpZCk7XG4gIG91dGxpbmUtd2lkdGg6IHZhcigtLWZvY3VzLW91dGxpbmUtd2lkdGgsIDJweCk7XG59XG4uZmxpY2tpdHktZW5hYmxlZCAuZmxpY2tpdHktcGFnZS1kb3RzIC5kb3Qge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LWNsYXNzICovXG59XG4uZmxpY2tpdHktZW5hYmxlZCAuZmxpY2tpdHktcGFnZS1kb3RzIC5kb3QuaXMtc2VsZWN0ZWQge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5LCBzZWxlY3Rvci1tYXgtY2xhc3MsIG1heC1uZXN0aW5nLWRlcHRoICovXG59XG4uZmxpY2tpdHktZW5hYmxlZCAuZmxpY2tpdHktcGFnZS1kb3RzIC5kb3QuaXMtc2VsZWN0ZWQ6OmJlZm9yZSB7XG4gIGNvbG9yOiAjMTYxNzE4ICFpbXBvcnRhbnQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNUSVBQWUpTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogVGhpcyBpcyBhIGN1c3RvbSBhZGFwdGF0aW9uIG9mIHRoZSBUaXBweS5qcyBTYXNzIGZpbGUgdG8gbWFrZSBpdFxuICogdGhlbWFibGUgZm9yIG90aGVyIGJyYW5kcy5cbiAqL1xuLyoqXG4gKiBbMV0gQWxpZ24gd2l0aCBhcnJvdyByZWZlcmVuY2UgZWxlbWVudC5cbiAqL1xuLyoqXG4gKiBbMV0gUmVmZXJlbmNlIGZvciB0aGUgYXJyb3cuXG4gKiBbMl0gSWYgdGhlIGJyb3dzZXIgc3VwcG9ydHMgYGZpbHRlcjogZHJvcC1zaGFkb3dgLCBhcHBseSB0aGlzIGRlY2xhcmF0aW9uIHRvXG4gKiAgICAgaW5jbHVkZSB0aGUgYXJyb3cgaW4gdGhlIHNoYWRvdyBhcyB3ZWxsLlxuICogWzNdIERlZmVuc2l2ZWx5IHJlc2V0IGFueSBzcGFjaW5nLWJvdHRvbSBvZiB0aGUgbGFzdCBlbGVtZW50IGluIHRoZSBib2R5LlxuICogWzRdIExpbWl0IHRoZSBoZWlnaHQgb2YgdGhlIHRvb2x0aXAgZm9yIGxhcmdlIGNvbnRlbnQgYW5kIG1ha2UgaXQgc2Nyb2xsYWJsZS5cbiAqIFs1XSBNYWtlIHN1cmUgdGhhdCDigJxub3JtYWzigJ0gSFRNTCBlbGVtZW50cyBsaWtlIGA8aDE+YCBldGMuIGFsbCBnZXQgdGhlXG4gKiAgICAgY29ycmVjdCB0ZXh0IGNvbG9yLCB3aGVuIHRoZXkgYXJlIHBsYWNlZCBpbnNpZGUgb2YgdGhlIHRvb2x0aXAuXG4gKiAgICAgVXNlIGAhaW1wb3J0YW50YCB0byBhdm9pZCB0ZXh0IGNvbG9yIGJlaW5nIG92ZXJ3cml0dGVuIGJ5IGhpZ2hlciBzcGVjaWZpY2l0eS5cbiAqIFs2XSBDaGVjayBpZiB0aGUgdG9vbHRpcCB3aWxsIGhhdmUgYSBib3JkZXIgYW5kIHJlbmRlciB0aGUgdHJpYW5nbGUgZGlmZmVyZW50bHlcbiAqICAgICBhcyB0aGUgb3JpZ2luYWwgYXBwcm9hY2ggdXNlcyBgYm9yZGVyYCBpdHNlbGYgdG8gcmVuZGVyIHRoZSB0cmlhbmdsZS5cbiAqIFs3XSBPdmVyd3JpdGUgdGhlIGRlZmF1bHQgaG92ZXIgbGluayBib3JkZXIgY29sb3IuXG4gKiBbOF0gRml4IGlzc3VlIHdoZXJlIHRoZSBkcm9wIHNoYWRvdyB3YXMgc29tZXRpbWVzIG1pc3NpbmcgaW4gc29tZSB2ZXJzaW9uc1xuICogICAgIG9mIFNhZmFyaS4gVW5mb3J0dW5hdGVseSwgd2UgZG8gbm90IGhhdmUgYSByZWxpYWJsZSBDU1Mtb25seSBzb2x1dGlvblxuICogICAgIHRvIGludGVyY2VwdCB0aGUgU2FmYXJpIGJyb3dzZXIuIFRoZXJlZm9yZSwgd2UgYWRkIGB3aWxsLWNoYW5nZTogdHJhbnNmb3JtYFxuICogICAgIG9ubHkgd2hlbiBhIGRyb3Agc2hhZG93IGlzIHNldC5cbiAqIFs5XSBNYWtlcyBzdXJlIHRoYXQgdGhlIHRleHQgd2l0aGluIHRoZSB0b29sdGlwIHdyYXBzIG5vcm1hbGx5IGV2ZW4gaWZcbiAqICAgICBhIHBhcmVudCBlbGVtZW50IHN1cHByZXNzZXMgbGluZSBicmVha3MgdXNpbmcgYHdoaXRlLXNwYWNlOiBub3dyYXBgLlxuICogWzEwXSBOb3JtYWxpemUgYGZvbnQtd2VpZ2h0YCBidXQgZXhjbHVkZSBgPHN0cm9uZz5gIGFuZCBgPGI+YC5cbiAqL1xuW2RhdGEtdGlwcHktcm9vdF0ge1xuICBtYXgtd2lkdGg6IDMyMHB4O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiBbOV0gKi9cbn1cblxuLnRpcHB5LWJveCB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbMV0gKi9cbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDY0NzQ4O1xufVxuLnRpcHB5LWJveDpmb2N1cyB7XG4gIC0tZm9jdXMtb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgLS1mb2N1cy1vdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgLS1mb2N1cy1vdXRsaW5lLXdpZHRoOiAwO1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb2N1cy1vdXRsaW5lLWNvbG9yLCAjMTYxNzE4KTtcbiAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWZvY3VzLW91dGxpbmUtb2Zmc2V0LCAxcHgpO1xuICBvdXRsaW5lLXN0eWxlOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXN0eWxlLCBzb2xpZCk7XG4gIG91dGxpbmUtd2lkdGg6IHZhcigtLWZvY3VzLW91dGxpbmUtd2lkdGgsIDJweCk7XG59XG4udGlwcHktYm94LFxuLnRpcHB5LWJveCAqIHtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDsgLyogWzVdICovXG59XG4udGlwcHktYm94ICo6bm90KHN0cm9uZywgYikgeyAvKiBbMTBdICovXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4udGlwcHktYm94W2RhdGEtc3RhdGU9dmlzaWJsZV0ge1xuICBvcGFjaXR5OiAxO1xufVxuLnRpcHB5LWJveFtkYXRhLXN0YXRlPWhpZGRlbl0ge1xuICBvcGFjaXR5OiAwO1xufVxuLnRpcHB5LWJveCBhOmhvdmVyIHtcbiAgLyogWzddICovXG59XG5cbi50aXBweS1hcnJvdyB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG4udGlwcHktYXJyb3c6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLnRpcHB5LWNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIG1heC1oZWlnaHQ6IDMwMHB4OyAvKiBbNF0gKi9cbiAgb3ZlcmZsb3c6IGF1dG87IC8qIFs0XSAqL1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbi50aXBweS1jb250ZW50ID4gKjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzNdICovXG59XG5cbi50aXBweS1ib3hbZGF0YS1wbGFjZW1lbnRePXRvcF0ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7XG59XG4udGlwcHktYm94W2RhdGEtcGxhY2VtZW50Xj10b3BdIC50aXBweS1hcnJvdyB7XG4gIGJvdHRvbTogMDtcbn1cbi50aXBweS1ib3hbZGF0YS1wbGFjZW1lbnRePXRvcF0gLnRpcHB5LWFycm93OjpiZWZvcmUge1xuICBib3JkZXItdG9wOiA4cHggc29saWQgIzQ2NDc0ODtcbiAgYm9yZGVyLXJpZ2h0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogLThweDtcbiAgbGVmdDogMDsgLyogWzFdICovXG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAwJTtcbn1cblxuLnRpcHB5LWJveFtkYXRhLXBsYWNlbWVudF49Ym90dG9tXSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpO1xufVxuLnRpcHB5LWJveFtkYXRhLXBsYWNlbWVudF49Ym90dG9tXSAudGlwcHktYXJyb3cge1xuICB0b3A6IDA7XG59XG4udGlwcHktYm94W2RhdGEtcGxhY2VtZW50Xj1ib3R0b21dIC50aXBweS1hcnJvdzo6YmVmb3JlIHtcbiAgYm9yZGVyLWJvdHRvbTogOHB4IHNvbGlkICM0NjQ3NDg7XG4gIGJvcmRlci1yaWdodDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB0b3A6IC04cHg7XG4gIGxlZnQ6IDA7IC8qIFsxXSAqL1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTAwJTtcbn1cblxuLnRpcHB5LWJveFtkYXRhLXBsYWNlbWVudF49bGVmdF0ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLThweCk7XG59XG4udGlwcHktYm94W2RhdGEtcGxhY2VtZW50Xj1sZWZ0XSAudGlwcHktYXJyb3cge1xuICByaWdodDogMDtcbn1cbi50aXBweS1ib3hbZGF0YS1wbGFjZW1lbnRePWxlZnRdIC50aXBweS1hcnJvdzo6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQ6IDhweCBzb2xpZCAjNDY0NzQ4O1xuICBib3JkZXItdG9wOiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgcmlnaHQ6IC04cHg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAlIDUwJTtcbn1cblxuLnRpcHB5LWJveFtkYXRhLXBsYWNlbWVudF49cmlnaHRdIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDhweCk7XG59XG4udGlwcHktYm94W2RhdGEtcGxhY2VtZW50Xj1yaWdodF0gLnRpcHB5LWFycm93IHtcbiAgbGVmdDogMDtcbn1cbi50aXBweS1ib3hbZGF0YS1wbGFjZW1lbnRePXJpZ2h0XSAudGlwcHktYXJyb3c6OmJlZm9yZSB7XG4gIGJvcmRlci1yaWdodDogOHB4IHNvbGlkICM0NjQ3NDg7XG4gIGJvcmRlci10b3A6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBsZWZ0OiAtOHB4O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDUwJTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZMQVRQSUNLUi1PVkVSUklERVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gIFNldCAnaW1wb3J0YW50JyB0byBvdmVycmlkZSBpbmxpbmUgQ1NTIHN0eWxlcyBzZXQgYnkgZmxhdHBpY2tyIGFuZCBwcmV2ZW50XG4gKiAgICAgIHJlbmRlcmluZyBpc3N1ZXMgKGVzcGVjaWFsbHkgaW4gRmlyZWZveCkuXG4gKiBbMl0gIFByZXZlbnQgb3V0bGluZSBpZiB1c2VyIGNsaWNrcyBvbiB0aGUgc3BhY2UgYmV0d2VlbiByb290IGVsZW1lbnQgYW5kIGlubmVyXG4gKiAgICAgIGNvbnRhaW5lci5cbiAqIFszXSAgUmVtb3ZlIGJvcmRlciB3aGljaCBpcyBkaXNwbGF5ZWQgb24gZm9jdXMuXG4gKiBbNF0gIE9wdGltaXplIHRoZSBzaXplIGFuZCBwb3NpdGlvbiBvZiB0aGUgY2FsZW5kYXIgZm9yIHNtYWxsIG1vYmlsZSBkZXZpY2VzXG4gKiBbNV0gIEFkZCBhIHJlY3RhbmdsZSB0aGF0IHBvaW50cyBmcm9tIHRoZSBvcGVuIGNhbGVuZGFyIHRvIHRoZSBjb3JyZXNwb25kaW5nXG4gKiAgICAgIGlucHV0IGVsZW1lbnQuXG4gKiBbNl0gIFNob3cgY3Vyc29yIHBvaW50ZXIgb24gZWxlbWVudCB0aGF0IGlzIG5hdGl2ZWx5IG5vdCBpbnRlcmFjdGl2ZS5cbiAqIFs3XSAgUHJldmVudCBjYWxlbmRhciBvbiBtb2JpbGUgZGV2aWNlcyBmcm9tIGJlaW5nIHdpZGVyIHRoYW4gb24gdGhlIGRlc2t0b3AuXG4gKiBbOF0gIFJlbW92ZSBuYXRpdmUgaW5wdXQgc3BpbiBib3guXG4gKiBbOV0gIERvbid0IHNob3cgb3V0bGluZSB3aGVuIGNsaWNraW5nIG9uIGFycm93cy5cbiAqIFsxMF0gQ29ycmVjdCB3cm9uZyBwb3NpdGlvbmluZyBvZiBgLmZsYXRwaWNrci10aW1lYCBjYXVzZWQgYnkgbmVnYXRpdmUgbWFyZ2luLlxuICogWzExXSBVc2UgYGxpbmUtaGVpZ2h0YCB0byBzZXQgdGhlIGBoZWlnaHRgIG9mIHRoZSB0aW1lcGlja2VyIGFuZCB0byBlbnN1cmVcbiAqICAgICAgdGhlIGBpbnB1dHNgIGZpbGwgdGhlIGVudGlyZSBzcGFjZS5cbiAqIFsxMl0gT25seSBhcHBseSB0aGUgZm9udCBjb2xvcnMgdG8gZGF5cyBpbiBkaWZmZXJlbnQgbW9udGhzIGlmIHRoZSBkYXkgaXMgaW5cbiAqICAgICAgXCJkZWZhdWx0IHN0YXRlXCIuIElmIGhvdmVyL3NlbGVjdGVkIGlzIGFjdGl2ZSB0aGUgY29sb3IgbWlnaHQgY29sbGlkZVxuICogICAgICB3aXRoIHRoZSBmb250IGNvbG9yIGRlZmluZWQgaGVyZSwgbWFraW5nIHRoZSBkYXkgdW5yZWFkYWJsZS5cbiAqIFsxM10gSGlkZSBjbG9zZWQgZGF0ZXBpY2tlciB0byBwcmV2ZW50IHRha2luZyB1cCBzcGFjZS5cbiAqIFsxNF0gTWFuYWdlcyB0aGUgcG9zaXRpb24gb2YgdGhlIGNhbGVuZGFyIHdoZW4gb3BlbmluZyB0byB0b3AuXG4gKiBbMTVdIE1ha2UgdHJhbnNpdGlvbnMgb3B0aW9uYWwuXG4gKiBbMTZdIEFsbG93cyBjZW50ZXJpbmcgdGhlIGNvbnRyb2xzIGZvciBhbGwgdmlld3BvcnRzLlxuICogWzE3XSBDZW50ZXIgc3RyaWtlLXRocm91Z2ggYWJvdmUgbnVtYmVyLlxuICogWzE4XSBJbXByb3ZlIGFsaWdubWVudCBmb3IgYG1vbnRoc2Agcm93LlxuICogWzE5XSBIaWRlIGNvbnRyb2xzIHdoZW4gZGlzYWJsZWQgYW5kIHJlbW92aW5nIHRoZW0gZnJvbSB0aGUgYWNjZXNzaWJpbGl0eSB0cmVlLlxuICogWzIwXSBTdXBwcmVzcyB0aGUgY2FjaGVkIHN0YXRlIG9mIHByZXZpb3VzIGludGVyYWN0aW9ucy5cbiAqIFsyMV0gQWRkIGFuIGV4dHJhIHdlZWsgbnVtYmVycyBjb2x1bW4gYnkgYWRkaW5nIGV4dHJhIHdpZHRoIHRvIHRoZSBjb250YWluZXIuXG4gKiBbMjJdIEFkZCBleHRyYSB3aWR0aHMgdG8gdGhlIGlubmVyIGNvbnRhaW5lciB0byBhY2NvdW50IGZvciB0aGUgZXh0cmEgd2Vla1xuICogICAgICBudW1iZXJzIGNvbHVtbi5cbiAqIFsyM10gVGhlIHdlZWsgbnVtYmVyIHNob3VsZCBub3QgYmUgaW50ZXJhY3RlZCB3aXRoLlxuICogWzI0XSBBIHZlcnRpY2FsIGJvcmRlciBpcyBhZGRlZCBhcyBwc2V1ZG8gZWxlbWVudCB0byB0aGUgd2VlayBudW1iZXIgY29sdW1uXG4gKiAgICAgIHRvIHNlcGFyYXRlIGl0IGZyb20gdGhlIHJlc3Qgb2YgdGhlIGNhbGVuZGFyIHdpdGhvdXQgY2hhbmdpbmcgdGhlXG4gKiAgICAgIGVsZW1lbnTigJlzIHdpZHRoLlxuICogWzI1XSBUaGUgYm9yZGVyIHNob3VsZCBiZSBvbmx5IGFzIGhpZ2ggYXMgY2hhcmFjdGVycyBpbiB0aGUgdG9wIHJvdy5cbiAqL1xuLyoqXG4gKiBHRU5FUkFMIEZMQVRQSUNLUiBTVFlMRVNcbiAqL1xuLmZsYXRwaWNrci1jYWxlbmRhciB7XG4gIC0tZmxhdHBpY2tyLWV4dHJhLXdpZHRoOiAwcHg7IC8qIFsyMV0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBsZW5ndGgtemVyby1uby11bml0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogNDgwMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1ncm93OiAxO1xuICBmbGV4LXNocmluazogMDtcbiAgZmxleC1iYXNpczogYXV0bztcbiAgd2lkdGg6IGNhbGModmFyKC0tZmxhdHBpY2tyLWV4dHJhLXdpZHRoKSArIDM0NHB4KSAhaW1wb3J0YW50OyAvKiBbMV0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBpdGNzcy9uby1hdC1pbXBvcnRhbnQgKi9cbiAgbWF4LXdpZHRoOiBjYWxjKHZhcigtLWZsYXRwaWNrci1leHRyYS13aWR0aCkgKyAzNDRweCk7IC8qIFs3XSAqL1xuICBwYWRkaW5nOiAyNHB4IDI0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvdXRsaW5lOiAwOyAvKiBbMl0gKi9cbiAgb3BhY2l0eTogMDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm94LXNoYWRvdzogMCAycHggMjVweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5mbGF0cGlja3ItY2FsZW5kYXIgeyAvKiBbNF0gKi9cbiAgICBsZWZ0OiA1MCUgIWltcG9ydGFudDsgLyogWzFdICovXG4gICAgd2lkdGg6IDkwdncgIWltcG9ydGFudDsgLyogWzFdICovXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG59XG4uZmxhdHBpY2tyLWNhbGVuZGFyOm5vdCgub3Blbikge1xuICBkaXNwbGF5OiBub25lOyAvKiBbMTNdICovXG59XG4uZmxhdHBpY2tyLWNhbGVuZGFyLm9wZW4ge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBvcGFjaXR5OiAxO1xufVxuLmZsYXRwaWNrci1jYWxlbmRhci5oYXNXZWVrcyB7XG4gIC0tZmxhdHBpY2tyLWV4dHJhLXdpZHRoOiA0MnB4OyAvKiBbMjJdICovXG59XG4uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Qm90dG9tIHtcbiAgbWFyZ2luLXRvcDogLTUwcHg7IC8qIFsxNF0gKi9cbn1cblxuLmZsYXRwaWNrci1pbm5lckNvbnRhaW5lciB7XG4gIHdpZHRoOiBjYWxjKDI5NHB4ICsgdmFyKC0tZmxhdHBpY2tyLWV4dHJhLXdpZHRoKSk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmZsYXRwaWNrci1pbm5lckNvbnRhaW5lciB7IC8qIFs0XSAqL1xuICAgIHdpZHRoOiAxMDAlOyAvKiBbMV0gKi9cbiAgfVxufVxuXG4uZmxhdHBpY2tyLWlucHV0LCAuZmxhdHBpY2tyLWlucHV0W3JlYWRvbmx5XSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5mbGF0cGlja3ItaW5wdXRbZGlzYWJsZWRdIH4gLmMtaW5wdXRfX2FkZG9uIC5jLWljb24ge1xuICBjb2xvcjogIzllOWZhMDtcbn1cblxuLyoqXG4gKiBGTEFUUElDS1IgSU5QVVQgV1JBUFBFUiBTVFlMRVNcbiAqL1xuLm51bUlucHV0V3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5udW1JbnB1dFdyYXBwZXI6aG92ZXIgLmFycm93VXAsXG4ubnVtSW5wdXRXcmFwcGVyOmhvdmVyIC5hcnJvd0Rvd24ge1xuICBvcGFjaXR5OiAxO1xufVxuLmZsYXRwaWNrci1tb250aHMgLm51bUlucHV0V3JhcHBlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDMuNWVtO1xufVxuLmZsYXRwaWNrci1tb250aHMgLm51bUlucHV0V3JhcHBlciAuYXJyb3dVcCxcbi5mbGF0cGlja3ItbW9udGhzIC5udW1JbnB1dFdyYXBwZXIgLmFycm93RG93biB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcmlnaHQ6IC0xNXB4O1xuICB3aWR0aDogMTVweDtcbn1cbi5mbGF0cGlja3ItdGltZSAubnVtSW5wdXRXcmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1ncm93OiAxO1xufVxuLmZsYXRwaWNrci10aW1lIC5udW1JbnB1dFdyYXBwZXIgLmFycm93VXAsXG4uZmxhdHBpY2tyLXRpbWUgLm51bUlucHV0V3JhcHBlciAuYXJyb3dEb3duIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICByaWdodDogMDtcbiAgd2lkdGg6IDI4cHg7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLm51bUlucHV0V3JhcHBlciAuYXJyb3dVcCxcbi5udW1JbnB1dFdyYXBwZXIgLmFycm93RG93biB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IDUwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6ICMxNjE3MTg7XG4gIG9wYWNpdHk6IDA7XG59XG4ubnVtSW5wdXRXcmFwcGVyIC5hcnJvd1VwOmhvdmVyLFxuLm51bUlucHV0V3JhcHBlciAuYXJyb3dEb3duOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcbiAgY3Vyc29yOiBwb2ludGVyOyAvKiBbNl0gKi9cbn1cbi5udW1JbnB1dFdyYXBwZXIgLmFycm93VXA6OmJlZm9yZSxcbi5udW1JbnB1dFdyYXBwZXIgLmFycm93RG93bjo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJicm9uc29uLXNrb2RhXCIgIWltcG9ydGFudDsgLyogWzFdICovXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG4ubnVtSW5wdXRXcmFwcGVyIC5hcnJvd1VwIHtcbiAgdG9wOiAwO1xufVxuLm51bUlucHV0V3JhcHBlciAuYXJyb3dVcDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTZcIjtcbn1cbi5udW1JbnB1dFdyYXBwZXIgLmFycm93RG93biB7XG4gIGJvdHRvbTogMDtcbn1cbi5udW1JbnB1dFdyYXBwZXIgLmFycm93RG93bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTFcIjtcbn1cbi5udW1JbnB1dFdyYXBwZXIgaW5wdXRbdHlwZT1udW1iZXJdIHtcbiAgYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiBbOF0gKi9cbn1cbi5udW1JbnB1dFdyYXBwZXIgaW5wdXQ6Oi1tcy1jbGVhciB7XG4gIGRpc3BsYXk6IG5vbmU7IC8qIFs4XSAqL1xufVxuLm51bUlucHV0V3JhcHBlciBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbi5udW1JbnB1dFdyYXBwZXIgaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICBtYXJnaW46IDA7IC8qIFs4XSAqL1xuICBhcHBlYXJhbmNlOiBub25lOyAvKiBbOF0gKi9cbn1cblxuLm51bUlucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzE2MTcxODtcbn1cbi5udW1JbnB1dDpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG4uZmxhdHBpY2tyLXRpbWUgLm51bUlucHV0IHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG5cbi8qKlxuICogRkxBVFBJQ0tSIE1PTlRIIFNUWUxFU1xuICovXG4uZmxhdHBpY2tyLW1vbnRocyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIFsxNl0gKi9cbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cblxuLmZsYXRwaWNrci1tb250aCB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGZsZXgtYmFzaXM6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGgge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuXG4uZmxhdHBpY2tyLXByZXYtbW9udGgsXG4uZmxhdHBpY2tyLW5leHQtbW9udGgge1xuICBkaXNwbGF5OiBmbGV4OyAvKiBbMThdICovXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMzRweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5mbGF0cGlja3ItcHJldi1tb250aC5mbGF0cGlja3ItZGlzYWJsZWQsXG4uZmxhdHBpY2tyLW5leHQtbW9udGguZmxhdHBpY2tyLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMDsgLyogWzE5XSAqL1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IC8qIFsxOV0gKi9cbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIFsyMF0gKi9cbn1cbi5mbGF0cGlja3ItcHJldi1tb250aCAuYy1pY29uLFxuLmZsYXRwaWNrci1uZXh0LW1vbnRoIC5jLWljb24ge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuXG4vKipcbiAqIEZMQVRQSUNLUiBXRUVLREFZIFNUWUxFU1xuICovXG4uZmxhdHBpY2tyLXdlZWtkYXlzIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5mbGF0cGlja3Itd2Vla2RheWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uZmxhdHBpY2tyLXdlZWtkYXkge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMzRweDtcbiAgd2lkdGg6IDM0cHg7XG4gIGhlaWdodDogMzRweDtcbiAgbWFyZ2luOiA0cHggNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogIzE2MTcxODtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5mbGF0cGlja3Itd2Vla2RheSB7IC8qIFs0XSAqL1xuICAgIHdpZHRoOiBjYWxjKDE0LjI4NTcxNDI4NTclIC0gKDIgKiA0cHgpKTtcbiAgICBoZWlnaHQ6IGNhbGMoMTQuMjg1NzE0Mjg1NyUgLSAoMiAqIDRweCkpO1xuICB9XG59XG5cbi8qKlxuICogRkxBVFBJQ0tSIERBWSBTVFlMRVNcbiAqL1xuLmZsYXRwaWNrci1kYXlzIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgLyogWzFdICovIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgaXRjc3Mvbm8tYXQtaW1wb3J0YW50ICovXG59XG5cbi5kYXlDb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZmxhdHBpY2tyLWRheSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDM0cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDM0cHg7XG4gIGhlaWdodDogMzRweDtcbiAgbWFyZ2luOiA0cHggNHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjMTYxNzE4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmZsYXRwaWNrci1kYXkgeyAvKiBbNF0gKi9cbiAgICB3aWR0aDogY2FsYygxNC4yODU3MTQyODU3JSAtICgyICogNHB4KSk7XG4gICAgaGVpZ2h0OiBjYWxjKDE0LjI4NTcxNDI4NTclIC0gKDIgKiA0cHgpKTtcbiAgfVxufVxuLmZsYXRwaWNrci1kYXk6aG92ZXIge1xuICBmb250LXdlaWdodDogNDAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xuICBjb2xvcjogIzE2MTcxODtcbn1cbi5mbGF0cGlja3ItZGF5LmluUmFuZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThmZmNjO1xufVxuLmZsYXRwaWNrci1kYXkuaW5SYW5nZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG59XG4uZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQxOTQ2ODtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MTk0Njg7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmZsYXRwaWNrci1kYXkuZmxhdHBpY2tyLWRpc2FibGVkIHtcbiAgY29sb3I6ICM5ZTlmYTA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmZsYXRwaWNrci1kYXkuZmxhdHBpY2tyLWRpc2FibGVkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIHRvcDogNTAlOyAvKiBbMTddICovXG4gIGxlZnQ6IDUwJTsgLyogWzE3XSAqL1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDI1cHg7XG4gIGhlaWdodDogMXB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMzBkZWcpIHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgLyogWzE3XSAqL1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwOyAvKiBbMTddICovXG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5mbGF0cGlja3ItZGF5Om5vdCguaW5SYW5nZSk6bm90KC5zdGFydFJhbmdlKTpub3QoLmVuZFJhbmdlKTpub3QoLnNlbGVjdGVkKTpub3QoOmhvdmVyKTpub3QoOmZvY3VzKSB7IC8qIFsxMl0gKi8gfVxuLmZsYXRwaWNrci1kYXk6bm90KC5pblJhbmdlKTpub3QoLnN0YXJ0UmFuZ2UpOm5vdCguZW5kUmFuZ2UpOm5vdCguc2VsZWN0ZWQpOm5vdCg6aG92ZXIpOm5vdCg6Zm9jdXMpLnByZXZNb250aERheSwgLmZsYXRwaWNrci1kYXk6bm90KC5pblJhbmdlKTpub3QoLnN0YXJ0UmFuZ2UpOm5vdCguZW5kUmFuZ2UpOm5vdCguc2VsZWN0ZWQpOm5vdCg6aG92ZXIpOm5vdCg6Zm9jdXMpLm5leHRNb250aERheSB7XG4gIGNvbG9yOiAjOWU5ZmEwO1xufVxuLmZsYXRwaWNrci1kYXkudG9kYXk6bm90KC5mbGF0cGlja3ItZGlzYWJsZWQpIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgYm9yZGVyOiAxcHggc29saWQgY3VycmVudENvbG9yO1xuICBjb2xvcjogIzE2MTcxODtcbn1cbi5mbGF0cGlja3ItZGF5LnNlbGVjdGVkOm5vdCguZmxhdHBpY2tyLWRpc2FibGVkKSB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MTk0Njg7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgb3V0bGluZTogMDsgLyogWzNdICovXG59XG4uZmxhdHBpY2tyLWRheS5zZWxlY3RlZDpub3QoLmZsYXRwaWNrci1kaXNhYmxlZCk6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDE5NDY4O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLyoqXG4gKiBGTEFUUElDS1IgV0VFSyBOVU1CRVJTXG4gKi9cbi5mbGF0cGlja3Itd2Vla3dyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogWzIzXSAqL1xufVxuLmZsYXRwaWNrci13ZWVrd3JhcHBlcjo6YmVmb3JlIHsgLyogWzI0XSAqL1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygoMzRweCAtIDE2cHgpIC8gMik7IC8qIFsyNV0gKi9cbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2U0ZTRlNDtcbn1cbi5mbGF0cGlja3Itd2Vla3dyYXBwZXIgLmZsYXRwaWNrci13ZWVrZGF5IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAzNHB4O1xufVxuLmZsYXRwaWNrci13ZWVrd3JhcHBlciAuZmxhdHBpY2tyLWRheSwgLmZsYXRwaWNrci13ZWVrd3JhcHBlciAuZmxhdHBpY2tyLWRheTpob3ZlciB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogIzE2MTcxODtcbn1cbi5mbGF0cGlja3Itd2Vla3dyYXBwZXIgLmZsYXRwaWNrci13ZWVrcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi8qKlxuICogRkxBVFBJQ0tSIFRJTUUgU1RZTEVTXG4gKi9cbi5mbGF0cGlja3ItdGltZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogLTI0cHggLTI0cHg7IC8qIFsxMF0gKi9cbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uZmxhdHBpY2tyLXRpbWU6Zm9jdXMge1xuICBvdXRsaW5lOiAwOyAvKiBbOV0gKi9cbn1cblxuLmZsYXRwaWNrci1ob3VyLFxuLmZsYXRwaWNrci1taW51dGUsXG4uZmxhdHBpY2tyLXNlY29uZCB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiA1NnB4O1xuICBmbGV4LWdyb3c6IDE7XG4gIGZsZXgtc2hyaW5rOiAxO1xuICBmbGV4LWJhc2lzOiBhdXRvO1xuICB3aWR0aDogMTAwJTsgLyogWzEwXSAqL1xuICBib3JkZXI6IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZmxhdHBpY2tyLWhvdXI6Zm9jdXMsIC5mbGF0cGlja3ItaG91cjpob3Zlcixcbi5mbGF0cGlja3ItbWludXRlOmZvY3VzLFxuLmZsYXRwaWNrci1taW51dGU6aG92ZXIsXG4uZmxhdHBpY2tyLXNlY29uZDpmb2N1cyxcbi5mbGF0cGlja3Itc2Vjb25kOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLmZsYXRwaWNrci10aW1lLXNlcGFyYXRvciB7XG4gIGxpbmUtaGVpZ2h0OiA1NnB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5mbGF0cGlja3ItYW0tcG0ge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogNTZweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1pbi13aWR0aDogOTBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLyoqXG4gKiBbMV0gQWxsb3cgdG8gYWRkIGBwYWRkaW5nYCB0byBzaXplIHRvIGF2b2lkIHNoaWZ0IG9mIGRhdGVzIGluIGNhbGVuZGFyIGxheW91dC5cbiAqIFsyXSBSZW1vdmUgXCJnYXBcIiwgYW5kIFwicmVzdG9yZVwiIGJ5IHVzaW5nIGBwYWRkaW5nYCB0byBoYXZlIGEgZ2FwLWxlc3MgcmFuZ2UuXG4gKiBbM10gQWRkIGFkZGl0aW9uYWwgXCJzcXVhcmVcIiBiYWNrZ3JvdW5kIGZvciBzdGFydCAmIGVuZC5cbiAqIFs0XSBPdmVybGFwIHRvIGNyZWF0ZSBzZWFtbGVzcyByYW5nZSBzdHlsZS5cbiAqIFs1XSBBZGRpdGlvbmFsIGJhY2tncm91bmQgb25seSB0byBzaWRlIHRvd2FyZHMgaW4tcmFuZ2UgaXRlbXMuXG4gKiBbNl0gSW5SYW5nZS1TdGFydCBiYWNrZ3JvdW5kIG9ubHkgd2hlbiByYW5nZXMgYXJlIHNlbGVjdGVkIG9yIGVuZERhdGUgaXNcbiAqICAgICBmb2xsb3dlZCBkaXJlY3RseSBieSBzdGFydERhdGUgKHRoZSBmb2xsb3dpbmcgZGF5KS5cbiAqICAgICBgOmhhc2AgaXMgdXNlZCBhcyBhIHByb2dyZXNzaXZlIGVuaGFuY2VtZW50IHRvIGF2b2lkIFwiY3V0b2ZmXCIgc3RhcnQvZW5kXG4gKiAgICAgcmFuZ2Ugb24gZGF0ZXMuIEZvciBub24gYDpoYXNgIGZhbGxiYWNrIHNlZSBmYWxsYmFjayBsYXllci5cbiAqIFs3XSBSZXNldCBkZWZhdWx0LlxuICogWzhdIFNob3cgY29udHJvbHMgaW4gYWN0dWFsIHNpemUgKGljb24tc2l6ZSB4IGljb24tc2l6ZSksIG5vdCBsaW1pdGVkIHNpemUuXG4gKiBbOV0gSW1wcm92ZSBzcGFjZSBkaXN0cmlidXRpb24gd2hlbiBtb250aCBzZWxlY3Rpb25cbiAqICAgICBpcyBkb25lIHZpYSBgPHNlbGVjdD5gIChgLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoc2ApLlxuICogWzEwXSBTZWxlY3RvcnMgY2FuIG5vdCBiZSBjaGFpbmVkIChsaW1pdGF0aW9uIG9mIGBidXR0b24taWNvbi1zdGF0ZXMoKWAgbWl4aW4pLlxuICovXG4uZmxhdHBpY2tyLWRheSB7XG4gIC8qIFs2XSAqL1xuICAvKiBbNl0gKi9cbn1cbi5mbGF0cGlja3ItZGF5LmluUmFuZ2U6bm90KC5zdGFydFJhbmdlLCAuZW5kUmFuZ2UpIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIFsxXSAqL1xuICBtYXJnaW4tbGVmdDogMDsgLyogWzJdICovXG4gIG1hcmdpbi1yaWdodDogMDsgLyogWzJdICovXG4gIHBhZGRpbmctbGVmdDogNHB4OyAvKiBbMl0gKi9cbiAgcGFkZGluZy1yaWdodDogNHB4OyAvKiBbMl0gKi9cbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UsIC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvKiBbM10gKi9cbn1cbi5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2U6OmJlZm9yZSwgLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2U6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogLTE7XG4gIHRvcDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2U6aGFzKCsgLmluUmFuZ2UpOjpiZWZvcmUsIC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2U6aGFzKCsgLmVuZFJhbmdlKTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZmZjYztcbn1cbi5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UgKyAuZW5kUmFuZ2U6OmJlZm9yZSwgLmZsYXRwaWNrci1kYXkuaW5SYW5nZSArIC5lbmRSYW5nZTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZmZjYztcbn1cbi5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2U6OmJlZm9yZSB7XG4gIGxlZnQ6IDUwJTsgLyogWzVdICovXG4gIHJpZ2h0OiAtNHB4OyAvKiBbNF0gKi9cbn1cbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlOjpiZWZvcmUge1xuICBsZWZ0OiAtNHB4OyAvKiBbNF0gKi9cbiAgcmlnaHQ6IDUwJTsgLyogWzVdICovXG59XG5cbi8qIFsxMF0gKi9cbi5mbGF0cGlja3ItcHJldi1tb250aCAuYy1pY29uIHtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBzY2FsZTogMTtcbn1cbi5mbGF0cGlja3ItcHJldi1tb250aCAuYy1pY29uOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogLTE7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogaW5oZXJpdDtcbn1cbi5mbGF0cGlja3ItcHJldi1tb250aCAuYy1pY29uOmhvdmVyOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIsIDIzLCAyNCwgMC4wNik7XG59XG5cbi5mbGF0cGlja3ItcHJldi1tb250aCAuYy1pY29uOmFjdGl2ZSB7XG4gIHNjYWxlOiAwLjk1O1xufVxuXG4vKiBbMTBdICovXG4uZmxhdHBpY2tyLW5leHQtbW9udGggLmMtaWNvbiB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgc2NhbGU6IDE7XG59XG4uZmxhdHBpY2tyLW5leHQtbW9udGggLmMtaWNvbjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IC0xO1xuICB3aWR0aDogNDRweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRyYW5zaXRpb246IGluaGVyaXQ7XG59XG4uZmxhdHBpY2tyLW5leHQtbW9udGggLmMtaWNvbjpob3Zlcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyLCAyMywgMjQsIDAuMDYpO1xufVxuXG4uZmxhdHBpY2tyLW5leHQtbW9udGggLmMtaWNvbjphY3RpdmUge1xuICBzY2FsZTogMC45NTtcbn1cblxuLyogWzhdICovXG4uZmxhdHBpY2tyLW1vbnRocyAubnVtSW5wdXRXcmFwcGVyIC5hcnJvd1VwLFxuLmZsYXRwaWNrci1tb250aHMgLm51bUlucHV0V3JhcHBlciAuYXJyb3dEb3duIHtcbiAgcmlnaHQ6IGF1dG87IC8qIFs3XSAqL1xuICBsZWZ0OiAxMDAlO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmZsYXRwaWNrci1tb250aHMgLm51bUlucHV0V3JhcHBlciAuYXJyb3dVcCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cbi5mbGF0cGlja3ItbW9udGhzIC5udW1JbnB1dFdyYXBwZXIgLmFycm93RG93biB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MCUpO1xufVxuLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRocyB+IC5udW1JbnB1dFdyYXBwZXIge1xuICBtYXJnaW4tcmlnaHQ6IDE2cHg7IC8qIFs5XSAqL1xufVxuXG5Aa2V5ZnJhbWVzIHBseXItcHJvZ3Jlc3Mge1xuICB0byB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMjVweCAwO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHBseXItcG9wdXAge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgcGx5ci1mYWRlLWluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLnBseXIge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlyZWN0aW9uOiBsdHI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZvbnQtZmFtaWx5OiBcInNrb2RhLW5leHRcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMjAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4zcyBlYXNlO1xuICB6LWluZGV4OiAwO1xufVxuLnBseXIgdmlkZW8sXG4ucGx5ciBhdWRpbyxcbi5wbHlyIGlmcmFtZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnBseXIgYnV0dG9uIHtcbiAgZm9udDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHdpZHRoOiBhdXRvO1xufVxuLnBseXI6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuXG4ucGx5ci0tZnVsbC11aSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ucGx5ci0tZnVsbC11aSAqLFxuLnBseXItLWZ1bGwtdWkgKjo6YWZ0ZXIsXG4ucGx5ci0tZnVsbC11aSAqOjpiZWZvcmUge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG4ucGx5ci0tZnVsbC11aSBhLFxuLnBseXItLWZ1bGwtdWkgYnV0dG9uLFxuLnBseXItLWZ1bGwtdWkgaW5wdXQsXG4ucGx5ci0tZnVsbC11aSBsYWJlbCB7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xufVxuXG4ucGx5cl9fYmFkZ2Uge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nOiAzcHggNHB4O1xufVxuXG4ucGx5ci0tZnVsbC11aSA6Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1jb250YWluZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ucGx5cl9fY2FwdGlvbnMge1xuICBhbmltYXRpb246IHBseXItZmFkZS1pbiAwLjNzIGVhc2U7XG4gIGJvdHRvbTogMDtcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsZWZ0OiAwO1xuICBwYWRkaW5nOiAyNHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZS1pbi1vdXQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnBseXJfX2NhcHRpb25zIHNwYW46ZW1wdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5wbHlyX19jYXB0aW9ucyB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIHBhZGRpbmc6IGNhbGMoMjRweCAqIDIpO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIwcHgpIHtcbiAgLnBseXJfX2NhcHRpb25zIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gIH1cbn1cblxuLnBseXItLWNhcHRpb25zLWFjdGl2ZSAucGx5cl9fY2FwdGlvbnMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnBseXI6bm90KC5wbHlyLS1oaWRlLWNvbnRyb2xzKSAucGx5cl9fY29udHJvbHM6bm90KDplbXB0eSkgfiAucGx5cl9fY2FwdGlvbnMge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygyNHB4ICogLTQpKTtcbn1cblxuLnBseXJfX2NhcHRpb24ge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJveC1kZWNvcmF0aW9uLWJyZWFrOiBjbG9uZTtcbiAgY29sb3I6ICMxNjE3MTg7XG4gIGxpbmUtaGVpZ2h0OiAxODUlO1xuICBwYWRkaW5nOiAwLjJlbSAwLjVlbTtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xufVxuLnBseXJfX2NhcHRpb24gZGl2IHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG4ucGx5cl9fY29udHJvbCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBwYWRkaW5nOiAyNHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4ucGx5cl9fY29udHJvbCBzdmcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmlsbDogY3VycmVudENvbG9yO1xuICBoZWlnaHQ6IDI0cHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB3aWR0aDogMjRweDtcbn1cbi5wbHlyX19jb250cm9sOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cbi5wbHlyX19jb250cm9sLnBseXJfX3RhYi1mb2N1cyB7XG4gIG91dGxpbmUtY29sb3I6ICNmZmZmZmY7XG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gIG91dGxpbmUtc3R5bGU6IGRvdHRlZDtcbiAgb3V0bGluZS13aWR0aDogM3B4O1xufVxuXG5hLnBseXJfX2NvbnRyb2wge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5hLnBseXJfX2NvbnRyb2w6OmFmdGVyLCBhLnBseXJfX2NvbnRyb2w6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wbHlyX19jb250cm9sOm5vdCgucGx5cl9fY29udHJvbC0tcHJlc3NlZCkgLmljb24tLXByZXNzZWQsXG4ucGx5cl9fY29udHJvbC5wbHlyX19jb250cm9sLS1wcmVzc2VkIC5pY29uLS1ub3QtcHJlc3NlZCxcbi5wbHlyX19jb250cm9sOm5vdCgucGx5cl9fY29udHJvbC0tcHJlc3NlZCkgLmxhYmVsLS1wcmVzc2VkLFxuLnBseXJfX2NvbnRyb2wucGx5cl9fY29udHJvbC0tcHJlc3NlZCAubGFiZWwtLW5vdC1wcmVzc2VkIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnBseXItLWZ1bGwtdWkgOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnBseXJfX2NvbnRyb2xzIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnBseXJfX2NvbnRyb2xzIC5wbHlyX19wcm9ncmVzc19fY29udGFpbmVyIHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xufVxuLnBseXJfX2NvbnRyb2xzIC5wbHlyX19jb250cm9sc19faXRlbSB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDI0cHggLyA0KTtcbn1cbi5wbHlyX19jb250cm9scyAucGx5cl9fY29udHJvbHNfX2l0ZW06Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLnBseXJfX2NvbnRyb2xzIC5wbHlyX19jb250cm9sc19faXRlbS5wbHlyX19wcm9ncmVzc19fY29udGFpbmVyIHtcbiAgcGFkZGluZy1sZWZ0OiBjYWxjKDI0cHggLyA0KTtcbn1cbi5wbHlyX19jb250cm9scyAucGx5cl9fY29udHJvbHNfX2l0ZW0ucGx5cl9fdGltZSB7XG4gIHBhZGRpbmc6IDAgY2FsYygyNHB4IC8gMik7XG59XG4ucGx5cl9fY29udHJvbHMgLnBseXJfX2NvbnRyb2xzX19pdGVtLnBseXJfX3Byb2dyZXNzX19jb250YWluZXI6Zmlyc3QtY2hpbGQsIC5wbHlyX19jb250cm9scyAucGx5cl9fY29udHJvbHNfX2l0ZW0ucGx5cl9fdGltZTpmaXJzdC1jaGlsZCwgLnBseXJfX2NvbnRyb2xzIC5wbHlyX19jb250cm9sc19faXRlbS5wbHlyX190aW1lICsgLnBseXJfX3RpbWUge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG4ucGx5cl9fY29udHJvbHM6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ucGx5ciBbZGF0YS1wbHlyPWNhcHRpb25zXSxcbi5wbHlyIFtkYXRhLXBseXI9cGlwXSxcbi5wbHlyIFtkYXRhLXBseXI9YWlycGxheV0sXG4ucGx5ciBbZGF0YS1wbHlyPWZ1bGxzY3JlZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnBseXItLWNhcHRpb25zLWVuYWJsZWQgW2RhdGEtcGx5cj1jYXB0aW9uc10sXG4ucGx5ci0tcGlwLXN1cHBvcnRlZCBbZGF0YS1wbHlyPXBpcF0sXG4ucGx5ci0tYWlycGxheS1zdXBwb3J0ZWQgW2RhdGEtcGx5cj1haXJwbGF5XSxcbi5wbHlyLS1mdWxsc2NyZWVuLWVuYWJsZWQgW2RhdGEtcGx5cj1mdWxsc2NyZWVuXSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLnBseXJfX21lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucGx5cl9fbWVudSAucGx5cl9fY29udHJvbCBzdmcge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xufVxuLnBseXJfX21lbnUgLnBseXJfX2NvbnRyb2xbYXJpYS1leHBhbmRlZD10cnVlXSBzdmcge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG59XG4ucGx5cl9fbWVudSAucGx5cl9fY29udHJvbFthcmlhLWV4cGFuZGVkPXRydWVdIC5wbHlyX190b29sdGlwIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5wbHlyX19tZW51X19jb250YWluZXIge1xuICBhbmltYXRpb246IHBseXItcG9wdXAgMC4ycyBlYXNlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm90dG9tOiAxMDAlO1xuICBib3gtc2hhZG93OiAwIDAgNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogLTNweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgei1pbmRleDogMztcbn1cbi5wbHlyX19tZW51X19jb250YWluZXIgPiBkaXYge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgMC4zNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgd2lkdGggMC4zNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cbi5wbHlyX19tZW51X19jb250YWluZXI6OmFmdGVyIHtcbiAgYm9yZGVyOiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgY29udGVudDogXCJcIjtcbiAgaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiBjYWxjKCgoMjRweCAvIDIpICsgMjRweCkgLSAoNnB4IC8gMikpO1xuICB0b3A6IDEwMCU7XG4gIHdpZHRoOiAwO1xufVxuLnBseXJfX21lbnVfX2NvbnRhaW5lciBbcm9sZT1tZW51XSB7XG4gIHBhZGRpbmc6IDI0cHg7XG59XG4ucGx5cl9fbWVudV9fY29udGFpbmVyIFtyb2xlPW1lbnVpdGVtXSxcbi5wbHlyX19tZW51X19jb250YWluZXIgW3JvbGU9bWVudWl0ZW1yYWRpb10ge1xuICBtYXJnaW4tdG9wOiAycHg7XG59XG4ucGx5cl9fbWVudV9fY29udGFpbmVyIFtyb2xlPW1lbnVpdGVtXTpmaXJzdC1jaGlsZCxcbi5wbHlyX19tZW51X19jb250YWluZXIgW3JvbGU9bWVudWl0ZW1yYWRpb106Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLnBseXJfX21lbnVfX2NvbnRhaW5lciAucGx5cl9fY29udHJvbCB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDI0cHggLyAxLjUpO1xuICBwYWRkaW5nLWxlZnQ6IGNhbGMoMjRweCAqIDEuNSk7XG4gIHBhZGRpbmctcmlnaHQ6IGNhbGMoMjRweCAqIDEuNSk7XG4gIHBhZGRpbmctdG9wOiBjYWxjKDI0cHggLyAxLjUpO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG59XG4ucGx5cl9fbWVudV9fY29udGFpbmVyIC5wbHlyX19jb250cm9sID4gc3BhbiB7XG4gIGFsaWduLWl0ZW1zOiBpbmhlcml0O1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbn1cbi5wbHlyX19tZW51X19jb250YWluZXIgLnBseXJfX2NvbnRyb2w6OmFmdGVyIHtcbiAgYm9yZGVyOiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cbi5wbHlyX19tZW51X19jb250YWluZXIgLnBseXJfX2NvbnRyb2wtLWZvcndhcmQge1xuICBwYWRkaW5nLXJpZ2h0OiBjYWxjKDI0cHggKiA0KTtcbn1cbi5wbHlyX19tZW51X19jb250YWluZXIgLnBseXJfX2NvbnRyb2wtLWZvcndhcmQ6OmFmdGVyIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNmZmZmZmY7XG4gIHJpZ2h0OiBjYWxjKCgyNHB4ICogMS41KSAtIDZweCk7XG59XG4ucGx5cl9fbWVudV9fY29udGFpbmVyIC5wbHlyX19jb250cm9sLS1mb3J3YXJkLnBseXJfX3RhYi1mb2N1czo6YWZ0ZXIsIC5wbHlyX19tZW51X19jb250YWluZXIgLnBseXJfX2NvbnRyb2wtLWZvcndhcmQ6aG92ZXI6OmFmdGVyIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5wbHlyX19tZW51X19jb250YWluZXIgLnBseXJfX2NvbnRyb2wtLWJhY2sge1xuICBmb250LXdlaWdodDogNDAwO1xuICBtYXJnaW46IDI0cHg7XG4gIG1hcmdpbi1ib3R0b206IGNhbGMoMjRweCAvIDIpO1xuICBwYWRkaW5nLWxlZnQ6IGNhbGMoMjRweCAqIDQpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAoMjRweCAqIDIpKTtcbn1cbi5wbHlyX19tZW51X19jb250YWluZXIgLnBseXJfX2NvbnRyb2wtLWJhY2s6OmFmdGVyIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjZmZmZmZmO1xuICBsZWZ0OiBjYWxjKCgyNHB4ICogMS41KSAtIDZweCk7XG59XG4ucGx5cl9fbWVudV9fY29udGFpbmVyIC5wbHlyX19jb250cm9sLS1iYWNrOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3gtc2hhZG93OiAwIDFweCAwICNmZmZmZmY7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGhlaWdodDogMXB4O1xuICBsZWZ0OiAwO1xuICBtYXJnaW4tdG9wOiBjYWxjKDI0cHggLyAyKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiAxMDAlO1xufVxuLnBseXJfX21lbnVfX2NvbnRhaW5lciAucGx5cl9fY29udHJvbC0tYmFjay5wbHlyX190YWItZm9jdXM6OmFmdGVyLCAucGx5cl9fbWVudV9fY29udGFpbmVyIC5wbHlyX19jb250cm9sLS1iYWNrOmhvdmVyOjphZnRlciB7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuLnBseXJfX21lbnVfX2NvbnRhaW5lciAucGx5cl9fY29udHJvbFtyb2xlPW1lbnVpdGVtcmFkaW9dIHtcbiAgcGFkZGluZy1sZWZ0OiAyNHB4O1xufVxuLnBseXJfX21lbnVfX2NvbnRhaW5lciAucGx5cl9fY29udHJvbFtyb2xlPW1lbnVpdGVtcmFkaW9dOjpiZWZvcmUsIC5wbHlyX19tZW51X19jb250YWluZXIgLnBseXJfX2NvbnRyb2xbcm9sZT1tZW51aXRlbXJhZGlvXTo6YWZ0ZXIge1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xufVxuLnBseXJfX21lbnVfX2NvbnRhaW5lciAucGx5cl9fY29udHJvbFtyb2xlPW1lbnVpdGVtcmFkaW9dOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4LXNocmluazogMDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBtYXJnaW4tcmlnaHQ6IDI0cHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHdpZHRoOiAxNnB4O1xufVxuLnBseXJfX21lbnVfX2NvbnRhaW5lciAucGx5cl9fY29udHJvbFtyb2xlPW1lbnVpdGVtcmFkaW9dOjphZnRlciB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlcjogMDtcbiAgaGVpZ2h0OiA2cHg7XG4gIGxlZnQ6IDEycHg7XG4gIG9wYWNpdHk6IDA7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2UsIG9wYWNpdHkgMC4zcyBlYXNlO1xuICB3aWR0aDogNnB4O1xufVxuLnBseXJfX21lbnVfX2NvbnRhaW5lciAucGx5cl9fY29udHJvbFtyb2xlPW1lbnVpdGVtcmFkaW9dW2FyaWEtY2hlY2tlZD10cnVlXTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbn1cbi5wbHlyX19tZW51X19jb250YWluZXIgLnBseXJfX2NvbnRyb2xbcm9sZT1tZW51aXRlbXJhZGlvXVthcmlhLWNoZWNrZWQ9dHJ1ZV06OmFmdGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDEpO1xufVxuLnBseXJfX21lbnVfX2NvbnRhaW5lciAucGx5cl9fY29udHJvbFtyb2xlPW1lbnVpdGVtcmFkaW9dLnBseXJfX3RhYi1mb2N1czo6YmVmb3JlLCAucGx5cl9fbWVudV9fY29udGFpbmVyIC5wbHlyX19jb250cm9sW3JvbGU9bWVudWl0ZW1yYWRpb106aG92ZXI6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMzUsIDQwLCA0NywgMC4xKTtcbn1cbi5wbHlyX19tZW51X19jb250YWluZXIgLnBseXJfX21lbnVfX3ZhbHVlIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogY2FsYygoMjRweCAtIDIpICogLTEpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLWxlZnQ6IGNhbGMoMjRweCAqIDMuNSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ucGx5ci0tZnVsbC11aSBpbnB1dFt0eXBlPXJhbmdlXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSAqL1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiBjYWxjKDE2cHggKiAyKTtcbiAgY29sb3I6ICM3OGZhYWU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IGNhbGMoKDNweCAqIDIpICsgMTZweCk7XG4gIG1hcmdpbjogMDtcbiAgbWluLXdpZHRoOiAwO1xuICBwYWRkaW5nOiAwO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3MgZWFzZTtcbiAgd2lkdGg6IDEwMCU7XG59XG4ucGx5ci0tZnVsbC11aSBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiBjYWxjKDRweCAvIDIpO1xuICBoZWlnaHQ6IDRweDtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjNzIGVhc2U7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIGN1cnJlbnRDb2xvciAwJSwgdHJhbnNwYXJlbnQgMCUpO1xufVxuLnBseXItLWZ1bGwtdWkgaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogIzQxOTQ2ODtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBib3gtc2hhZG93OiBub25lO1xuICBoZWlnaHQ6IDE2cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgd2lkdGg6IDE2cHg7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSAqL1xuICBtYXJnaW4tdG9wOiBjYWxjKCgxNnB4IC0gNHB4KSAvIDIgKiAtMSk7XG59XG4ucGx5ci0tZnVsbC11aSBpbnB1dFt0eXBlPXJhbmdlXTo6LW1vei1yYW5nZS10cmFjayB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGMoNHB4IC8gMik7XG4gIGhlaWdodDogNHB4O1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3MgZWFzZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4ucGx5ci0tZnVsbC11aSBpbnB1dFt0eXBlPXJhbmdlXTo6LW1vei1yYW5nZS10aHVtYiB7XG4gIGJhY2tncm91bmQ6ICM0MTk0Njg7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgaGVpZ2h0OiAxNnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIHdpZHRoOiAxNnB4O1xufVxuLnBseXItLWZ1bGwtdWkgaW5wdXRbdHlwZT1yYW5nZV06Oi1tb3otcmFuZ2UtcHJvZ3Jlc3Mge1xuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGMoNHB4IC8gMik7XG4gIGhlaWdodDogNHB4O1xufVxuLnBseXItLWZ1bGwtdWkgaW5wdXRbdHlwZT1yYW5nZV06Oi1tcy10cmFjayB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGMoNHB4IC8gMik7XG4gIGhlaWdodDogNHB4O1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3MgZWFzZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5wbHlyLS1mdWxsLXVpIGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtZmlsbC11cHBlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGMoNHB4IC8gMik7XG4gIGhlaWdodDogNHB4O1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3MgZWFzZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4ucGx5ci0tZnVsbC11aSBpbnB1dFt0eXBlPXJhbmdlXTo6LW1zLWZpbGwtbG93ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiBjYWxjKDRweCAvIDIpO1xuICBoZWlnaHQ6IDRweDtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjNzIGVhc2U7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG59XG4ucGx5ci0tZnVsbC11aSBpbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRodW1iIHtcbiAgYmFja2dyb3VuZDogIzQxOTQ2ODtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBib3gtc2hhZG93OiBub25lO1xuICBoZWlnaHQ6IDE2cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgd2lkdGg6IDE2cHg7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4ucGx5ci0tZnVsbC11aSBpbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRvb2x0aXAge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnBseXItLWZ1bGwtdWkgaW5wdXRbdHlwZT1yYW5nZV06Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuLnBseXItLWZ1bGwtdWkgaW5wdXRbdHlwZT1yYW5nZV06Oi1tb3otZm9jdXMtb3V0ZXIge1xuICBib3JkZXI6IDA7XG59XG4ucGx5ci0tZnVsbC11aSBpbnB1dFt0eXBlPXJhbmdlXS5wbHlyX190YWItZm9jdXM6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgb3V0bGluZS1jb2xvcjogI2ZmZmZmZjtcbiAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgb3V0bGluZS1zdHlsZTogZG90dGVkO1xuICBvdXRsaW5lLXdpZHRoOiAzcHg7XG59XG4ucGx5ci0tZnVsbC11aSBpbnB1dFt0eXBlPXJhbmdlXS5wbHlyX190YWItZm9jdXM6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICBvdXRsaW5lLWNvbG9yOiAjZmZmZmZmO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xuICBvdXRsaW5lLXN0eWxlOiBkb3R0ZWQ7XG4gIG91dGxpbmUtd2lkdGg6IDNweDtcbn1cbi5wbHlyLS1mdWxsLXVpIGlucHV0W3R5cGU9cmFuZ2VdLnBseXJfX3RhYi1mb2N1czo6LW1zLXRyYWNrIHtcbiAgb3V0bGluZS1jb2xvcjogI2ZmZmZmZjtcbiAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgb3V0bGluZS1zdHlsZTogZG90dGVkO1xuICBvdXRsaW5lLXdpZHRoOiAzcHg7XG59XG5cbi5wbHlyX19wb3N0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTYxNzE4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMTtcbn1cblxuLnBseXItLXN0b3BwZWQucGx5cl9fcG9zdGVyLWVuYWJsZWQgLnBseXJfX3Bvc3RlciB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5wbHlyLS15b3V0dWJlLnBseXItLXBhdXNlZC5wbHlyX19wb3N0ZXItZW5hYmxlZDpub3QoLnBseXItLXN0b3BwZWQpIC5wbHlyX19wb3N0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ucGx5cl9fdGltZSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnBseXJfX3RpbWUgKyAucGx5cl9fdGltZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCLigYRcIjtcbiAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcxOXB4KSB7XG4gIC5wbHlyX190aW1lICsgLnBseXJfX3RpbWUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnBseXJfX3Rvb2x0aXAge1xuICBiYWNrZ3JvdW5kOiAjNDY0NzQ4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJvdHRvbTogMTAwJTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGVmdDogNTAlO1xuICBsaW5lLWhlaWdodDogMS4zO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKDhweCAxMnB4ICogMik7XG4gIG9wYWNpdHk6IDA7XG4gIHBhZGRpbmc6IDhweCAxMnB4IGNhbGMoOHB4IDEycHggKiAxLjUpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAxMHB4KSBzY2FsZSgwLjgpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTAwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgMC4xcyBlYXNlLCBvcGFjaXR5IDAuMnMgMC4xcyBlYXNlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB6LWluZGV4OiAyO1xufVxuLnBseXJfX3Rvb2x0aXA6OmJlZm9yZSB7XG4gIGJvcmRlci1sZWZ0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiA4cHggc29saWQgIzQ2NDc0ODtcbiAgYm90dG9tOiBjYWxjKDhweCAqIC0xKTtcbiAgY29udGVudDogXCJcIjtcbiAgaGVpZ2h0OiAwO1xuICBsZWZ0OiA1MCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB3aWR0aDogMDtcbiAgei1pbmRleDogMjtcbn1cblxuLnBseXIgLnBseXJfX2NvbnRyb2w6aG92ZXIgLnBseXJfX3Rvb2x0aXAsXG4ucGx5ciAucGx5cl9fY29udHJvbC5wbHlyX190YWItZm9jdXMgLnBseXJfX3Rvb2x0aXAsXG4ucGx5cl9fdG9vbHRpcC0tdmlzaWJsZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApIHNjYWxlKDEpO1xufVxuXG4ucGx5ciAucGx5cl9fY29udHJvbDpob3ZlciAucGx5cl9fdG9vbHRpcCB7XG4gIHotaW5kZXg6IDM7XG59XG5cbi5wbHlyX19jb250cm9scyA+IC5wbHlyX19jb250cm9sOmZpcnN0LWNoaWxkIC5wbHlyX190b29sdGlwLFxuLnBseXJfX2NvbnRyb2xzID4gLnBseXJfX2NvbnRyb2w6Zmlyc3QtY2hpbGQgKyAucGx5cl9fY29udHJvbCAucGx5cl9fdG9vbHRpcCB7XG4gIGxlZnQ6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDEwcHgpIHNjYWxlKDAuOCk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcbn1cbi5wbHlyX19jb250cm9scyA+IC5wbHlyX19jb250cm9sOmZpcnN0LWNoaWxkIC5wbHlyX190b29sdGlwOjpiZWZvcmUsXG4ucGx5cl9fY29udHJvbHMgPiAucGx5cl9fY29udHJvbDpmaXJzdC1jaGlsZCArIC5wbHlyX19jb250cm9sIC5wbHlyX190b29sdGlwOjpiZWZvcmUge1xuICBsZWZ0OiBjYWxjKCgyNHB4IC8gMikgKyAyNHB4KTtcbn1cblxuLnBseXJfX2NvbnRyb2xzID4gLnBseXJfX2NvbnRyb2w6bGFzdC1jaGlsZCAucGx5cl9fdG9vbHRpcCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxMHB4KSBzY2FsZSgwLjgpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG59XG4ucGx5cl9fY29udHJvbHMgPiAucGx5cl9fY29udHJvbDpsYXN0LWNoaWxkIC5wbHlyX190b29sdGlwOjpiZWZvcmUge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogY2FsYygoMjRweCAvIDIpICsgMjRweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpO1xufVxuXG4ucGx5cl9fY29udHJvbHMgPiAucGx5cl9fY29udHJvbDpmaXJzdC1jaGlsZDpob3ZlciAucGx5cl9fdG9vbHRpcCwgLnBseXJfX2NvbnRyb2xzID4gLnBseXJfX2NvbnRyb2w6Zmlyc3QtY2hpbGQucGx5cl9fdGFiLWZvY3VzIC5wbHlyX190b29sdGlwLFxuLnBseXJfX2NvbnRyb2xzID4gLnBseXJfX2NvbnRyb2w6Zmlyc3QtY2hpbGQgLnBseXJfX3Rvb2x0aXAtLXZpc2libGUsXG4ucGx5cl9fY29udHJvbHMgPiAucGx5cl9fY29udHJvbDpmaXJzdC1jaGlsZCArIC5wbHlyX19jb250cm9sOmhvdmVyIC5wbHlyX190b29sdGlwLFxuLnBseXJfX2NvbnRyb2xzID4gLnBseXJfX2NvbnRyb2w6Zmlyc3QtY2hpbGQgKyAucGx5cl9fY29udHJvbC5wbHlyX190YWItZm9jdXMgLnBseXJfX3Rvb2x0aXAsXG4ucGx5cl9fY29udHJvbHMgPiAucGx5cl9fY29udHJvbDpmaXJzdC1jaGlsZCArIC5wbHlyX19jb250cm9sIC5wbHlyX190b29sdGlwLS12aXNpYmxlLFxuLnBseXJfX2NvbnRyb2xzID4gLnBseXJfX2NvbnRyb2w6bGFzdC1jaGlsZDpob3ZlciAucGx5cl9fdG9vbHRpcCxcbi5wbHlyX19jb250cm9scyA+IC5wbHlyX19jb250cm9sOmxhc3QtY2hpbGQucGx5cl9fdGFiLWZvY3VzIC5wbHlyX190b29sdGlwLFxuLnBseXJfX2NvbnRyb2xzID4gLnBseXJfX2NvbnRyb2w6bGFzdC1jaGlsZCAucGx5cl9fdG9vbHRpcC0tdmlzaWJsZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApIHNjYWxlKDEpO1xufVxuXG4ucGx5cl9fcHJvZ3Jlc3Mge1xuICBsZWZ0OiBjYWxjKDE2cHggKiAwLjUpO1xuICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5wbHlyX19wcm9ncmVzcyBpbnB1dFt0eXBlPXJhbmdlXSwgLnBseXJfX3Byb2dyZXNzX19idWZmZXIge1xuICBtYXJnaW4tbGVmdDogY2FsYygxNnB4ICogLTAuNSk7XG4gIG1hcmdpbi1yaWdodDogY2FsYygxNnB4ICogLTAuNSk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyAxNnB4KTtcbn1cbi5wbHlyX19wcm9ncmVzcyBpbnB1dFt0eXBlPXJhbmdlXSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbn1cbi5wbHlyX19wcm9ncmVzcyAucGx5cl9fdG9vbHRpcCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGVmdDogMDtcbn1cblxuLnBseXJfX3Byb2dyZXNzX19idWZmZXIge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgKi9cbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gIGhlaWdodDogNHB4O1xuICBsZWZ0OiAwO1xuICBtYXJnaW4tdG9wOiBjYWxjKCg0cHggLyAyKSAqIC0xKTtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbn1cbi5wbHlyX19wcm9ncmVzc19fYnVmZmVyOjotd2Via2l0LXByb2dyZXNzLWJhciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnBseXJfX3Byb2dyZXNzX19idWZmZXI6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICBtaW4td2lkdGg6IDRweDtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4ycyBlYXNlO1xufVxuLnBseXJfX3Byb2dyZXNzX19idWZmZXI6Oi1tb3otcHJvZ3Jlc3MtYmFyIHtcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgbWluLXdpZHRoOiA0cHg7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuMnMgZWFzZTtcbn1cbi5wbHlyX19wcm9ncmVzc19fYnVmZmVyOjotbXMtZmlsbCB7XG4gIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjJzIGVhc2U7XG59XG5cbi5wbHlyLS1sb2FkaW5nIC5wbHlyX19wcm9ncmVzc19fYnVmZmVyIHtcbiAgYW5pbWF0aW9uOiBwbHlyLXByb2dyZXNzIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KC00NWRlZywgcmdiYSgyMiwgMjMsIDI0LCAwLjI1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDIyLCAyMywgMjQsIDAuMjUpIDUwJSwgcmdiYSgyMiwgMjMsIDI0LCAwLjI1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGJhY2tncm91bmQtc2l6ZTogMjVweCAyNXB4O1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5wbHlyLS12aWRlby5wbHlyLS1sb2FkaW5nIC5wbHlyX19wcm9ncmVzc19fYnVmZmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTtcbn1cblxuLnBseXItLWF1ZGlvLnBseXItLWxvYWRpbmcgLnBseXJfX3Byb2dyZXNzX19idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpO1xufVxuXG4ucGx5cl9fdm9sdW1lIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgbWF4LXdpZHRoOiAxMTBweDtcbiAgbWluLXdpZHRoOiA4MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAyMCU7XG59XG4ucGx5cl9fdm9sdW1lIGlucHV0W3R5cGU9cmFuZ2VdIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMjRweCAvIDIpO1xuICBtYXJnaW4tcmlnaHQ6IGNhbGMoMjRweCAvIDIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG59XG5cbi5wbHlyLS1pcy1pb3MgLnBseXJfX3ZvbHVtZSB7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi5wbHlyLS1hdWRpbyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ucGx5ci0tYXVkaW8gLnBseXJfX2NvbnRyb2xzIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHBhZGRpbmc6IDI0cHg7XG59XG5cbi5wbHlyLS1hdWRpbyAucGx5cl9fY29udHJvbC5wbHlyX190YWItZm9jdXMsIC5wbHlyLS1hdWRpbyAucGx5cl9fY29udHJvbDpob3ZlciwgLnBseXItLWF1ZGlvIC5wbHlyX19jb250cm9sW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICM0MTk0Njg7XG59XG5cbi5wbHlyLS1mdWxsLXVpLnBseXItLWF1ZGlvIGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7XG59XG4ucGx5ci0tZnVsbC11aS5wbHlyLS1hdWRpbyBpbnB1dFt0eXBlPXJhbmdlXTo6LW1vei1yYW5nZS10cmFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7XG59XG4ucGx5ci0tZnVsbC11aS5wbHlyLS1hdWRpbyBpbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRyYWNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTtcbn1cbi5wbHlyLS1mdWxsLXVpLnBseXItLWF1ZGlvIGlucHV0W3R5cGU9cmFuZ2VdOmFjdGl2ZTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICBib3gtc2hhZG93OiBub25lLCAwIDAgMCAzcHggcmdiYSg2NSwgMTQ4LCAxMDQsIDAuOSk7XG59XG4ucGx5ci0tZnVsbC11aS5wbHlyLS1hdWRpbyBpbnB1dFt0eXBlPXJhbmdlXTphY3RpdmU6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICBib3gtc2hhZG93OiBub25lLCAwIDAgMCAzcHggcmdiYSg2NSwgMTQ4LCAxMDQsIDAuOSk7XG59XG4ucGx5ci0tZnVsbC11aS5wbHlyLS1hdWRpbyBpbnB1dFt0eXBlPXJhbmdlXTphY3RpdmU6Oi1tcy10aHVtYiB7XG4gIGJveC1zaGFkb3c6IG5vbmUsIDAgMCAwIDNweCByZ2JhKDY1LCAxNDgsIDEwNCwgMC45KTtcbn1cblxuLnBseXItLWF1ZGlvIC5wbHlyX19wcm9ncmVzc19fYnVmZmVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7XG59XG5cbi5wbHlyLS12aWRlbyB7XG4gIGJhY2tncm91bmQ6ICMxNjE3MTg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucGx5ci0tdmlkZW8ucGx5ci0tbWVudS1vcGVuIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi5wbHlyX192aWRlby13cmFwcGVyIHtcbiAgYmFja2dyb3VuZDogIzE2MTcxODtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IGF1dG87XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5wbHlyX192aWRlby1lbWJlZCxcbi5wbHlyX192aWRlby13cmFwcGVyLS1maXhlZC1yYXRpbyB7XG4gIGFzcGVjdC1yYXRpbzogMTYvOTtcbn1cbkBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogMTYvOSkge1xuICAucGx5cl9fdmlkZW8tZW1iZWQsXG4gIC5wbHlyX192aWRlby13cmFwcGVyLS1maXhlZC1yYXRpbyB7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG59XG5cbi5wbHlyX192aWRlby1lbWJlZCBpZnJhbWUsXG4ucGx5cl9fdmlkZW8td3JhcHBlci0tZml4ZWQtcmF0aW8gdmlkZW8ge1xuICBib3JkZXI6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ucGx5ci0tZnVsbC11aSAucGx5cl9fdmlkZW8tZW1iZWQgPiAucGx5cl9fdmlkZW8tZW1iZWRfX2NvbnRhaW5lciB7XG4gIHBhZGRpbmctYm90dG9tOiAyNDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzguMjgxMjUlKTtcbn1cblxuLnBseXItLXZpZGVvIC5wbHlyX19jb250cm9scyB7XG4gIGJhY2tncm91bmQ6ICM0MTk0Njg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xuICBib3R0b206IDA7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBsZWZ0OiAwO1xuICBwYWRkaW5nOiBjYWxjKDI0cHggLyAyKTtcbiAgcGFkZGluZy10b3A6IGNhbGMoMjRweCAqIDIpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMgZWFzZS1pbi1vdXQsIHRyYW5zZm9ybSAwLjRzIGVhc2UtaW4tb3V0O1xuICB6LWluZGV4OiAzO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5wbHlyLS12aWRlbyAucGx5cl9fY29udHJvbHMge1xuICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgcGFkZGluZy10b3A6IGNhbGMoMjRweCAqIDMuNSk7XG4gIH1cbn1cblxuLnBseXItLXZpZGVvLnBseXItLWhpZGUtY29udHJvbHMgLnBseXJfX2NvbnRyb2xzIHtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbn1cblxuLnBseXItLXZpZGVvIC5wbHlyX19jb250cm9sLnBseXJfX3RhYi1mb2N1cywgLnBseXItLXZpZGVvIC5wbHlyX19jb250cm9sOmhvdmVyLCAucGx5ci0tdmlkZW8gLnBseXJfX2NvbnRyb2xbYXJpYS1leHBhbmRlZD10cnVlXSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnBseXJfX2NvbnRyb2wtLW92ZXJsYWlkIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGxlZnQ6IDUwJTtcbiAgb3BhY2l0eTogMC45O1xuICBwYWRkaW5nOiBjYWxjKDI0cHggKiAxLjUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgdHJhbnNpdGlvbjogMC4zcztcbiAgei1pbmRleDogMjtcbn1cbi5wbHlyX19jb250cm9sLS1vdmVybGFpZCBzdmcge1xuICBsZWZ0OiAycHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5wbHlyX19jb250cm9sLS1vdmVybGFpZDpob3ZlciwgLnBseXJfX2NvbnRyb2wtLW92ZXJsYWlkOmZvY3VzIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLnBseXItLXBsYXlpbmcgLnBseXJfX2NvbnRyb2wtLW92ZXJsYWlkIHtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4ucGx5ci0tZnVsbC11aS5wbHlyLS12aWRlbyAucGx5cl9fY29udHJvbC0tb3ZlcmxhaWQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnBseXItLWZ1bGwtdWkucGx5ci0tdmlkZW8gaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q4ZDhkODtcbn1cbi5wbHlyLS1mdWxsLXVpLnBseXItLXZpZGVvIGlucHV0W3R5cGU9cmFuZ2VdOjotbW96LXJhbmdlLXRyYWNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q4ZDhkODtcbn1cbi5wbHlyLS1mdWxsLXVpLnBseXItLXZpZGVvIGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdHJhY2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDhkOGQ4O1xufVxuLnBseXItLWZ1bGwtdWkucGx5ci0tdmlkZW8gaW5wdXRbdHlwZT1yYW5nZV06YWN0aXZlOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gIGJveC1zaGFkb3c6IG5vbmUsIDAgMCAwIDNweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4ucGx5ci0tZnVsbC11aS5wbHlyLS12aWRlbyBpbnB1dFt0eXBlPXJhbmdlXTphY3RpdmU6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICBib3gtc2hhZG93OiBub25lLCAwIDAgMCAzcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLnBseXItLWZ1bGwtdWkucGx5ci0tdmlkZW8gaW5wdXRbdHlwZT1yYW5nZV06YWN0aXZlOjotbXMtdGh1bWIge1xuICBib3gtc2hhZG93OiBub25lLCAwIDAgMCAzcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuXG4ucGx5ci0tdmlkZW8gLnBseXJfX3Byb2dyZXNzX19idWZmZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTtcbn1cblxuLnBseXI6ZnVsbHNjcmVlbiB7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnBseXI6ZnVsbHNjcmVlbiB2aWRlbyB7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5wbHlyOmZ1bGxzY3JlZW4gLnBseXJfX2NvbnRyb2wgLmljb24tLWV4aXQtZnVsbHNjcmVlbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnBseXI6ZnVsbHNjcmVlbiAucGx5cl9fY29udHJvbCAuaWNvbi0tZXhpdC1mdWxsc2NyZWVuICsgc3ZnIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5wbHlyOmZ1bGxzY3JlZW4ucGx5ci0taGlkZS1jb250cm9scyB7XG4gIGN1cnNvcjogbm9uZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgwcHgpIHtcbiAgLnBseXI6ZnVsbHNjcmVlbiAucGx5cl9fY2FwdGlvbnMge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgfVxufVxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbi5wbHlyOi13ZWJraXQtZnVsbC1zY3JlZW4ge1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi5wbHlyOi13ZWJraXQtZnVsbC1zY3JlZW4gdmlkZW8ge1xuICBoZWlnaHQ6IDEwMCU7XG59XG4ucGx5cjotd2Via2l0LWZ1bGwtc2NyZWVuIC5wbHlyX19jb250cm9sIC5pY29uLS1leGl0LWZ1bGxzY3JlZW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5wbHlyOi13ZWJraXQtZnVsbC1zY3JlZW4gLnBseXJfX2NvbnRyb2wgLmljb24tLWV4aXQtZnVsbHNjcmVlbiArIHN2ZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucGx5cjotd2Via2l0LWZ1bGwtc2NyZWVuLnBseXItLWhpZGUtY29udHJvbHMge1xuICBjdXJzb3I6IG5vbmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KSB7XG4gIC5wbHlyOi13ZWJraXQtZnVsbC1zY3JlZW4gLnBseXJfX2NhcHRpb25zIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gIH1cbn1cblxuLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4ucGx5cjotbW96LWZ1bGwtc2NyZWVuIHtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4ucGx5cjotbW96LWZ1bGwtc2NyZWVuIHZpZGVvIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnBseXI6LW1vei1mdWxsLXNjcmVlbiAucGx5cl9fY29udHJvbCAuaWNvbi0tZXhpdC1mdWxsc2NyZWVuIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ucGx5cjotbW96LWZ1bGwtc2NyZWVuIC5wbHlyX19jb250cm9sIC5pY29uLS1leGl0LWZ1bGxzY3JlZW4gKyBzdmcge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnBseXI6LW1vei1mdWxsLXNjcmVlbi5wbHlyLS1oaWRlLWNvbnRyb2xzIHtcbiAgY3Vyc29yOiBub25lO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xuICAucGx5cjotbW96LWZ1bGwtc2NyZWVuIC5wbHlyX19jYXB0aW9ucyB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICB9XG59XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuLnBseXI6LW1zLWZ1bGxzY3JlZW4ge1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi5wbHlyOi1tcy1mdWxsc2NyZWVuIHZpZGVvIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnBseXI6LW1zLWZ1bGxzY3JlZW4gLnBseXJfX2NvbnRyb2wgLmljb24tLWV4aXQtZnVsbHNjcmVlbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnBseXI6LW1zLWZ1bGxzY3JlZW4gLnBseXJfX2NvbnRyb2wgLmljb24tLWV4aXQtZnVsbHNjcmVlbiArIHN2ZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucGx5cjotbXMtZnVsbHNjcmVlbi5wbHlyLS1oaWRlLWNvbnRyb2xzIHtcbiAgY3Vyc29yOiBub25lO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xuICAucGx5cjotbXMtZnVsbHNjcmVlbiAucGx5cl9fY2FwdGlvbnMge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgfVxufVxuXG4ucGx5ci0tZnVsbHNjcmVlbi1mYWxsYmFjayB7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBib3R0b206IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDEwMDAwMDAwO1xufVxuLnBseXItLWZ1bGxzY3JlZW4tZmFsbGJhY2sgdmlkZW8ge1xuICBoZWlnaHQ6IDEwMCU7XG59XG4ucGx5ci0tZnVsbHNjcmVlbi1mYWxsYmFjayAucGx5cl9fY29udHJvbCAuaWNvbi0tZXhpdC1mdWxsc2NyZWVuIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ucGx5ci0tZnVsbHNjcmVlbi1mYWxsYmFjayAucGx5cl9fY29udHJvbCAuaWNvbi0tZXhpdC1mdWxsc2NyZWVuICsgc3ZnIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5wbHlyLS1mdWxsc2NyZWVuLWZhbGxiYWNrLnBseXItLWhpZGUtY29udHJvbHMge1xuICBjdXJzb3I6IG5vbmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KSB7XG4gIC5wbHlyLS1mdWxsc2NyZWVuLWZhbGxiYWNrIC5wbHlyX19jYXB0aW9ucyB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICB9XG59XG5cbi5wbHlyX19hZHMge1xuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICBib3R0b206IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbGVmdDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAtMTtcbn1cbi5wbHlyX19hZHMgPiBkaXYsXG4ucGx5cl9fYWRzID4gZGl2IGlmcmFtZSB7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbn1cbi5wbHlyX19hZHM6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogaHNsKDIxNiwgMTUlLCAxNiUpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJvdHRvbTogMjRweDtcbiAgY29sb3I6ICNmZmY7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS1iYWRnZS10ZXh0KTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBwYWRkaW5nOiAycHggNnB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMjRweDtcbiAgei1pbmRleDogMztcbn1cbi5wbHlyX19hZHM6ZW1wdHk6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnBseXJfX2N1ZXMge1xuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDRweDtcbiAgbGVmdDogMDtcbiAgbWFyZ2luOiAtMnB4IDAgMDtcbiAgb3BhY2l0eTogMC44O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB3aWR0aDogM3B4O1xuICB6LWluZGV4OiAzO1xufVxuXG4ucGx5cl9fcHJldmlldy10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NjQ3NDg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm90dG9tOiAxMDAlO1xuICBib3gtc2hhZG93OiBub25lO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKDhweCAxMnB4ICogMik7XG4gIG9wYWNpdHk6IDA7XG4gIHBhZGRpbmc6IDJweDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTBweCkgc2NhbGUoMC44KTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDEwMCU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIDAuMXMgZWFzZSwgb3BhY2l0eSAwLjJzIDAuMXMgZWFzZTtcbiAgei1pbmRleDogMjtcbn1cbi5wbHlyX19wcmV2aWV3LXRodW1iLS1pcy1zaG93biB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApIHNjYWxlKDEpO1xufVxuLnBseXJfX3ByZXZpZXctdGh1bWI6OmJlZm9yZSB7XG4gIGJvcmRlci1sZWZ0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiA4cHggc29saWQgIzQ2NDc0ODtcbiAgYm90dG9tOiBjYWxjKDhweCAqIC0xKTtcbiAgY29udGVudDogXCJcIjtcbiAgaGVpZ2h0OiAwO1xuICBsZWZ0OiA1MCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB3aWR0aDogMDtcbiAgei1pbmRleDogMjtcbn1cbi5wbHlyX19wcmV2aWV3LXRodW1iX19pbWFnZS1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kOiBoc2woMjE2LCAxNSUsIDc5JSk7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGMoMnB4IC0gMXB4KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAwO1xufVxuLnBseXJfX3ByZXZpZXctdGh1bWJfX2ltYWdlLWNvbnRhaW5lciBpbWcge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnBseXJfX3ByZXZpZXctdGh1bWJfX3RpbWUtY29udGFpbmVyIHtcbiAgYm90dG9tOiA2cHg7XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHotaW5kZXg6IDM7XG59XG4ucGx5cl9fcHJldmlldy10aHVtYl9fdGltZS1jb250YWluZXIgc3BhbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NSk7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGMoMnB4IC0gMXB4KTtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgcGFkZGluZzogM3B4IDZweDtcbn1cblxuLnBseXJfX3ByZXZpZXctc2NydWJiaW5nIHtcbiAgYm90dG9tOiAwO1xuICBmaWx0ZXI6IGJsdXIoMXB4KTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwO1xuICBtYXJnaW46IGF1dG87XG4gIG9wYWNpdHk6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMTtcbn1cbi5wbHlyX19wcmV2aWV3LXNjcnViYmluZy0taXMtc2hvd24ge1xuICBvcGFjaXR5OiAxO1xufVxuLnBseXJfX3ByZXZpZXctc2NydWJiaW5nIGltZyB7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5wbHlyLS1uby10cmFuc2l0aW9uIHtcbiAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4ucGx5cl9fc3Itb25seSB7XG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMXB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHggIWltcG9ydGFudDtcbn1cblxuLnBseXIgW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNDSVZJQy1DT09LSUUtQ09OVFJPTFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBIaWRlIFNWRyB0aGF0IGRvZXMgbm90IHNlZW0gdG8gYmUgdXNlZCBhbnl3YXkgYnV0IHdvdWxkIGNvdmVyIG90aGVyXG4gKiAgICAgRmxvYXQgR3JpZCBlbGVtZW50cy4gYG92ZXJmbG93OiBoaWRkZW5gIHdvdWxkIG5vdCB3b3JrIHByb3Blcmx5IHdpdGggdGhlXG4gKiAgICAgRmxvYXQgR3JpZOKAmXMgY29sdW1uIHNpemluZy5cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5LCBzZWxlY3Rvci1tYXgtaWQsIGl0Y3NzL25vLWF0LWltcG9ydGFudCAqL1xuLmpzLWVuYWJsZS0zcmQtcGFydHktZmxvYXQtZ3JpZCAjY2NjLWljb24ge1xuICAtLWZsb2F0LWdyaWQtYXJlYTogYm90dG9tLXJpZ2h0O1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBvcmRlcjogMTtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cbi5qcy1lbmFibGUtM3JkLXBhcnR5LWZsb2F0LWdyaWQgI2NjYy1pY29uID4gKiB7XG4gIC0tZmxvYXQtZ3JpZC1hcmVhOiBmYWxzZTtcbn1cbi5qcy1lbmFibGUtM3JkLXBhcnR5LWZsb2F0LWdyaWQgI2NjYy1pY29uID4gc3ZnIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgaXRjc3Mvbm8tYXQtaW1wb3J0YW50ICovXG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG59XG5cbi8qIHN0eWxlbGludC1lbmFibGUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5LCBzZWxlY3Rvci1tYXgtaWQsIGl0Y3NzL25vLWF0LWltcG9ydGFudCAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI01FUkNVUlktQ0hBVC1CT1RcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gTW92ZSB0byB0aGUgZmlyc3QgRmxvYXQgR3JpZCBhcmVhIGl0ZW1zIHBvc2l0aW9uLlxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHksIHNlbGVjdG9yLW1heC1pZCwgaXRjc3Mvbm8tYXQtaW1wb3J0YW50ICovXG4uanMtZW5hYmxlLTNyZC1wYXJ0eS1mbG9hdC1ncmlkICNtZXJjdXJ5LXdpZGdldCB7XG4gIC0tZmxvYXQtZ3JpZC1hcmVhOiBib3R0b20tcmlnaHQ7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGRpc3BsYXk6IGNvbnRlbnRzO1xufVxuLmpzLWVuYWJsZS0zcmQtcGFydHktZmxvYXQtZ3JpZCAjbWVyY3VyeS13aWRnZXQgPiAqIHtcbiAgLS1mbG9hdC1ncmlkLWFyZWE6IGZhbHNlO1xufVxuLmpzLWVuYWJsZS0zcmQtcGFydHktZmxvYXQtZ3JpZCAjbWVyY3VyeS13aWRnZXQgLnRlYXNlcixcbi5qcy1lbmFibGUtM3JkLXBhcnR5LWZsb2F0LWdyaWQgI21lcmN1cnktd2lkZ2V0IC50b2dnbGUtYnV0dG9uIHtcbiAgb3JkZXI6IC0xOyAvKiBbMV0gKi9cbn1cbi5qcy1lbmFibGUtM3JkLXBhcnR5LWZsb2F0LWdyaWQgI21lcmN1cnktd2lkZ2V0IC50ZWFzZXIsXG4uanMtZW5hYmxlLTNyZC1wYXJ0eS1mbG9hdC1ncmlkICNtZXJjdXJ5LXdpZGdldCAub3Blbi10b2dnbGUge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSwgc2VsZWN0b3ItbWF4LWlkLCBpdGNzcy9uby1hdC1pbXBvcnRhbnQgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJQ09OU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBJbiBjYXNlIHRoZSBpY29uIGlzIGFuIGA8YT5gIGVsZW1lbnQsIHRoaXMgZ2l2ZXMgdXMgYW4gZWFzeSB3YXkgb2ZcbiAqICAgICBlbGltaW5hdGluZyBhbiB1bmRlcmxpbmUgYXBwZWFyaW5nIGluIElFMTEuIEluIGNhc2UgeW91IGFjdHVhbGx5IHdhbnRcbiAqICAgICBhbnkgdGV4dC1kZWNvcmF0aW9uLCB5b3UgY2FuIG92ZXJyaWRlIHRoZSBgJGljb24tdGV4dC1kZWNvcmF0aW9uYFxuICogICAgIHZhcmlhYmxlLlxuICovXG4uYy1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJicm9uc29uLXNrb2RhXCIgIWltcG9ydGFudDsgLyogWzFdICovXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IC8qIFsxXSAqL1xuICBjb2xvcjogY3VycmVudENvbG9yO1xufVxuLmMtaWNvbjpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG4uYy1pY29uOjpiZWZvcmUge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgY29udGVudDogdmFyKC0tYnJvbi1pY29uKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIGZhbGxiYWNrLWljb25zLlxuICogVXNlIGtleSBhcyBuYW1lIGFuZCB2YWx1ZSBhcyBpY29uIGNvbnRlbnQuXG4gKi9cbi8qKlxuICogR2VuZXJhdGUgaWNvbiBkZWZpbml0aW9ucyBmb3IgZGVmYXVsdCBhbmQgb3B0aW9uYWwgY29tcGxleGl0aWVzLlxuICovXG4uYy1pY29uLS1cXFt3cml0ZVxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjIxOVwiO1xufVxuXG4uYy1pY29uLS1cXFt3aW5kc2NyZWVuX3dpcGVyXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMjE4XCI7XG59XG5cbi5jLWljb24tLVxcW3dpbmRvd1xcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjIxN1wiO1xufVxuXG4uYy1pY29uLS1cXFt3aWZpLW5vX3NpZ25hbFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjIxNlwiO1xufVxuXG4uYy1pY29uLS1cXFt3aWZpLW1lZGl1bVxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjIxNVwiO1xufVxuXG4uYy1pY29uLS1cXFt3aWZpLWxvd1xcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjIxNFwiO1xufVxuXG4uYy1pY29uLS1cXFt3aWZpLWhpZ2hcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYyMTNcIjtcbn1cblxuLmMtaWNvbi0tXFxbd2lmaS1kaXNhYmxlZFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjIxMlwiO1xufVxuXG4uYy1pY29uLS1cXFt3ZWF0aGVyLXJhaW55XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMjExXCI7XG59XG5cbi5jLWljb24tLVxcW3dhcm5pbmdcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXdhcm5pbmdcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYyMTBcIjtcbn1cblxuLmMtaWNvbi0tXFxbd2FsbGV0XFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1mcy1wYXltZW50XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMjBmXCI7XG59XG5cbi5jLWljb24tLVxcW3VzZXJcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXVzZXJcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYyMGVcIjtcbn1cblxuLmMtaWNvbi0tXFxbdXBsb2FkXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy11cGxvYWRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYyMGRcIjtcbn1cblxuLmMtaWNvbi0tXFxbdXBsb2FkLWNsb3VkXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1zYXZlLWNsb3VkXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMjBjXCI7XG59XG5cbi5jLWljb24tLVxcW3VwbG9hZC1jaXJjbGVcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYyMGJcIjtcbn1cblxuLmMtaWNvbi0tXFxbdHlyZXNcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYyMGFcIjtcbn1cblxuLmMtaWNvbi0tXFxbdHlyZV90cmFja3NcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYyMDlcIjtcbn1cblxuLmMtaWNvbi0tXFxbdHJhc2hjYW5cXF0sIC5jLWljb24tLVxcW3NlbWFudGljLWRlbGV0ZVxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjIwOFwiO1xufVxuXG4uYy1pY29uLS1cXFt0cmFuc21pc3Npb24tbWFudWFsXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy10cmFuc21pc3Npb24tbWFudWFsXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMjA3XCI7XG59XG5cbi5jLWljb24tLVxcW3RyYW5zbWlzc2lvbi1hdXRvbWF0aWNcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXRyYW5zbWlzc2lvbi1hdXRvbWF0aWNcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYyMDZcIjtcbn1cblxuLmMtaWNvbi0tXFxbdGlyZS1zbm93LWNoYWluc1xcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtc25vdy1jaGFpbnNcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYyMDVcIjtcbn1cblxuLmMtaWNvbi0tXFxbdGlja2V0XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMjA0XCI7XG59XG5cbi5jLWljb24tLVxcW3RodW1iLXVwXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1saWtlXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMjAzXCI7XG59XG5cbi5jLWljb24tLVxcW3RodW1iLWRvd25cXF0sIC5jLWljb24tLVxcW3NlbWFudGljLWRpc2xpa2VcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYyMDJcIjtcbn1cblxuLmMtaWNvbi0tXFxbdGVjaG5pY2FsX2luZm9cXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYyMDFcIjtcbn1cblxuLmMtaWNvbi0tXFxbdGFzay1zY2hlZHVsZWRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYyMDBcIjtcbn1cblxuLmMtaWNvbi0tXFxbdGFzay1ub25lXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWZmXCI7XG59XG5cbi5jLWljb24tLVxcW3Rhc2stZG9uZVxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFmZVwiO1xufVxuXG4uYy1pY29uLS1cXFtzdWl0Y2FzZVxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtYnJpZWZjYXNlXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWZkXCI7XG59XG5cbi5jLWljb24tLVxcW3N0b3B3YXRjaFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFmY1wiO1xufVxuXG4uYy1pY29uLS1cXFtzdGVlcmluZ193aGVlbFxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtc3RlZXJpbmctd2hlZWxcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxZmJcIjtcbn1cblxuLmMtaWNvbi0tXFxbc3RhdHNcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxZmFcIjtcbn1cblxuLmMtaWNvbi0tXFxbc3Rhci1oYWxmXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1zdGFyLWhhbGZcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxZjlcIjtcbn1cblxuLmMtaWNvbi0tXFxbc3Rhci1maWxsZWRcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXN0YXItZmlsbGVkXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWY4XCI7XG59XG5cbi5jLWljb24tLVxcW3NwYXJrLXBsdWdcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXNwYXJrLXBsdWdcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxZjdcIjtcbn1cblxuLmMtaWNvbi0tXFxbc291bmR3YXZlXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWY2XCI7XG59XG5cbi5jLWljb24tLVxcW3NvcnQtdXBcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXNvcnQtYXNjXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWY1XCI7XG59XG5cbi5jLWljb24tLVxcW3NvcnQtZG93blxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtc29ydC1kZXNjXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWY0XCI7XG59XG5cbi5jLWljb24tLVxcW3NvY2lhbC15b3V0dWJlXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1zb2NpYWwteW91dHViZVxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFmM1wiO1xufVxuXG4uYy1pY29uLS1cXFtzb2NpYWwteGluZ1xcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtc29jaWFsLXhpbmdcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxZjJcIjtcbn1cblxuLmMtaWNvbi0tXFxbc29jaWFsLXZpbWVvXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1zb2NpYWwtdmltZW9cXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxZjFcIjtcbn1cblxuLmMtaWNvbi0tXFxbc29jaWFsLXR3aXR0ZXJcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXNvY2lhbC10d2l0dGVyXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWYwXCI7XG59XG5cbi5jLWljb24tLVxcW3NvY2lhbC1yc3NcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXNvY2lhbC1yc3NcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxZWZcIjtcbn1cblxuLmMtaWNvbi0tXFxbc29jaWFsLXBpbnRlcmVzdFxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtc29jaWFsLXBpbnRlcmVzdFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFlZVwiO1xufVxuXG4uYy1pY29uLS1cXFtzb2NpYWwtbGlua2VkaW5cXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXNvY2lhbC1saW5rZWRpblxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFlZFwiO1xufVxuXG4uYy1pY29uLS1cXFtzb2NpYWwtaW5zdGFncmFtXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1zb2NpYWwtaW5zdGFncmFtXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWVjXCI7XG59XG5cbi5jLWljb24tLVxcW3NvY2lhbC1mYWNlYm9va1xcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtc29jaWFsLWZhY2Vib29rXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWViXCI7XG59XG5cbi5jLWljb24tLVxcW3Nub3dcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXRpcmVzLXdpbnRlclxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFlYVwiO1xufVxuXG4uYy1pY29uLS1cXFtzbGFzaC1jaXJjbGVcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxZTlcIjtcbn1cblxuLmMtaWNvbi0tXFxbc2lnbmFsXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWU4XCI7XG59XG5cbi5jLWljb24tLVxcW3NodWZmbGVcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXN3aXRjaFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFlN1wiO1xufVxuXG4uYy1pY29uLS1cXFtzaG93XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWU2XCI7XG59XG5cbi5jLWljb24tLVxcW3Nob3BwaW5nX2JhZ1xcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFlNVwiO1xufVxuXG4uYy1pY29uLS1cXFtzaGllbGRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxZTRcIjtcbn1cblxuLmMtaWNvbi0tXFxbc2hhcmVcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXNoYXJlXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWUzXCI7XG59XG5cbi5jLWljb24tLVxcW3NoYXJlLWZvbGRlclxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFlMlwiO1xufVxuXG4uYy1pY29uLS1cXFtzaGFwZXNcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxZTFcIjtcbn1cblxuLmMtaWNvbi0tXFxbc2hhcGUtdHJpYW5nbGVcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxZTBcIjtcbn1cblxuLmMtaWNvbi0tXFxbc2hhcGUtc3RhclxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtc3Rhci1vdXRsaW5lXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWRmXCI7XG59XG5cbi5jLWljb24tLVxcW3NoYXBlLXNxdWFyZVxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFkZVwiO1xufVxuXG4uYy1pY29uLS1cXFtzaGFwZS1yaG9tYnVzXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWRkXCI7XG59XG5cbi5jLWljb24tLVxcW3NoYXBlLXJlY3RhbmdsZV92ZXJ0aWNhbFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFkY1wiO1xufVxuXG4uYy1pY29uLS1cXFtzaGFwZS1yZWN0YW5nbGVfcm91bmRlZFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFkYlwiO1xufVxuXG4uYy1pY29uLS1cXFtzaGFwZS1yZWN0YW5nbGVfaG9yaXpvbnRhbFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFkYVwiO1xufVxuXG4uYy1pY29uLS1cXFtzaGFwZS1jaXJjbGVcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxZDlcIjtcbn1cblxuLmMtaWNvbi0tXFxbc2V0dGluZ3NcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXNldHRpbmdzXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWQ4XCI7XG59XG5cbi5jLWljb24tLVxcW3NlbmRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxZDdcIjtcbn1cblxuLmMtaWNvbi0tXFxbc2VsZWN0XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWQ2XCI7XG59XG5cbi5jLWljb24tLVxcW3NlbGVjdF9hbGxcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxZDVcIjtcbn1cblxuLmMtaWNvbi0tXFxbc2VhcmNoXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1zZWFyY2hcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxZDRcIjtcbn1cblxuLmMtaWNvbi0tXFxbc2VhcmNoLXBsdXNcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXpvb20taW5cXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxZDNcIjtcbn1cblxuLmMtaWNvbi0tXFxbc2VhcmNoLW1pbnVzXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy16b29tLW91dFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFkMlwiO1xufVxuXG4uYy1pY29uLS1cXFtzYXZlLWxvY2FsXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1zYXZlLWxvY2FsXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWQxXCI7XG59XG5cbi5jLWljb24tLVxcW3JvYWRfYmxvY2tcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxZDBcIjtcbn1cblxuLmMtaWNvbi0tXFxbcmV2ZXJ0XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWNmXCI7XG59XG5cbi5jLWljb24tLVxcW3JlbG9hZFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFjZVwiO1xufVxuXG4uYy1pY29uLS1cXFtyZWZyZXNoXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1yZWxvYWRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxY2RcIjtcbn1cblxuLmMtaWNvbi0tXFxbcmFkYXJcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxY2NcIjtcbn1cblxuLmMtaWNvbi0tXFxbcXVlc3Rpb24tY2lyY2xlXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1mYXFcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxY2JcIjtcbn1cblxuLmMtaWNvbi0tXFxbcXVhbGl0eVxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtcXVhbGl0eVxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFjYVwiO1xufVxuXG4uYy1pY29uLS1cXFtxdWFsaXR5LW1lZGFsXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1ndWFyYW50ZWVcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxYzlcIjtcbn1cblxuLmMtaWNvbi0tXFxbcXJfY29kZVxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFjOFwiO1xufVxuXG4uYy1pY29uLS1cXFtwdW1wXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1mdWVsXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWM3XCI7XG59XG5cbi5jLWljb24tLVxcW3ByaW50ZXJcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXByaW50XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWM2XCI7XG59XG5cbi5jLWljb24tLVxcW3ByaWNlX3RhZ1xcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtb2ZmZXJzXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWM1XCI7XG59XG5cbi5jLWljb24tLVxcW3ByZW1pdW0tc1xcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtcHJlbWl1bS1zXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWM0XCI7XG59XG5cbi5jLWljb24tLVxcW3ByZW1pdW0tbVxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtcHJlbWl1bS1tXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWMzXCI7XG59XG5cbi5jLWljb24tLVxcW3ByZW1pdW0tbFxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtcHJlbWl1bS1sXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWMyXCI7XG59XG5cbi5jLWljb24tLVxcW3BsdXNcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXBsdXNcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxYzFcIjtcbn1cblxuLmMtaWNvbi0tXFxbcGx1cy1jaXJjbGVcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxYzBcIjtcbn1cblxuLmMtaWNvbi0tXFxbcGx1Z1xcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtZWxlY3RyaWNcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxYmZcIjtcbn1cblxuLmMtaWNvbi0tXFxbcGxhbmVcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXBsYW5lXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWJlXCI7XG59XG5cbi5jLWljb24tLVxcW3BpZ2d5YmFua1xcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtYmVuZWZpdC1maW5hbmNlXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWJkXCI7XG59XG5cbi5jLWljb24tLVxcW3BpY3R1cmVcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxYmNcIjtcbn1cblxuLmMtaWNvbi0tXFxbcGhvbmVcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXBob25lXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWJiXCI7XG59XG5cbi5jLWljb24tLVxcW3Bhc3RlXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWJhXCI7XG59XG5cbi5jLWljb24tLVxcW3BhcmFncmFwaFxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtcGFyYWdyYXBoXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWI5XCI7XG59XG5cbi5jLWljb24tLVxcW25ld3NwYXBlclxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtbmV3c1xcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtYnJvY2h1cmVcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxYjhcIjtcbn1cblxuLmMtaWNvbi0tXFxbbmV3c1xcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFiN1wiO1xufVxuXG4uYy1pY29uLS1cXFtuYXR1cmFsLWdhc1xcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtZnVlbC1uYXR1cmFsLWdhc1xcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFiNlwiO1xufVxuXG4uYy1pY29uLS1cXFttdXRlXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWI1XCI7XG59XG5cbi5jLWljb24tLVxcW211c2ljYWxfbm90ZVxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFiNFwiO1xufVxuXG4uYy1pY29uLS1cXFttb3JlLXZlcnRpY2FsXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWIzXCI7XG59XG5cbi5jLWljb24tLVxcW21vcmUtaG9yaXpvbnRhbFxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtbW9yZVxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFiMlwiO1xufVxuXG4uYy1pY29uLS1cXFttaW51c1xcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtbWludXNcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxYjFcIjtcbn1cblxuLmMtaWNvbi0tXFxbbWludXMtY2lyY2xlXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWIwXCI7XG59XG5cbi5jLWljb24tLVxcW21pY3JvcGhvbmVcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxYWZcIjtcbn1cblxuLmMtaWNvbi0tXFxbbWVzc2FnZVxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtbWFpbFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFhZVwiO1xufVxuXG4uYy1pY29uLS1cXFttZW51XFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1tZW51XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWFkXCI7XG59XG5cbi5jLWljb24tLVxcW21lbnUtd2FmZmxlXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1ncmlkXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWFjXCI7XG59XG5cbi5jLWljb24tLVxcW21hcC1waW5cXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxYWJcIjtcbn1cblxuLmMtaWNvbi0tXFxbbWFwLW1hcmtlclxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtbG9jYXRpb25cXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxYWFcIjtcbn1cblxuLmMtaWNvbi0tXFxbbWFwLW1hcFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFhOVwiO1xufVxuXG4uYy1pY29uLS1cXFttYXAtbG9jYXRpb25cXF0sIC5jLWljb24tLVxcW3NlbWFudGljLW5hdmlnYXRpb25cXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxYThcIjtcbn1cblxuLmMtaWNvbi0tXFxbbWFwLWZsYWdcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxYTdcIjtcbn1cblxuLmMtaWNvbi0tXFxbbWFwLWNvbXBhc3NcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxYTZcIjtcbn1cblxuLmMtaWNvbi0tXFxbbWFwLWNlbnRlclxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtbG9jYXRvclxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFhNVwiO1xufVxuXG4uYy1pY29uLS1cXFttYW51YWxcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxYTRcIjtcbn1cblxuLmMtaWNvbi0tXFxbbWFpbnRlbmFuY2VcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXNlcnZpY2VcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxYTNcIjtcbn1cblxuLmMtaWNvbi0tXFxbbG9nb3V0XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMWEyXCI7XG59XG5cbi5jLWljb24tLVxcW2xvZ2luXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1sb2dpblxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjFhMVwiO1xufVxuXG4uYy1pY29uLS1cXFtsb2NrZWRfc3RlZXJpbmdfd2hlZWxcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxYTBcIjtcbn1cblxuLmMtaWNvbi0tXFxbbG9jay1vcGVuZWRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxOWZcIjtcbn1cblxuLmMtaWNvbi0tXFxbbG9jay1jbG9zZWRcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLWxvY2tcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxOWVcIjtcbn1cblxuLmMtaWNvbi0tXFxbbGlzdFxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtbGlzdFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE5ZFwiO1xufVxuXG4uYy1pY29uLS1cXFtsaWdodHNcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxOWNcIjtcbn1cblxuLmMtaWNvbi0tXFxbaW5mb3JtYXRpb24tY2lyY2xlXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1pbmZvXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTliXCI7XG59XG5cbi5jLWljb24tLVxcW2luZm9ybWF0aW9uLWNpcmNsZS1maWxsZWRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxOWFcIjtcbn1cblxuLmMtaWNvbi0tXFxbaW5ib3hcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxOTlcIjtcbn1cblxuLmMtaWNvbi0tXFxbaW1wb3J0XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTk4XCI7XG59XG5cbi5jLWljb24tLVxcW2lkX2NhcmRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxOTdcIjtcbn1cblxuLmMtaWNvbi0tXFxbaHlicmlkXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1oeWJyaWRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxOTZcIjtcbn1cblxuLmMtaWNvbi0tXFxbaG9tZVxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE5NVwiO1xufVxuXG4uYy1pY29uLS1cXFtoaXN0b3J5XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTk0XCI7XG59XG5cbi5jLWljb24tLVxcW2hpZGVcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxOTNcIjtcbn1cblxuLmMtaWNvbi0tXFxbaGVhcnRcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLWZhdm9yaXRlXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTkyXCI7XG59XG5cbi5jLWljb24tLVxcW2hlYXJ0LWZpbGxlZFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE5MVwiO1xufVxuXG4uYy1pY29uLS1cXFtoZWFsdGhfc2NhblxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE5MFwiO1xufVxuXG4uYy1pY29uLS1cXFtoYW5kLWtleVxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtY2FyLXJldHVyblxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE4ZlwiO1xufVxuXG4uYy1pY29uLS1cXFtoYW5kLWNhclxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtY2FyLWhhbmRvdmVyXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMThlXCI7XG59XG5cbi5jLWljb24tLVxcW2dyb3VwXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMThkXCI7XG59XG5cbi5jLWljb24tLVxcW2dsb2JlXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMThjXCI7XG59XG5cbi5jLWljb24tLVxcW2dlYXItb2lsXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1nZWFyLW9pbFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE4YlwiO1xufVxuXG4uYy1pY29uLS1cXFtnYXVnZVxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtcGVyZm9ybWFuY2VcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxOGFcIjtcbn1cblxuLmMtaWNvbi0tXFxbZnJvbnQtYXhsZVxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtZnJvbnQtd2hlZWwtZHJpdmVcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxODlcIjtcbn1cblxuLmMtaWNvbi0tXFxbZm91ci13aGVlbC1kcml2ZVxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtZm91ci13aGVlbC1kcml2ZVxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE4OFwiO1xufVxuXG4uYy1pY29uLS1cXFtmb2xkZXJcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxODdcIjtcbn1cblxuLmMtaWNvbi0tXFxbZmlyc3RfYWlkXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTg2XCI7XG59XG5cbi5jLWljb24tLVxcW2Zpbmdlcl9wcmludFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE4NVwiO1xufVxuXG4uYy1pY29uLS1cXFtmaWx0ZXJzXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTg0XCI7XG59XG5cbi5jLWljb24tLVxcW2ZpbHRlclxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtZmlsdGVyXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTgzXCI7XG59XG5cbi5jLWljb24tLVxcW2ZpbGVcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLWZpbGVcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxODJcIjtcbn1cblxuLmMtaWNvbi0tXFxbZmlsZS1uZXdcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxODFcIjtcbn1cblxuLmMtaWNvbi0tXFxbZmlsZS1taXNzaW5nXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTgwXCI7XG59XG5cbi5jLWljb24tLVxcW2ZlZWRiYWNrXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1mZWVkYmFja1xcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE3ZlwiO1xufVxuXG4uYy1pY29uLS1cXFtmYW5cXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxN2VcIjtcbn1cblxuLmMtaWNvbi0tXFxbZXh0ZXJuYWxfbGlua1xcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE3ZFwiO1xufVxuXG4uYy1pY29uLS1cXFtleHBvcnRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxN2NcIjtcbn1cblxuLmMtaWNvbi0tXFxbZXhpdC1mdWxsc2NyZWVuXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1leGl0LWZ1bGxzY3JlZW5cXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxN2JcIjtcbn1cblxuLmMtaWNvbi0tXFxbZXhjbGFtYXRpb24tY2lyY2xlXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1lcnJvclxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE3YVwiO1xufVxuXG4uYy1pY29uLS1cXFtlcXVhbHNpZ25cXF0sIC5jLWljb24tLVxcW3NlbWFudGljLWVxdWFsc2lnblxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE3OVwiO1xufVxuXG4uYy1pY29uLS1cXFtlbnRlci1mdWxsc2NyZWVuXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1lbnRlci1mdWxsc2NyZWVuXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTc4XCI7XG59XG5cbi5jLWljb24tLVxcW2VuZ2luZVxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtZW5naW5lXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTc3XCI7XG59XG5cbi5jLWljb24tLVxcW2VuZ2luZS1vaWxcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLWVuZ2luZS1vaWxcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxNzZcIjtcbn1cblxuLmMtaWNvbi0tXFxbZWxlY3RyaWNfY2hhcmdlclxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE3NVwiO1xufVxuXG4uYy1pY29uLS1cXFtlZGl0XFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1lZGl0XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTc0XCI7XG59XG5cbi5jLWljb24tLVxcW2Ryb3BcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXBldHJvbFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE3M1wiO1xufVxuXG4uYy1pY29uLS1cXFtkcm9wLWZpbGxlZFxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtZGllc2VsXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTcyXCI7XG59XG5cbi5jLWljb24tLVxcW2Rvd25sb2FkXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1kb3dubG9hZFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE3MVwiO1xufVxuXG4uYy1pY29uLS1cXFtkb3dubG9hZC1jbG91ZFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE3MFwiO1xufVxuXG4uYy1pY29uLS1cXFtkb3dubG9hZC1jaXJjbGVcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxNmZcIjtcbn1cblxuLmMtaWNvbi0tXFxbZGV2aWNlLXNtYXJ0cGhvbmVcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXNtYXJ0cGhvbmVcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxNmVcIjtcbn1cblxuLmMtaWNvbi0tXFxbZGV0YWlsc1xcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtZGV0YWlsc1xcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE2ZFwiO1xufVxuXG4uYy1pY29uLS1cXFtkZWFsZXJcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLWRlYWxlclxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE2Y1wiO1xufVxuXG4uYy1pY29uLS1cXFtjdXRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxNmJcIjtcbn1cblxuLmMtaWNvbi0tXFxbY29weVxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE2YVwiO1xufVxuXG4uYy1pY29uLS1cXFtjb29raWUtc2V0dGluZ3NcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLWNvb2tpZS1zZXR0aW5nc1xcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE2OVwiO1xufVxuXG4uYy1pY29uLS1cXFtjb250cm9sLXN0b3BcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXN0b3BcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxNjhcIjtcbn1cblxuLmMtaWNvbi0tXFxbY29udHJvbC1za2lwX3ByZXZpb3VzXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTY3XCI7XG59XG5cbi5jLWljb24tLVxcW2NvbnRyb2wtc2tpcF9uZXh0XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTY2XCI7XG59XG5cbi5jLWljb24tLVxcW2NvbnRyb2wtcmV3aW5kXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTY1XCI7XG59XG5cbi5jLWljb24tLVxcW2NvbnRyb2wtcmV2ZXJzZVxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE2NFwiO1xufVxuXG4uYy1pY29uLS1cXFtjb250cm9sLXJlY29yZFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE2M1wiO1xufVxuXG4uYy1pY29uLS1cXFtjb250cm9sLXBsYXlcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXBsYXlcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxNjJcIjtcbn1cblxuLmMtaWNvbi0tXFxbY29udHJvbC1wYXVzZVxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtcGF1c2VcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxNjFcIjtcbn1cblxuLmMtaWNvbi0tXFxbY29udHJvbC1mb3J3YXJkXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTYwXCI7XG59XG5cbi5jLWljb24tLVxcW2NvbnRyYXN0XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTVmXCI7XG59XG5cbi5jLWljb24tLVxcW2NvbWZvcnRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxNWVcIjtcbn1cblxuLmMtaWNvbi0tXFxbY2xvdWQtY28yXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1lbWlzc2lvblxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE1ZFwiO1xufVxuXG4uYy1pY29uLS1cXFtjbG9zZWQtY2FwdGlvbnMtb25cXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxNWNcIjtcbn1cblxuLmMtaWNvbi0tXFxbY2xvc2VkLWNhcHRpb25zLW9mZlxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE1YlwiO1xufVxuXG4uYy1pY29uLS1cXFtjbG9zZVxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtY2xvc2VcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxNWFcIjtcbn1cblxuLmMtaWNvbi0tXFxbY2xvc2UtY2lyY2xlXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1jcm9zc2VkLW91dFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE1OVwiO1xufVxuXG4uYy1pY29uLS1cXFtjbG9ja1xcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtY2xvY2tcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxNThcIjtcbn1cblxuLmMtaWNvbi0tXFxbY2xpcFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE1N1wiO1xufVxuXG4uYy1pY29uLS1cXFtjaGV2cm9uLXVwXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy11cFxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtY29sbGFwc2VcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxNTZcIjtcbn1cblxuLmMtaWNvbi0tXFxbY2hldnJvbi1yaWdodFxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtZm9yd2FyZFxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtYXJyb3ctcmlnaHRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxNTVcIjtcbn1cblxuLmMtaWNvbi0tXFxbY2hldnJvbi1wcmV2aW91c1xcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE1NFwiO1xufVxuXG4uYy1pY29uLS1cXFtjaGV2cm9uLW5leHRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxNTNcIjtcbn1cblxuLmMtaWNvbi0tXFxbY2hldnJvbi1sZWZ0XFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1iYWNrXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTUyXCI7XG59XG5cbi5jLWljb24tLVxcW2NoZXZyb24tZG93blxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtZXhwYW5kXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTUxXCI7XG59XG5cbi5jLWljb24tLVxcW2NoZXZyb24tZG91YmxlX3VwXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTUwXCI7XG59XG5cbi5jLWljb24tLVxcW2NoZXZyb24tZG91YmxlX3JpZ2h0XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTRmXCI7XG59XG5cbi5jLWljb24tLVxcW2NoZXZyb24tZG91YmxlX2xlZnRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxNGVcIjtcbn1cblxuLmMtaWNvbi0tXFxbY2hldnJvbi1kb3VibGVfZG93blxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE0ZFwiO1xufVxuXG4uYy1pY29uLS1cXFtjaGV2cm9uLWNpcmNsZS11cFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE0Y1wiO1xufVxuXG4uYy1pY29uLS1cXFtjaGV2cm9uLWNpcmNsZS1yaWdodFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE0YlwiO1xufVxuXG4uYy1pY29uLS1cXFtjaGV2cm9uLWNpcmNsZS1sZWZ0XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTRhXCI7XG59XG5cbi5jLWljb24tLVxcW2NoZXZyb24tY2lyY2xlLWRvd25cXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxNDlcIjtcbn1cblxuLmMtaWNvbi0tXFxbY2hlY2tcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLWNoZWNrbWFya1xcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjE0OFwiO1xufVxuXG4uYy1pY29uLS1cXFtjaGVjay1zaGllbGRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxNDdcIjtcbn1cblxuLmMtaWNvbi0tXFxbY2hlY2stY2lyY2xlXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1zdWNjZXNzXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTQ2XCI7XG59XG5cbi5jLWljb24tLVxcW2NoYXRcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLWNoYXRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxNDVcIjtcbn1cblxuLmMtaWNvbi0tXFxbY2hhbmdlX29yZGVyXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTQ0XCI7XG59XG5cbi5jLWljb24tLVxcW2NhcmRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxNDNcIjtcbn1cblxuLmMtaWNvbi0tXFxbY2FyXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1jYXJcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxNDJcIjtcbn1cblxuLmMtaWNvbi0tXFxbY2FyLXRvdy1iYXJcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLWNhci10b3ctYmFyXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTQxXCI7XG59XG5cbi5jLWljb24tLVxcW2Nhci1zdGFyXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1tb2JpbGl0eVxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtY2FyLXZhbHVlXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTQwXCI7XG59XG5cbi5jLWljb24tLVxcW2Nhci1zaWRlXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1jYXItc2lkZVxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjEzZlwiO1xufVxuXG4uYy1pY29uLS1cXFtjYXItc2VhdFxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtY2FyLXNlYXRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxM2VcIjtcbn1cblxuLmMtaWNvbi0tXFxbY2FyLXNlYXQtY2hpbGRcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLWNhci1zZWF0LWNoaWxkXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTNkXCI7XG59XG5cbi5jLWljb24tLVxcW2Nhci1zZWF0LWJhYnlcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLWNhci1zZWF0LWJhYnlcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxM2NcIjtcbn1cblxuLmMtaWNvbi0tXFxbY2FyLXJhY2stcm9vZnRvcFxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtY2FyLXJhY2stcm9vZnRvcFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjEzYlwiO1xufVxuXG4uYy1pY29uLS1cXFtjYXItcmFjay1iaWtlXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1jYXItcmFjay1iaWtlXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTNhXCI7XG59XG5cbi5jLWljb24tLVxcW2Nhci1tYWduaWZpZXJcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXNhZmV0eS1jaGVja1xcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjEzOVwiO1xufVxuXG4uYy1pY29uLS1cXFtjYXItaW5mb1xcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtY29uZmlndXJhdGlvbi1kZXRhaWxzXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTM4XCI7XG59XG5cbi5jLWljb24tLVxcW2Nhci1kb29yXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1jYXItZG9vclxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjEzN1wiO1xufVxuXG4uYy1pY29uLS1cXFtjYW1lcmFcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxMzZcIjtcbn1cblxuLmMtaWNvbi0tXFxbY2FsZW5kYXJcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLWNhbGVuZGFyXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTM1XCI7XG59XG5cbi5jLWljb24tLVxcW2NhbGVuZGFyLXBvaW50XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTM0XCI7XG59XG5cbi5jLWljb24tLVxcW2NhbGVuZGFyLWNoZWNrXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTMzXCI7XG59XG5cbi5jLWljb24tLVxcW2NhbGN1bGF0b3JcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLWNhbGN1bGF0b3JcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxMzJcIjtcbn1cblxuLmMtaWNvbi0tXFxbYnJpZ2h0bmVzc1xcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjEzMVwiO1xufVxuXG4uYy1pY29uLS1cXFticmFrZXNcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxMzBcIjtcbn1cblxuLmMtaWNvbi0tXFxbYnJha2UtZmx1aWRcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLWJyYWtlLWZsdWlkXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTJmXCI7XG59XG5cbi5jLWljb24tLVxcW2JveFxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtYWNjZXNzb2lyZXNcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxMmVcIjtcbn1cblxuLmMtaWNvbi0tXFxbYm9va21hcmtcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxMmRcIjtcbn1cblxuLmMtaWNvbi0tXFxbYm9sdFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjEyY1wiO1xufVxuXG4uYy1pY29uLS1cXFtibHVldG9vdGgtY2lyY2xlXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTJiXCI7XG59XG5cbi5jLWljb24tLVxcW2JlbGxcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLW5vdGlmaWNhdGlvblxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjEyYVwiO1xufVxuXG4uYy1pY29uLS1cXFtiYXR0ZXJ5XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTI5XCI7XG59XG5cbi5jLWljb24tLVxcW2JhdHRlcnktdHdvX3RoaXJkc1xcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjEyOFwiO1xufVxuXG4uYy1pY29uLS1cXFtiYXR0ZXJ5LW9uZV90aGlyZFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjEyN1wiO1xufVxuXG4uYy1pY29uLS1cXFtiYXR0ZXJ5LWZ1bGxcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxMjZcIjtcbn1cblxuLmMtaWNvbi0tXFxbYmF0dGVyeS1lbXB0eVxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjEyNVwiO1xufVxuXG4uYy1pY29uLS1cXFtiYXJfY29kZVxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjEyNFwiO1xufVxuXG4uYy1pY29uLS1cXFtiYWxsb29uXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1jb250YWN0XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTIzXCI7XG59XG5cbi5jLWljb24tLVxcW2JhY2tfdG9fcGFyZW50XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTIyXCI7XG59XG5cbi5jLWljb24tLVxcW2F1ZGlvLW9uXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy12b2x1bWVcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLXZvbHVtZS11cFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjEyMVwiO1xufVxuXG4uYy1pY29uLS1cXFthdWRpby1vZmZcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxMjBcIjtcbn1cblxuLmMtaWNvbi0tXFxbYXVkaW8tbXV0ZVxcXSwgLmMtaWNvbi0tXFxbc2VtYW50aWMtdm9sdW1lLWRvd25cXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxMWZcIjtcbn1cblxuLmMtaWNvbi0tXFxbYXVkaW8tbWlkXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTFlXCI7XG59XG5cbi5jLWljb24tLVxcW2Fzc2lzdGFuY2VcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxMWRcIjtcbn1cblxuLmMtaWNvbi0tXFxbYXJ0Ym9hcmRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxMWNcIjtcbn1cblxuLmMtaWNvbi0tXFxbYXJyb3ctdXBcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxMWJcIjtcbn1cblxuLmMtaWNvbi0tXFxbYXJyb3ctdG9wX3JpZ2h0XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTFhXCI7XG59XG5cbi5jLWljb24tLVxcW2Fycm93LXRvcF9sZWZ0XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTE5XCI7XG59XG5cbi5jLWljb24tLVxcW2Fycm93LXJpZ2h0XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTE4XCI7XG59XG5cbi5jLWljb24tLVxcW2Fycm93LWxlZnRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxMTdcIjtcbn1cblxuLmMtaWNvbi0tXFxbYXJyb3ctZG93blxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjExNlwiO1xufVxuXG4uYy1pY29uLS1cXFthcnJvdy1jdXJ2ZWQtdXBcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxMTVcIjtcbn1cblxuLmMtaWNvbi0tXFxbYXJyb3ctY3VydmVkLXVwX2ZsaXBwZWRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxMTRcIjtcbn1cblxuLmMtaWNvbi0tXFxbYXJyb3ctY3VydmVkLXJpZ2h0XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTEzXCI7XG59XG5cbi5jLWljb24tLVxcW2Fycm93LWN1cnZlZC1yaWdodF9mbGlwcGVkXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTEyXCI7XG59XG5cbi5jLWljb24tLVxcW2Fycm93LWN1cnZlZC1sZWZ0XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTExXCI7XG59XG5cbi5jLWljb24tLVxcW2Fycm93LWN1cnZlZC1sZWZ0X2ZsaXBwZWRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxMTBcIjtcbn1cblxuLmMtaWNvbi0tXFxbYXJyb3ctY3VydmVkLWRvd25cXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxMGZcIjtcbn1cblxuLmMtaWNvbi0tXFxbYXJyb3ctY3VydmVkLWRvd25fZmxpcHBlZFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjEwZVwiO1xufVxuXG4uYy1pY29uLS1cXFthcnJvdy1jaXJjbGUtdXBcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxMGRcIjtcbn1cblxuLmMtaWNvbi0tXFxbYXJyb3ctY2lyY2xlLXRvcF9yaWdodFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjEwY1wiO1xufVxuXG4uYy1pY29uLS1cXFthcnJvdy1jaXJjbGUtdG9wX2xlZnRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxMGJcIjtcbn1cblxuLmMtaWNvbi0tXFxbYXJyb3ctY2lyY2xlLXJpZ2h0XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTBhXCI7XG59XG5cbi5jLWljb24tLVxcW2Fycm93LWNpcmNsZS1sZWZ0XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTA5XCI7XG59XG5cbi5jLWljb24tLVxcW2Fycm93LWNpcmNsZS1kb3duXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTA4XCI7XG59XG5cbi5jLWljb24tLVxcW2Fycm93LWNpcmNsZS1ib3R0b21fcmlnaHRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxMDdcIjtcbn1cblxuLmMtaWNvbi0tXFxbYXJyb3ctY2lyY2xlLWJvdHRvbV9sZWZ0XFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTA2XCI7XG59XG5cbi5jLWljb24tLVxcW2Fycm93LWJvdHRvbV9yaWdodFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjEwNVwiO1xufVxuXG4uYy1pY29uLS1cXFthcnJvdy1ib3R0b21fbGVmdFxcXSB7XG4gIC0tYnJvbi1pY29uOiBcIlxcZjEwNFwiO1xufVxuXG4uYy1pY29uLS1cXFthcmNoaXZlXFxdIHtcbiAgLS1icm9uLWljb246IFwiXFxmMTAzXCI7XG59XG5cbi5jLWljb24tLVxcW2Fpci1maWx0ZXJcXF0sIC5jLWljb24tLVxcW3NlbWFudGljLWFpci1maWx0ZXJcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxMDJcIjtcbn1cblxuLmMtaWNvbi0tXFxbYWRkXFxdLCAuYy1pY29uLS1cXFtzZW1hbnRpYy1hZGRcXF0ge1xuICAtLWJyb24taWNvbjogXCJcXGYxMDFcIjtcbn1cblxuLyoqXG4gKiBFeHRlbmQgaWNvbiBzZWxlY3RvcnMgZm9yIHNlbWFudGljIGljb25zLlxuICovXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1hY2Nlc3NvaXJlc1xcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWFkZFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWFpci1maWx0ZXJcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1hcnJvdy1yaWdodFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWJhY2tcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1iZW5lZml0LWZpbmFuY2VcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1icmFrZS1mbHVpZFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWJyaWVmY2FzZVxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWJyb2NodXJlXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtY2FsY3VsYXRvclxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWNhbGVuZGFyXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtY2FyLWRvb3JcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1jYXItaGFuZG92ZXJcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1jYXItcmFjay1iaWtlXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtY2FyLXJhY2stcm9vZnRvcFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWNhci1yZXR1cm5cXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1jYXItc2VhdC1iYWJ5XFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtY2FyLXNlYXQtY2hpbGRcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1jYXItc2VhdFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWNhci1zaWRlXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtY2FyLXRvdy1iYXJcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1jYXItdmFsdWVcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1jYXJcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1jaGF0XFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtY2hlY2ttYXJrXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtY2xvY2tcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1jbG9zZVxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWNvbGxhcHNlXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtY29uZmlndXJhdGlvbi1kZXRhaWxzXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtY29udGFjdFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWNvb2tpZS1zZXR0aW5nc1xcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWNyb3NzZWQtb3V0XFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtZGVhbGVyXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtZGVsZXRlXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtZGV0YWlsc1xcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWRpZXNlbFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWRpc2xpa2VcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1kb3dubG9hZFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWVkaXRcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1lbGVjdHJpY1xcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWVtaXNzaW9uXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtZW5naW5lLW9pbFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWVuZ2luZVxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWVudGVyLWZ1bGxzY3JlZW5cXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1lcXVhbHNpZ25cXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1lcnJvclxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWV4aXQtZnVsbHNjcmVlblxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWV4cGFuZFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWZhcVxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWZhdm9yaXRlXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtZmVlZGJhY2tcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1maWxlXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtZmlsdGVyXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtZm9yd2FyZFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWZvdXItd2hlZWwtZHJpdmVcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1mcm9udC13aGVlbC1kcml2ZVxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWZzLXBheW1lbnRcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1mdWVsLW5hdHVyYWwtZ2FzXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtZnVlbFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWdlYXItb2lsXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtZ3JpZFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWd1YXJhbnRlZVxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWh5YnJpZFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWluZm9cXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1saWtlXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtbGlzdFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWxvY2F0aW9uXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtbG9jYXRvclxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLWxvY2tcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1sb2dpblxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLW1haWxcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1tZW51XFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtbWludXNcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1tb2JpbGl0eVxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLW1vcmVcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1uYXZpZ2F0aW9uXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtbmV3c1xcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLW5vdGlmaWNhdGlvblxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLW9mZmVyc1xcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLXBhcmFncmFwaFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLXBhdXNlXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtcGVyZm9ybWFuY2VcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1wZXRyb2xcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1waG9uZVxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLXBsYW5lXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtcGxheVxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLXBsdXNcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1wcmVtaXVtLWxcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1wcmVtaXVtLW1cXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1wcmVtaXVtLXNcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1wcmludFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLXF1YWxpdHlcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1yZWxvYWRcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1zYWZldHktY2hlY2tcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1zYXZlLWNsb3VkXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtc2F2ZS1sb2NhbFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLXNlYXJjaFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLXNlcnZpY2VcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1zZXR0aW5nc1xcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLXNoYXJlXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtc21hcnRwaG9uZVxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLXNub3ctY2hhaW5zXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtc29jaWFsLWZhY2Vib29rXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtc29jaWFsLWluc3RhZ3JhbVxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLXNvY2lhbC1saW5rZWRpblxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLXNvY2lhbC1waW50ZXJlc3RcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1zb2NpYWwtcnNzXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtc29jaWFsLXR3aXR0ZXJcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1zb2NpYWwtdmltZW9cXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1zb2NpYWwteGluZ1xcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLXNvY2lhbC15b3V0dWJlXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtc29ydC1hc2NcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1zb3J0LWRlc2NcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1zcGFyay1wbHVnXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtc3Rhci1maWxsZWRcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1zdGFyLWhhbGZcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1zdGFyLW91dGxpbmVcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1zdGVlcmluZy13aGVlbFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLXN0b3BcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy1zdWNjZXNzXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtc3dpdGNoXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtdGlyZXMtd2ludGVyXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtdHJhbnNtaXNzaW9uLWF1dG9tYXRpY1xcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLXRyYW5zbWlzc2lvbi1tYW51YWxcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy11cFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLXVwbG9hZFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLXVzZXJcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy12b2x1bWUtZG93blxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLXZvbHVtZS11cFxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLXZvbHVtZVxcXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqLyB9XG5cbi5jLWljb24tLVxcW3NlbWFudGljLXdhcm5pbmdcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4uYy1pY29uLS1cXFtzZW1hbnRpYy16b29tLWluXFxdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovIH1cblxuLmMtaWNvbi0tXFxbc2VtYW50aWMtem9vbS1vdXRcXF0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi8gfVxuXG4vKipcbiAqIEV4dGVuZCBpY29uIHNlbGVjdG9ycyBmb3IgZmFsbGJhY2tzLlxuICovXG4vKipcbiAqIEdlbmVyYXRlIGNvbWJvIG1vZGlmaWVyIGZvciBzaXplICYgY29tcGxleGl0eS5cbiAqL1xuLyoqXG4qIEdlbmVyYXRlIHNpemluZyBtb2RpZmllcnMuXG4qL1xuLmMtaWNvbi0teHhzbWFsbCB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbn1cblxuLmMtaWNvbi0teHNtYWxsIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG59XG5cbi5jLWljb24tLXNtYWxsIHtcbiAgZm9udC1zaXplOiAycmVtO1xufVxuXG4uYy1pY29uLS1sYXJnZSB7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbn1cblxuLmMtaWNvbi0teGxhcmdlIHtcbiAgZm9udC1zaXplOiA0cmVtO1xufVxuXG4uYy1pY29uLS14eGxhcmdlIHtcbiAgZm9udC1zaXplOiA2cmVtO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSEVBREVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIFVzZSBgYXV0b2AgaW5zdGVhZCBvZiBgMGAgaW4gY2FzZSB0aGVyZSBhcmUgb3RoZXIgZml4ZWQgZWxlbWVudHMgYWJvdmVcbiAqICAgICB0aGUgaGVhZGVyIGNvbXBvbmVudCAoZS5nLiBub3RpZmljYXRpb25zKS5cbiAqIFsyXSBPbmx5IG91dHB1dCBhIGJhY2tncm91bmQtY29sb3IgaWYgYSBjb2xvciBpcyBkZWZpbmVkLiBUaGlzIHdheSwgaWYgeW91XG4gKiAgICAgZG9u4oCZdCB3YW50IGFueSBiYWNrZ3JvdW5kIG9uIHRoZSBoZWFkZXIgKGkuZS4gdHJhbnNwYXJlbnQpLCBubyBDU1MgaXNcbiAqICAgICBnZW5lcmF0ZWQuXG4gKiBbM10gVmFyaWFudCB0byBmb3JjZSBhIGBwb3NpdGlvbjogc3RhdGljYC4gVXNlZnVsIGlmIHlvdXIgZGVmYXVsdCBoZWFkZXJcbiAqICAgICBpcyBhYnNvbHV0ZSBvciBzdGlja3ksIGJ1dCB5b3UgYWxzbyBuZWVkIGEgdmFyaWFudCB0aGF0IHByb3ZpZGVzIGFcbiAqICAgICBzdGF0aWMgaGVhZGVyIHRoYXQgc2l0cyBpbiB0aGUgbm9ybWFsIGZsb3cgb2YgdGhlIHBhZ2UuXG4gKiBbNF0gT25seSBhcHBseSBhIHNwYWNpbmctYm90dG9tIGlmIGl04oCZcyBub3QgYWJzb2x1dGUgb3IgZml4ZWQgcG9zaXRpb25lZC5cbiAqIFs1XSBNYWtlIHN1cmUgdGhhdCBhbGwgZWxlbWVudHMgb2YgdGhlIGhlYWRlciBhcmUgYWxpZ25lZCB0byB0aGUgb3V0ZXIgZWRnZXMuXG4gKiBbNl0gSWYgdGhlIGRlZmF1bHQgc3BhY2luZy1ib3R0b20gZm9yIHRoZSBzdGF0aWMgaGVhZGVyIGFsdGVycyBvbiBzbWFsbFxuICogICAgIHNjcmVlbiwgYXNzaWduIGl0IGZvciB0aGF0IHNwZWNpZmljIG1lZGlhLXF1ZXJ5LlxuICogWzddIFBvc2l0aW9uIGAuYy1oZWFkZXJfX25hdmAgYWZ0ZXIgYC5jLWhlYWRlcl9fbm90aWZpY2F0aW9uLWNlbnRlcmAgaW5cbiAqICAgICBzbWFsbCB2aWV3cG9ydHMuXG4gKiBbOF0gTWFrZSBzdXJlIHRoYXQgdGhlIGhlYWRlciBhbHdheXMgc3BhbnMgYWxsIGl0cyBjaGlsZHJlbi5cbiAqIFs5XSBTdHJldGNoIHRoZSBsb2cgdG8gZnVsbCBoZWlnaHQgYnkgbWFraW5nIHRoZSBjb250YWluZXIgYSBmbGV4Ym94IGNvbnRhaW5lci5cbiAqIFsxMF0gQ2VudGVyIHRoZSBzdWIgYnJhbmQgbG9nbyB2ZXJ0aWNhbGx5IGluIHRoZSBoZWFkZXIuXG4gKiBbMTFdIFB1c2ggdGhlIHN1YiBicmFuZCBsb2dvIHRvIGxlZnQuXG4gKiBbMTJdIEFkanVzdCB0aGUgc3BhY2luZyBiZXR3ZWVuIHRoZSBzdWIgYnJhbmQgbG9nbyBhbmQgdGhlIGxvZ28gaW4gc21hbGxcbiAqICAgICAgdmlld3BvcnRzIHRvIGF2b2lkIGhvcml6b250YWwgc2Nyb2xsaW5nLlxuICogWzEzXSBBcHBseSBhIHNhZmUtc3BhY2UgdG8gdGhlIHN1Yi1icmFuZCBsb2dvIG9uIHRoZSByaWdodC1oYW5kIHNpZGUgaWYgaXQgaXNcbiAqICAgICAgbm90IHRoZSBsYXN0IGVsZW1lbnQgYW5kIG9ubHkgZm9yIGxhcmdlciB2aWV3cG9ydHMuXG4gKi9cbi5jLWhlYWRlcl9fd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjAwMDtcbn1cblxuLmMtaGVhZGVyIHtcbiAgd2lkdGg6IGZpdC1jb250ZW50OyAvKiBbOF0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY2FsZS11bmxpbWl0ZWQvZGVjbGFyYXRpb24tc3RyaWN0LXZhbHVlICovXG4gIGhlaWdodDogNjRweDtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbNF0gKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgLyogWzJdICovXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTRlNGU0O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLWhlYWRlciB7XG4gICAgaGVpZ2h0OiA2NHB4O1xuICB9XG59XG4uYy1oZWFkZXIuYy1oZWFkZXItLXN0YXRpYyB7IC8qIFszXSAqL1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbNF0gKi9cbn1cblxuLmMtaGVhZGVyX19jb250ZW50LXdyYXBwZXIge1xuICBtYXgtd2lkdGg6IGNhbGMoMTI0OHB4ICsgMTkycHgpO1xuICBwYWRkaW5nLWxlZnQ6IDk2cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDk2cHg7XG4gIC0tcGFnZS13cmFwOiA5NnB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgLyogWzVdICovXG4gIGhlaWdodDogNjRweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1oZWFkZXJfX2NvbnRlbnQtd3JhcHBlciB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDk2cHgpO1xuICAgIHBhZGRpbmctbGVmdDogNDhweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4O1xuICAgIC0tcGFnZS13cmFwOiA0OHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtaGVhZGVyX19jb250ZW50LXdyYXBwZXIge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyA0OHB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgICAtLXBhZ2Utd3JhcDogMjRweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLWhlYWRlcl9fY29udGVudC13cmFwcGVyIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTI0OHB4ICsgMjRweCk7XG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XG4gICAgLS1wYWdlLXdyYXA6IDEycHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1oZWFkZXJfX2NvbnRlbnQtd3JhcHBlciB7XG4gICAgaGVpZ2h0OiA2NHB4O1xuICB9XG59XG5cbi5jLWhlYWRlcl9fbG9nbyB7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbn1cblxuLmMtaGVhZGVyX19zdWItYnJhbmQtbG9nbyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jLWhlYWRlcl9fbmF2IHtcbiAgZGlzcGxheTogZmxleDsgLyogWzZdICovXG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTYxcHgpIHtcbiAgLmMtaGVhZGVyX19uYXYge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBmbGV4LXNocmluazogMTtcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtaGVhZGVyX19uYXYge1xuICAgIG9yZGVyOiAxOyAvKiBbN10gKi9cbiAgfVxufVxuXG4uYy1oZWFkZXJfX25vdGlmaWNhdGlvbi1jZW50ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZPT1RFUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBJZiBubyBicmVhZGNydW1iIGlzIGluY2x1ZGVkIGluIHRoZSBmb290ZXIsIGhpZGUgdGhlIGNvbnRhaW5lci5cbiAqIFsyXSBJZiB0aGUgbWV0YSBuYXYgaGFzIGEgZGV2aWF0aW5nIGJhY2tncm91bmQgY29sb3IsIGFzc2lnbiBpdC5cbiAqIFszXSBJZiB0aGUgZm9vdG5vdGVzIGhhdmUgYSBkZXZpYXRpbmcgYmFja2dyb3VuZCBjb2xvciwgYXNzaWduIGl0LlxuICogWzRdIE1hbmFnZSBhdXRvbWF0aWMgdmVydGljYWwgc3BhY2luZyBiZXR3ZWVuIG5hdiBjb2x1bW5zIHdoZW4gc3RhY2tlZC5cbiAqIFs1XSBSZXNwb25zaXZlIGJlaGF2aW91ciB3aXRob3V0IG1lZGlhLXF1ZXJpZXMsIGkuZS4gZG9u4oCZdCBsZXQgdGhlIGNvbHVtbnNcbiAqICAgICBzaHJpbmsgdW5kZXIgYSB3aWR0aCBvZiBgJGZvb3Rlci1uYXYtY29sdW1uLW1pbi13aWR0aGAuLi5cbiAqIFs2XSAuLi5idXQgZm9yY2UgYSBvbmUtY29sdW1uIGxheW91dCBhdCBicmVha3BvaW50IGFuZCBiZWxvdy5cbiAqIFs3XSBPbmx5IGhpZGUgdGhlIGFjY29yZGlvbiBwYW5lbCB3aGVuIHRoZSBKUyBpcyBsb2FkZWQuXG4gKiBbOF0gTWFrZSBzdXJlIHRvIGp1c3QgcHJvdmlkZSB0aGUgd2hvbGUgYWNjb3JkaW9uLW9uLXNtYWxsLXNjcmVlblxuICogICAgIHNoaXp6bGUtZGl6emxlLCB3aGVuIEpTIGlzIGxvYWRlZC5cbiAqIFs5XSBSZXNldCBwb3RlbnRpYWwgYnJvd3NlciBkZWZhdWx0IG1hcmdpbiBmb3IgY2VydGFpbiBIVE1MIGVsZW1lbnRzIGFuZFxuICogICAgIGluc3RlYWQgYXNzaWduIHRoZSBib3R0b20gc3BhY2luZyB0byBgLmMtZm9vdGVyLW5hdl9fdGl0bGVgLlxuICogWzEwXSBNYWtlIHN1cmUgdGhhdCB0aGUgcHJlc2VudGVkIEhUTUwgZWxlbWVudHMgbWFrZSBzZW5zZSBmb3IgYWNjZXNzaWJpbGl0eS5cbiAqICAgICAgVGhlIGAuaXMtaGVhZGluZ2AvYC5pcy1idXR0b25gIGNsYXNzZXMgYXJlIGFkZGVkIGR5bmFtaWNhbGx5IHZpYSBKUywgc29cbiAqICAgICAgd2l0aCB0aGlzIHByb2dyZXNzaXZlIG1lY2hhbmlzbSB3ZSBtYWtlIHN1cmUgdGhhdCB0aGlzIGFsbCBoYXBwZW5zIGp1c3RcbiAqICAgICAgd2hlbiBKUyBpcyBsb2FkZWQuXG4gKiBbMTFdIEFsaWduIG1ldGEgYmFyIGNvbnRlbnQgYXQgdGhlIHRvcCBlZGdlIG9mIHRoZSBmbGV4IGNvbnRhaW5lci5cbiAqIFsxMl0gSWYgdGhlIG1ldGEgbmF2IGhhcyBhIGRldmlhdGluZyBiYWNrZ3JvdW5kIGNvbG9yLCB3ZSBuZWVkIHRvIGFkZCBhXG4gKiAgICAgIHBhZGRpbmcgdG8gdGhlIHRvcCB0byBnaXZlIGl0IHNvbWUgc3BhY2UgdG8gdGhlIGZvb3RlciBuYXYuXG4gKiBbMTNdIElmIHRoZSBmb290ZXIgbmF2IGhhcyBhIGJvcmRlciwgd2UgbmVlZCB0byBhZGQgYSBwYWRkaW5nIHRvIHRoZSB0b3AgdG9cbiAqICAgICAgZ2l2ZSBpdCBzb21lIHNwYWNlIHRvIHRoZSBmb290ZXIgbmF2LlxuICogWzE0XSBJZiB0aGUgbWV0YSBuYXYgaXMgdGhlIGZpcnN0IGVsZW1lbnQgaW5zaWRlIHRoZSBmb290ZXIsIGl0IG5lZWRzIGFcbiAqICAgICAgdG9wIHBhZGRpbmcuXG4gKiBbMTVdIElmIHRoZSBtZXRhIG5hdiBpcyB0aGUgbGFzdCBlbGVtZW50IGluc2lkZSB0aGUgZm9vdGVyLCB3ZSBzZXQgdGhlXG4gKiAgICAgIHBhZGRpbmcgYm90dG9tIGVxdWFsIHRvIHRoZSBzdXBlcmlvciBmb290ZXIgcGFkZGluZy1ib3R0b20uXG4gKiBbMTZdIElmIHRoZSBtZXRhIG5hdiBpcyB0aGUgb25seSBjaGlsZCBvZiB0aGUgZm9vdGVyLCB3ZSB3YW50IHRoZSBzYW1lXG4gKiAgICAgIHBhZGRpbmcgYXQgdGhlIHRvcCBhbmQgdGhlIGJvdHRvbS5cbiAqIFsxN10gSWYgdGhlIG1ldGEgbmF2IGlzIHRoZSBkaXJlY3QgZm9sbG93aW5nIGVsZW1lbnQgb2YgdGhlIGJyZWFkY3J1bWJcbiAqICAgICAgKGkuZS4gdGhlIGZvb3RlciBuYXYgaXMgbWlzc2luZyksIHdlIG5lZWQgdG8gb2Zmc2V0IHRoZSBtZXRhIG5hdiBmcm9tXG4gKiAgICAgIHRoZSBicmVhZGNydW1iLlxuICogWzE4XSBJZiB0aGUgYnJlYWRjcnVtYiBpcyBoaWRkZW4sIHNvIHRoZSBtZXRhIG5hdiBpcyBfdmlzdWFsbHlfIHRoZSBmaXJzdFxuICogICAgICBlbGVtZW50IGluIHRoZSBmb290ZXIsIHJlcGxhY2UgdGhlIG1hcmdpbiB3aXRoIGEgcGFkZGluZywgc28gdGhlIG1ldGFcbiAqICAgICAgbmF2IGl0ZW1zIGFyZSBub3Qgc3R1Y2sgYXQgdGhlIHRvcCBvZiB0aGUgZm9vdGVyLlxuICogWzE5XSBFbmFibGUgbWV0YSBuYXYgYmFyIHRvIG9jY3VweSByZWxhdGl2ZWx5IG1vcmUgc3BhY2UgaWYgbmVjZXNzYXJ5LlxuICogWzIwXSBFbnN1cmUgdGhhdCBzb2NpYWwgbWVkaWEgbGluayBzcGFucyBhbmQgdGh1cyBpcyBjbGlja2FibGUgb3ZlciB0aGUgd2hvbGVcbiAqICAgICAgc2l6ZSBvZiB0aGUgc29jaWFsIG1lZGlhIGljb24uXG4gKiBbMjFdIEFsaWduIHNpZ24gYW5kIHRleHQgKG1lZGlhLW9iamVjdCBsaWtlKS5cbiAqIFsyMl0gRW5mb3JjZSBsaW5lIGJyZWFrIGZvciAnLmMtZm9vdGVyLWNvcHlyaWdodCcgYW5kIGVuc3VyZSB0aGF0IGZ1bGwgd2lkdGhcbiAqICAgICAgb2YgdGhlIGNvbnRhaW5lciBpcyB1c2VkLlxuICogWzIzXSBSZXNldCBwb3RlbnRpYWwgYnJvd3NlciBkZWZhdWx0IG1hcmdpbiBmb3Igc29jaWFsIG1lZGlhIGVsZW1lbnQgYW5kIGxpbmtzLlxuICogWzI0XSBFbnN1cmUgd3JhcHBpbmcgKGNvbHVtbiBsYXlvdXQpLlxuICogWzI1XSBDaGVjayBpZiB0aGUgaWNvbiBzaG91bGQgYmUgcmVuZGVyZWQgYXMgZWl0aGVyIGEgcm91bmQgb3Igc3F1YXJlIHZhcmlhbnQuXG4gKiBbMjZdIFByZXZlbnQgZG91YmxpbmcgdGhlIHNwYWNpbmcgd2hlbiB0aGUgYnJlYWRjcnVtYiBpcyBmb2xsb3dlZCBieSB0aGUgbWV0YSBuYXYuXG4gKi9cbi5jLWZvb3RlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDMxMzI7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uYy1mb290ZXJfX21vZHVsZS5jLWZvb3Rlcl9fbW9kdWxlLS1icmVhZGNydW1iIHtcbiAgZGlzcGxheTogbm9uZTsgLyogWzFdICovXG59XG4uYy1mb290ZXJfX21vZHVsZS5jLWZvb3Rlcl9fbW9kdWxlLS1icmVhZGNydW1iIHtcbiAgLyogWzJdICovXG59XG5cbi5jLWZvb3Rlci1icmVhZGNydW1iIHtcbiAgcGFkZGluZy10b3A6IDE2cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxNnB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzE2MTcxODtcbn1cblxuLmMtZm9vdGVyLW5hdiB7XG4gIHBhZGRpbmctdG9wOiA0OHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNDhweDtcbn1cblxuLmMtZm9vdGVyLW5hdl9fY29sdW1ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLXRvcDogLTE2cHg7IC8qIFs0XSAqL1xufVxuXG4uYy1mb290ZXItbmF2X19jb2x1bW4ge1xuICBmbGV4LWdyb3c6IDE7IC8qIFs1XSAqL1xuICBmbGV4LXNocmluazogMTsgLyogWzVdICovXG4gIGZsZXgtYmFzaXM6IDIwMHB4OyAvKiBbNV0gKi9cbiAgbWFyZ2luLXRvcDogMTZweDsgLyogWzRdICovXG4gIG1hcmdpbi1yaWdodDogMTZweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1mb290ZXItbmF2X19jb2x1bW4ge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7IC8qIFs2XSAqL1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuXG4uYy1mb290ZXItbmF2X19saXN0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuLmMtZm9vdGVyLW5hdl9fbGlzdCBsaSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYy1mb290ZXItbmF2X190aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5jLWZvb3Rlci1uYXZfX3RpdGxlLWxhYmVsIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbOV0gKi9cbiAgZm9udC1mYW1pbHk6IFwic2tvZGEtbmV4dFwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICM5ZTlmYTA7XG59XG4uYy1mb290ZXItbmF2X190aXRsZS1sYWJlbDpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtZm9vdGVyLW5hdl9fdGl0bGUtbGFiZWwuaXMtaGVhZGluZyB7XG4gICAgZGlzcGxheTogbm9uZTsgLyogWzEwXSAqL1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgLmMtZm9vdGVyLW5hdl9fdGl0bGUtbGFiZWwuaXMtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lOyAvKiBbMTBdICovXG4gIH1cbn1cblxuLmMtZm9vdGVyLW5hdl9faXRlbSB7XG4gIHBhZGRpbmctdG9wOiA0cHg7XG4gIHBhZGRpbmctYm90dG9tOiA0cHg7XG59XG5cbi5jLWZvb3Rlci1uYXZfX2xpbmsge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS43MTQyODU3MTQzO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmMtZm9vdGVyLW5hdl9fbGluazpob3ZlciwgLmMtZm9vdGVyLW5hdl9fbGluazpmb2N1cywgLmMtZm9vdGVyLW5hdl9fbGluazphY3RpdmUge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmMtZm9vdGVyLW1ldGEtYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgLyogWzExXSAqL1xuICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1mb290ZXItbWV0YS1iYXIgPiAqIHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlOyAvKiBbMjRdICovXG4gIH1cbn1cbi5jLWZvb3Rlcl9fbW9kdWxlLS1tZXRhLW5hdjpmaXJzdC1jaGlsZCAuYy1mb290ZXItbWV0YS1iYXIge1xuICBwYWRkaW5nLXRvcDogMTZweDsgLyogWzE0XSAqL1xufVxuLmMtZm9vdGVyX19tb2R1bGUtLW1ldGEtbmF2Omxhc3QtY2hpbGQgLmMtZm9vdGVyLW1ldGEtYmFyIHtcbiAgcGFkZGluZy1ib3R0b206IDQ4cHg7IC8qIFsxNV0gKi9cbn1cbi5jLWZvb3Rlcl9fbW9kdWxlLS1tZXRhLW5hdjpsYXN0LWNoaWxkOm9ubHktY2hpbGQgLmMtZm9vdGVyLW1ldGEtYmFyIHtcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7IC8qIFsxNl0gKi9cbn1cbi5jLWZvb3Rlcl9fbW9kdWxlLS1icmVhZGNydW1iICsgLmMtZm9vdGVyX19tb2R1bGUtLW1ldGEtbmF2IC5jLWZvb3Rlci1tZXRhLWJhciB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAxNnB4OyAvKiBbMThdICovXG59XG5cbi5jLWZvb3Rlci1tZXRhLW5hdiB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBmbGV4LWdyb3c6IDE7IC8qIFsxOV0gKi9cbiAgZmxleC1zaHJpbms6IDE7XG4gIGZsZXgtYmFzaXM6IGF1dG87XG4gIHBhZGRpbmctYm90dG9tOiAxNnB4O1xufVxuLmMtZm9vdGVyLW1ldGEtbmF2IGxpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtZm9vdGVyLW1ldGEtbmF2IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICAuYy1mb290ZXItbWV0YS1uYXZfX2l0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICB9XG59XG5cbi5jLWZvb3Rlci1tZXRhLW5hdl9fbGluayB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjcxNDI4NTcxNDM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjOWU5ZmEwO1xufVxuLmMtZm9vdGVyLW1ldGEtbmF2X19saW5rOmhvdmVyLCAuYy1mb290ZXItbWV0YS1uYXZfX2xpbms6Zm9jdXMsIC5jLWZvb3Rlci1tZXRhLW5hdl9fbGluazphY3RpdmUge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmMtZm9vdGVyLXNvY2lhbC1tZWRpYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgY29sdW1uLWdhcDogMjRweDsgLyogWzI3XSAqL1xuICBtYXJnaW46IDA7IC8qIFsyM10gKi9cbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtZm9vdGVyLXNvY2lhbC1tZWRpYSB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cblxuLmMtZm9vdGVyLXNvY2lhbC1tZWRpYV9faXRlbSB7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8qIFsyM10gKi9cbn1cblxuLmMtZm9vdGVyLXNvY2lhbC1tZWRpYV9fbGluayB7XG4gIGRpc3BsYXk6IGZsZXg7IC8qIFsyMF0gKi9cbn1cblxuLmMtZm9vdGVyLXNvY2lhbC1tZWRpYV9faWNvbiB7XG4gIGZvbnQtc2l6ZTogMzJweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uYy1mb290ZXItc29jaWFsLW1lZGlhX19pY29uOmhvdmVyLCAuYy1mb290ZXItc29jaWFsLW1lZGlhX19pY29uOmZvY3VzLCAuYy1mb290ZXItc29jaWFsLW1lZGlhX19pY29uOmFjdGl2ZSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uYy1mb290ZXItY29weXJpZ2h0IHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7IC8qIFsyMV0gKi9cbiAgZmxleC1ncm93OiAwO1xuICBmbGV4LXNocmluazogMTtcbiAgZmxleC1iYXNpczogMTAwJTsgLyogWzIyXSAqL1xuICBjb2xvcjogIzllOWZhMDtcbn1cbi5jLWZvb3Rlci1jb3B5cmlnaHRfX3NpZ24ge1xuICBtYXJnaW4tcmlnaHQ6IDAuMjVlbTtcbn1cblxuLmMtZm9vdGVyLWZvb3Rub3RlcyB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgcGFkZGluZy10b3A6IDhweDtcbiAgcGFkZGluZy1ib3R0b206IDQ4cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjOWU5ZmEwO1xufVxuLmMtZm9vdGVyLWZvb3Rub3RlcyBhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4uYy1mb290ZXItZm9vdG5vdGVzIGE6aG92ZXIsIC5jLWZvb3Rlci1mb290bm90ZXMgYTpmb2N1cywgLmMtZm9vdGVyLWZvb3Rub3RlcyBhOmFjdGl2ZSB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjRk9PVEVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1mb290ZXItbWV0YS1uYXYge1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA0OHB4O1xuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNCQURHRVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBEaXNwbGF5IHRoZSBiYWRnZSBpbiBsaW5lIHdpdGggdGhlIGxhYmVsIGFuZCBvdGhlciBiYWRnZXMsIGV2ZW4gaWZcbiAqICAgICB0aGUgYmFkZ2UgY29udGFpbnMgYW4gaWNvbiBhbmQgaGFuZGxlcyBjb3JyZWN0IHdyYXBwaW5nIHdoZW4gYXZhaWxhYmxlXG4gKiAgICAgc3BhY2UgaXMgZXhjZWVkZWQuXG4gKiAgICAgUmVzb2x2ZXMgaW5saW5lLWJsb2NrIHNwYWNlIGlzc3VlIHRoYXQgY2FuIG9jY3VyIGZvciBleGFtcGxlIHdoZW5cbiAqICAgICBtYXJrdXAgaXMgbWluaWZpZWQuXG4gKiBbMl0gVmVydGljYWxseSBjZW50ZXIgdGhlIGljb24gaW5zaWRlIHRoZSBiYWRnZS5cbiAqIFszXSBWZXJ0aWNhbGx5IGNlbnRlciB0aGUgbGFiZWwgbmV4dCB0byB0aGUgYmFkZ2UuXG4gKiBbNF0gUHJldmVudCBkaXN0b3J0aW9uIChrZWVwIDE6MSBzaXplKS5cbiAqIFs1XSBBcHBseSBhbGwgZmxleGJveCBwcm9wZXJ0aWVzIHdpdGggZGVmYXVsdCB2YWx1ZXMgKGxlZ2FjeSBzdXBwb3J0KS5cbiAqL1xuLmMtYmFkZ2VfX3dyYXBwZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgLyogWzFdICovXG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbn1cbi5jLWJhZGdlX193cmFwcGVyIC5jLWJhZGdlX19sYWJlbCB7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8qIFszXSAqL1xufVxuLmMtYmFkZ2VfX3dyYXBwZXIgLmMtYmFkZ2Uge1xuICBmbGV4LWdyb3c6IDE7IC8qIFs0XSAqL1xuICBmbGV4LXNocmluazogMDsgLyogWzRdICovXG4gIGZsZXgtYmFzaXM6IGF1dG87IC8qIFs1XSAqL1xufVxuXG4uYy1iYWRnZSB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M0YzZjNztcbiAgY29sb3I6ICMxNjE3MTg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8qIFsxXSAqL1xufVxuLmMtYmFkZ2UuYy1iYWRnZS0tc3VjY2VzcywgLmMtYmFkZ2UuYy1iYWRnZS0tcG9zaXRpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzdkMDAyO1xuICBjb2xvcjogIzE2MTcxODtcbn1cbi5jLWJhZGdlLmMtYmFkZ2UtLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWM2NTEzO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5jLWJhZGdlLmMtYmFkZ2UtLW5vdGlmaWNhdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYzY1MTM7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmMtYmFkZ2UuYy1iYWRnZS0tZXJyb3IsIC5jLWJhZGdlLmMtYmFkZ2UtLW5lZ2F0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4MmIzNztcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uYy1iYWRnZSAuYy1iYWRnZV9faWNvbiB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IC8qIFsyXSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyAvKiBbM10gKi9cbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5jLWJhZGdlX19sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuLyogc3R5bGVsaW50LWRpc2FibGUgbGVuZ3RoLXplcm8tbm8tdW5pdCAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSBsZW5ndGgtemVyby1uby11bml0ICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQlVUVE9OU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBzY3NzL25vLWR1cGxpY2F0ZS1kb2xsYXItdmFyaWFibGVzICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHQgKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtZGVmYXVsdCAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSBzY3NzL25vLWR1cGxpY2F0ZS1kb2xsYXItdmFyaWFibGVzICovXG4vKiBbMTZdICovXG4vKipcbiAqIFsxXSBgaW5saW5lLWZsZXhgIGlzIGEgZ29vZCBtZXRob2QgdG8gY2VudGVyIGVsZW1lbnRzIHZlcnRpY2FsbHkgaW5zaWRlIG9mXG4gKiAgICAgdGhlIGJ1dHRvbi5cbiAqIFsyXSBDZW50ZXIgdGV4dCwgYW5kIHRleHQgdG8gaWNvbiBob3Jpem9udGFsbHkgYW5kIHZlcnRpY2FsbHkgaW5zaWRlIG9mIHRoZVxuICogICAgIGJ1dHRvbi5cbiAqIFszXSBNYWtlIHRoZSBjdXJzb3IgYmVoYXZpb3VyIHRoZSBzYW1lIGZvciBgPGJ1dHRvbj5gIGFuZCBgPGE+YCBlbGVtZW50cy5cbiAqIFs0XSBgPGE+YCBlbGVtZW50cyBhcmUgbGVmdCBhbGlnbmVkIGJ5IGRlZmF1bHQuIE92ZXJyaWRlIHRoaXMgdG8gbWF0Y2hcbiAqICAgICBgPGJ1dHRvbj5gIGFuZCBgPGE+YCBlbGVtZW50cy5cbiAqIFs1XSBUZXh0IGxlZnQsIGljb24gcmlnaHQuXG4gKiBbNl0gSWNvbiBsZWZ0LCB0ZXh0IHJpZ2h0LlxuICogWzddIEluY3JlYXNlIHNwZWNpZmljaXR5LCBzbyB0aGF0IHRoZSBzdHlsZXMgZG9u4oCZdCBnZXQgb3ZlcnJpZGRlbiBsYXRlciBvbiBieSBkaWZmZXJlbnQgdGhlbWVzLlxuICogICAgICBAVE9ETzogVGhpcyBpcyBkZWZpbml0ZWx5IGEgY29kZSBzbWVsbCBhbmQgc2hvdWxkIGJlIHJlZmFjdG9yZWQuXG4gKiAgICAgICAgICAgICBodHRwczovL2ppcmEucGxhdGZvcm0udndmcy5pby9icm93c2UvQlJPTi02NzA5XG4gKiBbOF0gRml4IGZvciBpT1MgYnVnLCB3aGVyZSB0aGUgYnV0dG9uIHRleHQgaXMgbm90IGNlbnRlcmVkIChCUk9OLTUzNCkuIEp1c3RcbiAqICAgICBvY2N1cnMgaW4gaU9TIDEwIG9yIGxvd2VyIChldmVyeSBicm93c2VyKSwgZm9yIHRoZSBmdWxsLXdpZHRoIGJ1dHRvbiBhbmRcbiAqICAgICBvbmx5LCBpZiBpdCdzIGEgYDxidXR0b24+YCBlbGVtZW50LlxuICogWzldIFByZXZlbnQgdGV4dCBzZWxlY3Rpb24gb24gYWxsIGJ1dHRvbiAoc3ViLSkgZWxlbWVudHMsIGVzcGVjaWFsbHkgZm9yXG4gKiAgICAgIHRvdWNoLWRldmljZXMsIGkuZS4gYSBgPHNwYW4+YCBlbGVtZW50IGluIHRoZSBidXR0b24uXG4gKiBbMTBdIFByZXZlbnQgdGhlIHBhZGRpbmcgZnJvbSBiZWNvbWluZyBuZWdhdGl2ZS5cbiAqIFsxMV0gQWx0aG91Z2ggdGhpcyBkZWNsYXJhdGlvbiBpcyBpbiBhbiBpZi1jb25kaXRpb24gdGhhdCBvbmx5IG1hdGNoZXMgZm9yXG4gKiAgICAgIGZpeGVkIGhlaWdodCBidXR0b25zLCBpdCBpcyBzdGlsbCBhIHNlbnNpYmxlIGlkZWEgdG8gYXNzaWduIGFcbiAqICAgICAgbWluLWhlaWdodCByYXRoZXIgdGhhbiBhIGZpeGVkIGhlaWdodCwgc28gdGhlIGJ1dHRvbiBncm93cyBpZiB0aGUgdGV4dFxuICogICAgICBkb2VzIG5vdCBmaXQgdmVydGljYWxseS5cbiAqIFsxMl0gUmVtb3ZlIHRyYW5zaXRpb24gY2F1c2luZyBkZWxheSB3aXRoIGFuaW1hdGlvbiBvZiB0aGUgaW5uZXIgaWNvbiBvZiB0aGVcbiAqICAgICAgYC5jLWJ0bi0taWNvbmAgdmFyaWFudCBvbiBob3Zlci4gVGhpcyBlZmZlY3Qgd291bGQgYmUgdmlzaWJsZSBpZiB0aGVcbiAqICAgICAgdGV4dC0gYW5kIGljb24tY29sb3Igd291bGQgY2hhbmdlIG9uIGhvdmVyLlxuICogWzEzXSBMaW1pdCB0aGUgaGVpZ2h0IG9mIGAuYy1idG4tLWxpbmtgLCBzbyBpdCBkb2VzIG5vdCBpbmhlcml0IGl0cyBoZWlnaHRcbiAqICAgICAgZnJvbSBgLmMtYnRuYCBhbmQgb25seSB0YWtlcyB1cCB0aGUgaGVpZ2h0IGl0IG5lZWRzLlxuICogWzE0XSBPdmVycmlkZSBsaW5lLWhlaWdodCwgc2V0IGJ5IGRlZmF1bHQgYnV0dG9uIGNvbXBvbmVudC4gVGhpcyBpcyBuZWVkZWQsIHNvXG4gKiAgICAgIHRoYXQgdGhlIGljb24gZ2V0cyBpdHMgY29ycmVjdCBoZWlnaHQuXG4gKiBbMTVdIEFsaWduIHRoZSBjb250ZW50IGxlZnQgZm9yIGxpbmsgYnV0dG9ucy4gVGhpcyBvbmx5IGhhcyBhbiBlZmZlY3QgaWZcbiAqICAgICAgdGhlIGJ1dHRvbiBpcyBsYXJnZXIgdGhhbiBpdHMgY29udGVudCwgZS5nLiB3aGVuIGNvbWJpbmluZyBhXG4gKiAgICAgIGAuYy1idG4tLWxpbmtgIHdpdGggYC5jLWJ0bi0tZnVsbGAuXG4gKiBbMTZdIElmIHRoZSBpY29uIG9ubHkgdmFyaWFudCBuZWVkcyBhIHNwZWNpYWwgYm9yZGVyLXJhZGl1cywgaS5lLiBWVzYuXG4gKiBbMTddIEFsc28gYXBwbHkgZm9jdXMgc3R5bGVzIHdoZW4gYW4gZWxlbWVudCBpcyBmb2N1c2VkIHRoYXQgaXMgYSBjaGlsZFxuICogICAgICBvZiBhIHNoYXJlZCBwYXJlbnQgZWxlbWVudC4gVGhpcyBpcyBuZWVkZWQgZm9yIGJ1dHRvbnMgaW4gdGhlXG4gKiAgICAgIHVwbG9hZCBjb21wb25lbnQgKGAuYy11cGxvYWRgKS5cbiAqIFsxOF0gVGhlIG5hdGl2ZSBgZGlzYWJsZWRgIGF0dHJpYnV0ZSBwcmV2ZW50c2A6aG92ZXJgIGFuZCBgOmFjdGl2ZWAgZXZlbnRzLFxuICogICAgICBidXQgd2UgbmVlZCB0byBwcm9hY3RpdmVseSBleGNsdWRlIHN5bnRoZXRpYyBgLmlzLWRpc2FibGVkYCBzZWxlY3RvcnNcbiAqICAgICAgZnJvbSByZWNlaXZpbmcgYDphY3RpdmVgIHN0eWxlcy5cbiAqIFsxOV0gV2l0aG91dCBhIHRyYW5zcGFyZW50IGJvcmRlciB0aGUgbGluayB3aWxsIFwianVtcFwiIG9uIGhvdmVyLlxuICogWzIwXSBSYWlzZSB0aGUgc3BlY2lmaWNpdHkgdG8gcHJldmVudCBsZWFrcyBmcm9tIGAuYy1idG4tLXNlY29uZGFyeWAgaW4gYSB0aGVtZSBjb250ZXh0LlxuICogICAgICBAVE9ETzogVGhpcyBpcyBkZWZpbml0ZWx5IGEgY29kZSBzbWVsbCBhbmQgc2hvdWxkIGJlIHJlZmFjdG9yZWQuXG4gKiAgICAgICAgICAgICBodHRwczovL2ppcmEucGxhdGZvcm0udndmcy5pby9icm93c2UvQlJPTi02NzA5XG4gKiBbMjFdIE1hcmdpbiBiZXR3ZWVuIGljb24gYW5kIHRleHQuXG4gKiBbMjJdIE5lZ2F0aXZlIGhvcml6b250YWwgaWNvbiBtYXJnaW4gdGhhdCBjZW50ZXJzIHRoZSBpY29uIHdoZW4gY29sbGFwc2VkIGFuZFxuICogICAgICBlbnN1cmVzIHRoYXQgaXQgcmVtYWlucyBmaXhlZCBkdXJpbmcgdGhlIHRyYW5zaXRpb24uXG4gKiBbMjNdIFdlIGRvbuKAmXQgd2FudCB0aGUgY2VudGVyZWQgYWxpZ25tZW50IG9mIHRoZSBkZWZhdWx0IGJ1dHRvbiBoZXJlLFxuICogWzI0XSBTaW5jZSB0aGUgSW5jb2duaXRvIGljb24gaXMgYWx3YXlzIHNxdWFyZSwgb3IgY2lyY3VsYXIsIHdoZW4gY29sbGFwc2VkLFxuICogICAgICBpdCBtdXN0IGJlIGF0IGxlYXN0IGFzIHdpZGUgYXMgaXQgaXMgdGFsbC5cbiAqIFsyNV0gV2UgbmVlZCBhIG1heGltdW0gd2lkdGggc28gdGhhdCB0aGUgZXhwYW5kZWQgSW5jb2duaXRvIGJ1dHRvblxuICogICAgICAod2hlbiB1c2VkIGluIHRoZSBGbG9hdCBHcmlkKSBpcyBub3Qgd2lkZXIgdGhhbiB0aGUgdmlld3BvcnQuXG4gKiBbMjZdIFdlIG5lZWQgdG8gaGlkZSBvdmVyZmxvd2luZyBjb250ZW50IG90aGVyd2lzZSB0aGUgdGV4dCB3b3VsZCBiZVxuICogICAgICB2aXNpYmxlIGR1cmluZyB0aGUgdHJhbnNpdGlvbi5cbiAqIFsyN10gVHJ1bmNhdGUgdGhlIHRleHQgd2l0aCBhbiBlbGxpcHNlICjigKYpIGlmIGl0IGRvZXMgbm90IGZpdC5cbiAqIFsyOF0gVXNlIENTUyBjdXN0b20gcHJvcGVydGllcyBjb25kaXRpb25hbHMgdG8gY29udHJvbCB0aGUgdGhlIGNvbGxhcHNlZFxuICogICAgICBzdGF0ZSB3aGVyZSB0aGUgdGV4dCBpcyBoaWRkZW4gYW5kIG9ubHkgdGhlIGljb24gaXMgc2hvd24uIFRoaXMgd2F5IHdlXG4gKiAgICAgIGNvbnRyb2wgZW5hYmxlIHRoZSBjb2xsYXBzZWQgc3RhdGUgZnJvbSBvdGhlciBjb21wb25lbnRzIGFzIHdlbGwuXG4gKiAgICAgIExlYXJuIG1vcmUgYWJvdXQgdGhpcyB0ZWNobmlxdWUgaGVyZTpcbiAqICAgICAgLSBodHRwczovL2Rldi50by9zaWRkaGFydGhzaHluaWJlbi9jb25kaXRpb25hbC1sb2dpYy13aXRoLWNzcy10aGUtY3NzLWN1c3RvbS1wcm9wZXJ0eS10cmljay00NGhiXG4gKiAgICAgIC0gaHR0cHM6Ly9sZWEudmVyb3UubWUvMjAyMC8xMC90aGUtdmFyLXNwYWNlLWhhY2stdG8tdG9nZ2xlLW11bHRpcGxlLXZhbHVlcy13aXRoLW9uZS1jdXN0b20tcHJvcGVydHkvXG4gKiBbMjldIFdoZW4gdGhlIHJldmVyc2Ugc2VsZWN0b3IgaXMgYXBwbGllZCwgcmV2ZXJzZSB0aGUgZmxleC1mbG93IG9mIHRoZSBidXR0b24uXG4gKiAgICAgIEZvcmNlIHRoZSBmbGV4LW9yZGVyIG9mIHRoZSBpY29uIGVsZW1lbnQgYC5jLWJ0bl9faWNvbmAgdG8gYWx3YXlzIGJlIGRpc3BsYXllZCBmaXJzdFxuICogICAgICB3aGVuIGl0IGlzIHRoZSBmaXJzdCBjaGlsZCBlbGVtZW50IG9mIHRoZSBidXR0b24uXG4gKiBbMzBdIFJlc2V0IGFsbCBidXR0b24gY2hpbGQgZWxlbWVudHMgc3BhY2luZ3MgYW5kIGFwcGx5IHRoZW0gdmlhIGBjb2x1bW4tZ2FwYFxuICogICAgICBvbiB0aGUgbWFpbiBidXR0b24gZWxlbWVudC5cbiAqIFszMV0gRW5zdXJlIGljb24gaXMgY2VudGVyZWQgaG9yaXpvbnRhbGx5ICYgdmVydGljYWxseS5cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LWNsYXNzLCBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbi5jLWJ0biB7XG4gIC0tYnV0dG9uLWhlaWdodDogNDRweDtcbiAgLS1idXR0b24tcGFkZGluZy1ob3Jpem9udGFsOiAyNHB4O1xuICAtLWJ1dHRvbi1wYWRkaW5nLXZlcnRpY2FsOiAwOyAvKiBbMTBdICovXG4gIC0tYnV0dG9uLWljb24tc2l6ZTogMjRweDtcbiAgLS1idXR0b24tdGV4dC1pY29uLXNwYWNpbmc6IDhweDtcbiAgLS1idXR0b24tYm9yZGVyLXdpZHRoOiAwcHg7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgbGVuZ3RoLXplcm8tbm8tdW5pdCAqL1xuICBmb250LXNpemU6IDFyZW07XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgLyogWzFdICovXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIFsyXSAqL1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogWzJdICovXG4gIGZsZXgtZGlyZWN0aW9uOiB2YXIoLS1idXR0b24tZmxleC1kaXJlY3Rpb24sIHJvdyk7XG4gIHBhZGRpbmc6IHZhcigtLWJ1dHRvbi1wYWRkaW5nLXZlcnRpY2FsKSB2YXIoLS1idXR0b24tcGFkZGluZy1ob3Jpem9udGFsKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgZm9udC1mYW1pbHk6IFwic2tvZGEtbmV4dFwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgLyogWzRdICovXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1iYWNrZ3JvdW5kKTtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0LWNvbG9yKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tYnV0dG9uLWJveC1zaGFkb3cpO1xuICBjdXJzb3I6IHBvaW50ZXI7IC8qIFszXSAqL1xuICBtaW4taGVpZ2h0OiA0NHB4OyAvKiBbMTFdICovXG4gIC8qKlxuICAgKiBbMV0gQ2hlY2sgaWYgYSB0aGVtZSBpcyBzZXQgb3IgaWYgdGhlIGRlZmF1bHQgdGhlbWUgKG51bGwpIGlzIHVzZWQuXG4gICAqICAgICBJZiB0aGUgYGRlZmF1bHRgIHRoZW1lIGlzIHVzZWQgd2UgZXhlY3V0ZSB0aGUgYWxyZWFkeSBwcmVzZW50IGxvZ2ljLFxuICAgKiAgICAgZWxzZSB3ZSBqdXN0IHJldHVybiB0aGUgY29udGVudCB1bndyYXBwZWQuXG4gICAqL1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi5jLWJ0biB7XG4gIC0tYnV0dG9uLWJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLXByaW1hcnktYm9yZGVyLWNvbG9yKTtcbiAgLS1idXR0b24tYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZCwgIzc4ZmFhZSk7XG4gIC0tYnV0dG9uLXRleHQtY29sb3I6IHZhcigtLWJ1dHRvbi1wcmltYXJ5LXRleHQtY29sb3IsICMxNjE3MTgpO1xuICAtLWJ1dHRvbi1ib3gtc2hhZG93OiB2YXIoLS1idXR0b24tcHJpbWFyeS1ib3gtc2hhZG93KTtcbiAgLS1idXR0b24tYm9yZGVyLXdpZHRoOiAwO1xuICBib3JkZXItd2lkdGg6IHZhcigtLWJ1dHRvbi1ib3JkZXItd2lkdGgpO1xuICAvKipcbiAgICogQFRPRE86IG5lZWRzIHJlZmFjdG9yaW5nLCBzZWUgWzddXG4gICAqIE9wdC1vdXQgYnRuLS1saW5rIHN0eWxlcyBmb3IgYWN0aW9uIGJ1dHRvbnMuXG4gICAqXG4gICAqIGBhY3Rpb25gIG1vZGlmaWVyIGNhbiBub3QgYmUgY29tYmluZWQgd2l0aCBgbGlua2BcbiAgICogYXZvaWQgdW5uZWNlc3Nhcnkgc3R5bGUgZ2VuZXJhdGlvblxuICAgKi9cbn1cbi5jLWJ0bjpob3ZlciwgLmMtYnRuOmZvY3VzLCBsYWJlbDpmb2N1cy13aXRoaW4gLmMtYnRuIHsgLyogWzE3XSAqL1xuICAtLWJ1dHRvbi1ib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1wcmltYXJ5LWJvcmRlci1jb2xvci1ob3Zlcik7XG4gIC0tYnV0dG9uLWJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQtaG92ZXIsICNhOGZmY2MpO1xuICAtLWJ1dHRvbi10ZXh0LWNvbG9yOiB2YXIoLS1idXR0b24tcHJpbWFyeS10ZXh0LWNvbG9yLWhvdmVyKTtcbiAgLS1idXR0b24tYm94LXNoYWRvdzogdmFyKC0tYnV0dG9uLXByaW1hcnktYm94LXNoYWRvdy1ob3Zlcik7XG59XG4uYy1idG46bm90KC5pcy1kaXNhYmxlZCk6YWN0aXZlIHsgLyogWzE4XSAqL1xuICAtLWJ1dHRvbi1ib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1wcmltYXJ5LWJvcmRlci1jb2xvci1hY3RpdmUpO1xuICAtLWJ1dHRvbi1iYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kLWFjdGl2ZSwgI2E4ZmZjYyk7XG4gIC0tYnV0dG9uLXRleHQtY29sb3I6IHZhcigtLWJ1dHRvbi1wcmltYXJ5LXRleHQtY29sb3ItYWN0aXZlKTtcbiAgLS1idXR0b24tYm94LXNoYWRvdzogdmFyKC0tYnV0dG9uLXByaW1hcnktYm94LXNoYWRvdy1hY3RpdmUpO1xufVxuLmMtYnRuW2Rpc2FibGVkXSwgLmMtYnRuLmlzLWRpc2FibGVkIHtcbiAgLS1idXR0b24tYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tcHJpbWFyeS1ib3JkZXItY29sb3ItZGlzYWJsZWQpO1xuICAtLWJ1dHRvbi1iYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kLWRpc2FibGVkLCAjZDhkOGQ4KTtcbiAgLS1idXR0b24tdGV4dC1jb2xvcjogdmFyKC0tYnV0dG9uLXByaW1hcnktdGV4dC1jb2xvci1kaXNhYmxlZCwgIzllOWZhMCk7XG4gIC0tYnV0dG9uLWJveC1zaGFkb3c6IHZhcigtLWJ1dHRvbi1wcmltYXJ5LWJveC1zaGFkb3ctZGlzYWJsZWQpO1xufVxuLmMtYnRuW2Rpc2FibGVkXTpob3ZlciwgLmMtYnRuW2Rpc2FibGVkXTpmb2N1cywgLmMtYnRuLmlzLWRpc2FibGVkOmhvdmVyLCAuYy1idG4uaXMtZGlzYWJsZWQ6Zm9jdXMge1xuICAtLWJ1dHRvbi1ib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1wcmltYXJ5LWJvcmRlci1jb2xvci1kaXNhYmxlZC1ob3Zlcik7XG4gIC0tYnV0dG9uLWJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQtZGlzYWJsZWQtaG92ZXIpO1xuICAtLWJ1dHRvbi10ZXh0LWNvbG9yOiB2YXIoLS1idXR0b24tcHJpbWFyeS10ZXh0LWNvbG9yLWRpc2FibGVkLWhvdmVyKTtcbiAgLS1idXR0b24tYm94LXNoYWRvdzogdmFyKC0tYnV0dG9uLXByaW1hcnktYm94LXNoYWRvdy1kaXNhYmxlZC1ob3Zlcik7XG59XG4uYy1idG4uYy1idG4tLWxpbmsge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyAvKiBbMTVdICovXG59XG4uYy1idG4uYy1idG4tLWxpbms6aG92ZXIsIC5jLWJ0bi5jLWJ0bi0tbGluazpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uYy1idG4uYy1idG4tLWxpbms6aG92ZXIgLmMtYnRuX190ZXh0LCAuYy1idG4uYy1idG4tLWxpbms6Zm9jdXMgLmMtYnRuX190ZXh0IHtcbiAgY29sb3I6ICM0MTk0Njg7XG59XG4uYy1idG4uYy1idG4tLWxpbms6aG92ZXIgLmMtYnRuX19pY29uLCAuYy1idG4uYy1idG4tLWxpbms6Zm9jdXMgLmMtYnRuX19pY29uIHtcbiAgY29sb3I6ICM0MTk0Njg7XG59XG4uYy1idG4uYy1idG4tLWxpbms6bm90KC5pcy1kaXNhYmxlZCk6YWN0aXZlIHsgLyogWzE4XSAqLyB9XG4uYy1idG4uYy1idG4tLWxpbmsgLmMtYnRuX190ZXh0IHtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uYy1idG4uYy1idG4tLWxpbmsgLmMtYnRuX19pY29uIHtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uYy1idG4uYy1idG4tLWxpbmtbZGlzYWJsZWRdIC5jLWJ0bl9fdGV4dCwgLmMtYnRuLmMtYnRuLS1saW5rLmlzLWRpc2FibGVkIC5jLWJ0bl9fdGV4dCB7XG4gIGNvbG9yOiAjYzRjNmM3O1xufVxuLmMtYnRuLmMtYnRuLS1saW5rW2Rpc2FibGVkXSAuYy1idG5fX2ljb24sIC5jLWJ0bi5jLWJ0bi0tbGluay5pcy1kaXNhYmxlZCAuYy1idG5fX2ljb24ge1xuICBjb2xvcjogI2M0YzZjNztcbn1cbi5jLWJ0bi5jLWJ0bi0tc2ltcGxlLmMtYnRuLS1zaW1wbGUgeyAvKiBbN10gKi8gfVxuLmMtYnRuLmMtYnRuLS1zaW1wbGUuYy1idG4tLXNpbXBsZSAuYy1idG5fX2ljb246OmJlZm9yZSB7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cbi5jLWJ0bi5jLWJ0bi0taWNvbi1vbmx5LmMtYnRuLS1pY29uLW9ubHkgeyAvKiBbN10gKi9cbiAgbWluLXdpZHRoOiAwO1xuICBib3JkZXI6IDAgc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3OGZhYWU7XG59XG4uYy1idG4uYy1idG4tLWljb24tb25seS5jLWJ0bi0taWNvbi1vbmx5IC5jLWJ0bl9faWNvbiB7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtYnRuLmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLWljb24tb25seTpob3ZlciwgLmMtYnRuLmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLWljb24tb25seTpmb2N1cyB7XG4gIGJvcmRlcjogMCBzb2xpZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZmZjYztcbn1cbi5jLWJ0bi5jLWJ0bi0taWNvbi1vbmx5LmMtYnRuLS1pY29uLW9ubHk6bm90KC5pcy1kaXNhYmxlZCk6YWN0aXZlIHsgLyogWzE4XSAqL1xuICBib3JkZXI6IDAgc29saWQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhOGZmY2M7XG59XG4uYy1idG4uYy1idG4tLWljb24tb25seS5jLWJ0bi0taWNvbi1vbmx5W2Rpc2FibGVkXSwgLmMtYnRuLmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLWljb24tb25seS5pcy1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOGQ4ZDg7XG59XG4uYy1idG4uYy1idG4tLWljb24tb25seS5jLWJ0bi0taWNvbi1vbmx5W2Rpc2FibGVkXSAuYy1idG5fX2ljb24sIC5jLWJ0bi5jLWJ0bi0taWNvbi1vbmx5LmMtYnRuLS1pY29uLW9ubHkuaXMtZGlzYWJsZWQgLmMtYnRuX19pY29uIHtcbiAgY29sb3I6ICM5ZTlmYTA7XG59XG5cbi5jLWJ0bi5jLWJ0bi0tc2Vjb25kYXJ5IHtcbiAgLS1idXR0b24tYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tc2Vjb25kYXJ5LWJvcmRlci1jb2xvcik7XG4gIC0tYnV0dG9uLWJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZCwgIzQ2NDc0OCk7XG4gIC0tYnV0dG9uLXRleHQtY29sb3I6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktdGV4dC1jb2xvciwgI2ZmZmZmZik7XG4gIC0tYnV0dG9uLWJveC1zaGFkb3c6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktYm94LXNoYWRvdyk7XG4gIGJvcmRlci13aWR0aDogdmFyKC0tYnV0dG9uLWJvcmRlci13aWR0aCk7XG4gIC8qKlxuICAgKiBAVE9ETzogbmVlZHMgcmVmYWN0b3JpbmcsIHNlZSBbN11cbiAgICogT3B0LW91dCBidG4tLWxpbmsgc3R5bGVzIGZvciBhY3Rpb24gYnV0dG9ucy5cbiAgICpcbiAgICogYGFjdGlvbmAgbW9kaWZpZXIgY2FuIG5vdCBiZSBjb21iaW5lZCB3aXRoIGBsaW5rYFxuICAgKiBhdm9pZCB1bm5lY2Vzc2FyeSBzdHlsZSBnZW5lcmF0aW9uXG4gICAqL1xufVxuLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnk6aG92ZXIsIC5jLWJ0bi5jLWJ0bi0tc2Vjb25kYXJ5OmZvY3VzLCBsYWJlbDpmb2N1cy13aXRoaW4gLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnkgeyAvKiBbMTddICovXG4gIC0tYnV0dG9uLWJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLXNlY29uZGFyeS1ib3JkZXItY29sb3ItaG92ZXIpO1xuICAtLWJ1dHRvbi1iYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQtaG92ZXIsICM1YTViNWMpO1xuICAtLWJ1dHRvbi10ZXh0LWNvbG9yOiB2YXIoLS1idXR0b24tc2Vjb25kYXJ5LXRleHQtY29sb3ItaG92ZXIsICNmZmZmZmYpO1xuICAtLWJ1dHRvbi1ib3gtc2hhZG93OiB2YXIoLS1idXR0b24tc2Vjb25kYXJ5LWJveC1zaGFkb3ctaG92ZXIpO1xufVxuLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnk6bm90KC5pcy1kaXNhYmxlZCk6YWN0aXZlIHsgLyogWzE4XSAqL1xuICAtLWJ1dHRvbi1ib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktYm9yZGVyLWNvbG9yLWFjdGl2ZSk7XG4gIC0tYnV0dG9uLWJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZC1hY3RpdmUsICM1YTViNWMpO1xuICAtLWJ1dHRvbi10ZXh0LWNvbG9yOiB2YXIoLS1idXR0b24tc2Vjb25kYXJ5LXRleHQtY29sb3ItYWN0aXZlLCAjZmZmZmZmKTtcbiAgLS1idXR0b24tYm94LXNoYWRvdzogdmFyKC0tYnV0dG9uLXNlY29uZGFyeS1ib3gtc2hhZG93LWFjdGl2ZSk7XG59XG4uYy1idG4uYy1idG4tLXNlY29uZGFyeVtkaXNhYmxlZF0sIC5jLWJ0bi5jLWJ0bi0tc2Vjb25kYXJ5LmlzLWRpc2FibGVkIHtcbiAgLS1idXR0b24tYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tc2Vjb25kYXJ5LWJvcmRlci1jb2xvci1kaXNhYmxlZCk7XG4gIC0tYnV0dG9uLWJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZC1kaXNhYmxlZCwgI2Q4ZDhkOCk7XG4gIC0tYnV0dG9uLXRleHQtY29sb3I6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktdGV4dC1jb2xvci1kaXNhYmxlZCwgIzllOWZhMCk7XG4gIC0tYnV0dG9uLWJveC1zaGFkb3c6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktYm94LXNoYWRvdy1kaXNhYmxlZCk7XG59XG4uYy1idG4uYy1idG4tLXNlY29uZGFyeVtkaXNhYmxlZF06aG92ZXIsIC5jLWJ0bi5jLWJ0bi0tc2Vjb25kYXJ5W2Rpc2FibGVkXTpmb2N1cywgLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnkuaXMtZGlzYWJsZWQ6aG92ZXIsIC5jLWJ0bi5jLWJ0bi0tc2Vjb25kYXJ5LmlzLWRpc2FibGVkOmZvY3VzIHtcbiAgLS1idXR0b24tYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tc2Vjb25kYXJ5LWJvcmRlci1jb2xvci1kaXNhYmxlZC1ob3Zlcik7XG4gIC0tYnV0dG9uLWJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZC1kaXNhYmxlZC1ob3Zlcik7XG4gIC0tYnV0dG9uLXRleHQtY29sb3I6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktdGV4dC1jb2xvci1kaXNhYmxlZC1ob3Zlcik7XG4gIC0tYnV0dG9uLWJveC1zaGFkb3c6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktYm94LXNoYWRvdy1kaXNhYmxlZC1ob3Zlcik7XG59XG4uYy1idG4uYy1idG4tLXNlY29uZGFyeS5jLWJ0bi0tbGluayB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IC8qIFsxNV0gKi9cbn1cbi5jLWJ0bi5jLWJ0bi0tc2Vjb25kYXJ5LmMtYnRuLS1saW5rOmhvdmVyLCAuYy1idG4uYy1idG4tLXNlY29uZGFyeS5jLWJ0bi0tbGluazpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uYy1idG4uYy1idG4tLXNlY29uZGFyeS5jLWJ0bi0tbGluazpob3ZlciAuYy1idG5fX2ljb24sIC5jLWJ0bi5jLWJ0bi0tc2Vjb25kYXJ5LmMtYnRuLS1saW5rOmZvY3VzIC5jLWJ0bl9faWNvbiB7XG4gIGNvbG9yOiAjNDE5NDY4O1xufVxuLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnkuYy1idG4tLWxpbms6bm90KC5pcy1kaXNhYmxlZCk6YWN0aXZlIHsgLyogWzE4XSAqLyB9XG4uYy1idG4uYy1idG4tLXNlY29uZGFyeS5jLWJ0bi0tbGluayAuYy1idG5fX2ljb24ge1xuICBjb2xvcjogIzE2MTcxODtcbn1cbi5jLWJ0bi5jLWJ0bi0tc2Vjb25kYXJ5LmMtYnRuLS1saW5rW2Rpc2FibGVkXSAuYy1idG5fX2ljb24sIC5jLWJ0bi5jLWJ0bi0tc2Vjb25kYXJ5LmMtYnRuLS1saW5rLmlzLWRpc2FibGVkIC5jLWJ0bl9faWNvbiB7XG4gIGNvbG9yOiAjYzRjNmM3O1xufVxuLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnkuYy1idG4tLXNpbXBsZS5jLWJ0bi0tc2ltcGxlIHsgLyogWzddICovIH1cbi5jLWJ0bi5jLWJ0bi0tc2Vjb25kYXJ5LmMtYnRuLS1zaW1wbGUuYy1idG4tLXNpbXBsZSAuYy1idG5fX2ljb246OmJlZm9yZSB7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cbi5jLWJ0bi5jLWJ0bi0tc2Vjb25kYXJ5LmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLWljb24tb25seSB7IC8qIFs3XSAqL1xuICBtaW4td2lkdGg6IDA7XG4gIGJvcmRlcjogMCBzb2xpZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uYy1idG4uYy1idG4tLXNlY29uZGFyeS5jLWJ0bi0taWNvbi1vbmx5LmMtYnRuLS1pY29uLW9ubHk6aG92ZXIsIC5jLWJ0bi5jLWJ0bi0tc2Vjb25kYXJ5LmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLWljb24tb25seTpmb2N1cyB7XG4gIGJvcmRlcjogMCBzb2xpZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMiwgMjMsIDI0LCAwLjA2KTtcbn1cbi5jLWJ0bi5jLWJ0bi0tc2Vjb25kYXJ5LmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLWljb24tb25seTpub3QoLmlzLWRpc2FibGVkKTphY3RpdmUgeyAvKiBbMThdICovXG4gIGJvcmRlcjogMCBzb2xpZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMiwgMjMsIDI0LCAwLjA2KTtcbn1cbi5jLWJ0bi5jLWJ0bi0tc2Vjb25kYXJ5LmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLWljb24tb25seVtkaXNhYmxlZF0sIC5jLWJ0bi5jLWJ0bi0tc2Vjb25kYXJ5LmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLWljb24tb25seS5pcy1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOGQ4ZDg7XG59XG4uYy1idG4uYy1idG4tLXNlY29uZGFyeS5jLWJ0bi0taWNvbi1vbmx5LmMtYnRuLS1pY29uLW9ubHlbZGlzYWJsZWRdIC5jLWJ0bl9faWNvbiwgLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnkuYy1idG4tLWljb24tb25seS5jLWJ0bi0taWNvbi1vbmx5LmlzLWRpc2FibGVkIC5jLWJ0bl9faWNvbiB7XG4gIGNvbG9yOiAjOWU5ZmEwO1xufVxuXG4uYy1idG4uYy1idG4tLWFjdGlvbiB7XG4gIC0tYnV0dG9uLWJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWFjdGlvbi1ib3JkZXItY29sb3IpO1xuICAtLWJ1dHRvbi1iYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24tYWN0aW9uLWJhY2tncm91bmQsICM3OGZhYWUpO1xuICAtLWJ1dHRvbi10ZXh0LWNvbG9yOiB2YXIoLS1idXR0b24tYWN0aW9uLXRleHQtY29sb3IpO1xuICAtLWJ1dHRvbi1ib3gtc2hhZG93OiB2YXIoLS1idXR0b24tYWN0aW9uLWJveC1zaGFkb3cpO1xuICAtLWJ1dHRvbi1wYWRkaW5nLWhvcml6b250YWw6IGNhbGModmFyKC0tYnV0dG9uLWhlaWdodCkgLyAyKTtcbiAgLS1idXR0b24tYm9yZGVyLXdpZHRoOiAwcHg7XG4gIGJvcmRlci13aWR0aDogdmFyKC0tYnV0dG9uLWJvcmRlci13aWR0aCk7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tYnV0dG9uLWhlaWdodCkgLyAyKTtcbiAgLyoqXG4gICAqIEBUT0RPOiBuZWVkcyByZWZhY3RvcmluZywgc2VlIFs3XVxuICAgKiBPcHQtb3V0IGJ0bi0tbGluayBzdHlsZXMgZm9yIGFjdGlvbiBidXR0b25zLlxuICAgKlxuICAgKiBgYWN0aW9uYCBtb2RpZmllciBjYW4gbm90IGJlIGNvbWJpbmVkIHdpdGggYGxpbmtgXG4gICAqIGF2b2lkIHVubmVjZXNzYXJ5IHN0eWxlIGdlbmVyYXRpb25cbiAgICovXG59XG4uYy1idG4uYy1idG4tLWFjdGlvbjpob3ZlciwgLmMtYnRuLmMtYnRuLS1hY3Rpb246Zm9jdXMsIGxhYmVsOmZvY3VzLXdpdGhpbiAuYy1idG4uYy1idG4tLWFjdGlvbiB7IC8qIFsxN10gKi9cbiAgLS1idXR0b24tYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tYWN0aW9uLWJvcmRlci1jb2xvci1ob3Zlcik7XG4gIC0tYnV0dG9uLWJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1hY3Rpb24tYmFja2dyb3VuZC1ob3ZlciwgI2E4ZmZjYyk7XG4gIC0tYnV0dG9uLXRleHQtY29sb3I6IHZhcigtLWJ1dHRvbi1hY3Rpb24tdGV4dC1jb2xvci1ob3Zlcik7XG4gIC0tYnV0dG9uLWJveC1zaGFkb3c6IHZhcigtLWJ1dHRvbi1hY3Rpb24tYm94LXNoYWRvdy1ob3Zlcik7XG59XG4uYy1idG4uYy1idG4tLWFjdGlvbjpub3QoLmlzLWRpc2FibGVkKTphY3RpdmUgeyAvKiBbMThdICovXG4gIC0tYnV0dG9uLWJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWFjdGlvbi1ib3JkZXItY29sb3ItYWN0aXZlKTtcbiAgLS1idXR0b24tYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWFjdGlvbi1iYWNrZ3JvdW5kLWFjdGl2ZSwgI2E4ZmZjYyk7XG4gIC0tYnV0dG9uLXRleHQtY29sb3I6IHZhcigtLWJ1dHRvbi1hY3Rpb24tdGV4dC1jb2xvci1hY3RpdmUpO1xuICAtLWJ1dHRvbi1ib3gtc2hhZG93OiB2YXIoLS1idXR0b24tYWN0aW9uLWJveC1zaGFkb3ctYWN0aXZlKTtcbn1cbi5jLWJ0bi5jLWJ0bi0tYWN0aW9uW2Rpc2FibGVkXSwgLmMtYnRuLmMtYnRuLS1hY3Rpb24uaXMtZGlzYWJsZWQge1xuICAtLWJ1dHRvbi1ib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1hY3Rpb24tYm9yZGVyLWNvbG9yLWRpc2FibGVkKTtcbiAgLS1idXR0b24tYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWFjdGlvbi1iYWNrZ3JvdW5kLWRpc2FibGVkLCAjZDhkOGQ4KTtcbiAgLS1idXR0b24tdGV4dC1jb2xvcjogdmFyKC0tYnV0dG9uLWFjdGlvbi10ZXh0LWNvbG9yLWRpc2FibGVkLCAjOWU5ZmEwKTtcbiAgLS1idXR0b24tYm94LXNoYWRvdzogdmFyKC0tYnV0dG9uLWFjdGlvbi1ib3gtc2hhZG93LWRpc2FibGVkKTtcbn1cbi5jLWJ0bi5jLWJ0bi0tYWN0aW9uW2Rpc2FibGVkXTpob3ZlciwgLmMtYnRuLmMtYnRuLS1hY3Rpb25bZGlzYWJsZWRdOmZvY3VzLCAuYy1idG4uYy1idG4tLWFjdGlvbi5pcy1kaXNhYmxlZDpob3ZlciwgLmMtYnRuLmMtYnRuLS1hY3Rpb24uaXMtZGlzYWJsZWQ6Zm9jdXMge1xuICAtLWJ1dHRvbi1ib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1hY3Rpb24tYm9yZGVyLWNvbG9yLWRpc2FibGVkLWhvdmVyKTtcbiAgLS1idXR0b24tYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWFjdGlvbi1iYWNrZ3JvdW5kLWRpc2FibGVkLWhvdmVyKTtcbiAgLS1idXR0b24tdGV4dC1jb2xvcjogdmFyKC0tYnV0dG9uLWFjdGlvbi10ZXh0LWNvbG9yLWRpc2FibGVkLWhvdmVyKTtcbiAgLS1idXR0b24tYm94LXNoYWRvdzogdmFyKC0tYnV0dG9uLWFjdGlvbi1ib3gtc2hhZG93LWRpc2FibGVkLWhvdmVyKTtcbn1cbi5jLWJ0bi5jLWJ0bi0tYWN0aW9uLmMtYnRuLS1zaW1wbGUuYy1idG4tLXNpbXBsZSB7IC8qIFs3XSAqLyB9XG4uYy1idG4uYy1idG4tLWFjdGlvbi5jLWJ0bi0tc2ltcGxlLmMtYnRuLS1zaW1wbGUgLmMtYnRuX19pY29uOjpiZWZvcmUge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG59XG4uYy1idG4uYy1idG4tLWFjdGlvbi5jLWJ0bi0taWNvbi1vbmx5LmMtYnRuLS1pY29uLW9ubHkgeyAvKiBbN10gKi9cbiAgbWluLXdpZHRoOiAwO1xuICBib3JkZXI6IDAgc29saWQ7XG59XG4uYy1idG4uYy1idG4tLWFjdGlvbi5jLWJ0bi0taWNvbi1vbmx5LmMtYnRuLS1pY29uLW9ubHk6aG92ZXIsIC5jLWJ0bi5jLWJ0bi0tYWN0aW9uLmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLWljb24tb25seTpmb2N1cyB7XG4gIGJvcmRlcjogMCBzb2xpZDtcbn1cbi5jLWJ0bi5jLWJ0bi0tYWN0aW9uLmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLWljb24tb25seTpub3QoLmlzLWRpc2FibGVkKTphY3RpdmUgeyAvKiBbMThdICovXG4gIGJvcmRlcjogMCBzb2xpZDtcbn1cbi5jLWJ0bi5jLWJ0bi0tYWN0aW9uLmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLWljb24tb25seVtkaXNhYmxlZF0sIC5jLWJ0bi5jLWJ0bi0tYWN0aW9uLmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLWljb24tb25seS5pcy1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOGQ4ZDg7XG59XG4uYy1idG4uYy1idG4tLWFjdGlvbi5jLWJ0bi0taWNvbi1vbmx5LmMtYnRuLS1pY29uLW9ubHlbZGlzYWJsZWRdIC5jLWJ0bl9faWNvbiwgLmMtYnRuLmMtYnRuLS1hY3Rpb24uYy1idG4tLWljb24tb25seS5jLWJ0bi0taWNvbi1vbmx5LmlzLWRpc2FibGVkIC5jLWJ0bl9faWNvbiB7XG4gIGNvbG9yOiAjOWU5ZmEwO1xufVxuXG4vKiBbMV0gKi9cbltkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4ge1xuICAtLWJ1dHRvbi1ib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1wcmltYXJ5LWJvcmRlci1jb2xvcik7XG4gIC0tYnV0dG9uLWJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQsICM3OGZhYWUpO1xuICAtLWJ1dHRvbi10ZXh0LWNvbG9yOiB2YXIoLS1idXR0b24tcHJpbWFyeS10ZXh0LWNvbG9yLCAjMTYxNzE4KTtcbiAgLS1idXR0b24tYm94LXNoYWRvdzogdmFyKC0tYnV0dG9uLXByaW1hcnktYm94LXNoYWRvdyk7XG4gIC0tYnV0dG9uLWJvcmRlci13aWR0aDogMDtcbiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1idXR0b24tYm9yZGVyLXdpZHRoKTtcbiAgLyoqXG4gICAqIEBUT0RPOiBuZWVkcyByZWZhY3RvcmluZywgc2VlIFs3XVxuICAgKiBPcHQtb3V0IGJ0bi0tbGluayBzdHlsZXMgZm9yIGFjdGlvbiBidXR0b25zLlxuICAgKlxuICAgKiBgYWN0aW9uYCBtb2RpZmllciBjYW4gbm90IGJlIGNvbWJpbmVkIHdpdGggYGxpbmtgXG4gICAqIGF2b2lkIHVubmVjZXNzYXJ5IHN0eWxlIGdlbmVyYXRpb25cbiAgICovXG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuOmhvdmVyLCBbZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuOmZvY3VzLCBsYWJlbDpmb2N1cy13aXRoaW4gW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0biB7IC8qIFsxN10gKi9cbiAgLS1idXR0b24tYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tcHJpbWFyeS1ib3JkZXItY29sb3ItaG92ZXIpO1xuICAtLWJ1dHRvbi1iYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kLWhvdmVyLCAjYThmZmNjKTtcbiAgLS1idXR0b24tdGV4dC1jb2xvcjogdmFyKC0tYnV0dG9uLXByaW1hcnktdGV4dC1jb2xvci1ob3ZlciwgIzE2MTcxOCk7XG4gIC0tYnV0dG9uLWJveC1zaGFkb3c6IHZhcigtLWJ1dHRvbi1wcmltYXJ5LWJveC1zaGFkb3ctaG92ZXIpO1xufVxuW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0bjpub3QoLmlzLWRpc2FibGVkKTphY3RpdmUgeyAvKiBbMThdICovXG4gIC0tYnV0dG9uLWJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLXByaW1hcnktYm9yZGVyLWNvbG9yLWFjdGl2ZSk7XG4gIC0tYnV0dG9uLWJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQtYWN0aXZlLCAjYThmZmNjKTtcbiAgLS1idXR0b24tdGV4dC1jb2xvcjogdmFyKC0tYnV0dG9uLXByaW1hcnktdGV4dC1jb2xvci1hY3RpdmUsICMxNjE3MTgpO1xuICAtLWJ1dHRvbi1ib3gtc2hhZG93OiB2YXIoLS1idXR0b24tcHJpbWFyeS1ib3gtc2hhZG93LWFjdGl2ZSk7XG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuW2Rpc2FibGVkXSwgW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0bi5pcy1kaXNhYmxlZCB7XG4gIC0tYnV0dG9uLWJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLXByaW1hcnktYm9yZGVyLWNvbG9yLWRpc2FibGVkKTtcbiAgLS1idXR0b24tYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZC1kaXNhYmxlZCwgI2Q4ZDhkOCk7XG4gIC0tYnV0dG9uLXRleHQtY29sb3I6IHZhcigtLWJ1dHRvbi1wcmltYXJ5LXRleHQtY29sb3ItZGlzYWJsZWQsICM5ZTlmYTApO1xuICAtLWJ1dHRvbi1ib3gtc2hhZG93OiB2YXIoLS1idXR0b24tcHJpbWFyeS1ib3gtc2hhZG93LWRpc2FibGVkKTtcbn1cbltkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG5bZGlzYWJsZWRdOmhvdmVyLCBbZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuW2Rpc2FibGVkXTpmb2N1cywgW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0bi5pcy1kaXNhYmxlZDpob3ZlciwgW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0bi5pcy1kaXNhYmxlZDpmb2N1cyB7XG4gIC0tYnV0dG9uLWJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLXByaW1hcnktYm9yZGVyLWNvbG9yLWRpc2FibGVkLWhvdmVyKTtcbiAgLS1idXR0b24tYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZC1kaXNhYmxlZC1ob3Zlcik7XG4gIC0tYnV0dG9uLXRleHQtY29sb3I6IHZhcigtLWJ1dHRvbi1wcmltYXJ5LXRleHQtY29sb3ItZGlzYWJsZWQtaG92ZXIpO1xuICAtLWJ1dHRvbi1ib3gtc2hhZG93OiB2YXIoLS1idXR0b24tcHJpbWFyeS1ib3gtc2hhZG93LWRpc2FibGVkLWhvdmVyKTtcbn1cbltkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLWxpbmsge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyAvKiBbMTVdICovXG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1saW5rOmhvdmVyLCBbZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1saW5rOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbltkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLWxpbms6aG92ZXIgLmMtYnRuX190ZXh0LCBbZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1saW5rOmZvY3VzIC5jLWJ0bl9fdGV4dCB7XG4gIGNvbG9yOiAjNDE5NDY4O1xufVxuW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0bi5jLWJ0bi0tbGluazpob3ZlciAuYy1idG5fX2ljb24sIFtkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLWxpbms6Zm9jdXMgLmMtYnRuX19pY29uIHtcbiAgY29sb3I6ICM0MTk0Njg7XG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1saW5rOm5vdCguaXMtZGlzYWJsZWQpOmFjdGl2ZSB7IC8qIFsxOF0gKi8gfVxuW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0bi5jLWJ0bi0tbGluayAuYy1idG5fX3RleHQge1xuICBjb2xvcjogIzE2MTcxODtcbn1cbltkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLWxpbmsgLmMtYnRuX19pY29uIHtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1saW5rW2Rpc2FibGVkXSAuYy1idG5fX3RleHQsIFtkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLWxpbmsuaXMtZGlzYWJsZWQgLmMtYnRuX190ZXh0IHtcbiAgY29sb3I6ICNjNGM2Yzc7XG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1saW5rW2Rpc2FibGVkXSAuYy1idG5fX2ljb24sIFtkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLWxpbmsuaXMtZGlzYWJsZWQgLmMtYnRuX19pY29uIHtcbiAgY29sb3I6ICNjNGM2Yzc7XG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1zaW1wbGUuYy1idG4tLXNpbXBsZSB7IC8qIFs3XSAqLyB9XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1zaW1wbGUuYy1idG4tLXNpbXBsZSAuYy1idG5fX2ljb246OmJlZm9yZSB7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cbltkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLWljb24tb25seS5jLWJ0bi0taWNvbi1vbmx5IHsgLyogWzddICovXG4gIG1pbi13aWR0aDogMDtcbiAgYm9yZGVyOiAwIHNvbGlkIHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhmYWFlO1xufVxuW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0bi5jLWJ0bi0taWNvbi1vbmx5LmMtYnRuLS1pY29uLW9ubHkgLmMtYnRuX19pY29uIHtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLWljb24tb25seTpob3ZlciwgW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0bi5jLWJ0bi0taWNvbi1vbmx5LmMtYnRuLS1pY29uLW9ubHk6Zm9jdXMge1xuICBib3JkZXI6IDAgc29saWQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhOGZmY2M7XG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLWljb24tb25seTpub3QoLmlzLWRpc2FibGVkKTphY3RpdmUgeyAvKiBbMThdICovXG4gIGJvcmRlcjogMCBzb2xpZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZmZjYztcbn1cbltkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLWljb24tb25seS5jLWJ0bi0taWNvbi1vbmx5W2Rpc2FibGVkXSwgW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0bi5jLWJ0bi0taWNvbi1vbmx5LmMtYnRuLS1pY29uLW9ubHkuaXMtZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDhkOGQ4O1xufVxuW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0bi5jLWJ0bi0taWNvbi1vbmx5LmMtYnRuLS1pY29uLW9ubHlbZGlzYWJsZWRdIC5jLWJ0bl9faWNvbiwgW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0bi5jLWJ0bi0taWNvbi1vbmx5LmMtYnRuLS1pY29uLW9ubHkuaXMtZGlzYWJsZWQgLmMtYnRuX19pY29uIHtcbiAgY29sb3I6ICM5ZTlmYTA7XG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnkge1xuICAtLWJ1dHRvbi1ib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktYm9yZGVyLWNvbG9yKTtcbiAgLS1idXR0b24tYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kLCAjNDY0NzQ4KTtcbiAgLS1idXR0b24tdGV4dC1jb2xvcjogdmFyKC0tYnV0dG9uLXNlY29uZGFyeS10ZXh0LWNvbG9yLCAjZmZmZmZmKTtcbiAgLS1idXR0b24tYm94LXNoYWRvdzogdmFyKC0tYnV0dG9uLXNlY29uZGFyeS1ib3gtc2hhZG93KTtcbiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1idXR0b24tYm9yZGVyLXdpZHRoKTtcbiAgLyoqXG4gICAqIEBUT0RPOiBuZWVkcyByZWZhY3RvcmluZywgc2VlIFs3XVxuICAgKiBPcHQtb3V0IGJ0bi0tbGluayBzdHlsZXMgZm9yIGFjdGlvbiBidXR0b25zLlxuICAgKlxuICAgKiBgYWN0aW9uYCBtb2RpZmllciBjYW4gbm90IGJlIGNvbWJpbmVkIHdpdGggYGxpbmtgXG4gICAqIGF2b2lkIHVubmVjZXNzYXJ5IHN0eWxlIGdlbmVyYXRpb25cbiAgICovXG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnk6aG92ZXIsIFtkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLXNlY29uZGFyeTpmb2N1cywgbGFiZWw6Zm9jdXMtd2l0aGluIFtkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLXNlY29uZGFyeSB7IC8qIFsxN10gKi9cbiAgLS1idXR0b24tYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tc2Vjb25kYXJ5LWJvcmRlci1jb2xvci1ob3Zlcik7XG4gIC0tYnV0dG9uLWJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZC1ob3ZlciwgIzVhNWI1Yyk7XG4gIC0tYnV0dG9uLXRleHQtY29sb3I6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktdGV4dC1jb2xvci1ob3ZlciwgI2ZmZmZmZik7XG4gIC0tYnV0dG9uLWJveC1zaGFkb3c6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktYm94LXNoYWRvdy1ob3Zlcik7XG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnk6bm90KC5pcy1kaXNhYmxlZCk6YWN0aXZlIHsgLyogWzE4XSAqL1xuICAtLWJ1dHRvbi1ib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktYm9yZGVyLWNvbG9yLWFjdGl2ZSk7XG4gIC0tYnV0dG9uLWJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZC1hY3RpdmUsICM1YTViNWMpO1xuICAtLWJ1dHRvbi10ZXh0LWNvbG9yOiB2YXIoLS1idXR0b24tc2Vjb25kYXJ5LXRleHQtY29sb3ItYWN0aXZlLCAjZmZmZmZmKTtcbiAgLS1idXR0b24tYm94LXNoYWRvdzogdmFyKC0tYnV0dG9uLXNlY29uZGFyeS1ib3gtc2hhZG93LWFjdGl2ZSk7XG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnlbZGlzYWJsZWRdLCBbZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnkuaXMtZGlzYWJsZWQge1xuICAtLWJ1dHRvbi1ib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktYm9yZGVyLWNvbG9yLWRpc2FibGVkKTtcbiAgLS1idXR0b24tYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kLWRpc2FibGVkLCAjZDhkOGQ4KTtcbiAgLS1idXR0b24tdGV4dC1jb2xvcjogdmFyKC0tYnV0dG9uLXNlY29uZGFyeS10ZXh0LWNvbG9yLWRpc2FibGVkLCAjOWU5ZmEwKTtcbiAgLS1idXR0b24tYm94LXNoYWRvdzogdmFyKC0tYnV0dG9uLXNlY29uZGFyeS1ib3gtc2hhZG93LWRpc2FibGVkKTtcbn1cbltkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLXNlY29uZGFyeVtkaXNhYmxlZF06aG92ZXIsIFtkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLXNlY29uZGFyeVtkaXNhYmxlZF06Zm9jdXMsIFtkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLXNlY29uZGFyeS5pcy1kaXNhYmxlZDpob3ZlciwgW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0bi5jLWJ0bi0tc2Vjb25kYXJ5LmlzLWRpc2FibGVkOmZvY3VzIHtcbiAgLS1idXR0b24tYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tc2Vjb25kYXJ5LWJvcmRlci1jb2xvci1kaXNhYmxlZC1ob3Zlcik7XG4gIC0tYnV0dG9uLWJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZC1kaXNhYmxlZC1ob3Zlcik7XG4gIC0tYnV0dG9uLXRleHQtY29sb3I6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktdGV4dC1jb2xvci1kaXNhYmxlZC1ob3Zlcik7XG4gIC0tYnV0dG9uLWJveC1zaGFkb3c6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktYm94LXNoYWRvdy1kaXNhYmxlZC1ob3Zlcik7XG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnkuYy1idG4tLWxpbmsge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyAvKiBbMTVdICovXG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnkuYy1idG4tLWxpbms6aG92ZXIsIFtkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLXNlY29uZGFyeS5jLWJ0bi0tbGluazpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnkuYy1idG4tLWxpbms6aG92ZXIgLmMtYnRuX19pY29uLCBbZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnkuYy1idG4tLWxpbms6Zm9jdXMgLmMtYnRuX19pY29uIHtcbiAgY29sb3I6ICM0MTk0Njg7XG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnkuYy1idG4tLWxpbms6bm90KC5pcy1kaXNhYmxlZCk6YWN0aXZlIHsgLyogWzE4XSAqLyB9XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnkuYy1idG4tLWxpbmsgLmMtYnRuX19pY29uIHtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnkuYy1idG4tLWxpbmtbZGlzYWJsZWRdIC5jLWJ0bl9faWNvbiwgW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0bi5jLWJ0bi0tc2Vjb25kYXJ5LmMtYnRuLS1saW5rLmlzLWRpc2FibGVkIC5jLWJ0bl9faWNvbiB7XG4gIGNvbG9yOiAjYzRjNmM3O1xufVxuW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0bi5jLWJ0bi0tc2Vjb25kYXJ5LmMtYnRuLS1zaW1wbGUuYy1idG4tLXNpbXBsZSB7IC8qIFs3XSAqLyB9XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnkuYy1idG4tLXNpbXBsZS5jLWJ0bi0tc2ltcGxlIC5jLWJ0bl9faWNvbjo6YmVmb3JlIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0bi5jLWJ0bi0tc2Vjb25kYXJ5LmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLWljb24tb25seSB7IC8qIFs3XSAqL1xuICBtaW4td2lkdGg6IDA7XG4gIGJvcmRlcjogMCBzb2xpZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnkuYy1idG4tLWljb24tb25seS5jLWJ0bi0taWNvbi1vbmx5OmhvdmVyLCBbZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnkuYy1idG4tLWljb24tb25seS5jLWJ0bi0taWNvbi1vbmx5OmZvY3VzIHtcbiAgYm9yZGVyOiAwIHNvbGlkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyLCAyMywgMjQsIDAuMDYpO1xufVxuW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0bi5jLWJ0bi0tc2Vjb25kYXJ5LmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLWljb24tb25seTpub3QoLmlzLWRpc2FibGVkKTphY3RpdmUgeyAvKiBbMThdICovXG4gIGJvcmRlcjogMCBzb2xpZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMiwgMjMsIDI0LCAwLjA2KTtcbn1cbltkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLXNlY29uZGFyeS5jLWJ0bi0taWNvbi1vbmx5LmMtYnRuLS1pY29uLW9ubHlbZGlzYWJsZWRdLCBbZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1zZWNvbmRhcnkuYy1idG4tLWljb24tb25seS5jLWJ0bi0taWNvbi1vbmx5LmlzLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q4ZDhkODtcbn1cbltkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLXNlY29uZGFyeS5jLWJ0bi0taWNvbi1vbmx5LmMtYnRuLS1pY29uLW9ubHlbZGlzYWJsZWRdIC5jLWJ0bl9faWNvbiwgW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0bi5jLWJ0bi0tc2Vjb25kYXJ5LmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLWljb24tb25seS5pcy1kaXNhYmxlZCAuYy1idG5fX2ljb24ge1xuICBjb2xvcjogIzllOWZhMDtcbn1cbltkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLWFjdGlvbiB7XG4gIC0tYnV0dG9uLWJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWFjdGlvbi1ib3JkZXItY29sb3IpO1xuICAtLWJ1dHRvbi1iYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24tYWN0aW9uLWJhY2tncm91bmQsICM3OGZhYWUpO1xuICAtLWJ1dHRvbi10ZXh0LWNvbG9yOiB2YXIoLS1idXR0b24tYWN0aW9uLXRleHQtY29sb3IpO1xuICAtLWJ1dHRvbi1ib3gtc2hhZG93OiB2YXIoLS1idXR0b24tYWN0aW9uLWJveC1zaGFkb3cpO1xuICAtLWJ1dHRvbi1wYWRkaW5nLWhvcml6b250YWw6IGNhbGModmFyKC0tYnV0dG9uLWhlaWdodCkgLyAyKTtcbiAgLS1idXR0b24tYm9yZGVyLXdpZHRoOiAwcHg7XG4gIGJvcmRlci13aWR0aDogdmFyKC0tYnV0dG9uLWJvcmRlci13aWR0aCk7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tYnV0dG9uLWhlaWdodCkgLyAyKTtcbiAgLyoqXG4gICAqIEBUT0RPOiBuZWVkcyByZWZhY3RvcmluZywgc2VlIFs3XVxuICAgKiBPcHQtb3V0IGJ0bi0tbGluayBzdHlsZXMgZm9yIGFjdGlvbiBidXR0b25zLlxuICAgKlxuICAgKiBgYWN0aW9uYCBtb2RpZmllciBjYW4gbm90IGJlIGNvbWJpbmVkIHdpdGggYGxpbmtgXG4gICAqIGF2b2lkIHVubmVjZXNzYXJ5IHN0eWxlIGdlbmVyYXRpb25cbiAgICovXG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1hY3Rpb246aG92ZXIsIFtkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLWFjdGlvbjpmb2N1cywgbGFiZWw6Zm9jdXMtd2l0aGluIFtkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLWFjdGlvbiB7IC8qIFsxN10gKi9cbiAgLS1idXR0b24tYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tYWN0aW9uLWJvcmRlci1jb2xvci1ob3Zlcik7XG4gIC0tYnV0dG9uLWJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1hY3Rpb24tYmFja2dyb3VuZC1ob3ZlciwgI2E4ZmZjYyk7XG4gIC0tYnV0dG9uLXRleHQtY29sb3I6IHZhcigtLWJ1dHRvbi1hY3Rpb24tdGV4dC1jb2xvci1ob3Zlcik7XG4gIC0tYnV0dG9uLWJveC1zaGFkb3c6IHZhcigtLWJ1dHRvbi1hY3Rpb24tYm94LXNoYWRvdy1ob3Zlcik7XG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1hY3Rpb246bm90KC5pcy1kaXNhYmxlZCk6YWN0aXZlIHsgLyogWzE4XSAqL1xuICAtLWJ1dHRvbi1ib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1hY3Rpb24tYm9yZGVyLWNvbG9yLWFjdGl2ZSk7XG4gIC0tYnV0dG9uLWJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1hY3Rpb24tYmFja2dyb3VuZC1hY3RpdmUsICNhOGZmY2MpO1xuICAtLWJ1dHRvbi10ZXh0LWNvbG9yOiB2YXIoLS1idXR0b24tYWN0aW9uLXRleHQtY29sb3ItYWN0aXZlKTtcbiAgLS1idXR0b24tYm94LXNoYWRvdzogdmFyKC0tYnV0dG9uLWFjdGlvbi1ib3gtc2hhZG93LWFjdGl2ZSk7XG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1hY3Rpb25bZGlzYWJsZWRdLCBbZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1hY3Rpb24uaXMtZGlzYWJsZWQge1xuICAtLWJ1dHRvbi1ib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1hY3Rpb24tYm9yZGVyLWNvbG9yLWRpc2FibGVkKTtcbiAgLS1idXR0b24tYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWFjdGlvbi1iYWNrZ3JvdW5kLWRpc2FibGVkLCAjZDhkOGQ4KTtcbiAgLS1idXR0b24tdGV4dC1jb2xvcjogdmFyKC0tYnV0dG9uLWFjdGlvbi10ZXh0LWNvbG9yLWRpc2FibGVkLCAjOWU5ZmEwKTtcbiAgLS1idXR0b24tYm94LXNoYWRvdzogdmFyKC0tYnV0dG9uLWFjdGlvbi1ib3gtc2hhZG93LWRpc2FibGVkKTtcbn1cbltkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLWFjdGlvbltkaXNhYmxlZF06aG92ZXIsIFtkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLWFjdGlvbltkaXNhYmxlZF06Zm9jdXMsIFtkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLWFjdGlvbi5pcy1kaXNhYmxlZDpob3ZlciwgW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0bi5jLWJ0bi0tYWN0aW9uLmlzLWRpc2FibGVkOmZvY3VzIHtcbiAgLS1idXR0b24tYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tYWN0aW9uLWJvcmRlci1jb2xvci1kaXNhYmxlZC1ob3Zlcik7XG4gIC0tYnV0dG9uLWJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1hY3Rpb24tYmFja2dyb3VuZC1kaXNhYmxlZC1ob3Zlcik7XG4gIC0tYnV0dG9uLXRleHQtY29sb3I6IHZhcigtLWJ1dHRvbi1hY3Rpb24tdGV4dC1jb2xvci1kaXNhYmxlZC1ob3Zlcik7XG4gIC0tYnV0dG9uLWJveC1zaGFkb3c6IHZhcigtLWJ1dHRvbi1hY3Rpb24tYm94LXNoYWRvdy1kaXNhYmxlZC1ob3Zlcik7XG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1hY3Rpb24uYy1idG4tLXNpbXBsZS5jLWJ0bi0tc2ltcGxlIHsgLyogWzddICovIH1cbltkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLWFjdGlvbi5jLWJ0bi0tc2ltcGxlLmMtYnRuLS1zaW1wbGUgLmMtYnRuX19pY29uOjpiZWZvcmUge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1hY3Rpb24uYy1idG4tLWljb24tb25seS5jLWJ0bi0taWNvbi1vbmx5IHsgLyogWzddICovXG4gIG1pbi13aWR0aDogMDtcbiAgYm9yZGVyOiAwIHNvbGlkO1xufVxuW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0bi5jLWJ0bi0tYWN0aW9uLmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLWljb24tb25seTpob3ZlciwgW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0bi5jLWJ0bi0tYWN0aW9uLmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLWljb24tb25seTpmb2N1cyB7XG4gIGJvcmRlcjogMCBzb2xpZDtcbn1cbltkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLWFjdGlvbi5jLWJ0bi0taWNvbi1vbmx5LmMtYnRuLS1pY29uLW9ubHk6bm90KC5pcy1kaXNhYmxlZCk6YWN0aXZlIHsgLyogWzE4XSAqL1xuICBib3JkZXI6IDAgc29saWQ7XG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1hY3Rpb24uYy1idG4tLWljb24tb25seS5jLWJ0bi0taWNvbi1vbmx5W2Rpc2FibGVkXSwgW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWJ0bi5jLWJ0bi0tYWN0aW9uLmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLWljb24tb25seS5pcy1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOGQ4ZDg7XG59XG5bZGF0YS10aGVtZT1icmFuZF0gLmMtYnRuLmMtYnRuLS1hY3Rpb24uYy1idG4tLWljb24tb25seS5jLWJ0bi0taWNvbi1vbmx5W2Rpc2FibGVkXSAuYy1idG5fX2ljb24sIFtkYXRhLXRoZW1lPWJyYW5kXSAuYy1idG4uYy1idG4tLWFjdGlvbi5jLWJ0bi0taWNvbi1vbmx5LmMtYnRuLS1pY29uLW9ubHkuaXMtZGlzYWJsZWQgLmMtYnRuX19pY29uIHtcbiAgY29sb3I6ICM5ZTlmYTA7XG59XG5cbi5jLWJ0bltkaXNhYmxlZF0sIC5jLWJ0bi5pcy1kaXNhYmxlZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4uYy1idG4uYy1idG4tLWZ1bGwge1xuICB3aWR0aDogMTAwJTtcbn1cbi5jLWJ0bi5jLWJ0bi0tbGluay5jLWJ0bi0tbGluay5jLWJ0bi0tbGluayB7IC8qIFsyMF0gKi9cbiAgbWluLWhlaWdodDogYXV0bzsgLyogWzEzXSAqL1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgLyogWzE5XSAqL1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmMtYnRuLmMtYnRuLS1pY29uLW9ubHkge1xuICBtaW4taGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG59XG4uYy1idG4uYy1idG4tLWljb24tb25seTpub3QoLmMtYnRuLXJvdW5kKSB7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG59XG4uYy1idG4uYy1idG4tLWljb24tb25seTpub3QoLmMtYnRuLXJvdW5kKS5jLWJ0bi0tc21hbGwge1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xufVxuLmMtYnRuLmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLXJvdW5kIHtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuLmMtYnRuLmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLXJvdW5kLmMtYnRuLS1zbWFsbCB7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG59XG4uYy1idG4uYy1idG4tLXRydW5jYXRlIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLmMtYnRuOndoZXJlKC5jLWJ0bi0taWNvbi5jLWJ0bi0tcmV2ZXJzZWQpLCAuYy1idG46d2hlcmUoLmMtYnRuLS1pbmNvZ25pdG8uYy1idG4tLXJldmVyc2VkKSB7XG4gIC0tYnV0dG9uLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbn1cbi5jLWJ0bjp3aGVyZSguYy1idG4tLWxpbms6bm90KC5jLWJ0bi0tcmV2ZXJzZWQpKSB7XG4gIC0tYnV0dG9uLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbn1cbi5jLWJ0bjp3aGVyZSg6bm90KC5jLWJ0bi0taWNvbi1vbmx5LCAuYy1idG4tLWluY29nbml0by5jLWJ0bi0taW5jb2duaXRvKSkgeyAvKiBbeHh4XSAqL1xuICBjb2x1bW4tZ2FwOiB2YXIoLS1idXR0b24tdGV4dC1pY29uLXNwYWNpbmcpO1xufVxuLmMtYnRuOndoZXJlKDpub3QoLmMtYnRuLS1pY29uLW9ubHksIC5jLWJ0bi0taW5jb2duaXRvLmMtYnRuLS1pbmNvZ25pdG8pKSAuYy1idG5fX3RleHQsXG4uYy1idG46d2hlcmUoOm5vdCguYy1idG4tLWljb24tb25seSwgLmMtYnRuLS1pbmNvZ25pdG8uYy1idG4tLWluY29nbml0bykpIC5jLWJ0bl9faWNvbiB7XG4gIC0tYnV0dG9uLXRleHQtaWNvbi1zcGFjaW5nOiAwO1xuICBtYXJnaW46IDA7IC8qIFszMF0gKi9cbn1cbi5jLWJ0biAqIHtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IC8qIFs5XSAqL1xufVxuLmMtYnRuID4gKiB7XG4gIHRyYW5zaXRpb246IGluaGVyaXQ7XG59XG5cbi5jLWJ0bl9fdGV4dCB7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG59XG4uYy1idG5fX3RleHQ6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tYnV0dG9uLXRleHQtaWNvbi1zcGFjaW5nKTsgLyogWzVdICovXG59XG4uYy1idG5fX3RleHQ6bGFzdC1jaGlsZDpub3QoOm9ubHktY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWJ1dHRvbi10ZXh0LWljb24tc3BhY2luZyk7IC8qIFs2XSAqL1xufVxuLmMtYnRuLmMtYnRuLS1mdWxsIC5jLWJ0bl9fdGV4dCB7XG4gIGRpc3BsYXk6IGJsb2NrOyAvKiBbOF0gKi9cbiAgbWFyZ2luLXJpZ2h0OiBhdXRvOyAvKiBbOF0gKi9cbiAgbWFyZ2luLWxlZnQ6IGF1dG87IC8qIFs4XSAqL1xufVxuLmMtYnRuLmMtYnRuLS1saW5rIC5jLWJ0bl9fdGV4dCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uYy1idG4uYy1idG4tLXRydW5jYXRlIC5jLWJ0bl9fdGV4dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmMtYnRuX19pY29uLmMtYnRuX19pY29uIHsgLyogWzddICovXG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250LXNpemU6IHZhcigtLWJ1dHRvbi1pY29uLXNpemUpO1xufVxuLmMtYnRuX19pY29uLmMtYnRuX19pY29uOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uOiBub25lOyAvKiBbMTJdICovXG59XG4uYy1idG4uYy1idG4tLWxpbmsgLmMtYnRuX19pY29uLmMtYnRuX19pY29uIHtcbiAgbGluZS1oZWlnaHQ6IDE7IC8qIFsxNF0gKi9cbn1cbi5jLWJ0bi5jLWJ0bi0tbGluay5jLWJ0bi0tcm91bmQuYy1idG4tLXNtYWxsLmMtYnRuLS1saW5rLmMtYnRuLS1yb3VuZC5jLWJ0bi0tc21hbGwgLmMtYnRuX19pY29uLmMtYnRuX19pY29uIHsgLyogWzddICovIH1cbi5jLWJ0bi5jLWJ0bi0tbGluay5jLWJ0bi0tc21hbGwuYy1idG4tLWxpbmsuYy1idG4tLXNtYWxsIC5jLWJ0bl9faWNvbi5jLWJ0bl9faWNvbiB7IC8qIFs3XSAqLyB9XG4uYy1idG4uYy1idG4tLWljb24tb25seSAuYy1idG5fX2ljb24uYy1idG5fX2ljb24ge1xuICBmb250LXNpemU6IDEuMjVyZW07XG59XG4uYy1idG4uYy1idG4tLWljb24tb25seS5jLWJ0bi0tc21hbGwgLmMtYnRuX19pY29uLmMtYnRuX19pY29uIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xufVxuXG4vKipcbiAqIEluY29nbml0byBCdXR0b25cbiAqL1xuLmMtYnRuLS1pbmNvZ25pdG8uYy1idG4tLWluY29nbml0byB7XG4gIC0tYnV0dG9uLXRleHQtaG9yaXpvbnRhbC1zcGFjaW5nOiBjYWxjKHZhcigtLWJ1dHRvbi10ZXh0LWljb24tc3BhY2luZykgKyB2YXIoLS1idXR0b24taWNvbi1zaXplKSAqIDAuNSk7IC8qIFsyMV0gKi9cbiAgLS1idXR0b24taWNvbi1ob3Jpem9udGFsLW9mZnNldDogY2FsYygodmFyKC0tYnV0dG9uLWJvcmRlci13aWR0aCkgKyB2YXIoLS1idXR0b24tcGFkZGluZy1ob3Jpem9udGFsKSkgKiAtMSk7IC8qIFsyMl0gKi9cbiAgLS1idXR0b24tY29sbGFwc2VkOiBpbml0aWFsOyAvKiBbMjhdICovXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgLyogWzIzXSAqL1xuICBtaW4td2lkdGg6IHZhcigtLWJ1dHRvbi1oZWlnaHQpOyAvKiBbMjRdICovXG4gIG1heC13aWR0aDogY2FsYygxMDB2dyAtIHZhcigtLXBhZ2Utd3JhcC1wYWRkaW5nLWhvcml6b250YWwpICogMik7IC8qIFsyNV0gKi9cbiAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogWzI2XSAqL1xufVxuLmMtYnRuLS1pbmNvZ25pdG8uYy1idG4tLWluY29nbml0by5jLWJ0bi0tcmV2ZXJzZWQgLmMtYnRuX190ZXh0OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWJ1dHRvbi10ZXh0LW1hcmdpbi13aGVuLWNvbGxhcHNlZCwgdmFyKC0tYnV0dG9uLXRleHQtaG9yaXpvbnRhbC1zcGFjaW5nKSk7IC8qIFsyMV0gWzI4XSAqL1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG4uYy1idG4tLWluY29nbml0by5jLWJ0bi0taW5jb2duaXRvIC5jLWJ0bl9fdGV4dCB7XG4gIC0tYnV0dG9uLXRleHQtbWF4LXdpZHRoLXdoZW4tY29sbGFwc2VkOiB2YXIoLS1idXR0b24tY29sbGFwc2VkKSAwOyAvKiBbMjhdICovXG4gIC0tYnV0dG9uLXRleHQtbWFyZ2luLXdoZW4tY29sbGFwc2VkOiB2YXIoLS1idXR0b24tY29sbGFwc2VkKSAwOyAvKiBbMjhdICovXG4gIC0tYnV0dG9uLXRleHQtb3BhY2l0eS13aGVuLWNvbGxhcHNlZDogdmFyKC0tYnV0dG9uLWNvbGxhcHNlZCkgMDsgLyogWzI4XSAqL1xuICBtYXgtd2lkdGg6IHZhcigtLWJ1dHRvbi10ZXh0LW1heC13aWR0aC13aGVuLWNvbGxhcHNlZCwgMzBlbSk7IC8qIFsyNV0gWzI4XSAqL1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyAvKiBbMjddICovXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyAvKiBbMjddICovXG4gIG9wYWNpdHk6IHZhcigtLWJ1dHRvbi10ZXh0LW9wYWNpdHktd2hlbi1jb2xsYXBzZWQsIDEpOyAvKiBbMjhdICovXG59XG4uYy1idG4tLWluY29nbml0by5jLWJ0bi0taW5jb2duaXRvIC5jLWJ0bl9fdGV4dDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tYnV0dG9uLXRleHQtbWFyZ2luLXdoZW4tY29sbGFwc2VkLCB2YXIoLS1idXR0b24tdGV4dC1ob3Jpem9udGFsLXNwYWNpbmcpKTsgLyogWzIxXSBbMjhdICovXG59XG4uYy1idG4tLWluY29nbml0by5jLWJ0bi0taW5jb2duaXRvIC5jLWJ0bl9fdGV4dDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWJ1dHRvbi10ZXh0LW1hcmdpbi13aGVuLWNvbGxhcHNlZCwgdmFyKC0tYnV0dG9uLXRleHQtaG9yaXpvbnRhbC1zcGFjaW5nKSk7IC8qIFsyMV0gWzI4XSAqL1xufVxuLmMtYnRuLS1pbmNvZ25pdG8uYy1idG4tLWluY29nbml0byAuYy1idG5fX2ljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgLyogWzMxXSAqL1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogWzMxXSAqL1xuICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiBbMzFdICovXG4gIHdpZHRoOiB2YXIoLS1idXR0b24taGVpZ2h0KTtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWJ1dHRvbi1pY29uLWhvcml6b250YWwtb2Zmc2V0KTsgLyogWzIyXSAqL1xuICBtYXJnaW4tcmlnaHQ6IHZhcigtLWJ1dHRvbi1pY29uLWhvcml6b250YWwtb2Zmc2V0KTsgLyogWzIyXSAqL1xufVxuLmMtYnRuLS1pbmNvZ25pdG8uYy1idG4tLWluY29nbml0bzp3aGVyZSg6bm90KDpob3Zlcik6bm90KDpmb2N1cykpIHtcbiAgLS1idXR0b24tY29sbGFwc2VkOiA7IC8qIFsyOF0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSAqL1xufVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlIHNlbGVjdG9yLW1heC1jbGFzcywgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4vKipcbiAqIGBib3JkZXItcmFkaXVzYCBpcyBub3QgYXBwbGllZCBmb3Igb3V0bGluZSBpbiBTYWZhcmksXG4gKiB1c2VzIHJlY3Rhbmd1bGFyIHNoYXBlIGluc3RlYWQuXG4gKiBAbGluayBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4MDdcbiAqL1xuLmMtYnRuOmZvY3VzLXZpc2libGUge1xuICAvKiBbMV0gKi9cbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjMTYxNzE4O1xuICAtLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIC0tZm9jdXMtb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIC0tZm9jdXMtb3V0bGluZS13aWR0aDogMnB4O1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb2N1cy1vdXRsaW5lLWNvbG9yLCAjMTYxNzE4KTtcbiAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWZvY3VzLW91dGxpbmUtb2Zmc2V0LCAxcHgpO1xuICBvdXRsaW5lLXN0eWxlOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXN0eWxlLCBzb2xpZCk7XG4gIG91dGxpbmUtd2lkdGg6IHZhcigtLWZvY3VzLW91dGxpbmUtd2lkdGgsIDJweCk7XG59XG4uYy1idG46bm90KC5jLWJ0bi0tc2Vjb25kYXJ5KTpmb2N1cyB7XG4gIC0tYnV0dG9uLWJhY2tncm91bmQ6ICM3OGZhYWU7XG59XG4uYy1idG4uYy1idG4tLXNlY29uZGFyeTpmb2N1cyB7XG4gIC0tYnV0dG9uLWJhY2tncm91bmQ6ICM0NjQ3NDg7XG59XG4uYy1idG46YWN0aXZlIHtcbiAgc2NhbGU6IDAuOTU7XG59XG4uYy1idG4uYy1idG4tLWxpbmsge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmMtYnRuLmMtYnRuLS1saW5rOmZvY3VzIC5jLWJ0bl9fdGV4dCB7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtYnRuLmMtYnRuLS1saW5rOmZvY3VzIC5jLWJ0bl9faWNvbi5jLWJ0bl9faWNvbiB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5LCBzZWxlY3Rvci1tYXgtY2xhc3MgKi9cbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uYy1idG4uYy1idG4tLWxpbms6Zm9jdXMtdmlzaWJsZSB7XG4gIC0tZm9jdXMtb3V0bGluZS1jb2xvcjogIzE2MTcxODtcbiAgLS1mb2N1cy1vdXRsaW5lLW9mZnNldDogOHB4O1xuICAtLWZvY3VzLW91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICAtLWZvY3VzLW91dGxpbmUtd2lkdGg6IDJweDtcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9jdXMtb3V0bGluZS1jb2xvciwgIzE2MTcxOCk7XG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1mb2N1cy1vdXRsaW5lLW9mZnNldCwgMXB4KTtcbiAgb3V0bGluZS1zdHlsZTogdmFyKC0tZm9jdXMtb3V0bGluZS1zdHlsZSwgc29saWQpO1xuICBvdXRsaW5lLXdpZHRoOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXdpZHRoLCAycHgpO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICNCQUNLLVRPLVRPUFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBGbGV4aWJsZSBsZWZ0IG9yIHJpZ2h0IGFsaWdubWVudCBvZiB0aGUgY29tcG9uZW50LlxuICovXG4uYy1iYWNrLXRvLXRvcCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBwYWRkaW5nLXRvcDogMTZweDtcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XG59XG5cbi5jLWJhY2stdG8tdG9wX19wYWdld3JhcCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyAvKiBbMV0gKi9cbiAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDE5MnB4KTtcbiAgcGFkZGluZy1sZWZ0OiA5NnB4O1xuICBwYWRkaW5nLXJpZ2h0OiA5NnB4O1xuICAtLXBhZ2Utd3JhcDogOTZweDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1iYWNrLXRvLXRvcF9fcGFnZXdyYXAge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyA5NnB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG4gICAgcGFkZGluZy1yaWdodDogNDhweDtcbiAgICAtLXBhZ2Utd3JhcDogNDhweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLWJhY2stdG8tdG9wX19wYWdld3JhcCB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDQ4cHgpO1xuICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICAgIC0tcGFnZS13cmFwOiAyNHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtYmFjay10by10b3BfX3BhZ2V3cmFwIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTI0OHB4ICsgMjRweCk7XG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XG4gICAgLS1wYWdlLXdyYXA6IDEycHg7XG4gIH1cbn1cblxuLmMtYmFjay10by10b3BfX2ljb246OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiYnJvbnNvbi1za29kYVwiICFpbXBvcnRhbnQ7IC8qIFsxXSAqL1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBjb250ZW50OiBcIlxcZjE1NlwiO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQlVUVE9OLUdST1VQXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogVGhlIGJ1dHRvbiBncm91cCBjb21wb25lbnQgaXMgYSBzZXQgb2YgYnV0dG9ucyB0byBjaG9vc2UgYmV0d2VlbiBzZXZlcmFsXG4gKiBvcHRpb25zIGluIGZvcm1zLiBTbywgdGVjaG5pY2FsbHkgc3BlYWtpbmcsIGl0J3MgYWN0dWFsbHkgcmFkaW8gYnV0dG9uc1xuICogb3IgY2hlY2tib3hlcywganVzdCBpbiB0aGUgbG9vayBvZiBhIGJ1bmNoIG9mIGJ1dHRvbnMuXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9uby1kdXBsaWNhdGUtZG9sbGFyLXZhcmlhYmxlcyAqL1xuLyoqXG4gKiBbMV0gQmV0dGVyIGFsaWdubWVudCBtYW5hZ2VtZW50LlxuICogWzJdIFdoZW4gdGhlIGl0ZW1zIGRvIGhhdmUgc3BhY2luZyBiZW5lYXRoIGVhY2ggb3RoZXIsIG1ha2Ugc3VyZSB0byB0YWtlIGNhcmVcbiAqICAgICBvZiB0aGUgdmVydGljYWwgc3BhY2luZyBiZXR3ZWVuIHRoZSBpdGVtcyAod2hlbiBtdWx0aWxpbmUpIGFuZCB0b1xuICogICAgIHN1cnJvdW5kaW5nIGNvbXBvbmVudHMuXG4gKiBbM10gRGVmZW5zaXZlbHkgZGVmYXVsdCB0byBgZGlzcGxheTogZmxleGAuXG4gKiBbNF0gQ2VudGVyIHRleHQgaW5zaWRlIGl0ZW1zLlxuICogWzVdIElmIHRoZSBpdGVtcyBkbyBoYXZlIHNwYWNpbmcgYmVuZWF0aCBlYWNoIG90aGVyLCBnaXZlIGVhY2ggaXRlbSwgZXhjZXB0XG4gKiAgICAgIHRoZSBsYXN0IG9uZSwgYSBzcGFjaW5nLlxuICogWzZdIE1ha2UgaXQgYmxvY2t5IHNvIGl0IGNhbiB0YWtlIHVwIDEwMCUgd2lkdGggb2YgaXRzIHBhcmVudC5cbiAqIFs3XSBIaWRlIHRoZSBvcmlnaW5hbCByYWRpby1idXR0b24uXG4gKiBbOF0gUmVzZXQgbWFyZ2luLWJvdHRvbSB0byAwIChzZXQgYnkgYDxsYWJlbD5gIGRlY2xhcmF0aW9uKS5cbiAqIFs5XSBPdmVyd3JpdGUgZGVmYXVsdCBpY29uIGB0cmFuc2l0aW9uYFxuICogICAgICB0byBiZSBpbiBzeW5jIHdpdGggYnV0dG9uLWdyb3VwIHRyYW5zaXRpb24uXG4gKiBbMTBdIFN0cmV0Y2ggdG8gdGhlIGhpZ2hlc3QgaXRlbSBpbiByb3cuXG4gKiBbMTFdIFN1YnRyYWN0IChjb21wZW5zYXRlKSBtYXJnaW5zIHRvIHByZXZlbnQgdW5uZWNlc3Nhcnkgd3JhcHBpbmcgKDEwMCslKS5cbiAqIFsxMl0gQWxsb3cgZ3Jvd2luZy9zaHJpbmtpbmcgaWYgbWF4LWNvdW50IGlzIG5vdCByZWFjaGVkIChxdWFudGl0eSBxdWVyaWVzKS5cbiAqIFsxM10gVmVydGljYWxseSBjZW50ZXIgaXRlbSBjb250ZW50LlxuICogWzE0XSBHZXQgYSBtaW4td2lkdGggb2YgYCRidXR0b24tZ3JvdXAtaXRlbS1taW4tc2l6ZWAgYW5kIGEgbWF4IHdpZHRoIG9mXG4gKiAgICAgIGAxZnJgIGZvciBlYWNoIGdyaWQtaXRlbS5cbiAqIFsxNV0gR2V0IGVxdWFsLWhlaWdodCBncmlkLXJvd3MuXG4gKiBbMTZdIFRoZSBkaXNwbGF5IG9mIGljb25zIGluIGJ1dHRvbiBncm91cCBpdGVtcyBpcyBvcHRpb25hbC5cbiAqL1xuLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuLmMtYnV0dG9uLWdyb3VwIHtcbiAgZGlzcGxheTogZ3JpZDsgLyogWzFdICovXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTUycHgsIDFmcikpOyAvKiBbMTRdICovXG4gIGdyaWQtYXV0by1yb3dzOiAxZnI7IC8qIFsxNV0gKi9cbiAgcm93LWdhcDogMTZweDsgLyogWzJdICovXG4gIGNvbHVtbi1nYXA6IDhweDsgLyogWzJdICovXG59XG4uYy1idXR0b24tZ3JvdXAuYy1idXR0b24tZ3JvdXAtLWF1dG8ge1xuICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE1MnB4LCAxZnIpKTsgLyogWzVdICovXG59XG5cbi5jLWJ1dHRvbi1ncm91cF9faXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7IC8qIFszXSAqL1xuICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbOF0gKi9cbiAgdGV4dC1hbGlnbjogY2VudGVyOyAvKiBbNF0gKi9cbn1cblxuLmMtYnV0dG9uLWdyb3VwX19sYWJlbCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4OyAvKiBbNl0gKi9cbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8qIFsxM10gKi9cbiAgd2lkdGg6IDEwMCU7IC8qIFs2XSAqL1xuICBoZWlnaHQ6IDEwMCU7IC8qIFsxMF0gKi9cbiAgcGFkZGluZzogOHB4IDI0cHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICM0NjQ3NDg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5jLWJ1dHRvbi1ncm91cF9faXRlbTpmb2N1cy13aXRoaW4gLmMtYnV0dG9uLWdyb3VwX19sYWJlbCwgLmMtYnV0dG9uLWdyb3VwX19pbnB1dDpob3ZlciArIC5jLWJ1dHRvbi1ncm91cF9fbGFiZWwsIC5jLWJ1dHRvbi1ncm91cF9faW5wdXQ6Zm9jdXMgKyAuYy1idXR0b24tZ3JvdXBfX2xhYmVsLCAuYy1idXR0b24tZ3JvdXBfX2xhYmVsOmhvdmVyLCAuYy1idXR0b24tZ3JvdXBfX2xhYmVsOmZvY3VzIHtcbiAgei1pbmRleDogMTtcbiAgYm9yZGVyLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcbiAgY29sb3I6ICM0NjQ3NDg7XG59XG4uYy1idXR0b24tZ3JvdXBfX2lucHV0OmNoZWNrZWQgKyAuYy1idXR0b24tZ3JvdXBfX2xhYmVsIHtcbiAgei1pbmRleDogMTtcbiAgYm9yZGVyLWNvbG9yOiAjNDY0NzQ4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDY0NzQ4O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5jLWJ1dHRvbi1ncm91cF9faW5wdXRbZGlzYWJsZWRdICsgLmMtYnV0dG9uLWdyb3VwX19sYWJlbCB7XG4gIGNvbG9yOiAjOWU5ZmEwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5jLWJ1dHRvbi1ncm91cF9faWNvbiB7IC8qIDIyICovXG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cbi5jLWJ1dHRvbi1ncm91cF9faWNvbjo6YmVmb3JlIHtcbiAgZm9udC1zaXplOiA0MHB4O1xuICB0cmFuc2l0aW9uOiBub25lOyAvKiBbOV0gKi9cbn1cblxuLmMtYnV0dG9uLWdyb3VwX19pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGl0Y3NzL25vLWF0LWltcG9ydGFudCAqL1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICAvKiBbN10gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0JVVFRPTi1HUk9VUFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uYy1idXR0b24tZ3JvdXBfX2lucHV0OmZvY3VzLXZpc2libGUgfiAuYy1idXR0b24tZ3JvdXBfX2xhYmVsIHtcbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjMTYxNzE4O1xuICAtLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIC0tZm9jdXMtb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIC0tZm9jdXMtb3V0bGluZS13aWR0aDogMnB4O1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb2N1cy1vdXRsaW5lLWNvbG9yLCAjMTYxNzE4KTtcbiAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWZvY3VzLW91dGxpbmUtb2Zmc2V0LCAxcHgpO1xuICBvdXRsaW5lLXN0eWxlOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXN0eWxlLCBzb2xpZCk7XG4gIG91dGxpbmUtd2lkdGg6IHZhcigtLWZvY3VzLW91dGxpbmUtd2lkdGgsIDJweCk7XG59XG4uYy1idXR0b24tZ3JvdXBfX2lucHV0OmNoZWNrZWQgKyAuYy1idXR0b24tZ3JvdXBfX2xhYmVsOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjNWE1YjVjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWE1YjVjO1xufVxuLmMtYnV0dG9uLWdyb3VwX19pbnB1dDpub3QoOmNoZWNrZWQpOmZvY3VzICsgLmMtYnV0dG9uLWdyb3VwX19sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTElTVC1ORVNURUQtQ09VTlRFUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBTZWxlY3RvciBhcHBsaWVzIHRvIGVpdGhlciBhbiBvcmRlcmVkIGxpc3Qgd2l0aCBuZXN0ZWQgbGlzdCBjbGFzcyAoZS5nLlxuICogICAgIGA8b2wgY2xhc3M9XCJjLWxpc3QtbmVzdGVkLWNvdW50ZXJcIj5gIG9yIHRvIGFuIG9yZGVyZWQgbGlzdCB3aXRoIHRoZVxuICogICAgIG5lc3RlZCBsaXN0IGNsYXNzZXMgYWRkZWQgdG8gb25lIG9mIGl0J3MgcGFyZW50cywgZS5nLlxuICogICAgIGBgYFxuICogICAgIDxkaXYgY2xhc3M9XCJjLWxpc3QtbmVzdGVkLWNvdW50ZXJcIj5cbiAqICAgICAgICAgPG9sPlxuICogICAgICAgICAgICAgLi4uXG4gKiAgICAgICAgIDwvb2w+XG4gKiAgICAgPC9kaXY+XG4gKiAgICAgYGBgLlxuICovXG5vbC5jLWxpc3QtbmVzdGVkLWNvdW50ZXIsXG4uYy1saXN0LW5lc3RlZC1jb3VudGVyIG9sIHsgLyogWzFdICovXG4gIG1hcmdpbi1sZWZ0OiAyNHB4O1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGNvdW50ZXItcmVzZXQ6IHNlY3Rpb247XG59XG5vbC5jLWxpc3QtbmVzdGVkLWNvdW50ZXIgb2wsXG4uYy1saXN0LW5lc3RlZC1jb3VudGVyIG9sIG9sIHtcbiAgbWFyZ2luLWxlZnQ6IDMycHg7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cbm9sLmMtbGlzdC1uZXN0ZWQtY291bnRlciBvbCBsaSxcbi5jLWxpc3QtbmVzdGVkLWNvdW50ZXIgb2wgb2wgbGkge1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5vbC5jLWxpc3QtbmVzdGVkLWNvdW50ZXIgbGk6OmJlZm9yZSxcbi5jLWxpc3QtbmVzdGVkLWNvdW50ZXIgb2wgbGk6OmJlZm9yZSB7XG4gIGNvdW50ZXItaW5jcmVtZW50OiBzZWN0aW9uO1xuICBjb250ZW50OiBjb3VudGVycyhzZWN0aW9uLCBcIi5cIikgXCIuIFwiO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTElTVC1ORVNURUQtQ09VTlRFUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBBZGQgc3BhY2luZyBiZXR3ZWVuIGNvdW50ZXIgYW5kIGl0ZW1zLlxuICovXG5vbC5jLWxpc3QtbmVzdGVkLWNvdW50ZXIgbGksXG4uYy1saXN0LW5lc3RlZC1jb3VudGVyIG9sIGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxub2wuYy1saXN0LW5lc3RlZC1jb3VudGVyIGxpOjpiZWZvcmUsXG4uYy1saXN0LW5lc3RlZC1jb3VudGVyIG9sIGxpOjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qIFsxXSAqL1xuICBwYWRkaW5nLXJpZ2h0OiA4cHg7IC8qIFsxXSAqL1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyAvKiBbMV0gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI09SREVSRUQtTElTVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uYy1vbCxcbi5jLW9sIG9sIHtcbiAgY291bnRlci1yZXNldDogbGk7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cbi5jLW9sID4gbGksXG4uYy1vbCBvbCA+IGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LWNvbWJpbmF0b3JzLCBzZWxlY3Rvci1tYXgtY29tcG91bmQtc2VsZWN0b3JzLCBzZWxlY3Rvci1tYXgtdHlwZSAqL1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG4uYy1vbCA+IGxpID4gb2wsXG4uYy1vbCBvbCA+IGxpID4gb2wge1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIG1hcmdpbi1sZWZ0OiAyNHB4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjT1JERVJFRC1MSVNUXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIEFkZCBhIGNvdW50ZXIgYW5kIHJlc2V0IGl0IG9uIGVhY2ggYGxpYCBuZXN0aW5nLiBTZXQgdGhlIGNvdW50ZXIgc3R5bGUgdG8gcHV0IGluIGxlYWRpbmcgemVyb3MuXG4gKiBbMl0gUG9zaXRpb24gdGhlIGNvdW50ZXIgYWJzb2x1dGUgYW5kIG1vdmUgaXQgYnkgaXRzZWxmIGFuZCB0aGUgYCRza29kYS1vcmRlcmVkLWxpc3QtaXRlbS1jb3VudGVyLW9mZnNldGAgdG8gdGhlIGxlZnQuXG4gKi9cbi5jLW9sIGxpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmMtb2wgbGk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IGNvdW50ZXIobGksIGRlY2ltYWwtbGVhZGluZy16ZXJvKTsgLyogWzFdICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLyogWzJdICovXG4gIHBhZGRpbmctcmlnaHQ6IDhweDsgLyogWzJdICovXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IC8qIFsyXSAqL1xuICBjb3VudGVyLWluY3JlbWVudDogbGk7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNVTk9SREVSRUQtTElTVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBNYWtlIHN1cmUgdGhlIHNlbGVjdG9yIGlzIGFsc28gYXBwbGllZCB0byBuZXN0ZWQgYDx1bD5gIGVsZW1lbnRzLlxuICogWzJdIElmIGEgY3VzdG9tIGxpc3QgaWNvbiBpcyBzZXQsIHdlIGV4cGxpY2l0bHkgc2V0IHRoZSBsaXN04oCZcyBgbGlzdC1zdHlsZWAgdG8gYG5vbmVgLFxuICogICAgIG90aGVyd2lzZSB3ZSBkbyBmYWxsIGJhY2sgdG8gdGhlIGluaGVyaXRlZCBgbGlzdC1zdHlsZWAgb2YgdGhlIGB1bGAuXG4gKiBbMl0gVW5zZXQgdGhlIGluaXRpYWwgYG1hcmdpbi1sZWZ0YCBmcm9tIHRoZSBgdWxgLlxuICogWzNdIENoZWNrIGlmIGEgY3VzdG9tIGxpc3QgaWNvbiBpcyBzZXQuIElmIHNvLCBkaXNhYmxlIGBsaXN0LXN0eWxlYCBvbiB0aGUgbGlzdFxuICogICAgIGFuZCBhcHBseSBhIGN1c3RvbSBpY29uIHZpYSBwc2V1ZG8gZWxlbWVudC5cbiAqIFs0XSBXaGV0aGVyIHRvIHVzZSBhbiBpY29uIGZyb20gdGhlIGljb24gc2V0IG9yIChhKSBjdXN0b20gY2hhcihzKS5cbiAqICAgICBJbiB0aGUgY2FzZSBvZiBjdXN0b20gY2hhcihzKSBhbnkgdGV4dC1sZXZlbCBzdHlsaW5nIHNob3VsZCBoYXBwZW4gaW4gdGhlIGJyYW5kIGl0c2VsZixcbiAqICAgICBhcyB0aGUgZGVmYXVsdCBjb21wb25lbnQgY2Fubm90IGF1Z21lbnQgYW55IHBvc3NpYmxlIHN0eWxlIGNvbWJpbmF0aW9uLlxuICogWzVdIFN0eWxlIG9ubHkgdW5vcmRlcmVkIGxpc3QgaXRlbXMuXG4gKi9cbi5jLXVsLFxuLmMtdWwgdWwgeyAvKiBbMV0gKi9cbiAgbWFyZ2luLWxlZnQ6IDA7IC8qIFsyXSAqL1xuICBsaXN0LXN0eWxlOiBub25lOyAvKiBbM10gKi9cbn1cbi5jLXVsID4gbGksXG4uYy11bCB1bCA+IGxpIHsgLyogWzVdICovXG4gIG1hcmdpbi10b3A6IDhweDtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gIC8qIFszXSAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYy11bCA+IGxpOjpiZWZvcmUsXG4uYy11bCB1bCA+IGxpOjpiZWZvcmUge1xuICBjb250ZW50OiBcIuKAolwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0xNnB4O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogWzRdICovXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiYnJvbnNvbi1za29kYVwiICFpbXBvcnRhbnQ7IC8qIFsxXSAqL1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNTRUNUSU9OLUhFQURJTkdTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIFdyYXAgdGV4dCBhbmQgcG9zc2libGUgaW5saW5lIGVsZW1lbnRzIGluIGBzcGFuYC4gTGVmdCBlbXB0eSBoZXJlIGZvclxuICogICAgIGRvY3VtZW50YXRpb24gYW5kIHByb3NwZWN0aXZlIHVzYWdlLlxuICogWzJdIE1ha2Ugc3VyZSBvdGhlciBzcGFjaW5ncyBkbyBub3QgYXBwbHkuXG4gKi9cbi5jLXNlY3Rpb24taGVhZGluZyB7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG4uYy1zZWN0aW9uLWhlYWRpbmcuYy1zZWN0aW9uLWhlYWRpbmctLWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jLXNlY3Rpb24taGVhZGluZy5jLXNlY3Rpb24taGVhZGluZy0tY2VudGVyIC5jLXNlY3Rpb24taGVhZGluZ19fdGl0bGUge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5jLXNlY3Rpb24taGVhZGluZy5jLXNlY3Rpb24taGVhZGluZy0tc21hbGwtc3BhY2luZyB7IC8qIFsxXSAqL1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuLmMtc2VjdGlvbi1oZWFkaW5nLmMtc2VjdGlvbi1oZWFkaW5nLS1zbWFsbC1zcGFjaW5nIC5jLXNlY3Rpb24taGVhZGluZ19fc3VidGl0bGUge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4uYy1zZWN0aW9uLWhlYWRpbmdfX2ljb24ge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbiAgY29sb3I6ICM0MTk0Njg7XG59XG5cbi5jLXNlY3Rpb24taGVhZGluZ19fdGl0bGUge1xuICBmb250LXNpemU6IDEuNDM3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgLmMtc2VjdGlvbi1oZWFkaW5nX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjY4NzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyODFweCkge1xuICAuYy1zZWN0aW9uLWhlYWRpbmdfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIH1cbn1cbi5jLXNlY3Rpb24taGVhZGluZy0tcHJpbWFyeSAuYy1zZWN0aW9uLWhlYWRpbmdfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAyLjA2MjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxNnB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5jLXNlY3Rpb24taGVhZGluZy0tcHJpbWFyeSAuYy1zZWN0aW9uLWhlYWRpbmdfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDIuMzc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgxcHgpIHtcbiAgLmMtc2VjdGlvbi1oZWFkaW5nLS1wcmltYXJ5IC5jLXNlY3Rpb24taGVhZGluZ19fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMi43NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG59XG5cbi5jLXNlY3Rpb24taGVhZGluZ19fdGl0bGUtdGV4dCB7IC8qIFsxXSAqLyB9XG5cbi5jLXNlY3Rpb24taGVhZGluZ19fc3VidGl0bGUge1xuICBmb250LXNpemU6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7IC8qIFsyXSAqL1xuICBtYXJnaW4tdG9wOiAyNHB4O1xuICBjb2xvcjogIzE2MTcxODtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZPUk0tSEVBRElORyAoU2V0dGluZ3MpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNGT1JNLUhFQURJTkdcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gUmVzZXQgbWFyZ2luIGJvdHRvbSBmb3IgdGV4dCBhbmQgbWFuYWdlIGl0IG92ZXJcbiAqICAgICBgJGZvcm0taGVhZGluZ3Mtc3BhY2luZ2Agb24gYC5jLWZvcm0taGVhZGluZ2AuXG4gKiBbMl0gTWFrZSBzdXJlIHRoYXQgYW4gKG9wdGlvbmFsKSBpY29uIGlzIGNlbnRlcmVkIHZlcnRpY2FsbHkuXG4gKiBbM10gTmVzdGluZyByZXF1aXJlZCB0byBvdmVycnVsZSBgLmMtaWNvbmAgc2VsZWN0b3IuXG4gKiBbNF0gV3JhcCB0ZXh0IGFuZCBwb3NzaWJsZSBpbmxpbmUgZWxlbWVudHMgaW4gYDxzcGFuPmAgYmVjYXVzZSBvZiBwYXJlbnQnc1xuICogICAgIGZsZXggc2V0dGluZy4gTGVmdCBlbXB0eSBoZXJlIGZvciBkb2N1bWVudGF0aW9uIGFuZCBwcm9zcGVjdGl2ZSB1c2FnZS5cbiAqIFs1XSBIaWRlIGljb24gaWYgZGlzYWJsZWQuXG4gKiBbNl0gQWRkIGJvdHRvbSBzcGFjaW5nIHRvIHRpdGxlIG9ubHkgaWYgdGhlcmUgaXMgbm8gYWRkaXRpb25hbCBzaWJsaW5nIGVsZW1lbnQuXG4gKi9cbi5jLWZvcm0taGVhZGluZyB7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG59XG5cbi5jLWZvcm0taGVhZGluZ19fdGl0bGUge1xuICBmb250LXNpemU6IDEuNDM3NXJlbTtcbiAgZGlzcGxheTogZmxleDsgLyogWzJdICovXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIFsyXSAqL1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogIzE2MTcxODtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICAuYy1mb3JtLWhlYWRpbmdfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuNjg3NXJlbTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyODFweCkge1xuICAuYy1mb3JtLWhlYWRpbmdfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuODc1cmVtO1xuICB9XG59XG4uYy1mb3JtLWhlYWRpbmdfX3RpdGxlOm5vdCg6b25seS1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiAxNnB4OyAvKiBbNl0gKi9cbn1cbi5jLWZvcm0taGVhZGluZ19fdGl0bGUgLmMtZm9ybS1oZWFkaW5nX19pY29uIHsgLyogWzNdICovXG4gIG1hcmdpbi1yaWdodDogOHB4O1xuICBmb250LXNpemU6IDMycHg7XG59XG5cbi5jLWZvcm0taGVhZGluZ19fdGV4dCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8qIFsxXSAqL1xuICBjb2xvcjogIzE2MTcxODtcbn1cblxuLmMtZm9ybS1oZWFkaW5nX190aXRsZS10ZXh0IHsgLyogWzRdICovIH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZPUk0tRklFTERcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gIFNldHMgYHRyYW5zZm9ybS1vcmlnaW5gIHRvIGJvdHRvbS9sZWZ0IGZvciBhbGwgaW5wdXRzLlxuICogICAgICBUaGlzIGFsc28gZml4ZXMgdGhlIGJsdXJyeSB0ZXh0IGlzc3VlIHdoZW4gc2NhbGUgaXMgdXNlZC5cbiAqICAgICAgU2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI5MDM3MTc2L3ByZXZlbnRpbmctYmx1cnJ5LXJlbmRlcmluZy13aXRoLXRyYW5zZm9ybS1zY2FsZS8yOTAzNzgwM1xuICogWzJdICBXZSBoYXZlIHRvIHNjYWxlIHVwIHRoZSBsYWJlbCB3aGVuIGZsb2F0ZWQgaW4gYW5kIG5vdCB2aWNlIHZlcnNhLlxuICogICAgICBPdGhlcndpc2UsIHRoZSBib3ggb2YgdGhlIGZsb2F0ZWQgb3V0IGxhYmVsIHdvdWxkIGJlIGxhcmdlciB0aGFuIHRoZVxuICogICAgICBjb250ZW50IGl0c2VsZi4gVGhpcyBjYXVzZXMgZS5nLiBhbiB1bndhbnRlZCBzcGFjaW5ncyBiZXR3ZWVuIHRoZVxuICogICAgICBjb250ZW50IG9mIHRoZSBsYWJlbCBhbmQgc2libGluZ3MgbGlrZSBpbmZvIGljb25zLlxuICogWzNdICBTaW5jZSB0aGUgdGV4dCBpcyBzY2FsZWQgdXAgdXNpbmcgdHJhbnNmb3JtLCByZWR1Y2UgdGhlIG1heC13aWR0aFxuICogICAgICBvZiB0aGUgbGFiZWwgYWNjb3JkaW5nbHkuIEltcG9ydGFudCBmb3IgbGFiZWxzIHRoYXQgYnJlYWsgaW50byBtdWx0aXBsZVxuICogICAgICBsaW5lcy5cbiAqIFs0XSAgQ2FsY3VsYXRlIGhvcml6b250YWwgYW5kIHZlcnRpY2FsIHBvc2l0aW9uIG9mIGZsb2F0aW5nIGxhYmVscyBpbnNpZGUgdGV4dGFyZWEuXG4gKiBbNV0gIFByZXZlbnQgYWxsIGBwb2ludGVyLWV2ZW50c2AgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBzZWxlY3RcbiAqICAgICAgdGhlIHVuZGVybmVhdGggaW5wdXQgZWxlbWVudCB3aGVuIGNsaWNraW5nIG9uIHRoZSBsYWJlbC5cbiAqIFs2XSAgQWxsb3cgYWxsIGBwb2ludGVyLWV2ZW50c2Agb24gdGhlIGxhYmVsIHdoZW4gaXRzIHBhcmVudFxuICogICAgICBgLmMtZm9ybS1maWVsZGAgZWxlbWVudCBpcyBhY3RpdmUgb3IgaGFzIGZvY3VzLlxuICogWzddICBBcHBseSB0aGUgc3R5bGVzIG9mIHRoZSBpbnB1dCBzdGF0ZXMgdG8gdGhlIGAuYy1mb3JtLWZpZWxkYCBlbGVtZW50LlxuICogICAgICBXZSBvdmVycmlkZSB0aGUgZGVmYXVsdCBzdHlsZXMgdmlhIGAhaW1wb3J0YW50YCB0byBhdm9pZCBwb3RlbnRpYWwgY29uZmxpY3RzLlxuICogWzhdICBJZiBhIGhpbnQgaXMgZGlzcGxheWVkIHRvZ2V0aGVyIHdpdGggYW4gZXJyb3IgbWVzc2FnZSxcbiAqICAgICAgc3VidHJhY3QgdGhlIG1hcmdpbiBib3R0b20gZnJvbSB0aGUgZXJyb3IgbWVzc2FnZSB0byBkZWNyZWFzZSB0aGUgZGlzdGFuY2VcbiAqICAgICAgYmV0d2VlbiBoaW50IGFuZCBlcnJvciBtZXNzYWdlLlxuICogWzldICBMaW1pdCB3aWR0aCB0byBpdHMgY29udGVudC5cbiAqICAgICAgVXNlZnVsIHdoZW4gYSBsaW5rIGlzIHVzZWQgYW5kIG9ubHkgdGhlIHRleHQgc2hvdWxkIGJlIGNsaWNrYWJsZS5cbiAqIFsxMF0gU2V0IGEgZGlmZmVyZW50IHNwYWNpbmcgZm9yIHRoZSBsYWJlbCwgd2hpY2ggaXMgbmVlZGVkIGluIHNvbWUgY2FzZXMsXG4gKiAgICAgIGVzcGVjaWFsbHkgaW4gY29tYmluYXRpb24gd2l0aCBhIHRleHRhcmVhLlxuICogWzExXSBEaXNhYmxlIHRyYW5zZm9ybSBzZXR0aW5ncyBzbyB0aGF0IHRoZSBsYWJlbCBoYXMgdGhlIGNvcnJlY3QgcG9zaXRpb24uXG4gKiBbMTJdIFJlbW92ZSBzcGFjaW5nIGZvciBmbG9hdGluZyBsYWJlbHMuXG4gKiBbMTNdIEhhbmRsZSBzcGFjaW5nIHZpYSB0cmFuc2Zvcm0uXG4gKiBbMTRdIEVuc3VyZSByZWFkLW9ubHkgbGFiZWxzIGNhbiBub3QgYmUgaW50ZXJhY3RlZCB3aXRoIGFuZCBub3QgcmVseSBvblxuICogICAgICBzcGVjaWZpY2l0eS5cbiAqIFsxNV0gUmVtb3ZlIHVud2FudGVkIHNwYWNpbmcgdGhhdCBtaWdodCBiZSBhcHBsaWVkIGJ5IGRlZmF1bHRcbiAqICAgICAgZGVwZW5kaW5nIG9uIHVzZWQgZWxlbWVudC5cbiAqIFsxNl0gSW5kZW50IEZvcm0gRmllbGQgRXh0cmEgaWYgYSBDU1MgY3VzdG9tIHByb3BlcnR5IGlzIHNldFxuICogICAgICAoYnkgcmFkaW8gYnV0dG9uIG9yIGNoZWNrYm94KVxuKi9cbi5jLWZvcm0tZmllbGQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLmMtZm9ybS1maWVsZC5jLWZvcm0tZmllbGQtLWlubGluZSB7XG4gIC8qKlxuICAgKiBAVE9ETzpcbiAgICogY2hlY2sgaWYgdmVydGljYWwgaXMgc3VmZmljaWVudFxuICAgKiBmYWxsYmFja3M6IG5vbi1nYXBcbiAgICovXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICByb3ctZ2FwOiA4cHg7XG4gIGNvbHVtbi1nYXA6IDhweDtcbn1cbi5jLWZvcm0tZmllbGQuYy1mb3JtLWZpZWxkLS1pbmxpbmUgLmMtZm9ybS1maWVsZF9fbGFiZWwge1xuICBtYXJnaW46IDA7XG4gIHRyYW5zZm9ybTogbm9uZTsgLyogWzExXSAqL1xufVxuLmMtZm9ybS1maWVsZC5jLWZvcm0tZmllbGQtLWlubGluZSAuYy1mb3JtLWZpZWxkX19ib3gge1xuICBmbGV4LWdyb3c6IDE7XG4gIGZsZXgtc2hyaW5rOiAxO1xuICBmbGV4LWJhc2lzOiBhdXRvO1xufVxuLmMtZm9ybS1maWVsZC5jLWZvcm0tZmllbGQtLXRleHRhcmVhIHsgLyogWzEwXSAqLyB9XG4uYy1mb3JtLWZpZWxkLmMtZm9ybS1maWVsZC0tc3RhdGljIC5jLWZvcm0tZmllbGRfX2xhYmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLmMtZm9ybS1maWVsZDpmb2N1cy13aXRoaW4gLmMtZm9ybS1maWVsZF9fbGFiZWwge1xuICBjb2xvcjogIzQxOTQ2ODtcbn1cbi5jLWZvcm0tZmllbGQuaXMtZXJyb3IgLmMtZm9ybS1maWVsZF9faGludCB7XG4gIG1hcmdpbi10b3A6IC0xNnB4OyAvKiBbOF0gKi9cbn1cbi5jLWZvcm0tZmllbGQuaXMtcmVhZG9ubHkgLmMtZm9ybS1maWVsZF9fbGFiZWwge1xuICBwb2ludGVyLWV2ZW50czogbm9uZSAhaW1wb3J0YW50OyAvKiBbMTRdICovXG59XG5cbi5jLWZvcm0tZmllbGRfX2hpbnQge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIHdpZHRoOiBmaXQtY29udGVudDsgLyogWzldICovIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2NhbGUtdW5saW1pdGVkL2RlY2xhcmF0aW9uLXN0cmljdC12YWx1ZSAqL1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbMTVdICovXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjNWE1YjVjO1xufVxuXG5hLmMtZm9ybS1maWVsZF9faGludCwgLmMtZm9ybS1maWVsZF9faGludCBhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5jLWZvcm0tZmllbGRfX2xhYmVsIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAjNWE1YjVjO1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgei1pbmRleDogMjtcbiAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzEzXSAqL1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEycHgsIDEwMCUsIDApIHNjYWxlKDEpOyAvKiBbMl0gKi9cbiAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LWNsYXNzLCBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuZm9ybS5pcy1qcy1vbiAuYy1mb3JtLWZpZWxkOm5vdCguYy1mb3JtLWZpZWxkLS1uby1mbG9hdGluZywgLmMtZm9ybS1maWVsZC0taW5saW5lKSAuYy1mb3JtLWZpZWxkX19sYWJlbCB7XG4gIG1heC13aWR0aDogNzUlOyAvKiBbM10gKi9cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMnB4LCBjYWxjKDEwMCUgKyAxMnB4KSwgMCkgc2NhbGUoMS4zMzMzMzMzMzMzKTsgLyogWzJdICovXG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBsZWZ0OyAvKiBbMV0gKi9cbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIFs1XSAqL1xufVxuZm9ybS5pcy1qcy1vbiAuYy1mb3JtLWZpZWxkLS10ZXh0YXJlYTpub3QoLmMtZm9ybS1maWVsZC0tbm8tZmxvYXRpbmcsIC5jLWZvcm0tZmllbGQtLWlubGluZSkgLmMtZm9ybS1maWVsZF9fbGFiZWwgeyAvKiBbNF0gKi9cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMnB4LCBjYWxjKDEwMCUgKyAxMnB4KSwgMCkgc2NhbGUoMS4zMzMzMzMzMzMzKTsgLyogWzJdICovXG59XG5mb3JtLmlzLWpzLW9uIC5jLWZvcm0tZmllbGQ6bm90KC5jLWZvcm0tZmllbGQtLW5vLWZsb2F0aW5nLCAuYy1mb3JtLWZpZWxkLS1pbmxpbmUpOmZvY3VzLXdpdGhpbiAuYy1mb3JtLWZpZWxkX19sYWJlbCwgZm9ybS5pcy1qcy1vbiAuYy1mb3JtLWZpZWxkOm5vdCguYy1mb3JtLWZpZWxkLS1uby1mbG9hdGluZywgLmMtZm9ybS1maWVsZC0taW5saW5lKS5pcy1hY3RpdmUgLmMtZm9ybS1maWVsZF9fbGFiZWwge1xuICBtYXgtd2lkdGg6IDc1JTsgLyogWzNdICovXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTJweCwgMTAwJSwgMCkgc2NhbGUoMSk7IC8qIFsyXSAqL1xuICBjb2xvcjogIzE2MTcxODtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDsgLyogWzZdICovXG59XG5mb3JtLmlzLWpzLW9uIC5jLWZvcm0tZmllbGQuYy1mb3JtLWZpZWxkLS1zdGF0aWMgLmMtZm9ybS1maWVsZF9fbGFiZWwge1xuICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsgLyogWzExXSAqL1xufVxuZm9ybS5pcy1qcy1vbiAuYy1mb3JtLWZpZWxkLS10ZXh0YXJlYTpub3QoLmMtZm9ybS1maWVsZC0tbm8tZmxvYXRpbmcsIC5jLWZvcm0tZmllbGQtLWlubGluZSk6Zm9jdXMtd2l0aGluIC5jLWZvcm0tZmllbGRfX2xhYmVsLCBmb3JtLmlzLWpzLW9uIC5jLWZvcm0tZmllbGQtLXRleHRhcmVhOm5vdCguYy1mb3JtLWZpZWxkLS1uby1mbG9hdGluZywgLmMtZm9ybS1maWVsZC0taW5saW5lKS5pcy1hY3RpdmUgLmMtZm9ybS1maWVsZF9fbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEycHgsIDEwMCUsIDApIHNjYWxlKDEpOyAvKiBbMl0gKi9cbn1cbmZvcm0uaXMtanMtb24gLmMtZm9ybS1maWVsZDpob3Zlcjpub3QoOmZvY3VzLXdpdGhpbiwgLmlzLWRpc2FibGVkKSAuYy1mb3JtLWZpZWxkX19sYWJlbCB7XG4gIGNvbG9yOiAjMTYxNzE4ICFpbXBvcnRhbnQ7IC8qIFs3XSAqL1xufVxuZm9ybS5pcy1qcy1vbiAuYy1mb3JtLWZpZWxkOm5vdCg6Zm9jdXMtd2l0aGluLCA6aG92ZXIpLmlzLXN1Y2Nlc3MgLmMtZm9ybS1maWVsZF9fbGFiZWwge1xuICAvKiBbN10gKi9cbn1cbmZvcm0uaXMtanMtb24gLmMtZm9ybS1maWVsZDpub3QoOmZvY3VzLXdpdGhpbikuaXMtc3VjY2Vzczpob3ZlciAuYy1mb3JtLWZpZWxkX19sYWJlbCB7XG4gIGNvbG9yOiAjMTYxNzE4ICFpbXBvcnRhbnQ7IC8qIFs3XSAqL1xufVxuZm9ybS5pcy1qcy1vbiAuYy1mb3JtLWZpZWxkOm5vdCg6Zm9jdXMtd2l0aGluLCA6aG92ZXIpLmlzLWVycm9yIC5jLWZvcm0tZmllbGRfX2xhYmVsIHtcbiAgLyogWzddICovXG59XG5mb3JtLmlzLWpzLW9uIC5jLWZvcm0tZmllbGQ6bm90KDpmb2N1cy13aXRoaW4pLmlzLWVycm9yOmhvdmVyIC5jLWZvcm0tZmllbGRfX2xhYmVsIHtcbiAgY29sb3I6ICNlODJiMzcgIWltcG9ydGFudDsgLyogWzddICovXG59XG5mb3JtLmlzLWpzLW9uIC5jLWZvcm0tZmllbGQuaXMtZGlzYWJsZWQgLmMtZm9ybS1maWVsZF9fbGFiZWwge1xuICBjb2xvcjogIzllOWZhMCAhaW1wb3J0YW50OyAvKiBbN10gKi9cbn1cbmZvcm0uaXMtanMtb24gLmMtZm9ybS1maWVsZC5pcy1yZWFkb25seSAuYy1mb3JtLWZpZWxkX19sYWJlbCB7XG4gIGNvbG9yOiAjMTYxNzE4ICFpbXBvcnRhbnQ7IC8qIFs3XSAqL1xufVxuXG4uYy1mb3JtLWZpZWxkX19leHRyYSB7XG4gIHBhZGRpbmctbGVmdDogdmFyKC0tZm9ybS1maWVsZC1leHRyYS1pbmRlbnQsIDApOyAvKiBbMTZdICovXG59XG4uYy1mb3JtLWZpZWxkX19leHRyYSAqOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4vKipcbiAqIFsxXSBTZXQgZGlmZmVyZW50IGNvbG9yIGZvciBmb2N1cyB0aGFuIGFjdGl2ZSwgd2hpY2ggaXMgY29tYmluZWQgaW4gZGVmYXVsdC5cbiAqIFsyXSBBZGp1c3QgbGFiZWwgY29sb3IgaW4gZmlsbGVkIHN0YXRlLCBmb3IgYm90aCBzdGF0aWMgYW5kIGZsb2F0aW5nIGxhYmVscy5cbiAqIFszXSBQcmV2ZW50IGxhYmVsIGZyb20gY3JlYXRpbmcgZXh0cmEgc3BhY2UgYWJvdmUgZm9ybS1maWVsZC5cbiAqL1xuLmMtZm9ybS1maWVsZF9fbGFiZWwge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHksIHNlbGVjdG9yLW1heC1jbGFzcyAqL1xufVxuLmMtZm9ybS1maWVsZC5pcy1hY3RpdmUgLmMtZm9ybS1maWVsZF9fbGFiZWwge1xuICBjb2xvcjogIzE2MTcxODsgLyogWzJdICovXG59XG5mb3JtLmlzLWpzLW9uIC5jLWZvcm0tZmllbGQ6bm90KC5jLWZvcm0tZmllbGQtLWlubGluZSk6Zm9jdXMtd2l0aGluIC5jLWZvcm0tZmllbGRfX2xhYmVsIHtcbiAgY29sb3I6ICM0MTk0Njg7IC8qIFsxXSAqL1xufVxuZm9ybS5pcy1qcy1vbiAuYy1mb3JtLWZpZWxkLmlzLWVycm9yOm5vdCguYy1mb3JtLWZpZWxkLS1pbmxpbmUpOmZvY3VzLXdpdGhpbiAuYy1mb3JtLWZpZWxkX19sYWJlbCB7XG4gIGNvbG9yOiAjZTgyYjM3O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjRk9STS1TRUNUSU9OXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIEJvcmRlciBiZWxvdyB0aGUgbGFzdCBhY2NvcmRpb24gaXRlbS5cbiAqIFsyXSBSZXNldCB2YXJpb3VzIGJyb3dzZXIgYW5kIGdlbmVyYWwgYnV0dG9uIHN0eWxlcyB0aGF0IHdvdWxkIGludGVyZmVyZVxuICogICAgIHdpdGggZm9ybSBzZWN0aW9uIGhlYWRlciBvciB0aXRsZSBzdHlsZXMuXG4gKiBbM10gTWF4IGxpbmUtbGVuZ3RoIG9mIHRpdGxlLlxuICogWzRdIFJlbW92ZSBib3R0b20gbWFyZ2luIG9mIGVpdGhlciB0aXRsZSwgc3VidGl0bGUgb3IgbGFzdCBjb250ZW50IGVsZW1lbnQuXG4gKiBbNV0gQWRkIHNwYWNpbmcgYmV0d2VlbiBzZWN0aW9ucywgZXhjZXB0IGlmIGl0IGlzIHRoZSBvbmx5L2xhc3QgaXRlbVxuICogICAgIHdpdGhpbiBpdHMgd3JhcHBlci5cbiAqIFs2XSBIaWRlIGJ1dHRvbiBsaW5rIGljb24gaWYgYnJhbmQgbmVlZHMgaXQgYmFzZWQgb24gdmFyaWFibGUgc2V0dGluZy5cbiAqIFs3XSBSZXNldCBidXR0b24gbGluayBtYXJnaW4gaWYgbm8gaWNvbiBpcyBzaG93bi4gSGlnaCBzcGVjaWZpY2l0eSBuZWVkZWRcbiAqICAgICBpbiBvcmRlciB0byBvdmVyd3JpdGUgZGVmYXVsdCBidXR0b24gc3R5bGVzLlxuICogWzhdIFByb3Blcmx5IGFsaWduIGxpbmsgYnV0dG9uIHZlcnRpY2FsbHkgd2l0aCB0aXRsZS5cbiAqIFs5XSBTcGFuIHRpdGxlIHdyYXBwZXIgdG8gZnVsbCB3aWR0aCB0byBiZSBhYmxlIHRvIHBsYWNlIHRoZSBsaW5rIGVsZW1lbnRcbiAqICAgICAgbW9yZSBmbGV4aWJsZSAoZS5nLiB0byB0aGUgcmlnaHQpLlxuICogWzEwXSBDdXQgb2ZmIHRpdGxlIGFuZCBzdWJ0aXRsZSBvbmx5IHdoZW4gc2VjdGlvbiBpcyBjb2xsYXBzZWQuXG4gKiBbMTFdIEFsaWduIGl0ZW0gdG8gdG9wIG9uIHNtYWxsIHNjcmVlbnMgdG8gcHJldmVudCB2ZXJ0aWNhbCBtb3ZlbWVudCB1cG9uXG4gKiAgICAgIG9wZW5pbmcvY2xvc2luZyB0aGUgc2VjdGlvbiB3aXRoIHRydW5jYXRlZCB0aXRsZSBhbmQgc3VidGl0bGUuXG4gKiBbMTJdIFByZXZlbnQgdW53YW50ZWQgdmVydGljYWwgbW92ZW1lbnQgd2hlbiB0cnVuY2F0aW5nIGlzIHRyaWdnZXJlZCB1cG9uXG4gKiAgICAgIG9wZW5pbmcvY2xvc2luZyB0aGUgc2VjdGlvbi5cbiAqIFsxM10gQWxpZ24gbGluayBidXR0b24gdmVydGljYWxseSB3aXRoIHRpdGxlIGJhc2VsaW5lIGFzIHRoZSBkZWZhdWx0IHNldHRpbmdcbiAqICAgICAgdmFyaWVzIGZyb20gYnJvd3NlciB0byBicm93c2VyIChlLmcuIEdvb2dsZSBDaHJvbWUpLlxuICogWzE0XSBDb2xsYXBzZS9leHBhbmQgcGFuZWwgd2l0aCBDU1Mgb25seSBieSB1dGlsaXppbmcgdGhlIGBhbmltYXRlLWhlaWdodGBcbiAqICAgICAgbWl4aW4uXG4gKiBbMTVdIENvdmVyaW5nIG92ZXJsYXkgaW4gZGlzYWJsZWQgc3RhdGUuIFRvIGFsc28gZGlzYWJsZSBhbGwgZm9ybSBmaWVsZHMgb24gYVxuICogICAgICBtYXJrdXAgbGV2ZWwsIGFkZCB0aGUgYGRpc2FibGVkYCBhdHRyaWJ1dGUgdG8gdGhlIGBmaWVsZHNldGAgZWxlbWVudC5cbiAqICAgICAgU2VlIGh0dHBzOi8vY29kZXBlbi5pby9zdGV2ZWYvcG9zdC9zaG9ydC1ub3RlLW9uLXRoZS1kaXNhYmxlZC1hdHRyaWJ1dGVcbiAqIFsxNl0gU3RhY2sgb3ZlcmxheSBhYm92ZSBzdGFja2VkIGVsZW1lbnRzIGluc2lkZSBmb3JtLXNlY3Rpb24uXG4gKiAgICAgIFVzZSBhcmJpdHJhcnkvc2NvcGVkIHZhbHVlIGFzIGl0J3Mgbm90IHJlbGV2YW50IGluIGdsb2JhbCBzdGFja2luZ1xuICogICAgICBjb250ZXh0IGFuZCB0aGVyZWZvcmUgbm90IGluIGAkWi1MQVlFUlNgLlxuICogWzE3XSBHcmF5c2NhbGUgLyBkZXNhdHVyYXRlIHZpYSBvdmVybGF5IHRvIGVtcGhhc2l6ZSB0aGUgZGlzYWJsZWQgc3RhdGUuXG4gKiAgICAgIFdvcmtzIG9ubHkgaW4gYnJvd3NlcnMgc3VwcG9ydGluZyBDU1MgZmlsdGVyLlxuICogWzE4XSBEaXNhYmxlIHZpc3VhbCBmb2N1cyBpbmRpY2F0b3IgaW4gZGlzYWJsZWQgc3RhdGUuXG4gKiBbMTldIFwiU3RhY2tcIiBoZWFkZXIgKHRyaWdnZXJzIHRvZ2dsZSkgYWJvdmUgZGlzYWJsZWQgc2VjdGlvbiBpbiBvcmRlciB0b1xuICogICAgICBhbGxvdyBleHBhbmRpbmcvY29sbGFwc2luZyBmb3JtIHNlY3Rpb24uXG4gKiAgICAgIFRoZSB2YWx1ZSBpcyBhIG1hZ2ljIG51bWJlciBhbmQgb25seSB3b3JrcyA+IDEwLlxuICogICAgICBOb3QgaW4gZ2xvYmFsIHN0YWNraW5nIGNvbnRleHQgYW5kIHRoZXJlZm9yZSBub3QgaW4gYCRaLUxBWUVSU2AuXG4gKiBbMjBdIFJlc2V0IGhlYWRpbmcgc3R5bGVzLlxuICogWzIxXSBTZXQgb3BhY2l0eSBvZiBmb3JtIGxhYmVscyB0byBgMGAgdG8gbGV0IGZsb2F0aW5nIGZvcm0gbGFiZWxzIGJsZW5kIGluLlxuICogICAgICBPdGhlcndpc2UgdGhleSB3b3VsZCBiZSB2aXNpYmxlIGR1cmluZyB0aGUgZm9ybSBzZWN0aW9uIHRyYW5zaXRpb25cbiAqICAgICAgYmVjYXVzZSBvZiB0aGVpciBhYnNvbHV0ZSBwb3NpdGlvbmluZyBpbnNpZGUgYSBncmlkIGl0ZW0gWzIzXS5cbiAqIFsyMl0gSW5jcmVhc2Ugc3BlY2lmaWNpdHksIHNvIHRoYXQgdGhlIHN0eWxlcyBkb24ndCBnZXQgb3ZlcndyaXR0ZW4gYnkgdGhlXG4gKiAgICAgIGljb24gY29tcG9uZW50IGxhdGVyIG9uLlxuICogWzIzXSBVc2UgYGdyaWQtdGVtcGxhdGUtcm93c2AgdG8gdHJhbnNpdGlvbiB0aGUgaGVpZ2h0LlxuICogICAgICBObyBtb3JlIGNob3BweSBgbWF4LWhlaWdodGAgdHJhbnNpdGlvbi4gKHNlZSBodHRwczovL3d3dy5zdGVmYW5qdWRpcy5jb20vc25pcHBldHMvaG93LXRvLWFuaW1hdGUtaGVpZ2h0LXdpdGgtY3NzLWdyaWQvKVxuICogWzI0XSBXZSBoYXZlIHRvIHNldCB0aGUgdmVydGljYWwgcGFkZGluZ3MgZm9yIGNoaWxkIGVsZW1lbnQgaW5zdGVhZCBvZiB0aGVcbiAqICAgICAgZm9ybSBzZWN0aW9uIGNvbnRlbnQgZWxlbWVudC4gT3RoZXJ3aXNlIHRoZSBjb250ZW50IHdvdWxkIG5vdCBjb21wbGV0ZWx5XG4gKiAgICAgIGJlIGhpZGRlbiBpbiBjb2xsYXBzZWQgc3RhdGUgYmVjYXVzZSBpdOKAmXMgYSBncmlkIGl0ZW0gWzIzXS5cbiAqIFsyNV0gSW5oZXJpdCByYWRpdXMgZnJvbSBzZWN0aW9uIHRvIHByZXZlbnQgb3ZlcmxheSBjdXR0aW5nIG9mIGJvcmRlci5cbiAqL1xuLmMtZm9ybS1zZWN0aW9uW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0sXG4uYy1mb3JtLXNlY3Rpb25bYXJpYS1kaXNhYmxlZD10cnVlXSAuYy1mb3JtLXNlY3Rpb25fX2hlYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3V0bGluZTogMDsgLyogWzE4XSAqL1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgxKTsgLyogWzE3XSAqL1xufVxuLmMtZm9ybS1zZWN0aW9uW2FyaWEtZGlzYWJsZWQ9dHJ1ZV06OmFmdGVyLFxuLmMtZm9ybS1zZWN0aW9uW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLmMtZm9ybS1zZWN0aW9uX19oZWFkZXI6OmFmdGVyIHsgLyogWzE1XSAqL1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwOyAvKiBbMTZdICovXG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDsgLyogWzI1XSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uYy1mb3JtLXNlY3Rpb25bYXJpYS1kaXNhYmxlZD10cnVlXSAuYy1mb3JtLXNlY3Rpb25fX2hlYWRlciB7XG4gIHotaW5kZXg6IDIwOyAvKiBbMTldICovXG4gIGJveC1zaGFkb3c6IG5vbmU7IC8qIFsxOF0gKi9cbn1cblxuLmMtZm9ybS1zZWN0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU0O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gIC8qKlxuICAgKiBbMV0gQ2hlY2sgaWYgYSB0aGVtZSBpcyBzZXQgb3IgaWYgdGhlIGRlZmF1bHQgdGhlbWUgKG51bGwpIGlzIHVzZWQuXG4gICAqICAgICBJZiB0aGUgYGRlZmF1bHRgIHRoZW1lIGlzIHVzZWQgd2UgZXhlY3V0ZSB0aGUgYWxyZWFkeSBwcmVzZW50IGxvZ2ljLFxuICAgKiAgICAgZWxzZSB3ZSBqdXN0IHJldHVybiB0aGUgY29udGVudCB1bndyYXBwZWQuXG4gICAqL1xufVxuLyogWzFdICovXG5bZGF0YS10aGVtZT1hbHRlcm5hdGl2ZV0gLmMtZm9ybS1zZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLmMtZm9ybS1zZWN0aW9uOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiAyNHB4OyAvKiBbNV0gKi9cbn1cbi5jLWZvcm0tc2VjdGlvbjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogIzE2MTcxODtcbn1cbi5jLWZvcm0tc2VjdGlvbi5jLWZvcm0tc2VjdGlvbi0tZXJyb3Ige1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTgyYjM3O1xufVxuXG4uYy1mb3JtLXNlY3Rpb25fX2hlYWRlciB7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8qIFsyXSAqL1xuICBwYWRkaW5nLXRvcDogMjRweDtcbiAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgcGFkZGluZy1ib3R0b206IDI0cHg7XG4gIHBhZGRpbmctbGVmdDogMjRweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogWzJdICovXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyAvKiBbMl0gKi9cbiAgdGV4dC1hbGlnbjogbGVmdDsgLyogWzJdICovXG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5jLWZvcm0tc2VjdGlvbl9faGVhZGVyOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLmMtZm9ybS1zZWN0aW9uX19oZWFkZXItY29udGVudCB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy1yaWdodDogMTZweDtcbn1cbi5jLWZvcm0tc2VjdGlvbl9faGVhZGVyLWNvbnRlbnQgPiAqOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbNF0gKi9cbn1cblxuLmMtZm9ybS1zZWN0aW9uX190aXRsZSB7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8qIFsyXSAqL1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IC8qIFsxM10gKi9cbiAgd2lkdGg6IDEwMCU7IC8qIFs5XSAqL1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiBbMjBdICovXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiBpbmhlcml0OyAvKiBbMjBdICovXG4gIHRleHQtYWxpZ246IGxlZnQ7IC8qIFsyXSAqL1xuICBjb2xvcjogIzE2MTcxODtcbiAgb3V0bGluZTogbm9uZTsgLyogWzJdICovXG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5jLWZvcm0tc2VjdGlvbl9fdGl0bGU6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuXG4uYy1mb3JtLXNlY3Rpb25fX3RpdGxlLXRleHQge1xuICBtYXgtd2lkdGg6IDMwZW07IC8qIFszXSAqL1xufVxuLmMtZm9ybS1zZWN0aW9uX19oZWFkZXJbYXJpYS1leHBhbmRlZD1mYWxzZV06bm90KC5jLWZvcm0tc2VjdGlvbl9faGVhZGVyLS1uby10cnVuY2F0ZSkgLmMtZm9ybS1zZWN0aW9uX190aXRsZS10ZXh0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvKiBbMTBdICovXG59XG5cbi5jLWZvcm0tc2VjdGlvbl9fdGl0bGUtbGluay5jLWZvcm0tc2VjdGlvbl9fdGl0bGUtbGluayB7IC8qIFsyMl0gKi9cbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtZm9ybS1zZWN0aW9uX190aXRsZS1saW5rLmMtZm9ybS1zZWN0aW9uX190aXRsZS1saW5rIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5jLWZvcm0tc2VjdGlvbl9fc3VidGl0bGUge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIFsxMl0gKi9cbiAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogWzEyXSAqL1xuICBmb250LXdlaWdodDogMzAwO1xuICBjb2xvcjogIzE2MTcxODtcbn1cbi5jLWZvcm0tc2VjdGlvbl9faGVhZGVyW2FyaWEtZXhwYW5kZWQ9ZmFsc2VdOm5vdCguYy1mb3JtLXNlY3Rpb25fX2hlYWRlci0tbm8tdHJ1bmNhdGUpIC5jLWZvcm0tc2VjdGlvbl9fc3VidGl0bGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC8qIFsxMF0gKi9cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLWZvcm0tc2VjdGlvbl9faGVhZGVyLWljb24ge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IC8qIFsxMV0gKi9cbiAgfVxufVxuLmMtZm9ybS1zZWN0aW9uX19oZWFkZXItaWNvbjo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJicm9uc29uLXNrb2RhXCIgIWltcG9ydGFudDsgLyogWzFdICovXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBjb250ZW50OiBcIlxcZjFjMVwiO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGNvbG9yOiAjMTYxNzE4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zMzMzMzMzMzMzcyBlYXNlO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLWZvcm0tc2VjdGlvbl9faGVhZGVyLWljb246OmJlZm9yZSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cbn1cbi5jLWZvcm0tc2VjdGlvbi0tc3VjY2VzcyAuYy1mb3JtLXNlY3Rpb25fX2hlYWRlci1pY29uOjpiZWZvcmUsIC5jLWZvcm0tc2VjdGlvbi0tZXJyb3IgLmMtZm9ybS1zZWN0aW9uX19oZWFkZXItaWNvbjo6YmVmb3JlIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0cmFuc2Zvcm06IG5vbmU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtZm9ybS1zZWN0aW9uLS1zdWNjZXNzIC5jLWZvcm0tc2VjdGlvbl9faGVhZGVyLWljb246OmJlZm9yZSwgLmMtZm9ybS1zZWN0aW9uLS1lcnJvciAuYy1mb3JtLXNlY3Rpb25fX2hlYWRlci1pY29uOjpiZWZvcmUge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG59XG4uYy1mb3JtLXNlY3Rpb24tLXN1Y2Nlc3MgLmMtZm9ybS1zZWN0aW9uX19oZWFkZXItaWNvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDZcIjtcbiAgY29sb3I6ICMzN2QwMDI7XG59XG4uYy1mb3JtLXNlY3Rpb24tLWVycm9yIC5jLWZvcm0tc2VjdGlvbl9faGVhZGVyLWljb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTdhXCI7XG4gIGNvbG9yOiAjZTgyYjM3O1xufVxuLmMtZm9ybS1zZWN0aW9uX19oZWFkZXJbYXJpYS1leHBhbmRlZD10cnVlXSAuYy1mb3JtLXNlY3Rpb25fX2hlYWRlci1pY29uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiMVwiO1xuICB0cmFuc2Zvcm06IG5vbmU7XG59XG4uYy1mb3JtLXNlY3Rpb24tLXN1Y2Nlc3MgLmMtZm9ybS1zZWN0aW9uX19oZWFkZXJbYXJpYS1leHBhbmRlZD10cnVlXSAuYy1mb3JtLXNlY3Rpb25fX2hlYWRlci1pY29uOjpiZWZvcmUsIC5jLWZvcm0tc2VjdGlvbi0tZXJyb3IgLmMtZm9ybS1zZWN0aW9uX19oZWFkZXJbYXJpYS1leHBhbmRlZD10cnVlXSAuYy1mb3JtLXNlY3Rpb25fX2hlYWRlci1pY29uOjpiZWZvcmUge1xuICB0cmFuc2Zvcm06IG5vbmU7XG59XG4uYy1mb3JtLXNlY3Rpb24tLXN1Y2Nlc3MgLmMtZm9ybS1zZWN0aW9uX19oZWFkZXJbYXJpYS1leHBhbmRlZD10cnVlXSAuYy1mb3JtLXNlY3Rpb25fX2hlYWRlci1pY29uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0NlwiO1xufVxuLmMtZm9ybS1zZWN0aW9uLS1lcnJvciAuYy1mb3JtLXNlY3Rpb25fX2hlYWRlclthcmlhLWV4cGFuZGVkPXRydWVdIC5jLWZvcm0tc2VjdGlvbl9faGVhZGVyLWljb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTdhXCI7XG59XG5cbi5jLWZvcm0tc2VjdGlvbl9fcGFuZWwge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGdyaWQtdGVtcGxhdGUtcm93cztcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAwLjVzKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICAvKiBbMjNdICovXG4gIGRpc3BsYXk6IGdyaWQ7IC8qIFsyM10gKi9cbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7IC8qIFsyM10gKi9cbn1cbi5jLWZvcm0tc2VjdGlvbl9fcGFuZWwgPiAqIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogWzIzXSAqL1xufVxuLmMtZm9ybS1zZWN0aW9uX19wYW5lbDpub3QoW2FyaWEtaGlkZGVuPWZhbHNlXSkgLmMtZm9ybS1maWVsZF9fbGFiZWwge1xuICBvdmVyZmxvdzogaGlkZGVuOyAvKiBbMjRdICovXG4gIG9wYWNpdHk6IDA7IC8qIFsyMV0gKi9cbn1cbi5jLWZvcm0tc2VjdGlvbl9fcGFuZWxbYXJpYS1oaWRkZW49ZmFsc2VdIHtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7IC8qIFsyM10gKi9cbn1cblxuLmMtZm9ybS1zZWN0aW9uX19jb250ZW50IHtcbiAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgcGFkZGluZy1sZWZ0OiAyNHB4O1xufVxuLmMtZm9ybS1zZWN0aW9uX19jb250ZW50ID4gOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIC8qIFsyNF0gKi9cbn1cbi5jLWZvcm0tc2VjdGlvbl9fY29udGVudCA+IDpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy1ib3R0b206IDI0cHg7XG4gIC8qIFsyNF0gKi9cbiAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzRdICovXG59XG5cbi5jLWZvcm0tc2VjdGlvbiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYm9yZGVyLWNvbG9yO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xufVxuXG4uYy1mb3JtLXNlY3Rpb25fX2hlYWRlci1pY29uIHtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBzY2FsZTogMTtcbn1cbi5jLWZvcm0tc2VjdGlvbl9faGVhZGVyLWljb246OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAtMTtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0cmFuc2l0aW9uOiBpbmhlcml0O1xufVxuLmMtZm9ybS1zZWN0aW9uX19oZWFkZXI6aG92ZXIgLmMtZm9ybS1zZWN0aW9uX19oZWFkZXItaWNvbjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyLCAyMywgMjQsIDAuMDYpO1xufVxuXG4uYy1mb3JtLXNlY3Rpb25fX2hlYWRlcjpmb2N1cy12aXNpYmxlIC5jLWZvcm0tc2VjdGlvbl9faGVhZGVyLWljb246OmFmdGVyIHtcbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjMTYxNzE4O1xuICAtLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiAwO1xuICAtLWZvY3VzLW91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICAtLWZvY3VzLW91dGxpbmUtd2lkdGg6IDJweDtcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9jdXMtb3V0bGluZS1jb2xvciwgIzE2MTcxOCk7XG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1mb2N1cy1vdXRsaW5lLW9mZnNldCwgMXB4KTtcbiAgb3V0bGluZS1zdHlsZTogdmFyKC0tZm9jdXMtb3V0bGluZS1zdHlsZSwgc29saWQpO1xuICBvdXRsaW5lLXdpZHRoOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXdpZHRoLCAycHgpO1xufVxuXG4uYy1mb3JtLXNlY3Rpb25fX2hlYWRlcjphY3RpdmUgLmMtZm9ybS1zZWN0aW9uX19oZWFkZXItaWNvbiB7XG4gIHNjYWxlOiAwLjk1O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSU5QVVQtVEVYVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBBbGxvdyB1cyB0byBzdHlsZSBib3ggbW9kZWwgcHJvcGVydGllcy5cbiAqIFsyXSBMaW5lIGRpZmZlcmVudCBzaXplZCBpbnB1dHMgdXAgYSBsaXR0bGUgbmljZXIuXG4gKiBbM10gT25seSBjaGFuZ2UgYm9yZGVyIGZvciBub24tYmFja2dyb3VuZCBhZGRvbnMuXG4gKiBbNF0gSWYgdGhlIGlucHV0IGhhcyByb3VuZGVkIGJvcmRlcnMsIHRoZSBmYWtlIGxpbmUncyBgd2lkdGhgIG11c3QgaGF2ZSB0aGVcbiAqICAgICBzYW1lIHZhbHVlIGFzIHRoZSBgYm9yZGVyLXJhZGl1c2AgdG8gdG90YWxseSBjb3ZlciB0aGUgYm9yZGVyLiBUaGVcbiAqICAgICBpbnB1dCdzIGJvcmRlciBtdXN0IGJlIHJlcGxhY2VkIGJ5IGEgYm9yZGVyIGF0dGFjaGVkIHRvIHRoZSBmYWtlIGxpbmUuXG4gKiBbNV0gU2V0IG1pbmltdW0gd2lkdGggZm9yIGFkZG9uIHRvIGhhdmUgZXF1YWwgc2l6ZVxuICogICAgIHVwIHRvIGEgY2VydGFpbiBhbW91bnQgb2YgY29udGVudC5cbiAqIFs2XSBSZXNldCBkZWZhdWx0IGxhYmVsIHNwYWNpbmcuXG4gKiBbN10gQm9yZGVyLWRlcGVuZHMgb24gdGhlIHBvc2l0aW9uIG9mIHN5bWJvbC5cbiAqIFs4XSBDb250cm9sIHBvc2l0aW9uIG9mIGFkZG9uIHZpYSBDU1MgLSBub3QgbWFya3VwIG9yZGVyLlxuICogWzldIFNldCBpbnB1dCBoZWlnaHQgKG1pbnVzIHZlcnRpY2FsIGJvcmRlcnMpLlxuICogWzEwXSBSZXNldCBkZWZhdWx0IGJ1dHRvbi1zdHlsZS5cbiAqIFsxMV0gQ2hyb21lIG5lZWRzIGEgcmVzZXQgYXBwZWFyYW5jZSwgb3RoZXJ3aXNlIGl0IHNldHMgYSBkZWZhdWx0XG4gKiAgICAgIGJvcmRlci1yYWRpdXMsIGluIGNhc2UgaXQncyBhIGA8c2VsZWN0PmAuXG4gKiBbMTJdIFRleHRhcmVhcyBtdXN0IG5vdCBnZXQgYSBmaXhlZCBoZWlnaHQgYW5kIGEgY29ycmVzcG9uZGluZyBsaW5lLWhlaWdodC4uLlxuICogWzEzXSAuLi5idXQgaW5zdGVhZCBnZXQgYSBjdXN0b20gcGFkZGluZy10b3AgYW5kIC1ib3R0b20gdG8gb2Zmc2V0IHRoZSB0ZXh0XG4gKiAgICAgIGNvbnRlbnQgZnJvbSB0aGUgdG9wIGVkZ2Ugb2YgdGhlIHRleHRhcmVhLlxuICogWzE0XSBEZWZlbnNpdmVseSByZXNldCBib3JkZXItcmFkaXVzLlxuICogWzE1XSBDcmVhdGUgY29tcGxldGUgYm9yZGVyLXJhZGl1cyB3aGVuIHRoZXJlIGlzIG5vIGAuYy1pbnB1dF9fYWRkb25gLlxuICogWzE2XSBQZXJmZWN0bHkgYWxpZ24gdGhlIGljb24gaW5zaWRlIG9mIGAuYy1pbnB1dF9fYWRkb25gLlxuICogWzE3XSBXaGVuIHRoZSBpbnB1dCBpcyBhIGA8c2VsZWN0PmAsIHRoZSBhZGRvbiBpcyB0YWtlbiBvdXQgb2YgdGhlIGRvY3VtZW50c1xuICogICAgICBmbG93LCBzbyB0aGUgYm9yZGVyLXJhZGl1cyBuZWVkcyB0byBiZSBzZXQgZXhwbGljaXRseSBoZXJlLlxuICogWzE4XSBTaW5jZSB0aGUgdGhlIGljb24gaXMgbGF5aW5nIG9uIHRvcCBvZiB0aGUgc2VsZWN0LCBhIGNsaWNrIG9uIHRoZSBhcnJvd1xuICogICAgICBoYXMgdG8gYmUgaWdub3JlZCBhbmQgbG9vcGVkIHRocm91Z2ggdG8gdGhlIHNlbGVjdCBpdHNlbGYuXG4gKiBbMTldIElmIGl0J3MgYSBgPHNlbGVjdD5gLCBkb24ndCBsZXQgbG9uZyBzZWxlY3QgaW5wdXQgdGV4dCBvdmVyZmxvdyB0aGVcbiAqICAgICAgZHJvcGRvd24gYXJyb3cuXG4gKiBbMjBdIFZlcnRpY2FsIGNlbnRlciB0aGUgaWNvbi5cbiAqIFsyMV0gRmlyZWZveCB3b24ndCBoaWRlIGl0cyBkb3R0ZWQgb3V0bGluZSBvbiBmb2N1cyBvbiBzZWxlY3QgZWxlbWVudHMuIFRoaXNcbiAqICAgICAgZml4ZXMgaXQuIEJlIGF3YXJlOiBBbHRob3VnaCBpdCB3b3JrcywgaXQncyBzdGlsbCBhIGhhY2shXG4gKiBbMjJdIFJlc2V0IHN0eWxlcyBvZiBpbnB1dCBhbmQgYC5jLWlucHV0X19hZGRvbmAgZm9yIHJlYWRvbmx5IHN0YXRlIHRvXG4gKiAgICAgIHByZXZlbnQgZm9jdXMgc3R5bGVzIGZyb20gYmVpbmcgdXNlZCBoZXJlLlxuICogWzIzXSBSZXNldCBzdHlsZXMgb2YgaW5wdXQgYW5kIGAuYy1pbnB1dF9fYWRkb25gIGZvciBkaXNhYmxlZCBzdGF0ZSB0b1xuICogICAgICBwcmV2ZW50IGRlZmF1bHQgc3R5bGVzIGZyb20gYmVpbmcgdXNlZCBoZXJlXG4gKiBbMjRdIFByZXZlbnQgSUUgMTEgYW5kIEVkZ2UgZnJvbSBzaG93aW5nIGEgYnJvd3NlciBkZWZhdWx0IGNyb3NzIGljb24gdG8gY2xlYXJcbiAqICAgICAgdGhlIHRleHQgaW5wdXQuXG4gKiBbMjVdIEZpeGVzIEZpcmVmb3ggaXNzdWUuIEZpcmVmb3ggZ3Jvd3MgdGhlIGlucHV0IHdoZW4gYW4gaW5wdXQgYWRkb24gaXNcbiAqICAgICAgcHJlc2VudC4gYG1pbi13aWR0aDogMGAgZml4ZXMgdGhhdCBpc3N1ZS4gKGh0dHBzOi8vZ2l0aHViLmNvbS9waGlsaXB3YWx0b24vZmxleGJ1Z3MvdHJlZS8zOGZkYmU0MDhlMmFlNmRjZjMyYmZmMWUyOWRiNDFjNmFiOTY0ZjU1I2ZsZXhidWctMSlcbiAqIFsyNl0gV2hlbiB0aGUgZHJvcGRvd24gaWNvbiBpcyBoaWRkZW4gYXQgZGlzYWJsZWQgc3RhdGUsIHN0YWNrIHRoZSBzZWxlY3RcbiAqICAgICAgYWJvdmUgdGhlIGRyb3Bkb3duLiBUaGlzIGlzIGRvbmUgYXMgdGhlcmUgaXMgbm8gd2F5XG4gKiAgICAgIChkdWUgdG8gbWlzc2luZyBwYXJlbnQgc2VsZWN0b3IpIHRvIHNlbGVjdCB0aGUgaWNvbiAocHNldWRvIGVsZW1lbnQgb24gcGFyZW50KVxuICogICAgICB3aGVuIHRoZSBzZWxlY3QgaXMgZGlzYWJsZWQuXG4gKiBbMjddIEluaGVyaXQgdGhlIGNvbG9yIGFzc2lnbmVkIHRvIGAuYy1pbnB1dF9fYWRkb25gIGluc3RlYWQgb2YgYXBwbHlpbmcgdGhlXG4gKiAgICAgIGRlZmF1bHQgaWNvbiBjb2xvci5cbiAqIFsyOF0gRXhwbGljaXRseSBvdmVycmlkZSB0aGUgYm9yZGVyIHdpZHRoIGlmIHRleHQgaW5wdXRzIG9ubHkgaGF2ZSBhXG4gKiAgICAgIGBib3JkZXItYm90dG9tYC4gRHVlIHRvIGEgbGFjayBvZiBzcGVjaWZpY2l0eSwgdGhlIGJvcmRlciBoYXMgdG8gYmVcbiAqICAgICAgcmVzZXQgZm9yIHRoZSByZXZlcnNlZCBtb2RpZmllciBleHBsaWNpdGx5LlxuICogWzI5XSBDaGVjayBpZiB0ZXh0YXJlYXMgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBib3JkZXItYm90dG9tLW9ubHlcbiAqICAgICAgc3R5bGluZyBhbmQgbW9kaWZ5IHRoZSBzZWxlY3RvciBhY2NvcmRpbmdseS5cbiAqIFszMF0gQWRkIGhvcml6b250YWwgcGFkZGluZyB0byB0ZXh0YXJlYXMgaWYgdGhleSBkb27igJl0IGhhdmVcbiAqICAgICAgYm9yZGVyLWJvdHRvbS1vbmx5IHN0eWxpbmcuXG4gKiBbMzFdIFRoZSBmYWtlIGxpbmUgdG8gY292ZXIgdGhlIGJvcmRlciBiZXR3ZWVuIGlucHV0IGFuZCBhZGRvbiBpcyBub3QgbmVlZGVkXG4gKiAgICAgIGluIEJyb25zb24tQXVkaSwgYmVjYXVzZSB0aGVyZSBpcyBub3QgYm9yZGVyIHRvIGNvdmVyLlxuICogWzMyXSBSZXF1aXJlZCB0byBkaXNwbGF5IHRoZSBib3JkZXIgY29sb3IgY29ycmVjdCBvbiBpT1MuXG4gKiBbMzNdIEVuYWJsZSBmbGV4IHdyYXAgdG8gYWxsb3cgcG9zaXRpb25pbmcgb2YgdGhlIGNoYXJhY3RlciBjb3VudGVyIGJlbG93XG4gKiAgICAgIHRleHRhcmVhcy5cbiAqIFszNF0gRml4IHBvc2l0aW9uaW5nIG9mIChub24tdGV4dGFyZWEpIGlucHV0IGZpZWxkcyAod2l0aCBhZGRvbikgYmVjYXVzZVxuICogICAgICBvZiBbMzNdLlxuICogWzM1XSBTdHJldGNoIHRoZSBjb3VudGVyIHRvIGZ1bGwgd2lkdGggdG8gZW5zdXJlIGl0IHdpbGwgYmUgZGlzcGxheWVkIGJlbG93XG4gKiAgICAgIHRleHRhcmVhLlxuICogWzM1XSBIaWRlIGNvdW50ZXIgZm9yIGRpc2FibGVkIGFuZCByZWFkLW9ubHkgaW5wdXQgZmllbGRzLlxuICogWzM3XSBTdHlsZXMgZm9yIHRoZSBjb3VudGVyIGFsZXJ0IHN0YXRlLlxuICogWzM4XSBSZXF1aXJlcyBzdGF0ZS1jbGFzcyB0byBiZSBhcHBsaWVkIHRvIGlucHV0IHdyYXBwZXIgKGAuYy1pbnB1dGApXG4gKiAgICAgIGluc3RlYWQgb2YgYWN0dWFsIGlucHV0LiBUaGlzIGRlcml2ZXMgb24gaG93IHN0YXRlIGNsYXNzZXMgYXJlXG4gKiAgICAgIHNldCBvbiBvdGhlciB0eXBlcyBvZiBpbnB1dHMuXG4gKiAgICAgIEJ1dCBkdWUgdG8gdGhlIGxpbWl0ZWQgc3R5bGluZyBwb3NzaWJpbGl0aWVzIG9mIG5hdGl2ZSBzZWxlY3QsXG4gKiAgICAgIHRoaXMgaXMgYSB3b3JrYXJvdW5kIGFuZCBjYW4gYmUgc2VlbiBhcyBcInByb2dyZXNzaXZlIGVuaGFuY2VtZW50XCIuXG4gKiBbMzldIENvbmRpdGlvbmFsbHkgc2hvdyBzdGF0ZSBpY29uLiBEZXBlbmRpbmcgb24gYnJhbmQgZS5nLiB0aGUgc3RhdGUtaWNvblxuICogICAgICBmb3IgaW52YWxpZCAoZXJyb3IpIGlucHV0cyBkbyBub3QgaGF2ZSBhIHN0YXRlLWljb24gYnV0IGFuIGVycm9yIG1lc3NhZ2UuXG4gKiBbNDBdIE92ZXJ3cml0ZSBkZWZhdWx0IGB0cmFuc2l0aW9uLXByb3BlcnR5OiBhbGxgIG9ubHkgd2hlbiBgJGlucHV0LWJvcmRlci13aWR0aC1mb2N1c2BcbiAqICAgICAgaXMgbGFyZ2VyIHRoYW4gYCRpbnB1dC1ib3JkZXItd2lkdGhgIHRvIGF2b2lkIGNob3BweSBhbmltYXRpb25zIGR1ZVxuICogICAgICBgYm9yZGVyLXdpZHRoYCB0cmFuc2l0aW9ucy5cbiAqIFs0MV0gVXNlIHRoZSBzYW1lIHRyYW5zaXRpb24gZm9yIGFsbCBkaXJlY3QgY2hpbGRyZW4gKGUuZy4gYC5jLWlucHV0X19hZGRvbmApXG4gKiBbNDJdIEFsaWduIGNvbG9yIGFuZCBmb250LXdlaWdodCBzZXR0aW5ncyBhY2NvcmRpbmcgdG8gQ29tYm9ib3ggc3R5bGVzXG4gKiAgICAgIGFzIHByb2dyZXNzaXZlIGVuaGFuY2VtZW50LCB3aGljaCBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCBieSBhbGxcbiAqICAgICAgYnJvd3NlcnMsIHNlZSBhbHNvOiBodHRwczovL2Nhbml1c2UuY29tL2Nzcy1oYXMpLlxuICogWzQzXSBFbnN1cmUgY29ycmVjdCBvcHRpb24gdGV4dCBjb2xvciAoZm9yIGJyb3dzZXJzIHRoYXQgc3VwcG9ydCBzZXR0aW5nXG4gKiAgICAgIG9wdGlvbiBjb2xvcnMgdmlhIENTUyksIHByZXZlbnQgaW5oZXJpdGFuY2UgZnJvbSBgPHNlbGVjdD5gLlxuICovXG4uYy1pbnB1dCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXItY29sb3IsIGJveC1zaGFkb3csIG9wYWNpdHk7IC8qIFs0MF0gKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IC8qIFszM10gKi9cbiAgLyogWzI4XSAqL1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb3JkZXIvb3JkZXIgKi9cbn1cbi5jLWlucHV0ID4gKiB7XG4gIHRyYW5zaXRpb246IGluaGVyaXQ7IC8qIFs0MV0gKi9cbn1cbi5jLWlucHV0LmMtaW5wdXQtLXNlbGVjdCB7XG4gIC8qIFszOF0gKi9cbn1cbi5jLWlucHV0LmMtaW5wdXQtLXNlbGVjdDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcImJyb25zb24tc2tvZGFcIiAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGNvbnRlbnQ6IFwiXFxmMTUxXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7IC8qIFsyMF0gKi9cbiAgcmlnaHQ6IDEycHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgLyogWzIwXSAqL1xuICBib3JkZXI6IDA7XG4gIGNvbG9yOiAjMTYxNzE4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogWzE4XSAqL1xufVxuLmMtaW5wdXQuYy1pbnB1dC0tc2VsZWN0LmlzLWRpc2FibGVkOjphZnRlciB7XG4gIGNvbG9yOiAjZDhkOGQ4O1xufVxuLmMtaW5wdXQuYy1pbnB1dC0tc2VsZWN0IC5jLWlucHV0X19pbnB1dCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG4uYy1pbnB1dC5jLWlucHV0LS1zZWxlY3QgLmMtaW5wdXRfX2lucHV0Omhhcyg6ZGlzYWJsZWQ6Y2hlY2tlZCkge1xuICBmb250LXdlaWdodDogNDAwOyAvKiBbNDJdICovXG4gIGNvbG9yOiAjNWE1YjVjOyAvKiBbNDJdICovXG59XG4uYy1pbnB1dC5jLWlucHV0LS1zZWxlY3QgLmMtaW5wdXRfX2lucHV0Oi1tb3otZm9jdXNyaW5nIHtcbiAgY29sb3I6IHRyYW5zcGFyZW50OyAvKiBbMjFdICovXG4gIHRleHQtc2hhZG93OiAwIDAgMCAjMTYxNzE4OyAvKiBbMjFdICovXG59XG4uYy1pbnB1dC5jLWlucHV0LS1zZWxlY3QgLmMtaW5wdXRfX2lucHV0OjotbXMtZXhwYW5kIHtcbiAgZGlzcGxheTogbm9uZTsgLyogWzI2XSAqL1xufVxuLmMtaW5wdXQuYy1pbnB1dC0tc2VsZWN0IG9wdGlvbiB7XG4gIGNvbG9yOiAjMTYxNzE4OyAvKiBbNDNdICovXG59XG4uYy1pbnB1dC5jLWlucHV0LS1zZWxlY3Qgb3B0aW9uOmRpc2FibGVkIHtcbiAgY29sb3I6ICM5ZTlmYTA7XG59XG4uYy1pbnB1dCAuYy1pY29uIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmMtaW5wdXQ6OmJlZm9yZSB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIHJpZ2h0OiAwOyAvKiBbMzNdICovXG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDsgLyogWzMzXSAqL1xuICBoZWlnaHQ6IDJweDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvOyAvKiBbMzNdICovXG4gIG1hcmdpbi1sZWZ0OiBhdXRvOyAvKiBbMzNdICovXG4gIGJhY2tncm91bmQ6ICM0MTk0Njg7XG4gIG9wYWNpdHk6IDA7XG59XG4uYy1pbnB1dDpmb2N1cy13aXRoaW46OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDE7XG59XG4uYy1mb3JtLWZpZWxkLmlzLXJlYWRvbmx5IC5jLWlucHV0OmZvY3VzLXdpdGhpbiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbn1cbi5jLWZvcm0tZmllbGQuaXMtcmVhZG9ubHkgLmMtaW5wdXQ6Zm9jdXMtd2l0aGluOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjOWU5ZmEwOyAvKiBbMjJdICovXG59XG4uYy1mb3JtLWZpZWxkLmlzLWVycm9yIC5jLWlucHV0OjpiZWZvcmUsXG4uYy1pbnB1dC5pcy1lcnJvcjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI2U4MmIzNztcbn1cblxuLmMtZm9ybS1maWVsZC5pcy1lcnJvcjpob3ZlciwgLmMtZm9ybS1maWVsZC5pcy1lcnJvcjpmb2N1cy13aXRoaW4ge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LWNsYXNzICovXG59XG4uYy1mb3JtLWZpZWxkLmlzLWVycm9yOmhvdmVyIC5jLWlucHV0OjpiZWZvcmUsIC5jLWZvcm0tZmllbGQuaXMtZXJyb3I6Zm9jdXMtd2l0aGluIC5jLWlucHV0OjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjZTgyYjM3O1xufVxuXG4uYy1pbnB1dC5pcy1lcnJvcjpob3Zlcjo6YmVmb3JlLCAuYy1pbnB1dC5pcy1lcnJvcjpmb2N1cy13aXRoaW46OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNlODJiMzc7XG59XG5cbi5jLWZvcm0tZmllbGQuaXMtc3VjY2VzcyAuYy1pbnB1dDo6YmVmb3JlLFxuLmMtaW5wdXQuaXMtc3VjY2Vzczo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogIzM3ZDAwMjtcbn1cblxuLmMtZm9ybS1maWVsZC5pcy1zdWNjZXNzOmhvdmVyLCAuYy1mb3JtLWZpZWxkLmlzLXN1Y2Nlc3M6Zm9jdXMtd2l0aGluIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1jbGFzcyAqL1xufVxuLmMtZm9ybS1maWVsZC5pcy1zdWNjZXNzOmhvdmVyIC5jLWlucHV0OjpiZWZvcmUsIC5jLWZvcm0tZmllbGQuaXMtc3VjY2Vzczpmb2N1cy13aXRoaW4gLmMtaW5wdXQ6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICMzN2QwMDI7XG59XG5cbi5jLWlucHV0LmlzLXN1Y2Nlc3M6aG92ZXI6OmJlZm9yZSwgLmMtaW5wdXQuaXMtc3VjY2Vzczpmb2N1cy13aXRoaW46OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICMzN2QwMDI7XG59XG5cbi5jLWlucHV0X19pbnB1dCB7XG4gIGZsZXgtZ3JvdzogMTsgLyogWzM0XSAqL1xuICBmbGV4LXNocmluazogMTsgLyogWzM0XSAqL1xuICBmbGV4LWJhc2lzOiAwOyAvKiBbMzRdICovXG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDA7IC8qIFsyNV0gKi9cbiAgcGFkZGluZzogMCAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjNWE1YjVjO1xuICBib3JkZXItcmFkaXVzOiAwOyAvKiBbMTRdICovXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjIsIDIzLCAyNCwgMC4wNik7XG4gIGNvbG9yOiAjMTYxNzE4O1xuICBib3gtc2hhZG93OiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lOyAvKiBbMTFdICovXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICAvKipcbiAgICogSG92ZXIgc3RhdGUgc3R5bGVzXG4gICAqL1xuICAvKipcbiAgICogRm9jdXMgc3RhdGUgc3R5bGVzXG4gICAqL1xuICAvKipcbiAgICogRGlzYWJsZWQgc3RhdGUgc3R5bGVzXG4gICAqL1xuICAvKipcbiAgICogUmVhZG9ubHkgc3RhdGUgc3R5bGVzXG4gICAqL1xuICAvKipcbiAgICogSW5wdXQgc3RhdHVzIHRoZW1lc1xuICAgKi9cbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG9yZGVyL29yZGVyICovXG59XG4uYy1pbnB1dF9faW5wdXQ6b25seS1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDRweDsgLyogWzE1XSAqL1xufVxuLmMtaW5wdXRfX2lucHV0Om5vdCh0ZXh0YXJlYSkge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiA1NnB4O1xuICAvKiBbMTJdICovXG4gIGhlaWdodDogNTZweDsgLyogWzEyXSAqL1xufVxudGV4dGFyZWEuYy1pbnB1dF9faW5wdXQge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBmbGV4LWJhc2lzOiBhdXRvOyAvKiBbMzRdICovXG4gIHBhZGRpbmctdG9wOiA4cHg7IC8qIFsxM10gKi9cbiAgcGFkZGluZy1ib3R0b206IDhweDsgLyogWzEzXSAqL1xufVxuXG5zZWxlY3QuYy1pbnB1dF9faW5wdXQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4OyAvKiBbMTddICovXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7IC8qIFsxN10gKi9cbn1cblxuLmMtaW5wdXQtLXNlbGVjdCAuYy1pbnB1dF9faW5wdXQge1xuICBwYWRkaW5nLXJpZ2h0OiA0OHB4OyAvKiBbMTldICovXG59XG4uYy1pbnB1dC0tcmV2ZXJzZWQgLmMtaW5wdXRfX2lucHV0IHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzVhNWI1YztcbiAgYm9yZGVyLWxlZnQ6IDA7IC8qIFs3XSAqL1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xufVxuLmMtaW5wdXRfX2lucHV0OjpwbGFjZWhvbGRlciB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjNWE1YjVjO1xuICBvcGFjaXR5OiAxO1xufVxuLmMtaW5wdXRfX2lucHV0OjotbXMtY2xlYXIge1xuICBkaXNwbGF5OiBub25lOyAvKiBbMjRdICovXG59XG4uYy1pbnB1dF9faW5wdXQ6aG92ZXIge1xuICBib3JkZXItY29sb3I6ICMxNjE3MTg7XG59XG4uYy1pbnB1dF9faW5wdXQ6aG92ZXIgfiAuYy1pbnB1dF9fYWRkb24ge1xuICBib3JkZXItY29sb3I6ICMxNjE3MTg7IC8qIFszXSAqL1xufVxuLmMtaW5wdXRfX2lucHV0OmZvY3VzLCAuYy1pbnB1dF9faW5wdXQ6Zm9jdXMtdmlzaWJsZSB7XG4gIGJvcmRlci1jb2xvcjogIzQxOTQ2ODtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5jLWlucHV0X19pbnB1dDpmb2N1cyB+IC5jLWlucHV0X19hZGRvbiwgLmMtaW5wdXRfX2lucHV0OmZvY3VzLXZpc2libGUgfiAuYy1pbnB1dF9fYWRkb24ge1xuICBib3JkZXItY29sb3I6ICM0MTk0Njg7XG59XG4uYy1pbnB1dF9faW5wdXQuaXMtZGlzYWJsZWQsIC5jLWlucHV0X19pbnB1dFtkaXNhYmxlZF0ge1xuICBib3JkZXItY29sb3I6ICM5ZTlmYTA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIsIDIzLCAyNCwgMC4wNik7XG4gIGNvbG9yOiAjOWU5ZmEwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogIzllOWZhMDtcbiAgb3BhY2l0eTogMTsgLyogWzMyXSAqL1xufVxuLmMtaW5wdXRfX2lucHV0LmlzLWRpc2FibGVkIH4gLmMtaW5wdXRfX2FkZG9uLCAuYy1pbnB1dF9faW5wdXRbZGlzYWJsZWRdIH4gLmMtaW5wdXRfX2FkZG9uIHtcbiAgYm9yZGVyLWNvbG9yOiAjOWU5ZmEwICFpbXBvcnRhbnQ7IC8qIFsyM10gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBpdGNzcy9uby1hdC1pbXBvcnRhbnQgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMiwgMjMsIDI0LCAwLjA2KTsgLyogWzIzXSAqL1xuICBjb2xvcjogI2Q4ZDhkODsgLyogWzIzXSAqL1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LWNsYXNzICovXG59XG4uYy1pbnB1dF9faW5wdXQuaXMtZGlzYWJsZWQgfiAuYy1pbnB1dF9fYWRkb246bm90KC5jLWlucHV0X19hZGRvbi0tbm8tYmFja2dyb3VuZCksIC5jLWlucHV0X19pbnB1dFtkaXNhYmxlZF0gfiAuYy1pbnB1dF9fYWRkb246bm90KC5jLWlucHV0X19hZGRvbi0tbm8tYmFja2dyb3VuZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWU5ZmEwOyAvKiBbMjNdICovXG4gIGNvbG9yOiAjZDhkOGQ4OyAvKiBbMjNdICovXG59XG4uYy1pbnB1dF9faW5wdXQuaXMtZGlzYWJsZWQgfiAuYy1pbnB1dF9fYWRkb24uYy1pbnB1dF9fYWRkb24tLW5vLWJhY2tncm91bmQsIC5jLWlucHV0X19pbnB1dFtkaXNhYmxlZF0gfiAuYy1pbnB1dF9fYWRkb24uYy1pbnB1dF9fYWRkb24tLW5vLWJhY2tncm91bmQge1xuICBjb2xvcjogI2Q4ZDhkODtcbn1cbi5jLWlucHV0X19pbnB1dC5pcy1yZWFkb25seSwgLmMtaW5wdXRfX2lucHV0W3JlYWRvbmx5XSB7XG4gIGJvcmRlci1jb2xvcjogIzllOWZhMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMiwgMjMsIDI0LCAwLjA2KTtcbiAgY29sb3I6ICMxNjE3MTg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAjMTYxNzE4O1xufVxuLmMtaW5wdXRfX2lucHV0LmlzLXJlYWRvbmx5IH4gLmMtaW5wdXRfX2FkZG9uLCAuYy1pbnB1dF9faW5wdXRbcmVhZG9ubHldIH4gLmMtaW5wdXRfX2FkZG9uIHtcbiAgYm9yZGVyLWNvbG9yOiAjOWU5ZmEwOyAvKiBbMjJdICovXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIsIDIzLCAyNCwgMC4wNik7IC8qIFsyMl0gKi9cbiAgY29sb3I6ICMxNjE3MTg7IC8qIFsyMl0gKi9cbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5jLWlucHV0X19pbnB1dC5pcy1yZWFkb25seSB+IC5jLWlucHV0X19hZGRvbjpub3QoLmMtaW5wdXRfX2FkZG9uLS1uby1iYWNrZ3JvdW5kKSwgLmMtaW5wdXRfX2lucHV0W3JlYWRvbmx5XSB+IC5jLWlucHV0X19hZGRvbjpub3QoLmMtaW5wdXRfX2FkZG9uLS1uby1iYWNrZ3JvdW5kKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5ZTlmYTA7IC8qIFsyMl0gKi9cbn1cbi5jLWlucHV0X19pbnB1dC5pcy1yZWFkb25seTpmb2N1cywgLmMtaW5wdXRfX2lucHV0W3JlYWRvbmx5XTpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzllOWZhMDsgLyogWzIyXSAqL1xufVxuLmMtaW5wdXRfX2lucHV0LmlzLXJlYWRvbmx5OmZvY3VzIH4gLmMtaW5wdXRfX2FkZG9uLCAuYy1pbnB1dF9faW5wdXRbcmVhZG9ubHldOmZvY3VzIH4gLmMtaW5wdXRfX2FkZG9uIHtcbiAgYm9yZGVyLWNvbG9yOiAjOWU5ZmEwOyAvKiBbMjJdICovXG59XG4uYy1pbnB1dF9faW5wdXQuaXMtZXJyb3Ige1xuICBib3JkZXItY29sb3I6ICNlODJiMzcgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uYy1pbnB1dF9faW5wdXQuaXMtZXJyb3IgfiAuYy1pbnB1dF9fYWRkb24sXG4uYy1pbnB1dF9faW5wdXQuaXMtZXJyb3IgfiAuYy1pbnB1dF9fc3RhdGUtaWNvbiB7XG4gIGJvcmRlci1jb2xvcjogI2U4MmIzNztcbiAgY29sb3I6ICMxNjE3MTg7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtY2xhc3MgKi9cbn1cbi5jLWlucHV0X19pbnB1dC5pcy1lcnJvciB+IC5jLWlucHV0X19hZGRvbi5jLWlucHV0X19hZGRvbi0tbm8tYmFja2dyb3VuZCxcbi5jLWlucHV0X19pbnB1dC5pcy1lcnJvciB+IC5jLWlucHV0X19zdGF0ZS1pY29uLmMtaW5wdXRfX2FkZG9uLS1uby1iYWNrZ3JvdW5kIHtcbiAgY29sb3I6ICNlODJiMzc7XG59XG4uYy1pbnB1dF9faW5wdXQuaXMtZXJyb3I6Zm9jdXMgfiAuYy1pbnB1dF9fYWRkb24sXG4uYy1pbnB1dF9faW5wdXQuaXMtZXJyb3I6Zm9jdXMgfiAuYy1pbnB1dF9fc3RhdGUtaWNvbiB7XG4gIGJvcmRlci1jb2xvcjogI2U4MmIzNztcbn1cbi5jLWlucHV0X19pbnB1dC5pcy1lcnJvcjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogI2U4MmIzNztcbn1cbi5jLWlucHV0X19pbnB1dC5pcy1lcnJvcjpob3ZlciB+IC5jLWlucHV0X19hZGRvbixcbi5jLWlucHV0X19pbnB1dC5pcy1lcnJvcjpob3ZlciB+IC5jLWlucHV0X19zdGF0ZS1pY29uIHtcbiAgYm9yZGVyLWNvbG9yOiAjZTgyYjM3O1xufVxuLmMtaW5wdXRfX2lucHV0LmlzLXN1Y2Nlc3Mge1xuICBib3JkZXItY29sb3I6ICMzN2QwMDIgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uYy1pbnB1dF9faW5wdXQuaXMtc3VjY2VzcyB+IC5jLWlucHV0X19hZGRvbixcbi5jLWlucHV0X19pbnB1dC5pcy1zdWNjZXNzIH4gLmMtaW5wdXRfX3N0YXRlLWljb24ge1xuICBib3JkZXItY29sb3I6ICMzN2QwMDI7XG4gIGNvbG9yOiAjMTYxNzE4O1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LWNsYXNzICovXG59XG4uYy1pbnB1dF9faW5wdXQuaXMtc3VjY2VzcyB+IC5jLWlucHV0X19hZGRvbi5jLWlucHV0X19hZGRvbi0tbm8tYmFja2dyb3VuZCxcbi5jLWlucHV0X19pbnB1dC5pcy1zdWNjZXNzIH4gLmMtaW5wdXRfX3N0YXRlLWljb24uYy1pbnB1dF9fYWRkb24tLW5vLWJhY2tncm91bmQge1xuICBjb2xvcjogIzM3ZDAwMjtcbn1cbi5jLWlucHV0X19pbnB1dC5pcy1zdWNjZXNzOmZvY3VzIH4gLmMtaW5wdXRfX2FkZG9uLFxuLmMtaW5wdXRfX2lucHV0LmlzLXN1Y2Nlc3M6Zm9jdXMgfiAuYy1pbnB1dF9fc3RhdGUtaWNvbiB7XG4gIGJvcmRlci1jb2xvcjogIzM3ZDAwMjtcbn1cbi5jLWlucHV0X19pbnB1dC5pcy1zdWNjZXNzOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjMzdkMDAyO1xufVxuLmMtaW5wdXRfX2lucHV0LmlzLXN1Y2Nlc3M6aG92ZXIgfiAuYy1pbnB1dF9fYWRkb24sXG4uYy1pbnB1dF9faW5wdXQuaXMtc3VjY2Vzczpob3ZlciB+IC5jLWlucHV0X19zdGF0ZS1pY29uIHtcbiAgYm9yZGVyLWNvbG9yOiAjMzdkMDAyO1xufVxuLmMtaW5wdXQgLmMtaW5wdXRfX2lucHV0LCAuYy1pbnB1dC0tcmV2ZXJzZWQgLmMtaW5wdXRfX2lucHV0IHtcbiAgYm9yZGVyLXdpZHRoOiAwOyAvKiBbMjhdICovXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgLyogWzI4XSAqL1xufVxuXG4uYy1pbnB1dF9fYWRkb24ge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7IC8qIFsxNl0gKi9cbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogWzE2XSAqL1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogWzE2XSAqL1xuICBvcmRlcjogNTsgLyogWzhdICovXG4gIG1hcmdpbi1ib3R0b206IDA7IC8qIFs2XSAqL1xuICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xuICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM1YTViNWM7IC8qIFs3XSAqL1xuICBib3JkZXItbGVmdDogMDsgLyogWzddICovXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMiwgMjMsIDI0LCAwLjA2KTtcbiAgY29sb3I6ICMxNjE3MTg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG4gIC8qKlxuICAgKiBNb2RpZnkgZmFrZSBsaW5lIHRvIGNvdmVyIHVwIGJvcmRlciBiZXR3ZWVuIGlucHV0IGFuZCBhZGRvblxuICAgKiB3aGVuIGAuYy1pbnB1dC0tcmV2ZXJzZWRgIG1vZGlmaWVyIGlzIHVzZWQuXG4gICAqL1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuLmMtaW5wdXRfX2FkZG9uIC5jLWljb24ge1xuICBjb2xvcjogaW5oZXJpdDsgLyogWzI3XSAqL1xufVxuLmMtaW5wdXQtLXJldmVyc2VkIC5jLWlucHV0X19hZGRvbiB7XG4gIG9yZGVyOiAtNTsgLyogWzhdICovXG4gIGJvcmRlcjogMXB4IHNvbGlkICM1YTViNWM7IC8qIFs3XSAqL1xuICBib3JkZXItcmlnaHQ6IDA7IC8qIFs3XSAqL1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbn1cbi5jLWlucHV0LS1yZXZlcnNlZCAuYy1pbnB1dF9fYWRkb246OmJlZm9yZSB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAxMDAlO1xufVxuLmMtaW5wdXRfX2FkZG9uLCAuYy1pbnB1dC0tcmV2ZXJzZWQgLmMtaW5wdXRfX2FkZG9uIHtcbiAgYm9yZGVyLXdpZHRoOiAwOyAvKiBbMjhdICovXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgLyogWzI4XSAqL1xufVxuLmMtaW5wdXQtLXJldmVyc2VkIC5jLWlucHV0X19hZGRvbiB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgcGFkZGluZy1yaWdodDogMTJweDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuLmMtaW5wdXRfX2FkZG9uOjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7IC8qIFszMV0gKi9cbn1cblxuYnV0dG9uLmMtaW5wdXRfX2FkZG9uIHtcbiAgcGFkZGluZy10b3A6IDA7IC8qIFsxMF0gKi9cbiAgcGFkZGluZy1ib3R0b206IDA7IC8qIFsxMF0gKi9cbiAgYXBwZWFyYW5jZTogbm9uZTsgLyogWzEwXSAqL1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5idXR0b24uYy1pbnB1dF9fYWRkb246Zm9jdXMge1xuICBvdXRsaW5lOiAwOyAvKiBbMTBdICovXG59XG5cbi5jLWlucHV0X19hZGRvbi0tbm8tYmFja2dyb3VuZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMiwgMjMsIDI0LCAwLjA2KTtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG5cbi5jLWlucHV0X19zdGF0ZS1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJicm9uc29uLXNrb2RhXCIgIWltcG9ydGFudDsgLyogWzFdICovXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLyogWzldICovXG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogNTRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xuICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM1YTViNWM7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjIsIDIzLCAyNCwgMC4wNik7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBvcmRlci9vcmRlciAqL1xuICAvKipcbiAgICogTW9kaWZ5IGZha2UgbGluZSB0byBjb3ZlciB1cCB0aGUgUk9VTkRFRCBib3JkZXIgYmV0d2VlbiBpbnB1dCBhbmQgc3RhdGUgaWNvbi5cbiAgICovXG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIGJvcmRlci13aWR0aDogMDsgLyogWzI4XSAqL1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IC8qIFsyOF0gKi9cbn1cbi5jLWlucHV0LS1yZXZlcnNlZCAuYy1pbnB1dF9fc3RhdGUtaWNvbiwgLmMtaW5wdXRfX3N0YXRlLWljb246bGFzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4uYy1pbnB1dF9faW5wdXQuaXMtZXJyb3IgfiAuYy1pbnB1dF9fc3RhdGUtaWNvbiB7XG4gIGJvcmRlci1jb2xvcjogI2U4MmIzNztcbiAgY29sb3I6ICNlODJiMzc7XG59XG4uYy1pbnB1dF9faW5wdXQuaXMtZXJyb3IgfiAuYy1pbnB1dF9fc3RhdGUtaWNvbjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlxcZjE3YVwiO1xufVxuLmMtaW5wdXRfX2lucHV0LmlzLXN1Y2Nlc3MgfiAuYy1pbnB1dF9fc3RhdGUtaWNvbiB7XG4gIGJvcmRlci1jb2xvcjogIzM3ZDAwMjtcbiAgY29sb3I6ICMzN2QwMDI7XG59XG4uYy1pbnB1dF9faW5wdXQuaXMtc3VjY2VzcyB+IC5jLWlucHV0X19zdGF0ZS1pY29uOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQ2XCI7XG59XG4uYy1pbnB1dC0tcmV2ZXJzZWQgLmMtaW5wdXRfX3N0YXRlLWljb246OmJlZm9yZSB7IC8qIFs0XSAqL1xuICB0b3A6IC0xcHg7XG4gIGJvdHRvbTogLTFweDtcbiAgd2lkdGg6IDRweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM1YTViNWM7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNWE1YjVjO1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG59XG5cbi5jLWlucHV0X19jb3VudGVyIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICB3aWR0aDogMTAwJTsgLyogWzM1XSAqL1xuICBwYWRkaW5nLXRvcDogMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGNvbG9yOiAjN2M3ZDdlO1xufVxuLmMtaW5wdXRfX2lucHV0IH4gLmMtaW5wdXRfX2NvdW50ZXIge1xuICBtYXJnaW4tdG9wOiAycHg7XG59XG4uYy1pbnB1dF9faW5wdXQuaXMtZGlzYWJsZWQgKyAuYy1pbnB1dF9fY291bnRlciwgLmMtaW5wdXRfX2lucHV0W2Rpc2FibGVkXSArIC5jLWlucHV0X19jb3VudGVyLCAuYy1pbnB1dF9faW5wdXQuaXMtcmVhZG9ubHkgKyAuYy1pbnB1dF9fY291bnRlciwgLmMtaW5wdXRfX2lucHV0W3JlYWRvbmx5XSArIC5jLWlucHV0X19jb3VudGVyIHtcbiAgZGlzcGxheTogbm9uZTsgLyogWzM1XSAqL1xufVxuXG4uYy1pbnB1dF9fY291bnRlci0tYWxlcnQgeyAvKiBbMzddICovXG4gIGNvbG9yOiAjZTgyYjM3O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSU5QVVRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gUGxhY2Vob2xkZXIsIG5vbi1maWxsZWQuXG4gKiAgICAgYDpwbGFjZWhvbGRlci1zaG93bmAgY2FuIG5vdCBiZSB1dGlsaXplZCBkdWUgdG8gcGFydGx5IGN1c3RvbSBlbGVtZW50XG4gKiAgICAgc3RydWN0dXJlIHdpdGggd3JhcHBlcnMgYW5kIHBzZXVkby1lbGVtZW50cy5cbiAqIFsyXSBGaWxsZWQgaW5wdXRzLlxuICogWzNdIFZlcnRpY2FsbHkgY2VudGVyIG5leHQgdG8gaW5wdXQuXG4gKiBbNF0gVmlzdWFsbHkgY2VudGVyIG9mIHZpc3VhbCBmYWtlIGNvbnRhaW5lciAoaW5wdXQgKyBsYWJlbClcbiAqICAgICBpbiBmb3JtLWZpZWxkIGNvbnRleHQuXG4gKiBbNV0gRXhjbHVkZSBoZWlnaHQgYWRqdXN0bWVudCBmb3IgY29tYm9ib3ggKHNlYXJjaCkgdG8gdXNlIHJlZ3VsYXIgaW5wdXQgaGVpZ2h0Li5cbiAqIFs2XSBBZGRvbiBjYW4gY29udGFpbiA0IGNoYXJhY3RlcnMgd2hpbGUgbWFpbnRhaW5pbmcgYWxpZ25tZW50IHdpdGggb3RoZXIgaW5wdXRzLlxuICogICAgIFNlZSBpbnB1dCBjb21wb25lbnQgbm90ZXMgZm9yIGRldGFpbHMuXG4gKi9cbi5jLWlucHV0LCAuYy1pbnB1dC5jLWlucHV0LS1yZXZlcnNlZCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtY2xhc3MgKi9cbn1cbi5jLWlucHV0IC5jLWlucHV0X19pbnB1dC5jLWlucHV0X19pbnB1dCxcbi5jLWlucHV0IC5jLWlucHV0X19hZGRvbiwgLmMtaW5wdXQuYy1pbnB1dC0tcmV2ZXJzZWQgLmMtaW5wdXRfX2lucHV0LmMtaW5wdXRfX2lucHV0LFxuLmMtaW5wdXQuYy1pbnB1dC0tcmV2ZXJzZWQgLmMtaW5wdXRfX2FkZG9uIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmMtZm9ybS1maWVsZDpub3QoLmMtZm9ybS1maWVsZC0taW5saW5lKSAuYy1pbnB1dC5jLWlucHV0LS1zZWxlY3Q6OmFmdGVyIHtcbiAgdG9wOiAwOyAvKiBbNF0gKi9cbiAgdHJhbnNmb3JtOiBub25lOyAvKiBbNF0gKi9cbn1cblxuLmMtaW5wdXRfX2lucHV0OndoZXJlKFtkaXNhYmxlZF0sIFtyZWFkb25seV0pIH4gLmMtaW5wdXRfX2FkZG9uOm5vdCguYy1pbnB1dF9fYWRkb24tLW5vLWJhY2tncm91bmQpIHtcbiAgbWluLXdpZHRoOiBjYWxjKDRjaCArIDI0cHgpOyAvKiBbNl0gKi9cbn1cbi5jLWlucHV0X19hZGRvbjp3aGVyZShidXR0b24pOmhhcyguYy1pY29uKSAuYy1pY29uIHtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgc2NhbGU6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jLWlucHV0X19hZGRvbjp3aGVyZShidXR0b24pOmhhcyguYy1pY29uKSAuYy1pY29uOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogLTE7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogaW5oZXJpdDtcbn1cbi5jLWlucHV0X19hZGRvbjp3aGVyZShidXR0b24pOmhhcyguYy1pY29uKSAuYy1pY29uOmhvdmVyOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIsIDIzLCAyNCwgMC4wNik7XG59XG5cbi5jLWlucHV0X19hZGRvbjp3aGVyZShidXR0b24pOmhhcyguYy1pY29uKSAuYy1pY29uOmFjdGl2ZSB7XG4gIHNjYWxlOiAwLjk1O1xufVxuXG4uYy1pbnB1dF9fYWRkb246d2hlcmUoYnV0dG9uKTpoYXMoLmMtaWNvbikgLmMtaWNvbjo6YWZ0ZXIge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cbi5jLWlucHV0X19hZGRvbjp3aGVyZShidXR0b24pOmhhcyguYy1pY29uKTpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMDtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xufVxuLmMtaW5wdXRfX2FkZG9uOndoZXJlKGJ1dHRvbik6aGFzKC5jLWljb24pOmZvY3VzLXZpc2libGUgLmMtaWNvbjo6YWZ0ZXIge1xuICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICMxNjE3MTg7XG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgLS1mb2N1cy1vdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgLS1mb2N1cy1vdXRsaW5lLXdpZHRoOiAycHg7XG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWZvY3VzLW91dGxpbmUtY29sb3IsICMxNjE3MTgpO1xuICBvdXRsaW5lLW9mZnNldDogdmFyKC0tZm9jdXMtb3V0bGluZS1vZmZzZXQsIDFweCk7XG4gIG91dGxpbmUtc3R5bGU6IHZhcigtLWZvY3VzLW91dGxpbmUtc3R5bGUsIHNvbGlkKTtcbiAgb3V0bGluZS13aWR0aDogdmFyKC0tZm9jdXMtb3V0bGluZS13aWR0aCwgMnB4KTtcbn1cbi5jLWlucHV0X19hZGRvbjp3aGVyZShidXR0b24pOmhhcyguYy1pY29uKTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmMtZm9ybS1maWVsZDpub3QoLmMtZm9ybS1maWVsZC0taW5saW5lKTpub3QoLmMtZm9ybS1maWVsZC0tbm8tZmxvYXRpbmcpOm5vdCguYy1mb3JtLWZpZWxkLS10ZXh0YXJlYSkge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG59XG4uYy1mb3JtLWZpZWxkOm5vdCguYy1mb3JtLWZpZWxkLS1pbmxpbmUpOm5vdCguYy1mb3JtLWZpZWxkLS1uby1mbG9hdGluZyk6bm90KC5jLWZvcm0tZmllbGQtLXRleHRhcmVhKSAuYy1pbnB1dF9faW5wdXQge1xuICBwYWRkaW5nLXRvcDogMjhweDtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbn1cblxuLmMtZm9ybS1maWVsZC5jLWZvcm0tZmllbGQtLXRleHRhcmVhIC5jLWlucHV0X19pbnB1dCB7XG4gIHBhZGRpbmctdG9wOiAyOHB4O1xufVxuXG4uYy1mb3JtLWZpZWxkLS1pbmxpbmUgLmMtZm9ybS1maWVsZF9fbGFiZWwge1xuICB0cmFuc2Zvcm06IG5vbmU7IC8qIFszXSAqL1xufVxuXG4uYy1mb3JtLWZpZWxkLS1zdGF0aWMgLmMtZm9ybS1maWVsZF9fbGFiZWwge1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi5jLWZvcm0tZmllbGQ6bm90KC5jLWZvcm0tZmllbGQtLW5vLWZsb2F0aW5nLCAuYy1mb3JtLWZpZWxkLS1pbmxpbmUsIC5jLWZvcm0tZmllbGQtLXN0YXRpYykgLmMtZm9ybS1maWVsZF9fbGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qIFszXSAqL1xufVxuXG4uYy1mb3JtLWZpZWxkLS1uby1mbG9hdGluZzpub3QoLmMtZm9ybS1maWVsZC0tc3RhdGljKSAuYy1mb3JtLWZpZWxkX19sYWJlbCB7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG4gIHBhZGRpbmctbGVmdDogMTJweDtcbiAgcGFkZGluZy1yaWdodDogMTJweDtcbiAgdHJhbnNmb3JtOiBub25lO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIsIDIzLCAyNCwgMC4wNik7XG59XG4uYy1mb3JtLWZpZWxkLS1uby1mbG9hdGluZzpub3QoLmMtZm9ybS1maWVsZC0tc3RhdGljKSAuYy1pbnB1dF9faW5wdXQge1xuICBoZWlnaHQ6IDM2cHg7XG59XG4uYy1mb3JtLWZpZWxkLS1uby1mbG9hdGluZzpub3QoLmMtZm9ybS1maWVsZC0tc3RhdGljKSAuYy1jb21ib2JveCAuYy1pbnB1dF9faW5wdXQge1xuICBoZWlnaHQ6IDU2cHg7IC8qIFs1XSAqL1xufVxuLmMtZm9ybS1maWVsZC0tbm8tZmxvYXRpbmc6bm90KC5jLWZvcm0tZmllbGQtLXN0YXRpYykgLmMtaW5wdXRfX2lucHV0LFxuLmMtZm9ybS1maWVsZC0tbm8tZmxvYXRpbmc6bm90KC5jLWZvcm0tZmllbGQtLXN0YXRpYykgLmMtaW5wdXRfX2FkZG9uIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG59XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuLmMtaW5wdXRfX2lucHV0Om5vdCguYy1pbmxpbmUtZWRpdGFibGVfX2lucHV0LCAuaXMtZXJyb3IsIFtkaXNhYmxlZF0sIFtyZWFkb25seV0sIDpmb2N1cykge1xuICAvKiBbMV0gKi9cbiAgLyogWzJdICovXG59XG4uYy1pbnB1dF9faW5wdXQ6bm90KC5jLWlubGluZS1lZGl0YWJsZV9faW5wdXQsIC5pcy1lcnJvciwgW2Rpc2FibGVkXSwgW3JlYWRvbmx5XSwgOmZvY3VzKVt2YWx1ZV06bm90KFt2YWx1ZT1cIlwiXSksXG4uYy1pbnB1dF9faW5wdXQ6bm90KC5jLWlubGluZS1lZGl0YWJsZV9faW5wdXQsIC5pcy1lcnJvciwgW2Rpc2FibGVkXSwgW3JlYWRvbmx5XSwgOmZvY3VzKVt2YWx1ZV06bm90KFt2YWx1ZT1cIlwiXSkgfiAuYy1pbnB1dF9fYWRkb24sIC5jLWlucHV0X19pbnB1dDpub3QoLmMtaW5saW5lLWVkaXRhYmxlX19pbnB1dCwgLmlzLWVycm9yLCBbZGlzYWJsZWRdLCBbcmVhZG9ubHldLCA6Zm9jdXMpOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pLFxuLmMtaW5wdXRfX2lucHV0Om5vdCguYy1pbmxpbmUtZWRpdGFibGVfX2lucHV0LCAuaXMtZXJyb3IsIFtkaXNhYmxlZF0sIFtyZWFkb25seV0sIDpmb2N1cyk6bm90KDpwbGFjZWhvbGRlci1zaG93bikgfiAuYy1pbnB1dF9fYWRkb24ge1xuICBib3JkZXItY29sb3I6ICM0NjQ3NDg7XG59XG5cbi5jLWlucHV0X19pbnB1dC5pcy1lcnJvclt2YWx1ZV06bm90KFt2YWx1ZT1cIlwiXSksXG4uYy1pbnB1dF9faW5wdXQuaXMtZXJyb3JbdmFsdWVdOm5vdChbdmFsdWU9XCJcIl0pIH4gLmMtaW5wdXRfX2FkZG9uLFxuLmMtaW5wdXRfX2lucHV0LmlzLWVycm9yW3ZhbHVlXTpub3QoW3ZhbHVlPVwiXCJdKSB+IC5jLWlucHV0X19zdGF0ZS1pY29uLCAuYy1pbnB1dF9faW5wdXQuaXMtZXJyb3I6bm90KDpwbGFjZWhvbGRlci1zaG93biksXG4uYy1pbnB1dF9faW5wdXQuaXMtZXJyb3I6bm90KDpwbGFjZWhvbGRlci1zaG93bikgfiAuYy1pbnB1dF9fYWRkb24sXG4uYy1pbnB1dF9faW5wdXQuaXMtZXJyb3I6bm90KDpwbGFjZWhvbGRlci1zaG93bikgfiAuYy1pbnB1dF9fc3RhdGUtaWNvbiB7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcbn1cblxuLyogc3R5bGVsaW50LWVuYWJsZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbi5jLWlucHV0X19zdGF0ZS1pY29uLFxuLmMtaW5wdXRfX2FkZG9uIHtcbiAgcGFkZGluZy1yaWdodDogMTJweDtcbn1cbi5jLWlucHV0LS1yZXZlcnNlZCAuYy1pbnB1dF9fc3RhdGUtaWNvbixcbi5jLWlucHV0LS1yZXZlcnNlZCAuYy1pbnB1dF9fYWRkb24ge1xuICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG4uYy1pbnB1dC0tcmV2ZXJzZWQgLmMtaW5wdXRfX3N0YXRlLWljb24sIC5jLWlucHV0X19zdGF0ZS1pY29uOmxhc3QtY2hpbGQsXG4uYy1pbnB1dC0tcmV2ZXJzZWQgLmMtaW5wdXRfX2FkZG9uLFxuLmMtaW5wdXRfX2FkZG9uOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbn1cblxuYnV0dG9uLmMtaW5wdXRfX2FkZG9uLFxuYS5jLWlucHV0X19hZGRvbiB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuYnV0dG9uLmMtaW5wdXRfX2FkZG9uOmZvY3VzLXZpc2libGUsXG5hLmMtaW5wdXRfX2FkZG9uOmZvY3VzLXZpc2libGUge1xuICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICMxNjE3MTg7XG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgLS1mb2N1cy1vdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgLS1mb2N1cy1vdXRsaW5lLXdpZHRoOiAycHg7XG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWZvY3VzLW91dGxpbmUtY29sb3IsICMxNjE3MTgpO1xuICBvdXRsaW5lLW9mZnNldDogdmFyKC0tZm9jdXMtb3V0bGluZS1vZmZzZXQsIDFweCk7XG4gIG91dGxpbmUtc3R5bGU6IHZhcigtLWZvY3VzLW91dGxpbmUtc3R5bGUsIHNvbGlkKTtcbiAgb3V0bGluZS13aWR0aDogdmFyKC0tZm9jdXMtb3V0bGluZS13aWR0aCwgMnB4KTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0VSUk9SLU1FU1NBR0UgKFNldHRpbmdzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjRVJST1ItTUVTU0FHRVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBKdXN0IG91dHB1dCB0aGUgZGVjbGFyYXRpb24gd2hlbiBpdCdzICE9IDAuXG4gKiBbMl0gSGlkZSBtZXNzYWdlcyB3aXRob3V0IGNvbnRlbnQuIFNlbGVjdG9yIG9ubHkgbWF0Y2hlcyBmb3IgTk8gY29udGVudCxcbiAqICAgICB3aGl0ZXNwYWNlcyAmIGNvbW1lbnRzIGFyZSBub3QgY29uc2lkZXJlZCBhcyBlbXB0eS5cbiAqIFszXSBNYXRjaCBzZWxlY3RvciBldmVuIHdpdGggd2hpdGVzcGFjZXMgJiBjb21tZW50cyxcbiAqICAgICBhbmFsb2d1ZSB0byBgOmJsYW5rYCAoZmlyZWZveCBvbmx5KS5cbiAqIFs0XSBNb3ZlIGVycm9yIG1lc3NhZ2UgdmlzdWFsbHkgdG8gdGhlIGVuZCBpbiBhIGZsZXhib3ggY29udGV4dCB0byBtYWtlIGl0XG4gKiAgICAgd29yayBwcm9wZXJseSB3aXRoIGAuYy1pbnB1dF9fY291bnRlcmAuXG4gKi9cbi5jLWVycm9yLW1lc3NhZ2Uge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIG9yZGVyOiAxO1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogI2U4MmIzNztcbn1cbi5jLWVycm9yLW1lc3NhZ2U6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lOyAvKiBbMl0gKi9cbn1cbi5jLWVycm9yLW1lc3NhZ2U6LW1vei1vbmx5LXdoaXRlc3BhY2Uge1xuICBkaXNwbGF5OiBub25lOyAvKiBbM10gKi9cbn1cbi5jLWVycm9yLW1lc3NhZ2UgYSB7XG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNDSEVDS0JPWFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBEZWZlbnNpdmVseSByZXNldCBhbnkgYG1hcmdpbi1ib3R0b21gLlxuICogWzJdIFNldCB0aGUgaW5kZW50IG9mIGFuIGFkanVzdGluZyBgLmMtZm9ybS1maWVsZF9fZXh0cmFgIHZpYSBhIENTUyBjdXN0b21cbiAqICAgICBwcm9wZXJ0eS5cbiAqIFszXSBIaWRlIG9yaWdpbmFsIGNoZWNrYm94LlxuICogWzRdIE1ha2UgaXQgYmxvY2sgc28gZXZlcnl0aGluZyBiZWhhdmVzIGFzIGV4cGVjdGVkLlxuICogWzVdIFNldHRpbmcgdGhlIGhlaWdodCBvZiB0aGUgbGFiZWwgdGV4dCB0byBhIG1pbmltdW0gb2YgdGhlIGNoZWNrYm94XG4gKiAgICAgc2l6ZSBtYWtlcyB0aGUgdGV4dCBjbGlja2FibGUgb24gaXRzIGVudGlyZSBoZWlnaHQsIGkuZS46IEl0IGluY3JlYXNlc1xuICogICAgIHRoZSBjbGljayBhcmVhLlxuICogWzZdIEFsaWduIHRoZSBmaXJzdCAob3Igb25seSkgcm93IG9mIGxhYmVsIHRleHQgdmVydGljYWxseSBjZW50ZXJlZCB0byB0aGVcbiAqICAgICBjaGVja2JveC5cbiAqIFs3XSBLZWVwIHRoZSBzcGFjaW5nIGJldHdlZW4gY2hlY2tib3ggYW5kIGxhYmVsIHRleHQgY29uc2lzdGVudCxcbiAqICAgICBpbmRlcGVuZGVudCBmcm9tIHRoZSBjaGVja2JveCBzaXplLlxuICogWzhdIFJlbGF0aW9uIGZvciB0aGUgY2hlY2tib3guXG4gKiBbOV0gVmVydGljYWxseSBjZW50ZXIgdGhlIGljb24gaW5zaWRlIG9mIHRoZSBjaGVja2JveC5cbiAqIFsxMF0gVGhlIG92ZXJsYXkgaGFzIHRoZSBzYW1lIGRpbWVuc2lvbnMgYXMgdGhlIGJveCBidXQgdHJhbnNwYXJlbnQgYm9yZGVyc1xuICogICAgICBhbmQgYGJhY2tncm91bmQtY2xpcDogY29udGVudC1ib3g7YCB0byBhdm9pZCBzb21ldGltZXMgaW52aXNpYmxlIGJvcmRlcnNcbiAqICAgICAgaW4gc21hbGxlciBicm93c2VyIHpvb20gbGV2ZWxzLlxuICogWzExXSBBbmltYXRlIHRoZSBwb3NpdGlvbmluZyBvZiB0aGUgb3ZlcmxheSBvdmVyIHRoZSBpY29uLlxuICovXG4uYy1jaGVja2JveCB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzFdICovXG59XG4uYy1jaGVja2JveCArIC5jLWZvcm0tZmllbGRfX2V4dHJhIHtcbiAgLS1mb3JtLWZpZWxkLWV4dHJhLWluZGVudDogMjZweDsgLyogWzJdICovXG59XG5cbi5jLWNoZWNrYm94X19pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGl0Y3NzL25vLWF0LWltcG9ydGFudCAqL1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICAvKiBbM10gKi9cbn1cblxuLmMtY2hlY2tib3hfX2xhYmVsLCAuYy1jb21ib2JveF9fbGlzdGJveFthcmlhLW11bHRpc2VsZWN0YWJsZT10cnVlXSAuYy1jb21ib2JveF9faXRlbV9fdGV4dCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9uby1kdXBsaWNhdGUtZG9sbGFyLXZhcmlhYmxlcyAqL1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbOF0gKi9cbiAgZGlzcGxheTogYmxvY2s7IC8qIFs0XSAqL1xuICBtaW4taGVpZ2h0OiAxOHB4OyAvKiBbNV0gKi9cbiAgLyogWzZdICovXG4gIHBhZGRpbmctbGVmdDogMjZweDsgLyogWzddICovXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjMTYxNzE4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYy1jaGVja2JveF9faW5wdXQ6Zm9jdXMgKyAuYy1jaGVja2JveF9fbGFiZWw6OmJlZm9yZSwgLmMtY29tYm9ib3hfX2xpc3Rib3hbYXJpYS1tdWx0aXNlbGVjdGFibGU9dHJ1ZV0gLmMtY2hlY2tib3hfX2lucHV0OmZvY3VzICsgLmMtY29tYm9ib3hfX2l0ZW1fX3RleHQ6OmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogIzQ2NDc0ODtcbn1cbi5jLWNoZWNrYm94X19pbnB1dFtkaXNhYmxlZF0gKyAuYy1jaGVja2JveF9fbGFiZWwsIC5jLWNvbWJvYm94X19saXN0Ym94W2FyaWEtbXVsdGlzZWxlY3RhYmxlPXRydWVdIC5jLWNoZWNrYm94X19pbnB1dFtkaXNhYmxlZF0gKyAuYy1jb21ib2JveF9faXRlbV9fdGV4dCB7XG4gIGNvbG9yOiAjOWU5ZmEwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLmMtY2hlY2tib3hfX2lucHV0LmlzLWVycm9yICsgLmMtY2hlY2tib3hfX2xhYmVsLCAuYy1jb21ib2JveF9fbGlzdGJveFthcmlhLW11bHRpc2VsZWN0YWJsZT10cnVlXSAuYy1jaGVja2JveF9faW5wdXQuaXMtZXJyb3IgKyAuYy1jb21ib2JveF9faXRlbV9fdGV4dCB7XG4gIGNvbG9yOiAjZTgyYjM3O1xufVxuLmMtY2hlY2tib3hfX2xhYmVsOjpiZWZvcmUsIC5jLWNvbWJvYm94X19saXN0Ym94W2FyaWEtbXVsdGlzZWxlY3RhYmxlPXRydWVdIC5jLWNvbWJvYm94X19pdGVtX190ZXh0OjpiZWZvcmUge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjNDY0NzQ4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG4uYy1jaGVja2JveDpob3ZlciAuYy1jaGVja2JveF9fbGFiZWw6OmJlZm9yZSwgLmMtY2hlY2tib3g6aG92ZXIgLmMtY29tYm9ib3hfX2xpc3Rib3hbYXJpYS1tdWx0aXNlbGVjdGFibGU9dHJ1ZV0gLmMtY29tYm9ib3hfX2l0ZW1fX3RleHQ6OmJlZm9yZSwgLmMtY29tYm9ib3hfX2xpc3Rib3hbYXJpYS1tdWx0aXNlbGVjdGFibGU9dHJ1ZV0gLmMtY2hlY2tib3g6aG92ZXIgLmMtY29tYm9ib3hfX2l0ZW1fX3RleHQ6OmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogIzE2MTcxODtcbn1cbi5jLWNoZWNrYm94X19pbnB1dDpjaGVja2VkICsgLmMtY2hlY2tib3hfX2xhYmVsOjpiZWZvcmUsIC5jLWNvbWJvYm94X19saXN0Ym94W2FyaWEtbXVsdGlzZWxlY3RhYmxlPXRydWVdIC5jLWNoZWNrYm94X19pbnB1dDpjaGVja2VkICsgLmMtY29tYm9ib3hfX2l0ZW1fX3RleHQ6OmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogIzQxOTQ2ODtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQxOTQ2ODtcbn1cbi5jLWNoZWNrYm94OmhvdmVyIC5jLWNoZWNrYm94X19pbnB1dDpub3QoLmlzLWVycm9yLCBbZGlzYWJsZWRdKTpjaGVja2VkICsgLmMtY2hlY2tib3hfX2xhYmVsOjpiZWZvcmUsIC5jLWNoZWNrYm94OmhvdmVyIC5jLWNvbWJvYm94X19saXN0Ym94W2FyaWEtbXVsdGlzZWxlY3RhYmxlPXRydWVdIC5jLWNoZWNrYm94X19pbnB1dDpub3QoLmlzLWVycm9yLCBbZGlzYWJsZWRdKTpjaGVja2VkICsgLmMtY29tYm9ib3hfX2l0ZW1fX3RleHQ6OmJlZm9yZSwgLmMtY29tYm9ib3hfX2xpc3Rib3hbYXJpYS1tdWx0aXNlbGVjdGFibGU9dHJ1ZV0gLmMtY2hlY2tib3g6aG92ZXIgLmMtY2hlY2tib3hfX2lucHV0Om5vdCguaXMtZXJyb3IsIFtkaXNhYmxlZF0pOmNoZWNrZWQgKyAuYy1jb21ib2JveF9faXRlbV9fdGV4dDo6YmVmb3JlIHtcbiAgYm9yZGVyLWNvbG9yOiAjNTliYzg3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTliYzg3O1xufVxuLmMtY2hlY2tib3hfX2lucHV0W2Rpc2FibGVkXSArIC5jLWNoZWNrYm94X19sYWJlbDo6YmVmb3JlLCAuYy1jb21ib2JveF9fbGlzdGJveFthcmlhLW11bHRpc2VsZWN0YWJsZT10cnVlXSAuYy1jaGVja2JveF9faW5wdXRbZGlzYWJsZWRdICsgLmMtY29tYm9ib3hfX2l0ZW1fX3RleHQ6OmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogIzllOWZhMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uYy1jaGVja2JveF9faW5wdXQuaXMtZXJyb3IgKyAuYy1jaGVja2JveF9fbGFiZWw6OmJlZm9yZSwgLmMtY29tYm9ib3hfX2xpc3Rib3hbYXJpYS1tdWx0aXNlbGVjdGFibGU9dHJ1ZV0gLmMtY2hlY2tib3hfX2lucHV0LmlzLWVycm9yICsgLmMtY29tYm9ib3hfX2l0ZW1fX3RleHQ6OmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogI2U4MmIzNztcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uYy1jaGVja2JveF9faW5wdXQ6Y2hlY2tlZFtkaXNhYmxlZF0gKyAuYy1jaGVja2JveF9fbGFiZWw6OmJlZm9yZSwgLmMtY29tYm9ib3hfX2xpc3Rib3hbYXJpYS1tdWx0aXNlbGVjdGFibGU9dHJ1ZV0gLmMtY2hlY2tib3hfX2lucHV0OmNoZWNrZWRbZGlzYWJsZWRdICsgLmMtY29tYm9ib3hfX2l0ZW1fX3RleHQ6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5ZTlmYTA7XG59XG4uYy1jaGVja2JveF9faW5wdXQ6Y2hlY2tlZC5pcy1lcnJvciArIC5jLWNoZWNrYm94X19sYWJlbDo6YmVmb3JlLCAuYy1jb21ib2JveF9fbGlzdGJveFthcmlhLW11bHRpc2VsZWN0YWJsZT10cnVlXSAuYy1jaGVja2JveF9faW5wdXQ6Y2hlY2tlZC5pcy1lcnJvciArIC5jLWNvbWJvYm94X19pdGVtX190ZXh0OjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTgyYjM3O1xufVxuLmMtY2hlY2tib3hfX2xhYmVsOjphZnRlciwgLmMtY29tYm9ib3hfX2xpc3Rib3hbYXJpYS1tdWx0aXNlbGVjdGFibGU9dHJ1ZV0gLmMtY29tYm9ib3hfX2l0ZW1fX3RleHQ6OmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJicm9uc29uLXNrb2RhXCIgIWltcG9ydGFudDsgLyogWzFdICovXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIGNvbnRlbnQ6IFwiXFxmMTQ4XCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwOyAvKiBbMTBdICovXG4gIGxlZnQ6IDA7IC8qIFsxMF0gKi9cbiAgd2lkdGg6IDE4cHg7IC8qIFsxMF0gKi9cbiAgaGVpZ2h0OiAxOHB4OyAvKiBbMTBdICovXG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7IC8qIFs5XSAqL1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY2xpcDogY29udGVudC1ib3g7IC8qIFsxMF0gKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIFsxMF0gKi9cbiAgY29sb3I6ICNmZmZmZmY7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi5jLWNoZWNrYm94X19pbnB1dDpjaGVja2VkICsgLmMtY2hlY2tib3hfX2xhYmVsOjphZnRlciwgLmMtY29tYm9ib3hfX2xpc3Rib3hbYXJpYS1tdWx0aXNlbGVjdGFibGU9dHJ1ZV0gLmMtY2hlY2tib3hfX2lucHV0OmNoZWNrZWQgKyAuYy1jb21ib2JveF9faXRlbV9fdGV4dDo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLmMtY2hlY2tib3hfX2lucHV0LmlzLWVycm9yICsgLmMtY2hlY2tib3hfX2xhYmVsOjphZnRlciwgLmMtY29tYm9ib3hfX2xpc3Rib3hbYXJpYS1tdWx0aXNlbGVjdGFibGU9dHJ1ZV0gLmMtY2hlY2tib3hfX2lucHV0LmlzLWVycm9yICsgLmMtY29tYm9ib3hfX2l0ZW1fX3RleHQ6OmFmdGVyIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNDSEVDS0JPWFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBWZXJ0aWNhbGx5IGNlbnRlciBjaGVja2JveCB3aXRoIGZpcnN0IGxpbmUgb2YgbGFiZWwuXG4gKiBbMl0gVHJhbnNpdGlvbiBmcm9tIHRyYW5zcGFyZW50IHRvIHRhcmdldCBjb2xvcixcbiAqICAgICBvdGhlcndpc2UgdGhlIHRyYW5zaXRpb24gaXMgbm90IHNtb290aC5cbiAqIFszXSBQcmV2ZW50IHVubmVjZXNzYXJ5IHNwYWNpbmcgd2hlbiBubyB0ZXh0IGlzIHVzZWQgYXMgbGFiZWwuXG4gKi9cbi5jLWNoZWNrYm94X19pbnB1dCArIC5jLWNoZWNrYm94X19sYWJlbDo6YmVmb3JlLCAuYy1jb21ib2JveF9fbGlzdGJveFthcmlhLW11bHRpc2VsZWN0YWJsZT10cnVlXSAuYy1jaGVja2JveF9faW5wdXQgKyAuYy1jb21ib2JveF9faXRlbV9fdGV4dDo6YmVmb3JlIHtcbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLS1mb2N1cy1vdXRsaW5lLW9mZnNldDogMXB4O1xuICAtLWZvY3VzLW91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICAtLWZvY3VzLW91dGxpbmUtd2lkdGg6IDJweDtcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9jdXMtb3V0bGluZS1jb2xvciwgIzE2MTcxOCk7XG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1mb2N1cy1vdXRsaW5lLW9mZnNldCwgMXB4KTtcbiAgb3V0bGluZS1zdHlsZTogdmFyKC0tZm9jdXMtb3V0bGluZS1zdHlsZSwgc29saWQpO1xuICBvdXRsaW5lLXdpZHRoOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXdpZHRoLCAycHgpO1xuICAvKiBbMl0gKi9cbn1cbi5jLWNoZWNrYm94X19pbnB1dDpmb2N1cy12aXNpYmxlICsgLmMtY2hlY2tib3hfX2xhYmVsOjpiZWZvcmUsIC5jLWNvbWJvYm94X19saXN0Ym94W2FyaWEtbXVsdGlzZWxlY3RhYmxlPXRydWVdIC5jLWNoZWNrYm94X19pbnB1dDpmb2N1cy12aXNpYmxlICsgLmMtY29tYm9ib3hfX2l0ZW1fX3RleHQ6OmJlZm9yZSB7XG4gIC0tZm9jdXMtb3V0bGluZS1jb2xvcjogIzE2MTcxODtcbiAgLS1mb2N1cy1vdXRsaW5lLW9mZnNldDogMXB4O1xuICAtLWZvY3VzLW91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICAtLWZvY3VzLW91dGxpbmUtd2lkdGg6IDJweDtcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9jdXMtb3V0bGluZS1jb2xvciwgIzE2MTcxOCk7XG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1mb2N1cy1vdXRsaW5lLW9mZnNldCwgMXB4KTtcbiAgb3V0bGluZS1zdHlsZTogdmFyKC0tZm9jdXMtb3V0bGluZS1zdHlsZSwgc29saWQpO1xuICBvdXRsaW5lLXdpZHRoOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXdpZHRoLCAycHgpO1xufVxuLmMtY2hlY2tib3hfX2xhYmVsOjpiZWZvcmUsIC5jLWNvbWJvYm94X19saXN0Ym94W2FyaWEtbXVsdGlzZWxlY3RhYmxlPXRydWVdIC5jLWNvbWJvYm94X19pdGVtX190ZXh0OjpiZWZvcmUsIC5jLWNoZWNrYm94X19sYWJlbDo6YWZ0ZXIsIC5jLWNvbWJvYm94X19saXN0Ym94W2FyaWEtbXVsdGlzZWxlY3RhYmxlPXRydWVdIC5jLWNvbWJvYm94X19pdGVtX190ZXh0OjphZnRlciB7XG4gIHRvcDogM3B4OyAvKiBbMV0gKi9cbn1cbi5jLWNoZWNrYm94X19sYWJlbDplbXB0eSwgLmMtY29tYm9ib3hfX2xpc3Rib3hbYXJpYS1tdWx0aXNlbGVjdGFibGU9dHJ1ZV0gLmMtY29tYm9ib3hfX2l0ZW1fX3RleHQ6ZW1wdHkge1xuICBwYWRkaW5nLWxlZnQ6IDE4cHg7IC8qIFszXSAqL1xufVxuXG4vKipcbiAqIFsxXSBSZXNlbWJsZSBjaGVja2JveCBzdHlsZXMuXG4gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNDT01CT0JPWFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHQsIHNjc3Mvbm8tZHVwbGljYXRlLWRvbGxhci12YXJpYWJsZXMgKi9cbi8qKlxuICogWzFdICBQcmV2ZW50IHRleHQtc2VsZWN0aW9uIG9uIChhY2NpZGVudGFsKSBkb3VibGUtY2xpY2suXG4gKiBbMl0gIE1pbWljIChzZWxlY3QpIGlucHV0IHN0eWxlLlxuICogWzNdICBVc2UgYGNhbGNgIG9ubHkgaWYgYHBhZGRpbmdgIGlzID4gYDBgIHRvIHByZXZlbnQgZGl2aXNpb24gYnkgMFxuICogICAgICByZXN1bHRpbmcgaW4gaW52YWxpZCBjYWxjdWxhdGlvbiBhbmQgZGVjbGFyYXRpb24gYmVpbmcgaWdub3JlZC5cbiAqIFs0XSAgTWltaWMgKGN1c3RvbSkgY2hlY2tib3ggc3R5bGVzIHdpdGhvdXQgYWN0dWFsIGNoZWNrYm94IGNvbXBvbmVudC5cbiAqIFs1XSAgUGxhY2UgdGhlIGxpc3Rib3ggZGlyZWN0bHkgdW5kZXIgdGhlIHNlbGVjdCBsYWJlbC5cbiAqIFs2XSAgU3BhbiBmdWxsIHdpZHRoLlxuICogWzddICBUb2dnbGUgdmlzaWJpbGl0eSBmb3Igb3Blbi9jbG9zZWQgc3RhdGUsIGZhZGUgYW5pbWF0aW9uLlxuICogWzhdICBJZiB0aGUgYG1heC1oZWlnaHRgIG9mIHRoZSBsaXN0Ym94IGlzIGV4Y2VlZGVkLCBtYWtlIGl0XG4gKiAgICAgIHNjcm9sbGFibGUuXG4gKiBbOV0gIERvIG5vdCBhc3NpZ24gYW55IGhvcml6b250YWwgcGFkZGluZyBhcyBpdCB3b3VsZCBpbnRlcmZlcmUgd2l0aCB0aGVcbiAqICAgICAgYDpob3ZlcmAgb24gdGhlIGl0ZW1zIGlmIHRoZSBib3JkZXJzIGFyZSBub3QgZnVsbCB3aWR0aC5cbiAqIFsxMF0gUHJldmVudCBkb3VibGUtYm9yZGVyIGJldHdlZW4gY29tYm9ib3ggYW5kIGxpc3Rib3guXG4gKiBbMTFdIEFjdCBhcyBhIHZpc3VhbCByZXByZXNlbnRhdGlvbiAvIGh1bWFuIHJlYWRhYmxlIHZhbHVlcyxcbiAqICAgICAgZG8gbm90IGludGVyZmVyZSB3aXRoIGNvbWJvYm94IGludGVyYWN0aW9uLlxuICogWzEyXSBDcmVhdGUgdGhlIGJvcmRlciBiZXR3ZWVuIHRoZSBkcm9wZG93biBpdGVtcyB3aXRoIGEgcHNldWRvLWVsZW1lbnQsIHNvXG4gKiAgICAgIHdlIGNhbiBiZXR0ZXIgaGFuZGxlIHRoZSBwYWRkaW5nICsgYDpob3ZlcmAgb24gdGhlIGl0ZW1zLlxuICogWzEzXSBJbmNyZWFzZSBzcGVjaWZpY2l0eSB0byBhdm9pZCBpc3N1ZXMgcmVzdWx0aW5nIGZyb20gYEBleHRlbmRgIFs0XS5cbiAqIFsxNF0gQXZvaWQgb3ZlcmxhcHBpbmcgaWNvbiAmIHZhbHVlIHByZXNlbnRhdGlvbi5cbiAqICAgICAgQlJPTi03ODU3IGZvciBtb3JlIHJvYnVzdCBzb2x1dGlvbi5cbiAqIFsxNV0gTWFpbnRhaW4gZGVmYXVsdCBpbnB1dCBoZWlnaHRcbiAqICAgICAgd2hpbGUgYWxsb3dpbmcgZm9yIHNvbWUgcGFkZGluZyBmb3IgbXVsdGlsaW5lIHRleHQuXG4gKiBbMTZdIENlbnRlciBpY29uIGluIEZpcmVmb3guXG4gKiBbMTddIFVzZSBgOjpiZWZvcmVgIHBzZXVkby1lbGVtZW50IGZvciB0aGUgYm9yZGVyIHRvIGF2b2lkIGJveC1tb2RlbCBjaGFuZ2VzXG4gKiAgICAgIHdoZW4gdGhlIGJvcmRlciB3aWR0aCBjaGFuZ2VzLlxuICogWzE4XSBEaXNwbGF5IHRoZSBgbm9PcHRpb25zTWVzc2FnZWAgdmlhIGBbZGF0YS1jb21ib2JveC1uby1vcHRpb25zLW1lc3NhZ2VdYC5cbiAqIFsxOV0gQWxpZ24gdGhlIHNlYXJjaCBpbnB1dCB3aXRoIHRoZSBvcHRpb25zIGFuZCBzZXBhcmF0ZSBpdCB2aWEgYSBib3R0b20gYm9yZGVyLlxuICogWzIwXSBQcmV2ZW50IGBub09wdGlvbnNNZXNzYWdlYCBmcm9tIGJlaW5nIHNlbGVjdGFibGUuXG4gKiBbMjFdIFByZXZlbnQgYW55IHBvaW50ZXItZXZlbnRzIG9uIGRpc2FibGVkIG9yIHJlYWRvbmx5IHZhcmlhbnRzIG9mIHRoZSBjb21ib2JveC5cbiAqIFsyMl0gQXBwbHkgdGhlIHJlc3BlY3RpdmUgZGlzYWJsZWQgYW5kIHJlYWRvbmx5IGNvbG9ycyB0byB0aGUgaW5wdXQgaWNvbiBhbmQgYm9yZGVyLlxuICogWzIzXSBPdmVyd3JpdGUgY29sb3Igb2YgY2hlY2tib3ggbGFiZWwgcmVzdWx0aW5nIGZyb20gYEBleHRlbmRgIFs0XS5cbiAqIFsyNF0gUHJldmVudCBpbnRlcmFjdGlvbiB3aXRoIG9wdGlvbnMgd2hlbiB0aGUgQ29tYm9ib3ggaXMgY2xvc2VkLlxuICovXG4uYy1jb21ib2JveF9fd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jLWNvbWJvYm94X193cmFwcGVyID4gKiB7XG4gIHVzZXItc2VsZWN0OiBub25lOyAvKiBbMV0gKi9cbn1cblxuLmMtY29tYm9ib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogOHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtaW4taGVpZ2h0OiAzNnB4OyAvKiBbMl0gKi9cbiAgcGFkZGluZy1sZWZ0OiAxMnB4OyAvKiBbMl0gKi9cbiAgcGFkZGluZy1yaWdodDogMTJweDsgLyogWzJdICovXG4gIHBhZGRpbmctdG9wOiAwOyAvKiBbMTVdICovXG4gIHBhZGRpbmctYm90dG9tOiAwOyAvKiBbMTVdICovXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIsIDIzLCAyNCwgMC4wNik7XG59XG4uYy1jb21ib2JveDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogIzE2MTcxODtcbn1cbi5jLWNvbWJvYm94OjpiZWZvcmUgeyAvKiBbMTddICovXG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzVhNWI1YzsgLyogWzJdICovXG59XG4uYy1jb21ib2JveDpmb2N1cywgLmMtY29tYm9ib3g6Zm9jdXMtd2l0aGluIHtcbiAgb3V0bGluZTogMDtcbn1cbi5jLWNvbWJvYm94OmZvY3VzOjpiZWZvcmUsIC5jLWNvbWJvYm94OmZvY3VzLXdpdGhpbjo6YmVmb3JlIHsgLyogWzE3XSAqL1xuICBib3JkZXItd2lkdGg6IDJweDtcbiAgYm9yZGVyLWNvbG9yOiAjNDE5NDY4O1xuICBvdXRsaW5lOiAwO1xufVxuLmMtY29tYm9ib3g6OmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJicm9uc29uLXNrb2RhXCIgIWltcG9ydGFudDsgLyogWzFdICovXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgbWFyZ2luLXRvcDogYXV0bzsgLyogWzE2XSAqL1xuICBtYXJnaW4tYm90dG9tOiBhdXRvOyAvKiBbMTZdICovXG59XG4uYy1jb21ib2JveFthcmlhLWV4cGFuZGVkPWZhbHNlXTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlxcZjE1MVwiO1xufVxuLmMtY29tYm9ib3hbYXJpYS1leHBhbmRlZD10cnVlXTo6YmVmb3JlIHsgLyogWzE3XSAqL1xuICBib3JkZXItd2lkdGg6IDJweDtcbiAgYm9yZGVyLWNvbG9yOiAjNDE5NDY4O1xufVxuLmMtY29tYm9ib3hbYXJpYS1leHBhbmRlZD10cnVlXTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlxcZjE1NlwiO1xufVxuLmMtY29tYm9ib3hbYXJpYS1kaXNhYmxlZD10cnVlXSwgLmMtY29tYm9ib3hbYXJpYS1yZWFkb25seT10cnVlXSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbMjFdICovXG59XG4uYy1jb21ib2JveFthcmlhLWRpc2FibGVkPXRydWVdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q4ZDhkODtcbn1cbi5jLWNvbWJvYm94W2FyaWEtZGlzYWJsZWQ9dHJ1ZV06OmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogIzllOWZhMDsgLyogWzIyXSAqL1xufVxuLmMtY29tYm9ib3hbYXJpYS1kaXNhYmxlZD10cnVlXTo6YWZ0ZXIge1xuICBjb2xvcjogIzllOWZhMDsgLyogWzIyXSAqL1xufVxuLmMtY29tYm9ib3hbYXJpYS1yZWFkb25seT10cnVlXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG4uYy1jb21ib2JveFthcmlhLXJlYWRvbmx5PXRydWVdOjpiZWZvcmUge1xuICBib3JkZXItY29sb3I6ICM5ZTlmYTA7IC8qIFsyMl0gKi9cbn1cbi5jLWNvbWJvYm94W2FyaWEtcmVhZG9ubHk9dHJ1ZV06OmFmdGVyIHtcbiAgY29sb3I6ICMxNjE3MTg7IC8qIFsyMl0gKi9cbn1cblxuLmMtY29tYm9ib3hfX3ZhbHVlLXByZXNlbnRhdGlvbiB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgZmxleC1zaHJpbms6IDE7XG4gIGZsZXgtYmFzaXM6IGF1dG87XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbMTFdICovXG59XG5cbi5jLWNvbWJvYm94X192YWx1ZS1wcmVzZW50YXRpb25fX3RleHQge1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkOyAvKiBbMTRdICovXG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtY29tYm9ib3hfX3ZhbHVlLXByZXNlbnRhdGlvbl9fdGV4dC5oYXMtcGxhY2Vob2xkZXIge1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogIzVhNWI1Yztcbn1cblthcmlhLWRpc2FibGVkPXRydWVdIC5jLWNvbWJvYm94X192YWx1ZS1wcmVzZW50YXRpb25fX3RleHQge1xuICBjb2xvcjogIzllOWZhMDtcbn1cblthcmlhLXJlYWRvbmx5PXRydWVdIC5jLWNvbWJvYm94X192YWx1ZS1wcmVzZW50YXRpb25fX3RleHQge1xuICBjb2xvcjogIzE2MTcxODtcbn1cblxuLmMtY29tYm9ib3hfX2xpc3Rib3gtY29udGFpbmVyIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCNmZmZmZmYgMzAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApKSwgbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LCAyNTUsIDI1NSwgMCksICNmZmZmZmYgNzAlKSAwIDEwMCUsIHJhZGlhbC1ncmFkaWVudChmYXJ0aGVzdC1zaWRlIGF0IDUwJSAwLCByZ2JhKDAsIDAsIDAsIDAuMiksIHJnYmEoMCwgMCwgMCwgMCkpLCByYWRpYWwtZ3JhZGllbnQoZmFydGhlc3Qtc2lkZSBhdCA1MCUgMTAwJSwgcmdiYSgwLCAwLCAwLCAwLjIpLCByZ2JhKDAsIDAsIDAsIDApKSAwIDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJSA0MnB4LCAxMDAlIDQycHgsIDEwMCUgMTRweCwgMTAwJSAxNHB4O1xuICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGxvY2FsLCBsb2NhbCwgc2Nyb2xsLCBzY3JvbGw7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgbWF4LWhlaWdodDogMjQwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE3MDA7XG4gIHRvcDogMTAwJTsgLyogWzVdICovXG4gIHJpZ2h0OiAwOyAvKiBbNl0gKi9cbiAgbGVmdDogMDsgLyogWzZdICovXG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgLyogWzddICovXG4gIG9wYWNpdHk6IDA7IC8qIFs3XSAqL1xuICBtYXgtaGVpZ2h0OiAyNDBweDtcbiAgb3ZlcmZsb3cteTogYXV0bzsgLyogWzhdICovXG4gIHBhZGRpbmc6IDAgMDsgLyogWzldICovXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci10b3Atd2lkdGg6IDA7IC8qIFsxMF0gKi9cbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogWzI0XSAqL1xufVxuLmMtY29tYm9ib3hbYXJpYS1leHBhbmRlZD10cnVlXSAuYy1jb21ib2JveF9fbGlzdGJveC1jb250YWluZXIge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlOyAvKiBbN10gKi9cbiAgb3BhY2l0eTogMTsgLyogWzddICovXG4gIGJveC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7IC8qIFsyNF0gKi9cbn1cblxuLmMtY29tYm9ib3hfX2l0ZW0ge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDEycHggMjRweDtcbiAgY29sb3I6ICMxNjE3MTg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5jLWNvbWJvYm94X19pdGVtOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSlbYXJpYS1zZWxlY3RlZD10cnVlXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG4uYy1jb21ib2JveF9faXRlbTpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pOmhvdmVyLCAuYy1jb21ib2JveF9faXRlbTpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLmlzLWZvY3VzZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xuICBjb2xvcjogIzE2MTcxODtcbn1cbi5jLWNvbWJvYm94X19pdGVtW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmMtY29tYm9ib3hfX2l0ZW1fX3RleHQge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWNvbG9uLXNwYWNlLWFmdGVyICovXG4gIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7IC8qIFsxM10gKi9cbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDQwMCAhaW1wb3J0YW50O1xufVxuLmMtY29tYm9ib3hfX2xpc3Rib3hbYXJpYS1tdWx0aXNlbGVjdGFibGU9dHJ1ZV0gLmMtY29tYm9ib3hfX2l0ZW1fX3RleHQge1xuICAvKiBbNF0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovXG4gIC8qIFsyM10gKi9cbn1cbi5jLWNvbWJvYm94X19pdGVtOmhvdmVyIC5jLWNvbWJvYm94X19pdGVtX190ZXh0IHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5jLWNvbWJvYm94X19pdGVtW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLmMtY29tYm9ib3hfX2l0ZW1fX3RleHQge1xuICBjb2xvcjogIzllOWZhMCAhaW1wb3J0YW50OyAvKiBbMTNdICovXG59XG4uYy1jb21ib2JveF9faXRlbVthcmlhLWRpc2FibGVkPXRydWVdIC5jLWNvbWJvYm94X19pdGVtX190ZXh0OjpiZWZvcmUge1xuICBib3JkZXItY29sb3I6ICM5ZTlmYTAgIWltcG9ydGFudDsgLyogWzEzXSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyAvKiBbMTNdICovXG59XG4uYy1jb21ib2JveF9faXRlbVthcmlhLXNlbGVjdGVkPXRydWVdIC5jLWNvbWJvYm94X19pdGVtX190ZXh0IHtcbiAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50OyAvKiBbMTNdICovXG4gIC8qIFsxM10gKi9cbn1cbi5jLWNvbWJvYm94X19pdGVtW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0gLmMtY29tYm9ib3hfX2l0ZW1fX3RleHQ6OmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogIzQxOTQ2OCAhaW1wb3J0YW50OyAvKiBbMTNdICovXG4gIGJhY2tncm91bmQtY29sb3I6ICM0MTk0NjggIWltcG9ydGFudDsgLyogWzEzXSAqL1xufVxuLmMtY29tYm9ib3hfX2l0ZW1bYXJpYS1zZWxlY3RlZD10cnVlXSAuYy1jb21ib2JveF9faXRlbV9fdGV4dDo6YWZ0ZXIge1xuICAvKiBbNF0gKi9cbiAgdHJhbnNmb3JtOiBzY2FsZSgxKSAhaW1wb3J0YW50OyAvKiBbMTNdICovXG4gIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDsgLyogWzEzXSAqL1xuICAvKiBbMTNdICovXG59XG5cbi5jLWNvbWJvYm94X19saXN0Ym94Lmhhcy1uby1vcHRpb25zOjphZnRlciB7IC8qIFsxOF0gKi9cbiAgY29udGVudDogYXR0cihkYXRhLWNvbWJvYm94LW5vLW9wdGlvbnMtbWVzc2FnZSk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMTJweCAyNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbMjBdICovXG59XG5cbi5jLWNvbWJvYm94X19zZWFyY2gtaW5wdXQge1xuICBwYWRkaW5nOiAxNnB4IDI0cHg7IC8qIFsxOV0gKi9cbiAgLyogWzE5XSAqL1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQ09NQk9CT1hcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gQXBwbHkgYGJvcmRlci1yYWRpdXNgIHRvIGFsbCBzaWRlcywgZGVmYXVsdCBvbmx5IGFwcGxpZXMgdG8gYm90dG9tLlxuICogWzJdIFZpc3VhbGx5IGNlbnRlciBvZiB2aXN1YWwgZmFrZSBjb250YWluZXIgKGlucHV0ICsgbGFiZWwpLlxuICovXG4uYy1jb21ib2JveF9fd3JhcHBlciBpbnB1dFtuYW1lPWNvbWJvYm94LXZhbHVlc11bdmFsdWVdOm5vdChbdmFsdWU9XCJcIl0pIH4gLmMtY29tYm9ib3g6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKTpub3QoW2FyaWEtcmVhZG9ubHk9dHJ1ZV0pOm5vdCg6Zm9jdXMpOjpiZWZvcmUge1xuICBib3JkZXItY29sb3I6ICM0NjQ3NDg7XG59XG5cbi5jLWZvcm0tZmllbGQgLmMtY29tYm9ib3gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyLCAyMywgMjQsIDAuMDYpO1xufVxuLmMtZm9ybS1maWVsZCAuYy1jb21ib2JveDo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDsgLyogWzJdICovXG4gIHJpZ2h0OiAxMnB4O1xufVxuXG4uYy1jb21ib2JveF9fbGlzdGJveC1jb250YWluZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTZweCk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDsgLyogWzFdICovXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNUSUxFLVNFTEVDVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKlxuICogIE1peGluIGRlZmluZXMgc29tZSBjb21tb24gc3R5bGluZyBkZWNsYXJhdGlvbnMgZm9yIHRoZSB2YXJpb3VzIGNvbXBvbmVudFxuICogIHN0YXRlcy5cbiAqL1xuLyoqXG4gKiBbMV0gQ29tcGVuc2F0ZSBmb3IgdGhlIGFkZGl0aW9uYWwgc3BhY2UgcmVxdWlyZWQgZm9yIHRoZSBjaGVjayBtYXJrIGF0IHRoZVxuICogICAgIHRvcC5cbiAqIFsyXSBFbnN1cmUgdGlsZSBpY29uIGZvcmVncm91bmQgYW5kIGJhY2tncm91bmQgdXNlIGNvbW1vbiBwb3NpdGlvbi5cbiAqIFszXSBFbnN1cmUgdGhhdCBjaGVjayBpY29uIGlzIGNlbnRlcmVkLlxuICogWzRdIE1ha2UgYC5jLXRpbGUtc2VsZWN0X19ib2R5LXRvcGAgdGFrZSB1cCBhbGwgYXZhaWxhYmxlIHNwYWNlIHRvIHB1c2hcbiAqICAgICBgLmMtdGlsZS1zZWxlY3RfX2JvZHktYm90dG9tYCB0byB0aGUgdmVyeSBib3R0b20gb2YgdGhlIGJvZHkuXG4gKiBbNV0gQWRkIGhhbGYgdGhlIHNpemUgb2YgdGhlIGNoZWNrIG1hcmsgdG8gdGhlIHRvcCBwYWRkaW5nIHRvIGNvbXBlbnNhdGUgZm9yXG4gKiAgICAgdGhlIHNwYWNlIHRoZSBjaGVjayBtYXJrIHRha2VzIHVwLlxuICogWzZdIEFwcGx5IG1hcmdpbiBpZiB0aGUgZWxlbWVudCBpcyBub3QgdGhlIGZpcnN0IGNoaWxkIGluIGl0J3MgY29udGFpbmVyLlxuICogWzddIElmIHRoZSBpY29uIGlzIGhpZGRlbiBvbiBzbWFsbCBzY3JlZW5zLCB0aGUgdGl0bGUgYmVsb3cgaXQgc2hvdWxkIG5vdFxuICogICAgIGhhdmUgYSB0b3AgbWFyZ2luLlxuICogWzhdIFBsYWNlIHRoZSBwc2V1ZG8gZWxlbWVudCBhdCB0aGUgdG9wIGNlbnRlciBvZiB0aGUgYC5jLXRpbGUtc2VsZWN0X19ib2R5YFxuICogICAgIEFuZCB0cmFuc2xhdGUgaXQgYmFjayBieSBoYWxmIGl0J3Mgd2lkdGggYW5kIGhlaWdodCBmb3IgaXQgdG8gYmVcbiAqICAgICBjZW50ZXJlZC5cbiAqIFs5XSBPdmVycmlkZSBoaW50IGNvbG9ycyBmb3Igc2VsZWN0ZWQsIGRpc2FibGVkIG9yIGRpc2FibGVkIHNlbGVjdGVkIHRpbGVzLlxuICogWzEwXSBFbnN1cmUgdGhhdCBhbGwgY29udGVudCBpcyBjZW50ZXJlZC5cbiAqIFsxMV0gRW5zdXJlIHRoYXQgYWxsIGNvbnRlbnQgaGFzIHRvcCBzcGFjaW5nLlxuICogWzEyXSBQbGFjZSBhbGwgZm9vdGVyIGNvbnRlbnQgaW4gYSBuZXcgbGluZS5cbiAqIFsxM10gTWFrZSBzdXJlLCB0aGUgZm9vdGVyIGNvbnRlbnQgZG9lcyBub3Qgc3RyZXRjaCBhY3Jvc3MgdGhlIHBhcmVudFxuICogICAgICBjb250YWluZXIuXG4gKi9cbi5jLXRpbGUtc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZy10b3A6IDE2cHg7IC8qIFsxXSAqL1xufVxuXG4uYy10aWxlLXNlbGVjdF9faW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBpdGNzcy9uby1hdC1pbXBvcnRhbnQgKi9cbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbn1cblxuLmMtdGlsZS1zZWxlY3RfX2xhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbn1cblxuLmMtdGlsZS1zZWxlY3RfX2JvZHkge1xuICBwYWRkaW5nLXRvcDogNDBweDtcbiAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjRweDtcbiAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbMV0gKi9cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU0O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXItY29sb3I7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDMwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC8qKlxuICAgKiBbMV0gQ2hlY2sgaWYgYSB0aGVtZSBpcyBzZXQgb3IgaWYgdGhlIGRlZmF1bHQgdGhlbWUgKG51bGwpIGlzIHVzZWQuXG4gICAqICAgICBJZiB0aGUgYGRlZmF1bHRgIHRoZW1lIGlzIHVzZWQgd2UgZXhlY3V0ZSB0aGUgYWxyZWFkeSBwcmVzZW50IGxvZ2ljLFxuICAgKiAgICAgZWxzZSB3ZSBqdXN0IHJldHVybiB0aGUgY29udGVudCB1bndyYXBwZWQuXG4gICAqL1xufVxuLyogWzFdICovXG4uYy10aWxlLXNlbGVjdF9fYm9keTo6YmVmb3JlLCAuYy10aWxlLXNlbGVjdF9fYm9keTo6YWZ0ZXIgeyAvKiBbMl0gKi9cbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7IC8qIFs4XSAqL1xuICBsZWZ0OiA1MCU7IC8qIFs4XSAqL1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IC8qIFs4XSAqL1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvciwgYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyLWNvbG9yO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAzMDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xufVxuLmMtdGlsZS1zZWxlY3RfX2JvZHk6OmJlZm9yZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNGU0ZTQ7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U0ZTRlNDtcbiAgLyoqXG4gICAqIFsxXSBDaGVjayBpZiBhIHRoZW1lIGlzIHNldCBvciBpZiB0aGUgZGVmYXVsdCB0aGVtZSAobnVsbCkgaXMgdXNlZC5cbiAgICogICAgIElmIHRoZSBgZGVmYXVsdGAgdGhlbWUgaXMgdXNlZCB3ZSBleGVjdXRlIHRoZSBhbHJlYWR5IHByZXNlbnQgbG9naWMsXG4gICAqICAgICBlbHNlIHdlIGp1c3QgcmV0dXJuIHRoZSBjb250ZW50IHVud3JhcHBlZC5cbiAgICovXG59XG4vKiBbMV0gKi9cbi5jLXRpbGUtc2VsZWN0X19ib2R5OjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiYnJvbnNvbi1za29kYVwiICFpbXBvcnRhbnQ7IC8qIFsxXSAqL1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGNvbnRlbnQ6IFwiXFxmMTQ4XCI7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDMycHg7IC8qIFszXSAqL1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IC8qIFszXSAqL1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5jLXRpbGUtc2VsZWN0X19pbnB1dCArIC5jLXRpbGUtc2VsZWN0X19ib2R5OmhvdmVyLCAuYy10aWxlLXNlbGVjdF9faW5wdXQ6Zm9jdXMgKyAuYy10aWxlLXNlbGVjdF9fYm9keSB7XG4gIGJvcmRlci1jb2xvcjogIzllOWZhMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi8qIFsxXSAqL1xuLmMtdGlsZS1zZWxlY3RfX2lucHV0ICsgLmMtdGlsZS1zZWxlY3RfX2JvZHk6aG92ZXI6OmJlZm9yZSwgLmMtdGlsZS1zZWxlY3RfX2lucHV0OmZvY3VzICsgLmMtdGlsZS1zZWxlY3RfX2JvZHk6OmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogIzllOWZhMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q4ZDhkODtcbiAgLyoqXG4gICAqIFsxXSBDaGVjayBpZiBhIHRoZW1lIGlzIHNldCBvciBpZiB0aGUgZGVmYXVsdCB0aGVtZSAobnVsbCkgaXMgdXNlZC5cbiAgICogICAgIElmIHRoZSBgZGVmYXVsdGAgdGhlbWUgaXMgdXNlZCB3ZSBleGVjdXRlIHRoZSBhbHJlYWR5IHByZXNlbnQgbG9naWMsXG4gICAqICAgICBlbHNlIHdlIGp1c3QgcmV0dXJuIHRoZSBjb250ZW50IHVud3JhcHBlZC5cbiAgICovXG59XG4vKiBbMV0gKi9cbi5jLXRpbGUtc2VsZWN0X19pbnB1dCArIC5jLXRpbGUtc2VsZWN0X19ib2R5OmhvdmVyOjphZnRlciwgLmMtdGlsZS1zZWxlY3RfX2lucHV0OmZvY3VzICsgLmMtdGlsZS1zZWxlY3RfX2JvZHk6OmFmdGVyIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uYy10aWxlLXNlbGVjdF9faW5wdXQ6Y2hlY2tlZCArIC5jLXRpbGUtc2VsZWN0X19ib2R5IHtcbiAgYm9yZGVyLWNvbG9yOiAjNDE5NDY4O1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi8qIFsxXSAqL1xuLmMtdGlsZS1zZWxlY3RfX2lucHV0OmNoZWNrZWQgKyAuYy10aWxlLXNlbGVjdF9fYm9keTo6YmVmb3JlIHtcbiAgYm9yZGVyLWNvbG9yOiAjNDE5NDY4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDE5NDY4O1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi8qIFsxXSAqL1xuLmMtdGlsZS1zZWxlY3RfX2lucHV0OmNoZWNrZWQgKyAuYy10aWxlLXNlbGVjdF9fYm9keTo6YWZ0ZXIge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5jLXRpbGUtc2VsZWN0X19pbnB1dDpkaXNhYmxlZCArIC5jLXRpbGUtc2VsZWN0X19ib2R5IHtcbiAgYm9yZGVyLWNvbG9yOiAjZDhkOGQ4O1xuICBvcGFjaXR5OiAxO1xuICBjdXJzb3I6IGF1dG87XG4gIC8qKlxuICAgKiBbMV0gQ2hlY2sgaWYgYSB0aGVtZSBpcyBzZXQgb3IgaWYgdGhlIGRlZmF1bHQgdGhlbWUgKG51bGwpIGlzIHVzZWQuXG4gICAqICAgICBJZiB0aGUgYGRlZmF1bHRgIHRoZW1lIGlzIHVzZWQgd2UgZXhlY3V0ZSB0aGUgYWxyZWFkeSBwcmVzZW50IGxvZ2ljLFxuICAgKiAgICAgZWxzZSB3ZSBqdXN0IHJldHVybiB0aGUgY29udGVudCB1bndyYXBwZWQuXG4gICAqL1xufVxuLyogWzFdICovXG4uYy10aWxlLXNlbGVjdF9faW5wdXQ6ZGlzYWJsZWQgKyAuYy10aWxlLXNlbGVjdF9fYm9keTo6YmVmb3JlIHtcbiAgYm9yZGVyLWNvbG9yOiAjZDhkOGQ4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTRlNGU0O1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi8qIFsxXSAqL1xuLmMtdGlsZS1zZWxlY3RfX2lucHV0OmRpc2FibGVkICsgLmMtdGlsZS1zZWxlY3RfX2JvZHk6OmFmdGVyIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uYy10aWxlLXNlbGVjdF9faW5wdXQ6Y2hlY2tlZDpkaXNhYmxlZCArIC5jLXRpbGUtc2VsZWN0X19ib2R5IHtcbiAgYm9yZGVyLWNvbG9yOiAjOWU5ZmEwO1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi8qIFsxXSAqL1xuLmMtdGlsZS1zZWxlY3RfX2lucHV0OmNoZWNrZWQ6ZGlzYWJsZWQgKyAuYy10aWxlLXNlbGVjdF9fYm9keTo6YmVmb3JlIHtcbiAgYm9yZGVyLWNvbG9yOiAjOWU5ZmEwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDhkOGQ4O1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi8qIFsxXSAqL1xuLmMtdGlsZS1zZWxlY3RfX2lucHV0OmNoZWNrZWQ6ZGlzYWJsZWQgKyAuYy10aWxlLXNlbGVjdF9fYm9keTo6YWZ0ZXIge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5pcy1lcnJvciAuYy10aWxlLXNlbGVjdF9fYm9keSB7XG4gIGJvcmRlci1jb2xvcjogI2U4MmIzNztcbiAgLyoqXG4gICAqIFsxXSBDaGVjayBpZiBhIHRoZW1lIGlzIHNldCBvciBpZiB0aGUgZGVmYXVsdCB0aGVtZSAobnVsbCkgaXMgdXNlZC5cbiAgICogICAgIElmIHRoZSBgZGVmYXVsdGAgdGhlbWUgaXMgdXNlZCB3ZSBleGVjdXRlIHRoZSBhbHJlYWR5IHByZXNlbnQgbG9naWMsXG4gICAqICAgICBlbHNlIHdlIGp1c3QgcmV0dXJuIHRoZSBjb250ZW50IHVud3JhcHBlZC5cbiAgICovXG59XG4vKiBbMV0gKi9cbi5pcy1lcnJvciAuYy10aWxlLXNlbGVjdF9fYm9keTo6YmVmb3JlIHtcbiAgYm9yZGVyLWNvbG9yOiAjZTgyYjM3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTRlNGU0O1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi8qIFsxXSAqL1xuLmlzLWVycm9yIC5jLXRpbGUtc2VsZWN0X19ib2R5OjphZnRlciB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmlzLWVycm9yIC5jLXRpbGUtc2VsZWN0X19pbnB1dDpob3ZlciArIC5jLXRpbGUtc2VsZWN0X19ib2R5LCAuaXMtZXJyb3IgLmMtdGlsZS1zZWxlY3RfX2lucHV0OmZvY3VzICsgLmMtdGlsZS1zZWxlY3RfX2JvZHkge1xuICBib3JkZXItY29sb3I6ICNlODJiMzc7XG4gIC8qKlxuICAgKiBbMV0gQ2hlY2sgaWYgYSB0aGVtZSBpcyBzZXQgb3IgaWYgdGhlIGRlZmF1bHQgdGhlbWUgKG51bGwpIGlzIHVzZWQuXG4gICAqICAgICBJZiB0aGUgYGRlZmF1bHRgIHRoZW1lIGlzIHVzZWQgd2UgZXhlY3V0ZSB0aGUgYWxyZWFkeSBwcmVzZW50IGxvZ2ljLFxuICAgKiAgICAgZWxzZSB3ZSBqdXN0IHJldHVybiB0aGUgY29udGVudCB1bndyYXBwZWQuXG4gICAqL1xufVxuLyogWzFdICovXG4uaXMtZXJyb3IgLmMtdGlsZS1zZWxlY3RfX2lucHV0OmhvdmVyICsgLmMtdGlsZS1zZWxlY3RfX2JvZHk6OmJlZm9yZSwgLmlzLWVycm9yIC5jLXRpbGUtc2VsZWN0X19pbnB1dDpmb2N1cyArIC5jLXRpbGUtc2VsZWN0X19ib2R5OjpiZWZvcmUge1xuICBib3JkZXItY29sb3I6ICNlODJiMzc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7XG4gIC8qKlxuICAgKiBbMV0gQ2hlY2sgaWYgYSB0aGVtZSBpcyBzZXQgb3IgaWYgdGhlIGRlZmF1bHQgdGhlbWUgKG51bGwpIGlzIHVzZWQuXG4gICAqICAgICBJZiB0aGUgYGRlZmF1bHRgIHRoZW1lIGlzIHVzZWQgd2UgZXhlY3V0ZSB0aGUgYWxyZWFkeSBwcmVzZW50IGxvZ2ljLFxuICAgKiAgICAgZWxzZSB3ZSBqdXN0IHJldHVybiB0aGUgY29udGVudCB1bndyYXBwZWQuXG4gICAqL1xufVxuLyogWzFdICovXG4uaXMtZXJyb3IgLmMtdGlsZS1zZWxlY3RfX2lucHV0OmhvdmVyICsgLmMtdGlsZS1zZWxlY3RfX2JvZHk6OmFmdGVyLCAuaXMtZXJyb3IgLmMtdGlsZS1zZWxlY3RfX2lucHV0OmZvY3VzICsgLmMtdGlsZS1zZWxlY3RfX2JvZHk6OmFmdGVyIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uaXMtZXJyb3IgLmMtdGlsZS1zZWxlY3RfX2lucHV0OmNoZWNrZWQgKyAuYy10aWxlLXNlbGVjdF9fYm9keSB7XG4gIGJvcmRlci1jb2xvcjogI2U4MmIzNztcbiAgLyoqXG4gICAqIFsxXSBDaGVjayBpZiBhIHRoZW1lIGlzIHNldCBvciBpZiB0aGUgZGVmYXVsdCB0aGVtZSAobnVsbCkgaXMgdXNlZC5cbiAgICogICAgIElmIHRoZSBgZGVmYXVsdGAgdGhlbWUgaXMgdXNlZCB3ZSBleGVjdXRlIHRoZSBhbHJlYWR5IHByZXNlbnQgbG9naWMsXG4gICAqICAgICBlbHNlIHdlIGp1c3QgcmV0dXJuIHRoZSBjb250ZW50IHVud3JhcHBlZC5cbiAgICovXG59XG4vKiBbMV0gKi9cbi5pcy1lcnJvciAuYy10aWxlLXNlbGVjdF9faW5wdXQ6Y2hlY2tlZCArIC5jLXRpbGUtc2VsZWN0X19ib2R5OjpiZWZvcmUge1xuICBib3JkZXItY29sb3I6ICNlODJiMzc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlODJiMzc7XG4gIC8qKlxuICAgKiBbMV0gQ2hlY2sgaWYgYSB0aGVtZSBpcyBzZXQgb3IgaWYgdGhlIGRlZmF1bHQgdGhlbWUgKG51bGwpIGlzIHVzZWQuXG4gICAqICAgICBJZiB0aGUgYGRlZmF1bHRgIHRoZW1lIGlzIHVzZWQgd2UgZXhlY3V0ZSB0aGUgYWxyZWFkeSBwcmVzZW50IGxvZ2ljLFxuICAgKiAgICAgZWxzZSB3ZSBqdXN0IHJldHVybiB0aGUgY29udGVudCB1bndyYXBwZWQuXG4gICAqL1xufVxuLyogWzFdICovXG4uaXMtZXJyb3IgLmMtdGlsZS1zZWxlY3RfX2lucHV0OmNoZWNrZWQgKyAuYy10aWxlLXNlbGVjdF9fYm9keTo6YWZ0ZXIge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmMtdGlsZS1zZWxlY3RfX2JvZHktdG9wIHtcbiAgZmxleC1ncm93OiAxOyAvKiBbNF0gKi9cbiAgZmxleC1zaHJpbms6IDE7XG4gIGZsZXgtYmFzaXM6IGF1dG87XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmMtdGlsZS1zZWxlY3RfX2JvZHktYm90dG9tIHtcbiAgbWFyZ2luLXRvcDogMjRweDtcbiAgLyogWzExXSAqL1xuICByb3ctZ2FwOiAyNHB4O1xuICAvKiBbMTFdICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKiBbMTBdICovXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IC8qIFsxMl0gKi9cbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogWzEzXSAqL1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLXRpbGUtc2VsZWN0X19ib2R5LWJvdHRvbSB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLXRpbGUtc2VsZWN0X19ib2R5LWJvdHRvbSB7XG4gICAgcm93LWdhcDogMTZweDtcbiAgfVxufVxuXG4uYy10aWxlLXNlbGVjdF9faWNvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDQ4cHg7XG59XG5cbi5jLXRpbGUtc2VsZWN0X190aXRsZSxcbi5jLXRpbGUtc2VsZWN0X190ZXh0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5jLXRpbGUtc2VsZWN0X190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS40Mzc1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4qICsgLmMtdGlsZS1zZWxlY3RfX3RpdGxlIHsgLyogWzZdICovXG4gIG1hcmdpbi10b3A6IDhweDtcbn1cblxuKiArIC5jLXRpbGUtc2VsZWN0X190ZXh0IHsgLyogWzZdICovXG4gIG1hcmdpbi10b3A6IDhweDtcbn1cblxuLyoqXG4gKiBbMV0gUmVzZXQgZGVmYXVsdC5cbiAqIFsyXSBIYW5kbGUgZGlzYWJsZWQgc3RhdGUgdmlhIGNvbG9yIG9uIGFsbCBlbGVtZW50cywgbm90IG9wYWNpdHkuXG4gKiBbM10gUmVzZXQgY29tcGVuc2F0aW9uIGFzIHRoZSBpbmRpY2F0b3IgaWNvbiBpcyBwbGFjZWQgZGlmZmVyZW50bHkgaW4gdGhpcyBicmFuZC5cbiAqL1xuLmMtdGlsZS1zZWxlY3Qge1xuICBwYWRkaW5nLXRvcDogMDsgLyogWzNdICovXG59XG5cbi5jLXRpbGUtc2VsZWN0X19ib2R5IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xufVxuLmMtdGlsZS1zZWxlY3RfX2JvZHk6OmJlZm9yZSwgLmMtdGlsZS1zZWxlY3RfX2JvZHk6OmFmdGVyIHtcbiAgdG9wOiAxNnB4O1xuICByaWdodDogMTZweDtcbiAgbGVmdDogYXV0bzsgLyogWzFdICovXG4gIHRyYW5zZm9ybTogbm9uZTsgLyogWzFdICovXG59XG4uYy10aWxlLXNlbGVjdF9fYm9keTo6YmVmb3JlIHtcbiAgYm9yZGVyOiAwOyAvKiBbMV0gKi9cbn1cbi5jLXRpbGUtc2VsZWN0Om5vdCguaXMtZXJyb3IpIC5jLXRpbGUtc2VsZWN0X19pbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOm5vdCg6ZGlzYWJsZWQpICsgLmMtdGlsZS1zZWxlY3RfX2JvZHk6aG92ZXIge1xuICBib3JkZXItY29sb3I6ICM1OWJjODc7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbn1cbi5jLXRpbGUtc2VsZWN0Om5vdCguaXMtZXJyb3IpIC5jLXRpbGUtc2VsZWN0X19pbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOm5vdCg6ZGlzYWJsZWQpICsgLmMtdGlsZS1zZWxlY3RfX2JvZHk6aG92ZXI6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1OWJjODc7XG59XG4uYy10aWxlLXNlbGVjdF9faW5wdXQ6ZGlzYWJsZWQgKyAuYy10aWxlLXNlbGVjdF9fYm9keSAqOm5vdCguYy1idG4sIC5jLWJ0bl9fdGV4dCkge1xuICBjb2xvcjogIzllOWZhMDsgLyogWzJdICovXG59XG4uYy10aWxlLXNlbGVjdF9faW5wdXQ6ZGlzYWJsZWQgKyAuYy10aWxlLXNlbGVjdF9fYm9keSAuYy1oaW50IHtcbiAgb3BhY2l0eTogMC4zO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjUkFESU8tQlVUVE9OXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIERlZmF1bHRpbmcgdG8gaW5saW5lLWJsb2NrIGdpdmVzIHVzIHRoZSBtb3N0IGZsZXhpYmlsaXR5LlxuICogWzJdIERlZmVuc2l2ZWx5IHJlc2V0IGFueSBtYXJnaW4tYm90dG9tLlxuICogWzNdIFNldCB0aGUgaW5kZW50IG9mIGFuIGFkanVzdGluZyBgLmMtZm9ybS1maWVsZF9fZXh0cmFgIHZpYSBhIENTUyBjdXN0b21cbiAqICAgICBwcm9wZXJ0eS5cbiAqIFs0XSBIaWRlIG9yaWdpbmFsIHJhZGlvIGJ1dHRvbi5cbiAqIFs1XSBNYWtlIGl0IGJsb2NreSBzbyBldmVyeXRoaW5nIGJlaGF2ZXMgYXMgZXhwZWN0ZWQuXG4gKiBbNl0gU2V0dGluZyB0aGUgaGVpZ2h0IG9mIHRoZSBsYWJlbCB0ZXh0IHRvIGEgbWluaW11bSBvZiB0aGUgcmFkaW8gYnV0dG9uXG4gKiAgICAgc2l6ZSBtYWtlcyB0aGUgdGV4dCBjbGlja2FibGUgb24gaXRzIGVudGlyZSBoZWlnaHQsIGkuZS46IEl0IGluY3JlYXNlc1xuICogICAgIHRoZSBjbGljayBhcmVhLlxuICogWzddIEFsaWduIHRoZSBmaXJzdCAob3Igb25seSkgcm93IG9mIGxhYmVsIHRleHQgdmVydGljYWxseSBjZW50ZXJlZCB0byB0aGVcbiAqICAgICByYWRpbyBidXR0b24uXG4gKiAgICAgVXNlIGBtYXhgIHRvIGVuc3VyZSB0aGUgY2FsY3VsYXRpb24gZG9lcyBub3QgcmVzdWx0IGluIG5lZ2F0aXZlIHZhbHVlLlxuICogICAgIGBtYXgoKWAgaXMgdGhlIFNhc3MgZnVuY3Rpb24sIG5vdCB0aGUgbmF0aXZlIENTUyBmdW5jdGlvbi5cbiAqIFs4XSBLZWVwIHRoZSBzcGFjaW5nIGJldHdlZW4gcmFkaW8gYnV0dG9uIGFuZCBsYWJlbCB0ZXh0IGNvbnNpc3RlbnQsXG4gKiAgICAgaW5kZXBlbmRlbnQgZnJvbSB0aGUgcmFkaW8gYnV0dG9uIHNpemUuXG4gKiBbOV0gUmVsYXRpb24gZm9yIHRoZSByYWRpbyBidXR0b24uXG4gKiBbMTBdIEhvcml6b250YWxseSBjZW50ZXIgdGhlIGRvdCBpbnNpZGUgb2YgdGhlIHJhZGlvIGJ1dHRvbi5cbiAqIFsxMV0gU2NhbGluZyBzZWVtcyB0byBiZSB0aGUgbW9zdCBlZmZpY2llbnQgYW5kIG9ubHkg4oCcbmljZeKAnSBtZXRob2QgdGhhdFxuICogICAgICB3b3JrcyBhY3Jvc3MgYWxsIGJyb3dzZXJzLiBPdGhlciBtZXRob2RzIGJyb3VnaHQgeWFua3ksIGp1bXB5XG4gKiAgICAgIGFuaW1hdGlvbiBhcnRpZmFjdHMuXG4gKiBbMTJdIGAuYy1yYWRpb19fbGFiZWwtY29udGFpbmVyYCBjb3VsZCBiZSBhbiBhZGRpdGlvbmFsIGNvbnRhaW5lciBmb3IgdGhlXG4gKiAgICAgIGxhYmVsLiBGb3IgZXhhbXBsZSwgaXQgaXMgdXNlZCBieSB0aGUg4oCcQ29tcGFyZSBhbmQgU2VsZWN04oCdIGNvbXBvbmVudCB0b1xuICogICAgICBjaGFuZ2UgcmFkaW8gYnV0dG9uIHN0eWxlcy5cbiAqL1xuLmMtcmFkaW8ge1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogWzFdICovXG4gIG1hcmdpbi1ib3R0b206IDA7IC8qIFsyXSAqL1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYy1yYWRpbyArIC5jLWZvcm0tZmllbGRfX2V4dHJhIHtcbiAgLS1mb3JtLWZpZWxkLWV4dHJhLWluZGVudDogMjhweDsgLyogWzNdICovXG59XG5cbi5jLXJhZGlvX19pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGl0Y3NzL25vLWF0LWltcG9ydGFudCAqL1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICAvKiBbNF0gKi9cbn1cblxuLmMtcmFkaW9fX2xhYmVsIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogWzldICovXG4gIGRpc3BsYXk6IGJsb2NrOyAvKiBbNV0gKi9cbiAgbWluLWhlaWdodDogMjBweDsgLyogWzZdICovXG4gIHBhZGRpbmctdG9wOiAwOyAvKiBbN10gKi9cbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvKiBbOF0gKi9cbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6ICMxNjE3MTg7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1jbGFzcywgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cbi5jLXJhZGlvX19sYWJlbDpob3ZlciB7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtcmFkaW9fX2lucHV0OmhvdmVyICsgLmMtcmFkaW9fX2xhYmVsOjpiZWZvcmUge1xuICBib3JkZXItY29sb3I6ICMxNjE3MTg7XG59XG4uYy1yYWRpb19faW5wdXQ6Zm9jdXMgKyAuYy1yYWRpb19fbGFiZWw6OmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogIzQ2NDc0ODtcbn1cbi5jLXJhZGlvX19pbnB1dFtkaXNhYmxlZF0gKyAuYy1yYWRpb19fbGFiZWwge1xuICBjb2xvcjogIzllOWZhMDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi8qIFsxXSAqL1xuW2RhdGEtdGhlbWU9YWx0ZXJuYXRpdmVdIC5jLXJhZGlvX19pbnB1dFtkaXNhYmxlZF0gKyAuYy1yYWRpb19fbGFiZWwge1xuICBjb2xvcjogIzllOWZhMDtcbn1cblxuLmMtcmFkaW9fX2lucHV0LmlzLWVycm9yICsgLmMtcmFkaW9fX2xhYmVsIHtcbiAgY29sb3I6ICNlODJiMzc7XG59XG4uYy1yYWRpb19fbGFiZWw6OmJlZm9yZSwgLmMtcmFkaW9fX2xhYmVsOjphZnRlciB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG4uYy1yYWRpb19fbGFiZWw6OmJlZm9yZSB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgYm9yZGVyOiAycHggc29saWQgIzQ2NDc0ODtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8qKlxuICAgKiBbMV0gQ2hlY2sgaWYgYSB0aGVtZSBpcyBzZXQgb3IgaWYgdGhlIGRlZmF1bHQgdGhlbWUgKG51bGwpIGlzIHVzZWQuXG4gICAqICAgICBJZiB0aGUgYGRlZmF1bHRgIHRoZW1lIGlzIHVzZWQgd2UgZXhlY3V0ZSB0aGUgYWxyZWFkeSBwcmVzZW50IGxvZ2ljLFxuICAgKiAgICAgZWxzZSB3ZSBqdXN0IHJldHVybiB0aGUgY29udGVudCB1bndyYXBwZWQuXG4gICAqL1xufVxuLyogWzFdICovXG4uYy1yYWRpb19faW5wdXQ6Y2hlY2tlZCArIC5jLXJhZGlvX19sYWJlbDo6YmVmb3JlLCAuYy1yYWRpb19faW5wdXQ6Y2hlY2tlZCArIC5jLXJhZGlvX19sYWJlbC1jb250YWluZXIgLmMtcmFkaW9fX2xhYmVsOjpiZWZvcmUgeyAvKiBbMTJdICovXG4gIGJvcmRlci1jb2xvcjogIzQxOTQ2ODtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8qKlxuICAgKiBbMV0gQ2hlY2sgaWYgYSB0aGVtZSBpcyBzZXQgb3IgaWYgdGhlIGRlZmF1bHQgdGhlbWUgKG51bGwpIGlzIHVzZWQuXG4gICAqICAgICBJZiB0aGUgYGRlZmF1bHRgIHRoZW1lIGlzIHVzZWQgd2UgZXhlY3V0ZSB0aGUgYWxyZWFkeSBwcmVzZW50IGxvZ2ljLFxuICAgKiAgICAgZWxzZSB3ZSBqdXN0IHJldHVybiB0aGUgY29udGVudCB1bndyYXBwZWQuXG4gICAqL1xufVxuLyogWzFdICovXG5bZGF0YS10aGVtZT1hbHRlcm5hdGl2ZV0gLmMtcmFkaW9fX2lucHV0OmNoZWNrZWQgKyAuYy1yYWRpb19fbGFiZWw6OmJlZm9yZSwgW2RhdGEtdGhlbWU9YWx0ZXJuYXRpdmVdIC5jLXJhZGlvX19pbnB1dDpjaGVja2VkICsgLmMtcmFkaW9fX2xhYmVsLWNvbnRhaW5lciAuYy1yYWRpb19fbGFiZWw6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uYy1yYWRpb19faW5wdXQ6Y2hlY2tlZDpob3Zlcjpub3QoLmlzLWVycm9yLCBbZGlzYWJsZWRdKSArIC5jLXJhZGlvX19sYWJlbDo6YmVmb3JlIHtcbiAgYm9yZGVyLWNvbG9yOiAjNTliYzg3O1xufVxuLmMtcmFkaW9fX2lucHV0W2Rpc2FibGVkXSArIC5jLXJhZGlvX19sYWJlbDo6YmVmb3JlLCAuYy1yYWRpb19faW5wdXRbZGlzYWJsZWRdICsgLmMtcmFkaW9fX2xhYmVsLWNvbnRhaW5lciAuYy1yYWRpb19fbGFiZWw6OmJlZm9yZSB7IC8qIFsxMl0gKi9cbiAgYm9yZGVyLWNvbG9yOiAjOWU5ZmEwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLyoqXG4gICAqIFsxXSBDaGVjayBpZiBhIHRoZW1lIGlzIHNldCBvciBpZiB0aGUgZGVmYXVsdCB0aGVtZSAobnVsbCkgaXMgdXNlZC5cbiAgICogICAgIElmIHRoZSBgZGVmYXVsdGAgdGhlbWUgaXMgdXNlZCB3ZSBleGVjdXRlIHRoZSBhbHJlYWR5IHByZXNlbnQgbG9naWMsXG4gICAqICAgICBlbHNlIHdlIGp1c3QgcmV0dXJuIHRoZSBjb250ZW50IHVud3JhcHBlZC5cbiAgICovXG59XG4vKiBbMV0gKi9cbltkYXRhLXRoZW1lPWFsdGVybmF0aXZlXSAuYy1yYWRpb19faW5wdXRbZGlzYWJsZWRdICsgLmMtcmFkaW9fX2xhYmVsOjpiZWZvcmUsIFtkYXRhLXRoZW1lPWFsdGVybmF0aXZlXSAuYy1yYWRpb19faW5wdXRbZGlzYWJsZWRdICsgLmMtcmFkaW9fX2xhYmVsLWNvbnRhaW5lciAuYy1yYWRpb19fbGFiZWw6OmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogIzllOWZhMDtcbn1cblxuLmMtcmFkaW9fX2lucHV0LmlzLWVycm9yICsgLmMtcmFkaW9fX2xhYmVsOjpiZWZvcmUsIC5jLXJhZGlvX19pbnB1dC5pcy1lcnJvciArIC5jLXJhZGlvX19sYWJlbC1jb250YWluZXIgLmMtcmFkaW9fX2xhYmVsOjpiZWZvcmUgeyAvKiBbMTJdICovXG4gIGJvcmRlci1jb2xvcjogI2U4MmIzNztcbn1cbi5jLXJhZGlvX19sYWJlbDo6YWZ0ZXIge1xuICB0b3A6IDVweDsgLyogWzddICovXG4gIGxlZnQ6IDVweDsgLyogWzEwXSAqL1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICB0cmFuc2Zvcm06IHNjYWxlKDApOyAvKiBbMTFdICovXG4gIGJhY2tncm91bmQtY29sb3I6ICM0MTk0Njg7XG59XG46aG92ZXIgKyAuYy1yYWRpb19fbGFiZWw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU5YmM4Nztcbn1cbi5jLXJhZGlvX19pbnB1dDpjaGVja2VkICsgLmMtcmFkaW9fX2xhYmVsOjphZnRlciwgLmMtcmFkaW9fX2lucHV0OmNoZWNrZWQgKyAuYy1yYWRpb19fbGFiZWwtY29udGFpbmVyIC5jLXJhZGlvX19sYWJlbDo6YWZ0ZXIgeyAvKiBbMTJdICovXG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7IC8qIFsxMV0gKi9cbn1cbi5jLXJhZGlvX19pbnB1dFtkaXNhYmxlZF0gKyAuYy1yYWRpb19fbGFiZWw6OmFmdGVyLCAuYy1yYWRpb19faW5wdXRbZGlzYWJsZWRdICsgLmMtcmFkaW9fX2xhYmVsLWNvbnRhaW5lciAuYy1yYWRpb19fbGFiZWw6OmFmdGVyIHsgLyogWzEyXSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWU5ZmEwO1xufVxuLmMtcmFkaW9fX2lucHV0LmlzLWVycm9yICsgLmMtcmFkaW9fX2xhYmVsOjphZnRlciwgLmMtcmFkaW9fX2lucHV0LmlzLWVycm9yICsgLmMtcmFkaW9fX2xhYmVsLWNvbnRhaW5lciAuYy1yYWRpb19fbGFiZWw6OmFmdGVyIHsgLyogWzEyXSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTgyYjM3O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjUkFESU8tQlVUVE9OXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIEZpeCB2ZXJ0aWNhbCBhbGlnbm1lbnQgd2l0aCBsYWJlbC5cbiAqIFsyXSBUcmFuc2l0aW9uIGZyb20gdHJhbnNwYXJlbnQgdG8gdGFyZ2V0IGNvbG9yLFxuICogICAgIG90aGVyd2lzZSB0aGUgdHJhbnNpdGlvbiBpcyBub3Qgc21vb3RoLlxuICovXG4uYy1yYWRpb19faW5wdXQgKyAuYy1yYWRpb19fbGFiZWw6OmJlZm9yZSB7XG4gIC0tZm9jdXMtb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgLS1mb2N1cy1vdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgLS1mb2N1cy1vdXRsaW5lLXdpZHRoOiAycHg7XG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWZvY3VzLW91dGxpbmUtY29sb3IsICMxNjE3MTgpO1xuICBvdXRsaW5lLW9mZnNldDogdmFyKC0tZm9jdXMtb3V0bGluZS1vZmZzZXQsIDFweCk7XG4gIG91dGxpbmUtc3R5bGU6IHZhcigtLWZvY3VzLW91dGxpbmUtc3R5bGUsIHNvbGlkKTtcbiAgb3V0bGluZS13aWR0aDogdmFyKC0tZm9jdXMtb3V0bGluZS13aWR0aCwgMnB4KTtcbiAgLyogWzJdICovXG59XG4uYy1yYWRpb19faW5wdXQ6Zm9jdXMtdmlzaWJsZSArIC5jLXJhZGlvX19sYWJlbDo6YmVmb3JlIHtcbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjMTYxNzE4O1xuICAtLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiAycHg7XG4gIC0tZm9jdXMtb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIC0tZm9jdXMtb3V0bGluZS13aWR0aDogMnB4O1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb2N1cy1vdXRsaW5lLWNvbG9yLCAjMTYxNzE4KTtcbiAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWZvY3VzLW91dGxpbmUtb2Zmc2V0LCAxcHgpO1xuICBvdXRsaW5lLXN0eWxlOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXN0eWxlLCBzb2xpZCk7XG4gIG91dGxpbmUtd2lkdGg6IHZhcigtLWZvY3VzLW91dGxpbmUtd2lkdGgsIDJweCk7XG59XG4uYy1yYWRpb19fbGFiZWw6OmJlZm9yZSB7XG4gIHRvcDogMnB4OyAvKiBbMV0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY2FsZS11bmxpbWl0ZWQvZGVjbGFyYXRpb24tc3RyaWN0LXZhbHVlICovXG59XG4uYy1yYWRpb19fbGFiZWw6OmFmdGVyIHtcbiAgdG9wOiA3cHg7IC8qIFsxXSAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjYWxlLXVubGltaXRlZC9kZWNsYXJhdGlvbi1zdHJpY3QtdmFsdWUgKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI01PREFMXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdICBNb2RhbCBoYXMgdG8gc2l0IG9uIHRvcCBvZiBldmVyeXRoaW5nIGVsc2UuXG4gKiBbMl0gIEZpeCB3b2JibGluZyBpbmxpbmUgZWxlbWVudHMgd2hlbiBob3ZlcmluZyBidXR0b25zIGluIHRoZSBtb2RhbFxuICogICAgICAoZS5nLiBtYWNPUyBDaHJvbWUgNzggb24gbm9uLXJldGluYSBkaXNwbGF5cykuXG4gKiBbM10gIENlbnRlciB0aGUgbW9kYWwgY29udGVudCBpbiB0aGUgbWlkZGxlIG9mIHRoZSB2aWV3cG9ydC5cbiAqIFs0XSAgSWYgdGhlIG1vZGFsIGNvbnRlbnQgZXhjZWVkcyB0aGUgdmlld3BvcnQgaGVpZ2h0LCB0aGlzIHN0aWxsIG1ha2VzIHRoZVxuICogICAgICBjb250ZW50IGFjY2Vzc2libGUgKGkuZS4gc2Nyb2xsYWJsZSkuXG4gKiBbNV0gIFRoZSBtb2RhbCB0aXRsZSBzaG91bGQgYWx3YXlzIGJlIHNlbWFudGljYWxseSBhIGA8aDE+YCwgYnV0IG9mIGNvdXJzZVxuICogICAgICBoYXZlIGEgc21hbGxlciBmb250LXNpemUuXG4gKiBbNl0gIEFkZCBhIG5lYXItbG9nYXJpdGhtaWMgZ3JhZGllbnQgYXQgYm90dG9tIG9mIGNvbnRlbnQuXG4gKiBbN10gIEFsbG93IGNsaWNrIHRocm91Z2guXG4gKiBbOF0gIEF2b2lkIHNob3dpbmcgZ3JhZGllbnQgd2hlbiBub3QgbmVjZXNzYXJ5IGFuZCBvdmVycmlkZSB0aGUgZGVmYXVsdFxuICogICAgICBtYXJnaW4tYm90dG9tIG9mIHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIG1vZGFsIGNvbnRlbnQgKGUuZy4gYDxwPmBcbiAqICAgICAgaGFzIG1hcmdpbi1ib3R0b20gYnkgZGVmYXVsdCkuXG4gKiBbOV0gIFJlc2V0IGRlZmF1bHQgaGVhZGluZyBlbGVtZW50IHNwYWNpbmcuXG4gKiBbMTBdIElmICRtb2RhbC1jb250ZW50LXBhZGRpbmctaG9yaXpvbnRhbCBpcyBhIG1hcCwgd2UgbmVlZCB0byBkaXZpZGUgdGhlXG4gKiAgICAgIHZhbHVlcyBpbiBoYWxmIGZvciBlYWNoIGJyZWFrcG9pbnQuXG4gKiBbMTFdIExvb3AgdGhyb3VnaCBwYWRkaW5ncywgdGFrZSBoYWxmIG9mIGVhY2ggdmFsdWUgYW5kIHB1c2ggdG8gbmV3IG1hcFxuICogICAgICAkY29udGVudC1wYWRkaW5nLWhvcml6b250YWwtaGFsZi5cbiAqIFsxMl0gVGhlIGdyYWRpZW50IHNob3VsZCBub3Qgb3ZlcmxheSB0aGUgc2Nyb2xsYmFyLlxuICogWzEzXSBJbmRpY2F0ZSBpbnRlcmFjdGlvbiBvbiBub24taW50ZXJhY3RpdmUgZWxlbWVudHMuXG4gKiBbMTRdIFByZXZlbnQgZWxlbWVudHMgaW5zaWRlIHRoZSBtb2RhbC10cmlnZ2VyIGNhdGNoaW5nIGFueSBldmVudHNcbiAqICAgICAgZHVlIHRvIGV2ZW50IGRlbGVnYXRpb24uXG4gKiBbMTVdIE92ZXJ3cml0ZSBzZXR0aW5ncyB0byBlbmFibGUgYC5jLW1vZGFsLS1zdHJldGNoYCBtb2RhbC5cbiAqIFsxNl0gUG9zaXRpb24gdGhlIGAuYy1tb2RhbC0tc3RyZXRjaGAgbW9kYWwgaW4gdGhlIGNlbnRlciB3aXRob3V0IHRyYW5zaXRpb24uXG4gKiBbMTddIEFkZCBzb21lIGJvdHRvbSBzcGFjaW5nLlxuICogWzE4XSBQcmV2ZW50IGludGVyYWN0aW9uIHdpdGggbW9kYWwgY29udGVudCB3aGVuIGNsb3NlZC5cbiAqIFsxOV0gVGFrZSBhdmFpbGFibGUgc3BhY2UgaW4gb3JkZXIgZm9yIGFsaWdubWVudCBvbiB0aGUgcGFyZW50IHRvIHRha2UgZWZmZWN0LlxuICogWzIwXSBUaGlzIGFsbG93cyBzY3JvbGxpbmcgKGUuZy4gd2hlbiBtb2RhbCBoZWlnaHQgZXhjZWVkcyB2aWV3cG9ydCBoZWlnaHQpXG4gKiAgICAgIHdoaWxlIHBvaW50ZXIgaXMgb24gdGhlIG92ZXJsYXkuXG4gKiBbMjFdIFJlZHVjZSB0aGUgbGluZS1oZWlnaHQgdG8gYXZvaWQgbGFyZ2Ugc3BhY2luZy5cbiAqIFsyMl0gUHJldmVudCBvdmVyc2Nyb2xsIGluIHRoZSBiYWNrZ3JvdW5kIG91dHNpZGUgb2YgdGhlIG1vZGFsLlxuICogWzIzXSBBZGQgc2Vjb25kIHBhcmFtIHRvIGBtaW4oKWAgZnVuY3Rpb24gdG8gbWFpbnRhaW4gc2FmZXNwYWNlXG4gKiAgICAgIGZvciBgc3RyZXRjaGAgdmFyaWFudC5cbiAqICAgICAgYG1pbigpYCBmdW5jdGlvbiBub3QgbmVjZXNzYXJ5IGZvciBub24tc3RyZXRjaCB2YXJpYW50cy5cbiAqIFsyNF0gSW5saW5lIHdpdGggc3RhdHVzLWljb24gYnkgZGVmYXVsdC5cbiAqICAgICAgV3JhcCB0aXRsZSB0byBuZXh0IGxpbmUgdG8gZW5zdXJlIHJlYWRhYmlsaXR5IHdoZW4gbm90IGVub3VnaCBzcGFjZSBmb3IgdGl0bGUuXG4gKiBbMjVdIEltcHJvdmUgcmVhZGFiaWxpdHkgd2l0aCBhZGp1c3RlZCBsaW5lLWhlaWdodCBmb3IgdGl0bGUsXG4gKiAgICAgIG1ha2UgaXQgaW5kZXBlbmRlbnQgb2YgaGVhZGluZyBsZXZlbCBhbmQgaW1wcm92ZSBzdGF0dXMtaWNvbiBhbGlnbm1lbnQuXG4gKi9cbi5jLW1vZGFsIHtcbiAgLS1tb2RhbC13aWR0aC1taW46IDUwMHB4O1xuICAtLW1vZGFsLXdpZHRoLW1heDogODAwcHg7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBvcmRlci9vcmRlciAqL1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA0NTAwOyAvKiBbMV0gKi9cbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAxO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IC8qIFsyXSAqL1xufVxuLmMtbW9kYWwuYy1tb2RhbC0tbGFyZ2Uge1xuICAtLW1vZGFsLXdpZHRoLW1pbjogMTAwMHB4O1xuICAtLW1vZGFsLXdpZHRoLW1heDogMTYwMHB4O1xufVxuLmMtbW9kYWwuYy1tb2RhbC0tdmlkZW8ge1xuICAtLW1vZGFsLXdpZHRoLW1pbjogNzUwcHg7XG4gIC0tbW9kYWwtd2lkdGgtbWF4OiAxMDAwcHg7XG59XG4uYy1tb2RhbFthcmlhLWhpZGRlbj10cnVlXSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbMThdICovXG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLmMtbW9kYWwtLWNlbnRlciAuYy1tb2RhbF9fdGl0bGVfX3dyYXBwZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5jLW1vZGFsLS1jZW50ZXIgLmMtbW9kYWxfX3RpdGxlIHtcbiAgZmxleC1ncm93OiAwO1xuICBmbGV4LWJhc2lzOiBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYy1tb2RhbC0tY2VudGVyIC5jLW1vZGFsX19jb250ZW50IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYy1tb2RhbC0tc3RyZXRjaCAuYy1tb2RhbF9fd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogWzE1XSAqL1xuICB0b3A6IDMycHg7XG4gIGxlZnQ6IGF1dG87XG4gIG1hcmdpbjogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7IC8qIFsxNV0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBpdGNzcy9uby1hdC1pbXBvcnRhbnQgKi8gLyogWzE1XSAqLyAvKiBbMTZdICovIC8qIFsxN10gKi9cbn1cblxuLmMtbW9kYWwtLXN0cmV0Y2ggLmMtbW9kYWxfX3dyYXBwZXIsXG4uYy1tb2RhbC0tdmlkZW8gLmMtbW9kYWxfX3dyYXBwZXIge1xuICBtYXgtaGVpZ2h0OiA5MHZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBub25lOyAvKiBbMjJdICovXG59XG4uYy1tb2RhbC0tc3RyZXRjaCAuYy1tb2RhbF9fY29udGVudCxcbi5jLW1vZGFsLS12aWRlbyAuYy1tb2RhbF9fY29udGVudCB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG59XG5cbi5jLW1vZGFsLS1uby1zY3JvbGwtc2hhZG93IC5jLW1vZGFsX19mb290ZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IG5vbmU7XG59XG5cbi5jLW1vZGFsLS12aWRlbyAuYy1tb2RhbF9fZm9vdGVyOjpiZWZvcmUge1xuICBjb250ZW50OiBub25lO1xufVxuLmMtbW9kYWwtLXZpZGVvIC5jLW1vZGFsX19jb250ZW50IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4vKipcbiAqIFN0eWxlcyBhcHBsaWVkIHRvIGEganMtaG9vayAod2hpY2ggaXMgYSBuby1ubykgaXMgYW4gZXhjZXB0aW9uIGFzIHRoZSB0cmlnZ2VyXG4gKiBjYW4gYmUgYXBwbGllZCB0byBhcmJpdHJhcnkgZWxlbWVudHMgYnV0IG5lZWQgdGhvc2UgYWRkaXRpb25hbCBzdHlsZXMgdG9cbiAqIHdvcmsgcHJvcGVybHkuXG4gKi9cbi5qcy1tb2RhbC10cmlnZ2VyIHtcbiAgY3Vyc29yOiBwb2ludGVyOyAvKiBbMTNdICovXG59XG4uanMtbW9kYWwtdHJpZ2dlciAqIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIFsxNF0gKi9cbn1cblxuLmMtbW9kYWxfX292ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjgsIDIyOCwgMjI4LCAwLjgpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNHB4KTtcbiAgei1pbmRleDogLTE7IC8qIFsyMF0gKi9cbn1cblxuLmMtbW9kYWxfX3dyYXBwZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7IC8qIFszXSAqL1xuICB0b3A6IDUwJTsgLyogWzNdICovXG4gIGxlZnQ6IDUwJTsgLyogWzNdICovXG4gIG1pbi13aWR0aDogbWluKHZhcigtLW1vZGFsLXdpZHRoLW1pbiksIDEwMHZ3IC0gNDhweCk7XG4gIG1heC13aWR0aDogbWluKHZhcigtLW1vZGFsLXdpZHRoLW1heCksIDEwMHZ3IC0gNDhweCk7IC8qIFsyM10gKi9cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IC8qIFszXSAqL1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IDAgMjRweCA2NHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG5cbi5jLW1vZGFsX19oZWFkZXIge1xuICBwYWRkaW5nLXRvcDogMzJweDtcbiAgcGFkZGluZy1sZWZ0OiAzMnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAzMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxNnB4O1xufVxuXG4uYy1tb2RhbF9fdGl0bGVfX3dyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDhweDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LWdyb3c6IDE7XG4gIGZsZXgtc2hyaW5rOiAxO1xuICBmbGV4LWJhc2lzOiBhdXRvO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uYy1tb2RhbF9fc3RhdHVzLWljb24ge1xuICBhbGlnbi1zZWxmOiBiYXNlbGluZTtcbiAgZm9udC1zaXplOiA0MHB4O1xuICBsaW5lLWhlaWdodDogMTsgLyogWzIxXSAqL1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb3JkZXIvb3JkZXIgKi9cbn1cbi5jLW1vZGFsX19zdGF0dXMtaWNvbjo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJicm9uc29uLXNrb2RhXCIgIWltcG9ydGFudDsgLyogWzFdICovXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG4uYy1tb2RhbC0taW5mbyAuYy1tb2RhbF9fc3RhdHVzLWljb24ge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5jLW1vZGFsLS1pbmZvIC5jLW1vZGFsX19zdGF0dXMtaWNvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWJcIjtcbn1cbi5jLW1vZGFsLS1zdWNjZXNzIC5jLW1vZGFsX19zdGF0dXMtaWNvbiB7XG4gIGNvbG9yOiAjMzdkMDAyO1xufVxuLmMtbW9kYWwtLXN1Y2Nlc3MgLmMtbW9kYWxfX3N0YXR1cy1pY29uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0NlwiO1xufVxuLmMtbW9kYWwtLXdhcm5pbmcgLmMtbW9kYWxfX3N0YXR1cy1pY29uIHtcbiAgY29sb3I6ICNlYzY1MTM7XG59XG4uYy1tb2RhbC0td2FybmluZyAuYy1tb2RhbF9fc3RhdHVzLWljb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjEwXCI7XG59XG4uYy1tb2RhbC0tZXJyb3IgLmMtbW9kYWxfX3N0YXR1cy1pY29uIHtcbiAgY29sb3I6ICNlODJiMzc7XG59XG4uYy1tb2RhbC0tZXJyb3IgLmMtbW9kYWxfX3N0YXR1cy1pY29uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3YVwiO1xufVxuXG4uYy1tb2RhbF9fdGl0bGUge1xuICBmb250LXNpemU6IDEuNDM3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgLyogWzVdICovIC8qIFsyNV0gKi9cbiAgZmxleC1ncm93OiAxO1xuICBmbGV4LXNocmluazogMTtcbiAgZmxleC1iYXNpczogODAlOyAvKiBbMjRdICovXG4gIG1hcmdpbi1ib3R0b206IDA7IC8qIFs5XSAqL1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5jLW1vZGFsX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjY4NzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyODFweCkge1xuICAuYy1tb2RhbF9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS44NzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgfVxufVxuXG4uYy1tb2RhbF9fY2xvc2UtYnRuIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYWxpZ24tc2VsZjogYmFzZWxpbmU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmMtbW9kYWxfX2Nsb3NlLWJ0bjpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG4uYy1tb2RhbF9fY2xvc2UtYnRuOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcImJyb25zb24tc2tvZGFcIiAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGNvbnRlbnQ6IFwiXFxmMTVhXCI7XG59XG5cbi5jLW1vZGFsX19jb250ZW50IHtcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICBtYXJnaW4tbGVmdDogMTZweDtcbiAgcGFkZGluZy1yaWdodDogMTZweDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICBtYXgtaGVpZ2h0OiA0NXZoOyAvKiBbNF0gKi9cbiAgb3ZlcmZsb3cteTogYXV0bzsgLyogWzRdICovXG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmU7IC8qIFsyMl0gKi9cbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uYy1tb2RhbF9fY29udGVudCA+ICo6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDEuNWVtOyAvKiBbOF0gKi9cbn1cblxuLmMtbW9kYWxfX2Zvb3RlciB7XG4gIHBhZGRpbmctdG9wOiAxNnB4O1xuICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gIHBhZGRpbmctcmlnaHQ6IDMycHg7XG4gIHBhZGRpbmctYm90dG9tOiAzMnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uYy1tb2RhbF9fZm9vdGVyOjpiZWZvcmUge1xuICByaWdodDogMzJweDtcbiAgLyogWzEyXSAqL1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTEuNWVtOyAvKiBbNl0gKi9cbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxLjVlbTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LCAyNTUsIDI1NSwgMCksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpLCAjZmZmZmZmKTsgLyogWzZdICovXG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbN10gKi9cbn1cblxuLmMtbW9kYWxfX2FjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2x1bW4tZ2FwOiAxNnB4O1xuICByb3ctZ2FwOiA4cHg7XG59XG5cbi5jLW1vZGFsX19hY3Rpb25zX19pdGVtIHtcbiAgZmxleC1zaHJpbms6IDE7XG4gIGZsZXgtYmFzaXM6IDE4MHB4O1xuICBmbGV4LWdyb3c6IDA7XG59XG4uYy1tb2RhbF9fYWN0aW9uc19faXRlbSA+ICoge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTU9EQUwgKFNldHRpbmdzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBBbGlnbiBpY29uIHZlcnRpY2FsbHkgdG8gdGhlIHRleHQuXG4gKi9cbi5jLW1vZGFsX19jbG9zZS1idG4ge1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHNjYWxlOiAxO1xufVxuLmMtbW9kYWxfX2Nsb3NlLWJ0bjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IC0xO1xuICB3aWR0aDogNDRweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRyYW5zaXRpb246IGluaGVyaXQ7XG59XG4uYy1tb2RhbF9fY2xvc2UtYnRuOmhvdmVyOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIsIDIzLCAyNCwgMC4wNik7XG59XG5cbi5jLW1vZGFsX19jbG9zZS1idG46Zm9jdXMtdmlzaWJsZTo6YWZ0ZXIge1xuICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICMxNjE3MTg7XG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDA7XG4gIC0tZm9jdXMtb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIC0tZm9jdXMtb3V0bGluZS13aWR0aDogMnB4O1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb2N1cy1vdXRsaW5lLWNvbG9yLCAjMTYxNzE4KTtcbiAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWZvY3VzLW91dGxpbmUtb2Zmc2V0LCAxcHgpO1xuICBvdXRsaW5lLXN0eWxlOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXN0eWxlLCBzb2xpZCk7XG4gIG91dGxpbmUtd2lkdGg6IHZhcigtLWZvY3VzLW91dGxpbmUtd2lkdGgsIDJweCk7XG59XG5cbi5jLW1vZGFsX19jbG9zZS1idG46YWN0aXZlIHtcbiAgc2NhbGU6IDAuOTU7XG59XG5cbi5jLW1vZGFsX19zdGF0dXMtaWNvbiB7XG4gIGRpc3BsYXk6IGZsZXg7IC8qIFsxXSAqL1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQUNDT1JESU9OXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdICBCb3JkZXIgYmVsb3cgYW5kIGFib3ZlIHRoZSBhY2NvcmRpb24gY29tcG9uZW50LlxuICogWzJdICBSZXNldCBicm93c2VyLWRlZmF1bHQgYnV0dG9uIHN0eWxlcy5cbiAqIFszXSAgTWF4IGxpbmUtbGVuZ3RoLlxuICogWzRdICBMb3dlciBkdXJhdGlvbiBmb3IgY29sbGFwc2luZyB0byBmb2N1cyBvbiB0aGUgZXhwYW5kaW5nIGNvbnRlbnQuXG4gKiBbNV0gIFJlbW92ZSB3aGl0ZXNwYWNlIGZyb20gaGVhZGluZyAoYGgqYCksIGBsaW5lLWhlaWdodGAgaXMgc2V0IG9uIGJ1dHRvbi5cbiAqIFs2XSAgRG8gbm90IHVzZSBgYm9yZGVyLXRvcGAgb24gZmlyc3QgaXRlbSwgYmVjYXVzZSBpdOKAmXMgc2V0IHdpdGhcbiAqICAgICAgYCRhY2NvcmRpb24tYm9yZGVyLXRvcGAuXG4gKiBbN10gIEFkZCBvZmZzZXQgZm9yIENTUy1nZW5lcmF0ZWQgaWNvbnMgdG8gYWNjb21tb2RhdGUgZm9yIGRpZmZlcmVudFxuICogICAgICBgc3Ryb2tlLXdpZHRoYC5cbiAqIFs4XSAgVXNlIGBncmlkLXRlbXBsYXRlLXJvd3NgIHRvIHRyYW5zaXRpb24gdGhlIGhlaWdodC5cbiAqICAgICAgTm8gbW9yZSBjaG9wcHkgYG1heC1oZWlnaHRgIHRyYW5zaXRpb24uIChzZWUgaHR0cHM6Ly93d3cuc3RlZmFuanVkaXMuY29tL3NuaXBwZXRzL2hvdy10by1hbmltYXRlLWhlaWdodC13aXRoLWNzcy1ncmlkLylcbiAqIFs5XSAgSGlkZSBwYW5lbCBvdmVyZmxvdyBjb250ZW50IChlLmcuIGV4cGFuZGVkIENvbWJvIEJveCkgYW5kIG9ubHkgYWxsb3dcbiAqICAgICAgb3ZlcmZsb3cgYWZ0ZXIgdGhlIGZpbmlzaGVkIHRyYW5zaXRpb24gdmlhIHRoZSBkeW5hbWljYWxseSBhZGRlZFxuICogICAgICBgJGFjY29yZGlvbi1wYW5lbC1zdGF0ZS1leHBhbmRlZC10cmFuc2l0aW9uLWVuZGAgY2xhc3MuXG4gKiBbMTBdIERpc2FibGUgdGhlIHRvcCBib3JkZXIgZm9yIHNpYmxpbmcgYWNjb3JkaW9ucyBvbmx5IGlmIHRoZXJlIGlzXG4gKiAgICAgIG5vIGJvdHRvbSBib3JkZXIuXG4gKiBbMTFdIFVzZSBwc2V1ZG8gZWxlbWVudHMgdG8gZmFrZSB2ZXJ0aWNhbCBwYWRkaW5nIGJlY2F1c2UgYWN0dWFsIHBhZGRpbmdzXG4gKiAgICAgIHdvdWxkIHVuaW50ZW50aW9uYWxseSBlbmxhcmdlIHRoZSBgLmMtYWNjb3JkaW9uX19jb250ZW50YCBncmlkIGl0ZW0uXG4gKiBbMTJdIEFsaWduIGAuYy1hY2NvcmRpb25fX3RpdGxlLWxhYmVsYCB0byB0aGUgbGVmdCBhbmQgcmlnaHQgdmlhIGZsZXhib3guXG4gKiBbMTNdIFN0YWNrIGAuYy1hY2NvcmRpb25fX3RpdGxlLWxhYmVsYHMgdmVydGljYWxseSBpbiBzbWFsbCB2aWV3cG9ydHMuXG4gKiBbMTRdIEFkZCB2ZXJ0aWNhbCBzcGFjZSBiZXR3ZWVuIGAuYy1hY2NvcmRpb25fX3RpdGxlLWxhYmVsYCBpbiBzbWFsbFxuICogICAgICB2aWV3cG9ydHMuXG4gKiBbMTVdIFB1c2ggaW5mbyBpY29uIHRvIHRoZSBsZWZ0IGluIHNwbGl0dGVkIGhlYWRlciB0aXRsZXMuXG4gKiBbMTZdIEFkZCBhIHNwYWNlIGJldHdlZW4gYm90aCBzcGxpdHRlZCBoZWFkZXIgdGl0bGUgcGFydHMuXG4gKiBbMTddIERlZmluZXMgdGhlIGluZGVudGF0aW9uIHdpZHRoIG9mIHRoZSBoZWFkZXIuXG4gKiBbMThdIFJlc29sdmVzIHRoZSBgei1pbmRleCBwcm9ibGVtIG9mIHRoZSB0b29sdGlwLlxuICogWzE5XSBTaW5jZSBgW3JvbGU9YnV0dG9uXWAgZG9lcyBub3QgaW5oZXJpdCBhbnkgYnV0dG9uIHN0eWxlcyB3ZSBuZWVkIHRvXG4gKiAgICAgIG1hbnVhbGx5IHNldCB0aGVtIGhlcmUuXG4gKiBbMjBdIFRvIHByZXZlbnQgY3V0LW9mZiwgb3ZlcmZsb3dpbmcgc3R5bGlzdGljIGZlYXR1cmVzIChlLmcuIGJveCBzaGFkb3cpLFxuICogICAgICBhIGxhcmdlIGVub3VnaCBwYWRkaW5nIChgJGFjY29yZGlvbi1vdmVyZmxvdy1vZmZzZXRgKSBpcyBhZGRlZCBhbmRcbiAqICAgICAgY29tcGVuc2F0ZWQgd2l0aCBuZWdhdGl2ZSBtYXJnaW5zLiBBZGRpdGlvbmFsbHkgdGhlIHBhbmVsIGNvbnRlbnQgaXNcbiAqICAgICAgYmVpbmcgaGlkZGVuIHZpYSBgb3BhY2l0eWAgd2hlbiB0aGUgcGFuZWwgaXMgY2xvc2VkLlxuICogWzIxXSBEaXNhYmxlIGV4dHJhIHBhZGRpbmcgZnJvbSBbMjBdIGZvciBBY2NvcmRpb24gd2l0aCBwYW5lbFxuICogICAgICBiYWNrZ3JvdW5kIGNvbG9yIHRvIGF2b2lkIHZpc2libGUgYmFja2dyb3VuZCBvdXRzaWRlIG9mIHRoZSBhY2NvcmRpb24uXG4gKiBbMjJdIFByZXZlbnQgbGF5b3V0IGlzc3VlcyB3aXRoIGFic29sdXRlIHBvc2l0aW9uZWQgZWxlbWVudHMgaW5zaWRlIHRoZSBwYW5lbC5cbiAqL1xuLmMtYWNjb3JkaW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U0ZTRlNDsgLyogWzFdICovXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTRlNGU0OyAvKiBbMV0gKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cbi5jLWFjY29yZGlvbiArIC5jLWFjY29yZGlvbiB7XG4gIGJvcmRlci10b3A6IG5vbmU7IC8qIFsxMF0gKi9cbn1cblxuLmMtYWNjb3JkaW9uX19oZWFkZXIge1xuICBwYWRkaW5nLXRvcDogMjRweDtcbiAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgcGFkZGluZy1ib3R0b206IDI0cHg7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4qICsgLmMtYWNjb3JkaW9uX19oZWFkZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U0ZTRlNDsgLyogWzZdICovXG59XG4uYy1hY2NvcmRpb25fX2hlYWRlciA+ICo6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5jLWFjY29yZGlvbl9fdGl0bGUge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYy1hY2NvcmRpb25fX3RpdGxlLWxhYmVsIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLyogWzJdICovXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4OyAvKiBbMTldICovXG4gIG1heC13aWR0aDogNTBlbTsgLyogWzNdICovXG4gIGZvbnQtZmFtaWx5OiBcInNrb2RhLW5leHRcIiwgQXJpYWwsIHNhbnMtc2VyaWY7IC8qIFsxOV0gKi9cbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgLyogWzE5XSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogWzE5XSAqL1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogIzE2MTcxODtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmMtYWNjb3JkaW9uX190aXRsZS1sYWJlbDpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5jLWFjY29yZGlvbl9fdGl0bGUtaW5mby1pY29uIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvOyAvKiBbMTVdICovXG59XG5cbi5jLWFjY29yZGlvbl9fdGl0bGUtaWNvbiB7XG4gIHRvcDogMjRweDtcbiAgcmlnaHQ6IDhweDtcbiAgbGVmdDogYXV0bztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MXB4KSB7XG4gIC5jLWFjY29yZGlvbl9fdGl0bGUtaWNvbiB7XG4gICAgdG9wOiAyNHB4O1xuICB9XG59XG4uYy1hY2NvcmRpb25fX3RpdGxlLWljb246OmJlZm9yZSB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMzMy4zMzMzMzMzMzMzbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJicm9uc29uLXNrb2RhXCIgIWltcG9ydGFudDsgLyogWzFdICovXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGNvbnRlbnQ6IFwiXFxmMWMxXCI7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uYy1hY2NvcmRpb25fX2hlYWRlci5pcy1hY3RpdmUgLmMtYWNjb3JkaW9uX190aXRsZS1pY29uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiMVwiO1xuICB0cmFuc2Zvcm06IG5vbmU7XG59XG5cbi5jLWFjY29yZGlvbl9fc3VidGl0bGUge1xuICBtYXJnaW4tdG9wOiA4cHg7XG59XG5cbi5jLWFjY29yZGlvbl9fcGFuZWwge1xuICAtLWFjY29yZGlvbi1vdmVyZmxvdy1vZmZzZXQ6IDAuNXJlbTsgLyogWzIwXSAqL1xuICAtLWFjY29yZGlvbi1wYW5lbC1wYWRkaW5nLXRvcDogMHB4O1xuICAtLWFjY29yZGlvbi1wYW5lbC1wYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICAtLWFjY29yZGlvbi1wYW5lbC1wYWRkaW5nLWJvdHRvbTogMjRweDtcbiAgLS1hY2NvcmRpb24tcGFuZWwtcGFkZGluZy1sZWZ0OiAwcHg7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogZ3JpZC10ZW1wbGF0ZS1yb3dzO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDUwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICAvKiBbOF0gKi9cbiAgZGlzcGxheTogZ3JpZDsgLyogWzhdICovXG4gIGdyaWQtdGVtcGxhdGUtcm93czogMGZyOyAvKiBbOF0gKi9cbn1cbi5jLWFjY29yZGlvbl9fcGFuZWxbYXJpYS1oaWRkZW49ZmFsc2VdIHtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7IC8qIFs4XSAqL1xufVxuLmMtYWNjb3JkaW9uLS1iZy1wYW5lbCAuYy1hY2NvcmRpb25fX3BhbmVsIHtcbiAgLS1hY2NvcmRpb24tb3ZlcmZsb3ctb2Zmc2V0OiAwcHg7IC8qIFsyMV0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBsZW5ndGgtemVyby1uby11bml0ICovXG4gIC0tYWNjb3JkaW9uLXBhbmVsLXBhZGRpbmctdG9wOiAyNHB4O1xuICAtLWFjY29yZGlvbi1wYW5lbC1wYWRkaW5nLXJpZ2h0OiAxNnB4O1xuICAtLWFjY29yZGlvbi1wYW5lbC1wYWRkaW5nLWJvdHRvbTogMjRweDtcbiAgLS1hY2NvcmRpb24tcGFuZWwtcGFkZGluZy1sZWZ0OiAxNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAsIHRyYW5zcGFyZW50KTtcbiAgLyoqXG4gICAqIFsxXSBDaGVjayBpZiBhIHRoZW1lIGlzIHNldCBvciBpZiB0aGUgZGVmYXVsdCB0aGVtZSAobnVsbCkgaXMgdXNlZC5cbiAgICogICAgIElmIHRoZSBgZGVmYXVsdGAgdGhlbWUgaXMgdXNlZCB3ZSBleGVjdXRlIHRoZSBhbHJlYWR5IHByZXNlbnQgbG9naWMsXG4gICAqICAgICBlbHNlIHdlIGp1c3QgcmV0dXJuIHRoZSBjb250ZW50IHVud3JhcHBlZC5cbiAgICovXG59XG4vKiBbMV0gKi9cbltkYXRhLXRoZW1lPWFsdGVybmF0aXZlXSAuYy1hY2NvcmRpb24tLWJnLXBhbmVsIC5jLWFjY29yZGlvbl9fcGFuZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuXG4uYy1hY2NvcmRpb25fX2NvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIFsyMl0gKi9cbiAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogWzldICovXG4gIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1hY2NvcmRpb24tb3ZlcmZsb3ctb2Zmc2V0KSAqIC0xKTsgLyogWzIwXSAqL1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLWFjY29yZGlvbi1vdmVyZmxvdy1vZmZzZXQpICogLTEpOyAvKiBbMjBdICovXG4gIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWFjY29yZGlvbi1vdmVyZmxvdy1vZmZzZXQpICogLTEpOyAvKiBbMjBdICovXG4gIHBhZGRpbmctcmlnaHQ6IGNhbGModmFyKC0tYWNjb3JkaW9uLXBhbmVsLXBhZGRpbmctcmlnaHQsIDBweCkgKyB2YXIoLS1hY2NvcmRpb24tb3ZlcmZsb3ctb2Zmc2V0KSk7IC8qIFsyMF0gKi9cbiAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLWFjY29yZGlvbi1wYW5lbC1wYWRkaW5nLWxlZnQsIDBweCkgKyB2YXIoLS1hY2NvcmRpb24tb3ZlcmZsb3ctb2Zmc2V0KSk7IC8qIFsyMF0gKi9cbiAgb3BhY2l0eTogMDsgLyogWzIwXSAqL1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDBzOyAvKiBbMjBdICovXG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pOyAvKiBbMjBdICovXG59XG5bYXJpYS1oaWRkZW49ZmFsc2VdIC5jLWFjY29yZGlvbl9fY29udGVudCB7XG4gIG9wYWNpdHk6IDE7IC8qIFsyMF0gKi9cbiAgdHJhbnNpdGlvbjogbm9uZTsgLyogWzIwXSAqL1xufVxuW2FyaWEtaGlkZGVuPWZhbHNlXS5pcy1leHBhbmRlZCAuYy1hY2NvcmRpb25fX2NvbnRlbnQge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogWzldICovXG59XG4uYy1hY2NvcmRpb25fX2NvbnRlbnQ6OmJlZm9yZSwgLmMtYWNjb3JkaW9uX19jb250ZW50OjphZnRlciB7IC8qIFsxMV0gKi9cbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogY2FsYyh2YXIoLS1hY2NvcmRpb24tcGFuZWwtcGFkZGluZy10b3ApICsgdmFyKC0tYWNjb3JkaW9uLW92ZXJmbG93LW9mZnNldCkpOyAvKiBbMjBdICovXG59XG4uYy1hY2NvcmRpb25fX2NvbnRlbnQ6OmFmdGVyIHsgLyogWzExXSAqL1xuICBoZWlnaHQ6IGNhbGModmFyKC0tYWNjb3JkaW9uLXBhbmVsLXBhZGRpbmctYm90dG9tKSArIHZhcigtLWFjY29yZGlvbi1vdmVyZmxvdy1vZmZzZXQpKTsgLyogWzIwXSAqL1xufVxuLmMtYWNjb3JkaW9uX19jb250ZW50ID4gKjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmMtYWNjb3JkaW9uLS1oZWFkZXItc3BsaXQgLmMtYWNjb3JkaW9uX19oZWFkZXIge1xuICBwYWRkaW5nLXJpZ2h0OiA0OHB4O1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG4uYy1hY2NvcmRpb24tLWhlYWRlci1zcGxpdCAuYy1hY2NvcmRpb25fX3RpdGxlLWxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7IC8qIFsxMl0gKi9cbiAgZmxleC1kaXJlY3Rpb246IHJvdzsgLyogWzEyXSAqL1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IC8qIFsxMl0gKi9cbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IC8qIFsxMl0gKi9cbiAgd2lkdGg6IDEwMCU7IC8qIFsxMl0gKi9cbiAgbWF4LXdpZHRoOiBub25lOyAvKiBbMTJdICovXG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtYWNjb3JkaW9uLS1oZWFkZXItc3BsaXQgLmMtYWNjb3JkaW9uX190aXRsZS1sYWJlbCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgLyogWzEzXSAqL1xuICB9XG59XG4uYy1hY2NvcmRpb24tLWhlYWRlci1zcGxpdCAuYy1hY2NvcmRpb25fX3RpdGxlLWxhYmVsLXRleHQgKyAuYy1hY2NvcmRpb25fX3RpdGxlLWxhYmVsLXRleHQge1xuICBtYXJnaW4tbGVmdDogMjRweDsgLyogWzE2XSAqL1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLWFjY29yZGlvbi0taGVhZGVyLXNwbGl0IC5jLWFjY29yZGlvbl9fdGl0bGUtbGFiZWwtdGV4dCArIC5jLWFjY29yZGlvbl9fdGl0bGUtbGFiZWwtdGV4dCB7XG4gICAgbWFyZ2luLXRvcDogOHB4OyAvKiBbMTRdICovXG4gICAgbWFyZ2luLWxlZnQ6IDA7IC8qIFsxNl0gKi9cbiAgfVxufVxuXG4vKipcbiAqIFsxXSBFbXVsYXRlIGludGVyYWN0aXZlIGljb24gc3RhdGVzLiBNaXhpbiBjYW4gbm90IGJlIHVzZWQgYXMgdGhlIHRyaWdnZXJcbiAqICAgICBpcyBub3QgdGhlIGJ1dHRvbiBpdHNlbGYuXG4gKi9cbi5jLWFjY29yZGlvbl9fdGl0bGUtaWNvbiB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgc2NhbGU6IDE7XG59XG4uYy1hY2NvcmRpb25fX3RpdGxlLWljb246OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAtMTtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0cmFuc2l0aW9uOiBpbmhlcml0O1xufVxuLmMtYWNjb3JkaW9uX19oZWFkZXI6aG92ZXIgLmMtYWNjb3JkaW9uX190aXRsZS1pY29uOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIsIDIzLCAyNCwgMC4wNik7XG59XG5cbi5jLWFjY29yZGlvbl9faGVhZGVyOmZvY3VzLXdpdGhpbiAuYy1hY2NvcmRpb25fX3RpdGxlLWljb246OmFmdGVyIHtcbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjMTYxNzE4O1xuICAtLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiAwO1xuICAtLWZvY3VzLW91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICAtLWZvY3VzLW91dGxpbmUtd2lkdGg6IDJweDtcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9jdXMtb3V0bGluZS1jb2xvciwgIzE2MTcxOCk7XG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1mb2N1cy1vdXRsaW5lLW9mZnNldCwgMXB4KTtcbiAgb3V0bGluZS1zdHlsZTogdmFyKC0tZm9jdXMtb3V0bGluZS1zdHlsZSwgc29saWQpO1xuICBvdXRsaW5lLXdpZHRoOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXdpZHRoLCAycHgpO1xufVxuXG4uYy1hY2NvcmRpb25fX2hlYWRlcjphY3RpdmUgLmMtYWNjb3JkaW9uX190aXRsZS1pY29uIHtcbiAgc2NhbGU6IDAuOTU7XG59XG5cbi5jLWFjY29yZGlvbl9faGVhZGVyOmhvdmVyIC5jLWFjY29yZGlvbl9fdGl0bGUtbGFiZWwtdGV4dCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3I7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIGNvbG9yOiAjNDY0NzQ4O1xufVxuXG4uYy1hY2NvcmRpb25fX2NvbnRlbnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IG5vbmU7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNCUkVBRENSVU1CXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIFJlc2V0IGRlZmF1bHQgbGlzdCBzdHlsZXMuXG4gKiBbMl0gRWFzaWVyIG1hbmFnZW1lbnQgb2YgYWxpZ25tZW50LlxuICogWzNdIExldCB0aGUgYnJlYWRjcnVtYiBpdGVtcyB3cmFwIGludG8gbXVsdGlsaW5lIHdoZW4gdGhleSBkb24ndCBmaXQgb25cbiAqICAgICBzY3JlZW4gYW55bW9yZS5cbiAqIFs0XSBBbGlnbiB0aGUgaXRlbXMgY2VudGVyIG9uIHRoZSB5LWF4aXMgdG8gZWFjaCBvdGhlci5cbiAqIFs1XSBWZXJ0aWNhbGx5IGNlbnRlciB0aGUgaXRlbSB0ZXh0IHdpdGggdGhlIGljb24uXG4gKiBbNl0gU2V0IHNwYWNpbmcgYmV0d2VlbiBkZWxpbWl0ZXIgYW5kIGZvbGxvd2luZyBpdGVtcyB0ZXh0LlxuICogWzddIFNldCBzcGFjaW5nIGJldHdlZW4gdGV4dCBhbmQgZGVsaW1pdGVyIG9mIHRoZSBzYW1lIGJyZWFkY3J1bWIgaXRlbS5cbiAqIFs4XSBJZiB0aGUgZGVsaW1pdGVyIGlzIGEgY3VzdG9tIHRleHQuXG4gKiBbOV0gSWYgdGhlIGRlbGltaXRlciBpcyBhbiBpY29uIG9mIHRoZSBpY29uIHNldC5cbiAqL1xuLmMtYnJlYWRjcnVtYiB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBkaXNwbGF5OiBmbGV4OyAvKiBbMl0gKi9cbiAgZmxleC13cmFwOiB3cmFwOyAvKiBbM10gKi9cbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogWzRdICovXG4gIG1hcmdpbjogMDsgLyogWzFdICovXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyO1xuICBsaXN0LXN0eWxlOiBub25lOyAvKiBbMV0gKi9cbiAgLyoqXG4gICAqIFsxXSBDaGVjayBpZiBhIHRoZW1lIGlzIHNldCBvciBpZiB0aGUgZGVmYXVsdCB0aGVtZSAobnVsbCkgaXMgdXNlZC5cbiAgICogICAgIElmIHRoZSBgZGVmYXVsdGAgdGhlbWUgaXMgdXNlZCB3ZSBleGVjdXRlIHRoZSBhbHJlYWR5IHByZXNlbnQgbG9naWMsXG4gICAqICAgICBlbHNlIHdlIGp1c3QgcmV0dXJuIHRoZSBjb250ZW50IHVud3JhcHBlZC5cbiAgICovXG59XG4vKiBbMV0gKi9cbi5jLWJyZWFkY3J1bWJfX2l0ZW0ge1xuICBkaXNwbGF5OiBmbGV4OyAvKiBbNV0gKi9cbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogWzVdICovXG4gIG1hcmdpbi1ib3R0b206IDA7IC8qIFsxXSAqL1xufVxuLmMtYnJlYWRjcnVtYl9faXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7IC8qIFs2XSAqL1xufVxuLmMtYnJlYWRjcnVtYl9faXRlbTpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7IC8qIFs3XSAqL1xuICBjb2xvcjogIzdjN2Q3ZTtcbiAgLyogWzhdICovXG4gIGNvbnRlbnQ6IFwiL1wiO1xufVxuXG4uYy1icmVhZGNydW1iX19saW5rIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjN2M3ZDdlO1xufVxuLmMtYnJlYWRjcnVtYl9fbGluazpob3ZlciB7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtYnJlYWRjcnVtYl9fbGluay5pcy1jdXJyZW50IHtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uYy1icmVhZGNydW1iX19saW5rLmlzLWRpc2FibGVkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNGT09UTk9URVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gRGVmaW5lICogYXMgZGVmYXVsdCBjb250ZW50LlxuICogWzJdIFNob3cgaW5kZXggaW5zdGVhZCBvZiBjaGFyYWN0ZXIuXG4gKiBbM10gU2hvdyBkYXRhLWJ1bGxldCBpbnN0ZWFkIG9mIGRlZmF1bHQgY2hhcmFjdGVyLCBpZiBhdHRyaWJ1dGVcbiAqICAgICBkYXRhLWZvb3Rub3RlLWJ1bGxldCBpcyBnaXZlbi5cbiAqIFs0XSBPdmVyd3JpdGUgZGVmYXVsdCBgPGxpPmAgbWFyZ2luLlxuICovXG4uYy1mb290bm90ZXMge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICBjb3VudGVyLXJlc2V0OiBmb290bm90ZXMtcmFpc2VkLWNvdW50ZXI7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtZm9vdG5vdGVzIGxpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5jLWZvb3Rub3Rlc19faXRlbSxcbi5jLWZvb3Rub3RlcyBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzRdICovXG59XG4uYy1mb290bm90ZXNfX2l0ZW06OmJlZm9yZSxcbi5jLWZvb3Rub3RlcyBsaTo6YmVmb3JlIHsgLyogWzFdICovXG4gIGNvbnRlbnQ6IFwiKlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0xNnB4O1xuICBmb250LXNpemU6IDAuOGVtO1xufVxuXG5vbC5jLWZvb3Rub3Rlcyxcbi5jLWZvb3Rub3Rlcy0tbnVtYmVyZWQgeyAvKiBbMl0gKi8gfVxub2wuYy1mb290bm90ZXMgLmMtZm9vdG5vdGVzX19pdGVtOjpiZWZvcmUsXG5vbC5jLWZvb3Rub3RlcyA+IGxpOjpiZWZvcmUsXG4uYy1mb290bm90ZXMtLW51bWJlcmVkIC5jLWZvb3Rub3Rlc19faXRlbTo6YmVmb3JlLFxuLmMtZm9vdG5vdGVzLS1udW1iZXJlZCA+IGxpOjpiZWZvcmUge1xuICBjb250ZW50OiBjb3VudGVyKGZvb3Rub3Rlcy1yYWlzZWQtY291bnRlcik7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGNvdW50ZXItaW5jcmVtZW50OiBmb290bm90ZXMtcmFpc2VkLWNvdW50ZXI7XG59XG5cbnVsLmMtZm9vdG5vdGVzIHsgLyogWzNdICovIH1cbnVsLmMtZm9vdG5vdGVzIC5jLWZvb3Rub3Rlc19faXRlbVtkYXRhLWZvb3Rub3RlLWJ1bGxldF06OmJlZm9yZSxcbnVsLmMtZm9vdG5vdGVzID4gbGlbZGF0YS1mb290bm90ZS1idWxsZXRdOjpiZWZvcmUge1xuICBjb250ZW50OiBhdHRyKGRhdGEtZm9vdG5vdGUtYnVsbGV0KTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1RBQkxFU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGxlbmd0aC16ZXJvLW5vLXVuaXQgKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgbGVuZ3RoLXplcm8tbm8tdW5pdCAqL1xuLypcbiAqIFsxXSBVc2UgcHNldWRvIGVsZW1lbnRzIGZvciBob3Jpem9udGFsIHRhYmxlIGNlbGwgYm9yZGVycyAoYDo6YmVmb3JlYCBmb3IgdGhlXG4gKiAgICAgdG9wIGJvcmRlciBhbmQgYDo6YWZ0ZXJgIGZvciB0aGUgYm90dG9tIGJvcmRlcikgdG8gYWxsb3cgdmlzdWFsIHNwYWNpbmdcbiAqICAgICBiZXR3ZWVuIGNvbHVtbnMgd2l0aG91dCB0aGUgc2lkZSBlZmZlY3RzIHRoYXQgeW91IGhhdmUgd2l0aFxuICogICAgIGBib3JkZXItc3BhY2luZ2AuXG4gKiBbMl0gVGFibGVzIGFyZSBhbHdheXMgZnVsbC13aWR0aCBieSBkZWZhdWx0LlxuICogWzNdIFNldCBhbGwgY29sdW1ucyB0byBhbiBlcXVhbCB3aWR0aCBmb3IgdGhlIGZpeGVkIHdpZHRoIHRhYmxlIHZhcmlhbnQuXG4gKiBbNF0gVG8gbWFrZSBzdXJlIHRoZSBzdHlsaW5nIG9mIGZpcnN0IHJvdyBpcyBjb3JyZWN0IHdoZW4gbm90IHVzaW5nIGA8dGhlYWQ+YFxuICogICAgIGVsZW1lbnQsIGFzIHdlbGwgYXMgd2hlbiBgPHRoZWFkPmAgaXMgY29ycmVjdGx5IHVzZWQuXG4gKiBbNV0gUHJvdmlkZSBhIHNpbXBsZSByZXNwb25zaXZlIHRhYmxlIG1lY2hhbmlzbSBieSBqdXN0IGVuYWJsaW5nIGhvcml6b250YWxcbiAqICAgICBzY3JvbGxpbmcgYmVsb3cgYSBzcGVjaWZpYyBicmVha3BvaW50LlxuICogWzZdIExldCB0aGUgYXV0by13aWR0aCB0YWJsZSBiZSB3aWRlL25hcnJvdyBhcyBpdCBpcy5cbiAqIFs3XSBBdXRvIHRhYmxlcyBhcmUgbm90IGZ1bGwtd2lkdGguXG4gKiBbOF0gRW5zdXJlIHRoYXQgdGFibGUgaXMgY2VudGVyZWQuXG4gKiBbOV0gRWFjaCBjb2x1bW4gY2FuIGJlIGFzIHdpZGUgYXMgdGhlaXIgY29udGVudC5cbiAqIFsxMF0gUmVtb3ZlIGRlZmF1bHQgc3BhY2luZyBib3R0b20uXG4gKiBbMTFdIE1ha2Ugc3VyZSB0byBhZGQgYSBib3R0b20gc3BhY2luZyBpZiB0aGVyZSBpcyBzb21lIGNvbnRlbnQgZm9sbG93aW5nXG4gKiAgICAgIHRoZSB0YWJsZS5cbiAqIFsxMl0gU3R5bGVzIGZvciBzb3J0YWJsZXMgaW4gdGhlIHRhYmxlIGhlYWRlci5cbiAqIFsxNF0gS2VlcCBpY29uIGFuZCB0ZXh0IGNvbWJpbmF0aW9uIGlubGluZSBpbiB0aGUgZGF0YSBjb250cm9sIHRhYmxlLlxuICogWzE1XSBPdmVyd3JpdGUgdGhlIGJvcmRlciBhbmQgc3BhY2luZyBzZXR0aW5ncyBmb3IgYnV0dG9ucy5cbiAqIFsxNl0gQXBwbHkgdGhlIGhpZ2hsaWdodCB2YXJpYW50IHN0eWxlIHRvIGNlcnRhaW4gY29sdW1ucy5cbiAqIFsxN10gV3JhcCB0ZXh0IGFuZCBwb3NzaWJsZSBpbmxpbmUgZWxlbWVudHMgaW4gYDxzcGFuPmAgYmVjYXVzZSBvZiBwYXJlbnQnc1xuICogICAgICBmbGV4IHNldHRpbmcuIExlZnQgZW1wdHkgaGVyZSBmb3IgZG9jdW1lbnRhdGlvbiBhbmQgcHJvc3BlY3RpdmUgdXNhZ2UuXG4gKiBbMThdIFRhYmxlIG1vZGlmaWVyIGZvciB3aWRlIGFuZCBuYXJyb3cgdmFyaWFudHMuXG4gKiBbMTldIENvbGxhcHNlIGNlbGwgYm9yZGVycyB0byBlbGltaW5hdGUgdmlzaWJsZSBzcGFjZSBiZXR3ZWVuIGNlbGwgYm9yZGVycy5cbiAqIFsyMF0gU2V0IG92ZXJmbG93IHRvIGB2aXNpYmxlYCB0byBhbGxvdyBzdGlja3kgcG9zaXRpb25pbmcgaW4gdGhlIGZpcnN0XG4gKiAgICAgIHBsYWNlLlxuICogWzIxXSBDb3ZlciB0aGUgZm9sbG93aW5nIHJvd3Mgd2l0aCB0aGUgY2VsbHMgb2YgdGhlIGhlYWQgcm93LlxuICogICAgICBgei1pbmRleGAgc2hvdWxkIGJlIGxhcmdlciB0aGFuIHRoZSBgei1pbmRleGAgb2YgdGhlIGRpc2FibGVkIHJvd3NcbiAqICAgICAgb3ZlcmxheSAoWzU1XSkuXG4gKiBbMjJdIENvdmVyIHRoZSBmb2xsb3dpbmcgY29sdW1ucyB3aXRoIHRoZSBjZWxscyBvZiB0aGUgZmlyc3QgY29sdW1uLlxuICogWzIzXSBDb3ZlciB0aGUgZm9sbG93aW5nIGNvbHVtbnMgd2l0aCB0aGUgZmlyc3QgYHRoZWFkYCBjZWxsIGlmIHRoZSB0YWJsZSBoYXNcbiAqICAgICAgc3RpY2t5IGEgaGVhZCByb3cgYW5kIGEgc3RpY2t5IGZpcnN0IGNvbHVtbi5cbiAqIFsyNF0gRm9yIHplYnJhIHN0eWxlIHRhYmxlcyBpbmhlcml0IHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSB0YWJsZSByb3cuXG4gKiBbMjVdIERvIG5vdCByZW5kZXIgYSBsZWZ0IGJvcmRlciBvbiBhbnkgZmlyc3QgY2hpbGRyZW4gaW4gdGhlIHRvcC1tb3N0IHJvd3MuXG4gKiBbMjZdIEVuYWJsZXMgYm9yZGVycyBzdHlsZXMgZm9yIG1lcmdlZCBjZWxscy5cbiAqIFsyN10gVW51c2VkLCBmb3IgcHJvc3BlY3RpdmUgZnV0dXJlIHVzYWdlIGFuZCBhdm9pZCBCRU0gZXJyb3JzLlxuICogWzI4XSBGbGV4IGhlbHBlciB0byBhbGlnbiBtdWx0aXBsZSBjb250ZW50IGluc2lkZSBhIGNlbGwuXG4gKiBbMjldIFByb3ZpZGUgdGhlIHJlcXVpcmVkIG1pbmltdW0gaGVpZ2h0IGZvciBlYWNoIGNlbGwuXG4gKiBbMzBdIENlbGwgaWNvbiBjb2xvcnMgZGlmZmVyIGFjcm9zcyBicmFuZHMgaW4gY29sb3IgYW5kIG5lZWQgc2NvcGluZyBpblxuICogICAgICBgdGhlYWRgIGFuZCBgdGJvZHlgLlxuICogWzMxXSBJbmNyZWFzZSBzcGVjaWZpY2l0eSBiZWNhdXNlIG9mIGhpZ2ggYC5jLWJ1dHRvbmAgc3BlY2lmaWNpdHkuXG4gKiBbMzJdIEFzY2VuZGluZyBhbmQgZGVzY2VuZGluZyBzb3J0IGljb25zLlxuICogWzMzXSBJbmNyZWFzZSBzcGVjaWZpY2l0eSBhbmQgZXhjbHVkZSBgLmMtaW5mby1pY29uYCBhbmQgYC5jLWJhZGdlX19pY29uYFxuICogICAgICBmcm9tIHRhYmxlIGljb24gc3R5bGluZy5cbiAqIFszNF0gQXZvaWQgYm9yZGVycyBiZWluZyBjdXRvZmYgaWYgdGFibGUgZ2V0cyBzY3JvbGxhYmxlLlxuICogWzM1XSBEaXNhYmxlIGFsbCBwb2ludGVyLWV2ZW50cyB0byBwcmV2ZW50IGhvdmVyLXN0eWxlcyBmb3IgdGFibGUgY2VsbCBhbmRcbiAqICAgICAgcm93IGVsZW1lbnRzIG9ubHkuXG4gKiBbMzZdIFJlLWVuYWJsZSBhbGwgcG9pbnRlci1ldmVudHMgZm9yIGFsbCB0YWJsZSBlbGVtZW50cyB0aGF0IGFyZSBub3RcbiAqICAgICAgYWZmZWN0ZWQgdmlhIFszNV0uXG4gKiBbMzddIFJlc3BvbnNpdmUgdmFyaWFudDogSW5jcmVhc2Ugc3BlY2lmaWNpdHkgdG8gYmUgYWJsZSB0byBvdmVycmlkZVxuICogICAgICBgbWluLXdpZHRoYCB0aGF0IGlzIGJlaW5nIHVzZWQgZm9yIHRoZSBtb3JlIHNpbXBsZSByZXNwb25zaXZlIG92ZXJzY3JvbGxcbiAqICAgICAgZWZmZWN0LlxuICogWzM4XSBSZXNwb25zaXZlIHZhcmlhbnQ6IHJlc2V0IGBtaW4td2lkdGhgLlxuICogWzM5XSBSZXNwb25zaXZlIHZhcmlhbnQ6IFNldCBhbGwgdGFibGUgZWxlbWVudHMgdG8gYGRpc3BsYXk6IGJsb2NrYC4gTm90ZVxuICogICAgICB0aGF0IHRoZSByb2xlcyBvZiB0aGUgaW5kaXZpZHVhbCBlbGVtZW50cyBtdXN0IGJlIHJlc3RvcmVkIHdpdGhcbiAqICAgICAgYXJpYS1yb2xlcyBhdHRyaWJ1dGVzIGZvciBhY2Nlc3NpYmlsaXR5IHJlYXNvbnMuXG4gKiBbNDBdIFJlc3BvbnNpdmUgdmFyaWFudDogSGlkZSBgdGhlYWRgIGluIGFuIGFjY2Vzc2libGUgd2F5IHNvIHRoYXQgdXNlcnMgY2FuXG4gKiAgICAgIHN0aWxsIGFjY2VzcyBhbGwgY29udGVudCBpbiBpdCB3aXRoIGFzc2lzdGl2ZSB0ZWNobm9sb2dpZXMuXG4gKiBbNDFdIFJlc3BvbnNpdmUgdmFyaWFudDogUmVzZXQgc29tZSBgdGhgL2B0ZGAgc3R5bGVzLlxuICogWzQyXSBSZXNwb25zaXZlIHZhcmlhbnQ6IEhpZGUgYm90dG9tIGJvcmRlciBvZiB0aGUgbGFzdCBjZWxsIGluIGEgYHRyYC5cbiAqIFs0M10gUmVzcG9uc2l2ZSB2YXJpYW50OiBgW2RhdGEtY29sdW1uaGVhZGVyXWAgaXMgdXNlZCB0byByZXBlYXQgdGhlIGNvbHVtblxuICogICAgICBoZWFkZXIgYmVmb3JlIGVhY2ggY2VsbCBhcyBwc2V1ZG8gZWxlbWVudC5cbiAqIFs0NF0gUmVzcG9uc2l2ZSB2YXJpYW50OiBEaXNwbGF5IHRoZSB2YWx1ZSBvZiBgW2RhdGEtY29sdW1uaGVhZGVyXWAgYmVmb3JlXG4gKiAgICAgIGVhY2ggY2VsbCBhcyBhIHBzZXVkbyBlbGVtZW50LlxuICogWzQ1XSBSZXNwb25zaXZlIHZhcmlhbnQ6IFNldCBwb3NpdGlvbiB0byBgc3RhdGljYCB0byByZXNldCBhYnNvbHV0ZVxuICogICAgICBwb3NpdGlvbmluZyB0aGF0IGlzIG5lZWRlZCBmb3IgaG9yaXpvbnRhbCBib3JkZXJzIGluIGxhcmdlciB2aWV3cG9ydHMuXG4gKiAgICAgIFNlZSBbMV0uXG4gKiBbNDZdIFJlc3BvbnNpdmUgdmFyaWFudDogRW5hYmxlIGh5cGhlbmF0aW9uIGZvciBjb2x1bW4gaGVhZGVycyBiZWZvcmUgZWFjaFxuICogICAgICBjZWxsLCBhcyB0aGVyZSBvZnRlbiBpcyBub3QgZW5vdWdoIHdpZHRoIGZvciBsb25nZXIgd29yZHMsIGVzcGVjaWFsbHlcbiAqICAgICAgaW4gc21hbGwgdmlld3BvcnRzLlxuICogWzQ3XSBSZXNwb25zaXZlIHZhcmlhbnQ6IElmIGEgYmFja2dyb3VuZCBjb2xvciBpcyBzZXQgZm9yIHRoZSByZXNwb25zaXZlXG4gKiAgICAgIGNvbHVtbiBoZWFkZXIsIHRoZSBoZWFkZXIgc2hvdWxkIGJlIGRpc3BsYXllZCBvdmVyIHRoZSBlbnRpcmUgcm93IGhlaWdodC5cbiAqIFs0OF0gUmVzcG9uc2l2ZSB2YXJpYW50OiBVc2UgQ1NTIGdyaWQgaW4gbW9kZXJuIGJyb3dzZXJzIHRvIGxheW91dCB0aGVcbiAqICAgICAgY29sdW1uIGhlYWRlciBhbmQgY2VsbHMgc2lkZSBieSBzaWRlLlxuICogWzQ5XSBSZXNwb25zaXZlIHZhcmlhbnQ6IERpc2FibGUgYmFja2dyb3VuZCBjb2xvciBjaGFuZ2Ugb24gaG92ZXIuXG4gKiBbNTBdIFJlc3BvbnNpdmUgdmFyaWFudDogVG8gbWFrZSBzdXJlIHRoYXQgcmVhbGx5IG9ubHkgdGhlIGZpcnN0IGB0aGAgaW4gYVxuICogICAgICByb3cgaXMgdXNlZCBhcyByb3cgaGVhZGVyLCB3ZSB1c2UgdGhlIGA6Zmlyc3QtY2hpbGRgIHBzZXVkbyBjbGFzcy5cbiAqIFs1MV0gUmVzcG9uc2l2ZSB2YXJpYW50OiBBZGQgc3BhY2luZyBhbmQgYm9yZGVyIGJldHdlZW4gYHRyYHMuXG4gKiBbNTJdIEluaGVyaXQgYGNvbG9yYCBzbyB0aGF0IHRoZSBjb2xvciBvZiB0aGUgcm9vdCBlbGVtZW50IGlzIG5vdCB1c2VkIGluXG4gKiAgICAgIHNjb3BlZCBCcm9uc29uIHN0eWxlcy5cbiAqIFs1M10gT3B0aW9uYWwgaGVpZ2h0IGZvciB0YWJsZSBoZWFkLlxuICogWzU0XSBPcHRpb25hbGx5IGFsbCBzdHlsZXMgZm9yIHBzZXVkbyBlbGVtZW50IGNhbiBiZSByZXNldCB2aWEgYGFsbDogdW5zZXRgLlxuICogWzU1XSBBZGQgb3ZlcmxheSB2aWEgcHNldWRvIGVsZW1lbnQgZm9yIGRpc2FibGVkIHJvd3MgYW5kIGNlbGxzLlxuICogWzU2XSBNYWtlIHN1cmUgdGhlIG92ZXJsYXkgYWxpZ25zIHdpdGggdGFibGUgYm9yZGVycyBhbmQgY29sdW1uIHNwYWNpbmdzLlxuICogWzU3XSBBZGQgYmFja2dyb3VuZCBjb2xvciB3aXRoIG9wYWNpdHkgdmlhIHBzZXVkbyBlbGVtZW50IGZvciBkaXNhYmxlZFxuICogICAgICByb3dzIGFuZCBjZWxscy5cbiAqIFs1OF0gU3BhY2luZyB3aGVuIG92ZXJsYXkgaXMgdXNlZCBmb3IgYGlzLWRpc2FibGVkYCBvciBgW2FyaWEtZGlzYWJsZWRdPXRydWVgXG4gKiAgICAgIGFuZCBgJHRhYmxlLWNvbHVtbi1zcGFjaW5nYCBpcyBzZXQuXG4gKiBbNTldIFBvc2l0aW9uIHRoZSBzdGlja3kgaGVhZCByb3cgb3IgZmlyc3QgY29sdW1uIHRvIGAtMXB4YCAodG9wL2xlZnQpIHRvXG4gKiAgICAgIHJlY29nbml6ZSBpdHMgc3RpY2t5IHN0YXRlIHZpYSBJbnRlcnNlY3Rpb24gT2JzZXJ2ZXIuXG4gKiBbNjBdIEdyYWRpZW50cyB0byBtYWtlIGEgc3RpY2t5IGhlYWQgcm93IG9yIGZpcnN0IGNvbHVtbiBzdGFuZCBvdXQuXG4gKiBbNjFdIGAuaGFzLXN0aWNreS1oZWFkYCBpcyBzZXQgdmlhIEpTIHdoZW4gdGhlIGhlYWQgcm93IGlzIHN0aWNreS5cbiAqIFs2Ml0gYC5oYXMtc3RpY2t5LWNvbHVtbmAgaXMgc2V0IHZpYSBKUyB3aGVuIHRoZSBmaXJzdCBjb2x1bW4gaXMgc3RpY2t5LlxuICogWzYzXSBCeSB1c2luZyBDU1MgY3VzdG9tIHByb3BlcnRpZXMgZm9yIHNvbWUgcHJvcGVydGllcywgd2UgY2FuIHNldCBhbmQgdXNlXG4gKiAgICAgIHRoZXNlIHByb3BlcnRpZXMgbW9yZSBlYXNpbHkgaW4gY2VydGFpbiBjb250ZXh0cy5cbiAqICAgICAgRm9yIGV4YW1wbGUsIGluIHN0aWNreSByb3cgYW5kIGNvbHVtbiBzdGF0ZXMuXG4gKiBbNjRdIEZhZGUgdGhlIHNoYWRvdyBpbiBhbmQgb3V0IHNtb290aGx5IHZpYSBvcGFjaXR5IHRyYW5zaXRpb24uXG4gKiBbNjVdIEZvciBicmFuZHMgdGhhdCBoYXZlIGAkdGFibGUtdGhlYWQtYm9yZGVyLXRvcC13aWR0aGAgd2UgY2Fu4oCZdCBzZXQgYVxuICogICAgICBzaGFkb3cgZm9yIGEgc3RpY2t5IGNvbHVtbiBpbiBgdGhlYWRgIGJlY2F1c2UgYDo6YmVmb3JlYCBpcyBhbHJlYWR5XG4gKiAgICAgIHVzZWQgZm9yIHRoZSB0b3AgYm9yZGVyLlxuICovXG4uYy10YWJsZS13cmFwcGVyIC5jLWljb24uYy1pY29uLmMtaWNvbjpub3QoLmMtaW5mby1pY29uKTpub3QoLmMtYmFkZ2VfX2ljb24pIHsgLyogWzMzXSAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNlbGVjdG9yLW1heC1jbGFzcywgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cbi5jLXRhYmxlLXdyYXBwZXI6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7IC8qIFsxMV0gKi9cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS13cmFwcGVyLS1uby1zY3JvbGwpOm5vdChbY2xhc3MqPWMtdGFibGUtLXN0aWNreV0pIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvOyAvKiBbNV0gKi9cbiAgfVxuICAuYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS13cmFwcGVyLS1uby1zY3JvbGwpOm5vdChbY2xhc3MqPWMtdGFibGUtLXN0aWNreV0pIHRhYmxlIHtcbiAgICBtYXJnaW4tbGVmdDogMHB4OyAvKiBbMzRdICovXG4gIH1cbn1cbi5jLXRhYmxlLXdyYXBwZXIuYy10YWJsZS13cmFwcGVyLS1hdXRvIHtcbiAgd2lkdGg6IGF1dG87IC8qIFs2XSAqL1xufVxuLmMtdGFibGUtd3JhcHBlciB0aCxcbi5jLXRhYmxlLXdyYXBwZXIgdGQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIFsxXSAqL1xuICBwYWRkaW5nOiAxNnB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgLyogWzFdICovXG59XG4uYy10YWJsZS13cmFwcGVyIHRoOjpiZWZvcmUsIC5jLXRhYmxlLXdyYXBwZXIgdGg6OmFmdGVyLFxuLmMtdGFibGUtd3JhcHBlciB0ZDo6YmVmb3JlLFxuLmMtdGFibGUtd3JhcHBlciB0ZDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xufVxuLmMtdGFibGUtd3JhcHBlciB0aDo6YmVmb3JlLFxuLmMtdGFibGUtd3JhcHBlciB0ZDo6YmVmb3JlIHtcbiAgdG9wOiAwO1xufVxuLmMtdGFibGUtd3JhcHBlciB0aDo6YWZ0ZXIsXG4uYy10YWJsZS13cmFwcGVyIHRkOjphZnRlciB7XG4gIGJvdHRvbTogMDtcbn1cbi5jLXRhYmxlLXdyYXBwZXIgdGgge1xuICAvKiBbNTNdICovXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGNvbG9yOiB2YXIoLS10YWJsZS1jZWxsLWNvbG9yLCAjMTYxNzE4KTtcbn1cbi5jLXRhYmxlLXdyYXBwZXIgdGggLmMtaWNvbjpub3QoLmMtaW5mby1pY29uKTo6YmVmb3JlIHtcbiAgY29sb3I6ICMxNjE3MTg7IC8qIFszMF0gKi9cbn1cbi5jLXRhYmxlLXdyYXBwZXIgdGQge1xuICBoZWlnaHQ6IDMycHg7IC8qIFsyOV0gKi9cbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgY29sb3I6IHZhcigtLXRhYmxlLWNlbGwtY29sb3IsICMxNjE3MTgpO1xufVxuLmMtdGFibGUtd3JhcHBlciB0ZCAuYy1pY29uOm5vdCguYy1pbmZvLWljb24pOjpiZWZvcmUge1xuICAvKiBbMzBdICovXG59XG4uYy10YWJsZS13cmFwcGVyIHRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7IC8qIFsyXSAqL1xuICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbMTBdICovXG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IC8qIFsxOV0gKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIFs1Ml0gKi9cbiAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LWNvbXBvdW5kLXNlbGVjdG9ycywgc2VsZWN0b3ItbWF4LWNvbWJpbmF0b3JzLCBzZWxlY3Rvci1tYXgtdHlwZSAqL1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1jb21wb3VuZC1zZWxlY3RvcnMsIHNlbGVjdG9yLW1heC1jb21iaW5hdG9ycywgc2VsZWN0b3ItbWF4LXR5cGUgKi9cbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtY29tcG91bmQtc2VsZWN0b3JzLCBzZWxlY3Rvci1tYXgtY29tYmluYXRvcnMsIHNlbGVjdG9yLW1heC10eXBlICovXG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS13cmFwcGVyLS1uby1zY3JvbGwpIHRhYmxlIHtcbiAgICBtaW4td2lkdGg6IDcyMHB4OyAvKiBbNV0gKi9cbiAgfVxufVxuXG4uYy10YWJsZS13cmFwcGVyLS1hdXRvIHRhYmxlIHtcbiAgd2lkdGg6IGF1dG87IC8qIFs3XSAqL1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87IC8qIFs4XSAqL1xuICBtYXJnaW4tbGVmdDogYXV0bzsgLyogWzhdICovXG4gIHRhYmxlLWxheW91dDogYXV0bzsgLyogWzldICovXG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtdGFibGUtd3JhcHBlci0tYXV0byB0YWJsZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cblxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSBjYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgaXRjc3Mvbm8tYXQtaW1wb3J0YW50ICovXG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG59XG4uYy10YWJsZS13cmFwcGVyIHRhYmxlIDpub3QodGhlYWQpICsgdGJvZHkgdHI6Zmlyc3QtY2hpbGQsXG4uYy10YWJsZS13cmFwcGVyIHRhYmxlIHRoZWFkIHsgLyogWzRdICovXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG4uYy10YWJsZS13cmFwcGVyIHRhYmxlIDpub3QodGhlYWQpICsgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGgsXG4uYy10YWJsZS13cmFwcGVyIHRhYmxlIDpub3QodGhlYWQpICsgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGQsXG4uYy10YWJsZS13cmFwcGVyIHRhYmxlIHRoZWFkIHRoLFxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSB0aGVhZCB0ZCB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSA6bm90KHRoZWFkKSArIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRoLFxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSB0aGVhZCB0aCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4uYy10YWJsZS13cmFwcGVyIHRhYmxlIHRib2R5IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG9yZGVyL29yZGVyICovXG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG1heC1uZXN0aW5nLWRlcHRoICovXG4gIC8qIHN0eWxlbGludC1lbmFibGUgbWF4LW5lc3RpbmctZGVwdGggKi9cbiAgLyogc3R5bGVsaW50LWRpc2FibGUgbWF4LW5lc3RpbmctZGVwdGggKi9cbiAgLyogc3R5bGVsaW50LWVuYWJsZSBtYXgtbmVzdGluZy1kZXB0aCAqL1xufVxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSB0Ym9keSB0aCxcbi5jLXRhYmxlLXdyYXBwZXIgdGFibGUgdGJvZHkgdGQge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3IsIGNvbG9yLCBvcGFjaXR5O1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10YWJsZS1jZWxsLWJhY2tncm91bmQtY29sb3IpO1xufVxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSB0Ym9keSB0aDo6YWZ0ZXIsXG4uYy10YWJsZS13cmFwcGVyIHRhYmxlIHRib2R5IHRkOjphZnRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTRlNGU0O1xufVxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSB0Ym9keSB0cjpob3ZlciB7XG4gIC0tdGFibGUtY2VsbC1iYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxOyAvKiBbNjNdICovXG59XG4uYy10YWJsZS13cmFwcGVyIHRhYmxlIHRib2R5IHRyLmlzLXNlbGVjdGVkIHtcbiAgLS10YWJsZS1jZWxsLWJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IC8qIFs2M10gKi9cbn1cbi5jLXRhYmxlLXdyYXBwZXIgdGFibGUgdGJvZHkgdHIuaXMtc2VsZWN0ZWQgdGg6OmFmdGVyLFxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSB0Ym9keSB0ci5pcy1zZWxlY3RlZCB0ZDo6YWZ0ZXIge1xuICBib3JkZXItY29sb3I6ICNlNGU0ZTQ7XG59XG4uYy10YWJsZS13cmFwcGVyIHRhYmxlIHRib2R5IHRyLmlzLXNlbGVjdGVkOmhvdmVyIHtcbiAgLS10YWJsZS1jZWxsLWJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7IC8qIFs2M10gKi9cbn1cbi5jLXRhYmxlLXdyYXBwZXIgdGFibGUgdGJvZHkgdHIuaXMtc3VjY2VzcyB0aDo6YWZ0ZXIsXG4uYy10YWJsZS13cmFwcGVyIHRhYmxlIHRib2R5IHRyLmlzLXN1Y2Nlc3MgdGQ6OmFmdGVyIHtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1jb2xvcjogIzM3ZDAwMjtcbn1cbi5jLXRhYmxlLXdyYXBwZXIgdGFibGUgdGJvZHkgdHIuaXMtZXJyb3Ige1xuICAtLXRhYmxlLWNlbGwtY29sb3I6ICNlODJiMzc7IC8qIFs2M10gKi9cbn1cbi5jLXRhYmxlLXdyYXBwZXIgdGFibGUgdGJvZHkgdHIuaXMtZXJyb3IgdGg6OmFmdGVyLFxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSB0Ym9keSB0ci5pcy1lcnJvciB0ZDo6YWZ0ZXIge1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLWNvbG9yOiAjZTgyYjM3O1xufVxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSB0Ym9keSB0ci5pcy1kaXNhYmxlZCB0aDo6YWZ0ZXIsXG4uYy10YWJsZS13cmFwcGVyIHRhYmxlIHRib2R5IHRyLmlzLWRpc2FibGVkIHRkOjphZnRlciwgLmMtdGFibGUtd3JhcHBlciB0YWJsZSB0Ym9keSBbYXJpYS1kaXNhYmxlZD10cnVlXSB0aDo6YWZ0ZXIsXG4uYy10YWJsZS13cmFwcGVyIHRhYmxlIHRib2R5IFthcmlhLWRpc2FibGVkPXRydWVdIHRkOjphZnRlciB7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6ICNlNGU0ZTQ7XG59XG4uYy10YWJsZS13cmFwcGVyIHRhYmxlIHRib2R5IHRyLmlzLWRpc2FibGVkLmlzLXNlbGVjdGVkIHRoOjphZnRlcixcbi5jLXRhYmxlLXdyYXBwZXIgdGFibGUgdGJvZHkgdHIuaXMtZGlzYWJsZWQuaXMtc2VsZWN0ZWQgdGQ6OmFmdGVyLCAuYy10YWJsZS13cmFwcGVyIHRhYmxlIHRib2R5IFthcmlhLWRpc2FibGVkPXRydWVdLmlzLXNlbGVjdGVkIHRoOjphZnRlcixcbi5jLXRhYmxlLXdyYXBwZXIgdGFibGUgdGJvZHkgW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0uaXMtc2VsZWN0ZWQgdGQ6OmFmdGVyIHtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1jb2xvcjogI2U0ZTRlNDtcbn1cbi5jLXRhYmxlLXdyYXBwZXIgdGFibGUgdGJvZHkgdHIgdGguaXMtc3VjY2Vzcyxcbi5jLXRhYmxlLXdyYXBwZXIgdGFibGUgdGJvZHkgdHIgdGQuaXMtc3VjY2VzcyB7XG4gIGNvbG9yOiAjMzdkMDAyO1xufVxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSB0Ym9keSB0ciB0aC5pcy1zdWNjZXNzOjphZnRlcixcbi5jLXRhYmxlLXdyYXBwZXIgdGFibGUgdGJvZHkgdHIgdGQuaXMtc3VjY2Vzczo6YWZ0ZXIge1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLWNvbG9yOiAjZTRlNGU0O1xufVxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSB0Ym9keSB0ciB0aC5pcy1lcnJvcixcbi5jLXRhYmxlLXdyYXBwZXIgdGFibGUgdGJvZHkgdHIgdGQuaXMtZXJyb3Ige1xuICBjb2xvcjogI2U4MmIzNztcbn1cbi5jLXRhYmxlLXdyYXBwZXIgdGFibGUgdGJvZHkgdHIgdGguaXMtZXJyb3I6OmFmdGVyLFxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSB0Ym9keSB0ciB0ZC5pcy1lcnJvcjo6YWZ0ZXIge1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLWNvbG9yOiAjZTgyYjM3O1xufVxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSB0Ym9keSB0ciB0aC5pcy1kaXNhYmxlZDo6YWZ0ZXIsIC5jLXRhYmxlLXdyYXBwZXIgdGFibGUgdGJvZHkgdHIgW2FyaWEtZGlzYWJsZWQ9dHJ1ZV06OmFmdGVyLFxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSB0Ym9keSB0ciB0ZC5pcy1kaXNhYmxlZDo6YWZ0ZXIsIC5jLXRhYmxlLXdyYXBwZXIgdGFibGUgdGJvZHkgdHIgW2FyaWEtZGlzYWJsZWQ9dHJ1ZV06OmFmdGVyIHtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1jb2xvcjogI2U0ZTRlNDtcbn1cbi5jLXRhYmxlLXdyYXBwZXIgdGFibGUgdGJvZHkgdHI6aG92ZXIgdGguaXMtc3VjY2Vzcyxcbi5jLXRhYmxlLXdyYXBwZXIgdGFibGUgdGJvZHkgdHI6aG92ZXIgdGQuaXMtc3VjY2VzcyB7XG4gIGNvbG9yOiAjMzdkMDAyO1xufVxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSB0Ym9keSB0ci5pcy1zZWxlY3RlZCB0aC5pcy1kaXNhYmxlZDo6YWZ0ZXIsIC5jLXRhYmxlLXdyYXBwZXIgdGFibGUgdGJvZHkgdHIuaXMtc2VsZWN0ZWQgW2FyaWEtZGlzYWJsZWQ9dHJ1ZV06OmFmdGVyLFxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSB0Ym9keSB0ci5pcy1zZWxlY3RlZCB0ZC5pcy1kaXNhYmxlZDo6YWZ0ZXIsIC5jLXRhYmxlLXdyYXBwZXIgdGFibGUgdGJvZHkgdHIuaXMtc2VsZWN0ZWQgW2FyaWEtZGlzYWJsZWQ9dHJ1ZV06OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZTRlNGU0O1xufVxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSB0Ym9keSB0cixcbi5jLXRhYmxlLXdyYXBwZXIgdGFibGUgdGJvZHkgdGgsXG4uYy10YWJsZS13cmFwcGVyIHRhYmxlIHRib2R5IHRkIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1uZXN0aW5nLWRlcHRoICovXG59XG4uYy10YWJsZS13cmFwcGVyIHRhYmxlIHRib2R5IHRyLmlzLWRpc2FibGVkLCAuYy10YWJsZS13cmFwcGVyIHRhYmxlIHRib2R5IHRyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0sXG4uYy10YWJsZS13cmFwcGVyIHRhYmxlIHRib2R5IHRoLmlzLWRpc2FibGVkLFxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSB0Ym9keSB0aFthcmlhLWRpc2FibGVkPXRydWVdLFxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSB0Ym9keSB0ZC5pcy1kaXNhYmxlZCxcbi5jLXRhYmxlLXdyYXBwZXIgdGFibGUgdGJvZHkgdGRbYXJpYS1kaXNhYmxlZD10cnVlXSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSB0Ym9keSB0aCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4uYy10YWJsZS13cmFwcGVyIHRhYmxlIHRib2R5ID4gdHI6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogbm9uZTsgLyogWzI1XSAqL1xufVxuLmMtdGFibGUtd3JhcHBlciB0YWJsZSB0Zm9vdCB0aCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4uYy10YWJsZS13cmFwcGVyIHRyOndoZXJlKFthcmlhLWRpc2FibGVkPXRydWVdLCAuaXMtZGlzYWJsZWQpLFxuLmMtdGFibGUtd3JhcHBlciB0ZDp3aGVyZShbYXJpYS1kaXNhYmxlZD10cnVlXSwgLmlzLWRpc2FibGVkKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jLXRhYmxlLXdyYXBwZXIgdHI6d2hlcmUoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0sIC5pcy1kaXNhYmxlZCk6OmFmdGVyLFxuLmMtdGFibGUtd3JhcHBlciB0ZDp3aGVyZShbYXJpYS1kaXNhYmxlZD10cnVlXSwgLmlzLWRpc2FibGVkKTo6YWZ0ZXIge1xuICBhbGw6IHVuc2V0OyAvKiBbNTRdICovXG4gIGNvbnRlbnQ6IFwiXCI7IC8qIFs1NV0gKi9cbiAgcG9zaXRpb246IGFic29sdXRlOyAvKiBbNTVdICovXG4gIHotaW5kZXg6IDEwOyAvKiBbNTVdICovXG4gIHRvcDogMDsgLyogWzU2XSAqL1xuICBib3R0b206IDA7IC8qIFs1Nl0gKi9cbiAgbGVmdDogMDsgLyogWzU2XSAqL1xuICByaWdodDogMDsgLyogWzU2XSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyAvKiBbNTddICovXG4gIG9wYWNpdHk6IDAuNjsgLyogWzU3XSAqL1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmMtdGFibGUtLW5hcnJvdyB7IC8qIFsxOF0gKi8gfVxuLmMtdGFibGUtLW5hcnJvdyB0aCxcbi5jLXRhYmxlLS1uYXJyb3cgdGQge1xuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uYy10YWJsZS0td2lkZSB7IC8qIFsxOF0gKi8gfVxuLmMtdGFibGUtLXdpZGUgdGgsXG4uYy10YWJsZS0td2lkZSB0ZCB7XG4gIHBhZGRpbmc6IDI0cHggMTZweDtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4uYy10YWJsZV9fbGF5b3V0LS1maXhlZCxcbi5jLXRhYmxlLS1sYXlvdXQtZml4ZWQgeyAvKiBbM10gKi8gfVxuLmMtdGFibGVfX2xheW91dC0tZml4ZWQgdGFibGUsXG4uYy10YWJsZS0tbGF5b3V0LWZpeGVkIHRhYmxlIHtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cblxuLmMtdGFibGVfX2J0biB7IC8qIFsxNV0gKi8gfVxuLmMtdGFibGVfX2J0biwgLmMtdGFibGVfX2J0bjpob3ZlciwgLmMtdGFibGVfX2J0bjpmb2N1cywgLmMtdGFibGVfX2J0bjphY3RpdmUge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtY2xhc3MsIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuLmMtdGFibGVfX2J0bi1zb3J0LmMtdGFibGVfX2J0bi1zb3J0LmMtdGFibGVfX2J0bi1zb3J0LmMtdGFibGVfX2J0bi1zb3J0IHsgLyogWzMxXSAqL1xuICAtLWJ1dHRvbi1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG59XG4uYy10YWJsZV9fYnRuLXNvcnQuYy10YWJsZV9fYnRuLXNvcnQuYy10YWJsZV9fYnRuLXNvcnQuYy10YWJsZV9fYnRuLXNvcnQsIC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydDpob3ZlciwgLmMtdGFibGVfX2J0bi1zb3J0LmMtdGFibGVfX2J0bi1zb3J0LmMtdGFibGVfX2J0bi1zb3J0LmMtdGFibGVfX2J0bi1zb3J0OmZvY3VzLCAuYy10YWJsZV9fYnRuLXNvcnQuYy10YWJsZV9fYnRuLXNvcnQuYy10YWJsZV9fYnRuLXNvcnQuYy10YWJsZV9fYnRuLXNvcnQ6YWN0aXZlIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgbWluLWhlaWdodDogMDtcbiAgYm9yZGVyOiBub25lO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBsZXR0ZXItc3BhY2luZzogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiBub25lOyAvKiAzNSAqL1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydCAuYy1idG5fX2ljb24sIC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydDpob3ZlciAuYy1idG5fX2ljb24sIC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydDpmb2N1cyAuYy1idG5fX2ljb24sIC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydDphY3RpdmUgLmMtYnRuX19pY29uIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmMtdGFibGVfX2J0bi1zb3J0LmMtdGFibGVfX2J0bi1zb3J0LmMtdGFibGVfX2J0bi1zb3J0LmMtdGFibGVfX2J0bi1zb3J0IC5jLWJ0bl9faWNvbjo6YmVmb3JlLCAuYy10YWJsZV9fYnRuLXNvcnQuYy10YWJsZV9fYnRuLXNvcnQuYy10YWJsZV9fYnRuLXNvcnQuYy10YWJsZV9fYnRuLXNvcnQ6aG92ZXIgLmMtYnRuX19pY29uOjpiZWZvcmUsIC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydDpmb2N1cyAuYy1idG5fX2ljb246OmJlZm9yZSwgLmMtdGFibGVfX2J0bi1zb3J0LmMtdGFibGVfX2J0bi1zb3J0LmMtdGFibGVfX2J0bi1zb3J0LmMtdGFibGVfX2J0bi1zb3J0OmFjdGl2ZSAuYy1idG5fX2ljb246OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiYnJvbnNvbi1za29kYVwiICFpbXBvcnRhbnQ7IC8qIFsxXSAqL1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICBjb2xvcjogIzE2MTcxODtcbn1cbi5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydCwgLmMtdGFibGVfX2J0bi1zb3J0LmMtdGFibGVfX2J0bi1zb3J0LmMtdGFibGVfX2J0bi1zb3J0LmMtdGFibGVfX2J0bi1zb3J0W2RhdGEtc29ydC1vcmRlcj1hc2NdIHsgLyogWzMyXSAqLyB9XG4uYy10YWJsZV9fYnRuLXNvcnQuYy10YWJsZV9fYnRuLXNvcnQuYy10YWJsZV9fYnRuLXNvcnQuYy10YWJsZV9fYnRuLXNvcnQgLmMtYnRuX19pY29uOjpiZWZvcmUsIC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydFtkYXRhLXNvcnQtb3JkZXI9YXNjXSAuYy1idG5fX2ljb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY1XCI7XG59XG4uYy10YWJsZV9fYnRuLXNvcnQuYy10YWJsZV9fYnRuLXNvcnQuYy10YWJsZV9fYnRuLXNvcnQuYy10YWJsZV9fYnRuLXNvcnRbZGF0YS1zb3J0LW9yZGVyPWRlc2NdIHsgLyogWzMyXSAqLyB9XG4uYy10YWJsZV9fYnRuLXNvcnQuYy10YWJsZV9fYnRuLXNvcnQuYy10YWJsZV9fYnRuLXNvcnQuYy10YWJsZV9fYnRuLXNvcnRbZGF0YS1zb3J0LW9yZGVyPWRlc2NdIC5jLWJ0bl9faWNvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjRcIjtcbn1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmMtdGFibGVfX3NvcnRhYmxlLWhlYWRlci10ZXh0IHsgLyogWzE3XSAqLyB9XG5cbi5jLXRhYmxlX19jZWxsIHsgLyogWzI3XSAqLyB9XG5cbi5jLXRhYmxlX19jZWxsX19pY29uIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cblxuLmMtdGFibGVfX2NlbGwtYWxpZ24geyAvKiBbMjhdICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi8qKlxuICogRWFjaCB0YWJsZSB2YXJpYW50IGhhcyBpdHMgb3duIG1pbi1oZWlnaHQuXG4qL1xuLmMtdGFibGUtLW5hcnJvdyB0ZCB7XG4gIGhlaWdodDogMjRweDsgLyogWzI5XSAqL1xufVxuXG4uYy10YWJsZS0td2lkZSB0ZCB7XG4gIGhlaWdodDogNDhweDsgLyogWzI5XSAqL1xufVxuXG4uYy10YWJsZS0tbm8taG92ZXIgdGQsXG4uYy10YWJsZS0tbm8taG92ZXIgdGQgdGQsXG4uYy10YWJsZS0tbm8taG92ZXIgdGQgdGgsXG4uYy10YWJsZS0tbm8taG92ZXIgdGQgdHIsXG4uYy10YWJsZS0tbm8taG92ZXIgdGgsXG4uYy10YWJsZS0tbm8taG92ZXIgdGggdGQsXG4uYy10YWJsZS0tbm8taG92ZXIgdGggdGgsXG4uYy10YWJsZS0tbm8taG92ZXIgdGggdHIsXG4uYy10YWJsZS0tbm8taG92ZXIgdHIsXG4uYy10YWJsZS0tbm8taG92ZXIgdHIgdGQsXG4uYy10YWJsZS0tbm8taG92ZXIgdHIgdGgsXG4uYy10YWJsZS0tbm8taG92ZXIgdHIgdHIge1xuICBwb2ludGVyLWV2ZW50czogbm9uZSAhaW1wb3J0YW50OyAvKiBbMzVdICovXG59XG4uYy10YWJsZS0tbm8taG92ZXIgdGQgPiAqOm5vdCh0ZCk6bm90KHRoKTpub3QodHIpLFxuLmMtdGFibGUtLW5vLWhvdmVyIHRoID4gKjpub3QodGQpOm5vdCh0aCk6bm90KHRyKSxcbi5jLXRhYmxlLS1uby1ob3ZlciB0ciA+ICo6bm90KHRkKTpub3QodGgpOm5vdCh0cikge1xuICBwb2ludGVyLWV2ZW50czogYWxsICFpbXBvcnRhbnQ7IC8qIFszNl0gKi9cbn1cblxuLyoqXG4gKiBJbmRpdmlkdWFsIHRhYmxlIGNlbGxzIGNhbiBiZSBoaWdobGlnaHRlZCB2aWEgdGhlXG4gKiBgLmMtdGFibGUtLWhpZ2hsaWdodGAgY2xhc3MuXG4qL1xuLmMtdGFibGUtLWhpZ2hsaWdodCB0ciA+IDpudGgtY2hpbGQobiszKTpub3QodGgpIHsgLyogWzE2XSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZThmZmYxO1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi8qIFsxXSAqL1xuW2RhdGEtdGhlbWU9YWx0ZXJuYXRpdmVdIC5jLXRhYmxlLS1oaWdobGlnaHQgdHIgPiA6bnRoLWNoaWxkKG4rMyk6bm90KHRoKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi5jLXRhYmxlLS1oaWdobGlnaHQgdHIgPiA6bnRoLWNoaWxkKG4rMyk6bm90KHRoKTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXJpZ2h0OiA4cHggc29saWQgI2ZmZmZmZjtcbiAgLyoqXG4gICAqIFsxXSBDaGVjayBpZiBhIHRoZW1lIGlzIHNldCBvciBpZiB0aGUgZGVmYXVsdCB0aGVtZSAobnVsbCkgaXMgdXNlZC5cbiAgICogICAgIElmIHRoZSBgZGVmYXVsdGAgdGhlbWUgaXMgdXNlZCB3ZSBleGVjdXRlIHRoZSBhbHJlYWR5IHByZXNlbnQgbG9naWMsXG4gICAqICAgICBlbHNlIHdlIGp1c3QgcmV0dXJuIHRoZSBjb250ZW50IHVud3JhcHBlZC5cbiAgICovXG59XG4vKiBbMV0gKi9cbltkYXRhLXRoZW1lPWFsdGVybmF0aXZlXSAuYy10YWJsZS0taGlnaGxpZ2h0IHRyID4gOm50aC1jaGlsZChuKzMpOm5vdCh0aCk6bm90KDpsYXN0LWNoaWxkKSB7XG4gIGJvcmRlci1yaWdodDogMTZweCBzb2xpZCAjZDhkOGQ4O1xufVxuXG4vKipcbiAqIFRhYmxlIHdpdGggY29sb3Igc2NoZW1lXG4gKi9cbi5jLXRhYmxlLS1jb2xvcmVkIHRib2R5IHRyOm50aC1vZi10eXBlKG9kZCkge1xuICAtLXRhYmxlLWNlbGwtYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cbi5jLXRhYmxlLS1jb2xvcmVkIHRib2R5IHRyOm50aC1vZi10eXBlKGV2ZW4pIHtcbiAgLS10YWJsZS1jZWxsLWJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7XG59XG5cbi8qKlxuICogVGFibGUgd2l0aCBib3JkZXIgc2NoZW1lIGFuZCBqb2luZWQgY2VsbHMgYW5kIHJvd3NcbiAqL1xuLmMtdGFibGUtLWJvcmRlcmVkIHtcbiAgYm9yZGVyLXNwYWNpbmc6IDE2cHggMDtcbn1cbi5jLXRhYmxlLS1ib3JkZXJlZCB0ZCB7XG4gIHBhZGRpbmctdG9wOiAxNnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xufVxuLmMtdGFibGUtLWJvcmRlcmVkIHRkICsgdGQsXG4uYy10YWJsZS0tYm9yZGVyZWQgdGggKyB0ZCB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2U0ZTRlNDtcbn1cblxuLyoqXG4qIFRhYmxlIHdpdGggc3RpY2t5IGhlYWQgcm93XG4qL1xuLmMtdGFibGUtLXN0aWNreS1oZWFkIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIFsyMF0gKi9cbn1cbi5jLXRhYmxlLS1zdGlja3ktaGVhZCB0aGVhZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjA7IC8qIFsyMV0gKi9cbn1cbi5jLXRhYmxlLS1zdGlja3ktaGVhZCB0aGVhZCB0ciA+ICogeyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNlbGVjdG9yLW1heC1jb21iaW5hdG9ycywgc2VsZWN0b3ItbWF4LWNvbXBvdW5kLXNlbGVjdG9ycyAqL1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IGNhbGModmFyKC0tYnJvbi1zdGlja3ktb2Zmc2V0LCAwcHgpIC0gMXB4KTsgLyogWzU5XSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyAvKiBbMjFdICovXG4gIC8qKlxuICAgKiBbMV0gQ2hlY2sgaWYgYSB0aGVtZSBpcyBzZXQgb3IgaWYgdGhlIGRlZmF1bHQgdGhlbWUgKG51bGwpIGlzIHVzZWQuXG4gICAqICAgICBJZiB0aGUgYGRlZmF1bHRgIHRoZW1lIGlzIHVzZWQgd2UgZXhlY3V0ZSB0aGUgYWxyZWFkeSBwcmVzZW50IGxvZ2ljLFxuICAgKiAgICAgZWxzZSB3ZSBqdXN0IHJldHVybiB0aGUgY29udGVudCB1bndyYXBwZWQuXG4gICAqL1xufVxuLyogWzFdICovXG5bZGF0YS10aGVtZT1hbHRlcm5hdGl2ZV0gLmMtdGFibGUtLXN0aWNreS1oZWFkIHRoZWFkIHRyID4gKiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi5jLXRhYmxlLS1zdGlja3ktaGVhZCB0aGVhZCB0cjo6YWZ0ZXIgeyAvKiBbNjBdICovXG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCA1MDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgLyogWzY0XSAqL1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgMHB4KTtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMjBweDtcbiAgb3BhY2l0eTogMDsgLyogWzY0XSAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsIDAsIDAsIDAuMSksIHJnYmEoMCwgMCwgMCwgMCkpO1xufVxuLmMtdGFibGUtLXN0aWNreS1oZWFkLmhhcy1zdGlja3ktaGVhZCB7IC8qIFs2MV0gKi8gfVxuLmMtdGFibGUtLXN0aWNreS1oZWFkLmhhcy1zdGlja3ktaGVhZCB0aGVhZCB0ciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHotaW5kZXg6IDEwMDtcbiAgdG9wOiBjYWxjKHZhcigtLWJyb24tc3RpY2t5LW9mZnNldCwgMHB4KSAtIDFweCk7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2NhbGUtdW5saW1pdGVkL2RlY2xhcmF0aW9uLXN0cmljdC12YWx1ZSAqL1xufVxuLmMtdGFibGUtLXN0aWNreS1oZWFkLmhhcy1zdGlja3ktaGVhZCB0aGVhZCB0cjo6YWZ0ZXIge1xuICBvcGFjaXR5OiAxOyAvKiBbNjRdICovXG59XG5cbi8qKlxuKiBUYWJsZSB3aXRoIHN0aWNreSBmaXJzdCBjb2x1bW5cbiovXG4uYy10YWJsZS0tc3RpY2t5LWNvbHVtbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiBbMjBdICovXG59XG4uYy10YWJsZS0tc3RpY2t5LWNvbHVtbiB0ciA+IDpmaXJzdC1jaGlsZCB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHotaW5kZXg6IDE7IC8qIFsyMl0gKi9cbiAgbGVmdDogLTFweDsgLyogWzU5XSAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjYWxlLXVubGltaXRlZC9kZWNsYXJhdGlvbi1zdHJpY3QtdmFsdWUgKi9cbn1cbi5jLXRhYmxlLS1zdGlja3ktY29sdW1uIHRoZWFkIHRyID4gOmZpcnN0LWNoaWxkIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzZWxlY3Rvci1tYXgtY29tYmluYXRvcnMsIHNlbGVjdG9yLW1heC1jb21wb3VuZC1zZWxlY3RvcnMgKi9cbiAgei1pbmRleDogMjsgLyogWzIzXSAqL1xufVxuLmMtdGFibGUtLXN0aWNreS1jb2x1bW4uYy10YWJsZS0tY29sb3JlZDpub3QoLmhhcy1zdGlja3ktY29sdW1uKSB0Ym9keSB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xufVxuLmMtdGFibGUtLXN0aWNreS1jb2x1bW4uYy10YWJsZS0tY29sb3JlZDpub3QoLmhhcy1zdGlja3ktY29sdW1uKSB0Ym9keSB0aDpmaXJzdC1jaGlsZCxcbi5jLXRhYmxlLS1zdGlja3ktY29sdW1uLmMtdGFibGUtLWNvbG9yZWQ6bm90KC5oYXMtc3RpY2t5LWNvbHVtbikgdGJvZHkgdGQ6Zmlyc3QtY2hpbGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OyAvKiBbMjRdICovXG59XG5cbi8qKlxuKiBSZXNwb25zaXZlIHRhYmxlXG4qL1xuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHtcbiAgICAvKiBDb2x1bW4gSGVhZGVyICovXG4gICAgLyogUm93IEhlYWRlciAqL1xuICB9XG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlLmMtdGFibGUtLXJlc3BvbnNpdmUgPiB0YWJsZSB7IC8qIFszN10gKi9cbiAgICBtaW4td2lkdGg6IDA7IC8qIFszOF0gKi9cbiAgfVxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZS5jLXRhYmxlLS1yZXNwb25zaXZlID4gdGFibGUgdHI6aG92ZXIge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtY29tYmluYXRvcnMsIHNlbGVjdG9yLW1heC1jb21wb3VuZC1zZWxlY3RvcnMsIHNlbGVjdG9yLW1heC10eXBlICovXG4gIH1cbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUuYy10YWJsZS0tcmVzcG9uc2l2ZSA+IHRhYmxlIHRyOmhvdmVyIHRoLFxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZS5jLXRhYmxlLS1yZXNwb25zaXZlID4gdGFibGUgdHI6aG92ZXIgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7IC8qIFs0OV0gKi9cbiAgfVxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0YWJsZSxcbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGhlYWQsXG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRib2R5LFxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0Zm9vdCxcbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdHIsXG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRoLFxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7IC8qIFszOV0gKi9cbiAgfVxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0aGVhZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgaXRjc3Mvbm8tYXQtaW1wb3J0YW50ICovXG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbiAgICAvKiBbNDBdICovXG4gIH1cbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGgsXG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRkIHtcbiAgICBoZWlnaHQ6IGF1dG87IC8qIFs0MV0gKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyAvKiBbNDFdICovXG4gICAgcGFkZGluZy1sZWZ0OiAwOyAvKiBbNDFdICovXG4gIH1cbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgW2RhdGEtY29sdW1uaGVhZGVyXSB7IC8qIFs0M10gKi9cbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICBjb2x1bW4tZ2FwOiAxNnB4O1xuICB9XG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIFtkYXRhLWNvbHVtbmhlYWRlcl06OmJlZm9yZSB7XG4gICAgY29udGVudDogYXR0cihkYXRhLWNvbHVtbmhlYWRlcik7IC8qIFs0NF0gKi9cbiAgICBwb3NpdGlvbjogc3RhdGljOyAvKiBbNDVdICovXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGh5cGhlbnM6IGF1dG87IC8qIFs0Nl0gKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjMTYxNzE4O1xuICAgIG1hcmdpbi10b3A6IC0xNnB4OyAvKiBbNDddICovXG4gICAgbWFyZ2luLWJvdHRvbTogLTE2cHg7IC8qIFs0N10gKi9cbiAgICBwYWRkaW5nOiAxNnB4IDE2cHg7IC8qIFs0N10gKi9cbiAgfVxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0aDpmaXJzdC1jaGlsZCB7IC8qIFs1MF0gKi9cbiAgICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMTYxNzE4O1xuICB9XG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRyICsgdHIge1xuICAgIG1hcmdpbi10b3A6IDI0cHg7IC8qIFs1MV0gKi9cbiAgICBwYWRkaW5nLXRvcDogMjRweDsgLyogWzUxXSAqL1xuICAgIC8qIFs1MV0gKi9cbiAgfVxufVxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtdHlwZSwgc2VsZWN0b3ItbWF4LWNvbXBvdW5kLXNlbGVjdG9ycywgc2VsZWN0b3ItbWF4LWNvbWJpbmF0b3JzLCBtYXgtbmVzdGluZy1kZXB0aCAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgbm8tZHVwbGljYXRlLXNlbGVjdG9ycyAqL1xuLyoqXG4gKiBbMV0gRW5zdXJlIHZpc2liaWxpdHksIGFsc28gd2hlbiBoZWFkZXIgaXMgc3RpY2t5LlxuICogWzJdIERyYXcgbGluZSBiZXR3ZWVuIGhlYWRlci9mb290ZXIgYW5kIGJvZHkuIFRoaXMgY2FuIGJlIGRvbmUgb25seSBmb3IgdGhlXG4gKiAgICAgaGVhZGVyL2Zvb3RlciBhcyB0aGUgY2VsbHMgbmVlZCB0byBiZSBhYmxlIHRvIGhhdmVcbiAqICAgICBjb2xvcml6ZWQgYm9yZGVycyBiYXNlZCBvbiBzdGF0ZS5cbiAqIFszXSBWZXJ0aWNhbCBib3JkZXJzIGZvciBoZWFkZXIgY2VsbHMgdGhhdCBhcmUgbm90IGZ1bGwgaGVpZ2h0LlxuICogWzRdIERyYXcgXCJjb3JuZXJzXCIgLyBcImVkZ2VzXCIgb24gZWFjaCBzaWRlLlxuICogWzVdIEJvcmRlciBvbiBsZWZ0IGFuZCByaWdodCBzaWRlLlxuICogWzZdIEVuc3VyZSBjb2xvcml6ZWQgY2VsbHMgaGF2ZSByb3VuZGVkIGNvcm5lcnMgdGhhdCBhcmUgYXQgdGhlIGVuZFxuICogICAgIHRvIGluaGVyaXQgdGhlIG91dGVyIGJvcmRlci5cbiAqIFs3XSBFbnN1cmUgYWxsIHBzZXVkbyBlbGVtZW50IHN0eWxlcyBhcmUgdW5zZXQgdG8gc2V0IGN1c3RvbSBzdHlsZXNcbiAqICAgICB3aXRob3V0IG1hbnVhbCAocmUpc2V0cy5cbiAqIFs4XSBPdmVyd3JpdGUgZGVmYXVsdCwgZml4IHN0cmFpZ2h0IGxpbmUgYW5kIGJvcmRlci1yYWRpdXMuXG4gKiBbOV0gT3ZlcndyaXRlIGRlZmF1bHRzIChicm9uc29uLWRlZmF1bHQpLlxuICogWzEwXSBTcGVjaWZpY2l0eSDwn5KpIOKAkyBEb27igJl0IGFzayFcbiAqIFsxMV0gU3RpY2t5IGNvbHVtbiBzaGFkb3cuXG4gKiBbMTJdIFJlY3JlYXRlIGJvdHRvbSBib3JkZXIgZm9yIHRoZSBzdGlja3kgY29sdW1uIGNlbGwgaW4gdGhlIGxhc3Qgcm93LlxuICovXG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSkge1xuICAvKiBbNF0gKi9cbiAgLyogWzRdICovXG4gIC8qIFs0XSAqL1xuICAvKiBbNV0gKi9cbn1cbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0aGVhZCB0aDo6YWZ0ZXIsXG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSkgdGhlYWQgdGQ6OmFmdGVyLFxuLmMtdGFibGUtd3JhcHBlcjpub3QoLmMtdGFibGUtLXJlc3BvbnNpdmUpIHRmb290IHRoOjphZnRlcixcbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0Zm9vdCB0ZDo6YWZ0ZXIge1xuICBhbGw6IHVuc2V0OyAvKiBbN10gKi9cbn1cbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0aGVhZCB0aDpub3QoOmZpcnN0LWNoaWxkLCA6bGFzdC1jaGlsZCk6OmFmdGVyLFxuLmMtdGFibGUtd3JhcHBlcjpub3QoLmMtdGFibGUtLXJlc3BvbnNpdmUpIHRoZWFkIHRkOm5vdCg6Zmlyc3QtY2hpbGQsIDpsYXN0LWNoaWxkKTo6YWZ0ZXIsXG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSkgdGZvb3QgdGg6bm90KDpmaXJzdC1jaGlsZCwgOmxhc3QtY2hpbGQpOjphZnRlcixcbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0Zm9vdCB0ZDpub3QoOmZpcnN0LWNoaWxkLCA6bGFzdC1jaGlsZCk6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7XG59XG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSkgdGhlYWQgdHIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U0ZTRlNDsgLyogWzJdICovXG59XG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSkgdGhlYWQgdGgge1xuICAvKiBbM10gKi9cbn1cbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0aGVhZCB0aDo6YmVmb3JlIHtcbiAgdG9wOiAxNnB4O1xuICBib3R0b206IDE2cHg7XG4gIHdpZHRoOiAxcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7XG59XG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSkgdGhlYWQgdGg6bm90KDpmaXJzdC1jaGlsZCwgOmxhc3QtY2hpbGQpOjphZnRlcixcbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0aGVhZCB0ZDpub3QoOmZpcnN0LWNoaWxkLCA6bGFzdC1jaGlsZCk6OmFmdGVyIHtcbiAgdG9wOiAwOyAvKiBbM10gKi9cbn1cbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0aGVhZCB0aDpmaXJzdC1jaGlsZDo6YWZ0ZXIsIC5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0aGVhZCB0aDpsYXN0LWNoaWxkOjphZnRlcixcbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0aGVhZCB0ZDpmaXJzdC1jaGlsZDo6YWZ0ZXIsXG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSkgdGhlYWQgdGQ6bGFzdC1jaGlsZDo6YWZ0ZXIsXG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSkgdGZvb3QgdGg6Zmlyc3QtY2hpbGQ6OmFmdGVyLFxuLmMtdGFibGUtd3JhcHBlcjpub3QoLmMtdGFibGUtLXJlc3BvbnNpdmUpIHRmb290IHRoOmxhc3QtY2hpbGQ6OmFmdGVyLFxuLmMtdGFibGUtd3JhcHBlcjpub3QoLmMtdGFibGUtLXJlc3BvbnNpdmUpIHRmb290IHRkOmZpcnN0LWNoaWxkOjphZnRlcixcbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0Zm9vdCB0ZDpsYXN0LWNoaWxkOjphZnRlciB7XG4gIGFsbDogdW5zZXQ7IC8qIFs3XSAqL1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmMtdGFibGUtd3JhcHBlcjpub3QoLmMtdGFibGUtLXJlc3BvbnNpdmUpIHRoZWFkIHRoOmZpcnN0LWNoaWxkOjphZnRlcixcbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0aGVhZCB0ZDpmaXJzdC1jaGlsZDo6YWZ0ZXIsXG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSkgdGZvb3QgdGg6Zmlyc3QtY2hpbGQ6OmFmdGVyLFxuLmMtdGFibGUtd3JhcHBlcjpub3QoLmMtdGFibGUtLXJlc3BvbnNpdmUpIHRmb290IHRkOmZpcnN0LWNoaWxkOjphZnRlciB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2U0ZTRlNDtcbn1cbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0aGVhZCB0aDpsYXN0LWNoaWxkOjphZnRlcixcbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0aGVhZCB0ZDpsYXN0LWNoaWxkOjphZnRlcixcbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0Zm9vdCB0aDpsYXN0LWNoaWxkOjphZnRlcixcbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0Zm9vdCB0ZDpsYXN0LWNoaWxkOjphZnRlciB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlNGU0ZTQ7XG59XG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSkgdGhlYWQgdGg6Zmlyc3QtY2hpbGQ6OmFmdGVyLCAuYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSkgdGhlYWQgdGg6bGFzdC1jaGlsZDo6YWZ0ZXIsXG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSkgdGhlYWQgdGQ6Zmlyc3QtY2hpbGQ6OmFmdGVyLFxuLmMtdGFibGUtd3JhcHBlcjpub3QoLmMtdGFibGUtLXJlc3BvbnNpdmUpIHRoZWFkIHRkOmxhc3QtY2hpbGQ6OmFmdGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNGU0ZTQ7IC8qIFsyXSAqL1xufVxuLmMtdGFibGUtd3JhcHBlcjpub3QoLmMtdGFibGUtLXJlc3BvbnNpdmUpIHRoZWFkIHRoOmZpcnN0LWNoaWxkOjphZnRlcixcbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0aGVhZCB0ZDpmaXJzdC1jaGlsZDo6YWZ0ZXIge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA4cHg7XG59XG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSkgdGhlYWQgdGg6bGFzdC1jaGlsZDo6YWZ0ZXIsXG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSkgdGhlYWQgdGQ6bGFzdC1jaGlsZDo6YWZ0ZXIge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogOHB4O1xufVxuLmMtdGFibGUtd3JhcHBlcjpub3QoLmMtdGFibGUtLXJlc3BvbnNpdmUpIHRmb290IHRoOm5vdCg6Zmlyc3QtY2hpbGQsIDpsYXN0LWNoaWxkKTo6YWZ0ZXIsXG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSkgdGZvb3QgdGQ6bm90KDpmaXJzdC1jaGlsZCwgOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gIGJvdHRvbTogMDtcbn1cbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0Zm9vdCB0aDpmaXJzdC1jaGlsZDo6YWZ0ZXIsIC5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0Zm9vdCB0aDpsYXN0LWNoaWxkOjphZnRlcixcbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0Zm9vdCB0ZDpmaXJzdC1jaGlsZDo6YWZ0ZXIsXG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSkgdGZvb3QgdGQ6bGFzdC1jaGlsZDo6YWZ0ZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U0ZTRlNDtcbn1cbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0Zm9vdCB0aDpmaXJzdC1jaGlsZDo6YWZ0ZXIsXG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSkgdGZvb3QgdGQ6Zmlyc3QtY2hpbGQ6OmFmdGVyIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogOHB4O1xufVxuLmMtdGFibGUtd3JhcHBlcjpub3QoLmMtdGFibGUtLXJlc3BvbnNpdmUpIHRmb290IHRoOmxhc3QtY2hpbGQ6OmFmdGVyLFxuLmMtdGFibGUtd3JhcHBlcjpub3QoLmMtdGFibGUtLXJlc3BvbnNpdmUpIHRmb290IHRkOmxhc3QtY2hpbGQ6OmFmdGVyIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDhweDtcbn1cbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKTpub3QoLmMtdGFibGUtLWRhdGEtY29udHJvbHMpIHRib2R5IHRyOmxhc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQ6OmFmdGVyLCAuYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSk6bm90KC5jLXRhYmxlLS1kYXRhLWNvbnRyb2xzKSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQ6OmFmdGVyLFxuLmMtdGFibGUtd3JhcHBlcjpub3QoLmMtdGFibGUtLXJlc3BvbnNpdmUpOm5vdCguYy10YWJsZS0tZGF0YS1jb250cm9scykgdGJvZHkgdHI6bGFzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZDo6YWZ0ZXIsXG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSk6bm90KC5jLXRhYmxlLS1kYXRhLWNvbnRyb2xzKSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQ6OmFmdGVyIHtcbiAgYm9yZGVyOiAwOyAvKiBbOF0gKi9cbn1cbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKTpub3QoLmMtdGFibGUtLWRhdGEtY29udHJvbHMpIHRib2R5IHRyOmxhc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQ6OmJlZm9yZSwgLmMtdGFibGUtd3JhcHBlcjpub3QoLmMtdGFibGUtLXJlc3BvbnNpdmUpOm5vdCguYy10YWJsZS0tZGF0YS1jb250cm9scykgdGJvZHkgdHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxkOjpiZWZvcmUsXG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSk6bm90KC5jLXRhYmxlLS1kYXRhLWNvbnRyb2xzKSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkOjpiZWZvcmUsXG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSk6bm90KC5jLXRhYmxlLS1kYXRhLWNvbnRyb2xzKSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQ6OmJlZm9yZSB7XG4gIGFsbDogdW5zZXQ7IC8qIFs3XSAqL1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTRlNGU0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKTpub3QoLmMtdGFibGUtLWRhdGEtY29udHJvbHMpIHRib2R5IHRyOmxhc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQ6OmJlZm9yZSxcbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKTpub3QoLmMtdGFibGUtLWRhdGEtY29udHJvbHMpIHRib2R5IHRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQ6OmJlZm9yZSB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2U0ZTRlNDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogOHB4O1xufVxuLmMtdGFibGUtd3JhcHBlcjpub3QoLmMtdGFibGUtLXJlc3BvbnNpdmUpOm5vdCguYy10YWJsZS0tZGF0YS1jb250cm9scykgdGJvZHkgdHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxkOjpiZWZvcmUsXG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSk6bm90KC5jLXRhYmxlLS1kYXRhLWNvbnRyb2xzKSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQ6OmJlZm9yZSB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlNGU0ZTQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA4cHg7XG59XG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSkgdGJvZHkgdGg6Zmlyc3QtY2hpbGQ6OmJlZm9yZSwgLmMtdGFibGUtd3JhcHBlcjpub3QoLmMtdGFibGUtLXJlc3BvbnNpdmUpIHRib2R5IHRoOmxhc3QtY2hpbGQ6OmJlZm9yZSxcbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0Ym9keSB0ZDpmaXJzdC1jaGlsZDo6YmVmb3JlLFxuLmMtdGFibGUtd3JhcHBlcjpub3QoLmMtdGFibGUtLXJlc3BvbnNpdmUpIHRib2R5IHRkOmxhc3QtY2hpbGQ6OmJlZm9yZSB7XG4gIGFsbDogdW5zZXQ7IC8qIFs3XSAqL1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTRlNGU0O1xufVxuLmMtdGFibGUtd3JhcHBlcjpub3QoLmMtdGFibGUtLXJlc3BvbnNpdmUpIHRib2R5IHRoOmZpcnN0LWNoaWxkOjpiZWZvcmUsXG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSkgdGJvZHkgdGQ6Zmlyc3QtY2hpbGQ6OmJlZm9yZSB7XG4gIGxlZnQ6IDA7XG59XG4uYy10YWJsZS13cmFwcGVyOm5vdCguYy10YWJsZS0tcmVzcG9uc2l2ZSkgdGJvZHkgdGg6bGFzdC1jaGlsZDo6YmVmb3JlLFxuLmMtdGFibGUtd3JhcHBlcjpub3QoLmMtdGFibGUtLXJlc3BvbnNpdmUpIHRib2R5IHRkOmxhc3QtY2hpbGQ6OmJlZm9yZSB7XG4gIHJpZ2h0OiAwO1xufVxuLmMtdGFibGUtd3JhcHBlcjpub3QoLmMtdGFibGUtLXJlc3BvbnNpdmUpIHRib2R5IHRyOmxhc3QtY2hpbGQgPiAqOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogOHB4OyAvKiBbNl0gKi9cbn1cbi5jLXRhYmxlLXdyYXBwZXI6bm90KC5jLXRhYmxlLS1yZXNwb25zaXZlKSB0Ym9keSB0cjpsYXN0LWNoaWxkID4gKjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDhweDsgLyogWzZdICovXG59XG5cbi5jLXRhYmxlLS1zdGlja3ktY29sdW1uIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuLmMtdGFibGUtLXN0aWNreS1jb2x1bW4uaGFzLXN0aWNreS1jb2x1bW4uaGFzLXN0aWNreS1jb2x1bW4uaGFzLXN0aWNreS1jb2x1bW4uaGFzLXN0aWNreS1jb2x1bW4geyAvKiBbMTBdICovIH1cbi5jLXRhYmxlLS1zdGlja3ktY29sdW1uLmhhcy1zdGlja3ktY29sdW1uLmhhcy1zdGlja3ktY29sdW1uLmhhcy1zdGlja3ktY29sdW1uLmhhcy1zdGlja3ktY29sdW1uIHRyID4gOmZpcnN0LWNoaWxkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGFibGUtY2VsbC1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmZmZmKTtcbiAgb3BhY2l0eTogMTtcbn1cbi5jLXRhYmxlLS1zdGlja3ktY29sdW1uLmhhcy1zdGlja3ktY29sdW1uLmhhcy1zdGlja3ktY29sdW1uLmhhcy1zdGlja3ktY29sdW1uLmhhcy1zdGlja3ktY29sdW1uIHRyID4gOmZpcnN0LWNoaWxkOjpiZWZvcmUgeyAvKiBbMTFdICovXG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDEwMCU7XG4gIHdpZHRoOiAyMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC4xKSwgcmdiYSgwLCAwLCAwLCAwKSk7XG59XG4uYy10YWJsZS0tc3RpY2t5LWNvbHVtbi5oYXMtc3RpY2t5LWNvbHVtbi5oYXMtc3RpY2t5LWNvbHVtbi5oYXMtc3RpY2t5LWNvbHVtbi5oYXMtc3RpY2t5LWNvbHVtbiB0Ym9keSB0cjpsYXN0LWNoaWxkID4gOmZpcnN0LWNoaWxkOjphZnRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTRlNGU0OyAvKiBbMTJdICovXG59XG5cbi5jLXRhYmxlLS1yZXNwb25zaXZlIHRoOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUge1xuICAgIC8qIFs0XSAqL1xuICAgIC8qIFs0XSAqL1xuICAgIC8qIFs0XSAqL1xuICAgIC8qIFs1XSAqL1xuICB9XG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRoZWFkIHRoOjphZnRlcixcbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGhlYWQgdGQ6OmFmdGVyLFxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0Zm9vdCB0aDo6YWZ0ZXIsXG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRmb290IHRkOjphZnRlciB7XG4gICAgYWxsOiB1bnNldDsgLyogWzddICovXG4gIH1cbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGhlYWQgdGg6bm90KDpmaXJzdC1jaGlsZCwgOmxhc3QtY2hpbGQpOjphZnRlcixcbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGhlYWQgdGQ6bm90KDpmaXJzdC1jaGlsZCwgOmxhc3QtY2hpbGQpOjphZnRlcixcbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGZvb3QgdGg6bm90KDpmaXJzdC1jaGlsZCwgOmxhc3QtY2hpbGQpOjphZnRlcixcbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGZvb3QgdGQ6bm90KDpmaXJzdC1jaGlsZCwgOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTRlNGU0O1xuICB9XG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRoZWFkIHRyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U0ZTRlNDsgLyogWzJdICovXG4gIH1cbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGhlYWQgdGgge1xuICAgIC8qIFszXSAqL1xuICB9XG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRoZWFkIHRoOjpiZWZvcmUge1xuICAgIHRvcDogMTZweDtcbiAgICBib3R0b206IDE2cHg7XG4gICAgd2lkdGg6IDFweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTRlNGU0O1xuICB9XG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRoZWFkIHRoOm5vdCg6Zmlyc3QtY2hpbGQsIDpsYXN0LWNoaWxkKTo6YWZ0ZXIsXG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRoZWFkIHRkOm5vdCg6Zmlyc3QtY2hpbGQsIDpsYXN0LWNoaWxkKTo6YWZ0ZXIge1xuICAgIHRvcDogMDsgLyogWzNdICovXG4gIH1cbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGhlYWQgdGg6Zmlyc3QtY2hpbGQ6OmFmdGVyLCAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0aGVhZCB0aDpsYXN0LWNoaWxkOjphZnRlcixcbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGhlYWQgdGQ6Zmlyc3QtY2hpbGQ6OmFmdGVyLFxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0aGVhZCB0ZDpsYXN0LWNoaWxkOjphZnRlcixcbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGZvb3QgdGg6Zmlyc3QtY2hpbGQ6OmFmdGVyLFxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0Zm9vdCB0aDpsYXN0LWNoaWxkOjphZnRlcixcbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGZvb3QgdGQ6Zmlyc3QtY2hpbGQ6OmFmdGVyLFxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0Zm9vdCB0ZDpsYXN0LWNoaWxkOjphZnRlciB7XG4gICAgYWxsOiB1bnNldDsgLyogWzddICovXG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTA7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRoZWFkIHRoOmZpcnN0LWNoaWxkOjphZnRlcixcbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGhlYWQgdGQ6Zmlyc3QtY2hpbGQ6OmFmdGVyLFxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0Zm9vdCB0aDpmaXJzdC1jaGlsZDo6YWZ0ZXIsXG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRmb290IHRkOmZpcnN0LWNoaWxkOjphZnRlciB7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTRlNGU0O1xuICB9XG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRoZWFkIHRoOmxhc3QtY2hpbGQ6OmFmdGVyLFxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0aGVhZCB0ZDpsYXN0LWNoaWxkOjphZnRlcixcbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGZvb3QgdGg6bGFzdC1jaGlsZDo6YWZ0ZXIsXG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRmb290IHRkOmxhc3QtY2hpbGQ6OmFmdGVyIHtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTRlNGU0O1xuICB9XG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRoZWFkIHRoOmZpcnN0LWNoaWxkOjphZnRlciwgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGhlYWQgdGg6bGFzdC1jaGlsZDo6YWZ0ZXIsXG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRoZWFkIHRkOmZpcnN0LWNoaWxkOjphZnRlcixcbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGhlYWQgdGQ6bGFzdC1jaGlsZDo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTRlNGU0OyAvKiBbMl0gKi9cbiAgfVxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0aGVhZCB0aDpmaXJzdC1jaGlsZDo6YWZ0ZXIsXG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRoZWFkIHRkOmZpcnN0LWNoaWxkOjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4O1xuICB9XG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRoZWFkIHRoOmxhc3QtY2hpbGQ6OmFmdGVyLFxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0aGVhZCB0ZDpsYXN0LWNoaWxkOjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDhweDtcbiAgfVxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0Zm9vdCB0aDpub3QoOmZpcnN0LWNoaWxkLCA6bGFzdC1jaGlsZCk6OmFmdGVyLFxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0Zm9vdCB0ZDpub3QoOmZpcnN0LWNoaWxkLCA6bGFzdC1jaGlsZCk6OmFmdGVyIHtcbiAgICBib3R0b206IDA7XG4gIH1cbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGZvb3QgdGg6Zmlyc3QtY2hpbGQ6OmFmdGVyLCAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0Zm9vdCB0aDpsYXN0LWNoaWxkOjphZnRlcixcbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGZvb3QgdGQ6Zmlyc3QtY2hpbGQ6OmFmdGVyLFxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0Zm9vdCB0ZDpsYXN0LWNoaWxkOjphZnRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNGU0ZTQ7XG4gIH1cbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGZvb3QgdGg6Zmlyc3QtY2hpbGQ6OmFmdGVyLFxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0Zm9vdCB0ZDpmaXJzdC1jaGlsZDo6YWZ0ZXIge1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDhweDtcbiAgfVxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0Zm9vdCB0aDpsYXN0LWNoaWxkOjphZnRlcixcbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGZvb3QgdGQ6bGFzdC1jaGlsZDo6YWZ0ZXIge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA4cHg7XG4gIH1cbiAgLmMtdGFibGUtLXJlc3BvbnNpdmU6bm90KC5jLXRhYmxlLS1kYXRhLWNvbnRyb2xzKSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkOjphZnRlciwgLmMtdGFibGUtLXJlc3BvbnNpdmU6bm90KC5jLXRhYmxlLS1kYXRhLWNvbnRyb2xzKSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQ6OmFmdGVyLFxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZTpub3QoLmMtdGFibGUtLWRhdGEtY29udHJvbHMpIHRib2R5IHRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQ6OmFmdGVyLFxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZTpub3QoLmMtdGFibGUtLWRhdGEtY29udHJvbHMpIHRib2R5IHRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZDo6YWZ0ZXIge1xuICAgIGJvcmRlcjogMDsgLyogWzhdICovXG4gIH1cbiAgLmMtdGFibGUtLXJlc3BvbnNpdmU6bm90KC5jLXRhYmxlLS1kYXRhLWNvbnRyb2xzKSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkOjpiZWZvcmUsIC5jLXRhYmxlLS1yZXNwb25zaXZlOm5vdCguYy10YWJsZS0tZGF0YS1jb250cm9scykgdGJvZHkgdHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxkOjpiZWZvcmUsXG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlOm5vdCguYy10YWJsZS0tZGF0YS1jb250cm9scykgdGJvZHkgdHI6bGFzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZDo6YmVmb3JlLFxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZTpub3QoLmMtdGFibGUtLWRhdGEtY29udHJvbHMpIHRib2R5IHRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZDo6YmVmb3JlIHtcbiAgICBhbGw6IHVuc2V0OyAvKiBbN10gKi9cbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxMDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNGU0ZTQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbiAgLmMtdGFibGUtLXJlc3BvbnNpdmU6bm90KC5jLXRhYmxlLS1kYXRhLWNvbnRyb2xzKSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkOjpiZWZvcmUsXG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlOm5vdCguYy10YWJsZS0tZGF0YS1jb250cm9scykgdGJvZHkgdHI6bGFzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZDo6YmVmb3JlIHtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlNGU0ZTQ7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogOHB4O1xuICB9XG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlOm5vdCguYy10YWJsZS0tZGF0YS1jb250cm9scykgdGJvZHkgdHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxkOjpiZWZvcmUsXG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlOm5vdCguYy10YWJsZS0tZGF0YS1jb250cm9scykgdGJvZHkgdHI6bGFzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkOjpiZWZvcmUge1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlNGU0ZTQ7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDhweDtcbiAgfVxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0Ym9keSB0aDpmaXJzdC1jaGlsZDo6YmVmb3JlLCAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0Ym9keSB0aDpsYXN0LWNoaWxkOjpiZWZvcmUsXG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRib2R5IHRkOmZpcnN0LWNoaWxkOjpiZWZvcmUsXG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRib2R5IHRkOmxhc3QtY2hpbGQ6OmJlZm9yZSB7XG4gICAgYWxsOiB1bnNldDsgLyogWzddICovXG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogMXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7XG4gIH1cbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGJvZHkgdGg6Zmlyc3QtY2hpbGQ6OmJlZm9yZSxcbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGJvZHkgdGQ6Zmlyc3QtY2hpbGQ6OmJlZm9yZSB7XG4gICAgbGVmdDogMDtcbiAgfVxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0Ym9keSB0aDpsYXN0LWNoaWxkOjpiZWZvcmUsXG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRib2R5IHRkOmxhc3QtY2hpbGQ6OmJlZm9yZSB7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGJvZHkgdHI6bGFzdC1jaGlsZCA+ICo6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDhweDsgLyogWzZdICovXG4gIH1cbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdGJvZHkgdHI6bGFzdC1jaGlsZCA+ICo6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDhweDsgLyogWzZdICovXG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSB0ciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U0ZTRlNDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIH1cbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgdHIgKyB0ciB7XG4gICAgcGFkZGluZy10b3A6IDA7IC8qIFs5XSAqL1xuICB9XG4gIC5jLXRhYmxlLS1yZXNwb25zaXZlIHRhYmxlIHRib2R5ID4gdHI6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2U0ZTRlNDsgLyogWzldICovXG4gIH1cbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgW2RhdGEtY29sdW1uaGVhZGVyXTo6YWZ0ZXIge1xuICAgIGFsbDogdW5zZXQ7IC8qIFs3XSAqL1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTZweDtcbiAgICBib3R0b206IDE2cHg7XG4gICAgbGVmdDogY2FsYyg1MCUgLSAxNnB4KTtcbiAgICB3aWR0aDogMXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7XG4gIH1cbiAgLmMtdGFibGUtLXJlc3BvbnNpdmUgW2RhdGEtY29sdW1uaGVhZGVyXTpsYXN0LWNoaWxkOjpiZWZvcmUge1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDhweDtcbiAgfVxuICAuYy10YWJsZS0tcmVzcG9uc2l2ZSBbZGF0YS1jb2x1bW5oZWFkZXJdOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTRlNGU0O1xuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNUT0dHTEVcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4vKipcbiAqIFsxXSBIaWRlIG5hdGl2ZSBjaGVja2JveC5cbiAqIFsyXSBHaXZlIHNwYWNlIGZvciB0aGUgKGFic29sdXRlIHBvc2l0aW9uZWQpIHRvZ2dsZS5cbiAqIFszXSBWZXJ0aWNhbCBhbGlnbm1lbnQgZm9yIHRvZ2dsZSBhbmQgdGV4dC5cbiAqIFs0XSBDb3JyZWN0IGFsaWdubWVudC5cbiAqIFs1XSBSZWxhdGl2ZSBsYWJlbHMgdG8gaGVscCBwb3NpdGlvbiB0aGUgcHNldWRvIGVsZW1lbnRzLlxuICpcdCAgIFRoZSB6LWluZGV4IHdpbGwgYmUgaGFuZHkgbGF0ZXIsIHdoZW4gdGhlIGxhYmVscyB0aGF0IG92ZXJsYXAgdGhlIHZpc3VhbFxuICogICAgIHRvZ2dsZSBVSSBuZWVkIHRvIGJlIGFkanVzdGVkXG4gKlx0ICAgdG8gYWxsb3cgZm9yIGEgdXNlciB0byB0b2dnbGUgdGhlIHRvZ2dsZSB3aXRob3V0IGhhdmluZyB0byBtb3ZlIHRoZWlyXG4gKiAgICAgbW91c2UvZmluZ2VyIHRvIHRoZSBkaWZmZXJlbnQgc2lkZXMgb2YgdGhlIFVJLlxuICogWzZdIFRoZSBsYXJnZSBwYWRkaW5nIGlzIHVzZWQgdG8gcG9zaXRpb24gdGhlIGxhYmVscyBvbiB0b3Agb2YgdGhlIHZpc3VhbCBVSSxcbiAqICAgICBzbyB0aGUgdG9nZ2xlIFVJIGl0c2VsZiBjYW4gYmUgbW91c2UgY2xpY2tlZCBvciBmaW5nZXIgdGFwcGVkIHRvIHRvZ2dsZVxuICogICAgIHRoZSBjdXJyZW50IG9wdGlvbi5cbiAqIFs3XSBNb3ZlIHRoZSAybmQgbGFiZWwgdG8gaGF2ZSBhIGxvd2VyIHotaW5kZXgsIHNvIHdoZW4gdGhhdCBvcHRpb24gaXNcbiAqICAgICB0b2dnbGVkLCB0aGUgZmlyc3QgbGFiZWwgd2lsbCBvdmVybGF5IG9uIHRvcCBvZiB0aGUgdG9nZ2xlIHVpLCBhbmQgdGhlXG4gKiAgICAgdG9nZ2xlIGNhbiBiZSBwcmVzc2VkIGFnYWluIHRvIHRvZ2dsZSBiYWNrIHRvIHRoZSBwcmV2aW91cyBzdGF0ZS5cbiAqIFs4XSBQcmV2ZW50IHRleHQgc2VsZWN0aW9uIG9uIGZhc3QgZG91YmxlIGNsaWNrcy5cbiAqL1xuLmMtdG9nZ2xlIHtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuXG4uYy10b2dnbGVfX2lucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgaXRjc3Mvbm8tYXQtaW1wb3J0YW50ICovXG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gIC8qIFsxXSAqL1xufVxuLmMtdG9nZ2xlX19pbnB1dDpjaGVja2VkICsgLmMtdG9nZ2xlX190ZXh0Omxhc3QtY2hpbGQge1xuICAvKipcbiAgICogOmNoZWNrZWQgc3RhdGUuXG4gICAqL1xufVxuLmMtdG9nZ2xlX19pbnB1dDpjaGVja2VkICsgLmMtdG9nZ2xlX190ZXh0Omxhc3QtY2hpbGQ6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MTk0Njg7XG59XG4uYy10b2dnbGVfX2lucHV0OmNoZWNrZWQgKyAuYy10b2dnbGVfX3RleHQ6bGFzdC1jaGlsZDo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjhweCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG4uYy10b2dnbGUtLW9uLW9mZiAuYy10b2dnbGVfX2lucHV0OmNoZWNrZWQgKyAuYy10b2dnbGVfX3RleHQ6bGFzdC1jaGlsZCB7XG4gIC8qKlxuICAgKiA6Y2hlY2tlZCBzdGF0ZS5cbiAgICovXG59XG4uYy10b2dnbGUtLW9uLW9mZiAuYy10b2dnbGVfX2lucHV0OmNoZWNrZWQgKyAuYy10b2dnbGVfX3RleHQ6bGFzdC1jaGlsZDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuXG4uYy10b2dnbGVfX3RleHQge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogWzJdICovXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4OyAvKiBbM10gKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgLyogWzhdICovXG59XG4uYy10b2dnbGVfX3RleHQ6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cbi5jLXRvZ2dsZV9fdGV4dDpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy1sZWZ0OiA2MHB4OyAvKiBbMl0gKi9cbiAgLyoqXG4gICAqIFRoZSB0b2dnbGUgYmFyLlxuICAgKi9cbiAgLyoqXG4gICAqIFRoZSB0b2dnbGUgaGFuZGxlLlxuICAgKi9cbn1cbi5jLXRvZ2dsZV9fdGV4dDpsYXN0LWNoaWxkOjpiZWZvcmUsIC5jLXRvZ2dsZV9fdGV4dDpsYXN0LWNoaWxkOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uYy10b2dnbGVfX3RleHQ6bGFzdC1jaGlsZDo6YmVmb3JlIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMTAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDUycHg7XG4gIGhlaWdodDogMjRweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzdjN2Q3ZTtcbiAgdHJhbnNpdGlvbjogMTAwbXM7XG59XG4uYy10b2dnbGVfX3RleHQ6bGFzdC1jaGlsZDo6YWZ0ZXIge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgdG9wOiAzcHg7IC8qIFs0XSAqL1xuICBsZWZ0OiAzcHg7IC8qIFs0XSAqL1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmMtdG9nZ2xlX19pbnB1dDpmb2N1cy12aXNpYmxlIH4gOjpiZWZvcmUge1xuICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICMxNjE3MTg7XG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgLS1mb2N1cy1vdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgLS1mb2N1cy1vdXRsaW5lLXdpZHRoOiAycHg7XG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWZvY3VzLW91dGxpbmUtY29sb3IsICMxNjE3MTgpO1xuICBvdXRsaW5lLW9mZnNldDogdmFyKC0tZm9jdXMtb3V0bGluZS1vZmZzZXQsIDFweCk7XG4gIG91dGxpbmUtc3R5bGU6IHZhcigtLWZvY3VzLW91dGxpbmUtc3R5bGUsIHNvbGlkKTtcbiAgb3V0bGluZS13aWR0aDogdmFyKC0tZm9jdXMtb3V0bGluZS13aWR0aCwgMnB4KTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1BST0dSRVNTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIFJlc2V0IGJyb3dzZXItZGVmYXVsdCBzdHlsZXMuXG4gKiBbMl0gU2V0IHRyYWNrIGJhY2tncm91bmQuIE1haW5seSB1c2VkIGZvciBGaXJlZm94IGFzIEZpcmVmb3ggZG9lcyBub3Qgc3VwcG9ydFxuICogICAgIHBzZXVkbyBlbGVtZW50IGZvciB0cmFjay5cbiAqL1xuLmMtcHJvZ3Jlc3Mge1xuICAtLXByb2dyZXNzLXRyYWNrLWJhY2tncm91bmQ6ICNjNGM2Yzc7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYXBwZWFyYW5jZTogbm9uZTsgLyogWzFdICovXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDRweDtcbiAgYm9yZGVyOiAwOyAvKiBbMV0gKi9cbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcm9ncmVzcy10cmFjay1iYWNrZ3JvdW5kKTsgLyogWzJdICovXG4gIC8qKlxuICAgKiBbMV0gQ2hlY2sgaWYgYSB0aGVtZSBpcyBzZXQgb3IgaWYgdGhlIGRlZmF1bHQgdGhlbWUgKG51bGwpIGlzIHVzZWQuXG4gICAqICAgICBJZiB0aGUgYGRlZmF1bHRgIHRoZW1lIGlzIHVzZWQgd2UgZXhlY3V0ZSB0aGUgYWxyZWFkeSBwcmVzZW50IGxvZ2ljLFxuICAgKiAgICAgZWxzZSB3ZSBqdXN0IHJldHVybiB0aGUgY29udGVudCB1bndyYXBwZWQuXG4gICAqL1xuICAvKipcbiAgICogVFJBQ0sgKFwiYmFja2dyb3VuZClcbiAgICovXG4gIC8qKlxuICAgKiBWQUxVRSAoVGhlIFwiZmlsbGVkXCIgcGFydCBvZiB0aGUgcHJvZ3Jlc3MgYmFyKVxuICAgKi9cbiAgLyoqXG4gICAqIEZpcmVmb3gtc3BlY2lmaWMgc3R5bGluZy5cbiAgICpcbiAgICogRmlyZWZveCBzdXBwb3J0cyBvbmx5IGEgcHNldWRvIGVsZW1lbnQgZm9yIHZhbHVlLlxuICAgKiBUaGUgdHJhY2sgYmFja2dyb3VuZCBpcyBzdHlsZWQgdmlhIHRoZSBgPHByb2dyZXNzPmAgZWxlbWVudCBbMl0uXG4gICAqL1xufVxuLyogWzFdICovXG5bZGF0YS10aGVtZT1hbHRlcm5hdGl2ZV0gLmMtcHJvZ3Jlc3Mge1xuICAtLXByb2dyZXNzLXRyYWNrLWJhY2tncm91bmQ6ICNmZmZmZmY7XG59XG5cbi5jLXByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLWJhciB7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJvZ3Jlc3MtdHJhY2stYmFja2dyb3VuZCk7IC8qIFsyXSAqL1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi8qIFsxXSAqL1xuW2RhdGEtdGhlbWU9YWx0ZXJuYXRpdmVdIC5jLXByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLWJhciB7XG4gIC0tcHJvZ3Jlc3MtdHJhY2stYmFja2dyb3VuZDogI2ZmZmZmZjtcbn1cblxuLmMtcHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xuICAtLXByb2dyZXNzLXZhbHVlLWJhY2tncm91bmQ6ICM0MTk0Njg7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByb2dyZXNzLXZhbHVlLWJhY2tncm91bmQpO1xufVxuLmlzLXN1Y2Nlc3MuYy1wcm9ncmVzczo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSB7XG4gIC0tcHJvZ3Jlc3MtdmFsdWUtYmFja2dyb3VuZDogIzQxOTQ2ODtcbn1cblxuLmlzLWVycm9yLmMtcHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xuICAtLXByb2dyZXNzLXZhbHVlLWJhY2tncm91bmQ6ICNlODJiMzc7XG59XG5cbi5jLXByb2dyZXNzOjotbW96LXByb2dyZXNzLWJhciB7XG4gIC0tcHJvZ3Jlc3MtdmFsdWUtYmFja2dyb3VuZDogIzQxOTQ2ODtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcm9ncmVzcy12YWx1ZS1iYWNrZ3JvdW5kKTtcbn1cbi5pcy1zdWNjZXNzLmMtcHJvZ3Jlc3M6Oi1tb3otcHJvZ3Jlc3MtYmFyIHtcbiAgLS1wcm9ncmVzcy12YWx1ZS1iYWNrZ3JvdW5kOiAjNDE5NDY4O1xufVxuXG4uaXMtZXJyb3IuYy1wcm9ncmVzczo6LW1vei1wcm9ncmVzcy1iYXIge1xuICAtLXByb2dyZXNzLXZhbHVlLWJhY2tncm91bmQ6ICNlODJiMzc7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNQUklDRSAoU2V0dGluZ3MpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIFJlc2V0IGRlZmF1bHQgbWFyZ2luLlxuICogWzJdIEVuc3VyZSBjcm9zc2VkLW91dCB0ZXh0IGlmIGA8cz5gIGlzIG5vdCB1c2VkIG9yXG4gKiAgICAgVXNlci1BZ2VudCBzdHlsZXMgYXJlIG5vdCBhcHBsaWVkLlxuICogWzNdIEVuc3VyZSBwcmljZSBub3QgZ2V0dGluZyB3cmFwcGVkLlxuICogWzRdIExpbWl0IHRoZSBhZGRpdGlvbmFsIGluZm8gdGV4dC1sZW5ndGggd2hlbiBjb250YWluZXJcbiAqICAgICBpcyBkaXNwbGF5ZWQgd2l0aCBhIGxhcmdlIHdpZHRoIHRvXG4gICAgKiAgICAgYSkgaW1wcm92ZSByZWFkYWJpbGl0eVxuICAgICogICAgIGIpIGtlZXAgXCJ2aXN1YWwgY29ubmVjdGlvblwiIHRvIHByaWNlIGluZm9ybWF0aW9uIGFib3ZlXG4gKiBbNV0gQWxsb3cgd3JhcHBpbmcgaW4gY2FzZSBkaXNjb3VudCB2YWx1ZSAmIHByaWNlIGNhbiBub3QgYmUgZGlzcGxheWVkXG4gKiAgICAgc2lkZS1ieS1zaWRlLlxuICogWzZdIFdyYXAgdGV4dCBpbiBleHRyYSBjb250YWluZXIgdG8gYXZvaWQgb3ZlcmZsb3cgYW5kIHN0aWxsIG1haW50YWluXG4gKiAgICAgdGV4dCBsaW1pdGF0aW9uIHZpYSBgbWF4LWxlbmd0aGAuXG4gKiBbN10gU2V0IGBtYXgtd2lkdGg6IDEwMCVgIHRvIGF2b2lkIHRleHQgb3ZlcmZsb3cuXG4gKiAgICAgaHR0cHM6Ly9naXRodWIuY29tL3BoaWxpcHdhbHRvbi9mbGV4YnVncyNmbGV4YnVnLTJcbiAqIFs4XSBDb25kaXRpb25hbGx5IG91dHB1dCBvbmx5IHNoYWRvdyAob3ZlcndyaXRlKSB3aGVuIHNoYWRvdyBpcyBzZXQgaW5pdGlhbGx5XG4gKiAgICAgc2V0IGluIGJhc2UgdmFyaWFudC5cbiAqIFs5XSBJdOKAmXMgZWFzaWVyIHRvIGNvbnRyb2wgZWxlbWVudHMgaW4gYC5jLXByaWNlLWJveF9fYm9keV9fY29udGVudGAgYXNcbiAqICAgICAgZmxleCBpdGVtcyAoZS5nLiBgbWFyZ2luYCBmb3IgYHNwYW5gcykuXG4gKiBbMTBdIFNoaWZ0IHRoZSB0ZXh0IGp1c3QgYSBsaXR0bGUgYml0IHVwd2FyZHMgdG93YXJkcyB0aGUgcHJpY2UuIFdlIGFyZVxuICogICAgICB1c2luZyB0aGUgU2FzcyBgb3JgIG9wZXJhdG9yIGhlcmUgdG8gYXZvaWQgYSBsb25nIHRlcm5hcnkgY29uZGl0aW9uLlxuICogWzExXSBDb25zaXN0ZW50IHZlcnRpY2FsIHNwYWNpbmcgYmV0d2VlbiBib2R5IGNvbnRlbnQgaXRlbXMuXG4gKiBbMTJdIFJlZHVjZSBzcGFjaW5nIGFuZCBmb250LXNpemUgd2hlbiBjb250YWluZXIgaGFzIGEgc21hbGwgd2lkdGguXG4gKiBbMTNdIFJlc2V0IHNwYWNpbmcgYW5kIGZvbnQtc2l6ZSB3aGVuIGNvbnRhaW5lciBoYXMgYSBiaWdnZXIgd2lkdGguXG4gKi9cbi5jLXByaWNlLWJveCB7XG4gIC0tY29udGFpbmVyLXdpZHRoczogXCIwIDI2MFwiO1xuICBib3gtc2hhZG93OiAwIDAgNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbi5jLXByaWNlLWJveFtkYXRhLWNvbnRhaW5lci13aWR0aH49XCIwXCJdIC5jLXByaWNlLWJveF9fYm9keSB7XG4gIHBhZGRpbmc6IDI0cHggMTZweDsgLyogWzEyXSAqL1xufVxuLmMtcHJpY2UtYm94W2RhdGEtY29udGFpbmVyLXdpZHRofj1cIjBcIl0gLmMtcHJpY2UtYm94X19wcmljZSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC8qIFsxMl0gKi9cbn1cbi5jLXByaWNlLWJveFtkYXRhLWNvbnRhaW5lci13aWR0aH49XCIyNjBcIl0gLmMtcHJpY2UtYm94X19oZWFkZXIge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG4uYy1wcmljZS1ib3hbZGF0YS1jb250YWluZXItd2lkdGh+PVwiMjYwXCJdIC5jLXByaWNlLWJveF9fYm9keSB7XG4gIHBhZGRpbmc6IDE2cHg7IC8qIFsxM10gKi9cbn1cbi5jLXByaWNlLWJveFtkYXRhLWNvbnRhaW5lci13aWR0aH49XCIyNjBcIl0gLmMtcHJpY2UtYm94X19wcmljZSB7XG4gIGZvbnQtc2l6ZTogMS40Mzc1cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cbi5jLXByaWNlLWJveC5jLXByaWNlLWJveC0taW50ZWdyYXRlZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7IC8qIFs4XSAqL1xufVxuXG4uYy1wcmljZS1ib3hfX2hlYWRlciB7XG4gIHBhZGRpbmc6IDhweCAyNHB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MTk0Njg7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmMtcHJpY2UtYm94LS1pbnRlZ3JhdGVkIC5jLXByaWNlLWJveF9faGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0MTk0Njg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzE2MTcxODtcbn1cblxuLmMtcHJpY2UtYm94X19ib2R5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDhkOGQ4O1xuICBjb2xvcjogIzE2MTcxODtcbn1cbi5jLXByaWNlLWJveC0taW50ZWdyYXRlZCAuYy1wcmljZS1ib3hfX2JvZHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmMtcHJpY2UtYm94X19ib2R5X19jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDsgLyogWzldICovXG4gIC8qIFsxMV0gKi9cbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgLyogWzldICovXG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5jLXByaWNlLWJveF9fZGlzY291bnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDhweDtcbiAgZmxleC13cmFwOiB3cmFwOyAvKiBbNV0gKi9cbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuXG4uYy1wcmljZS1ib3hfX2Rpc2NvdW50X19vbGQtcHJpY2Uge1xuICBmb250LXNpemU6IDFyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOyAvKiBbMl0gKi9cbn1cblxuLmMtcHJpY2UtYm94X19wcmljZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4uYy1wcmljZS1ib3hfX3ByaWNlLFxuLmMtcHJpY2UtYm94X19kaXNjb3VudF9fb2xkLXByaWNlIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLyogWzNdICovXG59XG5cbi5jLXByaWNlLWJveF9fcHJpY2UgfiAuYy1wcmljZS1ib3hfX3RleHQge1xuICBtYXJnaW4tdG9wOiAtMC4xNWVtOyAvKiBbMTBdICovXG59XG5cbi5jLXByaWNlLWJveF9fYWRkaXRpb25hbC1pbmZvIHtcbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiBbN10gKi9cbiAgbWFyZ2luLXRvcDogNHB4O1xufVxuXG4vKiBbNl0gKi9cbi5jLXByaWNlLWJveF9fYWRkaXRpb25hbC1pbmZvX190ZXh0IHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBtYXgtd2lkdGg6IDUwY2g7IC8qIFs0XSAqL1xuICBmb250LXdlaWdodDogNDAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLmMtcHJpY2UtYm94X19hZGRpdGlvbmFsLWluZm9fX3RleHQ6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8qIFsxXSAqL1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjVVBMT0FEXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogVXBsb2FkIGNvbXBvbmVudCB3aGljaCB1dGlsaXplcyB0aGUgbmF0aXZlIGA8aW5wdXQgdHlwZT1cImZpbGVcIj5gIGVsZW1lbnQuXG4gKiBJdOKAmXMgcHJlcGFyZWQgdG8gYmUgdXNlZCB3aXRoIGRyYWctYW5kLWRyb3AgSlMgZXh0ZW5zaW9ucyBpbiBwcm92aWRpbmdcbiAqIGEgYC5oYXMtbW91c2VvdmVyYCBzdGF0ZSBjbGFzcyB3aGVuIGEgZmlsZSBpcyBkcmFnZ2VkIHVwb24gdGhlIHVwbG9hZFxuICogY29udGFpbmVyLlxuICovXG4vKipcbiAqIFsxXSBSZXNldCBkZWZhdWx0IGA8bGFiZWw+YCBzcGFjaW5nLlxuICogWzJdIFJlZmVyZW5jZSBmb3IgdGhlIG1vdXNlb3ZlciBlbGVtZW50LlxuICogWzNdIERpc2FibGUgdGhlIGlucHV0IChpLmUuIHVwbG9hZCBmdW5jdGlvbikgd2hlbiBsb2FkaW5nIG9yIGRpc2FibGVkLlxuICogWzRdIEhpZGUgb3JpZ2luYWwgYDxpbnB1dD5gIGJ1dCBrZWVwIGl0IGFjY2Vzc2libGUuXG4gKiBbNV0gSnVzdCBoaWRlIHZpc3VhbGx5LCBzbyB0aGUgaGVpZ2h0IG9mIHRoZSBjb250YWluZXIgZG9lcyBub3QgY2hhbmdlLlxuICogWzZdIENyZWF0ZSBhIHBhZGRpbmcgZm9yIHRoZSBtb3VzZW92ZXIgZWxlbWVudCBieSB1c2luZyB0aGUgY2FsYyBmdW5jdGlvblxuICogICAgIGZvciB0aGUgd2lkdGggcHJvcGVydHkuIFNpbmNlIHRoaXMgZWxlbWVudCBpcyBwb3NpdGlvbmVkIGBhYnNvbHV0ZWAsXG4gKiAgICAgYSB3aWR0aCBvZiBgMTAwJWAgd291bGRu4oCZdCB3b3JrLiBUaGF04oCZcyB3aHkgd2Ugc3VidHJhY3QgdGhlIHRoZSBwYWRkaW5nXG4gKiAgICAgdmFsdWUgb2ZmIG9mIGJvdGggc2lkZXMuXG4gKiBbN10gQ2VudGVyIHRoZSBzdGF0ZSBlbGVtZW50cyBpbnNpZGUgdGhlIHVwbG9hZCBjb250YWluZXIuXG4gKiAgICAgQXZvaWRzIGxheW91dCBzaGlmdCBieSBwb3NpdGlvbmluZyBtYW51YWxseSAoc2VlIFs1XSkuXG4gKiBbOF0gT3ZlcnJpZGUgdGhlIGJ1dHRvbnMgZGVmYXVsdCB0cmFuc2l0aW9uIHNvIGl0IGRvZXNu4oCZdCBsb29rIHdlaXJkLlxuICogWzldIEl0IHdvdWxkIHdvcmsgdG8gb21pdCB0aGUgYGxlZnRgIGRlY2xhcmF0aW9uLCBob3dldmVyIGl0IGlzIGFkdmlzZWQgdG9cbiAqICAgICBhbHdheXMgYXBwbHkgYSBgbGVmdGAgKG9yIGByaWdodGApIHZhbHVlIHRvIGFuIGBhYnNvbHV0ZWAgcG9zaXRpb25lZFxuICogICAgIGVsZW1lbnQuIEEgdmFsdWUgb2YgYDBgIHdvdWxkbuKAmXQgd29yayBjb3JyZWN0bHksIHNvIHdlIHVzZSB0aGUgcGFkZGluZ1xuICogICAgIHZhbHVlIGluc3RlYWQuXG4gKiBbMTBdIFBsYWNlIGAuYy11cGxvYWRfX2lucHV0YCBvdmVyIHRoZSBlbnRpcmUgdXBsb2FkIGNvbXBvbmVudCB0byBhbGxvdyBkcmFnXG4gKiAgICAgIGFuZCBkcm9wIG9mIGZpbGVzIG9udG8gdGhlIGZpbGUgaW5wdXQgZmllbGQuIFRoaXMgaXMgb25seSBkb25lIHdoZW4gbm9cbiAqICAgICAgaG92ZXJpbmcgdGFrZXMgcGxhY2UgdG8gYWxsb3cgaW50ZXJhY3Rpbmcgd2l0aCBidXR0b25zIChvciBvdGhlclxuICogICAgICBlbGVtZW50cykgaW5zaWRlIHRoZSBjb21wb25lbnQuXG4gKiBbMTFdIERpc2FibGVkIHZhcmlhbnQgc3R5bGVzIGZvciBicm93c2VyIHdoaWNoIGRvIG5vdCBzdXBwb3J0IGA6aGFzYCB5ZXQuXG4gKi9cbi5jLXVwbG9hZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogWzJdICovXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbMV0gKi9cbiAgcGFkZGluZzogMjRweCAyNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5jLXVwbG9hZDo6YWZ0ZXIsIC5jLXVwbG9hZDo6YmVmb3JlIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM3YzdkN2U7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgb3BhY2l0eTogMDtcbn1cbi5jLXVwbG9hZDo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5jLXVwbG9hZDo6YWZ0ZXIge1xuICBib3JkZXItY29sb3I6ICMxNjE3MTg7XG59XG4uYy11cGxvYWQ6bm90KC5oYXMtbW91c2VvdmVyKTpob3Zlcjo6YWZ0ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLmMtdXBsb2FkOm5vdCguaGFzLW1vdXNlb3Zlcik6aG92ZXI6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDA7XG59XG4uYy11cGxvYWQ6Zm9jdXMsIC5jLXVwbG9hZDphY3RpdmUge1xuICBib3JkZXI6ICM0MTk0Njg7XG59XG4uYy11cGxvYWQuaGFzLW1vdXNlb3Zlcjo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMDtcbiAgYm9yZGVyLXdpZHRoOiAycHg7XG59XG4uYy11cGxvYWQuaGFzLW1vdXNlb3Zlcjo6YWZ0ZXIge1xuICBvcGFjaXR5OiAxO1xuICBib3JkZXItY29sb3I6ICM0MTk0Njg7XG59XG4uYy11cGxvYWQuaXMtbG9hZGluZyxcbi5jLXVwbG9hZC5pcy1sb2FkaW5nIC5jLXVwbG9hZF9faW5wdXQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogWzNdICovXG59XG4uYy11cGxvYWQuaGFzLW1vdXNlb3ZlciAuYy11cGxvYWRfX2Rlc2NyaXB0aW9uLFxuLmMtdXBsb2FkLmhhcy1tb3VzZW92ZXIgLmMtdXBsb2FkX19hY3Rpb25zLCAuYy11cGxvYWQuaXMtbG9hZGluZyAuYy11cGxvYWRfX2Rlc2NyaXB0aW9uLFxuLmMtdXBsb2FkLmlzLWxvYWRpbmcgLmMtdXBsb2FkX19hY3Rpb25zIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyAvKiBbNV0gKi9cbn1cbi5jLXVwbG9hZDpoYXMoLmMtdXBsb2FkX19pbnB1dDphY3RpdmUpOjpiZWZvcmUsIC5jLXVwbG9hZDpoYXMoLmMtdXBsb2FkX19pbnB1dDphY3RpdmUpOjphZnRlciB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uYy11cGxvYWQ6aGFzKC5jLXVwbG9hZF9faW5wdXRbZGlzYWJsZWRdKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbM10gKi9cbn1cbi5jLXVwbG9hZDpoYXMoLmMtdXBsb2FkX19pbnB1dFtkaXNhYmxlZF0pOjpiZWZvcmUsIC5jLXVwbG9hZDpoYXMoLmMtdXBsb2FkX19pbnB1dFtkaXNhYmxlZF0pOjphZnRlciB7XG4gIGJvcmRlci1jb2xvcjogIzllOWZhMDtcbn1cbi5jLXVwbG9hZDpoYXMoLmMtdXBsb2FkX19pbnB1dFtkaXNhYmxlZF0pIC5jLXVwbG9hZF9fZGlzYWJsZWQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5jLXVwbG9hZDpoYXMoLmMtdXBsb2FkX19pbnB1dFtkaXNhYmxlZF0pIC5jLXVwbG9hZF9fZGVzY3JpcHRpb24sXG4uYy11cGxvYWQ6aGFzKC5jLXVwbG9hZF9faW5wdXRbZGlzYWJsZWRdKSAuYy11cGxvYWRfX2FjdGlvbnMge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IC8qIFs1XSAqL1xufVxuLmMtdXBsb2FkLmlzLWRpc2FibGVkIHsgLyogWzExXSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xufVxuLmMtdXBsb2FkLmlzLWRpc2FibGVkOjpiZWZvcmUsIC5jLXVwbG9hZC5pcy1kaXNhYmxlZDo6YWZ0ZXIge1xuICBib3JkZXItY29sb3I6ICM5ZTlmYTA7XG59XG4uYy11cGxvYWQuaXMtZGlzYWJsZWQsXG4uYy11cGxvYWQuaXMtZGlzYWJsZWQgLmMtdXBsb2FkX19pbnB1dCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmMtdXBsb2FkLmlzLWRpc2FibGVkIC5jLXVwbG9hZF9fZGlzYWJsZWQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5jLXVwbG9hZC5pcy1kaXNhYmxlZCAuYy11cGxvYWRfX2Rlc2NyaXB0aW9uLFxuLmMtdXBsb2FkLmlzLWRpc2FibGVkIC5jLXVwbG9hZF9fYWN0aW9ucyB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLmMtdXBsb2FkX19pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLyogWzRdICovXG4gIHotaW5kZXg6IC0xOyAvKiBbNF0gKi9cbiAgd2lkdGg6IDAuMXB4OyAvKiBbNF0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY2FsZS11bmxpbWl0ZWQvZGVjbGFyYXRpb24tc3RyaWN0LXZhbHVlICovXG4gIGhlaWdodDogMC4xcHg7IC8qIFs0XSAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjYWxlLXVubGltaXRlZC9kZWNsYXJhdGlvbi1zdHJpY3QtdmFsdWUgKi9cbiAgb3BhY2l0eTogMDsgLyogWzRdICovXG4gIG92ZXJmbG93OiBoaWRkZW47IC8qIFs0XSAqL1xufVxuLmMtdXBsb2FkOm5vdCg6aG92ZXIpIC5jLXVwbG9hZF9faW5wdXQge1xuICB6LWluZGV4OiAxOyAvKiBbMTBdICovXG4gIHRvcDogMDsgLyogWzEwXSAqL1xuICBsZWZ0OiAwOyAvKiBbMTBdICovXG4gIHdpZHRoOiAxMDAlOyAvKiBbMTBdICovXG4gIGhlaWdodDogMTAwJTsgLyogWzEwXSAqL1xufVxuXG4uYy11cGxvYWRfX2Rlc2NyaXB0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5jLXVwbG9hZF9fZGVzY3JpcHRpb24tdGV4dCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtdXBsb2FkX19kZXNjcmlwdGlvbi10ZXh0Om5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYy11cGxvYWRfX2Rlc2NyaXB0aW9uLXN1cHBsZW1lbnRhcnktdGV4dCB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXdlaWdodDogMzAwO1xuICBjb2xvcjogIzE2MTcxODtcbn1cblxuLmMtdXBsb2FkX19pY29uIHtcbiAgZm9udC1mYW1pbHk6IFwiYnJvbnNvbi1za29kYVwiICFpbXBvcnRhbnQ7IC8qIFsxXSAqL1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uYy11cGxvYWRfX2ljb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBkXCI7XG59XG5cbi5jLXVwbG9hZF9fbW91c2VvdmVyLFxuLmMtdXBsb2FkX19sb2FkZXIsXG4uYy11cGxvYWRfX2Rpc2FibGVkIHtcbiAgcG9zaXRpb246IGFic29sdXRlOyAvKiBbN10gKi9cbiAgdG9wOiA1MCU7IC8qIFs3XSAqL1xuICBsZWZ0OiAyNHB4OyAvKiBbOV0gKi9cbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAoNDhweCkpOyAvKiBbNl0gKi9cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyAvKiBbN10gKi9cbn1cblxuLmMtdXBsb2FkX19tb3VzZW92ZXIge1xuICBjb2xvcjogIzE2MTcxODtcbn1cbi5jLXVwbG9hZDpub3QoLmhhcy1tb3VzZW92ZXIpIC5jLXVwbG9hZF9fbW91c2VvdmVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jLXVwbG9hZF9fbW91c2VvdmVyID4gKjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmMtdXBsb2FkX19tb3VzZW92ZXItaWNvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogXCJicm9uc29uLXNrb2RhXCIgIWltcG9ydGFudDsgLyogWzFdICovXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtdXBsb2FkX19tb3VzZW92ZXItaWNvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODJcIjtcbn1cblxuLmMtdXBsb2FkX19tb3VzZW92ZXItdGV4dCB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG4uYy11cGxvYWRfX2xvYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmMtdXBsb2FkOm5vdCguaXMtbG9hZGluZykgLmMtdXBsb2FkX19sb2FkZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uYy11cGxvYWRfX2xvYWRlci10ZXh0IHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG5cbi5jLXVwbG9hZF9fZGlzYWJsZWQge1xuICBkaXNwbGF5OiBub25lO1xuICBjb2xvcjogIzllOWZhMDtcbn1cblxuLmMtdXBsb2FkX19kaXNhYmxlZC1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJicm9uc29uLXNrb2RhXCIgIWltcG9ydGFudDsgLyogWzFdICovXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzllOWZhMDtcbn1cbi5jLXVwbG9hZF9fZGlzYWJsZWQtaWNvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxN2FcIjtcbn1cblxuLmMtdXBsb2FkX19kaXNhYmxlZC10ZXh0IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5jLXVwbG9hZF9fZGlzYWJsZWQtdGV4dDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmMtdXBsb2FkX19kaXNhYmxlZC1zdXBwbGVtZW50YXJ5LXRleHQge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgY29sb3I6ICM5ZTlmYTA7XG59XG5cbi5jLXVwbG9hZF9fYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAxNnB4O1xufVxuXG4uYy11cGxvYWRfX2J1dHRvbiB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4uaGFzLW1vdXNlb3ZlciAuYy11cGxvYWRfX2J1dHRvbiB7XG4gIHRyYW5zaXRpb246IDBzOyAvKiBbOF0gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1VQTE9BRC1JVEVNXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIEFsd2F5cyBzdHJldGNoIHRoZSBjb250ZW50IHRvIGZ1bGwtd2lkdGguXG4gKiBbMl0gQnJlYWsgbG9uZyBmaWxlIG5hbWVzIGludG8gbXVsdGlsaW5lLlxuICogWzNdIERvbuKAmXQgd3JhcCBpY29ucyBpbnRvIG11bHRpbGluZS5cbiAqIFs0XSBIaWRlIGZpbGUgaWNvbiBpZiBgJHVwbG9hZC1pdGVtLWljb24taXMtaGlkZGVuOiB0cnVlYC5cbiAqIFs1XSBQbGFjZSB0aGUgaW1hZ2UgYmVsb3cgb24gc21hbGwgdmlld3BvcnRzLlxuICogWzZdIEFsaWduIGl0ZW1zIGFjcm9zcyB0aGUgcm93LlxuICogWzddIE1ha2Ugc3VyZSB0aGUgaW1hZ2UgaGFzIHByb3BlciBkaW1lbnNpb25zLlxuICogWzhdIFJlbW92ZSBsaW5rIGJvcmRlciBmb3IgYnJhbmRzIHdpdGggYm9yZGVyIHNldC5cbiAqL1xuLmMtdXBsb2FkLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLXVwbG9hZC1pdGVtLmMtdXBsb2FkLWl0ZW0tLXByZXZpZXcge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgLyogWzVdICovXG4gICAgYWxpZ24taXRlbXM6IGluaXRpYWw7IC8qIFs2XSAqL1xuICB9XG59XG5cbi5jLXVwbG9hZC1pdGVtX19pY29uIHtcbiAgZm9udC1zaXplOiAycmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIGNvbG9yOiAjNDE5NDY4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLXVwbG9hZC1pdGVtX19pY29uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5jLXVwbG9hZC1pdGVtX19jb250ZW50IHtcbiAgZmxleC1ncm93OiAxOyAvKiBbMV0gKi9cbiAgZmxleC1zaHJpbms6IDE7XG4gIGZsZXgtYmFzaXM6IGF1dG87XG59XG5cbi5jLXVwbG9hZC1pdGVtX190aXRsZS1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5jLXVwbG9hZC1pdGVtX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgZmxleC1ncm93OiAwO1xuICBmbGV4LXNocmluazogMTtcbiAgZmxleC1iYXNpczogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgd29yZC1icmVhazogYnJlYWstYWxsOyAvKiBbMl0gKi9cbn1cblxuLmMtdXBsb2FkLWl0ZW1fX3Byb2dyZXNzIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogMTJweDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLmMtdXBsb2FkLWl0ZW0uaXMtbG9hZGluZyAuYy11cGxvYWQtaXRlbV9fcHJvZ3Jlc3MsIC5jLXVwbG9hZC1pdGVtLmlzLXN1Y2Nlc3MgLmMtdXBsb2FkLWl0ZW1fX3Byb2dyZXNzLCAuYy11cGxvYWQtaXRlbS5pcy1lcnJvciAuYy11cGxvYWQtaXRlbV9fcHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmMtdXBsb2FkLWl0ZW1fX3N1YnRpdGxlLXJvdyB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLmMtdXBsb2FkLWl0ZW1fX2ludGVyYWN0aW9uLWljb25zIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZ3JvdzogMDtcbiAgZmxleC1zaHJpbms6IDA7IC8qIFszXSAqL1xuICBmbGV4LWJhc2lzOiBhdXRvO1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy11cGxvYWQtaXRlbV9faW50ZXJhY3Rpb24taWNvbnMge1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICB9XG59XG5cbi5jLXVwbG9hZC1pdGVtX19pbnRlcmFjdGlvbi1pY29uLFxuLmMtdXBsb2FkLWl0ZW1fX3N0YXR1cy1pY29uIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG4uYy11cGxvYWQtaXRlbV9faW50ZXJhY3Rpb24taWNvbjo6YmVmb3JlLFxuLmMtdXBsb2FkLWl0ZW1fX3N0YXR1cy1pY29uOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcImJyb25zb24tc2tvZGFcIiAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtdXBsb2FkLWl0ZW1fX2ludGVyYWN0aW9uLWljb246bm90KDpmaXJzdC1jaGlsZCksXG4uYy11cGxvYWQtaXRlbV9fc3RhdHVzLWljb246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy11cGxvYWQtaXRlbV9faW50ZXJhY3Rpb24taWNvbjpub3QoOmZpcnN0LWNoaWxkKSxcbiAgLmMtdXBsb2FkLWl0ZW1fX3N0YXR1cy1pY29uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgfVxufVxuXG4uYy11cGxvYWQtaXRlbV9faW50ZXJhY3Rpb24taWNvbiB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmMtdXBsb2FkLWl0ZW0uaXMtZXJyb3IgLmMtdXBsb2FkLWl0ZW1fX2ludGVyYWN0aW9uLWljb24tLW1haW4sIC5jLXVwbG9hZC1pdGVtLmlzLXN1Y2Nlc3MgLmMtdXBsb2FkLWl0ZW1fX2ludGVyYWN0aW9uLWljb24tLW1haW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmMtdXBsb2FkLWl0ZW1fX2ludGVyYWN0aW9uLWljb24tLW1haW46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQ0XCI7XG59XG4uYy11cGxvYWQtaXRlbS5pcy1sb2FkaW5nIC5jLXVwbG9hZC1pdGVtX19pbnRlcmFjdGlvbi1pY29uLS1tYWluOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1YVwiO1xufVxuXG4uYy11cGxvYWQtaXRlbS5pcy1sb2FkaW5nIC5jLXVwbG9hZC1pdGVtX19pbnRlcmFjdGlvbi1pY29uLS1zZWNvbmRhcnksIC5jLXVwbG9hZC1pdGVtLmlzLWVycm9yIC5jLXVwbG9hZC1pdGVtX19pbnRlcmFjdGlvbi1pY29uLS1zZWNvbmRhcnksIC5jLXVwbG9hZC1pdGVtLmlzLXN1Y2Nlc3MgLmMtdXBsb2FkLWl0ZW1fX2ludGVyYWN0aW9uLWljb24tLXNlY29uZGFyeSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYy11cGxvYWQtaXRlbV9faW50ZXJhY3Rpb24taWNvbi0tc2Vjb25kYXJ5OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwOFwiO1xufVxuXG4uYy11cGxvYWQtaXRlbV9fc3RhdHVzLWljb24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmMtdXBsb2FkLWl0ZW0uaXMtc3VjY2VzcyAuYy11cGxvYWQtaXRlbV9fc3RhdHVzLWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cbi5jLXVwbG9hZC1pdGVtLmlzLXN1Y2Nlc3MgLmMtdXBsb2FkLWl0ZW1fX3N0YXR1cy1pY29uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0NlwiO1xuICBjb2xvcjogIzM3ZDAwMjtcbn1cbi5jLXVwbG9hZC1pdGVtLmlzLWVycm9yIC5jLXVwbG9hZC1pdGVtX19zdGF0dXMtaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuLmMtdXBsb2FkLWl0ZW0uaXMtZXJyb3IgLmMtdXBsb2FkLWl0ZW1fX3N0YXR1cy1pY29uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3YVwiO1xuICBjb2xvcjogI2U4MmIzNztcbn1cblxuLmMtdXBsb2FkLWl0ZW1fX2ZpbGVzaXplLXByb2dyZXNzIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jLXVwbG9hZC1pdGVtLmlzLWxvYWRpbmcgLmMtdXBsb2FkLWl0ZW1fX2ZpbGVzaXplLXByb2dyZXNzLCAuYy11cGxvYWQtaXRlbS5pcy1zdWNjZXNzIC5jLXVwbG9hZC1pdGVtX19maWxlc2l6ZS1wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLmMtdXBsb2FkLWl0ZW0uaXMtZXJyb3IgLmMtdXBsb2FkLWl0ZW1fX2ZpbGVzaXplIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmMtdXBsb2FkLWl0ZW1fX21lc3NhZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5jLXVwbG9hZC1pdGVtLmlzLXN1Y2Nlc3MgLmMtdXBsb2FkLWl0ZW1fX21lc3NhZ2UsXG4uYy11cGxvYWQtaXRlbS5pcy1zdWNjZXNzIC5jLXVwbG9hZC1pdGVtX19tZXNzYWdlIGEge1xuICBjb2xvcjogIzM3ZDAwMjtcbn1cbi5jLXVwbG9hZC1pdGVtLmlzLWVycm9yIC5jLXVwbG9hZC1pdGVtX19tZXNzYWdlLFxuLmMtdXBsb2FkLWl0ZW0uaXMtZXJyb3IgLmMtdXBsb2FkLWl0ZW1fX21lc3NhZ2UgYSB7XG4gIGNvbG9yOiAjZTgyYjM3O1xufVxuXG4uYy11cGxvYWQtaXRlbV9faW1hZ2Utd3JhcHBlciB7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuYy11cGxvYWQtaXRlbV9faW1hZ2Utd3JhcHBlciB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cblxuLmMtdXBsb2FkLWl0ZW1fX2ltYWdlIHtcbiAgd2lkdGg6IDgwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtdXBsb2FkLWl0ZW1fX2ltYWdlIHtcbiAgICB3aWR0aDogNjBweDtcbiAgfVxufVxuXG4uYy11cGxvYWQtaXRlbV9faW1hZ2UtbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyOiAwOyAvKiBbOF0gKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYy11cGxvYWQtaXRlbV9faW1hZ2UtbGluazpmb2N1cy12aXNpYmxlIHtcbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjMTYxNzE4O1xuICAtLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiAycHg7XG4gIC0tZm9jdXMtb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIC0tZm9jdXMtb3V0bGluZS13aWR0aDogMnB4O1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb2N1cy1vdXRsaW5lLWNvbG9yLCAjMTYxNzE4KTtcbiAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWZvY3VzLW91dGxpbmUtb2Zmc2V0LCAxcHgpO1xuICBvdXRsaW5lLXN0eWxlOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXN0eWxlLCBzb2xpZCk7XG4gIG91dGxpbmUtd2lkdGg6IHZhcigtLWZvY3VzLW91dGxpbmUtd2lkdGgsIDJweCk7XG59XG5cbi8qKlxuICogU3dpdGNoIGZpbGUgaWNvbiBieSBmaWxlIHR5cGVzXG4gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNVUExPQUQtSVRFTVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBBdm9pZCBkdXBsaWNhdGVkIG91dGxpbmUuXG4gKi9cbi5jLXVwbG9hZC1pdGVtX190aXRsZS1yb3cge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uYy11cGxvYWQtaXRlbV9faW50ZXJhY3Rpb24taWNvbiB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgc2NhbGU6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jLXVwbG9hZC1pdGVtX19pbnRlcmFjdGlvbi1pY29uOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogLTE7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogaW5oZXJpdDtcbn1cbi5jLXVwbG9hZC1pdGVtX19pbnRlcmFjdGlvbi1pY29uOmhvdmVyOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIsIDIzLCAyNCwgMC4wNik7XG59XG5cbi5jLXVwbG9hZC1pdGVtX19pbnRlcmFjdGlvbi1pY29uOmZvY3VzLXZpc2libGU6OmFmdGVyIHtcbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjMTYxNzE4O1xuICAtLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiAwO1xuICAtLWZvY3VzLW91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICAtLWZvY3VzLW91dGxpbmUtd2lkdGg6IDJweDtcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9jdXMtb3V0bGluZS1jb2xvciwgIzE2MTcxOCk7XG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1mb2N1cy1vdXRsaW5lLW9mZnNldCwgMXB4KTtcbiAgb3V0bGluZS1zdHlsZTogdmFyKC0tZm9jdXMtb3V0bGluZS1zdHlsZSwgc29saWQpO1xuICBvdXRsaW5lLXdpZHRoOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXdpZHRoLCAycHgpO1xufVxuXG4uYy11cGxvYWQtaXRlbV9faW50ZXJhY3Rpb24taWNvbjphY3RpdmUge1xuICBzY2FsZTogMC45NTtcbn1cblxuLmMtdXBsb2FkLWl0ZW1fX2ludGVyYWN0aW9uLWljb246Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNVUExPQUQtQ09OVEFJTkVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIFJlc2V0IGRlZmF1bHQgbGlzdCBzdHlsaW5nLlxuICogWzJdIFJlc2V0IGRlZmF1bHQgYDxsaT5gIHN0eWxpbmcuXG4gKi9cbi5jLXVwbG9hZC1jb250YWluZXJfX2ZpZWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcbn1cblxuLmMtdXBsb2FkLWNvbnRhaW5lcl9faXRlbWxpc3Qge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIC8qIFsxXSAqL1xufVxuLmMtdXBsb2FkLWNvbnRhaW5lcl9faXRlbWxpc3QgbGkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmMtdXBsb2FkLWNvbnRhaW5lcl9faXRlbSB7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8qIFsyXSAqL1xufVxuLmMtdXBsb2FkLWNvbnRhaW5lcl9faXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0lDT04tTElTVCAoU2V0dGluZ3MpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJQ09OLUxJU1RcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gQ3JlYXRlIHNwYWNpbmcgYmV0d2VlbiBpY29uIGFuZCB0ZXh0Li4uXG4gKiBbMl0gUmVzZXQgZGVmYXVsdCBsaXN0IHN0eWxpbmdzLiBXZSBkbyBub3QgdXNlIHRoZSBgQGluY2x1ZGUgbGlzdC1iYXJlKClgXG4gKiAgICAgbWl4aW4sIHNpbmNlIHdlIGV4cGxpY2l0bHkgZG8gd2FudCB0aGUgbWFyZ2luIGJldHdlZW4gdGhlIGA8bGk+YHMsIHdoaWNoXG4gKiAgICAgbGlzdC1iYXJlIHJlbW92ZXMuXG4gKiBbM10gTWFnaWMgbnVtYmVyIHRvIF9wcm9wZXJseV8gYWxpZ24gdGhlIGljb24gdmVydGljYWxseSB0byB0aGUgdGV4dC5cbiAqIFs0XSBJZiB0aGUgZGVzaWduIHNwZWNpZmllcyBhIHNwYWNpbmcgYmV0d2VlbiBpY29uIGxpc3QgaXRlbXMsIHNldCBpdC5cbiAqICAgICBUaGlzIGFwcGxpZXMgdG8gYWxsIGl0ZW1zIGV4Y2VwdCB0aGUgZmlyc3Qgb25lLlxuICogWzVdIFNldCBwb3NpdGlvbmluZyBjb250ZXh0IGZvciBgLmMtaWNvbi1saXN0X19pY29uYC4gVGhpcyBoZWxwcyB0byBtYWtlXG4gKiAgICAgdGhlIGljb24gc3RheSBpbiBwbGFjZSBpbiBvdmVyZmxvdyBjb250ZXh0cywgc2VlIEJST04tNjY5OS5cbiAqL1xuLmMtaWNvbi1saXN0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDMycHg7IC8qIFsxXSAqL1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBsaXN0LXN0eWxlOiBub25lOyAvKiBbMl0gKi9cbn1cbi5jLWljb24tbGlzdCBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogWzVdICovXG59XG4uYy1pY29uLWxpc3QgbGkgKyBsaSB7XG4gIG1hcmdpbi10b3A6IDhweDsgLyogWzRdICovXG59XG5cbi5jLWljb24tbGlzdF9faWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG4uYy1pY29uLWxpc3RfX2ljb246OmJlZm9yZSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7IC8qIFszXSAqL1xuICBsZWZ0OiAtMzJweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1RBQlNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogWzhdICovXG4vKipcbiAqIFsxXSBXZSBuZWVkIHRvIGRlZmVuc2l2ZWx5IHJlc2V0IGFueSBkZWZhdWx0IGxpc3Qtc3R5bGUgcHJvcGVydGllcy5cbiAqIFsyXSBSZW1vdmUgd2hpdGVzcGFjZSBmb3IgaW5saW5lKC1ibG9jaykgZWxlbWVudHMuXG4gKiBbM10gRHJhdyB0aGUgbGluZSB0aHJvdWdoLCBpdCB3aWxsIGJlIGhpZGRlbiBieSBwYXJlbnRzIG92ZXJmbG93IGhpZGRlbi5cbiAqICAgICBUaGlzIGlzIHRoZSBsaW5lIHRoYXQgZXhjZWVkcyB0byB0aGUgcmlnaHQuXG4gKiBbNF0gRGl2aWRlIHRoZSBhbW91bnQgb2Ygc3BhY2luZyBieSB0d28sIHNvIHRoYXQgdGhlIHN1bSBvZiBib3RoIHBhZGRpbmdzXG4gKiAgICAgZXF1YWxzIHRoZSB2YXJpYWJsZS5cbiAqIFs1XSBUaGUgOjpiZWZvcmUgcHNldWRvIGVsZW1lbnQgcmVwcmVzZW50cyB0aGUgYm9yZGVyLWJvdHRvbSBiZWxvdyBlYWNoIGl0ZW0uXG4gKiBbNl0gVGhlIDo6YWZ0ZXIgcHNldWRvIGVsZW1lbnQgcmVwcmVzZW50cyB0aGUgYm9yZGVyIHRoYXQgZXhjZWVkcyBhbGwgdGhlXG4gKiAgICAgd2F5IHRvIHRoZSByaWdodC4gVG8gbWFrZSB0aGlzIGNvbXBvbmVudCBjb21wbGlhbnQgdG8gdGhlIEJsdWVsYWJlbFxuICogICAgIGRlc2lnbiwgdGhpcyBleGNlZWRpbmcgYm9yZGVyIGNhbm5vdCBiZSBidWlsZCB3aXRoIGEgYm9yZGVyLWJvdHRvbSBvbiB0aGVcbiAqICAgICBsaXN0IGVsZW1lbnQuXG4gKiBbN10gTWFrZSB0aGUgYm9yZGVyIGxvbmcgZW5vdWdoLlxuICogWzhdIEVsaW1pbmF0ZSBhbnkgYWRkaXRpb25hbCBtYXJnaW4gaW5zaWRlIHRoZSB0YWIgY29udGVudC5cbiAqIFs5XSBQbGFjZSB0aGUgdGV4dCBvdXQgb2YgdGhlIHZpZXdwb3J0IHNvIHRoYXQgaXMgc3RpbGwgYWNjZXNzaWJsZS5cbiAqIFsxMF0gRW5hYmxlL2Rpc2FibGUgcG9pbnRlciBldmVudHMgcHJldi9uZXh0IGJ1dHRvbnMuXG4gKi9cbi5jLXRhYnNfX25hdiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbjogMDsgLyogWzFdICovXG4gIHBhZGRpbmc6IDA7IC8qIFsxXSAqL1xuICBmb250LXNpemU6IDA7IC8qIFsyXSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgLyoqXG4gICAqIFsxXSBDaGVjayBpZiBhIHRoZW1lIGlzIHNldCBvciBpZiB0aGUgZGVmYXVsdCB0aGVtZSAobnVsbCkgaXMgdXNlZC5cbiAgICogICAgIElmIHRoZSBgZGVmYXVsdGAgdGhlbWUgaXMgdXNlZCB3ZSBleGVjdXRlIHRoZSBhbHJlYWR5IHByZXNlbnQgbG9naWMsXG4gICAqICAgICBlbHNlIHdlIGp1c3QgcmV0dXJuIHRoZSBjb250ZW50IHVud3JhcHBlZC5cbiAgICovXG59XG4vKiBbMV0gKi9cbi5jLXRhYnNfX25hdiAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGhlaWdodDogMTAwJTsgLyogWzddICovXG4gIG1hcmdpbi10b3A6IDA7IC8qIFs4XSAqL1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvOyAvKiBbMTBdICovXG59XG4uYy10YWJzX19uYXYgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ubmV4dCB7XG4gIHJpZ2h0OiAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCUsIHdoaXRlIDQwJSk7IC8qIFs5XSAqL1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi8qIFsxXSAqL1xuW2RhdGEtdGhlbWU9YWx0ZXJuYXRpdmVdIC5jLXRhYnNfX25hdiAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbi5uZXh0IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDIxNiwgMjE2LCAyMTYsIDApIDAlLCAjZDhkOGQ4IDQwJSk7IC8qIFs5XSAqL1xufVxuXG4uYy10YWJzX19uYXYgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ucHJldmlvdXMge1xuICBsZWZ0OiAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgd2hpdGUgNjAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDEwMCUpOyAvKiBbOV0gKi9cbiAgLyoqXG4gICAqIFsxXSBDaGVjayBpZiBhIHRoZW1lIGlzIHNldCBvciBpZiB0aGUgZGVmYXVsdCB0aGVtZSAobnVsbCkgaXMgdXNlZC5cbiAgICogICAgIElmIHRoZSBgZGVmYXVsdGAgdGhlbWUgaXMgdXNlZCB3ZSBleGVjdXRlIHRoZSBhbHJlYWR5IHByZXNlbnQgbG9naWMsXG4gICAqICAgICBlbHNlIHdlIGp1c3QgcmV0dXJuIHRoZSBjb250ZW50IHVud3JhcHBlZC5cbiAgICovXG59XG4vKiBbMV0gKi9cbltkYXRhLXRoZW1lPWFsdGVybmF0aXZlXSAuYy10YWJzX19uYXYgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ucHJldmlvdXMge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNkOGQ4ZDggNDAlLCByZ2JhKDIxNiwgMjE2LCAyMTYsIDApIDEwMCUpOyAvKiBbOV0gKi9cbn1cblxuLmMtdGFic19fbmF2IC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uOmRpc2FibGVkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIFsxMF0gKi9cbiAgb3BhY2l0eTogMDtcbn1cbi5jLXRhYnNfX25hdiAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbjo6YmVmb3JlIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uYy10YWJzX19uYXYtaXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uYy10YWJzX19uYXYtbGluayB7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIHBhZGRpbmctbGVmdDogMTJweDtcbiAgcGFkZGluZy1yaWdodDogMTJweDtcbiAgcGFkZGluZy10b3A6IDhweDtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGNvbG9yOiAjNDY0NzQ4O1xufVxuLmMtdGFic19fbmF2LWxpbms6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuLmMtdGFic19fbmF2LWxpbms6aG92ZXIsIC5jLXRhYnNfX25hdi1saW5rOmZvY3VzIHtcbiAgY29sb3I6ICMxNjE3MTg7XG4gIC8qKlxuICAgKiBbMV0gQ2hlY2sgaWYgYSB0aGVtZSBpcyBzZXQgb3IgaWYgdGhlIGRlZmF1bHQgdGhlbWUgKG51bGwpIGlzIHVzZWQuXG4gICAqICAgICBJZiB0aGUgYGRlZmF1bHRgIHRoZW1lIGlzIHVzZWQgd2UgZXhlY3V0ZSB0aGUgYWxyZWFkeSBwcmVzZW50IGxvZ2ljLFxuICAgKiAgICAgZWxzZSB3ZSBqdXN0IHJldHVybiB0aGUgY29udGVudCB1bndyYXBwZWQuXG4gICAqL1xufVxuLyogWzFdICovXG5bZGF0YS10aGVtZT1hbHRlcm5hdGl2ZV0gLmMtdGFic19fbmF2LWxpbms6aG92ZXIsIFtkYXRhLXRoZW1lPWFsdGVybmF0aXZlXSAuYy10YWJzX19uYXYtbGluazpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi5jLXRhYnNfX25hdi1saW5rOmhvdmVyOjpiZWZvcmUsIC5jLXRhYnNfX25hdi1saW5rOmZvY3VzOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDE5NDY4O1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi8qIFsxXSAqL1xuW2RhdGEtdGhlbWU9YWx0ZXJuYXRpdmVdIC5jLXRhYnNfX25hdi1saW5rOmhvdmVyOjpiZWZvcmUsIFtkYXRhLXRoZW1lPWFsdGVybmF0aXZlXSAuYy10YWJzX19uYXYtbGluazpmb2N1czo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLmMtdGFic19fbmF2LWxpbmsuaXMtYWN0aXZlIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uYy10YWJzX19uYXYtbGluay5pcy1hY3RpdmU6OmJlZm9yZSB7XG4gIGhlaWdodDogM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDE5NDY4O1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi8qIFsxXSAqL1xuW2RhdGEtdGhlbWU9YWx0ZXJuYXRpdmVdIC5jLXRhYnNfX25hdi1saW5rLmlzLWFjdGl2ZTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLmMtdGFic19fbmF2LWxpbms6OmJlZm9yZSB7IC8qIFs1XSAqL1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE2MTcxODtcbiAgLyoqXG4gICAqIFsxXSBDaGVjayBpZiBhIHRoZW1lIGlzIHNldCBvciBpZiB0aGUgZGVmYXVsdCB0aGVtZSAobnVsbCkgaXMgdXNlZC5cbiAgICogICAgIElmIHRoZSBgZGVmYXVsdGAgdGhlbWUgaXMgdXNlZCB3ZSBleGVjdXRlIHRoZSBhbHJlYWR5IHByZXNlbnQgbG9naWMsXG4gICAqICAgICBlbHNlIHdlIGp1c3QgcmV0dXJuIHRoZSBjb250ZW50IHVud3JhcHBlZC5cbiAgICovXG59XG4vKiBbMV0gKi9cbltkYXRhLXRoZW1lPWFsdGVybmF0aXZlXSAuYy10YWJzX19uYXYtbGluazo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQxOTQ2ODtcbn1cblxuLmMtdGFic19fbmF2LWxpbmsuaXMtZGlzYWJsZWQge1xuICBjb2xvcjogIzllOWZhMDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5jLXRhYnNfX25hdi1saW5rLmlzLWRpc2FibGVkOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2M3ZDdlO1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi8qIFsxXSAqL1xuW2RhdGEtdGhlbWU9YWx0ZXJuYXRpdmVdIC5jLXRhYnNfX25hdi1saW5rLmlzLWRpc2FibGVkOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWU5ZmEwO1xufVxuXG4uYy10YWJzX19uYXYuYy10YWJzX19uYXYtLWljb25zIC5jLXRhYnNfX25hdi1saW5rIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5jLXRhYnNfX25hdi5jLXRhYnNfX25hdi0taWNvbnMtc3RhY2tlZCAuYy10YWJzX19uYXYtbGluayB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG4uYy10YWJzX19uYXYtLWljb25zLW9ubHkgLmMtdGFic19fbmF2LWxpbmsge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nLXRvcDogOHB4O1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xufVxuLmMtdGFic19fbmF2LS1pY29ucy1vbmx5IC5jLXRhYnNfX25hdi1saW5rIC5jLXRhYnNfX3RleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0xMDB2dzsgLyogWzldICovXG59XG5cbi5jLXRhYnNfX25hdi5jLXRhYnNfX25hdi0taWNvbnMgLmMtdGFic19faWNvbiB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG59XG4uYy10YWJzX19uYXYuYy10YWJzX19uYXYtLWljb25zLXN0YWNrZWQgLmMtdGFic19faWNvbiB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG4uYy10YWJzX19uYXYuYy10YWJzX19uYXYtLWljb25zLW9ubHkgLmMtdGFic19faWNvbiB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLmMtdGFic19fY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAyNHB4IDA7XG59XG4uYy10YWJzX19jb250ZW50ID4gKjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzhdICovXG59XG4uYy10YWJzX19jb250ZW50W2FyaWEtaGlkZGVuPXRydWVdIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1RBQlNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG5cbiAqIFsxXSBSZXNldCBkZWZhdWx0IGJhY2tncm91bmQgc2V0dGluZ3MuXG4gKiBbMl0gUmVzZXQgZGVmYXVsdCBmbGlja2l0eSBiYWNrZ3JvdW5kIHNldHRpbmdzLlxuICogWzNdIFJlc2V0IGRlZmF1bHQgb3V0bGluZSBzZXR0aW5ncy5cbiAqIFs0XSBSZWR1Y2Ugc3BhY2luZyBvbiBzbWFsbGVyIHNjcmVlbnMuXG4gKiBbNV0gSGlkZSBib3R0b20gYm9yZGVyIGZvciBub24tYWN0aXZlIHRhYnMuXG4gKiBbNl0gSGlkZSBicm93c2VyIGZvY3VzIG91dGxpbmUgZm9yIGJyb3dzZXJzIHRoYXQgYWxzbyBzdXBwb3J0IGA6Zm9jdXMtdmlzaWJsZWAuXG4gKiBbN10gQWRkIG91dGxpbmUgYXMgcGVyIGJyYW5kIGd1aWRlbGluZSwgZm9yIGJyb3dzZXJzIHRoYXQgc3VwcG9ydCBgOmZvY3VzLXZpc2libGVgLlxuICovXG4uYy10YWJzX19uYXYgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ucHJldmlvdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgLyogWzFdICovXG59XG4uYy10YWJzX19uYXYgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ucHJldmlvdXM6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDAlLCB3aGl0ZSAzMCUpOyAvKiBbMV0gKi9cbn1cbi5jLXRhYnNfX25hdiAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbi5uZXh0IHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IC8qIFsxXSAqL1xufVxuLmMtdGFic19fbmF2IC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uLm5leHQ6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAwJSwgd2hpdGUgMzAlKTsgLyogWzFdICovXG59XG4uYy10YWJzX19uYXYgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b246Zm9jdXMsIC5jLXRhYnNfX25hdiAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbjpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMDsgLyogWzZdICovXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IC8qIFsyXSAqL1xufVxuLmMtdGFic19fbmF2IC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uOmZvY3VzOjpiZWZvcmUsIC5jLXRhYnNfX25hdiAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbjpmb2N1cy12aXNpYmxlOjpiZWZvcmUge1xuICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICMxNjE3MTg7XG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IC0xcHg7XG4gIC0tZm9jdXMtb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIC0tZm9jdXMtb3V0bGluZS13aWR0aDogMXB4O1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb2N1cy1vdXRsaW5lLWNvbG9yLCAjMTYxNzE4KTtcbiAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWZvY3VzLW91dGxpbmUtb2Zmc2V0LCAxcHgpO1xuICBvdXRsaW5lLXN0eWxlOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXN0eWxlLCBzb2xpZCk7XG4gIG91dGxpbmUtd2lkdGg6IHZhcigtLWZvY3VzLW91dGxpbmUtd2lkdGgsIDJweCk7XG4gIC8qIFszXSAqL1xufVxuXG4uYy10YWJzX19uYXYtaXRlbSB7XG4gIG1hcmdpbi1yaWdodDogNDhweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy10YWJzX19uYXYtaXRlbSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAyNHB4OyAvKiBbNF0gKi9cbiAgfVxufVxuXG4uYy10YWJzX19uYXYtLWljb25zLXN0YWNrZWQgLmMtdGFic19fbmF2LWxpbmsgLmMtdGFic19fdGV4dCB7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbn1cblxuLmMtdGFic19fbmF2LWxpbms6bm90KC5pcy1hY3RpdmUpOjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lOyAvKiBbNV0gKi9cbn1cbi5jLXRhYnNfX25hdi1saW5rOmZvY3VzLXZpc2libGU6OmFmdGVyIHsgLyogWzddICovXG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA4cHg7XG4gIHJpZ2h0OiA4cHg7XG4gIGJvdHRvbTogOHB4O1xuICBsZWZ0OiA4cHg7XG4gIG91dGxpbmU6IDJweCBzb2xpZCAjMTYxNzE4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICNDQVJEXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogQFRPRE8gaWNvbnNcbiAqIC0gb3JkZXJcbiAqIC0gbmFtaW5nIChwbHVyYWwgdnMgc2luZ3VsYXIpXG4gKi9cbi8qKlxuICogWzFdIEZpbGwgaG9yaXpvbnRhbCBzcGFjZSBvZiBwYXJlbnQuXG4gKiBbMl0gQ2FsY3VsYXRlIHRoZSBzcGFjZSBuZWVkZWQgb2YgMTAwJSBvZiB0aGUgY29udGVudCBieSBzdWJ0cmFjdGluZyB0aGVcbiAqICAgICBuZWVkZWQgc3BhY2UgZnJvbSB0aGUgaWNvbi5cbiAqIFszXSBEZWZlbnNpdmVseSByZXNldCBhbnkgcG90ZW50aWFsIHNwYWNpbmcgdGhhdCBjb21lcyB3aXRoIHBsYWluIEhUTUxcbiAqICAgICBlbGVtZW50cy5cbiAqIFs0XSBUaGUgbG9naWNhbCBhbmQgdGhlcmVmb3JlIHJlYWRpbmcgb3JkZXIgb2YgZmxleCBpdGVtcyBpcyBzZXBhcmF0ZSBmcm9tXG4gKiAgICAgdGhlIHZpc3VhbCBvcmRlci4gSW4gdGhpcyBjYXNlIHRoZSBvcmRlciBwcm9wZXJ0eSBjYW4gYWxsb3cgcGF0dGVybnMgdG9cbiAqICAgICBiZSBlYXNpbHkgaW1wbGVtZW50ZWQgaW4gcG9zaXRpb24gbmVlZGVkLlxuICogWzVdIFJlc2V0IG9yZGVyaW5nIHNldCBieSBbNF0uXG4gKiBbNl0gUHJldmVudCB0b28gbXVjaCBzcGFjaW5nIGJlbG93IGJlbG93IGltYWdlIGluIElFLlxuICogWzddIFRvIHByZXZlbnQgdW53YW50ZWQgc3RhY2tpbmcgc3BhY2luZyBhdCB0aGUgYm90dG9tIG9mIHRoZSBib2R5LCByZW1vdmVcbiAqICAgICBhbnkgdW53YW50ZWQgc3BhY2luZywgbm8gbWF0dGVyIHdoYXQgZWxlbWVudCB0aGUgbGFzdCBlbGVtZW50IGluXG4gKiAgICAgYC5jLWNhcmRfX2JvZHlgIGlzLlxuICogWzhdIFBsYWNlIGZvb3RlciBhdCB0aGUgYm90dG9tLiBUaGlzIG9ubHkgd29ya3MgaW4gY29udGV4dCwgd2hlcmUgdGhlIGNhcmRcbiAqICAgICBpcyBsYXJnZXIgdGhhbiB0aGUgYWN0dWFsIGNvbnRlbnQsIGUuZy4gbWFudWFsbHkgc2V0IGhlaWdodCBvclxuICogICAgIGVxdWFsLWhlaWdodCB3aXRoIG90aGVyIGl0ZW1zIGluIGEgcm93LlxuICogWzldIENlbnRlciBob3Jpem9udGFsbHkuXG4gKiBbMTBdIEFkZCBhZGRpdGlvbmFsIGBwYWRkaW5nLXJpZ2h0YCB0byB0aGUgZWxlbWVudCBmb2xsb3dpbmcgYC5jLWNhcmRfX2ljb25gXG4gKiAgICAgIGlmIFsxNGFdIHRoZSBpY29uIGlzIHBsYWNlZCBvbiB0aGUgbGVmdCBmb3IgdGhlIGAuYy1jYXJkLS1zdGF0ZXNgXG4gKiAgICAgIHZhcmlhbnQgYW5kIHRoaXMgaXMgIE5PVCB0aGUgYC5jLWNhcmQtLXN0YXRlc2AgdmFyaWFudCBvciBbMTRiXSBpZiB0aGVcbiAqICAgICAgaWNvbiBpcyBwbGFjZWQgb24gdGhlIHJpZ2h0IGZvciBhbGwgdmFyaWFudHMuXG4gKiBbMTFdIEFkZCBhIGBwYWRkaW5nLXRvcGAgdGhhdCBtYXRjaGVzIHRoZSBjYXJkJ3Mgb3V0ZXIgcGFkZGluZyB0byB0aGUgZWxlbWVudFxuICogICAgICB3aGljaCBpcyBmb2xsb3dpbmcgYC5jLWNhcmRfX2ljb25gIGlmIHRoZSBpY29uIHdhcyB0YWtlbiBvdXQgb2YgdGhlIGZsb3dcbiAqICAgICAgYW5kIG1vdmVkIHRvIHRoZSByaWdodC5cbiAqIFsxMl0gQWRkIGFkZGl0aW9uYWwgYHBhZGRpbmctbGVmdGAgZm9yIGNhcmQtaGVhZGVyIGlmIHRoZSBzdGF0ZSBpY29uXG4gKiAgICAgIGlzIHBsYWNlZCBvbiB0aGUgbGVmdC5cbiAqIFsxM10gUmVtb3ZlIG91dGVyIHBhZGRpbmcgZm9yIGltYWdlcy5cbiAqIFsxNF0gTWFrZSB0aGUgaW1hZ2UgYWx3YXlzIHRha2UgdXAgdGhlIGVudGlyZSB3aWR0aCBmb3IgY2FyZHMuXG4gKiBbMTVdIFZlcnRpY2FsIGFsaWdubWVudCBmb3IgaWNvbiB0byB0aXRsZS5cbiAqIFsxNl0gUmVzZXQgYWxsIHNwYWNpbmdzIGZvciBgPGhyPmAuXG4gKiBbMTddIEVtcHR5IGNsYXNzIGZvciBzcGVjaWFsIGNhcmQgdmFyaWFudCBgQ2FyZCBFeHBhbmRhYmxlYC5cbiAqIFsxOF0gRW5hYmxlIGVub3VnaCBzcGFjaW5nIHdoZW4gZGlzcGxheWVkIG9uIHNtYWxsIGRldmljZXMuXG4gKiBbMTldIFJlZHVjZSB0aGUgc2l6ZSBvZiB0aGUgd3JhcHBlciBhY2NvcmRpb24gaWNvbiBpZiB3YW50ZWQuXG4gKiBbMjBdIEFuaW1hdGUgdGhlIHdyYXBwZXIgYWNjb3JkaW9uIGljb24gd2hlbiBwYXJlbnQgaGFzIGNsYXNzIGAuaXMtYWN0aXZlYC5cbiAqIFsyMV0gU2V0IHRoZSBkaXNwbGF5IGNvbnRleHQgZm9yIGl0ZW1zIGluc2lkZSB0aGUgZXhwYW5kYWJsZSBib2R5LlxuICogWzIyXSBNb3ZlIHRoZSBleHBhbmRhYmxlIHRyaWdnZXIgdG8gdGhlIHJpZ2h0LWhhbmQgc2lkZS5cbiAqIFsyM10gU2V0IGN1c3RvbSBhbGlnbm1lbnRzIGZvciBleHBhbmRhYmxlIGNhcmRzLlxuICogWzI0XSBDb25kaXRpb25hbGx5IGFwcGx5IGBib3JkZXItcmFkaXVzYCB0byBpbWFnZSBpZiBpdCBpcyB0aGUgZmlyc3QgZWxlbWVudFxuICogICAgICBpbnNpZGUgdGhlIGNhcmQgYmxvY2suXG4gKiAgICAgIFJlbW92ZXMgdGhlIG5lZWQgdG8gb3ZlcndyaXRlIGUuZy4gaWYgaW1hZ2UgaXMgbm90XG4gKiAgICAgIHRoZSBmaXJzdCBlbGVtZW50LlxuICogWzI1XSBTZXQgc3BhY2luZyBmb3Igc21hbGwgc2NyZWVucy5cbiAqIFsyNl0gSGlkZSBpY29uIG9uIHNtYWxsIHNjcmVlbnMuXG4gKiBbMjddIFNob3cgdG9nZ2xlIGJ1dHRvbiBvbmx5IG9uIHNtYWxsIHNjcmVlbnMuXG4gKiBbMjhdIFN3YXAgaWNvbiB3aGVuIGBbYXJpYS1leHBhbmRlZD1cInRydWVcIl1gLlxuICogWzI5XSBUb2dnbGUgdmlzaWJpbGl0eSBvZiBgLmMtY2FyZF9fYm9keWAuXG4gKiBbMzBdIEluY3JlYXNlIGNsaWNrIGFyZWEgYnkgYWRkaW5nIGEgcHNldWRvIGVsZW1lbnQgdG8gdGhlIGJ1dHRvbiBmb3IgdGhlXG4gKiAgICAgIENhcmQgUmVzcG9uc2l2ZSBDb2xsYXBzZSB2YXJpYW50LlxuICogWzMxXSBSZWR1Y2UgY29udGVudCBzcGFjaW5nIGZvciBDYXJkIFJlc3BvbnNpdmUgQ29sbGFwc2UgdmFyaWFudC5cbiAqIFszMl0gUmVtb3ZlIGFueSB1bndhbnRlZCBzcGFjaW5nLlxuICogWzMzXSBIaWRlIGZvb3RlciBmb3IgaW5hY3RpdmUgY2FyZHMgdG8gZXhjbHVkZSwgaW4gdGhpcyBjYXNlLCBub24taW50ZXJhY3RpdmVcbiAqICAgICAgZm9vdGVyIGNvbnRlbnQgKGUuZy4gYnV0dG9ucywgbGlua3MpIGZvciBhbGwgdXNlcnMgYW5kIGlucHV0IG1ldGhvZHMuXG4gKiAgICAgIFdlIGhhdmUgdG8gcmVtb3ZlIHRyYW5zaXRpb25zIGZyb20gdGhlIGNoaWxkIGVsZW1lbnRzIHRvIHByZXZlbnQgYW5cbiAqICAgICAgdW53YW50ZWQgZGVsYXkuXG4gKi9cbi5jLWNhcmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB3aWR0aDogMTAwJTsgLyogWzFdICovXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNGU0ZTQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcbiAgY29sb3I6ICMxNjE3MTg7XG4gIC8qKlxuICAgKiBbMV0gQ2hlY2sgaWYgYSB0aGVtZSBpcyBzZXQgb3IgaWYgdGhlIGRlZmF1bHQgdGhlbWUgKG51bGwpIGlzIHVzZWQuXG4gICAqICAgICBJZiB0aGUgYGRlZmF1bHRgIHRoZW1lIGlzIHVzZWQgd2UgZXhlY3V0ZSB0aGUgYWxyZWFkeSBwcmVzZW50IGxvZ2ljLFxuICAgKiAgICAgZWxzZSB3ZSBqdXN0IHJldHVybiB0aGUgY29udGVudCB1bndyYXBwZWQuXG4gICAqL1xufVxuLmMtY2FyZCA+ICoge1xuICBwYWRkaW5nLXRvcDogNHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICBwYWRkaW5nLWxlZnQ6IDI0cHg7IC8qIFsxXSAqL1xufVxuLmMtY2FyZCA+ICo6Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nLXRvcDogMjRweDtcbn1cbi5jLWNhcmQgPiAqOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLWJvdHRvbTogMjRweDtcbn1cbi8qIFsxXSAqL1xuLmMtY2FyZCA+ICo6bm90KC5jLWNhcmRfX2ljb24pOm5vdCguYy1wcmljZS1ib3gpIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYy1jYXJkX19pbWFnZSB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgLyogWzEzXSAqL1xuICBmbGV4LWdyb3c6IDA7IC8qIFs2XSAqL1xuICBmbGV4LXNocmluazogMDsgLyogWzZdICovXG4gIGZsZXgtYmFzaXM6IGF1dG87IC8qIFs2XSAqL1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IC8qIFs5XSAqL1xuICAvKiBbMjRdICovXG59XG4uYy1jYXJkX19pbWFnZTpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctdG9wOiAwO1xufVxuLmMtY2FyZF9faW1hZ2U6bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuLmMtY2FyZF9faW1hZ2U6aXMoOmZpcnN0LWNoaWxkKSA+IGltZyB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDhweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDhweDtcbn1cbi5jLWNhcmRfX2ltYWdlID4gaW1nIHtcbiAgd2lkdGg6IDEwMCU7IC8qIFsxNF0gKi9cbn1cblxuLmMtY2FyZF9faWNvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4LWdyb3c6IDA7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBmbGV4LWJhc2lzOiA0OHB4O1xufVxuLmMtY2FyZC0tc3RhdGVzLmMtY2FyZC0tc3RhdGVzLXN1Y2Nlc3MgLmMtY2FyZF9faWNvbiAuYy1pY29uIHtcbiAgY29sb3I6ICMzN2QwMDI7XG59XG4uYy1jYXJkLS1zdGF0ZXMuYy1jYXJkLS1zdGF0ZXMtd2FybmluZyAuYy1jYXJkX19pY29uIC5jLWljb24ge1xuICBjb2xvcjogI2VjNjUxMztcbn1cbi5jLWNhcmQtLXN0YXRlcy5jLWNhcmQtLXN0YXRlcy1lcnJvciAuYy1jYXJkX19pY29uIC5jLWljb24ge1xuICBjb2xvcjogI2U4MmIzNztcbn1cbi5jLWNhcmRfX2ljb24gLmMtaWNvbiB7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtY2FyZF9faGVhZGVyIHtcbiAgZmxleC1ncm93OiAwO1xuICBmbGV4LXNocmluazogMTtcbiAgZmxleC1iYXNpczogYXV0bztcbn1cbi5jLWNhcmRfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxLjQzNzVyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5jLWNhcmRfX3N1YnRpdGxlIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbM10gKi9cbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLmMtY2FyZF9fZGl2aWRlciB7XG4gIG1hcmdpbi10b3A6IDI0cHg7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gIHBhZGRpbmctdG9wOiAwOyAvKiBbMTZdICovXG4gIHBhZGRpbmctYm90dG9tOiAwOyAvKiBbMTZdICovXG59XG5cbi5jLWNhcmRfX2JvZHkge1xuICBmbGV4LWdyb3c6IDA7XG4gIGZsZXgtc2hyaW5rOiAxO1xuICBmbGV4LWJhc2lzOiBhdXRvO1xuICBjb2xvcjogIzE2MTcxODtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1jYXJkX19ib2R5LmpzLWlzLXJlYWR5LmlzLWNsb3NlZCB7XG4gICAgZGlzcGxheTogbm9uZTsgLyogWzI5XSAqL1xuICB9XG59XG4uYy1jYXJkX19ib2R5ID4gKjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzddICovXG59XG4uYy1jYXJkX19ib2R5ICsgKiB7XG4gIHBhZGRpbmctdG9wOiAxMnB4O1xufVxuXG4uYy1jYXJkX19mb290ZXIge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGZsZXgtZ3JvdzogMDtcbiAgZmxleC1zaHJpbms6IDE7XG4gIGZsZXgtYmFzaXM6IGF1dG87XG4gIG1hcmdpbi10b3A6IGF1dG87IC8qIFs4XSAqL1xufVxuXG4uYy1jYXJkLS1zdGF0ZXMgLmMtY2FyZF9faWNvbiAuYy1pY29uIHtcbiAgZm9udC1zaXplOiAzcmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLmMtY2FyZC0taW5hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi8qIFsxXSAqL1xuLmMtY2FyZC0taW5hY3RpdmUgLmMtY2FyZF9fZm9vdGVyIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyAvKiBbMzNdICovXG59XG4uYy1jYXJkLS1pbmFjdGl2ZSAuYy1jYXJkX19mb290ZXIgKiB7XG4gIHRyYW5zaXRpb246IG5vbmU7IC8qIFszM10gKi9cbn1cblxuLmMtY2FyZC0tc2Nyb2xsYWJsZSB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjZjFmMWYxIDMwJSwgcmdiYSgyNDEsIDI0MSwgMjQxLCAwKSksIGxpbmVhci1ncmFkaWVudChyZ2JhKDI0MSwgMjQxLCAyNDEsIDApLCAjZjFmMWYxIDcwJSkgMCAxMDAlLCByYWRpYWwtZ3JhZGllbnQoZmFydGhlc3Qtc2lkZSBhdCA1MCUgMCwgcmdiYSgwLCAwLCAwLCAwLjIpLCByZ2JhKDAsIDAsIDAsIDApKSwgcmFkaWFsLWdyYWRpZW50KGZhcnRoZXN0LXNpZGUgYXQgNTAlIDEwMCUsIHJnYmEoMCwgMCwgMCwgMC4yKSwgcmdiYSgwLCAwLCAwLCAwKSkgMCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgNDJweCwgMTAwJSA0MnB4LCAxMDAlIDE0cHgsIDEwMCUgMTRweDtcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBsb2NhbCwgbG9jYWwsIHNjcm9sbCwgc2Nyb2xsO1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gIG1heC1oZWlnaHQ6IDMzNnB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi8qIFsxXSAqL1xuLmMtY2FyZC0tZXhwYW5kYWJsZSB7IC8qIFsxN10gKi9cbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IC8qIFsyM10gKi9cbiAgdGV4dC1hbGlnbjogbGVmdDsgLyogWzIzXSAqL1xufVxuLmMtY2FyZC0tZXhwYW5kYWJsZSAuYy1jYXJkX19leHBhbmRhYmxlLXBhbmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jLWNhcmQtLWV4cGFuZGFibGUgLmlzLW9wZW4gLmMtYnRuLS1jYXJkLWljb24ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZVgoMTgwZGVnKTsgLyogWzIwXSAqL1xufVxuLmMtY2FyZC0tZXhwYW5kYWJsZSAuaXMtb3BlbiAuYy1jYXJkX19leHBhbmRhYmxlLXBhbmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1jYXJkLS1yZXNwb25zaXZlLWNvbGxhcHNlIC5jLWNhcmRfX2hlYWRlciB7XG4gICAgcGFkZGluZy10b3A6IDI0cHg7XG4gICAgLyogWzI1XSAqL1xuICAgIHBhZGRpbmctYm90dG9tOiAyNHB4O1xuICAgIC8qIFsyNV0gKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgLmMtY2FyZC0tcmVzcG9uc2l2ZS1jb2xsYXBzZSAuYy1jYXJkX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkgYW5kIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5jLWNhcmQtLXJlc3BvbnNpdmUtY29sbGFwc2UgLmMtY2FyZF9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSBhbmQgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIC5jLWNhcmQtLXJlc3BvbnNpdmUtY29sbGFwc2UgLmMtY2FyZF9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMi4yNXJlbTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLWNhcmQtLXJlc3BvbnNpdmUtY29sbGFwc2UgLmMtY2FyZF9fc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxuICAuYy1jYXJkLS1yZXNwb25zaXZlLWNvbGxhcHNlIC5jLWNhcmRfX2JvZHkge1xuICAgIG1hcmdpbi10b3A6IC00cHg7XG4gICAgLyogWzMxXSAqL1xuICAgIHBhZGRpbmctdG9wOiAwOyAvKiBbMzFdICovXG4gIH1cbn1cbi5jLWNhcmQtLXJlc3BvbnNpdmUtY29sbGFwc2UgLmMtY2FyZF9faGVhZGVyLWl0ZW1zIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLmMtY2FyZC0tcmVzcG9uc2l2ZS1jb2xsYXBzZSAuYy1jYXJkX19oZWFkZXItaXRlbXMgPiAqOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1jYXJkLS1yZXNwb25zaXZlLWNvbGxhcHNlIC5jLWNhcmRfX2hlYWRlci1pdGVtcyA+ICo6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7XG4gICAgLyogWzI1XSAqL1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtY2FyZC0tcmVzcG9uc2l2ZS1jb2xsYXBzZSAuYy1jYXJkX19pY29uIHtcbiAgICBkaXNwbGF5OiBub25lOyAvKiBbMjZdICovXG4gIH1cbn1cblxuLmMtY2FyZC0tcmVzcG9uc2l2ZS1jb2xsYXBzZV9fdG9nZ2xlIHtcbiAgZGlzcGxheTogbm9uZTsgLyogWzI3XSAqL1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLWNhcmQtLXJlc3BvbnNpdmUtY29sbGFwc2VfX3RvZ2dsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZy1yaWdodDogMDsgLyogWzMyXSAqL1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzQxOTQ2ODtcbiAgfVxuICAuYy1jYXJkLS1yZXNwb25zaXZlLWNvbGxhcHNlX190b2dnbGU6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtZmFtaWx5OiBcImJyb25zb24tc2tvZGFcIiAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gICAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gICAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gICAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBjb250ZW50OiBcIlxcZjFjMVwiO1xuICB9XG4gIC5jLWNhcmQtLXJlc3BvbnNpdmUtY29sbGFwc2VfX3RvZ2dsZTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7IC8qIFszMF0gKi9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG4gIFthcmlhLWV4cGFuZGVkPXRydWVdIC5jLWNhcmQtLXJlc3BvbnNpdmUtY29sbGFwc2VfX3RvZ2dsZTo6YmVmb3JlIHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAgIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAgIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAgIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gICAgY29udGVudDogXCJcXGYxYzFcIjtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooNDVkZWcpO1xuICB9XG59XG5cbi5jLWNhcmRfX2hlYWRlci1pdGVtcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1jYXJkX19oZWFkZXItaXRlbXMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgfVxuICAuYy1jYXJkX19oZWFkZXItaXRlbXMgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAyNHB4OyAvKiBbMThdICovXG4gIH1cbn1cblxuLmMtY2FyZF9fZXhwYW5kYWJsZSB7XG4gIGRpc3BsYXk6IGZsZXg7IC8qIFsyMV0gKi9cbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgLyogWzIxXSAqL1xufVxuXG4uYy1jYXJkX19leHBhbmRhYmxlLWJ0biB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kOyAvKiBbMjJdICovXG59XG5cbi8qKlxuICogWzFdIEFkZCBvdmVybGF5IHRvIHZpc3VhbGl6ZSBibG9ja2VkIGluYWN0aXZlL2Rpc2FibGVkIHN0YXRlLlxuICogICAgIER1ZSB0byB0aGUgZmxleGlibGUgbmF0dXJlIG9mIHRoZSBjb21wb25lbnQgb2YgaW5jbHVkaW5nXG4gKiAgICAgYXJiaXRyYXJ5IGVsZW1lbnRzIGluc2lkZSwgYW4gb3ZlcmxheSBpcyB1c2VkIGluc3RlYWQgb2ZcbiAqICAgICBjb2xvcml6aW5nIHNpbmdsZSBlbGVtZW50cyBpbnNpZGUgd2hpY2ggd291bGQgYWRkIGNvbXBsZXhpdHkgYW5kXG4gKiAgICAgaXMgZXJyb3ItcHJvbmUuXG4gKiAgICAgT3B0aW9ucyBpbiBkZWZhdWx0IGRvIG5vdCBzYXRpc2Z5IHRoZSB2aXN1YWwgcmVxdWlyZW1lbnRzIGZvciB0aGlzIGJyYW5kLlxuICogWzJdIFVzZSBjdXN0b20gc3BhY2luZyB0aGF0IGNhbiBub3QgYmUgc2V0IHZpYSBkZWZhdWx0IHNldHRpbmcgb3Igd291bGRcbiAqICAgICBiZSB0b28gY29tcGxleC5cbiAqL1xuLmMtY2FyZC0taW5hY3RpdmUge1xuICAvKiBbMV0gKi9cbn1cbi5jLWNhcmQtLWluYWN0aXZlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvcGFjaXR5OiAwLjY7XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi5jLWNhcmRfX2ltYWdlIHtcbiAgcGFkZGluZy10b3A6IDIwcHg7IC8qIFsyXSAqL1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDsgLyogWzJdICovXG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1jYXJkLS1yZXNwb25zaXZlLWNvbGxhcHNlX190b2dnbGU6OmJlZm9yZSB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgYmFja2dyb3VuZC1jb2xvcjtcbiAgICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgfVxuICAuYy1jYXJkX19oZWFkZXI6aG92ZXIgLmMtY2FyZC0tcmVzcG9uc2l2ZS1jb2xsYXBzZV9fdG9nZ2xlOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIsIDIzLCAyNCwgMC4wNik7XG4gIH1cbiAgLmMtY2FyZF9faGVhZGVyOmZvY3VzLXdpdGhpbiAuYy1jYXJkLS1yZXNwb25zaXZlLWNvbGxhcHNlX190b2dnbGU6OmJlZm9yZSB7XG4gICAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjMTYxNzE4O1xuICAgIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAtLWZvY3VzLW91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICAgIC0tZm9jdXMtb3V0bGluZS13aWR0aDogMnB4O1xuICAgIG91dGxpbmUtY29sb3I6IHZhcigtLWZvY3VzLW91dGxpbmUtY29sb3IsICMxNjE3MTgpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1mb2N1cy1vdXRsaW5lLW9mZnNldCwgMXB4KTtcbiAgICBvdXRsaW5lLXN0eWxlOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXN0eWxlLCBzb2xpZCk7XG4gICAgb3V0bGluZS13aWR0aDogdmFyKC0tZm9jdXMtb3V0bGluZS13aWR0aCwgMnB4KTtcbiAgfVxufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0xJU1QtVUlcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSB1bml0LWRpc2FsbG93ZWQtbGlzdCAqL1xuLyoqXG4gKiBbMV0gVmVydGljYWxseSBjZW50ZXIgY291bnRlciB3aXRoIGZpcnN0IGxpbmUgb2YgdGV4dC5cbiAqICAgICBPZmZzZXQgdG8gY29tcGVuc2F0ZSBtaXNhbGlnbm1lbnQgY2F1c2VkIGJ5IGBiYXNlbGluZWAuXG4gKiBbMl0gUHNldWRvLWVsZW1lbnQgZm9yIHRoZSBudW1iZXJpbmcgb2YgdGhlIG9yZGVyZWQgdmFyaWFudC5cbiAqIFszXSBFbnN1cmUgYWxpZ25tZW50IG9mIG51bWJlcnMgaW5kZXBlbmRlbnQgb2YgbnVtYmVyIHdpZHRoLlxuICovXG4uYy1saXN0LXVpIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U0ZTRlNDtcbn1cbi5jLWxpc3QtdWkgbGkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmMtbGlzdC11aS0tb3JkZXJlZCB7XG4gIGNvdW50ZXItcmVzZXQ6IHNlY3Rpb247XG59XG5cbi5jLWxpc3QtdWlfX2l0ZW0ge1xuICBmb250LXNpemU6IDFyZW07XG4gIHBhZGRpbmc6IDE2cHggMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNGU0ZTQ7XG59XG4uYy1saXN0LXVpLS1vcmRlcmVkIC5jLWxpc3QtdWlfX2l0ZW0ge1xuICBkaXNwbGF5OiBmbGV4OyAvKiBbMV0gKi9cbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyAvKiBbMV0gKi9cbn1cbi5jLWxpc3QtdWktLW9yZGVyZWQgLmMtbGlzdC11aV9faXRlbTo6YmVmb3JlIHsgLyogWzJdICovXG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xuICBjb250ZW50OiBjb3VudGVyKHNlY3Rpb24sIGRlY2ltYWwtbGVhZGluZy16ZXJvKTtcbiAgY291bnRlci1pbmNyZW1lbnQ6IHNlY3Rpb247XG4gIC8qIFsxXSAqL1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOyAvKiBbM10gKi9cbiAgLyogWzNdICovXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNUQUdcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gVmVydGljYWxseSBhbGlnbiBjbG9zZS1pY29uLlxuICovXG4uYy10YWcsIC5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fbGFiZWwge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiA2cHggOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRjNmM3O1xuICBjb2xvcjogIzE2MTcxODtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuLmMtdGFnLS1pbmZvIHtcbiAgYm9yZGVyLWNvbG9yOiAjMmQ3MWQ3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQ3MWQ3O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmMtdGFnLS1zdWNjZXNzIHtcbiAgYm9yZGVyLWNvbG9yOiAjMzdkMDAyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzdkMDAyO1xuICBjb2xvcjogIzE2MTcxODtcbn1cblxuLmMtdGFnLS13YXJuaW5nIHtcbiAgYm9yZGVyLWNvbG9yOiAjZWM2NTEzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWM2NTEzO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmMtdGFnLS1lcnJvciB7XG4gIGJvcmRlci1jb2xvcjogI2U4MmIzNztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4MmIzNztcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5jLXRhZy0tcG9zaXRpdmUge1xuICBib3JkZXItY29sb3I6ICMzN2QwMDI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzN2QwMDI7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuXG4uYy10YWctLW5lZ2F0aXZlIHtcbiAgYm9yZGVyLWNvbG9yOiAjZTgyYjM3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTgyYjM3O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmMtdGFnX19sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtaW4taGVpZ2h0OiAyMHB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbn1cblxuLmMtdGFnX19jbG9zZSB7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogWzFdICovXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4OyAvKiBbMV0gKi9cbiAgaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW4tbGVmdDogNHB4O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmMtdGFnX19jbG9zZTpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG4uYy10YWdfX2Nsb3NlOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcImJyb25zb24tc2tvZGFcIiAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBjb250ZW50OiBcIlxcZjE1YVwiO1xufVxuXG4vKipcbiAqIFsxXSBSZW1vdmUgbGluZS1oZWlnaHQgYW5kIGNvbXBvbmVudCBoZWlnaHQgZGVwZW5kZW5jeSBiYXNlZCBvbiBpY29uIHNpemUuXG4gKiBbMl0gT2Zmc2V0IHRvIGZpdCBpbnRvIHRhZyB3aXRob3V0IGNyZWF0aW5nIGV4dHJhIHNwYWNlLlxuICovXG4uYy10YWdfX2xhYmVsIHtcbiAgbWluLWhlaWdodDogMDsgLyogWzFdICovXG4gIGxpbmUtaGVpZ2h0OiAxOyAvKiBbMl0gKi9cbn1cblxuLmMtdGFnX19jbG9zZSB7XG4gIG1hcmdpbi10b3A6IC02cHg7IC8qIFsyXSAqL1xuICBtYXJnaW4tYm90dG9tOiAtNnB4OyAvKiBbMl0gKi9cbiAgbWFyZ2luLXJpZ2h0OiAtOHB4OyAvKiBbMl0gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1RBRy1MSVNUXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIFJlc2V0IGRlZmF1bHQgbGlzdCBzdHlsZXMuXG4gKiBbMl0gU2V0IGZvbnQgc2l6ZSBhbmQgbGluZSBoZWlnaHQgb2YgbGlzdCBlbGVtZW50IHRvIHRoZSBzYW1lIGFzIHRoZSB0YWdzIGluXG4gKiAgICAgb3JkZXIgdG8gcHJldmVudCB0aGUgKGxhcmdlcikgYmFzZSBsaW5lIGhlaWdodCBmcm9tIGFkZGluZyBzcGFjaW5nIG9uIHRvcCBvZlxuICogICAgIHRoZSB0YWdzLlxuICovXG4uYy10YWctbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgY29sdW1uLWdhcDogOHB4O1xuICByb3ctZ2FwOiAxNnB4O1xuICBtYXJnaW46IDA7IC8qIFsxXSAqL1xuICBwYWRkaW5nOiAwOyAvKiBbMV0gKi9cbiAgbGlzdC1zdHlsZTogbm9uZTsgLyogWzFdICovXG59XG4uYy10YWctbGlzdCBsaSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgLyogWzJdICovXG4gIG1hcmdpbi1ib3R0b206IDA7IC8qIFsxXSAqL1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjVE9PTFRJUFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFRoZXNlIGFyZSB0aGUgc3R5bGVzIGV4Y2x1c2l2ZWx5IGZvciB0aGUgdG9vbHRpcCBsaW5rLCBpLmUuIHRoZSB0cmlnZ2VyIGZvclxuICogdGhlIHRvb2x0aXAgcG9wdXAuIFRoZSBzdHlsZXMgZm9yIHRoZSB0b29sdGlwIHBvcHVwIGFyZSBoYW5kbGVkIGJ5IFRpcHB5LmpzXG4gKiB0byBiZSBmb3VuZCBpbiB0aGUgbGliLWZvbGRlciAuXG4gKi9cbi5jLXRvb2x0aXAge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5jLXRvb2x0aXA6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuXG4uYy10b29sdGlwOmZvY3VzLXZpc2libGUge1xuICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICMxNjE3MTg7XG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgLS1mb2N1cy1vdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgLS1mb2N1cy1vdXRsaW5lLXdpZHRoOiAycHg7XG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWZvY3VzLW91dGxpbmUtY29sb3IsICMxNjE3MTgpO1xuICBvdXRsaW5lLW9mZnNldDogdmFyKC0tZm9jdXMtb3V0bGluZS1vZmZzZXQsIDFweCk7XG4gIG91dGxpbmUtc3R5bGU6IHZhcigtLWZvY3VzLW91dGxpbmUtc3R5bGUsIHNvbGlkKTtcbiAgb3V0bGluZS13aWR0aDogdmFyKC0tZm9jdXMtb3V0bGluZS13aWR0aCwgMnB4KTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0lURU0tVEVBU0VSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIEluY3JlYXNlIHNwZWNpZmljaXR5LCBzbyB0aGUgZGVjbGFyYXRpb24gYWxzbyB3b3JrcyBvbiBncmV5IGJhY2tncm91bmQuXG4gKiBbMl0gRm9yY2UgaXRlbSB3cmFwcGluZy5cbiAqIFszXSBSZXdyaXRlIHN0eWxlcyB0byBhbGlnbiBpY29uIGFzaWRlIHRvIGNvbnRlbnQuXG4gKiBbNF0gQmxvY2sgbGF5b3V0IChzdGFja2VkIGljb24gYW5kIGNvbnRlbnQpIGF0IGJyZWFrcG9pbnQuXG4gKiBbNV0gT3B0aW9uYWxseSBkaXNhYmxlIHJlc3BvbnNpdmUgYGZvbnQtc2l6ZWAuXG4gKyBbNl0gVXNlIOKAnHJvd+KAnSBsYXlvdXQgd2hlbiBjb21wb25lbnQgaXMgd2lkZXIgdGhhbiBgJGl0ZW0tdGVhc2VyLXJvdy1pdGVtLWJyZWFrLXdpZHRoYC5cbiAqICAgICBAVE9ETzogUmVmYWN0b3IgdG8gcmVhbCBjb250YWluZXIgcXVlcmllcyB3aGVuIGJyb3dzZXIgc3VwcG9ydCBpcyBoaWdoIGVub3VnaC5cbiAqIFs3XSBCcmVhayBhZnRlciB0aGUgdGl0bGUgaWYgdGhlcmUgYXJlIG1vcmUgdGhhbiAyIGJvZHkgaXRlbXMgaW4gdG90YWwgb3JcbiAqICAgICB0aGUgbmV4dCBpdGVtIGlzIG5vdCBhIGJ1dHRvbi4gRm9yIGJyb3dzZXIgd2l0aG91dCBgOmhhc2Agc3VwcG9ydCxcbiAqICAgICBhIGJyZWFrIGlzIGFkZGVkIGFmdGVyIHRoZSB0aXRsZSBpZiB0aGVyZSBhcmUgMyBib2R5IGl0ZW1zIGluIHRvdGFsLlxuICogWzhdIERvIG5vdCBhbGxvdyBhIGxpbmUgYnJlYWsgaW4gdGhlIGxpbmsgb3IgYnV0dG9uLlxuICovXG4uYy1pdGVtLXRlYXNlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDsgLyogWzJdICovXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jLWl0ZW0tdGVhc2VyID4gKiB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgZmxleC1zaHJpbms6IDE7XG4gIGZsZXgtYmFzaXM6IDEwMCU7IC8qIFsyXSAqL1xufVxuXG4uYy1pdGVtLXRlYXNlcl9faWNvbiB7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG59XG4uYy1pdGVtLXRlYXNlcl9faWNvbi5jLWl0ZW0tdGVhc2VyX19pY29uIHsgLyogWzFdICovXG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtaXRlbS10ZWFzZXItLXNtYWxsIC5jLWl0ZW0tdGVhc2VyX19pY29uIHtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmMtaXRlbS10ZWFzZXItLWlubGluZSAuYy1pdGVtLXRlYXNlcl9faWNvbiB7IC8qIFszXSAqL1xuICBhbGlnbi1zZWxmOiBiYXNlbGluZTtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYy1pdGVtLXRlYXNlcl9fdGl0bGUge1xuICBmb250LXNpemU6IDEuNDM3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBmb250LXdlaWdodDogNzAwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLWl0ZW0tdGVhc2VyX190aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICB9XG59XG4uYy1pdGVtLXRlYXNlci0taW5saW5lIC5jLWl0ZW0tdGVhc2VyX190aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cbi5jLWl0ZW0tdGVhc2VyLS1zbWFsbC5jLWl0ZW0tdGVhc2VyLS1pbmxpbmUgLmMtaXRlbS10ZWFzZXJfX3RpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4uYy1pdGVtLXRlYXNlcl9fdGV4dCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5jLWl0ZW0tdGVhc2VyX19saW5rIHtcbiAgbWFyZ2luLXRvcDogMTZweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1pdGVtLXRlYXNlcl9fbGluayB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgfVxufVxuXG4uYy1pdGVtLXRlYXNlci0tc21hbGwge1xuICAtLWl0ZW0tdGVhc2VyLWFsdGVybmF0aXZlLXBhZGRpbmc6IDE2cHg7XG4gIC0taXRlbS10ZWFzZXItcm93LXNwYWNpbmctY29sdW1uczogMTZweDtcbiAgLS1pdGVtLXRlYXNlci1yb3ctc3BhY2luZy1yb3dzOiAxNnB4O1xufVxuXG4uYy1pdGVtLXRlYXNlci0taW5saW5lIHsgLyogWzNdICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLmMtaXRlbS10ZWFzZXItLWlubGluZSA+ICoge1xuICBmbGV4LWdyb3c6IDA7XG4gIGZsZXgtc2hyaW5rOiAxO1xuICBmbGV4LWJhc2lzOiBhdXRvO1xufVxuXG4uYy1pdGVtLXRlYXNlci0tYmxvY2sge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IC8qIFsyXSAqL1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYy1pdGVtLXRlYXNlci0tYmxvY2sgPiAqIHtcbiAgZmxleC1ncm93OiAxO1xuICBmbGV4LXNocmluazogMTtcbiAgZmxleC1iYXNpczogMTAwJTsgLyogWzJdICovXG59XG5cbi5jLWl0ZW0tdGVhc2VyLS1hbHRlcm5hdGl2ZSB7XG4gIHBhZGRpbmc6IHZhcigtLWl0ZW0tdGVhc2VyLWFsdGVybmF0aXZlLXBhZGRpbmcsIDI0cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xufVxuXG4uYy1pdGVtLXRlYXNlci0tcm93IHtcbiAgLS1jb250YWluZXItd2lkdGhzOiBcIjAgNDk2XCI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGNvbHVtbi1nYXA6IHZhcigtLWl0ZW0tdGVhc2VyLXJvdy1zcGFjaW5nLWNvbHVtbnMsIDI0cHgpO1xuICByb3ctZ2FwOiB2YXIoLS1pdGVtLXRlYXNlci1yb3ctc3BhY2luZy1yb3dzLCAxNnB4KTtcbn1cbi5jLWl0ZW0tdGVhc2VyLS1yb3cgLmMtaXRlbS10ZWFzZXJfX2ljb24ge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLmMtaXRlbS10ZWFzZXItLXJvdyA+IC5jLWl0ZW0tdGVhc2VyX19ib2R5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgY29sdW1uLWdhcDogdmFyKC0taXRlbS10ZWFzZXItcm93LXNwYWNpbmctY29sdW1ucywgMjRweCk7XG4gIHJvdy1nYXA6IHZhcigtLWl0ZW0tdGVhc2VyLXJvdy1zcGFjaW5nLXJvd3MsIDE2cHgpO1xufVxuLmMtaXRlbS10ZWFzZXItLXJvdyA+IC5jLWl0ZW0tdGVhc2VyX19ib2R5ID4gKiB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4uYy1pdGVtLXRlYXNlci0tcm93W2RhdGEtY29udGFpbmVyLXdpZHRofj1cIjQ5NlwiXSB7XG4gIC8qIFs2XSAqL1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5jLWl0ZW0tdGVhc2VyLS1yb3dbZGF0YS1jb250YWluZXItd2lkdGh+PVwiNDk2XCJdID4gKiB7XG4gIGZsZXg6IDAgMSBhdXRvO1xufVxuLmMtaXRlbS10ZWFzZXItLXJvd1tkYXRhLWNvbnRhaW5lci13aWR0aH49XCI0OTZcIl0gPiAuYy1pdGVtLXRlYXNlcl9faWNvbiB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG4uYy1pdGVtLXRlYXNlci0tcm93W2RhdGEtY29udGFpbmVyLXdpZHRofj1cIjQ5NlwiXSA+IC5jLWl0ZW0tdGVhc2VyX19ib2R5IHtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LWdyb3c6IDE7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSwgc2VsZWN0b3ItbWF4LWNvbWJpbmF0b3JzLCBzZWxlY3Rvci1tYXgtY29tcG91bmQtc2VsZWN0b3JzICovXG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cbi5jLWl0ZW0tdGVhc2VyLS1yb3dbZGF0YS1jb250YWluZXItd2lkdGh+PVwiNDk2XCJdID4gLmMtaXRlbS10ZWFzZXJfX2JvZHkgPiA6bm90KDpsYXN0LWNoaWxkKSB7XG4gIGZsZXgtZ3JvdzogMTtcbn1cbkBzdXBwb3J0cyBub3Qgc2VsZWN0b3IoOmhhcyguc3VwcG9ydCkpIHtcbiAgLmMtaXRlbS10ZWFzZXItLXJvd1tkYXRhLWNvbnRhaW5lci13aWR0aH49XCI0OTZcIl0gPiAuYy1pdGVtLXRlYXNlcl9fYm9keSA+IC5jLWl0ZW0tdGVhc2VyX190aXRsZTpudGgtY2hpbGQoMSk6bnRoLWxhc3QtY2hpbGQoMykge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7IC8qIFs3XSAqL1xuICB9XG59XG4uYy1pdGVtLXRlYXNlci0tcm93W2RhdGEtY29udGFpbmVyLXdpZHRofj1cIjQ5NlwiXSA+IC5jLWl0ZW0tdGVhc2VyX19ib2R5ID4gLmMtaXRlbS10ZWFzZXJfX3RpdGxlOmhhcyh+IDpudGgtY2hpbGQoMykpLCAuYy1pdGVtLXRlYXNlci0tcm93W2RhdGEtY29udGFpbmVyLXdpZHRofj1cIjQ5NlwiXSA+IC5jLWl0ZW0tdGVhc2VyX19ib2R5ID4gLmMtaXRlbS10ZWFzZXJfX3RpdGxlOmhhcygrIDpub3QoLmMtaXRlbS10ZWFzZXJfX2xpbmspKSB7XG4gIGZsZXgtYmFzaXM6IDEwMCU7IC8qIFs3XSAqL1xufVxuLmMtaXRlbS10ZWFzZXItLXJvd1tkYXRhLWNvbnRhaW5lci13aWR0aH49XCI0OTZcIl0gPiAuYy1pdGVtLXRlYXNlcl9fYm9keSA+IC5jLWl0ZW0tdGVhc2VyX19saW5rID4gKiB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8qIFs4XSAqL1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtaXRlbS10ZWFzZXItLWlubGluZVxcQHNtYWxsLXNjcmVlbiB7IC8qIFszXSAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbiAgLmMtaXRlbS10ZWFzZXItLWlubGluZVxcQHNtYWxsLXNjcmVlbiA+ICoge1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBmbGV4LXNocmluazogMTtcbiAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICB9XG4gIC5jLWl0ZW0tdGVhc2VyLS1pbmxpbmVcXEBzbWFsbC1zY3JlZW4gLmMtaXRlbS10ZWFzZXJfX2ljb24ge1xuICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lO1xuICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIC5jLWl0ZW0tdGVhc2VyLS1pbmxpbmVcXEBzbWFsbC1zY3JlZW4gLmMtaXRlbS10ZWFzZXJfX3RpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIH1cbiAgLmMtaXRlbS10ZWFzZXItLWJsb2NrXFxAc21hbGwtc2NyZWVuIHsgLyogWzRdICovXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IC8qIFsyXSAqL1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuYy1pdGVtLXRlYXNlci0tYmxvY2tcXEBzbWFsbC1zY3JlZW4gPiAqIHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZmxleC1zaHJpbms6IDE7XG4gICAgZmxleC1iYXNpczogMTAwJTsgLyogWzJdICovXG4gIH1cbn1cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJVEVNLVRFQVNFUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKlxuICogWzFdIEFsaWduIGFsbCBpdGVtcyBhdCB0aGUgdG9wLlxuICogWzJdIFVzZSDigJxyb3figJ0gbGF5b3V0IHdoZW4gY29tcG9uZW50IGlzIHdpZGVyXG4gKiAgICAgdGhhbiBgJGl0ZW0tdGVhc2VyLXJvdy1pdGVtLWJyZWFrLXdpZHRoYC5cbiAqL1xuLmMtaXRlbS10ZWFzZXIuYy1pdGVtLXRlYXNlci0tYmxvY2sge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uYy1pdGVtLXRlYXNlci0tcm93IHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IC8qIFsxXSAqL1xufVxuLmMtaXRlbS10ZWFzZXItLXJvd1tkYXRhLWNvbnRhaW5lci13aWR0aH49XCIwXCJdIHtcbiAgLyogWzJdICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLmMtaXRlbS10ZWFzZXItLXJvd1tkYXRhLWNvbnRhaW5lci13aWR0aH49XCIwXCJdID4gKiB7XG4gIGZsZXgtZ3JvdzogMDtcbiAgZmxleC1zaHJpbms6IDE7XG4gIGZsZXgtYmFzaXM6IGF1dG87XG59XG5cbi5jLWl0ZW0tdGVhc2VyLS1hbHRlcm5hdGl2ZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNGU0ZTQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0xPR09cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gSW4gYWRkaXRpb24gdG8gdGhlIGxvZ28gaW4gdGhlIEhUTUwgd2UgaGF2ZSB0byBhc3NpZ24gdGhlIGxvZ28gdmlhIENTU1xuICogICAgIGFzIGEgYmFja2dyb3VuZCBpbWFnZSBmYWxsYmFjayBmb3IgdGhlIGZvcm1lciB2ZXJzaW9uIHdpdGhvdXRcbiAqICAgICBgaW1nYCBvciBgcGljdHVyZWAgZWxlbWVudHMgaW4gdGhlIG1hcmt1cC5cbiAqIFsyXSBUbyBoaWRlIHRoZSBmYWxsYmFjayBiYWNrZ3JvdW5kIGltYWdlIHdoZW4gdGhlIGxvZ28gaW1hZ2UgaXMgcGxhY2VkIGFzXG4gKiAgICAgYGltZ2Agb3IgYHBpY3R1cmVgIGluIHRoZSBIVE1MLCBhbiBhZGRpdGlvbmFsIG1vZGlmaWVyIGNsYXNzIGlzIG5lY2Vzc2FyeS5cbiAqICAgICBUbyBlbnN1cmUgY29tcGF0aWJpbGl0eSB3aXRoIEJyb25zb24ncyBtdWx0aWJyYW5kIGRldmVsb3BtZW50IG1vZGUsXG4gKiAgICAgdGhlIGJhY2tncm91bmQgaW1hZ2UgbXVzdCBub3QgYmUgcmVtb3ZlZCwgYnV0IG11c3QgYmUgcHVzaGVkIG91dCBvZlxuICogICAgIHRoZSBjb250YWluZXIgd2l0aCAnYmFja2dyb3VuZC1wb3NpdGlvbmAuIFRoaXMgd2lsbCBiZSByZXZlcnNlZCBpblxuICogICAgIGBwYWNrYWdlcy9icm9uc29uLWRlZmF1bHQvc3R5bGVndWlkZS90aGVtZS1vdmVycmlkZXMvc3R5bGVzL19zZy1zdHlsZXMuc2Nzc2AuXG4gKiBbM10gSnVzdCBhcHBseSBhIGRpZmZlcmVudCBsb2dvIGZvciB0aGUgYmFja2dyb3VuZCBpbWFnZSBmYWxsYmFjayxcbiAqICAgICBpZiB0aGUgc21hbGwgc2NyZWVuIHZhcmlhbnQgZGlmZmVycyBmcm9tIHRoZSBsYXJnZSBzY3JlZW4gdmFyaWFudC5cbiAqIFs0XSBEZWZlbnNpdmVseSByZXNldCBhbnkgdHJhbnNpdGlvbiwgZS5nLiB3aGVuIGAuYy1sb2dvYCBpcyBvbiBhbiBgPGE+YFxuICogICAgIGVsZW1lbnQsIHRoYXQgaXMgY2FycnlpbmcgYW55IHRyYW5zaXRpb24uXG4gKiBbNV0gQ29udmVydCBgLmMtbG9nb19faW1hZ2VgIHRvIGEgYmxvY2stbGV2ZWwgZWxlbWVudCB0byByZW1vdmUgdW53YW50ZWRcbiAqICAgICBzcGFjaW5nIGFyb3VuZCB0aGUgaW1hZ2UuXG4gKi9cbi5jLWxvZ28ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDExNHB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9sb2dvLnN2Z1wiKTsgLyogWzFdICovXG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBub25lOyAvKiBbNF0gKi9cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1sb2dvIHtcbiAgICB3aWR0aDogMTE0cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICB9XG59XG5cbi5jLWxvZ28tLWhhcy1pbWFnZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDk5OXB4OyAvKiBbMl0gKi9cbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgLyogWzJdICovXG59XG5cbi5jLWxvZ29fX2ltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7IC8qIFs1XSAqL1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xufVxuXG4uYy1sb2dvOmZvY3VzLXZpc2libGUge1xuICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICMxNjE3MTg7XG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDhweDtcbiAgLS1mb2N1cy1vdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgLS1mb2N1cy1vdXRsaW5lLXdpZHRoOiAycHg7XG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWZvY3VzLW91dGxpbmUtY29sb3IsICMxNjE3MTgpO1xuICBvdXRsaW5lLW9mZnNldDogdmFyKC0tZm9jdXMtb3V0bGluZS1vZmZzZXQsIDFweCk7XG4gIG91dGxpbmUtc3R5bGU6IHZhcigtLWZvY3VzLW91dGxpbmUtc3R5bGUsIHNvbGlkKTtcbiAgb3V0bGluZS13aWR0aDogdmFyKC0tZm9jdXMtb3V0bGluZS13aWR0aCwgMnB4KTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0xPR08tQkFOTkVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIFJldmVydCBhbGwgc3R5bGVzIHRvIHJlc2V0IHBvdGVudGlhbCBnbG9iYWwgbGluayBzdHlsZXMuXG4gKiBbMl0gVXNlIENTUyBjdXN0b20gcHJvcGVydGllcyB3aXRoIGEgZmFsbGJhY2sgdG8gYWxsb3cgc29tZSBwcm9wZXJ0aWVzXG4gKiAgICAgKGNvbG9yLCBiYWNrZ3JvdW5kIGNvbG9yLCBsb2dvIGhlaWdodCkgdG8gYmUgY3VzdG9taXphYmxlIGZyb20gdGhlIG1hcmt1cFxuICogICAgICh0aHJvdWdoIGlubGluZSBzdHlsZXMpLiBGb3IgZXhhbXBsZTpcbiAqICAgICBgYGBcbiAqICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cImMtbG9nby1iYW5uZXJcIiBzdHlsZT1cIi0tbG9nby1iYW5uZXItY29sb3I6ICNmZmZmZmZcIj5cbiAqICAgICBgYGBcbiAqIFszXSBXZSBzZXQgdGhlIGxvZ2/igJlzIGRpbWVuc2lvbnMgYmFzZWQgb24gaGVpZ2h0LiBBcyBhIHJlc3VsdCwgdGhlIHdpZHRoXG4gKiAgICAgY2FuIHZhcnkgYW5kIGlzIGRldGVybWluZWQgYnkgdGhlIGxvZ2/igJlzIGFzcGVjdCByYXRpby5cbiAqICAgICBgY2xhbXBgIGlzIHVzZWQgdG8gc2V0IGEgbWluaW11bSB2YWx1ZSwgYSB2aWV3cG9ydCB3aWR0aCBiYXNlZCB2YWx1ZVxuICogICAgIGFuZCBhIG1heGltdW0gdmFsdWUgdG8gbWFrZSB0aGUgbG9nbyByZXNwb25zaXZlIHdpdGhpbiBhIGdpdmVuIHJhbmdlLlxuICovXG4uYy1sb2dvLWJhbm5lciB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxvZ28tYmFubmVyLWJhY2tncm91bmQtY29sb3IsICNlNGU0ZTQpOyAvKiBbMl0gKi9cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICAuYy1sb2dvLWJhbm5lciB7XG4gICAgZm9udC1zaXplOiAxLjQzNzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyODFweCkge1xuICAuYy1sb2dvLWJhbm5lciB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLWxvZ28tYmFubmVyIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZ2FwOiA4cHg7XG4gIH1cbn1cblxuLmMtbG9nby1iYW5uZXJfX2JvZHkge1xuICBhbGw6IHJldmVydDsgLyogWzFdICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTZweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1sb2dvLWJhbm5lci1jb2xvciwgIzE2MTcxOCk7IC8qIFsyXSAqL1xufVxuXG4uYy1sb2dvLWJhbm5lcl9fbG9nbyB7XG4gIGhlaWdodDogY2xhbXAodmFyKC0tbG9nby1iYW5uZXItbG9nby1oZWlnaHQsIDMycHgpLzEuNSwgOHZ3LCB2YXIoLS1sb2dvLWJhbm5lci1sb2dvLWhlaWdodCwgMzJweCkpOyAvKiBbMl0gWzNdICovXG59XG5cbi5jLWxvZ28tYmFubmVyLS1yb3cge1xuICBtaW4taGVpZ2h0OiA3MHB4O1xuICBwYWRkaW5nOiAxNnB4O1xufVxuLmMtbG9nby1iYW5uZXItLXJvdyAuYy1sb2dvLWJhbm5lcl9fYm9keSB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNQQUdJTkFUSU9OXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIFN0ZXBwZXIgaWNvbiBzaG91bGQgaGF2ZSBzYW1lIGxpbmUtaGVpZ2h0IGFzIC5jLXBhZ2luYXRpb25fX2xpbmsgdGV4dC5cbiAqL1xuLmMtcGFnaW5hdGlvbl9fbGlzdCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5jLXBhZ2luYXRpb25fX2xpc3QgbGkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmMtcGFnaW5hdGlvbl9fbGluayB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIDRweDtcbiAgcGFkZGluZzogMCAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjMTYxNzE4O1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtY2xhc3MsIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG4uYy1wYWdpbmF0aW9uX19saW5rOm5vdChbaHJlZl0pIHtcbiAgY3Vyc29yOiBpbmhlcml0O1xufVxuLmMtcGFnaW5hdGlvbl9fbGluazpub3QoLmlzLWRpc2FibGVkKTpub3QoLmlzLWFjdGl2ZSk6aG92ZXIsIC5jLXBhZ2luYXRpb25fX2xpbms6bm90KC5pcy1kaXNhYmxlZCk6bm90KC5pcy1hY3RpdmUpOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyMiwgMjMsIDI0LCAwLjA2KTtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uYy1wYWdpbmF0aW9uX19saW5rLmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjIsIDIzLCAyNCwgMC4wNik7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtcGFnaW5hdGlvbl9fbGluay5pcy1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzllOWZhMDtcbn1cbi5jLXBhZ2luYXRpb25fX2xpbmtbY2xhc3MqPWMtcGFnaW5hdGlvbl9fbGluay0tc3RlcHBlci1dOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcImJyb25zb24tc2tvZGFcIiAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLyogWzFdICovXG4gIGZvbnQtc2l6ZTogMjRweDtcbn1cbi5jLXBhZ2luYXRpb25fX2xpbmtbY2xhc3MqPWMtcGFnaW5hdGlvbl9fbGluay0tc3RlcHBlci1dLmlzLWRpc2FibGVkIHtcbiAgY29sb3I6ICM5ZTlmYTA7XG59XG4uYy1wYWdpbmF0aW9uX19saW5rW2NsYXNzKj1jLXBhZ2luYXRpb25fX2xpbmstLXN0ZXBwZXItXS5jLXBhZ2luYXRpb25fX2xpbmstLXN0ZXBwZXItcHJldiB7XG4gIG1hcmdpbi1yaWdodDogMzJweDtcbn1cbi5jLXBhZ2luYXRpb25fX2xpbmtbY2xhc3MqPWMtcGFnaW5hdGlvbl9fbGluay0tc3RlcHBlci1dLmMtcGFnaW5hdGlvbl9fbGluay0tc3RlcHBlci1wcmV2OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MlwiO1xufVxuLmMtcGFnaW5hdGlvbl9fbGlua1tjbGFzcyo9Yy1wYWdpbmF0aW9uX19saW5rLS1zdGVwcGVyLV0uYy1wYWdpbmF0aW9uX19saW5rLS1zdGVwcGVyLW5leHQge1xuICBtYXJnaW4tbGVmdDogMzJweDtcbn1cbi5jLXBhZ2luYXRpb25fX2xpbmtbY2xhc3MqPWMtcGFnaW5hdGlvbl9fbGluay0tc3RlcHBlci1dLmMtcGFnaW5hdGlvbl9fbGluay0tc3RlcHBlci1uZXh0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NVwiO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjUEFHSU5BVElPTlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBVbnNldCBob3ZlciBmcm9tIGRlZmF1bHQgbGluay5cbiAqIFsyXSBGb2N1cyBzdHlsZXMgaGFuZGxlZCB2aWEgcHNldWRvIGVsZW1lbnQuXG4gKi9cbi5jLXBhZ2luYXRpb25fX2xpbmsge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uYy1wYWdpbmF0aW9uX19saW5rOm5vdChbY2xhc3MqPWMtcGFnaW5hdGlvbl9fbGluay0tc3RlcHBlci1dKSB7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG59XG4uYy1wYWdpbmF0aW9uX19saW5rW2NsYXNzKj1jLXBhZ2luYXRpb25fX2xpbmstLXN0ZXBwZXItXTpub3QoLmlzLWRpc2FibGVkKSB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgc2NhbGU6IDE7XG4gIHNjYWxlOiAxO1xufVxuLmMtcGFnaW5hdGlvbl9fbGlua1tjbGFzcyo9Yy1wYWdpbmF0aW9uX19saW5rLS1zdGVwcGVyLV06bm90KC5pcy1kaXNhYmxlZCk6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAtMTtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0cmFuc2l0aW9uOiBpbmhlcml0O1xufVxuLmMtcGFnaW5hdGlvbl9fbGlua1tjbGFzcyo9Yy1wYWdpbmF0aW9uX19saW5rLS1zdGVwcGVyLV06bm90KC5pcy1kaXNhYmxlZCk6aG92ZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMiwgMjMsIDI0LCAwLjA2KTtcbn1cblxuLmMtcGFnaW5hdGlvbl9fbGlua1tjbGFzcyo9Yy1wYWdpbmF0aW9uX19saW5rLS1zdGVwcGVyLV06bm90KC5pcy1kaXNhYmxlZCk6Zm9jdXMtdmlzaWJsZTo6YWZ0ZXIge1xuICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICMxNjE3MTg7XG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDA7XG4gIC0tZm9jdXMtb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIC0tZm9jdXMtb3V0bGluZS13aWR0aDogMnB4O1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb2N1cy1vdXRsaW5lLWNvbG9yLCAjMTYxNzE4KTtcbiAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWZvY3VzLW91dGxpbmUtb2Zmc2V0LCAxcHgpO1xuICBvdXRsaW5lLXN0eWxlOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXN0eWxlLCBzb2xpZCk7XG4gIG91dGxpbmUtd2lkdGg6IHZhcigtLWZvY3VzLW91dGxpbmUtd2lkdGgsIDJweCk7XG59XG5cbi5jLXBhZ2luYXRpb25fX2xpbmtbY2xhc3MqPWMtcGFnaW5hdGlvbl9fbGluay0tc3RlcHBlci1dOm5vdCguaXMtZGlzYWJsZWQpOmFjdGl2ZSB7XG4gIHNjYWxlOiAwLjk1O1xufVxuXG4uYy1wYWdpbmF0aW9uX19saW5rW2NsYXNzKj1jLXBhZ2luYXRpb25fX2xpbmstLXN0ZXBwZXItXTpub3QoLmlzLWRpc2FibGVkKTpob3ZlciwgLmMtcGFnaW5hdGlvbl9fbGlua1tjbGFzcyo9Yy1wYWdpbmF0aW9uX19saW5rLS1zdGVwcGVyLV06bm90KC5pcy1kaXNhYmxlZCk6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbn1cbi5jLXBhZ2luYXRpb25fX2xpbmtbY2xhc3MqPWMtcGFnaW5hdGlvbl9fbGluay0tc3RlcHBlci1dOm5vdCguaXMtZGlzYWJsZWQpOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAwOyAvKiBbMl0gKi9cbn1cbi5jLXBhZ2luYXRpb25fX2xpbmtbY2xhc3MqPWMtcGFnaW5hdGlvbl9fbGluay0tc3RlcHBlci1dOm5vdCguaXMtZGlzYWJsZWQpOmFjdGl2ZSB7XG4gIHNjYWxlOiAwLjk1O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTElDRU5TRS1QTEFURVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBNYWtlIGFsbCBsaWNlbnNlIHBsYXRlcyBleGNlcHQgXCJ4c21hbGxcIiB2YXJpYW50IGhhdmUgdGhlIHNhbWUgc2l6ZSBmb3IgPD1zIGJyZWFrcG9pbnQuXG4gKiBbMl0gTW9kaWZ5IGxpY2Vuc2UgcGxhdGUgd2l0aCBhIGNvdW50cnktc3BlY2lmaWMgYmFja2dyb3VuZCBmb3IgTmV0aGVybGFuZHMuXG4gKiBbM10gUHJldmVudCB0aGUgdW5kZXJsaW5pbmcgb2YgdGhlIGNvdW50cnkgY29kZSB3aGVuIGl0IGlzIGluc2lkZSBvZiBhbiBhYmJyIGVsZW1lbnQuXG4gKiBbNF0gQXZvaWQgc2hhcnAgZWRnZSBvdmVybGFwcGluZyByb3VuZGVkIGNvcm5lciBvbiBob3Jpem9udGFsLXN0cmlwLlxuICovXG4uYy1saWNlbnNlLXBsYXRlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjOWM5Yzk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cbi5jLWxpY2Vuc2UtcGxhdGUtLWxhcmdlIHtcbiAgaGVpZ2h0OiA0MHB4O1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBmb250LXNpemU6IDIzcHg7XG4gIC8qIFsxXSAqL1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLWxpY2Vuc2UtcGxhdGUtLWxhcmdlIHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgbWluLXdpZHRoOiAxNDBweDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cblxuLmMtbGljZW5zZS1wbGF0ZS0tbWVkaXVtIHtcbiAgaGVpZ2h0OiA0MHB4O1xuICBtaW4td2lkdGg6IDE2MHB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIC8qIFsxXSAqL1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLWxpY2Vuc2UtcGxhdGUtLW1lZGl1bSB7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIG1pbi13aWR0aDogMTQwcHg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG5cbi5jLWxpY2Vuc2UtcGxhdGUtLXNtYWxsIHtcbiAgaGVpZ2h0OiAzMnB4O1xuICBtaW4td2lkdGg6IDE0MHB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIC8qIFsxXSAqL1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLWxpY2Vuc2UtcGxhdGUtLXNtYWxsIHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgbWluLXdpZHRoOiAxNDBweDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cblxuLmMtbGljZW5zZS1wbGF0ZS0teHNtYWxsIHtcbiAgaGVpZ2h0OiAyNHB4O1xuICBtaW4td2lkdGg6IDExMHB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5jLWxpY2Vuc2UtcGxhdGUuYy1saWNlbnNlLXBsYXRlLS1ubCB7IC8qIFsyXSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdjYTQ1O1xufVxuLmMtbGljZW5zZS1wbGF0ZS5jLWxpY2Vuc2UtcGxhdGUtLWpwIHtcbiAgbGluZS1oZWlnaHQ6IDE7IC8qIFsyXSAqL1xufVxuLmMtbGljZW5zZS1wbGF0ZS5jLWxpY2Vuc2UtcGxhdGUtLWpwLmMtbGljZW5zZS1wbGF0ZS0tbGFyZ2Uge1xuICBmb250LXNpemU6IDIxcHg7XG4gIC8qIFsxXSAqL1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLWxpY2Vuc2UtcGxhdGUuYy1saWNlbnNlLXBsYXRlLS1qcC5jLWxpY2Vuc2UtcGxhdGUtLWxhcmdlIHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgbWluLXdpZHRoOiBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuLmMtbGljZW5zZS1wbGF0ZS5jLWxpY2Vuc2UtcGxhdGUtLWpwLmMtbGljZW5zZS1wbGF0ZS0tbWVkaXVtIHtcbiAgaGVpZ2h0OiA0MHB4O1xuICBtaW4td2lkdGg6IGF1dG87XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgLyogWzFdICovXG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtbGljZW5zZS1wbGF0ZS5jLWxpY2Vuc2UtcGxhdGUtLWpwLmMtbGljZW5zZS1wbGF0ZS0tbWVkaXVtIHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgbWluLXdpZHRoOiBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuLmMtbGljZW5zZS1wbGF0ZS5jLWxpY2Vuc2UtcGxhdGUtLWpwLmMtbGljZW5zZS1wbGF0ZS0tc21hbGwge1xuICBoZWlnaHQ6IDMycHg7XG4gIG1pbi13aWR0aDogYXV0bztcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLmMtbGljZW5zZS1wbGF0ZS5jLWxpY2Vuc2UtcGxhdGUtLWpwLmMtbGljZW5zZS1wbGF0ZS0teHNtYWxsIHtcbiAgaGVpZ2h0OiAzMnB4O1xuICBtaW4td2lkdGg6IGF1dG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5jLWxpY2Vuc2UtcGxhdGUgYWJiciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgLyogWzNdICovXG59XG5cbi5jLWxpY2Vuc2UtcGxhdGVfX3JlZ2lzdHJhdGlvbi1udW1iZXIge1xuICBmbGV4LWdyb3c6IDE7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBmbGV4LWJhc2lzOiBhdXRvO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAgMC4yZW07XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uYy1saWNlbnNlLXBsYXRlLS1qcCAuYy1saWNlbnNlLXBsYXRlX19yZWdpc3RyYXRpb24tbnVtYmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luLXRvcDogMDtcbiAgcGFkZGluZy1yaWdodDogNHB4O1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5jLWxpY2Vuc2UtcGxhdGVfX3JlZ2lzdHJhdGlvbi10b3AtYmFyIHtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICBmb250LXdlaWdodDogNzAwO1xufVxuLmMtbGljZW5zZS1wbGF0ZS0tbGFyZ2UgLmMtbGljZW5zZS1wbGF0ZV9fcmVnaXN0cmF0aW9uLXRvcC1iYXIge1xuICBmb250LXNpemU6IDlweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1saWNlbnNlLXBsYXRlLS1sYXJnZSAuYy1saWNlbnNlLXBsYXRlX19yZWdpc3RyYXRpb24tdG9wLWJhciB7XG4gICAgZm9udC1zaXplOiA3cHg7XG4gIH1cbn1cbi5jLWxpY2Vuc2UtcGxhdGUtLW1lZGl1bSAuYy1saWNlbnNlLXBsYXRlX19yZWdpc3RyYXRpb24tdG9wLWJhciB7XG4gIGZvbnQtc2l6ZTogOXB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLWxpY2Vuc2UtcGxhdGUtLW1lZGl1bSAuYy1saWNlbnNlLXBsYXRlX19yZWdpc3RyYXRpb24tdG9wLWJhciB7XG4gICAgZm9udC1zaXplOiA3cHg7XG4gIH1cbn1cbi5jLWxpY2Vuc2UtcGxhdGUtLXNtYWxsIC5jLWxpY2Vuc2UtcGxhdGVfX3JlZ2lzdHJhdGlvbi10b3AtYmFyIHtcbiAgZm9udC1zaXplOiA3cHg7XG59XG4uYy1saWNlbnNlLXBsYXRlLS14c21hbGwgLmMtbGljZW5zZS1wbGF0ZV9fcmVnaXN0cmF0aW9uLXRvcC1iYXIge1xuICBmb250LXNpemU6IDdweDtcbn1cblxuLmMtbGljZW5zZS1wbGF0ZV9faG9yaXpvbnRhbC1zdHJpcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBvdmVyZmxvdzogaGlkZGVuOyAvKiBbNF0gKi9cbn1cbi5jLWxpY2Vuc2UtcGxhdGUtLWxhcmdlIC5jLWxpY2Vuc2UtcGxhdGVfX2hvcml6b250YWwtc3RyaXAge1xuICBtaW4td2lkdGg6IDMwcHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1saWNlbnNlLXBsYXRlLS1sYXJnZSAuYy1saWNlbnNlLXBsYXRlX19ob3Jpem9udGFsLXN0cmlwIHtcbiAgICBtaW4td2lkdGg6IDIwcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG59XG4uYy1saWNlbnNlLXBsYXRlLS1tZWRpdW0gLmMtbGljZW5zZS1wbGF0ZV9faG9yaXpvbnRhbC1zdHJpcCB7XG4gIG1pbi13aWR0aDogMjRweDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLWxpY2Vuc2UtcGxhdGUtLW1lZGl1bSAuYy1saWNlbnNlLXBsYXRlX19ob3Jpem9udGFsLXN0cmlwIHtcbiAgICBtaW4td2lkdGg6IDIwcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG59XG4uYy1saWNlbnNlLXBsYXRlLS1zbWFsbCAuYy1saWNlbnNlLXBsYXRlX19ob3Jpem9udGFsLXN0cmlwIHtcbiAgbWluLXdpZHRoOiAyMHB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtbGljZW5zZS1wbGF0ZS0tc21hbGwgLmMtbGljZW5zZS1wbGF0ZV9faG9yaXpvbnRhbC1zdHJpcCB7XG4gICAgbWluLXdpZHRoOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxufVxuLmMtbGljZW5zZS1wbGF0ZS0teHNtYWxsIC5jLWxpY2Vuc2UtcGxhdGVfX2hvcml6b250YWwtc3RyaXAge1xuICBtaW4td2lkdGg6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cbi5jLWxpY2Vuc2UtcGxhdGVfX2hvcml6b250YWwtc3RyaXAuYy1saWNlbnNlLXBsYXRlX19ob3Jpem9udGFsLXN0cmlwLS1ldSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDMzOTk7XG59XG4uYy1saWNlbnNlLXBsYXRlX19ob3Jpem9udGFsLXN0cmlwLmMtbGljZW5zZS1wbGF0ZV9faG9yaXpvbnRhbC1zdHJpcC0tanAge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBwYWRkaW5nLWJvdHRvbTogMWVtO1xufVxuLmMtbGljZW5zZS1wbGF0ZS0tbGFyZ2UgLmMtbGljZW5zZS1wbGF0ZV9faG9yaXpvbnRhbC1zdHJpcC5jLWxpY2Vuc2UtcGxhdGVfX2hvcml6b250YWwtc3RyaXAtLWpwIHtcbiAgbWluLXdpZHRoOiAxOHB4O1xuICBmb250LXNpemU6IDlweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1saWNlbnNlLXBsYXRlLS1sYXJnZSAuYy1saWNlbnNlLXBsYXRlX19ob3Jpem9udGFsLXN0cmlwLmMtbGljZW5zZS1wbGF0ZV9faG9yaXpvbnRhbC1zdHJpcC0tanAge1xuICAgIG1pbi13aWR0aDogMTRweDtcbiAgICBmb250LXNpemU6IDdweDtcbiAgfVxufVxuLmMtbGljZW5zZS1wbGF0ZS0tbWVkaXVtIC5jLWxpY2Vuc2UtcGxhdGVfX2hvcml6b250YWwtc3RyaXAuYy1saWNlbnNlLXBsYXRlX19ob3Jpem9udGFsLXN0cmlwLS1qcCB7XG4gIG1pbi13aWR0aDogMThweDtcbiAgZm9udC1zaXplOiA5cHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtbGljZW5zZS1wbGF0ZS0tbWVkaXVtIC5jLWxpY2Vuc2UtcGxhdGVfX2hvcml6b250YWwtc3RyaXAuYy1saWNlbnNlLXBsYXRlX19ob3Jpem9udGFsLXN0cmlwLS1qcCB7XG4gICAgbWluLXdpZHRoOiAxNHB4O1xuICAgIGZvbnQtc2l6ZTogN3B4O1xuICB9XG59XG4uYy1saWNlbnNlLXBsYXRlLS1zbWFsbCAuYy1saWNlbnNlLXBsYXRlX19ob3Jpem9udGFsLXN0cmlwLmMtbGljZW5zZS1wbGF0ZV9faG9yaXpvbnRhbC1zdHJpcC0tanAge1xuICBtaW4td2lkdGg6IDE0cHg7XG4gIGZvbnQtc2l6ZTogN3B4O1xufVxuLmMtbGljZW5zZS1wbGF0ZS0teHNtYWxsIC5jLWxpY2Vuc2UtcGxhdGVfX2hvcml6b250YWwtc3RyaXAuYy1saWNlbnNlLXBsYXRlX19ob3Jpem9udGFsLXN0cmlwLS1qcCB7XG4gIG1pbi13aWR0aDogMTRweDtcbiAgZm9udC1zaXplOiA3cHg7XG59XG5cbi5jLWxpY2Vuc2UtcGxhdGVfX2V1LXN0YXJzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDAuODc1ZW07XG4gIGhlaWdodDogMC44NzVlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCw8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUxMiA1MTJcIiB4bWw6c3BhY2U9XCJwcmVzZXJ2ZVwiPjxwYXRoIGZpbGw9XCIlMjNmZmNjMDBcIiBkPVwiTTIyNyA4N2MzLTExLjEgNi4zLTIyLjEgMTAtMzMtOC42LTcuMS0xNy43LTEzLjgtMjctMjAtMS0xIDMtMSAxNy0xbDE4LTFjNC40LTEwLjQgOC4xLTIxLjEgMTEtMzJsNiAxNiA1IDE2IDE4IDEgMTcgMS0xMyAxMC0xNCAxMCA1IDE3YzUgMTQgNSAxNiA0IDE2LTkuNi01LjktMTguOS0xMi4zLTI4LTE5bC0xNCA5Yy0xMyAxMC0xNSAxMS0xNSAxMHptMCA0MjVjMi45LTExLjQgNi4zLTIyLjggMTAtMzQtOC42LTcuMS0xNy43LTEzLjgtMjctMjBoMTdsMTgtMWM0LjQtMTAuNCA4LjEtMjEuMSAxMS0zMmw2IDE1IDUgMTcgMTggMWgxN2wtMTMgMTEtMTQgMTAgNSAxNmM1IDE1IDUgMTcgNCAxNy05LjYtNi4zLTE5LTEyLjktMjgtMjBsLTE0IDEwYy0xMyAxMC0xNSAxMS0xNSAxMHptMjEwLTIxM2MyLjYtMTEuMSA1LjYtMjIuMSA5LTMzLTguNi03LjEtMTcuNy0xMy44LTI3LTIwbDE3LTFoMThjNC41LTEwLjcgOC4xLTIxLjggMTEtMzMgMy42IDEwLjggNy42IDIxLjUgMTIgMzJsMTggMSAxNyAxLTE0IDEwLTEzIDExIDQgMTYgNSAxN2MtOS42LTYuMy0xOS0xMi45LTI4LTIwbC0xNCAxMC0xNSA5em0tNDE5IDBjMi42LTExLjEgNS42LTIyLjEgOS0zMy04LjYtNy4xLTE3LjctMTMuOC0yNy0yMGwxNy0xaDE4YzQuNS0xMC43IDguMS0yMS44IDExLTMzIDMuNiAxMC44IDcuNiAyMS41IDEyIDMybDE4IDEgMTcgMS0xNCAxMC0xNCAxMSA1IDE2IDUgMTdjLTEwLTYuMi0xOS42LTEyLjktMjktMjBsLTE0IDEwLTE0IDl6bTI0LTEwNWMzLTExLjEgNi4zLTIyLjEgMTAtMzMtOC42LTcuMS0xNy43LTEzLjgtMjctMjBsMTctMWgxOGM0LjUtMTAuNyA4LjEtMjEuOCAxMS0zMyAzLjYgMTAuOCA3LjYgMjEuNSAxMiAzMmwxNyAxIDE4IDEtMTQgMTAtMTQgMTEgNSAxNiA1IDE3Yy0xMC02LjItMTkuNi0xMi45LTI5LTIwbC0xNCAxMGMtMTMgOS0xNSAxMC0xNSA5em0zNzEgMGMzLTExLjEgNi4zLTIyLjEgMTAtMzMtOC42LTcuMS0xNy43LTEzLjgtMjctMjBsMTctMWgxOGM0LjUtMTAuNyA4LjEtMjEuOCAxMS0zM2w2IDE2IDUgMTYgMTggMSAxNyAxLTEzIDEwLTE0IDExIDUgMTZjNSAxNSA1IDE3IDQgMTctOS42LTYuMy0xOS0xMi45LTI4LTIwbC0xNCAxMGMtMTMgOS0xNSAxMC0xNSA5ek00OSA0MTRjMi42LTExLjEgNS42LTIyLjEgOS0zMy04LjYtNy4xLTE3LjctMTMuOC0yNy0yMGwxOC0xIDE3LTFjNC40LTEwLjQgOC4xLTIxLjEgMTEtMzIgMS0xIDIgMSA3IDE2bDUgMTYgMTggMSAxNyAxLTEzIDEwLTE0IDEwIDUgMTYgNCAxN2MtOS42LTUuOS0xOC45LTEyLjMtMjgtMTlsLTE0IDljLTEzIDEwLTE1IDExLTE1IDEwem0zNTggMGMyLjYtMTEuMSA1LjYtMjIuMSA5LTMzLTguMy03LjEtMTctMTMuOC0yNi0yMC0xLTEgMy0xIDE3LTFsMTgtMWM0LjQtMTAuNCA4LjEtMjEuMSAxMS0zMmw2IDE2IDUgMTYgMTggMSAxNyAxLTEzIDEwLTE0IDEwIDUgMTZjNSAxNSA1IDE3IDQgMTctOS42LTUuOS0xOC45LTEyLjMtMjgtMTlsLTE0IDljLTEzIDEwLTE1IDExLTE1IDEwek0xMjEgMTE1YzMtMTEuMSA2LjMtMjIuMSAxMC0zMy04LjYtNy4xLTE3LjctMTMuOC0yNy0yMGwxNy0xIDE4LTFjNC40LTEwLjQgOC4xLTIxLjEgMTEtMzIgMy42IDEwLjggNy42IDIxLjUgMTIgMzJsMTcgMSAxOCAxLTE0IDEwLTE0IDEwIDUgMTcgNSAxN2MtMTAtNi4yLTE5LjYtMTIuOS0yOS0yMGwtMTQgOWMtMTMgMTAtMTUgMTEtMTUgMTB6bTIxMiAwYzIuNi0xMS4xIDUuNi0yMi4xIDktMzMtOC42LTcuMS0xNy43LTEzLjgtMjctMjBsMTctMSAxOC0xYzQuNC0xMC40IDguMS0yMS4xIDExLTMyIDMuNiAxMC44IDcuNiAyMS41IDEyIDMybDE4IDEgMTcgMS0xNCAxMC0xMyAxMGMtMSAxIDIgOCA0IDE3bDUgMTdjLTkuNi02LjMtMTktMTIuOS0yOC0yMGwtMTQgOS0xNSAxMHpNMTIyIDQ4M2MyLjYtMTEuMSA1LjYtMjIuMSA5LTMzLTguNi03LjEtMTcuNy0xMy44LTI3LTIwbDE3LTEgMTgtMWM0LjQtMTAuNCA4LjEtMjEuMSAxMS0zMiAzLjYgMTAuOCA3LjYgMjEuNSAxMiAzMmwxOCAxIDE3IDEtMTQgMTAtMTQgMTAgNSAxNiA1IDE3Yy05LjktNS45LTE5LjYtMTIuMy0yOS0xOWwtMTQgOS0xNCAxMHptMjExIDBjMy0xMS4xIDYuMy0yMi4xIDEwLTMzLTguNi03LjEtMTcuNy0xMy44LTI3LTIwbDE3LTEgMTgtMWM0LjQtMTAuNCA4LjEtMjEuMSAxMS0zMmw2IDE2IDUgMTYgMTggMSAxOCAxLTE0IDEwLTE0IDEwIDUgMTYgNSAxN2MtOS45LTUuOS0xOS42LTEyLjMtMjktMTlsLTE0IDljLTEzIDEwLTE1IDExLTE1IDEwelwiLz48L3N2Zz4nKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuLmMtbGljZW5zZS1wbGF0ZV9fY291bnRyeS1jb2RlIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjU0lURS1OQVZcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gIElmIHRoZXJlIGlzIGEgYC5zaXRlLW5hdi0tcmlnaHRgLCBwcmVzZXJ2ZSBzcGFjZSBiZXR3ZWVuIHRoZSB0d28gbmF2cy5cbiAqIFsyXSAgQWxpZ24gdGhlIHRvZ2dsZSB0byB0aGUgcmlnaHQgc2lkZS5cbiAqIFszXSAgQ2VudGVyIGAuYy1zaXRlLW5hdl9fdG9nZ2xlLWljb25gIGFuZCBgLmMtc2l0ZS1uYXZfX3RvZ2dsZS1jbG9zZS1sYWJlbGAuXG4gKiBbNF0gIEhpZGUgdGhlIGxhYmVsIG9ubHkgdmlzaWJseSBhbmQgbm90IGZyb20gc2NyZWVuIHJlYWRlcnMuIE5vdGUgdGhhdCB0aGVcbiAqICAgICAgbGFiZWwgaXMgc2V0IHRvIGBkaXNwbGF5OiBub25lYCB3aGVuIHRoZSBtZW51IGlzIG5vdCBleHBhbmRlZCBzaW5jZSB0aGVcbiAqICAgICAgbGFiZWwgaXMgdXNlZCBleGNsdXNpdmVseSBmb3IgdGhlIGNsb3NlIGFjdGlvbi5cbiAqIFs1XSAgV2UgY2FuIGVpdGhlciB1c2UgYW4gaWNvbiBmcm9tIHRoZSBpY29uIGZvbnQgb3IgdXNlIGEgQ1NTLWJ1aWx0IHRyaWFuZ2xlLlxuICogICAgICBDb250cm9sIHRoYXQgd2l0aCB0aGUgYCRzaXRlLW5hdi1saW5rLWljb24taXMtY3VzdG9tYCBmZWF0dXJlIGZsYWcuXG4gKiBbNl0gIEFsd2F5cyBzZXQgdGhlIHZhbHVlIG9mIGBmbGV4LWRpcmVjdGlvbmAgdG8gdGhlIG9wcG9zaXRlIHZhbHVlIGlmXG4gKiAgICAgIGAuaXMtcmV2ZXJzZWRgIGlzIHVzZWQgYW5kIHNldCBpdCB0byBgcm93YCBhdCB0aGUgYnJlYWtwb2ludC5cbiAqIFs3XSAgQWRkIHNwYWNpbmcgYmV0d2VlbiBsYWJlbCBhbmQgaWNvbiwgZGVwZW5kaW5nIG9uIHRoZSBkZWZhdWx0IHBvc2l0aW9uXG4gKiAgICAgIG9mIHRoZSBpY29uIChiZWZvcmUgb3IgYWZ0ZXIgdGhlIGxhYmVsKS5cbiAqIFs4XSAgTWFrZSBzdXJlIHRoZSBzaXRlIG5hdiBkcm9wZG93biBpcyBhbGlnbmVkIHRvIHRoZSBgLmMtc2l0ZS1uYXZfX2l0ZW0uYFxuICogICAgICBhbmQgaXMgbm90IG92ZXJsYXBwaW5nIHRoZSBoZWFkZXIuXG4gKiBbOV0gIFBsYWNlIGxpc3QgaXRlbSBvbiB0b3Agd2hlbiBjb2xsYXBzZWQuXG4gKiBbMTBdIFJlc2V0IGRlZmF1bHQgbGlzdCBzdHlsZS4gU2ltaWxhciB0byBgbGlzdC1iYXJlYCBtaXhpbiBidXQgb25seVxuICogICAgICBuZWNlc3Nhcnkgc3R5bGVzIGZvciB0aGlzIGNvbXBvbmVudCBhbmQgd2l0aCBsZXNzIGdlbmVyaWMgc2VsZWN0b3JzXG4gKiAgICAgIGFuZCBvdXRwdXQuXG4gKiBbMTFdIFJlc2V0IGRlZmF1bHQgYDxidXR0b24+YCBzdHlsZXMuXG4gKiBbMTJdIElmIGAuYy1zaXRlLW5hdl9fbGlua2AgaXMgYSBgYnV0dG9uYCAodHJpZ2dlcmluZyBhIGRyb3Bkb3duKSwgaGlkZSB0aGVcbiAqICAgICAgZm9jdXMgb3V0bGluZSBpZiB0aGUgZHJvcGRvd24gZ2V0cyBleHBhbmRlZC4gVGhlIGZvY3VzIG91dGxpbmUgdmlzdWFsbHlcbiAqICAgICAgZGlmZmVyZW50aWF0ZXMgYnV0dG9ucyBmcm9tIGxpbmtzIHdoZW4gdXNpbmcgYSBwb2ludGluZyBkZXZpY2UgKHN1Y2ggYXNcbiAqICAgICAgYSBtb3VzZSkg4oCTIHdoaWNoIGlzIG5vdCB3YW50ZWQgaGVyZS4gVGhlIHRyYW5zaXRpb24gZGVsYXkgaXMgbmVjZXNzYXJ5XG4gKiAgICAgIHRvIGF2b2lkIGEgc2hvcnQgZmxpY2tlcmluZyBvZiB0aGUgb3V0bGluZS4gV2hlbiBuYXZpZ2F0aW5nIGJ5IGtleWJvYXJkXG4gKiAgICAgIHRoZSBmb2N1cyBvdXRsaW5lIHNob3VsZCBiZSB2aXNpYmxlIGZvciBhY2Nlc3NpYmlsaXR5IHJlYXNvbnMuXG4gKiBbMTNdIFNvbWUgYnJhbmRzIChlLmcuIFZXNikgZG9uJ3QgbmVlZCBmbGV4LWRpcmVjdGlvbi5cbiAqIFsxNF0gU2V0IG1hcmdpbiBmb3IgcmV2ZXJzZWQgbGluayBpY29ucywgZGVwZW5kaW5nIG9uIHRoZSBkZWZhdWx0IHBvc2l0aW9uXG4gKiAgICAgIG9mIHRoZSBpY29uIChiZWZvcmUgb3IgYWZ0ZXIgdGhlIGxhYmVsKS4gVGhlIHNlbGVjdG9yIGhhZCB0byBiZVxuICogICAgICBkdXBsaWNhdGVkIGJlY2F1c2UgdGhlIGBzaXRlLW5hdi1icmVha3BvaW50YCBtaXhpbiBkb2VzIG5vdCB3b3JrIHdpdGhcbiAqICAgICAgbmVzdGVkIHNlbGVjdG9yIHJlZmVyZW5jaW5nIHBhcmVudCAoYCZgKS5cbiAqL1xuLmMtc2l0ZS1uYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA2NHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLXNpdGUtbmF2IHtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gIH1cbn1cbi5jLXNpdGUtbmF2X190b2dnbGUge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBkaXNwbGF5OiBub25lO1xuICBjb2xvcjogY3VycmVudENvbG9yO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgLyogWzJdICovXG59XG4uYy1zaXRlLW5hdl9fdG9nZ2xlOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1zaXRlLW5hdjpub3QoW2NsYXNzKj1cImMtc2l0ZS1uYXYtLWJyZWFrQFwiXSkgLmMtc2l0ZS1uYXZfX3RvZ2dsZSB7XG4gICAgZGlzcGxheTogZmxleDsgLyogWzNdICovXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogWzNdICovXG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4eGwgLmMtc2l0ZS1uYXZfX3RvZ2dsZSB7XG4gICAgZGlzcGxheTogZmxleDsgLyogWzNdICovXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogWzNdICovXG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4bCAuYy1zaXRlLW5hdl9fdG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBmbGV4OyAvKiBbM10gKi9cbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiBbM10gKi9cbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQGwgLmMtc2l0ZS1uYXZfX3RvZ2dsZSB7XG4gICAgZGlzcGxheTogZmxleDsgLyogWzNdICovXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogWzNdICovXG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQG0gLmMtc2l0ZS1uYXZfX3RvZ2dsZSB7XG4gICAgZGlzcGxheTogZmxleDsgLyogWzNdICovXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogWzNdICovXG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHMgLmMtc2l0ZS1uYXZfX3RvZ2dsZSB7XG4gICAgZGlzcGxheTogZmxleDsgLyogWzNdICovXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogWzNdICovXG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHhzIC5jLXNpdGUtbmF2X190b2dnbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7IC8qIFszXSAqL1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIFszXSAqL1xuICB9XG59XG4uYy1zaXRlLW5hdl9fdG9nZ2xlLW9wZW4tbGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBpdGNzcy9uby1hdC1pbXBvcnRhbnQgKi9cbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbn1cblxuLmMtc2l0ZS1uYXZfX3RvZ2dsZS1jbG9zZS1sYWJlbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jLXNpdGUtbmF2X190b2dnbGUtaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiYnJvbnNvbi1za29kYVwiICFpbXBvcnRhbnQ7IC8qIFsxXSAqL1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cbi5jLXNpdGUtbmF2X190b2dnbGUtaWNvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYWRcIjtcbn1cbi5jLXNpdGUtbmF2X190b2dnbGVbYXJpYS1leHBhbmRlZD10cnVlXSAuYy1zaXRlLW5hdl9fdG9nZ2xlLWljb24gfiAuYy1zaXRlLW5hdl9fdG9nZ2xlLW9wZW4tbGFiZWwge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmMtc2l0ZS1uYXZfX3RvZ2dsZVthcmlhLWV4cGFuZGVkPXRydWVdIC5jLXNpdGUtbmF2X190b2dnbGUtaWNvbiB+IC5jLXNpdGUtbmF2X190b2dnbGUtY2xvc2UtbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgaXRjc3Mvbm8tYXQtaW1wb3J0YW50ICovXG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gIC8qIFs0XSAqL1xufVxuXG4uYy1zaXRlLW5hdl9fcGFuZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1zaXRlLW5hdjpub3QoW2NsYXNzKj1cImMtc2l0ZS1uYXYtLWJyZWFrQFwiXSkgLmMtc2l0ZS1uYXZfX3BhbmVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbiAgLmMtc2l0ZS1uYXY6bm90KFtjbGFzcyo9XCJjLXNpdGUtbmF2LS1icmVha0BcIl0pIC5jLXNpdGUtbmF2X19wYW5lbDpub3QoLmlzLWNvbGxhcHNlZCkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4eGwgLmMtc2l0ZS1uYXZfX3BhbmVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4eGwgLmMtc2l0ZS1uYXZfX3BhbmVsOm5vdCguaXMtY29sbGFwc2VkKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHhsIC5jLXNpdGUtbmF2X19wYW5lbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICB9XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAeGwgLmMtc2l0ZS1uYXZfX3BhbmVsOm5vdCguaXMtY29sbGFwc2VkKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQGwgLmMtc2l0ZS1uYXZfX3BhbmVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBsIC5jLXNpdGUtbmF2X19wYW5lbDpub3QoLmlzLWNvbGxhcHNlZCkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQG0gLmMtc2l0ZS1uYXZfX3BhbmVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBtIC5jLXNpdGUtbmF2X19wYW5lbDpub3QoLmlzLWNvbGxhcHNlZCkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHMgLmMtc2l0ZS1uYXZfX3BhbmVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBzIC5jLXNpdGUtbmF2X19wYW5lbDpub3QoLmlzLWNvbGxhcHNlZCkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHhzIC5jLXNpdGUtbmF2X19wYW5lbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICB9XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAeHMgLmMtc2l0ZS1uYXZfX3BhbmVsOm5vdCguaXMtY29sbGFwc2VkKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxufVxuXG4uYy1zaXRlLW5hdl9fbmF2cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtc2l0ZS1uYXY6bm90KFtjbGFzcyo9XCJjLXNpdGUtbmF2LS1icmVha0BcIl0pIC5jLXNpdGUtbmF2X19uYXZzIHtcbiAgICBwYWRkaW5nLXRvcDogMjRweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDk2cHg7XG4gICAgcGFkZGluZy1yaWdodDogOTZweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjRweDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyAvKiBbMTNdICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtc2l0ZS1uYXY6bm90KFtjbGFzcyo9XCJjLXNpdGUtbmF2LS1icmVha0BcIl0pIC5jLXNpdGUtbmF2X19uYXZzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG4gICAgcGFkZGluZy1yaWdodDogNDhweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSBhbmQgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtc2l0ZS1uYXY6bm90KFtjbGFzcyo9XCJjLXNpdGUtbmF2LS1icmVha0BcIl0pIC5jLXNpdGUtbmF2X19uYXZzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtc2l0ZS1uYXY6bm90KFtjbGFzcyo9XCJjLXNpdGUtbmF2LS1icmVha0BcIl0pIC5jLXNpdGUtbmF2X19uYXZzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgcGFkZGluZy1yaWdodDogMTJweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHh4bCAuYy1zaXRlLW5hdl9fbmF2cyB7XG4gICAgcGFkZGluZy10b3A6IDI0cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA5NnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDk2cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDI0cHg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgLyogWzEzXSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHh4bCAuYy1zaXRlLW5hdl9fbmF2cyB7XG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIGFuZCAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHh4bCAuYy1zaXRlLW5hdl9fbmF2cyB7XG4gICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHh4bCAuYy1zaXRlLW5hdl9fbmF2cyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4bCAuYy1zaXRlLW5hdl9fbmF2cyB7XG4gICAgcGFkZGluZy10b3A6IDI0cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA5NnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDk2cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDI0cHg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgLyogWzEzXSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHhsIC5jLXNpdGUtbmF2X19uYXZzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG4gICAgcGFkZGluZy1yaWdodDogNDhweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkgYW5kIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAeGwgLmMtc2l0ZS1uYXZfX25hdnMge1xuICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4bCAuYy1zaXRlLW5hdl9fbmF2cyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBsIC5jLXNpdGUtbmF2X19uYXZzIHtcbiAgICBwYWRkaW5nLXRvcDogMjRweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDk2cHg7XG4gICAgcGFkZGluZy1yaWdodDogOTZweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjRweDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyAvKiBbMTNdICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkgYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbCAuYy1zaXRlLW5hdl9fbmF2cyB7XG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIGFuZCAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQGwgLmMtc2l0ZS1uYXZfX25hdnMge1xuICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBsIC5jLXNpdGUtbmF2X19uYXZzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgcGFkZGluZy1yaWdodDogMTJweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbSAuYy1zaXRlLW5hdl9fbmF2cyB7XG4gICAgcGFkZGluZy10b3A6IDI0cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA5NnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDk2cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDI0cHg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgLyogWzEzXSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkgYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbSAuYy1zaXRlLW5hdl9fbmF2cyB7XG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkgYW5kIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbSAuYy1zaXRlLW5hdl9fbmF2cyB7XG4gICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkgYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbSAuYy1zaXRlLW5hdl9fbmF2cyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHMgLmMtc2l0ZS1uYXZfX25hdnMge1xuICAgIHBhZGRpbmctdG9wOiAyNHB4O1xuICAgIHBhZGRpbmctbGVmdDogOTZweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA5NnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAyNHB4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IC8qIFsxM10gKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHMgLmMtc2l0ZS1uYXZfX25hdnMge1xuICAgIHBhZGRpbmctbGVmdDogNDhweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIGFuZCAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHMgLmMtc2l0ZS1uYXZfX25hdnMge1xuICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHMgLmMtc2l0ZS1uYXZfX25hdnMge1xuICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4cyAuYy1zaXRlLW5hdl9fbmF2cyB7XG4gICAgcGFkZGluZy10b3A6IDI0cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA5NnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDk2cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDI0cHg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgLyogWzEzXSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkgYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAeHMgLmMtc2l0ZS1uYXZfX25hdnMge1xuICAgIHBhZGRpbmctbGVmdDogNDhweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIGFuZCAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHhzIC5jLXNpdGUtbmF2X19uYXZzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4cyAuYy1zaXRlLW5hdl9fbmF2cyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XG4gIH1cbn1cblxuLmMtc2l0ZS1uYXZfX25hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbjogMDsgLyogWzEwXSAqL1xuICBwYWRkaW5nOiAwOyAvKiBbMTBdICovXG4gIGxpc3Qtc3R5bGU6IG5vbmU7IC8qIFsxMF0gKi9cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1zaXRlLW5hdjpub3QoW2NsYXNzKj1cImMtc2l0ZS1uYXYtLWJyZWFrQFwiXSkgLmMtc2l0ZS1uYXZfX25hdiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4eGwgLmMtc2l0ZS1uYXZfX25hdiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4bCAuYy1zaXRlLW5hdl9fbmF2IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQGwgLmMtc2l0ZS1uYXZfX25hdiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQG0gLmMtc2l0ZS1uYXZfX25hdiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHMgLmMtc2l0ZS1uYXZfX25hdiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHhzIC5jLXNpdGUtbmF2X19uYXYge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICB9XG59XG4uYy1zaXRlLW5hdl9fbmF2Om5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tcmlnaHQ6IDE2cHg7IC8qIFsxXSAqL1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLXNpdGUtbmF2Om5vdChbY2xhc3MqPVwiYy1zaXRlLW5hdi0tYnJlYWtAXCJdKSAuYy1zaXRlLW5hdl9fbmF2Om5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHh4bCAuYy1zaXRlLW5hdl9fbmF2Om5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHhsIC5jLXNpdGUtbmF2X19uYXY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbCAuYy1zaXRlLW5hdl9fbmF2Om5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbSAuYy1zaXRlLW5hdl9fbmF2Om5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAcyAuYy1zaXRlLW5hdl9fbmF2Om5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAeHMgLmMtc2l0ZS1uYXZfX25hdjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cblxuLmMtc2l0ZS1uYXZfX2l0ZW0uYy1zaXRlLW5hdl9faXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogWzhdICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8qIFsxMF0gKi9cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjFweCkge1xuICAuYy1zaXRlLW5hdjpub3QoW2NsYXNzKj1cImMtc2l0ZS1uYXYtLWJyZWFrQFwiXSkgLmMtc2l0ZS1uYXZfX2l0ZW0uYy1zaXRlLW5hdl9faXRlbSB7XG4gICAgaGVpZ2h0OiAxMDAlOyAvKiBbOF0gKi9cbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDE5MjFweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHh4bCAuYy1zaXRlLW5hdl9faXRlbS5jLXNpdGUtbmF2X19pdGVtIHtcbiAgICBoZWlnaHQ6IDEwMCU7IC8qIFs4XSAqL1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTYwMXB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAeGwgLmMtc2l0ZS1uYXZfX2l0ZW0uYy1zaXRlLW5hdl9faXRlbSB7XG4gICAgaGVpZ2h0OiAxMDAlOyAvKiBbOF0gKi9cbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyODFweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQGwgLmMtc2l0ZS1uYXZfX2l0ZW0uYy1zaXRlLW5hdl9faXRlbSB7XG4gICAgaGVpZ2h0OiAxMDAlOyAvKiBbOF0gKi9cbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MXB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbSAuYy1zaXRlLW5hdl9faXRlbS5jLXNpdGUtbmF2X19pdGVtIHtcbiAgICBoZWlnaHQ6IDEwMCU7IC8qIFs4XSAqL1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBzIC5jLXNpdGUtbmF2X19pdGVtLmMtc2l0ZS1uYXZfX2l0ZW0ge1xuICAgIGhlaWdodDogMTAwJTsgLyogWzhdICovXG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODFweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHhzIC5jLXNpdGUtbmF2X19pdGVtLmMtc2l0ZS1uYXZfX2l0ZW0ge1xuICAgIGhlaWdodDogMTAwJTsgLyogWzhdICovXG4gIH1cbn1cbi5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbm9uZSAuYy1zaXRlLW5hdl9faXRlbS5jLXNpdGUtbmF2X19pdGVtIHtcbiAgaGVpZ2h0OiAxMDAlOyAvKiBbOF0gKi9cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1zaXRlLW5hdjpub3QoW2NsYXNzKj1cImMtc2l0ZS1uYXYtLWJyZWFrQFwiXSkgLmMtc2l0ZS1uYXZfX2l0ZW0uYy1zaXRlLW5hdl9faXRlbSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuYy1zaXRlLW5hdjpub3QoW2NsYXNzKj1cImMtc2l0ZS1uYXYtLWJyZWFrQFwiXSkgLmMtc2l0ZS1uYXZfX2l0ZW0uYy1zaXRlLW5hdl9faXRlbS5jLXNpdGUtbmF2X19pdGVtLS10b3AtYXQtYnJlYWtwb2ludCB7XG4gICAgb3JkZXI6IC0xOyAvKiBbOV0gKi9cbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHh4bCAuYy1zaXRlLW5hdl9faXRlbS5jLXNpdGUtbmF2X19pdGVtIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAeHhsIC5jLXNpdGUtbmF2X19pdGVtLmMtc2l0ZS1uYXZfX2l0ZW0uYy1zaXRlLW5hdl9faXRlbS0tdG9wLWF0LWJyZWFrcG9pbnQge1xuICAgIG9yZGVyOiAtMTsgLyogWzldICovXG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4bCAuYy1zaXRlLW5hdl9faXRlbS5jLXNpdGUtbmF2X19pdGVtIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAeGwgLmMtc2l0ZS1uYXZfX2l0ZW0uYy1zaXRlLW5hdl9faXRlbS5jLXNpdGUtbmF2X19pdGVtLS10b3AtYXQtYnJlYWtwb2ludCB7XG4gICAgb3JkZXI6IC0xOyAvKiBbOV0gKi9cbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQGwgLmMtc2l0ZS1uYXZfX2l0ZW0uYy1zaXRlLW5hdl9faXRlbSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQGwgLmMtc2l0ZS1uYXZfX2l0ZW0uYy1zaXRlLW5hdl9faXRlbS5jLXNpdGUtbmF2X19pdGVtLS10b3AtYXQtYnJlYWtwb2ludCB7XG4gICAgb3JkZXI6IC0xOyAvKiBbOV0gKi9cbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbSAuYy1zaXRlLW5hdl9faXRlbS5jLXNpdGUtbmF2X19pdGVtIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbSAuYy1zaXRlLW5hdl9faXRlbS5jLXNpdGUtbmF2X19pdGVtLmMtc2l0ZS1uYXZfX2l0ZW0tLXRvcC1hdC1icmVha3BvaW50IHtcbiAgICBvcmRlcjogLTE7IC8qIFs5XSAqL1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBzIC5jLXNpdGUtbmF2X19pdGVtLmMtc2l0ZS1uYXZfX2l0ZW0ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBzIC5jLXNpdGUtbmF2X19pdGVtLmMtc2l0ZS1uYXZfX2l0ZW0uYy1zaXRlLW5hdl9faXRlbS0tdG9wLWF0LWJyZWFrcG9pbnQge1xuICAgIG9yZGVyOiAtMTsgLyogWzldICovXG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHhzIC5jLXNpdGUtbmF2X19pdGVtLmMtc2l0ZS1uYXZfX2l0ZW0ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4cyAuYy1zaXRlLW5hdl9faXRlbS5jLXNpdGUtbmF2X19pdGVtLmMtc2l0ZS1uYXZfX2l0ZW0tLXRvcC1hdC1icmVha3BvaW50IHtcbiAgICBvcmRlcjogLTE7IC8qIFs5XSAqL1xuICB9XG59XG4uYy1zaXRlLW5hdl9faXRlbS5jLXNpdGUtbmF2X19pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tcmlnaHQ6IDI0cHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtc2l0ZS1uYXY6bm90KFtjbGFzcyo9XCJjLXNpdGUtbmF2LS1icmVha0BcIl0pIC5jLXNpdGUtbmF2X19pdGVtLmMtc2l0ZS1uYXZfX2l0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAeHhsIC5jLXNpdGUtbmF2X19pdGVtLmMtc2l0ZS1uYXZfX2l0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAeGwgLmMtc2l0ZS1uYXZfX2l0ZW0uYy1zaXRlLW5hdl9faXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBsIC5jLXNpdGUtbmF2X19pdGVtLmMtc2l0ZS1uYXZfX2l0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBtIC5jLXNpdGUtbmF2X19pdGVtLmMtc2l0ZS1uYXZfX2l0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBzIC5jLXNpdGUtbmF2X19pdGVtLmMtc2l0ZS1uYXZfX2l0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4cyAuYy1zaXRlLW5hdl9faXRlbS5jLXNpdGUtbmF2X19pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuXG4uYy1zaXRlLW5hdl9fbGluayB7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8qIFsxMV0gKi9cbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtc2l0ZS1uYXY6bm90KFtjbGFzcyo9XCJjLXNpdGUtbmF2LS1icmVha0BcIl0pIC5jLXNpdGUtbmF2X19saW5rIHtcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgcGFkZGluZy1yaWdodDogMTZweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93OyAvKiBbNl0gKi9cbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHh4bCAuYy1zaXRlLW5hdl9fbGluayB7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgLyogWzZdICovXG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4bCAuYy1zaXRlLW5hdl9fbGluayB7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgLyogWzZdICovXG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBsIC5jLXNpdGUtbmF2X19saW5rIHtcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgcGFkZGluZy1yaWdodDogMTZweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93OyAvKiBbNl0gKi9cbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbSAuYy1zaXRlLW5hdl9fbGluayB7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgLyogWzZdICovXG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHMgLmMtc2l0ZS1uYXZfX2xpbmsge1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IC8qIFs2XSAqL1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4cyAuYy1zaXRlLW5hdl9fbGluayB7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgLyogWzZdICovXG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi5jLXNpdGUtbmF2X19saW5rLmlzLXJldmVyc2VkIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyAvKiBbNl0gKi9cbn1cblxuYnV0dG9uLmMtc2l0ZS1uYXZfX2xpbmsge1xuICBvdXRsaW5lLXdpZHRoOiAwOyAvKiBbMTJdICovXG59XG5idXR0b24uYy1zaXRlLW5hdl9fbGluazpmb2N1cyB7XG4gIG91dGxpbmUtd2lkdGg6IGluaXRpYWw7IC8qIFsxMl0gKi9cbiAgdHJhbnNpdGlvbjogMHMgb3V0bGluZSAwLjJzOyAvKiBbMTJdICovXG59XG5idXR0b24uYy1zaXRlLW5hdl9fbGlua1thcmlhLWV4cGFuZGVkPXRydWVdOmZvY3VzIHtcbiAgb3V0bGluZS13aWR0aDogMDsgLyogWzEyXSAqL1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwczsgLyogWzEyXSAqL1xufVxuXG4uYy1zaXRlLW5hdl9fbGluay1sYWJlbCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLXNpdGUtbmF2Om5vdChbY2xhc3MqPVwiYy1zaXRlLW5hdi0tYnJlYWtAXCJdKSAuYy1zaXRlLW5hdl9fbGluay1sYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHh4bCAuYy1zaXRlLW5hdl9fbGluay1sYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHhsIC5jLXNpdGUtbmF2X19saW5rLWxhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbCAuYy1zaXRlLW5hdl9fbGluay1sYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbSAuYy1zaXRlLW5hdl9fbGluay1sYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAcyAuYy1zaXRlLW5hdl9fbGluay1sYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAeHMgLmMtc2l0ZS1uYXZfX2xpbmstbGFiZWwge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbn1cbi5jLXNpdGUtbmF2X19saW5rOmhvdmVyIC5jLXNpdGUtbmF2X19saW5rLWxhYmVsLCAuYy1zaXRlLW5hdl9fbGluazpmb2N1cyAuYy1zaXRlLW5hdl9fbGluay1sYWJlbCB7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtc2l0ZS1uYXZfX2xpbmsuaXMtYWN0aXZlIC5jLXNpdGUtbmF2X19saW5rLWxhYmVsLCAuYy1zaXRlLW5hdl9fbGlua1thcmlhLWV4cGFuZGVkPXRydWVdIC5jLXNpdGUtbmF2X19saW5rLWxhYmVsIHtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uYy1zaXRlLW5hdl9fbGluay1pY29uIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8qIFs3XSAqL1xuICBtYXJnaW4tbGVmdDogMDtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtc2l0ZS1uYXY6bm90KFtjbGFzcyo9XCJjLXNpdGUtbmF2LS1icmVha0BcIl0pIC5jLXNpdGUtbmF2X19saW5rLWljb24ge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHh4bCAuYy1zaXRlLW5hdl9fbGluay1pY29uIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4bCAuYy1zaXRlLW5hdl9fbGluay1pY29uIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBsIC5jLXNpdGUtbmF2X19saW5rLWljb24ge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbSAuYy1zaXRlLW5hdl9fbGluay1pY29uIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHMgLmMtc2l0ZS1uYXZfX2xpbmstaWNvbiB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4cyAuYy1zaXRlLW5hdl9fbGluay1pY29uIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cbn1cbi5jLXNpdGUtbmF2X19saW5rLWljb246OmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJicm9uc29uLXNrb2RhXCIgIWltcG9ydGFudDsgLyogWzFdICovXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGNvbnRlbnQ6IFwiXFxmMTUxXCI7XG59XG4uYy1zaXRlLW5hdl9fbGluazpob3ZlciAuYy1zaXRlLW5hdl9fbGluay1pY29uLCAuYy1zaXRlLW5hdl9fbGluazpmb2N1cyAuYy1zaXRlLW5hdl9fbGluay1pY29uIHtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uYy1zaXRlLW5hdl9fbGluay5pcy1hY3RpdmUgLmMtc2l0ZS1uYXZfX2xpbmstaWNvbiwgLmMtc2l0ZS1uYXZfX2xpbmtbYXJpYS1leHBhbmRlZD10cnVlXSAuYy1zaXRlLW5hdl9fbGluay1pY29uIHtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZHVwbGljYXRlLXNlbGVjdG9ycyAqL1xuLmMtc2l0ZS1uYXZfX2xpbmsuaXMtcmV2ZXJzZWQgeyAvKiBbMTRdICovIH1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjFweCkge1xuICAuYy1zaXRlLW5hdjpub3QoW2NsYXNzKj1cImMtc2l0ZS1uYXYtLWJyZWFrQFwiXSkgLmMtc2l0ZS1uYXZfX2xpbmsuaXMtcmV2ZXJzZWQgLmMtc2l0ZS1uYXZfX2xpbmstaWNvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTkyMXB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAeHhsIC5jLXNpdGUtbmF2X19saW5rLmlzLXJldmVyc2VkIC5jLXNpdGUtbmF2X19saW5rLWljb24ge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDE2MDFweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHhsIC5jLXNpdGUtbmF2X19saW5rLmlzLXJldmVyc2VkIC5jLXNpdGUtbmF2X19saW5rLWljb24ge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyODFweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQGwgLmMtc2l0ZS1uYXZfX2xpbmsuaXMtcmV2ZXJzZWQgLmMtc2l0ZS1uYXZfX2xpbmstaWNvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTYxcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBtIC5jLXNpdGUtbmF2X19saW5rLmlzLXJldmVyc2VkIC5jLXNpdGUtbmF2X19saW5rLWljb24ge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAcyAuYy1zaXRlLW5hdl9fbGluay5pcy1yZXZlcnNlZCAuYy1zaXRlLW5hdl9fbGluay1pY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODFweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHhzIC5jLXNpdGUtbmF2X19saW5rLmlzLXJldmVyc2VkIC5jLXNpdGUtbmF2X19saW5rLWljb24ge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBub25lIC5jLXNpdGUtbmF2X19saW5rLmlzLXJldmVyc2VkIC5jLXNpdGUtbmF2X19saW5rLWljb24ge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjU0lURS1OQVZcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gRmxpcCB0aGUgaWNvbiBhcm91bmQgdGhlIGhvcml6b250YWwgYXhpcyBzbyB0aGF0IHRoZSBjaGV2cm9ucyBwb2ludCBpbiB0aGVcbiAqICAgICBvcHBvc2l0ZSBkaXJlY3Rpb24gaW4gdGhlIGV4cGFuZGVkIHN0YXRlLlxuICogWzJdIEFkZCBzcGFjaW5nIGFuZCBzaGFkb3cgdG8gcGFuZWwgaW4gc21hbGwgdmlld3BvcnRzLlxuICogWzNdIFNldCBhbiBpbnZpc2libGUgYm9yZGVyIHRvIHByZXZlbnQgbGF5b3V0IHNoaWZ0cyB3aGVuIHRoZSBsaW5rIGdldHMgYWN0aXZlLlxuICovXG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtc2l0ZS1uYXY6bm90KFtjbGFzcyo9XCJjLXNpdGUtbmF2LS1icmVha0BcIl0pIC5jLXNpdGUtbmF2X19wYW5lbCB7XG4gICAgLyogWzJdICovXG4gICAgbGVmdDogMTZweDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMiAqIDE2cHgpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2hhZG93OiAwIDhweCAzMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4eGwgLmMtc2l0ZS1uYXZfX3BhbmVsIHtcbiAgICAvKiBbMl0gKi9cbiAgICBsZWZ0OiAxNnB4O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyICogMTZweCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHhsIC5jLXNpdGUtbmF2X19wYW5lbCB7XG4gICAgLyogWzJdICovXG4gICAgbGVmdDogMTZweDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMiAqIDE2cHgpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2hhZG93OiAwIDhweCAzMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBsIC5jLXNpdGUtbmF2X19wYW5lbCB7XG4gICAgLyogWzJdICovXG4gICAgbGVmdDogMTZweDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMiAqIDE2cHgpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2hhZG93OiAwIDhweCAzMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQG0gLmMtc2l0ZS1uYXZfX3BhbmVsIHtcbiAgICAvKiBbMl0gKi9cbiAgICBsZWZ0OiAxNnB4O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyICogMTZweCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAcyAuYy1zaXRlLW5hdl9fcGFuZWwge1xuICAgIC8qIFsyXSAqL1xuICAgIGxlZnQ6IDE2cHg7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIgKiAxNnB4KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4cyAuYy1zaXRlLW5hdl9fcGFuZWwge1xuICAgIC8qIFsyXSAqL1xuICAgIGxlZnQ6IDE2cHg7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIgKiAxNnB4KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICB9XG59XG5cbi5jLXNpdGUtbmF2X190b2dnbGUge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbi5jLXNpdGUtbmF2X190b2dnbGVbYXJpYS1leHBhbmRlZD10cnVlXSAuYy1zaXRlLW5hdl9fdG9nZ2xlLWljb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTVhXCI7XG59XG5cbi5jLXNpdGUtbmF2X19saW5rLWljb24ge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbn1cbi5jLXNpdGUtbmF2X19saW5rW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0gLmMtc2l0ZS1uYXZfX2xpbmstaWNvbiB7XG4gIHRyYW5zZm9ybTogc2NhbGVZKC0xKTsgLyogWzFdICovXG59XG5cbi5jLXNpdGUtbmF2X19saW5rIC5jLXNpdGUtbmF2X19saW5rLWxhYmVsIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRyYW5zcGFyZW50OyAvKiBbM10gKi9cbn1cbi5jLXNpdGUtbmF2X19saW5rW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0gLmMtc2l0ZS1uYXZfX2xpbmstbGFiZWwsIC5jLXNpdGUtbmF2X19saW5rLmlzLWFjdGl2ZSAuYy1zaXRlLW5hdl9fbGluay1sYWJlbCB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5jLXNpdGUtbmF2X19saW5rOmZvY3VzLXZpc2libGUge1xuICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICMxNjE3MTg7XG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDhweDtcbiAgLS1mb2N1cy1vdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgLS1mb2N1cy1vdXRsaW5lLXdpZHRoOiAycHg7XG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWZvY3VzLW91dGxpbmUtY29sb3IsICMxNjE3MTgpO1xuICBvdXRsaW5lLW9mZnNldDogdmFyKC0tZm9jdXMtb3V0bGluZS1vZmZzZXQsIDFweCk7XG4gIG91dGxpbmUtc3R5bGU6IHZhcigtLWZvY3VzLW91dGxpbmUtc3R5bGUsIHNvbGlkKTtcbiAgb3V0bGluZS13aWR0aDogdmFyKC0tZm9jdXMtb3V0bGluZS13aWR0aCwgMnB4KTtcbn1cbi5jLXNpdGUtbmF2X19saW5rOmZvY3VzIHtcbiAgb3V0bGluZS13aWR0aDogMnB4ICFpbXBvcnRhbnQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgaXRjc3Mvbm8tYXQtaW1wb3J0YW50ICovXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNTSVRFLU5BVi1EUk9QRE9XTlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBJZiB0aGVyZSBpcyBtb3JlIHRoZW4gb25lIGAuYy1zaXRlLW5hdl9fbmF2YCwgYWx3YXlzIGFsaWduIHRoZSBkcm9wZG93blxuICogICAgIG9mIHRoZSBsYXN0IGAuYy1zaXRlLW5hdl9fbmF2YCB0byB0aGUgcmlnaHQuXG4gKiBbMl0gTWFrZSB0aGUgdHJhbnNpdGlvbiBqdXN0IGF2YWlsYWJsZSBmb3Igdmlld3BvcnQgd2lkdGggYWJvdmUgYnJlYWtwb2ludC5cbiAqIFszXSBDaGFuZ2UgdGhlIGxpc3QncyBwb3NpdGlvbiBmb3IgZmx5LWluIGFuZCBmbHktb3V0IGVmZmVjdHMuXG4gKiBbNF0gQXQgYnJlYWtwb2ludCwgdGhlIGRyb3Bkb3duIGFsd2F5cyBoYXMgZnVsbCB3aWR0aC5cbiAqIFs1XSBEZWZlbnNpdmVseSByZXNldCBhbnkgZGVmYXVsdCBsaXN0LXN0eWxlIHByb3BlcnRpZXMuXG4gKi9cbi5jLXNpdGUtbmF2LWRyb3Bkb3duIHtcbiAgbWF4LWhlaWdodDogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MXB4KSB7XG4gIC5jLXNpdGUtbmF2Om5vdChbY2xhc3MqPVwiYy1zaXRlLW5hdi0tYnJlYWtAXCJdKSAuYy1zaXRlLW5hdi1kcm9wZG93biB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAzMTJweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDE5MjFweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHh4bCAuYy1zaXRlLW5hdi1kcm9wZG93biB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAzMTJweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDE2MDFweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHhsIC5jLXNpdGUtbmF2LWRyb3Bkb3duIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDMxMnB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbCAuYy1zaXRlLW5hdi1kcm9wZG93biB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAzMTJweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MXB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbSAuYy1zaXRlLW5hdi1kcm9wZG93biB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAzMTJweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAcyAuYy1zaXRlLW5hdi1kcm9wZG93biB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAzMTJweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MXB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAeHMgLmMtc2l0ZS1uYXYtZHJvcGRvd24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMzEycHg7XG4gIH1cbn1cbi5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbm9uZSAuYy1zaXRlLW5hdi1kcm9wZG93biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMzEycHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtc2l0ZS1uYXY6bm90KFtjbGFzcyo9XCJjLXNpdGUtbmF2LS1icmVha0BcIl0pIC5jLXNpdGUtbmF2LWRyb3Bkb3duIHtcbiAgICB3aWR0aDogMTAwJTsgLyogWzRdICovXG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4eGwgLmMtc2l0ZS1uYXYtZHJvcGRvd24ge1xuICAgIHdpZHRoOiAxMDAlOyAvKiBbNF0gKi9cbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHhsIC5jLXNpdGUtbmF2LWRyb3Bkb3duIHtcbiAgICB3aWR0aDogMTAwJTsgLyogWzRdICovXG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBsIC5jLXNpdGUtbmF2LWRyb3Bkb3duIHtcbiAgICB3aWR0aDogMTAwJTsgLyogWzRdICovXG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQG0gLmMtc2l0ZS1uYXYtZHJvcGRvd24ge1xuICAgIHdpZHRoOiAxMDAlOyAvKiBbNF0gKi9cbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAcyAuYy1zaXRlLW5hdi1kcm9wZG93biB7XG4gICAgd2lkdGg6IDEwMCU7IC8qIFs0XSAqL1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4cyAuYy1zaXRlLW5hdi1kcm9wZG93biB7XG4gICAgd2lkdGg6IDEwMCU7IC8qIFs0XSAqL1xuICB9XG59XG4uYy1zaXRlLW5hdi1kcm9wZG93bjpub3QoLmlzLWNvbGxhcHNlZCkge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTYxcHgpIHtcbiAgLmMtc2l0ZS1uYXY6bm90KFtjbGFzcyo9XCJjLXNpdGUtbmF2LS1icmVha0BcIl0pIC5jLXNpdGUtbmF2X19uYXY6bGFzdC1jaGlsZDpub3QoOm9ubHktY2hpbGQpIC5jLXNpdGUtbmF2LWRyb3Bkb3duIHtcbiAgICByaWdodDogMDsgLyogWzFdICovXG4gICAgbGVmdDogYXV0bzsgLyogWzFdICovXG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxOTIxcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4eGwgLmMtc2l0ZS1uYXZfX25hdjpsYXN0LWNoaWxkOm5vdCg6b25seS1jaGlsZCkgLmMtc2l0ZS1uYXYtZHJvcGRvd24ge1xuICAgIHJpZ2h0OiAwOyAvKiBbMV0gKi9cbiAgICBsZWZ0OiBhdXRvOyAvKiBbMV0gKi9cbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDE2MDFweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHhsIC5jLXNpdGUtbmF2X19uYXY6bGFzdC1jaGlsZDpub3QoOm9ubHktY2hpbGQpIC5jLXNpdGUtbmF2LWRyb3Bkb3duIHtcbiAgICByaWdodDogMDsgLyogWzFdICovXG4gICAgbGVmdDogYXV0bzsgLyogWzFdICovXG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgxcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBsIC5jLXNpdGUtbmF2X19uYXY6bGFzdC1jaGlsZDpub3QoOm9ubHktY2hpbGQpIC5jLXNpdGUtbmF2LWRyb3Bkb3duIHtcbiAgICByaWdodDogMDsgLyogWzFdICovXG4gICAgbGVmdDogYXV0bzsgLyogWzFdICovXG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjFweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQG0gLmMtc2l0ZS1uYXZfX25hdjpsYXN0LWNoaWxkOm5vdCg6b25seS1jaGlsZCkgLmMtc2l0ZS1uYXYtZHJvcGRvd24ge1xuICAgIHJpZ2h0OiAwOyAvKiBbMV0gKi9cbiAgICBsZWZ0OiBhdXRvOyAvKiBbMV0gKi9cbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAcyAuYy1zaXRlLW5hdl9fbmF2Omxhc3QtY2hpbGQ6bm90KDpvbmx5LWNoaWxkKSAuYy1zaXRlLW5hdi1kcm9wZG93biB7XG4gICAgcmlnaHQ6IDA7IC8qIFsxXSAqL1xuICAgIGxlZnQ6IGF1dG87IC8qIFsxXSAqL1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4cyAuYy1zaXRlLW5hdl9fbmF2Omxhc3QtY2hpbGQ6bm90KDpvbmx5LWNoaWxkKSAuYy1zaXRlLW5hdi1kcm9wZG93biB7XG4gICAgcmlnaHQ6IDA7IC8qIFsxXSAqL1xuICAgIGxlZnQ6IGF1dG87IC8qIFsxXSAqL1xuICB9XG59XG4uYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQG5vbmUgLmMtc2l0ZS1uYXZfX25hdjpsYXN0LWNoaWxkOm5vdCg6b25seS1jaGlsZCkgLmMtc2l0ZS1uYXYtZHJvcGRvd24ge1xuICByaWdodDogMDsgLyogWzFdICovXG4gIGxlZnQ6IGF1dG87IC8qIFsxXSAqL1xufVxuXG4uYy1zaXRlLW5hdi1kcm9wZG93bl9fbGlzdCB7XG4gIG1hcmdpbjogMDsgLyogWzVdICovXG4gIHBhZGRpbmc6IDAgMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsgLyogWzNdICovXG4gIGxpc3Qtc3R5bGU6IG5vbmU7IC8qIFs1XSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLXNpdGUtbmF2Om5vdChbY2xhc3MqPVwiYy1zaXRlLW5hdi0tYnJlYWtAXCJdKSAuYy1zaXRlLW5hdi1kcm9wZG93bl9fbGlzdCB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4eGwgLmMtc2l0ZS1uYXYtZHJvcGRvd25fX2xpc3Qge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAeGwgLmMtc2l0ZS1uYXYtZHJvcGRvd25fX2xpc3Qge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbCAuYy1zaXRlLW5hdi1kcm9wZG93bl9fbGlzdCB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQG0gLmMtc2l0ZS1uYXYtZHJvcGRvd25fX2xpc3Qge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBzIC5jLXNpdGUtbmF2LWRyb3Bkb3duX19saXN0IHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAeHMgLmMtc2l0ZS1uYXYtZHJvcGRvd25fX2xpc3Qge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG59XG4uYy1zaXRlLW5hdi1kcm9wZG93bjpub3QoLmlzLWNvbGxhcHNlZCkgLmMtc2l0ZS1uYXYtZHJvcGRvd25fX2xpc3Qge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IC8qIFszXSAqL1xufVxuXG4uYy1zaXRlLW5hdi1kcm9wZG93bl9fdGl0bGUge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA4cHggMjRweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICM3YzdkN2U7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtc2l0ZS1uYXY6bm90KFtjbGFzcyo9XCJjLXNpdGUtbmF2LS1icmVha0BcIl0pIC5jLXNpdGUtbmF2LWRyb3Bkb3duX190aXRsZSB7XG4gICAgcGFkZGluZy10b3A6IDhweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHh4bCAuYy1zaXRlLW5hdi1kcm9wZG93bl9fdGl0bGUge1xuICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4bCAuYy1zaXRlLW5hdi1kcm9wZG93bl9fdGl0bGUge1xuICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBsIC5jLXNpdGUtbmF2LWRyb3Bkb3duX190aXRsZSB7XG4gICAgcGFkZGluZy10b3A6IDhweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbSAuYy1zaXRlLW5hdi1kcm9wZG93bl9fdGl0bGUge1xuICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHMgLmMtc2l0ZS1uYXYtZHJvcGRvd25fX3RpdGxlIHtcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4cyAuYy1zaXRlLW5hdi1kcm9wZG93bl9fdGl0bGUge1xuICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gIH1cbn1cblxuLmMtc2l0ZS1uYXYtZHJvcGRvd25fX2xpbmsge1xuICBmb250LXNpemU6IDFyZW07XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMTJweCAyNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLXNpdGUtbmF2Om5vdChbY2xhc3MqPVwiYy1zaXRlLW5hdi0tYnJlYWtAXCJdKSAuYy1zaXRlLW5hdi1kcm9wZG93bl9fbGluayB7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAeHhsIC5jLXNpdGUtbmF2LWRyb3Bkb3duX19saW5rIHtcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4bCAuYy1zaXRlLW5hdi1kcm9wZG93bl9fbGluayB7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbCAuYy1zaXRlLW5hdi1kcm9wZG93bl9fbGluayB7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBtIC5jLXNpdGUtbmF2LWRyb3Bkb3duX19saW5rIHtcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHMgLmMtc2l0ZS1uYXYtZHJvcGRvd25fX2xpbmsge1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAeHMgLmMtc2l0ZS1uYXYtZHJvcGRvd25fX2xpbmsge1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgfVxufVxuLmMtc2l0ZS1uYXYtZHJvcGRvd25fX2xpbms6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5jLXNpdGUtbmF2LWRyb3Bkb3duX19saW5rLmlzLWFjdGl2ZSwgLmMtc2l0ZS1uYXYtZHJvcGRvd25fX2xpbms6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1NJVEUtTkFWXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogMS4gVHJhbnNpdGlvbiB0aGUgb3BhY2l0eSBiZWNhdXNlIGEgc2xpZGUtaW4gdHJhbnNpdGlvbiB3b3VsZCBub3Qgd29yayB2ZXJ5XG4gKiAgICB3ZWxsIHdpdGggdGhlIGJveCBzaGFkb3cgb2YgdGhlIGNvbXBvbmVudC5cbiAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk2MXB4KSB7XG4gIC5jLXNpdGUtbmF2Om5vdChbY2xhc3MqPVwiYy1zaXRlLW5hdi0tYnJlYWtAXCJdKSAuYy1zaXRlLW5hdi1kcm9wZG93biB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgIG9wYWNpdHk6IDA7IC8qIFsxXSAqL1xuICB9XG4gIC5jLXNpdGUtbmF2Om5vdChbY2xhc3MqPVwiYy1zaXRlLW5hdi0tYnJlYWtAXCJdKSAuYy1zaXRlLW5hdi1kcm9wZG93bjpub3QoLmlzLWNvbGxhcHNlZCkge1xuICAgIG9wYWNpdHk6IDE7IC8qIFsxXSAqL1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTkyMXB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAeHhsIC5jLXNpdGUtbmF2LWRyb3Bkb3duIHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAgIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAgIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAgIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2hhZG93OiAwIDhweCAzMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgb3BhY2l0eTogMDsgLyogWzFdICovXG4gIH1cbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4eGwgLmMtc2l0ZS1uYXYtZHJvcGRvd246bm90KC5pcy1jb2xsYXBzZWQpIHtcbiAgICBvcGFjaXR5OiAxOyAvKiBbMV0gKi9cbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDE2MDFweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHhsIC5jLXNpdGUtbmF2LWRyb3Bkb3duIHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAgIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAgIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAgIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2hhZG93OiAwIDhweCAzMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgb3BhY2l0eTogMDsgLyogWzFdICovXG4gIH1cbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEB4bCAuYy1zaXRlLW5hdi1kcm9wZG93bjpub3QoLmlzLWNvbGxhcHNlZCkge1xuICAgIG9wYWNpdHk6IDE7IC8qIFsxXSAqL1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbCAuYy1zaXRlLW5hdi1kcm9wZG93biB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgIG9wYWNpdHk6IDA7IC8qIFsxXSAqL1xuICB9XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbCAuYy1zaXRlLW5hdi1kcm9wZG93bjpub3QoLmlzLWNvbGxhcHNlZCkge1xuICAgIG9wYWNpdHk6IDE7IC8qIFsxXSAqL1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTYxcHgpIHtcbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBtIC5jLXNpdGUtbmF2LWRyb3Bkb3duIHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAgIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAgIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAgIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2hhZG93OiAwIDhweCAzMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgb3BhY2l0eTogMDsgLyogWzFdICovXG4gIH1cbiAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEBtIC5jLXNpdGUtbmF2LWRyb3Bkb3duOm5vdCguaXMtY29sbGFwc2VkKSB7XG4gICAgb3BhY2l0eTogMTsgLyogWzFdICovXG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHMgLmMtc2l0ZS1uYXYtZHJvcGRvd24ge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gICAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gICAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gICAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICBvcGFjaXR5OiAwOyAvKiBbMV0gKi9cbiAgfVxuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHMgLmMtc2l0ZS1uYXYtZHJvcGRvd246bm90KC5pcy1jb2xsYXBzZWQpIHtcbiAgICBvcGFjaXR5OiAxOyAvKiBbMV0gKi9cbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MXB4KSB7XG4gIC5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAeHMgLmMtc2l0ZS1uYXYtZHJvcGRvd24ge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gICAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gICAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gICAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICBvcGFjaXR5OiAwOyAvKiBbMV0gKi9cbiAgfVxuICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQHhzIC5jLXNpdGUtbmF2LWRyb3Bkb3duOm5vdCguaXMtY29sbGFwc2VkKSB7XG4gICAgb3BhY2l0eTogMTsgLyogWzFdICovXG4gIH1cbn1cbi5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbm9uZSAuYy1zaXRlLW5hdi1kcm9wZG93biB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBvcGFjaXR5OiAwOyAvKiBbMV0gKi9cbn1cbi5jLXNpdGUtbmF2LmMtc2l0ZS1uYXYtLWJyZWFrXFxAbm9uZSAuYy1zaXRlLW5hdi1kcm9wZG93bjpub3QoLmlzLWNvbGxhcHNlZCkge1xuICBvcGFjaXR5OiAxOyAvKiBbMV0gKi9cbn1cblxuLmMtc2l0ZS1uYXYtZHJvcGRvd25fX3RpdGxlIHtcbiAgcGFkZGluZy10b3A6IDE2cHg7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNDT05URVhUIEJBUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBUb2dnbGUgdmlzaWJpbGl0eSBvZiBsYWJlbCB1bmRlcm5lYXRoIGNvbnRleHQgYmFyIGljb24uXG4qL1xuLmMtY29udGV4dC1iYXIge1xuICBoZWlnaHQ6IDY0cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtY29udGV4dC1iYXIge1xuICAgIGhlaWdodDogNjRweDtcbiAgfVxufVxuXG4uYy1jb250ZXh0LWJhcl9fcGFuZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmMtY29udGV4dC1iYXJfX25hdnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uYy1jb250ZXh0LWJhcl9fbmF2IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmMtY29udGV4dC1iYXJfX25hdiBsaSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYy1jb250ZXh0LWJhcl9fdGl0bGUge1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogIzE2MTcxODtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1jb250ZXh0LWJhcl9fdGl0bGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmMtY29udGV4dC1iYXJfX2xpbmsge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG5cbi5jLWNvbnRleHQtYmFyX19pY29uIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMjRweDtcbn1cbi5jLWNvbnRleHQtYmFyX19pY29uLWxhYmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0RBVEEtT1ZFUlZJRVdcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gIEZpeCB2ZXJ0aWNhbCBhbGlnbm1lbnQgd2l0aCBvdGhlciBlbGVtZW50cyBpbiBoZWFkZXIuXG4gKiBbMl0gIERlZmVuc2l2ZWx5IHJlc2V0IGFueSBwb3RlbnRpYWwgbWFyZ2luLWJvdHRvbSB0aGF0IGNvbWVzIHdpdGggdGhlXG4gKiAgICAgIGVsZW1lbnRzIHRoYXQgYXJlIGJlaW5nIHVzZWQgYXMgdGhlIHRpdGxlLlxuICogWzRdICBEZWZlbnNpdmVseSByZXNldCBhbnkgdHJhaWxpbmcgbWFyZ2luLWJvdHRvbSBhdCB0aGUgZW5kIG9mIHRoZVxuICogICAgICBjb21wb25lbnQuXG4gKiBbNV0gIEVuc3VyZSB0aGF0IHRoZSBpY29uIGFsd2F5cyBqdXN0IHRha2VzIHVwIHRoZSBzcGFjZSBlcXVhbCB0byBpdHMgc2l6ZS5cbiAqIFs2XSAgV29yZHMgY2FuIGJlIGJyb2tlbiBhdCBhcHByb3ByaWF0ZSBoeXBoZW5hdGlvbiBwb2ludHMgZWl0aGVyIGFzXG4gKiAgICAgIGRldGVybWluZWQgYnkgaHlwaGVuYXRpb24gY2hhcmFjdGVycyAoc29mdCBgJnNoeTtgIG9yIGhhcmQgYFUrMjAxMGBcbiAqICAgICAgaHlwaGVuKSBpbnNpZGUgdGhlIHdvcmQgb3IgYXMgZGV0ZXJtaW5lZCBhdXRvbWF0aWNhbGx5IGJ5IGFcbiAqICAgICAgbGFuZ3VhZ2UtYXBwcm9wcmlhdGUgaHlwaGVuYXRpb24gcmVzb3VyY2UgKGUuZy4gdGhlIGBsYW5nYCBhdHRyaWJ1dGUgZm9yXG4gKiAgICAgIHRoZSBkb2N1bWVudCBvciBwYXJlbnQgZWxlbWVudCkuIFNldHRpbmcgYSBsYW5ndWFnZSBhcHByb3ByaWF0ZSB0byB0aGVcbiAqICAgICAgY29udGVudCBzZWVtcyB0byBiZSBtb3JlIGltcG9ydGFudCBpbiBzb21lIGJyb3dzZXJzIChlLmcuIEZpcmVmb3gpIHRoYW5cbiAqICAgICAgaW4gb3RoZXJzIChDaHJvbWUpLiBBbGwgaW4gYWxsLCBoeXBoZW5hdGlvbiBzaG91bGQgYmUgY29uc2lkZXJlZCBhXG4gKiAgICAgIHByb2dyZXNzaXZlIGVuaGFuY2VtZW50LCB3aGljaCBiZWhhdmVzIGRpZmZlcmVudGx5IGluIGRpZmZlcmVudCBicm93c2Vycy5cbiAqIFs3XSAgQnJlYWsgYSB3b3JkIG9udG8gbXVsdGlwbGUgbGluZXMgaWYgaXTigJlzIHRvbyBsYXJnZSB0byBmaXQuXG4gKiBbOF0gIEFsbG93IGhlYWRlciBpdGVtcyB0byB3cmFwLlxuICogWzldICBWZXJ0aWNhbCBzcGFjZSBiZXR3ZWVuIGhlYWRlciBpdGVtcyBoYXZlIGJyb2tlbiB1bmRlciBlYWNoIG90aGVyLlxuICogWzEwXSBIaWRlIGJ1dHRvbiBsYWJlbCBmb3IgY29tcG9uZW50IGJyZWFrcG9pbnQuXG4gKiBbMTFdIEFsd2F5cyBoaWRlIHRoZSBkYXRhLW92ZXJ2aWV3IGhlYWRlciBpY29uIGFzIHBlciBkZXNpZ24uXG4gKiBbMTJdIFJlbW92ZSBtaW5pbXVtIHdpZHRoIGZvciBidXR0b25zIGluIGAuYy1kYXRhLW92ZXJ2aWV3YC5cbiAqL1xuLmMtZGF0YS1vdmVydmlldyB7XG4gIHBhZGRpbmctdG9wOiAyNHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjRweDtcbiAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU0O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gIC8qKlxuICAgKiBbMV0gQ2hlY2sgaWYgYSB0aGVtZSBpcyBzZXQgb3IgaWYgdGhlIGRlZmF1bHQgdGhlbWUgKG51bGwpIGlzIHVzZWQuXG4gICAqICAgICBJZiB0aGUgYGRlZmF1bHRgIHRoZW1lIGlzIHVzZWQgd2UgZXhlY3V0ZSB0aGUgYWxyZWFkeSBwcmVzZW50IGxvZ2ljLFxuICAgKiAgICAgZWxzZSB3ZSBqdXN0IHJldHVybiB0aGUgY29udGVudCB1bndyYXBwZWQuXG4gICAqL1xufVxuLyogWzFdICovXG5bZGF0YS10aGVtZT1hbHRlcm5hdGl2ZV0gLmMtZGF0YS1vdmVydmlldyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi5jLWRhdGEtb3ZlcnZpZXdfX2hlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDsgLyogWzhdICovXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogLTE2cHg7IC8qIFs5XSAqL1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLWRhdGEtb3ZlcnZpZXdfX2hlYWRlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgfVxufVxuLmMtZGF0YS1vdmVydmlld19faGVhZGVyID4gKiB7XG4gIG1hcmdpbi10b3A6IDE2cHg7IC8qIFs5XSAqL1xufVxuXG4uYy1kYXRhLW92ZXJ2aWV3X19pY29uIHtcbiAgZmxleC1ncm93OiAwOyAvKiBbNV0gKi9cbiAgZmxleC1zaHJpbms6IDA7IC8qIFs1XSAqL1xuICBmbGV4LWJhc2lzOiAzMnB4OyAvKiBbNV0gKi9cbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xufVxuLmMtZGF0YS1vdmVydmlld19faWNvbiAuYy1pY29uIHtcbiAgZm9udC1zaXplOiAycmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZGlzcGxheTogYmxvY2s7IC8qIFsxXSAqL1xuICBjb2xvcjogIzE2MTcxODtcbn1cblxuLmMtZGF0YS1vdmVydmlld19fdGl0bGUge1xuICBmb250LXNpemU6IDEuNDM3NXJlbTtcbiAgZmxleC1ncm93OiAxO1xuICBmbGV4LXNocmluazogMTtcbiAgZmxleC1iYXNpczogNWVtO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzJdICovXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGh5cGhlbnM6IGF1dG87IC8qIFs2XSAqL1xuICBjb2xvcjogIzE2MTcxODtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsgLyogWzddICovXG59XG5cbi5jLWRhdGEtb3ZlcnZpZXdfX2J1dHRvbiB7XG4gIGZsZXgtZ3JvdzogMDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGZsZXgtYmFzaXM6IGF1dG87XG59XG4uYy1kYXRhLW92ZXJ2aWV3X19idXR0b24gLmMtYnRuX19pY29uOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcImJyb25zb24tc2tvZGFcIiAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgY29udGVudDogXCJcXGYxNzRcIjtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuLmMtZGF0YS1vdmVydmlld19fYnV0dG9uLmMtYnRuIHtcbiAgbWluLXdpZHRoOiBhdXRvOyAvKiBbMTJdICovXG59XG5cbi5jLWRhdGEtb3ZlcnZpZXdfX2JvZHkgPiAqOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbNF0gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0RBVEVQSUNLRVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gVGhpcyBjbGFzcyBpcyBjdXJyZW50bHkgb25seSBhIHBsYWNlaG9sZGVyLiBJdCBpcyBwYXJ0IG9mIHRoZSB0aW1lcGlja2VyJ3NcbiAqICAgICBIVE1MIG1hcmt1cCBhbmQgaXMgZGVzaWduZWQgdG8gcHJldmVudCBjaGFuZ2VzIHRvIHRoZSBtYXJrdXAuIFBsZWFzZSByZWZlclxuICogICAgIHRvIGB2ZW5kb3IvZmxhdHBpY2tyL2ZsYXRwaWNrci5zY3NzYCBhbmQgYHZlbmRvci9mbGF0cGlja3IvZmxhdHBpY2tyLnNldHRpbmdzLnNjc3NgXG4gKiAgICAgdG8gc2VlIHRoZSBzdHlsaW5nIG9mIHRoZSBjdXJyZW50IHRpbWVwaWNrZXIuXG4gKi9cbi5jLWRhdGVwaWNrZXIge1xuICAvKiBbMV0gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1RJTUVQSUNLRVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gVGhpcyBjbGFzcyBpcyBjdXJyZW50bHkgb25seSBhIHBsYWNlaG9sZGVyLiBJdCBpcyBwYXJ0IG9mIHRoZSB0aW1lcGlja2VyJ3NcbiAqICAgICBIVE1MIG1hcmt1cCBhbmQgaXMgZGVzaWduZWQgdG8gcHJldmVudCBjaGFuZ2VzIHRvIHRoZSBtYXJrdXAuIFBsZWFzZSByZWZlclxuICogICAgIHRvIGB2ZW5kb3IvZmxhdHBpY2tyL2ZsYXRwaWNrci5zY3NzYCBhbmQgYHZlbmRvci9mbGF0cGlja3IvZmxhdHBpY2tyLnNldHRpbmdzLnNjc3NgXG4gKiAgICAgdG8gc2VlIHRoZSBzdHlsaW5nIG9mIHRoZSBjdXJyZW50IHRpbWVwaWNrZXIuXG4gKi9cbi5jLXRpbWVwaWNrZXIge1xuICAvKiBbMV0gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0lOU1RSVUNUSU9OLVNURVBQRVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBsZW5ndGgtemVyby1uby11bml0ICovXG4vKiBbMTFdICovIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgdW5pdC1kaXNhbGxvd2VkLWxpc3QgKi9cbi8qKlxuICogWzFdIFJlc2V0IGN1c3RvbSBudW1iZXJpbmcuXG4gKiBbMl0gTWFrZSBhbGwgaXRlbXMgc2FtZS13aWR0aC5cbiAqIFszXSBSZXNldCBkZWZhdWx0IG1hcmdpbiwgcGFkZGluZywgYW5kIGxpc3Qgc3R5bGUgdHlwZSBvZiBsaXN0cy5cbiAqIFs0XSBIb3Jpem9udGFsIGNvbm5lY3Rvci5cbiAqIFs1XSBWZXJ0aWNhbCBjb25uZWN0b3IuXG4gKiBbNl0gTW92ZSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBob3Jpem9udGFsL3ZlcnRpY2FsIGNvbm5lY3RvciB0byB0aGUgY2VudGVyIG9mXG4gKiAgICAgdGhlIHJlc3BlY3RpdmUgaXRlbS5cbiAqIFs3XSBGaXggb3ZlcmxhcHBpbmcgYDxkaXY+YHMgaW4gSUUuXG4gKiBbOF0gU3RhY2sgaXRlbSBhYm92ZSBjb25uZWN0b3IuXG4gKiBbOV0gUmVzZXQgaG9yaXpvbnRhbCBzcGFjaW5nLlxuICogWzEwXSBSZW1vdmUgc3BhY2luZyB0byBhbGlnbiBkZWZhdWx0IGFuZCBhY3RpdmUgaXRlbXMuXG4gKiBbMTFdIFN0YXJ0IHRpdGxlIGluIGNlbnRlciBvZiBpdGVtLlxuICogICAgICBVc2luZyBiYXNlbGluZSBkb2VzIG5vdCBjZW50ZXIgaXQgcHJvcGVybHkuIFVzaW5nIGBleGAgaXMgYmFzZWQgb24gdGhlXG4gKiAgICAgIHgtaGVpZ2h0IG9mIHRoZSB0aXRsZSB3aGljaCBhcHByb3guIGlzIGhhbGYgb2YgdGhlIHNpemUsIG5lZWRlZCBhcyBhbiBvZmZzZXQuXG4gKiBbMTJdIEltcHJvdmUgcmVhZGFiaWxpdHkgYnkgbGltaXRpbmcgdGhlIG1heGltYWwgbGluZSBsZW5ndGguXG4gKiBbMTNdIFRoZSBgcHhgIHVuaXRzIG11c3QgYmUgcmVtb3ZlZCBiZWNhdXNlIHRoZSBgZm9udC1zaXplYCBtaXhpbiBzZWVzXG4gKiAgICAgIENTUyBjdXN0b20gcHJvcGVydGllcyBhcyBhIHN0cmluZyBhbmQgZG9lcyBub3Qga25vdyBpdHMgdmFsdWUuIFRoZVxuICogICAgICBmb2xsb3dpbmcgY29udmVyc2lvbiB0byBgUkVNYCB2aWEgQ1NTIGBjYWxjYCBtdXN0IGJlIGRvbmUgd2l0aG91dCB1bml0LlxuICogWzE0XSBBIGNvcnJlY3Rpb24gYnVmZmVyIGZvciBsaW5lcyB0byBhdm9pZCBtaWNybyBnYXBzIGJldHdlZW4gc3RlcHMgYW5kIGNvbm5lY3RvcnMuXG4gKi9cbi5jLWluc3RydWN0aW9uLXN0ZXBwZXIge1xuICAtLWluc3RydWN0aW9uLXN0ZXBwZXItZ2FwOiAyNHB4O1xuICAtLWluc3RydWN0aW9uLXN0ZXBwZXItbGluZS1nYXA6IDJweDtcbiAgLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tc2l6ZTogNjRweDtcbiAgLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tZm9udC1zaXplOiAyODsgLyogWzEzXSAqL1xuICAtLWluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1pY29uLXNpemU6IDQwOyAvKiBbMTNdICovXG4gIC0taW5zdHJ1Y3Rpb24tc3RlcHBlci1jb3JyZWN0aW9uLWJ1ZmZlcjogMHB4OyAvKiBbMTRdICovIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgbGVuZ3RoLXplcm8tbm8tdW5pdCAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbjogMDsgLyogWzNdICovXG4gIHBhZGRpbmc6IDA7IC8qIFszXSAqL1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IC8qIFszXSAqL1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5jLWluc3RydWN0aW9uLXN0ZXBwZXIuYy1pbnN0cnVjdGlvbi1zdGVwcGVyLS1jZW50ZXIge1xuICAgIG1heC13aWR0aDogZml0LWNvbnRlbnQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2NhbGUtdW5saW1pdGVkL2RlY2xhcmF0aW9uLXN0cmljdC12YWx1ZSAqL1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5jLWluc3RydWN0aW9uLXN0ZXBwZXI6bm90KC5jLWluc3RydWN0aW9uLXN0ZXBwZXItLXZlcnRpY2FsKSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxufVxuXG4uYy1pbnN0cnVjdGlvbi1zdGVwcGVyLS1udW1iZXJlZCB7XG4gIGNvdW50ZXItcmVzZXQ6IGluc3RydWN0aW9uLXN0ZXBwZXItY291bnQ7IC8qIFsxXSAqL1xufVxuXG4uYy1pbnN0cnVjdGlvbi1zdGVwcGVyX19zdGVwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgLyogWzExXSAqL1xuICBmbGV4LWdyb3c6IDE7IC8qIFsyXSAqL1xuICBmbGV4LXNocmluazogMTtcbiAgbWluLWhlaWdodDogdmFyKC0taW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLXNpemUpO1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAvKipcbiAgICogUG9zaXRpb24gbG9naWMganVzdCBjaGFuZ2VzIGluIG9ydGhvZ29uYWxpdHkgc28gd2Ugc3dhcCBvdXQgdGhlIHByb3BlcnRpZXMgcmVzcGVjdGl2ZWx5LlxuICAgKiBhLiBDb250cm9sIHRoZSB0aGlja25lc3MgcHJvcGVydHkgZm9yIHRoZSBsaW5lLlxuICAgKiBiLiBDb250cm9sIHRoZSBkaW1lbnNpb24gcHJvcGVydHkgb2YgdGhlIGxpbmU6XG4gICAqICAgIGBoZWlnaHRgIGZvciB2ZXJ0aWNhbCBvcmllbnRhdGlvbiBhbmQgYHdpZHRoYCBmb3IgaG9yaXpvbnRhbCBvcmllbnRhdGlvbi5cbiAgICogYy4gVGhlIHByb3BlcnR5IHRoYXQgY29udHJvbHMgdGhlIGxpbmUgZGltZW5zaW9uYWwgX29mZnNldC5cbiAgICogZC4gQ2FsY3VsYXRlIHRoZSBnYXAgKG9mZnNldCkgb2YgdGhlIGxpbmUgYnkgdGFraW5nIGl0ZW0gc2l6ZSBhbmRcbiAgICogICAgbGluZSBnYXAgaW50byBhY2NvdW50LlxuICAgKiBlLiBUaGUgcHJvcGVydHkgdGhhdCBjb250cm9scyB0aGUgYWxpZ25tZW50LlxuICAgKiBmLiBDYWxjdWxhdGUgdGhlIHdpZHRoIG9yIGhlaWdodCBvZiB0aGUgbGluZSBieSB0YWtpbmcgaXRlbSBzaXplLFxuICAgKiAgICBpdGVtIGdhcCwgbGluZSBnYXAgYW5kIChpZiBzZXQpIGNvcnJlY3Rpb24gYnVmZmVyIGludG8gYWNjb3VudC5cbiAgICovXG4gIC8qIFthXSAqL1xuICAvKiBbYl0gKi9cbiAgLyogW2NdICovXG4gIC8qIFtkXSAqL1xuICAvKiBbZV0gKi9cbn1cbi5jLWluc3RydWN0aW9uLXN0ZXBwZXJfX3N0ZXA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAycHg7XG4gIGhlaWdodDogY2FsYyh2YXIoLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWNvcnJlY3Rpb24tYnVmZmVyKSArIDEwMCUgLSB2YXIoLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tc2l6ZSkgKyB2YXIoLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWdhcCkgLSB2YXIoLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWxpbmUtZ2FwKSAqIDIpOyAvKiBbZl0gKi9cbiAgbGVmdDogY2FsYyh2YXIoLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tc2l6ZSkgLyAyKTtcbiAgdG9wOiBjYWxjKHZhcigtLWluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1zaXplKSArIHZhcigtLWluc3RydWN0aW9uLXN0ZXBwZXItbGluZS1nYXApKTtcbn1cbi5jLWluc3RydWN0aW9uLXN0ZXBwZXJfX3N0ZXA6bGFzdC1jaGlsZDo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jLWluc3RydWN0aW9uLXN0ZXBwZXJfX3N0ZXA6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NjQ3NDg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgOm5vdCguYy1pbnN0cnVjdGlvbi1zdGVwcGVyLS12ZXJ0aWNhbCkgPiAuYy1pbnN0cnVjdGlvbi1zdGVwcGVyX19zdGVwIHtcbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBsb2dpYyBqdXN0IGNoYW5nZXMgaW4gb3J0aG9nb25hbGl0eSBzbyB3ZSBzd2FwIG91dCB0aGUgcHJvcGVydGllcyByZXNwZWN0aXZlbHkuXG4gICAgICogYS4gQ29udHJvbCB0aGUgdGhpY2tuZXNzIHByb3BlcnR5IGZvciB0aGUgbGluZS5cbiAgICAgKiBiLiBDb250cm9sIHRoZSBkaW1lbnNpb24gcHJvcGVydHkgb2YgdGhlIGxpbmU6XG4gICAgICogICAgYGhlaWdodGAgZm9yIHZlcnRpY2FsIG9yaWVudGF0aW9uIGFuZCBgd2lkdGhgIGZvciBob3Jpem9udGFsIG9yaWVudGF0aW9uLlxuICAgICAqIGMuIFRoZSBwcm9wZXJ0eSB0aGF0IGNvbnRyb2xzIHRoZSBsaW5lIGRpbWVuc2lvbmFsIF9vZmZzZXQuXG4gICAgICogZC4gQ2FsY3VsYXRlIHRoZSBnYXAgKG9mZnNldCkgb2YgdGhlIGxpbmUgYnkgdGFraW5nIGl0ZW0gc2l6ZSBhbmRcbiAgICAgKiAgICBsaW5lIGdhcCBpbnRvIGFjY291bnQuXG4gICAgICogZS4gVGhlIHByb3BlcnR5IHRoYXQgY29udHJvbHMgdGhlIGFsaWdubWVudC5cbiAgICAgKiBmLiBDYWxjdWxhdGUgdGhlIHdpZHRoIG9yIGhlaWdodCBvZiB0aGUgbGluZSBieSB0YWtpbmcgaXRlbSBzaXplLFxuICAgICAqICAgIGl0ZW0gZ2FwLCBsaW5lIGdhcCBhbmQgKGlmIHNldCkgY29ycmVjdGlvbiBidWZmZXIgaW50byBhY2NvdW50LlxuICAgICAqL1xuICAgIC8qIFthXSAqL1xuICAgIC8qIFtiXSAqL1xuICAgIC8qIFtjXSAqL1xuICAgIC8qIFtkXSAqL1xuICAgIC8qIFtlXSAqL1xuICB9XG4gIDpub3QoLmMtaW5zdHJ1Y3Rpb24tc3RlcHBlci0tdmVydGljYWwpID4gLmMtaW5zdHJ1Y3Rpb24tc3RlcHBlcl9fc3RlcDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDJweDtcbiAgICB3aWR0aDogY2FsYyh2YXIoLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWNvcnJlY3Rpb24tYnVmZmVyKSArIDEwMCUgLSB2YXIoLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tc2l6ZSkgKyB2YXIoLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWdhcCkgLSB2YXIoLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWxpbmUtZ2FwKSAqIDIpOyAvKiBbZl0gKi9cbiAgICB0b3A6IGNhbGModmFyKC0taW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLXNpemUpIC8gMik7XG4gICAgbGVmdDogY2FsYyg1MCUgKyB2YXIoLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tc2l6ZSkgLyAyICsgdmFyKC0taW5zdHJ1Y3Rpb24tc3RlcHBlci1saW5lLWdhcCkpO1xuICB9XG4gIDpub3QoLmMtaW5zdHJ1Y3Rpb24tc3RlcHBlci0tdmVydGljYWwpID4gLmMtaW5zdHJ1Y3Rpb24tc3RlcHBlcl9fc3RlcDpsYXN0LWNoaWxkOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgOm5vdCguYy1pbnN0cnVjdGlvbi1zdGVwcGVyLS12ZXJ0aWNhbCkgPiAuYy1pbnN0cnVjdGlvbi1zdGVwcGVyX19zdGVwOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0NjQ3NDg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICA6bm90KC5jLWluc3RydWN0aW9uLXN0ZXBwZXItLXZlcnRpY2FsKSA+IC5jLWluc3RydWN0aW9uLXN0ZXBwZXJfX3N0ZXAge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LWJhc2lzOiAwOyAvKiBbMl0gKi9cbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIDpub3QoLmMtaW5zdHJ1Y3Rpb24tc3RlcHBlci0tdmVydGljYWwpID4gLmMtaW5zdHJ1Y3Rpb24tc3RlcHBlcl9fc3RlcDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDI0cHg7XG4gIH1cbn1cblxuLmMtaW5zdHJ1Y3Rpb24tc3RlcHBlcl9faXRlbSB7XG4gIGZvbnQtc2l6ZTogY2FsYyh2YXIoLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tZm9udC1zaXplKSAvIDE2ICogMXJlbSk7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgb3JkZXIvb3JkZXIgKi9cbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTsgLyogWzhdICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LWdyb3c6IDA7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBmbGV4LWJhc2lzOiBhdXRvO1xuICB3aWR0aDogdmFyKC0taW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLWluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1zaXplKTtcbiAgYm9yZGVyOiAycHggc29saWQgIzllOWZhMDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOGQ4ZDg7XG4gIGNvbG9yOiAjOWU5ZmEwO1xufVxuLmMtaW5zdHJ1Y3Rpb24tc3RlcHBlci0tbnVtYmVyZWQgLmMtaW5zdHJ1Y3Rpb24tc3RlcHBlcl9faXRlbTo6YmVmb3JlIHtcbiAgY29udGVudDogY291bnRlcihpbnN0cnVjdGlvbi1zdGVwcGVyLWNvdW50KTtcbiAgY291bnRlci1pbmNyZW1lbnQ6IGluc3RydWN0aW9uLXN0ZXBwZXItY291bnQ7XG59XG4uYy1pbnN0cnVjdGlvbi1zdGVwcGVyX19zdGVwLmlzLWFjdGl2ZSAuYy1pbnN0cnVjdGlvbi1zdGVwcGVyX19pdGVtIHtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDY0NzQ4O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LWNsYXNzICovXG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cbi5jLWluc3RydWN0aW9uLXN0ZXBwZXJfX3N0ZXAuaXMtYWN0aXZlIC5jLWluc3RydWN0aW9uLXN0ZXBwZXJfX2l0ZW0gLmMtaWNvbiB7XG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4uYy1pbnN0cnVjdGlvbi1zdGVwcGVyX19pdGVtIC5jLWljb24ge1xuICBmb250LXNpemU6IGNhbGModmFyKC0taW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLWljb24tc2l6ZSkgLyAxNiAqIDFyZW0pOyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIG9yZGVyL29yZGVyICovXG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogY3VycmVudENvbG9yO1xufVxuXG4uYy1pbnN0cnVjdGlvbi1zdGVwcGVyX19kZXRhaWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiBbN10gKi9cbiAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tc2l6ZSkgLyAyIC0gMWV4KTsgLyogWzExXSAqL1xuICBtYXJnaW4tbGVmdDogMTZweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICA6bm90KC5jLWluc3RydWN0aW9uLXN0ZXBwZXItLXZlcnRpY2FsKSA+IC5jLWluc3RydWN0aW9uLXN0ZXBwZXJfX3N0ZXAgLmMtaW5zdHJ1Y3Rpb24tc3RlcHBlcl9fZGV0YWlsIHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4uYy1pbnN0cnVjdGlvbi1zdGVwcGVyX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuXG4uYy1pbnN0cnVjdGlvbi1zdGVwcGVyX19kZXNjcmlwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDUwY2g7IC8qIFsxMl0gKi9cbiAgbWFyZ2luLXRvcDogOHB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBjb2xvcjogIzE2MTcxODtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MTlweCkge1xuICAuYy1pbnN0cnVjdGlvbi1zdGVwcGVyX19kZXNjcmlwdGlvbiB7XG4gICAgbWF4LXdpZHRoOiA2MGNoOyAvKiBbMTJdICovXG4gIH1cbn1cbi5jLWluc3RydWN0aW9uLXN0ZXBwZXItLXZlcnRpY2FsIC5jLWluc3RydWN0aW9uLXN0ZXBwZXJfX2Rlc2NyaXB0aW9uIHtcbiAgbWF4LXdpZHRoOiA2MGNoOyAvKiBbMTJdICovXG59XG5cbi5jLWluc3RydWN0aW9uLXN0ZXBwZXItLXZlcnRpY2FsLmMtaW5zdHJ1Y3Rpb24tc3RlcHBlci0tcmV2ZXJzZWQge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG59XG4uYy1pbnN0cnVjdGlvbi1zdGVwcGVyLS12ZXJ0aWNhbC5jLWluc3RydWN0aW9uLXN0ZXBwZXItLXJldmVyc2VkIC5jLWluc3RydWN0aW9uLXN0ZXBwZXJfX3N0ZXAge1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG59XG4uYy1pbnN0cnVjdGlvbi1zdGVwcGVyLS12ZXJ0aWNhbC5jLWluc3RydWN0aW9uLXN0ZXBwZXItLXJldmVyc2VkIC5jLWluc3RydWN0aW9uLXN0ZXBwZXJfX3N0ZXA6OmJlZm9yZSB7XG4gIHJpZ2h0OiBjYWxjKHZhcigtLWluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1zaXplKSAvIDIpO1xuICBsZWZ0OiBhdXRvO1xufVxuLmMtaW5zdHJ1Y3Rpb24tc3RlcHBlci0tdmVydGljYWwuYy1pbnN0cnVjdGlvbi1zdGVwcGVyLS1yZXZlcnNlZCAuYy1pbnN0cnVjdGlvbi1zdGVwcGVyX19kZXRhaWwge1xuICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmMtaW5zdHJ1Y3Rpb24tc3RlcHBlci0tc21hbGwge1xuICAtLWluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1zaXplOiA0OHB4O1xuICAtLWluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1mb250LXNpemU6IDIzOyAvKiBbMTNdICovXG4gIC0taW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLWljb24tc2l6ZTogMjQ7IC8qIFsxM10gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1BST0RVQ1QtVEFCTEVcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1kZWZhdWx0ICovXG4vKipcbiAqIFsxXSBTZXQgc2VjdGlvbiBzcGFjaW5nIHJlc3BvbnNpdmx5IHZpYSBjb250YWluZXIgcXVlcnkgYmFzZWQgQ1NTIGN1c3RvbVxuICogICAgIHByb3BlcnR5LlxuICogICAgIFRoZSBzZWxlY3RvciBgLmMtcHJvZHVjdC10YWJsZWAgbmVlZHMgdG8gYmUgYWRkZWQgdG8gdGhlXG4gKiAgICAgYENvbnRhaW5lclF1ZXJ5YCBgY29tcG9uZW50U2VsZWN0b3JgIGluXG4gKiAgICAgYHBhY2thZ2VzL2Jyb25zb24tZGVmYXVsdC9zcmMvanMvbW9kdWxlL2NvbnRhaW5lci1xdWVyeS1vYnNlcnZlci5qc2BcbiAqICAgICBAVE9ETzogTWF5YmUgd2UgY291bGQgdXNlIF9yZWFsXyBjb250YWluZXIgcXVlcmllcyAob3IgYSBwb2x5ZmlsbCksXG4gKiAgICAgICAgICAgIHNvIG5vIGN1c3RvbSBTQ1NTL0pTIGh5YnJpZCBzb2x1dGlvbiBpcyBuZWVkZWQgYW55bW9yZS5cbiAqIFsyXSBSZW1vdmUgYm90dG9tIG1hcmdpbiBvZiB0aGUgbGFzdCBjaGlsZCBvZiBhIHNlY3Rpb24uXG4gKiBbM10gQWRkIGEgaG9yaXpvbnRhbCBib3JkZXIgYmV0d2VlbiBzZWN0aW9ucyBhdCB0aGUgaGFsZiBvZiB0aGUgc2VjdGlvbiBzcGFjaW5nLlxuICovXG4uYy1wcm9kdWN0LXRhYmxlIHtcbiAgLS1jb250YWluZXItd2lkdGhzOiBcIjAgNzIwXCI7IC8qIFsxXSAqL1xuICAtLXByb2R1Y3QtdGFibGUtc2VjdGlvbi1zcGFjaW5nOiAzMnB4OyAvKiBbMV0gKi9cbiAgZGlzcGxheTogZmxleDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBvcmRlci9vcmRlciAqL1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLmMtcHJvZHVjdC10YWJsZVtkYXRhLWNvbnRhaW5lci13aWR0aH49XCI3MjBcIl0ge1xuICAtLXByb2R1Y3QtdGFibGUtc2VjdGlvbi1zcGFjaW5nOiA0OHB4OyAvKiBbMV0gKi9cbn1cblxuLmMtcHJvZHVjdC10YWJsZV9fdGl0bGUge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgLmMtcHJvZHVjdC10YWJsZV9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS40Mzc1cmVtO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIC5jLXByb2R1Y3QtdGFibGVfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxufVxuXG4uYy1wcm9kdWN0LXRhYmxlX19zZWN0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmMtcHJvZHVjdC10YWJsZV9fc2VjdGlvbiA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzJdICovXG59XG4uYy1wcm9kdWN0LXRhYmxlX19zZWN0aW9uICsgLmMtcHJvZHVjdC10YWJsZV9fc2VjdGlvbiB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXByb2R1Y3QtdGFibGUtc2VjdGlvbi1zcGFjaW5nKTsgLyogWzFdICovXG59XG4uYy1wcm9kdWN0LXRhYmxlX19zZWN0aW9uICsgLmMtcHJvZHVjdC10YWJsZV9fc2VjdGlvbjo6YmVmb3JlIHsgLyogWzNdICovXG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKHZhcigtLXByb2R1Y3QtdGFibGUtc2VjdGlvbi1zcGFjaW5nKSAvIC0yKTsgLyogWzFdIFszXSAqL1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkOGQ4ZDg7XG59XG5cbi5jLXByb2R1Y3QtdGFibGVfX2l0ZW0tZGV0YWlsLWNvbW1lbnQge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG4uYy1wcm9kdWN0LXRhYmxlX19pdGVtLXRlcm0tY29tbWVudCB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbi5jLXByb2R1Y3QtdGFibGVfX2lubmVyLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5jLXByb2R1Y3QtdGFibGVfX2lubmVyLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuNDM3NXJlbTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyODFweCkge1xuICAuYy1wcm9kdWN0LXRhYmxlX19pbm5lci10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cblxuLmMtcHJvZHVjdC10YWJsZV9fc2VjdGlvbi0tc3VtbWFyeSB7IC8qIFs0XSAqLyB9XG4uYy1wcm9kdWN0LXRhYmxlX19zZWN0aW9uLS1zdW1tYXJ5IC5jLXByb2R1Y3QtdGFibGVfX3N1bW1hcnktdGVybSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICAuYy1wcm9kdWN0LXRhYmxlX19zZWN0aW9uLS1zdW1tYXJ5IC5jLXByb2R1Y3QtdGFibGVfX3N1bW1hcnktdGVybSB7XG4gICAgZm9udC1zaXplOiAxLjQzNzVyZW07XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgxcHgpIHtcbiAgLmMtcHJvZHVjdC10YWJsZV9fc2VjdGlvbi0tc3VtbWFyeSAuYy1wcm9kdWN0LXRhYmxlX19zdW1tYXJ5LXRlcm0ge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICB9XG59XG4uYy1wcm9kdWN0LXRhYmxlX19zZWN0aW9uLS1zdW1tYXJ5IC5jLXByb2R1Y3QtdGFibGVfX3N1bW1hcnktZGV0YWlsIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5jLXByb2R1Y3QtdGFibGVfX3NlY3Rpb24tLXN1bW1hcnkgLmMtcHJvZHVjdC10YWJsZV9fc3VtbWFyeS1kZXRhaWwge1xuICAgIGZvbnQtc2l6ZTogMS40Mzc1cmVtO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIC5jLXByb2R1Y3QtdGFibGVfX3NlY3Rpb24tLXN1bW1hcnkgLmMtcHJvZHVjdC10YWJsZV9fc3VtbWFyeS1kZXRhaWwge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICB9XG59XG4uYy1wcm9kdWN0LXRhYmxlX19zZWN0aW9uLS1zdW1tYXJ5IC5jLXByb2R1Y3QtdGFibGVfX2luZm9ybWF0aW9uIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cbi5jLXByb2R1Y3QtdGFibGVfX3NlY3Rpb24tLXN1bW1hcnkgLmMtcHJvZHVjdC10YWJsZV9faW5mb3JtYXRpb24uYy1wcm9kdWN0LXRhYmxlX19pbmZvcm1hdGlvbi5jLXByb2R1Y3QtdGFibGVfX2luZm9ybWF0aW9uIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBuby1kdXBsaWNhdGUtc2VsZWN0b3JzLCBzZWxlY3Rvci1tYXgtY2xhc3MgKi8gLyogWzRdICovXG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNTUElOTkVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIE1hZ2ljIG51bWJlciB0aGF0IHBsYWNlcyB0aGUg4oCYY29ybmVy4oCZIGRvdHMvc3RyaXBlIGNvcnJlY3RseSB0byBmb3JtIGFcbiAqICAgICBwZXJmZWN0IGNpcmNsZS4gSWYgc29tZW9uZSBjYW4gY29tZSB1cCB3aXRoIHRoZSBjb3JyZWN0IGZvcm11bGEgb2ZcbiAqICAgICBjYWxjdWxhdGluZyB0aGlzIHByb3Blcmx5Li4ueW91J3JlIGEgZnJlYWshIEJ1dCBpdOKAmWxsIGJlIG5pY2UsXG4gKiAgICAgbm9uZXRoZWxlc3MuXG4gKiBbMl0gVXNlIGFuIGBpbnNldGAgYm94IHNoYWRvdywgc28gdGhhdCB0aGUgb3V0ZXIgYm9yZGVyICh0aGlzIGJveC1zaGFkb3cgb25lKVxuICogICAgIGFuZCB0aGUgb3ZlcmxheWluZyBpbm5lciBib3JkZXIgb2YgdGhlIHBzZXVkbyBlbGVtZW50IGFyZSBtYXRjaGluZ1xuICogICAgIGV4YWN0bHkuXG4gKiBbM10gU2V0IHRyYW5zaXRpb24gdG8gZmFkZSBpbi9vdXQgdGhlIHNwaW5uZXIgd2hlbiBpdCBpcyBzaG93bi9oaWRkZW5cbiAqICAgICBkeW5hbWljYWxseS5cbiAqIFs0XSBUYWtlIHVwIHRoZSBzaXplIGZyb20gdGhlIHBhcmVudCAoYC5jLXNwaW5uZXJfX2xvYWRlcmApLlxuICogWzVdIENyZWF0ZSBhIFBhYy1NYW4gc2hhcGUgYnkgb21pdHRpbmcgdGhlIGJvdHRvbSBib3JkZXIgY29sb3IuXG4gKiBbNl0gUGxhY2UgdGhlIHNwaW5uZXIgb2YgdGhlIGZ1bGwtcGFnZSwgdGV4dCBhbmQgc2VjdGlvbiB2YXJpYW50IHByZWNpc2VseVxuICogICAgIGluIHRoZSBjZW50ZXIgb2YgdGhlIGJhY2tkcm9wLlxuICogWzddIFJlbW92ZSBtYXJnaW5zIGZyb20gYW55IGVsZW1lbnQgaW5zaWRlIHRoZSB0ZXh0IGNvbnRhaW5lci5cbiAqL1xuLmMtc3Bpbm5lci5jLXNwaW5uZXItLWZ1bGwtcGFnZSwgLmMtc3Bpbm5lci5jLXNwaW5uZXItLXNlY3Rpb24sIC5jLXNwaW5uZXIuYy1zcGlubmVyLS10ZXh0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmMtc3Bpbm5lci5jLXNwaW5uZXItLWZ1bGwtcGFnZTo6YmVmb3JlLCAuYy1zcGlubmVyLmMtc3Bpbm5lci0tc2VjdGlvbjo6YmVmb3JlLCAuYy1zcGlubmVyLmMtc3Bpbm5lci0tdGV4dDo6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI4LCAyMjgsIDIyOCwgMC44KTtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHotaW5kZXg6IDQ5OTk7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi5jLXNwaW5uZXIuYy1zcGlubmVyLS1mdWxsLXBhZ2VbYXJpYS1idXN5PXRydWVdOjpiZWZvcmUsIC5jLXNwaW5uZXIuYy1zcGlubmVyLS1zZWN0aW9uW2FyaWEtYnVzeT10cnVlXTo6YmVmb3JlLCAuYy1zcGlubmVyLmMtc3Bpbm5lci0tdGV4dFthcmlhLWJ1c3k9dHJ1ZV06OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uYy1zcGlubmVyLmMtc3Bpbm5lci0tZnVsbC1wYWdlOjpiZWZvcmUsIC5jLXNwaW5uZXIuYy1zcGlubmVyLS10ZXh0OjpiZWZvcmUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG59XG4uYy1zcGlubmVyLmMtc3Bpbm5lci0tY2VudGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uYy1zcGlubmVyLmMtc3Bpbm5lci0tdGV4dCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmMtc3Bpbm5lcl9fbG9hZGVyIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIC8qIFszXSAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDUwMDA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiA2NHB4O1xuICBoZWlnaHQ6IDY0cHg7XG59XG4uYy1zcGlubmVyX19sb2FkZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLyogWzRdICovXG4gIHRvcDogMDsgLyogWzRdICovXG4gIGxlZnQ6IDA7IC8qIFs0XSAqL1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDY0cHg7IC8qIFs0XSAqL1xuICBoZWlnaHQ6IDY0cHg7IC8qIFs0XSAqL1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDhweCAjZDhkOGQ4IGluc2V0OyAvKiBbMl0gKi9cbn1cbi5jLXNwaW5uZXItLXNtYWxsIC5jLXNwaW5uZXJfX2xvYWRlcjo6YmVmb3JlLCAuYy11cGxvYWQgLmMtc3Bpbm5lciAuYy1zcGlubmVyX19sb2FkZXI6OmJlZm9yZSB7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDRweCAjZDhkOGQ4IGluc2V0OyAvKiBbMl0gKi9cbn1cbi5jLXNwaW5uZXJfX2xvYWRlcjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA2NHB4O1xuICBoZWlnaHQ6IDY0cHg7XG4gIGJvcmRlcjogOHB4IHNvbGlkICM0MTk0Njg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYW5pbWF0aW9uLW5hbWU6IHNwaW5uZXItY2lyY2xlLWFuaW1hdGlvbjtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogWzVdICovXG59XG4uYy1zcGlubmVyLS1zbWFsbCAuYy1zcGlubmVyX19sb2FkZXI6OmFmdGVyLCAuYy11cGxvYWQgLmMtc3Bpbm5lciAuYy1zcGlubmVyX19sb2FkZXI6OmFmdGVyIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG59XG4uYy1zcGlubmVyW2FyaWEtYnVzeT10cnVlXSAuYy1zcGlubmVyX19sb2FkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5jLXNwaW5uZXItLXNtYWxsIC5jLXNwaW5uZXJfX2xvYWRlciwgLmMtdXBsb2FkIC5jLXNwaW5uZXIgLmMtc3Bpbm5lcl9fbG9hZGVyIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbn1cbi5jLXNwaW5uZXItLXNlY3Rpb24gLmMtc3Bpbm5lcl9fbG9hZGVyLCAuYy1zcGlubmVyLS1mdWxsLXBhZ2U6bm90KC5jLXNwaW5uZXItLXRleHQpIC5jLXNwaW5uZXJfX2xvYWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7IC8qIFs2XSAqL1xuICBsZWZ0OiA1MCU7IC8qIFs2XSAqL1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgLyogWzZdICovXG59XG4uYy1zcGlubmVyLS1mdWxsLXBhZ2U6bm90KC5jLXNwaW5uZXItLXRleHQpIC5jLXNwaW5uZXJfX2xvYWRlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbn1cbi5jLXNwaW5uZXItLXRleHQgLmMtc3Bpbm5lcl9fbG9hZGVyIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuLmMtc3Bpbm5lcl9fY29udGVudCB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA1MDAwO1xuICB0b3A6IDUwJTsgLyogWzZdICovXG4gIGxlZnQ6IDUwJTsgLyogWzZdICovXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDI0cHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyAvKiBbNl0gKi9cbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3gtc2hhZG93OiAwIDI0cHggNjRweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAuYy1zcGlubmVyX19jb250ZW50IHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtc3Bpbm5lcl9fY29udGVudCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtc3Bpbm5lcl9fY29udGVudCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwdncgLSA0OHB4KTtcbiAgfVxufVxuLmMtc3Bpbm5lclthcmlhLWJ1c3k9dHJ1ZV0gLmMtc3Bpbm5lcl9fY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uYy1zcGlubmVyX190ZXh0IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctdG9wOiAxNnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtc3Bpbm5lcl9fdGV4dCAqIHtcbiAgbWFyZ2luOiAwOyAvKiBbN10gKi9cbn1cblxuLmMtc3Bpbm5lcl9fZWxlbWVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBrZXlmcmFtZXMgc3Bpbm5lci1jaXJjbGUtYW5pbWF0aW9uIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMHR1cm4pO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxdHVybik7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc3Bpbm5lci1kb3RzLWFuaW1hdGlvbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwLjI7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDAuMjtcbiAgfVxufVxuQGtleWZyYW1lcyBzcGlubmVyLXN0cmlwZS1hbmltYXRpb24ge1xuICAwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzdjN2Q3ZTtcbiAgfVxuICAxMi41JSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQxOTQ2ODtcbiAgfVxuICAyNSUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3YzdkN2U7XG4gIH1cbn1cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNTUElOTkVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jLXNwaW5uZXI6OmJlZm9yZSB7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQ1VTVE9NLVJBTkdFLVNMSURFUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHQsIHNjc3Mvbm8tZHVwbGljYXRlLWRvbGxhci12YXJpYWJsZXMgKi9cbi8qKlxuICogWzFdICBTZXQgdGhlIGxlZnQgYW5kIHJpZ2h0IG1hcmdpbiBvZiB0aGUgc2xpZGVyIHRvIGhhbGYgdGhlIHNpemUgb2YgdGhlIHRodW1iLlxuICogWzJdICBBZGQgcHNldWRvIGVsZW1lbnQgc28gd2UgY2FuIHNldCB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSByYW5nZSBzbGlkZXJcbiAqICAgICAgdG8gdGhlIHNpemUgbmVlZGVkLlxuICogWzNdICBDZW50ZXIgbWFya2VyIG9uIHRyYWNrLlxuICogWzRdICBTaG93IG1hcmtlciBhYm92ZSB0cmFjayAvIGNvbm5lY3QuXG4gKiBbNV0gIEFkZCB0cmFuc2l0aW9uIHdoZW4gdGFwcGluZyBvbiB0cmFjay5cbiAqIFs2XSAgSGlkZSB0aGUgb3ZlcmZsb3cgb2YgdGhlIGNvbm5lY3RvciB0byBtYWtlIGJvcmRlciByYWRpdXMgb2YgdGhlIHRyYWNrXG4gKiAgICAgIHZpc2libGUuXG4gKiBbN10gIFNldCB0aGUgc3BhY2luZyBiZXR3ZWVuIHZhbHVlIGFuZCBtYXJrZXIuXG4gKiBbOF0gIE1hcmtlcnMgYXJlIG5vdyBnZW5lcmFsbHkgc2V0IGBpbi1yYW5nZWAgdmlhIHNjcmlwdC5cbiAqIFs5XSAgQWRkIHBzZXVkby1lbGVtZW50cyBmb3IgbWFya2VycyAoYDo6YmVmb3JlYCBlbGVtZW50KSBhbmQgdGhlaXIgZG90c1xuICogICAgICAoYDo6YWZ0ZXJgIGVsZW1lbnQpLlxuICogWzEwXSBBbGlnbiBlbGVtZW50cywgc28gdGhhdCB0aGUgdGh1bWIgaXMgZnVsbHkgcGxhY2VkIGluc2lkZSBvZiB0aGUgcmFuZ2VcbiAqICAgICAgc2xpZGVyIGNvbnRhaW5lci5cbiAqIFsxMV0gRGVmYXVsdCB0b29sdGlwIGRpc3BsYXkgaXMgdG9wIC0gYWJvdmUgdGhlIGN1cnJlbnQgdmFsdWUuXG4gKiBbMTJdIFRvb2x0aXAgaXMgZGlzcGxheWVkIGJlbG93IHRoZSBjdXJyZW50IHZhbHVlIHdoZW4gdmFyaWFibGUgaXMgc2V0IHRvIGZhbHNlLlxuICogWzEzXSBBZGQgc3BhY2luZyB3aGVuIHRvb2x0aXAgaXMgcHJlc2VudC5cbiAqIFsxNF0gRGVmaW5lcyB0aGUgcG9zaXRpb25pbmcgb2YgdGhlIHRvb2x0aXAgY29udGFpbmVyIGFuZCBpdHMgaW5kaWNhdG9yLlxuICogWzE1XSBBbGlnbiBmaXJzdCAobWluKSBhbmQgbGFzdCAobWF4KSB3aXRoIHRoZSBvdXRlciBib3VuZGFyaWVzIG9mIHRoZSB0cmFja1xuICogICAgICBhbmQgcGlwcy5cbiAqIFsxNl0gT3ZlcndyaXRlIGlubGluZS1zdHlsZSBzZXQgYnkgcGx1Z2luLlxuICogWzE3XSBBdm9pZCBzZWxlY3RvciBiZWluZyBhcHBsaWVkIHRvIGxhc3QgKG1heCkgdmFsdWUgaWYgb25seSAxIHBpcCBpcyBkaXNwbGF5ZWQuXG4gKiBbMThdIFB1dCBwc2V1ZG8tYXJlYSBhYm92ZSB0cmFjayB0byBpbmNyZWFzZSAodG91Y2gtKXRhcmdldCB3aGVuIGludGVyYWN0aW5nXG4gKiAgICAgIHdpdGggdHJhY2suXG4gKiBbMTldIE1hbnVhbGx5IHVwZGF0ZSB0aGUgYC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX29yaWdpbmAgYHdpZHRoYCBhbmQgYGhlaWdodGAgdG8gcmVmbGVjdCB0aGUgc3R5bGVzIGluIGBub1VpU2xpZGVyYC5cbiAqIFsyMF0gUmVzZXJ2ZXIgc3BhY2UgYXJvdW5kIGNvbXBvbmVudCB0byBhY2NvdW50IGZvciB0aHVtYiBhbmQgb3B0aW9uYWwgdG9vbHRpcC5cbiAqL1xuLmMtY3VzdG9tLXJhbmdlLXNsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxNnB4O1xuICBtYXJnaW4tcmlnaHQ6IDhweDsgLyogWzFdICovXG4gIG1hcmdpbi1sZWZ0OiA4cHg7IC8qIFsxXSAqL1xuICBtYXJnaW4tdG9wOiAycHg7IC8qIFsyMF0gKi9cbn1cbi5jLWN1c3RvbS1yYW5nZS1zbGlkZXI6OmFmdGVyIHsgLyogWzJdICovXG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDRweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRjNmM3O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4uYy1jdXN0b20tcmFuZ2Utc2xpZGVyW2Rpc2FibGVkXTo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDhkOGQ4O1xufVxuLmMtY3VzdG9tLXJhbmdlLXNsaWRlcltkYXRhLWN1c3RvbS1yYW5nZS1zbGlkZXItcGlwc10ge1xuICBoZWlnaHQ6IDQwcHg7XG59XG4uYy1jdXN0b20tcmFuZ2Utc2xpZGVyW2RhdGEtY3VzdG9tLXJhbmdlLXNsaWRlci1waXBzXTo6YWZ0ZXIge1xuICB0b3A6IGNhbGMoNTAlIC0gMTEuMTQyODU3MTQyOXB4KTsgLyogWzEwXSAqL1xufVxuXG4uYy1jdXN0b20tcmFuZ2Utc2xpZGVyX190YXJnZXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYy1jdXN0b20tcmFuZ2Utc2xpZGVyX190YXJnZXQgKiB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fYmFzZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDRweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8qIFsxNV0gKi9cbn1cbi5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX2Jhc2U6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogNDBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuLmMtY3VzdG9tLXJhbmdlLXNsaWRlcltkaXNhYmxlZF0gLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fYmFzZSB7XG4gIGN1cnNvcjogaW5pdGlhbDtcbn1cbi5jLWN1c3RvbS1yYW5nZS1zbGlkZXJbZGF0YS1jdXN0b20tcmFuZ2Utc2xpZGVyLXBpcHNdIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX2Jhc2Uge1xuICB0b3A6IGNhbGMoNTAlIC0gMTEuMTQyODU3MTQyOXB4KTsgLyogWzEwXSAqL1xufVxuXG4uYy1jdXN0b20tcmFuZ2Utc2xpZGVyX19vcmlnaW4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTsgLyogWzE5XSAqL1xuICBoZWlnaHQ6IDEwMCU7IC8qIFsxOV0gKi9cbn1cbi5jLWN1c3RvbS1yYW5nZS1zbGlkZXItLXRhcCAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyX19vcmlnaW4ge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgLyogWzVdICovXG59XG5cbi5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX3RodW1iIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMTUwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMnB4O1xuICByaWdodDogMDtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCAtNTAlKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQxOTQ2ODtcbiAgY3Vyc29yOiBncmFiO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG4uYy1jdXN0b20tcmFuZ2Utc2xpZGVyW2Rpc2FibGVkXSAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyX190aHVtYiB7XG4gIGJvcmRlci1jb2xvcjogIzllOWZhMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzllOWZhMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGN1cnNvcjogaW5pdGlhbDtcbn1cbi5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX3RodW1iOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX3RodW1iOmFjdGl2ZSB7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG59XG4uYy1jdXN0b20tcmFuZ2Utc2xpZGVyX190aHVtYjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MTk0Njg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbi5jLWN1c3RvbS1yYW5nZS1zbGlkZXJbZGlzYWJsZWRdIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX3RodW1iOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWU5ZmEwO1xufVxuXG4vKipcbiogQ29ubmVjdHNcbiovXG4uYy1jdXN0b20tcmFuZ2Utc2xpZGVyX19jb25uZWN0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogWzZdICovXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLyogWzE4XSAqL1xufVxuLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fY29ubmVjdC1jb250YWluZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogNDBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4uYy1jdXN0b20tcmFuZ2Utc2xpZGVyX19jb25uZWN0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3OGZhYWU7XG59XG4uYy1jdXN0b20tcmFuZ2Utc2xpZGVyLS10YXAgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fY29ubmVjdCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICAvKiBbNV0gKi9cbn1cbi5jLWN1c3RvbS1yYW5nZS1zbGlkZXJbZGlzYWJsZWRdIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX2Nvbm5lY3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRjNmM3O1xufVxuXG4vKipcbiogUGlwcywgTWFya2VycyAmIFZhbHVlc1xuKi9cbi5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX3BpcHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fbWFya2VyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiBpbml0aWFsOyAvKiBbNF0gKi9cbiAgdG9wOiA1MCU7IC8qIFszXSAqL1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IC8qIFszXSAqL1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fbWFya2VyOjpiZWZvcmUsIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX21hcmtlcjo6YWZ0ZXIgeyAvKiBbOV0gKi9cbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fbWFya2VyOjpiZWZvcmUge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgd2lkdGg6IDJweDtcbiAgaGVpZ2h0OiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5ZTlmYTA7XG59XG4uYy1jdXN0b20tcmFuZ2Utc2xpZGVyX19tYXJrZXIuaXMtYWN0aXZlOmZpcnN0LW9mLXR5cGU6OmJlZm9yZSwgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fbWFya2VyLmlzLWFjdGl2ZTpmaXJzdC1vZi10eXBlOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3OGZhYWU7IC8qIFs4XSAqL1xufVxuLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fbWFya2VyLmluLXJhbmdlOjpiZWZvcmUsIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX21hcmtlci5pbi1yYW5nZTo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhmYWFlO1xufVxuLmMtY3VzdG9tLXJhbmdlLXNsaWRlcltkaXNhYmxlZF0gLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fbWFya2VyLCAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyW2Rpc2FibGVkXSAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyX19tYXJrZXI6OmJlZm9yZSwgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcltkaXNhYmxlZF0gLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fbWFya2VyOjphZnRlciB7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBpbml0aWFsO1xufVxuLmMtY3VzdG9tLXJhbmdlLXNsaWRlcltkaXNhYmxlZF0gLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fbWFya2VyOjpiZWZvcmUsIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJbZGlzYWJsZWRdIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX21hcmtlcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRjNmM3O1xufVxuLmMtY3VzdG9tLXJhbmdlLXNsaWRlcltkaXNhYmxlZF0gLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fbWFya2VyLmlzLWFjdGl2ZSwgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcltkaXNhYmxlZF0gLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fbWFya2VyLmluLXJhbmdlIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xufVxuLmMtY3VzdG9tLXJhbmdlLXNsaWRlcltkaXNhYmxlZF0gLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fbWFya2VyLmlzLWFjdGl2ZTo6YmVmb3JlLCAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyW2Rpc2FibGVkXSAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyX19tYXJrZXIuaXMtYWN0aXZlOjphZnRlciwgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcltkaXNhYmxlZF0gLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fbWFya2VyLmluLXJhbmdlOjpiZWZvcmUsIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJbZGlzYWJsZWRdIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX21hcmtlci5pbi1yYW5nZTo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRjNmM3O1xufVxuLmMtY3VzdG9tLXJhbmdlLXNsaWRlcltkYXRhLWN1c3RvbS1yYW5nZS1zbGlkZXItcGlwc10gLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fbWFya2VyIHtcbiAgdG9wOiBjYWxjKDUwJSAtIDExLjE0Mjg1NzE0MjlweCk7IC8qIFsxMF0gKi9cbn1cblxuLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fdmFsdWUge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBwYWRkaW5nLXRvcDogMjZweDsgLyogWzddICovXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzE2MTcxODtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX3ZhbHVlOm50aC1jaGlsZCgyKTpub3QoOmxhc3QtY2hpbGQpIHsgLyogWzE3XSAqL1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTFweCk7IC8qIFsxNV0gKi9cbn1cbi5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX3ZhbHVlOmxhc3QtY2hpbGQge1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0byAhaW1wb3J0YW50OyAvKiBbMTZdICovIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgaXRjc3Mvbm8tYXQtaW1wb3J0YW50ICovXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxcHgpOyAvKiBbMTVdICovXG59XG4uYy1jdXN0b20tcmFuZ2Utc2xpZGVyW2Rpc2FibGVkXSAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyX192YWx1ZSB7XG4gIGNvbG9yOiAjOWU5ZmEwO1xuICBjdXJzb3I6IGluaXRpYWw7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fdG9vbHRpcC13cmFwcGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA4cHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ2NDc0ODtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX2Fycm93IHsgLyogWzE0XSAqL1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiA4cHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXdpZHRoOiA4cHg7XG59XG5cbi5jLWN1c3RvbS1yYW5nZS1zbGlkZXJbZGF0YS1jdXN0b20tcmFuZ2Utc2xpZGVyLXRvb2x0aXBzXSB7XG4gIG1hcmdpbi10b3A6IDQ4cHg7IC8qIFsyMF0gKi9cbn1cblxuLmMtY3VzdG9tLXJhbmdlLXNsaWRlcjpub3QoW2RhdGEtY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLXBvc2l0aW9uPWJvdHRvbV0pIHsgLyogWzExXSAqLyB9XG4uYy1jdXN0b20tcmFuZ2Utc2xpZGVyOm5vdChbZGF0YS1jdXN0b20tcmFuZ2Utc2xpZGVyLXRvb2x0aXAtcG9zaXRpb249Ym90dG9tXSkgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fdG9vbHRpcC13cmFwcGVyIHtcbiAgYm90dG9tOiAyOHB4O1xufVxuLmMtY3VzdG9tLXJhbmdlLXNsaWRlcjpub3QoW2RhdGEtY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLXBvc2l0aW9uPWJvdHRvbV0pIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX2Fycm93IHtcbiAgdG9wOiAxMDAlO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICBib3JkZXItdG9wLWNvbG9yOiAjNDY0NzQ4O1xufVxuXG5bZGF0YS1jdXN0b20tcmFuZ2Utc2xpZGVyLXRvb2x0aXAtcG9zaXRpb249Ym90dG9tXSxcbi5jdXN0b20tcmFuZ2Utc2xpZGVyLXRvb2x0aXAtLWJvdHRvbSB7IC8qIFsxMl0gKi9cbiAgbWFyZ2luLWJvdHRvbTogNDhweDsgLyogWzIwXSAqL1xufVxuW2RhdGEtY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLXBvc2l0aW9uPWJvdHRvbV0gLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fdG9vbHRpcC13cmFwcGVyLFxuLmN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC0tYm90dG9tIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX3Rvb2x0aXAtd3JhcHBlciB7XG4gIHRvcDogMjhweDtcbn1cbltkYXRhLWN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1wb3NpdGlvbj1ib3R0b21dIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX2Fycm93LFxuLmN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC0tYm90dG9tIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX2Fycm93IHtcbiAgYm90dG9tOiAxMDAlO1xuICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjNDY0NzQ4O1xufVxuXG4vKipcbiAqIFsxXSBTaG93IHdoZW4gb3V0bGluZSBmb3IgZm9jdXMgYW5kIHdoZW4gY3VycmVudGx5IGRyYWdnZWQgKGAtLWFjdGl2ZWApLlxuICogWzJdIEltcHJvdmUgb3V0bGluZSBhbmltYXRpb24gYnkgYXBwbHlpbmcgYSB0cmFuc3BhcmVudCBvdXRsaW5lIHdpdGhvdXRcbiAqICAgICBvZmZzZXQgYnkgZGVmYXVsdCB3aGljaCBnZXRzIGFuaW1hdGVkLiBPdGhlcndpc2UgdGhlIG91dGxpbmUganVzdFxuICogICAgIGRpc2FwcGVhcnMgb24gXCJibHVyXCIuXG4gKiBbM10gTm8gb3B0aW9uIGZvciBkaWZmZXJlbnQgcGFkZGluZyBkaXJlY3Rpb25zIGluIGRlZmF1bHQuXG4gKi9cbi5jLWN1c3RvbS1yYW5nZS1zbGlkZXI6bm90KFtkaXNhYmxlZF0pIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX3RodW1iIHtcbiAgLyogWzFdICovXG59XG4uYy1jdXN0b20tcmFuZ2Utc2xpZGVyOm5vdChbZGlzYWJsZWRdKSAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyX190aHVtYjo6YmVmb3JlIHtcbiAgLyogWzJdICovXG4gIC0tZm9jdXMtb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDA7XG4gIC0tZm9jdXMtb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIC0tZm9jdXMtb3V0bGluZS13aWR0aDogMnB4O1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb2N1cy1vdXRsaW5lLWNvbG9yLCAjMTYxNzE4KTtcbiAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWZvY3VzLW91dGxpbmUtb2Zmc2V0LCAxcHgpO1xuICBvdXRsaW5lLXN0eWxlOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXN0eWxlLCBzb2xpZCk7XG4gIG91dGxpbmUtd2lkdGg6IHZhcigtLWZvY3VzLW91dGxpbmUtd2lkdGgsIDJweCk7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDE1MG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xufVxuLmMtY3VzdG9tLXJhbmdlLXNsaWRlcjpub3QoW2Rpc2FibGVkXSkgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fdGh1bWI6YWN0aXZlLCAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyOm5vdChbZGlzYWJsZWRdKSAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyX190aHVtYjpob3ZlciwgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcjpub3QoW2Rpc2FibGVkXSkgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fdGh1bWI6Zm9jdXMtdmlzaWJsZSB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbn1cbi5jLWN1c3RvbS1yYW5nZS1zbGlkZXI6bm90KFtkaXNhYmxlZF0pIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX3RodW1iOmFjdGl2ZTo6YmVmb3JlLCAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyOm5vdChbZGlzYWJsZWRdKSAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyX190aHVtYjpob3Zlcjo6YmVmb3JlLCAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyOm5vdChbZGlzYWJsZWRdKSAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyX190aHVtYjpmb2N1cy12aXNpYmxlOjpiZWZvcmUge1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xufVxuLmMtY3VzdG9tLXJhbmdlLXNsaWRlcjpub3QoW2Rpc2FibGVkXSkgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fdGh1bWI6YWN0aXZlLCAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyOm5vdChbZGlzYWJsZWRdKSAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyX190aHVtYjpmb2N1cy12aXNpYmxlIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xufVxuLmMtY3VzdG9tLXJhbmdlLXNsaWRlcjpub3QoW2Rpc2FibGVkXSkgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fdGh1bWI6YWN0aXZlOjpiZWZvcmUsIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXI6bm90KFtkaXNhYmxlZF0pIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX3RodW1iOmZvY3VzLXZpc2libGU6OmJlZm9yZSB7XG4gIC0tZm9jdXMtb3V0bGluZS1jb2xvcjogIzE2MTcxODtcbiAgLS1mb2N1cy1vdXRsaW5lLW9mZnNldDogNHB4O1xuICAtLWZvY3VzLW91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICAtLWZvY3VzLW91dGxpbmUtd2lkdGg6IDJweDtcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9jdXMtb3V0bGluZS1jb2xvciwgIzE2MTcxOCk7XG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1mb2N1cy1vdXRsaW5lLW9mZnNldCwgMXB4KTtcbiAgb3V0bGluZS1zdHlsZTogdmFyKC0tZm9jdXMtb3V0bGluZS1zdHlsZSwgc29saWQpO1xuICBvdXRsaW5lLXdpZHRoOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXdpZHRoLCAycHgpO1xufVxuXG4uYy1jdXN0b20tcmFuZ2Utc2xpZGVyX190b29sdGlwLXdyYXBwZXIge1xuICBwYWRkaW5nOiA4cHggMTJweDsgLyogWzNdICovXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgI05PVElGSUNBVElPTlMgKFNldHRpbmdzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICNOT1RJRklDQVRJT05TXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdICBOb3RpZmljYXRpb25zIGFyZSBhbHdheXMgc3RpY2t5LlxuICogWzJdICBOb3RpZmljYXRpb25zIGFyZSBkaXNwbGF5ZWQgZWl0aGVyIGF0IHRoZSB0b3Agb3IgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZS5cbiAqIFszXSAgVmlzdWFsbHkgaGlkZSBub3RpZmljYXRpb25zIGFzIGxvbmcgYXMgSlMgaXMgbm90IGxvYWRlZC5cbiAqIFs0XSAgVG8gcHJvcGVybHkgYW5pbWF0ZSB0aGUgb3BlbmluZy9jbG9zaW5nIG9mIHRoZSBub3RpZmljYXRpb25zLCBoaWRlIHRoZVxuICogICAgICBvdmVyZmxvdy5cbiAqIFs1XSAgQWRkIHRyYW5zaXRpb24gYWZ0ZXIgSlMgaXMgbG9hZGVkIHRvIHByZXZlbnQgd2VpcmQgZmxpY2tlcmluZyBvZiB0aGVcbiAqICAgICAgbm90aWZpY2F0aW9uIG9uIHBhZ2UtbG9hZC5cbiAqIFs2XSAgQWRkIGhlaWdodCBvZiBgMGAgd2hlbiB0aGUgbm90aWZpY2F0aW9uIGlzIGNsb3NlZCB0byBiZSBhYmxlIHRvXG4gKiAgICAgIGFuaW1hdGUgdGhlIG9wZW5pbmcvY2xvc2luZy5cbiAqIFs4XSAgVmVydGljYWxseSBhbGlnbiB0aGUgaWNvbiB3aXRoIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBub3RpZmljYXRpb25zIHRleHQuXG4gKiBbOV0gIFJlbGF0aW9uIGZvciB0aGUgaWNvbi5cbiAqIFsxMF0gU3BhY2luZyBmb3IgdGhlIGljb24gb24gdGhlIHJpZ2h0LlxuICogWzExXSBNYWtlIHN1cmUgdGhhdCBsaW5rcyBpbiBub3RpZmljYXRpb25zIGFyZSBhbHdheXMgbGVnaWJsZS5cbiAqIFsxM10gTW9kaWZpZXIgZm9yIGZsZXgtZGlyZWN0aW9uIGJlaGF2aW9yIG9uIG1vYmlsZS5cbiAqIFsxNF0gUmVtb3ZlIG1hcmdpbi1ib3R0b20gZnJvbSBwYXJhZ3JhcGguXG4gKiBbMTVdIEFkZCBzdGF0dXMgc3BlY2lmaWMgY29sb3IuXG4gKiBbMTZdIFNldCBgdHJhbnNmb3JtYCB0byBgbm9uZWAgaW5zdGVhZCBvZiBgdHJhbnNsYXRlWSgwKWAgYXMgdGhpcyB3b3VsZFxuICogICAgICBoaWRlIHRoZSBib3R0b20gYm9yZGVyIGluIGNvbWJpbmF0aW9uIHdpdGggYG92ZXJmbG93OiBoaWRkZW5gIG9uIHRoZVxuICogICAgICBjb250YWluZXIgKG9ubHkgbmVjZXNzYXJ5IGZvciBGaXJlZm94KS5cbiAqIFsxN10gUmVzdHJpY3QgdGhlIGhlaWdodCBvZiB0aGUgY29udGFpbmVyIHRvIHRoZSB2aWV3cG9ydCBoZWlnaHQsIHNvIGl0IGlzXG4gKiAgICAgIHNjcm9sbGFibGUgd2l0aCBtYW55IGl0ZW1zIGluIGl0LlxuICogWzE4XSBJbiBjYXNlIG9mIG1hbnkgbm90aWZpY2F0aW9ucywgZW5zdXJlIHNjcm9sbGFiaWxpdHksLi4uXG4gKiBbMTldIC4uLmJ1dCBwcmV2ZW50IG9uIHRoZSB4LWF4aXMuXG4gKiBbMjBdIEdlbmVyYXRlIGJ1dHRvbiBDU1MgY3VzdG9tIHByb3BlcnRpZXNcbiAqIFsyMV0gR2VuZXJhdGUgc3RhdHVzIHRoZW1lIGJ1dHRvbiBDU1MgY3VzdG9tIHByb3BlcnRpZXNcbiAqL1xuLmMtbm90aWZpY2F0aW9ucy1ncm91cCB7XG4gIHBvc2l0aW9uOiBzdGlja3k7IC8qIFsxXSAqL1xuICB6LWluZGV4OiAyNTAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDB2aDsgLyogWzE3XSAqL1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IC8qIFszXSAqL1xuICBvdmVyZmxvdy15OiBhdXRvOyAvKiBbMThdICovXG4gIG92ZXJmbG93LXg6IGhpZGRlbjsgLyogWzE5XSAqL1xufVxuLmMtbm90aWZpY2F0aW9ucy1ncm91cC5qcy1pcy1yZWFkeSB7XG4gIHZpc2liaWxpdHk6IGluaGVyaXQ7XG59XG5cbi5qcy1jb250ZXh0LW5vdGlmaWNhdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5cbi5jLW5vdGlmaWNhdGlvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXRvcDogMTZweDtcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XG4gIHRyYW5zZm9ybTogbm9uZTsgLyogWzE2XSAqL1xuICBib3JkZXI6IHZhcigtLW5vdGlmaWNhdGlvbi1ib3JkZXIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tYmFja2dyb3VuZC1jb2xvciwgIzBlM2EyZik7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tdGV4dC1jb2xvciwgI2ZmZmZmZik7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBvcmRlci9vcmRlciAqL1xufVxuLmMtbm90aWZpY2F0aW9ucy1ncm91cC5qcy1pcy1yZWFkeSA+IC5jLW5vdGlmaWNhdGlvbiwgLmMtbm90aWZpY2F0aW9uX19jb250YWluZXIuanMtaXMtcmVhZHkgLmMtbm90aWZpY2F0aW9uIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIC8qIFs1XSAqL1xufVxuLmMtbm90aWZpY2F0aW9uLS1pbmZvIC5jLW5vdGlmaWNhdGlvbl9fc3RhdHVzLWljb24ge1xuICBmb250LXNpemU6IDI0cHg7XG59XG4uYy1ub3RpZmljYXRpb24tLWluZm8gLmMtbm90aWZpY2F0aW9uX19zdGF0dXMtaWNvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWJcIjtcbn1cblxuLmMtbm90aWZpY2F0aW9uLS1zdWNjZXNzIC5jLW5vdGlmaWNhdGlvbl9fc3RhdHVzLWljb24ge1xuICBmb250LXNpemU6IDI0cHg7XG59XG4uYy1ub3RpZmljYXRpb24tLXN1Y2Nlc3MgLmMtbm90aWZpY2F0aW9uX19zdGF0dXMtaWNvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDZcIjtcbn1cblxuLmMtbm90aWZpY2F0aW9uLS13YXJuaW5nIC5jLW5vdGlmaWNhdGlvbl9fc3RhdHVzLWljb24ge1xuICBmb250LXNpemU6IDI0cHg7XG59XG4uYy1ub3RpZmljYXRpb24tLXdhcm5pbmcgLmMtbm90aWZpY2F0aW9uX19zdGF0dXMtaWNvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTBcIjtcbn1cblxuLmMtbm90aWZpY2F0aW9uLS1lcnJvciAuYy1ub3RpZmljYXRpb25fX3N0YXR1cy1pY29uIHtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuLmMtbm90aWZpY2F0aW9uLS1lcnJvciAuYy1ub3RpZmljYXRpb25fX3N0YXR1cy1pY29uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3YVwiO1xufVxuXG4vKiBOb3JtYWwgTm90aWZpY2F0aW9ucyAobm90IENvbnRleHQgTm90aWZpY2F0aW9ucykgKi9cbjpub3QoLmMtbm90aWZpY2F0aW9uLS1jb250ZXh0KS5jLW5vdGlmaWNhdGlvbiB7XG4gIC8qIFsyMF0gKi9cbiAgLS1idXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAtLWJ1dHRvbi1zZWNvbmRhcnktdGV4dC1jb2xvcjogI2ZmZmZmZjtcbiAgLS1idXR0b24tc2Vjb25kYXJ5LWJvcmRlci1jb2xvcjogY3VycmVudENvbG9yO1xuICAtLWJ1dHRvbi1zZWNvbmRhcnktYm9yZGVyLWNvbG9yLWhvdmVyOiBjdXJyZW50Q29sb3I7XG59XG46bm90KC5jLW5vdGlmaWNhdGlvbi0tY29udGV4dCkuYy1ub3RpZmljYXRpb24tLWluZm8ge1xuICAtLW5vdGlmaWNhdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiAjMGUzYTJmO1xuICAtLW5vdGlmaWNhdGlvbi10ZXh0LWNvbG9yOiAjZmZmZmZmO1xufVxuXG46bm90KC5jLW5vdGlmaWNhdGlvbi0tY29udGV4dCkuYy1ub3RpZmljYXRpb24tLXN1Y2Nlc3Mge1xuICAtLW5vdGlmaWNhdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiAjMGUzYTJmO1xuICAtLW5vdGlmaWNhdGlvbi10ZXh0LWNvbG9yOiAjZmZmZmZmO1xuICAtLW5vdGlmaWNhdGlvbi1pY29uLWNvbG9yOiAjMzdkMDAyO1xufVxuXG46bm90KC5jLW5vdGlmaWNhdGlvbi0tY29udGV4dCkuYy1ub3RpZmljYXRpb24tLXdhcm5pbmcge1xuICAtLW5vdGlmaWNhdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiAjMGUzYTJmO1xuICAtLW5vdGlmaWNhdGlvbi10ZXh0LWNvbG9yOiAjZmZmZmZmO1xuICAtLW5vdGlmaWNhdGlvbi1pY29uLWNvbG9yOiAjZWM2NTEzO1xufVxuXG46bm90KC5jLW5vdGlmaWNhdGlvbi0tY29udGV4dCkuYy1ub3RpZmljYXRpb24tLWVycm9yIHtcbiAgLS1ub3RpZmljYXRpb24tYmFja2dyb3VuZC1jb2xvcjogIzBlM2EyZjtcbiAgLS1ub3RpZmljYXRpb24tdGV4dC1jb2xvcjogI2ZmZmZmZjtcbiAgLS1ub3RpZmljYXRpb24taWNvbi1jb2xvcjogI2U4MmIzNztcbn1cblxuLyogTWFya2V0aW5nIENvbG9ycyBOb3RpZmljYXRpb25zICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZHVwbGljYXRlLXNlbGVjdG9ycyAqL1xuLmMtbm90aWZpY2F0aW9uW2RhdGEtbWFya2V0aW5nLXRoZW1lPVwiMVwiXSB7XG4gIC0tYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kOiAjNDY0NzQ4O1xuICAtLWJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZC1ob3ZlcjogIzVhNWI1YztcbiAgLS1idXR0b24tc2Vjb25kYXJ5LXRleHQtY29sb3I6ICNmZmZmZmY7XG4gIC0tYnV0dG9uLXNlY29uZGFyeS10ZXh0LWNvbG9yLWhvdmVyOiAjZmZmZmZmO1xuICAtLW5vdGlmaWNhdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiAjZjlkMWI4O1xuICAtLW5vdGlmaWNhdGlvbi10ZXh0LWNvbG9yOiAjMTYxNzE4O1xuICAtLW5vdGlmaWNhdGlvbi10aXRsZS1jb2xvcjogIzE2MTcxODtcbn1cbi5jLW5vdGlmaWNhdGlvbltkYXRhLW1hcmtldGluZy10aGVtZT1cIjJcIl0ge1xuICAtLWJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZDogIzQ2NDc0ODtcbiAgLS1idXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQtaG92ZXI6ICM1YTViNWM7XG4gIC0tYnV0dG9uLXNlY29uZGFyeS10ZXh0LWNvbG9yOiAjZmZmZmZmO1xuICAtLWJ1dHRvbi1zZWNvbmRhcnktdGV4dC1jb2xvci1ob3ZlcjogI2ZmZmZmZjtcbiAgLS1ub3RpZmljYXRpb24tYmFja2dyb3VuZC1jb2xvcjogI2MzZjFiMztcbiAgLS1ub3RpZmljYXRpb24tdGV4dC1jb2xvcjogIzE2MTcxODtcbiAgLS1ub3RpZmljYXRpb24tdGl0bGUtY29sb3I6ICMxNjE3MTg7XG59XG5cbi8qIENvbnRleHQgTm90aWZpY2F0aW9ucyAqL1xuLmMtbm90aWZpY2F0aW9uLS1jb250ZXh0IHtcbiAgLS1ub3RpZmljYXRpb24tdGV4dC1jb2xvcjogIzE2MTcxODtcbiAgLS1ub3RpZmljYXRpb24tdGl0bGUtY29sb3I6ICMxNjE3MTg7XG4gIC0tbm90aWZpY2F0aW9uLWJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7XG4gIC0tbm90aWZpY2F0aW9uLWJvcmRlci1zdHlsZTogc29saWQ7XG4gIC0tbm90aWZpY2F0aW9uLWJvcmRlci13aWR0aDogMDtcbiAgLS1ub3RpZmljYXRpb24tYm9yZGVyLWNvbG9yOiAjN2M3ZDdlO1xuICBib3JkZXI6IHZhcigtLW5vdGlmaWNhdGlvbi1ib3JkZXIsIDAgc29saWQgIzdjN2Q3ZSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWJvcmRlci1jb2xvcik7XG4gIC8qIFsyMF0gKi9cbn1cbi5jLW5vdGlmaWNhdGlvbi0tY29udGV4dC5jLW5vdGlmaWNhdGlvbi0taW5mbyB7XG4gIC0tbm90aWZpY2F0aW9uLXRpdGxlLWNvbG9yOiAjMTYxNzE4O1xuICAtLW5vdGlmaWNhdGlvbi1ib3JkZXItY29sb3I6ICMyZDcxZDc7XG59XG5cbi5jLW5vdGlmaWNhdGlvbi0tY29udGV4dC5jLW5vdGlmaWNhdGlvbi0tc3VjY2VzcyB7XG4gIC0tbm90aWZpY2F0aW9uLXRpdGxlLWNvbG9yOiAjMTYxNzE4O1xuICAtLW5vdGlmaWNhdGlvbi1pY29uLWNvbG9yOiAjMzdkMDAyO1xuICAtLW5vdGlmaWNhdGlvbi1ib3JkZXItY29sb3I6ICMzN2QwMDI7XG59XG5cbi5jLW5vdGlmaWNhdGlvbi0tY29udGV4dC5jLW5vdGlmaWNhdGlvbi0td2FybmluZyB7XG4gIC0tbm90aWZpY2F0aW9uLXRpdGxlLWNvbG9yOiAjMTYxNzE4O1xuICAtLW5vdGlmaWNhdGlvbi1pY29uLWNvbG9yOiAjZWM2NTEzO1xuICAtLW5vdGlmaWNhdGlvbi1ib3JkZXItY29sb3I6ICNlYzY1MTM7XG59XG5cbi5jLW5vdGlmaWNhdGlvbi0tY29udGV4dC5jLW5vdGlmaWNhdGlvbi0tZXJyb3Ige1xuICAtLW5vdGlmaWNhdGlvbi10aXRsZS1jb2xvcjogIzE2MTcxODtcbiAgLS1ub3RpZmljYXRpb24taWNvbi1jb2xvcjogI2U4MmIzNztcbiAgLS1ub3RpZmljYXRpb24tYm9yZGVyLWNvbG9yOiAjZTgyYjM3O1xufVxuXG4uYy1ub3RpZmljYXRpb25fX2NvbnRhaW5lciB7XG4gIG92ZXJmbG93OiBoaWRkZW47IC8qIFs0XSAqL1xufVxuLmMtbm90aWZpY2F0aW9uX19jb250YWluZXIgKyAuYy1ub3RpZmljYXRpb25fX2NvbnRhaW5lciB7XG4gIG1hcmdpbi10b3A6IDhweDtcbn1cbi5qcy1pcy1yZWFkeSA+IC5jLW5vdGlmaWNhdGlvbl9fY29udGFpbmVyIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIC8qIFs1XSAqL1xufVxuLmMtbm90aWZpY2F0aW9uX19jb250YWluZXIuaXMtY2xvc2VkIHtcbiAgaGVpZ2h0OiAwOyAvKiBbNl0gKi9cbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uYy1ub3RpZmljYXRpb25fX2Nsb3NlIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMTEuMjVweDsgLyogWzhdICovXG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdXRsaW5lOiBub25lO1xufVxuLmMtbm90aWZpY2F0aW9uX19jbG9zZTpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG4uYy1ub3RpZmljYXRpb25fX2Nsb3NlOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcImJyb25zb24tc2tvZGFcIiAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgY29udGVudDogXCJcXGYxNWFcIjtcbiAgZm9udC1zaXplOiAyNHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLXRleHQtY29sb3IsICNmZmZmZmYpO1xufVxuXG4uYy1ub3RpZmljYXRpb25fX3N0YXR1cy1pY29uIHtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1pY29uLWNvbG9yKTtcbn1cbi5jLW5vdGlmaWNhdGlvbiAuYy1ub3RpZmljYXRpb25fX3N0YXR1cy1pY29uOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcImJyb25zb24tc2tvZGFcIiAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuLmMtbm90aWZpY2F0aW9uX19vdXRlci13cmFwIHtcbiAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDE5MnB4KTtcbiAgcGFkZGluZy1sZWZ0OiA5NnB4O1xuICBwYWRkaW5nLXJpZ2h0OiA5NnB4O1xuICAtLXBhZ2Utd3JhcDogOTZweDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1ub3RpZmljYXRpb25fX291dGVyLXdyYXAge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyA5NnB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG4gICAgcGFkZGluZy1yaWdodDogNDhweDtcbiAgICAtLXBhZ2Utd3JhcDogNDhweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLW5vdGlmaWNhdGlvbl9fb3V0ZXItd3JhcCB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDQ4cHgpO1xuICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICAgIC0tcGFnZS13cmFwOiAyNHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtbm90aWZpY2F0aW9uX19vdXRlci13cmFwIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTI0OHB4ICsgMjRweCk7XG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XG4gICAgLS1wYWdlLXdyYXA6IDEycHg7XG4gIH1cbn1cblxuLmMtbm90aWZpY2F0aW9uX19pbm5lci13cmFwIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgLyogWzhdICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogWzldICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDQwcHg7IC8qIFsxMF0gKi9cbn1cblxuLmMtbm90aWZpY2F0aW9uX190ZXh0LFxuLmMtbm90aWZpY2F0aW9uX190ZXh0ID4gcDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzE0XSAqL1xufVxuLmMtbm90aWZpY2F0aW9uX190ZXh0IGEge1xuICBjb2xvcjogaW5oZXJpdDsgLyogWzExXSAqL1xufVxuXG4uYy1ub3RpZmljYXRpb25fX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tdGl0bGUtY29sb3IsICNmZmZmZmYpO1xufVxuXG4uYy1ub3RpZmljYXRpb25fX2J1dHRvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDE2cHg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLXRvcDogMTZweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAjTk9USUZJQ0FUSU9OU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBDb21wZW5zYXRlIG1pc2FsaWdubWVudCBiZXR3ZWVuIGljb24gYW5kIHRpdGxlL3RleHQuXG4gKiBbMl0gQXZvaWQgY29sbGlzaW9uIHdpdGggYnV0dG9uIHN0YXRlcy5cbiAqL1xuLmMtbm90aWZpY2F0aW9uIHtcbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjZmZmZmZmO1xufVxuLmMtbm90aWZpY2F0aW9uLmMtbm90aWZpY2F0aW9uLS1jb250ZXh0LCAuYy1ub3RpZmljYXRpb25bZGF0YS1tYXJrZXRpbmctdGhlbWVdIHtcbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjMTYxNzE4O1xufVxuLmMtbm90aWZpY2F0aW9uOm5vdCguYy1ub3RpZmljYXRpb24tLWNvbnRleHQsIFtkYXRhLW1hcmtldGluZy10aGVtZV0pIC5jLWJ0biB7XG4gIGJvcmRlcjogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbn1cbi5jLW5vdGlmaWNhdGlvbjpub3QoLmMtbm90aWZpY2F0aW9uLS1jb250ZXh0LCBbZGF0YS1tYXJrZXRpbmctdGhlbWVdKSAuYy1idG46Zm9jdXMtdmlzaWJsZSB7XG4gIC0tZm9jdXMtb3V0bGluZS1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLmMtbm90aWZpY2F0aW9uX19jbG9zZSB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgc2NhbGU6IDE7XG4gIHRvcDogMDtcbn1cbi5jLW5vdGlmaWNhdGlvbl9fY2xvc2U6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAtMTtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0cmFuc2l0aW9uOiBpbmhlcml0O1xufVxuLmMtbm90aWZpY2F0aW9uX19jbG9zZTpob3Zlcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0MywgMjQzLCAyNDMsIDAuMTIpO1xufVxuXG4uYy1ub3RpZmljYXRpb25fX2Nsb3NlOmZvY3VzLXZpc2libGU6OmFmdGVyIHtcbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjZmZmZmZmO1xuICAtLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiAwO1xuICAtLWZvY3VzLW91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICAtLWZvY3VzLW91dGxpbmUtd2lkdGg6IDJweDtcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9jdXMtb3V0bGluZS1jb2xvciwgIzE2MTcxOCk7XG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1mb2N1cy1vdXRsaW5lLW9mZnNldCwgMXB4KTtcbiAgb3V0bGluZS1zdHlsZTogdmFyKC0tZm9jdXMtb3V0bGluZS1zdHlsZSwgc29saWQpO1xuICBvdXRsaW5lLXdpZHRoOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXdpZHRoLCAycHgpO1xufVxuXG4uYy1ub3RpZmljYXRpb25fX2Nsb3NlOmFjdGl2ZSB7XG4gIHNjYWxlOiAwLjk1O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtbm90aWZpY2F0aW9uX19jbG9zZSB7XG4gICAgcmlnaHQ6IDRweDsgLyogWzJdICovXG4gIH1cbn1cbi5jLW5vdGlmaWNhdGlvbi0tY29udGV4dCAuYy1ub3RpZmljYXRpb25fX2Nsb3NlOmhvdmVyOjphZnRlciwgW2RhdGEtbWFya2V0aW5nLXRoZW1lXSAuYy1ub3RpZmljYXRpb25fX2Nsb3NlOmhvdmVyOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIsIDIzLCAyNCwgMC4wNik7XG59XG4uYy1ub3RpZmljYXRpb24tLWNvbnRleHQgLmMtbm90aWZpY2F0aW9uX19jbG9zZTo6YWZ0ZXIsIFtkYXRhLW1hcmtldGluZy10aGVtZV0gLmMtbm90aWZpY2F0aW9uX19jbG9zZTo6YWZ0ZXIge1xuICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICMxNjE3MTg7XG59XG5cbi5jLW5vdGlmaWNhdGlvbl9fc3RhdHVzLWljb24ge1xuICBtYXJnaW4tdG9wOiAtMC4xNWVtOyAvKiBbMV0gKi9cbn1cblxuOm5vdCguYy1ub3RpZmljYXRpb24tLWNvbnRleHQpLmMtbm90aWZpY2F0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuOm5vdCguYy1ub3RpZmljYXRpb24tLWNvbnRleHQpLmMtbm90aWZpY2F0aW9uLS1zdWNjZXNzIHtcbiAgYm9yZGVyLWxlZnQ6IDA7XG59XG46bm90KC5jLW5vdGlmaWNhdGlvbi0tY29udGV4dCkuYy1ub3RpZmljYXRpb24tLXN1Y2Nlc3M6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM3ZDAwMjtcbn1cblxuOm5vdCguYy1ub3RpZmljYXRpb24tLWNvbnRleHQpLmMtbm90aWZpY2F0aW9uLS13YXJuaW5nIHtcbiAgYm9yZGVyLWxlZnQ6IDA7XG59XG46bm90KC5jLW5vdGlmaWNhdGlvbi0tY29udGV4dCkuYy1ub3RpZmljYXRpb24tLXdhcm5pbmc6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjNjUxMztcbn1cblxuOm5vdCguYy1ub3RpZmljYXRpb24tLWNvbnRleHQpLmMtbm90aWZpY2F0aW9uLS1lcnJvciB7XG4gIGJvcmRlci1sZWZ0OiAwO1xufVxuOm5vdCguYy1ub3RpZmljYXRpb24tLWNvbnRleHQpLmMtbm90aWZpY2F0aW9uLS1lcnJvcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTgyYjM3O1xufVxuXG46bm90KC5jLW5vdGlmaWNhdGlvbi0tY29udGV4dCkuYy1ub3RpZmljYXRpb246OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiA2cHg7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1dJWkFSRFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBNYWtlIHN1cmUgYWxsIGl0ZW1zIGFyZSB0aGUgc2FtZSB3aWR0aC5cbiAqIFsyXSBJZiB0aGUgaW5kaWNhdG9yIGlzIHBvc2l0aW9uZWQgYWJvdmUgdGhlIGl0ZW0gdGV4dCwgbWFrZSBzdXJlIHRoYXQgdGhlXG4gKiAgICAgaXRlbXMgYXJlIGFsaWduZWQgdG8gZWFjaCBvdGhlciBhdCB0aGUgdG9wLlxuICogWzNdIEZvcmNlIGNvbGxhcHNpbmcgb2YgaXRlbXMgb24gc21hbGwgc2NyZWVuIGFuZCBhbGlnbiBpdCB0byB0aGUgbGVmdC5cbiAqIFs0XSBDcmVhdGUgbGl0dGxlIHN0cm9rZSBhcnJvdyBiZXR3ZWVuIGl0ZW1zLiBUaGUgYXJyb3dzIGFyZSBhbHdheXMgcGxhY2VkXG4gKiAgICAgaW4gZnJvbnQgb2YgdGhlIGl0ZW1zLlxuICogWzVdIFVwcGVyIGhhbGYgb2YgdGhlIHN0cm9rZSBhcnJvdy5cbiAqIFs2XSBCb3R0b20gaGFsZiBvZiB0aGUgc3Ryb2tlIGFycm93LlxuICogWzddIEFkZCBibG9jayBhcnJvdyB0byBpdGVtcyB3aXRoIGNlcnRhaW4gc3RhdGVzIChkaXNhYmxlZCwgYWN0aXZlKSBieSB1c2luZ1xuICogICAgIHR3byBza2V3ZWQgcHNldWRvIGVsZW1lbnRzIGFzIGJhY2tncm91bmQuXG4gKiBbOF0gRml4IGJsb2NrIGFycm93IGl0ZW1zIG5vdCBiZWluZyB3aWRlIGVub3VnaCBmb3IgZmlyc3QgYW5kIGxhc3QgaXRlbSBhbmRcbiAqICAgICBjdXQgdGhlbSBvZmYgd2hlbiB0aGV5IG92ZXJmbG93IHRoZSBjb250YWluZXIuXG4gKiBbOV0gQ2hhbmdlIGJhY2tncm91bmQgYW5kIHRleHQgY29sb3JzIGZvciB0aGUgc3BlY2lmaWMgc3RhdGVzLlxuICogWzEwXSBDaGFuZ2UgbGluayB0ZXh0IGNvbG9ycyBmb3IgdGhlIHNwZWNpZmljIHN0YXRlcyB1cG9uIGhvdmVyL2ZvY3VzLlxuICogWzExXSBUaGUgZGVmYXVsdCBpdGVtcyAoaS5lLiB0aGUgZnV0dXJlIGl0ZW1zKSBhcmUgbm90IGNsaWNrYWJsZS5cbiAqIFsxMl0gVGhlIGRvbmUgYW5kIGFjdGl2ZSBpdGVtcyBoYXZlIHRvIGJlIG1hZGUgY2xpY2thYmxlIGFnYWluIChzZWUgWzExXSkuXG4gKiBbMTNdIE9uIHNtYWxsIHNjcmVlbiwgdGhlIGluZGljYXRvciBpcyBhbHdheXMgYWxpZ25lZCBpbiByb3cgd2l0aCB0aGUgdGV4dFxuICogICAgICBhbmQgbGVmdCBhbGlnbmVkLlxuICogWzE0XSBQb3NpdGlvbiBjb250ZW50IGFib3ZlIGFycm93cyBhbmQgb3ZlcmxhcCBhcnJvd3MgZm9yIHN0YXRlcyB3aXRoXG4gKiAgICAgIGJhY2tncm91bmQgY29sb3IuXG4gKiBbMTVdIEFkZCByZWxhdGl2ZSBwb3NpdGlvbmluZyB0byBoYXZlIGEgcmVmZXJlbmNlIGZvciBwc2V1ZG8gZWxlbWVudHMgdGhhdFxuICogICAgICBuZWVkIGUuZy4gYWJzb2x1dGUgcG9zaXRpb25pbmcgKHVzZWQgZm9yIGFycm93cyBhbmQgc3VjaCkuXG4gKiBbMTZdIEFkZCBiYWNrZ3JvdW5kIGNvbG9ycyB0byBhbGwgc3RhdGVzIGZvciBzbWFsbCBzY3JlZW4gbGlzdC5cbiAqIFsxN10gU3RyZXRjaCB3aXphcmQgbGluayB0byBmdWxsIGhlaWdodCB0byBjZW50ZXIgaXRzIGNvbnRlbnQgdmVydGljYWxseS5cbiAqIFsxOF0gVXNlIGljb24gYXMgbGluayBpbmRpY2F0b3IgaWYgdGhlIGluZGljYXRvciBzaG91bGQgbm90IGJlIG51bWJlcmVkLlxuICogWzE5XSBBZGQgcmVndWxhciBmb250IHN0eWxlcyBpZiBsaW5rIGluZGljYXRvciBzaG91bGQgbm90IGJlIG51bWJlcmVkIGluc3RlYWRcbiAqICAgICAgb2YgYmVpbmcgYW4gaWNvbi5cbiAqIFsyMF0gQ2hhbmdlIGluZGljYXRvciBzdHlsaW5nIGZvciB0aGUgc3BlY2lmaWMgc3RhdGVzLlxuICogWzIxXSBDaGFuZ2UgaW5kaWNhdG9yIHN0eWxpbmcgZm9yIHRoZSBzcGVjaWZpYyBzdGF0ZXMgdXBvbiBob3Zlci9mb2N1cy5cbiAqIFsyMl0gT3B0aW9uYWxseSByZXZlcnQgb3JkZXIgb2YgdHJpZ2dlciBpY29uLCBjb3VudGVyIGFuZCB0ZXh0LlxuICogWzIzXSBQcmV2ZW50IGludGVyYWN0aW9uIG9mIHRoZSBlbGVtZW50KHMpLCB3aGVuIG1vZGlmaWVyIGlzIGdpdmVuXG4gKiAgICAgIGV4Y2VwdCBvbiB0aGUgLmMtd2l6YXJkX190cmlnZ2VyIG9uIG1vYmlsZS5cbiAqIFsyNF0gU2V0IGhvcml6b250YWwgbGluayBjb250ZW50IGFsaWdubWVudC5cbiAqIFsyNV0gU2V0IHZlcnRpY2FsIGxpbmsgY29udGVudCBhbGlnbm1lbnQsIGJ1dCBhbHdheXMgcmVzZXQgdG8gYGNlbnRlcmAgZm9yXG4gKiAgICAgIGNvbGxhcHNlZCBsYXlvdXQgaW4gc21hbGwgdmlld3BvcnRzLlxuICogWzI2XSBJZiBgJHdpemFyZC1wYWdlLXdyYXA6IHRydWVgIGxpbWl0IHRoZSB3aXphcmQgd2lkdGggdG8gdGhlIHBhZ2Ugd3JhcFxuICogICAgICB3aWR0aC5cbiAqIFsyN10gUmVzaXplIHRoZSB3aXphcmQgdG8gdGhlIGZ1bGwgcGFnZSB3cmFwIHdpZHRoLlxuICogWzI4XSBJZiBhbiBpY29uIGlzIHVzZWQgYXMgaW5kaWNhdG9yIGJ1dCBpdCBpcyBzZXQgdG8gYG5vbmVgLCBzdGlsbCB1c2UgYW4gZW1wdHlcbiAqICAgICAgYGNvbnRlbnRgIGF0dHJpYnV0ZSB0byBzaG93IHRoZSBwc2V1ZG8gZWxlbWVudCBhcyBhbiBlbXB0eSBpbmRpY2F0b3IuXG4gKi9cbi5jLXdpemFyZCB7XG4gIG1hcmdpbi10b3A6IDI0cHg7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5cbi5jLXdpemFyZF9fbGlzdCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgLyogWzI2XSAqL1xuICBtYXgtd2lkdGg6IGNhbGMoMTI0OHB4ICsgMTkycHgpO1xuICBwYWRkaW5nLWxlZnQ6IDk2cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDk2cHg7XG4gIC0tcGFnZS13cmFwOiA5NnB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAvKiBbMjZdICovXG4gIHdpZHRoOiAxMDAlOyAvKiBbMjddICovXG4gIC8qKlxuICAgKiBbMV0gQ2hlY2sgaWYgYSB0aGVtZSBpcyBzZXQgb3IgaWYgdGhlIGRlZmF1bHQgdGhlbWUgKG51bGwpIGlzIHVzZWQuXG4gICAqICAgICBJZiB0aGUgYGRlZmF1bHRgIHRoZW1lIGlzIHVzZWQgd2UgZXhlY3V0ZSB0aGUgYWxyZWFkeSBwcmVzZW50IGxvZ2ljLFxuICAgKiAgICAgZWxzZSB3ZSBqdXN0IHJldHVybiB0aGUgY29udGVudCB1bndyYXBwZWQuXG4gICAqL1xufVxuLmMtd2l6YXJkX19saXN0IGxpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtd2l6YXJkX19saXN0IHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTI0OHB4ICsgOTZweCk7XG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHg7XG4gICAgLS1wYWdlLXdyYXA6IDQ4cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy13aXphcmRfX2xpc3Qge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyA0OHB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgICAtLXBhZ2Utd3JhcDogMjRweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLXdpemFyZF9fbGlzdCB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDI0cHgpO1xuICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xuICAgIC0tcGFnZS13cmFwOiAxMnB4O1xuICB9XG59XG4vKiBbMV0gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICBbZGF0YS13aXphcmQtY29sbGFwc2U9c10gLmMtd2l6YXJkX19saXN0IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyAvKiBbM10gKi9cbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgLyogWzNdICovXG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICBbZGF0YS13aXphcmQtY29sbGFwc2U9bV0gLmMtd2l6YXJkX19saXN0IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyAvKiBbM10gKi9cbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgLyogWzNdICovXG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPWxdIC5jLXdpemFyZF9fbGlzdCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgLyogWzNdICovXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IC8qIFszXSAqL1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICBbZGF0YS13aXphcmQtY29sbGFwc2U9c10uanMtaXMtcmVhZHkgLmMtd2l6YXJkX19saXN0LmlzLWNsb3NlZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPW1dLmpzLWlzLXJlYWR5IC5jLXdpemFyZF9fbGlzdC5pcy1jbG9zZWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICBbZGF0YS13aXphcmQtY29sbGFwc2U9bF0uanMtaXMtcmVhZHkgLmMtd2l6YXJkX19saXN0LmlzLWNsb3NlZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uYy13aXphcmRfX2l0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIFsxNV0gKi9cbiAgZmxleC1ncm93OiAxO1xuICBmbGV4LXNocmluazogMTtcbiAgZmxleC1iYXNpczogMDsgLyogWzFdICovXG4gIHBhZGRpbmctdG9wOiA0cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIG1pbi1oZWlnaHQ6IDYwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPXNdIC5jLXdpemFyZF9faXRlbSB7XG4gICAgZmxleC1iYXNpczogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIC8qIFsxNl0gKi9cbiAgfVxuICBbZGF0YS13aXphcmQtY29sbGFwc2U9c10gLmMtd2l6YXJkX19pdGVtLmlzLWRpc2FibGVkIHtcbiAgICAvKiBbMTZdICovXG4gIH1cbiAgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPXNdIC5jLXdpemFyZF9faXRlbS5pcy1kb25lIHtcbiAgICAvKiBbMTZdICovXG4gIH1cbiAgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPXNdIC5jLXdpemFyZF9faXRlbS5pcy1hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IC8qIFsxNl0gKi9cbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIFtkYXRhLXdpemFyZC1jb2xsYXBzZT1tXSAuYy13aXphcmRfX2l0ZW0ge1xuICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAvKiBbMTZdICovXG4gIH1cbiAgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPW1dIC5jLXdpemFyZF9faXRlbS5pcy1kaXNhYmxlZCB7XG4gICAgLyogWzE2XSAqL1xuICB9XG4gIFtkYXRhLXdpemFyZC1jb2xsYXBzZT1tXSAuYy13aXphcmRfX2l0ZW0uaXMtZG9uZSB7XG4gICAgLyogWzE2XSAqL1xuICB9XG4gIFtkYXRhLXdpemFyZC1jb2xsYXBzZT1tXSAuYy13aXphcmRfX2l0ZW0uaXMtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyAvKiBbMTZdICovXG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPWxdIC5jLXdpemFyZF9faXRlbSB7XG4gICAgZmxleC1iYXNpczogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIC8qIFsxNl0gKi9cbiAgfVxuICBbZGF0YS13aXphcmQtY29sbGFwc2U9bF0gLmMtd2l6YXJkX19pdGVtLmlzLWRpc2FibGVkIHtcbiAgICAvKiBbMTZdICovXG4gIH1cbiAgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPWxdIC5jLXdpemFyZF9faXRlbS5pcy1kb25lIHtcbiAgICAvKiBbMTZdICovXG4gIH1cbiAgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPWxdIC5jLXdpemFyZF9faXRlbS5pcy1hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IC8qIFsxNl0gKi9cbiAgfVxufVxuXG4uYy13aXphcmRfX2xpbmsge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbMTFdICovXG4gIHotaW5kZXg6IDM7IC8qIFsxNF0gKi9cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogWzI1XSAqL1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogWzI0XSAqL1xuICBoZWlnaHQ6IDEwMCU7IC8qIFsxN10gKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjOWU5ZmEwO1xuICBjdXJzb3I6IGRlZmF1bHQ7IC8qIFsxMV0gKi9cbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIFsxMV0gKi9cbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICBbZGF0YS13aXphcmQtY29sbGFwc2U9c10gLmMtd2l6YXJkX19saW5rIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93OyAvKiBbMTNdICovXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogWzI1XSAqL1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgLyogWzEzXSAqL1xuICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPW1dIC5jLXdpemFyZF9fbGluayB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgLyogWzEzXSAqL1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIFsyNV0gKi9cbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IC8qIFsxM10gKi9cbiAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICBbZGF0YS13aXphcmQtY29sbGFwc2U9bF0gLmMtd2l6YXJkX19saW5rIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93OyAvKiBbMTNdICovXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogWzI1XSAqL1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgLyogWzEzXSAqL1xuICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG59XG4uYy13aXphcmRfX2l0ZW0uaXMtZGlzYWJsZWQgLmMtd2l6YXJkX19saW5rIHtcbiAgY29sb3I6ICM5ZTlmYTA7IC8qIFs5XSAqL1xufVxuLmMtd2l6YXJkX19pdGVtLmlzLWRvbmUgLmMtd2l6YXJkX19saW5rLCAuYy13aXphcmRfX2l0ZW0uaXMtYWN0aXZlIC5jLXdpemFyZF9fbGluaywgLmMtd2l6YXJkX19pdGVtLmlzLWVycm9yIC5jLXdpemFyZF9fbGluayB7XG4gIGN1cnNvcjogcG9pbnRlcjsgLyogWzEyXSAqL1xuICBwb2ludGVyLWV2ZW50czogYXV0bzsgLyogWzEyXSAqL1xufVxuLmMtd2l6YXJkX19pdGVtLmhhcy1uby1pbnRlcmFjdGlvbiAuYy13aXphcmRfX2xpbmsge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogWzIzXSAqL1xufVxuLmMtd2l6YXJkX19pdGVtLmlzLWRvbmUgLmMtd2l6YXJkX19saW5rIHtcbiAgY29sb3I6ICM0NjQ3NDg7IC8qIFs5XSAqL1xufVxuLmMtd2l6YXJkX19pdGVtLmlzLWRvbmUgLmMtd2l6YXJkX19saW5rOmhvdmVyLCAuYy13aXphcmRfX2l0ZW0uaXMtZG9uZSAuYy13aXphcmRfX2xpbms6Zm9jdXMge1xuICBjb2xvcjogIzE2MTcxODsgLyogWzEwXSAqL1xufVxuLmMtd2l6YXJkX19pdGVtLmlzLWRvbmUgLmMtd2l6YXJkX19saW5rOmhvdmVyLCAuYy13aXphcmRfX2l0ZW0uaXMtZG9uZSAuYy13aXphcmRfX2xpbms6Zm9jdXMge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG59XG4uYy13aXphcmRfX2l0ZW0uaXMtZG9uZSAuYy13aXphcmRfX2xpbms6aG92ZXI6OmJlZm9yZSwgLmMtd2l6YXJkX19pdGVtLmlzLWRvbmUgLmMtd2l6YXJkX19saW5rOmZvY3VzOjpiZWZvcmUge1xuICBjb2xvcjogIzE2MTcxODsgLyogWzIxXSAqL1xufVxuLmMtd2l6YXJkX19pdGVtLmlzLWFjdGl2ZSAuYy13aXphcmRfX2xpbmsge1xuICBjb2xvcjogIzQ2NDc0ODsgLyogWzldICovXG59XG4uYy13aXphcmRfX2l0ZW0uaXMtYWN0aXZlIC5jLXdpemFyZF9fbGluazpob3ZlciwgLmMtd2l6YXJkX19pdGVtLmlzLWFjdGl2ZSAuYy13aXphcmRfX2xpbms6Zm9jdXMge1xuICBjb2xvcjogIzE2MTcxODsgLyogWzEwXSAqL1xufVxuLmMtd2l6YXJkX19pdGVtLmlzLWFjdGl2ZSAuYy13aXphcmRfX2xpbms6aG92ZXIsIC5jLXdpemFyZF9faXRlbS5pcy1hY3RpdmUgLmMtd2l6YXJkX19saW5rOmZvY3VzIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xufVxuLmMtd2l6YXJkX19pdGVtLmlzLWFjdGl2ZSAuYy13aXphcmRfX2xpbms6aG92ZXI6OmJlZm9yZSwgLmMtd2l6YXJkX19pdGVtLmlzLWFjdGl2ZSAuYy13aXphcmRfX2xpbms6Zm9jdXM6OmJlZm9yZSB7XG4gIGNvbG9yOiAjMTYxNzE4OyAvKiBbMjFdICovXG59XG4uYy13aXphcmRfX2l0ZW0uaXMtZXJyb3IgLmMtd2l6YXJkX19saW5rIHtcbiAgY29sb3I6ICNlODJiMzc7IC8qIFs5XSAqL1xufVxuLmMtd2l6YXJkX19saW5rOjpiZWZvcmUge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBhZGRpbmc6IDZweDtcbn1cbi5jLXdpemFyZF9fbGluazo6YmVmb3JlIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIGZsZXgtZ3JvdzogMDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGZsZXgtYmFzaXM6IDIwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1yaWdodDogNHB4O1xuICBjb2xvcjogIzE2MTcxODtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJicm9uc29uLXNrb2RhXCIgIWltcG9ydGFudDsgLyogWzFdICovXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC8qIFsxOF0gKi9cbiAgY29udGVudDogXCJcIjsgLyogWzI4XSAqL1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIFtkYXRhLXdpemFyZC1jb2xsYXBzZT1zXSAuYy13aXphcmRfX2xpbms6OmJlZm9yZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIFtkYXRhLXdpemFyZC1jb2xsYXBzZT1tXSAuYy13aXphcmRfX2xpbms6OmJlZm9yZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICBbZGF0YS13aXphcmQtY29sbGFwc2U9bF0gLmMtd2l6YXJkX19saW5rOjpiZWZvcmUge1xuICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbi5jLXdpemFyZF9faXRlbS5pcy1kaXNhYmxlZCAuYy13aXphcmRfX2xpbms6OmJlZm9yZSB7XG4gIGNvbG9yOiAjOWU5ZmEwOyAvKiBbMjBdICovXG59XG4uYy13aXphcmRfX2l0ZW0uaXMtZG9uZSAuYy13aXphcmRfX2xpbms6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQ2XCI7IC8qIFsyMF0gKi9cbiAgY29sb3I6ICMzN2QwMDI7IC8qIFsyMF0gKi9cbn1cbi5jLXdpemFyZF9faXRlbS5pcy1hY3RpdmUgLmMtd2l6YXJkX19saW5rOjpiZWZvcmUge1xuICBjb2xvcjogIzQ2NDc0ODsgLyogWzIwXSAqL1xufVxuLmMtd2l6YXJkX19pdGVtLmlzLWVycm9yIC5jLXdpemFyZF9fbGluazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxN2FcIjsgLyogWzIwXSAqL1xuICBjb2xvcjogI2U4MmIzNzsgLyogWzIwXSAqL1xufVxuXG4uYy13aXphcmRfX2xpbmstdGl0bGUge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLmMtd2l6YXJkX190cmlnZ2VyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICBbZGF0YS13aXphcmQtY29sbGFwc2U9c10gLmMtd2l6YXJkX190cmlnZ2VyIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgLyogWzI2XSAqL1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyAxOTJweCk7XG4gICAgcGFkZGluZy1sZWZ0OiA5NnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDk2cHg7XG4gICAgLS1wYWdlLXdyYXA6IDk2cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIC8qIFsyNl0gKi9cbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiA2MHB4O1xuICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgICBjb2xvcjogIzQ2NDc0ODtcbiAgfVxuICBbZGF0YS13aXphcmQtY29sbGFwc2U9c10gLmMtd2l6YXJkX190cmlnZ2VyOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICBbZGF0YS13aXphcmQtY29sbGFwc2U9c10gLmMtd2l6YXJkX190cmlnZ2VyIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTI0OHB4ICsgOTZweCk7XG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHg7XG4gICAgLS1wYWdlLXdyYXA6IDQ4cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkgYW5kIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIFtkYXRhLXdpemFyZC1jb2xsYXBzZT1zXSAuYy13aXphcmRfX3RyaWdnZXIge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyA0OHB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgICAtLXBhZ2Utd3JhcDogMjRweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPXNdIC5jLXdpemFyZF9fdHJpZ2dlciB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDI0cHgpO1xuICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xuICAgIC0tcGFnZS13cmFwOiAxMnB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPXNdIC5jLXdpemFyZF9fdHJpZ2dlcjpob3ZlciwgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPXNdIC5jLXdpemFyZF9fdHJpZ2dlcjpmb2N1cyB7XG4gICAgY29sb3I6ICMxNjE3MTg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICBbZGF0YS13aXphcmQtY29sbGFwc2U9bV0gLmMtd2l6YXJkX190cmlnZ2VyIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgLyogWzI2XSAqL1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyAxOTJweCk7XG4gICAgcGFkZGluZy1sZWZ0OiA5NnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDk2cHg7XG4gICAgLS1wYWdlLXdyYXA6IDk2cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIC8qIFsyNl0gKi9cbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiA2MHB4O1xuICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgICBjb2xvcjogIzQ2NDc0ODtcbiAgfVxuICBbZGF0YS13aXphcmQtY29sbGFwc2U9bV0gLmMtd2l6YXJkX190cmlnZ2VyOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICBbZGF0YS13aXphcmQtY29sbGFwc2U9bV0gLmMtd2l6YXJkX190cmlnZ2VyIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTI0OHB4ICsgOTZweCk7XG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHg7XG4gICAgLS1wYWdlLXdyYXA6IDQ4cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkgYW5kIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIFtkYXRhLXdpemFyZC1jb2xsYXBzZT1tXSAuYy13aXphcmRfX3RyaWdnZXIge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyA0OHB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgICAtLXBhZ2Utd3JhcDogMjRweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPW1dIC5jLXdpemFyZF9fdHJpZ2dlciB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDI0cHgpO1xuICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xuICAgIC0tcGFnZS13cmFwOiAxMnB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPW1dIC5jLXdpemFyZF9fdHJpZ2dlcjpob3ZlciwgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPW1dIC5jLXdpemFyZF9fdHJpZ2dlcjpmb2N1cyB7XG4gICAgY29sb3I6ICMxNjE3MTg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPWxdIC5jLXdpemFyZF9fdHJpZ2dlciB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIC8qIFsyNl0gKi9cbiAgICBtYXgtd2lkdGg6IGNhbGMoMTI0OHB4ICsgMTkycHgpO1xuICAgIHBhZGRpbmctbGVmdDogOTZweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA5NnB4O1xuICAgIC0tcGFnZS13cmFwOiA5NnB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAvKiBbMjZdICovXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNjBweDtcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgY29sb3I6ICM0NjQ3NDg7XG4gIH1cbiAgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPWxdIC5jLXdpemFyZF9fdHJpZ2dlcjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkgYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIFtkYXRhLXdpemFyZC1jb2xsYXBzZT1sXSAuYy13aXphcmRfX3RyaWdnZXIge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyA5NnB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG4gICAgcGFkZGluZy1yaWdodDogNDhweDtcbiAgICAtLXBhZ2Utd3JhcDogNDhweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkgYW5kIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIFtkYXRhLXdpemFyZC1jb2xsYXBzZT1sXSAuYy13aXphcmRfX3RyaWdnZXIge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyA0OHB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgICAtLXBhZ2Utd3JhcDogMjRweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkgYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIFtkYXRhLXdpemFyZC1jb2xsYXBzZT1sXSAuYy13aXphcmRfX3RyaWdnZXIge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyAyNHB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgcGFkZGluZy1yaWdodDogMTJweDtcbiAgICAtLXBhZ2Utd3JhcDogMTJweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICBbZGF0YS13aXphcmQtY29sbGFwc2U9bF0gLmMtd2l6YXJkX190cmlnZ2VyOmhvdmVyLCBbZGF0YS13aXphcmQtY29sbGFwc2U9bF0gLmMtd2l6YXJkX190cmlnZ2VyOmZvY3VzIHtcbiAgICBjb2xvcjogIzE2MTcxODtcbiAgfVxufVxuXG4uYy13aXphcmRfX3RyaWdnZXItaWNvbiB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgbWFyZ2luLXJpZ2h0OiA0cHg7XG59XG4uYy13aXphcmRfX3RyaWdnZXItaWNvbjo6YmVmb3JlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBwYWRkaW5nOiAzcHg7XG59XG4uYy13aXphcmRfX3RyaWdnZXItaWNvbjo6YmVmb3JlIHtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmMtd2l6YXJkX190cmlnZ2VyLWljb246OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiYnJvbnNvbi1za29kYVwiICFpbXBvcnRhbnQ7IC8qIFsxXSAqL1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBjb250ZW50OiBcIlxcZjE1NlwiO1xufVxuLmMtd2l6YXJkX190cmlnZ2VyW2FyaWEtZXhwYW5kZWQ9ZmFsc2VdIC5jLXdpemFyZF9fdHJpZ2dlci1pY29uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MVwiO1xufVxuXG4uYy13aXphcmRfX3RyaWdnZXItdGV4dCB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmMtd2l6YXJkX190cmlnZ2VyLWNvdW50ZXIge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG5cbi5jLXdpemFyZC0tbm8taW50ZXJhY3Rpb24gLmMtd2l6YXJkX19saXN0ICoge1xuICBwb2ludGVyLWV2ZW50czogbm9uZSAhaW1wb3J0YW50OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGl0Y3NzL25vLWF0LWltcG9ydGFudCAqLyAvKiBbMjNdICovXG59XG5cbi8qKlxuICogWzFdIFdlIHVzZSBhIGxpbmVhciBncmFkaWVudCBhcyBsaW5lIGJhY2tncm91bmQgdG8gY3JlYXRlIGN1dG91dHMgZm9yIHRoZSBkb3RzLlxuICogWzJdIFRoZSBvdXRlciBsaW5lcyBvZiB0aGUgZmlyc3QgYW5kIGxhc3QgaXRlbXMgYXJlIGRpc3BsYXllZCB0cmFuc3BhcmVudGx5LlxuICovXG4uYy13aXphcmQge1xuICAtLXdpemFyZC1pdGVtLWRvdC1zaXplOiAxMnB4O1xuICAtLXdpemFyZC1pdGVtLWRvdC1jb2xvcjogIzllOWZhMDtcbiAgLS13aXphcmQtaXRlbS1kb3QtZ2FwOiAycHg7XG4gIC0td2l6YXJkLWl0ZW0tZG90LWJvcmRlci13aWR0aDogMS41cHg7XG4gIC0td2l6YXJkLWl0ZW0tbGluZS13aWR0aDogMnB4O1xuICAtLXdpemFyZC1pdGVtLWxpbmUtY29sb3I6ICM5ZTlmYTA7XG59XG5cbi5jLXdpemFyZF9fdHJpZ2dlci1pY29uIHtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBzY2FsZTogMTtcbn1cbi5jLXdpemFyZF9fdHJpZ2dlci1pY29uOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogLTE7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogaW5oZXJpdDtcbn1cbi5jLXdpemFyZF9fdHJpZ2dlcjpob3ZlciAuYy13aXphcmRfX3RyaWdnZXItaWNvbjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyLCAyMywgMjQsIDAuMDYpO1xufVxuXG4uYy13aXphcmRfX3RyaWdnZXI6Zm9jdXMtdmlzaWJsZSAuYy13aXphcmRfX3RyaWdnZXItaWNvbjo6YWZ0ZXIge1xuICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICMxNjE3MTg7XG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDA7XG4gIC0tZm9jdXMtb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIC0tZm9jdXMtb3V0bGluZS13aWR0aDogMnB4O1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb2N1cy1vdXRsaW5lLWNvbG9yLCAjMTYxNzE4KTtcbiAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWZvY3VzLW91dGxpbmUtb2Zmc2V0LCAxcHgpO1xuICBvdXRsaW5lLXN0eWxlOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXN0eWxlLCBzb2xpZCk7XG4gIG91dGxpbmUtd2lkdGg6IHZhcigtLWZvY3VzLW91dGxpbmUtd2lkdGgsIDJweCk7XG59XG5cbi5jLXdpemFyZF9fdHJpZ2dlcjphY3RpdmUgLmMtd2l6YXJkX190cmlnZ2VyLWljb24ge1xuICBzY2FsZTogMC45NTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIFtkYXRhLXdpemFyZC1jb2xsYXBzZT1zXSAuYy13aXphcmRfX3RyaWdnZXItaWNvbiB7XG4gICAgb3JkZXI6IDE7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICBbZGF0YS13aXphcmQtY29sbGFwc2U9bV0gLmMtd2l6YXJkX190cmlnZ2VyLWljb24ge1xuICAgIG9yZGVyOiAxO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIFtkYXRhLXdpemFyZC1jb2xsYXBzZT1sXSAuYy13aXphcmRfX3RyaWdnZXItaWNvbiB7XG4gICAgb3JkZXI6IDE7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cbn1cblxuLmMtd2l6YXJkX19pdGVtIHtcbiAgLS13aXphcmQtaXRlbS1kb3QtY29sb3I6ICM0NjQ3NDg7XG4gIC0td2l6YXJkLWl0ZW0tZG90LWJhY2tncm91bmQtY29sb3I6IHZhcigtLXdpemFyZC1pdGVtLWRvdC1jb2xvcik7XG4gIC0td2l6YXJkLWl0ZW0tbGluZS1jb2xvcjogIzQ2NDc0ODtcbiAgLS13aXphcmQtaXRlbS1saW5lLWJlZm9yZS1jb2xvcjogdmFyKC0td2l6YXJkLWl0ZW0tbGluZS1jb2xvcik7XG4gIC0td2l6YXJkLWl0ZW0tbGluZS1hZnRlci1jb2xvcjogdmFyKC0td2l6YXJkLWl0ZW0tbGluZS1jb2xvcik7XG4gIC8qIGxpbmUgKi9cbiAgLyogZG90cyAqL1xuICAvKiBhbGwgaXRlbXMgYWZ0ZXIgdGhlIGFjdGl2ZSBpdGVtICovXG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtY2xhc3MgKi9cbn1cbi5jLXdpemFyZF9faXRlbTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IHZhcigtLXdpemFyZC1pdGVtLWxpbmUtd2lkdGgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB2YXIoLS13aXphcmQtaXRlbS1saW5lLWRpcmVjdGlvbiwgcmlnaHQpLCB2YXIoLS13aXphcmQtaXRlbS1saW5lLWJlZm9yZS1jb2xvcikgY2FsYyg1MCUgLSB2YXIoLS13aXphcmQtaXRlbS1kb3Qtc2l6ZSkgLyAyIC0gdmFyKC0td2l6YXJkLWl0ZW0tZG90LWdhcCkpLCB0cmFuc3BhcmVudCBjYWxjKDUwJSAtIHZhcigtLXdpemFyZC1pdGVtLWRvdC1zaXplKSAvIDIgLSB2YXIoLS13aXphcmQtaXRlbS1kb3QtZ2FwKSksIHRyYW5zcGFyZW50IGNhbGMoNTAlICsgdmFyKC0td2l6YXJkLWl0ZW0tZG90LXNpemUpIC8gMiArIHZhcigtLXdpemFyZC1pdGVtLWRvdC1nYXApKSwgdmFyKC0td2l6YXJkLWl0ZW0tbGluZS1hZnRlci1jb2xvcikgMCk7IC8qIFsxXSAqL1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG4uYy13aXphcmRfX2l0ZW06OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IHZhcigtLXdpemFyZC1pdGVtLWRvdC1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS13aXphcmQtaXRlbS1kb3Qtc2l6ZSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICBib3JkZXI6IHZhcigtLXdpemFyZC1pdGVtLWRvdC1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXdpemFyZC1pdGVtLWRvdC1ib3JkZXItY29sb3IsIHZhcigtLXdpemFyZC1pdGVtLWRvdC1jb2xvcikpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdpemFyZC1pdGVtLWRvdC1iYWNrZ3JvdW5kLWNvbG9yKTtcbn1cbi5jLXdpemFyZF9faXRlbS5jLXdpemFyZF9faXRlbS5pcy1hY3RpdmUgfiAuYy13aXphcmRfX2l0ZW0ge1xuICAtLXdpemFyZC1pdGVtLWxpbmUtY29sb3I6ICM5ZTlmYTA7XG4gIC0td2l6YXJkLWl0ZW0tZG90LWNvbG9yOiAjOWU5ZmEwO1xuICAtLXdpemFyZC1pdGVtLWRvdC1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5jLXdpemFyZF9faXRlbS5pcy1kaXNhYmxlZCB7XG4gIC0td2l6YXJkLWl0ZW0tZG90LWNvbG9yOiAjOWU5ZmEwO1xufVxuLmMtd2l6YXJkX19pdGVtLmlzLWFjdGl2ZSB7XG4gIC0td2l6YXJkLWl0ZW0tbGluZS1hZnRlci1jb2xvcjogIzllOWZhMDtcbiAgLS13aXphcmQtaXRlbS1kb3Qtc2l6ZTogMThweDtcbiAgLS13aXphcmQtaXRlbS1kb3QtY29sb3I6ICM0NjQ3NDg7XG59XG4uYy13aXphcmRfX2l0ZW0uaXMtZG9uZSAuYy13aXphcmRfX2xpbmssIC5jLXdpemFyZF9faXRlbS5pcy1lcnJvciAuYy13aXphcmRfX2xpbmsge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLmMtd2l6YXJkX19pdGVtOmZpcnN0LWNoaWxkIHtcbiAgLS13aXphcmQtaXRlbS1saW5lLWJlZm9yZS1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIFsyXSAqL1xufVxuLmMtd2l6YXJkX19pdGVtOmxhc3QtY2hpbGQge1xuICAtLXdpemFyZC1pdGVtLWxpbmUtYWZ0ZXItY29sb3I6IHRyYW5zcGFyZW50OyAvKiBbMl0gKi9cbn1cbi5jLXdpemFyZF9faXRlbTpoYXMoLmMtd2l6YXJkX19saW5rOmhvdmVyLCAuYy13aXphcmRfX2xpbms6Zm9jdXMpIHtcbiAgLS13aXphcmQtaXRlbS1kb3QtYmFja2dyb3VuZC1jb2xvcjogIzc4ZmFhZTtcbn1cblxuLmMtd2l6YXJkX19saW5rOjpiZWZvcmUge1xuICBjb250ZW50OiB1bnNldDtcbiAgcGFkZGluZzogMDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIFtkYXRhLXdpemFyZC1jb2xsYXBzZT1zXSAuYy13aXphcmRfX2xpc3Qge1xuICAgIG1hcmdpbi10b3A6IC0xNnB4O1xuICB9XG4gIFtkYXRhLXdpemFyZC1jb2xsYXBzZT1zXSAuYy13aXphcmRfX2l0ZW0ge1xuICAgIC0td2l6YXJkLWl0ZW0tbGluZS1kaXJlY3Rpb246IGJvdHRvbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDM0cHg7XG4gIH1cbiAgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPXNdIC5jLXdpemFyZF9faXRlbTo6YmVmb3JlIHtcbiAgICBsZWZ0OiBjYWxjKDE4cHggLyAyKTtcbiAgICByaWdodDogdW5zZXQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgKi9cbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IHZhcigtLXdpemFyZC1pdGVtLWxpbmUtd2lkdGgpO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIH1cbiAgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPXNdIC5jLXdpemFyZF9faXRlbTo6YWZ0ZXIge1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IGNhbGMoMThweCAvIDIpO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICBbZGF0YS13aXphcmQtY29sbGFwc2U9bV0gLmMtd2l6YXJkX19saXN0IHtcbiAgICBtYXJnaW4tdG9wOiAtMTZweDtcbiAgfVxuICBbZGF0YS13aXphcmQtY29sbGFwc2U9bV0gLmMtd2l6YXJkX19pdGVtIHtcbiAgICAtLXdpemFyZC1pdGVtLWxpbmUtZGlyZWN0aW9uOiBib3R0b207XG4gICAgcGFkZGluZy1sZWZ0OiAzNHB4O1xuICB9XG4gIFtkYXRhLXdpemFyZC1jb2xsYXBzZT1tXSAuYy13aXphcmRfX2l0ZW06OmJlZm9yZSB7XG4gICAgbGVmdDogY2FsYygxOHB4IC8gMik7XG4gICAgcmlnaHQ6IHVuc2V0OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lICovXG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiB2YXIoLS13aXphcmQtaXRlbS1saW5lLXdpZHRoKTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG4gIFtkYXRhLXdpemFyZC1jb2xsYXBzZT1tXSAuYy13aXphcmRfX2l0ZW06OmFmdGVyIHtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiBjYWxjKDE4cHggLyAyKTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIFtkYXRhLXdpemFyZC1jb2xsYXBzZT1sXSAuYy13aXphcmRfX2xpc3Qge1xuICAgIG1hcmdpbi10b3A6IC0xNnB4O1xuICB9XG4gIFtkYXRhLXdpemFyZC1jb2xsYXBzZT1sXSAuYy13aXphcmRfX2l0ZW0ge1xuICAgIC0td2l6YXJkLWl0ZW0tbGluZS1kaXJlY3Rpb246IGJvdHRvbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDM0cHg7XG4gIH1cbiAgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPWxdIC5jLXdpemFyZF9faXRlbTo6YmVmb3JlIHtcbiAgICBsZWZ0OiBjYWxjKDE4cHggLyAyKTtcbiAgICByaWdodDogdW5zZXQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgKi9cbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IHZhcigtLXdpemFyZC1pdGVtLWxpbmUtd2lkdGgpO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIH1cbiAgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPWxdIC5jLXdpemFyZF9faXRlbTo6YWZ0ZXIge1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IGNhbGMoMThweCAvIDIpO1xuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJTkZPLUlDT05cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gVmVydGljYWxseSBhbGlnbiBpY29uLCBpZiBuZWVkZWQuXG4gKiBbMl0gUmVkdWNlIHRoZSBoZWlnaHQgb2YgSW5mbyBJY29uIGJ5IHJlbW92aW5nIHRoZSBwYWRkaW5nXG4gKiAgICAgaW5oZXJpdGVkIGZyb20gdGhlIGBpY29uLXZhcmlhbnRgIG1peGluLlxuICogWzNdIEVuc3VyZSBvdGhlciBjb21wb25lbnRzIGFyZSBub3QgYWZmZWN0ZWQgYnkgdGhlIEluZm8gSWNvbi5cbiAqIFs0XSBIb3Jpem9udGFsIHNwYWNpbmcuXG4gKiBbNV0gQWRkaXRpb25hbCBzdHlsZXMgZm9yIGJyYW5kcyB0aGF0IG5lZWQgYSBDU1MgYm9yZGVyLlxuICogWzZdIEZpeCBjbGlwcGluZyBieSBzbGlnaHRseSBvZmZzZXR0aW5nIChTYWZhcmkpLlxuICovXG4uYy1pbmZvLWljb24ge1xuICBjb2xvcjogY3VycmVudENvbG9yO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIFszXSAqL1xuICBtYXJnaW4tdG9wOiAtMTAwcHg7IC8qIFszXSAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjYWxlLXVubGltaXRlZC9kZWNsYXJhdGlvbi1zdHJpY3QtdmFsdWUgKi9cbiAgbWFyZ2luLWJvdHRvbTogLTEwMHB4OyAvKiBbM10gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY2FsZS11bmxpbWl0ZWQvZGVjbGFyYXRpb24tc3RyaWN0LXZhbHVlICovXG4gIC8qIFs0XSAqL1xuICBwYWRkaW5nOiAwLjAzZW07IC8qIFs2XSAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjYWxlLXVubGltaXRlZC9kZWNsYXJhdGlvbi1zdHJpY3QtdmFsdWUgKi9cbiAgbGluZS1oZWlnaHQ6IDE7IC8qIFszXSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvKiBbMV0gKi9cbn1cbi5jLWluZm8taWNvbjo6YmVmb3JlIHtcbiAgcGFkZGluZzogMDsgLyogWzJdICovXG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4vKipcbiAqIFsxXSBTZXQgYSBwcmVmZXJyZWQgc2l6ZSBmb3IgdGhlIGljb24gdGhhdCBpcyBiYXNlZCBvbiB0aGUgdGV4dCdzIHNpemUuXG4gKiAgICAgVXNlIGBjbGFtcCgpYCB0byBzZXQgYm91bmRzIC0gd2l0aCBkZWZpbmVkIG1pbmltdW0gYW5kIG1heGltdW0gc2l6ZVxuICogICAgIGJhc2VkIG9uIGRlZmluZWQgaWNvbiBzaXplcy5cbiAqICAgICBUaGlzIHdheSB0aGUgaWNvbiBzdGF5cyBwcm9wb3J0aW9uYWwgdG8gdGhlIChyZXNwb25zaXZlKSB0ZXh0IHNpemVcbiAqICAgICB3aXRob3V0IG5lZWQgb2YgbWVkaWEtcXVlcmllcy5cbiAqICAgICBUaGlzIGFsc28gc29sdmVzIHBvdGVudGlhbCBtaXNhbGlnbm1lbnRzLCBlLmcuIHdpdGggc2VjdGlvbi1oZWFkaW5nLlxuICogWzJdIFVzZSBuZWdhdGl2ZSBvZmZzZXQgZHVlIHRvIHRoZSBsYXJnZXIgc2l6ZSB3aXRoIFwid2hpdGVzcGFjZVwiIG9mIHRoZSBpbmZvLWljb25cbiAqICAgICBpbiBvcmRlciB0byBub3QgY3JlYXRlIHNwYWNpbmcvcGFkZGluZyBiZXR3ZWVuIGljb24gYW5kIG91dGxpbmUuXG4gKiBbM10gVXNlIFwiaW52ZXJ0ZWRcIiBpY29uIG9uIGhvdmVyLlxuICovXG4uYy1pbmZvLWljb24ge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIC8qIFsxXSAqL1xuICBmb250LXNpemU6IGNsYW1wKDI0cHgsIDFlbSwgMzJweCk7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cbi5jLWluZm8taWNvbi5jLWljb24tLVxcW3NlbWFudGljLWluZm9cXF06d2hlcmUoOmhvdmVyLCA6Zm9jdXMtdmlzaWJsZSkge1xuICAtLWJyb24taWNvbjogXCJcXGYxOWFcIjsgLyogWzNdICovXG59XG4uYy1pbmZvLWljb246Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNIRVJPLVRFQVNFUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSAgUmVmZXJlbmNlIGZvciB0aGUgYC5jLWhlcm8tdGVhc2VyX19pbWFnZWAuXG4gKiBbMl0gIFByZXBhcmUgZm9yIHdvcnN0IGNhc2U6IElmIHRoZSB0ZXh0IGNvbnRlbnQgZG9lcyBub3QgZml0IHRoZSBoZXJvLXRlYXNlclxuICogICAgICBjb250YWluZXIsIGF0IGxlYXN0IGN1dCBvZmYgaXRzIG92ZXJmbG93LlxuICogWzNdICBQcm92aWRlIGFuY2hvciBwb2ludCBtb2RpZmllcnMgZm9yIHRoZSBoZXJvLXRlYXNlciBpbWFnZS5cbiAqIFs0XSAgQnkgZGVmYXVsdCwgd2hlbiB0aGUgaW1hZ2UgaXMgY3JvcHBlZCBpbnNpZGUgdGhlIGhlcm8tdGVhc2VyXG4gKiAgICAgIGNvbnRhaW5lciwgY3JvcCBpdCBmcm9tIHRoZSBkZWFkIGNlbnRlci5cbiAqIFs1XSAgQWx3YXlzIGZpbGwgdGhlIGVudGlyZSBoZXJvLXRlYXNlciBjb250YWluZXIgd2l0aCB0aGUgaW1hZ2UuXG4gKiBbNl0gIE92ZXJyaWRlIHN0YW5kYXJkIGJlaGF2aW91ciwgc28gdGhlIGltYWdlIGNhbiBibGVlZCBvdXQgb3ZlciB0aGVcbiAqICAgICAgdmlld3BvcnQgZWRnZXMuXG4gKiBbN10gIFRoZSBoZXJvIGltYWdlIHNob3VsZCBub3QgcmVzZXJ2ZSBhbnkgaGVpZ2h0LCBpZiBgLmMtaGVyby10ZWFzZXItLWF1dG9gLFxuICAgICAgICBzaW5jZSB0aGUgY29udGVudCBjb250cm9scyB0aGUgaGVpZ2h0IGluIHRoaXMgY2FzZS5cbiAqIFs4XSAgU2V0IHBvc2l0aW9uIHRvIGByZWxhdGl2ZWAgc28gaXQgcmVzZXJ2ZXMgdGhlIG5lY2Vzc2FyeSBoZWlnaHQuXG4gKiBbOV0gIFByb3ZpZGUgdGhlIGNvcnJlY3Qgc3BhY2luZyBiZXR3ZWVuIHRoZSBwYWdlLWhlYWQgKGkuZS4gbG9nbykgYW5kIHRoZVxuICogICAgICBoZXJvLXRlYXNlciBjb250ZW50LlxuICogWzEwXSBQb3NpdGlvbiBjb250ZW50IG9uIHRvcCBvZiBpbWFnZS5cbiAqIFsxMV0gUmVzZXQgZGVmYXVsdCBzcGFjaW5nLlxuICogWzEyXSBTaW5jZSB0aGUgY29udGVudCBkZWZpbmVzIHRoZSBoZWlnaHQgb2YgdGhlIGhlcm8gaW1hZ2UgZm9yXG4gKiAgICAgIGAuYy1oZXJvLXRlYXNlci0tYXV0b2AgYW5kIGBjLWhlcm8tdGVhc2VyLS1sYXllcmAsIGNlbnRlcmluZyB0aGUgY29udGVudFxuICogICAgICBkb2VzIG5vdCBtYWtlIHNlbnNlLlxuICogWzEzXSBQcm92aWRlIGZhbGxiYWNrIGZvciBleGlzdGluZyBiciB0YWdzIGJldHdlZW4gdGl0bGVfcm93IHNwYW5zLlxuICogWzE0XSBJZiBhY3RpdmF0ZWQgKGJ5IGRlZmF1bHQpLCBhbGlnbiBjb250ZW50IGhvcml6b250YWxseSB3aXRoIGdsb2JhbFxuICogICAgICBwYWdlIHdyYXAuXG4gKiBbMTVdIEZpeGVzIGEgdmVydGljYWwgb2Zmc2V0IHdoZW4gYCRoZXJvLXRlYXNlci1jb250ZW50LWRlZmF1bHQtbWFyZ2luLWJvdHRvbWAgaXMgc2V0LlxuICogICAgICBUaGUgYG1hcmdpbi1ib3R0b21gIG9mIHRoZSBsYXN0IGNoaWxkIG9mIGAuYy1oZXJvLXRlYXNlcl9faGVhZGluZ2AgY3JlYXRlc1xuICogICAgICBhbiBleHRyYSBzcGFjZSBhbmQgdGh1cyBpcyByZXNldCBoZXJlLlxuICogWzE2XSBTZXQgb3B0aW9uYWwgbWF4IHdpZHRoIGFuZCBjZW50ZXIgaGVybyB0ZWFzZXIgaG9yaXpvbnRhbGx5LlxuICogWzE3XSBTZXQgaW52ZXJ0ZWQgdmFyaWFudCBidXR0b24gc3R5bGVzLlxuICogWzE4XSBTdHJldGNoIHRoZSBtZWRpYSBlbGVtZW50IHRvIHRoZSB3aG9sZSB2aWV3cG9ydCB3aWR0aC5cbiAqIFsxOV0gUGxhY2UgdGhlIGJhY2tncm91bmQtdmlkZW8gY29udHJvbHMgb24gdG9wIG9mIHRoZSBoZXJvIHRlYXNlclxuICogICAgICBtZWRpYSBhbmQgcG9zaXRpb24gaXQgYWNjb3JkaW5nbHkuXG4gKiBbMjBdIERpc2FibGUgcG9pbnRlciBldmVudHMgZm9yIHRoZSBjb250ZW50IGVsZW1lbnQgc28gdGhhdCB0aGUgdmlkZW8gY29udHJvbHNcbiAqICAgICAgY2FuIHJlY2VpdmUgZXZlbnRzIGJ1dCBlbmFibGUgaXQgZm9yIGNvbnRlbnQgaGVhZGluZyBhbmQgY29udGVudCBidXR0b24gY2hpbGRyZW4uXG4gKiBbMjFdIE1ha2Ugc3VyZSB0aGUgaW1hZ2UgZG9lcyBub3Qgc3RyZXRjaCBpbiByZWxhdGlvbiB0byB0aGUgaGVybyB0ZWFzZXIgbGF5ZXIgd2hlblxuICogICAgICBleHBhbmRpbmcgaW4gdmFyaWFudCBgYy1oZXJvLXRlYXNlci0tbGF5ZXJgLlxuICogWzIyXSBQb3NpdGlvbiB0aGUgY29udGVudCBpbiB0aGUgdmFyaWFudCBgYy1oZXJvLXRlYXNlci0tbGF5ZXJgIGJlbG93IHRoZSBoZXJvXG4gKiAgICAgIGltYWdlIG9uIHNtYWxsIHNjcmVlbnMuXG4gKiBbMjNdIFRoZSB2YXJpYW50IGBjLWhlcm8tdGVhc2VyLS1sYXllcmAgbmVlZHMgcmVsYXRpdmUgcG9zaXRpb25pbmcgaW4gb3JkZXIgdG9cbiAqICAgICAgcHVzaCB0aGUgY29udGVudCBkb3dud2FyZHMgd2hlbiBleHBhbmRpbmcuXG4gKiBbMjRdIFRoZSBsYXllciBzaG91bGQgYWx3YXlzIGAkaGVyby10ZWFzZXItbGF5ZXItd2lkdGhgLCAgdW5sZXNzIGEgZGlmZmVyZW50XG4gKiAgICAgIHdpZHRoIGlzIHNwZWNpZmllZCB2aWEgYFtkYXRhLWhlcm8tdGVhc2VyLWxheWVyLXNpemVdYCBmb3IgbGFyZ2VyIHZpZXdwb3J0cy5cbiAqIFsyNV0gTWFrZSBzdXJlIHRoYXQgdGhlIGxheWVyIG5ldmVyIGV4Y2VlZHMgdGhlIHdpZHRoIG9mIHRoZSBoZXJvIHRlYXNlci5cbiAqIFsyNl0gQWRkIHNwYWNpbmcgYmV0d2VlbiBoZWFkZXIgYW5kIGxheWVyIGNvbnRlbnQuXG4gKiBbMjddIEVuc3VyZSB0aGF0IHRoZSBpbWFnZSBoZWlnaHQgZG9lcyBub3QgZXhjZWVkIHRoZSBvdXRlciB3cmFwcGVyLlxuICogWzI4XSBFbnN1cmUgdGhhdCB0aGUgbGF5ZXIgY29udGVudCBpcyBzZXQgd2l0aGluIHRoZSBwYWdlLXdyYXAuXG4gKiBbMjldIEFkZCB2YXJpYWJsZSB0byBzZXQgZmxleC1hbGlnbm1lbnQuXG4gKiBbMzBdIEFkZCBzcGFjZSBiZXR3ZWVuIGxheWVyIGFuZCBwcmV2aW91cyBlbGVtZW50IChlLmcuIGAuYy1oZXJvLXRlYXNlcl9faGVhZGluZ2ApLlxuICogWzMxXSBSZW1vdmUgYm90dG9tIG1hcmdpbiBmcm9tIGxhc3QgbGF5ZXIgY2hpbGQgZWxlbWVudCAoZS5nLiBgPHA+YCkuXG4gKiBbMzJdIEludm9rZSBjb2xvcnMgd2hlbiBsYXllciBhbmQgaW52ZXJ0ZWQgdmFyaWFudCBhcmUgY29tYmluZWQuXG4gKi9cbi5jLWhlcm8tdGVhc2VyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbMV0gKi9cbiAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogWzJdICovXG59XG4uYy1oZXJvLXRlYXNlci5jLWhlcm8tdGVhc2VyLS1sYXllciB7XG4gIG1pbi1oZWlnaHQ6IDcwMHB4O1xuICAvKiBbMjddICovXG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtaGVyby10ZWFzZXIuYy1oZXJvLXRlYXNlci0tbGF5ZXIge1xuICAgIG1pbi1oZWlnaHQ6IDU0MHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtaGVyby10ZWFzZXIuYy1oZXJvLXRlYXNlci0tbGF5ZXIge1xuICAgIG1pbi1oZWlnaHQ6IDMyMHB4O1xuICB9XG59XG5cbi5jLWhlcm8tdGVhc2VyX19iYWNrZ3JvdW5kLXZpZGVvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA3MDA7XG4gIHdpZHRoOiAxMDAlOyAvKiBbMThdICovXG59XG4uYy1oZXJvLXRlYXNlcl9fYmFja2dyb3VuZC12aWRlbyB2aWRlbyB7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBoZWlnaHQ6IDcwMHB4O1xuICB3aWR0aDogMTAwJTsgLyogWzE4XSAqL1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLWhlcm8tdGVhc2VyX19iYWNrZ3JvdW5kLXZpZGVvIHZpZGVvIHtcbiAgICBoZWlnaHQ6IDU0MHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtaGVyby10ZWFzZXJfX2JhY2tncm91bmQtdmlkZW8gdmlkZW8ge1xuICAgIGhlaWdodDogMzIwcHg7XG4gIH1cbn1cblxuLmMtaGVyby10ZWFzZXJfX2JhY2tncm91bmQtdmlkZW8tY29udHJvbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLyogWzE5XSAqL1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLWhlcm8tdGVhc2VyX19iYWNrZ3JvdW5kLXZpZGVvLWNvbnRyb2wge1xuICAgIGJvdHRvbTogNTAlOyAvKiBbMTldICovXG4gICAgcmlnaHQ6IDUwJTsgLyogWzE5XSAqL1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNTAlLCA1MCUsIDApO1xuICB9XG4gIC5jLWhlcm8tdGVhc2VyX19iYWNrZ3JvdW5kLXZpZGVvLWNvbnRyb2w6bm90KC5pcy1wYXVzZWQpIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODFweCkge1xuICAuYy1oZXJvLXRlYXNlcl9fYmFja2dyb3VuZC12aWRlby1jb250cm9sIHtcbiAgICBib3R0b206IDI0cHg7IC8qIFsxOV0gKi9cbiAgICByaWdodDogMjRweDsgLyogWzE5XSAqL1xuICB9XG59XG4uYy1oZXJvLXRlYXNlcl9fYmFja2dyb3VuZC12aWRlby1jb250cm9sOm5vdCguaXMtcGF1c2VkKSB7XG4gIC0tcGxheS1idXR0b24taWNvbjogXCJcXGYxNjFcIjtcbn1cbi5jLWhlcm8tdGVhc2VyX19iYWNrZ3JvdW5kLXZpZGVvLWNvbnRyb2wuaXMtcGF1c2VkIHtcbiAgLS1wbGF5LWJ1dHRvbi1pY29uOiBcIlxcZjE2MlwiO1xufVxuXG4uYy1oZXJvLXRlYXNlcl9faW1hZ2Uge1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgLyogWzNdIFs0XSAqL1xuICBoZWlnaHQ6IDcwMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDcwMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMTAwJTsgLyogWzVdICovXG4gIG1heC13aWR0aDogbm9uZTsgLyogWzZdICovXG4gIC8qIFszXSAqL1xuICAvKiBbM10gKi9cbiAgLyogWzNdICovXG4gIC8qIFszXSAqL1xuICAvKiBbM10gKi9cbiAgLyogWzNdICovXG4gIC8qIFszXSAqL1xuICAvKiBbM10gKi9cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1oZXJvLXRlYXNlcl9faW1hZ2Uge1xuICAgIGhlaWdodDogNTQwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuYy1oZXJvLXRlYXNlcl9faW1hZ2Uge1xuICAgIGhlaWdodDogMzIwcHg7XG4gIH1cbn1cbi5jLWhlcm8tdGVhc2VyLS1zaGFsbG93IC5jLWhlcm8tdGVhc2VyX19pbWFnZSB7XG4gIGhlaWdodDogNTQwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtaGVyby10ZWFzZXItLXNoYWxsb3cgLmMtaGVyby10ZWFzZXJfX2ltYWdlIHtcbiAgICBoZWlnaHQ6IDQ4MHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtaGVyby10ZWFzZXItLXNoYWxsb3cgLmMtaGVyby10ZWFzZXJfX2ltYWdlIHtcbiAgICBoZWlnaHQ6IDI4MHB4O1xuICB9XG59XG4uYy1oZXJvLXRlYXNlci0tYXV0byAuYy1oZXJvLXRlYXNlcl9faW1hZ2Uge1xuICBoZWlnaHQ6IDEwMCU7XG4gIC8qIFs2XSAqL1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MXB4KSB7XG4gIC5jLWhlcm8tdGVhc2VyLS1hdXRvIC5jLWhlcm8tdGVhc2VyX19pbWFnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyAvKiBbN10gKi9cbiAgfVxufVxuLmMtaGVyby10ZWFzZXItLWxheWVyIC5jLWhlcm8tdGVhc2VyX19pbWFnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLyogWzIxXSAqL1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5jLWhlcm8tdGVhc2VyLS1sYXllciAuYy1oZXJvLXRlYXNlcl9faW1hZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogWzIyXSAqL1xuICB9XG59XG4uYy1oZXJvLXRlYXNlci0tdG9wLWNlbnRlciAuYy1oZXJvLXRlYXNlcl9faW1hZ2Uge1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LXBvc2l0aW9uOiB0b3AgY2VudGVyO1xufVxuLmMtaGVyby10ZWFzZXItLXRvcC1sZWZ0IC5jLWhlcm8tdGVhc2VyX19pbWFnZSB7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IHRvcCBsZWZ0O1xufVxuLmMtaGVyby10ZWFzZXItLXRvcC1yaWdodCAuYy1oZXJvLXRlYXNlcl9faW1hZ2Uge1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LXBvc2l0aW9uOiB0b3AgcmlnaHQ7XG59XG4uYy1oZXJvLXRlYXNlci0tY2VudGVyLWxlZnQgLmMtaGVyby10ZWFzZXJfX2ltYWdlIHtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG9iamVjdC1wb3NpdGlvbjogY2VudGVyIGxlZnQ7XG59XG4uYy1oZXJvLXRlYXNlci0tY2VudGVyLXJpZ2h0IC5jLWhlcm8tdGVhc2VyX19pbWFnZSB7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IGNlbnRlciByaWdodDtcbn1cbi5jLWhlcm8tdGVhc2VyLS1ib3R0b20tY2VudGVyIC5jLWhlcm8tdGVhc2VyX19pbWFnZSB7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IGJvdHRvbSBjZW50ZXI7XG59XG4uYy1oZXJvLXRlYXNlci0tYm90dG9tLWxlZnQgLmMtaGVyby10ZWFzZXJfX2ltYWdlIHtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG9iamVjdC1wb3NpdGlvbjogYm90dG9tIGxlZnQ7XG59XG4uYy1oZXJvLXRlYXNlci0tYm90dG9tLXJpZ2h0IC5jLWhlcm8tdGVhc2VyX19pbWFnZSB7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IGJvdHRvbSByaWdodDtcbn1cblxuLmMtaGVyby10ZWFzZXJfX3BsYXktYnV0dG9uLmMtaGVyby10ZWFzZXJfX3BsYXktYnV0dG9uLS12aWRlbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogODAwO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB0b3A6IDE2MHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MXB4KSB7XG4gIC5jLWhlcm8tdGVhc2VyX19wbGF5LWJ1dHRvbi5jLWhlcm8tdGVhc2VyX19wbGF5LWJ1dHRvbi0tdmlkZW8ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuYy1oZXJvLXRlYXNlcl9fcGxheS1idXR0b24uYy1oZXJvLXRlYXNlcl9fcGxheS1idXR0b24tLW1vZGFsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5jLWhlcm8tdGVhc2VyX19jb250ZW50IHtcbiAgcGFkZGluZy10b3A6IDQ4cHg7XG4gIHBhZGRpbmctYm90dG9tOiAzMnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qIFsxMF0gKi9cbiAgei1pbmRleDogOTAwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLWhlcm8tdGVhc2VyX19jb250ZW50IHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLWhlcm8tdGVhc2VyX19jb250ZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIFs4XSAqL1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cbi5jLWhlcm8tdGVhc2VyOm5vdCguYy1oZXJvLXRlYXNlci0tYXV0byk6bm90KC5jLWhlcm8tdGVhc2VyLS1sYXllcikgLmMtaGVyby10ZWFzZXJfX2NvbnRlbnQgeyAvKiBbMTJdICovIH1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODFweCkge1xuICAuYy1oZXJvLXRlYXNlcjpub3QoLmMtaGVyby10ZWFzZXItLWF1dG8pOm5vdCguYy1oZXJvLXRlYXNlci0tbGF5ZXIpIC5jLWhlcm8tdGVhc2VyX19jb250ZW50IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gIH1cbn1cbi5jLWhlcm8tdGVhc2VyLS1hdXRvIC5jLWhlcm8tdGVhc2VyX19jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmMtaGVyby10ZWFzZXItLWxheWVyIC5jLWhlcm8tdGVhc2VyX19jb250ZW50IHtcbiAgbWluLWhlaWdodDogNzAwcHg7XG4gIC8qIFsyN10gKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbMjNdICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKiBbMjldICovXG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtaGVyby10ZWFzZXItLWxheWVyIC5jLWhlcm8tdGVhc2VyX19jb250ZW50IHtcbiAgICBtaW4taGVpZ2h0OiA1NDBweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLWhlcm8tdGVhc2VyLS1sYXllciAuYy1oZXJvLXRlYXNlcl9fY29udGVudCB7XG4gICAgbWluLWhlaWdodDogMzIwcHg7XG4gIH1cbn1cbi5jLWhlcm8tdGVhc2VyLS12aWRlbyAuYy1oZXJvLXRlYXNlcl9fY29udGVudCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbMjBdICovXG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1jb21iaW5hdG9ycywgc2VsZWN0b3ItbWF4LWNvbXBvdW5kLXNlbGVjdG9ycyAqL1xufVxuLmMtaGVyby10ZWFzZXItLXZpZGVvIC5jLWhlcm8tdGVhc2VyX19jb250ZW50IC5jLWhlcm8tdGVhc2VyX19oZWFkaW5nICosXG4uYy1oZXJvLXRlYXNlci0tdmlkZW8gLmMtaGVyby10ZWFzZXJfX2NvbnRlbnQgLmMtaGVyby10ZWFzZXJfX2J1dHRvbiAqIHtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDsgLyogWzIwXSAqL1xufVxuXG4uYy1oZXJvLXRlYXNlcl9fY29udGVudC1pbm5lciB7XG4gIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyAxOTJweCk7XG4gIHBhZGRpbmctbGVmdDogOTZweDtcbiAgcGFkZGluZy1yaWdodDogOTZweDtcbiAgLS1wYWdlLXdyYXA6IDk2cHg7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIC8qIFsxNF0gKi9cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1oZXJvLXRlYXNlcl9fY29udGVudC1pbm5lciB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDk2cHgpO1xuICAgIHBhZGRpbmctbGVmdDogNDhweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4O1xuICAgIC0tcGFnZS13cmFwOiA0OHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtaGVyby10ZWFzZXJfX2NvbnRlbnQtaW5uZXIge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyA0OHB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgICAtLXBhZ2Utd3JhcDogMjRweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLWhlcm8tdGVhc2VyX19jb250ZW50LWlubmVyIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTI0OHB4ICsgMjRweCk7XG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XG4gICAgLS1wYWdlLXdyYXA6IDEycHg7XG4gIH1cbn1cbi5jLWhlcm8tdGVhc2VyLS1sYXllciAuYy1oZXJvLXRlYXNlcl9fY29udGVudC1pbm5lciB7XG4gIHdpZHRoOiAxMDAlOyAvKiBbMjhdICovXG59XG5cbi5jLWhlcm8tdGVhc2VyX19oZWFkaW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIC8qIFsxNV0gKi9cbn1cbi5jLWhlcm8tdGVhc2VyX19oZWFkaW5nIGgxLCAuYy1oZXJvLXRlYXNlcl9faGVhZGluZyBoMiwgLmMtaGVyby10ZWFzZXJfX2hlYWRpbmcgaDMsIC5jLWhlcm8tdGVhc2VyX19oZWFkaW5nIGg0LCAuYy1oZXJvLXRlYXNlcl9faGVhZGluZyBoNSwgLmMtaGVyby10ZWFzZXJfX2hlYWRpbmcgaDYsIC5jLWhlcm8tdGVhc2VyX19oZWFkaW5nIHAgeyAvKiBbMTFdICovXG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4uYy1oZXJvLXRlYXNlcl9faGVhZGluZyA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmMtaGVyby10ZWFzZXJfX3RpdGxlID4gKiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuXG4uYy1oZXJvLXRlYXNlcl9fdGl0bGUtcm93ICsgYnIge1xuICBkaXNwbGF5OiBub25lOyAvKiBbMTNdICovXG59XG5cbi5jLWhlcm8tdGVhc2VyX19sYXllciB7XG4gIHdpZHRoOiB2YXIoLS1oZXJvLXRlYXNlci1sYXllci13aWR0aCwgMTAwJSk7IC8qIFsyNF0gKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiBbMjVdICovXG4gIHBhZGRpbmc6IDMycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNGU0ZTQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbiogKyAuYy1oZXJvLXRlYXNlcl9fbGF5ZXIge1xuICBtYXJnaW4tdG9wOiAyNHB4OyAvKiBbMzBdICovXG59XG4uYy1oZXJvLXRlYXNlcl9fbGF5ZXIgPiA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8qIFszMV0gKi9cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAuYy1oZXJvLXRlYXNlcl9fbGF5ZXJbZGF0YS1oZXJvLXRlYXNlci1sYXllci1zaXplPXNtYWxsXSB7XG4gICAgLS1oZXJvLXRlYXNlci1sYXllci13aWR0aDogNDYwcHg7IC8qIFsyNF0gKi9cbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5jLWhlcm8tdGVhc2VyX19sYXllcltkYXRhLWhlcm8tdGVhc2VyLWxheWVyLXNpemU9bWVkaXVtXSB7XG4gICAgLS1oZXJvLXRlYXNlci1sYXllci13aWR0aDogNzIwcHg7IC8qIFsyNF0gKi9cbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5jLWhlcm8tdGVhc2VyX19sYXllcltkYXRhLWhlcm8tdGVhc2VyLWxheWVyLXNpemU9bGFyZ2VdIHtcbiAgICAtLWhlcm8tdGVhc2VyLWxheWVyLXdpZHRoOiA5NjBweDsgLyogWzI0XSAqL1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLmMtaGVyby10ZWFzZXJfX2xheWVyW2RhdGEtaGVyby10ZWFzZXItbGF5ZXItc2l6ZT14bGFyZ2VdIHtcbiAgICAtLWhlcm8tdGVhc2VyLWxheWVyLXdpZHRoOiAxMjgwcHg7IC8qIFsyNF0gKi9cbiAgfVxufVxuXG4uYy1oZXJvLXRlYXNlcl9fbGF5ZXIge1xuICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gIHBhZGRpbmctcmlnaHQ6IDMycHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuLmMtaGVyby10ZWFzZXJfX3RpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4uYy1oZXJvLXRlYXNlcl9fdGl0bGUtcm93IHtcbiAgZm9udC1zaXplOiAyLjA2MjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICAuYy1oZXJvLXRlYXNlcl9fdGl0bGUtcm93IHtcbiAgICBmb250LXNpemU6IDIuMzc1cmVtO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIC5jLWhlcm8tdGVhc2VyX190aXRsZS1yb3cge1xuICAgIGZvbnQtc2l6ZTogMi43NXJlbTtcbiAgfVxufVxuXG4uYy1oZXJvLXRlYXNlcl9fcHJldGl0bGUge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi5jLWhlcm8tdGVhc2VyX19zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICAuYy1oZXJvLXRlYXNlcl9fc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS40Mzc1cmVtO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIC5jLWhlcm8tdGVhc2VyX19zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cblxuLmMtaGVyby10ZWFzZXJfX3RleHQge1xuICBmb250LXNpemU6IDFyZW07XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi5jLWhlcm8tdGVhc2VyX19idXR0b24ge1xuICBtYXJnaW4tdG9wOiAyNHB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgLmMtaGVyby10ZWFzZXItLWludmVydGVkIHsgLyogWzE3XSAqLyB9XG4gIC5jLWhlcm8tdGVhc2VyLS1pbnZlcnRlZCAuYy1oZXJvLXRlYXNlcl9fY29udGVudCB7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gIH1cbiAgLmMtaGVyby10ZWFzZXItLWludmVydGVkIC5jLWhlcm8tdGVhc2VyX19jb250ZW50IC5jLWhlcm8tdGVhc2VyX190aXRsZS1yb3cge1xuICAgIGNvbG9yOiAjMTYxNzE4O1xuICB9XG4gIC5jLWhlcm8tdGVhc2VyLS1pbnZlcnRlZCAuYy1oZXJvLXRlYXNlcl9fY29udGVudCAuYy1oZXJvLXRlYXNlcl9fcHJldGl0bGUge1xuICAgIGNvbG9yOiAjMTYxNzE4O1xuICB9XG4gIC5jLWhlcm8tdGVhc2VyLS1pbnZlcnRlZCAuYy1oZXJvLXRlYXNlcl9fY29udGVudCAuYy1oZXJvLXRlYXNlcl9fc3VidGl0bGUge1xuICAgIGNvbG9yOiAjMTYxNzE4O1xuICB9XG4gIC5jLWhlcm8tdGVhc2VyLS1pbnZlcnRlZCAuYy1oZXJvLXRlYXNlcl9fY29udGVudCAuYy1oZXJvLXRlYXNlcl9fdGV4dCB7XG4gICAgY29sb3I6ICMxNjE3MTg7XG4gIH1cbiAgLmMtaGVyby10ZWFzZXItLWludmVydGVkIC5jLWhlcm8tdGVhc2VyX19sYXllciB7IC8qIFszMl0gKi9cbiAgICBjb2xvcjogIzE2MTcxODtcbiAgfVxuICAuYy1oZXJvLXRlYXNlci0taW52ZXJ0ZWQgLmMtaGVyby10ZWFzZXJfX2xheWVyIC5jLWhlcm8tdGVhc2VyX19sYXllciB7XG4gICAgcGFkZGluZy1sZWZ0OiAzMnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDMycHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICB9XG4gIC5jLWhlcm8tdGVhc2VyLS1pbnZlcnRlZCAuYy1oZXJvLXRlYXNlcl9fbGF5ZXIgLmMtaGVyby10ZWFzZXJfX3RpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIH1cbiAgLmMtaGVyby10ZWFzZXItLWludmVydGVkIC5jLWhlcm8tdGVhc2VyX19sYXllciAuYy1oZXJvLXRlYXNlcl9fdGl0bGUtcm93IHtcbiAgICBmb250LXNpemU6IDIuMDYyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MXB4KSBhbmQgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgLmMtaGVyby10ZWFzZXItLWludmVydGVkIC5jLWhlcm8tdGVhc2VyX19sYXllciAuYy1oZXJvLXRlYXNlcl9fdGl0bGUtcm93IHtcbiAgICBmb250LXNpemU6IDIuMzc1cmVtO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgxcHgpIGFuZCAobWluLXdpZHRoOiAxMjgxcHgpIHtcbiAgLmMtaGVyby10ZWFzZXItLWludmVydGVkIC5jLWhlcm8tdGVhc2VyX19sYXllciAuYy1oZXJvLXRlYXNlcl9fdGl0bGUtcm93IHtcbiAgICBmb250LXNpemU6IDIuNzVyZW07XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODFweCkge1xuICAuYy1oZXJvLXRlYXNlci0taW52ZXJ0ZWQgLmMtaGVyby10ZWFzZXJfX2xheWVyIC5jLWhlcm8tdGVhc2VyX19wcmV0aXRsZSB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICB9XG4gIC5jLWhlcm8tdGVhc2VyLS1pbnZlcnRlZCAuYy1oZXJvLXRlYXNlcl9fbGF5ZXIgLmMtaGVyby10ZWFzZXJfX3N1YnRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgxcHgpIGFuZCAobWluLXdpZHRoOiA3MjFweCkge1xuICAuYy1oZXJvLXRlYXNlci0taW52ZXJ0ZWQgLmMtaGVyby10ZWFzZXJfX2xheWVyIC5jLWhlcm8tdGVhc2VyX19zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjQzNzVyZW07XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODFweCkgYW5kIChtaW4td2lkdGg6IDEyODFweCkge1xuICAuYy1oZXJvLXRlYXNlci0taW52ZXJ0ZWQgLmMtaGVyby10ZWFzZXJfX2xheWVyIC5jLWhlcm8tdGVhc2VyX19zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODFweCkge1xuICAuYy1oZXJvLXRlYXNlci0taW52ZXJ0ZWQgLmMtaGVyby10ZWFzZXJfX2xheWVyIC5jLWhlcm8tdGVhc2VyX190ZXh0IHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICB9XG4gIC5jLWhlcm8tdGVhc2VyLS1pbnZlcnRlZCAuYy1oZXJvLXRlYXNlcl9fbGF5ZXIgLmMtaGVyby10ZWFzZXJfX2J1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogMjRweDtcbiAgfVxuICAuYy1oZXJvLXRlYXNlci0taW52ZXJ0ZWQgLmMtYnRuOm5vdCguYy1oZXJvLXRlYXNlcl9fbGF5ZXIgLmMtYnRuKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzc4ZmFhZTtcbiAgICBjb2xvcjogIzE2MTcxODtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbiAgfVxuICAuYy1oZXJvLXRlYXNlci0taW52ZXJ0ZWQgLmMtYnRuOm5vdCguYy1oZXJvLXRlYXNlcl9fbGF5ZXIgLmMtYnRuKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZmZjYztcbiAgICBjb2xvcjogIzE2MTcxODtcbiAgfVxuICAuYy1oZXJvLXRlYXNlci0taW52ZXJ0ZWQgLmMtYnRuOm5vdCguYy1oZXJvLXRlYXNlcl9fbGF5ZXIgLmMtYnRuKTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZmZjYztcbiAgICBjb2xvcjogIzE2MTcxODtcbiAgfVxuICAuYy1oZXJvLXRlYXNlci0taW52ZXJ0ZWQgLmMtYnRuOm5vdCguYy1oZXJvLXRlYXNlcl9fbGF5ZXIgLmMtYnRuKTphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjMTYxNzE4O1xuICB9XG4gIC5jLWhlcm8tdGVhc2VyLS1pbnZlcnRlZCAuYy1idG4tLWxpbms6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0MTk0Njg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLmMtaGVyby10ZWFzZXJfX2d1aWRpbmctbGluZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogOTAxO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xufVxuXG4vKipcbiAqIFsxXSBPbiBzbWFsbGVyIHNjcmVlbnMgdGhlIGludmVydGVkIGNvbG9yIHNjaGVtZSBpcyB1c2VkIGZvciBhbGwgdmFyaWFudHMuXG4gKiBbMl0gQnV0dG9uIGVsZW1lbnRzIHNob3VsZCBiZSBhbGlnbmVkIGF0IHRoZSBib3R0b20uXG4gKiBbM10gRW5hYmxlIGdyYWRpZW50IGZvciBkZWZhdWx0IHZhcmlhbnQgb24gYmlnZ2VyIHNjcmVlbnMuXG4gKiBbNF0gRW5hYmxlIGdyYWRpZW50IGZvciBpbnZlcnRlZCB2YXJpYW50IG9uIGJpZ2dlciBzY3JlZW5zLlxuICogWzVdIFNob3cgYWJvdmUgaW1hZ2UvdmlkZW8sIGJlbG93IGNvbnRlbnQuXG4gKiBbNl0gUmVkdWNlIHZpZGVvIGhlaWdodCBvbiBzbWFsbCBzY3JlZW5zLlxuICogWzddIFNldCBoZWlnaHQgZm9yIHRoZSBvdmVybGF5IGZvciBMYXllciBWYXJpYW50IHRvIGF2b2lkXG4gKiAgICAgZXhjZWVkaW5nIHRoZSBpbWFnZSBoZWlnaHQuXG4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuYy1oZXJvLXRlYXNlciB7XG4gICAgLyogWzFdICovXG4gICAgY29sb3I6ICMxNjE3MTg7XG4gIH1cbiAgLmMtaGVyby10ZWFzZXIgLmMtaGVyby10ZWFzZXJfX3RpdGxlLXJvdyB7XG4gICAgY29sb3I6ICMxNjE3MTg7XG4gIH1cbiAgLmMtaGVyby10ZWFzZXIgLmMtaGVyby10ZWFzZXJfX3ByZXRpdGxlIHtcbiAgICBjb2xvcjogIzE2MTcxODtcbiAgfVxuICAuYy1oZXJvLXRlYXNlciAuYy1oZXJvLXRlYXNlcl9fc3VidGl0bGUge1xuICAgIGNvbG9yOiAjMTYxNzE4O1xuICB9XG4gIC5jLWhlcm8tdGVhc2VyIC5jLWhlcm8tdGVhc2VyX190ZXh0IHtcbiAgICBjb2xvcjogIzE2MTcxODtcbiAgfVxuICAuYy1oZXJvLXRlYXNlcl9fdGl0bGUtcm93IHtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG59XG4uYy1oZXJvLXRlYXNlcl9fY29udGVudCB7XG4gIHBhZGRpbmctdG9wOiA2NHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLWhlcm8tdGVhc2VyX19jb250ZW50IHtcbiAgICBwYWRkaW5nLXRvcDogMzJweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLWhlcm8tdGVhc2VyX19jb250ZW50IHtcbiAgICBwYWRkaW5nLXRvcDogMjRweDtcbiAgfVxufVxuXG4uYy1oZXJvLXRlYXNlcl9fY29udGVudC1pbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgLyogWzJdICovXG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmMtaGVyby10ZWFzZXJfX3ByZXRpdGxlIHtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbn1cblxuLmMtaGVyby10ZWFzZXJfX3RleHQge1xuICBtYXJnaW4tdG9wOiAyNHB4O1xufVxuXG4uYy1oZXJvLXRlYXNlci0taW52ZXJ0ZWQge1xuICBjb2xvcjogIzE2MTcxODtcbn1cbi5jLWhlcm8tdGVhc2VyLS1pbnZlcnRlZCAuYy1oZXJvLXRlYXNlcl9fdGl0bGUtcm93IHtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uYy1oZXJvLXRlYXNlci0taW52ZXJ0ZWQgLmMtaGVyby10ZWFzZXJfX3ByZXRpdGxlIHtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uYy1oZXJvLXRlYXNlci0taW52ZXJ0ZWQgLmMtaGVyby10ZWFzZXJfX3N1YnRpdGxlIHtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uYy1oZXJvLXRlYXNlci0taW52ZXJ0ZWQgLmMtaGVyby10ZWFzZXJfX3RleHQge1xuICBjb2xvcjogIzE2MTcxODtcbn1cblxuLmMtaGVyby10ZWFzZXJfX2JhY2tncm91bmQtdmlkZW8gdmlkZW8ge1xuICBoZWlnaHQ6IGF1dG87IC8qIFs2XSAqL1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgLmMtaGVyby10ZWFzZXIge1xuICAgIC0taGVyby10ZWFzZXItb3ZlcmxheS1jb2xvci1zdGFydDogcmdiYSgyMiwgMjMsIDI0LCAwLjc1KTtcbiAgICAtLWhlcm8tdGVhc2VyLW92ZXJsYXktY29sb3ItZW5kOiByZ2JhKDIyLCAyMywgMjQsIDApO1xuICB9XG4gIC5jLWhlcm8tdGVhc2VyOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogNzAxOyAvKiBbNV0gKi9cbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1oZXJvLXRlYXNlci1vdmVybGF5LWNvbG9yLXN0YXJ0KSAwLCB2YXIoLS1oZXJvLXRlYXNlci1vdmVybGF5LWNvbG9yLWVuZCkgODAlKTsgLyogWzNdICovXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbiAgLmMtaGVyby10ZWFzZXIuYy1oZXJvLXRlYXNlci0tbGF5ZXI6OmFmdGVyIHtcbiAgICBoZWlnaHQ6IDcwMHB4O1xuICAgIC8qIFs3XSAqL1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgxcHgpIGFuZCAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1oZXJvLXRlYXNlci5jLWhlcm8tdGVhc2VyLS1sYXllcjo6YWZ0ZXIge1xuICAgIGhlaWdodDogNTQwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODFweCkgYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLWhlcm8tdGVhc2VyLmMtaGVyby10ZWFzZXItLWxheWVyOjphZnRlciB7XG4gICAgaGVpZ2h0OiAzMjBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MXB4KSB7XG4gIC5jLWhlcm8tdGVhc2VyLS1pbnZlcnRlZCB7XG4gICAgLS1oZXJvLXRlYXNlci1vdmVybGF5LWNvbG9yLXN0YXJ0OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpO1xuICAgIC0taGVyby10ZWFzZXItb3ZlcmxheS1jb2xvci1lbmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG4gIH1cbiAgLmMtaGVyby10ZWFzZXItLWludmVydGVkLmMtaGVyby10ZWFzZXItLWxheWVyIHtcbiAgICAtLWhlcm8tdGVhc2VyLW92ZXJsYXktY29sb3Itc3RhcnQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7XG4gICAgLS1oZXJvLXRlYXNlci1vdmVybGF5LWNvbG9yLWVuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5jLWhlcm8tdGVhc2VyOm5vdCguYy1oZXJvLXRlYXNlci0tbGF5ZXIpIC5jLWhlcm8tdGVhc2VyX19oZWFkaW5nIHtcbiAgICBtYXgtd2lkdGg6IDYwJTtcbiAgfVxufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI01FRElBLVRFQVNFUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSAgYHRvcGAgZG9lcyBub3QgaGF2ZSB0byBiZSBhbGlnbmVkLCBzaW5jZSBpdCdzIHRoZSBkZWZhdWx0LlxuICogWzJdICBDb252ZXJ0IGFsaWdubWVudCBgYm90dG9tYCB0byBgZmxleC1lbmRgLlxuICogWzNdICBPbmx5IGFsaWduIHZlcnRpY2FsbHkgaWYgdGhlIHJhdGlvIGlzIG5vdCBmbGV4aWJsZS4gSWYgdGhlIHJhdGlvIGlzXG4gKiAgICAgIGZsZXhpYmxlLCB0aGUgaW1hZ2Ugd2lsbCBhbHdheXMgdGFrZSB1cCAxMDAlIG9mIHRoZSBhdmFpbGFibGUgaGVpZ2h0IGFuZFxuICogICAgICBubyBhbGlnbm1lbnQgaXMgbmVjZXNzYXJ5LlxuICogWzRdICBSZXZlcnNlIHRoZSBvcmRlciBvZiBpbWFnZSBhbmQgdGhlIGNhcHRpb24uXG4gKiBbNV0gIElmIGluc2lkZSBhbmQgb3V0c2lkZSBzcGFjaW5ncyBhcmUgdGhlIHNhbWUsIHRoZXJlIGlzIG5vIG5lZWQgdG9cbiAqICAgICAgb3ZlcndyaXRlIHRoZW0gZm9yIHRoZSByZXZlcnNlZCB2YXJpYW50LlxuICogWzZdICBBZGQgc3R5bGluZyBmb3IgY2FwdGlvbiBlbGVtZW50cy5cbiAqIFs3XSAgTWFrZSBib3RoIGZsZXgtaXRlbXMgdGhlIHNhbWUgd2lkdGguIE5vdGUgdGhhdCBzZXR0aW5nIGFsbCBmbGV4IGl0ZW1zXG4gKiAgICAgIHRvIHRoZSBzYW1lIHdpZHRoIHVzaW5nIGBmbGV4OiAxIDEgMDtgIHdpbGwgbm90IHdvcmsgaGVyZSBiZWNhdXNlIGl0XG4gKiAgICAgIHRha2VzIHBhZGRpbmdzIGludG8gYWNjb3VudCBhbmQgd2lsbCBlbmQgdXAgd2l0aCBkaWZmZXJlbnQgd2lkdGhzIGZvclxuICogICAgICBzb21lIGJyYW5kcy5cbiAqIFs4XSAgUmVtb3ZlIGFsbCBib3R0b20tbWFyZ2lucyBmcm9tIGFueSBsYXN0IGVsZW1lbnQuXG4gKiBbOV0gIE1ha2UgaXQgY29uZmlndXJhYmxlIGlmIHRvcCBhbmQgYm90dG9tIHNwYWNpbmdzIGFyZSBzZXQgYXMgbWFyZ2lucyBvclxuICogICAgICBwYWRkaW5ncy5cbiAqIFsxMF0gU2V0IHRoZSBwb3NpdGlvbmluZyBjb250ZXh0IGZvciB0aGUgbGluayBzcGFubmluZy5cbiAqIFsxMV0gRmFrZSBhIHBvaW50ZXIgY3Vyc29yIGZvciB0aGUgZnVsbC1saW5rIHZhcmlhbnQuXG4gKiBbMTJdIFRyYW5zZm9ybSB0aGUgaW1hZ2Ugd2hlbiB0aGUgY29udGFpbmVyIHJlY2VpdmVzIGVpdGhlciBhIGZvY3VzLXdpdGhpbiBvciBob3Zlci5cbiAqIFsxM10gVGhpcyBjb2xsYXBzZXMgdGhlIGAuYy1tZWRpYS10ZWFzZXJfX21lZGlhYCBvbiBjb250ZW50IGNoaWxkcmVuLlxuICogICAgICBUaGUgYDAlYCBpcyBtYW5kYXRvcnkgdG8gbWFrZSB0aGlzIHdvcmsgb24gYnJvd3NlcnMgbm90IHN1cHBvcnRpbmcgYGFsaWduLXNlbGZgLlxuICogWzE0XSBDbGlwIHRoZSBpbWFnZSB0byB0aGUgYC5jLW1lZGlhLXRlYXNlcl9fbWVkaWFgIHdoZW4gaXQgaXMgc2NhbGVkLlxuICogWzE1XSBQcm9ncmVzc2l2ZSBlbmhhbmNlbWVudCBmb3IgWzEzXS5cbiAqIFsxNl0gTWFrZSB0aGUgbGluayBzcGFubmluZyBwc2V1ZG8gZnJvbSBbMTddIGVzY2FwZSBpdHMgbGluayBwYXJlbnQgZWxlbWVudCB3aGljaCBoYXMgYVxuICogICAgICByZWxhdGl2ZSBwb3NpdGlvbiBjb250ZXh0IGZyb20gdGhlIG5vcm1hbGl6ZSBzdHlsZXMuXG4gKiBbMTddIFRoaXMgcHNldWRvIGVsZW1lbnQgbWFrZXMgdGhlIHBhcmVudCBlbGVtZW50IHNwYW5uaW5nIGFjcm9zcyB0aGUgd2hvbGVcbiAqICAgICAgY29udGFpbmVyIHNldCBpbiBbMTBdLlxuICogWzE4XSBGb3IgdGhlIHZpZGVvIHZhcmlhbnQgYC5jLW1lZGlhLXRlYXNlci0tdmlkZW9gIHdlIG9ubHkgc3BhbiBhY3Jvc3MgdGhlXG4gKiAgICAgIGAuYy1tZWRpYS10ZWFzZXJfX2NhcHRpb25gLlxuICogWzE5XSBEaXNhYmxlIHRyYW5zaXRpb25zIGZvciB0b3VjaCBkZXZpY2VzLlxuICogWzIwXSBFbGV2YXRlIGFsbCBsaW5rcyBhbmQgYnV0dG9ucyB0byBtYWtlIHRoZW0gYXBwZWFyIG9uLXRvcCBvZiB0aGUgbGluayBzcGFuXG4gKiAgICAgIGluc2lkZSB0aGUgYC5jLW1lZGlhLXRlYXNlci0tZnVsbC1saW5rYCB2YXJpYW50LlxuICovXG4uYy1tZWRpYS10ZWFzZXIge1xuICAvKiBbOV0gKi9cbiAgbWFyZ2luLXRvcDogMzJweDtcbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICAuYy1tZWRpYS10ZWFzZXI6bm90KC5jLW1lZGlhLXRlYXNlci0tdmVydGljYWwpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC8qIFszXSAqL1xuICB9XG4gIC5jLW1lZGlhLXRlYXNlcjpub3QoLmMtbWVkaWEtdGVhc2VyLS12ZXJ0aWNhbCkgLmMtbWVkaWEtdGVhc2VyX19tZWRpYSxcbiAgLmMtbWVkaWEtdGVhc2VyOm5vdCguYy1tZWRpYS10ZWFzZXItLXZlcnRpY2FsKSAuYy1tZWRpYS10ZWFzZXJfX2NhcHRpb24ge1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBmbGV4LXNocmluazogMTtcbiAgICBmbGV4LWJhc2lzOiA1MCU7IC8qIFs3XSAqL1xuICB9XG4gIC5jLW1lZGlhLXRlYXNlcjpub3QoLmMtbWVkaWEtdGVhc2VyLS12ZXJ0aWNhbCkgLmMtbWVkaWEtdGVhc2VyX19pbWFnZSB7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gIH1cbiAgLmMtbWVkaWEtdGVhc2VyOm5vdCguYy1tZWRpYS10ZWFzZXItLXZlcnRpY2FsKSAuYy1tZWRpYS10ZWFzZXJfX2NhcHRpb24ge1xuICAgIC8qIFsxXSAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogWzJdICovXG4gIH1cbiAgLmMtbWVkaWEtdGVhc2VyOm5vdCguYy1tZWRpYS10ZWFzZXItLXZlcnRpY2FsKS5jLW1lZGlhLXRlYXNlci0tcmV2ZXJzZWQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgLyogWzRdICovXG4gICAgLyogWzVdICovXG4gIH1cbiAgLmMtbWVkaWEtdGVhc2VyOm5vdCguYy1tZWRpYS10ZWFzZXItLXZlcnRpY2FsKS5jLW1lZGlhLXRlYXNlci0tcmV2ZXJzZWQgLmMtbWVkaWEtdGVhc2VyX19jYXB0aW9uIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgfVxufVxuLmMtbWVkaWEtdGVhc2VyLmMtbWVkaWEtdGVhc2VyLS12ZXJ0aWNhbCB7XG4gIG1hcmdpbi10b3A6IDMycHg7XG4gIG1hcmdpbi1ib3R0b206IDMycHg7XG4gIC8qKlxuICAgKiBBbGxvdyBib3R0b20gYWxpZ25tZW50IGZvciBmb290ZXIgd2hlbiBpbiBlcXVhbC1oZWlnaHQgbGF5b3V0LlxuICAgKiBBZmZlY3RzIG9ubHkgdmVydGljYWwgbGF5b3V0ICh2aWEgbW9kaWZpZXIsIG5vdCBNUSkuXG4gICAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLmMtbWVkaWEtdGVhc2VyLmMtbWVkaWEtdGVhc2VyLS12ZXJ0aWNhbCAuYy1tZWRpYS10ZWFzZXJfX2NhcHRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LWdyb3c6IDE7XG4gIGZsZXgtc2hyaW5rOiAxO1xuICBmbGV4LWJhc2lzOiBhdXRvO1xufVxuLmMtbWVkaWEtdGVhc2VyLmMtbWVkaWEtdGVhc2VyLS12ZXJ0aWNhbCAuYy1tZWRpYS10ZWFzZXJfX2Zvb3RlciB7XG4gIG1hcmdpbi10b3A6IGF1dG87XG59XG4uYy1tZWRpYS10ZWFzZXJbZGF0YS1tYXJrZXRpbmctdGhlbWVdW2RhdGEtbWFya2V0aW5nLXRoZW1lPVwiMVwiXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWQxYjg7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtbWVkaWEtdGVhc2VyW2RhdGEtbWFya2V0aW5nLXRoZW1lXVtkYXRhLW1hcmtldGluZy10aGVtZT1cIjJcIl0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzNmMWIzO1xuICBjb2xvcjogIzE2MTcxODtcbn1cblxuLmMtbWVkaWEtdGVhc2VyX19jYXB0aW9uIHtcbiAgcGFkZGluZy10b3A6IDI0cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDI0cHg7XG4gIHBhZGRpbmctYm90dG9tOiAyNHB4O1xuICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gIC8qKlxuICAgKiBbMV0gQ2hlY2sgaWYgYSB0aGVtZSBpcyBzZXQgb3IgaWYgdGhlIGRlZmF1bHQgdGhlbWUgKG51bGwpIGlzIHVzZWQuXG4gICAqICAgICBJZiB0aGUgYGRlZmF1bHRgIHRoZW1lIGlzIHVzZWQgd2UgZXhlY3V0ZSB0aGUgYWxyZWFkeSBwcmVzZW50IGxvZ2ljLFxuICAgKiAgICAgZWxzZSB3ZSBqdXN0IHJldHVybiB0aGUgY29udGVudCB1bndyYXBwZWQuXG4gICAqL1xufVxuLyogWzFdICovXG4uYy1tZWRpYS10ZWFzZXItLXZlcnRpY2FsIC5jLW1lZGlhLXRlYXNlcl9fY2FwdGlvbiB7XG4gIHBhZGRpbmctdG9wOiAyNHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjRweDtcbiAgcGFkZGluZy1sZWZ0OiAyNHB4O1xufVxuW2RhdGEtbWFya2V0aW5nLXRoZW1lXSAuYy1tZWRpYS10ZWFzZXJfX2NhcHRpb24ge1xuICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgW2RhdGEtbWFya2V0aW5nLXRoZW1lXSAuYy1tZWRpYS10ZWFzZXJfX2NhcHRpb24ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICB9XG59XG5cbi5jLW1lZGlhLXRlYXNlcl9fY2FwdGlvbiAqOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbOF0gKi9cbn1cblxuLmMtbWVkaWEtdGVhc2VyX19wcmV0aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5jLW1lZGlhLXRlYXNlcl9fdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuXG4uYy1tZWRpYS10ZWFzZXJfX2JvZHkge1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuXG4vKiBbNl0gKi9cbi5jLW1lZGlhLXRlYXNlci0tZnVsbC1saW5rIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbMTBdICovXG59XG4uYy1tZWRpYS10ZWFzZXItLWZ1bGwtbGluazpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjsgLyogWzExXSAqL1xufVxuLmMtbWVkaWEtdGVhc2VyLS1mdWxsLWxpbms6aG92ZXIgLmMtbWVkaWEtdGVhc2VyX19pbWFnZSwgLmMtbWVkaWEtdGVhc2VyLS1mdWxsLWxpbms6Zm9jdXMtd2l0aGluIC5jLW1lZGlhLXRlYXNlcl9faW1hZ2Uge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDMpOyAvKiBbMTJdICovXG59XG4uYy1tZWRpYS10ZWFzZXItLWZ1bGwtbGluayBhLFxuLmMtbWVkaWEtdGVhc2VyLS1mdWxsLWxpbmsgYnV0dG9uIHsgLyogWzIwXSAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG59XG4uYy1tZWRpYS10ZWFzZXItLWZ1bGwtbGluayAuYy1tZWRpYS10ZWFzZXJfX21lZGlhIHtcbiAgaGVpZ2h0OiAwJTsgLyogWzEzXSAqL1xuICBvdmVyZmxvdzogaGlkZGVuOyAvKiBbMTRdICovXG59XG5Ac3VwcG9ydHMgKGFsaWduLXNlbGY6IGZsZXgtc3RhcnQpIHtcbiAgLmMtbWVkaWEtdGVhc2VyLS1mdWxsLWxpbmsgLmMtbWVkaWEtdGVhc2VyX19tZWRpYSB7IC8qIFsxNV0gKi9cbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuLmMtbWVkaWEtdGVhc2VyLS1mdWxsLWxpbmsgLmMtbWVkaWEtdGVhc2VyX19pbWFnZSB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDIuMnMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNCwgMS4xMiwgMC42NywgMC45OSk7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9tZWRpYS1mZWF0dXJlLXZhbHVlLWRvbGxhci12YXJpYWJsZSAqL1xufVxuQG1lZGlhIChwb2ludGVyOiBjb2Fyc2UpIHtcbiAgLmMtbWVkaWEtdGVhc2VyLS1mdWxsLWxpbmsgLmMtbWVkaWEtdGVhc2VyX19pbWFnZSB7IC8qIFsxOV0gKi9cbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG4uYy1tZWRpYS10ZWFzZXItLWZ1bGwtbGluayAuYy1tZWRpYS10ZWFzZXJfX2xpbmsge1xuICBwb3NpdGlvbjogc3RhdGljOyAvKiBbMTZdICovXG59XG4uYy1tZWRpYS10ZWFzZXItLWZ1bGwtbGluayAuYy1tZWRpYS10ZWFzZXJfX2xpbms6OmFmdGVyIHsgLyogWzE3XSAqL1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uYy1tZWRpYS10ZWFzZXItLWZ1bGwtbGluay5jLW1lZGlhLXRlYXNlci0tdmlkZW8gLmMtbWVkaWEtdGVhc2VyX19jYXB0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbMThdICovXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNNRURJQS1URUFTRVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLypcbiAqIFsxXSBTZXQgYm9yZGVyIHJhZGl1cyBmb3IgbWVkaWEgbGlrZSBpbWFnZXMgYW5kIHZpZGVvLlxuICogWzJdIElmIG1lZGlhIHRlYXNlciBoYXMgYSBtYXJrZXRpbmcgdGhlbWUsIHNldCBib3JkZXIgcmFkaXVzIGZvciB0aGUgd2hvbGVcbiAqICAgICBjb21wb25lbnQgYW5kIHJlbW92ZSBmcm9tIGluY2x1ZGVkIG1lZGlhIGJlY2F1c2Ugb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG4gKi9cbi5jLW1lZGlhLXRlYXNlcl9fbWVkaWEgeyAvKiBbMV0gKi9cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5jLW1lZGlhLXRlYXNlcl9fbWVkaWEgPiAqIHtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4uYy1tZWRpYS10ZWFzZXJfX3ByZXRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLmMtbWVkaWEtdGVhc2VyX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS40Mzc1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogIzE2MTcxODtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICAuYy1tZWRpYS10ZWFzZXJfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuNjg3NXJlbTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyODFweCkge1xuICAuYy1tZWRpYS10ZWFzZXJfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuODc1cmVtO1xuICB9XG59XG5cbi5jLW1lZGlhLXRlYXNlcltkYXRhLW1hcmtldGluZy10aGVtZV0geyAvKiBbMl0gKi9cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuLmMtbWVkaWEtdGVhc2VyW2RhdGEtbWFya2V0aW5nLXRoZW1lXSAuYy1tZWRpYS10ZWFzZXJfX21lZGlhID4gKiB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNNRURJQS1HUklEIChTZXR0aW5ncylcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI01FRElBLUdSSURcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBUaGUgbWVkaWEgZ3JpZCBjb21wb25lbnQgcGxhY2VzIGltYWdlcyBvciBpY29ucyAod2l0aCBvcHRpb25hbCB0ZXh0IGJlbG93KVxuICogbmV4dCB0byBlYWNoIG90aGVyIGluIGEgc21hcnQgd2F5LCBzbyB0aGUgYW1vdW50IG9mIGl0ZW1zIGRvZXNuJ3QgbWF0dGVyLiBUaGVcbiAqIGl0ZW1zIHdyYXAgZHluYW1pY2FsbHkgaW50byBuZXcgbGluZXMsIGRlcGVuZGluZyBvbiB0aGUgdmlld3BvcnQuIEl0IGlzIGJ1aWx0XG4gKiB3aXRoIENTUyBncmlkLlxuICovXG4vKipcbiAqIFsxXSBGYWRlIG91dCBhbGwgZ3JpZCBpdGVtIGltYWdlcyBleGNlcHQgdGhlIGhvdmVyZWQgb25lIG9uIGhvdmVyIGFuZCBmb2N1cy5cbiAqIFsyXSBSZW1vdmUgbGluay1ib3JkZXIgZm9yIGJyYW5kcyB3aXRoIHNldCBib3JkZXIuXG4gKiBbM10gRW5zdXJlIGVxdWFsIGFzcGVjdCByYXRpb3NcbiAqICAgICBldmVuIGlmIHRoZSBpbWFnZXMgaGF2ZSBkaWZmZXJlbnQgcmF0aW9zIGFuZCBzaXplcy5cbiAqIFs0XSBFbnN1cmUgY29ycmVjdCBzaXppbmcgd2l0aCBmaXhlZCBhc3BlY3QgcmF0aW8uXG4gKiBbNV0gVXNlIGBhdXRvLWZpdGAgdG8gYWxsb3cgaG9yaXpvbnRhbCBhbGlnbm1lbnQuXG4gKiBbNl0gU2V0IGB3aWR0aGAgdG8gYXBwbHkgYGFzcGVjdC1yYXRpb2AgaW4gbm9uLUNocm9taXVtIGJyb3dzZXJzLlxuICogICAgIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS83MDE2MDQzMFxuICovXG4uYy1tZWRpYS1ncmlkIHtcbiAgLS1jb2x1bW4tY291bnQ6IDY7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMjRweDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIGNhbGMoMTAwJSAvIHZhcigtLWNvbHVtbi1jb3VudCkgLSAyNHB4KSk7IC8qIFs1XSAqL1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogWzVdICovXG4gIG1hcmdpbjogMDtcbiAgLyogWzNdICovXG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzY3NzL21lZGlhLWZlYXR1cmUtdmFsdWUtZG9sbGFyLXZhcmlhYmxlICovXG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtbWVkaWEtZ3JpZCB7XG4gICAgLS1jb2x1bW4tY291bnQ6IDQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1tZWRpYS1ncmlkIHtcbiAgICAtLWNvbHVtbi1jb3VudDogMztcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLW1lZGlhLWdyaWQge1xuICAgIC0tY29sdW1uLWNvdW50OiAyO1xuICB9XG59XG4uYy1tZWRpYS1ncmlkW2RhdGEtYXNwZWN0LXJhdGlvPVwiMS8xXCJdIHtcbiAgLS1hc3BlY3QtcmF0aW86IDEvMTtcbn1cbi5jLW1lZGlhLWdyaWRbZGF0YS1hc3BlY3QtcmF0aW89XCI0LzNcIl0ge1xuICAtLWFzcGVjdC1yYXRpbzogNC8zO1xufVxuLmMtbWVkaWEtZ3JpZFtkYXRhLWFzcGVjdC1yYXRpbz1cIjE2LzlcIl0ge1xuICAtLWFzcGVjdC1yYXRpbzogMTYvOTtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogbm8tcHJlZmVyZW5jZSkgYW5kIChwb2ludGVyOiBmaW5lKSB7XG4gIEBzdXBwb3J0cyBzZWxlY3Rvcig6aGFzKC5zdXBwb3J0KSkge1xuICAgIC5jLW1lZGlhLWdyaWQ6aGFzKC5jLW1lZGlhLWdyaWRfX2xpbms6d2hlcmUoOmhvdmVyLCA6Zm9jdXMtdmlzaWJsZSkpIC5jLW1lZGlhLWdyaWRfX2xpbms6d2hlcmUoOm5vdCg6aG92ZXIsIDpmb2N1cy12aXNpYmxlKSkgLmMtbWVkaWEtZ3JpZF9faW1hZ2Uge1xuICAgICAgb3BhY2l0eTogMC4zOyAvKiBbMV0gKi9cbiAgICAgIGZpbHRlcjogYmx1cigycHgpO1xuICAgIH1cbiAgfVxufVxuXG4uYy1tZWRpYS1ncmlkX19pbWFnZSB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBhc3BlY3QtcmF0aW86IHZhcigtLWFzcGVjdC1yYXRpbywgYXV0byk7XG59XG4uYy1tZWRpYS1ncmlkW2RhdGEtYXNwZWN0LXJhdGlvXSAuYy1tZWRpYS1ncmlkX19pbWFnZSB7XG4gIHdpZHRoOiAxMDAlOyAvKiBbNl0gKi9cbiAgb2JqZWN0LWZpdDogY29udGFpbjsgLyogWzRdICovXG59XG5cbi5jLW1lZGlhLWdyaWRfX2l0ZW0ge1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5jLW1lZGlhLWdyaWRfX2xpbmsge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyOiAwOyAvKiBbMl0gKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYy1tZWRpYS1ncmlkX19saW5rOmZvY3VzLXZpc2libGUge1xuICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICMxNjE3MTg7XG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgLS1mb2N1cy1vdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgLS1mb2N1cy1vdXRsaW5lLXdpZHRoOiAycHg7XG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWZvY3VzLW91dGxpbmUtY29sb3IsICMxNjE3MTgpO1xuICBvdXRsaW5lLW9mZnNldDogdmFyKC0tZm9jdXMtb3V0bGluZS1vZmZzZXQsIDFweCk7XG4gIG91dGxpbmUtc3R5bGU6IHZhcigtLWZvY3VzLW91dGxpbmUtc3R5bGUsIHNvbGlkKTtcbiAgb3V0bGluZS13aWR0aDogdmFyKC0tZm9jdXMtb3V0bGluZS13aWR0aCwgMnB4KTtcbn1cbi5jLW1lZGlhLWdyaWRfX2xpbms6aG92ZXIgLmMtbWVkaWEtZ3JpZF9fbGFiZWwsIC5jLW1lZGlhLWdyaWRfX2xpbms6Zm9jdXMtdmlzaWJsZSAuYy1tZWRpYS1ncmlkX19sYWJlbCB7XG4gIGNvbG9yOiAjNDE5NDY4O1xufVxuXG4uYy1tZWRpYS1ncmlkX19sYWJlbCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3I7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICNDQVJPVVNFTFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBNYWtlIHN1cmUgYnV0dG9ucyBkb24ndCBnZXQgb3ZlcmxhcHBlZCBieSBhbiBpdGVtLlxuICogWzJdIFNldCB0aGUgd2lkdGggdG8gMTAwJSB0byBlbnN1cmUgdGhhdCBpbWFnZXMgYWx3YXlzIGFyZSBmdWxsIHdpZHRoIHdpdGhcbiAqICAgICB0aGVpciBkZWZhdWx0IGBtYXgtd2lkdGg6IDEwMCU7YC5cbiAqIFszXSBBbHdheXMgY2VudGVyIHRoZSBkb3RzLlxuICogWzRdIEFkZCBhIG1hcmdpbiwgaWYgdGhlIGRvdHMgYXJlIHBsYWNlZCBvdXRzaWRlIG9mIHRoZSBjYXJvdXNlbC5cbiAqIFs1XSBDZW50ZXIgdGhlIGJ1dHRvbiB2ZXJ0aWNhbGx5LlxuICogWzZdIENlbnRlciB0aGUgaWNvbiBhbmQgbGFiZWwgdmVydGljYWxseSBhbmQgaG9yaXpvbnRhbGx5IHdpdGhpbiB0aGUgYnV0dG9uLlxuICogWzddIENlbnRlciB0aGUgZG90cyBob3Jpem9udGFsbHkgd2l0aGluIHRoZSBjYXJvdXNlbC5cbiAqIFs4XSBBZGQgaG9yaXpvbnRhbCBvdXRlciBzcGFjaW5nIHRvIHRoZSBjYXJvdXNlbCBpdGVtc1xuICogICAgIChlLmcuIGlmIHRoZSBkZXNpZ24gcmVxdWlyZXMgc3BhY2UgZm9yIHRoZSBidXR0b25zKVxuICogWzldIFVzZSBvcGFjaXR5IGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIGJ1dHRvbiB0cmFuc2l0aW9uIHRvIGZhZGUgb3V0XG4gKiAgICAgIGRpc2FibGVkIGJ1dHRvbnMuXG4gKiBbMTBdIEhpZGUgY29tcG9uZW50IHVudGlsIEZsaWNraXR5IGlzIGZ1bGx5IGxvYWRlZCBhbmQgcHJldmVudCBcIkZsYXNoIG9mXG4gKiAgICAgIHZpc2libGUgYnV0dG9uXCIuXG4gKiBbMTFdIFRyYW5zZm9ybSB0aGUgcHJldi9uZXh0IGJ1dHRvbiBpY29ucyBvbiBgOmhvdmVyYFxuICogWzEyXSBTaGlmdCBwcmV2L25leHQgYnV0dG9uIGxhYmVscyBob3Jpem9udGFsbHkgb24gYDpob3ZlcmBcbiAqIFsxM10gUmV2ZXJzZSBvcmRlciBvZiBpY29uIGFuZCBsYWJlbC5cbiAqIFsxNF0gQW5jaG9yIGAuYy1jYXJvdXNlbF9fYnV0dG9uLWxhYmVsYCBmb3IgcHJldmlvdXMgYW5kIG5leHQgYnV0dG9uc1xuICogICAgICBpbiByZXNwZWN0IHRvIHRoZWlyIHBvc2l0aW9uLlxuICogWzE1XSBgLmZsaWNraXR5LXZpZXdwb3J0YCBoYXMgbm8gZml4ZWQgaGVpZ2h0IHNldCBpbiBmdWxsc2NyZWVuIG1vZGUsXG4gKiAgICAgIHNvIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBpdGVtcyBkbyBub3QgZXhjZWVkIHRoZSBzbGlkZXLigJlzIGJvdW5kYXJpZXMuXG4gKiBbMTZdIE1ha2UgdGhlIGltYWdlIGFsd2F5cyBmaXQgaW5zaWRlIHRoZSBmdWxsc2NyZWVuIGNvbnRhaW5lci5cbiAqIFsxN10gQWRkIHBvaW50ZXIgdGFyZ2V0IHNwYWNlIHRvIHRoZSBidXR0b24gbGFiZWxzLlxuICogWzE4XSBBbHdheXMgZGlzcGxheSB0aGUgYnV0dG9ucyB3aXRoIHRoZSBgLmMtY2Fyb3VzZWwtLWJ1dHRvbnMtdmlzaWJsZWBcbiAqICAgICAgbW9kaWZpZXIgY2xhc3MgYW5kIG92ZXJ3cml0ZSBwYWNrYWdlIHNldHRpbmdzLlxuICogWzE5XSBBbHdheXMgaGlkZSB0aGUgYnV0dG9ucyB3aXRoIHRoZSBgLmMtY2Fyb3VzZWwtLWJ1dHRvbnMtb24taG92ZXJgXG4gKiAgICAgIG1vZGlmaWVyIGNsYXNzIGFuZCBkaXNwbGF5IHRoZW0gb25seSBvbiBob3ZlciBhbmQgb3ZlcndyaXRlIHBhY2thZ2VcbiAqICAgICAgc2V0dGluZ3MuXG4gKiBbMjBdIEFsd2F5cyBzaG93IGZ1bGxzY3JlZW4gYnV0dG9uIG9uIFwidG91Y2hcIiBkZXZpY2VzLlxuICogWzIxXSBVc2UgYHBvaW50ZXI6IGNvYXJzZWAgbWVkaWEtcXVlcnkgdG8gdGFyZ2V0IGJyb3dzZXJzIHdpdGhcbiAqICAgICAgbGltaXRlZCBwcmVjaXNpb24gYXMgcHJpbWFyeSBpbnB1dCBkZXZpY2UgKFwidG91Y2hcIikuXG4gKiAgICAgIGh0dHBzOi8vY2FuaXVzZS5jb20vY3NzLW1lZGlhLWludGVyYWN0aW9uXG4gKiBbMjJdIFBvc2l0aW9uIGRvdHMgYXQgdGhlIGJvdHRvbSBpbiBmdWxsc2NyZWVuIHRvIGJlIHZpc2libGUuXG4gKi9cbi5jLWNhcm91c2VsIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8qIFs0XSAqL1xuICBvcGFjaXR5OiAwOyAvKiBbMTBdICovXG59XG4uYy1jYXJvdXNlbC5mbGlja2l0eS1lbmFibGVkIHtcbiAgb3BhY2l0eTogMTsgLyogWzEwXSAqL1xufVxuLmMtY2Fyb3VzZWwuaXMtZnVsbHNjcmVlbiAuYy1jYXJvdXNlbF9faXRlbSxcbi5jLWNhcm91c2VsLmlzLWZ1bGxzY3JlZW4gLmMtY2Fyb3VzZWxfX2ltYWdlIHtcbiAgaGVpZ2h0OiAxMDAlOyAvKiBbMTVdICovXG59XG4uYy1jYXJvdXNlbC5pcy1mdWxsc2NyZWVuIC5jLWNhcm91c2VsX19pbWFnZSB7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIC8qIFsxNl0gKi9cbn1cbi5jLWNhcm91c2VsLmlzLWZ1bGxzY3JlZW4gLmZsaWNraXR5LXBhZ2UtZG90cyB7XG4gIGJvdHRvbTogMDsgLyogWzIyXSAqL1xufVxuLmMtY2Fyb3VzZWwgLmZsaWNraXR5LXBhZ2UtZG90cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxNnB4O1xuICBsZWZ0OiA1MCU7IC8qIFs3XSAqL1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IC8qIFs3XSAqL1xufVxuLmMtY2Fyb3VzZWwgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxOyAvKiBbMV0gKi9cbiAgdG9wOiA1MCU7IC8qIFs1XSAqL1xuICBkaXNwbGF5OiBmbGV4OyAvKiBbNl0gKi9cbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogWzZdICovXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKiBbNl0gKi9cbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyAvKiBbNV0gKi9cbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzE2MTcxODtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmMtY2Fyb3VzZWwgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ucHJldmlvdXMge1xuICBsZWZ0OiAxNnB4O1xufVxuLmMtY2Fyb3VzZWwgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ucHJldmlvdXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTE3XCI7XG59XG4uYy1jYXJvdXNlbCAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbi5uZXh0IHtcbiAgcmlnaHQ6IDE2cHg7XG59XG4uYy1jYXJvdXNlbCAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbi5uZXh0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExOFwiO1xufVxuLmMtY2Fyb3VzZWwgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b246aG92ZXIsIC5jLWNhcm91c2VsIC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMiwgMjMsIDI0LCAwLjA2KTtcbn1cbi5jLWNhcm91c2VsIC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAwO1xufVxuLmMtY2Fyb3VzZWwgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b246bm90KFtkaXNhYmxlZF0pIHtcbiAgLyogWzEwXSAqL1xufVxuLmMtY2Fyb3VzZWwgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b25bZGlzYWJsZWRdIHtcbiAgb3BhY2l0eTogMDsgLyogWzldICovXG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbOV0gKi9cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuYy1jYXJvdXNlbCAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmMtY2Fyb3VzZWwgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b246OmJlZm9yZSwgLmMtY2Fyb3VzZWwgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b246OmFmdGVyIHtcbiAgdHJhbnNpdGlvbjogaW5oZXJpdDtcbn1cbi5jLWNhcm91c2VsIC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uOjpiZWZvcmUge1xuICBmb250LXNpemU6IDJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5jLWNhcm91c2VsIC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uOmhvdmVyIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG59XG4uYy1jYXJvdXNlbCAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbjpob3Zlcjo6YmVmb3JlIHsgLyogcHJldi9uZXh0IGJ1dHRvbiBpY29uICovXG4gIC8qIFsxMV0gKi9cbn1cbi5jLWNhcm91c2VsX19pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jLWNhcm91c2VsX19pbWFnZSB7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICB3aWR0aDogMTAwJTsgLyogWzJdICovXG59XG5cbi5jLWNhcm91c2VsLS1idXR0b25zLXZpc2libGUgeyAvKiBbMThdICovIH1cbi5jLWNhcm91c2VsLS1idXR0b25zLXZpc2libGUgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b246bm90KFtkaXNhYmxlZF0pIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmMtY2Fyb3VzZWwtLWJ1dHRvbnMtb24taG92ZXIgeyAvKiBbMTldICovXG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzY3NzL21lZGlhLWZlYXR1cmUtdmFsdWUtZG9sbGFyLXZhcmlhYmxlICovXG59XG5AbWVkaWEgKHBvaW50ZXI6IGNvYXJzZSkge1xuICAuYy1jYXJvdXNlbC0tYnV0dG9ucy1vbi1ob3ZlciB7IC8qIFsyMV0gKi8gfVxuICAuYy1jYXJvdXNlbC0tYnV0dG9ucy1vbi1ob3ZlciAuZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b24ge1xuICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDsgLyogWzIwXSAqL1xuICB9XG59XG4uYy1jYXJvdXNlbC0tYnV0dG9ucy1vbi1ob3ZlciAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbixcbi5jLWNhcm91c2VsLS1idXR0b25zLW9uLWhvdmVyIC5mbGlja2l0eS1mdWxsc2NyZWVuLWJ1dHRvbiB7XG4gIG9wYWNpdHk6IDA7XG59XG4uYy1jYXJvdXNlbC0tYnV0dG9ucy1vbi1ob3Zlcjpob3ZlciAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbjpub3QoW2Rpc2FibGVkXSksXG4uYy1jYXJvdXNlbC0tYnV0dG9ucy1vbi1ob3Zlcjpob3ZlciAuZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b246bm90KFtkaXNhYmxlZF0pLCAuYy1jYXJvdXNlbC0tYnV0dG9ucy1vbi1ob3Zlcjpmb2N1cyAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbjpub3QoW2Rpc2FibGVkXSksXG4uYy1jYXJvdXNlbC0tYnV0dG9ucy1vbi1ob3Zlcjpmb2N1cyAuZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b246bm90KFtkaXNhYmxlZF0pIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0NBUk9VU0VMXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIFN1cHByZXNzIHVud2FudGVkIHNwYWNpbmcgaW4gZnVsbHNjcmVlbiBtb2RlLlxuICogWzJdIFJlc2V0IGB0cmFuc2Zvcm1gIGJlY2F1c2UgdGhlIHBhZ2luYXRpb24gZG9lcyBub3QgaGF2ZVxuICogICAgIHRvIGJlIGRpc3BsYXllZCBjZW50ZXJlZCBhY2NvcmRpbmcgdG8gYnJhbmQgZ3VpZGVsaW5lcy5cbiAqIFszXSBFbmZvcmNlIGNvdW50ZXIgYWNjb3JkaW5nIHRvIGJyYW5kIGd1aWRlbGluZXMuXG4gKiBbNF0gT3ZlcndyaXRlIGBtaW4taGVpZ2h0YCBzbyB0aGF0IHRoZSBiYWNrZ3JvdW5kIGNvbG9yXG4gKiAgICAgb2YgdGhlIGNvdW50ZXIgZ2V0cyB0aGUgY29ycmVjdCBoZWlnaHQuXG4gKiBbNV0gRW5mb3JjZSB2aXNpYmlsaXR5IG9mIGZ1bGxzY3JlZW4gYnV0dG9uIHNvIHRoYXQgdGhlcmUgaXNcbiAqICAgICBubyB2aXN1YWwgZ2FwIHRvIHBhZ2luYXRpb24gb25jZSB0aGUgQ1NTIG1vZGlmaWVyXG4gKiAgICAgYC5jLWNhcm91c2VsLS1idXR0b25zLW9uLWhvdmVyYCBpcyBzZXQuXG4gKiBbNl0gSGFuZGxlcyB0aGUgcmlnaHQgcG9zaXRpb25pbmcgb2YgcGFnaW5hdGlvbi5cbiAqIFs3XSBPdmVyd3JpdGUgYG91dGxpbmU6IDBgLCB3aGljaCBpcyBpbmhlcml0ZWRcbiAqICAgICBmcm9tIHRoZSBCcm9uc29uLURlZmF1bHQgcGFja2FnZS5cbiAqL1xuLmMtY2Fyb3VzZWwuaXMtZnVsbHNjcmVlbiB7XG4gIHBhZGRpbmctYm90dG9tOiAwOyAvKiBbMV0gKi9cbn1cbi5jLWNhcm91c2VsLmlzLWZ1bGxzY3JlZW4gLmZsaWNraXR5LXBhZ2UtZG90cyB7XG4gIGJvdHRvbTogMTZweDtcbn1cbi5jLWNhcm91c2VsW2RhdGEtY2Fyb3VzZWwtZnVsbHNjcmVlbj10cnVlXSAuZmxpY2tpdHktcGFnZS1kb3RzIHtcbiAgcmlnaHQ6IDY0cHg7XG59XG4uYy1jYXJvdXNlbCAuZmxpY2tpdHktcGFnZS1kb3RzIHtcbiAgbGVmdDogYXV0bzsgLyogWzZdICovXG4gIHJpZ2h0OiAxNnB4OyAvKiBbNl0gKi9cbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgdHJhbnNmb3JtOiBub25lOyAvKiBbMl0gKi9cbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyLCAyMywgMjQsIDAuNzUpO1xufVxuLmMtY2Fyb3VzZWwgLmZsaWNraXR5LXBhZ2UtZG90cyAuZG90IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1jbGFzcyAqL1xufVxuLmMtY2Fyb3VzZWwgLmZsaWNraXR5LXBhZ2UtZG90cyAuZG90LmlzLXNlbGVjdGVkIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSwgc2VsZWN0b3ItbWF4LWNsYXNzLCBtYXgtbmVzdGluZy1kZXB0aCAqL1xufVxuLmMtY2Fyb3VzZWwgLmZsaWNraXR5LXBhZ2UtZG90cyAuZG90LmlzLXNlbGVjdGVkOjpiZWZvcmUge1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLmMtY2Fyb3VzZWwgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b246Zm9jdXMtdmlzaWJsZSB7IC8qIFs3XSAqL1xuICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICMxNjE3MTg7XG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgLS1mb2N1cy1vdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgLS1mb2N1cy1vdXRsaW5lLXdpZHRoOiAycHg7XG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWZvY3VzLW91dGxpbmUtY29sb3IsICMxNjE3MTgpO1xuICBvdXRsaW5lLW9mZnNldDogdmFyKC0tZm9jdXMtb3V0bGluZS1vZmZzZXQsIDFweCk7XG4gIG91dGxpbmUtc3R5bGU6IHZhcigtLWZvY3VzLW91dGxpbmUtc3R5bGUsIHNvbGlkKTtcbiAgb3V0bGluZS13aWR0aDogdmFyKC0tZm9jdXMtb3V0bGluZS13aWR0aCwgMnB4KTtcbn1cblxuLmMtY2Fyb3VzZWwtLWJ1dHRvbnMtb24taG92ZXIgLmZsaWNraXR5LWZ1bGxzY3JlZW4tYnV0dG9uIHtcbiAgb3BhY2l0eTogMTsgLyogWzVdICovXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNTVElDS1ktQ09OVEFJTkVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIEFzIHRoZSBuYW1lIHN1Z2dlc3RzLCB0aGUgY29tcG9uZW50IGlzIHN0aWNreS4gRm9yIGJyb3dzZXJzIHRoYXQgZG9u4oCZdFxuICogICAgIHN1cHBvcnQgYHBvc2l0aW9uOiBzdGlja3lgLCBtYWtlIHN1cmUgdG8gcHJvdmlkZSBhIEpTIHBvbHlmaWxsLiBCeVxuICogICAgIGRlZmF1bHQsIHRoaXMgaXMgcHJvdmlkZWQgaW4gQnJvbnNvbiB2aWEgdGhlIHN0aWNreWZpbGwgcG9seWZpbGwuXG4gKiAgICAgQERFUFJFQ0FURURcbiAqIFsyXSBFbnN1cmUgdGhhdCB0aGUgdXNlciBpcyBub3QgdHJhcHBlZCBpbiBzY3JvbGxpbmcgaGVsbCB3aGVuIHRoZSBzdGlja3lcbiAqICAgICBjb250YWluZXIgY29udGFpbnMgbG90IG9mIGNvbnRlbnQgYW5kIHRoZSB2ZXJ0aWNhbCBzcGFjZSBpcyBsaW1pdGVkIChlLmcuXG4gKiAgICAgb24gc21hbGwgc2NyZWVuKS5cbiAqIFszXSBNYWtlIHN1cmUgdGhhdCBhbnkgcG90ZW50aWFsIHNwYWNpbmcgYm90dG9tIGlzIGVsaW1pbmF0ZWQuXG4gKi9cbi5jLXN0aWNreS1jb250YWluZXIge1xuICBwb3NpdGlvbjogc3RpY2t5OyAvKiBbMV0gKi9cbiAgei1pbmRleDogMjEwMDtcbiAgdG9wOiAwOyAvKiBbMV0gKi9cbiAgbWF4LWhlaWdodDogNzV2aDsgLyogWzJdICovXG4gIG92ZXJmbG93LXk6IGF1dG87IC8qIFsyXSAqL1xuICBwYWRkaW5nLXRvcDogMjRweDtcbiAgcGFkZGluZy1ib3R0b206IDI0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuXG4uYy1zdGlja3ktY29udGFpbmVyX19pbm5lciB7XG4gIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyAxOTJweCk7XG4gIHBhZGRpbmctbGVmdDogOTZweDtcbiAgcGFkZGluZy1yaWdodDogOTZweDtcbiAgLS1wYWdlLXdyYXA6IDk2cHg7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLXN0aWNreS1jb250YWluZXJfX2lubmVyIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTI0OHB4ICsgOTZweCk7XG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHg7XG4gICAgLS1wYWdlLXdyYXA6IDQ4cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1zdGlja3ktY29udGFpbmVyX19pbm5lciB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDQ4cHgpO1xuICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICAgIC0tcGFnZS13cmFwOiAyNHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtc3RpY2t5LWNvbnRhaW5lcl9faW5uZXIge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyAyNHB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgcGFkZGluZy1yaWdodDogMTJweDtcbiAgICAtLXBhZ2Utd3JhcDogMTJweDtcbiAgfVxufVxuLmMtc3RpY2t5LWNvbnRhaW5lcl9faW5uZXIgPiAqOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbM10gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZPTEQtT1VUXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIFJlc2V0IGRlZmF1bHQgYDxidXR0b24+YCBzdHlsZXMuXG4gKiBbMl0gUHJvdmlkZSB2ZXJ0aWNhbCBzcGFjaW5nIHdoZW4gdGhlIGZvbGQtb3V0IGlzIGV4cGFuZGVkLlxuICogWzNdIERpc3BsYXkgdGhlIGhlYWQgYW5kIGZvb3RlciBpY29uIHZpYSBwc2V1ZG8gZWxlbWVudCBhcyBpdCBpc1xuICogICAgIGNvbXBsZXRlbHkgZGVjb3JhdGl2ZS5cbiAqIFs0XSBUaGUgZm9vdGVyIGljb24gaXMgcmV2ZXJzZWQgYWNjb3JkaW5nIHRvIGl0cyBwb3NpdGlvbi5cbiAqIFs1XSBDb25kaXRpb25hbGx5IGRpc3BsYXkgYSBmb2xkIG91dCBmb290ZXIuXG4gKiBbNl0gRm9yY2UgdGhlIGNvcnJlY3QgY29sb3IgZm9yIHRoZSBidXR0b24gYW5kIGl0cyBjaGlsZCBlbGVtZW50cy5cbiAqICAgICBGb3IgZXhhbXBsZSwgU2FmYXJpIDE1IG9uIG1hY09TIGFuZCBpT1MgaGFzIG1hZGUgc29tZSBjaGFuZ2VzXG4gKiAgICAgdG8gdGhlIHVzZXIgYWdlbnQgc3R5bGVzLCBpbmNsdWRpbmcgb3ZlcnJpZGluZyB0aGUgY29sb3IgcHJvcGVydHlcbiAqICAgICBvZiBhbGwgZm9ybSBlbGVtZW50cyBzdWNoIGFzIGlucHV0cywgYnV0dG9ucyBldGMuXG4gKi9cbi5jLWZvbGQtb3V0IHtcbiAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDE5MnB4KTtcbiAgcGFkZGluZy1sZWZ0OiA5NnB4O1xuICBwYWRkaW5nLXJpZ2h0OiA5NnB4O1xuICAtLXBhZ2Utd3JhcDogOTZweDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1mb2xkLW91dCB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDk2cHgpO1xuICAgIHBhZGRpbmctbGVmdDogNDhweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4O1xuICAgIC0tcGFnZS13cmFwOiA0OHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtZm9sZC1vdXQge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyA0OHB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgICAtLXBhZ2Utd3JhcDogMjRweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLWZvbGQtb3V0IHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTI0OHB4ICsgMjRweCk7XG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XG4gICAgLS1wYWdlLXdyYXA6IDEycHg7XG4gIH1cbn1cblxuLmMtZm9sZC1vdXRfX2hlYWRlciB7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8qIFsxXSAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogaW5oZXJpdDsgLyogWzZdICovXG59XG4uYy1mb2xkLW91dF9faGVhZGVyOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cbi5jLWZvbGQtb3V0X19oZWFkZXJbYXJpYS1leHBhbmRlZD10cnVlXSB7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8qIFsyXSAqL1xufVxuLmMtZm9sZC1vdXRfX2hlYWRlciA+ICoge1xuICBmbGV4LWdyb3c6IDE7XG4gIGZsZXgtc2hyaW5rOiAxO1xuICBmbGV4LWJhc2lzOiBhdXRvO1xufVxuLmMtZm9sZC1vdXRfX2hlYWRlciA+ICo6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1mb2xkLW91dF9faGVhZGVyID4gKjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gIH1cbn1cblxuLmMtZm9sZC1vdXRfX2NvbnRlbnQ6bm90KFthcmlhLWhpZGRlbj1mYWxzZV0pIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jLWZvbGQtb3V0X19jb250ZW50ID4gKjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmMtZm9sZC1vdXRfX2Zvb3RlciB7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8qIFsxXSAqL1xuICBkaXNwbGF5OiBub25lOyAvKiBbNV0gKi9cbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uYy1mb2xkLW91dF9fZm9vdGVyOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLmMtZm9sZC1vdXRfX2hlYWRlcixcbi5jLWZvbGQtb3V0X19mb290ZXIgeyAvKiBbM10gICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jLWZvbGQtb3V0X19oZWFkZXI6OmJlZm9yZSxcbi5jLWZvbGQtb3V0X19mb290ZXI6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiYnJvbnNvbi1za29kYVwiICFpbXBvcnRhbnQ7IC8qIFsxXSAqL1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmbGV4LWJhc2lzOiAzMnB4O1xuICBmb250LXNpemU6IDMycHg7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICBjb250ZW50OiBcIlxcZjFjMVwiO1xuICBjb2xvcjogIzE2MTcxODtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1mb2xkLW91dF9faGVhZGVyOjpiZWZvcmUsXG4gIC5jLWZvbGQtb3V0X19mb290ZXI6OmJlZm9yZSB7XG4gICAgZmxleC1iYXNpczogMzJweDtcbiAgICBmb250LXNpemU6IDMycHg7XG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gIH1cbn1cbi5jLWZvbGQtb3V0X19oZWFkZXJbYXJpYS1leHBhbmRlZD1mYWxzZV06OmJlZm9yZSxcbi5jLWZvbGQtb3V0X19mb290ZXJbYXJpYS1leHBhbmRlZD1mYWxzZV06OmJlZm9yZSB7XG4gIHJvdGF0ZTogMGRlZztcbn1cbi5jLWZvbGQtb3V0X19oZWFkZXJbYXJpYS1leHBhbmRlZD10cnVlXTo6YmVmb3JlLFxuLmMtZm9sZC1vdXRfX2Zvb3RlclthcmlhLWV4cGFuZGVkPXRydWVdOjpiZWZvcmUge1xuICByb3RhdGU6IDQ1ZGVnO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjRk9MRC1PVVRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogWzFdICovXG4vKipcbiAqIFsxXSBTZXQgaGVpZ2h0IHRvIGhhdmUgYnV0dG9uIChpY29uKSBjbGlja2FibGUuXG4gKiAgICAgQWRkIG91dGxpbmUgYXMgb2Zmc2V0IHRvIGF2b2lkIG92ZXJmbG93L2N1dG9mZnMuXG4gKiBbMl0gT3V0bGluZSBoYW5kbGVkIHZpYSBpY29uLlxuICogWzNdIE1hZ2ljIG51bWJlcnMgZm9yIGFsaWduaW5nIGNpcmNsZSBmb3Igc3RhdGVzIHdpdGggaWNvbi5cbiAqIFs0XSBQbGFjZSBidXR0b24gKGljb24pIG9uIHRoZSByaWdodCBzaWRlLlxuICovXG4uYy1mb2xkLW91dF9faGVhZGVyIHtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuLmMtZm9sZC1vdXRfX2hlYWRlcjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IC0xO1xuICB3aWR0aDogNDRweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG4uYy1mb2xkLW91dF9faGVhZGVyOmhvdmVyOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIsIDIzLCAyNCwgMC4wNik7XG59XG5cbi5jLWZvbGQtb3V0X19oZWFkZXI6Zm9jdXMtdmlzaWJsZTo6YWZ0ZXIge1xuICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICMxNjE3MTg7XG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDA7XG4gIC0tZm9jdXMtb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIC0tZm9jdXMtb3V0bGluZS13aWR0aDogMnB4O1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb2N1cy1vdXRsaW5lLWNvbG9yLCAjMTYxNzE4KTtcbiAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWZvY3VzLW91dGxpbmUtb2Zmc2V0LCAxcHgpO1xuICBvdXRsaW5lLXN0eWxlOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXN0eWxlLCBzb2xpZCk7XG4gIG91dGxpbmUtd2lkdGg6IHZhcigtLWZvY3VzLW91dGxpbmUtd2lkdGgsIDJweCk7XG59XG5cbi5jLWZvbGQtb3V0X19oZWFkZXI6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDA7IC8qIFsyXSAqL1xufVxuLmMtZm9sZC1vdXRfX2hlYWRlcjo6YmVmb3JlIHtcbiAgb3JkZXI6IDE7IC8qIFs0XSAqL1xufVxuLmMtZm9sZC1vdXRfX2hlYWRlcjo6YWZ0ZXIge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3I7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIHJpZ2h0OiAtNnB4OyAvKiBbM10gKi9cbn1cbi5jLWZvbGQtb3V0X19oZWFkZXJbYXJpYS1leHBhbmRlZD1mYWxzZV06OmFmdGVyIHtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cbi5jLWZvbGQtb3V0X19oZWFkZXJbYXJpYS1leHBhbmRlZD10cnVlXSB7XG4gIGhlaWdodDogNDhweDsgLyogWzFdICovXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNQUk9EVUNULUlORk9cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gQ29uZGl0aW9uYWxseSByZW5kZXIgdGhlIGluZm8gYXNpZGUgYXMgZmxleCBjb250YWluZXIgdG9cbiAqICAgICBzZXQgYSBnYXAgaWYgaXQgd2FzIHNwZWNpZmllZC5cbiAqIFsyXSBTcGFuIGhlYWRlciBhY3Jvc3MgY29sdW1ucy5cbiAqL1xuLmMtcHJvZHVjdC1pbmZvIHtcbiAgcm93LWdhcDogMjRweDtcbiAgY29sdW1uLWdhcDogMjRweDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLXByb2R1Y3QtaW5mbyB7XG4gICAgcm93LWdhcDogMjRweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLXByb2R1Y3QtaW5mbyB7XG4gICAgY29sdW1uLWdhcDogMjRweDtcbiAgfVxufVxuXG4uYy1wcm9kdWN0LWluZm9fX21lZGlhIHtcbiAgZ3JpZC1jb2x1bW46IDEvMjtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1wcm9kdWN0LWluZm9fX21lZGlhIHtcbiAgICBncmlkLWNvbHVtbjogMS9zcGFuIDI7XG4gIH1cbn1cblxuLmMtcHJvZHVjdC1pbmZvX19hc2lkZSB7IC8qIFsxXSAqL1xuICByb3ctZ2FwOiAzMnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBncmlkLWNvbHVtbjogMi8yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLXByb2R1Y3QtaW5mb19fYXNpZGUge1xuICAgIHJvdy1nYXA6IDE2cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1wcm9kdWN0LWluZm9fX2FzaWRlIHtcbiAgICBncmlkLWNvbHVtbjogMS9zcGFuIDI7XG4gIH1cbn1cblxuLmMtcHJvZHVjdC1pbmZvX19oZWFkZXIge1xuICBncmlkLWNvbHVtbjogMS8tMTsgLyogWzJdICovXG59XG5cbi5jLXByb2R1Y3QtaW5mb19fdGl0bGUge1xuICBmb250LXNpemU6IDEuNDM3NXJlbTtcbiAgbWFyZ2luOiAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5jLXByb2R1Y3QtaW5mb19fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS42ODc1cmVtO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIC5jLXByb2R1Y3QtaW5mb19fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS44NzVyZW07XG4gIH1cbn1cblxuLmMtcHJvZHVjdC1pbmZvX19zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5jLXByb2R1Y3QtaW5mb19fc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS40Mzc1cmVtO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIC5jLXByb2R1Y3QtaW5mb19fc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICB9XG59XG5cbi5jLXByb2R1Y3QtaW5mb19faW1hZ2Uge1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uYy1wcm9kdWN0LWluZm9fX2NhcHRpb24ge1xuICBjb2xvcjogIzE2MTcxODtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1BST0RVQ1QtSU5GTy1TVU1NQVJZXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIEluIGNvbXBhY3QgbW9kZSB3ZSByZW1vdmUgdGhlIGJvdHRvbSBzcGFjaW5nIGZyb20gdGhlIGluZm8gbGFiZWwuXG4gKiBbMl0gUHVsbCB0aGUgaW5mbyBlbGVtZW50IHRvIHRoZSByaWdodC5cbiAqIFszXSBDaGFuZ2UgYGZsZXgtZGlyZWN0aW9uYCB0byBhcnJhbmdlIGl0ZW1zIG9uZSBiZWxvdyB0aGUgb3RoZXIuXG4gKi9cbi5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1wcm9kdWN0LWluZm8tc3VtbWFyeSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgLyogWzNdICovXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIH1cbn1cbi5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5ID4gKiB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgZmxleC1zaHJpbms6IDE7XG4gIGZsZXgtYmFzaXM6IGF1dG87XG59XG4uYy1wcm9kdWN0LWluZm8tc3VtbWFyeSA+ICo6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1wcm9kdWN0LWluZm8tc3VtbWFyeSA+ICo6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICB9XG59XG4uYy1wcm9kdWN0LWluZm8tc3VtbWFyeS5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5LS1jb21wYWN0IC5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5X19pbWcge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmMtcHJvZHVjdC1pbmZvLXN1bW1hcnkuYy1wcm9kdWN0LWluZm8tc3VtbWFyeS0tY29tcGFjdCAuYy1wcm9kdWN0LWluZm8tc3VtbWFyeV9faW5mbyB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5LmMtcHJvZHVjdC1pbmZvLXN1bW1hcnktLWNvbXBhY3QgLmMtcHJvZHVjdC1pbmZvLXN1bW1hcnlfX2luZm8tdmFsdWUge1xuICBmb250LXNpemU6IDEuNzVyZW07XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgLmMtcHJvZHVjdC1pbmZvLXN1bW1hcnkuYy1wcm9kdWN0LWluZm8tc3VtbWFyeS0tY29tcGFjdCAuYy1wcm9kdWN0LWluZm8tc3VtbWFyeV9faW5mby12YWx1ZSB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIC5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5LmMtcHJvZHVjdC1pbmZvLXN1bW1hcnktLWNvbXBhY3QgLmMtcHJvZHVjdC1pbmZvLXN1bW1hcnlfX2luZm8tdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMi4yNXJlbTtcbiAgfVxufVxuLmMtcHJvZHVjdC1pbmZvLXN1bW1hcnkuYy1wcm9kdWN0LWluZm8tc3VtbWFyeS0tY29tcGFjdCAuYy1wcm9kdWN0LWluZm8tc3VtbWFyeV9faW5mby1sYWJlbCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8qIFsxXSAqL1xufVxuLmMtcHJvZHVjdC1pbmZvLXN1bW1hcnkuYy1wcm9kdWN0LWluZm8tc3VtbWFyeS0tY29tcGFjdCAuYy1wcm9kdWN0LWluZm8tc3VtbWFyeV9faGVhZGluZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuLmMtcHJvZHVjdC1pbmZvLXN1bW1hcnkuYy1wcm9kdWN0LWluZm8tc3VtbWFyeS0tY29tcGFjdCAuYy1wcm9kdWN0LWluZm8tc3VtbWFyeV9fdGl0bGUge1xuICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmMtcHJvZHVjdC1pbmZvLXN1bW1hcnlfX2ltZyB7XG4gIGZsZXgtZ3JvdzogMDtcbiAgZmxleC1zaHJpbms6IDE7XG4gIGZsZXgtYmFzaXM6IDE3NXB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5X19pbWcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5X19oZWFkaW5nIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cblxuLmMtcHJvZHVjdC1pbmZvLXN1bW1hcnlfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBmb250LXdlaWdodDogNzAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5X190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjQzNzVyZW07XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgxcHgpIHtcbiAgLmMtcHJvZHVjdC1pbmZvLXN1bW1hcnlfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxufVxuXG4uYy1wcm9kdWN0LWluZm8tc3VtbWFyeV9fc3VidGl0bGUge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1wcm9kdWN0LWluZm8tc3VtbWFyeV9fc3VidGl0bGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmMtcHJvZHVjdC1pbmZvLXN1bW1hcnlfX2luZm8ge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHJvdy1nYXA6IDRweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IC8qIFsyXSAqL1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICAuYy1wcm9kdWN0LWluZm8tc3VtbWFyeV9faW5mbyB7XG4gICAgZm9udC1zaXplOiAxLjQzNzVyZW07XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgxcHgpIHtcbiAgLmMtcHJvZHVjdC1pbmZvLXN1bW1hcnlfX2luZm8ge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtcHJvZHVjdC1pbmZvLXN1bW1hcnlfX2luZm8ge1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG59XG4uYy1wcm9kdWN0LWluZm8tc3VtbWFyeV9faW5mbyA+ICo6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNQTFlSLU9WRVJSSURFU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFRoaXMgcGFydGlhbCBvdmVycmlkZXMgdGhlIGRlZmF1bHQgc3R5bGVzIG9mIHBseXIgdGhhdCBjb3VsZG4ndCBiZSBoYW5kbGVkXG4gKiB3aXRoIHRoZSB2YXJpYWJsZXMgaW4gYDA2LXZlbmRvci9wbHlyL192ZW5kb3IucGx5ci5zZXR0aW5ncy5zY3NzYC5cbiAqL1xuLyoqXG4gKiBbMV0gIFJlbW92ZSBwYWRkaW5nIGFuZCB0YWtlIGNhcmUgb2Ygc3BhY2luZyBhdCBhbm90aGVyIHBsYWNlLlxuICogWzJdICBTZXQgdGhlIGhlaWdodCBvZiB0aGUgY29udHJvbCBiYXIgdG8gdGhlIGNvcnJlY3QgaGVpZ2h0LlxuICogWzNdICBJbml0aWFsbHkgaGlkZSB0aGUgY29udHJvbHMsIHNvIHlvdSBkb24ndCBzZWUgdGhlbSBiZWZvcmVcbiAqICAgICAgdGhlIHZpZGVvIHN0YXJ0ZWQuLi5cbiAqIFs0XSAgLi4uYW5kIHNob3cgdGhlbSBhZ2FpbiB3aGVuIHRoZSBtb3VzZSBlbnRlcnMgdGhlIHZpZGVvIGNvbnRhaW5lci5cbiAqIFs1XSAgVGhlIHBseXIgdmlkZW8tcGxheWVyIG5vdGljZXMsIHdoZW4gdGhlIG1vdXNlIGhhc24ndCBiZWVuIG1vdmVkIGZvciB0d29cbiAqICAgICAgc2Vjb25kcy4gSXQgdGhlbiBwdXRzIHRoZSBgLnBseXItLWhpZGUtY29udHJvbHNgIGNsYXNzIHRvIHRoZSBjb250YWluZXIuXG4gKiAgICAgIFNpbmNlIHdlJ3ZlIG92ZXJyaWRkZW4gdGhlIGJhc2ljIGFwcGVhcmFuY2Ugb2YgdGhlIGNvbnRyb2xzIHdpdGggWzNdXG4gKiAgICAgIGFuZCBbNF0sIHdlIG5lZWQgdG8gb3ZlcnJpZGUgaXQgYWdhaW4gaGVyZSwgc28gdGhhdCB0aGUgY29udHJvbHNcbiAqICAgICAgYWN0dWFsbHkgaGlkZSBhZnRlciB0d28gc2Vjb25kcyBvZiBubyBtb3VzZSBtb3ZlbWVudC5cbiAqIFs2XSAgSWYgeW91IHNwZWNpZnkgdm9pY2VzIGluIHRoZSBjYXB0aW9ucywgdHdvIGA8c3Bhbj5gcyBnZXQgZ2VuZXJhdGVkXG4gKiAgICAgIGluc2lkZSBvZiBlYWNoIG90aGVyIGFuZCBib3RoIGdldCBhIGhhbGYtdHJhbnNwYXJlbnQgYmFja2dyb3VuZCBhbmRcbiAqICAgICAgcGFkZGluZyBieSBkZWZhdWx0IHdoaWNoIGxvb2tzIGtpbmRhIG9kZC4gVGhpcyBvdmVycmlkZSByZW1vdmVzXG4gKiAgICAgIHRoZSBiYWNrZ3JvdW5kIG9mIHRoZSBpbm5lciBgPHNwYW4+YC5cbiAqIFs3XSAgQnV0dG9uIGhvdmVyIHN0eWxlcyBmb3IgY29udHJvbHMuXG4gKiBbOF0gIFBsYXkgQnV0dG9uIGhvdmVyIHN0eWxlLlxuICogWzldICBVbmZvcnR1bmF0ZWx5LCB3ZSBjYW5ub3QgdXNlIHRoZSBgdHJhbnNsYXRlYCB0cmljayB0byBjZW50ZXIgdGhlIGljb24sXG4gKiAgICAgIGJlY2F1c2UgdGhhdCBkb2Vzbid0IHdvcmsgaW4gb2xkZXIgRmlyZWZveCB2ZXJzaW9ucyAoZS5nLiB2NTIpLlxuICogICAgICBTZWUgQlJPTi04MjguXG4gKiBbMTBdIFBvc2l0aW9uIHRvb2x0aXAgYWJvdmUgY29udHJvbCBzZWN0aW9uLlxuICogWzExXSBEZXNwaXRlIHNldCBvcHRpb25zIGZvciB2b2x1bWUgYW5kIG11dGUsXG4gKiAgICAgIHRoZSBlbGVtZW50cyBnZXQgYW4gYFtoaWRkZW5dYCBhdHRyaWJ1dGUgcmVzdWx0aW5nIGluIGBkaXNwbGF5Om5vbmVgLlxuICogWzEyXSBDaGFuZ2UgdGhlIGRlZmF1bHQgY29udHJvbC1pdGVtIG9yZGVyOiBQbGF5LCBWb2x1bWUsIC4uLlxuICogWzEzXSBUYXJnZXQgYXJlYSB0byBicmlkZ2UgZ2FwIGJldHdlZW4gdm9sdW1lIGJ1dHRvbiBhbmQgdm9sdW1lIHNsaWRlci5cbiAqIFsxNF0gRmFkZS1pbiB2b2x1bWUgc2xpZGVyLlxuICogWzE1XSBSZW1vdmUgc3BhY2luZyB3aGVuIHZvbHVtZSBzbGlkZXIgaXMgdmVydGljYWwuXG4gKiBbMTZdIE92ZXJyaWRlIHNwZWNpZmljaXR5IHNldCBieSBwbHVnaW4gc3R5bGVzLlxuICogWzE3XSBQcmV2ZW50IGludGVyYWN0aW9uIHdpdGggbm9uLXZpc2libGUgcG9zdGVyLlxuICogWzE4XSBQcmV2ZW50IG92ZXJ3cml0ZSBvZiB3aWR0aCBkZWNsYXJhdGlvbiBmcm9tIHBseXIgdmVuZG9yIHN0eWxlcy5cbiAqIFsxOV0gUmVtb3ZlIHRoZSB0cmFuc3BhcmVuY3kgb2YgdGhlIHBsYXkgYnV0dG9uLlxuICogWzIwXSBVc2UgYHRyYW5zaXRpb24tZHVyYXRpb246IDBzYCBpbnN0ZWFkIG9mIGB0cmFuc2l0aW9uOiBub25lYC5cbiAqICAgICAgQnkgZGVmYXVsdCB0aGUgYnJvd3NlciBzZXQgdGhlIGB0cmFuc2l0aW9uLXByb3BlcnR5YCB0byBgYWxsYFxuICogICAgICBmb3IgZWFjaCBlbGVtZW50LiBTZXR0aW5nIHRoZSBgdHJhbnNpdGlvbi1kdXJhdGlvbmAgdG8gdGhlIGRlZmF1bHQgYDBzYFxuICogICAgICByZW5kZXJzIHRoZSBgdHJhbnNpdGlvbi1wcm9wZXJ0eWAgaXJyZWxldmFudC5cbiAqIFsyMV0gUmVwbGFjZSB0aGUgZG90dGVkIG91dGxpbmUgd2l0aCBhIHZpc3VhbCBib3JkZXIgYXMgYSBrZXlib2FyZC1vbmx5XG4gKiAgICAgIGZvY3VzIHN0eWxlLiBUaGUgdmlzdWFsIGJvcmRlciBpcyBhY2NvbXBsaXNoZWQgd2l0aCBgYm94LXNoYWRvd2AuXG4gKiBbMjJdIEZvY3VzIHN0eWxlcyBvZiBhbGwgY29udHJvbHMuXG4gKiBbMjNdIEhhbmRsZXMgdGhlIHRyYWNrIGNvbG9yIG9mIHRoZSBgaW5wdXRbdHlwZT1cInJhbmdlXCJdYC5cbiAqICAgICAgQWxyZWFkeSBkZWZpbmVkIGluIGBwbHlyL3NyYy9zYXNzL2NvbXBvbmVudHMvc2xpZGVycy5zY3NzYC5cbiAqICAgICAgU2luY2Ugd2UgaGF2ZSBkaXNhYmxlZCBDU1MgY3VzdG9tIHByb3BlcnRpZXMgd2l0aGluIHRoZSBwbHlyIHN0eWxlcyxcbiAqICAgICAgd2UgbmVlZCB0byByZXNldCB0aGUgdHJhY2sgY29sb3IgaGVyZS4gQ1NTIGN1c3RvbSBwcm9wZXJ0aWVzIGFyZVxuICogICAgICBuZWNlc3NhcnkgYXQgdGhpcyBwb2ludC5cbiAqIFsyNF0gU3BlY2lmeSBgdHJhbnNpdGlvbi1wcm9wZXJ0eWAgdG8gYXZvaWQgcGVyZm9ybWFuY2UgaXNzdWVzLlxuICogWzI1XSBJbmNyZWFzZSB0aGUgYG91dGxpbmUtb2Zmc2V0YCB0byBwcmV2ZW50IHRoZSBmb2N1cyByaW5nIHRvIGNsYXNoIHdpdGggY29udHJvbHMuXG4gKiBbMjZdIFN0YWNrIGNhcHRpb25zIGFib3ZlIGNvbnRyb2xzLlxuICovXG4ucGx5ci0tdmlkZW8gLnBseXJfX2NvbnRyb2xzIHtcbiAgei1pbmRleDogMjA7XG4gIGhlaWdodDogNjBweDsgLyogWzJdICovXG4gIHBhZGRpbmc6IDI0cHg7IC8qIFsxXSAqL1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgb3BhY2l0eTogMDsgLyogWzNdICovXG59XG4ucGx5ci0tdmlkZW8gLnBseXJfX2NvbnRyb2xzIC5wbHlyX19jb250cm9sOmhvdmVyIHtcbiAgLyogWzddICovXG4gIGNvbG9yOiAjZmZmZmZmOyAvKiBbN10gKi9cbn1cbi5wbHlyLS12aWRlbyAucGx5cl9fY29udHJvbDpmb2N1cy12aXNpYmxlLCAucGx5ci0tdmlkZW8gLnBseXJfX2NvbnRyb2wucGx5cl9fdGFiLWZvY3VzIHtcbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjZmZmZmZmO1xuICAtLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiAwO1xuICAtLWZvY3VzLW91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICAtLWZvY3VzLW91dGxpbmUtd2lkdGg6IDJweDtcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9jdXMtb3V0bGluZS1jb2xvciwgIzE2MTcxOCk7XG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1mb2N1cy1vdXRsaW5lLW9mZnNldCwgMXB4KTtcbiAgb3V0bGluZS1zdHlsZTogdmFyKC0tZm9jdXMtb3V0bGluZS1zdHlsZSwgc29saWQpO1xuICBvdXRsaW5lLXdpZHRoOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXdpZHRoLCAycHgpO1xuICAvKiBbMjBdICovXG59XG5cbi5wbHlyX19jYXB0aW9ucyB7XG4gIHotaW5kZXg6IDEwOyAvKiBbMjZdICovXG4gIHBhZGRpbmc6IDI0cHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbeF0gKi9cbn1cbi5wbHlyX19jYXB0aW9ucyAqIHtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG4ucGx5cl9fY2FwdGlvbnMgc3BhbiBzcGFuIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IC8qIFs2XSAqL1xufVxuXG4ucGx5cl9fY2FwdGlvbiB7XG4gIHBhZGRpbmc6IDhweCAxNnB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG59XG5cbi5wbHlyLS12aWRlbyAucGx5cl9fcHJvZ3Jlc3NfX2J1ZmZlciB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAucGx5cl9fY29udHJvbHMge1xuICAgIGhlaWdodDogMzBweDtcbiAgfVxufVxuLnBseXI6aG92ZXIgLnBseXJfX2NvbnRyb2xzLCAucGx5cjpmb2N1cy13aXRoaW4gLnBseXJfX2NvbnRyb2xzIHtcbiAgb3BhY2l0eTogMTsgLyogWzRdICovXG59XG4ucGx5ci5wbHlyLS1oaWRlLWNvbnRyb2xzOmhvdmVyIC5wbHlyX19jb250cm9scywgLnBseXIucGx5ci0taGlkZS1jb250cm9sczpmb2N1cy13aXRoaW4gLnBseXJfX2NvbnRyb2xzIHtcbiAgb3BhY2l0eTogMDsgLyogWzVdICovXG59XG4uYy1oZXJvLXRlYXNlci0tdmlkZW8gLnBseXJfX2NvbnRyb2xzIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5wbHlyX19jb250cm9scyAucGx5cl9fY29udHJvbHNfX2l0ZW0ge1xuICBtYXJnaW4tbGVmdDogOHB4O1xufVxuLnBseXJfX2NvbnRyb2xzIC5wbHlyX19jb250cm9sc19faXRlbTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4ucGx5cl9fY29udHJvbHMgLnBseXJfX3RpbWUge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAucGx5cl9fY29udHJvbHMgLnBseXJfX3RpbWUge1xuICAgIG1hcmdpbi1sZWZ0OiAyNHB4O1xuICB9XG59XG5cbi5wbHlyX190aW1lLS1jdXJyZW50IHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5wbHlyX190b29sdGlwIHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4OyAvKiBbMTBdICovXG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4ucGx5cl9fY29udHJvbC5wbHlyX19jb250cm9sIHtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi13aWR0aDogYXV0bzsgLyogWzE4XSAqL1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDAgc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbi5wbHlyX19tZW51X19jb250YWluZXIgLnBseXJfX2NvbnRyb2wucGx5cl9fY29udHJvbCB7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogaW5pdGlhbDtcbn1cblxuLnBseXIgLnBseXJfX2NvbnRyb2wtLW92ZXJsYWlkIHtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBib3gtc2hhZG93OiBub25lO1xuICBvcGFjaXR5OiAxOyAvKiBbMTldICovXG59XG4ucGx5ciAucGx5cl9fY29udHJvbC0tb3ZlcmxhaWQ6aG92ZXIsIC5wbHlyIC5wbHlyX19jb250cm9sLS1vdmVybGFpZDpmb2N1cy12aXNpYmxlLCAucGx5ciAucGx5cl9fY29udHJvbC0tb3ZlcmxhaWQucGx5cl9fdGFiLWZvY3VzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNDMsIDI0MywgMjQzLCAwLjE4KTsgLyogWzhdICovXG4gIGNvbG9yOiAjZmZmZmZmOyAvKiBbOF0gKi9cbn1cbi5jLWhlcm8tdGVhc2VyLS12aWRlbyAucGx5ciAucGx5cl9fY29udHJvbC0tb3ZlcmxhaWQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnBseXIgLnBseXJfX2NvbnRyb2wtLW92ZXJsYWlkIHN2ZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgbWFyZ2luLXRvcDogLTIwcHg7IC8qIFs5XSAqL1xuICBtYXJnaW4tbGVmdDogLTIwcHg7IC8qIFs5XSAqL1xufVxuXG4ucGx5cl9fcG9zdGVyIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyAvKiBbMTddICovXG59XG4ucGx5ci0tc3RvcHBlZC5wbHlyX19wb3N0ZXItZW5hYmxlZCAucGx5cl9fcG9zdGVyIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4ucGx5ci0tZnVsbC11aS5wbHlyLS12aWRlbyBpbnB1dFt0eXBlPXJhbmdlXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5wbHlyLS1mdWxsLXVpLnBseXItLXZpZGVvIGlucHV0W3R5cGU9cmFuZ2VdOmFjdGl2ZTo6LXdlYmtpdC1zbGlkZXItdGh1bWIsIC5wbHlyLS1mdWxsLXVpLnBseXItLXZpZGVvIGlucHV0W3R5cGU9cmFuZ2VdOmhvdmVyOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xMjUpO1xufVxuLnBseXItLWZ1bGwtdWkucGx5ci0tdmlkZW8gaW5wdXRbdHlwZT1yYW5nZV06YWN0aXZlOjotbW96LXJhbmdlLXRodW1iLCAucGx5ci0tZnVsbC11aS5wbHlyLS12aWRlbyBpbnB1dFt0eXBlPXJhbmdlXTpob3Zlcjo6LW1vei1yYW5nZS10aHVtYiB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xMjUpO1xufVxuLnBseXItLWZ1bGwtdWkucGx5ci0tdmlkZW8gaW5wdXRbdHlwZT1yYW5nZV06Zm9jdXMtdmlzaWJsZSwgLnBseXItLWZ1bGwtdWkucGx5ci0tdmlkZW8gaW5wdXRbdHlwZT1yYW5nZV0ucGx5cl9fdGFiLWZvY3VzIHtcbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjZmZmZmZmO1xuICAtLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiAwO1xuICAtLWZvY3VzLW91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICAtLWZvY3VzLW91dGxpbmUtd2lkdGg6IDJweDtcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9jdXMtb3V0bGluZS1jb2xvciwgIzE2MTcxOCk7XG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1mb2N1cy1vdXRsaW5lLW9mZnNldCwgMXB4KTtcbiAgb3V0bGluZS1zdHlsZTogdmFyKC0tZm9jdXMtb3V0bGluZS1zdHlsZSwgc29saWQpO1xuICBvdXRsaW5lLXdpZHRoOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXdpZHRoLCAycHgpO1xufVxuLnBseXItLWZ1bGwtdWkucGx5ci0tdmlkZW8gaW5wdXRbdHlwZT1yYW5nZV06Zm9jdXMtdmlzaWJsZTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2ssIC5wbHlyLS1mdWxsLXVpLnBseXItLXZpZGVvIGlucHV0W3R5cGU9cmFuZ2VdLnBseXJfX3RhYi1mb2N1czo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICBvdXRsaW5lOiAwOyAvKiBbMjFdICovXG59XG4ucGx5ci0tZnVsbC11aS5wbHlyLS12aWRlbyBpbnB1dFt0eXBlPXJhbmdlXTpmb2N1cy12aXNpYmxlOjotbW96LXJhbmdlLXRyYWNrLCAucGx5ci0tZnVsbC11aS5wbHlyLS12aWRlbyBpbnB1dFt0eXBlPXJhbmdlXS5wbHlyX190YWItZm9jdXM6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICBvdXRsaW5lOiAwOyAvKiBbMjFdICovXG59XG4ucGx5ci0tZnVsbC11aS5wbHlyLS12aWRlbyBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIGN1cnJlbnRDb2xvciB2YXIoLS12YWx1ZSwgMCUpLCB0cmFuc3BhcmVudCB2YXIoLS12YWx1ZSwgMCUpKTsgLyogWzIzXSAqL1xufVxuXG4ucGx5ciAucGx5cl9fdm9sdW1lIHsgLyogWzExXSAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWdyb3c6IDA7XG4gIGZsZXgtc2hyaW5rOiAxO1xuICBmbGV4LWJhc2lzOiBhdXRvO1xuICBtaW4td2lkdGg6IDEwMHB4O1xuICBtYXgtd2lkdGg6IDE1MHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5wbHlyIC5wbHlyX192b2x1bWUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5wbHlyIC5wbHlyX192b2x1bWUucGx5cl9fY29udHJvbHNfX2l0ZW0geyAvKiBbMTZdICovXG4gIHBhZGRpbmctcmlnaHQ6IDA7IC8qIFsxNV0gKi9cbn1cbi5wbHlyIC5wbHlyX192b2x1bWU6aG92ZXIgaW5wdXRbdHlwZT1yYW5nZV0sIC5wbHlyIC5wbHlyX192b2x1bWU6Zm9jdXMtd2l0aGluIGlucHV0W3R5cGU9cmFuZ2VdIHtcbiAgb3BhY2l0eTogMTsgLyogWzE0XSAqL1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlOyAvKiBbMTRdICovXG59XG5cbi8qIHN0eWxlbGludC1lbmFibGUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4ucGx5ciBbZGF0YS1wbHlyPW11dGVdIHsgLyogWzExXSAqL1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cblxuLnBseXI6bm90KC5wbHlyLS1jYXB0aW9ucy1lbmFibGVkKSBbZGF0YS1wbHlyPWNhcHRpb25zXSB7XG4gIGRpc3BsYXk6IG5vbmU7IC8qIFsxMV0gKi9cbn1cblxuLnBseXItLWNhcHRpb25zLWVuYWJsZWQgW2RhdGEtcGx5cj1jYXB0aW9uc10sXG4ucGx5ci0tcGlwLXN1cHBvcnRlZCBbZGF0YS1wbHlyPXBpcF0sXG4ucGx5ci0tYWlycGxheS1zdXBwb3J0ZWQgW2RhdGEtcGx5cj1haXJwbGF5XSxcbi5wbHlyLS1mdWxsc2NyZWVuLWVuYWJsZWQgW2RhdGEtcGx5cj1mdWxsc2NyZWVuXSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjUExZUi1PVkVSUklERVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gRGlzYWJsZSBkZWZhdWx0IG91dGxpbmUuXG4gKiBbMl0gQXBwbHkgY3VzdG9tIG91dGxpbmUgdG8gdGh1bWIuXG4gKiBbM10gUmVkdWNlIHNwZWNpZmljaXR5IHRvIHJlc3BlY3QgdmlzaWJpbGl0eSBzZXR0aW5ncyBmb3IgY2VydGFpbiBjb250cm9sc1xuICogICAgIChlLmcuIGNhcHRpb24pLlxuICogWzRdIFJlbW92ZSBmaXhlZCBoZWlnaHQuIFNldCBpdCBoZXJlIGluc3RlYWQgb2YgbW9kdWxlIHZhcmlhYmxlIGFzIGl0IGlzXG4gKiAgICAgdXNlZCBmb3IgbXVsdGlwbGUgY2FsY3VsYXRpb25zLlxuICovXG4ucGx5ci0tdmlkZW8ge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb3JkZXIvb3JkZXIgKi9cbn1cbi5wbHlyLS12aWRlbzo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMjAwcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMCwgMCwgMCwgMC4zNSksIHRyYW5zcGFyZW50KTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnBseXItLXZpZGVvOjphZnRlciB7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgfVxufVxuLnBseXItLXZpZGVvOmhvdmVyOjphZnRlciB7XG4gIG9wYWNpdHk6IDE7XG59XG4ucGx5ci0tdmlkZW8gLnBseXJfX2NvbnRyb2xzIHtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGhlaWdodDogYXV0bzsgLyogWzRdICovXG4gIHBhZGRpbmctdG9wOiAxNnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbn1cbi5wbHlyLS12aWRlbyA6d2hlcmUoLnBseXJfX2NvbnRyb2wpIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7IC8qIFszXSAqL1xufVxuLnBseXItLXZpZGVvIC5wbHlyX19jb250cm9sOm5vdCgucGx5cl9fY29udHJvbC0tb3ZlcmxhaWQpIHtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbn1cbi5wbHlyLS12aWRlbyAucGx5cl9fY29udHJvbDpub3QoLnBseXJfX2NvbnRyb2wtLW92ZXJsYWlkKTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQzLCAyNDMsIDI0MywgMC4xMik7XG59XG4ucGx5ci0tdmlkZW8gLnBseXJfX2NvbnRyb2w6YWN0aXZlIHtcbiAgc2NhbGU6IDAuOTU7XG59XG4ucGx5ci0tdmlkZW8gLnBseXJfX2NvbnRyb2xzX19pdGVtLnBseXJfX3Byb2dyZXNzX19jb250YWluZXIge1xuICBmbGV4LWJhc2lzOiAxMDAlO1xuICBvcmRlcjogNTA7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cbi5wbHlyLS12aWRlbyAucGx5cl9fY29udHJvbC0tb3ZlcmxhaWQge1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCA4cHggcmdiYSgwLCAwLCAwLCAwLjM1KSk7XG59XG4ucGx5ci0tdmlkZW8gLnBseXJfX3RpbWUge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnBseXItLXZpZGVvIC5wbHlyX19jb250cm9scyB7XG4gICAgcGFkZGluZzogOHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgLnBseXItLXZpZGVvIC5wbHlyX19jb250cm9sc19faXRlbS5wbHlyX19wcm9ncmVzc19fY29udGFpbmVyIHtcbiAgICBvcmRlcjogLTUwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgfVxuICAucGx5ci0tdmlkZW8gLnBseXJfX2NvbnRyb2xzX19pdGVtW2RhdGEtcGx5cj1wbGF5XSB7XG4gICAgb3JkZXI6IC0zMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbiAgLnBseXItLXZpZGVvIC5wbHlyX19jb250cm9sc19faXRlbS5wbHlyX192b2x1bWUge1xuICAgIG9yZGVyOiAtMzA7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAucGx5ci0tdmlkZW8gLnBseXJfX2NvbnRyb2xzX19pdGVtW2RhdGEtcGx5cj1wbGF5XSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAucGx5ci0tdmlkZW8gLnBseXJfX3RpbWUge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxufVxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbi5wbHlyLS1mdWxsLXVpLnBseXItLXZpZGVvIGlucHV0W3R5cGU9cmFuZ2VdOmZvY3VzLXZpc2libGUsIC5wbHlyLS1mdWxsLXVpLnBseXItLXZpZGVvIGlucHV0W3R5cGU9cmFuZ2VdLnBseXJfX3RhYi1mb2N1cywgLnBseXItLWZ1bGwtdWkucGx5ci0tdmlkZW8gaW5wdXRbdHlwZT1yYW5nZV06YWN0aXZlIHtcbiAgb3V0bGluZTogMDsgLyogWzFdICovXG59XG4ucGx5ci0tZnVsbC11aS5wbHlyLS12aWRlbyBpbnB1dFt0eXBlPXJhbmdlXTpmb2N1cy12aXNpYmxlOjotd2Via2l0LXNsaWRlci10aHVtYiwgLnBseXItLWZ1bGwtdWkucGx5ci0tdmlkZW8gaW5wdXRbdHlwZT1yYW5nZV0ucGx5cl9fdGFiLWZvY3VzOjotd2Via2l0LXNsaWRlci10aHVtYiwgLnBseXItLWZ1bGwtdWkucGx5ci0tdmlkZW8gaW5wdXRbdHlwZT1yYW5nZV06YWN0aXZlOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gIC0tZm9jdXMtb3V0bGluZS1jb2xvcjogI2ZmZmZmZjtcbiAgLS1mb2N1cy1vdXRsaW5lLW9mZnNldDogNHB4O1xuICAtLWZvY3VzLW91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICAtLWZvY3VzLW91dGxpbmUtd2lkdGg6IDJweDtcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9jdXMtb3V0bGluZS1jb2xvciwgIzE2MTcxOCk7XG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1mb2N1cy1vdXRsaW5lLW9mZnNldCwgMXB4KTtcbiAgb3V0bGluZS1zdHlsZTogdmFyKC0tZm9jdXMtb3V0bGluZS1zdHlsZSwgc29saWQpO1xuICBvdXRsaW5lLXdpZHRoOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXdpZHRoLCAycHgpO1xufVxuLnBseXItLWZ1bGwtdWkucGx5ci0tdmlkZW8gaW5wdXRbdHlwZT1yYW5nZV06Zm9jdXMtdmlzaWJsZTo6LW1vei1yYW5nZS10aHVtYiwgLnBseXItLWZ1bGwtdWkucGx5ci0tdmlkZW8gaW5wdXRbdHlwZT1yYW5nZV0ucGx5cl9fdGFiLWZvY3VzOjotbW96LXJhbmdlLXRodW1iLCAucGx5ci0tZnVsbC11aS5wbHlyLS12aWRlbyBpbnB1dFt0eXBlPXJhbmdlXTphY3RpdmU6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICNmZmZmZmY7XG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDRweDtcbiAgLS1mb2N1cy1vdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgLS1mb2N1cy1vdXRsaW5lLXdpZHRoOiAycHg7XG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWZvY3VzLW91dGxpbmUtY29sb3IsICMxNjE3MTgpO1xuICBvdXRsaW5lLW9mZnNldDogdmFyKC0tZm9jdXMtb3V0bGluZS1vZmZzZXQsIDFweCk7XG4gIG91dGxpbmUtc3R5bGU6IHZhcigtLWZvY3VzLW91dGxpbmUtc3R5bGUsIHNvbGlkKTtcbiAgb3V0bGluZS13aWR0aDogdmFyKC0tZm9jdXMtb3V0bGluZS13aWR0aCwgMnB4KTtcbn1cblxuLyogc3R5bGVsaW50LWVuYWJsZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbi5wbHlyLS1mdWxsLXVpIGlucHV0W2RhdGEtcGx5cj12b2x1bWVdW3R5cGU9cmFuZ2VdIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4ucGx5ci0tZnVsbC11aSBpbnB1dFtkYXRhLXBseXI9dm9sdW1lXVt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuLnBseXItLWZ1bGwtdWkgaW5wdXRbZGF0YS1wbHlyPXZvbHVtZV1bdHlwZT1yYW5nZV06Oi1tb3otcmFuZ2UtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuLnBseXItLWZ1bGwtdWkgaW5wdXRbZGF0YS1wbHlyPXZvbHVtZV1bdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDMsIDI0MywgMjQzLCAwLjE4KTtcbn1cbi5wbHlyLS1mdWxsLXVpIGlucHV0W2RhdGEtcGx5cj12b2x1bWVdW3R5cGU9cmFuZ2VdOjotbW96LXJhbmdlLXRyYWNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDMsIDI0MywgMjQzLCAwLjE4KTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZBVi1CVVRUT05cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gUmVzZXQgdGhlIGJyb3dzZXIgYnV0dG9uIHN0eWxlcy5cbiAqIFsyXSBBbGlnbiBzdHlsZXMgdG8gdGhlIEJ1dHRvbiBMaW5r4oCZcyBpbXBsZW1lbnRhdGlvbi5cbiAqIFszXSBIYW5kbGVzIHRoZSBwcmVzc2VkIHN0YXRlLlxuICogWzRdIEluaGVyaXQgdGhlIHRyYW5zaXRpb25zIGxpa2UgaW4gdGhlIEJ1dHRvbiBMaW5rIGltcGxlbWVudGF0aW9uLlxuICogWzVdIFZpc3VhbGx5IGhpZGUgdGhlIGxhYmVsIGZvciBgLmMtZmF2LWJ1dHRvbi0taWNvbi1vbmx5YCB2YXJpYW50IHRvIGltcHJvdmUgYTExeS5cbiAqL1xuLmMtZmF2LWJ1dHRvbiB7XG4gIC0tZmF2LWJ1dHRvbi1jb2xvcjogIzE2MTcxODtcbiAgLS1mYXYtYnV0dG9uLWljb24tbmFtZTogXCJcXGYxOTJcIjtcbiAgLS1mYXYtYnV0dG9uLWl0ZW0tc3BhY2luZzogOHB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiBbMV0gKi9cbiAgZm9udC1zaXplOiAxcmVtO1xuICAvKiBbMl0gKi9cbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIC8qIFsyXSAqL1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgLyogWzJdICovXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIFsyXSAqL1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyAvKiBbMl0gKi9cbiAgY29sdW1uLWdhcDogdmFyKC0tZmF2LWJ1dHRvbi1pdGVtLXNwYWNpbmcpOyAvKiBbMl0gKi9cbiAgbGluZS1oZWlnaHQ6IDE7IC8qIFsyXSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDsgLyogWzJdICovXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZDogUmVtb3ZlIGBbYXJpYS1wcmVzc2VkPVwidHJ1ZVwiXWAgaW4gdjE1LlxuICAgKi9cbn1cbi5jLWZhdi1idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuLmMtZmF2LWJ1dHRvbiBbYXJpYS1wcmVzc2VkPXRydWVdLCAuYy1mYXYtYnV0dG9uLmlzLWFjdGl2ZSB7XG4gIC0tZmF2LWJ1dHRvbi1pY29uLW5hbWU6IFwiXFxmMTkxXCI7IC8qIFszXSAqL1xuICAtLWZhdi1idXR0b24tY29sb3I6ICMxNjE3MTg7IC8qIFszXSAqL1xufVxuLmMtZmF2LWJ1dHRvbi5jLWZhdi1idXR0b24tLXJldmVyc2VkIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5jLWZhdi1idXR0b246aG92ZXIge1xuICAtLWZhdi1idXR0b24tY29sb3I6ICM0MTk0Njg7XG59XG4uYy1mYXYtYnV0dG9uOmZvY3VzLCAuYy1mYXYtYnV0dG9uOmFjdGl2ZSB7XG4gIC0tZmF2LWJ1dHRvbi1jb2xvcjogIzE2MTcxODtcbn1cbi5jLWZhdi1idXR0b25bZGlzYWJsZWRdIHtcbiAgLS1mYXYtYnV0dG9uLWNvbG9yOiAjYzRjNmM3O1xufVxuXG4uYy1mYXYtYnV0dG9uX19sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gIGNvbG9yOiB2YXIoLS1mYXYtYnV0dG9uLWNvbG9yKTtcbiAgdHJhbnNpdGlvbjogaW5oZXJpdDsgLyogWzRdICovXG59XG4uYy1mYXYtYnV0dG9uLS1pY29uLW9ubHkgLmMtZmF2LWJ1dHRvbl9fbGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBpdGNzcy9uby1hdC1pbXBvcnRhbnQgKi9cbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbiAgLyogWzVdICovXG59XG5cbi5jLWZhdi1idXR0b25fX2xhYmVsLS1vbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZDogUmVtb3ZlIGBbYXJpYS1wcmVzc2VkPVwidHJ1ZVwiXSAmYCBpbiB2MTUuXG4gICAqL1xufVxuW2FyaWEtcHJlc3NlZD10cnVlXSAuYy1mYXYtYnV0dG9uX19sYWJlbC0tb24sIC5jLWZhdi1idXR0b24uaXMtYWN0aXZlIC5jLWZhdi1idXR0b25fX2xhYmVsLS1vbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uYy1mYXYtYnV0dG9uX19sYWJlbC0tb2ZmIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZDogUmVtb3ZlIGBbYXJpYS1wcmVzc2VkPVwidHJ1ZVwiXSAmYCBpbiB2MTUuXG4gICAqL1xufVxuW2FyaWEtcHJlc3NlZD10cnVlXSAuYy1mYXYtYnV0dG9uX19sYWJlbC0tb2ZmLCAuYy1mYXYtYnV0dG9uLmlzLWFjdGl2ZSAuYy1mYXYtYnV0dG9uX19sYWJlbC0tb2ZmIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmMtZmF2LWJ1dHRvbl9faWNvbiB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgY29sb3I6IHZhcigtLWZhdi1idXR0b24tY29sb3IpO1xuICB0cmFuc2l0aW9uOiBpbmhlcml0OyAvKiBbNF0gKi9cbn1cbi5jLWZhdi1idXR0b25fX2ljb246OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiYnJvbnNvbi1za29kYVwiICFpbXBvcnRhbnQ7IC8qIFsxXSAqL1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBjb250ZW50OiB2YXIoLS1mYXYtYnV0dG9uLWljb24tbmFtZSk7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZBVi1CVVRUT05cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmMtZmF2LWJ1dHRvbjpmb2N1cy12aXNpYmxlIHtcbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjMTYxNzE4O1xuICAtLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiA4cHg7XG4gIC0tZm9jdXMtb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIC0tZm9jdXMtb3V0bGluZS13aWR0aDogMnB4O1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb2N1cy1vdXRsaW5lLWNvbG9yLCAjMTYxNzE4KTtcbiAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWZvY3VzLW91dGxpbmUtb2Zmc2V0LCAxcHgpO1xuICBvdXRsaW5lLXN0eWxlOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXN0eWxlLCBzb2xpZCk7XG4gIG91dGxpbmUtd2lkdGg6IHZhcigtLWZvY3VzLW91dGxpbmUtd2lkdGgsIDJweCk7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNCTE9DS1FVT1RFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jLWJsb2NrcXVvdGUge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYy1ibG9ja3F1b3RlX190ZXh0IHtcbiAgZm9udC1zaXplOiAxLjc1cmVtO1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbiAgLyoqXG4gICAqIFsxXSBDaGVjayBpZiBhIHRoZW1lIGlzIHNldCBvciBpZiB0aGUgZGVmYXVsdCB0aGVtZSAobnVsbCkgaXMgdXNlZC5cbiAgICogICAgIElmIHRoZSBgZGVmYXVsdGAgdGhlbWUgaXMgdXNlZCB3ZSBleGVjdXRlIHRoZSBhbHJlYWR5IHByZXNlbnQgbG9naWMsXG4gICAqICAgICBlbHNlIHdlIGp1c3QgcmV0dXJuIHRoZSBjb250ZW50IHVud3JhcHBlZC5cbiAgICovXG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgLmMtYmxvY2txdW90ZV9fdGV4dCB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIC5jLWJsb2NrcXVvdGVfX3RleHQge1xuICAgIGZvbnQtc2l6ZTogMi4yNXJlbTtcbiAgfVxufVxuLyogWzFdICovXG4vKiBbMV0gKi9cbi5jLWJsb2NrcXVvdGVfX2Zvb3RlciB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIC8qKlxuICAgKiBbMV0gQ2hlY2sgaWYgYSB0aGVtZSBpcyBzZXQgb3IgaWYgdGhlIGRlZmF1bHQgdGhlbWUgKG51bGwpIGlzIHVzZWQuXG4gICAqICAgICBJZiB0aGUgYGRlZmF1bHRgIHRoZW1lIGlzIHVzZWQgd2UgZXhlY3V0ZSB0aGUgYWxyZWFkeSBwcmVzZW50IGxvZ2ljLFxuICAgKiAgICAgZWxzZSB3ZSBqdXN0IHJldHVybiB0aGUgY29udGVudCB1bndyYXBwZWQuXG4gICAqL1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi8qIFsxXSAqL1xuLyogWzFdICovXG4uYy1ibG9ja3F1b3RlX19jaXRlIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjRkxPQVRJTkctQlVUVE9OIChTZXR0aW5ncylcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZMT0FUSU5HLUJVVFRPTlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBBbGxvdyBjbGljay10aHJvdWdoIGV2ZW50cyBpZiBjbGljay10YXJnZXRzIGFyZSBiZWhpbmQgdGhlIHN0aWNreVxuICogICAgIGJhY2stdG8tdG9wIGNvbnRhaW5lci5cbiAqIFsyXSBSZXNldCBkZWZhdWx0IGJ1dHRvbiBwYWRkaW5nIHRvIHByZXZlbnQgaXNzdWVzIHdpdGggc2l6ZS5cbiAqIFszXSBFbnN1cmUgY29ycmVjdCBwb3NpdGlvbmluZywgaW5kZXBlbmRlbnQgb2YgcGFyZW50J3Mgc3BhY2luZ3MgZXRjLlxuICovXG4uYy1mbG9hdGluZy1idXR0b24ge1xuICAtLWZsb2F0LWdyaWQtYXJlYTogYm90dG9tLXJpZ2h0O1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuLmMtZmxvYXRpbmctYnV0dG9uID4gKiB7XG4gIC0tZmxvYXQtZ3JpZC1hcmVhOiBmYWxzZTtcbn1cblxuLmMtZmxvYXRpbmctYnV0dG9uX19idXR0b24ge1xuICB3aWR0aDogNDRweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBwYWRkaW5nOiAwOyAvKiBbMl0gKi9cbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBwb2ludGVyLWV2ZW50czogYXV0bzsgLyogWzFdICovXG59XG4uYy1mbG9hdGluZy1idXR0b25fX2J1dHRvbjpkaXNhYmxlZCwgLmMtZmxvYXRpbmctYnV0dG9uX19idXR0b25bZGlzYWJsZWRdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWJhY2tncm91bmQpO1xufVxuXG4uYy1mbG9hdGluZy1idXR0b25fX2ljb24ge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4uYy1mbG9hdGluZy1idXR0b25fX2xhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgaXRjc3Mvbm8tYXQtaW1wb3J0YW50ICovXG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjRkxPQVRJTkctQkFSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIEZMSVAgdGhlIHRyYW5zZm9ybSB0byBob2lzdCBlbGVtZW50IGluIHRoZSB0cmFuc2Zvcm0gY29udGV4dCB0byBvcHRpbWlzZSB0cmFuc2l0aW9uLiBodHRwczovL2Flcm90d2lzdC5jb20vYmxvZy9mbGlwLXlvdXItYW5pbWF0aW9ucy9cbiAqIFsyXSBEaXNhYmxlIHBvdGVudGlhbCBsaW5rcyBzdHlsZXMuXG4gKiBbM10gRGlzcGxheSB0aGUgYWN0aW9uIGljb24gaGVyZSBmbHVzaC1yaWdodCBhbGlnbmVkIHdpdGggdGhlIHBhZ2Utd3JhcC5cbiAqL1xuLmMtZmxvYXRpbmctYmFyIHtcbiAgcGFkZGluZy10b3A6IDE2cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxNnB4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDE4MDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpOyAvKiBbMV0gKi9cbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogWzJdICovXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgLyogWzJdICovXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgZWFzZS1pbi1vdXQsIHRyYW5zZm9ybSAzMDBtcyBlYXNlLWluLW91dDtcbiAgb3BhY2l0eTogMDtcbiAgYm94LXNoYWRvdzogMCAwIDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtZmxvYXRpbmctYmFyIHtcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gIH1cbn1cbi5jLWZsb2F0aW5nLWJhci5oYXMtdGFyZ2V0LW91dHNpZGUtdmlldy5oYXMtdGFyZ2V0LWxlYXZlLWFib3ZlLXZpZXcge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IC8qIFsxXSAqL1xuICBvcGFjaXR5OiAxO1xufVxuXG4uYy1mbG9hdGluZy1iYXJfX2lubmVyIHtcbiAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDE5MnB4KTtcbiAgcGFkZGluZy1sZWZ0OiA5NnB4O1xuICBwYWRkaW5nLXJpZ2h0OiA5NnB4O1xuICAtLXBhZ2Utd3JhcDogOTZweDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLWZsb2F0aW5nLWJhcl9faW5uZXIge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyA5NnB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG4gICAgcGFkZGluZy1yaWdodDogNDhweDtcbiAgICAtLXBhZ2Utd3JhcDogNDhweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLWZsb2F0aW5nLWJhcl9faW5uZXIge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyA0OHB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgICAtLXBhZ2Utd3JhcDogMjRweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLWZsb2F0aW5nLWJhcl9faW5uZXIge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyAyNHB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgcGFkZGluZy1yaWdodDogMTJweDtcbiAgICAtLXBhZ2Utd3JhcDogMTJweDtcbiAgfVxufVxuLmMtZmxvYXRpbmctYmFyX19pbm5lcjo6YWZ0ZXIgeyAvKiBbM10gKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJicm9uc29uLXNrb2RhXCIgIWltcG9ydGFudDsgLyogWzFdICovXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZsZXgtYmFzaXM6IDQwcHg7XG4gIGZvbnQtc2l6ZTogNDBweDtcbiAgbWFyZ2luLWxlZnQ6IDMycHg7XG4gIGNvbnRlbnQ6IFwiXFxmMTU2XCI7XG4gIGNvbG9yOiAjNDE5NDY4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLWZsb2F0aW5nLWJhcl9faW5uZXI6OmFmdGVyIHtcbiAgICBmbGV4LWJhc2lzOiAzMnB4O1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjRVhQQU5EQUJMRS1DT05URU5UXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgbnVtYmVyLW5vLXRyYWlsaW5nLXplcm9zICovXG4vKipcbiAqIFsxXSAgVXNlIHBzZXVkbyBlbGVtZW50IGZvciBjb2xsYXBzaWJsZSBiYWNrZ3JvdW5kIHNvIGl0IGNhbiBiZSBhbmltYXRlZFxuICogICAgICAoYWxzbyBzZWUgWzE1XSkuXG4gKiBbMl0gIERlZmF1bHQgYmFja2dyb3VuZC1jb2xvciB3aGVuIHRoZSBiYWNrZ3JvdW5kIHNlY3Rpb24gY29udGFpbmVyIGlzIHdoaXRlLlxuICogWzNdICBNYWtlIHN1cmUgdG8ganVzdCByZXZlYWwgdGhlIGRpZmZlcmluZyBiYWNrZ3JvdW5kLWNvbG9yIHdoZW4gdGhlIGV4dHJhLVxuICogICAgICBjb250ZW50IGlzIHZpc2libGUuIFVuZm9ydHVuYXRlbHksIGAhaW1wb3J0YW50YCBpcyBuZWNlc3Nhcnkgc28gdGhhdFxuICogICAgICB0aGUgZGVjbGFyYXRpb24gYWxzbyBhcHBsaWVzLCBpZiB0aGUgZXhwYW5kYWJsZS1jb250ZW50IGNvbXBvbmVudCBhbHNvIGNhcnJpZXNcbiAqICAgICAgdGhlIGBbZGF0YS10aGVtZV1gIGF0dHJpYnV0ZS5cbiAqIFs0XSAgSW5pdGlhbGx5IGhpZGUgdGhlIGVsZW1lbnQgYW5kIHNldCBgZGlzcGxheTogYmxvY2tgIGJ5IEpTIG9uIHBhZ2UtbG9hZCB0b1xuICogICAgICBzaG93IGl0IGFnYWluLiBUaGlzIGVuc3VyZXMgdGhhdCBpbiBjYXNlIEpTIGlzbid0IGV4ZWN1dGVkIGZvciB3aGF0ZXZlclxuICogICAgICByZWFzb24sIHRoZSB0cmlnZ2VyIGlzIG5vdCBzaG93biAoYmVjYXVzZSBhIHRyaWdnZXIgdHJpZ2dlcnMgbm90aGluZyxcbiAqICAgICAgd2hlbiBpdCdzIGxhY2tpbmcgdGhlIG5lY2Vzc2FyeSBKUy1mdW5jdGlvbikuXG4gKiBbNV0gIFVzZSBgZ3JpZC10ZW1wbGF0ZS1yb3dzYCB0byB0cmFuc2l0aW9uIHRoZSBoZWlnaHQuXG4gKiAgICAgIE5vIG1vcmUgY2hvcHB5IGBtYXgtaGVpZ2h0YCB0cmFuc2l0aW9uLiAoc2VlIGh0dHBzOi8vd3d3LnN0ZWZhbmp1ZGlzLmNvbS9zbmlwcGV0cy9ob3ctdG8tYW5pbWF0ZS1oZWlnaHQtd2l0aC1jc3MtZ3JpZC8pXG4gKiBbNl0gIFB1bGxpbmcgdGhlIHRleHQgdXAgYWJvdmUgdGhlIGljb24uIFRoZSBhbW91bnQgY29tcHJpc2VzIG9mIHRoZSB0ZXh0LVxuICogICAgICBzaXplIHBsdXMgc3BhY2luZyBiZXR3ZWVuIHRoZSB0ZXh0IGFuZCB0aGUgaWNvblxuICogICAgICAoJGV4cGFuZGFibGUtY29udGVudC10cmlnZ2VyLXRleHQtaWNvbi1nYXApLlxuICogWzddICBNYWtlIHN1cmUgdGhlIGxpbmUtaGVpZ2h0IGVxdWFscyB0aGUgZm9udC1zaXplIHNvIHRoZSBtYXRoIGlzIGNvcnJlY3QuXG4gKiAgICAgIFRoaXMgd2lsbCBldmVyIG9ubHkgd29yaywgaWYgdGhlIHRyaWdnZXIgdGV4dCBpcyBhIG9uZS1saW5lciFcbiAqIFs4XSAgSW4gY2FzZSB0aGUgdHJpZ2dlciB0ZXh0IGlzIGV4Y2VlZGluZ2x5IGxvbmcsIHRoaXMgZW5zdXJlcyB0aGUgdGV4dFxuICogICAgICB3aWxsIG5ldmVyIHdyYXAuLi5cbiAqIFs5XSAgLi4uYW5kIHByZXZlbnQgaG9yaXpvbnRhbCBzY3JvbGxiYXIuLi5cbiAqIFsxMF0gLi4uYW5kIGluc3RlYWQganVzdCBzaG93IGFuIGVsbGlwc2lzLlxuICogWzExXSBBbHNvIGhpZGUgdGhlIG92ZXJmbG93IG9uIHRoZSB5LWF4aXMsIGJlY2F1c2UgSUUtaXNzdWVzLlxuICogWzEyXSBBbmltYXRlIHRoZSBpY29uIHdoZW4gdHJpZ2dlcmluZyB0aGUgZXhwYW5kYWJsZS1jb250ZW50LlxuICogWzEzXSBNYWtlIHRoZSBpY29uIGJveCByb3VuZC5cbiAqIFsxNF0gV2UgaGF2ZSB0byB1c2UgcHNldWRvIGVsZW1lbnRzIGZvciBwYWRkaW5ncyBoZXJlLiBPdGhlcndpc2UgaXQgd291bGQgbm90XG4gKiAgICAgIGNvbXBsZXRlbHkgaGlkZSB0aGUgY29udGVudCBpbiBjb2xsYXBzZWQgc3RhdGUgYmVjYXVzZSBpdOKAmXMgYSBncmlkIGl0ZW0uXG4gKiAgICAgIFNlZSBbNV0uXG4gKiBbMTVdIFRoZSBhbmltYXRpb24gb2YgdGhlIHBzZXVkbyBlbGVtZW50IG5lZWRzIHRvIGhhdmUgYSBzaG9ydGVyIGR1cmF0aW9uXG4gKiAgICAgIHRoYW4gdGhlIGV4cGFuZGFibGUtY29udGVudCBpdHNlbGYuIEp1c3QgZGl2aWRpbmcgaXQgYnkgdHdvIG1ha2VzIHN1cmUgaXRcbiAqICAgICAgYWx3YXlzIGlzIHdpdGhvdXQgY3JlYXRpbmcgYW4gZXh0cmEgdmFyaWFibGUuXG4gKiBbMTZdIFRoZSBhbmltYXRpb24gb2YgdGhlIHRyaWdnZXIgdGV4dCBzaG91bGQgYmUgc2VxdWVudGlhbGx5IGJlZm9yZSB0aGVcbiAqICAgICAgYW5pbWF0aW9uIG9mIHRoZSBleHBhbmRhYmxlLWNvbnRlbnQgaXRzZWxmLiBEaXZpZGluZyBpdCBieSB0d28gd2l0aCB0aGVcbiAqICAgICAgZGVmYXVsdCB0cmFuc2l0aW9uIGR1cmF0aW9uIHByZXZlbnRzIHVzIGZyb20gY3JlYXRpbmcgYSBzZXBhcmF0ZVxuICogICAgICB2YXJpYWJsZS5cbiAqIFsxN10gVGhlIHNwZWNpZmljaXR5IG5lZWRzIHRvIGJlIHJhaXNlZCB0byB0cnVtcCB0aGUgc2VsZWN0b3IgbWFraW5nIHRoZVxuICogICAgICBlbGVtZW50IHZpc2libGUgYWZ0ZXIgdGhlIEphdmFTY3JpcHQgd2FzIGxvYWRlZC5cbiAqIFsxOF0gRGlzYWJsZSAoYW4gcmUtZXN0YWJsaXNoKSBwb2ludGVyLWV2ZW50cyBpZiB0cmlnZ2VyIGJ1dHRvbiBpcyBpbnZpc2libGUuXG4gKiBbMTldIFdlIG5lZWQgdG8gc2V0IHRoZSBoZWlnaHQgb2YgdGhlIHRyaWdnZXIgYnV0dG9uIGluIG9yZGVyIHRvIGFkZCBhIGhlaWdodFxuICogICAgICBhbmltYXRpb24gdG8gaXQuIFRoZSBoZWlnaHQgaXMgYSBjb21iaW5hdGlvbiBvZiBmb250LXNpemUgKHdoaWNoIGlzIGFcbiAqICAgICAgcmVzcG9uc2l2ZSBtYXApLCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSBnYXAgYmV0d2VlbiBpY29uIGFuZCB0ZXh0LlxuICovXG4uYy1leHBhbmRhYmxlLWNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIHRvcDogMDtcbiAgbWFyZ2luLXRvcDogMzJweDtcbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcbn1cbi5jLWV4cGFuZGFibGUtY29udGVudDo6YmVmb3JlIHsgLyogWzFdICovXG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogLTE7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7IC8qIFsyXSAqL1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi8qIFsxXSAqL1xuW2RhdGEtdGhlbWU9YWx0ZXJuYXRpdmVdIC5jLWV4cGFuZGFibGUtY29udGVudDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLmMtZXhwYW5kYWJsZS1jb250ZW50LmpzLWlzLXJlYWR5IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgNjUwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIC8qIFsxNV0gKi9cbn1cbi5jLWV4cGFuZGFibGUtY29udGVudC5qcy1pcy1yZWFkeTo6YmVmb3JlIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzI1bXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG59XG4uYy1leHBhbmRhYmxlLWNvbnRlbnQuYy1leHBhbmRhYmxlLWNvbnRlbnQtLW5vLWJhY2tncm91bmQ6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmMtZXhwYW5kYWJsZS1jb250ZW50LmlzLWNsb3NlZC13aXRoaW4ge1xuICB0b3A6IDk1cHg7XG59XG4uYy1leHBhbmRhYmxlLWNvbnRlbnQuaXMtY2xvc2VkLXdpdGhpbi5qcy1pcy1yZWFkeSB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDY1MG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xufVxuLmMtZXhwYW5kYWJsZS1jb250ZW50LmlzLWNsb3NlZC13aXRoaW46OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IC8qIFszXSAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGl0Y3NzL25vLWF0LWltcG9ydGFudCAqL1xufVxuXG4uYy1leHBhbmRhYmxlLWNvbnRlbnRfX3RyaWdnZXIge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBkaXNwbGF5OiBub25lOyAvKiBbNF0gKi9cbiAgd2lkdGg6IDEwMCU7XG59XG4uYy1leHBhbmRhYmxlLWNvbnRlbnRfX3RyaWdnZXI6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuLmMtZXhwYW5kYWJsZS1jb250ZW50LmpzLWlzLXJlYWR5IC5jLWV4cGFuZGFibGUtY29udGVudF9fdHJpZ2dlciB7XG4gIGRpc3BsYXk6IGJsb2NrOyAvKiBbNF0gKi9cbn1cblxuLmMtZXhwYW5kYWJsZS1jb250ZW50X190cmlnZ2VyLW9wZW4ge1xuICBoZWlnaHQ6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgb3BhY2l0eTogMDtcbn1cbi5jLWV4cGFuZGFibGUtY29udGVudC5qcy1pcy1yZWFkeSAuYy1leHBhbmRhYmxlLWNvbnRlbnRfX3RyaWdnZXItb3BlbiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDY1MG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xufVxuLmMtZXhwYW5kYWJsZS1jb250ZW50LmlzLWNsb3NlZC13aXRoaW4gLmMtZXhwYW5kYWJsZS1jb250ZW50X190cmlnZ2VyLW9wZW4ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTk1cHgpO1xufVxuLmMtZXhwYW5kYWJsZS1jb250ZW50X190cmlnZ2VyLW9wZW4sXG4uYy1leHBhbmRhYmxlLWNvbnRlbnRfX3RyaWdnZXItb3BlbiA+ICoge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogWzE4XSAqL1xufVxuLmMtZXhwYW5kYWJsZS1jb250ZW50LmlzLWNsb3NlZC13aXRoaW4gLmMtZXhwYW5kYWJsZS1jb250ZW50X190cmlnZ2VyLW9wZW4ge1xuICBoZWlnaHQ6IDU2cHg7XG4gIG9wYWNpdHk6IDE7XG59XG4uYy1leHBhbmRhYmxlLWNvbnRlbnQuaXMtY2xvc2VkLXdpdGhpbiAuYy1leHBhbmRhYmxlLWNvbnRlbnRfX3RyaWdnZXItb3Blbixcbi5jLWV4cGFuZGFibGUtY29udGVudC5pcy1jbG9zZWQtd2l0aGluIC5jLWV4cGFuZGFibGUtY29udGVudF9fdHJpZ2dlci1vcGVuID4gKiB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvOyAvKiBbMThdICovXG59XG5cbi5jLWV4cGFuZGFibGUtY29udGVudF9fdHJpZ2dlci10ZXh0IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLyogWzddICovXG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogWzldICovIC8qIFsxMV0gKi9cbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IC8qIFsxMF0gKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLyogWzhdICovXG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtZXhwYW5kYWJsZS1jb250ZW50X190cmlnZ2VyLXRleHQtb3BlbiB7XG4gIHRvcDogLTI0cHg7IC8qIFs2XSAqL1xuICBvcGFjaXR5OiAwO1xufVxuLmMtZXhwYW5kYWJsZS1jb250ZW50LmpzLWlzLXJlYWR5IC5jLWV4cGFuZGFibGUtY29udGVudF9fdHJpZ2dlci10ZXh0LW9wZW4ge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMjVtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgLyogWzE2XSAqL1xufVxuLmMtZXhwYW5kYWJsZS1jb250ZW50LmlzLWNsb3NlZC13aXRoaW4gLmMtZXhwYW5kYWJsZS1jb250ZW50X190cmlnZ2VyLXRleHQtb3BlbiB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5jLWV4cGFuZGFibGUtY29udGVudF9faWNvbiB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBjb2xvcjogIzE2MTcxODtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmMtZXhwYW5kYWJsZS1jb250ZW50X19pY29uOjpiZWZvcmUge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBhZGRpbmc6IDNweDtcbn1cbi5jLWV4cGFuZGFibGUtY29udGVudF9faWNvbjo6YmVmb3JlIHtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmMtZXhwYW5kYWJsZS1jb250ZW50X19pY29uOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcImJyb25zb24tc2tvZGFcIiAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzI1bXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIGNvbnRlbnQ6IFwiXFxmMTUxXCI7XG4gIC8qIFsxMl0gKi9cbn1cbi5jLWV4cGFuZGFibGUtY29udGVudF9fdHJpZ2dlcjpob3ZlciAuYy1leHBhbmRhYmxlLWNvbnRlbnRfX2ljb246OmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzE2MTcxODtcbn1cblxuLmMtZXhwYW5kYWJsZS1jb250ZW50IC5jLWV4cGFuZGFibGUtY29udGVudF9fY29sbGFwc2Uge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGdyaWQtdGVtcGxhdGUtcm93cztcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCA2NTBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ1NSwgMC4wMywgMC41MTUsIDAuOTU1KTtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIC8qIFs1XSAqL1xuICBkaXNwbGF5OiBncmlkOyAvKiBbNV0gKi9cbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnIgMGZyOyAvKiBbNV0gKi9cbn1cbi5jLWV4cGFuZGFibGUtY29udGVudCAuYy1leHBhbmRhYmxlLWNvbnRlbnRfX2NvbGxhcHNlID4gKiB7XG4gIG92ZXJmbG93OiBoaWRkZW47IC8qIFs1XSAqL1xufVxuLmMtZXhwYW5kYWJsZS1jb250ZW50IC5jLWV4cGFuZGFibGUtY29udGVudF9fY29sbGFwc2VbYXJpYS1oaWRkZW49ZmFsc2VdIHtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnIgbWluLWNvbnRlbnQ7IC8qIFs1XSAqL1xufVxuXG4uYy1leHBhbmRhYmxlLWNvbnRlbnRfX2NvbnRlbnQ6OmJlZm9yZSwgLmMtZXhwYW5kYWJsZS1jb250ZW50X19jb250ZW50OjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IG1pbigyNHB4LCB2YXIoLS1wYWdlLXdyYXApICogMS41KTsgLyogWzE0XSAqL1xufVxuXG4uYy1leHBhbmRhYmxlLWNvbnRlbnRfX3RyaWdnZXItY2xvc2UuYy1leHBhbmRhYmxlLWNvbnRlbnRfX3RyaWdnZXItY2xvc2Uge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIHBhZGRpbmc7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgNjUwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG59XG46bm90KFthcmlhLWhpZGRlbj1mYWxzZV0pID4gLmMtZXhwYW5kYWJsZS1jb250ZW50X190cmlnZ2VyLWNsb3NlLmMtZXhwYW5kYWJsZS1jb250ZW50X190cmlnZ2VyLWNsb3NlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIFsxOF0gKi9cbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xufVxuW2FyaWEtaGlkZGVuPWZhbHNlXSA+IC5jLWV4cGFuZGFibGUtY29udGVudF9fdHJpZ2dlci1jbG9zZS5jLWV4cGFuZGFibGUtY29udGVudF9fdHJpZ2dlci1jbG9zZSB7XG4gIHBhZGRpbmctYm90dG9tOiAxNnB4O1xuICBvcGFjaXR5OiAxO1xufVxuLmMtZXhwYW5kYWJsZS1jb250ZW50X190cmlnZ2VyLWNsb3NlLmMtZXhwYW5kYWJsZS1jb250ZW50X190cmlnZ2VyLWNsb3NlIC5jLWV4cGFuZGFibGUtY29udGVudF9faWNvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTZcIjtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0VYUEFOREFCTEUtQ09OVEVOVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uYy1leHBhbmRhYmxlLWNvbnRlbnQ6OmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogI2U0ZTRlNDtcbn1cbi5jLWV4cGFuZGFibGUtY29udGVudDpub3QoLmlzLWNsb3NlZC13aXRoaW4pOjpiZWZvcmUge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU0O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi5jLWV4cGFuZGFibGUtY29udGVudF9fY29udGVudCA+ICo6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5jLWV4cGFuZGFibGUtY29udGVudF9faWNvbiB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgc2NhbGU6IDE7XG59XG4uYy1leHBhbmRhYmxlLWNvbnRlbnRfX2ljb246OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAtMTtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0cmFuc2l0aW9uOiBpbmhlcml0O1xufVxuLmMtZXhwYW5kYWJsZS1jb250ZW50X190cmlnZ2VyOmhvdmVyIC5jLWV4cGFuZGFibGUtY29udGVudF9faWNvbjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyLCAyMywgMjQsIDAuMDYpO1xufVxuXG4uYy1leHBhbmRhYmxlLWNvbnRlbnRfX3RyaWdnZXI6Zm9jdXMtdmlzaWJsZSAuYy1leHBhbmRhYmxlLWNvbnRlbnRfX2ljb246OmFmdGVyIHtcbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjMTYxNzE4O1xuICAtLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiAwO1xuICAtLWZvY3VzLW91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICAtLWZvY3VzLW91dGxpbmUtd2lkdGg6IDJweDtcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9jdXMtb3V0bGluZS1jb2xvciwgIzE2MTcxOCk7XG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1mb2N1cy1vdXRsaW5lLW9mZnNldCwgMXB4KTtcbiAgb3V0bGluZS1zdHlsZTogdmFyKC0tZm9jdXMtb3V0bGluZS1zdHlsZSwgc29saWQpO1xuICBvdXRsaW5lLXdpZHRoOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXdpZHRoLCAycHgpO1xufVxuXG4uYy1leHBhbmRhYmxlLWNvbnRlbnRfX3RyaWdnZXI6YWN0aXZlIC5jLWV4cGFuZGFibGUtY29udGVudF9faWNvbiB7XG4gIHNjYWxlOiAwLjk1O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjR1VJRElORy1MSU5FXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIEJvcmRlciByYWRpdXMgb2YgdGhlIGxpbmUgY29udGFpbmVyLlxuICogWzJdIEJvcmRlciByYWRpdXMgb2YgdGhlIGxpbmUuXG4qL1xuLmMtZ3VpZGluZy1saW5lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqXG4gKiBbMV0gQ2VudGVyIGljb24gaW5zaWRlIGJ1dHRvbi5cbiAqIFsyXSBPdmVyd3JpdGUgcGx5ciBkZWZhdWx0LlxuICogWzNdIENlbnRlciBwbGF5IGJ1dHRvbiBpY29uLlxuICovXG4uYy1wbGF5LWJ1dHRvbiB7XG4gIC0tcGxheS1idXR0b24taWNvbjogXCJcXGYxNjJcIjtcbiAgLS1wbGF5LWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLS1wbGF5LWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiByZ2JhKDI0MywgMjQzLCAyNDMsIDAuMTgpO1xuICAtLXBsYXktYnV0dG9uLWJvcmRlcjogMnB4IHNvbGlkICNmZmZmZmY7XG4gIC0tcGxheS1idXR0b24taWNvbi1jb2xvcjogI2ZmZmZmZjtcbiAgLS1wbGF5LWJ1dHRvbi1pY29uLWNvbG9yLWhvdmVyOiAjZmZmZmZmO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50OyAvKiBbMV1bMl0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBpdGNzcy9uby1hdC1pbXBvcnRhbnQgKi9cbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogWzFdICovXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKiBbMl0gKi9cbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiB2YXIoLS1wbGF5LWJ1dHRvbi1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBsaW5lLWhlaWdodDogMDsgLyogWzNdICovXG4gIGJhY2tncm91bmQ6IHZhcigtLXBsYXktYnV0dG9uLWJhY2tncm91bmQtY29sb3IpO1xuICBjb2xvcjogdmFyKC0tcGxheS1idXR0b24taWNvbi1jb2xvcik7XG4gIHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluLW91dDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1wbGF5LWJ1dHRvbiB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICB9XG59XG4uYy1wbGF5LWJ1dHRvbjpob3ZlciwgLmMtcGxheS1idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wbGF5LWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyKTtcbiAgY29sb3I6IHZhcigtLXBsYXktYnV0dG9uLWljb24tY29sb3ItaG92ZXIpO1xufVxuXG4uYy1wbGF5LWJ1dHRvbl9faWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiYnJvbnNvbi1za29kYVwiICFpbXBvcnRhbnQ7IC8qIFsxXSAqL1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDMycHg7XG59XG4uYy1wbGF5LWJ1dHRvbl9faWNvbjo6YmVmb3JlIHtcbiAgY29udGVudDogdmFyKC0tcGxheS1idXR0b24taWNvbik7XG59XG5cbi5jLXBsYXktYnV0dG9uX19sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGl0Y3NzL25vLWF0LWltcG9ydGFudCAqL1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xufVxuXG4uYy1wbGF5LWJ1dHRvbiB7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuMzUpKTtcbn1cbi5jLXBsYXktYnV0dG9uOmZvY3VzLXZpc2libGUge1xuICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICNmZmZmZmY7XG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgLS1mb2N1cy1vdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgLS1mb2N1cy1vdXRsaW5lLXdpZHRoOiAycHg7XG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWZvY3VzLW91dGxpbmUtY29sb3IsICMxNjE3MTgpO1xuICBvdXRsaW5lLW9mZnNldDogdmFyKC0tZm9jdXMtb3V0bGluZS1vZmZzZXQsIDFweCk7XG4gIG91dGxpbmUtc3R5bGU6IHZhcigtLWZvY3VzLW91dGxpbmUtc3R5bGUsIHNvbGlkKTtcbiAgb3V0bGluZS13aWR0aDogdmFyKC0tZm9jdXMtb3V0bGluZS13aWR0aCwgMnB4KTtcbn1cbi5jLXBsYXktYnV0dG9uOmFjdGl2ZSB7XG4gIHNjYWxlOiAwLjk1O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTEFCRUxFRC1DT05URU5ULVNFQ1RJT05cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gVXNlIHRoZSBzYW1lIHBhZGRpbmdzIGFzIHRoZSBjb250ZW50IHNlY3Rpb24gb2JqZWN0LlxuICovXG4uYy1sYWJlbGVkLWNvbnRlbnQtc2VjdGlvbiB7XG4gIHBhZGRpbmctdG9wOiAzMnB4OyAvKiBbMV0gKi9cbiAgcGFkZGluZy1ib3R0b206IDMycHg7IC8qIFsxXSAqL1xufVxuXG4uYy1sYWJlbGVkLWNvbnRlbnQtc2VjdGlvbl9fbGFiZWwge1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNDT01QQVJFLUFORC1TRUxFQ1QgKFNldHRpbmdzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQ09NUEFSRS1BTkQtU0VMRUNUXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIE9ubHkgYWRkIHBhZGRpbmcgYW5kIGJvcmRlciB0byB0aGUgdG9wIGlmIHRoaXMgZWxlbWVudCBpcyBub3QgYVxuICogICAgIGRpcmVjdCBzaWJsaW5nIG9mIHRoZSBoZWFkZXIgZWxlbWVudC5cbiAqIFsyXSBIaWRlIG5hdGl2ZSBpbnB1dCBlbGVtZW50IGFuZCBkbyBub3QgYWN0IGFzIGEgXCJzY3JvbGwgYW5jaG9yXCJcbiAqICAgICB3aGVuIHRoZSBhc3NvY2lhdGVkIGxhYmVsIGlzIGNsaWNrZWQuXG4gKiBbM10gQ2VudGVyIHRoZSBpY29uIGFuZCB0aXRsZSB0ZXh0LiBgZGlzcGxheTogZmxleGAgaXMgc2V0IGJ5IGAuby1tZWRpYWAuXG4gKiBbNF0gUmVzZXQgZGVmYXVsdCBgbWFyZ2luLWJvdHRvbWAuXG4gKiBbNV0gVGhlIGJ1dHRvbiBzdHJldGNoZXMgYWNyb3NzIHRoZSBmdWxsIHdpZHRoIGJ5IGRlZmF1bHQuIE9wdGlvbmFsbHkgaXQgY2FuXG4gKiAgICAgIGJlIGNlbnRlcmVkIHZpYSBmbGV4Ym94IGFuZCBgYXV0b2AgbWFyZ2lucy5cbiAqIFs2XSBFbGltaW5hdGUgdGhlIHNwYWNpbmcgYm90dG9tIGJlbG93IHRoZSB2ZXJ5IGxhc3RcbiAqICAgICBlbGVtZW50IGluIHRoZSBjb250YWluZXIuXG4gKiBbN10gQWx0aG91Z2ggdGhlIGBtYXJnaW5gIHByb3BlcnR5IGlzIHVzZWQgaGVyZSwgd2hhdCBpdCBhY3R1YWxseSBkb2VzXG4gKiAgICAgKip2aXN1YWxseSoqIGlzIHNldHRpbmcgYSBwYWRkaW5nLiBUaGF0J3Mgd2h5IG91clxuICogICAgIGAkY29tcGFyZS1hbmQtc2VsZWN0LXBhZGRpbmdgIHZhcmlhYmxlIGlzIHVzZWQuXG4gKiBbOF0gVG8gYWxpZ24gdGhlIHNsaWRlciBkb3RzIGFuZCB0aGUgc2xpZGVyIGFycm93cyBwcm9wZXJseSwgd2Ugc2V0IHRoZVxuICogICAgIGNvbnRhaW5lciB0byBmbGV4IGFuZCByZXBvc2l0aW9uIHRoZSBpdGVtcyB3aXRoIHRoZSBgb3JkZXJgIHByb3BlcnR5LlxuICogICAgIFRoaXMgcHJldmVudHMgdXMgZnJvbSB1c2luZyBgcG9zaXRpb246IGFic29sdXRlYCBwbHVzIG1hZ2ljIG51bWJlcnMuXG4gKiBbOV0gQ2VudGVyIHRoZSBkb3RzIGFuZCB0aGUgYXJyb3dzIGhvcml6b250YWxseS5cbiAqIFsxMF0gQ2VudGVyIHRoZSBkb3RzIGFuZCB0aGUgYXJyb3dzIHZlcnRpY2FsbHkuXG4gKiBbMTFdIEZvcmNlIHRoZSBzbGlkZXIgaXRlbXMgdG8gdGFrZSB1cCBhbGwgaG9yaXpvbnRhbCBzcGFjZS5cbiAqIFsxMl0gSGFjayB0byBwcmV2ZW50IGEgY3V0LW9mZiBvZiB0aGUgYm94LXNoYWRvdyBieSB0aGUgbmVjZXNzYXJ5XG4gKiAgICAgIGBvdmVyZmxvdzogaGlkZGVuYCBvZiB0aGUgc2xpZGVyIGNvbnRhaW5lci5cbiAqIFsxM10gSGlkZSB0aGUgZG90cyBhbmQgYXJyb3dzLCBpZiB0aGVyZSBpcyBub3RoaW5nIHRvIHNsaWRlLlxuICogWzE0XSBDb21wZW5zYXRlIG9ubHkgYWJvdmUgYnJlYWtwb2ludC4gU21hbGxlciBicmVha3BvaW50cyBnbyBlZGdlLXRvLWVkZ2UsXG4gKiAgICAgIG5vIGNvbXBlbnNhdGlvbiByZXF1aXJlZC5cbiAqIFsxNV0gVGhlIGFjdHVhbCBhcnJvdyBpY29ucyBvZiB0aGUgc2xpZGVyLiBUaGUgc2l6ZSBvZiB0aGUgaWNvbnMgaGFzIHRvIGJlXG4gKiAgICAgIGRvbmUgZGlyZWN0bHkgb24gdGhlIHBzZXVkbyBlbGVtZW50LlxuICogWzE2XSBgYm94LXNoYWRvd2AgY2FuIGJlIHVzZWQgZm9yIHJlYWwgYm94IHNoYWRvdyBlZmZlY3RzIG9yIHNpbXVsYXRlZFxuICogICAgICBib3JkZXJzIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgaW5uZXIgZWxlbWVudMuacyB3aWR0aHMuXG4gKiBbMTddIFVzZSBmbGV4Ym94IHRvIGFsbG93IHJldmVyc2VkIG9yZGVyIG9mIHRvdGFsIGFuZCBzdWZmaXguXG4gKiBbMThdIFNldCB0aGUgc3BhY2luZyBiZXR3ZWVuIHZhbHVlIHRvdGFsIGFuZCB2YWx1ZSBzdWZmaXggZGVwZW5kaW5nIG9uIHRoZVxuICogICAgICB2aXN1YWwgb3JkZXIgb2YgYm90aCBlbGVtZW50cy5cbiAqIFsxOV0gU2V0IGBwb3NpdGlvbmAgdG8gYWxsb3cgcG9zaXRpb25pbmcgb2YgaW5uZXIgZWxlbWVudHMgbGlrZSB0aGUgbGFiZWwuXG4gKiBbMjBdIEluY3JlYXNlIHRoZSByYWRpbyBidXR0b24gbGFiZWwgd2lkdGggdG8gdGhlIGZ1bGwgY29tcG9uZW50IHdpZHRoLlxuICogICAgICB0aGVtIGhvcml6b250YWxseS5cbiAqIFsyMV0gQ3JlYXRlIChyZXNwb25zaXZlKSBndXR0ZXIgYmV0d2VlbiB0aGUgc2xpZGVyIGVsZW1lbnRzIHdoaWxlIHN0aWxsXG4gKiAgICAgIGFsaWduaW5nIHRoZSBjb250ZW50IGNvcnJlY3RseSBob3Jpem9udGFsbHkuIFRoYXQgaXMgd2h5IHdlIG5lZWQgdGhlXG4gKiAgICAgIG5lZ2F0aXZlIHBhZGRpbmcgXCJ0cmlja1wiIGhlcmUuXG4gKiBbMjJdIE1ha2UgYWxsIHNsaWRlciBlbGVtZW50cyB0aGUgc2FtZSBoZWlnaHQgd2hpbGUgcHVzaGluZyB0aGUgcmFkaW8gYWRkb25cbiAqICAgICAgYW5kIGxlZ2FsIHRleHQgdG8gdGhlIGJvdHRvbS5cbiAqIFsyM10gQ2FsY3VsYXRlIGNvcnJlY3Qgc3BhY2luZyBiZXR3ZWVuIHNsaWRlciBhbmQgbmF2aWdhdGlvbiBjb250cm9scyBieVxuICogICAgICBzdWJzdHJhY3RpbmcgdGhlIGJvdHRvbSBvZmZzZXQgaWYgbmVlZGVkLiBUaGlzIG1ha2VzIHN1cmUgdGhhdCB0aGUgc3BhY2luZ1xuICogICAgICBpbiB0b3RhbCBpcyBhbHdheXMgdGhlIHZhbHVlIHdlIHNldCBmb3IgdGhlIHZlcnRpY2FsIHNwYWNpbmcuXG4gKiBbMjRdIEhpZGUgbGFiZWwgd2l0aG91dCBjb250ZW50LiBTZWxlY3RvciBvbmx5IG1hdGNoZXMgZm9yIE5PIGNvbnRlbnQsXG4gKiAgICAgIHdoaXRlc3BhY2VzICYgY29tbWVudHMgYXJlIG5vdCBjb25zaWRlcmVkIGFzIGVtcHR5LlxuICogWzI1XSBNYXRjaCBzZWxlY3RvciBldmVuIHdpdGggd2hpdGVzcGFjZXMgJiBjb21tZW50cyxcbiAqICAgICAgYW5hbG9ndWUgdG8gYDpibGFua2AgKGZpcmVmb3ggb25seSkuXG4gKiBbMjZdIE1vdmUgdGl0bGUgZG93biBpZiBhIGxhYmVsIGlzIHByZXNlbnQgaW4gb3JkZXIgdG8gYWxpZ24gdGl0bGVzIG9mIGl0ZW1zXG4gKiAgICAgIHdpdGggYW5kIHdpdGhvdXQgbGFiZWwgc2lkZS1ieS1zaWRlLiBXZSBhY2NvdW50IGZvciB0aGUgbGFiZWwgaGVpZ2h0IHVzaW5nXG4gKiAgICAgIGFuIG9mZnNldCB2YWx1ZS5cbiAqIFsyN10gRW5hYmxlcyBjaGlsZCBlbGVtZW50cyB0byB3b3JrIHdpdGggdXRpbGl0eSBjbGFzcyBgdS10ZXh0LXRydW5jYXRlYC5cbiAqIFsyOF0gTWFrZSBzdXJlIHdoZW4gdGhlIGJhY2tncm91bmQgaGFzIGEgYnJhbmQgY29sb3IsIHRoZSBgLmMtaWNvbmAgaW5oZXJpdHMgdGhlIHBhcmVudCdzIGNvbG9yLlxuICogWzI5XSBBbGxvdyBjb21wb25lbnQgdG8gYnJlYWsgb3V0IG9mIHBhZ2Utd3JhcCB0byBnbyBmcm9tIGVkZ2UtdG8tZWRnZS5cbiAqIFszMF0gRW5hYmxlIGFuZCBkaXNhYmxlIEZsaWNraXR5IHdpdGggQ1NTIGRlcGVuZGluZyBvbiB0aGUgZGVmaW5lZCBicmVha3BvaW50LlxuICogICAgICBAc2VlIGh0dHBzOi8vZmxpY2tpdHkubWV0YWZpenp5LmNvL29wdGlvbnMuaHRtbCN3YXRjaGNzc1xuICogWzMxXSBXaGVuIHN0YWNrZWQgZW5hYmxlIGZ1bGwgdmlld3BvcnQgd2lkdGggZm9yIGl0ZW1zLlxuICogWzMyXSBIaWRlIHRoZSBpbml0aWFsIG1hcmtlciBmb3IgYWxsIGJyb3dzZXJzLlxuICogWzMzXSBEaXNwbGF5IHRoZSBgPHN1bW1hcnk+YCBlbGVtZW50IG9mIHRoZSBwYXJlbnQgYDxkZXRhaWxzPmAgZWxlbWVudCBvbmx5IG9uIHNtYWxsIHNjcmVlbnMuXG4gKiBbMzRdIFJldHJpZXZlIHRoZSBicmVha3BvaW50IGN1c3RvbSBwcm9wZXJ0eSB0byB1c2Ugd2l0aGluIHRoZSBjb21wb25lbnQgc2NyaXB0LlxuICogWzM1XSBSZW1vdmUgYW55IGluaGVyaXRlZCBtYXJnaW4sIGUuZy4gZnJvbSBgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19saXN0YC5cbiAqIFszNl0gQWRkIGJvdHRvbSBzcGFjaW5nIHRvIGFueSBpdGVtIHdoZW4gaW4gc3RhY2tlZCBtb2RlIG9uIHNtYWxsZXIgc2NyZWVucy5cbiAqIFszN10gUm90YXRlIHRoZSBpY29uIHRvIGluZGljYXRlIHRoZSBvcGVuIGA8ZGV0YWlscz5gLlxuICogWzM4XSBFbnN1cmUgc3BhY2luZyBvbiBzbWFsbGVyIHNjcmVlbnMuXG4gKiBbMzldIFJlbW92ZSByZXNlcnZlZCBzcGFjZSBmb3IgbGFiZWwgdG8gcmVkdWNlIHdoaXRlc3BhY2UgaW4gc3RhY2tlZCBtb2RlLlxuICogWzQwXSBPdmVycmlkZSBoaW50IGNvbG9ycyBmb3Igc2VsZWN0ZWQgdGlsZXMuXG4gKiBbNDFdIEFjdGl2YXRlIHRoZSBlcXVhbCBoZWlnaHQgZnVuY3Rpb25hbGl0eSBvbmx5IGZvciBsYXJnZXIgdmlld3BvcnRzLlxuICogWzQyXSBBbGlnbiB0aGUgcHJpY2luZyBjb21wb25lbnQgYWx3YXlzIGZyb20gdGhlIGJvdHRvbS11cC5cbiAqIFs0M10gQXBwbHkgY2FsY3VsYXRlZCB0aXRsZSBoZWlnaHQuXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1jb21wb3VuZC1zZWxlY3RvcnMsIHNlbGVjdG9yLW1heC1jb21iaW5hdG9ycywgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4uby1wYWdlLXdyYXAgLmMtY29tcGFyZS1hbmQtc2VsZWN0LWNvbnRhaW5lciB7XG4gIC8qIFsyOV0gKi9cbiAgLyogWzI5XSAqL1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5vLXBhZ2Utd3JhcCAuYy1jb21wYXJlLWFuZC1zZWxlY3QtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tbGVmdDogLTQ4cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuby1wYWdlLXdyYXAgLmMtY29tcGFyZS1hbmQtc2VsZWN0LWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLWxlZnQ6IC0yNHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLm8tcGFnZS13cmFwIC5jLWNvbXBhcmUtYW5kLXNlbGVjdC1jb250YWluZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAtMTJweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5vLXBhZ2Utd3JhcCAuYy1jb21wYXJlLWFuZC1zZWxlY3QtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tcmlnaHQ6IC00OHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLm8tcGFnZS13cmFwIC5jLWNvbXBhcmUtYW5kLXNlbGVjdC1jb250YWluZXIge1xuICAgIG1hcmdpbi1yaWdodDogLTI0cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuby1wYWdlLXdyYXAgLmMtY29tcGFyZS1hbmQtc2VsZWN0LWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTJweDtcbiAgfVxufVxuLmMtY29tcGFyZS1hbmQtc2VsZWN0LWNvbnRhaW5lciAuZmxpY2tpdHktdmlld3BvcnQge1xuICBvcmRlcjogMDsgLyogWzhdICovXG59XG4uYy1jb21wYXJlLWFuZC1zZWxlY3QtY29udGFpbmVyIC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbMTFdICovXG4gIGRpc3BsYXk6IGJsb2NrOyAvKiBbMTNdICovXG4gIHRyYW5zZm9ybTogbm9uZTsgLyogWzExXSAqL1xufVxuLmMtY29tcGFyZS1hbmQtc2VsZWN0LWNvbnRhaW5lciAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbjo6YmVmb3JlIHsgLyogWzE1XSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvKiBbMTBdICovXG59XG4uYy1jb21wYXJlLWFuZC1zZWxlY3QtY29udGFpbmVyIC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uLnByZXZpb3VzIHtcbiAgb3JkZXI6IDE7IC8qIFs4XSAqL1xufVxuLmMtY29tcGFyZS1hbmQtc2VsZWN0LWNvbnRhaW5lciAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbi5uZXh0IHtcbiAgb3JkZXI6IDM7IC8qIFs4XSAqL1xufVxuLmMtY29tcGFyZS1hbmQtc2VsZWN0LWNvbnRhaW5lciAuZmxpY2tpdHktcGFnZS1kb3RzIHtcbiAgZGlzcGxheTogZmxleDsgLyogWzEzXSAqL1xuICBvcmRlcjogMjsgLyogWzhdICovXG59XG5cbi5jLWNvbXBhcmUtYW5kLXNlbGVjdC1jb250YWluZXJfX2lubmVyIHtcbiAgLS1icm9uLWNvbXBhcmUtYW5kLXNlbGVjdC1taW4taGVpZ2h0OiBpbml0aWFsO1xufVxuLmMtY29tcGFyZS1hbmQtc2VsZWN0LWNvbnRhaW5lcl9faW5uZXIuZmxpY2tpdHktcmVzaXplIHtcbiAgbWFyZ2luLWxlZnQ6IC0xMnB4O1xuICAvKiBbMjFdICovXG4gIG1hcmdpbi1yaWdodDogLTEycHg7XG4gIC8qIFsyMV0gKi9cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1jb21wYXJlLWFuZC1zZWxlY3QtY29udGFpbmVyX19pbm5lci5mbGlja2l0eS1yZXNpemUge1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IC8qIFsxNF0gKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsgLyogWzE0XSAqL1xuICB9XG59XG4uYy1jb21wYXJlLWFuZC1zZWxlY3QtY29udGFpbmVyX19pbm5lci5mbGlja2l0eS1yZXNpemUgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19pdGVtLFxuLmMtY29tcGFyZS1hbmQtc2VsZWN0LWNvbnRhaW5lcl9faW5uZXIuZmxpY2tpdHktcmVzaXplIC5jLWNvbXBhcmUtYW5kLXNlbGVjdCB7XG4gIGhlaWdodDogMTAwJTsgLyogWzIyXSAqL1xufVxuXG4uYy1jb21wYXJlLWFuZC1zZWxlY3QtLXN0YWNrZWQge1xuICAtLWJyb24tY29tcGFyZS1zZWxlY3QtYWNjb3JkaW9uLWJyZWFrcG9pbnQ6IDcyMHB4OyAvKiBbMzRdICovXG59XG4uYy1jb21wYXJlLWFuZC1zZWxlY3QtLXN0YWNrZWQ6OmFmdGVyIHtcbiAgY29udGVudDogXCJmbGlja2l0eVwiOyAvKiBbMzBdICovXG4gIGRpc3BsYXk6IG5vbmU7IC8qIFszMF0gKi9cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MTlweCkge1xuICAuYy1jb21wYXJlLWFuZC1zZWxlY3QtLXN0YWNrZWQ6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiOyAvKiBbMzBdICovXG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1jb21wYXJlLWFuZC1zZWxlY3QtLXN0YWNrZWQgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19pdGVtIHtcbiAgICB3aWR0aDogMTAwJTsgLyogWzMxXSAqL1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7IC8qIFszNl0gKi9cbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLWNvbXBhcmUtYW5kLXNlbGVjdC0tc3RhY2tlZCAuYy1jb21wYXJlLWFuZC1zZWxlY3RfX2xhYmVsOmVtcHR5ICsgLmMtY29tcGFyZS1hbmQtc2VsZWN0X190aXRsZSB7XG4gICAgbWFyZ2luLXRvcDogMDsgLyogWzM5XSAqL1xuICB9XG4gIC5jLWNvbXBhcmUtYW5kLXNlbGVjdC0tc3RhY2tlZCAuYy1jb21wYXJlLWFuZC1zZWxlY3RfX2xhYmVsOi1tb3otb25seS13aGl0ZXNwYWNlICsgLmMtY29tcGFyZS1hbmQtc2VsZWN0X190aXRsZSB7XG4gICAgbWFyZ2luLXRvcDogMDsgLyogWzM5XSAqL1xuICB9XG59XG5cbi5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fZGV0YWlscyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbi1yaWdodDogMjRweDtcbiAgbWFyZ2luLWxlZnQ6IDI0cHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzE5cHgpIHtcbiAgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19kZXRhaWxzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4OyAvKiBbMzhdICovXG4gIH1cbn1cbi5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fZGV0YWlsc1tvcGVuXSB7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8qIFszOF0gKi9cbn1cbi5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fZGV0YWlsc1tvcGVuXSAuYy1jb21wYXJlLWFuZC1zZWxlY3RfX3N1bW1hcnkge1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fZGV0YWlsc1tvcGVuXSAuYy1jb21wYXJlLWFuZC1zZWxlY3RfX3N1bW1hcnkge1xuICAgIGRpc3BsYXk6IG5vbmU7IC8qIFszM10gKi9cbiAgfVxufVxuLmMtY29tcGFyZS1hbmQtc2VsZWN0X19kZXRhaWxzW29wZW5dIC5jLWJ0bl9faWNvbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IC8qIFszN10gKi9cbn1cbi5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fZGV0YWlsc1tvcGVuXSA+ICoge1xuICBtYXJnaW4tbGVmdDogMDsgLyogWzM1XSAqL1xuICBtYXJnaW4tcmlnaHQ6IDA7IC8qIFszNV0gKi9cbn1cblxuLmMtY29tcGFyZS1hbmQtc2VsZWN0X19zdW1tYXJ5IHtcbiAgbGlzdC1zdHlsZTogbm9uZTsgLyogWzMyXSAqL1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYy1jb21wYXJlLWFuZC1zZWxlY3RfX3N1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIge1xuICBkaXNwbGF5OiBub25lOyAvKiBbMzJdICovXG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19zdW1tYXJ5OjpiZWZvcmUge1xuICAgIGNvbG9yOiAjNDE5NDY4O1xuICB9XG59XG5cbi5jLWNvbXBhcmUtYW5kLXNlbGVjdF9faXRlbSB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgLyogWzEyXSAqL1xuICAvKiBbMTJdICovXG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19pdGVtIHtcbiAgICB3aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1jb21wYXJlLWFuZC1zZWxlY3RfX2l0ZW0ge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLWNvbXBhcmUtYW5kLXNlbGVjdF9faXRlbSB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG59XG5cbi5jLWNvbXBhcmUtYW5kLXNlbGVjdCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBtYXJnaW4tbGVmdDogMTJweDtcbiAgLyogWzIxXSAqL1xuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIC8qIFsyMV0gKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbMTldICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmctdG9wOiAzMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU0O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gIC8qIFsxNl0gKi9cbiAgLyoqXG4gICAqIFsxXSBDaGVjayBpZiBhIHRoZW1lIGlzIHNldCBvciBpZiB0aGUgZGVmYXVsdCB0aGVtZSAobnVsbCkgaXMgdXNlZC5cbiAgICogICAgIElmIHRoZSBgZGVmYXVsdGAgdGhlbWUgaXMgdXNlZCB3ZSBleGVjdXRlIHRoZSBhbHJlYWR5IHByZXNlbnQgbG9naWMsXG4gICAqICAgICBlbHNlIHdlIGp1c3QgcmV0dXJuIHRoZSBjb250ZW50IHVud3JhcHBlZC5cbiAgICovXG59XG4vKiBbMV0gKi9cbi5jLWNvbXBhcmUtYW5kLXNlbGVjdF9faGlkZGVuLWlucHV0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmMtY29tcGFyZS1hbmQtc2VsZWN0X19sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyNHB4O1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZTNhMmY7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi8qIFsxXSAqL1xuLmMtY29tcGFyZS1hbmQtc2VsZWN0X19sYWJlbDplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7IC8qIFsyNF0gKi9cbn1cbi5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fbGFiZWw6LW1vei1vbmx5LXdoaXRlc3BhY2Uge1xuICBkaXNwbGF5OiBub25lOyAvKiBbMjVdICovXG59XG5cbi5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fdGl0bGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAvKiBbM10gKi9cbiAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgLmMtY29tcGFyZS1hbmQtc2VsZWN0X190aXRsZSB7IC8qIFs0MV0gKi9cbiAgICBtaW4taGVpZ2h0OiB2YXIoLS1icm9uLWNvbXBhcmUtYW5kLXNlbGVjdC1taW4taGVpZ2h0KTsgLyogWzQzXSAqL1xuICB9XG59XG4uYy1jb21wYXJlLWFuZC1zZWxlY3RfX2xhYmVsICsgLmMtY29tcGFyZS1hbmQtc2VsZWN0X190aXRsZSB7XG4gIG1hcmdpbi10b3A6IDMycHg7IC8qIFsyNl0gKi9cbn1cblxuLmMtY29tcGFyZS1hbmQtc2VsZWN0X19pY29uIHtcbiAgZm9udC1zaXplOiAzcmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBjb2xvcjogIzE2MTcxODtcbn1cblxuLmMtY29tcGFyZS1hbmQtc2VsZWN0X190aXRsZS10ZXh0IHtcbiAgZm9udC1zaXplOiAxLjQzNzVyZW07XG4gIG1heC13aWR0aDogMTAwJTsgLyogWzI3XSAqL1xuICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbNF0gKi9cbn1cblxuLmMtY29tcGFyZS1hbmQtc2VsZWN0X190aXRsZS1pbmRpY2F0b3ItdGV4dCB7XG4gIGZvbnQtc2l6ZTogMi4wNjI1cmVtO1xufVxuXG4uYy1jb21wYXJlLWFuZC1zZWxlY3RfX2Rlc2NyaXB0aW9uIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAyNHB4OyAvKiBbN10gKi9cbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgbWFyZ2luLWxlZnQ6IDI0cHg7IC8qIFs3XSAqL1xufVxuXG4uYy1jb21wYXJlLWFuZC1zZWxlY3RfX3ByaWNpbmcge1xuICBkaXNwbGF5OiBmbGV4OyAvKiBbNDJdICovXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IC8qIFs0Ml0gKi9cbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgLyogWzQyXSAqL1xuICBtaW4taGVpZ2h0OiB2YXIoLS1icm9uLWNvbXBhcmUtYW5kLXNlbGVjdC1taW4taGVpZ2h0KTsgLyogWzQzXSAqL1xuICBtYXJnaW4tcmlnaHQ6IDI0cHg7IC8qIFs3XSAqL1xuICBtYXJnaW4tbGVmdDogMjRweDsgLyogWzddICovXG59XG5cbi5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fYnV0dG9uIHtcbiAgbWFyZ2luLXJpZ2h0OiAyNHB4OyAvKiBbNV0gKi9cbiAgbWFyZ2luLWxlZnQ6IDI0cHg7IC8qIFs1XSAqL1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuLmMtY29tcGFyZS1hbmQtc2VsZWN0ID4gLmMtY29tcGFyZS1hbmQtc2VsZWN0X19idXR0b24ge1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuXG4uYy1jb21wYXJlLWFuZC1zZWxlY3RfX2xlZ2FsIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDI0cHg7IC8qIFs3XSAqL1xuICBtYXJnaW4tbGVmdDogMjRweDsgLyogWzddICovXG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fbGlzdCB7XG4gIG1hcmdpbi1yaWdodDogMjRweDsgLyogWzddICovXG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gIG1hcmdpbi1sZWZ0OiAyNHB4OyAvKiBbN10gKi9cbn1cbi5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fbGlzdC5jLWljb24tbGlzdCBsaTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzZdICovXG59XG5cbi5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fY2hlY2tib3gge1xuICBtYXJnaW4tcmlnaHQ6IDI0cHg7IC8qIFs3XSAqL1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICBtYXJnaW4tbGVmdDogMjRweDsgLyogWzddICovXG59XG4uYy1jb21wYXJlLWFuZC1zZWxlY3RfX2NoZWNrYm94IC5jLWNoZWNrYm94IHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4uYy1jb21wYXJlLWFuZC1zZWxlY3RfX3JhZGlvIHtcbiAgZGlzcGxheTogYmxvY2s7IC8qIFsyMF0gKi9cbiAgcGFkZGluZy10b3A6IDI0cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDI0cHg7IC8qIFs3XSAqL1xuICBwYWRkaW5nLWJvdHRvbTogMjRweDtcbiAgcGFkZGluZy1sZWZ0OiAyNHB4OyAvKiBbN10gKi9cbiAgY29sb3I6IGluaGVyaXQ7XG59XG4uYy1jb21wYXJlLWFuZC1zZWxlY3RfX3JhZGlvLWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fcmFkaW8tbGFiZWwsIC5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fcmFkaW8tbGFiZWw6aG92ZXIge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fcmFkaW8tZGVzY3JpcHRpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4uYy1jb21wYXJlLWFuZC1zZWxlY3QtLXNlbGVjdGVkLFxuLmMtY29tcGFyZS1hbmQtc2VsZWN0X19oaWRkZW4taW5wdXQ6Y2hlY2tlZCArIC5jLWNvbXBhcmUtYW5kLXNlbGVjdCB7XG4gIC0taGludC10ZXh0LWNvbG9yOiAkY29tcGFyZS1hbmQtc2VsZWN0LWNvbG9yLWNoZWNrZWQ7IC8qIFs0MF0gKi9cbiAgLS1oaW50LXRleHQtY29sb3ItaG92ZXI6ICRjb21wYXJlLWFuZC1zZWxlY3QtY29sb3ItY2hlY2tlZDsgLyogWzQwXSAqL1xuICBib3JkZXItY29sb3I6ICM0MTk0Njg7XG4gIC8qIFsxNl0gKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcbiAgLyoqXG4gICAqIFsxXSBDaGVjayBpZiBhIHRoZW1lIGlzIHNldCBvciBpZiB0aGUgZGVmYXVsdCB0aGVtZSAobnVsbCkgaXMgdXNlZC5cbiAgICogICAgIElmIHRoZSBgZGVmYXVsdGAgdGhlbWUgaXMgdXNlZCB3ZSBleGVjdXRlIHRoZSBhbHJlYWR5IHByZXNlbnQgbG9naWMsXG4gICAqICAgICBlbHNlIHdlIGp1c3QgcmV0dXJuIHRoZSBjb250ZW50IHVud3JhcHBlZC5cbiAgICovXG59XG4vKiBbMV0gKi9cbi5jLWNvbXBhcmUtYW5kLXNlbGVjdC0tc2VsZWN0ZWQgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19sYWJlbCxcbi5jLWNvbXBhcmUtYW5kLXNlbGVjdF9faGlkZGVuLWlucHV0OmNoZWNrZWQgKyAuYy1jb21wYXJlLWFuZC1zZWxlY3QgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19sYWJlbCB7XG4gIC8qKlxuICAgKiBbMV0gQ2hlY2sgaWYgYSB0aGVtZSBpcyBzZXQgb3IgaWYgdGhlIGRlZmF1bHQgdGhlbWUgKG51bGwpIGlzIHVzZWQuXG4gICAqICAgICBJZiB0aGUgYGRlZmF1bHRgIHRoZW1lIGlzIHVzZWQgd2UgZXhlY3V0ZSB0aGUgYWxyZWFkeSBwcmVzZW50IGxvZ2ljLFxuICAgKiAgICAgZWxzZSB3ZSBqdXN0IHJldHVybiB0aGUgY29udGVudCB1bndyYXBwZWQuXG4gICAqL1xufVxuLyogWzFdICovXG4uYy1jb21wYXJlLWFuZC1zZWxlY3QtLXNlbGVjdGVkIC5jLWNoZWNrYm94X19sYWJlbCwgLmMtY29tcGFyZS1hbmQtc2VsZWN0LS1zZWxlY3RlZCAuYy1jb21ib2JveF9fbGlzdGJveFthcmlhLW11bHRpc2VsZWN0YWJsZT10cnVlXSAuYy1jb21ib2JveF9faXRlbV9fdGV4dCwgLmMtY29tYm9ib3hfX2xpc3Rib3hbYXJpYS1tdWx0aXNlbGVjdGFibGU9dHJ1ZV0gLmMtY29tcGFyZS1hbmQtc2VsZWN0LS1zZWxlY3RlZCAuYy1jb21ib2JveF9faXRlbV9fdGV4dCxcbi5jLWNvbXBhcmUtYW5kLXNlbGVjdF9faGlkZGVuLWlucHV0OmNoZWNrZWQgKyAuYy1jb21wYXJlLWFuZC1zZWxlY3QgLmMtY2hlY2tib3hfX2xhYmVsLFxuLmMtY29tcGFyZS1hbmQtc2VsZWN0X19oaWRkZW4taW5wdXQ6Y2hlY2tlZCArIC5jLWNvbXBhcmUtYW5kLXNlbGVjdCAuYy1jb21ib2JveF9fbGlzdGJveFthcmlhLW11bHRpc2VsZWN0YWJsZT10cnVlXSAuYy1jb21ib2JveF9faXRlbV9fdGV4dCxcbi5jLWNvbWJvYm94X19saXN0Ym94W2FyaWEtbXVsdGlzZWxlY3RhYmxlPXRydWVdIC5jLWNvbXBhcmUtYW5kLXNlbGVjdF9faGlkZGVuLWlucHV0OmNoZWNrZWQgKyAuYy1jb21wYXJlLWFuZC1zZWxlY3QgLmMtY29tYm9ib3hfX2l0ZW1fX3RleHQge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5jLWNvbXBhcmUtYW5kLXNlbGVjdC0tc2VsZWN0ZWQgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19zdW1tYXJ5ID4gKixcbi5jLWNvbXBhcmUtYW5kLXNlbGVjdF9faGlkZGVuLWlucHV0OmNoZWNrZWQgKyAuYy1jb21wYXJlLWFuZC1zZWxlY3QgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19zdW1tYXJ5ID4gKiB7XG4gIGNvbG9yOiAjNDE5NDY4O1xufVxuLmMtY29tcGFyZS1hbmQtc2VsZWN0LS1zZWxlY3RlZCAuYy1jb21wYXJlLWFuZC1zZWxlY3RfX3N1bW1hcnk6OmJlZm9yZSxcbi5jLWNvbXBhcmUtYW5kLXNlbGVjdF9faGlkZGVuLWlucHV0OmNoZWNrZWQgKyAuYy1jb21wYXJlLWFuZC1zZWxlY3QgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19zdW1tYXJ5OjpiZWZvcmUge1xuICBjb2xvcjogIzQxOTQ2ODtcbn1cblxuLmMtY29tcGFyZS1hbmQtc2VsZWN0X19mb290ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXJnaW4tdG9wOiBhdXRvOyAvKiBbMjJdICovXG59XG5cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jLWNvbXBhcmUtYW5kLXNlbGVjdC0tc2VsZWN0ZWQgLmMtaWNvbixcbi5jLWNvbXBhcmUtYW5kLXNlbGVjdF9faGlkZGVuLWlucHV0OmNoZWNrZWQgKyAuYy1jb21wYXJlLWFuZC1zZWxlY3QgLmMtaWNvbixcbi5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fcmFkaW8gLmMtaWNvbiB7XG4gIC8qIFsyOF0gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0NPTVBBUkUtQU5ELVNFTEVDVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBFbnN1cmUgdGlsZSBpY29uIGZvcmVncm91bmQgYW5kIGJhY2tncm91bmQgdXNlIGNvbW1vbiBwb3NpdGlvbi5cbiAqIFsyXSBFbnN1cmUgdGhhdCBpY29uIGlzIGNlbnRlcmVkLlxuICogWzNdIENyZWF0ZSBzYWZlLXNwYWNlIG9ubHkgZm9yIGVsZW1lbnRzIHRoYXQgYXJlIG5leHQgdG8gaW5kaWNhdG9yLlxuICogICAgIFRoaXMgY2FuIGJlIGFuIGluZGljYXRvciB0aXRsZSwgbGFiZWwgb3IgdGl0bGUuXG4gKiBbNF0gUHJldmVudCBjb2xsaXNpb24gd2l0aCB0aXRsZSBlbGVtZW50cyBhbmQgaW5kaWNhdG9yLlxuICogWzVdIEFwcGx5IHNhZmUtc3BhY2UgdG8gYm90aCBzaWRlcyB0byBtYWludGFpbiBob3Jpem9udGFsIGFsaWdubWVudC5cbiAqIFs2XSBDaGFuZ2UgdmlzdWFscyB3aGVuIHRvZ2dsZSBpdGVtcyAoYnV0dG9uLCByYWRpby1idXR0b24pIGlzIGhvdmVyZWRcbiAqICAgICB0byBpbmRpY2F0ZSB0aGF0IHN0YXRlIGNoYW5nZXMuXG4gKiBbN10gXCJVbmRvXCIgc2VsZWN0ZWQgc3RhdGUgYXMgY29tcGFyZSAmIHNlbGVjdCBpdGVtcyBjYW4gYmUgc2VsZWN0ZWQsIGJ1dFxuICogICAgIG5vdCB0b2dnbGVkIG9mZiBkaXJlY3RseSAoY2hlY2tib3ggZnVuY3Rpb25hbGl0eSksIHRoZXkgY2FuIG9ubHkgYmVcbiAqICAgICBzZWxlY3RlZCBleGNsdXNpdmVseSAocmFkaW8tYnV0dG9uIGZ1bmN0aW9uYWxpdHkpLlxuICogWzhdIE1pbWljIHRhZyBieSByZXVzaW5nIGl0J3Mgc2V0dGluZ3MgdmlhIGBAZXh0ZW5kYC5cbiAqIFs5fSBFbnN1cmUgY29ycmVjdCBoZWlnaHQgd2l0aG91dCBoYXZpbmcgdGhlIHNhbWUgbWFya3VwIGFzIHRhZyAoYC5jLXRhZ19fbGFiZWxgKS5cbiAqL1xuLmMtY29tcGFyZS1hbmQtc2VsZWN0IHtcbiAgLyogWzZdICovXG59XG4uYy1jb21wYXJlLWFuZC1zZWxlY3Q6OmJlZm9yZSwgLmMtY29tcGFyZS1hbmQtc2VsZWN0OjphZnRlciB7IC8qIFsxXSAqL1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3I7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxNnB4O1xuICByaWdodDogMTZweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG59XG4uYy1jb21wYXJlLWFuZC1zZWxlY3Q6OmJlZm9yZSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U0ZTRlNDtcbn1cbi5jLWNvbXBhcmUtYW5kLXNlbGVjdDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcImJyb25zb24tc2tvZGFcIiAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBjb250ZW50OiBcIlxcZjE0OFwiO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4OyAvKiBbMl0gKi9cbiAgdGV4dC1hbGlnbjogY2VudGVyOyAvKiBbMl0gKi9cbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uYy1jb21wYXJlLWFuZC1zZWxlY3QuYy1jb21wYXJlLWFuZC1zZWxlY3QtLXNlbGVjdGVkOjpiZWZvcmUsIC5jLWNvbXBhcmUtYW5kLXNlbGVjdF9faGlkZGVuLWlucHV0OmNoZWNrZWQgKyAuYy1jb21wYXJlLWFuZC1zZWxlY3Q6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MTk0Njg7XG59XG4uYy1jb21wYXJlLWFuZC1zZWxlY3Q6aGFzKC5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fYnV0dG9uOmhvdmVyLCAuYy1jb21wYXJlLWFuZC1zZWxlY3RfX3JhZGlvOmhvdmVyKSB7XG4gIGJvcmRlci1jb2xvcjogIzllOWZhMDtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xufVxuLmMtY29tcGFyZS1hbmQtc2VsZWN0OmhhcyguYy1jb21wYXJlLWFuZC1zZWxlY3RfX2J1dHRvbjpob3ZlciwgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19yYWRpbzpob3Zlcik6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOGQ4ZDg7XG59XG4uYy1jb21wYXJlLWFuZC1zZWxlY3Q6aGFzKC5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fYnV0dG9uOmhvdmVyLCAuYy1jb21wYXJlLWFuZC1zZWxlY3RfX3JhZGlvOmhvdmVyKS5jLWNvbXBhcmUtYW5kLXNlbGVjdC0tc2VsZWN0ZWQ6OmJlZm9yZSwgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19oaWRkZW4taW5wdXQ6Y2hlY2tlZCArIC5jLWNvbXBhcmUtYW5kLXNlbGVjdDpoYXMoLmMtY29tcGFyZS1hbmQtc2VsZWN0X19idXR0b246aG92ZXIsIC5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fcmFkaW86aG92ZXIpOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDE5NDY4OyAvKiBbN10gKi9cbn1cblxuLmMtY29tcGFyZS1hbmQtc2VsZWN0X190aXRsZSB7XG4gIC8qIFszXSAqL1xufVxuLmMtY29tcGFyZS1hbmQtc2VsZWN0X190aXRsZSA+IDpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7IC8qIFs0XSAqL1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7IC8qIFs1XSAqL1xufVxuXG4uYy1jb21wYXJlLWFuZC1zZWxlY3RfX2xhYmVsIHtcbiAgLyogWzhdICovIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqL1xuICBsaW5lLWhlaWdodDogMTsgLyogWzldICovXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJTkJPWC1GSUxURVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmMtaW5ib3gtZmlsdGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcbn1cblxuLmMtaW5ib3gtZmlsdGVyX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICBwYWRkaW5nOiAwO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5jLWluYm94LWZpbHRlcl9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS40Mzc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgxcHgpIHtcbiAgLmMtaW5ib3gtZmlsdGVyX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgfVxufVxuXG4uYy1pbmJveC1maWx0ZXJfX2JhZGdlIHtcbiAgbWFyZ2luLWxlZnQ6IDRweDtcbn1cblxuLmMtaW5ib3gtZmlsdGVyX19ib2R5IHtcbiAgcGFkZGluZzogMDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0lOQk9YLVRBQkxFIChTZXR0aW5ncylcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0lOQk9YLVRBQkxFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIE5lc3QgYC5jLWluYm94LXRhYmxlYCBlbGVtZW50cyB0byBpbmNyZWFzZSBzcGVjaWZpY2l0eSB0aGF0IGxldCBpdFxuICogICAgIG92ZXJ3cml0ZSBgLmMtdGFibGVgIHN0eWxlcy5cbiAqIFsyXSBEZWZpbmUgYSBtaW5pbXVtIGhlaWdodCB0byBoYXZlIHNhbWUgdGFibGUgY2VsbCBoZWlnaHRzLCByZWdhcmRsZXNzIG9mXG4gKiAgICAgd2hldGhlciB0aGUgY29udGVudCBpcyBvbmUgb3IgdHdvIGxpbmVzIGxvbmcuXG4gKiBbM10gVGhlIGRhdGUgY2VsbCBzaG91bGQgaGF2ZSBhIGBtaW4td2lkdGhgIHNvIHRoYXQgdGhpcyBjb2x1bW4gaXMgYWx3YXlzIHRoZVxuICogICAgIHNhbWUgd2lkdGggaW4gc2VwYXJhdGUgdGFibGVzLlxuICogWzRdIFN0cmV0Y2ggdGhlIHN1YmplY3QgY29sdW1uIHRvIHRoZSB3aWRlc3QgcG9zc2libGUgd2lkdGguXG4gKiBbNV0gU21hbGwgdmlld3BvcnRzOiBSZW1vdmUgYHRhYmxlYCByZWxhdGVkIGJlaGF2aW9yIGZyb20gYWxsIHRhYmxlIGVsZW1lbnRzXG4gKiAgICAgYW5kIGZvcm1hdCBldmVyeXRoaW5nIGFzIGEgYmxvY2stbGV2ZWwgZWxlbWVudC5cbiAqIFs2XSBTbWFsbCB2aWV3cG9ydHM6IEhpZGUgdGFibGUgaGVhZCByb3cgaW4gYW4gYWNjZXNzaWJseS5cbiAqIFs3XSBTbWFsbCB2aWV3cG9ydHM6IFBvc2l0aW9uIGFjdGlvbiBidXR0b25zL2ljb25zIGludG8gdGhlIHRvcCByaWdodCBjb3JuZXIuXG4gKiBbOF0gU21hbGwgdmlld3BvcnRzOiBSZW1vdmUgYm90dG9tIHRhYmxlIGNlbGwgYm9yZGVycyBleGNlcHQgZm9yIHRoZSBsYXN0XG4gKiAgICAgY2VsbC5cbiAqIFs5XSBSZXNldCBzb21lIHRhYmxlIGxpbmsgc3R5bGVzIGZvciB0aGUgbm9ybWFsLCBub24taG92ZXIgc3RhdGUuXG4qL1xuLmMtaW5ib3gtdGFibGUge1xuICAvKipcbiAgICogUmVzcG9uc2l2ZSB2YXJpYW50IGZvciBzbWFsbCB2aWV3cG9ydHNcbiAgICovXG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBvcmRlci9vcmRlciAqL1xufVxuLmMtaW5ib3gtdGFibGUgLmMtaW5ib3gtdGFibGVfX3N1YmhlYWRpbmcgeyAvKiBbMV0gKi9cbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBtYXJnaW4tdG9wOiAyNHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgLmMtaW5ib3gtdGFibGUgLmMtaW5ib3gtdGFibGVfX3N1YmhlYWRpbmcge1xuICAgIGZvbnQtc2l6ZTogMS40Mzc1cmVtO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIC5jLWluYm94LXRhYmxlIC5jLWluYm94LXRhYmxlX19zdWJoZWFkaW5nIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxufVxuLmMtaW5ib3gtdGFibGUgLmMtaW5ib3gtdGFibGVfX2JvZHkgLmMtdGFibGVfX2J0biB7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xuICBtYXJnaW4tbGVmdDogOHB4O1xufVxuLmMtaW5ib3gtdGFibGUgLmMtaW5ib3gtdGFibGVfX3RyLmlzLXVucmVhZCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtY2xhc3MgKi9cbn1cbi5jLWluYm94LXRhYmxlIC5jLWluYm94LXRhYmxlX190ci5pcy11bnJlYWQgLmMtaW5ib3gtdGFibGVfX3RkIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5jLWluYm94LXRhYmxlIC5jLWluYm94LXRhYmxlX190ZCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgaGVpZ2h0OiAzMnB4OyAvKiBbMl0gKi9cbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5jLWluYm94LXRhYmxlIC5jLWluYm94LXRhYmxlX190ZC0tZGF0ZSB7XG4gIG1pbi13aWR0aDogOGVtOyAvKiBbM10gKi9cbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5jLWluYm94LXRhYmxlIC5jLWluYm94LXRhYmxlX190ZC0tYWN0aW9uIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuLmMtaW5ib3gtdGFibGUgLmMtaW5ib3gtdGFibGVfX3RkLS1zdWJqZWN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTsgLyogWzRdICovXG4gIHBhZGRpbmctbGVmdDogMzhweDtcbn1cbi5jLWluYm94LXRhYmxlIC5jLWluYm94LXRhYmxlX190ZF9fc3ViamVjdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jLWluYm94LXRhYmxlIC5jLWluYm94LXRhYmxlX19zdGF0dXMtaW5kaWNhdG9yIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDAuM2VtO1xuICBsZWZ0OiAtMjJweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1pbmJveC10YWJsZS5jLWluYm94LXRhYmxlIHRhYmxlIHtcbiAgICBtaW4td2lkdGg6IGF1dG87XG4gIH1cbiAgLmMtaW5ib3gtdGFibGUuYy1pbmJveC10YWJsZSB0YWJsZSwgLmMtaW5ib3gtdGFibGUuYy1pbmJveC10YWJsZSB0aGVhZCwgLmMtaW5ib3gtdGFibGUuYy1pbmJveC10YWJsZSB0Ym9keSwgLmMtaW5ib3gtdGFibGUuYy1pbmJveC10YWJsZSB0ciwgLmMtaW5ib3gtdGFibGUuYy1pbmJveC10YWJsZSB0aCwgLmMtaW5ib3gtdGFibGUuYy1pbmJveC10YWJsZSB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7IC8qIFs1XSAqL1xuICB9XG4gIC5jLWluYm94LXRhYmxlLmMtaW5ib3gtdGFibGUgdGhlYWQgdHIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGl0Y3NzL25vLWF0LWltcG9ydGFudCAqL1xuICAgIHdpZHRoOiAxcHg7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gICAgLyogWzZdICovXG4gIH1cbiAgLmMtaW5ib3gtdGFibGUuYy1pbmJveC10YWJsZSB0ciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbN10gKi9cbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIC5jLWluYm94LXRhYmxlLmMtaW5ib3gtdGFibGUgdGgsIC5jLWluYm94LXRhYmxlLmMtaW5ib3gtdGFibGUgdGQge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7IC8qIFs3XSAqL1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuICB9XG4gIC5jLWluYm94LXRhYmxlLmMtaW5ib3gtdGFibGUgdGg6OmFmdGVyLCAuYy1pbmJveC10YWJsZS5jLWluYm94LXRhYmxlIHRkOjphZnRlciB7XG4gICAgbGVmdDogMDtcbiAgfVxuICAuYy1pbmJveC10YWJsZS5jLWluYm94LXRhYmxlIHRoOjphZnRlcjpub3QoOmxhc3QtY2hpbGQpLCAuYy1pbmJveC10YWJsZS5jLWluYm94LXRhYmxlIHRkOjphZnRlcjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBib3JkZXI6IG5vbmU7IC8qIFs4XSAqL1xuICB9XG4gIC5jLWluYm94LXRhYmxlLmMtaW5ib3gtdGFibGUgLmMtdGFibGVfX2J0biB7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyAvKiBbN10gKi9cbiAgICB0b3A6IDA7IC8qIFs3XSAqL1xuICAgIHJpZ2h0OiAwOyAvKiBbN10gKi9cbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIC5jLWluYm94LXRhYmxlLmMtaW5ib3gtdGFibGUgLmMtaW5ib3gtdGFibGVfX3RkLS1kYXRlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB9XG4gIC5jLWluYm94LXRhYmxlLmMtaW5ib3gtdGFibGUgLmMtaW5ib3gtdGFibGVfX3RkLS1zdWJqZWN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1sZWZ0OiAyMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG59XG5cbi5jLWluYm94LXRhYmxlX19leHRyYS1pbmZvIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4uYy1pbmJveC10YWJsZV9fbGluazpub3QoOmhvdmVyKSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIFs5XSAqL1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IC8qIFs5XSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogWzldICovXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJTkJPWC1UQUJMRVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBJbmNyZWFzZSBzcGVjaWZpY2l0eSB0byBvdmVycmlkZSBkZWZhdWx0IHRhYmxlIGFuZCBpbmJveCB0YWJsZSBzdHlsZXMgKHNvIHNhZCkuXG4gKiBbMl0gVXNlIGEgcHNldWRvIGVsZW1lbnQgdG8gYWRkIGEgYm9yZGVyIHdpdGggcm91bmRlZCBjb3JuZXJzIHRvIHRoZSB0YWJsZS5cbiAqIFszXSBEaXNhYmxlIEVNSUwgYm9yZGVycyBiYXNlZCBvbiBgdGQsIHRoYCBwc2V1ZG8gZWxlbWVudHMgaW4gZmF2b3Igb2YgWzJdLlxuICogWzRdIERpc2FibGUgdW5uZWVkZWQgYDo6YWZ0ZXJgIHBzZXVkbyBlbGVtZW50IGluIGB0aGBzIHdoaWNoIHByZXZlbnRzIGJ1dHRvbnNcbiAqICAgICBmcm9tIGJlaW5nIGNsaWNrZWQgaW4gdGhlIGhlYWRlci5cbiAqIFs1XSBSZW1vdmUgY29sdW1uIGRpdmlkZXJzIGJldHdlZW4gZW1wdHkgYHRoYHMgaW4gYHRoZWFkYC4gQmVjYXVzZSB3ZSBhcmVcbiAqICAgICBjaGVja2luZyBmb3IgYDplbXB0eWAsIHRoZSBjZWxscyBtdXN0IG5vdCBldmVuIGNvbnRhaW4gd2hpdGVzcGFjZS5cbiAqICAgICAoVGhpcyB3aWxsIGNoYW5nZSB3aXRoIGJyb3dzZXIgc3VwcG9ydCBmb3IgQ1NTIFNlbGVjdG9ycyBMZXZlbCA0OiBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvc2VsZWN0b3JzLTQvI3RoZS1lbXB0eS1wc2V1ZG8pXG4gKiBbNl0gU21hbGwgdmlld3BvcnRzOiBBZGQgaG92ZXIgZWZmZWN0IHRvIHRoZSBgdHJgIGluc3RlYWQgb2YgYHRkLCB0aGAuXG4gKlxuICovXG4uYy1pbmJveC10YWJsZS5jLWluYm94LXRhYmxlIHsgLyogWzFdICovXG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSwgc2VsZWN0b3ItbWF4LWNsYXNzICovXG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBvcmRlci9vcmRlciAqL1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSwgc2VsZWN0b3ItbWF4LWNsYXNzICovXG59XG4uYy1pbmJveC10YWJsZS5jLWluYm94LXRhYmxlIHRhYmxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbMl0gKi9cbiAgYm9yZGVyOiBub25lOyAvKiBbM10gKi9cbn1cbi5jLWluYm94LXRhYmxlLmMtaW5ib3gtdGFibGUgdGFibGU6OmFmdGVyIHsgLyogWzJdICovXG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU0O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmMtaW5ib3gtdGFibGUuYy1pbmJveC10YWJsZS5jLWluYm94LXRhYmxlLmMtaW5ib3gtdGFibGUuYy1pbmJveC10YWJsZS5jLWluYm94LXRhYmxlIHsgLyogWzFdICovIH1cbi5jLWluYm94LXRhYmxlLmMtaW5ib3gtdGFibGUuYy1pbmJveC10YWJsZS5jLWluYm94LXRhYmxlLmMtaW5ib3gtdGFibGUuYy1pbmJveC10YWJsZSB0ZDo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTsgLyogWzNdICovXG59XG4uYy1pbmJveC10YWJsZS5jLWluYm94LXRhYmxlLmMtaW5ib3gtdGFibGUuYy1pbmJveC10YWJsZS5jLWluYm94LXRhYmxlLmMtaW5ib3gtdGFibGUgdGg6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTsgLyogWzRdICovXG59XG4uYy1pbmJveC10YWJsZS5jLWluYm94LXRhYmxlLmMtaW5ib3gtdGFibGUuYy1pbmJveC10YWJsZS5jLWluYm94LXRhYmxlLmMtaW5ib3gtdGFibGUgdGg6ZW1wdHk6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7IC8qIFs1XSAqL1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLWluYm94LXRhYmxlLmMtaW5ib3gtdGFibGUgdHIge1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2UtaW4tb3V0OyAvKiBbNl0gKi9cbiAgfVxuICAuYy1pbmJveC10YWJsZS5jLWluYm94LXRhYmxlIHRyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxOyAvKiBbNl0gKi9cbiAgfVxuICAuYy1pbmJveC10YWJsZS5jLWluYm94LXRhYmxlIHRyOmhvdmVyIHRoLCAuYy1pbmJveC10YWJsZS5jLWluYm94LXRhYmxlIHRyOmhvdmVyIHRkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogWzZdICovXG4gIH1cbiAgLmMtaW5ib3gtdGFibGUuYy1pbmJveC10YWJsZSB0aDpub3QoOmxhc3QtY2hpbGQpOjphZnRlciwgLmMtaW5ib3gtdGFibGUuYy1pbmJveC10YWJsZSB0ZDpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTsgLyogWzNdICovXG4gIH1cbiAgLmMtaW5ib3gtdGFibGUuYy1pbmJveC10YWJsZSAuYy10YWJsZV9fYnRuLmMtdGFibGVfX2J0biB7XG4gICAgdG9wOiAxNnB4O1xuICAgIHJpZ2h0OiAxNnB4O1xuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgI1RPQVNULU5PVElGSUNBVElPTlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBSZXN0cmljdCB0aGUgaGVpZ2h0IG9mIHRoZSBjb250YWluZXIgdG8gdGhlIHZpZXdwb3J0IGhlaWdodCwgc28gaXQgaXNcbiAqICAgICBzY3JvbGxhYmxlIHdpdGggbWFueSBpdGVtcyBpbiBpdC5cbiAqIFsyXSBQcm92aWRlIG9mZnNldCBzcGFjaW5nIGZvciBzbWFsbCBzY3JlZW5zLCB3aGVuIHRoZSBub3RpZmljYXRpb25zIHdvdWxkXG4gKiAgICAgb3RoZXJ3aXNlIHRvdWNoIHRoZSBsZWZ0IHZpZXdwb3J0IGVkZ2UuXG4gKiBbM10gT2Zmc2V0IHRoZSBub3RpZmljYXRpb25zIHRvIHRoZSByaWdodCB3aXRoIGBwYWRkaW5nLXJpZ2h0YCBpbnN0ZWFkIG9mXG4gKiAgICAgdGhlIGByaWdodGAgcHJvcGVydHksIHNvIHRoZSBzbGlkZS1yaWdodCBhbmltYXRpb24gbG9va3MgYXV0aGVudGljLlxuICogWzRdIEluIGNhc2Ugb2YgbWFueSBub3RpZmljYXRpb25zLCBlbnN1cmUgc2Nyb2xsYWJpbGl0eSwuLi5cbiAqIFs1XSAuLi5idXQgcHJldmVudCBvbiB0aGUgeC1heGlzLlxuICogWzZdIERlbGF5IHRoZSB2ZXJ0aWNhbCBhbmltYXRpb24sIHNvIHRoZSBob3Jpem9udGFsIGFuaW1hdGlvbiBydW5zIGZpcnN0LlxuICogWzddIElmIHRoZXJlIGFyZSBhbnkgZWxlbWVudHMgaW4gbm90aWZpY2F0aW9ucyB0aGF0IGJyaW5nIHNwYWNpbmcgd2l0aCBpdCxcbiAqICAgICBwcmV2ZW50IGl0IGZyb20gc2NyZXdpbmcgdXAgdGhlIHBhZGRpbmcuXG4gKiBbOF0gU2hyaW5rIHNpemUgdG8gemVyby5cbiAqIFs5XSBBbHNvIHJlc2V0IG1hcmdpbi1ib3R0b20gYXMgdGhpcyBjb250cmlidXRlcyB0byB0aGUgY29tcG91bmQgaGVpZ2h0LlxuICogWzEwXSBSZWZlcmVuY2UgZm9yIHRoZSBjbG9zZSBidXR0b24uXG4gKiBbMTFdIFB1c2ggdGhlIG5vdGlmaWNhdGlvbiBvdXQgb2Ygc2NyZWVuIHdoZW4gY2xvc2VkLlxuICogWzEyXSBQcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGNsb3NlIGJ1dHRvbi5cbiAqIFsxM10gRGVsYXkgdGhlIGhvcml6b250YWwgYW5pbWF0aW9uIHdoZW4gYW4gaXRlbSBzaG91bGQgYmUgYWRkZWQsIHNvIHRoZVxuICogICAgICB2ZXJ0aWNhbCBhbmltYXRpb24gcnVucyBmaXJzdCBhbmQgZ2l2ZXMgdXAgaXRzIHNwYWNlIGZvciB0aGUgbmV3IGl0ZW0uXG4gKiBbMTRdIFJlc2V0IHRoZSB0cmFuc2l0aW9uLWRlbGF5IGZvciB0aGUgcmV2ZXJzZWQgYW5pbWF0aW9uLCBpLmUuIHRoZSBhZGRpbmdcbiAqICAgICAgb2YgbmV3IG5vdGlmaWNhdGlvbiBpdGVtcy5cbiAqIFsxNV0gUHJldmVudHMgdGhlIG5vdGlmaWNhdGlvbnMgdG8gdGFrZSB1cCBhbnkgc3BhY2Ugd2hlbiBpdOKAmXMgY2xvc2VkIGFuZFxuICogICAgICB0YWtlcyBjYXJlIG9mIGVsaW1pbmF0aW5nIGFueSBwb3RlbnRpYWwgc2Nyb2xsIGJhcnMuXG4gKiBbMTZdIFByb3ZpZGUgYSBkZWZhdWx0IHRleHQgY29sb3IuXG4gKiBbMTddIE1ha2Ugc3VyZSB0aGUgaWNvbiBjb2xvciBpcyB0aGUgc2FtZSBhcyB0aGUgdGV4dCBjb2xvciwgaGVuY2UgcHJldmVudFxuICogICAgICBhbnkgb3ZlcnJpZGUgZnJvbSB0aGUgYCRJQ09OLUNPTE9SYCBzZXR0aW5ncy5cbiAqIFsxOF0gRGlzYWJsZSB0cmFuc2l0aW9uIGR1cmluZyBpbml0aWFsaXphdGlvbnMuXG4gKi9cbi5jLXRvYXN0LW5vdGlmaWNhdGlvbnMge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDYwMDA7XG4gIHRvcDogMjRweDtcbiAgcmlnaHQ6IDA7IC8qIFszXSAqL1xuICBtYXgtaGVpZ2h0OiAxMDB2aDsgLyogWzFdICovXG4gIG92ZXJmbG93LXg6IGhpZGRlbjsgLyogWzVdICovXG4gIG92ZXJmbG93LXk6IGF1dG87IC8qIFs0XSAqL1xuICBtYXJnaW4tbGVmdDogMjRweDsgLyogWzJdICovXG4gIHBhZGRpbmctcmlnaHQ6IDI0cHg7IC8qIFszXSAqL1xufVxuXG4uYy10b2FzdC1ub3RpZmljYXRpb24ge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuOyAvKiBbMTVdICovXG4gIHRyYW5zaXRpb24tZGVsYXk6IDBzOyAvKiBbMTRdICovXG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgLmMtdG9hc3Qtbm90aWZpY2F0aW9uIHtcbiAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICB9XG59XG4uYy10b2FzdC1ub3RpZmljYXRpb246bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cbi5jLXRvYXN0LW5vdGlmaWNhdGlvbiAqOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbN10gKi9cbn1cbi5jLXRvYXN0LW5vdGlmaWNhdGlvbi5pcy1jbG9zZWQge1xuICBoZWlnaHQ6IDA7IC8qIFs4XSAqL1xuICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbOV0gKi9cbiAgdHJhbnNpdGlvbi1kZWxheTogMzAwbXM7IC8qIFs2XSAqL1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5jLXRvYXN0LW5vdGlmaWNhdGlvbl9fY29udGVudCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIFsxMF0gKi9cbiAgcGFkZGluZzogMTZweCAyNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGUzYTJmO1xuICBjb2xvcjogI2ZmZmZmZjsgLyogWzE2XSAqL1xuICB0cmFuc2l0aW9uLWRlbGF5OiAzMDBtczsgLyogWzEzXSAqL1xufVxuLmMtdG9hc3Qtbm90aWZpY2F0aW9uLS1pbmZvIC5jLXRvYXN0LW5vdGlmaWNhdGlvbl9fY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZTNhMmY7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmMtdG9hc3Qtbm90aWZpY2F0aW9uLS1zdWNjZXNzIC5jLXRvYXN0LW5vdGlmaWNhdGlvbl9fY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZTNhMmY7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmMtdG9hc3Qtbm90aWZpY2F0aW9uLS13YXJuaW5nIC5jLXRvYXN0LW5vdGlmaWNhdGlvbl9fY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZTNhMmY7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmMtdG9hc3Qtbm90aWZpY2F0aW9uLS1lcnJvciAuYy10b2FzdC1ub3RpZmljYXRpb25fX2NvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGUzYTJmO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5jLXRvYXN0LW5vdGlmaWNhdGlvbltkYXRhLW1hcmtldGluZy10aGVtZT1cIjFcIl0gLmMtdG9hc3Qtbm90aWZpY2F0aW9uX19jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZDFiODtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uYy10b2FzdC1ub3RpZmljYXRpb25bZGF0YS1tYXJrZXRpbmctdGhlbWU9XCIyXCJdIC5jLXRvYXN0LW5vdGlmaWNhdGlvbl9fY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjM2YxYjM7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtdG9hc3Qtbm90aWZpY2F0aW9uLmlzLWNsb3NlZCAuYy10b2FzdC1ub3RpZmljYXRpb25fX2NvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwJSk7IC8qIFsxMV0gKi9cbiAgdHJhbnNpdGlvbi1kZWxheTogMHM7IC8qIFsxNF0gKi9cbn1cblxuLmMtdG9hc3Qtbm90aWZpY2F0aW9uX19ib2R5IHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgcGFkZGluZy1yaWdodDogMjhweDsgLyogWzEyXSAqL1xufVxuXG4uYy10b2FzdC1ub3RpZmljYXRpb25fX2Nsb3NlIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE2cHg7XG4gIHJpZ2h0OiAyNHB4O1xuICBjb2xvcjogY3VycmVudENvbG9yOyAvKiBbMTddICovXG59XG4uYy10b2FzdC1ub3RpZmljYXRpb25fX2Nsb3NlOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cbi5jLXRvYXN0LW5vdGlmaWNhdGlvbl9fY2xvc2U6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiYnJvbnNvbi1za29kYVwiICFpbXBvcnRhbnQ7IC8qIFsxXSAqL1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBjb250ZW50OiBcIlxcZjE1YVwiO1xuICBmb250LXNpemU6IDIwcHg7XG59XG5cbi5jLXRvYXN0LW5vdGlmaWNhdGlvbjpub3QoLmpzLWlzLXJlYWR5KSxcbi5jLXRvYXN0LW5vdGlmaWNhdGlvbjpub3QoLmpzLWlzLXJlYWR5KSAuYy10b2FzdC1ub3RpZmljYXRpb25fX2NvbnRlbnQge1xuICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7IC8qIFsxOF0gKi9cbn1cblxuLmMtdG9hc3Qtbm90aWZpY2F0aW9uIHtcbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjZmZmZmZmO1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb3JkZXIvb3JkZXIgKi9cbn1cbi5jLXRvYXN0LW5vdGlmaWNhdGlvbltkYXRhLW1hcmtldGluZy10aGVtZV0ge1xuICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICMxNjE3MTg7XG59XG4uYy10b2FzdC1ub3RpZmljYXRpb24tLXN1Y2Nlc3MgLmMtdG9hc3Qtbm90aWZpY2F0aW9uX19jb250ZW50IHtcbiAgYm9yZGVyLWxlZnQ6IDA7XG59XG4uYy10b2FzdC1ub3RpZmljYXRpb24tLXN1Y2Nlc3MgLmMtdG9hc3Qtbm90aWZpY2F0aW9uX19jb250ZW50OjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzN2QwMDI7XG59XG5cbi5jLXRvYXN0LW5vdGlmaWNhdGlvbi0td2FybmluZyAuYy10b2FzdC1ub3RpZmljYXRpb25fX2NvbnRlbnQge1xuICBib3JkZXItbGVmdDogMDtcbn1cbi5jLXRvYXN0LW5vdGlmaWNhdGlvbi0td2FybmluZyAuYy10b2FzdC1ub3RpZmljYXRpb25fX2NvbnRlbnQ6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjNjUxMztcbn1cblxuLmMtdG9hc3Qtbm90aWZpY2F0aW9uLS1lcnJvciAuYy10b2FzdC1ub3RpZmljYXRpb25fX2NvbnRlbnQge1xuICBib3JkZXItbGVmdDogMDtcbn1cbi5jLXRvYXN0LW5vdGlmaWNhdGlvbi0tZXJyb3IgLmMtdG9hc3Qtbm90aWZpY2F0aW9uX19jb250ZW50OjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlODJiMzc7XG59XG5cbi5jLXRvYXN0LW5vdGlmaWNhdGlvbiAuYy10b2FzdC1ub3RpZmljYXRpb25fX2NvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYy10b2FzdC1ub3RpZmljYXRpb24gLmMtdG9hc3Qtbm90aWZpY2F0aW9uX19jb250ZW50OjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiA2cHg7XG59XG5cbi5jLXRvYXN0LW5vdGlmaWNhdGlvbl9fY2xvc2Uge1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHNjYWxlOiAxO1xufVxuLmMtdG9hc3Qtbm90aWZpY2F0aW9uX19jbG9zZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IC0xO1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRyYW5zaXRpb246IGluaGVyaXQ7XG59XG4uYy10b2FzdC1ub3RpZmljYXRpb25fX2Nsb3NlOmhvdmVyOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQzLCAyNDMsIDI0MywgMC4xMik7XG59XG5cbi5jLXRvYXN0LW5vdGlmaWNhdGlvbl9fY2xvc2U6Zm9jdXMtdmlzaWJsZTo6YWZ0ZXIge1xuICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICNmZmZmZmY7XG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDA7XG4gIC0tZm9jdXMtb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIC0tZm9jdXMtb3V0bGluZS13aWR0aDogMnB4O1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb2N1cy1vdXRsaW5lLWNvbG9yLCAjMTYxNzE4KTtcbiAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWZvY3VzLW91dGxpbmUtb2Zmc2V0LCAxcHgpO1xuICBvdXRsaW5lLXN0eWxlOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXN0eWxlLCBzb2xpZCk7XG4gIG91dGxpbmUtd2lkdGg6IHZhcigtLWZvY3VzLW91dGxpbmUtd2lkdGgsIDJweCk7XG59XG5cbi5jLXRvYXN0LW5vdGlmaWNhdGlvbl9fY2xvc2U6YWN0aXZlIHtcbiAgc2NhbGU6IDAuOTU7XG59XG5cbltkYXRhLW1hcmtldGluZy10aGVtZV0gLmMtdG9hc3Qtbm90aWZpY2F0aW9uX19jbG9zZTpob3Zlcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyLCAyMywgMjQsIDAuMDYpO1xufVxuW2RhdGEtbWFya2V0aW5nLXRoZW1lXSAuYy10b2FzdC1ub3RpZmljYXRpb25fX2Nsb3NlOjphZnRlciB7XG4gIC0tZm9jdXMtb3V0bGluZS1jb2xvcjogIzE2MTcxODtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0RFU0NSSVBUSU9OLUxJU1QtQUNDT1JESU9OXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIFRoZSBib3R0b20gYWNjb3JkaW9uIGJvcmRlciBzZXBhcmF0ZXMgdGhlIGFjY29yZGlvbiBhbmQgdGhlIHRvdGFsIHNlY3Rpb24uXG4gKiBbMl0gQWxpZ24gaXRlbSBsYWJlbCBhbmQgdmFsdWUgdG8gdGhlIGxlZnQgYW5kIHJpZ2h0IHZpYSBmbGV4Ym94LlxuICogWzNdIFJlc2V0IGBkbGAgbWFyZ2lucy5cbiAqIFs0XSBTdGFjayBpdGVtIGxhYmVsIGFuZCB2YWx1ZSB2ZXJ0aWNhbGx5IGluIHNtYWxsIHZpZXdwb3J0cy5cbiAqIFs1XSBJbmNyZWFzZSBzcGVjaWZpY2l0eSB0byBvdmVycnVsZSBzcGVjaWZpY2l0eSBvZlxuICogICAgIGAuYy1hY2NvcmRpb246bm90KDpvbmx5LWNoaWxkKWAuXG4gKiBbNl0gSW5jcmVhc2Ugc3BlY2lmaWNpdHkgdG8gb3ZlcnJ1bGUgc3BlY2lmaWNpdHkgb2ZcbiAqICAgICBgLmMtYWNjb3JkaW9uLS1oZWFkZXItc3BsaXQgLmMtYWNjb3JkaW9uX19oZWFkZXJgLlxuICogWzddIE1ha2Ugc3VyZSB0byBub3QgdXNlIHRoZSBkZWZhdWx0IGA8ZHQ+YCBjb2xvci5cbiAqL1xuLmMtZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb25fX2FjY29yZGlvbi5jLWRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uX19hY2NvcmRpb24geyAvKiBbNV0gKi9cbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNGU0ZTQ7IC8qIFsxXSAqL1xufVxuXG4uYy1kZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbl9faGVhZGVyLmMtZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb25fX2hlYWRlciB7IC8qIFs2XSAqLyB9XG4qICsgLmMtZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb25fX2hlYWRlci5jLWRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uX19oZWFkZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U0ZTRlNDtcbn1cblxuLmMtZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb25fX3RpdGxlLWxhYmVsIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4uYy1kZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbl9fdGl0bGUtdmFsdWUge1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb25fX3RpdGxlLXZhbHVlIHtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gIH1cbn1cblxuLmMtZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb25fX2NvbnRlbnQsXG4uYy1kZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbl9faXRlbS0tdG90YWwge1xuICBwYWRkaW5nLXJpZ2h0OiA0OHB4O1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi5jLWRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uX19pdGVtIHtcbiAgZGlzcGxheTogZmxleDsgLyogWzJdICovXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7IC8qIFsyXSAqL1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IC8qIFsyXSAqL1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgLyogWzJdICovXG4gIG1hcmdpbi10b3A6IDA7IC8qIFszXSAqL1xuICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbM10gKi9cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1kZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbl9faXRlbSB7XG4gICAgZGlzcGxheTogYmxvY2s7IC8qIFs0XSAqL1xuICB9XG59XG4uYy1kZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbl9faXRlbSArIC5jLWRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uX19pdGVtIHtcbiAgbWFyZ2luLXRvcDogOHB4O1xufVxuXG4uYy1kZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbl9faXRlbV9fbGFiZWwge1xuICBjb2xvcjogaW5oZXJpdDsgLyogWzddICovXG59XG5cbi5jLWRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uX19pdGVtX19sYWJlbC10ZXh0IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG4uYy1kZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbl9faXRlbV9fbGFiZWwtbm90ZSB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb25fX2l0ZW1fX2xhYmVsLW5vdGUge1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgfVxufVxuXG4uYy1kZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbl9faXRlbV9fdmFsdWUge1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5jLWRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uX19pdGVtLS10b3RhbCB7XG4gIHBhZGRpbmctdG9wOiAxNnB4O1xufVxuLmMtZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb25fX2l0ZW0tLXRvdGFsIC5jLWRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uX19pdGVtX19sYWJlbC10ZXh0IHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5jLWRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uX19pdGVtLS10b3RhbCAuYy1kZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbl9faXRlbV9fbGFiZWwtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjQzNzVyZW07XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgxcHgpIHtcbiAgLmMtZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb25fX2l0ZW0tLXRvdGFsIC5jLWRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uX19pdGVtX19sYWJlbC10ZXh0IHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxufVxuLmMtZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb25fX2l0ZW0tLXRvdGFsIC5jLWRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uX19pdGVtX192YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICAuYy1kZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbl9faXRlbS0tdG90YWwgLmMtZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb25fX2l0ZW1fX3ZhbHVlIHtcbiAgICBmb250LXNpemU6IDEuNDM3NXJlbTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyODFweCkge1xuICAuYy1kZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbl9faXRlbS0tdG90YWwgLmMtZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb25fX2l0ZW1fX3ZhbHVlIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICNOT1RJRklDQVRJT04tQ0VOVEVSIChTZXR0aW5ncylcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAjTk9USUZJQ0FUSU9OLUNFTlRFUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBQb3NpdGlvbiB0aGUgTm90aWZpY2F0aW9uIENlbnRlciB0b2dnbGUgaW4gdGhlIGhlYWRlci5cbiAqIFsyXSBTcGFjaW5nIHRvIG90aGVyIGhlYWRlciBpdGVtcyAoZS5nLiB0aGUgY29udGV4dCBiYXIpLlxuICogWzNdIEFkZCBzcGFjZSBmb3IgdGhlIGJhZGdlIGluIHNtYWxsZXIgdmlld3BvcnRzIHNvIHRoYXQgaXQgd2lsbCBub3Qgb3ZlcmxhcFxuICogICAgIHRoZSBuYXZpZ2F0aW9uIHRvZ2dsZSDigJxoYW1idXJnZXLigJ0gaWNvbi5cbiAqIFs0XSBSZW1vdmUgdW53YW50ZWQgdmVydGljYWwgc3BhY2UgYnkgbWFraW5nIHRoZSBpY29uIGEgYmxvY2sgZWxlbWVudC5cbiAqIFs1XSBQb3NpdGlvbiB0aGUgYmFkZ2UgYWJzb2x1dGVseSBpbnNpZGUgdGhlIHRvZ2dsZS5cbiAqIFs2XSBTaGlmdCB0aGUgYmFkZ2UgaG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgaWYgbmVjZXNzYXJ5LiBUaGlzIGNhbiBhbHNvIGJlXG4gKiAgICAgc2V0IHNlcGFyYXRlbHkgZm9yIHNtYWxsZXIgdmlld3BvcnRzLlxuICogWzddIEFkZCBzaGFkb3cgdG8gdGhlIGJvdHRvbSBvciB0b3AgaWYgY29udGVudCBpcyBvdXRzaWRlIG9mIHRoZSB2aWV3cG9ydC5cbiAqIFs4XSBNYWtlIHBhbmVsIHNjcm9sbGFibGUuXG4gKiBbOV0gU2V0IHBhbmVsIGB6LWluZGV4YCB0byBvdmVybGF5IG90aGVyIGVsZW1lbnRzIChlLmcuIFZXNiBuYXZpZ2F0aW9uIGxheWVycykuXG4gKiBbMTBdIEZhZGUgcGFuZWwgaW4gd2l0aCBhIHNtb290aCB0cmFuc2l0aW9uIGluIHNtYWxsIHZpZXdwb3J0cy5cbiAqICAgICAgYHBvaW50ZXItZXZlbnRzYCBhcmUgZGlzYWJsZWQgaW4gdGhlIGNvbGxhcHNlZCBzdGF0ZS5cbiAqIFsxMV0gUHVzaCB0aGUgZmlyc3QgaXRlbSBkb3duIGJ5IHRoZSBoZWlnaHQgb2YgdGhlIGZpeGVkIHBvc2l0aW9uZWQgcGFuZWxcbiAqICAgICAgaGVhZGluZy5cbiAqIFsxMl0gRml4YXRlIHRoZSBwYW5lbCBoZWFkZXIgdG8gdGhlIHRvcCBhbmQgaW5jcmVhc2UgYHotaW5kZXhgIHNvIGl0IGFsd2F5c1xuICogICAgICBzdGF5cyBpbiBmcm9udCBvZiB0aGUgcGFuZWwgaXRlbXMuXG4gKiBbMTNdIFNldCBwYW5lbCBoZWFkZXIgcGFkZGluZyB0byBhIHJlc3BvbnNpdmUgbWFwIG9yIGZpeGVkIHZhbHVlXG4gKiAgICAgIChkZWZhdWx0IGlzIGAkcGFnZS13cmFwLXBhZGRpbmctaG9yaXpvbnRhbGApXG4gKiBbMTRdIEluY3JlYXNlIHNwZWNpZmljaXR5IHRvIGFsbG93IGJ1dHRvbiBzdHlsZXMgdG8gYmUgb3ZlcndyaXR0ZW4uXG4gKiBbMTVdIERpc3BsYXkgYWxsIGl0ZW1zIGJlbG93IGVhY2ggb3RoZXIsIG5vIG1hdHRlciBpZiB0aGV5IGFyZSBibG9jayBvclxuICogICAgICBpbmxpbmUgZWxlbWVudHMuXG4gKiBbMTZdIFNldCBzYW1lIHNwYWNpbmdzIGJldHdlZW4gaW5uZXIgaXRlbSBlbGVtZW50cy5cbiAqIFsxN10gQW5pbWF0ZSBwYW5lbCBpdGVtcyBpbiB3aXRoIGEgc21vb3RoIHRyYW5zaXRpb24gaW4gc21hbGwgdmlld3BvcnRzLlxuICogWzE4XSBQb3NpdGlvbiB0aGUgc3RhdHVzIHBvaW50IHZlcnRpY2FsbHkgY2VudGVyZWQgdG8gdGhlIGZpcnN0IGxpbmUgb2YgdGhlXG4gKiAgICAgIGFydGljbGUgaGVhZGluZyBieSBkaXZpZGluZyB0aGUgcmVzcG9uc2l2ZSBmb250IHNpemUgb2YgdGhlIGhlYWRpbmcgaW5cbiAqICAgICAgaGFsZiBjb25zaWRlcmluZyBpdHMgbGluZSBzcGFjaW5nLlxuICogWzE5XSBDaGFuZ2UgaGVhZGluZyBgZm9udC13ZWlnaHRgIGZvciByZWFkIGl0ZW1zLlxuICogWzIwXSBSZW1vdmUgYm90dG9tIG1hcmdpbiBvZiBsYXN0IGNoaWxkIGVsZW1lbnQgKGUuZy4gYSBwYXJhZ3JhcGgpLlxuICogWzIxXSBPdmVyd3JpdGUgYC5jLWJ0bmAgZm9udCBzaXplLlxuICogWzIyXSBQdXNoIGxpbmsgdG8gdGhlIGxlZnQgaW4gZmxleGJveCBjb250ZXh0IGZvciBicmFuZHMgKFZXNikgdGhhdCB1c2UgYVxuICogICAgICBib3JkZXIgYXMgbGluayBkZWNvcmF0aW9uLlxuICogWzIzXSBTaG93IGl0ZW0gb3ZlcmxheSBvbiBob3ZlcmluZy9mb2N1c2luZyB0aGVcbiAqICAgICAgYC5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX2l0ZW1fX21hcmstcmVhZC10b2dnbGVgIGJ1dHRvbi5cbiAqL1xuLmMtbm90aWZpY2F0aW9uLWNlbnRlciB7XG4gIGRpc3BsYXk6IGZsZXg7IC8qIFsxXSAqL1xuICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiBbMV0gKi9cbiAgaGVpZ2h0OiAxMDAlOyAvKiBbMV0gKi9cbn1cblxuLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9fdG9nZ2xlIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbNV0gKi9cbiAgbWFyZ2luLWxlZnQ6IDA7IC8qIFsyXSAqL1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX3RvZ2dsZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMnB4OyAvKiBbM10gKi9cbiAgfVxufVxuLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9fdG9nZ2xlOjphZnRlciB7XG4gIGZvbnQtZmFtaWx5OiBcImJyb25zb24tc2tvZGFcIiAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbnRlbnQ6IFwiXFxmMTJhXCI7XG4gIGRpc3BsYXk6IGJsb2NrOyAvKiBbNF0gKi9cbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX3RvZ2dsZV9fbGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBpdGNzcy9uby1hdC1pbXBvcnRhbnQgKi9cbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbn1cblxuLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9fdG9nZ2xlX19iYWRnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLyogWzVdICovXG4gIHRvcDogNTAlOyAvKiBbNV0gKi9cbiAgbGVmdDogMTAwJTsgLyogWzVdICovXG4gIC8qIFs2XSAqL1xuICAvKiBbNl0gKi9cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTg1JSwgLTUwJSk7IC8qIFs1XSAqL1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX3RvZ2dsZV9fYmFkZ2Uge1xuICAgIC8qIFs2XSAqL1xuICAgIC8qIFs2XSAqL1xuICB9XG59XG5cbi5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX3BhbmVsIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCNmZmZmZmYgMzAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApKSwgbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LCAyNTUsIDI1NSwgMCksICNmZmZmZmYgNzAlKSAwIDEwMCUsIHJhZGlhbC1ncmFkaWVudChmYXJ0aGVzdC1zaWRlIGF0IDUwJSAwLCByZ2JhKDAsIDAsIDAsIDAuMiksIHJnYmEoMCwgMCwgMCwgMCkpLCByYWRpYWwtZ3JhZGllbnQoZmFydGhlc3Qtc2lkZSBhdCA1MCUgMTAwJSwgcmdiYSgwLCAwLCAwLCAwLjIpLCByZ2JhKDAsIDAsIDAsIDApKSAwIDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJSA0MnB4LCAxMDAlIDQycHgsIDEwMCUgMTRweCwgMTAwJSAxNHB4O1xuICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGxvY2FsLCBsb2NhbCwgc2Nyb2xsLCBzY3JvbGw7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBvdmVyZmxvdzogYXV0bzsgLyogWzhdICovXG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjFweCkge1xuICAuYy1ub3RpZmljYXRpb24tY2VudGVyX19wYW5lbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogMDtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHdpZHRoOiAzOGVtO1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA2NHB4IC0gODBweCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U0ZTRlNDtcbiAgICBib3gtc2hhZG93OiAwIDI0cHggNjRweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICB9XG4gIC5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX3BhbmVsW2FyaWEtaGlkZGVuPWZhbHNlXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1ub3RpZmljYXRpb24tY2VudGVyX19wYW5lbCB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gICAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gICAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogMjUwMDsgLyogWzldICovXG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbMTBdICovXG4gICAgb3BhY2l0eTogMDsgLyogWzEwXSAqL1xuICB9XG4gIC5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX3BhbmVsW2FyaWEtaGlkZGVuPWZhbHNlXSB7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87IC8qIFsxMF0gKi9cbiAgICBvcGFjaXR5OiAxOyAvKiBbMTBdICovXG4gIH1cbiAgLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9fcGFuZWwgPiAuYy1ub3RpZmljYXRpb24tY2VudGVyX19pdGVtOmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi10b3A6IDY0cHg7IC8qIFsxMV0gKi9cbiAgfVxufVxuXG4uYy1ub3RpZmljYXRpb24tY2VudGVyX19wYW5lbF9faGVhZGVyIHtcbiAgcG9zaXRpb246IGZpeGVkOyAvKiBbMTJdICovXG4gIHotaW5kZXg6IDE7IC8qIFsxMl0gKi9cbiAgdG9wOiAwOyAvKiBbMTJdICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNjRweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNGU0ZTQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjMTYxNzE4O1xuICBwYWRkaW5nLXJpZ2h0OiAzMnB4OyAvKiBbMTNdICovXG4gIHBhZGRpbmctbGVmdDogMzJweDsgLyogWzEzXSAqL1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MXB4KSB7XG4gIC5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX3BhbmVsX19oZWFkZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9fcGFuZWxfX2hlYWRpbmcge1xuICBmb250LXNpemU6IDEuNDM3NXJlbTtcbiAgbWFyZ2luOiAwO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX3BhbmVsX19oZWFkaW5nIHtcbiAgICBmb250LXNpemU6IDEuNjg3NXJlbTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyODFweCkge1xuICAuYy1ub3RpZmljYXRpb24tY2VudGVyX19wYW5lbF9faGVhZGluZyB7XG4gICAgZm9udC1zaXplOiAxLjg3NXJlbTtcbiAgfVxufVxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtY2xhc3MsIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9fcGFuZWxfX2Nsb3NlLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9fcGFuZWxfX2Nsb3NlLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9fcGFuZWxfX2Nsb3NlIHsgLyogWzE0XSAqLyB9XG4uYy1ub3RpZmljYXRpb24tY2VudGVyX19wYW5lbF9fY2xvc2UuYy1ub3RpZmljYXRpb24tY2VudGVyX19wYW5lbF9fY2xvc2UuYy1ub3RpZmljYXRpb24tY2VudGVyX19wYW5lbF9fY2xvc2UgLmMtYnRuX19pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG4uYy1ub3RpZmljYXRpb24tY2VudGVyX19wYW5lbF9fY2xvc2UuYy1ub3RpZmljYXRpb24tY2VudGVyX19wYW5lbF9fY2xvc2UuYy1ub3RpZmljYXRpb24tY2VudGVyX19wYW5lbF9fY2xvc2UgLmMtYnRuX19pY29uOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcImJyb25zb24tc2tvZGFcIiAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgY29udGVudDogXCJcXGYxNWFcIjtcbn1cbi5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX3BhbmVsX19jbG9zZS5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX3BhbmVsX19jbG9zZS5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX3BhbmVsX19jbG9zZSAuYy1idG5fX3RleHQgeyAvKiBbMTRdICovIH1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX2l0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7IC8qIFsxNV0gKi9cbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgLyogWzE1XSAqL1xuICBwYWRkaW5nOiAyNHB4IDMycHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9faXRlbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTsgLyogWzE3XSAqL1xuICAgIHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluLW91dDsgLyogWzE3XSAqL1xuICB9XG4gIC5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX3BhbmVsW2FyaWEtaGlkZGVuPWZhbHNlXSAuYy1ub3RpZmljYXRpb24tY2VudGVyX19pdGVtIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IC8qIFsxN10gKi9cbiAgfVxufVxuLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9faXRlbSArIC5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX2l0ZW0ge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U0ZTRlNDtcbn1cbi5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX2l0ZW0gPiAqICsgKiB7XG4gIG1hcmdpbi10b3A6IDhweDsgLyogWzE2XSAqL1xuICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbMTZdICovXG59XG5cbi5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX2l0ZW1fX3N0YXR1cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzNHB4OyAvKiBbMThdICovXG4gIGxlZnQ6IDMycHg7XG59XG5cbi5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX2l0ZW1fX2hlYWRpbmcge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4uYy1ub3RpZmljYXRpb24tY2VudGVyX19pdGVtLS1yZWFkIC5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX2l0ZW1fX2hlYWRpbmcge1xuICBmb250LXdlaWdodDogNzAwOyAvKiBbMTldICovXG59XG5cbi5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX2l0ZW1fX2hlYWRpbmctbGluayB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uYy1ub3RpZmljYXRpb24tY2VudGVyX19pdGVtX19ib2R5ID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbMjBdICovXG59XG5cbi5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX2l0ZW1fX3RpbWVzdGFtcCB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6ICM3YzdkN2U7XG59XG5cbi5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX2l0ZW1fX21hcmstcmVhZC10b2dnbGUge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICAvKiBbMjFdICovXG4gIG1hcmdpbi1yaWdodDogYXV0bzsgLyogWzIyXSAqL1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9faXRlbV9fbWFyay1yZWFkLXRvZ2dsZTo6YmVmb3JlIHsgLyogWzIzXSAqL1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcbiAgdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2UtaW4tb3V0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgbWl4LWJsZW5kLW1vZGU6IGRhcmtlbjtcbn1cbi5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX2l0ZW1fX21hcmstcmVhZC10b2dnbGU6aG92ZXIsIC5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX2l0ZW1fX21hcmstcmVhZC10b2dnbGU6Zm9jdXMge1xuICBtaXgtYmxlbmQtbW9kZTogZGFya2VuO1xufVxuLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9faXRlbV9fbWFyay1yZWFkLXRvZ2dsZTpob3Zlcjo6YmVmb3JlLCAuYy1ub3RpZmljYXRpb24tY2VudGVyX19pdGVtX19tYXJrLXJlYWQtdG9nZ2xlOmZvY3VzOjpiZWZvcmUge1xuICBvcGFjaXR5OiAxOyAvKiBbMjNdICovXG59XG5cbi5jLW5vdGlmaWNhdGlvbi1jb250ZW50LWNlbnRlcl9faXRlbV9fY2xvc2Uge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIG1hcmdpbjogMDtcbiAgZm9udDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBpbmhlcml0O1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogaW5oZXJpdDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTJweDtcbiAgcmlnaHQ6IDI0cHg7XG4gIHBhZGRpbmc6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpO1xuICBjb2xvcjogIzE2MTcxODtcbn1cbi5jLW5vdGlmaWNhdGlvbi1jb250ZW50LWNlbnRlcl9faXRlbV9fY2xvc2U6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG59XG4uYy1ub3RpZmljYXRpb24tY29udGVudC1jZW50ZXJfX2l0ZW1fX2Nsb3NlOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcImJyb25zb24tc2tvZGFcIiAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgY29udGVudDogXCJcXGYxNWFcIjtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuXG4uYy1ub3RpZmljYXRpb24tY29udGVudC1jZW50ZXJfX2l0ZW1fX2Nsb3NlLWxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgaXRjc3Mvbm8tYXQtaW1wb3J0YW50ICovXG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgI05PVElGSUNBVElPTi1DRU5URVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gT3ZlcmxheSBvbiB0b2dnbGUtaG92ZXIgbm90IG5lZWRlZC4gT3ZlcndyaXRlIGRlZmF1bHQuXG4gKiBbMl0gQ29sb3JpemUgaXRlbSBiYWNrZ3JvdW5kXG4gKiAgICAgd2hpbGUgbWFpbnRhaW5pbmcgc2Nyb2xsLXNoYWRvdyB2aXNpYmlsaXR5IChpdGVtIG92ZXJsYXkpLlxuICogWzJhXSBVbnJlYWQgc3RhdHVzIChkZWZhdWx0KS5cbiAqIFsyYl0gUmVhZC4gc3RhdHVzLlxuICogWzNdIERpc2FibGUgdG9nZ2xlIG92ZXJsYXkgdG8gc2hvdyBpdGVtIG92ZXJsYXkgKGl0ZW0gYmFja2dyb3VuZCkuXG4gKiBbNF0gSW1wbHkgXCJyZWFkXCIgc3RhdHVzIGJ5IGhvdmVyaW5nIHRvZ2dsZSBmcm9tIFwidW5yZWFkXCIuXG4gKiAgICAgUHJvZ3Jlc3NpdmUgZW5oYW5jZW1lbnQ6XG4gKiAgICAgVXNlIGA6aGFzYCBzZWxlY3RvciB0byBjaGVjayBmb3IgY2hpbGQgc3RhdGUgYW5kIG1vZGlmeSBvbiBwYXJlbnQgbGV2ZWwuXG4gKiAgICAgTm9uLXN1cHBvcnRpbmcgYnJvd3NlcnMgZG8gbm90IGNoYW5nZSBiYWNrZ3JvdW5kIGJ5IGhvdmVyaW5nIHRvZ2dsZS5cbiAqL1xuLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9faXRlbSB7XG4gIC8qIFsyXSAqL1xufVxuLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9faXRlbTpoYXMoLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9faXRlbV9fbWFyay1yZWFkLXRvZ2dsZTpob3Zlcikge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG59XG4uYy1ub3RpZmljYXRpb24tY2VudGVyX19pdGVtOmhhcyguYy1ub3RpZmljYXRpb24tY2VudGVyX19pdGVtX19tYXJrLXJlYWQtdG9nZ2xlOmhvdmVyKTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgLyogWzRdICovXG59XG4uYy1ub3RpZmljYXRpb24tY2VudGVyX19pdGVtOm5vdCguYy1ub3RpZmljYXRpb24tY2VudGVyX19pdGVtLS1yZWFkKSB7XG4gIHBhZGRpbmctbGVmdDogNTRweDtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xufVxuLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9faXRlbTpub3QoLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9faXRlbS0tcmVhZCkgLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9faXRlbV9fbWFyay1yZWFkLXRvZ2dsZTpob3Zlcjo6YmVmb3JlIHtcbiAgY29udGVudDogdW5zZXQ7IC8qIFszXSAqL1xufVxuLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9faXRlbTo6YmVmb3JlIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTsgLyogWzJhXSAqL1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgbWl4LWJsZW5kLW1vZGU6IGRhcmtlbjtcbn1cbi5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX2l0ZW0uYy1ub3RpZmljYXRpb24tY2VudGVyX19pdGVtLS1yZWFkOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyAvKiBbMmJdICovXG59XG5cbi5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX2l0ZW1fX21hcmstcmVhZC10b2dnbGUge1xuICBwYWRkaW5nOiAxNnB4IDE2cHg7XG59XG5cbi5jLW5vdGlmaWNhdGlvbi1jb250ZW50LWNlbnRlcl9faXRlbV9fY2xvc2Uge1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHNjYWxlOiAxO1xufVxuLmMtbm90aWZpY2F0aW9uLWNvbnRlbnQtY2VudGVyX19pdGVtX19jbG9zZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IC0xO1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRyYW5zaXRpb246IGluaGVyaXQ7XG59XG4uYy1ub3RpZmljYXRpb24tY29udGVudC1jZW50ZXJfX2l0ZW1fX2Nsb3NlOmhvdmVyOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIsIDIzLCAyNCwgMC4wNik7XG59XG5cbi5jLW5vdGlmaWNhdGlvbi1jb250ZW50LWNlbnRlcl9faXRlbV9fY2xvc2U6Zm9jdXMtdmlzaWJsZTo6YWZ0ZXIge1xuICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICMxNjE3MTg7XG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDA7XG4gIC0tZm9jdXMtb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIC0tZm9jdXMtb3V0bGluZS13aWR0aDogMnB4O1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb2N1cy1vdXRsaW5lLWNvbG9yLCAjMTYxNzE4KTtcbiAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWZvY3VzLW91dGxpbmUtb2Zmc2V0LCAxcHgpO1xuICBvdXRsaW5lLXN0eWxlOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXN0eWxlLCBzb2xpZCk7XG4gIG91dGxpbmUtd2lkdGg6IHZhcigtLWZvY3VzLW91dGxpbmUtd2lkdGgsIDJweCk7XG59XG5cbi5jLW5vdGlmaWNhdGlvbi1jb250ZW50LWNlbnRlcl9faXRlbV9fY2xvc2U6YWN0aXZlIHtcbiAgc2NhbGU6IDAuOTU7XG59XG5cbi5jLW5vdGlmaWNhdGlvbi1jb250ZW50LWNlbnRlcl9faXRlbV9fY2xvc2U6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNDQVJEUy1TTElERVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gVGhlIGZsaWNraXR5IHNsaWRlciB1c2VkIGZvciB0aGlzIGNvbXBvbmVudCBjcmVhdGVzIGFuXG4gKiAgICAgYG92ZXJmbG93OiBoaWRkZW5gIHdoaWNoIGN1dHMtb2ZmIHRoZSBzaGFkb3cgb2YgdGhlIGNhcmRzLiBBZGRpbmcgdGhlXG4gKiAgICAgc2FtZSBhbW91bnQgb2YgcGFkZGluZyBhcyB0aGUgYm94LXNoYWRvdyBzcHJlYWQgb2YgdGhlIGNhcmRzXG4gKiAgICAgY29tcGVuc2F0ZXMgdGhpcy5cbiAqIFsyXSBTZXQgZXF1YWwgY29udGVudCBoZWlnaHRzIGZvciBzbGlkZXJzIGNlbGxzLlxuICogWzNdIFJlc2V0IGRlZmF1bHQgZmxpY2tpdHkgbmV4dC9wcmV2IGJ1dHRvbiBzdHlsZXMuXG4gKiBbNF0gU29mdCBmYWRlIGxlZnQgYW5kIHJpZ2h0IG9mIHRoZSBzbGlkZXIgdG8gcHJldmVudCBhIGhhcmQgb3ZlcmZsb3cvY3V0b2ZmLlxuICogWzVdIFNob3cgc2hhZG93IGFib3ZlIHNsaWRlcy5cbiAqIFs2XSBDb21wZW5zYXRlIGd1dHRlci5cbiAqL1xuLmMtY2FyZHMtc2xpZGVyLWNvbnRhaW5lciB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgb3BhY2l0eTogMDtcbn1cbi5jLWNhcmRzLXNsaWRlci1jb250YWluZXIuaXMtaW5pdGlhbGl6ZWQge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uYy1jYXJkcy1zbGlkZXIge1xuICBtYXJnaW4tbGVmdDogLTI0cHg7IC8qIFs2XSAqL1xufVxuLmMtY2FyZHMtc2xpZGVyLmZsaWNraXR5LXJlc2l6ZSAuYy1jYXJkcy1zbGlkZXJfX2l0ZW0sXG4uYy1jYXJkcy1zbGlkZXIuZmxpY2tpdHktcmVzaXplIC5jLWNhcmRzLXNsaWRlcl9fY2FyZC13cmFwcGVyLFxuLmMtY2FyZHMtc2xpZGVyLmZsaWNraXR5LXJlc2l6ZSAuYy1jYXJkIHtcbiAgaGVpZ2h0OiAxMDAlOyAvKiBbMl0gKi9cbn1cblxuLyoqXG4gKiBPbiBsYXJnZSBzY3JlZW5zLCB0aGUgY2FyZHMgYXJlIHNob3duIGNvbXBsZXRlbHkgKDQgZGVmYXVsdCBjYXJkcyBhbmQgNVxuICogc21hbGwgY2FyZHMpLiBPbiBzbWFsbGVyIHNjcmVlbnMsIHRoZSBsYXN0IHZpc2libGUgY2FyZCBpcyBhbHdheXMgc2hvd25cbiAqIGhhbGYgdG8gaW5kaWNhdGUgdG8gdGhlIHVzZXIgdGhhdCB0aGVyZSBhcmUgbW9yZSBjYXJkcyB0byBzY3JvbGwgdG8uXG4gKi9cbi5jLWNhcmRzLXNsaWRlcl9faXRlbSB7XG4gIHBhZGRpbmctbGVmdDogMjRweDtcbiAgd2lkdGg6IDI1JTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1jYXJkcy1zbGlkZXJfX2l0ZW0ge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLWNhcmRzLXNsaWRlcl9faXRlbSB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLWNhcmRzLXNsaWRlcl9faXRlbSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLmMtY2FyZHMtc2xpZGVyX19jYXJkLXdyYXBwZXIge1xuICBwYWRkaW5nOiA0cHggNHB4OyAvKiBbMV0gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1RSRUUtVklFV1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBXZSBuZWVkIHRvIGNsaXAgdGhlIGhvcml6b250YWwgYm91bmRzIGF0IHJvb3QgbGV2ZWxcbiAqICAgICB0byBjdXQgb2ZmIHRoZSBwc2V1ZG8tZWxlbWVudCBmcm9tIFs1XS5cbiAqIFsyXSBIYW5kbGUgdGhlIGNvbGxhcHNlIGFuZCBleHBhbmRlZCBzdGF0ZSBvZiBuZXN0ZWQgbGlzdHMgdmlhIHRoZVxuICogICAgIGBhcmlhLWV4cGFuZGVkYCBhdHRyaWJ1dGUgZnJvbSB0aGUgcGFyZW50IHRyZWUgbGlzdCBpdGVtLlxuICogWzNdIERpc2FibGUgZm9jdXMgc3R5bGVzIG9uIHRoZSBmb2N1c2FibGUgZWxlbWVudCBhbmQgcGFzcyB0aGVtIGRvd25cbiAqICAgICB0byB0aGUgY29udGFpbmVkIHRyZWUtdmlldyBib2R5LlxuICogWzRdIE9ubHkgZW5hYmxlIHBvaW50ZXIgZm9yIGV4cGFuZGFibGUgdHJlZSBsaXN0IGl0ZW1zLlxuICogWzVdIFN0YXRlIGlzIGhhbmRsZWQgdmlhIHRyZWUgbGlzdCBpdGVtIHBhcmVudCBidXQgdGhlIHN0eWxlcyBhcmUgYXBwbGllZCB0byB0aGVcbiAqICAgICBgLmMtdHJlZS12aWV3X19ib2R5YCBhbmQgaXRzIGA6OmJlZm9yZWAgcHNldWRvLWVsZW1lbnQuIFRoZSBwc2V1ZG8tZWxlbWVudFxuICogICAgIGNhcnJpZXMgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBzdGF0ZSBjb2xvcnMuXG4gKiBbNl0gSWYgdGhlIHBhcmVudCB0cmVlIGxpc3QgaXRlbSByZWNlaXZlcyBmb2N1cywgaG92ZXIgb3IgaGFzIHRoZVxuICogICAgIGAuaXMtc2VsZWN0ZWRgLCBgLmlzLWFjY2VudGVkYCBvciBgLmlzLWFsdC1hY2NlbnRlZGAgY2xhc3NcbiAqICAgICBzdHlsZSB0aGUgZWxlbWVudCBhY2NvcmRpbmdseS5cbiAqIFs3XSBEaXNwbGF5IHRoZSB0cmVlIHZpZXcgaWNvbiBhcyBgOjphZnRlcmAgcHNldWRvLWVsZW1lbnQgb2YgdGhlIGAuYy10cmVlLXZpZXdfX2JvZHlgLlxuICogWzhdIENoYW5nZSB0aGUgdHJlZSB2aWV3IGljb24gZGVwZW5kaW5nIG9uIHRoZSBwYXJlbnQgdHJlZSBsaXN0IGl0ZW0gc3RhdGUgZnJvbSBbMl0uXG4gKiBbOV0gUmVzZXQgZGVmYXVsdCBsaXN0IHN0eWxlcy5cbiAqIFsxMF0gT2Zmc2V0IHRoZSBpY29uIGJ5IGl0cyBzaXRlIHdoaWNoIGlzIHRoZSBpdGVt4oCZcyBtYXJnaW4uXG4gKiBbMTFdIFRoZSBwc2V1ZG8tZWxlbWVudCBzcGFucyBhY3Jvc3MgdGhlIGRvdWJsZSBvZiB0aGUgdmlld3BvcnQgYW5kIGlzIHB1bGxlZCBiYWNrXG4gKiAgICAgIGJ5IHRoZSB3aWR0aCBvZiB0aGUgdmlld3BvcnQgKC0xMDB2dykgdG8gYmUgaW5kZXBlbmRlbnQgb2YgcG9zaXRpb24gY29udGV4dCBhbmQgbmVzdGluZy5cbiAqICAgICAgVGhlIHBzZXVkby1lbGVtZW50IHNob3VsZCBhbHdheXMgY292ZXIgdGhlIHdob2xlIHJvdy5cbiAqIFsxMl0gTG93ZXIgdGhlIHBvc2l0aW9uaW5nIGxheWVyIHRvIG1ha2UgdGhlIHBzZXVkby1lbGVtZW50IGZyb20gWzVdIGFwcGVhciBiZWxvdyB0aGUgcm93IGNvbnRlbnQuXG4gKiBbMTNdIEluZGVudCBuZXN0ZWQgdHJlZSB2aWV3IGl0ZW1zLlxuICovXG4uYy10cmVlLXZpZXcge1xuICBtYXJnaW46IDA7IC8qIFs5XSAqL1xuICBwYWRkaW5nOiAwOyAvKiBbOV0gKi9cbiAgbGlzdC1zdHlsZTogbm9uZTsgLyogWzldICovXG59XG4uYy10cmVlLXZpZXcuaXMtdHJlZS12aWV3LXJvb3Qtbm9kZSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjsgLyogWzFdICovXG4gIGJvcmRlci1ib3R0b206IDFweCAjZTRlNGU0IHNvbGlkO1xufVxuW2FyaWEtZXhwYW5kZWQ9ZmFsc2VdID4gLmMtdHJlZS12aWV3IHtcbiAgZGlzcGxheTogbm9uZTsgLyogWzJdICovXG59XG5bYXJpYS1leHBhbmRlZD10cnVlXSA+IC5jLXRyZWUtdmlldyB7XG4gIGRpc3BsYXk6IGJsb2NrOyAvKiBbMl0gKi9cbn1cblxuLmMtdHJlZS12aWV3X19pdGVtIHtcbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLS1mb2N1cy1vdXRsaW5lLW9mZnNldDogMXB4O1xuICAtLWZvY3VzLW91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICAtLWZvY3VzLW91dGxpbmUtd2lkdGg6IDA7XG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWZvY3VzLW91dGxpbmUtY29sb3IsICMxNjE3MTgpO1xuICBvdXRsaW5lLW9mZnNldDogdmFyKC0tZm9jdXMtb3V0bGluZS1vZmZzZXQsIDFweCk7XG4gIG91dGxpbmUtc3R5bGU6IHZhcigtLWZvY3VzLW91dGxpbmUtc3R5bGUsIHNvbGlkKTtcbiAgb3V0bGluZS13aWR0aDogdmFyKC0tZm9jdXMtb3V0bGluZS13aWR0aCwgMnB4KTtcbiAgLyogWzNdICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwO1xufVxuLmMtdHJlZS12aWV3X19pdGVtW2FyaWEtZXhwYW5kZWRdLmlzLWhvdmVyZWQge1xuICBjdXJzb3I6IHBvaW50ZXI7IC8qIFs0XSAqL1xufVxuLmMtdHJlZS12aWV3X19pdGVtW2FyaWEtZXhwYW5kZWRdLmlzLWRpc2FibGVkIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLmMtdHJlZS12aWV3X19pdGVtIC5jLXRyZWUtdmlld19faXRlbSB7IC8qIFsxM10gKi9cbiAgcGFkZGluZy1sZWZ0OiAzMnB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLXRyZWUtdmlld19faXRlbSAuYy10cmVlLXZpZXdfX2l0ZW0ge1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgfVxufVxuXG4uYy10cmVlLXZpZXdfX2JvZHkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXRvcDogMjRweDtcbiAgcGFkZGluZy1ib3R0b206IDI0cHg7XG4gIHBhZGRpbmctbGVmdDogMzJweDtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LWNsYXNzLCBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtY2xhc3MsIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtdHJlZS12aWV3X19ib2R5IHtcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICB9XG59XG4uYy10cmVlLXZpZXdfX2JvZHk6OmJlZm9yZSB7IC8qIFs1XSAqL1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IC0xOyAvKiBbMTJdICovXG4gIHRvcDogMDtcbiAgbGVmdDogLTEwMHZ3OyAvKiBbMTFdICovXG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMjAwdnc7IC8qIFsxMV0gKi9cbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItdG9wOiAxcHggI2U0ZTRlNCBzb2xpZDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAzMDBtcyBlYXNlLWluLW91dDtcbn1cbi5jLXRyZWUtdmlld19faXRlbTpmb2N1cyA+IC5jLXRyZWUtdmlld19fYm9keSB7IC8qIFs2XSAqL1xuICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICMxNjE3MTg7XG4gIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIC0tZm9jdXMtb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIC0tZm9jdXMtb3V0bGluZS13aWR0aDogMnB4O1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb2N1cy1vdXRsaW5lLWNvbG9yLCAjMTYxNzE4KTtcbiAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWZvY3VzLW91dGxpbmUtb2Zmc2V0LCAxcHgpO1xuICBvdXRsaW5lLXN0eWxlOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXN0eWxlLCBzb2xpZCk7XG4gIG91dGxpbmUtd2lkdGg6IHZhcigtLWZvY3VzLW91dGxpbmUtd2lkdGgsIDJweCk7XG59XG4uYy10cmVlLXZpZXdfX2l0ZW0uaXMtaG92ZXJlZCA+IC5jLXRyZWUtdmlld19fYm9keTo6YmVmb3JlIHsgLyogWzZdICovXG4gIGJhY2tncm91bmQtY29sb3I6ICNkOGQ4ZDg7XG59XG4uYy10cmVlLXZpZXdfX2l0ZW0uaXMtc2VsZWN0ZWQgPiAuYy10cmVlLXZpZXdfX2JvZHk6OmJlZm9yZSB7IC8qIFs2XSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDE5NDY4O1xufVxuLmMtdHJlZS12aWV3X19pdGVtLmlzLWFjY2VudGVkID4gLmMtdHJlZS12aWV3X19ib2R5OjpiZWZvcmUgeyAvKiBbNl0gKi8gfVxuLmMtdHJlZS12aWV3X19pdGVtLmlzLWFsdC1hY2NlbnRlZCA+IC5jLXRyZWUtdmlld19fYm9keTo6YmVmb3JlIHsgLyogWzZdICovIH1cbi5jLXRyZWUtdmlld19faXRlbS5pcy1zZWxlY3RlZC5pcy1hY2NlbnRlZCA+IC5jLXRyZWUtdmlld19fYm9keTo6YmVmb3JlLCAuYy10cmVlLXZpZXdfX2l0ZW0uaXMtaG92ZXJlZC5pcy1hY2NlbnRlZCA+IC5jLXRyZWUtdmlld19fYm9keTo6YmVmb3JlIHsgLyogWzZdICovIH1cbi5jLXRyZWUtdmlld19faXRlbS5pcy1zZWxlY3RlZC5pcy1hbHQtYWNjZW50ZWQgPiAuYy10cmVlLXZpZXdfX2JvZHk6OmJlZm9yZSwgLmMtdHJlZS12aWV3X19pdGVtLmlzLWhvdmVyZWQuaXMtYWx0LWFjY2VudGVkID4gLmMtdHJlZS12aWV3X19ib2R5OjpiZWZvcmUgeyAvKiBbNl0gKi8gfVxuLmMtdHJlZS12aWV3X19pdGVtLmlzLWRpc2FibGVkID4gLmMtdHJlZS12aWV3X19ib2R5OjpiZWZvcmUgeyAvKiBbNl0gKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uYy10cmVlLXZpZXdfX2l0ZW0uaXMtc2VsZWN0ZWQuaXMtZGlzYWJsZWQgPiAuYy10cmVlLXZpZXdfX2JvZHk6OmJlZm9yZSB7IC8qIFs2XSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDhkOGQ4O1xufVxuLmMtdHJlZS12aWV3X19pdGVtLmlzLXRyZWUtdmlldy1wYXJlbnQtbm9kZSA+IC5jLXRyZWUtdmlld19fYm9keSB7IC8qIFs3XSAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYy10cmVlLXZpZXdfX2l0ZW0uaXMtdHJlZS12aWV3LXBhcmVudC1ub2RlID4gLmMtdHJlZS12aWV3X19ib2R5OjphZnRlciB7XG4gIGZvbnQtZmFtaWx5OiBcImJyb25zb24tc2tvZGFcIiAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBjb250ZW50OiBcIlxcZjE1MVwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMjRweDtcbiAgbGVmdDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIG1hcmdpbi1sZWZ0OiAtMzJweDsgLyogWzEwXSAqL1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIGNvbG9yOiAjNDE5NDY4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLXRyZWUtdmlld19faXRlbS5pcy10cmVlLXZpZXctcGFyZW50LW5vZGUgPiAuYy10cmVlLXZpZXdfX2JvZHk6OmFmdGVyIHtcbiAgICB0b3A6IDhweDtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0xNnB4OyAvKiBbMTBdICovXG4gIH1cbn1cbi5jLXRyZWUtdmlld19faXRlbS5pcy1hY2NlbnRlZCA+IC5jLXRyZWUtdmlld19fYm9keTo6YWZ0ZXIge1xuICBjb2xvcjogIzQxOTQ2ODtcbn1cbi5jLXRyZWUtdmlld19faXRlbS5pcy1hbHQtYWNjZW50ZWQgPiAuYy10cmVlLXZpZXdfX2JvZHk6OmFmdGVyIHtcbiAgY29sb3I6ICM0MTk0Njg7XG59XG4uYy10cmVlLXZpZXdfX2l0ZW0uaXMtZGlzYWJsZWQgPiAuYy10cmVlLXZpZXdfX2JvZHk6OmFmdGVyIHtcbiAgY29sb3I6ICM5ZTlmYTA7XG59XG4uYy10cmVlLXZpZXdfX2l0ZW1bYXJpYS1leHBhbmRlZD10cnVlXSA+IC5jLXRyZWUtdmlld19fYm9keTo6YWZ0ZXIgeyAvKiBbOF0gKi9cbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG59XG4uYy10cmVlLXZpZXdfX2l0ZW1bYXJpYS1leHBhbmRlZD1mYWxzZV0gPiAuYy10cmVlLXZpZXdfX2JvZHk6OmFmdGVyIHsgLyogWzhdICovXG4gIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG59XG5cbi5jLXRyZWUtdmlld19fdGl0bGUge1xuICBmb250LXNpemU6IDFyZW07XG4gIGNvbG9yOiAjMTYxNzE4O1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtY2xhc3MgKi9cbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuLmMtdHJlZS12aWV3X19pdGVtLmlzLWhvdmVyZWQgPiAuYy10cmVlLXZpZXdfX2JvZHkgLmMtdHJlZS12aWV3X190aXRsZSB7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtdHJlZS12aWV3X19pdGVtLmlzLXNlbGVjdGVkID4gLmMtdHJlZS12aWV3X19ib2R5IC5jLXRyZWUtdmlld19fdGl0bGUge1xuICBjb2xvcjogIzE2MTcxODtcbn1cbi5jLXRyZWUtdmlld19faXRlbS5pcy1hY2NlbnRlZCA+IC5jLXRyZWUtdmlld19fYm9keSAuYy10cmVlLXZpZXdfX3RpdGxlIHtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uYy10cmVlLXZpZXdfX2l0ZW0uaXMtYWx0LWFjY2VudGVkID4gLmMtdHJlZS12aWV3X19ib2R5IC5jLXRyZWUtdmlld19fdGl0bGUge1xuICBjb2xvcjogIzE2MTcxODtcbn1cbi5jLXRyZWUtdmlld19faXRlbS5pcy1kaXNhYmxlZCA+IC5jLXRyZWUtdmlld19fYm9keSAuYy10cmVlLXZpZXdfX3RpdGxlIHtcbiAgY29sb3I6ICM5ZTlmYTA7XG59XG5cbi5jLXRyZWUtdmlld19fc3VidGl0bGUge1xuICBmb250LXNpemU6IDFyZW07XG4gIGNvbG9yOiAjMTYxNzE4O1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtY2xhc3MgKi9cbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuLmMtdHJlZS12aWV3X19pdGVtLmlzLWhvdmVyZWQgPiAuYy10cmVlLXZpZXdfX2JvZHkgLmMtdHJlZS12aWV3X19zdWJ0aXRsZSB7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtdHJlZS12aWV3X19pdGVtLmlzLXNlbGVjdGVkID4gLmMtdHJlZS12aWV3X19ib2R5IC5jLXRyZWUtdmlld19fc3VidGl0bGUge1xuICBjb2xvcjogIzE2MTcxODtcbn1cbi5jLXRyZWUtdmlld19faXRlbS5pcy1hY2NlbnRlZCA+IC5jLXRyZWUtdmlld19fYm9keSAuYy10cmVlLXZpZXdfX3N1YnRpdGxlIHtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uYy10cmVlLXZpZXdfX2l0ZW0uaXMtYWx0LWFjY2VudGVkID4gLmMtdHJlZS12aWV3X19ib2R5IC5jLXRyZWUtdmlld19fc3VidGl0bGUge1xuICBjb2xvcjogIzE2MTcxODtcbn1cbi5jLXRyZWUtdmlld19faXRlbS5pcy1kaXNhYmxlZCA+IC5jLXRyZWUtdmlld19fYm9keSAuYy10cmVlLXZpZXdfX3N1YnRpdGxlIHtcbiAgY29sb3I6ICM5ZTlmYTA7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNDQUxMT1VUXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogVXNlIGEgY2FsbG91dCB0byBkaXNwbGF5IGEgcHJvbWluZW50IG1lc3NhZ2Ugd2l0aCBhIGNhbGwgdG8gYWN0aW9uLlxuICovXG4vKipcbiAqIFsxXSBNYWdpYyBudW1iZXIgZGVmaW5lZCBpbiBBYnN0cmFjdCB0byBsaW1pdCB0aGUgaGVpZ2h0IG9mIHRoZSBpbWFnZS5cbiAqIFsyXSBNYWtlIHRoZSBpbWFnZSBhbHdheXMgZml0IGluc2lkZSB0aGUgZWxlbWVudOKAmXMgLyBjb250YWluZXLigJlzIHNpemUuXG4gKiBbM10gU2V0IHNwYWNpbmcgZm9yIGV2ZXJ5IGRpcmVjdCBjaGlsZCBlbGVtZW50IG9mIHRoZSBjYWxsb3V0XG4gKiAgICAgZXhjZXB0IHRoZSBsYXN0IG9uZS4gTG93ZXIgdGhlIHNlbGVjdG9yIHNwZWNpZmljaXR5IHZpYSBgOndoZXJlYFxuICogICAgIHRvIG1ha2UgaXQgb3ZlcnJpZGVhYmxlIHZpYSBvdGhlciBzZWxlY3RvcnMgKHNlZSB0aXRsZSBhbmQgbWVkaWEpLlxuICovXG4uYy1jYWxsb3V0IHtcbiAgcGFkZGluZzogMzJweCA0OHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDMxMzI7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLWNhbGxvdXQge1xuICAgIHBhZGRpbmc6IDI0cHggMjRweDtcbiAgfVxufVxuLmMtY2FsbG91dCA+IDp3aGVyZSgqICsgKjpub3QoOmxhc3QtY2hpbGQpKSB7IC8qIFszXSAqL1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuXG4uYy1jYWxsb3V0X19tZWRpYSB7XG4gIG1hcmdpbi1ib3R0b206IDMycHg7XG59XG5cbi5jLWNhbGxvdXRfX2ltYWdlIHtcbiAgaGVpZ2h0OiAxNDRweCAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbiAgb2JqZWN0LWZpdDogY29udGFpbjsgLyogWzJdICovXG59XG5cbi5jLWNhbGxvdXRfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5jLWNhbGxvdXRfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuNDM3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIC5jLWNhbGxvdXRfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNDQUxMT1VUXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIE92ZXJyaWRlIGJyYW5kIHRoZW1lIGJhY2tncm91bmQgd2l0aCBjdXN0b20gY2FsbG91dCBjb2xvci5cbiAqL1xuLmMtY2FsbG91dFtkYXRhLXRoZW1lPWJyYW5kXSB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBpdGNzcy9uby1hdC1pbXBvcnRhbnQgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogIzMwMzEzMiAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0lOTElORS1FRElUQUJMRVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBBZGQgcHJvcGVyIGJ1dHRvbiBzcGFjaW5nLlxuICogWzJdIFJlc2V0IHJpZ2h0IHBhZGRpbmcgYmVjYXVzZSBicm93c2Vy4oCZcyBhbHJlYWR5IGFkZCBzYWZlLXNwYWNlIHRoZXJlXG4gKiAgICAgd2hlbiBub3QgaW4gZWRpdGluZyBtb2RlLlxuICogWzNdIFJlc2V0IGFsbCBpbnB1dCBwcm9wZXJ0aWVzIHdoZW4gaW4gbm9uLWVkaXRpbmcgbW9kZS5cbiAqIFs0XSBIaWRlIHRoZSBzdWJtaXQgYW5kIHJlc2V0IGJ1dHRvbiB3aGVuIGluIG5vbi1lZGl0aW5nIG1vZGUuXG4gKiBbNV0gU2hvdyB0aGUgc3VibWl0IGFuZCByZXNldCBidXR0b24gYW5kIGhpZGUgdGhlIGVkaXQgYnV0dG9uXG4gKiAgICAgd2hlbiBpbiBlZGl0aW5nIG1vZGUuXG4gKiBbNl0gQWRkIHRoZSBhZGRvbiBtaW5pbXVtIGBtaW4td2lkdGhgIHRvIHRoZSBpbnB1dCBzaXplciB3aWR0aC5cbiAqIFs3XSBBZGQgdGhlIGR5bmFtaWMgc2l6ZXIgdmlhIGEgcHNldWRvIGVsZW1lbnQuXG4gKiBbOF0gVGhlIHNpemVyIHdpZHRoIGlzIGNvbnRyb2xsZWQgdmlhIHRoZSBpbnB1dCB2YWx1ZSB0aGF0IGlzIGJlaW5nXG4gKiAgICAgZHluYW1pY2FsbHkgdXBkYXRlZCB2aWEgdGhlIGBkYXRhLWlubGluZS1lZGl0YWJsZS1zaXplYCBhdHRyaWJ1dGUuXG4gKiBbOV0gSW5jbHVkZSB0aGUgZm9udC1zaXplIGFuZCBmb250LXdpZHRoIHRvIG1ha2UgbWVhc3VyaW5nIHRoZSBjb250ZW50IG1vcmUgcm9idXN0LlxuICogWzEwXSBVc2UgYW4gaW5saW5lIGdyaWQgdG8gcG9zaXRpb24gdGhlIGlucHV0IGFuZCB0YWtpbmcgdXAgdGhlIHNpemVyIGVsZW1lbnTigJlzIHNwYWNlLlxuICogWzExXSBBZGp1c3Qgc2l6ZXIgd2hlbiBpbiBlZGl0YWJsZSBtb2RlLlxuICogWzEyXSBQb3NpdGlvbiB0aGUgaW5wdXQgYW5kIHRoZSBzaXplciBpbiBvbmUgY29sdW1uIGFuZCBtYWtlIGl0IGdyb3cgZXF1YWxseS5cbiAqICAgICAgVGhlIGFkZG9uIGlzIHBvc2l0aW9uZWQgaW4gdGhlIHNlY29uZCBjb2x1bW4uXG4gKi9cbi5jLWlubGluZS1lZGl0YWJsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLmMtaW5saW5lLWVkaXRhYmxlOmhvdmVyIHtcbiAgY3Vyc29yOiB0ZXh0O1xufVxuLmMtaW5saW5lLWVkaXRhYmxlW2FyaWEtaGlkZGVuPWZhbHNlXSAuYy1pbmxpbmUtZWRpdGFibGVfX3N1Ym1pdCxcbi5jLWlubGluZS1lZGl0YWJsZVthcmlhLWhpZGRlbj1mYWxzZV0gLmMtaW5saW5lLWVkaXRhYmxlX19jYW5jZWwge1xuICBkaXNwbGF5OiBibG9jazsgLyogWzVdICovXG59XG4uYy1pbmxpbmUtZWRpdGFibGVbYXJpYS1oaWRkZW49ZmFsc2VdIC5jLWlubGluZS1lZGl0YWJsZV9fYnRuIHtcbiAgZGlzcGxheTogbm9uZTsgLyogWzVdICovXG59XG4uYy1pbmxpbmUtZWRpdGFibGVbYXJpYS1oaWRkZW49ZmFsc2VdIC5jLWlucHV0IHtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4OyAvKiBbMV0gKi9cbn1cblxuLmMtaW5saW5lLWVkaXRhYmxlX193cmFwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuLmMtaW5saW5lLWVkaXRhYmxlX19pbnB1dCxcbi5jLWlubGluZS1lZGl0YWJsZV9faW5wdXQtYWRkb24ge1xuICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG4uYy1pbmxpbmUtZWRpdGFibGU6bm90KFthcmlhLWhpZGRlbj1mYWxzZV0pIC5jLWlubGluZS1lZGl0YWJsZV9faW5wdXQsXG4uYy1pbmxpbmUtZWRpdGFibGU6bm90KFthcmlhLWhpZGRlbj1mYWxzZV0pIC5jLWlubGluZS1lZGl0YWJsZV9faW5wdXQtYWRkb24geyAvKiBbM10gKi9cbiAgaGVpZ2h0OiBpbmhlcml0O1xuICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gIHBhZGRpbmc6IGluaGVyaXQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5jLWlubGluZS1lZGl0YWJsZV9faW5wdXQge1xuICBncmlkLWFyZWE6IDEvMjsgLyogWzEyXSAqL1xufVxuXG4uYy1pbmxpbmUtZWRpdGFibGVfX2lucHV0LWFkZG9uIHtcbiAgZ3JpZC1hcmVhOiAxLzM7IC8qIFsxMl0gKi9cbn1cblxuLmMtaW5saW5lLWVkaXRhYmxlOm5vdChbYXJpYS1oaWRkZW49ZmFsc2VdKSAuYy1pbmxpbmUtZWRpdGFibGVfX2lucHV0IHtcbiAgcGFkZGluZy1yaWdodDogMDsgLyogWzJdICovXG59XG5cbi5jLWlubGluZS1lZGl0YWJsZV9fY2FuY2VsLFxuLmMtaW5saW5lLWVkaXRhYmxlX19zdWJtaXQge1xuICBkaXNwbGF5OiBub25lOyAvKiBbNF0gKi9cbn1cblxuLmMtaW5saW5lLWVkaXRhYmxlX19idG4sXG4uYy1pbmxpbmUtZWRpdGFibGVfX2NhbmNlbCB7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG5cbi5jLWlubGluZS1lZGl0YWJsZSBbZGF0YS1pbmxpbmUtZWRpdGFibGUtc2l6ZV0ge1xuICBkaXNwbGF5OiBpbmxpbmUtZ3JpZDsgLyogWzEwXSAqL1xufVxuXG5bZGF0YS1pbmxpbmUtZWRpdGFibGUtc2l6ZV06OmFmdGVyIHsgLyogWzddICovXG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS1pbmxpbmUtZWRpdGFibGUtc2l6ZSkgXCIgXCI7IC8qIFs4XSAqL1xuICBkaXNwbGF5OiBibG9jaztcbiAgZ3JpZC1hcmVhOiAxLzI7IC8qIFsxMl0gKi9cbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgd2lkdGg6IG1pbi1jb250ZW50O1xuICBtaW4td2lkdGg6IDFlbTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmMtaW5saW5lLWVkaXRhYmxlW2FyaWEtaGlkZGVuPWZhbHNlXSBbZGF0YS1pbmxpbmUtZWRpdGFibGUtc2l6ZV06OmFmdGVyIHsgLyogWzExXSAqL1xuICBmb250LXNpemU6IDFyZW07XG4gIC8qIFs5XSAqL1xuICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7IC8qIFs5XSAqL1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICNQUk9EVUNULUNBUkRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBAVE9ETzpcbiAqIGV4dHJhY3QgY2FyZC1wYXR0ZXJuIHN0eWxlcyB0byBzZXR0aW5ncyBsYXllciBmb3IgcmV1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5LlxuICovXG4vKipcbiAqIFsxXSBBcHBseSBzcGFjaW5nIHRvIGZpcnN0IGNoaWxkLCBub3QgdG8gcGFuZWwgdG8gYXZvaWQgdmlzaWJsZSBzcGFjaW5nXG4gKiAgICAgd2hlbiBwYW5lbCBpcyBjb2xsYXBzZWQuXG4gKiBbMl0gU2NvcGVkIG1vZGlmaWNhdGlvbnMgdG8gcHJpY2UtYm94OlxuICogICAgIHJpZ2h0LWFsaWduZWQsIG1vcmUgY29uZGVuc2VkIGFuZCB3aXRob3V0IGJvcmRlci5cbiAqICAgICBBcyBtb2RpZmljYXRpb25zIGFyZSBxdWl0ZSBzcGVjaWFsLFxuICogICAgIGEgZ2VuZXJhbCBtb2RpZmllciBpcyBoYXJkIHRvIGFic3RyYWN0LiBAVE9ETzogcmVjb25zaWRlclxuICogWzNdIFBsYWNlIGZlYXR1cmVzIG9uIHRoZSByaWdodCBzaWRlIGluIGhvcml6b250YWwgbW9kZS5cbiAqIFs0XSBEaXNwbGF5IGZhdi1idXR0b24gYW5kIHRhZyBiZWxvdyBlYWNoIG90aGVyIGluIGxhcmdlciBjb250YWluZXIgd2lkdGhzLlxuICogWzVdIFJlc2VydmUgZW5vdWdoIHNwYWNlIGZvciB0YWctbGlzdCB0byBzaG93IGl0ZW1zIGhvcml6b250YWxseVxuICogICAgIGlmIHNwYWNlIGlzIGF2YWlsYWJsZS5cbiAqIFs2XSBBbGlnbiB0byByaWdodCBpbiBob3Jpem9udGFsIG1vZGUuXG4gKiBbN10gS2VlcCBmbGV4LWl0ZW1zIGluIHBsYWNlIGFuZCBkbyBub3QgZGlzdHJpYnV0ZSwgZS5nLiBpbiBjb250ZXh0IG9mXG4gKiAgICAgZXF1YWwtaGVpZ2h0IGdyaWQuXG4gKiBbOF0gS2VlcCBmYXZvcml0ZXMgYWxpZ25lZCB0b3AsIGVzcGVjaWFsbHkgd2hlbiB0YWctbGlzdCB3cmFwc1xuICogICAgIChpbiBob3Jpem9udGFsIG1vZGUpLlxuICogWzldIERlY3JlYXNlIGF2YWlsYWJsZSBzcGFjaW5nIGZvciBwcmljaW5nIHRvIGluY3JlYXNlIHNwYWNpbmcgZm9yIHRpdGxlIGFuZFxuICogICAgICBpbWFnZS5cbiAqIFsxMF0gVXNlIGBncmlkLXRlbXBsYXRlLXJvd3NgIHRvIHRyYW5zaXRpb24gdGhlIGhlaWdodC5cbiAqICAgICAgKHNlZSBodHRwczovL3d3dy5zdGVmYW5qdWRpcy5jb20vc25pcHBldHMvaG93LXRvLWFuaW1hdGUtaGVpZ2h0LXdpdGgtY3NzLWdyaWQvKVxuICogICAgICBUaGUgdHJpZ2dlciBidXR0b24gbXVzdCBiZSB0YWtlbiBvdXQgb2YgdGhlIGdyaWQgdmlhIGFic29sdXRlIHBvc2l0aW9uaW5nXG4gKiAgICAgIGZvciB0aGlzIHRlY2huaXF1ZSB0byB3b3JrLlxuICogWzExXSBEZWZlbnNpdmVseSByZXNldCBzcGFjaW5nIGZyb20gYXJiaXRyYXJ5IGVsZW1lbnQuXG4gKiBbMTJdIFJvdWdobHkgYWxpZ24gYm90dG9tIG9mIHRhZ3Mgd2l0aCBvcHRpb24gdGFnIG9uIHJpZ2h0IHNpZGUgaW4gaG9yaXpvbnRhbFxuICogICAgICBtb2RlIGlmIHRpdGxlIGlzIG5vdCBtdWx0aWxpbmUuIEFzIHRoaXMgYWxzbyBkZXBlbmRzIG9uIHRpdGxlIGFuZFxuICogICAgICBmYXYtYnV0dG9uIHNpemUgaXQgY2FuIG5vdCBiZSBwZXJmZWN0bHkgYWxpZ25lZC5cbiAqIFsxM10gQWxpZ24gdG8gcmlnaHQgKGR1ZSB0byByZXZlcnNlZCBkaXJlY3Rpb24pLlxuICogWzE0XSBNYWtlIHRoZSBpbWFnZSBhbHdheXMgZml0IGluc2lkZSB0aGUgZWxlbWVudOKAmXMgYXNwZWN0IHJhdGlvLlxuICogWzE1XSBNYWtlIGNoaWxkIGVsZW1lbnRzIGluYWN0aXZlIGJ5IGRpc2FibGluZyBwb2ludGVyIGV2ZW50cyBhbmQgcmVkdWNlXG4gKiAgICAgIG9wYWNpdHkuXG4gKiBbMTZdIFBvc2l0aW9uIGJ1dHRvbihzKSBhYnNvbHV0ZWx5IGluIGVtcHR5IGNhcmQgdmFyaWFudC5cbiAqIFsxN10gQWRkIGEgZmFsbGJhY2sgZWxlbWVudCB3aXRoIGEgYmFja2dyb3VuZCBjb2xvciBhbmQgYSBpY29uLlxuICogICAgICAtIEFzcGVjdCByYXRpbyBzaG91bGQgYmUgY29udHJvbGxlZCB2aWEgYC5vLXJhdGlvLlxuICogICAgICAtIFVzZSBgLmMtaWNvbmAgYW5kIGAuYy1pY29uLS1bc2VtYW50aWMtSUNPTl1gIHRvIHNldCB0aGUgaWNvbi5cbiAqIFsxOF0gQWxpZ24gZmF2LWJ1dHRvbiBhbHdheXMgdG8gdGhlIHJpZ2h0LCByZWdhcmRsZXNzIG9mIG90aGVyXG4gKiAgICAgIGAuYy1wcm9kdWN0LWNhcmRfX2ZlYXR1cmVzX19pdGVtYHMuXG4gKiBbMTldIE1vdmUgc3RhdHVzIHZpc3VhbGx5IHRvIHRoZSB0b3AgaW4gc21hbGwgY29udGFpbmVyIHdpZHRocy5cbiAqIFsyMF0gT3ZlcndyaXRlIGBvcmRlcjogLTFgIHRvIGRpc3BsYXkgc3RhdHVzICBpbiBzb3VyY2Ugb3JkZXIgaW4gbGFyZ2VyXG4gKiAgICAgIGNvbnRhaW5lciB3aWR0aHMuXG4gKiBbMjFdIFNldCBgLmMtcHJvZHVjdC1jYXJkX19pbmxpbmVgIGVsZW1lbnRzIHdpZHRoIHRvIGEgcGVyY2VudGFnZSBvZiB0aGVcbiAqICAgICAgcGFyZW504oCZcyB3aWR0aCwgdGFraW5nIGZsZXggZ2FwcyBpbnRvIGFjY291bnQuIFRoZSBlbGVtZW50cyBhcmUgbm90XG4gKiAgICAgIGFsbG93ZWQgdG8gZ3Jvdywgb25seSB0byBzaHJpbmsuIFRoaXMga2VlcHMgdGhlIHdpZHRocyBvZlxuICogICAgICBgLmMtcHJvZHVjdC1jYXJkX19tZWRpYWAgYW5kIGAuYy1wcm9kdWN0LWNhcmRfX21ldGFgIGVsZW1lbnRzIGFsd2F5cyB0aGVcbiAqICAgICAgc2FtZSBldmVuIGlmIG9uZSBvciBtb3JlIGAuYy1wcm9kdWN0LWNhcmRfX2lubGluZWAgYXJlIG5vdCBwcmVzZW50XG4gKiAgICAgIChlLmcuIGAuYy1wcm9kdWN0LWNhcmRfX3ByaWNpbmdgIGluIGAuYy1wcm9kdWN0LWNhcmQtLWluYWN0aXZlYCBhbmRcbiAqICAgICAgYC5jLXByb2R1Y3QtY2FyZC0tZW1wdHlgKS5cbiAqICAgICAgYGZsZXgtYmFzaXNgIGNhbGN1bGF0aW9uIHBhcnRzOlxuICogICAgICAgICAgLSAxMDAlID0+IGZ1bGwgcGFyZW50IHdpZHRoc1xuICogICAgICAgICAgLSAxNnB4ICogMlxuICogICAgICAgICAgICA9PiB0b3RhbCB3aWR0aCBvZiBhbGwgZ2Fwc1xuICogICAgICAgICAgLSAwLjRcbiAqICAgICAgICAgICAgPT4gbWF4LiBwZXJjZW50YWdlIGVsZW1lbnQgd2lkdGggaW4gZGVjaW1hbCBmb3JtYXQgKDQwJSA9PiAwLjQpXG4gKiBbMjJdIE92ZXJ3cml0ZSBzZXR0aW5ncyBmcm9tIFsyMV0gZm9yIHRoZSBwcmljaW5nIGVsZW1lbnQgdG8gbGV0IGl0IGdyb3cgaW50b1xuICogICAgICB0aGUgYXZhaWxhYmxlIHNwYWNlLlxuICogWzIzXSBTd2FwIHBvc2l0aW9uIG9mIHRhZyBsYWJlbCBhbmQgZmF2LWJ1dHRvbi5cbiAqIFsyNF0gUHVzaCB0aGUgdGFnIGxhYmVsIHRvIHRoZSBsZWZ0IGluIHNtYWxsIGNvbnRhaW5lciB3aWR0aHMsIGV2ZW4gaWYgaXQgaXNcbiAqICAgICAgdGhlIG9ubHkgY2hpbGQgb2YgYC5jLXByb2R1Y3QtY2FyZF9fZmVhdHVyZXNgLlxuICogWzI1XSBPcmRlciBpbiB2ZXJ0aWNhbCBtb2RlIHZpYSBET00gb3JkZXI6XG4gKiAgICAgIGhlYWRlciArIG1ldGEgfCBtZWRpYSB8IHByaWNpbmdcbiAqICAgICAgT3JkZXIgaW4gaG9yaXpvbnRhbCBtb2RlICh2aXN1YWxseSk6XG4gKiAgICAgIGhlYWRlciArIG1lZGlhIHwgbWVkaWEgfCBwcmljaW5nXG4gKi9cbi5jLXByb2R1Y3QtY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogWzE2XSAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDE2cHg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDsgLyogWzddICovXG4gIHBhZGRpbmc6IDI0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNGU0ZTQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcbn1cbi5jLXByb2R1Y3QtY2FyZCA+ICoge1xuICBmbGV4LWdyb3c6IDE7XG4gIGZsZXgtc2hyaW5rOiAxO1xuICBmbGV4LWJhc2lzOiAxMDAlO1xufVxuLmMtcHJvZHVjdC1jYXJkIC5jLXByaWNlLWJveF9faGVhZGVyIHtcbiAgcGFkZGluZzogMDsgLyogWzJdICovXG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG5cbi5jLXByb2R1Y3QtY2FyZF9fbWVkaWEtZmFsbGJhY2sgeyAvKiBbMTddICovXG4gIGJhY2tncm91bmQtY29sb3I6ICNkOGQ4ZDg7XG59XG5cbi5jLXByb2R1Y3QtY2FyZF9fbWVkaWEtZmFsbGJhY2tfX2ljb24geyAvKiBbMTddICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogIzdjN2Q3ZTtcbn1cbi5jLXByb2R1Y3QtY2FyZF9fbWVkaWEtZmFsbGJhY2tfX2ljb246OmJlZm9yZSB7XG4gIGZvbnQtc2l6ZTogNy41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLmMtcHJvZHVjdC1jYXJkX19pbWFnZSB7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47IC8qIFsxNF0gKi9cbn1cblxuLmMtcHJvZHVjdC1jYXJkX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS40Mzc1cmVtO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5jLXByb2R1Y3QtY2FyZF9fc3VidGl0bGUge1xuICBmb250LXNpemU6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5jLXByb2R1Y3QtY2FyZF9faGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxNnB4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4uYy1wcm9kdWN0LWNhcmRfX2hlYWRlciA+ICoge1xuICBmbGV4LWdyb3c6IDE7XG4gIGZsZXgtc2hyaW5rOiAxO1xufVxuXG4uYy1wcm9kdWN0LWNhcmRfX2ZlYXR1cmVzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyAvKiBbMjNdICovXG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBjb2x1bW4tZ2FwOiAxNnB4O1xufVxuXG4uYy1wcm9kdWN0LWNhcmRfX2ZlYXR1cmVzX19pdGVtLS10YWcge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87IC8qIFsyNF0gKi9cbn1cblxuLmMtcHJvZHVjdC1jYXJkX190YWctbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTZweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyAvKiBbMTJdICovXG4gIGZsZXgtZ3JvdzogMzsgLyogWzVdICovXG59XG5cbi5jLXByb2R1Y3QtY2FyZF9fdGFnLWxpc3RfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4uYy1wcm9kdWN0LWNhcmRfX2JvZHkgPiA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8qIFsxMV0gKi9cbn1cblxuLmMtcHJvZHVjdC1jYXJkX19idXR0b25zIHtcbiAgLS1idXR0b24tZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDE2cHg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXgtZ3JvdzogMTtcbiAgZmxleC1zaHJpbms6IDE7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4uYy1wcm9kdWN0LWNhcmRfX3N0YXR1cyArIC5jLXByb2R1Y3QtY2FyZF9fYnV0dG9ucyB7XG4gIGZsZXgtYmFzaXM6IGF1dG87XG59XG5cbi5jLXByb2R1Y3QtY2FyZF9fYnV0dG9uc19faXRlbSB7XG4gIGZsZXgtZ3JvdzogMDtcbiAgZmxleC1zaHJpbms6IDE7XG4gIGZsZXgtYmFzaXM6IDEwMCU7XG4gIG1heC13aWR0aDogMzAwcHg7XG59XG5cbi5jLXByb2R1Y3QtY2FyZF9fc3RhdHVzIHtcbiAgb3JkZXI6IC0xOyAvKiBbMTldICovXG59XG5cbi5jLXByb2R1Y3QtY2FyZF9fcHJvZ3Jlc3NfX3dyYXBwZXIge1xuICBtYXJnaW4tdG9wOiAxNnB4O1xufVxuXG4uYy1wcm9kdWN0LWNhcmRfX3Byb2dyZXNzX19sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uanMtY2FyZC1leHBhbmRhYmxlX190cmlnZ2VyIC5jLWJ0bl9faWNvbiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xufVxuLmpzLWNhcmQtZXhwYW5kYWJsZV9fdHJpZ2dlclthcmlhLWV4cGFuZGVkPXRydWVdIC5jLWJ0bl9faWNvbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpO1xufVxuXG4uYy1wcm9kdWN0LWNhcmRfX2V4cGFuZGFibGUge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgLyogWzEwXSAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIFsxMF0gKi9cbiAgZGlzcGxheTogZ3JpZDsgLyogWzEwXSAqL1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjsgLyogWzEwXSAqL1xuICBwYWRkaW5nLXRvcDogMjRweDsgLyogWzEwXSAqL1xufVxuLmMtcHJvZHVjdC1jYXJkX19leHBhbmRhYmxlLmlzLW9wZW4ge1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjsgLyogWzEwXSAqL1xufVxuLmMtcHJvZHVjdC1jYXJkX19leHBhbmRhYmxlID4gLmMtYnRuOmZpcnN0LWNoaWxkIHtcbiAgcG9zaXRpb246IGFic29sdXRlOyAvKiBbMTBdICovXG59XG5cbi5jLXByb2R1Y3QtY2FyZF9fZXhwYW5kYWJsZS1wYW5lbCB7XG4gIG92ZXJmbG93OiBoaWRkZW47IC8qIFsxMF0gKi9cbn1cbi5jLXByb2R1Y3QtY2FyZF9fZXhwYW5kYWJsZS1wYW5lbCA+ICo6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAyNHB4OyAvKiBbMV0gKi9cbn1cbi5jLXByb2R1Y3QtY2FyZF9fZXhwYW5kYWJsZS1wYW5lbCA+ICo6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5cbi5jLXByb2R1Y3QtY2FyZF9fZXhwYW5kYWJsZS1wYW5lbF9fdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuXG4uYy1wcm9kdWN0LWNhcmQtLWluYWN0aXZlID4gKjpub3QoLmMtcHJvZHVjdC1jYXJkX19idXR0b25zKTpub3QoLmMtcHJvZHVjdC1jYXJkX19zdGF0dXMpIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIFsxNV0gKi9cbiAgb3BhY2l0eTogMTsgLyogWzE1XSAqL1xufVxuXG4uYy1wcm9kdWN0LWNhcmQtLWVtcHR5ID4gKjpub3QoLmMtcHJvZHVjdC1jYXJkX19idXR0b25zKTpub3QoLmMtcHJvZHVjdC1jYXJkX19zdGF0dXMpIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIFsxNV0gKi9cbiAgLyogWzE1XSAqL1xufVxuXG5bZGF0YS1jb250YWluZXItcXVlcnk9cHJvZHVjdC1jYXJkXSB7XG4gIC0tY29udGFpbmVyLXdpZHRoczogXCIwIDQ1MCA2ODBcIjtcbn1cbltkYXRhLWNvbnRhaW5lci1xdWVyeT1wcm9kdWN0LWNhcmRdW2RhdGEtY29udGFpbmVyLXdpZHRofj1cIjQ1MFwiXSAuYy1wcm9kdWN0LWNhcmRfX21lZGlhLFxuW2RhdGEtY29udGFpbmVyLXF1ZXJ5PXByb2R1Y3QtY2FyZF1bZGF0YS1jb250YWluZXItd2lkdGh+PVwiNDUwXCJdIC5jLXByb2R1Y3QtY2FyZF9fbWV0YSxcbltkYXRhLWNvbnRhaW5lci1xdWVyeT1wcm9kdWN0LWNhcmRdW2RhdGEtY29udGFpbmVyLXdpZHRofj1cIjQ1MFwiXSAuYy1wcm9kdWN0LWNhcmRfX3N0YXR1cyB7XG4gIGZsZXgtYmFzaXM6IGNhbGMoNTAlIC0gMTZweCk7XG59XG5bZGF0YS1jb250YWluZXItcXVlcnk9cHJvZHVjdC1jYXJkXVtkYXRhLWNvbnRhaW5lci13aWR0aH49XCI0NTBcIl0uYy1wcm9kdWN0LWNhcmQtLWVtcHR5IC5jLXByb2R1Y3QtY2FyZF9fYnV0dG9ucyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLyogWzE2XSAqL1xuICBib3R0b206IDI0cHg7XG4gIHJpZ2h0OiAyNHB4O1xufVxuW2RhdGEtY29udGFpbmVyLXF1ZXJ5PXByb2R1Y3QtY2FyZF1bZGF0YS1jb250YWluZXItd2lkdGh+PVwiNDUwXCJdIC5jLXByb2R1Y3QtY2FyZF9fc3RhdHVzIHtcbiAgb3JkZXI6IGluaXRpYWw7IC8qIFsyMF0gKi9cbn1cbltkYXRhLWNvbnRhaW5lci1xdWVyeT1wcm9kdWN0LWNhcmRdW2RhdGEtY29udGFpbmVyLXdpZHRofj1cIjQ1MFwiXSAuYy1wcm9kdWN0LWNhcmRfX21lZGlhLFxuW2RhdGEtY29udGFpbmVyLXF1ZXJ5PXByb2R1Y3QtY2FyZF1bZGF0YS1jb250YWluZXItd2lkdGh+PVwiNDUwXCJdIC5jLXByb2R1Y3QtY2FyZF9faGVhZGVyIHtcbiAgb3JkZXI6IC0xOyAvKiBbMjVdICovXG59XG5bZGF0YS1jb250YWluZXItcXVlcnk9cHJvZHVjdC1jYXJkXVtkYXRhLWNvbnRhaW5lci13aWR0aH49XCI2ODBcIl0ge1xuICAvKipcbiAgICogSEVBREVSXG4gICAqL1xuICAvKipcbiAgICogRkVBVFVSRVNcbiAgICovXG4gIC8qKlxuICAgKiBQUklDRSBCT1hcbiAgICovXG4gIC8qIFsyXSAqL1xuICAvKiBbMl0gKi9cbiAgLyogWzJdICovXG4gIC8qKlxuICAgKiBQUk9HUkVTU1xuICAgKi9cbn1cbltkYXRhLWNvbnRhaW5lci1xdWVyeT1wcm9kdWN0LWNhcmRdW2RhdGEtY29udGFpbmVyLXdpZHRofj1cIjY4MFwiXSAuYy1wcm9kdWN0LWNhcmRfX2hlYWRlciB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG5bZGF0YS1jb250YWluZXItcXVlcnk9cHJvZHVjdC1jYXJkXVtkYXRhLWNvbnRhaW5lci13aWR0aH49XCI2ODBcIl0gLmMtcHJvZHVjdC1jYXJkX19mZWF0dXJlcyB7XG4gIGdhcDogMTZweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyAvKiBbNF0gKi9cbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgLyogWzhdICovXG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgLyogWzZdICovXG4gIG9yZGVyOiAxOyAvKiBbM10gKi9cbn1cbltkYXRhLWNvbnRhaW5lci1xdWVyeT1wcm9kdWN0LWNhcmRdW2RhdGEtY29udGFpbmVyLXdpZHRofj1cIjY4MFwiXSAuYy1wcm9kdWN0LWNhcmRfX2ZlYXR1cmVzX19pdGVtLS1mYXYtYnV0dG9uIHtcbiAgb3JkZXI6IDE7IC8qIFsxOF0gKi9cbn1cbltkYXRhLWNvbnRhaW5lci1xdWVyeT1wcm9kdWN0LWNhcmRdW2RhdGEtY29udGFpbmVyLXdpZHRofj1cIjY4MFwiXSAuYy1wcm9kdWN0LWNhcmRfX2ZlYXR1cmVzX19pdGVtLS10YWcge1xuICBtYXJnaW4tcmlnaHQ6IGluaXRpYWw7IC8qIFsyNF0gKi9cbn1cbltkYXRhLWNvbnRhaW5lci1xdWVyeT1wcm9kdWN0LWNhcmRdW2RhdGEtY29udGFpbmVyLXdpZHRofj1cIjY4MFwiXSAuYy1wcm9kdWN0LWNhcmRfX2lubGluZSB7XG4gIGZsZXgtZ3JvdzogMDsgLyogWzIxXSAqL1xuICBmbGV4LXNocmluazogMTsgLyogWzIxXSAqL1xuICBmbGV4LWJhc2lzOiBjYWxjKCgxMDAlIC0gMTZweCAqIDIpICogMC40KTsgLyogWzIxXSAqL1xufVxuW2RhdGEtY29udGFpbmVyLXF1ZXJ5PXByb2R1Y3QtY2FyZF1bZGF0YS1jb250YWluZXItd2lkdGh+PVwiNjgwXCJdIC5jLXByb2R1Y3QtY2FyZF9fcHJpY2luZyB7XG4gIGZsZXgtZ3JvdzogMTsgLyogWzIyXSAqL1xuICBmbGV4LWJhc2lzOiAwOyAvKiBbMjJdICovXG4gIG1pbi13aWR0aDogMDsgLyogWzIyXSAqL1xufVxuW2RhdGEtY29udGFpbmVyLXF1ZXJ5PXByb2R1Y3QtY2FyZF1bZGF0YS1jb250YWluZXItd2lkdGh+PVwiNjgwXCJdIC5jLXByaWNlLWJveF9faGVhZGVyIHtcbiAgYm9yZGVyOiAwO1xufVxuW2RhdGEtY29udGFpbmVyLXF1ZXJ5PXByb2R1Y3QtY2FyZF1bZGF0YS1jb250YWluZXItd2lkdGh+PVwiNjgwXCJdIC5jLXByaWNlLWJveF9faGVhZGVyLFxuW2RhdGEtY29udGFpbmVyLXF1ZXJ5PXByb2R1Y3QtY2FyZF1bZGF0YS1jb250YWluZXItd2lkdGh+PVwiNjgwXCJdIC5jLXByaWNlLWJveF9fYm9keV9fY29udGVudCxcbltkYXRhLWNvbnRhaW5lci1xdWVyeT1wcm9kdWN0LWNhcmRdW2RhdGEtY29udGFpbmVyLXdpZHRofj1cIjY4MFwiXSAuYy1wcmljZS1ib3hfX2FkZGl0aW9uYWwtaW5mb19fdGV4dCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuW2RhdGEtY29udGFpbmVyLXF1ZXJ5PXByb2R1Y3QtY2FyZF1bZGF0YS1jb250YWluZXItd2lkdGh+PVwiNjgwXCJdIC5jLXByaWNlLWJveF9fYm9keSB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5bZGF0YS1jb250YWluZXItcXVlcnk9cHJvZHVjdC1jYXJkXVtkYXRhLWNvbnRhaW5lci13aWR0aH49XCI2ODBcIl0gLmMtcHJpY2UtYm94X19kaXNjb3VudCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5bZGF0YS1jb250YWluZXItcXVlcnk9cHJvZHVjdC1jYXJkXVtkYXRhLWNvbnRhaW5lci13aWR0aH49XCI2ODBcIl0gLmMtcHJvZHVjdC1jYXJkX19wcm9ncmVzc19fbGFiZWwge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbltkYXRhLWNvbnRhaW5lci1xdWVyeT1wcm9kdWN0LWNhcmRdW2RhdGEtY29udGFpbmVyLXdpZHRofj1cIjY4MFwiXSAuYy1wcm9kdWN0LWNhcmRfX2J1dHRvbnMge1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgLyogWzEzXSAqL1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZmxleC1ncm93OiAxO1xufVxuW2RhdGEtY29udGFpbmVyLXF1ZXJ5PXByb2R1Y3QtY2FyZF1bZGF0YS1jb250YWluZXItd2lkdGh+PVwiNjgwXCJdIC5jLXByb2R1Y3QtY2FyZF9fYnV0dG9uc19faXRlbSB7XG4gIGZsZXgtYmFzaXM6IGF1dG87XG59XG5cbi8qKlxuICogWzFdIEFkZCBvdmVybGF5IHRvIHZpc3VhbGl6ZSBibG9ja2VkIGluYWN0aXZlL2Rpc2FibGVkIHN0YXRlLlxuICogICAgIER1ZSB0byB0aGUgZmxleGlibGUgbmF0dXJlIG9mIHRoZSBjb21wb25lbnQgb2YgaW5jbHVkaW5nXG4gKiAgICAgYXJiaXRyYXJ5IGVsZW1lbnRzIGluc2lkZSwgYW4gb3ZlcmxheSBpcyB1c2VkIGluc3RlYWQgb2ZcbiAqICAgICBjb2xvcml6aW5nIHNpbmdsZSBlbGVtZW50cyBpbnNpZGUgd2hpY2ggd291bGQgYWRkIGNvbXBsZXhpdHkgYW5kXG4gKiAgICAgaXMgZXJyb3ItcHJvbmUuXG4gKiAgICAgT3B0aW9ucyBpbiBkZWZhdWx0IGRvIG5vdCBzYXRpc2Z5IHRoZSB2aXN1YWwgcmVxdWlyZW1lbnRzIGZvciB0aGlzIGJyYW5kLlxuICogWzJdIFN0YWNrIGFib3ZlIGxheWVyLCBleGNsdWRlIGZyb20gaW5hY3RpdmUgc3RhdGUuXG4gKi9cbi5jLXByb2R1Y3QtY2FyZC0taW5hY3RpdmUge1xuICAvKiBbMV0gKi9cbn1cbi5jLXByb2R1Y3QtY2FyZC0taW5hY3RpdmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3BhY2l0eTogMC42O1xuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuXG4uYy1wcm9kdWN0LWNhcmRfX2J1dHRvbnMsXG4uYy1wcm9kdWN0LWNhcmRfX3N0YXR1cyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogWzJdICovXG4gIHotaW5kZXg6IDEwOyAvKiBbMl0gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1BST0RVQ1QtU0VBUkNIXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIFNwYW4gaGVhZGVyIGFsd2F5cyBhY3Jvc3MgYWxsIGNvbHVtbnMuXG4gKiBbMl0gSW5pdGlhbGx5IGhpZGUgc2lkZWJhciBiZWxvdyBicmVha3BvaW50LiBAVE9ETzogdG9nZ2xlIHZpc2liaWxpdHlcbiAqL1xuLmMtcHJvZHVjdC1zZWFyY2gge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG87XG4gIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcbiAgZ2FwOiAyNHB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTYxcHgpIHtcbiAgLmMtcHJvZHVjdC1zZWFyY2gtLWhhcy1zaWRlYmFyIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDMwMHB4IGF1dG87XG4gIH1cbn1cblxuLmMtcHJvZHVjdC1zZWFyY2hfX2hlYWRlcixcbi5jLXByb2R1Y3Qtc2VhcmNoX19hc2lkZSxcbi5jLXByb2R1Y3Qtc2VhcmNoX19mb290ZXIge1xuICBncmlkLWNvbHVtbjogMS8tMTsgLyogWzFdICovXG59XG5cbi5jLXByb2R1Y3Qtc2VhcmNoX19zaWRlYmFyIHtcbiAgZGlzcGxheTogbm9uZTsgLyogWzJdICovXG59XG4uYy1wcm9kdWN0LXNlYXJjaC0taGFzLXNpZGViYXIgLmMtcHJvZHVjdC1zZWFyY2hfX3NpZGViYXIge1xuICBkaXNwbGF5OiBibG9jazsgLyogWzJdICovXG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtcHJvZHVjdC1zZWFyY2gtLWhhcy1zaWRlYmFyIC5jLXByb2R1Y3Qtc2VhcmNoX19zaWRlYmFyIHtcbiAgICBkaXNwbGF5OiBub25lOyAvKiBbMl0gKi9cbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTYxcHgpIHtcbiAgLmMtcHJvZHVjdC1zZWFyY2gtLWhhcy1zaWRlYmFyIC5jLXByb2R1Y3Qtc2VhcmNoX19hc2lkZSB7XG4gICAgZGlzcGxheTogbm9uZTsgLyogWzJdICovXG4gIH1cbn1cblxuLyoqXG4gKiBbMV0gIFRoZSBJbnRlcmFjdGlvbiBMYXllciBpcyBwbGFjZWQgYWJvdmUgZXZlcnkgb3RoZXIgZWxlbWVudC5cbiAqIFsyXSAgUmVtb3ZlIGJyb3dzZXIgYmFzZWQgZm9jdXMgY29sb3IgaW4gQ2hyb21lLlxuICogWzNdICBBbGlnbiB0aGUgY29udGVudCBhdCB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgdmlld3BvcnQuXG4gKiBbNF0gIElmIHRoZSBjb250ZW50IGV4Y2VlZHMgdGhlIHZpZXdwb3J0IGhlaWdodCwgdGhpcyBzdGlsbCBtYWtlcyB0aGVcbiAqICAgICAgY29udGVudCBhY2Nlc3NpYmxlIChpLmUuIHNjcm9sbGFibGUpLlxuICogWzVdICBQcmV2ZW50IGludGVyYWN0aW9uIHdpdGggY29udGVudCB3aGVuIGNsb3NlZC5cbiAqIFs2XSAgVGhlIGNvbnRlbnQgYWxsb3dzIGFueSBraW5kIG9mIGVsZW1lbnRzLiBUaGlzIGVuc3VyZXMsIHRoYXRcbiAqICAgICAgZWxlbWVudHMgY2FycnlpbmcgYSBkZWZhdWx0IG1hcmdpbi1ib3R0b20gKGA8cD5gIGV0Yy4pIGdldFxuICogICAgICBjb25zY2lvdXNseSByZXNldCB0byBsZXQgdGhlIHN1cnJvdW5kaW5nIHBhZGRpbmcgZG8gaXRzIGpvYiBwcm9wZXJseS5cbiAqIFs3XSAgQXZvaWQgc2hvd2luZyBncmFkaWVudCB3aGVuIG5vdCBuZWNlc3NhcnkuXG4gKiBbOF0gIEluZGljYXRlIGFjdGlvbnMgb24gbm9uLWludGVyYWN0aXZlIGVsZW1lbnRzLlxuICogWzldICBQcmV2ZW50IGVsZW1lbnRzIGluc2lkZSB0aGUgYC5qcy1pbnRlcmFjdGlvbi1sYXllci10cmlnZ2VyYCBjYXRjaGluZyBhbnlcbiAqICAgICAgZXZlbnRzIGR1ZSB0byBldmVudCBkZWxlZ2F0aW9uLlxuICogWzEwXSBBZGQgc3R5bGluZyB0byBkaXNwbGF5IGEgY2xpY2thYmxlIGljb24gYnV0dG9uLlxuICogWzExXSBIaWRlIHdpdGggc2xpZGUgb3V0IGFuaW1hdGlvbiAobGVmdCB0byByaWdodCkuXG4gKiBbMTJdIFNob3cgd2l0aCBzbGlkZSBpbiBhbmltYXRpb24gKHJpZ2h0IHRvIGxlZnQpLlxuICogWzEzXSBBZGQgYSBtb2RhbCBiYWNrZHJvcCBsYXllci5cbiAqIFsxNF0gQWx3YXlzIGtlZXAgdGhlIGJ1dHRvbiBiYXIgb24gdGhlIGJvdHRvbSBvZiB0aGUgaW50ZXJhY3Rpb24gbGF5ZXIsXG4gKiAgICAgIHJlZ2FyZGxlc3Mgb2YgdGhlIGFtb3VudCBvZiBjb250ZW50IHBsYWNlZCBpbnNpZGUuXG4gKiBbMTVdIEFsd2F5cyBzaG93IGJ1dHRvbiBiYXIgaW4gZnJvbnQgb2YgaW50ZXJhY3Rpb24gbGF5ZXIgY29udGVudC5cbiAqIFsxNl0gUHJldmVudCBvdmVyc2Nyb2xsIGluIHRoZSBjb250YWluZXIuXG4gKiBbMTddIFByZXZlbnQgaG9yaXpvbnRhbCBzaGlmdCB3aGVuIHNjcm9sbGJhciBnZXRzIHZpc2libGUgZHVyaW5nIHJ1bnRpbWVcbiAqICAgICAgYnkgaW5jcmVhc2VkIGNvbnRlbnQgaGVpZ2h0IChlLmcuIGV4cGFuZGluZyBjb21wb25lbnRzKS5cbiAqL1xuLmMtaW50ZXJhY3Rpb24tbGF5ZXJfX3dyYXBwZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDI3MDA7IC8qIFsxXSAqL1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbn1cbi5jLWludGVyYWN0aW9uLWxheWVyX193cmFwcGVyOmZvY3VzIHsgLyogWzJdICovXG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5jLWludGVyYWN0aW9uLWxheWVyX193cmFwcGVyW2FyaWEtaGlkZGVuPWZhbHNlXSAuYy1pbnRlcmFjdGlvbi1sYXllciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG59XG5cbi5jLWludGVyYWN0aW9uLWxheWVyIHtcbiAgd2lkdGg6IDUwdnc7XG4gIG1heC13aWR0aDogNTB2dztcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMTAwJTtcbiAgZGlzcGxheTogZmxleDsgLyogWzE0XSAqL1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyAvKiBbMTRdICovXG4gIGhlaWdodDogMTAwdmg7XG4gIG92ZXJmbG93LXk6IGF1dG87IC8qIFs0XSAqL1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNjRweCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IDAgMjRweCA2NHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmU7IC8qIFsxNl0gKi9cbiAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlOyAvKiBbMTddICovXG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtaW50ZXJhY3Rpb24tbGF5ZXIge1xuICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMjRweCk7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMjRweCk7XG4gIH1cbn1cblxuLmMtaW50ZXJhY3Rpb24tbGF5ZXItLWxhcmdlIC5jLWludGVyYWN0aW9uLWxheWVyIHtcbiAgd2lkdGg6IDY2dnc7XG4gIG1heC13aWR0aDogNjZ2dztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1pbnRlcmFjdGlvbi1sYXllci0tbGFyZ2UgLmMtaW50ZXJhY3Rpb24tbGF5ZXIge1xuICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMjRweCk7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMjRweCk7XG4gIH1cbn1cblxuLmMtaW50ZXJhY3Rpb24tbGF5ZXItLXNtYWxsIC5jLWludGVyYWN0aW9uLWxheWVyIHtcbiAgd2lkdGg6IDMzdnc7XG4gIG1heC13aWR0aDogMzN2dztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1pbnRlcmFjdGlvbi1sYXllci0tc21hbGwgLmMtaW50ZXJhY3Rpb24tbGF5ZXIge1xuICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMjRweCk7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMjRweCk7XG4gIH1cbn1cblxuLmMtaW50ZXJhY3Rpb24tbGF5ZXItLW1vZGFsOjpiZWZvcmUgeyAvKiBbMTNdICovXG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogLTE7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMHZoO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyOCwgMjI4LCAyMjgsIDAuOCk7XG59XG4uYy1pbnRlcmFjdGlvbi1sYXllci0tbW9kYWxbYXJpYS1oaWRkZW49ZmFsc2VdOjpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmMtaW50ZXJhY3Rpb24tbGF5ZXJfX2hlYWRlciB7XG4gIHBhZGRpbmctdG9wOiAzMnB4O1xuICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDQ4cHg7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLWludGVyYWN0aW9uLWxheWVyX19oZWFkZXIge1xuICAgIHBhZGRpbmctdG9wOiAyNHB4O1xuICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICB9XG59XG5cbi5jLWludGVyYWN0aW9uLWxheWVyX19jbG9zZS1idG4ge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYy1pbnRlcmFjdGlvbi1sYXllcl9fY2xvc2UtYnRuOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cbi5jLWludGVyYWN0aW9uLWxheWVyX19jbG9zZS1idG46OmJlZm9yZSB7IC8qIFsxMF0gKi9cbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiYnJvbnNvbi1za29kYVwiICFpbXBvcnRhbnQ7IC8qIFsxXSAqL1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBjb250ZW50OiBcIlxcZjE1YVwiO1xuICBjb2xvcjogIzE2MTcxODtcbn1cbi5jLWludGVyYWN0aW9uLWxheWVyX19jbG9zZS1idG46aG92ZXI6OmJlZm9yZSwgLmMtaW50ZXJhY3Rpb24tbGF5ZXJfX2Nsb3NlLWJ0bjpmb2N1czo6YmVmb3JlIHtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG5cbi5jLWludGVyYWN0aW9uLWxheWVyX19jb250ZW50IHtcbiAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA0OHB4O1xuICBwYWRkaW5nLXRvcDogMjRweDtcbiAgcGFkZGluZy1ib3R0b206IDEuNWVtOyAvKiBbN10gKi9cbiAgY29sb3I6ICMxNjE3MTg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtaW50ZXJhY3Rpb24tbGF5ZXJfX2NvbnRlbnQge1xuICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICB9XG59XG4uYy1pbnRlcmFjdGlvbi1sYXllcl9fY29udGVudCA+ICo6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8qIFs2XSAqL1xufVxuXG4uYy1pbnRlcmFjdGlvbi1sYXllcl9fZm9vdGVyIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctbGVmdDogNDhweDtcbiAgcGFkZGluZy1yaWdodDogNDhweDtcbiAgcGFkZGluZy1ib3R0b206IDQ4cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1pbnRlcmFjdGlvbi1sYXllcl9fZm9vdGVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gICAgcGFkZGluZy1yaWdodDogMzJweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzJweDtcbiAgfVxufVxuXG4vKipcbiAqIFN0eWxlcyBhcHBsaWVkIHRvIGEganMtaG9vayAod2hpY2ggaXMgYSBuby1ubykgaXMgYW4gZXhjZXB0aW9uIGFzIHRoZSB0cmlnZ2VyXG4gKiBjYW4gYmUgYXBwbGllZCB0byBhcmJpdHJhcnkgZWxlbWVudHMgYnV0IG5lZWQgdGhvc2UgYWRkaXRpb25hbCBzdHlsZXMgdG9cbiAqIHdvcmsgcHJvcGVybHkuXG4gKi9cbi5qcy1pbnRlcmFjdGlvbi1sYXllci10cmlnZ2VyIHtcbiAgY3Vyc29yOiBwb2ludGVyOyAvKiBbOF0gKi9cbn1cbi5qcy1pbnRlcmFjdGlvbi1sYXllci10cmlnZ2VyICoge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogWzldICovXG59XG5cbi5jLWludGVyYWN0aW9uLWxheWVyX19idXR0b24tYmFyIHtcbiAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA0OHB4O1xuICBwb3NpdGlvbjogc3RpY2t5OyAvKiBbMTRdICovXG4gIHotaW5kZXg6IDEwMDsgLyogWzE1XSAqL1xuICBib3R0b206IDA7IC8qIFsxNF0gKi9cbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IGF1dG87IC8qIFsxNF0gKi9cbiAgcGFkZGluZy10b3A6IDE2cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3gtc2hhZG93OiAwIDAgNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1pbnRlcmFjdGlvbi1sYXllcl9fYnV0dG9uLWJhciB7XG4gICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7XG4gIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0lOVEVSQUNUSU9OLUxBWUVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jLWludGVyYWN0aW9uLWxheWVyX193cmFwcGVyOjpiZWZvcmUge1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNHB4KTtcbn1cblxuLmMtaW50ZXJhY3Rpb24tbGF5ZXJfX2Nsb3NlLWJ0biB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgc2NhbGU6IDE7XG59XG4uYy1pbnRlcmFjdGlvbi1sYXllcl9fY2xvc2UtYnRuOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogLTE7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogaW5oZXJpdDtcbn1cbi5jLWludGVyYWN0aW9uLWxheWVyX19jbG9zZS1idG46aG92ZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMiwgMjMsIDI0LCAwLjA2KTtcbn1cblxuLmMtaW50ZXJhY3Rpb24tbGF5ZXJfX2Nsb3NlLWJ0bjpmb2N1cy12aXNpYmxlOjphZnRlciB7XG4gIC0tZm9jdXMtb3V0bGluZS1jb2xvcjogIzE2MTcxODtcbiAgLS1mb2N1cy1vdXRsaW5lLW9mZnNldDogMDtcbiAgLS1mb2N1cy1vdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgLS1mb2N1cy1vdXRsaW5lLXdpZHRoOiAycHg7XG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWZvY3VzLW91dGxpbmUtY29sb3IsICMxNjE3MTgpO1xuICBvdXRsaW5lLW9mZnNldDogdmFyKC0tZm9jdXMtb3V0bGluZS1vZmZzZXQsIDFweCk7XG4gIG91dGxpbmUtc3R5bGU6IHZhcigtLWZvY3VzLW91dGxpbmUtc3R5bGUsIHNvbGlkKTtcbiAgb3V0bGluZS13aWR0aDogdmFyKC0tZm9jdXMtb3V0bGluZS13aWR0aCwgMnB4KTtcbn1cblxuLmMtaW50ZXJhY3Rpb24tbGF5ZXJfX2Nsb3NlLWJ0bjphY3RpdmUge1xuICBzY2FsZTogMC45NTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1BST0RVQ1QtU0VBUkNILUhFQURFUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBFbmZvcmNlIGZ1bGwgd2lkdGggd2hlbiB3cmFwcGVkIGFuZCBpbiBzZXBhcmF0ZSByb3cuXG4gKiBbMl0gU2hvdyBpdGVtcyA1MCUgYnV0IGFjY291bnQgZm9yIGdhcCB0byByZW1vdmUgcHJlbWF0dXJlIHdyYXBwaW5nLlxuICogWzNdIE92ZXJ3cml0ZSBidG4gbW9kaWZpZXJzLlxuICogWzRdIFBvc2l0aW9uIHRoZSBmaWx0ZXIgYmFyIGZpeGVkIHRvIHRoZSB0b3Agb24gbGFyZ2Ugc2NyZWVucyBhbmQgbWFrZSBpdFxuICogICAgIHNwYW4gdGhlIHdob2xlIHdpZHRoLlxuICogWzVdIE9mZnNldCB0aGUgYmFyIG9mZi1zY3JlZW4gdG8gdGhlIHRvcC5cbiAqIFs2XSBSZW1vdmUgYW55IGBib3gtc2hhZG93YCBzaW5jZSB0aGUgYmFyIGlzIG9mZi1jYW52YXMuXG4gKiBbN10gT24gc21hbGxlciB2aWV3cG9ydHMgdGhlIGJhciBpcyBwZXJtYW5lbnRseSBkaXNwbGF5ZWQgYXQgdGhlIGJvdHRvbSBvZiB0aGVcbiAqICAgICBzY3JlZW4uXG4gKiBbOF0gQWx3YXlzIHNob3cgYGJveC1zaGFkb3dgIG9uIHNtYWxsZXIgdmlld3BvcnRzICh3aGVuIHRoZSBiYXIgaXMgYWx3YXlzXG4gKiAgICAgdmlzaWJsZSkuXG4gKiBbOV0gIERpc3BsYXkgdGhlIG5vcm1hbCBgYm94LXNoYWRvd2Agb25seSBvbiBsYXJnZXIgc2NyZWVucyB3aGVuIHJldmVhbGVkLlxuICogWzEwXSBSZXZlYWwgdGhlIGJhciB3aGVuIGl0cyBzY3JvbGwgb2JzZXJ2ZXIgaGFzIGFjdGl2YXRlZCBpdCBvbiBsYXJnZXIgdmlld3BvcnRzLlxuICogWzExXSBSZW1vdmUgdW53YW50ZWQgdmVydGljYWwgc3BhY2luZy5cbiAqIFsxMl0gQWx3YXlzIGhpZGUgdGhlIHRpdGxlIG9uIHNtYWxsZXIgdmlld3BvcnRzIGFuZCBvbmx5IHNob3cgdGhlIGJ1dHRvblxuICogICAgICAod2hlbiB0aGUgYmFyIGlzIGFsd2F5cyB2aXNpYmxlKS5cbiAqIFsxM10gSGlkZSB0aGUgZmlsdGVyIHRvZ2dsZSBidXR0b24gaW4gdGhlIHN0YXRpYyBoZWFkZXIgb24gc21hbGwgdmlld3BvcnRzXG4gKiAgICAgIGFzIGl0IGlzIGFsd2F5cyB2aXNpYmxlIGR1ZSB0byB0aGUgZml4ZWQgYm90dG9tIGJhci5cbiAqIFsxNF0gSGlkZSB0aGUgZmlsdGVyIHRvZ2dsZSB3aGVuIHRoZSBzaWRlYmFyIGlzIGFscmVhZHkgdmlzaWJsZS5cbiAqIFsxNV0gTW92ZSBmaWx0ZXIgdG8gRmxvYXQgR3JpZCBhcmVhIChmb3Igc21hbGwgdmlld3BvcnRzKS5cbiAqL1xuLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAyNHB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX190aXRsZSB7XG4gIGZsZXgtZ3JvdzogMTsgLyogWzFdICovXG4gIGZsZXgtc2hyaW5rOiAxO1xuICBmbGV4LWJhc2lzOiBhdXRvO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIG1hcmdpbjogMDtcbn1cblxuLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX19maWx0ZXItdG9nZ2xlIHtcbiAgZmxleC1ncm93OiAwOyAvKiBbMV0gKi9cbiAgZmxleC1zaHJpbms6IDA7XG4gIGZsZXgtYmFzaXM6IGF1dG87XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjFweCkge1xuICAuYy1wcm9kdWN0LXNlYXJjaC0taGFzLXNpZGViYXIgLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX19maWx0ZXItdG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX19maWx0ZXItdG9nZ2xlIHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbiAgfVxuICAuYy1wcm9kdWN0LXNlYXJjaC1oZWFkZXItLXN0aWNreSA+IC5jLXByb2R1Y3Qtc2VhcmNoLWhlYWRlcl9fZmlsdGVyLXRvZ2dsZSB7IC8qIFsxM10gKi9cbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uYy1wcm9kdWN0LXNlYXJjaC1oZWFkZXJfX2ZpbHRlci10b2dnbGUgPiAuYy1idG4ge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX19ib2R5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAyNHB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgZmxleC1ncm93OiAxO1xuICBmbGV4LXNocmluazogMTtcbiAgZmxleC1iYXNpczogMTAwJTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1wcm9kdWN0LXNlYXJjaC1oZWFkZXJfX2JvZHkge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxufVxuXG4uYy1wcm9kdWN0LXNlYXJjaC1oZWFkZXJfX2ZpbHRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMjRweDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBmbGV4LWdyb3c6IDE7XG4gIGZsZXgtc2hyaW5rOiAxO1xuICBmbGV4LWJhc2lzOiBhdXRvO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLXByb2R1Y3Qtc2VhcmNoLWhlYWRlcl9fZmlsdGVyIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbiAgfVxufVxuXG4uYy1wcm9kdWN0LXNlYXJjaC1oZWFkZXJfX2ZpbHRlcl9fbGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBpdGNzcy9uby1hdC1pbXBvcnRhbnQgKi9cbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbn1cblxuLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX19maWx0ZXJfX3RhZ3Mge1xuICBmbGV4LWdyb3c6IDA7XG4gIGZsZXgtc2hyaW5rOiAxO1xuICBmbGV4LWJhc2lzOiBhdXRvO1xufVxuXG4uYy1wcm9kdWN0LXNlYXJjaC1oZWFkZXJfX2ZpbHRlcl9fcmVzZXQge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uYy1wcm9kdWN0LXNlYXJjaC1oZWFkZXJfX2FjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDI0cHg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1ncm93OiAwO1xuICBmbGV4LXNocmluazogMTtcbiAgZmxleC1iYXNpczogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuYy1wcm9kdWN0LXNlYXJjaC1oZWFkZXJfX2FjdGlvbnNfX2l0ZW0ge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBmbGV4LWJhc2lzOiBjYWxjKDUwJSAtIDEycHgpOyAvKiBbMl0gKi9cbiAgfVxuICAuYy1wcm9kdWN0LXNlYXJjaC1oZWFkZXJfX2FjdGlvbnNfX2l0ZW0gPiAqIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OyAvKiBbM10gKi9cbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTYxcHgpIHtcbiAgLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX19hY3Rpb25zX19pdGVtLS13cmFwIHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICB9XG59XG5cbi5jLXByb2R1Y3Qtc2VhcmNoLWhlYWRlcl9fc29ydCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX19zb3J0ID4gKiB7XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG59XG5cbi5jLXByb2R1Y3Qtc2VhcmNoLWhlYWRlcl9fZmlsdGVyLWJhciB7XG4gIC0tZmxvYXQtZ3JpZC1hcmVhOiBib3R0b207XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIC8qIFsxNV0gKi9cbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiB2aXNpYmlsaXR5LCB0cmFuc2Zvcm07XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMHMsIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICB0b3A6IDA7IC8qIFs0XSAqL1xuICByaWdodDogMDsgLyogWzRdICovXG4gIGxlZnQ6IDA7IC8qIFs0XSAqL1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy10b3A6IDhweDtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYm94LXNoYWRvdzogbm9uZTsgLyogWzZdICovXG59XG4uYy1wcm9kdWN0LXNlYXJjaC1oZWFkZXJfX2ZpbHRlci1iYXIgPiAqIHtcbiAgLS1mbG9hdC1ncmlkLWFyZWE6IGZhbHNlO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5jLXByb2R1Y3Qtc2VhcmNoLWhlYWRlcl9fZmlsdGVyLWJhciB7XG4gICAgZGlzcGxheTogYmxvY2s7IC8qIFs3fCAqL1xuICB9XG4gIC5jLXByb2R1Y3Qtc2VhcmNoLWhlYWRlcl9fZmlsdGVyLWJhciwgLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX19maWx0ZXItYmFyLmhhcy10YXJnZXQtb3V0c2lkZS12aWV3IHtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTsgLyogWzhdICovXG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODFweCkge1xuICAuYy1wcm9kdWN0LXNlYXJjaC1oZWFkZXJfX2ZpbHRlci1iYXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDsgLyogWzRdICovXG4gICAgei1pbmRleDogMTk1MDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpOyAvKiBbNV0gKi9cbiAgfVxuICAuYy1wcm9kdWN0LXNlYXJjaC1oZWFkZXJfX2ZpbHRlci1iYXIuaGFzLXRhcmdldC1vdXRzaWRlLXZpZXcge1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTUpOyAvKiBbOV0gKi9cbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MXB4KSB7XG4gIC5jLXByb2R1Y3Qtc2VhcmNoLS1oYXMtc2lkZWJhciAuYy1wcm9kdWN0LXNlYXJjaC1oZWFkZXJfX2ZpbHRlci1iYXIsIC5jLXByb2R1Y3Qtc2VhcmNoLWhlYWRlcl9fZmlsdGVyLWJhci5jLXByb2R1Y3Qtc2VhcmNoLWhlYWRlcl9fZmlsdGVyLWJhci0tc2lkZWJhciB7XG4gICAgZGlzcGxheTogbm9uZTsgLyogWzE0XSAqL1xuICB9XG59XG4uYy1wcm9kdWN0LXNlYXJjaC1oZWFkZXJfX2ZpbHRlci1iYXIuaGFzLXRhcmdldC1vdXRzaWRlLXZpZXcge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IC8qIFsxMF0gKi9cbn1cblxuLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX19maWx0ZXItYmFyX19pbm5lciB7XG4gIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyAxOTJweCk7XG4gIHBhZGRpbmctbGVmdDogOTZweDtcbiAgcGFkZGluZy1yaWdodDogOTZweDtcbiAgLS1wYWdlLXdyYXA6IDk2cHg7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMjRweDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX19maWx0ZXItYmFyX19pbm5lciB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDk2cHgpO1xuICAgIHBhZGRpbmctbGVmdDogNDhweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4O1xuICAgIC0tcGFnZS13cmFwOiA0OHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX19maWx0ZXItYmFyX19pbm5lciB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDQ4cHgpO1xuICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICAgIC0tcGFnZS13cmFwOiAyNHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX19maWx0ZXItYmFyX19pbm5lciB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDI0cHgpO1xuICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xuICAgIC0tcGFnZS13cmFwOiAxMnB4O1xuICB9XG59XG5cbi5jLXByb2R1Y3Qtc2VhcmNoLWhlYWRlcl9fZmlsdGVyLWJhcl9fdGl0bGUge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8qIFsxMV0gKi9cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuYy1wcm9kdWN0LXNlYXJjaC1oZWFkZXJfX2ZpbHRlci1iYXJfX3RpdGxlIHtcbiAgICBkaXNwbGF5OiBub25lOyAvKiBbMTJdICovXG4gIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAjUFJPRFVDVCBTRUFSQ0ggRk9STVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBDaGFuZ2UgdGhlIGZsZXgtZGlyZWN0aW9uIGZvciB0aGUgdmVydGljYWwgbW9kZSB0byBkaXNwbGF5IHRoZSByZXN1bHRcbiAqICAgICBidXR0b24gYWJvdmUgdGhlIGNoZWNrIG1vcmUgZmlsdGVycyBidXR0b24uXG4gKiBbMl0gQWRhcHQgYnV0dG9uIHdpZHRoIHRvIHRoZSBtZWRpYS1xdWVyeSBicmVha3BvaW50cy5cbiAqL1xuLmMtcHJvZHVjdC1zZWFyY2gtZm9ybSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgcGFkZGluZzogMjRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cbi5jLXByb2R1Y3Qtc2VhcmNoLWZvcm0gPiAqIHtcbiAgZmxleC1ncm93OiAxO1xuICBmbGV4LXNocmluazogMTtcbiAgZmxleC1iYXNpczogMTAwJTtcbn1cblxuLmMtcHJvZHVjdC1zZWFyY2gtZm9ybV9fYWN0aW9uLWJ1dHRvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtcHJvZHVjdC1zZWFyY2gtZm9ybV9fYWN0aW9uLWJ1dHRvbnMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgLyogWzFdICovXG4gIH1cbn1cblxuLmMtcHJvZHVjdC1zZWFyY2gtZm9ybV9fYnV0dG9uLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTZweDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgLyogWzFdICovXG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1wcm9kdWN0LXNlYXJjaC1mb3JtX19yZXNldC1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLXByb2R1Y3Qtc2VhcmNoLWZvcm1fX3Jlc3VsdC1idXR0b24ge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IC8qIFsyXSAqL1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyAvKiBbMl0gKi9cbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJTkRJQ0FUT1ItRE9UIChTZXR0aW5ncylcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0lORElDQVRPUi1ET1RcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4vKipcbiAqIFsxXSBLZWVwIGRvdCBzaXplLCBhdm9pZCBkaXN0b3J0aW9uLlxuICogWzJdIEFsaWduIGluLWxpbmUgd2l0aCBmaXJzdCBsaW5lLiBgYmFzZWxpbmVgIGNyZWF0ZXMgYW4gb2Zmc2V0LlxuICovXG4uYy1pbmRpY2F0b3ItZG90IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyAvKiBbMl0gKi9cbn1cblxuLmMtaW5kaWNhdG9yLWRvdF9fZG90IHtcbiAgZmxleC1ncm93OiAwOyAvKiBbMV0gKi9cbiAgZmxleC1zaHJpbms6IDA7IC8qIFsxXSAqL1xuICBmbGV4LWJhc2lzOiBhdXRvOyAvKiBbMV0gKi9cbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpOyAvKiBbMl0gKi9cbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRjNmM3O1xufVxuXG5idXR0b24uYy1pbmRpY2F0b3ItZG90X19kb3Qge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG59XG5idXR0b24uYy1pbmRpY2F0b3ItZG90X19kb3Q6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuXG4uYy1pbmRpY2F0b3ItZG90X19sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5jLWluZGljYXRvci1kb3QtLWluZm8gLmMtaW5kaWNhdG9yLWRvdF9fZG90IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJkNzFkNztcbn1cbi5jLWluZGljYXRvci1kb3QtLWluZm8gLmMtaW5kaWNhdG9yLWRvdF9fbGFiZWwge1xuICBjb2xvcjogIzE2MTcxODtcbn1cblxuLmMtaW5kaWNhdG9yLWRvdC0tc3VjY2VzcyAuYy1pbmRpY2F0b3ItZG90X19kb3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzdkMDAyO1xufVxuLmMtaW5kaWNhdG9yLWRvdC0tc3VjY2VzcyAuYy1pbmRpY2F0b3ItZG90X19sYWJlbCB7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuXG4uYy1pbmRpY2F0b3ItZG90LS13YXJuaW5nIC5jLWluZGljYXRvci1kb3RfX2RvdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYzY1MTM7XG59XG4uYy1pbmRpY2F0b3ItZG90LS13YXJuaW5nIC5jLWluZGljYXRvci1kb3RfX2xhYmVsIHtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG5cbi5jLWluZGljYXRvci1kb3QtLWVycm9yIC5jLWluZGljYXRvci1kb3RfX2RvdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlODJiMzc7XG59XG4uYy1pbmRpY2F0b3ItZG90LS1lcnJvciAuYy1pbmRpY2F0b3ItZG90X19sYWJlbCB7XG4gIGNvbG9yOiAjZTgyYjM3O1xufVxuXG4uYy1pbmRpY2F0b3ItZG90LS11bnJlYWQgLmMtaW5kaWNhdG9yLWRvdF9fZG90IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M0YzZjNztcbn1cbi5jLWluZGljYXRvci1kb3QtLXVucmVhZCAuYy1pbmRpY2F0b3ItZG90X19sYWJlbCB7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjU0VDVElPTi1OQVZcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gIE1vdmUgdGhlIHNlY3Rpb24gbmF2IG9mZi1jYW52YXMgYW5kIGRpc3BsYXkgaXQgd2hlblxuICogICAgICB0aGUgdHJhY2tlZCBzZWN0aW9uIGFwcGVhcnMuXG4gKiBbMl0gIEFsaWduIHRoZSBidXR0b25zIGluc2lkZSB0aGUgc2VjdGlvbiBuYXYgaGVhZGVyIHZpYSBncmlkIGFuZCBtYWtlXG4gKiAgICAgIHRoZSBzZWN0aW9uIGxhYmVsIGFzIHRhbGwgYXMgcG9zc2libGUuIEhpZGUgaXQgb24gbGFyZ2VyIHZpZXdwb3J0cy5cbiAqIFszXSAgQWxpZ24gdGhlIHNjcm9sbGFibGUgbGlzdCBhbmQgYSBwb3NzaWJsZSBpbnNpZGUgdGhlIHNlY3Rpb24gbmF2XG4gKiAgICAgIGNvbnRhaW5lciB2aWEgZ3JpZCBhbmQgbWFrZSB0aGUgbGlzdCBhcyB0YWxsIGFzIHBvc3NpYmxlLiBEaXNwbGF5XG4gKiAgICAgIHRoZSBzZWN0aW9uIGNvbnRhaW5lciBvbiBzbWFsbGVyIHZpZXdwb3J0cyB2aWEgdGhlIGAuaXMtdmlzaWJsZWAgY2xhc3NcbiAqICAgICAgYW5kIGhpZGUgaXQgb3RoZXJ3aXNlLlxuICogWzRdICBJbmhlcml0IHRoZSBncmlkIHRvIHByb3h5IHRoZSBncmlkIGJlaGF2aW9yLiBBbm90aGVyIHBvc3NpYmlsaXR5IHdvdWxkXG4gKiAgICAgIGJlIGBkaXNwbGF5OiBjb250ZW50YCBpZiB3ZSBkZWNpZGUgYWdhaW5zdCB0aGUgc2Nyb2xsIGJ1dHRvbnMuXG4gKiBbNV0gIEhpZGUgc2Nyb2xsYmFycyBhcyB3ZSBpbXBsZW1lbnQgY3VzdG9tIHBhZ2luZyBhbmQgc2Nyb2xsIGhpbnRzLlxuICogWzZdICBNb3ZlIHRoZSBjb250YWluZXIgZm9yIHNtYWxsIHZpZXdwb3J0cyBkb3duIHRoZSBzdGFjay5cbiAqIFs3XSAgVHJ1bmNhdGUgdGhlIGNvbnRlbnQgYWZ0ZXIgdHdvIGxpbmVzLlxuICogWzhdICBXZSBkaXNwbGF5IHRoZSBgYm94LXNoYWRvd2Agb24gY2VydGFpbiBlbGVtZW50cyB3aGVuIHN3aXRjaGluZ1xuICogICAgICBiZXR3ZWVuIHZpZXdwb3J0cyBhbmQgdmlzaWJsZSBzdGF0ZSBvZiB0aGUgc2Nyb2xsIGxpc3QuXG4gKiBbOV0gIFByZXZlbnQgdGV4dCBzZWxlY3Rpb24gb24gYWxsIGNsaWNrYWJsZSBlbGVtZW50cywgZXNwZWNpYWxseSBmb3JcbiAqICAgICAgdG91Y2gtZGV2aWNlcywgaS5lLiBhIGA8YnV0dG9uPmAgb3IgYDxhPmAgZWxlbWVudC5cbiAqIFsxMF0gQWRkIGEgYmFja2Ryb3AgYW5kIHNwYW4gaXQgYWNyb3NzIHRoZSB3aG9sZSB2aWV3cG9ydC5cbiAqIFsxMV0gVGhlIHByZXYvbmV4dCBidXR0b25zIGljb24gcHNldWRvIGVsZW1lbnQuXG4gKiBbMTJdIE1ha2UgdGhlIHNjcm9sbCBoaW50cyBvdmVybGF5IHRoZSBsaXN0IHRvIHN1Z2dlc3QgdGhlIGxpc3QgY2FuIGJlXG4gKiAgICAgIHNjcm9sbGVkIGluIGl0cyByZXNwZWN0aXZlIGRpcmVjdGlvbi5cbiAqIFsxM10gTWFrZSB0aGUgc2Nyb2xsIGxpc3Qgc2Nyb2xsYWJsZSB2aWEgb25lLWZpbmdlciB0b3VjaCBnZXN0dXJlcy5cbiAqIFsxNF0gU3RhY2sgdGhlIHNjcm9sbCBoaW50cyBhYm92ZSB0aGUgbGlzdCBpdGVtcy5cbiAqIFsxNV0gRm9yIHNtYWxsIHZpZXdwb3J0cywgcmVtb3ZlIHRoZSBzcGFjaW5nIGF0IHRoZSBib3R0b21cbiAqICAgICAgaWYgdGhlcmUgaXMgbm8gYnV0dG9uLlxuICogWzE2XSBCeSBjaGFuZ2luZyBgZm9udC13ZWlnaHRgIHRoZSBsaW5rIGVsZW1lbnQgbmVlZCBkaWZmZXJlbnQgd2lkdGhzLFxuICogICAgICB0aGlzIGNhdXNlcyBzaGlmdGluZy4gVGhpcyB3b3JrYXJvdW5kIHByZXZlbnRzIHNoaWZ0aW5nIG9uIGxhcmdlXG4gKiAgICAgIHZpZXdwb3J0cyB3aGVuIHRoZSBgLmlzLWFjdGl2ZWAgY2xhc3MgaXMgYWRkZWQuXG4gKiBbMTddIFByZXZlbnRzIHRoZSBkb2N1bWVudCBmcm9tIGJhY2tncm91bmQgc2Nyb2xsaW5nLlxuICogWzE4XSBUaGUgcHNldWRvIGVsZW1lbnRzIGFjdCBhcyBzY3JvbGwgaGludHMgYnkgb3ZlcmxheWluZyB0aGUgb3V0ZXJtb3N0XG4gKiAgICAgIGxlZnQgYW5kIHJpZ2h0IHBhcnQgb2YgdGhlIG5hdmlnYXRpb24gbGlzdC5cbiAqIFsxOV0gRXhwb3NlIHRoZSBzZWN0aW9uIG5hdiBjdXN0b20gcHJvcGVydHkgdG8gdXNlIHdpdGhpblxuICogICAgICB0aGUgc2VjdGlvbiBuYXYgc2NyaXB0LlxuICogWzIwXSBFc3RhYmxpc2ggbWluaW11bSBwb2ludGVyL3RvdWNoIHRhcmdldCBzaXplLlxuICogWzIxXSBIaWRlIHRoZSBjYWxsLXRvLWFjdGlvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG4gKiAgICAgIG9uIHNtYWxsZXIgc2NyZWVucy5cbiAqIFsyMl0gRW5zdXJlIGVsZW1lbnQgaXMgaGlkZGVuLiBQcmV2ZW50cyBvdmVyd3JpdGVzIGZyb20gbW9yZSBzcGVjaWZpYyBzdHlsZXNcbiAqICAgICAgdGhhdCBtaWdodCBzZXQgYW5vdGhlciB2YWx1ZSBmb3IgYGRpc3BsYXlgIHByb3BlcnR5IChlLmcuIGBibG9ja2AgdnMgYGZsZXhgKS5cbiAqL1xuLmMtc2VjdGlvbi1uYXYge1xuICAtLWJyb24tc2VjdGlvbi1uYXYtYnJlYWtwb2ludDogNzIwcHg7IC8qIFsxOV0gKi9cbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiB2aXNpYmxpdHksIG9wYWNpdHksIHRyYW5zZm9ybTtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAwLCAwLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgei1pbmRleDogMTkwMDtcbiAgdG9wOiAwO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgLyogWzldICovXG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgLmMtc2VjdGlvbi1uYXYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMTUpOyAvKiBbOF0gKi9cbiAgfVxufVxuXG4uYy1zZWN0aW9uLW5hdi0tcmV2ZWFsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpOyAvKiBbMV0gKi9cbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5jLXNlY3Rpb24tbmF2LS1yZXZlYWwuaGFzLXRhcmdldC1pbnNpZGUtdmlldy5oYXMtdGFyZ2V0LWVudGVyLWFib3ZlLXZpZXcsIC5jLXNlY3Rpb24tbmF2LS1yZXZlYWwuaGFzLXRhcmdldC1pbnNpZGUtdmlldy5oYXMtdGFyZ2V0LWVudGVyLWJlbG93LXZpZXcsIC5jLXNlY3Rpb24tbmF2LS1yZXZlYWwuaGFzLXRhcmdldC1sZWF2ZS1hYm92ZS12aWV3IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiB2aXNpYmxpdHksIG9wYWNpdHksIHRyYW5zZm9ybTtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAwLCAzMDBtcywgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgLyogWzFdICovXG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgLmMtc2VjdGlvbi1uYXYtLXJldmVhbC5oYXMtdGFyZ2V0LWluc2lkZS12aWV3Lmhhcy10YXJnZXQtZW50ZXItYWJvdmUtdmlldywgLmMtc2VjdGlvbi1uYXYtLXJldmVhbC5oYXMtdGFyZ2V0LWluc2lkZS12aWV3Lmhhcy10YXJnZXQtZW50ZXItYmVsb3ctdmlldywgLmMtc2VjdGlvbi1uYXYtLXJldmVhbC5oYXMtdGFyZ2V0LWxlYXZlLWFib3ZlLXZpZXcge1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjE1KTsgLyogWzhdICovXG4gIH1cbn1cbi5jLXNlY3Rpb24tbmF2LS1yZXZlYWwuaGFzLXRhcmdldC1pbnNpZGUtdmlldy5oYXMtdGFyZ2V0LWVudGVyLWFib3ZlLXZpZXcgLmMtc2VjdGlvbi1uYXZfX2hlYWRlciwgLmMtc2VjdGlvbi1uYXYtLXJldmVhbC5oYXMtdGFyZ2V0LWluc2lkZS12aWV3Lmhhcy10YXJnZXQtZW50ZXItYmVsb3ctdmlldyAuYy1zZWN0aW9uLW5hdl9faGVhZGVyLCAuYy1zZWN0aW9uLW5hdi0tcmV2ZWFsLmhhcy10YXJnZXQtbGVhdmUtYWJvdmUtdmlldyAuYy1zZWN0aW9uLW5hdl9faGVhZGVyIHtcbiAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMTUpOyAvKiBbOF0gKi9cbn1cbi5jLXNlY3Rpb24tbmF2LS1yZXZlYWwgLmMtc2VjdGlvbi1uYXZfX2hlYWRlciB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1zZWN0aW9uLW5hdi1wcmV2ZW50LXNjcm9sbCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50OyAvKiBbMTddICovXG4gIH1cbn1cblxuLmMtc2VjdGlvbi1uYXZfX2hlYWRlciB7XG4gIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyAxOTJweCk7XG4gIHBhZGRpbmctbGVmdDogOTZweDtcbiAgcGFkZGluZy1yaWdodDogOTZweDtcbiAgLS1wYWdlLXdyYXA6IDk2cHg7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGNvbHVtbi1nYXA6IDE2cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTg5OTtcbiAgZGlzcGxheTogZ3JpZDsgLyogWzJdICovXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgbWF4LWNvbnRlbnQ7IC8qIFsyXSAqL1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA2NHB4O1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjE1KTsgLyogWzhdICovXG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtc2VjdGlvbi1uYXZfX2hlYWRlciB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDk2cHgpO1xuICAgIHBhZGRpbmctbGVmdDogNDhweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4O1xuICAgIC0tcGFnZS13cmFwOiA0OHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtc2VjdGlvbi1uYXZfX2hlYWRlciB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDQ4cHgpO1xuICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICAgIC0tcGFnZS13cmFwOiAyNHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtc2VjdGlvbi1uYXZfX2hlYWRlciB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDI0cHgpO1xuICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xuICAgIC0tcGFnZS13cmFwOiAxMnB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgLmMtc2VjdGlvbi1uYXZfX2hlYWRlciB7XG4gICAgZGlzcGxheTogbm9uZTsgLyogWzJdICovXG4gIH1cbn1cblxuLmMtc2VjdGlvbi1uYXZfX2NvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtc2VjdGlvbi1uYXZfX2NvbnRhaW5lciB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IHZpc2libGl0eSwgb3BhY2l0eSwgdHJhbnNmb3JtO1xuICAgIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMCwgMCwgMzAwbXMpO1xuICAgIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDE4OTg7IC8qIFs2XSAqL1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNjRweCk7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgLmMtc2VjdGlvbi1uYXZfX2NvbnRhaW5lci5pcy12aXNpYmxlIHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAgIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmlzaWJsaXR5LCBvcGFjaXR5LCB0cmFuc2Zvcm07XG4gICAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAwLCAzMDBtcywgMzAwbXMpO1xuICAgIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMTtcbiAgICBib3gtc2hhZG93OiAwIDhweCAzMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7IC8qIFs4XSAqL1xuICB9XG4gIC5jLXNlY3Rpb24tbmF2X19jb250YWluZXI6OmFmdGVyIHsgLyogWzEwXSAqL1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI4LCAyMjgsIDIyOCwgMC44KTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5jLXNlY3Rpb24tbmF2X19jb250YWluZXIge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyAxOTJweCk7XG4gICAgcGFkZGluZy1sZWZ0OiA5NnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDk2cHg7XG4gICAgLS1wYWdlLXdyYXA6IDk2cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGdyaWQ7IC8qIFszXSAqL1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIG1heC1jb250ZW50OyAvKiBbM10gKi9cbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiBbM10gKi9cbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IC8qIFszXSAqL1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1zZWN0aW9uLW5hdl9fY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTI0OHB4ICsgOTZweCk7XG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHg7XG4gICAgLS1wYWdlLXdyYXA6IDQ4cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkgYW5kIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLXNlY3Rpb24tbmF2X19jb250YWluZXIge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyA0OHB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgICAtLXBhZ2Utd3JhcDogMjRweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtc2VjdGlvbi1uYXZfX2NvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDI0cHgpO1xuICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xuICAgIC0tcGFnZS13cmFwOiAxMnB4O1xuICB9XG59XG5cbi5jLXNlY3Rpb24tbmF2X19zY3JvbGwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGluaGVyaXQ7IC8qIFs0XSAqL1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLXNlY3Rpb24tbmF2X19zY3JvbGw6bGFzdC1jaGlsZCAuYy1zZWN0aW9uLW5hdl9fbGlzdCB7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDsgLyogWzE1XSAqL1xuICB9XG59XG5cbi5jLXNlY3Rpb24tbmF2X19zZWN0aW9uLWxhYmVsIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLmMtc2VjdGlvbi1uYXZfX3NlY3Rpb24tbGFiZWw6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuLmMtc2VjdGlvbi1uYXZfX3NlY3Rpb24tbGFiZWxbYXJpYS1leHBhbmRlZD10cnVlXTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTZcIjtcbn1cbi5jLXNlY3Rpb24tbmF2X19zZWN0aW9uLWxhYmVsW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0gKyAuYy1zZWN0aW9uLW5hdl9fYnRuIHsgLyogWzIxXSAqL1xuICBkaXNwbGF5OiBub25lO1xufVxuLmMtc2VjdGlvbi1uYXZfX3NlY3Rpb24tbGFiZWw6OmJlZm9yZSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJicm9uc29uLXNrb2RhXCIgIWltcG9ydGFudDsgLyogWzFdICovXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgY29udGVudDogXCJcXGYxNTFcIjtcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cblxuLmMtc2VjdGlvbi1uYXZfX3NlY3Rpb24tbGFiZWxfX3RleHQge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIGxpbmUtY2xhbXA6IDI7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIGJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC8qIFs3XSAqL1xuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGh5cGhlbnM6IGF1dG87XG59XG5cbi5jLXNlY3Rpb24tbmF2X19saXN0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmMtc2VjdGlvbi1uYXZfX2xpc3QgbGkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1zZWN0aW9uLW5hdl9fbGlzdCB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEyNDhweCArIDE5MnB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDk2cHg7XG4gICAgcGFkZGluZy1yaWdodDogOTZweDtcbiAgICAtLXBhZ2Utd3JhcDogOTZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgcm93LWdhcDogOHB4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDY0cHgpO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7IC8qIFsxM10gKi9cbiAgICBib3JkZXItYm90dG9tOiA2NHB4IHNvbGlkICNmZmZmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtc2VjdGlvbi1uYXZfX2xpc3Qge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyA5NnB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG4gICAgcGFkZGluZy1yaWdodDogNDhweDtcbiAgICAtLXBhZ2Utd3JhcDogNDhweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSBhbmQgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtc2VjdGlvbi1uYXZfX2xpc3Qge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyA0OHB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgICAtLXBhZ2Utd3JhcDogMjRweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtc2VjdGlvbi1uYXZfX2xpc3Qge1xuICAgIG1heC13aWR0aDogY2FsYygxMjQ4cHggKyAyNHB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgcGFkZGluZy1yaWdodDogMTJweDtcbiAgICAtLXBhZ2Utd3JhcDogMTJweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5jLXNlY3Rpb24tbmF2X19saXN0IHtcbiAgICBjb2x1bW4tZ2FwOiAxNnB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teDtcbiAgICBzY3JvbGwtc25hcC10eXBlOiB4IG1hbmRhdG9yeTsgLyogWzVdICovXG4gICAgc2Nyb2xsLW1hcmdpbi1sZWZ0OiA0cmVtOyAvKiBbNV0gKi9cbiAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7IC8qIFs1XSAqL1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTsgLyogWzVdICovXG4gIH1cbiAgLmMtc2VjdGlvbi1uYXZfX2xpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICBkaXNwbGF5OiBub25lOyAvKiBbNV0gKi9cbiAgfVxuICAuYy1zZWN0aW9uLW5hdl9fbGlzdDo6YmVmb3JlLCAuYy1zZWN0aW9uLW5hdl9fbGlzdDo6YWZ0ZXIgeyAvKiBbMThdICovXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gICAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gICAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxOTAxOyAvKiBbMTRdICovXG4gICAgdG9wOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiA0cmVtO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIC5jLXNlY3Rpb24tbmF2X19saXN0OjpiZWZvcmUge1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSwgI2ZmZmZmZik7XG4gIH1cbiAgLmMtc2VjdGlvbi1uYXZfX2xpc3Q6OmFmdGVyIHtcbiAgICByaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSwgI2ZmZmZmZik7XG4gIH1cbiAgLmhhcy1vdmVyZmxvdy1sZWZ0IC5jLXNlY3Rpb24tbmF2X19saXN0OjpiZWZvcmUsIC5oYXMtb3ZlcmZsb3ctcmlnaHQgLmMtc2VjdGlvbi1uYXZfX2xpc3Q6OmFmdGVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1zZWN0aW9uLW5hdl9faXRlbSB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgLmMtc2VjdGlvbi1uYXZfX2l0ZW0ge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogNTZweDtcbiAgfVxufVxuXG4uYy1zZWN0aW9uLW5hdl9fbGluayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDU2cHg7IC8qIFsyMF0gKi9cbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5jLXNlY3Rpb24tbmF2X19saW5rIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgLyogWzE2XSAqL1xuICB9XG4gIC5jLXNlY3Rpb24tbmF2X19saW5rOjpiZWZvcmUgeyAvKiBbMTZdICovXG4gICAgY29udGVudDogYXR0cihkYXRhLXRleHQpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICB9XG59XG4uYy1zZWN0aW9uLW5hdl9fbGluazpob3ZlciB7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtc2VjdGlvbi1uYXZfX2xpbmsuaXMtYWN0aXZlIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG5cbi5jLXNlY3Rpb24tbmF2X19zY3JvbGwtYnV0dG9uIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgd2lkdGg6IDE2cHg7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmlzaWJsaXR5LCBvcGFjaXR5LCB0cmFuc2Zvcm07XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMCwgMCwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTkxMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGhlaWdodDogMTAwJTtcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmMtc2VjdGlvbi1uYXZfX3Njcm9sbC1idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLXNlY3Rpb24tbmF2X19zY3JvbGwtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IC8qIFsyMl0gKi9cbiAgfVxufVxuLmMtc2VjdGlvbi1uYXZfX3Njcm9sbC1idXR0b246OmJlZm9yZSB7IC8qIFsxMV0gKi9cbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcImJyb25zb24tc2tvZGFcIiAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xufVxuXG4uYy1zZWN0aW9uLW5hdl9fc2Nyb2xsLWJ1dHRvbi0tcHJldiB7XG4gIGxlZnQ6IDA7XG59XG4uYy1zZWN0aW9uLW5hdl9fc2Nyb2xsLWJ1dHRvbi0tcHJldjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTJcIjtcbn1cbi5oYXMtb3ZlcmZsb3ctbGVmdCAuYy1zZWN0aW9uLW5hdl9fc2Nyb2xsLWJ1dHRvbi0tcHJldiB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IC8qIFsxMl0gKi9cbn1cblxuLmMtc2VjdGlvbi1uYXZfX3Njcm9sbC1idXR0b24tLW5leHQge1xuICByaWdodDogMDtcbn1cbi5jLXNlY3Rpb24tbmF2X19zY3JvbGwtYnV0dG9uLS1uZXh0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NVwiO1xufVxuLmhhcy1vdmVyZmxvdy1yaWdodCAuYy1zZWN0aW9uLW5hdl9fc2Nyb2xsLWJ1dHRvbi0tbmV4dCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgLyogWzEyXSAqL1xufVxuXG4uaGFzLW92ZXJmbG93LWxlZnQgLmMtc2VjdGlvbi1uYXZfX3Njcm9sbC1idXR0b24tLXByZXYsXG4uaGFzLW92ZXJmbG93LXJpZ2h0IC5jLXNlY3Rpb24tbmF2X19zY3JvbGwtYnV0dG9uLS1uZXh0IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiB2aXNpYmxpdHksIG9wYWNpdHksIHRyYW5zZm9ybTtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAwLCAzMDBtcywgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi5jLXNlY3Rpb24tbmF2X19jb250YWluZXIgLmMtc2VjdGlvbi1uYXZfX2J0biB7XG4gIGxlZnQ6IDE2cHg7XG4gIHJpZ2h0OiAxNnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICAuYy1zZWN0aW9uLW5hdl9fY29udGFpbmVyIC5jLXNlY3Rpb24tbmF2X19idG4ge1xuICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgIG1hcmdpbi1sZWZ0OiAzMnB4O1xuICB9XG59XG5cbi5jLXNlY3Rpb24tbmF2X19zZWN0aW9uIHtcbiAgc2Nyb2xsLW1hcmdpbi10b3A6IDY0cHg7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNTRUNUSU9OLU5BVlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBNYXJrIGFjdGl2ZSBsaW5rIHdpdGggYSBsZWZ0IGJvcmRlciBpbiBzbWFsbGVyIHZpZXdwb3J0cy5cbiAqIFsyXSBNYXJrIGFjdGl2ZSBsaW5rIHdpdGggYSBib3R0b20gYm9yZGVyIGluIGxhcmdlciB2aWV3cG9ydHMuXG4gKiBbM10gRGlzYWJsZSBkZWZhdWx0IHBzZXVkbyBlbGVtZW50IHN0eWxlcywgYmVjYXVzZSBkb27igJl0IHdhbnQgdG8gaW50ZXJmZXJlIHdpdGggWzRdXG4gKiBbNF0gQWRkIGZvY3VzIHJlY3RhbmdsZSBhcyBwc2V1ZG8gZWxlbWVudC5cbiAqIFs1XSBVc2UgYSBzbWFsbGVyIGhlYWRlciBzaGFkb3csIHdoZW4gYC5jLXNlY3Rpb24tbmF2X19jb250YWluZXJgIGlzIGV4cGFuZGVkLlxuICogWzZdIFBvc2l0aW9uIHBzZXVkby1lbGVtZW50IChjaXJjbGUpIG9uIGljb24uXG4gKiAgICAgTWFnaWMgbnVtYmVyIHZpYSBwaXhlbC1wdXNoaW5nIGFzIHRoZXJlIGNhbiBiZSBubyBjb25uZWN0aW9uL3JlbGF0aW9uIGJlIGZvdW5kLlxuICovXG4uYy1zZWN0aW9uLW5hdl9fY29udGFpbmVyIHtcbiAgbWluLWhlaWdodDogNjRweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1zZWN0aW9uLW5hdl9fY29udGFpbmVyIC5jLXNlY3Rpb24tbmF2X19idG4ge1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLXNlY3Rpb24tbmF2X19saXN0IHtcbiAgICBwYWRkaW5nLXRvcDogMTZweDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiBjYWxjKDY0cHggKyA4cHgpO1xuICB9XG59XG5cbi5jLXNlY3Rpb24tbmF2X19saW5rIHtcbiAgcGFkZGluZy1yaWdodDogOHB4O1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgY29sb3I6ICM3YzdkN2U7XG59XG4uYy1zZWN0aW9uLW5hdl9fbGluazo6YmVmb3JlIHtcbiAgYWxsOiBpbml0aWFsOyAvKiBbM10gKi9cbn1cbi5jLXNlY3Rpb24tbmF2X19saW5rLmlzLWFjdGl2ZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MTk0Njg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmMtc2VjdGlvbi1uYXZfX2xpbmsuaXMtYWN0aXZlOjphZnRlciB7IC8qIFsxXSAqL1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogY2FsYyh2YXIoLS1wYWdlLXdyYXApICogLTEpO1xuICAgIHdpZHRoOiAzcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICAuYy1zZWN0aW9uLW5hdl9fbGluay5pcy1hY3RpdmU6OmFmdGVyIHsgLyogWzJdICovXG4gICAgYm90dG9tOiA4cHg7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBoZWlnaHQ6IDNweDtcbiAgfVxufVxuLmMtc2VjdGlvbi1uYXZfX2xpbms6Zm9jdXMtdmlzaWJsZSB7IC8qIFs0XSAqL1xuICBvdXRsaW5lOiBub25lO1xufVxuLmMtc2VjdGlvbi1uYXZfX2xpbms6Zm9jdXMtdmlzaWJsZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE2cHg7XG4gIHJpZ2h0OiAycHg7XG4gIGJvdHRvbTogMTZweDtcbiAgbGVmdDogMnB4O1xuICBvdXRsaW5lOiAycHggc29saWQgIzE2MTcxODtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5jLXNlY3Rpb24tbmF2X19idG4ge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgfVxufVxuXG4uYy1zZWN0aW9uLW5hdl9faGVhZGVyOmhhcygrIC5jLXNlY3Rpb24tbmF2X19jb250YWluZXIuaXMtdmlzaWJsZSkge1xuICBib3gtc2hhZG93OiAwIDAgOHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG5cbi5jLXNlY3Rpb24tbmF2X19zZWN0aW9uLWxhYmVsIHtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbn1cbi5jLXNlY3Rpb24tbmF2X19zZWN0aW9uLWxhYmVsOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogLTE7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogaW5oZXJpdDtcbn1cbi5jLXNlY3Rpb24tbmF2X19zZWN0aW9uLWxhYmVsOmhvdmVyOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIsIDIzLCAyNCwgMC4wNik7XG59XG5cbi5jLXNlY3Rpb24tbmF2X19zZWN0aW9uLWxhYmVsOmZvY3VzLXZpc2libGU6OmFmdGVyIHtcbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjMTYxNzE4O1xuICAtLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiAwO1xuICAtLWZvY3VzLW91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICAtLWZvY3VzLW91dGxpbmUtd2lkdGg6IDJweDtcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9jdXMtb3V0bGluZS1jb2xvciwgIzE2MTcxOCk7XG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1mb2N1cy1vdXRsaW5lLW9mZnNldCwgMXB4KTtcbiAgb3V0bGluZS1zdHlsZTogdmFyKC0tZm9jdXMtb3V0bGluZS1zdHlsZSwgc29saWQpO1xuICBvdXRsaW5lLXdpZHRoOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXdpZHRoLCAycHgpO1xufVxuXG4uYy1zZWN0aW9uLW5hdl9fc2VjdGlvbi1sYWJlbDo6YWZ0ZXIge1xuICBsZWZ0OiAxNHB4OyAvKiBbNl0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY2FsZS11bmxpbWl0ZWQvZGVjbGFyYXRpb24tc3RyaWN0LXZhbHVlICovXG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmMtc2VjdGlvbi1uYXZfX3NlY3Rpb24tbGFiZWw6OmFmdGVyIHtcbiAgICBsZWZ0OiAycHg7IC8qIFs2XSAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjYWxlLXVubGltaXRlZC9kZWNsYXJhdGlvbi1zdHJpY3QtdmFsdWUgKi9cbiAgfVxufVxuXG4uYy1zZWN0aW9uLW5hdl9fc2Nyb2xsLWJ1dHRvbiB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBzY2FsZTogMTtcbn1cbi5jLXNlY3Rpb24tbmF2X19zY3JvbGwtYnV0dG9uOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogLTE7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbi5jLXNlY3Rpb24tbmF2X19zY3JvbGwtYnV0dG9uOmhvdmVyOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIsIDIzLCAyNCwgMC4wNik7XG59XG5cbi5jLXNlY3Rpb24tbmF2X19zY3JvbGwtYnV0dG9uOmZvY3VzLXZpc2libGU6OmFmdGVyIHtcbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjMTYxNzE4O1xuICAtLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiAwO1xuICAtLWZvY3VzLW91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICAtLWZvY3VzLW91dGxpbmUtd2lkdGg6IDJweDtcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9jdXMtb3V0bGluZS1jb2xvciwgIzE2MTcxOCk7XG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1mb2N1cy1vdXRsaW5lLW9mZnNldCwgMXB4KTtcbiAgb3V0bGluZS1zdHlsZTogdmFyKC0tZm9jdXMtb3V0bGluZS1zdHlsZSwgc29saWQpO1xuICBvdXRsaW5lLXdpZHRoOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXdpZHRoLCAycHgpO1xufVxuXG4uYy1zZWN0aW9uLW5hdl9fc2Nyb2xsLWJ1dHRvbjphY3RpdmUge1xuICBzY2FsZTogMC45NTtcbn1cblxuLmMtc2VjdGlvbi1uYXZfX3Njcm9sbC1idXR0b246Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDA7XG59XG4uYy1zZWN0aW9uLW5hdl9fc2Nyb2xsLWJ1dHRvbjo6YWZ0ZXIge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1NUQVRVUy1NRVNTQUdFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogVGhlIHN0YXR1cyBjb21wb25lbnQgZGlzcGxheXMgYSBzdGF0dXMgaWNvbiArIHRleHQgbWVzc2FnZS5cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4vKipcbiAqIFsxXSBBZGp1c3QgdmVydGljYWwgYWxpZ25tZW50IG9mIGljb24gYW5kIGZpcnN0IHRleHQgbGluZS5cbiAqL1xuLmMtc3RhdHVzLW1lc3NhZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG59XG4uYy1zdGF0dXMtbWVzc2FnZS0taW5mbyB7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtc3RhdHVzLW1lc3NhZ2UtLWluZm86OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTliXCI7XG4gIGNvbG9yOiAjMmQ3MWQ3O1xufVxuXG4uYy1zdGF0dXMtbWVzc2FnZS0tc3VjY2VzcyB7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtc3RhdHVzLW1lc3NhZ2UtLXN1Y2Nlc3M6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQ2XCI7XG4gIGNvbG9yOiAjMzdkMDAyO1xufVxuXG4uYy1zdGF0dXMtbWVzc2FnZS0td2FybmluZyB7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtc3RhdHVzLW1lc3NhZ2UtLXdhcm5pbmc6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjEwXCI7XG4gIGNvbG9yOiAjZWM2NTEzO1xufVxuXG4uYy1zdGF0dXMtbWVzc2FnZS0tZXJyb3Ige1xuICBjb2xvcjogI2U4MmIzNztcbn1cbi5jLXN0YXR1cy1tZXNzYWdlLS1lcnJvcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxN2FcIjtcbiAgY29sb3I6ICNlODJiMzc7XG59XG5cbi5jLXN0YXR1cy1tZXNzYWdlOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcImJyb25zb24tc2tvZGFcIiAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIG1hcmdpbi1yaWdodDogOHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMC4zZW0pOyAvKiBbMV0gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0hJTlRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBleHRlbmRzIHRoZSBzdGFuZGFyZCBgPHN1cD5gIEhUTUwgZWxlbWVudCB3aXRoIHRoZVxuICogcG9zc2liaWxpdHkgb2YgY2xpY2tpbmcvaG92ZXJpbmcgb3ZlciBpdC5cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSAqL1xuLyoqXG4gKiBbMV0gU2V0IGEgbWluaW11bSBzaXplIGZvciB0aGUgaGludCByZWxhdGl2ZSB0byBpdHMgZmx1aWQgZm9udC1zaXplLlxuICogICAgIFNvIHRoYXQgaXQgY2FuIGdyb3cgZXF1YWxseS4gQWxzbyBzZXQgYSBzYWZlIHNwYWNlIHRvIGF2b2lkIGNvbGxpc2lvblxuICogICAgIG9mIGNvbnRlbnQgYW5kIGJvcmRlci5cbiAqIFsyXSBPZmZzZXQgdGhlIGhpbnQgcmVsYXRpdmVseSB0byBpdHMgc3VwZXJzY3JpcHQgcG9zaXRpb24uXG4gKiBbM10gQ2VudGVyIHRoZSB0ZXh0IHZlcnRpY2FsbHkgaW4gdGhlIGJveCB2aWEgYGxpbmUtaGVpZ2h0YC5cbiAqIFs0XSBBbGlnbiB0aGUgaGludCB2ZXJ0aWNhbGx5IGluIHRoZSBmb2504oCZcyBzdXBlcnNjcmlwdCBwb3NpdGlvbi5cbiAqIFs1XSBJbmhlcml0IGFsbCBmb250IGFuZCBjb2xvciByZWxhdGVkIHN0eWxlcyBhbmQgdXNlIGAhaW1wb3J0YW50YCB0b1xuICogICAgIHByZXZlbnQgb3ZlcnJpZGluZyBvZiB0aGUgdGV4dCBjb2xvciBvbiBgOmhvdmVyYCBvciBgW2RhdGEtdGhlbWVdYCBzY29wZS5cbiAqIFs2XSBUcnkgdG8gdXNlIGxpbmVhciBudW1iZXJzIGluc3RlYWQgb2Ygb2xkIGZpZ3VyZXMgdG8gbWFrZSBhbGlnbm1lbnQgZWFzaWVyLlxuICogWzddIEVuYWJsZSBzcGFjaW5nIGZvciBwaWxsLXNoYXBlZCBoaW50IHdoZW4gY29udGVudCBpbmNyZWFzZXMuXG4gKiBbOF0gTWFrZSBzdXJlIHRoZSBoaW50IGNvbnRlbnQgZmlsbHMgdGhlIGVudGlyZSB3cmFwcGVyLlxuICogWzldIEVuYWJsZSBhIGZ1bGx5IGNsaWNrYWJsZSBhcmVhLlxuICogWzEwXSBFbmFibGUgaG92ZXIgYW5kIGZvY3VzIHN0YXRlIHN0eWxlcyBvbmx5IGlmIHRoZSBpbm5lciBlbGVtZW50IGlzIGEgbGluayxcbiAqICAgICAgYnV0dG9uIG9yIGlzIGZvY3VzYWJsZS4gYDpoYXMoKWAgaGFzIGN1cnJlbnRseSBsaW1pdGVkIGJyb3dzZXIgc3VwcG9ydC5cbiAqICAgICAgVGhlcmVmb3JlIHdlIGR1cGxpY2F0ZSB0aGUgQ1NTIHJ1bGVzIHZpYSBhIG1peGluIHRvIGF2b2lkIOKAnGludmFsaWTigJ0gQ1NTXG4gKiAgICAgIHNlbGVjdG9ycyBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBgOmhhcygpYC5cbiAqL1xuLmMtaGludCB7XG4gIHRvcDogMDsgLyogWzJdICovXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWluLXdpZHRoOiAxLjMzMzMzMzMzMzNlbTsgLyogWzFdICovXG4gIG1pbi1oZWlnaHQ6IDEuMzMzMzMzMzMzM2VtOyAvKiBbMV0gKi9cbiAgbWFyZ2luLXJpZ2h0OiAwLjNlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xuICBwYWRkaW5nLXRvcDogMXB4OyAvKiBbMV0gKi9cbiAgcGFkZGluZy1ib3R0b206IDFweDsgLyogWzFdICovXG4gIHBhZGRpbmctbGVmdDogMC4zZW07IC8qIFs3XSAqL1xuICBwYWRkaW5nLXJpZ2h0OiAwLjNlbTsgLyogWzddICovXG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMTJweCwgMC43NWVtLCAxNHB4KTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEgIWltcG9ydGFudDsgLyogWzNdICovXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IHN1cGVyOyAvKiBbNF0gKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taGludC1iYWNrZ3JvdW5kLWNvbG9yLCAjMTYxNzE4KTtcbiAgY29sb3I6IHZhcigtLWhpbnQtdGV4dC1jb2xvciwgI2ZmZmZmZik7XG4gIC8qKlxuICAgKiBbMV0gQ2hlY2sgaWYgYSB0aGVtZSBpcyBzZXQgb3IgaWYgdGhlIGRlZmF1bHQgdGhlbWUgKG51bGwpIGlzIHVzZWQuXG4gICAqICAgICBJZiB0aGUgYGRlZmF1bHRgIHRoZW1lIGlzIHVzZWQgd2UgZXhlY3V0ZSB0aGUgYWxyZWFkeSBwcmVzZW50IGxvZ2ljLFxuICAgKiAgICAgZWxzZSB3ZSBqdXN0IHJldHVybiB0aGUgY29udGVudCB1bndyYXBwZWQuXG4gICAqL1xufVxuLyogWzFdICovXG5bZGF0YS10aGVtZT1icmFuZF0gLmMtaGludCB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWhpbnQ6aGFzKGE6aG92ZXIsIGJ1dHRvbjpob3Zlcikge1xuICBjb2xvcjogaW5oZXJpdDsgLyogWzEwXSAqL1xufVxuW2RhdGEtdGhlbWU9YnJhbmRdIC5jLWhpbnQ6Zm9jdXMtd2l0aGluIHtcbiAgY29sb3I6IGluaGVyaXQ7IC8qIFsxMF0gKi9cbn1cblxuLmMtaGludDpoYXMoYTpob3ZlciwgYnV0dG9uOmhvdmVyKSB7XG4gIC8qIFsxMF0gKi9cbiAgYm9yZGVyLWNvbG9yOiBjdXJyZW50Q29sb3I7IC8qIFs1XSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDY0NzQ4O1xuICBjb2xvcjogdmFyKC0taGludC10ZXh0LWNvbG9yLWhvdmVyLCAjZmZmZmZmKTtcbiAgLyogWzEwXSAqL1xufVxuLmMtaGludDpmb2N1cy13aXRoaW4ge1xuICAvKiBbMTBdICovXG4gIGJvcmRlci1jb2xvcjogY3VycmVudENvbG9yOyAvKiBbNV0gKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ2NDc0ODtcbiAgY29sb3I6IHZhcigtLWhpbnQtdGV4dC1jb2xvci1ob3ZlciwgI2ZmZmZmZik7XG4gIC8qIFsxMF0gKi9cbn1cbi5jLWhpbnQgPiAqIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luLXRvcDogLTFweDsgLyogWzhdICovXG4gIG1hcmdpbi1yaWdodDogLTAuM2VtOyAvKiBbOF0gKi9cbiAgbWFyZ2luLWJvdHRvbTogLTFweDsgLyogWzhdICovXG4gIG1hcmdpbi1sZWZ0OiAtMC4zZW07IC8qIFs4XSAqL1xuICBwYWRkaW5nLXRvcDogMXB4OyAvKiBbMV0gKi9cbiAgcGFkZGluZy1yaWdodDogMC4zZW07IC8qIFs3XSAqL1xuICBwYWRkaW5nLWJvdHRvbTogMXB4OyAvKiBbMV0gKi9cbiAgcGFkZGluZy1sZWZ0OiAwLjNlbTsgLyogWzddICovXG4gIGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50OyAvKiBbNV0gKi9cbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQgIWltcG9ydGFudDsgLyogWzVdICovXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0ICFpbXBvcnRhbnQ7IC8qIFs1XSAqL1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsgLyogWzVdICovXG4gIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJsbnVtXCIgMTsgLyogWzZdICovXG4gIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7IC8qIFs1XSAqL1xufVxuLmMtaGludCA+ICo6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuLmMtaGludCA+IGE6OmFmdGVyLFxuLmMtaGludCA+IGJ1dHRvbjo6YWZ0ZXIgeyAvKiBbOV0gKi9cbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0xcHg7XG4gIGxlZnQ6IC0wLjNlbTtcbiAgbWluLXdpZHRoOiAxLjMzMzMzMzMzMzNlbTtcbiAgbWluLWhlaWdodDogMS4zMzMzMzMzMzMzZW07XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG59XG5cbi5jLWhpbnQ6Zm9jdXMtd2l0aGluIHtcbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjMTYxNzE4O1xuICAtLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIC0tZm9jdXMtb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIC0tZm9jdXMtb3V0bGluZS13aWR0aDogMnB4O1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb2N1cy1vdXRsaW5lLWNvbG9yLCAjMTYxNzE4KTtcbiAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWZvY3VzLW91dGxpbmUtb2Zmc2V0LCAxcHgpO1xuICBvdXRsaW5lLXN0eWxlOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXN0eWxlLCBzb2xpZCk7XG4gIG91dGxpbmUtd2lkdGg6IHZhcigtLWZvY3VzLW91dGxpbmUtd2lkdGgsIDJweCk7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNERVNDUklQVElPTi1MSVNUXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIFJlc2V0IHBvdGVudGlhbCBkZWZhdWx0IHN0eWxlIGZyb20gZ2VuZXJpYyBhbmQgZWxlbWVudCBsYXllcnMuXG4gKiBbMl0gVXNlIGBpbmxpbmUtZmxleGAgc28gdGhhdCBjaGlsZCBlbGVtZW50cyxcbiAqICAgICBsaWtlIGAuYy1kZXNjcmlwdGlvbi1saXN0X19hY3Rpb25gLCBjYW4gYmUgYWxpZ25lZCBwcm9wZXJseS5cbiAqIFszXSBgLmMtZGVzY3JpcHRpb24tbGlzdF9fdGV4dGAgaXMgbmVlZGVkIHRvIG5vdCBsZXQgaW5saW5lIGVsZW1lbnRzIGJlXG4gKiAgICAgaW5mbHVlbmNlZCBieSB0aGUgZmxleGJveCBjb250ZXh0LlxuICogWzRdIExldCBgLmMtZGVzY3JpcHRpb24tbGlzdF9fdGV4dGAgZ3JvdyBzbyB0aGF0IGl0IHBsYXlzIG5pY2Ugd2l0aFxuICogICAgIGAuYy1kZXNjcmlwdGlvbi1saXN0X19hY3Rpb25gIGluIOKAnHNwbGl0IHZhcmlhbnTigJ0uXG4gKiBbNV0gTGV0IGAuYy1kZXNjcmlwdGlvbi1saXN0X19hY3Rpb25gIGdyb3cgaWYgaXTigJlzIHRoZSBvbmx5IGNoaWxkIG9mXG4gKiAgICAgYC5jLWRlc2NyaXB0aW9uLWxpc3RfX2RldGFpbGAuXG4gKiBbNl0gVGVjaG5pcXVlIGlzIGJhc2VkIG9uIHRoZSBiYXNlZCBvbiBGbGV4Ym94IEhvbHkgQWxiYXRyb3NzXG4gKiAgICAgaHR0cHM6Ly9oZXlkb253b3Jrcy5jb20vYXJ0aWNsZS90aGUtZmxleGJveC1ob2x5LWFsYmF0cm9zc1xuICogWzddIFNldCBgZmxleC1iYXNpc2AgdG8gYSBleHRyZW1lIG5lZ2F0aXZlIG9yIHBvc2l0aXZlIHZhbHVlIGJhc2VkIG9uXG4gKiAgICAgYCRkZXNjcmlwdGlvbi1saXN0LWhvcml6b250YWwtaXRlbS1icmVhay13aWR0aGAgYW5kIHRoZXJlZm9yZSBlbmxhcmdlIHRoZVxuICogICAgIGRlc2NyaXB0aW9uIGxpc3QgZ3JvdXAgZWxlbWVudCB0byBmdWxsIHdpZHRoIG9yIHNocmluayB0byB0aGUgYG1pbi13aWR0aGAuXG4gKiBbOF0gU2V0IGBtaW4td2lkdGhgdG8gNTAlIHdpZHRoICh0YWtpbmcgdGhlIGhvcml6b250YWwgc3BhY2luZyBpbnRvIGFjY291bnQpLlxuICogWzldIGBmbGV4LWVuZGAgYmVjYXVzZSB3ZSB3YW50IHRvIGFsaWduIG11bHRpcGxlIGNvbnNlY3V0aXZlIGRldGFpbHMgdG8gdGhlXG4gKiAgICAgcmlnaHQuXG4gKiBbMTBdIExldCB0aGUgZGVzY3JpcHRpb24gbGlzdCBpdGVtIGhvcml6b250YWxseSBncm93IGlmIHRoZSBgZmxleC1iYXNpc2AgdmFsdWVcbiAqICAgICBpcyBuZWdhdGl2ZSAod2hlbiB0aGUgcGFyZW50IGlzIHNtYWxsZXIgdGhhblxuICogICAgIGAkZGVzY3JpcHRpb24tbGlzdC1ob3Jpem9udGFsLWl0ZW0tYnJlYWstd2lkdGhgKS5cbiAqIFsxMV0gU2V0IGBmbGV4LWJhc2lzYCB0byBhIGV4dHJlbWUgbmVnYXRpdmUgb3IgcG9zaXRpdmUgdmFsdWUgYmFzZWQgb25cbiAqICAgICAgYCRkZXNjcmlwdGlvbi1saXN0LWhvcml6b250YWwtaXRlbS1icmVhay13aWR0aGAgYW5kIHRoZXJlZm9yZSB3cmFwIGFuZFxuICogICAgICBlbmxhcmdlIHRoZSBkZXNjcmlwdGlvbiBsaXN0IGl0ZW1zIHRvIGZ1bGwgd2lkdGggb3IgZGlzcGxheSBzaWRlIGJ5IHNpZGUuXG4gKiBbMTJdIFNldCBgbWluLXdpZHRoYCB0byBgNTAlYCB3aWR0aCAodGFraW5nIHRoZSBob3Jpem9udGFsIHNwYWNpbmcgaW50byBhY2NvdW50KS5cbiAqIFsxM10gRG8gbm90IGFsbG93IGNvbnNlY3V0aXZlIGRldGFpbHMgdG8gZ3JvdyBpbiB3aWR0aCBzbyB0aGF0IHRoZXkgYXJlIG5vdFxuICogICAgICBkaXNwbGF5ZWQgYmVsb3cgdGhlIHRlcm0gd2hlbiB0aGUgZGVzY3JpcHRpb24gbGlzdCBpcyB3aWRlciB0aGFuXG4gKiAgICAgIGAkZGVzY3JpcHRpb24tbGlzdC1ob3Jpem9udGFsLWl0ZW0tYnJlYWstd2lkdGhgLlxuICogWzE0XSBBZGQgYDAuMXB4YCB0byB0aGUgYG1pbi13aWR0aGAgdG8gbWFrZSBpdCBhIHZlcnkgdGlueSBiaXQgd2lkZXIgdGhhbiBgNTAlYFxuICogICAgICBzbyB0aGF0IGNvbnNlY3V0aXZlIGRldGFpbHMgYXJlIGRpc3BsYXllZCBvbmUgYmVsb3cgdGhlIG90aGVyIGFuZCBub3RcbiAqICAgICAgc2lkZSBieSBzaWRlLlxuICogWzE1XSBVbnNldCBgbWluLXdpZHRoYCBiZWNhdXNlIGluIHRoZSDigJx0ZXJtcyBzaG9ydOKAnSB2YXJpYW50IHRoZSBzaXplIG9mIHRoZVxuICogICAgICB0ZXJtIHdpbGwgYmUgZGV0ZXJtaW5lZCBieSB0aGUgZGV0YWlsIHdpZHRoLlxuICogWzE2XSBDYWxjdWxhdGUgdGhlIGBtaW4td2lkdGhgIGJ5IHN1YnRyYWN0aW5nIHRoZSB0ZXJtc+KAmSB3aWR0aCBhbmQgaG9yaXpvbnRhbFxuICogICAgICBzcGFjaW5nLlxuICogWzE3XSBVc2UgYGNvbnRhaW5lcmAgbWl4aW4gdG8gcmlnaHQgYWxpZ24gdGV4dCBhYm92ZSB0aGVcbiAqICAgICBgJGRlc2NyaXB0aW9uLWxpc3Qtc3BsaXQtaXRlbS1icmVhay13aWR0aGAg4oCcYnJlYWtwb2ludOKAnS5cbiAqICAgICAgVGhlIHNlbGVjdG9yIGAuYy1kZXNjcmlwdGlvbi1saXN0LS1zcGxpdGAgbmVlZHMgdG8gYmUgYWRkZWQgdG8gdGhlXG4gKiAgICAgIGBDb250YWluZXJRdWVyeWAgYGNvbXBvbmVudFNlbGVjdG9yYCBpblxuICogICAgICBgcGFja2FnZXMvYnJvbnNvbi1kZWZhdWx0L3NyYy9qcy9tb2R1bGUvY29udGFpbmVyLXF1ZXJ5LW9ic2VydmVyLmpzYFxuICogICAgICBAVE9ETzogTWF5YmUgd2UgY291bGQgdXNlIF9yZWFsXyBjb250YWluZXIgcXVlcmllcyAob3IgYSBwb2x5ZmlsbCksXG4gKiAgICAgICAgICAgICBzbyBubyBjdXN0b20gU0NTUy9KUyBoeWJyaWQgc29sdXRpb24gaXMgbmVlZGVkIGFueW1vcmUuXG4gKiBbMThdIFRoaXMgYSBDU1MgY3VzdG9tIHByb3BlcnRpZXMgY29uZGl0aW9uYWwgbG9naWMgdGVjaG5pcXVlICgqKmhhY2sqKilcbiAqICAgICAgdGhhdCBhbGxvd3MgdXMgdG8gc2V0IHByb3BlcnRpZXMgZGVwZW5kaW5nIG9uIHRoZSBzaXplIG9mIGAuYy1kZXNjcmlwdGlvbi1saXN0LS1zcGxpdGAuXG4gKiAgICAgIGAtLWlmLWRlc2NyaXB0aW9uLWxpc3Qtc3BsaXQtaXMtd2lkZWAgY2FuIGJlIHVzZWQgYXMgdG9nZ2xlIHRvIHNldFxuICogICAgICBpbnZhbGlkIG9yIHZhbGlkIHZhbHVlcyB0byBDU1MgcHJvcGVydGllcy4gRm9yIGV4YW1wbGU6XG4gKiAgICAgICAgICBgZmxleC1kaXJlY3Rpb246IHZhcigtLWlmLWRlc2NyaXB0aW9uLWxpc3Qtc3BsaXQtaXMtd2lkZSkgY29sdW1uO2BcbiAqICAgICAgV2UgbmVlZCB0aGlzIGZvciB0aGUgUHJvZHVjdCBUYWJsZSBzdW1tYXJ5IGluIFZXNi5cbiAqICAgICAgTGVhcm4gbW9yZSBhYm91dCB0aGlzIHRlY2huaXF1ZSBoZXJlOlxuICogICAgICAtIGh0dHBzOi8vZGV2LnRvL3NpZGRoYXJ0aHNoeW5pYmVuL2NvbmRpdGlvbmFsLWxvZ2ljLXdpdGgtY3NzLXRoZS1jc3MtY3VzdG9tLXByb3BlcnR5LXRyaWNrLTQ0aGJcbiAqICAgICAgLSBodHRwczovL2xlYS52ZXJvdS5tZS8yMDIwLzEwL3RoZS12YXItc3BhY2UtaGFjay10by10b2dnbGUtbXVsdGlwbGUtdmFsdWVzLXdpdGgtb25lLWN1c3RvbS1wcm9wZXJ0eS9cbiAqIFsxOV0gTGV0IChjb25zZWN1dGl2ZSkgZGV0YWlsIGVsZW1lbnRzIGdyb3cgc28gdGhhdCB0aGF0IHRoZXkgYXJlIHJpZ2h0XG4gKiAgICAgIGFsaWduZWQgYWJvdmUgdGhlIOKAnGJyZWFrcG9pbnTigJ0uXG4gKiBbMjBdIEJyZWFrIGVhY2ggZGV0YWlsIGVsZW1lbnQgaW50byBpdHMgb3duIGxpbmUgd2hlbiB0aGVyZSBpcyBub3QgZW5vdWdoXG4gKiAgICAgIHNwYWNlIGJlc2lkZXMgdGhlIHRlcm0gZWxlbWVudC4gUmVzZXQgYWdhaW4gYWJvdmUgdGhlIOKAnGJyZWFrcG9pbnTigJ0uXG4gKiBbMjFdIERpc3BsYXkgY29uc2VjdXRpdmUgZGV0YWlscyBvbmUgYmVsb3cgdGhlIG90aGVyIGJ5IGxldHRpbmcgdGhlbSBncm93IHRvXG4gKiAgICAgYDEwMCVgIHdpZHRoLlxuICogWzIyXSBDb252ZXJ0IHRoZSBsaXN0IHNlbWFudGljYWxseSBhbmQgc3R5bGlzdGljYWxseSBpbnRvIGEgdGFibGUgc28gdGhhdCBpdFxuICogICAgICBiZWhhdmVzIGxpa2UgYSB0YWJsZS5cbiAqIFsyM10gV2UgYXJlIHVzaW5nIGBwYWRkaW5nYCBmb3IgdGhlIHNwYWNpbmcgYmVjYXVzZSB3ZSBjYW4ndCB1c2UgYGdhcGAgb3JcbiAqICAgICAgYG1hcmdpbmAgaW4gYSB0YWJsZS5cbiAqIFsyNF0gV2UgZGlzcGxheSBkZXRhaWxzIG9ubHkgYXMgdGFibGUgY2VsbCwgd2hlbiB0aGVyZSBhcmUgbm8gY29uc2VjdXRpdmVcbiAqICAgICAgZGV0YWlscy4gT3RoZXJ3aXNlIGFkZGl0aW9uYWwgY29sdW1ucyB3b3VsZCBiZSBhZGRlZCB0byB0aGUg4oCcdGFibGXigJ0uXG4gKiBbMjVdIEFkZCBjdXN0b20gcHJvcGVydHkgYXMgYW4gXCJBUElcIiBmb3IgdGV4dC1hbGlnbm1lbnQgYmFzZWQgb24gc2NvcGUvY29udGV4dC5cbiAqIFsyNl0gUmVzZXQgZGVmYXVsdCBlbGVtZW50IG1hcmdpbi5cbiAqIFsyN10gQWx0ZXIgdGV4dC1hbGlnbm1lbnQgYmFzZWQgb24gc3BsaXQtbW9kZSBjb25kaXRpb24uXG4gKi9cbi5jLWRlc2NyaXB0aW9uLWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICByb3ctZ2FwOiAxNnB4O1xuICBjb2x1bW4tZ2FwOiAxNnB4O1xuICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbMjZdICovXG4gIHRleHQtYWxpZ246IHZhcigtLWRlc2NyaXB0aW9uLWxpc3QtdGV4dC1hbGlnbiwgbGVmdCk7IC8qIFsyNV0gKi9cbiAgY29sb3I6ICMxNjE3MTg7XG59XG5cbi5jLWRlc2NyaXB0aW9uLWxpc3RfX2dyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgY29sdW1uLWdhcDogMTZweDtcbn1cblxuLmMtZGVzY3JpcHRpb24tbGlzdF9fdGVybSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbWFyZ2luOiAwOyAvKiBbMV0gKi9cbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgdGV4dC1hbGlnbjogdmFyKC0tZGVzY3JpcHRpb24tbGlzdC10ZXh0LWFsaWduKTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5jLWRlc2NyaXB0aW9uLWxpc3RfX2RldGFpbCB7XG4gIC0tdGV4dC1hbGlnbi1lbmQ6IHZhcigtLWlmLWRlc2NyaXB0aW9uLWxpc3Qtc3BsaXQtaXMtd2lkZSkgcmlnaHQ7IC8qIFsyN10gKi9cbiAgLS10ZXh0LWFsaWduOiB2YXIoLS10ZXh0LWFsaWduLWVuZCwgdmFyKC0tZGVzY3JpcHRpb24tbGlzdC10ZXh0LWFsaWduKSk7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7IC8qIFsyXSAqL1xuICBmbGV4LXdyYXA6IHdyYXA7IC8qIFsyXSAqL1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IC8qIFsyXSAqL1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgLyogWzJdICovXG4gIGNvbHVtbi1nYXA6IDE2cHg7XG4gIG1hcmdpbjogMDsgLyogWzFdICovXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IHZhcigtLXRleHQtYWxpZ24pO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5jLWRlc2NyaXB0aW9uLWxpc3RfX2RldGFpbCA+IDpsYXN0LWNoaWxkIHtcbiAgZmxleC1iYXNpczogMTAwJTsgLyogWzJdICovXG59XG4uYy1kZXNjcmlwdGlvbi1saXN0X19kZXRhaWwgPiA6bGFzdC1jaGlsZC5jLWRlc2NyaXB0aW9uLWxpc3RfX2FjdGlvbiB7XG4gIGZsZXgtYmFzaXM6IGF1dG87IC8qIFsyXSAqL1xufVxuXG4uYy1kZXNjcmlwdGlvbi1saXN0X190ZXh0IHsgLyogWzNdICovXG4gIGZsZXgtZ3JvdzogMTsgLyogWzRdICovXG59XG4uYy1kZXNjcmlwdGlvbi1saXN0X190ZXh0ID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYy1kZXNjcmlwdGlvbi1saXN0X190aW1lIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLmMtZGVzY3JpcHRpb24tbGlzdF9fYWN0aW9uOm9ubHktY2hpbGQge1xuICBmbGV4LWdyb3c6IDE7IC8qIFs1XSAqL1xufVxuXG4vKlxuICogR3JpZCB2YXJpYW50XG4gKi9cbi5jLWRlc2NyaXB0aW9uLWxpc3QtLWdyaWQge1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG4uYy1kZXNjcmlwdGlvbi1saXN0LS1ncmlkID4gLmMtZGVzY3JpcHRpb24tbGlzdF9fZ3JvdXAge1xuICBmbGV4LWJhc2lzOiBjYWxjKCgzNXJlbSAtIDEwMCUpICogOTk5KTsgLyogWzZdIFs3XSAqL1xuICBtaW4td2lkdGg6IGNhbGMoNTAlIC0gOHB4KTsgLyogWzhdICovXG59XG5cbi8qXG4gKiBIb3Jpem9udGFsIHZhcmlhbnRcbiAqL1xuLmMtZGVzY3JpcHRpb24tbGlzdC0taG9yaXpvbnRhbCAuYy1kZXNjcmlwdGlvbi1saXN0X19ncm91cCB7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgLyogWzldICovXG59XG4uYy1kZXNjcmlwdGlvbi1saXN0LS1ob3Jpem9udGFsIC5jLWRlc2NyaXB0aW9uLWxpc3RfX2dyb3VwID4gKiB7XG4gIGZsZXgtZ3JvdzogMTsgLyogWzZdIFsxMF0gKi9cbiAgZmxleC1iYXNpczogY2FsYygoMzVyZW0gLSAxMDAlKSAqIDk5OSk7IC8qIFs2XSBbMTFdICovXG4gIG1pbi13aWR0aDogY2FsYyg1MCUgLSA4cHgpOyAvKiBbMTJdICovXG59XG4uYy1kZXNjcmlwdGlvbi1saXN0LS1ob3Jpem9udGFsIC5jLWRlc2NyaXB0aW9uLWxpc3RfX2RldGFpbCArIC5jLWRlc2NyaXB0aW9uLWxpc3RfX2RldGFpbCB7XG4gIGZsZXgtZ3JvdzogMDsgLyogWzEzXSAqL1xuICBtaW4td2lkdGg6IGNhbGMoNTAlIC0gOHB4ICsgMC4xcHgpOyAvKiBbMTRdICovXG59XG5cbi8qXG4gKiBTbWFsbCB0ZXJtcyB2YXJpYW50IChjb3VsZCBiZSBjb21iaW5lZCB3aXRoIHRoZSBob3Jpem9udGFsIHZhcmlhbnRzKVxuICovXG4uYy1kZXNjcmlwdGlvbi1saXN0LS10ZXJtcy1zaG9ydCAuYy1kZXNjcmlwdGlvbi1saXN0X190ZXJtIHtcbiAgbWluLXdpZHRoOiB1bnNldDsgLyogWzE1XSAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjYWxlLXVubGltaXRlZC9kZWNsYXJhdGlvbi1zdHJpY3QtdmFsdWUgKi9cbn1cbi5jLWRlc2NyaXB0aW9uLWxpc3QtLXRlcm1zLXNob3J0IC5jLWRlc2NyaXB0aW9uLWxpc3RfX2RldGFpbCxcbi5jLWRlc2NyaXB0aW9uLWxpc3QtLXRlcm1zLXNob3J0IC5jLWRlc2NyaXB0aW9uLWxpc3RfX2RldGFpbCArIC5jLWRlc2NyaXB0aW9uLWxpc3RfX2RldGFpbCB7XG4gIG1pbi13aWR0aDogY2FsYygxMDAlIC0gMTVyZW0gLSAxNnB4KTsgLyogWzE2XSAqL1xufVxuXG4vKlxuICogU3BsaXQgdmFyaWFudFxuICovXG4uYy1kZXNjcmlwdGlvbi1saXN0LS1zcGxpdCB7XG4gIC0tY29udGFpbmVyLXdpZHRoczogXCIwIDMyMFwiOyAvKiBbMTddICovXG4gIC0taWYtZGVzY3JpcHRpb24tbGlzdC1zcGxpdC1pcy13aWRlOiBpbml0aWFsOyAvKiBbMThdICovXG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBvcmRlci9vcmRlciAqL1xufVxuLmMtZGVzY3JpcHRpb24tbGlzdC0tc3BsaXQgLmMtZGVzY3JpcHRpb24tbGlzdF9fZ3JvdXAge1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbi5jLWRlc2NyaXB0aW9uLWxpc3QtLXNwbGl0IC5jLWRlc2NyaXB0aW9uLWxpc3RfX2RldGFpbCB7XG4gIGZsZXgtZ3JvdzogMTsgLyogWzE5XSAqL1xuICBmbGV4LWJhc2lzOiAxMDAlOyAvKiBbMjBdICovXG59XG4uYy1kZXNjcmlwdGlvbi1saXN0LS1zcGxpdFtkYXRhLWNvbnRhaW5lci13aWR0aH49XCIzMjBcIl0ge1xuICAvKiBbMTddICovXG4gIC0taWYtZGVzY3JpcHRpb24tbGlzdC1zcGxpdC1pcy13aWRlOiA7IC8qIFsxOF0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSAqL1xufVxuLmMtZGVzY3JpcHRpb24tbGlzdC0tc3BsaXRbZGF0YS1jb250YWluZXItd2lkdGh+PVwiMzIwXCJdIC5jLWRlc2NyaXB0aW9uLWxpc3RfX2RldGFpbCB7XG4gIGZsZXgtYmFzaXM6IHZhcigtLWlmLWRlc2NyaXB0aW9uLWxpc3Qtc3BsaXQtaXMtd2lkZSkgdW5zZXQ7IC8qIFsyMF0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY2FsZS11bmxpbWl0ZWQvZGVjbGFyYXRpb24tc3RyaWN0LXZhbHVlICovXG59XG4uYy1kZXNjcmlwdGlvbi1saXN0LS1zcGxpdFtkYXRhLWNvbnRhaW5lci13aWR0aH49XCIzMjBcIl0gLmMtZGVzY3JpcHRpb24tbGlzdF9fZGV0YWlsICsgLmMtZGVzY3JpcHRpb24tbGlzdF9fZGV0YWlsIHtcbiAgZmxleC1iYXNpczogMTAwJTsgLyogWzIxXSAqL1xufVxuXG4vKlxuICogVGFibGUgdmFyaWFudFxuICovXG4uYy1kZXNjcmlwdGlvbi1saXN0LS10YWJsZSB7XG4gIGRpc3BsYXk6IHRhYmxlOyAvKiBbMjJdICovXG59XG4uYy1kZXNjcmlwdGlvbi1saXN0LS10YWJsZSAuYy1kZXNjcmlwdGlvbi1saXN0X19ncm91cCB7XG4gIGRpc3BsYXk6IHRhYmxlLXJvdzsgLyogWzIyXSAqL1xufVxuLmMtZGVzY3JpcHRpb24tbGlzdC0tdGFibGUgLmMtZGVzY3JpcHRpb24tbGlzdF9fZ3JvdXAgKyAuYy1kZXNjcmlwdGlvbi1saXN0X19ncm91cCA+IDpmaXJzdC1vZi10eXBlIHsgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LWNvbWJpbmF0b3JzLCBzZWxlY3Rvci1tYXgtY29tcG91bmQtc2VsZWN0b3JzICovXG4gIHBhZGRpbmctdG9wOiAxNnB4OyAvKiBbMjNdICovXG59XG4uYy1kZXNjcmlwdGlvbi1saXN0LS10YWJsZSAuYy1kZXNjcmlwdGlvbi1saXN0X190ZXJtIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDsgLyogWzIyXSAqL1xuICBwYWRkaW5nLXJpZ2h0OiA4cHg7IC8qIFsyM10gKi9cbn1cbi5jLWRlc2NyaXB0aW9uLWxpc3QtLXRhYmxlIC5jLWRlc2NyaXB0aW9uLWxpc3RfX2RldGFpbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDhweDsgLyogWzIzXSAqL1xufVxuLmMtZGVzY3JpcHRpb24tbGlzdC0tdGFibGUgLmMtZGVzY3JpcHRpb24tbGlzdF9fZGV0YWlsOmZpcnN0LW9mLXR5cGU6bGFzdC1jaGlsZCB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7IC8qIFsyNF0gKi9cbn1cbi5jLWRlc2NyaXB0aW9uLWxpc3QtLXRhYmxlIC5jLWRlc2NyaXB0aW9uLWxpc3RfX2RldGFpbCArIC5jLWRlc2NyaXB0aW9uLWxpc3RfX2RldGFpbCB7XG4gIC8qIFsyM10gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAjVE9HR0xFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIEhhbmRsZSB0aGUgaGlkZGVuL3VuaGlkZGVuIHN0YXRlIGZvciB0aGUgbGFiZWwuXG4gKi9cbi5vLXRvZ2dsZTpub3QoW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0pIC5vLXRvZ2dsZV9fbGFiZWwtLXRhcmdldC11bmhpZGRlbiwgLm8tdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0gLm8tdG9nZ2xlX19sYWJlbC0tdGFyZ2V0LWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7IC8qIFsxXSAqL1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjU0hPVy1NT1JFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIFJlbW92ZSBhbnkgdHJhaWxpbmcgc3BhY2luZyBmb3IgdGhlIGZpcnN0LXR3byBsZXZlbCBvZiBuZXN0ZWQgbGFzdC1jaGlsZCBlbGVtZW50cyBpbnNpZGUgYGMtc2hvdy1tb3JlX19ib2R5YC5cbiAqIFsyXSBSZW5kZXIgdGhlIHNob3cgbW9yZSBidXR0b24gaWNvbiB2aWEgQ1NTIGFuZCBkZWZhdWx0IHRvIHRoZSBjb2xsYXBzZSBzdGF0ZS5cbiAqIFs0XSBUcnVuY2F0ZSBhbnkgdmlzaWJsZSBvdmVyZmxvdy5cbiAqIFs1XSBIYW5kbGUgdGhlIGNvbGxhcHNlZCBzdGF0ZSBmb3IgdGhlIHRvZ2dsZSBjb250ZW50IHRhcmdldC5cbiAqIFs2XSBIYW5kbGUgdGhlIGluaXRpYWwgc3RhdGUgZm9yIHRoZSB0b2dnbGUgY29udGVudCB0YXJnZXQuXG4gKiBbN10gQWxpZ24gaWNvbiBhbmQgYnV0dG9uIHRleHQgd2hlbiBkaWZmZXIgaW4gc2l6ZS5cbiAqL1xuLmMtc2hvdy1tb3JlX19ib2R5IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiB2aXNpYmlsaXR5LCBtYXgtaGVpZ2h0LCBvcGFjaXR5O1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDY1MG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBtYXgtaGVpZ2h0OiAyMDBlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3BhY2l0eTogMTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi5jLXNob3ctbW9yZV9fYm9keVthcmlhLWhpZGRlbj10cnVlXSB7IC8qIFs1XSAqL1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IHZpc2liaWxpdHksIG1heC1oZWlnaHQsIG9wYWNpdHk7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA2NTBtcywgMHMsIDBzOztcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgbWF4LWhlaWdodDogMDtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmMtc2hvdy1tb3JlX19ib2R5Om5vdChbYXJpYS1oaWRkZW49ZmFsc2VdKTpub3QoW2FyaWEtaGlkZGVuPXRydWVdKSB7IC8qIFs2XSAqL1xuICBtYXgtaGVpZ2h0OiAwO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwcztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwcztcbn1cbi5jLXNob3ctbW9yZV9fYm9keSA+IDpsYXN0LWNoaWxkLFxuLmMtc2hvdy1tb3JlX19ib2R5ID4gOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IGluaXRpYWw7IC8qIFsxXSAqL1xufVxuXG4uYy1zaG93LW1vcmVfX2J1dHRvbiB7XG4gIC0tc2hvdy1tb3JlLWJ1dHRvbi1pY29uOiBcIlxcZjE1MVwiO1xuICAvKiBbN10gKi9cbiAgbWFyZ2luLXRvcDogMjRweDtcbn1cbi5jLXNob3ctbW9yZV9fYnV0dG9uW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0ge1xuICAtLXNob3ctbW9yZS1idXR0b24taWNvbjogXCJcXGYxNTZcIjtcbn1cblxuLmMtc2hvdy1tb3JlX19pY29uOjpiZWZvcmUgeyAvKiBbMl0gKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJicm9uc29uLXNrb2RhXCIgIWltcG9ydGFudDsgLyogWzFdICovXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGNvbnRlbnQ6IHZhcigtLXNob3ctbW9yZS1idXR0b24taWNvbik7XG4gIGZvbnQtc2l6ZTogMjRweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAjVE9HR0xFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIEhhbmRsZSB0aGUgaGlkZGVuL3VuaGlkZGVuIHN0YXRlIGZvciB0aGUgbGFiZWwuXG4gKi9cbi5vLXRvZ2dsZTpub3QoW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0pIC5vLXRvZ2dsZV9fbGFiZWwtLXRhcmdldC11bmhpZGRlbiwgLm8tdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0gLm8tdG9nZ2xlX19sYWJlbC0tdGFyZ2V0LWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7IC8qIFsxXSAqL1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICNBQ1RJT05TLUJVVFRPTlMtQ09OVEFJTkVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIERvbuKAmXQgZ2VuZXJhdGUgYSBkaXNwbGF5IGJveCBmb3IgdGhlIGNvbnRhaW5lciBhbmQgdGhlIGJ1dHRvbnMgd3JhcHBlclxuICogICAgIHNvIHRoYXQgdGhlIGl0ZW1zIHdpbGwgYmUgcG9zaXRpb25lZCBieSB0aGUgb3V0ZXIgZmxvYXQgZ3JpZCBhcmVhIEZsZXhib3ggcnVsZXMuXG4gKiBbMl0gUG9zaXRpb24gYnV0dG9ucyBpbiBGbG9hdCBHcmlkIGFyZWEuXG4gKiBbM10gVHJhbnNpdGlvbiBpdGVtcyBmcm9tIGAwcHhgIGhlaWdodCB0byBidXR0b24gaGVpZ2h0IGluIHVuaGlkZGVuIHN0YXRlLlxuICogWzRdIEluY3JlYXNlIGB0cmFuc2l0aW9uLWRlbGF5YCBmb3IgZWFjaCBpdGVtICh1cCB0byBgJGFjdGlvbi1idXR0b25zLWNvbnRhaW5lci1tYXgtaXRlbXNgKVxuICogICAgIHRvIGRpc3BsYXkgb25lIGFmdGVyIHRoZSBvdGhlci5cbiAqIFs1XSBXaXRoIGB0b2dnbGUuJHRvZ2dsZS10YXJnZXQtYWN0aXZlLXNlbGVjdG9yYCB3ZSBjYW4gY2hlY2sgaWYgdGhlIHRvZ2dsZSBpc1xuICogICAgIHdvcmtpbmcuIElmIG5vdCAoZS5nLiB3aXRoIGRpc2FibGVkIEphdmFTY3JpcHQpLCB3ZSBkb27igJl0IGhpZGUgdGhlIGl0ZW1zLlxuICogWzZdIFJlbW92ZSBmbGV4Ym94IGdhcCBiZXR3ZWVuIGl0ZW1zIGluIGhpZGRlbiBzdGF0ZS5cbiAqIFs3XSBUYXJnZXQgZGV2aWNlcyB0aGF0IHByaW1hcnkgaW5wdXQgbWVjaGFuaXNtIGNhbiBub3QgaG92ZXIgYW5kIGhhcyBub3QgYVxuICogICAgIGZpbmUgcG9pbnRlciwgc28gZXNzZW50aWFsbHkgZGV2aWNlcyB3aXRoIHRvdWNoIGNhcGFiaWxpdGllcy5cbiAqIFs4XSBJbmNyZWFzZSBzcGVjaWZpY2l0eSB0byBvdmVycmlkZSBgLmMtYnRuLS1pbmNvZ25pdG9gLlxuICogWzldIFVzZSBhIGZlYXR1cmUgb2YgdGhlIEluY29nbml0byBCdXR0b246IENTUyBjdXN0b20gcHJvcGVydGllcyBjb25kaXRpb25hbHNcbiAqICAgICB0byBzZXQgdGhlIGNvbGxhcHNlZCBzdGF0ZSBvZiBhIGJ1dHRvbi4gQ2hlY2sgdGhlIHJlbGF0ZWQgY29tbWVudCBpblxuICogICAgIGBfY29tcG9uZW50cy5idXR0b25zLnNjc3NgLlxuICogWzEwXSBGaXggc29tZSB1bndhbnRlZCB0b2dnbGUgYnV0dG9uIGhlaWdodCBjaGFuZ2UgZm9yIHNvbWUgYnJhbmRzIChlLmcuIEFVREkpXG4gKiAgICAgIHdoZW4gdGhlIGNvbnRhaW5lciBnZXRzIGV4cGFuZGVkIGluIGEgRmxvYXQgR3JpZCBhcmVhLlxuICogWzExXSBXZSBkb27igJl0IHdhbnQgdG8gYW5pbWF0ZSBgdHJhbnNmb3JtYCBmb3IgdGhlIGJ1dHRvbnMgYW5kIHRoZSB0b2dnbGUgYnV0dG9uLlxuICogICAgICBUaGF0IHdvdWxkIHJlc3VsdCBpbiBzb21lIHdlaXJkIG1vdmVtZW50cyB3aGlsZSByZXNpemluZyB0aGUgYnJvd3NlclxuICogICAgICB3aW5kb3cgKGR1ZSB0byB0aGUgYHRyYW5zaXRpb24tZGVsYXlgKS5cbiAqIFsxMl0gYmVjYXVzZSB3ZSBhbHJlYWR5IGtub3cgdGhlIHdpZHRoIG9mIHRoZSBjb2xsYXBzZWQgYnV0dG9ucyAoYC0tYnV0dG9uLWhlaWdodGApXG4gKiAgICAgIHdlIGNhbiB1c2UgdGhhdCB0byBjYWxjdWxhdGUgdGhlIG9mZnNldCBpbiB0aGUgRmxvYXQgR3JpZCBhcmVhLlxuICogICAgICBUaGUgZGVmYXVsdCBvZmZzZXQgb2YgYDEwMCVgIHdvdWxkIHNoaWZ0IHRoZSB3aG9sZSBidXR0b24gd2hlbiBpdCBnZXRzXG4gKiAgICAgIGV4cGFuZGVkLlxuICogWzEzXSBFeHRlbmQgdGhlIEZsb2F0IEdyaWQgYXJlYSBvZmZzZXQgdHJhbnNmb3JtYXRpb24uIEZvciBkZXRhaWxzIGNoZWNrIHRoZVxuICogICAgICBjb21tZW50cyBpbiBgX29iamVjdHMuZmxvYXQtZ3JpZC5zY3NzYC5cbiAqIFsxNF0gUmVtb3ZlIGFueSB2aXNpYmxlIGBib3gtc2hhZG93YCB3aGVuIGluIGNvbGxhcHNlZCBzdGF0ZS5cbiAqL1xuLmMtYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyLFxuLmMtYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyX19pdGVtcyB7XG4gIGRpc3BsYXk6IGNvbnRlbnRzOyAvKiBbMV0gKi9cbn1cblxuLmMtYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyIHtcbiAgLS1hY3Rpb24tYnV0dG9ucy1jb250YWluZXItaXRlbS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAwLjA1cyk7XG4gIC0tZmxvYXQtZ3JpZC1hcmVhOiBib3R0b20tcmlnaHQ7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG59XG4uYy1hY3Rpb24tYnV0dG9ucy1jb250YWluZXIgPiAqIHtcbiAgLS1mbG9hdC1ncmlkLWFyZWE6IGZhbHNlO1xufVxuXG4uYy1hY3Rpb24tYnV0dG9ucy1jb250YWluZXJfX2l0ZW0ge1xuICAtLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lci1pdGVtLXRyYW5zaXRpb24tZGVsYXk6IGNhbGMoKHZhcigtLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lci1pdGVtLXRyYW5zaXRpb24tZHVyYXRpb24pICogdmFyKC0tYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyLWl0ZW0tdHJhbnNpdGlvbi1kZWxheS1tdWx0aXBsaWVyLCAxKSkgLSB2YXIoLS1hY3Rpb24tYnV0dG9ucy1jb250YWluZXItaXRlbS10cmFuc2l0aW9uLWR1cmF0aW9uKSk7IC8qIFs0XSAqL1xuICBtYXgtaGVpZ2h0OiB2YXIoLS1idXR0b24taGVpZ2h0KTsgLyogWzNdICovXG4gIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpIHZhcigtLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lci1pdGVtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKSB2YXIoLS1hY3Rpb24tYnV0dG9ucy1jb250YWluZXItaXRlbS10cmFuc2l0aW9uLWRlbGF5KSwgb3BhY2l0eSBjYWxjKHZhcigtLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lci1pdGVtLXRyYW5zaXRpb24tZHVyYXRpb24pICogNSkgZWFzZS1pbi1vdXQgdmFyKC0tYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyLWl0ZW0tdHJhbnNpdGlvbi1kZWxheSksIHRyYW5zZm9ybSAwcztcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvbWVkaWEtZmVhdHVyZS12YWx1ZS1kb2xsYXItdmFyaWFibGUsIG9yZGVyL29yZGVyICovXG59XG4uYy1hY3Rpb24tYnV0dG9ucy1jb250YWluZXJfX2l0ZW06bnRoLWNoaWxkKDEpIHtcbiAgLS1hY3Rpb24tYnV0dG9ucy1jb250YWluZXItaXRlbS10cmFuc2l0aW9uLWRlbGF5LW11bHRpcGxpZXI6IDE7IC8qIFs0XSAqL1xufVxuLmMtYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyX19pdGVtOm50aC1jaGlsZCgyKSB7XG4gIC0tYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyLWl0ZW0tdHJhbnNpdGlvbi1kZWxheS1tdWx0aXBsaWVyOiAyOyAvKiBbNF0gKi9cbn1cbi5jLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lcl9faXRlbTpudGgtY2hpbGQoMykge1xuICAtLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lci1pdGVtLXRyYW5zaXRpb24tZGVsYXktbXVsdGlwbGllcjogMzsgLyogWzRdICovXG59XG4uYy1hY3Rpb24tYnV0dG9ucy1jb250YWluZXJfX2l0ZW06bnRoLWNoaWxkKDQpIHtcbiAgLS1hY3Rpb24tYnV0dG9ucy1jb250YWluZXItaXRlbS10cmFuc2l0aW9uLWRlbGF5LW11bHRpcGxpZXI6IDQ7IC8qIFs0XSAqL1xufVxuLmMtYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyX19pdGVtOm50aC1jaGlsZCg1KSB7XG4gIC0tYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyLWl0ZW0tdHJhbnNpdGlvbi1kZWxheS1tdWx0aXBsaWVyOiA1OyAvKiBbNF0gKi9cbn1cbi5jLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lcl9faXRlbTpudGgtY2hpbGQoNikge1xuICAtLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lci1pdGVtLXRyYW5zaXRpb24tZGVsYXktbXVsdGlwbGllcjogNjsgLyogWzRdICovXG59XG4uYy1hY3Rpb24tYnV0dG9ucy1jb250YWluZXJfX2l0ZW06bnRoLWNoaWxkKDcpIHtcbiAgLS1hY3Rpb24tYnV0dG9ucy1jb250YWluZXItaXRlbS10cmFuc2l0aW9uLWRlbGF5LW11bHRpcGxpZXI6IDc7IC8qIFs0XSAqL1xufVxuLmMtYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyX19pdGVtOm50aC1jaGlsZCg4KSB7XG4gIC0tYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyLWl0ZW0tdHJhbnNpdGlvbi1kZWxheS1tdWx0aXBsaWVyOiA4OyAvKiBbNF0gKi9cbn1cbi5jLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lcl9faXRlbTpudGgtY2hpbGQoOSkge1xuICAtLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lci1pdGVtLXRyYW5zaXRpb24tZGVsYXktbXVsdGlwbGllcjogOTsgLyogWzRdICovXG59XG4uYy1hY3Rpb24tYnV0dG9ucy1jb250YWluZXJfX2l0ZW06bnRoLWNoaWxkKDEwKSB7XG4gIC0tYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyLWl0ZW0tdHJhbnNpdGlvbi1kZWxheS1tdWx0aXBsaWVyOiAxMDsgLyogWzRdICovXG59XG5bYXJpYS1sYWJlbGxlZGJ5XTpub3QoW2FyaWEtaGlkZGVuPWZhbHNlXSkgPiAuYy1hY3Rpb24tYnV0dG9ucy1jb250YWluZXJfX2l0ZW0geyAvKiBbNV0gKi9cbiAgbWluLWhlaWdodDogMDsgLyogWzNdICovXG4gIG1heC1oZWlnaHQ6IDA7IC8qIFszXSAqL1xuICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWZsb2F0LWdyaWQtaXRlbS1nYXApICogLTEpOyAvKiBbM10gWzZdICovXG4gIHBhZGRpbmctdG9wOiAwOyAvKiBbM10gKi9cbiAgcGFkZGluZy1ib3R0b206IDA7IC8qIFszXSAqL1xuICBib3JkZXItdG9wLXdpZHRoOiAwOyAvKiBbM10gKi9cbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDsgLyogWzNdICovXG4gIGJveC1zaGFkb3c6IG5vbmU7IC8qIFsxNF0gKi9cbn1cbkBtZWRpYSBub3QgYWxsIGFuZCAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHtcbiAgLmMtYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyX19pdGVtIHsgLyogWzddICovIH1cbiAgLmMtYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyX19pdGVtLmMtYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyX19pdGVtIHsgLyogWzhdICovXG4gICAgLS1idXR0b24tY29sbGFwc2VkOiBpbml0aWFsOyAvKiBbOV0gKi9cbiAgfVxufVxuXG4uYy1hY3Rpb24tYnV0dG9ucy1jb250YWluZXJfX3RvZ2dsZSB7XG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSksIHRyYW5zZm9ybTtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgMHM7XG4gIC0tYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyLXRvZ2dsZS1pY29uOiBcIlxcZjFjMVwiO1xuICBmbGV4LWJhc2lzOiB2YXIoLS1idXR0b24taGVpZ2h0KTsgLyogMTAgKi9cbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvbWVkaWEtZmVhdHVyZS12YWx1ZS1kb2xsYXItdmFyaWFibGUgKi9cbn1cbkBtZWRpYSBub3QgYWxsIGFuZCAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHtcbiAgLmMtYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyX190b2dnbGUgeyAvKiBbN10gKi8gfVxuICAuYy1hY3Rpb24tYnV0dG9ucy1jb250YWluZXJfX3RvZ2dsZTpub3QoLmlzLWNvbGxhcHNlZCkge1xuICAgIC0tYnV0dG9uLWNvbGxhcHNlZDogaW5pdGlhbDsgLyogWzldICovXG4gIH1cbn1cbi5jLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lcl9fdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0ge1xuICAtLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lci10b2dnbGUtaWNvbjogXCJcXGYxYjFcIjtcbn1cblxuLmMtYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyX190b2dnbGVfX2ljb246OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiYnJvbnNvbi1za29kYVwiICFpbXBvcnRhbnQ7IC8qIFsxXSAqL1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBjb250ZW50OiB2YXIoLS1hY3Rpb24tYnV0dG9ucy1jb250YWluZXItdG9nZ2xlLWljb24pO1xufVxuXG4uYy1hY3Rpb24tYnV0dG9ucy1jb250YWluZXJfX2l0ZW0sXG4uYy1hY3Rpb24tYnV0dG9ucy1jb250YWluZXJfX3RvZ2dsZSB7XG4gIC0tZ3JpZC1hcmVhLWl0ZW0tb2Zmc2V0OiB2YXIoLS1idXR0b24taGVpZ2h0KTsgLyogWzEyXSAqL1xuICAvKiBbMTNdICovXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNFRkZJQ0lFTkNZLVRBR1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBSZXNldCBhbGwgcHJvcGVydGllcyB0byB0aGVpciBpbml0aWFsIHZhbHVlcyBzbyB0aGF0IG5vIHVud2FudGVkIHN0eWxlc1xuICogICAgIGFyZSBsZWFrZWQgaW50byB0aGUgY29tcG9uZW50LlxuICogWzJdIFJlLXNldCBzb21lIHByb3BlcnRpZXMgYWdhaW4gYWZ0ZXIgdGhlIHJlc2V0IGluIFsxXS5cbiAqIFszXSBDZW50ZXIgdGV4dCB2ZXJ0aWNhbGx5LlxuICogWzRdIFRoZSByaWdodCBwYWRkaW5nIGlzIGRvdWJsZWQgdG8gYWNjb3VudCBmb3IgdGhlIHJlZHVjZWQgaGVpZ2h0IGF0IHRoZVxuICAgICAgIGFycm93aGVhZC5cbiAqIFs1XSBTaGlmdCB0aGUgdGFnIGEgdGlueSBiaXQgdG8gdGhlIHRvcCB0byBhbGlnbiBpdCB2aXN1YWxseSBuaWNlciB2ZXJ0aWNhbGx5XG4gKiAgICAgbmV4dCB0byB0ZXh0LlxuICogWzZdIFdlIHVzZSBgY2xpcC1wYXRoYCB0byBtYWtlIGFuIGFycm93LWxpa2Ugc2hhcGUuXG4gKi9cbi5jLWVmZmljaWVuY3ktdGFnIHtcbiAgYWxsOiBpbml0aWFsOyAvKiBbMV0gKi9cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogWzJdICovXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4OyAvKiBbM10gKi9cbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogWzNdICovXG4gIG1pbi13aWR0aDogMy41ZW07XG4gIG1pbi1oZWlnaHQ6IDEuNmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxZW07IC8qIFs0XSAqL1xuICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuMWVtKTsgLyogWzVdICovXG4gIGZvbnQtZmFtaWx5OiBcInNrb2RhLW5leHRcIjtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1lZmZpY2llbmN5LXRhZy1jb2xvciwgIzdjN2Q3ZSk7XG4gIGNvbG9yOiB2YXIoLS1lZmZpY2llbmN5LXRhZy10ZXh0LWNvbG9yLCAjZmZmZmZmKTtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDAlLCBjYWxjKDEwMCUgLSAwLjhlbSkgMCUsIDEwMCUgNTAlLCBjYWxjKDEwMCUgLSAwLjhlbSkgMTAwJSwgMCUgMTAwJSk7IC8qIFs2XSAqL1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi8qIFZhcmlhbnRzICovXG5bZGF0YS1lZmZpY2llbmN5LXRhZz1cImErKytcIiBpXSB7XG4gIC0tZWZmaWNpZW5jeS10YWctY29sb3I6ICMwMDk2NDA7XG59XG5cbltkYXRhLWVmZmljaWVuY3ktdGFnPVwiYSsrXCIgaV0ge1xuICAtLWVmZmljaWVuY3ktdGFnLWNvbG9yOiAjMDA5NjQwO1xufVxuXG5bZGF0YS1lZmZpY2llbmN5LXRhZz1cImErXCIgaV0ge1xuICAtLWVmZmljaWVuY3ktdGFnLWNvbG9yOiAjNTJhZTMyO1xufVxuXG5bZGF0YS1lZmZpY2llbmN5LXRhZz1hIGldIHtcbiAgLS1lZmZpY2llbmN5LXRhZy1jb2xvcjogI2M4ZDQwMDtcbn1cblxuW2RhdGEtZWZmaWNpZW5jeS10YWc9YiBpXSB7XG4gIC0tZWZmaWNpZW5jeS10YWctY29sb3I6ICNjOGQ0MDA7XG59XG5cbltkYXRhLWVmZmljaWVuY3ktdGFnPWMgaV0ge1xuICAtLWVmZmljaWVuY3ktdGFnLWNvbG9yOiAjZmZlZDAwO1xufVxuXG5bZGF0YS1lZmZpY2llbmN5LXRhZz1kIGldIHtcbiAgLS1lZmZpY2llbmN5LXRhZy1jb2xvcjogI2VjNjYwODtcbn1cblxuW2RhdGEtZWZmaWNpZW5jeS10YWc9ZSBpXSB7XG4gIC0tZWZmaWNpZW5jeS10YWctY29sb3I6ICNlMzA2MTM7XG59XG5cbltkYXRhLWVmZmljaWVuY3ktdGFnPWYgaV0ge1xuICAtLWVmZmljaWVuY3ktdGFnLWNvbG9yOiAjZTMwNjEzO1xufVxuXG5bZGF0YS1lZmZpY2llbmN5LXRhZz1nIGldIHtcbiAgLS1lZmZpY2llbmN5LXRhZy1jb2xvcjogI2UzMDYxMztcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0NVU1RPTS1QUk9HUkVTU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBSZXNlcnZlIHNwYWNlIGZvciB0b29sdGlwIHRvIGF2b2lkIGNvbGxpc2lvbiB3aXRoIG90aGVyIGNvbXBvbmVudHMuXG4gKiBbMl0gQXBwbHkgY2xpcHBpbmcgdG8gYWNoaWV2ZSBib3JkZXItcmFkaXVzLlxuICogWzNdIFByZXZlbnQgc3Vic2VxdWVudCBvcmlnaW5zIGJsb2NraW5nIGludGVyYWN0aW9uIG9uIGBjb25uZWN0YCBlbGVtZW50cy5cbiAqIFs0XSBJbmRpY2F0b3IgZm9yIGhvdmVyIHRoYXQgdHJpZ2dlcnMgb3B0aW9uYWwgdG9vbHRpcC5cbiAqICAgICBgYXJpYS1kZXNjcmliZWRieWAgaXMgc2V0IHdoZW4gdG9vbHRpcCBpcyB2aXNpYmxlLlxuICogWzVdIFBvc2l0aW9uIHRvb2x0aXAgdGh1bWJzIHdpdGggaWNvbiBkaWZmZXJlbnRseS4gYDNweGAgaXMgYSBtYWdpYyBudW1iZXIgdG9cbiAqICAgICBzaGlmdCB0aGUgY2lyY2xlIGVkZ2Ugb3ZlciB0aGUgdHJhY2sgZWRnZS5cbiAqIFs2XSBTaGlmdCBpY29uIGZvciB0aGUgbGFzdCBzZWdtZW50IHRvIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIHNlZ21lbnQuXG4gKiBbN10gVXNlIGljb25zIHdpdGggc2ltcGxlIGNvbXBsZXhpdHkgaWYgc2V0LlxuICogWzhdIEFkZCBpbnZpc2libGUgcHNldWRvIGVsZW1lbnQgdG8gaW5jcmVhc2UgdHJhY2sgaGVpZ2h0IHRvIGljb24gKGNpcmNsZSlcbiAqICAgICBoZWlnaHQuIFRoaXMgaW5jcmVhc2VzIHRoZSBob3Zlci9jbGlja2FibGUgYXJlYSBhbmQgaW5jbHVkZXMgdGhlIGljb24gYXJlYS5cbiAqIFs5XSBUaGUgc3RhcnQgaXRlbSBpcyB0aGUgZmlyc3QgY2hpbGQgY29ubmVjdCBhbmQgdGhlIDJuZCBjaGlsZCBvZiBgLmMtY3VzdG9tLXByb2dyZXNzX19jb25uZWN0LWNvbnRhaW5lcmBcbiAqICAgICB3aGljaCBpcyB0aGUgZmlyc3Qgb3JpZ2luLlxuICogWzEwXSBUaGUgZW5kIGl0ZW0gaXMgdGhlIGxhc3QgY29ubmVjdCBhbmQgbGFzdCBvcmlnaW4uXG4gKiBbMTFdIFRoZSBtYWluIGl0ZW0gaXMgZGVmaW5lZCBieSB0aGUgaW5pdGlhbCB2aXNpYmxlIHRvb2x0aXAgYW5kIHRoZVxuICogICAgICBkeW5hbWljYWxseSBzZXQgYC5jLWN1c3RvbS1wcm9ncmVzc19fc3RlcC0tbWFpbmAgY2xhc3MuXG4gKi9cbi5jLWN1c3RvbS1wcm9ncmVzc19fdmlzdWFsaXphdGlvbiB7XG4gIC0tY3VzdG9tLXByb2dyZXNzLXRodW1iLWljb24tc2l6ZTogMjRweDtcbiAgLS1jdXN0b20tcHJvZ3Jlc3MtdGh1bWItaWNvbi1jaXJjbGUtc2l6ZTogNDhweDtcbiAgLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1tYWluLWJhY2tncm91bmQtY29sb3I6ICM0MTk0Njg7XG4gIC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3QtbWFpbi1pY29uLWNvbG9yOiAjZmZmZmZmO1xuICAtLWN1c3RvbS1wcm9ncmVzcy1jb25uZWN0LXN0YXJ0LWJhY2tncm91bmQtY29sb3I6ICMwZTNhMmY7XG4gIC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3Qtc3RhcnQtaWNvbi1jb2xvcjogI2ZmZmZmZjtcbiAgLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1lbmQtYmFja2dyb3VuZC1jb2xvcjogIzdjN2Q3ZTtcbiAgLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1lbmQtaWNvbi1jb2xvcjogI2ZmZmZmZjtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG9yZGVyL29yZGVyICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAyNXB4O1xuICBtYXJnaW4tdG9wOiAxMDBweDsgLyogWzFdICovXG59XG4uYy1jdXN0b20tcHJvZ3Jlc3NfX3Zpc3VhbGl6YXRpb25bZGF0YS1jdXN0b20tcHJvZ3Jlc3MtdGhlbWU9YWx0LTFdIHtcbiAgLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1tYWluLWJhY2tncm91bmQtY29sb3I6ICM3YzdkN2U7XG4gIC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3QtbWFpbi1pY29uLWNvbG9yOiAjZmZmZmZmO1xuICAtLWN1c3RvbS1wcm9ncmVzcy1jb25uZWN0LXN0YXJ0LWJhY2tncm91bmQtY29sb3I6ICM0MTk0Njg7XG4gIC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3Qtc3RhcnQtaWNvbi1jb2xvcjogI2ZmZmZmZjtcbiAgLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1lbmQtYmFja2dyb3VuZC1jb2xvcjogIzBlM2EyZjtcbiAgLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1lbmQtaWNvbi1jb2xvcjogI2ZmZmZmZjtcbn1cbi5jLWN1c3RvbS1wcm9ncmVzc19fdmlzdWFsaXphdGlvbltkYXRhLWN1c3RvbS1wcm9ncmVzcy10aGVtZT1hbHQtMl0ge1xuICAtLWN1c3RvbS1wcm9ncmVzcy1jb25uZWN0LW1haW4tYmFja2dyb3VuZC1jb2xvcjogIzBlM2EyZjtcbiAgLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1tYWluLWljb24tY29sb3I6ICNmZmZmZmY7XG4gIC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3Qtc3RhcnQtYmFja2dyb3VuZC1jb2xvcjogIzdjN2Q3ZTtcbiAgLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1zdGFydC1pY29uLWNvbG9yOiAjZmZmZmZmO1xuICAtLWN1c3RvbS1wcm9ncmVzcy1jb25uZWN0LWVuZC1iYWNrZ3JvdW5kLWNvbG9yOiAjNDE5NDY4O1xuICAtLWN1c3RvbS1wcm9ncmVzcy1jb25uZWN0LWVuZC1pY29uLWNvbG9yOiAjZmZmZmZmO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5jLWN1c3RvbS1wcm9ncmVzc19fdmlzdWFsaXphdGlvbiB7XG4gICAgLS1jdXN0b20tcHJvZ3Jlc3MtdGh1bWItaWNvbi1zaXplOiAyMHB4O1xuICAgIC0tY3VzdG9tLXByb2dyZXNzLXRodW1iLWljb24tY2lyY2xlLXNpemU6IDMycHg7XG4gIH1cbn1cbi5jLWN1c3RvbS1wcm9ncmVzc19fdmlzdWFsaXphdGlvbiAudGlwcHktY29udGVudCB7XG4gIHdpZHRoOiBtYXgtY29udGVudDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY2FsZS11bmxpbWl0ZWQvZGVjbGFyYXRpb24tc3RyaWN0LXZhbHVlICovXG4gIG1heC13aWR0aDogMjUwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmMtY3VzdG9tLXByb2dyZXNzX190YXJnZXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYy1jdXN0b20tcHJvZ3Jlc3NfX3RhcmdldCAqIHtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLyogVHJhY2sgKi9cbi5jLWN1c3RvbS1wcm9ncmVzc19fYmFzZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgY3Vyc29yOiBhdXRvO1xufVxuXG4uYy1jdXN0b20tcHJvZ3Jlc3NfX2Nvbm5lY3QtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRjNmM3O1xuICBjbGlwLXBhdGg6IGluc2V0KDAgcm91bmQgMTBweCk7IC8qIFsyXSAqL1xufVxuXG4uYy1jdXN0b20tcHJvZ3Jlc3NfX29yaWdpbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIFszXSAqL1xufVxuXG4uYy1jdXN0b20tcHJvZ3Jlc3NfX3RodW1iIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiBbNF0gKi9cbiAgLypcbiAgICogQERFUFJFQ0FURUQ6IFJlbW92ZSBgLmMtY3VzdG9tLXByb2dyZXNzX190aHVtYi0taGFzLWljb25gIHdoZW4gYDpoYXNgIGJyb3dzZXIgc3VwcG9ydCBpcyBzdWZmaWNpZW50LlxuICAgKiBgd2hlcmUoKWAgaXMgdXNlZCB0byBnZXQgYSBmb3JnaXZpbmcgc2VsZWN0b3IgbGlzdDogaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL3NlbGVjdG9ycy00LyN0eXBlZGVmLWZvcmdpdmluZy1zZWxlY3Rvci1saXN0XG4gICAqL1xufVxuLmMtY3VzdG9tLXByb2dyZXNzX190aHVtYjp3aGVyZSg6aGFzKC5jLWN1c3RvbS1wcm9ncmVzc19fdGh1bWJfX2ljb24pLFxuLmMtY3VzdG9tLXByb2dyZXNzX190aHVtYi0taGFzLWljb24pIHtcbiAgdG9wOiA1MCU7IC8qIFs1XSAqL1xuICBib3R0b206IGF1dG87IC8qIFs1XSAqL1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgzcHgsIC01MCUpOyAvKiBbNV0gKi9cbn1cbi5jLWN1c3RvbS1wcm9ncmVzc19fb3JpZ2luOmxhc3QtY2hpbGQgLmMtY3VzdG9tLXByb2dyZXNzX190aHVtYjp3aGVyZSg6aGFzKC5jLWN1c3RvbS1wcm9ncmVzc19fdGh1bWJfX2ljb24pLFxuLmMtY3VzdG9tLXByb2dyZXNzX190aHVtYi0taGFzLWljb24pIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYygxMDAlIC0gM3B4KSwgLTUwJSk7IC8qIFs2XSAqL1xufVxuXG4uYy1jdXN0b20tcHJvZ3Jlc3NfX3RodW1iX19pY29uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiB2YXIoLS1jdXN0b20tcHJvZ3Jlc3MtdGh1bWItaWNvbi1jaXJjbGUtc2l6ZSk7XG4gIGFzcGVjdC1yYXRpbzogMTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmb250LXNpemU6IHZhcigtLWN1c3RvbS1wcm9ncmVzcy10aHVtYi1pY29uLXNpemUpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgY29sb3I6IHZhcigtLWN1c3RvbS1wcm9ncmVzcy1jb25uZWN0LWljb24tY29sb3IpO1xufVxuXG4uYy1jdXN0b20tcHJvZ3Jlc3NfX2Nvbm5lY3Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3QtYmFja2dyb3VuZC1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1pY29uLWNvbG9yKTtcbiAgY3Vyc29yOiBwb2ludGVyOyAvKiBbNF0gKi9cbn1cbi5jLWN1c3RvbS1wcm9ncmVzc19fY29ubmVjdFthcmlhLWRlc2NyaWJlZGJ5XSB7XG4gIGN1cnNvcjogYXV0bzsgLyogWzRdICovXG59XG4uYy1jdXN0b20tcHJvZ3Jlc3NfX2Nvbm5lY3Q6OmJlZm9yZSB7IC8qIFs4XSAqL1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IHZhcigtLWN1c3RvbS1wcm9ncmVzcy10aHVtYi1pY29uLWNpcmNsZS1zaXplKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vKiBzdGFydCAqLyAvKiBbOV0gKi9cbi5jLWN1c3RvbS1wcm9ncmVzc19fY29ubmVjdDpmaXJzdC1jaGlsZCxcbi5jLWN1c3RvbS1wcm9ncmVzc19fb3JpZ2luOm50aC1jaGlsZCgyKSB7XG4gIC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3QtaWNvbi1jb2xvcjogdmFyKC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3Qtc3RhcnQtaWNvbi1jb2xvcik7XG4gIC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3QtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3Qtc3RhcnQtYmFja2dyb3VuZC1jb2xvcik7XG59XG5cbi8qIGVuZCAqLyAvKiBbMTBdICovXG4uYy1jdXN0b20tcHJvZ3Jlc3NfX2Nvbm5lY3Q6bGFzdC1jaGlsZCxcbi5jLWN1c3RvbS1wcm9ncmVzc19fb3JpZ2luOmxhc3QtY2hpbGQge1xuICAtLWN1c3RvbS1wcm9ncmVzcy1jb25uZWN0LWljb24tY29sb3I6IHZhcigtLWN1c3RvbS1wcm9ncmVzcy1jb25uZWN0LWVuZC1pY29uLWNvbG9yKTtcbiAgLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1lbmQtYmFja2dyb3VuZC1jb2xvcik7XG59XG5cbi8qIG1haW4gKi8gLyogWzExXSAqL1xuLmMtY3VzdG9tLXByb2dyZXNzX19jb25uZWN0LmMtY3VzdG9tLXByb2dyZXNzX19zdGVwLS1tYWluLFxuLmMtY3VzdG9tLXByb2dyZXNzX190aHVtYi5jLWN1c3RvbS1wcm9ncmVzc19fc3RlcC0tbWFpbiB7XG4gIC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3QtaWNvbi1jb2xvcjogdmFyKC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3QtbWFpbi1pY29uLWNvbG9yKTtcbiAgLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1tYWluLWJhY2tncm91bmQtY29sb3IpO1xufVxuXG4uYy1jdXN0b20tcHJvZ3Jlc3NfX3BpcHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmMtY3VzdG9tLXByb2dyZXNzX192YWx1ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5jLWN1c3RvbS1wcm9ncmVzc19fZGVzY3JpcHRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDI0cHg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLXRvcDogMjRweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MXB4KSB7XG4gIC5jLWN1c3RvbS1wcm9ncmVzc19fZGVzY3JpcHRpb24ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIH1cbiAgLmMtY3VzdG9tLXByb2dyZXNzX19kZXNjcmlwdGlvbl9faXRlbSB7XG4gICAgZmxleC1iYXNpczogY2FsYyg1MCUgLSAyNHB4KTtcbiAgfVxuICAuYy1jdXN0b20tcHJvZ3Jlc3NfX2Rlc2NyaXB0aW9uX19pdGVtLS1lbmQge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG59XG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjRFJPUERPV04tQ09OVEFJTkVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIENvbmRpdGlvbmFsbHkgZGlzcGxheSBhbiBhcnJvdyBmb3IgdGhlIGRyb3Bkb3duLWNvbnRhaW5lci5cbiAqIFsyXSBBZGQgb3BlbiBzdGF0ZSBzdHlsZXMgdG8gdGhlIGJ1dHRvbiBjb25kaXRpb25hbGx5LlxuICogWzNdIE1ha2UgdGhlIHRyaWdnZXIgd3JhcHBlciBiZWhhdmUgbGlrZSBhbiBpbmxpbmUgZWxlbWVudCB0byB0cmFjayBpdHNcbiAqICAgICBjb2xsYXBzZWQgYm94LWRpbWVuc2lvbnMgdmlhIEphdmFTY3JpcHQuXG4gKi9cbi5jLWRyb3Bkb3duLWNvbnRhaW5lciB7XG4gIC0tZHJvcGRvd24tY29udGFpbmVyLWJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC0tZHJvcGRvd24tY29udGFpbmVyLWJvcmRlci1zaXplOiAxcHg7XG4gIC0tZHJvcGRvd24tY29udGFpbmVyLWxheWVyOiAyNzAwO1xuICAtLWRyb3Bkb3duLWNvbnRhaW5lci1tYXgtd2lkdGg6IDQwMHB4O1xuICAtLWRyb3Bkb3duLWNvbnRhaW5lci1taW4td2lkdGg6IDIwMHB4O1xuICAtLWpzLWRyb3Bkb3duLWNvbnRhaW5lci1vZmZzZXQ6IDhweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYy1kcm9wZG93bi1jb250YWluZXJfX2Fycm93IHsgLyogWzFdICovXG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jLWRyb3Bkb3duLWNvbnRhaW5lcl9fcGFuZWwge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIHZpc2liaWxpdHk7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIHotaW5kZXg6IHZhcigtLWRyb3Bkb3duLWNvbnRhaW5lci1sYXllcik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMjRweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiB2YXIoLS1kcm9wZG93bi1jb250YWluZXItbWluLXdpZHRoKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1kcm9wZG93bi1jb250YWluZXItbWF4LXdpZHRoKTtcbiAgcGFkZGluZzogMjRweDtcbiAgYm9yZGVyOiB2YXIoLS1kcm9wZG93bi1jb250YWluZXItYm9yZGVyLXNpemUpIHNvbGlkIHZhcigtLWRyb3Bkb3duLWNvbnRhaW5lci1ib3JkZXItY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAycHggMjVweCByZ2JhKDAsIDAsIDAsIDAuMTUpKTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xufVxuLmMtZHJvcGRvd24tY29udGFpbmVyX19wYW5lbFthcmlhLWhpZGRlbj1mYWxzZV0ge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uYy1kcm9wZG93bi1jb250YWluZXJfX2RpdmlkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7XG59XG5cbi5jLWRyb3Bkb3duLWNvbnRhaW5lcl9fYnV0dG9uW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0ge1xuICAtLWJ1dHRvbi10ZXh0LWNvbG9yOiA7IC8qIFsyXSAqL1xufVxuLmMtZHJvcGRvd24tY29udGFpbmVyX19idXR0b25bYXJpYS1leHBhbmRlZD10cnVlXSAuYy1kcm9wZG93bi1jb250YWluZXJfX2ljb24uYy1kcm9wZG93bi1jb250YWluZXJfX2ljb24geyAvKiBbMl0gKi8gfVxuXG4uYy1kcm9wZG93bi1jb250YWluZXJfX3RyaWdnZXItd3JhcHBlciB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4OyAvKiBbM10gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZBVi1CVVRUT04gKERlcHJlY2F0ZWQpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogRmFsbGJhY2sgZm9yIGljb24gaW4gbWFya3VwIHZpYSBTVkdcbiAqIFJlcGxhY2VkIGljb24gdmlhIGljb25mb250XG4gKi9cbi5jLWZhdi1idXR0b25fX3N2ZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNGTEFUUElDS1IgKERlcHJlY2F0ZWQpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogU2VsZWN0b3IgZm9yIGRpc2FibGVkIHN0YXRlIHdhcyBjaGFuZ2VkIGluIGZsYXRwaWNrciA0LjZcbiAqIEZhbGxiYWNrIGZvciA8IDQuNlxuICovXG4uZmxhdHBpY2tyLWRheS5kaXNhYmxlZCB7XG4gIGNvbG9yOiAjOWU5ZmEwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0xlZ2FjeSBCcm93c2VyIE5vdGlmaWNhdGlvblxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIERpc3BsYXkgbm90aWZpY2F0aW9uIG9ubHkgaW4gbm9uLWFmZmVjdGVkIGJyb3dzZXJzLlxuICogTWlnaHQgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlIGlmIHVzZXIgbnVtYmVycyBjYW4gYmUgaWdub3JlZCBjb21wbGV0ZWx5XG4gKiBpbnN0ZWFkIG9mIHByb3ZpZGluZyBjdXN0b20gbWVzc2FnZSByZWdhcmRpbmcgbGVnYWN5IChvdXRkYXRlZCkgYnJvd3Nlci5cbiAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpIHtcbiAgW2xhbmc9Y3NdIGJvZHk6bm90KFtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1vZmZdKTo6YmVmb3JlLCBbbGFuZyo9Y3MtXSBib2R5Om5vdChbZGF0YS1sZWdhY3ktYnJvd3Nlci1ub3RpZmljYXRpb24tb2ZmXSk6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJVcG96b3LFiHVqZW1lLCDFvmUgdsOhxaEgd2Vib3bDvSBwcm9obMOtxb5lxI0gamUgemFzdGFyYWzDvS4gUHJvIHphamnFoXTEm27DrSBvcHRpbcOhbG7DrWhvIHphYmV6cGXEjWVuw60sIG5lamxlcMWhw60gdcW+aXZhdGVsc2vDqSB6a3XFoWVub3N0aSBhIHRlY2huaWNrw6kgc3BvbGVobGl2b3N0aSBkb3BvcnXEjXVqZW1lIGFrdHVhbGl6b3ZhdCB2ZXJ6aSB2YcWhZWhvIHByb2hsw63FvmXEjWUuXCI7XG4gIH1cbiAgW2xhbmc9ZGVdIGJvZHk6bm90KFtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1vZmZdKTo6YmVmb3JlLCBbbGFuZyo9ZGUtXSBib2R5Om5vdChbZGF0YS1sZWdhY3ktYnJvd3Nlci1ub3RpZmljYXRpb24tb2ZmXSk6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJJaHIgV2ViYnJvd3NlciBpc3QgdmVyYWx0ZXQuIERpZXMga2FubiB6dSBuaWVkcmlnZXIgR2VzY2h3aW5kaWdrZWl0IHVuZCBTaWNoZXJoZWl0c3Byb2JsZW1lbiBiZWltIFN1cmZlbiBmw7xocmVuIHNvd2llIHp1IGZlaGxlcmhhZnRlciBGdW5rdGlvbmFsaXTDpHQgdW5kIERhcnN0ZWxsdW5nIGRlciBTZWl0ZS4gQml0dGUgYWt0dWFsaXNpZXJlbiBTaWUgSWhyZSBXZWJicm93c2VyLVZlcnNpb24uXCI7XG4gIH1cbiAgW2xhbmc9ZW5dIGJvZHk6bm90KFtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1vZmZdKTo6YmVmb3JlLCBbbGFuZyo9ZW4tXSBib2R5Om5vdChbZGF0YS1sZWdhY3ktYnJvd3Nlci1ub3RpZmljYXRpb24tb2ZmXSk6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJQbGVhc2Ugbm90ZSwgeW91ciB3ZWIgYnJvd3NlciBpcyBvdXRkYXRlZC4gSW4gb3JkZXIgdG8gZW5zdXJlIG9wdGltdW0gc2VjdXJpdHksIGJlc3QgdXNlciBleHBlcmllbmNlIGFuZCB0ZWNobmljYWwgcmVsaWFiaWxpdHksIHdlIHN1Z2dlc3QgdXBkYXRpbmcgeW91ciBicm93c2VyIHZlcnNpb24uXCI7XG4gIH1cbiAgW2xhbmc9ZXNdIGJvZHk6bm90KFtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1vZmZdKTo6YmVmb3JlLCBbbGFuZyo9ZXMtXSBib2R5Om5vdChbZGF0YS1sZWdhY3ktYnJvd3Nlci1ub3RpZmljYXRpb24tb2ZmXSk6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJUZW5nYSBlbiBjdWVudGEgcXVlIHN1IG5hdmVnYWRvciB3ZWIgZXN0w6EgZGVzYWN0dWFsaXphZG8uIFBhcmEgZ2FyYW50aXphciB1bmEgc2VndXJpZGFkIMOzcHRpbWEsIGxhIG1lam9yIGV4cGVyaWVuY2lhIGRlIHVzdWFyaW8geSBmaWFiaWxpZGFkIHTDqWNuaWNhLCBsZSBzdWdlcmltb3MgcXVlIGFjdHVhbGljZSBsYSB2ZXJzacOzbiBkZSBzdSBuYXZlZ2Fkb3IuXCI7XG4gIH1cbiAgW2xhbmc9ZnJdIGJvZHk6bm90KFtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1vZmZdKTo6YmVmb3JlLCBbbGFuZyo9ZnItXSBib2R5Om5vdChbZGF0YS1sZWdhY3ktYnJvd3Nlci1ub3RpZmljYXRpb24tb2ZmXSk6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJWZXVpbGxleiBub3RlciBxdWUgdm90cmUgbmF2aWdhdGV1ciBXZWIgZXN0IG9ic29sw6h0ZS4gQWZpbiBkZSBnYXJhbnRpciB1bmUgc8OpY3VyaXTDqSBvcHRpbWFsZSwgdW5lIG1laWxsZXVyZSBleHDDqXJpZW5jZSB1dGlsaXNhdGV1ciBldCB1bmUgZmlhYmlsaXTDqSB0ZWNobmlxdWUsIG5vdXMgdm91cyBzdWdnw6lyb25zIGRlIG1ldHRyZSDDoCBqb3VyIGxhIHZlcnNpb24gZGUgdm90cmUgbmF2aWdhdGV1ci5cIjtcbiAgfVxuICBbbGFuZz1pdF0gYm9keTpub3QoW2RhdGEtbGVnYWN5LWJyb3dzZXItbm90aWZpY2F0aW9uLW9mZl0pOjpiZWZvcmUsIFtsYW5nKj1pdC1dIGJvZHk6bm90KFtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1vZmZdKTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlRpZW5pIHByZXNlbnRlIGNoZSBpbCB0dW8gYnJvd3NlciB3ZWIgw6ggb2Jzb2xldG8uIEFsIGZpbmUgZGkgZ2FyYW50aXJlIGxhIG1hc3NpbWEgc2ljdXJlenphLCBsYSBtaWdsaW9yZSBlc3BlcmllbnphIHV0ZW50ZSBlIGwnYWZmaWRhYmlsaXTDoCB0ZWNuaWNhLCBzdWdnZXJpYW1vIGRpIGFnZ2lvcm5hcmUgbGEgdmVyc2lvbmUgZGVsIGJyb3dzZXIuXCI7XG4gIH1cbiAgW2xhbmc9amFdIGJvZHk6bm90KFtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1vZmZdKTo6YmVmb3JlLCBbbGFuZyo9amEtXSBib2R5Om5vdChbZGF0YS1sZWdhY3ktYnJvd3Nlci1ub3RpZmljYXRpb24tb2ZmXSk6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCLjgYrkvb/jgYTjga7jgqbjgqfjg5bjg5bjg6njgqbjgrbjga/lj6TjgY/jgarjgaPjgabjgYTjgb7jgZnjga7jgafjgZTms6jmhI/jgY/jgaDjgZXjgYTjgILmnIDpganjgarjgrvjgq3jg6Xjg6rjg4bjgqPjgIHmnIDpq5jjga7jg6bjg7zjgrbjg7zjgqjjgq/jgrnjg5rjg6rjgqjjg7PjgrnjgIHmioDooZPnmoTjgarkv6HpoLzmgKfjgpLnorrkv53jgZnjgovjgZ/jgoHjgavjgIHjg5bjg6njgqbjgrbjga7jg5Djg7zjgrjjg6fjg7PjgpLmm7TmlrDjgZnjgovjgZPjgajjgpLjgYrli6fjgoHjgZfjgb7jgZnjgIJcIjtcbiAgfVxuICBbbGFuZz1rb10gYm9keTpub3QoW2RhdGEtbGVnYWN5LWJyb3dzZXItbm90aWZpY2F0aW9uLW9mZl0pOjpiZWZvcmUsIFtsYW5nKj1rby1dIGJvZHk6bm90KFtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1vZmZdKTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIuybuSDruIzrnbzsmrDsoIDqsIAg6rWs7Iud7J6F64uI64ukLiDstZzsoIHsnZgg67O07JWILCDstZzsg4HsnZgg7IKs7Jqp7J6QIOqyve2XmCDrsI8g6riw7Iig7KCBIOyViOygleyEseydhCDrs7TsnqXtlZjquLAg7JyE7ZW0IOu4jOudvOyasOyggCDrsoTsoITsnYQg7JeF642w7J207Yq47ZWY64qUIOqyg+ydtCDsoovsirXri4jri6QuXCI7XG4gIH1cbiAgW2xhbmc9cGxdIGJvZHk6bm90KFtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1vZmZdKTo6YmVmb3JlLCBbbGFuZyo9cGwtXSBib2R5Om5vdChbZGF0YS1sZWdhY3ktYnJvd3Nlci1ub3RpZmljYXRpb24tb2ZmXSk6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJQYW1pxJl0YWosIMW8ZSBUd29qYSBwcnplZ2zEhWRhcmthIGludGVybmV0b3dhIGplc3QgcHJ6ZXN0YXJ6YcWCYS4gVyBjZWx1IHphcGV3bmllbmlhIG9wdHltYWxuZWdvIGJlenBpZWN6ZcWEc3R3YSwgbmFqbGVwc3plZ28gZG/Fm3dpYWRjemVuaWEgdcW8eXRrb3duaWthIGkgbmllemF3b2Rub8WbY2kgdGVjaG5pY3puZWogc3VnZXJ1amVteSBha3R1YWxpemFjasSZIHdlcnNqaSBwcnplZ2zEhWRhcmtpLlwiO1xuICB9XG4gIFtsYW5nPXB0XSBib2R5Om5vdChbZGF0YS1sZWdhY3ktYnJvd3Nlci1ub3RpZmljYXRpb24tb2ZmXSk6OmJlZm9yZSwgW2xhbmcqPXB0LV0gYm9keTpub3QoW2RhdGEtbGVnYWN5LWJyb3dzZXItbm90aWZpY2F0aW9uLW9mZl0pOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiT2JzZXJ2ZSBxdWUgc2V1IG5hdmVnYWRvciBkYSB3ZWIgZXN0w6EgZGVzYXR1YWxpemFkby4gUGFyYSBnYXJhbnRpciBhIG3DoXhpbWEgc2VndXJhbsOnYSwgbWVsaG9yIGV4cGVyacOqbmNpYSBkbyB1c3XDoXJpbyBlIGNvbmZpYWJpbGlkYWRlIHTDqWNuaWNhLCBzdWdlcmltb3MgYXR1YWxpemFyIGEgdmVyc8OjbyBkbyBzZXUgbmF2ZWdhZG9yLlwiO1xuICB9XG4gIFtsYW5nPXN2XSBib2R5Om5vdChbZGF0YS1sZWdhY3ktYnJvd3Nlci1ub3RpZmljYXRpb24tb2ZmXSk6OmJlZm9yZSwgW2xhbmcqPXN2LV0gYm9keTpub3QoW2RhdGEtbGVnYWN5LWJyb3dzZXItbm90aWZpY2F0aW9uLW9mZl0pOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiT2JzZXJ2ZXJhIGF0dCBkaW4gd2ViYmzDpHNhcmUgw6RyIGbDtnLDpWxkcmFkLiBGw7ZyIGF0dCBzw6RrZXJzdMOkbGxhIG9wdGltYWwgc8Oka2VyaGV0LCBiw6RzdGEgYW52w6RuZGFydXBwbGV2ZWxzZSBvY2ggdGVrbmlzayB0aWxsZsO2cmxpdGxpZ2hldCBmw7ZyZXNsw6VyIHZpIGF0dCBkdSB1cHBkYXRlcmFyIGRpbiB3ZWJibMOkc2FydmVyc2lvbi5cIjtcbiAgfVxuICBib2R5Om5vdChbZGF0YS1sZWdhY3ktYnJvd3Nlci1ub3RpZmljYXRpb24tb2ZmXSlbZGF0YS1sZWdhY3ktYnJvd3Nlci1ub3RpZmljYXRpb25dOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1sZWdhY3ktYnJvd3Nlci1ub3RpZmljYXRpb24pO1xuICB9XG4gIGJvZHk6bm90KFtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1vZmZdKTo6YmVmb3JlIHtcbiAgICAvKiBbMV0gKi9cbiAgICBjb250ZW50OiBcIlBsZWFzZSBub3RlLCB5b3VyIHdlYiBicm93c2VyIGlzIG91dGRhdGVkLiBJbiBvcmRlciB0byBlbnN1cmUgb3B0aW11bSBzZWN1cml0eSwgYmVzdCB1c2VyIGV4cGVyaWVuY2UgYW5kIHRlY2huaWNhbCByZWxpYWJpbGl0eSwgd2Ugc3VnZ2VzdCB1cGRhdGluZyB5b3VyIGJyb3dzZXIgdmVyc2lvbi5cIjsgLyogWzFdICovXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMjRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlYzY1MTM7XG4gIH1cbn1cbkBzdXBwb3J0cyAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICBbbGFuZz1jc10gYm9keTpub3QoW2RhdGEtbGVnYWN5LWJyb3dzZXItbm90aWZpY2F0aW9uLW9mZl0pOjpiZWZvcmUsIFtsYW5nKj1jcy1dIGJvZHk6bm90KFtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1vZmZdKTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlVwb3pvcsWIdWplbWUsIMW+ZSB2w6HFoSB3ZWJvdsO9IHByb2hsw63FvmXEjSBqZSB6YXN0YXJhbMO9LiBQcm8gemFqacWhdMSbbsOtIG9wdGltw6FsbsOtaG8gemFiZXpwZcSNZW7DrSwgbmVqbGVwxaHDrSB1xb5pdmF0ZWxza8OpIHprdcWhZW5vc3RpIGEgdGVjaG5pY2vDqSBzcG9sZWhsaXZvc3RpIGRvcG9ydcSNdWplbWUgYWt0dWFsaXpvdmF0IHZlcnppIHZhxaFlaG8gcHJvaGzDrcW+ZcSNZS5cIjtcbiAgfVxuICBbbGFuZz1kZV0gYm9keTpub3QoW2RhdGEtbGVnYWN5LWJyb3dzZXItbm90aWZpY2F0aW9uLW9mZl0pOjpiZWZvcmUsIFtsYW5nKj1kZS1dIGJvZHk6bm90KFtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1vZmZdKTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIklociBXZWJicm93c2VyIGlzdCB2ZXJhbHRldC4gRGllcyBrYW5uIHp1IG5pZWRyaWdlciBHZXNjaHdpbmRpZ2tlaXQgdW5kIFNpY2hlcmhlaXRzcHJvYmxlbWVuIGJlaW0gU3VyZmVuIGbDvGhyZW4gc293aWUgenUgZmVobGVyaGFmdGVyIEZ1bmt0aW9uYWxpdMOkdCB1bmQgRGFyc3RlbGx1bmcgZGVyIFNlaXRlLiBCaXR0ZSBha3R1YWxpc2llcmVuIFNpZSBJaHJlIFdlYmJyb3dzZXItVmVyc2lvbi5cIjtcbiAgfVxuICBbbGFuZz1lbl0gYm9keTpub3QoW2RhdGEtbGVnYWN5LWJyb3dzZXItbm90aWZpY2F0aW9uLW9mZl0pOjpiZWZvcmUsIFtsYW5nKj1lbi1dIGJvZHk6bm90KFtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1vZmZdKTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlBsZWFzZSBub3RlLCB5b3VyIHdlYiBicm93c2VyIGlzIG91dGRhdGVkLiBJbiBvcmRlciB0byBlbnN1cmUgb3B0aW11bSBzZWN1cml0eSwgYmVzdCB1c2VyIGV4cGVyaWVuY2UgYW5kIHRlY2huaWNhbCByZWxpYWJpbGl0eSwgd2Ugc3VnZ2VzdCB1cGRhdGluZyB5b3VyIGJyb3dzZXIgdmVyc2lvbi5cIjtcbiAgfVxuICBbbGFuZz1lc10gYm9keTpub3QoW2RhdGEtbGVnYWN5LWJyb3dzZXItbm90aWZpY2F0aW9uLW9mZl0pOjpiZWZvcmUsIFtsYW5nKj1lcy1dIGJvZHk6bm90KFtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1vZmZdKTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlRlbmdhIGVuIGN1ZW50YSBxdWUgc3UgbmF2ZWdhZG9yIHdlYiBlc3TDoSBkZXNhY3R1YWxpemFkby4gUGFyYSBnYXJhbnRpemFyIHVuYSBzZWd1cmlkYWQgw7NwdGltYSwgbGEgbWVqb3IgZXhwZXJpZW5jaWEgZGUgdXN1YXJpbyB5IGZpYWJpbGlkYWQgdMOpY25pY2EsIGxlIHN1Z2VyaW1vcyBxdWUgYWN0dWFsaWNlIGxhIHZlcnNpw7NuIGRlIHN1IG5hdmVnYWRvci5cIjtcbiAgfVxuICBbbGFuZz1mcl0gYm9keTpub3QoW2RhdGEtbGVnYWN5LWJyb3dzZXItbm90aWZpY2F0aW9uLW9mZl0pOjpiZWZvcmUsIFtsYW5nKj1mci1dIGJvZHk6bm90KFtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1vZmZdKTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlZldWlsbGV6IG5vdGVyIHF1ZSB2b3RyZSBuYXZpZ2F0ZXVyIFdlYiBlc3Qgb2Jzb2zDqHRlLiBBZmluIGRlIGdhcmFudGlyIHVuZSBzw6ljdXJpdMOpIG9wdGltYWxlLCB1bmUgbWVpbGxldXJlIGV4cMOpcmllbmNlIHV0aWxpc2F0ZXVyIGV0IHVuZSBmaWFiaWxpdMOpIHRlY2huaXF1ZSwgbm91cyB2b3VzIHN1Z2fDqXJvbnMgZGUgbWV0dHJlIMOgIGpvdXIgbGEgdmVyc2lvbiBkZSB2b3RyZSBuYXZpZ2F0ZXVyLlwiO1xuICB9XG4gIFtsYW5nPWl0XSBib2R5Om5vdChbZGF0YS1sZWdhY3ktYnJvd3Nlci1ub3RpZmljYXRpb24tb2ZmXSk6OmJlZm9yZSwgW2xhbmcqPWl0LV0gYm9keTpub3QoW2RhdGEtbGVnYWN5LWJyb3dzZXItbm90aWZpY2F0aW9uLW9mZl0pOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiVGllbmkgcHJlc2VudGUgY2hlIGlsIHR1byBicm93c2VyIHdlYiDDqCBvYnNvbGV0by4gQWwgZmluZSBkaSBnYXJhbnRpcmUgbGEgbWFzc2ltYSBzaWN1cmV6emEsIGxhIG1pZ2xpb3JlIGVzcGVyaWVuemEgdXRlbnRlIGUgbCdhZmZpZGFiaWxpdMOgIHRlY25pY2EsIHN1Z2dlcmlhbW8gZGkgYWdnaW9ybmFyZSBsYSB2ZXJzaW9uZSBkZWwgYnJvd3Nlci5cIjtcbiAgfVxuICBbbGFuZz1qYV0gYm9keTpub3QoW2RhdGEtbGVnYWN5LWJyb3dzZXItbm90aWZpY2F0aW9uLW9mZl0pOjpiZWZvcmUsIFtsYW5nKj1qYS1dIGJvZHk6bm90KFtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1vZmZdKTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIuOBiuS9v+OBhOOBruOCpuOCp+ODluODluODqeOCpuOCtuOBr+WPpOOBj+OBquOBo+OBpuOBhOOBvuOBmeOBruOBp+OBlOazqOaEj+OBj+OBoOOBleOBhOOAguacgOmBqeOBquOCu+OCreODpeODquODhuOCo+OAgeacgOmrmOOBruODpuODvOOCtuODvOOCqOOCr+OCueODmuODquOCqOODs+OCueOAgeaKgOihk+eahOOBquS/oemgvOaAp+OCkueiuuS/neOBmeOCi+OBn+OCgeOBq+OAgeODluODqeOCpuOCtuOBruODkOODvOOCuOODp+ODs+OCkuabtOaWsOOBmeOCi+OBk+OBqOOCkuOBiuWLp+OCgeOBl+OBvuOBmeOAglwiO1xuICB9XG4gIFtsYW5nPWtvXSBib2R5Om5vdChbZGF0YS1sZWdhY3ktYnJvd3Nlci1ub3RpZmljYXRpb24tb2ZmXSk6OmJlZm9yZSwgW2xhbmcqPWtvLV0gYm9keTpub3QoW2RhdGEtbGVnYWN5LWJyb3dzZXItbm90aWZpY2F0aW9uLW9mZl0pOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi7Ju5IOu4jOudvOyasOyggOqwgCDqtazsi53snoXri4jri6QuIOy1nOyggeydmCDrs7TslYgsIOy1nOyDgeydmCDsgqzsmqnsnpAg6rK97ZeYIOuwjyDquLDsiKDsoIEg7JWI7KCV7ISx7J2EIOuztOyepe2VmOq4sCDsnITtlbQg67iM65287Jqw7KCAIOuyhOyghOydhCDsl4XrjbDsnbTtirjtlZjripQg6rKD7J20IOyii+yKteuLiOuLpC5cIjtcbiAgfVxuICBbbGFuZz1wbF0gYm9keTpub3QoW2RhdGEtbGVnYWN5LWJyb3dzZXItbm90aWZpY2F0aW9uLW9mZl0pOjpiZWZvcmUsIFtsYW5nKj1wbC1dIGJvZHk6bm90KFtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1vZmZdKTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlBhbWnEmXRhaiwgxbxlIFR3b2phIHByemVnbMSFZGFya2EgaW50ZXJuZXRvd2EgamVzdCBwcnplc3RhcnphxYJhLiBXIGNlbHUgemFwZXduaWVuaWEgb3B0eW1hbG5lZ28gYmV6cGllY3plxYRzdHdhLCBuYWpsZXBzemVnbyBkb8Wbd2lhZGN6ZW5pYSB1xbx5dGtvd25pa2EgaSBuaWV6YXdvZG5vxZtjaSB0ZWNobmljem5laiBzdWdlcnVqZW15IGFrdHVhbGl6YWNqxJkgd2Vyc2ppIHByemVnbMSFZGFya2kuXCI7XG4gIH1cbiAgW2xhbmc9cHRdIGJvZHk6bm90KFtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1vZmZdKTo6YmVmb3JlLCBbbGFuZyo9cHQtXSBib2R5Om5vdChbZGF0YS1sZWdhY3ktYnJvd3Nlci1ub3RpZmljYXRpb24tb2ZmXSk6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJPYnNlcnZlIHF1ZSBzZXUgbmF2ZWdhZG9yIGRhIHdlYiBlc3TDoSBkZXNhdHVhbGl6YWRvLiBQYXJhIGdhcmFudGlyIGEgbcOheGltYSBzZWd1cmFuw6dhLCBtZWxob3IgZXhwZXJpw6puY2lhIGRvIHVzdcOhcmlvIGUgY29uZmlhYmlsaWRhZGUgdMOpY25pY2EsIHN1Z2VyaW1vcyBhdHVhbGl6YXIgYSB2ZXJzw6NvIGRvIHNldSBuYXZlZ2Fkb3IuXCI7XG4gIH1cbiAgW2xhbmc9c3ZdIGJvZHk6bm90KFtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1vZmZdKTo6YmVmb3JlLCBbbGFuZyo9c3YtXSBib2R5Om5vdChbZGF0YS1sZWdhY3ktYnJvd3Nlci1ub3RpZmljYXRpb24tb2ZmXSk6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJPYnNlcnZlcmEgYXR0IGRpbiB3ZWJibMOkc2FyZSDDpHIgZsO2csOlbGRyYWQuIEbDtnIgYXR0IHPDpGtlcnN0w6RsbGEgb3B0aW1hbCBzw6RrZXJoZXQsIGLDpHN0YSBhbnbDpG5kYXJ1cHBsZXZlbHNlIG9jaCB0ZWtuaXNrIHRpbGxmw7ZybGl0bGlnaGV0IGbDtnJlc2zDpXIgdmkgYXR0IGR1IHVwcGRhdGVyYXIgZGluIHdlYmJsw6RzYXJ2ZXJzaW9uLlwiO1xuICB9XG4gIGJvZHk6bm90KFtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbi1vZmZdKVtkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbl06OmJlZm9yZSB7XG4gICAgY29udGVudDogYXR0cihkYXRhLWxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbik7XG4gIH1cbiAgYm9keTpub3QoW2RhdGEtbGVnYWN5LWJyb3dzZXItbm90aWZpY2F0aW9uLW9mZl0pOjpiZWZvcmUge1xuICAgIC8qIFsxXSAqL1xuICAgIGNvbnRlbnQ6IFwiUGxlYXNlIG5vdGUsIHlvdXIgd2ViIGJyb3dzZXIgaXMgb3V0ZGF0ZWQuIEluIG9yZGVyIHRvIGVuc3VyZSBvcHRpbXVtIHNlY3VyaXR5LCBiZXN0IHVzZXIgZXhwZXJpZW5jZSBhbmQgdGVjaG5pY2FsIHJlbGlhYmlsaXR5LCB3ZSBzdWdnZXN0IHVwZGF0aW5nIHlvdXIgYnJvd3NlciB2ZXJzaW9uLlwiOyAvKiBbMV0gKi9cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VjNjUxMztcbiAgfVxufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0lOUFVUIChTY29wZXMpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIEFkZCBmYWxsYmFjayBzcGFjaW5nIHdoZW4gc2VsZWN0b3IgYC5jLWZvcm0tZmllbGQtLXN0YXRpY2AgaXMgbm90IHByZXNlbnQuXG4gKiBbMl0gRG8gbm90IGFwcGx5IGZhbGxiYWNrIHRvIGNvbWJvYm94IGl0ZW1zIChpbmhlcml0ZWQgdmlhIGBAZXh0ZW5kYCkuXG4qL1xuLmMtZm9ybS1maWVsZDpub3QoLmMtZm9ybS1maWVsZC0tc3RhdGljKSAuYy1yYWRpb19fbGFiZWwsXG4uYy1mb3JtLWZpZWxkOm5vdCguYy1mb3JtLWZpZWxkLS1zdGF0aWMpIC5jLWNoZWNrYm94X19sYWJlbCxcbi5jLWZvcm0tZmllbGQ6bm90KC5jLWZvcm0tZmllbGQtLXN0YXRpYykgLmMtY29tYm9ib3hfX2xpc3Rib3hbYXJpYS1tdWx0aXNlbGVjdGFibGU9dHJ1ZV0gLmMtY29tYm9ib3hfX2l0ZW1fX3RleHQsXG4uYy1jb21ib2JveF9fbGlzdGJveFthcmlhLW11bHRpc2VsZWN0YWJsZT10cnVlXSAuYy1mb3JtLWZpZWxkOm5vdCguYy1mb3JtLWZpZWxkLS1zdGF0aWMpIC5jLWNvbWJvYm94X19pdGVtX190ZXh0IHtcbiAgbWFyZ2luLXRvcDogOHB4OyAvKiBbMV0gKi9cbn1cbi5jLWZvcm0tZmllbGQ6bm90KC5jLWZvcm0tZmllbGQtLXN0YXRpYykgLmMtY29tYm9ib3hfX2l0ZW1fX3RleHQge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IC8qIFsyXSAqL1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTUVESUEtR1JJRCAoRGVwcmVjYXRlZClcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBARkFMTEJBQ0s6XG4gKiBCcm93c2VycyB3aXRob3V0IGA6aGFzYCBzdXBwb3J0LlxuICpcbiAqIFRoaXMgdHJpZ2dlcnMgYW5pbWF0aW9uIG9uIGhvdmVyL2ZvY3VzIG9uIGNvbnRhaW5lciBpbnN0ZWFkIG9mIHNpbmdsZSBlbGVtZW50cy5cbiAqL1xuLyoqXG4gKiBbMV0gQXZvaWQgdHJpZ2dlcmluZyBhbmltYXRpb24gb24gaG92ZXIgZm9yIGNvbnRhaW5lciB3aGVuIGluIGJldHdlZW4gaXRlbXMuXG4gKiBbMl0gUmVzZXQgcG9pbnRlciBldmVudHMgZm9yIGl0ZW1zLlxuICovXG5Ac3VwcG9ydHMgbm90IHNlbGVjdG9yKDpoYXMoLnN1cHBvcnQpKSB7XG4gIC5jLW1lZGlhLWdyaWQge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzY3NzL21lZGlhLWZlYXR1cmUtdmFsdWUtZG9sbGFyLXZhcmlhYmxlICovXG4gIH1cbiAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAuYy1tZWRpYS1ncmlkIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbMV0gKi9cbiAgICB9XG4gICAgLmMtbWVkaWEtZ3JpZDpob3ZlciAuYy1tZWRpYS1ncmlkX19saW5rIC5jLW1lZGlhLWdyaWRfX2ltYWdlLCAuYy1tZWRpYS1ncmlkOmZvY3VzLXdpdGhpbiAuYy1tZWRpYS1ncmlkX19pbWFnZSB7XG4gICAgICBvcGFjaXR5OiAwLjM7XG4gICAgICBmaWx0ZXI6IGJsdXIoMnB4KTtcbiAgICB9XG4gICAgLmMtbWVkaWEtZ3JpZDpob3ZlciAuYy1tZWRpYS1ncmlkX19saW5rOmhvdmVyLCAuYy1tZWRpYS1ncmlkOmhvdmVyIC5jLW1lZGlhLWdyaWRfX2xpbms6Zm9jdXMtdmlzaWJsZSxcbiAgICAuYy1tZWRpYS1ncmlkIC5jLW1lZGlhLWdyaWRfX2xpbms6aG92ZXIsXG4gICAgLmMtbWVkaWEtZ3JpZCAuYy1tZWRpYS1ncmlkX19saW5rOmZvY3VzLXZpc2libGUge1xuICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuICAgIH1cbiAgICAuYy1tZWRpYS1ncmlkOmhvdmVyIC5jLW1lZGlhLWdyaWRfX2xpbms6aG92ZXIgLmMtbWVkaWEtZ3JpZF9faW1hZ2UsIC5jLW1lZGlhLWdyaWQ6aG92ZXIgLmMtbWVkaWEtZ3JpZF9fbGluazpmb2N1cy12aXNpYmxlIC5jLW1lZGlhLWdyaWRfX2ltYWdlLFxuICAgIC5jLW1lZGlhLWdyaWQgLmMtbWVkaWEtZ3JpZF9fbGluazpob3ZlciAuYy1tZWRpYS1ncmlkX19pbWFnZSxcbiAgICAuYy1tZWRpYS1ncmlkIC5jLW1lZGlhLWdyaWRfX2xpbms6Zm9jdXMtdmlzaWJsZSAuYy1tZWRpYS1ncmlkX19pbWFnZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgZmlsdGVyOiBibHVyKDApO1xuICAgIH1cbiAgICAuYy1tZWRpYS1ncmlkIC5jLW1lZGlhLWdyaWRfX2l0ZW0ge1xuICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87IC8qIFsyXSAqL1xuICAgIH1cbiAgfVxufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZsYXRwaWNrciAoRmFsbGJhY2spXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIEZhbGxiYWNrIGZvciBub24tc3VwcG9ydGluZyBicm93c2VyIGZvciBgOmhhc2Agc2VsZWN0b3IuXG4gKiAgICAgVGhpcyB3aWxsIGFsd2F5cyBzaG93IHRoZSBJblJhbmdlLVN0YXJ0L0VuZCBiYWNrZ3JvdW5kIGV2ZW4gd2hlbiBub1xuICogICAgIHJhbmdlIGlzIHNlbGVjdGVkICh5ZXQpLlxuICogICAgIGh0dHBzOi8vY2FuaXVzZS5jb20vY3NzLWhhc1xuICovXG5Ac3VwcG9ydHMgbm90IHNlbGVjdG9yKDpoYXMoLnN1cHBvcnQpKSB7XG4gIC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2U6OmJlZm9yZSwgLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2U6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZmZjYzsgLyogWzFdICovXG4gIH1cbn1cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJbmRpY2F0b3IgRG90IChTY29wZSBTZXR0aW5ncylcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNTdGlja3kgRWxlbWVudHMgKFNjb3BlcylcblxuICAgIERlZmluZSBvZmZzZXRzIGZvciBzdGlja3kgZWxlbWVudHMgZm9yIHNwZWNpZmljIGNvbnRleHRzL3Njb3Blcy5cblxuICAgIEFzIHBlciBkZXNpZ24vcmVjb21tZW5kYXRpb24sIG9ubHkgMiBzdGlja3kgZWxlbWVudHMgc2hvdWxkIGJlIGNvbWJpbmVkLlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gICogWzFdIEZhbGxiYWNrIGZvciBub24tc3VwcG9ydGluZyBicm93c2VycyBvZiBgOmhhc2AuXG4gICAgIFJlbGllcyBvbiBET00gc3RydWN0dXJlICh0YWJsZSBuZWVkcyB0byBiZSBpbiBzZWN0aW9uLW5hdiBzZWN0aW9uKS5cbiAgICAgQERFUFJFQ0FURURcbiAqL1xuOnJvb3Q6aGFzKC5jLXNlY3Rpb24tbmF2KSB7XG4gIC0tYnJvbi1zdGlja3ktb2Zmc2V0OiA2NHB4O1xufVxuXG4vKiBbMV0gKi9cbkBzdXBwb3J0cyBub3Qgc2VsZWN0b3IoOmhhcyguc3VwcG9ydCkpIHtcbiAgLmMtc2VjdGlvbi1uYXZfX3NlY3Rpb24gLmMtdGFibGUtLXN0aWNreS1oZWFkIHtcbiAgICAtLWJyb24tc3RpY2t5LW9mZnNldDogNjRweDtcbiAgfVxufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0JVVFRPTlMgKFNjb3BlcylcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLypcbiAqIFsxXSBTZXQgdGhlIGJ1dHRvbiB3aWR0aCB0byAxMDAlIG9uIG1lZGlhIHRlYXNlciBicmVha3BvaW50LlxuICogWzJdIFRoZSB2ZXJ0aWNhbCBtZWRpYSB0ZWFzZXIncyBidXR0b24gaXMgYWx3YXlzIDEwMCUgd2lkdGguXG4gKiBbM10gT3ZlcndyaXRlIHRoZSBkaXNhYmxlZCBzdHlsZXMgYXMgdGhleSBhcmUgaGFuZGxlZCBieSB0aGUgb3ZlcmxheS5cbiAqL1xuLmMtYnRuIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5LCBzZWxlY3Rvci1tYXgtY29tYmluYXRvcnMsIHNlbGVjdG9yLW1heC1jb21wb3VuZC1zZWxlY3RvcnMsIHNlbGVjdG9yLW1heC1jbGFzcyAqL1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSwgc2VsZWN0b3ItbWF4LWNvbWJpbmF0b3JzLCBzZWxlY3Rvci1tYXgtY29tcG91bmQtc2VsZWN0b3JzLCBzZWxlY3Rvci1tYXgtY2xhc3MgKi9cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuYy1tZWRpYS10ZWFzZXIgLmMtbWVkaWEtdGVhc2VyX19mb290ZXIgLmMtYnRuIHtcbiAgICB3aWR0aDogMTAwJTsgLyogWzFdICovXG4gIH1cbn1cbi5jLW1lZGlhLXRlYXNlci0tdmVydGljYWwgLmMtbWVkaWEtdGVhc2VyX19mb290ZXIgLmMtYnRuIHtcbiAgd2lkdGg6IDEwMCU7IC8qIFsyXSAqL1xufVxuLmMtYmFjay10by10b3AgLmMtYnRuIHtcbiAgLS1idXR0b24tZmxleC1kaXJlY3Rpb246IHJvdztcbn1cbi5jLXRhYmxlLXdyYXBwZXIgW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLmMtYnRuIC5jLWJ0bl9fdGV4dC5jLWJ0bl9fdGV4dCxcbi5jLXRhYmxlLXdyYXBwZXIgW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLmMtYnRuIC5jLWJ0bl9faWNvbi5jLWJ0bl9faWNvbiwgLmMtdGFibGUtd3JhcHBlciAuaXMtZGlzYWJsZWQgLmMtYnRuIC5jLWJ0bl9fdGV4dC5jLWJ0bl9fdGV4dCxcbi5jLXRhYmxlLXdyYXBwZXIgLmlzLWRpc2FibGVkIC5jLWJ0biAuYy1idG5fX2ljb24uYy1idG5fX2ljb24ge1xuICBjb2xvcjogIzE2MTcxODsgLyogWzNdICovXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJTlBVVCAoU2NvcGVzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBIaWRlIHBsYWNlaG9sZGVyIHRleHRzIGlmIGZsb2F0aW5nIGxhYmVscyBhcmUgYWN0aXZhdGVkLlxuICogWzJdIFdoZW4gRmxvYXRpbmcgTGFiZWwgc3BhY2luZyBpcyBiaWdnZXIgdGhhbiBgMGAsIGFkZCB0aGlzIHNwYWNlIHRvXG4gKiAgICAgdGhlIENoZWNrYm94IG9yIFJhZGlvIExhYmVsIHRvIGVuc3VyZSBlbm91Z2ggc3BhY2UgYmV0d2VlbiB0aGVtLlxuICogLy8gQFRPRE86IG1vdmUgdG8gZmFsbGJhY2sgbGF5ZXJcbiAqIFszXSBBZGQgZmFsbGJhY2sgc3BhY2luZyB3aGVuIHNlbGVjdG9yIGAuYy1mb3JtLWZpZWxkLS1zdGF0aWNgIGlzIG5vdCBwcmVzZW50LlxuKi9cbi5jLWlucHV0X19pbnB1dCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cbmZvcm0uaXMtanMtb24gLmMtZm9ybS1maWVsZDpub3QoLmMtZm9ybS1maWVsZC0tbm8tZmxvYXRpbmcpIC5jLWlucHV0X19pbnB1dCB7IC8qIFsxXSAqLyB9XG5mb3JtLmlzLWpzLW9uIC5jLWZvcm0tZmllbGQ6bm90KC5jLWZvcm0tZmllbGQtLW5vLWZsb2F0aW5nKSAuYy1pbnB1dF9faW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5mb3JtLmlzLWpzLW9uIC5jLWZvcm0tZmllbGQ6bm90KC5jLWZvcm0tZmllbGQtLW5vLWZsb2F0aW5nKSAuYy1pbnB1dF9faW5wdXQ6ZGlzYWJsZWQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQUNDT1JESU9OIChTY29wZXMpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIFN0eWxpbmcgb2YgYSBzaW5nbGUgYWNjb3JkaW9uIGNvbXBvbmVudCB3aXRoaW4gYSBjYXJkIGNvbXBvbmVudC5cbiAqIFsyXSBJZiBhbiBhY2NvcmRpb24gd2l0aCBvbmx5IG9uZSBjaGlsZCBlbGVtZW50IGlzIHBsYWNlZCBpbiBhIGNhcmQgY29sbGFwc2libGVcbiAqICAgICBjb21wb25lbnQsIHBhZGRpbmdzIGhhdmUgdG8gYmUgcmVtb3ZlZC5cbiAqL1xuLmMtY2FyZCAuYy1hY2NvcmRpb24geyAvKiBbMV0gKi9cbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uYy1jYXJkIC5jLWFjY29yZGlvbjpvbmx5LWNoaWxkIHsgLyogWzFdICovXG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uYy1jYXJkIC5jLWFjY29yZGlvbjpvbmx5LWNoaWxkIC5jLWFjY29yZGlvbl9faGVhZGVyIHtcbiAgcGFkZGluZy1yaWdodDogMzJweDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuLmMtY2FyZCAuYy1hY2NvcmRpb246b25seS1jaGlsZCAuYy1hY2NvcmRpb25fX2NvbnRlbnQge1xuICAtLWFjY29yZGlvbi1wYW5lbC1wYWRkaW5nLXRvcDogMjRweDtcbn1cbi5jLWNhcmQ6bm90KC5jLWNhcmQtLWV4cGFuZGFibGUpIC5jLWFjY29yZGlvbiB7IC8qIFsyXSAqL1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuLmMtY2FyZDpub3QoLmMtY2FyZC0tZXhwYW5kYWJsZSkgLmMtYWNjb3JkaW9uOm9ubHktY2hpbGQgLmMtYWNjb3JkaW9uX19oZWFkZXIge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG4uYy1jYXJkOm5vdCguYy1jYXJkLS1leHBhbmRhYmxlKSAuYy1hY2NvcmRpb246b25seS1jaGlsZCAuYy1hY2NvcmRpb25fX3RpdGxlLWljb24ge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xufVxuLmMtY2FyZDpub3QoLmMtY2FyZC0tZXhwYW5kYWJsZSkgLmMtYWNjb3JkaW9uOm9ubHktY2hpbGQgLmMtYWNjb3JkaW9uX19wYW5lbCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIGxlbmd0aC16ZXJvLW5vLXVuaXQgKi9cbiAgLS1hY2NvcmRpb24tcGFuZWwtcGFkZGluZy1yaWdodDogMHB4O1xuICAtLWFjY29yZGlvbi1wYW5lbC1wYWRkaW5nLWJvdHRvbTogMHB4O1xuICAtLWFjY29yZGlvbi1wYW5lbC1wYWRkaW5nLWxlZnQ6IDBweDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSBsZW5ndGgtemVyby1uby11bml0ICovXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNQUk9EVUNULUlORk8tU1VNTUFSWSAoU2NvcGVzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBTdHlsaW5nIG9mIGEgcHJvZHVjdCBpbmZvIHN1bW1hcnkgaW4gYSBmb2xkIG91dC5cbiAqL1xuLmMtZm9sZC1vdXRfX2hlYWRlclthcmlhLWV4cGFuZGVkPXRydWVdIC5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5IC5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5X19oZWFkaW5nLFxuLmMtZm9sZC1vdXRfX2hlYWRlclthcmlhLWV4cGFuZGVkPXRydWVdIC5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5IC5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5X19pbWcsXG4uYy1mb2xkLW91dF9faGVhZGVyW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0gLmMtcHJvZHVjdC1pbmZvLXN1bW1hcnkgLmMtcHJvZHVjdC1pbmZvLXN1bW1hcnlfX2luZm8ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSU5GTy1JQ09OIChTY29wZXMpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogSG90Zml4IGZvciBJbmZvIEljb24gbGF5b3V0IGlzc3VlcyB3aGVuIHRoZSBpY29uIGlzIGEgZGlyZWN0IGNoaWxkIG9mXG4gKiBgLmMtZm9ybS1maWVsZGAgVGhlIHNpemUgYW5kIHBvc2l0aW9uIG9mIHRoZSBpbmZvIGljb24gd2FzIGFmZmVjdGVkIGJ5IHRoZVxuICogZmxleGJveCBjb250ZXh0LiBgLmMtZm9ybS1maWVsZCA+IC5jLWluZm8taWNvbmAgaXMgbm90IGEgcmVjb21tZW5kZWQgbWFya3VwXG4gKiBvcmRlci4gSWRlYWxseSBgLmMtaW5mby1pY29uYCBzaG91bGQgYmUgaW5zaWRlIG9mIGAuYy1mb3JtLWZpZWxkX19sYWJlbGAuXG4gKiBCdXQgd2Ugb3Vyc2VsdmVzIGhhdmUgd3JvbmdseSBkZW1vbnN0cmF0ZWQgdGhpcyBpblxuICogaHR0cHM6Ly9icm9uc29uLnZ3ZnMudG9vbHMvZGVmYXVsdC92LzcuMTQuMC9jb21wb25lbnRzL3ByZXZpZXcvYnJvbnNvbi1jYWxjdWxhdGlvbi1wYWdlLS1jYWxjdWxhdGlvbi1wYWdlLmh0bWwpXG4gKiBCdWcgcmVwb3J0OiBodHRwczovL2ppcmEucGxhdGZvcm0udndmcy5pby9icm93c2UvQlJPTlNELTEzNT9mb2N1c2VkQ29tbWVudElkPTQ5OTk3JnBhZ2U9Y29tLmF0bGFzc2lhbi5qaXJhLnBsdWdpbi5zeXN0ZW0uaXNzdWV0YWJwYW5lbHMlM0Fjb21tZW50LXRhYnBhbmVsI2NvbW1lbnQtNDk5OTdcbiAqXG4gKiBAVE9ETzogUmVmYWN0b3IgSW5mbyBJY29uIENTUyBmb3IgYWxsIGJyYW5kcyBieSBzaW1wbGlmeWluZyBTQ1NTIGFuZCBtYWtpbmcgaXQgbW9yZSByb2J1c3QuXG4gKlxuICogW2hmLTFdIFJlc2V0IG5lZ2F0aXZlIG1hcmdpbnMuIFNlZSBbM10uXG4gKiBbaGYtMl0gT3ZlcnJpZGUgdGhlIGRlZmF1bHQgYGFsaWduLWl0ZW1zYCB2YWx1ZSAoYHN0cmV0Y2hgKS5cbiAqL1xuLmMtZm9ybS1maWVsZCA+IC5jLWluZm8taWNvbiB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjsgLyogW2hmLTJdICovXG4gIG1hcmdpbi10b3A6IDA7IC8qIFtoZi0xXSAqL1xuICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbaGYtMV0gKi9cbn1cblxuLyoqXG4gKiBGaXggaW5jb3JyZWN0IHBvc2l0aW9uaW5nIGluIHZhcmlvdXMgY29udGV4dHMgZHVlIHRvIG5lZ2F0aXZlIG1hcmdpbiBcImhhY2tcIi5cbiAqL1xuLmMtc2VjdGlvbi1oZWFkaW5nIC5jLWluZm8taWNvbiB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNIRUFERVIgKFNjb3BlcylcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gUHVzaCB0byByaWdodCBzaWRlLlxuICogWzJdIE5vIHNwYWNpbmcgYmV0d2VlbiBjb250ZXh0LWJhciAmIG5vdGlmaWNhdGlvbi1jZW50ZXJcbiAqICAgICB0byB2aXN1YWxseSBncm91cCB0aGVtLlxuICogWzNdIEZhbGxiYWNrIGZvciBvbGQgbWFya3VwIChjb250ZXh0LWJhciBuZXN0ZWQgaW4gaGVhZGVyLW5hdikgZm9yIHBvc2l0aW9uaW5nLlxuICogWzRdIExheW91dCBjb250ZXh0LWJhciB3aXRoIG9ubHkgbG9nbyAmIGNvbnRleHQtYmFyIGluIGhlYWRlci5cbiAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk2MXB4KSB7XG4gIC5jLWhlYWRlcl9fY29udGVudC13cmFwcGVyIC5jLWhlYWRlcl9fbG9nbzpub3QoOmxhc3QtY2hpbGQpLFxuICAuYy1oZWFkZXJfX2NvbnRlbnQtd3JhcHBlciAuYy1oZWFkZXJfX25hdjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDMycHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuYy1oZWFkZXJfX2NvbnRlbnQtd3JhcHBlciAuYy1oZWFkZXJfX25hdiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gIH1cbiAgLmMtaGVhZGVyX19jb250ZW50LXdyYXBwZXIgLmMtaGVhZGVyX19uYXYgPiAuYy1jb250ZXh0LWJhciB7XG4gICAgb3JkZXI6IC0xOyAvKiBbM10gKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gIH1cbn1cbi5jLWhlYWRlcl9fY29udGVudC13cmFwcGVyIC5jLWNvbnRleHQtYmFyLFxuLmMtaGVhZGVyX19jb250ZW50LXdyYXBwZXIgLmMtaGVhZGVyX19ub3RpZmljYXRpb24tY2VudGVyIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IC8qIFsxXSAqL1xufVxuLmMtaGVhZGVyX19jb250ZW50LXdyYXBwZXIgLmMtaGVhZGVyX19sb2dvICsgLmMtY29udGV4dC1iYXIgeyAvKiBbNF0gKi9cbiAgZmxleC1ncm93OiAxO1xuICBmbGV4LXNocmluazogMTtcbiAgZmxleC1iYXNpczogYXV0bztcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5jLWNvbnRleHQtYmFyIH4gLmMtaGVhZGVyX19ub3RpZmljYXRpb24tY2VudGVyIHtcbiAgICBtYXJnaW4tbGVmdDogMDsgLyogWzJdICovXG4gIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1BST0RVQ1QtU0VBUkNILUZJTFRFUiAoU2NvcGVzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBSZW1vdmUgaG9yaXpvbnRhbCBwYWRkaW5nIGZvciBhY2NvcmRpb25zIGluc2lkZSBwcm9kdWN0IHNlYXJjaCBmaWx0ZXJzLlxuICogWzJdIERlY3JlYXNlIGJ1dHRvbiBncm91cCBpdGVtIHdpZHRoIGluc2lkZSBwcm9kdWN0IHNlYXJjaCBmaWx0ZXJzLlxuICovXG4uYy1wcm9kdWN0LXNlYXJjaC1maWx0ZXIgLmMtYWNjb3JkaW9uX19wYW5lbCB7XG4gIC0tYWNjb3JkaW9uLXBhbmVsLXBhZGRpbmctbGVmdDogMHB4OyAvKiBbMV0gKi9cbiAgLS1hY2NvcmRpb24tcGFuZWwtcGFkZGluZy1yaWdodDogMHB4OyAvKiBbMV0gKi9cbn1cbi5jLXByb2R1Y3Qtc2VhcmNoLWZpbHRlciAuYy1idXR0b24tZ3JvdXAge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDEyMnB4LCAxZnIpKTsgLyogWzJdICovXG59XG4uYy1wcm9kdWN0LXNlYXJjaC1maWx0ZXIgLmMtYnV0dG9uLWdyb3VwLmMtYnV0dG9uLWdyb3VwLS1hdXRvIHtcbiAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxMjJweCwgMWZyKSk7IC8qIFsyXSAqL1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjUFJPRFVDVCBTRUFSQ0ggRk9STSAoU2NvcGVzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBBbGlnbiBidXR0b25zIHRvIHRoZSByaWdodCBzaWRlIG9uIGhvcml6b250YWwgbW9kZSBhbmQgY2VudGVyIHRoZW1cbiAqICAgICBvbiB2ZXJ0aWNhbCBtb2RlLlxuICovXG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtcHJvZHVjdC1zZWFyY2gtZm9ybSAuYy1idG4tLXNtYWxsIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSW5kaWNhdG9yIERvdCAoU2NvcGUgU2V0dGluZ3MpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJbmRpY2F0b3IgRG90IChTY29wZXMpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIFVuc2V0IChyZS0pIHBvc2l0aW9uaW5nIGFzIGluIHRob3NlIHNjb3BlcyB0aGUgcG9zaXRpb24gaXMgaGFuZGxlZCBkaWZmZXJlbnRseS5cbiAqIFsyXSBQaXhlbC1wdXNoaW5nIGRlbHV4ZSEgU2luY2UgdGhlIHBvc2l0aW9uaW5nIGlzIGRlcGVuZGluZyBvbiB0b28gbWFueSBwYXJhbWV0ZXJzXG4gKiAgICAgKGBmb250LXNpemVgLCBgbGluZS1oZWlnaHRgLCBldGMuKSBhIG1hZ2ljIG51bWJlciBpcyB1c2VkIGhlcmVcbiAqICAgICB0byB2aXN1YWxseSBhbGlnbiBkb3QgdG8gYmFzZWxpbmUuXG4gKi9cbi5jLWluYm94LXRhYmxlX19zdGF0dXMtaW5kaWNhdG9yIC5jLWluZGljYXRvci1kb3RfX2RvdCB7XG4gIHRyYW5zZm9ybTogbm9uZTsgLyogWzFdICovXG59XG4uYy1ub3RpZmljYXRpb24tY2VudGVyX19pdGVtX19zdGF0dXMgLmMtaW5kaWNhdG9yLWRvdF9fZG90IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyAvKiBbMV0gKi9cbn1cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJTlRFUkFDVElPTi1MQVlFUiAoU2NvcGVzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBDZW50ZXIgYnV0dG9uIHRleHQgaW4gc21hbGxlciB2aWV3cG9ydHMuXG4gKiBbMl0gQ2hhbmdlIGBmbGV4LWRpcmVjdGlvbmAgb24gcmV2ZXJzZWQgYnV0dG9uLWNvbnRhaW5lciBvbiBzbWFsbGVyIHZpZXdwb3J0c1xuICogICAgIHRvIGRpc3BsYXkgY2FsbC10by1hY3Rpb24gb24gdG9wLlxuICovXG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmMtaW50ZXJhY3Rpb24tbGF5ZXJfX2J1dHRvbi1iYXIgLmMtYnRuLS1saW5rIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogWzFdICovXG4gIH1cbiAgLmMtaW50ZXJhY3Rpb24tbGF5ZXJfX2J1dHRvbi1iYXIgLm8tYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyAvKiBbMl0gKi9cbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjVEFCTEVTIChTY29wZXMpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIFJlc3BvbnNpdmUgdmFyaWFudDogUHJldmVudHMgdGhlIHdpZHRoIG9mIGAuYy1iYWRnZWAgZnJvbSBibG93aW5nIHVwXG4gKiAgICAgd2hlbiBhIGNvbWJpbmF0aW9uIG9mIENTUyBncmlkIGFuZCBDU1MgZmxleGJveCBjb21lcyBpbnRvIHBsYXkuXG4gKiBbMl0gVmVydGljYWxseSBhbGlnbiB3aXRoIHRleHRcbiAqL1xuLmMtdGFibGUtd3JhcHBlciB0aCAuYy1iYWRnZV9faWNvbjo6YmVmb3JlLFxuLmMtdGFibGUtd3JhcHBlciB0ZCAuYy1iYWRnZV9faWNvbjo6YmVmb3JlIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4uYy10YWJsZS13cmFwcGVyIHRoIC5jLXN0YXR1cy1tZXNzYWdlLFxuLmMtdGFibGUtd3JhcHBlciB0ZCAuYy1zdGF0dXMtbWVzc2FnZSB7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgLyogWzJdICovXG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAuYy10YWJsZS0tcmVzcG9uc2l2ZSBbZGF0YS1jb2x1bW5oZWFkZXJdIC5jLWJhZGdlIHtcbiAgICAgIGZsZXgtZ3JvdzogMDsgLyogWzFdICovXG4gICAgfVxuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNIRVJPLVRFQVNFUiAoU2NvcGVzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBJZiB0aGUgaW52ZXJ0ZWQgdmFyaWFudCBvZiB0aGUgSGVybyBUZWFzZXIgY29tcG9uZW50IGlzIGVuYWJsZWQgdmlhXG4gKiAgICAgdGhlIGAkaGVyby10ZWFzZXItaW52ZXJ0ZWRgIFNhc3MgdmFyaWFibGUsIHRoZSBjb2xvciBtdXN0IGJlIGludmVydGVkXG4gKiAgICAgbWFudWFsbHksIHNpbmNlIHRoZSBjb2xvciBjYW5ub3QgYmUgaW5oZXJpdGVkIGZyb21cbiAqICAgICBgW2RhdGEtdGhlbWU9XCJicmFuZFwiXWAuXG4gKiBbMl0gRm9yIGJyYW5kcyB0aGF0IGhhdmUgbm90IGVuYWJsZWQgdGhlIGludmVydGVkIHZhcmlhbnQgb2YgdGhlXG4gKiAgICAgSGVybyBUZWFzZXIgY29tcG9uZW50IHZpYSB0aGUgYCRoZXJvLXRlYXNlci1pbnZlcnRlZGAgU2FzcyB2YXJpYWJsZSxcbiAqICAgICBidXQgc3RpbGwgbmVlZCB0byBhZGp1c3QgdGhlIGNvbG9yIG9mIHRoZSBIaW50IGNvbXBvbmVudC5cbiAqIFszXSBTY2FsZSB0aGUgdmlkZW8gd3JhcHBlciBmb3IgYmFja2dyb3VuZC12aWRlb3MgdG8gdGhlIHBhcmVudOKAmXMgaGVpZ2h0LlxuICogWzRdIFVzZSBzYW1lIHNpemUgbW9kZSBhcyBiYWNrZ3JvdW5kIHZpZGVvIChgY292ZXJgKSB0byBwcm92aWRlIGEgc21vb3RoZXIgZXhwZXJpZW5jZSBiZWZvcmUgdGhlIHZpZGVvIGlzIGxvYWRlZC5cbiAqIFs1XSBCeXBhc3MgdGhlIGBTaG93IG1vcmVgIHNldHRpbmdzLCBhcyB0aGV5IGFyZSBoaWRpbmcgdGhlIGlucHV0IGJvcmRlcnMgYW5kIG1ha2UgdGhlIGZvY3VzIHN0eWxlcyBwYXJ0aWFsbHkgaW52aXNpYmxlLlxuICovXG4uYy1oZXJvLXRlYXNlcl9fcHJldGl0bGUgLmMtaGludCB7XG4gIGJvcmRlci1jb2xvcjogY3VycmVudENvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzE2MTcxODtcbn1cbi5jLWhlcm8tdGVhc2VyX190aXRsZSAuYy1oaW50IHtcbiAgYm9yZGVyLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtaGVyby10ZWFzZXJfX3N1YnRpdGxlIC5jLWhpbnQge1xuICBib3JkZXItY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uYy1oZXJvLXRlYXNlcl9fdGV4dCAuYy1oaW50IHtcbiAgYm9yZGVyLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtaGVyby10ZWFzZXItLWludmVydGVkIC5jLWhlcm8tdGVhc2VyX19wcmV0aXRsZSAuYy1oaW50IHtcbiAgYm9yZGVyLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNjE3MTg7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmMtaGVyby10ZWFzZXItLWludmVydGVkIC5jLWhlcm8tdGVhc2VyX19wcmV0aXRsZSAuYy1oaW50OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICMxNjE3MTg7XG59XG4uYy1oZXJvLXRlYXNlci0taW52ZXJ0ZWQgLmMtaGVyby10ZWFzZXJfX3RpdGxlIC5jLWhpbnQge1xuICBib3JkZXItY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE2MTcxODtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uYy1oZXJvLXRlYXNlci0taW52ZXJ0ZWQgLmMtaGVyby10ZWFzZXJfX3RpdGxlIC5jLWhpbnQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzE2MTcxODtcbn1cbi5jLWhlcm8tdGVhc2VyLS1pbnZlcnRlZCAuYy1oZXJvLXRlYXNlcl9fc3VidGl0bGUgLmMtaGludCB7XG4gIGJvcmRlci1jb2xvcjogY3VycmVudENvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTYxNzE4O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5jLWhlcm8tdGVhc2VyLS1pbnZlcnRlZCAuYy1oZXJvLXRlYXNlcl9fc3VidGl0bGUgLmMtaGludDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuLmMtaGVyby10ZWFzZXItLWludmVydGVkIC5jLWhlcm8tdGVhc2VyX190ZXh0IC5jLWhpbnQge1xuICBib3JkZXItY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE2MTcxODtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uYy1oZXJvLXRlYXNlci0taW52ZXJ0ZWQgLmMtaGVyby10ZWFzZXJfX3RleHQgLmMtaGludDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjMTYxNzE4O1xufVxuXG4uYy1oZXJvLXRlYXNlcl9fYmFja2dyb3VuZC12aWRlbyAucGx5ci0tdmlkZW8ge1xuICBoZWlnaHQ6IGluaGVyaXQ7IC8qIFszXSAqL1xufVxuLmMtaGVyby10ZWFzZXJfX2JhY2tncm91bmQtdmlkZW8gLnBseXJfX3Bvc3RlciB7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IC8qIFs0XSAqL1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQ1VTVE9NLVBST0dSRVNTIChTY29wZSlcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDQ4MXB4KSB7XG4gIC5jLWN1c3RvbS1wcm9ncmVzc19fZGVzY3JpcHRpb25fX2l0ZW0tLWVuZCB7XG4gICAgLS1kZXNjcmlwdGlvbi1saXN0LXRleHQtYWxpZ246IHJpZ2h0O1xuICAgIC0taWYtZGVzY3JpcHRpb24tbGlzdC1zcGxpdC1pcy13aWRlOiA7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgKi9cbiAgfVxufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0NBUkRTIChTY29wZXMpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIEFkZCB2ZXJ0aWNhbCBzcGFjaW5nIGJldHdlZW4gZm9ybSBmaWVsZHMuXG4gKi9cbi5jLWNhcmRfX2JvZHkgLmMtZm9ybS1maWVsZCArIC5jLWZvcm0tZmllbGQge1xuICBtYXJnaW4tdG9wOiAyNHB4OyAvKiBbMV0gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1NIT1ctTU9SRSAoU2NvcGVzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBWZXJ0aWNhbCBzcGFjaW5nIGJldHdlZW4gRmllbGRzZXQgb2JqZWN0IGFuZCBTaG93IE1vcmUuXG4gKiBbMl0gVmVydGljYWwgc3BhY2luZyBiZXR3ZWVuIFNob3cgTW9yZSBhbmQgQnV0dG9uIENvbnRhaW5lciBvYmplY3QuXG4gKi9cbi5vLWZpZWxkc2V0ICsgLmMtc2hvdy1tb3JlIC5jLXNob3ctbW9yZV9fYnV0dG9uIHtcbiAgbWFyZ2luLXRvcDogMDsgLyogWzFdICovXG59XG4uby1maWVsZHNldCArIC5jLXNob3ctbW9yZSAuYy1zaG93LW1vcmVfX2J1dHRvblthcmlhLWV4cGFuZGVkPXRydWVdIHtcbiAgbWFyZ2luLXRvcDogMjRweDsgLyogWzFdICovXG59XG4uYy1zaG93LW1vcmUgKyAuby1idXR0b24tY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogMjRweDsgLyogWzJdICovXG59XG5cbi5jLW1vZGFsIC5jLXByb2dyZXNzIHtcbiAgbWFyZ2luLXRvcDogMjRweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0lORk8tSUNPTiAoU2NvcGVzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBWaXN1YWxseSBhbGlnbiBJbmZvIEljb24uXG4gKi9cbi5jLXNlY3Rpb24taGVhZGluZyAuYy1pbmZvLWljb24ge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIFsxXSAqL1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjU1BJTk5FUiAoU2NvcGVzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBTbWFsbCBzaXplIGluIHVwbG9hZCBjb250ZXh0LiBVc2UgYEBleHRlbmRgIGFzIG11bHRpcGxlIHNlbGVjdG9yc1xuICogICAgIGFuZCBwcm9wZXJ0aWVzIG5lZWQgdG8gYmUgc2V0LlxuICovXG4uYy11cGxvYWQgLmMtc3Bpbm5lciB7XG4gIC8qIFsxXSAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvYXQtZXh0ZW5kLW5vLW1pc3NpbmctcGxhY2Vob2xkZXIgKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZPT1ROT1RFUyAoU2NvcGVzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBBdm9pZCBJbmxpbmUgTGluayBFbGVtZW50IHN0eWxlcy5cbiAqL1xuLmMtZm9vdGVyIC5jLWZvb3Rub3RlcyB7XG4gIGNvbG9yOiAjOWU5ZmEwO1xufVxuLmMtZm9vdG5vdGVzIGEge1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7IC8qIFsxXSAqL1xufVxuXG4vKipcbiAqIFsxXSBSZXNldCBkZWZhdWx0cy5cbiAqL1xuLmMtcHJvZHVjdC1jYXJkIC5jLWNhcm91c2VsIHtcbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcbn1cbi5jLXByb2R1Y3QtY2FyZCAuYy1jYXJvdXNlbCAuZmxpY2tpdHktcGFnZS1kb3RzIHtcbiAgYm90dG9tOiBhdXRvOyAvKiBbMV0gKi9cbiAgcmlnaHQ6IGF1dG87IC8qIFsxXSAqL1xuICB0b3A6IGNhbGMoMTAwJSArIDRweCk7XG4gIHBhZGRpbmctdG9wOiA0cHg7XG4gIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmMtcHJvZHVjdC1jYXJkIC5jLWNhcm91c2VsIC5kb3Qge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IGF1dG87XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtY2xhc3MgKi9cbn1cbi5jLXByb2R1Y3QtY2FyZCAuYy1jYXJvdXNlbCAuZG90LmlzLXNlbGVjdGVkIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSwgc2VsZWN0b3ItbWF4LWNsYXNzLCBtYXgtbmVzdGluZy1kZXB0aCAqL1xufVxuLmMtcHJvZHVjdC1jYXJkIC5jLWNhcm91c2VsIC5kb3QuaXMtc2VsZWN0ZWQ6OmJlZm9yZSB7XG4gIGNvbG9yOiAjMTYxNzE4ICFpbXBvcnRhbnQ7XG59XG4uYy1wcm9kdWN0LWNhcmQgLmMtY2Fyb3VzZWwgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ge1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LWNsYXNzICovXG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtY2xhc3MgKi9cbn1cbi5jLXByb2R1Y3QtY2FyZCAuYy1jYXJvdXNlbCAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbjo6YmVmb3JlIHtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuLmMtcHJvZHVjdC1jYXJkIC5jLWNhcm91c2VsIC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uLm5leHQge1xuICByaWdodDogNHB4O1xufVxuLmMtcHJvZHVjdC1jYXJkIC5jLWNhcm91c2VsIC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uLnByZXZpb3VzIHtcbiAgbGVmdDogNHB4O1xufVxuLmMtcHJvZHVjdC1jYXJkIC5jLWNhcm91c2VsIC5mbGlja2l0eS1mdWxsc2NyZWVuLWJ1dHRvbiB7XG4gIHJpZ2h0OiA0cHg7XG4gIGJvdHRvbTogNHB4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSEVSTy1URUFTRVIgKFNjb3BlcylcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBbMV0gSW52ZXJ0IGhpbnQgc3R5bGVzIG9uIHNtYWxsIHNjcmVlbnMuXG4gKiBbMl0gRGlzYWJsZSBncmFkaWVudCBmb3IgY29udHJvbHMuXG4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuYy1oZXJvLXRlYXNlciAuYy1oZXJvLXRlYXNlcl9fcHJldGl0bGUgLmMtaGludCB7XG4gICAgYm9yZGVyLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzE2MTcxODtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgfVxuICAuYy1oZXJvLXRlYXNlciAuYy1oZXJvLXRlYXNlcl9fcHJldGl0bGUgLmMtaGludDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzE2MTcxODtcbiAgfVxuICAuYy1oZXJvLXRlYXNlciAuYy1oZXJvLXRlYXNlcl9fdGl0bGUgLmMtaGludCB7XG4gICAgYm9yZGVyLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzE2MTcxODtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgfVxuICAuYy1oZXJvLXRlYXNlciAuYy1oZXJvLXRlYXNlcl9fdGl0bGUgLmMtaGludDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzE2MTcxODtcbiAgfVxuICAuYy1oZXJvLXRlYXNlciAuYy1oZXJvLXRlYXNlcl9fc3VidGl0bGUgLmMtaGludCB7XG4gICAgYm9yZGVyLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzE2MTcxODtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgfVxuICAuYy1oZXJvLXRlYXNlciAuYy1oZXJvLXRlYXNlcl9fc3VidGl0bGUgLmMtaGludDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzE2MTcxODtcbiAgfVxuICAuYy1oZXJvLXRlYXNlciAuYy1oZXJvLXRlYXNlcl9fdGV4dCAuYy1oaW50IHtcbiAgICBib3JkZXItY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTYxNzE4O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICB9XG4gIC5jLWhlcm8tdGVhc2VyIC5jLWhlcm8tdGVhc2VyX190ZXh0IC5jLWhpbnQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICMxNjE3MTg7XG4gIH1cbn1cbi5jLWhlcm8tdGVhc2VyX19iYWNrZ3JvdW5kLXZpZGVvIC5wbHlyLS12aWRlbzo6YWZ0ZXIge1xuICBjb250ZW50OiB1bnNldDsgLyogWzJdICovXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNIZWFkZXIgKFNjb3BlIFNldHRpbmdzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSGVhZGVyXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIE92ZXJyaWRlIGRlZmF1bHQgdGhhdCBoYXMgbm8gZGVkaWNhdGVkIHNldHRpbmcuXG4gKi9cbi5jLWhlYWRlciAuYy1oZWFkZXJfX25hdiB7XG4gIG1hcmdpbjogMDsgLyogWzFdICovXG59XG5cbi5jLWNvbnRleHQtYmFyX19saW5rLFxuLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9fdG9nZ2xlLFxuLmMtc2l0ZS1uYXZfX3RvZ2dsZSB7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG59XG5cbi5jLWNvbnRleHQtYmFyX19saW5rIHtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9vcmRlciAqL1xuICAtLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAzMDBtcyk7XG4gIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBzY2FsZTogMTtcbn1cbi5jLWNvbnRleHQtYmFyX19saW5rOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogLTE7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogaW5oZXJpdDtcbn1cbi5jLWNvbnRleHQtYmFyX19saW5rOmhvdmVyOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIsIDIzLCAyNCwgMC4wNik7XG59XG5cbi5jLWNvbnRleHQtYmFyX19saW5rOmZvY3VzLXZpc2libGU6OmFmdGVyIHtcbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjMTYxNzE4O1xuICAtLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiAwO1xuICAtLWZvY3VzLW91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICAtLWZvY3VzLW91dGxpbmUtd2lkdGg6IDJweDtcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9jdXMtb3V0bGluZS1jb2xvciwgIzE2MTcxOCk7XG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1mb2N1cy1vdXRsaW5lLW9mZnNldCwgMXB4KTtcbiAgb3V0bGluZS1zdHlsZTogdmFyKC0tZm9jdXMtb3V0bGluZS1zdHlsZSwgc29saWQpO1xuICBvdXRsaW5lLXdpZHRoOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXdpZHRoLCAycHgpO1xufVxuXG4uYy1jb250ZXh0LWJhcl9fbGluazphY3RpdmUge1xuICBzY2FsZTogMC45NTtcbn1cblxuLmMtY29udGV4dC1iYXJfX2xpbms6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX3RvZ2dsZSB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgMzAwbXMpO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tdHJhbnNpdGlvbi1kZWxheSk7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgc2NhbGU6IDE7XG59XG4uYy1ub3RpZmljYXRpb24tY2VudGVyX190b2dnbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogLTE7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogaW5oZXJpdDtcbn1cbi5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX3RvZ2dsZTpob3Zlcjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMiwgMjMsIDI0LCAwLjA2KTtcbn1cblxuLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9fdG9nZ2xlOmZvY3VzLXZpc2libGU6OmJlZm9yZSB7XG4gIC0tZm9jdXMtb3V0bGluZS1jb2xvcjogIzE2MTcxODtcbiAgLS1mb2N1cy1vdXRsaW5lLW9mZnNldDogMDtcbiAgLS1mb2N1cy1vdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgLS1mb2N1cy1vdXRsaW5lLXdpZHRoOiAycHg7XG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWZvY3VzLW91dGxpbmUtY29sb3IsICMxNjE3MTgpO1xuICBvdXRsaW5lLW9mZnNldDogdmFyKC0tZm9jdXMtb3V0bGluZS1vZmZzZXQsIDFweCk7XG4gIG91dGxpbmUtc3R5bGU6IHZhcigtLWZvY3VzLW91dGxpbmUtc3R5bGUsIHNvbGlkKTtcbiAgb3V0bGluZS13aWR0aDogdmFyKC0tZm9jdXMtb3V0bGluZS13aWR0aCwgMnB4KTtcbn1cblxuLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9fdG9nZ2xlOmFjdGl2ZSB7XG4gIHNjYWxlOiAwLjk1O1xufVxuXG4uYy1ub3RpZmljYXRpb24tY2VudGVyX190b2dnbGU6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5jLXNpdGUtbmF2X190b2dnbGUge1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb24sIDMwMG1zKTtcbiAgLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB2YXIoLS10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRyYW5zaXRpb24tZGVsYXkpO1xuICBzY2FsZTogMTtcbn1cbi5jLXNpdGUtbmF2X190b2dnbGU6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAtMTtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0cmFuc2l0aW9uOiBpbmhlcml0O1xufVxuLmMtc2l0ZS1uYXZfX3RvZ2dsZTpob3Zlcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyLCAyMywgMjQsIDAuMDYpO1xufVxuXG4uYy1zaXRlLW5hdl9fdG9nZ2xlOmZvY3VzLXZpc2libGU6OmFmdGVyIHtcbiAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjMTYxNzE4O1xuICAtLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiAwO1xuICAtLWZvY3VzLW91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICAtLWZvY3VzLW91dGxpbmUtd2lkdGg6IDJweDtcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9jdXMtb3V0bGluZS1jb2xvciwgIzE2MTcxOCk7XG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1mb2N1cy1vdXRsaW5lLW9mZnNldCwgMXB4KTtcbiAgb3V0bGluZS1zdHlsZTogdmFyKC0tZm9jdXMtb3V0bGluZS1zdHlsZSwgc29saWQpO1xuICBvdXRsaW5lLXdpZHRoOiB2YXIoLS1mb2N1cy1vdXRsaW5lLXdpZHRoLCAycHgpO1xufVxuXG4uYy1zaXRlLW5hdl9fdG9nZ2xlOmFjdGl2ZSB7XG4gIHNjYWxlOiAwLjk1O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjVEFCTEVTIChTY29wZXMpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogWzFdIFJlc2V0IGNvbG9yIHRvIGRlZmF1bHQgbGluayBjb2xvciBhcyBkaXNhYmxlZCByb3dzIGhhdmUgYW4gb3ZlcmxheS5cbiAqL1xuLmMtdGFibGUtd3JhcHBlciB0ci5pcy1kaXNhYmxlZCAuYy1idG4tLWxpbmssXG4uYy10YWJsZS13cmFwcGVyIHRyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLmMtYnRuLS1saW5rIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG59XG4uYy10YWJsZS13cmFwcGVyIHRyLmlzLWRpc2FibGVkIC5jLWJ0bi0tbGluayAuYy1idG5fX2ljb24sXG4uYy10YWJsZS13cmFwcGVyIHRyLmlzLWRpc2FibGVkIC5jLWJ0bi0tbGluayAuYy1idG5fX3RleHQsXG4uYy10YWJsZS13cmFwcGVyIHRyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLmMtYnRuLS1saW5rIC5jLWJ0bl9faWNvbixcbi5jLXRhYmxlLXdyYXBwZXIgdHJbYXJpYS1kaXNhYmxlZD10cnVlXSAuYy1idG4tLWxpbmsgLmMtYnRuX190ZXh0IHtcbiAgY29sb3I6ICMxNjE3MTggIWltcG9ydGFudDsgLyogWzFdICovXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNCTE9DS1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFV0aWxpdHkgY2xhc3MgdG8gbWFrZSBhbiBlbGVtZW50IGBkaXNwbGF5OiBibG9jaztgLlxuICovXG4udS1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNCT1JERVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBVdGlsaXR5IGNsYXNzIHRvIG1ha2UgYW4gZWxlbWVudCBoYXZlIGJvcmRlcnMgbGlrZSBgYm9yZGVyOiAxcHggc29saWQgcmVkO2AuXG4gKi9cbi51LWJvcmRlciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNGU0ZTQgIWltcG9ydGFudDtcbn1cblxuLnUtYm9yZGVyLXQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U0ZTRlNCAhaW1wb3J0YW50O1xufVxuXG4udS1ib3JkZXItciB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlNGU0ZTQgIWltcG9ydGFudDtcbn1cblxuLnUtYm9yZGVyLWIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U0ZTRlNCAhaW1wb3J0YW50O1xufVxuXG4udS1ib3JkZXItbCB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2U0ZTRlNCAhaW1wb3J0YW50O1xufVxuXG4udS1ib3JkZXItdiB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2U0ZTRlNCAhaW1wb3J0YW50O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTRlNGU0ICFpbXBvcnRhbnQ7XG59XG5cbi51LWJvcmRlci1oIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNGU0ZTQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNGU0ZTQgIWltcG9ydGFudDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0NMRUFSRklYXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogQ2xlYXJmaXggdXRpbGl0eSBjbGFzcy5cbiAqL1xuLnUtY2xlYXJmaXg6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIiAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICBjbGVhcjogYm90aCAhaW1wb3J0YW50O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjREVCVUdcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogRGlzYWJsZSBkZWJ1ZyBvbiBQbHlyIHZpZGVvIGNvbnRyb2xzLiBUaGUgdXNlZCBwbHVnaW4gKFBseXIpIGRvZXMgbm90IGZvbGxvd1xuICogdGhlIFwibm8gbW9kaWZpZXIgd2l0aG91dCBiYXNlIGNsYXNzXCIgQkVNIHJ1bGUuXG4gKlxuICogQFRPRE86IGZpbmQgYmV0dGVyIHNvbHV0aW9uIHRvIGV4Y2x1ZGUgUGx5ci5cbiAqL1xuLnBseXJfX2NvbnRyb2wgPiBzdmcge1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNGTE9BVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIEhlbHBlciBjbGFzc2VzIHRvIGZsb2F0IGVsZW1lbnRzIGVpdGhlciBsZWZ0LCByaWdodCBvciBub25lLlxuICovXG4udS1mbG9hdC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbn1cblxuLnUtZmxvYXQtcmlnaHQge1xuICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbn1cblxuLnUtZmxvYXQtbm9uZSB7XG4gIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtZmxvYXQtbGVmdFxcQHh4bCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAudS1mbG9hdC1yaWdodFxcQHh4bCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtZmxvYXQtbm9uZVxcQHh4bCB7XG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDE5MjFweCkge1xuICAudS1mbG9hdC1sZWZ0XFxAeHhsLXVwIHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG4gIC51LWZsb2F0LXJpZ2h0XFxAeHhsLXVwIHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuICAudS1mbG9hdC1ub25lXFxAeHhsLXVwIHtcbiAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LWZsb2F0LWxlZnRcXEB4bCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAudS1mbG9hdC1yaWdodFxcQHhsIHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuICAudS1mbG9hdC1ub25lXFxAeGwge1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxNjAxcHgpIHtcbiAgLnUtZmxvYXQtbGVmdFxcQHhsLXVwIHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG4gIC51LWZsb2F0LXJpZ2h0XFxAeGwtdXAge1xuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICB9XG4gIC51LWZsb2F0LW5vbmVcXEB4bC11cCB7XG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1mbG9hdC1sZWZ0XFxAbCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAudS1mbG9hdC1yaWdodFxcQGwge1xuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICB9XG4gIC51LWZsb2F0LW5vbmVcXEBsIHtcbiAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIC51LWZsb2F0LWxlZnRcXEBsLXVwIHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG4gIC51LWZsb2F0LXJpZ2h0XFxAbC11cCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtZmxvYXQtbm9uZVxcQGwtdXAge1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1mbG9hdC1sZWZ0XFxAbSB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAudS1mbG9hdC1yaWdodFxcQG0ge1xuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICB9XG4gIC51LWZsb2F0LW5vbmVcXEBtIHtcbiAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTYxcHgpIHtcbiAgLnUtZmxvYXQtbGVmdFxcQG0tdXAge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtZmxvYXQtcmlnaHRcXEBtLXVwIHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuICAudS1mbG9hdC1ub25lXFxAbS11cCB7XG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LWZsb2F0LWxlZnRcXEBzIHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG4gIC51LWZsb2F0LXJpZ2h0XFxAcyB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtZmxvYXQtbm9uZVxcQHMge1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICAudS1mbG9hdC1sZWZ0XFxAcy11cCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAudS1mbG9hdC1yaWdodFxcQHMtdXAge1xuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICB9XG4gIC51LWZsb2F0LW5vbmVcXEBzLXVwIHtcbiAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtZmxvYXQtbGVmdFxcQHhzIHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG4gIC51LWZsb2F0LXJpZ2h0XFxAeHMge1xuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICB9XG4gIC51LWZsb2F0LW5vbmVcXEB4cyB7XG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MXB4KSB7XG4gIC51LWZsb2F0LWxlZnRcXEB4cy11cCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAudS1mbG9hdC1yaWdodFxcQHhzLXVwIHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuICAudS1mbG9hdC1ub25lXFxAeHMtdXAge1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNGT05ULVNJWkVTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogVXRpbGl0eSBjbGFzc2VzIHRvIGVuZm9yY2UgZm9udCBzaXplcy5cbiAqL1xuLnUtZm9udC1zaXplLWZzNiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtY29sb24tc3BhY2UtYWZ0ZXIgKi9cbiAgZm9udC1zaXplOiAyLjVyZW0gIWltcG9ydGFudDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICAudS1mb250LXNpemUtZnM2IHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWNvbG9uLXNwYWNlLWFmdGVyICovXG4gICAgZm9udC1zaXplOiAzLjVyZW0gIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyODFweCkge1xuICAudS1mb250LXNpemUtZnM2IHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWNvbG9uLXNwYWNlLWFmdGVyICovXG4gICAgZm9udC1zaXplOiA0LjVyZW0gIWltcG9ydGFudDtcbiAgfVxufVxuXG4udS1mb250LXNpemUtZnM1IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1jb2xvbi1zcGFjZS1hZnRlciAqL1xuICBmb250LXNpemU6IDIuNXJlbSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC51LWZvbnQtc2l6ZS1mczUge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtY29sb24tc3BhY2UtYWZ0ZXIgKi9cbiAgICBmb250LXNpemU6IDMuNXJlbSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIC51LWZvbnQtc2l6ZS1mczUge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtY29sb24tc3BhY2UtYWZ0ZXIgKi9cbiAgICBmb250LXNpemU6IDQuNXJlbSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi51LWZvbnQtc2l6ZS1mczQge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWNvbG9uLXNwYWNlLWFmdGVyICovXG4gIGZvbnQtc2l6ZTogMi4wNjI1cmVtICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgLnUtZm9udC1zaXplLWZzNCB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1jb2xvbi1zcGFjZS1hZnRlciAqL1xuICAgIGZvbnQtc2l6ZTogMi4zNzVyZW0gIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyODFweCkge1xuICAudS1mb250LXNpemUtZnM0IHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWNvbG9uLXNwYWNlLWFmdGVyICovXG4gICAgZm9udC1zaXplOiAyLjc1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnUtZm9udC1zaXplLWZzMyB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtY29sb24tc3BhY2UtYWZ0ZXIgKi9cbiAgZm9udC1zaXplOiAxLjc1cmVtICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgLnUtZm9udC1zaXplLWZzMyB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1jb2xvbi1zcGFjZS1hZnRlciAqL1xuICAgIGZvbnQtc2l6ZTogMnJlbSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIC51LWZvbnQtc2l6ZS1mczMge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtY29sb24tc3BhY2UtYWZ0ZXIgKi9cbiAgICBmb250LXNpemU6IDIuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxufVxuXG4udS1mb250LXNpemUtZnMyIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1jb2xvbi1zcGFjZS1hZnRlciAqL1xuICBmb250LXNpemU6IDEuNDM3NXJlbSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC51LWZvbnQtc2l6ZS1mczIge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtY29sb24tc3BhY2UtYWZ0ZXIgKi9cbiAgICBmb250LXNpemU6IDEuNjg3NXJlbSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIC51LWZvbnQtc2l6ZS1mczIge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtY29sb24tc3BhY2UtYWZ0ZXIgKi9cbiAgICBmb250LXNpemU6IDEuODc1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnUtZm9udC1zaXplLWZzMSB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtY29sb24tc3BhY2UtYWZ0ZXIgKi9cbiAgZm9udC1zaXplOiAxLjI1cmVtICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgLnUtZm9udC1zaXplLWZzMSB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1jb2xvbi1zcGFjZS1hZnRlciAqL1xuICAgIGZvbnQtc2l6ZTogMS40Mzc1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgxcHgpIHtcbiAgLnUtZm9udC1zaXplLWZzMSB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1jb2xvbi1zcGFjZS1hZnRlciAqL1xuICAgIGZvbnQtc2l6ZTogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnUtZm9udC1zaXplLWZzMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtY29sb24tc3BhY2UtYWZ0ZXIgKi9cbiAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG59XG5cbi51LWZvbnQtc2l6ZS1mcy0xIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1jb2xvbi1zcGFjZS1hZnRlciAqL1xuICBmb250LXNpemU6IDAuODc1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi51LWZvbnQtc2l6ZS1mcy0yIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1jb2xvbi1zcGFjZS1hZnRlciAqL1xuICBmb250LXNpemU6IDAuNzVyZW0gIWltcG9ydGFudDtcbn1cblxuLnUtZm9udC1zaXplLWZzLTMge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWNvbG9uLXNwYWNlLWFmdGVyICovXG4gIGZvbnQtc2l6ZTogMC43NXJlbSAhaW1wb3J0YW50O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSElERVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIEhpZGUgaGVscGVyIGNsYXNzZXMgdG8gaGlkZSBlbGVtZW50cyBvbiBjZXJ0YWluIHZlaXdwb3J0cy5cbiAqL1xuLnUtaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyoqXG4gKiBCcmVha3BvaW50cyBzcGVjaWZpYyBoaWRlIGNsYXNzZXMuXG4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtaGlkZVxcQHh4bCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTkyMXB4KSB7XG4gIC51LWhpZGVcXEB4eGwtdXAge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1oaWRlXFxAeGwge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDE2MDFweCkge1xuICAudS1oaWRlXFxAeGwtdXAge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1oaWRlXFxAbCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIC51LWhpZGVcXEBsLXVwIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1oaWRlXFxAbSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTYxcHgpIHtcbiAgLnUtaGlkZVxcQG0tdXAge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LWhpZGVcXEBzIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICAudS1oaWRlXFxAcy11cCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtaGlkZVxcQHhzIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODFweCkge1xuICAudS1oaWRlXFxAeHMtdXAge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI05PLUNBUlBFVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIEEgdXRpbGl0eSBjbGFzcyB0byBlbGltaW5hdGUgdGhlIGB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZWAsIHNldCBieSB0aGVcbiAqIGA8YT5gIGVsZW1lbnQuXG4gKi9cbi51LW5vLWNhcnBldCB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjUk9VTkRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBBIHV0aWxpdHkgY2xhc3MgdG8gbWFrZSBlbGVtZW50cyDigJhyb3VuZOKAmS5cbiAqL1xuLnUtcm91bmQge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNTUEFDSU5HIFNFVFRJTkdTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNTUEFDSU5HU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIE1hcmdpbiBhbmQgcGFkZGluZyBoZWxwZXIgY2xhc3Nlcy4gVXNlIHRoZXNlIHRvIHR3ZWFrIGxheW91dCBvbiBhIG1pY3JvIGxldmVsLlxuICovXG4udS1tLXh4c21hbGwge1xuICBtYXJnaW46IDRweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW0teHhzbWFsbFxcQHh4bCB7XG4gICAgbWFyZ2luOiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1tLXh4c21hbGxcXEB4bCB7XG4gICAgbWFyZ2luOiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1tLXh4c21hbGxcXEBsIHtcbiAgICBtYXJnaW46IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbS14eHNtYWxsXFxAbSB7XG4gICAgbWFyZ2luOiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LW0teHhzbWFsbFxcQHMge1xuICAgIG1hcmdpbjogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1tLXh4c21hbGxcXEB4cyB7XG4gICAgbWFyZ2luOiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbS14c21hbGwge1xuICBtYXJnaW46IDhweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW0teHNtYWxsXFxAeHhsIHtcbiAgICBtYXJnaW46IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LW0teHNtYWxsXFxAeGwge1xuICAgIG1hcmdpbjogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtbS14c21hbGxcXEBsIHtcbiAgICBtYXJnaW46IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbS14c21hbGxcXEBtIHtcbiAgICBtYXJnaW46IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtbS14c21hbGxcXEBzIHtcbiAgICBtYXJnaW46IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtbS14c21hbGxcXEB4cyB7XG4gICAgbWFyZ2luOiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbS1zbWFsbCB7XG4gIG1hcmdpbjogMTZweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW0tc21hbGxcXEB4eGwge1xuICAgIG1hcmdpbjogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LW0tc21hbGxcXEB4bCB7XG4gICAgbWFyZ2luOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtbS1zbWFsbFxcQGwge1xuICAgIG1hcmdpbjogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbS1zbWFsbFxcQG0ge1xuICAgIG1hcmdpbjogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtbS1zbWFsbFxcQHMge1xuICAgIG1hcmdpbjogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtbS1zbWFsbFxcQHhzIHtcbiAgICBtYXJnaW46IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbSB7XG4gIG1hcmdpbjogMjRweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW1cXEB4eGwge1xuICAgIG1hcmdpbjogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LW1cXEB4bCB7XG4gICAgbWFyZ2luOiAyNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtbVxcQGwge1xuICAgIG1hcmdpbjogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbVxcQG0ge1xuICAgIG1hcmdpbjogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtbVxcQHMge1xuICAgIG1hcmdpbjogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtbVxcQHhzIHtcbiAgICBtYXJnaW46IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbS1sYXJnZSB7XG4gIG1hcmdpbjogMzJweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW0tbGFyZ2VcXEB4eGwge1xuICAgIG1hcmdpbjogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LW0tbGFyZ2VcXEB4bCB7XG4gICAgbWFyZ2luOiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtbS1sYXJnZVxcQGwge1xuICAgIG1hcmdpbjogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbS1sYXJnZVxcQG0ge1xuICAgIG1hcmdpbjogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtbS1sYXJnZVxcQHMge1xuICAgIG1hcmdpbjogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtbS1sYXJnZVxcQHhzIHtcbiAgICBtYXJnaW46IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbS14bGFyZ2Uge1xuICBtYXJnaW46IDQ4cHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1tLXhsYXJnZVxcQHh4bCB7XG4gICAgbWFyZ2luOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtbS14bGFyZ2VcXEB4bCB7XG4gICAgbWFyZ2luOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtbS14bGFyZ2VcXEBsIHtcbiAgICBtYXJnaW46IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LW0teGxhcmdlXFxAbSB7XG4gICAgbWFyZ2luOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1tLXhsYXJnZVxcQHMge1xuICAgIG1hcmdpbjogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtbS14bGFyZ2VcXEB4cyB7XG4gICAgbWFyZ2luOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LW0tbm9uZSB7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW0tbm9uZVxcQHh4bCB7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtbS1ub25lXFxAeGwge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LW0tbm9uZVxcQGwge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbS1ub25lXFxAbSB7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1tLW5vbmVcXEBzIHtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LW0tbm9uZVxcQHhzIHtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbXQteHhzbWFsbCB7XG4gIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW10LXh4c21hbGxcXEB4eGwge1xuICAgIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LW10LXh4c21hbGxcXEB4bCB7XG4gICAgbWFyZ2luLXRvcDogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtbXQteHhzbWFsbFxcQGwge1xuICAgIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbXQteHhzbWFsbFxcQG0ge1xuICAgIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtbXQteHhzbWFsbFxcQHMge1xuICAgIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtbXQteHhzbWFsbFxcQHhzIHtcbiAgICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbXQteHNtYWxsIHtcbiAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtbXQteHNtYWxsXFxAeHhsIHtcbiAgICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1tdC14c21hbGxcXEB4bCB7XG4gICAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtbXQteHNtYWxsXFxAbCB7XG4gICAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1tdC14c21hbGxcXEBtIHtcbiAgICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LW10LXhzbWFsbFxcQHMge1xuICAgIG1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtbXQteHNtYWxsXFxAeHMge1xuICAgIG1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1tdC1zbWFsbCB7XG4gIG1hcmdpbi10b3A6IDE2cHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1tdC1zbWFsbFxcQHh4bCB7XG4gICAgbWFyZ2luLXRvcDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LW10LXNtYWxsXFxAeGwge1xuICAgIG1hcmdpbi10b3A6IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1tdC1zbWFsbFxcQGwge1xuICAgIG1hcmdpbi10b3A6IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LW10LXNtYWxsXFxAbSB7XG4gICAgbWFyZ2luLXRvcDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtbXQtc21hbGxcXEBzIHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1tdC1zbWFsbFxcQHhzIHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LW10IHtcbiAgbWFyZ2luLXRvcDogMjRweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW10XFxAeHhsIHtcbiAgICBtYXJnaW4tdG9wOiAyNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtbXRcXEB4bCB7XG4gICAgbWFyZ2luLXRvcDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LW10XFxAbCB7XG4gICAgbWFyZ2luLXRvcDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbXRcXEBtIHtcbiAgICBtYXJnaW4tdG9wOiAyNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1tdFxcQHMge1xuICAgIG1hcmdpbi10b3A6IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LW10XFxAeHMge1xuICAgIG1hcmdpbi10b3A6IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbXQtbGFyZ2Uge1xuICBtYXJnaW4tdG9wOiAzMnB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtbXQtbGFyZ2VcXEB4eGwge1xuICAgIG1hcmdpbi10b3A6IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1tdC1sYXJnZVxcQHhsIHtcbiAgICBtYXJnaW4tdG9wOiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtbXQtbGFyZ2VcXEBsIHtcbiAgICBtYXJnaW4tdG9wOiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1tdC1sYXJnZVxcQG0ge1xuICAgIG1hcmdpbi10b3A6IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LW10LWxhcmdlXFxAcyB7XG4gICAgbWFyZ2luLXRvcDogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtbXQtbGFyZ2VcXEB4cyB7XG4gICAgbWFyZ2luLXRvcDogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1tdC14bGFyZ2Uge1xuICBtYXJnaW4tdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtbXQteGxhcmdlXFxAeHhsIHtcbiAgICBtYXJnaW4tdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtbXQteGxhcmdlXFxAeGwge1xuICAgIG1hcmdpbi10b3A6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1tdC14bGFyZ2VcXEBsIHtcbiAgICBtYXJnaW4tdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1tdC14bGFyZ2VcXEBtIHtcbiAgICBtYXJnaW4tdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1tdC14bGFyZ2VcXEBzIHtcbiAgICBtYXJnaW4tdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1tdC14bGFyZ2VcXEB4cyB7XG4gICAgbWFyZ2luLXRvcDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1tdC1ub25lIHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW10LW5vbmVcXEB4eGwge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1tdC1ub25lXFxAeGwge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1tdC1ub25lXFxAbCB7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbXQtbm9uZVxcQG0ge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LW10LW5vbmVcXEBzIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1tdC1ub25lXFxAeHMge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbXIteHhzbWFsbCB7XG4gIG1hcmdpbi1yaWdodDogNHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtbXIteHhzbWFsbFxcQHh4bCB7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1tci14eHNtYWxsXFxAeGwge1xuICAgIG1hcmdpbi1yaWdodDogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtbXIteHhzbWFsbFxcQGwge1xuICAgIG1hcmdpbi1yaWdodDogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1tci14eHNtYWxsXFxAbSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LW1yLXh4c21hbGxcXEBzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtbXIteHhzbWFsbFxcQHhzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1tci14c21hbGwge1xuICBtYXJnaW4tcmlnaHQ6IDhweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW1yLXhzbWFsbFxcQHh4bCB7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1tci14c21hbGxcXEB4bCB7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1tci14c21hbGxcXEBsIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbXIteHNtYWxsXFxAbSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LW1yLXhzbWFsbFxcQHMge1xuICAgIG1hcmdpbi1yaWdodDogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1tci14c21hbGxcXEB4cyB7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbXItc21hbGwge1xuICBtYXJnaW4tcmlnaHQ6IDE2cHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1tci1zbWFsbFxcQHh4bCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtbXItc21hbGxcXEB4bCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtbXItc21hbGxcXEBsIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LW1yLXNtYWxsXFxAbSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1tci1zbWFsbFxcQHMge1xuICAgIG1hcmdpbi1yaWdodDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtbXItc21hbGxcXEB4cyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LW1yIHtcbiAgbWFyZ2luLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtbXJcXEB4eGwge1xuICAgIG1hcmdpbi1yaWdodDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LW1yXFxAeGwge1xuICAgIG1hcmdpbi1yaWdodDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LW1yXFxAbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1tclxcQG0ge1xuICAgIG1hcmdpbi1yaWdodDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtbXJcXEBzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LW1yXFxAeHMge1xuICAgIG1hcmdpbi1yaWdodDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1tci1sYXJnZSB7XG4gIG1hcmdpbi1yaWdodDogMzJweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW1yLWxhcmdlXFxAeHhsIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1tci1sYXJnZVxcQHhsIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1tci1sYXJnZVxcQGwge1xuICAgIG1hcmdpbi1yaWdodDogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbXItbGFyZ2VcXEBtIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LW1yLWxhcmdlXFxAcyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1tci1sYXJnZVxcQHhzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbXIteGxhcmdlIHtcbiAgbWFyZ2luLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtbXIteGxhcmdlXFxAeHhsIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1tci14bGFyZ2VcXEB4bCB7XG4gICAgbWFyZ2luLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtbXIteGxhcmdlXFxAbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1tci14bGFyZ2VcXEBtIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LW1yLXhsYXJnZVxcQHMge1xuICAgIG1hcmdpbi1yaWdodDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtbXIteGxhcmdlXFxAeHMge1xuICAgIG1hcmdpbi1yaWdodDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1tci1ub25lIHtcbiAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtbXItbm9uZVxcQHh4bCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtbXItbm9uZVxcQHhsIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1tci1ub25lXFxAbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1tci1ub25lXFxAbSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1tci1ub25lXFxAcyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1tci1ub25lXFxAeHMge1xuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1tYi14eHNtYWxsIHtcbiAgbWFyZ2luLWJvdHRvbTogNHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtbWIteHhzbWFsbFxcQHh4bCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtbWIteHhzbWFsbFxcQHhsIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1tYi14eHNtYWxsXFxAbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1tYi14eHNtYWxsXFxAbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1tYi14eHNtYWxsXFxAcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1tYi14eHNtYWxsXFxAeHMge1xuICAgIG1hcmdpbi1ib3R0b206IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1tYi14c21hbGwge1xuICBtYXJnaW4tYm90dG9tOiA4cHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1tYi14c21hbGxcXEB4eGwge1xuICAgIG1hcmdpbi1ib3R0b206IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LW1iLXhzbWFsbFxcQHhsIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1tYi14c21hbGxcXEBsIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LW1iLXhzbWFsbFxcQG0ge1xuICAgIG1hcmdpbi1ib3R0b206IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtbWIteHNtYWxsXFxAcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1tYi14c21hbGxcXEB4cyB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LW1iLXNtYWxsIHtcbiAgbWFyZ2luLWJvdHRvbTogMTZweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW1iLXNtYWxsXFxAeHhsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtbWItc21hbGxcXEB4bCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LW1iLXNtYWxsXFxAbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbWItc21hbGxcXEBtIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1tYi1zbWFsbFxcQHMge1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LW1iLXNtYWxsXFxAeHMge1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbWIge1xuICBtYXJnaW4tYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtbWJcXEB4eGwge1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1tYlxcQHhsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtbWJcXEBsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1tYlxcQG0ge1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LW1iXFxAcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtbWJcXEB4cyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1tYi1sYXJnZSB7XG4gIG1hcmdpbi1ib3R0b206IDMycHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1tYi1sYXJnZVxcQHh4bCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LW1iLWxhcmdlXFxAeGwge1xuICAgIG1hcmdpbi1ib3R0b206IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1tYi1sYXJnZVxcQGwge1xuICAgIG1hcmdpbi1ib3R0b206IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LW1iLWxhcmdlXFxAbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtbWItbGFyZ2VcXEBzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1tYi1sYXJnZVxcQHhzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LW1iLXhsYXJnZSB7XG4gIG1hcmdpbi1ib3R0b206IDQ4cHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1tYi14bGFyZ2VcXEB4eGwge1xuICAgIG1hcmdpbi1ib3R0b206IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1tYi14bGFyZ2VcXEB4bCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LW1iLXhsYXJnZVxcQGwge1xuICAgIG1hcmdpbi1ib3R0b206IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LW1iLXhsYXJnZVxcQG0ge1xuICAgIG1hcmdpbi1ib3R0b206IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LW1iLXhsYXJnZVxcQHMge1xuICAgIG1hcmdpbi1ib3R0b206IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LW1iLXhsYXJnZVxcQHhzIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LW1iLW5vbmUge1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtbWItbm9uZVxcQHh4bCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LW1iLW5vbmVcXEB4bCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LW1iLW5vbmVcXEBsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1tYi1ub25lXFxAbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtbWItbm9uZVxcQHMge1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LW1iLW5vbmVcXEB4cyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1tbC14eHNtYWxsIHtcbiAgbWFyZ2luLWxlZnQ6IDRweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW1sLXh4c21hbGxcXEB4eGwge1xuICAgIG1hcmdpbi1sZWZ0OiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1tbC14eHNtYWxsXFxAeGwge1xuICAgIG1hcmdpbi1sZWZ0OiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1tbC14eHNtYWxsXFxAbCB7XG4gICAgbWFyZ2luLWxlZnQ6IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbWwteHhzbWFsbFxcQG0ge1xuICAgIG1hcmdpbi1sZWZ0OiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LW1sLXh4c21hbGxcXEBzIHtcbiAgICBtYXJnaW4tbGVmdDogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1tbC14eHNtYWxsXFxAeHMge1xuICAgIG1hcmdpbi1sZWZ0OiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbWwteHNtYWxsIHtcbiAgbWFyZ2luLWxlZnQ6IDhweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW1sLXhzbWFsbFxcQHh4bCB7XG4gICAgbWFyZ2luLWxlZnQ6IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LW1sLXhzbWFsbFxcQHhsIHtcbiAgICBtYXJnaW4tbGVmdDogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtbWwteHNtYWxsXFxAbCB7XG4gICAgbWFyZ2luLWxlZnQ6IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbWwteHNtYWxsXFxAbSB7XG4gICAgbWFyZ2luLWxlZnQ6IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtbWwteHNtYWxsXFxAcyB7XG4gICAgbWFyZ2luLWxlZnQ6IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtbWwteHNtYWxsXFxAeHMge1xuICAgIG1hcmdpbi1sZWZ0OiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbWwtc21hbGwge1xuICBtYXJnaW4tbGVmdDogMTZweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW1sLXNtYWxsXFxAeHhsIHtcbiAgICBtYXJnaW4tbGVmdDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LW1sLXNtYWxsXFxAeGwge1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtbWwtc21hbGxcXEBsIHtcbiAgICBtYXJnaW4tbGVmdDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbWwtc21hbGxcXEBtIHtcbiAgICBtYXJnaW4tbGVmdDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtbWwtc21hbGxcXEBzIHtcbiAgICBtYXJnaW4tbGVmdDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtbWwtc21hbGxcXEB4cyB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbWwge1xuICBtYXJnaW4tbGVmdDogMjRweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW1sXFxAeHhsIHtcbiAgICBtYXJnaW4tbGVmdDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LW1sXFxAeGwge1xuICAgIG1hcmdpbi1sZWZ0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtbWxcXEBsIHtcbiAgICBtYXJnaW4tbGVmdDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbWxcXEBtIHtcbiAgICBtYXJnaW4tbGVmdDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtbWxcXEBzIHtcbiAgICBtYXJnaW4tbGVmdDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtbWxcXEB4cyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbWwtbGFyZ2Uge1xuICBtYXJnaW4tbGVmdDogMzJweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW1sLWxhcmdlXFxAeHhsIHtcbiAgICBtYXJnaW4tbGVmdDogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LW1sLWxhcmdlXFxAeGwge1xuICAgIG1hcmdpbi1sZWZ0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtbWwtbGFyZ2VcXEBsIHtcbiAgICBtYXJnaW4tbGVmdDogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbWwtbGFyZ2VcXEBtIHtcbiAgICBtYXJnaW4tbGVmdDogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtbWwtbGFyZ2VcXEBzIHtcbiAgICBtYXJnaW4tbGVmdDogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtbWwtbGFyZ2VcXEB4cyB7XG4gICAgbWFyZ2luLWxlZnQ6IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbWwteGxhcmdlIHtcbiAgbWFyZ2luLWxlZnQ6IDQ4cHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1tbC14bGFyZ2VcXEB4eGwge1xuICAgIG1hcmdpbi1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtbWwteGxhcmdlXFxAeGwge1xuICAgIG1hcmdpbi1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtbWwteGxhcmdlXFxAbCB7XG4gICAgbWFyZ2luLWxlZnQ6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LW1sLXhsYXJnZVxcQG0ge1xuICAgIG1hcmdpbi1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1tbC14bGFyZ2VcXEBzIHtcbiAgICBtYXJnaW4tbGVmdDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtbWwteGxhcmdlXFxAeHMge1xuICAgIG1hcmdpbi1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LW1sLW5vbmUge1xuICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW1sLW5vbmVcXEB4eGwge1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtbWwtbm9uZVxcQHhsIHtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LW1sLW5vbmVcXEBsIHtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbWwtbm9uZVxcQG0ge1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1tbC1ub25lXFxAcyB7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LW1sLW5vbmVcXEB4cyB7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbWgteHhzbWFsbCB7XG4gIG1hcmdpbi1sZWZ0OiA0cHggIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiA0cHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1taC14eHNtYWxsXFxAeHhsIHtcbiAgICBtYXJnaW4tbGVmdDogNHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1taC14eHNtYWxsXFxAeGwge1xuICAgIG1hcmdpbi1sZWZ0OiA0cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LW1oLXh4c21hbGxcXEBsIHtcbiAgICBtYXJnaW4tbGVmdDogNHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LW1oLXh4c21hbGxcXEBtIHtcbiAgICBtYXJnaW4tbGVmdDogNHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LW1oLXh4c21hbGxcXEBzIHtcbiAgICBtYXJnaW4tbGVmdDogNHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LW1oLXh4c21hbGxcXEB4cyB7XG4gICAgbWFyZ2luLWxlZnQ6IDRweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LW1oLXhzbWFsbCB7XG4gIG1hcmdpbi1sZWZ0OiA4cHggIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1taC14c21hbGxcXEB4eGwge1xuICAgIG1hcmdpbi1sZWZ0OiA4cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LW1oLXhzbWFsbFxcQHhsIHtcbiAgICBtYXJnaW4tbGVmdDogOHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1taC14c21hbGxcXEBsIHtcbiAgICBtYXJnaW4tbGVmdDogOHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LW1oLXhzbWFsbFxcQG0ge1xuICAgIG1hcmdpbi1sZWZ0OiA4cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtbWgteHNtYWxsXFxAcyB7XG4gICAgbWFyZ2luLWxlZnQ6IDhweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1taC14c21hbGxcXEB4cyB7XG4gICAgbWFyZ2luLWxlZnQ6IDhweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LW1oLXNtYWxsIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHggIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtbWgtc21hbGxcXEB4eGwge1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtbWgtc21hbGxcXEB4bCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1taC1zbWFsbFxcQGwge1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1taC1zbWFsbFxcQG0ge1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1taC1zbWFsbFxcQHMge1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1taC1zbWFsbFxcQHhzIHtcbiAgICBtYXJnaW4tbGVmdDogMTZweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1taCB7XG4gIG1hcmdpbi1sZWZ0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMjRweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW1oXFxAeHhsIHtcbiAgICBtYXJnaW4tbGVmdDogMjRweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LW1oXFxAeGwge1xuICAgIG1hcmdpbi1sZWZ0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtbWhcXEBsIHtcbiAgICBtYXJnaW4tbGVmdDogMjRweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbWhcXEBtIHtcbiAgICBtYXJnaW4tbGVmdDogMjRweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtbWhcXEBzIHtcbiAgICBtYXJnaW4tbGVmdDogMjRweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtbWhcXEB4cyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI0cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbWgtbGFyZ2Uge1xuICBtYXJnaW4tbGVmdDogMzJweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDMycHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1taC1sYXJnZVxcQHh4bCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMycHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1taC1sYXJnZVxcQHhsIHtcbiAgICBtYXJnaW4tbGVmdDogMzJweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LW1oLWxhcmdlXFxAbCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMycHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LW1oLWxhcmdlXFxAbSB7XG4gICAgbWFyZ2luLWxlZnQ6IDMycHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LW1oLWxhcmdlXFxAcyB7XG4gICAgbWFyZ2luLWxlZnQ6IDMycHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LW1oLWxhcmdlXFxAeHMge1xuICAgIG1hcmdpbi1sZWZ0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LW1oLXhsYXJnZSB7XG4gIG1hcmdpbi1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogNDhweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW1oLXhsYXJnZVxcQHh4bCB7XG4gICAgbWFyZ2luLWxlZnQ6IDQ4cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1taC14bGFyZ2VcXEB4bCB7XG4gICAgbWFyZ2luLWxlZnQ6IDQ4cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1taC14bGFyZ2VcXEBsIHtcbiAgICBtYXJnaW4tbGVmdDogNDhweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbWgteGxhcmdlXFxAbSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQ4cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LW1oLXhsYXJnZVxcQHMge1xuICAgIG1hcmdpbi1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1taC14bGFyZ2VcXEB4cyB7XG4gICAgbWFyZ2luLWxlZnQ6IDQ4cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbWgtbm9uZSB7XG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW1oLW5vbmVcXEB4eGwge1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtbWgtbm9uZVxcQHhsIHtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LW1oLW5vbmVcXEBsIHtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbWgtbm9uZVxcQG0ge1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1taC1ub25lXFxAcyB7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LW1oLW5vbmVcXEB4cyB7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbXYteHhzbWFsbCB7XG4gIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiA0cHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1tdi14eHNtYWxsXFxAeHhsIHtcbiAgICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1tdi14eHNtYWxsXFxAeGwge1xuICAgIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LW12LXh4c21hbGxcXEBsIHtcbiAgICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LW12LXh4c21hbGxcXEBtIHtcbiAgICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LW12LXh4c21hbGxcXEBzIHtcbiAgICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LW12LXh4c21hbGxcXEB4cyB7XG4gICAgbWFyZ2luLXRvcDogNHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LW12LXhzbWFsbCB7XG4gIG1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiA4cHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1tdi14c21hbGxcXEB4eGwge1xuICAgIG1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LW12LXhzbWFsbFxcQHhsIHtcbiAgICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1tdi14c21hbGxcXEBsIHtcbiAgICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LW12LXhzbWFsbFxcQG0ge1xuICAgIG1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtbXYteHNtYWxsXFxAcyB7XG4gICAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1tdi14c21hbGxcXEB4cyB7XG4gICAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LW12LXNtYWxsIHtcbiAgbWFyZ2luLXRvcDogMTZweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtbXYtc21hbGxcXEB4eGwge1xuICAgIG1hcmdpbi10b3A6IDE2cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtbXYtc21hbGxcXEB4bCB7XG4gICAgbWFyZ2luLXRvcDogMTZweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1tdi1zbWFsbFxcQGwge1xuICAgIG1hcmdpbi10b3A6IDE2cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1tdi1zbWFsbFxcQG0ge1xuICAgIG1hcmdpbi10b3A6IDE2cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1tdi1zbWFsbFxcQHMge1xuICAgIG1hcmdpbi10b3A6IDE2cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1tdi1zbWFsbFxcQHhzIHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1tdiB7XG4gIG1hcmdpbi10b3A6IDI0cHggIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMjRweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW12XFxAeHhsIHtcbiAgICBtYXJnaW4tdG9wOiAyNHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LW12XFxAeGwge1xuICAgIG1hcmdpbi10b3A6IDI0cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtbXZcXEBsIHtcbiAgICBtYXJnaW4tdG9wOiAyNHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbXZcXEBtIHtcbiAgICBtYXJnaW4tdG9wOiAyNHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtbXZcXEBzIHtcbiAgICBtYXJnaW4tdG9wOiAyNHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtbXZcXEB4cyB7XG4gICAgbWFyZ2luLXRvcDogMjRweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbXYtbGFyZ2Uge1xuICBtYXJnaW4tdG9wOiAzMnB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDMycHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1tdi1sYXJnZVxcQHh4bCB7XG4gICAgbWFyZ2luLXRvcDogMzJweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1tdi1sYXJnZVxcQHhsIHtcbiAgICBtYXJnaW4tdG9wOiAzMnB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LW12LWxhcmdlXFxAbCB7XG4gICAgbWFyZ2luLXRvcDogMzJweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LW12LWxhcmdlXFxAbSB7XG4gICAgbWFyZ2luLXRvcDogMzJweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LW12LWxhcmdlXFxAcyB7XG4gICAgbWFyZ2luLXRvcDogMzJweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LW12LWxhcmdlXFxAeHMge1xuICAgIG1hcmdpbi10b3A6IDMycHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LW12LXhsYXJnZSB7XG4gIG1hcmdpbi10b3A6IDQ4cHggIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogNDhweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW12LXhsYXJnZVxcQHh4bCB7XG4gICAgbWFyZ2luLXRvcDogNDhweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1tdi14bGFyZ2VcXEB4bCB7XG4gICAgbWFyZ2luLXRvcDogNDhweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1tdi14bGFyZ2VcXEBsIHtcbiAgICBtYXJnaW4tdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbXYteGxhcmdlXFxAbSB7XG4gICAgbWFyZ2luLXRvcDogNDhweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LW12LXhsYXJnZVxcQHMge1xuICAgIG1hcmdpbi10b3A6IDQ4cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1tdi14bGFyZ2VcXEB4cyB7XG4gICAgbWFyZ2luLXRvcDogNDhweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtbXYtbm9uZSB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LW12LW5vbmVcXEB4eGwge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtbXYtbm9uZVxcQHhsIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LW12LW5vbmVcXEBsIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtbXYtbm9uZVxcQG0ge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1tdi1ub25lXFxAcyB7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LW12LW5vbmVcXEB4cyB7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxufVxuLnUtcC14eHNtYWxsIHtcbiAgcGFkZGluZzogNHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtcC14eHNtYWxsXFxAeHhsIHtcbiAgICBwYWRkaW5nOiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1wLXh4c21hbGxcXEB4bCB7XG4gICAgcGFkZGluZzogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcC14eHNtYWxsXFxAbCB7XG4gICAgcGFkZGluZzogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1wLXh4c21hbGxcXEBtIHtcbiAgICBwYWRkaW5nOiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LXAteHhzbWFsbFxcQHMge1xuICAgIHBhZGRpbmc6IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcC14eHNtYWxsXFxAeHMge1xuICAgIHBhZGRpbmc6IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1wLXhzbWFsbCB7XG4gIHBhZGRpbmc6IDhweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LXAteHNtYWxsXFxAeHhsIHtcbiAgICBwYWRkaW5nOiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1wLXhzbWFsbFxcQHhsIHtcbiAgICBwYWRkaW5nOiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1wLXhzbWFsbFxcQGwge1xuICAgIHBhZGRpbmc6IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtcC14c21hbGxcXEBtIHtcbiAgICBwYWRkaW5nOiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LXAteHNtYWxsXFxAcyB7XG4gICAgcGFkZGluZzogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1wLXhzbWFsbFxcQHhzIHtcbiAgICBwYWRkaW5nOiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtcC1zbWFsbCB7XG4gIHBhZGRpbmc6IDE2cHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1wLXNtYWxsXFxAeHhsIHtcbiAgICBwYWRkaW5nOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtcC1zbWFsbFxcQHhsIHtcbiAgICBwYWRkaW5nOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcC1zbWFsbFxcQGwge1xuICAgIHBhZGRpbmc6IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LXAtc21hbGxcXEBtIHtcbiAgICBwYWRkaW5nOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1wLXNtYWxsXFxAcyB7XG4gICAgcGFkZGluZzogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcC1zbWFsbFxcQHhzIHtcbiAgICBwYWRkaW5nOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LXAge1xuICBwYWRkaW5nOiAyNHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtcFxcQHh4bCB7XG4gICAgcGFkZGluZzogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LXBcXEB4bCB7XG4gICAgcGFkZGluZzogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LXBcXEBsIHtcbiAgICBwYWRkaW5nOiAyNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1wXFxAbSB7XG4gICAgcGFkZGluZzogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtcFxcQHMge1xuICAgIHBhZGRpbmc6IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LXBcXEB4cyB7XG4gICAgcGFkZGluZzogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1wLWxhcmdlIHtcbiAgcGFkZGluZzogMzJweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LXAtbGFyZ2VcXEB4eGwge1xuICAgIHBhZGRpbmc6IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1wLWxhcmdlXFxAeGwge1xuICAgIHBhZGRpbmc6IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1wLWxhcmdlXFxAbCB7XG4gICAgcGFkZGluZzogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtcC1sYXJnZVxcQG0ge1xuICAgIHBhZGRpbmc6IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LXAtbGFyZ2VcXEBzIHtcbiAgICBwYWRkaW5nOiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1wLWxhcmdlXFxAeHMge1xuICAgIHBhZGRpbmc6IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtcC14bGFyZ2Uge1xuICBwYWRkaW5nOiA0OHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtcC14bGFyZ2VcXEB4eGwge1xuICAgIHBhZGRpbmc6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1wLXhsYXJnZVxcQHhsIHtcbiAgICBwYWRkaW5nOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcC14bGFyZ2VcXEBsIHtcbiAgICBwYWRkaW5nOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1wLXhsYXJnZVxcQG0ge1xuICAgIHBhZGRpbmc6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LXAteGxhcmdlXFxAcyB7XG4gICAgcGFkZGluZzogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcC14bGFyZ2VcXEB4cyB7XG4gICAgcGFkZGluZzogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1wLW5vbmUge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtcC1ub25lXFxAeHhsIHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtcC1ub25lXFxAeGwge1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1wLW5vbmVcXEBsIHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1wLW5vbmVcXEBtIHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1wLW5vbmVcXEBzIHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1wLW5vbmVcXEB4cyB7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1wdC14eHNtYWxsIHtcbiAgcGFkZGluZy10b3A6IDRweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LXB0LXh4c21hbGxcXEB4eGwge1xuICAgIHBhZGRpbmctdG9wOiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1wdC14eHNtYWxsXFxAeGwge1xuICAgIHBhZGRpbmctdG9wOiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1wdC14eHNtYWxsXFxAbCB7XG4gICAgcGFkZGluZy10b3A6IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtcHQteHhzbWFsbFxcQG0ge1xuICAgIHBhZGRpbmctdG9wOiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LXB0LXh4c21hbGxcXEBzIHtcbiAgICBwYWRkaW5nLXRvcDogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1wdC14eHNtYWxsXFxAeHMge1xuICAgIHBhZGRpbmctdG9wOiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtcHQteHNtYWxsIHtcbiAgcGFkZGluZy10b3A6IDhweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LXB0LXhzbWFsbFxcQHh4bCB7XG4gICAgcGFkZGluZy10b3A6IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LXB0LXhzbWFsbFxcQHhsIHtcbiAgICBwYWRkaW5nLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcHQteHNtYWxsXFxAbCB7XG4gICAgcGFkZGluZy10b3A6IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtcHQteHNtYWxsXFxAbSB7XG4gICAgcGFkZGluZy10b3A6IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtcHQteHNtYWxsXFxAcyB7XG4gICAgcGFkZGluZy10b3A6IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcHQteHNtYWxsXFxAeHMge1xuICAgIHBhZGRpbmctdG9wOiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtcHQtc21hbGwge1xuICBwYWRkaW5nLXRvcDogMTZweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LXB0LXNtYWxsXFxAeHhsIHtcbiAgICBwYWRkaW5nLXRvcDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LXB0LXNtYWxsXFxAeGwge1xuICAgIHBhZGRpbmctdG9wOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcHQtc21hbGxcXEBsIHtcbiAgICBwYWRkaW5nLXRvcDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtcHQtc21hbGxcXEBtIHtcbiAgICBwYWRkaW5nLXRvcDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtcHQtc21hbGxcXEBzIHtcbiAgICBwYWRkaW5nLXRvcDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcHQtc21hbGxcXEB4cyB7XG4gICAgcGFkZGluZy10b3A6IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtcHQge1xuICBwYWRkaW5nLXRvcDogMjRweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LXB0XFxAeHhsIHtcbiAgICBwYWRkaW5nLXRvcDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LXB0XFxAeGwge1xuICAgIHBhZGRpbmctdG9wOiAyNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcHRcXEBsIHtcbiAgICBwYWRkaW5nLXRvcDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtcHRcXEBtIHtcbiAgICBwYWRkaW5nLXRvcDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtcHRcXEBzIHtcbiAgICBwYWRkaW5nLXRvcDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcHRcXEB4cyB7XG4gICAgcGFkZGluZy10b3A6IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtcHQtbGFyZ2Uge1xuICBwYWRkaW5nLXRvcDogMzJweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LXB0LWxhcmdlXFxAeHhsIHtcbiAgICBwYWRkaW5nLXRvcDogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LXB0LWxhcmdlXFxAeGwge1xuICAgIHBhZGRpbmctdG9wOiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcHQtbGFyZ2VcXEBsIHtcbiAgICBwYWRkaW5nLXRvcDogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtcHQtbGFyZ2VcXEBtIHtcbiAgICBwYWRkaW5nLXRvcDogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtcHQtbGFyZ2VcXEBzIHtcbiAgICBwYWRkaW5nLXRvcDogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcHQtbGFyZ2VcXEB4cyB7XG4gICAgcGFkZGluZy10b3A6IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtcHQteGxhcmdlIHtcbiAgcGFkZGluZy10b3A6IDQ4cHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1wdC14bGFyZ2VcXEB4eGwge1xuICAgIHBhZGRpbmctdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtcHQteGxhcmdlXFxAeGwge1xuICAgIHBhZGRpbmctdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcHQteGxhcmdlXFxAbCB7XG4gICAgcGFkZGluZy10b3A6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LXB0LXhsYXJnZVxcQG0ge1xuICAgIHBhZGRpbmctdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1wdC14bGFyZ2VcXEBzIHtcbiAgICBwYWRkaW5nLXRvcDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcHQteGxhcmdlXFxAeHMge1xuICAgIHBhZGRpbmctdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LXB0LW5vbmUge1xuICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LXB0LW5vbmVcXEB4eGwge1xuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtcHQtbm9uZVxcQHhsIHtcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LXB0LW5vbmVcXEBsIHtcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtcHQtbm9uZVxcQG0ge1xuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1wdC1ub25lXFxAcyB7XG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LXB0LW5vbmVcXEB4cyB7XG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuLnUtcHIteHhzbWFsbCB7XG4gIHBhZGRpbmctcmlnaHQ6IDRweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LXByLXh4c21hbGxcXEB4eGwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LXByLXh4c21hbGxcXEB4bCB7XG4gICAgcGFkZGluZy1yaWdodDogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcHIteHhzbWFsbFxcQGwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtcHIteHhzbWFsbFxcQG0ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtcHIteHhzbWFsbFxcQHMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcHIteHhzbWFsbFxcQHhzIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtcHIteHNtYWxsIHtcbiAgcGFkZGluZy1yaWdodDogOHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtcHIteHNtYWxsXFxAeHhsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1wci14c21hbGxcXEB4bCB7XG4gICAgcGFkZGluZy1yaWdodDogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcHIteHNtYWxsXFxAbCB7XG4gICAgcGFkZGluZy1yaWdodDogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1wci14c21hbGxcXEBtIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LXByLXhzbWFsbFxcQHMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcHIteHNtYWxsXFxAeHMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1wci1zbWFsbCB7XG4gIHBhZGRpbmctcmlnaHQ6IDE2cHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1wci1zbWFsbFxcQHh4bCB7XG4gICAgcGFkZGluZy1yaWdodDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LXByLXNtYWxsXFxAeGwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1wci1zbWFsbFxcQGwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LXByLXNtYWxsXFxAbSB7XG4gICAgcGFkZGluZy1yaWdodDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtcHItc21hbGxcXEBzIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1wci1zbWFsbFxcQHhzIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LXByIHtcbiAgcGFkZGluZy1yaWdodDogMjRweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LXByXFxAeHhsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtcHJcXEB4bCB7XG4gICAgcGFkZGluZy1yaWdodDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LXByXFxAbCB7XG4gICAgcGFkZGluZy1yaWdodDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtcHJcXEBtIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1wclxcQHMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LXByXFxAeHMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtcHItbGFyZ2Uge1xuICBwYWRkaW5nLXJpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtcHItbGFyZ2VcXEB4eGwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1wci1sYXJnZVxcQHhsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcHItbGFyZ2VcXEBsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1wci1sYXJnZVxcQG0ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LXByLWxhcmdlXFxAcyB7XG4gICAgcGFkZGluZy1yaWdodDogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcHItbGFyZ2VcXEB4cyB7XG4gICAgcGFkZGluZy1yaWdodDogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1wci14bGFyZ2Uge1xuICBwYWRkaW5nLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtcHIteGxhcmdlXFxAeHhsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtcHIteGxhcmdlXFxAeGwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1wci14bGFyZ2VcXEBsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1wci14bGFyZ2VcXEBtIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1wci14bGFyZ2VcXEBzIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1wci14bGFyZ2VcXEB4cyB7XG4gICAgcGFkZGluZy1yaWdodDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1wci1ub25lIHtcbiAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LXByLW5vbmVcXEB4eGwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1wci1ub25lXFxAeGwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1wci1ub25lXFxAbCB7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtcHItbm9uZVxcQG0ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LXByLW5vbmVcXEBzIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1wci1ub25lXFxAeHMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuLnUtcGIteHhzbWFsbCB7XG4gIHBhZGRpbmctYm90dG9tOiA0cHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1wYi14eHNtYWxsXFxAeHhsIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtcGIteHhzbWFsbFxcQHhsIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcGIteHhzbWFsbFxcQGwge1xuICAgIHBhZGRpbmctYm90dG9tOiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LXBiLXh4c21hbGxcXEBtIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1wYi14eHNtYWxsXFxAcyB7XG4gICAgcGFkZGluZy1ib3R0b206IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcGIteHhzbWFsbFxcQHhzIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LXBiLXhzbWFsbCB7XG4gIHBhZGRpbmctYm90dG9tOiA4cHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1wYi14c21hbGxcXEB4eGwge1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1wYi14c21hbGxcXEB4bCB7XG4gICAgcGFkZGluZy1ib3R0b206IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LXBiLXhzbWFsbFxcQGwge1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LXBiLXhzbWFsbFxcQG0ge1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LXBiLXhzbWFsbFxcQHMge1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LXBiLXhzbWFsbFxcQHhzIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LXBiLXNtYWxsIHtcbiAgcGFkZGluZy1ib3R0b206IDE2cHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1wYi1zbWFsbFxcQHh4bCB7XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1wYi1zbWFsbFxcQHhsIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LXBiLXNtYWxsXFxAbCB7XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LXBiLXNtYWxsXFxAbSB7XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LXBiLXNtYWxsXFxAcyB7XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LXBiLXNtYWxsXFxAeHMge1xuICAgIHBhZGRpbmctYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LXBiIHtcbiAgcGFkZGluZy1ib3R0b206IDI0cHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1wYlxcQHh4bCB7XG4gICAgcGFkZGluZy1ib3R0b206IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1wYlxcQHhsIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LXBiXFxAbCB7XG4gICAgcGFkZGluZy1ib3R0b206IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LXBiXFxAbSB7XG4gICAgcGFkZGluZy1ib3R0b206IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LXBiXFxAcyB7XG4gICAgcGFkZGluZy1ib3R0b206IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LXBiXFxAeHMge1xuICAgIHBhZGRpbmctYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LXBiLWxhcmdlIHtcbiAgcGFkZGluZy1ib3R0b206IDMycHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1wYi1sYXJnZVxcQHh4bCB7XG4gICAgcGFkZGluZy1ib3R0b206IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1wYi1sYXJnZVxcQHhsIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LXBiLWxhcmdlXFxAbCB7XG4gICAgcGFkZGluZy1ib3R0b206IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LXBiLWxhcmdlXFxAbSB7XG4gICAgcGFkZGluZy1ib3R0b206IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LXBiLWxhcmdlXFxAcyB7XG4gICAgcGFkZGluZy1ib3R0b206IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LXBiLWxhcmdlXFxAeHMge1xuICAgIHBhZGRpbmctYm90dG9tOiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LXBiLXhsYXJnZSB7XG4gIHBhZGRpbmctYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtcGIteGxhcmdlXFxAeHhsIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LXBiLXhsYXJnZVxcQHhsIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LXBiLXhsYXJnZVxcQGwge1xuICAgIHBhZGRpbmctYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1wYi14bGFyZ2VcXEBtIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtcGIteGxhcmdlXFxAcyB7XG4gICAgcGFkZGluZy1ib3R0b206IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LXBiLXhsYXJnZVxcQHhzIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1wYi1ub25lIHtcbiAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1wYi1ub25lXFxAeHhsIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LXBiLW5vbmVcXEB4bCB7XG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1wYi1ub25lXFxAbCB7XG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LXBiLW5vbmVcXEBtIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtcGItbm9uZVxcQHMge1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1wYi1ub25lXFxAeHMge1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LXBsLXh4c21hbGwge1xuICBwYWRkaW5nLWxlZnQ6IDRweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LXBsLXh4c21hbGxcXEB4eGwge1xuICAgIHBhZGRpbmctbGVmdDogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtcGwteHhzbWFsbFxcQHhsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LXBsLXh4c21hbGxcXEBsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtcGwteHhzbWFsbFxcQG0ge1xuICAgIHBhZGRpbmctbGVmdDogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1wbC14eHNtYWxsXFxAcyB7XG4gICAgcGFkZGluZy1sZWZ0OiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LXBsLXh4c21hbGxcXEB4cyB7XG4gICAgcGFkZGluZy1sZWZ0OiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtcGwteHNtYWxsIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1wbC14c21hbGxcXEB4eGwge1xuICAgIHBhZGRpbmctbGVmdDogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtcGwteHNtYWxsXFxAeGwge1xuICAgIHBhZGRpbmctbGVmdDogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcGwteHNtYWxsXFxAbCB7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LXBsLXhzbWFsbFxcQG0ge1xuICAgIHBhZGRpbmctbGVmdDogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1wbC14c21hbGxcXEBzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcGwteHNtYWxsXFxAeHMge1xuICAgIHBhZGRpbmctbGVmdDogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LXBsLXNtYWxsIHtcbiAgcGFkZGluZy1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtcGwtc21hbGxcXEB4eGwge1xuICAgIHBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LXBsLXNtYWxsXFxAeGwge1xuICAgIHBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LXBsLXNtYWxsXFxAbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1wbC1zbWFsbFxcQG0ge1xuICAgIHBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtcGwtc21hbGxcXEBzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LXBsLXNtYWxsXFxAeHMge1xuICAgIHBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1wbCB7XG4gIHBhZGRpbmctbGVmdDogMjRweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LXBsXFxAeHhsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1wbFxcQHhsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1wbFxcQGwge1xuICAgIHBhZGRpbmctbGVmdDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtcGxcXEBtIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LXBsXFxAcyB7XG4gICAgcGFkZGluZy1sZWZ0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1wbFxcQHhzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtcGwtbGFyZ2Uge1xuICBwYWRkaW5nLWxlZnQ6IDMycHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1wbC1sYXJnZVxcQHh4bCB7XG4gICAgcGFkZGluZy1sZWZ0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtcGwtbGFyZ2VcXEB4bCB7XG4gICAgcGFkZGluZy1sZWZ0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcGwtbGFyZ2VcXEBsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LXBsLWxhcmdlXFxAbSB7XG4gICAgcGFkZGluZy1sZWZ0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1wbC1sYXJnZVxcQHMge1xuICAgIHBhZGRpbmctbGVmdDogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcGwtbGFyZ2VcXEB4cyB7XG4gICAgcGFkZGluZy1sZWZ0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LXBsLXhsYXJnZSB7XG4gIHBhZGRpbmctbGVmdDogNDhweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LXBsLXhsYXJnZVxcQHh4bCB7XG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtcGwteGxhcmdlXFxAeGwge1xuICAgIHBhZGRpbmctbGVmdDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LXBsLXhsYXJnZVxcQGwge1xuICAgIHBhZGRpbmctbGVmdDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtcGwteGxhcmdlXFxAbSB7XG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1wbC14bGFyZ2VcXEBzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LXBsLXhsYXJnZVxcQHhzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtcGwtbm9uZSB7XG4gIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LXBsLW5vbmVcXEB4eGwge1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LXBsLW5vbmVcXEB4bCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcGwtbm9uZVxcQGwge1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtcGwtbm9uZVxcQG0ge1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtcGwtbm9uZVxcQHMge1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcGwtbm9uZVxcQHhzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuLnUtcGgteHhzbWFsbCB7XG4gIHBhZGRpbmctbGVmdDogNHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDRweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LXBoLXh4c21hbGxcXEB4eGwge1xuICAgIHBhZGRpbmctbGVmdDogNHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtcGgteHhzbWFsbFxcQHhsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDRweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LXBoLXh4c21hbGxcXEBsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDRweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtcGgteHhzbWFsbFxcQG0ge1xuICAgIHBhZGRpbmctbGVmdDogNHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1waC14eHNtYWxsXFxAcyB7XG4gICAgcGFkZGluZy1sZWZ0OiA0cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LXBoLXh4c21hbGxcXEB4cyB7XG4gICAgcGFkZGluZy1sZWZ0OiA0cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtcGgteHNtYWxsIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogOHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtcGgteHNtYWxsXFxAeHhsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LXBoLXhzbWFsbFxcQHhsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LXBoLXhzbWFsbFxcQGwge1xuICAgIHBhZGRpbmctbGVmdDogOHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1waC14c21hbGxcXEBtIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtcGgteHNtYWxsXFxAcyB7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LXBoLXhzbWFsbFxcQHhzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1waC1zbWFsbCB7XG4gIHBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtcGgtc21hbGxcXEB4eGwge1xuICAgIHBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1waC1zbWFsbFxcQHhsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcGgtc21hbGxcXEBsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1waC1zbWFsbFxcQG0ge1xuICAgIHBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LXBoLXNtYWxsXFxAcyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcGgtc21hbGxcXEB4cyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1waCB7XG4gIHBhZGRpbmctbGVmdDogMjRweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtcGhcXEB4eGwge1xuICAgIHBhZGRpbmctbGVmdDogMjRweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1waFxcQHhsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcGhcXEBsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1waFxcQG0ge1xuICAgIHBhZGRpbmctbGVmdDogMjRweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LXBoXFxAcyB7XG4gICAgcGFkZGluZy1sZWZ0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcGhcXEB4cyB7XG4gICAgcGFkZGluZy1sZWZ0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1waC1sYXJnZSB7XG4gIHBhZGRpbmctbGVmdDogMzJweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtcGgtbGFyZ2VcXEB4eGwge1xuICAgIHBhZGRpbmctbGVmdDogMzJweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1waC1sYXJnZVxcQHhsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMycHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcGgtbGFyZ2VcXEBsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMycHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1waC1sYXJnZVxcQG0ge1xuICAgIHBhZGRpbmctbGVmdDogMzJweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LXBoLWxhcmdlXFxAcyB7XG4gICAgcGFkZGluZy1sZWZ0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcGgtbGFyZ2VcXEB4cyB7XG4gICAgcGFkZGluZy1sZWZ0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1waC14bGFyZ2Uge1xuICBwYWRkaW5nLWxlZnQ6IDQ4cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogNDhweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LXBoLXhsYXJnZVxcQHh4bCB7XG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LXBoLXhsYXJnZVxcQHhsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDQ4cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcGgteGxhcmdlXFxAbCB7XG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtcGgteGxhcmdlXFxAbSB7XG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtcGgteGxhcmdlXFxAcyB7XG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcGgteGxhcmdlXFxAeHMge1xuICAgIHBhZGRpbmctbGVmdDogNDhweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnUtcGgtbm9uZSB7XG4gIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtcGgtbm9uZVxcQHh4bCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LXBoLW5vbmVcXEB4bCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC51LXBoLW5vbmVcXEBsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1waC1ub25lXFxAbSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtcGgtbm9uZVxcQHMge1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC51LXBoLW5vbmVcXEB4cyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1wdi14eHNtYWxsIHtcbiAgcGFkZGluZy10b3A6IDRweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogNHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtcHYteHhzbWFsbFxcQHh4bCB7XG4gICAgcGFkZGluZy10b3A6IDRweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS1wdi14eHNtYWxsXFxAeGwge1xuICAgIHBhZGRpbmctdG9wOiA0cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcHYteHhzbWFsbFxcQGwge1xuICAgIHBhZGRpbmctdG9wOiA0cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1wdi14eHNtYWxsXFxAbSB7XG4gICAgcGFkZGluZy10b3A6IDRweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiA0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC51LXB2LXh4c21hbGxcXEBzIHtcbiAgICBwYWRkaW5nLXRvcDogNHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcHYteHhzbWFsbFxcQHhzIHtcbiAgICBwYWRkaW5nLXRvcDogNHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDRweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1wdi14c21hbGwge1xuICBwYWRkaW5nLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiA4cHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1wdi14c21hbGxcXEB4eGwge1xuICAgIHBhZGRpbmctdG9wOiA4cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtcHYteHNtYWxsXFxAeGwge1xuICAgIHBhZGRpbmctdG9wOiA4cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcHYteHNtYWxsXFxAbCB7XG4gICAgcGFkZGluZy10b3A6IDhweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LXB2LXhzbWFsbFxcQG0ge1xuICAgIHBhZGRpbmctdG9wOiA4cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1wdi14c21hbGxcXEBzIHtcbiAgICBwYWRkaW5nLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcHYteHNtYWxsXFxAeHMge1xuICAgIHBhZGRpbmctdG9wOiA4cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LXB2LXNtYWxsIHtcbiAgcGFkZGluZy10b3A6IDE2cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDE2cHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1wdi1zbWFsbFxcQHh4bCB7XG4gICAgcGFkZGluZy10b3A6IDE2cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LXB2LXNtYWxsXFxAeGwge1xuICAgIHBhZGRpbmctdG9wOiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1wdi1zbWFsbFxcQGwge1xuICAgIHBhZGRpbmctdG9wOiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LXB2LXNtYWxsXFxAbSB7XG4gICAgcGFkZGluZy10b3A6IDE2cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtcHYtc21hbGxcXEBzIHtcbiAgICBwYWRkaW5nLXRvcDogMTZweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1wdi1zbWFsbFxcQHhzIHtcbiAgICBwYWRkaW5nLXRvcDogMTZweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LXB2IHtcbiAgcGFkZGluZy10b3A6IDI0cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDI0cHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1wdlxcQHh4bCB7XG4gICAgcGFkZGluZy10b3A6IDI0cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LXB2XFxAeGwge1xuICAgIHBhZGRpbmctdG9wOiAyNHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1wdlxcQGwge1xuICAgIHBhZGRpbmctdG9wOiAyNHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDI0cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LXB2XFxAbSB7XG4gICAgcGFkZGluZy10b3A6IDI0cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtcHZcXEBzIHtcbiAgICBwYWRkaW5nLXRvcDogMjRweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1wdlxcQHhzIHtcbiAgICBwYWRkaW5nLXRvcDogMjRweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LXB2LWxhcmdlIHtcbiAgcGFkZGluZy10b3A6IDMycHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDMycHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1wdi1sYXJnZVxcQHh4bCB7XG4gICAgcGFkZGluZy10b3A6IDMycHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTYwMHB4KSB7XG4gIC51LXB2LWxhcmdlXFxAeGwge1xuICAgIHBhZGRpbmctdG9wOiAzMnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1wdi1sYXJnZVxcQGwge1xuICAgIHBhZGRpbmctdG9wOiAzMnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDMycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LXB2LWxhcmdlXFxAbSB7XG4gICAgcGFkZGluZy10b3A6IDMycHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtcHYtbGFyZ2VcXEBzIHtcbiAgICBwYWRkaW5nLXRvcDogMzJweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1wdi1sYXJnZVxcQHhzIHtcbiAgICBwYWRkaW5nLXRvcDogMzJweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAzMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51LXB2LXhsYXJnZSB7XG4gIHBhZGRpbmctdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxOTIwcHgpIHtcbiAgLnUtcHYteGxhcmdlXFxAeHhsIHtcbiAgICBwYWRkaW5nLXRvcDogNDhweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtcHYteGxhcmdlXFxAeGwge1xuICAgIHBhZGRpbmctdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS1wdi14bGFyZ2VcXEBsIHtcbiAgICBwYWRkaW5nLXRvcDogNDhweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAudS1wdi14bGFyZ2VcXEBtIHtcbiAgICBwYWRkaW5nLXRvcDogNDhweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1wdi14bGFyZ2VcXEBzIHtcbiAgICBwYWRkaW5nLXRvcDogNDhweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudS1wdi14bGFyZ2VcXEB4cyB7XG4gICAgcGFkZGluZy10b3A6IDQ4cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG4udS1wdi1ub25lIHtcbiAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS1wdi1ub25lXFxAeHhsIHtcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgLnUtcHYtbm9uZVxcQHhsIHtcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtcHYtbm9uZVxcQGwge1xuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LXB2LW5vbmVcXEBtIHtcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS1wdi1ub25lXFxAcyB7XG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtcHYtbm9uZVxcQHhzIHtcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNURVhULUFMSUdOXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogSGVscGVyIGNsYXNzZXMgdG8gYWxpZ24gZWxlbWVudHMgZWl0aGVyIGxlZnQsIHJpZ2h0IG9yIGNlbnRlci5cbiAqL1xuLnUtdGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xufVxuXG4udS10ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbn1cblxuLnUtdGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE5MjBweCkge1xuICAudS10ZXh0LWxlZnRcXEB4eGwge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAudS10ZXh0LXJpZ2h0XFxAeHhsIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50O1xuICB9XG4gIC51LXRleHQtY2VudGVyXFxAeHhsIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDE5MjFweCkge1xuICAudS10ZXh0LWxlZnRcXEB4eGwtdXAge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAudS10ZXh0LXJpZ2h0XFxAeHhsLXVwIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50O1xuICB9XG4gIC51LXRleHQtY2VudGVyXFxAeHhsLXVwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS10ZXh0LWxlZnRcXEB4bCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICB9XG4gIC51LXRleHQtcmlnaHRcXEB4bCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuICAudS10ZXh0LWNlbnRlclxcQHhsIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDE2MDFweCkge1xuICAudS10ZXh0LWxlZnRcXEB4bC11cCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICB9XG4gIC51LXRleHQtcmlnaHRcXEB4bC11cCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuICAudS10ZXh0LWNlbnRlclxcQHhsLXVwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAudS10ZXh0LWxlZnRcXEBsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtdGV4dC1yaWdodFxcQGwge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtdGV4dC1jZW50ZXJcXEBsIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyODFweCkge1xuICAudS10ZXh0LWxlZnRcXEBsLXVwIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtdGV4dC1yaWdodFxcQGwtdXAge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtdGV4dC1jZW50ZXJcXEBsLXVwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC51LXRleHQtbGVmdFxcQG0ge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAudS10ZXh0LXJpZ2h0XFxAbSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuICAudS10ZXh0LWNlbnRlclxcQG0ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTYxcHgpIHtcbiAgLnUtdGV4dC1sZWZ0XFxAbS11cCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICB9XG4gIC51LXRleHQtcmlnaHRcXEBtLXVwIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50O1xuICB9XG4gIC51LXRleHQtY2VudGVyXFxAbS11cCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAudS10ZXh0LWxlZnRcXEBzIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtdGV4dC1yaWdodFxcQHMge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtdGV4dC1jZW50ZXJcXEBzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC51LXRleHQtbGVmdFxcQHMtdXAge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAudS10ZXh0LXJpZ2h0XFxAcy11cCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuICAudS10ZXh0LWNlbnRlclxcQHMtdXAge1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtdGV4dC1sZWZ0XFxAeHMge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAudS10ZXh0LXJpZ2h0XFxAeHMge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtdGV4dC1jZW50ZXJcXEB4cyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODFweCkge1xuICAudS10ZXh0LWxlZnRcXEB4cy11cCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICB9XG4gIC51LXRleHQtcmlnaHRcXEB4cy11cCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuICAudS10ZXh0LWNlbnRlclxcQHhzLXVwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1RFWFQtVFJBTlNGT1JNXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogVGhlIGZvbGxvd2luZyBjbGFzc2VzIHdpbGwgdHJhbnNmb3JtIHRleHQgaW50b1xuICogdXBwZXJjYXNlZCwgY2FwaXRhbGl6ZWQgb3IgbG93ZXJjYXNlZCBjaGFyYWN0ZXJzLlxuICovXG4udS10ZXh0LWxvd2VyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2UgIWltcG9ydGFudDtcbn1cblxuLnUtdGV4dC11cHBlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7XG59XG5cbi51LXRleHQtY2FwaXRhbGl6ZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplICFpbXBvcnRhbnQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNURVhULVRSVU5DQVRFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogQSB1dGlsaXR5IGNsYXNzIHRvIHRydW5jYXRlIHRleHQgd2l0aCBcIi4uLlwiIHdoZW4gY29udGVudCBpcyB3aWRlciB0aGFuIHRoZSBhdmFpbGFibGUgc3BhY2UuXG4gKiBXb3JrcyBvbmx5IGZvciBzaW5nbGUtbGluZSB0cnVuY2F0aW9uXG4gKi9cbi51LXRleHQtdHJ1bmNhdGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNURVhULVdSQVBcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBBIHV0aWxpdHkgY2xhc3MgdG8gZW5mb3JjZSB0ZXh0IHdyYXBwaW5nLiBXaXRoIGh5cGhlbnMgaWYgcG9zc2libGVcbiAqIG90aGVyd2lzZSB3aXRoIGhhcmQgd29yZC1icmVha3MuXG4gKi9cbi51LXRleHQtd3JhcCB7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIGh5cGhlbnM6IGF1dG87XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNWSVNVQUxMWS1ISURERU5cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBBIHV0aWxpdHkgY2xhc3MgdG8gaGlkZSBlbGVtZW50cyB2aXN1YWxseVxuICogYnV0IGtlZXAgdGhlIGVsZW1lbnQgdGV4dCBhdmFpbGFibGUgdG8gYmUgYW5ub3VuY2VkIGJ5IGEgc2NyZWVuIHJlYWRlci5cbiAqL1xuLnUtdmlzdWFsbHktaGlkZGVuIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgaXRjc3Mvbm8tYXQtaW1wb3J0YW50ICovXG4gIHdpZHRoOiAxcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCkgIWltcG9ydGFudDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAjV0hJVEUtU1BBQ0VcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnUtd3Mtbm93cmFwIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjV0lEVEhTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxuICogQSBzZXJpZXMgb2Ygd2lkdGhzIGhlbHBlciBjbGFzc2VzIHRoYXQgeW91IGNhbiB1c2UgdG8gc2l6ZSB0aGluZ3MgbGlrZSBncmlkXG4gKiBzeXN0ZW1zLiBDbGFzc2VzIHRha2UgYSBmcmFjdGlvbi1saWtlIGZvcm1hdCAoZS5nLiBgLnUtMi8zYCkuXG4gKi9cbi51LTFcXC8xIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi51LTFcXC8yIHtcbiAgd2lkdGg6IDUwJTtcbn1cblxuLnUtMlxcLzIge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnUtMVxcLzMge1xuICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7XG59XG5cbi51LTJcXC8zIHtcbiAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xufVxuXG4udS0zXFwvMyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udS0xXFwvNCB7XG4gIHdpZHRoOiAyNSU7XG59XG5cbi51LTJcXC80IHtcbiAgd2lkdGg6IDUwJTtcbn1cblxuLnUtM1xcLzQge1xuICB3aWR0aDogNzUlO1xufVxuXG4udS00XFwvNCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udS0xXFwvNSB7XG4gIHdpZHRoOiAyMCU7XG59XG5cbi51LTJcXC81IHtcbiAgd2lkdGg6IDQwJTtcbn1cblxuLnUtM1xcLzUge1xuICB3aWR0aDogNjAlO1xufVxuXG4udS00XFwvNSB7XG4gIHdpZHRoOiA4MCU7XG59XG5cbi51LTVcXC81IHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi51LTFcXC82IHtcbiAgd2lkdGg6IDE2LjY2NjY2NjY2NjclO1xufVxuXG4udS0yXFwvNiB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbn1cblxuLnUtM1xcLzYge1xuICB3aWR0aDogNTAlO1xufVxuXG4udS00XFwvNiB7XG4gIHdpZHRoOiA2Ni42NjY2NjY2NjY3JTtcbn1cblxuLnUtNVxcLzYge1xuICB3aWR0aDogODMuMzMzMzMzMzMzMyU7XG59XG5cbi51LTZcXC82IHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi51LTFcXC8xMiB7XG4gIHdpZHRoOiA4LjMzMzMzMzMzMzMlO1xufVxuXG4udS0yXFwvMTIge1xuICB3aWR0aDogMTYuNjY2NjY2NjY2NyU7XG59XG5cbi51LTNcXC8xMiB7XG4gIHdpZHRoOiAyNSU7XG59XG5cbi51LTRcXC8xMiB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbn1cblxuLnUtNVxcLzEyIHtcbiAgd2lkdGg6IDQxLjY2NjY2NjY2NjclO1xufVxuXG4udS02XFwvMTIge1xuICB3aWR0aDogNTAlO1xufVxuXG4udS03XFwvMTIge1xuICB3aWR0aDogNTguMzMzMzMzMzMzMyU7XG59XG5cbi51LThcXC8xMiB7XG4gIHdpZHRoOiA2Ni42NjY2NjY2NjY3JTtcbn1cblxuLnUtOVxcLzEyIHtcbiAgd2lkdGg6IDc1JTtcbn1cblxuLnUtMTBcXC8xMiB7XG4gIHdpZHRoOiA4My4zMzMzMzMzMzMzJTtcbn1cblxuLnUtMTFcXC8xMiB7XG4gIHdpZHRoOiA5MS42NjY2NjY2NjY3JTtcbn1cblxuLnUtMTJcXC8xMiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTkyMHB4KSB7XG4gIC51LTFcXC8xXFxAeHhsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAudS0xXFwvMlxcQHh4bCB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAudS0yXFwvMlxcQHh4bCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnUtMVxcLzNcXEB4eGwge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAudS0yXFwvM1xcQHh4bCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC51LTNcXC8zXFxAeHhsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAudS0xXFwvNFxcQHh4bCB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAudS0yXFwvNFxcQHh4bCB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAudS0zXFwvNFxcQHh4bCB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuICAudS00XFwvNFxcQHh4bCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnUtMVxcLzVcXEB4eGwge1xuICAgIHdpZHRoOiAyMCU7XG4gIH1cbiAgLnUtMlxcLzVcXEB4eGwge1xuICAgIHdpZHRoOiA0MCU7XG4gIH1cbiAgLnUtM1xcLzVcXEB4eGwge1xuICAgIHdpZHRoOiA2MCU7XG4gIH1cbiAgLnUtNFxcLzVcXEB4eGwge1xuICAgIHdpZHRoOiA4MCU7XG4gIH1cbiAgLnUtNVxcLzVcXEB4eGwge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC51LTFcXC82XFxAeHhsIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnUtMlxcLzZcXEB4eGwge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAudS0zXFwvNlxcQHh4bCB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAudS00XFwvNlxcQHh4bCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC51LTVcXC82XFxAeHhsIHtcbiAgICB3aWR0aDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnUtNlxcLzZcXEB4eGwge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC51LTFcXC8xMlxcQHh4bCB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnUtMlxcLzEyXFxAeHhsIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnUtM1xcLzEyXFxAeHhsIHtcbiAgICB3aWR0aDogMjUlO1xuICB9XG4gIC51LTRcXC8xMlxcQHh4bCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC51LTVcXC8xMlxcQHh4bCB7XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY2NjclO1xuICB9XG4gIC51LTZcXC8xMlxcQHh4bCB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAudS03XFwvMTJcXEB4eGwge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAudS04XFwvMTJcXEB4eGwge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAudS05XFwvMTJcXEB4eGwge1xuICAgIHdpZHRoOiA3NSU7XG4gIH1cbiAgLnUtMTBcXC8xMlxcQHh4bCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC51LTExXFwvMTJcXEB4eGwge1xuICAgIHdpZHRoOiA5MS42NjY2NjY2NjY3JTtcbiAgfVxuICAudS0xMlxcLzEyXFxAeHhsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAudS0xXFwvMVxcQHhsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAudS0xXFwvMlxcQHhsIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC51LTJcXC8yXFxAeGwge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC51LTFcXC8zXFxAeGwge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAudS0yXFwvM1xcQHhsIHtcbiAgICB3aWR0aDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnUtM1xcLzNcXEB4bCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnUtMVxcLzRcXEB4bCB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAudS0yXFwvNFxcQHhsIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC51LTNcXC80XFxAeGwge1xuICAgIHdpZHRoOiA3NSU7XG4gIH1cbiAgLnUtNFxcLzRcXEB4bCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnUtMVxcLzVcXEB4bCB7XG4gICAgd2lkdGg6IDIwJTtcbiAgfVxuICAudS0yXFwvNVxcQHhsIHtcbiAgICB3aWR0aDogNDAlO1xuICB9XG4gIC51LTNcXC81XFxAeGwge1xuICAgIHdpZHRoOiA2MCU7XG4gIH1cbiAgLnUtNFxcLzVcXEB4bCB7XG4gICAgd2lkdGg6IDgwJTtcbiAgfVxuICAudS01XFwvNVxcQHhsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAudS0xXFwvNlxcQHhsIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnUtMlxcLzZcXEB4bCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC51LTNcXC82XFxAeGwge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLnUtNFxcLzZcXEB4bCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC51LTVcXC82XFxAeGwge1xuICAgIHdpZHRoOiA4My4zMzMzMzMzMzMzJTtcbiAgfVxuICAudS02XFwvNlxcQHhsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAudS0xXFwvMTJcXEB4bCB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnUtMlxcLzEyXFxAeGwge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuICAudS0zXFwvMTJcXEB4bCB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAudS00XFwvMTJcXEB4bCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC51LTVcXC8xMlxcQHhsIHtcbiAgICB3aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnUtNlxcLzEyXFxAeGwge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLnUtN1xcLzEyXFxAeGwge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAudS04XFwvMTJcXEB4bCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC51LTlcXC8xMlxcQHhsIHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIC51LTEwXFwvMTJcXEB4bCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC51LTExXFwvMTJcXEB4bCB7XG4gICAgd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xuICB9XG4gIC51LTEyXFwvMTJcXEB4bCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLnUtMVxcLzFcXEBsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAudS0xXFwvMlxcQGwge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLnUtMlxcLzJcXEBsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAudS0xXFwvM1xcQGwge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAudS0yXFwvM1xcQGwge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAudS0zXFwvM1xcQGwge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC51LTFcXC80XFxAbCB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAudS0yXFwvNFxcQGwge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLnUtM1xcLzRcXEBsIHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIC51LTRcXC80XFxAbCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnUtMVxcLzVcXEBsIHtcbiAgICB3aWR0aDogMjAlO1xuICB9XG4gIC51LTJcXC81XFxAbCB7XG4gICAgd2lkdGg6IDQwJTtcbiAgfVxuICAudS0zXFwvNVxcQGwge1xuICAgIHdpZHRoOiA2MCU7XG4gIH1cbiAgLnUtNFxcLzVcXEBsIHtcbiAgICB3aWR0aDogODAlO1xuICB9XG4gIC51LTVcXC81XFxAbCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnUtMVxcLzZcXEBsIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnUtMlxcLzZcXEBsIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnUtM1xcLzZcXEBsIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC51LTRcXC82XFxAbCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC51LTVcXC82XFxAbCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC51LTZcXC82XFxAbCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnUtMVxcLzEyXFxAbCB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnUtMlxcLzEyXFxAbCB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC51LTNcXC8xMlxcQGwge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLnUtNFxcLzEyXFxAbCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC51LTVcXC8xMlxcQGwge1xuICAgIHdpZHRoOiA0MS42NjY2NjY2NjY3JTtcbiAgfVxuICAudS02XFwvMTJcXEBsIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC51LTdcXC8xMlxcQGwge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAudS04XFwvMTJcXEBsIHtcbiAgICB3aWR0aDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnUtOVxcLzEyXFxAbCB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuICAudS0xMFxcLzEyXFxAbCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC51LTExXFwvMTJcXEBsIHtcbiAgICB3aWR0aDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnUtMTJcXC8xMlxcQGwge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnUtMVxcLzFcXEBtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAudS0xXFwvMlxcQG0ge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLnUtMlxcLzJcXEBtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAudS0xXFwvM1xcQG0ge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAudS0yXFwvM1xcQG0ge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAudS0zXFwvM1xcQG0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC51LTFcXC80XFxAbSB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAudS0yXFwvNFxcQG0ge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLnUtM1xcLzRcXEBtIHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIC51LTRcXC80XFxAbSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnUtMVxcLzVcXEBtIHtcbiAgICB3aWR0aDogMjAlO1xuICB9XG4gIC51LTJcXC81XFxAbSB7XG4gICAgd2lkdGg6IDQwJTtcbiAgfVxuICAudS0zXFwvNVxcQG0ge1xuICAgIHdpZHRoOiA2MCU7XG4gIH1cbiAgLnUtNFxcLzVcXEBtIHtcbiAgICB3aWR0aDogODAlO1xuICB9XG4gIC51LTVcXC81XFxAbSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnUtMVxcLzZcXEBtIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnUtMlxcLzZcXEBtIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnUtM1xcLzZcXEBtIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC51LTRcXC82XFxAbSB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC51LTVcXC82XFxAbSB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC51LTZcXC82XFxAbSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnUtMVxcLzEyXFxAbSB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnUtMlxcLzEyXFxAbSB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC51LTNcXC8xMlxcQG0ge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLnUtNFxcLzEyXFxAbSB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC51LTVcXC8xMlxcQG0ge1xuICAgIHdpZHRoOiA0MS42NjY2NjY2NjY3JTtcbiAgfVxuICAudS02XFwvMTJcXEBtIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC51LTdcXC8xMlxcQG0ge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAudS04XFwvMTJcXEBtIHtcbiAgICB3aWR0aDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnUtOVxcLzEyXFxAbSB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuICAudS0xMFxcLzEyXFxAbSB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC51LTExXFwvMTJcXEBtIHtcbiAgICB3aWR0aDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnUtMTJcXC8xMlxcQG0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnUtMVxcLzFcXEBzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAudS0xXFwvMlxcQHMge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLnUtMlxcLzJcXEBzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAudS0xXFwvM1xcQHMge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAudS0yXFwvM1xcQHMge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAudS0zXFwvM1xcQHMge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC51LTFcXC80XFxAcyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAudS0yXFwvNFxcQHMge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLnUtM1xcLzRcXEBzIHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIC51LTRcXC80XFxAcyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnUtMVxcLzVcXEBzIHtcbiAgICB3aWR0aDogMjAlO1xuICB9XG4gIC51LTJcXC81XFxAcyB7XG4gICAgd2lkdGg6IDQwJTtcbiAgfVxuICAudS0zXFwvNVxcQHMge1xuICAgIHdpZHRoOiA2MCU7XG4gIH1cbiAgLnUtNFxcLzVcXEBzIHtcbiAgICB3aWR0aDogODAlO1xuICB9XG4gIC51LTVcXC81XFxAcyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnUtMVxcLzZcXEBzIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnUtMlxcLzZcXEBzIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnUtM1xcLzZcXEBzIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC51LTRcXC82XFxAcyB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC51LTVcXC82XFxAcyB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC51LTZcXC82XFxAcyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnUtMVxcLzEyXFxAcyB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnUtMlxcLzEyXFxAcyB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC51LTNcXC8xMlxcQHMge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLnUtNFxcLzEyXFxAcyB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC51LTVcXC8xMlxcQHMge1xuICAgIHdpZHRoOiA0MS42NjY2NjY2NjY3JTtcbiAgfVxuICAudS02XFwvMTJcXEBzIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC51LTdcXC8xMlxcQHMge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAudS04XFwvMTJcXEBzIHtcbiAgICB3aWR0aDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnUtOVxcLzEyXFxAcyB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuICAudS0xMFxcLzEyXFxAcyB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC51LTExXFwvMTJcXEBzIHtcbiAgICB3aWR0aDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnUtMTJcXC8xMlxcQHMge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnUtMVxcLzFcXEB4cyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnUtMVxcLzJcXEB4cyB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAudS0yXFwvMlxcQHhzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAudS0xXFwvM1xcQHhzIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnUtMlxcLzNcXEB4cyB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC51LTNcXC8zXFxAeHMge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC51LTFcXC80XFxAeHMge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLnUtMlxcLzRcXEB4cyB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAudS0zXFwvNFxcQHhzIHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIC51LTRcXC80XFxAeHMge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC51LTFcXC81XFxAeHMge1xuICAgIHdpZHRoOiAyMCU7XG4gIH1cbiAgLnUtMlxcLzVcXEB4cyB7XG4gICAgd2lkdGg6IDQwJTtcbiAgfVxuICAudS0zXFwvNVxcQHhzIHtcbiAgICB3aWR0aDogNjAlO1xuICB9XG4gIC51LTRcXC81XFxAeHMge1xuICAgIHdpZHRoOiA4MCU7XG4gIH1cbiAgLnUtNVxcLzVcXEB4cyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnUtMVxcLzZcXEB4cyB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC51LTJcXC82XFxAeHMge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAudS0zXFwvNlxcQHhzIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC51LTRcXC82XFxAeHMge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAudS01XFwvNlxcQHhzIHtcbiAgICB3aWR0aDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnUtNlxcLzZcXEB4cyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnUtMVxcLzEyXFxAeHMge1xuICAgIHdpZHRoOiA4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC51LTJcXC8xMlxcQHhzIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnUtM1xcLzEyXFxAeHMge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLnUtNFxcLzEyXFxAeHMge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAudS01XFwvMTJcXEB4cyB7XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY2NjclO1xuICB9XG4gIC51LTZcXC8xMlxcQHhzIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC51LTdcXC8xMlxcQHhzIHtcbiAgICB3aWR0aDogNTguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnUtOFxcLzEyXFxAeHMge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAudS05XFwvMTJcXEB4cyB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuICAudS0xMFxcLzEyXFxAeHMge1xuICAgIHdpZHRoOiA4My4zMzMzMzMzMzMzJTtcbiAgfVxuICAudS0xMVxcLzEyXFxAeHMge1xuICAgIHdpZHRoOiA5MS42NjY2NjY2NjY3JTtcbiAgfVxuICAudS0xMlxcLzEyXFxAeHMge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjU1BBQ0lORy1JVEVNXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi51LXNwYWNpbmctaXRlbS1mbHVzaCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cbi51LXNwYWNpbmctaXRlbS1mbHVzaDpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctdG9wOiAwO1xufVxuLnUtc3BhY2luZy1pdGVtLWZsdXNoOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLnUtc3BhY2luZy1pdGVtLWZsdXNoLWFsbC51LXNwYWNpbmctaXRlbS1mbHVzaC1hbGwge1xuICBwYWRkaW5nOiAwOyAvKiBbMl0gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI09WRVJGTE9XLUhJRERFTlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIEEgdXRpbGl0eSBjbGFzcyBmb3IgY2xpcHBpbmcgdGhlIGNvbnRlbnQgYXQgdGhlIGVsZW1lbnTigJlzIHBhZGRpbmcgYm94LlxuICogTm8gc2Nyb2xsYmFycyBhcmUgcHJvdmlkZWQsIGFuZCBubyBzdXBwb3J0IGZvciBhbGxvd2luZyB0aGUgdXNlciB0byBzY3JvbGxcbiAqIChzdWNoIGFzIGJ5IGRyYWdnaW5nIG9yIHVzaW5nIGEgc2Nyb2xsIHdoZWVsKSBpcyBhbGxvd2VkLlxuICovXG4udS1vdmVyZmxvdy1oaWRkZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNCQUNLR1JPVU5ELUNPTE9SU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5bZGF0YS10aGVtZT1hbHRlcm5hdGl2ZV0sXG4udS1iZy1hbHRlcm5hdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuW2RhdGEtdGhlbWU9YnJhbmRdLFxuLnUtYmctYnJhbmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDE5NDY4ICFpbXBvcnRhbnQ7XG59XG5cbltkYXRhLXRoZW1lPXdoaXRlXSxcbi51LWJnLXdoaXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjVEVYVC1DT0xPUlNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnUtdGV4dC1iYXNlIHtcbiAgY29sb3I6ICMxNjE3MTggIWltcG9ydGFudDtcbn1cblxuLnUtdGV4dC1tdXRlZCB7XG4gIGNvbG9yOiAjZDhkOGQ4ICFpbXBvcnRhbnQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNURVhULUNPTE9SU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4udS10ZXh0LXN1YnRsZSB7XG4gIGNvbG9yOiAjN2M3ZDdlICFpbXBvcnRhbnQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNCTE9DSy1DRU5URVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnUtYmxvY2stY2VudGVyIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNGT0NVUy1QT0lOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnUtZm9jdXMtcG9pbnQtdG9wLWNlbnRlciB7XG4gIG9iamVjdC1maXQ6IGNvdmVyICFpbXBvcnRhbnQ7XG4gIG9iamVjdC1wb3NpdGlvbjogdG9wIGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG4udS1mb2N1cy1wb2ludC10b3AtbGVmdCB7XG4gIG9iamVjdC1maXQ6IGNvdmVyICFpbXBvcnRhbnQ7XG4gIG9iamVjdC1wb3NpdGlvbjogdG9wIGxlZnQgIWltcG9ydGFudDtcbn1cblxuLnUtZm9jdXMtcG9pbnQtdG9wLXJpZ2h0IHtcbiAgb2JqZWN0LWZpdDogY292ZXIgIWltcG9ydGFudDtcbiAgb2JqZWN0LXBvc2l0aW9uOiB0b3AgcmlnaHQgIWltcG9ydGFudDtcbn1cblxuLnUtZm9jdXMtcG9pbnQtY2VudGVyLWxlZnQge1xuICBvYmplY3QtZml0OiBjb3ZlciAhaW1wb3J0YW50O1xuICBvYmplY3QtcG9zaXRpb246IGNlbnRlciBsZWZ0ICFpbXBvcnRhbnQ7XG59XG5cbi51LWZvY3VzLXBvaW50LWNlbnRlci1jZW50ZXIge1xuICBvYmplY3QtZml0OiBjb3ZlciAhaW1wb3J0YW50O1xuICBvYmplY3QtcG9zaXRpb246IGNlbnRlciBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLnUtZm9jdXMtcG9pbnQtY2VudGVyLXJpZ2h0IHtcbiAgb2JqZWN0LWZpdDogY292ZXIgIWltcG9ydGFudDtcbiAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQgIWltcG9ydGFudDtcbn1cblxuLnUtZm9jdXMtcG9pbnQtYm90dG9tLWNlbnRlciB7XG4gIG9iamVjdC1maXQ6IGNvdmVyICFpbXBvcnRhbnQ7XG4gIG9iamVjdC1wb3NpdGlvbjogYm90dG9tIGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG4udS1mb2N1cy1wb2ludC1ib3R0b20tbGVmdCB7XG4gIG9iamVjdC1maXQ6IGNvdmVyICFpbXBvcnRhbnQ7XG4gIG9iamVjdC1wb3NpdGlvbjogYm90dG9tIGxlZnQgIWltcG9ydGFudDtcbn1cblxuLnUtZm9jdXMtcG9pbnQtYm90dG9tLXJpZ2h0IHtcbiAgb2JqZWN0LWZpdDogY292ZXIgIWltcG9ydGFudDtcbiAgb2JqZWN0LXBvc2l0aW9uOiBib3R0b20gcmlnaHQgIWltcG9ydGFudDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0JBU0UtTElOS1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIE1ha2VzIGl0IHBvc3NpYmxlIHRvIHN0eWxlIGFyYml0cmFyeSBlbGVtZW50cyBhbmQgY29tcG9uZW50cyBhcyBpbmxpbmUgbGluay5cbiAqIFsxXSBSZXNldCBhbGwgcG9zc2libGUgdmVuZG9yIGJ1dHRvbiBzdHlsZXMgZXhjZXB0IGZvY3VzIHN0eWxlcy5cbiAqIFsyXSBBZGQgdGhlIHNoYXJlZCBsaW5rIHN0eWxlcyB0byB0aGUgdXRpbGl0eS5cbiAqIFszXSBNYWtlIHN1cmUgdG8gYWx3YXlzIGlubGluZSB0aGUgZWxlbWVudC5cbiAqIFs0XSBSZXNldCBzdWJtaXQgaW5wdXQgc3R5bGVzLlxuICovXG4udS1iYXNlLWxpbmsge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiBbMV0gKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gIC8qIFsyXSAqL1xuICAvKiBbMl0gKi9cbiAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7IC8qIFszXSAqL1xufVxuLnUtYmFzZS1saW5rOmhvdmVyIHtcbiAgLyogWzJdICovXG59XG4udS1iYXNlLWxpbms6Zm9jdXMge1xuICAvKiBbMl0gKi9cbn1cbi51LWJhc2UtbGluazphY3RpdmUge1xuICAvKiBbMl0gKi9cbn1cbi51LWJhc2UtbGlua1t0eXBlPXN1Ym1pdF0ge1xuICBhcHBlYXJhbmNlOiBub25lOyAvKiBbNF0gKi9cbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIFs0XSAqL1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSEVBRElOR1NcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBIZWFkaW5ncyAx4oCTNidzIGNvcnJlc3BvbmRpbmcgY2xhc3NlcyBmb3IgZG91YmxlLXN0cmFuZGVkIGhlYWRpbmcgaGllcmFyY2h5OlxuICogaHR0cHM6Ly9jc3N3aXphcmRyeS5jb20vMjAxMi8wMi9wcmFnbWF0aWMtcHJhY3RpY2FsLWZvbnQtc2l6aW5nLWluLWNzc1xuICpcbiAqIFVzZSB0aGVzZSBoZWxwZXIgY2xhc3NlcyB0byBjYXVzZSBoZWFkaW5nIGVsZW1lbnRzIHRvIGFkb3B0IHRoZSBmb250LXNpemUgb2ZcbiAqIGFub3RoZXIgcmVzcGVjdGl2ZSBoZWFkaW5nIGxldmVsLCBlLmcuOlxuICpcbiAqIGA8aDMgY2xhc3M9XCJ1LWgxXCI+U2VtYW50aWMgaDMsIGxvb2tzIGxpa2UgaDE8aDM+YFxuICpcbiAqL1xuLnUtaDEge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWNvbG9uLXNwYWNlLWFmdGVyICovXG4gIGZvbnQtc2l6ZTogMi4wNjI1cmVtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjIgIWltcG9ydGFudDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICAudS1oMSB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1jb2xvbi1zcGFjZS1hZnRlciAqL1xuICAgIGZvbnQtc2l6ZTogMi4zNzVyZW0gIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDogMS4yICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgxcHgpIHtcbiAgLnUtaDEge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtY29sb24tc3BhY2UtYWZ0ZXIgKi9cbiAgICBmb250LXNpemU6IDIuNzVyZW0gIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDogMS4yICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnUtaDIge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWNvbG9uLXNwYWNlLWFmdGVyICovXG4gIGZvbnQtc2l6ZTogMS43NXJlbSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMS4yICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgLnUtaDIge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtY29sb24tc3BhY2UtYWZ0ZXIgKi9cbiAgICBmb250LXNpemU6IDJyZW0gIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDogMS4yICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgxcHgpIHtcbiAgLnUtaDIge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtY29sb24tc3BhY2UtYWZ0ZXIgKi9cbiAgICBmb250LXNpemU6IDIuMjVyZW0gIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDogMS4yICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnUtaDMge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWNvbG9uLXNwYWNlLWFmdGVyICovXG4gIGZvbnQtc2l6ZTogMS40Mzc1cmVtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjIgIWltcG9ydGFudDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICAudS1oMyB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1jb2xvbi1zcGFjZS1hZnRlciAqL1xuICAgIGZvbnQtc2l6ZTogMS42ODc1cmVtICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMiAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIC51LWgzIHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWNvbG9uLXNwYWNlLWFmdGVyICovXG4gICAgZm9udC1zaXplOiAxLjg3NXJlbSAhaW1wb3J0YW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjIgIWltcG9ydGFudDtcbiAgfVxufVxuXG4udS1oNCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtY29sb24tc3BhY2UtYWZ0ZXIgKi9cbiAgZm9udC1zaXplOiAxLjI1cmVtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjIgIWltcG9ydGFudDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MjFweCkge1xuICAudS1oNCB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1jb2xvbi1zcGFjZS1hZnRlciAqL1xuICAgIGZvbnQtc2l6ZTogMS40Mzc1cmVtICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMiAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIC51LWg0IHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWNvbG9uLXNwYWNlLWFmdGVyICovXG4gICAgZm9udC1zaXplOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDogMS4yICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnUtaDUge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWNvbG9uLXNwYWNlLWFmdGVyICovXG4gIGZvbnQtc2l6ZTogMS4yNXJlbSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMS4yICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzIxcHgpIHtcbiAgLnUtaDUge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtY29sb24tc3BhY2UtYWZ0ZXIgKi9cbiAgICBmb250LXNpemU6IDEuNDM3NXJlbSAhaW1wb3J0YW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjIgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyODFweCkge1xuICAudS1oNSB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1jb2xvbi1zcGFjZS1hZnRlciAqL1xuICAgIGZvbnQtc2l6ZTogMS41cmVtICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMiAhaW1wb3J0YW50O1xuICB9XG59XG5cbi51LWg2IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1jb2xvbi1zcGFjZS1hZnRlciAqL1xuICBmb250LXNpemU6IDFyZW0gIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDEuNSAhaW1wb3J0YW50O1xufVxuXG4udS1oMSxcbi51LWgyLFxuLnUtaDMsXG4udS1oNCxcbi51LWg1LFxuLnUtaDYge1xuICBkaXNwbGF5OiBibG9jaztcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG9yZGVyL29yZGVyICovXG4gIG1hcmdpbi1ib3R0b206IDI0cHggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbn1cbi8qIFsxXSAqL1xuW2RhdGEtdGhlbWU9YnJhbmRdIC51LWgxLFxuW2RhdGEtdGhlbWU9YnJhbmRdIC51LWgyLFxuW2RhdGEtdGhlbWU9YnJhbmRdIC51LWgzLFxuW2RhdGEtdGhlbWU9YnJhbmRdIC51LWg0LFxuW2RhdGEtdGhlbWU9YnJhbmRdIC51LWg1LFxuW2RhdGEtdGhlbWU9YnJhbmRdIC51LWg2IHtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAjT0JKRUNULUZJVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcbiAqIFsxXSBTY2FsZSB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiBhIHJlcGxhY2VtZW50IGVsZW1lbnQgKGUuZy4gYDxpbWc+YCBvclxuICogYDx2aWRlbz5gKSB0byBpdHMgY29udGFpbmVyIGRpbWVuc2lvbnMuXG4gKi9cbi51LW9iamVjdC1maXQtY29udGFpbiB7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW4gIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCU7IC8qIFsxXSAqL1xuICBoZWlnaHQ6IDEwMCU7IC8qIFsxXSAqL1xufVxuXG4udS1vYmplY3QtZml0LWNvdmVyIHtcbiAgb2JqZWN0LWZpdDogY292ZXIgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCU7IC8qIFsxXSAqL1xuICBoZWlnaHQ6IDEwMCU7IC8qIFsxXSAqL1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjU0hBTUVcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyoqXG4gKiBIYWNreSwgbmFzdHkgY29kZS4gVGhlc2UgYml0cyBoYXZlIHRvIGJlIHJlcGFpcmVkIVxuICpcbiAqIEd1aWRlbGluZXM6XG4gKiAtIFRpY2tldCBSZWZlcmVuY2VcbiAqIC0gRG9jdW1lbnQgd2h5IHRoaXMgZml4IGlzIG5lZWRlZFxuICovXG4vKipcbiAqIFRoaXMgQ1NTIGN1c3RvbSBwcm9wZXJ0eSBwcm92aWRlcyB0aGUgc2VsZWN0b3JzIGxpc3QgZm9yIGBmbG9hdC1ncmlkLmpzYC5cbiAqIFNpbmNlIHRoZSBsaXN0IGlzIG9ubHkgY29tcGxldGUgYWZ0ZXIgdGhlIGBmbG9hdC1ncmlkLWFyZWFgIG1peGluIGhhcyBiZWVuXG4gKiBwcm9jZXNzZWQgZm9yIGFsbCBGbG9hdCBHcmlkIGNvbXBvbmVudHMsIHdlIGNob29zZSAnX3NoYW1lLnNjc3MnIGFzIGl0c1xuICogbG9jYXRpb24uXG4gKi9cbi5vLWZsb2F0LWdyaWQge1xuICAtLWZsb2F0LWdyaWQtc2VsZWN0b3JzOiAuanMtZW5hYmxlLTNyZC1wYXJ0eS1mbG9hdC1ncmlkICNjY2MtaWNvbiwgLmpzLWVuYWJsZS0zcmQtcGFydHktZmxvYXQtZ3JpZCAjbWVyY3VyeS13aWRnZXQsIC5jLWZsb2F0aW5nLWJ1dHRvbiwgLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX19maWx0ZXItYmFyLCAuYy1hY3Rpb24tYnV0dG9ucy1jb250YWluZXI7XG59XG5cbi8qKlxuICogV2hlbiBgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsYCBpcyBhcHBsaWVkLCB0aGUgZm9jdXMgb3V0bGluZSBpcyBub3QgZGlzcGxheWVkXG4gKiBmb3IgYnV0dG9ucyB0aGF0IGhhdmUgYm9yZGVyIGFwcGxpZWQgKG5vdCBzZWNvbmRhcnkpLlxuICogVGhpcyBvbmx5IG9jY3VycyBpbiBTYWZhcmkuXG4gKiBCeSBsaW1pdGluZyB0aGUgdHJhbnNpdGlvbiB0byByZWxldmFudCBwcm9wZXJ0aWVzIChiZy1jb2xvciwgdHJhbnNmb3JtKSBmaXhlcyB0aGUgaXNzdWUgYXMgdGhpc1xuICogaXMgdGhlIG1haW4gcHJvcGVydHkgdGhhdCBuZWVkcyBhIHRyYW5zaXRpb24uXG4gKi9cbkBzdXBwb3J0cyAoLXdlYmtpdC1oeXBoZW5zOiBub25lKSB7XG4gIC5jLWJ0biB7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgdHJhbnNmb3JtO1xuICB9XG59XG5cbi8qKlxuICogVXNlIHByb3BlciBsaW5lLWhlaWdodCBmb3IgdGV4dC5cbiAqIGxpbmUtaGVpZ2h0IHZhcmlhYmxlcyBhcmUgdXNlZCBmb3IgbXVsdGlwbGUgc2l6ZSBhbmQgc3BhY2luZyBjYWxjdWxhdGlvbnMsXG4gKiB0aGVyZWZvcmUgY2FuJ3QgYmUgdW5pdGxlc3MuXG4gKi9cbi5jLWJ0bl9fdGV4dCxcbi5jLWJ1dHRvbi1ncm91cF9fbGFiZWwsXG4uYy1saW5rX19ib2R5IHtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi8qKlxuICogRW5zdXJlIHByb3BlciBjaXJjdWxhciBzaGFwZS5cbiAqIE90aGVyIHByb3BlcnRpZXMgdGhhdCBkZXRlcm1pbmUgdGhlIGhlaWdodCBkb2VzIG5vdCByZXN1bHQgaW4gMToxIHJhdGlvLlxuICovXG4uYy1idG4tLWFjdGlvbiB7XG4gIG1pbi1oZWlnaHQ6IHZhcigtLWJ1dHRvbi1oZWlnaHQpO1xufVxuXG4vKipcbiAqIERpc2FibGUgb3V0bGluZSBvbiB0aHVtYiB0byBhdm9pZCByZW5kZXJpbmcgaXNzdWVzIHdoaWxlIGRyYWdnaW5nLlxuICovXG5Ac3VwcG9ydHMgKC13ZWJraXQtaHlwaGVuczogbm9uZSkge1xuICAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyOm5vdChbZGlzYWJsZWRdKSAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyX190aHVtYjo6YmVmb3JlIHtcbiAgICBvdXRsaW5lOiAwICFpbXBvcnRhbnQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgaXRjc3Mvbm8tYXQtaW1wb3J0YW50ICovXG4gIH1cbn0iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQk9YLVNJWklOR1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogTW9yZSBzZW5zaWJsZSBkZWZhdWx0IGJveC1zaXppbmc6XG4gKiBjc3MtdHJpY2tzLmNvbS9pbmhlcml0aW5nLWJveC1zaXppbmctcHJvYmFibHktc2xpZ2h0bHktYmV0dGVyLWJlc3QtcHJhY3RpY2VcbiAqIFdlIGFyZSBvdmVycmlkaW5nIG1vZGVybi1ub3JtYWxpemUncyBvcGluaW9uYXRlZCBib3gtc2l6aW5nIHJ1bGVzLlxuICovXG5cbmh0bWwge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4qIHtcblxuXHQmLFxuXHQmOjpiZWZvcmUsXG5cdCY6OmFmdGVyIHtcblx0XHRib3gtc2l6aW5nOiBpbmhlcml0O1xuXHR9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNSRVNFVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogQmVzaWRlcyB1c2luZyBub3JtYWxpemUuY3NzLCBpdCBpcyBvZnRlbiBhZHZhbnRhZ2VvdXMgdG8gcmVtb3ZlIGFsbCBtYXJnaW5zXG4gKiBmcm9tIGNlcnRhaW4gZWxlbWVudHMuXG4gKi9cblxuYm9keSxcbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbnAsXG5ibG9ja3F1b3RlLFxucHJlLFxuZGwsXG5kZCxcbm9sLFxudWwsXG5mb3JtLFxuZmllbGRzZXQsXG5sZWdlbmQsXG5maWd1cmUsXG50YWJsZSxcbnRoLFxudGQsXG5jYXB0aW9uLFxuaHIge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFNvbWUgYnJvd3NlcnMgaGF2ZSB3ZWlyZCBkZWZhdWx0IHN0eWxlcyBmb3IgdGhlIDxmaWVsZHNldD4gZWxlbWVudC5cbiAqIEUuZy4gQ2hyb21lIGhhcyBgbWluLXdpZHRoOiAtd2Via2l0LW1pbi1jb250ZW50O2AgYXMgZGVmYXVsdCBzdHlsZS4gV2VcbiAqIGRlZmluaXRlbHkgZG9uJ3Qgd2FudCB0aGF0LCBzbyB3ZSBleHBsaWNpdGx5IHNldCBpdCB0byBgYXV0b2AgaGVyZS5cbiAqL1xuZmllbGRzZXQge1xuICAgIG1pbi13aWR0aDogYXV0bztcbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNTSEFSRURcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFdoZXJlIGBtYXJnaW4tYm90dG9tYCBpcyBjb25jZXJuZWQsIHRoaXMgdmFsdWUgd2lsbCBiZSB0aGUgc2FtZSBhcyB0aGVcbiAqIGAkR0xPQkFMLUxJTkUtSEVJR0hUYC4gVGhpcyBhbGxvd3MgdXMgdG8ga2VlcCBhIGNvbnNpc3RlbnQgdmVydGljYWwgcmh5dGhtLlxuICpcbiAqIGh0dHBzOi8vY3Nzd2l6YXJkcnkuY29tLzIwMTIvMDYvc2luZ2xlLWRpcmVjdGlvbi1tYXJnaW4tZGVjbGFyYXRpb25zXG4gKi9cblxudWwsXG5vbCxcbmRsLFxuYmxvY2txdW90ZSxcbnAsXG5hZGRyZXNzLFxuaHIsXG50YWJsZSxcbnByZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogJEdMT0JBTC1TUEFDSU5HLVVOSVQ7XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjRk9OVC1GQUNFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQHVzZSBcInNhc3M6bWV0YVwiO1xuQHVzZSBcInNhc3M6bWFwXCI7XG5cbi8vIEJhc2UgZm9udFxuXG4vLyBWYXJpYWJsZSBmb250XG5AaWYgKG1ldGEudmFyaWFibGUtZXhpc3RzKFwiQkFTRS1GT05ULVZBUklBQkxFLVZBUklBVElPTi1BWElTXCIpKSB7XG4gICAgQGluY2x1ZGUgZm9udC1mYWNlKFxuICAgICAgICAkZm9udC1uYW1lOiAkQkFTRS1GT05ULFxuICAgICAgICAkZmlsZS1uYW1lOiBpZihtZXRhLnZhcmlhYmxlLWV4aXN0cyhCQVNFLUZPTlQtRklMRS1OQU1FKSwgJEJBU0UtRk9OVC1GSUxFLU5BTUUsIG51bGwpLFxuICAgICAgICAkd2VpZ2h0OiAgICBtYXAuZ2V0KCRCQVNFLUZPTlQtVkFSSUFCTEUtVkFSSUFUSU9OLUFYSVMsIFwid2VpZ2h0XCIpLFxuICAgICAgICAkc3RyZXRjaDogICBtYXAuZ2V0KCRCQVNFLUZPTlQtVkFSSUFCTEUtVkFSSUFUSU9OLUFYSVMsIFwic3RyZXRjaFwiKSxcbiAgICAgICAgJGZvcm1hdDogICAgXCJ3b2ZmMi12YXJpYXRpb25zXCIsXG4gICAgICAgICRyZXZpc2lvbjogICRGT05ULVJFVklTSU9OLFxuICAgICk7XG59IEBlbHNlIHtcbiAgICAvLyBGb250XG4gICAgQGVhY2ggJGZhY2UsICR3ZWlnaHQgaW4gJEJBU0UtRk9OVC1WQVJJQU5UUyB7XG5cbiAgICAgICAgQGluY2x1ZGUgZm9udC1mYWNlKFxuICAgICAgICAgICAgJGZvbnQtbmFtZTogJEJBU0UtRk9OVCxcbiAgICAgICAgICAgICRmYWNlOiAgICAgIFwiLVwiICsgJGZhY2UsXG4gICAgICAgICAgICAkd2VpZ2h0OiAgICAkd2VpZ2h0LFxuICAgICAgICAgICAgJHJldmlzaW9uOiAgJEZPTlQtUkVWSVNJT05cbiAgICAgICAgKTtcblxuICAgIH1cbn1cblxuLy8gQWx0IGZvbnRcblxuLy8gVmFyaWFibGUgZm9udFxuQGlmIChtZXRhLnZhcmlhYmxlLWV4aXN0cyhcIkFMVC1GT05ULVZBUklBQkxFLVZBUklBVElPTi1BWElTXCIpKSB7XG4gICAgQGluY2x1ZGUgZm9udC1mYWNlKFxuICAgICAgICAkZm9udC1uYW1lOiAkQUxULUZPTlQsXG4gICAgICAgICRmaWxlLW5hbWU6IGlmKG1ldGEudmFyaWFibGUtZXhpc3RzKEFMVC1GT05ULUZJTEUtTkFNRSksICRBTFQtRk9OVC1GSUxFLU5BTUUsIG51bGwpLFxuICAgICAgICAkd2VpZ2h0OiAgICBtYXAuZ2V0KCRBTFQtRk9OVC1WQVJJQUJMRS1WQVJJQVRJT04tQVhJUywgXCJ3ZWlnaHRcIiksXG4gICAgICAgICRzdHJldGNoOiAgIG1hcC5nZXQoJEFMVC1GT05ULVZBUklBQkxFLVZBUklBVElPTi1BWElTLCBcInN0cmV0Y2hcIiksXG4gICAgICAgICRmb3JtYXQ6ICAgIFwid29mZjItdmFyaWF0aW9uc1wiLFxuICAgICAgICAkcmV2aXNpb246ICAkRk9OVC1SRVZJU0lPTixcbiAgICApO1xufSBAZWxzZSB7XG4gICAgLy8gRm9udFxuICAgIEBlYWNoICRmYWNlLCAkd2VpZ2h0IGluICRBTFQtRk9OVC1WQVJJQU5UUyB7XG5cbiAgICAgICAgQGluY2x1ZGUgZm9udC1mYWNlKFxuICAgICAgICAgICAgJGZvbnQtbmFtZTogJEFMVC1GT05ULFxuICAgICAgICAgICAgJGZhY2U6ICAgICAgXCItXCIgKyAkZmFjZSxcbiAgICAgICAgICAgICR3ZWlnaHQ6ICAgICR3ZWlnaHQsXG4gICAgICAgICAgICAkcmV2aXNpb246ICAkRk9OVC1SRVZJU0lPTlxuICAgICAgICApO1xuXG4gICAgfVxufVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0ZPTlQtRkFDRVxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRCQVNFLUZPTlQ6ICAgICAgICAgICBcIkNvbWljIFNhbnMgTVNcIiAhZGVmYXVsdDtcbiRCQVNFLUZPTlQtRkFMTEJBQ0tTOiBzYW5zLXNlcmlmICFkZWZhdWx0O1xuJEZPTlQtUEFUSDogICAgICAgICAgIFwiLi4vZm9udHMvZm9udHNcIiAhZGVmYXVsdDtcblxuJElDT04tRk9OVC1QQVRIOiAgICAgIFwiLi4vZm9udHMvaWNvbi1mb250c1wiICFkZWZhdWx0OyAvLyBbMV1cblxuLy8gVmFyaWFibGUgdG8gYmUgdXNlZCB0aHJvdWdob3V0IHRoZSBwcm9qZWN0LlxuJEJBU0UtRk9OVC1GQU1JTFk6ICAgICRCQVNFLUZPTlQsICRCQVNFLUZPTlQtRkFMTEJBQ0tTICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYWNlIG1peGluLlxuLy8vXG4vLy8gSnVzdCB1c2UgdGhpcyBtaXhpbiBpZiB5b3UgaGF2ZSBzZWxmLWhvc3RlZCBmb250cyBpbiB5b3VyIHByb2plY3RzLiBJZiB5b3Vcbi8vLyBhcmUgdXNpbmcgYSBzZXJ2aWNlIHN1Y2ggYXMgR29vZ2xlIEZvbnRzIG9yIGhhdmUgc3lzdGVtIGZvbnRzIGluY2x1ZGVkLCB5b3Vcbi8vLyBkb27igJl0IG5lZWQgdGhpcyBtaXhpbiBhbmQgdGhlIGFib3ZlIGRlY2xhcmVkIHZhcmlhYmxlcyBzdWZmaWNlLlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZm9udC1uYW1lIC0gU3BlY2lmaWVzIHdoaWNoIGZvbnQgZmFtaWx5IGlzIHVzZWQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRmaWxlLW5hbWUgW251bGxdIC0gU3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBmb250IGZpbGUuXG4vLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgc2V0LCB0aGUgZmlsZSBuYW1lIHdpbGwgbm90IGJlIGdlbmVyYXRlZCBmcm9tXG4vLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCRmb250LW5hbWVgIGFuZCBgJGZhY2VgLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZmlsZS1leHRlbnNpb24gW3dvZmYyXSAtIFNwZWNpZmllcyB0aGUgZmlsZSBleHRlbnNpb24gb2YgdGhlIGZvbnQgZmlsZS5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHBhdGggWyRGT05ULVBBVEhdIC0gU2V0IHRoZSBwYXRoIHRvIHRoZSBmb250IGZpbGVzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZmFjZSBbbnVsbF0gLSBDb250cm9scyB3aGljaCBmb250IGZpbGUgaXMgdG8gYmUgdGFrZW4gaW4gd2hpY2ggZm9udCBmYWNlLlxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyIHwgTGlzdH0gJHdlaWdodCBbbm9ybWFsXSAtIFNldCB0aGUgd2VpZ2h0IG9mIHRoZSBmb250IChlLmcuIG5vcm1hbCwgYm9sZCwgNDAwLCA3MDApLlxuLy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIHRoZSB3ZWlnaHQgdmFsdWUgcmFuZ2Ugb2YgYSB2YXJpYWJsZSBmb250IChlLmcuYDQwMCA3MDBgKS5cbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlciB8IExpc3R9ICRzdHJldGNoIFtudWxsXSAtIFNldCB0aGUgc3RyZXRjaCB2YWx1ZShzKSBvZiBhIHZhcmlhYmxlIGZvbnQgKGUuZy5gMTAwJSAxMzAlYCkuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHlsZSBbbm9ybWFsXSAtIFNldCB0aGUgc3R5bGUgb2YgdGhlIGZvbnQgKGUuZy4gbm9ybWFsLCBpdGFsaWMpLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZm9ybWF0IFt3b2ZmMl0gLSBTcGVjaWZpZXMgdGhlIGZvcm1hdCBvZiB0aGUgZm9udCBmaWxlIChlLmcuIGB3b2ZmMmAsIGB3b2ZmMi12YXJpYXRpb25zYCkuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkcmV2aXNpb24gW2ZhbHNlXSAtIFNldCB0aGUgcXVlcnkgc3RyaW5nIHRvIHVwZGF0ZSBjYWNoZWQgZm9udCBmaWxlcy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW3N3YXBdIC0gU3BlY2lmaWVzIGhvdyBhIGZvbnQgc2hvdWxkIGJlIGRpc3BsYXllZCB3aGVuIGl0IGlzIGRvd25sb2FkZWRcbi8vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHJlYWR5IHRvIHVzZSAoWyBhdXRvIHwgYmxvY2sgfCBzd2FwIHwgZmFsbGJhY2sgfCBvcHRpb25hbCBdKS5cbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gICAgIEBpbmNsdWRlIGZvbnQtZmFjZShcbi8vLyAgICAgICAgICRmb250LW5hbWU6IFwiY3VzdG9tLWZvbnRcIixcbi8vLyAgICAgICAgICRmYWNlOiAgICAgIFwiLXJlZ3VsYXJcIixcbi8vLyAgICAgICAgICR3ZWlnaHQ6ICAgIDQwMCxcbi8vLyAgICAgKTtcbi8vL1xuLy8vICAgICAvLyBAZm9udC1mYWNlIHtcbi8vLyAgICAgLy8gICAgIGZvbnQtZmFtaWx5OiAnY3VzdG9tLWZvbnQnO1xuLy8vICAgICAvLyAgICAgc3JjOiB1cmwoJy4uL2ZvbnRzL2ZvbnRzL2N1c3RvbS1mb250LXJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG4vLy8gICAgIC8vICAgICBmb250LXdlaWdodDogNDAwO1xuLy8vICAgICAvLyAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuLy8vICAgICAvLyAgICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuLy8vICAgICAvLyB9XG4vLy9cbi8vLyAgICAgQGluY2x1ZGUgZm9udC1mYWNlKFxuLy8vICAgICAgICAgJGZvbnQtbmFtZTogXCJjdXN0b20tdmFyaWFibGUtZm9udFwiLFxuLy8vICAgICAgICAgJGZpbGUtbmFtZTogXCJjdXN0b20tdmFyaWFibGUtZm9udFwiLFxuLy8vICAgICAgICAgJHdlaWdodDogICAgNDAwIDcwMCxcbi8vLyAgICAgICAgICRzdHJldGNoOiAgIDEwMCUgMTMwJSxcbi8vLyAgICAgICAgICRmb3JtYXQ6ICAgIHdvZmYyLXZhcmlhdGlvbnMsXG4vLy8gICAgICk7XG4vLy9cbi8vLyAgICAgLy8gQGZvbnQtZmFjZSB7XG4vLy8gICAgIC8vICAgICBmb250LWZhbWlseTogXCJjdXN0b20tdmFyaWFibGUtZm9udFwiO1xuLy8vICAgICAvLyAgICAgc3JjOiB1cmwoXCIuLi9mb250cy9mb250cy9jdXN0b20tdmFyaWFibGUtZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMi12YXJpYXRpb25zXCIpO1xuLy8vICAgICAvLyAgICAgZm9udC13ZWlnaHQ6IDQwMCA3MDA7XG4vLy8gICAgIC8vICAgICBmb250LXN0cmV0Y2g6IDEwMCUgMTMwJTtcbi8vLyAgICAgLy8gICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbi8vLyAgICAgLy8gICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbi8vLyAgICAgLy8gfVxuQG1peGluIGZvbnQtZmFjZShcbiAgICAkZm9udC1uYW1lLFxuICAgICRmaWxlLW5hbWU6IG51bGwsXG4gICAgJGZpbGUtZXh0ZW5zaW9uOiBcIndvZmYyXCIsXG4gICAgJHBhdGg6ICRGT05ULVBBVEgsXG4gICAgJGZhY2U6IG51bGwsXG4gICAgJHdlaWdodDogbm9ybWFsLFxuICAgICRzdHJldGNoOiBudWxsLFxuICAgICRzdHlsZTogbm9ybWFsLFxuICAgICRmb3JtYXQ6IFwid29mZjJcIixcbiAgICAkcmV2aXNpb246IGZhbHNlLFxuICAgICRkaXNwbGF5OiBzd2FwLFxuKSB7XG5cbiAgICAvLyBTZXQgdGhlIHF1ZXJ5IHN0cmluZyB0byB1cGRhdGUgY2FjaGVkIGZvbnQgZmlsZXMuXG4gICAgJF9yZXZpc2lvbjogaWYoJHJldmlzaW9uLCBcIj92PSN7JHJldmlzaW9ufVwiLCBudWxsKTtcblxuICAgICRmaWxlOiBpZigkZmlsZS1uYW1lLCAkZmlsZS1uYW1lLCAjeyRmb250LW5hbWV9I3skZmFjZX0pICsgXCIuI3skZmlsZS1leHRlbnNpb259XCI7XG5cbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LW5hbWU7XG4gICAgICAgIHNyYzogdXJsKFwiI3skcGF0aH0vI3skZmlsZX0jeyRfcmV2aXNpb259XCIpIGZvcm1hdChcIiN7JGZvcm1hdH1cIik7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuICAgICAgICBmb250LXN0cmV0Y2g6ICRzdHJldGNoO1xuICAgICAgICBmb250LXN0eWxlOiAkc3R5bGU7XG4gICAgICAgIGZvbnQtZGlzcGxheTogJGRpc3BsYXk7XG4gICAgfVxuXG59XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjRk9OVFNcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vLyBAc2Fzcy1leHBvcnQtc2VjdGlvbj1cImZvbnRTZXR0aW5nc1wiXG5cbi8vIFRoZSBmb250LXdlaWdodHMgYXJlIGRlZmluZWQgYXMgbnVtZXJpY2FsIHZhbHVlcyBpbnN0ZWFkIG9mIG5hbWVkIHZhbHVlc1xuLy8gaW4gb3JkZXIgdG8gYXZvaWQgYnJvd3NlciBtYXBwaW5nIGlzc3Vlc1xuLy8gKHNlZSBodHRwczovL3d3dy53ZWJ0eXBlLmNvbS9pbmZvL2FydGljbGVzL2ZvbnRzLXdlaWdodHMvKS5cbi8vXG4vLyBBcyB0aGUgdmFsdWVzIGNhbiBkaWZmZXIgdG8gZWFjaCBmb250IHRoZXNlIHZhbHVlcyBzaG91bGQgYmUgY2hlY2tlZFxuLy8gYW5kIG1vZGlmaWVkIHBlciBicmFuZC5cblxuJEdMT0JBTC1GT05ULVdFSUdIVC1MSUdIVDogICAzMDAgIWRlZmF1bHQ7XG4kR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVI6IDQwMCAhZGVmYXVsdDtcbiRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRDogICAgNzAwICFkZWZhdWx0O1xuXG4vLyBVc2UgcmVsYXRpdmUgdmFsdWUuIFN0YXRpYyB2YWx1ZSBpbiBzdHlsZWd1aWRlIGlzIGAwLjc1cHhgXG4kR0xPQkFMLUZPTlQtTEVUVEVSLVNQQUNJTkc6IDAuMDVlbSAhZGVmYXVsdDtcblxuJEJBU0UtRk9OVDogICAgICAgICAgICAgICAgICBcInNrb2RhLW5leHRcIiAhZGVmYXVsdDtcbiRCQVNFLUZPTlQtRkFMTEJBQ0tTOiAgICAgICAgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kQkFTRS1GT05ULVZBUklBTlRTOiAoXG4gICAgXCJib2xkXCI6ICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCxcbiAgICBcInJlZ3VsYXJcIjogJEdMT0JBTC1GT05ULVdFSUdIVC1SRUdVTEFSLFxuICAgIFwibGlnaHRcIjogICAkR0xPQkFMLUZPTlQtV0VJR0hULUxJR0hULFxuKSAhZGVmYXVsdDtcblxuJEZPTlQtUkVWSVNJT046ICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4vLyBAZW5kLXNhc3MtZXhwb3J0LXNlY3Rpb25cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNJQ09OLUZPTlRTXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gQHNhc3MtZXhwb3J0LXNlY3Rpb249XCJpY29uRm9udFNldHRpbmdzXCJcbiRJQ09OLUZPTlQ6IFwiYnJvbnNvbi1za29kYVwiICFkZWZhdWx0O1xuXG4vLyBUaGlzIGNyZWF0ZXMgc2l6ZS1tb2RpZmllcnMuIFRoZSBrZXkgaXMgdXNlZCBhcyBhIG1vZGlmaWVyIGZvciBjaGFuZ2luZyB0aGVcbi8vIGljb24tc2l6ZSwgZS5nLiBgLmMtaWNvbi5jLWljb24tLXNtYWxsYC5cbi8vICdtZWRpdW0nIGlzIHRoZSBkZWZhdWx0IGFuZCBubyBtb2RpZmllciBpcyBjcmVhdGVkIChubyBgLmMtaWNvbi0tbWVkaXVtYCkuXG4kSUNPTi1TSVpFUzogKFxuICAgIHh4c21hbGw6IDIwcHgsXG4gICAgeHNtYWxsOiAgMjRweCxcbiAgICBzbWFsbDogICAzMnB4LFxuICAgIG1lZGl1bTogIDQwcHgsXG4gICAgbGFyZ2U6ICAgNDhweCxcbiAgICB4bGFyZ2U6ICA2NHB4LFxuICAgIHh4bGFyZ2U6IDk2cHgsXG4pICFkZWZhdWx0O1xuXG5cblxuLy8gUHJvdmlkZSBhIG1hcCB3aXRoIHNpemVzIGZvciByb3VuZCBpY29ucy4gSXRzIHZhbHVlcyBhcmUgdGhlIG92ZXJhbGwgc2l6ZVxuLy8gb2YgdGhlIGljb24gcGF0dGVybi5cbiRJQ09OLVJPVU5ELUZVTEwtU0laRVM6IChcbiAgICB4eHNtYWxsOiAzMnB4LFxuICAgIHhzbWFsbDogIDMycHgsXG4gICAgc21hbGw6ICAgNDBweCxcbiAgICBtZWRpdW06ICA0NHB4LFxuICAgIGxhcmdlOiAgIDU2cHgsXG4gICAgeGxhcmdlOiAgNjhweCxcbiAgICB4eGxhcmdlOiAxMDRweCxcbikgIWRlZmF1bHQ7XG5cbi8vIFByb3ZpZGUgYSBtYXAgd2l0aCBzaXplcyBmb3Igc3F1YXJlIGljb25zLiBJdHMgdmFsdWVzIGFyZSB0aGUgb3ZlcmFsbCBzaXplXG4vLyBvZiB0aGUgaWNvbiBwYXR0ZXJuLlxuJElDT04tU1FVQVJFLUZVTEwtU0laRVM6IChcbiAgICB4eHNtYWxsOiAzMnB4LFxuICAgIHhzbWFsbDogIDMycHgsXG4gICAgc21hbGw6ICAgNDBweCxcbiAgICBtZWRpdW06ICA0NHB4LFxuICAgIGxhcmdlOiAgIDU2cHgsXG4gICAgeGxhcmdlOiAgNjhweCxcbiAgICB4eGxhcmdlOiAxMDRweCxcbikgIWRlZmF1bHQ7XG5cblxuXG4vLyBHZW5lcmFsIGljb24gc3R5bGVzLlxuJElDT04tQ09MT1I6IGN1cnJlbnRDb2xvciAhZGVmYXVsdDtcblxuLy8gSWNvbiBib3JkZXIgc3R5bGVzLlxuJElDT04tQk9SREVSLVdJRFRIOiAxcHggIWRlZmF1bHQ7XG4kSUNPTi1CT1JERVItU1RZTEU6IHNvbGlkICFkZWZhdWx0O1xuJElDT04tQk9SREVSLUNPTE9SOiBjdXJyZW50Q29sb3IgIWRlZmF1bHQ7XG5cbi8vIFNxdWFyZSBpY29uIHN0eWxlcy5cbiRJQ09OLVNRVUFSRS1SQURJVVM6IDAgIWRlZmF1bHQ7XG5cbi8vIFJvdW5kIGljb24gc3R5bGVzLlxuJElDT04tUk9VTkQtUkFESVVTOiA1MCUgIWRlZmF1bHQ7XG5cblxuXG4vLy8gVG8gaW5jbHVkZSBkaWZmZXJlbnQgY29tcGxleGl0aWVzLCBlbmFibGUgdGhpcyB2YXJpYWJsZSBieSBwcm92aWRpbmcgYSBtYXAuXG4vLy8gVGhlIGxpc3QgZW50cmllcyBhcmUgdGhlIGZpbGUtbmFtZSdzIHN1ZmZpeGVzLlxuLy8vIFRvIGRpc2FibGUgZnVuY3Rpb24sIHNldCB2YWx1ZSB0byBgbnVsbGAuXG4vLy9cbi8vLyBJZiBjb21wbGV4aXRpZXMgYXJlIHNldCwgb25seSBgc2ltcGxlYCBhbmQgYGNvbXBsZXhgIGFyZSBhbGxvd2VkLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuJElDT04tQ09NUExFWElUSUVTOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gVGhlIGNvbXBsZXhpdHkgY2FuIGFsc28gYmUgY29tYmluZWQgd2l0aCB0aGUgc2l6ZSwgaS5lLiB3aGVuIGFzc2lnbmluZyBhXG4vLy8gcGFydGljdWxhciBzaXplIG1vZGlmaWVyIGluIHRoZSBtYXJrdXAsIHRoZSBkaWZmZXJlbnQgY29tcGxleGl0eSBnZXRzIGFsc29cbi8vLyBhcHBsaWVkIGF1dG9tYXRpY2FsbHkuXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRJQ09OLUVOQUJMRS1TSVpFLUNPTVBMRVhJVFktQ09NQk86IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gVGhpcyBnZW5lcmF0ZXMgY2xhc3NlcyB3aXRoIHRoZSBjb21wbGV4aXR5IGFzIGEgbW9kaWZpZXIgdG8gZm9yY2UgdGhlXG4vLy8gY2hvc2VuIGNvbXBsZXhpdHkuXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRJQ09OLUVOQUJMRS1DT01QTEVYSVRZLUNMQVNTLU9WRVJXUklURTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBDb21iaW5lIHNpemVzIHdpdGggY29tcGxleGl0aWVzIChrZXk6IHNpemUsIHZhbHVlOiBjb21wbGV4aXR5KS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8gQHJlcXVpcmVzIGAkSUNPTi1FTkFCTEUtU0laRS1DT01QTEVYSVRZLUNPTUJPYCB0byBiZSBgdHJ1ZWAuXG4vLy8gQHR5cGUgTWFwXG4kSUNPTi1TSVpFLVRPLUNPTVBMRVhJVFktTUFQUElORzogbnVsbCAhZGVmYXVsdDtcblxuXG5cbi8vIE5hbWUgOiBwcmVmaXguXG4kSUNPTi1TVUJTRVRTOiAoXG4gICAgXCJzZW1hbnRpY1wiOiBcInNlbWFudGljLVwiLFxuICAgIFwiYnJhbmRcIjogIFwiY29udGVudC1cIixcbikgIWRlZmF1bHQ7XG5cbi8vIEBlbmQtc2Fzcy1leHBvcnQtc2VjdGlvblxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0lDT04tRk9OVFNcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AaW5jbHVkZSBmb250LWZhY2UoXG4gICAgJGZvbnQtbmFtZTogJElDT04tRk9OVCxcbiAgICAkcGF0aDogICAgICAkSUNPTi1GT05ULVBBVEgsXG4gICAgJHJldmlzaW9uOiAgJElDT04tRk9OVC1SRVZJU0lPTixcbiAgICAkZGlzcGxheTogICBibG9jayxcbik7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjRk9STVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFsxXSBSZW1vdmUgdXNlciBhZ2VudCBib3JkZXIgc3R5bGUuXG4gKiBbMl0gUmVtb3ZlIG5hdGl2ZSBzZWFyY2ggc3R5bGVzIGFzIHRoZXkgY2FuIG5vdCBiZSBjdXN0b21pemVkIGFuZFxuICogICAgIHZpc3VhbGx5IGNvbmZsaWN0cyB3aXRoIHRoZSByZXN0IG9mIGlucHV0cy5cbiAqL1xuZmllbGRzZXQge1xuICAgIGJvcmRlcjogMDsgLyogWzFdICovXG59XG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICBkaXNwbGF5OiBub25lOyAvKiBbMl0gKi9cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJTUFHRVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIEFsbCBvdXIgaW1hZ2VzIGFyZSBmbHVpZCwgdGh1cyBhbGwgZ2V0dGluZyBgbWF4LXdpZHRoOiAxMDAlYC5cbiAqIE5ldmVyIGV2ZXIgc2V0IGB3aWR0aGAgYW5kIGBoZWlnaHRgIGF0dHJpYnV0ZXMgaW4gSFRNTCBvbiBgPGltZz5gIGVsZW1lbnRzIVxuICpcbiAqIFsxXSBGbHVpZCBpbWFnZXMgZm9yIHJlc3BvbnNpdmUgcHVycG9zZXMuXG4gKiBbMl0gU2V0dGluZyBgdmVydGljYWwtYWxpZ25gIHJlbW92ZXMgdGhlIHdoaXRlc3BhY2UgdGhhdCBhcHBlYXJzIHVuZGVyIGBpbWdgXG4gKiAgICAgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBkcm9wcGVkIGludG8gYSBwYWdlIGFzLWlzLiBUaGlzIGlzIGEgYWZlclxuICogICAgIGFsdGVybmF0aXZlIHRvIHVzaW5nIGBkaXNwbGF5OiBibG9jaztgIGZvciB0aGUgYDxpbWc+YC5cbiAqIFszXSBWaXN1YWxseSBvZmZzZXQgYGFsdGAgdGV4dCBmcm9tIHN1cnJvdW5kaW5nIGNvcHkgKHVzZWZ1bCBpZiB0aGUgaW1hZ2UgbWF5XG4gKiAgICAgbm90IGxvYWQgcHJvcGVybHkpLlxuICovXG5pbWcge1xuICAgIG1heC13aWR0aDogMTAwJTsgLyogWzFdICovXG4gICAgZm9udC1zdHlsZTogaXRhbGljOyAvKiBbM10gKi8gLy8gQFRPRE86IEJST04tNDU3NlxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8qIFsyXSAqL1xufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0xJU1RTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBbMV0gQWxpZ24gdGhlIGJ1bGxldHMvbnVtYmVycyBvZiBsaXN0cyBob3Jpem9udGFsbHkgd2l0aCBzb3Vycm91bmRpbmcgY29udGVudC5cbiAqIFsyXSBSZW1vdmUgZXh0cmEgdmVydGljYWwgc3BhY2luZyB3aGVuIG5lc3RpbmcgbGlzdHMuXG4gKi9cbnVsLCBvbCB7XG4gICAgbWFyZ2luLWxlZnQ6ICRHTE9CQUwtU1BBQ0lORy1VTklUOyAvKiBbMV0gKi9cbn1cblxubGkge1xuXG4gICAgPiB1bCxcbiAgICA+IG9sIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzJdICovXG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjU01BTExcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFNtYWxscHJpbnQgdGV4dC5cbiAqL1xuXG4kU01BTEwtVEVYVC1TSVpFOiAkRlMtMiAhZGVmYXVsdDtcbiRTTUFMTC1URVhULUxJTkUtSEVJR0hUOiBub25lICFkZWZhdWx0O1xuJFNNQUxMLVRFWFQtRk9OVC1XRUlHSFQ6IG51bGwgIWRlZmF1bHQ7XG5cbnNtYWxsIHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkU01BTEwtVEVYVC1TSVpFLCAkU01BTEwtVEVYVC1MSU5FLUhFSUdIVCk7XG5cbiAgICBmb250LXdlaWdodDogJFNNQUxMLVRFWFQtRk9OVC1XRUlHSFQ7XG59XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjRk9OVC1TSVpFXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkB1c2UgXCJzYXNzOm1hdGhcIiBhcyAqO1xuXG4vLy8gQ3JlYXRlIGEgZnVsbHkgZm9ybWVkIHR5cGUgc3R5bGUgKHNpemluZyBhbmQgdmVydGljYWwgcmh5dGhtKSBieSBwYXNzaW5nIGluIGFcbi8vLyBzaW5nbGUgdmFsdWUuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciB8IFN0cmluZ30gJGZvbnQtc2l6ZSBbbnVsbF0gLSBUaGUgZm9udCBzaXplIGluIGBweGAgb3IgYXMgYSB1bml0LWxlc3MgQ1NTIGN1c3RvbSBwcm9wZXJ0eSAoZS5nLiBgdmFyKC0tZm9udC1zaXplKWApLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbGluZS1oZWlnaHQgW2F1dG9dIC0gVGhlIGxpbmUgaGVpZ2h0LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGltcG9ydGFudCBbZmFsc2VdIC0gV2hldGhlciB0aGUgc3R5bGVzIHNob3VsZCBiZSBmb3JjZWQgd2l0aCBgIWltcG9ydGFudGAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkc2NvcGVkIFskR0xPQkFMLVNDT1BFRF0gLSBXaGV0aGVyIHRoZSBgZm9udC1zaXplYCBzaG91bGQgYmUgY2FsY3VsYXRlZCBmb3Igc2NvcGVkIEJyb25zb24gc3R5bGVzLlxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vL1xuLy8vIHNjc3M6XG4vLy9cbi8vLyAgICAgLmZvbyB7XG4vLy8gICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTJweCk7XG4vLy8gICAgIH1cbi8vL1xuLy8vIFRoaXMgd2lsbCBnZW5lcmF0ZSBhIHJlbS1iYXNlZCBmb250LXNpemUsIGFzIHdlbGwgYXMgYSB1bml0LWxlc3MgbGluZS1oZWlnaHRcbi8vLyB3aGljaCB3aWxsIHBsYWNlIHRoZSBlbGVtZW50IG9uIHlvdXIgYmFzZWxpbmUsIGUuZy46XG4vLy9cbi8vLyBjc3M6XG4vLy9cbi8vLyAgICAgLmZvbyB7XG4vLy8gICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4vLy8gICAgICAgICBsaW5lLWhlaWdodDogMjtcbi8vLyAgICAgfVxuLy8vXG4vLy8gSWYgeW91IGRvIG5vdCB3YW50IHRvIGdlbmVyYXRlIGEgbGluZS1oZWlnaHQgYXV0b21hdGljYWxseSwgeW91XG4vLy8gc2ltcGx5IHBhc3MgaW4geW91ciBvd24gdmFsdWUgYXMgYSBzZWNvbmQgcGFyYW1ldGVyOlxuLy8vXG4vLy8gc2Nzczpcbi8vL1xuLy8vICAgICAuZm9vIHtcbi8vLyAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShcbi8vLyAgICAgICAgICAgICAkZm9udC1zaXplOiAgIDEycHgsXG4vLy8gICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAxLjUsXG4vLy8gICAgICAgICApO1xuLy8vICAgICB9XG4vLy9cbi8vLyBUaGlzIHdpbGwgeWllbGQ6XG4vLy9cbi8vLyBjc3M6XG4vLy9cbi8vLyAgICAgLmZvbyB7XG4vLy8gICAgICAgICBmb250LXNpemU6ICAgMC43NXJlbTtcbi8vLyAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4vLy8gICAgIH1cbi8vL1xuLy8vIFRoaXMgcGFyYW1ldGVyIGNhbiBiZSBhbnkgaW50ZWdlciwgYGluaGVyaXRgLCBvciBgbm9ybWFsYC4gSWYgeW91IGRvbid0IHdhbnRcbi8vLyBhIGxpbmUtaGVpZ2h0IGF0IGFsbCwgcGFzcyBpbiBhIHNlY29uZCBwYXJhbWV0ZXIgb2YgYGZhbHNlYDpcbi8vL1xuLy8vIHNjc3M6XG4vLy9cbi8vLyAgICAgLmZvbyB7XG4vLy8gICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4vLy8gICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAxMnB4LFxuLy8vICAgICAgICAgICAgICRsaW5lLWhlaWdodDogZmFsc2UsXG4vLy8gICAgICAgICApO1xuLy8vICAgICB9XG4vLy9cbi8vLyBUaGlzIHdpbGwgeWllbGQ6XG4vLy9cbi8vLyBjc3M6XG4vLy9cbi8vLyAgICAgLmZvbyB7XG4vLy8gICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4vLy8gICAgIH1cbi8vL1xuLy8vIEluc3RlYWQgb2YgYSBweCB2YWx1ZSB5b3UgY2FuIGFsc28gcGFzcyBhIENTUyBjdXN0b20gcHJvcGVydHkgd2l0aG91dCghKSBhIHVuaXQuXG4vLy8gRS5nLiBgMTJgID0gYDEycHhgXG4vLy9cbi8vLyBzY3NzOlxuLy8vXG4vLy8gICAgIC5mb28ge1xuLy8vICAgICAgICAgLS1mb250LXNpemU6ICN7c3RyaXAtdW5pdCgkR0xPQkFMLUZPTlQtU0laRSl9O1xuLy8vICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuLy8vICAgICAgICAgICAgICRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZSksXG4vLy8gICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiBmYWxzZSxcbi8vLyAgICAgICAgICk7XG4vLy8gICAgIH1cbi8vL1xuLy8vIFRoaXMgd2lsbCBjYWxjdWxhdGUgYSByZW0tYmFzZWQgZm9udC1zaXplOlxuLy8vXG4vLy8gY3NzOlxuLy8vXG4vLy8gICAgIC5mb28ge1xuLy8vICAgICAgICAgLS1mb250LXNpemU6IDEyO1xuLy8vICAgICAgICAgZm9udC1zaXplOiBjYWxjKHZhcigtLWZvbnQtc2l6ZSkgLyAxOCAqIDFyZW0pO1xuLy8vICAgICB9XG4vLy9cbi8vLyBGb3Igc2NvcGVkIHN0eWxlcyAod2hlbiBhIEJyb25zb24gY29tcG9uZW50IHNob3VsZCBiZSBhZGRlZCB0byBhIE5vbi1Ccm9uc29uIHBhZ2UpLFxuLy8vIHBhc3MgaW4gYCRzY29wZWQ6IHRydWVgLiBJbiBhbG1vc3QgYWxsIGNhc2VzLCB0aGlzIHNob3VsZCBiZSBjb250cm9sbGVkIGdsb2JhbGx5XG4vLy8gdmlhIGAkR0xPQkFMLVNDT1BFRGAuXG4vLy9cbi8vLyBzY3NzOlxuLy8vXG4vLy8gICAgIC5mb28ge1xuLy8vICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuLy8vICAgICAgICAgICAgICRmb250LXNpemU6IDEycHgsXG4vLy8gICAgICAgICAgICAgJHNjb3BlZDogICAgdHJ1ZSxcbi8vLyAgICAgICAgICk7XG4vLy8gICAgIH1cbi8vL1xuLy8vIFRoaXMgd2lsbCB5aWVsZDpcbi8vL1xuLy8vIGNzczpcbi8vL1xuLy8vICAgICAuZm9vIHtcbi8vLyAgICAgICAgICAgZm9udC1zaXplOiBjYWxjKDAuNjY2NjcgKiAoMTggLyB2YXIoLS1icm9uLXJvb3QtZm9udC1zaXplLCAxNikpICogMXJlbSk7XG4vLy8gICAgIH1cbi8vL1xuQG1peGluIGZvbnQtc2l6ZSgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQ6IGF1dG8sICRpbXBvcnRhbnQ6IGZhbHNlLCAkc2NvcGVkOiAkR0xPQkFMLVNDT1BFRCkge1xuICAgICRmb250U2l6ZUlzQ3NzQ3VzdG9tUHJvcGVydHk6IGZhbHNlO1xuXG4gICAgLy8gVGhlIGZvbnQtc2l6ZSBwYXJhbWV0ZXIgbXVzdCBiZSBhIG51bWJlciBpbiBgcHhgIHVuaXRzLlxuICAgIEBpZiAodHlwZS1vZigkZm9udC1zaXplKSA9PSBudW1iZXIpIHtcbiAgICAgICAgQGlmICh1bml0KCRmb250LXNpemUpICE9IFwicHhcIikge1xuICAgICAgICAgICAgQGVycm9yKFwiYCN7JGZvbnQtc2l6ZX1gIG5lZWRzIHRvIGJlIGEgcGl4ZWwgdmFsdWUuXCIpO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSBpZiAodHlwZS1vZigkZm9udC1zaXplKSA9PSBzdHJpbmcgYW5kIHN0YXJ0cy13aXRoKCRmb250LXNpemUsIFwidmFyKFwiKSkge1xuICAgICAgICAvLyBPciBhIENTUyBjdXN0b20gcHJvcGVydHkgd2l0aG91dCBhIHVuaXQgKHdoaWNoIGNhbm5vdCBiZSB0ZXN0ZWQgd2l0aCBTYXNzKS5cbiAgICAgICAgLy8gRm9yIGV4YW1wbGU6IGB2YXIoLS1mb250LXNpemUtdmFyaWFibGUpYFxuICAgICAgICAkZm9udFNpemVJc0Nzc0N1c3RvbVByb3BlcnR5OiB0cnVlO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAZXJyb3IoXCJgI3skZm9udC1zaXplfWAgbmVlZHMgdG8gYmUgYSBudW1iZXIuXCIpO1xuICAgIH1cblxuICAgIC8vIFRoZSBgJGltcG9ydGFudGAgcGFyYW1ldGVyIG11c3QgYmUgZWl0aGVyIGB0cnVlYCBvciBgZmFsc2VgLlxuICAgIEBpZiAoJGltcG9ydGFudCA9PSB0cnVlKSB7XG4gICAgICAgICRpbXBvcnRhbnQ6ICFpbXBvcnRhbnQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtY29sb24tc3BhY2UtYWZ0ZXIgKi9cbiAgICB9IEBlbHNlIGlmICgkaW1wb3J0YW50ID09IGZhbHNlKSB7XG4gICAgICAgICRpbXBvcnRhbnQ6IG51bGw7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBlcnJvcihcImAjeyRpbXBvcnRhbnR9YCBuZWVkcyB0byBiZSBgdHJ1ZWAgb3IgYGZhbHNlYC5cIik7XG4gICAgfVxuXG4gICAgLy8gQ2FsY3VsYXRlIHRoZSBmb250LXNpemUgaW4gYHJlbWAgdW5pdCBvdXQgb2YgdGhlIGdpdmVuIGBweGAgdmFsdWUuXG4gICAgQGlmICgkc2NvcGVkKSB7XG4gICAgICAgIC8vIENvbnNpZGVyIHRoZSBDU1MgY3VzdG9tIHByb3BlcnR5IGAtLWJyb24tcm9vdC1mb250LXNpemVgIHdoZW5cbiAgICAgICAgLy8gY29tcGlsaW5nIGEgc2NvcGVkIHN0eWxlXG4gICAgICAgIGZvbnQtc2l6ZTogY2FsYygoI3tzdHJpcC11bml0KCRmb250LXNpemUpfSAvICN7c3RyaXAtdW5pdCgkR0xPQkFMLUZPTlQtU0laRSl9KSAqICgje3N0cmlwLXVuaXQoJEdMT0JBTC1GT05ULVNJWkUpfSAvIHZhcigtLWJyb24tcm9vdC1mb250LXNpemUsIDE2KSkgKiAxcmVtKSAkaW1wb3J0YW50O1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAvLyBTaW1wbGVyIGNhbGN1bGF0aW9uIGZvciBzdGFuZGFyZCBub24tc2NvcGVkIHN0eWxlc1xuICAgICAgICBAaWYgKCRmb250U2l6ZUlzQ3NzQ3VzdG9tUHJvcGVydHkpIHtcbiAgICAgICAgICAgIC8vIFVzZSBDU1MgYGNhbGNgIGlmIGAkZm9udC1zaXplYCBpcyBhIENTUyBjdXN0b20gcHJvcGVydHlcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2FsYygje3N0cmlwLXVuaXQoJGZvbnQtc2l6ZSl9IC8gI3tzdHJpcC11bml0KCRHTE9CQUwtRk9OVC1TSVpFKX0gKiAxcmVtKSAkaW1wb3J0YW50OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIG9yZGVyL29yZGVyICovXG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiBkaXYoJGZvbnQtc2l6ZSwgJEdMT0JBTC1GT05ULVNJWkUpICogMXJlbSAkaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgbm8gc3BlY2lmaWMgbGluZS1oZWlnaHQgdmFsdWUgaXMgZ2l2ZW4gdmlhIG1peGluIHBhcmFtZXRlcixcbiAgICAvLyBhIHVuaXQtbGVzcyB2YWx1ZSBpcyBiZWluZyBjYWxjdWxhdGVkIHNvIGl0IGF1dG9tYXRpY2FsbHkgZml0c1xuICAgIC8vIG91ciBiYXNlbGluZSBncmlkLlxuICAgIEBpZiAkbGluZS1oZWlnaHQgPT0gYXV0byB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBjZWlsKGRpdigkZm9udC1zaXplLCAkR0xPQkFMLUxJTkUtSEVJR0hUKSkgKiBkaXYoJEdMT0JBTC1MSU5FLUhFSUdIVCwgJGZvbnQtc2l6ZSkgJGltcG9ydGFudDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGlmICgkbGluZS1oZWlnaHQgPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gTm8gb3V0cHV0XG4gICAgICAgIH0gQGVsc2UgaWYgKHR5cGUtb2YoJGxpbmUtaGVpZ2h0KSA9PSBudW1iZXIgb3IgJGxpbmUtaGVpZ2h0ID09IGluaGVyaXQgb3IgJGxpbmUtaGVpZ2h0ID09IG5vcm1hbCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodCAkaW1wb3J0YW50O1xuICAgICAgICB9IEBlbHNlIGlmICgkbGluZS1oZWlnaHQgIT0gbm9uZSBhbmQgJGxpbmUtaGVpZ2h0ICE9IGZhbHNlKSB7XG4gICAgICAgICAgICBAd2FybihcIuKAnCN7JGxpbmUtaGVpZ2h0feKAnSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgYGxpbmUtaGVpZ2h0YC5cIik7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNERVRBSUxTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBbMV0gU2V0IGBib3gtc2l6aW5nYCBzcGVjaWZpY2FsbHkgZm9yIGA8ZGV0YWlscz5gXG4gKiAgICAgaW5jbC4gY2hpbGQtIGFuZCBwc2V1ZG8tZWxlbWVudHMgYXMgdGhlIGVsZW1lbnRzIFwicmVzZXRzXCJcbiAqICAgICB0aGUgaW5oZXJpdGFuY2UvY2FzY2FkZSBmb3IgYGJveC1zaXppbmdgLlxuICogICAgIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1MzQ3NDQ4L2JveC1zaXppbmctbm90LWluaGVyaXRlZC10aHJvdWdoLWRldGFpbHMtZWxlbWVudC83NTM0OTM1MCM3NTM0OTM1MFxuICovXG5kZXRhaWxzIHtcblxuICAgICYsXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyLFxuICAgID4gKixcbiAgICA+ICo6OmJlZm9yZSxcbiAgICA+ICo6OmFmdGVyIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogWzFdICovXG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSEVBRElOR1NcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIEhlYWRpbmdzIDHigJM2LlxuICpcbiAqIE9ubHkgZm9udC1zaXplcyBhcmUgYXNzaWduZWQgZm9yIGA8aDE+YCDigJMgYDxoNj5gIGVsZW1lbnRzLlxuICogQW55IGFkZGl0aW9uYWwgY29zbWV0aWMgc3R5bGVzIGFyZSBib3VuZCB0byBhbiBleHRyYSBjbGFzcyBhbmQgbmV2ZXJcbiAqIGRpcmVjdGx5IHRvIGEgaGVhZGluZyBlbGVtZW50IVxuICpcbiAqIFRoZSBpbmRpdmlkdWFsIGZvbnQtc2l6ZXMgYXJlIGRlZmluZWQgaW4gYDAxLXNldHRpbmdzL19mb250LXNpemVzLnNjc3NgLlxuICovXG5cbmgxIHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgJGZvbnQtc2l6ZTogICAkR0xPQkFMLUhFQURJTkctSDEtRk9OVC1TSVpFLFxuICAgICAgICAkbGluZS1oZWlnaHQ6ICRHTE9CQUwtSEVBRElORy1IMS1MSU5FLUhFSUdIVFxuICAgICk7XG59XG5cbmgyIHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgJGZvbnQtc2l6ZTogICAkR0xPQkFMLUhFQURJTkctSDItRk9OVC1TSVpFLFxuICAgICAgICAkbGluZS1oZWlnaHQ6ICRHTE9CQUwtSEVBRElORy1IMi1MSU5FLUhFSUdIVFxuICAgICk7XG59XG5cbmgzIHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgJGZvbnQtc2l6ZTogICAkR0xPQkFMLUhFQURJTkctSDMtRk9OVC1TSVpFLFxuICAgICAgICAkbGluZS1oZWlnaHQ6ICRHTE9CQUwtSEVBRElORy1IMy1MSU5FLUhFSUdIVFxuICAgICk7XG59XG5cbmg0IHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgJGZvbnQtc2l6ZTogICAkR0xPQkFMLUhFQURJTkctSDQtRk9OVC1TSVpFLFxuICAgICAgICAkbGluZS1oZWlnaHQ6ICRHTE9CQUwtSEVBRElORy1INC1MSU5FLUhFSUdIVFxuICAgICk7XG59XG5cbmg1IHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgJGZvbnQtc2l6ZTogICAkR0xPQkFMLUhFQURJTkctSDUtRk9OVC1TSVpFLFxuICAgICAgICAkbGluZS1oZWlnaHQ6ICRHTE9CQUwtSEVBRElORy1INS1MSU5FLUhFSUdIVFxuICAgICk7XG59XG5cbmg2IHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgJGZvbnQtc2l6ZTogICAkR0xPQkFMLUhFQURJTkctSDYtRk9OVC1TSVpFLFxuICAgICAgICAkbGluZS1oZWlnaHQ6ICRHTE9CQUwtSEVBRElORy1INi1MSU5FLUhFSUdIVFxuICAgICk7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG5cbiAgICBAaW5jbHVkZSBoZWFkaW5nLWJhc2Utc3R5bGVzKFxuICAgICAgICAkY29sb3I6ICAgICAgICAgICRHTE9CQUwtSEVBRElORy1DT0xPUixcbiAgICAgICAgJGZvbnQtZmFtaWx5OiAgICAkR0xPQkFMLUhFQURJTkctRk9OVC1GQU1JTFksXG4gICAgICAgICRmb250LXdlaWdodDogICAgJEdMT0JBTC1IRUFESU5HLUZPTlQtV0VJR0hULFxuICAgICAgICAkbGV0dGVyLXNwYWNpbmc6ICRHTE9CQUwtSEVBRElORy1MRVRURVItU1BBQ0lORyxcbiAgICAgICAgJG1hcmdpbi1ib3R0b206ICAkR0xPQkFMLUhFQURJTkctTUFSR0lOLUJPVFRPTSxcbiAgICAgICAgJGhlYWRpbmctdGhlbWVzOiAkR0xPQkFMLUhFQURJTkctVEhFTUVTXG4gICAgKTtcblxufVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI01FRElBLVFVRVJZLVRPT0xTXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gV2UgYXJlIHVzaW5nIGluY2x1ZGUtbWVkaWEgYXMgbWVkaWEtcXVlcnkgbWFuYWdlcjpcbi8vIGh0dHBzOi8vaW5jbHVkZS1tZWRpYS5jb20vXG5cbi8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZ1xuLy8gYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXG5AdXNlIFwic2FzczptYXRoXCIgYXMgKjtcblxuJHVuaXQtaW50ZXJ2YWxzOiAoXG4gICAgXCJweFwiOiAxLFxuICAgIFwiZW1cIjogMC4wMSxcbiAgICBcInJlbVwiOiAwLjFcbikgIWRlZmF1bHQ7XG5cbi8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZ1xuLy8gc2VwYXJhdGUgc3R5bGVzaGVldHMgZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpc1xuLy8gZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvciBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZVxuLy8gZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiBcIm1cIiAhZGVmYXVsdDtcblxuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmVcbi8vIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzIGFyZSBub3Qgc3VwcG9ydGVkLlxuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoXCJzY3JlZW5cIiwgXCJwb3J0cmFpdFwiLCBcImxhbmRzY2FwZVwiKSAhZGVmYXVsdDtcblxuLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWQgZWxzZSB3aXRoIGBAd2FybmAsXG4vLyB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgIHRvIGRldGVjdCBzdXBwb3J0LlxuQGZ1bmN0aW9uIGxvZygkbWVzc2FnZSkge1xuICAgIEBpZiBmZWF0dXJlLWV4aXN0cyhcImF0LWVycm9yXCIpIHtcbiAgICAgICAgQGVycm9yICgkbWVzc2FnZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEB3YXJuKCRtZXNzYWdlKTtcbiAgICAgICAgJF86IG5vb3AoKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG4vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XG4vLyBBUEkgdGhhbiBgQGlmIGxvZygnLi4nKSB7fWAgb3IgYCRfOiBsb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cbi8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XG4gICAgQGlmIGxvZygkbWVzc2FnZSkge31cbn1cblxuLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xuLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbkBmdW5jdGlvbiBub29wKCkge31cblxuLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XG4gICAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJEJSRUFLUE9JTlRTLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcbiAgICAgICAgQGlmIGxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG4gICAgfVxuXG4gICAgQGVhY2ggJGNvbmRpdGlvbiBpbiAkY29uZGl0aW9ucyB7XG4gICAgICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJE1FRElBLUVYUFJFU1NJT05TLCAkY29uZGl0aW9uKSB7XG4gICAgICAgICAgICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xuICAgICAgICAgICAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICAgICAgICAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XG5cbiAgICAgICAgICAgIEBpZiAoJHByZWZpeCA9PSBcIm1heFwiIGFuZCAkdmFsdWUgPD0gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIG9yXG4gICAgICAgICAgICAgICAgKCRwcmVmaXggPT0gXCJtaW5cIiBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcbiAgICAgICAgICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgICAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIHRydWU7XG59XG5cbi8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcbiAgICBAZWFjaCAkb3BlcmF0b3IgaW4gKFwiPj1cIiwgXCI+XCIsIFwiPD1cIiwgXCI8XCIsIFwi4omlXCIsIFwi4omkXCIpIHtcbiAgICAgICAgQGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICAgICAgICAgICBAcmV0dXJuICRvcGVyYXRvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgICAvLyByZWx5IG9uIHRoZSBgbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAgIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBsb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAgICRfOiBsb2coXCJObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLlwiKTtcbn1cblxuLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgICAkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcbiAgICAkZGltZW5zaW9uOiBcIndpZHRoXCI7XG5cbiAgICBAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcbiAgICAgICAgJGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XG4gICAgfVxuXG4gICAgQHJldHVybiAkZGltZW5zaW9uO1xufVxuXG4vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcbiAgICBAcmV0dXJuIGlmKGluZGV4KChcIjxcIiwgXCI8PVwiLCBcIuKJpFwiKSwgJG9wZXJhdG9yKSwgXCJtYXhcIiwgXCJtaW5cIik7XG59XG5cbi8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAgICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAgICR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xuXG4gICAgQGlmIG1hcC1oYXMta2V5KCRCUkVBS1BPSU5UUywgJHZhbHVlKSB7XG4gICAgICAgICR2YWx1ZTogbWFwLWdldCgkQlJFQUtQT0lOVFMsICR2YWx1ZSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICAgJHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcbiAgICB9XG5cbiAgICAkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xuXG4gICAgQGlmIG5vdCAkaW50ZXJ2YWwge1xuICAgICAgICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gICAgICAgIC8vIHJlbHkgb24gdGhlIGBsb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gICAgICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAgICAgICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAgICAgICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGxvZyguLikge31gIGluc3RlYWQuXG4gICAgICAgICRfOiBsb2coXCJVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuXCIpO1xuICAgIH1cblxuICAgIEBpZiAkb3BlcmF0b3IgPT0gXCI+XCIge1xuICAgICAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSBcIjxcIiB7XG4gICAgICAgICR2YWx1ZTogJHZhbHVlIC0gJGludGVydmFsO1xuICAgIH1cblxuICAgIEByZXR1cm4gJHZhbHVlO1xufVxuXG4vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gICAgLy8gSWYgaXQgaXMgcGFydCBvZiAkTUVESUEtRVhQUkVTU0lPTlMsIGl0IGhhcyBubyBvcGVyYXRvclxuICAgIC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQGlmIG1hcC1oYXMta2V5KCRNRURJQS1FWFBSRVNTSU9OUywgJGV4cHJlc3Npb24pIHtcbiAgICAgICAgQHJldHVybiBtYXAtZ2V0KCRNRURJQS1FWFBSRVNTSU9OUywgJGV4cHJlc3Npb24pO1xuICAgIH1cblxuICAgICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pO1xuICAgICRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuXG4gICAgQHJldHVybiBcIigjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSlcIjtcbn1cblxuLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcbiAgICBAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XG4gICAgICAgIEByZXR1cm4gKCk7XG4gICAgfVxuXG4gICAgJHJlc3VsdDogKCk7XG5cbiAgICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG4gICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gICAgfVxuXG4gICAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiB7XG4gICAgICAgIEByZXR1cm4gJHZhbHVlO1xuICAgIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9IFwic3RyaW5nXCIge1xuICAgICAgICAkXzogbG9nKFwiVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy5cIik7XG4gICAgfVxuXG4gICAgJGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XG4gICAgJHJlc3VsdDogMDtcbiAgICAkZGlnaXRzOiAwO1xuICAgICRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gXCItXCIpO1xuICAgICRudW1iZXJzOiAoXCIwXCI6IDAsIFwiMVwiOiAxLCBcIjJcIjogMiwgXCIzXCI6IDMsIFwiNFwiOiA0LCBcIjVcIjogNSwgXCI2XCI6IDYsIFwiN1wiOiA3LCBcIjhcIjogOCwgXCI5XCI6IDkpO1xuXG4gICAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXG4gICAgQGlmICgkZmlyc3QtY2hhcmFjdGVyID09IFwiK1wiIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gXCItXCIpIHtcbiAgICAgICAgJHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XG5cbiAgICAgICAgQGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09IFwiLlwiKSB7XG4gICAgICAgICAgICBAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkY2hhcmFjdGVyID09IFwiLlwiIHtcbiAgICAgICAgICAgICRkaWdpdHM6IDE7XG4gICAgICAgIH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcbiAgICAgICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRkaWdpdHM6ICgkZGlnaXRzICogMTApO1xuICAgICAgICAgICAgJHJlc3VsdDogJHJlc3VsdCArIGRpdihtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSwgJGRpZ2l0cyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xufVxuXG4vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XG4gICAgJHVuaXRzOiAoXCJweFwiOiAxcHgsIFwiY21cIjogMWNtLCBcIm1tXCI6IDFtbSwgXCIlXCI6IDElLCBcImNoXCI6IDFjaCwgXCJwY1wiOiAxcGMsIFwiaW5cIjogMWluLCBcImVtXCI6IDFlbSwgXCJyZW1cIjogMXJlbSwgXCJwdFwiOiAxcHQsIFwiZXhcIjogMWV4LCBcInZ3XCI6IDF2dywgXCJ2aFwiOiAxdmgsIFwidm1pblwiOiAxdm1pbiwgXCJ2bWF4XCI6IDF2bWF4KTtcblxuICAgIEBpZiBub3QgaW5kZXgobWFwLWtleXMoJHVuaXRzKSwgJHVuaXQpIHtcbiAgICAgICAgJF86IGxvZyhcIkludmFsaWQgdW5pdCBgI3skdW5pdH1gLlwiKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XG59XG5cbi8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxuLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxuLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXG4vLyBmb3IgaW5zdGFuY2UuXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XG4gICAgLy8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAgICRnbG9iYWwtYnJlYWtwb2ludHM6ICRCUkVBS1BPSU5UUztcbiAgICAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkTUVESUEtRVhQUkVTU0lPTlM7XG5cbiAgICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgICAkQlJFQUtQT0lOVFM6IG1hcC1tZXJnZSgkQlJFQUtQT0lOVFMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcbiAgICAkTUVESUEtRVhQUkVTU0lPTlM6IG1hcC1tZXJnZSgkTUVESUEtRVhQUkVTU0lPTlMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcblxuICAgIEBjb250ZW50O1xuXG4gICAgLy8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAgICRCUkVBS1BPSU5UUzogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xuICAgICRNRURJQS1FWFBSRVNTSU9OUzogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xuQG1peGluIG1lZGlhLXF1ZXJ5KCRjb25kaXRpb25zLi4uKSB7XG4gICAgQGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxuICAgICAgICAobm90ICRpbS1tZWRpYS1zdXBwb3J0IGFuZCBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcbiAgICAgICAgQG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xuICAgICAgICAgICAgLy8gUmVjdXJzaXZlIGNhbGxcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xuICAgICAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0hFQURJTkdTXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8vIE1peGluIHRvIGFkZCBoZWFkaW5nIHN0eWxlcyB3aXRob3V0IGFkZGluZyB0aGUgZm9udC1zaXplIG9yIGxpbmUtaGVpZ2h0IHN0eWxlc1xuLy8vIGFjcm9zcyBzZXZlcmFsIGhlYWRpbmcgaGllcmFyY2hpZXMsIGUuZy4gaDEtaDYuXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkY29sb3IgW251bGxdIC0gVGhlIGhlYWRpbmcgY29sb3IuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRmb250LWZhbWlseSBbbnVsbF0gLSBUaGUgaGVhZGluZyBmb250LWZhbWlseS5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGZvbnQtd2VpZ2h0IFtudWxsXSAtIFRoZSBoZWFkaW5nIGZvbnQtd2VpZ2h0LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbGV0dGVyLXNwYWNpbmcgW251bGxdIC0gVGhlIGhlYWRpbmcgbGV0dGVyLXNwYWNpbmcuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtYXJnaW4tYm90dG9tIFtudWxsXSAtIFRoZSBoZWFkaW5nIGJvdHRvbSBzcGFjaW5nLlxuLy8vIEBwYXJhbSB7TWFwfSAkaGVhZGluZy10aGVtZXMgW251bGxdICAtIEEgbWFwIHdpdGggdGhlbWUgc3R5bGVzLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGltcG9ydGFudCBbZmFsc2VdIC0gV2hldGhlciB0aGUgc3R5bGVzIHNob3VsZCBiZSBmb3JjZWQsIGUuZy4gZm9yIHV0aWxpdGllcy5cbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gICAgIGgxLCBoMiwgaDMge1xuLy8vICAgICAgICAgQGluY2x1ZGUgaGVhZGluZy1iYXNlLXN0eWxlcyhcbi8vLyAgICAgICAgICAgICAkY29sb3I6ICAgICAgICAgICRHTE9CQUwtSEVBRElORy1DT0xPUixcbi8vLyAgICAgICAgICAgICAkZm9udC1mYW1pbHk6ICAgICRHTE9CQUwtSEVBRElORy1GT05ULUZBTUlMWSxcbi8vLyAgICAgICAgICAgICAkZm9udC13ZWlnaHQ6ICAgICRHTE9CQUwtSEVBRElORy1GT05ULVdFSUdIVCxcbi8vLyAgICAgICAgICAgICAkbGV0dGVyLXNwYWNpbmc6ICRHTE9CQUwtSEVBRElORy1MRVRURVItU1BBQ0lORyxcbi8vLyAgICAgICAgICAgICAkbWFyZ2luLWJvdHRvbTogICRHTE9CQUwtSEVBRElORy1NQVJHSU4tQk9UVE9NLFxuLy8vICAgICAgICAgICAgICRoZWFkaW5nLXRoZW1lczogJEdMT0JBTC1IRUFESU5HLVRIRU1FU1xuLy8vICAgICAgICAgKTtcbi8vLyAgICAgfVxuLy8vXG5AbWl4aW4gaGVhZGluZy1iYXNlLXN0eWxlcyhcbiAgICAkY29sb3I6IG51bGwsXG4gICAgJGZvbnQtZmFtaWx5OiBudWxsLFxuICAgICRmb250LXdlaWdodDogbnVsbCxcbiAgICAkbGV0dGVyLXNwYWNpbmc6IG51bGwsXG4gICAgJGhlYWRpbmctdGhlbWVzOiBudWxsLFxuICAgICRtYXJnaW4tYm90dG9tOiBudWxsLFxuICAgICRpbXBvcnRhbnQ6IGZhbHNlXG4pIHtcbiAgICBtYXJnaW4tYm90dG9tOiBpbXBvcnRhbnQoJG1hcmdpbi1ib3R0b20sICRpbXBvcnRhbnQpO1xuICAgIGZvbnQtZmFtaWx5OiBpbXBvcnRhbnQoJGZvbnQtZmFtaWx5LCAkaW1wb3J0YW50KTtcbiAgICBmb250LXdlaWdodDogaW1wb3J0YW50KCRmb250LXdlaWdodCwgJGltcG9ydGFudCk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IGltcG9ydGFudCgkbGV0dGVyLXNwYWNpbmcsICRpbXBvcnRhbnQpO1xuICAgIGNvbG9yOiBpbXBvcnRhbnQoJGNvbG9yLCAkaW1wb3J0YW50KTtcblxuICAgIEBpZiAoJGhlYWRpbmctdGhlbWVzKSB7XG4gICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICRoZWFkaW5nLXRoZW1lcykge1xuICAgICAgICAgICAgY29sb3I6IGltcG9ydGFudCh2YXJ5LWdldChcInRleHQtY29sb3JcIiksICRpbXBvcnRhbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cbi8vLyBNaXhpbiB0byByZW5kZXIgdmFsaWQgaGVhZGluZyBzdHlsZXMuXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZm9udC1zaXplIFtudWxsXSAtIFRoZSBoZWFkaW5nIHJlc3BvbnNpdmUgZm9udC1zaXplLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkY29sb3IgW251bGxdIC0gVGhlIGhlYWRpbmcgbGluZS1oZWlnaHQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRjb2xvciBbbnVsbF0gLSBUaGUgaGVhZGluZyBjb2xvci5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGZvbnQtZmFtaWx5IFtudWxsXSAtIFRoZSBoZWFkaW5nIGZvbnQtZmFtaWx5LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZm9udC13ZWlnaHQgW251bGxdIC0gVGhlIGhlYWRpbmcgZm9udC13ZWlnaHQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRsZXR0ZXItc3BhY2luZyBbbnVsbF0gLSBUaGUgaGVhZGluZyBsZXR0ZXItc3BhY2luZy5cbi8vLyBAcGFyYW0ge01hcH0gJGhlYWRpbmctdGhlbWVzIFtudWxsXSAgLSBBIG1hcCB3aXRoIHRoZW1lIHN0eWxlcy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRpbXBvcnRhbnQgW2ZhbHNlXSAtIFdoZXRoZXIgdGhlIHN0eWxlcyBzaG91bGQgYmUgZm9yY2VkLCBlLmcuIGZvciB1dGlsaXRpZXMuXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vICAgICBoMSB7XG4vLy8gICAgICAgICBAaW5jbHVkZSBoZWFkaW5nKFxuLy8vICAgICAgICAgICAgICRmb250LXNpemU6ICAgICAgJEdMT0JBTC1IRUFESU5HLUgxLUZPTlQtU0laRSxcbi8vLyAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICAgICRHTE9CQUwtSEVBRElORy1IMS1MSU5FLUhFSUdIVCxcbi8vLyAgICAgICAgICAgICAkY29sb3I6ICAgICAgICAgICRHTE9CQUwtSEVBRElORy1DT0xPUixcbi8vLyAgICAgICAgICAgICAkZm9udC1mYW1pbHk6ICAgICRHTE9CQUwtSEVBRElORy1GT05ULUZBTUlMWSxcbi8vLyAgICAgICAgICAgICAkZm9udC13ZWlnaHQ6ICAgICRHTE9CQUwtSEVBRElORy1GT05ULVdFSUdIVCxcbi8vLyAgICAgICAgICAgICAkbWFyZ2luLWJvdHRvbTogICRHTE9CQUwtSEVBRElORy1NQVJHSU4tQk9UVE9NLFxuLy8vICAgICAgICAgICAgICRsZXR0ZXItc3BhY2luZzogJEdMT0JBTC1IRUFESU5HLUxFVFRFUi1TUEFDSU5HLFxuLy8vICAgICAgICAgICAgICRoZWFkaW5nLXRoZW1lczogJEdMT0JBTC1IRUFESU5HLVRIRU1FU1xuLy8vICAgICAgICAgKTtcbi8vLyAgICAgfVxuLy8vXG5AbWl4aW4gaGVhZGluZyhcbiAgICAkZm9udC1zaXplLFxuICAgICRsaW5lLWhlaWdodCxcbiAgICAkY29sb3I6IG51bGwsXG4gICAgJGZvbnQtZmFtaWx5OiBudWxsLFxuICAgICRmb250LXdlaWdodDogbnVsbCxcbiAgICAkbGV0dGVyLXNwYWNpbmc6IG51bGwsXG4gICAgJG1hcmdpbi1ib3R0b206IG51bGwsXG4gICAgJGhlYWRpbmctdGhlbWVzOiBudWxsLFxuICAgICRpbXBvcnRhbnQ6IGZhbHNlXG4pIHtcblxuICAgIC8vIEd1YXJkIGFnYWluc3QgZW1wdHkgbGluZS1oZWlnaHQgYW5kIGZvbnQtc2l6ZXMuXG4gICAgQGlmICgoJGZvbnQtc2l6ZSA9PSBudWxsKSBvciAoJGxpbmUtaGVpZ2h0ID09IG51bGwpKSB7XG4gICAgICAgIEBlcnJvciAoXCJoZWFkaW5nIOKGkiAkZm9udC1zaXplIGFuZCAkbGluZS1oZWlnaHQgbXVzdCBoYXZlIGEgdmFsdWUuXCIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKFxuICAgICAgICAkZm9udC1zaXplOiAgICRmb250LXNpemUsXG4gICAgICAgICRsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LFxuICAgICAgICAkaW1wb3J0YW50OiAgIHRydWVcbiAgICApO1xuICAgIEBpbmNsdWRlIGhlYWRpbmctYmFzZS1zdHlsZXMoXG4gICAgICAgICRjb2xvcjogICAgICAgICAgJGNvbG9yLFxuICAgICAgICAkZm9udC1mYW1pbHk6ICAgICRmb250LWZhbWlseSxcbiAgICAgICAgJGZvbnQtd2VpZ2h0OiAgICAkZm9udC13ZWlnaHQsXG4gICAgICAgICRsZXR0ZXItc3BhY2luZzogJGxldHRlci1zcGFjaW5nLFxuICAgICAgICAkbWFyZ2luLWJvdHRvbTogICRtYXJnaW4tYm90dG9tLFxuICAgICAgICAkaGVhZGluZy10aGVtZXM6ICRoZWFkaW5nLXRoZW1lcyxcbiAgICAgICAgJGltcG9ydGFudDogICAgICAkaW1wb3J0YW50XG4gICAgKTtcblxufVxuIiwiLy8vL1xuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vL1xuLy8vICAgICAgICAgICAgICAgICAgICAgICBfdmFyeS5zY3NzIHYxLjEgLSBDb25zaXN0ZW50IENTUyB0aGVtaW5nXG4vLy9cbi8vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphaWNhYi5jb20vc2Fzcy12YXJ5L1xuLy8vXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vXG4vLy8gTGlzdCBhbGwgeW91ciB2YXJpYXRpb25zIGluIHlvdXIgJHZhcnktbWFwLlxuLy8vIHZhcnkgd2lsbCBsb29wIHRocm91Z2ggdGhlbSBhbmQgY3JlYXRlIHRoZSBjb2RlIGZvciB5b3UsIHdpdGggYSBjb25zaXN0ZW50IGFuZCBEUlllciBjb2RlLlxuLy8vXG4vLy8gWW91IGNhbiBzdGFydCB1c2luZyB0aGlzIGxpYnJhcnkgbGlrZSBzbzpcbi8vL1xuLy8vICAgJHZhcnktbWFwOiAoXG4vLy8gICAgICB1c2VyOiAoXG4vLy8gICAgICAgICdjb2xvci1wcmltYXJ5JzogYmx1ZSxcbi8vLyAgICAgICAgJ2JvcmRlcic6ICcxcHggc29saWQgI2ZmMCcsXG4vLy8gICAgICApLFxuLy8vICAgICAgYWRtaW46IChcbi8vLyAgICAgICAgJ2NvbG9yLXByaW1hcnknOiBwaW5rLFxuLy8vICAgICAgICAnYm9yZGVyJzogJzEwcHggc29saWQgYmxhY2snLFxuLy8vICAgICAgKVxuLy8vICAgICk7XG4vLy9cbi8vLyAgIC5mb28ge1xuLy8vICAgICBiYWNrZ3JvdW5kOiByZWQ7XG4vLy9cbi8vLyAgICAgQGluY2x1ZGUgdmFyeSgkY3JlYXRlOiBib2R5KSB7XG4vLy8gICAgICAgYmFja2dyb3VuZDogdmFyeS1nZXQoJ2NvbG9yLXByaW1hcnknKTtcbi8vLyAgICAgICBib3JkZXI6IHZhcnktZ2V0KCdib3JkZXInKTtcbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDb21waWxlcyBpbnRvXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgYmFja2dyb3VuZDogcmVkO1xuLy8vICAgfVxuLy8vICAgLmlzLXVzZXIgLmZvbyB7XG4vLy8gICAgIGNvbG9yOiBibHVlO1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmYwO1xuLy8vICAgfVxuLy8vICAgLmlzLWFkbWluIC5mb28ge1xuLy8vICAgICBjb2xvcjogcGluaztcbi8vLyAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIHJlZDtcbi8vLyAgIH1cbi8vL1xuLy8vXG4vLy8gMjAxNSAtIE1hZGUgd2l0aCDimaUgYnkgSmFpbWUgQ2FiYWxsZXJvIChAamFpY2FiXylcbi8vLyBAYXV0aG9yIEphaW1lIENhYmFsbGVybyAoQGphaWNhYl8pXG4vLy8vXG5cblxuXG4vLy8gU2V0IHRvIHRydWUgaWYgdXNpbmcgbGlic2Fzcy4gVXNlcyBzb21lIGV4dHJhIENTUyBvbiBIVE1MIGNsYXNzIHNjZW5hcmlvLlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuJHZhcnktbGlic2FzczogdHJ1ZSAhZGVmYXVsdDtcblxuXG5cbi8vLyBXaGVuIGNyZWF0aW5nIGEgY2xhc3MsIHZhcnkgd2lsbCB1c2UgdGhpcyBwcmVmaXguXG4vLy8gV2lsbCB3b3JrIGFzIC4jeyR2YXJ5LWRlZmF1bHQtcHJlZml4LWNsYXNzfWZvb1xuLy8vXG4vLy8gQ1VTVE9NOlxuLy8vIFVzZSBbZGF0YS10aGVtZT1cInhcIl0gYXR0cmlidXRlcyBmb3IgdGhlbWUgc2NvcGluZy5cbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuJHZhcnktZGVmYXVsdC1wcmVmaXgtY2xhc3M6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNyZWF0aW9uIG1vZGUuXG4vLy8gV2lsbCBzZXQgYSBkZWZhdWx0IHZhbHVlIGZvciAkY3JlYXRlLlxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG4kdmFyeS1kZWZhdWx0LWNyZWF0ZTogJ21vZGlmaWVyJyAhZGVmYXVsdDtcblxuXG5cbi8vLyBMaXN0IG9mIHZhcmlhdGlvbnMuXG4vLy8gU2hvdWxkIGJlIHB1dCB3aXRoIHlvdXIgb3RoZXIgdmFyaWFibGVzLCBiZWZvcmUgdGhlIG1peGlucy5cbi8vL1xuLy8vIFNldCBhcyBtYW55IGtleXMgYXMgeW91IHdpc2gsIHdpbGwgYmUgdXNlZCB0byBrZWVwIGNvbnNpc3RlbmN5LlxuLy8vIFRoZSB2YXJpYWJsZXMgdW5kZXIgZWFjaCBrZXkgc2hvdWxkIGJlIGNvbnNpc3RlbnQgaW4gb3JkZXIgdG8gbG9vcCBvdmVyIGFsbCB0aGUga2V5cy5cbi8vL1xuLy8vIEB0eXBlIE1hcFxuJHZhcnktbWFwOiAoXG4gIHVzZXI6IChcbiAgICAnY29sb3ItcHJpbWFyeSc6IGJsdWUsXG4gICAgJ2JvcmRlcic6ICcxcHggc29saWQgI2ZmMCdcbiAgKSxcbiAgYWRtaW46IChcbiAgICAnY29sb3ItcHJpbWFyeSc6IHBpbmssXG4gICAgJ2JvcmRlcic6ICcxMHB4IHNvbGlkIGJsYWNrJ1xuICApXG4pICFkZWZhdWx0O1xuXG5cblxuLy8vIEN1cnJlbnQgX2VudGl0eV8gZHVyaW5nIHRoZSBsb29wLiBDYW4gYmUgdXNlZCBpbiBjdXN0b20gY3JlYXRpb24gbW9kZS5cbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuJHZhcnktbG9vcC1lbnRpdHk6ICcnO1xuXG5cblxuLy8vIEN1cnJlbnQgX21hcF8gZHVyaW5nIHRoZSBsb29wLiBDYW4gYmUgdXNlZCBpbiBjdXN0b20gY3JlYXRpb24uXG4vLy9cbi8vLyBAdHlwZSBNYXBcbiR2YXJ5LWxvb3AtbWFwOiAkdmFyeS1tYXA7XG5cblxuXG4vLy8gR2V0cyBhIHZhbHVlIGZyb20gYSB2YXJ5LWxpa2UgbWFwIHVzaW5nIHRoZSBjdXJyZW50IGVudGl0eSBhbmQgbWFwIHdpdGhpbmcgdGhlIHZhcnkgc2NvcGUuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGtleSAtIE5hbWUgb2YgdGhlIHZhcmlhYmxlIHlvdSB3YW50IHRvIGdldFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZW50aXR5IC0gTmFtZSBvZiB0aGUgZW50aXR5IHlvdSB3YW50IHRvIGFjY2Vzc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgdmFyeS1nZXQoJ2NvbG9yLXByaW1hcnknLCB1c2VyKTtcbi8vLyAgIC8vIC0+ICMzMzNcbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IFZhbHVlIG9mIGtleSBmb3IgdGhhdCBlbnRpdHlcbkBmdW5jdGlvbiB2YXJ5LWdldCgka2V5LCAkZW50aXR5OiAkdmFyeS1sb29wLWVudGl0eSwgJG1hcDogJHZhcnktbG9vcC1tYXApIHtcbiAgJGVudGl0eS1tYXA6IG1hcC1nZXQoJG1hcCwgJGVudGl0eSk7XG5cbiAgQGlmIG5vdCAkZW50aXR5LW1hcCB7XG4gICAgQGVycm9yKCAnVGhlcmUgaXMgbm8gYCN7JGVudGl0eX1gIGVudGl0eSBpbiB5b3VyIHZhcmlhdGlvbnMgbGlzdC4nKTtcbiAgfVxuXG4gICRyZXQ6IG1hcC1nZXQoJGVudGl0eS1tYXAsICRrZXkpO1xuXG4gIEBpZiBub3QgJHJldCB7XG4gICAgLy8gbnVsbCBjYW4gYmUgcmV0dXJuZWQsIHByb3BlcnR5IHdpbGwgYmUgc2tpcHBlZFxuICAgIEBpZiAkcmV0ICE9IG51bGwge1xuICAgICAgICAvLyBAZXJyb3IoICdUaGUgZW50aXR5IGAjeyRlbnRpdHl9YCBkb2VzblxcJ3QgaGF2ZSBhIHZhbHVlIGZvciBgI3ska2V5fWAuJyk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkcmV0O1xufVxuXG5cbi8vLyBGaWx0ZXJzIHRoZSBlbnRpdGllcyBwcm92aWRlZCBpbnRvIGEgZmluYWwgbGlzdFxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkaW5jbHVkZWQgLSBMaXN0IHdpdGggdGhlIGtleXMgdG8gdXNlXG4vLy8gQHBhcmFtIHtMaXN0fSAkZXhjbHVkZWQgLSBMaXN0IHdpdGggdGhlIGtleXMgTk9UIHRvIHVzZVxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNoZWNrIGtleXMgYWdhaW5zdFxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgdmFyeS1maWx0ZXIoY29sb3IgYm9yZGVyIHRoaWNrbmVzcywgYm9yZGVyKTtcbi8vLyAgIC8vIC0+IChjb2xvciB0aGlja25lc3MpXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gTGlzdCBvZiB0aGUga2V5cyB0byB1c2UsIGF2YWlsYWJsZSBvbiB0aGUgbWFwLCB3aXRob3V0IHRoZSBvbmVzIGV4Y2x1ZGVkXG5AZnVuY3Rpb24gdmFyeS1maWx0ZXIoJGluY2x1ZGVkOiAoKSwgJGV4Y2x1ZGVkOiAoKSwgJG1hcDogJHZhcnktbG9vcC1tYXApIHtcbiAgJHJldDogKCk7XG5cbiAgLy8gSWYgaGF2ZW4ndCBzcGVjaWZpZWQgYW55dGhpbmcsIGRlZmF1bHQgdG8gYWxsXG4gIEBpZiAkaW5jbHVkZWQgPT0gJ2FsbCcge1xuICAgICRpbmNsdWRlZDogbWFwLWtleXMoJG1hcCk7XG4gIH1cblxuICAvLyBCdWlsZCB0aGUgc3BlY2lmaWVkIGtleSBsaXN0XG4gIEBlYWNoICRrZXkgaW4gJGluY2x1ZGVkIHtcblxuICAgIC8vIElmIGl0J3MgaW4gb3VyIG1hcFxuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgQGVycm9yKCAnVGhlcmUgaXMgbm8gYCN7JGtleX1gIGNsYXNzIGluIHlvdXIgdmFyaWF0aW9ucyBsaXN0LicpO1xuICAgIH1cblxuICAgIC8vIEJ1dCBub3QgZXhjbHVkZWRcbiAgICBAaWYgbm90IGluZGV4KCRleGNsdWRlZCwgJGtleSkge1xuICAgICAgLy8gQWRkIGl0IHRvIHRoZSBmaW5hbCBsaXN0XG4gICAgICAkcmV0OiBhcHBlbmQoJHJldCwgJGtleSwgJ2NvbW1hJyk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkcmV0O1xufVxuXG5cblxuLy8vIEFkZHMgYSBib2R5IGNsYXNzIGJldHdlZW4gdGhlIGh0bWwgY2xhc3MgYW5kIHRoZSByZXN0IG9mIHNlbGVjdG9yc1xuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2VsZWN0b3IgbGlzdCAtIExpc3Qgb2Ygc2VsZWN0b3JzXG4vLy8gQHBhcmFtIHtMaXN0fSAkYm9keWNsYXNzIC0gQm9keSBjbGFzcyB0byBwdXQgYmV0d2VlblxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgdmFyeS1odG1sY2xhc3MoKC5qcyAuZm9vLCAuY3NzdHJhbnNpdGlvbnMgLmVsZW1lbnQpLCAnLmlzLWFkbWluJyk7XG4vLy8gICAvLyAtPiAoLmpzIC5pcy1hZG1pbiAuZm9vLCAuY3NzdHJhbnNpdGlvbnMgLmlzLWFkbWluIC5lbGVtZW50KVxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IExpc3Qgb2Ygc2VsZWN0b3JzIHRvXG5AZnVuY3Rpb24gdmFyeS1odG1sY2xhc3MoJHNlbGVjdG9yLWxpc3QsICRib2R5Y2xhc3MpIHtcbiAgJHJldDogKCk7XG5cbiAgLy8gR28gdGhyb3VnaCBlYWNoIHNlbGVjdG9yXG4gIEBlYWNoICRzZWxlY3RvciBpbiAkc2VsZWN0b3ItbGlzdCB7XG4gICAgJHdpdGgtYm9keWNsYXNzOiAoKTtcblxuICAgIC8vIEp1c3QgaHRtbCBjbGFzcyAtIC5odG1sY2xhc3NcbiAgICAkd2l0aC1ib2R5Y2xhc3M6IGFwcGVuZCgkd2l0aC1ib2R5Y2xhc3MsIG50aCgkc2VsZWN0b3IsIDEpKTtcblxuICAgIC8vIEFkZCBib2R5IGNsYXNzIC0gLmh0bWxjbGFzcyAuYm9keWNsYXNzXG4gICAgJHdpdGgtYm9keWNsYXNzOiBhcHBlbmQoJHdpdGgtYm9keWNsYXNzLCB1bnF1b3RlKCRib2R5Y2xhc3MpLCAnc3BhY2UnKTtcblxuICAgIC8vIElmIG1vcmUgdGhhbiBvbmUgZWxlbWVudFxuICAgIEBpZiBsZW5ndGgoJHNlbGVjdG9yKSA+IDEge1xuICAgICAgLy8gRWFjaCByZXN0YW50IGVsZW1lbnQgLSAuaHRtbGNsYXNzIC5ib2R5Y2xhc3MgLm90aGVyc2VsZWN0b3JzXG4gICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIGxlbmd0aCgkc2VsZWN0b3IpIHtcbiAgICAgICAgLy8gQWRkIHRoZSBvdGhlciBzZWxlY3RvcnNcbiAgICAgICAgJHdpdGgtYm9keWNsYXNzOiBhcHBlbmQoJHdpdGgtYm9keWNsYXNzLCBudGgoJHNlbGVjdG9yLCAkaSksICdzcGFjZScpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1lcmdlIGl0IGFsbCBpbiB0aGUgc2VsZWN0b3IgbGlzdFxuICAgICRyZXQ6IGFwcGVuZCgkcmV0LCAkd2l0aC1ib2R5Y2xhc3MsICdjb21tYScpO1xuICB9XG5cbiAgQHJldHVybiAkcmV0O1xufVxuXG5cblxuLy8vIENyZWF0ZXMgdmFyaWF0aW9ucyB3aXRoIGEgLmlzLWNsYXNzIGJvZHkgY2xhc3MuXG4vLy8gSXQgYWxzbyBwbGFjZXMgaXQgYWZ0ZXIgdGhlIEhUTUwgY2xhc3MgZ2l2ZW4gaW4gdGhlIHBhcmVudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZW50aXR5IC0gRW50aXR5IGtleSB0byB1c2UuXG4vLy9cbi8vLyAgICR2YXJ5LW1hcDogKFxuLy8vICAgICAgdXNlcjogKFxuLy8vICAgICAgICAnY29sb3ItcHJpbWFyeSc6IGJsdWUsXG4vLy8gICAgICAgICdib3JkZXInOiAnMXB4IHNvbGlkICNmZjAnLFxuLy8vICAgICAgKSxcbi8vLyAgICAgIGFkbWluOiAoXG4vLy8gICAgICAgICdjb2xvci1wcmltYXJ5JzogcGluayxcbi8vLyAgICAgICAgJ2JvcmRlcic6ICcxMHB4IHNvbGlkIGJsYWNrJyxcbi8vLyAgICAgIClcbi8vLyAgICApO1xuLy8vXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgYmFja2dyb3VuZDogcmVkO1xuLy8vXG4vLy8gICAgIEBpbmNsdWRlIHZhcnkoJGNyZWF0ZTogaW5zZXJ0KSB7XG4vLy8gICAgICAgYmFja2dyb3VuZDogdmFyeS1nZXQoJ2NvbG9yLXByaW1hcnknKTtcbi8vLyAgICAgICBib3JkZXI6IHZhcnktZ2V0KCdib3JkZXInKTtcbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDb21waWxlcyBpbnRvXG4vLy8gICAuanMgLmZvbyB7XG4vLy8gICAgIGZvbnQtc2l6ZTogLjllbTtcbi8vLyAgIH1cbi8vLyAgIC5qcyAuaXMtdXNlciAuZm9vIHtcbi8vLyAgICAgY29sb3I6IGJsdWU7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZjA7XG4vLy8gICB9XG4vLy8gICAuanMgLmlzLWFkbWluIC5mb28ge1xuLy8vICAgICBjb2xvcjogcGluaztcbi8vLyAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIGJsYWNrO1xuLy8vICAgfVxuLy8vXG5AbWl4aW4gdmFyeS1zaW5nbGUtaHRtbGJvZHkoJGVudGl0eSkge1xuICAvLyBVcGRhdGUgdGhlIGdsb2JhbCBoZWxwZXIgY2xhc3NcbiAgJHZhcnktbG9vcC1lbnRpdHk6ICRlbnRpdHkgIWdsb2JhbDtcbiAgJHNlbGVjdG9yLWxpc3Q6ICgpO1xuXG4gIEBpZiBub3QgJiB7XG4gICAgQGVycm9yKCAnTm8gcGFyZW50IGZvdW5kLiBJIG5lZWQgdGhlIHBhcmVudCBIVE1MIGNsYXNzIHRvIHBsYWNlIGV2ZXJ5dGhpbmcgb24gaXRzIHJpZ2h0IHBsYWNlLicpO1xuICB9XG5cbiAgJHNlbGVjdG9yOiAmO1xuICAkYm9keWNsYXNzOiAnWy4jeyR2YXJ5LWRlZmF1bHQtcHJlZml4LWNsYXNzfV0jeyR2YXJ5LWxvb3AtZW50aXR5fSc7XG5cbiAgQHdhcm4oJ05vIGZhbGxiYWNrIHByb3ZpZGVkLiBJZiB5b3UgbmVlZCBvbmUsIGFkZCBpdCB0byBgdmFyeS1zaW5nbGUtaHRtbGJvZHlgLicpO1xuXG4gIEBhdC1yb290e1xuICAgIEBpZiAkdmFyeS1saWJzYXNzIHtcbiAgICAgIGh0bWwge1xuICAgICAgICAmI3t2YXJ5LWh0bWxjbGFzcygkc2VsZWN0b3IsICRib2R5Y2xhc3MpfSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICN7dmFyeS1odG1sY2xhc3MoJHNlbGVjdG9yLCAkYm9keWNsYXNzKX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG5cbi8vLyBDcmVhdGVzIHZhcmlhdGlvbnMgd2l0aCBhIC5pcy1jbGFzcyBib2R5IGNsYXNzLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRlbnRpdHkgLSBFbnRpdHkga2V5IHRvIHVzZS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgICR2YXJ5LW1hcDogKFxuLy8vICAgICAgdXNlcjogKFxuLy8vICAgICAgICAnY29sb3ItcHJpbWFyeSc6ICMzMzMsXG4vLy8gICAgICAgICdjb2xvci1zZWNvbmRhcnknOiAjMDY5LFxuLy8vICAgICAgKSxcbi8vLyAgICAgIGFkbWluOiAoXG4vLy8gICAgICAgICdjb2xvci1wcmltYXJ5JzogI2YwZixcbi8vLyAgICAgICAgJ2NvbG9yLXNlY29uZGFyeSc6ICMwMDAsXG4vLy8gICAgICApXG4vLy8gICAgKTtcbi8vLyAgIC5mb28ge1xuLy8vICAgICBmb250LXNpemU6IC45ZW07XG4vLy9cbi8vLyAgICAgQGluY2x1ZGUgdmFyeS1zaW5nbGUtcGFyZW50KCd1c2VyJykge1xuLy8vICAgICAgIGNvbG9yOiB2YXJ5LWdldCgnY29sb3ItcHJpbWFyeScpO1xuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENvbXBpbGVzIGludG9cbi8vLyAgIC5mb28ge1xuLy8vICAgICBmb250LXNpemU6IC45ZW07XG4vLy8gICB9XG4vLy8gICAuaXMtdXNlciAuZm9vIHtcbi8vLyAgICAgY29sb3I6ICMzMzM7XG4vLy8gICB9XG4vLy9cbkBtaXhpbiB2YXJ5LXNpbmdsZS1wYXJlbnQoJGVudGl0eSkge1xuICAvLyBVcGRhdGUgdGhlIGdsb2JhbCBoZWxwZXIgY2xhc3NcbiAgJHZhcnktbG9vcC1lbnRpdHk6ICRlbnRpdHkgIWdsb2JhbDtcblxuICAvKipcbiAgICogWzFdIENoZWNrIGlmIGEgdGhlbWUgaXMgc2V0IG9yIGlmIHRoZSBkZWZhdWx0IHRoZW1lIChudWxsKSBpcyB1c2VkLlxuICAgKiAgICAgSWYgdGhlIGBkZWZhdWx0YCB0aGVtZSBpcyB1c2VkIHdlIGV4ZWN1dGUgdGhlIGFscmVhZHkgcHJlc2VudCBsb2dpYyxcbiAgICogICAgIGVsc2Ugd2UganVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdW53cmFwcGVkLlxuICAgKi9cbiAgQGF0LXJvb3R7XG4gICAgICBAaWYgbm90ICgkZW50aXR5ID09IG51bGwpIHsgLyogWzFdICovXG4gICAgICAgICAgQGlmICYge1xuICAgICAgICAgICAgICBbZGF0YS10aGVtZT1cIiN7JGVudGl0eX1cIl0gJiB7XG4gICAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICBbZGF0YS10aGVtZT1cIiN7JGVudGl0eX1cIl0ge1xuICAgICAgICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgfVxuXG59XG5cblxuXG4vLy8gQXBwZW5kcyBhbiAuaXMtY2xhc3MgY2xhc3MgdG8gdGhlIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGVudGl0eSAtIEVudGl0eSBrZXkgdG8gdXNlLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgJHZhcnktbWFwOiAoXG4vLy8gICAgICB1c2VyOiAoXG4vLy8gICAgICAgICdjb2xvci1wcmltYXJ5JzogIzMzMyxcbi8vLyAgICAgICAgJ2NvbG9yLXNlY29uZGFyeSc6ICMwNjksXG4vLy8gICAgICApLFxuLy8vICAgICAgYWRtaW46IChcbi8vLyAgICAgICAgJ2NvbG9yLXByaW1hcnknOiAjZjBmLFxuLy8vICAgICAgICAnY29sb3Itc2Vjb25kYXJ5JzogIzAwMCxcbi8vLyAgICAgIClcbi8vLyAgICApO1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGZvbnQtc2l6ZTogLjllbTtcbi8vL1xuLy8vICAgICBAaW5jbHVkZSB2YXJ5LXNpbmdsZS1hcHBlbmQoJ3VzZXInKSB7XG4vLy8gICAgICAgY29sb3I6IHZhcnktZ2V0KCdjb2xvci1wcmltYXJ5Jyk7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ29tcGlsZXMgaW50b1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGZvbnQtc2l6ZTogLjllbTtcbi8vLyAgIH1cbi8vLyAgIC5mb28uaXMtdXNlciB7XG4vLy8gICAgIGNvbG9yOiAjMzMzO1xuLy8vICAgfVxuLy8vXG5AbWl4aW4gdmFyeS1zaW5nbGUtYXBwZW5kKCRlbnRpdHkpIHtcbiAgLy8gVXBkYXRlIHRoZSBnbG9iYWwgaGVscGVyIGNsYXNzXG4gICR2YXJ5LWxvb3AtZW50aXR5OiAkZW50aXR5ICFnbG9iYWw7XG5cbiAgQGlmIG5vdCAmIHtcbiAgICBAZXJyb3IoICdObyBzZWxlY3RvciBmb3VuZC4gSSBuZWVkIGEgc2VsZWN0b3IgdG8gYXBwZW5kIHRoZSBjbGFzcyB0by4nKTtcbiAgfVxuXG4gICZbZGF0YS10aGVtZT1cIiN7JGVudGl0eX1cIl0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cblxuXG4vLy8gQ3JlYXRlcyBCRU0gbW9kaWZpZXJzIGZvciBhIHdyYXBwZXIgZWxlbWVudFxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRlbnRpdHkgLSBNb2RpZmllciBrZXkgdG8gdXNlLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgJHZhcnktbWFwOiAoXG4vLy8gICAgICB1c2VyOiAoXG4vLy8gICAgICAgICdjb2xvci1wcmltYXJ5JzogIzMzMyxcbi8vLyAgICAgICAgJ2NvbG9yLXNlY29uZGFyeSc6ICMwNjksXG4vLy8gICAgICApLFxuLy8vICAgICAgYWRtaW46IChcbi8vLyAgICAgICAgJ2NvbG9yLXByaW1hcnknOiAjZjBmLFxuLy8vICAgICAgICAnY29sb3Itc2Vjb25kYXJ5JzogIzAwMCxcbi8vLyAgICAgIClcbi8vLyAgICApO1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGZvbnQtc2l6ZTogLjllbTtcbi8vL1xuLy8vICAgICBAaW5jbHVkZSB2YXJ5LXNpbmdsZS1tb2RpZmllcigndXNlcicpIHtcbi8vLyAgICAgICBjb2xvcjogdmFyeS1nZXQoJ2NvbG9yLXByaW1hcnknKTtcbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDb21waWxlcyBpbnRvXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgZm9udC1zaXplOiAuOWVtO1xuLy8vICAgfVxuLy8vICAgLmZvby0tdXNlciB7XG4vLy8gICAgIGNvbG9yOiAjMzMzO1xuLy8vICAgfVxuLy8vXG5AbWl4aW4gdmFyeS1zaW5nbGUtbW9kaWZpZXIoJGVudGl0eSkge1xuICAvLyBVcGRhdGUgdGhlIGdsb2JhbCBoZWxwZXIgY2xhc3NcbiAgJHZhcnktbG9vcC1lbnRpdHk6ICRlbnRpdHkgIWdsb2JhbDtcblxuICAvLyBEbyB3ZSBoYXZlIGEgcGFyZW50IHNlbGVjdG9yP1xuICBAaWYgbm90ICYge1xuICAgIEBlcnJvciggJ1lvdSBjYW5cXCd0IGNyZWF0ZSBhIG1vZGlmaWVyIHdpdGhvdXQgYSBiYXNlLicpO1xuICB9XG5cbiAgQGF0LXJvb3Qge1xuICAgICYtLSN7JGVudGl0eX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cblxuXG4vLy8gRG9lc24ndCBjcmVhdGUgYW55dGhpbmcsIGl0IGp1c3QgZ2l2ZXMgeW91IHRoZSByaWdodCBzY29wZS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZW50aXR5IC0gRW50aXR5IGtleSB0byB1c2UuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAkdmFyeS1tYXA6IChcbi8vLyAgICAgIHVzZXI6IChcbi8vLyAgICAgICAgJ2NvbG9yLXByaW1hcnknOiAjMzMzLFxuLy8vICAgICAgICAnY29sb3Itc2Vjb25kYXJ5JzogIzA2OSxcbi8vLyAgICAgICksXG4vLy8gICAgICBhZG1pbjogKFxuLy8vICAgICAgICAnY29sb3ItcHJpbWFyeSc6ICNmMGYsXG4vLy8gICAgICAgICdjb2xvci1zZWNvbmRhcnknOiAjMDAwLFxuLy8vICAgICAgKVxuLy8vICAgICk7XG4vLy8gICAuZm9vIHtcbi8vLyAgICAgZm9udC1zaXplOiAuOWVtO1xuLy8vXG4vLy8gICAgIEBpbmNsdWRlIHZhcnktc2luZ2xlLWN1c3RvbSgndXNlcicpIHtcbi8vLyAgICAgICAmLiN7JHZhcnktbG9vcC1lbnRpdHl9IHtcbi8vLyAgICAgICAgICBjb2xvcjogdmFyeS1nZXQoJ2NvbG9yLXByaW1hcnknKTtcbi8vLyAgICAgICB9XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ29tcGlsZXMgaW50b1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGZvbnQtc2l6ZTogLjllbTtcbi8vLyAgIH1cbi8vLyAgIC5mb28udXNlciB7XG4vLy8gICAgIGNvbG9yOiAjMzMzO1xuLy8vICAgfVxuLy8vXG5AbWl4aW4gdmFyeS1zaW5nbGUtY3VzdG9tKCRlbnRpdHkpIHtcbiAgLy8gVXBkYXRlIHRoZSBnbG9iYWwgaGVscGVyIGNsYXNzXG4gICR2YXJ5LWxvb3AtZW50aXR5OiAkZW50aXR5ICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG59XG5cblxuXG4vLy8gQ3JlYXRlcyB2YXJpYXRpb25zIGZvciAkdmFyeS1tYXBcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkY3JlYXRlIC0gV2hhdCB2YXJ5IHdpbGwgY3JlYXRlIGZvciB5b3UuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZm9yIC0gTGlzdCBvZiBlbnRpdGllcyB0byBpbmNsdWRlXG4vLy8gQHBhcmFtIHtMaXN0fSAkbm90IC0gRXhjbHVkZWQgbGlzdCBvZiBlbnRpdGllc1xuLy8vIEBwYXJhbSB7TWFwfSAkbG9vcCAtIE1hcCB0byBsb29wIHRocm91Z2hcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgICR2YXJ5LW1hcDogKFxuLy8vICAgICAgdXNlcjogKFxuLy8vICAgICAgICAnY29sb3ItcHJpbWFyeSc6IGJsdWUsXG4vLy8gICAgICAgICdib3JkZXInOiAnMXB4IHNvbGlkICNmZjAnLFxuLy8vICAgICAgKSxcbi8vLyAgICAgIGFkbWluOiAoXG4vLy8gICAgICAgICdjb2xvci1wcmltYXJ5JzogcGluayxcbi8vLyAgICAgICAgJ2JvcmRlcic6ICcxMHB4IHNvbGlkIGJsYWNrJyxcbi8vLyAgICAgIClcbi8vLyAgICApO1xuLy8vXG4vLy8gICAuZm9ve1xuLy8vICAgICBiYWNrZ3JvdW5kOiByZWQ7XG4vLy9cbi8vLyAgICAgQGluY2x1ZGUgdmFyeSgkY3JlYXRlOiBwYXJlbnQpIHtcbi8vLyAgICAgICBiYWNrZ3JvdW5kOiB2YXJ5LWdldCgnY29sb3ItcHJpbWFyeScpO1xuLy8vICAgICAgIGJvcmRlcjogdmFyeS1nZXQoJ2JvcmRlcicpO1xuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENvbXBpbGVzIGludG9cbi8vLyAgIC5mb28ge1xuLy8vICAgICBiYWNrZ3JvdW5kOiByZWQ7XG4vLy8gICB9XG4vLy8gICAuaXMtdXNlciAuZm9vIHtcbi8vLyAgICAgY29sb3I6IGJsdWU7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZjA7XG4vLy8gICB9XG4vLy8gICAuaXMtYWRtaW4gLmZvbyB7XG4vLy8gICAgIGNvbG9yOiBwaW5rO1xuLy8vICAgICBib3JkZXI6IDEwcHggc29saWQgcmVkO1xuLy8vICAgfVxuLy8vXG5AbWl4aW4gdmFyeSgkY3JlYXRlOiAkdmFyeS1kZWZhdWx0LWNyZWF0ZSwgJGZvcjogJ2FsbCcsICRub3Q6ICgpLCAkbG9vcDogJHZhcnktbWFwKXtcbiAgICBAaWYgbm90ICgkbG9vcCA9PSBudWxsKSB7XG4gICAgICAgICR2YXJ5LWxvb3AtbWFwOiAkbG9vcCAhZ2xvYmFsO1xuICAgICAgICAkZW50aXR5LWxpc3Q6IHZhcnktZmlsdGVyKCRmb3IsICRub3QsICRsb29wKTtcblxuICAgICAgICAkY3JlYXRpb24tbW9kZXM6IHBhcmVudCwgaW5zZXJ0LCBtb2RpZmllciwgYXBwZW5kLCBjdXN0b207XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdmFsaWQgY3JlYXRpb24gbW9kZVxuICAgICAgICBAaWYgbm90IGluZGV4KCRjcmVhdGlvbi1tb2RlcywgJGNyZWF0ZSkge1xuICAgICAgICAgICAgQGVycm9yKCAnVGhlcmUgaXMgbm8gYCN7JGNyZWF0ZX1gIGNyZWF0aW9uIG1vZGUgaW4gdGhpcyB2ZXJzaW9uIG9mIHZhcnkuJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBHbyB0aHJvdWdoIGFsbCB0aGUgY3JlYXRpb24gbW9kZXNcbiAgICAgICAgQGlmICRjcmVhdGUgPT0gJ3BhcmVudCcge1xuICAgICAgICAgICAgLy8gQm9keSBjbGFzc1xuICAgICAgICAgICAgQGVhY2ggJGVudGl0eSBpbiAkZW50aXR5LWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmFyeS1zaW5nbGUtcGFyZW50KCRlbnRpdHkpIHtcbiAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSBpZiAkY3JlYXRlID09ICdpbnNlcnQnIHtcbiAgICAgICAgICAgIC8vIEJvZHkgY2xhc3Mgd2l0aCBodG1sIHBhcmVudCBjbGFzc1xuICAgICAgICAgICAgQGVhY2ggJGVudGl0eSBpbiAkZW50aXR5LWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmFyeS1zaW5nbGUtaHRtbGJvZHkoJGVudGl0eSkge1xuICAgICAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIGlmICRjcmVhdGUgPT0gJ21vZGlmaWVyJyB7XG4gICAgICAgICAgICAvLyBCRU0gbW9kaWZpZXJcbiAgICAgICAgICAgIEBlYWNoICRlbnRpdHkgaW4gJGVudGl0eS1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZhcnktc2luZ2xlLW1vZGlmaWVyKCRlbnRpdHkpIHtcbiAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSBpZiAkY3JlYXRlID09ICdhcHBlbmQnIHtcbiAgICAgICAgICAgIC8vIEFwcGVuZGVkIGNsYXNzXG4gICAgICAgICAgICBAZWFjaCAkZW50aXR5IGluICRlbnRpdHktbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2YXJ5LXNpbmdsZS1hcHBlbmQoJGVudGl0eSkge1xuICAgICAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIC8vIEN1c3RvbVxuICAgICAgICAgICAgQGVhY2ggJGVudGl0eSBpbiAkZW50aXR5LWxpc3Qge1xuICAgICAgICAgICAgICBAaW5jbHVkZSB2YXJ5LXNpbmdsZS1jdXN0b20oJGVudGl0eSkge1xuICAgICAgICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICBAd2FybihcIiRsb29wIGlzIGBudWxsYCwgdGhlbWluZyBkaXNhYmxlZCBmb3IgdGhpcyBtb2R1bGUuXCIsICRsb29wKTtcbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNQQUdFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQHVzZSBcInNhc3M6bWF0aFwiIGFzICo7XG5cbiRwYWdlLXNjb3BlZDogICAgICAgICAgICAgICAgICAkR0xPQkFMLVNDT1BFRCAhZGVmYXVsdDtcbiRwYWdlLXRleHQtZm9udDogICAgICAgICAgICAgICAkQkFTRS1GT05ULUZBTUlMWSAhZGVmYXVsdDtcbiRwYWdlLXRleHQtZm9udC13ZWlnaHQ6ICAgICAgICBudWxsICFkZWZhdWx0O1xuJHBhZ2UtdGV4dC1zaXplOiAgICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1TSVpFICFkZWZhdWx0O1xuJHBhZ2UtdGV4dC1saW5lLWhlaWdodDogICAgICAgICRHTE9CQUwtTElORS1IRUlHSFQgIWRlZmF1bHQ7XG4kcGFnZS10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcbiRwYWdlLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAkQ09MT1ItQkFTRS1CQUNLR1JPVU5EICFkZWZhdWx0O1xuJHBhZ2UtdHlwb2dyYXBoeS1jYWxjdWxhdGlvbnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8qKlxuICogSGlnaC0sIHBhZ2UtbGV2ZWwgc3R5bGluZy5cbiAqXG4gKiBbMV0gRW5zdXJlIHRoZSBwYWdlIGFsd2F5cyBmaWxscyBhdCBsZWFzdCB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgdmlld3BvcnQuXG4gKiBbMl0gRm9yY2Ugc2Nyb2xsYmFycyB0byBhbHdheXMgYmUgdmlzaWJsZSB0byBwcmV2ZW50IGF3a3dhcmQg4oCYanVtcHPigJkgd2hlblxuICogICAgIG5hdmlnYXRpbmcgYmV0d2VlbiBwYWdlcyB0aGF0IGRvL2RvIG5vdCBoYXZlIGVub3VnaCBjb250ZW50IHRvIHByb2R1Y2VcbiAqICAgICBzY3JvbGxiYXJzIG5hdHVyYWxseS5cbiAqIFszXSBTZXQgdGhlIGRlZmF1bHQgYGZvbnQtc2l6ZWAgYW5kIGBsaW5lLWhlaWdodGAgZm9yIHRoZSBlbnRpcmUgcHJvamVjdCxcbiAqICAgICBzb3VyY2VkIGZyb20gb3VyIGJhc2UgdmFyaWFibGVzLiBUaGUgYGZvbnQtc2l6ZWAgaXMgY2FsY3VsYXRlZCB0byBleGlzdFxuICogICAgIGluIGVtcywgdGhlIGBsaW5lLWhlaWdodGAgaXMgY2FsY3VsYXRlZCB0byBleGlzdCB1bml0bGVzc2x5LlxuICogICAgIG5hdmlnYXRpbmcgYmV0d2VlbiBwYWdlcyB0aGF0IGRvL2RvIG5vdCBoYXZlIGVub3VnaCBjb250ZW50IHRvIHByb2R1Y2VcbiAqICAgICBzY3JvbGxiYXJzIG5hdHVyYWxseS5cbiAqIFs0XSBBc3NpZ24gb3VyIGJhc2UgYGZvbnQtZmFtaWx5YCBmb3IgdGhlIHdob2xlIHNpdGUuXG4gKiAgICAgV2UgaGF2ZSB0byBpbmhlcml0IGBmb250LWZhbWlseWAgb24gYGJvZHlgIHRvIG92ZXJyaWRlIG1vZGVybi1ub3JtYWxpemXigJlzIGRlZmF1bHRcbiAqICAgICBzeXN0ZW0gYGZvbnQtZmFtaWx5YC4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvbW9kZXJuLW5vcm1hbGl6ZS9pc3N1ZXMvM1xuICogWzVdIFNldCBvdXIgc2l0ZXMgYmFja2dyb3VuZCBjb2xvciBnbG9iYWxseS5cbiAqIFs2XSBTZXQgb3VyIGJhc2UgdGV4dCBjb2xvciBnbG9iYWxseS5cbiAqIFs3XSBQcm9ncmVzc2l2ZWx5IGVuaGFuY2VkIHNtb290aCBzY3JvbGxpbmcuXG4gKiAgICAgU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RlL2RvY3MvV2ViL0NTUy9zY3JvbGwtYmVoYXZpb3JcbiAqIFs4XSBJZiB0aGUgdXNlciBwcmVmZXJzIHJlZHVjZWQgbW90aW9uLCBzZXQgdHJhbnNpdGlvbiBkdXJhdGlvbiB0byBgMGAuXG4gKiAgICAgVGhlIENTUyBjdXN0b20gcHJvcGVydHkgaXMgYmVpbmcgdXNlZCBieSBgMDItdG9vbHMvX3Rvb2xzLnRyYW5zaXRpb24uc2Nzc2AuXG4gKiBbOV0gSWYgdGhlIHVzZXIgcHJlZmVycyByZWR1Y2VkIG1vdGlvbiwgZGlzYWJsZSBzbW9vdGggc2Nyb2xsaW5nIGFuaW1hdGlvbnMuXG4gKi9cbmh0bWwge1xuICAgIEBpZiAoJHBhZ2Utc2NvcGVkID09IGZhbHNlKSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7IC8qIFsxXSAqL1xuICAgICAgICBvdmVyZmxvdy15OiBpbml0aWFsOyAvKiBbMl0gKi9cbiAgICB9XG4gICAgZm9udC1mYW1pbHk6ICRwYWdlLXRleHQtZm9udDsgLyogWzRdICovXG4gICAgZm9udC13ZWlnaHQ6ICRwYWdlLXRleHQtZm9udC13ZWlnaHQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2UtYmFja2dyb3VuZC1jb2xvcjsgLyogWzVdICovXG4gICAgY29sb3I6ICRwYWdlLXRleHQtY29sb3I7IC8qIFs2XSAqL1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7IC8qIFs3XSAqL1xuXG4gICAgQGlmICgkcGFnZS10eXBvZ3JhcGh5LWNhbGN1bGF0aW9ucykge1xuICAgICAgICBmb250LXNpemU6IGRpdigkcGFnZS10ZXh0LXNpemUsIDE2cHgpICogMWVtOyAvKiBbM10gKi9cbiAgICAgICAgbGluZS1oZWlnaHQ6IGRpdigkcGFnZS10ZXh0LWxpbmUtaGVpZ2h0LCAkcGFnZS10ZXh0LXNpemUpOyAvKiBbM10gKi9cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwYWdlLXRleHQtbGluZS1oZWlnaHQ7XG4gICAgfVxuXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvbWVkaWEtZmVhdHVyZS12YWx1ZS1kb2xsYXItdmFyaWFibGUgKi9cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSwgKHVwZGF0ZTogc2xvdykge1xuICAgICAgICAtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb246IDA7XG4gICAgICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bztcbiAgICB9XG59XG5cbi8qKlxuICogQXNzaWduIHRoZSBiYXNlIGZvbnQtc2l6ZSB0byB0aGUgcGFnZS4gVGhlIGByZXNwb25zaXZlLWZvbnQtc2l6ZWAgbWl4aW4gaGFzXG4gKiB0byBiZSBhc3NpZ25lZCB0byB0aGUgYm9keSBlbGVtZW50IHRvIHdvcmsgcHJvcGVybHkgZm9yIGFsbCBlbGVtZW50cyB0aGF0IGdldFxuICogdGhlaXIgZm9udC1zaXplIHZpYSB0aGUgYGZvbnQtc2l6ZWAgbWl4aW4uXG4gKi9cbmJvZHkge1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCRGUzApO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiBbNF0gKi9cbn1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNGT05UU1xuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8vIEBzYXNzLWV4cG9ydC1zZWN0aW9uPVwiZm9udFNldHRpbmdzXCJcblxuLy8gVGhlIGZvbnQtd2VpZ2h0cyBhcmUgZGVmaW5lZCBhcyBudW1lcmljYWwgdmFsdWVzIGluc3RlYWQgb2YgbmFtZWQgdmFsdWVzXG4vLyBpbiBvcmRlciB0byBhdm9pZCBicm93c2VyIG1hcHBpbmcgaXNzdWVzXG4vLyAoc2VlIGh0dHBzOi8vd3d3LndlYnR5cGUuY29tL2luZm8vYXJ0aWNsZXMvZm9udHMtd2VpZ2h0cy8pLlxuLy9cbi8vIEFzIHRoZSB2YWx1ZXMgY2FuIGRpZmZlciB0byBlYWNoIGZvbnQgdGhlc2UgdmFsdWVzIHNob3VsZCBiZSBjaGVja2VkXG4vLyBhbmQgbW9kaWZpZWQgcGVyIGJyYW5kLlxuXG4kR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVI6IDQwMCAhZGVmYXVsdDtcbiRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRDogICAgNzAwICFkZWZhdWx0O1xuXG5cbiRCQVNFLUZPTlQ6ICAgICAgICAgICAgICAgICAgXCJvcGVuLXNhbnNcIiAhZGVmYXVsdDtcbiRCQVNFLUZPTlQtRkFMTEJBQ0tTOiAgICAgICAgc2Fucy1zZXJpZiAhZGVmYXVsdDtcbi8vIGAkQkFTRS1GT05ULVZBUklBTlRTYCB3aWxsIGJlIHVzZWQgaWYgYCRCQVNFLUZPTlQtVkFSSUFCTEUtVkFSSUFUSU9OLUFYSVNgXG4vLyBpcyBub3Qgc2V0LlxuJEJBU0UtRk9OVC1WQVJJQU5UUzogKFxuICAgIFwiYm9sZFwiOiAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQsXG4gICAgXCJyZWd1bGFyXCI6ICRHTE9CQUwtRk9OVC1XRUlHSFQtUkVHVUxBUlxuKSAhZGVmYXVsdDtcbiRCQVNFLUZPTlQtRkFNSUxZOiAgICAgICAgICAgKCRCQVNFLUZPTlQsICRCQVNFLUZPTlQtRkFMTEJBQ0tTKSAhZGVmYXVsdDtcblxuLy8gVXNlIGAkQkFTRS1GT05ULVZBUklBQkxFLVZBUklBVElPTi1BWElTYCB0byBzZXQgdmFyaWFibGUgZm9udCB2YXJpYXRpb24gZmVhdHVyZXMuXG4vLyBJZiBzZXQsIGAkQkFTRS1GT05ULVZBUklBTlRTYCB3aWxsIGJlIGlnbm9yZWQuXG5cbiRBTFQtRk9OVDogICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRBTFQtRk9OVC1GQUxMQkFDS1M6ICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRBTFQtRk9OVC1WQVJJQU5UUzogICAgICAgICAgKCkgIWRlZmF1bHQ7XG4kQUxULUZPTlQtRkFNSUxZOiAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRGT05ULVJFVklTSU9OOiAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuLy8gQGVuZC1zYXNzLWV4cG9ydC1zZWN0aW9uXG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjQ09MT1JTXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gTGl0ZXJhbCBjb2xvciBwYWxldHRlLlxuLy8gRE9OJ1QgVVNFIFRIRVNFIFZBUlMgSU4gWU9VUiBDT0RFQkFTRSEhIVxuLy8gQHNhc3MtZXhwb3J0LXNlY3Rpb249XCJsaXRlcmFsQ29sb3JzXCJcbiRfX2VsZWN0cmljLTUwX186ICAjZThmZmYxICFkZWZhdWx0O1xuJF9fZWxlY3RyaWMtMjAwX186ICNhOGZmY2MgIWRlZmF1bHQ7XG4kX19lbGVjdHJpYy0zMDBfXzogIzc4ZmFhZSAhZGVmYXVsdDtcbiRfX2VsZWN0cmljLTUwMF9fOiAjNTliYzg3ICFkZWZhdWx0O1xuJF9fZWxlY3RyaWMtNjAwX186ICM0MTk0NjggIWRlZmF1bHQ7XG5cbiRfX2VtZXJhbGQtODAwX186ICAjMGUzYTJmICFkZWZhdWx0O1xuXG5cbiRfX25ldXRyYWwtMF9fOiAgICAjZmZmZmZmICFkZWZhdWx0O1xuJF9fbmV1dHJhbC0yNV9fOiAgICNmMWYxZjEgIWRlZmF1bHQ7XG4kX19uZXV0cmFsLTUwX186ICAgI2U0ZTRlNCAhZGVmYXVsdDtcbiRfX25ldXRyYWwtMTAwX186ICAjZDhkOGQ4ICFkZWZhdWx0O1xuJF9fbmV1dHJhbC0yMDBfXzogICNjNGM2YzcgIWRlZmF1bHQ7XG4kX19uZXV0cmFsLTMwMF9fOiAgIzllOWZhMCAhZGVmYXVsdDtcbiRfX25ldXRyYWwtNTAwX186ICAjN2M3ZDdlICFkZWZhdWx0O1xuJF9fbmV1dHJhbC02MDBfXzogICM1YTViNWMgIWRlZmF1bHQ7XG4kX19uZXV0cmFsLTcwMF9fOiAgIzQ2NDc0OCAhZGVmYXVsdDtcbiRfX25ldXRyYWwtODAwX186ICAjMzAzMTMyICFkZWZhdWx0O1xuJF9fbmV1dHJhbC05MDBfXzogICMxNjE3MTggIWRlZmF1bHQ7XG5cbiRfX3JlZF9fOiAgICAgICAgICAjZTgyYjM3ICFkZWZhdWx0O1xuJF9fb3JhbmdlX186ICAgICAgICNlYzY1MTMgIWRlZmF1bHQ7XG4kX19ibHVlX186ICAgICAgICAgIzJkNzFkNyAhZGVmYXVsdDtcbiRfX2dyZWVuX186ICAgICAgICAjMzdkMDAyICFkZWZhdWx0O1xuXG4kX193aGl0ZV9fOiAgICAgICAgI2ZmZmZmZiAhZGVmYXVsdDtcbiRfX2JsYWNrX186ICAgICAgICAkX19uZXV0cmFsLTkwMF9fICFkZWZhdWx0O1xuXG4vLyBUcmFuc3BhcmVuY3kgQ29sb3JzXG4kX190cmFuc3BhcmVuY3ktcHJpbWFyeV9fOiAgICAgcmdiYSgkX19uZXV0cmFsLTkwMF9fLCAwLjA2KSAhZGVmYXVsdDtcbiRfX3RyYW5zcGFyZW5jeS1zZWNvbmRhcnlfXzogICByZ2JhKCMxYTFiMWMsIDAuMTIpICFkZWZhdWx0O1xuJF9fdHJhbnNwYXJlbmN5LXRlcnRpYXJ5X186ICAgIHJnYmEoI2YzZjNmMywgMC4xMikgIWRlZmF1bHQ7XG4kX190cmFuc3BhcmVuY3ktcXVhcnRlcm5hcnlfXzogcmdiYSgjZjNmM2YzLCAwLjE4KSAhZGVmYXVsdDtcblxuLy8gTWFya2V0aW5nIENvbG9yc1xuJF9fbWFya2V0aW5nLTFfXzogbWl4KCRfX29yYW5nZV9fLCAjZmZmZmZmLCAzMCUpICFkZWZhdWx0O1xuJF9fbWFya2V0aW5nLTJfXzogbWl4KCRfX2dyZWVuX18sICNmZmZmZmYsIDMwJSkgIWRlZmF1bHQ7XG4vLyBAZW5kLXNhc3MtZXhwb3J0LXNlY3Rpb25cblxuXG4vLyBTZW1hbnRpYyBjb2xvciBwYWxldHRlLlxuLy8gVVNFIFRIRVNFIFZBUlMgSU4gWU9VUiBDT0RFQkFTRS5cbi8vIEBzYXNzLWV4cG9ydC1zZWN0aW9uPVwic2VtYW50aWNDb2xvcnNcIlxuJENPTE9SLVNVUkZBQ0UtUFJJTUFSWTogICAgICAgICAgJF9fbmV1dHJhbC0yNV9fICFkZWZhdWx0O1xuJENPTE9SLVNVUkZBQ0UtU0VDT05EQVJZOiAgICAgICAgJF9fbmV1dHJhbC01MF9fICFkZWZhdWx0O1xuJENPTE9SLVNVUkZBQ0UtUVVBUlRFUk5BUlk6ICAgICAgJF9fbmV1dHJhbC04MDBfXyAhZGVmYXVsdDtcblxuJENPTE9SLU9OLVNVUkZBQ0UtMTAwOiAgICAgICAgICAgJF9fbmV1dHJhbC0xMDBfXyAhZGVmYXVsdDtcbiRDT0xPUi1PTi1TVVJGQUNFLTIwMDogICAgICAgICAgICRfX25ldXRyYWwtMjAwX18gIWRlZmF1bHQ7XG4kQ09MT1ItT04tU1VSRkFDRS0zMDA6ICAgICAgICAgICAkX19uZXV0cmFsLTMwMF9fICFkZWZhdWx0O1xuJENPTE9SLU9OLVNVUkZBQ0UtNTAwOiAgICAgICAgICAgJF9fbmV1dHJhbC01MDBfXyAhZGVmYXVsdDtcbiRDT0xPUi1PTi1TVVJGQUNFLTYwMDogICAgICAgICAgICRfX25ldXRyYWwtNjAwX18gIWRlZmF1bHQ7XG4kQ09MT1ItT04tU1VSRkFDRS03MDA6ICAgICAgICAgICAkX19uZXV0cmFsLTcwMF9fICFkZWZhdWx0O1xuJENPTE9SLU9OLVNVUkZBQ0UtOTAwOiAgICAgICAgICAgJF9fbmV1dHJhbC05MDBfXyAhZGVmYXVsdDtcblxuJENPTE9SLVRSQU5TUEFSRU5DWS1QUklNQVJZOiAgICAgJF9fdHJhbnNwYXJlbmN5LXByaW1hcnlfXyAhZGVmYXVsdDtcbiRDT0xPUi1UUkFOU1BBUkVOQ1ktU0VDT05EQVJZOiAgICRfX3RyYW5zcGFyZW5jeS1zZWNvbmRhcnlfXyAhZGVmYXVsdDtcbiRDT0xPUi1UUkFOU1BBUkVOQ1ktVEVSVElBUlk6ICAgICRfX3RyYW5zcGFyZW5jeS10ZXJ0aWFyeV9fICFkZWZhdWx0O1xuJENPTE9SLVRSQU5TUEFSRU5DWS1RVUFSVEVSTkFSWTogJF9fdHJhbnNwYXJlbmN5LXF1YXJ0ZXJuYXJ5X18gIWRlZmF1bHQ7XG5cbiRDT0xPUi1JTkFDVElWRS1QUklNQVJZOiAgICAgICAgICRfX25ldXRyYWwtMjAwX18gIWRlZmF1bHQ7XG4kQ09MT1ItSU5BQ1RJVkUtU0VDT05EQVJZOiAgICAgICAkX19uZXV0cmFsLTEwMF9fICFkZWZhdWx0O1xuJENPTE9SLUlOQUNUSVZFLVRFUlRJQVJZOiAgICAgICAgJF9fbmV1dHJhbC0zMDBfXyAhZGVmYXVsdDtcblxuJENPTE9SLUJBU0UtQkFDS0dST1VORDogICAgICAgICAgJF9fd2hpdGVfXyAhZGVmYXVsdDtcbiRDT0xPUi1BTFQtQkFDS0dST1VORDogICAgICAgICAgICRDT0xPUi1CQVNFLUJBQ0tHUk9VTkQgIWRlZmF1bHQ7XG4kQ09MT1ItQkFTRS1URVhUOiAgICAgICAgICAgICAgICAkX19uZXV0cmFsLTkwMF9fICFkZWZhdWx0O1xuJENPTE9SLUFMVC1URVhUOiAgICAgICAgICAgICAgICAgJF9fd2hpdGVfXyAhZGVmYXVsdDtcbiRDT0xPUi1CQVNFOiAgICAgICAgICAgICAgICAgICAgICRfX25ldXRyYWwtOTAwX18gIWRlZmF1bHQ7XG4kQ09MT1ItV0hJVEU6ICAgICAgICAgICAgICAgICAgICAkX193aGl0ZV9fICFkZWZhdWx0O1xuJENPTE9SLUJMQUNLOiAgICAgICAgICAgICAgICAgICAgJF9fYmxhY2tfXyAhZGVmYXVsdDtcbiRDT0xPUi1CUkFORDogICAgICAgICAgICAgICAgICAgICRfX2VsZWN0cmljLTYwMF9fICFkZWZhdWx0O1xuJENPTE9SLUJSQU5ELUhPVkVSOiAgICAgICAgICAgICAgJF9fZWxlY3RyaWMtNTAwX18gIWRlZmF1bHQ7XG4kQ09MT1ItQlJBTkQtU0VDT05EQVJZOiAgICAgICAgICAkX19lbGVjdHJpYy0zMDBfXyAhZGVmYXVsdDtcbiRDT0xPUi1CUkFORC1TRUNPTkRBUlktSE9WRVI6ICAgICRfX2VsZWN0cmljLTIwMF9fICFkZWZhdWx0O1xuJENPTE9SLUJSQU5ELVRFUlRJQVJZOiAgICAgICAgICAgJF9fZW1lcmFsZC04MDBfXyAhZGVmYXVsdDtcbiRDT0xPUi1CUkFORC1RVUFSVEVSTkFSWTogICAgICAgICRfX2VsZWN0cmljLTUwX18gIWRlZmF1bHQ7XG4kQ09MT1ItU1VCVExFOiAgICAgICAgICAgICAgICAgICAkQ09MT1ItT04tU1VSRkFDRS01MDAgIWRlZmF1bHQ7XG4kQ09MT1ItUEFMRTogICAgICAgICAgICAgICAgICAgICAkQ09MT1ItT04tU1VSRkFDRS0xMDAgIWRlZmF1bHQ7XG4kQ09MT1ItREVDRU5UOiAgICAgICAgICAgICAgICAgICAkQ09MT1ItT04tU1VSRkFDRS03MDAgIWRlZmF1bHQ7XG4kQ09MT1ItSElHSExJR0hUOiAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kQ09MT1ItU1VDQ0VTUzogICAgICAgICAgICAgICAgICAkX19ncmVlbl9fICFkZWZhdWx0O1xuJENPTE9SLUlORk86ICAgICAgICAgICAgICAgICAgICAgJF9fYmx1ZV9fICFkZWZhdWx0O1xuJENPTE9SLUFMRVJUOiAgICAgICAgICAgICAgICAgICAgJF9fcmVkX18gIWRlZmF1bHQ7XG4kQ09MT1ItV0FSTklORzogICAgICAgICAgICAgICAgICAkX19vcmFuZ2VfXyAhZGVmYXVsdDtcbiRDT0xPUi1JTkFDVElWRTogICAgICAgICAgICAgICAgICRDT0xPUi1JTkFDVElWRS1URVJUSUFSWSAhZGVmYXVsdDtcbiRDT0xPUi1CT1JERVI6ICAgICAgICAgICAgICAgICAgICRfX25ldXRyYWwtNTBfXyAhZGVmYXVsdDtcbiRDT0xPUi1GT0NVUzogICAgICAgICAgICAgICAgICAgICRDT0xPUi1PTi1TVVJGQUNFLTkwMCAhZGVmYXVsdDtcblxuJENPTE9SLU1BUktFVElORy0xOiAgICAgICAgICAgICAgJF9fbWFya2V0aW5nLTFfXyAhZGVmYXVsdDtcbiRDT0xPUi1NQVJLRVRJTkctMjogICAgICAgICAgICAgICRfX21hcmtldGluZy0yX18gIWRlZmF1bHQ7XG4vLyBAZW5kLXNhc3MtZXhwb3J0LXNlY3Rpb25cblxuJEdMT0JBTC1CQUNLRFJPUC1CQUNLR1JPVU5EOiAgICAgcmdiYSgkX19uZXV0cmFsLTUwX18sIDAuOCkgIWRlZmF1bHQ7XG5cbiRDT0xPUi1ST1ctSE9WRVI6ICAgICAgICAgICAgICAgICRfX25ldXRyYWwtMjVfXyAhZGVmYXVsdDtcbiRDT0xPUi1ST1ctU0VMRUNURUQ6ICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcblxuJENPTE9SLUlOQUNUSVZFLUxBWUVSLUNPTE9SOiAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJENPTE9SLUlOQUNUSVZFLUxBWUVSLU9QQUNJVFk6ICAgMC42ICFkZWZhdWx0O1xuXG4vLyBHZW5lcmF0ZSBiYWNrZ3JvdW5kIGNvbG9yIHV0aWxpdHkgY2xhc3Nlcy5cbi8vIEBzYXNzLWV4cG9ydC1zZWN0aW9uPVwiYmFja2dyb3VuZENvbG9yc1wiXG4kQkFDS0dST1VORC1VVElMSVRJRVM6IChcbiAgICBcImFsdGVybmF0aXZlXCI6ICRDT0xPUi1BTFQtQkFDS0dST1VORCxcbiAgICBcImJyYW5kXCI6ICAgICAgICRDT0xPUi1CUkFORCxcbiAgICBcIndoaXRlXCI6ICAgICAgICRDT0xPUi1XSElURVxuKSAhZGVmYXVsdDtcbi8vIEBlbmQtc2Fzcy1leHBvcnQtc2VjdGlvblxuXG5cbi8vIEdlbmVyYXRlIHRleHQgY29sb3IgdXRpbGl0eSBjbGFzc2VzLlxuLy8gQHNhc3MtZXhwb3J0LXNlY3Rpb249XCJ0ZXh0Q29sb3JVdGlsaXRpZXNcIlxuJFRFWFQtQ09MT1ItVVRJTElUSUVTOiAoXG4gICAgXCJiYXNlXCI6ICAkQ09MT1ItQkFTRS1URVhULFxuICAgIFwibXV0ZWRcIjogJENPTE9SLVBBTEUsXG4pICFkZWZhdWx0O1xuLy8gQGVuZC1zYXNzLWV4cG9ydC1zZWN0aW9uXG5cbi8vIE1ha2Ugc3VyZSB0aGUga2V5cyBtYXRjaCBpbiBib3RoIGZpbGVzLlxuLy8gVGhpcyBuZWVkcyB0byBiZSBhdmFpbGFibGUgaW4gQUxMIGJyYW5kcy5cbi8vIEBzYXNzLWV4cG9ydC1zZWN0aW9uPVwidGhlbWVDb2xvcnNcIlxuJF9fdGhlbWUtY29sb3JzX186IChcbiAgICBcInRoZW1lXCI6ICAgICAkQ09MT1ItV0hJVEUsXG4gICAgXCJ0aWxlXCI6ICAgICAgJENPTE9SLVdISVRFLFxuKSAhZGVmYXVsdDtcbi8vIEBlbmQtc2Fzcy1leHBvcnQtc2VjdGlvblxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0RFRklOSVRJT04gTElTVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogQERFUFJFQ0FURUQ6IFRoZSB1c2Ugb2YgYGRsYCBmb3Igc3BlY2lmaWMgc3R5bGluZyBpcyBkZXByZWNhdGVkLlxuICogICAgICAgICAgICAgIFVzZSB0aGUgRGVzY3JpcHRpb24gTGlzdCBjb21wb25lbnQgaW5zdGVhZC5cbiAqL1xuXG4vLyBEZWZpbmUgd2VpZ2h0IG9mIGRlZmluaXRpb24gbGlzdCB0aXRsZSBlbGVtZW50c1xuJGRlZmluaXRpb24tbGlzdC1zcGFjaW5nOiAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuXG4kZGVmaW5pdGlvbi1saXN0LXRpdGxlLXNpemU6ICAgICAgICAgJEZTMCAhZGVmYXVsdDtcbiRkZWZpbml0aW9uLWxpc3QtdGl0bGUtc3BhY2luZzogICAgICBudWxsICFkZWZhdWx0O1xuJGRlZmluaXRpb24tbGlzdC10aXRsZS13ZWlnaHQ6ICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCAhZGVmYXVsdDtcbiRkZWZpbml0aW9uLWxpc3QtdGl0bGUtY29sb3I6ICAgICAgICAkQ09MT1ItQkFTRS1URVhUICFkZWZhdWx0O1xuXG4kZGVmaW5pdGlvbi1saXN0LWRlc2NyaXB0aW9uLXNpemU6ICAgJEZTMCAhZGVmYXVsdDtcbiRkZWZpbml0aW9uLWxpc3QtZGVzY3JpcHRpb24td2VpZ2h0OiAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG4kZGVmaW5pdGlvbi1saXN0LWRlc2NyaXB0aW9uLWNvbG9yOiAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcblxuXG5kdCB7XG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoJGRlZmluaXRpb24tbGlzdC10aXRsZS1zaXplKTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZGVmaW5pdGlvbi1saXN0LXRpdGxlLXNwYWNpbmc7XG4gICAgZm9udC13ZWlnaHQ6ICRkZWZpbml0aW9uLWxpc3QtdGl0bGUtd2VpZ2h0O1xuICAgIGNvbG9yOiAkZGVmaW5pdGlvbi1saXN0LXRpdGxlLWNvbG9yO1xufVxuXG5kZCB7XG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoJGRlZmluaXRpb24tbGlzdC1kZXNjcmlwdGlvbi1zaXplKTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZGVmaW5pdGlvbi1saXN0LXNwYWNpbmc7XG4gICAgZm9udC13ZWlnaHQ6ICRkZWZpbml0aW9uLWxpc3QtZGVzY3JpcHRpb24td2VpZ2h0O1xuICAgIGNvbG9yOiAkZGVmaW5pdGlvbi1saXN0LWRlc2NyaXB0aW9uLWNvbG9yO1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNFTEVNRU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmJ1dHRvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0xBQkVMXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBOYXRpdmUgPGxhYmVsPiBIVE1MIGVsZW1lbnQuXG4gKi9cblxuJGxhYmVsLW1hcmdpbi1ib3R0b206ICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiRsYWJlbC1jb2xvcjogICAgICAgICAkQ09MT1ItQkFTRS1URVhUICFkZWZhdWx0O1xuXG5sYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206ICRsYWJlbC1tYXJnaW4tYm90dG9tO1xuICAgIGNvbG9yOiAkbGFiZWwtY29sb3I7XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTElTVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtY29tYmluYXRvcnMsIHNlbGVjdG9yLW1heC1jb21wb3VuZC1zZWxlY3RvcnMsIHNlbGVjdG9yLW1heC10eXBlICovXG5cbiRsaXN0LXZlcnRpY2FsLXNwYWNpbmc6ICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJGxpc3QtdmVydGljYWwtc3BhY2luZy1zbWFsbDogICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJGxpc3Qtb3JkZXJlZC1ob3Jpem9udGFsLW9mZnNldDogZmFsc2UgIWRlZmF1bHQ7XG4kbGlzdC1uZXN0ZWQtdmVydGljYWwtc3BhY2luZzogICAwICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBTZWNvbmQgbGV2ZWwgbGlzdHMgaGF2ZSBhIHNtYWxsZXIgc3BhY2luZyBvbiB0b3AgYW5kXG4gKiAgICAgYSBub3JtYWwgb25lIGF0IHRoZSBib3R0b20uXG4gKiBbMl0gVGhpcmQgbGV2ZWwgbGlzdHMgaGF2ZSBhIHNtYWxsZXIgc3BhY2luZyBvbiB0b3AgYW5kXG4gKiAgICAgYXQgdGhlIGJvdHRvbS5cbiAqIFszXSBPZmZzZXQgYnkgb25lIGNoYXJhY3RlciB0byBhbGlnbiBjb250YWluZXIgd2l0aCAyIGRpZ2l0IGluZGV4XG4gKiAgICAgYW5kIHByZXZlbnQgY3V0LW9mZi5cbiAqICAgICBUaGlzIGRlcGVuZHMgb24gdGhlIGZvbnQsIGZvbnQtc2l6ZSBhbmQgZ2xvYmFsLXNwYWNpbmcsIHNvIGEgZmxhZyBpcyB1c2VkXG4gKiAgICAgdG8gc2VsZWN0aXZlbHkgc2V0IGl0IHBlciBicmFuZC5cbiAqL1xudWwsXG5vbCB7XG5cbiAgICBsaSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LXZlcnRpY2FsLXNwYWNpbmc7XG5cbiAgICAgICAgPiB1bCxcbiAgICAgICAgPiBvbCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkbGlzdC12ZXJ0aWNhbC1zcGFjaW5nLXNtYWxsOyAvKiBbMV0gKi9cbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LXZlcnRpY2FsLXNwYWNpbmc7IC8qIFsxXSAqL1xuXG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGxpc3QtbmVzdGVkLXZlcnRpY2FsLXNwYWNpbmc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxpID4gdWwge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LXZlcnRpY2FsLXNwYWNpbmctc21hbGw7IC8qIFsyXSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuXG5vbCB7XG4gICAgQGlmICgkbGlzdC1vcmRlcmVkLWhvcml6b250YWwtb2Zmc2V0KSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKCN7JEdMT0JBTC1TUEFDSU5HLVVOSVR9ICsgMWNoKTsgLyogWzNdICovXG4gICAgfVxufVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0xJU1RTIChTZXR0aW5ncylcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kbGlzdC12ZXJ0aWNhbC1zcGFjaW5nOiAwICFkZWZhdWx0O1xuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0hSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGhyLW1hcmdpbi1yaWdodDogIGF1dG8gIWRlZmF1bHQ7XG4kaHItbWFyZ2luLWxlZnQ6ICAgYXV0byAhZGVmYXVsdDtcbiRoci1tYXJnaW4tYm90dG9tOiAkR0xPQkFMLVNQQUNJTkctVU5JVC1MQVJHRSAhZGVmYXVsdDtcbiRoci13aWR0aDogICAgICAgICAxMDAlICFkZWZhdWx0O1xuJGhyLWhlaWdodDogICAgICAgIDFweCAhZGVmYXVsdDtcbiRoci1jb2xvcjogICAgICAgICAkQ09MT1ItQkFTRSAhZGVmYXVsdDtcblxuJGhyLXRoZW1lczogKFxuICAgIFwiYWx0ZXJuYXRpdmVcIjogKFxuICAgICAgICBcImJhY2tncm91bmRcIjogJENPTE9SLUJBU0VcbiAgICApXG4pICFkZWZhdWx0O1xuXG5ociB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6ICRoci13aWR0aDtcbiAgICBoZWlnaHQ6ICRoci1oZWlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAkaHItbWFyZ2luLXJpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206ICRoci1tYXJnaW4tYm90dG9tO1xuICAgIG1hcmdpbi1sZWZ0OiAkaHItbWFyZ2luLWxlZnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoci1jb2xvcjtcblxuICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICRoci10aGVtZXMpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyeS1nZXQoXCJiYWNrZ3JvdW5kXCIpO1xuICAgIH1cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNBTkNIT1JcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFsxXSBFeGNsdWRlIGAuYy1idG5gIGJlY2F1c2UgYnV0dG9ucyBzaG91bGQgYWx3YXlzIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IgaW5cbiAqICAgICBhbGwgc3RhdGVzIHJlZ2FyZGxlc3Mgb2YgdGhlIGVsZW1lbnQuIGB3aGVyZSgpYGlzIHVzZWQgdG8gbm90IGluY3JlYXNlXG4gKiAgICAgdGhlIHNwZWNpZmljaXR5LlxuICovXG5hOndoZXJlKDpub3QoLmMtYnRuKSkgeyAvKiBbMV0gKi9cbiAgICBAaW5jbHVkZSBiYXNlLWxpbmsoKTtcbn1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNCQVNFLUxJTktcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vLyBCYXNlIHNldHRpbmdzXG4kbGluay1jb2xvcjogICAgICAgICAgICAgICAgICAgICBpbmhlcml0ICFkZWZhdWx0O1xuJGxpbmstY3Vyc29yOiAgICAgICAgICAgICAgICAgICAgcG9pbnRlciAhZGVmYXVsdDtcbiRsaW5rLXRleHQtZGVjb3JhdGlvbjogICAgICAgICAgIHVuZGVybGluZSAhZGVmYXVsdDtcbiRsaW5rLXRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IG51bGwgIWRlZmF1bHQ7XG4kbGluay10ZXh0LXVuZGVybGluZS1vZmZzZXQ6ICAgICBudWxsICFkZWZhdWx0O1xuJGxpbmstYm9yZGVyLWJvdHRvbTogICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRsaW5rLWJvcmRlci1ib3R0b20tY29sb3I6ICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kbGluay1zcGFjaW5nLWJvdHRvbTogICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGxpbmstcG9zaXRpb24tY29udGV4dDogICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRsaW5rLWhhcy10cmFuc2l0aW9uOiAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuXG4vLyBob3ZlciBzZXR0aW5nc1xuJGxpbmstYm9yZGVyLWNvbG9yLWhvdmVyOiAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRsaW5rLWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbi8vIGZvY3VzIHNldHRpbmdzXG4kbGluay1ib3JkZXItY29sb3ItZm9jdXM6ICAgICAgICBudWxsICFkZWZhdWx0O1xuJGxpbmstY29sb3ItZm9jdXM6ICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuLy8gYWN0aXZlIHNldHRpbmdzXG4kbGluay1ib3JkZXItY29sb3ItYWN0aXZlOiAgICAgICBudWxsICFkZWZhdWx0O1xuJGxpbmstY29sb3ItYWN0aXZlOiAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuLy8gYWRkaXRpb25hbCB0aGVtaW5nXG4kbGluay10aGVtZXM6ICgpICFkZWZhdWx0O1xuXG4vLy8gQSBtaXhpbiB0byBnZW5lcmF0ZSBiYXNpYyBsaW5rcyBzdHlsZXMuXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGltcG9ydGFudCBbbnVsbF0gVXNlIGAhaW1wb3J0YW50YCBvbiBkZWNsYXJhdGlvbnMuXG5AbWl4aW4gYmFzZS1saW5rKCRpbXBvcnRhbnQ6IG51bGwpIHtcbiAgICBwb3NpdGlvbjogaW1wb3J0YW50KCRsaW5rLXBvc2l0aW9uLWNvbnRleHQsICRpbXBvcnRhbnQpO1xuICAgIHBhZGRpbmctYm90dG9tOiBpbXBvcnRhbnQoJGxpbmstc3BhY2luZy1ib3R0b20sICRpbXBvcnRhbnQpO1xuICAgIGJvcmRlci1ib3R0b206IGltcG9ydGFudCgkbGluay1ib3JkZXItYm90dG9tLCAkaW1wb3J0YW50KTtcbiAgICB0ZXh0LWRlY29yYXRpb246IGltcG9ydGFudCgkbGluay10ZXh0LWRlY29yYXRpb24sICRpbXBvcnRhbnQpO1xuICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6ICRsaW5rLXRleHQtZGVjb3JhdGlvbi10aGlja25lc3M7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAkbGluay10ZXh0LXVuZGVybGluZS1vZmZzZXQ7XG4gICAgY29sb3I6IGltcG9ydGFudCgkbGluay1jb2xvciwgJGltcG9ydGFudCk7XG4gICAgY3Vyc29yOiBpbXBvcnRhbnQoJGxpbmstY3Vyc29yLCAkaW1wb3J0YW50KTtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBpbXBvcnRhbnQoJGxpbmstYm9yZGVyLWJvdHRvbS1jb2xvciwgJGltcG9ydGFudCk7IC8qIFsyXSAqL1xuXG4gICAgQGlmICgkbGluay1oYXMtdHJhbnNpdGlvbikge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCk7XG4gICAgfVxuXG4gICAgQGlmICgkbGluay10aGVtZXMpIHtcbiAgICAgICAgJjp3aGVyZSg6bm90KC5jLWJ0bikpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICRsaW5rLXRoZW1lcykge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBpbXBvcnRhbnQodmFyeS1nZXQoXCJ0ZXh0LWNvbG9yXCIpLCAkaW1wb3J0YW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogaW1wb3J0YW50KCRsaW5rLWNvbG9yLWhvdmVyLCAkaW1wb3J0YW50KTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogaW1wb3J0YW50KCRsaW5rLWJvcmRlci1jb2xvci1ob3ZlciwgJGltcG9ydGFudCk7IC8qIFsyXSAqL1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogaW1wb3J0YW50KCRsaW5rLWNvbG9yLWZvY3VzLCAkaW1wb3J0YW50KTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogaW1wb3J0YW50KCRsaW5rLWJvcmRlci1jb2xvci1mb2N1cywgJGltcG9ydGFudCk7IC8qIFsyXSAqL1xuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6IGltcG9ydGFudCgkbGluay1jb2xvci1hY3RpdmUsICRpbXBvcnRhbnQpO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiBpbXBvcnRhbnQoJGxpbmstYm9yZGVyLWNvbG9yLWFjdGl2ZSwgJGltcG9ydGFudCk7IC8qIFsyXSAqL1xuICAgIH1cblxuICAgIC8vIEFkZGl0aW9uYWwgdGhlbWluZyB2aWEgQGNvbnRlbnQuXG4gICAgQGNvbnRlbnQ7XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNTVFJPTkcgKGA8Yj5gLCBgPHN0cm9uZz5gKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRlbGVtZW50LWJvbGQtZm9udC13ZWlnaHQ6ICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gU2V0L092ZXJ3cml0ZSB3ZWlnaHQgdGhhdCBpcyBzZXQgYnkgYG5vcm1hbGl6ZS5jc3NgXG4gKi9cbmIsXG5zdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiAkZWxlbWVudC1ib2xkLWZvbnQtd2VpZ2h0OyAvKiBbMV0gKi9cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNFTEVNRU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRza29kYS1idXR0b24tZm9udC13ZWlnaHQ6ICRHTE9CQUwtRk9OVC1XRUlHSFQtTElHSFQgIWRlZmF1bHQ7XG5cbmJ1dHRvbiB7XG4gICAgZm9udC13ZWlnaHQ6ICRza29kYS1idXR0b24tZm9udC13ZWlnaHQ7XG59XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjTEFZT1VUIChTZXR0aW5ncylcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFNwYWNpbmdzIGRlcml2ZSBmcm9tIHNwYWNpbmcgdGVtcGxhdGUgaW4gc3R5bGVndWlkZS5cbiAqIGh0dHBzOi8vd3d3LmZpZ21hLmNvbS9maWxlLzhjdDhyVkFLQ0p5Wm1EbXBqSnVWbHYvRkxPVy0tLVdlYi0lMkYtVUktMS4wLjA/bm9kZS1pZD0xOTY3MyUzQTQxOTc0XG4gKi9cblxuJGxheW91dC1ndXR0ZXI6ICAgICAgICAgICAgICAgICAgICAgJExBWU9VVC1HVVRURVIgIWRlZmF1bHQ7XG4kbGF5b3V0LWl0ZW0tc3BhY2luZy12ZXJ0aWNhbDogICAgICAkTEFZT1VULUdVVFRFUiAhZGVmYXVsdDtcbiRsYXlvdXQtZGl2aWRlci1zcGFjaW5nLWhvcml6b250YWw6ICRHTE9CQUwtU1BBQ0lORy1VTklULUxBUkdFICFkZWZhdWx0O1xuJGxheW91dC1kaXZpZGVyLXNwYWNpbmctdmVydGljYWw6ICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG5cbiRsYXlvdXQtZGl2aWRlci13aWR0aDogICAgICAgICAgICAgICRHTE9CQUwtQk9SREVSLVdJRFRIICFkZWZhdWx0O1xuJGxheW91dC1kaXZpZGVyLWNvbG9yOiAgICAgICAgICAgICAgJEdMT0JBTC1CT1JERVItQ09MT1IgIWRlZmF1bHQ7XG4kbGF5b3V0LWRpdmlkZXItb2Zmc2V0LXRvcDogICAgICAgICAtKCRsYXlvdXQtZGl2aWRlci13aWR0aCkgIWRlZmF1bHQ7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSU5MSU5FLUdST1VQXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBBbiBvYmplY3QgdGhhdCBhcnJhbmdlcyBpdGVtcyB3aXRoIGRlZmluZWQgaG9yaXpvbnRhbCBhbmRcbiAqIHZlcnRpY2FsIHNwYWNpbmcgaW4gYSByb3cuIElmIHRoZSBpdGVtcyBkbyBub3QgZml0IGludG8gb25lIHJvdyxcbiAqIHRoZXkgd2lsbCB3cmFwIHRvIHRoZSBuZXh0IHJvdy5cbiAqL1xuXG4vLyBTcGFjaW5nIGJldHdlZW4gaXRlbXNcbiRpbmxpbmUtZ3JvdXAtc3BhY2luZy1ob3Jpem9udGFsOiAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1MQVJHRSAhZGVmYXVsdDtcbiRpbmxpbmUtZ3JvdXAtc3BhY2luZy12ZXJ0aWNhbDogICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcblxuLy8gU3BhY2luZyBmb3Igc21hbGwgdmFyaWFudFxuJGlubGluZS1ncm91cC1zcGFjaW5nLXNtYWxsLWhvcml6b250YWw6ICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJGlubGluZS1ncm91cC1zcGFjaW5nLXNtYWxsLXZlcnRpY2FsOiAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBXZSB1c2UgYGRpc3BsYXk6IGZsZXhgIGluc3RlYWQgb2YgYGRpc3BsYXk6IGlubGluZS1ibG9ja2BcbiAqICAgICB0byBhdm9pZCB1bm5lY2Vzc2FyeSB3aGl0ZSBzcGFjZSBiZXR3ZWVuIGl0ZW1zLlxuICogWzJdIFNldCBzcGFjaW5nIGJldHdlZW4gaXRlbXMgdmlhIGBjb2x1bW4tZ2FwYCBhbmQgYHJvdy1nYXBgIGZvciBmbGV4Ym94LlxuICogWzNdIERlZmVuc2l2ZWx5IHJlc2V0IGFueSBjaGlsZCBlbGVtZW504oCZcyBtYXJnaW5zLlxuICogWzRdIEZvciBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IGBnYXBgIGZvciBmbGV4Ym94IChodHRwczovL2Nhbml1c2UuY29tL2ZsZXhib3gtZ2FwKSxcbiAqICAgICBjcmVhdGUgaG9yaXpvbnRhbCBhbmQgdmVydGljYWwgc3BhY2luZyBiZXR3ZWVuIGl0ZW1zIGJ5IGFkZGluZyBtYXJnaW5zXG4gKiAgICAgYXJvdW5kIGFsbCBzaWRlcyBvZiB0aGUgaXRlbXMgYW5kIGNvbXBlbnNhdGUgdGhpcyBieSBhZGRpbmcgbmVnYXRpdmVcbiAqICAgICBtYXJnaW5zIHRvIHRoZSBjb250YWluZXIuIFRoaXMgY291bGQgcmVzdWx0IGluIG92ZXJmbG93IGlzc3VlcyBpZlxuICogICAgIGAuby1pbmxpbmUtZ3JvdXBg4oCZcyBwYXJlbnQgY29udGFpbmVyIGhhcyBgb3ZlcmZsb3c6IGhpZGRlbmAgb3JcbiAqICAgICBgb3ZlcnNjcm9sbDogc2Nyb2xsYC5cbiAqIFs1XSBTdHJldGNoIGl0ZW1zIHRvIGZpbGwgdGhlIGNvbnRhaW5lci5cbiAqIFs2XSBBbGlnbiBpdGVtcyB0byB0aGUgYm90dG9tLlxuICogWzddIENlbnRlciBpdGVtcyB2ZXJ0aWNhbGx5LlxuICovXG5cbi5vLWlubGluZS1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDsgLyogWzFdICovXG4gICAgZmxleC13cmFwOiB3cmFwOyAvKiBbMV0gKi9cbiAgICBjb2x1bW4tZ2FwOiAkaW5saW5lLWdyb3VwLXNwYWNpbmctaG9yaXpvbnRhbDsgLyogWzJdICovXG4gICAgcm93LWdhcDogJGlubGluZS1ncm91cC1zcGFjaW5nLXZlcnRpY2FsOyAvKiBbMl0gKi9cbn1cblxuICAgIC5vLWlubGluZS1ncm91cC0tc21hbGwge1xuICAgICAgICBjb2x1bW4tZ2FwOiAkaW5saW5lLWdyb3VwLXNwYWNpbmctc21hbGwtaG9yaXpvbnRhbDsgLyogWzJdICovXG4gICAgICAgIHJvdy1nYXA6ICRpbmxpbmUtZ3JvdXAtc3BhY2luZy1zbWFsbC12ZXJ0aWNhbDsgLyogWzJdICovXG4gICAgfVxuXG4gICAgLm8taW5saW5lLWdyb3VwX19pdGVtIHtcblxuICAgICAgICA+ICoge1xuICAgICAgICAgICAgbWFyZ2luOiAwOyAvKiBbM10gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLm8taW5saW5lLWdyb3VwLS1zdHJldGNoIHtcblxuICAgICAgICAuby1pbmxpbmUtZ3JvdXBfX2l0ZW0ge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxOyAvKiBbNV0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLm8taW5saW5lLWdyb3VwLS1ib3R0b20ge1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IC8qIFs2XSAqL1xuICAgIH1cblxuICAgIC5vLWlubGluZS1ncm91cC0tY2VudGVyIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogWzddICovXG4gICAgfVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0xBWU9VVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkB1c2UgXCJzYXNzOm1hdGhcIiBhcyAqO1xuXG4vKipcbiAqIFRoZSBsYXlvdXQgc3lzdGVtIHVzZXMgYGRpc3BsYXk6IGlubGluZS1ibG9ja2AgdG8gY3JlYXRlIGFuIGV4dHJlbWVseVxuICogcG93ZXJmdWwsIGZsZXhpYmxlIGFsdGVybmF0aXZlIHRvIHRoZSB0cmFkaXRpb25hbCBncmlkIHN5c3RlbS4gQ29tYmluZSB0aGVcbiAqIGxheW91dCBpdGVtcyB3aXRoIHRoZSB3aWR0aHMtY2xhc3NlcyBmb3VuZCBpblxuICogYDEwLXV0aWxpdGllcy9fdXRpbGl0aWVzLndpZHRocy5zY3NzYC5cbiAqXG4gKiBbMWFdIFRoZXNlIHByb3BlcnRpZXMgYWNjZXB0IGEgcmVzcG9uc2l2ZSBtYXAgKHJlc3BvbnNpdmUtcHJvcGVydHkpLlxuICovXG5cbiRsYXlvdXQtZ3V0dGVyOiAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0OyAvKiBbMWFdICovXG4kbGF5b3V0LWl0ZW0tc3BhY2luZy12ZXJ0aWNhbDogICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDsgLyogWzFhXSAqL1xuXG4kbGF5b3V0LWRpdmlkZXItc3BhY2luZy1ob3Jpem9udGFsOiAoJGxheW91dC1ndXR0ZXIgKiAyKSAhZGVmYXVsdDtcbiRsYXlvdXQtZGl2aWRlci1zcGFjaW5nLXZlcnRpY2FsOiAgICRsYXlvdXQtaXRlbS1zcGFjaW5nLXZlcnRpY2FsICFkZWZhdWx0O1xuJGxheW91dC1kaXZpZGVyLXdpZHRoOiAgICAgICAgICAgICAgMXB4ICFkZWZhdWx0O1xuJGxheW91dC1kaXZpZGVyLXN0eWxlOiAgICAgICAgICAgICAgc29saWQgIWRlZmF1bHQ7XG4kbGF5b3V0LWRpdmlkZXItY29sb3I6ICAgICAgICAgICAgICBpbmhlcml0ICFkZWZhdWx0O1xuJGxheW91dC1kaXZpZGVyLW9mZnNldC12ZXJ0aWNhbDogICAgY2VpbCgkbGF5b3V0LWRpdmlkZXItc3BhY2luZy12ZXJ0aWNhbCAtICRsYXlvdXQtZGl2aWRlci13aWR0aCAqIDAuNSkgIWRlZmF1bHQ7XG4kbGF5b3V0LWRpdmlkZXItb2Zmc2V0LXRvcDogICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kbGF5b3V0LWdhcC1mb250LXNpemUtcmVzZXQ6ICAgICAgICAkRlMwICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBBbGxvd3MgdXMgdG8gdXNlIHRoZSBsYXlvdXQgb2JqZWN0IG9uIGFueSB0eXBlIG9mIGVsZW1lbnQuXG4gKiBbMl0gV2UgbmVlZCB0byBkZWZlbnNpdmVseSByZXNldCBhbnkgYm94LW1vZGVsIHByb3BlcnRpZXMuXG4gKiBbM10gVXNlIHRoZSBuZWdhdGl2ZSBtYXJnaW4gdHJpY2sgZm9yIG11bHRpLXJvdyBncmlkczpcbiAqICAgICBodHRwczovL2Nzc3dpemFyZHJ5LmNvbS8yMDExLzA4L2J1aWxkaW5nLWJldHRlci1ncmlkLXN5c3RlbXMvXG4gKiBbNF0gV29ya2Fyb3VuZCBmb3IgdGhlIEhUTUwtY29tbWVudHMgdHJpY2sgdG8gcmVtb3ZlIGFueSB3aGl0ZXNwYWNlIGJldHdlZW5cbiAqICAgICBpdGVtcyBpbiB0aGUgbWFya3VwLlxuICogWzRhXSBSZWRlZmluZSBhIGZvbnQtc2l6ZSB0byBjb21wZW5zYXRlIFs0XS5cbiAqIFs1XSBSZXF1aXJlZCBpbiBvcmRlciB0byBjb21iaW5lIGZsdWlkIHdpZHRocyB3aXRoIGZpeGVkIGd1dHRlcnMuXG4gKiBbNl0gQWxsb3dzIHVzIHRvIG1hbmlwdWxhdGUgZ3JpZHMgdmVydGljYWxseSwgd2l0aCB0ZXh0LWxldmVsIHByb3BlcnRpZXMsIGV0Yy5cbiAqIFs3XSBEZWZhdWx0IGl0ZW0gYWxpZ25tZW50IGlzIHRvcC5cbiAqIFs4XSBCeSBkZWZhdWx0LCBhbGwgbGF5b3V0IGl0ZW1zIGFyZSBmdWxsLXdpZHRoLlxuICogWzldIEd1dHRlcnMgcHJvdmlkZWQgYnkgbGVmdCBwYWRkaW5nOlxuICogICAgIGh0dHBzOi8vY3Nzd2l6YXJkcnkuY29tLzIwMTEvMDgvYnVpbGRpbmctYmV0dGVyLWdyaWQtc3lzdGVtcy9cbiAqIFsxMF0gRGVmaW5lIGEgZGVmYXVsdCB2ZXJ0aWNhbCBzcGFjaW5nIGJldHdlZW4gbGF5b3V0IGl0ZW1zLiBVc2UgYG1hcmdpbi10b3BgXG4gKiAgICAgIGluc3RlYWQgb2YgYG1hcmdpbi1ib3R0b21gLCBzbyBpZiBhIGBtYXJnaW4tYm90dG9tYCBpcyBzZXQgb24gdGhlXG4gKiAgICAgIGAuby1sYXlvdXRgIGNvbnRhaW5lciwgdGhlIG1hcmdpbnMgZG8gbm90IGNvbGxhcHNlLlxuICogWzExXSBJZiB3ZSB1c2UgYC5vLWxheW91dC0tZmx1c2hgLCB3ZSBkbyBub3Qgbm90IHdhbnQgdmVydGljYWwgc3BhY2luZywgdG9vLlxuICogWzEyXSBXaGVuIHRoZSBlcXVhbC1oZWlnaHQgYW5kIHRoZSBjZW50ZXIgdmFyaWFudHMgYXJlIGNvbWJpbmVkLFxuICogICAgICBgdGV4dC1hbGlnbjogY2VudGVyYCBpc24ndCBlbm91Z2ggdG8gY2VudGVyIHRoZSBpdGVtcy5cbiAqIFsxM10gVXNlIGFsaWdubWVudCB2aWEgZmxleGJveCB3aGVuIGJvdGggZXF1YWwtaGVpZ2h0IGFuZCByaWdodCBtb2RpZmllcnNcbiAqICAgICAgYXJlIHVzZWQuXG4gKiBbMTRdIFVzZSBGbGV4Ym94IHRvIGFkanVzdCBhZGphY2VudCBpdGVtcyB0byB0aGUgc2FtZSBoZWlnaHQuXG4gKiBbMTVdIEhpZGUgdmVydGljYWwgYW5kIGhvcml6b250YWwgZGl2aWRlcnMgb3V0c2lkZSBvZiBgLm8tbGF5b3V0YC5cbiAqIFsxNl0gVXNlIHZlcnRpY2FsIGRpdmlkZXIgc3BhY2luZyBiZXR3ZWVuIGl0ZW1zLlxuICogWzE3XSBFcXVhbGl6ZSB0aGUgYm90dG9tIG1hcmdpbiBvZiBgLm8tbGF5b3V0YC5cbiAqICAgICAgU3BlY2lmaWNpdHkgaGFzIHRvIGJlIGluY3JlYXNlZCBieSBwcmVmaXggdGhlIHNlbGVjdG9yIHdpdGggYDpyb290OnJvb3RgXG4gKiAgICAgIHRvIG92ZXJydWxlIG92ZXJseSBzcGVjaWZpYyBydWxlcyBvZiBvdGhlciBjb21wb25lbnRzLlxuICogWzE4XSBVc2UgaG9yaXpvbnRhbCBkaXZpZGVyIHNwYWNpbmcgYmV0d2VlbiBpdGVtcy5cbiAqIFsxOV0gUmVtb3ZlIGJvdHRvbSBtYXJnaW4gb2YgbGFzdCBsYXlvdXQgaXRlbSBjaGlsZC5cbiAqIFsyMF0gQWRkIHNoYXJlZCBkZWNsYXJhdGlvbnMgZm9yIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIGRpdmlkZXJzLlxuICogWzIxXSBVc2UgYDo6YmVmb3JlYCBmb3IgdmVydGljYWwgZGl2aWRlcnMuXG4gKiBbMjJdIFBvc2l0aW9uIHZlcnRpY2FsIGRpdmlkZXJzLlxuICogWzIzXSBDZW50ZXIgdmVydGljYWwgZGl2aWRlcnMgaWYgZGl2aWRlciB3aWR0aCBpcyBhbiBvZGQgdmFsdWUgKDEsIDMsIDUsIOKApikuXG4gKiAgICAgIFRoZSBkaXZpZGVyIHBvc2l0aW9uIHdpbGwgYmUgYWRqdXN0ZWQgdG8gdGhlIG5lYXJlc3QgZnVsbCBwaXhlbFxuICogICAgICBpbiBvcmRlciB0byBhdm9pZCBoYWxmIHBpeGVsIHZhbHVlcyBhbmQgYW50aS1hbGlhc2luZ1xuICogICAgICAoZGVwZW5kaW5nIG9uIHRoZSBzY3JlZW4gcmVzb2x1dGlvbikuXG4gKiBbMjRdIENlbnRlciB2ZXJ0aWNhbCBkaXZpZGVycyBpZiBkaXZpZGVyIHdpZHRoIGlzIGFuIGV2ZW4gdmFsdWUgKDIsIDQsIDYsIOKApikuXG4gKiBbMjVdIFVzZSBgOjphZnRlcmAgZm9yIGhvcml6b250YWwgZGl2aWRlcnMuXG4gKiBbMjZdIFBvc2l0aW9uIGhvcml6b250YWwgZGl2aWRlcnMuXG4gKiBbMjddIENlbnRlciBob3Jpem9udGFsIGRpdmlkZXJzIGlmIGRpdmlkZXIgd2lkdGggaXMgYW4gb2RkIHZhbHVlICgxLCAzLCA1LCDigKYpLlxuICogICAgICBUaGUgZGl2aWRlciBwb3NpdGlvbiB3aWxsIGJlIGFkanVzdGVkIHRvIHRoZSBuZWFyZXN0IGZ1bGwgcGl4ZWxcbiAqICAgICAgaW4gb3JkZXIgdG8gYXZvaWQgaGFsZiBwaXhlbCB2YWx1ZXMgYW5kIGFudGktYWxpYXNpbmdcbiAqICAgICAgKGRlcGVuZGluZyBvbiB0aGUgc2NyZWVuIHJlc29sdXRpb24pLlxuICogWzI4XSBDZW50ZXIgaG9yaXpvbnRhbCBkaXZpZGVycyBpZiBkaXZpZGVyIHdpZHRoIGlzIGFuIGV2ZW4gdmFsdWUgKDIsIDQsIDYsIOKApikuXG4gKiBbMjldIE9uIGVxdWFsLWhlaWdodCBsYXlvdXRzIHRoZSBmbGV4LWl0ZW0gY2hpbGQgZWxlbWVudHMgYXJlIG5vdCB0YWtpbmcgdXAgdGhlXG4gKiAgICAgIGVudGlyZSB3aWR0aCBkdWUgdG8gdGhlIGBkaXNwbGF5OiBmbGV4YCBvbiB0aGUgZmxleC1pdGVtcy5cbiAqICAgICAgVG8gZml4IHRoaXMgd2UgaGF2ZSB0byBtYWtlIHRoZW0gZ3JvdyBhcyB3aWRlIGFzIHRoZWlyIGZsZXgtaXRlbSBwYXJlbnQuXG4gKiBbMzBdIFRoZSBjb21wZW5zYXRpb24gZm9yIHZlcnRpY2FsIGdhcHMgZnJvbSBbMTBdIGNhbiByZXN1bHQgaW4gb3ZlcmxhcHBpbmdcbiAqICAgICAgZWxlbWVudHMgYWJvdmUgdGhlIGxheW91dC1vYmplY3QsIHJlc3VsdGluZyBpbiBibG9ja2VkIGludGVyYWN0aW9uXG4gKiAgICAgIChjbGljaywgdGV4dC1zZWxlY3Rpb24sIGV0Yy4pLiBEaXNhYmxlIGludGVyYWN0aW9uIHZpYSBgcG9pbnRlci1ldmVudHNgXG4gKiAgICAgIG9uIGxheW91dCBhbmQuLi5cbiAqIFszMV0gLi4uUmVzdG9yZSBpbnRlcmFjdGlvbiBvbiBjb250ZW50LlxuICogWzMyXSBQcmV2ZW50IHRvbyB3aWRlIGNvbnRlbnQgaW4gZXF1YWwgaGVpZ2h0IGxheW91dCBpdGVtcyBmcm9tIGFmZmVjdGluZyB0aGVcbiAqICAgICAgbWF4aW11bSB3aWR0aCBvZiBpdHMgbGF5b3V0IGl0ZW0gY29udGFpbmVyLlxuICogWzMzXSBTZXQgdmVydGljYWwgb2Zmc2V0IGZvciB0aGUgZGl2aWRlciBsaW5lLlxuICovXG4uby1sYXlvdXQge1xuICAgIGRpc3BsYXk6IGJsb2NrOyAvKiBbMV0gKi9cbiAgICBtYXJnaW46IDA7IC8qIFsyXSAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIFsyXSAqL1xuICAgIGZvbnQtc2l6ZTogMDsgLyogWzRdICovXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBsaXN0LXN0eWxlOiBub25lOyAvKiBbMV0gKi9cbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogWzMwXSAqL1xuXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvb3JkZXIgKi9cbiAgICAvLyBVc2UgY3VzdG9tIG9yZGVyIGFzIHJlc2V0IG5lZWRzIHRvIGJlIGZpcnN0IC8qIFsyXSAqL1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXCJtYXJnaW4tdG9wXCIsIHJlc3BvbnNpdmUtcHJvcGVydHktbW9kaWZ5KCRsYXlvdXQtaXRlbS1zcGFjaW5nLXZlcnRpY2FsLCAkZmFjdG9yOiAtMSkpOyAvKiBbMTBdICovXG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcIm1hcmdpbi1sZWZ0XCIsIHJlc3BvbnNpdmUtcHJvcGVydHktbW9kaWZ5KCRsYXlvdXQtZ3V0dGVyLCAkZmFjdG9yOiAtMSkpOyAvKiBbM10gKi9cbiAgICAvKiBzdHlsZWxpbnQtZW5hYmxlIG9yZGVyL29yZGVyICovXG5cbiAgICA+IC5vLWxheW91dF9faXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXCJtYXJnaW4tdG9wXCIsICRsYXlvdXQtaXRlbS1zcGFjaW5nLXZlcnRpY2FsKTsgLyogWzEwXSAqL1xuICAgIH1cblxuICAgICYuby1sYXlvdXQtLWVxdWFsLWhlaWdodCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgICAmLm8tbGF5b3V0LS1yaWdodCB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyAvKiBbMTNdICovXG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuICAgIC5vLWxheW91dF9faXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCRsYXlvdXQtZ2FwLWZvbnQtc2l6ZS1yZXNldCk7IC8qIFs0YV0gKi9cbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcInBhZGRpbmctbGVmdFwiLCAkbGF5b3V0LWd1dHRlcik7IC8qIFs5XSAqL1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiBbNV0gKi9cbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiBbNl0gKi9cbiAgICAgICAgd2lkdGg6IDEwMCU7IC8qIFs4XSAqL1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyAvKiBbN10gKi9cbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87IC8qIFszMV0gKi9cblxuXG4gICAgICAgIC5vLWxheW91dC0tbWlkZGxlID4gJiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgLm8tbGF5b3V0LS1lcXVhbC1oZWlnaHQgPiAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAxOyAvKiBbMjldICovXG4gICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IC8qIFszMl0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cblxuXG4vKipcbiAqIExheW91dCBtb2RpZmllciB0byBmaWxsIHVwIHRoZSBsYXlvdXQgc3lzdGVtIGZyb20gdGhlIGNlbnRlci5cbiAqL1xuLm8tbGF5b3V0LS1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICYuby1sYXlvdXQtLWVxdWFsLWhlaWdodCB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKiBbMTJdICovXG4gICAgfVxuXG4gICAgPiAuby1sYXlvdXRfX2l0ZW0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxufVxuXG5cblxuLyoqXG4gKiBMYXlvdXQgbW9kaWZpZXIgdG8gZmlsbCB1cCB0aGUgbGF5b3V0IHN5c3RlbSBmcm9tIHRoZSByaWdodCBoYW5kIHNpZGUuXG4gKi9cbi5vLWxheW91dC0tcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgPiAuby1sYXlvdXRfX2l0ZW0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxufVxuXG5cblxuLyoqXG4gKiBMYXlvdXQgbW9kaWZpZXIgdG8gZWxpbWluYXRlIHRoZSBzcGFjaW5nIGJldHdlZW4gdGhlIGxheW91dCBpdGVtcy5cbiAqL1xuLm8tbGF5b3V0LS1mbHVzaCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXRvcDogMDsgLyogWzExXSAqL1xuXG4gICAgPiAuby1sYXlvdXRfX2l0ZW0ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7IC8qIFsxMV0gKi9cbiAgICB9XG5cbn1cblxuXG5cbi8qKlxuICogTGF5b3V0IG1vZGlmaWVyIHRvIGFkZCBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBkaXZpZGVyIGxpbmVzXG4gKiBiZXR3ZWVuIGxheW91dCBpdGVtcy5cbiAqL1xuLm8tbGF5b3V0LS1kaXZpZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4OyAvKiBbMTRdICovXG4gICAgZmxleC13cmFwOiB3cmFwOyAvKiBbMTRdICovXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogWzE1XSAqL1xuICAgIG1hcmdpbi10b3A6IC0oJGxheW91dC1kaXZpZGVyLW9mZnNldC12ZXJ0aWNhbCk7IC8qIFsxNl0gKi9cbiAgICBtYXJnaW4tbGVmdDogLSgkbGF5b3V0LWRpdmlkZXItc3BhY2luZy1ob3Jpem9udGFsKTsgLyogWzE4XSAqL1xuXG4gICAgJiN7Jn0jeyZ9IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLSgkbGF5b3V0LWRpdmlkZXItb2Zmc2V0LXZlcnRpY2FsKTsgLyogWzE3XSAqL1xuICAgIH1cblxuICAgID4gLm8tbGF5b3V0X19pdGVtIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tdG9wOiAkbGF5b3V0LWRpdmlkZXItb2Zmc2V0LXZlcnRpY2FsOyAvKiBbMTZdICovXG4gICAgICAgIHBhZGRpbmctbGVmdDogJGxheW91dC1kaXZpZGVyLXNwYWNpbmctaG9yaXpvbnRhbDsgLyogWzE4XSAqL1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGxheW91dC1kaXZpZGVyLW9mZnNldC12ZXJ0aWNhbDsgLyogWzE2XSAqL1xuXG4gICAgICAgID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IC8qIFsxOV0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjsgLyogWzIwXSAqL1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyAvKiBbMjBdICovXG4gICAgICAgICAgICBib3JkZXItd2lkdGg6ICRsYXlvdXQtZGl2aWRlci13aWR0aDsgLyogWzIwXSAqL1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbGF5b3V0LWRpdmlkZXItY29sb3I7IC8qIFsyMF0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7IC8qIFsyMV0gKi9cbiAgICAgICAgICAgIHRvcDogLSgkbGF5b3V0LWRpdmlkZXItc3BhY2luZy12ZXJ0aWNhbCk7IC8qIFsyMl0gKi9cbiAgICAgICAgICAgIGxlZnQ6ICRsYXlvdXQtZGl2aWRlci1zcGFjaW5nLWhvcml6b250YWw7IC8qIFsyMl0gKi9cbiAgICAgICAgICAgIHJpZ2h0OiAwOyAvKiBbMjJdICovXG4gICAgICAgICAgICBib3JkZXItdG9wLXN0eWxlOiAkbGF5b3V0LWRpdmlkZXItc3R5bGU7XG5cbiAgICAgICAgICAgIEBpZiAkbGF5b3V0LWRpdmlkZXItd2lkdGggJSAyID09IDEge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGxheW91dC1kaXZpZGVyLXdpZHRoICogMC41IC0gMC41cHgpOyAvKiBbMjNdICovXG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRsYXlvdXQtZGl2aWRlci13aWR0aCAqIDAuNSk7IC8qIFsyNF0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbWFyZ2luLXRvcDogJGxheW91dC1kaXZpZGVyLW9mZnNldC10b3A7IC8qIFszM10gKi9cbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHsgLyogWzI1XSAqL1xuICAgICAgICAgICAgdG9wOiAwOyAvKiBbMjZdICovXG4gICAgICAgICAgICBib3R0b206ICRsYXlvdXQtZGl2aWRlci1zcGFjaW5nLXZlcnRpY2FsOyAvKiBbMjZdICovXG4gICAgICAgICAgICByaWdodDogLSgkbGF5b3V0LWRpdmlkZXItc3BhY2luZy1ob3Jpem9udGFsICogMC41KTsgLyogWzI2XSAqL1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtc3R5bGU6ICRsYXlvdXQtZGl2aWRlci1zdHlsZTtcblxuICAgICAgICAgICAgQGlmICRsYXlvdXQtZGl2aWRlci13aWR0aCAlIDIgPT0gMSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRsYXlvdXQtZGl2aWRlci13aWR0aCAqIDAuNSArIDAuNXB4KTsgLyogWzI3XSAqL1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRsYXlvdXQtZGl2aWRlci13aWR0aCAqIDAuNSk7IC8qIFsyOF0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI1JFU1BPTlNJVkUtUFJPUEVSVFlcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vLy8vXG4vLy8gVGhpcyB0b29sIGFsbG93cyBwYXNzaW5nIGEgc3R5bGluZy1wcm9wZXJ0eSAoZS5nLiBcIm1hcmdpbi10b3BcIikgYW5kIGEgdmFsdWVcbi8vLyBtYXAgdG8gZ2VuZXJhdGUgYSByZXNwb25zaXZlIHN0eWxpbmcgd2l0aCBtZWRpYSBxdWVyaWVzIGZvciB0aGVcbi8vLyBhZm9yZW1lbnRpb25lZCBwcm9wZXJ0eS4gSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBwYXNzIGEgbGlzdCBvZiBwcm9wZXJ0aWVzXG4vLy8gYW5kIHRoZWlyIHZhbHVlIG1hcHMgdG8gY3JlYXRlIG1lZGlhIHF1ZXJ5IGJsb2Nrcy4gU2VlICMjIyBVU0UgQ0FTRSAxICMjI1xuLy8vIGFuZCAjIyMgVVNFIENBU0UgMiAjIyMgYmVsb3cgZm9yIHVzYWdlIGRldGFpbHMuXG4vLy8vXG5cbi8vLyBIZWxwZXIgdG8gcmVtb3ZlIHF1b3RlcyBpZiB2YWx1ZSBpcyBzdHJpbmcgYW5kIG91dHB1dHMgQ1NTLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHkgLSBDU1MgcHJvcGVydHkuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZSAtIENTUyB2YWx1ZSBmb3IgdGhlIGFib3ZlIHByb3BlcnR5LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbm90IHNwZWNpZmllZF0gLSBvcHRpb25hbCwgb25seSBmb3IgZGVidWdnaW5nLlxuLy8vIEBvdXRwdXQgQSBDU1MgcHJvcGVydHkgYW5kIGl0cyB2YWx1ZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiBfb3V0cHV0LXJlc3BvbnNpdmUtcHJvcGVydHkoJHByb3BlcnR5LCAkdmFsdWUsICRicmVha3BvaW50OiBcIm5vdCBzcGVjaWZpZWRcIikge1xuICAgIEBpZiAodHlwZV9vZigkdmFsdWUpID09IHN0cmluZykge1xuICAgICAgICAvLyByZW1vdmUgcG9zc2libGUgcXVvdGVzIChlLmcuIFwiMTBweFwiIC0+IDEwcHgpXG4gICAgICAgICR2YWx1ZTogdW5xdW90ZSgkdmFsdWUpO1xuICAgIH1cbiAgICAvLyB0aGlzIGlzIHRoZSBvbmx5IHBsYWNlIHdoZXJlIHRoaXMgdG9vbCBvdXRwdXRzIGFueXRoaW5nXG4gICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgLy8gQGRlYnVnIFwiYnJlYWtwb2ludC0jeyRicmVha3BvaW50fSAtPiAjeyRwcm9wZXJ0eX06ICN7JHZhbHVlfTtcIjtcbn1cblxuLy8vIEhlbHBlciB0byBjaGVjayBpZiBzdXNwZWN0ZWQgcGxhaW4gQ1NTIHZhbHVlIGlzIHZhbGlkLiBXaGlsZSBcIm51bGxcIiBpcyBub3Rcbi8vLyBhIHZhbGlkIHByb3BlcnR5IHZhbHVlLCBpdCBzaG91bGQgbm90IGNhdXNlIGFuIGVycm9yIGJ1dCBqdXN0IGJlIG9taXR0ZWQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eSAtIENTUyBwcm9wZXJ0eS5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlIFtub3Qgc3BlY2lmaWVkXSAtIG9wdGlvbmFsLCBvbmx5IGZvciBkZWJ1Z2dpbmcuXG4vLy8gQHRocm93IEludmFsaWQgdmFsdWUgZm9ybWF0LlxuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gdHJ1ZTogUmVzcG9uc2l2ZSBwcm9wZXJ0eSB2YWx1ZSBpcyB2YWxpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiBfaXMtdmFsaWQtcmVzcG9uc2l2ZS1wcm9wZXJ0eS12YWx1ZSgkcHJvcGVydHksICR2YWx1ZTogXCJub3Qgc3BlY2lmaWVkXCIpIHtcbiAgICBAaWYgKHR5cGVfb2YoJHZhbHVlKSA9PSBtYXAgIG9yXG4gICAgICAgICB0eXBlX29mKCR2YWx1ZSkgPT0gbGlzdCBvclxuICAgICAgICAgdHlwZV9vZigkdmFsdWUpID09IGJvb2wpIHtcbiAgICAgICAgQGVycm9yKFwiVHJ5aW5nIHRvIGFzc2lnbiBpbnZhbGlkIHZhbHVlIG9mIGZvcm1hdCAnXCJ0eXBlX29mKCR2YWx1ZSlcIicgdG8gcHJvcGVydHkgJ1wiJHByb3BlcnR5XCInXCIpO1xuICAgIH1cblxuICAgIEBpZiAoJHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgLy8gXCJudWxsXCIgaXNuJ3QgYSB2YWxpZCBDU1MgcHJvcGVydHkgdmFsdWUsIGJ1dCBpdCBzaG91bGRuJ3QgY2F1c2UgYW5cbiAgICAgICAgLy8gZXJyb3Igc2luY2UgaXQgc2ltcGx5IG1lYW5zIFwibm8gdmFsdWVzIGFzc2lnbmVkXCIuXG4gICAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbi8vLyBUYWtlcyBhIHNhc3MgbWFwIG9yIGFyZ2xpc3QgcGx1cyBhIGAkdGFyZ2V0LWJyZWFrcG9pbnRgLiBSZXR1cm5zIGEgbWFwIHRoYXRcbi8vLyBjb250YWlucyBhbGwgcHJvcGVydGllcyBhbmQgdGhlaXIgcmVzcGVjdGl2ZSB2YWx1ZXMgdGhhdCBtYXRjaCB0aGVcbi8vLyBgJHRhcmdldC1icmVha3BvaW50YC4gQWxzbyBmaWx0ZXJzIG91dCBicmVha3BvaW50cyB0aGF0IGFyZSBub3QgZGVmaW5lZFxuLy8vIGluIGBfc2V0dGluZ3MuYnJlYWtwb2ludHMuc2Nzc2AgYW5kIHRocm93cyBhIHdhcm5pbmcuXG4vLy8gQHBhcmFtIHtBcmdsaXN0IHwgTWFwfSAkcmVzcG9uc2l2ZS1wcm9wZXJ0aWVzIC0gVGhlIHJlc3BvbnNpdmUgcHJvcGVydGllcy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHRhcmdldC1icmVha3BvaW50IC0gVGhlIGJyZWFrcG9pbnQgdG8gZmlsdGVyXG4vLy8gJHJlc3BvbnNpdmUtcHJvcGVydGllcy5cbi8vLyBAcmV0dXJuIHtNYXB9IC0gQSBtYXAgd2l0aCB0aGUgQ1NTIHByb3BlcnRpZXMgYW5kIHRoZWlyIHZhbHVlcyBmb3IgdGhlXG4vLy8gdGFyZ2V0IGJyZWFrcG9pbnQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gX2dldC1yZXNwb25zaXZlLWRlY2xhcmF0aW9ucy1ieS1icmVha3BvaW50KCRyZXNwb25zaXZlLXByb3BlcnRpZXMsICR0YXJnZXQtYnJlYWtwb2ludCkge1xuICAgIC8vLyBAdHlwZSBNYXBcbiAgICAkZGVjbGFyYXRpb25zLWJ5LWJyZWFrcG9pbnQ6ICgpO1xuICAgIEBlYWNoICRwcm9wZXJ0eSwgJHZhbHVlcyBpbiAkcmVzcG9uc2l2ZS1wcm9wZXJ0aWVzIHtcblxuICAgICAgICBAaWYgKHR5cGVfb2YoJHByb3BlcnR5KSAhPSBzdHJpbmcpIHtcbiAgICAgICAgICAgIEBlcnJvciggJ0EgcHJvcGVydHkgaW4gYSByZXNwb25zaXZlIHZhbHVlIG1hcCBoYXMgdG8gYmUgYSBzdHJpbmcsIGUuZy4gXCJtYXJnaW4tbGVmdFwiLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICh0eXBlX29mKCR2YWx1ZXMpID09IG1hcCkge1xuXG4gICAgICAgICAgICBAZWFjaCAkdmFsdWUtYnJlYWtwb2ludCwgJHZhbHVlIGluICR2YWx1ZXMge1xuICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IGlzIHN1cHBvcnRlZCBhbmQgaWYgaXRzIHRoZSBvbmUgd2VcbiAgICAgICAgICAgICAgICAvLyBhcmUgbG9va2luZyBmb3IuXG4gICAgICAgICAgICAgICAgQGlmIChpcy12YWxpZC1icmVha3BvaW50KCR2YWx1ZS1icmVha3BvaW50KSBhbmQgJHZhbHVlLWJyZWFrcG9pbnQgPT0gJHRhcmdldC1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEFkZCBwcm9wZXJ0eSBhbmQgdmFsdWUgdG8gbWFwLlxuICAgICAgICAgICAgICAgICAgICAkZGVjbGFyYXRpb25zLWJ5LWJyZWFrcG9pbnQ6IG1hcC1tZXJnZSgkZGVjbGFyYXRpb25zLWJ5LWJyZWFrcG9pbnQsICgkcHJvcGVydHk6ICR2YWx1ZSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9IEBlbHNlIGlmICgkdGFyZ2V0LWJyZWFrcG9pbnQgPT0gbnVsbCkge1xuXG4gICAgICAgICAgICAvLyBgJHZhbHVlc2AgaXMgbm90IGEgbWFwIGFuZCB0aGUgYCR0YXJnZXQtYnJlYWtwb2ludGAgaXMgbnVsbCxcbiAgICAgICAgICAgIC8vIGNoZWNrIGlmIGl0cyBhIHBsYWluIHZhbHVlLlxuICAgICAgICAgICAgQGlmIF9pcy12YWxpZC1yZXNwb25zaXZlLXByb3BlcnR5LXZhbHVlKCRwcm9wZXJ0eSwgJHZhbHVlcykge1xuICAgICAgICAgICAgICAgIC8vIEFkZCBwcm9wZXJ0eSBhbmQgdmFsdWUgdG8gbWFwLlxuICAgICAgICAgICAgICAgICRkZWNsYXJhdGlvbnMtYnktYnJlYWtwb2ludDogbWFwLW1lcmdlKCRkZWNsYXJhdGlvbnMtYnktYnJlYWtwb2ludCwgKCRwcm9wZXJ0eTogJHZhbHVlcykpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgLy8gYCR2YWx1ZXNgIGlzIG5vdCBhIG1hcCBhbmQgYCR0YXJnZXQtYnJlYWtwb2ludGAgaXMgbm90IG51bGwgLT5cbiAgICAgICAgICAgIC8vIG9taXQgdGhpcyB2YWx1ZS5cbiAgICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuICRkZWNsYXJhdGlvbnMtYnktYnJlYWtwb2ludDtcbn1cblxuLy8vICMjIyBVU0UgQ0FTRSAxICMjI1xuLy8vXG4vLy8gQWxsb3dzIHBhc3NpbmcgYSBzdHlsaW5nLXByb3BlcnR5IChlLmcuIGBtYXJnaW4tdG9wYCkgYW5kIGEgdmFsdWUgbWFwIHRvXG4vLy8gZ2VuZXJhdGUgYSByZXNwb25zaXZlIHN0eWxpbmcgd2l0aCBtZWRpYSBxdWVyaWVzIGZvciB0aGUgYWZvcmVtZW50aW9uZWRcbi8vLyBwcm9wZXJ0eS4gSWYgYSBzaW5nbGUgdmFsdWUgaXMgcGFzc2VkLCBpdCB3aWxsIGJlIGFzc2lnbmVkIHdpdGhvdXQgbWVkaWFcbi8vLyBxdWVyaWVzLCBlLmcuIGBtYXJnaW4tdG9wOiAkR0xPQkFMLVNQQUNJTkctVU5JVDtgLlxuLy8vIElmIGEgdmFsdWUgbWFwIGlzIHBhc3NlZCwgaXQgaGFzIHRvIGxvb2sgbGlrZSB0aGlzOlxuLy8vIGBgYFxuLy8vICR2YWx1ZS1tYXA6IChcbi8vLyAgICAgbnVsbDogJEdMT0JBTC1TUEFDSU5HLVVOSVQtTEFSR0UsXG4vLy8gICAgIFwibVwiOiAgJEdMT0JBTC1TUEFDSU5HLVVOSVQsXG4vLy8gICAgIFwic1wiOiAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwsXG4vLy8gICAgIFwieHNcIjogMCxcbi8vLyApICFkZWZhdWx0O1xuLy8vIGBgYFxuLy8vIFRoZSBtYXAgZm9sbG93cyB0aGUgXCJkZXNrdG9wIGZpcnN0XCIgYXBwcm9hY2guIFwibnVsbFwiIGlzIHRoZSBkZWZhdWx0IHZhbHVlLFxuLy8vIHdoaWNoIGlzIGFzc2lnbmVkIHdpdGhvdXQgYSBtZWRpYSBxdWVyeS4gXCJtXCIgd2lsbCBiZSBhcHBsaWVkIHRvIHNjcmVlbiBzaXplc1xuLy8vIFwibVwiIGFuZCBzbWFsbGVyLCBcInNcIiB0byBzY3JlZW4gc2l6ZXMgXCJzXCIgYW5kIHNtYWxsZXIgYW5kIHNvIG9uLlxuLy8vIFRoZSBmb2xsb3dpbmcgYnJlYWstcG9pbnRzIGNhbiBiZSB1c2VkOlxuLy8vIHBhY2thZ2VzL2Jyb25zb24tY29yZS8wMS1zZXR0aW5ncy9fc2V0dGluZ3MuYnJlYWtwb2ludHMuc2Nzc1xuLy8vXG4vLy8gIyMjIFVTRSBDQVNFIDIgIyMjXG4vLy9cbi8vLyBQYXNzIGEgbGlzdCBvZiBzdHlsaW5nLXByb3BlcnRpZXMgYW5kIGEgbGlzdCBvZiB2YWx1ZXMvdmFsdWUtbWFwcy5cbi8vLyBFeGFtcGxlOlxuLy8vIGBgYFxuLy8vIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXG4vLy8gICAgIChcInBhZGRpbmctdG9wXCIsICAgICRwYWRkaW5nLXRvcC1yZXNwb25zaXZlLW1hcCksXG4vLy8gICAgIChcInBhZGRpbmctbGVmdFwiLCAgICRwYWRkaW5nLWhvcml6b250YWwtcmVzcG9uc2l2ZS1tYXApLFxuLy8vICAgICAoXCJwYWRkaW5nLXJpZ2h0XCIsICAkcGFkZGluZy1ob3Jpem9udGFsLXJlc3BvbnNpdmUtbWFwKSxcbi8vLyAgICAgKFwicGFkZGluZy1ib3R0b21cIiwgMjVweClcbi8vLyApO1xuLy8vIGBgYFxuLy8vIFRoZSBhZHZhbnRhZ2UgaGVyZSBpcyB0aGF0IGFsbCByZXNwb25zaXZlIENTUyBkZWNsYXJhdGlvbnMgd2lsbCBiZSBwdXQgaW4gYVxuLy8vIHNpbmdsZSBtZWRpYSBxdWVyeSwgaW5zdGVhZCBvZiBjcmVhdGluZyBhIG1lZGlhIHF1ZXJ5IGZvciBldmVyeSBwcm9wZXJ0eVxuLy8vIHNlcGFyYXRlbHkuIEV4YW1wbGU6XG4vLy8gYGBgXG4vLy8gQG1lZGlhIChtYXgtd2lkdGg6IDEwMTZweClcbi8vLyAgLmNvbnRhaW5lciB7XG4vLy8gICAgcGFkZGluZy10b3A6IDMycHg7XG4vLy8gICAgcGFkZGluZy1sZWZ0OiAzMnB4O1xuLy8vICAgIHBhZGRpbmctcmlnaHQ6IDMycHg7XG4vLy8gIH1cbi8vLyBgYGBcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICRyZXNwb25zaXZlLXByb3BlcnRpZXMgLSBTZWUgIyMjIFVTRSBDQVNFIDEgIyMjIGFuZFxuLy8vICMjIyBVU0UgQ0FTRSAyICMjIyBhYm92ZS5cbi8vLyBAb3V0cHV0IEdlbmVyYXRlZCBieSBfdG9vbHMvbWVkaWEtcXVlcnkuc2NzcyBhbmQgX291dHB1dC1yZXNwb25zaXZlLXByb3BlcnR5XG4vLy8gQHJlcXVpcmUge21peGlufSBtZWRpYS1xdWVyeSA8L190b29scy5tZWRpYS1xdWVyeS5zY3NzPlxuLy8vIEB0aHJvdyBObyBwcm9wZXJ0eSBkZWZpbmVkLCBJbnZhbGlkIGFyZ3VtZW50cyBleGNlcHRpb25zLlxuLy8vIEBhY2Nlc3MgcHVibGljXG5AbWl4aW4gcmVzcG9uc2l2ZS1wcm9wZXJ0eSgkcmVzcG9uc2l2ZS1wcm9wZXJ0aWVzLi4uKSB7XG5cbiAgICBAaWYgJHJlc3BvbnNpdmUtcHJvcGVydGllcyA9PSBudWxsIG9yIGxlbmd0aCgkcmVzcG9uc2l2ZS1wcm9wZXJ0aWVzKSA9PSAwIHtcbiAgICAgICAgQGVycm9yKFwiTm8gcHJvcGVydHkgaXMgZGVmaW5lZCBmb3IgdGhlIHJlc3BvbnNpdmUtcHJvcGVydHkgbWl4aW4uXCIpO1xuICAgIH1cblxuICAgICRmaXJzdC1pdGVtOiBudGgoJHJlc3BvbnNpdmUtcHJvcGVydGllcywgMSk7XG4gICAgQGlmICh0eXBlX29mKCRmaXJzdC1pdGVtKSA9PSBzdHJpbmcgYW5kIGxlbmd0aCgkcmVzcG9uc2l2ZS1wcm9wZXJ0aWVzKSA9PSAyKSB7XG4gICAgICAgIC8vIElmIHRoZSBmaXJzdCBhcmd1bWVudCBpcyBhIHN0cmluZywgaXQgaGFzIHRvIGJlIGZvbGxvd2VkIGJ5IGV4YWN0bHlcbiAgICAgICAgLy8gb25lIG1vcmUgYXJndW1lbnQsIHdoaWNoIGlzIHRoZSBwcm9wZXJ0eSB2YWx1ZSBvciB2YWx1ZS1tYXAuIEluIHRoaXNcbiAgICAgICAgLy8gY2FzZSwgd2UgZXhwZWN0ICMjIyBVU0UgQ0FTRSAxICMjIyBhcyBleHBsYWluZWQgYWJvdmUuXG4gICAgICAgIC8vIFJlYXJyYW5nZSBhcmd1bWVudHMgdG8gYSBTYXNzIG1hcC5cbiAgICAgICAgJHJlc3BvbnNpdmUtcHJvcGVydGllczogKCRmaXJzdC1pdGVtOiBudGgoJHJlc3BvbnNpdmUtcHJvcGVydGllcywgMikpO1xuICAgIH0gQGVsc2UgaWYgKHR5cGVfb2YoJGZpcnN0LWl0ZW0pID09IGxpc3QpIHtcbiAgICAgICAgLy8gSWYgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgbGlzdCwgd2UgZXhwZWN0ICMjIyBVU0UgQ0FTRSAyICMjIyBhc1xuICAgICAgICAvLyBleHBsYWluZWQgYWJvdmUuIE5vdGhpbmcgdG8gZG8gaGVyZS5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgICAgICAgQGVycm9yIChcIkludmFsaWQgYXJndW1lbnRzIGV4Y2VwdGlvbnMgXFxuIFRoZSByZXNwb25zaXZlLXByb3BlcnR5IG1peGluIGV4cGVjdHMsIGVpdGhlcjogXFxuIC0gVHdvIGFyZ3VtZW50czogQSBDU1MtcHJvcGVydHkgYW5kIGEgdmFsdWUvdmFsdWUtbWFwIG9yIFxcbi0gQSBsaXN0IG9mIHRoZSBhYm92ZSBcXG5TZWUgYnJvbnNvbi1jb3JlLzAyLXRvb2xzL190b29scy5yZXNwb25zaXZlLXByb3BlcnR5LnNjc3MgZm9yIGRldGFpbHMgb24gcHJvcGVyIHVzYWdlLlwiKTtcbiAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgIH1cblxuICAgIC8vIEdhdGhlciBhbGwgcHJvcGVydGllcyBhbmQgdGhlaXIgdmFsdWVzIHdpdGhvdXQgYSBicmVha3BvaW50LlxuICAgIC8vLyBAdHlwZSBNYXBcbiAgICAkZGVjbGFyYXRpb24tYmxvY2s6IF9nZXQtcmVzcG9uc2l2ZS1kZWNsYXJhdGlvbnMtYnktYnJlYWtwb2ludCgkcmVzcG9uc2l2ZS1wcm9wZXJ0aWVzLCBudWxsKTtcbiAgICBAZWFjaCAkcHJvcGVydHksICR2YWx1ZSBpbiAkZGVjbGFyYXRpb24tYmxvY2sge1xuICAgICAgICAvLyBub3cgb3V0cHV0IHRoZSBkZWNsYXJhdGlvbiBibG9ja1xuICAgICAgICBAaW5jbHVkZSBfb3V0cHV0LXJlc3BvbnNpdmUtcHJvcGVydHkoJHByb3BlcnR5LCAkdmFsdWUsIG51bGwpO1xuICAgIH1cblxuICAgIC8vIExvb3AgdGhyb3VnaCBicmVha3BvaW50cyBhbmQgb3V0cHV0IHRoZSBDU1MgZGVjbGFyYXRpb25zIGZvciBlYWNoXG4gICAgLy8gYnJlYWtwb2ludCBpbiB0aGUgb3JkZXIgZGVmaW5lZCBpbiBgX3NldHRpbmdzLmJyZWFrcG9pbnRzLnNjc3NgLlxuICAgIEBlYWNoICRicmVha3BvaW50LCAkYnJlYWtwb2ludC13aWR0aCBpbiAkQlJFQUtQT0lOVFMge1xuICAgICAgICAvLyBHYXRoZXIgYWxsIGRlY2xhcmF0aW9ucyBmb3IgdGhpcyBicmVha3BvaW50LlxuICAgICAgICAkZGVjbGFyYXRpb24tYmxvY2s6IF9nZXQtcmVzcG9uc2l2ZS1kZWNsYXJhdGlvbnMtYnktYnJlYWtwb2ludCgkcmVzcG9uc2l2ZS1wcm9wZXJ0aWVzLCAkYnJlYWtwb2ludCk7XG4gICAgICAgIC8vIElmIHRoZSBtYXAgaGFzIGF0IGxlYXN0IG9uZSBDU1MgZGVjbGFyYXRpb24sIGNyZWF0ZSBhIG1lZGlhLXF1ZXJ5IGFuZFxuICAgICAgICAvLyBvdXRwdXQgcHJvcGVydHkgYW5kIHZhbHVlLlxuICAgICAgICBAaWYgKGxlbmd0aCgkZGVjbGFyYXRpb24tYmxvY2spID4gMCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICBAZWFjaCAkcHJvcGVydHksICR2YWx1ZSBpbiAkZGVjbGFyYXRpb24tYmxvY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBfb3V0cHV0LXJlc3BvbnNpdmUtcHJvcGVydHkoJHByb3BlcnR5LCAkdmFsdWUsICRicmVha3BvaW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vLyBUYWtlcyBhIG1hcCBvZiBzZWxlY3RvcnMgYW5kIENTUyBwcm9wZXJ0aWVzIGFuZCB0aGVpciB2YWx1ZXMgYW5kIGdlbmVyYXRlc1xuLy8vIHJlc3BvbnNpdmUgcHJvcGVydGllcyBmb3IgZWFjaCBvZiB0aG9zZSB2YWx1ZXMuXG4vLy8gRXhhbXBsZSBtYXA6XG4vLy8gYGBgXG4vLy8gJHJlc3BvbnNpdmUtcHJvcGVydHktbWFwOiAoXG4vLy8gICAnLnRpdGxlLXNlbGVjdG9yJzogKFxuLy8vICAgICAgIG1heC13aWR0aDogICAgICRwbGFpbi12YWx1ZS1vci1yZXNwb25zaXZlLW1hcCxcbi8vLyAgICAgICBtYXJnaW4tYm90dG9tOiAkcGxhaW4tdmFsdWUtb3ItcmVzcG9uc2l2ZS1tYXAsXG4vLy8gICApLFxuLy8vICAgJy5hbm90aGVyLXNlbGVjdG9yJzogKFxuLy8vICAgICAgIGZvbnQtc2l6ZTogICAgICRwbGFpbi12YWx1ZS1vci1yZXNwb25zaXZlLW1hcCxcbi8vLyAgICAgICBsaW5lLWhlaWdodDogICAkcGxhaW4tdmFsdWUtb3ItcmVzcG9uc2l2ZS1tYXAsXG4vLy8gICApLFxuLy8vICk7XG4vLy8gYGBgXG4vLy8gQW4gb3B0aW9uYWwgYCRzZWxlY3Rvci1wcmVmaXhgIGNhbiBiZSBwYXNzZWQgd2hpY2ggd2lsbCBwcmVmaXggdGhlIHNlbGVjdG9yc1xuLy8vIGRlZmluZWQgaW4gdGhlIG1hcC5cbi8vLyBAcGFyYW0ge01hcH0gJHJlc3BvbnNpdmUtcHJvcGVydHktbWFwIC0gU2VlIGV4YW1wbGUgYWJvdmUuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3Rvci1wcmVmaXggLSBBbiBvcHRpb25hbCBzZWxlY3RvciBwcmVmaXggZm9yIHRoZVxuLy8vIHNlbGVjdG9ycyBkZWZpbmVkIGluIGAkcmVzcG9uc2l2ZS1wcm9wZXJ0eS1tYXBgLlxuLy8vIEBvdXRwdXQgQ1NTIHNlbGVjdG9ycyB3aXRoIHJlc3BvbnNpdmUgcHJvcGVydGllcy5cbi8vLyBAcmVxdWlyZSB7bWl4aW59IHJlc3BvbnNpdmUtZm9udC1zaXplIDwvX3Rvb2xzLnJlc3BvbnNpdmUtZm9udC1zaXplLnNjc3M+XG4vLy8gQHRocm93IE5vIHByb3BlcnR5IGRlZmluZWQsIEludmFsaWQgYXJndW1lbnRzIGV4Y2VwdGlvbnMuXG4vLy8gQGFjY2VzcyBwdWJsaWNcbkBtaXhpbiByZXNwb25zaXZlLXByb3BlcnR5LW1hcCgkcmVzcG9uc2l2ZS1wcm9wZXJ0eS1tYXAsICRzZWxlY3Rvci1wcmVmaXg6IFwiXCIpIHtcbiAgICBAZWFjaCAkc2VsZWN0b3IsICRwcm9wZXJ0eS1ibG9jayBpbiAkcmVzcG9uc2l2ZS1wcm9wZXJ0eS1tYXAge1xuICAgICAgICAvLyB0aGUgbGlzdCBvZiByZXNwb25zaXZlIHByb3BlcnRpZXMgZm9yIHRoaXMgc2VsZWN0b3JcbiAgICAgICAgJHJlc3BvbnNpdmUtbGlzdDogKCk7XG4gICAgICAgIEBlYWNoICRwcm9wZXJ0eSwgJHZhbHVlIGluICRwcm9wZXJ0eS1ibG9jayB7XG4gICAgICAgICAgICAvLyBmb250LXNpemVzIGFyZSBoYW5kbGVkIGJ5IGEgc2VwYXJhdGUgdG9vbFxuICAgICAgICAgICAgQGlmICgkcHJvcGVydHkgIT0gXCJmb250LXNpemVcIikge1xuICAgICAgICAgICAgICAgICRyZXNwb25zaXZlLWxpc3Q6IGFwcGVuZCgkcmVzcG9uc2l2ZS1saXN0LCAoJHByb3BlcnR5LCAkdmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICN7JHNlbGVjdG9yLXByZWZpeH0jeyRzZWxlY3Rvcn0ge1xuICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBmb250LXNpemUsIHBhc3MgaXQgdG8gdGhlIGByZXNwb25zaXZlLWZvbnQtc2l6ZSgpYFxuICAgICAgICAgICAgLy8gdG9vbC5cbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICAgICAkZm9udC1zaXplOiBtYXAtZ2V0KCRwcm9wZXJ0eS1ibG9jaywgXCJmb250LXNpemVcIiksXG4gICAgICAgICAgICAgICAgICAgICRhY2NlcHQtbnVsbDogdHJ1ZVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUncyBhdCBsZWFzdCBvbmUgcHJvcGVydHkgZm9yIHRoaXMgc2VsZWN0b3IuXG4gICAgICAgICAgICBAaWYgKGxlbmd0aCgkcmVzcG9uc2l2ZS1saXN0KSA+IDApIHtcbiAgICAgICAgICAgICAgICAvLyBhZGRpbmcgYC4uLmAgdG8gYSB2YXJpYWJsZSBwYXNzZXMgaXQgYXMgYW4gYGFyZ2xpc3RgXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eSgkcmVzcG9uc2l2ZS1saXN0Li4uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8vIE1vZGlmeSBhbGwgdmFsdWVzIGluIGEgcmVzcG9uc2l2ZSBtYXAuIFVzYWdlOlxuLy8vIGByZXNwb25zaXZlLXByb3BlcnR5LW1vZGlmeSgkcmVzcG9uc2l2ZS1wcm9wZXJ0eTogJG1hcCwgJGZhY3RvcjogLTEpYFxuLy8vIC4uLm5lZ2F0ZXMgYWxsIHZhbHVlcyBpbiB0aGUgbWFwLlxuLy8vIGByZXNwb25zaXZlLXByb3BlcnR5LW1vZGlmeSgkcmVzcG9uc2l2ZS1wcm9wZXJ0eTogJG1hcCwgJGZhY3RvcjogMC41KWBcbi8vLyAuLi5oYWx2ZXMgYWxsIHZhbHVlcyBpbiB0aGUgbWFwLlxuLy8vIGByZXNwb25zaXZlLXByb3BlcnR5LW1vZGlmeSgkcmVzcG9uc2l2ZS1wcm9wZXJ0eTogJG1hcCwgYWRkOiAxMHB4KWBcbi8vLyAuLi5hZGRzIDEwcHggdG8gYWxsIHZhbHVlcyBpbiB0aGUgbWFwLlxuLy8vIGByZXNwb25zaXZlLXByb3BlcnR5LW1vZGlmeSgkcmVzcG9uc2l2ZS1wcm9wZXJ0eSlgXG4vLy8gLi4uZG9lcyBub3RoaW5nLlxuLy8vIEBwYXJhbSB7TWFwfSAkcmVzcG9uc2l2ZS1wcm9wZXJ0eSAtIFJlc3BvbnNpdmUgcHJvcGVydHkgbWFwIHRvIG1vZGlmeS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZhY3RvciAtIEZhY3RvciB0byBhcHBseSB0byBhbGwgbWFwIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGFkZCAtIFZhbHVlIHRvIGFkZCB0byBhbGwgbWFwIHZhbHVlcyAodXNlIG5lZ2F0aXZlIHZhbHVlLlxuLy8vIGZvciBzdWJ0cmFjdGlvbikuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdXNlQ2FsYyAtIERldGVybWluZXMgaWYgdGhlIENTUyBgY2FsYygpYCBmdW5jdGlvbiBzaG91bGRcbi8vLyBiZSB1c2VkIGZvciB0aGUgYWRkaXRpb24uIE9ubHkgaGFzIGFuIGVmZmVjdCBpZiBgJGFkZGAgZG9lcyBub3QgZXF1YWwgYDBgLlxuLy8vIEByZXR1cm4ge01hcH0gLSBUaGUgbW9kaWZpZWQgbWFwLlxuQGZ1bmN0aW9uIHJlc3BvbnNpdmUtcHJvcGVydHktbW9kaWZ5KCRyZXNwb25zaXZlLXByb3BlcnR5LCAkZmFjdG9yOjEsICRhZGQ6MCwgJHVzZUNhbGM6IGZhbHNlKSB7XG4gICAgQGlmICgkcmVzcG9uc2l2ZS1wcm9wZXJ0eSA9PSBudWxsKSB7XG4gICAgICAgIEByZXR1cm4gJHJlc3BvbnNpdmUtcHJvcGVydHk7XG4gICAgfVxuICAgIEBpZiAodHlwZS1vZigkcmVzcG9uc2l2ZS1wcm9wZXJ0eSkgPT0gbWFwKSB7XG4gICAgICAgICRuZXctcmVzcG9uc2l2ZS1wcm9wZXJ0eTogKCk7XG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFsdWUgaW4gJHJlc3BvbnNpdmUtcHJvcGVydHkge1xuICAgICAgICAgICAgQGlmICR1c2VDYWxjIGFuZCAkYWRkICE9IDAge1xuICAgICAgICAgICAgICAgICRuZXctcmVzcG9uc2l2ZS1wcm9wZXJ0eTogbWFwLW1lcmdlKCRuZXctcmVzcG9uc2l2ZS1wcm9wZXJ0eSwgKCRicmVha3BvaW50OiBcImNhbGMoI3skdmFsdWUgKiAkZmFjdG9yfSArICN7JGFkZH0pXCIpKTtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICRuZXctcmVzcG9uc2l2ZS1wcm9wZXJ0eTogbWFwLW1lcmdlKCRuZXctcmVzcG9uc2l2ZS1wcm9wZXJ0eSwgKCRicmVha3BvaW50OiAkdmFsdWUgKiAkZmFjdG9yICsgJGFkZCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEByZXR1cm4gJG5ldy1yZXNwb25zaXZlLXByb3BlcnR5O1xuICAgIH1cbiAgICAvLyBBc3N1bWUgYCRyZXNwb25zaXZlLXByb3BlcnR5YCBpcyBhIHBsYWluIHZhbHVlIHdpdGggb3Igd2l0aG91dCB1bml0LCBlLmcuXG4gICAgLy8gXCIxMHB4XCIgb3IgXCIxMFwiLlxuICAgIEBpZiAkdXNlQ2FsYyBhbmQgJGFkZCAhPSAwIHtcbiAgICAgICAgQHJldHVybiBcImNhbGMoI3skcmVzcG9uc2l2ZS1wcm9wZXJ0eSAqICRmYWN0b3J9ICsgI3skYWRkfSlcIjtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQHJldHVybiAkcmVzcG9uc2l2ZS1wcm9wZXJ0eSAqICRmYWN0b3IgKyAkYWRkO1xuICAgIH1cbn1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNCT1JERVItU0VUVElOR1Ncbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kR0xPQkFMLUJPUkRFUi1XSURUSDogMXB4ICFkZWZhdWx0O1xuJEdMT0JBTC1CT1JERVItQ09MT1I6ICRDT0xPUi1CT1JERVIgIWRlZmF1bHQ7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTElTVC1CQVJFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBUaGUgbGlzdC1iYXJlIG9iamVjdCBzaW1wbHkgcmVtb3ZlcyBhbnkgaW5kZW50cyBhbmQgYnVsbGV0IHBvaW50cyBmcm9tIGxpc3RzLlxuICpcbiAqIElmIHlvdSBkb24ndCB3YW50IHRvIHVzZSB0aGUgY2xhc3MsIHRoZXJlIGlzIGFsc28gYSBtaXhpbiBhdmFpbGFibGUuXG4gKiAoYDAyLXRvb2xzL190b29scy5saXN0LWJhcmUuc2Nzc2ApXG4gKi9cblxuLm8tbGlzdC1iYXJlIHtcbiAgICBAaW5jbHVkZSBsaXN0LWJhcmUoKTtcbn1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNMSVNULUJBUkVcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vLy8gVGhlIGxpc3QtYmFyZSBtaXhpbiByZW1vdmVzIGFueSBpbmRlbnRzIGFuZCBidWxsZXQgcG9pbnRzIGZyb20gbGlzdHMuXG4vLy8gWW91IGNhbiBhbHNvIHVzZSB0aGlzIGFzIGEgY2xhc3MgaW4geW91ciBtYXJrdXAgKGRlZmluZWQgaW5cbi8vLyBgMDUtb2JqZWN0cy9fb2JqZWN0cy5saXN0LWJhcmUuc2Nzc2ApLlxuLy8vIEFuIG9wdGlvbmFsIHBhcmFtZXRlciBgJGl0ZW0tc2VsZWN0b3JgIGNhbiBiZSBwYXNzZWQsIHdoaWNoIHJlcGxhY2VzIHRoZVxuLy8vIHN0YW5kYXJkIGBsaWAgc2VsZWN0b3IgZm9yIGxpc3QtaXRlbXMuIFRoaXMgcmVkdWNlcyB0aGUgc3BlY2lmaWNpdHkgd2hpY2hcbi8vLyBtaWdodCBoZWxwIGF2b2lkIHVud2FudGVkIG92ZXJyaWRlcy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGl0ZW0tc2VsZWN0b3IgW251bGxdIC0gVGhlIGl0ZW0gc2VsZWN0b3IgdG8gdXNlIGZvciB0aGUgbGlzdCBpdGVtIHN0eWxlcy5cbi8vLyBAcGFyYW0ge1N0cmluZ319ICRkaXNwbGF5IFtcImJsb2NrXCJdICAgLSBUaGUgZGlzcGxheSBiZWhhdmlvciBvZiB0aGUgbGlzdCBlbGVtZW50LlxuQG1peGluIGxpc3QtYmFyZSgkaXRlbS1zZWxlY3RvcjogbnVsbCwgJGRpc3BsYXk6IGJsb2NrKSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgIEBpZiAoJGl0ZW0tc2VsZWN0b3IpIHtcblxuICAgICAgICBAYXQtcm9vdCAjeyRpdGVtLXNlbGVjdG9yfSB7XG4gICAgICAgICAgICBkaXNwbGF5OiAkZGlzcGxheTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgIH0gQGVsc2Uge1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgfVxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0xJU1QtQ0FTVUFMXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBMaXN0IHdob3NlIGl0ZW1zIGhhdmUgbW9yZSBzcGFjZSBiZXR3ZWVuIHRoZW0gdG8gbWFrZSB0aGUgd2hvbGUgbGlzdCBsb29rIGFcbiAqIGJpdCBtb3JlIHNwYWNleS5cbiAqL1xuXG4kbGlzdC1jYXN1YWwtaXRlbS1zcGFjaW5nOiAoJEdMT0JBTC1TUEFDSU5HLVVOSVQgKiAwLjUpICFkZWZhdWx0O1xuXG4uby1saXN0LWNhc3VhbCB7XG5cbiAgICBsaSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LWNhc3VhbC1pdGVtLXNwYWNpbmc7XG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTElTVC1JTkxJTkVcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFRoZSBsaXN0LWlubGluZSBvYmplY3Qgc2ltcGx5IHJlbW92ZXMgYW55IGluZGVudHMgYW5kIGJ1bGxldCBwb2ludHMgZnJvbVxuICogbGlzdHMgYW5kIHB1dHMgdGhlbSBpbiBhIGhvcml6b250YWwgb3JkZXIuXG4gKiBbMV0gU2V0IGFuIGFwcHJveGltYXRlbHkgc3BhY2luZyBtYXRjaGluZyB0aGUgb25lIHdoaXRlc3BhY2UgY2hhcmFjdGVyXG4gKiAgICAgb2YgdGhlIGN1cnJlbnQgbGlzdC5cbiAqL1xuXG4uby1saXN0LWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGNvbHVtbi1nYXA6IDAuMjVlbTsgLyogWzFdICovXG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgID4gbGkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI01FRElBXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBBbiBhZGFwdGlvbiBvZiB0aGUgZmFtb3VzIG1lZGlhIG9iamVjdC5cbiAqIChodHRwOi8vd3d3LnN0dWJib3JuZWxsYS5vcmcvY29udGVudC8yMDEwLzA2LzI1L3RoZS1tZWRpYS1vYmplY3Qtc2F2ZXMtaHVuZHJlZHMtb2YtbGluZXMtb2YtY29kZS8pXG4gKlxuICogV2UgcmV3cml0ZSB0aGUgb3JpZ2luYWwgb25lIHdpdGggYGRpc3BsYXk6IGZsZXhgIHRvIGJlIG1vcmUgZmxleGlibGUuXG4gKi9cblxuJG1lZGlhLXNwYWNpbmc6ICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRtZWRpYS1zcGFjaW5nLWF0LXM6ICAgJG1lZGlhLXNwYWNpbmcgIWRlZmF1bHQ7XG4kbWVkaWEtc3BhY2luZy1zbWFsbDogICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJG1lZGlhLXNwYWNpbmctbGFyZ2U6ICAkR0xPQkFMLVNQQUNJTkctVU5JVC1MQVJHRSAhZGVmYXVsdDtcbiRtZWRpYS1zcGFjaW5nLXhsYXJnZTogJEdMT0JBTC1TUEFDSU5HLVVOSVQtWExBUkdFICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBNYWtlIHN1cmUgdGhlIG1lZGlhIGJvZHkgdGFrZXMgdXAgYWxsIHRoZSBhdmFpbGFibGUgc3BhY2UgaXQgbmVlZHMgaWZcbiAqICAgICBpdHMgY29udGVudCBpcyBub3QgdGhhdCBsb25nLlxuICogWzJdIEZpeCB0byBtYWtlIHRleHQgdHJ1bmNhdGUgcG9zc2libGUgaW5zaWRlIG9mIG1lZGlhIGJvZHkgKG5lZWRlZCBmb3IgdGhlXG4gKiAgICAgY29udGFjdCBsaXN0KS5cbiAqL1xuLm8tbWVkaWEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICYuby1tZWRpYS0tcmV2ZXJzZWQge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3RhY2sgdGhlIGltYWdlIG9uIHRvcCBvZiB0aGUgbWVkaWEgY29udGVudCBvbiBzbWFsbCBzY3JlZW4uXG4gICAgICovXG4gICAgJi5vLW1lZGlhLS1jb2x1bW5cXEBzIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PXNcIikge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuby1tZWRpYS0tY29sdW1uLXJldmVyc2VcXEBzIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PXNcIikge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cbiAgICAuby1tZWRpYV9faW1nIHtcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWVkaWEtc3BhY2luZztcblxuICAgICAgICAuby1tZWRpYS0tc21hbGwgJiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRtZWRpYS1zcGFjaW5nLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLm8tbWVkaWEtLWxhcmdlICYge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWVkaWEtc3BhY2luZy1sYXJnZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5vLW1lZGlhLS14bGFyZ2UgJiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRtZWRpYS1zcGFjaW5nLXhsYXJnZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5vLW1lZGlhLS1yZXZlcnNlZCAmIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkbWVkaWEtc3BhY2luZztcbiAgICAgICAgfVxuXG4gICAgICAgIC5vLW1lZGlhLS1yZXZlcnNlZC5vLW1lZGlhLS1zbWFsbCAmIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkbWVkaWEtc3BhY2luZy1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5vLW1lZGlhLS1yZXZlcnNlZC5vLW1lZGlhLS1sYXJnZSAmIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkbWVkaWEtc3BhY2luZy1sYXJnZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5vLW1lZGlhLS1yZXZlcnNlZC5vLW1lZGlhLS14bGFyZ2UgJiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJG1lZGlhLXNwYWNpbmcteGxhcmdlO1xuICAgICAgICB9XG5cbiAgICAgICAgLm8tbWVkaWEtLW1pZGRsZSAmIHtcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5vLW1lZGlhLS1ib3R0b20gJiB7XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5vLW1lZGlhLS1jb2x1bW5cXEBzICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PXNcIikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkbWVkaWEtc3BhY2luZy1hdC1zO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm8tbWVkaWEtLWNvbHVtbi1yZXZlcnNlXFxAcyAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD1zXCIpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkbWVkaWEtc3BhY2luZy1hdC1zO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm8tbWVkaWEtLXJldmVyc2VkLm8tbWVkaWEtLWNvbHVtblxcQHMgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9c1wiKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm8tbWVkaWEtLXJldmVyc2VkLm8tbWVkaWEtLWNvbHVtbi1yZXZlcnNlXFxAcyAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD1zXCIpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5vLW1lZGlhX19ib2R5IHtcbiAgICAgICAgZmxleC1ncm93OiAxOyAvKiBbMV0gKi9cbiAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogMDsgLyogWzJdICovXG5cbiAgICAgICAgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5vLW1lZGlhLS1taWRkbGUgJiB7XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuby1tZWRpYS0tYm90dG9tICYge1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAuby1tZWRpYS0tY29sdW1uLXJldmVyc2VcXEBzICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PXNcIikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRtZWRpYS1zcGFjaW5nLWF0LXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNSQVRJT1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AdXNlIFwic2FzczptYXRoXCIgYXMgKjtcblxuLyoqXG4gKiBXaXRoIHRoZSBSYXRpbyBvYmplY3QgLm8tcmF0aW8geW91IGNhbiBzZXQgZml4ZWQgaW50cmluc2ljIGFzcGVjdCByYXRpb3MgZm9yXG4gKiBjZXJ0YWluIGVsZW1lbnRzIChlLmcuIGltYWdlcywgdmlkZW9zLCBpZnJhbWVzIG9yIGVtYmVkZGVkIGNvbnRlbnQpIHRoYXQgd2lsbFxuICogYmUga2VwdCByZWdhcmRsZXNzIG9mIHRoZSBjb250ZW50IGV2ZW4gd2hlbiBzY2FsZWQuXG4gKlxuICogU2VlIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL2NyZWF0aW5nLWludHJpbnNpYy1yYXRpb3MtZm9yLXZpZGVvXG4gKi9cblxuLy8gVGhlIG1hcCBrZXlzIGFyZSB0aGUgc3RyaW5ncyB1c2VkIGluIHRoZSBnZW5lcmF0ZWQgY2xhc3MgbmFtZXMsIGFuZCB0aGV5IGNhblxuLy8gZm9sbG93IGFueSBjb252ZW50aW9uLCBhcyBsb25nIGFzIHRoZXkgYXJlIHByb3Blcmx5IGVzY2FwZWQgc3RyaW5ncy4gaS5lLjpcbi8vXG4vLyAgICAgJHJhdGlvLXJhdGlvczogKFxuLy8gICAgICAgXCIyXFxcXDoxXCIgICAgICAgICA6ICgyOjEpLFxuLy8gICAgICAgXCI0LWJ5LTNcIiAgICAgICAgOiAoNDozKSxcbi8vICAgICAgIFwiZnVsbC1oZFwiICAgICAgIDogKDE2OjkpLFxuLy8gICAgICAgXCJjYXJkLWltYWdlXCIgICAgOiAoMjozKSxcbi8vICAgICAgIFwiZ29sZGVuLXJhdGlvXCIgIDogKDEuNjE4OjEpIC0+IG5vbi1pbnRlZ2VycyBhcmUgb2theVxuLy8gICAgICkgIWRlZmF1bHQ7XG5cbiRyYXRpby1yYXRpb3M6ICRHTE9CQUwtUkFUSU9TICFkZWZhdWx0O1xuXG4vKipcbiAqIDEuIENyZWF0ZSByYXRpby1ib3VuZCBjb250ZW50IGJsb2NrLCB0byBrZWVwIG1lZGlhIChlLmcuIGltYWdlcywgdmlkZW9zKSBpblxuICogICAgdGhlaXIgY29ycmVjdCBhc3BlY3QgcmF0aW9zLlxuICogICAgV2Ugb25seSBzZXQgYSByYXRpbyBpZiBhIGAuby1yYXRpby0tYCBtb2RpZmllciBjbGFzcyBpcyBzZXQgYXMgd2VsbCB0b1xuICogICAgYXZvaWQgdW53YW50ZWQgbGF5b3V0IGVycm9ycyB3aGVuIG5vIHNwZWNpZmljIHJhdGlvIHdhcyBzcGVjaWZpZWQgd2l0aCB0aGVcbiAqICAgIGAuby1yYXRpby0tYCBtb2RpZmllci5cbiAqIDIuIFRoZSBgLm8tcmF0aW9gIGNvbnRhaW5lciB3aWxsIGJlIHVzZWQgYXMgYSBib3ggd2l0aCBhbiBpbnRyaW5zaWMgcmF0aW8gYnlcbiAqICAgIGFkZGluZyBhIGBwYWRkaW5nLWJvdHRvbWAgd2l0aCB0aGUgYC5vLXJhdGlvLS1gIG1vZGlmaWVyIGNsYXNzIHdoaWNoIHNldHNcbiAqICAgIHRoZSByYXRpby5cbiAqIDMuIFRoZSBjaGlsZCBlbGVtZW50IHdpbGwgYmUgcG9zaXRpb25lZCBhYnNvbHV0ZWx5IHNvIHRoYXQgaXQgY292ZXJzIHRoZVxuICogICAgZW50aXJlIHdpZHRoIGFuZCBoZWlnaHQgb2YgYC5vLXJhdGlvYC5cbiAqL1xuXG4uby1yYXRpb1tjbGFzcyo9XCJvLXJhdGlvLS1cIl0geyAvKiBbMV0gKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIFsyXSAqL1xuICAgIGRpc3BsYXk6IGJsb2NrOyAvKiBbMl0gKi9cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7IC8qIFsyXSAqL1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgLyogWzJdICovXG4gICAgICAgIHdpZHRoOiAxMDAlOyAvKiBbMl0gKi9cbiAgICB9XG5cbiAgICA+IC5vLXJhdGlvX19jb250ZW50LFxuICAgID4gaWZyYW1lLFxuICAgID4gZW1iZWQsXG4gICAgPiBvYmplY3Qge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qIFszXSAqL1xuICAgICAgICB0b3A6IDA7IC8qIFszXSAqL1xuICAgICAgICBib3R0b206IDA7IC8qIFszXSAqL1xuICAgICAgICBsZWZ0OiAwOyAvKiBbM10gKi9cbiAgICAgICAgcmlnaHQ6IDA7IC8qIFszXSAqL1xuICAgICAgICB3aWR0aDogMTAwJTsgLyogWzNdICovXG4gICAgICAgIGhlaWdodDogMTAwJTsgLyogWzNdICovXG4gICAgfVxufVxuXG5cbi8qKlxuICogUmF0aW8gdmFyaWFudHMuXG4gKiBHZW5lcmF0ZSBhIHNlcmllcyBvZiByYXRpbyBjbGFzc2VzIHRvIGJlIHVzZWQgbGlrZSBzbzpcbiAqXG4gKiAgIDxkaXYgY2xhc3M9XCJvLXJhdGlvICBvLXJhdGlvLS0xNjo5XCI+XG4gKlxuICovXG5AZWFjaCAkcmF0aW8tbmFtZSwgJHJhdGlvLXZhbHVlIGluICRyYXRpby1yYXRpb3Mge1xuXG4gICAgQGVhY2ggJGFudGVjZWRlbnQsICRjb25zZXF1ZW50IGluICRyYXRpby12YWx1ZSB7XG5cbiAgICAgICAgQGlmICh0eXBlLW9mKCRhbnRlY2VkZW50KSAhPSBudW1iZXIpIHtcbiAgICAgICAgICAgIEBlcnJvcihcImAjeyRhbnRlY2VkZW50fWAgbmVlZHMgdG8gYmUgYSBudW1iZXIuXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICh0eXBlLW9mKCRjb25zZXF1ZW50KSAhPSBudW1iZXIpIHtcbiAgICAgICAgICAgIEBlcnJvcihcImAjeyRjb25zZXF1ZW50fWAgbmVlZHMgdG8gYmUgYSBudW1iZXIuXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm8tcmF0aW8tLSN7JHJhdGlvLW5hbWV9OmJlZm9yZSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcGVyY2VudGFnZShkaXYoJGNvbnNlcXVlbnQsICRhbnRlY2VkZW50KSk7IC8qIFsyXSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1BBR0UtV1JBUFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8vIElmIGAkcGFnZS13cmFwLXdpZHRoYCB3YXMgc2V0IHRvIGBub25lYCwgbm90ZSB0aGF0IGBjYWxjLXBhZ2Utd3JhcC13aWR0aCgpYFxuLy8gd2lsbCByZXR1cm4gYG5vbmVgIGFzIHdlbGwuIEl0IGlzIG5vdCBwb3NzaWJsZSB0byB1c2UgcGVyY2VudGFnZSB2YWx1ZXMgZm9yXG4vLyB0aGUgYG1heC13aWR0aGAgb2YgdGhlIHZhcmlhbnRzIChlLmcuIGBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoMTAvMTIpYCksIHNpbmNlXG4vLyB0aGlzIHdpbGwgbGltaXQgdGhlIGNvbnRlbnQncyB3aWR0aCBhbHNvIG9uIHNtYWxsIHNjcmVlbnMsIHdoaWNoIGlzIG5vdCB0aGVcbi8vIGRlc2lyZWQgYmVoYXZpb3IuXG4kcGFnZS13cmFwLXZhcmlhbnRzOiAoXG4gICAgXCJtZWRpdW1cIjogKFxuICAgICAgICBtYXgtd2lkdGg6IGdldC1wYWdlLXdyYXAtd2lkdGgoJHBhZ2Utd3JhcC12YXJpYW50LW1lZGl1bSlcbiAgICApLFxuICAgIFwic21hbGxcIjogKFxuICAgICAgICBtYXgtd2lkdGg6IGdldC1wYWdlLXdyYXAtd2lkdGgoJHBhZ2Utd3JhcC12YXJpYW50LXNtYWxsKVxuICAgICksXG4gICAgXCJ4c21hbGxcIjogKFxuICAgICAgICBtYXgtd2lkdGg6IGdldC1wYWdlLXdyYXAtd2lkdGgoJHBhZ2Utd3JhcC12YXJpYW50LXhzbWFsbClcbiAgICApLFxuICAgIFwieHhzbWFsbFwiOiAoXG4gICAgICAgIG1heC13aWR0aDogZ2V0LXBhZ2Utd3JhcC13aWR0aCgkcGFnZS13cmFwLXZhcmlhbnQteHhzbWFsbClcbiAgICApLFxuKSAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gQWRkIHBhZ2Ugd3JhcCB3aWR0aHMgYXMgQ1NTIGN1c3RvbSBwcm9wZXJ0eSBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGluXG4gKiAgICAgY2FsY3VsYXRpb25zIChlLmcuIGZvciB0aGUgRmxvYXQgZ3JpZCkuXG4gKiBbMl0gQWRkIHZhcmlhbnRzLCBlLmcuIGAuby1wYWdlLXdyYXAtLXNtYWxsYC5cbiAqL1xuOnJvb3Qge1xuICAgIC0tcGFnZS13cmFwLXdpZHRoOiAjeyRwYWdlLXdyYXAtd2lkdGh9OyAvKiBbMV0gKi9cbn1cblxuLm8tcGFnZS13cmFwIHtcbiAgICBAaW5jbHVkZSBwYWdlLXdyYXAoKTtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5LW1hcCgkcGFnZS13cmFwLXZhcmlhbnRzLCBcIiYuby1wYWdlLXdyYXAtLVwiKTsgLyogWzJdICovXG59XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjUEFHRS1XUkFQXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8vIFNtYWxsIHByaXZhdGUgaGVscGVyIHRvIGNhbGN1bGF0ZSBtYXgtd2lkdGggdmFsdWUgZm9yIHBhZ2Ugd3JhcC5cbi8vL1xuLy8vIEBwYXJhbSB7bnVtYmVyfSAkZmFjdG9yIG11bHRpcGx5IHdpZHRoXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRwYWRkaW5nIHBhZGRpbmcgKHBlciBzaWRlLCBub3QgY29tYmluZWQpXG4vLy8gQHJldHVybnMge0NTU30gQ2FsY3VsYXRlZCB3aWR0aC5cbkBmdW5jdGlvbiBfY2FsYy1wYWdlLXdyYXAtd2lkdGgoJGZhY3RvciwgJHBhZGRpbmcpIHtcbiAgICAvLyBVc2UgY2FsYyB0byBjb21iaW5lIHdpZHRoIHdpdGggcGFkZGluZ3MsIGluIGNhc2UgcGl4ZWwgdmFsdWVzIGFyZVxuICAgIC8vIGNvbWJpbmVkIHdpdGggcGVyY2VudGFnZXMuXG4gICAgQHJldHVybiBjYWxjKCN7JHBhZ2Utd3JhcC13aWR0aCAqICRmYWN0b3IgfSArICN7JHBhZGRpbmcgKiAyfSk7XG59XG5cbi8vLyBDYWxjdWxhdGUgd2lkdGggZm9yIHBhZ2Utd3JhcFxuLy8vXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRmYWN0b3IgbXVsdGlwbHkgd2lkdGhcbi8vLyBAcmV0dXJucyB7Q1NTfSBSZXR1cm5zIHRoZSBwYWdlIHdyYXAgd2lkdGggcGx1cyB0d28gdGltZXMgZGVmYXVsdCBwYWRkaW5nIChsZWZ0IGFuZCByaWdodCkuXG4vLy8gICAgICAgICAgICAgICAgSWYgbm8gd2lkdGggZm9yIGAkcGFnZS13cmFwLXdpZHRoYCB3YXMgZGVmaW5lZCwgcmV0dXJucyBgbm9uZWAuXG5AZnVuY3Rpb24gZ2V0LXBhZ2Utd3JhcC13aWR0aCgkZmFjdG9yOiAxKSB7XG4gICAgQGlmICgkcGFnZS13cmFwLXdpZHRoID09IG51bGwpIHtcbiAgICAgICAgQHJldHVybiBub25lO1xuICAgIH1cblxuICAgIEBpZiAodHlwZV9vZigkcGFnZS13cmFwLXBhZGRpbmctaG9yaXpvbnRhbCkgPT0gbWFwKSB7XG4gICAgICAgIC8vIENyZWF0ZSBhIHJlc3BvbnNpdmUgbWFwIHRoYXQgY29udGFpbnMgdGhlIGNvcnJlY3QgYG1heC13aWR0aGAgZm9yXG4gICAgICAgIC8vIGV2ZXJ5IGJyZWFrcG9pbnQuXG4gICAgICAgICRtYXgtd2lkdGgtcmVzcG9uc2l2ZTogKCk7XG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkcGFkZGluZy1hdC1icmVha3BvaW50IGluICRwYWdlLXdyYXAtcGFkZGluZy1ob3Jpem9udGFsIHtcbiAgICAgICAgICAgICR2YWw6IF9jYWxjLXBhZ2Utd3JhcC13aWR0aCgkZmFjdG9yLCAkcGFkZGluZy1hdC1icmVha3BvaW50KTtcbiAgICAgICAgICAgIC8vIEFkZCB0aGUgdmFsdWUgdG8gdGhlIHJlc3BvbnNpdmUtdmFsdWUgbWFwLlxuICAgICAgICAgICAgJG1heC13aWR0aC1yZXNwb25zaXZlOiBtYXAtbWVyZ2UoJG1heC13aWR0aC1yZXNwb25zaXZlLCAoJGJyZWFrcG9pbnQ6ICR2YWwpKTtcbiAgICAgICAgfVxuICAgICAgICBAcmV0dXJuICRtYXgtd2lkdGgtcmVzcG9uc2l2ZTtcbiAgICB9XG5cbiAgICAvLyBBc3N1bWUgYCRwYWdlLXdyYXAtcGFkZGluZy1ob3Jpem9udGFsYCBpcyBhIHBsYWluIHZhbHVlLlxuICAgIEByZXR1cm4gX2NhbGMtcGFnZS13cmFwLXdpZHRoKCRmYWN0b3IsICRwYWdlLXdyYXAtcGFkZGluZy1ob3Jpem9udGFsKTtcbn1cblxuLy8vIE1peGluIHRvIGdlbmVyYXRlIHBhZ2Utd3JhcCB0byBsaW1pdCBjb250ZW50LlxuQG1peGluIHBhZ2Utd3JhcCgpIHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFxuICAgICAgICAoXCJtYXgtd2lkdGhcIiwgICAgIGdldC1wYWdlLXdyYXAtd2lkdGgoKSksXG4gICAgICAgIChcInBhZGRpbmctbGVmdFwiLCAgJHBhZ2Utd3JhcC1wYWRkaW5nLWhvcml6b250YWwpLFxuICAgICAgICAoXCJwYWRkaW5nLXJpZ2h0XCIsICRwYWdlLXdyYXAtcGFkZGluZy1ob3Jpem9udGFsKSxcbiAgICAgICAgKFwiLS1wYWdlLXdyYXBcIiwgICAkcGFnZS13cmFwLXBhZGRpbmctaG9yaXpvbnRhbCkgLy8gY291bGQgYmUgdXNlZCBieSBvdGhlciBjb21wb25lbnRzXG4gICAgKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi8vLyBNaXhpbiB0byB1bmRvIGNvbnRlbnQgbGltaXRhdGlvbiBvZiBgcGFnZS13cmFwKClgLlxuQG1peGluIHVuZG8tcGFnZS13cmFwKCkge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTUFJTi1DT05UQUlORVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFsxXSBFbmFibGUgdGhlIGZvb3RlciB0byBiZSBwb3NpdGlvbmVkIGF0IHRoZSBib3R0b20gb2YgdGhlIHZpZXdwb3J0XG4gKiAgICAgaWYgdGhlIGNvbnRlbnQgaXMgbm90IGFzIGhpZ2ggYXMgdGhlIHJlbWFpbmluZyBzcGFjZS5cbiovXG5cbi5vLXJvb3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7IC8qIFsxXSAqL1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IC8qIFsxXSAqL1xuICAgIG1pbi1oZWlnaHQ6IDEwMHZoOyAvKiBbMV0gKi9cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNNQUlOLVdSQVBQRVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFsxXSBTdHJldGNoIHRoZSBjb250ZW50IG9mIHRoZSBtYWluIHNlbGVjdG9yIHRvIHB1c2hcbiAqICAgICBkb3duIHRoZSBmb290ZXIsIHdoZW4gdGhlIGNvbnRlbnQgaXMgdG9vIHNoYWxsb3cuXG4qL1xuXG4uby1tYWluIHtcbiAgICBmbGV4LWdyb3c6IDE7IC8qIFsxXSAqL1xuICAgIGZsZXgtc2hyaW5rOiAxOyAvKiBbMV0gKi9cbiAgICBmbGV4LWJhc2lzOiBhdXRvOyAvKiBbMV0gKi9cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNGSUVMRFNFVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogSGFuZGxlIHNwYWNpbmdzIGJldHdlZW4gZm9ybSBlbGVtZW50cyBpbiBmb3JtIHNldHMuXG4gKi9cblxuJGZpZWxkc2V0LWl0ZW0tc3BhY2luZzogJEdMT0JBTC1GSUVMRFNFVC1JVEVNLVNQQUNJTkcgIWRlZmF1bHQ7XG5cbi5vLWZpZWxkc2V0IHtcblxuICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRmaWVsZHNldC1pdGVtLXNwYWNpbmc7XG4gICAgfVxuXG59XG5cbiAgICAuby1maWVsZHNldF9fcm93IHtcblxuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGZpZWxkc2V0LWl0ZW0tc3BhY2luZztcbiAgICAgICAgfVxuXG4gICAgfVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0JVVFRPTi1DT05UQUlORVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kYnV0dG9uLWNvbnRhaW5lci1zcGFjaW5nLWhvcml6b250YWw6ICRCVVRUT04tSVRFTS1TUEFDSU5HLVZFUlRJQ0FMICFkZWZhdWx0O1xuJGJ1dHRvbi1jb250YWluZXItc3BhY2luZy12ZXJ0aWNhbDogICAkQlVUVE9OLUlURU0tU1BBQ0lORy1IT1JJWk9OVEFMICFkZWZhdWx0O1xuXG4vLyBEZXJpdmVkIGZyb20gd2hhdCBtYWRlIHNlbnNlIHZpc3VhbGx5LCBlLmcuIGluIENhcmQgY29udGV4dC5cbiRidXR0b24tY29udGFpbmVyLWJ1dHRvbi1taW4td2lkdGg6ICAgJEJVVFRPTi1NSU4tV0lEVEgtSU4tQ09OVEFJTkVSICFkZWZhdWx0O1xuJGJ1dHRvbi1jb250YWluZXItYnV0dG9uLW1heC13aWR0aDogICAkQlVUVE9OLU1BWC1XSURUSC1JTi1DT05UQUlORVIgIWRlZmF1bHQ7XG4kYnV0dG9uLWNvbnRhaW5lci1icmVha3BvaW50OiAgICAgICAgIHMgIWRlZmF1bHQ7XG4kYnV0dG9uLWNvbnRhaW5lci1uYXYtYWxpZ25tZW50OiAgICAgIGNlbnRlciAhZGVmYXVsdDtcbiRidXR0b24tY29udGFpbmVyLW5hdi1idXR0b24td2lkdGg6ICAgbWF4LWNvbnRlbnQgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIElmIGl04oCZcyB0aGUgb25seSBidXR0b24sIGxpbWl0IGl0cyB3aWR0aCBvbiBsYXJnZXIgdmlld3BvcnRzLlxuICogWzJdIFNob3cgbGFzdCBidXR0b24gKHVzdWFsbHkgQ1RBKSBvbiB0b3Agd2hlbiBidXR0b25zIGFyZSBzdGFja2VkIHZlcnRpY2FsbHkuXG4gKiBbM10gQ29tYmluZSBwb3NpdGlvbmluZyBvcHRpb25zIGZvciBuYXYgbW9kaWZpZXIgYmFzZWQgb24gZGVmaW5lZCBhbGlnbm1lbnQuXG4gKiAgICAgVGhpcyBhbGxvd3MgZmxleGliaWxpdHkgZm9yIGJyYW5kcyB3aXRoIG9uZS1tYXJrdXAuXG4gKiBbNF0gTWFrZSBzdXJlIHRoYXQgdGhlIGJ1dHRvbnMgaW4gYSBuYXZpZ2F0aW9uYWwgY29udGV4dFxuICogICAgIGNvbGxhcHNlIHRvIGl0cyBjb250ZW50LlxuICogWzVdIFNldCBhIG1heC13aWR0aCBmb3IgdGhlIG5hdiBidXR0b25zIGFzIHdlIGFsbG93IHRoZW1cbiAqICAgICB0byBncm93IHZpYSBpdHMgY29udGVudC4gQWxsb3cgZnVsbCB3aWR0aCBidXR0b25zIGZvciBzbWFsbFxuICogICAgIHZpZXdwb3J0cyBhcyB0aGV5IGFyZSBzdGFja2VkIG9uIHRvcCBlYWNoIG90aGVyIGJ1dFxuICogICAgIGxpbWl0IHRoZW0gb24gbGFyZ2VyIHZpZXdwb3J0cy5cbiAqIFs2XSBPbiBsYXJnZXIgdmlld3BvcnRzIHdlIGFsbG93IHRoZSBidXR0b24gdG8gZ3JvdyB1cCB0byBpdHMgaGFsZi13aWR0aFxuICogICAgIGRlcGVuZGluZyBvbiB0aGUgYnV0IGFzc3VyZSBhbHNvIGEgbWluLXdpZHRoLlxuICogWzddIEJvdGggcmV2ZXJzZSBtb2RpZmllciBzaGFyZSB0aGUgc2FtZSByZXZlcnNlZCBmbGV4IGRpcmVjdGlvbi5cbiAqIFs4XSBBcHBseSBgcm93LXJldmVyc2VgIG9ubHkgZm9yIG5vbi12ZXJ0aWNhbCBkaXJlY3Rpb25zIGFuZCBiaWdnZXIgdmlld3BvcnRzXG4gKiAgICAgYW5kIHJlc2V0IHRoZSBidXR0b24gc3BhY2luZ3MgYWNjb3JkaW5nbHkuXG4gKiBbOV0gT3ZlcnJpZGUgdGhlIEBleHRlbmQgZm9yIHNtYWxsZXIgdmlld3BvcnRzIGFzIHRoZSBuYXYtdmFyaWFudCBhbHdheXNcbiAqICAgICAgdXNlcyBjZW50ZXJlZCBpdGVtcy5cbiAqIFsxMF0gUHVsbCB0aGUgcmV2ZXJzZWQgaXRlbXMgdG8gdGhlIG9wcG9zaXRlIHNpZGUuXG4gKiBbMTFdIFdyYXAgaWYgdGhlIGl0ZW1zIGV4Y2VlZCB0aGUgYXZhaWxhYmxlIHNwYWNlLlxuICogWzEyXSBNYWtlIHRoZSBidXR0b24gYXQgbGVhc3QgYXMgd2lkZSB0byBmaXQgdGhlIGNvbnRlbnQgaW5zaWRlIHRoZSBjdXJyZW50IGF2YWlsYWJsZSBzcGFjZS5cbiAqIFsxM10gVGhlIHN0cmV0Y2ggdmFyaWFudCBmb3JjZXMgYSBmdWxsLXdpZHRoIGxheW91dC5cbiAqL1xuLm8tYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IC8qIFsxMV0gKi9cbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiBpbXBvcnRhbnQoMTAwJSwgdHJ1ZSk7XG4gICAgY29sdW1uLWdhcDogJGJ1dHRvbi1jb250YWluZXItc3BhY2luZy1ob3Jpem9udGFsO1xuICAgIHJvdy1nYXA6ICRidXR0b24tY29udGFpbmVyLXNwYWNpbmctdmVydGljYWw7XG59XG5cbi5vLWJ1dHRvbi1jb250YWluZXItLXN0cmV0Y2ggeyAvKiBbMTNdICovXG5cbiAgICAuby1idXR0b24tY29udGFpbmVyX19idXR0b24ge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiBpbml0aWFsO1xuICAgIH1cblxufVxuXG4uby1idXR0b24tY29udGFpbmVyLS1ub3dyYXAge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xufVxuXG4uby1idXR0b24tY29udGFpbmVyLS13cmFwLXJldmVyc2Uge1xuICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlO1xufVxuXG4uby1idXR0b24tY29udGFpbmVyLS1jZW50ZXIge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uby1idXR0b24tY29udGFpbmVyLS1sZWZ0IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbi5vLWJ1dHRvbi1jb250YWluZXItLXJpZ2h0IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4uby1idXR0b24tY29udGFpbmVyLS1uYXYge1xuICAgIEBleHRlbmQgLm8tYnV0dG9uLWNvbnRhaW5lci0tI3skYnV0dG9uLWNvbnRhaW5lci1uYXYtYWxpZ25tZW50fTsgLyogWzNdICovIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqL1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGJ1dHRvbi1jb250YWluZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgLyogWzldICovO1xuXG4gICAgICAgIC5vLWJ1dHRvbi1jb250YWluZXJfX2J1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLm8tYnV0dG9uLWNvbnRhaW5lcl9fYnV0dG9uIHtcbiAgICAgICAgZmxleC1ncm93OiAwO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPiN7JGJ1dHRvbi1jb250YWluZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgd2lkdGg6ICRidXR0b24tY29udGFpbmVyLW5hdi1idXR0b24td2lkdGg7IC8qIFs0XSAqL1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA1MCU7IC8qIFs1XSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuLm8tYnV0dG9uLWNvbnRhaW5lci0tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyAvKiBbOF0gKi9cblxuICAgICYuby1idXR0b24tY29udGFpbmVyLS1sZWZ0IHtcblxuICAgICAgICAuby1idXR0b24tY29udGFpbmVyX19idXR0b246Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyAvKiBbMTBdICovXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICYuby1idXR0b24tY29udGFpbmVyLS1yaWdodCB7XG5cbiAgICAgICAgLm8tYnV0dG9uLWNvbnRhaW5lcl9fYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IC8qIFsxMF0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG9yZGVyL29yZGVyICovXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGJ1dHRvbi1jb250YWluZXItYnJlYWtwb2ludH1cIikge1xuXG4gICAgICAgICYuby1idXR0b24tY29udGFpbmVyLS1sZWZ0XFxAcyB7XG5cbiAgICAgICAgICAgIC5vLWJ1dHRvbi1jb250YWluZXJfX2J1dHRvbjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyAvKiBbMTBdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgICYuby1idXR0b24tY29udGFpbmVyLS1yaWdodFxcQHMge1xuXG4gICAgICAgICAgICAuby1idXR0b24tY29udGFpbmVyX19idXR0b246bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IC8qIFsxMF0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuLm8tYnV0dG9uLWNvbnRhaW5lci0tdmVydGljYWwge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAmLm8tYnV0dG9uLWNvbnRhaW5lci0tbGVmdCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgICYuby1idXR0b24tY29udGFpbmVyLS1jZW50ZXIge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICYuby1idXR0b24tY29udGFpbmVyLS1yaWdodCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICB9XG5cbiAgICAmLm8tYnV0dG9uLWNvbnRhaW5lci0tcmV2ZXJzZSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICB9XG5cbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb3JkZXIvb3JkZXIgKi9cbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skYnV0dG9uLWNvbnRhaW5lci1icmVha3BvaW50fVwiKSB7XG5cbiAgICAgICAgJi5vLWJ1dHRvbi1jb250YWluZXItLWxlZnRcXEBzIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5vLWJ1dHRvbi1jb250YWluZXItLWNlbnRlclxcQHMge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYuby1idXR0b24tY29udGFpbmVyLS1yaWdodFxcQHMge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5vLWJ1dHRvbi1jb250YWluZXItLXJldmVyc2VcXEBzIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG4vLyBNb2RpZmllcnMgZm9yIHNtYWxsIHZpZXdwb3J0cyBvbmx5LlxuLm8tYnV0dG9uLWNvbnRhaW5lci0tbGVmdFxcQHMge1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGJ1dHRvbi1jb250YWluZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG59XG5cbi5vLWJ1dHRvbi1jb250YWluZXItLWNlbnRlclxcQHMge1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGJ1dHRvbi1jb250YWluZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbn1cblxuLm8tYnV0dG9uLWNvbnRhaW5lci0tcmlnaHRcXEBzIHtcblxuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRidXR0b24tY29udGFpbmVyLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICB9XG5cbn1cblxuLm8tYnV0dG9uLWNvbnRhaW5lci0tdmVydGljYWxcXEBzIHtcblxuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRidXR0b24tY29udGFpbmVyLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICYuby1idXR0b24tY29udGFpbmVyLS1sZWZ0LFxuICAgICAgICAmLm8tYnV0dG9uLWNvbnRhaW5lci0tbGVmdFxcQHMge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLm8tYnV0dG9uLWNvbnRhaW5lci0tY2VudGVyLFxuICAgICAgICAmLm8tYnV0dG9uLWNvbnRhaW5lci0tY2VudGVyXFxAcyB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5vLWJ1dHRvbi1jb250YWluZXItLXJpZ2h0LFxuICAgICAgICAmLm8tYnV0dG9uLWNvbnRhaW5lci0tcmlnaHRcXEBzIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuby1idXR0b24tY29udGFpbmVyLS1yZXZlcnNlLFxuICAgICAgICAmLm8tYnV0dG9uLWNvbnRhaW5lci0tcmV2ZXJzZVxcQHMge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuLm8tYnV0dG9uLWNvbnRhaW5lci0tcmV2ZXJzZVxcQHMgeyAvKiBbN10gKi9cblxuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRidXR0b24tY29udGFpbmVyLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyAvKiBbOF0gKi9cblxuICAgICAgICAmLm8tYnV0dG9uLWNvbnRhaW5lci0tbGVmdCxcbiAgICAgICAgJi5vLWJ1dHRvbi1jb250YWluZXItLWxlZnRcXEBzIHtcblxuICAgICAgICAgICAgLm8tYnV0dG9uLWNvbnRhaW5lcl9fYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IC8qIFsxMF0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgJi5vLWJ1dHRvbi1jb250YWluZXItLXJpZ2h0LFxuICAgICAgICAmLm8tYnV0dG9uLWNvbnRhaW5lci0tcmlnaHRcXEBzIHtcblxuICAgICAgICAgICAgLm8tYnV0dG9uLWNvbnRhaW5lcl9fYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyAvKiBbMTBdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbi5vLWJ1dHRvbi1jb250YWluZXItLXN0cmV0Y2hcXEBzIHtcblxuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRidXR0b24tY29udGFpbmVyLWJyZWFrcG9pbnR9XCIpIHtcblxuICAgICAgICAuby1idXR0b24tY29udGFpbmVyX19idXR0b24ge1xuICAgICAgICAgICAgd2lkdGg6IHVucXVvdGUoXCJtYXgoI3skYnV0dG9uLWNvbnRhaW5lci1idXR0b24tbWluLXdpZHRofSwgI3tjYWxjKDEwMCUgLSAjeyRidXR0b24tY29udGFpbmVyLXNwYWNpbmctaG9yaXpvbnRhbH0pfSlcIik7IC8qIFs2XSAqL1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBpbml0aWFsO1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuLy8gQmFzaWMgYnV0dG9uIHN0eWxlcy5cbi5vLWJ1dHRvbi1jb250YWluZXJfX2J1dHRvbiB7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgd2lkdGg6IHVucXVvdGUoXCJtYXgoI3skYnV0dG9uLWNvbnRhaW5lci1idXR0b24tbWluLXdpZHRofSwgI3tjYWxjKDUwJSAtICN7JGJ1dHRvbi1jb250YWluZXItc3BhY2luZy1ob3Jpem9udGFsICogMC41fSl9KVwiKTsgLyogWzZdICovXG4gICAgbWF4LXdpZHRoOiAkYnV0dG9uLWNvbnRhaW5lci1idXR0b24tbWF4LXdpZHRoO1xuICAgIG1pbi13aWR0aDogZml0LWNvbnRlbnQ7IC8qIFsxMl0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSAqL1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI+I3skYnV0dG9uLWNvbnRhaW5lci1icmVha3BvaW50fVwiKSB7XG5cbiAgICAgICAgJjpvbmx5LWNoaWxkIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogNTAlOyAvKiBbMV0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjQlVUVE9OU1xuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRCVVRUT04tSVRFTS1TUEFDSU5HOiAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRCVVRUT04tSVRFTS1TUEFDSU5HLVZFUlRJQ0FMOiAgICAgICAgICAgICAkQlVUVE9OLUlURU0tU1BBQ0lORyAhZGVmYXVsdDtcbiRCVVRUT04tSVRFTS1TUEFDSU5HLUhPUklaT05UQUw6ICAgICAgICAgICAkQlVUVE9OLUlURU0tU1BBQ0lORyAhZGVmYXVsdDtcblxuJEJVVFRPTi1HUk9VUC1JVEVNLVNQQUNJTkc6ICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJEJVVFRPTi1HUk9VUC1JVEVNLVNQQUNJTkctVkVSVElDQUw6ICAgICAgICRCVVRUT04tR1JPVVAtSVRFTS1TUEFDSU5HICFkZWZhdWx0O1xuJEJVVFRPTi1HUk9VUC1JVEVNLVNQQUNJTkctSE9SSVpPTlRBTDogICAgICRCVVRUT04tR1JPVVAtSVRFTS1TUEFDSU5HICFkZWZhdWx0O1xuJEJVVFRPTi1HUk9VUC1JVEVNLUJBQ0tHUk9VTkQtQ09MT1I6ICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJEJVVFRPTi1HUk9VUC1JVEVNLUJBQ0tHUk9VTkQtQ09MT1ItSE9WRVI6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJEJVVFRPTi1MSU5FLUhFSUdIVDogICAgICAgICAgICAgICAgICAgICAgIDIwcHggIWRlZmF1bHQ7XG4kQlVUVE9OLVRFWFQtU0laRTogICAgICAgICAgICAgICAgICAgICAgICAgJEZTLTEgIWRlZmF1bHQ7XG4kQlVUVE9OLUhFSUdIVDogICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1IRUlHSFQgIWRlZmF1bHQ7XG4kQlVUVE9OLU1JTi1XSURUSC1JTi1DT05UQUlORVI6ICAgICAgICAgICAgMTAwcHggIWRlZmF1bHQ7XG4kQlVUVE9OLU1BWC1XSURUSC1JTi1DT05UQUlORVI6ICAgICAgICAgICAgMzAwcHggIWRlZmF1bHQ7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQ09OVEVOVC1TRUNUSU9OXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBBbiBvYmplY3Qgd3JhcHBpbmcgdGhlIGNvbnRlbnQgb2YgZW50aXJlIHNlY3Rpb25zIHRvIGVuc3VyZSBhIGNvbnNpc3RlbnRcbiAqIHNwYWNpbmcgYXJvdW5kIHRoZSBzZWN0aW9ucyBjb250ZW50LlxuICovXG5cbiRjb250ZW50LXNlY3Rpb24tc3BhY2luZzogICAgICAgICRDT05URU5ULVNFQ1RJT04tU1BBQ0lORyAhZGVmYXVsdDtcbiRjb250ZW50LXNlY3Rpb24tc3BhY2luZy10b3A6ICAgICRDT05URU5ULVNFQ1RJT04tU1BBQ0lORy1UT1AgIWRlZmF1bHQ7XG4kY29udGVudC1zZWN0aW9uLXNwYWNpbmctYm90dG9tOiAkQ09OVEVOVC1TRUNUSU9OLVNQQUNJTkctQk9UVE9NICFkZWZhdWx0O1xuXG4uby1jb250ZW50LXNlY3Rpb24ge1xuICAgIHBhZGRpbmctdG9wOiAkY29udGVudC1zZWN0aW9uLXNwYWNpbmctdG9wO1xuICAgIHBhZGRpbmctYm90dG9tOiAkY29udGVudC1zZWN0aW9uLXNwYWNpbmctYm90dG9tO1xufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0NPTVBPTkVOVC1XUkFQUEVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBUaGUgY29tcG9uZW50LXdyYXBwZXIgaXMgYW4gb2JqZWN0IHRoYXQgbmVlZHMgdG8gYmUgdGhlIGNvbnRhaW5lciBvZiBldmVyeVxuICogY29tcG9uZW50LCB3aGljaCBzaXRzIGRpcmVjdGx5IGluIGEgY29udGVudCBzZWN0aW9uLiBJdCBtYWtlcyBzdXJlIHRoYXQgdGhlXG4gKiBzcGFjaW5nIGJldHdlZW4gdGhlIGNvbXBvbmVudHMgaXMgYWx3YXlzIGNvcnJlY3QuXG4gKi9cblxuJGNvbXBvbmVudC13cmFwcGVyLXNwYWNpbmctYm90dG9tOiAkR0xPQkFMLVNQQUNJTkctVU5JVC1MQVJHRSAhZGVmYXVsdDtcblxuLm8tY29tcG9uZW50LXdyYXBwZXIge1xuXG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGNvbXBvbmVudC13cmFwcGVyLXNwYWNpbmctYm90dG9tO1xuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAjRkxPQVQtR1JJRFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkB1c2UgXCJzYXNzOm1hcFwiO1xuQHVzZSBcInNhc3M6bGlzdFwiO1xuXG4kZmxvYXQtZ3JpZC1icmVha3BvaW50OiAgICAgICAgICAgICAgICAgICBzICFkZWZhdWx0O1xuJGZsb2F0LWdyaWQtc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcbiRmbG9hdC1ncmlkLXBhZ2Utd3JhcC13aWR0aDogICAgICAgICAgICAgICRwYWdlLXdyYXAtd2lkdGggIWRlZmF1bHQ7XG4kZmxvYXQtZ3JpZC1wYWdlLXdyYXAtaG9yaXpvbnRhbC1wYWRkaW5nOiAkcGFnZS13cmFwLXBhZGRpbmctaG9yaXpvbnRhbCAhZGVmYXVsdDtcbiRmbG9hdC1ncmlkLXJvdy1nYXA6ICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJGZsb2F0LWdyaWQtaXRlbS1nYXA6ICAgICAgICAgICAgICAgICAgICAgJGZsb2F0LWdyaWQtcm93LWdhcCAhZGVmYXVsdDtcbiRmbG9hdC1ncmlkLWFyZWEtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICRmbG9hdC1ncmlkLXJvdy1nYXAgIWRlZmF1bHQ7XG4kZmxvYXQtZ3JpZC1hcmVhLXBhZGRpbmctdmVydGljYWw6ICAgICAgICBudWxsICFkZWZhdWx0O1xuJGZsb2F0LWdyaWQtYXJlYXM6IChcbiAgICB0b3A6IChcbiAgICAgICAgZ3JpZC1hcmVhOiB0LFxuICAgICksXG4gICAgYm90dG9tOiAoXG4gICAgICAgIGdyaWQtYXJlYTogYixcbiAgICApLFxuICAgIHRvcC1sZWZ0OiAoXG4gICAgICAgIGdyaWQtYXJlYTogICAgICAgICAgdGwsXG4gICAgICAgIGp1c3RpZnktY29udGVudDogICAgc3RhcnQsXG4gICAgICAgIGFsaWduLWl0ZW1zOiAgICAgICAgc3RhcnQsXG4gICAgICAgIG9mZnNldDogICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgb2Zmc2V0LWRpcmVjdGlvbjogICBuZWdhdGl2ZSxcbiAgICAgICAgcGFkZGluZy1ob3Jpem9udGFsOiAkZmxvYXQtZ3JpZC1hcmVhLXBhZGRpbmctaG9yaXpvbnRhbCxcbiAgICAgICAgcGFkZGluZy12ZXJ0aWNhbDogICAkZmxvYXQtZ3JpZC1hcmVhLXBhZGRpbmctdmVydGljYWwsXG4gICAgKSxcbiAgICB0b3AtY2VudGVyOiAoXG4gICAgICAgIGdyaWQtYXJlYTogICAgICAgICAgdGMsXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiAgICAgcm93LFxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICAgIGNlbnRlcixcbiAgICAgICAgYWxpZ24taXRlbXM6ICAgICAgICBmbGV4LXN0YXJ0LFxuICAgICAgICBwYWRkaW5nLWhvcml6b250YWw6ICRmbG9hdC1ncmlkLWFyZWEtcGFkZGluZy1ob3Jpem9udGFsLFxuICAgICAgICBwYWRkaW5nLXZlcnRpY2FsOiAgICRmbG9hdC1ncmlkLWFyZWEtcGFkZGluZy12ZXJ0aWNhbCxcbiAgICApLFxuICAgIHRvcC1yaWdodDogKFxuICAgICAgICBncmlkLWFyZWE6ICAgICAgICAgIHRyLFxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICAgIGZsZXgtc3RhcnQsXG4gICAgICAgIGFsaWduLWl0ZW1zOiAgICAgICAgZmxleC1lbmQsXG4gICAgICAgIG9mZnNldDogICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgcGFkZGluZy1ob3Jpem9udGFsOiAkZmxvYXQtZ3JpZC1hcmVhLXBhZGRpbmctaG9yaXpvbnRhbCxcbiAgICAgICAgcGFkZGluZy12ZXJ0aWNhbDogICAkZmxvYXQtZ3JpZC1hcmVhLXBhZGRpbmctdmVydGljYWwsXG4gICAgKSxcbiAgICBjZW50ZXItbGVmdDogKFxuICAgICAgICBncmlkLWFyZWE6ICAgICAgICAgIGNsLFxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICAgIGNlbnRlcixcbiAgICAgICAgYWxpZ24taXRlbXM6ICAgICAgICBmbGV4LXN0YXJ0LFxuICAgICAgICBvZmZzZXQ6ICAgICAgICAgICAgIHRydWUsXG4gICAgICAgIG9mZnNldC1kaXJlY3Rpb246ICAgbmVnYXRpdmUsXG4gICAgICAgIHBhZGRpbmctaG9yaXpvbnRhbDogJGZsb2F0LWdyaWQtYXJlYS1wYWRkaW5nLWhvcml6b250YWwsXG4gICAgICAgIHBhZGRpbmctdmVydGljYWw6ICAgJGZsb2F0LWdyaWQtYXJlYS1wYWRkaW5nLXZlcnRpY2FsLFxuICAgICksXG4gICAgY2VudGVyLWNlbnRlcjogKFxuICAgICAgICBncmlkLWFyZWE6ICAgICAgICAgIGNjLFxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogICAgIHJvdyxcbiAgICAgICAganVzdGlmeS1jb250ZW50OiAgICBjZW50ZXIsXG4gICAgICAgIGFsaWduLWl0ZW1zOiAgICAgICAgY2VudGVyLFxuICAgICAgICBwYWRkaW5nLWhvcml6b250YWw6ICRmbG9hdC1ncmlkLWFyZWEtcGFkZGluZy1ob3Jpem9udGFsLFxuICAgICAgICBwYWRkaW5nLXZlcnRpY2FsOiAgICRmbG9hdC1ncmlkLWFyZWEtcGFkZGluZy12ZXJ0aWNhbCxcbiAgICApLFxuICAgIGNlbnRlci1yaWdodDogKFxuICAgICAgICBncmlkLWFyZWE6ICAgICAgICAgIGNyLFxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICAgIGNlbnRlcixcbiAgICAgICAgYWxpZ24taXRlbXM6ICAgICAgICBmbGV4LWVuZCxcbiAgICAgICAgb2Zmc2V0OiAgICAgICAgICAgICB0cnVlLFxuICAgICAgICBwYWRkaW5nLWhvcml6b250YWw6ICRmbG9hdC1ncmlkLWFyZWEtcGFkZGluZy1ob3Jpem9udGFsLFxuICAgICAgICBwYWRkaW5nLXZlcnRpY2FsOiAgICRmbG9hdC1ncmlkLWFyZWEtcGFkZGluZy12ZXJ0aWNhbCxcbiAgICApLFxuICAgIGJvdHRvbS1sZWZ0OiAoXG4gICAgICAgIGdyaWQtYXJlYTogICAgICAgICAgYmwsXG4gICAgICAgIGp1c3RpZnktY29udGVudDogICAgZmxleC1lbmQsXG4gICAgICAgIGFsaWduLWl0ZW1zOiAgICAgICAgZmxleC1zdGFydCxcbiAgICAgICAgb2Zmc2V0OiAgICAgICAgICAgICB0cnVlLFxuICAgICAgICBvZmZzZXQtZGlyZWN0aW9uOiAgIG5lZ2F0aXZlLFxuICAgICAgICBwYWRkaW5nLWhvcml6b250YWw6ICRmbG9hdC1ncmlkLWFyZWEtcGFkZGluZy1ob3Jpem9udGFsLFxuICAgICAgICBwYWRkaW5nLXZlcnRpY2FsOiAgICRmbG9hdC1ncmlkLWFyZWEtcGFkZGluZy12ZXJ0aWNhbCxcbiAgICApLFxuICAgIGJvdHRvbS1jZW50ZXI6IChcbiAgICAgICAgZ3JpZC1hcmVhOiAgICAgICAgICBiYyxcbiAgICAgICAgZmxleC1kaXJlY3Rpb246ICAgICByb3csXG4gICAgICAgIGp1c3RpZnktY29udGVudDogICAgY2VudGVyLFxuICAgICAgICBhbGlnbi1pdGVtczogICAgICAgIGZsZXgtZW5kLFxuICAgICAgICBwYWRkaW5nLWhvcml6b250YWw6ICRmbG9hdC1ncmlkLWFyZWEtcGFkZGluZy1ob3Jpem9udGFsLFxuICAgICAgICBwYWRkaW5nLXZlcnRpY2FsOiAgICRmbG9hdC1ncmlkLWFyZWEtcGFkZGluZy12ZXJ0aWNhbCxcbiAgICApLFxuICAgIGJvdHRvbS1yaWdodDogKFxuICAgICAgICBncmlkLWFyZWE6ICAgICAgICAgIGJyLFxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICAgIGZsZXgtZW5kLFxuICAgICAgICBhbGlnbi1pdGVtczogICAgICAgIGZsZXgtZW5kLFxuICAgICAgICBvZmZzZXQ6ICAgICAgICAgICAgIHRydWUsXG4gICAgICAgIHBhZGRpbmctaG9yaXpvbnRhbDogJGZsb2F0LWdyaWQtYXJlYS1wYWRkaW5nLWhvcml6b250YWwsXG4gICAgICAgIHBhZGRpbmctdmVydGljYWw6ICAgJGZsb2F0LWdyaWQtYXJlYS1wYWRkaW5nLXZlcnRpY2FsLFxuICAgICksXG4pICFkZWZhdWx0O1xuXG4vLyBUaGUgRmxvYXQgR3JpZCBtaXhpbiBhZGRzIGFsbCBDU1Mgc2VsZWN0b3JzIHRoYXQgYXJlIG5lZWRlZCBieSBKYXZhU2NyaXB0IHRvXG4vLyB0aGlzIGxpc3QuIFRoZSBjb21wbGV0ZSBsaXN0IGlzIHRoZW4gYmVpbmcgdXNlZCBhcyBhIENTUyBjdXN0b20gcHJvcGVydHlcbi8vIGAtLWZsb2F0LWdyaWQtZWxlbWVudHNgIGluIGBfc2hhbWUuc2Nzc2AuXG4kZmxvYXQtZ3JpZC1zZWxlY3RvcnM6ICgpICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBDb25zaWRlciByZXNwb25zaXZlIHBhZ2Ugd3JhcCBwYWRkaW5ncyB3aGVuIGNhbGN1bGF0aW5nIGdyaWQgdGVtcGxhdGVcbiAqICAgICBjb2x1bW5zLlxuICogWzJdIERlZmluZSBuYW1lZCBncmlkIGFyZWFzIChVbmZvcnR1bmF0ZWx5IGl0IGlzIG5vdCBwb3NzaWJsZSB3aXRoIFNhc3MgdG9cbiAqICAgICBkZWZpbmUgdGhpcyBhcyBhIG11bHRpbGluZSB2YXJpYWJsZSkuXG4gKiBbM10gQ2FsY3VsYXRlIGdyaWQgdGVtcGxhdGUgY29sdW1ucy5cbiAqIFs0XSBTZXQgZ3JpZCB0ZW1wbGF0ZSByb3dzLlxuICogWzVdIERpc2FibGUgRmxvYXQgR3JpZCBwb2ludGVyIGV2ZW50cyB0byBhbGxvdyBjbGljayB0aHJvdWdoIHRoZSBncmlkLlxuICogWzZdIFBvc2l0aW9uIGl0ZW1zIGluIGdyaWQgYXJlYXMgYXMgZmxleCBpdGVtcy5cbiAqIFs3XSBHZW5lcmF0ZSBDU1MgY3VzdG9tIHByb3BlcnR5IGAtLWZsb2F0LWdyaWQtYXJlYXNgIHRoYXQgd2lsbCBiZSB1c2VkIGJ5XG4gKiAgICAgSmF2YVNjcmlwdCB0byBidWlsZCB0aGUgRmxvYXQgR3JpZCBhcmVhc+KAmSBtYXJrdXAuXG4gKiBbOF0gR2VuZXJhdGUgYGRhdGEtZmxvYXQtZ3JpZC1hcmVhYCBDU1MgcnVsZXMgZm9yIGVhY2ggYXJlYS5cbiAqIFs5XSBFbmFibGUgcG9pbnRlciBldmVudHMgZm9yIGl0ZW1zIGluIEZsb2F0IEdyaWQgYXJlYXMuXG4gKiBbMTBdIENoYW5nZSB0aGUgbWluaW11bSBGbG9hdCBHcmlkIGFyZWEgc2l6ZSBmcm9tIGBtYXgtY29udGVudGAgdG8gYDBgIGluXG4gKiAgICAgIHNtYWxsZXIgdmlld3BvcnRzIHRvIGFsbG93IHRoZSBvdmVybGFwcGluZyBvZiBGbG9hdCBHcmlkIGFyZWEgY29udGVudFxuICogICAgICB3aXRoIG90aGVyIGFyZWFzLiBUaGlzIGlzIGEgY29tcHJvbWlzZSB0byBnaXZlIGl0ZW1zIGVub3VnaCBzcGFjZVxuICogICAgICAoZS5nLiB0aGUgSW5jb2duaXRvIEFjdGlvbiBCdXR0b25zKS5cbiAqIFsxMV0gVGhlIGl0ZW0gb2Zmc2V0IGlzIGJlaW5nIHVzZWQgdG8gcHVzaCBhbiBpdGVtIG91dCBvZiBhIEZsb2F0IEdyaWQgYXJlYVxuICogICAgICBpZiBlbm91Z2ggc3BhY2UgaXMgYXZhaWxhYmxlLiBgMTAwJWAgaXMgZXF1YWwgdG8gdGhlIGl0ZW0gd2lkdGguXG4gKiBbMTJdIFNldCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBpdGVtIG9mZnNldCBieSBzZXR0aW5nIGEgY3VzdG9tIHByb3BlcnR5IHRoYXRcbiAqICAgICAgd2lsbCBiZSB1c2VkIGxhdGVyIGluIHRoZSBvZmZzZXQgY2FsY3VsYXRpb24uIE5lZ2F0aXZlIHZhbHVlcyB3aWxsIHB1c2hcbiAqICAgICAgdGhlIGl0ZW0gdG8gdGhlIGxlZnQsIHBvc2l0aXZlIHZhbHVlcyB3aWxsIHB1c2ggaXQgdG8gdGhlIHJpZ2h0LlxuICogWzEzXSBBZGQgZWFjaCBGbG9hdCBHcmlkIGFyZWEgc2VsZWN0b3IgdG8gdGhlIHNlbGVjdG9yIGxpc3Qgd2l0aCB0aGUgY2FsY3VsYXRpb24uXG4gKiAgICAgIFdlIGFyZSB1c2luZyBgQGV4dGVuZCcgaW5zdGVhZCBvZiBhIG1peGluIHRvIGF2b2lkIGR1cGxpY2F0aW5nIHRoZVxuICogICAgICBjb21wbGV4IGB0cmFuc2Zvcm1gIHByb3BlcnR5IGZvciBlYWNoIGFyZWEuXG4gKiBbMTRdIENhbGN1bGF0ZSB0aGUgdHJhbnNmb3JtIHByb3BlcnR5IHRvIG1vdmUgaXRlbXMgb3V0IG9mIEZsb2F0IEdyaWQgYXJlYXMuXG4gKiAgICAgIENoZWNrIGlubGluZSBjb21tZW50cyBmb3IgZGV0YWlscy5cbiAqL1xuXG4uby1mbG9hdC1ncmlkIHtcbiAgICAtLXBhZ2Utd3JhcC1wYWRkaW5nLWhvcml6b250YWw6IDA7IC8qIFsxXSAqL1xuICAgIC0tZmxvYXQtZ3JpZC1jb2x1bW4tbWluLXNpemU6IG1heC1jb250ZW50O1xuICAgIC0tZmxvYXQtZ3JpZC1yb3ctbWluLXNpemU6IHZhcigtLWZsb2F0LWdyaWQtY29sdW1uLW1pbi1zaXplKTtcbiAgICAtLWZsb2F0LWdyaWQtY29sdW1uLWdhcDogdmFyKC0tcGFnZS13cmFwLXBhZGRpbmctaG9yaXpvbnRhbCk7IC8qIFsxXSAqL1xuICAgIC0tZmxvYXQtZ3JpZC1yb3ctZ2FwOiAjeyRmbG9hdC1ncmlkLXJvdy1nYXB9O1xuICAgIC0tZmxvYXQtZ3JpZC1pdGVtLWdhcDogI3skZmxvYXQtZ3JpZC1pdGVtLWdhcH07XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IHooZmxvYXQtZ3JpZCk7XG4gICAgdG9wOiAkZmxvYXQtZ3JpZC1zcGFjaW5nO1xuICAgIGJvdHRvbTogJGZsb2F0LWdyaWQtc3BhY2luZztcbiAgICBsZWZ0OiAkZmxvYXQtZ3JpZC1zcGFjaW5nO1xuICAgIHJpZ2h0OiAkZmxvYXQtZ3JpZC1zcGFjaW5nO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICAgICAgXCJ0ICAgdCAgIHQgICB0ICAgdFwiXG4gICAgICAgIFwiLiAgIHRsICB0YyAgdHIgIC5cIlxuICAgICAgICBcIi4gICBjbCAgY2MgIGNyICAuXCJcbiAgICAgICAgXCIuICAgYmwgIGJjICBiciAgLlwiXG4gICAgICAgIFwiYiAgIGIgICBiICAgYiAgIGJcIjsgLyogWzJdICovXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBjYWxjKCgxMDAlIC0gI3skZmxvYXQtZ3JpZC1wYWdlLXdyYXAtd2lkdGh9KSAvIDIgLSB2YXIoLS1wYWdlLXdyYXAtcGFkZGluZy1ob3Jpem9udGFsKSkgcmVwZWF0KDMsIG1pbm1heCh2YXIoLS1mbG9hdC1ncmlkLWNvbHVtbi1taW4tc2l6ZSksIDFmcikpIGNhbGMoKDEwMCUgLSAjeyRmbG9hdC1ncmlkLXBhZ2Utd3JhcC13aWR0aH0pIC8gMiAtIHZhcigtLXBhZ2Utd3JhcC1wYWRkaW5nLWhvcml6b250YWwpKTsgLyogWzFdIFszXSAqL1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byByZXBlYXQoMywgbWlubWF4KHZhcigtLWZsb2F0LWdyaWQtcm93LW1pbi1zaXplKSwgMWZyKSkgYXV0bzsgLyogWzRdICovXG4gICAgY29sdW1uLWdhcDogdmFyKC0tZmxvYXQtZ3JpZC1jb2x1bW4tZ2FwKTsgLyogWzFdICovXG4gICAgcm93LWdhcDogdmFyKC0tZmxvYXQtZ3JpZC1yb3ctZ2FwKTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogWzVdICovXG5cbiAgICBAaWYgKGlzLW1hcCgkZmxvYXQtZ3JpZC1wYWdlLXdyYXAtaG9yaXpvbnRhbC1wYWRkaW5nKSkge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFwiLS1wYWdlLXdyYXAtcGFkZGluZy1ob3Jpem9udGFsXCIsICRmbG9hdC1ncmlkLXBhZ2Utd3JhcC1ob3Jpem9udGFsLXBhZGRpbmcpOyAvKiBbMV0gKi9cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgLS1wYWdlLXdyYXAtcGFkZGluZy1ob3Jpem9udGFsOiAjeyRmbG9hdC1ncmlkLXBhZ2Utd3JhcC1ob3Jpem9udGFsLXBhZGRpbmd9OyAvKiBbMV0gKi9cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjwjeyRmbG9hdC1ncmlkLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgLS1mbG9hdC1ncmlkLWNvbHVtbi1taW4tc2l6ZTogMDsgLyogWzEwXSAqL1xuICAgIH1cbn1cblxuLm8tZmxvYXQtZ3JpZF9fYXJlYSB7XG4gICAgLS1ncmlkLWFyZWEtaXRlbS1vZmZzZXQ6IDEwMCU7IC8qIFsxMV0gKi9cbiAgICBkaXNwbGF5OiBmbGV4OyAvKiBbNl0gKi9cbiAgICBnYXA6IHZhcigtLWZsb2F0LWdyaWQtaXRlbS1nYXApO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZy10b3A6IHZhcigtLWZsb2F0LWdyaWQtYXJlYS1wYWRkaW5nLXZlcnRpY2FsKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1mbG9hdC1ncmlkLWFyZWEtcGFkZGluZy1ob3Jpem9udGFsKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tZmxvYXQtZ3JpZC1hcmVhLXBhZGRpbmctdmVydGljYWwpO1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZmxvYXQtZ3JpZC1hcmVhLXBhZGRpbmctaG9yaXpvbnRhbCk7XG59XG5cbiRfZmxvYXQtZ3JpZC1hcmVhcy1jdXN0b20tcHJvcGVydHk6ICgpOyAvKiBbN10gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1kZWZhdWx0ICovXG5cbkBlYWNoICRhcmVhLCAkcHJvcHMgaW4gJGZsb2F0LWdyaWQtYXJlYXMge1xuICAgICRfZmxvYXQtZ3JpZC1hcmVhcy1jdXN0b20tcHJvcGVydHk6IGxpc3QuYXBwZW5kKCRfZmxvYXQtZ3JpZC1hcmVhcy1jdXN0b20tcHJvcGVydHksICRhcmVhKTsgLyogWzddICovXG5cbiAgICBbZGF0YS1mbG9hdC1ncmlkLWFyZWE9XCIjeyRhcmVhfVwiXSB7IC8qIFs4XSAqL1xuICAgICAgICBAaWYgKG1hcC5nZXQoJHByb3BzLCBcInBhZGRpbmctaG9yaXpvbnRhbFwiKSkge1xuICAgICAgICAgICAgLS1mbG9hdC1ncmlkLWFyZWEtcGFkZGluZy1ob3Jpem9udGFsOiAje21hcC5nZXQoJHByb3BzLCBcInBhZGRpbmctaG9yaXpvbnRhbFwiKX07XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChtYXAuZ2V0KCRwcm9wcywgXCJwYWRkaW5nLXZlcnRpY2FsXCIpKSB7XG4gICAgICAgICAgICAtLWZsb2F0LWdyaWQtYXJlYS1wYWRkaW5nLXZlcnRpY2FsOiAje21hcC5nZXQoJHByb3BzLCBcInBhZGRpbmctdmVydGljYWxcIil9O1xuICAgICAgICB9XG4gICAgICAgIGdyaWQtYXJlYTogbWFwLmdldCgkcHJvcHMsIFwiZ3JpZC1hcmVhXCIpO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogbWFwLmdldCgkcHJvcHMsIFwiZmxleC1kaXJlY3Rpb25cIik7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogbWFwLmdldCgkcHJvcHMsIFwianVzdGlmeS1jb250ZW50XCIpO1xuICAgICAgICBhbGlnbi1pdGVtczogbWFwLmdldCgkcHJvcHMsIFwiYWxpZ24taXRlbXNcIik7XG5cbiAgICAgICAgQGlmIChtYXAuZ2V0KCRwcm9wcywgXCJvZmZzZXRcIikpIHtcbiAgICAgICAgICAgIC0tZ3JpZC1hcmVhLW9mZnNldC1kaXJlY3Rpb246ICN7aWYobWFwLmdldCgkcHJvcHMsIFwib2Zmc2V0LWRpcmVjdGlvblwiKSA9PSBcIm5lZ2F0aXZlXCIsIC0xLCAxKX07ICAvKiBbMTJdICovXG5cbiAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCAlZmxvYXQtZ3JpZC1hcmVhLW9mZnNldDsgLyogWzEzXSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG4lZmxvYXQtZ3JpZC1hcmVhLW9mZnNldCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCAvKiBbMTRdICovXG4gICAgICAgIGNhbGMoXG4gICAgICAgICAgICBtaW4oXG4gICAgICAgICAgICAgICAgLy8gVGhlIG9mZnNldCBiZXR3ZWVuIHRoZSBtYXhpbXVtIG9mZnNldCBhbmQgbm8gb2Zmc2V0IGF0IGFsbDpcbiAgICAgICAgICAgICAgICBtYXgoXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSByZW1haW5pbmcgdmlld3BvcnQgc3BhY2Ugb24gb25lIHNpZGUgb2YgdGhlIHBhZ2Ugd3JhcFxuICAgICAgICAgICAgICAgICAgICAoMTAwdncgLSB2YXIoLS1wYWdlLXdyYXAtd2lkdGgpKSAvIDIsXG4gICAgICAgICAgICAgICAgICAgIC8vIG9yIGAwcHhgICh0byBhdm9pZCBuZWdhdGl2ZSB2YWx1ZXMpXG4gICAgICAgICAgICAgICAgICAgIDBweFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgLy8gVGhlIG1heGltdW0gaXRlbSBvZmZzZXQ6XG4gICAgICAgICAgICAgICAgLy8gICBpdGVtIG9mZnNldCAoZGVmYXVsdDogYDEwMCVgIG9mIHRoZSBpdGVtIHdpZHRoKVxuICAgICAgICAgICAgICAgIC8vICAgKyBhcmVhIHBhZGRpbmcgKiAyICh0byBhY2NvdW50IGZvciBwYWRkaW5nL3NwYWNlIGluc2lkZSBhbmQgb3V0c2lkZSBvZiB0aGUgZmxvYXQgZ3JpZCBhcmVhKVxuICAgICAgICAgICAgICAgIHZhcigtLWdyaWQtYXJlYS1pdGVtLW9mZnNldCkgKyAodmFyKC0tZmxvYXQtZ3JpZC1hcmVhLXBhZGRpbmctaG9yaXpvbnRhbCkgKiAyKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLy8gTXVsdGlwbHkgYnkgYDFgIG9yIGAtMWAgdG8gc2V0IHRoZSBvZmZzZXQgZGlyZWN0aW9uLlxuICAgICAgICAgICAgLy8gQSBuZWdhdGl2ZSBvZmZzZXQgaXMgbmVlZGVkIG9uIHRoZSBsZWZ0IHNpZGUsIGEgcG9zaXRpdmUgb2Zmc2V0IG9uIHRoZSByaWdodCBzaWRlLlxuICAgICAgICAgICAgKiB2YXIoLS1ncmlkLWFyZWEtb2Zmc2V0LWRpcmVjdGlvbilcbiAgICAgICAgKVxuICAgICk7XG59XG5cbjpyb290IHtcbiAgICAtLWZsb2F0LWdyaWQtYXJlYXM6ICN7JF9mbG9hdC1ncmlkLWFyZWFzLWN1c3RvbS1wcm9wZXJ0eX07IC8qIFs3XSAqL1xufVxuXG4vLyBJbmNyZWFzZSBzcGVjaWZpY2l0eSB3aXRoIGFuIElEIHRvIG92ZXJyaWRlIDNyZC1wYXJ0eSBzdHlsZXNcbiNmbG9hdC1ncmlkIC5vLWZsb2F0LWdyaWRfX2FyZWEgPiAqIHtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bzsgLyogWzldICovXG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLG51bGwsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNGTElDS0lUWVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogRmxpY2tpdHkgdjIuMC4xMFxuICogKGh0dHBzOi8vZmxpY2tpdHkubWV0YWZpenp5LmNvKVxuICovXG5cbiRmbGlja2l0eS1idXR0b24tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAtZ2V0KCRJQ09OLVNRVUFSRS1GVUxMLVNJWkVTLCBzbWFsbCkgIWRlZmF1bHQ7XG4kZmxpY2tpdHktYnV0dG9uLWljb24tbmV4dDogICAgICAgICAgICAgICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtZm9yd2FyZCkgIWRlZmF1bHQ7XG4kZmxpY2tpdHktYnV0dG9uLWljb24tcHJldjogICAgICAgICAgICAgICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtYmFjaykgIWRlZmF1bHQ7XG4kZmxpY2tpdHktYnV0dG9uLWljb24tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKHNtYWxsKSAhZGVmYXVsdDtcbiRmbGlja2l0eS1idXR0b24taWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kZmxpY2tpdHktYnV0dG9uLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJGZsaWNraXR5LWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kZmxpY2tpdHktYnV0dG9uLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcbiRmbGlja2l0eS1idXR0b24tc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kZmxpY2tpdHktYnV0dG9uLW9mZnNldDogICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFhTTUFMTCAhZGVmYXVsdDtcblxuJGZsaWNraXR5LWNvbnRyb2xzLXNwYWNpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiRmbGlja2l0eS1jb250cm9scy1zcGFjaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG5cbiRmbGlja2l0eS1mYWRlLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMHB4ICFkZWZhdWx0O1xuJGZsaWNraXR5LXBhZGRpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmbGlja2l0eS1mYWRlLXNpemUgLSAkZmxpY2tpdHktYnV0dG9uLW9mZnNldCAhZGVmYXVsdDtcblxuJGZsaWNraXR5LWZ1bGxzY3JlZW4tYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbi8vIEFkZCB0aGUgZnVsbHNjcmVlbiBzcGFjaW5nIHRvIGJvdHRvbSB3aGljaCBpcyB0aGUgc2FtZSBhcyB0aGUgbWluaW11bSBkb3Qgc2l6ZS5cbiRmbGlja2l0eS1mdWxsc2NyZWVuLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVBPSU5URVItVEFSR0VULVNJWkUgIWRlZmF1bHQ7XG4kZmxpY2tpdHktZnVsbHNjcmVlbi1sYXllcjogICAgICAgICAgICAgICAgICAgICAgICAgeihtb2RhbCkgIWRlZmF1bHQ7XG4kZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b24tYm9yZGVyLXJhZGl1czogICAgICAgICAgJEdMT0JBTC1CT1JERVItUkFESVVTICFkZWZhdWx0O1xuJGZsaWNraXR5LWZ1bGxzY3JlZW4tYnV0dG9uLXRvcDogICAgICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b24tcmlnaHQ6ICAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcbiRmbGlja2l0eS1mdWxsc2NyZWVuLWJ1dHRvbi1ib3R0b206ICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGZsaWNraXR5LWZ1bGxzY3JlZW4tYnV0dG9uLWxlZnQ6ICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b24tc2l6ZTogICAgICAgICAgICAgICAgICAgJGZsaWNraXR5LWJ1dHRvbi1zaXplICFkZWZhdWx0O1xuJGZsaWNraXR5LWZ1bGxzY3JlZW4tYnV0dG9uLWJhY2tncm91bmQtY29sb3I6ICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRmbGlja2l0eS1mdWxsc2NyZWVuLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b24tcGFkZGluZzogICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRmbGlja2l0eS1mdWxsc2NyZWVuLWJ1dHRvbi1ib3JkZXI6ICAgICAgICAgICAgICAgICAwICFkZWZhdWx0O1xuJGZsaWNraXR5LWZ1bGxzY3JlZW4taWNvbi1lbnRlci1mdWxsc2NyZWVuOiAgICAgICAgIGdldC1pY29uKHNlbWFudGljLWVudGVyLWZ1bGxzY3JlZW4pICFkZWZhdWx0O1xuJGZsaWNraXR5LWZ1bGxzY3JlZW4taWNvbi1leGl0LWZ1bGxzY3JlZW46ICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLWV4aXQtZnVsbHNjcmVlbikgIWRlZmF1bHQ7XG4kZmxpY2tpdHktZnVsbHNjcmVlbi1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKHNtYWxsKSAhZGVmYXVsdDtcbiRmbGlja2l0eS1mdWxsc2NyZWVuLWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG5cbiRmbGlja2l0eS1kb3Qtd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMnB4ICFkZWZhdWx0O1xuJGZsaWNraXR5LWRvdC1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmbGlja2l0eS1kb3Qtd2lkdGggIWRlZmF1bHQ7XG4kZmxpY2tpdHktZG90LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJGZsaWNraXR5LWRvdC1iYWNrZ3JvdW5kLWFjdGl2ZTogICAgICAgICAgICAgICAgICAgICRDT0xPUi1ISUdITElHSFQgIWRlZmF1bHQ7XG4kZmxpY2tpdHktZG90LWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgMXB4ICFkZWZhdWx0O1xuJGZsaWNraXR5LWRvdC1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiRmbGlja2l0eS1kb3QtYm9yZGVyLWNvbG9yLWFjdGl2ZTogICAgICAgICAgICAgICAgICAkZmxpY2tpdHktZG90LWJhY2tncm91bmQtYWN0aXZlICFkZWZhdWx0O1xuJGZsaWNraXR5LWRvdC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmbGlja2l0eS1kb3QtYm9yZGVyLXdpZHRoIHNvbGlkICRmbGlja2l0eS1kb3QtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGZsaWNraXR5LWRvdC1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgICAgICAgIDUwJSAhZGVmYXVsdDtcbiRmbGlja2l0eS1kb3QtaW5uZXItc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YWFNNQUxMICFkZWZhdWx0O1xuJGZsaWNraXR5LWRvdC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtUE9JTlRFUi1UQVJHRVQtU0laRSAhZGVmYXVsdDtcbiRmbGlja2l0eS1kb3QtdHJhbnNmb3JtOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGZsaWNraXR5LWRvdC10cmFuc2Zvcm0tc2VsZWN0ZWQ6ICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIFJlc2V0IGRlZmF1bHQgbGlzdCBzdHlsZXMuXG4gKiBbMl0gSG9yaXpvbnRhbGx5IGNlbnRlciBwYWdlLWRvdHMuXG4gKiBbM10gSGlkZSBkZWZhdWx0IEZsaWNraXR5IGljb24uXG4gKiBbNF0gUmVtb3ZlIGZvY3VzIG91dGxpbmUgc3R5bGVzIGZvciB0aGUgZnVsbHNjcmVlbiBidXR0b24uXG4gKiBbNV0gSGlkZSBGbGlja2l0eeKAmXMgaW5qZWN0ZWQgU1ZHIGljb24uXG4gKiBbNl0gSGlkZSB0aGUgcmV2ZWFsIGJ1dHRvbiB3aGVuIHByZXNlbnRpbmcgaW4gZnVsbHNjcmVlbi5cbiAqIFs3XSBTZXQgbWluaW1hbCBwb2ludGVyIHNpemUgZm9yIHRoZSBkb3RzLlxuICogWzhdIE1ha2Ugc3BhY2UgZm9yIHRoZSBkb3RzIGluIHRoZSBmdWxsc2NyZWVuIG1vZGUuXG4gKiBbOV0gSGVpZ2h0IGlzIHNldCB0byAwIGJlZm9yZSBiZWluZyBvdmVyd3JpdHRlbiBieSBtaW4taGVpZ2h0IHRvIHZlcnRpY2FsbHkgY2VudGVyXG4gKiAgICAgdGhlIGRvdHMgaW4gSUUxMS4gT3RoZXJ3aXNlIGFsaWduLWl0ZW1zOiBjZW50ZXIgd291bGQgbm90IHdvcmsgaW4gSUUxMS5cbiAqIFsxMF0gV2hlbiB0aGUgbnVtYmVyIG9mIGRvdHMgZXhjZWVkcyB0aGUgbGltaXQsIHRoZSBkb3RzIHR1cm4gaW50byBhIGNvdW50ZXIuXG4gKiAgICAgIENTUyBnZW5lcmF0ZWQgY29udGVudCBzaG93cyBgeCAvIHlgLlxuICogICAgICAtIGBjb3VudGVyLWluY3JlbWVudGAgaXMgdXNlZCBmb3IgbnVtYmVyaW5nXG4gKiAgICAgIC0gYDo6YmVmb3JlYCBwc2V1ZG8gZWxlbWVudCBvbiB0aGUgY3VycmVudCBpdGVtIGlzIHVzZWQgZm9yIHRoZSBjb3VudGVyXG4gKiAgICAgIC0gYDo6YWZ0ZXJgIHBzZXVkbyBlbGVtZW50IG9uIHRoZSBsYXN0IGl0ZW0gaXMgdXNlZCBmb3IgdGhlIGRlbm9taW5hdG9yXG4gKiAgICAgICAgIGluY2x1ZGluZyBhIHNlcGVyYXRvciAoYC9gKS5cbiAqIFsxMV0gRm9yY2UgdGhlIHNsaWRlciBpdGVtcyB0byB0YWtlIHVwIGFsbCBob3Jpem9udGFsIHNwYWNlLlxuICogWzEyXSBTaG93IGNvbnRyb2xzIG9ubHkgd2hlbiBzbGlkZXIgaGFzIHNsaWRlYWJsZSBpdGVtcyAoPiAxKS5cbiAqIFsxM10gVHJhbnNmb3JtIHRoZSBkb3RzIChlLmcuIGBzY2FsZSgxLjUpYCkuXG4gKiBbMTRdIEVuc3VyZSBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBjZW50ZXJpbmcuXG4gKiBbMTVdIFNwYWNpbmcgZm9yIGNvbnRyb2xzIChidXR0b25zLCBkb3RzKS5cbiAqL1xuXG4vLy8gRGVmaW5lIGJ1dHRvbiBzaXplLiBVc2UgZWl0aGVyIGRlZmluZWQgYnV0dG9uLXNpemUgb3IgaWNvbi1zaXplLCBkZXBlbmRpbmcgb24gd2hpY2ggaXMgbGFyZ2VyLlxuLy8vXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRfYnV0dG9uLXNpemUgW2RlZmluZWQgYnV0dG9uLXNpemVdXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRfaWNvbi1zaXplIFtkZWZpbmVkIGljb24tc2l6ZV1cbi8vLyBAcmV0dXJucyB7bnVtYmVyfSBTaXplIGRlcGVuZGluZyBvbiBsYXJnZXIgc2l6ZS5cbkBmdW5jdGlvbiBmbGlja2l0eS1idXR0b24tc2l6ZSgkX2J1dHRvbi1zaXplOiAkZmxpY2tpdHktYnV0dG9uLXNpemUsICRfaWNvbi1zaXplOiAkZmxpY2tpdHktYnV0dG9uLWljb24tc2l6ZSkge1xuXG4gICAgLy8gTWFrZSBzdXJlIHRoZSBjb21wYXJpbmcgc2l6ZXMgaGF2ZSB0aGUgc2FtZSB1bml0XG4gICAgQGlmICh1bml0KCRfYnV0dG9uLXNpemUpID09IHVuaXQoJF9pY29uLXNpemUpKSB7XG4gICAgICAgIC8vIElmIHRoZSBpY29uIHNpemUgaXMgbGFyZ2VyLCB0aGFuIHVzZSB0aGlzIGluc3RlYWRcbiAgICAgICAgQGlmICgkX2ljb24tc2l6ZSA+ICRfYnV0dG9uLXNpemUpIHtcbiAgICAgICAgICAgIEByZXR1cm4gJF9pY29uLXNpemU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgYnV0dG9uIHNpemUgaXMgbGFyZ2VyLCB1c2UgaXQuXG4gICAgQHJldHVybiAkX2J1dHRvbi1zaXplO1xufVxuXG5AbWl4aW4gZmxpY2tpdHktYnV0dG9uLWZhZGUoJGRpcmVjdGlvbjogcmlnaHQsICRjb2xvcjogJGNvbG9yLXdoaXRlKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvICRkaXJlY3Rpb24sIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCUsICRjb2xvciAkZmxpY2tpdHktYnV0dG9uLW9mZnNldCAqIDIpO1xufVxuXG4uZmxpY2tpdHktZW5hYmxlZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7IC8qIFs4XSAqL1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IC8qIFs4XSAqL1xuICAgIGZsZXgtd3JhcDogd3JhcDsgLyogWzhdICovXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8qIFs5XSAqL1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcm93LWdhcDogJGZsaWNraXR5LWNvbnRyb2xzLXNwYWNpbmctdmVydGljYWw7IC8qIFsxNV0gKi9cbiAgICBjb2x1bW4tZ2FwOiAkZmxpY2tpdHktY29udHJvbHMtc3BhY2luZy1ob3Jpem9udGFsOyAvKiBbMTVdICovXG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEcmFnZ2FibGUuXG4gICAgICovXG4gICAgJi5pcy1kcmFnZ2FibGUge1xuICAgICAgICBAaW5jbHVkZSBkaXNhYmxlLXRvdWNoLWhpZ2hsaWdodCgpO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAuZmxpY2tpdHktdmlld3BvcnQge1xuICAgICAgICAgICAgY3Vyc29yOiBncmFiO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LWNsYXNzICovXG4gICAgICAgIC5mbGlja2l0eS12aWV3cG9ydC5pcy1wb2ludGVyLWRvd24ge1xuICAgICAgICAgICAgY3Vyc29yOiBncmFiYmluZztcbiAgICAgICAgfVxuICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRnVsbHNjcmVlbi5cbiAgICAgKi9cbiAgICAmLmlzLWZ1bGxzY3JlZW4ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHotaW5kZXg6ICRmbGlja2l0eS1mdWxsc2NyZWVuLWxheWVyO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkZmxpY2tpdHktZnVsbHNjcmVlbi1wYWRkaW5nOyAvKiBbOF0gKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZsaWNraXR5LWZ1bGxzY3JlZW4tYmFja2dyb3VuZC1jb2xvcjtcblxuICAgICAgICAuZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b24tZXhpdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAkZmxpY2tpdHktZnVsbHNjcmVlbi1pY29uLWV4aXQtZnVsbHNjcmVlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5mbGlja2l0eS1mdWxsc2NyZWVuLWJ1dHRvbi12aWV3IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IC8qIFs2XSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAkZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b24tdG9wO1xuICAgICAgICByaWdodDogJGZsaWNraXR5LWZ1bGxzY3JlZW4tYnV0dG9uLXJpZ2h0O1xuICAgICAgICBib3R0b206ICRmbGlja2l0eS1mdWxsc2NyZWVuLWJ1dHRvbi1ib3R0b207XG4gICAgICAgIGxlZnQ6ICRmbGlja2l0eS1mdWxsc2NyZWVuLWJ1dHRvbi1sZWZ0O1xuICAgICAgICB3aWR0aDogJGZsaWNraXR5LWZ1bGxzY3JlZW4tYnV0dG9uLXNpemU7XG4gICAgICAgIGhlaWdodDogJGZsaWNraXR5LWZ1bGxzY3JlZW4tYnV0dG9uLXNpemU7XG4gICAgICAgIHBhZGRpbmc6ICRmbGlja2l0eS1mdWxsc2NyZWVuLWJ1dHRvbi1wYWRkaW5nO1xuICAgICAgICBib3JkZXI6ICRmbGlja2l0eS1mdWxsc2NyZWVuLWJ1dHRvbi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRmbGlja2l0eS1mdWxsc2NyZWVuLWJ1dHRvbi1ib3JkZXItcmFkaXVzO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b24tYmFja2dyb3VuZC1jb2xvcjtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCRkZWZhdWx0czogbnVsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkZmxpY2tpdHktZnVsbHNjcmVlbi1pY29uLXNpemUsXG4gICAgICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAxXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29udGVudDogJGZsaWNraXR5LWZ1bGxzY3JlZW4taWNvbi1lbnRlci1mdWxsc2NyZWVuO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkZmxpY2tpdHktZnVsbHNjcmVlbi1pY29uLWNvbG9yO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b24tYmFja2dyb3VuZC1jb2xvci1ob3ZlciAhPSAkZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b24tYmFja2dyb3VuZC1jb2xvcikge1xuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmbGlja2l0eS1mdWxsc2NyZWVuLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7IC8qIFs0XSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b24tZXhpdCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7ICAvKiBbM10gKi9cbiAgICB9XG5cbiAgICAuZmxpY2tpdHktYnV0dG9uLWljb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBbNV0gKi9cbiAgICB9XG5cbn1cblxuLmZsaWNraXR5LXZpZXdwb3J0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7IC8qIFsxMV0gKi9cbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmZsaWNraXR5LXNsaWRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG9yZGVyOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuXG4vKipcbiAqIFByZXZpb3VzL25leHQgYnV0dG9ucy5cbiAqL1xuLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyAvKiBbMTRdICovXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8qIFsxNF0gKi9cbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiBbMTRdICovXG4gICAgd2lkdGg6IGZsaWNraXR5LWJ1dHRvbi1zaXplKCk7XG4gICAgaGVpZ2h0OiBmbGlja2l0eS1idXR0b24tc2l6ZSgpO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6ICRmbGlja2l0eS1idXR0b24tYm9yZGVyLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJGZsaWNraXR5LWJ1dHRvbi1pY29uLWNvbG9yO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIC8vIEljb25cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBpY29uLWZvbnQoJGRlZmF1bHRzOiBudWxsKTtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkZmxpY2tpdHktYnV0dG9uLWljb24tc2l6ZSxcbiAgICAgICAgICAgICRsaW5lLWhlaWdodDogMSxcbiAgICAgICAgKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAxMDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZsaWNraXR5LWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyO1xuICAgIH1cblxuICAgIC8vIEBUT0RPOiBGaW5kIHByb3BlciBmb2N1cyBvdXRsaW5lIHN0eWxlcywgQHNlZSBCUk9OLTUxNDcuXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogMDtcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogMDsgLyogWzEyXSAqL1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47IC8qIFsxMl0gKi9cbiAgICB9XG5cbiAgICAmLnByZXZpb3VzIHtcbiAgICAgICAgb3JkZXI6IDE7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRmbGlja2l0eS1idXR0b24taWNvbi1wcmV2O1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmLm5leHQge1xuICAgICAgICBvcmRlcjogMztcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJGZsaWNraXR5LWJ1dHRvbi1pY29uLW5leHQ7XG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG4uZmxpY2tpdHktcGFnZS1kb3RzIHtcbiAgICBkaXNwbGF5OiBmbGV4OyAvKiBbMl0gKi9cbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKiBbMl0gKi9cbiAgICBvcmRlcjogMjtcbiAgICBtYXJnaW46IDA7IC8qIFsxXSAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIFsxXSAqL1xuXG4gICAgLmRvdCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAwOyAvKiBbOV0gKi9cbiAgICAgICAgbWluLWhlaWdodDogJGZsaWNraXR5LWRvdC1zaXplOyAvKiBbN10gKi9cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkZmxpY2tpdHktZG90LWlubmVyLXNwYWNpbmc7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkZmxpY2tpdHktZG90LWlubmVyLXNwYWNpbmc7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOm9ubHktY2hpbGQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgLyogWzEyXSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigpO1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRmbGlja2l0eS1kb3Qtd2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6ICRmbGlja2l0eS1kb3QtaGVpZ2h0O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiAkZmxpY2tpdHktZG90LXRyYW5zZm9ybTsgLyogWzEzXSAqL1xuICAgICAgICAgICAgYm9yZGVyOiAkZmxpY2tpdHktZG90LWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRmbGlja2l0eS1kb3QtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmbGlja2l0eS1kb3QtYmFja2dyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtc2VsZWN0ZWQge1xuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAkZmxpY2tpdHktZG90LXRyYW5zZm9ybS1zZWxlY3RlZDsgLyogWzEzXSAqL1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGZsaWNraXR5LWRvdC1ib3JkZXItY29sb3ItYWN0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmbGlja2l0eS1kb3QtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbi8qIFsxMF0gKi9cbi5kb3Qge1xuXG4gICAgLmZsaWNraXR5LWVuYWJsZWQ6bm90KC5jLWhlcm8tdGVhc2VyKSAmIHtcbiAgICAgICAgQGluY2x1ZGUgZmxpY2tpdHktZG90LWNvdW50ZXItc3dpdGNoKCk7XG4gICAgfVxuXG4gICAgLmZsaWNraXR5LWVuYWJsZWRbZGF0YS1zbGlkZXItY291bnRlcj1cInRydWVcIl0gJiB7XG4gICAgICAgIEBpbmNsdWRlIGZsaWNraXR5LWRvdC1jb3VudGVyLXN3aXRjaChcbiAgICAgICAgICAgICRsaW1pdDogMSxcbiAgICAgICAgKTtcbiAgICB9XG5cbn1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNCQVNFLVNFVFRJTkdTXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gQXNzaWduIHRoZSBiYXNlIHRleHQgZm9udC1zaXplIGZvciB0aGUgZW50aXJlIHByb2plY3QuXG4kR0xPQkFMLUZPTlQtU0laRTogICAgICAgICAgICAxNnB4ICFkZWZhdWx0O1xuXG5cblxuLy8gVGhlIGdsb2JhbCBiYXNlbGluZSBpcyBvdXIgc21hbGxlc3QgY29tbW9uIGRlbm9taW5hdG9yIGNvbmNlcm5pbmcgdGhlXG4vLyB2ZXJ0aWNhbCBzcGFjaW5nLiBFdmVyeSBzcGFjaW5nIHdlIHVzZSBpbiBvdXIgcHJvamVjdCBpcyBiYXNlZCBvZmYgZnJvbVxuLy8gdGhpcyB2YWx1ZSBhbmQgZml0cyBpbnRvIGEgdmVydGljYWwgZ3JpZCB3aXRoIGV4YWN0bHkgdGhpcyBzaXplLlxuJEdMT0JBTC1CQVNFTElORTogICAgICAgICAgICAgOHB4ICFkZWZhdWx0O1xuXG5cblxuLy8gV2UgZGVmaW5lIHZhcmlvdXMgc2NhbGluZyBmYWN0b3JzIHRvIGNyZWF0ZSBhIHNldCBvZiBkaWZmZXJlbnQgc3BhY2luZ1xuLy8gdmFyaWFudHMuXG4kU0NBTEUtRkFDVE9SLVhYU01BTEw6ICAgICAgICAwLjUgIWRlZmF1bHQ7XG4kU0NBTEUtRkFDVE9SLVhTTUFMTDogICAgICAgICAxICFkZWZhdWx0O1xuJFNDQUxFLUZBQ1RPUi1TTUFMTDogICAgICAgICAgMiAhZGVmYXVsdDtcbiRTQ0FMRS1GQUNUT1I6ICAgICAgICAgICAgICAgIDMgIWRlZmF1bHQ7XG4kU0NBTEUtRkFDVE9SLUxBUkdFOiAgICAgICAgICA0ICFkZWZhdWx0O1xuXG4kR0xPQkFMLVNQQUNJTkctVU5JVDogICAgICAgICAkR0xPQkFMLUJBU0VMSU5FICogJFNDQUxFLUZBQ1RPUiAhZGVmYXVsdDtcbiRHTE9CQUwtU1BBQ0lORy1VTklULVhYU01BTEw6ICRHTE9CQUwtQkFTRUxJTkUgKiAkU0NBTEUtRkFDVE9SLVhYU01BTEwgIWRlZmF1bHQ7XG4kR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEw6ICAkR0xPQkFMLUJBU0VMSU5FICogJFNDQUxFLUZBQ1RPUi1YU01BTEwgIWRlZmF1bHQ7XG4kR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTDogICAkR0xPQkFMLUJBU0VMSU5FICogJFNDQUxFLUZBQ1RPUi1TTUFMTCAhZGVmYXVsdDtcbiRHTE9CQUwtU1BBQ0lORy1VTklULUxBUkdFOiAgICRHTE9CQUwtQkFTRUxJTkUgKiAkU0NBTEUtRkFDVE9SLUxBUkdFICFkZWZhdWx0O1xuXG5cblxuLy8gVXNlIHRoZSBkZWZhdWx0IHNwYWNpbmcgdW5pdCBhcyBiYXNlIGxpbmUtaGVpZ2h0LlxuJEdMT0JBTC1MSU5FLUhFSUdIVDogICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG5cbi8vIFJlY29tbWVuZGVkIG1pbmltYWwgcG9pbnRlciB0YXJnZXQgc2l6ZS5cbiRHTE9CQUwtUE9JTlRFUi1UQVJHRVQtU0laRTogIDQ0cHggIWRlZmF1bHQ7XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjVFJBTlNJVElPTlxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AdXNlIFwic2FzczptZXRhXCI7XG5cbi8vLyBVc2luZyB0aGlzIG1peGluIGluc3RlYWQgb2YgYXNzaWduaW5nIHRyYW5zaXRpb24gZGVjbGFyYXRpb25zIGRpcmVjdGx5IGluXG4vLy8gcnVsZXNldHMgZW5zdXJlcyB0aGUgbW9zdCBwb3NzaWJsZSBjb25zaXN0ZW5jeS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdHJhbnNpdGlvbi1wcm9wZXJ0eSBbJEdMT0JBTC1UUkFOU0lUSU9OLVBST1BFUlRZXSBDU1MgcHJvcGVydHlcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHRyYW5zaXRpb24tZHVyYXRpb24gWyRHTE9CQUwtVFJBTlNJVElPTi1EVVJBVElPTl0gVGltZSB2YWx1ZXMgKG51bWVyaWMgdmFsdWUgd2l0aCB0aW1lIHVuaXQpXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiBbJEdMT0JBTC1UUkFOU0lUSU9OLVRJTUlORy1GVU5DVElPTl0gVGltaW5nIGtleXdvcmRcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHRyYW5zaXRpb24tZGVsYXkgW251bGxdIFRpbWUgdmFsdWUgKG51bWVyaWMgdmFsdWUgd2l0aCB0aW1lIHVuaXQpXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkcmVzcGVjdC1wcmVmZXJzLXJlZHVjZWQtbW90aW9uIFt0cnVlXSBSZXNwZWN0IHJlZHVjZWQgbW90aW9uIHByZWZlcmVuY2VzIG9mIHRoZSB1c2VyXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkY3VzdG9tLXByb3BlcnRpZXMtb25seSBbZmFsc2VdIFJlc3BlY3QgcmVkdWNlZCBtb3Rpb24gcHJlZmVyZW5jZXMgb2YgdGhlIHVzZXJcbkBtaXhpbiB0cmFuc2l0aW9uKFxuICAgICR0cmFuc2l0aW9uLXByb3BlcnR5OiAgICAgICAgICAgICRHTE9CQUwtVFJBTlNJVElPTi1QUk9QRVJUWSxcbiAgICAkdHJhbnNpdGlvbi1kdXJhdGlvbjogICAgICAgICAgICAkR0xPQkFMLVRSQU5TSVRJT04tRFVSQVRJT04sXG4gICAgJHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAgICAgJEdMT0JBTC1UUkFOU0lUSU9OLVRJTUlORy1GVU5DVElPTixcbiAgICAkdHJhbnNpdGlvbi1kZWxheTogICAgICAgICAgICAgICBudWxsLFxuICAgICRyZXNwZWN0LXByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHRydWUsXG4gICAgJGN1c3RvbS1wcm9wZXJ0aWVzLW9ubHk6ICAgICAgICAgZmFsc2Vcbikge1xuICAgIC8vIFNhZmUtZ3VhcmQgYWdhaW5zdCB1bnF1b3Rpbmcgbm9uLXN0cmluZyB2YWx1ZXMuXG4gICAgJHRyYW5zaXRpb24tZGVsYXk6IGlmKG1ldGEudHlwZS1vZigkdHJhbnNpdGlvbi1kZWxheSkgPT0gXCJzdHJpbmdcIiwgdW5xdW90ZSgkdHJhbnNpdGlvbi1kZWxheSksICR0cmFuc2l0aW9uLWRlbGF5KTtcbiAgICAkdHJhbnNpdGlvbi1kdXJhdGlvbjogaWYobWV0YS50eXBlLW9mKCR0cmFuc2l0aW9uLWR1cmF0aW9uKSA9PSBcInN0cmluZ1wiLCB1bnF1b3RlKCR0cmFuc2l0aW9uLWR1cmF0aW9uKSwgJHRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgIC8vIFlvdSBjYW4gdXNlIHRoZSBDU1MgY3VzdG9tIHByb3BlcnRpZXMgdG8gYWRkIG1vcmUgdHJhbnNpdGlvbnMgdG8gY3VzdG9tXG4gICAgLy8gdHJhbnNpdGlvbiBkZWNsYXJhdGlvbnMgd2l0aG91dCBsb3NpbmcgdGhlc2Ugc2V0dGluZ3MuXG4gICAgLy8gRS5nLiBgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSksIG9wYWNpdHlgO1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL29yZGVyICovXG4gICAgLS10cmFuc2l0aW9uLXByb3BlcnR5OiAje3VucXVvdGUoJHRyYW5zaXRpb24tcHJvcGVydHkpfTtcbiAgICBAaWYgKCRyZXNwZWN0LXByZWZlcnMtcmVkdWNlZC1tb3Rpb24pIHtcbiAgICAgICAgLy8gUHJlZmVyIGAtLXRyYW5zaXRpb24tZHVyYXRpb24tcmVkdWNlZC1tb3Rpb25gIGZyb20gYSBwYXJlbnQgZWxlbWVudCAoZS5nLiBgOnJvb3RgL2BodG1sYClcbiAgICAgICAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLXJlZHVjZWQtbW90aW9uLCAjeyR0cmFuc2l0aW9uLWR1cmF0aW9ufSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogI3skdHJhbnNpdGlvbi1kdXJhdGlvbn07XG4gICAgfVxuICAgIC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICN7dW5xdW90ZSgkdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pfTtcbiAgICAtLXRyYW5zaXRpb24tZGVsYXk6ICN7JHRyYW5zaXRpb24tZGVsYXl9O1xuXG4gICAgQGlmIG5vdCAoJGN1c3RvbS1wcm9wZXJ0aWVzLW9ubHkpIHtcbiAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSk7XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWRlbGF5KTtcbiAgICB9XG5cbn1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNGTElDS0lUWSAoU2V0dGluZ3MpXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGZsaWNraXR5LWJ1dHRvbi1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC1nZXQoJElDT04tU1FVQVJFLUZVTEwtU0laRVMsIG1lZGl1bSkgIWRlZmF1bHQ7XG4kZmxpY2tpdHktYnV0dG9uLWljb24tbmV4dDogICAgICAgICAgICAgICAgICAgICAgICAgZ2V0LWljb24oYXJyb3ctcmlnaHQpICFkZWZhdWx0O1xuJGZsaWNraXR5LWJ1dHRvbi1pY29uLXByZXY6ICAgICAgICAgICAgICAgICAgICAgICAgIGdldC1pY29uKGFycm93LWxlZnQpICFkZWZhdWx0O1xuJGZsaWNraXR5LWJ1dHRvbi1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kZmxpY2tpdHktYnV0dG9uLW9mZnNldDogICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG5cbiRmbGlja2l0eS1idXR0b24tYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgICAgICA1MCUgIWRlZmF1bHQ7XG5cbiRmbGlja2l0eS1idXR0b24tYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogICAgICAgICAgICAkQlVUVE9OLUlDT04tSU5URVJBQ1RJT04tQkFDS0dST1VORC1DT0xPUi1IT1ZFUi1PTi1MSUdIVCAhZGVmYXVsdDtcblxuJGZsaWNraXR5LWNvbnRyb2xzLXNwYWNpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJGZsaWNraXR5LWNvbnRyb2xzLXNwYWNpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuXG4kZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b24tYm9yZGVyLXJhZGl1czogICAgICAgICAgJEJVVFRPTi1CT1JERVItUkFESVVTICFkZWZhdWx0O1xuJGZsaWNraXR5LWZ1bGxzY3JlZW4tYnV0dG9uLXRvcDogICAgICAgICAgICAgICAgICAgIGF1dG8gIWRlZmF1bHQ7XG4kZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b24tcmlnaHQ6ICAgICAgICAgICAgICAgICAgJGZsaWNraXR5LWJ1dHRvbi1vZmZzZXQgIWRlZmF1bHQ7XG4kZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b24tYm90dG9tOiAgICAgICAgICAgICAgICAgJGZsaWNraXR5LWZ1bGxzY3JlZW4tYnV0dG9uLXJpZ2h0ICFkZWZhdWx0O1xuJGZsaWNraXR5LWZ1bGxzY3JlZW4tYnV0dG9uLXNpemU6ICAgICAgICAgICAgICAgICAgIG1hcC1nZXQoJElDT04tUk9VTkQtRlVMTC1TSVpFUywgeHNtYWxsKSAhZGVmYXVsdDtcbiRmbGlja2l0eS1mdWxsc2NyZWVuLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b24tYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogJGZsaWNraXR5LWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyICFkZWZhdWx0O1xuJGZsaWNraXR5LWZ1bGxzY3JlZW4taWNvbi1zaXplOiAgICAgICAgICAgICAgICAgICAgIGljb24tc2l6ZSh4c21hbGwpICFkZWZhdWx0O1xuJGZsaWNraXR5LWZ1bGxzY3JlZW4taWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICRmbGlja2l0eS1idXR0b24taWNvbi1jb2xvciAhZGVmYXVsdDtcblxuJGZsaWNraXR5LWRvdC1zcGFjaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJGZsaWNraXR5LWRvdC1zcGFjaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJGZsaWNraXR5LWRvdC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC1nZXQoJElDT04tUk9VTkQtRlVMTC1TSVpFUywgeHNtYWxsKSAhZGVmYXVsdDtcbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNJQ09OU1xuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkB1c2UgXCJzYXNzOm1hcFwiO1xuQHVzZSBcInNhc3M6bGlzdFwiO1xuQHVzZSBcInNhc3M6c3RyaW5nXCI7XG5AdXNlIFwic2Fzcy10cnVlL3Nhc3MvdGhyb3dcIiBhcyB0aHJvdztcblxuLy8gU0FTUyBGVU5DVElPTlNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vL1xuLy8gWzFdIFVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzLlxuLy9cblxuLy8vIE1peGluIHRvIGdlbmVyYXRlIGNvbXBsZXRlIGljb24gZm9udCBDU1MuXG4vLy8gU2V0IGFyZ3MgdG8gYG51bGxgIHRvIGRpc2FibGUgKGNvbmRpdGlvbmFsIGRlY2xhcmF0aW9uKS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRkZWZhdWx0cyBbdHJ1ZV0gRGVmZW5zaXZlbHkgc2V0IGFyZ3MgYXMgZGVmYXVsdHMuIElmIGBmYWxzZWAgZG8gbm90IHNldCBpbixcbi8vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLmcuIHdoZW4gZGVjbGFyYXRpb25zIGFyZSBzZXQgb24gc2VsZWN0b3Igb3V0c2lkZSBvZiBtaXhpbi5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW2lubGluZS1ibG9ja10gYGRpc3BsYXlgIHZhbHVlXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsaW5lLWhlaWdodCBbMV0gYGxpbmUtaGVpZ2h0YCB2YWx1ZVxuQG1peGluIGljb24tZm9udCgkZGVmYXVsdHM6IHRydWUsICRkaXNwbGF5OiBpbmxpbmUtYmxvY2ssICRsaW5lLWhlaWdodDogMSkge1xuICAgIGRpc3BsYXk6IGlmKCRkZWZhdWx0cywgJGRpc3BsYXksIG51bGwpO1xuICAgIGZvbnQtZmFtaWx5OiBpbXBvcnRhbnQoJElDT04tRk9OVCwgdHJ1ZSk7IC8qIFsxXSAqL1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiBpZigkZGVmYXVsdHMsICRsaW5lLWhlaWdodCwgbnVsbCk7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuLy8vIEdldCBpY29uIHVuaWNvZGUgZm9yIHNlbWFudGljIG9yIG5vbi1zZW1hbnRpYyBpY29ucy5cbi8vLyBVc2FnZSBleGFtcGxlOiBnZXQtaWNvbihjb250cm9sLWFkZCk7XG4vLy8gVXNhZ2UgZXhhbXBsZSB3aXRoIGNvbXBsZXhpdHk6IGdldC1pY29uKGNvbnRyb2wtYWRkLCBzaW1wbGUpO1xuLy8vXG4vLy8gQFRPRE86IGFjY291bnQgZm9yIGljb24gbm90IGluIGxpc3QgYW5kIHJldHVybiBudWxsICg/KVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIGljb24gbmFtZSwgZS5nLiAnY29udHJvbC1hZGQnIG9yIGBzZW1hbnRpYy1jYWxlbmRhcmAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRjb21wbGV4aXR5IChvcHRpb25hbCkgY29tcGxleGl0eSBpZGVudGlmaWVyLCBlLmcuICdzaW1wbGUnLlxuLy8vIEByZXR1cm5zIHtTdHJpbmd9IG1hdGNoaW5nIG5vbi1zZW1hbnRpYyBpY29uIG5hbWUuXG5AZnVuY3Rpb24gZ2V0LWljb24oJG5hbWUsICRjb21wbGV4aXR5OiBudWxsKSB7XG4gICAgLy8gU3RvcmUgb3JpZ2luYWxseSBwcm92aWRlZCAkbmFtZSBmb3IgbGF0ZXIgdXNlLlxuICAgICRvcmlnaW5hbE5hbWU6ICRuYW1lO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHRoZSBwcm92aWRlZCBpY29uIG5hbWUgaGFzIGEgJ3NlbWFudGljLScgcHJlZml4LlxuICAgICRpc1NlbWFudGljOiBjaGVjay1zZW1hbnRpYygkbmFtZSk7XG5cbiAgICBAaWYgKCRpc1NlbWFudGljKSB7XG4gICAgICAgICRuYW1lOiBnZXQtc2VtYW50aWMtaWNvbigkb3JpZ2luYWxOYW1lKTtcbiAgICB9XG5cbiAgICAvLyBGaW5kIHVuaWNvZGUgKHNlbWFudGljIG9yIG5vbi1zZW1hbnRpYykgaW4gJElDT05TIG1hcCBhbmQgc2F2ZSBpdFxuICAgIC8vIHRvIGEgdmFyaWFibGUuXG4gICAgJHVuaWNvZGU6IGdldC1lc2NhcGVkLWljb24tdW5pY29kZSgkbmFtZSk7XG5cbiAgICAvLyBJZiBhIGNvbXBsZXhpdHkgaXMgcHJvdmlkZWQsIGFkanVzdCAkaWNvbm5hbWUgYWNjb3JkaW5nbHkuXG4gICAgQGlmICgkY29tcGxleGl0eSkge1xuICAgICAgICAvLyBjaGVjayBpZiByZXF1ZXN0ZWQgY29tcGxleGl0eSBpcyBpbiB0aGUgbGlzdFxuICAgICAgICBAaWYgKGluZGV4KCRJQ09OLUNPTVBMRVhJVElFUywgJGNvbXBsZXhpdHkpKSB7XG4gICAgICAgICAgICAvLyBGaW5kIHVuaWNvZGUgaW4gJElDT05TIG1hcCBhbmQgcmV0dXJuIGl0LlxuICAgICAgICAgICAgJGNvbXBsZXhVbmljb2RlOiBnZXQtZXNjYXBlZC1pY29uLXVuaWNvZGUoI3skbmFtZX0tLSN7JGNvbXBsZXhpdHl9KTtcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIHVuaWNvZGUgZm9yIGNvbXBsZXhpdHkgZXhpc3RzLlxuICAgICAgICAgICAgQGlmICgkY29tcGxleFVuaWNvZGUpIHtcbiAgICAgICAgICAgICAgICAkdW5pY29kZTogJGNvbXBsZXhVbmljb2RlO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgQHdhcm4oXCJQcm92aWRlZCBjb21wbGV4aXR5ICN7JGNvbXBsZXhpdHl9IGZvciBpY29uICN7JG5hbWV9IGRvZXMgbm90IGV4aXN0LiBGYWxsYmFjayBpcyB1c2VkLlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAZXJyb3IgKFwiUHJvdmlkZWQgY29tcGxleGl0eSAjeyRjb21wbGV4aXR5fSBpcyBub3QgaW4gJElDT04tQ09NUExFWElUSUVTLiBWYWxpZCBjb21wbGV4aXRpZXM6ICN7JElDT04tQ09NUExFWElUSUVTfVwiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gJHVuaWNvZGU7XG59XG5cblxuLy8vIEZ1bmN0aW9uIHRvIGFzc2lnbiBzaXplcyB0byBpY29uIGluIHlvdXIgU0NTUy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkaWNvbnNpemUgRGVzaXJlZCBpY29uIHNpemUgKGhhcyB0byBtYXRjaCBhbnkga2V5IG9mIHRoZSBgJElDT04tU0laRVNgIG1hcCkuXG4vLy8gQHBhcmFtIHtNYXB9ICRzaXplcyBbJElDT04tU0laRVNdIE1hcCB3aXRoIHNjYWxlIChrZXkpIGFuZCBzaXplICh2YWx1ZSkuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBJY29uIHNpemUgKHVzdWFsbHkgaW4gcHgpLlxuQGZ1bmN0aW9uIGljb24tc2l6ZSgkc2l6ZSwgJHNpemVzOiAkSUNPTi1TSVpFUykge1xuICAgIEByZXR1cm4gbWFwLmdldCgkc2l6ZXMsICRzaXplKTtcbn1cblxuLy8vIEdldCBjb21wbGV4aXR5IGtleXdvcmQgYmFzZWQgb24gcHJvdmlkZWQgc2l6ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzaXplXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXBwaW5nIFskSUNPTi1TSVpFLVRPLUNPTVBMRVhJVFktTUFQUElOR11cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IENvbXBsZXhpdHkga2V5d29yZC5cbkBmdW5jdGlvbiBpY29uLWdldC1jb21wbGV4aXR5LWJ5LXNpemUoJHNpemUsICRtYXBwaW5nOiAkSUNPTi1TSVpFLVRPLUNPTVBMRVhJVFktTUFQUElORykge1xuICAgIEByZXR1cm4gbWFwLmdldCgkbWFwcGluZywgJHNpemUpO1xufVxuXG4vLyBJTlRFUk5BTCBIRUxQRVIgRlVOQ1RJT05TXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8vIERldGVybWluZSBpZiB0aGUgcHJvdmlkZWQgaWNvbiBuYW1lIGhhcyBhICdzZW1hbnRpYy0nIHByZWZpeFxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIGljb24gbmFtZSB0byBjaGVjay5cbi8vLyBAcmV0dXJucyB7Qm9vbGVhbn0gcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGljb24gaXMgc2VtYW50aWMsIG90aGVyd2lzZSByZXR1cm5zIGBmYWxzZWAuXG5AZnVuY3Rpb24gY2hlY2stc2VtYW50aWMoJG5hbWUpIHtcbiAgICBAcmV0dXJuIHN0cmluZy5pbmRleCgkbmFtZSwgXCJzZW1hbnRpYy1cIikgPT0gMTtcbn1cblxuLy8vIEdldCBub24tc2VtYW50aWMgaWNvbiBuYW1lIGZyb20gaWNvbiBtYXBwaW5nIGluICRTRU1BTlRJQy1JQ09OUy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSBzZW1hbnRpYyBpY29uIG5hbWUuXG4vLy8gQHJldHVybnMge1N0cmluZ30gbWF0Y2hpbmcgbm9uLXNlbWFudGljIGljb24gbmFtZS5cbkBmdW5jdGlvbiBnZXQtc2VtYW50aWMtaWNvbigkbmFtZSkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkU0VNQU5USUMtSUNPTlMsICRuYW1lKTtcbn1cblxuLy8vIEdldCBub24tc2VtYW50aWMgaWNvbiBuYW1lIGZyb20gaWNvbiBtYXBwaW5nIGluICRTRU1BTlRJQy1JQ09OUy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSBTZW1hbnRpYyBpY29uIG5hbWUuXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXBwaW5nIFskU0VNQU5USUMtSUNPTlNdIE1hcCBjb250YWluaW5nIHNlbWFudGljIG5hbWUgKHZhbHVlKSBhbmQgbWFwcGVkLCBub24tc2VtYW50aWMgY29udGVudCAodmFsdWUpLlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gTWF0Y2hpbmcgbm9uLXNlbWFudGljIGljb24gbmFtZS5cbkBmdW5jdGlvbiBpY29uLWdldC1pY29uLWJ5LXNlbWFudGljLW5hbWUoJG5hbWUsICRtYXBwaW5nOiAkU0VNQU5USUMtSUNPTlMpIHtcbiAgICBAcmV0dXJuIG1hcC5nZXQoJG1hcHBpbmcsICRuYW1lKTtcbn1cblxuLy8vIEdldCBpY29uIGRhdGEgYmFzZWQgb24gcHJvdmlkZWQgbmFtZS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSBJY29uIG5hbWUuXG4vLy8gQHBhcmFtIHtNYXB9ICRkYXRhIFskSUNPTi1DT01QTEVYSVRZLURBVEFdIE1hcCBjb250YWluaW5nIG5lc3RlZCBtYXAgd2l0aCBpY29uIG5hbWUgYW5kIGNvbXBsZXhpdHkgZGF0YVxuLy8vXG4vLy8gQHJldHVybiB7TWFwfSBNYXAgY29udGFpbmluZyBjb21wbGV4aXR5IGRhdGFcbi8vL1xuLy8vIEBleGFtcGxlXG4vLy9cbi8vLyBzY3NzOlxuLy8vXG4vLy8gLy8gSU5QVVRcbi8vLyAkZGF0YTogKFxuLy8vICAgICBjYWxjOiAoXG4vLy8gICAgICAgICBkZWZhdWx0OiBcImU5MWRcIixcbi8vLyAgICAgICAgIGNvbXBsZXg6IFwiZTkxZVwiLFxuLy8vICAgICAgICAgc2ltcGxlOiBcImU5MWZcIixcbi8vLyAgICAgKTtcbi8vLyApO1xuLy8vXG4vLy8gLy8gT1VUUFVUXG4vLy8gKFxuLy8vICAgICBkZWZhdWx0OiBcImU5MWRcIixcbi8vLyAgICAgY29tcGxleDogXCJlOTFlXCIsXG4vLy8gICAgIHNpbXBsZTogXCJlOTFmXCIsXG4vLy8gKVxuQGZ1bmN0aW9uIGljb24tZ2V0LWRhdGEoJG5hbWUsICRkYXRhOiAkSUNPTi1DT01QTEVYSVRZLURBVEEpIHtcbiAgICBAcmV0dXJuIG1hcC5nZXQoJGRhdGEsICRuYW1lKTtcbn1cblxuLy8vIEdldCBlc2NhcGVkIHVuaWNvZGUgZm9yIGljb24gZnJvbSAkSUNPTlMgbWFwLlxuLy8vIFRoaXMgaXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIG91dHB1dCBjb3JyZWN0IHVuaWNvZGUgc3RyaW5ncyBpbiB0aGVcbi8vLyBjb21waWxlZCBDU1MuIFdpdGhvdXQgZG9pbmcgdGhpcywgb25seSBjcnlwdGljIGJsYW5rIGNoYXJhY3RlcnMgd291bGQgYmUgc2hvd24uXG4vLy8gVGhpcyBpcyBiZXR0ZXIgZm9yIGRlYnVnZ2luZy4gU2VlIGxpbmsgYmVsb3cgZm9yIHJlZmVyZW5jZS5cbi8vL1xuLy8vIEBsaW5rIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI2MTExOTgyL3Nhc3MtMy00LXJlbW92aW5nLWZvcndhcmQtc2xhc2gtb24tYS1zdHJpbmcvMjYxMTIyNzQjMjYxMTIyNzQgUmVmZXJlbmNlIGZvciB1bmljb2RlIGVzY2FwaW5nLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSBpY29uIG5hbWUuXG4vLy8gQHBhcmFtIHtNYXB9ICRpY29ucyBbJElDT05TXVxuLy8vIEByZXR1cm5zIHtTdHJpbmd9IGVzY2FwZWQgdW5pY29kZS4gSWYgbm9uZSBpcyBmb3VuZCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gZ2V0LWVzY2FwZWQtaWNvbi11bmljb2RlKCRuYW1lLCAkaWNvbnM6ICRJQ09OUykge1xuICAgICR1bmljb2RlOiBtYXAtZ2V0KCRpY29ucywgJG5hbWUpO1xuXG4gICAgQGlmICgkdW5pY29kZSkge1xuICAgICAgICAkcXVvdGVkLXVuaWNvZGU6IFwiXFxcIlxcXFwjeyR1bmljb2RlfVxcXCJcIjtcbiAgICAgICAgJGVzY2FwZWQtdW5pY29kZTogdW5xdW90ZSgkcXVvdGVkLXVuaWNvZGUpO1xuICAgICAgICBAcmV0dXJuICRlc2NhcGVkLXVuaWNvZGU7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBlcnJvcihcIkljb24gXFxcIiN7JG5hbWV9XFxcIiBub3QgZm91bmQuXCIpO1xuICAgIH1cbn1cblxuLy8vIENlcnRhaW4gaWNvbnMgYXJlIG5vdCBhdmFpbGFibGUgaW4gdGhlIHNlbWFudGljIHNldCBmb3IgYWxsIGJyYW5kcy5cbi8vLyBUbyBjbGVhcmx5IGluZGljYXRlIGl0LCBhIHJlZCBkb3Qgd2l0aCBhIGxhYmVsIGlzIHNob3duLlxuLy8vIEluIG9yZGVyIHRvIHVzZSB0aGUgcGxhY2Vob2xkZXIsIHRoZSB2YWx1ZSBpbiB0aGUgbWFwIG5lZWRzIHRvIGJlIGBudWxsYC5cbi8vLyBCUk9OLTI5NDhcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSBpY29uIG5hbWUsIGUuZy4gJ2NvbnRyb2wtYWRkJyBvciBgc2VtYW50aWMtY2FsZW5kYXJgLlxuQG1peGluIHBsYWNlaG9sZGVyLWljb24tc2VtYW50aWMoJG5hbWUpIHtcbiAgICBAd2FybihcInNlbWFudGljIGljb246IG5vIGRlZmluaXRpb24gZm9yICN7JG5hbWV9XCIpO1xuXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgY29sb3ItbmFtZWQgKi9cbiAgICAkX2NvbG9yOiByZWQ7XG4gICAgJF90ZXh0LWNvbG9yOiB3aGl0ZTtcbiAgICAvKiBzdHlsZWxpbnQtZW5hYmxlIGNvbG9yLW5hbWVkICovXG4gICAgJF9zaXplOiAxZW07XG5cbiAgICAuYy1pY29uLS1cXFsjeyRuYW1lfVxcXSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgIC8vIG92ZXJyaWRlIGljb25cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkX3NpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRfc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjUlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJF9jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiTi9BXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRCQVNFLUZPTlQ7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuNWVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgY29sb3I6ICRfdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cblxuXG4vLy8gR2VuZXJhdGUgYSBtYXAgd2l0aCBjb21wbGV4aXR5IGRhdGEgYnkgaWNvbiBuYW1lXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWUgSWNvbiBuYW1lLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkaWNvbnMgWyRJQ09OU10gTWFwIG9mIGFsbCBpY29ucy5cbi8vL1xuLy8vIEByZXR1cm5zIHtNYXB9IE5lc3RlZCBtYXAgd2l0aCBiYXNlIG5hbWUsIGNvbXBsZXhpdHkgKGtleSkgYW5kIGVzY2FwZWQgdW5pY29kZSAodmFsdWUpLlxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBnZW5lcmF0ZSBjb21wbGV4aXR5IGxpc3QgZm9yIGljb25cbi8vLyAgYWRkOiBcImU5MDRcIiwgPT4gREVGQVVMVFxuLy8vICBhZGQtLXNpbXBsZTogXCJlOTA1XCIsID0+IFNJTVBMRVxuLy8vXG4vLy8gY2FsYzogXCJlOTFkXCIsID0+IERFRkFVTFRcbi8vLyBjYWxjLS1jb21wbGV4OiBcImU5MWVcIiwgPT4gQ09NUExFWFxuLy8vIGNhbGMtLXNpbXBsZTogXCJlOTFmXCIsID0+IFNJTVBMRVxuQGZ1bmN0aW9uIGljb24tYnVpbGQtY29tcGxleGl0eS1kYXRhKCRuYW1lLCAkaWNvbnM6ICRJQ09OUykge1xuICAgICRkYXRhLW5hbWU6ICRuYW1lO1xuICAgICRkYXRhLWNvbXBsZXhpdHk6IGRlZmF1bHQ7XG5cbiAgICAkaW5kZXgtY29tcGxleGl0eS1zZXBhcmF0b3I6IHN0cmluZy5pbmRleCgkbmFtZSwgXCItLVwiKTtcblxuICAgIEBpZiAoJGluZGV4LWNvbXBsZXhpdHktc2VwYXJhdG9yKSB7XG4gICAgICAgIC8vIGdldCBjb21wbGV4aXR5IGZyb20gbmFtZVxuICAgICAgICAkZGF0YS1jb21wbGV4aXR5OiBzdHJpbmcuc2xpY2UoJG5hbWUsICRpbmRleC1jb21wbGV4aXR5LXNlcGFyYXRvciArIDIpOyAvLyArIDIgdG8gcmVtb3ZlIGAtLWAgYW5kIG9ubHkgZ2V0IGNvbXBsZXhpdHlcblxuICAgICAgICAvLyBuYW1lIHdpdGhvdXQgY29tcGxleGl0eSBzdWZmaXhcbiAgICAgICAgJGRhdGEtbmFtZTogc3RyaW5nLnNsaWNlKCRuYW1lLCAxLCAkaW5kZXgtY29tcGxleGl0eS1zZXBhcmF0b3IgLSAxKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuIChcbiAgICAgICAgJGRhdGEtbmFtZTogKFxuICAgICAgICAgICAgJGRhdGEtY29tcGxleGl0eTogZ2V0LWVzY2FwZWQtaWNvbi11bmljb2RlKCRuYW1lLCAkaWNvbnMpXG4gICAgICAgIClcbiAgICApO1xufVxuXG5cbi8vLyBDb21wbGV4aXR5IGRhdGEgZm9yIGFsbCBpY29ucy5cbi8vL1xuLy8vIEB0eXBlIE1hcFxuLy8vIEBhY2Nlc3MgcHVibGljXG4kSUNPTi1DT01QTEVYSVRZLURBVEE6ICgpICFkZWZhdWx0O1xuXG4vLyBHZXQgY29tcGxleGl0eSBkYXRhIGZvciBhbGwgaWNvbnNcbi8vIGFuZCBwb3B1bGF0ZSB0aGUgZ2xvYmFsIGNvbXBsZXhpdHkgZGF0YS5cbkBlYWNoICRuYW1lLCAkY29kZSBpbiAkSUNPTlMge1xuICAgICRJQ09OLUNPTVBMRVhJVFktREFUQTogbWFwLmRlZXAtbWVyZ2UoaWNvbi1idWlsZC1jb21wbGV4aXR5LWRhdGEoJG5hbWUpLCAkSUNPTi1DT01QTEVYSVRZLURBVEEpO1xufVxuXG4vLy8gR2VuZXJhdGUgY29tcGxleGl0eSBERUZJTklUSU9OUy5cbi8vLyBJZiB0aGUgdG9nZ2xlIChgdmFyKClgKSBpcyBldmFsdWF0ZWQgXCJ0cnV0aHlcIixcbi8vLyB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGZvciB0aGUgc2V0IGNvbXBsZXhpdHkuXG4vLy8gT3RoZXJ3aXNlIHRoZSB2YWx1ZSBmb3IgdGhlIGVudGlyZSBwcm9wZXJ0eSBkZWZpbml0aW9uIGlzIGV2YWx1YXRlZCBcImZhbHN5XCJcbi8vLyBhbmQgXCJza2lwcGVkXCIuXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJGNvbXBsZXhpdHktZGF0YVxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gSWNvbiBoYXMgY29tcGxleGl0eSBcInNpbXBsZVwiIGVuYWJsZWQgKGAtLWJyb24taWNvbi1jb21wbGV4OiBcIlwiYClcbi8vLyA9PiBnZW5lcmF0ZSBcInNpbXBsZVwiIGRlZmluaXRpb24gZm9yIGljb25cbi8vLyBgYGBcbi8vLyAtLWJyb24taWNvbi1jb21wbGV4aXR5LXNpbXBsZTogdmFyKC0tYnJvbi1pY29uLXNpbXBsZSkgPGljb24tY29kZT5cbi8vLyBgYGBcbi8vL1xuLy8vIEBleGFtcGxlXG4vLy9cbi8vLyBJTlBVVFxuLy8vICRkYXRhOiAoXG4vLy8gICBzaW1wbGU6IFwiXFxlMDAyXCIsXG4vLy8gKVxuLy8vXG4vLy8gT1VUUFVUXG4vLy8gIC0tYnJvbi1pY29uLWNvbXBsZXhpdHktc2ltcGxlOiB2YXIoLS1icm9uLWljb24tc2ltcGxlKSBcIlxcZTAwMlwiO1xuLy8vXG4vLy9cbi8vLyBJTlBVVFxuLy8vICRkYXRhOiAoXG4vLy8gICBjb21wbGV4OiBcIlxcZTAwM1wiLFxuLy8vIClcbi8vL1xuLy8vIE9VVFBVVFxuLy8vICAtLWJyb24taWNvbi1jb21wbGV4aXR5LWNvbXBsZXg6IHZhcigtLWJyb24taWNvbi1jb21wbGV4KSBcIlxcZTAwM1wiO1xuLy8vXG4vLy9cbi8vLyBJTlBVVFxuLy8vICRkYXRhOiAoXG4vLy8gICBkZWZhdWx0OiBcIlxcZTAwM1wiLFxuLy8vIClcbi8vL1xuLy8vIE9VVFBVVFxuLy8vIG5vbmVcbkBtaXhpbiBpY29uLWdlbmVyYXRlLWNvbXBsZXhpdHktZGVmaW5pdGlvbigkY29tcGxleGl0eS1kYXRhKSB7XG4gICAgQGVhY2ggJGNvbXBsZXhpdHksICRpY29uIGluICRjb21wbGV4aXR5LWRhdGEge1xuICAgICAgICBAaWYgbm90ICgkY29tcGxleGl0eSA9PSBcImRlZmF1bHRcIikge1xuICAgICAgICAgICAgLS1icm9uLWljb24tY29tcGxleGl0eS0jeyRjb21wbGV4aXR5fTogdmFyKC0tYnJvbi1pY29uLSN7JGNvbXBsZXhpdHl9KSAjeyRpY29ufTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8vIEdlbmVyYXRlIGRlZmluaXRpb25zIGZvciBpY29ucyB2aWEgY3VzdG9tIHByb3BlcnRpZXNcbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8gQHBhcmFtIHtNYXB9ICRjb21wbGV4aXR5LWRhdGEga2V5LXZhbHVlIHBhaXIgZm9yIGNvbXBsZXhpdHktdW5pY29kZVxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vL1xuLy8vIElOUFVUOiAzIGNvbXBsZXhpdGllc1xuLy8vICRkYXRhOiAoXG4vLy8gICBkZWZhdWx0OiBcIlxcZTAwMVwiLFxuLy8vICAgc2ltcGxlOiBcIlxcZTAwMlwiLFxuLy8vICAgY29tcGxleDogXCJcXGUwMDNcIixcbi8vLyApXG4vLy9cbi8vLyBPVVRQVVRcbi8vLyAgLS1icm9uLWljb24tY29tcGxleGl0eS1jb21wbGV4OiB2YXIoLS1icm9uLWljb24tY29tcGxleCkgXCJcXGUwMDNcIjtcbi8vLyAgLS1icm9uLWljb24tY29tcGxleGl0eS1zaW1wbGU6IHZhcigtLWJyb24taWNvbi1zaW1wbGUpIFwiXFxlMDAyXCI7XG4vLy8gIC0tYnJvbi1pY29uOiB2YXIoLS1icm9uLWljb24tY29tcGxleGl0eS1jb21wbGV4LCB2YXIoLS1icm9uLWljb24tY29tcGxleGl0eS1zaW1wbGUsIFwiXFxlMDAxXCIpKTtcbi8vL1xuLy8vXG4vLy9cbi8vLyBJTlBVVDogMiBjb21wbGV4aXRpZXNcbi8vLyAkZGF0YTogKFxuLy8vICAgZGVmYXVsdDogXCJcXGUwMDFcIixcbi8vLyAgIHNpbXBsZTogXCJcXGUwMDJcIixcbi8vLyApXG4vLy9cbi8vLyBPVVRQVVRcbi8vLyAgLS1icm9uLWljb24tY29tcGxleGl0eS1zaW1wbGU6IHZhcigtLWJyb24taWNvbi1zaW1wbGUpIFwiXFxlMDAyXCI7XG4vLy8gIC0tYnJvbi1pY29uOiB2YXIoLS1icm9uLWljb24tY29tcGxleGl0eS1zaW1wbGUsIFwiXFxlMDAxXCIpO1xuLy8vXG4vLy9cbi8vL1xuLy8vIElOUFVUOiAxIGNvbXBsZXhpdHkgKGRlZmF1bHRcbi8vLyAkZGF0YTogKFxuLy8vICAgZGVmYXVsdDogXCJcXGUwMDFcIixcbi8vLyApXG4vLy9cbi8vLyBPVVRQVVRcbi8vLyAgIC0tYnJvbi1pY29uOiBcIlxcZTkwMFwiO1xuQG1peGluIGljb24tZ2VuZXJhdGUtZGVmaW5pdGlvbigkY29tcGxleGl0eS1kYXRhKSB7XG4gICAgJGRlZmF1bHQtY29tcGxleGl0eTogbWFwLmdldCgkY29tcGxleGl0eS1kYXRhLCBcImRlZmF1bHRcIik7XG4gICAgJGhhcy1jb21wbGV4OiAgICAgICAgbGlzdC5pbmRleChtYXAua2V5cygkY29tcGxleGl0eS1kYXRhKSwgXCJjb21wbGV4XCIpO1xuICAgICRoYXMtc2ltcGxlOiAgICAgICAgIGxpc3QuaW5kZXgobWFwLmtleXMoJGNvbXBsZXhpdHktZGF0YSksIFwic2ltcGxlXCIpO1xuXG4gICAgQGluY2x1ZGUgaWNvbi1nZW5lcmF0ZS1jb21wbGV4aXR5LWRlZmluaXRpb24oJGNvbXBsZXhpdHktZGF0YSk7XG5cbiAgICAvLyBHb2luZyBmcm9tIGhpZ2hlc3QgdG8gbG93ZXN0IChkZWZhdWx0KSBjb21wbGV4aXR5XG4gICAgLy8gZHVlIHRvIChuZXN0ZWQpIGN1c3RvbSBwcm9wZXJ0eSBzdHJ1Y3R1cmUgd2l0aFxuICAgIC8vIGB2YXIodmFsdWUsIHZhcihuZXN0ZWQtdmFsdWUsIGZhbGxiYWNrKSlgLlxuICAgIEBpZiAoJGhhcy1jb21wbGV4KSB7XG4gICAgICAgIC8vIElmIGNvbXBsZXhpdHkgZGVmaW5pdGlvbiBmb3IgXCJjb21wbGV4XCIgZXhpc3RzLFxuICAgICAgICAvLyBnZW5lcmF0ZSBjb21wbGV4IGFuZCBzaW1wbGUgZGVmaW5pdGlvbiBmb3IgaWNvblxuICAgICAgICAvLyB3aXRoIGRlZmF1bHQgY29tcGxleGl0eSBhcyBhIGZhbGxiYWNrLlxuICAgICAgICAtLWJyb24taWNvbjogdmFyKC0tYnJvbi1pY29uLWNvbXBsZXhpdHktY29tcGxleCwgdmFyKC0tYnJvbi1pY29uLWNvbXBsZXhpdHktc2ltcGxlLCAjeyRkZWZhdWx0LWNvbXBsZXhpdHl9KSk7XG4gICAgfSBAZWxzZSBpZiAoJGhhcy1zaW1wbGUpIHtcbiAgICAgICAgLy8gSWYgY29tcGxleGl0eSBkZWZpbml0aW9uIGZvciBcInNpbXBsZVwiIGV4aXN0cyxcbiAgICAgICAgLy8gZ2VuZXJhdGUgc2ltcGxlIGRlZmluaXRpb24gZm9yIGljb25cbiAgICAgICAgLy8gd2l0aCBkZWZhdWx0IGNvbXBsZXhpdHkgYXMgYSBmYWxsYmFjay5cbiAgICAgICAgLS1icm9uLWljb246IHZhcigtLWJyb24taWNvbi1jb21wbGV4aXR5LXNpbXBsZSwgI3skZGVmYXVsdC1jb21wbGV4aXR5fSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIElmIG5vIGNvbXBsZXhpdHkgaXMgZGVmaW5lZCxcbiAgICAgICAgLy8gZ2VuZXJhdGUgaWNvbiBkZWZpbml0aW9uIGZvciBkZWZhdWx0IFwiY29tcGxleGl0eVwiXG4gICAgICAgIC8vIHdpdGhvdXQgZmFsbGJhY2suXG4gICAgICAgIC0tYnJvbi1pY29uOiAjeyRkZWZhdWx0LWNvbXBsZXhpdHl9O1xuICAgIH1cbn1cblxuXG4vLy8gR2VuZXJhdGUgY3VzdG9tIHByb3BlcnR5IFwidG9nZ2xlXCIgdG8gZW5hYmxlIGNvbXBsZXhpdHkuXG4vLy9cbi8vLyBAbGluayBodHRwczovL2Rldi50by9zaWRkaGFydGhzaHluaWJlbi9jb25kaXRpb25hbC1sb2dpYy13aXRoLWNzcy10aGUtY3NzLWN1c3RvbS1wcm9wZXJ0eS10cmljay00NGhiXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRjb21wbGV4aXR5IFNldCB0b2dnbGUgZm9yIGdpdmVuIGNvbXBsZXhpdHkuXG4vLy8gQHBhcmFtIHtMaXN0IHwgbnVsbH0gJGFsbG93LWxpc3QgWyRJQ09OLUNPTVBMRVhJVElFU11cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gQ3VzdG9tIHByb3BlcnR5IHN1ZmZpeGVkIGJ5IGNvbXBsZXhpdHkgd2l0aCBlbXB0eSB2YWx1ZS5cbkBtaXhpbiBpY29uLWNvbXBsZXhpdHkoJGNvbXBsZXhpdHk6IG51bGwsICRhbGxvdy1saXN0OiAkSUNPTi1DT01QTEVYSVRJRVMpIHtcbiAgICBAaWYgKCRjb21wbGV4aXR5KSBhbmQgKCRhbGxvdy1saXN0KSB7XG4gICAgICAgIEBpZiAobGlzdC5pbmRleCgkYWxsb3ctbGlzdCwgJGNvbXBsZXhpdHkpKSB7XG4gICAgICAgICAgICAtLWJyb24taWNvbi0jeyRjb21wbGV4aXR5fTogXCJcIjtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0aHJvdy5lcnJvcihcbiAgICAgICAgICAgICAgICAkbWVzc2FnZTogXCIjeyRjb21wbGV4aXR5fSBtdXN0IGJlIGFuIGVudHJ5IGluIGxpc3Qgb2YgI3skYWxsb3ctbGlzdH0uXCIsXG4gICAgICAgICAgICAgICAgJGNhdGNoOiB0cnVlLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vLyBTZWxlY3QgYWxsIGNoaWxkcmVuIGZyb20gdGhlIGZpcnN0IHRvIGAkbnVtYC5cbi8vLyBAZ3JvdXAgd2l0aC1hcmd1bWVudHNcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRudW0gLSBpZCBvZiB0aGUgY2hpbGRcbkBtaXhpbiBmaXJzdCgkbnVtKSB7XG4gIEBpZiAkbnVtID09IDEge1xuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAmOm50aC1jaGlsZCgtbiArICN7JG51bX0pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBjaGlsZHJlbiBmcm9tIHRoZSBsYXN0IHRvIGAkbnVtYC5cbi8vLyBAZ3JvdXAgd2l0aC1hcmd1bWVudHNcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRudW0gLSBpZCBvZiB0aGUgY2hpbGRcbkBtaXhpbiBsYXN0KCRudW0pIHtcbiAgJjpudGgtbGFzdC1jaGlsZCgtbiArICN7JG51bX0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBjaGlsZHJlbiBhZnRlciB0aGUgZmlyc3QgdG8gYCRudW1gLlxuLy8vIEBncm91cCB3aXRoLWFyZ3VtZW50c1xuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cbi8vLyBAcGFyYW0ge251bWJlcn0gJG51bSAtIGlkIG9mIHRoZSBjaGlsZFxuQG1peGluIGFmdGVyLWZpcnN0KCRudW0pIHtcbiAgJjpudGgtY2hpbGQobiArICN7JG51bSArIDF9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gYmVmb3JlIGAkbnVtYCBmcm9tIHRoZSBsYXN0LlxuLy8vIEBncm91cCB3aXRoLWFyZ3VtZW50c1xuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cbi8vLyBAcGFyYW0ge251bWJlcn0gJG51bSAtIGlkIG9mIHRoZSBjaGlsZFxuQG1peGluIGZyb20tZW5kKCRudW0pIHtcbiAgJjpudGgtbGFzdC1jaGlsZCgjeyRudW19KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gYmV0d2VlbiBgJGZpcnN0YCBhbmQgYCRsYXN0YC5cbi8vLyBAZ3JvdXAgd2l0aC1hcmd1bWVudHNcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG5AbWl4aW4gYmV0d2VlbigkZmlyc3QsICRsYXN0KSB7XG4gICY6bnRoLWNoaWxkKG4gKyAjeyRmaXJzdH0pOm50aC1jaGlsZCgtbiArICN7JGxhc3R9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgZXZlbiBjaGlsZHJlbiBiZXR3ZWVuIGAkZmlyc3RgIGFuZCBgJGxhc3RgLlxuLy8vIEBncm91cCB3aXRoLWFyZ3VtZW50c1xuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cbkBtaXhpbiBldmVuLWJldHdlZW4oJGZpcnN0LCAkbGFzdCkge1xuICAmOm50aC1jaGlsZChldmVuKTpudGgtY2hpbGQobiArICN7JGZpcnN0fSk6bnRoLWNoaWxkKC1uICsgI3skbGFzdH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBvZGQgY2hpbGRyZW4gYmV0d2VlbiBgJGZpcnN0YCBhbmQgYCRsYXN0YC5cbi8vLyBAZ3JvdXAgd2l0aC1hcmd1bWVudHNcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG5AbWl4aW4gb2RkLWJldHdlZW4oJGZpcnN0LCAkbGFzdCkge1xuICAmOm50aC1jaGlsZChvZGQpOm50aC1jaGlsZChuICsgI3skZmlyc3R9KTpudGgtY2hpbGQoLW4gKyAjeyRsYXN0fSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgYWxsIGAkbnVtYCBjaGlsZHJlbiBiZXR3ZWVuIGAkZmlyc3RgIGFuZCBgJGxhc3RgLlxuLy8vIEBncm91cCB3aXRoLWFyZ3VtZW50c1xuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cbkBtaXhpbiBuLWJldHdlZW4oJG51bSwgJGZpcnN0LCAkbGFzdCkge1xuICAmOm50aC1jaGlsZCgjeyRudW19bik6bnRoLWNoaWxkKG4gKyAjeyRmaXJzdH0pOm50aC1jaGlsZCgtbiArICN7JGxhc3R9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuXG4vLy8gU2VsZWN0IGFsbCBjaGlsZHJlbiBidXQgYCRudW1gLlxuLy8vIEBncm91cCB3aXRoLWFyZ3VtZW50c1xuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cbi8vLyBAcGFyYW0ge251bWJlcn0gJG51bSAtIGlkIG9mIHRoZSBjaGlsZFxuQG1peGluIGFsbC1idXQoJG51bSkge1xuICAmOm5vdCg6bnRoLWNoaWxkKCN7JG51bX0pKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBjaGlsZHJlbiBlYWNoIGAkbnVtYC5cbi8vLyBAZ3JvdXAgd2l0aC1hcmd1bWVudHNcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRudW0gLSBpZCBvZiB0aGUgY2hpbGRcbi8vLyBAYWxpYXMgZXZlcnlcbkBtaXhpbiBlYWNoKCRudW0pIHtcbiAgJjpudGgtY2hpbGQoI3skbnVtfW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGNoaWxkcmVuIGVhY2ggYCRudW1gLlxuLy8vIEBncm91cCB3aXRoLWFyZ3VtZW50c1xuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cbi8vLyBAcGFyYW0ge251bWJlcn0gJG51bSAtIGlkIG9mIHRoZSBjaGlsZFxuQG1peGluIGV2ZXJ5KCRudW0pIHtcbiAgJjpudGgtY2hpbGQoI3skbnVtfW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IHRoZSBgJG51bWAgY2hpbGQgZnJvbSB0aGUgc3RhcnQgYW5kIHRoZSBgJG51bWAgY2hpbGQgZnJvbSB0aGUgbGFzdC5cbi8vLyBAZ3JvdXAgd2l0aC1hcmd1bWVudHNcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRudW0gLSBpZCBvZiB0aGUgY2hpbGRcbkBtaXhpbiBmcm9tLWZpcnN0LWxhc3QoJG51bSkge1xuICAmOm50aC1jaGlsZCgjeyRudW19KSxcbiAgJjpudGgtbGFzdC1jaGlsZCgjeyRudW19KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuXG4vLy8gU2VsZWN0IHRoZSBpdGVtIGluIHRoZSBtaWRkbGUgb2YgYCRudW1gIGNoaWxkLiBPbmx5IHdvcmtzIHdpdGggb2RkIG51bWJlclxuLy8vIGNoYWluLlxuLy8vIEBncm91cCB3aXRoLWFyZ3VtZW50c1xuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cbi8vLyBAcGFyYW0ge251bWJlcn0gJG51bSAtIGlkIG9mIHRoZSBjaGlsZFxuQG1peGluIG1pZGRsZSgkbnVtKSB7XG4gICY6bnRoLWNoaWxkKCN7cm91bmQoJG51bSAvIDIpfSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gYmV0d2VlbiB0aGUgYCRudW1gIGZpcnN0IGFuZCB0aGUgYCRudW1gIGxhc3QuXG4vLy8gQGdyb3VwIHdpdGgtYXJndW1lbnRzXG4vLy8gQGNvbnRlbnQgW1dyaXRlIHRoZSBzdHlsZSB5b3Ugd2FudCB0byBhcHBseSB0byB0aGUgY2hpbGRyZW4sIGFuZCBpdCB3aWxsIGJlIGFkZGVkIHdpdGhpbiB0aGUgQGNvbnRlbnQgZGlyZWN0aXZlXVxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbnVtIC0gaWQgb2YgdGhlIGNoaWxkXG5AbWl4aW4gYWxsLWJ1dC1maXJzdC1sYXN0KCRudW0pIHtcbiAgJjpudGgtY2hpbGQobiArICN7JG51bX0pOm50aC1sYXN0LWNoaWxkKG4gKyAjeyRudW19KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuXG4vLy8gVGhpcyBxdWFudGl0eS1xdWVyeSBtaXhpbiB3aWxsIG9ubHkgc2VsZWN0IHRoZSBmaXJzdCBvZiBgJGxpbWl0YCBpdGVtcy4gSXQgd2lsbCBub3Rcbi8vLyB3b3JrIGlmIHRoZXJlIGlzIG5vdCBhcyBtdWNoIGFzIGl0ZW0gYXMgeW91IHNldCBpbiBgJGxpbWl0YC5cbi8vLyBAZ3JvdXAgUXVhbnRpdHkgcXVlcmllc1xuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbGltaXRcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG5AbWl4aW4gZmlyc3Qtb2YoJGxpbWl0KSB7XG4gICY6bnRoLWxhc3QtY2hpbGQoI3skbGltaXR9KTpmaXJzdC1jaGlsZCB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFRoaXMgcXVhbnRpdHktcXVlcnkgbWl4aW4gd2lsbCBvbmx5IHNlbGVjdCB0aGUgbGFzdCBvZiBgJGxpbWl0YCBpdGVtcy4gSXQgd2lsbCBub3Rcbi8vLyBpZiB0aGVyZSBpcyBub3QgYXMgbXVjaCBhcyBpdGVtIGFzIHlvdSBzZXQgaW4gYCRsaW1pdGAuXG4vLy8gQGdyb3VwIFF1YW50aXR5IHF1ZXJpZXNcbi8vLyBAcGFyYW0ge251bWJlcn0gJGxpbWl0XG4vLy8gQGNvbnRlbnQgW1dyaXRlIHRoZSBzdHlsZSB5b3Ugd2FudCB0byBhcHBseSB0byB0aGUgY2hpbGRyZW4sIGFuZCBpdCB3aWxsIGJlIGFkZGVkIHdpdGhpbiB0aGUgQGNvbnRlbnQgZGlyZWN0aXZlXVxuQG1peGluIGxhc3Qtb2YoJGxpbWl0KSB7XG4gICY6bnRoLW9mLXR5cGUoI3skbGltaXR9KTpudGgtbGFzdC1vZi10eXBlKDEpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gVGhpcyBxdWFudGl0eS1xdWVyeSBtaXhpbiB3aWxsIHNlbGVjdCBldmVyeSBpdGVtcyBpZiB0aGVyZSBpcyBhdCBsZWFzdCBgJG51bWAgaXRlbXMuIEl0IHdpbGwgbm90XG4vLy8gaWYgdGhlcmUgaXMgbm90IGFzIG11Y2ggYXMgaXRlbSBhcyB5b3Ugc2V0IGluIGAkbnVtYC5cbi8vLyBAZ3JvdXAgUXVhbnRpdHkgcXVlcmllc1xuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbGltaXRcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG5AbWl4aW4gYXQtbGVhc3QoJG51bSkge1xuICAkc2VsZWN0b3I6ICY7XG4gICRjaGlsZDogbnRoKG50aCgkc2VsZWN0b3IsIC0xKSwgLTEpO1xuXG4gICY6bnRoLWxhc3QtY2hpbGQobiArICN7JG51bX0pLFxuICAmOm50aC1sYXN0LWNoaWxkKG4gKyAjeyRudW19KSB+ICN7JGNoaWxkfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFRoaXMgcXVhbnRpdHktcXVlcnkgbWl4aW4gd2lsbCBzZWxlY3QgZXZlcnkgaXRlbXMgaWYgdGhlcmUgaXMgYXQgbW9zdCBgJG51bWAgaXRlbXMuIEl0IHdpbGwgbm90XG4vLy8gaWYgdGhlcmUgaXMgbm90IGFzIG11Y2ggYXMgaXRlbSBhcyB5b3Ugc2V0IGluIGAkbnVtYC5cbi8vLyBAZ3JvdXAgUXVhbnRpdHkgcXVlcmllc1xuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbGltaXRcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG5AbWl4aW4gYXQtbW9zdCgkbnVtKSB7XG4gICRzZWxlY3RvcjogJjtcbiAgJGNoaWxkOiBudGgobnRoKCRzZWxlY3RvciwgLTEpLCAtMSk7XG5cbiAgJjpudGgtbGFzdC1jaGlsZCgtbiArICN7JG51bX0pOmZpcnN0LWNoaWxkLFxuICAmOm50aC1sYXN0LWNoaWxkKC1uICsgI3skbnVtfSk6Zmlyc3QtY2hpbGQgfiAjeyRjaGlsZH0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBUaGlzIHF1YW50aXR5LXF1ZXJ5IG1peGluIHdpbGwgc2VsZWN0IGV2ZXJ5IGl0ZW1zIG9ubHkgaWYgdGhlcmUgaXMgYmV0d2VlbiBgJG1pbmAgYW5kIGAkbWF4YCBpdGVtcy5cbi8vLyBAZ3JvdXAgUXVhbnRpdHkgcXVlcmllc1xuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbGltaXRcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG5AbWl4aW4gaW4tYmV0d2VlbigkbWluLCAkbWF4KSB7XG4gICRzZWxlY3RvcjogJjtcbiAgJGNoaWxkOiBudGgobnRoKCRzZWxlY3RvciwgLTEpLCAtMSk7XG5cbiAgJjpudGgtbGFzdC1jaGlsZChuICsgI3skbWlufSk6bnRoLWxhc3QtY2hpbGQoLW4gKyAjeyRtYXh9KTpmaXJzdC1jaGlsZCxcbiAgJjpudGgtbGFzdC1jaGlsZChuICsgI3skbWlufSk6bnRoLWxhc3QtY2hpbGQoLW4gKyAjeyRtYXh9KTpmaXJzdC1jaGlsZCB+ICN7JGNoaWxkfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCB0aGUgZmlyc3QgZXhhY3QgY2hpbGRcbi8vLyBAZ3JvdXAgbm8tYXJndW1lbnRzXG4vLy8gQGNvbnRlbnQgW1dyaXRlIHRoZSBzdHlsZSB5b3Ugd2FudCB0byBhcHBseSB0byB0aGUgY2hpbGRyZW4sIGFuZCBpdCB3aWxsIGJlIGFkZGVkIHdpdGhpbiB0aGUgQGNvbnRlbnQgZGlyZWN0aXZlXVxuQG1peGluIGZpcnN0LWNoaWxkKCkge1xuICAmOmZpcnN0LW9mLXR5cGUge1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuLy8vIFNlbGVjdCB0aGUgbGFzdCBleGFjdCBjaGlsZFxuLy8vIEBncm91cCBuby1hcmd1bWVudHNcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG5AbWl4aW4gbGFzdC1jaGlsZCgpIHtcbiAgJjpsYXN0LW9mLXR5cGUge1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgZXZlbiBjaGlsZHJlbi5cbi8vLyBAZ3JvdXAgbm8tYXJndW1lbnRzXG4vLy8gQGNvbnRlbnQgW1dyaXRlIHRoZSBzdHlsZSB5b3Ugd2FudCB0byBhcHBseSB0byB0aGUgY2hpbGRyZW4sIGFuZCBpdCB3aWxsIGJlIGFkZGVkIHdpdGhpbiB0aGUgQGNvbnRlbnQgZGlyZWN0aXZlXVxuQG1peGluIGV2ZW4oKSB7XG4gICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBvZGQgY2hpbGRyZW4uXG4vLy8gQGdyb3VwIG5vLWFyZ3VtZW50c1xuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cbkBtaXhpbiBvZGQoKSB7XG4gICY6bnRoLWNoaWxkKG9kZCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3Qgb25seSB0aGUgZmlyc3QgYW5kIGxhc3QgY2hpbGQuXG4vLy8gQGdyb3VwIG5vLWFyZ3VtZW50c1xuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cbkBtaXhpbiBmaXJzdC1sYXN0KCkge1xuICAmOmZpcnN0LWNoaWxkLFxuICAmOmxhc3QtY2hpbGQge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBXaWxsIG9ubHkgc2VsZWN0IHRoZSBjaGlsZCBpZiBpdOKAmXMgdW5pcXVlLlxuLy8vIEBncm91cCBuby1hcmd1bWVudHNcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG4vLy8gQGFsaWFzIG9ubHlcbkBtaXhpbiB1bmlxdWUoKSB7XG4gICY6b25seS1jaGlsZCB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFdpbGwgb25seSBzZWxlY3QgdGhlIGNoaWxkIGlmIGl04oCZcyB1bmlxdWUuXG4vLy8gQGdyb3VwIG5vLWFyZ3VtZW50c1xuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cbkBtaXhpbiBvbmx5KCkge1xuICAmOm9ubHktY2hpbGQge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBXaWxsIG9ubHkgc2VsZWN0IGNoaWxkcmVuIGlmIHRoZXkgYXJlIG5vdCB1bmlxdWUuIE1lYW5pbmcgaWYgdGhlcmUgaXMgYXRcbi8vLyBsZWFzdCAyIGNoaWxkcmVuLCB0aGUgc3R5bGUgaXMgYXBwbGllZC5cbi8vLyBAZ3JvdXAgbm8tYXJndW1lbnRzXG4vLy8gQGNvbnRlbnQgW1dyaXRlIHRoZSBzdHlsZSB5b3Ugd2FudCB0byBhcHBseSB0byB0aGUgY2hpbGRyZW4sIGFuZCBpdCB3aWxsIGJlIGFkZGVkIHdpdGhpbiB0aGUgQGNvbnRlbnQgZGlyZWN0aXZlXVxuQG1peGluIG5vdC11bmlxdWUoKSB7XG4gICY6bm90KDpvbmx5LWNoaWxkKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuXG4vLy8gVGhpcyBtaXhpbiBpcyB1c2VkIHRvIGF1dG9tYXRpY2FsbHkgc29ydCB6LWluZGV4IGluIG51bWVyaWNhbCBvcmRlci4gQnV0IGl0XG4vLy8gY2FuIGFsc28gc29ydCB0aGVtIGluIGFudGktbnVtZXJpY2FsIG9yZGVyLCBkZXBlbmRpbmcgdGhlIHBhcmFtZXRlcnMgeW91IHVzZS5cbi8vLyBAZ3JvdXAgdXNpbmcgZnVuY3Rpb25zXG4vLy8gQGNvbnRlbnQgW1dyaXRlIHRoZSBzdHlsZSB5b3Ugd2FudCB0byBhcHBseSB0byB0aGUgY2hpbGRyZW4sIGFuZCBpdCB3aWxsIGJlIGFkZGVkIHdpdGhpbiB0aGUgQGNvbnRlbnQgZGlyZWN0aXZlXVxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbnVtIC0gTnVtYmVyIG9mIGNoaWxkcmVuXG4vLy8gQHBhcmFtIHtzdHJpbmd9ICRkaXJlY3Rpb24gW2ZvcndhcmRdIC0gRGlyZWN0aW9uIG9mIHRoZSBzb3J0XG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRpbmRleCBbMF0gLSBJbmRleCBvZiB0aGUgc29ydGluZ1xuQG1peGluIGNoaWxkLWluZGV4KCRudW0sICRkaXJlY3Rpb246ICdmb3J3YXJkJywgJGluZGV4OiAwKSB7XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJG51bSB7XG4gICAgQGlmICgkZGlyZWN0aW9uID09ICdmb3J3YXJkJykge1xuICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgei1pbmRleDogb3JkZXItaW5kZXgoJGksICRpbmRleCk7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gJ2JhY2t3YXJkJykge1xuICAgICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICB6LWluZGV4OiBvcmRlci1pbmRleCgkaSwgJGluZGV4KTtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBVc2VkIGJ5IHRoZSBjaGlsZC1pbmRleCBtaXhpbi4gSXQgd2lsbCByZXR1cm5lZCB0aGUgcHJvcGVyIHNvcnRlZCBudW1iZXJzXG4vLy8gZGVwZW5kaW5nIG9uIHRoZSBgJGluZGV4YCB2YWx1ZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLyBAcGFyYW0ge251bWJlcn0gJG51bSAtIE51bWJlciBvZiBjaGlsZHJlblxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkaW5kZXggLSBJbmRleCBvZiB0aGUgc29ydGluZ1xuQGZ1bmN0aW9uIG9yZGVyLWluZGV4KCRpLCAkaW5kZXgpIHtcbiAgQHJldHVybiAoJGluZGV4ICsgJGkpO1xufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZMSUNLSVRZXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNrb2RhLWZsaWNraXR5LWJ1dHRvbi1mb2N1cy1iYWNrZ3JvdW5kLWNvbG9yOiAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kc2tvZGEtZmxpY2tpdHktY291bnRlci1mb250LWNvbG9yLWN1cnJlbnQ6ICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG5cblxuLyoqXG4gKiBbMV0gRW5mb3JjZSBiYWNrZ3JvdW5kIGNvbG9yIG5vdCB0byBjaGFuZ2Ugb24gZm9jdXMsIG9ubHkgb24gaG92ZXIuXG4gKiBbMl0gQWRkIGJyYW5kLXNwZWNpZmljIHN0eWxlcyBmb3IgZm9jdXMgb3V0bGluZS5cbiAqL1xuLmZsaWNraXR5LWVuYWJsZWQge1xuXG4gICAgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24sXG4gICAgLmZsaWNraXR5LWZ1bGxzY3JlZW4tYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigpO1xuXG4gICAgICAgICY6Zm9jdXMgeyAvKiBbMV0gKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGltcG9ydGFudCgkc2tvZGEtZmxpY2tpdHktYnV0dG9uLWZvY3VzLWJhY2tncm91bmQtY29sb3IsIHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHsgLyogWzJdICovXG4gICAgICAgICAgICBAaW5jbHVkZSBmb2N1cy1zdHlsZXMoKTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmZsaWNraXR5LXBhZ2UtZG90cyB7XG5cbiAgICAgICAgLmRvdCB7XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtY2xhc3MgKi9cbiAgICAgICAgICAgICYuaXMtc2VsZWN0ZWQge1xuXG4gICAgICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSwgc2VsZWN0b3ItbWF4LWNsYXNzLCBtYXgtbmVzdGluZy1kZXB0aCAqL1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbXBvcnRhbnQoJHNrb2RhLWZsaWNraXR5LWNvdW50ZXItZm9udC1jb2xvci1jdXJyZW50LCB0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbn1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNGT0NVUy1TVFlMRVNcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vLyBAVE9ETzogcmVuYW1lIHRvIGBmb2N1cy1vdXRsaW5lYFxuXG4vLy8gTWl4aW4gZm9yIG91dGxpbmUgc3R5bGVzLlxuLy8vIFJldHVybnMgYSB2aXNpYmxlIG91dGxpbmUgb2YgdGhlIG9iamVjdCB3aGVuIGluIGZvY3VzLlxuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG91dGxpbmUtd2lkdGggWyRHTE9CQUwtRk9DVVMtV0lEVEhdIC0gU2l6ZSBvZiBvdXRsaW5lLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3V0bGluZS1zdHlsZSBbJEdMT0JBTC1GT0NVUy1TVFlMRV0gLSBTdHlsZSBvZiBvdXRsaW5lLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRvdXRsaW5lLWNvbG9yIFskR0xPQkFMLUZPQ1VTLUNPTE9SXSAtIENvbG9yIG9mIG91dGxpbmUuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvdXRsaW5lLWNvbG9yIFskR0xPQkFMLUZPQ1VTLU9GRlNFVF0gLSBPdXRsaW5lIG9mZnNldC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRzZXQtcHJvcHMgW3RydWVdIC0gQ29udHJvbCBpZiBjdXN0b20gcHJvcGVydGllcyBzaG91bGQgYmUgc2V0LiBBbGxvdyBtb3JlIGZsZXhpYmlsaXR5IHZpYSBjdXN0b20gcHJvcGVydGllcy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRpbXBvcnRhbnQgW2ZhbHNlXSAtIE9wdGlvbiB0byBlbmZvcmNlIHRoZSBhdHRhY2hlZCBzdHlsZXMuXG4vLy8gQG91dHB1dCBgb3V0bGluZWAgd2l0aCB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vICAgICBzZWxlY3Rvcjpmb2N1cyB7XG4vLy8gICAgICAgICBAaW5jbHVkZSBmb2N1cy1zdHlsZXMoKTtcbi8vLyAgICAgfVxuQG1peGluIGZvY3VzLXN0eWxlcyhcbiAgICAkb3V0bGluZS13aWR0aDogICRHTE9CQUwtRk9DVVMtV0lEVEgsXG4gICAgJG91dGxpbmUtc3R5bGU6ICAkR0xPQkFMLUZPQ1VTLVNUWUxFLFxuICAgICRvdXRsaW5lLWNvbG9yOiAgJEdMT0JBTC1GT0NVUy1DT0xPUixcbiAgICAkb3V0bGluZS1vZmZzZXQ6ICRHTE9CQUwtRk9DVVMtT0ZGU0VULFxuICAgICRzZXQtcHJvcHM6ICAgICAgdHJ1ZSxcbiAgICAkaW1wb3J0YW50OiAgICAgIGZhbHNlLFxuKSB7XG4gICAgQGlmICgkc2V0LXByb3BzKSB7XG4gICAgICAgIC0tZm9jdXMtb3V0bGluZS1jb2xvcjogI3skb3V0bGluZS1jb2xvcn07XG4gICAgICAgIC0tZm9jdXMtb3V0bGluZS1vZmZzZXQ6ICN7JG91dGxpbmUtb2Zmc2V0fTtcbiAgICAgICAgLS1mb2N1cy1vdXRsaW5lLXN0eWxlOiAjeyRvdXRsaW5lLXN0eWxlfTtcbiAgICAgICAgLS1mb2N1cy1vdXRsaW5lLXdpZHRoOiAjeyRvdXRsaW5lLXdpZHRofTtcbiAgICB9XG5cbiAgICBvdXRsaW5lLWNvbG9yOiBpbXBvcnRhbnQodmFyKC0tZm9jdXMtb3V0bGluZS1jb2xvciwgJEdMT0JBTC1GT0NVUy1DT0xPUiksICRpbXBvcnRhbnQpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiBpbXBvcnRhbnQodmFyKC0tZm9jdXMtb3V0bGluZS1vZmZzZXQsICRHTE9CQUwtRk9DVVMtT0ZGU0VUKSwgJGltcG9ydGFudCk7XG4gICAgb3V0bGluZS1zdHlsZTogaW1wb3J0YW50KHZhcigtLWZvY3VzLW91dGxpbmUtc3R5bGUsICRHTE9CQUwtRk9DVVMtU1RZTEUpLCAkaW1wb3J0YW50KTtcbiAgICBvdXRsaW5lLXdpZHRoOiBpbXBvcnRhbnQodmFyKC0tZm9jdXMtb3V0bGluZS13aWR0aCwgJEdMT0JBTC1GT0NVUy1XSURUSCksICRpbXBvcnRhbnQpO1xufVxuXG4vLy8gTWl4aW4gZm9yIGRpc2FibGluZyBvdXRsaW5lIHN0eWxlcy5cbi8vLyBTdXBwcmVzcyB2aXNpYmxlIG91dGxpbmUgc3R5bGVzIG9mIHRoZSBvYmplY3Qgd2hlbiBpbiBmb2N1cy5cbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyAgICAgc2VsZWN0b3I6Zm9jdXMge1xuLy8vICAgICAgICAgQGluY2x1ZGUgZGlzYWJsZS1mb2N1cygpO1xuLy8vICAgICB9XG5AbWl4aW4gZGlzYWJsZS1mb2N1cygpIHtcbiAgICBAaW5jbHVkZSBmb2N1cy1zdHlsZXMoJG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50LCAkb3V0bGluZS13aWR0aDogMCk7XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjVElQUFlKU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AdXNlIFwic2FzczptYXRoXCIgYXMgKjtcblxuLyoqXG4gKiBUaGlzIGlzIGEgY3VzdG9tIGFkYXB0YXRpb24gb2YgdGhlIFRpcHB5LmpzIFNhc3MgZmlsZSB0byBtYWtlIGl0XG4gKiB0aGVtYWJsZSBmb3Igb3RoZXIgYnJhbmRzLlxuICovXG5cbiR0aXBweS1tYXgtd2lkdGg6ICAgICAgICAgICAzMjBweCAhZGVmYXVsdDtcbiR0aXBweS1tYXgtaGVpZ2h0OiAgICAgICAgICAzMDBweCAhZGVmYXVsdDtcbiR0aXBweS1wYWRkaW5nLXZlcnRpY2FsOiAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiR0aXBweS1wYWRkaW5nLWhvcml6b250YWw6ICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiR0aXBweS1iYWNrZ3JvdW5kLWNvbG9yOiAgICAkQ09MT1ItU1VCVExFICFkZWZhdWx0O1xuJHRpcHB5LWVuYWJsZS1hcnJvdzogICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kdGlwcHktYXJyb3ctY29sb3I6ICAgICAgICAgJHRpcHB5LWJhY2tncm91bmQtY29sb3IgIWRlZmF1bHQ7XG4kdGlwcHktYXJyb3ctc2l6ZTogICAgICAgICAgJEdMT0JBTC1BUlJPVy1TSVpFICFkZWZhdWx0O1xuJHRpcHB5LW9mZnNldDogICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kdGlwcHktYm9yZGVyLXJhZGl1czogICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItUkFESVVTICFkZWZhdWx0O1xuJHRpcHB5LWFycm93LWJvcmRlci1yYWRpdXM6IG51bGwgIWRlZmF1bHQ7XG4kdGlwcHktYm9yZGVyLXNpemU6ICAgICAgICAgMCAhZGVmYXVsdDtcbiR0aXBweS1ib3JkZXItY29sb3I6ICAgICAgICBudWxsICFkZWZhdWx0O1xuJHRpcHB5LWJveC1zaGFkb3c6ICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJHRpcHB5LXRleHQtY29sb3I6ICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kdGlwcHktdGV4dC1zaXplOiAgICAgICAgICAgJEZTLTEgIWRlZmF1bHQ7XG4kdGlwcHktZm9udC13ZWlnaHQ6ICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1SRUdVTEFSICFkZWZhdWx0O1xuLy8gVGhlIGxpbmUgaGVpZ2h0IGlzIGVxdWFsIHRvIHRoZSBgaHRtbGAgZWxlbWVudOKAmXMgbGluZSBoZWlnaHQgYW5kIGNhbGN1bGF0ZWRcbi8vIHdpdGhvdXQgdW5pdC5cbiR0aXBweS1saW5lLWhlaWdodDogICAgICAgICBkaXYoJEdMT0JBTC1MSU5FLUhFSUdIVCwgJEdMT0JBTC1GT05ULVNJWkUpICFkZWZhdWx0O1xuJHRpcHB5LWxpbmstY29sb3I6ICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kdGlwcHktbGluay1jb2xvci1ob3ZlcjogICAgbnVsbCAhZGVmYXVsdDtcbiR0aXBweS1wbGFjZW1lbnRzOiAgICAgICAgICBcInRvcFwiLCBcImJvdHRvbVwiLCBcImxlZnRcIiwgXCJyaWdodFwiICFkZWZhdWx0O1xuLy8gU2luY2UgYSBib3JkZXItd2lkdGggPD0gMCBlZmZlY3RpdmVseSByZW5kZXJzIHRoZSBib3JkZXIgaW52aXNpYmxlIHdlIHVzZSB0aGlzXG4vLyBhcyBjcml0ZXJpYSB0byBkaWZmZXJlbnRpYXRlIGlmIGEgYm9yZGVyIHdpbGwgYmUgYXBwbGllZC5cbiR0aXBweS1oYXMtYm9yZGVyOiAgICAgICAgICBpZigkdGlwcHktYm9yZGVyLXNpemUgPiAwLCB0cnVlLCBmYWxzZSkgIWRlZmF1bHQ7XG5cbi8vIFVuc2V0IGFycm93LXNpemUgaWYgYXJyb3cgaXMgbm90IGVuYWJsZWQgdG8gbm90IGRpc3RvcnQgdGhlIGNhbGN1bGF0aW9ucy5cbkBpZiBub3QgKCR0aXBweS1lbmFibGUtYXJyb3cpIHtcbiAgICAkdGlwcHktYXJyb3ctc2l6ZTogMDtcbn1cblxuQGltcG9ydCBcIl9taXhpbnNcIjtcblxuLyoqXG4gKiBbMV0gUmVmZXJlbmNlIGZvciB0aGUgYXJyb3cuXG4gKiBbMl0gSWYgdGhlIGJyb3dzZXIgc3VwcG9ydHMgYGZpbHRlcjogZHJvcC1zaGFkb3dgLCBhcHBseSB0aGlzIGRlY2xhcmF0aW9uIHRvXG4gKiAgICAgaW5jbHVkZSB0aGUgYXJyb3cgaW4gdGhlIHNoYWRvdyBhcyB3ZWxsLlxuICogWzNdIERlZmVuc2l2ZWx5IHJlc2V0IGFueSBzcGFjaW5nLWJvdHRvbSBvZiB0aGUgbGFzdCBlbGVtZW50IGluIHRoZSBib2R5LlxuICogWzRdIExpbWl0IHRoZSBoZWlnaHQgb2YgdGhlIHRvb2x0aXAgZm9yIGxhcmdlIGNvbnRlbnQgYW5kIG1ha2UgaXQgc2Nyb2xsYWJsZS5cbiAqIFs1XSBNYWtlIHN1cmUgdGhhdCDigJxub3JtYWzigJ0gSFRNTCBlbGVtZW50cyBsaWtlIGA8aDE+YCBldGMuIGFsbCBnZXQgdGhlXG4gKiAgICAgY29ycmVjdCB0ZXh0IGNvbG9yLCB3aGVuIHRoZXkgYXJlIHBsYWNlZCBpbnNpZGUgb2YgdGhlIHRvb2x0aXAuXG4gKiAgICAgVXNlIGAhaW1wb3J0YW50YCB0byBhdm9pZCB0ZXh0IGNvbG9yIGJlaW5nIG92ZXJ3cml0dGVuIGJ5IGhpZ2hlciBzcGVjaWZpY2l0eS5cbiAqIFs2XSBDaGVjayBpZiB0aGUgdG9vbHRpcCB3aWxsIGhhdmUgYSBib3JkZXIgYW5kIHJlbmRlciB0aGUgdHJpYW5nbGUgZGlmZmVyZW50bHlcbiAqICAgICBhcyB0aGUgb3JpZ2luYWwgYXBwcm9hY2ggdXNlcyBgYm9yZGVyYCBpdHNlbGYgdG8gcmVuZGVyIHRoZSB0cmlhbmdsZS5cbiAqIFs3XSBPdmVyd3JpdGUgdGhlIGRlZmF1bHQgaG92ZXIgbGluayBib3JkZXIgY29sb3IuXG4gKiBbOF0gRml4IGlzc3VlIHdoZXJlIHRoZSBkcm9wIHNoYWRvdyB3YXMgc29tZXRpbWVzIG1pc3NpbmcgaW4gc29tZSB2ZXJzaW9uc1xuICogICAgIG9mIFNhZmFyaS4gVW5mb3J0dW5hdGVseSwgd2UgZG8gbm90IGhhdmUgYSByZWxpYWJsZSBDU1Mtb25seSBzb2x1dGlvblxuICogICAgIHRvIGludGVyY2VwdCB0aGUgU2FmYXJpIGJyb3dzZXIuIFRoZXJlZm9yZSwgd2UgYWRkIGB3aWxsLWNoYW5nZTogdHJhbnNmb3JtYFxuICogICAgIG9ubHkgd2hlbiBhIGRyb3Agc2hhZG93IGlzIHNldC5cbiAqIFs5XSBNYWtlcyBzdXJlIHRoYXQgdGhlIHRleHQgd2l0aGluIHRoZSB0b29sdGlwIHdyYXBzIG5vcm1hbGx5IGV2ZW4gaWZcbiAqICAgICBhIHBhcmVudCBlbGVtZW50IHN1cHByZXNzZXMgbGluZSBicmVha3MgdXNpbmcgYHdoaXRlLXNwYWNlOiBub3dyYXBgLlxuICogWzEwXSBOb3JtYWxpemUgYGZvbnQtd2VpZ2h0YCBidXQgZXhjbHVkZSBgPHN0cm9uZz5gIGFuZCBgPGI+YC5cbiAqL1xuXG5bZGF0YS10aXBweS1yb290XSB7XG4gICAgbWF4LXdpZHRoOiAkdGlwcHktbWF4LXdpZHRoO1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIFs5XSAqL1xufVxuXG4udGlwcHktYm94IHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkdGlwcHktdGV4dC1zaXplKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIFsxXSAqL1xuICAgIGJvcmRlci1yYWRpdXM6ICR0aXBweS1ib3JkZXItcmFkaXVzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0aXBweS1iYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICgkdGlwcHktYm94LXNoYWRvdykge1xuICAgICAgICBib3gtc2hhZG93OiAkdGlwcHktYm94LXNoYWRvdztcblxuICAgICAgICBAc3VwcG9ydHMgKGZpbHRlcjogZHJvcC1zaGFkb3coJHRpcHB5LWJveC1zaGFkb3cpKSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lOyAvKiBbMl0gKi9cbiAgICAgICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coJHRpcHB5LWJveC1zaGFkb3cpOyAvKiBbMl0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgQGlmICgkdGlwcHktaGFzLWJvcmRlcikge1xuICAgICAgICBib3JkZXItY29sb3I6ICR0aXBweS1ib3JkZXItY29sb3I7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci13aWR0aDogJHRpcHB5LWJvcmRlci1zaXplO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgICBAaW5jbHVkZSBkaXNhYmxlLWZvY3VzKCk7XG4gICAgfVxuXG4gICAgJixcbiAgICAqIHtcbiAgICAgICAgY29sb3I6IGltcG9ydGFudCgkdGlwcHktdGV4dC1jb2xvciwgdHJ1ZSk7IC8qIFs1XSAqL1xuICAgIH1cblxuICAgICo6bm90KHN0cm9uZyxiKSB7IC8qIFsxMF0gKi9cbiAgICAgICAgZm9udC13ZWlnaHQ6ICR0aXBweS1mb250LXdlaWdodDtcbiAgICB9XG5cbiAgICAmW2RhdGEtc3RhdGU9XCJ2aXNpYmxlXCJdIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtc3RhdGU9XCJoaWRkZW5cIl0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICBjb2xvcjogJHRpcHB5LWxpbmstY29sb3I7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJHRpcHB5LWxpbmstY29sb3ItaG92ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkdGlwcHktbGluay1jb2xvci1ob3ZlcjsgLyogWzddICovXG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG4udGlwcHktYXJyb3cge1xuXG4gICAgQGlmICgkdGlwcHktZW5hYmxlLWFycm93KSB7XG4gICAgICAgIHdpZHRoOiAoJHRpcHB5LWFycm93LXNpemUgKiAyKTtcbiAgICAgICAgaGVpZ2h0OiAoJHRpcHB5LWFycm93LXNpemUgKiAyKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuXG59XG5cbi50aXBweS1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICBtYXgtaGVpZ2h0OiAkdGlwcHktbWF4LWhlaWdodDsgLyogWzRdICovXG4gICAgb3ZlcmZsb3c6IGF1dG87IC8qIFs0XSAqL1xuICAgIHBhZGRpbmc6ICR0aXBweS1wYWRkaW5nLXZlcnRpY2FsICR0aXBweS1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgbGluZS1oZWlnaHQ6ICR0aXBweS1saW5lLWhlaWdodDtcblxuICAgID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzNdICovXG4gICAgfVxuXG59XG5cbkBlYWNoICRwbGFjZW1lbnQgaW4gJHRpcHB5LXBsYWNlbWVudHMge1xuXG4gICAgLnRpcHB5LWJveCB7XG5cbiAgICAgICAgJltkYXRhLXBsYWNlbWVudF49XCIjeyRwbGFjZW1lbnR9XCJdIHtcblxuICAgICAgICAgICAgQGlmICgkcGxhY2VtZW50ID09IFwidG9wXCIpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSgkdGlwcHktYXJyb3ctc2l6ZSArICR0aXBweS1vZmZzZXQpKTtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRwbGFjZW1lbnQgPT0gXCJib3R0b21cIikge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkdGlwcHktYXJyb3ctc2l6ZSArICR0aXBweS1vZmZzZXQpO1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJHBsYWNlbWVudCA9PSBcImxlZnRcIikge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtKCR0aXBweS1hcnJvdy1zaXplICsgJHRpcHB5LW9mZnNldCkpO1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJHBsYWNlbWVudCA9PSBcInJpZ2h0XCIpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHRpcHB5LWFycm93LXNpemUgKyAkdGlwcHktb2Zmc2V0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkdGlwcHktYm94LXNoYWRvdykge1xuICAgICAgICAgICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IC8qIFs4XSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCR0aXBweS1lbmFibGUtYXJyb3cpIHtcblxuICAgICAgICAgICAgICAgIC50aXBweS1hcnJvdyB7XG4gICAgICAgICAgICAgICAgICAgICRfZGlyZWN0aW9uOiBvcHBvc2l0ZS1kaXJlY3Rpb24oJHBsYWNlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICN7JF9kaXJlY3Rpb259OiAwO1xuXG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoJHRpcHB5LWhhcy1ib3JkZXIpIHsgLyogWzZdICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYXJyb3ctd2l0aC1ib3JkZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwbGFjZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aXBweS1ib3JkZXItc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRpcHB5LWJvcmRlci1jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRpcHB5LWFycm93LXNpemUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aXBweS1hcnJvdy1ib3JkZXItcmFkaXVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGlwcHktYXJyb3ctY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYXJyb3coJHBsYWNlbWVudCwgJHRpcHB5LWFycm93LXNpemUsICR0aXBweS1hcnJvdy1jb2xvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYXJyb3ctcG9zaXRpb24oJHBsYWNlbWVudCwgJHRpcHB5LWFycm93LXNpemUsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhcnJvdy10cmFuc2Zvcm0tb3JpZ2luKCRwbGFjZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxufVxuIiwiQHVzZSBcInNhc3M6bWF0aFwiIGFzICo7XG5cbkBtaXhpbiBhcnJvdygkcGxhY2VtZW50LCAkd2lkdGgsICRjb2xvcikge1xuICAgIEBpZiAoJHBsYWNlbWVudCA9PSBcInRvcFwiKSB7XG4gICAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkY29sb3I7XG4gICAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH0gQGVsc2UgaWYgKCRwbGFjZW1lbnQgPT0gXCJib3R0b21cIikge1xuICAgICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGNvbG9yO1xuICAgICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9IEBlbHNlIGlmICgkcGxhY2VtZW50ID09IFwibGVmdFwiKSB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGNvbG9yO1xuICAgICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9IEBlbHNlIGlmICgkcGxhY2VtZW50ID09IFwicmlnaHRcIikge1xuICAgICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkY29sb3I7XG4gICAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBbMV0gQWxpZ24gd2l0aCBhcnJvdyByZWZlcmVuY2UgZWxlbWVudC5cbiAqL1xuQG1peGluIGFycm93LXBvc2l0aW9uKCRwbGFjZW1lbnQsICR3aWR0aCwgJGlzUm91bmRBcnJvdykge1xuICAgIEBpZiAoJHBsYWNlbWVudCA9PSBcInRvcFwiKSB7XG4gICAgICAgIGJvdHRvbTogLSgkd2lkdGgpO1xuICAgICAgICBsZWZ0OiAwOyAvKiBbMV0gKi9cbiAgICB9IEBlbHNlIGlmICgkcGxhY2VtZW50ID09IFwiYm90dG9tXCIpIHtcbiAgICAgICAgdG9wOiAtKCR3aWR0aCk7XG4gICAgICAgIGxlZnQ6IDA7IC8qIFsxXSAqL1xuICAgIH1cblxuICAgIEBpZiAoJGlzUm91bmRBcnJvdykge1xuICAgICAgICBAaWYgKCRwbGFjZW1lbnQgPT0gXCJsZWZ0XCIpIHtcbiAgICAgICAgICAgIHJpZ2h0OiAtKCR3aWR0aCAqIDIpO1xuICAgICAgICB9IEBlbHNlIGlmICgkcGxhY2VtZW50ID09IFwicmlnaHRcIikge1xuICAgICAgICAgICAgbGVmdDogLSgkd2lkdGggKiAyKTtcbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICBAaWYgKCRwbGFjZW1lbnQgPT0gXCJsZWZ0XCIpIHtcbiAgICAgICAgICAgIHJpZ2h0OiAtKCR3aWR0aCk7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRwbGFjZW1lbnQgPT0gXCJyaWdodFwiKSB7XG4gICAgICAgICAgICBsZWZ0OiAtKCR3aWR0aCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBhcnJvdy10cmFuc2Zvcm0tb3JpZ2luKCRwbGFjZW1lbnQpIHtcbiAgICBAaWYgKCRwbGFjZW1lbnQgPT0gXCJ0b3BcIikge1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7XG4gICAgfSBAZWxzZSBpZiAoJHBsYWNlbWVudCA9PSBcImJvdHRvbVwiKSB7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAxMDAlO1xuICAgIH0gQGVsc2UgaWYgKCRwbGFjZW1lbnQgPT0gXCJsZWZ0XCIpIHtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCUgNTAlO1xuICAgIH0gQGVsc2UgaWYgKCRwbGFjZW1lbnQgPT0gXCJyaWdodFwiKSB7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgNTAlO1xuICAgIH1cbn1cblxuLy8vIEEgbWl4aW4gdG8gZ2VuZXJhdGUgYW4gdHJpYW5nbGUgZnJvbSBhbiBlbGVtZW50IHdoaWNoIGNhbiBhbHNvIGhhdmUgYSBib3JkZXIgYXBwbGllZCB0byBpdC5cbi8vLyBbMV0gVGhlIG9mZnNldCBmb3IgYSB0cmlhbmdsZSB3aXRoIGJvcmRlciBuZWVkcyB0byBiZSBjYWxjdWxhdGVkIHRha2luZyB0aGUgYm9yZGVyLXdpZHRoIGludG8gYWNjb3VudC5cbi8vLyAgICAgU2luY2UgdGhlIHRyaWFuZ2xlIGlzIGEgNDVkZWcgcm90YXRlZCBzcXVhcmUgd2UgbmVlZCBjYWxjdWxhdGUgaXQgdGhlIGZvbGxvd2luZyB3YXk6XG4vLy8gICAgIEhhbGYgb2YgdGhlIHRyaWFuZ2xlIHNpemUgKyBjYXRoZXR1cyBvZiB0aGUgYGJvcmRlci13aWR0aGAsIHdoaWNoIGlzIHdoeSB3ZSBkaXZpZGUgaXQgd2l0aCDiiJoyLlxuLy8vIFsyXSBXZSBzaGlmdCB0aGUgdHJpYW5nbGUgdG93YXJkcyB0aGUgcGxhY2VtZW50IHNpZGUgYnkgdGhlIGFtb3VudCBvZiB0aGUgdG9vbHRpcCBzaXplXG4vLy8gICAgIGFuZCBjb3JyZWN0IGl0IGxhdGVyIHdpdGggdGhlIG9mZnNldC5cbi8vLyBbM10gQWZ0ZXIgcm90YXRpb24sIG9mZnNldCB0cmlhbmdsZSB0byBwb2ludCB0byB0aGUgdGFyZ2V0LlxuLy8vIFs0XSBBbGlnbiB3aXRoIGFycm93IHJlZmVyZW5jZSBlbGVtZW50LlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcGxhY2VtZW50IC0gVGhlIHBsYWNlbWVudCBmb3IgdGhlIGFycm93OiB0b3AsIHJpZ2h0LCBib3R0b20gb3IgbGVmdC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRib3JkZXItd2lkdGggLSBUaGUgdGhpY2tuZXNzIG9mIHRoZSBib3JkZXIuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJvcmRlci1jb2xvciAtIFRoZSBjb2xvciBvZiB0aGUgYm9yZGVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSAtIFRoZSBzaXplIG9mIHRoZSBhcnJvdyBpbiBwaXhlbHMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRib3JkZXItcmFkaXVzIC0gVGhlIHJhZGl1cyBvZiB0aGUgYXJyb3cgdGlwIGluIHBpeGVscy5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBUaGUgb3ZlcmFsbCBjb2xvciBvZiB0aGUgYXJyb3cuXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vICAgICAubXktYXJyb3ctLWJvcmRlcmVkIHtcbi8vLyAgICAgICAgIEBpbmNsdWRlIGFycm93LXdpdGgtYm9yZGVyKFxuLy8vICAgICAgICAgICAgICRwbGFjZW1lbnQsXG4vLy8gICAgICAgICAgICAgJHRpcHB5LWJvcmRlci1zaXplLFxuLy8vICAgICAgICAgICAgICR0aXBweS1ib3JkZXItY29sb3IsXG4vLy8gICAgICAgICAgICAgJHRpcHB5LWFycm93LXNpemUsXG4vLy8gICAgICAgICAgICAgJHRpcHB5LWFycm93LWJvcmRlci1yYWRpdXMsXG4vLy8gICAgICAgICAgICAgJHRpcHB5LWFycm93LWNvbG9yXG4vLy8gICAgICAgICApO1xuLy8vICAgICB9XG5AbWl4aW4gYXJyb3ctd2l0aC1ib3JkZXIoJHBsYWNlbWVudCwgJGJvcmRlci13aWR0aCwgJGJvcmRlci1jb2xvciwgJHNpemUsICRib3JkZXItcmFkaXVzLCAkY29sb3IpIHtcbiAgICAkU1FSVF9UV086IDEuNDE0MjEzNTYyMzc7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgbnVtYmVyLW1heC1wcmVjaXNpb24gKi9cbiAgICAkb2Zmc2V0OiAoKCRzaXplICogMC41KSArIGRpdigkYm9yZGVyLXdpZHRoLCAkU1FSVF9UV08pKTsgLyogWzFdICovXG4gICAgJGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuXG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6ICRzaXplO1xuICAgIGhlaWdodDogJHNpemU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIGJvcmRlci10b3A6ICRib3JkZXI7XG4gICAgYm9yZGVyLWxlZnQ6ICRib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICN7JHBsYWNlbWVudH06IDEwMCU7ICAvKiBbMl0gKi9cblxuICAgIC8qIFsxXSBbM10gKi9cbiAgICBAaWYgKCRwbGFjZW1lbnQgPT0gXCJ0b3BcIikge1xuICAgICAgICBsZWZ0OiAwOyAvKiBbNF0gKi9cbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjI1ZGVnKSB0cmFuc2xhdGUoMCwgJG9mZnNldCk7XG4gICAgfSBAZWxzZSBpZiAoJHBsYWNlbWVudCA9PSBcImJvdHRvbVwiKSB7XG4gICAgICAgIGxlZnQ6IDA7IC8qIFs0XSAqL1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlKCRvZmZzZXQsIDApO1xuICAgIH0gQGVsc2UgaWYgKCRwbGFjZW1lbnQgPT0gXCJsZWZ0XCIpIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKSB0cmFuc2xhdGUoJG9mZnNldCwgMCk7XG4gICAgfSBAZWxzZSBpZiAoJHBsYWNlbWVudCA9PSBcInJpZ2h0XCIpIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUoMCwgJG9mZnNldCk7XG4gICAgfVxuXG59XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjVE9PTFRJUFxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRUT09MVElQLUJBQ0tHUk9VTkQ6ICAgICAgICAgJENPTE9SLU9OLVNVUkZBQ0UtNzAwICFkZWZhdWx0O1xuJFRPT0xUSVAtVEVYVC1DT0xPUjogICAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kVE9PTFRJUC1URVhULVNJWkU6ICAgICAgICAgIG1hcC1nZXQoJEZTLTIsIG51bGwpICFkZWZhdWx0O1xuJFRPT0xUSVAtRk9OVC1XRUlHSFQ6ICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG4kVE9PTFRJUC1MSU5FLUhFSUdIVDogICAgICAgIDEuNSAhZGVmYXVsdDtcbiRUT09MVElQLVBBRERJTkctVkVSVElDQUw6ICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJFRPT0xUSVAtUEFERElORy1IT1JJWk9OVEFMOiAkX19TS09EQS1TUEFDSU5HLVNUQVRJQy0xMl9fICFkZWZhdWx0O1xuJFRPT0xUSVAtQk9SREVSLVJBRElVUzogICAgICAycHggIWRlZmF1bHQ7XG4kVE9PTFRJUC1PRkZTRVQ6ICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiRUT09MVElQLUFSUk9XLVNJWkU6ICAgICAgICAgOHB4ICFkZWZhdWx0O1xuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZMQVRQSUNLUi1PVkVSUklERVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AdXNlIFwic2FzczptYXRoXCIgYXMgKjtcblxuJGZsYXRwaWNrci1kYXktY291bnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLXNxdWFyZS1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgNDBweCAhZGVmYXVsdDtcbiRmbGF0cGlja3Itc3F1YXJlLW1hcmdpbi1ob3Jpem9udGFsOiAgICAgICAgICAgICAwICFkZWZhdWx0O1xuJGZsYXRwaWNrci1zcXVhcmUtbWFyZ2luLXZlcnRpY2FsOiAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4vLyBTdW0gdXAgdGhlIHdpZHRocyBvZiBhbGwgZGF5IGl0ZW1zIHRvIGdldCB0aGUgaW5uZXIgY29udGFpbmVyIHdpZHRoLlxuLy8gVGhpcyBpcyBuZWVkZWQgZm9yIHRoZSBjb3JyZWN0IHJvdyBicmVhayBvZiB0aGUgZGF5IGl0ZW1zIGxhdGVyOlxuJGZsYXRwaWNrci1pbm5lci1jb250YWluZXItd2lkdGg6ICAgICAgICAgICAgICAgICRmbGF0cGlja3ItZGF5LWNvdW50ICogKCRmbGF0cGlja3Itc3F1YXJlLXNpemUgKyAoMiAqICRmbGF0cGlja3Itc3F1YXJlLW1hcmdpbi1ob3Jpem9udGFsKSkgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWhvcml6b250YWwtYnJlYWtwb2ludDogICAgICAgICAgICAgICAgXCI8PXhzXCIgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLXdpZHRoLWJlbG93LWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICAgOTB2dyAhZGVmYXVsdDtcbiRmbGF0cGlja3Itc3F1YXJlLXNpemUtYmVsb3ctYnJlYWtwb2ludDogICAgICAgICBkaXYoMTAwJSwgJGZsYXRwaWNrci1kYXktY291bnQpICFkZWZhdWx0O1xuJGZsYXRwaWNrci1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiRmbGF0cGlja3ItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAxcHggIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZsYXRwaWNrci1ib3JkZXItd2lkdGggc29saWQgJGZsYXRwaWNrci1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcbiRmbGF0cGlja3ItYm94LXNoYWRvdzogICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRmbGF0cGlja3Itei1pbmRleDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6KFwiZGF0ZXBpY2tlclwiKSAhZGVmYXVsdDtcbiRmbGF0cGlja3ItcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRmbGF0cGlja3ItcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbi8vIFRoZSBjb21wb25lbnQgd2lkdGggaXMgdGhlIGlubmVyIGNvbnRhaW5lciB3aWR0aCBwbHVzIHRoZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGguXG4vLyBPcHRpb25hbGx5IGFuIGV4dHJhIHdpZHRoIGNhbiBiZSBhZGRlZCBhcyBDU1MgY3VzdG9tIHByb3BlcnR5IChlLmcuIGZvciB0aGUgd2VlayBudW1iZXJzKSBbMjJdOlxuJGZsYXRwaWNrci13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGModmFyKC0tZmxhdHBpY2tyLWV4dHJhLXdpZHRoKSArICN7JGZsYXRwaWNrci1pbm5lci1jb250YWluZXItd2lkdGggKyAoMiAqICgkZmxhdHBpY2tyLXBhZGRpbmctaG9yaXpvbnRhbCArICRmbGF0cGlja3ItYm9yZGVyLXdpZHRoKSl9KSAhZGVmYXVsdDtcbiRmbGF0cGlja3ItYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWFycm93LWluZGljYXRvci1oZWlnaHQ6ICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcbiRmbGF0cGlja3ItdmVydGljYWwtb2Zmc2V0LXRvLWJvdHRvbTogICAgICAgICAgICAtKDIgKiAkZmxhdHBpY2tyLXBhZGRpbmctdmVydGljYWwgKyAyICogJGZsYXRwaWNrci1ib3JkZXItd2lkdGggKyAkZmxhdHBpY2tyLWFycm93LWluZGljYXRvci1oZWlnaHQpICFkZWZhdWx0O1xuJGZsYXRwaWNrci1oYXMtYXJyb3ctaW5kaWNhdG9yOiAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGZsYXRwaWNrci1hcnJvdy1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoOiAgICAgICAgIDlweCAhZGVmYXVsdDtcbiRmbGF0cGlja3ItYXJyb3ctaW5kaWNhdG9yLWJvcmRlci10cmFuc3BhcmVudDogICAkZmxhdHBpY2tyLWFycm93LWluZGljYXRvci1ib3JkZXItd2lkdGggc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWFycm93LWluZGljYXRvci1ob3Jpem9udGFsLW9mZnNldDogICAgNjBweCAhZGVmYXVsdDtcblxuJGZsYXRwaWNrci1tb250aC1jYWxlbmRhci1zcGFjaW5nOiAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRmbGF0cGlja3ItaW5wdXQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWlucHV0LXdyYXBwZXItYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogJENPTE9SLVBBTEUgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWlucHV0LWljb24tYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogICAgJENPTE9SLVNVQlRMRSAhZGVmYXVsdDtcbiRmbGF0cGlja3ItaW5wdXQtaWNvbi11cDogICAgICAgICAgICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1jb2xsYXBzZSkgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWlucHV0LWljb24tZG93bjogICAgICAgICAgICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtZXhwYW5kKSAhZGVmYXVsdDtcbiRmbGF0cGlja3ItaW5wdXQtaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWlucHV0LWljb24tY29sb3ItaG92ZXI6ICAgICAgICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJGZsYXRwaWNrci1pbnB1dC1pY29uLWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtQURET04tRk9OVC1DT0xPUi1ESVNBQkxFRCAhZGVmYXVsdDtcblxuJGZsYXRwaWNrci15ZWFyLWljb24td3JhcHBlci13aWR0aDogICAgICAgICAgICAgIDE1cHggIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLXllYXItaWNvbi1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKHhzbWFsbCkgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLXllYXItaW5wdXQtd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgMy41ZW0gIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLXllYXItaW5wdXQtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcbiRmbGF0cGlja3IteWVhci1pbnB1dC1mb250LXdlaWdodDogICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLXllYXItaW5wdXQtYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbiRmbGF0cGlja3ItbW9udGgtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAkZmxhdHBpY2tyLWlucHV0LWNvbG9yICFkZWZhdWx0O1xuJGZsYXRwaWNrci1tb250aC1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCAhZGVmYXVsdDtcbiRmbGF0cGlja3ItbW9udGgtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICBtYXAtZ2V0KCRGUzIsIG51bGwpICFkZWZhdWx0O1xuJGZsYXRwaWNrci1tb250aC1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiRmbGF0cGlja3ItbW9udGgtaWNvbi1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICAkQ09MT1ItSU5BQ1RJVkUgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLW1vbnRoLWljb24tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKHNtYWxsKSAhZGVmYXVsdDtcblxuJGZsYXRwaWNrci13ZWVrZGF5cy1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGZsYXRwaWNrci13ZWVrZGF5LXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICRmbGF0cGlja3Itc3F1YXJlLXNpemUgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLXdlZWtkYXktaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgJGZsYXRwaWNrci1zcXVhcmUtc2l6ZSAhZGVmYXVsdDtcbiRmbGF0cGlja3Itd2Vla2RheS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQkFTRS1URVhUICFkZWZhdWx0O1xuJGZsYXRwaWNrci13ZWVrZGF5LWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgIG1hcC1nZXQoJEZTLTEsIG51bGwpICFkZWZhdWx0O1xuJGZsYXRwaWNrci13ZWVrZGF5LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCAhZGVmYXVsdDtcbiRmbGF0cGlja3Itd2Vla2RheS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAkZmxhdHBpY2tyLXNxdWFyZS1zaXplICFkZWZhdWx0O1xuXG4kZmxhdHBpY2tyLWRheS13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZsYXRwaWNrci1zcXVhcmUtc2l6ZSAhZGVmYXVsdDtcbiRmbGF0cGlja3ItZGF5LWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAkZmxhdHBpY2tyLXNxdWFyZS1zaXplICFkZWZhdWx0O1xuJGZsYXRwaWNrci1kYXktYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWRheS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJGZsYXRwaWNrci1kYXktY29sb3ItZGlzYWJsZWQ6ICAgICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWRheS1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICAgICAgICAgJGZsYXRwaWNrci1kYXktY29sb3IgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWRheS1jb2xvci1zZWxlY3RlZDogICAgICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJGZsYXRwaWNrci1kYXktY29sb3Itc2VsZWN0ZWQtaG92ZXI6ICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRmbGF0cGlja3ItZGF5LWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICBtYXAtZ2V0KCRGUy0xLCBudWxsKSAhZGVmYXVsdDtcbiRmbGF0cGlja3ItZGF5LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWRheS1mb250LXdlaWdodC1zZWxlY3RlZDogICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1SRUdVTEFSICFkZWZhdWx0O1xuJGZsYXRwaWNrci1kYXktZm9udC13ZWlnaHQtaG92ZXI6ICAgICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtUkVHVUxBUiAhZGVmYXVsdDtcbiRmbGF0cGlja3ItZGF5LWJhY2tncm91bmQtY29sb3ItaG92ZXI6ICAgICAgICAgICAkQ09MT1ItUEFMRSAhZGVmYXVsdDtcbiRmbGF0cGlja3ItZGF5LWJhY2tncm91bmQtY29sb3Itc2VsZWN0ZWQ6ICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWRheS1iYWNrZ3JvdW5kLWNvbG9yLXNlbGVjdGVkLWhvdmVyOiAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJGZsYXRwaWNrci1kYXktdG9kYXktYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgIDFweCAhZGVmYXVsdDtcbiRmbGF0cGlja3ItZGF5LXRvZGF5LWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGZsYXRwaWNrci1kYXktdG9kYXktYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiRmbGF0cGlja3ItZGF5LXRvZGF5LWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAkZmxhdHBpY2tyLWRheS10b2RheS1ib3JkZXItd2lkdGggc29saWQgJGZsYXRwaWNrci1kYXktdG9kYXktYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGZsYXRwaWNrci1kYXktdG9kYXktZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtUkVHVUxBUiAhZGVmYXVsdDtcbiRmbGF0cGlja3ItZGF5LXRvZGF5LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItSElHSExJR0hUICFkZWZhdWx0O1xuJGZsYXRwaWNrci1kYXktcmFuZ2UtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWRheS1yYW5nZS1jb2xvci1zdGFydDogICAgICAgICAgICAgICAgJGZsYXRwaWNrci1kYXktY29sb3Itc2VsZWN0ZWQgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWRheS1yYW5nZS1jb2xvci1lbmQ6ICAgICAgICAgICAgICAgICAgJGZsYXRwaWNrci1kYXktcmFuZ2UtY29sb3Itc3RhcnQgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWRheS1yYW5nZS1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgJENPTE9SLVBBTEUgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWRheS1yYW5nZS1iYWNrZ3JvdW5kLWNvbG9yLXN0YXJ0OiAgICAgJGZsYXRwaWNrci1kYXktYmFja2dyb3VuZC1jb2xvci1zZWxlY3RlZCAhZGVmYXVsdDtcbiRmbGF0cGlja3ItZGF5LXJhbmdlLWJhY2tncm91bmQtY29sb3ItZW5kOiAgICAgICAkZmxhdHBpY2tyLWRheS1yYW5nZS1iYWNrZ3JvdW5kLWNvbG9yLXN0YXJ0ICFkZWZhdWx0O1xuJGZsYXRwaWNrci1kYXktcmFuZ2UtaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWRheS1yYW5nZS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuJGZsYXRwaWNrci1kYXktcmFuZ2UtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWRheS1vdGhlci1tb250aC1jb2xvcjogICAgICAgICAgICAgICAgJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuJGZsYXRwaWNrci1kYXktZGlzYWJsZWQtc3RyaWtldGhyb3VnaC13aWR0aDogICAgICgkZmxhdHBpY2tyLXNxdWFyZS1zaXplICogMC41KSAhZGVmYXVsdDtcbiRmbGF0cGlja3ItZGF5LWRpc2FibGVkLXN0cmlrZXRocm91Z2gtaGVpZ2h0OiAgICAxcHggIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWRheS1kaXNhYmxlZC1zdHJpa2V0aHJvdWdoLWNvbG9yOiAgICAgY3VycmVudENvbG9yICFkZWZhdWx0O1xuJGZsYXRwaWNrci1kYXktZGlzYWJsZWQtc3RyaWtldGhyb3VnaC1yb3RhdGlvbjogIC0zMGRlZyAhZGVmYXVsdDtcblxuJGZsYXRwaWNrci13ZWVrLW51bWJlcnMtZm9udC1zaXplOiAgICAgICAgICAgICAgICRmbGF0cGlja3Itd2Vla2RheS1mb250LXNpemUgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLXdlZWstbnVtYmVycy1mb250LXdlaWdodDogICAgICAgICAgICAgJGZsYXRwaWNrci13ZWVrZGF5LWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJGZsYXRwaWNrci13ZWVrLW51bWJlcnMtY29sb3I6ICAgICAgICAgICAgICAgICAgICRmbGF0cGlja3Itd2Vla2RheS1jb2xvciAhZGVmYXVsdDtcbiRmbGF0cGlja3Itd2Vlay1udW1iZXJzLWJvcmRlci13aWR0aDogICAgICAgICAgICAxcHggIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLXdlZWstbnVtYmVycy1ib3JkZXItY29sb3I6ICAgICAgICAgICAgJENPTE9SLUJPUkRFUiAhZGVmYXVsdDtcblxuJGZsYXRwaWNrci10aW1lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtSEVJR0hUICFkZWZhdWx0O1xuJGZsYXRwaWNrci10aW1lLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgIG1hcC1nZXQoJEZTLTEsIG51bGwpICFkZWZhdWx0O1xuJGZsYXRwaWNrci10aW1lLWlucHV0LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLXRpbWUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZsYXRwaWNrci1pbnB1dC1jb2xvciAhZGVmYXVsdDtcbiRmbGF0cGlja3ItdGltZS1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICBpY29uLXNpemUoeHNtYWxsKSAhZGVmYXVsdDtcbiRmbGF0cGlja3ItdGltZS1pY29uLXNwYWNpbmctcmlnaHQ6ICAgICAgICAgICAgICAwICFkZWZhdWx0O1xuJGZsYXRwaWNrci10aW1lLWFtLXBtLW1pbi13aWR0aDogICAgICAgICAgICAgICAgIDkwcHggIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLXRpbWUtaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgJGZsYXRwaWNrci1tb250aC1pY29uLWNvbG9yICFkZWZhdWx0O1xuXG4kZmxhdHBpY2tyLWhhcy10cmFuc2l0aW9uOiAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIE1peGluIHRvIGF2b2lkIGR1cGxpY2F0ZWQgY29kZSBhcyBwYXJ0IG9mIGNyZWF0aW5nIGFycm93cyBmb3IgdGhlIHllYXIgc3dpdGNoZXIuXG5AbWl4aW4gZmxhdHBpY2tyLWFycm93KCRib3JkZXItc2lkZSkge1xuICAgICRwc2V1ZG8tZWxlbWVudHM6IChiZWZvcmU6ICRmbGF0cGlja3ItYm9yZGVyLWNvbG9yLCBhZnRlcjogJGZsYXRwaWNrci1iYWNrZ3JvdW5kLWNvbG9yKTtcblxuICAgIEBlYWNoICRwc2V1ZG8tZWxlbWVudCwgJGNvbG9yIGluICRwc2V1ZG8tZWxlbWVudHMge1xuICAgICAgICAmOjojeyRwc2V1ZG8tZWxlbWVudH0ge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICRmbGF0cGlja3ItYXJyb3ctaW5kaWNhdG9yLWJvcmRlci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJGZsYXRwaWNrci1hcnJvdy1pbmRpY2F0b3ItYm9yZGVyLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLSN7JGJvcmRlci1zaWRlfTogJGZsYXRwaWNrci1hcnJvdy1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoIHNvbGlkICRjb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBbMV0gIFNldCAnaW1wb3J0YW50JyB0byBvdmVycmlkZSBpbmxpbmUgQ1NTIHN0eWxlcyBzZXQgYnkgZmxhdHBpY2tyIGFuZCBwcmV2ZW50XG4gKiAgICAgIHJlbmRlcmluZyBpc3N1ZXMgKGVzcGVjaWFsbHkgaW4gRmlyZWZveCkuXG4gKiBbMl0gIFByZXZlbnQgb3V0bGluZSBpZiB1c2VyIGNsaWNrcyBvbiB0aGUgc3BhY2UgYmV0d2VlbiByb290IGVsZW1lbnQgYW5kIGlubmVyXG4gKiAgICAgIGNvbnRhaW5lci5cbiAqIFszXSAgUmVtb3ZlIGJvcmRlciB3aGljaCBpcyBkaXNwbGF5ZWQgb24gZm9jdXMuXG4gKiBbNF0gIE9wdGltaXplIHRoZSBzaXplIGFuZCBwb3NpdGlvbiBvZiB0aGUgY2FsZW5kYXIgZm9yIHNtYWxsIG1vYmlsZSBkZXZpY2VzXG4gKiBbNV0gIEFkZCBhIHJlY3RhbmdsZSB0aGF0IHBvaW50cyBmcm9tIHRoZSBvcGVuIGNhbGVuZGFyIHRvIHRoZSBjb3JyZXNwb25kaW5nXG4gKiAgICAgIGlucHV0IGVsZW1lbnQuXG4gKiBbNl0gIFNob3cgY3Vyc29yIHBvaW50ZXIgb24gZWxlbWVudCB0aGF0IGlzIG5hdGl2ZWx5IG5vdCBpbnRlcmFjdGl2ZS5cbiAqIFs3XSAgUHJldmVudCBjYWxlbmRhciBvbiBtb2JpbGUgZGV2aWNlcyBmcm9tIGJlaW5nIHdpZGVyIHRoYW4gb24gdGhlIGRlc2t0b3AuXG4gKiBbOF0gIFJlbW92ZSBuYXRpdmUgaW5wdXQgc3BpbiBib3guXG4gKiBbOV0gIERvbid0IHNob3cgb3V0bGluZSB3aGVuIGNsaWNraW5nIG9uIGFycm93cy5cbiAqIFsxMF0gQ29ycmVjdCB3cm9uZyBwb3NpdGlvbmluZyBvZiBgLmZsYXRwaWNrci10aW1lYCBjYXVzZWQgYnkgbmVnYXRpdmUgbWFyZ2luLlxuICogWzExXSBVc2UgYGxpbmUtaGVpZ2h0YCB0byBzZXQgdGhlIGBoZWlnaHRgIG9mIHRoZSB0aW1lcGlja2VyIGFuZCB0byBlbnN1cmVcbiAqICAgICAgdGhlIGBpbnB1dHNgIGZpbGwgdGhlIGVudGlyZSBzcGFjZS5cbiAqIFsxMl0gT25seSBhcHBseSB0aGUgZm9udCBjb2xvcnMgdG8gZGF5cyBpbiBkaWZmZXJlbnQgbW9udGhzIGlmIHRoZSBkYXkgaXMgaW5cbiAqICAgICAgXCJkZWZhdWx0IHN0YXRlXCIuIElmIGhvdmVyL3NlbGVjdGVkIGlzIGFjdGl2ZSB0aGUgY29sb3IgbWlnaHQgY29sbGlkZVxuICogICAgICB3aXRoIHRoZSBmb250IGNvbG9yIGRlZmluZWQgaGVyZSwgbWFraW5nIHRoZSBkYXkgdW5yZWFkYWJsZS5cbiAqIFsxM10gSGlkZSBjbG9zZWQgZGF0ZXBpY2tlciB0byBwcmV2ZW50IHRha2luZyB1cCBzcGFjZS5cbiAqIFsxNF0gTWFuYWdlcyB0aGUgcG9zaXRpb24gb2YgdGhlIGNhbGVuZGFyIHdoZW4gb3BlbmluZyB0byB0b3AuXG4gKiBbMTVdIE1ha2UgdHJhbnNpdGlvbnMgb3B0aW9uYWwuXG4gKiBbMTZdIEFsbG93cyBjZW50ZXJpbmcgdGhlIGNvbnRyb2xzIGZvciBhbGwgdmlld3BvcnRzLlxuICogWzE3XSBDZW50ZXIgc3RyaWtlLXRocm91Z2ggYWJvdmUgbnVtYmVyLlxuICogWzE4XSBJbXByb3ZlIGFsaWdubWVudCBmb3IgYG1vbnRoc2Agcm93LlxuICogWzE5XSBIaWRlIGNvbnRyb2xzIHdoZW4gZGlzYWJsZWQgYW5kIHJlbW92aW5nIHRoZW0gZnJvbSB0aGUgYWNjZXNzaWJpbGl0eSB0cmVlLlxuICogWzIwXSBTdXBwcmVzcyB0aGUgY2FjaGVkIHN0YXRlIG9mIHByZXZpb3VzIGludGVyYWN0aW9ucy5cbiAqIFsyMV0gQWRkIGFuIGV4dHJhIHdlZWsgbnVtYmVycyBjb2x1bW4gYnkgYWRkaW5nIGV4dHJhIHdpZHRoIHRvIHRoZSBjb250YWluZXIuXG4gKiBbMjJdIEFkZCBleHRyYSB3aWR0aHMgdG8gdGhlIGlubmVyIGNvbnRhaW5lciB0byBhY2NvdW50IGZvciB0aGUgZXh0cmEgd2Vla1xuICogICAgICBudW1iZXJzIGNvbHVtbi5cbiAqIFsyM10gVGhlIHdlZWsgbnVtYmVyIHNob3VsZCBub3QgYmUgaW50ZXJhY3RlZCB3aXRoLlxuICogWzI0XSBBIHZlcnRpY2FsIGJvcmRlciBpcyBhZGRlZCBhcyBwc2V1ZG8gZWxlbWVudCB0byB0aGUgd2VlayBudW1iZXIgY29sdW1uXG4gKiAgICAgIHRvIHNlcGFyYXRlIGl0IGZyb20gdGhlIHJlc3Qgb2YgdGhlIGNhbGVuZGFyIHdpdGhvdXQgY2hhbmdpbmcgdGhlXG4gKiAgICAgIGVsZW1lbnTigJlzIHdpZHRoLlxuICogWzI1XSBUaGUgYm9yZGVyIHNob3VsZCBiZSBvbmx5IGFzIGhpZ2ggYXMgY2hhcmFjdGVycyBpbiB0aGUgdG9wIHJvdy5cbiAqL1xuXG4vKipcbiAqIEdFTkVSQUwgRkxBVFBJQ0tSIFNUWUxFU1xuICovXG5cbi5mbGF0cGlja3ItY2FsZW5kYXIge1xuICAgIC0tZmxhdHBpY2tyLWV4dHJhLXdpZHRoOiAwcHg7IC8qIFsyMV0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBsZW5ndGgtemVyby1uby11bml0ICovXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRmbGF0cGlja3Itei1pbmRleDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgd2lkdGg6ICRmbGF0cGlja3Itd2lkdGggIWltcG9ydGFudDsgLyogWzFdICovIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgaXRjc3Mvbm8tYXQtaW1wb3J0YW50ICovXG4gICAgbWF4LXdpZHRoOiAkZmxhdHBpY2tyLXdpZHRoOyAgLyogWzddICovXG4gICAgcGFkZGluZzogJGZsYXRwaWNrci1wYWRkaW5nLXZlcnRpY2FsICRmbGF0cGlja3ItcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIGJvcmRlcjogaWYoJGZsYXRwaWNrci1ib3JkZXIsICRmbGF0cGlja3ItYm9yZGVyLCBudWxsKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGZsYXRwaWNrci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBvdXRsaW5lOiAwOyAvKiBbMl0gKi9cbiAgICBvcGFjaXR5OiAwO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIEBpZiAoJGZsYXRwaWNrci1oYXMtdHJhbnNpdGlvbikge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCk7XG4gICAgfVxuICAgIEBpZiAoJGZsYXRwaWNrci1ib3JkZXItcmFkaXVzICE9IDApIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGZsYXRwaWNrci1ib3JkZXItcmFkaXVzO1xuICAgIH1cbiAgICBAaWYgKCRmbGF0cGlja3ItYm94LXNoYWRvdykge1xuICAgICAgICBib3gtc2hhZG93OiAkZmxhdHBpY2tyLWJveC1zaGFkb3c7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoJGZsYXRwaWNrci1ob3Jpem9udGFsLWJyZWFrcG9pbnQpIHsgLyogWzRdICovXG4gICAgICAgIGxlZnQ6IGltcG9ydGFudCg1MCUsIHRydWUpOyAvKiBbMV0gKi9cbiAgICAgICAgd2lkdGg6IGltcG9ydGFudCgkZmxhdHBpY2tyLXdpZHRoLWJlbG93LWJyZWFrcG9pbnQsIHRydWUpOyAvKiBbMV0gKi9cbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIH1cblxuICAgICY6bm90KC5vcGVuKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IC8qIFsxM10gKi9cbiAgICB9XG5cbiAgICAmLm9wZW4ge1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICYuaGFzV2Vla3Mge1xuICAgICAgICAtLWZsYXRwaWNrci1leHRyYS13aWR0aDogI3skZmxhdHBpY2tyLXNxdWFyZS1zaXplICsgKDIgKiAkZmxhdHBpY2tyLXNxdWFyZS1tYXJnaW4taG9yaXpvbnRhbCl9OyAvKiBbMjJdICovXG4gICAgfVxuXG4gICAgQGlmICgkZmxhdHBpY2tyLWhhcy1hcnJvdy1pbmRpY2F0b3IpIHsgLyogWzVdICovXG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogJGZsYXRwaWNrci1hcnJvdy1pbmRpY2F0b3ItaG9yaXpvbnRhbC1vZmZzZXQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBtYXJnaW46IC0oJGZsYXRwaWNrci1ib3JkZXItd2lkdGgpIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLnJpZ2h0TW9zdCxcbiAgICAgICAgJi5hcnJvd1JpZ2h0IHtcblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkZmxhdHBpY2tyLWFycm93LWluZGljYXRvci1ob3Jpem9udGFsLW9mZnNldDtcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAmLmFycm93VG9wIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsYXRwaWNrci1hcnJvdyhcImJvdHRvbVwiKTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRmbGF0cGlja3ItYXJyb3ctaW5kaWNhdG9yLWhlaWdodDtcblxuICAgICAgICAgICAgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAmLmFycm93Qm90dG9tIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsYXRwaWNrci1hcnJvdyhcInRvcFwiKTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgJi5hcnJvd0NlbnRlciB7XG4gICAgICAgICAgICByaWdodDogNTAlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmLmFycm93Qm90dG9tIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJGZsYXRwaWNrci12ZXJ0aWNhbC1vZmZzZXQtdG8tYm90dG9tOyAvKiBbMTRdICovXG4gICAgfVxuXG59XG5cbi5mbGF0cGlja3ItaW5uZXJDb250YWluZXIge1xuICAgIHdpZHRoOiBjYWxjKCN7JGZsYXRwaWNrci1pbm5lci1jb250YWluZXItd2lkdGh9ICsgdmFyKC0tZmxhdHBpY2tyLWV4dHJhLXdpZHRoKSk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeSgkZmxhdHBpY2tyLWhvcml6b250YWwtYnJlYWtwb2ludCkgeyAvKiBbNF0gKi9cbiAgICAgICAgd2lkdGg6IDEwMCU7IC8qIFsxXSAqL1xuICAgIH1cblxufVxuXG4uZmxhdHBpY2tyLWlucHV0IHtcblxuICAgICYsXG4gICAgJltyZWFkb25seV0ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuXG4gICAgICAgIH4gLmMtaW5wdXRfX2FkZG9uIC5jLWljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRmbGF0cGlja3ItaW5wdXQtaWNvbi1jb2xvci1kaXNhYmxlZDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cblxuXG4vKipcbiAqIEZMQVRQSUNLUiBJTlBVVCBXUkFQUEVSIFNUWUxFU1xuICovXG5cbi5udW1JbnB1dFdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBAaWYgKCRmbGF0cGlja3ItaGFzLXRyYW5zaXRpb24pIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigpO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpZigkZmxhdHBpY2tyLWlucHV0LXdyYXBwZXItYmFja2dyb3VuZC1jb2xvci1ob3ZlciwgJGZsYXRwaWNrci1pbnB1dC13cmFwcGVyLWJhY2tncm91bmQtY29sb3ItaG92ZXIsIG51bGwpO1xuXG4gICAgICAgIC5hcnJvd1VwLFxuICAgICAgICAuYXJyb3dEb3duIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpZigkZmxhdHBpY2tyLWlucHV0LXdyYXBwZXItYmFja2dyb3VuZC1jb2xvci1ob3ZlciwgJGZsYXRwaWNrci1pbnB1dC13cmFwcGVyLWJhY2tncm91bmQtY29sb3ItaG92ZXIsIG51bGwpO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuZmxhdHBpY2tyLW1vbnRocyAmIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogJGZsYXRwaWNrci15ZWFyLWlucHV0LXdpZHRoO1xuXG4gICAgICAgIC5hcnJvd1VwLFxuICAgICAgICAuYXJyb3dEb3duIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgICRmbGF0cGlja3IteWVhci1pY29uLXNpemUsXG4gICAgICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAxXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmlnaHQ6IC0oJGZsYXRwaWNrci15ZWFyLWljb24td3JhcHBlci13aWR0aCk7XG4gICAgICAgICAgICB3aWR0aDogJGZsYXRwaWNrci15ZWFyLWljb24td3JhcHBlci13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmZsYXRwaWNrci10aW1lICYge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAgICAgLmFycm93VXAsXG4gICAgICAgIC5hcnJvd0Rvd24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICRmb250LXNpemU6ICAgJGZsYXRwaWNrci10aW1lLWljb24tc2l6ZSxcbiAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICgkZmxhdHBpY2tyLXRpbWUtaGVpZ2h0ICogMC41KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJpZ2h0OiAkZmxhdHBpY2tyLXRpbWUtaWNvbi1zcGFjaW5nLXJpZ2h0O1xuICAgICAgICAgICAgd2lkdGg6ICgkZmxhdHBpY2tyLXRpbWUtaGVpZ2h0ICogMC41KTtcbiAgICAgICAgICAgIGNvbG9yOiAkZmxhdHBpY2tyLXRpbWUtaWNvbi1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmFycm93VXAsXG4gICAgLmFycm93RG93biB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiA1MCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGNvbG9yOiAkZmxhdHBpY2tyLWlucHV0LWljb24tY29sb3I7XG4gICAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpZigkZmxhdHBpY2tyLWlucHV0LWljb24tYmFja2dyb3VuZC1jb2xvci1ob3ZlciwgJGZsYXRwaWNrci1pbnB1dC1pY29uLWJhY2tncm91bmQtY29sb3ItaG92ZXIsIG51bGwpO1xuICAgICAgICAgICAgY29sb3I6IGlmKCRmbGF0cGlja3ItaW5wdXQtaWNvbi1jb2xvci1ob3ZlciwgJGZsYXRwaWNrci1pbnB1dC1pY29uLWNvbG9yLWhvdmVyLCBudWxsKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsgLyogWzZdICovXG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5hcnJvd1VwIHtcbiAgICAgICAgdG9wOiAwO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAkZmxhdHBpY2tyLWlucHV0LWljb24tdXA7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5hcnJvd0Rvd24ge1xuICAgICAgICBib3R0b206IDA7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRmbGF0cGlja3ItaW5wdXQtaWNvbi1kb3duO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdIHtcbiAgICAgICAgYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiBbOF0gKi9cbiAgICB9XG5cbiAgICBpbnB1dDo6LW1zLWNsZWFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgLyogWzhdICovXG4gICAgfVxuXG4gICAgaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG4gICAgaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICAgICAgICBtYXJnaW46IDA7IC8qIFs4XSAqL1xuICAgICAgICBhcHBlYXJhbmNlOiBub25lOyAgLyogWzhdICovXG4gICAgfVxuXG59XG5cbi5udW1JbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAkZmxhdHBpY2tyLXllYXItaW5wdXQtYm9yZGVyO1xuICAgIGZvbnQtd2VpZ2h0OiAkZmxhdHBpY2tyLXllYXItaW5wdXQtZm9udC13ZWlnaHQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRmbGF0cGlja3IteWVhci1pbnB1dC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGNvbG9yOiAkZmxhdHBpY2tyLWlucHV0LWNvbG9yO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuXG4gICAgLmZsYXRwaWNrci10aW1lICYge1xuICAgICAgICBmb250LXdlaWdodDogJGZsYXRwaWNrci10aW1lLWlucHV0LWZvbnQtd2VpZ2h0O1xuICAgICAgICBjb2xvcjogJGZsYXRwaWNrci10aW1lLWNvbG9yO1xuICAgIH1cblxufVxuXG5cblxuLyoqXG4gKiBGTEFUUElDS1IgTU9OVEggU1RZTEVTXG4gKi9cblxuLmZsYXRwaWNrci1tb250aHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogWzE2XSAqL1xuICAgIG1hcmdpbi1ib3R0b206ICRmbGF0cGlja3ItbW9udGgtY2FsZW5kYXItc3BhY2luZztcbn1cblxuLmZsYXRwaWNrci1tb250aCB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGgge1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShcbiAgICAgICAgJGZvbnQtc2l6ZTogJGZsYXRwaWNrci1tb250aC1mb250LXNpemVcbiAgICApO1xuICAgIGZvbnQtd2VpZ2h0OiAkZmxhdHBpY2tyLW1vbnRoLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkZmxhdHBpY2tyLW1vbnRoLWNvbG9yO1xufVxuXG4uZmxhdHBpY2tyLXByZXYtbW9udGgsXG4uZmxhdHBpY2tyLW5leHQtbW9udGgge1xuICAgIGRpc3BsYXk6IGZsZXg7IC8qIFsxOF0gKi9cbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogJGZsYXRwaWNrci1zcXVhcmUtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcblxuICAgICAgICAuYy1pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiBpZigkZmxhdHBpY2tyLW1vbnRoLWljb24tY29sb3ItaG92ZXIsICRmbGF0cGlja3ItbW9udGgtaWNvbi1jb2xvci1ob3ZlciwgbnVsbCk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICYuZmxhdHBpY2tyLWRpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogMDsgLyogWzE5XSAqL1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47IC8qIFsxOV0gKi9cbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIFsyMF0gKi9cbiAgICB9XG5cbiAgICAuYy1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkZmxhdHBpY2tyLW1vbnRoLWljb24tc2l6ZSxcbiAgICAgICAgICAgICRsaW5lLWhlaWdodDogMVxuICAgICAgICApO1xuICAgICAgICBjb2xvcjogJGZsYXRwaWNrci1tb250aC1pY29uLWNvbG9yO1xuICAgIH1cblxufVxuXG5cblxuLyoqXG4gKiBGTEFUUElDS1IgV0VFS0RBWSBTVFlMRVNcbiAqL1xuXG4uZmxhdHBpY2tyLXdlZWtkYXlzIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRmbGF0cGlja3Itd2Vla2RheXMtYmFja2dyb3VuZC1jb2xvcjtcbn1cblxuLmZsYXRwaWNrci13ZWVrZGF5Y29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uZmxhdHBpY2tyLXdlZWtkYXkge1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShcbiAgICAgICAgJGZvbnQtc2l6ZTogJGZsYXRwaWNrci13ZWVrZGF5LWZvbnQtc2l6ZSxcbiAgICAgICAgJGxpbmUtaGVpZ2h0OiAkZmxhdHBpY2tyLXdlZWtkYXktbGluZS1oZWlnaHQsXG4gICAgKTtcbiAgICB3aWR0aDogJGZsYXRwaWNrci13ZWVrZGF5LXdpZHRoO1xuICAgIGhlaWdodDogJGZsYXRwaWNrci13ZWVrZGF5LWhlaWdodDtcbiAgICBtYXJnaW46ICRmbGF0cGlja3Itc3F1YXJlLW1hcmdpbi12ZXJ0aWNhbCAkZmxhdHBpY2tyLXNxdWFyZS1tYXJnaW4taG9yaXpvbnRhbDtcbiAgICBmb250LXdlaWdodDogJGZsYXRwaWNrci13ZWVrZGF5LWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkZmxhdHBpY2tyLXdlZWtkYXktY29sb3I7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoJGZsYXRwaWNrci1ob3Jpem9udGFsLWJyZWFrcG9pbnQpIHsgLyogWzRdICovXG5cbiAgICAgICAgQGlmICgkZmxhdHBpY2tyLXNxdWFyZS1tYXJnaW4taG9yaXpvbnRhbCAhPSAwKSB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygjeyRmbGF0cGlja3Itc3F1YXJlLXNpemUtYmVsb3ctYnJlYWtwb2ludH0gLSAoMiAqICN7JGZsYXRwaWNrci1zcXVhcmUtbWFyZ2luLWhvcml6b250YWx9KSk7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoI3skZmxhdHBpY2tyLXNxdWFyZS1zaXplLWJlbG93LWJyZWFrcG9pbnR9IC0gKDIgKiAjeyRmbGF0cGlja3Itc3F1YXJlLW1hcmdpbi1ob3Jpem9udGFsfSkpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIHdpZHRoOiAkZmxhdHBpY2tyLXNxdWFyZS1zaXplLWJlbG93LWJyZWFrcG9pbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6ICRmbGF0cGlja3Itc3F1YXJlLXNpemUtYmVsb3ctYnJlYWtwb2ludDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cblxuXG4vKipcbiAqIEZMQVRQSUNLUiBEQVkgU1RZTEVTXG4gKi9cbi5mbGF0cGlja3ItZGF5cyB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgLyogWzFdICovIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgaXRjc3Mvbm8tYXQtaW1wb3J0YW50ICovXG59XG5cbi5kYXlDb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gfVxuXG4uZmxhdHBpY2tyLWRheSB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAkZm9udC1zaXplOiAkZmxhdHBpY2tyLWRheS1mb250LXNpemUsXG4gICAgICAgICRsaW5lLWhlaWdodDogJGZsYXRwaWNrci13ZWVrZGF5LWhlaWdodCxcbiAgICApO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogJGZsYXRwaWNrci1kYXktd2lkdGg7XG4gICAgaGVpZ2h0OiAkZmxhdHBpY2tyLWRheS1oZWlnaHQ7XG4gICAgbWFyZ2luOiAkZmxhdHBpY2tyLXNxdWFyZS1tYXJnaW4tdmVydGljYWwgJGZsYXRwaWNrci1zcXVhcmUtbWFyZ2luLWhvcml6b250YWw7XG4gICAgYm9yZGVyLXJhZGl1czogJGZsYXRwaWNrci1kYXktYm9yZGVyLXJhZGl1cztcbiAgICBmb250LXdlaWdodDogJGZsYXRwaWNrci1kYXktZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRmbGF0cGlja3ItZGF5LWNvbG9yO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBAaWYgKCRmbGF0cGlja3ItaGFzLXRyYW5zaXRpb24pIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KCRmbGF0cGlja3ItaG9yaXpvbnRhbC1icmVha3BvaW50KSB7IC8qIFs0XSAqL1xuXG4gICAgICAgIEBpZiAoJGZsYXRwaWNrci1zcXVhcmUtbWFyZ2luLWhvcml6b250YWwgIT0gMCkge1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skZmxhdHBpY2tyLXNxdWFyZS1zaXplLWJlbG93LWJyZWFrcG9pbnR9IC0gKDIgKiAjeyRmbGF0cGlja3Itc3F1YXJlLW1hcmdpbi1ob3Jpem9udGFsfSkpO1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKCN7JGZsYXRwaWNrci1zcXVhcmUtc2l6ZS1iZWxvdy1icmVha3BvaW50fSAtICgyICogI3skZmxhdHBpY2tyLXNxdWFyZS1tYXJnaW4taG9yaXpvbnRhbH0pKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICB3aWR0aDogJGZsYXRwaWNrci1zcXVhcmUtc2l6ZS1iZWxvdy1icmVha3BvaW50O1xuICAgICAgICAgICAgaGVpZ2h0OiAkZmxhdHBpY2tyLXNxdWFyZS1zaXplLWJlbG93LWJyZWFrcG9pbnQ7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBmb250LXdlaWdodDogJGZsYXRwaWNrci1kYXktZm9udC13ZWlnaHQtaG92ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmbGF0cGlja3ItZGF5LWJhY2tncm91bmQtY29sb3ItaG92ZXI7XG4gICAgICAgIGNvbG9yOiAkZmxhdHBpY2tyLWRheS1jb2xvci1ob3ZlcjtcbiAgICB9XG5cbiAgICAmLmluUmFuZ2Uge1xuICAgICAgICBmb250LXdlaWdodDogJGZsYXRwaWNrci1kYXktcmFuZ2UtZm9udC13ZWlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmbGF0cGlja3ItZGF5LXJhbmdlLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIGNvbG9yOiAkZmxhdHBpY2tyLWRheS1yYW5nZS1jb2xvcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmbGF0cGlja3ItZGF5LXJhbmdlLWhvdmVyLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICBjb2xvcjogJGZsYXRwaWNrci1kYXktcmFuZ2UtaG92ZXItY29sb3I7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICYuc3RhcnRSYW5nZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmbGF0cGlja3ItZGF5LXJhbmdlLWJhY2tncm91bmQtY29sb3Itc3RhcnQ7XG4gICAgICAgIGNvbG9yOiAkZmxhdHBpY2tyLWRheS1yYW5nZS1jb2xvci1zdGFydDtcbiAgICB9XG5cbiAgICAmLmVuZFJhbmdlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZsYXRwaWNrci1kYXktcmFuZ2UtYmFja2dyb3VuZC1jb2xvci1lbmQ7XG4gICAgICAgIGNvbG9yOiAkZmxhdHBpY2tyLWRheS1yYW5nZS1jb2xvci1lbmQ7XG4gICAgfVxuXG4gICAgJi5mbGF0cGlja3ItZGlzYWJsZWQge1xuICAgICAgICBjb2xvcjogJGZsYXRwaWNrci1kYXktY29sb3ItZGlzYWJsZWQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgIC8vIHN0cmlrZS10aHJvdWdoXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgIHRvcDogNTAlOyAvKiBbMTddICovXG4gICAgICAgICAgICBsZWZ0OiA1MCU7IC8qIFsxN10gKi9cbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRmbGF0cGlja3ItZGF5LWRpc2FibGVkLXN0cmlrZXRocm91Z2gtd2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6ICRmbGF0cGlja3ItZGF5LWRpc2FibGVkLXN0cmlrZXRocm91Z2gtaGVpZ2h0O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoJGZsYXRwaWNrci1kYXktZGlzYWJsZWQtc3RyaWtldGhyb3VnaC1yb3RhdGlvbikgdHJhbnNsYXRlKC01MCUsIC01MCUpOyAvKiBbMTddICovXG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwOyAvKiBbMTddICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmxhdHBpY2tyLWRheS1kaXNhYmxlZC1zdHJpa2V0aHJvdWdoLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4gICAgJjpub3QoLmluUmFuZ2UpOm5vdCguc3RhcnRSYW5nZSk6bm90KC5lbmRSYW5nZSk6bm90KC5zZWxlY3RlZCk6bm90KDpob3Zlcik6bm90KDpmb2N1cykgeyAvKiBbMTJdICovXG5cbiAgICAgICAgJi5wcmV2TW9udGhEYXksXG4gICAgICAgICYubmV4dE1vbnRoRGF5IHtcbiAgICAgICAgICAgIGNvbG9yOiAkZmxhdHBpY2tyLWRheS1vdGhlci1tb250aC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgfVxuICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuICAgICYudG9kYXk6bm90KC5mbGF0cGlja3ItZGlzYWJsZWQpIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRmbGF0cGlja3ItZGF5LXRvZGF5LWZvbnQtd2VpZ2h0O1xuICAgICAgICBAaWYgKCRmbGF0cGlja3ItZGF5LXRvZGF5LWJvcmRlcikge1xuICAgICAgICAgICAgYm9yZGVyOiAkZmxhdHBpY2tyLWRheS10b2RheS1ib3JkZXI7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICgkZmxhdHBpY2tyLWRheS10b2RheS1jb2xvcikge1xuICAgICAgICAgICAgY29sb3I6ICRmbGF0cGlja3ItZGF5LXRvZGF5LWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmbGF0cGlja3ItZGF5LXRvZGF5LWJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuXG4gICAgJi5zZWxlY3RlZDpub3QoLmZsYXRwaWNrci1kaXNhYmxlZCkge1xuICAgICAgICBmb250LXdlaWdodDogJGZsYXRwaWNrci1kYXktZm9udC13ZWlnaHQtc2VsZWN0ZWQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmbGF0cGlja3ItZGF5LWJhY2tncm91bmQtY29sb3Itc2VsZWN0ZWQ7XG4gICAgICAgIGNvbG9yOiAkZmxhdHBpY2tyLWRheS1jb2xvci1zZWxlY3RlZDtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IDA7IC8qIFszXSAqL1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZsYXRwaWNrci1kYXktYmFja2dyb3VuZC1jb2xvci1zZWxlY3RlZC1ob3ZlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkZmxhdHBpY2tyLWRheS1jb2xvci1zZWxlY3RlZC1ob3ZlcjtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cblxuXG4vKipcbiAqIEZMQVRQSUNLUiBXRUVLIE5VTUJFUlNcbiAqL1xuLmZsYXRwaWNrci13ZWVrd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbMjNdICovXG5cbiAgICAmOjpiZWZvcmUgeyAvKiBbMjRdICovXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiBjYWxjKCgjeyRmbGF0cGlja3Itd2Vla2RheS1oZWlnaHR9IC0gI3skZmxhdHBpY2tyLWRheS1mb250LXNpemV9KSAvIDIpOyAvKiBbMjVdICovXG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGJvcmRlci1yaWdodDogJGZsYXRwaWNrci13ZWVrLW51bWJlcnMtYm9yZGVyLXdpZHRoIHNvbGlkICRmbGF0cGlja3Itd2Vlay1udW1iZXJzLWJvcmRlci1jb2xvcjtcbiAgICB9XG5cblxuICAgIC5mbGF0cGlja3Itd2Vla2RheSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogJGZsYXRwaWNrci1zcXVhcmUtc2l6ZTtcbiAgICB9XG5cbiAgICAuZmxhdHBpY2tyLWRheSB7XG4gICAgICAgICYsICY6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICRmb250LXNpemU6ICRmbGF0cGlja3Itd2Vlay1udW1iZXJzLWZvbnQtc2l6ZSxcbiAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6IGZhbHNlLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRmbGF0cGlja3Itd2Vlay1udW1iZXJzLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgY29sb3I6ICRmbGF0cGlja3Itd2Vlay1udW1iZXJzLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuZmxhdHBpY2tyLXdlZWtzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbn1cblxuXG5cbi8qKlxuICogRkxBVFBJQ0tSIFRJTUUgU1RZTEVTXG4gKi9cblxuLmZsYXRwaWNrci10aW1lIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbjogI3stKCRmbGF0cGlja3ItcGFkZGluZy12ZXJ0aWNhbCl9ICN7LSgkZmxhdHBpY2tyLXBhZGRpbmctaG9yaXpvbnRhbCl9OyAvKiBbMTBdICovXG4gICAgY29sb3I6ICRmbGF0cGlja3ItdGltZS1jb2xvcjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiAwOyAvKiBbOV0gKi9cbiAgICB9XG5cbn1cblxuLmZsYXRwaWNrci1ob3VyLFxuLmZsYXRwaWNrci1taW51dGUsXG4uZmxhdHBpY2tyLXNlY29uZCB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAkZm9udC1zaXplOiAgICRmbGF0cGlja3ItdGltZS1mb250LXNpemUsXG4gICAgICAgICRsaW5lLWhlaWdodDogJGZsYXRwaWNrci10aW1lLWhlaWdodCAvKiBbMTFdICovXG4gICAgKTtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZmxleC1zaHJpbms6IDE7XG4gICAgZmxleC1iYXNpczogYXV0bztcbiAgICB3aWR0aDogMTAwJTsgLyogWzEwXSAqL1xuICAgIGJvcmRlcjogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIge1xuICAgICAgICBvdXRsaW5lOiAwO1xuICAgIH1cblxufVxuXG4uZmxhdHBpY2tyLXRpbWUtc2VwYXJhdG9yIHtcbiAgICBsaW5lLWhlaWdodDogJGZsYXRwaWNrci10aW1lLWhlaWdodDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLmZsYXRwaWNrci1hbS1wbSB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAkZm9udC1zaXplOiAgICRmbGF0cGlja3ItdGltZS1mb250LXNpemUsXG4gICAgICAgICRsaW5lLWhlaWdodDogJGZsYXRwaWNrci10aW1lLWhlaWdodCAvKiBbMTFdICovXG4gICAgKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtaW4td2lkdGg6ICRmbGF0cGlja3ItdGltZS1hbS1wbS1taW4td2lkdGg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGlmKCRmbGF0cGlja3ItaW5wdXQtd3JhcHBlci1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyLCAkZmxhdHBpY2tyLWlucHV0LXdyYXBwZXItYmFja2dyb3VuZC1jb2xvci1ob3ZlciwgbnVsbCk7XG4gICAgfVxuXG59XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjRkxBVFBJQ0tSIChTZXR0aW5ncylcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kZmxhdHBpY2tyLXNxdWFyZS1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgMzRweCAhZGVmYXVsdDtcbiRmbGF0cGlja3Itc3F1YXJlLW1hcmdpbi1ob3Jpem9udGFsOiAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YWFNNQUxMICFkZWZhdWx0O1xuJGZsYXRwaWNrci1zcXVhcmUtbWFyZ2luLXZlcnRpY2FsOiAgICAgICAgICAgICAgICRmbGF0cGlja3Itc3F1YXJlLW1hcmdpbi1ob3Jpem9udGFsICFkZWZhdWx0O1xuXG4kZmxhdHBpY2tyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1CT1JERVItUkFESVVTLVNNQUxMICFkZWZhdWx0O1xuJGZsYXRwaWNrci1ib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgICAgICAgICAgICREUk9QLVNIQURPVy1TICFkZWZhdWx0O1xuJGZsYXRwaWNrci1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJGZsYXRwaWNrci1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuXG4kZmxhdHBpY2tyLWlucHV0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcbiRmbGF0cGlja3ItaW5wdXQtaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkZmxhdHBpY2tyLWlucHV0LWNvbG9yICFkZWZhdWx0O1xuJGZsYXRwaWNrci1pbnB1dC1pY29uLWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtTEFCRUwtQ09MT1ItRElTQUJMRUQgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWlucHV0LXdyYXBwZXItYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogZmFsc2UgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWlucHV0LWljb24tYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogICAgJENPTE9SLVNVUkZBQ0UtUFJJTUFSWSAhZGVmYXVsdDtcbiRmbGF0cGlja3ItaW5wdXQtaWNvbi1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcblxuJGZsYXRwaWNrci15ZWFyLWlucHV0LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtUkVHVUxBUiAhZGVmYXVsdDtcblxuJGZsYXRwaWNrci1tb250aC1jYWxlbmRhci1zcGFjaW5nOiAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuXG4kZmxhdHBpY2tyLW1vbnRoLWljb24tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKHhzbWFsbCkgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLW1vbnRoLWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcbiRmbGF0cGlja3ItbW9udGgtaWNvbi1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRmbGF0cGlja3ItbW9udGgtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICBtYXAtZ2V0KCRGUzEsIG51bGwpICFkZWZhdWx0O1xuXG4kZmxhdHBpY2tyLWRheS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcbiRmbGF0cGlja3ItZGF5LWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgICAgICAgICAkQ09MT1ItT04tU1VSRkFDRS0zMDAgIWRlZmF1bHQ7XG4kZmxhdHBpY2tyLWRheS1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiAgICAgICAgICAgJENPTE9SLVNVUkZBQ0UtUFJJTUFSWSAhZGVmYXVsdDtcbiRmbGF0cGlja3ItZGF5LWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICBtYXAtZ2V0KCRGUzAsIG51bGwpICFkZWZhdWx0O1xuJGZsYXRwaWNrci1kYXktYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgICAgIDUwJSAhZGVmYXVsdDtcbiRmbGF0cGlja3ItZGF5LXJhbmdlLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAkQ09MT1ItQlJBTkQtU0VDT05EQVJZLUhPVkVSICFkZWZhdWx0O1xuJGZsYXRwaWNrci1kYXktcmFuZ2UtaG92ZXItYmFja2dyb3VuZC1jb2xvcjogICAgICRDT0xPUi1TVVJGQUNFLVBSSU1BUlkgIWRlZmF1bHQ7XG5cbiRmbGF0cGlja3ItZGF5LXRvZGF5LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAkZmxhdHBpY2tyLWRheS1jb2xvciAhZGVmYXVsdDtcbiRmbGF0cGlja3ItZGF5LXRvZGF5LWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICBjdXJyZW50Q29sb3IgIWRlZmF1bHQ7XG5cbiRmbGF0cGlja3ItZGF5LWRpc2FibGVkLXN0cmlrZXRocm91Z2gtd2lkdGg6ICAgICAyNXB4ICFkZWZhdWx0O1xuXG4kZmxhdHBpY2tyLXdlZWtkYXktZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1SRUdVTEFSICFkZWZhdWx0O1xuXG4kZmxhdHBpY2tyLXRpbWUtaW5wdXQtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1MQUJFTC1GT05ULVdFSUdIVCAhZGVmYXVsdDtcbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNGT1JNUyAoU2V0dGluZ3MpXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJEdMT0JBTC1JTlBVVC1IRUlHSFQ6ICAgICAgICAgICAgICAgICAgICA1NnB4ICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1QQURESU5HLUhPUklaT05UQUw6ICAgICAgICAkX19TS09EQS1TUEFDSU5HLVNUQVRJQy0xMl9fICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1QQURESU5HLVZFUlRJQ0FMOiAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJBQ0tHUk9VTkQ6ICAgICAgICAgICAgICAgIHJnYmEoJENPTE9SLU9OLVNVUkZBQ0UtOTAwLCAwLjA2KSAhZGVmYXVsdDtcblxuJEdMT0JBTC1JTlBVVC1CT1JERVItV0lEVEgtRk9DVVM6ICAgICAgICAycHggIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJPUkRFUi1XSURUSC1FUlJPUjogICAgICAgIDJweCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQk9SREVSLUNPTE9SOiAgICAgICAgICAgICAgJENPTE9SLU9OLVNVUkZBQ0UtNjAwICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1CT1JERVItQ09MT1ItSE9WRVI6ICAgICAgICAkQ09MT1ItT04tU1VSRkFDRS05MDAgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJPUkRFUi1DT0xPUi1GT0NVUzogICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQk9SREVSLUNPTE9SLVJFQURPTkxZOiAgICAgJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1CT1JERVItQ09MT1ItRklMTEVEOiAgICAgICAkQ09MT1ItT04tU1VSRkFDRS03MDAgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJPUkRFUi1SQURJVVM6ICAgICAgICAgICAgICRHTE9CQUwtQk9SREVSLVJBRElVUy1TTUFMTCAhZGVmYXVsdDtcblxuJEdMT0JBTC1JTlBVVC1GT05ULUNPTE9SOiAgICAgICAgICAgICAgICAkQ09MT1ItQkFTRS1URVhUICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1GT05ULUNPTE9SLVBMQUNFSE9MREVSOiAgICAkQ09MT1ItT04tU1VSRkFDRS02MDAgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUZPTlQtQ09MT1ItUkVBRE9OTFk6ICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUZPTlQtV0VJR0hUOiAgICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtUkVHVUxBUiAhZGVmYXVsdDtcblxuJEdMT0JBTC1JTlBVVC1MQUJFTC1TSVpFOiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRGUy0yLCBudWxsKSAhZGVmYXVsdDsgLy8gb3B0LW91dCBvZiByZXNwb25zaXZlIHNpemVcbiRHTE9CQUwtSU5QVVQtTEFCRUwtU1BBQ0lORzogICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1MQUJFTC1GT05ULVdFSUdIVDogICAgICAgICAkR0xPQkFMLUlOUFVULUZPTlQtV0VJR0hUICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1MQUJFTC1DT0xPUjogICAgICAgICAgICAgICAkQ09MT1ItT04tU1VSRkFDRS02MDAgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUxBQkVMLUNPTE9SLUhPVkVSOiAgICAgICAgICRDT0xPUi1PTi1TVVJGQUNFLTkwMCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtTEFCRUwtQ09MT1ItRk9DVVM6ICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1MQUJFTC1DT0xPUi1BQ1RJVkU6ICAgICAgICAkQ09MT1ItT04tU1VSRkFDRS05MDAgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUxBQkVMLUNPTE9SLURJU0FCTEVEOiAgICAgICRDT0xPUi1JTkFDVElWRSAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtTEFCRUwtQ09MT1ItUkVBRE9OTFk6ICAgICAgJEdMT0JBTC1JTlBVVC1MQUJFTC1DT0xPUi1BQ1RJVkUgIWRlZmF1bHQ7XG5cbiRHTE9CQUwtSU5QVVQtQURET04tUEFERElORy1IT1JJWk9OVEFMOiAgJEdMT0JBTC1JTlBVVC1QQURESU5HLUhPUklaT05UQUwgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUFERE9OLUJBQ0tHUk9VTkQ6ICAgICAgICAgICRHTE9CQUwtSU5QVVQtQkFDS0dST1VORCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQURET04tQkFDS0dST1VORC1ESVNBQkxFRDogJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1BRERPTi1GT05ULUNPTE9SOiAgICAgICAgICAkR0xPQkFMLUlOUFVULUZPTlQtQ09MT1IgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUFERE9OLUZPTlQtQ09MT1ItTk8tQkc6ICAgICRHTE9CQUwtSU5QVVQtQURET04tRk9OVC1DT0xPUiAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQURET04tRk9OVC1DT0xPUi1ESVNBQkxFRDogJENPTE9SLUlOQUNUSVZFLVNFQ09OREFSWSAhZGVmYXVsdDtcblxuJEdMT0JBTC1JTlBVVC1BRERPTi1JQ09OLVNJWkU6ICAgICAgICAgICB4c21hbGwgIWRlZmF1bHQ7XG5cbiRHTE9CQUwtSU5QVVQtVEVYVEFSRUEtUEFERElORy1WRVJUSUNBTDogJEdMT0JBTC1JTlBVVC1QQURESU5HLVZFUlRJQ0FMICFkZWZhdWx0O1xuXG4vLyBBZGp1c3QgaGVpZ2h0IHRvIGFsbG93IFwiZmFrZVwiIHBvc2l0aW9uaW5nIHN0YXRpYyBsYWJlbCBpbnNpZGUgdmlzdWFsIGNvbnRhaW5lci5cbiRHTE9CQUwtSU5QVVQtSEVJR0hULVNUQVRJQy1MQUJFTDogICAgICAgKCRHTE9CQUwtSU5QVVQtSEVJR0hUIC0gJEdMT0JBTC1JTlBVVC1MQUJFTC1TSVpFIC0gJEdMT0JBTC1JTlBVVC1MQUJFTC1TUEFDSU5HKSAhZGVmYXVsdDtcblxuJEdMT0JBTC1JTlBVVC1PUFRJT04tQ09MT1ItRElTQUJMRUQ6ICAgICAkQ09MT1ItSU5BQ1RJVkUgIWRlZmF1bHQ7XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjRkxBVFBJQ0tSLU9WRVJSSURFU1xuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRmbGF0cGlja3ItZGF0ZXBpY2tlci1kcm9wZG93bi1pbnB1dC1vZmZzZXQ6ICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBBbGxvdyB0byBhZGQgYHBhZGRpbmdgIHRvIHNpemUgdG8gYXZvaWQgc2hpZnQgb2YgZGF0ZXMgaW4gY2FsZW5kYXIgbGF5b3V0LlxuICogWzJdIFJlbW92ZSBcImdhcFwiLCBhbmQgXCJyZXN0b3JlXCIgYnkgdXNpbmcgYHBhZGRpbmdgIHRvIGhhdmUgYSBnYXAtbGVzcyByYW5nZS5cbiAqIFszXSBBZGQgYWRkaXRpb25hbCBcInNxdWFyZVwiIGJhY2tncm91bmQgZm9yIHN0YXJ0ICYgZW5kLlxuICogWzRdIE92ZXJsYXAgdG8gY3JlYXRlIHNlYW1sZXNzIHJhbmdlIHN0eWxlLlxuICogWzVdIEFkZGl0aW9uYWwgYmFja2dyb3VuZCBvbmx5IHRvIHNpZGUgdG93YXJkcyBpbi1yYW5nZSBpdGVtcy5cbiAqIFs2XSBJblJhbmdlLVN0YXJ0IGJhY2tncm91bmQgb25seSB3aGVuIHJhbmdlcyBhcmUgc2VsZWN0ZWQgb3IgZW5kRGF0ZSBpc1xuICogICAgIGZvbGxvd2VkIGRpcmVjdGx5IGJ5IHN0YXJ0RGF0ZSAodGhlIGZvbGxvd2luZyBkYXkpLlxuICogICAgIGA6aGFzYCBpcyB1c2VkIGFzIGEgcHJvZ3Jlc3NpdmUgZW5oYW5jZW1lbnQgdG8gYXZvaWQgXCJjdXRvZmZcIiBzdGFydC9lbmRcbiAqICAgICByYW5nZSBvbiBkYXRlcy4gRm9yIG5vbiBgOmhhc2AgZmFsbGJhY2sgc2VlIGZhbGxiYWNrIGxheWVyLlxuICogWzddIFJlc2V0IGRlZmF1bHQuXG4gKiBbOF0gU2hvdyBjb250cm9scyBpbiBhY3R1YWwgc2l6ZSAoaWNvbi1zaXplIHggaWNvbi1zaXplKSwgbm90IGxpbWl0ZWQgc2l6ZS5cbiAqIFs5XSBJbXByb3ZlIHNwYWNlIGRpc3RyaWJ1dGlvbiB3aGVuIG1vbnRoIHNlbGVjdGlvblxuICogICAgIGlzIGRvbmUgdmlhIGA8c2VsZWN0PmAgKGAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzYCkuXG4gKiBbMTBdIFNlbGVjdG9ycyBjYW4gbm90IGJlIGNoYWluZWQgKGxpbWl0YXRpb24gb2YgYGJ1dHRvbi1pY29uLXN0YXRlcygpYCBtaXhpbikuXG4gKi9cblxuLmZsYXRwaWNrci1kYXkge1xuXG4gICAgJi5pblJhbmdlOm5vdCguc3RhcnRSYW5nZSwgLmVuZFJhbmdlKSB7XG4gICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiBbMV0gKi9cbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7IC8qIFsyXSAqL1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IC8qIFsyXSAqL1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRmbGF0cGlja3Itc3F1YXJlLW1hcmdpbi1ob3Jpem9udGFsOyAvKiBbMl0gKi9cbiAgICAgICAgcGFkZGluZy1yaWdodDogJGZsYXRwaWNrci1zcXVhcmUtbWFyZ2luLWhvcml6b250YWw7IC8qIFsyXSAqL1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cblxuICAgICYuc3RhcnRSYW5nZSxcbiAgICAmLmVuZFJhbmdlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC8qIFszXSAqL1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBbNl0gKi9cbiAgICAmLnN0YXJ0UmFuZ2U6aGFzKCsgLmluUmFuZ2UpLFxuICAgICYuc3RhcnRSYW5nZTpoYXMoKyAuZW5kUmFuZ2UpIHtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZsYXRwaWNrci1kYXktcmFuZ2UtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLyogWzZdICovXG4gICAgJi5zdGFydFJhbmdlICsgLmVuZFJhbmdlLFxuICAgICYuaW5SYW5nZSArIC5lbmRSYW5nZSB7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmbGF0cGlja3ItZGF5LXJhbmdlLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICYuc3RhcnRSYW5nZSB7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTsgLyogWzVdICovXG4gICAgICAgICAgICByaWdodDogLSgkZmxhdHBpY2tyLXNxdWFyZS1tYXJnaW4taG9yaXpvbnRhbCk7IC8qIFs0XSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmLmVuZFJhbmdlIHtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgbGVmdDogLSgkZmxhdHBpY2tyLXNxdWFyZS1tYXJnaW4taG9yaXpvbnRhbCk7IC8qIFs0XSAqL1xuICAgICAgICAgICAgcmlnaHQ6IDUwJTsgLyogWzVdICovXG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG4vKiBbMTBdICovXG4uZmxhdHBpY2tyLXByZXYtbW9udGgge1xuXG4gICAgLmMtaWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1pY29uLXN0YXRlcyhcbiAgICAgICAgICAgICRmb2N1cy1zdGF0ZTogZmFsc2UsIC8vIEZsYXRwaWNrciBidXR0b25zIG5vdCBrZXlib2FyZCBhY2Nlc3NpYmxlLlxuICAgICAgICApO1xuICAgIH1cblxufVxuXG4vKiBbMTBdICovXG4uZmxhdHBpY2tyLW5leHQtbW9udGgge1xuXG4gICAgLmMtaWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1pY29uLXN0YXRlcyhcbiAgICAgICAgICAgICRmb2N1cy1zdGF0ZTogZmFsc2UsIC8vIEZsYXRwaWNrciBidXR0b25zIG5vdCBrZXlib2FyZCBhY2Nlc3NpYmxlLlxuICAgICAgICApO1xuICAgIH1cblxufVxuXG4vKiBbOF0gKi9cbi5udW1JbnB1dFdyYXBwZXIge1xuXG4gICAgLmZsYXRwaWNrci1tb250aHMgJiB7XG5cbiAgICAgICAgLmFycm93VXAsXG4gICAgICAgIC5hcnJvd0Rvd24ge1xuICAgICAgICAgICAgcmlnaHQ6IGF1dG87IC8qIFs3XSAqL1xuICAgICAgICAgICAgbGVmdDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFycm93VXAge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFycm93RG93biB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTAlKTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRocyB+ICYge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRmbGF0cGlja3ItZGF0ZXBpY2tlci1kcm9wZG93bi1pbnB1dC1vZmZzZXQ7IC8qIFs5XSAqL1xuICAgIH1cblxufVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0JVVFRPTi1JQ09OLVNUQVRFU1xuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8vLyBDcmVhdGUgc3RhdGUtYmFzZWQgc3R5bGVzIGZvciBpbnRlcmFjdGl2ZSBpY29uIGJ1dHRvbnMuXG4vLy8gU2VlIGV4YW1wbGVzIGZvciB1c2FnZSBhbmQgY29uZmlndXJhdGlvbiBpbiB1bml0LXRlc3QgKGBfdG9vbHMuYnV0dG9uLWljb24tc3RhdGVzLnNwZWMuc2Nzc2ApLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbXCI6OmFmdGVyXCJdIEVsZW1lbnQgc2VsZWN0b3IgdG8gYXBwbHkgc3R5bGVzIHRvLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkY29udGV4dC1zZWxlY3RvciBbbnVsbF0gSWYgdGhlIHN0YXRlIGlzIGhhbmRsZWQgdmlhIGEgZGlmZmVyZW50IGVsZW1lbnQgKGNvbnRleHQpLCB0aGUgZWxlbWVudCBjYW4gYmUgc2V0IGFuZCB0aGUgYnV0dG9uIGlzIHN0eWxlZCBiYXNlZCBvbiB0aGUgY29udGV4dCBzdGF0ZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgWyRCVVRUT04tSUNPTi1JTlRFUkFDVElPTi1TSVpFXSBTaXplIGZvciBiYWNrZ3JvdW5kIGNpcmNsZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1jb2xvci1ob3ZlciBbJEJVVFRPTi1JQ09OLUlOVEVSQUNUSU9OLUJBQ0tHUk9VTkQtQ09MT1ItSE9WRVItT04tTElHSFRdIFNldCBgYmFja2dyb3VuZC1jb2xvcmAgZm9yIGJhY2tncm91bmQgY2lyY2xlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZvY3VzLXN0YXRlIFt0cnVlXSBTZXQgZGVmYXVsdCBmb2N1cyBzdHlsZXMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRmb2N1cy10eXBlIFtcImZvY3VzLXZpc2libGVcIl0gQ29udHJvbCBmb2N1cyBzdHlsZSAoXCJmb2N1c1wiIHwgXCJmb2N1cy12aXNpYmxlXCIgfCBcImZvY3VzLXdpdGhpblwiKS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkZm9jdXMtb3V0bGluZS1jb2xvciBbJEdMT0JBTC1GT0NVUy1DT0xPUl0gQ29sb3IgZm9yIGZvY3VzIG91dGxpbmUuIFBhc3NlZCB0byBgZm9jdXMtc3R5bGVzKClgIG1peGluLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGFjdGl2ZS1zdGF0ZSBbdHJ1ZV0gU2V0IGFjdGl2ZSBzdGF0ZSBmb3Igc2NhbGluZy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGFjdGl2ZS1zY2FsZSBbJEJVVFRPTi1TQ0FMRS1BQ1RJVkVdIENvbnRyb2wgc2NhbGluZyB2YWx1ZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHotaW5kZXggWy0xXSBCYWNrZ3JvdW5kIGJlaGluZCBidXR0b24uIENhbiBiZSBhZGp1c3RlZCB0byBhdm9pZCBzdGFja2luZyBpc3N1ZXMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaGFuZGxlLXBvc2l0aW9uIFt0cnVlXSBIYW5kbGUgcG9zaXRpb25pbmcgb24gZWxlbWVudCB2aWEgZmxleGJveC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRoYW5kbGUtdHJhbnNpdGlvbiBbdHJ1ZV0gSGFuZGxlIHRyYW5zaXRpb24gd2l0aGluIG1peGluIG9uIGVsZW1lbnQgYW5kIHBzZXVkby1lbGVtZW50LiBPcHQtb3V0IHZpYSBgZmFsc2VgIHRvIGhhbmRsZSB0cmFuc2l0aW9uIGluZGl2aWR1YWxseS5cbkBtaXhpbiBidXR0b24taWNvbi1zdGF0ZXMoXG4gICAgJHNlbGVjdG9yOiAgICAgICAgICAgICAgIFwiOjphZnRlclwiLFxuICAgICRjb250ZXh0LXNlbGVjdG9yOiAgICAgICBudWxsLFxuICAgICRzaXplOiAgICAgICAgICAgICAgICAgICAkQlVUVE9OLUlDT04tSU5URVJBQ1RJT04tU0laRSxcbiAgICAkYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogJEJVVFRPTi1JQ09OLUlOVEVSQUNUSU9OLUJBQ0tHUk9VTkQtQ09MT1ItSE9WRVItT04tTElHSFQsXG4gICAgJGZvY3VzLXN0YXRlOiAgICAgICAgICAgIHRydWUsXG4gICAgJGZvY3VzLXR5cGU6ICAgICAgICAgICAgIFwiZm9jdXMtdmlzaWJsZVwiLFxuICAgICRmb2N1cy1vdXRsaW5lLWNvbG9yOiAgICAkR0xPQkFMLUZPQ1VTLUNPTE9SLFxuICAgICRhY3RpdmUtc3RhdGU6ICAgICAgICAgICB0cnVlLFxuICAgICRhY3RpdmUtc2NhbGU6ICAgICAgICAgICAkQlVUVE9OLVNDQUxFLUFDVElWRSxcbiAgICAkei1pbmRleDogICAgICAgICAgICAgICAgLTEsXG4gICAgJGhhbmRsZS1wb3NpdGlvbjogICAgICAgIHRydWUsXG4gICAgJGhhbmRsZS10cmFuc2l0aW9uOiAgICAgIHRydWUsXG4pIHtcblxuICAgIC8vIERldGVybWluZSB3aGljaCBzZWxlY3RvciBjb250cm9scyB0aGUgc3RhdGUuXG4gICAgLy8gVXNlIGAkY29udGV4dC1zZWxlY3RvcmAgd2hlbiBzZXQsIG90aGVyd2lzZSB1c2UgdGhlIGJ1dHRvbiAobWl4aW4gY29udGV4dCB2aWEgcGFyZW50IHNlbGVjdG9yIGAmYCkuXG4gICAgJF9zdGF0ZS1jb250cm9sbGVyOiBpZigkY29udGV4dC1zZWxlY3RvciwgJGNvbnRleHQtc2VsZWN0b3IsICYpO1xuXG4gICAgLy8gQ29uZGl0aW9uYWxseSBzZXQgdGhlIGJ1dHRvbiBzZWxlY3RvciBiYXNlZCBvbiBzZXQgYCRjb250ZXh0LXNlbGVjdG9yYC5cbiAgICAvLyBJZiBubyBjb250ZXh0IGlzIHNldCwgdXNlIGFuIGVtcHR5IHNlbGVjdG9yIChgbnVsbGApIHRvIGF2b2lkIHNlbGVjdG9yIGNoYWluaW5nIChgLmJ1dHRvbiAuYnV0dG9uYCkuXG4gICAgJF9idXR0b246IGlmKCRjb250ZXh0LXNlbGVjdG9yLCAmLCBudWxsKTtcblxuICAgIEBpbmNsdWRlIGRpc2FibGUtdG91Y2gtaGlnaGxpZ2h0KCk7XG5cbiAgICBAaWYgKCRoYW5kbGUtdHJhbnNpdGlvbikge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCk7XG4gICAgfVxuXG4gICAgQGlmICgkaGFuZGxlLXBvc2l0aW9uKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmI3skc2VsZWN0b3J9IHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAkei1pbmRleDtcbiAgICAgICAgd2lkdGg6ICRzaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaXplO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIHRyYW5zaXRpb246IGlmKCRoYW5kbGUtdHJhbnNpdGlvbiwgaW5oZXJpdCwgbnVsbCk7XG4gICAgfVxuXG4gICAgQGF0LXJvb3QgI3skX3N0YXRlLWNvbnRyb2xsZXJ9OmhvdmVyICN7JF9idXR0b259IHtcblxuICAgICAgICAmI3skc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yLWhvdmVyO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBAaWYgKCRmb2N1cy1zdGF0ZSkge1xuXG4gICAgICAgIEBhdC1yb290ICN7JF9zdGF0ZS1jb250cm9sbGVyfTojeyRmb2N1cy10eXBlfSAjeyRfYnV0dG9ufSB7XG5cbiAgICAgICAgICAgICYjeyRzZWxlY3Rvcn0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvY3VzLXN0eWxlcyhcbiAgICAgICAgICAgICAgICAgICAgJG91dGxpbmUtb2Zmc2V0OiAwLFxuICAgICAgICAgICAgICAgICAgICAkb3V0bGluZS1jb2xvcjogJGZvY3VzLW91dGxpbmUtY29sb3IsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBAaWYgKCRhY3RpdmUtc3RhdGUpIHtcbiAgICAgICAgc2NhbGU6IDE7XG5cbiAgICAgICAgQGF0LXJvb3QgI3skX3N0YXRlLWNvbnRyb2xsZXJ9OmFjdGl2ZSAjeyRfYnV0dG9ufSB7XG4gICAgICAgICAgICBzY2FsZTogJGFjdGl2ZS1zY2FsZTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEFuaW1hdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBrZXlmcmFtZXMgcGx5ci1wcm9ncmVzcyB7XG4gIHRvIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkcGx5ci1wcm9ncmVzcy1sb2FkaW5nLXNpemUgMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHBseXItcG9wdXAge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHBseXItZmFkZS1pbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEJhc2Ugc3R5bGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gQmFzZVxuLnBseXIge1xuICBAaW5jbHVkZSBwbHlyLWZvbnQtc21vb3RoaW5nKCRwbHlyLWZvbnQtc21vb3RoaW5nKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlyZWN0aW9uOiBsdHI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZvbnQtZmFtaWx5OiAkcGx5ci1mb250LWZhbWlseTtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsgLy8gRm9yY2UgbW9ub3NhY2UtZXNxdWUgbnVtYmVyIHdpZHRoc1xuICBmb250LXdlaWdodDogJHBseXItZm9udC13ZWlnaHQtcmVndWxhcjtcbiAgbGluZS1oZWlnaHQ6ICRwbHlyLWxpbmUtaGVpZ2h0O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMjAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4zcyBlYXNlO1xuICB6LWluZGV4OiAwOyAvLyBGb3JjZSBhbnkgYm9yZGVyIHJhZGl1c1xuXG4gIC8vIE1lZGlhIGVsZW1lbnRzXG4gIHZpZGVvLFxuICBhdWRpbyxcbiAgaWZyYW1lIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICBidXR0b24ge1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cblxuICAvLyBJZ25vcmUgZm9jdXNcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLyBib3JkZXItYm94IGV2ZXJ5dGhpbmdcbi8vIGh0dHA6Ly9wYXVsaXJpc2guY29tLzIwMTIvYm94LXNpemluZy1ib3JkZXItYm94LWZ0dy9cbkBpZiAkcGx5ci1ib3JkZXItYm94IHtcbiAgLnBseXItLWZ1bGwtdWkge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAqLFxuICAgICo6OmFmdGVyLFxuICAgICo6OmJlZm9yZSB7XG4gICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICAgIH1cbiAgfVxufVxuXG4vLyBGaXggMzAwbXMgZGVsYXlcbkBpZiAkcGx5ci10b3VjaC1hY3Rpb24ge1xuICAucGx5ci0tZnVsbC11aSB7XG4gICAgYSxcbiAgICBidXR0b24sXG4gICAgaW5wdXQsXG4gICAgbGFiZWwge1xuICAgICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gICAgfVxuICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWl4aW5zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBOaWNlciBmb2N1cyBzdHlsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIHBseXItdGFiLWZvY3VzKCRjb2xvcjogJHBseXItdGFiLWZvY3VzLWNvbG9yKSB7XG4gIG91dGxpbmUtY29sb3I6ICRjb2xvcjtcbiAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgb3V0bGluZS1zdHlsZTogZG90dGVkO1xuICBvdXRsaW5lLXdpZHRoOiAzcHg7XG59XG5cbi8vIEZvbnQgc21vb3RoaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBwbHlyLWZvbnQtc21vb3RoaW5nKCRtb2RlOiB0cnVlKSB7XG4gIEBpZiAkbW9kZSB7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgfVxufVxuXG4vLyA8aW5wdXQgdHlwZT1cInJhbmdlXCI+IHN0eWxpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIHBseXItcmFuZ2UtdHJhY2soKSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGMoI3skcGx5ci1yYW5nZS10cmFjay1oZWlnaHR9IC8gMik7XG4gIGhlaWdodDogJHBseXItcmFuZ2UtdHJhY2staGVpZ2h0O1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3MgZWFzZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbkBtaXhpbiBwbHlyLXJhbmdlLXRodW1iKCkge1xuICBiYWNrZ3JvdW5kOiAkcGx5ci1yYW5nZS10aHVtYi1iYWNrZ3JvdW5kO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGJveC1zaGFkb3c6ICRwbHlyLXJhbmdlLXRodW1iLXNoYWRvdztcbiAgaGVpZ2h0OiAkcGx5ci1yYW5nZS10aHVtYi1oZWlnaHQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgd2lkdGg6ICRwbHlyLXJhbmdlLXRodW1iLWhlaWdodDtcbn1cblxuQG1peGluIHBseXItcmFuZ2UtdGh1bWItYWN0aXZlKCRjb2xvcikge1xuICBib3gtc2hhZG93OiAkcGx5ci1yYW5nZS10aHVtYi1zaGFkb3csIDAgMCAwICRwbHlyLXJhbmdlLXRodW1iLWFjdGl2ZS1zaGFkb3ctd2lkdGggJGNvbG9yO1xufVxuXG4vLyBGdWxsc2NyZWVuIHN0eWxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gcGx5ci1mdWxsc2NyZWVuLWFjdGl2ZSgpIHtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgdmlkZW8ge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC8vIERpc3BsYXkgY29ycmVjdCBpY29uXG4gIC5wbHlyX19jb250cm9sIC5pY29uLS1leGl0LWZ1bGxzY3JlZW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgKyBzdmcge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBIaWRlIGN1cnNvciBpbiBmdWxsc2NyZWVuIHdoZW4gY29udHJvbHMgaGlkZGVuXG4gICYucGx5ci0taGlkZS1jb250cm9scyB7XG4gICAgY3Vyc29yOiBub25lO1xuICB9XG5cbiAgLy8gTGFyZ2UgY2FwdGlvbnMgaW4gZnVsbCBzY3JlZW4gb24gbGFyZ2VyIHNjcmVlbnNcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRwbHlyLWJwLWxnKSB7XG4gICAgLnBseXJfX2NhcHRpb25zIHtcbiAgICAgIGZvbnQtc2l6ZTogJHBseXItZm9udC1zaXplLWNhcHRpb25zLWxhcmdlO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEJhZGdlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnBseXJfX2JhZGdlIHtcbiAgYmFja2dyb3VuZDogJHBseXItYmFkZ2UtYmFja2dyb3VuZDtcbiAgYm9yZGVyLXJhZGl1czogJHBseXItYmFkZ2UtYm9yZGVyLXJhZGl1cztcbiAgY29sb3I6ICRwbHlyLWJhZGdlLXRleHQtY29sb3I7XG4gIGZvbnQtc2l6ZTogJHBseXItZm9udC1zaXplLWJhZGdlO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZzogM3B4IDRweDtcbn1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNQTFlSIChTZXR0aW5ncylcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vLyBDU1MgY3VzdG9tIHByb3BlcnRpZXNcbi8vIG5vZGVfbW9kdWxlcy9wbHlyL3NyYy9zYXNzL2xpYi9jc3MtdmFycy5zY3NzXG4kY3NzLXZhcnMtdXNlLW5hdGl2ZTogICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcblxuLy8gQnJlYWtwb2ludHNcbi8vIG5vZGVfbW9kdWxlcy9wbHlyL3NyYy9zYXNzL3NldHRpbmdzL2JyZWFrcG9pbnRzLnNjc3NcbiRwbHlyLWJwLXNtOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC1nZXQoJEJSRUFLUE9JTlRTLCBcInhzXCIpICFkZWZhdWx0O1xuJHBseXItYnAtbWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwLWdldCgkQlJFQUtQT0lOVFMsIFwic1wiKSAhZGVmYXVsdDtcbiRwbHlyLWJwLWxnOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC1nZXQoJEJSRUFLUE9JTlRTLCBcImxcIikgIWRlZmF1bHQ7XG5cbi8vIENvbG9yc1xuLy8gbm9kZV9tb2R1bGVzL3BseXIvc3JjL3Nhc3Mvc2V0dGluZ3MvY29sb3JzLnNjc3NcbiRwbHlyLWNvbG9yLW1haW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1ISUdITElHSFQgIWRlZmF1bHQ7XG4kcGx5ci12aWRlby1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQkxBQ0sgIWRlZmF1bHQ7XG5cbi8vIENvc21ldGljXG4vLyBub2RlX21vZHVsZXMvcGx5ci9zcmMvc2Fzcy9zZXR0aW5ncy9jb3NtZXRpY3Muc2Nzc1xuJHBseXItdGFiLWZvY3VzLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgJHBseXItY29sb3ItbWFpbiAhZGVmYXVsdDtcblxuLy8gVHlwb2dyYXBoeVxuLy8gbm9kZV9tb2R1bGVzL3BseXIvc3JjL3Nhc3Mvc2V0dGluZ3MvdHlwZS5zY3NzXG4kcGx5ci1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgICAgICAkQkFTRS1GT05ULUZBTUlMWSAhZGVmYXVsdDtcbiRwbHlyLWZvbnQtc2l6ZS1iYXNlOiAgICAgICAgICAgICAgICAgICAgICAgIG1hcC1nZXQoJEZTMCwgbnVsbCkgIWRlZmF1bHQ7XG4kcGx5ci1mb250LXNpemUtc21hbGw6ICAgICAgICAgICAgICAgICAgICAgICBtYXAtZ2V0KCRGUy0xLCBudWxsKSAhZGVmYXVsdDtcbiRwbHlyLWZvbnQtc2l6ZS1sYXJnZTogICAgICAgICAgICAgICAgICAgICAgIG1hcC1nZXQoJEZTMiwgbnVsbCkgIWRlZmF1bHQ7XG4kcGx5ci1mb250LXNpemUteGxhcmdlOiAgICAgICAgICAgICAgICAgICAgICBtYXAtZ2V0KCRGUzMsIG51bGwpICFkZWZhdWx0O1xuJHBseXItZm9udC1zaXplLXRpbWU6ICAgICAgICAgICAgICAgICAgICAgICAgJHBseXItZm9udC1zaXplLXNtYWxsICFkZWZhdWx0O1xuJHBseXItZm9udC1zaXplLW1lbnU6ICAgICAgICAgICAgICAgICAgICAgICAgJHBseXItZm9udC1zaXplLXNtYWxsICFkZWZhdWx0O1xuJHBseXItZm9udC1zaXplLWJhZGdlOiAgICAgICAgICAgICAgICAgICAgICAgbWFwLWdldCgkRlMtMywgbnVsbCkgIWRlZmF1bHQ7XG4kcGx5ci1mb250LXdlaWdodC1yZWd1bGFyOiAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG4kcGx5ci1mb250LXdlaWdodC1ib2xkOiAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQgIWRlZmF1bHQ7XG4kcGx5ci1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUxJTkUtSEVJR0hUICFkZWZhdWx0O1xuJHBseXItZm9udC1zbW9vdGhpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcblxuLy8gQmFkZ2VzXG4vLyBub2RlX21vZHVsZXMvcGx5ci9zcmMvc2Fzcy9zZXR0aW5ncy9iYWRnZXMuc2Nzc1xuJHBseXItYmFkZ2UtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgJHBseXItY29sb3ItbWFpbiAhZGVmYXVsdDtcbiRwbHlyLWJhZGdlLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRwbHlyLWJhZGdlLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtQk9SREVSLVJBRElVUyAhZGVmYXVsdDtcblxuLy8gQ2FwdGlvbnNcbi8vIG5vZGVfbW9kdWxlcy9wbHlyL3NyYy9zYXNzL3NldHRpbmdzL2NhcHRpb25zLnNjc3NcbiRwbHlyLWNhcHRpb25zLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50aXplKCRDT0xPUi1CQVNFLCAkT1BBQ0lUWS1NRURJVU0pICFkZWZhdWx0O1xuJHBseXItY2FwdGlvbnMtdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJHBseXItZm9udC1zaXplLWNhcHRpb25zLWJhc2U6ICAgICAgICAgICAgICAgJHBseXItZm9udC1zaXplLWJhc2UgIWRlZmF1bHQ7XG4kcGx5ci1mb250LXNpemUtY2FwdGlvbnMtc21hbGw6ICAgICAgICAgICAgICAkcGx5ci1mb250LXNpemUtc21hbGwgIWRlZmF1bHQ7XG4kcGx5ci1mb250LXNpemUtY2FwdGlvbnMtbWVkaXVtOiAgICAgICAgICAgICBjZWlsKCRwbHlyLWZvbnQtc2l6ZS1iYXNlICogMS41KSAhZGVmYXVsdDtcbiRwbHlyLWZvbnQtc2l6ZS1jYXB0aW9ucy1sYXJnZTogICAgICAgICAgICAgICgkcGx5ci1mb250LXNpemUtYmFzZSAqIDIpICFkZWZhdWx0O1xuXG4vLyBDb250cm9sc1xuLy8gbm9kZV9tb2R1bGVzL3BseXIvc3JjL3Nhc3Mvc2V0dGluZ3MvY29udHJvbHMuc2Nzc1xuJHBseXItY29udHJvbC1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKHNtYWxsKSAhZGVmYXVsdDtcbiRwbHlyLWNvbnRyb2wtc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJHBseXItY29udHJvbC1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgJHBseXItY29udHJvbC1zcGFjaW5nICFkZWZhdWx0O1xuJHBseXItY29udHJvbC1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItUkFESVVTICFkZWZhdWx0O1xuJHBseXItY29udHJvbC10b2dnbGUtY2hlY2tlZC1iYWNrZ3JvdW5kOiAgICAgJHBseXItY29sb3ItbWFpbiAhZGVmYXVsdDtcbiRwbHlyLXZpZGVvLWNvbnRyb2xzLWJhY2tncm91bmQ6ICAgICAgICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiRwbHlyLXZpZGVvLWNvbnRyb2wtY29sb3I6ICAgICAgICAgICAgICAgICAgICRwbHlyLWNvbG9yLW1haW4gIWRlZmF1bHQ7XG4kcGx5ci12aWRlby1jb250cm9sLWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kcGx5ci12aWRlby1jb250cm9sLWJhY2tncm91bmQtaG92ZXI6ICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRwbHlyLWF1ZGlvLWNvbnRyb2xzLWJhY2tncm91bmQ6ICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRwbHlyLWF1ZGlvLWNvbnRyb2wtY29sb3I6ICAgICAgICAgICAgICAgICAgICRwbHlyLWNvbG9yLW1haW4gIWRlZmF1bHQ7XG4kcGx5ci1hdWRpby1jb250cm9sLWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kcGx5ci1hdWRpby1jb250cm9sLWJhY2tncm91bmQtaG92ZXI6ICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuLy8gRW5hYmxlIGhlbHBlcnNcbi8vIG5vZGVfbW9kdWxlcy9wbHlyL3NyYy9zYXNzL3NldHRpbmdzL2hlbHBlcnMuc2Nzc1xuJHBseXItYm9yZGVyLWJveDogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRwbHlyLXRvdWNoLWFjdGlvbjogICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kcGx5ci1zci1vbmx5LWltcG9ydGFudDogICAgICAgICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuXG4vLyBNZW51c1xuLy8gbm9kZV9tb2R1bGVzL3BseXIvc3JjL3Nhc3Mvc2V0dGluZ3MvbWVudXMuc2Nzc1xuJHBseXItbWVudS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgcmdiYSgkQ09MT1ItV0hJVEUsICRPUEFDSVRZLUhJR0hFU1QpICFkZWZhdWx0O1xuJHBseXItbWVudS1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItUkFESVVTICFkZWZhdWx0O1xuJHBseXItbWVudS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBseXItY29sb3ItbWFpbiAhZGVmYXVsdDtcbiRwbHlyLW1lbnUtc2hhZG93OiAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtQk9YLVNIQURPVyAhZGVmYXVsdDtcbiRwbHlyLW1lbnUtYXJyb3ctc2l6ZTogICAgICAgICAgICAgICAgICAgICAgIDZweCAhZGVmYXVsdDtcbiRwbHlyLW1lbnUtaXRlbS1hcnJvdy1zaXplOiAgICAgICAgICAgICAgICAgICRwbHlyLW1lbnUtYXJyb3ctc2l6ZSAhZGVmYXVsdDtcbiRwbHlyLW1lbnUtaXRlbS1hcnJvdy1jb2xvcjogICAgICAgICAgICAgICAgICRwbHlyLWNvbG9yLW1haW4gIWRlZmF1bHQ7XG4kcGx5ci1tZW51LWJhY2stYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAkcGx5ci1jb2xvci1tYWluICFkZWZhdWx0O1xuJHBseXItbWVudS1iYWNrLWJvcmRlci1zaGFkb3ctY29sb3I6ICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuXG4vLyBQcm9ncmVzc1xuLy8gbm9kZV9tb2R1bGVzL3BseXIvc3JjL3Nhc3Mvc2V0dGluZ3MvcHJvZ3Jlc3Muc2Nzc1xuJHBseXItcHJvZ3Jlc3MtbG9hZGluZy1zaXplOiAgICAgICAgICAgICAgICAgMjVweCAhZGVmYXVsdDtcbiRwbHlyLXByb2dyZXNzLWxvYWRpbmctYmFja2dyb3VuZDogICAgICAgICAgIHRyYW5zcGFyZW50aXplKCRDT0xPUi1CQVNFLCAkT1BBQ0lUWS1ISUdIKSAhZGVmYXVsdDtcbiRwbHlyLXZpZGVvLXByb2dyZXNzLWJ1ZmZlcmVkLWJhY2tncm91bmQ6ICAgIHRyYW5zcGFyZW50aXplKCRDT0xPUi1XSElURSwgJE9QQUNJVFktTE9XKSAhZGVmYXVsdDtcbiRwbHlyLWF1ZGlvLXByb2dyZXNzLWJ1ZmZlcmVkLWJhY2tncm91bmQ6ICAgIHRyYW5zcGFyZW50aXplKCRDT0xPUi1XSElURSwgJE9QQUNJVFktTE9XKSAhZGVmYXVsdDtcblxuLy8gU2xpZGVyc1xuLy8gbm9kZV9tb2R1bGVzL3BseXIvc3JjL3Nhc3Mvc2V0dGluZ3Mvc2xpZGVycy5zY3NzXG4kcGx5ci1yYW5nZS10aHVtYi1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAyMHB4ICFkZWZhdWx0O1xuJHBseXItcmFuZ2UtdGh1bWItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgJHBseXItY29sb3ItbWFpbiAhZGVmYXVsdDtcbiRwbHlyLXJhbmdlLXRodW1iLXNoYWRvdzogICAgICAgICAgICAgICAgICAgIG5vbmUgIWRlZmF1bHQ7XG4kcGx5ci1yYW5nZS10aHVtYi1hY3RpdmUtc2hhZG93LXdpZHRoOiAgICAgICAzcHggIWRlZmF1bHQ7XG4kcGx5ci1yYW5nZS10cmFjay1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAycHggIWRlZmF1bHQ7XG4kcGx5ci1yYW5nZS1maWxsLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAkcGx5ci1jb2xvci1tYWluICFkZWZhdWx0O1xuJHBseXItdmlkZW8tcmFuZ2UtdHJhY2stYmFja2dyb3VuZDogICAgICAgICAgJHBseXItdmlkZW8tcHJvZ3Jlc3MtYnVmZmVyZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRwbHlyLXZpZGVvLXJhbmdlLXRodW1iLWFjdGl2ZS1zaGFkb3ctY29sb3I6IHJnYmEoJENPTE9SLVdISVRFLCAkT1BBQ0lUWS1ISUdIRVNUKSAhZGVmYXVsdDtcbiRwbHlyLWF1ZGlvLXJhbmdlLXRyYWNrLWJhY2tncm91bmQ6ICAgICAgICAgICRwbHlyLWF1ZGlvLXByb2dyZXNzLWJ1ZmZlcmVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kcGx5ci1hdWRpby1yYW5nZS10aHVtYi1hY3RpdmUtc2hhZG93LWNvbG9yOiByZ2JhKCRDT0xPUi1CUkFORCwgJE9QQUNJVFktSElHSEVTVCkgIWRlZmF1bHQ7XG5cbi8vIFRvb2x0aXBzXG4vLyBub2RlX21vZHVsZXMvcGx5ci9zcmMvc2Fzcy9zZXR0aW5ncy90b29sdGlwcy5zY3NzXG4kcGx5ci10b29sdGlwLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudGl6ZSgkcGx5ci1jb2xvci1tYWluLCAkT1BBQ0lUWS1MT1cpICFkZWZhdWx0O1xuJHBseXItdG9vbHRpcC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJHBseXItdG9vbHRpcC1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kcGx5ci10b29sdGlwLWFycm93LXNpemU6ICAgICAgICAgICAgICAgICAgICA0cHggIWRlZmF1bHQ7XG4kcGx5ci10b29sdGlwLXJhZGl1czogICAgICAgICAgICAgICAgICAgICAgICAwICFkZWZhdWx0O1xuJHBseXItdG9vbHRpcC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1CT1gtU0hBRE9XICFkZWZhdWx0O1xuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENhcHRpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBIaWRlIGRlZmF1bHQgY2FwdGlvbnNcbi5wbHlyLS1mdWxsLXVpIDo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wbHlyX19jYXB0aW9ucyB7XG4gIGFuaW1hdGlvbjogcGx5ci1mYWRlLWluIDAuM3MgZWFzZTtcbiAgYm90dG9tOiAwO1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LXNpemU6ICRwbHlyLWZvbnQtc2l6ZS1jYXB0aW9ucy1zbWFsbDtcbiAgbGVmdDogMDtcbiAgcGFkZGluZzogJHBseXItY29udHJvbC1zcGFjaW5nO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZS1pbi1vdXQ7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIHNwYW46ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogJHBseXItYnAtc20pIHtcbiAgICBmb250LXNpemU6ICRwbHlyLWZvbnQtc2l6ZS1jYXB0aW9ucy1iYXNlO1xuICAgIHBhZGRpbmc6IGNhbGMoI3skcGx5ci1jb250cm9sLXNwYWNpbmd9ICogMik7XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogJHBseXItYnAtbWQpIHtcbiAgICBmb250LXNpemU6ICRwbHlyLWZvbnQtc2l6ZS1jYXB0aW9ucy1tZWRpdW07XG4gIH1cbn1cblxuLnBseXItLWNhcHRpb25zLWFjdGl2ZSAucGx5cl9fY2FwdGlvbnMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLy8gSWYgdGhlIGxvd2VyIGNvbnRyb2xzIGFyZSBzaG93biBhbmQgbm90IGVtcHR5XG4ucGx5cjpub3QoLnBseXItLWhpZGUtY29udHJvbHMpIC5wbHlyX19jb250cm9sczpub3QoOmVtcHR5KSB+IC5wbHlyX19jYXB0aW9ucyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKCN7JHBseXItY29udHJvbC1zcGFjaW5nfSAqIC00KSk7XG59XG5cbi5wbHlyX19jYXB0aW9uIHtcbiAgYmFja2dyb3VuZDogJHBseXItY2FwdGlvbnMtYmFja2dyb3VuZDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBib3gtZGVjb3JhdGlvbi1icmVhazogY2xvbmU7XG4gIGNvbG9yOiAkcGx5ci1jYXB0aW9ucy10ZXh0LWNvbG9yO1xuICBsaW5lLWhlaWdodDogMTg1JTtcbiAgcGFkZGluZzogMC4yZW0gMC41ZW07XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcblxuICAvLyBGaXJlZm94IGFkZHMgYSA8ZGl2PiB3aGVuIHVzaW5nIGdldEN1ZUFzSFRNTCgpXG4gIGRpdiB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICB9XG59XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjUExZUiAoU2V0dGluZ3MpXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHBseXItY29sb3ItbWFpbjogICAgICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuXG4kcGx5ci1mb250LXNpemUtc21hbGw6ICAgICAgICAgICAgICBtYXAtZ2V0KCRGUzAsIG51bGwpICFkZWZhdWx0O1xuXG4kcGx5ci1yYW5nZS10cmFjay1oZWlnaHQ6ICAgICAgICAgICAkUkFOR0UtU0xJREVSLVRSQUNLLUhFSUdIVCAhZGVmYXVsdDtcbiRwbHlyLXJhbmdlLXRodW1iLWhlaWdodDogICAgICAgICAgICRSQU5HRS1TTElERVItVEhVTUItU0laRSAhZGVmYXVsdDtcbiRwbHlyLXJhbmdlLXRodW1iLWJhY2tncm91bmQ6ICAgICAgICRSQU5HRS1TTElERVItVEhVTUItQkFDS0dST1VORC1DT0xPUiAhZGVmYXVsdDtcbiRwbHlyLXJhbmdlLXRodW1iLXNjYWxlLWFjdGl2ZTogICAgICgkUkFOR0UtU0xJREVSLVRIVU1CLVNJWkUtSE9WRVIgLyAkUkFOR0UtU0xJREVSLVRIVU1CLVNJWkUpICFkZWZhdWx0O1xuJHBseXItcmFuZ2UtZmlsbC1iYWNrZ3JvdW5kOiAgICAgICAgJFJBTkdFLVNMSURFUi1UUkFDSy1GSUxMRUQtQkFDS0dST1VORC1DT0xPUiAhZGVmYXVsdDtcblxuJHBseXItdmlkZW8tcmFuZ2UtdHJhY2stYmFja2dyb3VuZDogJENPTE9SLU9OLVNVUkZBQ0UtMTAwICFkZWZhdWx0O1xuXG4kcGx5ci10b29sdGlwLWJhY2tncm91bmQ6ICAgICAgICAgICAkVE9PTFRJUC1CQUNLR1JPVU5EICFkZWZhdWx0O1xuJHBseXItdG9vbHRpcC1jb2xvcjogICAgICAgICAgICAgICAgJFRPT0xUSVAtVEVYVC1DT0xPUiAhZGVmYXVsdDtcbiRwbHlyLXRvb2x0aXAtcGFkZGluZzogICAgICAgICAgICAgICRUT09MVElQLVBBRERJTkctVkVSVElDQUwgJFRPT0xUSVAtUEFERElORy1IT1JJWk9OVEFMICFkZWZhdWx0O1xuJHBseXItdG9vbHRpcC1hcnJvdy1zaXplOiAgICAgICAgICAgJFRPT0xUSVAtQVJST1ctU0laRSAhZGVmYXVsdDtcbiRwbHlyLXRvb2x0aXAtcmFkaXVzOiAgICAgICAgICAgICAgICRUT09MVElQLUJPUkRFUi1SQURJVVMgIWRlZmF1bHQ7XG4kcGx5ci10b29sdGlwLXNoYWRvdzogICAgICAgICAgICAgICBub25lICFkZWZhdWx0O1xuJHBseXItdG9vbHRpcC1vZmZzZXQ6ICAgICAgICAgICAgICAgJFRPT0xUSVAtT0ZGU0VUICFkZWZhdWx0O1xuJHBseXItdG9vbHRpcC1vZmZzZXQtYXQtYnJlYWtwb2ludDogJHBseXItdG9vbHRpcC1vZmZzZXQgIWRlZmF1bHQ7XG4kcGx5ci10b29sdGlwLWxpbmUtaGVpZ2h0OiAgICAgICAgICAkVE9PTFRJUC1MSU5FLUhFSUdIVCAhZGVmYXVsdDtcblxuJHBseXItY29udHJvbC1pY29uLXNpemU6ICAgICAgICAgICAgaWNvbi1zaXplKHhzbWFsbCkgIWRlZmF1bHQ7XG4kcGx5ci1jb250cm9sLXNwYWNpbmc6ICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcblxuJHBseXItY2FwdGlvbnMtYmFja2dyb3VuZDogICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJHBseXItY2FwdGlvbnMtdGV4dC1jb2xvcjogICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcbiRwbHlyLWZvbnQtc2l6ZS1jYXB0aW9ucy1zbWFsbDogICAgIG1hcC1nZXQoJEZTMCwgbnVsbCkgIWRlZmF1bHQ7XG4kcGx5ci1mb250LXNpemUtY2FwdGlvbnMtbWVkaXVtOiAgICBtYXAtZ2V0KCRGUzEsIG51bGwpICFkZWZhdWx0O1xuJHBseXItZm9udC1zaXplLWNhcHRpb25zLWxhcmdlOiAgICAgbWFwLWdldCgkRlMxLCBudWxsKSAhZGVmYXVsdDtcbiRwbHlyLWZvbnQtc2l6ZS10aW1lOiAgICAgICAgICAgICAgICRUT09MVElQLVRFWFQtU0laRSAhZGVmYXVsdDtcbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDb250cm9sIGJ1dHRvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5wbHlyX19jb250cm9sIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogJHBseXItY29udHJvbC1yYWRpdXM7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLy8gSUUxMVxuICBwYWRkaW5nOiAkcGx5ci1jb250cm9sLXBhZGRpbmc7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcblxuICBzdmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICBoZWlnaHQ6ICRwbHlyLWNvbnRyb2wtaWNvbi1zaXplO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHdpZHRoOiAkcGx5ci1jb250cm9sLWljb24tc2l6ZTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgZm9jdXNcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gIC8vIFRhYiBmb2N1c1xuICAmLnBseXJfX3RhYi1mb2N1cyB7XG4gICAgQGluY2x1ZGUgcGx5ci10YWItZm9jdXMoKTtcbiAgfVxufVxuXG4vLyBSZW1vdmUgYW55IGxpbmsgc3R5bGluZ1xuYS5wbHlyX19jb250cm9sIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICY6OmFmdGVyLFxuICAmOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLy8gQ2hhbmdlIGljb25zIG9uIHN0YXRlIGNoYW5nZVxuLnBseXJfX2NvbnRyb2w6bm90KC5wbHlyX19jb250cm9sLS1wcmVzc2VkKSAuaWNvbi0tcHJlc3NlZCxcbi5wbHlyX19jb250cm9sLnBseXJfX2NvbnRyb2wtLXByZXNzZWQgLmljb24tLW5vdC1wcmVzc2VkLFxuLnBseXJfX2NvbnRyb2w6bm90KC5wbHlyX19jb250cm9sLS1wcmVzc2VkKSAubGFiZWwtLXByZXNzZWQsXG4ucGx5cl9fY29udHJvbC5wbHlyX19jb250cm9sLS1wcmVzc2VkIC5sYWJlbC0tbm90LXByZXNzZWQge1xuICBkaXNwbGF5OiBub25lO1xufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENvbnRyb2xzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBIaWRlIG5hdGl2ZSBjb250cm9sc1xuLnBseXItLWZ1bGwtdWkgOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gUGxheWJhY2sgY29udHJvbHNcbi5wbHlyX19jb250cm9scyB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAucGx5cl9fcHJvZ3Jlc3NfX2NvbnRhaW5lciB7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDA7IC8vIEZpeCBmb3IgRWRnZSBpc3N1ZSB3aGVyZSBjb250ZW50IHdvdWxkIG92ZXJmbG93XG4gIH1cblxuICAvLyBTcGFjaW5nXG4gIC5wbHlyX19jb250cm9sc19faXRlbSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoI3skcGx5ci1jb250cm9sLXNwYWNpbmd9IC8gNCk7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgICYucGx5cl9fcHJvZ3Jlc3NfX2NvbnRhaW5lciB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoI3skcGx5ci1jb250cm9sLXNwYWNpbmd9IC8gNCk7XG4gICAgfVxuXG4gICAgJi5wbHlyX190aW1lIHtcbiAgICAgIHBhZGRpbmc6IDAgY2FsYygjeyRwbHlyLWNvbnRyb2wtc3BhY2luZ30gLyAyKTtcbiAgICB9XG5cbiAgICAmLnBseXJfX3Byb2dyZXNzX19jb250YWluZXI6Zmlyc3QtY2hpbGQsXG4gICAgJi5wbHlyX190aW1lOmZpcnN0LWNoaWxkLFxuICAgICYucGx5cl9fdGltZSArIC5wbHlyX190aW1lIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBIaWRlIGVtcHR5IGNvbnRyb2xzXG4gICY6ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLy8gU29tZSBvcHRpb25zIGFyZSBoaWRkZW4gYnkgZGVmYXVsdFxuLnBseXIgW2RhdGEtcGx5cj0nY2FwdGlvbnMnXSxcbi5wbHlyIFtkYXRhLXBseXI9J3BpcCddLFxuLnBseXIgW2RhdGEtcGx5cj0nYWlycGxheSddLFxuLnBseXIgW2RhdGEtcGx5cj0nZnVsbHNjcmVlbiddIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5wbHlyLS1jYXB0aW9ucy1lbmFibGVkIFtkYXRhLXBseXI9J2NhcHRpb25zJ10sXG4ucGx5ci0tcGlwLXN1cHBvcnRlZCBbZGF0YS1wbHlyPSdwaXAnXSxcbi5wbHlyLS1haXJwbGF5LXN1cHBvcnRlZCBbZGF0YS1wbHlyPSdhaXJwbGF5J10sXG4ucGx5ci0tZnVsbHNjcmVlbi1lbmFibGVkIFtkYXRhLXBseXI9J2Z1bGxzY3JlZW4nXSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBNZW51c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnBseXJfX21lbnUge1xuICBkaXNwbGF5OiBmbGV4OyAvLyBFZGdlIGZpeFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLy8gQW5pbWF0ZSB0aGUgaWNvblxuICAucGx5cl9fY29udHJvbCBzdmcge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG4gIH1cbiAgLnBseXJfX2NvbnRyb2xbYXJpYS1leHBhbmRlZD0ndHJ1ZSddIHtcbiAgICBzdmcge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgIH1cblxuICAgIC8vIEhpZGUgdG9vbHRpcFxuICAgIC5wbHlyX190b29sdGlwIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhlIGFjdHVhbCBtZW51IGNvbnRhaW5lclxuICAmX19jb250YWluZXIge1xuICAgIGFuaW1hdGlvbjogcGx5ci1wb3B1cCAwLjJzIGVhc2U7XG4gICAgYmFja2dyb3VuZDogJHBseXItbWVudS1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3R0b206IDEwMCU7XG4gICAgYm94LXNoYWRvdzogJHBseXItbWVudS1zaGFkb3c7XG4gICAgY29sb3I6ICRwbHlyLW1lbnUtY29sb3I7XG4gICAgZm9udC1zaXplOiAkcGx5ci1mb250LXNpemUtYmFzZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogLTNweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgei1pbmRleDogMztcblxuICAgID4gZGl2IHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMC4zNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgd2lkdGggMC4zNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICB9XG5cbiAgICAvLyBBcnJvd1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGJvcmRlcjogJHBseXItbWVudS1hcnJvdy1zaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHBseXItbWVudS1iYWNrZ3JvdW5kO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogY2FsYygoKCN7JHBseXItY29udHJvbC1pY29uLXNpemV9IC8gMikgKyAjeyRwbHlyLWNvbnRyb2wtcGFkZGluZ30pIC0gKCN7JHBseXItbWVudS1hcnJvdy1zaXplfSAvIDIpKTtcbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIHdpZHRoOiAwO1xuICAgIH1cblxuICAgIFtyb2xlPSdtZW51J10ge1xuICAgICAgcGFkZGluZzogJHBseXItY29udHJvbC1wYWRkaW5nO1xuICAgIH1cblxuICAgIFtyb2xlPSdtZW51aXRlbSddLFxuICAgIFtyb2xlPSdtZW51aXRlbXJhZGlvJ10ge1xuICAgICAgbWFyZ2luLXRvcDogMnB4O1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBPcHRpb25zXG4gICAgLnBseXJfX2NvbnRyb2wge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGNvbG9yOiAkcGx5ci1tZW51LWNvbG9yO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZvbnQtc2l6ZTogJHBseXItZm9udC1zaXplLW1lbnU7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygjeyRwbHlyLWNvbnRyb2wtcGFkZGluZ30gLyAxLjUpO1xuICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKCN7JHBseXItY29udHJvbC1wYWRkaW5nfSAqIDEuNSk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHBseXItY29udHJvbC1wYWRkaW5nfSAqIDEuNSk7XG4gICAgICBwYWRkaW5nLXRvcDogY2FsYygjeyRwbHlyLWNvbnRyb2wtcGFkZGluZ30gLyAxLjUpO1xuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgPiBzcGFuIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGluaGVyaXQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGJvcmRlcjogJHBseXItbWVudS1pdGVtLWFycm93LXNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICB9XG5cbiAgICAgICYtLWZvcndhcmQge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHBseXItY29udHJvbC1wYWRkaW5nfSAqIDQpO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJHBseXItbWVudS1pdGVtLWFycm93LWNvbG9yO1xuICAgICAgICAgIHJpZ2h0OiBjYWxjKCgjeyRwbHlyLWNvbnRyb2wtcGFkZGluZ30gKiAxLjUpIC0gI3skcGx5ci1tZW51LWl0ZW0tYXJyb3ctc2l6ZX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wbHlyX190YWItZm9jdXM6OmFmdGVyLFxuICAgICAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLS1iYWNrIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRwbHlyLWZvbnQtd2VpZ2h0LXJlZ3VsYXI7XG4gICAgICAgIG1hcmdpbjogJHBseXItY29udHJvbC1wYWRkaW5nO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBjYWxjKCN7JHBseXItY29udHJvbC1wYWRkaW5nfSAvIDIpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoI3skcGx5ci1jb250cm9sLXBhZGRpbmd9ICogNCk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICgjeyRwbHlyLWNvbnRyb2wtcGFkZGluZ30gKiAyKSk7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHBseXItbWVudS1pdGVtLWFycm93LWNvbG9yO1xuICAgICAgICAgIGxlZnQ6IGNhbGMoKCN7JHBseXItY29udHJvbC1wYWRkaW5nfSAqIDEuNSkgLSAjeyRwbHlyLW1lbnUtaXRlbS1hcnJvdy1zaXplfSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRwbHlyLW1lbnUtYmFjay1ib3JkZXItY29sb3I7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMCAkcGx5ci1tZW51LWJhY2stYm9yZGVyLXNoYWRvdy1jb2xvcjtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIG1hcmdpbi10b3A6IGNhbGMoI3skcGx5ci1jb250cm9sLXBhZGRpbmd9IC8gMik7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wbHlyX190YWItZm9jdXM6OmFmdGVyLFxuICAgICAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAucGx5cl9fY29udHJvbFtyb2xlPSdtZW51aXRlbXJhZGlvJ10ge1xuICAgICAgcGFkZGluZy1sZWZ0OiAkcGx5ci1jb250cm9sLXBhZGRpbmc7XG5cbiAgICAgICY6OmJlZm9yZSxcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgIH1cblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgjMDAwLCAwLjEpO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHBseXItY29udHJvbC1zcGFjaW5nO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgIH1cblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGhlaWdodDogNnB4O1xuICAgICAgICBsZWZ0OiAxMnB4O1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDApO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLCBvcGFjaXR5IDAuM3MgZWFzZTtcbiAgICAgICAgd2lkdGg6IDZweDtcbiAgICAgIH1cblxuICAgICAgJlthcmlhLWNoZWNrZWQ9J3RydWUnXSB7XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHBseXItY29udHJvbC10b2dnbGUtY2hlY2tlZC1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgxKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnBseXJfX3RhYi1mb2N1czo6YmVmb3JlLFxuICAgICAgJjpob3Zlcjo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkcGx5ci1jb2xvci1ncmF5LTkwMCwgMC4xKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBPcHRpb24gdmFsdWVcbiAgICAucGx5cl9fbWVudV9fdmFsdWUge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogY2FsYygoI3skcGx5ci1jb250cm9sLXBhZGRpbmd9IC0gMikgKiAtMSk7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKCN7JHBseXItY29udHJvbC1wYWRkaW5nfSAqIDMuNSk7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNTSEFET1dTXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJEdMT0JBTC1CT1gtU0hBRE9XLU9GRlNFVC1YOiAgICAwICFkZWZhdWx0O1xuJEdMT0JBTC1CT1gtU0hBRE9XLU9GRlNFVC1ZOiAgICAycHggIWRlZmF1bHQ7XG4kR0xPQkFMLUJPWC1TSEFET1ctQkxVUi1SQURJVVM6IDVweCAhZGVmYXVsdDtcbiRHTE9CQUwtQk9YLVNIQURPVy1TUFJFQUQ6ICAgICAgMCAhZGVmYXVsdDtcbiRHTE9CQUwtQk9YLVNIQURPVy1DT0xPUjogICAgICAgcmdiYSgwLCAwLCAwLCAwLjIpICFkZWZhdWx0O1xuJEdMT0JBTC1CT1gtU0hBRE9XOiAgICAgICAgICAgICAkR0xPQkFMLUJPWC1TSEFET1ctT0ZGU0VULVggJEdMT0JBTC1CT1gtU0hBRE9XLU9GRlNFVC1ZICRHTE9CQUwtQk9YLVNIQURPVy1CTFVSLVJBRElVUyAkR0xPQkFMLUJPWC1TSEFET1ctU1BSRUFEICRHTE9CQUwtQk9YLVNIQURPVy1DT0xPUiAhZGVmYXVsdDtcbiRHTE9CQUwtQk9YLVNIQURPVy1JTlZFUlRFRDogICAgJEdMT0JBTC1CT1gtU0hBRE9XLU9GRlNFVC1YICgtJEdMT0JBTC1CT1gtU0hBRE9XLU9GRlNFVC1ZKSAkR0xPQkFMLUJPWC1TSEFET1ctQkxVUi1SQURJVVMgJEdMT0JBTC1CT1gtU0hBRE9XLVNQUkVBRCAkR0xPQkFMLUJPWC1TSEFET1ctQ09MT1IgIWRlZmF1bHQ7XG5cbiREUk9QLVNIQURPVy1DT0xPUjogICAgICAgICAgICAgcmdiYSgwLCAwLCAwLCAwLjMpICFkZWZhdWx0O1xuLy8gU2l6ZXMgdmFsdWVzIGNvdWxkIGJlIHVzZWQgZm9yIGNhbGN1bGF0aW5nIHdpdGggc2hhZG93IHNpemVzXG4vLyAoZS5nLiBJbnRlcmFjdGlvbiBMYXllcilcbiREUk9QLVNIQURPVy1MQVJHRS1TSVpFOiAgICAgICAgNDBweCAhZGVmYXVsdDtcbiREUk9QLVNIQURPVy1TTUFMTC1TSVpFOiAgICAgICAgNHB4ICFkZWZhdWx0O1xuJERST1AtU0hBRE9XLUxBUkdFOiAgICAgICAgICAgICA1cHggNXB4ICREUk9QLVNIQURPVy1MQVJHRS1TSVpFICREUk9QLVNIQURPVy1DT0xPUiAhZGVmYXVsdDtcbiREUk9QLVNIQURPVy1TTUFMTDogICAgICAgICAgICAgMCAxcHggJERST1AtU0hBRE9XLVNNQUxMLVNJWkUgMCAkRFJPUC1TSEFET1ctQ09MT1IgIWRlZmF1bHQ7XG5cbiRDQVJELVNIQURPVy1PRkZTRVQtWDogICAgICAgICAgMCAhZGVmYXVsdDtcbiRDQVJELVNIQURPVy1PRkZTRVQtWTogICAgICAgICAgMXB4ICFkZWZhdWx0O1xuJENBUkQtU0hBRE9XLUJMVVItUkFESVVTOiAgICAgICA0cHggIWRlZmF1bHQ7XG4kQ0FSRC1TSEFET1ctU1BSRUFEOiAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kQ0FSRC1TSEFET1c6ICAgICAgICAgICAgICAgICAgICRDQVJELVNIQURPVy1PRkZTRVQtWCAkQ0FSRC1TSEFET1ctT0ZGU0VULVkgJENBUkQtU0hBRE9XLUJMVVItUkFESVVTICRDQVJELVNIQURPVy1TUFJFQUQgJERST1AtU0hBRE9XLUNPTE9SICFkZWZhdWx0O1xuJENBUkQtSU5BQ1RJVkUtU0hBRE9XOiAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kU0NST0xMLVNIQURPVy1DT0xPUjogICAgICAgICAgIHJnYmEoMCwgMCwgMCwgMC4yKSAhZGVmYXVsdDtcbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTbGlkZXIgaW5wdXRzIC0gPGlucHV0IHR5cGU9XCJyYW5nZVwiPlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnBseXItLWZ1bGwtdWkgaW5wdXRbdHlwZT0ncmFuZ2UnXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSAqL1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiBjYWxjKCN7JHBseXItcmFuZ2UtdGh1bWItaGVpZ2h0fSAqIDIpO1xuICAvLyBgY29sb3JgIHByb3BlcnR5IGlzIHVzZWQgaW4gSlMgdG8gcG9wdWxhdGUgbG93ZXIgZmlsbCBmb3IgV2ViS2l0XG4gIGNvbG9yOiAkcGx5ci1yYW5nZS1maWxsLWJhY2tncm91bmQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IGNhbGMoKCN7JHBseXItcmFuZ2UtdGh1bWItYWN0aXZlLXNoYWRvdy13aWR0aH0gKiAyKSArICN7JHBseXItcmFuZ2UtdGh1bWItaGVpZ2h0fSk7XG4gIG1hcmdpbjogMDtcbiAgbWluLXdpZHRoOiAwO1xuICBwYWRkaW5nOiAwO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3MgZWFzZTtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICAgIEBpbmNsdWRlIHBseXItcmFuZ2UtdHJhY2soKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIGN1cnJlbnRDb2xvciB2YXIoLS12YWx1ZSwgMCUpLCB0cmFuc3BhcmVudCB2YXIoLS12YWx1ZSwgMCUpKTtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICBAaW5jbHVkZSBwbHlyLXJhbmdlLXRodW1iKCk7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lICovXG4gICAgbWFyZ2luLXRvcDogY2FsYygoKCN7JHBseXItcmFuZ2UtdGh1bWItaGVpZ2h0fSAtICN7JHBseXItcmFuZ2UtdHJhY2staGVpZ2h0fSkgLyAyKSAqIC0xKTtcbiAgfVxuXG4gIC8vIE1vemlsbGFcbiAgJjo6LW1vei1yYW5nZS10cmFjayB7XG4gICAgQGluY2x1ZGUgcGx5ci1yYW5nZS10cmFjaygpO1xuICB9XG5cbiAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgQGluY2x1ZGUgcGx5ci1yYW5nZS10aHVtYigpO1xuICB9XG5cbiAgJjo6LW1vei1yYW5nZS1wcm9ncmVzcyB7XG4gICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IGNhbGMoI3skcGx5ci1yYW5nZS10cmFjay1oZWlnaHR9IC8gMik7XG4gICAgaGVpZ2h0OiAkcGx5ci1yYW5nZS10cmFjay1oZWlnaHQ7XG4gIH1cblxuICAvLyBNaWNyb3NvZnRcbiAgJjo6LW1zLXRyYWNrIHtcbiAgICBAaW5jbHVkZSBwbHlyLXJhbmdlLXRyYWNrKCk7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJjo6LW1zLWZpbGwtdXBwZXIge1xuICAgIEBpbmNsdWRlIHBseXItcmFuZ2UtdHJhY2soKTtcbiAgfVxuXG4gICY6Oi1tcy1maWxsLWxvd2VyIHtcbiAgICBAaW5jbHVkZSBwbHlyLXJhbmdlLXRyYWNrKCk7XG5cbiAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gIH1cblxuICAmOjotbXMtdGh1bWIge1xuICAgIEBpbmNsdWRlIHBseXItcmFuZ2UtdGh1bWIoKTtcbiAgICAvLyBGb3Igc29tZSByZWFzb24sIEVkZ2UgdXNlcyB0aGUgLXdlYmtpdCBtYXJnaW4gYWJvdmVcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgJjo6LW1zLXRvb2x0aXAge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBGb2N1cyBzdHlsZXNcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gICY6Oi1tb3otZm9jdXMtb3V0ZXIge1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gICYucGx5cl9fdGFiLWZvY3VzIHtcbiAgICAmOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gICAgICBAaW5jbHVkZSBwbHlyLXRhYi1mb2N1cygpO1xuICAgIH1cblxuICAgICY6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICAgICAgQGluY2x1ZGUgcGx5ci10YWItZm9jdXMoKTtcbiAgICB9XG5cbiAgICAmOjotbXMtdHJhY2sge1xuICAgICAgQGluY2x1ZGUgcGx5ci10YWItZm9jdXMoKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNSQU5HRS1TTElERVJcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kUkFOR0UtU0xJREVSLVRSQUNLLUhFSUdIVDogICAgICAgICAgICAgICAgICAgICAgICAgICA0cHggIWRlZmF1bHQ7XG4kUkFOR0UtU0xJREVSLVRSQUNLLUJBQ0tHUk9VTkQtQ09MT1I6ICAgICAgICAgICAgICAgICAkQ09MT1ItT04tU1VSRkFDRS0yMDAgIWRlZmF1bHQ7XG4kUkFOR0UtU0xJREVSLVRSQUNLLUJBQ0tHUk9VTkQtQ09MT1ItTElHSFQ6ICAgICAgICAgICAkX190cmFuc3BhcmVuY3ktcXVhcnRlcm5hcnlfXyAhZGVmYXVsdDtcbiRSQU5HRS1TTElERVItVFJBQ0stQkFDS0dST1VORC1DT0xPUi1ESVNBQkxFRDogICAgICAgICRDT0xPUi1JTkFDVElWRS1TRUNPTkRBUlkgIWRlZmF1bHQ7XG4kUkFOR0UtU0xJREVSLVRSQUNLLUJPUkRFUi1SQURJVVM6ICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUJPUkRFUi1SQURJVVMtU01BTEwgIWRlZmF1bHQ7XG5cbiRSQU5HRS1TTElERVItVFJBQ0stRklMTEVELUJBQ0tHUk9VTkQtQ09MT1I6ICAgICAgICAgICRDT0xPUi1CUkFORC1TRUNPTkRBUlkgIWRlZmF1bHQ7XG4kUkFOR0UtU0xJREVSLVRSQUNLLUZJTExFRC1CQUNLR1JPVU5ELUNPTE9SLUxJR0hUOiAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kUkFOR0UtU0xJREVSLVRSQUNLLUZJTExFRC1CQUNLR1JPVU5ELUNPTE9SLURJU0FCTEVEOiAkQ09MT1ItT04tU1VSRkFDRS0yMDAgIWRlZmF1bHQ7XG5cbiRSQU5HRS1TTElERVItVEhVTUItU0laRTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2cHggIWRlZmF1bHQ7XG4kUkFOR0UtU0xJREVSLVRIVU1CLVNJWkUtSE9WRVI6ICAgICAgICAgICAgICAgICAgICAgICAxOHB4ICFkZWZhdWx0O1xuJFJBTkdFLVNMSURFUi1USFVNQi1CQUNLR1JPVU5ELUNPTE9SOiAgICAgICAgICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJFJBTkdFLVNMSURFUi1USFVNQi1CQUNLR1JPVU5ELUxJR0hUOiAgICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJFJBTkdFLVNMSURFUi1USFVNQi1CQUNLR1JPVU5ELUNPTE9SLURJU0FCTEVEOiAgICAgICAgJENPTE9SLU9OLVNVUkZBQ0UtMzAwICFkZWZhdWx0O1xuJFJBTkdFLVNMSURFUi1USFVNQi1IQVMtQk9SREVSOiAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kUkFOR0UtU0xJREVSLVRIVU1CLUhBUy1ET1Q6ICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZhdXggcG9zdGVyIG92ZXJsYXlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5wbHlyX19wb3N0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wbHlyLXZpZGVvLWJhY2tncm91bmQsICRwbHlyLXZpZGVvLWJhY2tncm91bmQpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMTtcbn1cblxuLnBseXItLXN0b3BwZWQucGx5cl9fcG9zdGVyLWVuYWJsZWQgLnBseXJfX3Bvc3RlciB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8vIEFsbG93IGludGVyYWN0aW9uIHdpdGggWW91VHViZSBjb250cm9scyB3aGlsZSBwYXVzZWRcbi5wbHlyLS15b3V0dWJlLnBseXItLXBhdXNlZC5wbHlyX19wb3N0ZXItZW5hYmxlZDpub3QoLnBseXItLXN0b3BwZWQpIC5wbHlyX19wb3N0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRpbWVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5wbHlyX190aW1lIHtcbiAgZm9udC1zaXplOiAkcGx5ci1mb250LXNpemUtdGltZTtcbn1cblxuLy8gTWVkaWEgZHVyYXRpb24gaGlkZGVuIG9uIHNtYWxsIHNjcmVlbnNcbi5wbHlyX190aW1lICsgLnBseXJfX3RpbWUge1xuICAvLyBBZGQgYSBzbGFzaCBpbiBiZWZvcmVcbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnXFwyMDQ0JztcbiAgICBtYXJnaW4tcmlnaHQ6ICRwbHlyLWNvbnRyb2wtc3BhY2luZztcbiAgfVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiAoJHBseXItYnAtbWQgLSAxcHgpKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRvb2x0aXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ucGx5cl9fdG9vbHRpcCB7XG4gIGJhY2tncm91bmQ6ICRwbHlyLXRvb2x0aXAtYmFja2dyb3VuZDtcbiAgYm9yZGVyLXJhZGl1czogJHBseXItdG9vbHRpcC1yYWRpdXM7XG4gIGJvdHRvbTogMTAwJTtcbiAgYm94LXNoYWRvdzogJHBseXItdG9vbHRpcC1zaGFkb3c7XG4gIGNvbG9yOiAkcGx5ci10b29sdGlwLWNvbG9yO1xuICBmb250LXNpemU6ICRwbHlyLWZvbnQtc2l6ZS1zbWFsbDtcbiAgZm9udC13ZWlnaHQ6ICRwbHlyLWZvbnQtd2VpZ2h0LXJlZ3VsYXI7XG4gIGxlZnQ6IDUwJTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgbWFyZ2luLWJvdHRvbTogY2FsYygjeyRwbHlyLXRvb2x0aXAtcGFkZGluZ30gKiAyKTtcbiAgb3BhY2l0eTogMDtcbiAgcGFkZGluZzogJHBseXItdG9vbHRpcC1wYWRkaW5nIGNhbGMoI3skcGx5ci10b29sdGlwLXBhZGRpbmd9ICogMS41KTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMTBweCkgc2NhbGUoMC44KTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDEwMCU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIDAuMXMgZWFzZSwgb3BhY2l0eSAwLjJzIDAuMXMgZWFzZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgei1pbmRleDogMjtcblxuICAvLyBUaGUgYmFja2dyb3VuZCB0cmlhbmdsZVxuICAmOjpiZWZvcmUge1xuICAgIGJvcmRlci1sZWZ0OiAkcGx5ci10b29sdGlwLWFycm93LXNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAkcGx5ci10b29sdGlwLWFycm93LXNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcDogJHBseXItdG9vbHRpcC1hcnJvdy1zaXplIHNvbGlkICRwbHlyLXRvb2x0aXAtYmFja2dyb3VuZDtcbiAgICBib3R0b206IGNhbGMoI3skcGx5ci10b29sdGlwLWFycm93LXNpemV9ICogLTEpO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGhlaWdodDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB3aWR0aDogMDtcbiAgICB6LWluZGV4OiAyO1xuICB9XG59XG5cbi8vIERpc3BsYXlpbmdcbi5wbHlyIC5wbHlyX19jb250cm9sOmhvdmVyIC5wbHlyX190b29sdGlwLFxuLnBseXIgLnBseXJfX2NvbnRyb2wucGx5cl9fdGFiLWZvY3VzIC5wbHlyX190b29sdGlwLFxuLnBseXJfX3Rvb2x0aXAtLXZpc2libGUge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKSBzY2FsZSgxKTtcbn1cblxuLnBseXIgLnBseXJfX2NvbnRyb2w6aG92ZXIgLnBseXJfX3Rvb2x0aXAge1xuICB6LWluZGV4OiAzO1xufVxuXG4vLyBGaXJzdCB0b29sdGlwXG4ucGx5cl9fY29udHJvbHMgPiAucGx5cl9fY29udHJvbDpmaXJzdC1jaGlsZCAucGx5cl9fdG9vbHRpcCxcbi5wbHlyX19jb250cm9scyA+IC5wbHlyX19jb250cm9sOmZpcnN0LWNoaWxkICsgLnBseXJfX2NvbnRyb2wgLnBseXJfX3Rvb2x0aXAge1xuICBsZWZ0OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxMHB4KSBzY2FsZSgwLjgpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBsZWZ0OiBjYWxjKCgjeyRwbHlyLWNvbnRyb2wtaWNvbi1zaXplfSAvIDIpICsgI3skcGx5ci1jb250cm9sLXBhZGRpbmd9KTtcbiAgfVxufVxuXG4vLyBMYXN0IHRvb2x0aXBcbi5wbHlyX19jb250cm9scyA+IC5wbHlyX19jb250cm9sOmxhc3QtY2hpbGQgLnBseXJfX3Rvb2x0aXAge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTBweCkgc2NhbGUoMC44KTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogY2FsYygoI3skcGx5ci1jb250cm9sLWljb24tc2l6ZX0gLyAyKSArICN7JHBseXItY29udHJvbC1wYWRkaW5nfSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSk7XG4gIH1cbn1cblxuLnBseXJfX2NvbnRyb2xzID4gLnBseXJfX2NvbnRyb2w6Zmlyc3QtY2hpbGQsXG4ucGx5cl9fY29udHJvbHMgPiAucGx5cl9fY29udHJvbDpmaXJzdC1jaGlsZCArIC5wbHlyX19jb250cm9sLFxuLnBseXJfX2NvbnRyb2xzID4gLnBseXJfX2NvbnRyb2w6bGFzdC1jaGlsZCB7XG4gICY6aG92ZXIgLnBseXJfX3Rvb2x0aXAsXG4gICYucGx5cl9fdGFiLWZvY3VzIC5wbHlyX190b29sdGlwLFxuICAucGx5cl9fdG9vbHRpcC0tdmlzaWJsZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCkgc2NhbGUoMSk7XG4gIH1cbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQbGF5YmFjayBwcm9ncmVzc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gT2Zmc2V0IHRoZSByYW5nZSB0aHVtYiBpbiBvcmRlciB0byBiZSBhYmxlIHRvIGNhbGN1bGF0ZSB0aGUgcmVsYXRpdmUgcHJvZ3Jlc3MgKCM5NTQpXG4kcGx5ci1wcm9ncmVzcy1vZmZzZXQ6ICRwbHlyLXJhbmdlLXRodW1iLWhlaWdodDtcblxuLnBseXJfX3Byb2dyZXNzIHtcbiAgbGVmdDogY2FsYygjeyRwbHlyLXByb2dyZXNzLW9mZnNldH0gKiAwLjUpO1xuICBtYXJnaW4tcmlnaHQ6ICRwbHlyLXByb2dyZXNzLW9mZnNldDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGlucHV0W3R5cGU9J3JhbmdlJ10sXG4gICZfX2J1ZmZlciB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoI3skcGx5ci1wcm9ncmVzcy1vZmZzZXR9ICogLTAuNSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7JHBseXItcHJvZ3Jlc3Mtb2Zmc2V0fSAqIC0wLjUpO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAjeyRwbHlyLXByb2dyZXNzLW9mZnNldH0pO1xuICB9XG5cbiAgaW5wdXRbdHlwZT0ncmFuZ2UnXSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gIH1cblxuICAvLyBTZWVrIHRvb2x0aXAgdG8gc2hvdyB0aW1lXG4gIC5wbHlyX190b29sdGlwIHtcbiAgICBmb250LXNpemU6ICRwbHlyLWZvbnQtc2l6ZS10aW1lO1xuICAgIGxlZnQ6IDA7XG4gIH1cbn1cblxuLnBseXJfX3Byb2dyZXNzX19idWZmZXIge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgKi9cbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gIGhlaWdodDogJHBseXItcmFuZ2UtdHJhY2staGVpZ2h0O1xuICBsZWZ0OiAwO1xuICBtYXJnaW4tdG9wOiBjYWxjKCgjeyRwbHlyLXJhbmdlLXRyYWNrLWhlaWdodH0gLyAyKSAqIC0xKTtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcblxuICAmOjotd2Via2l0LXByb2dyZXNzLWJhciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAmOjotd2Via2l0LXByb2dyZXNzLXZhbHVlIHtcbiAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gICAgbWluLXdpZHRoOiAkcGx5ci1yYW5nZS10cmFjay1oZWlnaHQ7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC4ycyBlYXNlO1xuICB9XG5cbiAgLy8gTW96aWxsYVxuICAmOjotbW96LXByb2dyZXNzLWJhciB7XG4gICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICAgIG1pbi13aWR0aDogJHBseXItcmFuZ2UtdHJhY2staGVpZ2h0O1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMnMgZWFzZTtcbiAgfVxuXG4gIC8vIE1pY3Jvc29mdFxuICAmOjotbXMtZmlsbCB7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC4ycyBlYXNlO1xuICB9XG59XG5cbi8vIExvYWRpbmcgc3RhdGVcbi5wbHlyLS1sb2FkaW5nIC5wbHlyX19wcm9ncmVzc19fYnVmZmVyIHtcbiAgYW5pbWF0aW9uOiBwbHlyLXByb2dyZXNzIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuICAgIC00NWRlZyxcbiAgICAkcGx5ci1wcm9ncmVzcy1sb2FkaW5nLWJhY2tncm91bmQgMjUlLFxuICAgIHRyYW5zcGFyZW50IDI1JSxcbiAgICB0cmFuc3BhcmVudCA1MCUsXG4gICAgJHBseXItcHJvZ3Jlc3MtbG9hZGluZy1iYWNrZ3JvdW5kIDUwJSxcbiAgICAkcGx5ci1wcm9ncmVzcy1sb2FkaW5nLWJhY2tncm91bmQgNzUlLFxuICAgIHRyYW5zcGFyZW50IDc1JSxcbiAgICB0cmFuc3BhcmVudFxuICApO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGJhY2tncm91bmQtc2l6ZTogJHBseXItcHJvZ3Jlc3MtbG9hZGluZy1zaXplICRwbHlyLXByb2dyZXNzLWxvYWRpbmctc2l6ZTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ucGx5ci0tdmlkZW8ucGx5ci0tbG9hZGluZyAucGx5cl9fcHJvZ3Jlc3NfX2J1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwbHlyLXZpZGVvLXByb2dyZXNzLWJ1ZmZlcmVkLWJhY2tncm91bmQ7XG59XG5cbi5wbHlyLS1hdWRpby5wbHlyLS1sb2FkaW5nIC5wbHlyX19wcm9ncmVzc19fYnVmZmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHBseXItYXVkaW8tcHJvZ3Jlc3MtYnVmZmVyZWQtYmFja2dyb3VuZDtcbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBWb2x1bWVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5wbHlyX192b2x1bWUge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXgtd2lkdGg6IDExMHB4O1xuICBtaW4td2lkdGg6IDgwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDIwJTtcblxuICBpbnB1dFt0eXBlPSdyYW5nZSddIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygjeyRwbHlyLWNvbnRyb2wtc3BhY2luZ30gLyAyKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3skcGx5ci1jb250cm9sLXNwYWNpbmd9IC8gMik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gIH1cbn1cblxuLy8gQXV0byBzaXplIG9uIGlPUyBhcyB0aGVyZSdzIG5vIHNsaWRlclxuLnBseXItLWlzLWlvcyAucGx5cl9fdm9sdW1lIHtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBBdWRpbyBzdHlsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIENvbnRhaW5lclxuLnBseXItLWF1ZGlvIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIENvbnRyb2xzIGNvbnRhaW5lclxuLnBseXItLWF1ZGlvIC5wbHlyX19jb250cm9scyB7XG4gIGJhY2tncm91bmQ6ICRwbHlyLWF1ZGlvLWNvbnRyb2xzLWJhY2tncm91bmQ7XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gIGNvbG9yOiAkcGx5ci1hdWRpby1jb250cm9sLWNvbG9yO1xuICBwYWRkaW5nOiAkcGx5ci1jb250cm9sLXNwYWNpbmc7XG59XG5cbi8vIENvbnRyb2wgZWxlbWVudHNcbi5wbHlyLS1hdWRpbyAucGx5cl9fY29udHJvbCB7XG4gICYucGx5cl9fdGFiLWZvY3VzLFxuICAmOmhvdmVyLFxuICAmW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB7XG4gICAgYmFja2dyb3VuZDogJHBseXItYXVkaW8tY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyO1xuICAgIGNvbG9yOiAkcGx5ci1hdWRpby1jb250cm9sLWNvbG9yLWhvdmVyO1xuICB9XG59XG5cbi8vIFJhbmdlIGlucHV0c1xuLnBseXItLWZ1bGwtdWkucGx5ci0tYXVkaW8gaW5wdXRbdHlwZT0ncmFuZ2UnXSB7XG4gICY6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGx5ci1hdWRpby1yYW5nZS10cmFjay1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgJjo6LW1vei1yYW5nZS10cmFjayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHBseXItYXVkaW8tcmFuZ2UtdHJhY2stYmFja2dyb3VuZDtcbiAgfVxuXG4gICY6Oi1tcy10cmFjayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHBseXItYXVkaW8tcmFuZ2UtdHJhY2stYmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIFByZXNzZWQgc3R5bGVzXG4gICY6YWN0aXZlIHtcbiAgICAmOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICBAaW5jbHVkZSBwbHlyLXJhbmdlLXRodW1iLWFjdGl2ZSgkcGx5ci1hdWRpby1yYW5nZS10aHVtYi1hY3RpdmUtc2hhZG93LWNvbG9yKTtcbiAgICB9XG5cbiAgICAmOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgIEBpbmNsdWRlIHBseXItcmFuZ2UtdGh1bWItYWN0aXZlKCRwbHlyLWF1ZGlvLXJhbmdlLXRodW1iLWFjdGl2ZS1zaGFkb3ctY29sb3IpO1xuICAgIH1cblxuICAgICY6Oi1tcy10aHVtYiB7XG4gICAgICBAaW5jbHVkZSBwbHlyLXJhbmdlLXRodW1iLWFjdGl2ZSgkcGx5ci1hdWRpby1yYW5nZS10aHVtYi1hY3RpdmUtc2hhZG93LWNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gUHJvZ3Jlc3Ncbi5wbHlyLS1hdWRpbyAucGx5cl9fcHJvZ3Jlc3NfX2J1ZmZlciB7XG4gIGNvbG9yOiAkcGx5ci1hdWRpby1wcm9ncmVzcy1idWZmZXJlZC1iYWNrZ3JvdW5kO1xufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFZpZGVvIHN0eWxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQHVzZSAnc2FzczptYXRoJztcblxuLy8gQ29udGFpbmVyXG4ucGx5ci0tdmlkZW8ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wbHlyLXZpZGVvLWJhY2tncm91bmQsICRwbHlyLXZpZGVvLWJhY2tncm91bmQpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICYucGx5ci0tbWVudS1vcGVuIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxufVxuXG4ucGx5cl9fdmlkZW8td3JhcHBlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXBseXItdmlkZW8tYmFja2dyb3VuZCwgJHBseXItdmlkZW8tYmFja2dyb3VuZCk7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vLyBEZWZhdWx0IHRvIDE2OjkgcmF0aW8gYnV0IHRoaXMgaXMgc2V0IGJ5IEphdmFTY3JpcHQgYmFzZWQgb24gY29uZmlnXG4kZW1iZWQtcGFkZGluZzogKG1hdGguZGl2KDEwMCwgMTYpICogOSk7XG5cbi5wbHlyX192aWRlby1lbWJlZCxcbi5wbHlyX192aWRlby13cmFwcGVyLS1maXhlZC1yYXRpbyB7XG4gIEBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogMTYgLyA5KSB7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiB0by1wZXJjZW50YWdlKCRlbWJlZC1wYWRkaW5nKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICBhc3BlY3QtcmF0aW86IDE2IC8gOTtcbn1cblxuLnBseXJfX3ZpZGVvLWVtYmVkIGlmcmFtZSxcbi5wbHlyX192aWRlby13cmFwcGVyLS1maXhlZC1yYXRpbyB2aWRlbyB7XG4gIGJvcmRlcjogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8vIEZvciBWaW1lbywgaWYgdGhlIGZ1bGwgY3VzdG9tIFVJIGlzIHN1cHBvcnRlZFxuLnBseXItLWZ1bGwtdWkgLnBseXJfX3ZpZGVvLWVtYmVkID4gLnBseXJfX3ZpZGVvLWVtYmVkX19jb250YWluZXIge1xuICAkaGVpZ2h0OiAyNDA7XG4gICRvZmZzZXQ6IHRvLXBlcmNlbnRhZ2UobWF0aC5kaXYoJGhlaWdodCAtICRlbWJlZC1wYWRkaW5nLCBtYXRoLmRpdigkaGVpZ2h0LCA1MCkpKTtcbiAgcGFkZGluZy1ib3R0b206IHRvLXBlcmNlbnRhZ2UoJGhlaWdodCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kb2Zmc2V0KTtcbn1cblxuLy8gQ29udHJvbHMgY29udGFpbmVyXG4ucGx5ci0tdmlkZW8gLnBseXJfX2NvbnRyb2xzIHtcbiAgYmFja2dyb3VuZDogJHBseXItdmlkZW8tY29udHJvbHMtYmFja2dyb3VuZDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogaW5oZXJpdDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XG4gIGJvdHRvbTogMDtcbiAgY29sb3I6ICRwbHlyLXZpZGVvLWNvbnRyb2wtY29sb3I7XG4gIGxlZnQ6IDA7XG4gIHBhZGRpbmc6IGNhbGMoI3skcGx5ci1jb250cm9sLXNwYWNpbmd9IC8gMik7XG4gIHBhZGRpbmctdG9wOiBjYWxjKCN7JHBseXItY29udHJvbC1zcGFjaW5nfSAqIDIpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMgZWFzZS1pbi1vdXQsIHRyYW5zZm9ybSAwLjRzIGVhc2UtaW4tb3V0O1xuICB6LWluZGV4OiAzO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkcGx5ci1icC1zbSkge1xuICAgIHBhZGRpbmc6ICRwbHlyLWNvbnRyb2wtc3BhY2luZztcbiAgICBwYWRkaW5nLXRvcDogY2FsYygjeyRwbHlyLWNvbnRyb2wtc3BhY2luZ30gKiAzLjUpO1xuICB9XG59XG5cbi8vIEhpZGUgY29udHJvbHNcbi5wbHlyLS12aWRlby5wbHlyLS1oaWRlLWNvbnRyb2xzIC5wbHlyX19jb250cm9scyB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG59XG5cbi8vIENvbnRyb2wgZWxlbWVudHNcbi5wbHlyLS12aWRlbyAucGx5cl9fY29udHJvbCB7XG4gIC8vIEhvdmVyIGFuZCB0YWIgZm9jdXNcbiAgJi5wbHlyX190YWItZm9jdXMsXG4gICY6aG92ZXIsXG4gICZbYXJpYS1leHBhbmRlZD0ndHJ1ZSddIHtcbiAgICBiYWNrZ3JvdW5kOiAkcGx5ci12aWRlby1jb250cm9sLWJhY2tncm91bmQtaG92ZXI7XG4gICAgY29sb3I6ICRwbHlyLXZpZGVvLWNvbnRyb2wtY29sb3ItaG92ZXI7XG4gIH1cbn1cblxuLy8gTGFyZ2UgcGxheSBidXR0b24gKHZpZGVvIG9ubHkpXG4ucGx5cl9fY29udHJvbC0tb3ZlcmxhaWQge1xuICBiYWNrZ3JvdW5kOiAkcGx5ci12aWRlby1jb250cm9sLWJhY2tncm91bmQtaG92ZXI7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgY29sb3I6ICRwbHlyLXZpZGVvLWNvbnRyb2wtY29sb3I7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGxlZnQ6IDUwJTtcbiAgb3BhY2l0eTogMC45O1xuICBwYWRkaW5nOiBjYWxjKCN7JHBseXItY29udHJvbC1zcGFjaW5nfSAqIDEuNSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB0cmFuc2l0aW9uOiAwLjNzO1xuICB6LWluZGV4OiAyO1xuXG4gIC8vIE9mZnNldCBpY29uIHRvIG1ha2UgdGhlIHBsYXkgYnV0dG9uIGxvb2sgcmlnaHRcbiAgc3ZnIHtcbiAgICBsZWZ0OiAycHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ucGx5ci0tcGxheWluZyAucGx5cl9fY29udHJvbC0tb3ZlcmxhaWQge1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5wbHlyLS1mdWxsLXVpLnBseXItLXZpZGVvIC5wbHlyX19jb250cm9sLS1vdmVybGFpZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBWaWRlbyByYW5nZSBpbnB1dHNcbi5wbHlyLS1mdWxsLXVpLnBseXItLXZpZGVvIGlucHV0W3R5cGU9J3JhbmdlJ10ge1xuICAmOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHBseXItdmlkZW8tcmFuZ2UtdHJhY2stYmFja2dyb3VuZDtcbiAgfVxuXG4gICY6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwbHlyLXZpZGVvLXJhbmdlLXRyYWNrLWJhY2tncm91bmQ7XG4gIH1cblxuICAmOjotbXMtdHJhY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwbHlyLXZpZGVvLXJhbmdlLXRyYWNrLWJhY2tncm91bmQ7XG4gIH1cblxuICAvLyBQcmVzc2VkIHN0eWxlc1xuICAmOmFjdGl2ZSB7XG4gICAgJjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgQGluY2x1ZGUgcGx5ci1yYW5nZS10aHVtYi1hY3RpdmUoJHBseXItdmlkZW8tcmFuZ2UtdGh1bWItYWN0aXZlLXNoYWRvdy1jb2xvcik7XG4gICAgfVxuXG4gICAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICBAaW5jbHVkZSBwbHlyLXJhbmdlLXRodW1iLWFjdGl2ZSgkcGx5ci12aWRlby1yYW5nZS10aHVtYi1hY3RpdmUtc2hhZG93LWNvbG9yKTtcbiAgICB9XG5cbiAgICAmOjotbXMtdGh1bWIge1xuICAgICAgQGluY2x1ZGUgcGx5ci1yYW5nZS10aHVtYi1hY3RpdmUoJHBseXItdmlkZW8tcmFuZ2UtdGh1bWItYWN0aXZlLXNoYWRvdy1jb2xvcik7XG4gICAgfVxuICB9XG59XG5cbi8vIFByb2dyZXNzXG4ucGx5ci0tdmlkZW8gLnBseXJfX3Byb2dyZXNzX19idWZmZXIge1xuICBjb2xvcjogJHBseXItdmlkZW8tcHJvZ3Jlc3MtYnVmZmVyZWQtYmFja2dyb3VuZDtcbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGdWxsc2NyZWVuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ucGx5cjpmdWxsc2NyZWVuIHtcbiAgQGluY2x1ZGUgcGx5ci1mdWxsc2NyZWVuLWFjdGl2ZSgpO1xufVxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbi5wbHlyOi13ZWJraXQtZnVsbC1zY3JlZW4ge1xuICBAaW5jbHVkZSBwbHlyLWZ1bGxzY3JlZW4tYWN0aXZlKCk7XG59XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuLnBseXI6LW1vei1mdWxsLXNjcmVlbiB7XG4gIEBpbmNsdWRlIHBseXItZnVsbHNjcmVlbi1hY3RpdmUoKTtcbn1cblxuLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4ucGx5cjotbXMtZnVsbHNjcmVlbiB7XG4gIEBpbmNsdWRlIHBseXItZnVsbHNjcmVlbi1hY3RpdmUoKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIHVuc3VwcG9ydGVkIGJyb3dzZXJzXG4ucGx5ci0tZnVsbHNjcmVlbi1mYWxsYmFjayB7XG4gIEBpbmNsdWRlIHBseXItZnVsbHNjcmVlbi1hY3RpdmUoKTtcbiAgYm90dG9tOiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbGVmdDogMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAxMDAwMDAwMDtcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBZHZlcnRpc2VtZW50c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnBseXJfX2FkcyB7XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gIGJvdHRvbTogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBsZWZ0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IC0xOyAvLyBIaWRlIGl0IGJ5IGRlZmF1bHRcblxuICAvLyBNYWtlIHN1cmUgdGhlIGlubmVyIGNvbnRhaW5lciBpcyBiaWcgZW5vdWdoIGZvciB0aGUgYWQgY3JlYXRpdmUuXG4gID4gZGl2LFxuICA+IGRpdiBpZnJhbWUge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBUaGUgY291bnRkb3duIGxhYmVsXG4gICY6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkcGx5ci1jb2xvci1ncmF5LTkwMDtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgYm90dG9tOiAkcGx5ci1jb250cm9sLXNwYWNpbmc7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgY29udGVudDogYXR0cihkYXRhLWJhZGdlLXRleHQpO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBwYWRkaW5nOiAycHggNnB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogJHBseXItY29udHJvbC1zcGFjaW5nO1xuICAgIHotaW5kZXg6IDM7XG4gIH1cblxuICAmOmVtcHR5OjphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLyBBZHZlcnRpc2VtZW50IGN1ZSdzIGZvciB0aGUgcHJvZ3Jlc3MgYmFyXG4ucGx5cl9fY3VlcyB7XG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogJHBseXItcmFuZ2UtdHJhY2staGVpZ2h0O1xuICBsZWZ0OiAwO1xuICBtYXJnaW46IC0oJHBseXItcmFuZ2UtdHJhY2staGVpZ2h0IC8gMikgMCAwO1xuICBvcGFjaXR5OiAwLjg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiAzcHg7XG4gIHotaW5kZXg6IDM7IC8vIEJldHdlZW4gcHJvZ3Jlc3MgYW5kIHRodW1iXG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ29sb3JzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kcGx5ci1jb2xvci1tYWluOiB2YXIoLS1wbHlyLWNvbG9yLW1haW4sIGhzbCgxOTgsIDEwMCUsIDUwJSkpICFkZWZhdWx0O1xuJHBseXItdmlkZW8tYmFja2dyb3VuZDogdmFyKC0tcGx5ci12aWRlby1iYWNrZ3JvdW5kLCByZ2JhKDAsMCwwLDEpKSAhZGVmYXVsdDtcblxuLy8gR3JheXNjYWxlXG4kcGx5ci1jb2xvci1ncmF5LTkwMDogaHNsKDIxNiwgMTUlLCAxNiUpICFkZWZhdWx0O1xuJHBseXItY29sb3ItZ3JheS04MDA6IGhzbCgyMTYsIDE1JSwgMjUlKSAhZGVmYXVsdDtcbiRwbHlyLWNvbG9yLWdyYXktNzAwOiBoc2woMjE2LCAxNSUsIDM0JSkgIWRlZmF1bHQ7XG4kcGx5ci1jb2xvci1ncmF5LTYwMDogaHNsKDIxNiwgMTUlLCA0MyUpICFkZWZhdWx0O1xuJHBseXItY29sb3ItZ3JheS01MDA6IGhzbCgyMTYsIDE1JSwgNTIlKSAhZGVmYXVsdDtcbiRwbHlyLWNvbG9yLWdyYXktNDAwOiBoc2woMjE2LCAxNSUsIDYxJSkgIWRlZmF1bHQ7XG4kcGx5ci1jb2xvci1ncmF5LTMwMDogaHNsKDIxNiwgMTUlLCA3MCUpICFkZWZhdWx0O1xuJHBseXItY29sb3ItZ3JheS0yMDA6IGhzbCgyMTYsIDE1JSwgNzklKSAhZGVmYXVsdDtcbiRwbHlyLWNvbG9yLWdyYXktMTAwOiBoc2woMjE2LCAxNSUsIDg4JSkgIWRlZmF1bHQ7XG4kcGx5ci1jb2xvci1ncmF5LTUwOiBoc2woMjE2LCAxNSUsIDk3JSkgIWRlZmF1bHQ7XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUHJldmlldyBUaHVtYm5haWxzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW1wb3J0ICcuL3NldHRpbmdzJztcblxuLnBseXJfX3ByZXZpZXctdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGx5ci1wcmV2aWV3LWJhY2tncm91bmQ7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm90dG9tOiAxMDAlO1xuICBib3gtc2hhZG93OiAkcGx5ci1wcmV2aWV3LXNoYWRvdztcbiAgbWFyZ2luLWJvdHRvbTogY2FsYygjeyRwbHlyLXByZXZpZXctcGFkZGluZ30gKiAyKTtcbiAgb3BhY2l0eTogMDtcbiAgcGFkZGluZzogJHBseXItcHJldmlldy1yYWRpdXM7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDEwcHgpIHNjYWxlKDAuOCk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAxMDAlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyAwLjFzIGVhc2UsIG9wYWNpdHkgMC4ycyAwLjFzIGVhc2U7XG4gIHotaW5kZXg6IDI7XG5cbiAgJi0taXMtc2hvd24ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCkgc2NhbGUoMSk7XG4gIH1cblxuICAvLyBUaGUgYmFja2dyb3VuZCB0cmlhbmdsZVxuICAmOjpiZWZvcmUge1xuICAgIGJvcmRlci1sZWZ0OiAkcGx5ci1wcmV2aWV3LWFycm93LXNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAkcGx5ci1wcmV2aWV3LWFycm93LXNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcDogJHBseXItcHJldmlldy1hcnJvdy1zaXplIHNvbGlkICRwbHlyLXByZXZpZXctYmFja2dyb3VuZDtcbiAgICBib3R0b206IGNhbGMoI3skcGx5ci1wcmV2aWV3LWFycm93LXNpemV9ICogLTEpO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGhlaWdodDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB3aWR0aDogMDtcbiAgICB6LWluZGV4OiAyO1xuICB9XG5cbiAgJl9faW1hZ2UtY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkcGx5ci1wcmV2aWV3LWltYWdlLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXJhZGl1czogY2FsYygjeyRwbHlyLXByZXZpZXctcmFkaXVzfSAtIDFweCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMDtcblxuICAgIGltZyB7XG4gICAgICBoZWlnaHQ6IDEwMCU7IC8vIE5vbiBzcHJpdGUgaW1hZ2VzIGFyZSAxMDAlLiBTcHJpdGVzIHdpbGwgaGF2ZSB0aGVpciBzaXplIGFwcGxpZWQgYnkgSmF2YVNjcmlwdFxuICAgICAgbGVmdDogMDtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAvLyBTZWVrIHRpbWUgdGV4dFxuICAmX190aW1lLWNvbnRhaW5lciB7XG4gICAgYm90dG9tOiAkcGx5ci1wcmV2aWV3LXRpbWUtYm90dG9tLW9mZnNldDtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHotaW5kZXg6IDM7XG5cbiAgICBzcGFuIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwbHlyLXByZXZpZXctdGltZS1iYWNrZ3JvdW5kO1xuICAgICAgYm9yZGVyLXJhZGl1czogY2FsYygjeyRwbHlyLXByZXZpZXctcmFkaXVzfSAtIDFweCk7XG4gICAgICBjb2xvcjogJHBseXItcHJldmlldy10aW1lLWNvbG9yO1xuICAgICAgZm9udC1zaXplOiAkcGx5ci1wcmV2aWV3LXRpbWUtZm9udC1zaXplO1xuICAgICAgcGFkZGluZzogJHBseXItcHJldmlldy10aW1lLXBhZGRpbmc7XG4gICAgfVxuICB9XG59XG5cbi5wbHlyX19wcmV2aWV3LXNjcnViYmluZyB7XG4gIGJvdHRvbTogMDtcbiAgZmlsdGVyOiBibHVyKDFweCk7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgbWFyZ2luOiBhdXRvOyAvLyBSZXF1aXJlZCB3aGVuIHZpZGVvIGlzIGRpZmZlcmVudCBkaW1lbnNpb25zIHRvIGNvbnRhaW5lciAoZS5nLiBmdWxsc2NyZWVuKVxuICBvcGFjaXR5OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDE7XG5cbiAgJi0taXMtc2hvd24ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICBpbWcge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFByZXZpZXcgVGh1bWJuYWlsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHBseXItcHJldmlldy1wYWRkaW5nOiAkcGx5ci10b29sdGlwLXBhZGRpbmcgIWRlZmF1bHQ7XG4kcGx5ci1wcmV2aWV3LWJhY2tncm91bmQ6ICRwbHlyLXRvb2x0aXAtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRwbHlyLXByZXZpZXctcmFkaXVzOiAkcGx5ci10b29sdGlwLXJhZGl1cyAhZGVmYXVsdDtcbiRwbHlyLXByZXZpZXctc2hhZG93OiAkcGx5ci10b29sdGlwLXNoYWRvdyAhZGVmYXVsdDtcbiRwbHlyLXByZXZpZXctYXJyb3ctc2l6ZTogJHBseXItdG9vbHRpcC1hcnJvdy1zaXplICFkZWZhdWx0O1xuJHBseXItcHJldmlldy1pbWFnZS1iYWNrZ3JvdW5kOiAkcGx5ci1jb2xvci1ncmF5LTIwMCAhZGVmYXVsdDtcbiRwbHlyLXByZXZpZXctdGltZS1mb250LXNpemU6ICRwbHlyLWZvbnQtc2l6ZS10aW1lICFkZWZhdWx0O1xuJHBseXItcHJldmlldy10aW1lLXBhZGRpbmc6IDNweCA2cHggIWRlZmF1bHQ7XG4kcGx5ci1wcmV2aWV3LXRpbWUtYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjU1KTtcbiRwbHlyLXByZXZpZXctdGltZS1jb2xvcjogI2ZmZjtcbiRwbHlyLXByZXZpZXctdGltZS1ib3R0b20tb2Zmc2V0OiA2cHg7XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQW5pbWF0aW9uIHV0aWxzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ucGx5ci0tbm8tdHJhbnNpdGlvbiB7XG4gIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBIaWRpbmcgY29udGVudCBuaWNlbHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFNjcmVlbiByZWFkZXIgb25seSBlbGVtZW50c1xuLnBseXJfX3NyLW9ubHkge1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLy8gIWltcG9ydGFudCBpcyBub3QgYWx3YXlzIG5lZWRlZFxuICBAaWYgJHBseXItc3Itb25seS1pbXBvcnRhbnQge1xuICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMXB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxcHggIWltcG9ydGFudDtcbiAgfSBAZWxzZSB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGhlaWdodDogMXB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gIH1cbn1cblxuLnBseXIgW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQ0lWSUMtQ09PS0lFLUNPTlRST0xcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kY2NjLWdyaWQtYXJlYTogYm90dG9tLXJpZ2h0ICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBIaWRlIFNWRyB0aGF0IGRvZXMgbm90IHNlZW0gdG8gYmUgdXNlZCBhbnl3YXkgYnV0IHdvdWxkIGNvdmVyIG90aGVyXG4gKiAgICAgRmxvYXQgR3JpZCBlbGVtZW50cy4gYG92ZXJmbG93OiBoaWRkZW5gIHdvdWxkIG5vdCB3b3JrIHByb3Blcmx5IHdpdGggdGhlXG4gKiAgICAgRmxvYXQgR3JpZOKAmXMgY29sdW1uIHNpemluZy5cbiAqL1xuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHksIHNlbGVjdG9yLW1heC1pZCwgaXRjc3Mvbm8tYXQtaW1wb3J0YW50ICovXG4uanMtZW5hYmxlLTNyZC1wYXJ0eS1mbG9hdC1ncmlkIHtcblxuICAgICNjY2MtaWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGZsb2F0LWdyaWQtYXJlYShcbiAgICAgICAgICAgICRhcmVhOiAkY2NjLWdyaWQtYXJlYSxcbiAgICAgICAgICAgICRvcmRlcjogMSxcbiAgICAgICAgKTtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcblxuICAgICAgICA+IHN2ZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhMTF5LWhpZGRlbigpO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSwgc2VsZWN0b3ItbWF4LWlkLCBpdGNzcy9uby1hdC1pbXBvcnRhbnQgKi9cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNGTE9BVC1HUklEXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQHVzZSBcInNhc3M6bGlzdFwiO1xuXG4vLy8gTWl4aW4gZm9yIEZsb2F0IEdyaWQgYXJlYXMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGFyZWEgLSBGbG9hdCBHcmlkIGFyZWEgd2hlcmUgdGhlIGVsZW1lbnQgc2hvdWxkIGJlIG1vdmVkIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3JkZXIgLSBQb3NpdGlvbiBvZiB0aGUgZWxlbWVudCBpbiB0aGUgRmxvYXQgR3JpZCBhcmVhLlxuLy8vIEByZXR1cm5zIHtDU1N9IEZsb2F0IEdyaWQgYXJlYSBDU1MgY3VzdG9tIHByb3BlcnRpZXMuXG4vLy9cbi8vLyBbMV0gQXNzaWduIGFyZWEgdG8gQ1NTIGN1c3RvbSBwcm9wZXJ0eSB0aGF0IHdpbGwgYmUgdXNlZCBieSBKYXZhU2NyaXB0LlxuLy8vIFsyXSBBZGQgY3VycmVudCBzZWxlY3RvciB0byB0aGUgbGlzdCBvZiBzZWxlY3RvcnMgdGhhdCB3aWxsIGJlIHVzZWQgYnlcbi8vLyAgICAgSmF2YVNjcmlwdC5cbi8vLyBbM10gUmVzZXQgcG9zaXRpb24gb2YgZWxlbWVudCBpbiB0aGUgRmxvYXQgR3JpZCBhcmVhLlxuLy8vIFs0XSBBbGxvd2luZyBhIGN1c3RvbSBvcmRlciBvciBwb3NpdGlvbiBvZiB0aGUgZWxlbWVudCBpbiB0aGUgRmxvYXQgR3JpZCBhcmVhLlxuLy8vIFs1XSBTaW5jZSB3ZSBjYW5ub3QgcmVtb3ZlIGN1c3RvbSBwcm9wZXJ0aWVzIGZyb20gYSBzY29wZSwgd2Ugc2V0IHRoZSB2YWx1ZVxuLy8vICAgICBmb3IgY2hpbGQgZWxlbWVudHMgdG8gdGhlIHN0cmluZyghKSBgZmFsc2VgLiBXZSB1c2UgdGhpcyBpbiB0aGVcbi8vLyAgICAgYG1vdmVFbGVtZW50VG9HcmlkQXJlYSgpYCBzY3JpcHQgdG8gYXZvaWQgbW92aW5nIGNoaWxkIGVsZW1lbnRzIG9mIGFcbi8vLyAgICAgRmxvYXQgR3JpZCBpdGVtIGludG8gYSBGbG9hdCBHcmlkIGFyZWEuXG5AbWl4aW4gZmxvYXQtZ3JpZC1hcmVhKCRhcmVhLCAkcG9zaXRpb246IHN0YXRpYywgJG9yZGVyOiBudWxsKSB7XG4gICAgLS1mbG9hdC1ncmlkLWFyZWE6ICN7JGFyZWF9OyAvLyBbMV1cbiAgICAkZmxvYXQtZ3JpZC1zZWxlY3RvcnM6IGxpc3QuYXBwZW5kKCRmbG9hdC1ncmlkLXNlbGVjdG9ycywgI3smfSwgXCJjb21tYVwiKSAhZ2xvYmFsOyAvLyBbMl1cbiAgICBwb3NpdGlvbjogJHBvc2l0aW9uOyAvLyBbM11cbiAgICBvcmRlcjogJG9yZGVyOyAvLyBbNF1cblxuICAgID4gKiB7XG4gICAgICAgIC0tZmxvYXQtZ3JpZC1hcmVhOiBmYWxzZTsgLy8gWzVdXG4gICAgfVxufVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0ExMVkgSGlkZGVuXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gTWl4aW4gdG8gaGlkZSBjb250ZW50IGluIGFuIGFjY2Vzc2libGUgd2F5LlxuLy8gU2VlIGh0dHBzOi8vYTExeXByb2plY3QuY29tL3Bvc3RzL2hvdy10by1oaWRlLWNvbnRlbnQvIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuQG1peGluIGExMXktaGlkZGVuKCRpbXBvcnRhbnQ6IG51bGwpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBpdGNzcy9uby1hdC1pbXBvcnRhbnQgKi9cbiAgICB3aWR0aDogaW1wb3J0YW50KDFweCwgJGltcG9ydGFudCk7XG4gICAgaGVpZ2h0OiBpbXBvcnRhbnQoMXB4LCAkaW1wb3J0YW50KTtcbiAgICBvdmVyZmxvdzogaW1wb3J0YW50KGhpZGRlbiwgJGltcG9ydGFudCk7XG4gICAgY2xpcDogaW1wb3J0YW50KHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KSwgJGltcG9ydGFudCk7XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTUVSQ1VSWS1DSEFULUJPVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRtZXJjdXJ5LWdyaWQtYXJlYTogYm90dG9tLXJpZ2h0ICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBNb3ZlIHRvIHRoZSBmaXJzdCBGbG9hdCBHcmlkIGFyZWEgaXRlbXMgcG9zaXRpb24uXG4gKi9cblxuLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5LCBzZWxlY3Rvci1tYXgtaWQsIGl0Y3NzL25vLWF0LWltcG9ydGFudCAqL1xuLmpzLWVuYWJsZS0zcmQtcGFydHktZmxvYXQtZ3JpZCB7XG5cbiAgICAjbWVyY3VyeS13aWRnZXQge1xuICAgICAgICBAaW5jbHVkZSBmbG9hdC1ncmlkLWFyZWEoXG4gICAgICAgICAgICAkYXJlYTogJG1lcmN1cnktZ3JpZC1hcmVhLFxuICAgICAgICApO1xuXG4gICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgIC50ZWFzZXIsXG4gICAgICAgIC50b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBleHRlbmQgJWZsb2F0LWdyaWQtYXJlYS1vZmZzZXQ7XG4gICAgICAgICAgICBvcmRlcjogLTE7IC8qIFsxXSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLnRlYXNlcixcbiAgICAgICAgLm9wZW4tdG9nZ2xlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSwgc2VsZWN0b3ItbWF4LWlkLCBpdGNzcy9uby1hdC1pbXBvcnRhbnQgKi9cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJQ09OU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkB1c2UgXCJzYXNzOm1hcFwiO1xuXG4kaWNvbi1jb2xvcjogICAgICAgICAgICRJQ09OLUNPTE9SICFkZWZhdWx0O1xuJGljb24tdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBJbiBjYXNlIHRoZSBpY29uIGlzIGFuIGA8YT5gIGVsZW1lbnQsIHRoaXMgZ2l2ZXMgdXMgYW4gZWFzeSB3YXkgb2ZcbiAqICAgICBlbGltaW5hdGluZyBhbiB1bmRlcmxpbmUgYXBwZWFyaW5nIGluIElFMTEuIEluIGNhc2UgeW91IGFjdHVhbGx5IHdhbnRcbiAqICAgICBhbnkgdGV4dC1kZWNvcmF0aW9uLCB5b3UgY2FuIG92ZXJyaWRlIHRoZSBgJGljb24tdGV4dC1kZWNvcmF0aW9uYFxuICogICAgIHZhcmlhYmxlLlxuICovXG4uYy1pY29uIHtcbiAgICBAaW5jbHVkZSBpY29uLWZvbnQoKTtcbiAgICBAaW5jbHVkZSByZXNldC1idXR0b24oKTtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICRmb250LXNpemU6ICAgaWNvbi1zaXplKG1lZGl1bSksXG4gICAgICAgICRsaW5lLWhlaWdodDogZmFsc2VcbiAgICApO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGljb24tdGV4dC1kZWNvcmF0aW9uOyAvKiBbMV0gKi9cbiAgICBjb2xvcjogJGljb24tY29sb3I7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCk7XG4gICAgICAgIGNvbnRlbnQ6IHZhcigtLWJyb24taWNvbik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbn1cblxuXG5cbi8qKlxuICogR2VuZXJhdGUgZmFsbGJhY2staWNvbnMuXG4gKiBVc2Uga2V5IGFzIG5hbWUgYW5kIHZhbHVlIGFzIGljb24gY29udGVudC5cbiAqL1xuQGlmICgkRkFMTEJBQ0stSUNPTlMpIHtcbiAgICAvLyBNZXJnZSBvbGQgZmFsbGJhY2sgaWNvbnMgd2l0aCBwcm9wZXIgbmV3IGljb24gbmFtaW5nIGZvciBjbGFzcyBnZW5lcmF0aW9uLCBzb1xuICAgIC8vIGJvdGgsIG9sZCBhbmQgbmV3IGljb25zIGFyZSBhdmFpbGFibGUgYXMgaWNvbiBjbGFzc2VzLlxuICAgICRGQUxMQkFDSy1JQ09OUy1NQVBQRUQ6ICgpO1xuICAgIEBlYWNoICRmYWxsYmFjay1pY29uLCAkZGF0YSBpbiAkRkFMTEJBQ0stSUNPTlMge1xuICAgICAgICAkbmFtZTogJGZhbGxiYWNrLWljb247XG4gICAgICAgICRjdXJyZW50OiBtYXAuZ2V0KCRGQUxMQkFDSy1JQ09OUywgJGZhbGxiYWNrLWljb24sIFwiY3VycmVudFwiKTtcbiAgICAgICAgJEZBTExCQUNLLUlDT05TLU1BUFBFRDogbWFwLm1lcmdlKCRGQUxMQkFDSy1JQ09OUy1NQVBQRUQsICgkbmFtZTogbWFwLmdldCgkSUNPTlMsICRjdXJyZW50KSkpO1xuICAgIH1cblxuICAgICRJQ09OUzogbWFwLm1lcmdlKCRJQ09OUywgJEZBTExCQUNLLUlDT05TLU1BUFBFRCk7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgaWNvbiBkZWZpbml0aW9ucyBmb3IgZGVmYXVsdCBhbmQgb3B0aW9uYWwgY29tcGxleGl0aWVzLlxuICovXG5AZWFjaCAkbmFtZSwgJGRhdGEgaW4gJElDT04tQ09NUExFWElUWS1EQVRBIHtcbiAgICAuYy1pY29uLS1cXFsjeyRuYW1lfVxcXSB7XG4gICAgICAgIEBpbmNsdWRlIGljb24tZ2VuZXJhdGUtZGVmaW5pdGlvbigkZGF0YSk7XG4gICAgfVxufVxuXG4vKipcbiAqIEV4dGVuZCBpY29uIHNlbGVjdG9ycyBmb3Igc2VtYW50aWMgaWNvbnMuXG4gKi9cbkBlYWNoICRuYW1lLCAkY29udGVudCBpbiAkU0VNQU5USUMtSUNPTlMge1xuICAgIEBpZiBub3QgKCRjb250ZW50ID09IG51bGwpIHtcbiAgICAgICAgLmMtaWNvbi0tXFxbI3skbmFtZX1cXF0ge1xuICAgICAgICAgICAgQGV4dGVuZCAuYy1pY29uLS1cXFsjeyRjb250ZW50fVxcXTsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovXG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgcGxhY2Vob2xkZXItaWNvbi1zZW1hbnRpYygkbmFtZSk7XG4gICAgfVxufVxuXG4vKipcbiAqIEV4dGVuZCBpY29uIHNlbGVjdG9ycyBmb3IgZmFsbGJhY2tzLlxuICovXG5AaWYgKCRGQUxMQkFDSy1JQ09OUykge1xuICAgIEBlYWNoICRuYW1lLCAkZGF0YSBpbiAkRkFMTEJBQ0stSUNPTlMge1xuICAgICAgICAkY3VycmVudDogbWFwLmdldCgkRkFMTEJBQ0stSUNPTlMsICRuYW1lLCBcImN1cnJlbnRcIik7XG5cbiAgICAgICAgQGlmIG5vdCAoJGN1cnJlbnQgPT0gbnVsbCkge1xuICAgICAgICAgICAgLmMtaWNvbi0tXFxbI3skbmFtZX1cXF0ge1xuICAgICAgICAgICAgICAgIEBleHRlbmQgLmMtaWNvbi0tXFxbI3skY3VycmVudH1cXF07IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG59XG5cbi8qKlxuICogR2VuZXJhdGUgY29tYm8gbW9kaWZpZXIgZm9yIHNpemUgJiBjb21wbGV4aXR5LlxuICovXG5AZWFjaCAkc2l6ZSwgJGNvbXBsZXhpdHkgaW4gJElDT04tU0laRS1UTy1DT01QTEVYSVRZLU1BUFBJTkcge1xuICAgIC8vIHNraXAgbWVkaXVtIChkZWZhdWx0KVxuICAgIEBpZiAoJGNvbXBsZXhpdHkpIHtcbiAgICAgICAgLmMtaWNvbi0tI3skc2l6ZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1jb21wbGV4aXR5KCRjb21wbGV4aXR5KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuIC8qKlxuICogR2VuZXJhdGUgc2l6aW5nIG1vZGlmaWVycy5cbiAqL1xuQGVhY2ggJHNpemUsICR2YWx1ZSBpbiAkSUNPTi1TSVpFUyB7XG5cbiAgICAvLyBTa2lwIG1lZGl1bSAoZGVmYXVsdCkuXG4gICAgQGlmICgkc2l6ZSAhPSBcIm1lZGl1bVwiKSB7XG4gICAgICAgIC5jLWljb24tLSN7JHNpemV9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgIGljb24tc2l6ZSgkc2l6ZSksXG4gICAgICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiBmYWxzZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjUkVTRVQtQlVUVE9OXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8vIFJlc2V0IGJyb3dzZXItZGVmYXVsdCBidXR0b24gc3R5bGVzLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHJldm9sdmVyIFtmYWxzZV0gUmVzZXQgZnVsbHkuIE90aGVyd2lzZSBvbmx5IGEgbWluaW1hbGlzdGljIHJlc2V0IGlzIGRvbmVcbi8vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQgbWlnaHQgbGVhdmUgc29tZSBzdHlsZXMgdW4tcmVzZXQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkcmVtb3ZlLWZvY3VzIFt0cnVlXSBSZW1vdmUgZGVmYXVsdCBmb2N1cyBzdHlsZXMuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtY29sb3IgW3RyYW5zcGFyZW50XSBTZXQgYGJhY2tncm91bmQtY29sb3JgLlxuQG1peGluIHJlc2V0LWJ1dHRvbigkcmV2b2x2ZXI6IGZhbHNlLCAkcmVtb3ZlLWZvY3VzOiB0cnVlLCAkYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQpIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAoJHJldm9sdmVyKSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIC8vIEluaGVyaXQgZm9udCAmIGNvbG9yIGZyb20gYW5jZXN0b3IuXG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIC8vIE5vcm1hbGl6ZSBgbGluZS1oZWlnaHRgLiBDYW5ub3QgYmUgY2hhbmdlZCBmcm9tIGBub3JtYWxgIGluIEZpcmVmb3ggNCsuXG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcblxuXG4gICAgICAgIC8vIENvcnJlY3RzIGZvbnQgc21vb3RoaW5nIGZvciB3ZWJraXQuXG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGluaGVyaXQ7XG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBpbmhlcml0O1xuXG4gICAgICAgIC8vIENvcnJlY3RzIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICB9XG5cbiAgICB9IEBlbHNlIGlmICgkcmVtb3ZlLWZvY3VzKSB7XG5cbiAgICAgICAgLy8gQFRPRE86IFJlZmFjdG9yIGZvY3VzIHN0eWxlcyBmb3IgYmV0dGVyIGFjY2Vzc2liaWxpdHlcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNIRUFERVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kaGVhZGVyLWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1QQUdFLUhFQUQtQlJFQUtQT0lOVCAhZGVmYXVsdDtcbiRoZWFkZXItaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVBBR0UtSEVBRC1IRUlHSFQgIWRlZmF1bHQ7XG4kaGVhZGVyLWhlaWdodC1hdC1icmVha3BvaW50OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1QQUdFLUhFQUQtSEVJR0hULUFULUJSRUFLUE9JTlQgIWRlZmF1bHQ7XG4kaGVhZGVyLXBvc2l0aW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRoZWFkZXItc3RhdGljLXNwYWNpbmctYm90dG9tOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAwICFkZWZhdWx0O1xuJGhlYWRlci1zdGF0aWMtc3BhY2luZy1ib3R0b20tYXQtYnJlYWtwb2ludDogICAgICAgICAgICAgICRoZWFkZXItc3RhdGljLXNwYWNpbmctYm90dG9tICFkZWZhdWx0O1xuJGhlYWRlci16LWluZGV4OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHooXCJoZWFkZXJcIikgIWRlZmF1bHQ7XG4kaGVhZGVyLWJvcmRlci1ib3R0b206ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kaGVhZGVyLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLVBBTEUgIWRlZmF1bHQ7XG4kaGVhZGVyLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kaGVhZGVyLWxvZ28tc3BhY2luZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kaGVhZGVyLWhhcy1zdWItYnJhbmQtbG9nbzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kaGVhZGVyLXN1Yi1icmFuZC1sb2dvLXNwYWNpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kaGVhZGVyLXN1Yi1icmFuZC1sb2dvLXNwYWNpbmctdmVydGljYWwtYXQtYnJlYWtwb2ludDogICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJGhlYWRlci1zdWItYnJhbmQtbG9nby1zcGFjaW5nLWxlZnQtYXQtYnJlYWtwb2ludDogICAgICAgIC0oJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwpICFkZWZhdWx0O1xuJGhlYWRlci1zdWItYnJhbmQtbG9nby1zcGFjaW5nLXJpZ2h0OiAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJGhlYWRlci1ub3RpZmljYXRpb24tY2VudGVyLXBvc2l0aW9uLWZpcnN0LWF0LWJyZWFrcG9pbnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIFVzZSBgYXV0b2AgaW5zdGVhZCBvZiBgMGAgaW4gY2FzZSB0aGVyZSBhcmUgb3RoZXIgZml4ZWQgZWxlbWVudHMgYWJvdmVcbiAqICAgICB0aGUgaGVhZGVyIGNvbXBvbmVudCAoZS5nLiBub3RpZmljYXRpb25zKS5cbiAqIFsyXSBPbmx5IG91dHB1dCBhIGJhY2tncm91bmQtY29sb3IgaWYgYSBjb2xvciBpcyBkZWZpbmVkLiBUaGlzIHdheSwgaWYgeW91XG4gKiAgICAgZG9u4oCZdCB3YW50IGFueSBiYWNrZ3JvdW5kIG9uIHRoZSBoZWFkZXIgKGkuZS4gdHJhbnNwYXJlbnQpLCBubyBDU1MgaXNcbiAqICAgICBnZW5lcmF0ZWQuXG4gKiBbM10gVmFyaWFudCB0byBmb3JjZSBhIGBwb3NpdGlvbjogc3RhdGljYC4gVXNlZnVsIGlmIHlvdXIgZGVmYXVsdCBoZWFkZXJcbiAqICAgICBpcyBhYnNvbHV0ZSBvciBzdGlja3ksIGJ1dCB5b3UgYWxzbyBuZWVkIGEgdmFyaWFudCB0aGF0IHByb3ZpZGVzIGFcbiAqICAgICBzdGF0aWMgaGVhZGVyIHRoYXQgc2l0cyBpbiB0aGUgbm9ybWFsIGZsb3cgb2YgdGhlIHBhZ2UuXG4gKiBbNF0gT25seSBhcHBseSBhIHNwYWNpbmctYm90dG9tIGlmIGl04oCZcyBub3QgYWJzb2x1dGUgb3IgZml4ZWQgcG9zaXRpb25lZC5cbiAqIFs1XSBNYWtlIHN1cmUgdGhhdCBhbGwgZWxlbWVudHMgb2YgdGhlIGhlYWRlciBhcmUgYWxpZ25lZCB0byB0aGUgb3V0ZXIgZWRnZXMuXG4gKiBbNl0gSWYgdGhlIGRlZmF1bHQgc3BhY2luZy1ib3R0b20gZm9yIHRoZSBzdGF0aWMgaGVhZGVyIGFsdGVycyBvbiBzbWFsbFxuICogICAgIHNjcmVlbiwgYXNzaWduIGl0IGZvciB0aGF0IHNwZWNpZmljIG1lZGlhLXF1ZXJ5LlxuICogWzddIFBvc2l0aW9uIGAuYy1oZWFkZXJfX25hdmAgYWZ0ZXIgYC5jLWhlYWRlcl9fbm90aWZpY2F0aW9uLWNlbnRlcmAgaW5cbiAqICAgICBzbWFsbCB2aWV3cG9ydHMuXG4gKiBbOF0gTWFrZSBzdXJlIHRoYXQgdGhlIGhlYWRlciBhbHdheXMgc3BhbnMgYWxsIGl0cyBjaGlsZHJlbi5cbiAqIFs5XSBTdHJldGNoIHRoZSBsb2cgdG8gZnVsbCBoZWlnaHQgYnkgbWFraW5nIHRoZSBjb250YWluZXIgYSBmbGV4Ym94IGNvbnRhaW5lci5cbiAqIFsxMF0gQ2VudGVyIHRoZSBzdWIgYnJhbmQgbG9nbyB2ZXJ0aWNhbGx5IGluIHRoZSBoZWFkZXIuXG4gKiBbMTFdIFB1c2ggdGhlIHN1YiBicmFuZCBsb2dvIHRvIGxlZnQuXG4gKiBbMTJdIEFkanVzdCB0aGUgc3BhY2luZyBiZXR3ZWVuIHRoZSBzdWIgYnJhbmQgbG9nbyBhbmQgdGhlIGxvZ28gaW4gc21hbGxcbiAqICAgICAgdmlld3BvcnRzIHRvIGF2b2lkIGhvcml6b250YWwgc2Nyb2xsaW5nLlxuICogWzEzXSBBcHBseSBhIHNhZmUtc3BhY2UgdG8gdGhlIHN1Yi1icmFuZCBsb2dvIG9uIHRoZSByaWdodC1oYW5kIHNpZGUgaWYgaXQgaXNcbiAqICAgICAgbm90IHRoZSBsYXN0IGVsZW1lbnQgYW5kIG9ubHkgZm9yIGxhcmdlciB2aWV3cG9ydHMuXG4gKi9cblxuLmMtaGVhZGVyX193cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogJGhlYWRlci16LWluZGV4O1xufVxuXG4uYy1oZWFkZXIge1xuICAgIHBvc2l0aW9uOiAkaGVhZGVyLXBvc2l0aW9uO1xuICAgIHdpZHRoOiBmaXQtY29udGVudDsgLyogWzhdICovIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2NhbGUtdW5saW1pdGVkL2RlY2xhcmF0aW9uLXN0cmljdC12YWx1ZSAqL1xuICAgIGhlaWdodDogJGhlYWRlci1oZWlnaHQ7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIEBpZiAoJGhlYWRlci1wb3NpdGlvbiA9PSBmaXhlZCkge1xuICAgICAgICB0b3A6IGF1dG87IC8qIFsxXSAqL1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkaGVhZGVyLXN0YXRpYy1zcGFjaW5nLWJvdHRvbTsgLyogWzRdICovXG4gICAgfVxuICAgIEBpZiAoJGhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yICE9IHRyYW5zcGFyZW50KSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItYmFja2dyb3VuZC1jb2xvcjsgLyogWzJdICovXG4gICAgfVxuICAgIEBpZiAoJGhlYWRlci1ib3JkZXItYm90dG9tKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRoZWFkZXItYm9yZGVyLWJvdHRvbTtcbiAgICB9XG4gICAgQGlmICgkaGVhZGVyLWJveC1zaGFkb3cpIHtcbiAgICAgICAgYm94LXNoYWRvdzogJGhlYWRlci1ib3gtc2hhZG93O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRoZWFkZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICBoZWlnaHQ6ICRoZWFkZXItaGVpZ2h0LWF0LWJyZWFrcG9pbnQ7XG4gICAgfVxuXG4gICAgJi5jLWhlYWRlci0tc3RhdGljIHsgLyogWzNdICovXG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRoZWFkZXItc3RhdGljLXNwYWNpbmctYm90dG9tOyAvKiBbNF0gKi9cblxuICAgICAgICBAaWYgKCRoZWFkZXItc3RhdGljLXNwYWNpbmctYm90dG9tLWF0LWJyZWFrcG9pbnQgIT0gJGhlYWRlci1zdGF0aWMtc3BhY2luZy1ib3R0b20pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRoZWFkZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRoZWFkZXItc3RhdGljLXNwYWNpbmctYm90dG9tLWF0LWJyZWFrcG9pbnQ7IC8qIFs2XSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuICAgIC5jLWhlYWRlcl9fY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgQGluY2x1ZGUgcGFnZS13cmFwKCk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyAvKiBbNV0gKi9cbiAgICAgICAgaGVpZ2h0OiAkaGVhZGVyLWhlaWdodDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skaGVhZGVyLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgIGhlaWdodDogJGhlYWRlci1oZWlnaHQtYXQtYnJlYWtwb2ludDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtaGVhZGVyX19sb2dvIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkaGVhZGVyLWxvZ28tc3BhY2luZy1ob3Jpem9udGFsO1xuICAgIH1cblxuICAgIEBpZiAoJGhlYWRlci1oYXMtc3ViLWJyYW5kLWxvZ28pIHtcbiAgICAgICAgLmMtaGVhZGVyX19zdWItYnJhbmQtbG9nbyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyAvKiBbOV0gKi9cbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTsgLyogWzEwXSAqL1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRoZWFkZXItc3ViLWJyYW5kLWxvZ28tc3BhY2luZy12ZXJ0aWNhbDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkaGVhZGVyLXN1Yi1icmFuZC1sb2dvLXNwYWNpbmctdmVydGljYWw7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IC8qIFsxMV0gKi9cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGhlYWRlci1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRoZWFkZXItc3ViLWJyYW5kLWxvZ28tc3BhY2luZy1sZWZ0LWF0LWJyZWFrcG9pbnQ7IC8qIFsxMl0gKi9cbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogJGhlYWRlci1zdWItYnJhbmQtbG9nby1zcGFjaW5nLXZlcnRpY2FsLWF0LWJyZWFrcG9pbnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRoZWFkZXItc3ViLWJyYW5kLWxvZ28tc3BhY2luZy12ZXJ0aWNhbC1hdC1icmVha3BvaW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIj4jeyRoZWFkZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGhlYWRlci1zdWItYnJhbmQtbG9nby1zcGFjaW5nLXJpZ2h0OyAvKiBbMTNdICovXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBTdWItQnJhbmQgTG9nbyBpbiBoZWFkZXIgY29udGV4dFxuICAgICAgICAgICAgPiAqIHtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIC5jLWhlYWRlcl9fc3ViLWJyYW5kLWxvZ28ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLmMtaGVhZGVyX19uYXYge1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyAvKiBbNl0gKi9cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIj4jeyRoZWFkZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkaGVhZGVyLW5vdGlmaWNhdGlvbi1jZW50ZXItcG9zaXRpb24tZmlyc3QtYXQtYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGhlYWRlci1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IDE7IC8qIFs3XSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmMtaGVhZGVyX19ub3RpZmljYXRpb24tY2VudGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0hFQURFUlxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRHTE9CQUwtUEFHRS1IRUFELUJSRUFLUE9JTlQ6ICAgICAgICAgICBtICFkZWZhdWx0O1xuJEdMT0JBTC1QQUdFLUhFQUQtSEVJR0hUOiAgICAgICAgICAgICAgIDY0cHggIWRlZmF1bHQ7XG4kR0xPQkFMLVBBR0UtSEVBRC1IRUlHSFQtQVQtQlJFQUtQT0lOVDogJEdMT0JBTC1QQUdFLUhFQUQtSEVJR0hUICFkZWZhdWx0O1xuJEdMT0JBTC1QQUdFLUhFQUQtTU9EVUxFLUlDT04tU0laRTogICAgIHhzbWFsbCAhZGVmYXVsdDtcbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNIRUFERVIgKFNldHRpbmdzKVxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRoZWFkZXItYmFja2dyb3VuZC1jb2xvcjogJENPTE9SLUJBU0UtQkFDS0dST1VORCAhZGVmYXVsdDtcbiRoZWFkZXItYm9yZGVyLWJvdHRvbTogICAgMXB4IHNvbGlkICRDT0xPUi1CT1JERVIgIWRlZmF1bHQ7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjRk9PVEVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gR2VuZXJhbCBmb290ZXIgc3R5bGVzXG4kZm9vdGVyLXNwYWNpbmctYm90dG9tOiAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtTEFSR0UgIWRlZmF1bHQ7XG4kZm9vdGVyLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLVBBTEUgIWRlZmF1bHQ7XG4kZm9vdGVyLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcblxuLy8gRm9vdGVyIGJyZWFkY3J1bWJcbiRmb290ZXItYnJlYWRjcnVtYjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuJGZvb3Rlci1icmVhZGNydW1iLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kZm9vdGVyLWJyZWFkY3J1bWItc3BhY2luZy12ZXJ0aWNhbDogICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kZm9vdGVyLWJyZWFkY3J1bWItYm9yZGVyLWJvdHRvbTogICAgICAgICAgICAgICAgMXB4IHNvbGlkICRDT0xPUi1CQVNFICFkZWZhdWx0O1xuXG4vLyBGb290ZXIgbmF2XG4kZm9vdGVyLW5hdi1icmVha3BvaW50OiAgICAgICAgICAgICAgICAgICAgICAgICAgcyAhZGVmYXVsdDtcbiRmb290ZXItbmF2LXNwYWNpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRmb290ZXItbmF2LWJvcmRlci1ib3R0b206ICAgICAgICAgICAgICAgICAgICAgICAwICFkZWZhdWx0O1xuJGZvb3Rlci1uYXYtYWNjb3JkaW9uLWljb24tc2l6ZTogICAgICAgICAgICAgICAgIGljb24tc2l6ZShzbWFsbCkgIWRlZmF1bHQ7XG4kZm9vdGVyLW5hdi1hY2NvcmRpb24tZW5hYmxlZDogICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDsgLy8gRW5hYmxlL2Rpc2FibGUgYWNjb3JkaW9uIG9uIHNtYWxsIHNjcmVlbnMuXG4kZm9vdGVyLW5hdi1hY2NvcmRpb24taWNvbi1leHBhbmQ6ICAgICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtZXhwYW5kKSAhZGVmYXVsdDtcbiRmb290ZXItbmF2LWFjY29yZGlvbi1pY29uLWNvbGxhcHNlOiAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1jb2xsYXBzZSkgIWRlZmF1bHQ7XG4kZm9vdGVyLW5hdi1hY2NvcmRpb24taWNvbi1jb2xvcjogICAgICAgICAgICAgICAgJGZvb3Rlci10ZXh0LWNvbG9yICFkZWZhdWx0O1xuJGZvb3Rlci1uYXYtdGl0bGUtc3BhY2luZy1ib3R0b206ICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kZm9vdGVyLW5hdi10aXRsZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgJEZTLTEgIWRlZmF1bHQ7XG4kZm9vdGVyLW5hdi10aXRsZS1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xEICFkZWZhdWx0O1xuJGZvb3Rlci1uYXYtdGl0bGUtdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICRmb290ZXItdGV4dC1jb2xvciAhZGVmYXVsdDtcbiRmb290ZXItbmF2LWNvbHVtbi1taW4td2lkdGg6ICAgICAgICAgICAgICAgICAgICAyMDBweCAhZGVmYXVsdDtcbiRmb290ZXItbmF2LWNvbHVtbi1zcGFjaW5nLWJvdHRvbTogICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRmb290ZXItbmF2LWNvbHVtbi1nYXAtaG9yaXpvbnRhbDogICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRmb290ZXItbmF2LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAwICFkZWZhdWx0O1xuJGZvb3Rlci1uYXYtaXRlbS1wYWRkaW5nLXZlcnRpY2FsLWF0LWJyZWFrcG9pbnQ6IDAgIWRlZmF1bHQ7XG4kZm9vdGVyLW5hdi1pdGVtLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgJEJBU0UtRk9OVC1GQU1JTFkgIWRlZmF1bHQ7XG4kZm9vdGVyLW5hdi1pdGVtLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgJEZTLTEgIWRlZmF1bHQ7XG4kZm9vdGVyLW5hdi1pdGVtLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRmb290ZXItbmF2LWl0ZW0tdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkZm9vdGVyLXRleHQtY29sb3IgIWRlZmF1bHQ7XG4kZm9vdGVyLW5hdi1pdGVtLXRleHQtY29sb3ItaG92ZXI6ICAgICAgICAgICAgICAgJGZvb3Rlci1uYXYtaXRlbS10ZXh0LWNvbG9yICFkZWZhdWx0O1xuJGZvb3Rlci1uYXYtaXRlbS10ZXh0LWRlY29yYXRpb246ICAgICAgICAgICAgICAgIG5vbmUgIWRlZmF1bHQ7XG4kZm9vdGVyLW5hdi1pdGVtLWJvcmRlci1ib3R0b206ICAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcblxuLy8gRm9vdGVyIG1ldGEgbmF2XG4kZm9vdGVyLW1ldGEtbmF2LWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICAgICAgICAgcyAhZGVmYXVsdDtcbiRmb290ZXItbWV0YS1uYXYtYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAkZm9vdGVyLWJhY2tncm91bmQtY29sb3IgIWRlZmF1bHQ7XG4kZm9vdGVyLW1ldGEtbmF2LWNvbGxhcHNlLWF0LWJyZWFrcG9pbnQ6ICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRmb290ZXItbWV0YS1uYXYtc3BhY2luZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRmb290ZXItbWV0YS1uYXYtc3BhY2luZy12ZXJ0aWNhbC1hdC1icmVha3BvaW50OiAkZm9vdGVyLW1ldGEtbmF2LXNwYWNpbmctdmVydGljYWwgIWRlZmF1bHQ7XG4kZm9vdGVyLW1ldGEtbmF2LWJvcmRlci10b3AtYXQtYnJlYWtwb2ludDogICAgICAgMCAhZGVmYXVsdDtcbiRmb290ZXItbWV0YS1uYXYtaXRlbS1kZWxpbWl0ZXI6ICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRmb290ZXItbWV0YS1uYXYtaXRlbS1kZWxpbWl0ZXItY29sb3I6ICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGZvb3Rlci1tZXRhLW5hdi1pdGVtLXNwYWNpbmctaG9yaXpvbnRhbDogICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJGZvb3Rlci1tZXRhLW5hdi1pdGVtLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICRGUy0xICFkZWZhdWx0O1xuJGZvb3Rlci1tZXRhLW5hdi1pdGVtLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgIGluaGVyaXQgIWRlZmF1bHQ7XG4kZm9vdGVyLW1ldGEtbmF2LWl0ZW0tdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgJGZvb3Rlci10ZXh0LWNvbG9yICFkZWZhdWx0O1xuJGZvb3Rlci1tZXRhLW5hdi1pdGVtLXRleHQtY29sb3ItaG92ZXI6ICAgICAgICAgICRmb290ZXItbmF2LWl0ZW0tdGV4dC1jb2xvciAhZGVmYXVsdDtcbiRmb290ZXItbWV0YS1uYXYtaXRlbS10ZXh0LWRlY29yYXRpb246ICAgICAgICAgICBub25lICFkZWZhdWx0O1xuJGZvb3Rlci1tZXRhLW5hdi1pdGVtLWZvbnQtdHJhbnNmb3JtOiAgICAgICAgICAgIG5vcm1hbCAhZGVmYXVsdDtcblxuLy8gRm9vdGVyIHNvY2lhbCBtZWRpYVxuJGZvb3Rlci1zb2NpYWwtbWVkaWEtc3BhY2luZy12ZXJ0aWNhbDogICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJGZvb3Rlci1zb2NpYWwtbWVkaWEtaXRlbS1zcGFjaW5nOiAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJGZvb3Rlci1zb2NpYWwtbWVkaWEtaWNvbi12YXJpYW50OiAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kZm9vdGVyLXNvY2lhbC1tZWRpYS1pY29uLWJhY2tncm91bmQ6ICAgICAgICAgICAgJENPTE9SLUhJR0hMSUdIVCAhZGVmYXVsdDtcbiRmb290ZXItc29jaWFsLW1lZGlhLWljb24tc2l6ZTogICAgICAgICAgICAgICAgICBcIm1lZGl1bVwiICFkZWZhdWx0O1xuJGZvb3Rlci1zb2NpYWwtbWVkaWEtaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICRmb290ZXItdGV4dC1jb2xvciAhZGVmYXVsdDtcbiRmb290ZXItc29jaWFsLW1lZGlhLWljb24tY29sb3ItaG92ZXI6ICAgICAgICAgICAkZm9vdGVyLW5hdi1pdGVtLXRleHQtY29sb3IgIWRlZmF1bHQ7XG4kZm9vdGVyLXNvY2lhbC1tZWRpYS1pY29uLWRlY29yYXRpb246ICAgICAgICAgICAgbm9uZSAhZGVmYXVsdDtcblxuLy8gRm9vdGVyIGNvcHlyaWdodFxuJGZvb3Rlci1jb3B5cmlnaHQtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICRGUy0xICFkZWZhdWx0O1xuJGZvb3Rlci1jb3B5cmlnaHQtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgIGluaGVyaXQgIWRlZmF1bHQ7XG4kZm9vdGVyLWNvcHlyaWdodC10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJGZvb3Rlci10ZXh0LWNvbG9yICFkZWZhdWx0O1xuJGZvb3Rlci1jb3B5cmlnaHQtdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICAgIG5vcm1hbCAhZGVmYXVsdDtcbiRmb290ZXItY29weXJpZ2h0LXNpZ24tc3BhY2luZzogICAgICAgICAgICAgICAgICAwLjI1ZW0gIWRlZmF1bHQ7XG4kZm9vdGVyLWNvcHlyaWdodC1qdXN0aWZ5LWNvbnRlbnQ6ICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRmb290ZXItY29weXJpZ2h0LWp1c3RpZnktY29udGVudC1hdC1icmVha3BvaW50OiBudWxsICFkZWZhdWx0O1xuXG4vLyBGb290ZXIgZm9vdG5vdGVzXG4kZm9vdGVyLWZvb3Rub3Rlcy1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgJGZvb3Rlci1iYWNrZ3JvdW5kLWNvbG9yICFkZWZhdWx0O1xuJGZvb3Rlci1mb290bm90ZXMtc3BhY2luZy10b3A6ICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJGZvb3Rlci1mb290bm90ZXMtYm9yZGVyLXRvcDogICAgICAgICAgICAgICAgICAgIDFweCBzb2xpZCAkQ09MT1ItQkFTRSAhZGVmYXVsdDtcbiRmb290ZXItZm9vdG5vdGVzLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAkRlMtMiAhZGVmYXVsdDtcbiRmb290ZXItZm9vdG5vdGVzLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGZvb3Rlci1mb290bm90ZXMtdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICRmb290ZXItdGV4dC1jb2xvciAhZGVmYXVsdDtcbiRmb290ZXItZm9vdG5vdGVzLWxpbmstY29sb3I6ICAgICAgICAgICAgICAgICAgICBpbmhlcml0ICFkZWZhdWx0O1xuJGZvb3Rlci1mb290bm90ZXMtbGluay1jb2xvci1ob3ZlcjogICAgICAgICAgICAgIGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIElmIG5vIGJyZWFkY3J1bWIgaXMgaW5jbHVkZWQgaW4gdGhlIGZvb3RlciwgaGlkZSB0aGUgY29udGFpbmVyLlxuICogWzJdIElmIHRoZSBtZXRhIG5hdiBoYXMgYSBkZXZpYXRpbmcgYmFja2dyb3VuZCBjb2xvciwgYXNzaWduIGl0LlxuICogWzNdIElmIHRoZSBmb290bm90ZXMgaGF2ZSBhIGRldmlhdGluZyBiYWNrZ3JvdW5kIGNvbG9yLCBhc3NpZ24gaXQuXG4gKiBbNF0gTWFuYWdlIGF1dG9tYXRpYyB2ZXJ0aWNhbCBzcGFjaW5nIGJldHdlZW4gbmF2IGNvbHVtbnMgd2hlbiBzdGFja2VkLlxuICogWzVdIFJlc3BvbnNpdmUgYmVoYXZpb3VyIHdpdGhvdXQgbWVkaWEtcXVlcmllcywgaS5lLiBkb27igJl0IGxldCB0aGUgY29sdW1uc1xuICogICAgIHNocmluayB1bmRlciBhIHdpZHRoIG9mIGAkZm9vdGVyLW5hdi1jb2x1bW4tbWluLXdpZHRoYC4uLlxuICogWzZdIC4uLmJ1dCBmb3JjZSBhIG9uZS1jb2x1bW4gbGF5b3V0IGF0IGJyZWFrcG9pbnQgYW5kIGJlbG93LlxuICogWzddIE9ubHkgaGlkZSB0aGUgYWNjb3JkaW9uIHBhbmVsIHdoZW4gdGhlIEpTIGlzIGxvYWRlZC5cbiAqIFs4XSBNYWtlIHN1cmUgdG8ganVzdCBwcm92aWRlIHRoZSB3aG9sZSBhY2NvcmRpb24tb24tc21hbGwtc2NyZWVuXG4gKiAgICAgc2hpenpsZS1kaXp6bGUsIHdoZW4gSlMgaXMgbG9hZGVkLlxuICogWzldIFJlc2V0IHBvdGVudGlhbCBicm93c2VyIGRlZmF1bHQgbWFyZ2luIGZvciBjZXJ0YWluIEhUTUwgZWxlbWVudHMgYW5kXG4gKiAgICAgaW5zdGVhZCBhc3NpZ24gdGhlIGJvdHRvbSBzcGFjaW5nIHRvIGAuYy1mb290ZXItbmF2X190aXRsZWAuXG4gKiBbMTBdIE1ha2Ugc3VyZSB0aGF0IHRoZSBwcmVzZW50ZWQgSFRNTCBlbGVtZW50cyBtYWtlIHNlbnNlIGZvciBhY2Nlc3NpYmlsaXR5LlxuICogICAgICBUaGUgYC5pcy1oZWFkaW5nYC9gLmlzLWJ1dHRvbmAgY2xhc3NlcyBhcmUgYWRkZWQgZHluYW1pY2FsbHkgdmlhIEpTLCBzb1xuICogICAgICB3aXRoIHRoaXMgcHJvZ3Jlc3NpdmUgbWVjaGFuaXNtIHdlIG1ha2Ugc3VyZSB0aGF0IHRoaXMgYWxsIGhhcHBlbnMganVzdFxuICogICAgICB3aGVuIEpTIGlzIGxvYWRlZC5cbiAqIFsxMV0gQWxpZ24gbWV0YSBiYXIgY29udGVudCBhdCB0aGUgdG9wIGVkZ2Ugb2YgdGhlIGZsZXggY29udGFpbmVyLlxuICogWzEyXSBJZiB0aGUgbWV0YSBuYXYgaGFzIGEgZGV2aWF0aW5nIGJhY2tncm91bmQgY29sb3IsIHdlIG5lZWQgdG8gYWRkIGFcbiAqICAgICAgcGFkZGluZyB0byB0aGUgdG9wIHRvIGdpdmUgaXQgc29tZSBzcGFjZSB0byB0aGUgZm9vdGVyIG5hdi5cbiAqIFsxM10gSWYgdGhlIGZvb3RlciBuYXYgaGFzIGEgYm9yZGVyLCB3ZSBuZWVkIHRvIGFkZCBhIHBhZGRpbmcgdG8gdGhlIHRvcCB0b1xuICogICAgICBnaXZlIGl0IHNvbWUgc3BhY2UgdG8gdGhlIGZvb3RlciBuYXYuXG4gKiBbMTRdIElmIHRoZSBtZXRhIG5hdiBpcyB0aGUgZmlyc3QgZWxlbWVudCBpbnNpZGUgdGhlIGZvb3RlciwgaXQgbmVlZHMgYVxuICogICAgICB0b3AgcGFkZGluZy5cbiAqIFsxNV0gSWYgdGhlIG1ldGEgbmF2IGlzIHRoZSBsYXN0IGVsZW1lbnQgaW5zaWRlIHRoZSBmb290ZXIsIHdlIHNldCB0aGVcbiAqICAgICAgcGFkZGluZyBib3R0b20gZXF1YWwgdG8gdGhlIHN1cGVyaW9yIGZvb3RlciBwYWRkaW5nLWJvdHRvbS5cbiAqIFsxNl0gSWYgdGhlIG1ldGEgbmF2IGlzIHRoZSBvbmx5IGNoaWxkIG9mIHRoZSBmb290ZXIsIHdlIHdhbnQgdGhlIHNhbWVcbiAqICAgICAgcGFkZGluZyBhdCB0aGUgdG9wIGFuZCB0aGUgYm90dG9tLlxuICogWzE3XSBJZiB0aGUgbWV0YSBuYXYgaXMgdGhlIGRpcmVjdCBmb2xsb3dpbmcgZWxlbWVudCBvZiB0aGUgYnJlYWRjcnVtYlxuICogICAgICAoaS5lLiB0aGUgZm9vdGVyIG5hdiBpcyBtaXNzaW5nKSwgd2UgbmVlZCB0byBvZmZzZXQgdGhlIG1ldGEgbmF2IGZyb21cbiAqICAgICAgdGhlIGJyZWFkY3J1bWIuXG4gKiBbMThdIElmIHRoZSBicmVhZGNydW1iIGlzIGhpZGRlbiwgc28gdGhlIG1ldGEgbmF2IGlzIF92aXN1YWxseV8gdGhlIGZpcnN0XG4gKiAgICAgIGVsZW1lbnQgaW4gdGhlIGZvb3RlciwgcmVwbGFjZSB0aGUgbWFyZ2luIHdpdGggYSBwYWRkaW5nLCBzbyB0aGUgbWV0YVxuICogICAgICBuYXYgaXRlbXMgYXJlIG5vdCBzdHVjayBhdCB0aGUgdG9wIG9mIHRoZSBmb290ZXIuXG4gKiBbMTldIEVuYWJsZSBtZXRhIG5hdiBiYXIgdG8gb2NjdXB5IHJlbGF0aXZlbHkgbW9yZSBzcGFjZSBpZiBuZWNlc3NhcnkuXG4gKiBbMjBdIEVuc3VyZSB0aGF0IHNvY2lhbCBtZWRpYSBsaW5rIHNwYW5zIGFuZCB0aHVzIGlzIGNsaWNrYWJsZSBvdmVyIHRoZSB3aG9sZVxuICogICAgICBzaXplIG9mIHRoZSBzb2NpYWwgbWVkaWEgaWNvbi5cbiAqIFsyMV0gQWxpZ24gc2lnbiBhbmQgdGV4dCAobWVkaWEtb2JqZWN0IGxpa2UpLlxuICogWzIyXSBFbmZvcmNlIGxpbmUgYnJlYWsgZm9yICcuYy1mb290ZXItY29weXJpZ2h0JyBhbmQgZW5zdXJlIHRoYXQgZnVsbCB3aWR0aFxuICogICAgICBvZiB0aGUgY29udGFpbmVyIGlzIHVzZWQuXG4gKiBbMjNdIFJlc2V0IHBvdGVudGlhbCBicm93c2VyIGRlZmF1bHQgbWFyZ2luIGZvciBzb2NpYWwgbWVkaWEgZWxlbWVudCBhbmQgbGlua3MuXG4gKiBbMjRdIEVuc3VyZSB3cmFwcGluZyAoY29sdW1uIGxheW91dCkuXG4gKiBbMjVdIENoZWNrIGlmIHRoZSBpY29uIHNob3VsZCBiZSByZW5kZXJlZCBhcyBlaXRoZXIgYSByb3VuZCBvciBzcXVhcmUgdmFyaWFudC5cbiAqIFsyNl0gUHJldmVudCBkb3VibGluZyB0aGUgc3BhY2luZyB3aGVuIHRoZSBicmVhZGNydW1iIGlzIGZvbGxvd2VkIGJ5IHRoZSBtZXRhIG5hdi5cbiAqL1xuLmMtZm9vdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9vdGVyLWJhY2tncm91bmQtY29sb3I7XG4gICAgY29sb3I6ICRmb290ZXItdGV4dC1jb2xvcjtcbn1cblxuICAgIC5jLWZvb3Rlcl9fbW9kdWxlIHtcblxuICAgICAgICBAaWYgKG5vdCAkZm9vdGVyLWJyZWFkY3J1bWIpIHtcbiAgICAgICAgICAgICYuYy1mb290ZXJfX21vZHVsZS0tYnJlYWRjcnVtYiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgLyogWzFdICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRmb290ZXItbWV0YS1uYXYtYmFja2dyb3VuZC1jb2xvciAhPSAkZm9vdGVyLWJhY2tncm91bmQtY29sb3IpIHtcbiAgICAgICAgICAgICYuYy1mb290ZXJfX21vZHVsZS0tbWV0YS1uYXYge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb290ZXItbWV0YS1uYXYtYmFja2dyb3VuZC1jb2xvcjsgLyogWzJdICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRmb290ZXItYnJlYWRjcnVtYi1iYWNrZ3JvdW5kLWNvbG9yICE9ICRmb290ZXItYmFja2dyb3VuZC1jb2xvcikge1xuICAgICAgICAgICAgJi5jLWZvb3Rlcl9fbW9kdWxlLS1icmVhZGNydW1iIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9vdGVyLWJyZWFkY3J1bWItYmFja2dyb3VuZC1jb2xvcjsgLyogWzJdICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRmb290ZXItZm9vdG5vdGVzLWJhY2tncm91bmQtY29sb3IgIT0gJGZvb3Rlci1iYWNrZ3JvdW5kLWNvbG9yKSB7XG4gICAgICAgICAgICAmLmMtZm9vdGVyX19tb2R1bGUtLWZvb3Rub3RlcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZvb3Rlci1mb290bm90ZXMtYmFja2dyb3VuZC1jb2xvcjsgLyogWzNdICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuXG5cbi5jLWZvb3Rlci1icmVhZGNydW1iIHtcbiAgICBwYWRkaW5nLXRvcDogJGZvb3Rlci1icmVhZGNydW1iLXNwYWNpbmctdmVydGljYWw7XG4gICAgcGFkZGluZy1ib3R0b206ICRmb290ZXItYnJlYWRjcnVtYi1zcGFjaW5nLXZlcnRpY2FsO1xuICAgIEBpZiAoJGZvb3Rlci1icmVhZGNydW1iLWJvcmRlci1ib3R0b20gIT0gMCkge1xuICAgICAgICBib3JkZXItYm90dG9tOiAkZm9vdGVyLWJyZWFkY3J1bWItYm9yZGVyLWJvdHRvbTtcbiAgICB9XG59XG5cblxuXG4uYy1mb290ZXItbmF2IHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFxuICAgICAgICAoXCJwYWRkaW5nLXRvcFwiLCAkZm9vdGVyLW5hdi1zcGFjaW5nLXZlcnRpY2FsKSxcbiAgICAgICAgKFwicGFkZGluZy1ib3R0b21cIiwgJGZvb3Rlci1uYXYtc3BhY2luZy12ZXJ0aWNhbClcbiAgICApO1xuICAgIEBpZiAoJGZvb3Rlci1uYXYtYm9yZGVyLWJvdHRvbSAhPSAwKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRmb290ZXItbmF2LWJvcmRlci1ib3R0b207XG4gICAgfVxuXG59XG5cbiAgICAuYy1mb290ZXItbmF2X19jb2x1bW5zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBtYXJnaW4tdG9wOiAtKCRmb290ZXItbmF2LWNvbHVtbi1zcGFjaW5nLWJvdHRvbSk7IC8qIFs0XSAqL1xuICAgIH1cblxuICAgIC5jLWZvb3Rlci1uYXZfX2NvbHVtbiB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTsgLyogWzVdICovXG4gICAgICAgIGZsZXgtc2hyaW5rOiAxOyAvKiBbNV0gKi9cbiAgICAgICAgZmxleC1iYXNpczogJGZvb3Rlci1uYXYtY29sdW1uLW1pbi13aWR0aDsgLyogWzVdICovXG4gICAgICAgIG1hcmdpbi10b3A6ICRmb290ZXItbmF2LWNvbHVtbi1zcGFjaW5nLWJvdHRvbTsgLyogWzRdICovXG4gICAgICAgIG1hcmdpbi1yaWdodDogJGZvb3Rlci1uYXYtY29sdW1uLWdhcC1ob3Jpem9udGFsO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRmb290ZXItbmF2LWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7IC8qIFs2XSAqL1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1mb290ZXItbmF2X19saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgbGlzdC1iYXJlKCk7XG5cbiAgICAgICAgQGlmICgkZm9vdGVyLW5hdi1hY2NvcmRpb24tZW5hYmxlZCkge1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skZm9vdGVyLW5hdi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICAgICAgJi5qcy1pcy1yZWFkeS5pcy1jbG9zZWQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBbN10gKi9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtZm9vdGVyLW5hdl9fdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFwibWFyZ2luLWJvdHRvbVwiLCAkZm9vdGVyLW5hdi10aXRsZS1zcGFjaW5nLWJvdHRvbSk7XG5cbiAgICAgICAgQGlmICgkZm9vdGVyLW5hdi1hY2NvcmRpb24tZW5hYmxlZCkge1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skZm9vdGVyLW5hdi1icmVha3BvaW50fVwiKSB7XG5cbiAgICAgICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHksIHNlbGVjdG9yLW1heC1jbGFzcyAqL1xuICAgICAgICAgICAgICAgIC5qcy1mb290ZXItYWNjb3JkaW9uLmpzLWlzLXJlYWR5ICYgeyAvKiBbOF0gKi9cbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQFRPRE86IHJvdGF0aW9uIChCUk9OLTI5NjkpXG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGljb24tZm9udCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJGZvb3Rlci1uYXYtYWNjb3JkaW9uLWljb24tZXhwYW5kO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9vdGVyLW5hdi1hY2NvcmRpb24taWNvbi1zaXplO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRmb290ZXItbmF2LWFjY29yZGlvbi1pY29uLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJi5pcy1hY3RpdmUge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJGZvb3Rlci1uYXYtYWNjb3JkaW9uLWljb24tY29sbGFwc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWZvb3Rlci1uYXZfX3RpdGxlLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAgICRmb290ZXItbmF2LXRpdGxlLWZvbnQtc2l6ZSxcbiAgICAgICAgICAgICRsaW5lLWhlaWdodDogYXV0b1xuICAgICAgICApO1xuICAgICAgICBAaW5jbHVkZSByZXNldC1idXR0b24oKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzldICovXG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9vdGVyLW5hdi1pdGVtLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXdlaWdodDogJGZvb3Rlci1uYXYtdGl0bGUtZm9udC13ZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkZm9vdGVyLW5hdi10aXRsZS10ZXh0LWNvbG9yO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRmb290ZXItbmF2LWJyZWFrcG9pbnR9XCIpIHtcblxuICAgICAgICAgICAgJi5pcy1oZWFkaW5nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBbMTBdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPiN7JGZvb3Rlci1uYXYtYnJlYWtwb2ludH1cIikge1xuXG4gICAgICAgICAgICAmLmlzLWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgLyogWzEwXSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWZvb3Rlci1uYXZfX2l0ZW0ge1xuICAgICAgICBAaWYgKCRmb290ZXItbmF2LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbCAhPSAwKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJGZvb3Rlci1uYXYtaXRlbS1wYWRkaW5nLXZlcnRpY2FsO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRmb290ZXItbmF2LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbDtcbiAgICAgICAgfVxuICAgICAgICBAaWYgKCRmb290ZXItbmF2LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbC1hdC1icmVha3BvaW50ICE9IDApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRmb290ZXItbmF2LWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogJGZvb3Rlci1uYXYtaXRlbS1wYWRkaW5nLXZlcnRpY2FsLWF0LWJyZWFrcG9pbnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRmb290ZXItbmF2LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbC1hdC1icmVha3BvaW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpZiAoJGZvb3Rlci1uYXYtaXRlbS1ib3JkZXItYm90dG9tICE9IDApIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJGZvb3Rlci1uYXYtaXRlbS1ib3JkZXItYm90dG9tO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmMtZm9vdGVyLW5hdl9fbGluayB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKFxuICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkZm9vdGVyLW5hdi1pdGVtLWZvbnQtc2l6ZSxcbiAgICAgICAgICAgICRsaW5lLWhlaWdodDogYXV0b1xuICAgICAgICApO1xuICAgICAgICBmb250LXdlaWdodDogJGZvb3Rlci1uYXYtaXRlbS1mb250LXdlaWdodDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkZm9vdGVyLW5hdi1pdGVtLXRleHQtZGVjb3JhdGlvbjtcbiAgICAgICAgY29sb3I6ICRmb290ZXItbmF2LWl0ZW0tdGV4dC1jb2xvcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogJGZvb3Rlci1uYXYtaXRlbS10ZXh0LWNvbG9yLWhvdmVyO1xuICAgICAgICB9XG5cbiAgICB9XG5cblxuXG4uYy1mb290ZXItbWV0YS1iYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IC8qIFsxMV0gKi9cbiAgICBwYWRkaW5nLWJvdHRvbTogJGZvb3Rlci1tZXRhLW5hdi1zcGFjaW5nLXZlcnRpY2FsO1xuXG4gICAgQGlmICgkZm9vdGVyLW1ldGEtbmF2LWJhY2tncm91bmQtY29sb3IgIT0gJGZvb3Rlci1iYWNrZ3JvdW5kLWNvbG9yKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkZm9vdGVyLW1ldGEtbmF2LXNwYWNpbmctdmVydGljYWw7IC8qIFsxMl0gKi9cbiAgICB9XG4gICAgQGlmICgkZm9vdGVyLW5hdi1ib3JkZXItYm90dG9tICE9IDApIHtcbiAgICAgICAgcGFkZGluZy10b3A6ICRmb290ZXItbWV0YS1uYXYtc3BhY2luZy12ZXJ0aWNhbDsgLyogWzEzXSAqL1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRmb290ZXItbWV0YS1uYXYtYnJlYWtwb2ludH1cIikge1xuXG4gICAgICAgIEBpZiAoJGZvb3Rlci1tZXRhLW5hdi1ib3JkZXItdG9wLWF0LWJyZWFrcG9pbnQgIT0gMCkge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRmb290ZXItbWV0YS1uYXYtc3BhY2luZy12ZXJ0aWNhbC1hdC1icmVha3BvaW50O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRmb290ZXItbWV0YS1uYXYtc3BhY2luZy12ZXJ0aWNhbC1hdC1icmVha3BvaW50O1xuXG4gICAgICAgICAgICAuYy1mb290ZXJfX21vZHVsZS0tbmF2ICsgLmMtZm9vdGVyX19tb2R1bGUtLW1ldGEtbmF2ICYge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6ICRmb290ZXItbWV0YS1uYXYtYm9yZGVyLXRvcC1hdC1icmVha3BvaW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA6bm90KC5jLWZvb3Rlcl9fbW9kdWxlLS1uYXYpICsgLmMtZm9vdGVyX19tb2R1bGUtLW1ldGEtbmF2LmMtZm9vdGVyX19tb2R1bGUtLW1ldGEtbmF2ICYge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgID4gKiB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAxMDAlOyAvKiBbMjRdICovXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWZvb3Rlcl9fbW9kdWxlLS1tZXRhLW5hdjpmaXJzdC1jaGlsZCAmIHtcbiAgICAgICAgcGFkZGluZy10b3A6ICRmb290ZXItbWV0YS1uYXYtc3BhY2luZy12ZXJ0aWNhbDsgLyogWzE0XSAqL1xuICAgIH1cblxuICAgIC5jLWZvb3Rlcl9fbW9kdWxlLS1tZXRhLW5hdjpsYXN0LWNoaWxkICYge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGZvb3Rlci1zcGFjaW5nLWJvdHRvbTsgLyogWzE1XSAqL1xuICAgIH1cblxuICAgIC5jLWZvb3Rlcl9fbW9kdWxlLS1tZXRhLW5hdjpsYXN0LWNoaWxkOm9ubHktY2hpbGQgJiB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkZm9vdGVyLW1ldGEtbmF2LXNwYWNpbmctdmVydGljYWw7IC8qIFsxNl0gKi9cbiAgICB9XG5cbiAgICAuYy1mb290ZXJfX21vZHVsZS0tYnJlYWRjcnVtYiArIC5jLWZvb3Rlcl9fbW9kdWxlLS1tZXRhLW5hdiAmIHtcbiAgICAgICAgQGlmICgkZm9vdGVyLWJyZWFkY3J1bWIpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRmb290ZXItbWV0YS1uYXYtc3BhY2luZy12ZXJ0aWNhbDsgLyogWzE3XSAqL1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7IC8qIFsyNl0gKi9cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRmb290ZXItbWV0YS1uYXYtc3BhY2luZy12ZXJ0aWNhbDsgLyogWzE4XSAqL1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cblxuXG4uYy1mb290ZXItbWV0YS1uYXYge1xuICAgIEBpbmNsdWRlIGxpc3QtYmFyZSgpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGZsZXgtZ3JvdzogMTsgLyogWzE5XSAqL1xuICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgcGFkZGluZy1ib3R0b206ICRmb290ZXItc29jaWFsLW1lZGlhLXNwYWNpbmctdmVydGljYWw7XG5cbiAgICBAaWYgKCRmb290ZXItbWV0YS1uYXYtY29sbGFwc2UtYXQtYnJlYWtwb2ludCkge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skZm9vdGVyLW1ldGEtbmF2LWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuICAgIC5jLWZvb3Rlci1tZXRhLW5hdl9faXRlbSB7XG5cbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI+I3skZm9vdGVyLW1ldGEtbmF2LWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGlmKCRmb290ZXItbWV0YS1uYXYtaXRlbS1zcGFjaW5nLWhvcml6b250YWwsICRmb290ZXItbWV0YS1uYXYtaXRlbS1zcGFjaW5nLWhvcml6b250YWwsIG51bGwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRmb290ZXItbWV0YS1uYXYtaXRlbS1kZWxpbWl0ZXIpIHtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPiN7JGZvb3Rlci1tZXRhLW5hdi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICRmb290ZXItbWV0YS1uYXYtaXRlbS1kZWxpbWl0ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogJGZvb3Rlci1tZXRhLW5hdi1pdGVtLXNwYWNpbmctaG9yaXpvbnRhbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkZm9vdGVyLW1ldGEtbmF2LWl0ZW0tZGVsaW1pdGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWZvb3Rlci1tZXRhLW5hdl9fbGluayB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKFxuICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkZm9vdGVyLW1ldGEtbmF2LWl0ZW0tZm9udC1zaXplLFxuICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiBhdXRvXG4gICAgICAgICk7XG4gICAgICAgIEBpZiAobm90ICRmb290ZXItbWV0YS1uYXYtaXRlbS1kZWxpbWl0ZXIpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGZvb3Rlci1tZXRhLW5hdi1pdGVtLXRleHQtZGVjb3JhdGlvbjtcbiAgICAgICAgY29sb3I6ICRmb290ZXItbWV0YS1uYXYtaXRlbS10ZXh0LWNvbG9yO1xuICAgICAgICBAaWYgKCRmb290ZXItbWV0YS1uYXYtaXRlbS1mb250LXdlaWdodCAhPSBpbmhlcml0KSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGZvb3Rlci1tZXRhLW5hdi1pdGVtLWZvbnQtd2VpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAoJGZvb3Rlci1tZXRhLW5hdi1pdGVtLWZvbnQtdHJhbnNmb3JtICE9IG5vcm1hbCkge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRmb290ZXItbWV0YS1uYXYtaXRlbS1mb250LXRyYW5zZm9ybTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkZm9vdGVyLW1ldGEtbmF2LWl0ZW0tdGV4dC1jb2xvci1ob3ZlcjtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4uYy1mb290ZXItc29jaWFsLW1lZGlhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGNvbHVtbi1nYXA6ICRmb290ZXItc29jaWFsLW1lZGlhLWl0ZW0tc3BhY2luZzsgLyogWzI3XSAqL1xuICAgIG1hcmdpbjogMDsgLyogWzIzXSAqL1xuICAgIHBhZGRpbmctYm90dG9tOiAkZm9vdGVyLXNvY2lhbC1tZWRpYS1zcGFjaW5nLXZlcnRpY2FsO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skZm9vdGVyLW5hdi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxufVxuXG4gICAgLmMtZm9vdGVyLXNvY2lhbC1tZWRpYV9faXRlbSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IC8qIFsyM10gKi9cbiAgICB9XG5cbiAgICAuYy1mb290ZXItc29jaWFsLW1lZGlhX19saW5rIHtcbiAgICAgICAgZGlzcGxheTogZmxleDsgLyogWzIwXSAqL1xuICAgIH1cblxuICAgIC5jLWZvb3Rlci1zb2NpYWwtbWVkaWFfX2ljb24ge1xuXG4gICAgICAgIEBpZiAoJGZvb3Rlci1zb2NpYWwtbWVkaWEtaWNvbi12YXJpYW50KSB7IC8qIFsyNV0gKi9cbiAgICAgICAgICAgIEBpbmNsdWRlIGljb24tdmFyaWFudChcbiAgICAgICAgICAgICAgICAkdmFyaWFudDogICAgICAgICAgJGZvb3Rlci1zb2NpYWwtbWVkaWEtaWNvbi12YXJpYW50LFxuICAgICAgICAgICAgICAgICRzaXplOiAgICAgICAgICAgICAkZm9vdGVyLXNvY2lhbC1tZWRpYS1pY29uLXNpemUsXG4gICAgICAgICAgICAgICAgJHRleHQtY29sb3I6ICAgICAgICRmb290ZXItc29jaWFsLW1lZGlhLWljb24tY29sb3IsXG4gICAgICAgICAgICAgICAgJGJhY2tncm91bmQtY29sb3I6ICRmb290ZXItc29jaWFsLW1lZGlhLWljb24tYmFja2dyb3VuZCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkZm9vdGVyLXNvY2lhbC1tZWRpYS1pY29uLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogaWNvbi1zaXplKCRmb290ZXItc29jaWFsLW1lZGlhLWljb24tc2l6ZSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGZvb3Rlci1zb2NpYWwtbWVkaWEtaWNvbi1kZWNvcmF0aW9uO1xuICAgICAgICAgICAgY29sb3I6ICRmb290ZXItc29jaWFsLW1lZGlhLWljb24tY29sb3I7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkZm9vdGVyLXNvY2lhbC1tZWRpYS1pY29uLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuLmMtZm9vdGVyLWNvcHlyaWdodCB7XG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICRmb250LXNpemU6ICAgJGZvb3Rlci1jb3B5cmlnaHQtZm9udC1zaXplXG4gICAgKTtcblxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyAvKiBbMjFdICovXG4gICAganVzdGlmeS1jb250ZW50OiAkZm9vdGVyLWNvcHlyaWdodC1qdXN0aWZ5LWNvbnRlbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7IC8qIFsyMl0gKi9cblxuICAgIEBpZiAoJGZvb3Rlci1jb3B5cmlnaHQtdGV4dC1jb2xvciAhPSAkZm9vdGVyLXRleHQtY29sb3IpIHtcbiAgICAgICAgY29sb3I6ICRmb290ZXItY29weXJpZ2h0LXRleHQtY29sb3I7XG4gICAgfVxuICAgIEBpZiAoJGZvb3Rlci1jb3B5cmlnaHQtZm9udC13ZWlnaHQgIT0gaW5oZXJpdCkge1xuICAgICAgICBmb250LXdlaWdodDogJGZvb3Rlci1jb3B5cmlnaHQtZm9udC13ZWlnaHQ7XG4gICAgfVxuICAgIEBpZiAoJGZvb3Rlci1jb3B5cmlnaHQtdGV4dC10cmFuc2Zvcm0gIT0gbm9ybWFsKSB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiAkZm9vdGVyLWNvcHlyaWdodC10ZXh0LXRyYW5zZm9ybTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skZm9vdGVyLW5hdi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogJGZvb3Rlci1jb3B5cmlnaHQtanVzdGlmeS1jb250ZW50LWF0LWJyZWFrcG9pbnQ7XG4gICAgfVxufVxuXG4gICAgLmMtZm9vdGVyLWNvcHlyaWdodF9fc2lnbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJGZvb3Rlci1jb3B5cmlnaHQtc2lnbi1zcGFjaW5nO1xuICAgIH1cblxuXG5cbi5jLWZvb3Rlci1mb290bm90ZXMge1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCRmb290ZXItZm9vdG5vdGVzLWZvbnQtc2l6ZSk7XG4gICAgcGFkZGluZy10b3A6ICRmb290ZXItZm9vdG5vdGVzLXNwYWNpbmctdG9wO1xuICAgIHBhZGRpbmctYm90dG9tOiAkZm9vdGVyLXNwYWNpbmctYm90dG9tO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9vdGVyLWZvb3Rub3Rlcy1mb250LXdlaWdodDtcbiAgICBAaWYgKCRmb290ZXItZm9vdG5vdGVzLWJvcmRlci10b3AgIT0gMCkge1xuICAgICAgICBib3JkZXItdG9wOiAkZm9vdGVyLWZvb3Rub3Rlcy1ib3JkZXItdG9wO1xuICAgIH1cbiAgICBAaWYgKCRmb290ZXItZm9vdG5vdGVzLXRleHQtY29sb3IgIT0gJGZvb3Rlci10ZXh0LWNvbG9yKSB7XG4gICAgICAgIGNvbG9yOiAkZm9vdGVyLWZvb3Rub3Rlcy10ZXh0LWNvbG9yO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICBjb2xvcjogJGZvb3Rlci1mb290bm90ZXMtbGluay1jb2xvcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogJGZvb3Rlci1mb290bm90ZXMtbGluay1jb2xvci1ob3ZlcjtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjRk9PVEVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNrb2RhLWZvb3Rlci1tZXRhLW5hdi1zcGFjaW5nLWJvdHRvbTogJEdMT0JBTC1TUEFDSU5HLVVOSVQtWExBUkdFICFkZWZhdWx0O1xuJHNrb2RhLWZvb3Rlci1tZXRhLW5hdi1pdGVtLXNwYWNpbmc6ICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuXG4uYy1mb290ZXItbWV0YS1uYXYge1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGZvb3Rlci1tZXRhLW5hdi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgIGdhcDogJHNrb2RhLWZvb3Rlci1tZXRhLW5hdi1pdGVtLXNwYWNpbmc7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkc2tvZGEtZm9vdGVyLW1ldGEtbmF2LXNwYWNpbmctYm90dG9tO1xuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0JBREdFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gQFRPRE86IHJlZmFjdG9yIHRvIHV0aWxpemUgZ2xvYmFsIHN0YXR1cyBzZXR0aW5nc1xuJGJhZGdlLWNvbG9yLXN1Y2Nlc3M6ICAgICAgICAgICAkQ09MT1ItU1VDQ0VTUyAhZGVmYXVsdDtcbiRiYWRnZS1jb2xvci13YXJuaW5nOiAgICAgICAgICAgJENPTE9SLVdBUk5JTkcgIWRlZmF1bHQ7XG4kYmFkZ2UtY29sb3Itbm90aWZpY2F0aW9uOiAgICAgICRDT0xPUi1BTEVSVCAhZGVmYXVsdDtcbiRiYWRnZS1jb2xvci1lcnJvcjogICAgICAgICAgICAgJENPTE9SLUFMRVJUICFkZWZhdWx0O1xuJGJhZGdlLXRleHQtY29sb3Itc3VjY2VzczogICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kYmFkZ2UtdGV4dC1jb2xvci13YXJuaW5nOiAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kYmFkZ2UtdGV4dC1jb2xvci1ub3RpZmljYXRpb246ICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRiYWRnZS10ZXh0LWNvbG9yLWVycm9yOiAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJGJhZGdlLWljb24tc2l6ZTogICAgICAgICAgICAgICBpY29uLXNpemUoc21hbGwpICFkZWZhdWx0O1xuJGJhZGdlLWxhYmVsLXNwYWNpbmc6ICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YWFNNQUxMICFkZWZhdWx0O1xuJGJhZGdlLWxhYmVsLXRleHQtc2l6ZTogICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBEaXNwbGF5IHRoZSBiYWRnZSBpbiBsaW5lIHdpdGggdGhlIGxhYmVsIGFuZCBvdGhlciBiYWRnZXMsIGV2ZW4gaWZcbiAqICAgICB0aGUgYmFkZ2UgY29udGFpbnMgYW4gaWNvbiBhbmQgaGFuZGxlcyBjb3JyZWN0IHdyYXBwaW5nIHdoZW4gYXZhaWxhYmxlXG4gKiAgICAgc3BhY2UgaXMgZXhjZWVkZWQuXG4gKiAgICAgUmVzb2x2ZXMgaW5saW5lLWJsb2NrIHNwYWNlIGlzc3VlIHRoYXQgY2FuIG9jY3VyIGZvciBleGFtcGxlIHdoZW5cbiAqICAgICBtYXJrdXAgaXMgbWluaWZpZWQuXG4gKiBbMl0gVmVydGljYWxseSBjZW50ZXIgdGhlIGljb24gaW5zaWRlIHRoZSBiYWRnZS5cbiAqIFszXSBWZXJ0aWNhbGx5IGNlbnRlciB0aGUgbGFiZWwgbmV4dCB0byB0aGUgYmFkZ2UuXG4gKiBbNF0gUHJldmVudCBkaXN0b3J0aW9uIChrZWVwIDE6MSBzaXplKS5cbiAqIFs1XSBBcHBseSBhbGwgZmxleGJveCBwcm9wZXJ0aWVzIHdpdGggZGVmYXVsdCB2YWx1ZXMgKGxlZ2FjeSBzdXBwb3J0KS5cbiAqL1xuXG4uYy1iYWRnZV9fd3JhcHBlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7IC8qIFsxXSAqL1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcblxuICAgIC5jLWJhZGdlX19sYWJlbCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkYmFkZ2UtbGFiZWwtc3BhY2luZztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgLyogWzNdICovXG4gICAgfVxuXG4gICAgLmMtYmFkZ2Uge1xuICAgICAgICBmbGV4LWdyb3c6IDE7IC8qIFs0XSAqL1xuICAgICAgICBmbGV4LXNocmluazogMDsgLyogWzRdICovXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87IC8qIFs1XSAqL1xuICAgIH1cblxufVxuXG4uYy1iYWRnZSB7XG4gICAgQGluY2x1ZGUgYmFkZ2UoKTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvKiBbMV0gKi9cblxuICAgICYuYy1iYWRnZS0tc3VjY2VzcyxcbiAgICAmLmMtYmFkZ2UtLXBvc2l0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLWNvbG9yLXN1Y2Nlc3M7XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtdGV4dC1jb2xvci1zdWNjZXNzO1xuICAgIH1cblxuICAgICYuYy1iYWRnZS0td2FybmluZyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS1jb2xvci13YXJuaW5nO1xuICAgICAgICBjb2xvcjogJGJhZGdlLXRleHQtY29sb3Itd2FybmluZztcbiAgICB9XG5cbiAgICAmLmMtYmFkZ2UtLW5vdGlmaWNhdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS1jb2xvci1ub3RpZmljYXRpb247XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtdGV4dC1jb2xvci1ub3RpZmljYXRpb247XG4gICAgfVxuXG4gICAgJi5jLWJhZGdlLS1lcnJvcixcbiAgICAmLmMtYmFkZ2UtLW5lZ2F0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLWNvbG9yLWVycm9yO1xuICAgICAgICBjb2xvcjogJGJhZGdlLXRleHQtY29sb3ItZXJyb3I7XG4gICAgfVxuXG4gICAgLmMtYmFkZ2VfX2ljb24ge1xuICAgICAgICBmb250LXNpemU6ICRiYWRnZS1pY29uLXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyAvKiBbMl0gKi9cbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgLyogWzNdICovXG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cblxufVxuXG4gICAgLmMtYmFkZ2VfX2xhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAgICRiYWRnZS1sYWJlbC10ZXh0LXNpemUsXG4gICAgICAgICAgICAkYWNjZXB0LW51bGw6IHRydWUsXG4gICAgICAgICk7XG4gICAgfVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0JBREdFXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8vIE1peGluIGZvciBiYWRnZSBzdHlsaW5ncy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYmFkZ2Utc2l6ZSAtIHdpZHRoLCBoZWlnaHQgYW5kIGxpbmUtaGVpZ2h0IG9mIGJhZGdlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRiYWRnZS10ZXh0LXNpemUgLSBmb250IHNpemUgb2YgdGV4dFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYmFkZ2UtZm9udC13ZWlnaHQgLSBmb250IHdlaWdodCBvZiB0ZXh0XG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRiYWRnZS1jb2xvciAtIGJhY2tncm91bmQgY29sb3Jcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJhZGdlLXRleHQtY29sb3IgLSBmb250IGNvbG9yXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYWRnZS1sZXR0ZXItc3BhY2luZyAtIGxldHRlci1zcGFjaW5nIGZvciBjaGFyYWN0ZXJzIGluc2lkZSBiYWRnZVxuLy8vIEByZXR1cm5zIHtDU1N9IEJhZGdlIHN0eWxpbmcuXG5AbWl4aW4gYmFkZ2UoXG4gICAgICAgICRiYWRnZS1zaXplOiAgICAgICAgICAgJGJhZGdlLXNpemUsXG4gICAgICAgICRiYWRnZS10ZXh0LXNpemU6ICAgICAgJGJhZGdlLXRleHQtc2l6ZSxcbiAgICAgICAgJGJhZGdlLWZvbnQtd2VpZ2h0OiAgICAkYmFkZ2UtZm9udC13ZWlnaHQsXG4gICAgICAgICRiYWRnZS1jb2xvcjogICAgICAgICAgJGJhZGdlLWNvbG9yLFxuICAgICAgICAkYmFkZ2UtdGV4dC1jb2xvcjogICAgICRiYWRnZS10ZXh0LWNvbG9yLFxuICAgICAgICAkYmFkZ2UtbGV0dGVyLXNwYWNpbmc6ICRiYWRnZS1sZXR0ZXItc3BhY2luZyxcbiAgICApIHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgJGZvbnQtc2l6ZTogICAkYmFkZ2UtdGV4dC1zaXplLFxuICAgICAgICAkbGluZS1oZWlnaHQ6ICRiYWRnZS1zaXplXG4gICAgKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAkYmFkZ2Utc2l6ZTtcbiAgICBoZWlnaHQ6ICRiYWRnZS1zaXplO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBmb250LXdlaWdodDogJGJhZGdlLWZvbnQtd2VpZ2h0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsZXR0ZXItc3BhY2luZzogJGJhZGdlLWxldHRlci1zcGFjaW5nO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS1jb2xvcjtcbiAgICBjb2xvcjogJGJhZGdlLXRleHQtY29sb3I7XG59XG4iLCIvLyAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNCQURHRSAoU2V0dGluZ3MpXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4kYmFkZ2UtbGFiZWwtdGV4dC1zaXplOiAgICAgICAgICRHTE9CQUwtU1RBVFVTLVRFWFQtU0laRSAhZGVmYXVsdDtcbiRiYWRnZS1sYWJlbC1zcGFjaW5nOiAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuXG4kYmFkZ2UtdGV4dC1jb2xvci1zdWNjZXNzOiAgICAgIG1hcC1kZWVwLWdldCgkU1RBVFVTLVRIRU1FUywgXCJzdWNjZXNzXCIsIFwidGV4dC1jb2xvclwiKSAhZGVmYXVsdDtcbiRiYWRnZS10ZXh0LWNvbG9yLXdhcm5pbmc6ICAgICAgbWFwLWRlZXAtZ2V0KCRTVEFUVVMtVEhFTUVTLCBcIndhcm5pbmdcIiwgXCJ0ZXh0LWNvbG9yXCIpICFkZWZhdWx0O1xuJGJhZGdlLXRleHQtY29sb3ItZXJyb3I6ICAgICAgICBtYXAtZGVlcC1nZXQoJFNUQVRVUy1USEVNRVMsIFwiZXJyb3JcIiwgXCJ0ZXh0LWNvbG9yXCIpICFkZWZhdWx0O1xuJGJhZGdlLXRleHQtY29sb3Itbm90aWZpY2F0aW9uOiBtYXAtZGVlcC1nZXQoJFNUQVRVUy1USEVNRVMsIFwid2FybmluZ1wiLCBcInRleHQtY29sb3JcIikgIWRlZmF1bHQ7XG4kYmFkZ2UtY29sb3Itbm90aWZpY2F0aW9uOiAgICAgIG1hcC1kZWVwLWdldCgkU1RBVFVTLVRIRU1FUywgXCJ3YXJuaW5nXCIsIFwiYmFja2dyb3VuZC1jb2xvclwiKSAhZGVmYXVsdDtcblxuJGJhZGdlLWljb24tc2l6ZTogICAgICAgICAgICAgICBpY29uLXNpemUoeHhzbWFsbCkgIWRlZmF1bHQ7XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjQlVUVE9OUyAoU2V0dGluZ3MpXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGJ1dHRvbi1oZWlnaHQtZml4ZWQ6ICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG5cbiRidXR0b24tcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAkQlVUVE9OLVBBRERJTkctVkVSVElDQUwgIWRlZmF1bHQ7XG4kYnV0dG9uLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgJEJVVFRPTi1QQURESU5HLUhPUklaT05UQUwgIWRlZmF1bHQ7XG5cbiRidXR0b24tYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAkQlVUVE9OLUJPUkRFUi1SQURJVVMgIWRlZmF1bHQ7XG5cbiRidXR0b24tZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAkQlVUVE9OLUZPTlQtV0VJR0hUICFkZWZhdWx0O1xuJGJ1dHRvbi1sZXR0ZXItc3BhY2luZzogICAgICAgICAgICAgICRCVVRUT04tTEVUVEVSLVNQQUNJTkcgIWRlZmF1bHQ7XG5cbiRidXR0b24tdGV4dC1pY29uLXNwYWNpbmc6ICAgICAgICAgICAkQlVUVE9OLVRFWFQtSUNPTi1TUEFDSU5HICFkZWZhdWx0O1xuXG4kYnV0dG9uLWljb24tc2l6ZTogICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKCRCVVRUT04tSUNPTi1TSVpFKSAhZGVmYXVsdDtcblxuJGJ1dHRvbi1pY29uLW9ubHktc2l6ZTogICAgICAgICAgICAgIGljb24tc2l6ZSh4eHNtYWxsKSAhZGVmYXVsdDtcbiRidXR0b24taWNvbi1vbmx5LXNpemUtc21hbGw6ICAgICAgICBpY29uLXNpemUoeHhzbWFsbCkgIWRlZmF1bHQ7XG4kYnV0dG9uLWljb24tb25seS1ib3gtc2l6ZTogICAgICAgICAgXCJtZWRpdW1cIiAhZGVmYXVsdDtcbiRidXR0b24taWNvbi1vbmx5LWJveC1zaXplLXNtYWxsOiAgICBcInhzbWFsbFwiICFkZWZhdWx0O1xuJGJ1dHRvbi1pY29uLW9ubHktY2lyY2xlLXNpemU6ICAgICAgIFwibWVkaXVtXCIgIWRlZmF1bHQ7XG4kYnV0dG9uLWljb24tb25seS1jaXJjbGUtc2l6ZS1zbWFsbDogXCJ4c21hbGxcIiAhZGVmYXVsdDtcbiRidXR0b24taWNvbi1vbmx5LWJvcmRlci13aWR0aDogICAgICAwICFkZWZhdWx0O1xuXG4kYnV0dG9uLWxpbmstc2ltcGxlOiAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRidXR0b24tZm9jdXMtZGlzYWJsZS1vdXRsaW5lOiAgICAgICBmYWxzZSAhZGVmYXVsdDtcblxuJGJ1dHRvbi12YXJpYW50cy1icmFuZC1vdmVyd3JpdGVzOiAoXG4gICAgcHJpbWFyeTogKFxuICAgICAgICB0ZXh0LWNvbG9yLWhvdmVyOiAgJEJVVFRPTi1GT05ULUNPTE9SLFxuICAgICAgICB0ZXh0LWNvbG9yLWFjdGl2ZTogJEJVVFRPTi1GT05ULUNPTE9SLFxuICAgICksXG4pICFkZWZhdWx0O1xuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBsZW5ndGgtemVyby1uby11bml0ICovXG4kYnV0dG9uLXZhcmlhbnRzOiAoXG4gICAgcHJpbWFyeTogKFxuICAgICAgICBiYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgJEJVVFRPTi1CQUNLR1JPVU5ELUNPTE9SLFxuICAgICAgICBiYWNrZ3JvdW5kLWhvdmVyOiAgICAgICAgICAgICAgICAgICAgJEJVVFRPTi1CQUNLR1JPVU5ELUNPTE9SLUhPVkVSLFxuICAgICAgICBiYWNrZ3JvdW5kLWFjdGl2ZTogICAgICAgICAgICAgICAgICAgJEJVVFRPTi1CQUNLR1JPVU5ELUNPTE9SLUFDVElWRSxcbiAgICAgICAgYmFja2dyb3VuZC1kaXNhYmxlZDogICAgICAgICAgICAgICAgICRCVVRUT04tQkFDS0dST1VORC1DT0xPUi1ESVNBQkxFRCxcbiAgICAgICAgYmFja2dyb3VuZC1kaXNhYmxlZC1ob3ZlcjogICAgICAgICAgIG51bGwsXG4gICAgICAgIHRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAkQlVUVE9OLUZPTlQtQ09MT1IsXG4gICAgICAgIHRleHQtY29sb3ItaG92ZXI6ICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICB0ZXh0LWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgICAgICAgJEJVVFRPTi1GT05ULUNPTE9SLURJU0FCTEVELFxuICAgICAgICB0ZXh0LWNvbG9yLWRpc2FibGVkLWhvdmVyOiAgICAgICAgICAgbnVsbCxcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgIDAsXG4gICAgICAgIGJvcmRlci13aWR0aC1kaXNhYmxlZDogICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBib3JkZXItc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgYm9yZGVyLXN0eWxlLWRpc2FibGVkOiAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIGJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBib3JkZXItY29sb3ItaG92ZXI6ICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgYm9yZGVyLWNvbG9yLWFjdGl2ZTogICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIGJvcmRlci1jb2xvci1kaXNhYmxlZDogICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBib3JkZXItY29sb3ItZGlzYWJsZWQtaG92ZXI6ICAgICAgICAgbnVsbCxcbiAgICAgICAgbGluay10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICRCVVRUT04tTElOSy1URVhULUNPTE9SLFxuICAgICAgICBsaW5rLXRleHQtY29sb3ItaG92ZXI6ICAgICAgICAgICAgICAgJEJVVFRPTi1MSU5LLVRFWFQtQ09MT1ItSE9WRVIsXG4gICAgICAgIGxpbmstdGV4dC1jb2xvci1kaXNhYmxlZDogICAgICAgICAgICAkQlVUVE9OLUxJTkstVEVYVC1DT0xPUi1ESVNBQkxFRCxcbiAgICAgICAgbGluay10ZXh0LWNvbG9yLWFjdGl2ZTogICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIGxpbmstaWNvbi1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICBudWxsLFxuICAgICAgICBsaW5rLWljb24tYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogICAgbnVsbCxcbiAgICAgICAgbGluay1pY29uLWJhY2tncm91bmQtY29sb3ItYWN0aXZlOiAgIG51bGwsXG4gICAgICAgIGxpbmstaWNvbi1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkOiBudWxsLFxuICAgICAgICBsaW5rLWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJEJVVFRPTi1MSU5LLUlDT04tQ09MT1IsXG4gICAgICAgIGxpbmstaWNvbi1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICAkQlVUVE9OLUxJTkstSUNPTi1DT0xPUi1IT1ZFUixcbiAgICAgICAgbGluay1pY29uLWNvbG9yLWFjdGl2ZTogICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIGxpbmstaWNvbi1jb2xvci1kaXNhYmxlZDogICAgICAgICAgICAkQlVUVE9OLUxJTkstVEVYVC1DT0xPUi1ESVNBQkxFRCxcbiAgICAgICAgbGluay1zaW1wbGUtaWNvbi1jb2xvcjogICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIGxpbmstc2ltcGxlLWljb24tY29sb3ItaG92ZXI6ICAgICAgICBudWxsLFxuICAgICAgICBsaW5rLXNpbXBsZS1pY29uLWNvbG9yLWFjdGl2ZTogICAgICAgbnVsbCxcbiAgICAgICAgbGluay1zaW1wbGUtaWNvbi1jb2xvci1kaXNhYmxlZDogICAgIG51bGwsXG4gICAgICAgIGxpbmstaWNvbi1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBsaW5rLWljb24tYm9yZGVyLWNvbG9yLWhvdmVyOiAgICAgICAgbnVsbCxcbiAgICAgICAgbGluay1pY29uLWJvcmRlci1jb2xvci1hY3RpdmU6ICAgICAgIG51bGwsXG4gICAgICAgIGxpbmstaWNvbi1ib3JkZXItY29sb3ItZGlzYWJsZWQ6ICAgICBudWxsLFxuICAgICAgICBpY29uLW9ubHktY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJEJVVFRPTi1GT05ULUNPTE9SLFxuICAgICAgICBpY29uLW9ubHktY29sb3ItaG92ZXI6ICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgaWNvbi1vbmx5LWNvbG9yLWFjdGl2ZTogICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIGljb24tb25seS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAkQlVUVE9OLUJBQ0tHUk9VTkQtQ09MT1IsXG4gICAgICAgIGljb24tb25seS1iYWNrZ3JvdW5kLWhvdmVyOiAgICAgICAgICAkQlVUVE9OLUJBQ0tHUk9VTkQtQ09MT1ItSE9WRVIsXG4gICAgICAgIGljb24tb25seS1iYWNrZ3JvdW5kLWFjdGl2ZTogICAgICAgICAkQlVUVE9OLUJBQ0tHUk9VTkQtQ09MT1ItQUNUSVZFLFxuICAgICAgICBpY29uLW9ubHktYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgdHJhbnNwYXJlbnQsXG4gICAgICAgIGljb24tb25seS1ib3JkZXItY29sb3ItaG92ZXI6ICAgICAgICBudWxsLFxuICAgICAgICBpY29uLW9ubHktYm9yZGVyLWNvbG9yLWFjdGl2ZTogICAgICAgbnVsbCxcbiAgICApLFxuICAgIHNlY29uZGFyeTogKFxuICAgICAgICBiYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgJEJVVFRPTi1TRUNPTkRBUlktQkFDS0dST1VORC1DT0xPUixcbiAgICAgICAgYmFja2dyb3VuZC1ob3ZlcjogICAgICAgICAgICAgICAgICAgICRCVVRUT04tU0VDT05EQVJZLUJBQ0tHUk9VTkQtQ09MT1ItSE9WRVIsXG4gICAgICAgIGJhY2tncm91bmQtYWN0aXZlOiAgICAgICAgICAgICAgICAgICAkQlVUVE9OLVNFQ09OREFSWS1CQUNLR1JPVU5ELUNPTE9SLUFDVElWRSxcbiAgICAgICAgYmFja2dyb3VuZC1kaXNhYmxlZDogICAgICAgICAgICAgICAgICRCVVRUT04tU0VDT05EQVJZLUJBQ0tHUk9VTkQtQ09MT1ItRElTQUJMRUQsXG4gICAgICAgIGJhY2tncm91bmQtZGlzYWJsZWQtaG92ZXI6ICAgICAgICAgICBudWxsLFxuICAgICAgICBib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgYm94LXNoYWRvdy1ob3ZlcjogICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIGJveC1zaGFkb3ctYWN0aXZlOiAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBib3gtc2hhZG93LWRpc2FibGVkOiAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgYm94LXNoYWRvdy1kaXNhYmxlZC1ob3ZlcjogICAgICAgICAgIG51bGwsXG4gICAgICAgIHRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAkQlVUVE9OLVNFQ09OREFSWS1URVhULUNPTE9SLFxuICAgICAgICB0ZXh0LWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAgICAgICAgJEJVVFRPTi1TRUNPTkRBUlktVEVYVC1DT0xPUi1IT1ZFUixcbiAgICAgICAgdGV4dC1jb2xvci1hY3RpdmU6ICAgICAgICAgICAgICAgICAgICRCVVRUT04tU0VDT05EQVJZLVRFWFQtQ09MT1ItQUNUSVZFLFxuICAgICAgICB0ZXh0LWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgICAgICAgJEJVVFRPTi1TRUNPTkRBUlktVEVYVC1DT0xPUi1ESVNBQkxFRCxcbiAgICAgICAgdGV4dC1jb2xvci1kaXNhYmxlZC1ob3ZlcjogICAgICAgICAgIG51bGwsXG4gICAgICAgIGJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBib3JkZXItd2lkdGgtZGlzYWJsZWQ6ICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgYm9yZGVyLXN0eWxlOiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIGJvcmRlci1zdHlsZS1kaXNhYmxlZDogICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgYm9yZGVyLWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIGJvcmRlci1jb2xvci1hY3RpdmU6ICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBib3JkZXItY29sb3ItZGlzYWJsZWQ6ICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgYm9yZGVyLWNvbG9yLWRpc2FibGVkLWhvdmVyOiAgICAgICAgIG51bGwsXG4gICAgICAgIGxpbmstdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBsaW5rLXRleHQtY29sb3ItZGlzYWJsZWQ6ICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgbGluay10ZXh0LWNvbG9yLWFjdGl2ZTogICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIGxpbmstdGV4dC1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBsaW5rLWljb24tYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgbnVsbCxcbiAgICAgICAgbGluay1pY29uLWJhY2tncm91bmQtY29sb3ItaG92ZXI6ICAgIG51bGwsXG4gICAgICAgIGxpbmstaWNvbi1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZTogICBudWxsLFxuICAgICAgICBsaW5rLWljb24tYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDogbnVsbCxcbiAgICAgICAgbGluay1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICRCVVRUT04tTElOSy1URVhULUNPTE9SLFxuICAgICAgICBsaW5rLWljb24tY29sb3ItaG92ZXI6ICAgICAgICAgICAgICAgJEJVVFRPTi1MSU5LLVRFWFQtQ09MT1ItSE9WRVIsXG4gICAgICAgIGxpbmstaWNvbi1jb2xvci1hY3RpdmU6ICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBsaW5rLWljb24tY29sb3ItZGlzYWJsZWQ6ICAgICAgICAgICAgJEJVVFRPTi1MSU5LLVRFWFQtQ09MT1ItRElTQUJMRUQsXG4gICAgICAgIGxpbmstaWNvbi1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBsaW5rLWljb24tYm9yZGVyLWNvbG9yLWhvdmVyOiAgICAgICAgbnVsbCxcbiAgICAgICAgbGluay1pY29uLWJvcmRlci1jb2xvci1hY3RpdmU6ICAgICAgIG51bGwsXG4gICAgICAgIGxpbmstaWNvbi1ib3JkZXItY29sb3ItZGlzYWJsZWQ6ICAgICBudWxsLFxuICAgICAgICBpY29uLW9ubHktY29sb3I6ICAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgaWNvbi1vbmx5LWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIGljb24tb25seS1jb2xvci1hY3RpdmU6ICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBpY29uLW9ubHktYmFja2dyb3VuZDogICAgICAgICAgICAgICAgJEJVVFRPTi1URVJUSUFSWS1CQUNLR1JPVU5ELUNPTE9SLFxuICAgICAgICBpY29uLW9ubHktYmFja2dyb3VuZC1ob3ZlcjogICAgICAgICAgJEJVVFRPTi1URVJUSUFSWS1CQUNLR1JPVU5ELUNPTE9SLUhPVkVSLFxuICAgICAgICBpY29uLW9ubHktYmFja2dyb3VuZC1hY3RpdmU6ICAgICAgICAgJEJVVFRPTi1URVJUSUFSWS1CQUNLR1JPVU5ELUNPTE9SLUFDVElWRSxcbiAgICAgICAgaWNvbi1vbmx5LWJvcmRlci1jb2xvcjogICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIGljb24tb25seS1ib3JkZXItY29sb3ItaG92ZXI6ICAgICAgICBudWxsLFxuICAgICAgICBpY29uLW9ubHktYm9yZGVyLWNvbG9yLWFjdGl2ZTogICAgICAgbnVsbCxcbiAgICApLFxuICAgIGFjdGlvbjogKFxuICAgICAgICBiYWNrZ3JvdW5kOiAgICAgICAgICAkQlVUVE9OLUJBQ0tHUk9VTkQtQ09MT1IsXG4gICAgICAgIGJhY2tncm91bmQtaG92ZXI6ICAgICRCVVRUT04tQkFDS0dST1VORC1DT0xPUi1IT1ZFUixcbiAgICAgICAgYmFja2dyb3VuZC1hY3RpdmU6ICAgJEJVVFRPTi1CQUNLR1JPVU5ELUNPTE9SLUFDVElWRSxcbiAgICAgICAgYmFja2dyb3VuZC1kaXNhYmxlZDogJEJVVFRPTi1CQUNLR1JPVU5ELUNPTE9SLURJU0FCTEVELFxuICAgICAgICB0ZXh0LWNvbG9yLWRpc2FibGVkOiAkQlVUVE9OLUZPTlQtQ09MT1ItRElTQUJMRUQsXG4gICAgICAgIGJvcmRlci13aWR0aDogICAgICAgIDBweCxcbiAgICAgICAgYm9yZGVyLXJhZGl1czogICAgICAgY2FsYyh2YXIoLS1idXR0b24taGVpZ2h0KSAvIDIpLFxuICAgICAgICBwYWRkaW5nLWhvcml6b250YWw6ICBjYWxjKHZhcigtLWJ1dHRvbi1oZWlnaHQpIC8gMiksXG4gICAgKSxcbikgIWRlZmF1bHQ7XG4vKiBzdHlsZWxpbnQtZW5hYmxlIGxlbmd0aC16ZXJvLW5vLXVuaXQgKi9cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNCVVRUT05TXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gRGVmaW5lIHlvdXIgZGVzaXJlZCBidXR0b24gaGVpZ2h0LlxuLy8gTk9URTogVGhpcyBqdXN0IGFwcGxpZXMsIGlmIHlvdSBkZWZpbmUgdGhlIGAkYnV0dG9uLWxpbmUtaGVpZ2h0YCB3aXRoIGEgYHB4YFxuLy8gdmFsdWUuIElmIHlvdSBuZWVkIHRvIGRlZmluZSB5b3VyIGxpbmUtaGVpZ2h0IHdpdGggYW5vdGhlciB1bml0LCB5b3UgbmVlZCB0b1xuLy8gY29uc3RydWN0IHRoZSBoZWlnaHQgb2YgeW91ciBidXR0b24geW91cnNlbGYgYnkgYWx0ZXJpbmcgdGhlXG4vLyBgJGJ1dHRvbi1wYWRkaW5nLXZlcnRpY2FsYCB2YXJpYWJsZS5cbiRidXR0b24taGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJVVFRPTi1IRUlHSFQgIWRlZmF1bHQ7XG5cbi8vIEJ5IGRlZmF1bHQsIHRoZSBkZWZpbmVkIGAkYnV0dG9uLWhlaWdodGAgaXMgYSBtaW4taGVpZ2h0LCBtZWFuaW5nIHRoZSBidXR0b25cbi8vIGdyb3dzIGluIGNhc2Ugb2YgbXVsdGlsaW5lIGJ1dHRvbiB0ZXh0LiBCeSBlbmFibGluZyB0aGlzIHZhcmlhYmxlLCB5b3UgY2FuXG4vLyBwcmV2ZW50IHRoZSBidXR0b24gZnJvbSBncm93aW5nIHNvIGl0IGtlZXBzIGl0cyBoZWlnaHQgbm8gbWF0dGVyIGl0cyBjb250ZW50LlxuJGJ1dHRvbi1oZWlnaHQtZml4ZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcblxuLy8gUHJlZmVyIHRvIGRlZmluZSB5b3VyIGxpbmUtaGVpZ2h0IHdpdGggYSBgcHhgIHZhbHVlLCBzbyB0aGUgZGVzaXJlZFxuLy8gYnV0dG9uIGhlaWdodCB5b3UgZGVmaW5lZCBhYm92ZSBjYW4gYmUgY2FsY3VsYXRlZCBhdXRvbWF0aWNhbGx5LlxuJGJ1dHRvbi1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAkQlVUVE9OLUxJTkUtSEVJR0hUICFkZWZhdWx0O1xuXG4vLyBBc3NpZ24gdGhlIGJ1dHRvbiB0ZXh0LXNpemUgYnkgYXNzaWduaW5nIGEgZm9udC1zaXplIGZyb21cbi8vIGBfc2V0dGluZ3MuZm9udC1zaXplcy5zY3NzYC5cbiRidXR0b24tdGV4dC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEZTMCAhZGVmYXVsdDtcblxuLy8gSW5pdGlhdGUgYCRidXR0b24tcGFkZGluZy12ZXJ0aWNhbGAsIHNvIGl0IGNhbiBiZSB1c2VkIGFuZCBhbHRlcmVkIGluIHRoZVxuLy8gZm9sbG93aW5nIEBpZiBjb25kaXRpb24uXG4kYnV0dG9uLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbi8vIElmIGAkYnV0dG9uLWxpbmUtaGVpZ2h0YCBpcyBhIGBweGAgdmFsdWUsIHdlIGNhbiB1c2UgdGhhdCBhbmQgdGhlXG4vLyBgJGJ1dHRvbi1oZWlnaHRgIHRvIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlIHRoZSBhcHByb3ByaWF0ZVxuLy8gYCRidXR0b24tcGFkZGluZy12ZXJ0aWNhbGAgdmFsdWUsIHNvIGl0IHlpZWxkcyB0aGUgZGVzaXJlZCBidXR0b24gaGVpZ2h0LlxuQGlmICh1bml0KCRidXR0b24tbGluZS1oZWlnaHQpID09IFwicHhcIikge1xuICAgICRidXR0b24tcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAoJGJ1dHRvbi1oZWlnaHQgLSAkYnV0dG9uLWxpbmUtaGVpZ2h0KSAqIDAuNTtcbn0gQGVsc2Uge1xuICAgIC8vIElmIHRoZSBgJGJ1dHRvbi1saW5lLWhlaWdodGAgaXMgbm90IGEgYHB4YCB2YWx1ZSwgdGhlIGFib3ZlIGNhbGN1bGF0aW9uXG4gICAgLy8gd291bGRuJ3Qgd29yay4gSW4gdGhhdCBjYXNlLCB0aGUgQGlmIGNvbmRpdGlvbiBhYm92ZSB3b3VsZG4ndCBhcHBseSBhbmRcbiAgICAvLyBpbnN0ZWFkLCB0aGUgZm9sbG93aW5nIHZhcmlhYmxlIGFzc2lnbm1lbnQgd291bGQgYXBwbHkuXG4gICAgJGJ1dHRvbi1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMO1xufVxuXG5AaWYgKCRidXR0b24taGVpZ2h0LWZpeGVkID09IHRydWUpIHtcbiAgICAkYnV0dG9uLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgMDtcbn1cblxuJGJ1dHRvbi1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcblxuLy8gU2V0IGEgZ2VuZXJhbCBgYm9yZGVyLXJhZGl1c2AgdmFsdWUgKGZvciBhbGwgZm91ciBjb3JuZXJzKS5cbiRidXR0b24tYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItUkFESVVTICFkZWZhdWx0O1xuXG4kYnV0dG9uLXRyYW5zaXRpb24tcHJvcGVydHk6ICAgICAgICAgICAgICAgICAgICRHTE9CQUwtVFJBTlNJVElPTi1QUk9QRVJUWSAhZGVmYXVsdDtcbiRidXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbjogICAgICAgICAgICAgICAgICAgJEdMT0JBTC1UUkFOU0lUSU9OLURVUkFUSU9OICFkZWZhdWx0O1xuJGJ1dHRvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogICAgICAgICAgICAkR0xPQkFMLVRSQU5TSVRJT04tVElNSU5HLUZVTkNUSU9OICFkZWZhdWx0O1xuXG4vLyBNaXNjIHRleHQgc3R5bGVzLlxuJGJ1dHRvbi10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgICAgICAgICAgICAgICBpbmhlcml0ICFkZWZhdWx0O1xuJGJ1dHRvbi1saW5rLXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgICAgICAkQkFTRS1GT05ULUZBTUlMWSAhZGVmYXVsdDtcbiRidXR0b24tZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1SRUdVTEFSICFkZWZhdWx0O1xuJGJ1dHRvbi1saW5rLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAkYnV0dG9uLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJGJ1dHRvbi1sZXR0ZXItc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4vLyBEZWZpbmUgdGhlIHNwYWNpbmcgYmV0d2VlbiB0aGUgaWNvbiBhbmQgdGhlIHRleHQuXG4kYnV0dG9uLXRleHQtaWNvbi1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcblxuLy8gRGVmaW5lIGlmIHRoZSBpY29uIGluIGZyb250IG9mIHRoZSB0aGUgYnV0dG9uLWxpbmsgaGFzIHNvbWUgc29ydCBvZlxuLy8gc3BlY2lhbCBjb3NtZXRpY3MgKHZpYSB0aGUgYGljb24tdmFyaWFudGAgbWl4aW4pIG9yIGlzIGp1c3QgYSBwbGFpbiBpY29uLlxuJGJ1dHRvbi1saW5rLXNpbXBsZTogICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcblxuLy8gQWRkIGEgdHJhbnNwYXJlbnQgYm9yZGVyIHRvIGF2b2lkIGp1bXBpbmcgbGluayBvbiBob3ZlclxuJGJ1dHRvbi1saW5rLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAxcHggc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbi8vIERlZmluZSB0aGUgaWNvbiBzaXplLiBOb3RlLCB0aGF0IGEgc2l6ZSBsYXJnZXIgdGhhbiB0aGUgbGluZS1oZWlnaHQgb2YgdGhlXG4vLyBidXR0b27igJlzIHRleHQgc2l6ZSBtaWdodCByZXN1bHQgaW4gYSB0YWxsZXIgYnV0dG9uIHdoZW4gdGhlIGJ1dHRvbuKAmXNcbi8vIGxpbmUtaGVpZ2h0IElTIE5PVCBhIGZpeGVkIHZhbHVlLlxuJGJ1dHRvbi1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uLXNpemUoc21hbGwpICFkZWZhdWx0O1xuXG4vLyBEZWZpbmUgdGhlIGljb24gc2l6ZXMgZm9yIHRoZSBpY29uLW9ubHkgYnV0dG9uIHZhcmlhbnRzLlxuJGJ1dHRvbi1pY29uLW9ubHktc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICBpY29uLXNpemUobWVkaXVtKSAhZGVmYXVsdDtcbiRidXR0b24taWNvbi1vbmx5LXNpemUtc21hbGw6ICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKHNtYWxsKSAhZGVmYXVsdDtcbi8vIERlZmluZSB0aGUgYm94L2NpcmNsZSBzaXplcyBvZiB0aGUgaWNvbnMgZm9yIHRoZSBpY29uLW9ubHkgYnV0dG9uIHZhcmlhbnRzLlxuJGJ1dHRvbi1pY29uLW9ubHktYm94LXNpemU6ICAgICAgICAgICAgICAgICAgICBcIm1lZGl1bVwiICFkZWZhdWx0O1xuJGJ1dHRvbi1pY29uLW9ubHktYm94LXNpemUtc21hbGw6ICAgICAgICAgICAgICBcInNtYWxsXCIgIWRlZmF1bHQ7XG4kYnV0dG9uLWljb24tb25seS1jaXJjbGUtc2l6ZTogICAgICAgICAgICAgICAgIFwibWVkaXVtXCIgIWRlZmF1bHQ7XG4kYnV0dG9uLWljb24tb25seS1jaXJjbGUtc2l6ZS1zbWFsbDogICAgICAgICAgIFwic21hbGxcIiAhZGVmYXVsdDtcblxuJGJ1dHRvbi1pY29uLW9ubHktYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAkSUNPTi1CT1JERVItV0lEVEggIWRlZmF1bHQ7XG4kYnV0dG9uLWljb24tb25seS1ib3JkZXItc3R5bGU6ICAgICAgICAgICAgICAgICRJQ09OLUJPUkRFUi1TVFlMRSAhZGVmYXVsdDtcblxuJGJ1dHRvbi1mb2N1cy1kaXNhYmxlLW91dGxpbmU6ICAgICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuXG4vLyBTaW5jZSB3ZSBhbmltYXRlIHRoZSBgbWF4LXdpZHRoYCB3ZSBuZWVkIGEgbGFyZ2UgZW5vdWdoIHZhbHVlIGZvciB0aGVcbi8vIHRyYW5zaXRpb24uXG4kYnV0dG9uLWluY29nbml0by1tYXgtd2lkdGg6ICAgICAgICAgICAgICAgICAgIDMwZW0gIWRlZmF1bHQ7XG5cbi8vIFB1dHRpbmcgYWxsIGNvc21ldGljIHN0eWxlcyBpbiBhIG1hcCB0byBtYW5hZ2UgZXZlcnl0aGluZyBhdCBvbmUgcGxhY2UuXG4vLyBUaGlzIG1ha2VzIHRoZSB3aG9sZSB0aGluZyBtb3JlIHJlYWRhYmxlIGFuZCBhbHNvIGdpdmVzIHVzIHRoZSBvcHBvcnR1bml0eVxuLy8gdG8gZWFzaWx5IGFkZCBtb3JlIGJ1dHRvbiB2YXJpYW50cyBsYXRlciBvbiBqdXN0IGJ5IGFkZGluZyBhIG5ldyBlbnRyeVxuLy8gdG8gdGhlIG1hcC5cbiRidXR0b24tdmFyaWFudHM6IChcbiAgICBwcmltYXJ5OiAoXG4gICAgICAgIGJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQsXG4gICAgICAgIGJhY2tncm91bmQtaG92ZXI6ICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQkFTRSxcbiAgICAgICAgYmFja2dyb3VuZC1hY3RpdmU6ICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIGJhY2tncm91bmQtZGlzYWJsZWQ6ICAgICAgICAgICAgICAgICByZ2JhKCRDT0xPUi1JTkFDVElWRSwgJE9QQUNJVFktTUVESVVNKSxcbiAgICAgICAgYmFja2dyb3VuZC1kaXNhYmxlZC1ob3ZlcjogICAgICAgICAgIHJnYmEoJENPTE9SLUlOQUNUSVZFLCAkT1BBQ0lUWS1NRURJVU0pLFxuICAgICAgICBib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgYm94LXNoYWRvdy1ob3ZlcjogICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIGJveC1zaGFkb3ctYWN0aXZlOiAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBib3gtc2hhZG93LWRpc2FibGVkOiAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgYm94LXNoYWRvdy1kaXNhYmxlZC1ob3ZlcjogICAgICAgICAgIG51bGwsXG4gICAgICAgIHRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItV0hJVEUsXG4gICAgICAgIHRleHQtY29sb3ItaG92ZXI6ICAgICAgICAgICAgICAgICAgICAkQ09MT1ItV0hJVEUsXG4gICAgICAgIHRleHQtY29sb3ItYWN0aXZlOiAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICB0ZXh0LWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgICAgICAgcmdiYSgkQ09MT1ItQkFTRSwgJE9QQUNJVFktTUVESVVNKSxcbiAgICAgICAgdGV4dC1jb2xvci1kaXNhYmxlZC1ob3ZlcjogICAgICAgICAgIHJnYmEoJENPTE9SLUJBU0UsICRPUEFDSVRZLU1FRElVTSksXG4gICAgICAgIGJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUJPUkRFUi1XSURUSCxcbiAgICAgICAgYm9yZGVyLXdpZHRoLWRpc2FibGVkOiAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtQk9SREVSLVdJRFRILFxuICAgICAgICBib3JkZXItc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItU1RZTEUsXG4gICAgICAgIGJvcmRlci1zdHlsZS1kaXNhYmxlZDogICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUJPUkRFUi1TVFlMRSxcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CUkFORCxcbiAgICAgICAgYm9yZGVyLWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAgICAgICRDT0xPUi1CUkFORCxcbiAgICAgICAgYm9yZGVyLWNvbG9yLWFjdGl2ZTogICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIGJvcmRlci1jb2xvci1kaXNhYmxlZDogICAgICAgICAgICAgICByZ2JhKCRDT0xPUi1JTkFDVElWRSwgJE9QQUNJVFktTUVESVVNKSxcbiAgICAgICAgYm9yZGVyLWNvbG9yLWRpc2FibGVkLWhvdmVyOiAgICAgICAgIHJnYmEoJENPTE9SLUlOQUNUSVZFLCAkT1BBQ0lUWS1NRURJVU0pLFxuICAgICAgICBsaW5rLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCxcbiAgICAgICAgbGluay10ZXh0LWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgIHJnYmEoJENPTE9SLUJBU0UsICRPUEFDSVRZLU1FRElVTSksXG4gICAgICAgIGxpbmstdGV4dC1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICAkQ09MT1ItQkFTRS1URVhULFxuICAgICAgICBsaW5rLXRleHQtY29sb3ItYWN0aXZlOiAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgbGluay1pY29uLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICRDT0xPUi1CUkFORCxcbiAgICAgICAgbGluay1pY29uLWJhY2tncm91bmQtY29sb3ItaG92ZXI6ICAgICRDT0xPUi1CQVNFLFxuICAgICAgICBsaW5rLWljb24tYmFja2dyb3VuZC1jb2xvci1hY3RpdmU6ICAgbnVsbCxcbiAgICAgICAgbGluay1pY29uLWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQ6IHJnYmEoJENPTE9SLUlOQUNUSVZFLCAkT1BBQ0lUWS1NRURJVU0pLFxuICAgICAgICBsaW5rLWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJENPTE9SLVdISVRFLFxuICAgICAgICBsaW5rLWljb24tY29sb3ItaG92ZXI6ICAgICAgICAgICAgICAgJENPTE9SLVdISVRFLFxuICAgICAgICBsaW5rLWljb24tY29sb3ItYWN0aXZlOiAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgbGluay1pY29uLWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgIHJnYmEoJENPTE9SLUJBU0UsICRPUEFDSVRZLU1FRElVTSksXG4gICAgICAgIGxpbmstc2ltcGxlLWljb24tY29sb3I6ICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQsXG4gICAgICAgIGxpbmstc2ltcGxlLWljb24tY29sb3ItaG92ZXI6ICAgICAgICAkQ09MT1ItQlJBTkQsXG4gICAgICAgIGxpbmstc2ltcGxlLWljb24tY29sb3ItYWN0aXZlOiAgICAgICBudWxsLFxuICAgICAgICBsaW5rLXNpbXBsZS1pY29uLWNvbG9yLWRpc2FibGVkOiAgICAgcmdiYSgkQ09MT1ItQkFTRSwgJE9QQUNJVFktTUVESVVNKSxcbiAgICAgICAgbGluay1pY29uLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICRDT0xPUi1CUkFORCxcbiAgICAgICAgbGluay1pY29uLWJvcmRlci1jb2xvci1ob3ZlcjogICAgICAgICRDT0xPUi1CUkFORCxcbiAgICAgICAgbGluay1pY29uLWJvcmRlci1jb2xvci1hY3RpdmU6ICAgICAgIG51bGwsXG4gICAgICAgIGxpbmstaWNvbi1ib3JkZXItY29sb3ItZGlzYWJsZWQ6ICAgICByZ2JhKCRDT0xPUi1JTkFDVElWRSwgJE9QQUNJVFktTUVESVVNKSxcbiAgICAgICAgaWNvbi1vbmx5LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1XSElURSxcbiAgICAgICAgaWNvbi1vbmx5LWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAgICRDT0xPUi1XSElURSxcbiAgICAgICAgaWNvbi1vbmx5LWNvbG9yLWFjdGl2ZTogICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIGljb24tb25seS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQsXG4gICAgICAgIGljb24tb25seS1iYWNrZ3JvdW5kLWhvdmVyOiAgICAgICAgICAkQ09MT1ItQkFTRSxcbiAgICAgICAgaWNvbi1vbmx5LWJhY2tncm91bmQtYWN0aXZlOiAgICAgICAgIG51bGwsXG4gICAgICAgIGljb24tb25seS1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQsXG4gICAgICAgIGljb24tb25seS1ib3JkZXItY29sb3ItaG92ZXI6ICAgICAgICAkQ09MT1ItQlJBTkQsXG4gICAgICAgIGljb24tb25seS1ib3JkZXItY29sb3ItYWN0aXZlOiAgICAgICBudWxsLFxuICAgICksXG4gICAgc2Vjb25kYXJ5OiAoXG4gICAgICAgIGJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItV0hJVEUsXG4gICAgICAgIGJhY2tncm91bmQtaG92ZXI6ICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQkFTRSxcbiAgICAgICAgYmFja2dyb3VuZC1hY3RpdmU6ICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIGJhY2tncm91bmQtZGlzYWJsZWQ6ICAgICAgICAgICAgICAgICByZ2JhKCRDT0xPUi1JTkFDVElWRSwgJE9QQUNJVFktTUVESVVNKSxcbiAgICAgICAgYmFja2dyb3VuZC1kaXNhYmxlZC1ob3ZlcjogICAgICAgICAgIHJnYmEoJENPTE9SLUlOQUNUSVZFLCAkT1BBQ0lUWS1NRURJVU0pLFxuICAgICAgICBib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgYm94LXNoYWRvdy1ob3ZlcjogICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIGJveC1zaGFkb3ctYWN0aXZlOiAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBib3gtc2hhZG93LWRpc2FibGVkOiAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgYm94LXNoYWRvdy1kaXNhYmxlZC1ob3ZlcjogICAgICAgICAgIG51bGwsXG4gICAgICAgIHRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQkFTRSxcbiAgICAgICAgdGV4dC1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICAgICAgICRDT0xPUi1XSElURSxcbiAgICAgICAgdGV4dC1jb2xvci1hY3RpdmU6ICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIHRleHQtY29sb3ItZGlzYWJsZWQ6ICAgICAgICAgICAgICAgICByZ2JhKCRDT0xPUi1CQVNFLCAkT1BBQ0lUWS1NRURJVU0pLFxuICAgICAgICB0ZXh0LWNvbG9yLWRpc2FibGVkLWhvdmVyOiAgICAgICAgICAgcmdiYSgkQ09MT1ItQkFTRSwgJE9QQUNJVFktTUVESVVNKSxcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtQk9SREVSLVdJRFRILFxuICAgICAgICBib3JkZXItd2lkdGgtZGlzYWJsZWQ6ICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItV0lEVEgsXG4gICAgICAgIGJvcmRlci1zdHlsZTogICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUJPUkRFUi1TVFlMRSxcbiAgICAgICAgYm9yZGVyLXN0eWxlLWRpc2FibGVkOiAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtQk9SREVSLVNUWUxFLFxuICAgICAgICBib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJSQU5ELFxuICAgICAgICBib3JkZXItY29sb3ItaG92ZXI6ICAgICAgICAgICAgICAgICAgJENPTE9SLUJSQU5ELFxuICAgICAgICBib3JkZXItY29sb3ItYWN0aXZlOiAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgYm9yZGVyLWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgICAgIHJnYmEoJENPTE9SLUlOQUNUSVZFLCAkT1BBQ0lUWS1NRURJVU0pLFxuICAgICAgICBib3JkZXItY29sb3ItZGlzYWJsZWQtaG92ZXI6ICAgICAgICAgcmdiYSgkQ09MT1ItSU5BQ1RJVkUsICRPUEFDSVRZLU1FRElVTSksXG4gICAgICAgIGxpbmstdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQkFTRS1URVhULFxuICAgICAgICBsaW5rLXRleHQtY29sb3ItZGlzYWJsZWQ6ICAgICAgICAgICAgcmdiYSgkQ09MT1ItQkFTRSwgJE9QQUNJVFktTUVESVVNKSxcbiAgICAgICAgbGluay10ZXh0LWNvbG9yLWFjdGl2ZTogICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIGxpbmstdGV4dC1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICAkQ09MT1ItQkFTRS1URVhULFxuICAgICAgICBsaW5rLWljb24tYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgJENPTE9SLVdISVRFLFxuICAgICAgICBsaW5rLWljb24tYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogICAgJENPTE9SLUJBU0UsXG4gICAgICAgIGxpbmstaWNvbi1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZTogICBudWxsLFxuICAgICAgICBsaW5rLWljb24tYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDogcmdiYSgkQ09MT1ItSU5BQ1RJVkUsICRPUEFDSVRZLU1FRElVTSksXG4gICAgICAgIGxpbmstaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQkFTRSxcbiAgICAgICAgbGluay1pY29uLWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAgICRDT0xPUi1XSElURSxcbiAgICAgICAgbGluay1pY29uLWNvbG9yLWFjdGl2ZTogICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIGxpbmstaWNvbi1jb2xvci1kaXNhYmxlZDogICAgICAgICAgICByZ2JhKCRDT0xPUi1CQVNFLCAkT1BBQ0lUWS1NRURJVU0pLFxuICAgICAgICBsaW5rLWljb24tYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgJENPTE9SLUJSQU5ELFxuICAgICAgICBsaW5rLWljb24tYm9yZGVyLWNvbG9yLWhvdmVyOiAgICAgICAgJENPTE9SLUJSQU5ELFxuICAgICAgICBsaW5rLWljb24tYm9yZGVyLWNvbG9yLWFjdGl2ZTogICAgICAgbnVsbCxcbiAgICAgICAgbGluay1pY29uLWJvcmRlci1jb2xvci1kaXNhYmxlZDogICAgIHJnYmEoJENPTE9SLUlOQUNUSVZFLCAkT1BBQ0lUWS1NRURJVU0pLFxuICAgICAgICBpY29uLW9ubHktY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UsXG4gICAgICAgIGljb24tb25seS1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICAkQ09MT1ItV0hJVEUsXG4gICAgICAgIGljb24tb25seS1jb2xvci1hY3RpdmU6ICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBpY29uLW9ubHktYmFja2dyb3VuZDogICAgICAgICAgICAgICAgJENPTE9SLVdISVRFLFxuICAgICAgICBpY29uLW9ubHktYmFja2dyb3VuZC1ob3ZlcjogICAgICAgICAgJENPTE9SLUJBU0UsXG4gICAgICAgIGljb24tb25seS1iYWNrZ3JvdW5kLWFjdGl2ZTogICAgICAgICBudWxsLFxuICAgICAgICBpY29uLW9ubHktYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgJENPTE9SLUJSQU5ELFxuICAgICAgICBpY29uLW9ubHktYm9yZGVyLWNvbG9yLWhvdmVyOiAgICAgICAgJENPTE9SLUJSQU5ELFxuICAgICAgICBpY29uLW9ubHktYm9yZGVyLWNvbG9yLWFjdGl2ZTogICAgICAgbnVsbCxcbiAgICApLFxuICAgIGFjdGlvbjogKFxuICAgICAgICBiYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAkQ09MT1ItSElHSExJR0hULFxuICAgICAgICBiYWNrZ3JvdW5kLWhvdmVyOiAgICAgICAgICAkQ09MT1ItSElHSExJR0hULFxuICAgICAgICBiYWNrZ3JvdW5kLWFjdGl2ZTogICAgICAgICAkQ09MT1ItQkFTRSxcbiAgICAgICAgYmFja2dyb3VuZC1kaXNhYmxlZDogICAgICAgcmdiYSgkQ09MT1ItSU5BQ1RJVkUsICRPUEFDSVRZLU1FRElVTSksXG4gICAgICAgIGJhY2tncm91bmQtZGlzYWJsZWQtaG92ZXI6IHJnYmEoJENPTE9SLUlOQUNUSVZFLCAkT1BBQ0lUWS1NRURJVU0pLFxuICAgICAgICB0ZXh0LWNvbG9yLWFjdGl2ZTogICAgICAgICAkQ09MT1ItV0hJVEUsXG4gICAgICAgIHRleHQtY29sb3ItZGlzYWJsZWQ6ICAgICAgIHJnYmEoJENPTE9SLUJBU0UsICRPUEFDSVRZLU1FRElVTSksXG4gICAgICAgIHRleHQtY29sb3ItZGlzYWJsZWQtaG92ZXI6IHJnYmEoJENPTE9SLUJBU0UsICRPUEFDSVRZLU1FRElVTSksXG4gICAgICAgIGJvcmRlci1zdHlsZTogICAgICAgICAgICAgIG5vbmUsXG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgIGNhbGModmFyKC0tYnV0dG9uLWhlaWdodCkgLyAyKSxcbiAgICAgICAgcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgY2FsYyh2YXIoLS1idXR0b24taGVpZ2h0KSAvIDIpLFxuICAgICksXG4pICFkZWZhdWx0O1xuJGJ1dHRvbi12YXJpYW50cy1icmFuZC1vdmVyd3JpdGVzOiAoKSAhZGVmYXVsdDtcbiRidXR0b24tdmFyaWFudHMtYnJhbmQ6IG1hcC1kZWVwLW1lcmdlKCRidXR0b24tdmFyaWFudHMsICRidXR0b24tdmFyaWFudHMtYnJhbmQtb3ZlcndyaXRlcykgIWRlZmF1bHQ7XG5cbiRidXR0b24tdGhlbWVzOiAoXG4gICAgbnVsbDogICRidXR0b24tdmFyaWFudHMsXG4gICAgYnJhbmQ6ICRidXR0b24tdmFyaWFudHMtYnJhbmQsXG4pICFkZWZhdWx0O1xuXG4vLyBSZS1kZWNsYXJpbmcgdGhlIHBhZGRpbmcgdmFyaWFibGVzIGZvciBsYXRlciB1c2FnZSBkb3duIGJlbG93IGJ5IGNhbGN1bGF0aW5nXG4vLyBpdCB3aXRoIHRoZSBib3JkZXIuIEluIG9yZGVyIHRvIGFjaGlldmUgdGhlIGRlc2lyZWQgYnV0dG9uIGhlaWdodCB3aXRoIHRoZVxuLy8gcGFkZGluZywgd2UgaGF2ZSB0byBzdWJ0cmFjdCB0aGUgYm9yZGVyIHdoaWNoIHRlY2huaWNhbGx5IGRvZXMgYWRkIHRvIHRoZVxuLy8gcGFkZGluZywgYnV0IGRvZXMgbm90IHZpc3VhbGx5LiBUaGF04oCZcyB3aHkgd2Ugc3VidHJhY3QgdGhlIGJvcmRlci13aWR0aCwgc29cbi8vIHdlIGxhbmQgYXQgdGhlIGNvcnJlY3QgcGFkZGluZy5cbi8vIERPIE5PVCBBREQgYCFkZWZhdWx0YCwgc2luY2UgdGhpcyB3b3VsZCByZXN1bHQgaW4gdGhlIHVwcGVyIHZhcmlhYmxlc1xuLy8gb3ZlcnJpZGluZyB0aGVzZSBvbmVzLCB3aGljaCBpc27igJl0IHdhbnRlZCBhbmQgdGh1cyB3b27igJl0IHdvcmsgdWx0aW1hdGVseS5cbi8qIHN0eWxlbGludC1kaXNhYmxlIHNjc3Mvbm8tZHVwbGljYXRlLWRvbGxhci12YXJpYWJsZXMgKi9cbiRidXR0b24tcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgKCRidXR0b24tcGFkZGluZy12ZXJ0aWNhbCAtIG1hcC1kZWVwLWdldCgkYnV0dG9uLXZhcmlhbnRzLCBwcmltYXJ5LCBib3JkZXItd2lkdGgpKTsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1kZWZhdWx0ICovXG4kYnV0dG9uLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAgICgkYnV0dG9uLXBhZGRpbmctaG9yaXpvbnRhbCAtIG1hcC1kZWVwLWdldCgkYnV0dG9uLXZhcmlhbnRzLCBwcmltYXJ5LCBib3JkZXItd2lkdGgpKTsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1kZWZhdWx0ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlIHNjc3Mvbm8tZHVwbGljYXRlLWRvbGxhci12YXJpYWJsZXMgKi9cblxuJGJ1dHRvbi1pY29uLXJvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7IC8qIFsxNl0gKi9cblxuLyoqXG4gKiBbMV0gYGlubGluZS1mbGV4YCBpcyBhIGdvb2QgbWV0aG9kIHRvIGNlbnRlciBlbGVtZW50cyB2ZXJ0aWNhbGx5IGluc2lkZSBvZlxuICogICAgIHRoZSBidXR0b24uXG4gKiBbMl0gQ2VudGVyIHRleHQsIGFuZCB0ZXh0IHRvIGljb24gaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IGluc2lkZSBvZiB0aGVcbiAqICAgICBidXR0b24uXG4gKiBbM10gTWFrZSB0aGUgY3Vyc29yIGJlaGF2aW91ciB0aGUgc2FtZSBmb3IgYDxidXR0b24+YCBhbmQgYDxhPmAgZWxlbWVudHMuXG4gKiBbNF0gYDxhPmAgZWxlbWVudHMgYXJlIGxlZnQgYWxpZ25lZCBieSBkZWZhdWx0LiBPdmVycmlkZSB0aGlzIHRvIG1hdGNoXG4gKiAgICAgYDxidXR0b24+YCBhbmQgYDxhPmAgZWxlbWVudHMuXG4gKiBbNV0gVGV4dCBsZWZ0LCBpY29uIHJpZ2h0LlxuICogWzZdIEljb24gbGVmdCwgdGV4dCByaWdodC5cbiAqIFs3XSBJbmNyZWFzZSBzcGVjaWZpY2l0eSwgc28gdGhhdCB0aGUgc3R5bGVzIGRvbuKAmXQgZ2V0IG92ZXJyaWRkZW4gbGF0ZXIgb24gYnkgZGlmZmVyZW50IHRoZW1lcy5cbiAqICAgICAgQFRPRE86IFRoaXMgaXMgZGVmaW5pdGVseSBhIGNvZGUgc21lbGwgYW5kIHNob3VsZCBiZSByZWZhY3RvcmVkLlxuICogICAgICAgICAgICAgaHR0cHM6Ly9qaXJhLnBsYXRmb3JtLnZ3ZnMuaW8vYnJvd3NlL0JST04tNjcwOVxuICogWzhdIEZpeCBmb3IgaU9TIGJ1Zywgd2hlcmUgdGhlIGJ1dHRvbiB0ZXh0IGlzIG5vdCBjZW50ZXJlZCAoQlJPTi01MzQpLiBKdXN0XG4gKiAgICAgb2NjdXJzIGluIGlPUyAxMCBvciBsb3dlciAoZXZlcnkgYnJvd3NlciksIGZvciB0aGUgZnVsbC13aWR0aCBidXR0b24gYW5kXG4gKiAgICAgb25seSwgaWYgaXQncyBhIGA8YnV0dG9uPmAgZWxlbWVudC5cbiAqIFs5XSBQcmV2ZW50IHRleHQgc2VsZWN0aW9uIG9uIGFsbCBidXR0b24gKHN1Yi0pIGVsZW1lbnRzLCBlc3BlY2lhbGx5IGZvclxuICogICAgICB0b3VjaC1kZXZpY2VzLCBpLmUuIGEgYDxzcGFuPmAgZWxlbWVudCBpbiB0aGUgYnV0dG9uLlxuICogWzEwXSBQcmV2ZW50IHRoZSBwYWRkaW5nIGZyb20gYmVjb21pbmcgbmVnYXRpdmUuXG4gKiBbMTFdIEFsdGhvdWdoIHRoaXMgZGVjbGFyYXRpb24gaXMgaW4gYW4gaWYtY29uZGl0aW9uIHRoYXQgb25seSBtYXRjaGVzIGZvclxuICogICAgICBmaXhlZCBoZWlnaHQgYnV0dG9ucywgaXQgaXMgc3RpbGwgYSBzZW5zaWJsZSBpZGVhIHRvIGFzc2lnbiBhXG4gKiAgICAgIG1pbi1oZWlnaHQgcmF0aGVyIHRoYW4gYSBmaXhlZCBoZWlnaHQsIHNvIHRoZSBidXR0b24gZ3Jvd3MgaWYgdGhlIHRleHRcbiAqICAgICAgZG9lcyBub3QgZml0IHZlcnRpY2FsbHkuXG4gKiBbMTJdIFJlbW92ZSB0cmFuc2l0aW9uIGNhdXNpbmcgZGVsYXkgd2l0aCBhbmltYXRpb24gb2YgdGhlIGlubmVyIGljb24gb2YgdGhlXG4gKiAgICAgIGAuYy1idG4tLWljb25gIHZhcmlhbnQgb24gaG92ZXIuIFRoaXMgZWZmZWN0IHdvdWxkIGJlIHZpc2libGUgaWYgdGhlXG4gKiAgICAgIHRleHQtIGFuZCBpY29uLWNvbG9yIHdvdWxkIGNoYW5nZSBvbiBob3Zlci5cbiAqIFsxM10gTGltaXQgdGhlIGhlaWdodCBvZiBgLmMtYnRuLS1saW5rYCwgc28gaXQgZG9lcyBub3QgaW5oZXJpdCBpdHMgaGVpZ2h0XG4gKiAgICAgIGZyb20gYC5jLWJ0bmAgYW5kIG9ubHkgdGFrZXMgdXAgdGhlIGhlaWdodCBpdCBuZWVkcy5cbiAqIFsxNF0gT3ZlcnJpZGUgbGluZS1oZWlnaHQsIHNldCBieSBkZWZhdWx0IGJ1dHRvbiBjb21wb25lbnQuIFRoaXMgaXMgbmVlZGVkLCBzb1xuICogICAgICB0aGF0IHRoZSBpY29uIGdldHMgaXRzIGNvcnJlY3QgaGVpZ2h0LlxuICogWzE1XSBBbGlnbiB0aGUgY29udGVudCBsZWZ0IGZvciBsaW5rIGJ1dHRvbnMuIFRoaXMgb25seSBoYXMgYW4gZWZmZWN0IGlmXG4gKiAgICAgIHRoZSBidXR0b24gaXMgbGFyZ2VyIHRoYW4gaXRzIGNvbnRlbnQsIGUuZy4gd2hlbiBjb21iaW5pbmcgYVxuICogICAgICBgLmMtYnRuLS1saW5rYCB3aXRoIGAuYy1idG4tLWZ1bGxgLlxuICogWzE2XSBJZiB0aGUgaWNvbiBvbmx5IHZhcmlhbnQgbmVlZHMgYSBzcGVjaWFsIGJvcmRlci1yYWRpdXMsIGkuZS4gVlc2LlxuICogWzE3XSBBbHNvIGFwcGx5IGZvY3VzIHN0eWxlcyB3aGVuIGFuIGVsZW1lbnQgaXMgZm9jdXNlZCB0aGF0IGlzIGEgY2hpbGRcbiAqICAgICAgb2YgYSBzaGFyZWQgcGFyZW50IGVsZW1lbnQuIFRoaXMgaXMgbmVlZGVkIGZvciBidXR0b25zIGluIHRoZVxuICogICAgICB1cGxvYWQgY29tcG9uZW50IChgLmMtdXBsb2FkYCkuXG4gKiBbMThdIFRoZSBuYXRpdmUgYGRpc2FibGVkYCBhdHRyaWJ1dGUgcHJldmVudHNgOmhvdmVyYCBhbmQgYDphY3RpdmVgIGV2ZW50cyxcbiAqICAgICAgYnV0IHdlIG5lZWQgdG8gcHJvYWN0aXZlbHkgZXhjbHVkZSBzeW50aGV0aWMgYC5pcy1kaXNhYmxlZGAgc2VsZWN0b3JzXG4gKiAgICAgIGZyb20gcmVjZWl2aW5nIGA6YWN0aXZlYCBzdHlsZXMuXG4gKiBbMTldIFdpdGhvdXQgYSB0cmFuc3BhcmVudCBib3JkZXIgdGhlIGxpbmsgd2lsbCBcImp1bXBcIiBvbiBob3Zlci5cbiAqIFsyMF0gUmFpc2UgdGhlIHNwZWNpZmljaXR5IHRvIHByZXZlbnQgbGVha3MgZnJvbSBgLmMtYnRuLS1zZWNvbmRhcnlgIGluIGEgdGhlbWUgY29udGV4dC5cbiAqICAgICAgQFRPRE86IFRoaXMgaXMgZGVmaW5pdGVseSBhIGNvZGUgc21lbGwgYW5kIHNob3VsZCBiZSByZWZhY3RvcmVkLlxuICogICAgICAgICAgICAgaHR0cHM6Ly9qaXJhLnBsYXRmb3JtLnZ3ZnMuaW8vYnJvd3NlL0JST04tNjcwOVxuICogWzIxXSBNYXJnaW4gYmV0d2VlbiBpY29uIGFuZCB0ZXh0LlxuICogWzIyXSBOZWdhdGl2ZSBob3Jpem9udGFsIGljb24gbWFyZ2luIHRoYXQgY2VudGVycyB0aGUgaWNvbiB3aGVuIGNvbGxhcHNlZCBhbmRcbiAqICAgICAgZW5zdXJlcyB0aGF0IGl0IHJlbWFpbnMgZml4ZWQgZHVyaW5nIHRoZSB0cmFuc2l0aW9uLlxuICogWzIzXSBXZSBkb27igJl0IHdhbnQgdGhlIGNlbnRlcmVkIGFsaWdubWVudCBvZiB0aGUgZGVmYXVsdCBidXR0b24gaGVyZSxcbiAqIFsyNF0gU2luY2UgdGhlIEluY29nbml0byBpY29uIGlzIGFsd2F5cyBzcXVhcmUsIG9yIGNpcmN1bGFyLCB3aGVuIGNvbGxhcHNlZCxcbiAqICAgICAgaXQgbXVzdCBiZSBhdCBsZWFzdCBhcyB3aWRlIGFzIGl0IGlzIHRhbGwuXG4gKiBbMjVdIFdlIG5lZWQgYSBtYXhpbXVtIHdpZHRoIHNvIHRoYXQgdGhlIGV4cGFuZGVkIEluY29nbml0byBidXR0b25cbiAqICAgICAgKHdoZW4gdXNlZCBpbiB0aGUgRmxvYXQgR3JpZCkgaXMgbm90IHdpZGVyIHRoYW4gdGhlIHZpZXdwb3J0LlxuICogWzI2XSBXZSBuZWVkIHRvIGhpZGUgb3ZlcmZsb3dpbmcgY29udGVudCBvdGhlcndpc2UgdGhlIHRleHQgd291bGQgYmVcbiAqICAgICAgdmlzaWJsZSBkdXJpbmcgdGhlIHRyYW5zaXRpb24uXG4gKiBbMjddIFRydW5jYXRlIHRoZSB0ZXh0IHdpdGggYW4gZWxsaXBzZSAo4oCmKSBpZiBpdCBkb2VzIG5vdCBmaXQuXG4gKiBbMjhdIFVzZSBDU1MgY3VzdG9tIHByb3BlcnRpZXMgY29uZGl0aW9uYWxzIHRvIGNvbnRyb2wgdGhlIHRoZSBjb2xsYXBzZWRcbiAqICAgICAgc3RhdGUgd2hlcmUgdGhlIHRleHQgaXMgaGlkZGVuIGFuZCBvbmx5IHRoZSBpY29uIGlzIHNob3duLiBUaGlzIHdheSB3ZVxuICogICAgICBjb250cm9sIGVuYWJsZSB0aGUgY29sbGFwc2VkIHN0YXRlIGZyb20gb3RoZXIgY29tcG9uZW50cyBhcyB3ZWxsLlxuICogICAgICBMZWFybiBtb3JlIGFib3V0IHRoaXMgdGVjaG5pcXVlIGhlcmU6XG4gKiAgICAgIC0gaHR0cHM6Ly9kZXYudG8vc2lkZGhhcnRoc2h5bmliZW4vY29uZGl0aW9uYWwtbG9naWMtd2l0aC1jc3MtdGhlLWNzcy1jdXN0b20tcHJvcGVydHktdHJpY2stNDRoYlxuICogICAgICAtIGh0dHBzOi8vbGVhLnZlcm91Lm1lLzIwMjAvMTAvdGhlLXZhci1zcGFjZS1oYWNrLXRvLXRvZ2dsZS1tdWx0aXBsZS12YWx1ZXMtd2l0aC1vbmUtY3VzdG9tLXByb3BlcnR5L1xuICogWzI5XSBXaGVuIHRoZSByZXZlcnNlIHNlbGVjdG9yIGlzIGFwcGxpZWQsIHJldmVyc2UgdGhlIGZsZXgtZmxvdyBvZiB0aGUgYnV0dG9uLlxuICogICAgICBGb3JjZSB0aGUgZmxleC1vcmRlciBvZiB0aGUgaWNvbiBlbGVtZW50IGAuYy1idG5fX2ljb25gIHRvIGFsd2F5cyBiZSBkaXNwbGF5ZWQgZmlyc3RcbiAqICAgICAgd2hlbiBpdCBpcyB0aGUgZmlyc3QgY2hpbGQgZWxlbWVudCBvZiB0aGUgYnV0dG9uLlxuICogWzMwXSBSZXNldCBhbGwgYnV0dG9uIGNoaWxkIGVsZW1lbnRzIHNwYWNpbmdzIGFuZCBhcHBseSB0aGVtIHZpYSBgY29sdW1uLWdhcGBcbiAqICAgICAgb24gdGhlIG1haW4gYnV0dG9uIGVsZW1lbnQuXG4gKiBbMzFdIEVuc3VyZSBpY29uIGlzIGNlbnRlcmVkIGhvcml6b250YWxseSAmIHZlcnRpY2FsbHkuXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1jbGFzcywgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4uYy1idG4ge1xuICAgIC8vIFdlIGFyZSB1c2luZyBDU1MgY3VzdG9tIHByb3BlcnRpZXMgaGVyZSwgc28gd2UgY2FuIG92ZXJ3cml0ZSB0aGVzZSB2YWx1ZXNcbiAgICAvLyBlYXNpbHkgd2l0aGluIGJ1dHRvbiB2YXJpYW50cyBvciBjb3VsZCB1c2UgdGhlbSBmb3IgZHluYW1pYyBjYWxjdWxhdGlvbnMuXG4gICAgLS1idXR0b24taGVpZ2h0OiAjeyRidXR0b24taGVpZ2h0fTtcbiAgICAtLWJ1dHRvbi1wYWRkaW5nLWhvcml6b250YWw6ICN7JGJ1dHRvbi1wYWRkaW5nLWhvcml6b250YWx9O1xuICAgIC0tYnV0dG9uLXBhZGRpbmctdmVydGljYWw6ICN7aWYoJGJ1dHRvbi1wYWRkaW5nLXZlcnRpY2FsIDwgMCwgMCwgJGJ1dHRvbi1wYWRkaW5nLXZlcnRpY2FsKX07IC8qIFsxMF0gKi9cbiAgICAtLWJ1dHRvbi1pY29uLXNpemU6ICN7JGJ1dHRvbi1pY29uLXNpemV9O1xuICAgIC0tYnV0dG9uLXRleHQtaWNvbi1zcGFjaW5nOiAjeyRidXR0b24tdGV4dC1pY29uLXNwYWNpbmd9O1xuICAgIC0tYnV0dG9uLWJvcmRlci13aWR0aDogMHB4OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGxlbmd0aC16ZXJvLW5vLXVuaXQgKi9cbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkYnV0dG9uLXRleHQtc2l6ZSk7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihcbiAgICAgICAgJHRyYW5zaXRpb24tcHJvcGVydHk6ICAgICAgICAkYnV0dG9uLXRyYW5zaXRpb24tcHJvcGVydHksXG4gICAgICAgICR0cmFuc2l0aW9uLWR1cmF0aW9uOiAgICAgICAgJGJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uLFxuICAgICAgICAkdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICRidXR0b24tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sXG4gICAgKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgLyogWzFdICovXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogWzJdICovXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8qIFsyXSAqL1xuICAgIGZsZXgtZGlyZWN0aW9uOiB2YXIoLS1idXR0b24tZmxleC1kaXJlY3Rpb24sIHJvdyk7XG4gICAgcGFkZGluZzogdmFyKC0tYnV0dG9uLXBhZGRpbmctdmVydGljYWwpIHZhcigtLWJ1dHRvbi1wYWRkaW5nLWhvcml6b250YWwpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1ib3JkZXItcmFkaXVzO1xuICAgIGZvbnQtZmFtaWx5OiAkYnV0dG9uLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkYnV0dG9uLWZvbnQtd2VpZ2h0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJGJ1dHRvbi10ZXh0LXRyYW5zZm9ybTtcbiAgICBsaW5lLWhlaWdodDogJGJ1dHRvbi1saW5lLWhlaWdodDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IC8qIFs0XSAqL1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1idXR0b24tdGV4dC1jb2xvcik7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tYnV0dG9uLWJveC1zaGFkb3cpO1xuICAgIGN1cnNvcjogcG9pbnRlcjsgLyogWzNdICovXG5cbiAgICBAaWYgKCRidXR0b24taGVpZ2h0LWZpeGVkID09IHRydWUpIHtcbiAgICAgICAgbWluLWhlaWdodDogJGJ1dHRvbi1oZWlnaHQ7IC8qIFsxMV0gKi9cbiAgICB9XG5cbiAgICAvLy8gTWl4aW4gdG8gZ2VuZXJhdGUgQ1NTIGN1c3RvbSBwcm9wZXJ0aWVzIHdpdGggdGhlbWUgdmFsdWUgYXMgZmFsbGJhY2svZGVmYXVsdC5cbiAgICAvLy8gV2UgY291bGQgdXNlIHRoZSBDU1MgY3VzdG9tIHByb3BlcnRpZXMgdG8gb3ZlcndyaXRlIGluZGl2aWR1YWxcbiAgICAvLy8gYnV0dG9uIENTUyBwcm9wZXJ0aWVzIGluIG90aGVyIGNvbXBvbmVudHMgKGUuZy4gTm90aWZpY2F0aW9uKS5cbiAgICAvLy9cbiAgICAvLy8gQHBhcmFtIHtTdHJpbmd9ICRlbnRpdHkgLSBWYXJ5IGxvb3AgZW50aXR5XG4gICAgLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIENTUyBjdXN0b20gcHJvcGVydHlcbiAgICAvLy8gQHBhcmFtIHtzdHJpbmcgfCBOdWxsfSAkc3RhdGUgW251bGxdIC0gU3RhdGUgKGUuZy4gaG92ZXIpIGZvciB3aGljaCB0aGUgcHJvcGVydHkgc2hvdWxkIGJlIGdlbmVyYXRlZFxuICAgIEBtaXhpbiBfYnV0dG9uLWNzcy1jdXN0b20tcHJvcGVydHkoJGVudGl0eSwgJG5hbWUsICRzdGF0ZTogbnVsbCkge1xuICAgICAgICAkc3RhdGU6IGlmKCRzdGF0ZSwgXCItXCIgKyAkc3RhdGUsIG51bGwpO1xuICAgICAgICAkY3NzQ3VzdG9tUHJvcGVydHk6IC0tYnV0dG9uLSN7JGVudGl0eX0tI3skbmFtZX0jeyRzdGF0ZX07XG4gICAgICAgICR0aGVtZVZhbHVlOiBpZih2YXJ5LWdldCgkbmFtZSArICRzdGF0ZSksIFwiLCBcIiArIHZhcnktZ2V0KCRuYW1lICsgJHN0YXRlKSwgbnVsbCk7XG5cbiAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG9yZGVyL29yZGVyXG4gICAgICAgIC0tYnV0dG9uLSN7JG5hbWV9OiB2YXIoI3skY3NzQ3VzdG9tUHJvcGVydHl9I3skdGhlbWVWYWx1ZX0pO1xuICAgIH1cblxuICAgIC8vLyBNaXhpbiB0aGF0IGdlbmVyYXRlcyBhIGZldyBDU1MgY3VzdG9tIHByb3BlcnRpZXMgd2l0aCB0aGVcbiAgICAvLy8gYF9idXR0b24tY3NzLWN1c3RvbS1wcm9wZXJ0eWAgbWl4aW4uXG4gICAgLy8vXG4gICAgLy8vIEBwYXJhbSB7U3RyaW5nfSAkZW50aXR5IC0gVmFyeSBsb29wIGVudGl0eVxuICAgIC8vLyBAcGFyYW0ge3N0cmluZyB8IE51bGx9ICRzdGF0ZSBbbnVsbF0gLSBTdGF0ZSAoZS5nLiBob3ZlcikgZm9yIHdoaWNoIHRoZSBwcm9wZXJ0eSBzaG91bGQgYmUgZ2VuZXJhdGVkXG4gICAgQG1peGluIF9idXR0b24tY3NzLWN1c3RvbS1wcm9wZXJ0aWVzKCRlbnRpdHksICRzdGF0ZTogbnVsbCkge1xuICAgICAgICBAaW5jbHVkZSBfYnV0dG9uLWNzcy1jdXN0b20tcHJvcGVydHkoJGVudGl0eSwgYm9yZGVyLWNvbG9yLCAkc3RhdGUpO1xuICAgICAgICBAaW5jbHVkZSBfYnV0dG9uLWNzcy1jdXN0b20tcHJvcGVydHkoJGVudGl0eSwgYmFja2dyb3VuZCwgJHN0YXRlKTtcbiAgICAgICAgQGluY2x1ZGUgX2J1dHRvbi1jc3MtY3VzdG9tLXByb3BlcnR5KCRlbnRpdHksIHRleHQtY29sb3IsICRzdGF0ZSk7XG4gICAgICAgIEBpbmNsdWRlIF9idXR0b24tY3NzLWN1c3RvbS1wcm9wZXJ0eSgkZW50aXR5LCBib3gtc2hhZG93LCAkc3RhdGUpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICRidXR0b24tdGhlbWVzKSB7XG4gICAgICAgIC8vIFVzZSB0aGUgYCRidXR0b24tdmFyaWFudHNgIFNhc3MgbWFwIHRvIGxvb3AgdGhyb3VnaCBhbGwgY29zbWV0aWNcbiAgICAgICAgLy8gZGVjbGFyYXRpb25zIGFuZCBhc3NpZ24gdGhlbSBvbmNlIGluIHRoaXMgU2FzcyBwYXJ0aWFsLlxuICAgICAgICBAaW5jbHVkZSB2YXJ5KCRsb29wOiBtYXAtZ2V0KCRidXR0b24tdGhlbWVzLCAkdmFyeS1sb29wLWVudGl0eSksICRjcmVhdGU6IFwiY3VzdG9tXCIpIHtcbiAgICAgICAgICAgIC8vIEV4dHJhY3QgbW9kaWZpZXIgc2VsZWN0b3IgaW50byB2YXJpYWJsZSwgc28gd2UgY2FuIGNoYW5nZSBpdFxuICAgICAgICAgICAgLy8gZHluYW1pY2FsbHksIGRlcGVuZGluZyBvbiB0aGUgdGhlbWUgd2XigJlyZSBpbi5cbiAgICAgICAgICAgICRfYnV0dG9uLW1vZGlmaWVyLXNjb3BlOiBcIi5jLWJ0bi0tI3skdmFyeS1sb29wLWVudGl0eX1cIjtcblxuICAgICAgICAgICAgLy8gSWYgdGhlIHRoZW1lIGlzIFwicHJpbWFyeVwiLCByZW1vdmUgdGhlIG1vZGlmaWVyIHNlbGVjdG9yIGJ5IG1ha2luZyBpdFxuICAgICAgICAgICAgLy8gYW4gZW1wdHkgc3RyaW5nLlxuICAgICAgICAgICAgQGlmICgkdmFyeS1sb29wLWVudGl0eSA9PSBcInByaW1hcnlcIikge1xuICAgICAgICAgICAgICAgICRfYnV0dG9uLW1vZGlmaWVyLXNjb3BlOiBcIlwiO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmI3skX2J1dHRvbi1tb2RpZmllci1zY29wZX0ge1xuICAgICAgICAgICAgICAgIC8vIFV0aWxpemUgQ1NTIGN1c3RvbSBwcm9wZXJ0aWVzIHdpdGggdGhlIGRlZmF1bHQgdmFsdWUgYXMgZmFsbGJhY2tcbiAgICAgICAgICAgICAgICAvLyBzbyB0aGF0IGNlcnRhaW4gcHJvcGVydHkgdmFsdWVzIGNhbiBiZSBvdmVycmlkZGVuIGluIG90aGVyIGNvbnRleHRzL2NvbXBvbmVudHMuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgX2J1dHRvbi1jc3MtY3VzdG9tLXByb3BlcnRpZXMoJHZhcnktbG9vcC1lbnRpdHkpO1xuXG4gICAgICAgICAgICAgICAgLy8gU2V0IHNvbWUgcHJvcGVydGllcyBhcyBDU1MgY3VzdG9tIHByb3BlcnRpZXMgc28gdGhhdCB0aGV5IGNhbiBiZVxuICAgICAgICAgICAgICAgIC8vIG92ZXJyaWRkZW4gaW4gc29tZSBjb250ZXh0IG9yIGNvdWxkIGJlIHVzZWQgZm9yIGR5bmFtaWMgY2FsY3VsYXRpb25zLlxuICAgICAgICAgICAgICAgIEBpZiAodmFyeS1nZXQoaGVpZ2h0KSkge1xuICAgICAgICAgICAgICAgICAgICAtLWJ1dHRvbi1oZWlnaHQ6ICN7dmFyeS1nZXQoaGVpZ2h0KX07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAodmFyeS1nZXQocGFkZGluZy1ob3Jpem9udGFsKSkge1xuICAgICAgICAgICAgICAgICAgICAtLWJ1dHRvbi1wYWRkaW5nLWhvcml6b250YWw6ICN7dmFyeS1nZXQocGFkZGluZy1ob3Jpem9udGFsKX07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAodmFyeS1nZXQoaWNvbi1zaXplKSkge1xuICAgICAgICAgICAgICAgICAgICAtLWJ1dHRvbi1pY29uLXNpemU6ICN7aWNvbi1zaXplKHZhcnktZ2V0KGljb24tc2l6ZSkpfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmICh2YXJ5LWdldCh0ZXh0LWljb24tc3BhY2luZykpIHtcbiAgICAgICAgICAgICAgICAgICAgLS1idXR0b24tdGV4dC1pY29uLXNwYWNpbmc6ICN7dmFyeS1nZXQodGV4dC1pY29uLXNwYWNpbmcpfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmICh2YXJ5LWdldChib3JkZXItd2lkdGgpKSB7XG4gICAgICAgICAgICAgICAgICAgIC0tYnV0dG9uLWJvcmRlci13aWR0aDogI3t2YXJ5LWdldChib3JkZXItd2lkdGgpfTtcblxuICAgICAgICAgICAgICAgICAgICBAaWYgKHZhcnktZ2V0KGJvcmRlci13aWR0aCkgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAtLWJ1dHRvbi1wYWRkaW5nLWhvcml6b250YWw6ICN7KCRidXR0b24tcGFkZGluZy1ob3Jpem9udGFsIC0gdmFyeS1nZXQoYm9yZGVyLXdpZHRoKSl9O1xuICAgICAgICAgICAgICAgICAgICAgICAgLS1idXR0b24tcGFkZGluZy12ZXJ0aWNhbDogI3tpZigkYnV0dG9uLXBhZGRpbmctdmVydGljYWwgPCAwLCAwLCAoJGJ1dHRvbi1wYWRkaW5nLXZlcnRpY2FsIC0gdmFyeS1nZXQoYm9yZGVyLXdpZHRoKSkpfTsgLyogWzEwXSAqL1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogdmFyeS1nZXQoaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLWJ1dHRvbi1ib3JkZXItd2lkdGgpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1zdHlsZTogdmFyeS1nZXQoYm9yZGVyLXN0eWxlKTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXJ5LWdldChib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyeS1nZXQobGluZS1oZWlnaHQpO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgICAgIGxhYmVsOmZvY3VzLXdpdGhpbiAmIHsgLyogWzE3XSAqL1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBfYnV0dG9uLWNzcy1jdXN0b20tcHJvcGVydGllcygkdmFyeS1sb29wLWVudGl0eSwgaG92ZXIpO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGJ1dHRvbi1mb2N1cy1kaXNhYmxlLW91dGxpbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bm90KC5pcy1kaXNhYmxlZCk6YWN0aXZlIHsgLyogWzE4XSAqL1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBfYnV0dG9uLWNzcy1jdXN0b20tcHJvcGVydGllcygkdmFyeS1sb29wLWVudGl0eSwgYWN0aXZlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICAgICAmLmlzLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgX2J1dHRvbi1jc3MtY3VzdG9tLXByb3BlcnRpZXMoJHZhcnktbG9vcC1lbnRpdHksIGRpc2FibGVkKTtcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIF9idXR0b24tY3NzLWN1c3RvbS1wcm9wZXJ0aWVzKCR2YXJ5LWxvb3AtZW50aXR5LCBkaXNhYmxlZC1ob3Zlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIEBUT0RPOiBuZWVkcyByZWZhY3RvcmluZywgc2VlIFs3XVxuICAgICAgICAgICAgICAgICAqIE9wdC1vdXQgYnRuLS1saW5rIHN0eWxlcyBmb3IgYWN0aW9uIGJ1dHRvbnMuXG4gICAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICAgKiBgYWN0aW9uYCBtb2RpZmllciBjYW4gbm90IGJlIGNvbWJpbmVkIHdpdGggYGxpbmtgXG4gICAgICAgICAgICAgICAgICogYXZvaWQgdW5uZWNlc3Nhcnkgc3R5bGUgZ2VuZXJhdGlvblxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIEBpZiBub3QgKCR2YXJ5LWxvb3AtZW50aXR5ID09IFwiYWN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICAmLmMtYnRuLS1saW5rIHtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgLyogWzE1XSAqL1xuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAodmFyeS1nZXQoXCJsaW5rLXNpbXBsZS1pY29uLWNvbG9yXCIpKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICYuYy1idG4tLXNpbXBsZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYy1idG5fX2ljb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBpY29uLXZhcmlhbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdmFyaWFudDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2l6ZTogJGJ1dHRvbi1pY29uLW9ubHktYm94LXNpemUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGV4dC1jb2xvcjogdmFyeS1nZXQoXCJsaW5rLXNpbXBsZS1pY29uLWNvbG9yXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGJhY2tncm91bmQtY29sb3I6IHZhcnktZ2V0KFwibGluay1pY29uLWJhY2tncm91bmQtY29sb3JcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYm9yZGVyLWNvbG9yOiB2YXJ5LWdldChcImxpbmstaWNvbi1ib3JkZXItY29sb3JcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAuYy1idG5fX3RleHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXJ5LWdldChsaW5rLXRleHQtY29sb3ItaG92ZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAuYy1idG5fX2ljb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobm90ICRidXR0b24tbGluay1zaW1wbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi12YXJpYW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhcmlhbnQ6IFwic3F1YXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2l6ZTogJGJ1dHRvbi1pY29uLW9ubHktYm94LXNpemUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGV4dC1jb2xvcjogdmFyeS1nZXQoXCJsaW5rLWljb24tY29sb3ItaG92ZXJcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYmFja2dyb3VuZC1jb2xvcjogdmFyeS1nZXQoXCJsaW5rLWljb24tYmFja2dyb3VuZC1jb2xvci1ob3ZlclwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRib3JkZXItY29sb3I6IHZhcnktZ2V0KFwibGluay1pY29uLWJvcmRlci1jb2xvci1ob3ZlclwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyeS1nZXQoXCJsaW5rLWljb24tY29sb3ItaG92ZXJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJjpub3QoLmlzLWRpc2FibGVkKTphY3RpdmUgeyAvKiBbMThdICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5jLWJ0bl9fdGV4dCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcnktZ2V0KGxpbmstdGV4dC1jb2xvci1hY3RpdmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAuYy1idG5fX2ljb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobm90ICRidXR0b24tbGluay1zaW1wbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi12YXJpYW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhcmlhbnQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNpemU6ICRidXR0b24taWNvbi1vbmx5LWJveC1zaXplLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRleHQtY29sb3I6IHZhcnktZ2V0KFwibGluay1pY29uLWNvbG9yLWFjdGl2ZVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRiYWNrZ3JvdW5kLWNvbG9yOiB2YXJ5LWdldChcImxpbmstaWNvbi1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRib3JkZXItY29sb3I6IHZhcnktZ2V0KFwibGluay1pY29uLWJvcmRlci1jb2xvci1hY3RpdmVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcnktZ2V0KFwibGluay1pY29uLWNvbG9yLWFjdGl2ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5jLWJ0bl9fdGV4dCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyeS1nZXQobGluay10ZXh0LWNvbG9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5jLWJ0bl9faWNvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKG5vdCAkYnV0dG9uLWxpbmstc2ltcGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi12YXJpYW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdmFyaWFudDogXCJzcXVhcmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNpemU6ICRidXR0b24taWNvbi1vbmx5LWJveC1zaXplLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGV4dC1jb2xvcjogdmFyeS1nZXQoXCJsaW5rLWljb24tY29sb3JcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRiYWNrZ3JvdW5kLWNvbG9yOiB2YXJ5LWdldChcImxpbmstaWNvbi1iYWNrZ3JvdW5kLWNvbG9yXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYm9yZGVyLWNvbG9yOiB2YXJ5LWdldChcImxpbmstaWNvbi1ib3JkZXItY29sb3JcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcnktZ2V0KFwibGluay1pY29uLWNvbG9yXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICh2YXJ5LWdldChcImxpbmstc2ltcGxlLWljb24tY29sb3JcIikpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJi5jLWJ0bi0tc2ltcGxlIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jLWJ0bl9faWNvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGljb24tdmFyaWFudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YXJpYW50OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzaXplOiAkYnV0dG9uLWljb24tb25seS1ib3gtc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0ZXh0LWNvbG9yOiB2YXJ5LWdldChcImxpbmstc2ltcGxlLWljb24tY29sb3JcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYmFja2dyb3VuZC1jb2xvcjogdmFyeS1nZXQoXCJsaW5rLWljb24tYmFja2dyb3VuZC1jb2xvclwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRib3JkZXItY29sb3I6IHZhcnktZ2V0KFwibGluay1pY29uLWJvcmRlci1jb2xvclwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgICAgICAgICAmLmlzLWRpc2FibGVkIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLmMtYnRuX190ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyeS1nZXQobGluay10ZXh0LWNvbG9yLWRpc2FibGVkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLmMtYnRuX19pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKG5vdCAkYnV0dG9uLWxpbmstc2ltcGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGljb24tdmFyaWFudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YXJpYW50OiBcInNxdWFyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNpemU6ICRidXR0b24taWNvbi1vbmx5LWJveC1zaXplLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRleHQtY29sb3I6IHZhcnktZ2V0KFwibGluay1pY29uLWNvbG9yLWRpc2FibGVkXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGJhY2tncm91bmQtY29sb3I6IHZhcnktZ2V0KFwibGluay1pY29uLWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWRcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYm9yZGVyLWNvbG9yOiB2YXJ5LWdldChcImxpbmstaWNvbi1ib3JkZXItY29sb3ItZGlzYWJsZWRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcnktZ2V0KFwibGluay1pY29uLWNvbG9yLWRpc2FibGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLmMtYnRuLS1zaW1wbGUuYy1idG4tLXNpbXBsZSB7IC8qIFs3XSAqL1xuXG4gICAgICAgICAgICAgICAgICAgIC5jLWJ0bl9faWNvbiB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLmMtYnRuLS1pY29uLW9ubHkuYy1idG4tLWljb24tb25seSB7IC8qIFs3XSAqL1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbi1pY29uLW9ubHktYm9yZGVyLXdpZHRoICRidXR0b24taWNvbi1vbmx5LWJvcmRlci1zdHlsZSB2YXJ5LWdldChcImljb24tb25seS1ib3JkZXItY29sb3JcIik7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcnktZ2V0KFwiaWNvbi1vbmx5LWJhY2tncm91bmRcIik7XG5cbiAgICAgICAgICAgICAgICAgICAgLmMtYnRuX19pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXJ5LWdldChcImljb24tb25seS1jb2xvclwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uLWljb24tb25seS1ib3JkZXItd2lkdGggJGJ1dHRvbi1pY29uLW9ubHktYm9yZGVyLXN0eWxlIHZhcnktZ2V0KFwiaWNvbi1vbmx5LWJvcmRlci1jb2xvci1ob3ZlclwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcnktZ2V0KFwiaWNvbi1vbmx5LWJhY2tncm91bmQtaG92ZXJcIik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5jLWJ0bl9faWNvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcnktZ2V0KFwiaWNvbi1vbmx5LWNvbG9yLWhvdmVyXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOm5vdCguaXMtZGlzYWJsZWQpOmFjdGl2ZSB7IC8qIFsxOF0gKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbi1pY29uLW9ubHktYm9yZGVyLXdpZHRoICRidXR0b24taWNvbi1vbmx5LWJvcmRlci1zdHlsZSB2YXJ5LWdldChcImljb24tb25seS1ib3JkZXItY29sb3ItYWN0aXZlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyeS1nZXQoXCJpY29uLW9ubHktYmFja2dyb3VuZC1hY3RpdmVcIik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5jLWJ0bl9faWNvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcnktZ2V0KFwiaWNvbi1vbmx5LWNvbG9yLWFjdGl2ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAgICAgICAgICYuaXMtZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXJ5LWdldChcImJvcmRlci1jb2xvci1kaXNhYmxlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcnktZ2V0KFwiYmFja2dyb3VuZC1kaXNhYmxlZFwiKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLmMtYnRuX19pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyeS1nZXQoXCJ0ZXh0LWNvbG9yLWRpc2FibGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSxcbiAgICAmLmlzLWRpc2FibGVkIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICAmLmMtYnRuLS1mdWxsIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJi5jLWJ0bi0tbGluay5jLWJ0bi0tbGluay5jLWJ0bi0tbGluayB7IC8qIFsyMF0gKi9cbiAgICAgICAgbWluLWhlaWdodDogYXV0bzsgLyogWzEzXSAqL1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXI6ICRidXR0b24tbGluay1ib3JkZXI7IC8qIFsxOV0gKi9cbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAmLmMtYnRuLS1pY29uLW9ubHkge1xuICAgICAgICBtaW4taGVpZ2h0OiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXI6IDA7XG5cbiAgICAgICAgQGlmICgkYnV0dG9uLWljb24tcm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOyAvKiBbMTZdICovXG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCguYy1idG4tcm91bmQpIHtcbiAgICAgICAgICAgIHdpZHRoOiBtYXAtZ2V0KCRJQ09OLVNRVUFSRS1GVUxMLVNJWkVTLCAkYnV0dG9uLWljb24tb25seS1ib3gtc2l6ZSk7XG4gICAgICAgICAgICBoZWlnaHQ6IG1hcC1nZXQoJElDT04tU1FVQVJFLUZVTEwtU0laRVMsICRidXR0b24taWNvbi1vbmx5LWJveC1zaXplKTtcblxuICAgICAgICAgICAgJi5jLWJ0bi0tc21hbGwge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBtYXAtZ2V0KCRJQ09OLVNRVUFSRS1GVUxMLVNJWkVTLCAkYnV0dG9uLWljb24tb25seS1ib3gtc2l6ZS1zbWFsbCk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBtYXAtZ2V0KCRJQ09OLVNRVUFSRS1GVUxMLVNJWkVTLCAkYnV0dG9uLWljb24tb25seS1ib3gtc2l6ZS1zbWFsbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgICYuYy1idG4tLXJvdW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiBtYXAtZ2V0KCRJQ09OLVJPVU5ELUZVTEwtU0laRVMsICRidXR0b24taWNvbi1vbmx5LWNpcmNsZS1zaXplKTtcbiAgICAgICAgICAgIGhlaWdodDogbWFwLWdldCgkSUNPTi1ST1VORC1GVUxMLVNJWkVTLCAkYnV0dG9uLWljb24tb25seS1jaXJjbGUtc2l6ZSk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICAgICAgICAgICYuYy1idG4tLXNtYWxsIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogbWFwLWdldCgkSUNPTi1ST1VORC1GVUxMLVNJWkVTLCAkYnV0dG9uLWljb24tb25seS1jaXJjbGUtc2l6ZS1zbWFsbCk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBtYXAtZ2V0KCRJQ09OLVJPVU5ELUZVTEwtU0laRVMsICRidXR0b24taWNvbi1vbmx5LWNpcmNsZS1zaXplLXNtYWxsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmLmMtYnRuLS10cnVuY2F0ZSB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmOndoZXJlKC5jLWJ0bi0taWNvbi5jLWJ0bi0tcmV2ZXJzZWQpLFxuICAgICY6d2hlcmUoLmMtYnRuLS1pbmNvZ25pdG8uYy1idG4tLXJldmVyc2VkKSB7XG4gICAgICAgIC0tYnV0dG9uLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICB9XG4gICAgJjp3aGVyZSguYy1idG4tLWxpbms6bm90KC5jLWJ0bi0tcmV2ZXJzZWQpKSB7XG4gICAgICAgIC0tYnV0dG9uLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICB9XG5cbiAgICAmOndoZXJlKDpub3QoLmMtYnRuLS1pY29uLW9ubHksIC5jLWJ0bi0taW5jb2duaXRvLmMtYnRuLS1pbmNvZ25pdG8pKSB7IC8qIFt4eHhdICovXG4gICAgICAgIGNvbHVtbi1nYXA6IHZhcigtLWJ1dHRvbi10ZXh0LWljb24tc3BhY2luZyk7XG5cbiAgICAgICAgLmMtYnRuX190ZXh0LFxuICAgICAgICAuYy1idG5fX2ljb24ge1xuICAgICAgICAgICAgLS1idXR0b24tdGV4dC1pY29uLXNwYWNpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7ICAvKiBbMzBdICovXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICoge1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsgLyogWzldICovXG4gICAgfVxuXG4gICAgPiAqIHtcbiAgICAgICAgdHJhbnNpdGlvbjogaW5oZXJpdDtcbiAgICB9XG5cbn1cblxuICAgIC8vIFdlIGNhbiBkZXRlcm1pbmUgd2hldGhlciB0aGUgaWNvbiBpcyBsZWZ0IGFuZCB0aGUgdGV4dCBpcyByaWdodCBhbmRcbiAgICAvLyB2aWNlIHZlcnNhIHZpYSB0aGUgSFRNTCBvcmRlciBvZiB0aGUgZWxlbWVudHMuXG4gICAgLmMtYnRuX190ZXh0IHtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6ICRidXR0b24tbGV0dGVyLXNwYWNpbmc7XG5cbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tYnV0dG9uLXRleHQtaWNvbi1zcGFjaW5nKTsgLyogWzVdICovXG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQ6bm90KDpvbmx5LWNoaWxkKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tYnV0dG9uLXRleHQtaWNvbi1zcGFjaW5nKTsgLyogWzZdICovXG4gICAgICAgIH1cblxuICAgICAgICAuYy1idG4uYy1idG4tLWZ1bGwgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgLyogWzhdICovXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IC8qIFs4XSAqL1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IC8qIFs4XSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtYnRuLmMtYnRuLS1saW5rICYge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRidXR0b24tbGluay1mb250LXdlaWdodDtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiAkYnV0dG9uLWxpbmstdGV4dC10cmFuc2Zvcm07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtYnRuLmMtYnRuLS10cnVuY2F0ZSAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRydW5jYXRlKCk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWJ0bl9faWNvbi5jLWJ0bl9faWNvbiB7IC8qIFs3XSAqL1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcblxuICAgICAgICAvLyBJZiB0aGUgaWNvbiBzaGFsbCBiZSB0aGUgc2FtZSBzaXplIGFzIHRoZSBidXR0b24gdGV4dFxuICAgICAgICAvLyAoaS5lLiBgaW5oZXJpdCksIGFzc2lnbiBpdC4gT3RoZXJ3aXNlIHVzZSB0aGUgZm9udC1zaXplIG1peGluXG4gICAgICAgIC8vIHRvIGFzc2lnbiB0aGUgc2l6ZSB0byB0aGUgaWNvbi5cbiAgICAgICAgQGlmICRidXR0b24taWNvbi1zaXplID09IFwiaW5oZXJpdFwiIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLWJ1dHRvbi1pY29uLXNpemUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG5vbmU7IC8qIFsxMl0gKi9cbiAgICAgICAgfVxuXG5cbiAgICAgICAgLmMtYnRuLmMtYnRuLS1saW5rICYge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7IC8qIFsxNF0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWJ0bi5jLWJ0bi0tbGluay5jLWJ0bi0tcm91bmQgJiB7XG4gICAgICAgICAgICBAaWYgKG5vdCAkYnV0dG9uLWxpbmstc2ltcGxlKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi12YXJpYW50KFxuICAgICAgICAgICAgICAgICAgICAkdmFyaWFudDogXCJyb3VuZFwiLFxuICAgICAgICAgICAgICAgICAgICAkc2l6ZTogICAgJGJ1dHRvbi1pY29uLW9ubHktY2lyY2xlLXNpemVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmMtYnRuLmMtYnRuLS1saW5rLmMtYnRuLS1yb3VuZC5jLWJ0bi0tc21hbGwuYy1idG4tLWxpbmsuYy1idG4tLXJvdW5kLmMtYnRuLS1zbWFsbCAmIHsgIC8qIFs3XSAqL1xuICAgICAgICAgICAgQGlmIChub3QgJGJ1dHRvbi1saW5rLXNpbXBsZSkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGljb24tdmFyaWFudChcbiAgICAgICAgICAgICAgICAgICAgJHZhcmlhbnQ6IFwicm91bmRcIixcbiAgICAgICAgICAgICAgICAgICAgJHNpemU6ICAgICRidXR0b24taWNvbi1vbmx5LWNpcmNsZS1zaXplLXNtYWxsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWJ0bi5jLWJ0bi0tbGluay5jLWJ0bi0tc21hbGwuYy1idG4tLWxpbmsuYy1idG4tLXNtYWxsICYgeyAvKiBbN10gKi9cbiAgICAgICAgICAgIEBpZiAobm90ICRidXR0b24tbGluay1zaW1wbGUpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBpY29uLXZhcmlhbnQoXG4gICAgICAgICAgICAgICAgICAgICR2YXJpYW50OiBcInNxdWFyZVwiLFxuICAgICAgICAgICAgICAgICAgICAkc2l6ZTogICAgJGJ1dHRvbi1pY29uLW9ubHktYm94LXNpemUtc21hbGxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmMtYnRuLmMtYnRuLS1pY29uLW9ubHkgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkYnV0dG9uLWljb24tb25seS1zaXplLFxuICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogZmFsc2VcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAuYy1idG4uYy1idG4tLWljb24tb25seS5jLWJ0bi0tc21hbGwgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkYnV0dG9uLWljb24tb25seS1zaXplLXNtYWxsLFxuICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogZmFsc2VcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluY29nbml0byBCdXR0b25cbiAgICAgKi9cbiAgICAuYy1idG4tLWluY29nbml0by5jLWJ0bi0taW5jb2duaXRvIHtcbiAgICAgICAgLS1idXR0b24tdGV4dC1ob3Jpem9udGFsLXNwYWNpbmc6IGNhbGModmFyKC0tYnV0dG9uLXRleHQtaWNvbi1zcGFjaW5nKSArIHZhcigtLWJ1dHRvbi1pY29uLXNpemUpICogMC41KTsgLyogWzIxXSAqL1xuICAgICAgICAtLWJ1dHRvbi1pY29uLWhvcml6b250YWwtb2Zmc2V0OiBjYWxjKCh2YXIoLS1idXR0b24tYm9yZGVyLXdpZHRoKSArIHZhcigtLWJ1dHRvbi1wYWRkaW5nLWhvcml6b250YWwpKSAqIC0xKTsgLyogWzIyXSAqL1xuICAgICAgICAtLWJ1dHRvbi1jb2xsYXBzZWQ6IGluaXRpYWw7IC8qIFsyOF0gKi9cbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyAvKiBbMjNdICovXG4gICAgICAgIG1pbi13aWR0aDogdmFyKC0tYnV0dG9uLWhlaWdodCk7IC8qIFsyNF0gKi9cbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gdmFyKC0tcGFnZS13cmFwLXBhZGRpbmctaG9yaXpvbnRhbCkgKiAyKTsgLyogWzI1XSAqL1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyAvKiBbMjZdICovXG5cbiAgICAgICAgJi5jLWJ0bi0tcmV2ZXJzZWQge1xuICAgICAgICAgICAgLmMtYnRuX190ZXh0OmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tYnV0dG9uLXRleHQtbWFyZ2luLXdoZW4tY29sbGFwc2VkLCB2YXIoLS1idXR0b24tdGV4dC1ob3Jpem9udGFsLXNwYWNpbmcpKTsgLyogWzIxXSBbMjhdICovXG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmMtYnRuX190ZXh0IHtcbiAgICAgICAgICAgIC0tYnV0dG9uLXRleHQtbWF4LXdpZHRoLXdoZW4tY29sbGFwc2VkOiB2YXIoLS1idXR0b24tY29sbGFwc2VkKSAwOyAvKiBbMjhdICovXG4gICAgICAgICAgICAtLWJ1dHRvbi10ZXh0LW1hcmdpbi13aGVuLWNvbGxhcHNlZDogdmFyKC0tYnV0dG9uLWNvbGxhcHNlZCkgMDsgLyogWzI4XSAqL1xuICAgICAgICAgICAgLS1idXR0b24tdGV4dC1vcGFjaXR5LXdoZW4tY29sbGFwc2VkOiB2YXIoLS1idXR0b24tY29sbGFwc2VkKSAwOyAvKiBbMjhdICovXG4gICAgICAgICAgICBtYXgtd2lkdGg6IHZhcigtLWJ1dHRvbi10ZXh0LW1heC13aWR0aC13aGVuLWNvbGxhcHNlZCwgJGJ1dHRvbi1pbmNvZ25pdG8tbWF4LXdpZHRoKTsgLyogWzI1XSBbMjhdICovXG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyAvKiBbMjddICovXG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgLyogWzI3XSAqL1xuICAgICAgICAgICAgb3BhY2l0eTogdmFyKC0tYnV0dG9uLXRleHQtb3BhY2l0eS13aGVuLWNvbGxhcHNlZCwgMSk7IC8qIFsyOF0gKi9cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1idXR0b24tdGV4dC1tYXJnaW4td2hlbi1jb2xsYXBzZWQsIHZhcigtLWJ1dHRvbi10ZXh0LWhvcml6b250YWwtc3BhY2luZykpOyAvKiBbMjFdIFsyOF0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tYnV0dG9uLXRleHQtbWFyZ2luLXdoZW4tY29sbGFwc2VkLCB2YXIoLS1idXR0b24tdGV4dC1ob3Jpem9udGFsLXNwYWNpbmcpKTsgLyogWzIxXSBbMjhdICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYy1idG5fX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7IC8qIFszMV0gKi9cbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKiBbMzFdICovXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiBbMzFdICovXG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tYnV0dG9uLWhlaWdodCk7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tYnV0dG9uLWljb24taG9yaXpvbnRhbC1vZmZzZXQpOyAvKiBbMjJdICovXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWJ1dHRvbi1pY29uLWhvcml6b250YWwtb2Zmc2V0KTsgLyogWzIyXSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJjp3aGVyZSg6bm90KDpob3Zlcik6bm90KDpmb2N1cykpIHtcbiAgICAgICAgICAgIC0tYnV0dG9uLWNvbGxhcHNlZDogOyAvKiBbMjhdICovIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgKi9cbiAgICAgICAgfVxuXG4gICAgfVxuLyogc3R5bGVsaW50LWVuYWJsZSBzZWxlY3Rvci1tYXgtY2xhc3MsIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI1RSVU5DQVRFIFRFWFRcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vLy8gVHJ1bmNhdGUgdGV4dCB3aXRoIFwiLi4uXCIgd2hlbiBjb250ZW50IGlzIHdpZGVyIHRoYW4gdGhlIGF2YWlsYWJsZSBzcGFjZS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbXVsdGlsaW5lIFtudWxsXSAtIEVuYWJsZSBtdWx0aWxpbmUgdmlhIGBsaW5lLWNsYW1wYFxuLy8vIHdpdGggZ2l2ZW4gbnVtYmVyXG5AbWl4aW4gdHJ1bmNhdGUoJG11bHRpbGluZTogbnVsbCkge1xuXG4gICAgQGlmICgkbXVsdGlsaW5lKSB7XG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6ICRtdWx0aWxpbmU7XG4gICAgICAgIGxpbmUtY2xhbXA6ICRtdWx0aWxpbmU7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIGJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgfSBAZWxzZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuIiwiLy8gLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjQlVUVE9OU1xuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuJHNrb2RhLWJ1dHRvbi1zY2FsZS1hY3RpdmU6ICAgICAgICAgICAgICAgICAgICAgJEJVVFRPTi1TQ0FMRS1BQ1RJVkUgIWRlZmF1bHQ7XG4kc2tvZGEtYnV0dG9uLWZvY3VzLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAkQlVUVE9OLUxJTkstVEVYVC1DT0xPUi1GT0NVUyAhZGVmYXVsdDtcbiRza29kYS1idXR0b24tZm9jdXMtaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICRCVVRUT04tTElOSy1JQ09OLUNPTE9SLUZPQ1VTICFkZWZhdWx0O1xuJHNrb2RhLWJ1dHRvbi1mb2N1cy1vdXRsaW5lLXdpZHRoOiAgICAgICAgICAgICAgJEdMT0JBTC1GT0NVUy1XSURUSCAhZGVmYXVsdDtcbiRza29kYS1idXR0b24tZm9jdXMtb3V0bGluZS1vZmZzZXQ6ICAgICAgICAgICAgICRHTE9CQUwtRk9DVVMtT0ZGU0VUICFkZWZhdWx0O1xuJHNrb2RhLWJ1dHRvbi1saW5rLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiAgICAgICAgJEdMT0JBTC1GT0NVUy1PRkZTRVQtTEFSR0UgIWRlZmF1bHQ7XG4kc2tvZGEtYnV0dG9uLWZvY3VzLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAkQlVUVE9OLUJBQ0tHUk9VTkQtQ09MT1ItRk9DVVMgIWRlZmF1bHQ7IC8vIE5vIHNldHRpbmdzIGluIGRlZmF1bHRcbiRza29kYS1idXR0b24tc2Vjb25kYXJ5LWZvY3VzLWJhY2tncm91bmQtY29sb3I6ICRCVVRUT04tU0VDT05EQVJZLUJBQ0tHUk9VTkQtQ09MT1IgIWRlZmF1bHQ7IC8vIE5vIHNldHRpbmdzIGluIGRlZmF1bHRcblxuLyoqXG4gKiBgYm9yZGVyLXJhZGl1c2AgaXMgbm90IGFwcGxpZWQgZm9yIG91dGxpbmUgaW4gU2FmYXJpLFxuICogdXNlcyByZWN0YW5ndWxhciBzaGFwZSBpbnN0ZWFkLlxuICogQGxpbmsgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODA3XG4gKi9cbi5jLWJ0biB7XG5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuXG4gICAgICAgIC8qIFsxXSAqL1xuICAgICAgICBAaW5jbHVkZSBmb2N1cy1zdHlsZXMoXG4gICAgICAgICAgICAkb3V0bGluZS13aWR0aDogICRza29kYS1idXR0b24tZm9jdXMtb3V0bGluZS13aWR0aCxcbiAgICAgICAgICAgICRvdXRsaW5lLW9mZnNldDogJHNrb2RhLWJ1dHRvbi1mb2N1cy1vdXRsaW5lLW9mZnNldCxcbiAgICAgICAgKTtcblxuICAgIH1cblxuXG4gICAgJjpub3QoLmMtYnRuLS1zZWNvbmRhcnkpIHtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIC0tYnV0dG9uLWJhY2tncm91bmQ6ICN7JHNrb2RhLWJ1dHRvbi1mb2N1cy1iYWNrZ3JvdW5kLWNvbG9yfTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJi5jLWJ0bi0tc2Vjb25kYXJ5IHtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIC0tYnV0dG9uLWJhY2tncm91bmQ6ICN7JHNrb2RhLWJ1dHRvbi1zZWNvbmRhcnktZm9jdXMtYmFja2dyb3VuZC1jb2xvcn07XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgc2NhbGU6ICRza29kYS1idXR0b24tc2NhbGUtYWN0aXZlO1xuICAgIH1cblxuICAgICYuYy1idG4tLWxpbmsge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICY6Zm9jdXMge1xuXG4gICAgICAgICAgICAuYy1idG5fX3RleHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2tvZGEtYnV0dG9uLWZvY3VzLXRleHQtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLWJ0bl9faWNvbi5jLWJ0bl9faWNvbiB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5LCBzZWxlY3Rvci1tYXgtY2xhc3MgKi9cbiAgICAgICAgICAgICAgICBjb2xvcjogJHNrb2RhLWJ1dHRvbi1mb2N1cy1pY29uLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9jdXMtc3R5bGVzKFxuICAgICAgICAgICAgICAgICRvdXRsaW5lLW9mZnNldDogJHNrb2RhLWJ1dHRvbi1saW5rLWZvY3VzLW91dGxpbmUtb2Zmc2V0LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAjQkFDSy1UTy1UT1BcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kYmFjay10by10b3AtYmFyLWJhY2tncm91bmQtY29sb3I6ICAkQ09MT1ItUEFMRSAhZGVmYXVsdDtcbiRiYWNrLXRvLXRvcC1iYXItc3BhY2luZy10b3A6ICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJGJhY2stdG8tdG9wLWJhci1zcGFjaW5nLWJvdHRvbTogICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kYmFjay10by10b3AtaWNvbjogICAgICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy11cCkgIWRlZmF1bHQ7XG4kYmFjay10by10b3AtbmVlZHMtcGFnZS13cmFwOiAgICAgICB0cnVlICFkZWZhdWx0O1xuJGJhY2stdG8tdG9wLW5lZWRzLXBhZ2UtdGV4dC1hbGlnbjogcmlnaHQgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIEZsZXhpYmxlIGxlZnQgb3IgcmlnaHQgYWxpZ25tZW50IG9mIHRoZSBjb21wb25lbnQuXG4gKi9cbi5jLWJhY2stdG8tdG9wIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCk7XG4gICAgcGFkZGluZy10b3A6IGlmKCRiYWNrLXRvLXRvcC1iYXItc3BhY2luZy10b3AsICRiYWNrLXRvLXRvcC1iYXItc3BhY2luZy10b3AsIG51bGwpO1xuICAgIHBhZGRpbmctYm90dG9tOiBpZigkYmFjay10by10b3AtYmFyLXNwYWNpbmctYm90dG9tLCAkYmFjay10by10b3AtYmFyLXNwYWNpbmctYm90dG9tLCBudWxsKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpZigkYmFjay10by10b3AtYmFyLWJhY2tncm91bmQtY29sb3IsICRiYWNrLXRvLXRvcC1iYXItYmFja2dyb3VuZC1jb2xvciwgbnVsbCk7XG59XG5cbiAgICAuYy1iYWNrLXRvLXRvcF9fcGFnZXdyYXAge1xuICAgICAgICB0ZXh0LWFsaWduOiAkYmFjay10by10b3AtbmVlZHMtcGFnZS10ZXh0LWFsaWduOyAvKiBbMV0gKi9cblxuICAgICAgICBAaWYgKCRiYWNrLXRvLXRvcC1uZWVkcy1wYWdlLXdyYXApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBhZ2Utd3JhcCgpO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1iYWNrLXRvLXRvcF9faWNvbjo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCk7XG4gICAgICAgIGNvbnRlbnQ6ICRiYWNrLXRvLXRvcC1pY29uO1xuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNCVVRUT04tR1JPVVBcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQHVzZSBcInNhc3M6bWF0aFwiIGFzICo7XG5cbi8qKlxuICogVGhlIGJ1dHRvbiBncm91cCBjb21wb25lbnQgaXMgYSBzZXQgb2YgYnV0dG9ucyB0byBjaG9vc2UgYmV0d2VlbiBzZXZlcmFsXG4gKiBvcHRpb25zIGluIGZvcm1zLiBTbywgdGVjaG5pY2FsbHkgc3BlYWtpbmcsIGl0J3MgYWN0dWFsbHkgcmFkaW8gYnV0dG9uc1xuICogb3IgY2hlY2tib3hlcywganVzdCBpbiB0aGUgbG9vayBvZiBhIGJ1bmNoIG9mIGJ1dHRvbnMuXG4gKi9cblxuLy8gRGVmaW5lIHlvdXIgZGVzaXJlZCBidXR0b24gZ3JvdXAgaXRlbSBoZWlnaHQuXG4vLyBOT1RFOiBUaGlzIGp1c3QgYXBwbGllcywgaWYgeW91IGRlZmluZSB0aGUgYCRidXR0b24tZ3JvdXAtaXRlbS1saW5lLWhlaWdodGAgd2l0aCBhXG4vLyBgcHhgIHZhbHVlLiBJZiB5b3UgbmVlZCB0byBkZWZpbmUgeW91ciBsaW5lLWhlaWdodCB3aXRoIGFub3RoZXIgdW5pdCwgeW91XG4vLyBuZWVkIHRvIGNvbnN0cnVjdCB0aGUgaGVpZ2h0IG9mIHlvdXIgYnV0dG9uIHlvdXJzZWxmIGJ5IGFsdGVyaW5nIHRoZVxuLy8gYCRidXR0b24tcGFkZGluZy12ZXJ0aWNhbGAgdmFyaWFibGUuXG4kYnV0dG9uLWdyb3VwLWl0ZW0taGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgJEJVVFRPTi1IRUlHSFQgIWRlZmF1bHQ7XG5cbi8vIFByZWZlciB0byBkZWZpbmUgeW91ciBsaW5lLWhlaWdodCB3aXRoIGEgYHB4YCB2YWx1ZSwgc28gdGhlIGRlc2lyZWRcbi8vIGJ1dHRvbi1ncm91cCBoZWlnaHQgeW91IGRlZmluZWQgYWJvdmUgY2FuIGJlIGNhbGN1bGF0ZWQgYXV0b21hdGljYWxseS5cbiRidXR0b24tZ3JvdXAtaXRlbS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAkQlVUVE9OLUxJTkUtSEVJR0hUICFkZWZhdWx0O1xuXG4vLyBEZWZpbmUgdGhlIHNwYWNpbmcgYmV0d2VlbiB0aGUgYnV0dG9uIGdyb3VwIGl0ZW1zLlxuJGJ1dHRvbi1ncm91cC1pdGVtLXNwYWNpbmctdmVydGljYWw6ICAgICAgICAgICRCVVRUT04tR1JPVVAtSVRFTS1TUEFDSU5HLVZFUlRJQ0FMICFkZWZhdWx0O1xuJGJ1dHRvbi1ncm91cC1pdGVtLXNwYWNpbmctaG9yaXpvbnRhbDogICAgICAgICRCVVRUT04tR1JPVVAtSVRFTS1TUEFDSU5HLUhPUklaT05UQUwgIWRlZmF1bHQ7XG5cbi8vIE1pbmltdW0gd2lkdGggZm9yIGl0ZW0gKGh0dHBzOi8venBsLmlvLzJwbzVSbnIpXG4kYnV0dG9uLWdyb3VwLWl0ZW0tbWluLXdpZHRoOiAgICAgICAgICAgICAgICAgMTUycHggIWRlZmF1bHQ7XG5cbiRidXR0b24tZ3JvdXAtaXRlbS1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUJPUkRFUi1XSURUSCAhZGVmYXVsdDtcbiRidXR0b24tZ3JvdXAtaXRlbS1ib3JkZXItc3R5bGU6ICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUJPUkRFUi1TVFlMRSAhZGVmYXVsdDtcbiRidXR0b24tZ3JvdXAtaXRlbS1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUJPUkRFUi1DT0xPUiAhZGVmYXVsdDtcbiRidXR0b24tZ3JvdXAtaXRlbS1ib3JkZXItY29sb3ItaG92ZXI6ICAgICAgICAkQ09MT1ItSU5BQ1RJVkUgIWRlZmF1bHQ7XG4kYnV0dG9uLWdyb3VwLWl0ZW0tYm9yZGVyLWNvbG9yLWNoZWNrZWQ6ICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJGJ1dHRvbi1ncm91cC1pdGVtLWJvcmRlci1jb2xvci1kaXNhYmxlZDogICAgIG51bGwgIWRlZmF1bHQ7XG4kYnV0dG9uLWdyb3VwLWl0ZW0tYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgJGJ1dHRvbi1ncm91cC1pdGVtLWJvcmRlci13aWR0aCAkYnV0dG9uLWdyb3VwLWl0ZW0tYm9yZGVyLXN0eWxlICRidXR0b24tZ3JvdXAtaXRlbS1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kYnV0dG9uLWdyb3VwLWl0ZW0tYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItUkFESVVTICFkZWZhdWx0O1xuXG4kYnV0dG9uLWdyb3VwLWl0ZW0tcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbi8vIElmIGAkYnV0dG9uLWdyb3VwLWl0ZW0tbGluZS1oZWlnaHRgIGlzIGEgYHB4YCB2YWx1ZSwgd2UgY2FuIHVzZSB0aGF0IGFuZCB0aGVcbi8vIGAkYnV0dG9uLWdyb3VwLWl0ZW0taGVpZ2h0YCB0byBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZSB0aGUgYXBwcm9wcmlhdGVcbi8vIGAkYnV0dG9uLWdyb3VwLWl0ZW0tcGFkZGluZy12ZXJ0aWNhbGAgdmFsdWUsIHNvIGl0IHlpZWxkcyB0aGUgZGVzaXJlZCBidXR0b25cbi8vIGhlaWdodC5cbkBpZiAodW5pdCgkYnV0dG9uLWdyb3VwLWl0ZW0tbGluZS1oZWlnaHQpID09IFwicHhcIikge1xuICAgICRidXR0b24tZ3JvdXAtaXRlbS1wYWRkaW5nLXZlcnRpY2FsOiAoKCRidXR0b24tZ3JvdXAtaXRlbS1oZWlnaHQgLSAkYnV0dG9uLWdyb3VwLWl0ZW0tbGluZS1oZWlnaHQgLSAoJGJ1dHRvbi1ncm91cC1pdGVtLWJvcmRlci13aWR0aCAqIDIpKSAqIDAuNSkgIWRlZmF1bHQ7XG59XG4vLyBJZiB0aGUgYCRidXR0b24tZ3JvdXAtaXRlbS1saW5lLWhlaWdodGAgaXMgbm90IGEgYHB4YCB2YWx1ZSwgdGhlIGFib3ZlXG4vLyBjYWxjdWxhdGlvbiB3b3VsZG4ndCB3b3JrLiBJbiB0aGF0IGNhc2UsIHRoZSBAaWYgY29uZGl0aW9uIGFib3ZlIHdvdWxkbid0XG4vLyBhcHBseSBhbmQgaW5zdGVhZCwgdGhlIGZvbGxvd2luZyB2YXJpYWJsZSBhc3NpZ25tZW50IHdvdWxkIGFwcGx5LlxuJGJ1dHRvbi1ncm91cC1pdGVtLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3Mvbm8tZHVwbGljYXRlLWRvbGxhci12YXJpYWJsZXMgKi9cbiRidXR0b24tZ3JvdXAtaXRlbS1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRidXR0b24tZ3JvdXAtaXRlbS1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAkYnV0dG9uLWdyb3VwLWl0ZW0tcGFkZGluZy12ZXJ0aWNhbCAkYnV0dG9uLWdyb3VwLWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsICFkZWZhdWx0O1xuXG4kYnV0dG9uLWdyb3VwLWl0ZW0tYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgJEJVVFRPTi1HUk9VUC1JVEVNLUJBQ0tHUk9VTkQtQ09MT1IgIWRlZmF1bHQ7XG4kYnV0dG9uLWdyb3VwLWl0ZW0tYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogICAgJEJVVFRPTi1HUk9VUC1JVEVNLUJBQ0tHUk9VTkQtQ09MT1ItSE9WRVIgIWRlZmF1bHQ7XG4kYnV0dG9uLWdyb3VwLWl0ZW0tYmFja2dyb3VuZC1jb2xvci1jaGVja2VkOiAgJENPTE9SLUJBU0UgIWRlZmF1bHQ7XG4kYnV0dG9uLWdyb3VwLWl0ZW0tYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDogbnVsbCAhZGVmYXVsdDtcblxuJGJ1dHRvbi1ncm91cC1pdGVtLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICRCVVRUT04tVEVYVC1TSVpFICFkZWZhdWx0O1xuJGJ1dHRvbi1ncm91cC1pdGVtLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kYnV0dG9uLWdyb3VwLWl0ZW0tZm9udC1jb2xvcjogICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcbiRidXR0b24tZ3JvdXAtaXRlbS1mb250LWNvbG9yLWhvdmVyOiAgICAgICAgICAkYnV0dG9uLWdyb3VwLWl0ZW0tZm9udC1jb2xvciAhZGVmYXVsdDtcbiRidXR0b24tZ3JvdXAtaXRlbS1mb250LWNvbG9yLWNoZWNrZWQ6ICAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kYnV0dG9uLWdyb3VwLWl0ZW0tZm9udC1jb2xvci1kaXNhYmxlZDogICAgICAgJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuJGJ1dHRvbi1ncm91cC1pdGVtLXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kYnV0dG9uLWdyb3VwLWl0ZW0tdGV4dC1sZXR0ZXItc3BhY2luZzogICAgICAgbnVsbCAhZGVmYXVsdDtcblxuJGJ1dHRvbi1ncm91cC1pY29uOiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kYnV0dG9uLWdyb3VwLWljb24tc3BhY2luZzogICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJGJ1dHRvbi1ncm91cC1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kYnV0dG9uLWdyb3VwLWljb24tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKG1lZGl1bSkgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIEJldHRlciBhbGlnbm1lbnQgbWFuYWdlbWVudC5cbiAqIFsyXSBXaGVuIHRoZSBpdGVtcyBkbyBoYXZlIHNwYWNpbmcgYmVuZWF0aCBlYWNoIG90aGVyLCBtYWtlIHN1cmUgdG8gdGFrZSBjYXJlXG4gKiAgICAgb2YgdGhlIHZlcnRpY2FsIHNwYWNpbmcgYmV0d2VlbiB0aGUgaXRlbXMgKHdoZW4gbXVsdGlsaW5lKSBhbmQgdG9cbiAqICAgICBzdXJyb3VuZGluZyBjb21wb25lbnRzLlxuICogWzNdIERlZmVuc2l2ZWx5IGRlZmF1bHQgdG8gYGRpc3BsYXk6IGZsZXhgLlxuICogWzRdIENlbnRlciB0ZXh0IGluc2lkZSBpdGVtcy5cbiAqIFs1XSBJZiB0aGUgaXRlbXMgZG8gaGF2ZSBzcGFjaW5nIGJlbmVhdGggZWFjaCBvdGhlciwgZ2l2ZSBlYWNoIGl0ZW0sIGV4Y2VwdFxuICogICAgICB0aGUgbGFzdCBvbmUsIGEgc3BhY2luZy5cbiAqIFs2XSBNYWtlIGl0IGJsb2NreSBzbyBpdCBjYW4gdGFrZSB1cCAxMDAlIHdpZHRoIG9mIGl0cyBwYXJlbnQuXG4gKiBbN10gSGlkZSB0aGUgb3JpZ2luYWwgcmFkaW8tYnV0dG9uLlxuICogWzhdIFJlc2V0IG1hcmdpbi1ib3R0b20gdG8gMCAoc2V0IGJ5IGA8bGFiZWw+YCBkZWNsYXJhdGlvbikuXG4gKiBbOV0gT3ZlcndyaXRlIGRlZmF1bHQgaWNvbiBgdHJhbnNpdGlvbmBcbiAqICAgICAgdG8gYmUgaW4gc3luYyB3aXRoIGJ1dHRvbi1ncm91cCB0cmFuc2l0aW9uLlxuICogWzEwXSBTdHJldGNoIHRvIHRoZSBoaWdoZXN0IGl0ZW0gaW4gcm93LlxuICogWzExXSBTdWJ0cmFjdCAoY29tcGVuc2F0ZSkgbWFyZ2lucyB0byBwcmV2ZW50IHVubmVjZXNzYXJ5IHdyYXBwaW5nICgxMDArJSkuXG4gKiBbMTJdIEFsbG93IGdyb3dpbmcvc2hyaW5raW5nIGlmIG1heC1jb3VudCBpcyBub3QgcmVhY2hlZCAocXVhbnRpdHkgcXVlcmllcykuXG4gKiBbMTNdIFZlcnRpY2FsbHkgY2VudGVyIGl0ZW0gY29udGVudC5cbiAqIFsxNF0gR2V0IGEgbWluLXdpZHRoIG9mIGAkYnV0dG9uLWdyb3VwLWl0ZW0tbWluLXNpemVgIGFuZCBhIG1heCB3aWR0aCBvZlxuICogICAgICBgMWZyYCBmb3IgZWFjaCBncmlkLWl0ZW0uXG4gKiBbMTVdIEdldCBlcXVhbC1oZWlnaHQgZ3JpZC1yb3dzLlxuICogWzE2XSBUaGUgZGlzcGxheSBvZiBpY29ucyBpbiBidXR0b24gZ3JvdXAgaXRlbXMgaXMgb3B0aW9uYWwuXG4gKi9cblxuLy8gQ2FsY3VsYXRlIGl0ZW0gc2l6ZXNcbi8vIEBwYXJhbSB7bnVtYmVyfSAkY291bnQ6IG1heCBjb3VudCBwZXIgcm93XG5AbWl4aW4gYnV0dG9uLWdyb3VwLWl0ZW0tc2l6ZSgkY291bnQpIHtcbiAgICAkX3dpZHRoOiBwZXJjZW50YWdlKGRpdigxLCAkY291bnQpKTtcbiAgICBmbGV4LWJhc2lzOiBjYWxjKCN7JF93aWR0aH0gLSAjeyRidXR0b24tZ3JvdXAtaXRlbS1zcGFjaW5nLWhvcml6b250YWx9KTsgLyogWzExXSAqL1xuXG4gICAgLyogWzEyXSAqL1xuICAgIEBpbmNsdWRlIGF0LW1vc3QoJGNvdW50KSB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgfVxuXG59XG5cbi8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbi5jLWJ1dHRvbi1ncm91cCB7XG4gICAgZGlzcGxheTogZ3JpZDsgLyogWzFdICovXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgkYnV0dG9uLWdyb3VwLWl0ZW0tbWluLXdpZHRoLCAxZnIpKTsgLyogWzE0XSAqL1xuICAgIGdyaWQtYXV0by1yb3dzOiAxZnI7IC8qIFsxNV0gKi9cblxuICAgIEBpZiAoJGJ1dHRvbi1ncm91cC1pdGVtLXNwYWNpbmctdmVydGljYWwgIT0gMCkge1xuICAgICAgIHJvdy1nYXA6ICRidXR0b24tZ3JvdXAtaXRlbS1zcGFjaW5nLXZlcnRpY2FsOyAvKiBbMl0gKi9cbiAgICB9XG5cbiAgICBAaWYgKCRidXR0b24tZ3JvdXAtaXRlbS1zcGFjaW5nLWhvcml6b250YWwgIT0gMCkge1xuICAgICAgIGNvbHVtbi1nYXA6ICRidXR0b24tZ3JvdXAtaXRlbS1zcGFjaW5nLWhvcml6b250YWw7IC8qIFsyXSAqL1xuICAgIH1cblxuICAgICYuYy1idXR0b24tZ3JvdXAtLWF1dG8ge1xuICAgICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KCRidXR0b24tZ3JvdXAtaXRlbS1taW4td2lkdGgsIDFmcikpOyAvKiBbNV0gKi9cbiAgICB9XG5cbn1cblxuICAgIC5jLWJ1dHRvbi1ncm91cF9faXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IC8qIFszXSAqL1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbOF0gKi9cbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyAvKiBbNF0gKi9cbiAgICB9XG5cbiAgICAuYy1idXR0b24tZ3JvdXBfX2xhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigpO1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICAgJGJ1dHRvbi1ncm91cC1pdGVtLWZvbnQtc2l6ZSxcbiAgICAgICAgICAgICRsaW5lLWhlaWdodDogJGJ1dHRvbi1ncm91cC1pdGVtLWxpbmUtaGVpZ2h0XG4gICAgICAgICk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7IC8qIFs2XSAqL1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogWzEzXSAqL1xuICAgICAgICB3aWR0aDogMTAwJTsgLyogWzZdICovXG4gICAgICAgIGhlaWdodDogMTAwJTsgLyogWzEwXSAqL1xuICAgICAgICBwYWRkaW5nOiAkYnV0dG9uLWdyb3VwLWl0ZW0tcGFkZGluZztcbiAgICAgICAgYm9yZGVyOiAkYnV0dG9uLWdyb3VwLWl0ZW0tYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLWdyb3VwLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRidXR0b24tZ3JvdXAtaXRlbS1mb250LXdlaWdodDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRidXR0b24tZ3JvdXAtaXRlbS10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6ICRidXR0b24tZ3JvdXAtaXRlbS10ZXh0LWxldHRlci1zcGFjaW5nO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWdyb3VwLWl0ZW0tYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgY29sb3I6ICRidXR0b24tZ3JvdXAtaXRlbS1mb250LWNvbG9yO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgLy8gOmhvdmVyICYgOmZvY3VzIE5PVCBjaGVja2VkXG4gICAgICAgIC5jLWJ1dHRvbi1ncm91cF9faXRlbTpmb2N1cy13aXRoaW4gJixcbiAgICAgICAgLmMtYnV0dG9uLWdyb3VwX19pbnB1dDpob3ZlciArICYsXG4gICAgICAgIC5jLWJ1dHRvbi1ncm91cF9faW5wdXQ6Zm9jdXMgKyAmLFxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRidXR0b24tZ3JvdXAtaXRlbS1ib3JkZXItY29sb3ItaG92ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLWdyb3VwLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tZ3JvdXAtaXRlbS1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgY29sb3I6ICRidXR0b24tZ3JvdXAtaXRlbS1mb250LWNvbG9yLWhvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUGxhY2UgYmVsb3cgOmhvdmVyIGFuZCA6Zm9jdXMgdG8gcHJvbW90ZSA6Y2hlY2tlZCBzdGF0ZVxuICAgICAgICAuYy1idXR0b24tZ3JvdXBfX2lucHV0OmNoZWNrZWQgKyAmIHtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRidXR0b24tZ3JvdXAtaXRlbS1ib3JkZXItY29sb3ItY2hlY2tlZDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tZ3JvdXAtaXRlbS1iYWNrZ3JvdW5kLWNvbG9yLWNoZWNrZWQ7XG4gICAgICAgICAgICBjb2xvcjogJGJ1dHRvbi1ncm91cC1pdGVtLWZvbnQtY29sb3ItY2hlY2tlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWJ1dHRvbi1ncm91cF9faW5wdXRbZGlzYWJsZWRdICsgJiB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRidXR0b24tZ3JvdXAtaXRlbS1ib3JkZXItY29sb3ItZGlzYWJsZWQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWdyb3VwLWl0ZW0tYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDtcbiAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uLWdyb3VwLWl0ZW0tZm9udC1jb2xvci1kaXNhYmxlZDtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgQGlmICgkYnV0dG9uLWdyb3VwLWljb24pIHtcblxuICAgICAgICAuYy1idXR0b24tZ3JvdXBfX2ljb24geyAvKiAyMiAqL1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGJ1dHRvbi1ncm91cC1pY29uLXNwYWNpbmc7XG4gICAgICAgICAgICBjb2xvcjogJGJ1dHRvbi1ncm91cC1pY29uLWNvbG9yO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGJ1dHRvbi1ncm91cC1pY29uLXNpemU7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogbm9uZTsgLyogWzldICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfSBAZWxzZSB7XG4gICAgICAgIC5jLWJ1dHRvbi1ncm91cF9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBbMTZdICovXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYy1idXR0b24tZ3JvdXBfX2lucHV0IHtcbiAgICAgICAgQGluY2x1ZGUgYTExeS1oaWRkZW4oKTsgLyogWzddICovXG4gICAgfVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0JVVFRPTi1HUk9VUFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRza29kYS1idXR0b24tZ3JvdXAtaXRlbS1iYWNrZ3JvdW5kLWNvbG9yLWNoZWNrZWQtaG92ZXI6ICRCVVRUT04tU0VDT05EQVJZLUJBQ0tHUk9VTkQtQ09MT1ItSE9WRVIgIWRlZmF1bHQ7XG4kc2tvZGEtYnV0dG9uLWdyb3VwLWl0ZW0tYmFja2dyb3VuZC1jb2xvci1mb2N1czogICAgICAgICAkYnV0dG9uLWdyb3VwLWl0ZW0tYmFja2dyb3VuZC1jb2xvciAhZGVmYXVsdDtcblxuLmMtYnV0dG9uLWdyb3VwIHtcblxufVxuXG4gICAgLmMtYnV0dG9uLWdyb3VwX19sYWJlbCB7XG5cbiAgICAgICAgLmMtYnV0dG9uLWdyb3VwX19pbnB1dDpmb2N1cy12aXNpYmxlIH4gJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb2N1cy1zdHlsZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWJ1dHRvbi1ncm91cF9faW5wdXQ6Y2hlY2tlZCArICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2tvZGEtYnV0dG9uLWdyb3VwLWl0ZW0tYmFja2dyb3VuZC1jb2xvci1jaGVja2VkLWhvdmVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNrb2RhLWJ1dHRvbi1ncm91cC1pdGVtLWJhY2tncm91bmQtY29sb3ItY2hlY2tlZC1ob3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWJ1dHRvbi1ncm91cF9faW5wdXQ6bm90KDpjaGVja2VkKTpmb2N1cyArICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNrb2RhLWJ1dHRvbi1ncm91cC1pdGVtLWJhY2tncm91bmQtY29sb3ItZm9jdXM7XG4gICAgICAgIH1cblxuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNMSVNULU5FU1RFRC1DT1VOVEVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGxpc3QtbmVzdGVkLWNvdW50ZXItaW5kZW50YXRpb246ICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULUxBUkdFICFkZWZhdWx0O1xuJGxpc3QtbmVzdGVkLWNvdW50ZXItY2hpbGQtaXRlbXMtc3BhY2luZy1ib3R0b206ICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJGxpc3QtbmVzdGVkLWNvdW50ZXItZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgIGJvbGQgIWRlZmF1bHQ7XG4kbGlzdC1uZXN0ZWQtY291bnRlci1zcGFjaW5nLWxlZnQ6ICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gU2VsZWN0b3IgYXBwbGllcyB0byBlaXRoZXIgYW4gb3JkZXJlZCBsaXN0IHdpdGggbmVzdGVkIGxpc3QgY2xhc3MgKGUuZy5cbiAqICAgICBgPG9sIGNsYXNzPVwiYy1saXN0LW5lc3RlZC1jb3VudGVyXCI+YCBvciB0byBhbiBvcmRlcmVkIGxpc3Qgd2l0aCB0aGVcbiAqICAgICBuZXN0ZWQgbGlzdCBjbGFzc2VzIGFkZGVkIHRvIG9uZSBvZiBpdCdzIHBhcmVudHMsIGUuZy5cbiAqICAgICBgYGBcbiAqICAgICA8ZGl2IGNsYXNzPVwiYy1saXN0LW5lc3RlZC1jb3VudGVyXCI+XG4gKiAgICAgICAgIDxvbD5cbiAqICAgICAgICAgICAgIC4uLlxuICogICAgICAgICA8L29sPlxuICogICAgIDwvZGl2PlxuICogICAgIGBgYC5cbiAqL1xub2wuYy1saXN0LW5lc3RlZC1jb3VudGVyLFxuLmMtbGlzdC1uZXN0ZWQtY291bnRlciBvbCB7IC8qIFsxXSAqL1xuICAgIG1hcmdpbi1sZWZ0OiAkbGlzdC1uZXN0ZWQtY291bnRlci1zcGFjaW5nLWxlZnQ7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIGNvdW50ZXItcmVzZXQ6IHNlY3Rpb247XG5cbiAgICBvbCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkbGlzdC1uZXN0ZWQtY291bnRlci1pbmRlbnRhdGlvbjtcblxuICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICAgICAgICBsaSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1uZXN0ZWQtY291bnRlci1jaGlsZC1pdGVtcy1zcGFjaW5nLWJvdHRvbTtcbiAgICAgICAgfVxuICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cbiAgICB9XG5cbiAgICBsaTo6YmVmb3JlIHtcbiAgICAgICAgY291bnRlci1pbmNyZW1lbnQ6IHNlY3Rpb247XG4gICAgICAgIGNvbnRlbnQ6IGNvdW50ZXJzKHNlY3Rpb24sIFwiLlwiKSBcIi4gXCI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkbGlzdC1uZXN0ZWQtY291bnRlci1mb250LXdlaWdodDtcbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNMSVNULU5FU1RFRC1DT1VOVEVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNrb2RhLW9yZGVyZWQtbGlzdC1pdGVtLWNvdW50ZXItcG9zaXRpb246ICAgICAgYWJzb2x1dGUgIWRlZmF1bHQ7XG4kc2tvZGEtb3JkZXJlZC1saXN0LWl0ZW0tY291bnRlci1zcGFjaW5nLXJpZ2h0OiAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kdnc2LWxpc3QtbmVzdGVkLWxpc3QtaXRlbS1zcGFjaW5nLXZlcnRpY2FsOiAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiRza29kYS1vcmRlcmVkLWxpc3QtaXRlbS1jb3VudGVyLW9mZnNldDogICAgICAgIC0xMDAlICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBBZGQgc3BhY2luZyBiZXR3ZWVuIGNvdW50ZXIgYW5kIGl0ZW1zLlxuICovXG5vbC5jLWxpc3QtbmVzdGVkLWNvdW50ZXIsXG4uYy1saXN0LW5lc3RlZC1jb3VudGVyIG9sIHtcblxuICAgIGxpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHZ3Ni1saXN0LW5lc3RlZC1saXN0LWl0ZW0tc3BhY2luZy12ZXJ0aWNhbDtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgcG9zaXRpb246ICRza29kYS1vcmRlcmVkLWxpc3QtaXRlbS1jb3VudGVyLXBvc2l0aW9uOyAvKiBbMV0gKi9cbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRza29kYS1vcmRlcmVkLWxpc3QtaXRlbS1jb3VudGVyLXNwYWNpbmctcmlnaHQ7IC8qIFsxXSAqL1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRza29kYS1vcmRlcmVkLWxpc3QtaXRlbS1jb3VudGVyLW9mZnNldCk7IC8qIFsxXSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI09SREVSRUQtTElTVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8vIFRoZSBuZXN0ZWQgbGlzdCBpbmRlbnRhdGlvbiBpcyBzZXQgdG8gYCRHTE9CQUwtU1BBQ0lORy1VTklUYCBhY2NvbW1vZGF0ZSBmb3IgdGhlIG5lZ2F0aXZlIGBsaWAgbWFya2VyIG9mZnNldC5cbiRvcmRlcmVkLWxpc3QtaW5kZW50YXRpb246ICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1MQVJHRSAhZGVmYXVsdDtcbiRvcmRlcmVkLWxpc3QtaXRlbS1zcGFjaW5nLXZlcnRpY2FsOiAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRvcmRlcmVkLWxpc3QtaXRlbS1jb3VudGVyLXN0eWxlOiAgICBkZWNpbWFsICFkZWZhdWx0O1xuJG9yZGVyZWQtbGlzdC1pdGVtLWNvdW50ZXItbmFtZTogICAgIGxpICFkZWZhdWx0O1xuJG9yZGVyZWQtbGlzdC1pdGVtLXBhZGRpbmc6ICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcblxuLmMtb2wge1xuXG4gICAgJixcbiAgICBvbCB7XG4gICAgICAgIGNvdW50ZXItcmVzZXQ6ICRvcmRlcmVkLWxpc3QtaXRlbS1jb3VudGVyLW5hbWU7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogJG9yZGVyZWQtbGlzdC1pdGVtLWNvdW50ZXItc3R5bGU7XG5cbiAgICAgICAgPiBsaSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkb3JkZXJlZC1saXN0LWl0ZW0tc3BhY2luZy12ZXJ0aWNhbDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJG9yZGVyZWQtbGlzdC1pdGVtLXBhZGRpbmc7XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1jb21iaW5hdG9ycywgc2VsZWN0b3ItbWF4LWNvbXBvdW5kLXNlbGVjdG9ycywgc2VsZWN0b3ItbWF4LXR5cGUgKi9cbiAgICAgICAgICAgID4gb2wge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6ICRvcmRlcmVkLWxpc3QtaXRlbS1zcGFjaW5nLXZlcnRpY2FsO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkb3JkZXJlZC1saXN0LWluZGVudGF0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuXG4gICAgICAgIH1cblxuICAgIH1cblxufVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI1VOT1JERVJFRC1MSVNUIChTZXR0aW5ncylcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kb3JkZXJlZC1saXN0LWluZGVudGF0aW9uOiAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kb3JkZXJlZC1saXN0LWl0ZW0tc3BhY2luZy12ZXJ0aWNhbDogJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJG9yZGVyZWQtbGlzdC1pdGVtLWNvdW50ZXItc3R5bGU6ICAgIG5vbmUgIWRlZmF1bHQ7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjT1JERVJFRC1MSVNUXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNrb2RhLW9yZGVyZWQtbGlzdC1pdGVtLWNvdW50ZXItc3R5bGU6ICAgICAgICAgZGVjaW1hbC1sZWFkaW5nLXplcm8gIWRlZmF1bHQ7XG4kc2tvZGEtb3JkZXJlZC1saXN0LWl0ZW0tY291bnRlci1wb3NpdGlvbjogICAgICBhYnNvbHV0ZSAhZGVmYXVsdDtcbiRza29kYS1vcmRlcmVkLWxpc3QtaXRlbS1jb3VudGVyLXNwYWNpbmctcmlnaHQ6ICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiRza29kYS1vcmRlcmVkLWxpc3QtaXRlbS1jb3VudGVyLW9mZnNldDogICAgICAgIC0xMDAlICFkZWZhdWx0O1xuJHNrb2RhLW9yZGVyZWQtbGlzdC1pdGVtLWNvdW50ZXItbmFtZTogICAgICAgICAgJG9yZGVyZWQtbGlzdC1pdGVtLWNvdW50ZXItbmFtZSAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gQWRkIGEgY291bnRlciBhbmQgcmVzZXQgaXQgb24gZWFjaCBgbGlgIG5lc3RpbmcuIFNldCB0aGUgY291bnRlciBzdHlsZSB0byBwdXQgaW4gbGVhZGluZyB6ZXJvcy5cbiAqIFsyXSBQb3NpdGlvbiB0aGUgY291bnRlciBhYnNvbHV0ZSBhbmQgbW92ZSBpdCBieSBpdHNlbGYgYW5kIHRoZSBgJHNrb2RhLW9yZGVyZWQtbGlzdC1pdGVtLWNvdW50ZXItb2Zmc2V0YCB0byB0aGUgbGVmdC5cbiAqL1xuLmMtb2wge1xuXG4gICAgbGkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IGNvdW50ZXIoI3skc2tvZGEtb3JkZXJlZC1saXN0LWl0ZW0tY291bnRlci1uYW1lfSwgI3skc2tvZGEtb3JkZXJlZC1saXN0LWl0ZW0tY291bnRlci1zdHlsZX0pOyAvKiBbMV0gKi9cbiAgICAgICAgICAgIHBvc2l0aW9uOiAkc2tvZGEtb3JkZXJlZC1saXN0LWl0ZW0tY291bnRlci1wb3NpdGlvbjsgLyogWzJdICovXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2tvZGEtb3JkZXJlZC1saXN0LWl0ZW0tY291bnRlci1zcGFjaW5nLXJpZ2h0OyAvKiBbMl0gKi9cbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2tvZGEtb3JkZXJlZC1saXN0LWl0ZW0tY291bnRlci1vZmZzZXQpOyAvKiBbMl0gKi9cbiAgICAgICAgICAgIGNvdW50ZXItaW5jcmVtZW50OiAkc2tvZGEtb3JkZXJlZC1saXN0LWl0ZW0tY291bnRlci1uYW1lO1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNVTk9SREVSRUQtTElTVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8vIExpc3QgaXRlbSBzZXR0aW5nc1xuJHVub3JkZXJlZC1saXN0LWluZGVudGF0aW9uOiAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR1bm9yZGVyZWQtbGlzdC1pdGVtLXNwYWNpbmctdmVydGljYWw6IG51bGwgIWRlZmF1bHQ7XG4kdW5vcmRlcmVkLWxpc3QtaXRlbS1pbmRlbnRhdGlvbjogICAgICBudWxsICFkZWZhdWx0O1xuXG4vLyBMaXN0IGljb24gc2V0dGluZ3NcbiR1bm9yZGVyZWQtbGlzdC11c2UtaWNvbi1mb250OiAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJHVub3JkZXJlZC1saXN0LWljb246ICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR1bm9yZGVyZWQtbGlzdC1pY29uLXNpemU6ICAgICAgICAgICAgIGljb24tc2l6ZShzbWFsbCkgIWRlZmF1bHQ7XG4kdW5vcmRlcmVkLWxpc3QtaWNvbi1saW5lLWhlaWdodDogICAgICBudWxsICFkZWZhdWx0O1xuJHVub3JkZXJlZC1saXN0LWljb24tZm9udC13ZWlnaHQ6ICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1SRUdVTEFSICFkZWZhdWx0O1xuJHVub3JkZXJlZC1saXN0LWljb24tb2Zmc2V0OiAgICAgICAgICAgLSgkdW5vcmRlcmVkLWxpc3QtaWNvbi1zaXplKSAhZGVmYXVsdDtcbiR1bm9yZGVyZWQtbGlzdC1pY29uLWJhc2UtY29sb3I6ICAgICAgIGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIE1ha2Ugc3VyZSB0aGUgc2VsZWN0b3IgaXMgYWxzbyBhcHBsaWVkIHRvIG5lc3RlZCBgPHVsPmAgZWxlbWVudHMuXG4gKiBbMl0gSWYgYSBjdXN0b20gbGlzdCBpY29uIGlzIHNldCwgd2UgZXhwbGljaXRseSBzZXQgdGhlIGxpc3TigJlzIGBsaXN0LXN0eWxlYCB0byBgbm9uZWAsXG4gKiAgICAgb3RoZXJ3aXNlIHdlIGRvIGZhbGwgYmFjayB0byB0aGUgaW5oZXJpdGVkIGBsaXN0LXN0eWxlYCBvZiB0aGUgYHVsYC5cbiAqIFsyXSBVbnNldCB0aGUgaW5pdGlhbCBgbWFyZ2luLWxlZnRgIGZyb20gdGhlIGB1bGAuXG4gKiBbM10gQ2hlY2sgaWYgYSBjdXN0b20gbGlzdCBpY29uIGlzIHNldC4gSWYgc28sIGRpc2FibGUgYGxpc3Qtc3R5bGVgIG9uIHRoZSBsaXN0XG4gKiAgICAgYW5kIGFwcGx5IGEgY3VzdG9tIGljb24gdmlhIHBzZXVkbyBlbGVtZW50LlxuICogWzRdIFdoZXRoZXIgdG8gdXNlIGFuIGljb24gZnJvbSB0aGUgaWNvbiBzZXQgb3IgKGEpIGN1c3RvbSBjaGFyKHMpLlxuICogICAgIEluIHRoZSBjYXNlIG9mIGN1c3RvbSBjaGFyKHMpIGFueSB0ZXh0LWxldmVsIHN0eWxpbmcgc2hvdWxkIGhhcHBlbiBpbiB0aGUgYnJhbmQgaXRzZWxmLFxuICogICAgIGFzIHRoZSBkZWZhdWx0IGNvbXBvbmVudCBjYW5ub3QgYXVnbWVudCBhbnkgcG9zc2libGUgc3R5bGUgY29tYmluYXRpb24uXG4gKiBbNV0gU3R5bGUgb25seSB1bm9yZGVyZWQgbGlzdCBpdGVtcy5cbiAqL1xuLmMtdWwge1xuXG4gICAgJixcbiAgICB1bCB7IC8qIFsxXSAqL1xuICAgICAgICBtYXJnaW4tbGVmdDogJHVub3JkZXJlZC1saXN0LWluZGVudGF0aW9uOyAvKiBbMl0gKi9cbiAgICAgICAgbGlzdC1zdHlsZTogaWYoJHVub3JkZXJlZC1saXN0LWljb24sIG5vbmUsIG51bGwpOyAvKiBbM10gKi9cblxuICAgICAgICA+IGxpIHsgLyogWzVdICovXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkdW5vcmRlcmVkLWxpc3QtaXRlbS1zcGFjaW5nLXZlcnRpY2FsO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICR1bm9yZGVyZWQtbGlzdC1pdGVtLWluZGVudGF0aW9uO1xuXG4gICAgICAgICAgICBAaWYgKCR1bm9yZGVyZWQtbGlzdC1pY29uKSB7IC8qIFszXSAqL1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICR1bm9yZGVyZWQtbGlzdC1pY29uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6ICR1bm9yZGVyZWQtbGlzdC1pY29uLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR1bm9yZGVyZWQtbGlzdC1pY29uLWJhc2UtY29sb3I7XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICgkdW5vcmRlcmVkLWxpc3QtdXNlLWljb24tZm9udCkgeyAvKiBbNF0gKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGljb24tZm9udCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKCRmb250LXNpemU6ICR1bm9yZGVyZWQtbGlzdC1pY29uLXNpemUsICRsaW5lLWhlaWdodDogJHVub3JkZXJlZC1saXN0LWljb24tbGluZS1oZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdW5vcmRlcmVkLWxpc3QtaWNvbi1mb250LXdlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjVU5PUkRFUkVELUxJU1QgKFNldHRpbmdzKVxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiR1bm9yZGVyZWQtbGlzdC1pdGVtLXNwYWNpbmctdmVydGljYWw6ICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiR1bm9yZGVyZWQtbGlzdC1pbmRlbnRhdGlvbjogICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kdW5vcmRlcmVkLWxpc3QtdXNlLWljb24tZm9udDogICAgICAgICB0cnVlICFkZWZhdWx0O1xuJHVub3JkZXJlZC1saXN0LWljb246ICAgICAgICAgICAgICAgICAgXCLigKJcIiAhZGVmYXVsdDtcbiR1bm9yZGVyZWQtbGlzdC1pY29uLXNpemU6ICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJHVub3JkZXJlZC1saXN0LWljb24tbGluZS1oZWlnaHQ6ICAgICAgMS4yICFkZWZhdWx0OyAvLyBNYWdpYyBudW1iZXIgdG8gdmVydGljYWwgYWxpZ24gdGhlIGJ1bGxldCBpY29uXG4kdW5vcmRlcmVkLWxpc3QtaXRlbS1pbmRlbnRhdGlvbjogICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNTRUNUSU9OLUhFQURJTkdTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNlY3Rpb24taGVhZGluZ3Mtc3BhY2luZy1ib3R0b206ICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtTEFSR0UgIWRlZmF1bHQ7XG4kc2VjdGlvbi1oZWFkaW5ncy1zcGFjaW5nLWJvdHRvbS1zbWFsbDogICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRzZWN0aW9uLWhlYWRpbmdzLXRpdGxlLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kc2VjdGlvbi1oZWFkaW5ncy10aXRsZS1zaXplOiAgICAgICAgICAgICAgICAgICAgICAkRlM0ICFkZWZhdWx0O1xuJHNlY3Rpb24taGVhZGluZ3MtdGl0bGUtc2l6ZS1wcmltYXJ5OiAgICAgICAgICAgICAgJEZTNiAhZGVmYXVsdDtcbiRzZWN0aW9uLWhlYWRpbmctdGl0bGUtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICRHTE9CQUwtSEVBRElORy1IMy1MSU5FLUhFSUdIVCAhZGVmYXVsdDtcbiRzZWN0aW9uLWhlYWRpbmctdGl0bGUtbGluZS1oZWlnaHQtcHJpbWFyeTogICAgICAgICRHTE9CQUwtSEVBRElORy1IMS1MSU5FLUhFSUdIVCAhZGVmYXVsdDtcbiRzZWN0aW9uLWhlYWRpbmdzLXRpdGxlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCAhZGVmYXVsdDtcbiRzZWN0aW9uLWhlYWRpbmdzLXRpdGxlLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiRzZWN0aW9uLWhlYWRpbmdzLXN1YnRpdGxlLWNvbG9yOiAgICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kc2VjdGlvbi1oZWFkaW5ncy1zdWJ0aXRsZS1zaXplOiAgICAgICAgICAgICAgICAgICAkRlMwICFkZWZhdWx0O1xuJHNlY3Rpb24taGVhZGluZ3Mtc3VidGl0bGUtc3BhY2luZy12ZXJ0aWNhbDogICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kc2VjdGlvbi1oZWFkaW5ncy1zdWJ0aXRsZS1zcGFjaW5nLXZlcnRpY2FsLXNtYWxsOiAwICFkZWZhdWx0O1xuJHNlY3Rpb24taGVhZGluZ3MtaWNvbi1lbmFibGVkOiAgICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRzZWN0aW9uLWhlYWRpbmdzLWljb24tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgIGljb24tc2l6ZShtZWRpdW0pICFkZWZhdWx0O1xuJHNlY3Rpb24taGVhZGluZ3MtaWNvbi1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kc2VjdGlvbi1oZWFkaW5ncy1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kc2VjdGlvbi1oZWFkaW5ncy1wcmltYXJ5LWJvcmRlcjogICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBXcmFwIHRleHQgYW5kIHBvc3NpYmxlIGlubGluZSBlbGVtZW50cyBpbiBgc3BhbmAuIExlZnQgZW1wdHkgaGVyZSBmb3JcbiAqICAgICBkb2N1bWVudGF0aW9uIGFuZCBwcm9zcGVjdGl2ZSB1c2FnZS5cbiAqIFsyXSBNYWtlIHN1cmUgb3RoZXIgc3BhY2luZ3MgZG8gbm90IGFwcGx5LlxuICovXG4uYy1zZWN0aW9uLWhlYWRpbmcge1xuICAgIG1hcmdpbi1ib3R0b206ICRzZWN0aW9uLWhlYWRpbmdzLXNwYWNpbmctYm90dG9tO1xuXG4gICAgJi5jLXNlY3Rpb24taGVhZGluZy0tY2VudGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIC5jLXNlY3Rpb24taGVhZGluZ19fdGl0bGUge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICYuYy1zZWN0aW9uLWhlYWRpbmctLXNtYWxsLXNwYWNpbmcgeyAvKiBbMV0gKi9cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNlY3Rpb24taGVhZGluZ3Mtc3BhY2luZy1ib3R0b20tc21hbGw7XG5cbiAgICAgICAgLmMtc2VjdGlvbi1oZWFkaW5nX19zdWJ0aXRsZSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2VjdGlvbi1oZWFkaW5ncy1zdWJ0aXRsZS1zcGFjaW5nLXZlcnRpY2FsLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuICAgIC5jLXNlY3Rpb24taGVhZGluZ19faWNvbiB7XG4gICAgICAgIEBpZiAkc2VjdGlvbi1oZWFkaW5ncy1pY29uLWVuYWJsZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICRmb250LXNpemU6ICAgJHNlY3Rpb24taGVhZGluZ3MtaWNvbi1zaXplLFxuICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogMVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHNlY3Rpb24taGVhZGluZ3MtaWNvbi1zcGFjaW5nO1xuICAgICAgICAgICAgY29sb3I6ICRzZWN0aW9uLWhlYWRpbmdzLWljb24tY29sb3I7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jLXNlY3Rpb24taGVhZGluZ19fdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkc2VjdGlvbi1oZWFkaW5ncy10aXRsZS1zaXplLCAkc2VjdGlvbi1oZWFkaW5nLXRpdGxlLWxpbmUtaGVpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNlY3Rpb24taGVhZGluZ3MtdGl0bGUtc3BhY2luZztcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRzZWN0aW9uLWhlYWRpbmdzLXRpdGxlLWZvbnQtd2VpZ2h0O1xuICAgICAgICBjb2xvcjogJHNlY3Rpb24taGVhZGluZ3MtdGl0bGUtdGV4dC1jb2xvcjtcblxuICAgICAgICAuYy1zZWN0aW9uLWhlYWRpbmctLXByaW1hcnkgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkc2VjdGlvbi1oZWFkaW5ncy10aXRsZS1zaXplLXByaW1hcnksICRzZWN0aW9uLWhlYWRpbmctdGl0bGUtbGluZS1oZWlnaHQtcHJpbWFyeSk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc2VjdGlvbi1oZWFkaW5ncy1zcGFjaW5nLWJvdHRvbS1zbWFsbDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkc2VjdGlvbi1oZWFkaW5ncy1zcGFjaW5nLWJvdHRvbS1zbWFsbDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRzZWN0aW9uLWhlYWRpbmdzLXByaW1hcnktYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1zZWN0aW9uLWhlYWRpbmdfX3RpdGxlLXRleHQgeyAvKiBbMV0gKi9cbiAgICB9XG5cbiAgICAuYy1zZWN0aW9uLWhlYWRpbmdfX3N1YnRpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoJHNlY3Rpb24taGVhZGluZ3Mtc3VidGl0bGUtc2l6ZSk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IC8qIFsyXSAqL1xuICAgICAgICBtYXJnaW4tdG9wOiAkc2VjdGlvbi1oZWFkaW5ncy1zdWJ0aXRsZS1zcGFjaW5nLXZlcnRpY2FsO1xuICAgICAgICBjb2xvcjogJHNlY3Rpb24taGVhZGluZ3Mtc3VidGl0bGUtY29sb3I7XG4gICAgfVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZPUk0tSEVBRElORyAoU2V0dGluZ3MpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGZvcm0taGVhZGluZy10aXRsZS1zcGFjaW5nOiAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRmb3JtLWhlYWRpbmctdGl0bGUtdGV4dC1zaXplOiAgJEZTMiAhZGVmYXVsdDtcbiRmb3JtLWhlYWRpbmctdGl0bGUtdGV4dC1jb2xvcjogJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcblxuJGZvcm0taGVhZGluZy1pY29uLXNpemU6ICAgICAgICBpY29uLXNpemUoc21hbGwpICFkZWZhdWx0O1xuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZPUk0tSEVBRElOR1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRmb3JtLWhlYWRpbmctc3BhY2luZzogICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRmb3JtLWhlYWRpbmctaWNvbi1lbmFibGVkOiAgICAgICB0cnVlICFkZWZhdWx0OyAvLyBPcHRpb25hbGx5IGhpZGUgaWNvbiBpZiBuZWVkZWQuXG4kZm9ybS1oZWFkaW5nLWljb24tdGl0bGUtc3BhY2luZzogJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJGZvcm0taGVhZGluZy1pY29uLXNpemU6ICAgICAgICAgIGljb24tc2l6ZShtZWRpdW0pICFkZWZhdWx0O1xuJGZvcm0taGVhZGluZy10aXRsZS1zcGFjaW5nOiAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiRmb3JtLWhlYWRpbmctdGl0bGUtZm9udC13ZWlnaHQ6ICAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQgIWRlZmF1bHQ7XG4kZm9ybS1oZWFkaW5nLXRpdGxlLXRleHQtY29sb3I6ICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJGZvcm0taGVhZGluZy10aXRsZS10ZXh0LXNpemU6ICAgICRGUzMgIWRlZmF1bHQ7XG4kZm9ybS1oZWFkaW5nLXRleHQtY29sb3I6ICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcbiRmb3JtLWhlYWRpbmctdGV4dC1zaXplOiAgICAgICAgICAkRlMwICFkZWZhdWx0O1xuJGZvcm0taGVhZGluZy10ZXh0LWZvbnQtd2VpZ2h0OiAgIG51bGwgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIFJlc2V0IG1hcmdpbiBib3R0b20gZm9yIHRleHQgYW5kIG1hbmFnZSBpdCBvdmVyXG4gKiAgICAgYCRmb3JtLWhlYWRpbmdzLXNwYWNpbmdgIG9uIGAuYy1mb3JtLWhlYWRpbmdgLlxuICogWzJdIE1ha2Ugc3VyZSB0aGF0IGFuIChvcHRpb25hbCkgaWNvbiBpcyBjZW50ZXJlZCB2ZXJ0aWNhbGx5LlxuICogWzNdIE5lc3RpbmcgcmVxdWlyZWQgdG8gb3ZlcnJ1bGUgYC5jLWljb25gIHNlbGVjdG9yLlxuICogWzRdIFdyYXAgdGV4dCBhbmQgcG9zc2libGUgaW5saW5lIGVsZW1lbnRzIGluIGA8c3Bhbj5gIGJlY2F1c2Ugb2YgcGFyZW50J3NcbiAqICAgICBmbGV4IHNldHRpbmcuIExlZnQgZW1wdHkgaGVyZSBmb3IgZG9jdW1lbnRhdGlvbiBhbmQgcHJvc3BlY3RpdmUgdXNhZ2UuXG4gKiBbNV0gSGlkZSBpY29uIGlmIGRpc2FibGVkLlxuICogWzZdIEFkZCBib3R0b20gc3BhY2luZyB0byB0aXRsZSBvbmx5IGlmIHRoZXJlIGlzIG5vIGFkZGl0aW9uYWwgc2libGluZyBlbGVtZW50LlxuICovXG4uYy1mb3JtLWhlYWRpbmcge1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLWhlYWRpbmctc3BhY2luZztcbn1cblxuICAgIC5jLWZvcm0taGVhZGluZ19fdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkZm9ybS1oZWFkaW5nLXRpdGxlLXRleHQtc2l6ZSk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IC8qIFsyXSAqL1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiBbMl0gKi9cbiAgICAgICAgZm9udC13ZWlnaHQ6ICRmb3JtLWhlYWRpbmctdGl0bGUtZm9udC13ZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkZm9ybS1oZWFkaW5nLXRpdGxlLXRleHQtY29sb3I7XG5cbiAgICAgICAgJjpub3QoOm9ubHktY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLWhlYWRpbmctdGl0bGUtc3BhY2luZzsgLyogWzZdICovXG4gICAgICAgIH1cblxuICAgICAgICAuYy1mb3JtLWhlYWRpbmdfX2ljb24geyAvKiBbM10gKi9cblxuICAgICAgICAgICAgQGlmICgkZm9ybS1oZWFkaW5nLWljb24tZW5hYmxlZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGZvcm0taGVhZGluZy1pY29uLXRpdGxlLXNwYWNpbmc7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9ybS1oZWFkaW5nLWljb24tc2l6ZTtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IC8qIFs1XSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWZvcm0taGVhZGluZ19fdGV4dCB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCRmb3JtLWhlYWRpbmctdGV4dC1zaXplKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IC8qIFsxXSAqL1xuICAgICAgICBmb250LXdlaWdodDogJGZvcm0taGVhZGluZy10ZXh0LWZvbnQtd2VpZ2h0O1xuICAgICAgICBjb2xvcjogJGZvcm0taGVhZGluZy10ZXh0LWNvbG9yO1xuICAgIH1cblxuICAgIC5jLWZvcm0taGVhZGluZ19fdGl0bGUtdGV4dCB7IC8qIFs0XSAqL1xuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNGT1JNLUZJRUxEXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQHVzZSBcInNhc3M6bWF0aFwiIGFzICo7XG5cbiRmb3JtLWZpZWxkLWxhYmVsLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1MQUJFTC1DT0xPUiAhZGVmYXVsdDtcbiRmb3JtLWZpZWxkLWxhYmVsLWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1MQUJFTC1DT0xPUi1IT1ZFUiAhZGVmYXVsdDtcbiRmb3JtLWZpZWxkLWxhYmVsLWNvbG9yLXN1Y2Nlc3M6ICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1MQUJFTC1DT0xPUi1TVUNDRVNTICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtbGFiZWwtY29sb3Itc3VjY2Vzcy1ob3ZlcjogICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtbGFiZWwtY29sb3ItYWN0aXZlOiAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUxBQkVMLUNPTE9SLUFDVElWRSAhZGVmYXVsdDtcbiRmb3JtLWZpZWxkLWxhYmVsLWNvbG9yLWZvY3VzOiAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1MQUJFTC1DT0xPUi1GT0NVUyAhZGVmYXVsdDtcbiRmb3JtLWZpZWxkLWxhYmVsLWNvbG9yLWVycm9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1MQUJFTC1DT0xPUi1FUlJPUiAhZGVmYXVsdDtcbiRmb3JtLWZpZWxkLWxhYmVsLWNvbG9yLWVycm9yLWhvdmVyOiAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRmb3JtLWZpZWxkLWxhYmVsLWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1MQUJFTC1DT0xPUi1ESVNBQkxFRCAhZGVmYXVsdDtcbiRmb3JtLWZpZWxkLWxhYmVsLWNvbG9yLXJlYWRvbmx5OiAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1MQUJFTC1DT0xPUi1SRUFET05MWSAhZGVmYXVsdDtcbiRmb3JtLWZpZWxkLWxhYmVsLWNvbG9yLWhpbnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvcm0tZmllbGQtbGFiZWwtY29sb3IgIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1sYWJlbC1jb2xvci1oaW50LWxpbms6ICAgICAgICAgICAgICAgICAgICAgICRsaW5rLWNvbG9yICFkZWZhdWx0OyAvLyBAVE9ETzogY3Jvc3MtbW9kdWxlIHJlZmVyZW5jZVxuXG4vLyBFbmFibGUvZGlzYWJsZSBmbG9hdGluZyBsYWJlbHMuXG4kZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmctcmVzZXQtdHJhbnNmb3JtLW5vLWZsb2F0aW5nOiBmYWxzZSAhZGVmYXVsdDtcblxuJGZvcm0tZmllbGQtbGFiZWwtc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1sYWJlbC1zcGFjaW5nLWlubGluZTogICAgICAgICAgICAgICAgICAgICAgICRmb3JtLWZpZWxkLWxhYmVsLXNwYWNpbmcgIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1sYWJlbC1zcGFjaW5nLWlubGluZS1ob3Jpem9udGFsOiAgICAgICAgICAgICRmb3JtLWZpZWxkLWxhYmVsLXNwYWNpbmctaW5saW5lICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtbGFiZWwtc3BhY2luZy1pbmxpbmUtdmVydGljYWw6ICAgICAgICAgICAgICAkZm9ybS1maWVsZC1sYWJlbC1zcGFjaW5nLWlubGluZSAhZGVmYXVsdDtcblxuJGZvcm0tZmllbGQtbGFiZWwtc3BhY2luZy10ZXh0YXJlYTogICAgICAgICAgICAgICAgICAgICAkZm9ybS1maWVsZC1sYWJlbC1zcGFjaW5nICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtbGFiZWwtc3BhY2luZy1oaW50OiAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1sYWJlbC1zcGFjaW5nLWhpbnQtZXJyb3I6ICAgICAgICAgICAgICAgICAgICgkZm9ybS1maWVsZC1sYWJlbC1zcGFjaW5nIC0gJEdMT0JBTC1TUEFDSU5HLVVOSVQpICFkZWZhdWx0OyAvLyBAVE9ETzogcmVtb3ZlIGxhYmVsLXNwYWNpbmcgZGVwZW5kZW5jeVxuJGZvcm0tZmllbGQtbGFiZWwtdGV4dC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUxBQkVMLVNJWkUgIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1sYWJlbC1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgIG5vbmUgIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1sYWJlbC1saW5lLWhlaWdodC1oaW50OiAgICAgICAgICAgICAgICAgICAgIG5vbmUgIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1sYWJlbC1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtTEFCRUwtRk9OVC1XRUlHSFQgIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1sYWJlbC1mb250LXdlaWdodC1oaW50OiAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbi8vIENhbGN1bGF0ZSB0YXJnZXQgc2l6ZSB0byBoYXZlIHRoZSBsYWJlbCB0aGUgc2FtZSBzaXplIGFzIHRoZSBpbnB1dCB3aGVuIG5vdCBmbG9hdGVkLlxuJGZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmctc2NhbGUtaW46ICAgICAgICAgICAgICAgICAgICBkaXYobWFwLWdldCgkR0xPQkFMLUlOUFVULUZPTlQtU0laRSwgbnVsbCksIG1hcC1nZXQoJEdMT0JBTC1JTlBVVC1MQUJFTC1TSVpFLCBudWxsKSkgIWRlZmF1bHQ7XG4vLyBTZXQgcG9zaXRpb24gb2YgZmxvYXRpbmcgbGFiZWxzLlxuJGZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmctcG9zaXRpb24tYm9yZGVyLW11bHRpcGxpZXI6ICBpZigkR0xPQkFMLUlOUFVULUJPUkRFUi1CT1RUT00tT05MWSwgMSwgMikgIWRlZmF1bHQ7XG5cbi8vIDxpbnB1dC1oZWlnaHQ+IC0gPGlucHV0LWJvcmRlcj4gLSA8bGFiZWwtc3BhY2luZz5cbiRmb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nLXBvc2l0aW9uLWluOiAgICAgICAgICAgICAgICAgKCRHTE9CQUwtSU5QVVQtSEVJR0hUIC0gKCRHTE9CQUwtSU5QVVQtQk9SREVSLVdJRFRIICogJGZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmctcG9zaXRpb24tYm9yZGVyLW11bHRpcGxpZXIpIC0gJGZvcm0tZmllbGQtbGFiZWwtc3BhY2luZykgIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZy1wb3NpdGlvbi1vdXQ6ICAgICAgICAgICAgICAgIC0oJGZvcm0tZmllbGQtbGFiZWwtc3BhY2luZykgIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZy10cmFuc2xhdGUtb3V0OiAgICAgICAgICAgICAgICgwLCAoJGZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmctcG9zaXRpb24tb3V0KSwgMCkgIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZy10cmFuc2xhdGUtaW46ICAgICAgICAgICAgICAgICgkR0xPQkFMLUlOUFVULVBBRERJTkctSE9SSVpPTlRBTCwgJGZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmctcG9zaXRpb24taW4sIDApICFkZWZhdWx0O1xuXG4vLyA8aW5wdXQtYm9yZGVyPiArIDxwYWRkaW5nLXZlcnRpY2FsPiArIDx0ZXh0LWhlaWdodD5cbiRmb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nLXBvc2l0aW9uLW91dC10ZXh0YXJlYTogICAgICAgLSgkZm9ybS1maWVsZC1sYWJlbC1zcGFjaW5nLXRleHRhcmVhKSAhZGVmYXVsdDtcbiRmb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nLXBvc2l0aW9uLWluLXRleHRhcmVhOiAgICAgICAgKCRHTE9CQUwtSU5QVVQtQk9SREVSLVdJRFRIICsgJEdMT0JBTC1JTlBVVC1URVhUQVJFQS1QQURESU5HLVZFUlRJQ0FMICsgJEdMT0JBTC1JTlBVVC1URVhUQVJFQS1MSU5FLUhFSUdIVCkgIWRlZmF1bHQ7XG5cbiRmb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nLXRyYW5zbGF0ZS1vdXQtdGV4dGFyZWE6ICAgICAgKDAsICRmb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nLXBvc2l0aW9uLW91dC10ZXh0YXJlYSwgMCkgIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZy10cmFuc2xhdGUtaW4tdGV4dGFyZWE6ICAgICAgICgkR0xPQkFMLUlOUFVULVRFWFRBUkVBLVBBRERJTkctSE9SSVpPTlRBTCwgJGZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmctcG9zaXRpb24taW4tdGV4dGFyZWEsIDApICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSAgU2V0cyBgdHJhbnNmb3JtLW9yaWdpbmAgdG8gYm90dG9tL2xlZnQgZm9yIGFsbCBpbnB1dHMuXG4gKiAgICAgIFRoaXMgYWxzbyBmaXhlcyB0aGUgYmx1cnJ5IHRleHQgaXNzdWUgd2hlbiBzY2FsZSBpcyB1c2VkLlxuICogICAgICBTZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjkwMzcxNzYvcHJldmVudGluZy1ibHVycnktcmVuZGVyaW5nLXdpdGgtdHJhbnNmb3JtLXNjYWxlLzI5MDM3ODAzXG4gKiBbMl0gIFdlIGhhdmUgdG8gc2NhbGUgdXAgdGhlIGxhYmVsIHdoZW4gZmxvYXRlZCBpbiBhbmQgbm90IHZpY2UgdmVyc2EuXG4gKiAgICAgIE90aGVyd2lzZSwgdGhlIGJveCBvZiB0aGUgZmxvYXRlZCBvdXQgbGFiZWwgd291bGQgYmUgbGFyZ2VyIHRoYW4gdGhlXG4gKiAgICAgIGNvbnRlbnQgaXRzZWxmLiBUaGlzIGNhdXNlcyBlLmcuIGFuIHVud2FudGVkIHNwYWNpbmdzIGJldHdlZW4gdGhlXG4gKiAgICAgIGNvbnRlbnQgb2YgdGhlIGxhYmVsIGFuZCBzaWJsaW5ncyBsaWtlIGluZm8gaWNvbnMuXG4gKiBbM10gIFNpbmNlIHRoZSB0ZXh0IGlzIHNjYWxlZCB1cCB1c2luZyB0cmFuc2Zvcm0sIHJlZHVjZSB0aGUgbWF4LXdpZHRoXG4gKiAgICAgIG9mIHRoZSBsYWJlbCBhY2NvcmRpbmdseS4gSW1wb3J0YW50IGZvciBsYWJlbHMgdGhhdCBicmVhayBpbnRvIG11bHRpcGxlXG4gKiAgICAgIGxpbmVzLlxuICogWzRdICBDYWxjdWxhdGUgaG9yaXpvbnRhbCBhbmQgdmVydGljYWwgcG9zaXRpb24gb2YgZmxvYXRpbmcgbGFiZWxzIGluc2lkZSB0ZXh0YXJlYS5cbiAqIFs1XSAgUHJldmVudCBhbGwgYHBvaW50ZXItZXZlbnRzYCBpbiBvcmRlciB0byBiZSBhYmxlIHRvIHNlbGVjdFxuICogICAgICB0aGUgdW5kZXJuZWF0aCBpbnB1dCBlbGVtZW50IHdoZW4gY2xpY2tpbmcgb24gdGhlIGxhYmVsLlxuICogWzZdICBBbGxvdyBhbGwgYHBvaW50ZXItZXZlbnRzYCBvbiB0aGUgbGFiZWwgd2hlbiBpdHMgcGFyZW50XG4gKiAgICAgIGAuYy1mb3JtLWZpZWxkYCBlbGVtZW50IGlzIGFjdGl2ZSBvciBoYXMgZm9jdXMuXG4gKiBbN10gIEFwcGx5IHRoZSBzdHlsZXMgb2YgdGhlIGlucHV0IHN0YXRlcyB0byB0aGUgYC5jLWZvcm0tZmllbGRgIGVsZW1lbnQuXG4gKiAgICAgIFdlIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHN0eWxlcyB2aWEgYCFpbXBvcnRhbnRgIHRvIGF2b2lkIHBvdGVudGlhbCBjb25mbGljdHMuXG4gKiBbOF0gIElmIGEgaGludCBpcyBkaXNwbGF5ZWQgdG9nZXRoZXIgd2l0aCBhbiBlcnJvciBtZXNzYWdlLFxuICogICAgICBzdWJ0cmFjdCB0aGUgbWFyZ2luIGJvdHRvbSBmcm9tIHRoZSBlcnJvciBtZXNzYWdlIHRvIGRlY3JlYXNlIHRoZSBkaXN0YW5jZVxuICogICAgICBiZXR3ZWVuIGhpbnQgYW5kIGVycm9yIG1lc3NhZ2UuXG4gKiBbOV0gIExpbWl0IHdpZHRoIHRvIGl0cyBjb250ZW50LlxuICogICAgICBVc2VmdWwgd2hlbiBhIGxpbmsgaXMgdXNlZCBhbmQgb25seSB0aGUgdGV4dCBzaG91bGQgYmUgY2xpY2thYmxlLlxuICogWzEwXSBTZXQgYSBkaWZmZXJlbnQgc3BhY2luZyBmb3IgdGhlIGxhYmVsLCB3aGljaCBpcyBuZWVkZWQgaW4gc29tZSBjYXNlcyxcbiAqICAgICAgZXNwZWNpYWxseSBpbiBjb21iaW5hdGlvbiB3aXRoIGEgdGV4dGFyZWEuXG4gKiBbMTFdIERpc2FibGUgdHJhbnNmb3JtIHNldHRpbmdzIHNvIHRoYXQgdGhlIGxhYmVsIGhhcyB0aGUgY29ycmVjdCBwb3NpdGlvbi5cbiAqIFsxMl0gUmVtb3ZlIHNwYWNpbmcgZm9yIGZsb2F0aW5nIGxhYmVscy5cbiAqIFsxM10gSGFuZGxlIHNwYWNpbmcgdmlhIHRyYW5zZm9ybS5cbiAqIFsxNF0gRW5zdXJlIHJlYWQtb25seSBsYWJlbHMgY2FuIG5vdCBiZSBpbnRlcmFjdGVkIHdpdGggYW5kIG5vdCByZWx5IG9uXG4gKiAgICAgIHNwZWNpZmljaXR5LlxuICogWzE1XSBSZW1vdmUgdW53YW50ZWQgc3BhY2luZyB0aGF0IG1pZ2h0IGJlIGFwcGxpZWQgYnkgZGVmYXVsdFxuICogICAgICBkZXBlbmRpbmcgb24gdXNlZCBlbGVtZW50LlxuICogWzE2XSBJbmRlbnQgRm9ybSBGaWVsZCBFeHRyYSBpZiBhIENTUyBjdXN0b20gcHJvcGVydHkgaXMgc2V0XG4gKiAgICAgIChieSByYWRpbyBidXR0b24gb3IgY2hlY2tib3gpXG4qL1xuLmMtZm9ybS1maWVsZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgJi5jLWZvcm0tZmllbGQtLWlubGluZSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAVE9ETzpcbiAgICAgICAgICogY2hlY2sgaWYgdmVydGljYWwgaXMgc3VmZmljaWVudFxuICAgICAgICAgKiBmYWxsYmFja3M6IG5vbi1nYXBcbiAgICAgICAgICovXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgICAgICByb3ctZ2FwOiAkZm9ybS1maWVsZC1sYWJlbC1zcGFjaW5nLWlubGluZS12ZXJ0aWNhbDtcbiAgICAgICAgY29sdW1uLWdhcDogJGZvcm0tZmllbGQtbGFiZWwtc3BhY2luZy1pbmxpbmUtaG9yaXpvbnRhbDtcblxuICAgICAgICAuYy1mb3JtLWZpZWxkX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgIEBpZiAoJGZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7IC8qIFsxMV0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLmMtZm9ybS1maWVsZF9fYm94IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJi5jLWZvcm0tZmllbGQtLXRleHRhcmVhIHsgLyogWzEwXSAqL1xuXG4gICAgICAgIC5jLWZvcm0tZmllbGRfX2xhYmVsIHtcblxuICAgICAgICAgICAgQGlmIG5vdCAoJGZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1maWVsZC1sYWJlbC1zcGFjaW5nLXRleHRhcmVhO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICYuYy1mb3JtLWZpZWxkLS1zdGF0aWMge1xuXG4gICAgICAgIC5jLWZvcm0tZmllbGRfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLWZpZWxkLWxhYmVsLXNwYWNpbmc7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICY6Zm9jdXMtd2l0aGluIHtcblxuICAgICAgICAuYy1mb3JtLWZpZWxkX19sYWJlbCB7XG4gICAgICAgICAgICBjb2xvcjogJGZvcm0tZmllbGQtbGFiZWwtY29sb3ItZm9jdXM7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICYuaXMtZXJyb3Ige1xuXG4gICAgICAgIC5jLWZvcm0tZmllbGRfX2hpbnQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJGZvcm0tZmllbGQtbGFiZWwtc3BhY2luZy1oaW50LWVycm9yOyAvKiBbOF0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJi5pcy1yZWFkb25seSB7XG5cbiAgICAgICAgLmMtZm9ybS1maWVsZF9fbGFiZWwge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGltcG9ydGFudChub25lLCB0cnVlKTsgLyogWzE0XSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuICAgIC5jLWZvcm0tZmllbGRfX2hpbnQge1xuICAgICAgICBAaWYgKHR5cGUtb2YoJGZvcm0tZmllbGQtbGFiZWwtdGV4dC1zaXplKSA9PSBcIm1hcFwiKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgICRmb3JtLWZpZWxkLWxhYmVsLXRleHQtc2l6ZSxcbiAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICRmb3JtLWZpZWxkLWxhYmVsLWxpbmUtaGVpZ2h0LWhpbnQsXG4gICAgICAgICAgICApO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIC8vIFVzZSBub24tcmVzcG9uc2l2ZSBmb250LXNpemUgaWYgb3B0ZWQtb3V0IChieSBub3QgdXNpbmcgYSBtYXAuXG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkZm9ybS1maWVsZC1sYWJlbC10ZXh0LXNpemUsXG4gICAgICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAkZm9ybS1maWVsZC1sYWJlbC1saW5lLWhlaWdodC1oaW50LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7IC8qIFs5XSAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjYWxlLXVubGltaXRlZC9kZWNsYXJhdGlvbi1zdHJpY3QtdmFsdWUgKi9cbiAgICAgICAgbWFyZ2luLXRvcDogJGZvcm0tZmllbGQtbGFiZWwtc3BhY2luZy1oaW50O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbMTVdICovXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZm9ybS1maWVsZC1sYWJlbC1mb250LXdlaWdodC1oaW50O1xuICAgICAgICBjb2xvcjogJGZvcm0tZmllbGQtbGFiZWwtY29sb3ItaGludDtcbiAgICB9XG5cbiAgICBhIHtcblxuICAgICAgICAmLmMtZm9ybS1maWVsZF9faGludCxcbiAgICAgICAgLmMtZm9ybS1maWVsZF9faGludCAmIHtcbiAgICAgICAgICAgIGNvbG9yOiAkZm9ybS1maWVsZC1sYWJlbC1jb2xvci1oaW50LWxpbms7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWZvcm0tZmllbGRfX2xhYmVsIHtcbiAgICAgICAgQGlmICh0eXBlLW9mKCRmb3JtLWZpZWxkLWxhYmVsLXRleHQtc2l6ZSkgPT0gXCJtYXBcIikge1xuICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkZm9ybS1maWVsZC1sYWJlbC10ZXh0LXNpemUsXG4gICAgICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAkZm9ybS1maWVsZC1sYWJlbC1saW5lLWhlaWdodCxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgLy8gVXNlIG5vbi1yZXNwb25zaXZlIGZvbnQtc2l6ZSBpZiBvcHRlZC1vdXQgKGJ5IG5vdCB1c2luZyBhIG1hcC5cbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgICRmb3JtLWZpZWxkLWxhYmVsLXRleHQtc2l6ZSxcbiAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICRmb3JtLWZpZWxkLWxhYmVsLWxpbmUtaGVpZ2h0LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXdlaWdodDogJGZvcm0tZmllbGQtbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGNvbG9yOiAkZm9ybS1maWVsZC1sYWJlbC1jb2xvcjtcblxuICAgICAgICBAaWYgKCRmb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCk7XG4gICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzEzXSAqL1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgkZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZy10cmFuc2xhdGUtb3V0KSBzY2FsZSgxKTsgIC8qIFsyXSAqL1xuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtY2xhc3MsIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuICAgICAgICAgICAgZm9ybS5pcy1qcy1vbiAuYy1mb3JtLWZpZWxkOm5vdCguYy1mb3JtLWZpZWxkLS1uby1mbG9hdGluZywgLmMtZm9ybS1maWVsZC0taW5saW5lKSAmIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IGRpdigxMDAlLCAkZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZy1zY2FsZS1pbik7IC8qIFszXSAqL1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoJGZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmctdHJhbnNsYXRlLWluKSBzY2FsZSgkZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZy1zY2FsZS1pbik7IC8qIFsyXSAqL1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBsZWZ0OyAvKiBbMV0gKi9cbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogWzVdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvcm0uaXMtanMtb24gLmMtZm9ybS1maWVsZC0tdGV4dGFyZWE6bm90KC5jLWZvcm0tZmllbGQtLW5vLWZsb2F0aW5nLCAuYy1mb3JtLWZpZWxkLS1pbmxpbmUpICYgeyAvKiBbNF0gKi9cbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCRmb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nLXRyYW5zbGF0ZS1pbi10ZXh0YXJlYSkgc2NhbGUoJGZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmctc2NhbGUtaW4pOyAvKiBbMl0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQFRPRE86IHJlZmFjdG9yIHRvIGFsbG93IGRpZmZlcmVudCBzdHlsZXMgKGUuZy4gY29sb3IpIGZvciBhY3RpdmUgYW5kIGZvY3VzXG4gICAgICAgICAgICBmb3JtLmlzLWpzLW9uIC5jLWZvcm0tZmllbGQ6bm90KC5jLWZvcm0tZmllbGQtLW5vLWZsb2F0aW5nLCAuYy1mb3JtLWZpZWxkLS1pbmxpbmUpOmZvY3VzLXdpdGhpbiAmLFxuICAgICAgICAgICAgZm9ybS5pcy1qcy1vbiAuYy1mb3JtLWZpZWxkOm5vdCguYy1mb3JtLWZpZWxkLS1uby1mbG9hdGluZywgLmMtZm9ybS1maWVsZC0taW5saW5lKS5pcy1hY3RpdmUgJiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBkaXYoMTAwJSwgJGZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmctc2NhbGUtaW4pOyAvKiBbM10gKi9cbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCRmb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nLXRyYW5zbGF0ZS1vdXQpIHNjYWxlKDEpOyAvKiBbMl0gKi9cbiAgICAgICAgICAgICAgICBjb2xvcjogJGZvcm0tZmllbGQtbGFiZWwtY29sb3ItYWN0aXZlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7IC8qIFs2XSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3JtLmlzLWpzLW9uIC5jLWZvcm0tZmllbGQuYy1mb3JtLWZpZWxkLS1uby1mbG9hdGluZyAmLFxuICAgICAgICAgICAgZm9ybS5pcy1qcy1vbiAuYy1mb3JtLWZpZWxkOm5vdCguYy1mb3JtLWZpZWxkLS1uby1mbG9hdGluZywgLmMtZm9ybS1maWVsZC0taW5saW5lKS5pcy1hY3RpdmUgJiB7XG5cbiAgICAgICAgICAgICAgICBAaWYgKCRmb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nLXJlc2V0LXRyYW5zZm9ybS1uby1mbG9hdGluZykge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7IC8qIFsxMV0gKi9cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9ybS5pcy1qcy1vbiAuYy1mb3JtLWZpZWxkLmMtZm9ybS1maWVsZC0tc3RhdGljICYge1xuXG4gICAgICAgICAgICAgICAgQGlmICgkZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZykge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IGltcG9ydGFudChub25lLCB0cnVlKTsgLyogWzExXSAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3JtLmlzLWpzLW9uIC5jLWZvcm0tZmllbGQtLXRleHRhcmVhOm5vdCguYy1mb3JtLWZpZWxkLS1uby1mbG9hdGluZywgLmMtZm9ybS1maWVsZC0taW5saW5lKTpmb2N1cy13aXRoaW4gJixcbiAgICAgICAgICAgIGZvcm0uaXMtanMtb24gLmMtZm9ybS1maWVsZC0tdGV4dGFyZWE6bm90KC5jLWZvcm0tZmllbGQtLW5vLWZsb2F0aW5nLCAuYy1mb3JtLWZpZWxkLS1pbmxpbmUpLmlzLWFjdGl2ZSAmIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCRmb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nLXRyYW5zbGF0ZS1vdXQtdGV4dGFyZWEpIHNjYWxlKDEpOyAvKiBbMl0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9ybS5pcy1qcy1vbiAuYy1mb3JtLWZpZWxkOmhvdmVyOm5vdCg6Zm9jdXMtd2l0aGluLCAuaXMtZGlzYWJsZWQpICYge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBpbXBvcnRhbnQoJGZvcm0tZmllbGQtbGFiZWwtY29sb3ItaG92ZXIsIHRydWUpOyAvKiBbN10gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9ybS5pcy1qcy1vbiAuYy1mb3JtLWZpZWxkOm5vdCg6Zm9jdXMtd2l0aGluLCA6aG92ZXIpLmlzLXN1Y2Nlc3MgJiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGltcG9ydGFudCgkZm9ybS1maWVsZC1sYWJlbC1jb2xvci1zdWNjZXNzLCB0cnVlKTsgLyogWzddICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvcm0uaXMtanMtb24gLmMtZm9ybS1maWVsZDpub3QoOmZvY3VzLXdpdGhpbikuaXMtc3VjY2Vzczpob3ZlciAmIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogaW1wb3J0YW50KCRmb3JtLWZpZWxkLWxhYmVsLWNvbG9yLXN1Y2Nlc3MtaG92ZXIsIHRydWUpOyAvKiBbN10gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9ybS5pcy1qcy1vbiAuYy1mb3JtLWZpZWxkOm5vdCg6Zm9jdXMtd2l0aGluLCA6aG92ZXIpLmlzLWVycm9yICYge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBpbXBvcnRhbnQoJGZvcm0tZmllbGQtbGFiZWwtY29sb3ItZXJyb3IsIHRydWUpOyAvKiBbN10gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9ybS5pcy1qcy1vbiAuYy1mb3JtLWZpZWxkOm5vdCg6Zm9jdXMtd2l0aGluKS5pcy1lcnJvcjpob3ZlciAmIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogaW1wb3J0YW50KCRmb3JtLWZpZWxkLWxhYmVsLWNvbG9yLWVycm9yLWhvdmVyLCB0cnVlKTsgLyogWzddICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvcm0uaXMtanMtb24gLmMtZm9ybS1maWVsZC5pcy1kaXNhYmxlZCAmIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogaW1wb3J0YW50KCRmb3JtLWZpZWxkLWxhYmVsLWNvbG9yLWRpc2FibGVkLCB0cnVlKTsgLyogWzddICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvcm0uaXMtanMtb24gLmMtZm9ybS1maWVsZC5pcy1yZWFkb25seSAmIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogaW1wb3J0YW50KCRmb3JtLWZpZWxkLWxhYmVsLWNvbG9yLXJlYWRvbmx5LCB0cnVlKTsgLyogWzddICovXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1maWVsZC1sYWJlbC1zcGFjaW5nOyAvKiBbMTJdICovXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWZvcm0tZmllbGRfX2V4dHJhIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1mb3JtLWZpZWxkLWV4dHJhLWluZGVudCwgMCk7IC8qIFsxNl0gKi9cblxuICAgICAgICAqOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgfVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0ZPUk0tRklFTEQgKFNldHRpbmdzKVxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkB1c2UgXCJzYXNzOm1hdGhcIiBhcyAqO1xuXG4kZm9ybS1maWVsZC1sYWJlbC10ZXh0LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUxBQkVMLVNJWkUgIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1sYWJlbC1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAxICFkZWZhdWx0O1xuXG4kZm9ybS1maWVsZC1sYWJlbC1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUxBQkVMLVNQQUNJTkcgIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1sYWJlbC1zcGFjaW5nLWhpbnQ6ICAgICAgICAgICAgICAgICAgICAwICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtbGFiZWwtc3BhY2luZy10ZXh0YXJlYTogICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcbiRmb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nLXNjYWxlLWluOiAgICAgICAgICAgICAgIGRpdihtYXAtZ2V0KCRHTE9CQUwtSU5QVVQtRk9OVC1TSVpFLCBudWxsKSwgJEdMT0JBTC1JTlBVVC1MQUJFTC1TSVpFKSAhZGVmYXVsdDtcblxuJGZvcm0tZmllbGQtbGFiZWwtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1MQUJFTC1GT05ULVdFSUdIVCAhZGVmYXVsdDtcbiRmb3JtLWZpZWxkLWxhYmVsLWZvbnQtd2VpZ2h0LWhpbnQ6ICAgICAgICAgICAgICAgICRmb3JtLWZpZWxkLWxhYmVsLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtbGFiZWwtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1QQURESU5HLVZFUlRJQ0FMICFkZWZhdWx0O1xuXG4kZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZzogICAgICAgICAgICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtbGFiZWwtY29sb3Itc3VjY2VzczogICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7IC8vIG9wdC1vdXQsIGRvZXMgbm90IGNyZWF0ZSBkZWNsYXJhdGlvbiB3aXRoIGltcG9ydGFudCgpIG1peGluXG4kZm9ybS1maWVsZC1sYWJlbC1jb2xvci1zdWNjZXNzLWhvdmVyOiAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUxBQkVMLUNPTE9SLUFDVElWRSAhZGVmYXVsdDtcbiRmb3JtLWZpZWxkLWxhYmVsLWNvbG9yLWVycm9yOiAgICAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtbGFiZWwtY29sb3ItZXJyb3ItaG92ZXI6ICAgICAgICAgICAgICAgJENPTE9SLUFMRVJUICFkZWZhdWx0O1xuXG5cbi8vIFBsYWNlIGxhYmVsIGluIGNlbnRlciBvZiBpbnB1dC5cbiRmb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nLXBvc2l0aW9uLWluOiAgICAgICAgICAgIGNhbGMoMTAwJSArICN7JGZvcm0tZmllbGQtbGFiZWwtdGV4dC1zaXplfSkgIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZy1wb3NpdGlvbi1vdXQ6ICAgICAgICAgICAxMDAlICFkZWZhdWx0O1xuXG4kZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZy10cmFuc2xhdGUtb3V0OiAgICAgICAgICAoJEdMT0JBTC1JTlBVVC1QQURESU5HLUhPUklaT05UQUwsICRmb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nLXBvc2l0aW9uLW91dCwgMCkgIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZy10cmFuc2xhdGUtaW46ICAgICAgICAgICAoJEdMT0JBTC1JTlBVVC1QQURESU5HLUhPUklaT05UQUwsICRmb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nLXBvc2l0aW9uLWluLCAwKSAhZGVmYXVsdDtcblxuJGZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmctdHJhbnNsYXRlLWluLXRleHRhcmVhOiAgJGZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmctdHJhbnNsYXRlLWluICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmctdHJhbnNsYXRlLW91dC10ZXh0YXJlYTogJGZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmctdHJhbnNsYXRlLW91dCAhZGVmYXVsdDtcbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNGT1JNLUZJRUxEXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNrb2RhLWZvcm0tZmllbGQtbGFiZWwtY29sb3ItZm9jdXM6ICAgICAgICRHTE9CQUwtSU5QVVQtTEFCRUwtQ09MT1ItRk9DVVMgIWRlZmF1bHQ7XG4kc2tvZGEtZm9ybS1maWVsZC1sYWJlbC1jb2xvci1maWxsZWQ6ICAgICAgJEdMT0JBTC1JTlBVVC1MQUJFTC1DT0xPUi1BQ1RJVkUgIWRlZmF1bHQ7XG4kc2tvZGEtZm9ybS1maWVsZC1sYWJlbC1jb2xvci1lcnJvci1mb2N1czogJENPTE9SLUFMRVJUICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBTZXQgZGlmZmVyZW50IGNvbG9yIGZvciBmb2N1cyB0aGFuIGFjdGl2ZSwgd2hpY2ggaXMgY29tYmluZWQgaW4gZGVmYXVsdC5cbiAqIFsyXSBBZGp1c3QgbGFiZWwgY29sb3IgaW4gZmlsbGVkIHN0YXRlLCBmb3IgYm90aCBzdGF0aWMgYW5kIGZsb2F0aW5nIGxhYmVscy5cbiAqIFszXSBQcmV2ZW50IGxhYmVsIGZyb20gY3JlYXRpbmcgZXh0cmEgc3BhY2UgYWJvdmUgZm9ybS1maWVsZC5cbiAqL1xuLmMtZm9ybS1maWVsZF9fbGFiZWwge1xuXG4gICAgLmMtZm9ybS1maWVsZC5pcy1hY3RpdmUgJiB7XG4gICAgICAgIGNvbG9yOiAkc2tvZGEtZm9ybS1maWVsZC1sYWJlbC1jb2xvci1maWxsZWQ7IC8qIFsyXSAqL1xuICAgIH1cblxuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbiAgICBmb3JtLmlzLWpzLW9uIC5jLWZvcm0tZmllbGQ6bm90KC5jLWZvcm0tZmllbGQtLWlubGluZSk6Zm9jdXMtd2l0aGluICYge1xuICAgICAgICBjb2xvcjogJHNrb2RhLWZvcm0tZmllbGQtbGFiZWwtY29sb3ItZm9jdXM7IC8qIFsxXSAqL1xuICAgIH1cblxuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHksIHNlbGVjdG9yLW1heC1jbGFzcyAqL1xuICAgIGZvcm0uaXMtanMtb24gLmMtZm9ybS1maWVsZC5pcy1lcnJvcjpub3QoLmMtZm9ybS1maWVsZC0taW5saW5lKTpmb2N1cy13aXRoaW4gJiB7XG4gICAgICAgIGNvbG9yOiAkc2tvZGEtZm9ybS1maWVsZC1sYWJlbC1jb2xvci1lcnJvci1mb2N1cztcbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNGT1JNLVNFQ1RJT05cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AdXNlIFwic2FzczptYXRoXCIgYXMgKjtcblxuJGZvcm0tc2VjdGlvbi1iZy1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLVBBTEUgIWRlZmF1bHQ7XG4kZm9ybS1zZWN0aW9uLWJnLWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgICAgICAgICByZ2JhKCRDT0xPUi1XSElURSwgMC43NSkgIWRlZmF1bHQ7XG4kZm9ybS1zZWN0aW9uLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRmb3JtLXNlY3Rpb24tc2hhZG93OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbmUgIWRlZmF1bHQ7XG4kZm9ybS1zZWN0aW9uLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi1ib3JkZXItc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRmb3JtLXNlY3Rpb24tYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kZm9ybS1zZWN0aW9uLWJvcmRlci1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvcm0tc2VjdGlvbi1ib3JkZXItd2lkdGggJGZvcm0tc2VjdGlvbi1ib3JkZXItc3R5bGUgJGZvcm0tc2VjdGlvbi1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kZm9ybS1zZWN0aW9uLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4vLyBDYW4gYmUgZGlzYWJsZWQsIGUuZy4gaWYgYSBib3JkZXIgaXMgdXNlZCBpbnN0ZWFkIGZvciBzdGF0ZXMuXG4kZm9ybS1zZWN0aW9uLW91dGxpbmUtZW5hYmxlOiAgICAgICAgICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi1vdXRsaW5lLXdpZHRoLWZvY3VzOiAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItV0lEVEggIWRlZmF1bHQ7XG4kZm9ybS1zZWN0aW9uLW91dGxpbmUtY29sb3ItZm9jdXM6ICAgICAgICAgICAgICAgICAkQ09MT1ItSElHSExJR0hUICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi1vdXRsaW5lLXdpZHRoLWhvdmVyOiAgICAgICAgICAgICAgICAgJGZvcm0tc2VjdGlvbi1vdXRsaW5lLXdpZHRoLWZvY3VzICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi1vdXRsaW5lLWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAgICAgJGZvcm0tc2VjdGlvbi1vdXRsaW5lLWNvbG9yLWZvY3VzICFkZWZhdWx0O1xuXG4kZm9ybS1zZWN0aW9uLWRpc2FibGVkLWdyYXlzY2FsZTogICAgICAgICAgICAgICAgICAxICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi1kaXNhYmxlZC1zZWxlY3RvcjogICAgICAgICAgICAgICAgICAgJ1thcmlhLWRpc2FibGVkPVwidHJ1ZVwiXScgIWRlZmF1bHQ7XG5cbiRmb3JtLXNlY3Rpb24taWNvbi1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24tc2l6ZShzbWFsbCkgIWRlZmF1bHQ7XG4kZm9ybS1zZWN0aW9uLWljb24tc2l6ZS1icmVha3BvaW50OiAgICAgICAgICAgICAgICB4cyAhZGVmYXVsdDtcbiRmb3JtLXNlY3Rpb24taWNvbi1zaXplLW9uLWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICRmb3JtLXNlY3Rpb24taWNvbi1zaXplICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuXG4vLyBVc2Ugc2VwYXJhdGUgaWNvbnMgZm9yIGV4cGFuZGluZy9jb2xsYXBzaW5nIHdoZW4gY3VzdG9tLWljb24gaXMgc2V0IHRvIGBmYWxzZWAuXG4kZm9ybS1zZWN0aW9uLWljb24tY29sbGFwc2VkOiAgICAgICAgICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1leHBhbmQpICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi1pY29uLWV4cGFuZGVkOiAgICAgICAgICAgICAgICAgICAgICAgJGZvcm0tc2VjdGlvbi1pY29uLWNvbGxhcHNlZCAhZGVmYXVsdDtcbiRmb3JtLXNlY3Rpb24taWNvbi10cmFuc2Zvcm0tZXhwYW5kZWQ6ICAgICAgICAgICAgIHJvdGF0ZVgoLTE4MGRlZykgIWRlZmF1bHQ7XG4kZm9ybS1zZWN0aW9uLWljb24tdHJhbnNmb3JtLWNvbGxhcHNlZDogICAgICAgICAgICByb3RhdGVYKDBkZWcpICFkZWZhdWx0O1xuXG4kZm9ybS1zZWN0aW9uLWhlYWRlci1zcGFjaW5nLXRvcDogICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRmb3JtLXNlY3Rpb24taGVhZGVyLXNwYWNpbmctYm90dG9tOiAgICAgICAgICAgICAgICRmb3JtLXNlY3Rpb24taGVhZGVyLXNwYWNpbmctdG9wICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi1oZWFkZXItc3BhY2luZy1sZWZ0OiAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kZm9ybS1zZWN0aW9uLWhlYWRlci1zcGFjaW5nLXJpZ2h0OiAgICAgICAgICAgICAgICAkZm9ybS1zZWN0aW9uLWhlYWRlci1zcGFjaW5nLWxlZnQgIWRlZmF1bHQ7XG4kZm9ybS1zZWN0aW9uLWhlYWRlci1hbGlnbm1lbnQ6ICAgICAgICAgICAgICAgICAgICBjZW50ZXIgIWRlZmF1bHQ7XG4kZm9ybS1zZWN0aW9uLWhlYWRlci1jb250ZW50LXNwYWNpbmctcmlnaHQ6ICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcblxuJGZvcm0tc2VjdGlvbi10aXRsZS1tYXJnaW4tYm90dG9tOiAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcbiRmb3JtLXNlY3Rpb24tdGl0bGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICRGUzEgIWRlZmF1bHQ7XG4kZm9ybS1zZWN0aW9uLXRpdGxlLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICBpbmhlcml0ICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi10aXRsZS1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xEICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi10aXRsZS1mb250LWxldHRlci1zcGFjaW5nOiAgICAgICAgICAgaW5oZXJpdCAhZGVmYXVsdDtcbiRmb3JtLXNlY3Rpb24tdGl0bGUtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICRHTE9CQUwtTElORS1IRUlHSFQgIWRlZmF1bHQ7XG4kZm9ybS1zZWN0aW9uLXRpdGxlLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQkFTRS1URVhUICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi10aXRsZS1sZW5ndGg6ICAgICAgICAgICAgICAgICAgICAgICAgMzBlbSAhZGVmYXVsdDtcbiRmb3JtLXNlY3Rpb24tdGl0bGUtYnJlYWtwb2ludDogICAgICAgICAgICAgICAgICAgIHMgIWRlZmF1bHQ7XG4kZm9ybS1zZWN0aW9uLXRpdGxlLWxpbmstc3BhY2luZy1sZWZ0OiAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRmb3JtLXNlY3Rpb24tdGl0bGUtbGluay1taW4td2lkdGg6ICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kZm9ybS1zZWN0aW9uLXRpdGxlLWxpbmstd2hpdGUtc3BhY2U6ICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG5cbiRmb3JtLXNlY3Rpb24tc3VidGl0bGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICRmb3JtLXNlY3Rpb24tdGl0bGUtdGV4dC1jb2xvciAhZGVmYXVsdDtcbiRmb3JtLXNlY3Rpb24tc3VidGl0bGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICRGUzAgIWRlZmF1bHQ7XG4kZm9ybS1zZWN0aW9uLXN1YnRpdGxlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG4kZm9ybS1zZWN0aW9uLXN1YnRpdGxlLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAkR0xPQkFMLUxJTkUtSEVJR0hUICFkZWZhdWx0O1xuXG4kZm9ybS1zZWN0aW9uLXBhbmVsLXNwYWNpbmctdG9wOiAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRmb3JtLXNlY3Rpb24tcGFuZWwtc3BhY2luZy1ib3R0b206ICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi1wYW5lbC1zcGFjaW5nLWxlZnQ6ICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kZm9ybS1zZWN0aW9uLXBhbmVsLXNwYWNpbmctcmlnaHQ6ICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcblxuJGZvcm0tc2VjdGlvbi1hbmltYXRpb24tZHVyYXRpb246ICAgICAgICAgICAgICAgICAgMXMgIWRlZmF1bHQ7XG4kZm9ybS1zZWN0aW9uLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICAgICAgICAgICBlYXNlICFkZWZhdWx0O1xuXG4kZm9ybS1zZWN0aW9uLXRpdGxlLXN0YXRlLWV4cGFuZGVkOiAgICAgICAgICAgICAgICBcIlthcmlhLWV4cGFuZGVkPSd0cnVlJ11cIiAhZGVmYXVsdDtcbiRmb3JtLXNlY3Rpb24tdGl0bGUtc3RhdGUtY29sbGFwc2VkOiAgICAgICAgICAgICAgIFwiW2FyaWEtZXhwYW5kZWQ9J2ZhbHNlJ11cIiAhZGVmYXVsdDtcbiRmb3JtLXNlY3Rpb24tcGFuZWwtc3RhdGUtZXhwYW5kZWQ6ICAgICAgICAgICAgICAgIFwiW2FyaWEtaGlkZGVuPSdmYWxzZSddXCIgIWRlZmF1bHQ7XG5cbi8vIFZhbGlkYXRpb24gc3RhdGVzXG4kZm9ybS1zZWN0aW9uLXZhbGlkYXRpb24taWNvbi1zaXplOiAgICAgICAgICAgICAgICAkZm9ybS1zZWN0aW9uLWljb24tc2l6ZSAhZGVmYXVsdDtcbiRmb3JtLXNlY3Rpb24tdmFsaWRhdGlvbi1pY29uLXNpemUtb24tYnJlYWtwb2ludDogICRmb3JtLXNlY3Rpb24taWNvbi1zaXplLW9uLWJyZWFrcG9pbnQgIWRlZmF1bHQ7XG4kZm9ybS1zZWN0aW9uLXZhbGlkYXRpb24taWNvbi10cmFuc2Zvcm0tZXhwYW5kZWQ6ICBub25lICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi12YWxpZGF0aW9uLWljb24tdHJhbnNmb3JtLWNvbGxhcHNlZDogbm9uZSAhZGVmYXVsdDtcblxuLy8gVmFsaWRhdGlvbiBzdGF0ZTogc3VjY2Vzc1xuJGZvcm0tc2VjdGlvbi12YWxpZGF0aW9uLWJvcmRlci1zdWNjZXNzOiAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRmb3JtLXNlY3Rpb24tdmFsaWRhdGlvbi1pY29uLWNvbG9yLXN1Y2Nlc3M6ICAgICAgICRDT0xPUi1TVUNDRVNTICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi12YWxpZGF0aW9uLWljb24tZXhwYW5kZWQtc3VjY2VzczogICAgZ2V0LWljb24oc2VtYW50aWMtY2hlY2ttYXJrKSAhZGVmYXVsdDtcbiRmb3JtLXNlY3Rpb24tdmFsaWRhdGlvbi1pY29uLWNvbGxhcHNlZC1zdWNjZXNzOiAgIGdldC1pY29uKHNlbWFudGljLWNoZWNrbWFyaykgIWRlZmF1bHQ7XG5cbi8vIFZhbGlkYXRpb24gc3RhdGU6IGVycm9yXG4kZm9ybS1zZWN0aW9uLXZhbGlkYXRpb24tYm9yZGVyLWVycm9yOiAgICAgICAgICAgICAxcHggc29saWQgJENPTE9SLUFMRVJUICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi12YWxpZGF0aW9uLWljb24tY29sb3ItZXJyb3I6ICAgICAgICAgJENPTE9SLUFMRVJUICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi12YWxpZGF0aW9uLWljb24tZXhwYW5kZWQtZXJyb3I6ICAgICAgZ2V0LWljb24oc2VtYW50aWMtZXJyb3IpICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi12YWxpZGF0aW9uLWljb24tY29sbGFwc2VkLWVycm9yOiAgICAgZ2V0LWljb24oc2VtYW50aWMtZXJyb3IpICFkZWZhdWx0O1xuXG4vLyBUaGVtaW5nXG4kZm9ybS1zZWN0aW9uLXRoZW1lczogKFxuICAgIFwiYWx0ZXJuYXRpdmVcIjogKFxuICAgICAgICBcImJhY2tncm91bmQtY29sb3JcIjogJENPTE9SLVdISVRFLFxuICAgIClcbikgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIEJvcmRlciBiZWxvdyB0aGUgbGFzdCBhY2NvcmRpb24gaXRlbS5cbiAqIFsyXSBSZXNldCB2YXJpb3VzIGJyb3dzZXIgYW5kIGdlbmVyYWwgYnV0dG9uIHN0eWxlcyB0aGF0IHdvdWxkIGludGVyZmVyZVxuICogICAgIHdpdGggZm9ybSBzZWN0aW9uIGhlYWRlciBvciB0aXRsZSBzdHlsZXMuXG4gKiBbM10gTWF4IGxpbmUtbGVuZ3RoIG9mIHRpdGxlLlxuICogWzRdIFJlbW92ZSBib3R0b20gbWFyZ2luIG9mIGVpdGhlciB0aXRsZSwgc3VidGl0bGUgb3IgbGFzdCBjb250ZW50IGVsZW1lbnQuXG4gKiBbNV0gQWRkIHNwYWNpbmcgYmV0d2VlbiBzZWN0aW9ucywgZXhjZXB0IGlmIGl0IGlzIHRoZSBvbmx5L2xhc3QgaXRlbVxuICogICAgIHdpdGhpbiBpdHMgd3JhcHBlci5cbiAqIFs2XSBIaWRlIGJ1dHRvbiBsaW5rIGljb24gaWYgYnJhbmQgbmVlZHMgaXQgYmFzZWQgb24gdmFyaWFibGUgc2V0dGluZy5cbiAqIFs3XSBSZXNldCBidXR0b24gbGluayBtYXJnaW4gaWYgbm8gaWNvbiBpcyBzaG93bi4gSGlnaCBzcGVjaWZpY2l0eSBuZWVkZWRcbiAqICAgICBpbiBvcmRlciB0byBvdmVyd3JpdGUgZGVmYXVsdCBidXR0b24gc3R5bGVzLlxuICogWzhdIFByb3Blcmx5IGFsaWduIGxpbmsgYnV0dG9uIHZlcnRpY2FsbHkgd2l0aCB0aXRsZS5cbiAqIFs5XSBTcGFuIHRpdGxlIHdyYXBwZXIgdG8gZnVsbCB3aWR0aCB0byBiZSBhYmxlIHRvIHBsYWNlIHRoZSBsaW5rIGVsZW1lbnRcbiAqICAgICAgbW9yZSBmbGV4aWJsZSAoZS5nLiB0byB0aGUgcmlnaHQpLlxuICogWzEwXSBDdXQgb2ZmIHRpdGxlIGFuZCBzdWJ0aXRsZSBvbmx5IHdoZW4gc2VjdGlvbiBpcyBjb2xsYXBzZWQuXG4gKiBbMTFdIEFsaWduIGl0ZW0gdG8gdG9wIG9uIHNtYWxsIHNjcmVlbnMgdG8gcHJldmVudCB2ZXJ0aWNhbCBtb3ZlbWVudCB1cG9uXG4gKiAgICAgIG9wZW5pbmcvY2xvc2luZyB0aGUgc2VjdGlvbiB3aXRoIHRydW5jYXRlZCB0aXRsZSBhbmQgc3VidGl0bGUuXG4gKiBbMTJdIFByZXZlbnQgdW53YW50ZWQgdmVydGljYWwgbW92ZW1lbnQgd2hlbiB0cnVuY2F0aW5nIGlzIHRyaWdnZXJlZCB1cG9uXG4gKiAgICAgIG9wZW5pbmcvY2xvc2luZyB0aGUgc2VjdGlvbi5cbiAqIFsxM10gQWxpZ24gbGluayBidXR0b24gdmVydGljYWxseSB3aXRoIHRpdGxlIGJhc2VsaW5lIGFzIHRoZSBkZWZhdWx0IHNldHRpbmdcbiAqICAgICAgdmFyaWVzIGZyb20gYnJvd3NlciB0byBicm93c2VyIChlLmcuIEdvb2dsZSBDaHJvbWUpLlxuICogWzE0XSBDb2xsYXBzZS9leHBhbmQgcGFuZWwgd2l0aCBDU1Mgb25seSBieSB1dGlsaXppbmcgdGhlIGBhbmltYXRlLWhlaWdodGBcbiAqICAgICAgbWl4aW4uXG4gKiBbMTVdIENvdmVyaW5nIG92ZXJsYXkgaW4gZGlzYWJsZWQgc3RhdGUuIFRvIGFsc28gZGlzYWJsZSBhbGwgZm9ybSBmaWVsZHMgb24gYVxuICogICAgICBtYXJrdXAgbGV2ZWwsIGFkZCB0aGUgYGRpc2FibGVkYCBhdHRyaWJ1dGUgdG8gdGhlIGBmaWVsZHNldGAgZWxlbWVudC5cbiAqICAgICAgU2VlIGh0dHBzOi8vY29kZXBlbi5pby9zdGV2ZWYvcG9zdC9zaG9ydC1ub3RlLW9uLXRoZS1kaXNhYmxlZC1hdHRyaWJ1dGVcbiAqIFsxNl0gU3RhY2sgb3ZlcmxheSBhYm92ZSBzdGFja2VkIGVsZW1lbnRzIGluc2lkZSBmb3JtLXNlY3Rpb24uXG4gKiAgICAgIFVzZSBhcmJpdHJhcnkvc2NvcGVkIHZhbHVlIGFzIGl0J3Mgbm90IHJlbGV2YW50IGluIGdsb2JhbCBzdGFja2luZ1xuICogICAgICBjb250ZXh0IGFuZCB0aGVyZWZvcmUgbm90IGluIGAkWi1MQVlFUlNgLlxuICogWzE3XSBHcmF5c2NhbGUgLyBkZXNhdHVyYXRlIHZpYSBvdmVybGF5IHRvIGVtcGhhc2l6ZSB0aGUgZGlzYWJsZWQgc3RhdGUuXG4gKiAgICAgIFdvcmtzIG9ubHkgaW4gYnJvd3NlcnMgc3VwcG9ydGluZyBDU1MgZmlsdGVyLlxuICogWzE4XSBEaXNhYmxlIHZpc3VhbCBmb2N1cyBpbmRpY2F0b3IgaW4gZGlzYWJsZWQgc3RhdGUuXG4gKiBbMTldIFwiU3RhY2tcIiBoZWFkZXIgKHRyaWdnZXJzIHRvZ2dsZSkgYWJvdmUgZGlzYWJsZWQgc2VjdGlvbiBpbiBvcmRlciB0b1xuICogICAgICBhbGxvdyBleHBhbmRpbmcvY29sbGFwc2luZyBmb3JtIHNlY3Rpb24uXG4gKiAgICAgIFRoZSB2YWx1ZSBpcyBhIG1hZ2ljIG51bWJlciBhbmQgb25seSB3b3JrcyA+IDEwLlxuICogICAgICBOb3QgaW4gZ2xvYmFsIHN0YWNraW5nIGNvbnRleHQgYW5kIHRoZXJlZm9yZSBub3QgaW4gYCRaLUxBWUVSU2AuXG4gKiBbMjBdIFJlc2V0IGhlYWRpbmcgc3R5bGVzLlxuICogWzIxXSBTZXQgb3BhY2l0eSBvZiBmb3JtIGxhYmVscyB0byBgMGAgdG8gbGV0IGZsb2F0aW5nIGZvcm0gbGFiZWxzIGJsZW5kIGluLlxuICogICAgICBPdGhlcndpc2UgdGhleSB3b3VsZCBiZSB2aXNpYmxlIGR1cmluZyB0aGUgZm9ybSBzZWN0aW9uIHRyYW5zaXRpb25cbiAqICAgICAgYmVjYXVzZSBvZiB0aGVpciBhYnNvbHV0ZSBwb3NpdGlvbmluZyBpbnNpZGUgYSBncmlkIGl0ZW0gWzIzXS5cbiAqIFsyMl0gSW5jcmVhc2Ugc3BlY2lmaWNpdHksIHNvIHRoYXQgdGhlIHN0eWxlcyBkb24ndCBnZXQgb3ZlcndyaXR0ZW4gYnkgdGhlXG4gKiAgICAgIGljb24gY29tcG9uZW50IGxhdGVyIG9uLlxuICogWzIzXSBVc2UgYGdyaWQtdGVtcGxhdGUtcm93c2AgdG8gdHJhbnNpdGlvbiB0aGUgaGVpZ2h0LlxuICogICAgICBObyBtb3JlIGNob3BweSBgbWF4LWhlaWdodGAgdHJhbnNpdGlvbi4gKHNlZSBodHRwczovL3d3dy5zdGVmYW5qdWRpcy5jb20vc25pcHBldHMvaG93LXRvLWFuaW1hdGUtaGVpZ2h0LXdpdGgtY3NzLWdyaWQvKVxuICogWzI0XSBXZSBoYXZlIHRvIHNldCB0aGUgdmVydGljYWwgcGFkZGluZ3MgZm9yIGNoaWxkIGVsZW1lbnQgaW5zdGVhZCBvZiB0aGVcbiAqICAgICAgZm9ybSBzZWN0aW9uIGNvbnRlbnQgZWxlbWVudC4gT3RoZXJ3aXNlIHRoZSBjb250ZW50IHdvdWxkIG5vdCBjb21wbGV0ZWx5XG4gKiAgICAgIGJlIGhpZGRlbiBpbiBjb2xsYXBzZWQgc3RhdGUgYmVjYXVzZSBpdOKAmXMgYSBncmlkIGl0ZW0gWzIzXS5cbiAqIFsyNV0gSW5oZXJpdCByYWRpdXMgZnJvbSBzZWN0aW9uIHRvIHByZXZlbnQgb3ZlcmxheSBjdXR0aW5nIG9mIGJvcmRlci5cbiAqL1xuXG4uYy1mb3JtLXNlY3Rpb24jeyRmb3JtLXNlY3Rpb24tZGlzYWJsZWQtc2VsZWN0b3J9IHtcblxuICAgICYsXG4gICAgLmMtZm9ybS1zZWN0aW9uX19oZWFkZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG91dGxpbmU6IDA7IC8qIFsxOF0gKi9cbiAgICAgICAgZmlsdGVyOiBncmF5c2NhbGUoJGZvcm0tc2VjdGlvbi1kaXNhYmxlZC1ncmF5c2NhbGUpOyAvKiBbMTddICovXG5cbiAgICAgICAgJjo6YWZ0ZXIgeyAvKiBbMTVdICovXG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgei1pbmRleDogMTA7IC8qIFsxNl0gKi9cbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7IC8qIFsyNV0gKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JtLXNlY3Rpb24tYmctY29sb3ItZGlzYWJsZWQ7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWZvcm0tc2VjdGlvbl9faGVhZGVyIHtcbiAgICAgICAgei1pbmRleDogMjA7IC8qIFsxOV0gKi9cbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsgLyogWzE4XSAqL1xuICAgIH1cblxufVxuXG4uYy1mb3JtLXNlY3Rpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXI6ICRmb3JtLXNlY3Rpb24tYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6ICRmb3JtLXNlY3Rpb24tYm9yZGVyLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9ybS1zZWN0aW9uLWJnLWNvbG9yO1xuXG4gICAgQGlmICgkZm9ybS1zZWN0aW9uLXNoYWRvdyAhPSBub25lKSB7XG4gICAgICAgIGJveC1zaGFkb3c6ICRmb3JtLXNlY3Rpb24tc2hhZG93O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICRmb3JtLXNlY3Rpb24tdGhlbWVzKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcnktZ2V0KFwiYmFja2dyb3VuZC1jb2xvclwiKTtcbiAgICB9XG5cbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zZWN0aW9uLXNwYWNpbmc7IC8qIFs1XSAqL1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICRmb3JtLXNlY3Rpb24tYm9yZGVyLWNvbG9yLWhvdmVyO1xuICAgIH1cblxuICAgICYuYy1mb3JtLXNlY3Rpb24tLXN1Y2Nlc3Mge1xuICAgICAgICBib3JkZXI6ICRmb3JtLXNlY3Rpb24tdmFsaWRhdGlvbi1ib3JkZXItc3VjY2VzcztcbiAgICB9XG5cbiAgICAmLmMtZm9ybS1zZWN0aW9uLS1lcnJvciB7XG4gICAgICAgIGJvcmRlcjogJGZvcm0tc2VjdGlvbi12YWxpZGF0aW9uLWJvcmRlci1lcnJvcjtcbiAgICB9XG5cbn1cblxuICAgIC5jLWZvcm0tc2VjdGlvbl9faGVhZGVyIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtYnV0dG9uKCk7IC8qIFsyXSAqL1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFxuICAgICAgICAgICAgKFwicGFkZGluZy10b3BcIiwgICAgJGZvcm0tc2VjdGlvbi1oZWFkZXItc3BhY2luZy10b3ApLFxuICAgICAgICAgICAgKFwicGFkZGluZy1yaWdodFwiLCAgJGZvcm0tc2VjdGlvbi1oZWFkZXItc3BhY2luZy1yaWdodCksXG4gICAgICAgICAgICAoXCJwYWRkaW5nLWJvdHRvbVwiLCAkZm9ybS1zZWN0aW9uLWhlYWRlci1zcGFjaW5nLWJvdHRvbSksXG4gICAgICAgICAgICAoXCJwYWRkaW5nLWxlZnRcIiwgICAkZm9ybS1zZWN0aW9uLWhlYWRlci1zcGFjaW5nLWxlZnQpXG4gICAgICAgICk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiAkZm9ybS1zZWN0aW9uLWhlYWRlci1hbGlnbm1lbnQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIFsyXSAqL1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDsgLyogWzJdICovXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IC8qIFsyXSAqL1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgQGlmICgkZm9ybS1zZWN0aW9uLW91dGxpbmUtZW5hYmxlKSB7XG4gICAgICAgICAgICAuYy1mb3JtLXNlY3Rpb246bm90KC5pcy1vcGVuKSAmOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogJGZvcm0tc2VjdGlvbi1vdXRsaW5lLXdpZHRoLWZvY3VzIHNvbGlkICRmb3JtLXNlY3Rpb24tb3V0bGluZS1jb2xvci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmMtZm9ybS1zZWN0aW9uOm5vdCguaXMtb3BlbikgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogJGZvcm0tc2VjdGlvbi1vdXRsaW5lLXdpZHRoLWhvdmVyIHNvbGlkICRmb3JtLXNlY3Rpb24tb3V0bGluZS1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtZm9ybS1zZWN0aW9uX19oZWFkZXItY29udGVudCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGZvcm0tc2VjdGlvbi1oZWFkZXItY29udGVudC1zcGFjaW5nLXJpZ2h0O1xuXG4gICAgICAgID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IC8qIFs0XSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1mb3JtLXNlY3Rpb25fX3RpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtYnV0dG9uKCk7IC8qIFsyXSAqL1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICAgJGZvcm0tc2VjdGlvbi10aXRsZS1mb250LXNpemUsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICRmb3JtLXNlY3Rpb24tdGl0bGUtbGluZS1oZWlnaHRcbiAgICAgICAgKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyAvKiBbMTNdICovXG4gICAgICAgIHdpZHRoOiAxMDAlOyAvKiBbOV0gKi9cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc2VjdGlvbi10aXRsZS1tYXJnaW4tYm90dG9tO1xuICAgICAgICBmb250LWZhbWlseTogJGZvcm0tc2VjdGlvbi10aXRsZS1mb250LWZhbWlseTsgLyogWzIwXSAqL1xuICAgICAgICBmb250LXdlaWdodDogJGZvcm0tc2VjdGlvbi10aXRsZS1mb250LXdlaWdodDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6ICRmb3JtLXNlY3Rpb24tdGl0bGUtZm9udC1sZXR0ZXItc3BhY2luZzsgLyogWzIwXSAqL1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyAvKiBbMl0gKi9cbiAgICAgICAgY29sb3I6ICRmb3JtLXNlY3Rpb24tdGl0bGUtdGV4dC1jb2xvcjtcbiAgICAgICAgb3V0bGluZTogbm9uZTsgLyogWzJdICovXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAuYy1mb3JtLXNlY3Rpb25fX3RpdGxlLXRleHQge1xuICAgICAgICBtYXgtd2lkdGg6ICRmb3JtLXNlY3Rpb24tdGl0bGUtbGVuZ3RoOyAvKiBbM10gKi9cblxuICAgICAgICAuYy1mb3JtLXNlY3Rpb25fX2hlYWRlciN7JGZvcm0tc2VjdGlvbi10aXRsZS1zdGF0ZS1jb2xsYXBzZWR9Om5vdCguYy1mb3JtLXNlY3Rpb25fX2hlYWRlci0tbm8tdHJ1bmNhdGUpICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJ1bmNhdGUoKTsgLyogWzEwXSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1mb3JtLXNlY3Rpb25fX3RpdGxlLWxpbmsuYy1mb3JtLXNlY3Rpb25fX3RpdGxlLWxpbmsgeyAvKiBbMjJdICovXG4gICAgICAgIG1pbi13aWR0aDogJGZvcm0tc2VjdGlvbi10aXRsZS1saW5rLW1pbi13aWR0aDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRmb3JtLXNlY3Rpb24tdGl0bGUtbGluay1zcGFjaW5nLWxlZnQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiAkZm9ybS1zZWN0aW9uLXRpdGxlLWxpbmstd2hpdGUtc3BhY2U7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGZvcm0tc2VjdGlvbi10aXRsZS1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1mb3JtLXNlY3Rpb25fX3N1YnRpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAgICRmb3JtLXNlY3Rpb24tc3VidGl0bGUtZm9udC1zaXplLFxuICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAkZm9ybS1zZWN0aW9uLXN1YnRpdGxlLWxpbmUtaGVpZ2h0XG4gICAgICAgICk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogWzEyXSAqL1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyAvKiBbMTJdICovXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZm9ybS1zZWN0aW9uLXN1YnRpdGxlLWZvbnQtd2VpZ2h0O1xuICAgICAgICBjb2xvcjogJGZvcm0tc2VjdGlvbi1zdWJ0aXRsZS1jb2xvcjtcblxuICAgICAgICAuYy1mb3JtLXNlY3Rpb25fX2hlYWRlciN7JGZvcm0tc2VjdGlvbi10aXRsZS1zdGF0ZS1jb2xsYXBzZWR9Om5vdCguYy1mb3JtLXNlY3Rpb25fX2hlYWRlci0tbm8tdHJ1bmNhdGUpICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJ1bmNhdGUoKTsgLyogWzEwXSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1mb3JtLXNlY3Rpb25fX2hlYWRlci1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGZvcm0tc2VjdGlvbi10aXRsZS1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OyAvKiBbMTFdICovXG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogJGZvcm0tc2VjdGlvbi1pY29uLXNpemUsXG4gICAgICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiBmYWxzZSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb250ZW50OiAkZm9ybS1zZWN0aW9uLWljb24tY29sbGFwc2VkO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiAkZm9ybS1zZWN0aW9uLWljb24tdHJhbnNmb3JtLWNvbGxhcHNlZDtcbiAgICAgICAgICAgIGNvbG9yOiAkZm9ybS1zZWN0aW9uLWljb24tY29sb3I7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gZGl2KCRmb3JtLXNlY3Rpb24tYW5pbWF0aW9uLWR1cmF0aW9uLCAzKSAkZm9ybS1zZWN0aW9uLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb247XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRmb3JtLXNlY3Rpb24taWNvbi1zaXplLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAgICAgICAgICRmb250LXNpemU6ICRmb3JtLXNlY3Rpb24taWNvbi1zaXplLW9uLWJyZWFrcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogMVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLWZvcm0tc2VjdGlvbi0tc3VjY2VzcyAmLFxuICAgICAgICAgICAgLmMtZm9ybS1zZWN0aW9uLS1lcnJvciAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAgICAgICAgICRmb250LXNpemU6ICRmb3JtLXNlY3Rpb24tdmFsaWRhdGlvbi1pY29uLXNpemUsXG4gICAgICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogMVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAkZm9ybS1zZWN0aW9uLXZhbGlkYXRpb24taWNvbi10cmFuc2Zvcm0tY29sbGFwc2VkO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGZvcm0tc2VjdGlvbi1pY29uLXNpemUtYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAkZm9ybS1zZWN0aW9uLXZhbGlkYXRpb24taWNvbi1zaXplLW9uLWJyZWFrcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6IDFcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmMtZm9ybS1zZWN0aW9uLS1zdWNjZXNzICYge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICRmb3JtLXNlY3Rpb24tdmFsaWRhdGlvbi1pY29uLWNvbGxhcHNlZC1zdWNjZXNzO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkZm9ybS1zZWN0aW9uLXZhbGlkYXRpb24taWNvbi1jb2xvci1zdWNjZXNzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYy1mb3JtLXNlY3Rpb24tLWVycm9yICYge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICRmb3JtLXNlY3Rpb24tdmFsaWRhdGlvbi1pY29uLWNvbGxhcHNlZC1lcnJvcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGZvcm0tc2VjdGlvbi12YWxpZGF0aW9uLWljb24tY29sb3ItZXJyb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLWZvcm0tc2VjdGlvbl9faGVhZGVyI3skZm9ybS1zZWN0aW9uLXRpdGxlLXN0YXRlLWV4cGFuZGVkfSAmIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAkZm9ybS1zZWN0aW9uLWljb24tZXhwYW5kZWQ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAkZm9ybS1zZWN0aW9uLWljb24tdHJhbnNmb3JtLWV4cGFuZGVkO1xuXG4gICAgICAgICAgICAgICAgLmMtZm9ybS1zZWN0aW9uLS1zdWNjZXNzICYsXG4gICAgICAgICAgICAgICAgLmMtZm9ybS1zZWN0aW9uLS1lcnJvciAmIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAkZm9ybS1zZWN0aW9uLXZhbGlkYXRpb24taWNvbi10cmFuc2Zvcm0tZXhwYW5kZWQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmMtZm9ybS1zZWN0aW9uLS1zdWNjZXNzICYge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAkZm9ybS1zZWN0aW9uLXZhbGlkYXRpb24taWNvbi1leHBhbmRlZC1zdWNjZXNzO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jLWZvcm0tc2VjdGlvbi0tZXJyb3IgJiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICRmb3JtLXNlY3Rpb24tdmFsaWRhdGlvbi1pY29uLWV4cGFuZGVkLWVycm9yO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWZvcm0tc2VjdGlvbl9fcGFuZWwge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKFxuICAgICAgICAgICAgJHRyYW5zaXRpb24tcHJvcGVydHk6IGdyaWQtdGVtcGxhdGUtcm93cyxcbiAgICAgICAgICAgICR0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZm9ybS1zZWN0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbiAqIDAuNSxcbiAgICAgICAgKTsgLyogWzIzXSAqL1xuICAgICAgICBkaXNwbGF5OiBncmlkOyAvKiBbMjNdICovXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyOyAvKiBbMjNdICovXG5cbiAgICAgICAgPiAqIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIFsyM10gKi9cbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KCN7JGZvcm0tc2VjdGlvbi1wYW5lbC1zdGF0ZS1leHBhbmRlZH0pIC5jLWZvcm0tZmllbGRfX2xhYmVsIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIFsyNF0gKi9cbiAgICAgICAgICAgIG9wYWNpdHk6IGlmKCRmb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nLCAwLCBudWxsKTsgLyogWzIxXSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJiN7JGZvcm0tc2VjdGlvbi1wYW5lbC1zdGF0ZS1leHBhbmRlZH0ge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7IC8qIFsyM10gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtZm9ybS1zZWN0aW9uX19jb250ZW50IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcbiAgICAgICAgICAgIChcInBhZGRpbmctcmlnaHRcIiwgICRmb3JtLXNlY3Rpb24tcGFuZWwtc3BhY2luZy1yaWdodCksXG4gICAgICAgICAgICAoXCJwYWRkaW5nLWxlZnRcIiwgICAkZm9ybS1zZWN0aW9uLXBhbmVsLXNwYWNpbmctbGVmdClcbiAgICAgICAgKTtcblxuICAgICAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFwicGFkZGluZy10b3BcIiwgJGZvcm0tc2VjdGlvbi1wYW5lbC1zcGFjaW5nLXRvcCk7IC8qIFsyNF0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcInBhZGRpbmctYm90dG9tXCIsICRmb3JtLXNlY3Rpb24tcGFuZWwtc3BhY2luZy1ib3R0b20pOyAvKiBbMjRdICovXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbNF0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0ZPUk0tU0VDVElPTiAoU2V0dGluZ3MpXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGZvcm0tc2VjdGlvbi1vdXRsaW5lLWVuYWJsZTogICAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuXG4kZm9ybS1zZWN0aW9uLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1CT1JERVItUkFESVVTLVNNQUxMICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDFweCBzb2xpZCAkQ09MT1ItQk9SREVSICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi1ib3JkZXItY29sb3ItaG92ZXI6ICAgICAgICAgICAgICAgICRDT0xPUi1PTi1TVVJGQUNFLTkwMCAhZGVmYXVsdDtcblxuJGZvcm0tc2VjdGlvbi1iZy1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1TVVJGQUNFLVBSSU1BUlkgIWRlZmF1bHQ7XG4kZm9ybS1zZWN0aW9uLWJnLWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgICAgICAgcmdiYSgkQ09MT1ItV0hJVEUsIDAuNSkgIWRlZmF1bHQ7XG5cbiRmb3JtLXNlY3Rpb24tdGl0bGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAkRlMwICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi10aXRsZS1tYXJnaW4tYm90dG9tOiAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiRmb3JtLXNlY3Rpb24tc3VidGl0bGUtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULUxJR0hUICFkZWZhdWx0O1xuXG4kZm9ybS1zZWN0aW9uLXBhbmVsLXNwYWNpbmctdG9wOiAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcblxuJGZvcm0tc2VjdGlvbi1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgIGljb24tc2l6ZSh4c21hbGwpICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi1pY29uLXNpemUtb24tYnJlYWtwb2ludDogICAgICAgICAgICRmb3JtLXNlY3Rpb24taWNvbi1zaXplICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG5cbiRmb3JtLXNlY3Rpb24taWNvbi1jb2xsYXBzZWQ6ICAgICAgICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1wbHVzKSAhZGVmYXVsdDtcbiRmb3JtLXNlY3Rpb24taWNvbi1leHBhbmRlZDogICAgICAgICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1taW51cykgIWRlZmF1bHQ7XG5cbiRmb3JtLXNlY3Rpb24taWNvbi10cmFuc2Zvcm0tZXhwYW5kZWQ6ICAgICAgICAgICBub25lICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi1pY29uLXRyYW5zZm9ybS1jb2xsYXBzZWQ6ICAgICAgICAgIG5vbmUgIWRlZmF1bHQ7XG5cbiRmb3JtLXNlY3Rpb24tdmFsaWRhdGlvbi1pY29uLWV4cGFuZGVkLXN1Y2Nlc3M6ICBnZXQtaWNvbihjaGVjay1jaXJjbGUpICFkZWZhdWx0O1xuJGZvcm0tc2VjdGlvbi12YWxpZGF0aW9uLWljb24tY29sbGFwc2VkLXN1Y2Nlc3M6ICRmb3JtLXNlY3Rpb24tdmFsaWRhdGlvbi1pY29uLWV4cGFuZGVkLXN1Y2Nlc3MgIWRlZmF1bHQ7XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjRk9STS1TRUNUSU9OXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXG4uYy1mb3JtLXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oXG4gICAgICAgICR0cmFuc2l0aW9uLXByb3BlcnR5OiBib3JkZXItY29sb3IsXG4gICAgKTtcbn1cblxuICAgIC5jLWZvcm0tc2VjdGlvbl9faGVhZGVyLWljb24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taWNvbi1zdGF0ZXMoXG4gICAgICAgICAgICAkY29udGV4dC1zZWxlY3RvcjogXCIuYy1mb3JtLXNlY3Rpb25fX2hlYWRlclwiLFxuICAgICAgICApO1xuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJTlBVVC1URVhUXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQHVzZSBcInNhc3M6c2VsZWN0b3JcIjtcblxuJGlucHV0LWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtSEVJR0hUICFkZWZhdWx0O1xuJGlucHV0LXBhZGRpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtUEFERElORy1IT1JJWk9OVEFMICFkZWZhdWx0O1xuJGlucHV0LWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtRk9OVC1TSVpFICFkZWZhdWx0O1xuJGlucHV0LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtRk9OVC1XRUlHSFQgIWRlZmF1bHQ7XG4kaW5wdXQtZm9udC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1GT05ULUNPTE9SICFkZWZhdWx0O1xuJGlucHV0LWZvbnQtY29sb3ItZGlzYWJsZWQ6ICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtRk9OVC1DT0xPUi1ESVNBQkxFRCAhZGVmYXVsdDtcbiRpbnB1dC1mb250LWNvbG9yLXJlYWRvbmx5OiAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUZPTlQtQ09MT1ItUkVBRE9OTFkgIWRlZmF1bHQ7XG4kaW5wdXQtZm9udC1jb2xvci1wbGFjZWhvbGRlcjogICAgICAgICAgJEdMT0JBTC1JTlBVVC1GT05ULUNPTE9SLVBMQUNFSE9MREVSICFkZWZhdWx0O1xuJGlucHV0LWZvbnQtd2VpZ2h0LXBsYWNlaG9sZGVyOiAgICAgICAgICRHTE9CQUwtSU5QVVQtRk9OVC1XRUlHSFQtUExBQ0VIT0xERVIgIWRlZmF1bHQ7XG4kaW5wdXQtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CQUNLR1JPVU5EICFkZWZhdWx0O1xuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtQkFDS0dST1VORC1ESVNBQkxFRCAhZGVmYXVsdDtcbiRpbnB1dC1iYWNrZ3JvdW5kLXJlYWRvbmx5OiAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUJBQ0tHUk9VTkQtUkVBRE9OTFkgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVIgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLWJvdHRvbS1vbmx5OiAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItQk9UVE9NLU9OTFkgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItV0lEVEggIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLXdpZHRoLWZvY3VzOiAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItV0lEVEgtRk9DVVMgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItQ09MT1IgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItQ09MT1ItSE9WRVIgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLWNvbG9yLWZvY3VzOiAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItQ09MT1ItRk9DVVMgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItQ09MT1ItRElTQUJMRUQgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLWNvbG9yLXJlYWRvbmx5OiAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItQ09MT1ItUkVBRE9OTFkgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItUkFESVVTICFkZWZhdWx0O1xuJGlucHV0LXRleHRhcmVhLWZvbnQtc2l6ZTogICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtVEVYVEFSRUEtRk9OVC1TSVpFICFkZWZhdWx0O1xuJGlucHV0LXRleHRhcmVhLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtVEVYVEFSRUEtTElORS1IRUlHSFQgIWRlZmF1bHQ7XG4kaW5wdXQtdGV4dGFyZWEtc3BhY2luZy12ZXJ0aWNhbDogICAgICAgJEdMT0JBTC1JTlBVVC1URVhUQVJFQS1QQURESU5HLVZFUlRJQ0FMICFkZWZhdWx0O1xuJGlucHV0LXRleHRhcmVhLXNwYWNpbmctaG9yaXpvbnRhbDogICAgICRHTE9CQUwtSU5QVVQtVEVYVEFSRUEtUEFERElORy1IT1JJWk9OVEFMICFkZWZhdWx0O1xuJGlucHV0LXRleHRhcmVhLWJvcmRlci1ib3R0b20tb25seTogICAgICRHTE9CQUwtSU5QVVQtVEVYVEFSRUEtQk9SREVSLUJPVFRPTS1PTkxZICFkZWZhdWx0O1xuJGlucHV0LWFkZG9uLW1pbi13aWR0aDogICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kaW5wdXQtYWRkb24tcGFkZGluZzogICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1BRERPTi1QQURESU5HLUhPUklaT05UQUwgIWRlZmF1bHQ7XG4kaW5wdXQtYWRkb24tZm9udC1jb2xvcjogICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1BRERPTi1GT05ULUNPTE9SICFkZWZhdWx0O1xuJGlucHV0LWFkZG9uLWZvbnQtY29sb3Itbm8tYmc6ICAgICAgICAgICRHTE9CQUwtSU5QVVQtQURET04tRk9OVC1DT0xPUi1OTy1CRyAhZGVmYXVsdDtcbiRpbnB1dC1hZGRvbi1mb250LWNvbG9yLW5vLWJnLWRpc2FibGVkOiAkR0xPQkFMLUlOUFVULUFERE9OLUZPTlQtQ09MT1ItRElTQUJMRUQgIWRlZmF1bHQ7XG4kaW5wdXQtYWRkb24tZm9udC1jb2xvci1ob3ZlcjogICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRpbnB1dC1hZGRvbi1mb250LWNvbG9yLWZvY3VzOiAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGlucHV0LWFkZG9uLWZvbnQtY29sb3ItZGlzYWJsZWQ6ICAgICAgICRHTE9CQUwtSU5QVVQtQURET04tRk9OVC1DT0xPUi1ESVNBQkxFRCAhZGVmYXVsdDtcbiRpbnB1dC1hZGRvbi1mb250LWNvbG9yLXJlYWRvbmx5OiAgICAgICAkR0xPQkFMLUlOUFVULUFERE9OLUZPTlQtQ09MT1ItUkVBRE9OTFkgIWRlZmF1bHQ7XG4kaW5wdXQtYWRkb24tYmFja2dyb3VuZDogICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1BRERPTi1CQUNLR1JPVU5EICFkZWZhdWx0O1xuJGlucHV0LWFkZG9uLWJhY2tncm91bmQtZGlzYWJsZWQ6ICAgICAgICRHTE9CQUwtSU5QVVQtQURET04tQkFDS0dST1VORC1ESVNBQkxFRCAhZGVmYXVsdDtcbiRpbnB1dC1hZGRvbi1iYWNrZ3JvdW5kLXJlYWRvbmx5OiAgICAgICAkR0xPQkFMLUlOUFVULUFERE9OLUJBQ0tHUk9VTkQtUkVBRE9OTFkgIWRlZmF1bHQ7XG4kaW5wdXQtYWRkb24taWNvbi1zaXplOiAgICAgICAgICAgICAgICAgaWNvbi1zaXplKCRHTE9CQUwtSU5QVVQtQURET04tSUNPTi1TSVpFKSAhZGVmYXVsdDtcbiRpbnB1dC1hZGRvbi1mYWtlLWxpbmUtd2lkdGg6ICAgICAgICAgICAkR0xPQkFMLUlOUFVULUFERE9OLUZBS0UtTElORS1XSURUSCAhZGVmYXVsdDtcbiRpbnB1dC1zZWxlY3QtZHJvcGRvd24taWNvbjogICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1leHBhbmQpICFkZWZhdWx0O1xuJGlucHV0LXNlbGVjdC1kcm9wZG93bi1pY29uLXNpemU6ICAgICAgIGljb24tc2l6ZSgkR0xPQkFMLUlOUFVULVNFTEVDVC1JQ09OLVNJWkUpICFkZWZhdWx0O1xuJGlucHV0LXNlbGVjdC1kcm9wZG93bi1pY29uLWRpc2FibGVkOiAgIGZhbHNlICFkZWZhdWx0O1xuJGlucHV0LXNlbGVjdC1kcm9wZG93bi1pY29uLXBhZGRpbmc6ICAgIGlmKCRpbnB1dC1ib3JkZXItYm90dG9tLW9ubHksIDAsICRpbnB1dC1hZGRvbi1wYWRkaW5nKSAhZGVmYXVsdDtcbiRpbnB1dC1zZWxlY3Qtb3B0aW9uLWNvbG9yOiAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULU9QVElPTi1DT0xPUiAhZGVmYXVsdDtcbiRpbnB1dC1zZWxlY3Qtb3B0aW9uLWNvbG9yLWRpc2FibGVkOiAgICAkR0xPQkFMLUlOUFVULU9QVElPTi1DT0xPUi1ESVNBQkxFRCAhZGVmYXVsdDtcbiRpbnB1dC1zdGF0ZS1pY29uLXBhZGRpbmc6ICAgICAgICAgICAgICAkaW5wdXQtYWRkb24tcGFkZGluZyAhZGVmYXVsdDtcbiRpbnB1dC1zdGF0ZS1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAkaW5wdXQtYWRkb24taWNvbi1zaXplICFkZWZhdWx0O1xuJGlucHV0LWNvdW50ZXItZm9udC1zaXplOiAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtQ09VTlRFUi1GT05ULVNJWkUgIWRlZmF1bHQ7XG4kaW5wdXQtY291bnRlci1mb250LXdlaWdodDogICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1DT1VOVEVSLUZPTlQtV0VJR0hUICFkZWZhdWx0O1xuJGlucHV0LWNvdW50ZXItc3BhY2luZy10b3A6ICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtQ09VTlRFUi1TUEFDSU5HLVRPUCAhZGVmYXVsdDtcbiRpbnB1dC1jb3VudGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUNPVU5URVItQ09MT1IgIWRlZmF1bHQ7XG4kaW5wdXQtY291bnRlci1jb2xvci1hbGVydDogICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1DT1VOVEVSLUNPTE9SLUFMRVJUICFkZWZhdWx0O1xuXG4kaW5wdXQtc3RhdHVzLXRoZW1lczogKFxuICAgIGVycm9yOiAoXG4gICAgICAgIGZvbnQtY29sb3I6ICAgICAgICAgJEdMT0JBTC1JTlBVVC1GT05ULUNPTE9SLUVSUk9SLFxuICAgICAgICBib3JkZXItY29sb3I6ICAgICAgICRHTE9CQUwtSU5QVVQtQk9SREVSLUNPTE9SLUVSUk9SLFxuICAgICAgICBib3JkZXItY29sb3ItaG92ZXI6ICRHTE9CQUwtSU5QVVQtQk9SREVSLUNPTE9SLUVSUk9SLUhPVkVSLFxuICAgICAgICBhZGRvbi1jb2xvcjogICAgICAgICRHTE9CQUwtSU5QVVQtQURET04tRk9OVC1DT0xPUi1FUlJPUixcbiAgICAgICAgYWRkb24tY29sb3Itbm8tYmc6ICAkR0xPQkFMLUlOUFVULUFERE9OLUZPTlQtQ09MT1ItTk8tQkctRVJST1IsXG4gICAgICAgIGVuYWJsZS1zdGF0ZS1pY29uOiAgdHJ1ZSxcbiAgICAgICAgaWNvbjogICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1lcnJvciksXG4gICAgICAgIGljb24tY29sb3I6ICAgICAgICAgJENPTE9SLUFMRVJULFxuICAgICksXG4gICAgc3VjY2VzczogKFxuICAgICAgICBmb250LWNvbG9yOiAgICAgICAgICRHTE9CQUwtSU5QVVQtRk9OVC1DT0xPUi1TVUNDRVNTLFxuICAgICAgICBib3JkZXItY29sb3I6ICAgICAgICRHTE9CQUwtSU5QVVQtQk9SREVSLUNPTE9SLVNVQ0NFU1MsXG4gICAgICAgIGJvcmRlci1jb2xvci1ob3ZlcjogJEdMT0JBTC1JTlBVVC1CT1JERVItQ09MT1ItU1VDQ0VTUy1IT1ZFUixcbiAgICAgICAgYWRkb24tY29sb3I6ICAgICAgICAkR0xPQkFMLUlOUFVULUFERE9OLUZPTlQtQ09MT1ItU1VDQ0VTUyxcbiAgICAgICAgYWRkb24tY29sb3Itbm8tYmc6ICAkR0xPQkFMLUlOUFVULUFERE9OLUZPTlQtQ09MT1ItTk8tQkctU1VDQ0VTUyxcbiAgICAgICAgZW5hYmxlLXN0YXRlLWljb246ICB0cnVlLFxuICAgICAgICBpY29uOiAgICAgICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLXN1Y2Nlc3MpLFxuICAgICAgICBpY29uLWNvbG9yOiAgICAgICAgICRDT0xPUi1TVUNDRVNTLFxuICAgICksXG4pICFkZWZhdWx0O1xuXG4kaW5wdXQtc3RhdHVzLXRoZW1lcy1vdmVyd3JpdGVzOiAoKSAhZGVmYXVsdDtcbiRpbnB1dC1zdGF0dXMtdGhlbWVzLW1lcmdlZDogICAgIG1hcC1kZWVwLW1lcmdlKCRpbnB1dC1zdGF0dXMtdGhlbWVzLCAkaW5wdXQtc3RhdHVzLXRoZW1lcy1vdmVyd3JpdGVzLCAyKSAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gQWxsb3cgdXMgdG8gc3R5bGUgYm94IG1vZGVsIHByb3BlcnRpZXMuXG4gKiBbMl0gTGluZSBkaWZmZXJlbnQgc2l6ZWQgaW5wdXRzIHVwIGEgbGl0dGxlIG5pY2VyLlxuICogWzNdIE9ubHkgY2hhbmdlIGJvcmRlciBmb3Igbm9uLWJhY2tncm91bmQgYWRkb25zLlxuICogWzRdIElmIHRoZSBpbnB1dCBoYXMgcm91bmRlZCBib3JkZXJzLCB0aGUgZmFrZSBsaW5lJ3MgYHdpZHRoYCBtdXN0IGhhdmUgdGhlXG4gKiAgICAgc2FtZSB2YWx1ZSBhcyB0aGUgYGJvcmRlci1yYWRpdXNgIHRvIHRvdGFsbHkgY292ZXIgdGhlIGJvcmRlci4gVGhlXG4gKiAgICAgaW5wdXQncyBib3JkZXIgbXVzdCBiZSByZXBsYWNlZCBieSBhIGJvcmRlciBhdHRhY2hlZCB0byB0aGUgZmFrZSBsaW5lLlxuICogWzVdIFNldCBtaW5pbXVtIHdpZHRoIGZvciBhZGRvbiB0byBoYXZlIGVxdWFsIHNpemVcbiAqICAgICB1cCB0byBhIGNlcnRhaW4gYW1vdW50IG9mIGNvbnRlbnQuXG4gKiBbNl0gUmVzZXQgZGVmYXVsdCBsYWJlbCBzcGFjaW5nLlxuICogWzddIEJvcmRlci1kZXBlbmRzIG9uIHRoZSBwb3NpdGlvbiBvZiBzeW1ib2wuXG4gKiBbOF0gQ29udHJvbCBwb3NpdGlvbiBvZiBhZGRvbiB2aWEgQ1NTIC0gbm90IG1hcmt1cCBvcmRlci5cbiAqIFs5XSBTZXQgaW5wdXQgaGVpZ2h0IChtaW51cyB2ZXJ0aWNhbCBib3JkZXJzKS5cbiAqIFsxMF0gUmVzZXQgZGVmYXVsdCBidXR0b24tc3R5bGUuXG4gKiBbMTFdIENocm9tZSBuZWVkcyBhIHJlc2V0IGFwcGVhcmFuY2UsIG90aGVyd2lzZSBpdCBzZXRzIGEgZGVmYXVsdFxuICogICAgICBib3JkZXItcmFkaXVzLCBpbiBjYXNlIGl0J3MgYSBgPHNlbGVjdD5gLlxuICogWzEyXSBUZXh0YXJlYXMgbXVzdCBub3QgZ2V0IGEgZml4ZWQgaGVpZ2h0IGFuZCBhIGNvcnJlc3BvbmRpbmcgbGluZS1oZWlnaHQuLi5cbiAqIFsxM10gLi4uYnV0IGluc3RlYWQgZ2V0IGEgY3VzdG9tIHBhZGRpbmctdG9wIGFuZCAtYm90dG9tIHRvIG9mZnNldCB0aGUgdGV4dFxuICogICAgICBjb250ZW50IGZyb20gdGhlIHRvcCBlZGdlIG9mIHRoZSB0ZXh0YXJlYS5cbiAqIFsxNF0gRGVmZW5zaXZlbHkgcmVzZXQgYm9yZGVyLXJhZGl1cy5cbiAqIFsxNV0gQ3JlYXRlIGNvbXBsZXRlIGJvcmRlci1yYWRpdXMgd2hlbiB0aGVyZSBpcyBubyBgLmMtaW5wdXRfX2FkZG9uYC5cbiAqIFsxNl0gUGVyZmVjdGx5IGFsaWduIHRoZSBpY29uIGluc2lkZSBvZiBgLmMtaW5wdXRfX2FkZG9uYC5cbiAqIFsxN10gV2hlbiB0aGUgaW5wdXQgaXMgYSBgPHNlbGVjdD5gLCB0aGUgYWRkb24gaXMgdGFrZW4gb3V0IG9mIHRoZSBkb2N1bWVudHNcbiAqICAgICAgZmxvdywgc28gdGhlIGJvcmRlci1yYWRpdXMgbmVlZHMgdG8gYmUgc2V0IGV4cGxpY2l0bHkgaGVyZS5cbiAqIFsxOF0gU2luY2UgdGhlIHRoZSBpY29uIGlzIGxheWluZyBvbiB0b3Agb2YgdGhlIHNlbGVjdCwgYSBjbGljayBvbiB0aGUgYXJyb3dcbiAqICAgICAgaGFzIHRvIGJlIGlnbm9yZWQgYW5kIGxvb3BlZCB0aHJvdWdoIHRvIHRoZSBzZWxlY3QgaXRzZWxmLlxuICogWzE5XSBJZiBpdCdzIGEgYDxzZWxlY3Q+YCwgZG9uJ3QgbGV0IGxvbmcgc2VsZWN0IGlucHV0IHRleHQgb3ZlcmZsb3cgdGhlXG4gKiAgICAgIGRyb3Bkb3duIGFycm93LlxuICogWzIwXSBWZXJ0aWNhbCBjZW50ZXIgdGhlIGljb24uXG4gKiBbMjFdIEZpcmVmb3ggd29uJ3QgaGlkZSBpdHMgZG90dGVkIG91dGxpbmUgb24gZm9jdXMgb24gc2VsZWN0IGVsZW1lbnRzLiBUaGlzXG4gKiAgICAgIGZpeGVzIGl0LiBCZSBhd2FyZTogQWx0aG91Z2ggaXQgd29ya3MsIGl0J3Mgc3RpbGwgYSBoYWNrIVxuICogWzIyXSBSZXNldCBzdHlsZXMgb2YgaW5wdXQgYW5kIGAuYy1pbnB1dF9fYWRkb25gIGZvciByZWFkb25seSBzdGF0ZSB0b1xuICogICAgICBwcmV2ZW50IGZvY3VzIHN0eWxlcyBmcm9tIGJlaW5nIHVzZWQgaGVyZS5cbiAqIFsyM10gUmVzZXQgc3R5bGVzIG9mIGlucHV0IGFuZCBgLmMtaW5wdXRfX2FkZG9uYCBmb3IgZGlzYWJsZWQgc3RhdGUgdG9cbiAqICAgICAgcHJldmVudCBkZWZhdWx0IHN0eWxlcyBmcm9tIGJlaW5nIHVzZWQgaGVyZVxuICogWzI0XSBQcmV2ZW50IElFIDExIGFuZCBFZGdlIGZyb20gc2hvd2luZyBhIGJyb3dzZXIgZGVmYXVsdCBjcm9zcyBpY29uIHRvIGNsZWFyXG4gKiAgICAgIHRoZSB0ZXh0IGlucHV0LlxuICogWzI1XSBGaXhlcyBGaXJlZm94IGlzc3VlLiBGaXJlZm94IGdyb3dzIHRoZSBpbnB1dCB3aGVuIGFuIGlucHV0IGFkZG9uIGlzXG4gKiAgICAgIHByZXNlbnQuIGBtaW4td2lkdGg6IDBgIGZpeGVzIHRoYXQgaXNzdWUuIChodHRwczovL2dpdGh1Yi5jb20vcGhpbGlwd2FsdG9uL2ZsZXhidWdzL3RyZWUvMzhmZGJlNDA4ZTJhZTZkY2YzMmJmZjFlMjlkYjQxYzZhYjk2NGY1NSNmbGV4YnVnLTEpXG4gKiBbMjZdIFdoZW4gdGhlIGRyb3Bkb3duIGljb24gaXMgaGlkZGVuIGF0IGRpc2FibGVkIHN0YXRlLCBzdGFjayB0aGUgc2VsZWN0XG4gKiAgICAgIGFib3ZlIHRoZSBkcm9wZG93bi4gVGhpcyBpcyBkb25lIGFzIHRoZXJlIGlzIG5vIHdheVxuICogICAgICAoZHVlIHRvIG1pc3NpbmcgcGFyZW50IHNlbGVjdG9yKSB0byBzZWxlY3QgdGhlIGljb24gKHBzZXVkbyBlbGVtZW50IG9uIHBhcmVudClcbiAqICAgICAgd2hlbiB0aGUgc2VsZWN0IGlzIGRpc2FibGVkLlxuICogWzI3XSBJbmhlcml0IHRoZSBjb2xvciBhc3NpZ25lZCB0byBgLmMtaW5wdXRfX2FkZG9uYCBpbnN0ZWFkIG9mIGFwcGx5aW5nIHRoZVxuICogICAgICBkZWZhdWx0IGljb24gY29sb3IuXG4gKiBbMjhdIEV4cGxpY2l0bHkgb3ZlcnJpZGUgdGhlIGJvcmRlciB3aWR0aCBpZiB0ZXh0IGlucHV0cyBvbmx5IGhhdmUgYVxuICogICAgICBgYm9yZGVyLWJvdHRvbWAuIER1ZSB0byBhIGxhY2sgb2Ygc3BlY2lmaWNpdHksIHRoZSBib3JkZXIgaGFzIHRvIGJlXG4gKiAgICAgIHJlc2V0IGZvciB0aGUgcmV2ZXJzZWQgbW9kaWZpZXIgZXhwbGljaXRseS5cbiAqIFsyOV0gQ2hlY2sgaWYgdGV4dGFyZWFzIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgYm9yZGVyLWJvdHRvbS1vbmx5XG4gKiAgICAgIHN0eWxpbmcgYW5kIG1vZGlmeSB0aGUgc2VsZWN0b3IgYWNjb3JkaW5nbHkuXG4gKiBbMzBdIEFkZCBob3Jpem9udGFsIHBhZGRpbmcgdG8gdGV4dGFyZWFzIGlmIHRoZXkgZG9u4oCZdCBoYXZlXG4gKiAgICAgIGJvcmRlci1ib3R0b20tb25seSBzdHlsaW5nLlxuICogWzMxXSBUaGUgZmFrZSBsaW5lIHRvIGNvdmVyIHRoZSBib3JkZXIgYmV0d2VlbiBpbnB1dCBhbmQgYWRkb24gaXMgbm90IG5lZWRlZFxuICogICAgICBpbiBCcm9uc29uLUF1ZGksIGJlY2F1c2UgdGhlcmUgaXMgbm90IGJvcmRlciB0byBjb3Zlci5cbiAqIFszMl0gUmVxdWlyZWQgdG8gZGlzcGxheSB0aGUgYm9yZGVyIGNvbG9yIGNvcnJlY3Qgb24gaU9TLlxuICogWzMzXSBFbmFibGUgZmxleCB3cmFwIHRvIGFsbG93IHBvc2l0aW9uaW5nIG9mIHRoZSBjaGFyYWN0ZXIgY291bnRlciBiZWxvd1xuICogICAgICB0ZXh0YXJlYXMuXG4gKiBbMzRdIEZpeCBwb3NpdGlvbmluZyBvZiAobm9uLXRleHRhcmVhKSBpbnB1dCBmaWVsZHMgKHdpdGggYWRkb24pIGJlY2F1c2VcbiAqICAgICAgb2YgWzMzXS5cbiAqIFszNV0gU3RyZXRjaCB0aGUgY291bnRlciB0byBmdWxsIHdpZHRoIHRvIGVuc3VyZSBpdCB3aWxsIGJlIGRpc3BsYXllZCBiZWxvd1xuICogICAgICB0ZXh0YXJlYS5cbiAqIFszNV0gSGlkZSBjb3VudGVyIGZvciBkaXNhYmxlZCBhbmQgcmVhZC1vbmx5IGlucHV0IGZpZWxkcy5cbiAqIFszN10gU3R5bGVzIGZvciB0aGUgY291bnRlciBhbGVydCBzdGF0ZS5cbiAqIFszOF0gUmVxdWlyZXMgc3RhdGUtY2xhc3MgdG8gYmUgYXBwbGllZCB0byBpbnB1dCB3cmFwcGVyIChgLmMtaW5wdXRgKVxuICogICAgICBpbnN0ZWFkIG9mIGFjdHVhbCBpbnB1dC4gVGhpcyBkZXJpdmVzIG9uIGhvdyBzdGF0ZSBjbGFzc2VzIGFyZVxuICogICAgICBzZXQgb24gb3RoZXIgdHlwZXMgb2YgaW5wdXRzLlxuICogICAgICBCdXQgZHVlIHRvIHRoZSBsaW1pdGVkIHN0eWxpbmcgcG9zc2liaWxpdGllcyBvZiBuYXRpdmUgc2VsZWN0LFxuICogICAgICB0aGlzIGlzIGEgd29ya2Fyb3VuZCBhbmQgY2FuIGJlIHNlZW4gYXMgXCJwcm9ncmVzc2l2ZSBlbmhhbmNlbWVudFwiLlxuICogWzM5XSBDb25kaXRpb25hbGx5IHNob3cgc3RhdGUgaWNvbi4gRGVwZW5kaW5nIG9uIGJyYW5kIGUuZy4gdGhlIHN0YXRlLWljb25cbiAqICAgICAgZm9yIGludmFsaWQgKGVycm9yKSBpbnB1dHMgZG8gbm90IGhhdmUgYSBzdGF0ZS1pY29uIGJ1dCBhbiBlcnJvciBtZXNzYWdlLlxuICogWzQwXSBPdmVyd3JpdGUgZGVmYXVsdCBgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsYCBvbmx5IHdoZW4gYCRpbnB1dC1ib3JkZXItd2lkdGgtZm9jdXNgXG4gKiAgICAgIGlzIGxhcmdlciB0aGFuIGAkaW5wdXQtYm9yZGVyLXdpZHRoYCB0byBhdm9pZCBjaG9wcHkgYW5pbWF0aW9ucyBkdWVcbiAqICAgICAgYGJvcmRlci13aWR0aGAgdHJhbnNpdGlvbnMuXG4gKiBbNDFdIFVzZSB0aGUgc2FtZSB0cmFuc2l0aW9uIGZvciBhbGwgZGlyZWN0IGNoaWxkcmVuIChlLmcuIGAuYy1pbnB1dF9fYWRkb25gKVxuICogWzQyXSBBbGlnbiBjb2xvciBhbmQgZm9udC13ZWlnaHQgc2V0dGluZ3MgYWNjb3JkaW5nIHRvIENvbWJvYm94IHN0eWxlc1xuICogICAgICBhcyBwcm9ncmVzc2l2ZSBlbmhhbmNlbWVudCwgd2hpY2ggaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgYnkgYWxsXG4gKiAgICAgIGJyb3dzZXJzLCBzZWUgYWxzbzogaHR0cHM6Ly9jYW5pdXNlLmNvbS9jc3MtaGFzKS5cbiAqIFs0M10gRW5zdXJlIGNvcnJlY3Qgb3B0aW9uIHRleHQgY29sb3IgKGZvciBicm93c2VycyB0aGF0IHN1cHBvcnQgc2V0dGluZ1xuICogICAgICBvcHRpb24gY29sb3JzIHZpYSBDU1MpLCBwcmV2ZW50IGluaGVyaXRhbmNlIGZyb20gYDxzZWxlY3Q+YC5cbiAqL1xuLmMtaW5wdXQge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oKTtcbiAgICBAaWYgKCRpbnB1dC1ib3JkZXItd2lkdGgtZm9jdXMgPiAkaW5wdXQtYm9yZGVyLXdpZHRoKSB7XG4gICAgICAgIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgYm94LXNoYWRvdywgb3BhY2l0eTsgLyogWzQwXSAqL1xuICAgIH1cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IC8qIFszM10gKi9cblxuICAgID4gKiB7XG4gICAgICAgIHRyYW5zaXRpb246IGluaGVyaXQ7IC8qIFs0MV0gKi9cbiAgICB9XG5cbiAgICAmLmMtaW5wdXQtLXNlbGVjdCB7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkaW5wdXQtc2VsZWN0LWRyb3Bkb3duLWljb24tc2l6ZSxcbiAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6IGZhbHNlLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRpbnB1dC1zZWxlY3QtZHJvcGRvd24taWNvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlOyAvKiBbMjBdICovXG4gICAgICAgICAgICByaWdodDogJGlucHV0LXNlbGVjdC1kcm9wZG93bi1pY29uLXBhZGRpbmc7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IC8qIFsyMF0gKi9cbiAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgIGNvbG9yOiAkaW5wdXQtYWRkb24tZm9udC1jb2xvci1uby1iZztcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbMThdICovXG4gICAgICAgIH1cblxuICAgICAgICAvKiBbMzhdICovXG4gICAgICAgICYuaXMtZGlzYWJsZWQge1xuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRpbnB1dC1hZGRvbi1mb250LWNvbG9yLWRpc2FibGVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAuYy1pbnB1dF9faW5wdXQge1xuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbiAgICAgICAgICAgICY6aGFzKDpkaXNhYmxlZDpjaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRpbnB1dC1mb250LXdlaWdodC1wbGFjZWhvbGRlcjsgLyogWzQyXSAqL1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkaW5wdXQtZm9udC1jb2xvci1wbGFjZWhvbGRlcjsgLyogWzQyXSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuXG4gICAgICAgICAgICAmOi1tb3otZm9jdXNyaW5nIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7IC8qIFsyMV0gKi9cbiAgICAgICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgJGlucHV0LWZvbnQtY29sb3I7IC8qIFsyMV0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6LW1zLWV4cGFuZCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgLyogWzI2XSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICBvcHRpb24ge1xuICAgICAgICAgICAgY29sb3I6ICRpbnB1dC1zZWxlY3Qtb3B0aW9uLWNvbG9yOyAvKiBbNDNdICovXG5cbiAgICAgICAgICAgICY6ZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkaW5wdXQtc2VsZWN0LW9wdGlvbi1jb2xvci1kaXNhYmxlZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkaW5wdXQtYWRkb24taWNvbi1zaXplLFxuICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAxXG4gICAgICAgICk7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgQGlmICgkaW5wdXQtYm9yZGVyLXdpZHRoICE9ICRpbnB1dC1ib3JkZXItd2lkdGgtZm9jdXMpIHsgLyogWzI4XSAqL1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigpO1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICByaWdodDogMDsgLyogWzMzXSAqL1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbGVmdDogMDsgLyogWzMzXSAqL1xuICAgICAgICAgICAgaGVpZ2h0OiAkaW5wdXQtYm9yZGVyLXdpZHRoLWZvY3VzO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyAvKiBbMzNdICovXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsgLyogWzMzXSAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGlucHV0LWJvcmRlci1jb2xvci1mb2N1cztcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzLXdpdGhpbiB7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLmMtZm9ybS1maWVsZC5pcy1yZWFkb25seSAmOmZvY3VzLXdpdGhpbiB7XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGlucHV0LWJvcmRlci1jb2xvci1yZWFkb25seTsgLyogWzIyXSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb3JkZXIvb3JkZXIgKi9cbiAgICAgICAgQGluY2x1ZGUgdmFyeSgkbG9vcDogJGlucHV0LXN0YXR1cy10aGVtZXMtbWVyZ2VkLCAkY3JlYXRlOiBcImN1c3RvbVwiKSB7XG5cbiAgICAgICAgICAgIEBhdC1yb290IHtcbiAgICAgICAgICAgICAgICAuYy1mb3JtLWZpZWxkLmlzLSN7JHZhcnktbG9vcC1lbnRpdHl9ICYsXG4gICAgICAgICAgICAgICAgLmMtaW5wdXQuaXMtI3skdmFyeS1sb29wLWVudGl0eX0ge1xuXG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXJ5LWdldChib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuYy1mb3JtLWZpZWxkLmlzLSN7JHZhcnktbG9vcC1lbnRpdHl9IHtcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICAgICAmOmZvY3VzLXdpdGhpbiB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtY2xhc3MgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIC5jLWlucHV0OjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcnktZ2V0KGJvcmRlci1jb2xvci1ob3Zlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmMtaW5wdXQuaXMtI3skdmFyeS1sb29wLWVudGl0eX0ge1xuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICY6Zm9jdXMtd2l0aGluIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXJ5LWdldChib3JkZXItY29sb3ItaG92ZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG4gICAgLmMtaW5wdXRfX2lucHV0IHtcbiAgICAgICAgZmxleC1ncm93OiAxOyAvKiBbMzRdICovXG4gICAgICAgIGZsZXgtc2hyaW5rOiAxOyAvKiBbMzRdICovXG4gICAgICAgIGZsZXgtYmFzaXM6IDA7IC8qIFszNF0gKi9cbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogMDsgLyogWzI1XSAqL1xuICAgICAgICBwYWRkaW5nOiAwICRpbnB1dC1wYWRkaW5nO1xuICAgICAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7IC8qIFsxNF0gKi9cbiAgICAgICAgZm9udC13ZWlnaHQ6ICRpbnB1dC1mb250LXdlaWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogJGlucHV0LWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkaW5wdXQtZm9udC1jb2xvcjtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgYXBwZWFyYW5jZTogbm9uZTsgLyogWzExXSAqL1xuICAgICAgICBAaWYgKCRpbnB1dC1ib3JkZXItcmFkaXVzICE9IDApIHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRpbnB1dC1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJGlucHV0LWJvcmRlci1yYWRpdXM7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRpbnB1dC1ib3JkZXItcmFkaXVzICE9IDApIHtcbiAgICAgICAgICAgICY6b25seS1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGlucHV0LWJvcmRlci1yYWRpdXM7IC8qIFsxNV0gKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KHRleHRhcmVhKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgICRpbnB1dC1mb250LXNpemUsXG4gICAgICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0LFxuICAgICAgICAgICAgKTsgLyogWzEyXSAqL1xuICAgICAgICAgICAgaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0OyAvKiBbMTJdICovXG4gICAgICAgIH1cblxuICAgICAgICBAYXQtcm9vdCB7XG5cbiAgICAgICAgICAgIHRleHRhcmVhLmMtaW5wdXRfX2lucHV0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkaW5wdXQtdGV4dGFyZWEtZm9udC1zaXplLFxuICAgICAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICRpbnB1dC10ZXh0YXJlYS1saW5lLWhlaWdodCxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87IC8qIFszNF0gKi9cbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogJGlucHV0LXRleHRhcmVhLXNwYWNpbmctdmVydGljYWw7IC8qIFsxM10gKi9cbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGlucHV0LXRleHRhcmVhLXNwYWNpbmctdmVydGljYWw7IC8qIFsxM10gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2VsZWN0LmMtaW5wdXRfX2lucHV0IHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGlucHV0LWJvcmRlci1yYWRpdXM7IC8qIFsxN10gKi9cbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJGlucHV0LWJvcmRlci1yYWRpdXM7IC8qIFsxN10gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLmMtaW5wdXQtLXNlbGVjdCAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICgkaW5wdXQtc2VsZWN0LWRyb3Bkb3duLWljb24tcGFkZGluZyArICRpbnB1dC1hZGRvbi1wYWRkaW5nICsgJGlucHV0LWFkZG9uLWljb24tc2l6ZSk7IC8qIFsxOV0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWlucHV0LS1yZXZlcnNlZCAmIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJGlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAwOyAvKiBbN10gKi9cbiAgICAgICAgICAgIEBpZiAoJGlucHV0LWJvcmRlci1yYWRpdXMgIT0gMCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRpbnB1dC1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkaW5wdXQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQtcGxhY2Vob2xkZXI7XG4gICAgICAgICAgICBjb2xvcjogJGlucHV0LWZvbnQtY29sb3ItcGxhY2Vob2xkZXI7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6LW1zLWNsZWFyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IC8qIFsyNF0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBIb3ZlciBzdGF0ZSBzdHlsZXNcbiAgICAgICAgICovXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkaW5wdXQtYm9yZGVyLWNvbG9yLWhvdmVyO1xuXG4gICAgICAgICAgICB+IC5jLWlucHV0X19hZGRvbiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkaW5wdXQtYm9yZGVyLWNvbG9yLWhvdmVyOyAvKiBbM10gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvY3VzIHN0YXRlIHN0eWxlc1xuICAgICAgICAgKi9cbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGlucHV0LWJvcmRlci1jb2xvci1mb2N1cztcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAgICAgICAgIH4gLmMtaW5wdXRfX2FkZG9uIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRpbnB1dC1ib3JkZXItY29sb3ItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEaXNhYmxlZCBzdGF0ZSBzdHlsZXNcbiAgICAgICAgICovXG4gICAgICAgICYuaXMtZGlzYWJsZWQsXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGlucHV0LWJvcmRlci1jb2xvci1kaXNhYmxlZDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgICAgICAgICAgY29sb3I6ICRpbnB1dC1mb250LWNvbG9yLWRpc2FibGVkO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogJGlucHV0LWZvbnQtY29sb3ItZGlzYWJsZWQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAxOyAvKiBbMzJdICovXG5cbiAgICAgICAgICAgIEBpZiAoJGlucHV0LXNlbGVjdC1kcm9wZG93bi1pY29uLWRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbMjZdICovXG4gICAgICAgICAgICAgICAgei1pbmRleDogMTsgLyogWzI2XSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB+IC5jLWlucHV0X19hZGRvbiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkaW5wdXQtYm9yZGVyLWNvbG9yLWRpc2FibGVkICFpbXBvcnRhbnQ7IC8qIFsyM10gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBpdGNzcy9uby1hdC1pbXBvcnRhbnQgKi9cbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDsgLyogWzIzXSAqL1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkaW5wdXQtYWRkb24tZm9udC1jb2xvci1kaXNhYmxlZDsgLyogWzIzXSAqL1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAgICAgICAgICY6bm90KC5jLWlucHV0X19hZGRvbi0tbm8tYmFja2dyb3VuZCkge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYWRkb24tYmFja2dyb3VuZC1kaXNhYmxlZDsgLyogWzIzXSAqL1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGlucHV0LWFkZG9uLWZvbnQtY29sb3ItZGlzYWJsZWQ7IC8qIFsyM10gKi9cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LWNsYXNzICovXG4gICAgICAgICAgICAgICAgJi5jLWlucHV0X19hZGRvbi0tbm8tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkaW5wdXQtYWRkb24tZm9udC1jb2xvci1uby1iZy1kaXNhYmxlZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJlYWRvbmx5IHN0YXRlIHN0eWxlc1xuICAgICAgICAgKi9cbiAgICAgICAgJi5pcy1yZWFkb25seSxcbiAgICAgICAgJltyZWFkb25seV0ge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkaW5wdXQtYm9yZGVyLWNvbG9yLXJlYWRvbmx5O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtcmVhZG9ubHk7XG4gICAgICAgICAgICBjb2xvcjogJGlucHV0LWZvbnQtY29sb3ItcmVhZG9ubHk7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAkaW5wdXQtZm9udC1jb2xvci1yZWFkb25seTtcblxuICAgICAgICAgICAgfiAuYy1pbnB1dF9fYWRkb24ge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGlucHV0LWJvcmRlci1jb2xvci1yZWFkb25seTsgLyogWzIyXSAqL1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLXJlYWRvbmx5OyAvKiBbMjJdICovXG4gICAgICAgICAgICAgICAgY29sb3I6ICRpbnB1dC1hZGRvbi1mb250LWNvbG9yLXJlYWRvbmx5OyAvKiBbMjJdICovXG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICAgICAgICAgJjpub3QoLmMtaW5wdXRfX2FkZG9uLS1uby1iYWNrZ3JvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1hZGRvbi1iYWNrZ3JvdW5kLXJlYWRvbmx5OyAvKiBbMjJdICovXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGlucHV0LWJvcmRlci1jb2xvci1yZWFkb25seTsgLyogWzIyXSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzIH4gLmMtaW5wdXRfX2FkZG9uIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRpbnB1dC1ib3JkZXItY29sb3ItcmVhZG9ubHk7ICAvKiBbMjJdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbnB1dCBzdGF0dXMgdGhlbWVzXG4gICAgICAgICAqL1xuICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb3JkZXIvb3JkZXIgKi9cbiAgICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICRpbnB1dC1zdGF0dXMtdGhlbWVzLW1lcmdlZCwgJGNyZWF0ZTogXCJjdXN0b21cIikge1xuXG4gICAgICAgICAgICAmLmlzLSN7JHZhcnktbG9vcC1lbnRpdHl9IHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IGltcG9ydGFudCh2YXJ5LWdldChib3JkZXItY29sb3IpLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyeS1nZXQoZm9udC1jb2xvcik7XG5cbiAgICAgICAgICAgICAgICB+IC5jLWlucHV0X19hZGRvbixcbiAgICAgICAgICAgICAgICB+IC5jLWlucHV0X19zdGF0ZS1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXJ5LWdldChib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyeS1nZXQoYWRkb24tY29sb3IpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtY2xhc3MgKi9cbiAgICAgICAgICAgICAgICAgICAgJi5jLWlucHV0X19hZGRvbi0tbm8tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyeS1nZXQoYWRkb24tY29sb3Itbm8tYmcpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiB2YXJ5LWdldChib3gtc2hhZG93KTtcblxuICAgICAgICAgICAgICAgICAgICB+IC5jLWlucHV0X19hZGRvbixcbiAgICAgICAgICAgICAgICAgICAgfiAuYy1pbnB1dF9fc3RhdGUtaWNvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcnktZ2V0KGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXJ5LWdldChib3JkZXItY29sb3ItaG92ZXIpO1xuXG4gICAgICAgICAgICAgICAgICAgIH4gLmMtaW5wdXRfX2FkZG9uLFxuICAgICAgICAgICAgICAgICAgICB+IC5jLWlucHV0X19zdGF0ZS1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyeS1nZXQoYm9yZGVyLWNvbG9yLWhvdmVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGlucHV0LWJvcmRlci1ib3R0b20tb25seSkge1xuXG4gICAgICAgICAgICAkaW5wdXQtYm9yZGVyLWJvdHRvbS1vbmx5LXNlbGVjdG9yOiAvKiBbMjldICovXG4gICAgICAgICAgICAgICAgaWYoJGlucHV0LXRleHRhcmVhLWJvcmRlci1ib3R0b20tb25seSwgXCIuYy1pbnB1dFwiLCBcIi5jLWlucHV0Om5vdCguYy1pbnB1dC0tdGV4dGFyZWEpXCIpO1xuXG4gICAgICAgICAgICAjeyRpbnB1dC1ib3JkZXItYm90dG9tLW9ubHktc2VsZWN0b3J9ICYsIC8qIFsyOV0gKi9cbiAgICAgICAgICAgIC5jLWlucHV0LS1yZXZlcnNlZCAmIHtcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDA7IC8qIFsyOF0gKi9cbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAkaW5wdXQtYm9yZGVyLXdpZHRoOyAvKiBbMjhdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAobm90ICRpbnB1dC10ZXh0YXJlYS1ib3JkZXItYm90dG9tLW9ubHkpIHsgLyogWzMwXSAqL1xuICAgICAgICAgICAgICAgIC5jLWlucHV0LS10ZXh0YXJlYSAmIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGlucHV0LXRleHRhcmVhLXNwYWNpbmctaG9yaXpvbnRhbDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkaW5wdXQtdGV4dGFyZWEtc3BhY2luZy1ob3Jpem9udGFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtaW5wdXRfX2FkZG9uIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAgICRpbnB1dC1mb250LXNpemUsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6IDFcbiAgICAgICAgKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyAvKiBbMTZdICovXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIFsxNl0gKi9cbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8qIFsxNl0gKi9cbiAgICAgICAgb3JkZXI6IDU7IC8qIFs4XSAqL1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbNl0gKi9cbiAgICAgICAgcGFkZGluZy1yaWdodDogJGlucHV0LWFkZG9uLXBhZGRpbmc7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGlucHV0LWFkZG9uLXBhZGRpbmc7XG4gICAgICAgIGJvcmRlcjogJGlucHV0LWJvcmRlcjsgLyogWzddICovXG4gICAgICAgIGJvcmRlci1sZWZ0OiAwOyAvKiBbN10gKi9cbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYWRkb24tYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRpbnB1dC1hZGRvbi1mb250LWNvbG9yO1xuICAgICAgICBAaWYgKCRpbnB1dC1ib3JkZXItcmFkaXVzICE9IDApIHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkaW5wdXQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkaW5wdXQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGlucHV0LWFkZG9uLW1pbi13aWR0aCkge1xuICAgICAgICAgICAgJjpub3QoLmMtaW5wdXRfX2FkZG9uLS1uby1iYWNrZ3JvdW5kKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAkaW5wdXQtYWRkb24tbWluLXdpZHRoOyAvKiBbNV0gKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWljb24ge1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7IC8qIFsyN10gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWlucHV0LS1yZXZlcnNlZCAmIHtcbiAgICAgICAgICAgIG9yZGVyOiAtNTsgLyogWzhdICovXG4gICAgICAgICAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7IC8qIFs3XSAqL1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwOyAvKiBbN10gKi9cbiAgICAgICAgICAgIEBpZiAoJGlucHV0LWJvcmRlci1yYWRpdXMgIT0gMCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGlucHV0LWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJGlucHV0LWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOndoZXJlKGJ1dHRvbikge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRpbnB1dC1hZGRvbi1mb250LWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkaW5wdXQtYWRkb24tZm9udC1jb2xvci1mb2N1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBNb2RpZnkgZmFrZSBsaW5lIHRvIGNvdmVyIHVwIGJvcmRlciBiZXR3ZWVuIGlucHV0IGFuZCBhZGRvblxuICAgICAgICAgKiB3aGVuIGAuYy1pbnB1dC0tcmV2ZXJzZWRgIG1vZGlmaWVyIGlzIHVzZWQuXG4gICAgICAgICAqL1xuICAgICAgICAmOjpiZWZvcmUge1xuXG4gICAgICAgICAgICAuYy1pbnB1dC0tcmV2ZXJzZWQgJiB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgbGVmdDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkaW5wdXQtYm9yZGVyLWJvdHRvbS1vbmx5KSB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgICAgICAgJixcbiAgICAgICAgICAgIC5jLWlucHV0LS1yZXZlcnNlZCAmIHtcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDA7IC8qIFsyOF0gKi9cbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAkaW5wdXQtYm9yZGVyLXdpZHRoOyAvKiBbMjhdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLWlucHV0LS1yZXZlcnNlZCAmIHtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGlucHV0LWFkZG9uLXBhZGRpbmc7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgLyogWzMxXSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBidXR0b24uYy1pbnB1dF9fYWRkb24ge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDsgLyogWzEwXSAqL1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDsgLyogWzEwXSAqL1xuICAgICAgICBhcHBlYXJhbmNlOiBub25lOyAvKiBbMTBdICovXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7IC8qIFsxMF0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtaW5wdXRfX2FkZG9uLS1uby1iYWNrZ3JvdW5kIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRpbnB1dC1hZGRvbi1mb250LWNvbG9yLW5vLWJnO1xuICAgIH1cblxuICAgIC5jLWlucHV0X19zdGF0ZS1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCRsaW5lLWhlaWdodDogbnVsbCk7XG4gICAgICAgIC8qIFs5XSAqL1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAgICRpbnB1dC1zdGF0ZS1pY29uLXNpemUsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICRpbnB1dC1oZWlnaHQgLSAoJGlucHV0LWJvcmRlci13aWR0aCAqIDIpLFxuICAgICAgICApO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRpbnB1dC1zdGF0ZS1pY29uLXBhZGRpbmc7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGlucHV0LXN0YXRlLWljb24tcGFkZGluZztcbiAgICAgICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtYmFja2dyb3VuZDtcblxuICAgICAgICAuYy1pbnB1dC0tcmV2ZXJzZWQgJixcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkaW5wdXQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkaW5wdXQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBvcmRlci9vcmRlciAqL1xuICAgICAgICBAaW5jbHVkZSB2YXJ5KCRsb29wOiAkaW5wdXQtc3RhdHVzLXRoZW1lcy1tZXJnZWQsICRjcmVhdGU6IFwiY3VzdG9tXCIpIHtcbiAgICAgICAgICAgIC5jLWlucHV0X19pbnB1dC5pcy0jeyR2YXJ5LWxvb3AtZW50aXR5fSB+ICYge1xuICAgICAgICAgICAgICAgIEBpZiAodmFyeS1nZXQoZW5hYmxlLXN0YXRlLWljb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyeS1nZXQoYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcnktZ2V0KGljb24tY29sb3IpO1xuXG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHZhcnktZ2V0KGljb24pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgLyogWzM5XSAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogTW9kaWZ5IGZha2UgbGluZSB0byBjb3ZlciB1cCB0aGUgUk9VTkRFRCBib3JkZXIgYmV0d2VlbiBpbnB1dCBhbmQgc3RhdGUgaWNvbi5cbiAgICAgICAgICovXG4gICAgICAgIEBpZiAoJGlucHV0LWJvcmRlci1yYWRpdXMgIT0gMCkge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcblxuICAgICAgICAgICAgICAgIC5jLWlucHV0LS1yZXZlcnNlZCAmIHsgLyogWzRdICovXG4gICAgICAgICAgICAgICAgICAgIHRvcDogLSgkaW5wdXQtYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtKCRpbnB1dC1ib3JkZXItd2lkdGgpO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJGlucHV0LWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3A6ICRpbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRpbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGlucHV0LWJvcmRlci1ib3R0b20tb25seSkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMDsgLyogWzI4XSAqL1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogJGlucHV0LWJvcmRlci13aWR0aDsgLyogWzI4XSAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmIG5vdCAoJGlucHV0LWJvcmRlci1ib3R0b20tb25seSkge1xuICAgICAgICAuYy1pbnB1dF9fYWRkb24sXG4gICAgICAgIC5jLWlucHV0X19zdGF0ZS1pY29uIHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAqIEZha2UgbGluZSB0byBjb3ZlciB1cCB0aGUgYm9yZGVyIGJldHdlZW4gaW5wdXQgYW5kIGFkZG9uIG9yIHN0YXRlIGljb24uXG4gICAgICAgICAgICAqIFRoaXMgY2FuIG5vdCBiZSBhY2hpZXZlZCB3aXRoIHNpYmxpbmcgc2VsZWN0b3IgYXMgdGhpcyB3b3VsZCBoYXZlIHRvIGFmZmVjdFxuICAgICAgICAgICAgKiB0aGUgaW5wdXQgQkVGT1JFIHRoZSBhZGRvbiBvciBzdGF0ZSBpY29uLlxuICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogKCRpbnB1dC1hZGRvbi1mYWtlLWxpbmUtd2lkdGggKiAwLjUpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jLWlucHV0X19jb3VudGVyIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoJGlucHV0LWNvdW50ZXItZm9udC1zaXplKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7IC8qIFszNV0gKi9cbiAgICAgICAgcGFkZGluZy10b3A6ICRpbnB1dC1jb3VudGVyLXNwYWNpbmctdG9wO1xuICAgICAgICBmb250LXdlaWdodDogJGlucHV0LWNvdW50ZXItZm9udC13ZWlnaHQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgY29sb3I6ICRpbnB1dC1jb3VudGVyLWNvbG9yO1xuXG4gICAgICAgIC5jLWlucHV0X19pbnB1dCB+ICYge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJGlucHV0LWNvdW50ZXItc3BhY2luZy10b3A7XG4gICAgICAgIH1cblxuICAgICAgICAuYy1pbnB1dF9faW5wdXQuaXMtZGlzYWJsZWQgKyAmLFxuICAgICAgICAuYy1pbnB1dF9faW5wdXRbZGlzYWJsZWRdICsgJixcbiAgICAgICAgLmMtaW5wdXRfX2lucHV0LmlzLXJlYWRvbmx5ICsgJixcbiAgICAgICAgLmMtaW5wdXRfX2lucHV0W3JlYWRvbmx5XSArICYge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgLyogWzM1XSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAgICAgLmMtaW5wdXRfX2NvdW50ZXItLWFsZXJ0IHsgLyogWzM3XSAqL1xuICAgICAgICAgICAgY29sb3I6ICRpbnB1dC1jb3VudGVyLWNvbG9yLWFsZXJ0O1xuICAgICAgICB9XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSU5QVVRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2tvZGEtaW5wdXQtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtSEVJR0hULVNUQVRJQy1MQUJFTCAhZGVmYXVsdDtcbiRza29kYS1pbnB1dC1wYWRkaW5nLWJvdHRvbTogICAgICAgICAgJEdMT0JBTC1JTlBVVC1QQURESU5HLVZFUlRJQ0FMICFkZWZhdWx0O1xuJHNrb2RhLWlucHV0LXBhZGRpbmctdG9wOiAgICAgICAgICAgICAoKCRza29kYS1pbnB1dC1wYWRkaW5nLWJvdHRvbSAqIDIpICsgJEdMT0JBTC1JTlBVVC1MQUJFTC1TSVpFKSAhZGVmYXVsdDtcbiRza29kYS1pbnB1dC1sYWJlbC1vZmZzZXQtaG9yaXpvbnRhbDogJEdMT0JBTC1JTlBVVC1QQURESU5HLUhPUklaT05UQUwgIWRlZmF1bHQ7XG4kc2tvZGEtaW5wdXQtYm9yZGVyLWZpbGxlZDogICAgICAgICAgICRHTE9CQUwtSU5QVVQtQk9SREVSLUNPTE9SLUZJTExFRCAhZGVmYXVsdDtcbiRza29kYS1pbnB1dC1ib3JkZXItd2lkdGgtZXJyb3I6ICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItV0lEVEgtRVJST1IgIWRlZmF1bHQ7XG4kc2tvZGEtaW5wdXQtYm9yZGVyLXJhZGl1czogICAgICAgICAgICRHTE9CQUwtSU5QVVQtQk9SREVSLVJBRElVUyAhZGVmYXVsdDtcblxuJHNrb2RhLWlucHV0LWFkZG9uLW1pbi13aWR0aDogICAgICAgICBjYWxjKDRjaCArICN7JEdMT0JBTC1JTlBVVC1BRERPTi1QQURESU5HLUhPUklaT05UQUwgKiAyfSkgIWRlZmF1bHQ7XG5cbiRza29kYS1pbnB1dC1zZWxlY3QtaWNvbi1wb3NpdGlvbjogICAgMCAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gUGxhY2Vob2xkZXIsIG5vbi1maWxsZWQuXG4gKiAgICAgYDpwbGFjZWhvbGRlci1zaG93bmAgY2FuIG5vdCBiZSB1dGlsaXplZCBkdWUgdG8gcGFydGx5IGN1c3RvbSBlbGVtZW50XG4gKiAgICAgc3RydWN0dXJlIHdpdGggd3JhcHBlcnMgYW5kIHBzZXVkby1lbGVtZW50cy5cbiAqIFsyXSBGaWxsZWQgaW5wdXRzLlxuICogWzNdIFZlcnRpY2FsbHkgY2VudGVyIG5leHQgdG8gaW5wdXQuXG4gKiBbNF0gVmlzdWFsbHkgY2VudGVyIG9mIHZpc3VhbCBmYWtlIGNvbnRhaW5lciAoaW5wdXQgKyBsYWJlbClcbiAqICAgICBpbiBmb3JtLWZpZWxkIGNvbnRleHQuXG4gKiBbNV0gRXhjbHVkZSBoZWlnaHQgYWRqdXN0bWVudCBmb3IgY29tYm9ib3ggKHNlYXJjaCkgdG8gdXNlIHJlZ3VsYXIgaW5wdXQgaGVpZ2h0Li5cbiAqIFs2XSBBZGRvbiBjYW4gY29udGFpbiA0IGNoYXJhY3RlcnMgd2hpbGUgbWFpbnRhaW5pbmcgYWxpZ25tZW50IHdpdGggb3RoZXIgaW5wdXRzLlxuICogICAgIFNlZSBpbnB1dCBjb21wb25lbnQgbm90ZXMgZm9yIGRldGFpbHMuXG4gKi9cbi5jLWlucHV0IHtcblxuICAgICYsXG4gICAgJi5jLWlucHV0LS1yZXZlcnNlZCB7XG5cbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1jbGFzcyAqL1xuICAgICAgICAuYy1pbnB1dF9faW5wdXQuYy1pbnB1dF9faW5wdXQsXG4gICAgICAgIC5jLWlucHV0X19hZGRvbiB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG5cbiAgICAmLmMtaW5wdXQtLXNlbGVjdCB7XG5cbiAgICAgICAgQGF0LXJvb3QgLmMtZm9ybS1maWVsZDpub3QoLmMtZm9ybS1maWVsZC0taW5saW5lKSAmIHtcblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRvcDogJHNrb2RhLWlucHV0LXNlbGVjdC1pY29uLXBvc2l0aW9uOyAvKiBbNF0gKi9cbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7IC8qIFs0XSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG4gICAgLmMtaW5wdXRfX2FkZG9uIHtcblxuICAgICAgICAuYy1pbnB1dF9faW5wdXQ6d2hlcmUoW2Rpc2FibGVkXSwgW3JlYWRvbmx5XSkgfiAmOm5vdCguYy1pbnB1dF9fYWRkb24tLW5vLWJhY2tncm91bmQpIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNrb2RhLWlucHV0LWFkZG9uLW1pbi13aWR0aDsgLyogWzZdICovXG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZXBsaWNhdGUgc29tZSBzdHlsZXMgZnJvbSB0aGUgYGJ1dHRvbi1pY29uLXN0YXRlcygpYCBtaXhpblxuICAgICAgICAvLyBkdWUgdG8gdGhlIGNvbXBsZXggc2VsZWN0b3IvY29uZGl0aW9ucy5cbiAgICAgICAgJjp3aGVyZShidXR0b24pOmhhcyguYy1pY29uKSB7XG5cbiAgICAgICAgICAgIC5jLWljb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1pY29uLXN0YXRlcyhcbiAgICAgICAgICAgICAgICAgICAgJGZvY3VzLXN0YXRlOiAgICAgZmFsc2UsIC8vIEZvY3VzIGhhbmRsZWQgdmlhIGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAkaGFuZGxlLXBvc2l0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwO1xuXG4gICAgICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuICAgICAgICAgICAgICAgIC5jLWljb246OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9jdXMtc3R5bGVzKCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE92ZXJ3cml0ZSBkZWZhdWx0XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtZm9ybS1maWVsZDpub3QoLmMtZm9ybS1maWVsZC0taW5saW5lKTpub3QoLmMtZm9ybS1maWVsZC0tbm8tZmxvYXRpbmcpOm5vdCguYy1mb3JtLWZpZWxkLS10ZXh0YXJlYSkge1xuXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbiAgICAgICAgLmMtaW5wdXRfX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkc2tvZGEtaW5wdXQtcGFkZGluZy10b3A7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHNrb2RhLWlucHV0LXBhZGRpbmctYm90dG9tO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1mb3JtLWZpZWxkLmMtZm9ybS1maWVsZC0tdGV4dGFyZWEge1xuXG4gICAgICAgIC5jLWlucHV0X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJHNrb2RhLWlucHV0LXBhZGRpbmctdG9wO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1mb3JtLWZpZWxkLS1pbmxpbmUge1xuXG4gICAgICAgIC5jLWZvcm0tZmllbGRfX2xhYmVsIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTsgLyogWzNdICovXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWZvcm0tZmllbGQtLXN0YXRpYyB7XG5cbiAgICAgICAgLmMtZm9ybS1maWVsZF9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tZmllbGQtbGFiZWwtc3BhY2luZztcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtZm9ybS1maWVsZDpub3QoLmMtZm9ybS1maWVsZC0tbm8tZmxvYXRpbmcsIC5jLWZvcm0tZmllbGQtLWlubGluZSwgLmMtZm9ybS1maWVsZC0tc3RhdGljKSAuYy1mb3JtLWZpZWxkX19sYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLyogWzNdICovXG4gICAgfVxuXG4gICAgLmMtZm9ybS1maWVsZC0tbm8tZmxvYXRpbmc6bm90KC5jLWZvcm0tZmllbGQtLXN0YXRpYykge1xuXG4gICAgICAgIC8vIE1pbWljIFwiZmFrZVwiIGNvbnRhaW5lciB0byBjcmVhdGUgc2FtZSBsb29rIGFzIGlmIHRoZSBsYWJlbCBpc1xuICAgICAgICAvLyBtb3ZlZCBpbnNpZGUgY29udGFpbmVyIChmbG9hdGluZyBsYWJlbCkuXG4gICAgICAgIC5jLWZvcm0tZmllbGRfX2xhYmVsIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkZm9ybS1maWVsZC1sYWJlbC1zcGFjaW5nO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2tvZGEtaW5wdXQtbGFiZWwtb2Zmc2V0LWhvcml6b250YWw7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2tvZGEtaW5wdXQtbGFiZWwtb2Zmc2V0LWhvcml6b250YWw7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkc2tvZGEtaW5wdXQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkc2tvZGEtaW5wdXQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtaW5wdXRfX2lucHV0IHtcbiAgICAgICAgICAgIGhlaWdodDogJHNrb2RhLWlucHV0LWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWNvbWJvYm94IC5jLWlucHV0X19pbnB1dCB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRpbnB1dC1oZWlnaHQ7IC8qIFs1XSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtaW5wdXRfX2lucHV0LFxuICAgICAgICAuYy1pbnB1dF9fYWRkb24ge1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbiAgICAuYy1pbnB1dF9faW5wdXQ6bm90KC5jLWlubGluZS1lZGl0YWJsZV9faW5wdXQsIC5pcy1lcnJvciwgW2Rpc2FibGVkXSwgW3JlYWRvbmx5XSwgOmZvY3VzKSB7XG5cbiAgICAgICAgLyogWzFdICovXG4gICAgICAgICY6bm90KFt2YWx1ZV0pLFxuICAgICAgICAmW3ZhbHVlPVwiXCJdIHtcblxuICAgICAgICB9XG5cbiAgICAgICAgLyogWzJdICovXG4gICAgICAgICZbdmFsdWVdOm5vdChbdmFsdWU9XCJcIl0pLFxuICAgICAgICAmOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pIHtcblxuICAgICAgICAgICAgJixcbiAgICAgICAgICAgIH4gLmMtaW5wdXRfX2FkZG9uIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRza29kYS1pbnB1dC1ib3JkZXItZmlsbGVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1pbnB1dF9faW5wdXQuaXMtZXJyb3Ige1xuXG4gICAgICAgICZbdmFsdWVdOm5vdChbdmFsdWU9XCJcIl0pLFxuICAgICAgICAmOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pIHtcblxuICAgICAgICAgICAgJixcbiAgICAgICAgICAgIH4gLmMtaW5wdXRfX2FkZG9uLFxuICAgICAgICAgICAgfiAuYy1pbnB1dF9fc3RhdGUtaWNvbiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogJHNrb2RhLWlucHV0LWJvcmRlci13aWR0aC1lcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuICAgIC8qIHN0eWxlbGludC1lbmFibGUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG5cbiAgICAuYy1pbnB1dF9fc3RhdGUtaWNvbixcbiAgICAuYy1pbnB1dF9fYWRkb24ge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkaW5wdXQtc3RhdGUtaWNvbi1wYWRkaW5nO1xuXG4gICAgICAgIC5jLWlucHV0LS1yZXZlcnNlZCAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGlucHV0LXN0YXRlLWljb24tcGFkZGluZztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuYy1pbnB1dC0tcmV2ZXJzZWQgJixcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBidXR0b24uYy1pbnB1dF9fYWRkb24sXG4gICAgYS5jLWlucHV0X19hZGRvbiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb2N1cy1zdHlsZXMoKTtcbiAgICAgICAgfVxuXG4gICAgfVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0VSUk9SLU1FU1NBR0UgKFNldHRpbmdzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRlcnJvci1tZXNzYWdlLXRleHQtc2l6ZTogICAgICAgICRGUy0yICFkZWZhdWx0O1xuJGVycm9yLW1lc3NhZ2UtdGV4dC1mb250LXdlaWdodDogJEdMT0JBTC1GT05ULVdFSUdIVC1SRUdVTEFSICFkZWZhdWx0O1xuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0VSUk9SLU1FU1NBR0VcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kZXJyb3ItbWVzc2FnZS10ZXh0LXNpemU6ICAgICAgICAkRlMtMSAhZGVmYXVsdDtcbiRlcnJvci1tZXNzYWdlLXRleHQtZm9udC13ZWlnaHQ6IG51bGwgIWRlZmF1bHQ7XG4kZXJyb3ItbWVzc2FnZS1zcGFjaW5nLXRvcDogICAgICAwICFkZWZhdWx0O1xuJGVycm9yLW1lc3NhZ2Utc3BhY2luZy1ib3R0b206ICAgbnVsbCAhZGVmYXVsdDtcbiRlcnJvci1tZXNzYWdlLXRleHQtY29sb3I6ICAgICAgICRDT0xPUi1BTEVSVCAhZGVmYXVsdDtcbiRlcnJvci1tZXNzYWdlLWxpbmstdGV4dC1jb2xvcjogIGN1cnJlbnRDb2xvciAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gSnVzdCBvdXRwdXQgdGhlIGRlY2xhcmF0aW9uIHdoZW4gaXQncyAhPSAwLlxuICogWzJdIEhpZGUgbWVzc2FnZXMgd2l0aG91dCBjb250ZW50LiBTZWxlY3RvciBvbmx5IG1hdGNoZXMgZm9yIE5PIGNvbnRlbnQsXG4gKiAgICAgd2hpdGVzcGFjZXMgJiBjb21tZW50cyBhcmUgbm90IGNvbnNpZGVyZWQgYXMgZW1wdHkuXG4gKiBbM10gTWF0Y2ggc2VsZWN0b3IgZXZlbiB3aXRoIHdoaXRlc3BhY2VzICYgY29tbWVudHMsXG4gKiAgICAgYW5hbG9ndWUgdG8gYDpibGFua2AgKGZpcmVmb3ggb25seSkuXG4gKiBbNF0gTW92ZSBlcnJvciBtZXNzYWdlIHZpc3VhbGx5IHRvIHRoZSBlbmQgaW4gYSBmbGV4Ym94IGNvbnRleHQgdG8gbWFrZSBpdFxuICogICAgIHdvcmsgcHJvcGVybHkgd2l0aCBgLmMtaW5wdXRfX2NvdW50ZXJgLlxuICovXG4uYy1lcnJvci1tZXNzYWdlIHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkZXJyb3ItbWVzc2FnZS10ZXh0LXNpemUpO1xuICAgIEBpZiBub3QgKCRlcnJvci1tZXNzYWdlLXNwYWNpbmctdG9wID09IDAgb3IgJGVycm9yLW1lc3NhZ2Utc3BhY2luZy10b3AgPT0gbnVsbCkge1xuICAgICAgICBtYXJnaW4tdG9wOiAkZXJyb3ItbWVzc2FnZS1zcGFjaW5nLXRvcDsgLyogWzFdICovXG4gICAgfVxuICAgIEBpZiBub3QgKCRlcnJvci1tZXNzYWdlLXNwYWNpbmctYm90dG9tID09IG51bGwpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGVycm9yLW1lc3NhZ2Utc3BhY2luZy1ib3R0b207IC8qIFsxXSAqL1xuICAgIH1cbiAgICBvcmRlcjogMTtcbiAgICBmb250LXdlaWdodDogJGVycm9yLW1lc3NhZ2UtdGV4dC1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGVycm9yLW1lc3NhZ2UtdGV4dC1jb2xvcjtcblxuICAgICY6ZW1wdHkge1xuICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBbMl0gKi9cbiAgICB9XG5cbiAgICAmOi1tb3otb25seS13aGl0ZXNwYWNlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgLyogWzNdICovXG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkZXJyb3ItbWVzc2FnZS1saW5rLXRleHQtY29sb3I7XG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQ0hFQ0tCT1hcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vLyBUaGUgaG9yaXpvbnRhbCBzcGFjaW5nIGJldHdlZW4gY2hlY2tib3ggYW5kIGxhYmVsIHRleHQuXG4kY2hlY2tib3gtc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRjaGVja2JveC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4cHggIWRlZmF1bHQ7XG4kY2hlY2tib3gtcmFkaXVzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUJPUkRFUi1SQURJVVMgIWRlZmF1bHQ7XG4kY2hlY2tib3gtdHJhbnNpdGlvbi1kdXJhdGlvbjogICAgICAgICAgICAgICAkR0xPQkFMLVRSQU5TSVRJT04tRFVSQVRJT04gIWRlZmF1bHQ7XG5cbiRjaGVja2JveC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRjaGVja2JveC1iYWNrZ3JvdW5kLWNvbG9yLWNoZWNrZWQ6ICAgICAgICAgICRjaGVja2JveC1iYWNrZ3JvdW5kLWNvbG9yICFkZWZhdWx0O1xuJGNoZWNrYm94LWJhY2tncm91bmQtY29sb3ItY2hlY2tlZC1ob3ZlcjogICAgbnVsbCAhZGVmYXVsdDtcbiRjaGVja2JveC1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkOiAgICAgICAgICRDT0xPUi1JTkFDVElWRSAhZGVmYXVsdDtcbiRjaGVja2JveC1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkLWNoZWNrZWQ6IG51bGwgIWRlZmF1bHQ7XG4kY2hlY2tib3gtYmFja2dyb3VuZC1jb2xvci1lcnJvcjogICAgICAgICAgICAkY2hlY2tib3gtYmFja2dyb3VuZC1jb2xvciAhZGVmYXVsdDtcbiRjaGVja2JveC1iYWNrZ3JvdW5kLWNvbG9yLWVycm9yLWNoZWNrZWQ6ICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRjaGVja2JveC1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtQk9SREVSLVdJRFRIICFkZWZhdWx0O1xuJGNoZWNrYm94LWJvcmRlci1zdHlsZTogICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItU1RZTEUgIWRlZmF1bHQ7XG4kY2hlY2tib3gtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUJPUkRFUi1DT0xPUiAhZGVmYXVsdDtcbiRjaGVja2JveC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjaGVja2JveC1ib3JkZXItd2lkdGggJGNoZWNrYm94LWJvcmRlci1zdHlsZSAkY2hlY2tib3gtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGNoZWNrYm94LWJvcmRlci1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjaGVja2JveC1ib3JkZXItY29sb3ItZm9jdXM6ICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtQk9SREVSLUNPTE9SLUZPQ1VTICFkZWZhdWx0O1xuJGNoZWNrYm94LWJvcmRlci1jb2xvci1jaGVja2VkOiAgICAgICAgICAgICAgJGNoZWNrYm94LWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRjaGVja2JveC1ib3JkZXItY29sb3ItY2hlY2tlZC1ob3ZlcjogICAgICAgICRjaGVja2JveC1iYWNrZ3JvdW5kLWNvbG9yLWNoZWNrZWQtaG92ZXIgIWRlZmF1bHQ7XG4kY2hlY2tib3gtYm9yZGVyLWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgICByZ2JhKCRDT0xPUi1JTkFDVElWRSwgMC41KSAhZGVmYXVsdDtcbiRjaGVja2JveC1ib3JkZXItY29sb3ItZXJyb3I6ICAgICAgICAgICAgICAgICRDT0xPUi1BTEVSVCAhZGVmYXVsdDtcbiRjaGVja2JveC1ib3JkZXItY29sb3ItZGlzYWJsZWQtY2hlY2tlZDogICAgIG51bGwgIWRlZmF1bHQ7XG4kY2hlY2tib3gtYm9yZGVyLWNvbG9yLWVycm9yLWNoZWNrZWQ6ICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kY2hlY2tib3gtYm94LXNoYWRvdy1jaGVja2VkOiAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNoZWNrYm94LWJveC1zaGFkb3ctZm9jdXM6ICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjaGVja2JveC1ib3gtc2hhZG93LWRpc2FibGVkOiAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY2hlY2tib3gtYm94LXNoYWRvdy1lcnJvcjogICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kY2hlY2tib3gtaWNvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1jaGVja21hcmspICFkZWZhdWx0O1xuJGNoZWNrYm94LWljb24tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgMThweCAhZGVmYXVsdDtcbiRjaGVja2JveC1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFICFkZWZhdWx0O1xuJGNoZWNrYm94LWljb24tY29sb3ItZXJyb3I6ICAgICAgICAgICAgICAgICAgJGNoZWNrYm94LWljb24tY29sb3IgIWRlZmF1bHQ7XG4kY2hlY2tib3gtaWNvbi1jb2xvci1jaGVja2VkOiAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNoZWNrYm94LWljb24tY29sb3ItZGlzYWJsZWQ6ICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjaGVja2JveC1pY29uLXRyYW5zZm9ybTogICAgICAgICAgICAgICAgICAgIHNjYWxlKDApICFkZWZhdWx0O1xuJGNoZWNrYm94LWljb24tdHJhbnNmb3JtLWNoZWNrZWQ6ICAgICAgICAgICAgc2NhbGUoMSkgIWRlZmF1bHQ7XG5cbiRjaGVja2JveC1sYWJlbC10ZXh0LXNpemU6ICAgICAgICAgICAgICAgICAgICRGUzAgIWRlZmF1bHQ7XG4kY2hlY2tib3gtbGFiZWwtdGV4dC1mb250LXdlaWdodDogICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNoZWNrYm94LWxhYmVsLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcbiRjaGVja2JveC1sYWJlbC10ZXh0LWNvbG9yLWNoZWNrZWQ6ICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY2hlY2tib3gtbGFiZWwtdGV4dC1jb2xvci1kaXNhYmxlZDogICAgICAgICByZ2JhKCRDT0xPUi1CQVNFLVRFWFQsIDAuNSkgIWRlZmF1bHQ7XG4kY2hlY2tib3gtbGFiZWwtdGV4dC1jb2xvci1lcnJvcjogICAgICAgICAgICAkQ09MT1ItQUxFUlQgIWRlZmF1bHQ7XG5cblxuLy8gVGhlIGxpbmUgaGVpZ2h0IG9mIHRoZSBsYWJlbCB0ZXh0LiBUaGlzIG5lZWRzIHRvIGJlIGEgYHB4YCB2YWx1ZSxcbi8vIHNpbmNlIGl0J3MgdXNlZCBmb3IgY2FsY3VsYXRpb24uXG4kY2hlY2tib3gtbGFiZWwtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAkR0xPQkFMLUxJTkUtSEVJR0hUICFkZWZhdWx0O1xuQGlmICh1bml0KCRjaGVja2JveC1sYWJlbC1saW5lLWhlaWdodCkgIT0gXCJweFwiKSB7XG4gICAgQGVycm9yKFwiYCRjaGVja2JveC1sYWJlbC1saW5lLWhlaWdodGAgbmVlZHMgdG8gYmUgYSBgcHhgIHZhbHVlIVwiKTtcbn1cblxuLyoqXG4gKiBbMV0gRGVmZW5zaXZlbHkgcmVzZXQgYW55IGBtYXJnaW4tYm90dG9tYC5cbiAqIFsyXSBTZXQgdGhlIGluZGVudCBvZiBhbiBhZGp1c3RpbmcgYC5jLWZvcm0tZmllbGRfX2V4dHJhYCB2aWEgYSBDU1MgY3VzdG9tXG4gKiAgICAgcHJvcGVydHkuXG4gKiBbM10gSGlkZSBvcmlnaW5hbCBjaGVja2JveC5cbiAqIFs0XSBNYWtlIGl0IGJsb2NrIHNvIGV2ZXJ5dGhpbmcgYmVoYXZlcyBhcyBleHBlY3RlZC5cbiAqIFs1XSBTZXR0aW5nIHRoZSBoZWlnaHQgb2YgdGhlIGxhYmVsIHRleHQgdG8gYSBtaW5pbXVtIG9mIHRoZSBjaGVja2JveFxuICogICAgIHNpemUgbWFrZXMgdGhlIHRleHQgY2xpY2thYmxlIG9uIGl0cyBlbnRpcmUgaGVpZ2h0LCBpLmUuOiBJdCBpbmNyZWFzZXNcbiAqICAgICB0aGUgY2xpY2sgYXJlYS5cbiAqIFs2XSBBbGlnbiB0aGUgZmlyc3QgKG9yIG9ubHkpIHJvdyBvZiBsYWJlbCB0ZXh0IHZlcnRpY2FsbHkgY2VudGVyZWQgdG8gdGhlXG4gKiAgICAgY2hlY2tib3guXG4gKiBbN10gS2VlcCB0aGUgc3BhY2luZyBiZXR3ZWVuIGNoZWNrYm94IGFuZCBsYWJlbCB0ZXh0IGNvbnNpc3RlbnQsXG4gKiAgICAgaW5kZXBlbmRlbnQgZnJvbSB0aGUgY2hlY2tib3ggc2l6ZS5cbiAqIFs4XSBSZWxhdGlvbiBmb3IgdGhlIGNoZWNrYm94LlxuICogWzldIFZlcnRpY2FsbHkgY2VudGVyIHRoZSBpY29uIGluc2lkZSBvZiB0aGUgY2hlY2tib3guXG4gKiBbMTBdIFRoZSBvdmVybGF5IGhhcyB0aGUgc2FtZSBkaW1lbnNpb25zIGFzIHRoZSBib3ggYnV0IHRyYW5zcGFyZW50IGJvcmRlcnNcbiAqICAgICAgYW5kIGBiYWNrZ3JvdW5kLWNsaXA6IGNvbnRlbnQtYm94O2AgdG8gYXZvaWQgc29tZXRpbWVzIGludmlzaWJsZSBib3JkZXJzXG4gKiAgICAgIGluIHNtYWxsZXIgYnJvd3NlciB6b29tIGxldmVscy5cbiAqIFsxMV0gQW5pbWF0ZSB0aGUgcG9zaXRpb25pbmcgb2YgdGhlIG92ZXJsYXkgb3ZlciB0aGUgaWNvbi5cbiAqL1xuXG4uYy1jaGVja2JveCB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS10b3VjaC1oaWdobGlnaHQoKTtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbMV0gKi9cblxuICAgICsgLmMtZm9ybS1maWVsZF9fZXh0cmEge1xuICAgICAgICAtLWZvcm0tZmllbGQtZXh0cmEtaW5kZW50OiAjeygkY2hlY2tib3gtc2l6ZSArICRjaGVja2JveC1zcGFjaW5nKX07IC8qIFsyXSAqL1xuICAgIH1cbn1cblxuICAgIC5jLWNoZWNrYm94X19pbnB1dCB7XG4gICAgICAgIEBpbmNsdWRlIGExMXktaGlkZGVuKCk7IC8qIFszXSAqL1xuICAgIH1cblxuICAgIC5jLWNoZWNrYm94X19sYWJlbCB7XG4gICAgICAgICRfY2hlY2tib3gtbGFiZWwtcGFkZGluZy10b3A6IGNlaWwoKCRjaGVja2JveC1zaXplIC0gJGNoZWNrYm94LWxhYmVsLWxpbmUtaGVpZ2h0KSAqIDAuNSk7XG4gICAgICAgICRfY2hlY2tib3gtbGFiZWwtcGFkZGluZy10b3A6IGlmKCRfY2hlY2tib3gtbGFiZWwtcGFkZGluZy10b3AgPiAwLCAkX2NoZWNrYm94LWxhYmVsLXBhZGRpbmctdG9wLCBudWxsKTsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL25vLWR1cGxpY2F0ZS1kb2xsYXItdmFyaWFibGVzICovXG5cbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAgICRjaGVja2JveC1sYWJlbC10ZXh0LXNpemUsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICRjaGVja2JveC1sYWJlbC1saW5lLWhlaWdodFxuICAgICAgICApO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIFs4XSAqL1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgLyogWzRdICovXG4gICAgICAgIG1pbi1oZWlnaHQ6ICRjaGVja2JveC1zaXplOyAvKiBbNV0gKi9cbiAgICAgICAgcGFkZGluZy10b3A6ICRfY2hlY2tib3gtbGFiZWwtcGFkZGluZy10b3A7IC8qIFs2XSAqL1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICgkY2hlY2tib3gtc2l6ZSArICRjaGVja2JveC1zcGFjaW5nKTsgLyogWzddICovXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkY2hlY2tib3gtbGFiZWwtdGV4dC1mb250LXdlaWdodDtcbiAgICAgICAgY29sb3I6ICRjaGVja2JveC1sYWJlbC10ZXh0LWNvbG9yO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgLmMtY2hlY2tib3hfX2lucHV0OmNoZWNrZWQgKyAmIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY2hlY2tib3gtbGFiZWwtdGV4dC1jb2xvci1jaGVja2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtY2hlY2tib3hfX2lucHV0OmZvY3VzICsgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNoZWNrYm94LWJvcmRlci1jb2xvci1mb2N1cztcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRjaGVja2JveC1ib3gtc2hhZG93LWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtY2hlY2tib3hfX2lucHV0W2Rpc2FibGVkXSArICYge1xuICAgICAgICAgICAgY29sb3I6ICRjaGVja2JveC1sYWJlbC10ZXh0LWNvbG9yLWRpc2FibGVkO1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuYy1jaGVja2JveF9faW5wdXQuaXMtZXJyb3IgKyAmIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY2hlY2tib3gtbGFiZWwtdGV4dC1jb2xvci1lcnJvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZSBjaGVja2JveCBvdXRlciBib3guXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCR0cmFuc2l0aW9uLWR1cmF0aW9uOiAkY2hlY2tib3gtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjaGVja2JveC1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY2hlY2tib3gtc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJGNoZWNrYm94LWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRjaGVja2JveC1yYWRpdXM7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2hlY2tib3gtYmFja2dyb3VuZC1jb2xvcjtcblxuICAgICAgICAgICAgLy8gSG92ZXIgc3R5bGVzLlxuICAgICAgICAgICAgLmMtY2hlY2tib3g6aG92ZXIgJiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkY2hlY2tib3gtYm9yZGVyLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBDaGVja2VkIHN0eWxlcy5cbiAgICAgICAgICAgIC5jLWNoZWNrYm94X19pbnB1dDpjaGVja2VkICsgJiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkY2hlY2tib3gtYm9yZGVyLWNvbG9yLWNoZWNrZWQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNoZWNrYm94LWJhY2tncm91bmQtY29sb3ItY2hlY2tlZDtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAkY2hlY2tib3gtYm94LXNoYWRvdy1jaGVja2VkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBDaGVja2VkICsgSG92ZXIgc3R5bGVzLlxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuICAgICAgICAgICAgLmMtY2hlY2tib3g6aG92ZXIgLmMtY2hlY2tib3hfX2lucHV0Om5vdCguaXMtZXJyb3IsIFtkaXNhYmxlZF0pOmNoZWNrZWQgKyAmIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRjaGVja2JveC1ib3JkZXItY29sb3ItY2hlY2tlZC1ob3ZlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2hlY2tib3gtYmFja2dyb3VuZC1jb2xvci1jaGVja2VkLWhvdmVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBEaXNhYmxlZCBzdHlsZXMuXG4gICAgICAgICAgICAuYy1jaGVja2JveF9faW5wdXRbZGlzYWJsZWRdICsgJiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkY2hlY2tib3gtYm9yZGVyLWNvbG9yLWRpc2FibGVkO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjaGVja2JveC1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6ICRjaGVja2JveC1ib3gtc2hhZG93LWRpc2FibGVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBFcnJvciBzdHlsZXMuXG4gICAgICAgICAgICAuYy1jaGVja2JveF9faW5wdXQuaXMtZXJyb3IgKyAmIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRjaGVja2JveC1ib3JkZXItY29sb3ItZXJyb3I7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNoZWNrYm94LWJhY2tncm91bmQtY29sb3ItZXJyb3I7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogJGNoZWNrYm94LWJveC1zaGFkb3ctZXJyb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuICAgICAgICAgICAgLy8gQ2hlY2tlZCArIERpc2FibGVkIHN0eWxlcy5cbiAgICAgICAgICAgIC5jLWNoZWNrYm94X19pbnB1dDpjaGVja2VkW2Rpc2FibGVkXSArICYge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNoZWNrYm94LWJvcmRlci1jb2xvci1kaXNhYmxlZC1jaGVja2VkO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjaGVja2JveC1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkLWNoZWNrZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIENoZWNrZWQgKyBFcnJvciBzdHlsZXMuXG4gICAgICAgICAgICAuYy1jaGVja2JveF9faW5wdXQ6Y2hlY2tlZC5pcy1lcnJvciArICYge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNoZWNrYm94LWJvcmRlci1jb2xvci1lcnJvci1jaGVja2VkO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjaGVja2JveC1iYWNrZ3JvdW5kLWNvbG9yLWVycm9yLWNoZWNrZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZSBjaGVja2JveCBpY29uLlxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBpY29uLWZvbnQoJGxpbmUtaGVpZ2h0OiBudWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oJHRyYW5zaXRpb24tZHVyYXRpb246ICRjaGVja2JveC10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRjaGVja2JveC1pY29uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwOyAvKiBbMTBdICovXG4gICAgICAgICAgICBsZWZ0OiAwOyAvKiBbMTBdICovXG4gICAgICAgICAgICB3aWR0aDogJGNoZWNrYm94LXNpemU7IC8qIFsxMF0gKi9cbiAgICAgICAgICAgIGhlaWdodDogJGNoZWNrYm94LXNpemU7IC8qIFsxMF0gKi9cbiAgICAgICAgICAgIHRyYW5zZm9ybTogJGNoZWNrYm94LWljb24tdHJhbnNmb3JtO1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGNoZWNrYm94LWljb24tc2l6ZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkY2hlY2tib3gtc2l6ZTsgLyogWzldICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6IGNvbnRlbnQtYm94OyAvKiBbMTBdICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogWzEwXSAqL1xuICAgICAgICAgICAgY29sb3I6ICRjaGVja2JveC1pY29uLWNvbG9yO1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICAgICAgICAgICAvLyBDaGVja2VkIHN0eWxlcy5cbiAgICAgICAgICAgIC5jLWNoZWNrYm94X19pbnB1dDpjaGVja2VkICsgJiB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAkY2hlY2tib3gtaWNvbi10cmFuc2Zvcm0tY2hlY2tlZDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNoZWNrYm94LWljb24tY29sb3ItY2hlY2tlZDtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBEaXNhYmxlZCBzdHlsZXMuXG4gICAgICAgICAgICAuYy1jaGVja2JveF9faW5wdXRbZGlzYWJsZWRdICsgJiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjaGVja2JveC1pY29uLWNvbG9yLWRpc2FibGVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBFcnJvciBzdHlsZXMuXG4gICAgICAgICAgICAuYy1jaGVja2JveF9faW5wdXQuaXMtZXJyb3IgKyAmIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNoZWNrYm94LWljb24tY29sb3ItZXJyb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0NIRUNLQk9YIChTZXR0aW5ncylcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kY2hlY2tib3gtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOHB4ICFkZWZhdWx0O1xuJGNoZWNrYm94LXJhZGl1czogICAgICAgICAgICAgICAgICAgICAgICAgICAgMnB4ICFkZWZhdWx0O1xuJGNoZWNrYm94LXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuXG4kY2hlY2tib3gtbGFiZWwtdGV4dC1zaXplOiAgICAgICAgICAgICAgICAgICAkRlMtMSAhZGVmYXVsdDtcbiRjaGVja2JveC1sYWJlbC10ZXh0LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtTEFCRUwtRk9OVC1XRUlHSFQgIWRlZmF1bHQ7XG4kY2hlY2tib3gtbGFiZWwtdGV4dC1jb2xvci1kaXNhYmxlZDogICAgICAgICAkR0xPQkFMLUlOUFVULUxBQkVMLUNPTE9SLURJU0FCTEVEICFkZWZhdWx0O1xuXG4kY2hlY2tib3gtYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRjaGVja2JveC1iYWNrZ3JvdW5kLWNvbG9yLWNoZWNrZWQ6ICAgICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiRjaGVja2JveC1iYWNrZ3JvdW5kLWNvbG9yLWNoZWNrZWQtaG92ZXI6ICAgICRDT0xPUi1CUkFORC1IT1ZFUiAhZGVmYXVsdDtcbiRjaGVja2JveC1iYWNrZ3JvdW5kLWNvbG9yLWVycm9yLWNoZWNrZWQ6ICAgICRDT0xPUi1BTEVSVCAhZGVmYXVsdDtcbiRjaGVja2JveC1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkOiAgICAgICAgICRjaGVja2JveC1iYWNrZ3JvdW5kLWNvbG9yICFkZWZhdWx0O1xuJGNoZWNrYm94LWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQtY2hlY2tlZDogJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuXG4kY2hlY2tib3gtaWNvbi1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAkY2hlY2tib3gtc2l6ZSAhZGVmYXVsdDtcbiRjaGVja2JveC1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcblxuJGNoZWNrYm94LWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAgICAgMnB4ICFkZWZhdWx0O1xuJGNoZWNrYm94LWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgJENPTE9SLU9OLVNVUkZBQ0UtNzAwICFkZWZhdWx0O1xuJGNoZWNrYm94LWJvcmRlci1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICAgJENPTE9SLU9OLVNVUkZBQ0UtOTAwICFkZWZhdWx0O1xuJGNoZWNrYm94LWJvcmRlci1jb2xvci1mb2N1czogICAgICAgICAgICAgICAgJGNoZWNrYm94LWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRjaGVja2JveC1ib3JkZXItY29sb3ItY2hlY2tlZDogICAgICAgICAgICAgICRjaGVja2JveC1iYWNrZ3JvdW5kLWNvbG9yLWNoZWNrZWQgIWRlZmF1bHQ7XG4kY2hlY2tib3gtYm9yZGVyLWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgICAkQ09MT1ItSU5BQ1RJVkUgIWRlZmF1bHQ7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQ0hFQ0tCT1hcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2tvZGEtY2hlY2tib3gtb2Zmc2V0OiAgICAgICAzcHggIWRlZmF1bHQ7XG4kc2tvZGEtY2hlY2tib3gtZm9jdXMtb2Zmc2V0OiAxcHggIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIFZlcnRpY2FsbHkgY2VudGVyIGNoZWNrYm94IHdpdGggZmlyc3QgbGluZSBvZiBsYWJlbC5cbiAqIFsyXSBUcmFuc2l0aW9uIGZyb20gdHJhbnNwYXJlbnQgdG8gdGFyZ2V0IGNvbG9yLFxuICogICAgIG90aGVyd2lzZSB0aGUgdHJhbnNpdGlvbiBpcyBub3Qgc21vb3RoLlxuICogWzNdIFByZXZlbnQgdW5uZWNlc3Nhcnkgc3BhY2luZyB3aGVuIG5vIHRleHQgaXMgdXNlZCBhcyBsYWJlbC5cbiAqL1xuLmMtY2hlY2tib3hfX2xhYmVsIHtcblxuICAgIC5jLWNoZWNrYm94X19pbnB1dCArICY6OmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIGZvY3VzLXN0eWxlcygkb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQpOyAvKiBbMl0gKi9cbiAgICB9XG5cbiAgICAuYy1jaGVja2JveF9faW5wdXQ6Zm9jdXMtdmlzaWJsZSArICY6OmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIGZvY3VzLXN0eWxlcygkb3V0bGluZS1vZmZzZXQ6ICRza29kYS1jaGVja2JveC1mb2N1cy1vZmZzZXQpO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICAgIHRvcDogJHNrb2RhLWNoZWNrYm94LW9mZnNldDsgLyogWzFdICovXG4gICAgfVxuXG4gICAgJjplbXB0eSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGNoZWNrYm94LXNpemU7IC8qIFszXSAqL1xuICAgIH1cblxufVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0NPTUJPQk9YIChTZXR0aW5ncylcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFsxXSBSZXNlbWJsZSBjaGVja2JveCBzdHlsZXMuXG4gKi9cblxuQGltcG9ydCBcImNvbXBvbmVudHMuY2hlY2tib3guc2V0dGluZ3NcIjsgLy8gWzFdXG5cbiRjb21ib2JveC1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtSEVJR0hULVNUQVRJQy1MQUJFTCAhZGVmYXVsdDtcbiRjb21ib2JveC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kY29tYm9ib3gtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULVBBRERJTkctSE9SSVpPTlRBTCAhZGVmYXVsdDtcbiRjb21ib2JveC1ib3JkZXItc2lkZTogICAgICAgICAgICAgICAgICAgICAgICAgIFwiLWJvdHRvbVwiICFkZWZhdWx0O1xuJGNvbWJvYm94LWJvcmRlci13aWR0aC1mb2N1czogICAgICAgICAgICAgICAgICAgMnB4ICFkZWZhdWx0O1xuJGNvbWJvYm94LWJvcmRlci13aWR0aC1vcGVuOiAgICAgICAgICAgICAgICAgICAgJGNvbWJvYm94LWJvcmRlci13aWR0aC1mb2N1cyAhZGVmYXVsdDtcblxuJGNvbWJvYm94LWxpc3Rib3gtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kY29tYm9ib3gtbGlzdGJveC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRjb21ib2JveC1saXN0Ym94LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRjb21ib2JveC1saXN0Ym94LXNoYWRvdzogICAgICAgICAgICAgICAgICAgICAgICREUk9QLVNIQURPVy1YUyAhZGVmYXVsdDtcblxuJGNvbWJvYm94LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgJF9fU0tPREEtU1BBQ0lORy1TVEFUSUMtMTJfXyAhZGVmYXVsdDtcbiRjb21ib2JveC1pdGVtLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuXG4kY29tYm9ib3gtaXRlbS1jaGVja2JveC1iYWNrZ3JvdW5kLXNlbGVjdGVkOiAgICAkY2hlY2tib3gtYmFja2dyb3VuZC1jb2xvci1jaGVja2VkICFkZWZhdWx0O1xuJGNvbWJvYm94LWl0ZW0tY2hlY2tib3gtYmFja2dyb3VuZC1kaXNhYmxlZDogICAgJGNoZWNrYm94LWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQgIWRlZmF1bHQ7IC8vIFsxXVxuJGNvbWJvYm94LWl0ZW0tY2hlY2tib3gtYm9yZGVyLWNvbG9yLXNlbGVjdGVkOiAgJGNoZWNrYm94LWJvcmRlci1jb2xvci1jaGVja2VkICFkZWZhdWx0O1xuJGNvbWJvYm94LWl0ZW0tY2hlY2tib3gtYm9yZGVyLWNvbG9yLWRpc2FibGVkOiAgJGNoZWNrYm94LWJvcmRlci1jb2xvci1kaXNhYmxlZCAhZGVmYXVsdDsgLy8gWzFdXG5cbiRjb21ib2JveC1pdGVtLXNlYXJjaC1pbnB1dC1wYWRkaW5nLWhvcml6b250YWw6ICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJGNvbWJvYm94LWl0ZW0tc2VhcmNoLWlucHV0LXBhZGRpbmctdmVydGljYWw6ICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kY29tYm9ib3gtaXRlbS1zZWFyY2gtaW5wdXQtYm9yZGVyOiAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNDT01CT0JPWFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRjb21ib2JveC1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1IRUlHSFQgIWRlZmF1bHQ7XG4kY29tYm9ib3gtYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtQkFDS0dST1VORCAhZGVmYXVsdDtcbiRjb21ib2JveC1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CQUNLR1JPVU5ELURJU0FCTEVEICFkZWZhdWx0O1xuJGNvbWJvYm94LWJhY2tncm91bmQtY29sb3ItcmVhZG9ubHk6ICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUJBQ0tHUk9VTkQtUkVBRE9OTFkgIWRlZmF1bHQ7XG4kY29tYm9ib3gtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtQk9SREVSLVdJRFRIICFkZWZhdWx0O1xuJGNvbWJvYm94LWJvcmRlci13aWR0aC1mb2N1czogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29tYm9ib3gtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJGNvbWJvYm94LWJvcmRlci13aWR0aC1vcGVuOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29tYm9ib3gtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJGNvbWJvYm94LWJvcmRlci1zdHlsZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUJPUkRFUi1TVFlMRSAhZGVmYXVsdDtcbiRjb21ib2JveC1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItQ09MT1IgIWRlZmF1bHQ7XG4kY29tYm9ib3gtYm9yZGVyLWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtQk9SREVSLUNPTE9SLUhPVkVSICFkZWZhdWx0O1xuJGNvbWJvYm94LWJvcmRlci1jb2xvci1kaXNhYmxlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUJPUkRFUi1DT0xPUi1ESVNBQkxFRCAhZGVmYXVsdDtcbiRjb21ib2JveC1ib3JkZXItY29sb3ItcmVhZG9ubHk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItQ09MT1ItUkVBRE9OTFkgIWRlZmF1bHQ7XG4kY29tYm9ib3gtYm9yZGVyLWNvbG9yLWZvY3VzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtQk9SREVSLUNPTE9SLUZPQ1VTICFkZWZhdWx0O1xuJGNvbWJvYm94LWJvcmRlci1jb2xvci1vcGVuOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kY29tYm9ib3gtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb21ib2JveC1ib3JkZXItd2lkdGggJGNvbWJvYm94LWJvcmRlci1zdHlsZSAkY29tYm9ib3gtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGNvbWJvYm94LWJvcmRlci1zaWRlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNvbWJvYm94LXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YWFNNQUxMICFkZWZhdWx0O1xuJGNvbWJvYm94LXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULVBBRERJTkctSE9SSVpPTlRBTCAhZGVmYXVsdDtcbiRjb21ib2JveC1kaXNhYmxlZC1zdGF0ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddXCIgIWRlZmF1bHQ7XG4kY29tYm9ib3gtcmVhZG9ubHktc3RhdGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiW2FyaWEtcmVhZG9ubHk9J3RydWUnXVwiICFkZWZhdWx0O1xuXG4kY29tYm9ib3gtaW5wdXQtaWNvbi1vcGVuOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLWV4cGFuZCkgIWRlZmF1bHQ7XG4kY29tYm9ib3gtaW5wdXQtaWNvbi1jbG9zZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLWNvbGxhcHNlKSAhZGVmYXVsdDtcbiRjb21ib2JveC1pbnB1dC1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKCRHTE9CQUwtSU5QVVQtU0VMRUNULUlDT04tU0laRSkgIWRlZmF1bHQ7XG4kY29tYm9ib3gtaW5wdXQtaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY29tYm9ib3gtaW5wdXQtaWNvbi1jb2xvci1kaXNhYmxlZDogICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtRk9OVC1DT0xPUi1ESVNBQkxFRCAhZGVmYXVsdDtcbiRjb21ib2JveC1pbnB1dC1pY29uLWNvbG9yLXJlYWRvbmx5OiAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1GT05ULUNPTE9SLVJFQURPTkxZICFkZWZhdWx0O1xuJGNvbWJvYm94LWlucHV0LWljb24tc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG5cbiRjb21ib2JveC12YWx1ZS1wcmVzZW50YXRpb24tdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1GT05ULUNPTE9SICFkZWZhdWx0O1xuJGNvbWJvYm94LXZhbHVlLXByZXNlbnRhdGlvbi10ZXh0LWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAkR0xPQkFMLUlOUFVULUZPTlQtQ09MT1ItRElTQUJMRUQgIWRlZmF1bHQ7XG4kY29tYm9ib3gtdmFsdWUtcHJlc2VudGF0aW9uLXRleHQtY29sb3ItcmVhZG9ubHk6ICAgICAgICAgICRHTE9CQUwtSU5QVVQtRk9OVC1DT0xPUi1SRUFET05MWSAhZGVmYXVsdDtcbiRjb21ib2JveC12YWx1ZS1wcmVzZW50YXRpb24tdGV4dC1jb2xvci1wbGFjZWhvbGRlcjogICAgICAgJEdMT0JBTC1JTlBVVC1GT05ULUNPTE9SLVBMQUNFSE9MREVSICFkZWZhdWx0O1xuJGNvbWJvYm94LXZhbHVlLXByZXNlbnRhdGlvbi10ZXh0LWNvbG9yLXBsYWNlaG9sZGVyLWhvdmVyOiBudWxsICFkZWZhdWx0O1xuJGNvbWJvYm94LXZhbHVlLXByZXNlbnRhdGlvbi10ZXh0LWNvbG9yLXBsYWNlaG9sZGVyLWZvY3VzOiAkY29tYm9ib3gtdmFsdWUtcHJlc2VudGF0aW9uLXRleHQtY29sb3ItcGxhY2Vob2xkZXItaG92ZXIgIWRlZmF1bHQ7XG4kY29tYm9ib3gtdmFsdWUtcHJlc2VudGF0aW9uLXRleHQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtRk9OVC1XRUlHSFQgIWRlZmF1bHQ7XG4kY29tYm9ib3gtdmFsdWUtcHJlc2VudGF0aW9uLXRleHQtd2VpZ2h0LXBsYWNlaG9sZGVyOiAgICAgICRHTE9CQUwtSU5QVVQtRk9OVC1XRUlHSFQtUExBQ0VIT0xERVIgIWRlZmF1bHQ7XG4kY29tYm9ib3gtdmFsdWUtcHJlc2VudGF0aW9uLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgIDEuMiAhZGVmYXVsdDtcblxuJGNvbWJvYm94LWxpc3Rib3gtb3Blbi1zdGF0ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlthcmlhLWV4cGFuZGVkPSd0cnVlJ11cIiAhZGVmYXVsdDtcbiRjb21ib2JveC1saXN0Ym94LWNsb3NlLXN0YXRlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJbYXJpYS1leHBhbmRlZD0nZmFsc2UnXVwiICFkZWZhdWx0O1xuJGNvbWJvYm94LWxpc3Rib3gtbXVsdGlzZWxlY3Qtc3RhdGU6ICAgICAgICAgICAgICAgICAgICAgICBcIlthcmlhLW11bHRpc2VsZWN0YWJsZT0ndHJ1ZSddXCIgIWRlZmF1bHQ7XG4kY29tYm9ib3gtbGlzdGJveC16LWluZGV4OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHooXCJjb21ib2JveFwiKSAhZGVmYXVsdDtcbiRjb21ib2JveC1saXN0Ym94LW1heC1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQwcHggIWRlZmF1bHQ7XG4kY29tYm9ib3gtbGlzdGJveC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kY29tYm9ib3gtbGlzdGJveC1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtUEFERElORy1IT1JJWk9OVEFMICFkZWZhdWx0O1xuJGNvbWJvYm94LWxpc3Rib3gtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29tYm9ib3gtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJGNvbWJvYm94LWxpc3Rib3gtYm9yZGVyLXN0eWxlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29tYm9ib3gtYm9yZGVyLXN0eWxlICFkZWZhdWx0O1xuJGNvbWJvYm94LWxpc3Rib3gtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29tYm9ib3gtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGNvbWJvYm94LWxpc3Rib3gtYm9yZGVyLWNvbG9yLW9wZW46ICAgICAgICAgICAgICAgICAgICAgICAkY29tYm9ib3gtYm9yZGVyLWNvbG9yLW9wZW4gIWRlZmF1bHQ7XG4kY29tYm9ib3gtbGlzdGJveC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb21ib2JveC1saXN0Ym94LWJvcmRlci13aWR0aCAkY29tYm9ib3gtbGlzdGJveC1ib3JkZXItc3R5bGUgJGNvbWJvYm94LWxpc3Rib3gtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGNvbWJvYm94LWxpc3Rib3gtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUJPUkRFUi1SQURJVVMgIWRlZmF1bHQ7XG4kY29tYm9ib3gtbGlzdGJveC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtQkFDS0dST1VORCAhZGVmYXVsdDtcbiRjb21ib2JveC1saXN0Ym94LXNoYWRvdzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuJGNvbWJvYm94LWl0ZW0tc2VsZWN0ZWQtc3RhdGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlthcmlhLXNlbGVjdGVkPSd0cnVlJ11cIiAhZGVmYXVsdDtcbiRjb21ib2JveC1pdGVtLWRpc2FibGVkLXN0YXRlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddXCIgIWRlZmF1bHQ7XG4kY29tYm9ib3gtaXRlbS1mb2N1c2VkLXN0YXRlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiLmlzLWZvY3VzZWRcIiAhZGVmYXVsdDtcbiRjb21ib2JveC1pdGVtLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1GT05ULVNJWkUgIWRlZmF1bHQ7XG4kY29tYm9ib3gtaXRlbS1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtUkVHVUxBUiAhZGVmYXVsdDtcbiRjb21ib2JveC1pdGVtLWZvbnQtd2VpZ2h0LWhvdmVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvbWJvYm94LWl0ZW0tZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kY29tYm9ib3gtaXRlbS1mb250LXdlaWdodC1zZWxlY3RlZDogICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCAhZGVmYXVsdDtcbiRjb21ib2JveC1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1PUFRJT04tQ09MT1IgIWRlZmF1bHQ7XG4kY29tYm9ib3gtaXRlbS1jb2xvci1zZWxlY3RlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY29tYm9ib3gtaXRlbS1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kY29tYm9ib3gtaXRlbS1jb2xvci1kaXNhYmxlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtT1BUSU9OLUNPTE9SLURJU0FCTEVEICFkZWZhdWx0O1xuJGNvbWJvYm94LWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItUk9XLUhPVkVSICFkZWZhdWx0O1xuJGNvbWJvYm94LWl0ZW0tYmFja2dyb3VuZC1zZWxlY3RlZDogICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItUk9XLVNFTEVDVEVEICFkZWZhdWx0O1xuJGNvbWJvYm94LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kY29tYm9ib3gtaXRlbS1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICAgICAgICRjb21ib2JveC1saXN0Ym94LXBhZGRpbmctaG9yaXpvbnRhbCAhZGVmYXVsdDtcbiRjb21ib2JveC1pdGVtLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRjb21ib2JveC1pdGVtLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvbWJvYm94LWJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRjb21ib2JveC1pdGVtLWJvcmRlci13aWR0aC1ob3ZlcjogICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjb21ib2JveC1pdGVtLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLVNVQlRMRSAhZGVmYXVsdDtcbiRjb21ib2JveC1pdGVtLWJvcmRlci1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjb21ib2JveC1pdGVtLWJvcmRlci1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgJGNvbWJvYm94LWxpc3Rib3gtcGFkZGluZy1ob3Jpem9udGFsICFkZWZhdWx0O1xuJGNvbWJvYm94LWl0ZW0tYm9yZGVyLWRpc2FibGUtbGFzdDogICAgICAgICAgICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuLy8gQFRPRE86IFNob3VsZCBiZSBoYW5kbGVkIHZpYSBDaGVja2JveC5cbi8vIFJlZmFjdG9yIHdpdGggQ2hlY2tib3ggbWl4aW4gaW5zdGVhZCBvZiBgQGV4dGVuZGAuXG4vLyBCUk9OLTc3ODVcbiRjb21ib2JveC1pdGVtLWNoZWNrYm94LWJhY2tncm91bmQtc2VsZWN0ZWQ6ICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjb21ib2JveC1pdGVtLWNoZWNrYm94LWJhY2tncm91bmQtZGlzYWJsZWQ6ICAgICAgICAgICAgICAgJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuJGNvbWJvYm94LWl0ZW0tY2hlY2tib3gtYmFja2dyb3VuZC1kaXNhYmxlZDogICAgICAgICAgICAgICBpZigkY29tYm9ib3gtaXRlbS1jaGVja2JveC1iYWNrZ3JvdW5kLWRpc2FibGVkLCAkY29tYm9ib3gtaXRlbS1jaGVja2JveC1iYWNrZ3JvdW5kLWRpc2FibGVkLCBudWxsKTsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1kZWZhdWx0LCBzY3NzL25vLWR1cGxpY2F0ZS1kb2xsYXItdmFyaWFibGVzICovXG4kY29tYm9ib3gtaXRlbS1jaGVja2JveC1ib3JkZXItY29sb3Itc2VsZWN0ZWQ6ICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY29tYm9ib3gtaXRlbS1jaGVja2JveC1ib3JkZXItY29sb3ItZGlzYWJsZWQ6ICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY29tYm9ib3gtaXRlbS1jaGVja2JveC1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY29tYm9ib3gtaXRlbS1jaGVja2JveC1sYWJlbC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRjb21ib2JveC1pdGVtLXNlYXJjaC1pbnB1dC1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgJGNvbWJvYm94LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsICFkZWZhdWx0O1xuJGNvbWJvYm94LWl0ZW0tc2VhcmNoLWlucHV0LXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAkY29tYm9ib3gtaXRlbS1wYWRkaW5nLXZlcnRpY2FsICFkZWZhdWx0O1xuJGNvbWJvYm94LWl0ZW0tc2VhcmNoLWlucHV0LWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAkY29tYm9ib3gtaXRlbS1ib3JkZXItd2lkdGggc29saWQgJGNvbWJvYm94LWl0ZW0tYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuXG4kY29tYm9ib3gtbm8tb3B0aW9ucy1tZXNzYWdlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY29tYm9ib3gtbm8tb3B0aW9ucy1tZXNzYWdlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY29tYm9ib3gtbm8tb3B0aW9ucy1tZXNzYWdlLXRleHQtYWxpZ246ICAgICAgICAgICAgICAgICAgIGNlbnRlciAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gIFByZXZlbnQgdGV4dC1zZWxlY3Rpb24gb24gKGFjY2lkZW50YWwpIGRvdWJsZS1jbGljay5cbiAqIFsyXSAgTWltaWMgKHNlbGVjdCkgaW5wdXQgc3R5bGUuXG4gKiBbM10gIFVzZSBgY2FsY2Agb25seSBpZiBgcGFkZGluZ2AgaXMgPiBgMGAgdG8gcHJldmVudCBkaXZpc2lvbiBieSAwXG4gKiAgICAgIHJlc3VsdGluZyBpbiBpbnZhbGlkIGNhbGN1bGF0aW9uIGFuZCBkZWNsYXJhdGlvbiBiZWluZyBpZ25vcmVkLlxuICogWzRdICBNaW1pYyAoY3VzdG9tKSBjaGVja2JveCBzdHlsZXMgd2l0aG91dCBhY3R1YWwgY2hlY2tib3ggY29tcG9uZW50LlxuICogWzVdICBQbGFjZSB0aGUgbGlzdGJveCBkaXJlY3RseSB1bmRlciB0aGUgc2VsZWN0IGxhYmVsLlxuICogWzZdICBTcGFuIGZ1bGwgd2lkdGguXG4gKiBbN10gIFRvZ2dsZSB2aXNpYmlsaXR5IGZvciBvcGVuL2Nsb3NlZCBzdGF0ZSwgZmFkZSBhbmltYXRpb24uXG4gKiBbOF0gIElmIHRoZSBgbWF4LWhlaWdodGAgb2YgdGhlIGxpc3Rib3ggaXMgZXhjZWVkZWQsIG1ha2UgaXRcbiAqICAgICAgc2Nyb2xsYWJsZS5cbiAqIFs5XSAgRG8gbm90IGFzc2lnbiBhbnkgaG9yaXpvbnRhbCBwYWRkaW5nIGFzIGl0IHdvdWxkIGludGVyZmVyZSB3aXRoIHRoZVxuICogICAgICBgOmhvdmVyYCBvbiB0aGUgaXRlbXMgaWYgdGhlIGJvcmRlcnMgYXJlIG5vdCBmdWxsIHdpZHRoLlxuICogWzEwXSBQcmV2ZW50IGRvdWJsZS1ib3JkZXIgYmV0d2VlbiBjb21ib2JveCBhbmQgbGlzdGJveC5cbiAqIFsxMV0gQWN0IGFzIGEgdmlzdWFsIHJlcHJlc2VudGF0aW9uIC8gaHVtYW4gcmVhZGFibGUgdmFsdWVzLFxuICogICAgICBkbyBub3QgaW50ZXJmZXJlIHdpdGggY29tYm9ib3ggaW50ZXJhY3Rpb24uXG4gKiBbMTJdIENyZWF0ZSB0aGUgYm9yZGVyIGJldHdlZW4gdGhlIGRyb3Bkb3duIGl0ZW1zIHdpdGggYSBwc2V1ZG8tZWxlbWVudCwgc29cbiAqICAgICAgd2UgY2FuIGJldHRlciBoYW5kbGUgdGhlIHBhZGRpbmcgKyBgOmhvdmVyYCBvbiB0aGUgaXRlbXMuXG4gKiBbMTNdIEluY3JlYXNlIHNwZWNpZmljaXR5IHRvIGF2b2lkIGlzc3VlcyByZXN1bHRpbmcgZnJvbSBgQGV4dGVuZGAgWzRdLlxuICogWzE0XSBBdm9pZCBvdmVybGFwcGluZyBpY29uICYgdmFsdWUgcHJlc2VudGF0aW9uLlxuICogICAgICBCUk9OLTc4NTcgZm9yIG1vcmUgcm9idXN0IHNvbHV0aW9uLlxuICogWzE1XSBNYWludGFpbiBkZWZhdWx0IGlucHV0IGhlaWdodFxuICogICAgICB3aGlsZSBhbGxvd2luZyBmb3Igc29tZSBwYWRkaW5nIGZvciBtdWx0aWxpbmUgdGV4dC5cbiAqIFsxNl0gQ2VudGVyIGljb24gaW4gRmlyZWZveC5cbiAqIFsxN10gVXNlIGA6OmJlZm9yZWAgcHNldWRvLWVsZW1lbnQgZm9yIHRoZSBib3JkZXIgdG8gYXZvaWQgYm94LW1vZGVsIGNoYW5nZXNcbiAqICAgICAgd2hlbiB0aGUgYm9yZGVyIHdpZHRoIGNoYW5nZXMuXG4gKiBbMThdIERpc3BsYXkgdGhlIGBub09wdGlvbnNNZXNzYWdlYCB2aWEgYFtkYXRhLWNvbWJvYm94LW5vLW9wdGlvbnMtbWVzc2FnZV1gLlxuICogWzE5XSBBbGlnbiB0aGUgc2VhcmNoIGlucHV0IHdpdGggdGhlIG9wdGlvbnMgYW5kIHNlcGFyYXRlIGl0IHZpYSBhIGJvdHRvbSBib3JkZXIuXG4gKiBbMjBdIFByZXZlbnQgYG5vT3B0aW9uc01lc3NhZ2VgIGZyb20gYmVpbmcgc2VsZWN0YWJsZS5cbiAqIFsyMV0gUHJldmVudCBhbnkgcG9pbnRlci1ldmVudHMgb24gZGlzYWJsZWQgb3IgcmVhZG9ubHkgdmFyaWFudHMgb2YgdGhlIGNvbWJvYm94LlxuICogWzIyXSBBcHBseSB0aGUgcmVzcGVjdGl2ZSBkaXNhYmxlZCBhbmQgcmVhZG9ubHkgY29sb3JzIHRvIHRoZSBpbnB1dCBpY29uIGFuZCBib3JkZXIuXG4gKiBbMjNdIE92ZXJ3cml0ZSBjb2xvciBvZiBjaGVja2JveCBsYWJlbCByZXN1bHRpbmcgZnJvbSBgQGV4dGVuZGAgWzRdLlxuICogWzI0XSBQcmV2ZW50IGludGVyYWN0aW9uIHdpdGggb3B0aW9ucyB3aGVuIHRoZSBDb21ib2JveCBpcyBjbG9zZWQuXG4gKi9cbi5jLWNvbWJvYm94X193cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICA+ICoge1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsgLyogWzFdICovXG4gICAgfVxuXG59XG5cbi5jLWNvbWJvYm94IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6ICRjb21ib2JveC1pbnB1dC1pY29uLXNwYWNpbmc7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtaW4taGVpZ2h0OiAkY29tYm9ib3gtaGVpZ2h0OyAvKiBbMl0gKi9cbiAgICBwYWRkaW5nLWxlZnQ6ICRjb21ib2JveC1wYWRkaW5nLWhvcml6b250YWw7IC8qIFsyXSAqL1xuICAgIHBhZGRpbmctcmlnaHQ6ICRjb21ib2JveC1wYWRkaW5nLWhvcml6b250YWw7IC8qIFsyXSAqL1xuICAgIHBhZGRpbmctdG9wOiAkY29tYm9ib3gtcGFkZGluZy12ZXJ0aWNhbDsgLyogWzE1XSAqL1xuICAgIHBhZGRpbmctYm90dG9tOiAkY29tYm9ib3gtcGFkZGluZy12ZXJ0aWNhbDsgLyogWzE1XSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb21ib2JveC1iYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGNvbWJvYm94LWJvcmRlci1jb2xvci1ob3ZlcjtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUgeyAvKiBbMTddICovXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3JkZXIjeyRjb21ib2JveC1ib3JkZXItc2lkZX06ICRjb21ib2JveC1ib3JkZXI7IC8qIFsyXSAqL1xuICAgIH1cblxuICAgIC8vIGZvY3VzLXdpdGhpblxuICAgICY6Zm9jdXMsXG4gICAgJjpmb2N1cy13aXRoaW4ge1xuICAgICAgICBvdXRsaW5lOiAwO1xuXG4gICAgICAgICY6OmJlZm9yZSB7IC8qIFsxN10gKi9cbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogJGNvbWJvYm94LWJvcmRlci13aWR0aC1mb2N1cztcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNvbWJvYm94LWJvcmRlci1jb2xvci1mb2N1cztcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC8vIHNlbGVjdCBpY29uXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBpY29uLWZvbnQoKTtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkY29tYm9ib3gtaW5wdXQtaWNvbi1zaXplLFxuICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiBmYWxzZSxcbiAgICAgICAgKTtcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgICAgIG1hcmdpbi10b3A6IGF1dG87IC8qIFsxNl0gKi9cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bzsgLyogWzE2XSAqL1xuICAgICAgICBjb2xvcjogJGNvbWJvYm94LWlucHV0LWljb24tY29sb3I7XG4gICAgfVxuXG4gICAgJiN7JGNvbWJvYm94LWxpc3Rib3gtY2xvc2Utc3RhdGV9IHtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAkY29tYm9ib3gtaW5wdXQtaWNvbi1vcGVuO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmI3skY29tYm9ib3gtbGlzdGJveC1vcGVuLXN0YXRlfSB7XG5cbiAgICAgICAgJjo6YmVmb3JlIHsgLyogWzE3XSAqL1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAkY29tYm9ib3gtYm9yZGVyLXdpZHRoLW9wZW47XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRjb21ib2JveC1ib3JkZXItY29sb3Itb3BlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRjb21ib2JveC1pbnB1dC1pY29uLWNsb3NlO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmI3skY29tYm9ib3gtZGlzYWJsZWQtc3RhdGV9LFxuICAgICYjeyRjb21ib2JveC1yZWFkb25seS1zdGF0ZX0ge1xuICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbMjFdICovXG4gICAgfVxuXG4gICAgJiN7JGNvbWJvYm94LWRpc2FibGVkLXN0YXRlfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb21ib2JveC1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRjb21ib2JveC1ib3JkZXItY29sb3ItZGlzYWJsZWQ7IC8qIFsyMl0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29tYm9ib3gtaW5wdXQtaWNvbi1jb2xvci1kaXNhYmxlZDsgLyogWzIyXSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmI3skY29tYm9ib3gtcmVhZG9ubHktc3RhdGV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbWJvYm94LWJhY2tncm91bmQtY29sb3ItcmVhZG9ubHk7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNvbWJvYm94LWJvcmRlci1jb2xvci1yZWFkb25seTsgLyogWzIyXSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRjb21ib2JveC1pbnB1dC1pY29uLWNvbG9yLXJlYWRvbmx5OyAvKiBbMjJdICovXG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG4gICAgLmMtY29tYm9ib3hfX3ZhbHVlLXByZXNlbnRhdGlvbiB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbMTFdICovXG4gICAgfVxuXG4gICAgICAgIC5jLWNvbWJvYm94X192YWx1ZS1wcmVzZW50YXRpb25fX3RleHQge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRjb21ib2JveC12YWx1ZS1wcmVzZW50YXRpb24tdGV4dC13ZWlnaHQ7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGNvbWJvYm94LXZhbHVlLXByZXNlbnRhdGlvbi1saW5lLWhlaWdodDtcbiAgICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7IC8qIFsxNF0gKi9cbiAgICAgICAgICAgIGNvbG9yOiAkY29tYm9ib3gtdmFsdWUtcHJlc2VudGF0aW9uLXRleHQtY29sb3I7XG5cbiAgICAgICAgICAgICYuaGFzLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJGNvbWJvYm94LXZhbHVlLXByZXNlbnRhdGlvbi10ZXh0LXdlaWdodC1wbGFjZWhvbGRlcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbWJvYm94LXZhbHVlLXByZXNlbnRhdGlvbi10ZXh0LWNvbG9yLXBsYWNlaG9sZGVyO1xuXG4gICAgICAgICAgICAgICAgLmMtY29tYm9ib3g6aG92ZXIgJiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29tYm9ib3gtdmFsdWUtcHJlc2VudGF0aW9uLXRleHQtY29sb3ItcGxhY2Vob2xkZXItaG92ZXI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmMtY29tYm9ib3g6Zm9jdXMgJiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29tYm9ib3gtdmFsdWUtcHJlc2VudGF0aW9uLXRleHQtY29sb3ItcGxhY2Vob2xkZXItZm9jdXM7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JGNvbWJvYm94LWRpc2FibGVkLXN0YXRlfSAmIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbWJvYm94LXZhbHVlLXByZXNlbnRhdGlvbi10ZXh0LWNvbG9yLWRpc2FibGVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRjb21ib2JveC1yZWFkb25seS1zdGF0ZX0gJiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb21ib2JveC12YWx1ZS1wcmVzZW50YXRpb24tdGV4dC1jb2xvci1yZWFkb25seTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAuYy1jb21ib2JveF9fbGlzdGJveC1jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBzY3JvbGxhYmxlKFxuICAgICAgICAgICAgJGJnLWNvbG9yOiAgICAgICAgICRjb21ib2JveC1saXN0Ym94LWJhY2tncm91bmQsXG4gICAgICAgICAgICAkY29udGFpbmVyLWhlaWdodDogJGNvbWJvYm94LWxpc3Rib3gtbWF4LWhlaWdodCxcbiAgICAgICAgKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6ICRjb21ib2JveC1saXN0Ym94LXotaW5kZXg7XG4gICAgICAgIHRvcDogMTAwJTsgLyogWzVdICovXG4gICAgICAgIHJpZ2h0OiAwOyAvKiBbNl0gKi9cbiAgICAgICAgbGVmdDogMDsgLyogWzZdICovXG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgLyogWzddICovXG4gICAgICAgIG9wYWNpdHk6IDA7IC8qIFs3XSAqL1xuICAgICAgICBtYXgtaGVpZ2h0OiAkY29tYm9ib3gtbGlzdGJveC1tYXgtaGVpZ2h0O1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvOyAvKiBbOF0gKi9cbiAgICAgICAgcGFkZGluZzogJGNvbWJvYm94LWxpc3Rib3gtcGFkZGluZy12ZXJ0aWNhbCAwOyAvKiBbOV0gKi9cbiAgICAgICAgYm9yZGVyOiBpZigkY29tYm9ib3gtbGlzdGJveC1ib3JkZXIsICRjb21ib2JveC1saXN0Ym94LWJvcmRlciwgbnVsbCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb21ib2JveC1saXN0Ym94LWJhY2tncm91bmQ7XG4gICAgICAgIGJvcmRlci10b3Atd2lkdGg6IDA7IC8qIFsxMF0gKi9cbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRjb21ib2JveC1saXN0Ym94LWJvcmRlci1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRjb21ib2JveC1saXN0Ym94LWJvcmRlci1yYWRpdXM7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbMjRdICovXG5cbiAgICAgICAgLmMtY29tYm9ib3gjeyRjb21ib2JveC1saXN0Ym94LW9wZW4tc3RhdGV9ICYge1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgLyogWzddICovXG4gICAgICAgICAgICBvcGFjaXR5OiAxOyAvKiBbN10gKi9cbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaWYoJGNvbWJvYm94LWxpc3Rib3gtYm9yZGVyLCAkY29tYm9ib3gtbGlzdGJveC1ib3JkZXItY29sb3Itb3BlbiwgbnVsbCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkY29tYm9ib3gtbGlzdGJveC1zaGFkb3c7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDsgLyogWzI0XSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1jb21ib2JveF9faXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oKTtcbiAgICAgICAgQGluY2x1ZGUgZGlzYWJsZS10b3VjaC1oaWdobGlnaHQoKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiAkY29tYm9ib3gtaXRlbS1wYWRkaW5nLXZlcnRpY2FsICRjb21ib2JveC1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICAgICAgY29sb3I6ICRjb21ib2JveC1pdGVtLWNvbG9yO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpub3QoI3skY29tYm9ib3gtaXRlbS1kaXNhYmxlZC1zdGF0ZX0pIHtcblxuICAgICAgICAgICAgJiN7JGNvbWJvYm94LWl0ZW0tc2VsZWN0ZWQtc3RhdGV9IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpZigkY29tYm9ib3gtaXRlbS1iYWNrZ3JvdW5kLXNlbGVjdGVkLCAkY29tYm9ib3gtaXRlbS1iYWNrZ3JvdW5kLXNlbGVjdGVkLCBudWxsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYjeyRjb21ib2JveC1pdGVtLWZvY3VzZWQtc3RhdGV9IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpZigkY29tYm9ib3gtaXRlbS1iYWNrZ3JvdW5kLWhvdmVyLCAkY29tYm9ib3gtaXRlbS1iYWNrZ3JvdW5kLWhvdmVyLCBudWxsKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbWJvYm94LWl0ZW0tY29sb3ItaG92ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgICYjeyRjb21ib2JveC1pdGVtLWRpc2FibGVkLXN0YXRlfSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgQGlmICgkY29tYm9ib3gtaXRlbS1ib3JkZXIpIHtcblxuICAgICAgICAgICAgJjo6YWZ0ZXIgeyAvKiBbMTJdICovXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6ICRjb21ib2JveC1pdGVtLWJvcmRlci1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGlmKCRjb21ib2JveC1pdGVtLWJvcmRlci1wYWRkaW5nLWhvcml6b250YWwgPiAwLCBjYWxjKDEwMCUgLSAjeygkY29tYm9ib3gtaXRlbS1ib3JkZXItcGFkZGluZy1ob3Jpem9udGFsICogMil9KSwgMTAwJSk7IC8qIFszXSAqL1xuICAgICAgICAgICAgICAgIGhlaWdodDogJGNvbWJvYm94LWl0ZW0tYm9yZGVyLXdpZHRoO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb21ib2JveC1pdGVtLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkY29tYm9ib3gtaXRlbS1ib3JkZXItZGlzYWJsZS1sYXN0KSB7XG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJiN7JGNvbWJvYm94LWl0ZW0tZm9jdXNlZC1zdGF0ZX0ge1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICRjb21ib2JveC1pdGVtLWJvcmRlci13aWR0aC1ob3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbWJvYm94LWl0ZW0tYm9yZGVyLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICAgICAuYy1jb21ib2JveF9faXRlbV9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgICRjb21ib2JveC1pdGVtLWZvbnQtc2l6ZSxcbiAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICRpbXBvcnRhbnQ6ICAgdHJ1ZSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbXBvcnRhbnQoZmxleCwgdHJ1ZSk7IC8qIFsxM10gKi9cbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmb250LXdlaWdodDogaW1wb3J0YW50KCRjb21ib2JveC1pdGVtLWZvbnQtd2VpZ2h0LCB0cnVlKTtcblxuICAgICAgICAgICAgLmMtY29tYm9ib3hfX2xpc3Rib3gjeyRjb21ib2JveC1saXN0Ym94LW11bHRpc2VsZWN0LXN0YXRlfSAmIHtcbiAgICAgICAgICAgICAgICAvLyBAVE9ETzogUmVmYWN0b3IgdG8gdXNlIGEgbWl4aW4gZm9yXG4gICAgICAgICAgICAgICAgLy8gQ2hlY2tib3ggc3R5bGVzIGluc3RlYWQgb2YgYEBleHRlbmRgLlxuICAgICAgICAgICAgICAgIC8vIEJST04tNzc4NVxuICAgICAgICAgICAgICAgIEBleHRlbmQgLmMtY2hlY2tib3hfX2xhYmVsOyAvKiBbNF0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovXG4gICAgICAgICAgICAgICAgY29sb3I6IGltcG9ydGFudCgkY29tYm9ib3gtaXRlbS1jaGVja2JveC1sYWJlbC1jb2xvciwgdHJ1ZSk7IC8qIFsyM10gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmMtY29tYm9ib3hfX2l0ZW06aG92ZXIgJiB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRjb21ib2JveC1pdGVtLWZvbnQtd2VpZ2h0LWhvdmVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYy1jb21ib2JveF9faXRlbSN7JGNvbWJvYm94LWl0ZW0tZGlzYWJsZWQtc3RhdGV9ICYge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBpbXBvcnRhbnQoJGNvbWJvYm94LWl0ZW0tY29sb3ItZGlzYWJsZWQsIHRydWUpOyAvKiBbMTNdICovXG5cbiAgICAgICAgICAgICAgICAvLyBjaGVja2JveCBiYWNrZ3JvdW5kXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBpbXBvcnRhbnQoJGNvbWJvYm94LWl0ZW0tY2hlY2tib3gtYm9yZGVyLWNvbG9yLWRpc2FibGVkLCB0cnVlKTsgLyogWzEzXSAqL1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbXBvcnRhbnQoJGNvbWJvYm94LWl0ZW0tY2hlY2tib3gtYmFja2dyb3VuZC1kaXNhYmxlZCwgdHJ1ZSk7IC8qIFsxM10gKi9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLWNvbWJvYm94X19pdGVtI3skY29tYm9ib3gtaXRlbS1zZWxlY3RlZC1zdGF0ZX0gJiB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGltcG9ydGFudCgkY29tYm9ib3gtaXRlbS1mb250LXdlaWdodC1zZWxlY3RlZCwgdHJ1ZSk7IC8qIFsxM10gKi9cbiAgICAgICAgICAgICAgICBjb2xvcjogaW1wb3J0YW50KCRjb21ib2JveC1pdGVtLWNvbG9yLXNlbGVjdGVkLCB0cnVlKTsgLyogWzEzXSAqL1xuXG4gICAgICAgICAgICAgICAgLy8gY2hlY2tib3ggYmFja2dyb3VuZFxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaW1wb3J0YW50KCRjb21ib2JveC1pdGVtLWNoZWNrYm94LWJvcmRlci1jb2xvci1zZWxlY3RlZCwgdHJ1ZSk7IC8qIFsxM10gKi9cbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW1wb3J0YW50KCRjb21ib2JveC1pdGVtLWNoZWNrYm94LWJhY2tncm91bmQtc2VsZWN0ZWQsIHRydWUpOyAvKiBbMTNdICovXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gaWNvblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgLyogWzRdICovXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogaW1wb3J0YW50KHNjYWxlKDEpLCB0cnVlKTsgLyogWzEzXSAqL1xuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBpbXBvcnRhbnQodmlzaWJsZSwgdHJ1ZSk7IC8qIFsxM10gKi9cbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGltcG9ydGFudCgkY29tYm9ib3gtaXRlbS1jaGVja2JveC1pY29uLWNvbG9yLCB0cnVlKTsgLyogWzEzXSAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIC5jLWNvbWJvYm94X19saXN0Ym94Lmhhcy1uby1vcHRpb25zOjphZnRlciB7IC8qIFsxOF0gKi9cbiAgICAgICAgY29udGVudDogYXR0cihkYXRhLWNvbWJvYm94LW5vLW9wdGlvbnMtbWVzc2FnZSk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogJGNvbWJvYm94LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbCAkY29tYm9ib3gtaXRlbS1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgICAgIGZvbnQtc2l6ZTogJGNvbWJvYm94LW5vLW9wdGlvbnMtbWVzc2FnZS1mb250LXNpemU7XG4gICAgICAgIHRleHQtYWxpZ246IGlmKCRjb21ib2JveC1uby1vcHRpb25zLW1lc3NhZ2UtdGV4dC1hbGlnbiwgY2VudGVyLCBudWxsKTtcbiAgICAgICAgY29sb3I6ICRjb21ib2JveC1uby1vcHRpb25zLW1lc3NhZ2UtY29sb3I7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbMjBdICovXG4gICAgfVxuXG4gICAgLmMtY29tYm9ib3hfX3NlYXJjaC1pbnB1dCB7XG4gICAgICAgIHBhZGRpbmc6ICRjb21ib2JveC1pdGVtLXNlYXJjaC1pbnB1dC1wYWRkaW5nLXZlcnRpY2FsICRjb21ib2JveC1pdGVtLXNlYXJjaC1pbnB1dC1wYWRkaW5nLWhvcml6b250YWw7IC8qIFsxOV0gKi9cbiAgICAgICAgYm9yZGVyLWJvdHRvbTogaWYoJGNvbWJvYm94LWl0ZW0tc2VhcmNoLWlucHV0LWJvcmRlciwgJGNvbWJvYm94LWl0ZW0tc2VhcmNoLWlucHV0LWJvcmRlciwgbnVsbCk7IC8qIFsxOV0gKi9cbiAgICB9XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjU0NST0xMQUJMRVxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRzY3JvbGxhYmxlLWluZGljYXRvci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAkU0NST0xMLVNIQURPVy1DT0xPUiAhZGVmYXVsdDtcbiRzY3JvbGxhYmxlLWluZGljYXRvci1zaGFkb3ctc2l6ZTogICAgICAgICAgICAgICAgICAxNHB4ICFkZWZhdWx0O1xuJHNjcm9sbGFibGUtaW5kaWNhdG9yLXNoYWRvdy1jb3Zlci1zaXplLW11bHRpcGxpZXI6IDMgIWRlZmF1bHQ7XG5cbi8vIEFkYXB0YXRpb24gb2YgaHR0cHM6Ly9jb2RlcGVuLmlvL2xhdXN0ZGVsZXVyYW4vcGVuL0RCYUF1XG5AbWl4aW4gX3Njcm9sbGFibGUtaW5kaWNhdG9ycyhcbiAgICAkYmctY29sb3IsXG4gICAgJHN0eWxlLFxuICAgICRzaGFkb3ctY29sb3IsXG4gICAgJHNoYWRvdy1zaXplLFxuICAgICRjb3Zlci1zaXplLW11bHRpcGxpZXJcbikge1xuXG4gICAgJGNvdmVyLXNpemU6ICRzaGFkb3ctc2l6ZSAqICRjb3Zlci1zaXplLW11bHRpcGxpZXI7XG5cbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICAgIEBpZiAoJHN0eWxlID09ICdsaW5lYXInKSB7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgICAvLyBTaGFkb3cgY292ZXJzXG4gICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoJGJnLWNvbG9yIDMwJSwgcmdiYSgkYmctY29sb3IsMCkpLFxuICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KHJnYmEoJGJnLWNvbG9yLCAwKSwgJGJnLWNvbG9yIDcwJSkgMCAxMDAlLFxuICAgICAgICAgICAgLy8gU2hhZG93c1xuICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJHNoYWRvdy1jb2xvciwgcmdiYSgkc2hhZG93LWNvbG9yLCAwKSksXG4gICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAkc2hhZG93LWNvbG9yLCByZ2JhKCRzaGFkb3ctY29sb3IsIDApKSAwIDEwMCU7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgICAvLyBTaGFkb3cgY292ZXJzXG4gICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoJGJnLWNvbG9yIDMwJSwgcmdiYSgkYmctY29sb3IsMCkpLFxuICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KHJnYmEoJGJnLWNvbG9yLCAwKSwgJGJnLWNvbG9yIDcwJSkgMCAxMDAlLFxuICAgICAgICAgICAgLy8gU2hhZG93c1xuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGZhcnRoZXN0LXNpZGUgYXQgNTAlIDAsICRzaGFkb3ctY29sb3IsIHJnYmEoJHNoYWRvdy1jb2xvciwgMCkpLFxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGZhcnRoZXN0LXNpZGUgYXQgNTAlIDEwMCUsICRzaGFkb3ctY29sb3IsIHJnYmEoJHNoYWRvdy1jb2xvciwgMCkpIDAgMTAwJTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiZy1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgJGNvdmVyLXNpemUsXG4gICAgICAgICAgICAgICAgICAgICAxMDAlICRjb3Zlci1zaXplLFxuICAgICAgICAgICAgICAgICAgICAgMTAwJSAkc2hhZG93LXNpemUsXG4gICAgICAgICAgICAgICAgICAgICAxMDAlICRzaGFkb3ctc2l6ZTtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGxvY2FsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGw7XG4gICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4vLy8gSGVscGVyIHRvIG1ha2UgYSBjb250YWluZXIgc2Nyb2xsYWJsZSBhbmQgYWRkIGFuIGluZGljYXRvciBpbiB0aGUgZm9ybSBvZlxuLy8vIGEgc2hhZG93LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29udGFpbmVyLWhlaWdodCBbMTAwJV0gLSBDb250YWluZXIgZWxlbWVudCBoZWlnaHRcbi8vLyBAcGFyYW0ge051bWJlciB8IFN0cmluZyB8IE51bGx9ICRiZy1jb2xvciBbbnVsbF0gLSBCYWNrZ3JvdW5kIGNvbG9yXG4vLy8gQHBhcmFtIHtDb2xvciB8IE51bGx9ICRzdHlsZSBbbnVsbF0gLSBDb3VsZCBiZSBzZXQgdG8gYGxpbmVhcmAuIERlZmF1bHQgaXMgYSByYWRpYWwgZ3JhZGllbnQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHNoYWRvdy1jb2xvciBbJHNjcm9sbGFibGUtaW5kaWNhdG9yLWNvbG9yXSAtIFNoYWRvdyBjb2xvclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2hhZG93LXNpemUgWyRzY3JvbGxhYmxlLWluZGljYXRvci1zaGFkb3ctc2l6ZV0gLSBTaGFkb3cgaGVpZ2h0XG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRjb3Zlci1zaXplLW11bHRpcGxpZXIgWyRzY3JvbGxhYmxlLWluZGljYXRvci1zaGFkb3ctY292ZXItc2l6ZS1tdWx0aXBsaWVyXSAtIE11bHRpcGxpZXIgdG8gY2FsY3VsYXRlIHRoZSBzaGFkb3cgY292ZXIgaGVpZ2h0XG4vLy8gQHBhcmFtIHtNYXB9ICR0aGVtZXMgW251bGxdIC0gTWFwIGZvciB0aGVtaW5nXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR0aGVtZS1iZy1jb2xvci12YXJpYWJsZSBbYmFja2dyb3VuZF0gLSBLZXkgaW4gJHRoZW1lcyB0aGF0IGlzIGJlaW5nIHVzZWQgZm9yIHRoZSBjb2xvciB2YWx1ZVxuQG1peGluIHNjcm9sbGFibGUoXG4gICAgJGNvbnRhaW5lci1oZWlnaHQ6IDEwMCUsXG4gICAgJGJnLWNvbG9yOiBudWxsLFxuICAgICRzdHlsZTogbnVsbCxcbiAgICAkc2hhZG93LWNvbG9yOiAkc2Nyb2xsYWJsZS1pbmRpY2F0b3ItY29sb3IsXG4gICAgJHNoYWRvdy1zaXplOiAkc2Nyb2xsYWJsZS1pbmRpY2F0b3Itc2hhZG93LXNpemUsXG4gICAgJGNvdmVyLXNpemUtbXVsdGlwbGllciA6ICRzY3JvbGxhYmxlLWluZGljYXRvci1zaGFkb3ctY292ZXItc2l6ZS1tdWx0aXBsaWVyLFxuICAgICR0aGVtZXM6IG51bGwsXG4gICAgJHRoZW1lLWJnLWNvbG9yLXZhcmlhYmxlOiBcImJhY2tncm91bmRcIlxuKSB7XG4gICAgQGlmICgkYmctY29sb3IgPT0gbnVsbCBvciAkYmctY29sb3IgPT0gdHJhbnNwYXJlbnQgb3Igb3BhY2l0eSgkYmctY29sb3IpICE9IDEpIHtcbiAgICAgICAgQGVycm9yKFwiVGhlIGJhY2tncm91bmQgY29sb3Igb2YgYSBjb21wb25lbnQgdXNpbmcgdGhlIHNjcm9sbGFibGUoKSBoZWxwZXIgY2Fubm90IGJlIG51bGwgb3IgKHBhcnRseSkgdHJhbnNwYXJlbnQuXCIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIF9zY3JvbGxhYmxlLWluZGljYXRvcnMoXG4gICAgICAgICRiZy1jb2xvcixcbiAgICAgICAgJHN0eWxlLFxuICAgICAgICAkc2hhZG93LWNvbG9yLFxuICAgICAgICAkc2hhZG93LXNpemUsXG4gICAgICAgICRjb3Zlci1zaXplLW11bHRpcGxpZXJcbiAgICApO1xuICAgIG1heC1oZWlnaHQ6ICRjb250YWluZXItaGVpZ2h0O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICBAaW5jbHVkZSB2YXJ5KCRsb29wOiAkdGhlbWVzKSB7XG4gICAgICAgICRiZy1jb2xvci10aGVtZTogdmFyeS1nZXQoJHRoZW1lLWJnLWNvbG9yLXZhcmlhYmxlKTtcbiAgICAgICAgQGlmICh0eXBlX29mKCRiZy1jb2xvci10aGVtZSkgPT0gY29sb3IpIHtcbiAgICAgICAgICAgIEBpZiAoJGJnLWNvbG9yLXRoZW1lID09IHRyYW5zcGFyZW50IG9yIG9wYWNpdHkoJGJnLWNvbG9yLXRoZW1lKSAhPSAxKSB7XG4gICAgICAgICAgICAgICAgQGVycm9yKFwiVGhlIGJhY2tncm91bmQgY29sb3Igb2YgYSBjb21wb25lbnQgdXNpbmcgdGhlIHNjcm9sbGFibGUoKSBoZWxwZXIgY2Fubm90IGJlIG51bGwgb3IgKHBhcnRseSkgdHJhbnNwYXJlbnQuIENoZWNrIHRoZW1pbmcgY29sb3JzIVwiKTtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIF9zY3JvbGxhYmxlLWluZGljYXRvcnMoXG4gICAgICAgICAgICAgICAgICAgICRiZy1jb2xvci10aGVtZSxcbiAgICAgICAgICAgICAgICAgICAgJHN0eWxlLFxuICAgICAgICAgICAgICAgICAgICAkc2hhZG93LWNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkc2hhZG93LXNpemUsXG4gICAgICAgICAgICAgICAgICAgICRjb3Zlci1zaXplLW11bHRpcGxpZXJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0NPTUJPQk9YXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNrb2RhLWNvbWJvYm94LWlucHV0LWJhY2tncm91bmQtY29sb3I6ICRHTE9CQUwtSU5QVVQtQkFDS0dST1VORCAhZGVmYXVsdDtcblxuJHNrb2RhLWNvbWJvYm94LWJvcmRlci1maWxsZWQ6ICAgICAgICAgICRHTE9CQUwtSU5QVVQtQk9SREVSLUNPTE9SLUZJTExFRCAhZGVmYXVsdDtcbiRza29kYS1jb21ib2JveC1saXN0Ym94LW9mZnNldDogICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gQXBwbHkgYGJvcmRlci1yYWRpdXNgIHRvIGFsbCBzaWRlcywgZGVmYXVsdCBvbmx5IGFwcGxpZXMgdG8gYm90dG9tLlxuICogWzJdIFZpc3VhbGx5IGNlbnRlciBvZiB2aXN1YWwgZmFrZSBjb250YWluZXIgKGlucHV0ICsgbGFiZWwpLlxuICovXG4uYy1jb21ib2JveF9fd3JhcHBlciB7XG5cbiAgICBpbnB1dFtuYW1lPVwiY29tYm9ib3gtdmFsdWVzXCJdIHtcblxuICAgICAgICAmW3ZhbHVlXTpub3QoW3ZhbHVlPVwiXCJdKSB+IC5jLWNvbWJvYm94Om5vdCgjeyRjb21ib2JveC1kaXNhYmxlZC1zdGF0ZX0pOm5vdCgjeyRjb21ib2JveC1yZWFkb25seS1zdGF0ZX0pOm5vdCg6Zm9jdXMpOjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2tvZGEtY29tYm9ib3gtYm9yZGVyLWZpbGxlZDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbi5jLWNvbWJvYm94IHtcblxuICAgIC5jLWZvcm0tZmllbGQgJiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRza29kYS1jb21ib2JveC1pbnB1dC1iYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgICAgIC8vIENoZXZyb25cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwOyAvKiBbMl0gKi9cbiAgICAgICAgICAgIHJpZ2h0OiAkY29tYm9ib3gtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuXG4gICAgLmMtY29tYm9ib3hfX2xpc3Rib3gtY29udGFpbmVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRza29kYS1jb21ib2JveC1saXN0Ym94LW9mZnNldCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRjb21ib2JveC1saXN0Ym94LWJvcmRlci1yYWRpdXM7IC8qIFsxXSAqL1xuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNUSUxFLVNFTEVDVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8vIEdlbmVyYWwgY29uZmlnXG4kdGlsZS1zZWxlY3QtYnJlYWtwb2ludDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcyAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1ib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LW9wYWNpdHktZGlzYWJsZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICRPUEFDSVRZLU1FRElVTSAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1vcGFjaXR5LWRpc2FibGVkLXNlbGVjdGVkOiAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LXBhZGRpbmctdG9wOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LXBhZGRpbmctYm90dG9tOiAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1wYWRkaW5nLXRvcCAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICAgICAkdGlsZS1zZWxlY3QtcGFkZGluZy10b3AgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtdHJhbnNpdGlvbi1wcm9wZXJ0eTogICAgICAgICAgICAgICAgICAgICAgY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVRSQU5TSVRJT04tRFVSQVRJT04gIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICAgICAgICAgICAgICAgJEdMT0JBTC1UUkFOU0lUSU9OLVRJTUlORy1GVU5DVElPTiAhZGVmYXVsdDtcblxuLy8gQm9keSBmb3JlZ3JvdW5kXG4kdGlsZS1zZWxlY3QtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWNvbG9yLXNlbGVjdGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtY29sb3ItZGlzYWJsZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1jb2xvci1kaXNhYmxlZC1zZWxlY3RlZDogICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWNvbG9yLWVycm9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtY29sb3ItZXJyb3ItaG92ZXI6ICAgICAgICAgICAgICAgICAgICAgICAgJHRpbGUtc2VsZWN0LWNvbG9yLWVycm9yICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWNvbG9yLWVycm9yLXNlbGVjdGVkOiAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtY29sb3ItaGludC1kaXNhYmxlZDogICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1jb2xvci1oaW50LWJhY2tncm91bmQtZGlzYWJsZWQ6ICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4vLyBCb2R5IGJhY2tncm91bmRcbiR0aWxlLXNlbGVjdC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1iYWNrZ3JvdW5kLWNvbG9yLXNlbGVjdGVkOiAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQ6ICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZC1zZWxlY3RlZDogICAgICAgbnVsbCAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1iYWNrZ3JvdW5kLWNvbG9yLWVycm9yOiAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWJhY2tncm91bmQtY29sb3ItZXJyb3ItaG92ZXI6ICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1iYWNrZ3JvdW5kLWNvbG9yLWVycm9yICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWJhY2tncm91bmQtY29sb3ItZXJyb3Itc2VsZWN0ZWQ6ICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtYmFja2dyb3VuZC1jb2xvci10aGVtZXM6IChcbiAgICBcImFsdGVybmF0aXZlXCI6IChcbiAgICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yXCI6ICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIFwiYmFja2dyb3VuZC1jb2xvci1ob3ZlclwiOiAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBcImJhY2tncm91bmQtY29sb3Itc2VsZWN0ZWRcIjogICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkXCI6ICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIFwiYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZC1zZWxlY3RlZFwiOiAgICAgICBudWxsLFxuICAgICAgICBcImJhY2tncm91bmQtY29sb3ItZXJyb3JcIjogICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yLWVycm9yLXNlbGVjdGVkXCI6ICAgICAgICAgIG51bGwsXG4gICAgICAgIFwiY2hlY2stYmFja2dyb3VuZC1jb2xvclwiOiAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBcImNoZWNrLWJhY2tncm91bmQtY29sb3ItaG92ZXJcIjogICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgXCJjaGVjay1iYWNrZ3JvdW5kLWNvbG9yLXNlbGVjdGVkXCI6ICAgICAgICAgIG51bGwsXG4gICAgICAgIFwiY2hlY2stYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZFwiOiAgICAgICAgICBudWxsLFxuICAgICAgICBcImNoZWNrLWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQtc2VsZWN0ZWRcIjogbnVsbCxcbiAgICAgICAgXCJjaGVjay1iYWNrZ3JvdW5kLWNvbG9yLWVycm9yXCI6ICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIFwiY2hlY2stYmFja2dyb3VuZC1jb2xvci1lcnJvci1zZWxlY3RlZFwiOiAgICBudWxsLFxuICAgIClcbikgIWRlZmF1bHQ7XG5cbi8vIEJvZHkgYm9yZGVyXG4kdGlsZS1zZWxlY3QtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItUEFMRSAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1ib3JkZXItY29sb3ItaG92ZXI6ICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtYm9yZGVyLWNvbG9yLXNlbGVjdGVkOiAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWJvcmRlci1jb2xvci1kaXNhYmxlZDogICAgICAgICAgICAgICAgICAgICRDT0xPUi1QQUxFICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWJvcmRlci1jb2xvci1kaXNhYmxlZC1zZWxlY3RlZDogICAgICAgICAgICRDT0xPUi1QQUxFICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWJvcmRlci1jb2xvci1lcnJvcjogICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1BTEVSVCAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1ib3JkZXItY29sb3ItZXJyb3ItaG92ZXI6ICAgICAgICAgICAgICAgICAkdGlsZS1zZWxlY3QtYm9yZGVyLWNvbG9yLWVycm9yICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWJvcmRlci1jb2xvci1lcnJvci1zZWxlY3RlZDogICAgICAgICAgICAgICRDT0xPUi1BTEVSVCAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxcHggIWRlZmF1bHQ7XG5cbi8vIENoZWNrbWFyayBjb25maWdcbiR0aWxlLXNlbGVjdC1jaGVjay1ib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kdGlsZS1zZWxlY3QtY2hlY2stZW5hYmxlLWNvbG9yLWNoYW5nZTogICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1jaGVjay1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICBcIjo6YmVmb3JlXCIgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtY2hlY2stZm9yZWdyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgXCI6OmFmdGVyXCIgIWRlZmF1bHQ7XG5cbiR0aWxlLXNlbGVjdC1jaGVjay1pY29uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1jaGVja21hcmspICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWNoZWNrLWljb24tYmFja2dyb3VuZC1zaXplOiAgICAgICAgICAgICAgIDMycHggIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtY2hlY2staWNvbi1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1jaGVjay1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgICAgICA1MCUgIWRlZmF1bHQ7XG5cbi8vIENoZWNrbWFyayBmb3JlZ3JvdW5kXG4kdGlsZS1zZWxlY3QtY2hlY2stY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtY2hlY2stY29sb3ItaG92ZXI6ICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtY2hlY2stY29sb3Itc2VsZWN0ZWQ6ICAgICAgICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWNoZWNrLWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWNoZWNrLWNvbG9yLWRpc2FibGVkLXNlbGVjdGVkOiAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1jaGVjay1jb2xvci1lcnJvcjogICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1jaGVjay1jb2xvci1lcnJvci1ob3ZlcjogICAgICAgICAgICAgICAgICAkdGlsZS1zZWxlY3QtY2hlY2stY29sb3ItZXJyb3IgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtY2hlY2stY29sb3ItZXJyb3Itc2VsZWN0ZWQ6ICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuXG4vLyBDaGVja21hcmsgYmFja2dyb3VuZFxuJHRpbGUtc2VsZWN0LWNoZWNrLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1jaGVjay1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAkdGlsZS1zZWxlY3QtY2hlY2stYmFja2dyb3VuZC1jb2xvciAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1jaGVjay1iYWNrZ3JvdW5kLWNvbG9yLXNlbGVjdGVkOiAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtY2hlY2stYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDogICAgICAgICAgJHRpbGUtc2VsZWN0LWNoZWNrLWJhY2tncm91bmQtY29sb3IgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtY2hlY2stYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZC1zZWxlY3RlZDogJENPTE9SLVBBTEUgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtY2hlY2stYmFja2dyb3VuZC1jb2xvci1lcnJvcjogICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWNoZWNrLWJhY2tncm91bmQtY29sb3ItZXJyb3ItaG92ZXI6ICAgICAgICR0aWxlLXNlbGVjdC1jaGVjay1iYWNrZ3JvdW5kLWNvbG9yLWVycm9yICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWNoZWNrLWJhY2tncm91bmQtY29sb3ItZXJyb3Itc2VsZWN0ZWQ6ICAgICRDT0xPUi1BTEVSVCAhZGVmYXVsdDtcblxuLy8gQ2hlY2ttYXJrIGJvcmRlclxuJHRpbGUtc2VsZWN0LWNoZWNrLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtY2hlY2stYm9yZGVyLWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAgICAgJHRpbGUtc2VsZWN0LWJvcmRlci1jb2xvci1ob3ZlciAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1jaGVjay1ib3JkZXItY29sb3Itc2VsZWN0ZWQ6ICAgICAgICAgICAgICAkdGlsZS1zZWxlY3QtYm9yZGVyLWNvbG9yLXNlbGVjdGVkICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWNoZWNrLWJvcmRlci1jb2xvci1kaXNhYmxlZDogICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1ib3JkZXItY29sb3ItZGlzYWJsZWQgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtY2hlY2stYm9yZGVyLWNvbG9yLWRpc2FibGVkLXNlbGVjdGVkOiAgICAgJHRpbGUtc2VsZWN0LWJvcmRlci1jb2xvci1kaXNhYmxlZC1zZWxlY3RlZCAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1jaGVjay1ib3JkZXItY29sb3ItZXJyb3I6ICAgICAgICAgICAgICAgICAkdGlsZS1zZWxlY3QtYm9yZGVyLWNvbG9yLWVycm9yICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWNoZWNrLWJvcmRlci1jb2xvci1lcnJvci1ob3ZlcjogICAgICAgICAgICR0aWxlLXNlbGVjdC1jaGVjay1ib3JkZXItY29sb3ItZXJyb3IgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtY2hlY2stYm9yZGVyLWNvbG9yLWVycm9yLXNlbGVjdGVkOiAgICAgICAgJHRpbGUtc2VsZWN0LWJvcmRlci1jb2xvci1lcnJvci1zZWxlY3RlZCAhZGVmYXVsdDtcblxuLy8gQm9keSBjb250ZW50XG4kdGlsZS1zZWxlY3QtaWNvbi1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKGxhcmdlKSAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWljb24tY29sb3ItaG92ZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1pY29uLWNvbG9yICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWljb24tY29sb3Itc2VsZWN0ZWQ6ICAgICAgICAgICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1pY29uLWNvbG9yICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWljb24tY29sb3ItZGlzYWJsZWQ6ICAgICAgICAgICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1pY29uLWNvbG9yICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWljb24tY29sb3ItZGlzYWJsZWQtc2VsZWN0ZWQ6ICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1pY29uLWNvbG9yICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWljb24tY29sb3ItZXJyb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1pY29uLWNvbG9yICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWljb24tY29sb3ItZXJyb3ItaG92ZXI6ICAgICAgICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1pY29uLWNvbG9yLWVycm9yICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWljb24tY29sb3ItZXJyb3Itc2VsZWN0ZWQ6ICAgICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1pY29uLWNvbG9yLWVycm9yICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWljb24taGlkZGVuLWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtdGl0bGUtZm9udC1mYW1pbHk6ICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC10aXRsZS1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtdGl0bGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1IRUFESU5HLUg0LUZPTlQtU0laRSAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC10aXRsZS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUhFQURJTkctQkFTRS1MSU5FLUhFSUdIVCAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC10aXRsZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LXRpdGxlLWxldHRlci1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtdGV4dC1hbGlnbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VudGVyICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LXRvcC1hcmVhLXRleHQtYWxpZ246ICAgICAgICAgICAgICAgICAgICAgICR0aWxlLXNlbGVjdC10ZXh0LWFsaWduICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWJvdHRvbS1hcmVhLXRleHQtYWxpZ246ICAgICAgICAgICAgICAgICAgICR0aWxlLXNlbGVjdC10ZXh0LWFsaWduICFkZWZhdWx0O1xuXG4kdGlsZS1zZWxlY3QtdGl0bGUtbWFyZ2luLXRvcDogKFxuICAgIG51bGw6ICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCxcbiAgICAkdGlsZS1zZWxlY3QtYnJlYWtwb2ludDogJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTExcbikgIWRlZmF1bHQ7XG5cbiR0aWxlLXNlbGVjdC10ZXh0LW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgICAkdGlsZS1zZWxlY3QtdGl0bGUtbWFyZ2luLXRvcCAhZGVmYXVsdDtcblxuJHRpbGUtc2VsZWN0LWZvb3Rlci1tYXJnaW4tdG9wOiAoXG4gICAgbnVsbDogICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULFxuICAgICR0aWxlLXNlbGVjdC1icmVha3BvaW50OiAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCxcbikgIWRlZmF1bHQ7XG5cbi8qXG4gKiAgTWl4aW4gZGVmaW5lcyBzb21lIGNvbW1vbiBzdHlsaW5nIGRlY2xhcmF0aW9ucyBmb3IgdGhlIHZhcmlvdXMgY29tcG9uZW50XG4gKiAgc3RhdGVzLlxuICovXG5AbWl4aW4gdGlsZS1zZWxlY3Qtc3RhdGUtc3R5bGVzKFxuICAgICRmb3JlZ3JvdW5kLWNvbG9yOiAgICAgICAgIG51bGwsXG4gICAgJGJhY2tncm91bmQtY29sb3I6ICAgICAgICAgbnVsbCxcbiAgICAkYmFja2dyb3VuZC1jb2xvci12YXJpYW50OiBudWxsLFxuICAgICRib3JkZXItY29sb3I6ICAgICAgICAgICAgIG51bGwsXG4gICAgJGNoZWNrLWNvbG9yOiAgICAgICAgICAgICAgbnVsbCxcbiAgICAkY2hlY2stYmFja2dyb3VuZC1jb2xvcjogICBudWxsLFxuICAgICRjaGVjay1ib3JkZXItY29sb3I6ICAgICAgIG51bGwsXG4gICAgJGljb24tY29sb3I6ICAgICAgICAgICAgICAgbnVsbCxcbiAgICAkb3BhY2l0eTogICAgICAgICAgICAgICAgICBudWxsLFxuICAgICRjdXJzb3I6ICAgICAgICAgICAgICAgICAgIG51bGxcbikge1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgICBjdXJzb3I6ICRjdXJzb3I7XG5cbiAgICBAaW5jbHVkZSB2YXJ5KCRsb29wOiAkdGlsZS1zZWxlY3QtYmFja2dyb3VuZC1jb2xvci10aGVtZXMpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyeS1nZXQoJGJhY2tncm91bmQtY29sb3ItdmFyaWFudCk7XG4gICAgfVxuXG4gICAgJixcbiAgICAuYy10aWxlLXNlbGVjdF9fdGl0bGUge1xuICAgICAgICBjb2xvcjogJGZvcmVncm91bmQtY29sb3I7XG4gICAgfVxuXG4gICAgLmMtdGlsZS1zZWxlY3RfX2ljb24ge1xuICAgICAgICBjb2xvcjogJGljb24tY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkdGlsZS1zZWxlY3QtY2hlY2stZW5hYmxlLWNvbG9yLWNoYW5nZSkge1xuICAgICAgICAmI3skdGlsZS1zZWxlY3QtY2hlY2stYmFja2dyb3VuZH0ge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkY2hlY2stYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNoZWNrLWJhY2tncm91bmQtY29sb3I7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICR0aWxlLXNlbGVjdC1iYWNrZ3JvdW5kLWNvbG9yLXRoZW1lcykge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcnktZ2V0KFwiY2hlY2stI3skYmFja2dyb3VuZC1jb2xvci12YXJpYW50fVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYjeyR0aWxlLXNlbGVjdC1jaGVjay1mb3JlZ3JvdW5kfSB7XG4gICAgICAgICAgICBjb2xvcjogJGNoZWNrLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cbi8qKlxuICogWzFdIENvbXBlbnNhdGUgZm9yIHRoZSBhZGRpdGlvbmFsIHNwYWNlIHJlcXVpcmVkIGZvciB0aGUgY2hlY2sgbWFyayBhdCB0aGVcbiAqICAgICB0b3AuXG4gKiBbMl0gRW5zdXJlIHRpbGUgaWNvbiBmb3JlZ3JvdW5kIGFuZCBiYWNrZ3JvdW5kIHVzZSBjb21tb24gcG9zaXRpb24uXG4gKiBbM10gRW5zdXJlIHRoYXQgY2hlY2sgaWNvbiBpcyBjZW50ZXJlZC5cbiAqIFs0XSBNYWtlIGAuYy10aWxlLXNlbGVjdF9fYm9keS10b3BgIHRha2UgdXAgYWxsIGF2YWlsYWJsZSBzcGFjZSB0byBwdXNoXG4gKiAgICAgYC5jLXRpbGUtc2VsZWN0X19ib2R5LWJvdHRvbWAgdG8gdGhlIHZlcnkgYm90dG9tIG9mIHRoZSBib2R5LlxuICogWzVdIEFkZCBoYWxmIHRoZSBzaXplIG9mIHRoZSBjaGVjayBtYXJrIHRvIHRoZSB0b3AgcGFkZGluZyB0byBjb21wZW5zYXRlIGZvclxuICogICAgIHRoZSBzcGFjZSB0aGUgY2hlY2sgbWFyayB0YWtlcyB1cC5cbiAqIFs2XSBBcHBseSBtYXJnaW4gaWYgdGhlIGVsZW1lbnQgaXMgbm90IHRoZSBmaXJzdCBjaGlsZCBpbiBpdCdzIGNvbnRhaW5lci5cbiAqIFs3XSBJZiB0aGUgaWNvbiBpcyBoaWRkZW4gb24gc21hbGwgc2NyZWVucywgdGhlIHRpdGxlIGJlbG93IGl0IHNob3VsZCBub3RcbiAqICAgICBoYXZlIGEgdG9wIG1hcmdpbi5cbiAqIFs4XSBQbGFjZSB0aGUgcHNldWRvIGVsZW1lbnQgYXQgdGhlIHRvcCBjZW50ZXIgb2YgdGhlIGAuYy10aWxlLXNlbGVjdF9fYm9keWBcbiAqICAgICBBbmQgdHJhbnNsYXRlIGl0IGJhY2sgYnkgaGFsZiBpdCdzIHdpZHRoIGFuZCBoZWlnaHQgZm9yIGl0IHRvIGJlXG4gKiAgICAgY2VudGVyZWQuXG4gKiBbOV0gT3ZlcnJpZGUgaGludCBjb2xvcnMgZm9yIHNlbGVjdGVkLCBkaXNhYmxlZCBvciBkaXNhYmxlZCBzZWxlY3RlZCB0aWxlcy5cbiAqIFsxMF0gRW5zdXJlIHRoYXQgYWxsIGNvbnRlbnQgaXMgY2VudGVyZWQuXG4gKiBbMTFdIEVuc3VyZSB0aGF0IGFsbCBjb250ZW50IGhhcyB0b3Agc3BhY2luZy5cbiAqIFsxMl0gUGxhY2UgYWxsIGZvb3RlciBjb250ZW50IGluIGEgbmV3IGxpbmUuXG4gKiBbMTNdIE1ha2Ugc3VyZSwgdGhlIGZvb3RlciBjb250ZW50IGRvZXMgbm90IHN0cmV0Y2ggYWNyb3NzIHRoZSBwYXJlbnRcbiAqICAgICAgY29udGFpbmVyLlxuICovXG4uYy10aWxlLXNlbGVjdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiAoJHRpbGUtc2VsZWN0LWNoZWNrLWljb24tYmFja2dyb3VuZC1zaXplICogMC41KTsgLyogWzFdICovXG59XG5cbiAgICAuYy10aWxlLXNlbGVjdF9faW5wdXQge1xuICAgICAgICBAaW5jbHVkZSBhMTF5LWhpZGRlbigpO1xuICAgIH1cblxuICAgIC5jLXRpbGUtc2VsZWN0X19sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLmMtdGlsZS1zZWxlY3RfX2JvZHkge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFxuICAgICAgICAgICAgKFwicGFkZGluZy10b3BcIiwgcmVzcG9uc2l2ZS1wcm9wZXJ0eS1tb2RpZnkoJHRpbGUtc2VsZWN0LXBhZGRpbmctdG9wLCAkYWRkOiAkdGlsZS1zZWxlY3QtY2hlY2staWNvbi1iYWNrZ3JvdW5kLXNpemUgKiAwLjUpKSwgLyogWzVdICovXG4gICAgICAgICAgICAoXCJwYWRkaW5nLWxlZnRcIiwgJHRpbGUtc2VsZWN0LXBhZGRpbmctaG9yaXpvbnRhbCksXG4gICAgICAgICAgICAoXCJwYWRkaW5nLWJvdHRvbVwiLCAkdGlsZS1zZWxlY3QtcGFkZGluZy1ib3R0b20pLFxuICAgICAgICAgICAgKFwicGFkZGluZy1yaWdodFwiLCAkdGlsZS1zZWxlY3QtcGFkZGluZy1ob3Jpem9udGFsKVxuICAgICAgICApO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIFsxXSAqL1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJvcmRlcjogJHRpbGUtc2VsZWN0LWJvcmRlci13aWR0aCBzb2xpZCAkdGlsZS1zZWxlY3QtYm9yZGVyLWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkdGlsZS1zZWxlY3QtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRpbGUtc2VsZWN0LWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6ICR0aWxlLXNlbGVjdC10cmFuc2l0aW9uLXByb3BlcnR5O1xuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkdGlsZS1zZWxlY3QtdHJhbnNpdGlvbi1kdXJhdGlvbjtcbiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICR0aWxlLXNlbGVjdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjtcbiAgICAgICAgYm94LXNoYWRvdzogJHRpbGUtc2VsZWN0LWJveC1zaGFkb3c7XG5cbiAgICAgICAgQGluY2x1ZGUgdmFyeSgkbG9vcDogJHRpbGUtc2VsZWN0LWJhY2tncm91bmQtY29sb3ItdGhlbWVzKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXJ5LWdldChcImJhY2tncm91bmQtY29sb3JcIik7XG4gICAgICAgIH1cblxuICAgICAgICAmLFxuICAgICAgICAuYy10aWxlLXNlbGVjdF9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6ICR0aWxlLXNlbGVjdC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJHRpbGUtc2VsZWN0LWNoZWNrLWVuYWJsZS1jb2xvci1jaGFuZ2UpIHtcbiAgICAgICAgICAgICYjeyR0aWxlLXNlbGVjdC1jaGVjay1iYWNrZ3JvdW5kfSxcbiAgICAgICAgICAgICYjeyR0aWxlLXNlbGVjdC1jaGVjay1mb3JlZ3JvdW5kfSB7IC8qIFsyXSAqL1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDsgLyogWzhdICovXG4gICAgICAgICAgICAgICAgbGVmdDogNTAlOyAvKiBbOF0gKi9cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogJHRpbGUtc2VsZWN0LWNoZWNrLWljb24tYmFja2dyb3VuZC1zaXplO1xuICAgICAgICAgICAgICAgIGhlaWdodDogJHRpbGUtc2VsZWN0LWNoZWNrLWljb24tYmFja2dyb3VuZC1zaXplO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyAvKiBbOF0gKi9cbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiAkdGlsZS1zZWxlY3QtdHJhbnNpdGlvbi1wcm9wZXJ0eTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkdGlsZS1zZWxlY3QtdHJhbnNpdGlvbi1kdXJhdGlvbjtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJHRpbGUtc2VsZWN0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmI3skdGlsZS1zZWxlY3QtY2hlY2stYmFja2dyb3VuZH0ge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJHRpbGUtc2VsZWN0LWJvcmRlci13aWR0aCBzb2xpZCAkdGlsZS1zZWxlY3QtY2hlY2stYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICR0aWxlLXNlbGVjdC1jaGVjay1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0aWxlLXNlbGVjdC1jaGVjay1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6ICR0aWxlLXNlbGVjdC1jaGVjay1ib3gtc2hhZG93O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdmFyeSgkbG9vcDogJHRpbGUtc2VsZWN0LWJhY2tncm91bmQtY29sb3ItdGhlbWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcnktZ2V0KFwiY2hlY2stYmFja2dyb3VuZC1jb2xvclwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYjeyR0aWxlLXNlbGVjdC1jaGVjay1mb3JlZ3JvdW5kfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCRsaW5lLWhlaWdodDogbnVsbCk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJHRpbGUtc2VsZWN0LWNoZWNrLWljb247XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkdGlsZS1zZWxlY3QtY2hlY2staWNvbi1zaXplO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdGlsZS1zZWxlY3QtY2hlY2staWNvbi1iYWNrZ3JvdW5kLXNpemU7IC8qIFszXSAqL1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgLyogWzNdICovXG4gICAgICAgICAgICAgICAgY29sb3I6ICR0aWxlLXNlbGVjdC1jaGVjay1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cbiAgICAgICAgLmMtdGlsZS1zZWxlY3RfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICR0aWxlLXNlbGVjdC1pY29uLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSG92ZXIgYW5kIGZvY3VzIHN0YXRlXG4gICAgICAgIC5jLXRpbGUtc2VsZWN0X19pbnB1dCArICY6aG92ZXIsXG4gICAgICAgIC5jLXRpbGUtc2VsZWN0X19pbnB1dDpmb2N1cyArICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgdGlsZS1zZWxlY3Qtc3RhdGUtc3R5bGVzKFxuICAgICAgICAgICAgICAgICRmb3JlZ3JvdW5kLWNvbG9yOiAgICAgICAgICR0aWxlLXNlbGVjdC1jb2xvci1ob3ZlcixcbiAgICAgICAgICAgICAgICAkYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAkdGlsZS1zZWxlY3QtYmFja2dyb3VuZC1jb2xvci1ob3ZlcixcbiAgICAgICAgICAgICAgICAkYmFja2dyb3VuZC1jb2xvci12YXJpYW50OiBcImJhY2tncm91bmQtY29sb3ItaG92ZXJcIixcbiAgICAgICAgICAgICAgICAkYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAkdGlsZS1zZWxlY3QtYm9yZGVyLWNvbG9yLWhvdmVyLFxuICAgICAgICAgICAgICAgICRjaGVjay1jb2xvcjogICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1jaGVjay1jb2xvci1ob3ZlcixcbiAgICAgICAgICAgICAgICAkY2hlY2stYmFja2dyb3VuZC1jb2xvcjogICAkdGlsZS1zZWxlY3QtY2hlY2stYmFja2dyb3VuZC1jb2xvci1ob3ZlcixcbiAgICAgICAgICAgICAgICAkY2hlY2stYm9yZGVyLWNvbG9yOiAgICAgICAkdGlsZS1zZWxlY3QtY2hlY2stYm9yZGVyLWNvbG9yLWhvdmVyLFxuICAgICAgICAgICAgICAgICRpY29uLWNvbG9yOiAgICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1pY29uLWNvbG9yLWhvdmVyLFxuICAgICAgICAgICAgICAgICRjdXJzb3I6ICAgICAgICAgICAgICAgICAgIHBvaW50ZXJcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZWxlY3RlZCBzdGF0ZVxuICAgICAgICAuYy10aWxlLXNlbGVjdF9faW5wdXQ6Y2hlY2tlZCArICYge1xuICAgICAgICAgICAgLy8gQFRPRE86IEFkZCBnbG9iYWwgc29sdXRpb24gZm9yIGNoZWNraW5nIGBudWxsYCB2YXJpYWJsZXMgQlJPTi05NTU2XG4gICAgICAgICAgICBAaWYgKCR0aWxlLXNlbGVjdC1jb2xvci1zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIC0taGludC10ZXh0LWNvbG9yOiAjeyR0aWxlLXNlbGVjdC1jb2xvci1zZWxlY3RlZH07IC8qIFs5XSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgdGlsZS1zZWxlY3Qtc3RhdGUtc3R5bGVzKFxuICAgICAgICAgICAgICAgICRmb3JlZ3JvdW5kLWNvbG9yOiAgICAgICAgICR0aWxlLXNlbGVjdC1jb2xvci1zZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAkYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAkdGlsZS1zZWxlY3QtYmFja2dyb3VuZC1jb2xvci1zZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAkYmFja2dyb3VuZC1jb2xvci12YXJpYW50OiBcImJhY2tncm91bmQtY29sb3Itc2VsZWN0ZWRcIixcbiAgICAgICAgICAgICAgICAkYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAkdGlsZS1zZWxlY3QtYm9yZGVyLWNvbG9yLXNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICRjaGVjay1jb2xvcjogICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1jaGVjay1jb2xvci1zZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAkY2hlY2stYmFja2dyb3VuZC1jb2xvcjogICAkdGlsZS1zZWxlY3QtY2hlY2stYmFja2dyb3VuZC1jb2xvci1zZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAkY2hlY2stYm9yZGVyLWNvbG9yOiAgICAgICAkdGlsZS1zZWxlY3QtY2hlY2stYm9yZGVyLWNvbG9yLXNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICRpY29uLWNvbG9yOiAgICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1pY29uLWNvbG9yLXNlbGVjdGVkXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgICAgICAgLmMtdGlsZS1zZWxlY3RfX2lucHV0OmRpc2FibGVkICsgJiB7XG4gICAgICAgICAgICAvLyBAVE9ETzogQWRkIGdsb2JhbCBzb2x1dGlvbiBmb3IgY2hlY2tpbmcgYG51bGxgIHZhcmlhYmxlcyBCUk9OLTk1NTZcbiAgICAgICAgICAgIEBpZiAoJHRpbGUtc2VsZWN0LWNvbG9yLWhpbnQtZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAtLWhpbnQtdGV4dC1jb2xvcjogI3skdGlsZS1zZWxlY3QtY29sb3ItaGludC1kaXNhYmxlZH07IC8qIFs5XSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICgkdGlsZS1zZWxlY3QtY29sb3ItaGludC1kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIC0taGludC10ZXh0LWNvbG9yLWhvdmVyOiAjeyR0aWxlLXNlbGVjdC1jb2xvci1oaW50LWRpc2FibGVkfTsgLyogWzldICovXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKCR0aWxlLXNlbGVjdC1jb2xvci1oaW50LWJhY2tncm91bmQtZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAtLWhpbnQtYmFja2dyb3VuZC1jb2xvcjogI3skdGlsZS1zZWxlY3QtY29sb3ItaGludC1iYWNrZ3JvdW5kLWRpc2FibGVkfTsgLyogWzldICovXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSB0aWxlLXNlbGVjdC1zdGF0ZS1zdHlsZXMoXG4gICAgICAgICAgICAgICAgJGZvcmVncm91bmQtY29sb3I6ICAgICAgICAgJHRpbGUtc2VsZWN0LWNvbG9yLWRpc2FibGVkLFxuICAgICAgICAgICAgICAgICRiYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICR0aWxlLXNlbGVjdC1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkLFxuICAgICAgICAgICAgICAgICRiYWNrZ3JvdW5kLWNvbG9yLXZhcmlhbnQ6IFwiYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZFwiLFxuICAgICAgICAgICAgICAgICRib3JkZXItY29sb3I6ICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1ib3JkZXItY29sb3ItZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgJGNoZWNrLWNvbG9yOiAgICAgICAgICAgICAgJHRpbGUtc2VsZWN0LWNoZWNrLWNvbG9yLWRpc2FibGVkLFxuICAgICAgICAgICAgICAgICRjaGVjay1iYWNrZ3JvdW5kLWNvbG9yOiAgICR0aWxlLXNlbGVjdC1jaGVjay1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkLFxuICAgICAgICAgICAgICAgICRjaGVjay1ib3JkZXItY29sb3I6ICAgICAgICR0aWxlLXNlbGVjdC1jaGVjay1ib3JkZXItY29sb3ItZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgJGljb24tY29sb3I6ICAgICAgICAgICAgICAgJHRpbGUtc2VsZWN0LWljb24tY29sb3ItZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgJG9wYWNpdHk6ICAgICAgICAgICAgICAgICAgJHRpbGUtc2VsZWN0LW9wYWNpdHktZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgJGN1cnNvcjogICAgICAgICAgICAgICAgICAgYXV0b1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERpc2FibGVkLXNlbGVjdGVkIHN0YXRlXG4gICAgICAgIC5jLXRpbGUtc2VsZWN0X19pbnB1dDpjaGVja2VkOmRpc2FibGVkICsgJiB7XG4gICAgICAgICAgICAvLyBAVE9ETzogQWRkIGdsb2JhbCBzb2x1dGlvbiBmb3IgY2hlY2tpbmcgYG51bGxgIHZhcmlhYmxlcyBCUk9OLTk1NTZcbiAgICAgICAgICAgIEBpZiAoJHRpbGUtc2VsZWN0LWNvbG9yLWhpbnQtZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAtLWhpbnQtdGV4dC1jb2xvcjogI3skdGlsZS1zZWxlY3QtY29sb3ItaGludC1kaXNhYmxlZH07IC8qIFs5XSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICgkdGlsZS1zZWxlY3QtY29sb3ItaGludC1kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIC0taGludC10ZXh0LWNvbG9yLWhvdmVyOiAjeyR0aWxlLXNlbGVjdC1jb2xvci1oaW50LWRpc2FibGVkfTsgLyogWzldICovXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSB0aWxlLXNlbGVjdC1zdGF0ZS1zdHlsZXMoXG4gICAgICAgICAgICAgICAgJGZvcmVncm91bmQtY29sb3I6ICAgICAgICAgJHRpbGUtc2VsZWN0LWNvbG9yLWRpc2FibGVkLXNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICRiYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICR0aWxlLXNlbGVjdC1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkLXNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICRiYWNrZ3JvdW5kLWNvbG9yLXZhcmlhbnQ6IFwiYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZC1zZWxlY3RlZFwiLFxuICAgICAgICAgICAgICAgICRib3JkZXItY29sb3I6ICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1ib3JkZXItY29sb3ItZGlzYWJsZWQtc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgJGNoZWNrLWNvbG9yOiAgICAgICAgICAgICAgJHRpbGUtc2VsZWN0LWNoZWNrLWNvbG9yLWRpc2FibGVkLXNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICRjaGVjay1iYWNrZ3JvdW5kLWNvbG9yOiAgICR0aWxlLXNlbGVjdC1jaGVjay1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkLXNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICRjaGVjay1ib3JkZXItY29sb3I6ICAgICAgICR0aWxlLXNlbGVjdC1jaGVjay1ib3JkZXItY29sb3ItZGlzYWJsZWQtc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgJGljb24tY29sb3I6ICAgICAgICAgICAgICAgJHRpbGUtc2VsZWN0LWljb24tY29sb3ItZGlzYWJsZWQtc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgJG9wYWNpdHk6ICAgICAgICAgICAgICAgICAgJHRpbGUtc2VsZWN0LW9wYWNpdHktZGlzYWJsZWQtc2VsZWN0ZWRcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBFcnJvciBhbmQgZXJyb3ItaG92ZXIgc3RhdGVcbiAgICAgICAgLmlzLWVycm9yICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgdGlsZS1zZWxlY3Qtc3RhdGUtc3R5bGVzKFxuICAgICAgICAgICAgICAgICRmb3JlZ3JvdW5kLWNvbG9yOiAgICAgICAgICR0aWxlLXNlbGVjdC1jb2xvci1lcnJvcixcbiAgICAgICAgICAgICAgICAkYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAkdGlsZS1zZWxlY3QtYmFja2dyb3VuZC1jb2xvci1lcnJvcixcbiAgICAgICAgICAgICAgICAkYmFja2dyb3VuZC1jb2xvci12YXJpYW50OiBcImJhY2tncm91bmQtY29sb3ItZXJyb3JcIixcbiAgICAgICAgICAgICAgICAkYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAkdGlsZS1zZWxlY3QtYm9yZGVyLWNvbG9yLWVycm9yLFxuICAgICAgICAgICAgICAgICRjaGVjay1jb2xvcjogICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1jaGVjay1jb2xvci1lcnJvcixcbiAgICAgICAgICAgICAgICAkY2hlY2stYmFja2dyb3VuZC1jb2xvcjogICAkdGlsZS1zZWxlY3QtY2hlY2stYmFja2dyb3VuZC1jb2xvci1lcnJvcixcbiAgICAgICAgICAgICAgICAkY2hlY2stYm9yZGVyLWNvbG9yOiAgICAgICAkdGlsZS1zZWxlY3QtY2hlY2stYm9yZGVyLWNvbG9yLWVycm9yLFxuICAgICAgICAgICAgICAgICRpY29uLWNvbG9yOiAgICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1pY29uLWNvbG9yLWVycm9yXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRXJyb3ItaG92ZXIgYW5kIGVycm9yLWZvY3VzIHN0YXRlXG4gICAgICAgIC5pcy1lcnJvciAuYy10aWxlLXNlbGVjdF9faW5wdXQ6aG92ZXIgKyAmLFxuICAgICAgICAuaXMtZXJyb3IgLmMtdGlsZS1zZWxlY3RfX2lucHV0OmZvY3VzICsgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0aWxlLXNlbGVjdC1zdGF0ZS1zdHlsZXMoXG4gICAgICAgICAgICAgICAgJGZvcmVncm91bmQtY29sb3I6ICAgICAgICAgJHRpbGUtc2VsZWN0LWNvbG9yLWVycm9yLWhvdmVyLFxuICAgICAgICAgICAgICAgICRiYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICR0aWxlLXNlbGVjdC1iYWNrZ3JvdW5kLWNvbG9yLWVycm9yLWhvdmVyLFxuICAgICAgICAgICAgICAgICRiYWNrZ3JvdW5kLWNvbG9yLXZhcmlhbnQ6IFwiYmFja2dyb3VuZC1jb2xvci1lcnJvci1ob3ZlclwiLFxuICAgICAgICAgICAgICAgICRib3JkZXItY29sb3I6ICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1ib3JkZXItY29sb3ItZXJyb3ItaG92ZXIsXG4gICAgICAgICAgICAgICAgJGNoZWNrLWNvbG9yOiAgICAgICAgICAgICAgJHRpbGUtc2VsZWN0LWNoZWNrLWNvbG9yLWVycm9yLWhvdmVyLFxuICAgICAgICAgICAgICAgICRjaGVjay1iYWNrZ3JvdW5kLWNvbG9yOiAgICR0aWxlLXNlbGVjdC1jaGVjay1iYWNrZ3JvdW5kLWNvbG9yLWVycm9yLWhvdmVyLFxuICAgICAgICAgICAgICAgICRjaGVjay1ib3JkZXItY29sb3I6ICAgICAgICR0aWxlLXNlbGVjdC1jaGVjay1ib3JkZXItY29sb3ItZXJyb3ItaG92ZXIsXG4gICAgICAgICAgICAgICAgJGljb24tY29sb3I6ICAgICAgICAgICAgICAgJHRpbGUtc2VsZWN0LWljb24tY29sb3ItZXJyb3ItaG92ZXJcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBFcnJvci1zZWxlY3RlZCBzdGF0ZVxuICAgICAgICAuaXMtZXJyb3IgLmMtdGlsZS1zZWxlY3RfX2lucHV0OmNoZWNrZWQgKyAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRpbGUtc2VsZWN0LXN0YXRlLXN0eWxlcyhcbiAgICAgICAgICAgICAgICAkZm9yZWdyb3VuZC1jb2xvcjogICAgICAgICAkdGlsZS1zZWxlY3QtY29sb3ItZXJyb3Itc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgJGJhY2tncm91bmQtY29sb3I6ICAgICAgICAgJHRpbGUtc2VsZWN0LWJhY2tncm91bmQtY29sb3ItZXJyb3Itc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgJGJhY2tncm91bmQtY29sb3ItdmFyaWFudDogXCJiYWNrZ3JvdW5kLWNvbG9yLWVycm9yLXNlbGVjdGVkXCIsXG4gICAgICAgICAgICAgICAgJGJvcmRlci1jb2xvcjogICAgICAgICAgICAgJHRpbGUtc2VsZWN0LWJvcmRlci1jb2xvci1lcnJvci1zZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAkY2hlY2stY29sb3I6ICAgICAgICAgICAgICAkdGlsZS1zZWxlY3QtY2hlY2stY29sb3ItZXJyb3Itc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgJGNoZWNrLWJhY2tncm91bmQtY29sb3I6ICAgJHRpbGUtc2VsZWN0LWNoZWNrLWJhY2tncm91bmQtY29sb3ItZXJyb3Itc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgJGNoZWNrLWJvcmRlci1jb2xvcjogICAgICAgJHRpbGUtc2VsZWN0LWNoZWNrLWJvcmRlci1jb2xvci1lcnJvci1zZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAkaWNvbi1jb2xvcjogICAgICAgICAgICAgICAkdGlsZS1zZWxlY3QtaWNvbi1jb2xvci1lcnJvci1zZWxlY3RlZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtdGlsZS1zZWxlY3RfX2JvZHktdG9wIHtcbiAgICAgICAgZmxleC1ncm93OiAxOyAvKiBbNF0gKi9cbiAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIHRleHQtYWxpZ246ICR0aWxlLXNlbGVjdC10b3AtYXJlYS10ZXh0LWFsaWduO1xuICAgIH1cblxuICAgIC5jLXRpbGUtc2VsZWN0X19ib2R5LWJvdHRvbSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXCJtYXJnaW4tdG9wXCIsICR0aWxlLXNlbGVjdC1mb290ZXItbWFyZ2luLXRvcCk7IC8qIFsxMV0gKi9cbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcInJvdy1nYXBcIiwgJHRpbGUtc2VsZWN0LWZvb3Rlci1tYXJnaW4tdG9wKTsgLyogWzExXSAqL1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR0aWxlLXNlbGVjdC1ib3R0b20tYXJlYS10ZXh0LWFsaWduOyAvKiBbMTBdICovXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IC8qIFsxMl0gKi9cbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogWzEzXSAqL1xuICAgIH1cblxuICAgIC5jLXRpbGUtc2VsZWN0X19pY29uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogJHRpbGUtc2VsZWN0LWljb24tc2l6ZTtcbiAgICB9XG5cbiAgICAvLyBAREVQUkVDQVRFRDogdmlzaWJpbGl0eSBoYW5kbGVkIHZpYSBjb25kaXRpb25hbCBlbGVtZW50IG9yIG9wdGlvbmFsIHV0aWxpdHlcbiAgICAuYy10aWxlLXNlbGVjdF9faWNvbi0taGlkZGVuLW9uLXNtYWxsLXNjcmVlbnMge1xuICAgICAgICBAaWYgKCR0aWxlLXNlbGVjdC1pY29uLWhpZGRlbi1icmVha3BvaW50ICE9IG51bGwpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyR0aWxlLXNlbGVjdC1pY29uLWhpZGRlbi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jLXRpbGUtc2VsZWN0X190aXRsZSxcbiAgICAuYy10aWxlLXNlbGVjdF9fdGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5jLXRpbGUtc2VsZWN0X190aXRsZSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCR0aWxlLXNlbGVjdC10aXRsZS1mb250LXNpemUpO1xuICAgICAgICBmb250LWZhbWlseTogJHRpbGUtc2VsZWN0LXRpdGxlLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXdlaWdodDogJHRpbGUtc2VsZWN0LXRpdGxlLWZvbnQtd2VpZ2h0O1xuICAgICAgICBsaW5lLWhlaWdodDogJHRpbGUtc2VsZWN0LXRpdGxlLWxpbmUtaGVpZ2h0O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogJHRpbGUtc2VsZWN0LXRpdGxlLWxldHRlci1zcGFjaW5nO1xuICAgICAgICBjb2xvcjogJHRpbGUtc2VsZWN0LXRpdGxlLWNvbG9yO1xuICAgIH1cblxuICAgICogKyAuYy10aWxlLXNlbGVjdF9fdGl0bGUgeyAvKiBbNl0gKi9cbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcIm1hcmdpbi10b3BcIiwgJHRpbGUtc2VsZWN0LXRpdGxlLW1hcmdpbi10b3ApO1xuICAgIH1cblxuICAgICogKyAuYy10aWxlLXNlbGVjdF9fdGV4dCB7IC8qIFs2XSAqL1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFwibWFyZ2luLXRvcFwiLCAkdGlsZS1zZWxlY3QtdGV4dC1tYXJnaW4tdG9wKTtcbiAgICB9XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjVFJBTlNJVElPTiAoU2V0dGluZ3MpXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJEdMT0JBTC1UUkFOU0lUSU9OLVBST1BFUlRZOiAgICAgICAgYWxsICFkZWZhdWx0O1xuJEdMT0JBTC1UUkFOU0lUSU9OLURVUkFUSU9OOiAgICAgICAgMzAwbXMgIWRlZmF1bHQ7XG4kR0xPQkFMLVRSQU5TSVRJT04tVElNSU5HLUZVTkNUSU9OOiBlYXNlLWluLW91dCAhZGVmYXVsdDtcbiRHTE9CQUwtVFJBTlNJVElPTjogICAgICAgICAgICAgICAgICRHTE9CQUwtVFJBTlNJVElPTi1QUk9QRVJUWSAkR0xPQkFMLVRSQU5TSVRJT04tRFVSQVRJT04gJEdMT0JBTC1UUkFOU0lUSU9OLVRJTUlORy1GVU5DVElPTiAhZGVmYXVsdDtcbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNUSUxFLVNFTEVDVCAoU2V0dGluZ3MpXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQHVzZSBcInNhc3M6bWFwXCI7XG5cbi8vIEdlbmVyYWwgY29uZmlnXG4kdGlsZS1zZWxlY3Qtb3BhY2l0eS1kaXNhYmxlZDogICAgICAgICAgICAgICAxICFkZWZhdWx0OyAvLyBTZXQgY29sb3JzIGluc3RlYWQgb2YgcmVkdWNpbmcgb3BhY2l0eS5cblxuLy8gQm9keSBmb3JlZ3JvdW5kXG5cbi8vIENoZWNrbWFyayBjb25maWdcbiR0aWxlLXNlbGVjdC1jaGVjay1pY29uLWJhY2tncm91bmQtc2l6ZTogICAgIG1hcC5nZXQoJElDT04tUk9VTkQtRlVMTC1TSVpFUywgeHNtYWxsKSAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1jaGVjay1pY29uLXNpemU6ICAgICAgICAgICAgICAgIGljb24tc2l6ZSh4eHNtYWxsKSAhZGVmYXVsdDtcblxuLy8gQ2hlY2ttYXJrIGZvcmVncm91bmRcbiR0aWxlLXNlbGVjdC1jaGVjay1jb2xvcjogICAgICAgICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1jaGVjay1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1jaGVjay1jb2xvciAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1jaGVjay1jb2xvci1kaXNhYmxlZDogICAgICAgICAgICR0aWxlLXNlbGVjdC1jaGVjay1jb2xvciAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1jaGVjay1jb2xvci1kaXNhYmxlZC1zZWxlY3RlZDogICR0aWxlLXNlbGVjdC1jaGVjay1jb2xvciAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1jaGVjay1jb2xvci1lcnJvcjogICAgICAgICAgICAgICR0aWxlLXNlbGVjdC1jaGVjay1jb2xvciAhZGVmYXVsdDtcblxuLy8gQ2hlY2ttYXJrIGJhY2tncm91bmRcbiR0aWxlLXNlbGVjdC1jaGVjay1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICRDQVJELVBBVFRFUk4tU0VMRUNULUlORElDQVRPUi1CQUNLR1JPVU5ELUNPTE9SICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWNoZWNrLWJhY2tncm91bmQtY29sb3ItaG92ZXI6ICAgJENBUkQtUEFUVEVSTi1TRUxFQ1QtSU5ESUNBVE9SLUJBQ0tHUk9VTkQtQ09MT1ItSE9WRVIgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtY2hlY2stYmFja2dyb3VuZC1jb2xvci1lcnJvcjogICAkdGlsZS1zZWxlY3QtY2hlY2stYmFja2dyb3VuZC1jb2xvciAhZGVmYXVsdDtcblxuLy8gQm9keSBjb250ZW50XG5cbi8vIEJvZHkgYmFja2dyb3VuZFxuJHRpbGUtc2VsZWN0LWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgJENBUkQtUEFUVEVSTi1CQUNLR1JPVU5ELUNPTE9SICFkZWZhdWx0O1xuXG4vLyBCb2R5IGJvcmRlclxuJHRpbGUtc2VsZWN0LWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgJENBUkQtUEFUVEVSTi1CT1JERVItUkFESVVTICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgJENBUkQtUEFUVEVSTi1CT1JERVItQ09MT1IgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtYm9yZGVyLWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAkQ0FSRC1QQVRURVJOLUJPUkRFUi1DT0xPUi1IT1ZFUiAhZGVmYXVsdDtcbiR0aWxlLXNlbGVjdC1ib3JkZXItY29sb3Itc2VsZWN0ZWQ6ICAgICAgICAgICRDQVJELVBBVFRFUk4tQk9SREVSLUNPTE9SLVNFTEVDVEVEICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LWJvcmRlci1jb2xvci1kaXNhYmxlZC1zZWxlY3RlZDogJENPTE9SLUlOQUNUSVZFLVRFUlRJQVJZICFkZWZhdWx0O1xuXG4kdGlsZS1zZWxlY3QtaWNvbi1zaXplOiAgICAgICAgICAgICAgICAgICAgICBpY29uLXNpemUoJENBUkQtUEFUVEVSTi1JQ09OLVNJWkUpICFkZWZhdWx0O1xuXG4kdGlsZS1zZWxlY3QtdGl0bGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAkQ0FSRC1QQVRURVJOLVRJVExFLVNJWkUgIWRlZmF1bHQ7XG4kdGlsZS1zZWxlY3QtdGl0bGUtbWFyZ2luLXRvcDogICAgICAgICAgICAgICAkQ0FSRC1QQVRURVJOLU1PRFVMRS1TUEFDSU5HICFkZWZhdWx0O1xuJHRpbGUtc2VsZWN0LXRleHQtbWFyZ2luLXRvcDogICAgICAgICAgICAgICAgJHRpbGUtc2VsZWN0LXRpdGxlLW1hcmdpbi10b3AgIWRlZmF1bHQ7XG5cbiR0aWxlLXNlbGVjdC1idXR0b24tbWFyZ2luLXRvcDogICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0hFQURJTkdTIChTZXR0aW5ncylcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kR0xPQkFMLUhFQURJTkctSDEtRk9OVC1TSVpFOiAgICAgJEZTNCAhZGVmYXVsdDtcbiRHTE9CQUwtSEVBRElORy1IMi1GT05ULVNJWkU6ICAgICAkRlMzICFkZWZhdWx0O1xuJEdMT0JBTC1IRUFESU5HLUgzLUZPTlQtU0laRTogICAgICRGUzIgIWRlZmF1bHQ7XG4kR0xPQkFMLUhFQURJTkctSDQtRk9OVC1TSVpFOiAgICAgJEZTMSAhZGVmYXVsdDtcbiRHTE9CQUwtSEVBRElORy1INS1GT05ULVNJWkU6ICAgICAkRlMxICFkZWZhdWx0O1xuJEdMT0JBTC1IRUFESU5HLUg2LUZPTlQtU0laRTogICAgICRGUzAgIWRlZmF1bHQ7XG5cbi8vIFRha2VuIGZyb20gxaBLT0RBIEZsb3cgU3R5bGVndWlkZSAoRmlnbWEpXG4vLyBieSBkaXZpZGluZyB0aGUgZm9udCBzaXplIGJ5IHRoZSBsaW5lIGhlaWdodFxuJEdMT0JBTC1IRUFESU5HLUJBU0UtTElORS1IRUlHSFQ6IDEuMiAhZGVmYXVsdDtcblxuJEdMT0JBTC1IRUFESU5HLUg2LUxJTkUtSEVJR0hUOiAgIDEuNSAhZGVmYXVsdDtcbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNUSUxFLVNFTEVDVFxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRza29kYS10aWxlLXNlbGVjdC1jaGVjay1wb3NpdGlvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJHNrb2RhLXRpbGUtc2VsZWN0LWJvcmRlci1zZWxlY3RlZC1ob3ZlcjogICAgICAgICAgICAgICAgICAgICAgJENBUkQtUEFUVEVSTi1CT1JERVItQ09MT1ItU0VMRUNURUQtSE9WRVIgIWRlZmF1bHQ7XG4kc2tvZGEtdGlsZS1zZWxlY3QtZGlzYWJsZWQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItSU5BQ1RJVkUgIWRlZmF1bHQ7XG4kc2tvZGEtdGlsZS1zZWxlY3QtY2hlY2staWNvbi1iYWNrZ3JvdW5kLWNvbG9yLXNlbGVjdGVkLWhvdmVyOiAkQ0FSRC1QQVRURVJOLVNFTEVDVC1JTkRJQ0FUT1ItQkFDS0dST1VORC1DT0xPUi1TRUxFQ1RFRC1IT1ZFUiAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gUmVzZXQgZGVmYXVsdC5cbiAqIFsyXSBIYW5kbGUgZGlzYWJsZWQgc3RhdGUgdmlhIGNvbG9yIG9uIGFsbCBlbGVtZW50cywgbm90IG9wYWNpdHkuXG4gKiBbM10gUmVzZXQgY29tcGVuc2F0aW9uIGFzIHRoZSBpbmRpY2F0b3IgaWNvbiBpcyBwbGFjZWQgZGlmZmVyZW50bHkgaW4gdGhpcyBicmFuZC5cbiAqL1xuLmMtdGlsZS1zZWxlY3Qge1xuICAgIHBhZGRpbmctdG9wOiAwOyAvKiBbM10gKi9cbn1cblxuICAgICAuYy10aWxlLXNlbGVjdF9fYm9keSB7XG5cbiAgICAgICAgJiN7JHRpbGUtc2VsZWN0LWNoZWNrLWJhY2tncm91bmR9LFxuICAgICAgICAmI3skdGlsZS1zZWxlY3QtY2hlY2stZm9yZWdyb3VuZH0ge1xuICAgICAgICAgICAgdG9wOiAkc2tvZGEtdGlsZS1zZWxlY3QtY2hlY2stcG9zaXRpb247XG4gICAgICAgICAgICByaWdodDogJHNrb2RhLXRpbGUtc2VsZWN0LWNoZWNrLXBvc2l0aW9uO1xuICAgICAgICAgICAgbGVmdDogYXV0bzsgLyogWzFdICovXG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7IC8qIFsxXSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJiN7JHRpbGUtc2VsZWN0LWNoZWNrLWJhY2tncm91bmR9IHtcbiAgICAgICAgICAgIGJvcmRlcjogMDsgLyogWzFdICovXG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZWxlY3RlZCBAIGhvdmVyXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbiAgICAgICAgLmMtdGlsZS1zZWxlY3Q6bm90KC5pcy1lcnJvcikgLmMtdGlsZS1zZWxlY3RfX2lucHV0W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkOm5vdCg6ZGlzYWJsZWQpICsgJjpob3ZlciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRza29kYS10aWxlLXNlbGVjdC1ib3JkZXItc2VsZWN0ZWQtaG92ZXI7XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNrb2RhLXRpbGUtc2VsZWN0LWNoZWNrLWljb24tYmFja2dyb3VuZC1jb2xvci1zZWxlY3RlZC1ob3ZlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGlzYWJsZWRcbiAgICAgICAgLmMtdGlsZS1zZWxlY3RfX2lucHV0OmRpc2FibGVkICsgJiB7XG5cbiAgICAgICAgICAgICo6bm90KC5jLWJ0biwgLmMtYnRuX190ZXh0KSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRza29kYS10aWxlLXNlbGVjdC1kaXNhYmxlZC1jb2xvcjsgLyogWzJdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLWhpbnQge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuMztcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjUkFESU8tQlVUVE9OXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gVGhlIGhvcml6b250YWwgc3BhY2luZyBiZXR3ZWVuIHJhZGlvIGJ1dHRvbiBhbmQgbGFiZWwgdGV4dC5cbiRyYWRpby1idXR0b24tc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG5cbi8vIFRoZSBzaXplIG9mIHRoZSByb3VuZCByYWRpbyBidXR0b24uXG4kcmFkaW8tYnV0dG9uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgIDI4cHggIWRlZmF1bHQ7XG4kcmFkaW8tYnV0dG9uLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtQk9SREVSLVdJRFRIICFkZWZhdWx0O1xuJHJhZGlvLWJ1dHRvbi1ib3JkZXItc3R5bGU6ICAgICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUJPUkRFUi1TVFlMRSAhZGVmYXVsdDtcbiRyYWRpby1idXR0b24tYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItQ09MT1IgIWRlZmF1bHQ7XG4kcmFkaW8tYnV0dG9uLWJvcmRlci1jb2xvci1mb2N1czogICAgICAgICAgICRHTE9CQUwtSU5QVVQtQk9SREVSLUNPTE9SLUZPQ1VTICFkZWZhdWx0O1xuJHJhZGlvLWJ1dHRvbi1ib3JkZXItY29sb3ItY2hlY2tlZDogICAgICAgICAkcmFkaW8tYnV0dG9uLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRyYWRpby1idXR0b24tYm9yZGVyLWNvbG9yLWhvdmVyOiAgICAgICAgICAgJHJhZGlvLWJ1dHRvbi1ib3JkZXItY29sb3ItY2hlY2tlZCAhZGVmYXVsdDtcbiRyYWRpby1idXR0b24tYm9yZGVyLWNvbG9yLWNoZWNrZWQtaG92ZXI6ICAgbnVsbCAhZGVmYXVsdDtcbiRyYWRpby1idXR0b24tYm9yZGVyLWNvbG9yLWRpc2FibGVkOiAgICAgICAgcmdiYSgkQ09MT1ItSU5BQ1RJVkUsIDAuNSkgIWRlZmF1bHQ7XG4kcmFkaW8tYnV0dG9uLWJvcmRlci1jb2xvci1lcnJvcjogICAgICAgICAgICRDT0xPUi1BTEVSVCAhZGVmYXVsdDtcbiRyYWRpby1idXR0b24tYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgJHJhZGlvLWJ1dHRvbi1ib3JkZXItd2lkdGggJHJhZGlvLWJ1dHRvbi1ib3JkZXItc3R5bGUgJHJhZGlvLWJ1dHRvbi1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG5cbiRyYWRpby1idXR0b24tYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kcmFkaW8tYnV0dG9uLWJhY2tncm91bmQtY29sb3ItY2hlY2tlZDogICAgICRyYWRpby1idXR0b24tYmFja2dyb3VuZC1jb2xvciAhZGVmYXVsdDtcbiRyYWRpby1idXR0b24tYmFja2dyb3VuZC1jb2xvci1lcnJvcjogICAgICAgbnVsbCAhZGVmYXVsdDtcbiRyYWRpby1idXR0b24tYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDogICAgJHJhZGlvLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yICFkZWZhdWx0O1xuJHJhZGlvLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWFsdGVybmF0aXZlOiAkcmFkaW8tYnV0dG9uLWJhY2tncm91bmQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIFRoZSBzaXplIG9mIHRoZSBsaXR0bGUgZG90IGluc2lkZSBvZiB0aGUgcmFkaW8gYnV0dG9uO1xuLy8gSnVzdCBhcHBsaWVzIHdoZW4gY2hlY2tlZC5cbiRyYWRpby1idXR0b24tZG90LXNpemU6ICAgICAgICAgICAgICAgICAgICAgMTZweCAhZGVmYXVsdDtcbiRyYWRpby1idXR0b24tZG90LWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJHJhZGlvLWJ1dHRvbi1kb3QtYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogICAkcmFkaW8tYnV0dG9uLWRvdC1iYWNrZ3JvdW5kLWNvbG9yICFkZWZhdWx0O1xuJHJhZGlvLWJ1dHRvbi1kb3QtYmFja2dyb3VuZC1kaXNhYmxlZDogICAgICByZ2JhKCRyYWRpby1idXR0b24tZG90LWJhY2tncm91bmQtY29sb3IsIDAuNSkgIWRlZmF1bHQ7XG4kcmFkaW8tYnV0dG9uLWRvdC1iYWNrZ3JvdW5kLWVycm9yOiAgICAgICAgICRDT0xPUi1BTEVSVCAhZGVmYXVsdDtcblxuJHJhZGlvLWxhYmVsLXRleHQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAkRlMwICFkZWZhdWx0O1xuXG4vLyBUaGUgbGluZSBoZWlnaHQgb2YgdGhlIGxhYmVsIHRleHQuIFRoaXMgbmVlZHMgdG8gYmUgYSBgcHhgIHZhbHVlLFxuLy8gc2luY2UgaXQncyB1c2VkIGZvciBjYWxjdWxhdGlvbi5cbiRyYWRpby1sYWJlbC1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgJEdMT0JBTC1MSU5FLUhFSUdIVCAhZGVmYXVsdDtcbkBpZiAodW5pdCgkcmFkaW8tbGFiZWwtbGluZS1oZWlnaHQpICE9IFwicHhcIikge1xuICAgIEBlcnJvcihcImAkcmFkaW8tbGFiZWwtbGluZS1oZWlnaHRgIG5lZWRzIHRvIGJlIGEgYHB4YCB2YWx1ZSFcIik7XG59XG5cbiRyYWRpby1sYWJlbC10ZXh0LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRyYWRpby1sYWJlbC10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcbiRyYWRpby1sYWJlbC10ZXh0LWNvbG9yLWNoZWNrZWQ6ICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRyYWRpby1sYWJlbC10ZXh0LWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgcmdiYSgkQ09MT1ItQkFTRS1URVhULCAwLjUpICFkZWZhdWx0O1xuJHJhZGlvLWxhYmVsLXRleHQtY29sb3ItZXJyb3I6ICAgICAgICAgICAgICAkQ09MT1ItQUxFUlQgIWRlZmF1bHQ7XG4kcmFkaW8tbGFiZWwtdGV4dC1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICRyYWRpby1sYWJlbC10ZXh0LWNvbG9yICFkZWZhdWx0O1xuXG4kcmFkaW8tYnV0dG9uLWhhcy1zaGFkb3c6ICAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJHJhZGlvLWJ1dHRvbi1zaGFkb3ctY2hlY2tlZDogICAgICAgICAgICAgICBub25lICFkZWZhdWx0O1xuXG4kcmFkaW8tYnV0dG9uLXRoZW1lczogKFxuICAgIFwiYWx0ZXJuYXRpdmVcIjogKFxuICAgICAgICBcImJvcmRlci1jb2xvci1kaXNhYmxlZFwiOiAgICAgJHJhZGlvLWJ1dHRvbi1ib3JkZXItY29sb3ItZGlzYWJsZWQsXG4gICAgICAgIFwiYmFja2dyb3VuZC1jb2xvci1jaGVja2VkXCI6ICAkcmFkaW8tYnV0dG9uLWJhY2tncm91bmQtY29sb3ItYWx0ZXJuYXRpdmUsXG4gICAgICAgIFwibGFiZWwtdGV4dC1jb2xvci1kaXNhYmxlZFwiOiAkcmFkaW8tbGFiZWwtdGV4dC1jb2xvci1kaXNhYmxlZFxuICAgIClcbikgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIERlZmF1bHRpbmcgdG8gaW5saW5lLWJsb2NrIGdpdmVzIHVzIHRoZSBtb3N0IGZsZXhpYmlsaXR5LlxuICogWzJdIERlZmVuc2l2ZWx5IHJlc2V0IGFueSBtYXJnaW4tYm90dG9tLlxuICogWzNdIFNldCB0aGUgaW5kZW50IG9mIGFuIGFkanVzdGluZyBgLmMtZm9ybS1maWVsZF9fZXh0cmFgIHZpYSBhIENTUyBjdXN0b21cbiAqICAgICBwcm9wZXJ0eS5cbiAqIFs0XSBIaWRlIG9yaWdpbmFsIHJhZGlvIGJ1dHRvbi5cbiAqIFs1XSBNYWtlIGl0IGJsb2NreSBzbyBldmVyeXRoaW5nIGJlaGF2ZXMgYXMgZXhwZWN0ZWQuXG4gKiBbNl0gU2V0dGluZyB0aGUgaGVpZ2h0IG9mIHRoZSBsYWJlbCB0ZXh0IHRvIGEgbWluaW11bSBvZiB0aGUgcmFkaW8gYnV0dG9uXG4gKiAgICAgc2l6ZSBtYWtlcyB0aGUgdGV4dCBjbGlja2FibGUgb24gaXRzIGVudGlyZSBoZWlnaHQsIGkuZS46IEl0IGluY3JlYXNlc1xuICogICAgIHRoZSBjbGljayBhcmVhLlxuICogWzddIEFsaWduIHRoZSBmaXJzdCAob3Igb25seSkgcm93IG9mIGxhYmVsIHRleHQgdmVydGljYWxseSBjZW50ZXJlZCB0byB0aGVcbiAqICAgICByYWRpbyBidXR0b24uXG4gKiAgICAgVXNlIGBtYXhgIHRvIGVuc3VyZSB0aGUgY2FsY3VsYXRpb24gZG9lcyBub3QgcmVzdWx0IGluIG5lZ2F0aXZlIHZhbHVlLlxuICogICAgIGBtYXgoKWAgaXMgdGhlIFNhc3MgZnVuY3Rpb24sIG5vdCB0aGUgbmF0aXZlIENTUyBmdW5jdGlvbi5cbiAqIFs4XSBLZWVwIHRoZSBzcGFjaW5nIGJldHdlZW4gcmFkaW8gYnV0dG9uIGFuZCBsYWJlbCB0ZXh0IGNvbnNpc3RlbnQsXG4gKiAgICAgaW5kZXBlbmRlbnQgZnJvbSB0aGUgcmFkaW8gYnV0dG9uIHNpemUuXG4gKiBbOV0gUmVsYXRpb24gZm9yIHRoZSByYWRpbyBidXR0b24uXG4gKiBbMTBdIEhvcml6b250YWxseSBjZW50ZXIgdGhlIGRvdCBpbnNpZGUgb2YgdGhlIHJhZGlvIGJ1dHRvbi5cbiAqIFsxMV0gU2NhbGluZyBzZWVtcyB0byBiZSB0aGUgbW9zdCBlZmZpY2llbnQgYW5kIG9ubHkg4oCcbmljZeKAnSBtZXRob2QgdGhhdFxuICogICAgICB3b3JrcyBhY3Jvc3MgYWxsIGJyb3dzZXJzLiBPdGhlciBtZXRob2RzIGJyb3VnaHQgeWFua3ksIGp1bXB5XG4gKiAgICAgIGFuaW1hdGlvbiBhcnRpZmFjdHMuXG4gKiBbMTJdIGAuYy1yYWRpb19fbGFiZWwtY29udGFpbmVyYCBjb3VsZCBiZSBhbiBhZGRpdGlvbmFsIGNvbnRhaW5lciBmb3IgdGhlXG4gKiAgICAgIGxhYmVsLiBGb3IgZXhhbXBsZSwgaXQgaXMgdXNlZCBieSB0aGUg4oCcQ29tcGFyZSBhbmQgU2VsZWN04oCdIGNvbXBvbmVudCB0b1xuICogICAgICBjaGFuZ2UgcmFkaW8gYnV0dG9uIHN0eWxlcy5cbiAqL1xuXG4uYy1yYWRpbyB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS10b3VjaC1oaWdobGlnaHQoKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIFsxXSAqL1xuICAgIG1hcmdpbi1ib3R0b206IDA7IC8qIFsyXSAqL1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICsgLmMtZm9ybS1maWVsZF9fZXh0cmEge1xuICAgICAgICAtLWZvcm0tZmllbGQtZXh0cmEtaW5kZW50OiAjeygkcmFkaW8tYnV0dG9uLXNpemUgKyAkcmFkaW8tYnV0dG9uLXNwYWNpbmcpfTsgLyogWzNdICovXG4gICAgfVxufVxuXG4gICAgLmMtcmFkaW9fX2lucHV0IHtcbiAgICAgICAgQGluY2x1ZGUgYTExeS1oaWRkZW4oKTsgLyogWzRdICovXG4gICAgfVxuXG4gICAgLmMtcmFkaW9fX2xhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAgICRyYWRpby1sYWJlbC10ZXh0LXNpemUsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICRyYWRpby1sYWJlbC1saW5lLWhlaWdodFxuICAgICAgICApO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIFs5XSAqL1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgLyogWzVdICovXG4gICAgICAgIG1pbi1oZWlnaHQ6ICRyYWRpby1idXR0b24tc2l6ZTsgLyogWzZdICovXG4gICAgICAgIHBhZGRpbmctdG9wOiBtYXgoY2VpbCgoJHJhZGlvLWJ1dHRvbi1zaXplIC0gJHJhZGlvLWxhYmVsLWxpbmUtaGVpZ2h0KSAqIDAuNSksIDApOyAvKiBbN10gKi9cbiAgICAgICAgcGFkZGluZy1sZWZ0OiAoJHJhZGlvLWJ1dHRvbi1zaXplICsgJHJhZGlvLWJ1dHRvbi1zcGFjaW5nKTsgLyogWzhdICovXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkcmFkaW8tbGFiZWwtdGV4dC1mb250LXdlaWdodDtcbiAgICAgICAgY29sb3I6ICRyYWRpby1sYWJlbC10ZXh0LWNvbG9yO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRyYWRpby1sYWJlbC10ZXh0LWNvbG9yLWhvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtcmFkaW9fX2lucHV0OmNoZWNrZWQgKyAmIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcmFkaW8tbGFiZWwtdGV4dC1jb2xvci1jaGVja2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtcmFkaW9fX2lucHV0OmhvdmVyICsgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaWYoJHJhZGlvLWJ1dHRvbi1ib3JkZXItY29sb3ItaG92ZXIsICRyYWRpby1idXR0b24tYm9yZGVyLWNvbG9yLWhvdmVyLCBudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXJhZGlvX19pbnB1dDpmb2N1cyArICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IGlmKCRyYWRpby1idXR0b24tYm9yZGVyLWNvbG9yLWZvY3VzLCAkcmFkaW8tYnV0dG9uLWJvcmRlci1jb2xvci1mb2N1cywgbnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAuYy1yYWRpb19faW5wdXRbZGlzYWJsZWRdICsgJiB7XG4gICAgICAgICAgICBjb2xvcjogJHJhZGlvLWxhYmVsLXRleHQtY29sb3ItZGlzYWJsZWQ7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICRyYWRpby1idXR0b24tdGhlbWVzKSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcnktZ2V0KFwibGFiZWwtdGV4dC1jb2xvci1kaXNhYmxlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXJhZGlvX19pbnB1dC5pcy1lcnJvciArICYge1xuICAgICAgICAgICAgY29sb3I6ICRyYWRpby1sYWJlbC10ZXh0LWNvbG9yLWVycm9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCk7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtY2xhc3MsIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuICAgICAgICAvLyBUaGUgY2lyY2xlIHJhZGlvLWJ1dHRvbiBib3guXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6ICRyYWRpby1idXR0b24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHJhZGlvLWJ1dHRvbi1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkcmFkaW8tYnV0dG9uLWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyYWRpby1idXR0b24tYmFja2dyb3VuZC1jb2xvcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgdmFyeSgkbG9vcDogJHJhZGlvLWJ1dHRvbi10aGVtZXMpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXJ5LWdldChcImJhY2tncm91bmQtY29sb3JcIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLXJhZGlvX19pbnB1dDpjaGVja2VkICsgJixcbiAgICAgICAgICAgIC5jLXJhZGlvX19pbnB1dDpjaGVja2VkICsgLmMtcmFkaW9fX2xhYmVsLWNvbnRhaW5lciAmIHsgLyogWzEyXSAqL1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHJhZGlvLWJ1dHRvbi1ib3JkZXItY29sb3ItY2hlY2tlZDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmFkaW8tYnV0dG9uLWJhY2tncm91bmQtY29sb3ItY2hlY2tlZDtcblxuICAgICAgICAgICAgICAgIEBpZiAoJHJhZGlvLWJ1dHRvbi1oYXMtc2hhZG93KSB7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6ICRyYWRpby1idXR0b24tc2hhZG93LWNoZWNrZWQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdmFyeSgkbG9vcDogJHJhZGlvLWJ1dHRvbi10aGVtZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyeS1nZXQoXCJiYWNrZ3JvdW5kLWNvbG9yLWNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYy1yYWRpb19faW5wdXQ6Y2hlY2tlZDpob3Zlcjpub3QoLmlzLWVycm9yLCBbZGlzYWJsZWRdKSArICYge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaWYoJHJhZGlvLWJ1dHRvbi1ib3JkZXItY29sb3ItY2hlY2tlZC1ob3ZlciwgJHJhZGlvLWJ1dHRvbi1ib3JkZXItY29sb3ItY2hlY2tlZC1ob3ZlciwgbnVsbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIERpc2FibGVkIHN0eWxlcy5cbiAgICAgICAgICAgIC5jLXJhZGlvX19pbnB1dFtkaXNhYmxlZF0gKyAmLFxuICAgICAgICAgICAgLmMtcmFkaW9fX2lucHV0W2Rpc2FibGVkXSArIC5jLXJhZGlvX19sYWJlbC1jb250YWluZXIgJiB7IC8qIFsxMl0gKi9cbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRyYWRpby1idXR0b24tYm9yZGVyLWNvbG9yLWRpc2FibGVkO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyYWRpby1idXR0b24tYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDtcblxuICAgICAgICAgICAgICAgIEBpZiAoJHJhZGlvLWJ1dHRvbi1oYXMtc2hhZG93KSB7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdmFyeSgkbG9vcDogJHJhZGlvLWJ1dHRvbi10aGVtZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXJ5LWdldChcImJvcmRlci1jb2xvci1kaXNhYmxlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyeS1nZXQoXCJiYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRXJyb3Igc3R5bGVzLlxuICAgICAgICAgICAgLmMtcmFkaW9fX2lucHV0LmlzLWVycm9yICsgJixcbiAgICAgICAgICAgIC5jLXJhZGlvX19pbnB1dC5pcy1lcnJvciArIC5jLXJhZGlvX19sYWJlbC1jb250YWluZXIgJiB7IC8qIFsxMl0gKi9cbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRyYWRpby1idXR0b24tYm9yZGVyLWNvbG9yLWVycm9yO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyYWRpby1idXR0b24tYmFja2dyb3VuZC1jb2xvci1lcnJvcjtcblxuICAgICAgICAgICAgICAgIEBpZiAoJHJhZGlvLWJ1dHRvbi1oYXMtc2hhZG93KSB7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGUgZG90IGluc2lkZSB0aGUgcmFkaW8tYnV0dG9uLlxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0b3A6IGNlaWwoKCRyYWRpby1idXR0b24tc2l6ZSAtICRyYWRpby1idXR0b24tZG90LXNpemUpICogMC41KTsgLyogWzddICovXG4gICAgICAgICAgICBsZWZ0OiBjZWlsKCgkcmFkaW8tYnV0dG9uLXNpemUgLSAkcmFkaW8tYnV0dG9uLWRvdC1zaXplKSAqIDAuNSk7IC8qIFsxMF0gKi9cbiAgICAgICAgICAgIHdpZHRoOiAkcmFkaW8tYnV0dG9uLWRvdC1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcmFkaW8tYnV0dG9uLWRvdC1zaXplO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsgLyogWzExXSAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJhZGlvLWJ1dHRvbi1kb3QtYmFja2dyb3VuZC1jb2xvcjtcblxuICAgICAgICAgICAgOmhvdmVyICsgJiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJhZGlvLWJ1dHRvbi1kb3QtYmFja2dyb3VuZC1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmMtcmFkaW9fX2lucHV0OmNoZWNrZWQgKyAmLFxuICAgICAgICAgICAgLmMtcmFkaW9fX2lucHV0OmNoZWNrZWQgKyAuYy1yYWRpb19fbGFiZWwtY29udGFpbmVyICYgeyAvKiBbMTJdICovXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgLyogWzExXSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBEaXNhYmxlZCBzdHlsZXMuXG4gICAgICAgICAgICAuYy1yYWRpb19faW5wdXRbZGlzYWJsZWRdICsgJixcbiAgICAgICAgICAgIC5jLXJhZGlvX19pbnB1dFtkaXNhYmxlZF0gKyAuYy1yYWRpb19fbGFiZWwtY29udGFpbmVyICYgeyAvKiBbMTJdICovXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJhZGlvLWJ1dHRvbi1kb3QtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRXJyb3Igc3R5bGVzLlxuICAgICAgICAgICAgLmMtcmFkaW9fX2lucHV0LmlzLWVycm9yICsgJixcbiAgICAgICAgICAgIC5jLXJhZGlvX19pbnB1dC5pcy1lcnJvciArIC5jLXJhZGlvX19sYWJlbC1jb250YWluZXIgJiB7IC8qIFsxMl0gKi9cbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmFkaW8tYnV0dG9uLWRvdC1iYWNrZ3JvdW5kLWVycm9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuXG4gICAgfVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI1JBRElPLUJVVFRPTiAoU2V0dGluZ3MpXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHJhZGlvLWJ1dHRvbi1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJHJhZGlvLWJ1dHRvbi1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgMjBweCAhZGVmYXVsdDtcbiRyYWRpby1idXR0b24tZG90LXNpemU6ICAgICAgICAgICAgICAgICAgIDEwcHggIWRlZmF1bHQ7XG5cbiRyYWRpby1sYWJlbC10ZXh0LXNpemU6ICAgICAgICAgICAgICAgICAgICRGUy0xICFkZWZhdWx0O1xuJHJhZGlvLWxhYmVsLXRleHQtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1MQUJFTC1GT05ULVdFSUdIVCAhZGVmYXVsdDtcbiRyYWRpby1sYWJlbC10ZXh0LWNvbG9yLWRpc2FibGVkOiAgICAgICAgICRHTE9CQUwtSU5QVVQtTEFCRUwtQ09MT1ItRElTQUJMRUQgIWRlZmF1bHQ7XG5cbiRyYWRpby1idXR0b24tZG90LWJhY2tncm91bmQtY29sb3I6ICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiRyYWRpby1idXR0b24tZG90LWJhY2tncm91bmQtY29sb3ItaG92ZXI6ICRDT0xPUi1CUkFORC1IT1ZFUiAhZGVmYXVsdDtcbiRyYWRpby1idXR0b24tZG90LWJhY2tncm91bmQtZGlzYWJsZWQ6ICAgICRDT0xPUi1JTkFDVElWRSAhZGVmYXVsdDtcblxuJHJhZGlvLWJ1dHRvbi1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgMnB4ICFkZWZhdWx0O1xuJHJhZGlvLWJ1dHRvbi1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgJENPTE9SLU9OLVNVUkZBQ0UtNzAwICFkZWZhdWx0O1xuJHJhZGlvLWJ1dHRvbi1ib3JkZXItY29sb3ItZm9jdXM6ICAgICAgICAgJHJhZGlvLWJ1dHRvbi1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kcmFkaW8tYnV0dG9uLWJvcmRlci1jb2xvci1ob3ZlcjogICAgICAgICAkQ09MT1ItT04tU1VSRkFDRS05MDAgIWRlZmF1bHQ7XG4kcmFkaW8tYnV0dG9uLWJvcmRlci1jb2xvci1jaGVja2VkOiAgICAgICAkcmFkaW8tYnV0dG9uLWRvdC1iYWNrZ3JvdW5kLWNvbG9yICFkZWZhdWx0O1xuJHJhZGlvLWJ1dHRvbi1ib3JkZXItY29sb3ItY2hlY2tlZC1ob3ZlcjogJHJhZGlvLWJ1dHRvbi1kb3QtYmFja2dyb3VuZC1jb2xvci1ob3ZlciAhZGVmYXVsdDtcbiRyYWRpby1idXR0b24tYm9yZGVyLWNvbG9yLWRpc2FibGVkOiAgICAgICRDT0xPUi1JTkFDVElWRSAhZGVmYXVsdDtcbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNSQURJTy1CVVRUT05cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2tvZGEtcmFkaW9idXR0b24tZm9jdXMtb2Zmc2V0OiAycHggIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIEZpeCB2ZXJ0aWNhbCBhbGlnbm1lbnQgd2l0aCBsYWJlbC5cbiAqIFsyXSBUcmFuc2l0aW9uIGZyb20gdHJhbnNwYXJlbnQgdG8gdGFyZ2V0IGNvbG9yLFxuICogICAgIG90aGVyd2lzZSB0aGUgdHJhbnNpdGlvbiBpcyBub3Qgc21vb3RoLlxuICovXG4uYy1yYWRpb19fbGFiZWwge1xuXG4gICAgLmMtcmFkaW9fX2lucHV0ICsgJjo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgZm9jdXMtc3R5bGVzKCRvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudCk7IC8qIFsyXSAqL1xuICAgIH1cblxuICAgIC5jLXJhZGlvX19pbnB1dDpmb2N1cy12aXNpYmxlICsgJjo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgZm9jdXMtc3R5bGVzKCRvdXRsaW5lLW9mZnNldDogJHNrb2RhLXJhZGlvYnV0dG9uLWZvY3VzLW9mZnNldCk7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgdG9wOiAycHg7IC8qIFsxXSAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjYWxlLXVubGltaXRlZC9kZWNsYXJhdGlvbi1zdHJpY3QtdmFsdWUgKi9cbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIHRvcDogN3B4OyAvKiBbMV0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY2FsZS11bmxpbWl0ZWQvZGVjbGFyYXRpb24tc3RyaWN0LXZhbHVlICovXG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTU9EQUxcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kbW9kYWwtbWF4LWhlaWdodDogICAgICAgICAgICAgICAgICAgIDQ1dmggIWRlZmF1bHQ7XG4kbW9kYWwtbWF4LWhlaWdodC1zdHJldGNoOiAgICAgICAgICAgIDkwdmggIWRlZmF1bHQ7XG5cbiRtb2RhbC16LWluZGV4OiAgICAgICAgICAgICAgICAgICAgICAgeihcIm1vZGFsXCIpICFkZWZhdWx0O1xuXG4vLyBUaGUgYm9yZGVyLXJhZGl1cyBvZiB0aGUgbW9kYWwuXG4kbW9kYWwtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kbW9kYWwtY2xvc2UtYnV0dG9uLWJvcmRlci1yYWRpdXM6ICAgIG51bGwgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkcm9wLXNoYWRvdyBvZiB0aGUgbW9kYWwuXG4kbW9kYWwtc2hhZG93OiAgICAgICAgICAgICAgICAgICAgICAgICREUk9QLVNIQURPVy1MQVJHRSAhZGVmYXVsdDtcblxuJG1vZGFsLXRpdGxlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAkRlMzICFkZWZhdWx0O1xuJG1vZGFsLXRpdGxlLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAkR0xPQkFMLUhFQURJTkctQkFTRS1MSU5FLUhFSUdIVCAhZGVmYXVsdDtcblxuLy8gVGV4dC1hbGlnbm1lbnRcbiRtb2RhbC1hbGlnbm1lbnQ6ICAgICAgICAgICAgICAgICAgICAgbGVmdCAhZGVmYXVsdDtcbiRtb2RhbC10aXRsZS1hbGlnbm1lbnQ6ICAgICAgICAgICAgICAgJG1vZGFsLWFsaWdubWVudCAhZGVmYXVsdDtcbiRtb2RhbC1jb250ZW50LWFsaWdubWVudDogICAgICAgICAgICAgJG1vZGFsLWFsaWdubWVudCAhZGVmYXVsdDtcbiRtb2RhbC1mb290ZXItYWxpZ25tZW50OiAgICAgICAgICAgICAgJG1vZGFsLWFsaWdubWVudCAhZGVmYXVsdDtcblxuLy8gQ29sb3IgZm9yIG92ZXJsYXkgYmFja2Ryb3AgKHRoZSBhcmVhIHN1cnJvdW5kaW5nIHRoZSBtb2RhbClcbiRtb2RhbC1vdmVybGF5LWNvbG9yOiAgICAgICAgICAgICAgICAgJEdMT0JBTC1CQUNLRFJPUC1CQUNLR1JPVU5EICFkZWZhdWx0O1xuJG1vZGFsLW92ZXJsYXktZmlsdGVyOiAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4vLyBNYWluIGJhY2tncm91bmQgY29sb3Igb2YgdGhlIG1vZGFsIGl0c2VsZi5cbiRtb2RhbC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuXG4vLyBDb2xvciBvZiB0aGUgbW9kYWwgYmFja2dyb3VuZC4gT3ZlcndyaXRlcyBtYWluIGJhY2tncm91bmQgY29sb3JcbiRtb2RhbC1oZWFkZXItYmFja2dyb3VuZC1jb2xvcjogICAgICAgbnVsbCAhZGVmYXVsdDtcblxuLy8gQ29sb3IgZm9yIG1vZGFsIGZvcmVncm91bmQgKGUuZy4gdGhlIHRleHQpXG4kbW9kYWwtY29udGVudC1jb2xvcjogICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG5cbi8vIGlmIHRoZSBjbG9zZSBidXR0b24gaXMgaW5saW5lLCBhIHBhZGRpbmcgaXMgYWRkZWQgYmV0d2VlbiB0aGUgYnV0dG9uIGFuZCB0aGUgaGVhZGluZ1xuJG1vZGFsLWNsb3NlLWJ1dHRvbi1zcGFjaW5nOiAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcblxuLy8gRGVmaW5lIHdoYXQgaWNvbiBzaG91bGQgcmVwcmVzZW50IHRoZSBjbG9zZSBidXR0b24gb2YgdGhlIG1vZGFsLlxuJG1vZGFsLWNsb3NlLWJ1dHRvbi1pY29uLWNvbXBsZXhpdHk6ICBudWxsICFkZWZhdWx0O1xuJG1vZGFsLWNsb3NlLWJ1dHRvbi1pY29uOiAgICAgICAgICAgICBzZW1hbnRpYy1jbG9zZSAhZGVmYXVsdDtcblxuJG1vZGFsLWNsb3NlLWJ1dHRvbi1pY29uLXZhcmlhbnQ6ICAgICBudWxsICFkZWZhdWx0O1xuXG4vLyBJY29uIHNpemUgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vIFRoaXMgaGFzIHRvIG1hdGNoIGFueSBrZXkgZnJvbSB0aGUgYCRJQ09OLVNJWkVTYCBtYXAuXG4kbW9kYWwtY2xvc2UtYnV0dG9uLWljb24tc2l6ZTogICAgICAgIGljb24tc2l6ZShzbWFsbCkgIWRlZmF1bHQ7XG5cbiRtb2RhbC1zdGF0dXMtaWNvbi1lbmFibGU6ICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRtb2RhbC1zdGF0dXMtaWNvbi1jb21wbGV4aXR5OiAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRtb2RhbC1zdGF0dXMtaWNvbjogICAgICAgICAgICAgICAgICAgc2VtYW50aWMtaW5mbyAhZGVmYXVsdDtcbiRtb2RhbC1zdGF0dXMtaWNvbi1zcGFjaW5nOiAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kbW9kYWwtc3RhdHVzLWljb24tc2l6ZTogICAgICAgICAgICAgIG1lZGl1bSAhZGVmYXVsdDtcblxuLy8gVGhlIGhlaWdodCBvZiB0aGUgZmFkaW5nIGdyYWRpZW50IGZvciBzY3JvbGxpbmcuXG4vLyBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAxLjUgdGltZXMgdGhlIGZvbnQtc2l6ZSB0byBlbnN1cmUgYSBzbW9vdGggZ3JhZGllbnQuXG4kbW9kYWwtY29udGVudC1mYWRlLWhlaWdodDogICAgICAgICAgIDEuNWVtICFkZWZhdWx0O1xuXG4kbW9kYWwtYWN0aW9ucy1zcGFjaW5nLWhvcml6b250YWw6ICAgICRCVVRUT04tSVRFTS1TUEFDSU5HLVZFUlRJQ0FMICFkZWZhdWx0O1xuJG1vZGFsLWFjdGlvbnMtc3BhY2luZy12ZXJ0aWNhbDogICAgICAkQlVUVE9OLUlURU0tU1BBQ0lORy1IT1JJWk9OVEFMICFkZWZhdWx0O1xuJG1vZGFsLWFjdGlvbnMtYWxpZ25tZW50OiAgICAgICAgICAgICBjZW50ZXIgIWRlZmF1bHQ7XG4kbW9kYWwtYWN0aW9ucy1maWxsLXNwYWNlLWJyZWFrcG9pbnQ6IG5vbmUgIWRlZmF1bHQ7XG4kbW9kYWwtYWN0aW9ucy1taW4td2lkdGg6ICAgICAgICAgICAgIDE4MHB4ICFkZWZhdWx0O1xuXG4vLyBBIHJlc3BvbnNpdmUgdmFsdWUgbWFwIGNhbiBiZSBwYXNzZWQgZm9yIGFsbCBwYWRkaW5ncy5cbi8vIFNlZTogcGFja2FnZXMvYnJvbnNvbi1jb3JlLzAyLXRvb2xzL190b29scy5yZXNwb25zaXZlLXByb3BlcnR5LnNjc3Ncbi8vIERlZmF1bHQgc3BhY2luZ3NcbiRtb2RhbC1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kbW9kYWwtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuXG4vLyBIZWFkZXIgc3BhY2luZ3MgbW9kYWxcbiRtb2RhbC1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsOiAgICAgJG1vZGFsLXBhZGRpbmctaG9yaXpvbnRhbCAhZGVmYXVsdDtcbiRtb2RhbC1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbDogICAgICAgJG1vZGFsLXBhZGRpbmctdmVydGljYWwgIWRlZmF1bHQ7XG4kbW9kYWwtaGVhZGVyLXBhZGRpbmctdG9wOiAgICAgICAgICAgICRtb2RhbC1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbCAhZGVmYXVsdDtcbiRtb2RhbC1oZWFkZXItcGFkZGluZy1ib3R0b206ICAgICAgICAgJG1vZGFsLWhlYWRlci1wYWRkaW5nLXZlcnRpY2FsICFkZWZhdWx0O1xuXG4vLyBDb250ZW50IHNwYWNpbmdzLiBObyBib3R0b20gcGFkZGluZyBiZWNhdXNlIG9mIGNvbnRlbnQtZmFkZS5cbi8vIFNlZSAuYy1tb2RhbF9fZm9vdGVyOjpiZWZvcmVcbiRtb2RhbC1jb250ZW50LXBhZGRpbmctaG9yaXpvbnRhbDogICAgJG1vZGFsLXBhZGRpbmctaG9yaXpvbnRhbCAhZGVmYXVsdDtcbiRtb2RhbC1jb250ZW50LXBhZGRpbmctdG9wOiAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuLy8gRm9vdGVyIHNwYWNpbmdzXG4kbW9kYWwtZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICRtb2RhbC1wYWRkaW5nLWhvcml6b250YWwgIWRlZmF1bHQ7XG4kbW9kYWwtZm9vdGVyLXBhZGRpbmctdmVydGljYWw6ICAgICAgICRtb2RhbC1wYWRkaW5nLXZlcnRpY2FsICFkZWZhdWx0O1xuJG1vZGFsLWZvb3Rlci1wYWRkaW5nLXRvcDogICAgICAgICAgICAkbW9kYWwtZm9vdGVyLXBhZGRpbmctdmVydGljYWwgIWRlZmF1bHQ7XG4kbW9kYWwtZm9vdGVyLXBhZGRpbmctYm90dG9tOiAgICAgICAgICRtb2RhbC1mb290ZXItcGFkZGluZy12ZXJ0aWNhbCAhZGVmYXVsdDtcblxuLy8gU3BhY2luZ3MgZm9yIGAuYy1tb2RhbC0tc3RyZXRjaGAgdmFyaWFudFxuJG1vZGFsLXN0cmV0Y2gtc3BhY2luZy10b3A6ICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1MQVJHRSAhZGVmYXVsdDtcbiRtb2RhbC1zdHJldGNoLXNwYWNpbmctYm90dG9tOiAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtTEFSR0UgIWRlZmF1bHQ7XG4kbW9kYWwtc3RyZXRjaC1hbGlnbm1lbnQtbGVmdDogICAgICAgIGF1dG8gIWRlZmF1bHQ7XG4kbW9kYWwtc3RyZXRjaC1wb3NpdGlvbmluZzogICAgICAgICAgIGF1dG8gIWRlZmF1bHQ7XG5cbi8vIE1hcCBjb250YWluaW5nIGRpZmZlcmVudCBzZXR0aW5ncyBmb3Igc3RhdHVzLWljb25zLlxuLy8gTWFwLU5hbWU6IFN0YXR1cy1OYW1lXG4vLyBib3JkZXIge0JPT0xFQU59OiBpbmNsdWRlIGJvcmRlcmVkIGljb24tdmFyaWFudFxuJG1vZGFsLXN0YXR1cy1pY29uczogKFxuICAgIGluZm86IChcbiAgICAgICAgaWNvbjogICBzZW1hbnRpYy1pbmZvLFxuICAgICAgICBjb2xvcjogIG1hcC1kZWVwLWdldCgkU1RBVFVTLVRIRU1FUywgXCJpbmZvXCIsIFwiaWNvbi1jb2xvclwiKSxcbiAgICAgICAgYm9yZGVyOiBmYWxzZSxcbiAgICApLFxuICAgIHN1Y2Nlc3M6IChcbiAgICAgICAgaWNvbjogICBzZW1hbnRpYy1zdWNjZXNzLFxuICAgICAgICBjb2xvcjogIG1hcC1kZWVwLWdldCgkU1RBVFVTLVRIRU1FUywgXCJzdWNjZXNzXCIsIFwiaWNvbi1jb2xvclwiKSxcbiAgICAgICAgYm9yZGVyOiBmYWxzZSxcbiAgICApLFxuICAgIHdhcm5pbmc6IChcbiAgICAgICAgaWNvbjogICBzZW1hbnRpYy13YXJuaW5nLFxuICAgICAgICBjb2xvcjogIG1hcC1kZWVwLWdldCgkU1RBVFVTLVRIRU1FUywgXCJ3YXJuaW5nXCIsIFwiaWNvbi1jb2xvclwiKSxcbiAgICAgICAgYm9yZGVyOiBmYWxzZSxcbiAgICApLFxuICAgIGVycm9yOiAoXG4gICAgICAgIGljb246ICAgc2VtYW50aWMtZXJyb3IsXG4gICAgICAgIGNvbG9yOiAgbWFwLWRlZXAtZ2V0KCRTVEFUVVMtVEhFTUVTLCBcImVycm9yXCIsIFwiaWNvbi1jb2xvclwiKSxcbiAgICAgICAgYm9yZGVyOiBmYWxzZSxcbiAgICApLFxuKSAhZGVmYXVsdDtcblxuLy8gTWVyZ2UgZGVmYXVsdCBhbmQgb3ZlcndyaXRlIHNldHRpbmdzIHRvIGF2b2lkIGR1cGxpY2F0aW9uc1xuLy8gYW5kIG92ZXJ3cml0ZSBvbmx5IG5lY2Vzc2FyeSBzZXR0aW5ncy5cbiRtb2RhbC1zdGF0dXMtaWNvbnMtb3ZlcndyaXRlczogICAgICAgKCkgIWRlZmF1bHQ7XG4kbW9kYWwtc3RhdHVzLWljb25zLW1lcmdlZDogICAgICAgICAgIG1hcC1kZWVwLW1lcmdlKCRtb2RhbC1zdGF0dXMtaWNvbnMsICRtb2RhbC1zdGF0dXMtaWNvbnMtb3ZlcndyaXRlcywgMikgIWRlZmF1bHQ7XG5cbiRtb2RhbC13aWR0aHM6IChcbiAgICBtZWRpdW06IChcbiAgICAgICAgbWluOiA1MDBweCxcbiAgICAgICAgbWF4OiA4MDBweCxcbiAgICApLFxuICAgIGxhcmdlOiAoXG4gICAgICAgIG1pbjogMTAwMHB4LFxuICAgICAgICBtYXg6IDE2MDBweCxcbiAgICApLFxuICAgIHZpZGVvOiAoXG4gICAgICAgIG1pbjogNzUwcHgsXG4gICAgICAgIG1heDogMTAwMHB4LFxuICAgICksXG4pICFkZWZhdWx0O1xuXG4vLyBTcGFjaW5nIGJldHdlZW4gdmlld3BvcnQgZWRnZSBhbmQgbW9kYWwuXG4vLyBVc2UgdGhlIHNhbWUgcGFnZS13cmFwLXBhZGRpbmcgZm9yIHNtYWxsIHZpZXdwb3J0cyBieSBkZWZhdWx0LlxuJG1vZGFsLWVkZ2Utc2FmZXNwYWNlOiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRwYWdlLXdyYXAtcGFkZGluZy1ob3Jpem9udGFsLCBzKSAhZGVmYXVsdDtcblxuLy8gV2hlbiBkZWZpbmluZyBhIHZhcmlhbnQgZm9yIHRoZSBjbG9zZSBidXR0b24sIGVpdGhlciB1c2UgYG51bGxgIG9yIGRlZmluZVxuLy8gYSBtYXAgd2l0aCB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcbi8vIGBgYFxuLy8gJG1vZGFsLWNsb3NlLWJ1dHRvbi1pY29uLXZhcmlhbnQ6IChcbi8vICAgICBcInZhcmlhbnRcIjpcbi8vICAgICBcInNpemVcIjpcbi8vICAgICBcInRleHQtY29sb3JcIjpcbi8vICAgICBcImJhY2tncm91bmQtY29sb3JcIjpcbi8vICAgICBcImJvcmRlci1jb2xvclwiOlxuLy8gKVxuLy8gYGBgXG5cbi8qKlxuICogWzFdICBNb2RhbCBoYXMgdG8gc2l0IG9uIHRvcCBvZiBldmVyeXRoaW5nIGVsc2UuXG4gKiBbMl0gIEZpeCB3b2JibGluZyBpbmxpbmUgZWxlbWVudHMgd2hlbiBob3ZlcmluZyBidXR0b25zIGluIHRoZSBtb2RhbFxuICogICAgICAoZS5nLiBtYWNPUyBDaHJvbWUgNzggb24gbm9uLXJldGluYSBkaXNwbGF5cykuXG4gKiBbM10gIENlbnRlciB0aGUgbW9kYWwgY29udGVudCBpbiB0aGUgbWlkZGxlIG9mIHRoZSB2aWV3cG9ydC5cbiAqIFs0XSAgSWYgdGhlIG1vZGFsIGNvbnRlbnQgZXhjZWVkcyB0aGUgdmlld3BvcnQgaGVpZ2h0LCB0aGlzIHN0aWxsIG1ha2VzIHRoZVxuICogICAgICBjb250ZW50IGFjY2Vzc2libGUgKGkuZS4gc2Nyb2xsYWJsZSkuXG4gKiBbNV0gIFRoZSBtb2RhbCB0aXRsZSBzaG91bGQgYWx3YXlzIGJlIHNlbWFudGljYWxseSBhIGA8aDE+YCwgYnV0IG9mIGNvdXJzZVxuICogICAgICBoYXZlIGEgc21hbGxlciBmb250LXNpemUuXG4gKiBbNl0gIEFkZCBhIG5lYXItbG9nYXJpdGhtaWMgZ3JhZGllbnQgYXQgYm90dG9tIG9mIGNvbnRlbnQuXG4gKiBbN10gIEFsbG93IGNsaWNrIHRocm91Z2guXG4gKiBbOF0gIEF2b2lkIHNob3dpbmcgZ3JhZGllbnQgd2hlbiBub3QgbmVjZXNzYXJ5IGFuZCBvdmVycmlkZSB0aGUgZGVmYXVsdFxuICogICAgICBtYXJnaW4tYm90dG9tIG9mIHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIG1vZGFsIGNvbnRlbnQgKGUuZy4gYDxwPmBcbiAqICAgICAgaGFzIG1hcmdpbi1ib3R0b20gYnkgZGVmYXVsdCkuXG4gKiBbOV0gIFJlc2V0IGRlZmF1bHQgaGVhZGluZyBlbGVtZW50IHNwYWNpbmcuXG4gKiBbMTBdIElmICRtb2RhbC1jb250ZW50LXBhZGRpbmctaG9yaXpvbnRhbCBpcyBhIG1hcCwgd2UgbmVlZCB0byBkaXZpZGUgdGhlXG4gKiAgICAgIHZhbHVlcyBpbiBoYWxmIGZvciBlYWNoIGJyZWFrcG9pbnQuXG4gKiBbMTFdIExvb3AgdGhyb3VnaCBwYWRkaW5ncywgdGFrZSBoYWxmIG9mIGVhY2ggdmFsdWUgYW5kIHB1c2ggdG8gbmV3IG1hcFxuICogICAgICAkY29udGVudC1wYWRkaW5nLWhvcml6b250YWwtaGFsZi5cbiAqIFsxMl0gVGhlIGdyYWRpZW50IHNob3VsZCBub3Qgb3ZlcmxheSB0aGUgc2Nyb2xsYmFyLlxuICogWzEzXSBJbmRpY2F0ZSBpbnRlcmFjdGlvbiBvbiBub24taW50ZXJhY3RpdmUgZWxlbWVudHMuXG4gKiBbMTRdIFByZXZlbnQgZWxlbWVudHMgaW5zaWRlIHRoZSBtb2RhbC10cmlnZ2VyIGNhdGNoaW5nIGFueSBldmVudHNcbiAqICAgICAgZHVlIHRvIGV2ZW50IGRlbGVnYXRpb24uXG4gKiBbMTVdIE92ZXJ3cml0ZSBzZXR0aW5ncyB0byBlbmFibGUgYC5jLW1vZGFsLS1zdHJldGNoYCBtb2RhbC5cbiAqIFsxNl0gUG9zaXRpb24gdGhlIGAuYy1tb2RhbC0tc3RyZXRjaGAgbW9kYWwgaW4gdGhlIGNlbnRlciB3aXRob3V0IHRyYW5zaXRpb24uXG4gKiBbMTddIEFkZCBzb21lIGJvdHRvbSBzcGFjaW5nLlxuICogWzE4XSBQcmV2ZW50IGludGVyYWN0aW9uIHdpdGggbW9kYWwgY29udGVudCB3aGVuIGNsb3NlZC5cbiAqIFsxOV0gVGFrZSBhdmFpbGFibGUgc3BhY2UgaW4gb3JkZXIgZm9yIGFsaWdubWVudCBvbiB0aGUgcGFyZW50IHRvIHRha2UgZWZmZWN0LlxuICogWzIwXSBUaGlzIGFsbG93cyBzY3JvbGxpbmcgKGUuZy4gd2hlbiBtb2RhbCBoZWlnaHQgZXhjZWVkcyB2aWV3cG9ydCBoZWlnaHQpXG4gKiAgICAgIHdoaWxlIHBvaW50ZXIgaXMgb24gdGhlIG92ZXJsYXkuXG4gKiBbMjFdIFJlZHVjZSB0aGUgbGluZS1oZWlnaHQgdG8gYXZvaWQgbGFyZ2Ugc3BhY2luZy5cbiAqIFsyMl0gUHJldmVudCBvdmVyc2Nyb2xsIGluIHRoZSBiYWNrZ3JvdW5kIG91dHNpZGUgb2YgdGhlIG1vZGFsLlxuICogWzIzXSBBZGQgc2Vjb25kIHBhcmFtIHRvIGBtaW4oKWAgZnVuY3Rpb24gdG8gbWFpbnRhaW4gc2FmZXNwYWNlXG4gKiAgICAgIGZvciBgc3RyZXRjaGAgdmFyaWFudC5cbiAqICAgICAgYG1pbigpYCBmdW5jdGlvbiBub3QgbmVjZXNzYXJ5IGZvciBub24tc3RyZXRjaCB2YXJpYW50cy5cbiAqIFsyNF0gSW5saW5lIHdpdGggc3RhdHVzLWljb24gYnkgZGVmYXVsdC5cbiAqICAgICAgV3JhcCB0aXRsZSB0byBuZXh0IGxpbmUgdG8gZW5zdXJlIHJlYWRhYmlsaXR5IHdoZW4gbm90IGVub3VnaCBzcGFjZSBmb3IgdGl0bGUuXG4gKiBbMjVdIEltcHJvdmUgcmVhZGFiaWxpdHkgd2l0aCBhZGp1c3RlZCBsaW5lLWhlaWdodCBmb3IgdGl0bGUsXG4gKiAgICAgIG1ha2UgaXQgaW5kZXBlbmRlbnQgb2YgaGVhZGluZyBsZXZlbCBhbmQgaW1wcm92ZSBzdGF0dXMtaWNvbiBhbGlnbm1lbnQuXG4gKi9cblxuLy8gRG9uJ3QgZ2VuZXJhdGUgc2Nyb2xsLXNoYWRvdy4gVGhpcyBwcmV2ZW50cyBibGVlZGluZyBzaGFkb3cgaW50byBjb250ZW50LFxuLy8gZS5nLiBpbiByZXNwb25zaXZlIG1vZHVsZXMgbGlrZSBpbWFnZXMgb3IgdmlkZW9zLlxuQG1peGluIG1vZGFsLW5vLXNjcm9sbC1zaGFkb3coKSB7XG4gICAgLmMtbW9kYWxfX2Zvb3RlciB7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgIH1cblxuICAgIH1cbn1cblxuLmMtbW9kYWwge1xuICAgIC0tbW9kYWwtd2lkdGgtbWluOiAje21hcC1kZWVwLWdldCgkbW9kYWwtd2lkdGhzLCBtZWRpdW0sIG1pbil9O1xuICAgIC0tbW9kYWwtd2lkdGgtbWF4OiAje21hcC1kZWVwLWdldCgkbW9kYWwtd2lkdGhzLCBtZWRpdW0sIG1heCl9O1xuXG4gICAgJi5jLW1vZGFsLS1sYXJnZSB7XG4gICAgICAgIC0tbW9kYWwtd2lkdGgtbWluOiAje21hcC1kZWVwLWdldCgkbW9kYWwtd2lkdGhzLCBsYXJnZSwgbWluKX07XG4gICAgICAgIC0tbW9kYWwtd2lkdGgtbWF4OiAje21hcC1kZWVwLWdldCgkbW9kYWwtd2lkdGhzLCBsYXJnZSwgbWF4KX07XG4gICAgfVxuXG4gICAgJi5jLW1vZGFsLS12aWRlbyB7XG4gICAgICAgIC0tbW9kYWwtd2lkdGgtbWluOiAje21hcC1kZWVwLWdldCgkbW9kYWwtd2lkdGhzLCB2aWRlbywgbWluKX07XG4gICAgICAgIC0tbW9kYWwtd2lkdGgtbWF4OiAje21hcC1kZWVwLWdldCgkbW9kYWwtd2lkdGhzLCB2aWRlbywgbWF4KX07XG4gICAgfVxuXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG9yZGVyL29yZGVyICovXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbigpO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAkbW9kYWwtei1pbmRleDsgLyogWzFdICovXG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IC8qIFsyXSAqL1xuXG4gICAgJlthcmlhLWhpZGRlbj1cInRydWVcIl0ge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogWzE4XSAqL1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG59XG5cbiAgICAuYy1tb2RhbC0tY2VudGVyIHtcblxuICAgICAgICAuYy1tb2RhbF9fdGl0bGVfX3dyYXBwZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuYy1tb2RhbF9fdGl0bGUge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLW1vZGFsX19jb250ZW50IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtbW9kYWwtLXN0cmV0Y2gge1xuXG4gICAgICAgIC5jLW1vZGFsX193cmFwcGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogWzE1XSAqL1xuICAgICAgICAgICAgdG9wOiAkbW9kYWwtc3RyZXRjaC1zcGFjaW5nLXRvcDtcbiAgICAgICAgICAgIGxlZnQ6ICRtb2RhbC1zdHJldGNoLWFsaWdubWVudC1sZWZ0O1xuICAgICAgICAgICAgbWFyZ2luOiAkbW9kYWwtc3RyZXRjaC1wb3NpdGlvbmluZztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRtb2RhbC1zdHJldGNoLXNwYWNpbmctYm90dG9tO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7IC8qIFsxNV0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBpdGNzcy9uby1hdC1pbXBvcnRhbnQgKi8vKiBbMTVdICovIC8qIFsxNl0gKi8gLyogWzE3XSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1tb2RhbC0tc3RyZXRjaCxcbiAgICAuYy1tb2RhbC0tdmlkZW8ge1xuXG4gICAgICAgIC5jLW1vZGFsX193cmFwcGVyIHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6ICRtb2RhbC1tYXgtaGVpZ2h0LXN0cmV0Y2g7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZTsgLyogWzIyXSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtbW9kYWxfX2NvbnRlbnQge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtbW9kYWwtLW5vLXNjcm9sbC1zaGFkb3cge1xuICAgICAgICBAaW5jbHVkZSBtb2RhbC1uby1zY3JvbGwtc2hhZG93KCk7XG4gICAgfVxuXG4gICAgLmMtbW9kYWwtLXZpZGVvIHtcbiAgICAgICAgQGluY2x1ZGUgbW9kYWwtbm8tc2Nyb2xsLXNoYWRvdygpO1xuXG4gICAgICAgIC5jLW1vZGFsX19jb250ZW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4vKipcbiAqIFN0eWxlcyBhcHBsaWVkIHRvIGEganMtaG9vayAod2hpY2ggaXMgYSBuby1ubykgaXMgYW4gZXhjZXB0aW9uIGFzIHRoZSB0cmlnZ2VyXG4gKiBjYW4gYmUgYXBwbGllZCB0byBhcmJpdHJhcnkgZWxlbWVudHMgYnV0IG5lZWQgdGhvc2UgYWRkaXRpb25hbCBzdHlsZXMgdG9cbiAqIHdvcmsgcHJvcGVybHkuXG4gKi9cbi5qcy1tb2RhbC10cmlnZ2VyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IC8qIFsxM10gKi9cblxuICAgICoge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogWzE0XSAqL1xuICAgIH1cblxufVxuXG4gICAgLmMtbW9kYWxfX292ZXJsYXkge1xuICAgICAgICBAaW5jbHVkZSBiYWNrZHJvcChcbiAgICAgICAgICAgICRjb2xvcjogICRtb2RhbC1vdmVybGF5LWNvbG9yLFxuICAgICAgICAgICAgJGZpbHRlcjogJG1vZGFsLW92ZXJsYXktZmlsdGVyLFxuICAgICAgICApO1xuICAgICAgICB6LWluZGV4OiAtMTsgLyogWzIwXSAqL1xuICAgIH1cblxuICAgIC5jLW1vZGFsX193cmFwcGVyIHtcblxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7IC8qIFszXSAqL1xuICAgICAgICB0b3A6IDUwJTsgLyogWzNdICovXG4gICAgICAgIGxlZnQ6IDUwJTsgLyogWzNdICovXG4gICAgICAgIG1pbi13aWR0aDogbWluKHZhcigtLW1vZGFsLXdpZHRoLW1pbiksIGNhbGMoMTAwdncgLSAjeyRtb2RhbC1lZGdlLXNhZmVzcGFjZSAqIDJ9KSk7XG4gICAgICAgIG1heC13aWR0aDogbWluKHZhcigtLW1vZGFsLXdpZHRoLW1heCksIGNhbGMoMTAwdncgLSAjeyRtb2RhbC1lZGdlLXNhZmVzcGFjZSAqIDJ9KSk7IC8qIFsyM10gKi9cbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IC8qIFszXSAqL1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkbW9kYWwtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1vZGFsLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIGJveC1zaGFkb3c6IGlmKCRtb2RhbC1zaGFkb3csICRtb2RhbC1zaGFkb3csIG51bGwpO1xuICAgIH1cblxuICAgIC5jLW1vZGFsX19oZWFkZXIge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFxuICAgICAgICAgICAgKFwicGFkZGluZy10b3BcIiwgICAgJG1vZGFsLWhlYWRlci1wYWRkaW5nLXRvcCksXG4gICAgICAgICAgICAoXCJwYWRkaW5nLWxlZnRcIiwgICAkbW9kYWwtaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbCksXG4gICAgICAgICAgICAoXCJwYWRkaW5nLXJpZ2h0XCIsICAkbW9kYWwtaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbCksXG4gICAgICAgICAgICAoXCJwYWRkaW5nLWJvdHRvbVwiLCAkbW9kYWwtaGVhZGVyLXBhZGRpbmctYm90dG9tKVxuICAgICAgICApO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogJG1vZGFsLWNsb3NlLWJ1dHRvbi1zcGFjaW5nO1xuXG4gICAgICAgIEBpZiAoJG1vZGFsLWhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbW9kYWwtaGVhZGVyLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYy1tb2RhbF9fdGl0bGVfX3dyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6ICRtb2RhbC1zdGF0dXMtaWNvbi1zcGFjaW5nO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIHRleHQtYWxpZ246ICRtb2RhbC10aXRsZS1hbGlnbm1lbnQ7XG4gICAgfVxuXG4gICAgLmMtbW9kYWxfX3N0YXR1cy1pY29uIHtcbiAgICAgICAgQGlmICgkbW9kYWwtc3RhdHVzLWljb24tZW5hYmxlKSB7XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBiYXNlbGluZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogaWNvbi1zaXplKCRtb2RhbC1zdGF0dXMtaWNvbi1zaXplKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxOyAvKiBbMjFdICovXG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBvcmRlci9vcmRlciAqL1xuICAgICAgICAgICAgQGluY2x1ZGUgdmFyeSgkbG9vcDogJG1vZGFsLXN0YXR1cy1pY29ucy1tZXJnZWQsICRjcmVhdGU6IFwiY3VzdG9tXCIpIHtcbiAgICAgICAgICAgICAgICAkX21vZGlmaWVyOiAkdmFyeS1sb29wLWVudGl0eTtcbiAgICAgICAgICAgICAgICAkX2ljb246ICAgICB2YXJ5LWdldChcImljb25cIik7XG4gICAgICAgICAgICAgICAgJF9ib3JkZXI6ICAgdmFyeS1nZXQoXCJib3JkZXJcIik7XG5cbiAgICAgICAgICAgICAgICAuYy1tb2RhbC0tI3skX21vZGlmaWVyfSAmIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcnktZ2V0KFwiY29sb3JcIik7XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICh2YXJ5LWdldChcImJvcmRlclwiKSA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBpY29uLXZhcmlhbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhcmlhbnQ6ICAgICAgXCJyb3VuZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRib3JkZXItY29sb3I6IGN1cnJlbnRDb2xvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2l6ZTogICAgICAgICAkbW9kYWwtc3RhdHVzLWljb24tc2l6ZVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBnZXQtaWNvbigkX2ljb24sICRtb2RhbC1zdGF0dXMtaWNvbi1jb21wbGV4aXR5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmMtbW9kYWxfX3RpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAkbW9kYWwtdGl0bGUtZm9udC1zaXplLFxuICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAkbW9kYWwtdGl0bGUtbGluZS1oZWlnaHQsXG4gICAgICAgICk7IC8qIFs1XSAqLyAvKiBbMjVdICovXG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgIGZsZXgtYmFzaXM6IDgwJTsgLyogWzI0XSAqL1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbOV0gKi9cbiAgICB9XG5cbiAgICAuYy1tb2RhbF9fY2xvc2UtYnRuIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtYnV0dG9uKCk7XG5cbiAgICAgICAgQGlmICgkbW9kYWwtY2xvc2UtYnV0dG9uLWljb24tdmFyaWFudCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi12YXJpYW50KFxuICAgICAgICAgICAgICAgICR2YXJpYW50OiAgICAgICAgICBtYXAtZ2V0KCRtb2RhbC1jbG9zZS1idXR0b24taWNvbi12YXJpYW50LCBcInZhcmlhbnRcIiksXG4gICAgICAgICAgICAgICAgJHNpemU6ICAgICAgICAgICAgIG1hcC1nZXQoJG1vZGFsLWNsb3NlLWJ1dHRvbi1pY29uLXZhcmlhbnQsIFwic2l6ZVwiKSxcbiAgICAgICAgICAgICAgICAkdGV4dC1jb2xvcjogICAgICAgbWFwLWdldCgkbW9kYWwtY2xvc2UtYnV0dG9uLWljb24tdmFyaWFudCwgXCJ0ZXh0LWNvbG9yXCIpLFxuICAgICAgICAgICAgICAgICRiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRtb2RhbC1jbG9zZS1idXR0b24taWNvbi12YXJpYW50LCBcImJhY2tncm91bmQtY29sb3JcIiksXG4gICAgICAgICAgICAgICAgJGJvcmRlci1jb2xvcjogICAgIG1hcC1nZXQoJG1vZGFsLWNsb3NlLWJ1dHRvbi1pY29uLXZhcmlhbnQsIFwiYm9yZGVyLWNvbG9yXCIpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgYWxpZ24tc2VsZjogYmFzZWxpbmU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkbW9kYWwtY2xvc2UtYnV0dG9uLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGljb24tZm9udCgpO1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICRmb250LXNpemU6ICAgJG1vZGFsLWNsb3NlLWJ1dHRvbi1pY29uLXNpemUsXG4gICAgICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiBmYWxzZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnRlbnQ6IGdldC1pY29uKCRtb2RhbC1jbG9zZS1idXR0b24taWNvbiwgJG1vZGFsLWNsb3NlLWJ1dHRvbi1pY29uLWNvbXBsZXhpdHkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmMtbW9kYWxfX2NvbnRlbnQge1xuICAgICAgICAkY29udGVudC1wYWRkaW5nLWhvcml6b250YWwtaGFsZjogKCk7XG5cbiAgICAgICAgQGlmIHR5cGUtb2YoJG1vZGFsLWNvbnRlbnQtcGFkZGluZy1ob3Jpem9udGFsKSA9PSBtYXAgeyAgLyogWzEwXSAqL1xuXG4gICAgICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbHVlIGluICRtb2RhbC1jb250ZW50LXBhZGRpbmctaG9yaXpvbnRhbCB7ICAvKiBbMTFdICovXG4gICAgICAgICAgICAgICAgJGhhbGY6IG51bGw7XG4gICAgICAgICAgICAgICAgQGlmICgkdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAkaGFsZjogKCR2YWx1ZSAqIDAuNSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICRjb250ZW50LXBhZGRpbmctaG9yaXpvbnRhbC1oYWxmOiBtYXAtbWVyZ2UoJGNvbnRlbnQtcGFkZGluZy1ob3Jpem9udGFsLWhhbGYsICgkYnJlYWtwb2ludDogJGhhbGYpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9IEBlbHNlIHtcblxuICAgICAgICAgICAgJGNvbnRlbnQtcGFkZGluZy1ob3Jpem9udGFsLWhhbGY6ICgkbW9kYWwtY29udGVudC1wYWRkaW5nLWhvcml6b250YWwgKiAwLjUpO1xuXG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFxuICAgICAgICAgICAgKFwicGFkZGluZy1sZWZ0XCIsICAkY29udGVudC1wYWRkaW5nLWhvcml6b250YWwtaGFsZiksXG4gICAgICAgICAgICAoXCJtYXJnaW4tbGVmdFwiLCAgICRjb250ZW50LXBhZGRpbmctaG9yaXpvbnRhbC1oYWxmKSxcbiAgICAgICAgICAgIChcInBhZGRpbmctcmlnaHRcIiwgJGNvbnRlbnQtcGFkZGluZy1ob3Jpem9udGFsLWhhbGYpLFxuICAgICAgICAgICAgKFwibWFyZ2luLXJpZ2h0XCIsICAkY29udGVudC1wYWRkaW5nLWhvcml6b250YWwtaGFsZiksXG4gICAgICAgICAgICAoXCJwYWRkaW5nLXRvcFwiLCAgICRtb2RhbC1jb250ZW50LXBhZGRpbmctdG9wKVxuICAgICAgICApO1xuICAgICAgICBtYXgtaGVpZ2h0OiAkbW9kYWwtbWF4LWhlaWdodDsgLyogWzRdICovXG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87IC8qIFs0XSAqL1xuICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBub25lOyAvKiBbMjJdICovXG4gICAgICAgIHRleHQtYWxpZ246ICRtb2RhbC1jb250ZW50LWFsaWdubWVudDtcbiAgICAgICAgY29sb3I6ICRtb2RhbC1jb250ZW50LWNvbG9yO1xuXG4gICAgICAgID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRtb2RhbC1jb250ZW50LWZhZGUtaGVpZ2h0OyAvKiBbOF0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtbW9kYWxfX2Zvb3RlciB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXG4gICAgICAgICAgICAoXCJwYWRkaW5nLXRvcFwiLCAgICAkbW9kYWwtZm9vdGVyLXBhZGRpbmctdG9wKSxcbiAgICAgICAgICAgIChcInBhZGRpbmctbGVmdFwiLCAgICRtb2RhbC1mb290ZXItcGFkZGluZy1ob3Jpem9udGFsKSxcbiAgICAgICAgICAgIChcInBhZGRpbmctcmlnaHRcIiwgICRtb2RhbC1mb290ZXItcGFkZGluZy1ob3Jpem9udGFsKSxcbiAgICAgICAgICAgIChcInBhZGRpbmctYm90dG9tXCIsICRtb2RhbC1mb290ZXItcGFkZGluZy1ib3R0b20pXG4gICAgICAgICk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICB0ZXh0LWFsaWduOiAkbW9kYWwtZm9vdGVyLWFsaWdubWVudDtcblxuICAgICAgICAvLyBFbGVtZW50IHRoYXQgYWRkcyBhIGdyYWRpZW50IGF0IHRoZSBib3R0b20gZWRnZSBvZiB0aGUgbW9kYWwgY29udGVudFxuICAgICAgICAvLyB0byBzdWdnZXN0IHRoZSB1c2VyIHRoYXQgaGUgY2FuIHNjcm9sbCBkb3duIGZ1cnRoZXIgdGhlIG1vZGFsIGNvbnRlbnQuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFwicmlnaHRcIiwgJG1vZGFsLWNvbnRlbnQtcGFkZGluZy1ob3Jpem9udGFsKTsgLyogWzEyXSAqL1xuXG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAtKCRtb2RhbC1jb250ZW50LWZhZGUtaGVpZ2h0KTsgLyogWzZdICovXG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkbW9kYWwtY29udGVudC1mYWRlLWhlaWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2JhKCRtb2RhbC1iYWNrZ3JvdW5kLWNvbG9yLCAwKSwgcmdiYSgkbW9kYWwtYmFja2dyb3VuZC1jb2xvciwgMC43KSwgcmdiYSgkbW9kYWwtYmFja2dyb3VuZC1jb2xvciwgMC45KSwgJG1vZGFsLWJhY2tncm91bmQtY29sb3IpOyAvKiBbNl0gKi9cbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbN10gKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jLW1vZGFsX19hY3Rpb25zIHtcbiAgICAgICAgJF9hbGlnbm1lbnQ6ICRtb2RhbC1hY3Rpb25zLWFsaWdubWVudDtcbiAgICAgICAgQGlmICgkbW9kYWwtYWN0aW9ucy1hbGlnbm1lbnQgPT0gbGVmdCkge1xuICAgICAgICAgICAgJF9hbGlnbm1lbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRtb2RhbC1hY3Rpb25zLWFsaWdubWVudCA9PSByaWdodCkge1xuICAgICAgICAgICAgJF9hbGlnbm1lbnQ6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICRfYWxpZ25tZW50O1xuICAgICAgICBjb2x1bW4tZ2FwOiAkbW9kYWwtYWN0aW9ucy1zcGFjaW5nLWhvcml6b250YWw7XG4gICAgICAgIHJvdy1nYXA6ICRtb2RhbC1hY3Rpb25zLXNwYWNpbmctdmVydGljYWw7XG4gICAgfVxuXG4gICAgICAgIC5jLW1vZGFsX19hY3Rpb25zX19pdGVtIHtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogJG1vZGFsLWFjdGlvbnMtbWluLXdpZHRoO1xuXG4gICAgICAgICAgICBAaWYgKCRtb2RhbC1hY3Rpb25zLWZpbGwtc3BhY2UtYnJlYWtwb2ludCA9PSBcIm5vbmVcIikge1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRtb2RhbC1hY3Rpb25zLWZpbGwtc3BhY2UtYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0JBQ0tEUk9QXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGJhY2tkcm9wLWJhY2tncm91bmQ6ICRHTE9CQUwtQkFDS0RST1AtQkFDS0dST1VORCAhZGVmYXVsdDtcbiRiYWNrZHJvcC1maWx0ZXI6ICAgICBudWxsICFkZWZhdWx0O1xuXG4vLyBNaXhpbiB0byBleHRyYWN0IGJhY2tkcm9wIHN0eWxpbmdzLlxuQG1peGluIGJhY2tkcm9wKCRjb2xvcjogJGJhY2tkcm9wLWJhY2tncm91bmQsICRwb3NpdGlvbjogZml4ZWQsICRmaWx0ZXI6ICRiYWNrZHJvcC1maWx0ZXIpIHtcbiAgICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiAkZmlsdGVyO1xufVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0JBQ0tEUk9QXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGltcG9ydCBcInNldHRpbmdzLnNoYWRvd3NcIjtcblxuJEJBQ0tEUk9QLUZJTFRFUjogYmx1cig0cHgpICFkZWZhdWx0O1xuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI01PREFMIChTZXR0aW5ncylcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2tvZGEtbW9kYWwtY2xvc2UtYnV0dG9uLXNpemU6ICRCVVRUT04tSUNPTi1JTlRFUkFDVElPTi1TSVpFICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBBbGlnbiBpY29uIHZlcnRpY2FsbHkgdG8gdGhlIHRleHQuXG4gKi9cbi5jLW1vZGFsIHtcblxufVxuXG4gICAgLmMtbW9kYWxfX2Nsb3NlLWJ0biB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1pY29uLXN0YXRlcyhcbiAgICAgICAgICAgICRzaXplOiAkc2tvZGEtbW9kYWwtY2xvc2UtYnV0dG9uLXNpemUsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLmMtbW9kYWxfX3N0YXR1cy1pY29uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDsgLyogWzFdICovXG4gICAgfVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0FDQ09SRElPTlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkB1c2UgXCJzYXNzOm1hdGhcIiBhcyAqO1xuXG4kYWNjb3JkaW9uLWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICBzICFkZWZhdWx0O1xuXG4kYWNjb3JkaW9uLWljb24tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uLXNpemUoc21hbGwpICFkZWZhdWx0O1xuJGFjY29yZGlvbi1pY29uLXNwYWNpbmctbGVmdDogICAgICAgICAgICAgICAgICAgYXV0byAhZGVmYXVsdDtcbiRhY2NvcmRpb24taWNvbi1zcGFjaW5nLXJpZ2h0OiAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJGFjY29yZGlvbi1pY29uLXNwYWNpbmctdG9wOiAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLWljb24tc3BhY2luZy10b3AtbGFyZ2U6ICAgICAgICAgICAgICAkYWNjb3JkaW9uLWljb24tc3BhY2luZy10b3AgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLWljb24tc3BhY2luZy10b3AtYnJlYWtwb2ludDogICAgICAgICBtICFkZWZhdWx0O1xuJGFjY29yZGlvbi1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcblxuJGFjY29yZGlvbi1iZy1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuLy8gQm9yZGVyIHNldHRpbmdzXG4kYWNjb3JkaW9uLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLWJvcmRlci10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgICBub25lICFkZWZhdWx0O1xuJGFjY29yZGlvbi1ib3JkZXItYm90dG9tOiAgICAgICAgICAgICAgICAgICAgICAgMXB4IHNvbGlkICRhY2NvcmRpb24tYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuXG4kYWNjb3JkaW9uLWhlYWRlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAxcHggc29saWQgJGFjY29yZGlvbi1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLWhlYWRlci1zcGFjaW5nLXRvcDogICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRhY2NvcmRpb24taGVhZGVyLXNwYWNpbmctYm90dG9tOiAgICAgICAgICAgICAgICRhY2NvcmRpb24taGVhZGVyLXNwYWNpbmctdG9wICFkZWZhdWx0O1xuJGFjY29yZGlvbi1oZWFkZXItc3BhY2luZy1sZWZ0OiAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcbiRhY2NvcmRpb24taGVhZGVyLXNwYWNpbmctcmlnaHQ6ICAgICAgICAgICAgICAgICgkYWNjb3JkaW9uLWljb24tc3BhY2luZy1yaWdodCAqIDIpICsgJGFjY29yZGlvbi1pY29uLXNpemUgIWRlZmF1bHQ7XG5cbiRhY2NvcmRpb24taGVhZGVyLWluZGVudGF0aW9uOiAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGFjY29yZGlvbi1oZWFkZXItaW5kZW50YXRpb24tc3BhY2luZzogICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuJGFjY29yZGlvbi1oZWFkZXItc3BsaXQtc3BhY2luZy1yaWdodDogICAgICAgICAgJGFjY29yZGlvbi1oZWFkZXItc3BhY2luZy1yaWdodCAhZGVmYXVsdDtcbiRhY2NvcmRpb24taGVhZGVyLXNwbGl0LXNwYWNpbmctbGVmdDogICAgICAgICAgICRhY2NvcmRpb24taGVhZGVyLXNwYWNpbmctbGVmdCAhZGVmYXVsdDtcbiRhY2NvcmRpb24taGVhZGVyLXNwbGl0LWxhYmVsLXNwYWNpbmctdmVydGljYWw6ICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiRhY2NvcmRpb24taGVhZGVyLXNwbGl0LWxhYmVsLXNwYWNpbmctYmV0d2VlbjogICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuXG4kYWNjb3JkaW9uLXRpdGxlLW1hcmdpbi1ib3R0b206ICAgICAgICAgICAgICAgICAwICFkZWZhdWx0O1xuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgJEZTMCAhZGVmYXVsdDtcbiRhY2NvcmRpb24tdGl0bGUtZm9udC1mYW1pbHk6ICAgICAgICAgICAgICAgICAgICRCQVNFLUZPTlQtRkFNSUxZICFkZWZhdWx0O1xuJGFjY29yZGlvbi10aXRsZS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgJEdMT0JBTC1MSU5FLUhFSUdIVCAhZGVmYXVsdDtcbiRhY2NvcmRpb24tdGl0bGUtdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLXRpdGxlLWxlbmd0aDogICAgICAgICAgICAgICAgICAgICAgICA1MGVtICFkZWZhdWx0O1xuJGFjY29yZGlvbi10aXRsZS13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xEICFkZWZhdWx0O1xuXG4kYWNjb3JkaW9uLXN1YnRpdGxlLXdlaWdodDogICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGFjY29yZGlvbi1zdWJ0aXRsZS1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuJGFjY29yZGlvbi1wYW5lbC1zcGFjaW5nLXRvcDogICAgICAgICAgICAgICAgICAgMHB4ICFkZWZhdWx0OyAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGxlbmd0aC16ZXJvLW5vLXVuaXRcbiRhY2NvcmRpb24tcGFuZWwtc3BhY2luZy1ib3R0b206ICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJGFjY29yZGlvbi1wYW5lbC1zcGFjaW5nLWxlZnQ6ICAgICAgICAgICAgICAgICAgMHB4ICFkZWZhdWx0OyAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGxlbmd0aC16ZXJvLW5vLXVuaXRcbiRhY2NvcmRpb24tcGFuZWwtc3BhY2luZy1yaWdodDogICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuXG4vLyBBY2NvcmRpb24gd2l0aCBkaWZmZXJlbnQgYmcgY29sb3JcbiRhY2NvcmRpb24tYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLXBhbmVsLWJnLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICBtYXAtZ2V0KCRCQUNLR1JPVU5ELVVUSUxJVElFUywgXCJhbHRlcm5hdGl2ZVwiKSAhZGVmYXVsdDtcbiRhY2NvcmRpb24tcGFuZWwtYmctc3BhY2luZy10b3A6ICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJGFjY29yZGlvbi1wYW5lbC1iZy1zcGFjaW5nLWJvdHRvbTogICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLXBhbmVsLWJnLXNwYWNpbmctbGVmdDogICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRhY2NvcmRpb24tcGFuZWwtYmctc3BhY2luZy1yaWdodDogICAgICAgICAgICAgICRhY2NvcmRpb24tcGFuZWwtYmctc3BhY2luZy1sZWZ0ICFkZWZhdWx0O1xuJGFjY29yZGlvbi1wYW5lbC1iZy1kaXZpZGVyLXRvcC13aWR0aDogICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRhY2NvcmRpb24tcGFuZWwtYmctZGl2aWRlci10b3AtY29sb3I6ICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbi8vIFVzZXMgQ1NTIGdlbmVyYXRlZCBpY29uXG4kYWNjb3JkaW9uLWVuYWJsZS1jc3Nvbmx5LWljb246ICAgICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuJGFjY29yZGlvbi1jc3MtaWNvbi1zdHJva2Utd2lkdGg6ICAgICAgICAgICAgICAgMnB4ICFkZWZhdWx0O1xuXG4vLyBTdGF0ZSBjbGFzc2VzXG4kYWNjb3JkaW9uLXRpdGxlLXN0YXRlLWV4cGFuZGVkOiAgICAgICAgICAgICAgICBcIi5pcy1hY3RpdmVcIiAhZGVmYXVsdDtcbiRhY2NvcmRpb24tcGFuZWwtc3RhdGUtZXhwYW5kZWQ6ICAgICAgICAgICAgICAgIFwiW2FyaWEtaGlkZGVuPSdmYWxzZSddXCIgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLXBhbmVsLXN0YXRlLWV4cGFuZGVkLXRyYW5zaXRpb24tZW5kOiBcIi5pcy1leHBhbmRlZFwiICFkZWZhdWx0O1xuXG4kYWNjb3JkaW9uLWNvbnRlbnQtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4vLyBVc2Ugc2VwYXJhdGUgaWNvbnMgZm9yIGV4cGFuZGluZy9jb2xsYXBzaW5nIGlmICRhY2NvcmRpb24tZW5hYmxlLWNzc29ubHktaWNvblxuLy8gaXMgc2V0IHRvIGBmYWxzZWAuXG4kYWNjb3JkaW9uLWljb24tY29sbGFwc2VkOiAgICAgICAgICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1leHBhbmQpICFkZWZhdWx0O1xuJGFjY29yZGlvbi1pY29uLXRyYW5zZm9ybS1jb2xsYXBzZWQ6ICAgICAgICAgICAgcm90YXRlWCgwKSAhZGVmYXVsdDtcbiRhY2NvcmRpb24taWNvbi1leHBhbmRlZDogICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLWljb24tdHJhbnNmb3JtLWV4cGFuZGVkOiAgICAgICAgICAgICByb3RhdGVYKDE4MGRlZykgIWRlZmF1bHQ7XG5cbi8vIEFuaW1hdGlvbnNcbiRhY2NvcmRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbjogICAgICAgICAgICAgICAgICRHTE9CQUwtVFJBTlNJVElPTi1EVVJBVElPTi1NRURJVU0gKiAyICFkZWZhdWx0O1xuJGFjY29yZGlvbi1wYW5lbC10cmFuc2l0aW9uLWR1cmF0aW9uLWZhY3RvcjogICAgMiAhZGVmYXVsdDtcbiRhY2NvcmRpb24tcGFuZWwtdHJhbnNpdGlvbi1kdXJhdGlvbjogICAgICAgICAgIGRpdigkYWNjb3JkaW9uLXRyYW5zaXRpb24tZHVyYXRpb24sICRhY2NvcmRpb24tcGFuZWwtdHJhbnNpdGlvbi1kdXJhdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJGFjY29yZGlvbi1pY29uLWFuaW1hdGlvbi1kdXJhdGlvbi1mYWN0b3I6ICAgICAgMyAhZGVmYXVsdDtcbiRhY2NvcmRpb24taWNvbi1hbmltYXRpb24tZHVyYXRpb246ICAgICAgICAgICAgIGRpdigkYWNjb3JkaW9uLXRyYW5zaXRpb24tZHVyYXRpb24sICRhY2NvcmRpb24taWNvbi1hbmltYXRpb24tZHVyYXRpb24tZmFjdG9yKSAhZGVmYXVsdDtcblxuJGFjY29yZGlvbi1vdmVyZmxvdy1vZmZzZXQ6ICAgICAgICAgICAgICAgICAgICAgMC41cmVtICFkZWZhdWx0OyAvLyBbMjBdXG5cbiRhY2NvcmRpb24tdGhlbWVzOiAoXG4gICAgXCJhbHRlcm5hdGl2ZVwiOiAoXG4gICAgICAgIFwicGFuZWwtYmFja2dyb3VuZFwiOiAkQ09MT1ItQkFTRS1CQUNLR1JPVU5EXG4gICAgKVxuKSAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gIEJvcmRlciBiZWxvdyBhbmQgYWJvdmUgdGhlIGFjY29yZGlvbiBjb21wb25lbnQuXG4gKiBbMl0gIFJlc2V0IGJyb3dzZXItZGVmYXVsdCBidXR0b24gc3R5bGVzLlxuICogWzNdICBNYXggbGluZS1sZW5ndGguXG4gKiBbNF0gIExvd2VyIGR1cmF0aW9uIGZvciBjb2xsYXBzaW5nIHRvIGZvY3VzIG9uIHRoZSBleHBhbmRpbmcgY29udGVudC5cbiAqIFs1XSAgUmVtb3ZlIHdoaXRlc3BhY2UgZnJvbSBoZWFkaW5nIChgaCpgKSwgYGxpbmUtaGVpZ2h0YCBpcyBzZXQgb24gYnV0dG9uLlxuICogWzZdICBEbyBub3QgdXNlIGBib3JkZXItdG9wYCBvbiBmaXJzdCBpdGVtLCBiZWNhdXNlIGl04oCZcyBzZXQgd2l0aFxuICogICAgICBgJGFjY29yZGlvbi1ib3JkZXItdG9wYC5cbiAqIFs3XSAgQWRkIG9mZnNldCBmb3IgQ1NTLWdlbmVyYXRlZCBpY29ucyB0byBhY2NvbW1vZGF0ZSBmb3IgZGlmZmVyZW50XG4gKiAgICAgIGBzdHJva2Utd2lkdGhgLlxuICogWzhdICBVc2UgYGdyaWQtdGVtcGxhdGUtcm93c2AgdG8gdHJhbnNpdGlvbiB0aGUgaGVpZ2h0LlxuICogICAgICBObyBtb3JlIGNob3BweSBgbWF4LWhlaWdodGAgdHJhbnNpdGlvbi4gKHNlZSBodHRwczovL3d3dy5zdGVmYW5qdWRpcy5jb20vc25pcHBldHMvaG93LXRvLWFuaW1hdGUtaGVpZ2h0LXdpdGgtY3NzLWdyaWQvKVxuICogWzldICBIaWRlIHBhbmVsIG92ZXJmbG93IGNvbnRlbnQgKGUuZy4gZXhwYW5kZWQgQ29tYm8gQm94KSBhbmQgb25seSBhbGxvd1xuICogICAgICBvdmVyZmxvdyBhZnRlciB0aGUgZmluaXNoZWQgdHJhbnNpdGlvbiB2aWEgdGhlIGR5bmFtaWNhbGx5IGFkZGVkXG4gKiAgICAgIGAkYWNjb3JkaW9uLXBhbmVsLXN0YXRlLWV4cGFuZGVkLXRyYW5zaXRpb24tZW5kYCBjbGFzcy5cbiAqIFsxMF0gRGlzYWJsZSB0aGUgdG9wIGJvcmRlciBmb3Igc2libGluZyBhY2NvcmRpb25zIG9ubHkgaWYgdGhlcmUgaXNcbiAqICAgICAgbm8gYm90dG9tIGJvcmRlci5cbiAqIFsxMV0gVXNlIHBzZXVkbyBlbGVtZW50cyB0byBmYWtlIHZlcnRpY2FsIHBhZGRpbmcgYmVjYXVzZSBhY3R1YWwgcGFkZGluZ3NcbiAqICAgICAgd291bGQgdW5pbnRlbnRpb25hbGx5IGVubGFyZ2UgdGhlIGAuYy1hY2NvcmRpb25fX2NvbnRlbnRgIGdyaWQgaXRlbS5cbiAqIFsxMl0gQWxpZ24gYC5jLWFjY29yZGlvbl9fdGl0bGUtbGFiZWxgIHRvIHRoZSBsZWZ0IGFuZCByaWdodCB2aWEgZmxleGJveC5cbiAqIFsxM10gU3RhY2sgYC5jLWFjY29yZGlvbl9fdGl0bGUtbGFiZWxgcyB2ZXJ0aWNhbGx5IGluIHNtYWxsIHZpZXdwb3J0cy5cbiAqIFsxNF0gQWRkIHZlcnRpY2FsIHNwYWNlIGJldHdlZW4gYC5jLWFjY29yZGlvbl9fdGl0bGUtbGFiZWxgIGluIHNtYWxsXG4gKiAgICAgIHZpZXdwb3J0cy5cbiAqIFsxNV0gUHVzaCBpbmZvIGljb24gdG8gdGhlIGxlZnQgaW4gc3BsaXR0ZWQgaGVhZGVyIHRpdGxlcy5cbiAqIFsxNl0gQWRkIGEgc3BhY2UgYmV0d2VlbiBib3RoIHNwbGl0dGVkIGhlYWRlciB0aXRsZSBwYXJ0cy5cbiAqIFsxN10gRGVmaW5lcyB0aGUgaW5kZW50YXRpb24gd2lkdGggb2YgdGhlIGhlYWRlci5cbiAqIFsxOF0gUmVzb2x2ZXMgdGhlIGB6LWluZGV4IHByb2JsZW0gb2YgdGhlIHRvb2x0aXAuXG4gKiBbMTldIFNpbmNlIGBbcm9sZT1idXR0b25dYCBkb2VzIG5vdCBpbmhlcml0IGFueSBidXR0b24gc3R5bGVzIHdlIG5lZWQgdG9cbiAqICAgICAgbWFudWFsbHkgc2V0IHRoZW0gaGVyZS5cbiAqIFsyMF0gVG8gcHJldmVudCBjdXQtb2ZmLCBvdmVyZmxvd2luZyBzdHlsaXN0aWMgZmVhdHVyZXMgKGUuZy4gYm94IHNoYWRvdyksXG4gKiAgICAgIGEgbGFyZ2UgZW5vdWdoIHBhZGRpbmcgKGAkYWNjb3JkaW9uLW92ZXJmbG93LW9mZnNldGApIGlzIGFkZGVkIGFuZFxuICogICAgICBjb21wZW5zYXRlZCB3aXRoIG5lZ2F0aXZlIG1hcmdpbnMuIEFkZGl0aW9uYWxseSB0aGUgcGFuZWwgY29udGVudCBpc1xuICogICAgICBiZWluZyBoaWRkZW4gdmlhIGBvcGFjaXR5YCB3aGVuIHRoZSBwYW5lbCBpcyBjbG9zZWQuXG4gKiBbMjFdIERpc2FibGUgZXh0cmEgcGFkZGluZyBmcm9tIFsyMF0gZm9yIEFjY29yZGlvbiB3aXRoIHBhbmVsXG4gKiAgICAgIGJhY2tncm91bmQgY29sb3IgdG8gYXZvaWQgdmlzaWJsZSBiYWNrZ3JvdW5kIG91dHNpZGUgb2YgdGhlIGFjY29yZGlvbi5cbiAqIFsyMl0gUHJldmVudCBsYXlvdXQgaXNzdWVzIHdpdGggYWJzb2x1dGUgcG9zaXRpb25lZCBlbGVtZW50cyBpbnNpZGUgdGhlIHBhbmVsLlxuICovXG4uYy1hY2NvcmRpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItdG9wOiAkYWNjb3JkaW9uLWJvcmRlci10b3A7IC8qIFsxXSAqL1xuICAgIGJvcmRlci1ib3R0b206ICRhY2NvcmRpb24tYm9yZGVyLWJvdHRvbTsgLyogWzFdICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY29yZGlvbi1iZy1jb2xvcjtcblxuICAgICYgKyAmIHtcbiAgICAgICAgQGlmICgkYWNjb3JkaW9uLWJvcmRlci10b3AgIT0gXCJub25lXCIgYW5kICRhY2NvcmRpb24tYm9yZGVyLXRvcCAhPSAwKSBhbmRcbiAgICAgICAgICAgICgkYWNjb3JkaW9uLWJvcmRlci1ib3R0b20gIT0gXCJub25lXCIgYW5kICRhY2NvcmRpb24tYm9yZGVyLWJvdHRvbSAhPSAwKSB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiBub25lOyAvKiBbMTBdICovXG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuICAgIC5jLWFjY29yZGlvbl9faGVhZGVyIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcbiAgICAgICAgICAgIChcInBhZGRpbmctdG9wXCIsICAgICRhY2NvcmRpb24taGVhZGVyLXNwYWNpbmctdG9wKSxcbiAgICAgICAgICAgIChcInBhZGRpbmctcmlnaHRcIiwgICRhY2NvcmRpb24taGVhZGVyLXNwYWNpbmctcmlnaHQpLFxuICAgICAgICAgICAgKFwicGFkZGluZy1ib3R0b21cIiwgJGFjY29yZGlvbi1oZWFkZXItc3BhY2luZy1ib3R0b20pLFxuICAgICAgICAgICAgKFwicGFkZGluZy1sZWZ0XCIsICAgJGFjY29yZGlvbi1oZWFkZXItc3BhY2luZy1sZWZ0KVxuICAgICAgICApO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBAaWYgKCRhY2NvcmRpb24taGVhZGVyLWluZGVudGF0aW9uKSB7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuXG4gICAgICAgICAgICAgICAgLmMtYWNjb3JkaW9uX190aXRsZSxcbiAgICAgICAgICAgICAgICAuYy1hY2NvcmRpb25fX3N1YnRpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbMThdICovXG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7IC8qIFsxOF0gKi9cbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRhY2NvcmRpb24taGVhZGVyLWluZGVudGF0aW9uLXNwYWNpbmcpOyAvKiBbMTddICovXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLWFjY29yZGlvbl9fdGl0bGUsXG4gICAgICAgICAgICAuYy1hY2NvcmRpb25fX3N1YnRpdGxlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgICogKyAmIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRhY2NvcmRpb24taGVhZGVyLWJvcmRlcjsgLyogWzZdICovXG4gICAgICAgIH1cblxuICAgICAgICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmMtYWNjb3JkaW9uX190aXRsZSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKFxuICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZSxcbiAgICAgICAgICAgICRsaW5lLWhlaWdodDogJGFjY29yZGlvbi10aXRsZS1saW5lLWhlaWdodFxuICAgICAgICApO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkYWNjb3JkaW9uLXRpdGxlLW1hcmdpbi1ib3R0b207XG4gICAgfVxuXG4gICAgLmMtYWNjb3JkaW9uX190aXRsZS1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWJ1dHRvbigkcmVtb3ZlLWZvY3VzOiB0cnVlKTsgLyogWzJdICovXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyAvKiBbMTldICovXG4gICAgICAgIG1heC13aWR0aDogJGFjY29yZGlvbi10aXRsZS1sZW5ndGg7IC8qIFszXSAqL1xuICAgICAgICBmb250LWZhbWlseTogJGFjY29yZGlvbi10aXRsZS1mb250LWZhbWlseTsgLyogWzE5XSAqL1xuICAgICAgICBmb250LXdlaWdodDogJGFjY29yZGlvbi10aXRsZS13ZWlnaHQ7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7IC8qIFsxOV0gKi9cbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIFsxOV0gKi9cbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgY29sb3I6ICRhY2NvcmRpb24tdGl0bGUtdGV4dC1jb2xvcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5jLWFjY29yZGlvbl9fdGl0bGUtaW5mby1pY29uIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyAvKiBbMTVdICovXG4gICAgfVxuXG4gICAgLmMtYWNjb3JkaW9uX190aXRsZS1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcbiAgICAgICAgICAgIChcInRvcFwiLCAgICAkYWNjb3JkaW9uLWljb24tc3BhY2luZy10b3ApLFxuICAgICAgICAgICAgKFwicmlnaHRcIiwgICRhY2NvcmRpb24taWNvbi1zcGFjaW5nLXJpZ2h0KSxcbiAgICAgICAgICAgIChcImxlZnRcIiwgICAkYWNjb3JkaW9uLWljb24tc3BhY2luZy1sZWZ0KVxuICAgICAgICApO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAkYWNjb3JkaW9uLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkYWNjb3JkaW9uLXRpdGxlLWxpbmUtaGVpZ2h0O1xuXG4gICAgICAgIEBpZiAoJGFjY29yZGlvbi1lbmFibGUtY3Nzb25seS1pY29uID09IHRydWUpIHtcblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oJHRyYW5zaXRpb24tcHJvcGVydHk6IFwidHJhbnNmb3JtXCIpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAoJGFjY29yZGlvbi1pY29uLXNpemUgKiAwLjUpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogJGFjY29yZGlvbi1jc3MtaWNvbi1zdHJva2Utd2lkdGg7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tOyAvLyBAVE9ETzogY2hlY2sgaWYgdGhpcyBoYXMgYW55IGVmZmVjdCBhcyBubyBgdHJhbnNmb3JtYCBpcyBzZXRcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjb3JkaW9uLWljb24tY29sb3I7XG5cbiAgICAgICAgICAgICAgICAuYy1hY2NvcmRpb25fX2hlYWRlciN7JGFjY29yZGlvbi10aXRsZS1zdGF0ZS1leHBhbmRlZH0gJiB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICByaWdodDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKDFweCkgcm90YXRlKDQ1ZGVnKTsgLyogWzddICovXG5cbiAgICAgICAgICAgICAgICAuYy1hY2NvcmRpb25fX2hlYWRlciN7JGFjY29yZGlvbi10aXRsZS1zdGF0ZS1leHBhbmRlZH0gJiB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKDFweCkgcm90YXRlKC00NWRlZyk7IC8qIFs3XSAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC0xcHgpIHJvdGF0ZSgtNDVkZWcpOyAvKiBbN10gKi9cblxuICAgICAgICAgICAgICAgIC5jLWFjY29yZGlvbl9faGVhZGVyI3skYWNjb3JkaW9uLXRpdGxlLXN0YXRlLWV4cGFuZGVkfSAmIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTFweCkgcm90YXRlKDQ1ZGVnKTsgLyogWzddICovXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSBAZWxzZSB7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPiN7JGFjY29yZGlvbi1pY29uLXNwYWNpbmctdG9wLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFxuICAgICAgICAgICAgICAgICAgICAoXCJ0b3BcIiwgJGFjY29yZGlvbi1pY29uLXNwYWNpbmctdG9wLWxhcmdlKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSxcbiAgICAgICAgICAgICAgICAgICAgJHRyYW5zaXRpb24tZHVyYXRpb246ICRhY2NvcmRpb24taWNvbi1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAgICAgICAgICRmb250LXNpemU6ICAgJGFjY29yZGlvbi1pY29uLXNpemUsXG4gICAgICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogMVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJGFjY29yZGlvbi1pY29uLWNvbGxhcHNlZDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICRhY2NvcmRpb24taWNvbi10cmFuc2Zvcm0tY29sbGFwc2VkO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWNjb3JkaW9uLWljb24tY29sb3I7XG5cbiAgICAgICAgICAgICAgICAuYy1hY2NvcmRpb25fX2hlYWRlciN7JGFjY29yZGlvbi10aXRsZS1zdGF0ZS1leHBhbmRlZH0gJiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICRhY2NvcmRpb24taWNvbi1leHBhbmRlZDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAkYWNjb3JkaW9uLWljb24tdHJhbnNmb3JtLWV4cGFuZGVkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWFjY29yZGlvbl9fc3VidGl0bGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAkYWNjb3JkaW9uLXN1YnRpdGxlLXNwYWNpbmc7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkYWNjb3JkaW9uLXN1YnRpdGxlLXdlaWdodDtcbiAgICB9XG5cbiAgICAuYy1hY2NvcmRpb25fX3BhbmVsIHtcbiAgICAgICAgLS1hY2NvcmRpb24tb3ZlcmZsb3ctb2Zmc2V0OiAjeyRhY2NvcmRpb24tb3ZlcmZsb3ctb2Zmc2V0fTsgLyogWzIwXSAqL1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFxuICAgICAgICAgICAgKFwiLS1hY2NvcmRpb24tcGFuZWwtcGFkZGluZy10b3BcIiwgJGFjY29yZGlvbi1wYW5lbC1zcGFjaW5nLXRvcCksXG4gICAgICAgICAgICAoXCItLWFjY29yZGlvbi1wYW5lbC1wYWRkaW5nLXJpZ2h0XCIsICRhY2NvcmRpb24tcGFuZWwtc3BhY2luZy1yaWdodCksXG4gICAgICAgICAgICAoXCItLWFjY29yZGlvbi1wYW5lbC1wYWRkaW5nLWJvdHRvbVwiLCAkYWNjb3JkaW9uLXBhbmVsLXNwYWNpbmctYm90dG9tKSxcbiAgICAgICAgICAgIChcIi0tYWNjb3JkaW9uLXBhbmVsLXBhZGRpbmctbGVmdFwiLCAkYWNjb3JkaW9uLXBhbmVsLXNwYWNpbmctbGVmdClcbiAgICAgICAgKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihcbiAgICAgICAgICAgICR0cmFuc2l0aW9uLXByb3BlcnR5OiBncmlkLXRlbXBsYXRlLXJvd3MsXG4gICAgICAgICAgICAkdHJhbnNpdGlvbi1kdXJhdGlvbjogJGFjY29yZGlvbi1wYW5lbC10cmFuc2l0aW9uLWR1cmF0aW9uLFxuICAgICAgICApOyAvKiBbOF0gKi9cbiAgICAgICAgZGlzcGxheTogZ3JpZDsgLyogWzhdICovXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyOyAvKiBbOF0gKi9cblxuICAgICAgICAmI3skYWNjb3JkaW9uLXBhbmVsLXN0YXRlLWV4cGFuZGVkfSB7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjsgLyogWzhdICovXG4gICAgICAgIH1cbiAgICAgICAgQGlmICgkYWNjb3JkaW9uLWJhY2tncm91bmQpIHtcbiAgICAgICAgICAgIC5jLWFjY29yZGlvbi0tYmctcGFuZWwgJiB7XG4gICAgICAgICAgICAgICAgLS1hY2NvcmRpb24tb3ZlcmZsb3ctb2Zmc2V0OiAwcHg7IC8qIFsyMV0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBsZW5ndGgtemVyby1uby11bml0ICovXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcbiAgICAgICAgICAgICAgICAgICAgKFwiLS1hY2NvcmRpb24tcGFuZWwtcGFkZGluZy10b3BcIiwgJGFjY29yZGlvbi1wYW5lbC1iZy1zcGFjaW5nLXRvcCksXG4gICAgICAgICAgICAgICAgICAgIChcIi0tYWNjb3JkaW9uLXBhbmVsLXBhZGRpbmctcmlnaHRcIiwgJGFjY29yZGlvbi1wYW5lbC1iZy1zcGFjaW5nLXJpZ2h0KSxcbiAgICAgICAgICAgICAgICAgICAgKFwiLS1hY2NvcmRpb24tcGFuZWwtcGFkZGluZy1ib3R0b21cIiwgJGFjY29yZGlvbi1wYW5lbC1iZy1zcGFjaW5nLWJvdHRvbSksXG4gICAgICAgICAgICAgICAgICAgIChcIi0tYWNjb3JkaW9uLXBhbmVsLXBhZGRpbmctbGVmdFwiLCAkYWNjb3JkaW9uLXBhbmVsLWJnLXNwYWNpbmctbGVmdClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NvcmRpb24tcGFuZWwtYmctY29sb3I7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJGFjY29yZGlvbi1wYW5lbC1iZy1kaXZpZGVyLXRvcC1jb2xvciAkYWNjb3JkaW9uLXBhbmVsLWJnLWRpdmlkZXItdG9wLXdpZHRoLCB0cmFuc3BhcmVudCAkYWNjb3JkaW9uLXBhbmVsLWJnLWRpdmlkZXItdG9wLXdpZHRoKTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICRhY2NvcmRpb24tdGhlbWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcnktZ2V0KFwicGFuZWwtYmFja2dyb3VuZFwiKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtYWNjb3JkaW9uX19jb250ZW50IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbMjJdICovXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIFs5XSAqL1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tYWNjb3JkaW9uLW92ZXJmbG93LW9mZnNldCkgKiAtMSk7IC8qIFsyMF0gKi9cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1hY2NvcmRpb24tb3ZlcmZsb3ctb2Zmc2V0KSAqIC0xKTsgLyogWzIwXSAqL1xuICAgICAgICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1hY2NvcmRpb24tb3ZlcmZsb3ctb2Zmc2V0KSAqIC0xKTsgLyogWzIwXSAqL1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigtLWFjY29yZGlvbi1wYW5lbC1wYWRkaW5nLXJpZ2h0LCAwcHgpICsgdmFyKC0tYWNjb3JkaW9uLW92ZXJmbG93LW9mZnNldCkpOyAvKiBbMjBdICovXG4gICAgICAgIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1hY2NvcmRpb24tcGFuZWwtcGFkZGluZy1sZWZ0LCAwcHgpICsgdmFyKC0tYWNjb3JkaW9uLW92ZXJmbG93LW9mZnNldCkpOyAvKiBbMjBdICovXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkYWNjb3JkaW9uLWNvbnRlbnQtZm9udC13ZWlnaHQ7XG4gICAgICAgIG9wYWNpdHk6IDA7IC8qIFsyMF0gKi9cbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwczsgLyogWzIwXSAqL1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTsgLyogWzIwXSAqL1xuXG4gICAgICAgICN7JGFjY29yZGlvbi1wYW5lbC1zdGF0ZS1leHBhbmRlZH0gJiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxOyAvKiBbMjBdICovXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBub25lOyAvKiBbMjBdICovXG4gICAgICAgIH1cblxuICAgICAgICAjeyRhY2NvcmRpb24tcGFuZWwtc3RhdGUtZXhwYW5kZWR9I3skYWNjb3JkaW9uLXBhbmVsLXN0YXRlLWV4cGFuZGVkLXRyYW5zaXRpb24tZW5kfSAmIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlOyAvKiBbOV0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIgeyAvKiBbMTFdICovXG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tYWNjb3JkaW9uLXBhbmVsLXBhZGRpbmctdG9wKSArIHZhcigtLWFjY29yZGlvbi1vdmVyZmxvdy1vZmZzZXQpKTsgLyogWzIwXSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIgeyAvKiBbMTFdICovXG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tYWNjb3JkaW9uLXBhbmVsLXBhZGRpbmctYm90dG9tKSArIHZhcigtLWFjY29yZGlvbi1vdmVyZmxvdy1vZmZzZXQpKTsgLyogWzIwXSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtYWNjb3JkaW9uLS1oZWFkZXItc3BsaXQge1xuXG4gICAgICAgIC5jLWFjY29yZGlvbl9faGVhZGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRhY2NvcmRpb24taGVhZGVyLXNwbGl0LXNwYWNpbmctcmlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRhY2NvcmRpb24taGVhZGVyLXNwbGl0LXNwYWNpbmctbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWFjY29yZGlvbl9fdGl0bGUtbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7IC8qIFsxMl0gKi9cbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IC8qIFsxMl0gKi9cbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgLyogWzEyXSAqL1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IC8qIFsxMl0gKi9cbiAgICAgICAgICAgIHdpZHRoOiAxMDAlOyAvKiBbMTJdICovXG4gICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7IC8qIFsxMl0gKi9cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGFjY29yZGlvbi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgLyogWzEzXSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmMtYWNjb3JkaW9uX190aXRsZS1sYWJlbC10ZXh0IHtcblxuICAgICAgICAgICAgKyAuYy1hY2NvcmRpb25fX3RpdGxlLWxhYmVsLXRleHQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkYWNjb3JkaW9uLWhlYWRlci1zcGxpdC1sYWJlbC1zcGFjaW5nLWJldHdlZW47IC8qIFsxNl0gKi9cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRhY2NvcmRpb24tYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkYWNjb3JkaW9uLWhlYWRlci1zcGxpdC1sYWJlbC1zcGFjaW5nLXZlcnRpY2FsOyAvKiBbMTRdICovXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwOyAvKiBbMTZdICovXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0FDQ09SRElPTiAoU2V0dGluZ3MpXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGFjY29yZGlvbi1iZy1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLXBhbmVsLWJnLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1TVVJGQUNFLVBSSU1BUlkgIWRlZmF1bHQ7XG5cbiRhY2NvcmRpb24tZW5hYmxlLWNzc29ubHktaWNvbjogICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLWljb24tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgIGljb24tc2l6ZSh4c21hbGwpICFkZWZhdWx0O1xuJGFjY29yZGlvbi1pY29uLXNwYWNpbmctdG9wOiAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRhY2NvcmRpb24taWNvbi1zcGFjaW5nLXJpZ2h0OiAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJGFjY29yZGlvbi1pY29uLWNvbGxhcHNlZDogICAgICAgICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1wbHVzKSAhZGVmYXVsdDtcbiRhY2NvcmRpb24taWNvbi1leHBhbmRlZDogICAgICAgICAgICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtbWludXMpICFkZWZhdWx0O1xuJGFjY29yZGlvbi1pY29uLXRyYW5zZm9ybS1jb2xsYXBzZWQ6ICAgICAgICAgICBub25lICFkZWZhdWx0O1xuJGFjY29yZGlvbi1pY29uLXRyYW5zZm9ybS1leHBhbmRlZDogICAgICAgICAgICBub25lICFkZWZhdWx0O1xuXG4kYWNjb3JkaW9uLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CT1JERVIgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLWJvcmRlci10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgIDFweCBzb2xpZCAkYWNjb3JkaW9uLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRhY2NvcmRpb24tYm9yZGVyLWJvdHRvbTogICAgICAgICAgICAgICAgICAgICAgJGFjY29yZGlvbi1ib3JkZXItdG9wICFkZWZhdWx0O1xuXG4kYWNjb3JkaW9uLWhlYWRlci1zcGFjaW5nLXRvcDogICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuXG4kYWNjb3JkaW9uLWhlYWRlci1zcGxpdC1sYWJlbC1zcGFjaW5nLWJldHdlZW46ICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJGFjY29yZGlvbi1oZWFkZXItc3BsaXQtc3BhY2luZy1yaWdodDogICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCArICRhY2NvcmRpb24taWNvbi1zaXplICFkZWZhdWx0O1xuXG4kYWNjb3JkaW9uLXN1YnRpdGxlLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcblxuLy8gUmVzcG9uc2l2ZSBmb250IHNpemUgb3B0LW91dC5cbiRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplOiAoXG4gICAgbnVsbDogbWFwLWdldCgkRlMwLCBudWxsKSxcbikgIWRlZmF1bHQ7XG5cbi8vICRhY2NvcmRpb24tb3ZlcmZsb3ctb2Zmc2V0OiAwICFkZWZhdWx0O1xuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0FDQ09SRElPTlxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRza29kYS1hY2NvcmRpb24tdGl0bGUtY29sb3ItaG92ZXI6ICRDT0xPUi1PTi1TVVJGQUNFLTcwMCAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gRW11bGF0ZSBpbnRlcmFjdGl2ZSBpY29uIHN0YXRlcy4gTWl4aW4gY2FuIG5vdCBiZSB1c2VkIGFzIHRoZSB0cmlnZ2VyXG4gKiAgICAgaXMgbm90IHRoZSBidXR0b24gaXRzZWxmLlxuICovXG4uYy1hY2NvcmRpb24ge1xuXG59XG5cbiAgICAuYy1hY2NvcmRpb25fX3RpdGxlLWljb24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taWNvbi1zdGF0ZXMoXG4gICAgICAgICAgICAkY29udGV4dC1zZWxlY3RvcjogXCIuYy1hY2NvcmRpb25fX2hlYWRlclwiLFxuICAgICAgICAgICAgJGZvY3VzLXR5cGU6ICAgICAgXCJmb2N1cy13aXRoaW5cIixcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAuYy1hY2NvcmRpb25fX2hlYWRlciB7XG5cbiAgICAgICAgJjpob3ZlciB7XG5cbiAgICAgICAgICAgIC5jLWFjY29yZGlvbl9fdGl0bGUtbGFiZWwtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRza29kYS1hY2NvcmRpb24tdGl0bGUtY29sb3ItaG92ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtYWNjb3JkaW9uX19jb250ZW50IHtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgfVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0JSRUFEQ1JVTUJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kYnJlYWRjcnVtYi1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgMCAhZGVmYXVsdDtcbiRicmVhZGNydW1iLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRicmVhZGNydW1iLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAyICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYi1pdGVtLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcblxuJGJyZWFkY3J1bWItbGluay10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgJENPTE9SLUJBU0UgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1saW5rLXRleHQtZGVjb3JhdGlvbjogICAgICAgICBub25lICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItbGluay10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRicmVhZGNydW1iLWxpbmstaG92ZXItdGV4dC1jb2xvcjogICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1saW5rLWN1cnJlbnQtdGV4dC1jb2xvcjogICAgICBudWxsICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItbGluay1jdXJyZW50LXRleHQtZGVjb3JhdGlvbjogbnVsbCAhZGVmYXVsdDtcbiRicmVhZGNydW1iLWxpbmstZm9udC1zaXplOiAgICAgICAgICAgICAgICRGUy0xICFkZWZhdWx0O1xuXG4vLyBEZWZpbmUgdGhlIGljb24gZm9yIHRoZSBicmVhZGNydW1iLiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHNldCB0aGlzIHRvXG4vLyBgZmFsc2VgLiBJbiB0aGF0IGNhc2UsIHRoZSB0ZXh0IG9mIGAkYnJlYWRjcnVtYi1pdGVtLWRlbGltaXRlcmAgaXMgdXNlZCBhc1xuLy8gZGVsaW1pdGVyLiBJbiB0aGlzIGNhc2UsIHVzZSBgJGJyZWFkY3J1bWItaXRlbS1kZWxpbWl0ZXItdGV4dC1zaXplYCBpbnN0ZWFkXG4vLyBvZiBgJGJyZWFkY3J1bWItaXRlbS1kZWxpbWl0ZXItaWNvbi1zaXplYCB0byBzZXQgdGhlIHNpemUuXG4kYnJlYWRjcnVtYi1pdGVtLWRlbGltaXRlci1pY29uOiAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1mb3J3YXJkKSAhZGVmYXVsdDtcblxuLy8gVGhpcyBpcyB0aGUgZGVsaW1pdGVyIHRleHQgd2hpY2ggaXMganVzdCB1c2VkIGlmXG4vLyBgJGJyZWFkY3J1bWItaXRlbS1kZWxpbWl0ZXItaWNvbmAgaXMgc2V0IHRvIGBmYWxzZWAuXG4kYnJlYWRjcnVtYi1pdGVtLWRlbGltaXRlcjogICAgICAgICAgICAgICBcIj5cIiAhZGVmYXVsdDtcbiRicmVhZGNydW1iLWl0ZW0tZGVsaW1pdGVyLWljb24tc2l6ZTogICAgIGljb24tc2l6ZShzbWFsbCkgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1pdGVtLWRlbGltaXRlci1pY29uLWNvbG9yOiAgICAkYnJlYWRjcnVtYi1saW5rLXRleHQtY29sb3IgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1pdGVtLWRlbGltaXRlci1mb250LXNpemU6ICAgICBudWxsICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYi10aGVtZXM6IChcbiAgICBcImFsdGVybmF0aXZlXCI6IChcbiAgICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yXCI6IG51bGwsXG4gICAgICAgIFwiYm9yZGVyXCI6ICAgICAgICAgICBudWxsXG4gICAgKVxuKSAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gUmVzZXQgZGVmYXVsdCBsaXN0IHN0eWxlcy5cbiAqIFsyXSBFYXNpZXIgbWFuYWdlbWVudCBvZiBhbGlnbm1lbnQuXG4gKiBbM10gTGV0IHRoZSBicmVhZGNydW1iIGl0ZW1zIHdyYXAgaW50byBtdWx0aWxpbmUgd2hlbiB0aGV5IGRvbid0IGZpdCBvblxuICogICAgIHNjcmVlbiBhbnltb3JlLlxuICogWzRdIEFsaWduIHRoZSBpdGVtcyBjZW50ZXIgb24gdGhlIHktYXhpcyB0byBlYWNoIG90aGVyLlxuICogWzVdIFZlcnRpY2FsbHkgY2VudGVyIHRoZSBpdGVtIHRleHQgd2l0aCB0aGUgaWNvbi5cbiAqIFs2XSBTZXQgc3BhY2luZyBiZXR3ZWVuIGRlbGltaXRlciBhbmQgZm9sbG93aW5nIGl0ZW1zIHRleHQuXG4gKiBbN10gU2V0IHNwYWNpbmcgYmV0d2VlbiB0ZXh0IGFuZCBkZWxpbWl0ZXIgb2YgdGhlIHNhbWUgYnJlYWRjcnVtYiBpdGVtLlxuICogWzhdIElmIHRoZSBkZWxpbWl0ZXIgaXMgYSBjdXN0b20gdGV4dC5cbiAqIFs5XSBJZiB0aGUgZGVsaW1pdGVyIGlzIGFuIGljb24gb2YgdGhlIGljb24gc2V0LlxuICovXG4uYy1icmVhZGNydW1iIHtcblxuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXG4gICAgICAgIChcInBhZGRpbmctdG9wXCIsICAgICRicmVhZGNydW1iLXBhZGRpbmctdmVydGljYWwpLFxuICAgICAgICAoXCJwYWRkaW5nLWxlZnRcIiwgICAkYnJlYWRjcnVtYi1wYWRkaW5nLWhvcml6b250YWwpLFxuICAgICAgICAoXCJwYWRkaW5nLXJpZ2h0XCIsICAkYnJlYWRjcnVtYi1wYWRkaW5nLWhvcml6b250YWwpLFxuICAgICAgICAoXCJwYWRkaW5nLWJvdHRvbVwiLCAkYnJlYWRjcnVtYi1wYWRkaW5nLXZlcnRpY2FsKVxuICAgICk7XG4gICAgZGlzcGxheTogZmxleDsgLyogWzJdICovXG4gICAgZmxleC13cmFwOiB3cmFwOyAvKiBbM10gKi9cbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiBbNF0gKi9cbiAgICBtYXJnaW46IDA7IC8qIFsxXSAqL1xuICAgIGJvcmRlcjogJGJyZWFkY3J1bWItYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6ICRicmVhZGNydW1iLWJvcmRlci1yYWRpdXM7XG4gICAgZm9udC13ZWlnaHQ6ICRicmVhZGNydW1iLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkYnJlYWRjcnVtYi1saW5lLWhlaWdodDtcbiAgICBsaXN0LXN0eWxlOiBub25lOyAvKiBbMV0gKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJlYWRjcnVtYi1iYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGluY2x1ZGUgdmFyeSgkbG9vcDogJGJyZWFkY3J1bWItdGhlbWVzKSB7XG4gICAgICAgIGJvcmRlcjogdmFyeS1nZXQoXCJib3JkZXJcIik7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcnktZ2V0KFwiYmFja2dyb3VuZC1jb2xvclwiKTtcbiAgICB9XG59XG5cbiAgICAuYy1icmVhZGNydW1iX19pdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDsgLyogWzVdICovXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIFs1XSAqL1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbMV0gKi9cblxuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkYnJlYWRjcnVtYi1pdGVtLXNwYWNpbmc7IC8qIFs2XSAqL1xuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRicmVhZGNydW1iLWl0ZW0tc3BhY2luZzsgLyogWzddICovXG4gICAgICAgICAgICAgICAgY29sb3I6ICRicmVhZGNydW1iLWl0ZW0tZGVsaW1pdGVyLWljb24tY29sb3I7XG5cbiAgICAgICAgICAgICAgICBAaWYgKCRicmVhZGNydW1iLWl0ZW0tZGVsaW1pdGVyLWljb24gPT0gZmFsc2UpIHsgLyogWzhdICovXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogJGJyZWFkY3J1bWItaXRlbS1kZWxpbWl0ZXItZm9udC1zaXplLFxuICAgICAgICAgICAgICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgJGFjY2VwdC1udWxsOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICRicmVhZGNydW1iLWl0ZW0tZGVsaW1pdGVyO1xuICAgICAgICAgICAgICAgIH0gQGVsc2UgeyAvKiBbOV0gKi9cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkYnJlYWRjcnVtYi1pdGVtLWRlbGltaXRlci1pY29uLXNpemUsXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6IDFcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCRsaW5lLWhlaWdodDogbnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICRicmVhZGNydW1iLWl0ZW0tZGVsaW1pdGVyLWljb247XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtYnJlYWRjcnVtYl9fbGluayB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCRicmVhZGNydW1iLWxpbmstZm9udC1zaXplKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYnJlYWRjcnVtYi1saW5rLXRleHQtZGVjb3JhdGlvbjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRicmVhZGNydW1iLWxpbmstdGV4dC10cmFuc2Zvcm07XG4gICAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYi1saW5rLXRleHQtY29sb3I7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWItbGluay1ob3Zlci10ZXh0LWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1jdXJyZW50IHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGJyZWFkY3J1bWItbGluay1jdXJyZW50LXRleHQtZGVjb3JhdGlvbjtcbiAgICAgICAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYi1saW5rLWN1cnJlbnQtdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtZGlzYWJsZWQge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgIH1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNCUkVBRENSVU1CIChTZXR0aW5ncylcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kYnJlYWRjcnVtYi1saW5rLXRleHQtY29sb3I6ICAgICAgICAgJENPTE9SLU9OLVNVUkZBQ0UtNTAwICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItbGluay1mb250LXNpemU6ICAgICAgICAgICRGUzAgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1mb250LXdlaWdodDogICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1SRUdVTEFSICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItbGluay1ob3Zlci10ZXh0LWNvbG9yOiAgICRDT0xPUi1PTi1TVVJGQUNFLTkwMCAhZGVmYXVsdDtcbiRicmVhZGNydW1iLWl0ZW0tZGVsaW1pdGVyLWljb246ICAgICBmYWxzZSAhZGVmYXVsdDtcbiRicmVhZGNydW1iLWl0ZW0tZGVsaW1pdGVyOiAgICAgICAgICBcIi9cIiAhZGVmYXVsdDtcbiRicmVhZGNydW1iLWxpbmstY3VycmVudC10ZXh0LWNvbG9yOiAkQ09MT1ItT04tU1VSRkFDRS05MDAgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1pdGVtLXNwYWNpbmc6ICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZPT1ROT1RFU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRmb290bm90ZXMtZm9udC1zaXplOiAgICAgICAgICAgICAgICRGUy0yICFkZWZhdWx0O1xuJGZvb3Rub3Rlcy1mb250LXdlaWdodDogICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRmb290bm90ZXMtZm9udC1jb2xvcjogICAgICAgICAgICAgICRDT0xPUi1CQVNFICFkZWZhdWx0O1xuJGZvb3Rub3Rlcy1zcGFjaW5nLWJvdHRvbTogICAgICAgICAgMCAhZGVmYXVsdDtcbiRmb290bm90ZXMtYnVsbGV0LXN5bWJvbC1mb250LXNpemU6IDAuOGVtICFkZWZhdWx0O1xuJGZvb3Rub3Rlcy1idWxsZXQtbnVtYmVyLWZvbnQtc2l6ZTogMC44ZW0gIWRlZmF1bHQ7XG4kZm9vdG5vdGVzLWJ1bGxldC1zcGFjaW5nOiAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRmb290bm90ZXMtZGVmYXVsdC1idWxsZXQ6ICAgICAgICAgIFwiKlwiICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBEZWZpbmUgKiBhcyBkZWZhdWx0IGNvbnRlbnQuXG4gKiBbMl0gU2hvdyBpbmRleCBpbnN0ZWFkIG9mIGNoYXJhY3Rlci5cbiAqIFszXSBTaG93IGRhdGEtYnVsbGV0IGluc3RlYWQgb2YgZGVmYXVsdCBjaGFyYWN0ZXIsIGlmIGF0dHJpYnV0ZVxuICogICAgIGRhdGEtZm9vdG5vdGUtYnVsbGV0IGlzIGdpdmVuLlxuICogWzRdIE92ZXJ3cml0ZSBkZWZhdWx0IGA8bGk+YCBtYXJnaW4uXG4gKi9cbi5jLWZvb3Rub3RlcyB7XG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoJGZvb3Rub3Rlcy1mb250LXNpemUpO1xuICAgIEBpbmNsdWRlIGxpc3QtYmFyZSgpO1xuICAgIHBhZGRpbmctbGVmdDogJGZvb3Rub3Rlcy1idWxsZXQtc3BhY2luZztcbiAgICBjb3VudGVyLXJlc2V0OiBmb290bm90ZXMtcmFpc2VkLWNvdW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6ICRmb290bm90ZXMtZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRmb290bm90ZXMtZm9udC1jb2xvcjtcbn1cblxuICAgIC5jLWZvb3Rub3Rlc19faXRlbSxcbiAgICAuYy1mb290bm90ZXMgbGkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRmb290bm90ZXMtc3BhY2luZy1ib3R0b207IC8qIFs0XSAqL1xuXG4gICAgICAgICY6OmJlZm9yZSB7IC8qIFsxXSAqL1xuICAgICAgICAgICAgY29udGVudDogJGZvb3Rub3Rlcy1kZWZhdWx0LWJ1bGxldDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IC0oJGZvb3Rub3Rlcy1idWxsZXQtc3BhY2luZyk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb290bm90ZXMtYnVsbGV0LXN5bWJvbC1mb250LXNpemU7XG4gICAgICAgIH1cblxuICAgIH1cblxub2wuYy1mb290bm90ZXMsXG4uYy1mb290bm90ZXMtLW51bWJlcmVkIHsgLyogWzJdICovXG5cbiAgICAuYy1mb290bm90ZXNfX2l0ZW0sXG4gICAgPiBsaSB7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IGNvdW50ZXIoZm9vdG5vdGVzLXJhaXNlZC1jb3VudGVyKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvb3Rub3Rlcy1idWxsZXQtbnVtYmVyLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBmb290bm90ZXMtcmFpc2VkLWNvdW50ZXI7XG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG51bC5jLWZvb3Rub3RlcyB7IC8qIFszXSAqL1xuXG4gICAgLmMtZm9vdG5vdGVzX19pdGVtW2RhdGEtZm9vdG5vdGUtYnVsbGV0XSxcbiAgICA+IGxpW2RhdGEtZm9vdG5vdGUtYnVsbGV0XSB7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1mb290bm90ZS1idWxsZXQpO1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNUQUJMRVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vLyBCcmVha3BvaW50c1xuJHRhYmxlLWhvcml6b250YWwtc2Nyb2xsLWJyZWFrcG9pbnQ6ICAgICAgICAgICAgIG0gIWRlZmF1bHQ7XG4kdGFibGUtbWluLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwLWdldCgkQlJFQUtQT0lOVFMsIFwic1wiKSAhZGVmYXVsdDsgLy8gQFRPRE8gY2hlY2sgbXVsdGlicmFuZCBicmVha3BvaW50IGJlaGF2aW91ciBCUk9OLTQ5OTlcblxuLy8gVGFibGVcbiR0YWJsZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLyBTcGFjaW5ncyBhbmQgQm9yZGVyc1xuJHRhYmxlLWNvbHVtbi1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kdGFibGUtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMXB4ICFkZWZhdWx0O1xuJHRhYmxlLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFICFkZWZhdWx0O1xuJHRhYmxlLWJvcmRlci1ib3R0b20tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFICFkZWZhdWx0O1xuJHRhYmxlLWJvcmRlci12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgICAgICR0YWJsZS1ib3JkZXItd2lkdGggc29saWQgJHRhYmxlLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiR0YWJsZS1zcGFjaW5nLWJvdHRvbTogICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiR0YWJsZS1zcGFjaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICAgICAwICFkZWZhdWx0O1xuJHRhYmxlLXNwYWNpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuXG4vLyBUYWJsZSBoZWFkXG4kdGFibGUtdGhlYWQtYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR0YWJsZS10aGVhZC1ib3JkZXItdG9wLXdpZHRoOiAgICAgICAgICAgICAgICAgICAwICFkZWZhdWx0O1xuJHRhYmxlLXRoZWFkLWJvcmRlci10b3AtY29sb3I6ICAgICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFICFkZWZhdWx0O1xuJHRhYmxlLXRoZWFkLWJvcmRlci1ib3R0b20td2lkdGg6ICAgICAgICAgICAgICAgICR0YWJsZS10aGVhZC1ib3JkZXItdG9wLXdpZHRoICFkZWZhdWx0O1xuJHRhYmxlLXRoZWFkLWJvcmRlci1ib3R0b20tY29sb3I6ICAgICAgICAgICAgICAgICR0YWJsZS10aGVhZC1ib3JkZXItdG9wLWNvbG9yICFkZWZhdWx0O1xuJHRhYmxlLXRoZWFkLWJvcmRlci10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgICR0YWJsZS10aGVhZC1ib3JkZXItdG9wLXdpZHRoIHNvbGlkICR0YWJsZS10aGVhZC1ib3JkZXItdG9wLWNvbG9yICFkZWZhdWx0O1xuJHRhYmxlLXRoZWFkLWJvcmRlci1ib3R0b206ICAgICAgICAgICAgICAgICAgICAgICR0YWJsZS10aGVhZC1ib3JkZXItYm90dG9tLXdpZHRoIHNvbGlkICR0YWJsZS10aGVhZC1ib3JkZXItYm90dG9tLWNvbG9yICFkZWZhdWx0O1xuJHRhYmxlLXRoZWFkLWFsaWdubWVudC12ZXJ0aWNhbDogICAgICAgICAgICAgICAgIG1pZGRsZSAhZGVmYXVsdDtcbiR0YWJsZS10aGVhZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQkxBQ0sgIWRlZmF1bHQ7XG4kdGFibGUtdGhlYWQtdGgtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xEICFkZWZhdWx0O1xuJHRhYmxlLXRoZWFkLXRoLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbi8vIFRhYmxlIGhlYWRpbmdzXG4kdGFibGUtdGgtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xEICFkZWZhdWx0O1xuXG4vLyBUYWJsZSBjZWxsc1xuJHRhYmxlLWNlbGwtbmFycm93LWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJHRhYmxlLWNlbGwtZGVmYXVsdC1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULUxBUkdFICFkZWZhdWx0O1xuJHRhYmxlLWNlbGwtbGFyZ2UtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhMQVJHRSAhZGVmYXVsdDtcbiR0YWJsZS1jZWxsLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAxLjIgIWRlZmF1bHQ7XG4kdGFibGUtY2VsbC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJHRhYmxlLWNlbGwtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJHRhYmxlLWNlbGwtcGFkZGluZy1zbWFsbDogICAgICAgICAgICAgICAgICAgICAgIGNlaWwoJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICogMC41KSAhZGVmYXVsdDtcbiR0YWJsZS1jZWxsLXBhZGRpbmctbGFyZ2U6ICAgICAgICAgICAgICAgICAgICAgICAxMHB4ICFkZWZhdWx0OyAvLyBAVE9ETyBhZGQgZ2xvYmFsIHZhcmlhYmxlIEJST04tNDk5OVxuJHRhYmxlLWNlbGwtYWxpZ25tZW50LXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgIG1pZGRsZSAhZGVmYXVsdDtcbiR0YWJsZS1jZWxsLWFsaWdubWVudC1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICBsZWZ0ICFkZWZhdWx0O1xuJHRhYmxlLWNlbGwtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1TSVpFICFkZWZhdWx0O1xuJHRhYmxlLWNlbGwtZm9udC1zaXplLXNtYWxsOiAgICAgICAgICAgICAgICAgICAgIGNlaWwoJEdMT0JBTC1GT05ULVNJWkUgKiAwLjgpICFkZWZhdWx0O1xuJHRhYmxlLWNlbGwtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kdGFibGUtY2VsbC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRhYmxlLWJvcmRlci13aWR0aCBzb2xpZCAkdGFibGUtYm9yZGVyLWJvdHRvbS1jb2xvciAhZGVmYXVsdDtcbiR0YWJsZS1jZWxsLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQkxBQ0sgIWRlZmF1bHQ7XG4kdGFibGUtY2VsbC10cmFuc2l0aW9uLXByb3BlcnRpZXM6ICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciwgY29sb3IsIG9wYWNpdHkgIWRlZmF1bHQ7XG5cbi8vIFRhYmxlIGZvb3RlclxuJHRhYmxlLXRmb290LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCAhZGVmYXVsdDtcblxuLy8gSWNvbnNcblxuLy8gSW5jbHVkZSBvciBleGNsdWRlIGAuYy1pbmZvLWljb25gICh0cnVlOiBpbmNsdWRlLCBmYWxzZTogZXhjbHVkZSlcbiR0YWJsZS1pbmZvLWljb24tY29sb3Itb3ZlcndyaXRlOiAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcblxuJHRhYmxlLWljb24tc2VsZWN0b3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCR0YWJsZS1pbmZvLWljb24tY29sb3Itb3ZlcndyaXRlLCBcIi5jLWljb25cIiwgXCIuYy1pY29uOm5vdCguYy1pbmZvLWljb24pXCIpICFkZWZhdWx0O1xuJHRhYmxlLWljb24tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24tc2l6ZShzbWFsbCkgIWRlZmF1bHQ7XG4kdGFibGUtaWNvbi1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJHRhYmxlLXRoZWFkLWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiR0YWJsZS1jZWxsLWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHRhYmxlLXNvcnQtaWNvbi1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24tc2l6ZShzbWFsbCkgIWRlZmF1bHQ7XG4kdGFibGUtc29ydC1pY29uLWFzYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtc29ydC1hc2MpICFkZWZhdWx0O1xuJHRhYmxlLXNvcnQtaWNvbi1kZXNjOiAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLXNvcnQtZGVzYykgIWRlZmF1bHQ7XG5cbi8vIEJ1dHRvbnNcbiR0YWJsZS1idXR0b24tcmVzZXQtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuXG4vLyBUYWJsZSB2YXJpYW50IFplYnJhIFN0eWxlXG4kdGFibGUtZW5hYmxlLWNvbG9yLXNjaGVtZTogICAgICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiR0YWJsZS1jZWxsLWJhY2tncm91bmQtY29sb3Itb2RkOiAgICAgICAgICAgICAgICAkQ09MT1ItUEFMRSAhZGVmYXVsdDtcbiR0YWJsZS1jZWxsLWJhY2tncm91bmQtY29sb3ItZXZlbjogICAgICAgICAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG5cbiR0YWJsZS1yb3ctc3RhdGUtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAkdGFibGUtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJHRhYmxlLXJvdy1zdGF0ZS1ib3JkZXItc3R5bGU6ICAgICAgICAgICAgICAgICAgIHNvbGlkICFkZWZhdWx0O1xuJHRhYmxlLXJvdy1zdGF0ZS1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDb2xvciAhZGVmYXVsdDtcblxuLy8gUmVzcG9uc2l2ZSB0YWJsZSB2YXJpYW50XG4kdGFibGUtcmVzcG9uc2l2ZS1icmVha3BvaW50OiAgICAgICAgICAgICAgICAgICAgcyAhZGVmYXVsdDtcblxuJHRhYmxlLXJlc3BvbnNpdmUtdHItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgIDJweCAhZGVmYXVsdDtcbiR0YWJsZS1yZXNwb25zaXZlLXRyLWJvcmRlci1zdHlsZTogICAgICAgICAgICAgICBzb2xpZCAhZGVmYXVsdDtcbiR0YWJsZS1yZXNwb25zaXZlLXRyLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kdGFibGUtcmVzcG9uc2l2ZS10ci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgJHRhYmxlLXJlc3BvbnNpdmUtdHItYm9yZGVyLXdpZHRoICR0YWJsZS1yZXNwb25zaXZlLXRyLWJvcmRlci1zdHlsZSAkdGFibGUtcmVzcG9uc2l2ZS10ci1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kdGFibGUtcmVzcG9uc2l2ZS10ci1tYXJnaW4tdmVydGljYWw6ICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kdGFibGUtcmVzcG9uc2l2ZS10ci1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG5cbiR0YWJsZS1yZXNwb25zaXZlLXJvd2hlYWRlci1mb250LXdlaWdodDogICAgICAgICAkdGFibGUtdGgtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kdGFibGUtcmVzcG9uc2l2ZS1yb3doZWFkZXItY29sb3I6ICAgICAgICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJHRhYmxlLXJlc3BvbnNpdmUtcm93aGVhZGVyLXBhZGRpbmctYm90dG9tOiAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuXG4kdGFibGUtcmVzcG9uc2l2ZS1jb2x1bW4tZ2FwOiAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG5cbiR0YWJsZS1yZXNwb25zaXZlLWNvbHVtbmhlYWRlci1mb250LXdlaWdodDogICAgICAkdGFibGUtdGhlYWQtdGgtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kdGFibGUtcmVzcG9uc2l2ZS1jb2x1bW5oZWFkZXItY29sb3I6ICAgICAgICAgICAgJHRhYmxlLXRoZWFkLWNvbG9yICFkZWZhdWx0O1xuJHRhYmxlLXJlc3BvbnNpdmUtY29sdW1uaGVhZGVyLWJhY2tncm91bmQtY29sb3I6ICR0YWJsZS10aGVhZC1iYWNrZ3JvdW5kLWNvbG9yICFkZWZhdWx0O1xuXG4kdGFibGUtcmVzcG9uc2l2ZS1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcblxuJHRhYmxlLXJlc3BvbnNpdmUtY2VsbC1ib3JkZXItaGlkZS1sYXN0OiAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG5cbiR0YWJsZS1pbmFjdGl2ZS1sYXllci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkQ09MT1ItSU5BQ1RJVkUtTEFZRVItQ09MT1IgIWRlZmF1bHQ7XG4kdGFibGUtaW5hY3RpdmUtbGF5ZXItb3BhY2l0eTogICAgICAgICAgICAgICAgICAgJENPTE9SLUlOQUNUSVZFLUxBWUVSLU9QQUNJVFkgIWRlZmF1bHQ7XG4kdGFibGUtaW5hY3RpdmUtbGF5ZXItcmVzZXQtc3R5bGVzOiAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFRhYmxlIGNlbGwgc3RhdGVzXG5cbi8vLyBTZWxlY3RvciBNYXAgZm9yIHN0YXRlc1xuLy8vXG4vLy8ga2V5OiBcIkNhdGVnb3J5XCIgKGtlZXAgaW4gc3luYyB3aXRoIHN0YXRlIG1hcHMpXG4vLy8gdmFsdWU6IENTUyBTZWxlY3RvclxuLy8vXG4vLy8gQHR5cGUgTWFwXG4kdGFibGUtc3RhdGUtc2VsZWN0b3JzOiAoXG4gICAgXCJob3ZlclwiOiAgICAgICAgICAgICAgICAgIFwiOmhvdmVyXCIsXG4gICAgXCJzZWxlY3RlZFwiOiAgICAgICAgICAgICAgIFwiLmlzLXNlbGVjdGVkXCIsXG4gICAgXCJzZWxlY3RlZC1ob3ZlclwiOiAgICAgICAgIFwiLmlzLXNlbGVjdGVkOmhvdmVyXCIsXG4gICAgXCJzdWNjZXNzXCI6ICAgICAgICAgICAgICAgIFwiLmlzLXN1Y2Nlc3NcIixcbiAgICBcInN1Y2Nlc3Mtc2VsZWN0ZWRcIjogICAgICAgXCIuaXMtc3VjY2Vzcy5pcy1zZWxlY3RlZFwiLFxuICAgIFwic3VjY2Vzcy1zZWxlY3RlZC1ob3ZlclwiOiBcIi5pcy1zdWNjZXNzLmlzLXNlbGVjdGVkOmhvdmVyXCIsXG4gICAgXCJzdWNjZXNzLWhvdmVyXCI6ICAgICAgICAgIFwiLmlzLXN1Y2Nlc3M6aG92ZXJcIixcbiAgICBcImVycm9yXCI6ICAgICAgICAgICAgICAgICAgXCIuaXMtZXJyb3JcIixcbiAgICBcImVycm9yLXNlbGVjdGVkXCI6ICAgICAgICAgXCIuaXMtZXJyb3IuaXMtc2VsZWN0ZWRcIixcbiAgICBcImVycm9yLXNlbGVjdGVkLWhvdmVyXCI6ICAgXCIuaXMtZXJyb3IuaXMtc2VsZWN0ZWQ6aG92ZXJcIixcbiAgICBcImVycm9yLWhvdmVyXCI6ICAgICAgICAgICAgXCIuaXMtZXJyb3I6aG92ZXJcIixcbiAgICBcImRpc2FibGVkXCI6ICAgICAgICAgICAgICAgXCIuaXMtZGlzYWJsZWQsIFthcmlhLWRpc2FibGVkPSd0cnVlJ11cIixcbiAgICBcImRpc2FibGVkLXNlbGVjdGVkXCI6ICAgICAgXCIuaXMtZGlzYWJsZWQuaXMtc2VsZWN0ZWQsIFthcmlhLWRpc2FibGVkPSd0cnVlJ10uaXMtc2VsZWN0ZWRcIixcbikgIWRlZmF1bHQ7XG5cbiR0YWJsZS1yb3ctc3RhdGVzLW92ZXJ3cml0ZXM6ICgpICFkZWZhdWx0O1xuXG4vLy8gKE5lc3RlZCkgU3RhdGUgTWFwIGZvciBjZWxsc1xuLy8vXG4vLy8ga2V5OiBcIkNhdGVnb3J5XCIgKGtlZXAgaW4gc3luYyB3aXRoIGAkdGFibGUtc3RhdGUtc2VsZWN0b3JzYClcbi8vLyB2YWx1ZTogbmVzdGVkIG1hcFxuLy8vICAgICAgICAga2V5OiBwcm9wZXJ0eVxuLy8vICAgICAgICAgdmFsdWU6IHZhbHVlXG4vLy9cbi8vLyAgICAgICAgIGRlY2xhcmF0aW9uIG5vdCBnZW5lcmF0ZWQgaWYgc2V0IHRvIGBudWxsYFxuLy8vXG4vLy8gQHR5cGUgTWFwXG4kdGFibGUtcm93LXN0YXRlczogKFxuICAgIFwiaG92ZXJcIjogKFxuICAgICAgICBcImNvbG9yXCI6ICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBcImJhY2tncm91bmQtY29sb3JcIjogICAkQ09MT1ItUk9XLUhPVkVSLFxuICAgICksXG4gICAgXCJzZWxlY3RlZFwiOiAoXG4gICAgICAgIFwiY29sb3JcIjogICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIFwiYmFja2dyb3VuZC1jb2xvclwiOiAgICRDT0xPUi1ST1ctU0VMRUNURUQsXG4gICAgICAgIC8vIFwiYm9yZGVyLXdpZHRoXCI6ICAgICR0YWJsZS1yb3ctc3RhdGUtYm9yZGVyLXdpZHRoLFxuICAgICAgICBcImJvcmRlci1zdHlsZVwiOiAgICAgICAkdGFibGUtcm93LXN0YXRlLWJvcmRlci1zdHlsZSxcbiAgICAgICAgXCJib3JkZXItY29sb3JcIjogICAgICAgJHRhYmxlLXJvdy1zdGF0ZS1ib3JkZXItY29sb3IsXG4gICAgKSxcbiAgICBcInNlbGVjdGVkLWhvdmVyXCI6IChcbiAgICAgICAgXCJjb2xvclwiOiAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yXCI6ICAgJENPTE9SLVJPVy1IT1ZFUixcbiAgICApLFxuICAgIFwic3VjY2Vzc1wiOiAoXG4gICAgICAgIFwiY29sb3JcIjogICAgICAgICAgICAgICRDT0xPUi1TVUNDRVNTLFxuICAgICAgICBcImJhY2tncm91bmQtY29sb3JcIjogICBudWxsLFxuICAgICAgICBcImJvcmRlci13aWR0aFwiOiAgICAgICAkdGFibGUtcm93LXN0YXRlLWJvcmRlci13aWR0aCxcbiAgICAgICAgXCJib3JkZXItY29sb3JcIjogICAgICAgJHRhYmxlLXJvdy1zdGF0ZS1ib3JkZXItY29sb3IsXG4gICAgICAgIFwiaWNvbi1jb2xvclwiOiAgICAgICAgICRDT0xPUi1TVUNDRVNTLFxuICAgICksXG4gICAgXCJzdWNjZXNzLWhvdmVyXCI6IChcbiAgICAgICAgXCJjb2xvclwiOiAgICAgICAgICAgICAgJENPTE9SLVNVQ0NFU1MsXG4gICAgICAgIFwiYmFja2dyb3VuZC1jb2xvclwiOiAgIG51bGwsXG4gICAgKSxcbiAgICBcInN1Y2Nlc3Mtc2VsZWN0ZWRcIjogKFxuICAgICAgICBcImNvbG9yXCI6ICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBcImJhY2tncm91bmQtY29sb3JcIjogICBudWxsLFxuICAgICksXG4gICAgLy8gTm90IHNldCBieSBkZWZhdWx0LCBidXQgY2FuIGJlIG92ZXJ3cml0dGVuIHBlciBicmFuZC5cbiAgICBcInN1Y2Nlc3Mtc2VsZWN0ZWQtaG92ZXJcIjogKCksXG4gICAgXCJlcnJvclwiOiAoXG4gICAgICAgIFwiY29sb3JcIjogICAgICAgICAgICAgICRDT0xPUi1BTEVSVCxcbiAgICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yXCI6ICAgbnVsbCxcbiAgICAgICAgXCJib3JkZXItd2lkdGhcIjogICAgICAgJHRhYmxlLXJvdy1zdGF0ZS1ib3JkZXItd2lkdGgsXG4gICAgICAgIFwiYm9yZGVyLWNvbG9yXCI6ICAgICAgICR0YWJsZS1yb3ctc3RhdGUtYm9yZGVyLWNvbG9yLFxuICAgICAgICBcImljb24tY29sb3JcIjogICAgICAgICAkQ09MT1ItQUxFUlQsXG4gICAgKSxcbiAgICBcImVycm9yLWhvdmVyXCI6IChcbiAgICAgICAgXCJjb2xvclwiOiAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yXCI6ICAgbnVsbCxcbiAgICApLFxuICAgIFwiZXJyb3Itc2VsZWN0ZWRcIjogKFxuICAgICAgICBcImNvbG9yXCI6ICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBcImJhY2tncm91bmQtY29sb3JcIjogICBudWxsLFxuICAgICksXG4gICAgLy8gTm90IHNldCBieSBkZWZhdWx0LCBidXQgY2FuIGJlIG92ZXJ3cml0dGVuIHBlciBicmFuZC5cbiAgICBcImVycm9yLXNlbGVjdGVkLWhvdmVyXCI6ICAgKCksXG4gICAgLy8gRGlzYWJsZWQ6IGhhbmRsZWQgdmlhIG92ZXJsYXlcbiAgICBcImRpc2FibGVkXCI6IChcbiAgICAgICAgXCJjb2xvclwiOiAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yXCI6ICAgbnVsbCxcbiAgICAgICAgXCJib3JkZXItd2lkdGhcIjogICAgICAgJHRhYmxlLWJvcmRlci13aWR0aCxcbiAgICAgICAgXCJib3JkZXItY29sb3JcIjogICAgICAgJHRhYmxlLWJvcmRlci1jb2xvcixcbiAgICApLFxuICAgIFwiZGlzYWJsZWQtc2VsZWN0ZWRcIjogKFxuICAgICAgICBcImNvbG9yXCI6ICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBcImJhY2tncm91bmQtY29sb3JcIjogICBudWxsLFxuICAgICAgICBcImJvcmRlci13aWR0aFwiOiAgICAgICAkdGFibGUtYm9yZGVyLXdpZHRoLFxuICAgICAgICBcImJvcmRlci1jb2xvclwiOiAgICAgICAkdGFibGUtYm9yZGVyLWNvbG9yLFxuICAgICksXG4pICFkZWZhdWx0O1xuXG4kdGFibGUtY2VsbC1zdGF0ZXMtb3ZlcndyaXRlczogKCkgIWRlZmF1bHQ7XG5cbiR0YWJsZS1jZWxsLXN0YXRlczogKFxuICAgIFwic3VjY2Vzc1wiOiAgbWFwLWdldCgkdGFibGUtcm93LXN0YXRlcywgXCJzdWNjZXNzXCIpLFxuICAgIFwiZXJyb3JcIjogICAgbWFwLWdldCgkdGFibGUtcm93LXN0YXRlcywgXCJlcnJvclwiKSxcbiAgICBcImRpc2FibGVkXCI6IG1hcC1nZXQoJHRhYmxlLXJvdy1zdGF0ZXMsIFwiZGlzYWJsZWRcIiksXG4pICFkZWZhdWx0O1xuXG4kdGFibGUtcm93LWNlbGwtc3RhdGVzLW92ZXJ3cml0ZXM6ICgpICFkZWZhdWx0O1xuXG4kdGFibGUtcm93LWNlbGwtc3RhdGVzOiAoXG4gICAgXCJob3ZlclwiOiAoXG4gICAgICAgIFwic3VjY2Vzc1wiOiAgbWFwLWdldCgkdGFibGUtcm93LXN0YXRlcywgXCJzdWNjZXNzLWhvdmVyXCIpLFxuICAgICAgICBcImVycm9yXCI6ICAgIG1hcC1nZXQoJHRhYmxlLXJvdy1zdGF0ZXMsIFwiZXJyb3ItaG92ZXJcIiksXG4gICAgKSxcbiAgICBcInNlbGVjdGVkXCI6IChcbiAgICAgICAgXCJzdWNjZXNzXCI6ICBtYXAtZ2V0KCR0YWJsZS1yb3ctc3RhdGVzLCBcInN1Y2Nlc3Mtc2VsZWN0ZWRcIiksXG4gICAgICAgIFwiZXJyb3JcIjogICAgbWFwLWdldCgkdGFibGUtcm93LXN0YXRlcywgXCJlcnJvci1zZWxlY3RlZFwiKSxcbiAgICAgICAgXCJkaXNhYmxlZFwiOiBtYXAtZ2V0KCR0YWJsZS1yb3ctc3RhdGVzLCBcImRpc2FibGVkLXNlbGVjdGVkXCIpLFxuICAgICksXG4pICFkZWZhdWx0O1xuXG4vLyBNZXJnZSBkZWZhdWx0IGFuZCBvdmVyd3JpdGUgc2V0dGluZ3MgdG8gYXZvaWQgZHVwbGljYXRpb25zXG4vLyBhbmQgb3ZlcndyaXRlIG9ubHkgbmVjZXNzYXJ5IHNldHRpbmdzLlxuJHRhYmxlLXJvdy1zdGF0ZXMtbWVyZ2VkOiAgICAgICAgICAgICAgICAgbWFwLWRlZXAtbWVyZ2UoJHRhYmxlLXJvdy1zdGF0ZXMsICR0YWJsZS1yb3ctc3RhdGVzLW92ZXJ3cml0ZXMsIDIpICFkZWZhdWx0O1xuJHRhYmxlLWNlbGwtc3RhdGVzLW1lcmdlZDogICAgICAgICAgICAgICAgbWFwLWRlZXAtbWVyZ2UoJHRhYmxlLWNlbGwtc3RhdGVzLCAkdGFibGUtY2VsbC1zdGF0ZXMtb3ZlcndyaXRlcywgMikgIWRlZmF1bHQ7XG4kdGFibGUtcm93LWNlbGwtc3RhdGVzLW1lcmdlZDogICAgICAgICAgICBtYXAtZGVlcC1tZXJnZSgkdGFibGUtcm93LWNlbGwtc3RhdGVzLCAkdGFibGUtcm93LWNlbGwtc3RhdGVzLW92ZXJ3cml0ZXMsIDIpICFkZWZhdWx0O1xuXG4vLyBUYWJsZSB2YXJpYW50IEhpZ2hsaWdodCBUYWJsZVxuJHRhYmxlLWJhY2tncm91bmQtY29sb3ItaGlnaGxpZ2h0OiAgICAgICAgJENPTE9SLVBBTEUgIWRlZmF1bHQ7XG4kdGFibGUtYmFja2dyb3VuZC1jb2xvci1oaWdobGlnaHQtYWx0OiAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kdGFibGUtY2VsbC1oaWdobGlnaHQtYm9yZGVyOiAgICAgICAgICAgICAkdGFibGUtY2VsbC1wYWRkaW5nLWhvcml6b250YWwgc29saWQgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJHRhYmxlLWNlbGwtaGlnaGxpZ2h0LWJvcmRlci1hbHQ6ICAgICAgICAgJHRhYmxlLWNlbGwtcGFkZGluZy1ob3Jpem9udGFsIHNvbGlkICRDT0xPUi1QQUxFICFkZWZhdWx0O1xuXG4vLyBUYWJsZSB2YXJpYW50IFN0aWNreSBUYWJsZVxuJHRhYmxlLXN0aWNreS10aGVhZC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgaWYoJHRhYmxlLXRoZWFkLWJhY2tncm91bmQtY29sb3IsICR0YWJsZS10aGVhZC1iYWNrZ3JvdW5kLWNvbG9yLCAkQ09MT1ItQkFTRS1CQUNLR1JPVU5EKSAhZGVmYXVsdDtcbiR0YWJsZS1zdGlja3ktY2VsbC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICRDT0xPUi1CQVNFLUJBQ0tHUk9VTkQgIWRlZmF1bHQ7XG4kdGFibGUtc3RpY2t5LWhhcy1oZWFkLXJvdy1zaGFkb3c6ICAgICAgICB0cnVlICFkZWZhdWx0O1xuJHRhYmxlLXN0aWNreS1oZWFkLXJvdy1zaGFkb3ctb2Zmc2V0OiAgICAgMHB4ICFkZWZhdWx0OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGxlbmd0aC16ZXJvLW5vLXVuaXQgKi9cbiR0YWJsZS1zdGlja3ktaGVhZC1zaGFkb3ctc2l6ZTogICAgICAgICAgIDIwcHggIWRlZmF1bHQ7XG4kdGFibGUtc3RpY2t5LWhhcy1maXJzdC1jb2x1bW4tc2hhZG93OiAgICB0cnVlICFkZWZhdWx0O1xuJHRhYmxlLXN0aWNreS1maXJzdC1jb2x1bW4tc2hhZG93LW9mZnNldDogMHB4ICFkZWZhdWx0OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGxlbmd0aC16ZXJvLW5vLXVuaXQgKi9cbiR0YWJsZS1zdGlja3ktZmlyc3QtY29sdW1uLXNoYWRvdy1zaXplOiAgICR0YWJsZS1zdGlja3ktaGVhZC1zaGFkb3ctc2l6ZSAhZGVmYXVsdDtcbiR0YWJsZS1zdGlja3ktZmlyc3QtY29sdW1uLXBhZGRpbmctbGVmdDogIGZhbHNlICFkZWZhdWx0O1xuJHRhYmxlLXN0aWNreS1zaGFkb3ctZ3JhZGllbnQ6ICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiR0YWJsZS1zdGlja3ktc2hhZG93LWNvbG9yOiAgICAgICAgICAgICAgICRHTE9CQUwtQk9YLVNIQURPVy1DT0xPUiAhZGVmYXVsdDtcbiR0YWJsZS1zdGlja3ktc2hhZG93LW9wYWNpdHk6ICAgICAgICAgICAgIDAuMSAhZGVmYXVsdDtcbiR0YWJsZS1zdGlja3ktc2hhZG93LXRyYW5zaXRpb24tZHVyYXRpb246ICRHTE9CQUwtVFJBTlNJVElPTi1EVVJBVElPTi1NRURJVU0gIWRlZmF1bHQ7XG5cbiR0YWJsZS1zaXplLXZhcmlhbnRzOiAoXG4gICAgXCJuYXJyb3dcIjogKFxuICAgICAgICBcInBhZGRpbmdcIjogICAkdGFibGUtY2VsbC1wYWRkaW5nLXNtYWxsICR0YWJsZS1jZWxsLXBhZGRpbmctaG9yaXpvbnRhbCxcbiAgICAgICAgXCJmb250LXNpemVcIjogJHRhYmxlLWNlbGwtZm9udC1zaXplLXNtYWxsXG4gICAgKSxcbiAgICBcIndpZGVcIjogKFxuICAgICAgICBcInBhZGRpbmdcIjogICAkdGFibGUtY2VsbC1wYWRkaW5nLWxhcmdlICR0YWJsZS1jZWxsLXBhZGRpbmctaG9yaXpvbnRhbCxcbiAgICAgICAgXCJmb250LXNpemVcIjogJHRhYmxlLWNlbGwtZm9udC1zaXplXG4gICAgKVxuKSAhZGVmYXVsdDtcblxuJHRhYmxlLWhpZ2hsaWdodC10aGVtZXM6IChcbiAgICBcImFsdGVybmF0aXZlXCI6IChcbiAgICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yXCI6ICR0YWJsZS1iYWNrZ3JvdW5kLWNvbG9yLWhpZ2hsaWdodC1hbHQsXG4gICAgICAgIFwiYm9yZGVyLXJpZ2h0XCI6ICAgICAkdGFibGUtY2VsbC1oaWdobGlnaHQtYm9yZGVyLWFsdFxuICAgICksXG4pICFkZWZhdWx0O1xuXG4kdGFibGUtc3RpY2t5LXRoZW1lczogKFxuICAgIFwiYWx0ZXJuYXRpdmVcIjogKFxuICAgICAgICBcImJhY2tncm91bmQtY29sb3ItaGVhZFwiOiAgIG1hcC1nZXQoJEJBQ0tHUk9VTkQtVVRJTElUSUVTLCBcImFsdGVybmF0aXZlXCIpLFxuICAgICAgICBcImJhY2tncm91bmQtY29sb3ItY29sdW1uXCI6IG1hcC1nZXQoJEJBQ0tHUk9VTkQtVVRJTElUSUVTLCBcImFsdGVybmF0aXZlXCIpLFxuICAgICksXG4pICFkZWZhdWx0O1xuXG4vKlxuICogWzFdIFVzZSBwc2V1ZG8gZWxlbWVudHMgZm9yIGhvcml6b250YWwgdGFibGUgY2VsbCBib3JkZXJzIChgOjpiZWZvcmVgIGZvciB0aGVcbiAqICAgICB0b3AgYm9yZGVyIGFuZCBgOjphZnRlcmAgZm9yIHRoZSBib3R0b20gYm9yZGVyKSB0byBhbGxvdyB2aXN1YWwgc3BhY2luZ1xuICogICAgIGJldHdlZW4gY29sdW1ucyB3aXRob3V0IHRoZSBzaWRlIGVmZmVjdHMgdGhhdCB5b3UgaGF2ZSB3aXRoXG4gKiAgICAgYGJvcmRlci1zcGFjaW5nYC5cbiAqIFsyXSBUYWJsZXMgYXJlIGFsd2F5cyBmdWxsLXdpZHRoIGJ5IGRlZmF1bHQuXG4gKiBbM10gU2V0IGFsbCBjb2x1bW5zIHRvIGFuIGVxdWFsIHdpZHRoIGZvciB0aGUgZml4ZWQgd2lkdGggdGFibGUgdmFyaWFudC5cbiAqIFs0XSBUbyBtYWtlIHN1cmUgdGhlIHN0eWxpbmcgb2YgZmlyc3Qgcm93IGlzIGNvcnJlY3Qgd2hlbiBub3QgdXNpbmcgYDx0aGVhZD5gXG4gKiAgICAgZWxlbWVudCwgYXMgd2VsbCBhcyB3aGVuIGA8dGhlYWQ+YCBpcyBjb3JyZWN0bHkgdXNlZC5cbiAqIFs1XSBQcm92aWRlIGEgc2ltcGxlIHJlc3BvbnNpdmUgdGFibGUgbWVjaGFuaXNtIGJ5IGp1c3QgZW5hYmxpbmcgaG9yaXpvbnRhbFxuICogICAgIHNjcm9sbGluZyBiZWxvdyBhIHNwZWNpZmljIGJyZWFrcG9pbnQuXG4gKiBbNl0gTGV0IHRoZSBhdXRvLXdpZHRoIHRhYmxlIGJlIHdpZGUvbmFycm93IGFzIGl0IGlzLlxuICogWzddIEF1dG8gdGFibGVzIGFyZSBub3QgZnVsbC13aWR0aC5cbiAqIFs4XSBFbnN1cmUgdGhhdCB0YWJsZSBpcyBjZW50ZXJlZC5cbiAqIFs5XSBFYWNoIGNvbHVtbiBjYW4gYmUgYXMgd2lkZSBhcyB0aGVpciBjb250ZW50LlxuICogWzEwXSBSZW1vdmUgZGVmYXVsdCBzcGFjaW5nIGJvdHRvbS5cbiAqIFsxMV0gTWFrZSBzdXJlIHRvIGFkZCBhIGJvdHRvbSBzcGFjaW5nIGlmIHRoZXJlIGlzIHNvbWUgY29udGVudCBmb2xsb3dpbmdcbiAqICAgICAgdGhlIHRhYmxlLlxuICogWzEyXSBTdHlsZXMgZm9yIHNvcnRhYmxlcyBpbiB0aGUgdGFibGUgaGVhZGVyLlxuICogWzE0XSBLZWVwIGljb24gYW5kIHRleHQgY29tYmluYXRpb24gaW5saW5lIGluIHRoZSBkYXRhIGNvbnRyb2wgdGFibGUuXG4gKiBbMTVdIE92ZXJ3cml0ZSB0aGUgYm9yZGVyIGFuZCBzcGFjaW5nIHNldHRpbmdzIGZvciBidXR0b25zLlxuICogWzE2XSBBcHBseSB0aGUgaGlnaGxpZ2h0IHZhcmlhbnQgc3R5bGUgdG8gY2VydGFpbiBjb2x1bW5zLlxuICogWzE3XSBXcmFwIHRleHQgYW5kIHBvc3NpYmxlIGlubGluZSBlbGVtZW50cyBpbiBgPHNwYW4+YCBiZWNhdXNlIG9mIHBhcmVudCdzXG4gKiAgICAgIGZsZXggc2V0dGluZy4gTGVmdCBlbXB0eSBoZXJlIGZvciBkb2N1bWVudGF0aW9uIGFuZCBwcm9zcGVjdGl2ZSB1c2FnZS5cbiAqIFsxOF0gVGFibGUgbW9kaWZpZXIgZm9yIHdpZGUgYW5kIG5hcnJvdyB2YXJpYW50cy5cbiAqIFsxOV0gQ29sbGFwc2UgY2VsbCBib3JkZXJzIHRvIGVsaW1pbmF0ZSB2aXNpYmxlIHNwYWNlIGJldHdlZW4gY2VsbCBib3JkZXJzLlxuICogWzIwXSBTZXQgb3ZlcmZsb3cgdG8gYHZpc2libGVgIHRvIGFsbG93IHN0aWNreSBwb3NpdGlvbmluZyBpbiB0aGUgZmlyc3RcbiAqICAgICAgcGxhY2UuXG4gKiBbMjFdIENvdmVyIHRoZSBmb2xsb3dpbmcgcm93cyB3aXRoIHRoZSBjZWxscyBvZiB0aGUgaGVhZCByb3cuXG4gKiAgICAgIGB6LWluZGV4YCBzaG91bGQgYmUgbGFyZ2VyIHRoYW4gdGhlIGB6LWluZGV4YCBvZiB0aGUgZGlzYWJsZWQgcm93c1xuICogICAgICBvdmVybGF5IChbNTVdKS5cbiAqIFsyMl0gQ292ZXIgdGhlIGZvbGxvd2luZyBjb2x1bW5zIHdpdGggdGhlIGNlbGxzIG9mIHRoZSBmaXJzdCBjb2x1bW4uXG4gKiBbMjNdIENvdmVyIHRoZSBmb2xsb3dpbmcgY29sdW1ucyB3aXRoIHRoZSBmaXJzdCBgdGhlYWRgIGNlbGwgaWYgdGhlIHRhYmxlIGhhc1xuICogICAgICBzdGlja3kgYSBoZWFkIHJvdyBhbmQgYSBzdGlja3kgZmlyc3QgY29sdW1uLlxuICogWzI0XSBGb3IgemVicmEgc3R5bGUgdGFibGVzIGluaGVyaXQgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHRhYmxlIHJvdy5cbiAqIFsyNV0gRG8gbm90IHJlbmRlciBhIGxlZnQgYm9yZGVyIG9uIGFueSBmaXJzdCBjaGlsZHJlbiBpbiB0aGUgdG9wLW1vc3Qgcm93cy5cbiAqIFsyNl0gRW5hYmxlcyBib3JkZXJzIHN0eWxlcyBmb3IgbWVyZ2VkIGNlbGxzLlxuICogWzI3XSBVbnVzZWQsIGZvciBwcm9zcGVjdGl2ZSBmdXR1cmUgdXNhZ2UgYW5kIGF2b2lkIEJFTSBlcnJvcnMuXG4gKiBbMjhdIEZsZXggaGVscGVyIHRvIGFsaWduIG11bHRpcGxlIGNvbnRlbnQgaW5zaWRlIGEgY2VsbC5cbiAqIFsyOV0gUHJvdmlkZSB0aGUgcmVxdWlyZWQgbWluaW11bSBoZWlnaHQgZm9yIGVhY2ggY2VsbC5cbiAqIFszMF0gQ2VsbCBpY29uIGNvbG9ycyBkaWZmZXIgYWNyb3NzIGJyYW5kcyBpbiBjb2xvciBhbmQgbmVlZCBzY29waW5nIGluXG4gKiAgICAgIGB0aGVhZGAgYW5kIGB0Ym9keWAuXG4gKiBbMzFdIEluY3JlYXNlIHNwZWNpZmljaXR5IGJlY2F1c2Ugb2YgaGlnaCBgLmMtYnV0dG9uYCBzcGVjaWZpY2l0eS5cbiAqIFszMl0gQXNjZW5kaW5nIGFuZCBkZXNjZW5kaW5nIHNvcnQgaWNvbnMuXG4gKiBbMzNdIEluY3JlYXNlIHNwZWNpZmljaXR5IGFuZCBleGNsdWRlIGAuYy1pbmZvLWljb25gIGFuZCBgLmMtYmFkZ2VfX2ljb25gXG4gKiAgICAgIGZyb20gdGFibGUgaWNvbiBzdHlsaW5nLlxuICogWzM0XSBBdm9pZCBib3JkZXJzIGJlaW5nIGN1dG9mZiBpZiB0YWJsZSBnZXRzIHNjcm9sbGFibGUuXG4gKiBbMzVdIERpc2FibGUgYWxsIHBvaW50ZXItZXZlbnRzIHRvIHByZXZlbnQgaG92ZXItc3R5bGVzIGZvciB0YWJsZSBjZWxsIGFuZFxuICogICAgICByb3cgZWxlbWVudHMgb25seS5cbiAqIFszNl0gUmUtZW5hYmxlIGFsbCBwb2ludGVyLWV2ZW50cyBmb3IgYWxsIHRhYmxlIGVsZW1lbnRzIHRoYXQgYXJlIG5vdFxuICogICAgICBhZmZlY3RlZCB2aWEgWzM1XS5cbiAqIFszN10gUmVzcG9uc2l2ZSB2YXJpYW50OiBJbmNyZWFzZSBzcGVjaWZpY2l0eSB0byBiZSBhYmxlIHRvIG92ZXJyaWRlXG4gKiAgICAgIGBtaW4td2lkdGhgIHRoYXQgaXMgYmVpbmcgdXNlZCBmb3IgdGhlIG1vcmUgc2ltcGxlIHJlc3BvbnNpdmUgb3ZlcnNjcm9sbFxuICogICAgICBlZmZlY3QuXG4gKiBbMzhdIFJlc3BvbnNpdmUgdmFyaWFudDogcmVzZXQgYG1pbi13aWR0aGAuXG4gKiBbMzldIFJlc3BvbnNpdmUgdmFyaWFudDogU2V0IGFsbCB0YWJsZSBlbGVtZW50cyB0byBgZGlzcGxheTogYmxvY2tgLiBOb3RlXG4gKiAgICAgIHRoYXQgdGhlIHJvbGVzIG9mIHRoZSBpbmRpdmlkdWFsIGVsZW1lbnRzIG11c3QgYmUgcmVzdG9yZWQgd2l0aFxuICogICAgICBhcmlhLXJvbGVzIGF0dHJpYnV0ZXMgZm9yIGFjY2Vzc2liaWxpdHkgcmVhc29ucy5cbiAqIFs0MF0gUmVzcG9uc2l2ZSB2YXJpYW50OiBIaWRlIGB0aGVhZGAgaW4gYW4gYWNjZXNzaWJsZSB3YXkgc28gdGhhdCB1c2VycyBjYW5cbiAqICAgICAgc3RpbGwgYWNjZXNzIGFsbCBjb250ZW50IGluIGl0IHdpdGggYXNzaXN0aXZlIHRlY2hub2xvZ2llcy5cbiAqIFs0MV0gUmVzcG9uc2l2ZSB2YXJpYW50OiBSZXNldCBzb21lIGB0aGAvYHRkYCBzdHlsZXMuXG4gKiBbNDJdIFJlc3BvbnNpdmUgdmFyaWFudDogSGlkZSBib3R0b20gYm9yZGVyIG9mIHRoZSBsYXN0IGNlbGwgaW4gYSBgdHJgLlxuICogWzQzXSBSZXNwb25zaXZlIHZhcmlhbnQ6IGBbZGF0YS1jb2x1bW5oZWFkZXJdYCBpcyB1c2VkIHRvIHJlcGVhdCB0aGUgY29sdW1uXG4gKiAgICAgIGhlYWRlciBiZWZvcmUgZWFjaCBjZWxsIGFzIHBzZXVkbyBlbGVtZW50LlxuICogWzQ0XSBSZXNwb25zaXZlIHZhcmlhbnQ6IERpc3BsYXkgdGhlIHZhbHVlIG9mIGBbZGF0YS1jb2x1bW5oZWFkZXJdYCBiZWZvcmVcbiAqICAgICAgZWFjaCBjZWxsIGFzIGEgcHNldWRvIGVsZW1lbnQuXG4gKiBbNDVdIFJlc3BvbnNpdmUgdmFyaWFudDogU2V0IHBvc2l0aW9uIHRvIGBzdGF0aWNgIHRvIHJlc2V0IGFic29sdXRlXG4gKiAgICAgIHBvc2l0aW9uaW5nIHRoYXQgaXMgbmVlZGVkIGZvciBob3Jpem9udGFsIGJvcmRlcnMgaW4gbGFyZ2VyIHZpZXdwb3J0cy5cbiAqICAgICAgU2VlIFsxXS5cbiAqIFs0Nl0gUmVzcG9uc2l2ZSB2YXJpYW50OiBFbmFibGUgaHlwaGVuYXRpb24gZm9yIGNvbHVtbiBoZWFkZXJzIGJlZm9yZSBlYWNoXG4gKiAgICAgIGNlbGwsIGFzIHRoZXJlIG9mdGVuIGlzIG5vdCBlbm91Z2ggd2lkdGggZm9yIGxvbmdlciB3b3JkcywgZXNwZWNpYWxseVxuICogICAgICBpbiBzbWFsbCB2aWV3cG9ydHMuXG4gKiBbNDddIFJlc3BvbnNpdmUgdmFyaWFudDogSWYgYSBiYWNrZ3JvdW5kIGNvbG9yIGlzIHNldCBmb3IgdGhlIHJlc3BvbnNpdmVcbiAqICAgICAgY29sdW1uIGhlYWRlciwgdGhlIGhlYWRlciBzaG91bGQgYmUgZGlzcGxheWVkIG92ZXIgdGhlIGVudGlyZSByb3cgaGVpZ2h0LlxuICogWzQ4XSBSZXNwb25zaXZlIHZhcmlhbnQ6IFVzZSBDU1MgZ3JpZCBpbiBtb2Rlcm4gYnJvd3NlcnMgdG8gbGF5b3V0IHRoZVxuICogICAgICBjb2x1bW4gaGVhZGVyIGFuZCBjZWxscyBzaWRlIGJ5IHNpZGUuXG4gKiBbNDldIFJlc3BvbnNpdmUgdmFyaWFudDogRGlzYWJsZSBiYWNrZ3JvdW5kIGNvbG9yIGNoYW5nZSBvbiBob3Zlci5cbiAqIFs1MF0gUmVzcG9uc2l2ZSB2YXJpYW50OiBUbyBtYWtlIHN1cmUgdGhhdCByZWFsbHkgb25seSB0aGUgZmlyc3QgYHRoYCBpbiBhXG4gKiAgICAgIHJvdyBpcyB1c2VkIGFzIHJvdyBoZWFkZXIsIHdlIHVzZSB0aGUgYDpmaXJzdC1jaGlsZGAgcHNldWRvIGNsYXNzLlxuICogWzUxXSBSZXNwb25zaXZlIHZhcmlhbnQ6IEFkZCBzcGFjaW5nIGFuZCBib3JkZXIgYmV0d2VlbiBgdHJgcy5cbiAqIFs1Ml0gSW5oZXJpdCBgY29sb3JgIHNvIHRoYXQgdGhlIGNvbG9yIG9mIHRoZSByb290IGVsZW1lbnQgaXMgbm90IHVzZWQgaW5cbiAqICAgICAgc2NvcGVkIEJyb25zb24gc3R5bGVzLlxuICogWzUzXSBPcHRpb25hbCBoZWlnaHQgZm9yIHRhYmxlIGhlYWQuXG4gKiBbNTRdIE9wdGlvbmFsbHkgYWxsIHN0eWxlcyBmb3IgcHNldWRvIGVsZW1lbnQgY2FuIGJlIHJlc2V0IHZpYSBgYWxsOiB1bnNldGAuXG4gKiBbNTVdIEFkZCBvdmVybGF5IHZpYSBwc2V1ZG8gZWxlbWVudCBmb3IgZGlzYWJsZWQgcm93cyBhbmQgY2VsbHMuXG4gKiBbNTZdIE1ha2Ugc3VyZSB0aGUgb3ZlcmxheSBhbGlnbnMgd2l0aCB0YWJsZSBib3JkZXJzIGFuZCBjb2x1bW4gc3BhY2luZ3MuXG4gKiBbNTddIEFkZCBiYWNrZ3JvdW5kIGNvbG9yIHdpdGggb3BhY2l0eSB2aWEgcHNldWRvIGVsZW1lbnQgZm9yIGRpc2FibGVkXG4gKiAgICAgIHJvd3MgYW5kIGNlbGxzLlxuICogWzU4XSBTcGFjaW5nIHdoZW4gb3ZlcmxheSBpcyB1c2VkIGZvciBgaXMtZGlzYWJsZWRgIG9yIGBbYXJpYS1kaXNhYmxlZF09dHJ1ZWBcbiAqICAgICAgYW5kIGAkdGFibGUtY29sdW1uLXNwYWNpbmdgIGlzIHNldC5cbiAqIFs1OV0gUG9zaXRpb24gdGhlIHN0aWNreSBoZWFkIHJvdyBvciBmaXJzdCBjb2x1bW4gdG8gYC0xcHhgICh0b3AvbGVmdCkgdG9cbiAqICAgICAgcmVjb2duaXplIGl0cyBzdGlja3kgc3RhdGUgdmlhIEludGVyc2VjdGlvbiBPYnNlcnZlci5cbiAqIFs2MF0gR3JhZGllbnRzIHRvIG1ha2UgYSBzdGlja3kgaGVhZCByb3cgb3IgZmlyc3QgY29sdW1uIHN0YW5kIG91dC5cbiAqIFs2MV0gYC5oYXMtc3RpY2t5LWhlYWRgIGlzIHNldCB2aWEgSlMgd2hlbiB0aGUgaGVhZCByb3cgaXMgc3RpY2t5LlxuICogWzYyXSBgLmhhcy1zdGlja3ktY29sdW1uYCBpcyBzZXQgdmlhIEpTIHdoZW4gdGhlIGZpcnN0IGNvbHVtbiBpcyBzdGlja3kuXG4gKiBbNjNdIEJ5IHVzaW5nIENTUyBjdXN0b20gcHJvcGVydGllcyBmb3Igc29tZSBwcm9wZXJ0aWVzLCB3ZSBjYW4gc2V0IGFuZCB1c2VcbiAqICAgICAgdGhlc2UgcHJvcGVydGllcyBtb3JlIGVhc2lseSBpbiBjZXJ0YWluIGNvbnRleHRzLlxuICogICAgICBGb3IgZXhhbXBsZSwgaW4gc3RpY2t5IHJvdyBhbmQgY29sdW1uIHN0YXRlcy5cbiAqIFs2NF0gRmFkZSB0aGUgc2hhZG93IGluIGFuZCBvdXQgc21vb3RobHkgdmlhIG9wYWNpdHkgdHJhbnNpdGlvbi5cbiAqIFs2NV0gRm9yIGJyYW5kcyB0aGF0IGhhdmUgYCR0YWJsZS10aGVhZC1ib3JkZXItdG9wLXdpZHRoYCB3ZSBjYW7igJl0IHNldCBhXG4gKiAgICAgIHNoYWRvdyBmb3IgYSBzdGlja3kgY29sdW1uIGluIGB0aGVhZGAgYmVjYXVzZSBgOjpiZWZvcmVgIGlzIGFscmVhZHlcbiAqICAgICAgdXNlZCBmb3IgdGhlIHRvcCBib3JkZXIuXG4gKi9cbi5jLXRhYmxlLXdyYXBwZXIge1xuXG4gICAgLmMtaWNvbi5jLWljb24uYy1pY29uOm5vdCguYy1pbmZvLWljb24pOm5vdCguYy1iYWRnZV9faWNvbikgeyAvKiBbMzNdICovIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2VsZWN0b3ItbWF4LWNsYXNzLCBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cblxuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAkdGFibGUtaWNvbi1zaXplLFxuICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAxLFxuICAgICAgICApO1xuXG4gICAgfVxuXG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRhYmxlLXNwYWNpbmctYm90dG9tOyAvKiBbMTFdICovXG4gICAgfVxuXG4gICAgJjpub3QoLmMtdGFibGUtd3JhcHBlci0tbm8tc2Nyb2xsKTpub3QoW2NsYXNzKj1cImMtdGFibGUtLXN0aWNreVwiXSkge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skdGFibGUtaG9yaXpvbnRhbC1zY3JvbGwtYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsgLyogWzVdICovXG5cbiAgICAgICAgICAgIHRhYmxlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogKCR0YWJsZS1yb3ctc3RhdGUtYm9yZGVyLXdpZHRoIC0gMXB4KTsgLyogWzM0XSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmMtdGFibGUtd3JhcHBlci0tYXV0byB7XG4gICAgICAgIHdpZHRoOiBhdXRvOyAvKiBbNl0gKi9cbiAgICB9XG5cbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogWzFdICovXG4gICAgICAgIHBhZGRpbmc6ICR0YWJsZS1jZWxsLXBhZGRpbmctdmVydGljYWwgJHRhYmxlLWNlbGwtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgICAgICBmb250LXNpemU6ICR0YWJsZS1jZWxsLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR0YWJsZS1jZWxsLWZvbnQtd2VpZ2h0O1xuICAgICAgICBsaW5lLWhlaWdodDogJHRhYmxlLWNlbGwtbGluZS1oZWlnaHQ7XG4gICAgICAgIHRleHQtYWxpZ246ICR0YWJsZS1jZWxsLWFsaWdubWVudC1ob3Jpem9udGFsO1xuXG4gICAgICAgIC8qIFsxXSAqL1xuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogJHRhYmxlLWNvbHVtbi1zcGFjaW5nO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0YWJsZS1jb2x1bW4tc3BhY2luZyA+IDApIHtcblxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHRhYmxlLWNvbHVtbi1zcGFjaW5nO1xuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICB0aCB7XG4gICAgICAgIGhlaWdodDogJHRhYmxlLXRoZWFkLXRoLWhlaWdodDsgLyogWzUzXSAqL1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogJHRhYmxlLXRoZWFkLWFsaWdubWVudC12ZXJ0aWNhbDtcbiAgICAgICAgY29sb3I6IHZhcigtLXRhYmxlLWNlbGwtY29sb3IsICN7JHRhYmxlLWNlbGwtY29sb3J9KTtcblxuICAgICAgICAjeyR0YWJsZS1pY29uLXNlbGVjdG9yfSB7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGlmKCR0YWJsZS10aGVhZC1pY29uLWNvbG9yLCAkdGFibGUtdGhlYWQtaWNvbi1jb2xvciwgbnVsbCk7IC8qIFszMF0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICB0ZCB7XG4gICAgICAgIGhlaWdodDogJHRhYmxlLWNlbGwtZGVmYXVsdC1oZWlnaHQ7IC8qIFsyOV0gKi9cbiAgICAgICAgdmVydGljYWwtYWxpZ246ICR0YWJsZS1jZWxsLWFsaWdubWVudC12ZXJ0aWNhbDtcbiAgICAgICAgY29sb3I6IHZhcigtLXRhYmxlLWNlbGwtY29sb3IsICN7JHRhYmxlLWNlbGwtY29sb3J9KTtcblxuICAgICAgICAjeyR0YWJsZS1pY29uLXNlbGVjdG9yfSB7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGlmKCR0YWJsZS1jZWxsLWljb24tY29sb3IsICR0YWJsZS1jZWxsLWljb24tY29sb3IsIG51bGwpOyAvKiBbMzBdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgdGFibGUge1xuICAgICAgICB3aWR0aDogMTAwJTsgLyogWzJdICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IC8qIFsxMF0gKi9cbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgLyogWzE5XSAqL1xuICAgICAgICBjb2xvcjogJHRhYmxlLWNvbG9yOyAvKiBbNTJdICovXG5cbiAgICAgICAgQGF0LXJvb3QgLmMtdGFibGUtd3JhcHBlcjpub3QoLmMtdGFibGUtd3JhcHBlci0tbm8tc2Nyb2xsKSB0YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skdGFibGUtaG9yaXpvbnRhbC1zY3JvbGwtYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogJHRhYmxlLW1pbi13aWR0aDsgLyogWzVdICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAYXQtcm9vdCAuYy10YWJsZS13cmFwcGVyLS1hdXRvIHRhYmxlIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvOyAvKiBbN10gKi9cbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgLyogWzhdICovXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsgLyogWzhdICovXG4gICAgICAgICAgICB0YWJsZS1sYXlvdXQ6IGF1dG87IC8qIFs5XSAqL1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skdGFibGUtaG9yaXpvbnRhbC1zY3JvbGwtYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICBjYXB0aW9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGExMXktaGlkZGVuKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtY29tcG91bmQtc2VsZWN0b3JzLCBzZWxlY3Rvci1tYXgtY29tYmluYXRvcnMsIHNlbGVjdG9yLW1heC10eXBlICovXG4gICAgICAgIDpub3QodGhlYWQpICsgdGJvZHkgdHI6Zmlyc3QtY2hpbGQsXG4gICAgICAgIHRoZWFkIHsgLyogWzRdICovXG4gICAgICAgICAgICBAaWYgKCR0YWJsZS10aGVhZC1iYWNrZ3JvdW5kLWNvbG9yKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXRoZWFkLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEhlYWQgY2VsbCBzdHlsaW5nXG4gICAgICAgICAgICB0aCxcbiAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICBAaWYgKCR0YWJsZS10aGVhZC1ib3JkZXItYm90dG9tLXdpZHRoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkdGFibGUtdGhlYWQtYm9yZGVyLWJvdHRvbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpZiAoJHRhYmxlLXRoZWFkLWJvcmRlci10b3Atd2lkdGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAkdGFibGUtdGhlYWQtYm9yZGVyLXRvcDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiAkdGFibGUtdGhlYWQtYWxpZ25tZW50LXZlcnRpY2FsO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdGFibGUtdGhlYWQtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogaWYoJHRhYmxlLXRoZWFkLXRoLWZvbnQtd2VpZ2h0LCAkdGFibGUtdGhlYWQtdGgtZm9udC13ZWlnaHQsIG51bGwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1jb21wb3VuZC1zZWxlY3RvcnMsIHNlbGVjdG9yLW1heC1jb21iaW5hdG9ycywgc2VsZWN0b3ItbWF4LXR5cGUgKi9cbiAgICAgICAgdGJvZHkge1xuXG4gICAgICAgICAgICAvLyBCb2R5IGNlbGwgc3R5bGluZ1xuICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigkdHJhbnNpdGlvbi1wcm9wZXJ0eTogI3skdGFibGUtY2VsbC10cmFuc2l0aW9uLXByb3BlcnRpZXN9KTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10YWJsZS1jZWxsLWJhY2tncm91bmQtY29sb3IpO1xuXG4gICAgICAgICAgICAgICAgQGlmICgkdGFibGUtYm9yZGVyLXdpZHRoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkdGFibGUtYm9yZGVyLXZlcnRpY2FsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb3JkZXIvb3JkZXIgKi9cbiAgICAgICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICR0YWJsZS1yb3ctc3RhdGVzLW1lcmdlZCwgJGNyZWF0ZTogXCJjdXN0b21cIikge1xuICAgICAgICAgICAgICAgIC8vIFNhZmUtZ3VhcmQgaWYgb3B0ZWQtb3V0IG9mIG1hcCwgZS5nLiB2YWx1ZSBpcyBzZXQgdG8gYG51bGxgLlxuICAgICAgICAgICAgICAgIEBpZiAobWFwLWdldCgkdGFibGUtcm93LXN0YXRlcy1tZXJnZWQsICR2YXJ5LWxvb3AtZW50aXR5KSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBHZXQgc2VsZWN0b3IgYmFzZWQgb24gbWFwLWtleSBmcm9tIHNlbGVjdG9yIG1hcC5cbiAgICAgICAgICAgICAgICAgICAgJF9zZWxlY3RvcjogbWFwLWdldCgkdGFibGUtc3RhdGUtc2VsZWN0b3JzLCAkdmFyeS1sb29wLWVudGl0eSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gcm93IHN0YXRlc1xuICAgICAgICAgICAgICAgICAgICB0ciN7JF9zZWxlY3Rvcn0ge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHZhcnktZ2V0KFwiYmFja2dyb3VuZC1jb2xvclwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tdGFibGUtY2VsbC1iYWNrZ3JvdW5kLWNvbG9yOiAje3ZhcnktZ2V0KFwiYmFja2dyb3VuZC1jb2xvclwiKX07IC8qIFs2M10gKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAodmFyeS1nZXQoXCJjb2xvclwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tdGFibGUtY2VsbC1jb2xvcjogI3t2YXJ5LWdldChcImNvbG9yXCIpfTsgLyogWzYzXSAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBib3JkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogdmFyeS1nZXQoXCJib3JkZXItd2lkdGhcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyeS1nZXQoXCJib3JkZXItY29sb3JcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgdmFyeSgkbG9vcDogJHRhYmxlLWNlbGwtc3RhdGVzLW1lcmdlZCwgJGNyZWF0ZTogXCJjdXN0b21cIikge1xuICAgICAgICAgICAgICAgIC8vIFNhZmUtZ3VhcmQgaWYgb3B0ZWQtb3V0IG9mIG1hcCwgZS5nLiB2YWx1ZSBpcyBzZXQgdG8gYG51bGxgLlxuICAgICAgICAgICAgICAgIEBpZiAobWFwLWdldCgkdGFibGUtY2VsbC1zdGF0ZXMtbWVyZ2VkLCAkdmFyeS1sb29wLWVudGl0eSkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gR2V0IHNlbGVjdG9yIGJhc2VkIG9uIG1hcC1rZXkgZnJvbSBzZWxlY3RvciBtYXAuXG4gICAgICAgICAgICAgICAgICAgICRfc2VsZWN0b3I6IG1hcC1nZXQoJHRhYmxlLXN0YXRlLXNlbGVjdG9ycywgJHZhcnktbG9vcC1lbnRpdHkpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIEFkZCBzZWxlY3RvciB0byBpbmNyZWFzZSAvIG1hdGNoIHNwZWNpZmljaXR5IG9mIHJvdyBzdGF0ZXMuXG4gICAgICAgICAgICAgICAgICAgIHRyIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2VsbCBzdGF0ZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoI3skX3NlbGVjdG9yfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRkI3skX3NlbGVjdG9yfSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyeS1nZXQoXCJiYWNrZ3JvdW5kLWNvbG9yXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXJ5LWdldChcImNvbG9yXCIpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYm9yZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IHZhcnktZ2V0KFwiYm9yZGVyLXdpZHRoXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcnktZ2V0KFwiYm9yZGVyLWNvbG9yXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVXNlIFwibmF0aXZlXCIgbWFwcyAmIG1hcC1mdW5jdGlvbnMgYXMgdmFyeSBpcyB1c2VkIGZvciB0aGVtaW5nLCBub3Qgc3VjaCBkZWVwIG5lc3RpbmcuXG4gICAgICAgICAgICBAZWFjaCAkcm93LXN0YXRlLCAkY2VsbC1zdGF0ZXMgaW4gJHRhYmxlLXJvdy1jZWxsLXN0YXRlcy1tZXJnZWQge1xuICAgICAgICAgICAgICAgICRyb3ctc2VsZWN0b3I6IG1hcC1nZXQoJHRhYmxlLXN0YXRlLXNlbGVjdG9ycywgJHJvdy1zdGF0ZSk7XG5cbiAgICAgICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBtYXgtbmVzdGluZy1kZXB0aCAqL1xuICAgICAgICAgICAgICAgIEBlYWNoICRjZWxsLXN0YXRlLCAkY2VsbC1kZWNsYXJhdGlvbnMgaW4gJGNlbGwtc3RhdGVzIHtcbiAgICAgICAgICAgICAgICAgICAgJGNlbGwtc2VsZWN0b3I6IG1hcC1nZXQoJHRhYmxlLXN0YXRlLXNlbGVjdG9ycywgJGNlbGwtc3RhdGUpO1xuXG4gICAgICAgICAgICAgICAgICAgIHRyI3skcm93LXNlbGVjdG9yfSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoI3skY2VsbC1zZWxlY3Rvcn0sXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZCN7JGNlbGwtc2VsZWN0b3J9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRjZWxsLWRlY2xhcmF0aW9ucywgXCJiYWNrZ3JvdW5kLWNvbG9yXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjZWxsLWRlY2xhcmF0aW9ucywgXCJjb2xvclwiKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJvcmRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRjZWxsLWRlY2xhcmF0aW9ucywgXCJib3JkZXItY29sb3JcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlIG1heC1uZXN0aW5nLWRlcHRoICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyLFxuICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICB0ZCB7XG5cbiAgICAgICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LW5lc3RpbmctZGVwdGggKi9cbiAgICAgICAgICAgICAgICAmLmlzLWRpc2FibGVkLFxuICAgICAgICAgICAgICAgICZbYXJpYS1kaXNhYmxlZD1cInRydWVcIl0ge1xuICAgICAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGgge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdGFibGUtdGgtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gdHI6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lOyAvKiBbMjVdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LWNvbXBvdW5kLXNlbGVjdG9ycywgc2VsZWN0b3ItbWF4LWNvbWJpbmF0b3JzLCBzZWxlY3Rvci1tYXgtdHlwZSAqL1xuICAgICAgICB0Zm9vdCB7XG5cbiAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHRhYmxlLXRmb290LWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuXG4gICAgfVxuXG4gICAgLy8gZGlzYWJsZWQgcm93cyBhbmQgY2VsbHNcbiAgICB0cjp3aGVyZShbYXJpYS1kaXNhYmxlZD1cInRydWVcIl0sIC5pcy1kaXNhYmxlZCksXG4gICAgdGQ6d2hlcmUoW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdLCAuaXMtZGlzYWJsZWQpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC8vIE92ZXJsYXlcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgQGlmICgkdGFibGUtaW5hY3RpdmUtbGF5ZXItcmVzZXQtc3R5bGVzKSB7XG4gICAgICAgICAgICAgICAgYWxsOiB1bnNldDsgLyogWzU0XSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udGVudDogXCJcIjsgLyogWzU1XSAqL1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyAvKiBbNTVdICovXG4gICAgICAgICAgICB6LWluZGV4OiAxMDsgLyogWzU1XSAqL1xuICAgICAgICAgICAgdG9wOiAwOyAvKiBbNTZdICovXG4gICAgICAgICAgICBib3R0b206IDA7IC8qIFs1Nl0gKi9cbiAgICAgICAgICAgIGxlZnQ6IDA7IC8qIFs1Nl0gKi9cbiAgICAgICAgICAgIHJpZ2h0OiAwOyAvKiBbNTZdICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtaW5hY3RpdmUtbGF5ZXItY29sb3I7IC8qIFs1N10gKi9cbiAgICAgICAgICAgIG9wYWNpdHk6ICR0YWJsZS1pbmFjdGl2ZS1sYXllci1vcGFjaXR5OyAvKiBbNTddICovXG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgQGlmICgkdGFibGUtY29sdW1uLXNwYWNpbmcgPiAwKSB7XG4gICAgICAgIHRkOndoZXJlKFthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSwgLmlzLWRpc2FibGVkKSB7XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICByaWdodDogJHRhYmxlLWNvbHVtbi1zcGFjaW5nOyAvKiBbNThdICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG4gICAgQGluY2x1ZGUgdmFyeSgkY3JlYXRlOiBjdXN0b20sICRsb29wOiAkdGFibGUtc2l6ZS12YXJpYW50cykge1xuXG4gICAgICAgIC5jLXRhYmxlLS0jeyR2YXJ5LWxvb3AtZW50aXR5fSB7IC8qIFsxOF0gKi9cblxuICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB2YXJ5LWdldChcImhlaWdodFwiKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXJ5LWdldChcInBhZGRpbmdcIik7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXJ5LWdldChcImZvbnQtc2l6ZVwiKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy10YWJsZV9fbGF5b3V0LS1maXhlZCxcbiAgICAuYy10YWJsZS0tbGF5b3V0LWZpeGVkIHsgLyogWzNdICovXG5cbiAgICAgICAgdGFibGUge1xuICAgICAgICAgICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtdGFibGVfX2J0biB7IC8qIFsxNV0gKi9cblxuICAgICAgICAmLFxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgYm9yZGVyOiBpbXBvcnRhbnQoMCwgdHJ1ZSk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuXG4gICAgICAgICAgICBAaWYgKCR0YWJsZS1idXR0b24tcmVzZXQtYm9yZGVyLXJhZGl1cykge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IGltcG9ydGFudCgwLCB0cnVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtY2xhc3MsIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuICAgIC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydC5jLXRhYmxlX19idG4tc29ydCB7IC8qIFszMV0gKi9cbiAgICAgICAgLS1idXR0b24tZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuXG4gICAgICAgICYsXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogaW5oZXJpdDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lOyAvKiAzNSAqL1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG5cbiAgICAgICAgICAgIC5jLWJ0bl9faWNvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgICR0YWJsZS1zb3J0LWljb24tc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAxXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGljb24tZm9udCgpO1xuICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogaWYoJHRhYmxlLXRoZWFkLWljb24tY29sb3IsICR0YWJsZS10aGVhZC1pY29uLWNvbG9yLCBudWxsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLFxuICAgICAgICAmW2RhdGEtc29ydC1vcmRlcj1cImFzY1wiXSB7IC8qIFszMl0gKi9cbiAgICAgICAgICAgIC5jLWJ0bl9faWNvbjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAkdGFibGUtc29ydC1pY29uLWFzYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1zb3J0LW9yZGVyPVwiZGVzY1wiXSB7IC8qIFszMl0gKi9cbiAgICAgICAgICAgIC5jLWJ0bl9faWNvbjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAkdGFibGUtc29ydC1pY29uLWRlc2M7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cbiAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cbiAgICAuYy10YWJsZV9fc29ydGFibGUtaGVhZGVyLXRleHQgeyAvKiBbMTddICovXG4gICAgfVxuXG4gICAgLmMtdGFibGVfX2NlbGwgeyAvKiBbMjddICovXG4gICAgfVxuXG4gICAgLmMtdGFibGVfX2NlbGxfX2ljb24ge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAgICR0YWJsZS1pY29uLXNpemUsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6IDFcbiAgICAgICAgKTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkdGFibGUtaWNvbi1zcGFjaW5nO1xuICAgIH1cblxuICAgIC5jLXRhYmxlX19jZWxsLWFsaWduIHsgLyogWzI4XSAqL1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuXG4vKipcbiAqIEVhY2ggdGFibGUgdmFyaWFudCBoYXMgaXRzIG93biBtaW4taGVpZ2h0LlxuKi9cbi5jLXRhYmxlLS1uYXJyb3cge1xuXG4gICAgdGQge1xuICAgICAgICBoZWlnaHQ6ICR0YWJsZS1jZWxsLW5hcnJvdy1oZWlnaHQ7IC8qIFsyOV0gKi9cbiAgICB9XG5cbn1cblxuLmMtdGFibGUtLXdpZGUge1xuXG4gICAgdGQge1xuICAgICAgICBoZWlnaHQ6ICR0YWJsZS1jZWxsLWxhcmdlLWhlaWdodDsgLyogWzI5XSAqL1xuICAgIH1cblxufVxuXG4uYy10YWJsZS0tbm8taG92ZXIge1xuXG4gICAgdGQsXG4gICAgdGgsXG4gICAgdHIge1xuICAgICAgICAmLFxuICAgICAgICB0ZCxcbiAgICAgICAgdGgsXG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBpbXBvcnRhbnQobm9uZSwgdHJ1ZSk7IC8qIFszNV0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgID4gKjpub3QodGQpOm5vdCh0aCk6bm90KHRyKSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogaW1wb3J0YW50KGFsbCwgdHJ1ZSk7IC8qIFszNl0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbi8qKlxuICogSW5kaXZpZHVhbCB0YWJsZSBjZWxscyBjYW4gYmUgaGlnaGxpZ2h0ZWQgdmlhIHRoZVxuICogYC5jLXRhYmxlLS1oaWdobGlnaHRgIGNsYXNzLlxuKi9cbi5jLXRhYmxlLS1oaWdobGlnaHQge1xuXG4gICAgdHIgPiA6bnRoLWNoaWxkKG4rMyk6bm90KHRoKSB7IC8qIFsxNl0gKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQtY29sb3ItaGlnaGxpZ2h0O1xuXG4gICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICR0YWJsZS1oaWdobGlnaHQtdGhlbWVzKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXJ5LWdldChcImJhY2tncm91bmQtY29sb3JcIik7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkdGFibGUtY2VsbC1oaWdobGlnaHQtYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSB2YXJ5KCRsb29wOiAkdGFibGUtaGlnaGxpZ2h0LXRoZW1lcykge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogdmFyeS1nZXQoXCJib3JkZXItcmlnaHRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cbn1cblxuXG5cbi8qKlxuICogVGFibGUgd2l0aCBjb2xvciBzY2hlbWVcbiAqL1xuQGlmICgkdGFibGUtZW5hYmxlLWNvbG9yLXNjaGVtZSkge1xuXG4gICAgLmMtdGFibGUtLWNvbG9yZWQge1xuICAgICAgICB0Ym9keSB7XG5cbiAgICAgICAgICAgIHRyOm50aC1vZi10eXBlKG9kZCkge1xuICAgICAgICAgICAgICAgIC0tdGFibGUtY2VsbC1iYWNrZ3JvdW5kLWNvbG9yOiAjeyR0YWJsZS1jZWxsLWJhY2tncm91bmQtY29sb3Itb2RkfTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtY2VsbC1iYWNrZ3JvdW5kLWNvbG9yLW9kZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdHI6bnRoLW9mLXR5cGUoZXZlbikge1xuICAgICAgICAgICAgICAgIC0tdGFibGUtY2VsbC1iYWNrZ3JvdW5kLWNvbG9yOiAjeyR0YWJsZS1jZWxsLWJhY2tncm91bmQtY29sb3ItZXZlbn07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWNlbGwtYmFja2dyb3VuZC1jb2xvci1ldmVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59XG5cblxuXG4vKipcbiAqIFRhYmxlIHdpdGggYm9yZGVyIHNjaGVtZSBhbmQgam9pbmVkIGNlbGxzIGFuZCByb3dzXG4gKi9cbi5jLXRhYmxlLS1ib3JkZXJlZCB7XG5cbiAgICBib3JkZXItc3BhY2luZzogJHRhYmxlLXNwYWNpbmctaG9yaXpvbnRhbCAkdGFibGUtc3BhY2luZy12ZXJ0aWNhbDtcblxuICAgIHRkIHtcbiAgICAgICAgcGFkZGluZy10b3A6ICR0YWJsZS1jZWxsLXBhZGRpbmctdmVydGljYWw7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICR0YWJsZS1jZWxsLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICR0YWJsZS1jZWxsLXBhZGRpbmctdmVydGljYWw7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJHRhYmxlLWNlbGwtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIH1cblxuICAgIHRkLFxuICAgIHRoIHtcblxuICAgICAgICArIHRkIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkdGFibGUtY2VsbC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG5cblxuLyoqXG4qIFRhYmxlIHdpdGggc3RpY2t5IGhlYWQgcm93XG4qL1xuLmMtdGFibGUtLXN0aWNreS1oZWFkIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgLyogWzIwXSAqL1xuXG4gICAgdGhlYWQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDIwOyAvKiBbMjFdICovXG5cbiAgICAgICAgdHIge1xuICAgICAgICAgICAgPiAqIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzZWxlY3Rvci1tYXgtY29tYmluYXRvcnMsIHNlbGVjdG9yLW1heC1jb21wb3VuZC1zZWxlY3RvcnMgKi9cbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogY2FsYyh2YXIoLS1icm9uLXN0aWNreS1vZmZzZXQsIDBweCkgLSAxcHgpOyAvKiBbNTldICovXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0aWNreS10aGVhZC1iYWNrZ3JvdW5kLWNvbG9yOyAvKiBbMjFdICovXG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB2YXJ5KCRsb29wOiAkdGFibGUtc3RpY2t5LXRoZW1lcykge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXJ5LWdldChcImJhY2tncm91bmQtY29sb3ItaGVhZFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHRhYmxlLXN0aWNreS1oYXMtaGVhZC1yb3ctc2hhZG93KSB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIgeyAvKiBbNjBdICovXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSwgJHRhYmxlLXN0aWNreS1zaGFkb3ctdHJhbnNpdGlvbi1kdXJhdGlvbik7IC8qIFs2NF0gKi9cbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IGNhbGMoMTAwJSArICN7JHRhYmxlLXN0aWNreS1oZWFkLXJvdy1zaGFkb3ctb2Zmc2V0fSk7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICR0YWJsZS1zdGlja3ktaGVhZC1zaGFkb3ctc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDsgLyogWzY0XSAqL1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCR0YWJsZS1zdGlja3ktc2hhZG93LWdyYWRpZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKCR0YWJsZS1zdGlja3ktc2hhZG93LWNvbG9yLCAkdGFibGUtc3RpY2t5LXNoYWRvdy1vcGFjaXR5KSwgcmdiYSgkdGFibGUtc3RpY2t5LXNoYWRvdy1jb2xvciwgMCkpO1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHRhYmxlLXN0aWNreS1zaGFkb3ctY29sb3IsICR0YWJsZS1zdGlja3ktc2hhZG93LW9wYWNpdHkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmLmhhcy1zdGlja3ktaGVhZCB7IC8qIFs2MV0gKi9cblxuICAgICAgICB0aGVhZCB0ciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgei1pbmRleDogMTAwO1xuICAgICAgICAgICAgdG9wOiBjYWxjKHZhcigtLWJyb24tc3RpY2t5LW9mZnNldCwgMHB4KSAtIDFweCk7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2NhbGUtdW5saW1pdGVkL2RlY2xhcmF0aW9uLXN0cmljdC12YWx1ZSAqL1xuXG4gICAgICAgICAgICBAaWYgKCR0YWJsZS1zdGlja3ktaGFzLWhlYWQtcm93LXNoYWRvdykge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTsgLyogWzY0XSAqL1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbi8qKlxuKiBUYWJsZSB3aXRoIHN0aWNreSBmaXJzdCBjb2x1bW5cbiovXG4uYy10YWJsZS0tc3RpY2t5LWNvbHVtbiB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIFsyMF0gKi9cblxuICAgIEBpZiAoJHRhYmxlLXN0aWNreS1oYXMtZmlyc3QtY29sdW1uLXNoYWRvdykge1xuXG4gICAgICAgICN7aWYoJHRhYmxlLXRoZWFkLWJvcmRlci10b3Atd2lkdGggPiAwLCBcIjpub3QodGhlYWQpID4gdHJcIiwgXCJ0clwiKX0gPiA6Zmlyc3QtY2hpbGQ6OmJlZm9yZSB7IC8qIFs2NV0gKi9cbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSwgJHRhYmxlLXN0aWNreS1zaGFkb3ctdHJhbnNpdGlvbi1kdXJhdGlvbik7IC8qIFs2NF0gKi9cbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDEwMCUgKyAjeyR0YWJsZS1zdGlja3ktZmlyc3QtY29sdW1uLXNoYWRvdy1vZmZzZXR9KTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHdpZHRoOiAkdGFibGUtc3RpY2t5LWZpcnN0LWNvbHVtbi1zaGFkb3ctc2l6ZTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7IC8qIFs2NF0gKi9cbiAgICAgICAgICAgIEBpZiAoJHRhYmxlLXN0aWNreS1zaGFkb3ctZ3JhZGllbnQpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoJHRhYmxlLXN0aWNreS1zaGFkb3ctY29sb3IsICR0YWJsZS1zdGlja3ktc2hhZG93LW9wYWNpdHkpLCByZ2JhKCR0YWJsZS1zdGlja3ktc2hhZG93LWNvbG9yLCAwKSk7IC8qIFs2MF0gKi9cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHRhYmxlLXN0aWNreS1zaGFkb3ctY29sb3IsICR0YWJsZS1zdGlja3ktc2hhZG93LW9wYWNpdHkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5oYXMtc3RpY2t5LWNvbHVtbiB7IC8qIFs2Ml0gKi9cblxuICAgICAgICAgICAgdHIgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogaWYoJHRhYmxlLXN0aWNreS1maXJzdC1jb2x1bW4tcGFkZGluZy1sZWZ0LCAkdGFibGUtc3RpY2t5LWZpcnN0LWNvbHVtbi1wYWRkaW5nLWxlZnQsIG51bGwpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRhYmxlLWNlbGwtYmFja2dyb3VuZC1jb2xvciwgI3skdGFibGUtc3RpY2t5LWNlbGwtYmFja2dyb3VuZC1jb2xvcn0pOyAvKiBbMjJdICovXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXRhYmxlLWNlbGwtY29sb3IpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICR0YWJsZS1zdGlja3ktdGhlbWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcnktZ2V0KFwiYmFja2dyb3VuZC1jb2xvci1jb2x1bW5cIik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTsgLyogWzY0XSAqL1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdHIgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICB6LWluZGV4OiAxOyAvKiBbMjJdICovXG4gICAgICAgIGxlZnQ6IC0xcHg7IC8qIFs1OV0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY2FsZS11bmxpbWl0ZWQvZGVjbGFyYXRpb24tc3RyaWN0LXZhbHVlICovXG5cbiAgICB9XG5cbiAgICB0aGVhZCB7XG5cbiAgICAgICAgdHIgPiA6Zmlyc3QtY2hpbGQgeyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNlbGVjdG9yLW1heC1jb21iaW5hdG9ycywgc2VsZWN0b3ItbWF4LWNvbXBvdW5kLXNlbGVjdG9ycyAqL1xuICAgICAgICAgICAgei1pbmRleDogMjsgLyogWzIzXSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmLmMtdGFibGUtLWNvbG9yZWQ6bm90KC5oYXMtc3RpY2t5LWNvbHVtbikge1xuXG4gICAgICAgIHRib2R5IHtcblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4gICAgICAgICAgICB0aDpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgIHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OyAgLyogWzI0XSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cblxuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuLyoqXG4qIFJlc3BvbnNpdmUgdGFibGVcbiovXG4uYy10YWJsZS0tcmVzcG9uc2l2ZSB7XG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JHRhYmxlLXJlc3BvbnNpdmUtYnJlYWtwb2ludH1cIikge1xuXG4gICAgICAgICYuYy10YWJsZS0tcmVzcG9uc2l2ZSA+IHRhYmxlIHsgLyogWzM3XSAqL1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwOyAvKiBbMzhdICovXG5cbiAgICAgICAgICAgIHRyOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LWNvbWJpbmF0b3JzLCBzZWxlY3Rvci1tYXgtY29tcG91bmQtc2VsZWN0b3JzLCBzZWxlY3Rvci1tYXgtdHlwZSAqL1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsgLyogWzQ5XSAqL1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgdGFibGUsXG4gICAgICAgIHRoZWFkLFxuICAgICAgICB0Ym9keSxcbiAgICAgICAgdGZvb3QsXG4gICAgICAgIHRyLFxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IC8qIFszOV0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIHRoZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGExMXktaGlkZGVuKCk7IC8qIFs0MF0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87IC8qIFs0MV0gKi9cbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICR0YWJsZS1yZXNwb25zaXZlLXBhZGRpbmc7IC8qIFs0MV0gKi9cbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHRhYmxlLXJlc3BvbnNpdmUtcGFkZGluZzsgLyogWzQxXSAqL1xuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQ6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaWYgKCR0YWJsZS1yZXNwb25zaXZlLWNlbGwtYm9yZGVyLWhpZGUtbGFzdCkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBbNDJdICovXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAvKiBDb2x1bW4gSGVhZGVyICovXG4gICAgICAgIFtkYXRhLWNvbHVtbmhlYWRlcl0geyAvKiBbNDNdICovXG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgICAgICAgY29sdW1uLWdhcDogJHRhYmxlLXJlc3BvbnNpdmUtY29sdW1uLWdhcDtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtY29sdW1uaGVhZGVyKTsgLyogWzQ0XSAqL1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7IC8qIFs0NV0gKi9cbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHRhYmxlLXJlc3BvbnNpdmUtY29sdW1uaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICAgICAgaHlwaGVuczogYXV0bzsgLyogWzQ2XSAqL1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGlmKCR0YWJsZS1yZXNwb25zaXZlLWNvbHVtbmhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yLCAkdGFibGUtcmVzcG9uc2l2ZS1jb2x1bW5oZWFkZXItYmFja2dyb3VuZC1jb2xvciwgbnVsbCk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR0YWJsZS1yZXNwb25zaXZlLWNvbHVtbmhlYWRlci1jb2xvcjtcblxuICAgICAgICAgICAgICAgIEBpZiAoJHRhYmxlLXJlc3BvbnNpdmUtY29sdW1uaGVhZGVyLWJhY2tncm91bmQtY29sb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLSgkdGFibGUtY2VsbC1wYWRkaW5nLXZlcnRpY2FsKTsgLyogWzQ3XSAqL1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAtKCR0YWJsZS1jZWxsLXBhZGRpbmctdmVydGljYWwpOyAvKiBbNDddICovXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICR0YWJsZS1jZWxsLXBhZGRpbmctdmVydGljYWwgJHRhYmxlLWNlbGwtcGFkZGluZy1ob3Jpem9udGFsOyAvKiBbNDddICovXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAvKiBSb3cgSGVhZGVyICovXG4gICAgICAgIHRoOmZpcnN0LWNoaWxkIHsgLyogWzUwXSAqL1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IGlmKCR0YWJsZS1yZXNwb25zaXZlLXJvd2hlYWRlci1wYWRkaW5nLWJvdHRvbSwgJHRhYmxlLXJlc3BvbnNpdmUtcm93aGVhZGVyLXBhZGRpbmctYm90dG9tLCBudWxsKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBpZigkdGFibGUtcmVzcG9uc2l2ZS1yb3doZWFkZXItZm9udC13ZWlnaHQsICR0YWJsZS1yZXNwb25zaXZlLXJvd2hlYWRlci1mb250LXdlaWdodCwgbnVsbCk7XG4gICAgICAgICAgICBjb2xvcjogaWYoJHRhYmxlLXJlc3BvbnNpdmUtcm93aGVhZGVyLWNvbG9yLCAkdGFibGUtcmVzcG9uc2l2ZS1yb3doZWFkZXItY29sb3IsIG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgdHIgKyB0ciB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBpZigkdGFibGUtcmVzcG9uc2l2ZS10ci1tYXJnaW4tdmVydGljYWwgPiAwLCAkdGFibGUtcmVzcG9uc2l2ZS10ci1tYXJnaW4tdmVydGljYWwsIG51bGwpOyAvKiBbNTFdICovXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogaWYoJHRhYmxlLXJlc3BvbnNpdmUtdHItcGFkZGluZy12ZXJ0aWNhbCA+IDAsICR0YWJsZS1yZXNwb25zaXZlLXRyLXBhZGRpbmctdmVydGljYWwsIG51bGwpOyAvKiBbNTFdICovXG4gICAgICAgICAgICBib3JkZXItdG9wOiBpZigkdGFibGUtcmVzcG9uc2l2ZS10ci1ib3JkZXIsICR0YWJsZS1yZXNwb25zaXZlLXRyLWJvcmRlciwgbnVsbCk7IC8qIFs1MV0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxufVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI1RBQkxFUyAoU2V0dGluZ3MpXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gVGFibGVcbiR0YWJsZS1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgMXB4ICFkZWZhdWx0O1xuJHRhYmxlLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQk9SREVSICFkZWZhdWx0O1xuJHRhYmxlLWJvcmRlci1ib3R0b20tY29sb3I6ICAgICAgICAgICAgICAkdGFibGUtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuXG4vLyBUYWJsZSBoZWFkXG4kdGFibGUtdGhlYWQtYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiR0YWJsZS10aGVhZC1ib3JkZXItYm90dG9tLXdpZHRoOiAgICAgICAgMCAhZGVmYXVsdDsgLy8gSGFuZGxlIHZpYSBjdXN0b20gYm9yZGVyc1xuJHRhYmxlLXRoZWFkLWJvcmRlci1ib3R0b20tY29sb3I6ICAgICAgICAkdGFibGUtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJHRhYmxlLXRoZWFkLWJvcmRlci1ib3R0b206ICAgICAgICAgICAgICAkdGFibGUtdGhlYWQtYm9yZGVyLWJvdHRvbS13aWR0aCBzb2xpZCAkdGFibGUtdGhlYWQtYm9yZGVyLWJvdHRvbS1jb2xvciAhZGVmYXVsdDtcbiR0YWJsZS10aGVhZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcblxuLy8gVGFibGUgaGVhZGluZ3NcblxuLy8gVGFibGUgY2VsbHNcbiR0YWJsZS1jZWxsLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kdGFibGUtY2VsbC1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJHRhYmxlLWNlbGwtcGFkZGluZy1zbWFsbDogICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kdGFibGUtY2VsbC1wYWRkaW5nLWxhcmdlOiAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJHRhYmxlLWNlbGwtZm9udC1zaXplLXNtYWxsOiAgICAgICAgICAgICBtYXAtZ2V0KCRGUy0xLCBudWxsKSAhZGVmYXVsdDtcbiR0YWJsZS1jZWxsLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1SRUdVTEFSICFkZWZhdWx0OyAvLyBAVE9ETzogcmVndWxhciBmb3IgRlMwP1xuXG4vLyBUYWJsZSBmb290ZXJcblxuLy8gSWNvbnNcbiR0YWJsZS1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKHhzbWFsbCkgIWRlZmF1bHQ7XG4kdGFibGUtdGhlYWQtaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kdGFibGUtc29ydC1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICR0YWJsZS1pY29uLXNpemUgIWRlZmF1bHQ7XG5cbi8vIEJ1dHRvbnNcbiR0YWJsZS1idXR0b24tcmVzZXQtYm9yZGVyLXJhZGl1czogICAgICAgZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFRhYmxlIHZhcmlhbnQgWmVicmEgU3R5bGVcbiR0YWJsZS1jZWxsLWJhY2tncm91bmQtY29sb3Itb2RkOiAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJHRhYmxlLWNlbGwtYmFja2dyb3VuZC1jb2xvci1ldmVuOiAgICAgICAkQ09MT1ItU1VSRkFDRS1TRUNPTkRBUlkgIWRlZmF1bHQ7IC8vIEBUT0RPOiBwcm9wb3NhbCwgY2xhcmlmeSB3aXRoIGJyYW5kXG5cbiR0YWJsZS1yb3ctc3RhdGUtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgJHRhYmxlLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcblxuLy8gQ29udGVudCBoaWdobGlnaHRcbiR0YWJsZS1iYWNrZ3JvdW5kLWNvbG9yLWhpZ2hsaWdodDogICAgICAgJENPTE9SLUJSQU5ELVFVQVJURVJOQVJZICFkZWZhdWx0O1xuJHRhYmxlLWNlbGwtaGlnaGxpZ2h0LWJvcmRlcjogICAgICAgICAgICAoJHRhYmxlLWNlbGwtcGFkZGluZy1ob3Jpem9udGFsICogMC41KSBzb2xpZCAkQ09MT1ItQkFTRS1CQUNLR1JPVU5EICFkZWZhdWx0O1xuXG4vLyBUYWJsZSB2YXJpYW50IFN0aWNreSBUYWJsZVxuJHRhYmxlLXN0aWNreS1oYXMtZmlyc3QtY29sdW1uLXNoYWRvdzogICBmYWxzZSAhZGVmYXVsdDsgLy8gV2Ugc2V0IHRoZSBzaGFkb3cgZGlmZmVyZW50bHkgZm9yIMWga29kYVxuXG4vLyBSZXNwb25zaXZlIHRhYmxlIHZhcmlhbnRcbiR0YWJsZS1yZXNwb25zaXZlLXRyLWJvcmRlcjogICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kdGFibGUtcmVzcG9uc2l2ZS1yb3doZWFkZXItY29sb3I6ICAgICAgICR0YWJsZS10aGVhZC1jb2xvciAhZGVmYXVsdDtcblxuJHRhYmxlLXJlc3BvbnNpdmUtY2VsbC1ib3JkZXItaGlkZS1sYXN0OiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gVGFibGUgRGF0YSBDb250cm9scyBkaXNhYmxlZCBzdGF0ZVxuJHRhYmxlLWluYWN0aXZlLWxheWVyLWNvbG9yOiAgICAgICAgICAgICAkQ09MT1ItSU5BQ1RJVkUtTEFZRVItQ09MT1IgIWRlZmF1bHQ7XG4kdGFibGUtaW5hY3RpdmUtbGF5ZXItb3BhY2l0eTogICAgICAgICAgICRDT0xPUi1JTkFDVElWRS1MQVlFUi1PUEFDSVRZICFkZWZhdWx0O1xuJHRhYmxlLWluYWN0aXZlLWJvdHRvbS13aWR0aDogICAgICAgICAgICAxcHggIWRlZmF1bHQ7XG4kdGFibGUtaW5hY3RpdmUtYm9yZGVyLWxlZnQtc3BhY2luZzogICAgICR0YWJsZS1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kdGFibGUtaW5hY3RpdmUtYm9yZGVyLXJpZ2h0LXNwYWNpbmc6ICAgICR0YWJsZS1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kdGFibGUtaW5hY3RpdmUtbGF5ZXItcmVzZXQtc3R5bGVzOiAgICAgIHRydWUgIWRlZmF1bHQ7XG5cblxuJHRhYmxlLXJvdy1zdGF0ZXMtb3ZlcndyaXRlczogKFxuICAgIFwic3VjY2Vzc1wiOiAoXG4gICAgICAgIFwiY29sb3JcIjogICAgICAgIG51bGwsXG4gICAgICAgIFwiYm9yZGVyLWNvbG9yXCI6ICRDT0xPUi1TVUNDRVNTLFxuICAgICAgICBcImljb24tY29sb3JcIjogICBudWxsLFxuICAgICksXG4gICAgXCJzdWNjZXNzLWhvdmVyXCI6IChcbiAgICAgICAgXCJjb2xvclwiOiBudWxsLFxuICAgICksXG4gICAgXCJzdWNjZXNzLXNlbGVjdGVkXCI6IChcbiAgICAgICAgXCJjb2xvclwiOiBudWxsLFxuICAgICksXG4gICAgXCJlcnJvclwiOiAoXG4gICAgICAgIFwiYm9yZGVyLWNvbG9yXCI6ICRDT0xPUi1BTEVSVCxcbiAgICAgICAgXCJpY29uLWNvbG9yXCI6ICAgbnVsbCxcbiAgICApLFxuKSAhZGVmYXVsdDtcblxuJHRhYmxlLWNlbGwtc3RhdGVzLW92ZXJ3cml0ZXM6IChcbiAgICBcImVycm9yXCI6IChcbiAgICAgICAgXCJib3JkZXItY29sb3JcIjogJENPTE9SLUFMRVJULFxuICAgICksXG4pICFkZWZhdWx0O1xuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LXR5cGUsIHNlbGVjdG9yLW1heC1jb21wb3VuZC1zZWxlY3RvcnMsIHNlbGVjdG9yLW1heC1jb21iaW5hdG9ycywgbWF4LW5lc3RpbmctZGVwdGggKi9cblxuLy8gS2VlcCBkdXBsaWNhdGlvbnMgdG8gc2VwYXJhdGUgdXNlLWNhc2VzIGluc3RlYWQgb2YgY29tYmluaW5nIHNlbGVjdG9ycy5cbi8qIHN0eWxlbGludC1kaXNhYmxlIG5vLWR1cGxpY2F0ZS1zZWxlY3RvcnMgKi9cblxuLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI1RBQkxFU1xuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRza29kYS10YWJsZS1ib3JkZXI6ICAgICAgICAkdGFibGUtYm9yZGVyLXdpZHRoIHNvbGlkICR0YWJsZS1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kc2tvZGEtdGFibGUtYm9yZGVyLXJhZGl1czogJEdMT0JBTC1CT1JERVItUkFESVVTICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBFbnN1cmUgdmlzaWJpbGl0eSwgYWxzbyB3aGVuIGhlYWRlciBpcyBzdGlja3kuXG4gKiBbMl0gRHJhdyBsaW5lIGJldHdlZW4gaGVhZGVyL2Zvb3RlciBhbmQgYm9keS4gVGhpcyBjYW4gYmUgZG9uZSBvbmx5IGZvciB0aGVcbiAqICAgICBoZWFkZXIvZm9vdGVyIGFzIHRoZSBjZWxscyBuZWVkIHRvIGJlIGFibGUgdG8gaGF2ZVxuICogICAgIGNvbG9yaXplZCBib3JkZXJzIGJhc2VkIG9uIHN0YXRlLlxuICogWzNdIFZlcnRpY2FsIGJvcmRlcnMgZm9yIGhlYWRlciBjZWxscyB0aGF0IGFyZSBub3QgZnVsbCBoZWlnaHQuXG4gKiBbNF0gRHJhdyBcImNvcm5lcnNcIiAvIFwiZWRnZXNcIiBvbiBlYWNoIHNpZGUuXG4gKiBbNV0gQm9yZGVyIG9uIGxlZnQgYW5kIHJpZ2h0IHNpZGUuXG4gKiBbNl0gRW5zdXJlIGNvbG9yaXplZCBjZWxscyBoYXZlIHJvdW5kZWQgY29ybmVycyB0aGF0IGFyZSBhdCB0aGUgZW5kXG4gKiAgICAgdG8gaW5oZXJpdCB0aGUgb3V0ZXIgYm9yZGVyLlxuICogWzddIEVuc3VyZSBhbGwgcHNldWRvIGVsZW1lbnQgc3R5bGVzIGFyZSB1bnNldCB0byBzZXQgY3VzdG9tIHN0eWxlc1xuICogICAgIHdpdGhvdXQgbWFudWFsIChyZSlzZXRzLlxuICogWzhdIE92ZXJ3cml0ZSBkZWZhdWx0LCBmaXggc3RyYWlnaHQgbGluZSBhbmQgYm9yZGVyLXJhZGl1cy5cbiAqIFs5XSBPdmVyd3JpdGUgZGVmYXVsdHMgKGJyb25zb24tZGVmYXVsdCkuXG4gKiBbMTBdIFNwZWNpZmljaXR5IPCfkqkg4oCTIERvbuKAmXQgYXNrIVxuICogWzExXSBTdGlja3kgY29sdW1uIHNoYWRvdy5cbiAqIFsxMl0gUmVjcmVhdGUgYm90dG9tIGJvcmRlciBmb3IgdGhlIHN0aWNreSBjb2x1bW4gY2VsbCBpbiB0aGUgbGFzdCByb3cuXG4gKi9cblxuLy8vIEFwcGx5IGJyYW5kLXNwZWNpZmljIGJvcmRlciBhcm91bmQgdGFibGVzLlxuLy8vIEV4dHJhY3RlZCBpbnRvIG1peGluIGFzIGl0IG5lZWRzIHRvIGJlIGFwcGxpZWQgdG8gZGlmZmVyZW50IGNvbnRleHRzXG4vLy8gYW5kIHNlbGVjdG9ycyBjYW4gbm90IGJlIGNvbWJpbmVkIChtb2RpZmllciBhbmQgTVEgZGVwZW5kYW50LlxuLy9cbi8vIEJvcmRlciBuZWVkcyB0byBiZSBhcHBsaWVkIHRvIHJvd3MvY2VsbHMgYXMgYSBib3JkZXIgYXJvdW5kIHRoZSBlbnRpcmVcbi8vIHRhYmxlIGRvZXMgbm90IHdvcmsgZm9yIHRoZSBkaWZmZXJlbnQgdmFyaWFudHMgKGUuZy4gcmVzcG9uc2l2ZSwgYXV0bykgYW5kXG4vLyB0aGUgc3RpY2t5IHZhcmlhbnRzLlxuQG1peGluIHRhYmxlLWN1c3RvbS1ib3JkZXIoKSB7XG4gICAgdGhlYWQsXG4gICAgdGZvb3Qge1xuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBhbGw6IHVuc2V0OyAvKiBbN10gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gZHJhdyBvdXRlciBib3JkZXIgKHRoZWFkID0gdG9wLCB0Zm9vdCA9IGJvdHRvbSlcbiAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCwgOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICR0YWJsZS1ib3JkZXItd2lkdGg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICB0aGVhZCB7XG5cbiAgICAgICAgdHIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNrb2RhLXRhYmxlLWJvcmRlcjsgLyogWzJdICovXG4gICAgICAgIH1cblxuICAgICAgICB0aCB7XG5cbiAgICAgICAgICAgIC8qIFszXSAqL1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB0b3A6ICR0YWJsZS1jZWxsLXBhZGRpbmctdmVydGljYWw7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAkdGFibGUtY2VsbC1wYWRkaW5nLXZlcnRpY2FsO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkdGFibGUtYm9yZGVyLXdpZHRoO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG5cbiAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCwgOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdG9wOiAwOyAvKiBbM10gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAvKiBbNF0gKi9cbiAgICB0aGVhZCxcbiAgICB0Zm9vdCB7XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGFsbDogdW5zZXQ7IC8qIFs3XSAqL1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkOjphZnRlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICRza29kYS10YWJsZS1ib3JkZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZDo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNrb2RhLXRhYmxlLWJvcmRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAvKiBbNF0gKi9cbiAgICB0aGVhZCB7XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3A6ICRza29kYS10YWJsZS1ib3JkZXI7IC8qIFsyXSAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkOjphZnRlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHNrb2RhLXRhYmxlLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZDo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkc2tvZGEtdGFibGUtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAvKiBbNF0gKi9cbiAgICB0Zm9vdCB7XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcblxuICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkLCA6bGFzdC1jaGlsZCk6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkc2tvZGEtdGFibGUtYm9yZGVyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkOjphZnRlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHNrb2RhLXRhYmxlLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZDo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkc2tvZGEtdGFibGUtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmOm5vdCguYy10YWJsZS0tZGF0YS1jb250cm9scykgdGJvZHkge1xuXG4gICAgICAgIHRyIHtcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcblxuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcblxuICAgICAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkOjphZnRlcixcbiAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDA7IC8qIFs4XSAqL1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVXNlIGA6OmJlZm9yZWAgdG8gb3ZlcndyaXRlIGJvcmRlcnMgb24gdGhlIHNpZGUuXG4gICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQ6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxsOiB1bnNldDsgLyogWzddICovXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkc2tvZGEtdGFibGUtYm9yZGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICRza29kYS10YWJsZS1ib3JkZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkc2tvZGEtdGFibGUtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZDo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNrb2RhLXRhYmxlLWJvcmRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkc2tvZGEtdGFibGUtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLyogWzVdICovXG4gICAgdGJvZHkge1xuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuXG4gICAgICAgICAgICAgICAgLy8gY29tYmluZSB3aXRoIGB0aGVhZCB0aDo6YmVmb3JlYD9cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBhbGw6IHVuc2V0OyAvKiBbN10gKi9cbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICR0YWJsZS1ib3JkZXItd2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQ6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICB0ciB7XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG5cbiAgICAgICAgICAgICAgICA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkc2tvZGEtdGFibGUtYm9yZGVyLXJhZGl1czsgLyogWzZdICovXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHNrb2RhLXRhYmxlLWJvcmRlci1yYWRpdXM7IC8qIFs2XSAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cbn1cblxuLmMtdGFibGUtd3JhcHBlcjpub3QoLmMtdGFibGUtLXJlc3BvbnNpdmUpIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1jdXN0b20tYm9yZGVyKCk7XG59XG5cbi5jLXRhYmxlLS1zdGlja3ktY29sdW1uIHtcblxuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gICAgJi5oYXMtc3RpY2t5LWNvbHVtbi5oYXMtc3RpY2t5LWNvbHVtbi5oYXMtc3RpY2t5LWNvbHVtbi5oYXMtc3RpY2t5LWNvbHVtbiB7IC8qIFsxMF0gKi9cbiAgICAgICAgdHIgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGFibGUtY2VsbC1iYWNrZ3JvdW5kLWNvbG9yLCAjeyR0YWJsZS1zdGlja3ktY2VsbC1iYWNrZ3JvdW5kLWNvbG9yfSk7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUgeyAvKiBbMTFdICovXG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkdGFibGUtc3RpY2t5LWZpcnN0LWNvbHVtbi1zaGFkb3ctc2l6ZTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIHJpZ2h0LFxuICAgICAgICAgICAgICAgICAgICByZ2JhKDAsIDAsIDAsIDAuMSksXG4gICAgICAgICAgICAgICAgICAgIHJnYmEoMCwgMCwgMCwgMClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRib2R5IHRyOmxhc3QtY2hpbGQgPiA6Zmlyc3QtY2hpbGQ6OmFmdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICR0YWJsZS1ib3JkZXItdmVydGljYWw7IC8qIFsxMl0gKi9cbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5jLXRhYmxlLS1yZXNwb25zaXZlIHRoOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICR0YWJsZS1jZWxsLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkdGFibGUtY2VsbC1wYWRkaW5nLWhvcml6b250YWw7XG59XG5cbi5jLXRhYmxlLS1yZXNwb25zaXZlIHtcblxuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPiN7JHRhYmxlLXJlc3BvbnNpdmUtYnJlYWtwb2ludH1cIikge1xuICAgICAgICBAaW5jbHVkZSB0YWJsZS1jdXN0b20tYm9yZGVyKCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JHRhYmxlLXJlc3BvbnNpdmUtYnJlYWtwb2ludH1cIikge1xuXG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIGJvcmRlcjogJHNrb2RhLXRhYmxlLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRza29kYS10YWJsZS1ib3JkZXItcmFkaXVzO1xuICAgICAgICB9XG5cbiAgICAgICAgdHIgKyB0ciB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDsgLyogWzldICovXG4gICAgICAgIH1cblxuICAgICAgICB0YWJsZSB0Ym9keSA+IHRyOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkc2tvZGEtdGFibGUtYm9yZGVyOyAvKiBbOV0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIFtkYXRhLWNvbHVtbmhlYWRlcl0ge1xuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgYWxsOiB1bnNldDsgLyogWzddICovXG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAkdGFibGUtY2VsbC1wYWRkaW5nLXZlcnRpY2FsO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogJHRhYmxlLWNlbGwtcGFkZGluZy12ZXJ0aWNhbDtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHRhYmxlLXJlc3BvbnNpdmUtY29sdW1uLWdhcH0pO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkdGFibGUtYm9yZGVyLXdpZHRoO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZDo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkc2tvZGEtdGFibGUtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkc2tvZGEtdGFibGUtYm9yZGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1RPR0dMRVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AdXNlIFwic2FzczptYXRoXCIgYXMgKjtcblxuLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4vLyBAVE9ETzogY29uc2lkZXIgcmVmYWN0b3Jpbmcgd2l0aCBkZWVwIG5lc3RpbmcsIHN0YXRlcyBldGMuXG4vLyBAVE9ETzogbWFrZSBib3JkZXIgZXRjLiBjb25kaXRpb25hbCBkZWNsYXJhdGlvbnNcbi8vIEBUT0RPOiBkaXNhYmxlZCBzdGF0ZSAoQlJPTi0zODE3KVxuXG4vLyBUb2dnbGVcbiR0b2dnbGUtdHJhbnNpdGlvbi10aW1lOiAgICAgICAgICAgICAkR0xPQkFMLVRSQU5TSVRJT04tRFVSQVRJT04gIWRlZmF1bHQ7XG4kdG9nZ2xlLWJhci10cmFuc2l0aW9uLXRpbWU6ICAgICAgICAgZGl2KCR0b2dnbGUtdHJhbnNpdGlvbi10aW1lLCAzKSAhZGVmYXVsdDtcblxuLy8gVG9nZ2xlIEJhclxuJHRvZ2dsZS1iYXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULUxBUkdFICFkZWZhdWx0O1xuJHRvZ2dsZS1iYXItaGVpZ2h0OiAgICAgICAgICAgICAgICAgICRHTE9CQUwtTElORS1IRUlHSFQgIWRlZmF1bHQ7XG4kdG9nZ2xlLWJhci1zcGFjaW5nOiAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kdG9nZ2xlLWJhci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kdG9nZ2xlLWJhci1iYWNrZ3JvdW5kLWFjdGl2ZTogICAgICAgJHRvZ2dsZS1iYXItYmFja2dyb3VuZCAhZGVmYXVsdDtcbiR0b2dnbGUtYmFyLWJvcmRlci13aWR0aDogICAgICAgICAgICAkR0xPQkFMLUlOUFVULUJPUkRFUi1XSURUSCAhZGVmYXVsdDtcbiR0b2dnbGUtYmFyLWJvcmRlci1jb2xvcjogICAgICAgICAgICAkQ09MT1ItSU5BQ1RJVkUgIWRlZmF1bHQ7XG4kdG9nZ2xlLWJhci1ib3JkZXItY29sb3ItaG92ZXI6ICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kdG9nZ2xlLWJhci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgJHRvZ2dsZS1iYXItYm9yZGVyLXdpZHRoIHNvbGlkICR0b2dnbGUtYmFyLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiR0b2dnbGUtYmFyLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICA0cHggIWRlZmF1bHQ7XG5cbi8vIFRvZ2dsZSBIYW5kbGVcbiR0b2dnbGUtaGFuZGxlLXdpZHRoOiAgICAgICAgICAgICAgICA2cHggIWRlZmF1bHQ7XG4kdG9nZ2xlLWhhbmRsZS1oZWlnaHQ6ICAgICAgICAgICAgICAgMTZweCAhZGVmYXVsdDtcbiR0b2dnbGUtaGFuZGxlLWJvcmRlci13aWR0aDogICAgICAgICAycHggIWRlZmF1bHQ7XG4kdG9nZ2xlLWhhbmRsZS1ib3JkZXItc3R5bGU6ICAgICAgICAgZG90dGVkICFkZWZhdWx0O1xuJHRvZ2dsZS1oYW5kbGUtYm9yZGVyLWNvbG9yOiAgICAgICAgICRDT0xPUi1TVUJUTEUgIWRlZmF1bHQ7XG4kdG9nZ2xlLWhhbmRsZS1ib3JkZXI6ICAgICAgICAgICAgICAgJHRvZ2dsZS1oYW5kbGUtYm9yZGVyLXdpZHRoICR0b2dnbGUtaGFuZGxlLWJvcmRlci1zdHlsZSAkdG9nZ2xlLWhhbmRsZS1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kdG9nZ2xlLWhhbmRsZS1ib3JkZXItcmFkaXVzOiAgICAgICAgNHB4ICFkZWZhdWx0O1xuJHRvZ2dsZS1oYW5kbGUtYm94LXNoYWRvdzogICAgICAgICAgIDAgMnB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC44NSkgIWRlZmF1bHQ7XG4kdG9nZ2xlLWhhbmRsZS1jb2xvci1pbmFjdGl2ZTogICAgICAgJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuJHRvZ2dsZS1oYW5kbGUtY29sb3ItYWN0aXZlOiAgICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiR0b2dnbGUtb24tb2ZmLWhhbmRsZS1jb2xvci1hY3RpdmU6ICAkQ09MT1ItSElHSExJR0hUICFkZWZhdWx0O1xuJHRvZ2dsZS1vbi1vZmYtdGV4dC1jb2xvci1pbmFjdGl2ZTogIG51bGwgIWRlZmF1bHQ7XG5cbi8vIFRvZ2dsZSBUZXh0XG4kdG9nZ2xlLXRleHQtZm9udC1zaXplOiAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR0b2dnbGUtdGV4dC1mb250LXdlaWdodDogICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHRvZ2dsZS10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIEhpZGUgbmF0aXZlIGNoZWNrYm94LlxuICogWzJdIEdpdmUgc3BhY2UgZm9yIHRoZSAoYWJzb2x1dGUgcG9zaXRpb25lZCkgdG9nZ2xlLlxuICogWzNdIFZlcnRpY2FsIGFsaWdubWVudCBmb3IgdG9nZ2xlIGFuZCB0ZXh0LlxuICogWzRdIENvcnJlY3QgYWxpZ25tZW50LlxuICogWzVdIFJlbGF0aXZlIGxhYmVscyB0byBoZWxwIHBvc2l0aW9uIHRoZSBwc2V1ZG8gZWxlbWVudHMuXG4gKlx0ICAgVGhlIHotaW5kZXggd2lsbCBiZSBoYW5keSBsYXRlciwgd2hlbiB0aGUgbGFiZWxzIHRoYXQgb3ZlcmxhcCB0aGUgdmlzdWFsXG4gKiAgICAgdG9nZ2xlIFVJIG5lZWQgdG8gYmUgYWRqdXN0ZWRcbiAqXHQgICB0byBhbGxvdyBmb3IgYSB1c2VyIHRvIHRvZ2dsZSB0aGUgdG9nZ2xlIHdpdGhvdXQgaGF2aW5nIHRvIG1vdmUgdGhlaXJcbiAqICAgICBtb3VzZS9maW5nZXIgdG8gdGhlIGRpZmZlcmVudCBzaWRlcyBvZiB0aGUgVUkuXG4gKiBbNl0gVGhlIGxhcmdlIHBhZGRpbmcgaXMgdXNlZCB0byBwb3NpdGlvbiB0aGUgbGFiZWxzIG9uIHRvcCBvZiB0aGUgdmlzdWFsIFVJLFxuICogICAgIHNvIHRoZSB0b2dnbGUgVUkgaXRzZWxmIGNhbiBiZSBtb3VzZSBjbGlja2VkIG9yIGZpbmdlciB0YXBwZWQgdG8gdG9nZ2xlXG4gKiAgICAgdGhlIGN1cnJlbnQgb3B0aW9uLlxuICogWzddIE1vdmUgdGhlIDJuZCBsYWJlbCB0byBoYXZlIGEgbG93ZXIgei1pbmRleCwgc28gd2hlbiB0aGF0IG9wdGlvbiBpc1xuICogICAgIHRvZ2dsZWQsIHRoZSBmaXJzdCBsYWJlbCB3aWxsIG92ZXJsYXkgb24gdG9wIG9mIHRoZSB0b2dnbGUgdWksIGFuZCB0aGVcbiAqICAgICB0b2dnbGUgY2FuIGJlIHByZXNzZWQgYWdhaW4gdG8gdG9nZ2xlIGJhY2sgdG8gdGhlIHByZXZpb3VzIHN0YXRlLlxuICogWzhdIFByZXZlbnQgdGV4dCBzZWxlY3Rpb24gb24gZmFzdCBkb3VibGUgY2xpY2tzLlxuICovXG4uYy10b2dnbGUge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtdG91Y2gtaGlnaGxpZ2h0KCk7XG59XG5cbiAgICAuYy10b2dnbGVfX2lucHV0IHtcbiAgICAgICAgQGluY2x1ZGUgYTExeS1oaWRkZW4oKTsgLyogWzFdICovXG5cbiAgICAgICAgJjpjaGVja2VkIHtcblxuICAgICAgICAgICAgKyAuYy10b2dnbGVfX3RleHQ6bGFzdC1jaGlsZCB7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiA6Y2hlY2tlZCBzdGF0ZS5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBAaWYgKCR0b2dnbGUtYmFyLWJhY2tncm91bmQtYWN0aXZlICE9IHRyYW5zcGFyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9nZ2xlLWJhci1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCR0b2dnbGUtYmFyLXdpZHRoIC0gKCR0b2dnbGUtaGFuZGxlLXdpZHRoICsgKCgoJHRvZ2dsZS1iYXItaGVpZ2h0ICogMC41KSAtICgkdG9nZ2xlLWhhbmRsZS13aWR0aCAqIDAuNSkpICogMikpKTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRvZ2dsZS1oYW5kbGUtY29sb3ItYWN0aXZlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAuYy10b2dnbGUtLW9uLW9mZiAmOmNoZWNrZWQge1xuXG4gICAgICAgICAgICArIC5jLXRvZ2dsZV9fdGV4dDpsYXN0LWNoaWxkIHtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIDpjaGVja2VkIHN0YXRlLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRvZ2dsZS1vbi1vZmYtaGFuZGxlLWNvbG9yLWFjdGl2ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy10b2dnbGVfX3RleHQge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICAgJHRvZ2dsZS10ZXh0LWZvbnQtc2l6ZSxcbiAgICAgICAgICAgICRsaW5lLWhlaWdodDogZmFsc2UsXG4gICAgICAgICAgICAkYWNjZXB0LW51bGw6IHRydWUsXG4gICAgICAgICk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiBbMl0gKi9cbiAgICAgICAgZm9udC13ZWlnaHQ6ICR0b2dnbGUtdGV4dC1mb250LXdlaWdodDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICR0b2dnbGUtYmFyLWhlaWdodDsgLyogWzNdICovXG4gICAgICAgIGNvbG9yOiAkdG9nZ2xlLXRleHQtY29sb3I7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7IC8qIFs4XSAqL1xuXG4gICAgICAgIC8vIGxlZnQgbGFiZWxcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICR0b2dnbGUtYmFyLXNwYWNpbmc7XG5cbiAgICAgICAgICAgIC5jLXRvZ2dsZS0tb24tb2ZmICYge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdG9nZ2xlLW9uLW9mZi10ZXh0LWNvbG9yLWluYWN0aXZlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmlnaHQgbGFiZWxcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogKCR0b2dnbGUtYmFyLXdpZHRoICsgJHRvZ2dsZS1iYXItc3BhY2luZyk7IC8qIFsyXSAqL1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVGhlIHRvZ2dsZSBiYXIuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigkdHJhbnNpdGlvbi1kdXJhdGlvbjogJHRvZ2dsZS1iYXItdHJhbnNpdGlvbi10aW1lKTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogJHRvZ2dsZS1iYXItd2lkdGg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkdG9nZ2xlLWJhci1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBpZigkdG9nZ2xlLWJhci1ib3JkZXIsICR0b2dnbGUtYmFyLWJvcmRlciwgbnVsbCk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHRvZ2dsZS1iYXItYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9nZ2xlLWJhci1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246ICR0b2dnbGUtYmFyLXRyYW5zaXRpb24tdGltZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkdG9nZ2xlLWJhci1ib3JkZXItY29sb3ItaG92ZXIpIHtcbiAgICAgICAgICAgICAgICAmOmhvdmVyOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICR0b2dnbGUtYmFyLWJvcmRlci1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVGhlIHRvZ2dsZSBoYW5kbGUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCR0cmFuc2l0aW9uLWR1cmF0aW9uOiAkdG9nZ2xlLXRyYW5zaXRpb24tdGltZSk7XG4gICAgICAgICAgICAgICAgdG9wOiAoKCR0b2dnbGUtYmFyLWhlaWdodCAqIDAuNSkgLSAoJHRvZ2dsZS1oYW5kbGUtaGVpZ2h0ICogMC41KSk7IC8qIFs0XSAqL1xuICAgICAgICAgICAgICAgIGxlZnQ6ICgoJHRvZ2dsZS1iYXItaGVpZ2h0ICogMC41KSAtICgkdG9nZ2xlLWhhbmRsZS13aWR0aCAqIDAuNSkpOyAvKiBbNF0gKi9cbiAgICAgICAgICAgICAgICB3aWR0aDogJHRvZ2dsZS1oYW5kbGUtd2lkdGg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkdG9nZ2xlLWhhbmRsZS1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBpZigkdG9nZ2xlLWhhbmRsZS1ib3JkZXIsICR0b2dnbGUtaGFuZGxlLWJvcmRlciwgbnVsbCk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHRvZ2dsZS1oYW5kbGUtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9nZ2xlLWhhbmRsZS1jb2xvci1pbmFjdGl2ZTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpZigkdG9nZ2xlLWhhbmRsZS1ib3gtc2hhZG93LCAkdG9nZ2xlLWhhbmRsZS1ib3gtc2hhZG93LCBudWxsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNUT0dHTEUgKFNldHRpbmdzKVxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiR0b2dnbGUtYmFyLXdpZHRoOiAgICAgICAgICAgICAgICAgIDUycHggIWRlZmF1bHQ7XG4kdG9nZ2xlLWJhci1oZWlnaHQ6ICAgICAgICAgICAgICAgICAyNHB4ICFkZWZhdWx0O1xuJHRvZ2dsZS1iYXItc3BhY2luZzogICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJHRvZ2dsZS1iYXItYmFja2dyb3VuZDogICAgICAgICAgICAgJENPTE9SLU9OLVNVUkZBQ0UtNTAwICFkZWZhdWx0O1xuJHRvZ2dsZS1iYXItYmFja2dyb3VuZC1hY3RpdmU6ICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuXG4kdG9nZ2xlLWJhci1ib3JkZXI6ICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiR0b2dnbGUtYmFyLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICgkdG9nZ2xlLWJhci1oZWlnaHQgKiAwLjUpICFkZWZhdWx0O1xuXG4kdG9nZ2xlLWhhbmRsZS13aWR0aDogICAgICAgICAgICAgICAxOHB4ICFkZWZhdWx0O1xuJHRvZ2dsZS1oYW5kbGUtaGVpZ2h0OiAgICAgICAgICAgICAgMThweCAhZGVmYXVsdDtcbiR0b2dnbGUtaGFuZGxlLWJvcmRlci1yYWRpdXM6ICAgICAgIDEwMHB4ICFkZWZhdWx0O1xuJHRvZ2dsZS1oYW5kbGUtYm94LXNoYWRvdzogICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kdG9nZ2xlLWhhbmRsZS1ib3JkZXI6ICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiR0b2dnbGUtaGFuZGxlLWNvbG9yLWluYWN0aXZlOiAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiR0b2dnbGUtaGFuZGxlLWNvbG9yLWFjdGl2ZTogICAgICAgICR0b2dnbGUtaGFuZGxlLWNvbG9yLWluYWN0aXZlICFkZWZhdWx0O1xuXG4kdG9nZ2xlLW9uLW9mZi1oYW5kbGUtY29sb3ItYWN0aXZlOiAkdG9nZ2xlLWhhbmRsZS1jb2xvci1pbmFjdGl2ZSAhZGVmYXVsdDtcblxuJHRvZ2dsZS1hLWItaGFuZGxlLWNvbG9yOiAgICAgICAgICAgJHRvZ2dsZS1oYW5kbGUtY29sb3ItaW5hY3RpdmUgIWRlZmF1bHQ7XG4kdG9nZ2xlLWEtYi10ZXh0LWNvbG9yLWluYWN0aXZlOiAgICAkQ09MT1ItSU5BQ1RJVkUgIWRlZmF1bHQ7XG5cbiR0b2dnbGUtdGV4dC1mb250LXNpemU6ICAgICAgICAgICAgICRGUy0xICFkZWZhdWx0O1xuJHRvZ2dsZS10ZXh0LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1MQUJFTC1GT05ULVdFSUdIVCAhZGVmYXVsdDtcbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNUT0dHTEVcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2tvZGEtdG9nZ2xlLWZvY3VzLW9mZnNldDogMnB4ICFkZWZhdWx0O1xuXG4uYy10b2dnbGUge1xuXG59XG5cbiAgICAuYy10b2dnbGVfX2lucHV0IHtcblxuICAgICAgICAmOmZvY3VzLXZpc2libGUgfiA6OmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb2N1cy1zdHlsZXMoXG4gICAgICAgICAgICAgICAgJG91dGxpbmUtb2Zmc2V0OiAkc2tvZGEtdG9nZ2xlLWZvY3VzLW9mZnNldCxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNQUk9HUkVTU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRwcm9ncmVzcy1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICRQUk9HUkVTUy1IRUlHSFQgIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtdmFsdWUtYmFja2dyb3VuZDogICAgICAgICAkUFJPR1JFU1MtUFJPR1JFU1MtQkFDS0dST1VORCAhZGVmYXVsdDtcbiRwcm9ncmVzcy12YWx1ZS1iYWNrZ3JvdW5kLXN1Y2Nlc3M6ICRQUk9HUkVTUy1QUk9HUkVTUy1CQUNLR1JPVU5ELVNVQ0NFU1MgIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtdmFsdWUtYmFja2dyb3VuZC1lcnJvcjogICAkUFJPR1JFU1MtUFJPR1JFU1MtQkFDS0dST1VORC1FUlJPUiAhZGVmYXVsdDtcbiRwcm9ncmVzcy1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICRQUk9HUkVTUy1CT1JERVItUkFESVVTICFkZWZhdWx0O1xuJHByb2dyZXNzLXRyYWNrLWJhY2tncm91bmQ6ICAgICAgICAgJFBST0dSRVNTLVRSQUNLLUJBQ0tHUk9VTkQgIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtdGhlbWVzOiAgICAgICAgICAgICAgICAgICAkUFJPR1JFU1MtVEhFTUVTICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBSZXNldCBicm93c2VyLWRlZmF1bHQgc3R5bGVzLlxuICogWzJdIFNldCB0cmFjayBiYWNrZ3JvdW5kLiBNYWlubHkgdXNlZCBmb3IgRmlyZWZveCBhcyBGaXJlZm94IGRvZXMgbm90IHN1cHBvcnRcbiAqICAgICBwc2V1ZG8gZWxlbWVudCBmb3IgdHJhY2suXG4gKi9cbi5jLXByb2dyZXNzIHtcbiAgICAtLXByb2dyZXNzLXRyYWNrLWJhY2tncm91bmQ6ICN7JHByb2dyZXNzLXRyYWNrLWJhY2tncm91bmR9O1xuXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbigpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7IC8qIFsxXSAqL1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHByb2dyZXNzLWhlaWdodDtcbiAgICBib3JkZXI6IDA7IC8qIFsxXSAqL1xuICAgIGJvcmRlci1yYWRpdXM6IGlmKCRwcm9ncmVzcy1ib3JkZXItcmFkaXVzLCAkcHJvZ3Jlc3MtYm9yZGVyLXJhZGl1cywgbnVsbCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJvZ3Jlc3MtdHJhY2stYmFja2dyb3VuZCk7IC8qIFsyXSAqL1xuXG4gICAgLy8gVEhFTUlOR1xuICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICRwcm9ncmVzcy10aGVtZXMpIHtcbiAgICAgICAgQGlmICh2YXJ5LWdldChcImJhY2tncm91bmQtY29sb3JcIikpIHtcbiAgICAgICAgICAgIC0tcHJvZ3Jlc3MtdHJhY2stYmFja2dyb3VuZDogI3t2YXJ5LWdldChcImJhY2tncm91bmQtY29sb3JcIil9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVFJBQ0sgKFwiYmFja2dyb3VuZClcbiAgICAgKi9cbiAgICAmOjotd2Via2l0LXByb2dyZXNzLWJhciB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRwcm9ncmVzcy1ib3JkZXItcmFkaXVzLCAkcHJvZ3Jlc3MtYm9yZGVyLXJhZGl1cywgbnVsbCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByb2dyZXNzLXRyYWNrLWJhY2tncm91bmQpOyAvKiBbMl0gKi9cblxuICAgICAgICBAaW5jbHVkZSB2YXJ5KCRsb29wOiAkcHJvZ3Jlc3MtdGhlbWVzKSB7XG4gICAgICAgICAgICBAaWYgKHZhcnktZ2V0KFwiYmFja2dyb3VuZC1jb2xvclwiKSkge1xuICAgICAgICAgICAgICAgIC0tcHJvZ3Jlc3MtdHJhY2stYmFja2dyb3VuZDogI3t2YXJ5LWdldChcImJhY2tncm91bmQtY29sb3JcIil9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVkFMVUUgKFRoZSBcImZpbGxlZFwiIHBhcnQgb2YgdGhlIHByb2dyZXNzIGJhcilcbiAgICAgKi9cbiAgICAmOjotd2Via2l0LXByb2dyZXNzLXZhbHVlIHtcbiAgICAgICAgLS1wcm9ncmVzcy12YWx1ZS1iYWNrZ3JvdW5kOiAjeyRwcm9ncmVzcy12YWx1ZS1iYWNrZ3JvdW5kfTtcblxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRwcm9ncmVzcy1ib3JkZXItcmFkaXVzLCAkcHJvZ3Jlc3MtYm9yZGVyLXJhZGl1cywgbnVsbCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByb2dyZXNzLXZhbHVlLWJhY2tncm91bmQpO1xuXG4gICAgICAgIEBhdC1yb290IC5pcy1zdWNjZXNzLmMtcHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xuICAgICAgICAgICAgLS1wcm9ncmVzcy12YWx1ZS1iYWNrZ3JvdW5kOiAjeyRwcm9ncmVzcy12YWx1ZS1iYWNrZ3JvdW5kLXN1Y2Nlc3N9O1xuICAgICAgICB9XG5cbiAgICAgICAgQGF0LXJvb3QgLmlzLWVycm9yLmMtcHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xuICAgICAgICAgICAgLS1wcm9ncmVzcy12YWx1ZS1iYWNrZ3JvdW5kOiAjeyRwcm9ncmVzcy12YWx1ZS1iYWNrZ3JvdW5kLWVycm9yfTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmlyZWZveC1zcGVjaWZpYyBzdHlsaW5nLlxuICAgICAqXG4gICAgICogRmlyZWZveCBzdXBwb3J0cyBvbmx5IGEgcHNldWRvIGVsZW1lbnQgZm9yIHZhbHVlLlxuICAgICAqIFRoZSB0cmFjayBiYWNrZ3JvdW5kIGlzIHN0eWxlZCB2aWEgdGhlIGA8cHJvZ3Jlc3M+YCBlbGVtZW50IFsyXS5cbiAgICAgKi9cbiAgICAmOjotbW96LXByb2dyZXNzLWJhciB7XG4gICAgICAgIC0tcHJvZ3Jlc3MtdmFsdWUtYmFja2dyb3VuZDogI3skcHJvZ3Jlc3MtdmFsdWUtYmFja2dyb3VuZH07XG5cbiAgICAgICAgYm9yZGVyLXJhZGl1czogaWYoJHByb2dyZXNzLWJvcmRlci1yYWRpdXMsICRwcm9ncmVzcy1ib3JkZXItcmFkaXVzLCBudWxsKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJvZ3Jlc3MtdmFsdWUtYmFja2dyb3VuZCk7XG5cbiAgICAgICAgQGF0LXJvb3QgLmlzLXN1Y2Nlc3MuYy1wcm9ncmVzczo6LW1vei1wcm9ncmVzcy1iYXIge1xuICAgICAgICAgICAgLS1wcm9ncmVzcy12YWx1ZS1iYWNrZ3JvdW5kOiAjeyRwcm9ncmVzcy12YWx1ZS1iYWNrZ3JvdW5kLXN1Y2Nlc3N9O1xuICAgICAgICB9XG5cbiAgICAgICAgQGF0LXJvb3QgLmlzLWVycm9yLmMtcHJvZ3Jlc3M6Oi1tb3otcHJvZ3Jlc3MtYmFyIHtcbiAgICAgICAgICAgIC0tcHJvZ3Jlc3MtdmFsdWUtYmFja2dyb3VuZDogI3skcHJvZ3Jlc3MtdmFsdWUtYmFja2dyb3VuZC1lcnJvcn07XG4gICAgICAgIH1cblxuICAgIH1cblxufVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI1BST0dSRVNTXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJFBST0dSRVNTLUhFSUdIVDogICAgICAgICAgICAgICAgICAgICAgNHB4ICFkZWZhdWx0O1xuJFBST0dSRVNTLUhFSUdIVC1MQVJHRTogICAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcbiRQUk9HUkVTUy1QUk9HUkVTUy1CQUNLR1JPVU5EOiAgICAgICAgICRDT0xPUi1ISUdITElHSFQgIWRlZmF1bHQ7XG4kUFJPR1JFU1MtUFJPR1JFU1MtQkFDS0dST1VORC1TVUNDRVNTOiAkQ09MT1ItU1VDQ0VTUyAhZGVmYXVsdDtcbiRQUk9HUkVTUy1QUk9HUkVTUy1CQUNLR1JPVU5ELUVSUk9SOiAgICRDT0xPUi1BTEVSVCAhZGVmYXVsdDtcbiRQUk9HUkVTUy1CT1JERVItUkFESVVTOiAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kUFJPR1JFU1MtVFJBQ0stQkFDS0dST1VORDogICAgICAgICAgICAkQ09MT1ItU1VCVExFICFkZWZhdWx0O1xuXG4kUFJPR1JFU1MtVEhFTUVTOiAoXG4gICAgXCJhbHRlcm5hdGl2ZVwiOiAoXG4gICAgICAgIFwiYmFja2dyb3VuZC1jb2xvclwiOiAkQ09MT1ItV0hJVEVcbiAgICApXG4pICFkZWZhdWx0O1xuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1BSSUNFIChTZXR0aW5ncylcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kcHJpY2UtYm94LXNoYWRvdzogICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtQk9YLVNIQURPVyAhZGVmYXVsdDtcblxuJHByaWNlLWJveC1oZWFkZXItYm9yZGVyLWludGVncmF0ZWQ6ICAgICAxcHggc29saWQgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuXG4kcHJpY2UtYm94LWJvZHktcGFkZGluZzogICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuXG4kcHJpY2UtYm94LXByaWNlLWZvbnQtc2l6ZTogICAgICAgICAgICAgIG1hcC1nZXQoJEZTMSwgXCJzXCIpICFkZWZhdWx0O1xuJHByaWNlLWJveC1wcmljZS1mb250LXNpemUtc21hbGw6ICAgICAgICBtYXAtZ2V0KCRGUzEsIG51bGwpICFkZWZhdWx0O1xuXG4kcHJpY2UtYm94LWRpc2NvdW50LW9sZC1wcmljZS1mb250LXNpemU6ICRGUzAgIWRlZmF1bHQ7XG5cbiRwcmljZS1ib3gtYWRkaXRpb25hbC1pbmZvLWZvbnQtc2l6ZTogICAgJEZTLTIgIWRlZmF1bHQ7XG4kcHJpY2UtYm94LWFkZGl0aW9uYWwtaW5mby1mb250LXdlaWdodDogICRHTE9CQUwtRk9OVC1XRUlHSFQtUkVHVUxBUiAhZGVmYXVsdDtcbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNQUklDRS1CT1hcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kcHJpY2UtYm94LXdpZHRoLXF1ZXJpZXM6IChcbiAgICBzbWFsbDogIDAsXG4gICAgbWVkaXVtOiAyNjAsXG4pICFkZWZhdWx0O1xuXG4kcHJpY2UtYm94LWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kcHJpY2UtYm94LWJvcmRlci1pbnRlZ3JhdGVkOiAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kcHJpY2UtYm94LXNoYWRvdzogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kcHJpY2UtYm94LXNoYWRvdy1pbnRlZ3JhdGVkOiAgICAgICAgICAgICAgICAgIG5vbmUgIWRlZmF1bHQ7XG5cbiRwcmljZS1ib3gtaGVhZGVyLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJHByaWNlLWJveC1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRwcmljZS1ib3gtaGVhZGVyLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJHByaWNlLWJveC1oZWFkZXItYmFja2dyb3VuZC1jb2xvci1pbnRlZ3JhdGVkOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRwcmljZS1ib3gtaGVhZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJHByaWNlLWJveC1oZWFkZXItY29sb3ItaW50ZWdyYXRlZDogICAgICAgICAgICAkQ09MT1ItQkFTRS1URVhUICFkZWZhdWx0O1xuJHByaWNlLWJveC1oZWFkZXItYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHByaWNlLWJveC1oZWFkZXItYm9yZGVyLWludGVncmF0ZWQ6ICAgICAgICAgICAxcHggc29saWQgJHByaWNlLWJveC1oZWFkZXItY29sb3ItaW50ZWdyYXRlZCAhZGVmYXVsdDtcbiRwcmljZS1ib3gtaGVhZGVyLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRwcmljZS1ib3gtaGVhZGVyLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgbWFwLWdldCgkRlMwLCBudWxsKSAhZGVmYXVsdDtcbiRwcmljZS1ib3gtaGVhZGVyLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xEICFkZWZhdWx0O1xuJHByaWNlLWJveC1oZWFkZXItdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kcHJpY2UtYm94LWJvZHktcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJHByaWNlLWJveC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAkcHJpY2UtYm94LWJvZHktcGFkZGluZy12ZXJ0aWNhbCAhZGVmYXVsdDtcbiRwcmljZS1ib3gtYm9keS1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgJHByaWNlLWJveC1ib2R5LXBhZGRpbmctdmVydGljYWwgJHByaWNlLWJveC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbCAhZGVmYXVsdDtcbiRwcmljZS1ib3gtYm9keS1wYWRkaW5nLXNtYWxsOiAgICAgICAgICAgICAgICAgJHByaWNlLWJveC1ib2R5LXBhZGRpbmctdmVydGljYWwgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kcHJpY2UtYm94LWJvZHktYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICRDT0xPUi1QQUxFICFkZWZhdWx0O1xuJHByaWNlLWJveC1ib2R5LWJhY2tncm91bmQtY29sb3ItaW50ZWdyYXRlZDogICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRwcmljZS1ib3gtYm9keS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcbiRwcmljZS1ib3gtYm9keS1jb250ZW50LWl0ZW0tc3BhY2luZzogICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuJHByaWNlLWJveC1wcmljZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICBtYXAtZ2V0KCRGUzUsIG51bGwpICFkZWZhdWx0O1xuJHByaWNlLWJveC1wcmljZS1mb250LXNpemUtc21hbGw6ICAgICAgICAgICAgICBtYXAtZ2V0KCRGUzQsIG51bGwpICFkZWZhdWx0O1xuJHByaWNlLWJveC1wcmljZS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAxICFkZWZhdWx0O1xuJHByaWNlLWJveC1wcmljZS1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQgIWRlZmF1bHQ7XG4kcHJpY2UtYm94LXByaWNlLXNwYWNpbmctdmVydGljYWw6ICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhYU01BTEwgIWRlZmF1bHQ7XG4kcHJpY2UtYm94LXByaWNlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRwcmljZS1ib3gtZGlzY291bnQtdmFsdWUtc3BhY2luZzogICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuXG4kcHJpY2UtYm94LWRpc2NvdW50LW9sZC1wcmljZS1mb250LXNpemU6ICAgICAgICRGUzEgIWRlZmF1bHQ7XG5cbi8vIE1hZ2ljIG51bWJlclxuJHByaWNlLWJveC10ZXh0LWFmdGVyLXByaWNlLW1hcmdpbi10b3A6ICAgICAgICAtMC4xNWVtICFkZWZhdWx0O1xuXG4kcHJpY2UtYm94LWFkZGl0aW9uYWwtaW5mby1tYXJnaW4tdG9wOiAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhYU01BTEwgIWRlZmF1bHQ7XG4kcHJpY2UtYm94LWFkZGl0aW9uYWwtaW5mby1mb250LXNpemU6ICAgICAgICAgICRGUy0xICFkZWZhdWx0O1xuJHByaWNlLWJveC1hZGRpdGlvbmFsLWluZm8tZm9udC13ZWlnaHQ6ICAgICAgICBudWxsICFkZWZhdWx0O1xuJHByaWNlLWJveC1hZGRpdGlvbmFsLWluZm8tY29sb3I6ICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHByaWNlLWJveC1hZGRpdGlvbmFsLWluZm8tbWF4LWxlbmd0aDogICAgICAgICA1MGNoICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBSZXNldCBkZWZhdWx0IG1hcmdpbi5cbiAqIFsyXSBFbnN1cmUgY3Jvc3NlZC1vdXQgdGV4dCBpZiBgPHM+YCBpcyBub3QgdXNlZCBvclxuICogICAgIFVzZXItQWdlbnQgc3R5bGVzIGFyZSBub3QgYXBwbGllZC5cbiAqIFszXSBFbnN1cmUgcHJpY2Ugbm90IGdldHRpbmcgd3JhcHBlZC5cbiAqIFs0XSBMaW1pdCB0aGUgYWRkaXRpb25hbCBpbmZvIHRleHQtbGVuZ3RoIHdoZW4gY29udGFpbmVyXG4gKiAgICAgaXMgZGlzcGxheWVkIHdpdGggYSBsYXJnZSB3aWR0aCB0b1xuICAgICogICAgIGEpIGltcHJvdmUgcmVhZGFiaWxpdHlcbiAgICAqICAgICBiKSBrZWVwIFwidmlzdWFsIGNvbm5lY3Rpb25cIiB0byBwcmljZSBpbmZvcm1hdGlvbiBhYm92ZVxuICogWzVdIEFsbG93IHdyYXBwaW5nIGluIGNhc2UgZGlzY291bnQgdmFsdWUgJiBwcmljZSBjYW4gbm90IGJlIGRpc3BsYXllZFxuICogICAgIHNpZGUtYnktc2lkZS5cbiAqIFs2XSBXcmFwIHRleHQgaW4gZXh0cmEgY29udGFpbmVyIHRvIGF2b2lkIG92ZXJmbG93IGFuZCBzdGlsbCBtYWludGFpblxuICogICAgIHRleHQgbGltaXRhdGlvbiB2aWEgYG1heC1sZW5ndGhgLlxuICogWzddIFNldCBgbWF4LXdpZHRoOiAxMDAlYCB0byBhdm9pZCB0ZXh0IG92ZXJmbG93LlxuICogICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9waGlsaXB3YWx0b24vZmxleGJ1Z3MjZmxleGJ1Zy0yXG4gKiBbOF0gQ29uZGl0aW9uYWxseSBvdXRwdXQgb25seSBzaGFkb3cgKG92ZXJ3cml0ZSkgd2hlbiBzaGFkb3cgaXMgc2V0IGluaXRpYWxseVxuICogICAgIHNldCBpbiBiYXNlIHZhcmlhbnQuXG4gKiBbOV0gSXTigJlzIGVhc2llciB0byBjb250cm9sIGVsZW1lbnRzIGluIGAuYy1wcmljZS1ib3hfX2JvZHlfX2NvbnRlbnRgIGFzXG4gKiAgICAgIGZsZXggaXRlbXMgKGUuZy4gYG1hcmdpbmAgZm9yIGBzcGFuYHMpLlxuICogWzEwXSBTaGlmdCB0aGUgdGV4dCBqdXN0IGEgbGl0dGxlIGJpdCB1cHdhcmRzIHRvd2FyZHMgdGhlIHByaWNlLiBXZSBhcmVcbiAqICAgICAgdXNpbmcgdGhlIFNhc3MgYG9yYCBvcGVyYXRvciBoZXJlIHRvIGF2b2lkIGEgbG9uZyB0ZXJuYXJ5IGNvbmRpdGlvbi5cbiAqIFsxMV0gQ29uc2lzdGVudCB2ZXJ0aWNhbCBzcGFjaW5nIGJldHdlZW4gYm9keSBjb250ZW50IGl0ZW1zLlxuICogWzEyXSBSZWR1Y2Ugc3BhY2luZyBhbmQgZm9udC1zaXplIHdoZW4gY29udGFpbmVyIGhhcyBhIHNtYWxsIHdpZHRoLlxuICogWzEzXSBSZXNldCBzcGFjaW5nIGFuZCBmb250LXNpemUgd2hlbiBjb250YWluZXIgaGFzIGEgYmlnZ2VyIHdpZHRoLlxuICovXG4uYy1wcmljZS1ib3gge1xuICAgIC0tY29udGFpbmVyLXdpZHRoczogXCIje2NxLWNvbnZlcnQtZGF0YSgkcHJpY2UtYm94LXdpZHRoLXF1ZXJpZXMpfVwiO1xuXG4gICAgYm9yZGVyOiAkcHJpY2UtYm94LWJvcmRlcjtcbiAgICBib3gtc2hhZG93OiAkcHJpY2UtYm94LXNoYWRvdztcblxuICAgIEBpbmNsdWRlIGNvbnRhaW5lcigkbWFwOiAkcHJpY2UtYm94LXdpZHRoLXF1ZXJpZXMsICRzaXplOiBcInNtYWxsXCIpIHtcbiAgICAgICAgLmMtcHJpY2UtYm94X19ib2R5IHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRwcmljZS1ib3gtYm9keS1wYWRkaW5nLXNtYWxsOyAvKiBbMTJdICovXG4gICAgICAgIH1cblxuICAgICAgICAuYy1wcmljZS1ib3hfX3ByaWNlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgICRwcmljZS1ib3gtcHJpY2UtZm9udC1zaXplLXNtYWxsLFxuICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogJHByaWNlLWJveC1wcmljZS1saW5lLWhlaWdodCxcbiAgICAgICAgICAgICk7IC8qIFsxMl0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgQGluY2x1ZGUgY29udGFpbmVyKCRtYXA6ICRwcmljZS1ib3gtd2lkdGgtcXVlcmllcywgJHNpemU6IFwibWVkaXVtXCIpIHtcbiAgICAgICAgLmMtcHJpY2UtYm94X19oZWFkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKCRwcmljZS1ib3gtaGVhZGVyLWZvbnQtc2l6ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAuYy1wcmljZS1ib3hfX2JvZHkge1xuICAgICAgICAgICAgcGFkZGluZzogJHByaWNlLWJveC1ib2R5LXBhZGRpbmc7IC8qIFsxM10gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXByaWNlLWJveF9fcHJpY2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICRmb250LXNpemU6ICRwcmljZS1ib3gtcHJpY2UtZm9udC1zaXplLC8qIFsxM10gKi9cbiAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICRwcmljZS1ib3gtcHJpY2UtbGluZS1oZWlnaHQsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5jLXByaWNlLWJveC0taW50ZWdyYXRlZCB7XG4gICAgICAgIGJveC1zaGFkb3c6IGlmKCRwcmljZS1ib3gtc2hhZG93LCAkcHJpY2UtYm94LXNoYWRvdy1pbnRlZ3JhdGVkLCBudWxsKTsgLyogWzhdICovXG5cbiAgICAgICAgQGlmICgkcHJpY2UtYm94LWJvcmRlci1pbnRlZ3JhdGVkID09IGZhbHNlKSB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgYm9yZGVyOiAkcHJpY2UtYm94LWJvcmRlci1pbnRlZ3JhdGVkO1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuICAgIC5jLXByaWNlLWJveF9faGVhZGVyIHtcbiAgICAgICAgcGFkZGluZzogJHByaWNlLWJveC1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbCAkcHJpY2UtYm94LWhlYWRlci1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRwcmljZS1ib3gtaGVhZGVyLWJvcmRlcjtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRwcmljZS1ib3gtaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXdlaWdodDogJHByaWNlLWJveC1oZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRwcmljZS1ib3gtaGVhZGVyLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpY2UtYm94LWhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICBjb2xvcjogJHByaWNlLWJveC1oZWFkZXItY29sb3I7XG5cbiAgICAgICAgLmMtcHJpY2UtYm94LS1pbnRlZ3JhdGVkICYge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHByaWNlLWJveC1oZWFkZXItYm9yZGVyLWludGVncmF0ZWQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpY2UtYm94LWhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yLWludGVncmF0ZWQ7XG4gICAgICAgICAgICBjb2xvcjogJHByaWNlLWJveC1oZWFkZXItY29sb3ItaW50ZWdyYXRlZDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtcHJpY2UtYm94X19ib2R5IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpY2UtYm94LWJvZHktYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgY29sb3I6ICRwcmljZS1ib3gtYm9keS1jb2xvcjtcblxuICAgICAgICAuYy1wcmljZS1ib3gtLWludGVncmF0ZWQgJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpY2UtYm94LWJvZHktYmFja2dyb3VuZC1jb2xvci1pbnRlZ3JhdGVkO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAgICAgLmMtcHJpY2UtYm94X19ib2R5X19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7IC8qIFs5XSAqL1xuICAgICAgICAgICAgZ2FwOiAkcHJpY2UtYm94LWJvZHktY29udGVudC1pdGVtLXNwYWNpbmc7IC8qIFsxMV0gKi9cbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IC8qIFs5XSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgLmMtcHJpY2UtYm94X19kaXNjb3VudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogJHByaWNlLWJveC1kaXNjb3VudC12YWx1ZS1zcGFjaW5nO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7IC8qIFs1XSAqL1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJpY2UtYm94LXByaWNlLXNwYWNpbmctdmVydGljYWw7XG4gICAgfVxuXG4gICAgICAgIC5jLXByaWNlLWJveF9fZGlzY291bnRfX29sZC1wcmljZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkcHJpY2UtYm94LWRpc2NvdW50LW9sZC1wcmljZS1mb250LXNpemUpO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7IC8qIFsyXSAqL1xuICAgICAgICB9XG5cbiAgICAuYy1wcmljZS1ib3hfX3ByaWNlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94LXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICBjb2xvcjogJHByaWNlLWJveC1wcmljZS1jb2xvcjtcbiAgICB9XG5cbiAgICAuYy1wcmljZS1ib3hfX3ByaWNlLFxuICAgIC5jLXByaWNlLWJveF9fZGlzY291bnRfX29sZC1wcmljZSB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8qIFszXSAqL1xuICAgIH1cblxuICAgIC5jLXByaWNlLWJveF9fdGV4dCB7XG5cbiAgICAgICAgLmMtcHJpY2UtYm94X19wcmljZSB+ICYge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogKCRwcmljZS1ib3gtdGV4dC1hZnRlci1wcmljZS1tYXJnaW4tdG9wIG9yIG51bGwpOyAvKiBbMTBdICovXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXByaWNlLWJveF9fYWRkaXRpb25hbC1pbmZvIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyAvKiBbN10gKi9cbiAgICAgICAgbWFyZ2luLXRvcDogJHByaWNlLWJveC1hZGRpdGlvbmFsLWluZm8tbWFyZ2luLXRvcDtcbiAgICB9XG5cbiAgICAgICAgLyogWzZdICovXG4gICAgICAgIC5jLXByaWNlLWJveF9fYWRkaXRpb25hbC1pbmZvX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCRwcmljZS1ib3gtYWRkaXRpb25hbC1pbmZvLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICRwcmljZS1ib3gtYWRkaXRpb25hbC1pbmZvLW1heC1sZW5ndGg7IC8qIFs0XSAqL1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRwcmljZS1ib3gtYWRkaXRpb25hbC1pbmZvLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpY2UtYm94LWFkZGl0aW9uYWwtaW5mby1jb2xvcjtcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbMV0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjVVBMT0FEXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBVcGxvYWQgY29tcG9uZW50IHdoaWNoIHV0aWxpemVzIHRoZSBuYXRpdmUgYDxpbnB1dCB0eXBlPVwiZmlsZVwiPmAgZWxlbWVudC5cbiAqIEl04oCZcyBwcmVwYXJlZCB0byBiZSB1c2VkIHdpdGggZHJhZy1hbmQtZHJvcCBKUyBleHRlbnNpb25zIGluIHByb3ZpZGluZ1xuICogYSBgLmhhcy1tb3VzZW92ZXJgIHN0YXRlIGNsYXNzIHdoZW4gYSBmaWxlIGlzIGRyYWdnZWQgdXBvbiB0aGUgdXBsb2FkXG4gKiBjb250YWluZXIuXG4gKi9cblxuJHVwbG9hZC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJnYmEoJENPTE9SLUhJR0hMSUdIVCwgMC4wNSkgIWRlZmF1bHQ7XG4kdXBsb2FkLWJhY2tncm91bmQtaG92ZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kdXBsb2FkLWJhY2tncm91bmQtaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJHVwbG9hZC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJHVwbG9hZC1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJHVwbG9hZC1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDJweCAhZGVmYXVsdDtcbiR1cGxvYWQtYm9yZGVyLXN0eWxlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXNoZWQgIWRlZmF1bHQ7XG4kdXBsb2FkLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUhJR0hMSUdIVCAhZGVmYXVsdDtcbiR1cGxvYWQtYm9yZGVyLXdpZHRoLWhvdmVyOiAgICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHVwbG9hZC1ib3JkZXItY29sb3ItaG92ZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICR1cGxvYWQtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJHVwbG9hZC1ib3JkZXItd2lkdGgtbW91c2VvdmVyOiAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kdXBsb2FkLWJvcmRlci1jb2xvci1tb3VzZW92ZXI6ICAgICAgICAgICAgICAgICAgICAgJHVwbG9hZC1ib3JkZXItY29sb3ItaG92ZXIgIWRlZmF1bHQ7XG4kdXBsb2FkLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHVwbG9hZC1ib3JkZXItd2lkdGggJHVwbG9hZC1ib3JkZXItc3R5bGUgJHVwbG9hZC1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kdXBsb2FkLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcbiR1cGxvYWQtYm9yZGVyLXdpZHRoLWFjdGl2ZTogICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHVwbG9hZC1ib3JkZXItc3R5bGUtYWN0aXZlOiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kdXBsb2FkLWJvcmRlci1jb2xvci1hY3RpdmU6ICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR1cGxvYWQtYm9yZGVyLWFjdGl2ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdXBsb2FkLWJvcmRlci13aWR0aC1hY3RpdmUgJHVwbG9hZC1ib3JkZXItc3R5bGUtYWN0aXZlICR1cGxvYWQtYm9yZGVyLWNvbG9yLWFjdGl2ZSAhZGVmYXVsdDtcbiR1cGxvYWQtZGVzY3JpcHRpb24tc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiR1cGxvYWQtZGVzY3JpcHRpb24tc3VwcGxlbWVudGFyeS10ZXh0LXNwYWNpbmc6ICAgICAwICFkZWZhdWx0O1xuJHVwbG9hZC1kZXNjcmlwdGlvbi10ZXh0LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICRGUzAgIWRlZmF1bHQ7XG4kdXBsb2FkLWRlc2NyaXB0aW9uLXRleHQtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xEICFkZWZhdWx0O1xuJHVwbG9hZC1kZXNjcmlwdGlvbi10ZXh0LXNwYWNpbmctYm90dG9tOiAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiR1cGxvYWQtZGVzY3JpcHRpb24tdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICBpbmhlcml0ICFkZWZhdWx0O1xuJHVwbG9hZC1kZXNjcmlwdGlvbi10ZXh0LXN1cHBsZW1lbnRhcnktZm9udC1zaXplOiAgICRGUy0xICFkZWZhdWx0O1xuJHVwbG9hZC1kZXNjcmlwdGlvbi10ZXh0LXN1cHBsZW1lbnRhcnktdGV4dC1jb2xvcjogICRDT0xPUi1TVUJUTEUgIWRlZmF1bHQ7XG4kdXBsb2FkLWRlc2NyaXB0aW9uLXRleHQtc3VwcGxlbWVudGFyeS1mb250LXdlaWdodDogJEdMT0JBTC1GT05ULVdFSUdIVC1SRUdVTEFSICFkZWZhdWx0O1xuJHVwbG9hZC1jb250ZW50LWFsaWdubWVudDogICAgICAgICAgICAgICAgICAgICAgICAgIGNlbnRlciAhZGVmYXVsdDtcbiR1cGxvYWQtaWNvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy11cGxvYWQpICFkZWZhdWx0O1xuJHVwbG9hZC1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24tc2l6ZShtZWRpdW0pICFkZWZhdWx0O1xuJHVwbG9hZC1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaGVyaXQgIWRlZmF1bHQ7XG4kdXBsb2FkLWljb24tc3BhY2luZy1ib3R0b206ICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kdXBsb2FkLW1vdXNlb3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kdXBsb2FkLW1vdXNlb3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kdXBsb2FkLW1vdXNlb3Zlci1pY29uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtdXBsb2FkKSAhZGVmYXVsdDtcbiR1cGxvYWQtbW91c2VvdmVyLWljb24tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAkdXBsb2FkLWljb24tc2l6ZSAhZGVmYXVsdDtcbiR1cGxvYWQtbW91c2VvdmVyLWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItSElHSExJR0hUICFkZWZhdWx0O1xuJHVwbG9hZC1tb3VzZW92ZXItdGV4dC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICRGUzAgIWRlZmF1bHQ7XG4kdXBsb2FkLW1vdXNlb3Zlci1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1SRUdVTEFSICFkZWZhdWx0O1xuJHVwbG9hZC1tb3VzZW92ZXItdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgIGluaGVyaXQgIWRlZmF1bHQ7XG4kdXBsb2FkLWxvYWRlci10ZXh0LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJEZTMCAhZGVmYXVsdDtcbiR1cGxvYWQtbG9hZGVyLXRleHQtc3BhY2luZy10b3A6ICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiR1cGxvYWQtbG9hZGVyLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItSU5BQ1RJVkUgIWRlZmF1bHQ7XG4kdXBsb2FkLWRpc2FibGVkLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgJHVwbG9hZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHVwbG9hZC1kaXNhYmxlZC1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICR1cGxvYWQtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJHVwbG9hZC1kaXNhYmxlZC1pY29uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLXdhcm5pbmcpICFkZWZhdWx0O1xuJHVwbG9hZC1kaXNhYmxlZC1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICR1cGxvYWQtaWNvbi1zaXplICFkZWZhdWx0O1xuJHVwbG9hZC1kaXNhYmxlZC1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1JTkFDVElWRSAhZGVmYXVsdDtcbiR1cGxvYWQtZGlzYWJsZWQtdGV4dC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAkRlMwICFkZWZhdWx0O1xuJHVwbG9hZC1kaXNhYmxlZC1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtUkVHVUxBUiAhZGVmYXVsdDtcbiR1cGxvYWQtZGlzYWJsZWQtdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAkdXBsb2FkLWRpc2FibGVkLWljb24tY29sb3IgIWRlZmF1bHQ7XG4kdXBsb2FkLWRpc2FibGVkLXRleHQtc3BhY2luZy1ib3R0b206ICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJHVwbG9hZC1kaXNhYmxlZC10ZXh0LXN1cHBsZW1lbnRhcnktdGV4dC1zaXplOiAgICAgICRGUy0yICFkZWZhdWx0O1xuJHVwbG9hZC1kaXNhYmxlZC10ZXh0LXN1cHBsZW1lbnRhcnktdGV4dC1jb2xvcjogICAgICRDT0xPUi1JTkFDVElWRSAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gUmVzZXQgZGVmYXVsdCBgPGxhYmVsPmAgc3BhY2luZy5cbiAqIFsyXSBSZWZlcmVuY2UgZm9yIHRoZSBtb3VzZW92ZXIgZWxlbWVudC5cbiAqIFszXSBEaXNhYmxlIHRoZSBpbnB1dCAoaS5lLiB1cGxvYWQgZnVuY3Rpb24pIHdoZW4gbG9hZGluZyBvciBkaXNhYmxlZC5cbiAqIFs0XSBIaWRlIG9yaWdpbmFsIGA8aW5wdXQ+YCBidXQga2VlcCBpdCBhY2Nlc3NpYmxlLlxuICogWzVdIEp1c3QgaGlkZSB2aXN1YWxseSwgc28gdGhlIGhlaWdodCBvZiB0aGUgY29udGFpbmVyIGRvZXMgbm90IGNoYW5nZS5cbiAqIFs2XSBDcmVhdGUgYSBwYWRkaW5nIGZvciB0aGUgbW91c2VvdmVyIGVsZW1lbnQgYnkgdXNpbmcgdGhlIGNhbGMgZnVuY3Rpb25cbiAqICAgICBmb3IgdGhlIHdpZHRoIHByb3BlcnR5LiBTaW5jZSB0aGlzIGVsZW1lbnQgaXMgcG9zaXRpb25lZCBgYWJzb2x1dGVgLFxuICogICAgIGEgd2lkdGggb2YgYDEwMCVgIHdvdWxkbuKAmXQgd29yay4gVGhhdOKAmXMgd2h5IHdlIHN1YnRyYWN0IHRoZSB0aGUgcGFkZGluZ1xuICogICAgIHZhbHVlIG9mZiBvZiBib3RoIHNpZGVzLlxuICogWzddIENlbnRlciB0aGUgc3RhdGUgZWxlbWVudHMgaW5zaWRlIHRoZSB1cGxvYWQgY29udGFpbmVyLlxuICogICAgIEF2b2lkcyBsYXlvdXQgc2hpZnQgYnkgcG9zaXRpb25pbmcgbWFudWFsbHkgKHNlZSBbNV0pLlxuICogWzhdIE92ZXJyaWRlIHRoZSBidXR0b25zIGRlZmF1bHQgdHJhbnNpdGlvbiBzbyBpdCBkb2VzbuKAmXQgbG9vayB3ZWlyZC5cbiAqIFs5XSBJdCB3b3VsZCB3b3JrIHRvIG9taXQgdGhlIGBsZWZ0YCBkZWNsYXJhdGlvbiwgaG93ZXZlciBpdCBpcyBhZHZpc2VkIHRvXG4gKiAgICAgYWx3YXlzIGFwcGx5IGEgYGxlZnRgIChvciBgcmlnaHRgKSB2YWx1ZSB0byBhbiBgYWJzb2x1dGVgIHBvc2l0aW9uZWRcbiAqICAgICBlbGVtZW50LiBBIHZhbHVlIG9mIGAwYCB3b3VsZG7igJl0IHdvcmsgY29ycmVjdGx5LCBzbyB3ZSB1c2UgdGhlIHBhZGRpbmdcbiAqICAgICB2YWx1ZSBpbnN0ZWFkLlxuICogWzEwXSBQbGFjZSBgLmMtdXBsb2FkX19pbnB1dGAgb3ZlciB0aGUgZW50aXJlIHVwbG9hZCBjb21wb25lbnQgdG8gYWxsb3cgZHJhZ1xuICogICAgICBhbmQgZHJvcCBvZiBmaWxlcyBvbnRvIHRoZSBmaWxlIGlucHV0IGZpZWxkLiBUaGlzIGlzIG9ubHkgZG9uZSB3aGVuIG5vXG4gKiAgICAgIGhvdmVyaW5nIHRha2VzIHBsYWNlIHRvIGFsbG93IGludGVyYWN0aW5nIHdpdGggYnV0dG9ucyAob3Igb3RoZXJcbiAqICAgICAgZWxlbWVudHMpIGluc2lkZSB0aGUgY29tcG9uZW50LlxuICogWzExXSBEaXNhYmxlZCB2YXJpYW50IHN0eWxlcyBmb3IgYnJvd3NlciB3aGljaCBkbyBub3Qgc3VwcG9ydCBgOmhhc2AgeWV0LlxuICovXG4uYy11cGxvYWQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogWzJdICovXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzFdICovXG4gICAgcGFkZGluZzogJHVwbG9hZC1wYWRkaW5nLXZlcnRpY2FsICR1cGxvYWQtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIHRleHQtYWxpZ246ICR1cGxvYWQtY29udGVudC1hbGlnbm1lbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHVwbG9hZC1iYWNrZ3JvdW5kO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6OmFmdGVyLFxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oKTtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICBAaWYgKCR1cGxvYWQtYm9yZGVyKSB7XG4gICAgICAgICAgICBib3JkZXI6ICR1cGxvYWQtYm9yZGVyO1xuICAgICAgICB9XG4gICAgICAgIEBpZiAoJHVwbG9hZC1ib3JkZXItcmFkaXVzICE9IDApIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICR1cGxvYWQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgfVxuXG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIEBpZiAoJHVwbG9hZC1ib3JkZXIpIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHVwbG9hZC1ib3JkZXItY29sb3ItaG92ZXI7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6ICR1cGxvYWQtYm9yZGVyLXdpZHRoLWhvdmVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLmhhcy1tb3VzZW92ZXIpOmhvdmVyIHtcbiAgICAgICAgQGlmICgkdXBsb2FkLWJhY2tncm91bmQtaG92ZXIpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1cGxvYWQtYmFja2dyb3VuZC1ob3Zlci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIEBpZiAoJHVwbG9hZC1ib3JkZXItYWN0aXZlKSB7XG4gICAgICAgICAgICBib3JkZXI6ICR1cGxvYWQtYm9yZGVyLWFjdGl2ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuaGFzLW1vdXNlb3ZlciB7XG4gICAgICAgIEBpZiAoJHVwbG9hZC1tb3VzZW92ZXItYmFja2dyb3VuZCkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVwbG9hZC1tb3VzZW92ZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJHVwbG9hZC1ib3JkZXIpIHtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogJHVwbG9hZC1ib3JkZXItd2lkdGgtbW91c2VvdmVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICR1cGxvYWQtYm9yZGVyLWNvbG9yLW1vdXNlb3ZlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmLmlzLWxvYWRpbmcge1xuXG4gICAgICAgICYsXG4gICAgICAgIC5jLXVwbG9hZF9faW5wdXQge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIFszXSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmLmhhcy1tb3VzZW92ZXIsXG4gICAgJi5pcy1sb2FkaW5nIHtcblxuICAgICAgICAuYy11cGxvYWRfX2Rlc2NyaXB0aW9uLFxuICAgICAgICAuYy11cGxvYWRfX2FjdGlvbnMge1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOyAvKiBbNV0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJjpoYXMoLmMtdXBsb2FkX19pbnB1dDphY3RpdmUpIHtcbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpoYXMoLmMtdXBsb2FkX19pbnB1dFtkaXNhYmxlZF0pIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVwbG9hZC1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogWzNdICovXG5cbiAgICAgICAgQGlmICgkdXBsb2FkLWJvcmRlcikge1xuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHVwbG9hZC1kaXNhYmxlZC1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYy11cGxvYWRfX2Rpc2FibGVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtdXBsb2FkX19kZXNjcmlwdGlvbixcbiAgICAgICAgLmMtdXBsb2FkX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgLyogWzVdICovXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC8vIEBUT0RPOiBEZXByZWNhdGUgd2hlbiBicm93c2VyIHN1cHBvcnQgZm9yIGA6aGFzYCBpcyBzdWZmaWNpZW50LlxuICAgICYuaXMtZGlzYWJsZWQgeyAvKiBbMTFdICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1cGxvYWQtZGlzYWJsZWQtYmFja2dyb3VuZDtcblxuICAgICAgICBAaWYgKCR1cGxvYWQtYm9yZGVyKSB7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICR1cGxvYWQtZGlzYWJsZWQtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAmLFxuICAgICAgICAuYy11cGxvYWRfX2lucHV0IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtdXBsb2FkX19kaXNhYmxlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXVwbG9hZF9fZGVzY3JpcHRpb24sXG4gICAgICAgIC5jLXVwbG9hZF9fYWN0aW9ucyB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG4gICAgLmMtdXBsb2FkX19pbnB1dCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLyogWzRdICovXG4gICAgICAgIHotaW5kZXg6IC0xOyAvKiBbNF0gKi9cbiAgICAgICAgd2lkdGg6IDAuMXB4OyAvKiBbNF0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY2FsZS11bmxpbWl0ZWQvZGVjbGFyYXRpb24tc3RyaWN0LXZhbHVlICovXG4gICAgICAgIGhlaWdodDogMC4xcHg7IC8qIFs0XSAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjYWxlLXVubGltaXRlZC9kZWNsYXJhdGlvbi1zdHJpY3QtdmFsdWUgKi9cbiAgICAgICAgb3BhY2l0eTogMDsgLyogWzRdICovXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIFs0XSAqL1xuXG4gICAgICAgIC5jLXVwbG9hZDpub3QoOmhvdmVyKSAmIHtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7IC8qIFsxMF0gKi9cbiAgICAgICAgICAgIHRvcDogMDsgLyogWzEwXSAqL1xuICAgICAgICAgICAgbGVmdDogMDsgLyogWzEwXSAqL1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7IC8qIFsxMF0gKi9cbiAgICAgICAgICAgIGhlaWdodDogMTAwJTsgLyogWzEwXSAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmMtdXBsb2FkX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICAgICAuYy11cGxvYWRfX2Rlc2NyaXB0aW9uLXRleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogJHVwbG9hZC1kZXNjcmlwdGlvbi10ZXh0LXNpemVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHVwbG9hZC1kZXNjcmlwdGlvbi10ZXh0LWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgY29sb3I6ICR1cGxvYWQtZGVzY3JpcHRpb24tdGV4dC1jb2xvcjtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkdXBsb2FkLWRlc2NyaXB0aW9uLXRleHQtc3BhY2luZy1ib3R0b207XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXVwbG9hZF9fZGVzY3JpcHRpb24tc3VwcGxlbWVudGFyeS10ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCR1cGxvYWQtZGVzY3JpcHRpb24tdGV4dC1zdXBwbGVtZW50YXJ5LWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR1cGxvYWQtZGVzY3JpcHRpb24tc3VwcGxlbWVudGFyeS10ZXh0LXNwYWNpbmc7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHVwbG9hZC1kZXNjcmlwdGlvbi10ZXh0LXN1cHBsZW1lbnRhcnktZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICBjb2xvcjogJHVwbG9hZC1kZXNjcmlwdGlvbi10ZXh0LXN1cHBsZW1lbnRhcnktdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgLmMtdXBsb2FkX19pY29uIHtcbiAgICAgICAgQGlmICgkdXBsb2FkLWljb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGljb24tZm9udCgkZGVmYXVsdHM6IG51bGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICRmb250LXNpemU6ICR1cGxvYWQtaWNvbi1zaXplLFxuICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogMVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHVwbG9hZC1pY29uLXNwYWNpbmctYm90dG9tO1xuICAgICAgICAgICAgY29sb3I6ICR1cGxvYWQtaWNvbi1jb2xvcjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAkdXBsb2FkLWljb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmMtdXBsb2FkX19tb3VzZW92ZXIsXG4gICAgLmMtdXBsb2FkX19sb2FkZXIsXG4gICAgLmMtdXBsb2FkX19kaXNhYmxlZCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLyogWzddICovXG4gICAgICAgIHRvcDogNTAlOyAvKiBbN10gKi9cbiAgICAgICAgbGVmdDogJHVwbG9hZC1wYWRkaW5nLWhvcml6b250YWw7IC8qIFs5XSAqL1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICgjeyR1cGxvYWQtcGFkZGluZy1ob3Jpem9udGFsICogMn0pKTsgLyogWzZdICovXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgLyogWzddICovXG4gICAgfVxuXG4gICAgLmMtdXBsb2FkX19tb3VzZW92ZXIge1xuICAgICAgICBjb2xvcjogJHVwbG9hZC1tb3VzZW92ZXItdGV4dC1jb2xvcjtcblxuICAgICAgICAuYy11cGxvYWQ6bm90KC5oYXMtbW91c2VvdmVyKSAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAgICAgLmMtdXBsb2FkX19tb3VzZW92ZXItaWNvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBpY29uLWZvbnQoXG4gICAgICAgICAgICAgICAgJGRpc3BsYXk6IGJsb2NrLFxuICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogbnVsbCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogJHVwbG9hZC1tb3VzZW92ZXItaWNvbi1zaXplXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29sb3I6ICR1cGxvYWQtbW91c2VvdmVyLWljb24tY29sb3I7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJHVwbG9hZC1tb3VzZW92ZXItaWNvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLmMtdXBsb2FkX19tb3VzZW92ZXItdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAkdXBsb2FkLW1vdXNlb3Zlci10ZXh0LXNpemVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdXBsb2FkLW1vdXNlb3Zlci1mb250LXdlaWdodDtcbiAgICAgICAgfVxuXG4gICAgLmMtdXBsb2FkX19sb2FkZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAuYy11cGxvYWQ6bm90KC5pcy1sb2FkaW5nKSAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXVwbG9hZF9fbG9hZGVyLXRleHQge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICR1cGxvYWQtbG9hZGVyLXRleHQtc2l6ZVxuICAgICAgICApO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogJHVwbG9hZC1sb2FkZXItdGV4dC1zcGFjaW5nLXRvcDtcbiAgICAgICAgY29sb3I6ICR1cGxvYWQtbG9hZGVyLXRleHQtY29sb3I7XG4gICAgfVxuXG4gICAgLmMtdXBsb2FkX19kaXNhYmxlZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkdXBsb2FkLWRpc2FibGVkLXRleHQtY29sb3I7XG4gICAgfVxuXG4gICAgICAgIC5jLXVwbG9hZF9fZGlzYWJsZWQtaWNvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBpY29uLWZvbnQoJGxpbmUtaGVpZ2h0OiBudWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAkdXBsb2FkLWRpc2FibGVkLWljb24tc2l6ZSxcbiAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6IDFcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb2xvcjogJHVwbG9hZC1kaXNhYmxlZC1pY29uLWNvbG9yO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICR1cGxvYWQtZGlzYWJsZWQtaWNvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLmMtdXBsb2FkX19kaXNhYmxlZC10ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICRmb250LXNpemU6ICR1cGxvYWQtZGlzYWJsZWQtdGV4dC1zaXplXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR1cGxvYWQtZGlzYWJsZWQtZm9udC13ZWlnaHQ7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHVwbG9hZC1kaXNhYmxlZC10ZXh0LXNwYWNpbmctYm90dG9tO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAuYy11cGxvYWRfX2Rpc2FibGVkLXN1cHBsZW1lbnRhcnktdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAkdXBsb2FkLWRpc2FibGVkLXRleHQtc3VwcGxlbWVudGFyeS10ZXh0LXNpemVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBjb2xvcjogJHVwbG9hZC1kaXNhYmxlZC10ZXh0LXN1cHBsZW1lbnRhcnktdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgLmMtdXBsb2FkX19hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi10b3A6ICR1cGxvYWQtZGVzY3JpcHRpb24tc3BhY2luZztcbiAgICB9XG5cbiAgICAuYy11cGxvYWRfX2J1dHRvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgLmhhcy1tb3VzZW92ZXIgJiB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAwczsgLyogWzhdICovXG4gICAgICAgIH1cblxuICAgIH1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNVUExPQUQgKFNldHRpbmdzKVxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiR1cGxvYWQtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItU1VSRkFDRS1QUklNQVJZICFkZWZhdWx0O1xuXG4kdXBsb2FkLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMXB4ICFkZWZhdWx0O1xuJHVwbG9hZC1ib3JkZXItd2lkdGgtbW91c2VvdmVyOiAgICAgICAgICAgICAgICAgICAgIDJweCAhZGVmYXVsdDtcbiR1cGxvYWQtYm9yZGVyLXN0eWxlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2xpZCAhZGVmYXVsdDtcbiR1cGxvYWQtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItT04tU1VSRkFDRS01MDAgIWRlZmF1bHQ7XG4kdXBsb2FkLWJvcmRlci1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLU9OLVNVUkZBQ0UtOTAwICFkZWZhdWx0O1xuJHVwbG9hZC1ib3JkZXItY29sb3ItbW91c2VvdmVyOiAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiR1cGxvYWQtYm9yZGVyLWNvbG9yLWFjdGl2ZTogICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kdXBsb2FkLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1CT1JERVItUkFESVVTLVNNQUxMICFkZWZhdWx0O1xuXG4kdXBsb2FkLWRlc2NyaXB0aW9uLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcbiR1cGxvYWQtZGVzY3JpcHRpb24tdGV4dC1zcGFjaW5nLWJvdHRvbTogICAgICAgICAgICAwICFkZWZhdWx0O1xuXG4kdXBsb2FkLWRlc2NyaXB0aW9uLXRleHQtc3VwcGxlbWVudGFyeS1mb250LXNpemU6ICAgJEZTLTEgIWRlZmF1bHQ7XG4kdXBsb2FkLWRlc2NyaXB0aW9uLXRleHQtc3VwcGxlbWVudGFyeS1mb250LXdlaWdodDogJEdMT0JBTC1GT05ULVdFSUdIVC1MSUdIVCAhZGVmYXVsdDtcbiR1cGxvYWQtZGVzY3JpcHRpb24tdGV4dC1zdXBwbGVtZW50YXJ5LXRleHQtY29sb3I6ICAkdXBsb2FkLWRlc2NyaXB0aW9uLXRleHQtY29sb3IgIWRlZmF1bHQ7XG5cbiR1cGxvYWQtbG9hZGVyLXRleHQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAkdXBsb2FkLWRlc2NyaXB0aW9uLXRleHQtc3VwcGxlbWVudGFyeS1mb250LXNpemUgIWRlZmF1bHQ7XG4kdXBsb2FkLWxvYWRlci10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgJHVwbG9hZC1kZXNjcmlwdGlvbi10ZXh0LWNvbG9yICFkZWZhdWx0O1xuJHVwbG9hZC1sb2FkZXItdGV4dC1zcGFjaW5nLXRvcDogICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcblxuJHVwbG9hZC1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR1cGxvYWQtZGVzY3JpcHRpb24tdGV4dC1jb2xvciAhZGVmYXVsdDtcblxuJHVwbG9hZC1tb3VzZW92ZXItaWNvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLWZpbGUpICFkZWZhdWx0O1xuJHVwbG9hZC1tb3VzZW92ZXItaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICR1cGxvYWQtaWNvbi1jb2xvciAhZGVmYXVsdDtcbiR1cGxvYWQtbW91c2VvdmVyLXRleHQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAkdXBsb2FkLWRlc2NyaXB0aW9uLXRleHQtc3VwcGxlbWVudGFyeS1mb250LXNpemUgIWRlZmF1bHQ7XG4kdXBsb2FkLW1vdXNlb3Zlci1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1MSUdIVCAhZGVmYXVsdDtcbiR1cGxvYWQtbW91c2VvdmVyLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAkdXBsb2FkLWRlc2NyaXB0aW9uLXRleHQtY29sb3IgIWRlZmF1bHQ7XG5cbiR1cGxvYWQtaWNvbi1zcGFjaW5nLWJvdHRvbTogICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG5cbiR1cGxvYWQtZGlzYWJsZWQtaWNvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1lcnJvcikgIWRlZmF1bHQ7XG4kdXBsb2FkLWRpc2FibGVkLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xEICFkZWZhdWx0O1xuJHVwbG9hZC1kaXNhYmxlZC10ZXh0LXN1cHBsZW1lbnRhcnktdGV4dC1zaXplOiAgICAgICR1cGxvYWQtZGVzY3JpcHRpb24tdGV4dC1zdXBwbGVtZW50YXJ5LWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiR1cGxvYWQtZGlzYWJsZWQtdGV4dC1zcGFjaW5nLWJvdHRvbTogICAgICAgICAgICAgICAkdXBsb2FkLWRlc2NyaXB0aW9uLXRleHQtc3BhY2luZy1ib3R0b20gIWRlZmF1bHQ7XG4kdXBsb2FkLWRpc2FibGVkLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1VQTE9BRC1JVEVNXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gR2VuZXJhbCBzdHlsaW5nXG4kdXBsb2FkLWl0ZW0tYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kdXBsb2FkLWl0ZW0tcGFkZGluZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJHVwbG9hZC1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAgICAkdXBsb2FkLWl0ZW0tcGFkZGluZyAhZGVmYXVsdDtcbiR1cGxvYWQtaXRlbS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICAgJHVwbG9hZC1pdGVtLXBhZGRpbmcgIWRlZmF1bHQ7XG4kdXBsb2FkLWl0ZW0tYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgIDJweCAhZGVmYXVsdDtcbiR1cGxvYWQtaXRlbS1ib3JkZXItc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgc29saWQgIWRlZmF1bHQ7XG4kdXBsb2FkLWl0ZW0tYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1QQUxFICFkZWZhdWx0O1xuJHVwbG9hZC1pdGVtLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdXBsb2FkLWl0ZW0tYm9yZGVyLXdpZHRoICR1cGxvYWQtaXRlbS1ib3JkZXItc3R5bGUgJHVwbG9hZC1pdGVtLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiR1cGxvYWQtaXRlbS1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgICAgICAgICAgNXB4ICFkZWZhdWx0O1xuXG4vLyBNYWluIGljb25cbiR1cGxvYWQtaXRlbS1pY29uLWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICAgICAgICAgICAgeHMgIWRlZmF1bHQ7XG4kdXBsb2FkLWl0ZW0taWNvbi1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24tc2l6ZShtZWRpdW0pICFkZWZhdWx0O1xuJHVwbG9hZC1pdGVtLWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kdXBsb2FkLWl0ZW0taWNvbi12ZXJ0aWNhbC1hbGlnbm1lbnQ6ICAgICAgICAgICAgICAgIHN0cmV0Y2ggIWRlZmF1bHQ7XG4kdXBsb2FkLWl0ZW0taWNvbi1zcGFjaW5nLXJpZ2h0OiAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuXG4vLyBUaXRsZVxuJHVwbG9hZC1pdGVtLXRpdGxlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAkRlMwICFkZWZhdWx0O1xuJHVwbG9hZC1pdGVtLXRpdGxlLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAxICFkZWZhdWx0O1xuJHVwbG9hZC1pdGVtLXRpdGxlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG4kdXBsb2FkLWl0ZW0tdGl0bGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kdXBsb2FkLWl0ZW0tdGl0bGUtc3BhY2luZy1ib3R0b206ICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuXG4vLyBTdWJ0aXRsZSBiZWxvdyBwcm9ncmVzcyBiYXJcbiR1cGxvYWQtaXRlbS1zdWJ0aXRsZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgJEZTLTEgIWRlZmF1bHQ7XG4kdXBsb2FkLWl0ZW0tc3VidGl0bGUtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kdXBsb2FkLWl0ZW0tc3VidGl0bGUtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgIDEuNSAhZGVmYXVsdDtcbiR1cGxvYWQtaXRlbS1zdWJ0aXRsZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuLy8gUHJvZ3Jlc3MgYmFyXG4kdXBsb2FkLWl0ZW0tcHJvZ3Jlc3Mtc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJHVwbG9hZC1pdGVtLXByb2dyZXNzLXNwYWNpbmctdG9wOiAgICAgICAgICAgICAgICAgICAkdXBsb2FkLWl0ZW0tcHJvZ3Jlc3Mtc3BhY2luZyAhZGVmYXVsdDtcbiR1cGxvYWQtaXRlbS1wcm9ncmVzcy1zcGFjaW5nLWJvdHRvbTogICAgICAgICAgICAgICAgJHVwbG9hZC1pdGVtLXByb2dyZXNzLXNwYWNpbmcgIWRlZmF1bHQ7XG5cbi8vIEludGVyYWN0aW9uIGljb25zXG4kdXBsb2FkLWl0ZW0taW50ZXJhY3Rpb24tcmVtb3ZlLWZvY3VzOiAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kdXBsb2FkLWl0ZW0taW50ZXJhY3Rpb24taWNvbi1wc2V1ZG8tZWxlbWVudDogICAgICAgIFwiOjpiZWZvcmVcIiAhZGVmYXVsdDtcbiR1cGxvYWQtaXRlbS1pbnRlcmFjdGlvbi1pY29uLXNwYWNpbmctdG9wOiAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR1cGxvYWQtaXRlbS1pbnRlcmFjdGlvbi1pY29uLXNwYWNpbmc6ICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kdXBsb2FkLWl0ZW0taW50ZXJhY3Rpb24taWNvbi1zcGFjaW5nLWF0LWJyZWFrcG9pbnQ6ICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiR1cGxvYWQtaXRlbS1pbnRlcmFjdGlvbi1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKHNtYWxsKSAhZGVmYXVsdDtcbiR1cGxvYWQtaXRlbS1pbnRlcmFjdGlvbi1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJHVwbG9hZC1pdGVtLWludGVyYWN0aW9uLWljb24tbWFpbjogICAgICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1zZWFyY2gpICFkZWZhdWx0O1xuJHVwbG9hZC1pdGVtLWludGVyYWN0aW9uLWljb24tbG9hZGluZzogICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1jbG9zZSkgIWRlZmF1bHQ7XG4kdXBsb2FkLWl0ZW0taW50ZXJhY3Rpb24taWNvbi1zZWNvbmRhcnk6ICAgICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLWRlbGV0ZSkgIWRlZmF1bHQ7XG4kdXBsb2FkLWl0ZW0taW50ZXJhY3Rpb24taWNvbi1icmVha3BvaW50OiAgICAgICAgICAgIHMgIWRlZmF1bHQ7XG5cbi8vIFN1Y2Nlc3Mgc3RhdGVcbiR1cGxvYWQtaXRlbS1zdWNjZXNzLXN0YXR1cy1pY29uOiAgICAgICAgICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtc3VjY2VzcykgIWRlZmF1bHQ7XG4kdXBsb2FkLWl0ZW0tc3VjY2Vzcy1zdGF0dXMtaWNvbi1jb2xvcjogICAgICAgICAgICAgICRDT0xPUi1TVUNDRVNTICFkZWZhdWx0O1xuJHVwbG9hZC1pdGVtLXN1Y2Nlc3MtbWVzc2FnZS1jb2xvcjogICAgICAgICAgICAgICAgICAkQ09MT1ItU1VDQ0VTUyAhZGVmYXVsdDtcblxuLy8gRXJyb3Igc3RhdGVcbiR1cGxvYWQtaXRlbS1lcnJvci1zdGF0dXMtaWNvbjogICAgICAgICAgICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtZXJyb3IpICFkZWZhdWx0O1xuJHVwbG9hZC1pdGVtLWVycm9yLXN0YXR1cy1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAkQ09MT1ItQUxFUlQgIWRlZmF1bHQ7XG4kdXBsb2FkLWl0ZW0tZXJyb3ItbWVzc2FnZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICRDT0xPUi1BTEVSVCAhZGVmYXVsdDtcblxuLy8gVG8gZGlzYWJsZSBmaWxlIGljb25zIHVzZSBgdHJ1ZWBcbiR1cGxvYWQtaXRlbS1pY29uLWlzLWhpZGRlbjogICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIEltYWdlXG4kdXBsb2FkLWl0ZW0taW1hZ2UtYnJlYWtwb2ludDogICAgICAgICAgICAgICAgICAgICAgIHhzICFkZWZhdWx0O1xuJHVwbG9hZC1pdGVtLWltYWdlLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiR1cGxvYWQtaXRlbS1pbWFnZS13aWR0aDogKFxuICAgIG51bGw6IDgwcHgsIC8vIE1hZ2ljIG51bWJlciAoaW1hZ2Ugc2l6ZSBkZWZhdWx0KSBiYXNlZCBvbiBjb2xsYWIgd2l0aCBVWFJcbiAgICBcInhzXCI6IDYwcHggIC8vIE1hZ2ljIG51bWJlciAoaW1hZ2Ugc2l6ZSBzbWFsbCB2aWV3cG9ydCkgYmFzZWQgb24gY29sbGFiIHdpdGggVVhSXG4pICFkZWZhdWx0O1xuXG4vLyBJbWFnZSBsaW5rXG4kdXBsb2FkLWl0ZW0taW1hZ2UtbGluay1mb2N1cy1vdXRsaW5lLXdpZHRoOiAgICAgICAgIDJweCAhZGVmYXVsdDtcbiR1cGxvYWQtaXRlbS1pbWFnZS1saW5rLWZvY3VzLW91dGxpbmUtc3R5bGU6ICAgICAgICAgJEdMT0JBTC1GT0NVUy1TVFlMRSAhZGVmYXVsdDtcbiR1cGxvYWQtaXRlbS1pbWFnZS1saW5rLWZvY3VzLW91dGxpbmUtY29sb3I6ICAgICAgICAgJEdMT0JBTC1GT0NVUy1DT0xPUiAhZGVmYXVsdDtcbiR1cGxvYWQtaXRlbS1pbWFnZS1saW5rLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiAgICAgICAgMnB4ICFkZWZhdWx0O1xuXG4vLyBJbiBvcmRlciB0byBzZXQgZGlmZmVyZW50IGZpbGUgaWNvbnMgYmFzZWQgb24gYSBmaWxlIHR5cGUsIHlvdSBjYW4gdXNlIHRoZVxuLy8gbWFwIGJlbG93IHRvIGRlZmluZSB0aGUgaWNvbiBwZXIgZmlsZSB0eXBlIGluZGl2aWR1YWxseSBwZXIgYnJhbmQuXG4vLyBUaGUgZmVhdHVyZSBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LlxuLy8gVG8gdHVybiBpdCBvbiwgc2V0IGAkdXBsb2FkLWl0ZW0tZW5hYmxlLWljb24tdHlwZXNgIHRvIGB0cnVlYC5cbiR1cGxvYWQtaXRlbS1lbmFibGUtaWNvbi10eXBlczogICAgICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kdXBsb2FkLWl0ZW0taWNvbi10eXBlczogKFxuICAgIFwicGRmXCI6IGdldC1pY29uKHNlbWFudGljLWZpbGUpXG4pICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBBbHdheXMgc3RyZXRjaCB0aGUgY29udGVudCB0byBmdWxsLXdpZHRoLlxuICogWzJdIEJyZWFrIGxvbmcgZmlsZSBuYW1lcyBpbnRvIG11bHRpbGluZS5cbiAqIFszXSBEb27igJl0IHdyYXAgaWNvbnMgaW50byBtdWx0aWxpbmUuXG4gKiBbNF0gSGlkZSBmaWxlIGljb24gaWYgYCR1cGxvYWQtaXRlbS1pY29uLWlzLWhpZGRlbjogdHJ1ZWAuXG4gKiBbNV0gUGxhY2UgdGhlIGltYWdlIGJlbG93IG9uIHNtYWxsIHZpZXdwb3J0cy5cbiAqIFs2XSBBbGlnbiBpdGVtcyBhY3Jvc3MgdGhlIHJvdy5cbiAqIFs3XSBNYWtlIHN1cmUgdGhlIGltYWdlIGhhcyBwcm9wZXIgZGltZW5zaW9ucy5cbiAqIFs4XSBSZW1vdmUgbGluayBib3JkZXIgZm9yIGJyYW5kcyB3aXRoIGJvcmRlciBzZXQuXG4gKi9cbi5jLXVwbG9hZC1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiAkdXBsb2FkLWl0ZW0taWNvbi12ZXJ0aWNhbC1hbGlnbm1lbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHVwbG9hZC1pdGVtLWJhY2tncm91bmQtY29sb3I7XG4gICAgQGlmICgkdXBsb2FkLWl0ZW0tcGFkZGluZyA+IDApIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcbiAgICAgICAgICAgIChcInBhZGRpbmctdG9wXCIsICAgICR1cGxvYWQtaXRlbS1wYWRkaW5nLXZlcnRpY2FsKSxcbiAgICAgICAgICAgIChcInBhZGRpbmctYm90dG9tXCIsICR1cGxvYWQtaXRlbS1wYWRkaW5nLXZlcnRpY2FsKSxcbiAgICAgICAgICAgIChcInBhZGRpbmctbGVmdFwiLCAgICR1cGxvYWQtaXRlbS1wYWRkaW5nLWhvcml6b250YWwpLFxuICAgICAgICAgICAgKFwicGFkZGluZy1yaWdodFwiLCAgJHVwbG9hZC1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbClcbiAgICAgICAgKTtcbiAgICB9XG4gICAgQGlmICgkdXBsb2FkLWl0ZW0tYm9yZGVyICE9IDApIHtcbiAgICAgICAgYm9yZGVyOiAkdXBsb2FkLWl0ZW0tYm9yZGVyO1xuICAgIH1cbiAgICBAaWYgKCR1cGxvYWQtaXRlbS1ib3JkZXItcmFkaXVzID4gMCkge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkdXBsb2FkLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICB9XG5cbiAgICAmLmMtdXBsb2FkLWl0ZW0tLXByZXZpZXcge1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyR1cGxvYWQtaXRlbS1pbWFnZS1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IC8qIFs1XSAqL1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGluaXRpYWw7IC8qIFs2XSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuICAgIC5jLXVwbG9hZC1pdGVtX19pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkdXBsb2FkLWl0ZW0taWNvbi1zaXplLFxuICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAxXG4gICAgICAgICk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHVwbG9hZC1pdGVtLWljb24tc3BhY2luZy1yaWdodDtcbiAgICAgICAgY29sb3I6ICR1cGxvYWQtaXRlbS1pY29uLWNvbG9yO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyR1cGxvYWQtaXRlbS1pY29uLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYy11cGxvYWQtaXRlbV9fY29udGVudCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTsgLyogWzFdICovXG4gICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgIH1cblxuICAgIC5jLXVwbG9hZC1pdGVtX190aXRsZS1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgfVxuXG4gICAgLmMtdXBsb2FkLWl0ZW1fX3RpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAgICR1cGxvYWQtaXRlbS10aXRsZS1mb250LXNpemUsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICR1cGxvYWQtaXRlbS10aXRsZS1saW5lLWhlaWdodCxcbiAgICAgICAgKTtcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHVwbG9hZC1pdGVtLXRpdGxlLXNwYWNpbmctYm90dG9tO1xuICAgICAgICBmb250LXdlaWdodDogJHVwbG9hZC1pdGVtLXRpdGxlLWZvbnQtd2VpZ2h0O1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7IC8qIFsyXSAqL1xuICAgICAgICBjb2xvcjogJHVwbG9hZC1pdGVtLXRpdGxlLWNvbG9yO1xuICAgIH1cblxuICAgIC5jLXVwbG9hZC1pdGVtX19wcm9ncmVzcyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIG1hcmdpbi10b3A6ICR1cGxvYWQtaXRlbS1wcm9ncmVzcy1zcGFjaW5nLXRvcDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHVwbG9hZC1pdGVtLXByb2dyZXNzLXNwYWNpbmctYm90dG9tO1xuXG4gICAgICAgIC5jLXVwbG9hZC1pdGVtLmlzLWxvYWRpbmcgJixcbiAgICAgICAgLmMtdXBsb2FkLWl0ZW0uaXMtc3VjY2VzcyAmLFxuICAgICAgICAuYy11cGxvYWQtaXRlbS5pcy1lcnJvciAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy11cGxvYWQtaXRlbV9fc3VidGl0bGUtcm93IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAgICR1cGxvYWQtaXRlbS1zdWJ0aXRsZS1mb250LXNpemUsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICR1cGxvYWQtaXRlbS1zdWJ0aXRsZS1saW5lLWhlaWdodCxcbiAgICAgICAgKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR1cGxvYWQtaXRlbS1zdWJ0aXRsZS1mb250LXdlaWdodDtcbiAgICAgICAgY29sb3I6ICR1cGxvYWQtaXRlbS1zdWJ0aXRsZS1jb2xvcjtcbiAgICB9XG5cbiAgICAuYy11cGxvYWQtaXRlbV9faW50ZXJhY3Rpb24taWNvbnMge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICBmbGV4LXNocmluazogMDsgLyogWzNdICovXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIG1hcmdpbi10b3A6ICR1cGxvYWQtaXRlbS1pbnRlcmFjdGlvbi1pY29uLXNwYWNpbmctdG9wO1xuICAgICAgICBtYXJnaW4tbGVmdDogJHVwbG9hZC1pdGVtLWludGVyYWN0aW9uLWljb24tc3BhY2luZztcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skdXBsb2FkLWl0ZW0taW50ZXJhY3Rpb24taWNvbi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogKCR1cGxvYWQtaXRlbS1pbnRlcmFjdGlvbi1pY29uLXNwYWNpbmctYXQtYnJlYWtwb2ludCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYy11cGxvYWQtaXRlbV9faW50ZXJhY3Rpb24taWNvbixcbiAgICAuYy11cGxvYWQtaXRlbV9fc3RhdHVzLWljb24ge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1idXR0b24oXG4gICAgICAgICAgICAkcmVtb3ZlLWZvY3VzOiAkdXBsb2FkLWl0ZW0taW50ZXJhY3Rpb24tcmVtb3ZlLWZvY3VzLFxuICAgICAgICApO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcblxuICAgICAgICAmI3skdXBsb2FkLWl0ZW0taW50ZXJhY3Rpb24taWNvbi1wc2V1ZG8tZWxlbWVudH0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkdXBsb2FkLWl0ZW0taW50ZXJhY3Rpb24taWNvbi1zaXplLFxuICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogZmFsc2VcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb2xvcjogJHVwbG9hZC1pdGVtLWludGVyYWN0aW9uLWljb24tY29sb3I7XG4gICAgICAgIH1cblxuXG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICR1cGxvYWQtaXRlbS1pbnRlcmFjdGlvbi1pY29uLXNwYWNpbmc7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyR1cGxvYWQtaXRlbS1pbnRlcmFjdGlvbi1pY29uLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogKCR1cGxvYWQtaXRlbS1pbnRlcmFjdGlvbi1pY29uLXNwYWNpbmctYXQtYnJlYWtwb2ludCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtdXBsb2FkLWl0ZW1fX2ludGVyYWN0aW9uLWljb24ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLmMtdXBsb2FkLWl0ZW1fX2ludGVyYWN0aW9uLWljb24tLW1haW4ge1xuXG4gICAgICAgIC5jLXVwbG9hZC1pdGVtLmlzLWVycm9yICYsXG4gICAgICAgIC5jLXVwbG9hZC1pdGVtLmlzLXN1Y2Nlc3MgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJiN7JHVwbG9hZC1pdGVtLWludGVyYWN0aW9uLWljb24tcHNldWRvLWVsZW1lbnR9IHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICR1cGxvYWQtaXRlbS1pbnRlcmFjdGlvbi1pY29uLW1haW47XG5cbiAgICAgICAgICAgIC5jLXVwbG9hZC1pdGVtLmlzLWxvYWRpbmcgJiB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJHVwbG9hZC1pdGVtLWludGVyYWN0aW9uLWljb24tbG9hZGluZztcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy11cGxvYWQtaXRlbV9faW50ZXJhY3Rpb24taWNvbi0tc2Vjb25kYXJ5IHtcblxuICAgICAgICAuYy11cGxvYWQtaXRlbS5pcy1sb2FkaW5nICYsXG4gICAgICAgIC5jLXVwbG9hZC1pdGVtLmlzLWVycm9yICYsXG4gICAgICAgIC5jLXVwbG9hZC1pdGVtLmlzLXN1Y2Nlc3MgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJiN7JHVwbG9hZC1pdGVtLWludGVyYWN0aW9uLWljb24tcHNldWRvLWVsZW1lbnR9IHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICR1cGxvYWQtaXRlbS1pbnRlcmFjdGlvbi1pY29uLXNlY29uZGFyeTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtdXBsb2FkLWl0ZW1fX3N0YXR1cy1pY29uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAuYy11cGxvYWQtaXRlbS5pcy1zdWNjZXNzICYge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG5cbiAgICAgICAgICAgICYjeyR1cGxvYWQtaXRlbS1pbnRlcmFjdGlvbi1pY29uLXBzZXVkby1lbGVtZW50fSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJHVwbG9hZC1pdGVtLXN1Y2Nlc3Mtc3RhdHVzLWljb247XG4gICAgICAgICAgICAgICAgY29sb3I6ICR1cGxvYWQtaXRlbS1zdWNjZXNzLXN0YXR1cy1pY29uLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAuYy11cGxvYWQtaXRlbS5pcy1lcnJvciAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXG4gICAgICAgICAgICAmI3skdXBsb2FkLWl0ZW0taW50ZXJhY3Rpb24taWNvbi1wc2V1ZG8tZWxlbWVudH0ge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICR1cGxvYWQtaXRlbS1lcnJvci1zdGF0dXMtaWNvbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHVwbG9hZC1pdGVtLWVycm9yLXN0YXR1cy1pY29uLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXVwbG9hZC1pdGVtX19maWxlc2l6ZS1wcm9ncmVzcyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgLmMtdXBsb2FkLWl0ZW0uaXMtbG9hZGluZyAmLFxuICAgICAgICAuYy11cGxvYWQtaXRlbS5pcy1zdWNjZXNzICYge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy11cGxvYWQtaXRlbV9fZmlsZXNpemUge1xuXG4gICAgICAgIC5jLXVwbG9hZC1pdGVtLmlzLWVycm9yICYge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtdXBsb2FkLWl0ZW1fX21lc3NhZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAuYy11cGxvYWQtaXRlbS5pcy1zdWNjZXNzICYge1xuXG4gICAgICAgICAgICAmLFxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR1cGxvYWQtaXRlbS1zdWNjZXNzLW1lc3NhZ2UtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXVwbG9hZC1pdGVtLmlzLWVycm9yICYge1xuXG4gICAgICAgICAgICAmLFxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR1cGxvYWQtaXRlbS1lcnJvci1tZXNzYWdlLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXVwbG9hZC1pdGVtX19pbWFnZS13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkdXBsb2FkLWl0ZW0taW1hZ2Utc3BhY2luZztcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skdXBsb2FkLWl0ZW0taW1hZ2UtYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHVwbG9hZC1pdGVtLWltYWdlLXNwYWNpbmc7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXVwbG9hZC1pdGVtX19pbWFnZSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoIC8qIFs3XSAqL1xuICAgICAgICAgICAgKFwid2lkdGhcIiwgJHVwbG9hZC1pdGVtLWltYWdlLXdpZHRoKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAuYy11cGxvYWQtaXRlbV9faW1hZ2UtbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgYm9yZGVyOiAwOyAvKiBbOF0gKi9cbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvY3VzLXN0eWxlcyhcbiAgICAgICAgICAgICAgICAkb3V0bGluZS13aWR0aDogICR1cGxvYWQtaXRlbS1pbWFnZS1saW5rLWZvY3VzLW91dGxpbmUtd2lkdGgsXG4gICAgICAgICAgICAgICAgJG91dGxpbmUtc3R5bGU6ICAkdXBsb2FkLWl0ZW0taW1hZ2UtbGluay1mb2N1cy1vdXRsaW5lLXN0eWxlLFxuICAgICAgICAgICAgICAgICRvdXRsaW5lLWNvbG9yOiAgJHVwbG9hZC1pdGVtLWltYWdlLWxpbmstZm9jdXMtb3V0bGluZS1jb2xvcixcbiAgICAgICAgICAgICAgICAkb3V0bGluZS1vZmZzZXQ6ICR1cGxvYWQtaXRlbS1pbWFnZS1saW5rLWZvY3VzLW91dGxpbmUtb2Zmc2V0LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG5AaWYgKCR1cGxvYWQtaXRlbS1pY29uLWlzLWhpZGRlbikgeyAvKiBbNF0gKi9cbiAgICAuYy11cGxvYWQtaXRlbV9faWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4vKipcbiAqIFN3aXRjaCBmaWxlIGljb24gYnkgZmlsZSB0eXBlc1xuICovXG5AaWYgKCR1cGxvYWQtaXRlbS1lbmFibGUtaWNvbi10eXBlcykge1xuICAgIC5jLXVwbG9hZC1pdGVtX19pY29uIHtcblxuICAgICAgICBAZWFjaCAkaWNvbnR5cGUsICRpY29uIGluICR1cGxvYWQtaXRlbS1pY29uLXR5cGVzIHtcblxuICAgICAgICAgICAgJltkYXRhLWZpbGV0eXBlPVwiI3skaWNvbnR5cGV9XCJdOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICN7JGljb259O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxufVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI1VQTE9BRC1JVEVNIChTZXR0aW5ncylcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kdXBsb2FkLWl0ZW0tYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kdXBsb2FkLWl0ZW0tcGFkZGluZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG5cbiR1cGxvYWQtaXRlbS1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKHNtYWxsKSAhZGVmYXVsdDtcbiR1cGxvYWQtaXRlbS1pY29uLXNwYWNpbmctcmlnaHQ6ICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuXG4kdXBsb2FkLWl0ZW0taW50ZXJhY3Rpb24tcmVtb3ZlLWZvY3VzOiAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJHVwbG9hZC1pdGVtLWludGVyYWN0aW9uLWljb24tc3BhY2luZzogICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiR1cGxvYWQtaXRlbS1pbnRlcmFjdGlvbi1pY29uLXNwYWNpbmctYXQtYnJlYWtwb2ludDogJHVwbG9hZC1pdGVtLWludGVyYWN0aW9uLWljb24tc3BhY2luZyAhZGVmYXVsdDtcblxuJHVwbG9hZC1pdGVtLWludGVyYWN0aW9uLWljb24tc2l6ZTogICAgICAgICAgICAgICAgICBpY29uLXNpemUoeHNtYWxsKSAhZGVmYXVsdDtcbiR1cGxvYWQtaXRlbS1pbnRlcmFjdGlvbi1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcblxuJHVwbG9hZC1pdGVtLXRpdGxlLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAxLjUgIWRlZmF1bHQ7IC8vIFZlcnRpY2FsIGFsaWdubWVudFxuJHVwbG9hZC1pdGVtLXRpdGxlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULUxJR0hUICFkZWZhdWx0O1xuJHVwbG9hZC1pdGVtLXRpdGxlLXNwYWNpbmctYm90dG9tOiAgICAgICAgICAgICAgICAgICAwICFkZWZhdWx0O1xuXG4kdXBsb2FkLWl0ZW0tc3VidGl0bGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICRGUy0yICFkZWZhdWx0O1xuJHVwbG9hZC1pdGVtLXN1YnRpdGxlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG5cbiR1cGxvYWQtaXRlbS1wcm9ncmVzcy1zcGFjaW5nLXRvcDogICAgICAgICAgICAgICAgICAgJF9fU0tPREEtU1BBQ0lORy1TVEFUSUMtMTJfXyAhZGVmYXVsdDsgLy8gQXZvaWQgY29sbGlzaW9uIHdpdGggYnV0dG9uIHN0YXRlc1xuJHVwbG9hZC1pdGVtLXByb2dyZXNzLXNwYWNpbmctYm90dG9tOiAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjVVBMT0FELUlURU1cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFsxXSBBdm9pZCBkdXBsaWNhdGVkIG91dGxpbmUuXG4gKi9cbi5jLXVwbG9hZC1pdGVtIHtcblxufVxuXG4gICAgLmMtdXBsb2FkLWl0ZW1fX3RpdGxlLXJvdyB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmMtdXBsb2FkLWl0ZW1fX2ludGVyYWN0aW9uLWljb24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taWNvbi1zdGF0ZXMoKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG5cbiAgICB9XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjVVBMT0FELUNPTlRBSU5FUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiR1cGxvYWQtY29udGFpbmVyLWZpZWxkLXNwYWNpbmctYm90dG9tOiAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kdXBsb2FkLWNvbnRhaW5lci1pdGVtLXNwYWNpbmctdmVydGljYWw6ICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBSZXNldCBkZWZhdWx0IGxpc3Qgc3R5bGluZy5cbiAqIFsyXSBSZXNldCBkZWZhdWx0IGA8bGk+YCBzdHlsaW5nLlxuICovXG4uYy11cGxvYWQtY29udGFpbmVyIHtcbn1cblxuICAgIC5jLXVwbG9hZC1jb250YWluZXJfX2ZpZWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHVwbG9hZC1jb250YWluZXItZmllbGQtc3BhY2luZy1ib3R0b207XG4gICAgfVxuXG4gICAgLmMtdXBsb2FkLWNvbnRhaW5lcl9faXRlbWxpc3Qge1xuICAgICAgICBAaW5jbHVkZSBsaXN0LWJhcmUoKTsgLyogWzFdICovXG4gICAgfVxuXG4gICAgLmMtdXBsb2FkLWNvbnRhaW5lcl9faXRlbSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IC8qIFsyXSAqL1xuXG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkdXBsb2FkLWNvbnRhaW5lci1pdGVtLXNwYWNpbmctdmVydGljYWw7XG4gICAgICAgIH1cblxuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJQ09OLUxJU1QgKFNldHRpbmdzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRpY29uLWxpc3QtaWNvbi1zaXplOiAgICAgICAgICAgICAgICAgIGljb24tc2l6ZSh4c21hbGwpICFkZWZhdWx0O1xuJGljb24tbGlzdC1pdGVtLXNwYWNpbmctdmVydGljYWw6ICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJGljb24tbGlzdC1pY29uLXZlcnRpY2FsLWNvbXBlbnNhdGlvbjogMCAhZGVmYXVsdDtcbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJQ09OLUxJU1RcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kaWNvbi1saXN0LWFsaWdubWVudDogICAgICAgICAgICAgICAgICAgIGxlZnQgIWRlZmF1bHQ7XG4kaWNvbi1saXN0LWljb24tc2l6ZTogICAgICAgICAgICAgICAgICAgIGljb24tc2l6ZShzbWFsbCkgIWRlZmF1bHQ7XG4kaWNvbi1saXN0LWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kaWNvbi1saXN0LWljb24tc3BhY2luZzogICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiRpY29uLWxpc3QtaXRlbS1zcGFjaW5nLXZlcnRpY2FsOiAgICAgICAgbnVsbCAhZGVmYXVsdDtcbi8vIEJ5IGFsaWduaW5nIHRoZSBpY29uIGNlbnRlcmVkIHZlcnRpY2FsbHkgdG8gdGhlIHRleHQgd2l0aFxuLy8gYHZlcnRpY2FsLWFsaWduOiBtaWRkbGVgLCB0aGUgY2VudGVyIGlzIGFsd2F5cyBhIGJpdCBvZmYuXG4vLyBBc3NpZ25pbmcgYSBtYWdpYyBudW1iZXIgaXMgdGhlIG9ubHkgYWRlcXVhdGUgc29sdXRpb24gZm9yIHRoaXMgcHJvYmxlbS5cbiRpY29uLWxpc3QtaWNvbi12ZXJ0aWNhbC1jb21wZW5zYXRpb246ICAgMC4yNWVtICFkZWZhdWx0O1xuLy8gQWxpZ25pbmcgdGhlIGljb24gaG9yaXpvbnRhbGx5IHRvIHRoZSB2ZXJ5IGxlZnQuXG4kaWNvbi1saXN0LWljb24taG9yaXpvbnRhbC1jb21wZW5zYXRpb246ICRpY29uLWxpc3QtaWNvbi1zaXplICsgJGljb24tbGlzdC1pY29uLXNwYWNpbmcgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIENyZWF0ZSBzcGFjaW5nIGJldHdlZW4gaWNvbiBhbmQgdGV4dC4uLlxuICogWzJdIFJlc2V0IGRlZmF1bHQgbGlzdCBzdHlsaW5ncy4gV2UgZG8gbm90IHVzZSB0aGUgYEBpbmNsdWRlIGxpc3QtYmFyZSgpYFxuICogICAgIG1peGluLCBzaW5jZSB3ZSBleHBsaWNpdGx5IGRvIHdhbnQgdGhlIG1hcmdpbiBiZXR3ZWVuIHRoZSBgPGxpPmBzLCB3aGljaFxuICogICAgIGxpc3QtYmFyZSByZW1vdmVzLlxuICogWzNdIE1hZ2ljIG51bWJlciB0byBfcHJvcGVybHlfIGFsaWduIHRoZSBpY29uIHZlcnRpY2FsbHkgdG8gdGhlIHRleHQuXG4gKiBbNF0gSWYgdGhlIGRlc2lnbiBzcGVjaWZpZXMgYSBzcGFjaW5nIGJldHdlZW4gaWNvbiBsaXN0IGl0ZW1zLCBzZXQgaXQuXG4gKiAgICAgVGhpcyBhcHBsaWVzIHRvIGFsbCBpdGVtcyBleGNlcHQgdGhlIGZpcnN0IG9uZS5cbiAqIFs1XSBTZXQgcG9zaXRpb25pbmcgY29udGV4dCBmb3IgYC5jLWljb24tbGlzdF9faWNvbmAuIFRoaXMgaGVscHMgdG8gbWFrZVxuICogICAgIHRoZSBpY29uIHN0YXkgaW4gcGxhY2UgaW4gb3ZlcmZsb3cgY29udGV4dHMsIHNlZSBCUk9OLTY2OTkuXG4gKi9cbi5jLWljb24tbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmctbGVmdDogJGljb24tbGlzdC1pY29uLWhvcml6b250YWwtY29tcGVuc2F0aW9uOyAvKiBbMV0gKi9cbiAgICB0ZXh0LWFsaWduOiAkaWNvbi1saXN0LWFsaWdubWVudDtcbiAgICBsaXN0LXN0eWxlOiBub25lOyAvKiBbMl0gKi9cblxuICAgIGxpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbNV0gKi9cbiAgICB9XG5cbiAgICBsaSArIGxpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJGljb24tbGlzdC1pdGVtLXNwYWNpbmctdmVydGljYWw7IC8qIFs0XSAqL1xuICAgIH1cblxufVxuXG4gICAgLmMtaWNvbi1saXN0X19pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgY29sb3I6ICRpY29uLWxpc3QtaWNvbi1jb2xvcjtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICRmb250LXNpemU6ICAgJGljb24tbGlzdC1pY29uLXNpemUsXG4gICAgICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAxXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiBpZigkaWNvbi1saXN0LWljb24tdmVydGljYWwtY29tcGVuc2F0aW9uLCAkaWNvbi1saXN0LWljb24tdmVydGljYWwtY29tcGVuc2F0aW9uLCBudWxsKTsgLyogWzNdICovXG4gICAgICAgICAgICBsZWZ0OiAtKCRpY29uLWxpc3QtaWNvbi1ob3Jpem9udGFsLWNvbXBlbnNhdGlvbik7XG4gICAgICAgIH1cblxuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNUQUJTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gVGhlIHRhYi1iYXJcbiR0YWJzLW5hdi1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJHRhYnMtbmF2LWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kdGFicy1uYXYtYmFyLWJvcmRlcjogICAgICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuJHRhYnMtbmF2LWJhci1ib3JkZXItZXhjZWVkczogICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiR0YWJzLW5hdi1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgIDFweCAhZGVmYXVsdDtcbiR0YWJzLW5hdi1ib3JkZXItd2lkdGgtYWN0aXZlOiAgICAgICAgIDJweCAhZGVmYXVsdDtcbiR0YWJzLW5hdi1ib3JkZXItd2lkdGgtaG92ZXI6ICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kdGFicy1uYXYtYm9yZGVyLXN0eWxlOiAgICAgICAgICAgICAgICBzb2xpZCAhZGVmYXVsdDtcbiR0YWJzLW5hdi1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICRDT0xPUi1TVUJUTEUgIWRlZmF1bHQ7XG4kdGFicy1uYXYtYm9yZGVyLWNvbG9yLWFjdGl2ZTogICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kdGFicy1uYXYtYm9yZGVyLWNvbG9yLWhvdmVyOiAgICAgICAgICAkdGFicy1uYXYtYm9yZGVyLWNvbG9yLWFjdGl2ZSAhZGVmYXVsdDtcbiR0YWJzLW5hdi1ib3JkZXItY29sb3ItZGlzYWJsZWQ6ICAgICAgICRDT0xPUi1TVUJUTEUgIWRlZmF1bHQ7XG4kdGFicy1uYXYtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAkdGFicy1uYXYtYm9yZGVyLXdpZHRoICR0YWJzLW5hdi1ib3JkZXItc3R5bGUgJHRhYnMtbmF2LWJvcmRlci1jb2xvciAhZGVmYXVsdDtcblxuLy8gVGhlIHNpbmdsZSB0YWItaXRlbXMgaW4gdGhlIHRhYi1iYXJcbiR0YWJzLW5hdi1pdGVtLXRleHQtc2l6ZTogICAgICAgICAgICAgICRGUy0xICFkZWZhdWx0O1xuJHRhYnMtbmF2LWl0ZW0tdGV4dC1jb2xvcjogICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcbiR0YWJzLW5hdi1pdGVtLXRleHQtY29sb3ItYWN0aXZlOiAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiR0YWJzLW5hdi1pdGVtLXRleHQtY29sb3ItaG92ZXI6ICAgICAgICR0YWJzLW5hdi1pdGVtLXRleHQtY29sb3ItYWN0aXZlICFkZWZhdWx0O1xuJHRhYnMtbmF2LWl0ZW0tdGV4dC1jb2xvci1kaXNhYmxlZDogICAgJENPTE9SLVNVQlRMRSAhZGVmYXVsdDtcbiR0YWJzLW5hdi1pdGVtLXRleHQtdHJhbnNmb3JtOiAgICAgICAgIG5vbmUgIWRlZmF1bHQ7XG4kdGFicy1uYXYtaXRlbS1mb250LXdlaWdodDogICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG4kdGFicy1uYXYtaXRlbS1mb250LXdlaWdodC1hY3RpdmU6ICAgICAkdGFicy1uYXYtaXRlbS1mb250LXdlaWdodCAhZGVmYXVsdDtcbiR0YWJzLW5hdi1pdGVtLXNwYWNpbmc6ICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULUxBUkdFICFkZWZhdWx0O1xuJHRhYnMtbmF2LWl0ZW0tc3BhY2luZy12ZXJ0aWNhbDogICAgICAgbnVsbCAhZGVmYXVsdDtcbiR0YWJzLW5hdi1pdGVtLWJhY2tncm91bmQtY29sb3ItaG92ZXI6ICRDT0xPUi1TVUJUTEUgIWRlZmF1bHQ7XG5cbi8vIFRoZSBjb250ZW50IGJlbG93IHRoZSB0YWItYmFyXG4kdGFicy1jb250ZW50LXBhZGRpbmctdmVydGljYWw6ICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiR0YWJzLWNvbnRlbnQtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgIDAgIWRlZmF1bHQ7XG4kdGFicy1jb250ZW50LXBhZGRpbmc6ICAgICAgICAgICAgICAgICAkdGFicy1jb250ZW50LXBhZGRpbmctdmVydGljYWwgJHRhYnMtY29udGVudC1wYWRkaW5nLWhvcml6b250YWwgIWRlZmF1bHQ7XG5cbi8vIEljb25zIGluIHRhYi1uYXYtYmFyLWl0ZW1zXG4vLyBAVE9ETzogZGVmaW5lIGljb24tY29sb3I6IGFsbCBzdGF0ZXNcbiR0YWJzLWljb24tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgIGljb24tc2l6ZShzbWFsbCkgIWRlZmF1bHQ7XG4kdGFicy1pY29uLXN0YWNrZWQtc2l6ZTogICAgICAgICAgICAgICBpY29uLXNpemUobWVkaXVtKSAhZGVmYXVsdDtcbiR0YWJzLWljb24tb25seS1zaXplOiAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kdGFicy1pY29uLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kdGFicy1pY29uLXN0YWNrZWQtc3BhY2luZzogICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG5cbiR0YWJzLW5hdi1ib3JkZXItd2lkdGgtY29ycmVjdGlvbjogICAgIGlmKCR0YWJzLW5hdi1ib3JkZXItd2lkdGggIT0gMCwgLSgkdGFicy1uYXYtYm9yZGVyLXdpZHRoICsgMSksIG51bGwpICFkZWZhdWx0OyAvKiBbOF0gKi9cblxuLy8gQ29udHJvbC1oYW5kbGVzIGlmIHRoZSB0YWItYmFyIGlzIHdpZGVyIHRoYW4gdGhlIHNjcmVlblxuJHRhYnMtc2xpZGVyLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgJENPTE9SLUJBU0UtQkFDS0dST1VORCAhZGVmYXVsdDtcbiR0YWJzLXNsaWRlci1hcnJvdy1zaXplOiAgICAgICAgICAgICAgIGljb24tc2l6ZSh4c21hbGwpICFkZWZhdWx0O1xuJHRhYnMtc2xpZGVyLWFycm93LWNvbG9yOiAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuJHRhYnMtbmF2LXRoZW1lczogKFxuICAgIFwiYWx0ZXJuYXRpdmVcIjogKFxuICAgICAgICBcIm5hdi1iYWNrZ3JvdW5kLWNvbG9yXCI6ICAgICAgICBudWxsLFxuICAgICAgICBcIm5hdi1zbGlkZXItYmFja2dyb3VuZC1jb2xvclwiOiAkQ09MT1ItUEFMRSxcbiAgICAgICAgXCJpdGVtLWJhY2tncm91bmQtY29sb3ItaG92ZXJcIjogJENPTE9SLVdISVRFLFxuICAgICAgICBcIm5hdi1iYXItYm9yZGVyLWNvbG9yXCI6ICAgICAgICAkQ09MT1ItQlJBTkQsXG4gICAgICAgIFwibmF2LWJhci1ib3JkZXItY29sb3ItYWN0aXZlXCI6ICRDT0xPUi1XSElURSxcbiAgICAgICAgXCJuYXYtYmFyLWJvcmRlci1jb2xvci1ob3ZlclwiOiAgJENPTE9SLVdISVRFLFxuICAgICAgICBcIm5hdi1ib3JkZXItY29sb3ItZGlzYWJsZWRcIjogICAkQ09MT1ItSU5BQ1RJVkVcbiAgICApLFxuKSAhZGVmYXVsdDtcblxuXG4vKipcbiAqIFsxXSBXZSBuZWVkIHRvIGRlZmVuc2l2ZWx5IHJlc2V0IGFueSBkZWZhdWx0IGxpc3Qtc3R5bGUgcHJvcGVydGllcy5cbiAqIFsyXSBSZW1vdmUgd2hpdGVzcGFjZSBmb3IgaW5saW5lKC1ibG9jaykgZWxlbWVudHMuXG4gKiBbM10gRHJhdyB0aGUgbGluZSB0aHJvdWdoLCBpdCB3aWxsIGJlIGhpZGRlbiBieSBwYXJlbnRzIG92ZXJmbG93IGhpZGRlbi5cbiAqICAgICBUaGlzIGlzIHRoZSBsaW5lIHRoYXQgZXhjZWVkcyB0byB0aGUgcmlnaHQuXG4gKiBbNF0gRGl2aWRlIHRoZSBhbW91bnQgb2Ygc3BhY2luZyBieSB0d28sIHNvIHRoYXQgdGhlIHN1bSBvZiBib3RoIHBhZGRpbmdzXG4gKiAgICAgZXF1YWxzIHRoZSB2YXJpYWJsZS5cbiAqIFs1XSBUaGUgOjpiZWZvcmUgcHNldWRvIGVsZW1lbnQgcmVwcmVzZW50cyB0aGUgYm9yZGVyLWJvdHRvbSBiZWxvdyBlYWNoIGl0ZW0uXG4gKiBbNl0gVGhlIDo6YWZ0ZXIgcHNldWRvIGVsZW1lbnQgcmVwcmVzZW50cyB0aGUgYm9yZGVyIHRoYXQgZXhjZWVkcyBhbGwgdGhlXG4gKiAgICAgd2F5IHRvIHRoZSByaWdodC4gVG8gbWFrZSB0aGlzIGNvbXBvbmVudCBjb21wbGlhbnQgdG8gdGhlIEJsdWVsYWJlbFxuICogICAgIGRlc2lnbiwgdGhpcyBleGNlZWRpbmcgYm9yZGVyIGNhbm5vdCBiZSBidWlsZCB3aXRoIGEgYm9yZGVyLWJvdHRvbSBvbiB0aGVcbiAqICAgICBsaXN0IGVsZW1lbnQuXG4gKiBbN10gTWFrZSB0aGUgYm9yZGVyIGxvbmcgZW5vdWdoLlxuICogWzhdIEVsaW1pbmF0ZSBhbnkgYWRkaXRpb25hbCBtYXJnaW4gaW5zaWRlIHRoZSB0YWIgY29udGVudC5cbiAqIFs5XSBQbGFjZSB0aGUgdGV4dCBvdXQgb2YgdGhlIHZpZXdwb3J0IHNvIHRoYXQgaXMgc3RpbGwgYWNjZXNzaWJsZS5cbiAqIFsxMF0gRW5hYmxlL2Rpc2FibGUgcG9pbnRlciBldmVudHMgcHJldi9uZXh0IGJ1dHRvbnMuXG4gKi9cbi5jLXRhYnMge1xuXG59XG5cbiAgICAuYy10YWJzX19uYXYge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBtYXJnaW46IDA7IC8qIFsxXSAqL1xuICAgICAgICBwYWRkaW5nOiAwOyAvKiBbMV0gKi9cbiAgICAgICAgZm9udC1zaXplOiAwOyAvKiBbMl0gKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYnMtbmF2LWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICAgICAgQGluY2x1ZGUgdmFyeSgkbG9vcDogJHRhYnMtbmF2LXRoZW1lcykge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyeS1nZXQoXCJuYXYtYmFja2dyb3VuZC1jb2xvclwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOyAvKiBbN10gKi9cbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICR0YWJzLW5hdi1ib3JkZXItd2lkdGgtY29ycmVjdGlvbjsgLyogWzhdICovXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsgLyogWzEwXSAqL1xuXG4gICAgICAgICAgICAmLm5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKCR0YWJzLXNsaWRlci1iYWNrZ3JvdW5kLWNvbG9yLCAwKSAwJSwgcmdiYSgkdGFicy1zbGlkZXItYmFja2dyb3VuZC1jb2xvciwgMSkgNDAlKTsgLyogWzldICovXG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB2YXJ5KCRsb29wOiAkdGFicy1uYXYtdGhlbWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSh2YXJ5LWdldChcIm5hdi1zbGlkZXItYmFja2dyb3VuZC1jb2xvclwiKSwgMCkgMCUsIHJnYmEodmFyeS1nZXQoXCJuYXYtc2xpZGVyLWJhY2tncm91bmQtY29sb3JcIiksIDEpIDQwJSk7IC8qIFs5XSAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnByZXZpb3VzIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoJHRhYnMtc2xpZGVyLWJhY2tncm91bmQtY29sb3IsIDEpIDYwJSwgcmdiYSgkdGFicy1zbGlkZXItYmFja2dyb3VuZC1jb2xvciwgMCkgMTAwJSk7IC8qIFs5XSAqL1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdmFyeSgkbG9vcDogJHRhYnMtbmF2LXRoZW1lcykge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEodmFyeS1nZXQoXCJuYXYtc2xpZGVyLWJhY2tncm91bmQtY29sb3JcIiksIDEpIDQwJSwgcmdiYSh2YXJ5LWdldChcIm5hdi1zbGlkZXItYmFja2dyb3VuZC1jb2xvclwiKSwgMCkgMTAwJSk7IC8qIFs5XSAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogWzEwXSAqL1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKCR0YWJzLXNsaWRlci1hcnJvdy1zaXplKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRhYnMtc2xpZGVyLWFycm93LWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXRhYnNfX25hdi1pdGVtIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgLmMtdGFic19fbmF2LWxpbmsge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1idXR0b24oKTtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAgICR0YWJzLW5hdi1pdGVtLXRleHQtc2l6ZSxcbiAgICAgICAgICAgICRsaW5lLWhlaWdodDogJHRhYnMtbmF2LWhlaWdodFxuICAgICAgICApO1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KCAvKiBbNF0gKi9cbiAgICAgICAgICAgIChcInBhZGRpbmctbGVmdFwiLCByZXNwb25zaXZlLXByb3BlcnR5LW1vZGlmeSgkdGFicy1uYXYtaXRlbS1zcGFjaW5nLCAkZmFjdG9yOiAwLjUpKSxcbiAgICAgICAgICAgIChcInBhZGRpbmctcmlnaHRcIiwgcmVzcG9uc2l2ZS1wcm9wZXJ0eS1tb2RpZnkoJHRhYnMtbmF2LWl0ZW0tc3BhY2luZywgJGZhY3RvcjogMC41KSksXG4gICAgICAgICAgICAoXCJwYWRkaW5nLXRvcFwiLCByZXNwb25zaXZlLXByb3BlcnR5LW1vZGlmeSgkdGFicy1uYXYtaXRlbS1zcGFjaW5nLXZlcnRpY2FsLCAkZmFjdG9yOiAwLjUpKSxcbiAgICAgICAgICAgIChcInBhZGRpbmctYm90dG9tXCIsIHJlc3BvbnNpdmUtcHJvcGVydHktbW9kaWZ5KCR0YWJzLW5hdi1pdGVtLXNwYWNpbmctdmVydGljYWwsICRmYWN0b3I6IDAuNSkpLFxuICAgICAgICApO1xuXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXdlaWdodDogJHRhYnMtbmF2LWl0ZW0tZm9udC13ZWlnaHQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICR0YWJzLW5hdi1pdGVtLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICBjb2xvcjogJHRhYnMtbmF2LWl0ZW0tdGV4dC1jb2xvcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGlmKCR0YWJzLW5hdi1pdGVtLWJhY2tncm91bmQtY29sb3ItaG92ZXIsICR0YWJzLW5hdi1pdGVtLWJhY2tncm91bmQtY29sb3ItaG92ZXIsIG51bGwpO1xuICAgICAgICAgICAgY29sb3I6ICR0YWJzLW5hdi1pdGVtLXRleHQtY29sb3ItaG92ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICR0YWJzLW5hdi10aGVtZXMpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXJ5LWdldChcIml0ZW0tYmFja2dyb3VuZC1jb2xvci1ob3ZlclwiKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICR0YWJzLW5hdi1ib3JkZXItd2lkdGgtaG92ZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYnMtbmF2LWJvcmRlci1jb2xvci1ob3ZlcjtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICR0YWJzLW5hdi10aGVtZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyeS1nZXQoXCJuYXYtYmFyLWJvcmRlci1jb2xvci1ob3ZlclwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdGFicy1uYXYtaXRlbS1mb250LXdlaWdodC1hY3RpdmU7XG4gICAgICAgICAgICBjb2xvcjogJHRhYnMtbmF2LWl0ZW0tdGV4dC1jb2xvci1hY3RpdmU7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkdGFicy1uYXYtYm9yZGVyLXdpZHRoLWFjdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFicy1uYXYtYm9yZGVyLWNvbG9yLWFjdGl2ZTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICR0YWJzLW5hdi10aGVtZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyeS1nZXQoXCJuYXYtYmFyLWJvcmRlci1jb2xvci1hY3RpdmVcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0YWJzLW5hdi1iYXItYm9yZGVyKSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUgeyAvKiBbNV0gKi9cbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICR0YWJzLW5hdi1ib3JkZXItd2lkdGg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYnMtbmF2LWJvcmRlci1jb2xvcjtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICR0YWJzLW5hdi10aGVtZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyeS1nZXQoXCJuYXYtYmFyLWJvcmRlci1jb2xvclwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHRhYnMtbmF2LWJhci1ib3JkZXItZXhjZWVkcykgeyAvKiBbM10gKi8gLyogWzZdICovXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuXG4gICAgICAgICAgICAgICAgICAgIC5jLXRhYnNfX25hdi1pdGVtOmxhc3QtY2hpbGQgJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDk5OTk5cHg7IC8qIFs3XSAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjYWxlLXVubGltaXRlZC9kZWNsYXJhdGlvbi1zdHJpY3QtdmFsdWUgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJHRhYnMtbmF2LWJvcmRlci13aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJzLW5hdi1ib3JkZXItY29sb3I7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICR0YWJzLW5hdi10aGVtZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXJ5LWdldChcIm5hdi1iYXItYm9yZGVyLWNvbG9yXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICR0YWJzLW5hdi1pdGVtLXRleHQtY29sb3ItZGlzYWJsZWQ7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFicy1uYXYtYm9yZGVyLWNvbG9yLWRpc2FibGVkO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdmFyeSgkbG9vcDogJHRhYnMtbmF2LXRoZW1lcykge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXJ5LWdldChcIm5hdi1ib3JkZXItY29sb3ItZGlzYWJsZWRcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAuYy10YWJzX19uYXYuYy10YWJzX19uYXYtLWljb25zICYge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuYy10YWJzX19uYXYuYy10YWJzX19uYXYtLWljb25zLXN0YWNrZWQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgICR0YWJzLW5hdi1pdGVtLXRleHQtc2l6ZSxcbiAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6IDFcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHRhYnMtaWNvbi1zdGFja2VkLXNwYWNpbmc7XG4gICAgICAgIH1cblxuICAgICAgICAuYy10YWJzX19uYXYtLWljb25zLW9ubHkgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgICR0YWJzLW5hdi1pdGVtLXRleHQtc2l6ZSxcbiAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6IDFcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJHRhYnMtaWNvbi1zcGFjaW5nO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICR0YWJzLWljb24tc3BhY2luZztcblxuICAgICAgICAgICAgLmMtdGFic19fdGV4dCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IC0xMDB2dzsgLyogWzldICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtdGFic19faWNvbiB7XG5cbiAgICAgICAgLmMtdGFic19fbmF2LmMtdGFic19fbmF2LS1pY29ucyAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgICR0YWJzLWljb24tc2l6ZSxcbiAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6IDFcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICR0YWJzLWljb24tc3BhY2luZztcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXRhYnNfX25hdi5jLXRhYnNfX25hdi0taWNvbnMtc3RhY2tlZCAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgICR0YWJzLWljb24tc3RhY2tlZC1zaXplLFxuICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogMVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICR0YWJzLWljb24tc3RhY2tlZC1zcGFjaW5nO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRhYnMtaWNvbi1zdGFja2VkLXNwYWNpbmc7XG4gICAgICAgIH1cblxuICAgICAgICAuYy10YWJzX19uYXYuYy10YWJzX19uYXYtLWljb25zLW9ubHkgJiB7XG4gICAgICAgICAgICBAaWYgKCR0YWJzLWljb24tb25seS1zaXplKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgICR0YWJzLWljb24tb25seS1zaXplLFxuICAgICAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6IDFcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgIH1cblxuICAgIC5jLXRhYnNfX2NvbnRlbnQtd3JhcHBlciB7XG5cbiAgICB9XG5cbiAgICAuYy10YWJzX19jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6ICR0YWJzLWNvbnRlbnQtcGFkZGluZztcblxuICAgICAgICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbOF0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZbYXJpYS1oaWRkZW49XCJ0cnVlXCJdIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgIH1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNUQUJTIChTZXR0aW5ncylcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kdGFicy1uYXYtYmFyLWJvcmRlci1leGNlZWRzOiAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiR0YWJzLW5hdi1ib3JkZXItd2lkdGgtYWN0aXZlOiAgICAgICAgIDNweCAhZGVmYXVsdDtcbiR0YWJzLW5hdi1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFICFkZWZhdWx0O1xuJHRhYnMtbmF2LWJvcmRlci13aWR0aC1jb3JyZWN0aW9uOiAgICAgMCAhZGVmYXVsdDtcblxuJHRhYnMtbmF2LWl0ZW0tc3BhY2luZzogICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kdGFicy1uYXYtaXRlbS1zcGFjaW5nLXZlcnRpY2FsOiAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcblxuJHRhYnMtbmF2LWl0ZW0tZm9udC13ZWlnaHQ6ICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xEICFkZWZhdWx0O1xuJHRhYnMtbmF2LWl0ZW0tdGV4dC1zaXplOiAgICAgICAgICAgICAgJEZTMCAhZGVmYXVsdDtcbiR0YWJzLW5hdi1pdGVtLXRleHQtY29sb3I6ICAgICAgICAgICAgICRDT0xPUi1PTi1TVVJGQUNFLTcwMCAhZGVmYXVsdDtcbiR0YWJzLW5hdi1pdGVtLXRleHQtY29sb3ItYWN0aXZlOiAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kdGFicy1uYXYtaXRlbS10ZXh0LWNvbG9yLWRpc2FibGVkOiAgICAkQ09MT1ItSU5BQ1RJVkUgIWRlZmF1bHQ7XG5cbiR0YWJzLWljb24tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgIGljb24tc2l6ZSh4c21hbGwpICFkZWZhdWx0O1xuJHRhYnMtaWNvbi1zdGFja2VkLXNpemU6ICAgICAgICAgICAgICAgJHRhYnMtaWNvbi1zaXplICFkZWZhdWx0O1xuJHRhYnMtaWNvbi1vbmx5LXNpemU6ICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKG1lZGl1bSkgIWRlZmF1bHQ7XG5cbiR0YWJzLW5hdi1pdGVtLWJhY2tncm91bmQtY29sb3ItaG92ZXI6IGZhbHNlICFkZWZhdWx0O1xuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1RBQlNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2tvZGEtdGFicy1uYXYtaXRlbS1zcGFjaW5nOiAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWExBUkdFICFkZWZhdWx0O1xuJHNrb2RhLXRhYnMtbmF2LWl0ZW0tc3BhY2luZy1zbWFsbDogICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJHNrb2RhLXRhYnMtbmF2LWl0ZW0tZm9jdXMtb3V0bGluZS13aWR0aDogICAgICRHTE9CQUwtRk9DVVMtV0lEVEggIWRlZmF1bHQ7XG4kc2tvZGEtdGFicy1uYXYtaXRlbS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAgICAgJENPTE9SLUJBU0UgIWRlZmF1bHQ7XG4kc2tvZGEtdGFicy1uYXYtaXRlbS1mb2N1cy1vdXRsaW5lLW9mZnNldDogICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJHNrb2RhLXRhYnMtaWNvbi1zdGFja2VkLXRleHQtYm90dG9tLXNwYWNpbmc6ICRHTE9CQUwtU1BBQ0lORy1VTklULVhYU01BTEwgIWRlZmF1bHQ7XG5cbi8qKlxuXG4gKiBbMV0gUmVzZXQgZGVmYXVsdCBiYWNrZ3JvdW5kIHNldHRpbmdzLlxuICogWzJdIFJlc2V0IGRlZmF1bHQgZmxpY2tpdHkgYmFja2dyb3VuZCBzZXR0aW5ncy5cbiAqIFszXSBSZXNldCBkZWZhdWx0IG91dGxpbmUgc2V0dGluZ3MuXG4gKiBbNF0gUmVkdWNlIHNwYWNpbmcgb24gc21hbGxlciBzY3JlZW5zLlxuICogWzVdIEhpZGUgYm90dG9tIGJvcmRlciBmb3Igbm9uLWFjdGl2ZSB0YWJzLlxuICogWzZdIEhpZGUgYnJvd3NlciBmb2N1cyBvdXRsaW5lIGZvciBicm93c2VycyB0aGF0IGFsc28gc3VwcG9ydCBgOmZvY3VzLXZpc2libGVgLlxuICogWzddIEFkZCBvdXRsaW5lIGFzIHBlciBicmFuZCBndWlkZWxpbmUsIGZvciBicm93c2VycyB0aGF0IHN1cHBvcnQgYDpmb2N1cy12aXNpYmxlYC5cbiAqL1xuLmMtdGFicyB7XG5cbn1cblxuICAgIC5jLXRhYnNfX25hdiB7XG5cbiAgICAgICAgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ge1xuXG4gICAgICAgICAgICAmLnByZXZpb3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgLyogWzFdICovXG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgkdGFicy1zbGlkZXItYmFja2dyb3VuZC1jb2xvciwgMCkgMCUsIHJnYmEoJHRhYnMtc2xpZGVyLWJhY2tncm91bmQtY29sb3IsIDEpIDMwJSk7IC8qIFsxXSAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm5leHQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyAvKiBbMV0gKi9cblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgkdGFicy1zbGlkZXItYmFja2dyb3VuZC1jb2xvciwgMCkgMCUsIHJnYmEoJHRhYnMtc2xpZGVyLWJhY2tncm91bmQtY29sb3IsIDEpIDMwJSk7IC8qIFsxXSAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwOyAvKiBbNl0gKi9cbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbXBvcnRhbnQodHJhbnNwYXJlbnQsIHRydWUpOyAvKiBbMl0gKi9cblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvY3VzLXN0eWxlcygkb3V0bGluZS1jb2xvcjogJHNrb2RhLXRhYnMtbmF2LWl0ZW0tZm9jdXMtb3V0bGluZS1jb2xvciwgJG91dGxpbmUtd2lkdGg6ICR0YWJzLW5hdi1ib3JkZXItd2lkdGgsICRvdXRsaW5lLW9mZnNldDogLSR0YWJzLW5hdi1ib3JkZXItd2lkdGgpOyAvKiBbM10gKi9cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy10YWJzX19uYXYtaXRlbSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHNrb2RhLXRhYnMtbmF2LWl0ZW0tc3BhY2luZztcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9c1wiKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRza29kYS10YWJzLW5hdi1pdGVtLXNwYWNpbmctc21hbGw7IC8qIFs0XSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy10YWJzX19uYXYtLWljb25zLXN0YWNrZWQge1xuXG4gICAgICAgIC5jLXRhYnNfX25hdi1saW5rIHtcblxuICAgICAgICAgICAgLmMtdGFic19fdGV4dCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNrb2RhLXRhYnMtaWNvbi1zdGFja2VkLXRleHQtYm90dG9tLXNwYWNpbmc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtdGFic19fbmF2LWxpbmsge1xuXG4gICAgICAgICY6bm90KC5pcy1hY3RpdmUpIHtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBbNV0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcblxuICAgICAgICAgICAgJjo6YWZ0ZXIgeyAvKiBbN10gKi9cbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6ICRza29kYS10YWJzLW5hdi1pdGVtLWZvY3VzLW91dGxpbmUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkc2tvZGEtdGFicy1uYXYtaXRlbS1mb2N1cy1vdXRsaW5lLW9mZnNldDtcbiAgICAgICAgICAgICAgICBib3R0b206ICRza29kYS10YWJzLW5hdi1pdGVtLWZvY3VzLW91dGxpbmUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgIGxlZnQ6ICRza29kYS10YWJzLW5hdi1pdGVtLWZvY3VzLW91dGxpbmUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgIG91dGxpbmU6ICRza29kYS10YWJzLW5hdi1pdGVtLWZvY3VzLW91dGxpbmUtd2lkdGggc29saWQgJHNrb2RhLXRhYnMtbmF2LWl0ZW0tZm9jdXMtb3V0bGluZS1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICNDQVJEXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGNhcmQtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kY2FyZC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRjYXJkLW1vZHVsZS1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJGNhcmQtc2hhZG93OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJENBUkQtU0hBRE9XICFkZWZhdWx0O1xuJGNhcmQtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjYXJkLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY2FyZC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQkFTRS1CQUNLR1JPVU5EICFkZWZhdWx0O1xuJGNhcmQtaGVhZGVyLWV4dHJhLXNwYWNpbmctYm90dG9tOiAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjYXJkLWltYWdlLWV4dHJhLXNwYWNpbmctYm90dG9tOiAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY2FyZC10aXRsZS1zcGFjaW5nLWJvdHRvbTogICAgICAgICAgICAgICAgICAgICAgICAwICFkZWZhdWx0O1xuJGNhcmQtdGl0bGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEZTMiAhZGVmYXVsdDtcbiRjYXJkLXRpdGxlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCAhZGVmYXVsdDtcbiRjYXJkLXRpdGxlLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY2FyZC1zdWJ0aXRsZS1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNhcmQtc3VidGl0bGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjYXJkLXN1YnRpdGxlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY2FyZC1zdWJ0aXRsZS10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNhcmQtdGV4dC1hbGlnbm1lbnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdCAhZGVmYXVsdDtcbiRjYXJkLWJvZHktdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY2FyZC1ib2R5LWV4dHJhLXNwYWNpbmctYm90dG9tOiAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4vKipcbiAqIEBUT0RPIGljb25zXG4gKiAtIG9yZGVyXG4gKiAtIG5hbWluZyAocGx1cmFsIHZzIHNpbmd1bGFyKVxuICovXG5cbiRjYXJkLWljb24tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24tc2l6ZShsYXJnZSkgIWRlZmF1bHQ7XG4kY2FyZC1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kY2FyZC1pY29uLWV4dHJhLXNwYWNpbmctYm90dG9tOiAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNhcmQtc3RhdGVzLWljb24tb2Zmc2V0LXRvcDogICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjYXJkLXN0YXRlcy1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24tc2l6ZShsYXJnZSkgIWRlZmF1bHQ7XG4kY2FyZC1zdGF0ZS1pY29uLWlzLWFsaWduZWQtdG8tbGVmdDogICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRjYXJkLXN0YXRlLWljb24tbGVmdC1vZmZzZXQtbGVmdDogICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJGNhcmQtZGVmYXVsdC1pY29uLWlzLWFsaWduZWQtdG8tcmlnaHQ6ICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kY2FyZC1pY29uLXJpZ2h0LXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kY2FyZC1mb290ZXItYWxpZ25tZW50OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2FyZC10ZXh0LWFsaWdubWVudCAhZGVmYXVsdDtcbiRjYXJkLWZvb3Rlci1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRGUy0xICFkZWZhdWx0O1xuJGNhcmQtc2Nyb2xsYWJsZS1saW5lcy12aXNpYmxlOiAgICAgICAgICAgICAgICAgICAgMTQgIWRlZmF1bHQ7XG4kY2FyZC1zY3JvbGxhYmxlLW1heC1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUxJTkUtSEVJR0hUICogJGNhcmQtc2Nyb2xsYWJsZS1saW5lcy12aXNpYmxlICFkZWZhdWx0O1xuXG4kY2FyZC1pbmFjdGl2ZS1vcGFjaXR5OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkT1BBQ0lUWS1ESVNBQkxFRCAhZGVmYXVsdDtcbiRjYXJkLWluYWN0aXZlLXNoYWRvdzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDQVJELUlOQUNUSVZFLVNIQURPVyAhZGVmYXVsdDtcbiRjYXJkLWluYWN0aXZlLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY2FyZC1pbmFjdGl2ZS1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kY2FyZC1kaXZpZGVyLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcblxuJGNhcmQtZXhwYW5kYWJsZS1oZWFkZXItYnJlYWtwb2ludDogICAgICAgICAgICAgICAgcyAhZGVmYXVsdDtcbiRjYXJkLWV4cGFuZGFibGUtc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJGNhcmQtZXhwYW5kYWJsZS1idXR0b24tc21hbGw6ICAgICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kY2FyZC1leHBhbmRhYmxlLWJ1dHRvbi1zaXplLXNtYWxsOiAgICAgICAgICAgICAgICBcInNtYWxsXCIgIWRlZmF1bHQ7XG4kY2FyZC1leHBhbmRhYmxlLWljb24tZXhwYW5kZWQ6ICAgICAgICAgICAgICAgICAgICByb3RhdGVYKDE4MGRlZykgIWRlZmF1bHQ7XG4kY2FyZC1leHBhbmRhYmxlLXRleHQtYWxpZ25tZW50OiAgICAgICAgICAgICAgICAgICAkY2FyZC10ZXh0LWFsaWdubWVudCAhZGVmYXVsdDtcblxuLy8gU2V0dGluZ3MgZm9yIGZvciBDYXJkIFJlc3BvbnNpdmUgQ29sbGFwc2VcbiRjYXJkLXJlc3BvbnNpdmUtY29sbGFwc2UtaWNvbi1zaXplOiAgICAgICAgICAgICAgIGljb24tc2l6ZShzbWFsbCkgIWRlZmF1bHQ7XG4kY2FyZC1yZXNwb25zaXZlLWNvbGxhcHNlLWljb24tY29tcGxleGl0eTogICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS1pY29uLWNvbGxhcHNlZDogICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtZXhwYW5kLCAkY2FyZC1yZXNwb25zaXZlLWNvbGxhcHNlLWljb24tY29tcGxleGl0eSkgIWRlZmF1bHQ7XG4kY2FyZC1yZXNwb25zaXZlLWNvbGxhcHNlLWljb24tZXhwYW5kZWQ6ICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1jb2xsYXBzZSwgJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS1pY29uLWNvbXBsZXhpdHkpICFkZWZhdWx0O1xuJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS1pY29uLXRyYW5zZm9ybS1leHBhbmRlZDogbnVsbCAhZGVmYXVsdDtcbiRjYXJkLXJlc3BvbnNpdmUtY29sbGFwc2Utc3RhdGUtZXhwYW5kZWQ6ICAgICAgICAgIFwiW2FyaWEtZXhwYW5kZWQ9J3RydWUnXVwiICFkZWZhdWx0O1xuXG4vLyBTZXR0aW5ncyBmb3Igc21hbGwgdmlld3BvcnRzIGZvciBDYXJkIFJlc3BvbnNpdmUgQ29sbGFwc2VcbiRjYXJkLXJlc3BvbnNpdmUtY29sbGFwc2Utc3BhY2luZzogICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS1pY29uLWNvbG9yOiAgICAgICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS10aXRsZS1mb250LXNpemU6ICAgICAgICAgJEZTMyAhZGVmYXVsdDtcbiRjYXJkLXJlc3BvbnNpdmUtY29sbGFwc2UtdGl0bGUtZm9udC13ZWlnaHQ6ICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY2FyZC1yZXNwb25zaXZlLWNvbGxhcHNlLXRpdGxlLWZvbnQtZmFtaWx5OiAgICAgICBudWxsICFkZWZhdWx0O1xuJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS10aXRsZS1zcGFjaW5nLWJvdHRvbTogICAgMCAhZGVmYXVsdDtcbiRjYXJkLXJlc3BvbnNpdmUtY29sbGFwc2UtaGVhZGVyLWl0ZW1zLWRpcmVjdGlvbjogIHJvdyAhZGVmYXVsdDtcbiRjYXJkLXJlc3BvbnNpdmUtY29sbGFwc2UtaGVhZGVyLWl0ZW1zLWFsaWduOiAgICAgIHNwYWNlLWJldHdlZW4gIWRlZmF1bHQ7XG4kY2FyZC1yZXNwb25zaXZlLWNvbGxhcHNlLWhlYWRlci1ib3R0b20tc3BhY2luZzogICBudWxsICFkZWZhdWx0O1xuJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS1zcGFjaW5nLWxlZnQ6ICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjYXJkLXJlc3BvbnNpdmUtY29sbGFwc2Utc3BhY2luZy1yaWdodDogICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY2FyZC1yZXNwb25zaXZlLWNvbGxhcHNlLXN1YnRpdGxlLXNwYWNpbmc6ICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS1zdWJ0aXRsZS10ZXh0LWNvbG9yOiAgICAgbnVsbCAhZGVmYXVsdDtcbiRjYXJkLXJlc3BvbnNpdmUtY29sbGFwc2Utc3VidGl0bGUtZm9udC1zaXplOiAgICAgICRGUzAgIWRlZmF1bHQ7XG4kY2FyZC1yZXNwb25zaXZlLWNvbGxhcHNlLXN1YnRpdGxlLWZvbnQtZmFtaWx5OiAgICBudWxsICFkZWZhdWx0O1xuJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS1zdWJ0aXRsZS1mb250LXdlaWdodDogICAgbnVsbCAhZGVmYXVsdDtcbiRjYXJkLXJlc3BvbnNpdmUtY29sbGFwc2UtYm9keS1mb250LXdlaWdodDogICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRjYXJkLXRoZW1lczogKFxuICAgIFwiYWx0ZXJuYXRpdmVcIjogKFxuICAgICAgICBcImJhY2tncm91bmRcIjogbnVsbCxcbiAgICAgICAgXCJib3JkZXJcIjogICAgIG51bGxcbiAgICApXG4pICFkZWZhdWx0O1xuXG4kY2FyZC1zdGF0ZS10aGVtZXM6IChcbiAgICBcInN1Y2Nlc3NcIjogKFxuICAgICAgICBcImljb24tY29sb3JcIjogbWFwLWRlZXAtZ2V0KCRTVEFUVVMtVEhFTUVTLCBcInN1Y2Nlc3NcIiwgXCJpY29uLWNvbG9yXCIpLFxuICAgICksXG4gICAgXCJ3YXJuaW5nXCI6IChcbiAgICAgICAgXCJpY29uLWNvbG9yXCI6IG1hcC1kZWVwLWdldCgkU1RBVFVTLVRIRU1FUywgXCJ3YXJuaW5nXCIsIFwiaWNvbi1jb2xvclwiKSxcbiAgICApLFxuICAgIFwiZXJyb3JcIjogKFxuICAgICAgICBcImljb24tY29sb3JcIjogbWFwLWRlZXAtZ2V0KCRTVEFUVVMtVEhFTUVTLCBcImVycm9yXCIsIFwiaWNvbi1jb2xvclwiKSxcbiAgICApXG4pICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBGaWxsIGhvcml6b250YWwgc3BhY2Ugb2YgcGFyZW50LlxuICogWzJdIENhbGN1bGF0ZSB0aGUgc3BhY2UgbmVlZGVkIG9mIDEwMCUgb2YgdGhlIGNvbnRlbnQgYnkgc3VidHJhY3RpbmcgdGhlXG4gKiAgICAgbmVlZGVkIHNwYWNlIGZyb20gdGhlIGljb24uXG4gKiBbM10gRGVmZW5zaXZlbHkgcmVzZXQgYW55IHBvdGVudGlhbCBzcGFjaW5nIHRoYXQgY29tZXMgd2l0aCBwbGFpbiBIVE1MXG4gKiAgICAgZWxlbWVudHMuXG4gKiBbNF0gVGhlIGxvZ2ljYWwgYW5kIHRoZXJlZm9yZSByZWFkaW5nIG9yZGVyIG9mIGZsZXggaXRlbXMgaXMgc2VwYXJhdGUgZnJvbVxuICogICAgIHRoZSB2aXN1YWwgb3JkZXIuIEluIHRoaXMgY2FzZSB0aGUgb3JkZXIgcHJvcGVydHkgY2FuIGFsbG93IHBhdHRlcm5zIHRvXG4gKiAgICAgYmUgZWFzaWx5IGltcGxlbWVudGVkIGluIHBvc2l0aW9uIG5lZWRlZC5cbiAqIFs1XSBSZXNldCBvcmRlcmluZyBzZXQgYnkgWzRdLlxuICogWzZdIFByZXZlbnQgdG9vIG11Y2ggc3BhY2luZyBiZWxvdyBiZWxvdyBpbWFnZSBpbiBJRS5cbiAqIFs3XSBUbyBwcmV2ZW50IHVud2FudGVkIHN0YWNraW5nIHNwYWNpbmcgYXQgdGhlIGJvdHRvbSBvZiB0aGUgYm9keSwgcmVtb3ZlXG4gKiAgICAgYW55IHVud2FudGVkIHNwYWNpbmcsIG5vIG1hdHRlciB3aGF0IGVsZW1lbnQgdGhlIGxhc3QgZWxlbWVudCBpblxuICogICAgIGAuYy1jYXJkX19ib2R5YCBpcy5cbiAqIFs4XSBQbGFjZSBmb290ZXIgYXQgdGhlIGJvdHRvbS4gVGhpcyBvbmx5IHdvcmtzIGluIGNvbnRleHQsIHdoZXJlIHRoZSBjYXJkXG4gKiAgICAgaXMgbGFyZ2VyIHRoYW4gdGhlIGFjdHVhbCBjb250ZW50LCBlLmcuIG1hbnVhbGx5IHNldCBoZWlnaHQgb3JcbiAqICAgICBlcXVhbC1oZWlnaHQgd2l0aCBvdGhlciBpdGVtcyBpbiBhIHJvdy5cbiAqIFs5XSBDZW50ZXIgaG9yaXpvbnRhbGx5LlxuICogWzEwXSBBZGQgYWRkaXRpb25hbCBgcGFkZGluZy1yaWdodGAgdG8gdGhlIGVsZW1lbnQgZm9sbG93aW5nIGAuYy1jYXJkX19pY29uYFxuICogICAgICBpZiBbMTRhXSB0aGUgaWNvbiBpcyBwbGFjZWQgb24gdGhlIGxlZnQgZm9yIHRoZSBgLmMtY2FyZC0tc3RhdGVzYFxuICogICAgICB2YXJpYW50IGFuZCB0aGlzIGlzICBOT1QgdGhlIGAuYy1jYXJkLS1zdGF0ZXNgIHZhcmlhbnQgb3IgWzE0Yl0gaWYgdGhlXG4gKiAgICAgIGljb24gaXMgcGxhY2VkIG9uIHRoZSByaWdodCBmb3IgYWxsIHZhcmlhbnRzLlxuICogWzExXSBBZGQgYSBgcGFkZGluZy10b3BgIHRoYXQgbWF0Y2hlcyB0aGUgY2FyZCdzIG91dGVyIHBhZGRpbmcgdG8gdGhlIGVsZW1lbnRcbiAqICAgICAgd2hpY2ggaXMgZm9sbG93aW5nIGAuYy1jYXJkX19pY29uYCBpZiB0aGUgaWNvbiB3YXMgdGFrZW4gb3V0IG9mIHRoZSBmbG93XG4gKiAgICAgIGFuZCBtb3ZlZCB0byB0aGUgcmlnaHQuXG4gKiBbMTJdIEFkZCBhZGRpdGlvbmFsIGBwYWRkaW5nLWxlZnRgIGZvciBjYXJkLWhlYWRlciBpZiB0aGUgc3RhdGUgaWNvblxuICogICAgICBpcyBwbGFjZWQgb24gdGhlIGxlZnQuXG4gKiBbMTNdIFJlbW92ZSBvdXRlciBwYWRkaW5nIGZvciBpbWFnZXMuXG4gKiBbMTRdIE1ha2UgdGhlIGltYWdlIGFsd2F5cyB0YWtlIHVwIHRoZSBlbnRpcmUgd2lkdGggZm9yIGNhcmRzLlxuICogWzE1XSBWZXJ0aWNhbCBhbGlnbm1lbnQgZm9yIGljb24gdG8gdGl0bGUuXG4gKiBbMTZdIFJlc2V0IGFsbCBzcGFjaW5ncyBmb3IgYDxocj5gLlxuICogWzE3XSBFbXB0eSBjbGFzcyBmb3Igc3BlY2lhbCBjYXJkIHZhcmlhbnQgYENhcmQgRXhwYW5kYWJsZWAuXG4gKiBbMThdIEVuYWJsZSBlbm91Z2ggc3BhY2luZyB3aGVuIGRpc3BsYXllZCBvbiBzbWFsbCBkZXZpY2VzLlxuICogWzE5XSBSZWR1Y2UgdGhlIHNpemUgb2YgdGhlIHdyYXBwZXIgYWNjb3JkaW9uIGljb24gaWYgd2FudGVkLlxuICogWzIwXSBBbmltYXRlIHRoZSB3cmFwcGVyIGFjY29yZGlvbiBpY29uIHdoZW4gcGFyZW50IGhhcyBjbGFzcyBgLmlzLWFjdGl2ZWAuXG4gKiBbMjFdIFNldCB0aGUgZGlzcGxheSBjb250ZXh0IGZvciBpdGVtcyBpbnNpZGUgdGhlIGV4cGFuZGFibGUgYm9keS5cbiAqIFsyMl0gTW92ZSB0aGUgZXhwYW5kYWJsZSB0cmlnZ2VyIHRvIHRoZSByaWdodC1oYW5kIHNpZGUuXG4gKiBbMjNdIFNldCBjdXN0b20gYWxpZ25tZW50cyBmb3IgZXhwYW5kYWJsZSBjYXJkcy5cbiAqIFsyNF0gQ29uZGl0aW9uYWxseSBhcHBseSBgYm9yZGVyLXJhZGl1c2AgdG8gaW1hZ2UgaWYgaXQgaXMgdGhlIGZpcnN0IGVsZW1lbnRcbiAqICAgICAgaW5zaWRlIHRoZSBjYXJkIGJsb2NrLlxuICogICAgICBSZW1vdmVzIHRoZSBuZWVkIHRvIG92ZXJ3cml0ZSBlLmcuIGlmIGltYWdlIGlzIG5vdFxuICogICAgICB0aGUgZmlyc3QgZWxlbWVudC5cbiAqIFsyNV0gU2V0IHNwYWNpbmcgZm9yIHNtYWxsIHNjcmVlbnMuXG4gKiBbMjZdIEhpZGUgaWNvbiBvbiBzbWFsbCBzY3JlZW5zLlxuICogWzI3XSBTaG93IHRvZ2dsZSBidXR0b24gb25seSBvbiBzbWFsbCBzY3JlZW5zLlxuICogWzI4XSBTd2FwIGljb24gd2hlbiBgW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdYC5cbiAqIFsyOV0gVG9nZ2xlIHZpc2liaWxpdHkgb2YgYC5jLWNhcmRfX2JvZHlgLlxuICogWzMwXSBJbmNyZWFzZSBjbGljayBhcmVhIGJ5IGFkZGluZyBhIHBzZXVkbyBlbGVtZW50IHRvIHRoZSBidXR0b24gZm9yIHRoZVxuICogICAgICBDYXJkIFJlc3BvbnNpdmUgQ29sbGFwc2UgdmFyaWFudC5cbiAqIFszMV0gUmVkdWNlIGNvbnRlbnQgc3BhY2luZyBmb3IgQ2FyZCBSZXNwb25zaXZlIENvbGxhcHNlIHZhcmlhbnQuXG4gKiBbMzJdIFJlbW92ZSBhbnkgdW53YW50ZWQgc3BhY2luZy5cbiAqIFszM10gSGlkZSBmb290ZXIgZm9yIGluYWN0aXZlIGNhcmRzIHRvIGV4Y2x1ZGUsIGluIHRoaXMgY2FzZSwgbm9uLWludGVyYWN0aXZlXG4gKiAgICAgIGZvb3RlciBjb250ZW50IChlLmcuIGJ1dHRvbnMsIGxpbmtzKSBmb3IgYWxsIHVzZXJzIGFuZCBpbnB1dCBtZXRob2RzLlxuICogICAgICBXZSBoYXZlIHRvIHJlbW92ZSB0cmFuc2l0aW9ucyBmcm9tIHRoZSBjaGlsZCBlbGVtZW50cyB0byBwcmV2ZW50IGFuXG4gKiAgICAgIHVud2FudGVkIGRlbGF5LlxuICovXG5cbi5jLWNhcmQge1xuICAgIEBpbmNsdWRlIHNwYWNpbmctY29udGFpbmVyKCRjYXJkLXBhZGRpbmctdmVydGljYWwsICRjYXJkLXBhZGRpbmctaG9yaXpvbnRhbCwgJGNhcmQtbW9kdWxlLXNwYWNpbmcpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtYWxpZ25tZW50KCRjYXJkLXRleHQtYWxpZ25tZW50KTtcbiAgICB3aWR0aDogMTAwJTsgLyogWzFdICovXG4gICAgYm9yZGVyOiAkY2FyZC1ib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogJGNhcmQtYm9yZGVyLXJhZGl1cztcbiAgICB0ZXh0LWFsaWduOiAkY2FyZC10ZXh0LWFsaWdubWVudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FyZC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGNvbG9yOiAkY2FyZC1ib2R5LXRleHQtY29sb3I7XG5cbiAgICBAaWYgKCRjYXJkLXNoYWRvdyAhPSBub25lKSB7XG4gICAgICAgIGJveC1zaGFkb3c6ICRjYXJkLXNoYWRvdztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSB2YXJ5KCRsb29wOiAkY2FyZC10aGVtZXMpIHtcbiAgICAgICAgYm9yZGVyOiB2YXJ5LWdldChcImJvcmRlclwiKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyeS1nZXQoXCJiYWNrZ3JvdW5kXCIpO1xuICAgIH1cblxuICAgID4gKjpub3QoLmMtY2FyZF9faWNvbik6bm90KC5jLXByaWNlLWJveCkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmOm5vdCguYy1jYXJkLS1pbWFnZSkge1xuICAgICAgICBAaWYgKCRjYXJkLWRlZmF1bHQtaWNvbi1pcy1hbGlnbmVkLXRvLXJpZ2h0ID09IHRydWUpIHtcbiAgICAgICAgICAgIC5jLWNhcmRfX2hlYWRlciB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IC0xOyAvKiBbNF0gKi9cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmMtY2FyZC0tc3RhdGVzIHtcblxuICAgICAgICAgICAgICAgIC5jLWNhcmRfX2hlYWRlciB7XG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiAwOyAvKiBbNV0gKi9cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbiAgICAuYy1jYXJkX19pbWFnZSB7XG4gICAgICAgIEBpbmNsdWRlIHNwYWNpbmctaXRlbS1mbHVzaCgpOyAvKiBbMTNdICovXG5cbiAgICAgICAgZmxleC1ncm93OiAwOyAvKiBbNl0gKi9cbiAgICAgICAgZmxleC1zaHJpbms6IDA7IC8qIFs2XSAqL1xuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvOyAvKiBbNl0gKi9cbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyAvKiBbOV0gKi9cblxuICAgICAgICArICoge1xuICAgICAgICAgICAgQGlmICgkY2FyZC1pbWFnZS1leHRyYS1zcGFjaW5nLWJvdHRvbSkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXG4gICAgICAgICAgICAgICAgICAgIFwicGFkZGluZy10b3BcIixcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2l2ZS1wcm9wZXJ0eS1tb2RpZnkoJGNhcmQtbW9kdWxlLXNwYWNpbmcsICRhZGQ6ICRjYXJkLWltYWdlLWV4dHJhLXNwYWNpbmctYm90dG9tKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRjYXJkLWJvcmRlci1yYWRpdXMpIHtcbiAgICAgICAgICAgIC8qIFsyNF0gKi9cbiAgICAgICAgICAgICY6aXMoOmZpcnN0LWNoaWxkKSA+IGltZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGNhcmQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGNhcmQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlOyAvKiBbMTRdICovXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWNhcmRfX2ljb24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgLy8gQFRPRE86IGNoZWNrIGlmIGJsb2NrICsgZmxleGJveCBwcm9wZXJ0aWVzXG4gICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGZsZXgtYmFzaXM6ICRjYXJkLWljb24tc2l6ZTtcblxuICAgICAgICBAaWYgKCRjYXJkLWRlZmF1bHQtaWNvbi1pcy1hbGlnbmVkLXRvLXJpZ2h0ID09IHRydWUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWRkaW5nIHN0YXRlcyBtb2RpZmllciBjbGFzc2VzLlxuICAgICAgICBAaW5jbHVkZSB2YXJ5KCRjcmVhdGU6IGN1c3RvbSwgJGxvb3A6ICRjYXJkLXN0YXRlLXRoZW1lcykge1xuICAgICAgICAgICAgLmMtY2FyZC0tc3RhdGVzLmMtY2FyZC0tc3RhdGVzLSN7JHZhcnktbG9vcC1lbnRpdHl9ICYgLmMtaWNvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcnktZ2V0KFwiaWNvbi1jb2xvclwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICRmb250LXNpemU6ICRjYXJkLWljb24tc2l6ZSxcbiAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6IDFcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb2xvcjogJGNhcmQtaWNvbi1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICsgKiB7XG4gICAgICAgICAgICBAaWYgKCRjYXJkLWljb24tZXh0cmEtc3BhY2luZy1ib3R0b20pIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFxuICAgICAgICAgICAgICAgICAgICBcInBhZGRpbmctdG9wXCIsXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNpdmUtcHJvcGVydHktbW9kaWZ5KCRjYXJkLW1vZHVsZS1zcGFjaW5nLCAkYWRkOiAkY2FyZC1pY29uLWV4dHJhLXNwYWNpbmctYm90dG9tKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtaXhpbiBhZGQtbW9yZS1wYWRkaW5nLXJpZ2h0KCkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXG4gICAgICAgICAgICAgICAgICAgIFwicGFkZGluZy1yaWdodFwiLFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zaXZlLXByb3BlcnR5LW1vZGlmeSgkY2FyZC1wYWRkaW5nLWhvcml6b250YWwsICRhZGQ6ICRjYXJkLWljb24tc2l6ZSArICRjYXJkLWljb24tcmlnaHQtc3BhY2luZylcbiAgICAgICAgICAgICAgICApOyAvKiBbMTBdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJGNhcmQtZGVmYXVsdC1pY29uLWlzLWFsaWduZWQtdG8tcmlnaHQpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFwicGFkZGluZy10b3BcIiwgJGNhcmQtcGFkZGluZy12ZXJ0aWNhbCk7IC8qIFsxMV0gKi9cblxuICAgICAgICAgICAgICAgIEBpZiAoJGNhcmQtc3RhdGUtaWNvbi1pcy1hbGlnbmVkLXRvLWxlZnQpIHtcbiAgICAgICAgICAgICAgICAgICAgQGF0LXJvb3QgLmMtY2FyZDpub3QoLmMtY2FyZC0tc3RhdGVzKTpub3QoLmMtY2FyZC0tcmVzcG9uc2l2ZS1jb2xsYXBzZSkgJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGQtbW9yZS1wYWRkaW5nLXJpZ2h0KCk7IC8qIFsxNGFdICovXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYWRkLW1vcmUtcGFkZGluZy1yaWdodCgpOyAvKiBbMTRiXSAqL1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtY2FyZF9faGVhZGVyIHtcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcblxuICAgICAgICArICoge1xuICAgICAgICAgICAgQGlmICgkY2FyZC1oZWFkZXItZXh0cmEtc3BhY2luZy1ib3R0b20pIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFxuICAgICAgICAgICAgICAgICAgICBcInBhZGRpbmctdG9wXCIsXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNpdmUtcHJvcGVydHktbW9kaWZ5KCRjYXJkLW1vZHVsZS1zcGFjaW5nLCAkYWRkOiAkY2FyZC1oZWFkZXItZXh0cmEtc3BhY2luZy1ib3R0b20pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtY2FyZF9fdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkZm9udC1zaXplOiAkY2FyZC10aXRsZS1mb250LXNpemUpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkY2FyZC10aXRsZS1zcGFjaW5nLWJvdHRvbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRjYXJkLXRpdGxlLWZvbnQtd2VpZ2h0O1xuICAgICAgICBjb2xvcjogJGNhcmQtdGl0bGUtdGV4dC1jb2xvcjtcbiAgICB9XG5cbiAgICAuYy1jYXJkX19zdWJ0aXRsZSB7XG4gICAgICAgIEBpZiAoJGNhcmQtc3VidGl0bGUtZm9udC1zaXplKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkZm9udC1zaXplOiAkY2FyZC1zdWJ0aXRsZS1mb250LXNpemUpO1xuICAgICAgICB9XG5cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzNdICovXG4gICAgICAgIGZvbnQtZmFtaWx5OiAkY2FyZC1zdWJ0aXRsZS1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRjYXJkLXN1YnRpdGxlLWZvbnQtd2VpZ2h0O1xuICAgICAgICBjb2xvcjogJGNhcmQtc3VidGl0bGUtdGV4dC1jb2xvcjtcbiAgICB9XG5cbiAgICAuYy1jYXJkX19kaXZpZGVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJGNhcmQtZGl2aWRlci1zcGFjaW5nO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkY2FyZC1kaXZpZGVyLXNwYWNpbmc7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwOyAvKiBbMTZdICovXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwOyAvKiBbMTZdICovXG4gICAgfVxuXG4gICAgLmMtY2FyZF9fYm9keSB7XG4gICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIGNvbG9yOiAkY2FyZC1ib2R5LXRleHQtY29sb3I7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGNhcmQtZXhwYW5kYWJsZS1oZWFkZXItYnJlYWtwb2ludH1cIikge1xuXG4gICAgICAgICAgICAmLmpzLWlzLXJlYWR5IHtcblxuICAgICAgICAgICAgICAgICYuaXMtY2xvc2VkIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgLyogWzI5XSAqL1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IC8qIFs3XSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgKyAqIHtcbiAgICAgICAgICAgIEBpZiAoJGNhcmQtYm9keS1leHRyYS1zcGFjaW5nLWJvdHRvbSkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXG4gICAgICAgICAgICAgICAgICAgIFwicGFkZGluZy10b3BcIixcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2l2ZS1wcm9wZXJ0eS1tb2RpZnkoJGNhcmQtbW9kdWxlLXNwYWNpbmcsICRhZGQ6ICRjYXJkLWJvZHktZXh0cmEtc3BhY2luZy1ib3R0b20pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jLWNhcmRfX2Zvb3RlciB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKFxuICAgICAgICAgICAgJGZvbnQtc2l6ZTogJGNhcmQtZm9vdGVyLWZvbnQtc2l6ZVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIGZsZXggY29udGFpbmVyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1hbGlnbm1lbnQoJGNhcmQtZm9vdGVyLWFsaWdubWVudCk7XG5cbiAgICAgICAgLy8gZmxleCBpdGVtXG4gICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIG1hcmdpbi10b3A6IGF1dG87IC8qIFs4XSAqL1xuICAgIH1cblxuICAgIC5jLWNhcmQtLXN0YXRlcyB7XG5cbiAgICAgICAgLmMtY2FyZF9faWNvbiB7XG4gICAgICAgIEBpZiAoJGNhcmQtc3RhdGUtaWNvbi1pcy1hbGlnbmVkLXRvLWxlZnQpIHtcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJGNhcmQtc3RhdGVzLWljb24tb2Zmc2V0LXRvcDsgLyogWzE1XSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLWljb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogJGNhcmQtc3RhdGVzLWljb24tc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAxXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkY2FyZC1zdGF0ZS1pY29uLWlzLWFsaWduZWQtdG8tbGVmdCkge1xuICAgICAgICAgICAgLmMtY2FyZF9faGVhZGVyIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICgkY2FyZC1wYWRkaW5nLXZlcnRpY2FsICsgJGNhcmQtc3RhdGVzLWljb24tc2l6ZSArICRjYXJkLXN0YXRlLWljb24tbGVmdC1vZmZzZXQtbGVmdCk7IC8qIFsxMl0gKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtY2FyZC0taW5hY3RpdmUge1xuICAgICAgICBib3JkZXI6ICRjYXJkLWluYWN0aXZlLWJvcmRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNhcmQtaW5hY3RpdmUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgb3BhY2l0eTogJGNhcmQtaW5hY3RpdmUtb3BhY2l0eTtcbiAgICAgICAgYm94LXNoYWRvdzogJGNhcmQtaW5hY3RpdmUtc2hhZG93O1xuXG4gICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICRjYXJkLXRoZW1lcykge1xuICAgICAgICAgICAgYm9yZGVyOiB2YXJ5LWdldChcImluYWN0aXZlLWJvcmRlclwiKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcnktZ2V0KFwiaW5hY3RpdmUtYmFja2dyb3VuZFwiKTtcbiAgICAgICAgICAgIG9wYWNpdHk6IHZhcnktZ2V0KFwiaW5hY3RpdmUtb3BhY2l0eVwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWNhcmRfX2Zvb3RlciB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47IC8qIFszM10gKi9cblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogbm9uZTsgLyogWzMzXSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmMtY2FyZC0tc2Nyb2xsYWJsZSB7XG4gICAgICAgIEBpbmNsdWRlIHNjcm9sbGFibGUoXG4gICAgICAgICAgICAkY29udGFpbmVyLWhlaWdodDogJGNhcmQtc2Nyb2xsYWJsZS1tYXgtaGVpZ2h0LFxuICAgICAgICAgICAgJGJnLWNvbG9yOiAkY2FyZC1iYWNrZ3JvdW5kLWNvbG9yLFxuICAgICAgICAgICAgJHRoZW1lczogJGNhcmQtdGhlbWVzXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLmMtY2FyZC0tZXhwYW5kYWJsZSB7IC8qIFsxN10gKi9cbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtYWxpZ25tZW50KCRjYXJkLWV4cGFuZGFibGUtdGV4dC1hbGlnbm1lbnQpOyAvKiBbMjNdICovXG4gICAgICAgIHRleHQtYWxpZ246ICRjYXJkLWV4cGFuZGFibGUtdGV4dC1hbGlnbm1lbnQ7IC8qIFsyM10gKi9cblxuICAgICAgICAuYy1jYXJkX19leHBhbmRhYmxlLXBhbmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuaXMtb3BlbiB7XG4gICAgICAgICAgICAuYy1idG4tLWNhcmQtaWNvbiB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAkY2FyZC1leHBhbmRhYmxlLWljb24tZXhwYW5kZWQ7IC8qIFsyMF0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmMtY2FyZF9fZXhwYW5kYWJsZS1wYW5lbCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWNhcmQtLXJlc3BvbnNpdmUtY29sbGFwc2Uge1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRjYXJkLWV4cGFuZGFibGUtaGVhZGVyLWJyZWFrcG9pbnR9XCIpIHtcblxuICAgICAgICAgICAgLmMtY2FyZF9faGVhZGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFwicGFkZGluZy10b3BcIiwgJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS1zcGFjaW5nKTsgLyogWzI1XSAqL1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXCJwYWRkaW5nLWJvdHRvbVwiLCAkY2FyZC1yZXNwb25zaXZlLWNvbGxhcHNlLXNwYWNpbmcpOyAvKiBbMjVdICovXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYy1jYXJkX190aXRsZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoJGZvbnQtc2l6ZTogJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS10aXRsZS1mb250LXNpemUpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRjYXJkLXJlc3BvbnNpdmUtY29sbGFwc2UtdGl0bGUtc3BhY2luZy1ib3R0b207XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRjYXJkLXJlc3BvbnNpdmUtY29sbGFwc2UtdGl0bGUtZm9udC1mYW1pbHk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRjYXJkLXJlc3BvbnNpdmUtY29sbGFwc2UtdGl0bGUtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLWNhcmRfX3N1YnRpdGxlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkZm9udC1zaXplOiAkY2FyZC1yZXNwb25zaXZlLWNvbGxhcHNlLXN1YnRpdGxlLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRjYXJkLXJlc3BvbnNpdmUtY29sbGFwc2Utc3VidGl0bGUtc3BhY2luZztcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS1zdWJ0aXRsZS1mb250LWZhbWlseTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS1zdWJ0aXRsZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS1zdWJ0aXRsZS10ZXh0LWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYy1jYXJkX19ib2R5IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFwibWFyZ2luLXRvcFwiLCAtJGNhcmQtbW9kdWxlLXNwYWNpbmcpOyAvKiBbMzFdICovXG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7IC8qIFszMV0gKi9cbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS1ib2R5LWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAuYy1jYXJkX19oZWFkZXItaXRlbXMge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246ICRjYXJkLXJlc3BvbnNpdmUtY29sbGFwc2UtaGVhZGVyLWl0ZW1zLWRpcmVjdGlvbjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS1oZWFkZXItaXRlbXMtYWxpZ247XG5cbiAgICAgICAgICAgID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRjYXJkLWV4cGFuZGFibGUtaGVhZGVyLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcInBhZGRpbmctcmlnaHRcIiwgJGNhcmQtcGFkZGluZy12ZXJ0aWNhbCk7IC8qIFsyNV0gKi9cbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS1oZWFkZXItYm90dG9tLXNwYWNpbmc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAuYy1jYXJkX19pY29uIHtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGNhcmQtZXhwYW5kYWJsZS1oZWFkZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IC8qIFsyNl0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1jYXJkLS1yZXNwb25zaXZlLWNvbGxhcHNlX190b2dnbGUge1xuICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBbMjddICovXG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGNhcmQtZXhwYW5kYWJsZS1oZWFkZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOyAvKiBbMzJdICovXG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkY2FyZC1yZXNwb25zaXZlLWNvbGxhcHNlLWljb24tY29sb3I7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS1pY29uLXNpemUsXG4gICAgICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogZmFsc2UsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAkY2FyZC1yZXNwb25zaXZlLWNvbGxhcHNlLWljb24tY29sbGFwc2VkO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkY2FyZC1yZXNwb25zaXZlLWNvbGxhcHNlLXNwYWNpbmctbGVmdDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRjYXJkLXJlc3BvbnNpdmUtY29sbGFwc2Utc3BhY2luZy1yaWdodDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7IC8qIFszMF0gKi9cbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRjYXJkLXJlc3BvbnNpdmUtY29sbGFwc2Utc3RhdGUtZXhwYW5kZWR9ICYge1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAkY2FyZC1yZXNwb25zaXZlLWNvbGxhcHNlLWljb24tZXhwYW5kZWQ7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS1pY29uLXRyYW5zZm9ybS1leHBhbmRlZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1jYXJkX19oZWFkZXItaXRlbXMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGNhcmQtZXhwYW5kYWJsZS1oZWFkZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAgICAgICAgID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJGNhcmQtZXhwYW5kYWJsZS1zcGFjaW5nOyAvKiBbMThdICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWNhcmRfX2V4cGFuZGFibGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyAvKiBbMjFdICovXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IC8qIFsyMV0gKi9cbiAgICB9XG5cbiAgICAuYy1jYXJkX19leHBhbmRhYmxlLWJ0biB7XG4gICAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kOyAvKiBbMjJdICovXG4gICAgfVxuXG4gICAgQGlmICgkY2FyZC1leHBhbmRhYmxlLWJ1dHRvbi1zbWFsbCAhPSBmYWxzZSkge1xuXG4gICAgICAgIC5jLWJ0bi0tY2FyZCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IG1hcC1nZXQoJElDT04tU1FVQVJFLUZVTEwtU0laRVMsICRjYXJkLWV4cGFuZGFibGUtYnV0dG9uLXNpemUtc21hbGwpOyAvKiBbMTldICovXG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiBtYXAtZ2V0KCRJQ09OLVNRVUFSRS1GVUxMLVNJWkVTLCAkY2FyZC1leHBhbmRhYmxlLWJ1dHRvbi1zaXplLXNtYWxsKTsgLyogWzE5XSAqL1xuICAgICAgICB9XG5cbiAgICB9XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjQ0FSRCAoU2V0dGluZ3MpXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGNhcmQtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAgICAgICAgJENBUkQtUEFUVEVSTi1QQURESU5HLUhPUklaT05UQUwgIWRlZmF1bHQ7XG4kY2FyZC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ0FSRC1QQVRURVJOLVBBRERJTkctVkVSVElDQUwgIWRlZmF1bHQ7XG4kY2FyZC1tb2R1bGUtc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ0FSRC1QQVRURVJOLU1PRFVMRS1TUEFDSU5HICogMC41ICFkZWZhdWx0OyAvLyBBY3R1YWwgdmFsdWUgaXMgMS8yIHNpbmNlIHNwYWNpbmcgaXMgYWRkZWQgdG8gYm90aCB0b3AgYW5kIGJvdHRvbS5cblxuJGNhcmQtaW5hY3RpdmUtb3BhY2l0eTogICAgICAgICAgICAgICAgICAgICAgICAgICAgMSAhZGVmYXVsdDsgIC8vIFNldCBjb2xvcnMgaW5zdGVhZCBvZiByZWR1Y2luZyBvcGFjaXR5LlxuXG4kY2FyZC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ0FSRC1QQVRURVJOLUJBQ0tHUk9VTkQtQ09MT1IgIWRlZmF1bHQ7XG4kY2FyZC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ0FSRC1QQVRURVJOLUJPUkRFUiAhZGVmYXVsdDtcbiRjYXJkLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDQVJELVBBVFRFUk4tQk9SREVSLVJBRElVUyAhZGVmYXVsdDtcblxuJGNhcmQtdGl0bGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJENBUkQtUEFUVEVSTi1USVRMRS1TSVpFICFkZWZhdWx0O1xuJGNhcmQtdGl0bGUtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJENBUkQtUEFUVEVSTi1USVRMRS1XRUlHSFQgIWRlZmF1bHQ7XG5cbiRjYXJkLXN1YnRpdGxlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICRDQVJELVBBVFRFUk4tU1VCVElUTEUtU0laRSAhZGVmYXVsdDtcbiRjYXJkLXN1YnRpdGxlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICRDQVJELVBBVFRFUk4tVElUTEUtV0VJR0hUICFkZWZhdWx0O1xuXG4kY2FyZC1ib2R5LWV4dHJhLXNwYWNpbmctYm90dG9tOiAgICAgICAgICAgICAgICAgICAkQ0FSRC1QQVRURVJOLU1PRFVMRS1TUEFDSU5HICFkZWZhdWx0O1xuJGNhcmQtYm9keS10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJENBUkQtUEFUVEVSTi1URVhULUNPTE9SICFkZWZhdWx0O1xuXG4kY2FyZC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub25lICFkZWZhdWx0O1xuXG4kY2FyZC1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uLXNpemUoJENBUkQtUEFUVEVSTi1JQ09OLVNJWkUpICFkZWZhdWx0O1xuJGNhcmQtaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJENBUkQtUEFUVEVSTi1JQ09OLUNPTE9SICFkZWZhdWx0O1xuXG4kY2FyZC1yZXNwb25zaXZlLWNvbGxhcHNlLWljb24tc2l6ZTogICAgICAgICAgICAgICBpY29uLXNpemUoeHNtYWxsKSAhZGVmYXVsdDtcbiRjYXJkLXJlc3BvbnNpdmUtY29sbGFwc2UtaWNvbi1jb2xsYXBzZWQ6ICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLXBsdXMpICFkZWZhdWx0O1xuJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS1pY29uLWV4cGFuZGVkOiAgICAgICAgICAgJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS1pY29uLWNvbGxhcHNlZCAhZGVmYXVsdDtcbiRjYXJkLXJlc3BvbnNpdmUtY29sbGFwc2UtaWNvbi10cmFuc2Zvcm0tZXhwYW5kZWQ6IHJvdGF0ZVooNDVkZWcpICFkZWZhdWx0O1xuJGNhcmQtcmVzcG9uc2l2ZS1jb2xsYXBzZS1idXR0b24tc3BhY2luZzogICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjQ0FSRFxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRza29kYS1jYXJkLWluYWN0aXZlLWxheWVyLWNvbG9yOiAgICAgICAgJENBUkQtUEFUVEVSTi1JTkFDVElWRS1MQVlFUi1CQUNLR1JPVU5ELUNPTE9SICFkZWZhdWx0O1xuJHNrb2RhLWNhcmQtaW5hY3RpdmUtbGF5ZXItb3BhY2l0eTogICAgICAkQ0FSRC1QQVRURVJOLUlOQUNUSVZFLUxBWUVSLU9QQUNJVFkgIWRlZmF1bHQ7XG4kc2tvZGEtY2FyZC1pbWFnZS1zcGFjaW5nOiAgICAgICAgICAgICAgICgkR0xPQkFMLVNQQUNJTkctVU5JVCAtICRjYXJkLW1vZHVsZS1zcGFjaW5nKSAhZGVmYXVsdDtcblxuJHNrb2RhLWNhcmQtaWNvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiAkQlVUVE9OLUlDT04tSU5URVJBQ1RJT04tQkFDS0dST1VORC1DT0xPUi1IT1ZFUi1PTi1MSUdIVCAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gQWRkIG92ZXJsYXkgdG8gdmlzdWFsaXplIGJsb2NrZWQgaW5hY3RpdmUvZGlzYWJsZWQgc3RhdGUuXG4gKiAgICAgRHVlIHRvIHRoZSBmbGV4aWJsZSBuYXR1cmUgb2YgdGhlIGNvbXBvbmVudCBvZiBpbmNsdWRpbmdcbiAqICAgICBhcmJpdHJhcnkgZWxlbWVudHMgaW5zaWRlLCBhbiBvdmVybGF5IGlzIHVzZWQgaW5zdGVhZCBvZlxuICogICAgIGNvbG9yaXppbmcgc2luZ2xlIGVsZW1lbnRzIGluc2lkZSB3aGljaCB3b3VsZCBhZGQgY29tcGxleGl0eSBhbmRcbiAqICAgICBpcyBlcnJvci1wcm9uZS5cbiAqICAgICBPcHRpb25zIGluIGRlZmF1bHQgZG8gbm90IHNhdGlzZnkgdGhlIHZpc3VhbCByZXF1aXJlbWVudHMgZm9yIHRoaXMgYnJhbmQuXG4gKiBbMl0gVXNlIGN1c3RvbSBzcGFjaW5nIHRoYXQgY2FuIG5vdCBiZSBzZXQgdmlhIGRlZmF1bHQgc2V0dGluZyBvciB3b3VsZFxuICogICAgIGJlIHRvbyBjb21wbGV4LlxuICovXG4uYy1jYXJkLS1pbmFjdGl2ZSB7XG5cbiAgICAvKiBbMV0gKi9cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvcGFjaXR5OiAkc2tvZGEtY2FyZC1pbmFjdGl2ZS1sYXllci1vcGFjaXR5O1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2tvZGEtY2FyZC1pbmFjdGl2ZS1sYXllci1jb2xvcjtcbiAgICB9XG5cbn1cblxuLmMtY2FyZF9faW1hZ2Uge1xuICAgIHBhZGRpbmctdG9wOiAkc2tvZGEtY2FyZC1pbWFnZS1zcGFjaW5nOyAvKiBbMl0gKi9cbiAgICBwYWRkaW5nLWJvdHRvbTogJHNrb2RhLWNhcmQtaW1hZ2Utc3BhY2luZzsgLyogWzJdICovXG59XG5cbkBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRjYXJkLWV4cGFuZGFibGUtaGVhZGVyLWJyZWFrcG9pbnR9XCIpIHtcblxuICAgIC5jLWNhcmQtLXJlc3BvbnNpdmUtY29sbGFwc2VfX3RvZ2dsZTo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihcbiAgICAgICAgICAgICR0cmFuc2l0aW9uLXByb3BlcnR5OiBcInRyYW5zZm9ybSwgYmFja2dyb3VuZC1jb2xvclwiLFxuICAgICAgICApO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICAgICAgLmMtY2FyZF9faGVhZGVyOmhvdmVyICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNrb2RhLWNhcmQtaWNvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtY2FyZF9faGVhZGVyOmZvY3VzLXdpdGhpbiAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvY3VzLXN0eWxlcygpO1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNMSVNULVVJXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGxpc3QtdWktcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRsaXN0LXVpLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgMCAhZGVmYXVsdDtcbiRsaXN0LXVpLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgJGxpc3QtdWktcGFkZGluZy12ZXJ0aWNhbCAkbGlzdC11aS1wYWRkaW5nLWhvcml6b250YWwgIWRlZmF1bHQ7XG4kbGlzdC11aS1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgIDFweCAhZGVmYXVsdDtcbiRsaXN0LXVpLWJvcmRlci1zdHlsZTogICAgICAgICAgICAgICAgICAgc29saWQgIWRlZmF1bHQ7XG4kbGlzdC11aS1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICRDT0xPUi1CT1JERVIgIWRlZmF1bHQ7XG4kbGlzdC11aS1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICRsaXN0LXVpLWJvcmRlci13aWR0aCAkbGlzdC11aS1ib3JkZXItc3R5bGUgJGxpc3QtdWktYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGxpc3QtdWktZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAkRlMwICFkZWZhdWx0O1xuJGxpc3QtdWktZm9udC1mYW1pbHk6ICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGxpc3QtdWktZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGxpc3QtdWktb3JkZXJlZC1jb3VudGVyLXN0eWxlLXR5cGU6ICAgICBkZWNpbWFsLWxlYWRpbmctemVybyAhZGVmYXVsdDtcbiRsaXN0LXVpLW9yZGVyZWQtY291bnRlci1mb250LXNpemU6ICAgICAgJEZTMyAhZGVmYXVsdDtcbiRsaXN0LXVpLW9yZGVyZWQtY291bnRlci1mb250LWZhbWlseTogICAgbnVsbCAhZGVmYXVsdDtcbiRsaXN0LXVpLW9yZGVyZWQtY291bnRlci1mb250LXdlaWdodDogICAgbnVsbCAhZGVmYXVsdDtcbiRsaXN0LXVpLW9yZGVyZWQtY291bnRlci1saW5lLWhlaWdodDogICAgMSAhZGVmYXVsdDtcbiRsaXN0LXVpLW9yZGVyZWQtY291bnRlci1sZXR0ZXItc3BhY2luZzogbnVsbCAhZGVmYXVsdDtcbiRsaXN0LXVpLW9yZGVyZWQtY291bnRlci1hbGlnbm1lbnQ6ICAgICAgYmFzZWxpbmUgIWRlZmF1bHQ7XG4kbGlzdC11aS1vcmRlcmVkLWNvdW50ZXItY29sb3I6ICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kbGlzdC11aS1vcmRlcmVkLWNvdW50ZXItc3BhY2luZzogICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJGxpc3QtdWktb3JkZXJlZC1jb3VudGVyLW9mZnNldDogICAgICAgICAwLjJleCAhZGVmYXVsdDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSB1bml0LWRpc2FsbG93ZWQtbGlzdCAqL1xuXG4vKipcbiAqIFsxXSBWZXJ0aWNhbGx5IGNlbnRlciBjb3VudGVyIHdpdGggZmlyc3QgbGluZSBvZiB0ZXh0LlxuICogICAgIE9mZnNldCB0byBjb21wZW5zYXRlIG1pc2FsaWdubWVudCBjYXVzZWQgYnkgYGJhc2VsaW5lYC5cbiAqIFsyXSBQc2V1ZG8tZWxlbWVudCBmb3IgdGhlIG51bWJlcmluZyBvZiB0aGUgb3JkZXJlZCB2YXJpYW50LlxuICogWzNdIEVuc3VyZSBhbGlnbm1lbnQgb2YgbnVtYmVycyBpbmRlcGVuZGVudCBvZiBudW1iZXIgd2lkdGguXG4gKi9cblxuLmMtbGlzdC11aSB7XG4gICAgQGluY2x1ZGUgbGlzdC1iYXJlKCk7XG4gICAgYm9yZGVyLXRvcDogJGxpc3QtdWktYm9yZGVyO1xufVxuXG4uYy1saXN0LXVpLS1vcmRlcmVkIHtcbiAgICBjb3VudGVyLXJlc2V0OiBzZWN0aW9uO1xufVxuXG4gICAgLmMtbGlzdC11aV9faXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKFxuICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkbGlzdC11aS1mb250LXNpemUsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6IGZhbHNlLFxuICAgICAgICAgICAgJGFjY2VwdC1udWxsOiB0cnVlXG4gICAgICAgICk7XG5cbiAgICAgICAgcGFkZGluZzogJGxpc3QtdWktcGFkZGluZztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGxpc3QtdWktYm9yZGVyO1xuICAgICAgICBmb250LWZhbWlseTogJGxpc3QtdWktZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkbGlzdC11aS1mb250LXdlaWdodDtcblxuICAgICAgICAuYy1saXN0LXVpLS1vcmRlcmVkICYge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDsgLyogWzFdICovXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogaWYoJGxpc3QtdWktb3JkZXJlZC1jb3VudGVyLWFsaWdubWVudCwgJGxpc3QtdWktb3JkZXJlZC1jb3VudGVyLWFsaWdubWVudCwgbnVsbCk7IC8qIFsxXSAqL1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUgeyAvKiBbMl0gKi9cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkbGlzdC11aS1vcmRlcmVkLWNvdW50ZXItZm9udC1zaXplLFxuICAgICAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICRsaXN0LXVpLW9yZGVyZWQtY291bnRlci1saW5lLWhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgJGFjY2VwdC1udWxsOiB0cnVlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFwibWFyZ2luLXJpZ2h0XCIsICRsaXN0LXVpLW9yZGVyZWQtY291bnRlci1zcGFjaW5nKTtcblxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGNvdW50ZXIoc2VjdGlvbiwgI3skbGlzdC11aS1vcmRlcmVkLWNvdW50ZXItc3R5bGUtdHlwZX0pO1xuICAgICAgICAgICAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBzZWN0aW9uO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogaWYoJGxpc3QtdWktb3JkZXJlZC1jb3VudGVyLW9mZnNldCwgdHJhbnNsYXRlWSgkbGlzdC11aS1vcmRlcmVkLWNvdW50ZXItb2Zmc2V0KSwgbnVsbCk7IC8qIFsxXSAqL1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkbGlzdC11aS1vcmRlcmVkLWNvdW50ZXItZm9udC1mYW1pbHk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRsaXN0LXVpLW9yZGVyZWQtY291bnRlci1mb250LXdlaWdodDtcbiAgICAgICAgICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOyAvKiBbM10gKi9cbiAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogJGxpc3QtdWktb3JkZXJlZC1jb3VudGVyLWxldHRlci1zcGFjaW5nOyAvKiBbM10gKi9cbiAgICAgICAgICAgICAgICBjb2xvcjogJGxpc3QtdWktb3JkZXJlZC1jb3VudGVyLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNUQUdcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kdGFnLXRleHQtc2l6ZTogICAgICAgICAgJEdMT0JBTC1TVEFUVVMtVEVYVC1TSVpFICFkZWZhdWx0O1xuJHRhZy10ZXh0LWNvbG9yOiAgICAgICAgICRHTE9CQUwtU1RBVFVTLVRFWFQtQ09MT1IgIWRlZmF1bHQ7XG4kdGFnLXRleHQtdHJhbnNmb3JtOiAgICAgbnVsbCAhZGVmYXVsdDtcbiR0YWctZm9udC13ZWlnaHQ6ICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG4kdGFnLWxldHRlci1zcGFjaW5nOiAgICAgbnVsbCAhZGVmYXVsdDtcbiR0YWctYmFja2dyb3VuZC1jb2xvcjogICAkR0xPQkFMLVNUQVRVUy1CQUNLR1JPVU5ELUNPTE9SICFkZWZhdWx0O1xuJHRhZy1wYWRkaW5nLWhvcml6b250YWw6ICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiR0YWctcGFkZGluZy12ZXJ0aWNhbDogICAzcHggIWRlZmF1bHQ7XG4kdGFnLWJvcmRlci1yYWRpdXM6ICAgICAgbnVsbCAhZGVmYXVsdDtcbiR0YWctYm9yZGVyLXdpZHRoOiAgICAgICAxcHggIWRlZmF1bHQ7XG4kdGFnLWJvcmRlci1zdHlsZTogICAgICAgbnVsbCAhZGVmYXVsdDtcbiR0YWctYm9yZGVyLWNvbG9yOiAgICAgICBudWxsICFkZWZhdWx0O1xuXG4vLyBBbHdheXMgc2V0IGEgYm9yZGVyIHRvIGVuc3VyZSB0aGF0IGFsbCB0YWdzIGhhdmUgdGhlIHNhbWUgaGVpZ2h0XG4vLyBpZiBubyBib3JkZXItY29sb3IgaXMgZGVmaW5lZCwgd2UgdXNlIHRoZSBiZy1jb2xvciBhcyBib3JkZXItY29sb3IuXG5AaWYgJHRhZy1ib3JkZXItY29sb3IgPT0gbnVsbCB7XG4gICAgJHRhZy1ib3JkZXItY29sb3I6ICAgJHRhZy1iYWNrZ3JvdW5kLWNvbG9yO1xufVxuXG4kdGFnLWJvcmRlcjogICAgICAgICAgICAgJHRhZy1ib3JkZXItd2lkdGggJHRhZy1ib3JkZXItc3R5bGUgJHRhZy1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG5cbiR0YWctY2xvc2UtaWNvbjogICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1jbG9zZSkgIWRlZmF1bHQ7XG4kdGFnLWNsb3NlLWljb24tc2l6ZTogICAgaWNvbi1zaXplKHNtYWxsKSAhZGVmYXVsdDtcbiR0YWctY2xvc2Utc3BhY2luZzogICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG5cbiR0YWctdGhlbWVzLW92ZXJ3cml0ZXM6ICgpICFkZWZhdWx0O1xuJHRhZy10aGVtZXM6ICAgICAgICAgICAgJFNUQVRVUy1USEVNRVMtRVhURU5ERUQgIWRlZmF1bHQ7XG4kdGFnLXRoZW1lcy1tZXJnZWQ6ICAgICBtYXAtZGVlcC1tZXJnZSgkdGFnLXRoZW1lcywgJHRhZy10aGVtZXMtb3ZlcndyaXRlcywgMikgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIFZlcnRpY2FsbHkgYWxpZ24gY2xvc2UtaWNvbi5cbiAqL1xuLmMtdGFnIHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkdGFnLXRleHQtc2l6ZSk7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAkdGFnLXBhZGRpbmctdmVydGljYWwgJHRhZy1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgYm9yZGVyOiBpZigkdGFnLWJvcmRlciwgJHRhZy1ib3JkZXIsIG51bGwpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWctYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogJHRhZy10ZXh0LWNvbG9yO1xuXG4gICAgQGlmICR0YWctYm9yZGVyLXJhZGl1cyB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICR0YWctYm9yZGVyLXJhZGl1cztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSB2YXJ5KCRjcmVhdGU6IG1vZGlmaWVyLCAkbG9vcDogJHRhZy10aGVtZXMtbWVyZ2VkKSB7XG4gICAgICAgICR0YWctYm9yZGVyLWNvbG9yLW1vZGlmaWVyOiB2YXJ5LWdldChcImJvcmRlclwiKTtcblxuICAgICAgICAvLyBBbHdheXMgc2V0IGEgYm9yZGVyIHRvIGVuc3VyZSB0aGF0IGFsbCBtb2RpZmllciB0YWdzIGhhdmUgdGhlIHNhbWUgaGVpZ2h0XG4gICAgICAgIC8vIGlmIG5vIGJvcmRlci1jb2xvciBpcyBkZWZpbmVkLCB3ZSB1c2UgdGhlIGJnLWNvbG9yIGFzIGJvcmRlci1jb2xvci5cbiAgICAgICAgQGlmICR0YWctYm9yZGVyLWNvbG9yLW1vZGlmaWVyID09IG51bGwge1xuICAgICAgICAgICAgJHRhZy1ib3JkZXItY29sb3ItbW9kaWZpZXI6IHZhcnktZ2V0KFwiYmFja2dyb3VuZC1jb2xvclwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJvcmRlci1jb2xvcjogJHRhZy1ib3JkZXItY29sb3ItbW9kaWZpZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcnktZ2V0KFwiYmFja2dyb3VuZC1jb2xvclwiKTtcbiAgICAgICAgY29sb3I6IHZhcnktZ2V0KFwidGV4dC1jb2xvclwiKTtcbiAgICB9XG5cbn1cblxuICAgIC5jLXRhZ19fbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWluLWhlaWdodDogJHRhZy1jbG9zZS1pY29uLXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkdGFnLWZvbnQtd2VpZ2h0O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJHRhZy10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICR0YWctY2xvc2UtaWNvbi1zaXplO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogJHRhZy1sZXR0ZXItc3BhY2luZztcbiAgICB9XG5cbiAgICAuYy10YWdfX2Nsb3NlIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtYnV0dG9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogWzFdICovXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyAvKiBbMV0gKi9cbiAgICAgICAgaGVpZ2h0OiAkdGFnLWNsb3NlLWljb24tc2l6ZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICR0YWctY2xvc2Utc3BhY2luZztcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkdGFnLWNsb3NlLWljb24tc2l6ZSxcbiAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6IGZhbHNlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29udGVudDogJHRhZy1jbG9zZS1pY29uO1xuICAgICAgICB9XG5cbiAgICB9XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjVEFHIChTZXR0aW5ncylcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kdGFnLXBhZGRpbmctaG9yaXpvbnRhbDogJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJHRhZy1wYWRkaW5nLXZlcnRpY2FsOiAgIDZweCAhZGVmYXVsdDsgLy8gRGV2aWF0ZSBmcm9tIGdsb2JhbCBzcGFjaW5nIHNjYWxlcyBhY2NvcmRpbmcgdG8gYnJhbmQgZ3VpZGVsaW5lcy5cblxuJHRhZy1ib3JkZXI6ICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJHRhZy1ib3JkZXItcmFkaXVzOiAgICAgIDJweCAhZGVmYXVsdDtcblxuJHRhZy10ZXh0LXNpemU6ICAgICAgICAgICRGUy0yICFkZWZhdWx0O1xuJHRhZy10ZXh0LXRyYW5zZm9ybTogICAgIHVwcGVyY2FzZSAhZGVmYXVsdDtcbiR0YWctZm9udC13ZWlnaHQ6ICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQgIWRlZmF1bHQ7XG4kdGFnLWxldHRlci1zcGFjaW5nOiAgICAgJEdMT0JBTC1GT05ULUxFVFRFUi1TUEFDSU5HICFkZWZhdWx0O1xuXG4kdGFnLWNsb3NlLWljb24tc2l6ZTogICAgaWNvbi1zaXplKHh4c21hbGwpICFkZWZhdWx0O1xuJHRhZy1jbG9zZS1zcGFjaW5nOiAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhYU01BTEwgIWRlZmF1bHQ7XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjVEFHXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBbMV0gUmVtb3ZlIGxpbmUtaGVpZ2h0IGFuZCBjb21wb25lbnQgaGVpZ2h0IGRlcGVuZGVuY3kgYmFzZWQgb24gaWNvbiBzaXplLlxuICogWzJdIE9mZnNldCB0byBmaXQgaW50byB0YWcgd2l0aG91dCBjcmVhdGluZyBleHRyYSBzcGFjZS5cbiAqL1xuLmMtdGFnIHtcbn1cblxuLmMtdGFnX19sYWJlbCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7IC8qIFsxXSAqL1xuICAgICAgICBsaW5lLWhlaWdodDogMTsgLyogWzJdICovXG4gICAgfVxuXG4gICAgLmMtdGFnX19jbG9zZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0oJHRhZy1wYWRkaW5nLXZlcnRpY2FsKTsgLyogWzJdICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206IC0oJHRhZy1wYWRkaW5nLXZlcnRpY2FsKTsgLyogWzJdICovXG4gICAgICAgIG1hcmdpbi1yaWdodDogLSgkdGFnLXBhZGRpbmctaG9yaXpvbnRhbCk7IC8qIFsyXSAqL1xuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNUQUctTElTVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiR0YWctbGlzdC1pdGVtLXNwYWNpbmc6ICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJHRhZy1saXN0LWl0ZW0tc3BhY2luZy1ob3Jpem9udGFsOiAkdGFnLWxpc3QtaXRlbS1zcGFjaW5nICFkZWZhdWx0O1xuJHRhZy1saXN0LWl0ZW0tc3BhY2luZy12ZXJ0aWNhbDogICAkdGFnLWxpc3QtaXRlbS1zcGFjaW5nICFkZWZhdWx0O1xuJHRhZy1saXN0LWl0ZW0tdGV4dC1zaXplOiAgICAgICAgICAkR0xPQkFMLVNUQVRVUy1URVhULVNJWkUgIWRlZmF1bHQ7IC8vIHNhbWUgYXMgZm9yIHRoZSB0YWcgdGV4dCBzaXplLlxuXG4vKipcbiAqIFsxXSBSZXNldCBkZWZhdWx0IGxpc3Qgc3R5bGVzLlxuICogWzJdIFNldCBmb250IHNpemUgYW5kIGxpbmUgaGVpZ2h0IG9mIGxpc3QgZWxlbWVudCB0byB0aGUgc2FtZSBhcyB0aGUgdGFncyBpblxuICogICAgIG9yZGVyIHRvIHByZXZlbnQgdGhlIChsYXJnZXIpIGJhc2UgbGluZSBoZWlnaHQgZnJvbSBhZGRpbmcgc3BhY2luZyBvbiB0b3Agb2ZcbiAqICAgICB0aGUgdGFncy5cbiAqL1xuLmMtdGFnLWxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGNvbHVtbi1nYXA6ICR0YWctbGlzdC1pdGVtLXNwYWNpbmctaG9yaXpvbnRhbDtcbiAgICByb3ctZ2FwOiAkdGFnLWxpc3QtaXRlbS1zcGFjaW5nLXZlcnRpY2FsO1xuICAgIG1hcmdpbjogMDsgLyogWzFdICovXG4gICAgcGFkZGluZzogMDsgLyogWzFdICovXG4gICAgbGlzdC1zdHlsZTogbm9uZTsgLyogWzFdICovXG5cbiAgICBsaSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCR0YWctbGlzdC1pdGVtLXRleHQtc2l6ZSk7IC8qIFsyXSAqL1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbMV0gKi9cbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNUT09MVElQXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBUaGVzZSBhcmUgdGhlIHN0eWxlcyBleGNsdXNpdmVseSBmb3IgdGhlIHRvb2x0aXAgbGluaywgaS5lLiB0aGUgdHJpZ2dlciBmb3JcbiAqIHRoZSB0b29sdGlwIHBvcHVwLiBUaGUgc3R5bGVzIGZvciB0aGUgdG9vbHRpcCBwb3B1cCBhcmUgaGFuZGxlZCBieSBUaXBweS5qc1xuICogdG8gYmUgZm91bmQgaW4gdGhlIGxpYi1mb2xkZXIgLlxuICovXG5cbiR0b29sdGlwLXRleHQtY29sb3I6ICAgICAgaW5oZXJpdCAhZGVmYXVsdDtcbiR0b29sdGlwLXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFkZWZhdWx0O1xuJHRvb2x0aXAtdGV4dC1jdXJzb3I6ICAgICBwb2ludGVyICFkZWZhdWx0O1xuXG4uYy10b29sdGlwIHtcbiAgICBAaW5jbHVkZSByZXNldC1idXR0b24oKTtcbiAgICB0ZXh0LWRlY29yYXRpb246ICR0b29sdGlwLXRleHQtZGVjb3JhdGlvbjtcbiAgICBjb2xvcjogJHRvb2x0aXAtdGV4dC1jb2xvcjtcbiAgICBjdXJzb3I6ICR0b29sdGlwLXRleHQtY3Vyc29yO1xufVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI1RPT0xUSVBcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYy10b29sdGlwIHtcblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIEBpbmNsdWRlIGZvY3VzLXN0eWxlcygpO1xuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0lURU0tVEVBU0VSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGl0ZW0tdGVhc2VyLWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgcyAhZGVmYXVsdDtcbiRpdGVtLXRlYXNlci1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24tc2l6ZShsYXJnZSkgIWRlZmF1bHQ7XG4kaXRlbS10ZWFzZXItaWNvbi1zaXplLXNtYWxsOiAgICAgICAgICAgICAgICAgICAgICBpY29uLXNpemUobWVkaXVtKSAhZGVmYXVsdDtcbiRpdGVtLXRlYXNlci1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiRpdGVtLXRlYXNlci1pY29uLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcblxuJGl0ZW0tdGVhc2VyLWlubGluZS1pY29uLW1hcmdpbjogICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG5cbiRpdGVtLXRlYXNlci10aXRsZS1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSEVBRElORy1GT05ULUZBTUlMWSAhZGVmYXVsdDtcbiRpdGVtLXRlYXNlci10aXRsZS1sZXR0ZXItc3BhY2luZzogICAgICAgICAgICAgICAgICRHTE9CQUwtSEVBRElORy1MRVRURVItU1BBQ0lORyAhZGVmYXVsdDtcbiRpdGVtLXRlYXNlci10aXRsZS1mb250LXNpemUtcmVzcG9uc2l2ZTogICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGl0ZW0tdGVhc2VyLXRpdGxlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1IRUFESU5HLUg1LUZPTlQtU0laRSAhZGVmYXVsdDtcbiRpdGVtLXRlYXNlci10aXRsZS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSEVBRElORy1CQVNFLUxJTkUtSEVJR0hUICFkZWZhdWx0O1xuJGl0ZW0tdGVhc2VyLXRpdGxlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1IRUFESU5HLUZPTlQtV0VJR0hUICFkZWZhdWx0O1xuJGl0ZW0tdGVhc2VyLXRpdGxlLXNwYWNpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJGl0ZW0tdGVhc2VyLXRpdGxlLXNwYWNpbmctdmVydGljYWwtYXQtYnJlYWtwb2ludDogJGl0ZW0tdGVhc2VyLXRpdGxlLXNwYWNpbmctdmVydGljYWwgIWRlZmF1bHQ7XG5cbiRpdGVtLXRlYXNlci1pbmxpbmUtdGl0bGUtc3BhY2luZzogICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJGl0ZW0tdGVhc2VyLWlubGluZS10aXRsZS1zbWFsbC1zcGFjaW5nOiAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuXG4kaXRlbS10ZWFzZXItYWx0ZXJuYXRpdmUtcGFkZGluZzogICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRpdGVtLXRlYXNlci1hbHRlcm5hdGl2ZS1wYWRkaW5nLXNtYWxsOiAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJGl0ZW0tdGVhc2VyLWFsdGVybmF0aXZlLWJvcmRlcjogICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRpdGVtLXRlYXNlci1hbHRlcm5hdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICRDT0xPUi1QQUxFICFkZWZhdWx0O1xuXG4kaXRlbS10ZWFzZXItdGV4dC1zcGFjaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kaXRlbS10ZWFzZXItdGV4dC1zcGFjaW5nLXZlcnRpY2FsLWF0LWJyZWFrcG9pbnQ6ICAkaXRlbS10ZWFzZXItdGV4dC1zcGFjaW5nLXZlcnRpY2FsICFkZWZhdWx0O1xuXG4kaXRlbS10ZWFzZXItcm93LXNwYWNpbmctY29sdW1uczogICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRpdGVtLXRlYXNlci1yb3ctc3BhY2luZy1jb2x1bW5zLXNtYWxsOiAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJGl0ZW0tdGVhc2VyLXJvdy1zcGFjaW5nLXJvd3M6ICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJGl0ZW0tdGVhc2VyLXJvdy1zcGFjaW5nLXJvd3Mtc21hbGw6ICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFhTTUFMTCAhZGVmYXVsdDtcblxuLy8gU2V0IHRoZSBjb250YWluZXIgcXVlcnkg4oCcYnJlYWtwb2ludOKAnSBpbiBgcmVtYCB3aGVuIHRoZSBkZXRhaWwgZWxlbWVudHMgc2hvdWxkXG4vLyBicmVhayBiZWxvdyB0aGUgdGVybXMgaW4gdGhlIOKAnHNwbGl04oCdIHZhcmlhbnQuXG4kaXRlbS10ZWFzZXItcm93LWl0ZW0tYnJlYWstd2lkdGg6ICAgICAgICAgICAgICAgICAzMXJlbSAhZGVmYXVsdDtcbi8vIE1hcCB0aGF0IGlzIG5lZWRlZCBieSB0aGUgY29udGFpbmVyIHF1ZXJpZXMgbWl4aW4uIFRoZSDigJxicmVha3BvaW504oCdIGdldHNcbi8vIGNvbnZlcnRlZCB0byBhIHVuaXRsZXNzIHBpeGVsIHZhbHVlLlxuJGl0ZW0tdGVhc2VyLXJvdy13aWR0aC1xdWVyaWVzOiAoXG4gICAgczogMCxcbiAgICBtOiBzdHJpcC11bml0KCRpdGVtLXRlYXNlci1yb3ctaXRlbS1icmVhay13aWR0aCkgKiBzdHJpcC11bml0KCRHTE9CQUwtRk9OVC1TSVpFKSxcbikgIWRlZmF1bHQ7XG5cbi8vIFNpemUgc2hvdWxkIGJlIHN0YXRpYywgbm90IGJhc2VkIG9uIGJyZWFrcG9pbnQuXG4vLyBUaGlzIHdpbGwgXCJkaXNhYmxlXCIgYHJlc3BvbnNpdmUtZm9udC1zaXplYC5cbiRpdGVtLXRlYXNlci10aXRsZS1mb250LXNpemUtc3RhdGljOiAoXG4gICAgbnVsbDogbnVsbCxcbikgIWRlZmF1bHQ7XG4vKipcbiAqIFsxXSBJbmNyZWFzZSBzcGVjaWZpY2l0eSwgc28gdGhlIGRlY2xhcmF0aW9uIGFsc28gd29ya3Mgb24gZ3JleSBiYWNrZ3JvdW5kLlxuICogWzJdIEZvcmNlIGl0ZW0gd3JhcHBpbmcuXG4gKiBbM10gUmV3cml0ZSBzdHlsZXMgdG8gYWxpZ24gaWNvbiBhc2lkZSB0byBjb250ZW50LlxuICogWzRdIEJsb2NrIGxheW91dCAoc3RhY2tlZCBpY29uIGFuZCBjb250ZW50KSBhdCBicmVha3BvaW50LlxuICogWzVdIE9wdGlvbmFsbHkgZGlzYWJsZSByZXNwb25zaXZlIGBmb250LXNpemVgLlxuICsgWzZdIFVzZSDigJxyb3figJ0gbGF5b3V0IHdoZW4gY29tcG9uZW50IGlzIHdpZGVyIHRoYW4gYCRpdGVtLXRlYXNlci1yb3ctaXRlbS1icmVhay13aWR0aGAuXG4gKiAgICAgQFRPRE86IFJlZmFjdG9yIHRvIHJlYWwgY29udGFpbmVyIHF1ZXJpZXMgd2hlbiBicm93c2VyIHN1cHBvcnQgaXMgaGlnaCBlbm91Z2guXG4gKiBbN10gQnJlYWsgYWZ0ZXIgdGhlIHRpdGxlIGlmIHRoZXJlIGFyZSBtb3JlIHRoYW4gMiBib2R5IGl0ZW1zIGluIHRvdGFsIG9yXG4gKiAgICAgdGhlIG5leHQgaXRlbSBpcyBub3QgYSBidXR0b24uIEZvciBicm93c2VyIHdpdGhvdXQgYDpoYXNgIHN1cHBvcnQsXG4gKiAgICAgYSBicmVhayBpcyBhZGRlZCBhZnRlciB0aGUgdGl0bGUgaWYgdGhlcmUgYXJlIDMgYm9keSBpdGVtcyBpbiB0b3RhbC5cbiAqIFs4XSBEbyBub3QgYWxsb3cgYSBsaW5lIGJyZWFrIGluIHRoZSBsaW5rIG9yIGJ1dHRvbi5cbiAqL1xuXG4vLy8gQ3JlYXRlIGEgYmxvY2sgbGF5b3V0IChpY29uIGFib3ZlIGNvbnRlbnQpXG5AbWl4aW4gaXRlbS10ZWFzZXItYmxvY2soKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IC8qIFsyXSAqL1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgID4gKiB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7IC8qIFsyXSAqL1xuICAgIH1cblxufVxuXG4vLy8gQ3JlYXRlIGFuIGlubGluZSBsYXlvdXQgKGljb24gbmV4dCB0byBjb250ZW50KVxuQG1peGluIGl0ZW0tdGVhc2VyLWlubGluZSgpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgPiAqIHtcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICB9XG5cbn1cblxuLmMtaXRlbS10ZWFzZXIge1xuICAgIEBpbmNsdWRlIGl0ZW0tdGVhc2VyLWJsb2NrKCk7XG59XG5cbiAgICAuYy1pdGVtLXRlYXNlcl9faWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICAgJGl0ZW0tdGVhc2VyLWljb24tc2l6ZSxcbiAgICAgICAgICAgICRsaW5lLWhlaWdodDogMVxuICAgICAgICApO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkaXRlbS10ZWFzZXItaWNvbi1zcGFjaW5nO1xuXG4gICAgICAgICYuYy1pdGVtLXRlYXNlcl9faWNvbiB7IC8qIFsxXSAqL1xuICAgICAgICAgICAgY29sb3I6ICRpdGVtLXRlYXNlci1pY29uLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtaXRlbS10ZWFzZXItLXNtYWxsICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICRmb250LXNpemU6ICAgJGl0ZW0tdGVhc2VyLWljb24tc2l6ZS1zbWFsbCxcbiAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6IDFcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAuYy1pdGVtLXRlYXNlci0taW5saW5lICYgeyAvKiBbM10gKi9cbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkaXRlbS10ZWFzZXItaW5saW5lLWljb24tbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtaXRlbS10ZWFzZXJfX3RpdGxlIHtcbiAgICAgICAgQGlmICgkaXRlbS10ZWFzZXItdGl0bGUtZm9udC1zaXplLXJlc3BvbnNpdmUpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCAvKiBbNV0gKi9cbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgICRpdGVtLXRlYXNlci10aXRsZS1mb250LXNpemUtc3RhdGljLFxuICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogJGl0ZW0tdGVhc2VyLXRpdGxlLWxpbmUtaGVpZ2h0LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgICRpdGVtLXRlYXNlci10aXRsZS1mb250LXNpemUsXG4gICAgICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAkaXRlbS10ZWFzZXItdGl0bGUtbGluZS1oZWlnaHQsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRpdGVtLXRlYXNlci10aXRsZS1zcGFjaW5nLXZlcnRpY2FsO1xuICAgICAgICBmb250LWZhbWlseTogJGl0ZW0tdGVhc2VyLXRpdGxlLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXdlaWdodDogJGl0ZW0tdGVhc2VyLXRpdGxlLWZvbnQtd2VpZ2h0O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogJGl0ZW0tdGVhc2VyLXRpdGxlLWxldHRlci1zcGFjaW5nO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRpdGVtLXRlYXNlci1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkaXRlbS10ZWFzZXItdGl0bGUtc3BhY2luZy12ZXJ0aWNhbC1hdC1icmVha3BvaW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtaXRlbS10ZWFzZXItLWlubGluZSAmIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRpdGVtLXRlYXNlci1pbmxpbmUtdGl0bGUtc3BhY2luZztcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWl0ZW0tdGVhc2VyLS1zbWFsbC5jLWl0ZW0tdGVhc2VyLS1pbmxpbmUgJiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkaXRlbS10ZWFzZXItaW5saW5lLXRpdGxlLXNtYWxsLXNwYWNpbmc7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWl0ZW0tdGVhc2VyX190ZXh0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuYy1pdGVtLXRlYXNlcl9fbGluayB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRpdGVtLXRlYXNlci10ZXh0LXNwYWNpbmctdmVydGljYWw7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGl0ZW0tdGVhc2VyLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRpdGVtLXRlYXNlci10ZXh0LXNwYWNpbmctdmVydGljYWwtYXQtYnJlYWtwb2ludDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtaXRlbS10ZWFzZXItLXNtYWxsIHtcbiAgICAgICAgLS1pdGVtLXRlYXNlci1hbHRlcm5hdGl2ZS1wYWRkaW5nOiAjeyRpdGVtLXRlYXNlci1hbHRlcm5hdGl2ZS1wYWRkaW5nLXNtYWxsfTtcbiAgICAgICAgLS1pdGVtLXRlYXNlci1yb3ctc3BhY2luZy1jb2x1bW5zOiAjeyRpdGVtLXRlYXNlci1yb3ctc3BhY2luZy1jb2x1bW5zLXNtYWxsfTtcbiAgICAgICAgLS1pdGVtLXRlYXNlci1yb3ctc3BhY2luZy1yb3dzOiAjeyRpdGVtLXRlYXNlci1yb3ctc3BhY2luZy1yb3dzLXNtYWxsfTtcbiAgICB9XG5cbiAgICAuYy1pdGVtLXRlYXNlci0taW5saW5lIHsgLyogWzNdICovXG4gICAgICAgIEBpbmNsdWRlIGl0ZW0tdGVhc2VyLWlubGluZSgpO1xuICAgIH1cblxuICAgIC5jLWl0ZW0tdGVhc2VyLS1ibG9jayB7XG4gICAgICAgIEBpbmNsdWRlIGl0ZW0tdGVhc2VyLWJsb2NrKCk7XG4gICAgfVxuXG4gICAgLmMtaXRlbS10ZWFzZXItLWFsdGVybmF0aXZlIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0taXRlbS10ZWFzZXItYWx0ZXJuYXRpdmUtcGFkZGluZywgJGl0ZW0tdGVhc2VyLWFsdGVybmF0aXZlLXBhZGRpbmcpO1xuICAgICAgICBib3JkZXI6ICRpdGVtLXRlYXNlci1hbHRlcm5hdGl2ZS1ib3JkZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpdGVtLXRlYXNlci1hbHRlcm5hdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cblxuICAgIC5jLWl0ZW0tdGVhc2VyLS1yb3cge1xuICAgICAgICAtLWNvbnRhaW5lci13aWR0aHM6IFwiI3tjcS1jb252ZXJ0LWRhdGEoJGl0ZW0tdGVhc2VyLXJvdy13aWR0aC1xdWVyaWVzKX1cIjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgY29sdW1uLWdhcDogdmFyKC0taXRlbS10ZWFzZXItcm93LXNwYWNpbmctY29sdW1ucywgJGl0ZW0tdGVhc2VyLXJvdy1zcGFjaW5nLWNvbHVtbnMpO1xuICAgICAgICByb3ctZ2FwOiB2YXIoLS1pdGVtLXRlYXNlci1yb3ctc3BhY2luZy1yb3dzLCAkaXRlbS10ZWFzZXItcm93LXNwYWNpbmctcm93cyk7XG5cbiAgICAgICAgLmMtaXRlbS10ZWFzZXJfX2ljb24ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLmMtaXRlbS10ZWFzZXJfX2JvZHkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBjb2x1bW4tZ2FwOiB2YXIoLS1pdGVtLXRlYXNlci1yb3ctc3BhY2luZy1jb2x1bW5zLCAkaXRlbS10ZWFzZXItcm93LXNwYWNpbmctY29sdW1ucyk7XG4gICAgICAgICAgICByb3ctZ2FwOiB2YXIoLS1pdGVtLXRlYXNlci1yb3ctc3BhY2luZy1yb3dzLCAkaXRlbS10ZWFzZXItcm93LXNwYWNpbmctcm93cyk7XG5cbiAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb3JkZXIvb3JkZXJcbiAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyKCRtYXA6ICRpdGVtLXRlYXNlci1yb3ctd2lkdGgtcXVlcmllcywgJHNpemU6IFwibVwiKSB7IC8qIFs2XSAqL1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gLmMtaXRlbS10ZWFzZXJfX2ljb24ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+IC5jLWl0ZW0tdGVhc2VyX19ib2R5IHtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcblxuICAgICAgICAgICAgICAgID4gOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5LCBzZWxlY3Rvci1tYXgtY29tYmluYXRvcnMsIHNlbGVjdG9yLW1heC1jb21wb3VuZC1zZWxlY3RvcnMgKi9cbiAgICAgICAgICAgICAgICA+IC5jLWl0ZW0tdGVhc2VyX190aXRsZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgc3VwcG9ydHMtbm90LWhhcy1zZWxlY3RvcigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpOm50aC1sYXN0LWNoaWxkKDMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAxMDAlOyAvKiBbN10gKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6aGFzKH4gOm50aC1jaGlsZCgzKSksXG4gICAgICAgICAgICAgICAgICAgICY6aGFzKCsgOm5vdCguYy1pdGVtLXRlYXNlcl9fbGluaykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7IC8qIFs3XSAqL1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA+IC5jLWl0ZW0tdGVhc2VyX19saW5rID4gKiB7XG4gICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8qIFs4XSAqL1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGl0ZW0tdGVhc2VyLWJyZWFrcG9pbnR9XCIpIHtcblxuICAgICAgICAuYy1pdGVtLXRlYXNlci0taW5saW5lXFxAc21hbGwtc2NyZWVuIHsgLyogWzNdICovXG4gICAgICAgICAgICBAaW5jbHVkZSBpdGVtLXRlYXNlci1pbmxpbmUoKTtcblxuICAgICAgICAgICAgLmMtaXRlbS10ZWFzZXJfX2ljb24ge1xuICAgICAgICAgICAgICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGl0ZW0tdGVhc2VyLWlubGluZS1pY29uLW1hcmdpbjtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYy1pdGVtLXRlYXNlcl9fdGl0bGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRpdGVtLXRlYXNlci1pbmxpbmUtdGl0bGUtc3BhY2luZztcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLmMtaXRlbS10ZWFzZXItLWJsb2NrXFxAc21hbGwtc2NyZWVuIHsgLyogWzRdICovXG4gICAgICAgICAgICBAaW5jbHVkZSBpdGVtLXRlYXNlci1ibG9jaygpO1xuICAgICAgICB9XG5cbiAgICB9XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjQ29udGFpbmVyIFF1ZXJ5XG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8vIENvbnRhaW5lciBRdWVyeVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSAxLWRpbWVuc2lvbmFsIG1hcCB3aXRoIHF1ZXJpZXNcbi8vLyAgICAgICAgICAgICAgICAgICAgIGtleVtTdHJpbmddOiBhbGlhc1xuLy8vICAgICAgICAgICAgICAgICAgICAgdmFsdWVbTnVtYmVyXTogdW5pdGxlc3MgdmFsdWUgdGhhdCByZWZsZWN0cyBweC1iYXNlZCB2YWx1ZVxuLy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhhbmRsZWQgdmlhIEpTLCBuZWVkcyB0byBiZSB1bml0bGVzcylcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNpemUgLSBDcmVhdGUgc2VsZWN0b3IgYmFzZWQgb24gc2l6ZSBhbGlhc1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlyZWN0aW9uW1wid2lkdGhcIl0gLSBRdWVyeSBkaXJlY3Rpb24sIGVpdGhlciBcIndpZHRoXCIgb3IgXCJoZWlnaHRcIlxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyAgICAgJG1vZHVsZS13aWR0aC1xdWVyaWVzOiAoXG4vLy8gICAgICAgICBzbWFsbDogIDAsXG4vLy8gICAgICAgICBtZWRpdW06IDMwMCxcbi8vLyAgICAgICAgIGxhcmdlOiAgNTAwLFxuLy8vICAgICApO1xuLy8vXG4vLy8gVXNlIGluIGNvbnRhaW5lci1xdWVyeSBzcGVjaWZpYyBzY29wZSAoYFtkYXRhLWNvbnRhaW5lci1xdWVyeT1cIm1vZHVsZVwiXWApXG4vLy8gICAgIFtkYXRhLWNvbnRhaW5lci1xdWVyeT1cIm1vZHVsZVwiXSB7XG4vLy9cbi8vLyAgICAgICAgIEBpbmNsdWRlIGNvbnRhaW5lcigkbW9kdWxlLXdpZHRoLXF1ZXJpZXMsIFwibWVkaXVtXCIpIHtcbi8vLyAgICAgICAgICAgICAuLi5cbi8vLyAgICAgICAgIH1cbi8vL1xuLy8vICAgICB9XG4vLy9cbi8vLyBPdXRwdXRzOlxuLy8vICAgICBbZGF0YS1jb250YWluZXItcXVlcnk9XCJtb2R1bGVcIl1bZGF0YS1jb250YWluZXItd2lkdGh+PVwiMzAwXCJdIHtcbi8vLyAgICAgICAgIC4uLlxuLy8vICAgICB9XG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vICAgICBbZGF0YS1jb250YWluZXItcXVlcnk9XCJtb2R1bGVcIl0ge1xuLy8vXG4vLy8gICAgICAgICBAaW5jbHVkZSBjb250YWluZXIoJG1vZHVsZS13aWR0aC1xdWVyaWVzLCBcIm1lZGl1bVwiLCBcImhlaWdodCkge1xuLy8vICAgICAgICAgICAgIC4uLlxuLy8vICAgICAgICAgfVxuLy8vXG4vLy8gICAgIH1cbi8vL1xuLy8vIE91dHB1dHM6XG4vLy8gICAgIFtkYXRhLWNvbnRhaW5lci1xdWVyeT1cIm1vZHVsZVwiXVtkYXRhLWNvbnRhaW5lci1oZWlnaHR+PVwiMzAwXCJdIHtcbi8vLyAgICAgICAgIC4uLlxuLy8vICAgICB9XG5AbWl4aW4gY29udGFpbmVyKCRtYXAsICRzaXplLCAkZGlyZWN0aW9uOiBcIndpZHRoXCIpIHtcbiAgICAkdmFsdWU6IG1hcC1nZXQoJG1hcCwgJHNpemUpO1xuICAgICRwYXJlbnQtc2VsZWN0b3I6ICY7XG5cbiAgICAvLyBNaXhpbiByZXF1aXJlcyB0byBiZSBuZXN0ZWQgaW5zaWRlIGEgc2VsZWN0b3IgdG8gYXZvaWQgU2FzcyBjb21waWxpbmcgZXJyb3JcbiAgICAvLyBgRXJyb3I6IFRvcC1sZXZlbCBzZWxlY3RvcnMgbWF5IG5vdCBjb250YWluIHRoZSBwYXJlbnQgc2VsZWN0b3IgXCImXCIuYC5cbiAgICBAaWYgbm90ICgkcGFyZW50LXNlbGVjdG9yKSB7XG4gICAgICAgIEBlcnJvcihcIlRoZSBjb250YWluZXIgcXVlcnkgY2FuIG5vdCBiZSB1c2VkIGFzIGEgdG9wLWxldmVsIHNlbGVjdG9yLiBUbyBhdm9pZCBzaWRlLWVmZmVjdHMgdGhlIG1peGluIG5lZWRzIHRvIGJlIG5lc3RlZCBpbiBhIHNlbGVjdG9yXCIpO1xuICAgIH1cblxuICAgIC8vIFNhZmUtZ3VhcmQgdG8gYWxsb3cgb25seSBcIndpZHRoXCIgJiBcImhlaWdodFwiLlxuICAgIEBpZiBub3QgKCgkZGlyZWN0aW9uID09IFwid2lkdGhcIikgb3IgKCRkaXJlY3Rpb24gPT0gXCJoZWlnaHRcIikpIHtcbiAgICAgICAgQGVycm9yKFwiT25seSBgd2lkdGhgICYgYGhlaWdodGAgcXVlcmllcyBhbGxvd2VkXCIpO1xuICAgIH1cblxuICAgIC8vIFNhZmUtZ3VhcmQgdG8gZW5zdXJlIG9ubHkgYXZhaWxhYmxlIGtleXMgYXJlIHVzZWQuXG4gICAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAkc2l6ZSkpIHtcbiAgICAgICAgJltkYXRhLWNvbnRhaW5lci0jeyRkaXJlY3Rpb259fj1cIiN7JHZhbHVlfVwiXSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICBAZXJyb3IoXCJLZXkgbm90IGF2YWlsYWJsZSBpbiBtYXBcIiwgJHNpemUpO1xuICAgIH1cbn1cblxuLy8vIENvbnZlcnQgU2FzcyBNYXAgdmFsdWVzIHRvIENTUyBDdXN0b20gUHJvcGVydHkgU3RyaW5nIHRvIGJlIGNvbnN1bWVkIHZpYSBKUy5cbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gMS1kaW1lbnNpb25hbCBtYXA6IGtleVtTdHJpbmddOiB2YWx1ZVtOdW1iZXJdXG4vLy8gQHJldHVybnMge1N0cmluZ30gLSBTcGFjZS1zZXBhcmF0ZWQgU3RyaW5nIHdpdGggdmFsdWVzLlxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vL1xuLy8vICAgICAkbW9kdWxlLXdpZHRoLXF1ZXJpZXM6IChcbi8vLyAgICAgICAgIHNtYWxsOiAgMCxcbi8vLyAgICAgICAgIG1lZGl1bTogMzAwLFxuLy8vICAgICAgICAgbGFyZ2U6ICA1MDAsXG4vLy8gICAgICk7XG4vLy9cbi8vLyAgICAgLS1jb250YWluZXItd2lkdGhzOiAje2NxLWNvbnZlcnQtZGF0YSgkbW9kdWxlLXdpZHRoLXF1ZXJpZXMpfTtcbi8vL1xuLy8vIE91dHB1dDpcbi8vLyAgICAgLS1jb250YWluZXItd2lkdGhzOiBcIjAgMzAwIDUwMFwiO1xuQGZ1bmN0aW9uIGNxLWNvbnZlcnQtZGF0YSgkbWFwKSB7XG4gICAgJG91dHB1dDogXCJcIjtcblxuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAgICAgQGlmIG5vdCAodHlwZS1vZigkdmFsdWUpICA9PSBudW1iZXIpIHtcbiAgICAgICAgICAgIEBlcnJvcihcIlRoZSB2YWx1ZSBtdXN0IGJlIG9mIHR5cGUgbnVtYmVyXCIsICR2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAkaW5kZXg6IGluZGV4KCgkbWFwKSwgKCRrZXkgJHZhbHVlKSk7XG4gICAgICAgIC8vIFNwYWNlIHNlcGFyYXRlZCBleGNlcHQgZm9yIGxhc3QgaXRlbVxuICAgICAgICAkZGVsaW1pdGVyOiBpZigkaW5kZXggPT0gbGVuZ3RoKCRtYXApLCBcIlwiLCBcIiBcIik7XG5cbiAgICAgICAgJG91dHB1dDogJG91dHB1dCArICR2YWx1ZSArICRkZWxpbWl0ZXI7XG4gICAgfVxuXG4gICAgQHJldHVybiAkb3V0cHV0O1xufVxuIiwiLy8gLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjU1VQUE9SVFMtSEFTLVNFTEVDVE9SXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLy8gVGVzdCBpZiB0aGUgYDpoYXNgIHNlbGVjdG9yIGlzIHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBjb250ZW50IFRoZSBtaXhpbiB3cmFwcyB0aGUgcGFzc2VkIGRlY2xhcmF0aW9ucyBpbiBhIHN1cHBvcnRzIGRpcmVjdGl2ZS5cbkBtaXhpbiBzdXBwb3J0cy1oYXMtc2VsZWN0b3IoKSB7XG4gICAgQHN1cHBvcnRzIHNlbGVjdG9yKDpoYXMoLnN1cHBvcnQpKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLy8vIEZsaXBwZWQgdmVyc2lvbiBvZiB0aGUgcHJldmlvdXMgbWl4aW4gdG8gdGVzdCBpZiBhIGJyb3dzZXIgZG9lcyBOT1Qgc3VwcG9ydFxuLy8vIGA6aGFzYCBzZWxlY3Rvci4gKGh0dHBzOi8vY2FuaXVzZS5jb20vY3NzLWhhcylcbi8vL1xuLy8vIEBjb250ZW50IFRoZSBtaXhpbiB3cmFwcyB0aGUgcGFzc2VkIGRlY2xhcmF0aW9ucyBpbiBhIHN1cHBvcnRzIGRpcmVjdGl2ZS5cbkBtaXhpbiBzdXBwb3J0cy1ub3QtaGFzLXNlbGVjdG9yKCkge1xuICAgIEBzdXBwb3J0cyBub3Qgc2VsZWN0b3IoOmhhcyguc3VwcG9ydCkpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0lURU0tVEVBU0VSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNrb2RhLWl0ZW0tdGVhc2VyLWJvcmRlcjogICAgICAgICRDQVJELVBBVFRFUk4tQk9SREVSICFkZWZhdWx0O1xuJHNrb2RhLWl0ZW0tdGVhc2VyLWJvcmRlci1yYWRpdXM6ICRDQVJELVBBVFRFUk4tQk9SREVSLVJBRElVUyAhZGVmYXVsdDtcbi8qXG4gKiBbMV0gQWxpZ24gYWxsIGl0ZW1zIGF0IHRoZSB0b3AuXG4gKiBbMl0gVXNlIOKAnHJvd+KAnSBsYXlvdXQgd2hlbiBjb21wb25lbnQgaXMgd2lkZXJcbiAqICAgICB0aGFuIGAkaXRlbS10ZWFzZXItcm93LWl0ZW0tYnJlYWstd2lkdGhgLlxuICovXG4uYy1pdGVtLXRlYXNlciB7XG5cbiAgICAmLmMtaXRlbS10ZWFzZXItLWJsb2NrIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbn1cblxuICAgIC5jLWl0ZW0tdGVhc2VyLS1yb3cge1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgLyogWzFdICovXG5cbiAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG9yZGVyL29yZGVyXG4gICAgICAgIEBpbmNsdWRlIGNvbnRhaW5lcigkbWFwOiAkaXRlbS10ZWFzZXItcm93LXdpZHRoLXF1ZXJpZXMsICRzaXplOiBcInNcIikgeyAvKiBbMl0gKi9cbiAgICAgICAgICAgIEBpbmNsdWRlIGl0ZW0tdGVhc2VyLWlubGluZSgpO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1pdGVtLXRlYXNlci0tYWx0ZXJuYXRpdmUge1xuICAgICAgICBib3JkZXI6ICRza29kYS1pdGVtLXRlYXNlci1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRza29kYS1pdGVtLXRlYXNlci1ib3JkZXItcmFkaXVzO1xuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNMT0dPXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGxvZ28taW1nLXVybDogICAgICAgICAgICAgICRHTE9CQUwtSU1BR0UtUEFUSCArIFwibG9nby5wbmdcIiAhZGVmYXVsdDtcbiRsb2dvLWltZy11cmwtc21hbGwtc2NyZWVuOiAkR0xPQkFMLUlNQUdFLVBBVEggKyBcImxvZ28tc21hbGwtc2NyZWVuLnBuZ1wiICFkZWZhdWx0O1xuJGxvZ28tYnJlYWtwb2ludDogICAgICAgICAgICRHTE9CQUwtTE9HTy1CUkVBS1BPSU5UICFkZWZhdWx0O1xuJGxvZ28td2lkdGg6ICAgICAgICAgICAgICAgICRHTE9CQUwtTE9HTy1XSURUSCAhZGVmYXVsdDtcbiRsb2dvLWhlaWdodDogICAgICAgICAgICAgICAkR0xPQkFMLUxPR08tSEVJR0hUICFkZWZhdWx0O1xuJGxvZ28td2lkdGgtYXQtYnJlYWtwb2ludDogICRHTE9CQUwtTE9HTy1XSURUSC1BVC1CUkVBS1BPSU5UICFkZWZhdWx0O1xuJGxvZ28taGVpZ2h0LWF0LWJyZWFrcG9pbnQ6ICRHTE9CQUwtTE9HTy1IRUlHSFQtQVQtQlJFQUtQT0lOVCAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gSW4gYWRkaXRpb24gdG8gdGhlIGxvZ28gaW4gdGhlIEhUTUwgd2UgaGF2ZSB0byBhc3NpZ24gdGhlIGxvZ28gdmlhIENTU1xuICogICAgIGFzIGEgYmFja2dyb3VuZCBpbWFnZSBmYWxsYmFjayBmb3IgdGhlIGZvcm1lciB2ZXJzaW9uIHdpdGhvdXRcbiAqICAgICBgaW1nYCBvciBgcGljdHVyZWAgZWxlbWVudHMgaW4gdGhlIG1hcmt1cC5cbiAqIFsyXSBUbyBoaWRlIHRoZSBmYWxsYmFjayBiYWNrZ3JvdW5kIGltYWdlIHdoZW4gdGhlIGxvZ28gaW1hZ2UgaXMgcGxhY2VkIGFzXG4gKiAgICAgYGltZ2Agb3IgYHBpY3R1cmVgIGluIHRoZSBIVE1MLCBhbiBhZGRpdGlvbmFsIG1vZGlmaWVyIGNsYXNzIGlzIG5lY2Vzc2FyeS5cbiAqICAgICBUbyBlbnN1cmUgY29tcGF0aWJpbGl0eSB3aXRoIEJyb25zb24ncyBtdWx0aWJyYW5kIGRldmVsb3BtZW50IG1vZGUsXG4gKiAgICAgdGhlIGJhY2tncm91bmQgaW1hZ2UgbXVzdCBub3QgYmUgcmVtb3ZlZCwgYnV0IG11c3QgYmUgcHVzaGVkIG91dCBvZlxuICogICAgIHRoZSBjb250YWluZXIgd2l0aCAnYmFja2dyb3VuZC1wb3NpdGlvbmAuIFRoaXMgd2lsbCBiZSByZXZlcnNlZCBpblxuICogICAgIGBwYWNrYWdlcy9icm9uc29uLWRlZmF1bHQvc3R5bGVndWlkZS90aGVtZS1vdmVycmlkZXMvc3R5bGVzL19zZy1zdHlsZXMuc2Nzc2AuXG4gKiBbM10gSnVzdCBhcHBseSBhIGRpZmZlcmVudCBsb2dvIGZvciB0aGUgYmFja2dyb3VuZCBpbWFnZSBmYWxsYmFjayxcbiAqICAgICBpZiB0aGUgc21hbGwgc2NyZWVuIHZhcmlhbnQgZGlmZmVycyBmcm9tIHRoZSBsYXJnZSBzY3JlZW4gdmFyaWFudC5cbiAqIFs0XSBEZWZlbnNpdmVseSByZXNldCBhbnkgdHJhbnNpdGlvbiwgZS5nLiB3aGVuIGAuYy1sb2dvYCBpcyBvbiBhbiBgPGE+YFxuICogICAgIGVsZW1lbnQsIHRoYXQgaXMgY2FycnlpbmcgYW55IHRyYW5zaXRpb24uXG4gKiBbNV0gQ29udmVydCBgLmMtbG9nb19faW1hZ2VgIHRvIGEgYmxvY2stbGV2ZWwgZWxlbWVudCB0byByZW1vdmUgdW53YW50ZWRcbiAqICAgICBzcGFjaW5nIGFyb3VuZCB0aGUgaW1hZ2UuXG4gKi9cbi5jLWxvZ28ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAkbG9nby13aWR0aDtcbiAgICBoZWlnaHQ6ICRsb2dvLWhlaWdodDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJGxvZ28taW1nLXVybCk7IC8qIFsxXSAqL1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBub25lOyAvKiBbNF0gKi9cblxuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRsb2dvLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgd2lkdGg6ICRsb2dvLXdpZHRoLWF0LWJyZWFrcG9pbnQ7XG4gICAgICAgIGhlaWdodDogJGxvZ28taGVpZ2h0LWF0LWJyZWFrcG9pbnQ7XG5cbiAgICAgICAgQGlmICgkbG9nby1pbWctdXJsLXNtYWxsLXNjcmVlbikgeyAvKiBbM10gKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgkbG9nby1pbWctdXJsLXNtYWxsLXNjcmVlbik7IC8qIFsxXSAqL1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYy1sb2dvLS1oYXMtaW1hZ2Uge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDk5OXB4OyAgLyogWzJdICovXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgLyogWzJdICovXG59XG5cbiAgICAuYy1sb2dvX19pbWFnZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyAvKiBbNV0gKi9cbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICB9XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjTE9HT1xuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRHTE9CQUwtTE9HTy1XSURUSDogICAgICAgICAgICAgICAgMTE0cHggIWRlZmF1bHQ7XG4kR0xPQkFMLUxPR08tSEVJR0hUOiAgICAgICAgICAgICAgIDE2cHggIWRlZmF1bHQ7XG4kR0xPQkFMLUxPR08tV0lEVEgtQVQtQlJFQUtQT0lOVDogICRHTE9CQUwtTE9HTy1XSURUSCAhZGVmYXVsdDtcbiRHTE9CQUwtTE9HTy1IRUlHSFQtQVQtQlJFQUtQT0lOVDogJEdMT0JBTC1MT0dPLUhFSUdIVCAhZGVmYXVsdDtcbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNMT0dPXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNrb2RhLWxvZ28tZm9jdXMtb2Zmc2V0OiAkR0xPQkFMLUZPQ1VTLU9GRlNFVC1MQVJHRSAhZGVmYXVsdDtcblxuLmMtbG9nbyB7XG5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBAaW5jbHVkZSBmb2N1cy1zdHlsZXMoXG4gICAgICAgICAgICAkb3V0bGluZS1vZmZzZXQ6ICRza29kYS1sb2dvLWZvY3VzLW9mZnNldCxcbiAgICAgICAgKTtcbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNMT0dPLUJBTk5FUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRsb2dvLWJhbm5lci1icmVha3BvaW50OiAgICAgICAgICAgICAgXCJzXCIgIWRlZmF1bHQ7XG4kbG9nby1iYW5uZXItZm9udC1zaXplOiAgICAgICAgICAgICAgICRGUzEgIWRlZmF1bHQ7XG4kbG9nby1iYW5uZXItZm9udC1zaXplLWF0LWJyZWFrcG9pbnQ6ICRGUzAgIWRlZmF1bHQ7XG4kbG9nby1iYW5uZXItZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtUkVHVUxBUiAhZGVmYXVsdDtcbiRsb2dvLWJhbm5lci1mb250LWxpbmUtaGVpZ2h0OiAgICAgICAgJEdMT0JBTC1IRUFESU5HLUJBU0UtTElORS1IRUlHSFQgIWRlZmF1bHQ7XG4kbG9nby1iYW5uZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiRsb2dvLWJhbm5lci1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgJENPTE9SLUhJR0hMSUdIVCAhZGVmYXVsdDtcbiRsb2dvLWJhbm5lci1wYWRkaW5nOiAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kbG9nby1iYW5uZXItZ2FwOiAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJGxvZ28tYmFubmVyLWdhcC1hdC1icmVha3BvaW50OiAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kbG9nby1iYW5uZXItbG9nby1oZWlnaHQtbWF4OiAgICAgICAgIHZhcigtLWxvZ28tYmFubmVyLWxvZ28taGVpZ2h0LCAzMnB4KSAhZGVmYXVsdDsgLy8gTWFnaWMgbnVtYmVyIHRoYXQgZml0cyBxdWl0ZSB3ZWxsXG4kbG9nby1iYW5uZXItbG9nby1oZWlnaHQtbWluOiAgICAgICAgICN7JGxvZ28tYmFubmVyLWxvZ28taGVpZ2h0LW1heH0gLyAxLjUgIWRlZmF1bHQ7IC8vIDEuNSB0aW1lcyBzbWFsbGVyIHRoYW4gbWF4aW11bSBoZWlnaHRcbiRsb2dvLWJhbm5lci1sb2dvLWhlaWdodC1wcmVmZXJyZWQ6ICAgOHZ3ICFkZWZhdWx0OyAvLyBNaWRkbGUgYGNsYW1wYCB2YWx1ZVxuJGxvZ28tYmFubmVyLXJvdy1taW4taGVpZ2h0OiAgICAgICAgICA3MHB4ICFkZWZhdWx0OyAvLyBNYWdpYyBudW1iZXIgZnJvbSB0aGUgQmx1ZWxhYmVsL2hleWNhciBkZXNpZ24gdGVtcGxhdGVcbiRsb2dvLWJhbm5lci1yb3ctcGFkZGluZzogICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIFJldmVydCBhbGwgc3R5bGVzIHRvIHJlc2V0IHBvdGVudGlhbCBnbG9iYWwgbGluayBzdHlsZXMuXG4gKiBbMl0gVXNlIENTUyBjdXN0b20gcHJvcGVydGllcyB3aXRoIGEgZmFsbGJhY2sgdG8gYWxsb3cgc29tZSBwcm9wZXJ0aWVzXG4gKiAgICAgKGNvbG9yLCBiYWNrZ3JvdW5kIGNvbG9yLCBsb2dvIGhlaWdodCkgdG8gYmUgY3VzdG9taXphYmxlIGZyb20gdGhlIG1hcmt1cFxuICogICAgICh0aHJvdWdoIGlubGluZSBzdHlsZXMpLiBGb3IgZXhhbXBsZTpcbiAqICAgICBgYGBcbiAqICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cImMtbG9nby1iYW5uZXJcIiBzdHlsZT1cIi0tbG9nby1iYW5uZXItY29sb3I6ICNmZmZmZmZcIj5cbiAqICAgICBgYGBcbiAqIFszXSBXZSBzZXQgdGhlIGxvZ2/igJlzIGRpbWVuc2lvbnMgYmFzZWQgb24gaGVpZ2h0LiBBcyBhIHJlc3VsdCwgdGhlIHdpZHRoXG4gKiAgICAgY2FuIHZhcnkgYW5kIGlzIGRldGVybWluZWQgYnkgdGhlIGxvZ2/igJlzIGFzcGVjdCByYXRpby5cbiAqICAgICBgY2xhbXBgIGlzIHVzZWQgdG8gc2V0IGEgbWluaW11bSB2YWx1ZSwgYSB2aWV3cG9ydCB3aWR0aCBiYXNlZCB2YWx1ZVxuICogICAgIGFuZCBhIG1heGltdW0gdmFsdWUgdG8gbWFrZSB0aGUgbG9nbyByZXNwb25zaXZlIHdpdGhpbiBhIGdpdmVuIHJhbmdlLlxuICovXG5cbi5jLWxvZ28tYmFubmVyIHtcbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb3JkZXIvb3JkZXJcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgJGZvbnQtc2l6ZTogJGxvZ28tYmFubmVyLWZvbnQtc2l6ZSxcbiAgICAgICAgJGxpbmUtaGVpZ2h0OiAkbG9nby1iYW5uZXItZm9udC1saW5lLWhlaWdodCxcbiAgICApO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogJGxvZ28tYmFubmVyLXBhZGRpbmc7XG4gICAgZm9udC13ZWlnaHQ6ICRsb2dvLWJhbm5lci1mb250LXdlaWdodDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sb2dvLWJhbm5lci1iYWNrZ3JvdW5kLWNvbG9yLCAjeyRsb2dvLWJhbm5lci1iYWNrZ3JvdW5kLWNvbG9yfSk7IC8qIFsyXSAqL1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGxvZ28tYmFubmVyLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoJGxvZ28tYmFubmVyLWZvbnQtc2l6ZS1hdC1icmVha3BvaW50KTtcbiAgICAgICAgZ2FwOiAkbG9nby1iYW5uZXItZ2FwLWF0LWJyZWFrcG9pbnQ7XG4gICAgfVxufVxuXG4gICAgLmMtbG9nby1iYW5uZXJfX2JvZHkge1xuICAgICAgICBhbGw6IHJldmVydDsgLyogWzFdICovXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogJGxvZ28tYmFubmVyLWdhcDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1sb2dvLWJhbm5lci1jb2xvciwgI3skbG9nby1iYW5uZXItY29sb3J9KTsgLyogWzJdICovXG4gICAgfVxuXG4gICAgLmMtbG9nby1iYW5uZXJfX2xvZ28ge1xuICAgICAgICBoZWlnaHQ6IGNsYW1wKCN7JGxvZ28tYmFubmVyLWxvZ28taGVpZ2h0LW1pbn0sICN7JGxvZ28tYmFubmVyLWxvZ28taGVpZ2h0LXByZWZlcnJlZH0sICN7JGxvZ28tYmFubmVyLWxvZ28taGVpZ2h0LW1heH0pOyAvKiBbMl0gWzNdICovXG4gICAgfVxuXG4gICAgLmMtbG9nby1iYW5uZXItLXJvdyB7XG4gICAgICAgIG1pbi1oZWlnaHQ6ICRsb2dvLWJhbm5lci1yb3ctbWluLWhlaWdodDtcbiAgICAgICAgcGFkZGluZzogJGxvZ28tYmFubmVyLXJvdy1wYWRkaW5nO1xuXG4gICAgICAgIC5jLWxvZ28tYmFubmVyX19ib2R5IHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIH1cblxuICAgIH1cblxuXG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjUEFHSU5BVElPTlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRwYWdpbmF0aW9uLWlzLWNlbnRlcmVkOiAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWxpbmstc3BhY2luZy1ob3Jpem9udGFsOiAgICAgMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWxpbmstc3BhY2luZy12ZXJ0aWNhbDogICAgICAgMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWxpbmstcGFkZGluZy1ob3Jpem9udGFsOiAgICAgKCRHTE9CQUwtU1BBQ0lORy1VTklUICogMC41KSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWxpbmstcGFkZGluZy12ZXJ0aWNhbDogICAgICAgKCRHTE9CQUwtU1BBQ0lORy1VTklUIC0gJEdMT0JBTC1GT05ULVNJWkUpICogMC41ICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbGluay1ib3JkZXItcmFkaXVzOiAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1saW5rLWNvbG9yOiAgICAgICAgICAgICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWxpbmstYmc6ICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtQkFDS0dST1VORCAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24tbGluay1jb2xvci1kaXNhYmxlZDogICAgICAgICAkQ09MT1ItUEFMRSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWxpbmstYmctZGlzYWJsZWQ6ICAgICAgICAgICAgJHBhZ2luYXRpb24tbGluay1iZyAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24tbGluay1jb2xvci1hY3RpdmU6ICAgICAgICAgICAkcGFnaW5hdGlvbi1saW5rLWJnICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbGluay1iZy1hY3RpdmU6ICAgICAgICAgICAgICAkcGFnaW5hdGlvbi1saW5rLWNvbG9yICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1saW5rLWNvbG9yLWhvdmVyOiAgICAgICAgICAgICRwYWdpbmF0aW9uLWxpbmstY29sb3ItYWN0aXZlICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbGluay1iZy1ob3ZlcjogICAgICAgICAgICAgICAkcGFnaW5hdGlvbi1saW5rLWJnLWFjdGl2ZSAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24tbGluay1mb250LXNpemU6ICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbGluay1mb250LXdlaWdodDogICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbGluay1mb250LXdlaWdodC1hY3RpdmU6ICAgICBudWxsICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbGluay1mb250LXdlaWdodC1ob3ZlcjogICAgICBudWxsICFkZWZhdWx0O1xuXG4vLyBAVE9ET1xuLy8gSW5oZXJpdCBmb250LXNpemUgZnJvbSBwYXJlbnQgdGhhdCBlbnN1cmVzIHNhbWUtc2l6ZWQgcGFnaW5hdGlvbi1pdGVtc1xuLy8gVGhpcyBkb2VzIG5vdCBhcHBseSB0aGUgY29ycmVjdCBpY29uLXNpemVzIHBlciBicmFuZC5cbiRwYWdpbmF0aW9uLXN0ZXBwZXItaWNvbi1jb2xvcjogICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLXN0ZXBwZXItaWNvbi1zaXplOiAgICAgICAgICAgaW5oZXJpdCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLXN0ZXBwZXItaWNvbi1wcmV2OiAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtYmFjaykgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1zdGVwcGVyLWljb24tbmV4dDogICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLWZvcndhcmQpICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tc3RlcHBlci1zcGFjaW5nOiAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tc3RlcHBlci1kaXNhYmxlZC1jb2xvcjogICAgICAkQ09MT1ItUEFMRSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLXN0ZXBwZXItZGlzYWJsZWQtb3BhY2l0eTogICAgJE9QQUNJVFktTUVESVVNICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tc3RlcHBlci1kaXNhYmxlZC12aXNpYmlsaXR5OiBudWxsICFkZWZhdWx0O1xuLyoqXG4gKiBbMV0gU3RlcHBlciBpY29uIHNob3VsZCBoYXZlIHNhbWUgbGluZS1oZWlnaHQgYXMgLmMtcGFnaW5hdGlvbl9fbGluayB0ZXh0LlxuICovXG4uYy1wYWdpbmF0aW9uIHtcbn1cblxuICAgIC5jLXBhZ2luYXRpb25fX2xpc3Qge1xuICAgICAgICBAaW5jbHVkZSBsaXN0LWJhcmUoKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIEBpZiAoJHBhZ2luYXRpb24taXMtY2VudGVyZWQpIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1wYWdpbmF0aW9uX19saW5rIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAkcGFnaW5hdGlvbi1saW5rLXNwYWNpbmctdmVydGljYWwgJHBhZ2luYXRpb24tbGluay1zcGFjaW5nLWhvcml6b250YWw7XG4gICAgICAgIHBhZGRpbmc6ICRwYWdpbmF0aW9uLWxpbmstcGFkZGluZy12ZXJ0aWNhbCAkcGFnaW5hdGlvbi1saW5rLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHBhZ2luYXRpb24tbGluay1ib3JkZXItcmFkaXVzO1xuICAgICAgICBmb250LXNpemU6ICRwYWdpbmF0aW9uLWxpbmstZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJHBhZ2luYXRpb24tbGluay1mb250LXdlaWdodDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1saW5rLWJnO1xuICAgICAgICBjb2xvcjogJHBhZ2luYXRpb24tbGluay1jb2xvcjtcblxuICAgICAgICAmOm5vdChbaHJlZl0pIHtcbiAgICAgICAgICAgIGN1cnNvcjogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1jbGFzcywgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4gICAgICAgICY6bm90KC5pcy1kaXNhYmxlZCk6bm90KC5pcy1hY3RpdmUpIHtcbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHBhZ2luYXRpb24tbGluay1mb250LXdlaWdodC1ob3ZlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1saW5rLWJnLWhvdmVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1saW5rLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuXG4gICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkcGFnaW5hdGlvbi1saW5rLWZvbnQtd2VpZ2h0LWFjdGl2ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwYWdpbmF0aW9uLWxpbmstYmctYWN0aXZlO1xuICAgICAgICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLWxpbmstY29sb3ItYWN0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1saW5rLWJnLWRpc2FibGVkO1xuICAgICAgICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLWxpbmstY29sb3ItZGlzYWJsZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAmW2NsYXNzKj1cImMtcGFnaW5hdGlvbl9fbGluay0tc3RlcHBlci1cIl0ge1xuICAgICAgICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLXN0ZXBwZXItaWNvbi1jb2xvcjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBpY29uLWZvbnQoJGxpbmUtaGVpZ2h0OiBpbmhlcml0KTsgLyogWzFdICovXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkcGFnaW5hdGlvbi1zdGVwcGVyLWljb24tc2l6ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5pcy1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLXN0ZXBwZXItZGlzYWJsZWQtY29sb3I7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogaWYoJHBhZ2luYXRpb24tc3RlcHBlci1kaXNhYmxlZC1vcGFjaXR5LCAkcGFnaW5hdGlvbi1zdGVwcGVyLWRpc2FibGVkLW9wYWNpdHksIG51bGwpO1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6ICRwYWdpbmF0aW9uLXN0ZXBwZXItZGlzYWJsZWQtdmlzaWJpbGl0eTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5jLXBhZ2luYXRpb25fX2xpbmstLXN0ZXBwZXItcHJldiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkcGFnaW5hdGlvbi1zdGVwcGVyLXNwYWNpbmc7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAkcGFnaW5hdGlvbi1zdGVwcGVyLWljb24tcHJldjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuYy1wYWdpbmF0aW9uX19saW5rLS1zdGVwcGVyLW5leHQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkcGFnaW5hdGlvbi1zdGVwcGVyLXNwYWNpbmc7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAkcGFnaW5hdGlvbi1zdGVwcGVyLWljb24tbmV4dDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI1BBR0lOQVRJT04gKFNldHRpbmdzKVxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRwYWdpbmF0aW9uLWlzLWNlbnRlcmVkOiAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24tbGluay1zcGFjaW5nLWhvcml6b250YWw6ICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YWFNNQUxMICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbGluay1ib3JkZXItcmFkaXVzOiAgICAgICAkR0xPQkFMLUJPUkRFUi1SQURJVVMtU01BTEwgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWxpbmstcGFkZGluZy1ob3Jpem9udGFsOiAgMCAhZGVmYXVsdDsgLy8gSGFuZGxlZCB2aWEgZml4ZWQgc2l6ZXMuXG4kcGFnaW5hdGlvbi1saW5rLXBhZGRpbmctdmVydGljYWw6ICAgIDAgIWRlZmF1bHQ7IC8vIEhhbmRsZWQgdmlhIGZpeGVkIHNpemVzLlxuXG4kcGFnaW5hdGlvbi1saW5rLWNvbG9yOiAgICAgICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1saW5rLWNvbG9yLWRpc2FibGVkOiAgICAgICRDT0xPUi1JTkFDVElWRSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWxpbmstYmc6ICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cblxuJHBhZ2luYXRpb24tbGluay1jb2xvci1hY3RpdmU6ICAgICAgICAkcGFnaW5hdGlvbi1saW5rLWNvbG9yICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbGluay1iZy1hY3RpdmU6ICAgICAgICAgICAkQlVUVE9OLUlDT04tSU5URVJBQ1RJT04tQkFDS0dST1VORC1DT0xPUi1IT1ZFUi1PTi1MSUdIVCAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24tbGluay1jb2xvci1ob3ZlcjogICAgICAgICAkcGFnaW5hdGlvbi1saW5rLWNvbG9yLWFjdGl2ZSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWxpbmstYmctaG92ZXI6ICAgICAgICAgICAgJHBhZ2luYXRpb24tbGluay1iZy1hY3RpdmUgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWxpbmstZm9udC13ZWlnaHQ6ICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1SRUdVTEFSICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1zdGVwcGVyLWljb24tc2l6ZTogICAgICAgIGljb24tc2l6ZSh4c21hbGwpICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tc3RlcHBlci1kaXNhYmxlZC1jb2xvcjogICAkcGFnaW5hdGlvbi1saW5rLWNvbG9yLWRpc2FibGVkICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tc3RlcHBlci1kaXNhYmxlZC1vcGFjaXR5OiBmYWxzZSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLXN0ZXBwZXItc3BhY2luZzogICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtTEFSR0UgIWRlZmF1bHQ7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjUEFHSU5BVElPTlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRza29kYS1wYWdpbmF0aW9uLWxpbmstc2l6ZTogICAgICAgICAzNnB4ICFkZWZhdWx0O1xuJHNrb2RhLXBhZ2luYXRpb24tbGluay1zY2FsZS1hY3RpdmU6ICRCVVRUT04tU0NBTEUtQUNUSVZFICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBVbnNldCBob3ZlciBmcm9tIGRlZmF1bHQgbGluay5cbiAqIFsyXSBGb2N1cyBzdHlsZXMgaGFuZGxlZCB2aWEgcHNldWRvIGVsZW1lbnQuXG4gKi9cbi5jLXBhZ2luYXRpb24ge1xuXG59XG5cbiAgICAuYy1wYWdpbmF0aW9uX19saW5rIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICY6bm90KFtjbGFzcyo9XCJjLXBhZ2luYXRpb25fX2xpbmstLXN0ZXBwZXItXCJdKSB7XG4gICAgICAgICAgICB3aWR0aDogJHNrb2RhLXBhZ2luYXRpb24tbGluay1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2tvZGEtcGFnaW5hdGlvbi1saW5rLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2NsYXNzKj1cImMtcGFnaW5hdGlvbl9fbGluay0tc3RlcHBlci1cIl06bm90KC5pcy1kaXNhYmxlZCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWljb24tc3RhdGVzKCk7XG4gICAgICAgICAgICBzY2FsZTogMTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGltcG9ydGFudCh0cmFuc3BhcmVudCwgdHJ1ZSk7IC8qIFsxXSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDA7IC8qIFsyXSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgc2NhbGU6ICRza29kYS1wYWdpbmF0aW9uLWxpbmstc2NhbGUtYWN0aXZlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNMSUNFTlNFLVBMQVRFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGxpY2Vuc2UtcGxhdGUtYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAjZmZmZmZmICFkZWZhdWx0O1xuJGxpY2Vuc2UtcGxhdGUtYmFja2dyb3VuZC1jb2xvci1ubDogICAgICAgICAgICAgICAgICAgICAgICAjZjdjYTQ1ICFkZWZhdWx0O1xuJGxpY2Vuc2UtcGxhdGUtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxcHggIWRlZmF1bHQ7XG4kbGljZW5zZS1wbGF0ZS1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNjOWM5YzkgIWRlZmF1bHQ7XG4kbGljZW5zZS1wbGF0ZS1ib3JkZXItc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvbGlkICFkZWZhdWx0O1xuJGxpY2Vuc2UtcGxhdGUtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGljZW5zZS1wbGF0ZS1ib3JkZXItd2lkdGggJGxpY2Vuc2UtcGxhdGUtYm9yZGVyLXN0eWxlICRsaWNlbnNlLXBsYXRlLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRsaWNlbnNlLXBsYXRlLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgM3B4ICFkZWZhdWx0O1xuJGxpY2Vuc2UtcGxhdGUtYnJlYWtwb2ludDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInNcIiAhZGVmYXVsdDtcbiRsaWNlbnNlLXBsYXRlLWJyZWFrcG9pbnQtdGhlbWUtbmFtZTogICAgICAgICAgICAgICAgICAgICAgXCJzbWFsbFwiICFkZWZhdWx0O1xuJGxpY2Vuc2UtcGxhdGUtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQgIWRlZmF1bHQ7XG4kbGljZW5zZS1wbGF0ZS1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vIFRoZSByZWZsZXggYmx1ZSBiYWNrZ3JvdW5kIGNvbG9yIGFuZCB0aGUgeWVsbG93IGNvbG9yIGFyZSBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZFxuLy8gY29sb3Igb2YgdGhlIEV1cm9wZWFuIGZsYWcgKGh0dHBzOi8vcHVibGljYXRpb25zLmV1cm9wYS5ldS9jb2RlL2VuL2VuLTUwMDAxMDAuaHRtKS5cbiRsaWNlbnNlLXBsYXRlLWhvcml6b250YWwtc3RyaXAtZXUtYmFja2dyb3VuZC1jb2xvcjogICAgICAgIzAwMzM5OSAhZGVmYXVsdDtcbiRsaWNlbnNlLXBsYXRlLWhvcml6b250YWwtc3RyaXAtanAtc3BhY2luZy1ib3R0b206ICAgICAgICAgMWVtICFkZWZhdWx0O1xuJGxpY2Vuc2UtcGxhdGUtY291bnRyeS1jb2RlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAjZmZmZmZmICFkZWZhdWx0O1xuJGxpY2Vuc2UtcGxhdGUtZXUtc3RhcnMtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZmZjYzAwICFkZWZhdWx0O1xuJGxpY2Vuc2UtcGxhdGUtZXUtc3RhcnMtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjg3NWVtICFkZWZhdWx0O1xuXG4kbGljZW5zZS1wbGF0ZS1yZWdpc3RyYXRpb24tbnVtYmVyLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICRsaWNlbnNlLXBsYXRlLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJGxpY2Vuc2UtcGxhdGUtcmVnaXN0cmF0aW9uLW51bWJlci1zcGFjaW5nLXZlcnRpY2FsOiAgICAgICAwICFkZWZhdWx0O1xuJGxpY2Vuc2UtcGxhdGUtcmVnaXN0cmF0aW9uLW51bWJlci1zcGFjaW5nLWhvcml6b250YWw6ICAgICAwLjJlbSAhZGVmYXVsdDtcbiRsaWNlbnNlLXBsYXRlLWpwLXJlZ2lzdHJhdGlvbi1udW1iZXItc3BhY2luZy1ob3Jpem9udGFsOiAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFhTTUFMTCAhZGVmYXVsdDtcblxuJGxpY2Vuc2UtcGxhdGUtdG9wLWJhci1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQgIWRlZmF1bHQ7XG4kbGljZW5zZS1wbGF0ZS10b3AtYmFyLXNwYWNpbmctYm90dG9tOiAgICAgICAgICAgICAgICAgICAgICgkR0xPQkFMLVNQQUNJTkctVU5JVC1YWFNNQUxMICogMC41KSAhZGVmYXVsdDtcblxuJGxpY2Vuc2UtcGxhdGUtdGhlbWVzOiAoXG4gICAgXCJsYXJnZVwiOiAoXG4gICAgICAgIFwibGljZW5zZS1wbGF0ZS1oZWlnaHRcIjogNDBweCxcbiAgICAgICAgXCJsaWNlbnNlLXBsYXRlLXdpZHRoXCI6IDIwMHB4LFxuICAgICAgICBcImxpY2Vuc2UtcGxhdGUtZm9udC1zaXplXCI6IDIzcHgsXG4gICAgICAgIFwiaG9yaXpvbnRhbC1zdHJpcC13aWR0aFwiOiAzMHB4LFxuICAgICAgICBcImhvcml6b250YWwtc3RyaXAtZm9udC1zaXplXCI6IDE4cHgsXG4gICAgICAgIFwiaXMtcmVzcG9uc2l2ZVwiOiB0cnVlXG4gICAgKSxcbiAgICBcIm1lZGl1bVwiOiAoXG4gICAgICAgIFwibGljZW5zZS1wbGF0ZS1oZWlnaHRcIjogNDBweCxcbiAgICAgICAgXCJsaWNlbnNlLXBsYXRlLXdpZHRoXCI6IDE2MHB4LFxuICAgICAgICBcImxpY2Vuc2UtcGxhdGUtZm9udC1zaXplXCI6IDE4cHgsXG4gICAgICAgIFwiaG9yaXpvbnRhbC1zdHJpcC13aWR0aFwiOiAyNHB4LFxuICAgICAgICBcImhvcml6b250YWwtc3RyaXAtZm9udC1zaXplXCI6IDE0cHgsXG4gICAgICAgIFwiaXMtcmVzcG9uc2l2ZVwiOiB0cnVlXG4gICAgKSxcbiAgICBcInNtYWxsXCI6IChcbiAgICAgICAgXCJsaWNlbnNlLXBsYXRlLWhlaWdodFwiOiAzMnB4LFxuICAgICAgICBcImxpY2Vuc2UtcGxhdGUtd2lkdGhcIjogMTQwcHgsXG4gICAgICAgIFwibGljZW5zZS1wbGF0ZS1mb250LXNpemVcIjogMTZweCxcbiAgICAgICAgXCJob3Jpem9udGFsLXN0cmlwLXdpZHRoXCI6IDIwcHgsXG4gICAgICAgIFwiaG9yaXpvbnRhbC1zdHJpcC1mb250LXNpemVcIjogMTJweCxcbiAgICAgICAgXCJpcy1yZXNwb25zaXZlXCI6IHRydWVcbiAgICApLFxuICAgIFwieHNtYWxsXCI6IChcbiAgICAgICAgXCJsaWNlbnNlLXBsYXRlLWhlaWdodFwiOiAyNHB4LFxuICAgICAgICBcImxpY2Vuc2UtcGxhdGUtd2lkdGhcIjogMTEwcHgsXG4gICAgICAgIFwibGljZW5zZS1wbGF0ZS1mb250LXNpemVcIjogMTJweCxcbiAgICAgICAgXCJob3Jpem9udGFsLXN0cmlwLXdpZHRoXCI6IDE2cHgsXG4gICAgICAgIFwiaG9yaXpvbnRhbC1zdHJpcC1mb250LXNpemVcIjogMTBweCxcbiAgICApXG4pICFkZWZhdWx0O1xuJGxpY2Vuc2UtcGxhdGUtanAtdGhlbWVzOiAoXG4gICAgICAgIFwibGFyZ2VcIjogKFxuICAgICAgICAgICAgICAgIFwibGljZW5zZS1wbGF0ZS1qcC1oZWlnaHRcIjogNDBweCxcbiAgICAgICAgICAgICAgICBcImxpY2Vuc2UtcGxhdGUtanAtd2lkdGhcIjogYXV0byxcbiAgICAgICAgICAgICAgICBcImxpY2Vuc2UtcGxhdGUtZm9udC1zaXplXCI6IDIxcHgsXG4gICAgICAgICAgICAgICAgXCJob3Jpem9udGFsLXN0cmlwLXdpZHRoXCI6IDE4cHgsXG4gICAgICAgICAgICAgICAgXCJob3Jpem9udGFsLXN0cmlwLWZvbnQtc2l6ZVwiOiA5cHgsXG4gICAgICAgICAgICAgICAgXCJpcy1yZXNwb25zaXZlXCI6IHRydWVcbiAgICAgICAgKSxcbiAgICAgICAgXCJtZWRpdW1cIjogKFxuICAgICAgICAgICAgICAgIFwibGljZW5zZS1wbGF0ZS1oZWlnaHRcIjogNDBweCxcbiAgICAgICAgICAgICAgICBcImxpY2Vuc2UtcGxhdGUtd2lkdGhcIjogYXV0byxcbiAgICAgICAgICAgICAgICBcImxpY2Vuc2UtcGxhdGUtZm9udC1zaXplXCI6IDIxcHgsXG4gICAgICAgICAgICAgICAgXCJob3Jpem9udGFsLXN0cmlwLXdpZHRoXCI6IDE4cHgsXG4gICAgICAgICAgICAgICAgXCJob3Jpem9udGFsLXN0cmlwLWZvbnQtc2l6ZVwiOiA5cHgsXG4gICAgICAgICAgICAgICAgXCJpcy1yZXNwb25zaXZlXCI6IHRydWVcbiAgICAgICAgKSxcbiAgICAgICAgXCJzbWFsbFwiOiAoXG4gICAgICAgICAgICAgICAgXCJsaWNlbnNlLXBsYXRlLWhlaWdodFwiOiAzMnB4LFxuICAgICAgICAgICAgICAgIFwibGljZW5zZS1wbGF0ZS13aWR0aFwiOiBhdXRvLFxuICAgICAgICAgICAgICAgIFwibGljZW5zZS1wbGF0ZS1mb250LXNpemVcIjogMTZweCxcbiAgICAgICAgICAgICAgICBcImhvcml6b250YWwtc3RyaXAtd2lkdGhcIjogMTRweCxcbiAgICAgICAgICAgICAgICBcImhvcml6b250YWwtc3RyaXAtZm9udC1zaXplXCI6IDdweCxcbiAgICAgICAgKSxcbiAgICAgICAgXCJ4c21hbGxcIjogKFxuICAgICAgICAgICAgICAgIFwibGljZW5zZS1wbGF0ZS1oZWlnaHRcIjogMzJweCxcbiAgICAgICAgICAgICAgICBcImxpY2Vuc2UtcGxhdGUtd2lkdGhcIjogYXV0byxcbiAgICAgICAgICAgICAgICBcImxpY2Vuc2UtcGxhdGUtZm9udC1zaXplXCI6IDEycHgsXG4gICAgICAgICAgICAgICAgXCJob3Jpem9udGFsLXN0cmlwLXdpZHRoXCI6IDE0cHgsXG4gICAgICAgICAgICAgICAgXCJob3Jpem9udGFsLXN0cmlwLWZvbnQtc2l6ZVwiOiA3cHgsXG4gICAgICAgIClcbikgIWRlZmF1bHQ7XG5cbiRsaWNlbnNlLXBsYXRlLWJyZWFrcG9pbnQtdGhlbWU6ICAgIG1hcC1nZXQoJGxpY2Vuc2UtcGxhdGUtdGhlbWVzLCAkbGljZW5zZS1wbGF0ZS1icmVha3BvaW50LXRoZW1lLW5hbWUpICFkZWZhdWx0O1xuJGxpY2Vuc2UtcGxhdGUtanAtYnJlYWtwb2ludC10aGVtZTogbWFwLWdldCgkbGljZW5zZS1wbGF0ZS1qcC10aGVtZXMsICRsaWNlbnNlLXBsYXRlLWJyZWFrcG9pbnQtdGhlbWUtbmFtZSkgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIE1ha2UgYWxsIGxpY2Vuc2UgcGxhdGVzIGV4Y2VwdCBcInhzbWFsbFwiIHZhcmlhbnQgaGF2ZSB0aGUgc2FtZSBzaXplIGZvciA8PXMgYnJlYWtwb2ludC5cbiAqIFsyXSBNb2RpZnkgbGljZW5zZSBwbGF0ZSB3aXRoIGEgY291bnRyeS1zcGVjaWZpYyBiYWNrZ3JvdW5kIGZvciBOZXRoZXJsYW5kcy5cbiAqIFszXSBQcmV2ZW50IHRoZSB1bmRlcmxpbmluZyBvZiB0aGUgY291bnRyeSBjb2RlIHdoZW4gaXQgaXMgaW5zaWRlIG9mIGFuIGFiYnIgZWxlbWVudC5cbiAqIFs0XSBBdm9pZCBzaGFycCBlZGdlIG92ZXJsYXBwaW5nIHJvdW5kZWQgY29ybmVyIG9uIGhvcml6b250YWwtc3RyaXAuXG4gKi9cblxuLy8vIEdlbmVyYXRlIGlubGluZSBTVkcgZm9yIEVVIHN0YXJzXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSBbJGxpY2Vuc2UtcGxhdGUtZXUtc3RhcnMtY29sb3JdIENvbG9yIG9mIGdyYXBoaWNcbi8vLyBAcmV0dXJucyB7ZnVuY3Rpb259IFVSTCBmdW5jdGlvbiB3aXRoIGVuY29kZWQgaW5saW5lIFNWR1xuQGZ1bmN0aW9uIGxpY2Vuc2UtcGxhdGUtZXUtc3RhcnMoJGNvbG9yOiAkbGljZW5zZS1wbGF0ZS1ldS1zdGFycy1jb2xvcikge1xuICAgIC8vLyBgW2ZpbGxdYCBoZXggY29sb3IgbmVlZHMgdG8gYmUgZXNjYXBlZCBhcyBgI2AgaXMgYSBmcmFnbWVudCBpZGVudGlmaWVyLiBFc2NhcGUgd2l0aCBgJTIzYC5cbiAgICAkZmlsbDogc3RyLXJlcGxhY2UodW5xdW90ZShcIiN7JGNvbG9yfVwiKSwgXCIjXCIsIFwiJTIzXCIpO1xuXG4gICAgQHJldHVybiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTEyIDUxMlwiIHhtbDpzcGFjZT1cInByZXNlcnZlXCI+PHBhdGggZmlsbD1cIiN7JGZpbGx9XCIgZD1cIk0yMjcgODdjMy0xMS4xIDYuMy0yMi4xIDEwLTMzLTguNi03LjEtMTcuNy0xMy44LTI3LTIwLTEtMSAzLTEgMTctMWwxOC0xYzQuNC0xMC40IDguMS0yMS4xIDExLTMybDYgMTYgNSAxNiAxOCAxIDE3IDEtMTMgMTAtMTQgMTAgNSAxN2M1IDE0IDUgMTYgNCAxNi05LjYtNS45LTE4LjktMTIuMy0yOC0xOWwtMTQgOWMtMTMgMTAtMTUgMTEtMTUgMTB6bTAgNDI1YzIuOS0xMS40IDYuMy0yMi44IDEwLTM0LTguNi03LjEtMTcuNy0xMy44LTI3LTIwaDE3bDE4LTFjNC40LTEwLjQgOC4xLTIxLjEgMTEtMzJsNiAxNSA1IDE3IDE4IDFoMTdsLTEzIDExLTE0IDEwIDUgMTZjNSAxNSA1IDE3IDQgMTctOS42LTYuMy0xOS0xMi45LTI4LTIwbC0xNCAxMGMtMTMgMTAtMTUgMTEtMTUgMTB6bTIxMC0yMTNjMi42LTExLjEgNS42LTIyLjEgOS0zMy04LjYtNy4xLTE3LjctMTMuOC0yNy0yMGwxNy0xaDE4YzQuNS0xMC43IDguMS0yMS44IDExLTMzIDMuNiAxMC44IDcuNiAyMS41IDEyIDMybDE4IDEgMTcgMS0xNCAxMC0xMyAxMSA0IDE2IDUgMTdjLTkuNi02LjMtMTktMTIuOS0yOC0yMGwtMTQgMTAtMTUgOXptLTQxOSAwYzIuNi0xMS4xIDUuNi0yMi4xIDktMzMtOC42LTcuMS0xNy43LTEzLjgtMjctMjBsMTctMWgxOGM0LjUtMTAuNyA4LjEtMjEuOCAxMS0zMyAzLjYgMTAuOCA3LjYgMjEuNSAxMiAzMmwxOCAxIDE3IDEtMTQgMTAtMTQgMTEgNSAxNiA1IDE3Yy0xMC02LjItMTkuNi0xMi45LTI5LTIwbC0xNCAxMC0xNCA5em0yNC0xMDVjMy0xMS4xIDYuMy0yMi4xIDEwLTMzLTguNi03LjEtMTcuNy0xMy44LTI3LTIwbDE3LTFoMThjNC41LTEwLjcgOC4xLTIxLjggMTEtMzMgMy42IDEwLjggNy42IDIxLjUgMTIgMzJsMTcgMSAxOCAxLTE0IDEwLTE0IDExIDUgMTYgNSAxN2MtMTAtNi4yLTE5LjYtMTIuOS0yOS0yMGwtMTQgMTBjLTEzIDktMTUgMTAtMTUgOXptMzcxIDBjMy0xMS4xIDYuMy0yMi4xIDEwLTMzLTguNi03LjEtMTcuNy0xMy44LTI3LTIwbDE3LTFoMThjNC41LTEwLjcgOC4xLTIxLjggMTEtMzNsNiAxNiA1IDE2IDE4IDEgMTcgMS0xMyAxMC0xNCAxMSA1IDE2YzUgMTUgNSAxNyA0IDE3LTkuNi02LjMtMTktMTIuOS0yOC0yMGwtMTQgMTBjLTEzIDktMTUgMTAtMTUgOXpNNDkgNDE0YzIuNi0xMS4xIDUuNi0yMi4xIDktMzMtOC42LTcuMS0xNy43LTEzLjgtMjctMjBsMTgtMSAxNy0xYzQuNC0xMC40IDguMS0yMS4xIDExLTMyIDEtMSAyIDEgNyAxNmw1IDE2IDE4IDEgMTcgMS0xMyAxMC0xNCAxMCA1IDE2IDQgMTdjLTkuNi01LjktMTguOS0xMi4zLTI4LTE5bC0xNCA5Yy0xMyAxMC0xNSAxMS0xNSAxMHptMzU4IDBjMi42LTExLjEgNS42LTIyLjEgOS0zMy04LjMtNy4xLTE3LTEzLjgtMjYtMjAtMS0xIDMtMSAxNy0xbDE4LTFjNC40LTEwLjQgOC4xLTIxLjEgMTEtMzJsNiAxNiA1IDE2IDE4IDEgMTcgMS0xMyAxMC0xNCAxMCA1IDE2YzUgMTUgNSAxNyA0IDE3LTkuNi01LjktMTguOS0xMi4zLTI4LTE5bC0xNCA5Yy0xMyAxMC0xNSAxMS0xNSAxMHpNMTIxIDExNWMzLTExLjEgNi4zLTIyLjEgMTAtMzMtOC42LTcuMS0xNy43LTEzLjgtMjctMjBsMTctMSAxOC0xYzQuNC0xMC40IDguMS0yMS4xIDExLTMyIDMuNiAxMC44IDcuNiAyMS41IDEyIDMybDE3IDEgMTggMS0xNCAxMC0xNCAxMCA1IDE3IDUgMTdjLTEwLTYuMi0xOS42LTEyLjktMjktMjBsLTE0IDljLTEzIDEwLTE1IDExLTE1IDEwem0yMTIgMGMyLjYtMTEuMSA1LjYtMjIuMSA5LTMzLTguNi03LjEtMTcuNy0xMy44LTI3LTIwbDE3LTEgMTgtMWM0LjQtMTAuNCA4LjEtMjEuMSAxMS0zMiAzLjYgMTAuOCA3LjYgMjEuNSAxMiAzMmwxOCAxIDE3IDEtMTQgMTAtMTMgMTBjLTEgMSAyIDggNCAxN2w1IDE3Yy05LjYtNi4zLTE5LTEyLjktMjgtMjBsLTE0IDktMTUgMTB6TTEyMiA0ODNjMi42LTExLjEgNS42LTIyLjEgOS0zMy04LjYtNy4xLTE3LjctMTMuOC0yNy0yMGwxNy0xIDE4LTFjNC40LTEwLjQgOC4xLTIxLjEgMTEtMzIgMy42IDEwLjggNy42IDIxLjUgMTIgMzJsMTggMSAxNyAxLTE0IDEwLTE0IDEwIDUgMTYgNSAxN2MtOS45LTUuOS0xOS42LTEyLjMtMjktMTlsLTE0IDktMTQgMTB6bTIxMSAwYzMtMTEuMSA2LjMtMjIuMSAxMC0zMy04LjYtNy4xLTE3LjctMTMuOC0yNy0yMGwxNy0xIDE4LTFjNC40LTEwLjQgOC4xLTIxLjEgMTEtMzJsNiAxNiA1IDE2IDE4IDEgMTggMS0xNCAxMC0xNCAxMCA1IDE2IDUgMTdjLTkuOS01LjktMTkuNi0xMi4zLTI5LTE5bC0xNCA5Yy0xMyAxMC0xNSAxMS0xNSAxMHpcIi8+PC9zdmc+Jyk7XG59XG5cbi5jLWxpY2Vuc2UtcGxhdGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm9yZGVyOiAkbGljZW5zZS1wbGF0ZS1ib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogaWYoJGxpY2Vuc2UtcGxhdGUtYm9yZGVyLXJhZGl1cywgJGxpY2Vuc2UtcGxhdGUtYm9yZGVyLXJhZGl1cywgbnVsbCk7XG4gICAgZm9udC13ZWlnaHQ6ICRsaWNlbnNlLXBsYXRlLWZvbnQtd2VpZ2h0O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWNlbnNlLXBsYXRlLWJhY2tncm91bmQtY29sb3I7XG5cbiAgICBAaW5jbHVkZSB2YXJ5KCRjcmVhdGU6IG1vZGlmaWVyLCAkbG9vcDogJGxpY2Vuc2UtcGxhdGUtdGhlbWVzKSB7XG4gICAgICAgIGhlaWdodDogdmFyeS1nZXQoXCJsaWNlbnNlLXBsYXRlLWhlaWdodFwiKTtcbiAgICAgICAgbWluLXdpZHRoOiB2YXJ5LWdldChcImxpY2Vuc2UtcGxhdGUtd2lkdGhcIik7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyeS1nZXQoXCJsaWNlbnNlLXBsYXRlLWZvbnQtc2l6ZVwiKTtcblxuICAgICAgICBAaWYgKHZhcnktZ2V0KFwiaXMtcmVzcG9uc2l2ZVwiKSkgeyAvKiBbMV0gKi9cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRsaWNlbnNlLXBsYXRlLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IG1hcC1nZXQoJGxpY2Vuc2UtcGxhdGUtYnJlYWtwb2ludC10aGVtZSwgXCJsaWNlbnNlLXBsYXRlLWhlaWdodFwiKTtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IG1hcC1nZXQoJGxpY2Vuc2UtcGxhdGUtYnJlYWtwb2ludC10aGVtZSwgXCJsaWNlbnNlLXBsYXRlLXdpZHRoXCIpO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkbGljZW5zZS1wbGF0ZS1icmVha3BvaW50LXRoZW1lLCBcImxpY2Vuc2UtcGxhdGUtZm9udC1zaXplXCIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICYuYy1saWNlbnNlLXBsYXRlLS1ubCB7IC8qIFsyXSAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGljZW5zZS1wbGF0ZS1iYWNrZ3JvdW5kLWNvbG9yLW5sO1xuICAgIH1cblxuICAgICYuYy1saWNlbnNlLXBsYXRlLS1qcCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxOyAvKiBbMl0gKi9cblxuICAgICAgICBAaW5jbHVkZSB2YXJ5KCRjcmVhdGU6IGN1c3RvbSwgJGxvb3A6ICRsaWNlbnNlLXBsYXRlLWpwLXRoZW1lcykge1xuICAgICAgICAgICAgJi5jLWxpY2Vuc2UtcGxhdGUtLSN7JHZhcnktbG9vcC1lbnRpdHl9IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHZhcnktZ2V0KFwibGljZW5zZS1wbGF0ZS1oZWlnaHRcIik7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiB2YXJ5LWdldChcImxpY2Vuc2UtcGxhdGUtd2lkdGhcIik7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXJ5LWdldChcImxpY2Vuc2UtcGxhdGUtZm9udC1zaXplXCIpO1xuXG4gICAgICAgICAgICAgICAgQGlmICh2YXJ5LWdldChcImlzLXJlc3BvbnNpdmVcIikpIHsgLyogWzFdICovXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRsaWNlbnNlLXBsYXRlLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogbWFwLWdldCgkbGljZW5zZS1wbGF0ZS1qcC1icmVha3BvaW50LXRoZW1lLCBcImxpY2Vuc2UtcGxhdGUtaGVpZ2h0XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiBtYXAtZ2V0KCRsaWNlbnNlLXBsYXRlLWpwLWJyZWFrcG9pbnQtdGhlbWUsIFwibGljZW5zZS1wbGF0ZS13aWR0aFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkbGljZW5zZS1wbGF0ZS1qcC1icmVha3BvaW50LXRoZW1lLCBcImxpY2Vuc2UtcGxhdGUtZm9udC1zaXplXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWJiciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgLyogWzNdICovXG4gICAgfVxuXG59XG5cbiAgICAuYy1saWNlbnNlLXBsYXRlX19yZWdpc3RyYXRpb24tbnVtYmVyIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAkbGljZW5zZS1wbGF0ZS1yZWdpc3RyYXRpb24tbnVtYmVyLXNwYWNpbmctdmVydGljYWwgJGxpY2Vuc2UtcGxhdGUtcmVnaXN0cmF0aW9uLW51bWJlci1zcGFjaW5nLWhvcml6b250YWw7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkbGljZW5zZS1wbGF0ZS1yZWdpc3RyYXRpb24tbnVtYmVyLWZvbnQtZmFtaWx5O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgLmMtbGljZW5zZS1wbGF0ZS0tanAgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkbGljZW5zZS1wbGF0ZS1qcC1yZWdpc3RyYXRpb24tbnVtYmVyLXNwYWNpbmctaG9yaXpvbnRhbDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkbGljZW5zZS1wbGF0ZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWxpY2Vuc2UtcGxhdGVfX3JlZ2lzdHJhdGlvbi10b3AtYmFyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGxpY2Vuc2UtcGxhdGUtdG9wLWJhci1zcGFjaW5nLWJvdHRvbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRsaWNlbnNlLXBsYXRlLXRvcC1iYXItZm9udC13ZWlnaHQ7XG5cbiAgICAgICAgQGluY2x1ZGUgdmFyeSgkY3JlYXRlOiBjdXN0b20sICRsb29wOiAkbGljZW5zZS1wbGF0ZS1qcC10aGVtZXMpIHtcbiAgICAgICAgICAgIC5jLWxpY2Vuc2UtcGxhdGUtLSN7JHZhcnktbG9vcC1lbnRpdHl9ICYge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyeS1nZXQoXCJob3Jpem9udGFsLXN0cmlwLWZvbnQtc2l6ZVwiKTtcblxuICAgICAgICAgICAgICAgIEBpZiAodmFyeS1nZXQoXCJpcy1yZXNwb25zaXZlXCIpID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGxpY2Vuc2UtcGxhdGUtYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRsaWNlbnNlLXBsYXRlLWpwLWJyZWFrcG9pbnQtdGhlbWUsIFwiaG9yaXpvbnRhbC1zdHJpcC1mb250LXNpemVcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1saWNlbnNlLXBsYXRlX19ob3Jpem9udGFsLXN0cmlwIHtcbiAgICAgICAgLy8gZmxleCBjb250YWluZXJcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgLy8gZmxleCBpdGVtXG4gICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5cbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogWzRdICovXG5cbiAgICAgICAgQGluY2x1ZGUgdmFyeSgkY3JlYXRlOiBjdXN0b20sICRsb29wOiAkbGljZW5zZS1wbGF0ZS10aGVtZXMpIHtcbiAgICAgICAgICAgIC5jLWxpY2Vuc2UtcGxhdGUtLSN7JHZhcnktbG9vcC1lbnRpdHl9ICYge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogdmFyeS1nZXQoXCJob3Jpem9udGFsLXN0cmlwLXdpZHRoXCIpO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyeS1nZXQoXCJob3Jpem9udGFsLXN0cmlwLWZvbnQtc2l6ZVwiKTtcblxuICAgICAgICAgICAgICAgIEBpZiAodmFyeS1nZXQoXCJpcy1yZXNwb25zaXZlXCIpID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGxpY2Vuc2UtcGxhdGUtYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiBtYXAtZ2V0KCRsaWNlbnNlLXBsYXRlLWJyZWFrcG9pbnQtdGhlbWUsIFwiaG9yaXpvbnRhbC1zdHJpcC13aWR0aFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkbGljZW5zZS1wbGF0ZS1icmVha3BvaW50LXRoZW1lLCBcImhvcml6b250YWwtc3RyaXAtZm9udC1zaXplXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgJi5jLWxpY2Vuc2UtcGxhdGVfX2hvcml6b250YWwtc3RyaXAtLWV1IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWNlbnNlLXBsYXRlLWhvcml6b250YWwtc3RyaXAtZXUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYy1saWNlbnNlLXBsYXRlX19ob3Jpem9udGFsLXN0cmlwLS1qcCB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkbGljZW5zZS1wbGF0ZS1ob3Jpem9udGFsLXN0cmlwLWpwLXNwYWNpbmctYm90dG9tO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSB2YXJ5KCRjcmVhdGU6IGN1c3RvbSwgJGxvb3A6ICRsaWNlbnNlLXBsYXRlLWpwLXRoZW1lcykge1xuICAgICAgICAgICAgICAgIC5jLWxpY2Vuc2UtcGxhdGUtLSN7JHZhcnktbG9vcC1lbnRpdHl9ICYge1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IHZhcnktZ2V0KFwiaG9yaXpvbnRhbC1zdHJpcC13aWR0aFwiKTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXJ5LWdldChcImhvcml6b250YWwtc3RyaXAtZm9udC1zaXplXCIpO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAodmFyeS1nZXQoXCJpcy1yZXNwb25zaXZlXCIpID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRsaWNlbnNlLXBsYXRlLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IG1hcC1nZXQoJGxpY2Vuc2UtcGxhdGUtanAtYnJlYWtwb2ludC10aGVtZSwgXCJob3Jpem9udGFsLXN0cmlwLXdpZHRoXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkbGljZW5zZS1wbGF0ZS1qcC1icmVha3BvaW50LXRoZW1lLCBcImhvcml6b250YWwtc3RyaXAtZm9udC1zaXplXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWxpY2Vuc2UtcGxhdGVfX2V1LXN0YXJzIHtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRsaWNlbnNlLXBsYXRlLWV1LXN0YXJzLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRsaWNlbnNlLXBsYXRlLWV1LXN0YXJzLXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaWNlbnNlLXBsYXRlLWV1LXN0YXJzKCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1saWNlbnNlLXBsYXRlX19jb3VudHJ5LWNvZGUge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgY29sb3I6ICRsaWNlbnNlLXBsYXRlLWNvdW50cnktY29kZS1jb2xvcjtcbiAgICB9XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjU0lURS1OQVZcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2l0ZS1uYXYtZmxleC1kaXJlY3Rpb24tYXQtYnJlYWtwb2ludDogICAgICAgICAgICAgICAgY29sdW1uICFkZWZhdWx0O1xuJHNpdGUtbmF2LWhlaWdodC1icmVha3BvaW50OiAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtUEFHRS1IRUFELUJSRUFLUE9JTlQgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1QQUdFLUhFQUQtSEVJR0hUICFkZWZhdWx0O1xuJHNpdGUtbmF2LWhlaWdodC1hdC1icmVha3BvaW50OiAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtUEFHRS1IRUFELUhFSUdIVC1BVC1CUkVBS1BPSU5UICFkZWZhdWx0O1xuJHNpdGUtbmF2LXNwYWNpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJHNpdGUtbmF2LXBhZGRpbmctdmVydGljYWwtYXQtYnJlYWtwb2ludDogICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJHNpdGUtbmF2LXBhZGRpbmctaG9yaXpvbnRhbC1hdC1icmVha3BvaW50OiAgICAgICAgICAgICRwYWdlLXdyYXAtcGFkZGluZy1ob3Jpem9udGFsICFkZWZhdWx0O1xuJHNpdGUtbmF2LWJhY2tncm91bmQtY29sb3ItYXQtYnJlYWtwb2ludDogICAgICAgICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiRzaXRlLW5hdi10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kc2l0ZS1uYXYtZGl2aWRlci1jb2xvci1hdC1icmVha3BvaW50OiAgICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJHNpdGUtbmF2LWRpdmlkZXItd2lkdGgtYXQtYnJlYWtwb2ludDogICAgICAgICAgICAgICAgIDFweCAhZGVmYXVsdDtcbiRzaXRlLW5hdi1kaXZpZGVyLWF0LWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICAgICAgICAgICAkc2l0ZS1uYXYtZGl2aWRlci13aWR0aC1hdC1icmVha3BvaW50IHNvbGlkICRzaXRlLW5hdi1kaXZpZGVyLWNvbG9yLWF0LWJyZWFrcG9pbnQgIWRlZmF1bHQ7XG5cbi8vIEFsaWdubWVudCBjYW4gYmUgYGxlZnRgIG9yIGByaWdodGBcbiRzaXRlLW5hdi10b2dnbGUtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHNpdGUtbmF2LXRvZ2dsZS1hbGlnbm1lbnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0ICFkZWZhdWx0O1xuJHNpdGUtbmF2LXRvZ2dsZS1pY29uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLW1lbnUpICFkZWZhdWx0O1xuJHNpdGUtbmF2LXRvZ2dsZS1pY29uLXN0YXRlLWV4cGFuZGVkOiAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJHNpdGUtbmF2LXRvZ2dsZS1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24tc2l6ZShtZWRpdW0pICFkZWZhdWx0O1xuJHNpdGUtbmF2LXRvZ2dsZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRJQ09OLUNPTE9SICFkZWZhdWx0O1xuJHNpdGUtbmF2LXRvZ2dsZS1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtdG9nZ2xlLXN0YXRlLWV4cGFuZGVkOiAgICAgICAgICAgICAgICAgICAgICAgXCJbYXJpYS1leHBhbmRlZD0ndHJ1ZSddXCIgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtdG9nZ2xlLWxhYmVsLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRzaXRlLW5hdi10b2dnbGUtb3Blbi1oYXMtbGFiZWw6ICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRzaXRlLW5hdi10b2dnbGUtY2xvc2UtaGFzLWxhYmVsOiAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcblxuJHNpdGUtbmF2LXBhbmVsLXN0YXRlLWNvbGxhcHNlZDogICAgICAgICAgICAgICAgICAgICAgIFwiLmlzLWNvbGxhcHNlZFwiICFkZWZhdWx0O1xuJHNpdGUtbmF2LXBhbmVsLXN0YXRlLXRyYW5zaXRpb24taW46ICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtcGFuZWwtc3RhdGUtdHJhbnNpdGlvbi1vdXQ6ICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRzaXRlLW5hdi1wYW5lbC1zdGF0ZS1oYXMtdHJhbnNpdGlvbjogICAgICAgICAgICAgICAgICAkc2l0ZS1uYXYtcGFuZWwtc3RhdGUtdHJhbnNpdGlvbi1pbiBvciAkc2l0ZS1uYXYtcGFuZWwtc3RhdGUtdHJhbnNpdGlvbi1vdXQgIWRlZmF1bHQ7XG5cbiRzaXRlLW5hdi1pdGVtLXNwYWNpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcblxuJHNpdGUtbmF2LWxpbmstZmxleC1kaXJlY3Rpb246ICAgICAgICAgICAgICAgICAgICAgICAgIHJvdyAhZGVmYXVsdDtcbiRzaXRlLW5hdi1saW5rLWZsZXgtZGlyZWN0aW9uLXJldmVyc2U6ICAgICAgICAgICAgICAgICByb3ctcmV2ZXJzZSAhZGVmYXVsdDtcbiRzaXRlLW5hdi1saW5rLWZsZXgtanVzdGlmeS1jb250ZW50OiAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHNpdGUtbmF2LWxpbmstaWNvbi1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24tc2l6ZShzbWFsbCkgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtbGluay1pY29uLXNpemUtYXQtYnJlYWtwb2ludDogICAgICAgICAgICAgICAgJHNpdGUtbmF2LWxpbmstaWNvbi1zaXplICFkZWZhdWx0O1xuJHNpdGUtbmF2LWxpbmstaWNvbi1yb3RhdGlvbi1leHBhbmRlZDogICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtbGluay1sYWJlbC1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRzaXRlLW5hdi1saW5rLWxhYmVsLWZvbnQtZmFtaWx5LWF0LWJyZWFrcG9pbnQ6ICAgICAgICBudWxsICFkZWZhdWx0O1xuJHNpdGUtbmF2LWxpbmstbGFiZWwtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICRGUzAgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtbGluay1sYWJlbC1mb250LXNpemUtYXQtYnJlYWtwb2ludDogICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbi8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBgbGluZS1oZWlnaHRgIGlzIG5vdCBzbWFsbGVyIHRoYW4gdGhlIGljb24gc2l6ZSxcbi8vIHNvIHRoYXQgZWFjaCBpdGVtLCB3aGV0aGVyIHdpdGggb3Igd2l0aG91dCBhbiBpY29uLCBoYXMgdGhlIHNhbWUgaGVpZ2h0LlxuJHNpdGUtbmF2LWxpbmstbGFiZWwtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICRzaXRlLW5hdi1saW5rLWljb24tc2l6ZSAhZGVmYXVsdDtcbiRzaXRlLW5hdi1saW5rLWxhYmVsLWxpbmUtaGVpZ2h0LWF0LWJyZWFrcG9pbnQ6ICAgICAgICAkc2l0ZS1uYXYtbGluay1pY29uLXNpemUtYXQtYnJlYWtwb2ludCAhZGVmYXVsdDtcbiRzaXRlLW5hdi1saW5rLWxhYmVsLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtbGluay1sYWJlbC1mb250LXdlaWdodC1hdC1icmVha3BvaW50OiAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRzaXRlLW5hdi1saW5rLWxhYmVsLXRleHQtYWxpZ246ICAgICAgICAgICAgICAgICAgICAgICBsZWZ0ICFkZWZhdWx0O1xuJHNpdGUtbmF2LWxpbmstbGFiZWwtdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJHNpdGUtbmF2LWxpbmstbGFiZWwtdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtbGluay1sYWJlbC10ZXh0LWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAgICAgJHNpdGUtbmF2LWxpbmstbGFiZWwtdGV4dC1jb2xvciAhZGVmYXVsdDtcbiRzaXRlLW5hdi1saW5rLWxhYmVsLXRleHQtY29sb3ItYWN0aXZlOiAgICAgICAgICAgICAgICAkc2l0ZS1uYXYtbGluay1sYWJlbC10ZXh0LWNvbG9yICFkZWZhdWx0O1xuJHNpdGUtbmF2LWxpbmstbGFiZWwtdGV4dC1jb2xvci1hdC1icmVha3BvaW50OiAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRzaXRlLW5hdi1saW5rLWxhYmVsLXRleHQtY29sb3ItaG92ZXItYXQtYnJlYWtwb2ludDogICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtbGluay1sYWJlbC10ZXh0LWNvbG9yLWFjdGl2ZS1hdC1icmVha3BvaW50OiAgJHNpdGUtbmF2LWxpbmstbGFiZWwtdGV4dC1jb2xvci1ob3Zlci1hdC1icmVha3BvaW50ICFkZWZhdWx0O1xuJHNpdGUtbmF2LWxpbmstbGFiZWwtdGV4dC1kZWNvcmF0aW9uOiAgICAgICAgICAgICAgICAgIG5vbmUgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtbGluay1sYWJlbC1wYWRkaW5nLXZlcnRpY2FsLWF0LWJyZWFrcG9pbnQ6ICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJHNpdGUtbmF2LWxpbmstbGFiZWwtcGFkZGluZy1ob3Jpem9udGFsLWF0LWJyZWFrcG9pbnQ6ICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJHNpdGUtbmF2LWxpbmstaWNvbi1pcy1jdXN0b206ICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJHNpdGUtbmF2LWxpbmstaWNvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLWV4cGFuZCkgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtbGluay1pY29uLXNwYWNpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcbiRzaXRlLW5hdi1saW5rLWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2l0ZS1uYXYtbGluay1sYWJlbC10ZXh0LWNvbG9yICFkZWZhdWx0O1xuJHNpdGUtbmF2LWxpbmstaWNvbi1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICAgICAgICAgICRzaXRlLW5hdi1saW5rLWljb24tY29sb3IgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtbGluay1pY29uLWNvbG9yLWFjdGl2ZTogICAgICAgICAgICAgICAgICAgICAgJHNpdGUtbmF2LWxpbmstaWNvbi1jb2xvciAhZGVmYXVsdDtcbiRzaXRlLW5hdi1saW5rLWljb24tY29sb3ItYXQtYnJlYWtwb2ludDogICAgICAgICAgICAgICAkc2l0ZS1uYXYtbGluay1sYWJlbC10ZXh0LWNvbG9yLWF0LWJyZWFrcG9pbnQgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtbGluay1pY29uLWNvbG9yLWhvdmVyLWF0LWJyZWFrcG9pbnQ6ICAgICAgICAgJHNpdGUtbmF2LWxpbmstbGFiZWwtdGV4dC1jb2xvci1ob3Zlci1hdC1icmVha3BvaW50ICFkZWZhdWx0O1xuJHNpdGUtbmF2LWxpbmstaWNvbi1jb2xvci1hY3RpdmUtYXQtYnJlYWtwb2ludDogICAgICAgICRzaXRlLW5hdi1saW5rLWljb24tY29sb3ItaG92ZXItYXQtYnJlYWtwb2ludCAhZGVmYXVsdDtcbiRzaXRlLW5hdi1saW5rLXN0YXRlLWV4cGFuZGVkOiAgICAgICAgICAgICAgICAgICAgICAgICBcIlthcmlhLWV4cGFuZGVkPSd0cnVlJ11cIiAhZGVmYXVsdDtcbiRzaXRlLW5hdi1saW5rLXN0YXRlLWFjdGl2ZTogICAgICAgICAgICAgICAgICAgICAgICAgICBcIi5pcy1hY3RpdmVcIiAhZGVmYXVsdDtcbiRzaXRlLW5hdi1saW5rLWhvdmVyLXVuZGVybGluZS1lZmZlY3Q6ICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gIElmIHRoZXJlIGlzIGEgYC5zaXRlLW5hdi0tcmlnaHRgLCBwcmVzZXJ2ZSBzcGFjZSBiZXR3ZWVuIHRoZSB0d28gbmF2cy5cbiAqIFsyXSAgQWxpZ24gdGhlIHRvZ2dsZSB0byB0aGUgcmlnaHQgc2lkZS5cbiAqIFszXSAgQ2VudGVyIGAuYy1zaXRlLW5hdl9fdG9nZ2xlLWljb25gIGFuZCBgLmMtc2l0ZS1uYXZfX3RvZ2dsZS1jbG9zZS1sYWJlbGAuXG4gKiBbNF0gIEhpZGUgdGhlIGxhYmVsIG9ubHkgdmlzaWJseSBhbmQgbm90IGZyb20gc2NyZWVuIHJlYWRlcnMuIE5vdGUgdGhhdCB0aGVcbiAqICAgICAgbGFiZWwgaXMgc2V0IHRvIGBkaXNwbGF5OiBub25lYCB3aGVuIHRoZSBtZW51IGlzIG5vdCBleHBhbmRlZCBzaW5jZSB0aGVcbiAqICAgICAgbGFiZWwgaXMgdXNlZCBleGNsdXNpdmVseSBmb3IgdGhlIGNsb3NlIGFjdGlvbi5cbiAqIFs1XSAgV2UgY2FuIGVpdGhlciB1c2UgYW4gaWNvbiBmcm9tIHRoZSBpY29uIGZvbnQgb3IgdXNlIGEgQ1NTLWJ1aWx0IHRyaWFuZ2xlLlxuICogICAgICBDb250cm9sIHRoYXQgd2l0aCB0aGUgYCRzaXRlLW5hdi1saW5rLWljb24taXMtY3VzdG9tYCBmZWF0dXJlIGZsYWcuXG4gKiBbNl0gIEFsd2F5cyBzZXQgdGhlIHZhbHVlIG9mIGBmbGV4LWRpcmVjdGlvbmAgdG8gdGhlIG9wcG9zaXRlIHZhbHVlIGlmXG4gKiAgICAgIGAuaXMtcmV2ZXJzZWRgIGlzIHVzZWQgYW5kIHNldCBpdCB0byBgcm93YCBhdCB0aGUgYnJlYWtwb2ludC5cbiAqIFs3XSAgQWRkIHNwYWNpbmcgYmV0d2VlbiBsYWJlbCBhbmQgaWNvbiwgZGVwZW5kaW5nIG9uIHRoZSBkZWZhdWx0IHBvc2l0aW9uXG4gKiAgICAgIG9mIHRoZSBpY29uIChiZWZvcmUgb3IgYWZ0ZXIgdGhlIGxhYmVsKS5cbiAqIFs4XSAgTWFrZSBzdXJlIHRoZSBzaXRlIG5hdiBkcm9wZG93biBpcyBhbGlnbmVkIHRvIHRoZSBgLmMtc2l0ZS1uYXZfX2l0ZW0uYFxuICogICAgICBhbmQgaXMgbm90IG92ZXJsYXBwaW5nIHRoZSBoZWFkZXIuXG4gKiBbOV0gIFBsYWNlIGxpc3QgaXRlbSBvbiB0b3Agd2hlbiBjb2xsYXBzZWQuXG4gKiBbMTBdIFJlc2V0IGRlZmF1bHQgbGlzdCBzdHlsZS4gU2ltaWxhciB0byBgbGlzdC1iYXJlYCBtaXhpbiBidXQgb25seVxuICogICAgICBuZWNlc3Nhcnkgc3R5bGVzIGZvciB0aGlzIGNvbXBvbmVudCBhbmQgd2l0aCBsZXNzIGdlbmVyaWMgc2VsZWN0b3JzXG4gKiAgICAgIGFuZCBvdXRwdXQuXG4gKiBbMTFdIFJlc2V0IGRlZmF1bHQgYDxidXR0b24+YCBzdHlsZXMuXG4gKiBbMTJdIElmIGAuYy1zaXRlLW5hdl9fbGlua2AgaXMgYSBgYnV0dG9uYCAodHJpZ2dlcmluZyBhIGRyb3Bkb3duKSwgaGlkZSB0aGVcbiAqICAgICAgZm9jdXMgb3V0bGluZSBpZiB0aGUgZHJvcGRvd24gZ2V0cyBleHBhbmRlZC4gVGhlIGZvY3VzIG91dGxpbmUgdmlzdWFsbHlcbiAqICAgICAgZGlmZmVyZW50aWF0ZXMgYnV0dG9ucyBmcm9tIGxpbmtzIHdoZW4gdXNpbmcgYSBwb2ludGluZyBkZXZpY2UgKHN1Y2ggYXNcbiAqICAgICAgYSBtb3VzZSkg4oCTIHdoaWNoIGlzIG5vdCB3YW50ZWQgaGVyZS4gVGhlIHRyYW5zaXRpb24gZGVsYXkgaXMgbmVjZXNzYXJ5XG4gKiAgICAgIHRvIGF2b2lkIGEgc2hvcnQgZmxpY2tlcmluZyBvZiB0aGUgb3V0bGluZS4gV2hlbiBuYXZpZ2F0aW5nIGJ5IGtleWJvYXJkXG4gKiAgICAgIHRoZSBmb2N1cyBvdXRsaW5lIHNob3VsZCBiZSB2aXNpYmxlIGZvciBhY2Nlc3NpYmlsaXR5IHJlYXNvbnMuXG4gKiBbMTNdIFNvbWUgYnJhbmRzIChlLmcuIFZXNikgZG9uJ3QgbmVlZCBmbGV4LWRpcmVjdGlvbi5cbiAqIFsxNF0gU2V0IG1hcmdpbiBmb3IgcmV2ZXJzZWQgbGluayBpY29ucywgZGVwZW5kaW5nIG9uIHRoZSBkZWZhdWx0IHBvc2l0aW9uXG4gKiAgICAgIG9mIHRoZSBpY29uIChiZWZvcmUgb3IgYWZ0ZXIgdGhlIGxhYmVsKS4gVGhlIHNlbGVjdG9yIGhhZCB0byBiZVxuICogICAgICBkdXBsaWNhdGVkIGJlY2F1c2UgdGhlIGBzaXRlLW5hdi1icmVha3BvaW50YCBtaXhpbiBkb2VzIG5vdCB3b3JrIHdpdGhcbiAqICAgICAgbmVzdGVkIHNlbGVjdG9yIHJlZmVyZW5jaW5nIHBhcmVudCAoYCZgKS5cbiAqL1xuLmMtc2l0ZS1uYXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkc2l0ZS1uYXYtaGVpZ2h0O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JHNpdGUtbmF2LWhlaWdodC1icmVha3BvaW50fVwiKSB7XG4gICAgICAgIGhlaWdodDogJHNpdGUtbmF2LWhlaWdodC1hdC1icmVha3BvaW50O1xuICAgIH1cblxuICAgICYsXG4gICAgLmMtc2l0ZS1uYXZfX2xpbmstbGFiZWwge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJHNpdGUtbmF2LXRleHQtdHJhbnNmb3JtO1xuICAgIH1cblxufVxuXG4gICAgLmMtc2l0ZS1uYXZfX3RvZ2dsZSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWJ1dHRvbigpO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBjb2xvcjogJHNpdGUtbmF2LXRvZ2dsZS1jb2xvcjtcblxuICAgICAgICBAaWYgKCRzaXRlLW5hdi10b2dnbGUtc2l6ZSkge1xuICAgICAgICAgICAgd2lkdGg6ICRzaXRlLW5hdi10b2dnbGUtc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJHNpdGUtbmF2LXRvZ2dsZS1hbGlnbm1lbnQgPT0gXCJyaWdodFwiKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsgLyogWzJdICovXG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBzaXRlLW5hdi1icmVha3BvaW50KFwiYmVsb3dcIikge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDsgLyogWzNdICovXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIFszXSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2l0ZS1uYXYtdG9nZ2xlLWNvbG9yLWhvdmVyO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1zaXRlLW5hdl9fdG9nZ2xlLW9wZW4tbGFiZWwsXG4gICAgLmMtc2l0ZS1uYXZfX3RvZ2dsZS1jbG9zZS1sYWJlbCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkc2l0ZS1uYXYtdG9nZ2xlLWxhYmVsLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLmMtc2l0ZS1uYXZfX3RvZ2dsZS1vcGVuLWxhYmVsIHtcbiAgICAgICAgQGlmIG5vdCAoJHNpdGUtbmF2LXRvZ2dsZS1vcGVuLWhhcy1sYWJlbCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgYTExeS1oaWRkZW4oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jLXNpdGUtbmF2X190b2dnbGUtY2xvc2UtbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5jLXNpdGUtbmF2X190b2dnbGUtaWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGljb24tZm9udCgkbGluZS1oZWlnaHQ6IG51bGwpO1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAgICRzaXRlLW5hdi10b2dnbGUtaWNvbi1zaXplLFxuICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAxLFxuICAgICAgICApO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAkc2l0ZS1uYXYtdG9nZ2xlLWljb247XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2l0ZS1uYXYtdG9nZ2xlLWNvbG9yLWhvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtc2l0ZS1uYXZfX3RvZ2dsZSN7JHNpdGUtbmF2LXRvZ2dsZS1zdGF0ZS1leHBhbmRlZH0gJiB7XG5cbiAgICAgICAgICAgIH4gLmMtc2l0ZS1uYXZfX3RvZ2dsZS1vcGVuLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB+IC5jLXNpdGUtbmF2X190b2dnbGUtY2xvc2UtbGFiZWwge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAgICAgQGlmIG5vdCAoJHNpdGUtbmF2LXRvZ2dsZS1jbG9zZS1oYXMtbGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYTExeS1oaWRkZW4oKTsgLyogWzRdICovXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHNpdGUtbmF2LXRvZ2dsZS1pY29uLXN0YXRlLWV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJHNpdGUtbmF2LXRvZ2dsZS1pY29uLXN0YXRlLWV4cGFuZGVkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1zaXRlLW5hdl9fcGFuZWwge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaW5jbHVkZSBzaXRlLW5hdi1icmVha3BvaW50KFwiYmVsb3dcIikge1xuICAgICAgICAgICAgQGlmIG5vdCAoJHNpdGUtbmF2LXBhbmVsLXN0YXRlLWhhcy10cmFuc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuXG4gICAgICAgICAgICBAaWYgKCRzaXRlLW5hdi1wYW5lbC1zdGF0ZS1oYXMtdHJhbnNpdGlvbikge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oXCJ0cmFuc2Zvcm1cIik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAkc2l0ZS1uYXYtcGFuZWwtc3RhdGUtdHJhbnNpdGlvbi1vdXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bm90KCN7JHNpdGUtbmF2LXBhbmVsLXN0YXRlLWNvbGxhcHNlZH0pIHtcbiAgICAgICAgICAgICAgICBAaWYgKCRzaXRlLW5hdi1wYW5lbC1zdGF0ZS1oYXMtdHJhbnNpdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICRzaXRlLW5hdi1wYW5lbC1zdGF0ZS10cmFuc2l0aW9uLWluO1xuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1zaXRlLW5hdl9fbmF2cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQGluY2x1ZGUgc2l0ZS1uYXYtYnJlYWtwb2ludChcImJlbG93XCIpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXG4gICAgICAgICAgICAgICAgKFwicGFkZGluZy10b3BcIiwgICAgJHNpdGUtbmF2LXBhZGRpbmctdmVydGljYWwtYXQtYnJlYWtwb2ludCksXG4gICAgICAgICAgICAgICAgKFwicGFkZGluZy1sZWZ0XCIsICAgJHNpdGUtbmF2LXBhZGRpbmctaG9yaXpvbnRhbC1hdC1icmVha3BvaW50KSxcbiAgICAgICAgICAgICAgICAoXCJwYWRkaW5nLXJpZ2h0XCIsICAkc2l0ZS1uYXYtcGFkZGluZy1ob3Jpem9udGFsLWF0LWJyZWFrcG9pbnQpLFxuICAgICAgICAgICAgICAgIChcInBhZGRpbmctYm90dG9tXCIsICRzaXRlLW5hdi1wYWRkaW5nLXZlcnRpY2FsLWF0LWJyZWFrcG9pbnQpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBpZigkc2l0ZS1uYXYtZmxleC1kaXJlY3Rpb24tYXQtYnJlYWtwb2ludCwgJHNpdGUtbmF2LWZsZXgtZGlyZWN0aW9uLWF0LWJyZWFrcG9pbnQsIG51bGwpOyAvKiBbMTNdICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpZigkc2l0ZS1uYXYtYmFja2dyb3VuZC1jb2xvci1hdC1icmVha3BvaW50LCAkc2l0ZS1uYXYtYmFja2dyb3VuZC1jb2xvci1hdC1icmVha3BvaW50LCBudWxsKTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtc2l0ZS1uYXZfX25hdiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogMDsgLyogWzEwXSAqL1xuICAgICAgICBwYWRkaW5nOiAwOyAvKiBbMTBdICovXG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7IC8qIFsxMF0gKi9cblxuICAgICAgICBAaW5jbHVkZSBzaXRlLW5hdi1icmVha3BvaW50KFwiYmVsb3dcIikge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRzaXRlLW5hdi1zcGFjaW5nLWhvcml6b250YWw7IC8qIFsxXSAqL1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaXRlLW5hdi1icmVha3BvaW50KFwiYmVsb3dcIikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1zaXRlLW5hdl9faXRlbS5jLXNpdGUtbmF2X19pdGVtIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbOF0gKi9cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzEwXSAqL1xuXG4gICAgICAgIEBpbmNsdWRlIHNpdGUtbmF2LWJyZWFrcG9pbnQoXCJhYm92ZVwiKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7IC8qIFs4XSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgc2l0ZS1uYXYtYnJlYWtwb2ludChcImJlbG93XCIpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgQGlmICgkc2l0ZS1uYXYtZGl2aWRlci1hdC1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNpdGUtbmF2LWRpdmlkZXItYXQtYnJlYWtwb2ludDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5jLXNpdGUtbmF2X19pdGVtLS10b3AtYXQtYnJlYWtwb2ludCB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IC0xOyAvKiBbOV0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHNpdGUtbmF2LWl0ZW0tc3BhY2luZy1ob3Jpem9udGFsO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaXRlLW5hdi1icmVha3BvaW50KFwiYmVsb3dcIikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1zaXRlLW5hdl9fbGluayB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWJ1dHRvbigkcmVtb3ZlLWZvY3VzOiBmYWxzZSk7IC8qIFsxMV0gKi9cbiAgICAgICAgQGlmICgkc2l0ZS1uYXYtbGluay1ob3Zlci11bmRlcmxpbmUtZWZmZWN0KSB7XG5cdCAgICAgICAgQGluY2x1ZGUgaG92ZXItdW5kZXJsaW5lLWVmZmVjdCgpO1xuXHRcdH1cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiAkc2l0ZS1uYXYtbGluay1mbGV4LWp1c3RpZnktY29udGVudDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246ICRzaXRlLW5hdi1saW5rLWZsZXgtZGlyZWN0aW9uO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRzaXRlLW5hdi1saW5rLWxhYmVsLXRleHQtZGVjb3JhdGlvbjtcblxuICAgICAgICBAaW5jbHVkZSBzaXRlLW5hdi1icmVha3BvaW50KFwiYmVsb3dcIikge1xuICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcbiAgICAgICAgICAgICAgICAoXCJwYWRkaW5nLXRvcFwiLCAgICAkc2l0ZS1uYXYtbGluay1sYWJlbC1wYWRkaW5nLXZlcnRpY2FsLWF0LWJyZWFrcG9pbnQpLFxuICAgICAgICAgICAgICAgIChcInBhZGRpbmctbGVmdFwiLCAgICRzaXRlLW5hdi1saW5rLWxhYmVsLXBhZGRpbmctaG9yaXpvbnRhbC1hdC1icmVha3BvaW50KSxcbiAgICAgICAgICAgICAgICAoXCJwYWRkaW5nLXJpZ2h0XCIsICAkc2l0ZS1uYXYtbGluay1sYWJlbC1wYWRkaW5nLWhvcml6b250YWwtYXQtYnJlYWtwb2ludCksXG4gICAgICAgICAgICAgICAgKFwicGFkZGluZy1ib3R0b21cIiwgJHNpdGUtbmF2LWxpbmstbGFiZWwtcGFkZGluZy12ZXJ0aWNhbC1hdC1icmVha3BvaW50KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyAvKiBbNl0gKi9cbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1yZXZlcnNlZCB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHNpdGUtbmF2LWxpbmstZmxleC1kaXJlY3Rpb24tcmV2ZXJzZTsgLyogWzZdICovXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIGJ1dHRvbi5jLXNpdGUtbmF2X19saW5rIHtcbiAgICAgICAgb3V0bGluZS13aWR0aDogMDsgLyogWzEyXSAqL1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZS13aWR0aDogaW5pdGlhbDsgLyogWzEyXSAqL1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogMHMgb3V0bGluZSAwLjJzOyAvKiBbMTJdICovXG4gICAgICAgIH1cblxuICAgICAgICAmW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmUtd2lkdGg6IDA7IC8qIFsxMl0gKi9cbiAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzOyAvKiBbMTJdICovXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXNpdGUtbmF2X19saW5rLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigpO1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICAgJHNpdGUtbmF2LWxpbmstbGFiZWwtZm9udC1zaXplLFxuICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAkc2l0ZS1uYXYtbGluay1sYWJlbC1saW5lLWhlaWdodCxcbiAgICAgICAgKTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRzaXRlLW5hdi1saW5rLWxhYmVsLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXdlaWdodDogJHNpdGUtbmF2LWxpbmstbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkc2l0ZS1uYXYtbGluay1sYWJlbC10ZXh0LWNvbG9yO1xuXG4gICAgICAgIEBpZiAoJHNpdGUtbmF2LWxpbmstbGFiZWwtdGV4dC10cmFuc2Zvcm0pIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiAkc2l0ZS1uYXYtbGluay1sYWJlbC10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIHNpdGUtbmF2LWJyZWFrcG9pbnQoXCJiZWxvd1wiKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgICRzaXRlLW5hdi1saW5rLWxhYmVsLWZvbnQtc2l6ZS1hdC1icmVha3BvaW50LFxuICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogJHNpdGUtbmF2LWxpbmstbGFiZWwtbGluZS1oZWlnaHQtYXQtYnJlYWtwb2ludCxcbiAgICAgICAgICAgICAgICAkYWNjZXB0LW51bGw6IHRydWUsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRzaXRlLW5hdi1saW5rLWxhYmVsLWZvbnQtZmFtaWx5LWF0LWJyZWFrcG9pbnQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHNpdGUtbmF2LWxpbmstbGFiZWwtZm9udC13ZWlnaHQtYXQtYnJlYWtwb2ludDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRzaXRlLW5hdi1saW5rLWxhYmVsLXRleHQtYWxpZ247XG4gICAgICAgICAgICBjb2xvcjogaWYoJHNpdGUtbmF2LWxpbmstbGFiZWwtdGV4dC1jb2xvci1hdC1icmVha3BvaW50LCAkc2l0ZS1uYXYtbGluay1sYWJlbC10ZXh0LWNvbG9yLWF0LWJyZWFrcG9pbnQsIG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtc2l0ZS1uYXZfX2xpbms6aG92ZXIgJixcbiAgICAgICAgLmMtc2l0ZS1uYXZfX2xpbms6Zm9jdXMgJiB7XG4gICAgICAgICAgICBjb2xvcjogJHNpdGUtbmF2LWxpbmstbGFiZWwtdGV4dC1jb2xvci1ob3ZlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2l0ZS1uYXYtYnJlYWtwb2ludChcImJlbG93XCIpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogaWYoJHNpdGUtbmF2LWxpbmstbGFiZWwtdGV4dC1jb2xvci1ob3Zlci1hdC1icmVha3BvaW50LCAkc2l0ZS1uYXYtbGluay1sYWJlbC10ZXh0LWNvbG9yLWhvdmVyLWF0LWJyZWFrcG9pbnQsIG51bGwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAuYy1zaXRlLW5hdl9fbGluayN7JHNpdGUtbmF2LWxpbmstc3RhdGUtYWN0aXZlfSAmLFxuICAgICAgICAuYy1zaXRlLW5hdl9fbGluayN7JHNpdGUtbmF2LWxpbmstc3RhdGUtZXhwYW5kZWR9ICYge1xuICAgICAgICAgICAgY29sb3I6ICRzaXRlLW5hdi1saW5rLWxhYmVsLXRleHQtY29sb3ItYWN0aXZlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaXRlLW5hdi1icmVha3BvaW50KFwiYmVsb3dcIikge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBpZigkc2l0ZS1uYXYtbGluay1sYWJlbC10ZXh0LWNvbG9yLWFjdGl2ZS1hdC1icmVha3BvaW50LCAkc2l0ZS1uYXYtbGluay1sYWJlbC10ZXh0LWNvbG9yLWFjdGl2ZS1hdC1icmVha3BvaW50LCBudWxsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1zaXRlLW5hdl9fbGluay1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgIEBpZiAoJHNpdGUtbmF2LWxpbmstZmxleC1kaXJlY3Rpb24gPT0gcm93KSB7IC8qIFs3XSAqL1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaXRlLW5hdi1saW5rLWljb24tc3BhY2luZy1ob3Jpem9udGFsO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHNpdGUtbmF2LWxpbmstaWNvbi1zcGFjaW5nLWhvcml6b250YWw7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRzaXRlLW5hdi1saW5rLWljb24taXMtY3VzdG9tKSB7IC8qIFs1XSAqL1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgdG9wOiAoJHNpdGUtbmF2LWxpbmstaWNvbi1zaXplICogMC4yNSk7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogKCRzaXRlLW5hdi1saW5rLWljb24tc2l6ZSAqIDAuNSk7XG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRzaXRlLW5hdi1saW5rLWljb24tY29sb3I7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNpdGUtbmF2LWJyZWFrcG9pbnQoXCJiZWxvd1wiKSB7XG4gICAgICAgICAgICAgICAgdG9wOiAoJHNpdGUtbmF2LWxpbmstaWNvbi1zaXplLWF0LWJyZWFrcG9pbnQgKiAwLjI1KTtcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6ICgkc2l0ZS1uYXYtbGluay1pY29uLXNpemUtYXQtYnJlYWtwb2ludCAqIDAuNSk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogaWYoJHNpdGUtbmF2LWxpbmstaWNvbi1jb2xvci1hdC1icmVha3BvaW50LCAkc2l0ZS1uYXYtbGluay1pY29uLWNvbG9yLWF0LWJyZWFrcG9pbnQsIG51bGwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYy1zaXRlLW5hdl9fbGluazpob3ZlciAmLFxuICAgICAgICAgICAgLmMtc2l0ZS1uYXZfX2xpbms6Zm9jdXMgJiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHNpdGUtbmF2LWxpbmstaWNvbi1jb2xvci1ob3ZlcjtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNpdGUtbmF2LWJyZWFrcG9pbnQoXCJiZWxvd1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IGlmKCRzaXRlLW5hdi1saW5rLWljb24tY29sb3ItaG92ZXItYXQtYnJlYWtwb2ludCwgJHNpdGUtbmF2LWxpbmstaWNvbi1jb2xvci1ob3Zlci1hdC1icmVha3BvaW50LCBudWxsKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmMtc2l0ZS1uYXZfX2xpbmsjeyRzaXRlLW5hdi1saW5rLXN0YXRlLWFjdGl2ZX0gJixcbiAgICAgICAgICAgIC5jLXNpdGUtbmF2X19saW5rI3skc2l0ZS1uYXYtbGluay1zdGF0ZS1leHBhbmRlZH0gJiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHNpdGUtbmF2LWxpbmstaWNvbi1jb2xvci1hY3RpdmU7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzaXRlLW5hdi1icmVha3BvaW50KFwiYmVsb3dcIikge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiBpZigkc2l0ZS1uYXYtbGluay1pY29uLWNvbG9yLWFjdGl2ZS1hdC1icmVha3BvaW50LCAkc2l0ZS1uYXYtbGluay1pY29uLWNvbG9yLWFjdGl2ZS1hdC1icmVha3BvaW50LCBudWxsKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgICRzaXRlLW5hdi1saW5rLWljb24tc2l6ZSxcbiAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6IDEsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29sb3I6ICRzaXRlLW5hdi1saW5rLWljb24tY29sb3I7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNpdGUtbmF2LWJyZWFrcG9pbnQoXCJiZWxvd1wiKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgICRzaXRlLW5hdi1saW5rLWljb24tc2l6ZS1hdC1icmVha3BvaW50LFxuICAgICAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaWYoJHNpdGUtbmF2LWxpbmstaWNvbi1jb2xvci1hdC1icmVha3BvaW50LCAkc2l0ZS1uYXYtbGluay1pY29uLWNvbG9yLWF0LWJyZWFrcG9pbnQsIG51bGwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJHNpdGUtbmF2LWxpbmstaWNvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmMtc2l0ZS1uYXZfX2xpbms6aG92ZXIgJixcbiAgICAgICAgICAgIC5jLXNpdGUtbmF2X19saW5rOmZvY3VzICYge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2l0ZS1uYXYtbGluay1pY29uLWNvbG9yLWhvdmVyO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc2l0ZS1uYXYtYnJlYWtwb2ludChcImJlbG93XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGlmKCRzaXRlLW5hdi1saW5rLWljb24tY29sb3ItaG92ZXItYXQtYnJlYWtwb2ludCwgJHNpdGUtbmF2LWxpbmstaWNvbi1jb2xvci1ob3Zlci1hdC1icmVha3BvaW50LCBudWxsKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmMtc2l0ZS1uYXZfX2xpbmsjeyRzaXRlLW5hdi1saW5rLXN0YXRlLWFjdGl2ZX0gJixcbiAgICAgICAgICAgIC5jLXNpdGUtbmF2X19saW5rI3skc2l0ZS1uYXYtbGluay1zdGF0ZS1leHBhbmRlZH0gJiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzaXRlLW5hdi1saW5rLWljb24tY29sb3ItYWN0aXZlO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc2l0ZS1uYXYtYnJlYWtwb2ludChcImJlbG93XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGlmKCRzaXRlLW5hdi1saW5rLWljb24tY29sb3ItYWN0aXZlLWF0LWJyZWFrcG9pbnQsICRzaXRlLW5hdi1saW5rLWljb24tY29sb3ItYWN0aXZlLWF0LWJyZWFrcG9pbnQsIG51bGwpO1xuXG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJHNpdGUtbmF2LWxpbmstaWNvbi1yb3RhdGlvbi1leHBhbmRlZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kdXBsaWNhdGUtc2VsZWN0b3JzICovXG4gICAgLmMtc2l0ZS1uYXZfX2xpbmsuaXMtcmV2ZXJzZWQgeyAvKiBbMTRdICovXG5cbiAgICAgICAgQGlmICgkc2l0ZS1uYXYtbGluay1mbGV4LWRpcmVjdGlvbiA9PSByb3cpIHtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2l0ZS1uYXYtYnJlYWtwb2ludChcImFib3ZlXCIpIHtcblxuICAgICAgICAgICAgICAgIC5jLXNpdGUtbmF2X19saW5rLWljb24ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRzaXRlLW5hdi1saW5rLWljb24tc3BhY2luZy1ob3Jpem9udGFsO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9IEBlbHNlIHtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2l0ZS1uYXYtYnJlYWtwb2ludChcImFib3ZlXCIpIHtcblxuICAgICAgICAgICAgICAgIC5jLXNpdGUtbmF2X19saW5rLWljb24ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2l0ZS1uYXYtbGluay1pY29uLXNwYWNpbmctaG9yaXpvbnRhbDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjU0lURS1OQVZcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vLyBTaW5jZSB0aGUgYnJlYWtwb2ludCB3aGVyZSB0aGUgbmF2IGNhbiBicmVhayBpbnRvIGEg4oCcYnVyZ2Vy4oCdLW5hdmlnYXRpb25cbi8vIGhhcyB0byBiZSBjb250cm9sbGFibGUgdmlhIHRoZSBtYXJrdXAsIHdlIGhhdmUgdG8gbWFrZSB0aGUgY2xhc3Mtc2VsZWN0b3Jcbi8vIGdlbmVyYXRpb24gZHluYW1pYy4gQmVjYXVzZSB0aGlzIGFmZmVjdHMgYSBsb3Qgb2Ygc2VsZWN0b3JzLCB3ZSBwcm92aWRlIGFcbi8vIGxvY2FsIG1peGluIHRvIHByZXZlbnQgbXVsdGlwbGUgY29kZSBkdXBsaWNhdGlvbnMgb2YgU2FzcyBsb29wcyBhbmQgdGhlIHNhbWVcbi8vIG1lZGlhLXF1ZXJpZXMgYWxsIG92ZXIgdGhlIHBsYWNlLlxuLy8gQnkgcGFzc2luZyB0aGUgYCRwb3NgIHBhcmFtZXRlciwgdGhlIG1peGluIGFkZHMgdGhlIG1lZGlhIHF1ZXJ5IGBhYm92ZWAgb3Jcbi8vIGBiZWxvd2AgdGhlIGJyZWFrcG9pbnQuXG4vL1xuLy8gVGhpcyBkb2VzIG5vdCB3b3JrIHdpdGggbmVzdGVkIHNlbGVjdG9yIHJlZmVyZW5jaW5nIHBhcmVudCAoJikuXG4vLyBJTlZBTElEIGV4YW1wbGU6XG4vLyAuZm9vIHtcbi8vICAgICAuYmFyICYge1xuLy8gICAgICAgICBAaW5jbHVkZSBzaXRlLW5hdi1icmVha3BvaW50KFwiYWJvdmVcIikge1xuLy8gICAgICAgICAgICAgLi4uXG4vLyAgICAgICAgIH1cbi8vICAgICB9XG4vLyB9XG5AbWl4aW4gc2l0ZS1uYXYtYnJlYWtwb2ludCgkcG9zKSB7XG5cbiAgICAkcG9zOiBpZigkcG9zID09IFwiYmVsb3dcIiwgXCI8PVwiLCBcIj5cIik7XG5cbiAgICAvLyBVc2UgZGVmYXVsdCBicmVha3BvaW50IG9ubHkgaWYgbm8gb3RoZXIgYC5jLXNpdGUtbmF2LS1icmVha0A8QlJFQUtQT0lOVD5gXG4gICAgLy8gY2xhc3MgaXMgYXBwbGllZCB0byB0aGUgYC5jLXNpdGUtbmF2YCBlbGVtZW50IGluIHRoZSBtYXJrdXAuXG4gICAgLmMtc2l0ZS1uYXY6bm90KFtjbGFzcyo9XCJjLXNpdGUtbmF2LS1icmVha0BcIl0pICYge1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiI3skcG9zfSN7JHNpdGUtbmF2LWhlaWdodC1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLy8gR2VuZXJhdGUgbW9kaWZpZXIgY2xhc3NlcyB0byBiZSBhYmxlIHRvIGNvbnRyb2wgdGhlXG4gICAgLy8gYnJlYWtwb2ludCBvZiB0aGUgYC5jLXNpdGUtbmF2YCBlbGVtZW50IGluIHRoZSBtYXJrdXBcbiAgICAvLyB2aWEgYC5jLXNpdGUtbmF2LS1icmVha0A8QlJFQUtQT0lOVD5gIGNsYXNzZXMuXG4gICAgQGVhY2ggJGFsaWFzLCAkdmFsdWUgaW4gJEJSRUFLUE9JTlRTIHtcblxuICAgICAgICAvLyBHZW5lcmF0ZSByZXNwZWN0aXZlIG1lZGlhLXF1ZXJ5LlxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIiN7JHBvc30jeyRhbGlhc31cIikge1xuXG4gICAgICAgICAgICAvLyBHZW5lcmF0ZSByZXNwZWN0aXZlIHNlbGVjdG9yLlxuICAgICAgICAgICAgLmMtc2l0ZS1uYXYuYy1zaXRlLW5hdi0tYnJlYWtcXEAjeyRhbGlhc30gJiB7XG4gICAgICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLy8gTW9kaWZpZXIgY2xhc3MgdG8gc3VwcHJlc3MgYWxsIGFwcGxpZWQgQ1NTIHN0eWxlcyBmcm9tIHRoZSBjdXN0b21cbiAgICAvLyBicmVha3BvaW50IGBiZWxvd2AgYW5kIGZvcmNlIHRoZSBDU1Mgc3R5bGVzIGZyb20gdGhlIGN1c3RvbSBicmVha3BvaW50XG4gICAgLy8gYGFib3ZlYCBpbiBhbGwgdmlld3BvcnRzLiBDYW4gYmUgY29udHJvbGxlZCB2aWEgYC5jLXNpdGUtbmF2LS1icmVha0Bub25lYFxuICAgIC8vIGNsYXNzIG9uIHRoZSBgLmMtc2l0ZS1uYXZgIGVsZW1lbnQgaW4gdGhlIG1hcmt1cC5cbiAgICBAaWYgKCRwb3MgPT0gXCI+XCIpIHtcblxuICAgICAgICAuYy1zaXRlLW5hdi5jLXNpdGUtbmF2LS1icmVha1xcQG5vbmUgJiB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjU0lURS1OQVYgKFNldHRpbmdzKVxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRzaXRlLW5hdi1iYWNrZ3JvdW5kLWNvbG9yLWF0LWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICRDT0xPUi1CQVNFLUJBQ0tHUk9VTkQgIWRlZmF1bHQ7XG5cbiRzaXRlLW5hdi1kaXZpZGVyLWF0LWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuXG4kc2l0ZS1uYXYtdG9nZ2xlLWljb24tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uLXNpemUoeHNtYWxsKSAhZGVmYXVsdDtcblxuJHNpdGUtbmF2LWl0ZW0tc3BhY2luZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG5cbiRzaXRlLW5hdi1saW5rLWZsZXgtanVzdGlmeS1jb250ZW50OiAgICAgICAgICAgICAgICAgIHNwYWNlLWJldHdlZW4gIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtbGluay1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uLXNpemUoeHhzbWFsbCkgIWRlZmF1bHQ7XG5cbiRzaXRlLW5hdi1saW5rLWxhYmVsLXBhZGRpbmctdmVydGljYWwtYXQtYnJlYWtwb2ludDogICRfX1NLT0RBLVNQQUNJTkctU1RBVElDLTEyX18gIWRlZmF1bHQ7IC8vIHRhcmdldCBzaXplOiA0OHB4XG4kc2l0ZS1uYXYtbGluay1sYWJlbC1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtbGluay1sYWJlbC10ZXh0LWNvbG9yLWF0LWJyZWFrcG9pbnQ6ICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRzaXRlLW5hdi1saW5rLWxhYmVsLXRleHQtY29sb3ItaG92ZXItYXQtYnJlYWtwb2ludDogIGZhbHNlICFkZWZhdWx0O1xuJHNpdGUtbmF2LWxpbmstbGFiZWwtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgMS41ICFkZWZhdWx0O1xuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1NJVEUtTkFWXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNrb2RhLXNpdGUtbmF2LXRvZ2dsZS1pY29uLWV4cGFuZGVkOiAgICAgICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1jbG9zZSkgIWRlZmF1bHQ7XG5cbiRza29kYS1zaXRlLW5hdi1wYW5lbC1ib3gtc2hhZG93LWF0LWJyZWFrcG9pbnQ6ICAgICAgICAgJERST1AtU0hBRE9XLUwgIWRlZmF1bHQ7XG4kc2tvZGEtc2l0ZS1uYXYtcGFuZWwtc3BhY2luZy10b3AtYXQtYnJlYWtwb2ludDogICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiRza29kYS1zaXRlLW5hdi1wYW5lbC1zcGFjaW5nLWhvcml6b250YWwtYXQtYnJlYWtwb2ludDogJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kc2tvZGEtc2l0ZS1uYXYtcGFuZWwtYm9yZGVyLXJhZGl1cy1hdC1icmVha3BvaW50OiAgICAgICRHTE9CQUwtQk9SREVSLVJBRElVUyAhZGVmYXVsdDtcblxuJHNrb2RhLXNpdGUtbmF2LWxpbmstbGFiZWwtYm9yZGVyLWJvdHRvbTogICAgICAgICAgICAgICAycHggc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kc2tvZGEtc2l0ZS1uYXYtbGluay1mb2N1cy1vdXRsaW5lLXdpZHRoOiAgICAgICAgICAgICAgICRHTE9CQUwtRk9DVVMtV0lEVEggIWRlZmF1bHQ7XG4kc2tvZGEtc2l0ZS1uYXYtbGluay1mb2N1cy1vdXRsaW5lLW9mZnNldDogICAgICAgICAgICAgICRHTE9CQUwtRk9DVVMtT0ZGU0VULUxBUkdFICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBGbGlwIHRoZSBpY29uIGFyb3VuZCB0aGUgaG9yaXpvbnRhbCBheGlzIHNvIHRoYXQgdGhlIGNoZXZyb25zIHBvaW50IGluIHRoZVxuICogICAgIG9wcG9zaXRlIGRpcmVjdGlvbiBpbiB0aGUgZXhwYW5kZWQgc3RhdGUuXG4gKiBbMl0gQWRkIHNwYWNpbmcgYW5kIHNoYWRvdyB0byBwYW5lbCBpbiBzbWFsbCB2aWV3cG9ydHMuXG4gKiBbM10gU2V0IGFuIGludmlzaWJsZSBib3JkZXIgdG8gcHJldmVudCBsYXlvdXQgc2hpZnRzIHdoZW4gdGhlIGxpbmsgZ2V0cyBhY3RpdmUuXG4gKi9cblxuLmMtc2l0ZS1uYXZfX25hdiB7XG59XG5cbi5jLXNpdGUtbmF2X19wYW5lbCB7XG5cbiAgICBAaW5jbHVkZSBzaXRlLW5hdi1icmVha3BvaW50KFwiYmVsb3dcIikgeyAvKiBbMl0gKi9cbiAgICAgICAgbGVmdDogJHNrb2RhLXNpdGUtbmF2LXBhbmVsLXNwYWNpbmctaG9yaXpvbnRhbC1hdC1icmVha3BvaW50O1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMiAqICN7JHNrb2RhLXNpdGUtbmF2LXBhbmVsLXNwYWNpbmctaG9yaXpvbnRhbC1hdC1icmVha3BvaW50fSk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG1hcmdpbi10b3A6ICRza29kYS1zaXRlLW5hdi1wYW5lbC1zcGFjaW5nLXRvcC1hdC1icmVha3BvaW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc2tvZGEtc2l0ZS1uYXYtcGFuZWwtYm9yZGVyLXJhZGl1cy1hdC1icmVha3BvaW50O1xuICAgICAgICBib3gtc2hhZG93OiAkc2tvZGEtc2l0ZS1uYXYtcGFuZWwtYm94LXNoYWRvdy1hdC1icmVha3BvaW50O1xuICAgIH1cblxufVxuXG4uYy1zaXRlLW5hdl9fdG9nZ2xlIHtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbi5jLXNpdGUtbmF2X190b2dnbGUtaWNvbiB7XG5cbiAgICAuYy1zaXRlLW5hdl9fdG9nZ2xlI3skc2l0ZS1uYXYtdG9nZ2xlLXN0YXRlLWV4cGFuZGVkfSAmIHtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJHNrb2RhLXNpdGUtbmF2LXRvZ2dsZS1pY29uLWV4cGFuZGVkO1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuLmMtc2l0ZS1uYXZfX2xpbmstaWNvbiB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbigkdHJhbnNpdGlvbi1wcm9wZXJ0eTogXCJ0cmFuc2Zvcm1cIik7XG5cbiAgICAuYy1zaXRlLW5hdl9fbGluayN7JHNpdGUtbmF2LWxpbmstc3RhdGUtZXhwYW5kZWR9ICYge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7IC8qIFsxXSAqL1xuICAgIH1cbn1cblxuXG4uYy1zaXRlLW5hdl9fbGluayB7XG5cbiAgICAuYy1zaXRlLW5hdl9fbGluay1sYWJlbCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRza29kYS1zaXRlLW5hdi1saW5rLWxhYmVsLWJvcmRlci1ib3R0b207IC8qIFszXSAqL1xuICAgIH1cblxuICAgICYjeyRzaXRlLW5hdi10b2dnbGUtc3RhdGUtZXhwYW5kZWR9LFxuICAgICYuaXMtYWN0aXZlIHtcblxuICAgICAgICAuYy1zaXRlLW5hdl9fbGluay1sYWJlbCB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogY3VycmVudENvbG9yO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBAaW5jbHVkZSBmb2N1cy1zdHlsZXMoXG4gICAgICAgICAgICAkb3V0bGluZS13aWR0aDogICRza29kYS1zaXRlLW5hdi1saW5rLWZvY3VzLW91dGxpbmUtd2lkdGgsXG4gICAgICAgICAgICAkb3V0bGluZS1vZmZzZXQ6ICRza29kYS1zaXRlLW5hdi1saW5rLWZvY3VzLW91dGxpbmUtb2Zmc2V0LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIE92ZXJyaWRlIGRlZmF1bHQuc2l0ZS1uYXZcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZS13aWR0aDogJHNrb2RhLXNpdGUtbmF2LWxpbmstZm9jdXMtb3V0bGluZS13aWR0aCAhaW1wb3J0YW50OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGl0Y3NzL25vLWF0LWltcG9ydGFudCAqL1xuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1NJVEUtTkFWLURST1BET1dOXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gRGVmYXVsdCB2YWx1ZSBmb3IgQmx1ZWxhYmVsIChodHRwczovL3pwbC5pby9hNzFxMUsyKVxuJHNpdGUtbmF2LWRyb3Bkb3duLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMTJweCAhZGVmYXVsdDtcbiRzaXRlLW5hdi1kcm9wZG93bi10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAwJSAhZGVmYXVsdDtcbiRzaXRlLW5hdi1kcm9wZG93bi1vZmZzZXQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcbiRzaXRlLW5hdi1kcm9wZG93bi1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJHNpdGUtbmF2LWRyb3Bkb3duLXN0YXRlLWNvbGxhcHNlZDogICAgICAgICAgICAgICAgICAgICAgICBcIi5pcy1jb2xsYXBzZWRcIiAhZGVmYXVsdDtcbiRzaXRlLW5hdi1kcm9wZG93bi1oYXMtdHJhbnNpdGlvbjogICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcblxuJHNpdGUtbmF2LWRyb3Bkb3duLWxpc3QtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRzaXRlLW5hdi1kcm9wZG93bi1saXN0LXBhZGRpbmctaG9yaXpvbnRhbC1hdC1icmVha3BvaW50OiAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtZHJvcGRvd24tbGlzdC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiRzaXRlLW5hdi1kcm9wZG93bi1saXN0LXBhZGRpbmctdmVydGljYWwtYXQtYnJlYWtwb2ludDogICAgMCAhZGVmYXVsdDtcblxuJHNpdGUtbmF2LWRyb3Bkb3duLXRpdGxlLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHNpdGUtbmF2LWRyb3Bkb3duLXRpdGxlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAkRlMtMSAhZGVmYXVsdDtcbiRzaXRlLW5hdi1kcm9wZG93bi10aXRsZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJHNpdGUtbmF2LWRyb3Bkb3duLXRpdGxlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtZHJvcGRvd24tdGl0bGUtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJHNpdGUtbmF2LWRyb3Bkb3duLXRpdGxlLXBhZGRpbmctaG9yaXpvbnRhbC1hdC1icmVha3BvaW50OiAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtZHJvcGRvd24tdGl0bGUtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiRzaXRlLW5hdi1kcm9wZG93bi10aXRsZS1wYWRkaW5nLXZlcnRpY2FsLWF0LWJyZWFrcG9pbnQ6ICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJHNpdGUtbmF2LWRyb3Bkb3duLXRpdGxlLW1hcmdpbi1ib3R0b206ICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHNpdGUtbmF2LWRyb3Bkb3duLXRpdGxlLXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcblxuJHNpdGUtbmF2LWRyb3Bkb3duLWl0ZW0tbWFyZ2luLWJvdHRvbTogICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHNpdGUtbmF2LWRyb3Bkb3duLWl0ZW0tYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAxcHggIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtZHJvcGRvd24taXRlbS1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1TVUJUTEUgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtZHJvcGRvd24taXRlbS1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzaXRlLW5hdi1kcm9wZG93bi1pdGVtLWJvcmRlci13aWR0aCBzb2xpZCAkc2l0ZS1uYXYtZHJvcGRvd24taXRlbS1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG5cbiRzaXRlLW5hdi1kcm9wZG93bi1saW5rLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRzaXRlLW5hdi1kcm9wZG93bi1saW5rLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgJEZTMCAhZGVmYXVsdDtcbiRzaXRlLW5hdi1kcm9wZG93bi1saW5rLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xEICFkZWZhdWx0O1xuJHNpdGUtbmF2LWRyb3Bkb3duLWxpbmstY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtZHJvcGRvd24tbGluay1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRzaXRlLW5hdi1kcm9wZG93bi1saW5rLWNvbG9yLWFjdGl2ZTogICAgICAgICAgICAgICAgICAgICAgJHNpdGUtbmF2LWRyb3Bkb3duLWxpbmstY29sb3ItaG92ZXIgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtZHJvcGRvd24tbGluay1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJHNpdGUtbmF2LWRyb3Bkb3duLWxpbmstcGFkZGluZy1ob3Jpem9udGFsLWF0LWJyZWFrcG9pbnQ6ICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtZHJvcGRvd24tbGluay1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiRzaXRlLW5hdi1kcm9wZG93bi1saW5rLXBhZGRpbmctdmVydGljYWwtYXQtYnJlYWtwb2ludDogICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJHNpdGUtbmF2LWRyb3Bkb3duLWxpbmstYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRzaXRlLW5hdi1kcm9wZG93bi1saW5rLWJhY2tncm91bmQtY29sb3ItYWN0aXZlOiAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtZHJvcGRvd24tbGluay10ZXh0LWRlY29yYXRpb246ICAgICAgICAgICAgICAgICAgIG5vbmUgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtZHJvcGRvd24tbGluay10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBJZiB0aGVyZSBpcyBtb3JlIHRoZW4gb25lIGAuYy1zaXRlLW5hdl9fbmF2YCwgYWx3YXlzIGFsaWduIHRoZSBkcm9wZG93blxuICogICAgIG9mIHRoZSBsYXN0IGAuYy1zaXRlLW5hdl9fbmF2YCB0byB0aGUgcmlnaHQuXG4gKiBbMl0gTWFrZSB0aGUgdHJhbnNpdGlvbiBqdXN0IGF2YWlsYWJsZSBmb3Igdmlld3BvcnQgd2lkdGggYWJvdmUgYnJlYWtwb2ludC5cbiAqIFszXSBDaGFuZ2UgdGhlIGxpc3QncyBwb3NpdGlvbiBmb3IgZmx5LWluIGFuZCBmbHktb3V0IGVmZmVjdHMuXG4gKiBbNF0gQXQgYnJlYWtwb2ludCwgdGhlIGRyb3Bkb3duIGFsd2F5cyBoYXMgZnVsbCB3aWR0aC5cbiAqIFs1XSBEZWZlbnNpdmVseSByZXNldCBhbnkgZGVmYXVsdCBsaXN0LXN0eWxlIHByb3BlcnRpZXMuXG4gKi9cbi5jLXNpdGUtbmF2LWRyb3Bkb3duIHtcbiAgICBtYXgtaGVpZ2h0OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgQGluY2x1ZGUgc2l0ZS1uYXYtYnJlYWtwb2ludChcImFib3ZlXCIpIHtcbiAgICAgICAgQGlmICgkc2l0ZS1uYXYtZHJvcGRvd24taGFzLXRyYW5zaXRpb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oKTsgLyogWzJdICovXG4gICAgICAgIH1cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6ICRzaXRlLW5hdi1kcm9wZG93bi10b3A7XG4gICAgICAgIGxlZnQ6ICRzaXRlLW5hdi1kcm9wZG93bi1vZmZzZXQ7XG4gICAgICAgIHdpZHRoOiAkc2l0ZS1uYXYtZHJvcGRvd24td2lkdGg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc2l0ZS1uYXYtYnJlYWtwb2ludChcImJlbG93XCIpIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IC8qIFs0XSAqL1xuICAgIH1cblxuICAgICY6bm90KCN7JHNpdGUtbmF2LWRyb3Bkb3duLXN0YXRlLWNvbGxhcHNlZH0pIHtcbiAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG5cbn1cblxuLmMtc2l0ZS1uYXZfX25hdjpsYXN0LWNoaWxkOm5vdCg6b25seS1jaGlsZCkgLmMtc2l0ZS1uYXYtZHJvcGRvd24ge1xuXG4gICAgQGluY2x1ZGUgc2l0ZS1uYXYtYnJlYWtwb2ludChcImFib3ZlXCIpIHtcbiAgICAgICAgcmlnaHQ6IDA7IC8qIFsxXSAqL1xuICAgICAgICBsZWZ0OiBhdXRvOyAvKiBbMV0gKi9cbiAgICB9XG5cbn1cblxuXG4gICAgLmMtc2l0ZS1uYXYtZHJvcGRvd25fX2xpc3Qge1xuICAgICAgICBtYXJnaW46IDA7IC8qIFs1XSAqL1xuICAgICAgICBwYWRkaW5nOiAkc2l0ZS1uYXYtZHJvcGRvd24tbGlzdC1wYWRkaW5nLXZlcnRpY2FsICRzaXRlLW5hdi1kcm9wZG93bi1saXN0LXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsgLyogWzNdICovXG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7IC8qIFs1XSAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2l0ZS1uYXYtZHJvcGRvd24tYmFja2dyb3VuZC1jb2xvcjtcblxuICAgICAgICBAaW5jbHVkZSBzaXRlLW5hdi1icmVha3BvaW50KFwiYWJvdmVcIikge1xuICAgICAgICAgICAgQGlmICgkc2l0ZS1uYXYtZHJvcGRvd24taGFzLXRyYW5zaXRpb24pIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCk7IC8qIFsyXSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgc2l0ZS1uYXYtYnJlYWtwb2ludChcImJlbG93XCIpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXG4gICAgICAgICAgICAgICAgKFwicGFkZGluZy10b3BcIiwgICAgJHNpdGUtbmF2LWRyb3Bkb3duLWxpc3QtcGFkZGluZy12ZXJ0aWNhbC1hdC1icmVha3BvaW50KSxcbiAgICAgICAgICAgICAgICAoXCJwYWRkaW5nLWxlZnRcIiwgICAkc2l0ZS1uYXYtZHJvcGRvd24tbGlzdC1wYWRkaW5nLWhvcml6b250YWwtYXQtYnJlYWtwb2ludCksXG4gICAgICAgICAgICAgICAgKFwicGFkZGluZy1yaWdodFwiLCAgJHNpdGUtbmF2LWRyb3Bkb3duLWxpc3QtcGFkZGluZy1ob3Jpem9udGFsLWF0LWJyZWFrcG9pbnQpLFxuICAgICAgICAgICAgICAgIChcInBhZGRpbmctYm90dG9tXCIsICRzaXRlLW5hdi1kcm9wZG93bi1saXN0LXBhZGRpbmctdmVydGljYWwtYXQtYnJlYWtwb2ludCksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtc2l0ZS1uYXYtZHJvcGRvd246bm90KCN7JHNpdGUtbmF2LWRyb3Bkb3duLXN0YXRlLWNvbGxhcHNlZH0pICYge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyAvKiBbM10gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtc2l0ZS1uYXYtZHJvcGRvd25fX3RpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoJHNpdGUtbmF2LWRyb3Bkb3duLXRpdGxlLWZvbnQtc2l6ZSk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkc2l0ZS1uYXYtZHJvcGRvd24tdGl0bGUtbWFyZ2luLWJvdHRvbTtcbiAgICAgICAgcGFkZGluZzogJHNpdGUtbmF2LWRyb3Bkb3duLXRpdGxlLXBhZGRpbmctdmVydGljYWwgJHNpdGUtbmF2LWRyb3Bkb3duLXRpdGxlLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRzaXRlLW5hdi1kcm9wZG93bi10aXRsZS1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRzaXRlLW5hdi1kcm9wZG93bi10aXRsZS1mb250LXdlaWdodDtcbiAgICAgICAgY29sb3I6ICRzaXRlLW5hdi1kcm9wZG93bi10aXRsZS1jb2xvcjtcblxuICAgICAgICBAaWYgKCRzaXRlLW5hdi1kcm9wZG93bi10aXRsZS10ZXh0LXRyYW5zZm9ybSkge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRzaXRlLW5hdi1kcm9wZG93bi10aXRsZS10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIHNpdGUtbmF2LWJyZWFrcG9pbnQoXCJiZWxvd1wiKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFxuICAgICAgICAgICAgICAgIChcInBhZGRpbmctdG9wXCIsICAgICRzaXRlLW5hdi1kcm9wZG93bi10aXRsZS1wYWRkaW5nLXZlcnRpY2FsLWF0LWJyZWFrcG9pbnQpLFxuICAgICAgICAgICAgICAgIChcInBhZGRpbmctbGVmdFwiLCAgICRzaXRlLW5hdi1kcm9wZG93bi10aXRsZS1wYWRkaW5nLWhvcml6b250YWwtYXQtYnJlYWtwb2ludCksXG4gICAgICAgICAgICAgICAgKFwicGFkZGluZy1yaWdodFwiLCAgJHNpdGUtbmF2LWRyb3Bkb3duLXRpdGxlLXBhZGRpbmctaG9yaXpvbnRhbC1hdC1icmVha3BvaW50KSxcbiAgICAgICAgICAgICAgICAoXCJwYWRkaW5nLWJvdHRvbVwiLCAkc2l0ZS1uYXYtZHJvcGRvd24tdGl0bGUtcGFkZGluZy12ZXJ0aWNhbC1hdC1icmVha3BvaW50KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXNpdGUtbmF2LWRyb3Bkb3duX19pdGVtIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNpdGUtbmF2LWRyb3Bkb3duLWl0ZW0tbWFyZ2luLWJvdHRvbTtcblxuICAgICAgICBAaWYgKCRzaXRlLW5hdi1kcm9wZG93bi1pdGVtLWJvcmRlcikge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNpdGUtbmF2LWRyb3Bkb3duLWl0ZW0tYm9yZGVyO1xuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc2l0ZS1uYXYtYnJlYWtwb2ludChcImJlbG93XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXNpdGUtbmF2LWRyb3Bkb3duX19saW5rIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoJHNpdGUtbmF2LWRyb3Bkb3duLWxpbmstZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogJHNpdGUtbmF2LWRyb3Bkb3duLWxpbmstcGFkZGluZy12ZXJ0aWNhbCAkc2l0ZS1uYXYtZHJvcGRvd24tbGluay1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkc2l0ZS1uYXYtZHJvcGRvd24tbGluay1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRzaXRlLW5hdi1kcm9wZG93bi1saW5rLWZvbnQtd2VpZ2h0O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRzaXRlLW5hdi1kcm9wZG93bi1saW5rLXRleHQtZGVjb3JhdGlvbjtcbiAgICAgICAgY29sb3I6ICRzaXRlLW5hdi1kcm9wZG93bi1saW5rLWNvbG9yO1xuXG4gICAgICAgIEBpZiAoJHNpdGUtbmF2LWRyb3Bkb3duLWxpbmstdGV4dC10cmFuc2Zvcm0pIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiAkc2l0ZS1uYXYtZHJvcGRvd24tbGluay10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIHNpdGUtbmF2LWJyZWFrcG9pbnQoXCJiZWxvd1wiKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFxuICAgICAgICAgICAgICAgIChcInBhZGRpbmctdG9wXCIsICAgICRzaXRlLW5hdi1kcm9wZG93bi1saW5rLXBhZGRpbmctdmVydGljYWwtYXQtYnJlYWtwb2ludCksXG4gICAgICAgICAgICAgICAgKFwicGFkZGluZy1sZWZ0XCIsICAgJHNpdGUtbmF2LWRyb3Bkb3duLWxpbmstcGFkZGluZy1ob3Jpem9udGFsLWF0LWJyZWFrcG9pbnQpLFxuICAgICAgICAgICAgICAgIChcInBhZGRpbmctcmlnaHRcIiwgICRzaXRlLW5hdi1kcm9wZG93bi1saW5rLXBhZGRpbmctaG9yaXpvbnRhbC1hdC1icmVha3BvaW50KSxcbiAgICAgICAgICAgICAgICAoXCJwYWRkaW5nLWJvdHRvbVwiLCAkc2l0ZS1uYXYtZHJvcGRvd24tbGluay1wYWRkaW5nLXZlcnRpY2FsLWF0LWJyZWFrcG9pbnQpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgQGlmICgkc2l0ZS1uYXYtZHJvcGRvd24tbGluay1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNpdGUtbmF2LWRyb3Bkb3duLWxpbmstYmFja2dyb3VuZC1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbG9yOiAkc2l0ZS1uYXYtZHJvcGRvd24tbGluay1jb2xvci1ob3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtYWN0aXZlLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpZiAoJHNpdGUtbmF2LWRyb3Bkb3duLWxpbmstYmFja2dyb3VuZC1jb2xvci1hY3RpdmUpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2l0ZS1uYXYtZHJvcGRvd24tbGluay1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbG9yOiAkc2l0ZS1uYXYtZHJvcGRvd24tbGluay1jb2xvci1hY3RpdmU7XG4gICAgICAgIH1cblxuICAgIH1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNTSVRFLU5BVi1EUk9QRE9XTiAoU2V0dGluZ3MpXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNpdGUtbmF2LWRyb3Bkb3duLWhhcy10cmFuc2l0aW9uOiAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcblxuJHNpdGUtbmF2LWRyb3Bkb3duLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQkFTRS1CQUNLR1JPVU5EICFkZWZhdWx0O1xuXG4kc2l0ZS1uYXYtZHJvcGRvd24tbGlzdC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtZHJvcGRvd24tbGlzdC1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG5cbiRzaXRlLW5hdi1kcm9wZG93bi10aXRsZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgJEZTLTIgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtZHJvcGRvd24tdGl0bGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1PTi1TVVJGQUNFLTUwMCAhZGVmYXVsdDtcblxuJHNpdGUtbmF2LWRyb3Bkb3duLWl0ZW0tYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcblxuJHNpdGUtbmF2LWRyb3Bkb3duLWxpbmstcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAkX19TS09EQS1TUEFDSU5HLVNUQVRJQy0xMl9fICFkZWZhdWx0OyAvLyB0YXJnZXQgc2l6ZTogNDhweFxuJHNpdGUtbmF2LWRyb3Bkb3duLWxpbmstcGFkZGluZy12ZXJ0aWNhbC1hdC1icmVha3BvaW50OiAkc2l0ZS1uYXYtZHJvcGRvd24tbGluay1wYWRkaW5nLXZlcnRpY2FsICFkZWZhdWx0O1xuJHNpdGUtbmF2LWRyb3Bkb3duLWxpbmstZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtZHJvcGRvd24tbGluay1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgIGluaGVyaXQgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtZHJvcGRvd24tbGluay1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICAgICAgIGluaGVyaXQgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtZHJvcGRvd24tbGluay1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiAgICAgICAgICRDT0xPUi1TVVJGQUNFLVBSSU1BUlkgIWRlZmF1bHQ7XG4kc2l0ZS1uYXYtZHJvcGRvd24tbGluay1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZTogICAgICAgICRzaXRlLW5hdi1kcm9wZG93bi1saW5rLWJhY2tncm91bmQtY29sb3ItaG92ZXIgIWRlZmF1bHQ7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjU0lURS1OQVZcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2tvZGEtc2l0ZS1uYXYtZHJvcGRvd24tdG9wLW9mZnNldDogICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiRza29kYS1zaXRlLW5hdi1kcm9wZG93bi1ib3JkZXItcmFkaXVzOiAgICAgJEdMT0JBTC1CT1JERVItUkFESVVTICFkZWZhdWx0O1xuJHNrb2RhLXNpdGUtbmF2LWRyb3Bkb3duLWRyb3Atc2hhZG93OiAgICAgICAkRFJPUC1TSEFET1ctTCAhZGVmYXVsdDtcbiRza29kYS1zaXRlLW5hdi1kcm9wZG93bi10aXRsZS1wYWRkaW5nLXRvcDogJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG5cbi8qKlxuICogMS4gVHJhbnNpdGlvbiB0aGUgb3BhY2l0eSBiZWNhdXNlIGEgc2xpZGUtaW4gdHJhbnNpdGlvbiB3b3VsZCBub3Qgd29yayB2ZXJ5XG4gKiAgICB3ZWxsIHdpdGggdGhlIGJveCBzaGFkb3cgb2YgdGhlIGNvbXBvbmVudC5cbiAqL1xuXG4uYy1zaXRlLW5hdi1kcm9wZG93biB7XG5cbiAgICBAaW5jbHVkZSBzaXRlLW5hdi1icmVha3BvaW50KFwiYWJvdmVcIikge1xuXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oKTtcbiAgICAgICAgbWFyZ2luLXRvcDogJHNrb2RhLXNpdGUtbmF2LWRyb3Bkb3duLXRvcC1vZmZzZXQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRza29kYS1zaXRlLW5hdi1kcm9wZG93bi1ib3JkZXItcmFkaXVzO1xuICAgICAgICBib3gtc2hhZG93OiAkc2tvZGEtc2l0ZS1uYXYtZHJvcGRvd24tZHJvcC1zaGFkb3c7XG4gICAgICAgIG9wYWNpdHk6IDA7IC8qIFsxXSAqL1xuXG4gICAgICAgICY6bm90KCN7JHNpdGUtbmF2LWRyb3Bkb3duLXN0YXRlLWNvbGxhcHNlZH0pIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7IC8qIFsxXSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuLmMtc2l0ZS1uYXYtZHJvcGRvd25fX3RpdGxlIHtcbiAgICBwYWRkaW5nLXRvcDogJHNrb2RhLXNpdGUtbmF2LWRyb3Bkb3duLXRpdGxlLXBhZGRpbmctdG9wO1xufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0NPTlRFWFQgQkFSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGNvbnRleHQtYmFyLWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICAgICAgJEdMT0JBTC1QQUdFLUhFQUQtQlJFQUtQT0lOVCAhZGVmYXVsdDtcbiRjb250ZXh0LWJhci1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICRHTE9CQUwtUEFHRS1IRUFELU1PRFVMRS1JQ09OLVNJWkUgIWRlZmF1bHQ7XG4kY29udGV4dC1iYXItaWNvbi1zaXplLWF0LWJyZWFrcG9pbnQ6ICAgICAkR0xPQkFMLVBBR0UtSEVBRC1NT0RVTEUtSUNPTi1TSVpFLUFULUJSRUFLUE9JTlQgIWRlZmF1bHQ7XG4kY29udGV4dC1iYXItaWNvbi1yb3VuZC1zaXplOiAgICAgICAgICAgICAkY29udGV4dC1iYXItaWNvbi1zaXplICFkZWZhdWx0O1xuJGNvbnRleHQtYmFyLWljb24taGFzLWxhYmVsOiAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kY29udGV4dC1iYXItaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kY29udGV4dC1iYXItaWNvbi1pcy1yb3VuZDogICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRjb250ZXh0LWJhci1pY29uLWJhY2tncm91bmQtY29sb3I6ICAgICAgICRDT0xPUi1CTEFDSyAhZGVmYXVsdDtcbiRjb250ZXh0LWJhci1pY29uLWJvcmRlci1jb2xvcjogICAgICAgICAgICRjb250ZXh0LWJhci1pY29uLWJhY2tncm91bmQtY29sb3IgIWRlZmF1bHQ7XG4kY29udGV4dC1iYXItaXRlbS1zcGFjaW5nLWhvcml6b250YWw6ICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRjb250ZXh0LWJhci1uYXYtbGFiZWwtdGV4dC1jb2xvcjogICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kY29udGV4dC1iYXItbmF2LWxhYmVsLWZvbnQtd2VpZ2h0OiAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQgIWRlZmF1bHQ7XG4kY29udGV4dC1iYXItbmF2LWxhYmVsLWZvbnQtc2l6ZTogICAgICAgICAkRlMtMyAhZGVmYXVsdDtcbiRjb250ZXh0LWJhci1uYXYtbGFiZWwtYnJlYWtwb2ludDogICAgICAgICRHTE9CQUwtUEFHRS1IRUFELUJSRUFLUE9JTlQgIWRlZmF1bHQ7XG4kY29udGV4dC1iYXItbmF2LWxhYmVsLXRpdGxlLWZvbnQtd2VpZ2h0OiAkY29udGV4dC1iYXItbmF2LWxhYmVsLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJGNvbnRleHQtYmFyLW5hdi1sYWJlbC10aXRsZS10ZXh0LWNvbG9yOiAgJGNvbnRleHQtYmFyLW5hdi1sYWJlbC10ZXh0LWNvbG9yICFkZWZhdWx0O1xuJGNvbnRleHQtYmFyLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1QQUdFLUhFQUQtSEVJR0hUICFkZWZhdWx0O1xuJGNvbnRleHQtYmFyLWhlaWdodC1hdC1icmVha3BvaW50OiAgICAgICAgJEdMT0JBTC1QQUdFLUhFQUQtSEVJR0hULUFULUJSRUFLUE9JTlQgIWRlZmF1bHQ7XG4kY29udGV4dC1iYXItbGluay10ZXh0LWRlY29yYXRpb246ICAgICAgICBub25lICFkZWZhdWx0O1xuJGNvbnRleHQtYmFyLWxpbmstdGV4dC1jb2xvcjogICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gVG9nZ2xlIHZpc2liaWxpdHkgb2YgbGFiZWwgdW5kZXJuZWF0aCBjb250ZXh0IGJhciBpY29uLlxuKi9cblxuLmMtY29udGV4dC1iYXIge1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXCJoZWlnaHRcIiwgJGNvbnRleHQtYmFyLWhlaWdodCk7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRjb250ZXh0LWJhci1icmVha3BvaW50fVwiKSB7XG4gICAgICAgIGhlaWdodDogJGNvbnRleHQtYmFyLWhlaWdodC1hdC1icmVha3BvaW50O1xuICAgIH1cblxufVxuXG4gICAgLmMtY29udGV4dC1iYXJfX3BhbmVsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmMtY29udGV4dC1iYXJfX25hdnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5jLWNvbnRleHQtYmFyX19uYXYge1xuICAgICAgICBAaW5jbHVkZSBsaXN0LWJhcmUoKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuYy1jb250ZXh0LWJhcl9fdGl0bGUge1xuICAgICAgICBmb250LXdlaWdodDogJGNvbnRleHQtYmFyLW5hdi1sYWJlbC10aXRsZS1mb250LXdlaWdodDtcbiAgICAgICAgY29sb3I6ICRjb250ZXh0LWJhci1uYXYtbGFiZWwtdGl0bGUtdGV4dC1jb2xvcjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skY29udGV4dC1iYXItbmF2LWxhYmVsLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYy1jb250ZXh0LWJhcl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtYXJnaW4tbGVmdDogJGNvbnRleHQtYmFyLWl0ZW0tc3BhY2luZy1ob3Jpem9udGFsO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRjb250ZXh0LWJhci1saW5rLXRleHQtZGVjb3JhdGlvbjtcbiAgICAgICAgY29sb3I6ICRjb250ZXh0LWJhci1uYXYtbGFiZWwtdGV4dC1jb2xvcjtcbiAgICB9XG5cbiAgICAuYy1jb250ZXh0LWJhcl9faWNvbiB7XG4gICAgICAgIGNvbG9yOiAkY29udGV4dC1iYXItaWNvbi1jb2xvcjtcblxuICAgICAgICBAaWYgKCRjb250ZXh0LWJhci1pY29uLWlzLXJvdW5kKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBpY29uLXZhcmlhbnQoXG4gICAgICAgICAgICAgICAgJHZhcmlhbnQ6ICAgICAgICAgIFwicm91bmRcIixcbiAgICAgICAgICAgICAgICAkYmFja2dyb3VuZC1jb2xvcjogJGNvbnRleHQtYmFyLWljb24tYmFja2dyb3VuZC1jb2xvcixcbiAgICAgICAgICAgICAgICAkYm9yZGVyLWNvbG9yOiAgICAgJGNvbnRleHQtYmFyLWljb24tYm9yZGVyLWNvbG9yLFxuICAgICAgICAgICAgICAgICRzaXplOiAgICAgICAgICAgICAkY29udGV4dC1iYXItaWNvbi1yb3VuZC1zaXplXG4gICAgICAgICAgICApO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogaWNvbi1zaXplKCRjb250ZXh0LWJhci1pY29uLXNpemUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGNvbnRleHQtYmFyLW5hdi1sYWJlbC1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IGljb24tc2l6ZSgkY29udGV4dC1iYXItaWNvbi1zaXplLWF0LWJyZWFrcG9pbnQpO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBAaWYgKCRjb250ZXh0LWJhci1pY29uLWhhcy1sYWJlbCkgeyAvKiBbMV0gKi9cbiAgICAgICAgLmMtY29udGV4dC1iYXJfX2ljb24tbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogJGNvbnRleHQtYmFyLW5hdi1sYWJlbC1mb250LXNpemVcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbnRleHQtYmFyLWxpbmstdGV4dC1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICAuYy1jb250ZXh0LWJhcl9faWNvbi1sYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjQ09OVEVYVCBCQVIgKFNldHRpbmdzKVxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRjb250ZXh0LWJhci1pY29uLWNvbG9yOiAgICAgICAgICAgICAgaW5oZXJpdCAhZGVmYXVsdDtcbiRjb250ZXh0LWJhci1pdGVtLXNwYWNpbmctaG9yaXpvbnRhbDogMCAhZGVmYXVsdDsgLy8gc3BhY2luZyBjcmVhdGVkIHZpc3VhbGx5IHZpYSBzaXplXG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjREFUQS1PVkVSVklFV1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRkYXRhLW92ZXJ2aWV3LWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICBzICFkZWZhdWx0O1xuJGRhdGEtb3ZlcnZpZXctYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICRDT0xPUi1QQUxFICFkZWZhdWx0O1xuJGRhdGEtb3ZlcnZpZXctYm94LXNoYWRvdzogICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGRhdGEtb3ZlcnZpZXctYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kZGF0YS1vdmVydmlldy1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbi8vIFBhZGRpbmdzXG4kZGF0YS1vdmVydmlldy1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kZGF0YS1vdmVydmlldy1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kZGF0YS1vdmVydmlldy1wYWRkaW5nLXRvcDogICAgICAgICAgICAgICAgICAgICAgICAgJGRhdGEtb3ZlcnZpZXctcGFkZGluZy12ZXJ0aWNhbCAhZGVmYXVsdDtcbiRkYXRhLW92ZXJ2aWV3LXBhZGRpbmctcmlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAkZGF0YS1vdmVydmlldy1wYWRkaW5nLWhvcml6b250YWwgIWRlZmF1bHQ7XG4kZGF0YS1vdmVydmlldy1wYWRkaW5nLWJvdHRvbTogICAgICAgICAgICAgICAgICAgICAgJGRhdGEtb3ZlcnZpZXctcGFkZGluZy12ZXJ0aWNhbCAhZGVmYXVsdDtcbiRkYXRhLW92ZXJ2aWV3LXBhZGRpbmctbGVmdDogICAgICAgICAgICAgICAgICAgICAgICAkZGF0YS1vdmVydmlldy1wYWRkaW5nLWhvcml6b250YWwgIWRlZmF1bHQ7XG4vLyBQYWRkaW5ncyBhdCBicmVha3BvaW50IChvcHRpb25hbClcbiRkYXRhLW92ZXJ2aWV3LXJlZHVjZS1wYWRkaW5nLWF0LWJyZWFrcG9pbnQ6ICAgICAgICB0cnVlICFkZWZhdWx0O1xuJGRhdGEtb3ZlcnZpZXctcGFkZGluZy12ZXJ0aWNhbC1hdC1icmVha3BvaW50OiAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJGRhdGEtb3ZlcnZpZXctcGFkZGluZy1ob3Jpem9udGFsLWF0LWJyZWFrcG9pbnQ6ICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJGRhdGEtb3ZlcnZpZXctcGFkZGluZy10b3AtYXQtYnJlYWtwb2ludDogICAgICAgICAgICRkYXRhLW92ZXJ2aWV3LXBhZGRpbmctdmVydGljYWwtYXQtYnJlYWtwb2ludCAhZGVmYXVsdDtcbiRkYXRhLW92ZXJ2aWV3LXBhZGRpbmctcmlnaHQtYXQtYnJlYWtwb2ludDogICAgICAgICAkZGF0YS1vdmVydmlldy1wYWRkaW5nLWhvcml6b250YWwtYXQtYnJlYWtwb2ludCAhZGVmYXVsdDtcbiRkYXRhLW92ZXJ2aWV3LXBhZGRpbmctYm90dG9tLWF0LWJyZWFrcG9pbnQ6ICAgICAgICAkZGF0YS1vdmVydmlldy1wYWRkaW5nLXZlcnRpY2FsLWF0LWJyZWFrcG9pbnQgIWRlZmF1bHQ7XG4kZGF0YS1vdmVydmlldy1wYWRkaW5nLWxlZnQtYXQtYnJlYWtwb2ludDogICAgICAgICAgJGRhdGEtb3ZlcnZpZXctcGFkZGluZy1ob3Jpem9udGFsLWF0LWJyZWFrcG9pbnQgIWRlZmF1bHQ7XG5cbiRkYXRhLW92ZXJ2aWV3LWhlYWRlci1zcGFjaW5nLWJvdHRvbTogICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRkYXRhLW92ZXJ2aWV3LWhlYWRlci1zcGFjaW5nLWJvdHRvbS1hdC1icmVha3BvaW50OiAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRkYXRhLW92ZXJ2aWV3LWhlYWRlci1pdGVtcy1zcGFjaW5nLWhvcml6b250YWw6ICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRkYXRhLW92ZXJ2aWV3LWhlYWRlci1pdGVtcy1zcGFjaW5nLXZlcnRpY2FsOiAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRkYXRhLW92ZXJ2aWV3LWhlYWRlci1pdGVtcy13cmFwcGluZy13aWR0aDogICAgICAgICA1ZW0gIWRlZmF1bHQ7XG4kZGF0YS1vdmVydmlldy1oZWFkZXItY29udGVudC1qdXN0aWZpY2F0aW9uOiAgICAgICAgc3BhY2UtYmV0d2VlbiAhZGVmYXVsdDtcblxuJGRhdGEtb3ZlcnZpZXctZW5hYmxlLWljb246ICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kZGF0YS1vdmVydmlldy1pY29uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtZWRpdCkgIWRlZmF1bHQ7XG4kZGF0YS1vdmVydmlldy1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKHNtYWxsKSAhZGVmYXVsdDtcbiRkYXRhLW92ZXJ2aWV3LWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG5cbiRkYXRhLW92ZXJ2aWV3LXRpdGxlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAkRlMzICFkZWZhdWx0O1xuJGRhdGEtb3ZlcnZpZXctdGl0bGUtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCAhZGVmYXVsdDtcbiRkYXRhLW92ZXJ2aWV3LXRpdGxlLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG5cbiRkYXRhLW92ZXJ2aWV3LWJ1dHRvbi1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICBpY29uLXNpemUoc21hbGwpICFkZWZhdWx0O1xuJGRhdGEtb3ZlcnZpZXctYnV0dG9uLWVuYWJsZS1sYWJlbDogICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuXG4vLyBUaGVtaW5nXG4kZGF0YS1vdmVydmlldy10aGVtZXM6IChcbiAgICBcImFsdGVybmF0aXZlXCI6IChcbiAgICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yXCI6ICRDT0xPUi1CQVNFLUJBQ0tHUk9VTkQsXG4gICAgKVxuKSAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gIEZpeCB2ZXJ0aWNhbCBhbGlnbm1lbnQgd2l0aCBvdGhlciBlbGVtZW50cyBpbiBoZWFkZXIuXG4gKiBbMl0gIERlZmVuc2l2ZWx5IHJlc2V0IGFueSBwb3RlbnRpYWwgbWFyZ2luLWJvdHRvbSB0aGF0IGNvbWVzIHdpdGggdGhlXG4gKiAgICAgIGVsZW1lbnRzIHRoYXQgYXJlIGJlaW5nIHVzZWQgYXMgdGhlIHRpdGxlLlxuICogWzRdICBEZWZlbnNpdmVseSByZXNldCBhbnkgdHJhaWxpbmcgbWFyZ2luLWJvdHRvbSBhdCB0aGUgZW5kIG9mIHRoZVxuICogICAgICBjb21wb25lbnQuXG4gKiBbNV0gIEVuc3VyZSB0aGF0IHRoZSBpY29uIGFsd2F5cyBqdXN0IHRha2VzIHVwIHRoZSBzcGFjZSBlcXVhbCB0byBpdHMgc2l6ZS5cbiAqIFs2XSAgV29yZHMgY2FuIGJlIGJyb2tlbiBhdCBhcHByb3ByaWF0ZSBoeXBoZW5hdGlvbiBwb2ludHMgZWl0aGVyIGFzXG4gKiAgICAgIGRldGVybWluZWQgYnkgaHlwaGVuYXRpb24gY2hhcmFjdGVycyAoc29mdCBgJnNoeTtgIG9yIGhhcmQgYFUrMjAxMGBcbiAqICAgICAgaHlwaGVuKSBpbnNpZGUgdGhlIHdvcmQgb3IgYXMgZGV0ZXJtaW5lZCBhdXRvbWF0aWNhbGx5IGJ5IGFcbiAqICAgICAgbGFuZ3VhZ2UtYXBwcm9wcmlhdGUgaHlwaGVuYXRpb24gcmVzb3VyY2UgKGUuZy4gdGhlIGBsYW5nYCBhdHRyaWJ1dGUgZm9yXG4gKiAgICAgIHRoZSBkb2N1bWVudCBvciBwYXJlbnQgZWxlbWVudCkuIFNldHRpbmcgYSBsYW5ndWFnZSBhcHByb3ByaWF0ZSB0byB0aGVcbiAqICAgICAgY29udGVudCBzZWVtcyB0byBiZSBtb3JlIGltcG9ydGFudCBpbiBzb21lIGJyb3dzZXJzIChlLmcuIEZpcmVmb3gpIHRoYW5cbiAqICAgICAgaW4gb3RoZXJzIChDaHJvbWUpLiBBbGwgaW4gYWxsLCBoeXBoZW5hdGlvbiBzaG91bGQgYmUgY29uc2lkZXJlZCBhXG4gKiAgICAgIHByb2dyZXNzaXZlIGVuaGFuY2VtZW50LCB3aGljaCBiZWhhdmVzIGRpZmZlcmVudGx5IGluIGRpZmZlcmVudCBicm93c2Vycy5cbiAqIFs3XSAgQnJlYWsgYSB3b3JkIG9udG8gbXVsdGlwbGUgbGluZXMgaWYgaXTigJlzIHRvbyBsYXJnZSB0byBmaXQuXG4gKiBbOF0gIEFsbG93IGhlYWRlciBpdGVtcyB0byB3cmFwLlxuICogWzldICBWZXJ0aWNhbCBzcGFjZSBiZXR3ZWVuIGhlYWRlciBpdGVtcyBoYXZlIGJyb2tlbiB1bmRlciBlYWNoIG90aGVyLlxuICogWzEwXSBIaWRlIGJ1dHRvbiBsYWJlbCBmb3IgY29tcG9uZW50IGJyZWFrcG9pbnQuXG4gKiBbMTFdIEFsd2F5cyBoaWRlIHRoZSBkYXRhLW92ZXJ2aWV3IGhlYWRlciBpY29uIGFzIHBlciBkZXNpZ24uXG4gKiBbMTJdIFJlbW92ZSBtaW5pbXVtIHdpZHRoIGZvciBidXR0b25zIGluIGAuYy1kYXRhLW92ZXJ2aWV3YC5cbiAqL1xuLmMtZGF0YS1vdmVydmlldyB7XG4gICAgcGFkZGluZy10b3A6ICRkYXRhLW92ZXJ2aWV3LXBhZGRpbmctdG9wO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRkYXRhLW92ZXJ2aWV3LXBhZGRpbmctcmlnaHQ7XG4gICAgcGFkZGluZy1ib3R0b206ICRkYXRhLW92ZXJ2aWV3LXBhZGRpbmctYm90dG9tO1xuICAgIHBhZGRpbmctbGVmdDogJGRhdGEtb3ZlcnZpZXctcGFkZGluZy1sZWZ0O1xuICAgIGJvcmRlcjogJGRhdGEtb3ZlcnZpZXctYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6ICRkYXRhLW92ZXJ2aWV3LWJvcmRlci1yYWRpdXM7XG4gICAgQGlmICgkZGF0YS1vdmVydmlldy1iYWNrZ3JvdW5kLWNvbG9yKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXRhLW92ZXJ2aWV3LWJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICAgIEBpZiAoJGRhdGEtb3ZlcnZpZXctYm94LXNoYWRvdykge1xuICAgICAgICBib3gtc2hhZG93OiAkZGF0YS1vdmVydmlldy1ib3gtc2hhZG93O1xuICAgIH1cblxuICAgIEBpZiAoJGRhdGEtb3ZlcnZpZXctcmVkdWNlLXBhZGRpbmctYXQtYnJlYWtwb2ludCkge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skZGF0YS1vdmVydmlldy1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJGRhdGEtb3ZlcnZpZXctcGFkZGluZy10b3AtYXQtYnJlYWtwb2ludDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRkYXRhLW92ZXJ2aWV3LXBhZGRpbmctcmlnaHQtYXQtYnJlYWtwb2ludDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkZGF0YS1vdmVydmlldy1wYWRkaW5nLWJvdHRvbS1hdC1icmVha3BvaW50O1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkZGF0YS1vdmVydmlldy1wYWRkaW5nLWxlZnQtYXQtYnJlYWtwb2ludDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICRkYXRhLW92ZXJ2aWV3LXRoZW1lcykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXJ5LWdldChcImJhY2tncm91bmQtY29sb3JcIik7XG4gICAgfVxufVxuXG4gICAgLmMtZGF0YS1vdmVydmlld19faGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwOyAvKiBbOF0gKi9cbiAgICAgICAganVzdGlmeS1jb250ZW50OiAkZGF0YS1vdmVydmlldy1oZWFkZXItY29udGVudC1qdXN0aWZpY2F0aW9uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tdG9wOiAtKCRkYXRhLW92ZXJ2aWV3LWhlYWRlci1pdGVtcy1zcGFjaW5nLXZlcnRpY2FsKTsgLyogWzldICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRkYXRhLW92ZXJ2aWV3LWhlYWRlci1zcGFjaW5nLWJvdHRvbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skZGF0YS1vdmVydmlldy1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkZGF0YS1vdmVydmlldy1oZWFkZXItc3BhY2luZy1ib3R0b20tYXQtYnJlYWtwb2ludDtcbiAgICAgICAgfVxuXG4gICAgICAgID4gKiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkZGF0YS1vdmVydmlldy1oZWFkZXItaXRlbXMtc3BhY2luZy12ZXJ0aWNhbDsgIC8qIFs5XSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBAaWYgKCRkYXRhLW92ZXJ2aWV3LWVuYWJsZS1pY29uKSB7XG5cbiAgICAgICAgLmMtZGF0YS1vdmVydmlld19faWNvbiB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7IC8qIFs1XSAqL1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7IC8qIFs1XSAqL1xuICAgICAgICAgICAgZmxleC1iYXNpczogJGRhdGEtb3ZlcnZpZXctaWNvbi1zaXplOyAvKiBbNV0gKi9cbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGRhdGEtb3ZlcnZpZXctaGVhZGVyLWl0ZW1zLXNwYWNpbmctaG9yaXpvbnRhbDtcblxuICAgICAgICAgICAgLmMtaWNvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAkZGF0YS1vdmVydmlldy1pY29uLXNpemUsXG4gICAgICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogMVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IC8qIFsxXSAqL1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkZGF0YS1vdmVydmlldy1pY29uLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH0gQGVsc2Uge1xuXG4gICAgICAgIC5jLWRhdGEtb3ZlcnZpZXdfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgLyogWzExXSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1kYXRhLW92ZXJ2aWV3X190aXRsZSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCRkYXRhLW92ZXJ2aWV3LXRpdGxlLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgIGZsZXgtYmFzaXM6ICRkYXRhLW92ZXJ2aWV3LWhlYWRlci1pdGVtcy13cmFwcGluZy13aWR0aDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRkYXRhLW92ZXJ2aWV3LWhlYWRlci1pdGVtcy1zcGFjaW5nLWhvcml6b250YWw7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IC8qIFsyXSAqL1xuICAgICAgICBmb250LXdlaWdodDogJGRhdGEtb3ZlcnZpZXctdGl0bGUtZm9udC13ZWlnaHQ7XG4gICAgICAgIGh5cGhlbnM6IGF1dG87IC8qIFs2XSAqL1xuICAgICAgICBjb2xvcjogJGRhdGEtb3ZlcnZpZXctdGl0bGUtdGV4dC1jb2xvcjtcbiAgICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsgLyogWzddICovXG5cbiAgICB9XG5cbiAgICAuYy1kYXRhLW92ZXJ2aWV3X19idXR0b24ge1xuICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuXG4gICAgICAgIC5jLWJ0bl9faWNvbjo6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGljb24tZm9udCgpO1xuICAgICAgICAgICAgY29udGVudDogJGRhdGEtb3ZlcnZpZXctaWNvbjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGRhdGEtb3ZlcnZpZXctYnV0dG9uLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGRhdGEtb3ZlcnZpZXctYnV0dG9uLWVuYWJsZS1sYWJlbCkge1xuICAgICAgICAgICAgLmMtYnRuX190ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skZGF0YS1vdmVydmlldy1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGExMXktaGlkZGVuKCk7IC8qIFsxMF0gKi9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmMtYnRuIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogYXV0bzsgLyogWzEyXSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1kYXRhLW92ZXJ2aWV3X19ib2R5IHtcblxuICAgICAgICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbNF0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0RBVEEtT1ZFUlZJRVcgKFNldHRpbmdzKVxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRkYXRhLW92ZXJ2aWV3LWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ0FSRC1QQVRURVJOLUJPUkRFUiAhZGVmYXVsdDtcbiRkYXRhLW92ZXJ2aWV3LWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAgICAkQ0FSRC1QQVRURVJOLUJPUkRFUi1SQURJVVMgIWRlZmF1bHQ7XG5cbiRkYXRhLW92ZXJ2aWV3LWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAkQ0FSRC1QQVRURVJOLUJBQ0tHUk9VTkQtQ09MT1IgIWRlZmF1bHQ7XG5cbiRkYXRhLW92ZXJ2aWV3LXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAkQ0FSRC1QQVRURVJOLVBBRERJTkctVkVSVElDQUwgIWRlZmF1bHQ7XG4kZGF0YS1vdmVydmlldy1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgJENBUkQtUEFUVEVSTi1QQURESU5HLUhPUklaT05UQUwgIWRlZmF1bHQ7XG4kZGF0YS1vdmVydmlldy1yZWR1Y2UtcGFkZGluZy1hdC1icmVha3BvaW50OiAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG5cbiRkYXRhLW92ZXJ2aWV3LWhlYWRlci1zcGFjaW5nLWJvdHRvbTogICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRkYXRhLW92ZXJ2aWV3LWhlYWRlci1zcGFjaW5nLWJvdHRvbS1hdC1icmVha3BvaW50OiAkZGF0YS1vdmVydmlldy1oZWFkZXItc3BhY2luZy1ib3R0b20gIWRlZmF1bHQ7XG5cbiRkYXRhLW92ZXJ2aWV3LWljb24tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uLXNpemUoc21hbGwpICFkZWZhdWx0O1xuJGRhdGEtb3ZlcnZpZXctaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICRDQVJELVBBVFRFUk4tSUNPTi1DT0xPUiAhZGVmYXVsdDtcblxuJGRhdGEtb3ZlcnZpZXctdGl0bGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICRDQVJELVBBVFRFUk4tVElUTEUtU0laRSAhZGVmYXVsdDtcbiRkYXRhLW92ZXJ2aWV3LXRpdGxlLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAkQ0FSRC1QQVRURVJOLVRJVExFLUNPTE9SICFkZWZhdWx0O1xuXG4kZGF0YS1vdmVydmlldy1idXR0b24taWNvbi1zaXplOiAgICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKHh4c21hbGwpICFkZWZhdWx0O1xuJGRhdGEtb3ZlcnZpZXctYnV0dG9uLWVuYWJsZS1sYWJlbDogICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0RBVEVQSUNLRVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFsxXSBUaGlzIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGEgcGxhY2Vob2xkZXIuIEl0IGlzIHBhcnQgb2YgdGhlIHRpbWVwaWNrZXInc1xuICogICAgIEhUTUwgbWFya3VwIGFuZCBpcyBkZXNpZ25lZCB0byBwcmV2ZW50IGNoYW5nZXMgdG8gdGhlIG1hcmt1cC4gUGxlYXNlIHJlZmVyXG4gKiAgICAgdG8gYHZlbmRvci9mbGF0cGlja3IvZmxhdHBpY2tyLnNjc3NgIGFuZCBgdmVuZG9yL2ZsYXRwaWNrci9mbGF0cGlja3Iuc2V0dGluZ3Muc2Nzc2BcbiAqICAgICB0byBzZWUgdGhlIHN0eWxpbmcgb2YgdGhlIGN1cnJlbnQgdGltZXBpY2tlci5cbiAqL1xuLmMtZGF0ZXBpY2tlciB7XG4gICAgLyogWzFdICovXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjVElNRVBJQ0tFUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogWzFdIFRoaXMgY2xhc3MgaXMgY3VycmVudGx5IG9ubHkgYSBwbGFjZWhvbGRlci4gSXQgaXMgcGFydCBvZiB0aGUgdGltZXBpY2tlcidzXG4gKiAgICAgSFRNTCBtYXJrdXAgYW5kIGlzIGRlc2lnbmVkIHRvIHByZXZlbnQgY2hhbmdlcyB0byB0aGUgbWFya3VwLiBQbGVhc2UgcmVmZXJcbiAqICAgICB0byBgdmVuZG9yL2ZsYXRwaWNrci9mbGF0cGlja3Iuc2Nzc2AgYW5kIGB2ZW5kb3IvZmxhdHBpY2tyL2ZsYXRwaWNrci5zZXR0aW5ncy5zY3NzYFxuICogICAgIHRvIHNlZSB0aGUgc3R5bGluZyBvZiB0aGUgY3VycmVudCB0aW1lcGlja2VyLlxuICovXG4uYy10aW1lcGlja2VyIHtcbiAgICAvKiBbMV0gKi9cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJTlNUUlVDVElPTi1TVEVQUEVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQHVzZSBcInNhc3M6bWF0aFwiIGFzICo7XG5cbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICBzICFkZWZhdWx0O1xuJGluc3RydWN0aW9uLXN0ZXBwZXItc3RlcC1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJGluc3RydWN0aW9uLXN0ZXBwZXItbGluZS1nYXA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDBweCAhZGVmYXVsdDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBsZW5ndGgtemVyby1uby11bml0ICovXG5cbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICA2NHB4ICFkZWZhdWx0O1xuJGluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgIDUwJSAhZGVmYXVsdDtcbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAkQ09MT1ItQkFTRS1CQUNLR1JPVU5EICFkZWZhdWx0O1xuJGluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgIDFweCAhZGVmYXVsdDtcbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kaW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgaWYoJGluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1ib3JkZXItd2lkdGggPiAwLCAkaW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLWJvcmRlci13aWR0aCBzb2xpZCAkaW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLWJvcmRlci1jb2xvciwgbnVsbCkgIWRlZmF1bHQ7XG4kaW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UgIWRlZmF1bHQ7XG4kaW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICBtYXAtZ2V0KCRGUzMsIG51bGwpICFkZWZhdWx0O1xuJGluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCAhZGVmYXVsdDtcbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0taWNvbi1zaXplOiAgICAgICAgICAgICAgICAgICAgICBpY29uLXNpemUobWVkaXVtKSAhZGVmYXVsdDtcbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0taXMtYWN0aXZlLWJhY2tncm91bmQtY29sb3I6ICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kaW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLWlzLWFjdGl2ZS1ib3JkZXItd2lkdGg6ICAgICAgICAgMCAhZGVmYXVsdDtcbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0taXMtYWN0aXZlLWJvcmRlci1jb2xvcjogICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0taXMtYWN0aXZlLWJvcmRlcjogICAgICAgICAgICAgICBpZigkaW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLWlzLWFjdGl2ZS1ib3JkZXItd2lkdGggPiAwLCAkaW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLWlzLWFjdGl2ZS1ib3JkZXItd2lkdGggc29saWQgJGluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1pcy1hY3RpdmUtYm9yZGVyLWNvbG9yLCAwKSAhZGVmYXVsdDtcbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0taXMtYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kaW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLWlzLWFjdGl2ZS1mb250LXNpemU6ICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0taXMtYWN0aXZlLWZvbnQtd2VpZ2h0OiAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1pcy1hY3RpdmUtaWNvbi1zaXplOiAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWRldGFpbC1zcGFjaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWRldGFpbC1zcGFjaW5nLWhvcml6b250YWw6ICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWRldGFpbC1vZmZzZXQtYXQtdmVydGljYWw6ICAgICAgICAgICBjYWxjKCh2YXIoLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tc2l6ZSkgLyAyKSAtIDFleCkgIWRlZmF1bHQ7IC8qIFsxMV0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSB1bml0LWRpc2FsbG93ZWQtbGlzdCAqL1xuJGluc3RydWN0aW9uLXN0ZXBwZXItdGl0bGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kaW5zdHJ1Y3Rpb24tc3RlcHBlci10aXRsZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgbWFwLWdldCgkRlMtMSwgbnVsbCkgIWRlZmF1bHQ7XG4kaW5zdHJ1Y3Rpb24tc3RlcHBlci10aXRsZS1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xEICFkZWZhdWx0O1xuJGluc3RydWN0aW9uLXN0ZXBwZXItdGl0bGUtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgIDEuNSAhZGVmYXVsdDtcbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWRlc2NyaXB0aW9uLW1hcmdpbi10b3A6ICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kaW5zdHJ1Y3Rpb24tc3RlcHBlci1kZXNjcmlwdGlvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWRlc2NyaXB0aW9uLWZvbnQtc2l6ZTogICAgICAgICAgICAgICBtYXAtZ2V0KCRGUy0yLCBudWxsKSAhZGVmYXVsdDtcbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWRlc2NyaXB0aW9uLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG4kaW5zdHJ1Y3Rpb24tc3RlcHBlci1kZXNjcmlwdGlvbi1saW5lLWhlaWdodDogICAgICAgICAgICAgMS41ICFkZWZhdWx0O1xuJGluc3RydWN0aW9uLXN0ZXBwZXItZGVzY3JpcHRpb24tbWF4LXdpZHRoLWF0LWhvcml6b250YWw6IDUwY2ggIWRlZmF1bHQ7XG4kaW5zdHJ1Y3Rpb24tc3RlcHBlci1kZXNjcmlwdGlvbi1tYXgtd2lkdGgtYXQtdmVydGljYWw6ICAgNjBjaCAhZGVmYXVsdDtcblxuJGluc3RydWN0aW9uLXN0ZXBwZXItaGFzLWNvbm5lY3RvcjogICAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kaW5zdHJ1Y3Rpb24tc3RlcHBlci1jb25uZWN0b3Itc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgc29saWQgIWRlZmF1bHQ7XG4kaW5zdHJ1Y3Rpb24tc3RlcHBlci1jb25uZWN0b3Itc2l6ZTogICAgICAgICAgICAgICAgICAgICAgMXB4ICFkZWZhdWx0O1xuJGluc3RydWN0aW9uLXN0ZXBwZXItY29ubmVjdG9yLWRvdC1zcGFjaW5nOiAgICAgICAgICAgICAgIDEwcHggIWRlZmF1bHQ7XG4kaW5zdHJ1Y3Rpb24tc3RlcHBlci1jb25uZWN0b3ItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJENPTE9SLVNVQlRMRSAhZGVmYXVsdDtcbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWNvbm5lY3Rvci1vZmZzZXQ6ICAgICAgICAgICAgICAgICAgICBjYWxjKHZhcigtLWluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1zaXplKSAvIDIpICFkZWZhdWx0O1xuXG4kaW5zdHJ1Y3Rpb24tc3RlcHBlci1zbWFsbC1pdGVtLXNpemU6ICAgICAgICAgICAgICAgICAgICAgNDhweCAhZGVmYXVsdDtcbiRpbnN0cnVjdGlvbi1zdGVwcGVyLXNtYWxsLWl0ZW0tZm9udC1zaXplOiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRGUzIsIG51bGwpICFkZWZhdWx0O1xuJGluc3RydWN0aW9uLXN0ZXBwZXItc21hbGwtaXRlbS1pY29uLXNpemU6ICAgICAgICAgICAgICAgIGljb24tc2l6ZShzbWFsbCkgIWRlZmF1bHQ7XG5cbi8vIE1peGluIHRvIGRyYXcgdGhlIGNvbm5lY3RvciBsaW5lLiBFbmNhcHN1bGF0ZXMgdGhlIGxvZ2ljIHRvIGRyYXcgdGhlIGxpbmUuXG4vLyBUaGlzIGNhbGN1bGF0aW9uIG1ha2VzIHRoZSBsaW5lcyBpbmRlcGVuZGVudCBvZiBhbnkgd2lkdGggYW5kIGhlaWdodCByZXN0cmljdGlvbnMsXG4vLyBtZWFuaW5nIHRoYXQgdGhlIHN0ZXBwZXIgaXRlbSBjb250ZW50IGNhbiBncm93IGluIGFueSBkaXJlY3Rpb25zLlxuLy8gRWFjaCBsaW5lIGFmdGVyIGEgc3RlcHBlciBpdGVtIGlzIGRyYXduIHZpYSBhIHBzZXVkbyBlbGVtZW50LlxuLy8gSXTigJlzIHBvc3NpYmxlIHRvIGFkZCBhIGdhcCBiZXR3ZWVuIHN0ZXBwZXIgaXRlbSBhbmQgbGluZSBieSBzZXR0aW5nIGAkaW5zdHJ1Y3Rpb24tc3RlcHBlci1saW5lLWdhcGAuXG5AbWl4aW4gaW5zdHJ1Y3Rpb24tc3RlcHBlci1saW5lKCRkaXJlY3Rpb246IHZlcnRpY2FsKSB7XG5cbiAgICAvLyBHdWFyZCBhZ2FpbnN0IG5vdCBhbGxvd2VkIGFyZ3VtZW50cy5cbiAgICBAaWYgbm90ICgkZGlyZWN0aW9uID09IFwidmVydGljYWxcIiBvciAkZGlyZWN0aW9uID09IFwiaG9yaXpvbnRhbFwiKSB7XG4gICAgICAgIEBlcnJvcihcIkluc3RydWN0aW9uIFN0ZXBwZXI6ICdUaGUgJGRpcmVjdGlvbiBhcmd1bWVudCBjYW4gb25seSBiZSBvZiB0eXBlIHN0cmluZyB3aXRoIHRoZSB2YWx1ZXMgJ3ZlcnRpY2FsJyBvciAnaG9yaXpvbnRhbCcg4oCTIGdvdCAnI3skZGlyZWN0aW9ufScuXCIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIGxvZ2ljIGp1c3QgY2hhbmdlcyBpbiBvcnRob2dvbmFsaXR5IHNvIHdlIHN3YXAgb3V0IHRoZSBwcm9wZXJ0aWVzIHJlc3BlY3RpdmVseS5cbiAgICAgKiBhLiBDb250cm9sIHRoZSB0aGlja25lc3MgcHJvcGVydHkgZm9yIHRoZSBsaW5lLlxuICAgICAqIGIuIENvbnRyb2wgdGhlIGRpbWVuc2lvbiBwcm9wZXJ0eSBvZiB0aGUgbGluZTpcbiAgICAgKiAgICBgaGVpZ2h0YCBmb3IgdmVydGljYWwgb3JpZW50YXRpb24gYW5kIGB3aWR0aGAgZm9yIGhvcml6b250YWwgb3JpZW50YXRpb24uXG4gICAgICogYy4gVGhlIHByb3BlcnR5IHRoYXQgY29udHJvbHMgdGhlIGxpbmUgZGltZW5zaW9uYWwgX29mZnNldC5cbiAgICAgKiBkLiBDYWxjdWxhdGUgdGhlIGdhcCAob2Zmc2V0KSBvZiB0aGUgbGluZSBieSB0YWtpbmcgaXRlbSBzaXplIGFuZFxuICAgICAqICAgIGxpbmUgZ2FwIGludG8gYWNjb3VudC5cbiAgICAgKiBlLiBUaGUgcHJvcGVydHkgdGhhdCBjb250cm9scyB0aGUgYWxpZ25tZW50LlxuICAgICAqIGYuIENhbGN1bGF0ZSB0aGUgd2lkdGggb3IgaGVpZ2h0IG9mIHRoZSBsaW5lIGJ5IHRha2luZyBpdGVtIHNpemUsXG4gICAgICogICAgaXRlbSBnYXAsIGxpbmUgZ2FwIGFuZCAoaWYgc2V0KSBjb3JyZWN0aW9uIGJ1ZmZlciBpbnRvIGFjY291bnQuXG4gICAgICovXG4gICAgJF90aGlja25lc3MtcHJvcGVydHk6IGlmKCRkaXJlY3Rpb24gPT0gXCJ2ZXJ0aWNhbFwiLCB3aWR0aCwgaGVpZ2h0KTsgLyogW2FdICovXG4gICAgJF9kaW1lbnNpb24tcHJvcGVydHk6IGlmKCRkaXJlY3Rpb24gPT0gXCJ2ZXJ0aWNhbFwiLCBoZWlnaHQsIHdpZHRoKTsgLyogW2JdICovXG4gICAgJF9vZmZzZXQtcHJvcGVydHk6ICAgIGlmKCRkaXJlY3Rpb24gPT0gXCJ2ZXJ0aWNhbFwiLCB0b3AsIGxlZnQpOyAvKiBbY10gKi9cbiAgICAkX29mZnNldDogICAgICAgICAgICAgaWYoJGRpcmVjdGlvbiA9PSBcInZlcnRpY2FsXCIsIGNhbGModmFyKC0taW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLXNpemUpICsgdmFyKC0taW5zdHJ1Y3Rpb24tc3RlcHBlci1saW5lLWdhcCkpLCBjYWxjKDUwJSArIHZhcigtLWluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1zaXplKSAvIDIgKyB2YXIoLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWxpbmUtZ2FwKSkpOyAvKiBbZF0gKi9cbiAgICAkX2FsaWduLXByb3BlcnR5OiAgICAgaWYoJGRpcmVjdGlvbiA9PSBcInZlcnRpY2FsXCIsIGxlZnQsIHRvcCk7IC8qIFtlXSAqL1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgI3skX3RoaWNrbmVzcy1wcm9wZXJ0eX06ICRpbnN0cnVjdGlvbi1zdGVwcGVyLWNvbm5lY3Rvci1zaXplO1xuICAgICAgICAjeyRfZGltZW5zaW9uLXByb3BlcnR5fTogY2FsYyh2YXIoLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWNvcnJlY3Rpb24tYnVmZmVyKSArIDEwMCUgLSB2YXIoLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tc2l6ZSkgKyB2YXIoLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWdhcCkgLSB2YXIoLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWxpbmUtZ2FwKSAqIDIpOyAvKiBbZl0gKi9cbiAgICAgICAgI3skX2FsaWduLXByb3BlcnR5fTogJGluc3RydWN0aW9uLXN0ZXBwZXItY29ubmVjdG9yLW9mZnNldDtcbiAgICAgICAgI3skX29mZnNldC1wcm9wZXJ0eX06ICRfb2Zmc2V0O1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZDo6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBDb25uZWN0b3IgYXBwZWFyYW5jZSBsb2dpYy5cbiAgICBAaWYgKCRpbnN0cnVjdGlvbi1zdGVwcGVyLWNvbm5lY3Rvci1zdHlsZSA9PSBkb3R0ZWQpIHtcbiAgICAgICAgLy8gVGhlIHdpZHRoIChob3Jpem9udGFsKSBvciBoZWlnaHQgKHZlcnRpY2FsKSBvZiB0aGUgZmlyc3QgY29sb3Igb2YgdGhlIGxpbmVhclxuICAgICAgICAvLyBncmFkaWVudCBtdXN0IGJlIHRoZSBzYW1lIHNpemUgYXMgdGhlIGhlaWdodCAoaG9yaXpvbnRhbCkgb3Igd2lkdGhcbiAgICAgICAgLy8gKHZlcnRpY2FsKSwgd2hpY2ggaXMgc2V0IHRocm91Z2ggdGhlIGRvdCBzaXplLiBUbyBhY2hpZXZlIHRoaXMsIHRoZSBwcm9wb3J0aW9uXG4gICAgICAgIC8vIGJldHdlZW4gZG90IHNpemUgYW5kIGRvdCBzcGFjaW5nIGlzIHRyYW5zZmVycmVkIHRvIGEgdmFsdWUgcmVwcmVzZW50aW5nIHRoZVxuICAgICAgICAvLyB3aWR0aCBvciBoZWlnaHQgb2YgZG90cyBpbiBwZXJjZW50YWdlLlxuICAgICAgICAkX2dyYWRpZW50LWZpcnN0LWNvbG9yLWxlbmd0aDogMTAwJSAqIGRpdihzdHJpcC11bml0KCRpbnN0cnVjdGlvbi1zdGVwcGVyLWNvbm5lY3Rvci1zaXplKSwgc3RyaXAtdW5pdCgkaW5zdHJ1Y3Rpb24tc3RlcHBlci1jb25uZWN0b3ItZG90LXNwYWNpbmcpKTtcbiAgICAgICAgJF9ncmFkaWVudC1kaXJlY3Rpb246IGlmKCRkaXJlY3Rpb24gPT0gXCJ2ZXJ0aWNhbFwiLCBib3R0b20sIHJpZ2h0KTtcbiAgICAgICAgJF9ncmFkaWVudDogbGluZWFyLWdyYWRpZW50KHRvICN7JF9ncmFkaWVudC1kaXJlY3Rpb259LCAjeyRpbnN0cnVjdGlvbi1zdGVwcGVyLWNvbm5lY3Rvci1jb2xvcn0gI3skX2dyYWRpZW50LWZpcnN0LWNvbG9yLWxlbmd0aH0sIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCUpO1xuICAgICAgICAkX2Rhc2g6IGlmKCRkaXJlY3Rpb24gPT0gXCJ2ZXJ0aWNhbFwiLCAkaW5zdHJ1Y3Rpb24tc3RlcHBlci1jb25uZWN0b3Itc2l6ZSAkaW5zdHJ1Y3Rpb24tc3RlcHBlci1jb25uZWN0b3ItZG90LXNwYWNpbmcsICRpbnN0cnVjdGlvbi1zdGVwcGVyLWNvbm5lY3Rvci1kb3Qtc3BhY2luZyAkaW5zdHJ1Y3Rpb24tc3RlcHBlci1jb25uZWN0b3Itc2l6ZSk7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRfZ3JhZGllbnQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6ICRfZGFzaDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7XG4gICAgICAgIH1cblxuICAgIH0gQGVsc2UgaWYgKCRpbnN0cnVjdGlvbi1zdGVwcGVyLWNvbm5lY3Rvci1zdHlsZSA9PSBzb2xpZCkge1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5zdHJ1Y3Rpb24tc3RlcHBlci1jb25uZWN0b3ItY29sb3I7XG4gICAgICAgIH1cblxuICAgIH0gQGVsc2Uge1xuICAgICAgICBAd2FybihcIkluc3RydWN0aW9uIFN0ZXBwZXI6ICcjeyRpbnN0cnVjdGlvbi1zdGVwcGVyLWNvbm5lY3Rvci1zdHlsZX0nIGlzIG5vdCBhIHZhbGlkIHN0eWxlIGZvciBjb25uZWN0b3JzLlwiKTtcbiAgICB9XG5cbn1cblxuLyoqXG4gKiBbMV0gUmVzZXQgY3VzdG9tIG51bWJlcmluZy5cbiAqIFsyXSBNYWtlIGFsbCBpdGVtcyBzYW1lLXdpZHRoLlxuICogWzNdIFJlc2V0IGRlZmF1bHQgbWFyZ2luLCBwYWRkaW5nLCBhbmQgbGlzdCBzdHlsZSB0eXBlIG9mIGxpc3RzLlxuICogWzRdIEhvcml6b250YWwgY29ubmVjdG9yLlxuICogWzVdIFZlcnRpY2FsIGNvbm5lY3Rvci5cbiAqIFs2XSBNb3ZlIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGhvcml6b250YWwvdmVydGljYWwgY29ubmVjdG9yIHRvIHRoZSBjZW50ZXIgb2ZcbiAqICAgICB0aGUgcmVzcGVjdGl2ZSBpdGVtLlxuICogWzddIEZpeCBvdmVybGFwcGluZyBgPGRpdj5gcyBpbiBJRS5cbiAqIFs4XSBTdGFjayBpdGVtIGFib3ZlIGNvbm5lY3Rvci5cbiAqIFs5XSBSZXNldCBob3Jpem9udGFsIHNwYWNpbmcuXG4gKiBbMTBdIFJlbW92ZSBzcGFjaW5nIHRvIGFsaWduIGRlZmF1bHQgYW5kIGFjdGl2ZSBpdGVtcy5cbiAqIFsxMV0gU3RhcnQgdGl0bGUgaW4gY2VudGVyIG9mIGl0ZW0uXG4gKiAgICAgIFVzaW5nIGJhc2VsaW5lIGRvZXMgbm90IGNlbnRlciBpdCBwcm9wZXJseS4gVXNpbmcgYGV4YCBpcyBiYXNlZCBvbiB0aGVcbiAqICAgICAgeC1oZWlnaHQgb2YgdGhlIHRpdGxlIHdoaWNoIGFwcHJveC4gaXMgaGFsZiBvZiB0aGUgc2l6ZSwgbmVlZGVkIGFzIGFuIG9mZnNldC5cbiAqIFsxMl0gSW1wcm92ZSByZWFkYWJpbGl0eSBieSBsaW1pdGluZyB0aGUgbWF4aW1hbCBsaW5lIGxlbmd0aC5cbiAqIFsxM10gVGhlIGBweGAgdW5pdHMgbXVzdCBiZSByZW1vdmVkIGJlY2F1c2UgdGhlIGBmb250LXNpemVgIG1peGluIHNlZXNcbiAqICAgICAgQ1NTIGN1c3RvbSBwcm9wZXJ0aWVzIGFzIGEgc3RyaW5nIGFuZCBkb2VzIG5vdCBrbm93IGl0cyB2YWx1ZS4gVGhlXG4gKiAgICAgIGZvbGxvd2luZyBjb252ZXJzaW9uIHRvIGBSRU1gIHZpYSBDU1MgYGNhbGNgIG11c3QgYmUgZG9uZSB3aXRob3V0IHVuaXQuXG4gKiBbMTRdIEEgY29ycmVjdGlvbiBidWZmZXIgZm9yIGxpbmVzIHRvIGF2b2lkIG1pY3JvIGdhcHMgYmV0d2VlbiBzdGVwcyBhbmQgY29ubmVjdG9ycy5cbiAqL1xuLmMtaW5zdHJ1Y3Rpb24tc3RlcHBlciB7XG4gICAgLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWdhcDogI3skaW5zdHJ1Y3Rpb24tc3RlcHBlci1zdGVwLXNwYWNpbmd9O1xuICAgIC0taW5zdHJ1Y3Rpb24tc3RlcHBlci1saW5lLWdhcDogI3skaW5zdHJ1Y3Rpb24tc3RlcHBlci1saW5lLWdhcH07XG4gICAgLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tc2l6ZTogI3skaW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLXNpemV9O1xuICAgIC0taW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLWZvbnQtc2l6ZTogI3tzdHJpcC11bml0KCRpbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tZm9udC1zaXplKX07IC8qIFsxM10gKi9cbiAgICAtLWluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1pY29uLXNpemU6ICN7c3RyaXAtdW5pdCgkaW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLWljb24tc2l6ZSl9OyAvKiBbMTNdICovXG4gICAgLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWNvcnJlY3Rpb24tYnVmZmVyOiAje2lmKHN0cmlwLXVuaXQoJGluc3RydWN0aW9uLXN0ZXBwZXItbGluZS1nYXApIDw9IDAsIDJweCwgMHB4KX07IC8qIFsxNF0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBsZW5ndGgtemVyby1uby11bml0ICovXG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG1hcmdpbjogMDsgLyogWzNdICovXG4gICAgcGFkZGluZzogMDsgLyogWzNdICovXG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lOyAvKiBbM10gKi9cblxuICAgICYuYy1pbnN0cnVjdGlvbi1zdGVwcGVyLS1jZW50ZXIge1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPiN7JGluc3RydWN0aW9uLXN0ZXBwZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBmaXQtY29udGVudDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY2FsZS11bmxpbWl0ZWQvZGVjbGFyYXRpb24tc3RyaWN0LXZhbHVlICovXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJjpub3QoLmMtaW5zdHJ1Y3Rpb24tc3RlcHBlci0tdmVydGljYWwpIHtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIj4jeyRpbnN0cnVjdGlvbi1zdGVwcGVyLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG4gICAgLmMtaW5zdHJ1Y3Rpb24tc3RlcHBlci0tbnVtYmVyZWQge1xuICAgICAgICBjb3VudGVyLXJlc2V0OiBpbnN0cnVjdGlvbi1zdGVwcGVyLWNvdW50OyAvKiBbMV0gKi9cbiAgICB9XG5cbiAgICAuYy1pbnN0cnVjdGlvbi1zdGVwcGVyX19zdGVwIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgLyogWzExXSAqL1xuICAgICAgICBmbGV4LWdyb3c6IDE7IC8qIFsyXSAqL1xuICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgbWluLWhlaWdodDogdmFyKC0taW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLXNpemUpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkaW5zdHJ1Y3Rpb24tc3RlcHBlci1zdGVwLXNwYWNpbmc7XG5cbiAgICAgICAgQGlmICgkaW5zdHJ1Y3Rpb24tc3RlcHBlci1oYXMtY29ubmVjdG9yKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBpbnN0cnVjdGlvbi1zdGVwcGVyLWxpbmUoJGRpcmVjdGlvbjogdmVydGljYWwpO1xuXG4gICAgICAgICAgICA6bm90KC5jLWluc3RydWN0aW9uLXN0ZXBwZXItLXZlcnRpY2FsKSA+ICYge1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI+I3skaW5zdHJ1Y3Rpb24tc3RlcHBlci1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGluc3RydWN0aW9uLXN0ZXBwZXItbGluZSgkZGlyZWN0aW9uOiBob3Jpem9udGFsKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgOm5vdCguYy1pbnN0cnVjdGlvbi1zdGVwcGVyLS12ZXJ0aWNhbCkgPiAmIHtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI+I3skaW5zdHJ1Y3Rpb24tc3RlcHBlci1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7IC8qIFsyXSAqL1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRpbnN0cnVjdGlvbi1zdGVwcGVyLXN0ZXAtc3BhY2luZztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1pbnN0cnVjdGlvbi1zdGVwcGVyX19pdGVtIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgJGZvbnQtc2l6ZTogICB2YXIoLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tZm9udC1zaXplKSxcbiAgICAgICAgICAgICRsaW5lLWhlaWdodDogMVxuICAgICAgICApO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDE7IC8qIFs4XSAqL1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgd2lkdGg6IHZhcigtLWluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1zaXplKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tc2l6ZSk7XG4gICAgICAgIGJvcmRlcjogJGluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRpbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgZm9udC1mYW1pbHk6ICRpbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkaW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLWZvbnQtd2VpZ2h0O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgY29sb3I6ICRpbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tY29sb3I7XG5cbiAgICAgICAgLmMtaW5zdHJ1Y3Rpb24tc3RlcHBlci0tbnVtYmVyZWQgJiB7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogY291bnRlcihpbnN0cnVjdGlvbi1zdGVwcGVyLWNvdW50KTtcbiAgICAgICAgICAgICAgICBjb3VudGVyLWluY3JlbWVudDogaW5zdHJ1Y3Rpb24tc3RlcHBlci1jb3VudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLmMtaW5zdHJ1Y3Rpb24tc3RlcHBlcl9fc3RlcC5pcy1hY3RpdmUgJiB7XG4gICAgICAgICAgICBAaWYgKCRpbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0taXMtYWN0aXZlLWZvbnQtc2l6ZSkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkaW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLWlzLWFjdGl2ZS1mb250LXNpemUsXG4gICAgICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogMVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJvcmRlcjogJGluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1pcy1hY3RpdmUtYm9yZGVyO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRpbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0taXMtYWN0aXZlLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1pcy1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgICAgIGNvbG9yOiAkaW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLWlzLWFjdGl2ZS1jb2xvcjtcblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LWNsYXNzICovXG4gICAgICAgICAgICAuYy1pY29uIHtcbiAgICAgICAgICAgICAgICBAaWYgKCRpbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0taXMtYWN0aXZlLWljb24tc2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgICRpbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0taXMtYWN0aXZlLWljb24tc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogMVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICRmb250LXNpemU6ICAgdmFyKC0taW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLWljb24tc2l6ZSksXG4gICAgICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAxXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtaW5zdHJ1Y3Rpb24tc3RlcHBlcl9fZGV0YWlsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgLyogWzddICovXG4gICAgICAgIG1hcmdpbi10b3A6ICRpbnN0cnVjdGlvbi1zdGVwcGVyLWRldGFpbC1vZmZzZXQtYXQtdmVydGljYWw7IC8qIFsxMV0gKi9cbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRpbnN0cnVjdGlvbi1zdGVwcGVyLWRldGFpbC1zcGFjaW5nLWhvcml6b250YWw7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgOm5vdCguYy1pbnN0cnVjdGlvbi1zdGVwcGVyLS12ZXJ0aWNhbCkgPiAuYy1pbnN0cnVjdGlvbi1zdGVwcGVyX19zdGVwICYge1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIj4jeyRpbnN0cnVjdGlvbi1zdGVwcGVyLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkaW5zdHJ1Y3Rpb24tc3RlcHBlci1kZXRhaWwtc3BhY2luZy12ZXJ0aWNhbDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtaW5zdHJ1Y3Rpb24tc3RlcHBlcl9fdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAgICRpbnN0cnVjdGlvbi1zdGVwcGVyLXRpdGxlLWZvbnQtc2l6ZSxcbiAgICAgICAgICAgICRsaW5lLWhlaWdodDogJGluc3RydWN0aW9uLXN0ZXBwZXItdGl0bGUtbGluZS1oZWlnaHRcbiAgICAgICAgKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkaW5zdHJ1Y3Rpb24tc3RlcHBlci10aXRsZS1mb250LXdlaWdodDtcbiAgICAgICAgY29sb3I6ICRpbnN0cnVjdGlvbi1zdGVwcGVyLXRpdGxlLWNvbG9yO1xuICAgIH1cblxuICAgIC5jLWluc3RydWN0aW9uLXN0ZXBwZXJfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkaW5zdHJ1Y3Rpb24tc3RlcHBlci1kZXNjcmlwdGlvbi1mb250LXNpemUsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICRpbnN0cnVjdGlvbi1zdGVwcGVyLWRlc2NyaXB0aW9uLWxpbmUtaGVpZ2h0XG4gICAgICAgICk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXgtd2lkdGg6ICRpbnN0cnVjdGlvbi1zdGVwcGVyLWRlc2NyaXB0aW9uLW1heC13aWR0aC1hdC1ob3Jpem9udGFsOyAvKiBbMTJdICovXG4gICAgICAgIG1hcmdpbi10b3A6ICRpbnN0cnVjdGlvbi1zdGVwcGVyLWRlc2NyaXB0aW9uLW1hcmdpbi10b3A7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkaW5zdHJ1Y3Rpb24tc3RlcHBlci1kZXNjcmlwdGlvbi1mb250LXdlaWdodDtcbiAgICAgICAgY29sb3I6ICRpbnN0cnVjdGlvbi1zdGVwcGVyLWRlc2NyaXB0aW9uLWNvbG9yO1xuXG4gICAgICAgIC8vIFZlcnRpY2FsIGFwcGVhcmFuY2UgZHVlIHRvIHNtYWxsIHZpZXdwb3J0XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPCN7JGluc3RydWN0aW9uLXN0ZXBwZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAkaW5zdHJ1Y3Rpb24tc3RlcHBlci1kZXNjcmlwdGlvbi1tYXgtd2lkdGgtYXQtdmVydGljYWw7IC8qIFsxMl0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFZlcnRpY2FsIGFwcGVhcmFuY2UgZHVlIHRvIGB2ZXJ0aWNhbGAgbW9kaWZpZXJcbiAgICAgICAgLmMtaW5zdHJ1Y3Rpb24tc3RlcHBlci0tdmVydGljYWwgJiB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICRpbnN0cnVjdGlvbi1zdGVwcGVyLWRlc2NyaXB0aW9uLW1heC13aWR0aC1hdC12ZXJ0aWNhbDsgLyogWzEyXSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1pbnN0cnVjdGlvbi1zdGVwcGVyLS12ZXJ0aWNhbC5jLWluc3RydWN0aW9uLXN0ZXBwZXItLXJldmVyc2VkIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuXG4gICAgICAgIC5jLWluc3RydWN0aW9uLXN0ZXBwZXJfX3N0ZXAge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkaW5zdHJ1Y3Rpb24tc3RlcHBlci1jb25uZWN0b3Itb2Zmc2V0O1xuICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWluc3RydWN0aW9uLXN0ZXBwZXJfX2RldGFpbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRpbnN0cnVjdGlvbi1zdGVwcGVyLWRldGFpbC1zcGFjaW5nLWhvcml6b250YWw7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1pbnN0cnVjdGlvbi1zdGVwcGVyLS1zbWFsbCB7XG4gICAgICAgIC0taW5zdHJ1Y3Rpb24tc3RlcHBlci1pdGVtLXNpemU6ICN7JGluc3RydWN0aW9uLXN0ZXBwZXItc21hbGwtaXRlbS1zaXplfTtcbiAgICAgICAgLS1pbnN0cnVjdGlvbi1zdGVwcGVyLWl0ZW0tZm9udC1zaXplOiAje3N0cmlwLXVuaXQoJGluc3RydWN0aW9uLXN0ZXBwZXItc21hbGwtaXRlbS1mb250LXNpemUpfTsgLyogWzEzXSAqL1xuICAgICAgICAtLWluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1pY29uLXNpemU6ICN7c3RyaXAtdW5pdCgkaW5zdHJ1Y3Rpb24tc3RlcHBlci1zbWFsbC1pdGVtLWljb24tc2l6ZSl9OyAvKiBbMTNdICovXG4gICAgfVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAjSU5TVFJVQ1RJT04tU1RFUFBFUiAoU2V0dGluZ3MpXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGluc3RydWN0aW9uLXN0ZXBwZXItbGluZS1nYXA6ICAgICAgICAgICAgICAgICAgICAgICAgMnB4ICFkZWZhdWx0O1xuJGluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgJENPTE9SLU9OLVNVUkZBQ0UtMTAwICFkZWZhdWx0O1xuJGluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgJENPTE9SLU9OLVNVUkZBQ0UtMzAwICFkZWZhdWx0O1xuJGluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgMnB4ICFkZWZhdWx0O1xuJGluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1pcy1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcjogJENPTE9SLU9OLVNVUkZBQ0UtNzAwICFkZWZhdWx0O1xuJGluc3RydWN0aW9uLXN0ZXBwZXItaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgJENPTE9SLU9OLVNVUkZBQ0UtMzAwICFkZWZhdWx0O1xuJGluc3RydWN0aW9uLXN0ZXBwZXItc21hbGwtaXRlbS1pY29uLXNpemU6ICAgICAgICAgICAgaWNvbi1zaXplKHhzbWFsbCkgIWRlZmF1bHQ7XG5cbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWNvbm5lY3Rvci1zaXplOiAgICAgICAgICAgICAgICAgIDJweCAhZGVmYXVsdDtcbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWNvbm5lY3Rvci1jb2xvcjogICAgICAgICAgICAgICAgICRDT0xPUi1PTi1TVVJGQUNFLTcwMCAhZGVmYXVsdDtcblxuJGluc3RydWN0aW9uLXN0ZXBwZXItdGl0bGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcbiRpbnN0cnVjdGlvbi1zdGVwcGVyLXRpdGxlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgIG1hcC1nZXQoJEZTMCwgbnVsbCkgIWRlZmF1bHQ7XG5cbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWRlc2NyaXB0aW9uLWNvbG9yOiAgICAgICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kaW5zdHJ1Y3Rpb24tc3RlcHBlci1kZXNjcmlwdGlvbi1mb250LXNpemU6ICAgICAgICAgICBtYXAtZ2V0KCRGUy0xLCBudWxsKSAhZGVmYXVsdDtcbiRpbnN0cnVjdGlvbi1zdGVwcGVyLWRlc2NyaXB0aW9uLWZvbnQtd2VpZ2h0OiAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtTElHSFQgIWRlZmF1bHQ7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjUFJPRFVDVC1UQUJMRVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRwcm9kdWN0LXRhYmxlLWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzICFkZWZhdWx0O1xuXG4kcHJvZHVjdC10YWJsZS10aXRsZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgJEZTMyAhZGVmYXVsdDtcbiRwcm9kdWN0LXRhYmxlLXRpdGxlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHByb2R1Y3QtdGFibGUtdGl0bGUtc3BhY2luZy1ib3R0b206ICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuXG4kcHJvZHVjdC10YWJsZS1zZWN0aW9uLXNwYWNpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kcHJvZHVjdC10YWJsZS1zZWN0aW9uLXNwYWNpbmctdmVydGljYWwtYXQtYnJlYWtwb2ludDogJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kcHJvZHVjdC10YWJsZS1zZWN0aW9uLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAgMXB4ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGFibGUtc2VjdGlvbi1ib3JkZXItc3R5bGU6ICAgICAgICAgICAgICAgICAgIHNvbGlkICFkZWZhdWx0O1xuJHByb2R1Y3QtdGFibGUtc2VjdGlvbi1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICRDT0xPUi1QQUxFICFkZWZhdWx0O1xuJHByb2R1Y3QtdGFibGUtc2VjdGlvbi1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICRwcm9kdWN0LXRhYmxlLXNlY3Rpb24tYm9yZGVyLXdpZHRoICRwcm9kdWN0LXRhYmxlLXNlY3Rpb24tYm9yZGVyLXN0eWxlICRwcm9kdWN0LXRhYmxlLXNlY3Rpb24tYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJHByb2R1Y3QtdGFibGUtc2VjdGlvbi1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRwcm9kdWN0LXRhYmxlLXNlY3Rpb24tYm9yZGVyLCAkcHJvZHVjdC10YWJsZS1zZWN0aW9uLWJvcmRlciwgbnVsbCk7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtZGVmYXVsdCAqL1xuXG4kcHJvZHVjdC10YWJsZS1pdGVtLXRlcm0tY29tbWVudC1mb250LXNpemU6ICAgICAgICAgICAgJEZTLTIgIWRlZmF1bHQ7XG4kcHJvZHVjdC10YWJsZS1pdGVtLXRlcm0tY29tbWVudC1mb250LXdlaWdodDogICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1SRUdVTEFSICFkZWZhdWx0O1xuJHByb2R1Y3QtdGFibGUtaXRlbS10ZXJtLWNvbW1lbnQtdGV4dC1jb2xvcjogICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LXRhYmxlLWl0ZW0tZGV0YWlsLWNvbW1lbnQtZm9udC1zaXplOiAgICAgICAgICAkRlMtMiAhZGVmYXVsdDtcbiRwcm9kdWN0LXRhYmxlLWl0ZW0tZGV0YWlsLWNvbW1lbnQtZm9udC13ZWlnaHQ6ICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG4kcHJvZHVjdC10YWJsZS1pdGVtLWRldGFpbC1jb21tZW50LXRleHQtY29sb3I6ICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuJHByb2R1Y3QtdGFibGUtaW5uZXItdGl0bGUtc3BhY2luZy10b3A6ICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kcHJvZHVjdC10YWJsZS1pbm5lci10aXRsZS1zcGFjaW5nLWJvdHRvbTogICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kcHJvZHVjdC10YWJsZS1pbm5lci10aXRsZS10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRhYmxlLWlubmVyLXRpdGxlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAkRlMtMSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRhYmxlLWlubmVyLXRpdGxlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQgIWRlZmF1bHQ7XG4kcHJvZHVjdC10YWJsZS1pbm5lci10aXRsZS1hbGlnbm1lbnQ6ICAgICAgICAgICAgICAgICAgY2VudGVyICFkZWZhdWx0O1xuXG4kcHJvZHVjdC10YWJsZS1zdW1tYXJ5LXRlcm0tZm9udC1mYW1pbHk6ICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRhYmxlLXN1bW1hcnktdGVybS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAkRlMzICFkZWZhdWx0O1xuJHByb2R1Y3QtdGFibGUtc3VtbWFyeS10ZXJtLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRhYmxlLXN1bW1hcnktdGVybS10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kcHJvZHVjdC10YWJsZS1zdW1tYXJ5LWRldGFpbC1mb250LWZhbWlseTogICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRhYmxlLXN1bW1hcnktZGV0YWlsLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAkcHJvZHVjdC10YWJsZS10aXRsZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10YWJsZS1zdW1tYXJ5LWRldGFpbC1mb250LXdlaWdodDogICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xEICFkZWZhdWx0O1xuJHByb2R1Y3QtdGFibGUtc3VtbWFyeS1kZXRhaWwtdGV4dC1jb2xvcjogICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kcHJvZHVjdC10YWJsZS1zdW1tYXJ5LWJvcmRlci10b3Atd2lkdGg6ICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRhYmxlLXN1bW1hcnktYm9yZGVyLXRvcC1zdHlsZTogICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHByb2R1Y3QtdGFibGUtc3VtbWFyeS1ib3JkZXItdG9wLWNvbG9yOiAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LXRhYmxlLWluZm9ybWF0aW9uLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHByb2R1Y3QtdGFibGUtaW5mb3JtYXRpb24tZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtUkVHVUxBUiAhZGVmYXVsdDtcbiRwcm9kdWN0LXRhYmxlLWluZm9ybWF0aW9uLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHByb2R1Y3QtdGFibGUtaW5mb3JtYXRpb24tYWxpZ25tZW50OiAgICAgICAgICAgICAgICAgIGxlZnQgIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LXRhYmxlLWJyZWFrcG9pbnRzOiAoXG4gICAgczogMCxcbiAgICBtOiBzdHJpcC11bml0KG1hcC1nZXQoJEJSRUFLUE9JTlRTLCAkcHJvZHVjdC10YWJsZS1icmVha3BvaW50KSksXG4pICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBTZXQgc2VjdGlvbiBzcGFjaW5nIHJlc3BvbnNpdmx5IHZpYSBjb250YWluZXIgcXVlcnkgYmFzZWQgQ1NTIGN1c3RvbVxuICogICAgIHByb3BlcnR5LlxuICogICAgIFRoZSBzZWxlY3RvciBgLmMtcHJvZHVjdC10YWJsZWAgbmVlZHMgdG8gYmUgYWRkZWQgdG8gdGhlXG4gKiAgICAgYENvbnRhaW5lclF1ZXJ5YCBgY29tcG9uZW50U2VsZWN0b3JgIGluXG4gKiAgICAgYHBhY2thZ2VzL2Jyb25zb24tZGVmYXVsdC9zcmMvanMvbW9kdWxlL2NvbnRhaW5lci1xdWVyeS1vYnNlcnZlci5qc2BcbiAqICAgICBAVE9ETzogTWF5YmUgd2UgY291bGQgdXNlIF9yZWFsXyBjb250YWluZXIgcXVlcmllcyAob3IgYSBwb2x5ZmlsbCksXG4gKiAgICAgICAgICAgIHNvIG5vIGN1c3RvbSBTQ1NTL0pTIGh5YnJpZCBzb2x1dGlvbiBpcyBuZWVkZWQgYW55bW9yZS5cbiAqIFsyXSBSZW1vdmUgYm90dG9tIG1hcmdpbiBvZiB0aGUgbGFzdCBjaGlsZCBvZiBhIHNlY3Rpb24uXG4gKiBbM10gQWRkIGEgaG9yaXpvbnRhbCBib3JkZXIgYmV0d2VlbiBzZWN0aW9ucyBhdCB0aGUgaGFsZiBvZiB0aGUgc2VjdGlvbiBzcGFjaW5nLlxuICovXG5cbi5jLXByb2R1Y3QtdGFibGUge1xuICAgIC0tY29udGFpbmVyLXdpZHRoczogXCIje2NxLWNvbnZlcnQtZGF0YSgkcHJvZHVjdC10YWJsZS1icmVha3BvaW50cyl9XCI7IC8qIFsxXSAqL1xuICAgIC0tcHJvZHVjdC10YWJsZS1zZWN0aW9uLXNwYWNpbmc6ICN7JHByb2R1Y3QtdGFibGUtc2VjdGlvbi1zcGFjaW5nLXZlcnRpY2FsLWF0LWJyZWFrcG9pbnQgKiAyfTsgLyogWzFdICovXG5cbiAgICBAaW5jbHVkZSBjb250YWluZXIoJG1hcDogJHByb2R1Y3QtdGFibGUtYnJlYWtwb2ludHMsICRzaXplOiBcIm1cIikge1xuICAgICAgICAtLXByb2R1Y3QtdGFibGUtc2VjdGlvbi1zcGFjaW5nOiAjeyRwcm9kdWN0LXRhYmxlLXNlY3Rpb24tc3BhY2luZy12ZXJ0aWNhbCAqIDJ9OyAvKiBbMV0gKi9cbiAgICB9XG5cbiAgICBkaXNwbGF5OiBmbGV4OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIG9yZGVyL29yZGVyICovXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuICAgIC5jLXByb2R1Y3QtdGFibGVfX3RpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoJHByb2R1Y3QtdGFibGUtdGl0bGUtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcIm1hcmdpbi1ib3R0b21cIiwgJHByb2R1Y3QtdGFibGUtdGl0bGUtc3BhY2luZy1ib3R0b20pO1xuICAgICAgICBmb250LXdlaWdodDogJHByb2R1Y3QtdGFibGUtdGl0bGUtZm9udC13ZWlnaHQ7XG4gICAgfVxuXG4gICAgLmMtcHJvZHVjdC10YWJsZV9fc2VjdGlvbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IC8qIFsyXSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgKyAuYy1wcm9kdWN0LXRhYmxlX19zZWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXByb2R1Y3QtdGFibGUtc2VjdGlvbi1zcGFjaW5nKTsgLyogWzFdICovXG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7IC8qIFszXSAqL1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogY2FsYyh2YXIoLS1wcm9kdWN0LXRhYmxlLXNlY3Rpb24tc3BhY2luZykgLyAtMik7IC8qIFsxXSBbM10gKi9cbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6ICRwcm9kdWN0LXRhYmxlLXNlY3Rpb24tYm9yZGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXByb2R1Y3QtdGFibGVfX2l0ZW0tZGV0YWlsLWNvbW1lbnQge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkcHJvZHVjdC10YWJsZS1pdGVtLWRldGFpbC1jb21tZW50LWZvbnQtc2l6ZSk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXdlaWdodDogJHByb2R1Y3QtdGFibGUtaXRlbS1kZXRhaWwtY29tbWVudC1mb250LXdlaWdodDtcbiAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRhYmxlLWl0ZW0tZGV0YWlsLWNvbW1lbnQtdGV4dC1jb2xvcjtcbiAgICB9XG5cbiAgICAuYy1wcm9kdWN0LXRhYmxlX19pdGVtLXRlcm0tY29tbWVudCB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCRwcm9kdWN0LXRhYmxlLWl0ZW0tdGVybS1jb21tZW50LWZvbnQtc2l6ZSk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXdlaWdodDogJHByb2R1Y3QtdGFibGUtaXRlbS10ZXJtLWNvbW1lbnQtZm9udC13ZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkcHJvZHVjdC10YWJsZS1pdGVtLXRlcm0tY29tbWVudC10ZXh0LWNvbG9yO1xuICAgIH1cblxuICAgIC5jLXByb2R1Y3QtdGFibGVfX2lubmVyLXRpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoJHByb2R1Y3QtdGFibGUtaW5uZXItdGl0bGUtZm9udC1zaXplKTtcbiAgICAgICAgbWFyZ2luLXRvcDogJHByb2R1Y3QtdGFibGUtaW5uZXItdGl0bGUtc3BhY2luZy10b3A7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LXRhYmxlLWlubmVyLXRpdGxlLXNwYWNpbmctYm90dG9tO1xuICAgICAgICBmb250LXdlaWdodDogJHByb2R1Y3QtdGFibGUtaW5uZXItdGl0bGUtZm9udC13ZWlnaHQ7XG4gICAgICAgIHRleHQtYWxpZ246ICRwcm9kdWN0LXRhYmxlLWlubmVyLXRpdGxlLWFsaWdubWVudDtcbiAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRhYmxlLWlubmVyLXRpdGxlLXRleHQtY29sb3I7XG4gICAgfVxuXG4gICAgLmMtcHJvZHVjdC10YWJsZV9fc2VjdGlvbi0tc3VtbWFyeSB7IC8qIFs0XSAqL1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItdG9wLXdpZHRoOiAkcHJvZHVjdC10YWJsZS1zdW1tYXJ5LWJvcmRlci10b3Atd2lkdGg7XG4gICAgICAgICAgICBib3JkZXItdG9wLXN0eWxlOiAkcHJvZHVjdC10YWJsZS1zdW1tYXJ5LWJvcmRlci10b3Atc3R5bGU7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkcHJvZHVjdC10YWJsZS1zdW1tYXJ5LWJvcmRlci10b3AtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAuYy1wcm9kdWN0LXRhYmxlX19zdW1tYXJ5LXRlcm0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoJHByb2R1Y3QtdGFibGUtc3VtbWFyeS10ZXJtLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJHByb2R1Y3QtdGFibGUtc3VtbWFyeS10ZXJtLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRwcm9kdWN0LXRhYmxlLXN1bW1hcnktdGVybS1mb250LXdlaWdodDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJvZHVjdC10YWJsZS1zdW1tYXJ5LXRlcm0tdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXByb2R1Y3QtdGFibGVfX3N1bW1hcnktZGV0YWlsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCRwcm9kdWN0LXRhYmxlLXN1bW1hcnktZGV0YWlsLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJHByb2R1Y3QtdGFibGUtc3VtbWFyeS1kZXRhaWwtZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHByb2R1Y3QtdGFibGUtc3VtbWFyeS1kZXRhaWwtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGFibGUtc3VtbWFyeS1kZXRhaWwtdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXByb2R1Y3QtdGFibGVfX2luZm9ybWF0aW9uIHtcbiAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGFibGUtaW5mb3JtYXRpb24tZm9udC1zaXplKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoJHByb2R1Y3QtdGFibGUtaW5mb3JtYXRpb24tZm9udC1zaXplKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJvZHVjdC10YWJsZS1pbmZvcm1hdGlvbi1mb250LXdlaWdodDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJvZHVjdC10YWJsZS1pbmZvcm1hdGlvbi10ZXh0LWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtcHJvZHVjdC10YWJsZV9faW5mb3JtYXRpb24uYy1wcm9kdWN0LXRhYmxlX19pbmZvcm1hdGlvbi5jLXByb2R1Y3QtdGFibGVfX2luZm9ybWF0aW9uIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBuby1kdXBsaWNhdGUtc2VsZWN0b3JzLCBzZWxlY3Rvci1tYXgtY2xhc3MgKi8gLyogWzRdICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkcHJvZHVjdC10YWJsZS1pbmZvcm1hdGlvbi1hbGlnbm1lbnQ7XG4gICAgICAgIH1cblxuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNTUElOTkVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQHVzZSBcInNhc3M6bWF0aFwiIGFzICo7XG5cbi8vIGAkc3Bpbm5lci1zdHlsZWAgY2FuIGJlIGVpdGhlciBgZG90c2AsIGBjaXJjbGVgLCBgc3RyaXBlYCwgYGxvZ29gIG9yIGBmbGFzaGluZyBkb3RzYC5cbiRzcGlubmVyLXN0eWxlOiAgICAgICAgICAgICAgICAgY2lyY2xlICFkZWZhdWx0O1xuJHNwaW5uZXItc2l6ZTogICAgICAgICAgICAgICAgICA4MHB4ICFkZWZhdWx0O1xuJHNwaW5uZXItc2l6ZS1zbWFsbDogICAgICAgICAgICA0MHB4ICFkZWZhdWx0O1xuJHNwaW5uZXItZHVyYXRpb246ICAgICAgICAgICAgICAxcyAhZGVmYXVsdDtcbiRzcGlubmVyLXRpbWluZzogICAgICAgICAgICAgICAgbGluZWFyICFkZWZhdWx0O1xuJHNwaW5uZXItei1pbmRleDogICAgICAgICAgICAgICB6KFwic3Bpbm5lclwiKSAhZGVmYXVsdDtcbiRzcGlubmVyLWJhY2tkcm9wLXotaW5kZXg6ICAgICAgJHNwaW5uZXItei1pbmRleCAtIDEgIWRlZmF1bHQ7XG4kc3Bpbm5lci1iYWNrZHJvcC1jb2xvcjogICAgICAgICRHTE9CQUwtQkFDS0RST1AtQkFDS0dST1VORCAhZGVmYXVsdDtcbiRzcGlubmVyLWJhY2tkcm9wLWZpbHRlcjogICAgICAgbnVsbCAhZGVmYXVsdDtcbiRzcGlubmVyLXNoYWRvdzogICAgICAgICAgICAgICAgbm9uZSAhZGVmYXVsdDtcblxuLy8gSnVzdCByZWxldmFudCBmb3IgdGhlIGBjaXJjbGVgIHZhcmlhbnQuXG4kc3Bpbm5lci1ib3JkZXItcmFkaXVzOiAgICAgICAgIDUwJSAhZGVmYXVsdDtcbiRzcGlubmVyLWJvcmRlci13aWR0aDogICAgICAgICAgM3B4ICFkZWZhdWx0O1xuJHNwaW5uZXItYm9yZGVyLXdpZHRoLXNtYWxsOiAgICAycHggIWRlZmF1bHQ7XG4kc3Bpbm5lci1ib3JkZXItc3R5bGU6ICAgICAgICAgIHNvbGlkICFkZWZhdWx0O1xuJHNwaW5uZXItYm9yZGVyLWNvbG9yOiAgICAgICAgICAkQ09MT1ItU1VCVExFICFkZWZhdWx0O1xuJHNwaW5uZXItYm9yZGVyLWNvbG9yLWFjdGl2ZTogICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kc3Bpbm5lci1ib3JkZXI6ICAgICAgICAgICAgICAgICRzcGlubmVyLWJvcmRlci13aWR0aCAkc3Bpbm5lci1ib3JkZXItc3R5bGUgJHNwaW5uZXItYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuXG4vLyBKdXN0IHJlbGV2YW50IGZvciB0aGUgYGRvdHNgIHZhcmlhbnQuXG4kc3Bpbm5lci1zdGVwczogICAgICAgICAgICAgICAgIDggIWRlZmF1bHQ7XG4kc3Bpbm5lci1kb3Qtc2l6ZTogICAgICAgICAgICAgIDEycHggIWRlZmF1bHQ7XG4kc3Bpbm5lci1kb3Qtc2l6ZS1zbWFsbDogICAgICAgIDZweCAhZGVmYXVsdDtcbiRzcGlubmVyLWRvdC1yYWRpdXM6ICAgICAgICAgICAgNTAlICFkZWZhdWx0O1xuJHNwaW5uZXItZG90LWNvbG9yOiAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kc3Bpbm5lci1kb3Qtb3BhY2l0eS1kZWZhdWx0OiAgIDAuMiAhZGVmYXVsdDtcbiRzcGlubmVyLWRvdC1vcGFjaXR5LWZ1bGw6ICAgICAgMSAhZGVmYXVsdDtcblxuLy8gSnVzdCByZWxldmFudCBmb3IgdGhlIGBzdHJpcGVgIHZhcmlhbnQuXG4kc3Bpbm5lci1zdHJpcGUtbGVuZ3RoOiAgICAgICAgIDU0cHggIWRlZmF1bHQ7XG4kc3Bpbm5lci1zdHJpcGUtbGVuZ3RoLXNtYWxsOiAgIDVweCAhZGVmYXVsdDtcbiRzcGlubmVyLXN0cmlwZS1icmVhZHRoOiAgICAgICAgMThweCAhZGVmYXVsdDtcbiRzcGlubmVyLXN0cmlwZS1icmVhZHRoLXNtYWxsOiAgMnB4ICFkZWZhdWx0O1xuJHNwaW5uZXItc3RyaXBlLXJhZGl1czogICAgICAgICA5cHggIWRlZmF1bHQ7XG4kc3Bpbm5lci1zdHJpcGUtY29sb3ItZGVmYXVsdDogICRDT0xPUi1TVUJUTEUgIWRlZmF1bHQ7XG4kc3Bpbm5lci1zdHJpcGUtY29sb3ItYWN0aXZlOiAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcblxuLy8gSnVzdCByZWxldmFudCBmb3IgdGhlIGB0ZXh0YCB2YXJpYW50LlxuJHNwaW5uZXItdGV4dC1wYWRkaW5nOiAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRzcGlubmVyLXRleHQtbWFyZ2luOiAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kc3Bpbm5lci10ZXh0LWJhY2tncm91bmQtY29sb3I6ICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRzcGlubmVyLXRleHQtY29sb3I6ICAgICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJHNwaW5uZXItdGV4dC1mb250LXNpemU6ICAgICAgICAkRlMwICFkZWZhdWx0O1xuJHNwaW5uZXItdGV4dC1ib3JkZXItcmFkaXVzOiAgICBudWxsICFkZWZhdWx0O1xuXG4kc3Bpbm5lci10ZXh0LWNvbnRlbnQtd2lkdGhzOiAoXG4gICAgbnVsbDogcGVyY2VudGFnZShkaXYoNCwgMTIpKSxcbiAgICBsOiAgICBwZXJjZW50YWdlKGRpdig2LCAxMikpLFxuICAgIG06ICAgIHBlcmNlbnRhZ2UoZGl2KDgsIDEyKSksXG4gICAgczogICAgY2FsYygxMDB2dyAtICN7JEdMT0JBTC1TUEFDSU5HLVVOSVQtWExBUkdFfSksXG4pICFkZWZhdWx0O1xuXG4vLyBDb250cm9sIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBzcGlubmVyIHZpYSB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgbWFya3VwLlxuJHNwaW5uZXItbG9hZGluZy1zZWxlY3RvcjogICAgICBcIlthcmlhLWJ1c3k9J3RydWUnXVwiICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBNYWdpYyBudW1iZXIgdGhhdCBwbGFjZXMgdGhlIOKAmGNvcm5lcuKAmSBkb3RzL3N0cmlwZSBjb3JyZWN0bHkgdG8gZm9ybSBhXG4gKiAgICAgcGVyZmVjdCBjaXJjbGUuIElmIHNvbWVvbmUgY2FuIGNvbWUgdXAgd2l0aCB0aGUgY29ycmVjdCBmb3JtdWxhIG9mXG4gKiAgICAgY2FsY3VsYXRpbmcgdGhpcyBwcm9wZXJseS4uLnlvdSdyZSBhIGZyZWFrISBCdXQgaXTigJlsbCBiZSBuaWNlLFxuICogICAgIG5vbmV0aGVsZXNzLlxuICogWzJdIFVzZSBhbiBgaW5zZXRgIGJveCBzaGFkb3csIHNvIHRoYXQgdGhlIG91dGVyIGJvcmRlciAodGhpcyBib3gtc2hhZG93IG9uZSlcbiAqICAgICBhbmQgdGhlIG92ZXJsYXlpbmcgaW5uZXIgYm9yZGVyIG9mIHRoZSBwc2V1ZG8gZWxlbWVudCBhcmUgbWF0Y2hpbmdcbiAqICAgICBleGFjdGx5LlxuICogWzNdIFNldCB0cmFuc2l0aW9uIHRvIGZhZGUgaW4vb3V0IHRoZSBzcGlubmVyIHdoZW4gaXQgaXMgc2hvd24vaGlkZGVuXG4gKiAgICAgZHluYW1pY2FsbHkuXG4gKiBbNF0gVGFrZSB1cCB0aGUgc2l6ZSBmcm9tIHRoZSBwYXJlbnQgKGAuYy1zcGlubmVyX19sb2FkZXJgKS5cbiAqIFs1XSBDcmVhdGUgYSBQYWMtTWFuIHNoYXBlIGJ5IG9taXR0aW5nIHRoZSBib3R0b20gYm9yZGVyIGNvbG9yLlxuICogWzZdIFBsYWNlIHRoZSBzcGlubmVyIG9mIHRoZSBmdWxsLXBhZ2UsIHRleHQgYW5kIHNlY3Rpb24gdmFyaWFudCBwcmVjaXNlbHlcbiAqICAgICBpbiB0aGUgY2VudGVyIG9mIHRoZSBiYWNrZHJvcC5cbiAqIFs3XSBSZW1vdmUgbWFyZ2lucyBmcm9tIGFueSBlbGVtZW50IGluc2lkZSB0aGUgdGV4dCBjb250YWluZXIuXG4gKi9cbi5jLXNwaW5uZXIge1xuXG4gICAgJi5jLXNwaW5uZXItLWZ1bGwtcGFnZSxcbiAgICAmLmMtc3Bpbm5lci0tc2VjdGlvbixcbiAgICAmLmMtc3Bpbm5lci0tdGV4dCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAvLyBUaGUgYmFja2Ryb3AuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBiYWNrZHJvcChcbiAgICAgICAgICAgICAgICAkY29sb3I6ICAgICRzcGlubmVyLWJhY2tkcm9wLWNvbG9yLFxuICAgICAgICAgICAgICAgICRwb3NpdGlvbjogYWJzb2x1dGUsXG4gICAgICAgICAgICAgICAgJGZpbHRlcjogICAkc3Bpbm5lci1iYWNrZHJvcC1maWx0ZXIsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigpO1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzcGlubmVyLWJhY2tkcm9wLXotaW5kZXg7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJiN7JHNwaW5uZXItbG9hZGluZy1zZWxlY3Rvcn0ge1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmLmMtc3Bpbm5lci0tZnVsbC1wYWdlLFxuICAgICYuYy1zcGlubmVyLS10ZXh0IHtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmLmMtc3Bpbm5lci0tY2VudGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJi5jLXNwaW5uZXItLXRleHQge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG59XG5cbiAgICAuYy1zcGlubmVyX19sb2FkZXIge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCk7IC8qIFszXSAqL1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzcGlubmVyLXotaW5kZXg7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAkc3Bpbm5lci1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzcGlubmVyLXNpemU7XG5cbiAgICAgICAgQGlmICgkc3Bpbm5lci1zdHlsZSA9PSBjaXJjbGUpIHtcblxuICAgICAgICAgICAgLy8gVGhlIHNwaW5uZXIgY2lyY2xlIGl0c2VsZi5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qIFs0XSAqL1xuICAgICAgICAgICAgICAgIHRvcDogMDsgLyogWzRdICovXG4gICAgICAgICAgICAgICAgbGVmdDogMDsgLyogWzRdICovXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRzcGlubmVyLXNpemU7IC8qIFs0XSAqL1xuICAgICAgICAgICAgICAgIGhlaWdodDogJHNwaW5uZXItc2l6ZTsgLyogWzRdICovXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHNwaW5uZXItYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkc3Bpbm5lci1ib3JkZXItd2lkdGggJHNwaW5uZXItYm9yZGVyLWNvbG9yIGluc2V0OyAvKiBbMl0gKi9cblxuICAgICAgICAgICAgICAgIC5jLXNwaW5uZXItLXNtYWxsICYge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJHNwaW5uZXItc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkc3Bpbm5lci1zaXplLXNtYWxsO1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkc3Bpbm5lci1ib3JkZXItd2lkdGgtc21hbGwgJHNwaW5uZXItYm9yZGVyLWNvbG9yIGluc2V0OyAvKiBbMl0gKi9cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVGhlIG92ZXJsYXlpbmcgYm9yZGVyIG9mIHRoZSBjaXJjbGUuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRzcGlubmVyLXNpemU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkc3Bpbm5lci1zaXplO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJHNwaW5uZXItYm9yZGVyLXdpZHRoICRzcGlubmVyLWJvcmRlci1zdHlsZSAkc3Bpbm5lci1ib3JkZXItY29sb3ItYWN0aXZlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRzcGlubmVyLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW5uZXItY2lyY2xlLWFuaW1hdGlvbjtcbiAgICAgICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246ICRzcGlubmVyLWR1cmF0aW9uO1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICRzcGlubmVyLXRpbWluZztcbiAgICAgICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogWzVdICovXG5cbiAgICAgICAgICAgICAgICAuYy1zcGlubmVyLS1zbWFsbCAmIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICRzcGlubmVyLXNpemUtc21hbGw7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJHNwaW5uZXItc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAkc3Bpbm5lci1ib3JkZXItd2lkdGgtc21hbGw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXNwaW5uZXIjeyRzcGlubmVyLWxvYWRpbmctc2VsZWN0b3J9ICYge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAuYy1zcGlubmVyLS1zbWFsbCAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc3Bpbm5lci1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc3Bpbm5lci1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtc3Bpbm5lci0tc2VjdGlvbiAmLFxuICAgICAgICAuYy1zcGlubmVyLS1mdWxsLXBhZ2U6bm90KC5jLXNwaW5uZXItLXRleHQpICYge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7IC8qIFs2XSAqL1xuICAgICAgICAgICAgbGVmdDogNTAlOyAvKiBbNl0gKi9cbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyAvKiBbNl0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXNwaW5uZXItLWZ1bGwtcGFnZTpub3QoLmMtc3Bpbm5lci0tdGV4dCkgJiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAuYy1zcGlubmVyLS10ZXh0ICYge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXNwaW5uZXJfX2NvbnRlbnQge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFwid2lkdGhcIiwgJHNwaW5uZXItdGV4dC1jb250ZW50LXdpZHRocyk7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgei1pbmRleDogJHNwaW5uZXItei1pbmRleDtcbiAgICAgICAgdG9wOiA1MCU7IC8qIFs2XSAqL1xuICAgICAgICBsZWZ0OiA1MCU7IC8qIFs2XSAqL1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBwYWRkaW5nOiAkc3Bpbm5lci10ZXh0LXBhZGRpbmc7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyAvKiBbNl0gKi9cbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNwaW5uZXItdGV4dC1ib3JkZXItcmFkaXVzO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3Bpbm5lci10ZXh0LWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIGJveC1zaGFkb3c6ICRzcGlubmVyLXNoYWRvdztcblxuICAgICAgICAuYy1zcGlubmVyI3skc3Bpbm5lci1sb2FkaW5nLXNlbGVjdG9yfSAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1zcGlubmVyX190ZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoJHNwaW5uZXItdGV4dC1mb250LXNpemUpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkc3Bpbm5lci10ZXh0LW1hcmdpbjtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHNwaW5uZXItdGV4dC1wYWRkaW5nO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzcGlubmVyLXRleHQtcGFkZGluZztcbiAgICAgICAgY29sb3I6ICRzcGlubmVyLXRleHQtY29sb3I7XG5cbiAgICAgICAgKiB7XG4gICAgICAgICAgICBtYXJnaW46IDA7IC8qIFs3XSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1zcGlubmVyX19lbGVtZW50IHtcblxuICAgICAgICBAaWYgKCRzcGlubmVyLXN0eWxlID09IGRvdHMpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzcGlubmVyLWRvdC1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc3Bpbm5lci1kb3Qtc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRzcGlubmVyLWRvdC1yYWRpdXM7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3Bpbm5lci1kb3QtY29sb3I7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbm5lci1kb3RzLWFuaW1hdGlvbjtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogJHNwaW5uZXItZHVyYXRpb247XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIG9wYWNpdHk6ICRzcGlubmVyLWRvdC1vcGFjaXR5LWRlZmF1bHQ7XG5cbiAgICAgICAgICAgIC5jLXNwaW5uZXIuYy1zcGlubmVyLS1zbWFsbCAmIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJHNwaW5uZXItZG90LXNpemUtc21hbGw7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkc3Bpbm5lci1kb3Qtc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBhbmltYXRpb24gZGVsYXkgZm9yIGVhY2ggZG90LCBzbyB0aGF0IHdoZW5cbiAgICAgICAgICAgIC8vIHRoZSBkdXJhdGlvbiBzaG91bGQgY2hhbmdlLCB3ZSBkb27igJl0IGhhdmUgdG8gbWFudWFsbHlcbiAgICAgICAgICAgIC8vIGNhbGN1bGF0ZSB0aGUgbmV3IGRlbGF5IHZhbHVlcyBhZ2Fpbi5cbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBJdGVyYXRlIHRocm91Z2ggYWxsIGRvdHMuXG4gICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRzcGlubmVyLXN0ZXBzIHtcblxuICAgICAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgYDpudGgtY2hpbGRgIHNlbGVjdG9yIGZvciBlYWNoIGRvdCBhY2NvcmRpbmdseS5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHRpbWluZyBvZmZzZXQgYmV0d2VlbiBlYWNoIGRvdCAoZHVyYXRpb24gLyBzdGVwcylcbiAgICAgICAgICAgICAgICAgICAgLy8gYW5kIG11bHRpcGx5IHRoaXMgd2l0aCB0aGUgbnVtYmVyIG9mIHRoZSBjdXJyZW50IHN0ZXAuXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogZGl2KCRzcGlubmVyLWR1cmF0aW9uLCAkc3Bpbm5lci1zdGVwcykgKiAoJGkpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBFYWNoIGRvdCBpcyBwbGFjZWQgaW5kaXZpZHVhbGx5IGBhYnNvbHV0ZWAgaW4gdGhlIGAuYy1zcGlubmVyYFxuICAgICAgICAgICAgLy8gY29udGFpbmVyLlxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAgICAgdG9wOiAxMS41JTsgLyogWzFdICovXG4gICAgICAgICAgICAgICAgcmlnaHQ6IDExLjUlOyAvKiBbMV0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoNCkge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAxMS41JTsgLyogWzFdICovXG4gICAgICAgICAgICAgICAgYm90dG9tOiAxMS41JTsgLyogWzFdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDUpIHtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoNikge1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMTEuNSU7IC8qIFsxXSAqL1xuICAgICAgICAgICAgICAgIGxlZnQ6IDExLjUlOyAvKiBbMV0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoNykge1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm50aC1jaGlsZCg4KSB7XG4gICAgICAgICAgICAgICAgdG9wOiAxMS41JTsgLyogWzFdICovXG4gICAgICAgICAgICAgICAgbGVmdDogMTEuNSU7IC8qIFsxXSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0gQGVsc2UgaWYgKCRzcGlubmVyLXN0eWxlID09IHN0cmlwZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNwaW5uZXItc3RyaXBlLWJyZWFkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzcGlubmVyLXN0cmlwZS1sZW5ndGg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkc3Bpbm5lci1zdHJpcGUtcmFkaXVzO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNwaW5uZXItc3RyaXBlLWNvbG9yLWRlZmF1bHQ7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbm5lci1zdHJpcGUtYW5pbWF0aW9uO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAkc3Bpbm5lci1kdXJhdGlvbjtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICRzcGlubmVyLXRpbWluZztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuXG4gICAgICAgICAgICAuYy1zcGlubmVyLmMtc3Bpbm5lci0tc21hbGwgJiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRzcGlubmVyLXN0cmlwZS1icmVhZHRoLXNtYWxsO1xuICAgICAgICAgICAgICAgIGhlaWdodDogJHNwaW5uZXItc3RyaXBlLWxlbmd0aC1zbWFsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBhbmltYXRpb24gZGVsYXkgZm9yIGVhY2ggc3RyaXBlLCBzbyB0aGF0IHdoZW5cbiAgICAgICAgICAgIC8vIHRoZSBkdXJhdGlvbiBzaG91bGQgY2hhbmdlLCB3ZSBkb27igJl0IGhhdmUgdG8gbWFudWFsbHlcbiAgICAgICAgICAgIC8vIGNhbGN1bGF0ZSB0aGUgbmV3IGRlbGF5IHZhbHVlcyBhZ2Fpbi5cbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBJdGVyYXRlIHRocm91Z2ggYWxsIHN0cmlwZS5cbiAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHNwaW5uZXItc3RlcHMge1xuXG4gICAgICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBgOm50aC1jaGlsZGAgc2VsZWN0b3IgZm9yIGVhY2ggc3RyaXBlIGFjY29yZGluZ2x5LlxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgdGltaW5nIG9mZnNldCBiZXR3ZWVuIGVhY2ggc3RyaXBlIChkdXJhdGlvbiAvIHN0ZXBzKVxuICAgICAgICAgICAgICAgICAgICAvLyBhbmQgbXVsdGlwbHkgdGhpcyB3aXRoIHRoZSBudW1iZXIgb2YgdGhlIGN1cnJlbnQgc3RlcC5cbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiBkaXYoJHNwaW5uZXItZHVyYXRpb24sICRzcGlubmVyLXN0ZXBzKSAqICgkaSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEVhY2ggc3RyaXBlIGlzIHBsYWNlZCBpbmRpdmlkdWFsbHkgYGFic29sdXRlYCBpbiB0aGUgYC5jLXNwaW5uZXJgXG4gICAgICAgICAgICAvLyBjb250YWluZXIuXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgICAgICB0b3A6IDExLjUlOyAvKiBbMV0gKi9cbiAgICAgICAgICAgICAgICByaWdodDogMTcuNSU7IC8qIFsxXSAqL1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDAuMTI1dHVybik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtKCRzcGlubmVyLXN0cmlwZS1icmVhZHRoICowLjUpLCAtKCgkc3Bpbm5lci1zdHJpcGUtbGVuZ3RoICogMC41KSArICgkc3Bpbm5lci1zdHJpcGUtYnJlYWR0aCAqMC41KSkpIHJvdGF0ZSgwLjI1dHVybik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcblxuICAgICAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbiAgICAgICAgICAgICAgICAuYy1zcGlubmVyLmMtc3Bpbm5lci0tc21hbGwgJiB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0oJHNwaW5uZXItc3RyaXBlLWJyZWFkdGgtc21hbGwgKjAuNSksIC0oKCRzcGlubmVyLXN0cmlwZS1sZW5ndGgtc21hbGwgKiAwLjUpICsgKCRzcGlubmVyLXN0cmlwZS1icmVhZHRoLXNtYWxsICowLjUpKSkgcm90YXRlKDAuMjV0dXJuKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoNCkge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAxNy41JTsgLyogWzFdICovXG4gICAgICAgICAgICAgICAgYm90dG9tOiAxMS41JTsgLyogWzFdICovXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMC4zNzV0dXJuKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoNSkge1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm50aC1jaGlsZCg2KSB7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAxMS41JTsgLyogWzFdICovXG4gICAgICAgICAgICAgICAgbGVmdDogMTcuNSU7IC8qIFsxXSAqL1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDAuNjI1dHVybik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDcpIHtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKCgkc3Bpbm5lci1zdHJpcGUtYnJlYWR0aCAqMC41KSwgLSgoJHNwaW5uZXItc3RyaXBlLWxlbmd0aCAqIDAuNSkgKyAoJHNwaW5uZXItc3RyaXBlLWJyZWFkdGggKjAuNSkpKSByb3RhdGUoMC43NXR1cm4pO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0O1xuXG4gICAgICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuICAgICAgICAgICAgICAgIC5jLXNwaW5uZXIuYy1zcGlubmVyLS1zbWFsbCAmIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoKCRzcGlubmVyLXN0cmlwZS1icmVhZHRoLXNtYWxsICowLjUpLCAtKCgkc3Bpbm5lci1zdHJpcGUtbGVuZ3RoLXNtYWxsICogMC41KSArICgkc3Bpbm5lci1zdHJpcGUtYnJlYWR0aC1zbWFsbCAqMC41KSkpIHJvdGF0ZSgwLjc1dHVybik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDgpIHtcbiAgICAgICAgICAgICAgICB0b3A6IDExLjUlOyAvKiBbMV0gKi9cbiAgICAgICAgICAgICAgICBsZWZ0OiAxNy41JTsgLyogWzFdICovXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMC44NzV0dXJuKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgIH1cblxuLy8gVGhlIGFuaW1hdGlvbiBmb3IgdGhlIGBjaXJjbGVgIHZhcmlhbnQuXG5Aa2V5ZnJhbWVzIHNwaW5uZXItY2lyY2xlLWFuaW1hdGlvbiB7XG5cbiAgICBmcm9tIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMHR1cm4pO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMXR1cm4pO1xuICAgIH1cblxufVxuXG4vLyBUaGUgYW5pbWF0aW9uIGZvciB0aGUgYGRvdHNgIHZhcmlhbnQuXG5Aa2V5ZnJhbWVzIHNwaW5uZXItZG90cy1hbmltYXRpb24ge1xuXG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAkc3Bpbm5lci1kb3Qtb3BhY2l0eS1kZWZhdWx0O1xuICAgIH1cblxuICAgIDUwJSB7XG4gICAgICAgIG9wYWNpdHk6ICRzcGlubmVyLWRvdC1vcGFjaXR5LWZ1bGw7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6ICRzcGlubmVyLWRvdC1vcGFjaXR5LWRlZmF1bHQ7XG4gICAgfVxuXG59XG5cbi8vIFRoZSBhbmltYXRpb24gZm9yIHRoZSBgc3RyaXBlYCB2YXJpYW50LlxuQGtleWZyYW1lcyBzcGlubmVyLXN0cmlwZS1hbmltYXRpb24ge1xuXG4gICAgMCUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3Bpbm5lci1zdHJpcGUtY29sb3ItZGVmYXVsdDtcbiAgICB9XG5cbiAgICAxMi41JSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzcGlubmVyLXN0cmlwZS1jb2xvci1hY3RpdmU7XG4gICAgfVxuXG4gICAgMjUlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNwaW5uZXItc3RyaXBlLWNvbG9yLWRlZmF1bHQ7XG4gICAgfVxuXG59XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjU1BJTk5FUiAoU2V0dGluZ3MpXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNwaW5uZXItc3R5bGU6ICAgICAgICAgICAgICBjaXJjbGUgIWRlZmF1bHQ7XG4kc3Bpbm5lci1zaXplOiAgICAgICAgICAgICAgIDY0cHggIWRlZmF1bHQ7XG4kc3Bpbm5lci1zaXplLXNtYWxsOiAgICAgICAgIDI0cHggIWRlZmF1bHQ7XG4kc3Bpbm5lci1zaGFkb3c6ICAgICAgICAgICAgICREUk9QLVNIQURPVy1YTCAhZGVmYXVsdDtcblxuJHNwaW5uZXItYm9yZGVyLXdpZHRoOiAgICAgICA4cHggIWRlZmF1bHQ7XG4kc3Bpbm5lci1ib3JkZXItd2lkdGgtc21hbGw6IDRweCAhZGVmYXVsdDtcbiRzcGlubmVyLWJvcmRlci1jb2xvcjogICAgICAgJENPTE9SLU9OLVNVUkZBQ0UtMTAwICFkZWZhdWx0O1xuXG4kc3Bpbm5lci10aW1pbmc6ICAgICAgICAgICAgIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4kc3Bpbm5lci10ZXh0LWNvbG9yOiAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kc3Bpbm5lci10ZXh0LWJvcmRlci1yYWRpdXM6ICRHTE9CQUwtQk9SREVSLVJBRElVUyAhZGVmYXVsdDtcbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNTUElOTkVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNrb2RhLXNwaW5uZXItY29udGVudC1iYWNrZHJvcC1maWx0ZXI6ICRCQUNLRFJPUC1GSUxURVIgIWRlZmF1bHQ7XG5cbi5jLXNwaW5uZXIge1xuXG4gICAgLy8gQmFja2Ryb3BcbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBiYWNrZHJvcC1maWx0ZXI6ICRza29kYS1zcGlubmVyLWNvbnRlbnQtYmFja2Ryb3AtZmlsdGVyO1xuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0NVU1RPTS1SQU5HRS1TTElERVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQHVzZSBcInNhc3M6bWF0aFwiIGFzICo7XG5cbiRjdXN0b20tcmFuZ2Utc2xpZGVyLXRyYWNrLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAkUkFOR0UtU0xJREVSLVRSQUNLLUhFSUdIVCAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2Utc2xpZGVyLXRyYWNrLXRvdWNoLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICA0MHB4ICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItdHJhY2stYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAgICRSQU5HRS1TTElERVItVFJBQ0stQkFDS0dST1VORC1DT0xPUiAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2Utc2xpZGVyLXRyYWNrLWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQ6ICAgICAgICAkUkFOR0UtU0xJREVSLVRSQUNLLUJBQ0tHUk9VTkQtQ09MT1ItRElTQUJMRUQgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXNsaWRlci10cmFjay1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgICAgJFJBTkdFLVNMSURFUi1UUkFDSy1CT1JERVItUkFESVVTICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItdHJhY2stZmlsbGVkLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICRSQU5HRS1TTElERVItVFJBQ0stRklMTEVELUJBQ0tHUk9VTkQtQ09MT1IgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXNsaWRlci10cmFjay1maWxsZWQtYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDogJFJBTkdFLVNMSURFUi1UUkFDSy1CQUNLR1JPVU5ELUNPTE9SLURJU0FCTEVEICFkZWZhdWx0O1xuXG4kY3VzdG9tLXJhbmdlLXNsaWRlci10aHVtYi1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFJBTkdFLVNMSURFUi1USFVNQi1TSVpFICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItdGh1bWItaGFzLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICRSQU5HRS1TTElERVItVEhVTUItSEFTLUJPUkRFUiAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkUkFOR0UtU0xJREVSLVRIVU1CLUJPUkRFUi1DT0xPUiAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLWJvcmRlci1jb2xvci1kaXNhYmxlZDogICAgICAgICAgICAkUkFOR0UtU0xJREVSLVRIVU1CLUJPUkRFUi1DT0xPUi1ESVNBQkxFRCAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAgICAkUkFOR0UtU0xJREVSLVRIVU1CLUJPUkRFUi1XSURUSCAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAkY3VzdG9tLXJhbmdlLXNsaWRlci10aHVtYi1ib3JkZXItd2lkdGggc29saWQgJGN1c3RvbS1yYW5nZS1zbGlkZXItdGh1bWItYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItdGh1bWItYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgICAgICRSQU5HRS1TTElERVItVEhVTUItQk9SREVSLVJBRElVUyAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgICAkUkFOR0UtU0xJREVSLVRIVU1CLUJBQ0tHUk9VTkQtQ09MT1IgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXNsaWRlci10aHVtYi1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkOiAgICAgICAgJFJBTkdFLVNMSURFUi1USFVNQi1CQUNLR1JPVU5ELUNPTE9SLURJU0FCTEVEICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItdGh1bWItaGFzLWRvdDogICAgICAgICAgICAgICAgICAgICAgICAgICRSQU5HRS1TTElERVItVEhVTUItSEFTLURPVCAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLWRvdC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAkUkFOR0UtU0xJREVSLVRIVU1CLURPVC1TSVpFICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItdGh1bWItZG90LWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICRSQU5HRS1TTElERVItVEhVTUItRE9ULUJBQ0tHUk9VTkQtQ09MT1IgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXNsaWRlci10aHVtYi1kb3QtYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDogICAgJFJBTkdFLVNMSURFUi1USFVNQi1ET1QtQkFDS0dST1VORC1DT0xPUi1ESVNBQkxFRCAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLW9mZnNldDogICAgICAgICAgICAgICAgICAgICAgICAgICBjZWlsKCgkY3VzdG9tLXJhbmdlLXNsaWRlci10cmFjay1oZWlnaHQgKiAwLjUpKSAhZGVmYXVsdDtcblxuJGN1c3RvbS1yYW5nZS1zbGlkZXItdGh1bWItdHJhbnNpdGlvbi1wcm9wZXJ0eTogICAgICAgICAgICAgICRHTE9CQUwtVFJBTlNJVElPTi1QUk9QRVJUWSAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLXRyYW5zaXRpb24tZHVyYXRpb246ICAgICAgICAgICAgICAkR0xPQkFMLVRSQU5TSVRJT04tRFVSQVRJT04gIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXNsaWRlci10aHVtYi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogICAgICAgJEdMT0JBTC1UUkFOU0lUSU9OLVRJTUlORy1GVU5DVElPTiAhZGVmYXVsdDtcblxuJGN1c3RvbS1yYW5nZS1zbGlkZXItc3BhY2luZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgIGNlaWwoKCRjdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLXNpemUgKiAwLjUpKSAhZGVmYXVsdDtcblxuJGN1c3RvbS1yYW5nZS1zbGlkZXItcGlwcy1kaXNwbGF5LXZhbHVlczogICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXNsaWRlci1waXBzLXZhbHVlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgJEdMT0JBTC1GT05ULVNJWkUgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXNsaWRlci1waXBzLXZhbHVlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1MQUJFTC1GT05ULVdFSUdIVCAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2Utc2xpZGVyLXBpcHMtdmFsdWUtb2Zmc2V0LXRvLW1hcmtlcjogICAgICAgICAgICAxMHB4ICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItcGlwcy12YWx1ZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXNsaWRlci1waXBzLXZhbHVlLWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgICAgJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItcGlwcy1tYXJrZXItc2l6ZTogICAgICAgICAgICAgICAgICAgICAgIDhweCAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2Utc2xpZGVyLXBpcHMtbWFya2VyLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAkY3VzdG9tLXJhbmdlLXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLWNvbG9yICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItcGlwcy1tYXJrZXItYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDogICRjdXN0b20tcmFuZ2Utc2xpZGVyLXRyYWNrLWZpbGxlZC1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItcGlwcy1tYXJrZXItaGFzLWRvdDogICAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItcGlwcy1tYXJrZXItZG90LXNpemU6ICAgICAgICAgICAgICAgICAgIDhweCAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2Utc2xpZGVyLXBpcHMtbWFya2VyLWRvdC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXNsaWRlci1waXBzLW1hcmtlci1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgNTAlICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItcGlwcy1tYXJrZXItdGFyZ2V0LXNpemU6ICAgICAgICAgICAgICAgIDQwcHggIWRlZmF1bHQ7XG5cbiRjdXN0b20tcmFuZ2Utc2xpZGVyLXdpdGgtdmFsdWVzLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAoJGN1c3RvbS1yYW5nZS1zbGlkZXItdGh1bWItc2l6ZSArICRjdXN0b20tcmFuZ2Utc2xpZGVyLXBpcHMtdmFsdWUtb2Zmc2V0LXRvLW1hcmtlciArICRjdXN0b20tcmFuZ2Utc2xpZGVyLXBpcHMtdmFsdWUtZm9udC1zaXplKSAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2Utc2xpZGVyLXdpdGgtdmFsdWVzLXZlcnRpY2FsLW9mZnNldDogICAgICAgICAgICBjYWxjKDUwJSAtICN7KCRjdXN0b20tcmFuZ2Utc2xpZGVyLXBpcHMtdmFsdWUtZm9udC1zaXplIC0gZGl2KCRjdXN0b20tcmFuZ2Utc2xpZGVyLXdpdGgtdmFsdWVzLWhlaWdodCwgJGN1c3RvbS1yYW5nZS1zbGlkZXItcGlwcy12YWx1ZS1mb250LXNpemUpKX0pICFkZWZhdWx0O1xuXG4gLy8gQFRPRE86IGRlZmluZSBnbG9iYWwgdG9vbHRpcCBzdHlsZXMgaW4gc2V0dGluZ3MgbGF5ZXIgYW5kIHVzZSBldmVyeXdoZXJlIGZvciB0b29sdGlwIHN0eWxlcyAoaGVyZSwgdGlwcHksIGV0Yy4pIEJST04tNDg2MlxuJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2Utc2xpZGVyLXRvb2x0aXAtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICBpZigkY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLWJhY2tncm91bmQsICRjdXN0b20tcmFuZ2Utc2xpZGVyLXRvb2x0aXAtYmFja2dyb3VuZCwgbnVsbCk7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtZGVmYXVsdCwgc2Nzcy9uby1kdXBsaWNhdGUtZG9sbGFyLXZhcmlhYmxlcyAqL1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2Utc2xpZGVyLXRvb2x0aXAtY29sb3ItZGlzYWJsZWQ6ICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1pbmRpY2F0b3Itc2l6ZTogICAgICAgICAgICAgICAgIDEwcHggIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgbWFwLWdldCgkRlMtMSwgbnVsbCkgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2Utc2xpZGVyLXRvb2x0aXAtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAxICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDsgLy8gYmV0d2VlbiBoYW5kbGUgKyB0b29sdGlwXG4kY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgJEdMT0JBTC1CT1JERVItUkFESVVTICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICgkY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLXBhZGRpbmcgKiAyKSArICgkY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLWZvbnQtc2l6ZSAqICRjdXN0b20tcmFuZ2Utc2xpZGVyLXRvb2x0aXAtbGluZS1oZWlnaHQpICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1wb3NpdGlvbjogICAgICAgICAgICAgICAgICAgICAgICRjdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLXNpemUgKyAkY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLXNwYWNpbmcgKyAkY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLWluZGljYXRvci1zaXplICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1hcnJvdzogICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG5cbiRjdXN0b20tcmFuZ2Utc2xpZGVyLW91dGVyLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAkY3VzdG9tLXJhbmdlLXNsaWRlci10aHVtYi1vZmZzZXQgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXNsaWRlci1vdXRlci1zcGFjaW5nLXdpdGgtdG9vbHRpcDogICAgICAgICAgICAgJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1zcGFjaW5nICsgJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1pbmRpY2F0b3Itc2l6ZSArICRjdXN0b20tcmFuZ2Utc2xpZGVyLXRvb2x0aXAtc2l6ZSArICRjdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLW9mZnNldCAhZGVmYXVsdDtcbi8qKlxuICogWzFdICBTZXQgdGhlIGxlZnQgYW5kIHJpZ2h0IG1hcmdpbiBvZiB0aGUgc2xpZGVyIHRvIGhhbGYgdGhlIHNpemUgb2YgdGhlIHRodW1iLlxuICogWzJdICBBZGQgcHNldWRvIGVsZW1lbnQgc28gd2UgY2FuIHNldCB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSByYW5nZSBzbGlkZXJcbiAqICAgICAgdG8gdGhlIHNpemUgbmVlZGVkLlxuICogWzNdICBDZW50ZXIgbWFya2VyIG9uIHRyYWNrLlxuICogWzRdICBTaG93IG1hcmtlciBhYm92ZSB0cmFjayAvIGNvbm5lY3QuXG4gKiBbNV0gIEFkZCB0cmFuc2l0aW9uIHdoZW4gdGFwcGluZyBvbiB0cmFjay5cbiAqIFs2XSAgSGlkZSB0aGUgb3ZlcmZsb3cgb2YgdGhlIGNvbm5lY3RvciB0byBtYWtlIGJvcmRlciByYWRpdXMgb2YgdGhlIHRyYWNrXG4gKiAgICAgIHZpc2libGUuXG4gKiBbN10gIFNldCB0aGUgc3BhY2luZyBiZXR3ZWVuIHZhbHVlIGFuZCBtYXJrZXIuXG4gKiBbOF0gIE1hcmtlcnMgYXJlIG5vdyBnZW5lcmFsbHkgc2V0IGBpbi1yYW5nZWAgdmlhIHNjcmlwdC5cbiAqIFs5XSAgQWRkIHBzZXVkby1lbGVtZW50cyBmb3IgbWFya2VycyAoYDo6YmVmb3JlYCBlbGVtZW50KSBhbmQgdGhlaXIgZG90c1xuICogICAgICAoYDo6YWZ0ZXJgIGVsZW1lbnQpLlxuICogWzEwXSBBbGlnbiBlbGVtZW50cywgc28gdGhhdCB0aGUgdGh1bWIgaXMgZnVsbHkgcGxhY2VkIGluc2lkZSBvZiB0aGUgcmFuZ2VcbiAqICAgICAgc2xpZGVyIGNvbnRhaW5lci5cbiAqIFsxMV0gRGVmYXVsdCB0b29sdGlwIGRpc3BsYXkgaXMgdG9wIC0gYWJvdmUgdGhlIGN1cnJlbnQgdmFsdWUuXG4gKiBbMTJdIFRvb2x0aXAgaXMgZGlzcGxheWVkIGJlbG93IHRoZSBjdXJyZW50IHZhbHVlIHdoZW4gdmFyaWFibGUgaXMgc2V0IHRvIGZhbHNlLlxuICogWzEzXSBBZGQgc3BhY2luZyB3aGVuIHRvb2x0aXAgaXMgcHJlc2VudC5cbiAqIFsxNF0gRGVmaW5lcyB0aGUgcG9zaXRpb25pbmcgb2YgdGhlIHRvb2x0aXAgY29udGFpbmVyIGFuZCBpdHMgaW5kaWNhdG9yLlxuICogWzE1XSBBbGlnbiBmaXJzdCAobWluKSBhbmQgbGFzdCAobWF4KSB3aXRoIHRoZSBvdXRlciBib3VuZGFyaWVzIG9mIHRoZSB0cmFja1xuICogICAgICBhbmQgcGlwcy5cbiAqIFsxNl0gT3ZlcndyaXRlIGlubGluZS1zdHlsZSBzZXQgYnkgcGx1Z2luLlxuICogWzE3XSBBdm9pZCBzZWxlY3RvciBiZWluZyBhcHBsaWVkIHRvIGxhc3QgKG1heCkgdmFsdWUgaWYgb25seSAxIHBpcCBpcyBkaXNwbGF5ZWQuXG4gKiBbMThdIFB1dCBwc2V1ZG8tYXJlYSBhYm92ZSB0cmFjayB0byBpbmNyZWFzZSAodG91Y2gtKXRhcmdldCB3aGVuIGludGVyYWN0aW5nXG4gKiAgICAgIHdpdGggdHJhY2suXG4gKiBbMTldIE1hbnVhbGx5IHVwZGF0ZSB0aGUgYC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX29yaWdpbmAgYHdpZHRoYCBhbmQgYGhlaWdodGAgdG8gcmVmbGVjdCB0aGUgc3R5bGVzIGluIGBub1VpU2xpZGVyYC5cbiAqIFsyMF0gUmVzZXJ2ZXIgc3BhY2UgYXJvdW5kIGNvbXBvbmVudCB0byBhY2NvdW50IGZvciB0aHVtYiBhbmQgb3B0aW9uYWwgdG9vbHRpcC5cbiAqL1xuLmMtY3VzdG9tLXJhbmdlLXNsaWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogJGN1c3RvbS1yYW5nZS1zbGlkZXItdGh1bWItc2l6ZTtcbiAgICBtYXJnaW4tcmlnaHQ6ICRjdXN0b20tcmFuZ2Utc2xpZGVyLXNwYWNpbmctdmVydGljYWw7IC8qIFsxXSAqL1xuICAgIG1hcmdpbi1sZWZ0OiAkY3VzdG9tLXJhbmdlLXNsaWRlci1zcGFjaW5nLXZlcnRpY2FsOyAvKiBbMV0gKi9cbiAgICBtYXJnaW4tdG9wOiAkY3VzdG9tLXJhbmdlLXNsaWRlci1vdXRlci1zcGFjaW5nOyAvKiBbMjBdICovXG5cbiAgICAmOjphZnRlciB7IC8qIFsyXSAqL1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAkY3VzdG9tLXJhbmdlLXNsaWRlci10cmFjay1oZWlnaHQ7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGN1c3RvbS1yYW5nZS1zbGlkZXItdHJhY2stYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgQGlmICgkY3VzdG9tLXJhbmdlLXNsaWRlci10cmFjay1ib3JkZXItcmFkaXVzKSB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkY3VzdG9tLXJhbmdlLXNsaWRlci10cmFjay1ib3JkZXItcmFkaXVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tcmFuZ2Utc2xpZGVyLXRyYWNrLWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQ7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIEBpZiAoJGN1c3RvbS1yYW5nZS1zbGlkZXItcGlwcy1kaXNwbGF5LXZhbHVlcykge1xuICAgICAgICAmW2RhdGEtY3VzdG9tLXJhbmdlLXNsaWRlci1waXBzXSB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjdXN0b20tcmFuZ2Utc2xpZGVyLXdpdGgtdmFsdWVzLWhlaWdodDtcblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRvcDogJGN1c3RvbS1yYW5nZS1zbGlkZXItd2l0aC12YWx1ZXMtdmVydGljYWwtb2Zmc2V0OyAvKiBbMTBdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4gICAgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fdGFyZ2V0IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICoge1xuICAgICAgICAgICAgQGluY2x1ZGUgZGlzYWJsZS10b3VjaC1oaWdobGlnaHQoKTtcbiAgICAgICAgICAgIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyX19iYXNlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogJGN1c3RvbS1yYW5nZS1zbGlkZXItdHJhY2staGVpZ2h0O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAvKiBbMTVdICovXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY3VzdG9tLXJhbmdlLXNsaWRlci10cmFjay10b3VjaC1zaXplO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcltkaXNhYmxlZF0gJiB7XG4gICAgICAgICAgICBjdXJzb3I6IGluaXRpYWw7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRjdXN0b20tcmFuZ2Utc2xpZGVyLXBpcHMtZGlzcGxheS12YWx1ZXMpIHtcbiAgICAgICAgICAgIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJbZGF0YS1jdXN0b20tcmFuZ2Utc2xpZGVyLXBpcHNdICYge1xuICAgICAgICAgICAgICAgIHRvcDogJGN1c3RvbS1yYW5nZS1zbGlkZXItd2l0aC12YWx1ZXMtdmVydGljYWwtb2Zmc2V0OyAvKiBbMTBdICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX29yaWdpbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlOyAvKiBbMTldICovXG4gICAgICAgIGhlaWdodDogMTAwJTsgLyogWzE5XSAqL1xuXG4gICAgICAgIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXItLXRhcCAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oKTsgLyogWzVdICovXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX3RodW1iIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihcbiAgICAgICAgICAgICR0cmFuc2l0aW9uLXByb3BlcnR5OiAgICAgICAgJGN1c3RvbS1yYW5nZS1zbGlkZXItdGh1bWItdHJhbnNpdGlvbi1wcm9wZXJ0eSxcbiAgICAgICAgICAgICR0cmFuc2l0aW9uLWR1cmF0aW9uOiAgICAgICAgJGN1c3RvbS1yYW5nZS1zbGlkZXItdGh1bWItdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgICAgICAgICAgICR0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJGN1c3RvbS1yYW5nZS1zbGlkZXItdGh1bWItdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sXG4gICAgICAgICk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtKCRjdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLW9mZnNldCk7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogJGN1c3RvbS1yYW5nZS1zbGlkZXItdGh1bWItc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkY3VzdG9tLXJhbmdlLXNsaWRlci10aHVtYi1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIC01MCUpO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIGN1cnNvcjogZ3JhYjtcblxuICAgICAgICBAaWYgKCRjdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLWhhcy1ib3JkZXIpIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGN1c3RvbS1yYW5nZS1zbGlkZXItdGh1bWItYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkY3VzdG9tLXJhbmdlLXNsaWRlci10aHVtYi1ib3JkZXItcmFkaXVzKSB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkY3VzdG9tLXJhbmdlLXNsaWRlci10aHVtYi1ib3JkZXItcmFkaXVzO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcltkaXNhYmxlZF0gJiB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRjdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLWJvcmRlci1jb2xvci1kaXNhYmxlZDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGN1cnNvcjogaW5pdGlhbDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGN1cnNvcjogZ3JhYmJpbmc7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRjdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLWhhcy1kb3QpIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkY3VzdG9tLXJhbmdlLXNsaWRlci10aHVtYi1kb3Qtc2l6ZTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRjdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLWRvdC1zaXplO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLWRvdC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgICAgICAgIEBpZiAoJGN1c3RvbS1yYW5nZS1zbGlkZXItdGh1bWItYm9yZGVyLXJhZGl1cykge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkY3VzdG9tLXJhbmdlLXNsaWRlci10aHVtYi1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJbZGlzYWJsZWRdICYge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLXJhbmdlLXNsaWRlci10aHVtYi1kb3QtYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbm5lY3RzXG4gICAgKi9cblxuICAgIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX2Nvbm5lY3QtY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyAvKiBbNl0gKi9cbiAgICAgICAgQGlmICgkY3VzdG9tLXJhbmdlLXNsaWRlci10cmFjay1ib3JkZXItcmFkaXVzKSB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkY3VzdG9tLXJhbmdlLXNsaWRlci10cmFjay1ib3JkZXItcmFkaXVzO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogWzE4XSAqL1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJGN1c3RvbS1yYW5nZS1zbGlkZXItdHJhY2stdG91Y2gtc2l6ZTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fY29ubmVjdCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLXJhbmdlLXNsaWRlci10cmFjay1maWxsZWQtYmFja2dyb3VuZC1jb2xvcjtcblxuICAgICAgICAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyLS10YXAgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCk7IC8qIFs1XSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcltkaXNhYmxlZF0gJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLXJhbmdlLXNsaWRlci10cmFjay1maWxsZWQtYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBQaXBzLCBNYXJrZXJzICYgVmFsdWVzXG4gICAgKi9cblxuICAgIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX3BpcHMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyX19tYXJrZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IGluaXRpYWw7IC8qIFs0XSAqL1xuICAgICAgICB0b3A6IDUwJTsgLyogWzNdICovXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogJGN1c3RvbS1yYW5nZS1zbGlkZXItcGlwcy1tYXJrZXItdGFyZ2V0LXNpemU7XG4gICAgICAgIGhlaWdodDogJGN1c3RvbS1yYW5nZS1zbGlkZXItcGlwcy1tYXJrZXItdGFyZ2V0LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyAvKiBbM10gKi9cbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICBAaWYgKCRjdXN0b20tcmFuZ2Utc2xpZGVyLXBpcHMtbWFya2VyLXNpemUpIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHsgLyogWzldICovXG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICBAaWYgKCRjdXN0b20tcmFuZ2Utc2xpZGVyLXBpcHMtbWFya2VyLWJvcmRlci1yYWRpdXMpIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGN1c3RvbS1yYW5nZS1zbGlkZXItcGlwcy1tYXJrZXItYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigpO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkY3VzdG9tLXJhbmdlLXNsaWRlci1waXBzLW1hcmtlci1zaXplO1xuICAgICAgICAgICAgICAgIGhlaWdodDogJGN1c3RvbS1yYW5nZS1zbGlkZXItcGlwcy1tYXJrZXItc2l6ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLXJhbmdlLXNsaWRlci1waXBzLW1hcmtlci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRjdXN0b20tcmFuZ2Utc2xpZGVyLXBpcHMtbWFya2VyLWhhcy1kb3QpIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAkY3VzdG9tLXJhbmdlLXNsaWRlci1waXBzLW1hcmtlci1kb3Qtc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkY3VzdG9tLXJhbmdlLXNsaWRlci1waXBzLW1hcmtlci1kb3Qtc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGN1c3RvbS1yYW5nZS1zbGlkZXItcGlwcy1tYXJrZXItZG90LWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmlzLWFjdGl2ZTpmaXJzdC1vZi10eXBlIHtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tcmFuZ2Utc2xpZGVyLXRyYWNrLWZpbGxlZC1iYWNrZ3JvdW5kLWNvbG9yOyAvKiBbOF0gKi9cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5pbi1yYW5nZSB7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLXJhbmdlLXNsaWRlci10cmFjay1maWxsZWQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcltkaXNhYmxlZF0gJiB7XG5cbiAgICAgICAgICAgICAgICAmLFxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpZiAoJGN1c3RvbS1yYW5nZS1zbGlkZXItdHJhY2stYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZCAhPSAkY3VzdG9tLXJhbmdlLXNsaWRlci10cmFjay1maWxsZWQtYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tcmFuZ2Utc2xpZGVyLXBpcHMtbWFya2VyLWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmLmlzLWFjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgJi5pbi1yYW5nZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLXJhbmdlLXNsaWRlci10cmFjay1maWxsZWQtYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGN1c3RvbS1yYW5nZS1zbGlkZXItcGlwcy1tYXJrZXItYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRjdXN0b20tcmFuZ2Utc2xpZGVyLXBpcHMtZGlzcGxheS12YWx1ZXMpIHtcbiAgICAgICAgICAgICAgICAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyW2RhdGEtY3VzdG9tLXJhbmdlLXNsaWRlci1waXBzXSAmIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAkY3VzdG9tLXJhbmdlLXNsaWRlci13aXRoLXZhbHVlcy12ZXJ0aWNhbC1vZmZzZXQ7IC8qIFsxMF0gKi9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX3ZhbHVlIHtcbiAgICAgICAgQGlmICgkY3VzdG9tLXJhbmdlLXNsaWRlci1waXBzLWRpc3BsYXktdmFsdWVzKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkY3VzdG9tLXJhbmdlLXNsaWRlci1waXBzLXZhbHVlLWZvbnQtc2l6ZSxcbiAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6IDFcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogKCRjdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLXNpemUgKyAkY3VzdG9tLXJhbmdlLXNsaWRlci1waXBzLXZhbHVlLW9mZnNldC10by1tYXJrZXIpOyAvKiBbN10gKi9cbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkY3VzdG9tLXJhbmdlLXNsaWRlci1waXBzLXZhbHVlLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkY3VzdG9tLXJhbmdlLXNsaWRlci1waXBzLXZhbHVlLWNvbG9yO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgICAgIC8vIGZpcnN0XG4gICAgICAgICAgICAmOm50aC1jaGlsZCgyKTpub3QoOmxhc3QtY2hpbGQpIHsgLyogWzE3XSAqL1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtI3skY3VzdG9tLXJhbmdlLXNsaWRlci1waXBzLW1hcmtlci1zaXplICogMC41fSk7IC8qIFsxNV0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gbGFzdFxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IC8qIFsxNl0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBpdGNzcy9uby1hdC1pbXBvcnRhbnQgKi9cbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoI3skY3VzdG9tLXJhbmdlLXNsaWRlci1waXBzLW1hcmtlci1zaXplICogMC41fSk7IC8qIFsxNV0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcltkaXNhYmxlZF0gJiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjdXN0b20tcmFuZ2Utc2xpZGVyLXBpcHMtdmFsdWUtY29sb3ItZGlzYWJsZWQ7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fdG9vbHRpcC13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBpZigkY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLXBhZGRpbmcgPiAwLCAkY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLXBhZGRpbmcsIG51bGwpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRjdXN0b20tcmFuZ2Utc2xpZGVyLXRvb2x0aXAtYm9yZGVyLXJhZGl1cywgJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1ib3JkZXItcmFkaXVzLCBudWxsKTtcbiAgICAgICAgZm9udC1zaXplOiAkY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGlmKCRjdXN0b20tcmFuZ2Utc2xpZGVyLXRvb2x0aXAtZm9udC13ZWlnaHQsICRjdXN0b20tcmFuZ2Utc2xpZGVyLXRvb2x0aXAtZm9udC13ZWlnaHQsIG51bGwpO1xuICAgICAgICBsaW5lLWhlaWdodDogJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1saW5lLWhlaWdodDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLWNvbG9yO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcltkaXNhYmxlZF0gJiB7XG4gICAgICAgICAgICBjb2xvcjogJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1jb2xvci1kaXNhYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1zaGFkb3cpIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRjdXN0b20tcmFuZ2Utc2xpZGVyLXRvb2x0aXAtc2hhZG93O1xuICAgICAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcblxuICAgICAgICAgICAgQHN1cHBvcnRzIChmaWx0ZXI6IGRyb3Atc2hhZG93KCRjdXN0b20tcmFuZ2Utc2xpZGVyLXRvb2x0aXAtc2hhZG93KSkge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygkY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLXNoYWRvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCRjdXN0b20tcmFuZ2Utc2xpZGVyLXRvb2x0aXAtYXJyb3cpIHtcblxuICAgICAgICAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyX19hcnJvdyB7IC8qIFsxNF0gKi9cbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB3aWR0aDogJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1pbmRpY2F0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1pbmRpY2F0b3Itc2l6ZTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAkY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLWluZGljYXRvci1zaXplO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyW2RhdGEtY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwc10ge1xuICAgICAgICBtYXJnaW4tdG9wOiAkY3VzdG9tLXJhbmdlLXNsaWRlci1vdXRlci1zcGFjaW5nLXdpdGgtdG9vbHRpcDsgLyogWzIwXSAqL1xuICAgIH1cblxuICAgIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXI6bm90KFtkYXRhLWN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1wb3NpdGlvbj1cImJvdHRvbVwiXSkgeyAvKiBbMTFdICovXG5cbiAgICAgICAgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fdG9vbHRpcC13cmFwcGVyIHtcbiAgICAgICAgICAgIGJvdHRvbTogJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1wb3NpdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1hcnJvdykge1xuXG4gICAgICAgICAgICAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyX19hcnJvdyB7XG4gICAgICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIFtkYXRhLWN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1wb3NpdGlvbj1cImJvdHRvbVwiXSxcbiAgICAuY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLS1ib3R0b20geyAvKiBbMTJdICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRjdXN0b20tcmFuZ2Utc2xpZGVyLW91dGVyLXNwYWNpbmctd2l0aC10b29sdGlwOyAvKiBbMjBdICovXG5cbiAgICAgICAgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fdG9vbHRpcC13cmFwcGVyIHtcbiAgICAgICAgICAgIHRvcDogJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1wb3NpdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1hcnJvdykge1xuXG4gICAgICAgICAgICAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyX19hcnJvdyB7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAxMDAlO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNSQU5HRS1TTElERVJcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kUkFOR0UtU0xJREVSLVRSQUNLLUhFSUdIVDogICAgICAgICAgICAgICAgICAgICAgICAgICAycHggIWRlZmF1bHQ7XG4kUkFOR0UtU0xJREVSLVRSQUNLLUJBQ0tHUk9VTkQtQ09MT1I6ICAgICAgICAgICAgICAgICAkQ09MT1ItSU5BQ1RJVkUgIWRlZmF1bHQ7XG4kUkFOR0UtU0xJREVSLVRSQUNLLUJBQ0tHUk9VTkQtQ09MT1ItRElTQUJMRUQ6ICAgICAgICAkUkFOR0UtU0xJREVSLVRSQUNLLUJBQ0tHUk9VTkQtQ09MT1IgIWRlZmF1bHQ7XG4kUkFOR0UtU0xJREVSLVRSQUNLLUJPUkRFUi1SQURJVVM6ICAgICAgICAgICAgICAgICAgICAxMHB4ICFkZWZhdWx0O1xuJFJBTkdFLVNMSURFUi1UUkFDSy1GSUxMRUQtQkFDS0dST1VORC1DT0xPUjogICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJFJBTkdFLVNMSURFUi1UUkFDSy1GSUxMRUQtQkFDS0dST1VORC1DT0xPUi1ESVNBQkxFRDogJFJBTkdFLVNMSURFUi1UUkFDSy1GSUxMRUQtQkFDS0dST1VORC1DT0xPUiAhZGVmYXVsdDtcblxuJFJBTkdFLVNMSURFUi1USFVNQi1TSVpFOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzZweCAhZGVmYXVsdDtcbiRSQU5HRS1TTElERVItVEhVTUItSEFTLUJPUkRFUjogICAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kUkFOR0UtU0xJREVSLVRIVU1CLUJPUkRFUi1DT0xPUjogICAgICAgICAgICAgICAgICAgICAkQ09MT1ItSElHSExJR0hUICFkZWZhdWx0O1xuJFJBTkdFLVNMSURFUi1USFVNQi1CT1JERVItQ09MT1ItRElTQUJMRUQ6ICAgICAgICAgICAgJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuJFJBTkdFLVNMSURFUi1USFVNQi1CT1JERVItV0lEVEg6ICAgICAgICAgICAgICAgICAgICAgMXB4ICFkZWZhdWx0O1xuJFJBTkdFLVNMSURFUi1USFVNQi1CT1JERVItUkFESVVTOiAgICAgICAgICAgICAgICAgICAgNTAlICFkZWZhdWx0O1xuJFJBTkdFLVNMSURFUi1USFVNQi1CQUNLR1JPVU5ELUNPTE9SOiAgICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJFJBTkdFLVNMSURFUi1USFVNQi1CQUNLR1JPVU5ELUNPTE9SLURJU0FCTEVEOiAgICAgICAgJFJBTkdFLVNMSURFUi1USFVNQi1CQUNLR1JPVU5ELUNPTE9SICFkZWZhdWx0O1xuJFJBTkdFLVNMSURFUi1USFVNQi1IQVMtRE9UOiAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRSQU5HRS1TTElERVItVEhVTUItRE9ULVNJWkU6ICAgICAgICAgICAgICAgICAgICAgICAgIDE0cHggIWRlZmF1bHQ7XG4kUkFOR0UtU0xJREVSLVRIVU1CLURPVC1CQUNLR1JPVU5ELUNPTE9SOiAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kUkFOR0UtU0xJREVSLVRIVU1CLURPVC1CQUNLR1JPVU5ELUNPTE9SLURJU0FCTEVEOiAgICAkQ09MT1ItSU5BQ1RJVkUgIWRlZmF1bHQ7XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjQ1VTVE9NLVJBTkdFLVNMSURFUiAoU2V0dGluZ3MpXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGN1c3RvbS1yYW5nZS1zbGlkZXItdGh1bWItZG90LWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQ6ICAgICRDT0xPUi1PTi1TVVJGQUNFLTMwMCAhZGVmYXVsdDtcblxuJGN1c3RvbS1yYW5nZS1zbGlkZXItdHJhY2stZmlsbGVkLWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQ6ICRDT0xPUi1PTi1TVVJGQUNFLTIwMCAhZGVmYXVsdDtcblxuJGN1c3RvbS1yYW5nZS1zbGlkZXItcGlwcy12YWx1ZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgIG1hcC1nZXQoJEZTLTEsIG51bGwpICFkZWZhdWx0O1xuXG4kY3VzdG9tLXJhbmdlLXNsaWRlci1waXBzLW1hcmtlci1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgMnB4ICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItcGlwcy1tYXJrZXItYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICRDT0xPUi1PTi1TVVJGQUNFLTMwMCAhZGVmYXVsdDtcblxuJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICRUT09MVElQLUJBQ0tHUk9VTkQgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgJFRPT0xUSVAtVEVYVC1DT0xPUiAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2Utc2xpZGVyLXRvb2x0aXAtY29sb3ItZGlzYWJsZWQ6ICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1pbmRpY2F0b3Itc2l6ZTogICAgICAgICAgICAgICAgICRUT09MVElQLUFSUk9XLVNJWkUgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgJFRPT0xUSVAtVEVYVC1TSVpFICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICRUT09MVElQLUZPTlQtV0VJR0hUICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICRUT09MVElQLUxJTkUtSEVJR0hUICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhYU01BTEwgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgJFRPT0xUSVAtUEFERElORy1WRVJUSUNBTCAhZGVmYXVsdDsgLy8gSW5kaXZpZHVhbCBwYWRkaW5nIGRpcmVjdGlvbnMgc2V0IGluIGN1c3RvbSBzdHlsZXNcbiRjdXN0b20tcmFuZ2Utc2xpZGVyLXRvb2x0aXAtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgICAkVE9PTFRJUC1CT1JERVItUkFESVVTICFkZWZhdWx0O1xuXG4kY3VzdG9tLXJhbmdlLXNsaWRlci10aHVtYi10cmFuc2l0aW9uLWR1cmF0aW9uOiAgICAgICAgICAgICAgMTUwbXMgIWRlZmF1bHQ7XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjQ1VTVE9NLVJBTkdFLVNMSURFUlxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogWzFdIFNob3cgd2hlbiBvdXRsaW5lIGZvciBmb2N1cyBhbmQgd2hlbiBjdXJyZW50bHkgZHJhZ2dlZCAoYC0tYWN0aXZlYCkuXG4gKiBbMl0gSW1wcm92ZSBvdXRsaW5lIGFuaW1hdGlvbiBieSBhcHBseWluZyBhIHRyYW5zcGFyZW50IG91dGxpbmUgd2l0aG91dFxuICogICAgIG9mZnNldCBieSBkZWZhdWx0IHdoaWNoIGdldHMgYW5pbWF0ZWQuIE90aGVyd2lzZSB0aGUgb3V0bGluZSBqdXN0XG4gKiAgICAgZGlzYXBwZWFycyBvbiBcImJsdXJcIi5cbiAqIFszXSBObyBvcHRpb24gZm9yIGRpZmZlcmVudCBwYWRkaW5nIGRpcmVjdGlvbnMgaW4gZGVmYXVsdC5cbiAqL1xuXG4kc2tvZGEtY3VzdG9tLXJhbmdlLXNsaWRlci10aHVtYi1zaXplLWhvdmVyOiAgICAgICAgICAgJFJBTkdFLVNMSURFUi1USFVNQi1TSVpFLUhPVkVSICFkZWZhdWx0O1xuJHNrb2RhLWN1c3RvbS1yYW5nZS1zbGlkZXItdGh1bWItZm9jdXMtb2Zmc2V0OiAgICAgICAgIDRweCAhZGVmYXVsdDtcblxuJHNrb2RhLWN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1wYWRkaW5nLXZlcnRpY2FsOiAgICRUT09MVElQLVBBRERJTkctVkVSVElDQUwgIWRlZmF1bHQ7XG4kc2tvZGEtY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLXBhZGRpbmctaG9yaXpvbnRhbDogJFRPT0xUSVAtUEFERElORy1IT1JJWk9OVEFMICFkZWZhdWx0O1xuXG4uYy1jdXN0b20tcmFuZ2Utc2xpZGVyIHtcblxufVxuXG4gICAgLmMtY3VzdG9tLXJhbmdlLXNsaWRlcl9fdGh1bWIge1xuXG4gICAgICAgIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXI6bm90KFtkaXNhYmxlZF0pICYge1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIC8qIFsyXSAqL1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvY3VzLXN0eWxlcyhcbiAgICAgICAgICAgICAgICAgICAgJG91dGxpbmUtY29sb3I6ICB0cmFuc3BhcmVudCxcbiAgICAgICAgICAgICAgICAgICAgJG91dGxpbmUtb2Zmc2V0OiAwLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJHRyYW5zaXRpb24tZHVyYXRpb246ICRjdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUsXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcblxuICAgICAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJHNrb2RhLWN1c3RvbS1yYW5nZS1zbGlkZXItdGh1bWItc2l6ZS1ob3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkc2tvZGEtY3VzdG9tLXJhbmdlLXNsaWRlci10aHVtYi1zaXplLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBbMV0gKi9cbiAgICAgICAgICAgICY6YWN0aXZlLFxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcblxuICAgICAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb2N1cy1zdHlsZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAkb3V0bGluZS1vZmZzZXQ6ICRza29kYS1jdXN0b20tcmFuZ2Utc2xpZGVyLXRodW1iLWZvY3VzLW9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyX190b29sdGlwLXdyYXBwZXIge1xuICAgICAgICBwYWRkaW5nOiAkc2tvZGEtY3VzdG9tLXJhbmdlLXNsaWRlci10b29sdGlwLXBhZGRpbmctdmVydGljYWwgJHNrb2RhLWN1c3RvbS1yYW5nZS1zbGlkZXItdG9vbHRpcC1wYWRkaW5nLWhvcml6b250YWw7IC8qIFszXSAqL1xuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgI05PVElGSUNBVElPTlMgKFNldHRpbmdzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRub3RpZmljYXRpb24tYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQtVEVSVElBUlkgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLXBhZGRpbmctdG9wOiAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLXBhZGRpbmctYm90dG9tOiAgICAgICAgICAgICAgICAgJG5vdGlmaWNhdGlvbi1wYWRkaW5nLXRvcCAhZGVmYXVsdDtcblxuJG5vdGlmaWNhdGlvbi10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAkRlMtMSAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAxLjUgIWRlZmF1bHQ7XG5cbiRub3RpZmljYXRpb24tdGl0bGUtc2l6ZTogICAgICAgICAgICAgICAgICAgICAkRlMwICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi10aXRsZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tdGl0bGUtc3BhY2luZy1ib3R0b206ICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG5cbiRub3RpZmljYXRpb24tc3RhdHVzLWljb24tc2l6ZTogICAgICAgICAgICAgICB4c21hbGwgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLXN0YXR1cy1pY29uLXNwYWNpbmctaG9yaXpvbnRhbDogJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuXG4kbm90aWZpY2F0aW9uLWNsb3NlLWljb24tc2l6ZTogICAgICAgICAgICAgICAgaWNvbi1zaXplKHhzbWFsbCkgIWRlZmF1bHQ7XG5cbiRub3RpZmljYXRpb24tY29udGV4dC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAkQ09MT1ItU1VSRkFDRS1TRUNPTkRBUlkgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNvbnRleHQtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgMCAhZGVmYXVsdDsgLy8gZGlzYWJsZSBib3JkZXJcblxuJG5vdGlmaWNhdGlvbi1jb250ZXh0LXRleHQtY29sb3I6ICAgICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNvbnRleHQtdGl0bGUtY29sb3I6ICAgICAgICAgICAgJG5vdGlmaWNhdGlvbi1jb250ZXh0LXRleHQtY29sb3IgIWRlZmF1bHQ7XG5cbiRub3RpZmljYXRpb24tYnV0dG9uLXN0eWxlcy1vdmVyd3JpdGVzOiAoXG4gICAgXCJiYWNrZ3JvdW5kXCI6ICAgICAgICAgJEJVVFRPTi1HSE9TVC1PTi1EQVJLLVNVUkZBQ0UtQkFDS0dST1VORC1DT0xPUixcbiAgICBcInRleHQtY29sb3JcIjogICAgICAgICAkQlVUVE9OLUdIT1NULU9OLURBUkstRk9OVC1DT0xPUixcbiAgICBcInRleHQtY29sb3ItaG92ZXJcIjogICBudWxsLFxuICAgIFwiYm9yZGVyLWNvbG9yXCI6ICAgICAgICRCVVRUT04tR0hPU1QtT04tREFSSy1TVVJGQUNFLUJPUkRFUi1DT0xPUixcbiAgICBcImJvcmRlci1jb2xvci1ob3ZlclwiOiAkQlVUVE9OLUdIT1NULU9OLURBUkstU1VSRkFDRS1CT1JERVItQ09MT1IsXG4pICFkZWZhdWx0O1xuXG4kbm90aWZpY2F0aW9uLXN0YXR1cy10aGVtZXMtb3ZlcndyaXRlczogKFxuICAgIGluZm86IChcbiAgICAgICAgXCJ0ZXh0LWNvbG9yXCI6ICAgICAgICRub3RpZmljYXRpb24tdGV4dC1jb2xvcixcbiAgICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yXCI6ICRub3RpZmljYXRpb24tYmFja2dyb3VuZC1jb2xvcixcbiAgICApLFxuICAgIHN1Y2Nlc3M6IChcbiAgICAgICAgXCJ0ZXh0LWNvbG9yXCI6ICAgICAgICRub3RpZmljYXRpb24tdGV4dC1jb2xvcixcbiAgICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yXCI6ICRub3RpZmljYXRpb24tYmFja2dyb3VuZC1jb2xvcixcbiAgICAgICAgXCJpY29uLWNvbG9yXCI6ICAgICAgIG1hcC1kZWVwLWdldCgkU1RBVFVTLVRIRU1FUywgXCJzdWNjZXNzXCIsIFwiY29sb3JcIiksXG4gICAgKSxcbiAgICB3YXJuaW5nOiAoXG4gICAgICAgIFwidGV4dC1jb2xvclwiOiAgICAgICAkbm90aWZpY2F0aW9uLXRleHQtY29sb3IsXG4gICAgICAgIFwiYmFja2dyb3VuZC1jb2xvclwiOiAkbm90aWZpY2F0aW9uLWJhY2tncm91bmQtY29sb3IsXG4gICAgICAgIFwiaWNvbi1jb2xvclwiOiAgICAgICBtYXAtZGVlcC1nZXQoJFNUQVRVUy1USEVNRVMsIFwid2FybmluZ1wiLCBcImNvbG9yXCIpLFxuICAgICksXG4gICAgZXJyb3I6IChcbiAgICAgICAgXCJ0ZXh0LWNvbG9yXCI6ICAgICAgICRub3RpZmljYXRpb24tdGV4dC1jb2xvcixcbiAgICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yXCI6ICRub3RpZmljYXRpb24tYmFja2dyb3VuZC1jb2xvcixcbiAgICAgICAgXCJpY29uLWNvbG9yXCI6ICAgICAgIG1hcC1kZWVwLWdldCgkU1RBVFVTLVRIRU1FUywgXCJlcnJvclwiLCBcImNvbG9yXCIpLFxuICAgICksXG4pICFkZWZhdWx0O1xuXG4kbm90aWZpY2F0aW9uLWNvbnRleHQtc3RhdHVzLXRoZW1lcy1vdmVyd3JpdGVzOiAoXG4gICAgaW5mbzogKFxuICAgICAgICBcInRpdGxlLWNvbG9yXCI6ICRub3RpZmljYXRpb24tY29udGV4dC10ZXh0LWNvbG9yLFxuICAgICAgICBcImljb24tY29sb3JcIjogIG51bGwsXG4gICAgKSxcbiAgICBzdWNjZXNzOiAoXG4gICAgICAgIFwidGl0bGUtY29sb3JcIjogJG5vdGlmaWNhdGlvbi1jb250ZXh0LXRleHQtY29sb3IsXG4gICAgKSxcbiAgICB3YXJuaW5nOiAoXG4gICAgICAgIFwidGl0bGUtY29sb3JcIjogJG5vdGlmaWNhdGlvbi1jb250ZXh0LXRleHQtY29sb3IsXG4gICAgICAgIFwiaWNvbi1jb2xvclwiOiAgbWFwLWRlZXAtZ2V0KCRTVEFUVVMtVEhFTUVTLCBcIndhcm5pbmdcIiwgXCJjb2xvclwiKSxcbiAgICApLFxuICAgIGVycm9yOiAoXG4gICAgICAgIFwidGl0bGUtY29sb3JcIjogJG5vdGlmaWNhdGlvbi1jb250ZXh0LXRleHQtY29sb3IsXG4gICAgKSxcbikgIWRlZmF1bHQ7XG5cbiRub3RpZmljYXRpb24tbWFya2V0aW5nLWJ1dHRvbi10aGVtZXM6IChcbiAgICBcImJhY2tncm91bmRcIjogICAgICAgJEJVVFRPTi1TRUNPTkRBUlktQkFDS0dST1VORC1DT0xPUixcbiAgICBcImJhY2tncm91bmQtaG92ZXJcIjogJEJVVFRPTi1TRUNPTkRBUlktQkFDS0dST1VORC1DT0xPUi1IT1ZFUixcbiAgICBcInRleHQtY29sb3JcIjogICAgICAgICAgICAgJEJVVFRPTi1TRUNPTkRBUlktVEVYVC1DT0xPUixcbiAgICBcInRleHQtY29sb3ItaG92ZXJcIjogICAgICAgJEJVVFRPTi1TRUNPTkRBUlktVEVYVC1DT0xPUi1IT1ZFUixcbikgIWRlZmF1bHQ7XG5cbiRub3RpZmljYXRpb24tbWFya2V0aW5nLXRoZW1lcy1vdmVyd3JpdGVzOiAoXG4gICAgXCIxXCI6IChcbiAgICAgICAgXCJ0aXRsZS1jb2xvclwiOiBtYXAtZGVlcC1nZXQoJE1BUktFVElORy1USEVNRVMsIFwiMVwiLCBcInRleHQtY29sb3JcIiksXG4gICAgICAgIFwiYnV0dG9uc1wiOiAgICAgJG5vdGlmaWNhdGlvbi1tYXJrZXRpbmctYnV0dG9uLXRoZW1lcyxcbiAgICApLFxuICAgIFwiMlwiOiAoXG4gICAgICAgIFwidGl0bGUtY29sb3JcIjogbWFwLWRlZXAtZ2V0KCRNQVJLRVRJTkctVEhFTUVTLCBcIjJcIiwgXCJ0ZXh0LWNvbG9yXCIpLFxuICAgICAgICBcImJ1dHRvbnNcIjogICAgICRub3RpZmljYXRpb24tbWFya2V0aW5nLWJ1dHRvbi10aGVtZXMsXG4gICAgKSxcbikgIWRlZmF1bHQ7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICNOT1RJRklDQVRJT05TXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJG5vdGlmaWNhdGlvbi1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICBtYXAtZ2V0KCRCQUNLR1JPVU5ELVVUSUxJVElFUywgXCJhbHRlcm5hdGl2ZVwiKSAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY29udGFpbmVyLXNwYWNpbmc6ICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNvbnRleHQtdGl0bGUtY29sb3I6ICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY29udGV4dC10ZXh0LWNvbG9yOiAgICAgICAgICAgICAkQ09MT1ItQkFTRS1URVhUICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jb250ZXh0LWJhY2tncm91bmQtY29sb3I6ICAgICAgICRDT0xPUi1CQVNFLUJBQ0tHUk9VTkQgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNvbnRleHQtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgMnB4ICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jb250ZXh0LWJvcmRlci1zdHlsZTogICAgICAgICAgIHNvbGlkICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jb250ZXh0LWJvcmRlci1jb2xvcjogICAgICAgICAgICRDT0xPUi1TVUJUTEUgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNvbnRleHQtYm9yZGVyOiAgICAgICAgICAgICAgICAgaWYoJG5vdGlmaWNhdGlvbi1jb250ZXh0LWJvcmRlci13aWR0aCwgJG5vdGlmaWNhdGlvbi1jb250ZXh0LWJvcmRlci13aWR0aCAkbm90aWZpY2F0aW9uLWNvbnRleHQtYm9yZGVyLXN0eWxlICRub3RpZmljYXRpb24tY29udGV4dC1ib3JkZXItY29sb3IsIG51bGwpICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jb250ZXh0LXNwYWNpbmctdmVydGljYWw6ICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1wYWRkaW5nLXRvcDogICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1wYWRkaW5nLWJvdHRvbTogICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICRGUzEgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1MSU5FLUhFSUdIVCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24taWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q29sb3IgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNsb3NlLWljb24tc2l6ZTogICAgICAgICAgICAgICAgaWNvbi1zaXplKHNtYWxsKSAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2xvc2UtaWNvbi1wYWRkaW5nOiAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2xvc2UtaWNvbjogICAgICAgICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1jbG9zZSkgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNsb3NlLWljb24tYm9yZGVyLXJhZGl1czogICAgICAgNTAlICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi16LWluZGV4OiAgICAgICAgICAgICAgICAgICAgICAgIHooXCJub3RpZmljYXRpb25zXCIpICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1wYWdlLXdyYXA6ICAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWVuYWJsZS1zdGF0dXMtaWNvbjogICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tc3RhdHVzLWljb24tc2l6ZTogICAgICAgICAgICAgICBzbWFsbCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tc3RhdHVzLWljb24tc3BhY2luZy1ob3Jpem9udGFsOiAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tdGl0bGUtc3BhY2luZy1ib3R0b206ICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tdGl0bGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAkbm90aWZpY2F0aW9uLXRleHQtY29sb3IgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLXRpdGxlLXNpemU6ICAgICAgICAgICAgICAgICAgICAgJEZTMiAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tdGl0bGUtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWJ1dHRvbnMtdG9wLXNwYWNpbmc6ICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWJ1dHRvbnMtZ2FwOiAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG5cbi8vIE1lcmdlIGRlZmF1bHQgYW5kIG92ZXJ3cml0ZSBzZXR0aW5ncyB0byBhdm9pZCBkdXBsaWNhdGlvbnNcbi8vIGFuZCBvdmVyd3JpdGUgb25seSBuZWNlc3Nhcnkgc2V0dGluZ3MuXG4kbm90aWZpY2F0aW9uLWJ1dHRvbi1zdHlsZXM6ICAgICAgICAgICAgICAgICAgICAoKSAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tYnV0dG9uLXN0eWxlcy1vdmVyd3JpdGVzOiAgICAgICAgICgpICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1idXR0b24tc3R5bGVzLW1lcmdlZDogICAgICAgICAgICAgbWFwLWRlZXAtbWVyZ2UoJG5vdGlmaWNhdGlvbi1idXR0b24tc3R5bGVzLCAkbm90aWZpY2F0aW9uLWJ1dHRvbi1zdHlsZXMtb3ZlcndyaXRlcywgMikgIWRlZmF1bHQ7XG5cbiRub3RpZmljYXRpb24tY29udGV4dC1idXR0b24tc3R5bGVzOiAgICAgICAgICAgICgpICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jb250ZXh0LWJ1dHRvbi1zdHlsZXMtb3ZlcndyaXRlczogKCkgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNvbnRleHQtYnV0dG9uLXN0eWxlcy1tZXJnZWQ6ICAgICBtYXAtZGVlcC1tZXJnZSgkbm90aWZpY2F0aW9uLWNvbnRleHQtYnV0dG9uLXN0eWxlcywgJG5vdGlmaWNhdGlvbi1jb250ZXh0LWJ1dHRvbi1zdHlsZXMtb3ZlcndyaXRlcywgMikgIWRlZmF1bHQ7XG5cbi8vIENvbmZpZyBmb3IgdGhlbWluZyBub3RpZmljYXRpb25zIGJhc2VkIG9uIHN0YXR1cy5cbi8vIE1hcC1LZXk6IHN0YXR1c1xuLy9cbi8vIEBUT0RPOiBnZW5lcmFsaXplIHN0YXR1czogbW9kYWwgaGFzIHNpbWlsYXIgc3R5bGVzLCBleHRyYWN0IHRvIGBfc2V0dGluZ3Muc3RhdHVzYFxuJG5vdGlmaWNhdGlvbi1zdGF0dXMtdGhlbWVzOiAoXG4gICAgaW5mbzogKFxuICAgICAgICBcInRleHQtY29sb3JcIjogICAgICAgbWFwLWRlZXAtZ2V0KCRTVEFUVVMtVEhFTUVTLCBcImluZm9cIiwgXCJ0ZXh0LWNvbG9yXCIpLFxuICAgICAgICBcInRpdGxlLWNvbG9yXCI6ICAgICAgbnVsbCxcbiAgICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yXCI6IG1hcC1kZWVwLWdldCgkU1RBVFVTLVRIRU1FUywgXCJpbmZvXCIsIFwiYmFja2dyb3VuZC1jb2xvclwiKSxcbiAgICAgICAgXCJib3JkZXJcIjogICAgICAgICAgIG51bGwsXG4gICAgICAgIFwiaWNvblwiOiAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1pbmZvKSxcbiAgICAgICAgXCJpY29uLWNvbG9yXCI6ICAgICAgIG51bGwsXG4gICAgICAgIFwiaWNvbi1ib3JkZXJcIjogICAgICBmYWxzZSxcbiAgICAgICAgXCJpY29uLXNpemVcIjogICAgICAgIG51bGwsXG4gICAgICAgIFwiYnV0dG9uc1wiOiAgICAgICAgICAoKSxcbiAgICApLFxuICAgIHN1Y2Nlc3M6IChcbiAgICAgICAgXCJ0ZXh0LWNvbG9yXCI6ICAgICAgIG1hcC1kZWVwLWdldCgkU1RBVFVTLVRIRU1FUywgXCJzdWNjZXNzXCIsIFwidGV4dC1jb2xvclwiKSxcbiAgICAgICAgXCJ0aXRsZS1jb2xvclwiOiAgICAgIG51bGwsXG4gICAgICAgIFwiYmFja2dyb3VuZC1jb2xvclwiOiBtYXAtZGVlcC1nZXQoJFNUQVRVUy1USEVNRVMsIFwic3VjY2Vzc1wiLCBcImJhY2tncm91bmQtY29sb3JcIiksXG4gICAgICAgIFwiYm9yZGVyXCI6ICAgICAgICAgICBudWxsLFxuICAgICAgICBcImljb25cIjogICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtc3VjY2VzcyksXG4gICAgICAgIFwiaWNvbi1jb2xvclwiOiAgICAgICBudWxsLFxuICAgICAgICBcImljb24tYm9yZGVyXCI6ICAgICAgZmFsc2UsXG4gICAgICAgIFwiaWNvbi1zaXplXCI6ICAgICAgICBudWxsLFxuICAgICAgICBcImJ1dHRvbnNcIjogICAgICAgICAgKCksXG4gICAgKSxcbiAgICB3YXJuaW5nOiAoXG4gICAgICAgIFwidGV4dC1jb2xvclwiOiAgICAgICBtYXAtZGVlcC1nZXQoJFNUQVRVUy1USEVNRVMsIFwid2FybmluZ1wiLCBcInRleHQtY29sb3JcIiksXG4gICAgICAgIFwidGl0bGUtY29sb3JcIjogICAgICBudWxsLFxuICAgICAgICBcImJhY2tncm91bmQtY29sb3JcIjogbWFwLWRlZXAtZ2V0KCRTVEFUVVMtVEhFTUVTLCBcIndhcm5pbmdcIiwgXCJiYWNrZ3JvdW5kLWNvbG9yXCIpLFxuICAgICAgICBcImJvcmRlclwiOiAgICAgICAgICAgbnVsbCxcbiAgICAgICAgXCJpY29uXCI6ICAgICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLXdhcm5pbmcpLFxuICAgICAgICBcImljb24tY29sb3JcIjogICAgICAgbnVsbCxcbiAgICAgICAgXCJpY29uLWJvcmRlclwiOiAgICAgIGZhbHNlLFxuICAgICAgICBcImljb24tc2l6ZVwiOiAgICAgICAgbnVsbCxcbiAgICAgICAgXCJidXR0b25zXCI6ICAgICAgICAgICgpLFxuICAgICksXG4gICAgZXJyb3I6IChcbiAgICAgICAgXCJ0ZXh0LWNvbG9yXCI6ICAgICAgIG1hcC1kZWVwLWdldCgkU1RBVFVTLVRIRU1FUywgXCJlcnJvclwiLCBcInRleHQtY29sb3JcIiksXG4gICAgICAgIFwidGl0bGUtY29sb3JcIjogICAgICBudWxsLFxuICAgICAgICBcImJhY2tncm91bmQtY29sb3JcIjogbWFwLWRlZXAtZ2V0KCRTVEFUVVMtVEhFTUVTLCBcImVycm9yXCIsIFwiYmFja2dyb3VuZC1jb2xvclwiKSxcbiAgICAgICAgXCJib3JkZXJcIjogICAgICAgICAgIG51bGwsXG4gICAgICAgIFwiaWNvblwiOiAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1lcnJvciksXG4gICAgICAgIFwiaWNvbi1jb2xvclwiOiAgICAgICBudWxsLFxuICAgICAgICBcImljb24tYm9yZGVyXCI6ICAgICAgZmFsc2UsXG4gICAgICAgIFwiaWNvbi1zaXplXCI6ICAgICAgICBudWxsLFxuICAgICAgICBcImJ1dHRvbnNcIjogICAgICAgICAgKCksXG4gICAgKSxcbikgIWRlZmF1bHQ7XG5cbi8vIENvbmZpZyBmb3IgdGhlbWluZyBjb250ZXh0IG5vdGlmaWNhdGlvbnMgYmFzZWQgb24gc3RhdHVzLlxuJG5vdGlmaWNhdGlvbi1jb250ZXh0LXN0YXR1cy10aGVtZXM6IChcbiAgICBpbmZvOiAoXG4gICAgICAgIFwidGV4dC1jb2xvclwiOiAgICAgICBudWxsLFxuICAgICAgICBcInRpdGxlLWNvbG9yXCI6ICAgICAgbWFwLWRlZXAtZ2V0KCRTVEFUVVMtVEhFTUVTLCBcImluZm9cIiwgXCJjb2xvclwiKSxcbiAgICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yXCI6IG51bGwsXG4gICAgICAgIFwiYm9yZGVyXCI6ICAgICAgICAgICBudWxsLFxuICAgICAgICBcImJvcmRlci1jb2xvclwiOiAgICAgbWFwLWRlZXAtZ2V0KCRTVEFUVVMtVEhFTUVTLCBcImluZm9cIiwgXCJib3JkZXItY29sb3JcIiksXG4gICAgICAgIFwiaWNvblwiOiAgICAgICAgICAgICBudWxsLFxuICAgICAgICBcImljb24tY29sb3JcIjogICAgICAgbWFwLWRlZXAtZ2V0KCRTVEFUVVMtVEhFTUVTLCBcImluZm9cIiwgXCJjb2xvclwiKSxcbiAgICAgICAgXCJpY29uLWJvcmRlclwiOiAgICAgIG51bGwsXG4gICAgICAgIFwiaWNvbi1zaXplXCI6ICAgICAgICBudWxsLFxuICAgICAgICBcImJ1dHRvbnNcIjogICAgICAgICAgKCksXG4gICAgKSxcbiAgICBzdWNjZXNzOiAoXG4gICAgICAgIFwidGV4dC1jb2xvclwiOiAgICAgICBudWxsLFxuICAgICAgICBcInRpdGxlLWNvbG9yXCI6ICAgICAgbWFwLWRlZXAtZ2V0KCRTVEFUVVMtVEhFTUVTLCBcInN1Y2Nlc3NcIiwgXCJjb2xvclwiKSxcbiAgICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yXCI6IG51bGwsXG4gICAgICAgIFwiYm9yZGVyXCI6ICAgICAgICAgICBudWxsLFxuICAgICAgICBcImJvcmRlci1jb2xvclwiOiAgICAgbWFwLWRlZXAtZ2V0KCRTVEFUVVMtVEhFTUVTLCBcInN1Y2Nlc3NcIiwgXCJib3JkZXItY29sb3JcIiksXG4gICAgICAgIFwiaWNvblwiOiAgICAgICAgICAgICBudWxsLFxuICAgICAgICBcImljb24tY29sb3JcIjogICAgICAgbWFwLWRlZXAtZ2V0KCRTVEFUVVMtVEhFTUVTLCBcInN1Y2Nlc3NcIiwgXCJjb2xvclwiKSxcbiAgICAgICAgXCJpY29uLWJvcmRlclwiOiAgICAgIG51bGwsXG4gICAgICAgIFwiaWNvbi1zaXplXCI6ICAgICAgICBudWxsLFxuICAgICAgICBcImJ1dHRvbnNcIjogICAgICAgICAgKCksXG4gICAgKSxcbiAgICB3YXJuaW5nOiAoXG4gICAgICAgIFwidGV4dC1jb2xvclwiOiAgICAgICBudWxsLFxuICAgICAgICBcInRpdGxlLWNvbG9yXCI6ICAgICAgbnVsbCxcbiAgICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yXCI6IG51bGwsXG4gICAgICAgIFwiYm9yZGVyXCI6ICAgICAgICAgICBudWxsLFxuICAgICAgICBcImJvcmRlci1jb2xvclwiOiAgICAgbWFwLWRlZXAtZ2V0KCRTVEFUVVMtVEhFTUVTLCBcIndhcm5pbmdcIiwgXCJib3JkZXItY29sb3JcIiksXG4gICAgICAgIFwiaWNvblwiOiAgICAgICAgICAgICBudWxsLFxuICAgICAgICBcImljb24tY29sb3JcIjogICAgICAgbnVsbCxcbiAgICAgICAgXCJpY29uLWJvcmRlclwiOiAgICAgIG51bGwsXG4gICAgICAgIFwiaWNvbi1zaXplXCI6ICAgICAgICBudWxsLFxuICAgICAgICBcImJ1dHRvbnNcIjogICAgICAgICAgKCksXG4gICAgKSxcbiAgICBlcnJvcjogKFxuICAgICAgICBcInRleHQtY29sb3JcIjogICAgICAgbnVsbCxcbiAgICAgICAgXCJ0aXRsZS1jb2xvclwiOiAgICAgIG1hcC1kZWVwLWdldCgkU1RBVFVTLVRIRU1FUywgXCJlcnJvclwiLCBcImNvbG9yXCIpLFxuICAgICAgICBcImJhY2tncm91bmQtY29sb3JcIjogbnVsbCxcbiAgICAgICAgXCJib3JkZXJcIjogICAgICAgICAgIG51bGwsXG4gICAgICAgIFwiYm9yZGVyLWNvbG9yXCI6ICAgICBtYXAtZGVlcC1nZXQoJFNUQVRVUy1USEVNRVMsIFwiZXJyb3JcIiwgXCJib3JkZXItY29sb3JcIiksXG4gICAgICAgIFwiaWNvblwiOiAgICAgICAgICAgICBudWxsLFxuICAgICAgICBcImljb24tY29sb3JcIjogICAgICAgbWFwLWRlZXAtZ2V0KCRTVEFUVVMtVEhFTUVTLCBcImVycm9yXCIsIFwiY29sb3JcIiksXG4gICAgICAgIFwiaWNvbi1ib3JkZXJcIjogICAgICBudWxsLFxuICAgICAgICBcImljb24tc2l6ZVwiOiAgICAgICAgbnVsbCxcbiAgICAgICAgXCJidXR0b25zXCI6ICAgICAgICAgICgpLFxuICAgICksXG4pICFkZWZhdWx0O1xuXG4vLyBNZXJnZSBkZWZhdWx0IGFuZCBvdmVyd3JpdGUgc2V0dGluZ3MgdG8gYXZvaWQgZHVwbGljYXRpb25zXG4vLyBhbmQgb3ZlcndyaXRlIG9ubHkgbmVjZXNzYXJ5IHNldHRpbmdzLlxuJG5vdGlmaWNhdGlvbi1zdGF0dXMtdGhlbWVzLW92ZXJ3cml0ZXM6ICgpICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1zdGF0dXMtdGhlbWVzLW1lcmdlZDogICAgIG1hcC1kZWVwLW1lcmdlKCRub3RpZmljYXRpb24tc3RhdHVzLXRoZW1lcywgJG5vdGlmaWNhdGlvbi1zdGF0dXMtdGhlbWVzLW92ZXJ3cml0ZXMsIDIpICFkZWZhdWx0O1xuXG4vLyBNZXJnZSBkZWZhdWx0IGFuZCBvdmVyd3JpdGUgc2V0dGluZ3MuXG4kbm90aWZpY2F0aW9uLWNvbnRleHQtc3RhdHVzLXRoZW1lcy1vdmVyd3JpdGVzOiAoKSAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY29udGV4dC1zdGF0dXMtdGhlbWVzLW1lcmdlZDogICAgIG1hcC1kZWVwLW1lcmdlKCRub3RpZmljYXRpb24tY29udGV4dC1zdGF0dXMtdGhlbWVzLCAkbm90aWZpY2F0aW9uLWNvbnRleHQtc3RhdHVzLXRoZW1lcy1vdmVyd3JpdGVzLCAyKSAhZGVmYXVsdDtcblxuLy8gU3R5bGUtaG9vazogYFtkYXRhLW1hcmtldGluZy10aGVtZV1gXG4kbm90aWZpY2F0aW9uLW1hcmtldGluZy10aGVtZXMtb3ZlcndyaXRlczogKCkgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLW1hcmtldGluZy10aGVtZXM6ICAgICAgICAgICAgbWFwLWRlZXAtbWVyZ2UoJE1BUktFVElORy1USEVNRVMsICRub3RpZmljYXRpb24tbWFya2V0aW5nLXRoZW1lcy1vdmVyd3JpdGVzLCAyKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlIENTUyBjdXN0b20gcHJvcGVydHkgdG8gc2V0IGJ1dHRvbiBwcm9wZXJ0aWVzXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByb3BlcnR5IC0gUHJvcGVydHkgcGFydCBvZiB0aGUgQ1NTIGN1c3RvbSBwcm9wZXJ0eVxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJHZhbHVlIC0gVmFsdWUgb2YgdGhlIENTUyBjdXN0b20gcHJvcGVydHlcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhcmlhbnQgW3NlY29uZGFyeV0gLSBCdXR0b24gdmFyaWFudC4gRS5nLiBgcHJpbWFyeWAgb3IgYHNlY29uZGFyeWBcbkBtaXhpbiBfYnV0dG9uLWNzcy1jdXN0b20tcHJvcGVydHkoJHByb3BlcnR5LCAkdmFsdWUsICR2YXJpYW50OiBzZWNvbmRhcnkpIHtcbiAgICBAaWYgKCR2YWx1ZSkge1xuICAgICAgICAtLWJ1dHRvbi0jeyR2YXJpYW50fS0jeyRwcm9wZXJ0eX06ICN7JHZhbHVlfTtcbiAgICB9XG59XG5cbi8vLyBHZW5lcmF0ZSBDU1MgY3VzdG9tIHByb3BlcnRpZXMgZnJvbSBwcm9wZXJ0eSBuYW1lIGFuZCB2YWx1ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgcHJvcGVydHlcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlIC0gVmFsdWUgb2YgdGhlIHByb3BlcnR5XG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcmVmaXggLSBQcmVmaXggdG8gYWRkIHRvIHRoZSBwcm9wZXJ0eSBuYW1lXG4vLy8gQGV4YW1wbGVcbi8vLyAgICAgQGluY2x1ZGUgX2Nzcy1jdXN0b20tcHJvcGVydHktZnJvbS12YXIoXG4vLy8gICAgICAgICAkbmFtZTogYm9yZGVyLWNvbG9yLFxuLy8vICAgICAgICAgJHZhbHVlOiByZWQsXG4vLy8gICAgICk7XG4vLy8gT3V0cHV0czpcbi8vLyAgICAgLS1ub3RpZmljYXRpb24tYm9yZGVyLWNvbG9yOiByZWQ7XG5AbWl4aW4gX2Nzcy1jdXN0b20tcHJvcGVydHktZnJvbS12YXIoJG5hbWUsICR2YWx1ZSwgJHByZWZpeDogbm90aWZpY2F0aW9uKSB7XG4gICAgQGlmICgkdmFsdWUpIHtcbiAgICAgICAgLS0je2lmKCRwcmVmaXgsICRwcmVmaXggKyAnLScsIG51bGwpfSN7JG5hbWV9OiAjeyR2YWx1ZX07XG4gICAgfVxufVxuXG4vLy8gR2VuZXJhdGUgQ1NTIGN1c3RvbSBwcm9wZXJ0aWVzIGZyb20gdmFyeSBwcm9wZXJ0aWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eSAtIFRoZSBuYW1lIG9mIHRoZSB2YXJ5IHByb3BlcnR5XG5AbWl4aW4gX2Nzcy1jdXN0b20tcHJvcGVydHktZnJvbS12YXJ5KCRwcm9wZXJ0eSkge1xuICAgIEBpbmNsdWRlIF9jc3MtY3VzdG9tLXByb3BlcnR5LWZyb20tdmFyKFxuICAgICAgICAkbmFtZTogI3skcHJvcGVydHl9LFxuICAgICAgICAkdmFsdWU6IHZhcnktZ2V0KCRwcm9wZXJ0eSksXG4gICAgKTtcbn1cblxuLy8vIEdlbmVyYXRlIGNvbW1vbiBub3RpZmljYXRpb24gQ1NTIGN1c3RvbSBwcm9wZXJ0aWVzXG5AbWl4aW4gX25vdGlmaWNhdGlvbi1jc3MtY3VzdG9tLXByb3BlcnRpZXMoKSB7XG4gICAgLy8gR2VuZXJhdGUgc3RhdHVzIHRoZW1lIGJ1dHRvbiBDU1MgY3VzdG9tIHByb3BlcnRpZXNcbiAgICBAZWFjaCAkcHJvcGVydHksICR2YWx1ZSBpbiB2YXJ5LWdldChcImJ1dHRvbnNcIikge1xuICAgICAgICBAaW5jbHVkZSBfYnV0dG9uLWNzcy1jdXN0b20tcHJvcGVydHkoXG4gICAgICAgICAgICAkcHJvcGVydHk6ICRwcm9wZXJ0eSxcbiAgICAgICAgICAgICR2YWx1ZTogJHZhbHVlLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIEdlbmVyYXRlIHN0YXR1cyB0aGVtZSBDU1MgY3VzdG9tIHByb3BlcnRpZXMgZnJvbSB2YXJ5IHZhbHVlc1xuICAgIEBpbmNsdWRlIF9jc3MtY3VzdG9tLXByb3BlcnR5LWZyb20tdmFyeShiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICBAaW5jbHVkZSBfY3NzLWN1c3RvbS1wcm9wZXJ0eS1mcm9tLXZhcnkodGV4dC1jb2xvcik7XG4gICAgQGluY2x1ZGUgX2Nzcy1jdXN0b20tcHJvcGVydHktZnJvbS12YXJ5KHRpdGxlLWNvbG9yKTtcbiAgICBAaW5jbHVkZSBfY3NzLWN1c3RvbS1wcm9wZXJ0eS1mcm9tLXZhcnkoaWNvbi1jb2xvcik7XG4gICAgQGluY2x1ZGUgX2Nzcy1jdXN0b20tcHJvcGVydHktZnJvbS12YXJ5KGJvcmRlci1zdHlsZSk7XG4gICAgQGluY2x1ZGUgX2Nzcy1jdXN0b20tcHJvcGVydHktZnJvbS12YXJ5KGJvcmRlci13aWR0aCk7XG4gICAgQGluY2x1ZGUgX2Nzcy1jdXN0b20tcHJvcGVydHktZnJvbS12YXJ5KGJvcmRlci1jb2xvcik7XG4gICAgQGluY2x1ZGUgX2Nzcy1jdXN0b20tcHJvcGVydHktZnJvbS12YXJ5KGJvcmRlcik7XG59XG5cblxuXG4vKipcbiAqIFsxXSAgTm90aWZpY2F0aW9ucyBhcmUgYWx3YXlzIHN0aWNreS5cbiAqIFsyXSAgTm90aWZpY2F0aW9ucyBhcmUgZGlzcGxheWVkIGVpdGhlciBhdCB0aGUgdG9wIG9yIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UuXG4gKiBbM10gIFZpc3VhbGx5IGhpZGUgbm90aWZpY2F0aW9ucyBhcyBsb25nIGFzIEpTIGlzIG5vdCBsb2FkZWQuXG4gKiBbNF0gIFRvIHByb3Blcmx5IGFuaW1hdGUgdGhlIG9wZW5pbmcvY2xvc2luZyBvZiB0aGUgbm90aWZpY2F0aW9ucywgaGlkZSB0aGVcbiAqICAgICAgb3ZlcmZsb3cuXG4gKiBbNV0gIEFkZCB0cmFuc2l0aW9uIGFmdGVyIEpTIGlzIGxvYWRlZCB0byBwcmV2ZW50IHdlaXJkIGZsaWNrZXJpbmcgb2YgdGhlXG4gKiAgICAgIG5vdGlmaWNhdGlvbiBvbiBwYWdlLWxvYWQuXG4gKiBbNl0gIEFkZCBoZWlnaHQgb2YgYDBgIHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBpcyBjbG9zZWQgdG8gYmUgYWJsZSB0b1xuICogICAgICBhbmltYXRlIHRoZSBvcGVuaW5nL2Nsb3NpbmcuXG4gKiBbOF0gIFZlcnRpY2FsbHkgYWxpZ24gdGhlIGljb24gd2l0aCB0aGUgZmlyc3QgbGluZSBvZiB0aGUgbm90aWZpY2F0aW9ucyB0ZXh0LlxuICogWzldICBSZWxhdGlvbiBmb3IgdGhlIGljb24uXG4gKiBbMTBdIFNwYWNpbmcgZm9yIHRoZSBpY29uIG9uIHRoZSByaWdodC5cbiAqIFsxMV0gTWFrZSBzdXJlIHRoYXQgbGlua3MgaW4gbm90aWZpY2F0aW9ucyBhcmUgYWx3YXlzIGxlZ2libGUuXG4gKiBbMTNdIE1vZGlmaWVyIGZvciBmbGV4LWRpcmVjdGlvbiBiZWhhdmlvciBvbiBtb2JpbGUuXG4gKiBbMTRdIFJlbW92ZSBtYXJnaW4tYm90dG9tIGZyb20gcGFyYWdyYXBoLlxuICogWzE1XSBBZGQgc3RhdHVzIHNwZWNpZmljIGNvbG9yLlxuICogWzE2XSBTZXQgYHRyYW5zZm9ybWAgdG8gYG5vbmVgIGluc3RlYWQgb2YgYHRyYW5zbGF0ZVkoMClgIGFzIHRoaXMgd291bGRcbiAqICAgICAgaGlkZSB0aGUgYm90dG9tIGJvcmRlciBpbiBjb21iaW5hdGlvbiB3aXRoIGBvdmVyZmxvdzogaGlkZGVuYCBvbiB0aGVcbiAqICAgICAgY29udGFpbmVyIChvbmx5IG5lY2Vzc2FyeSBmb3IgRmlyZWZveCkuXG4gKiBbMTddIFJlc3RyaWN0IHRoZSBoZWlnaHQgb2YgdGhlIGNvbnRhaW5lciB0byB0aGUgdmlld3BvcnQgaGVpZ2h0LCBzbyBpdCBpc1xuICogICAgICBzY3JvbGxhYmxlIHdpdGggbWFueSBpdGVtcyBpbiBpdC5cbiAqIFsxOF0gSW4gY2FzZSBvZiBtYW55IG5vdGlmaWNhdGlvbnMsIGVuc3VyZSBzY3JvbGxhYmlsaXR5LC4uLlxuICogWzE5XSAuLi5idXQgcHJldmVudCBvbiB0aGUgeC1heGlzLlxuICogWzIwXSBHZW5lcmF0ZSBidXR0b24gQ1NTIGN1c3RvbSBwcm9wZXJ0aWVzXG4gKiBbMjFdIEdlbmVyYXRlIHN0YXR1cyB0aGVtZSBidXR0b24gQ1NTIGN1c3RvbSBwcm9wZXJ0aWVzXG4gKi9cbi5jLW5vdGlmaWNhdGlvbnMtZ3JvdXAge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7IC8qIFsxXSAqL1xuICAgIHotaW5kZXg6ICRub3RpZmljYXRpb24tei1pbmRleDtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwdmg7IC8qIFsxN10gKi9cbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IC8qIFszXSAqL1xuICAgIG92ZXJmbG93LXk6IGF1dG87IC8qIFsxOF0gKi9cbiAgICBvdmVyZmxvdy14OiBoaWRkZW47IC8qIFsxOV0gKi9cblxuICAgICYuanMtaXMtcmVhZHkge1xuICAgICAgICB2aXNpYmlsaXR5OiBpbmhlcml0O1xuICAgIH1cblxufVxuXG4uanMtY29udGV4dC1ub3RpZmljYXRpb24ge1xuICAgIG1hcmdpbi1ib3R0b206ICRub3RpZmljYXRpb24tY29udGV4dC1zcGFjaW5nLXZlcnRpY2FsO1xufVxuXG4uYy1ub3RpZmljYXRpb24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiAkbm90aWZpY2F0aW9uLXBhZGRpbmctdG9wO1xuICAgIHBhZGRpbmctYm90dG9tOiAkbm90aWZpY2F0aW9uLXBhZGRpbmctYm90dG9tO1xuICAgIHRyYW5zZm9ybTogbm9uZTsgLyogWzE2XSAqL1xuICAgIGJvcmRlcjogdmFyKC0tbm90aWZpY2F0aW9uLWJvcmRlciwgI3skbm90aWZpY2F0aW9uLWJvcmRlcn0pO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLCAjeyRub3RpZmljYXRpb24tYmFja2dyb3VuZC1jb2xvcn0pO1xuICAgIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tdGV4dC1jb2xvciwgI3skbm90aWZpY2F0aW9uLXRleHQtY29sb3J9KTtcblxuICAgIC5jLW5vdGlmaWNhdGlvbnMtZ3JvdXAuanMtaXMtcmVhZHkgPiAmLFxuICAgIC5jLW5vdGlmaWNhdGlvbl9fY29udGFpbmVyLmpzLWlzLXJlYWR5ICYge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCk7IC8qIFs1XSAqL1xuICAgIH1cblxuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBvcmRlci9vcmRlciAqL1xuICAgIEBpbmNsdWRlIHZhcnkoJGNyZWF0ZTogbW9kaWZpZXIsICRsb29wOiAkbm90aWZpY2F0aW9uLXN0YXR1cy10aGVtZXMtbWVyZ2VkKSB7XG5cbiAgICAgICAgQGlmICgkbm90aWZpY2F0aW9uLWVuYWJsZS1zdGF0dXMtaWNvbikge1xuICAgICAgICAgICAgLmMtbm90aWZpY2F0aW9uX19zdGF0dXMtaWNvbiB7XG4gICAgICAgICAgICAgICAgLy8gVXNlIHNwZWNpYWwgaWNvbiBzaXplIHdoZW4gZGVmaW5lZCBwZXIgc3RhdHVzLCBvdGhlcndpc2UgdXNlIGEgY29tbW9uIHNpemVcbiAgICAgICAgICAgICAgICAkX2ljb24tc2l6ZTogaWYodmFyeS1nZXQoXCJpY29uLXNpemVcIiksIHZhcnktZ2V0KFwiaWNvbi1zaXplXCIpLCAkbm90aWZpY2F0aW9uLXN0YXR1cy1pY29uLXNpemUpO1xuXG4gICAgICAgICAgICAgICAgQGlmICh2YXJ5LWdldChcImljb24tYm9yZGVyXCIpID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi12YXJpYW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgJHZhcmlhbnQ6ICAgICAgXCJyb3VuZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgJGJvcmRlci1jb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWljb24tY29sb3IsICN7JG5vdGlmaWNhdGlvbi1pY29uLWNvbG9yfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAkc2l6ZTogICAgICAgICAkX2ljb24tc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiBpY29uLXNpemUoJF9pY29uLXNpemUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHZhcnktZ2V0KFwiaWNvblwiKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG5cbn1cblxuICAgIC8qIE5vcm1hbCBOb3RpZmljYXRpb25zIChub3QgQ29udGV4dCBOb3RpZmljYXRpb25zKSAqL1xuICAgIDpub3QoLmMtbm90aWZpY2F0aW9uLS1jb250ZXh0KSB7XG5cbiAgICAgICAgJi5jLW5vdGlmaWNhdGlvbiB7XG4gICAgICAgICAgICAvKiBbMjBdICovXG4gICAgICAgICAgICBAZWFjaCAkcHJvcGVydHksICR2YWx1ZSBpbiAkbm90aWZpY2F0aW9uLWJ1dHRvbi1zdHlsZXMtbWVyZ2VkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBfYnV0dG9uLWNzcy1jdXN0b20tcHJvcGVydHkoXG4gICAgICAgICAgICAgICAgICAgICRwcm9wZXJ0eTogJHByb3BlcnR5LFxuICAgICAgICAgICAgICAgICAgICAkdmFsdWU6ICR2YWx1ZSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSB2YXJ5KCRjcmVhdGU6IG1vZGlmaWVyLCAkbG9vcDogJG5vdGlmaWNhdGlvbi1zdGF0dXMtdGhlbWVzLW1lcmdlZCkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIF9ub3RpZmljYXRpb24tY3NzLWN1c3RvbS1wcm9wZXJ0aWVzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC8qIE1hcmtldGluZyBDb2xvcnMgTm90aWZpY2F0aW9ucyAqL1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kdXBsaWNhdGUtc2VsZWN0b3JzICovXG4gICAgLmMtbm90aWZpY2F0aW9uIHtcbiAgICAgICAgQGluY2x1ZGUgdmFyeSgkY3JlYXRlOiBjdXN0b20sICRsb29wOiAkbm90aWZpY2F0aW9uLW1hcmtldGluZy10aGVtZXMpIHtcblxuICAgICAgICAgICAgJltkYXRhLW1hcmtldGluZy10aGVtZT1cIiN7JHZhcnktbG9vcC1lbnRpdHl9XCJdIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBfbm90aWZpY2F0aW9uLWNzcy1jdXN0b20tcHJvcGVydGllcygpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBDb250ZXh0IE5vdGlmaWNhdGlvbnMgKi9cbiAgICAuYy1ub3RpZmljYXRpb24tLWNvbnRleHQge1xuICAgICAgICBAaW5jbHVkZSBfY3NzLWN1c3RvbS1wcm9wZXJ0eS1mcm9tLXZhcih0ZXh0LWNvbG9yLCAkbm90aWZpY2F0aW9uLWNvbnRleHQtdGV4dC1jb2xvcik7XG4gICAgICAgIEBpbmNsdWRlIF9jc3MtY3VzdG9tLXByb3BlcnR5LWZyb20tdmFyKHRpdGxlLWNvbG9yLCAkbm90aWZpY2F0aW9uLWNvbnRleHQtdGl0bGUtY29sb3IpO1xuICAgICAgICBAaW5jbHVkZSBfY3NzLWN1c3RvbS1wcm9wZXJ0eS1mcm9tLXZhcihiYWNrZ3JvdW5kLWNvbG9yLCAkbm90aWZpY2F0aW9uLWNvbnRleHQtYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgIEBpbmNsdWRlIF9jc3MtY3VzdG9tLXByb3BlcnR5LWZyb20tdmFyKGJvcmRlci1zdHlsZSwgJG5vdGlmaWNhdGlvbi1jb250ZXh0LWJvcmRlci1zdHlsZSk7XG4gICAgICAgIEBpbmNsdWRlIF9jc3MtY3VzdG9tLXByb3BlcnR5LWZyb20tdmFyKGJvcmRlci13aWR0aCwgJG5vdGlmaWNhdGlvbi1jb250ZXh0LWJvcmRlci13aWR0aCk7XG4gICAgICAgIEBpbmNsdWRlIF9jc3MtY3VzdG9tLXByb3BlcnR5LWZyb20tdmFyKGJvcmRlci1jb2xvciwgJG5vdGlmaWNhdGlvbi1jb250ZXh0LWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tbm90aWZpY2F0aW9uLWJvcmRlciwgI3skbm90aWZpY2F0aW9uLWNvbnRleHQtYm9yZGVyfSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWJvcmRlci1jb2xvcik7XG5cbiAgICAgICAgLyogWzIwXSAqL1xuICAgICAgICBAZWFjaCAkcHJvcGVydHksICR2YWx1ZSBpbiAkbm90aWZpY2F0aW9uLWNvbnRleHQtYnV0dG9uLXN0eWxlcy1tZXJnZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgX2J1dHRvbi1jc3MtY3VzdG9tLXByb3BlcnR5KFxuICAgICAgICAgICAgICAgICRwcm9wZXJ0eTogJHByb3BlcnR5LFxuICAgICAgICAgICAgICAgICR2YWx1ZTogJHZhbHVlLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYy1ub3RpZmljYXRpb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmFyeSgkY3JlYXRlOiBtb2RpZmllciwgJGxvb3A6ICRub3RpZmljYXRpb24tY29udGV4dC1zdGF0dXMtdGhlbWVzLW1lcmdlZCkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIF9ub3RpZmljYXRpb24tY3NzLWN1c3RvbS1wcm9wZXJ0aWVzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLW5vdGlmaWNhdGlvbl9fY29udGFpbmVyIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogWzRdICovXG5cbiAgICAgICAgLy8gU3Vic2VxdWVudCBjb250YWluZXIuIFN0eWxlIG9ubHkgYXBwbGllcyBpZiAyKyBjb250YWluZXJzIGFyZSBwcmVzZW50LlxuICAgICAgICAmICsgJiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkbm90aWZpY2F0aW9uLWNvbnRhaW5lci1zcGFjaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgLmpzLWlzLXJlYWR5ID4gJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCk7IC8qIFs1XSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1jbG9zZWQge1xuICAgICAgICAgICAgaGVpZ2h0OiAwOyAvKiBbNl0gKi9cbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtbm90aWZpY2F0aW9uX19jbG9zZSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWJ1dHRvbigpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAoKCRub3RpZmljYXRpb24tbGluZS1oZWlnaHQgLSAkbm90aWZpY2F0aW9uLWNsb3NlLWljb24tc2l6ZSkgKiAwLjUpOyAvKiBbOF0gKi9cbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGhlaWdodDogJG5vdGlmaWNhdGlvbi1jbG9zZS1pY29uLXNpemU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRub3RpZmljYXRpb24tY2xvc2UtaWNvbi1ib3JkZXItcmFkaXVzLCAkbm90aWZpY2F0aW9uLWNsb3NlLWljb24tYm9yZGVyLXJhZGl1cywgbnVsbCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCk7XG4gICAgICAgICAgICBjb250ZW50OiAkbm90aWZpY2F0aW9uLWNsb3NlLWljb247XG4gICAgICAgICAgICBmb250LXNpemU6ICRub3RpZmljYXRpb24tY2xvc2UtaWNvbi1zaXplO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tdGV4dC1jb2xvciwgI3skbm90aWZpY2F0aW9uLXRleHQtY29sb3J9KTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtbm90aWZpY2F0aW9uX19zdGF0dXMtaWNvbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJG5vdGlmaWNhdGlvbi1zdGF0dXMtaWNvbi1zcGFjaW5nLWhvcml6b250YWw7XG4gICAgICAgIGZvbnQtc2l6ZTogaWNvbi1zaXplKCRub3RpZmljYXRpb24tc3RhdHVzLWljb24tc2l6ZSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24taWNvbi1jb2xvcik7XG5cbiAgICAgICAgLy8gT25seSBkZWZpbmUgaWNvbiBkZWZpbml0aW9ucyB3aGVuIHVzaW5nIHN0YXR1cyBpY29ucyB3aXRoIG1vZGlmaWVyXG4gICAgICAgIC8vIHRvIGF2b2lkIGR1cGxpY2F0aW9ucyAmIGNvbmZsaWN0cyB3aXRoIGAuYy1pY29uYC5cbiAgICAgICAgLmMtbm90aWZpY2F0aW9uICYge1xuICAgICAgICAgICAgQGlmICgkbm90aWZpY2F0aW9uLWVuYWJsZS1zdGF0dXMtaWNvbikge1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtbm90aWZpY2F0aW9uX19vdXRlci13cmFwIHtcbiAgICAgICAgQGlmICgkbm90aWZpY2F0aW9uLXBhZ2Utd3JhcCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgcGFnZS13cmFwKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYy1ub3RpZmljYXRpb25fX2lubmVyLXdyYXAge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICAgJG5vdGlmaWNhdGlvbi1mb250LXNpemUsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICRub3RpZmljYXRpb24tbGluZS1oZWlnaHRcbiAgICAgICAgKTsgLyogWzhdICovXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogWzldICovXG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogKCRub3RpZmljYXRpb24tY2xvc2UtaWNvbi1zaXplICsgJG5vdGlmaWNhdGlvbi1jbG9zZS1pY29uLXBhZGRpbmcpOyAvKiBbMTBdICovXG4gICAgfVxuXG4gICAgLmMtbm90aWZpY2F0aW9uX190ZXh0IHtcblxuICAgICAgICAmLFxuICAgICAgICA+IHA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbMTRdICovXG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0OyAvKiBbMTFdICovXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLW5vdGlmaWNhdGlvbl9fdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICRub3RpZmljYXRpb24tdGl0bGUtc2l6ZSxcbiAgICAgICAgKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJG5vdGlmaWNhdGlvbi10aXRsZS1zcGFjaW5nLWJvdHRvbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRub3RpZmljYXRpb24tdGl0bGUtd2VpZ2h0O1xuICAgICAgICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLXRpdGxlLWNvbG9yLCAjeyRub3RpZmljYXRpb24tdGl0bGUtY29sb3J9KTtcbiAgICB9XG5cbiAgICAuYy1ub3RpZmljYXRpb25fX2J1dHRvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6ICRub3RpZmljYXRpb24tYnV0dG9ucy1nYXA7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgbWFyZ2luLXRvcDogJG5vdGlmaWNhdGlvbi1idXR0b25zLXRvcC1zcGFjaW5nO1xuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgI05PVElGSUNBVElPTlNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2tvZGEtbm90aWZpY2F0aW9uLWZvY3VzLW91dGxpbmUtY29sb3I6ICAgICAgICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRza29kYS1ub3RpZmljYXRpb24tb24tbGlnaHQtZm9jdXMtb3V0bGluZS1jb2xvcjogICAgICAgICAgJEdMT0JBTC1GT0NVUy1DT0xPUiAhZGVmYXVsdDtcbiRza29kYS1ub3RpZmljYXRpb24tY2xvc2Utb2Zmc2V0LWhvcml6b250YWwtb24tYnJlYWtwb2ludDogJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFhTTUFMTCAhZGVmYXVsdDtcbiRza29kYS1ub3RpZmljYXRpb24tY2xvc2UtYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogICAgICAgICAgJEJVVFRPTi1JQ09OLUlOVEVSQUNUSU9OLUJBQ0tHUk9VTkQtQ09MT1ItSE9WRVItT04tREFSSyAhZGVmYXVsdDtcbiRza29kYS1ub3RpZmljYXRpb24tb24tbGlnaHQtY2xvc2UtYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogJEJVVFRPTi1JQ09OLUlOVEVSQUNUSU9OLUJBQ0tHUk9VTkQtQ09MT1ItSE9WRVItT04tTElHSFQgIWRlZmF1bHQ7XG4kc2tvZGEtbm90aWZpY2F0aW9uLWJ1dHRvbi1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICRCVVRUT04tR0hPU1QtT04tREFSSy1TVVJGQUNFLUJPUkRFUi1XSURUSCAkQlVUVE9OLUdIT1NULU9OLURBUkstU1VSRkFDRS1CT1JERVItU1RZTEUgJEJVVFRPTi1HSE9TVC1PTi1EQVJLLVNVUkZBQ0UtQk9SREVSLUNPTE9SICFkZWZhdWx0O1xuXG4kc2tvZGEtbm90aWZpY2F0aW9uLXN0YXR1cy1pY29uLW9mZnNldDogICAgICAgICAgICAgICAgICAgIC0oMC4xNWVtKSAhZGVmYXVsdDtcbiRza29kYS1ub3RpZmljYXRpb24tc3RhdHVzLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAgJE5PVElGSUNBVElPTi1TVEFUVVMtQk9SREVSLVdJRFRIICFkZWZhdWx0O1xuJHNrb2RhLW5vdGlmaWNhdGlvbi1zdGF0dXMtYm9yZGVyLXRoZW1lczogICAgICAgICAgICAgICAgICBtYXAtcmVtb3ZlKCRTVEFUVVMtVEhFTUVTLCBcImluZm9cIikgIWRlZmF1bHQ7IC8vIFVzZSByZWd1bGFyIHN0YXR1cyB0aGVtZXMgRVhDRVBUIFwiaW5mb1wiLlxuXG4vKipcbiAqIFsxXSBDb21wZW5zYXRlIG1pc2FsaWdubWVudCBiZXR3ZWVuIGljb24gYW5kIHRpdGxlL3RleHQuXG4gKiBbMl0gQXZvaWQgY29sbGlzaW9uIHdpdGggYnV0dG9uIHN0YXRlcy5cbiAqL1xuLmMtbm90aWZpY2F0aW9uIHtcbiAgICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICN7JHNrb2RhLW5vdGlmaWNhdGlvbi1mb2N1cy1vdXRsaW5lLWNvbG9yfTtcblxuICAgICYuYy1ub3RpZmljYXRpb24tLWNvbnRleHQsXG4gICAgJltkYXRhLW1hcmtldGluZy10aGVtZV0ge1xuICAgICAgICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICN7JHNrb2RhLW5vdGlmaWNhdGlvbi1vbi1saWdodC1mb2N1cy1vdXRsaW5lLWNvbG9yfTtcbiAgICB9XG5cbiAgICAmOm5vdCguYy1ub3RpZmljYXRpb24tLWNvbnRleHQsIFtkYXRhLW1hcmtldGluZy10aGVtZV0pIC5jLWJ0biB7XG4gICAgICAgIGJvcmRlcjogJHNrb2RhLW5vdGlmaWNhdGlvbi1idXR0b24tYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICN7JHNrb2RhLW5vdGlmaWNhdGlvbi1mb2N1cy1vdXRsaW5lLWNvbG9yfTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbiAgICAuYy1ub3RpZmljYXRpb25fX2Nsb3NlIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWljb24tc3RhdGVzKFxuICAgICAgICAgICAgJGJhY2tncm91bmQtY29sb3ItaG92ZXI6ICRza29kYS1ub3RpZmljYXRpb24tY2xvc2UtYmFja2dyb3VuZC1jb2xvci1ob3ZlcixcbiAgICAgICAgICAgICRmb2N1cy1vdXRsaW5lLWNvbG9yOiAgICAkc2tvZGEtbm90aWZpY2F0aW9uLWZvY3VzLW91dGxpbmUtY29sb3IsXG4gICAgICAgICk7XG4gICAgICAgIHRvcDogMDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9eHNcIikge1xuICAgICAgICAgICAgcmlnaHQ6ICRza29kYS1ub3RpZmljYXRpb24tY2xvc2Utb2Zmc2V0LWhvcml6b250YWwtb24tYnJlYWtwb2ludDsgLyogWzJdICovXG4gICAgICAgIH1cblxuICAgICAgICAuYy1ub3RpZmljYXRpb24tLWNvbnRleHQgJixcbiAgICAgICAgW2RhdGEtbWFya2V0aW5nLXRoZW1lXSAmIHtcblxuICAgICAgICAgICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRza29kYS1ub3RpZmljYXRpb24tb24tbGlnaHQtY2xvc2UtYmFja2dyb3VuZC1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIC0tZm9jdXMtb3V0bGluZS1jb2xvcjogI3skc2tvZGEtbm90aWZpY2F0aW9uLW9uLWxpZ2h0LWZvY3VzLW91dGxpbmUtY29sb3J9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLW5vdGlmaWNhdGlvbl9fc3RhdHVzLWljb24ge1xuICAgICAgICBtYXJnaW4tdG9wOiAkc2tvZGEtbm90aWZpY2F0aW9uLXN0YXR1cy1pY29uLW9mZnNldDsgLyogWzFdICovXG4gICAgfVxuXG5cblxuLy8gYDpub3QoKWAgYmVmb3JlIGNsYXNzIHNlbGVjdG9yIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBgdmFyeWAgbWl4aW5cbjpub3QoLmMtbm90aWZpY2F0aW9uLS1jb250ZXh0KS5jLW5vdGlmaWNhdGlvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgQGluY2x1ZGUgdmFyeSgkY3JlYXRlOiBtb2RpZmllciwgJGxvb3A6ICRza29kYS1ub3RpZmljYXRpb24tc3RhdHVzLWJvcmRlci10aGVtZXMpIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyeS1nZXQoXCJiYWNrZ3JvdW5kLWNvbG9yXCIpO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAvLyBzdGF0dXMgYm9yZGVyXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6ICRza29kYS1ub3RpZmljYXRpb24tc3RhdHVzLWJvcmRlci13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxufVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI05PVElGSUNBVElPTi1TRVRUSU5HU1xuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiROT1RJRklDQVRJT04tU1RBVFVTLUJPUkRFUi1XSURUSDogNnB4ICFkZWZhdWx0O1xuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1dJWkFSRFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8vLyBMaXN0IG9mIGJyZWFrcG9pbnRzIGF0IHdoaWNoIHRoZSBjb21wb25lbnQgY29sbGFwc2VzLlxuLy8vIEtlZXAgaW4gc3luYyB3aXRoIHRoZSB2YXJpYW50cyBpbiBgd2l6YXJkLmNvbmZpZy5qc2AgYW5kIGNvbXBvbmVudCBub3Rlcy5cbi8vLyBAdHlwZSBMaXN0XG4kd2l6YXJkLWNvbGxhcHNlLWJyZWFrcG9pbnRzOiAoXG4gICAgcyxcbiAgICBtLFxuICAgIGxcbikgIWRlZmF1bHQ7XG4kd2l6YXJkLXBhZ2Utd3JhcDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiR3aXphcmQtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2MHB4ICFkZWZhdWx0O1xuJHdpemFyZC1zcGFjaW5nLXRvcDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kd2l6YXJkLXNwYWNpbmctYm90dG9tOiAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kd2l6YXJkLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLVBBTEUgIWRlZmF1bHQ7XG4kd2l6YXJkLXBhZGRpbmctdmVydGljYWwtYXQtYnJlYWtwb2ludDogICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuJHdpemFyZC1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJHdpemFyZC1pdGVtLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiR3aXphcmQtaXRlbS1wYWRkaW5nLXZlcnRpY2FsLWF0LWJyZWFrcG9pbnQ6ICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kd2l6YXJkLWl0ZW0tZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgJEZTMCAhZGVmYXVsdDtcbiR3aXphcmQtaXRlbS1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICAgICBub3JtYWwgIWRlZmF1bHQ7XG4kd2l6YXJkLWl0ZW0tYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAgICAgJHdpemFyZC1iYWNrZ3JvdW5kLWNvbG9yICFkZWZhdWx0O1xuJHdpemFyZC1pdGVtLWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQ6ICAgICAgICAgICR3aXphcmQtYmFja2dyb3VuZC1jb2xvciAhZGVmYXVsdDtcbiR3aXphcmQtaXRlbS1iYWNrZ3JvdW5kLWNvbG9yLWRvbmU6ICAgICAgICAgICAgICAkQ09MT1ItU1VCVExFICFkZWZhdWx0O1xuJHdpemFyZC1pdGVtLWJhY2tncm91bmQtY29sb3ItYWN0aXZlOiAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiR3aXphcmQtaXRlbS10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQkFTRS1URVhUICFkZWZhdWx0O1xuJHdpemFyZC1pdGVtLXRleHQtY29sb3ItZGlzYWJsZWQ6ICAgICAgICAgICAgICAgICRDT0xPUi1JTkFDVElWRSAhZGVmYXVsdDtcbiR3aXphcmQtaXRlbS10ZXh0LWNvbG9yLWRvbmU6ICAgICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiR3aXphcmQtaXRlbS10ZXh0LWNvbG9yLWRvbmUtaG92ZXI6ICAgICAgICAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kd2l6YXJkLWl0ZW0tdGV4dC1jb2xvci1hY3RpdmU6ICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kd2l6YXJkLWl0ZW0tdGV4dC1jb2xvci1hY3RpdmUtaG92ZXI6ICAgICAgICAgICAgJENPTE9SLUhJR0hMSUdIVCAhZGVmYXVsdDtcbiR3aXphcmQtaXRlbS10ZXh0LWNvbG9yLWVycm9yOiAgICAgICAgICAgICAgICAgICAkQ09MT1ItQUxFUlQgIWRlZmF1bHQ7XG4kd2l6YXJkLWl0ZW0tdGV4dC1jb2xvci1lcnJvci1ob3ZlcjogICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR3aXphcmQtaXRlbS10ZXh0LWFsaWdubWVudDogICAgICAgICAgICAgICAgICAgICBsZWZ0ICFkZWZhdWx0O1xuJHdpemFyZC1pdGVtLWFsaWdubWVudC1ob3Jpem9udGFsOiAgICAgICAgICAgICAgIGNlbnRlciAhZGVmYXVsdDtcbiR3aXphcmQtaXRlbS1hbGlnbm1lbnQtdmVydGljYWw6ICAgICAgICAgICAgICAgICBjZW50ZXIgIWRlZmF1bHQ7XG5cbiR3aXphcmQtaW5kaWNhdG9yczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuJHdpemFyZC1pbmRpY2F0b3ItaXMtaWNvbjogICAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4vLyBDYW4gYmUgYHJvd2Agb3IgYGNvbHVtbmAuXG4kd2l6YXJkLWluZGljYXRvci1vcmllbnRhdGlvbjogICAgICAgICAgICAgICAgICAgcm93ICFkZWZhdWx0O1xuJHdpemFyZC1pbmRpY2F0b3Itc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiR3aXphcmQtaW5kaWNhdG9yLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHdpemFyZC1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgIDFweCAhZGVmYXVsdDtcbiR3aXphcmQtaW5kaWNhdG9yLWJvcmRlci1zdHlsZTogICAgICAgICAgICAgICAgICBzb2xpZCAhZGVmYXVsdDtcbiR3aXphcmQtaW5kaWNhdG9yLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHdpemFyZC1pbmRpY2F0b3ItYm9yZGVyLWNvbG9yLWRpc2FibGVkOiAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kd2l6YXJkLWluZGljYXRvci1ib3JkZXItY29sb3ItZG9uZTogICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR3aXphcmQtaW5kaWNhdG9yLWJvcmRlci1jb2xvci1kb25lLWhvdmVyOiAgICAgICBudWxsICFkZWZhdWx0O1xuJHdpemFyZC1pbmRpY2F0b3ItYm9yZGVyLWNvbG9yLWFjdGl2ZTogICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kd2l6YXJkLWluZGljYXRvci1ib3JkZXItY29sb3ItYWN0aXZlLWhvdmVyOiAgICAgbnVsbCAhZGVmYXVsdDtcbiR3aXphcmQtaW5kaWNhdG9yLWJvcmRlci1jb2xvci1lcnJvcjogICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHdpemFyZC1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgIDUwJSAhZGVmYXVsdDtcbiR3aXphcmQtaW5kaWNhdG9yLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHdpemFyZC1pbmRpY2F0b3ItYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDogICAgIG51bGwgIWRlZmF1bHQ7XG4kd2l6YXJkLWluZGljYXRvci1iYWNrZ3JvdW5kLWNvbG9yLWRvbmU6ICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR3aXphcmQtaW5kaWNhdG9yLWJhY2tncm91bmQtY29sb3ItZG9uZS1ob3ZlcjogICBudWxsICFkZWZhdWx0O1xuJHdpemFyZC1pbmRpY2F0b3ItYmFja2dyb3VuZC1jb2xvci1hY3RpdmU6ICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kd2l6YXJkLWluZGljYXRvci1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZS1ob3ZlcjogbnVsbCAhZGVmYXVsdDtcbiR3aXphcmQtaW5kaWNhdG9yLWJhY2tncm91bmQtY29sb3ItZXJyb3I6ICAgICAgICBudWxsICFkZWZhdWx0O1xuJHdpemFyZC1pbmRpY2F0b3ItZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICRGUzAgIWRlZmF1bHQ7XG4kd2l6YXJkLWluZGljYXRvci1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgbm9ybWFsICFkZWZhdWx0O1xuJHdpemFyZC1pbmRpY2F0b3ItdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kd2l6YXJkLWluZGljYXRvci10ZXh0LWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgJHdpemFyZC1pdGVtLXRleHQtY29sb3ItZGlzYWJsZWQgIWRlZmF1bHQ7XG4kd2l6YXJkLWluZGljYXRvci10ZXh0LWNvbG9yLWRvbmU6ICAgICAgICAgICAgICAgJHdpemFyZC1pdGVtLXRleHQtY29sb3ItZG9uZSAhZGVmYXVsdDtcbiR3aXphcmQtaW5kaWNhdG9yLXRleHQtY29sb3ItZG9uZS1ob3ZlcjogICAgICAgICAkd2l6YXJkLWl0ZW0tdGV4dC1jb2xvci1kb25lLWhvdmVyICFkZWZhdWx0O1xuJHdpemFyZC1pbmRpY2F0b3ItdGV4dC1jb2xvci1hY3RpdmU6ICAgICAgICAgICAgICR3aXphcmQtaXRlbS10ZXh0LWNvbG9yLWFjdGl2ZSAhZGVmYXVsdDtcbiR3aXphcmQtaW5kaWNhdG9yLXRleHQtY29sb3ItYWN0aXZlLWhvdmVyOiAgICAgICAkd2l6YXJkLWl0ZW0tdGV4dC1jb2xvci1hY3RpdmUtaG92ZXIgIWRlZmF1bHQ7XG4kd2l6YXJkLWluZGljYXRvci10ZXh0LWNvbG9yLWVycm9yOiAgICAgICAgICAgICAgJHdpemFyZC1pdGVtLXRleHQtY29sb3ItZXJyb3IgIWRlZmF1bHQ7XG4kd2l6YXJkLWluZGljYXRvci1pY29uOiAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtZm9yd2FyZCkgIWRlZmF1bHQ7XG4kd2l6YXJkLWluZGljYXRvci1pY29uLWhhcy12YXJpYW50OiAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiR3aXphcmQtaW5kaWNhdG9yLWljb24tZGlzYWJsZWQ6ICAgICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1wYXVzZSkgIWRlZmF1bHQ7XG4kd2l6YXJkLWluZGljYXRvci1pY29uLWRvbmU6ICAgICAgICAgICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtc3VjY2VzcykgIWRlZmF1bHQ7XG4kd2l6YXJkLWluZGljYXRvci1pY29uLWFjdGl2ZTogICAgICAgICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtaW5mbykgIWRlZmF1bHQ7XG4kd2l6YXJkLWluZGljYXRvci1pY29uLWVycm9yOiAgICAgICAgICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtZXJyb3IpICFkZWZhdWx0O1xuJHdpemFyZC1pbmRpY2F0b3ItaWNvbi1zaXplOiAgICAgICAgICAgICAgICAgICAgIHNtYWxsICFkZWZhdWx0O1xuXG4vLyBTZXQgZGVmYXVsdCBpbmRpY2F0b3Igc2l6ZSBzYW1lIGFzIHJvdW5kIGljb24gdmFyaWFudC5cbiR3aXphcmQtaW5kaWNhdG9yLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAtZ2V0KCRJQ09OLVJPVU5ELUZVTEwtU0laRVMsICR3aXphcmQtaW5kaWNhdG9yLWljb24tc2l6ZSkgIWRlZmF1bHQ7XG5cbiR3aXphcmQtc3Ryb2tlLWFycm93czogICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuJHdpemFyZC1zdHJva2UtYXJyb3ctc3Ryb2tlLXdpZHRoOiAgICAgICAgICAgICAgIDFweCAhZGVmYXVsdDtcbiR3aXphcmQtc3Ryb2tlLWFycm93LWhlaWdodDogICAgICAgICAgICAgICAgICAgICAyNHB4ICFkZWZhdWx0O1xuJHdpemFyZC1zdHJva2UtYXJyb3ctY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFICFkZWZhdWx0O1xuJHdpemFyZC1zdHJva2UtYXJyb3ctYW5nbGU6ICAgICAgICAgICAgICAgICAgICAgIDI1ZGVnICFkZWZhdWx0O1xuXG4kd2l6YXJkLWJsb2NrLWFycm93czogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiR3aXphcmQtYmxvY2stYXJyb3ctYW5nbGU6ICAgICAgICAgICAgICAgICAgICAgICAxNWRlZyAhZGVmYXVsdDtcblxuJHdpemFyZC10cmlnZ2VyLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICR3aXphcmQtaGVpZ2h0ICFkZWZhdWx0O1xuJHdpemFyZC10cmlnZ2VyLXJlbW92ZS1mb2N1czogICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kd2l6YXJkLXRyaWdnZXItcmV2ZXJ0OiAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7IC8vIE9wdGlvbmFsbHkgcmV2ZXJ0IG9yZGVyIG9mIHRyaWdnZXIgaXRlbXMuXG4kd2l6YXJkLXRyaWdnZXItdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgJHdpemFyZC1pdGVtLXRleHQtY29sb3IgIWRlZmF1bHQ7XG4kd2l6YXJkLXRyaWdnZXItdGV4dC1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICAgJHdpemFyZC1pdGVtLXRleHQtY29sb3ItYWN0aXZlLWhvdmVyICFkZWZhdWx0O1xuJHdpemFyZC10cmlnZ2VyLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgICRDT0xPUi1QQUxFICFkZWZhdWx0O1xuJHdpemFyZC10cmlnZ2VyLXNwYWNpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiR3aXphcmQtdHJpZ2dlci1pY29uLWV4cGFuZDogICAgICAgICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1leHBhbmQpICFkZWZhdWx0O1xuJHdpemFyZC10cmlnZ2VyLWljb24tY29sbGFwc2U6ICAgICAgICAgICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLWNvbGxhcHNlKSAhZGVmYXVsdDtcbiR3aXphcmQtdHJpZ2dlci1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAkd2l6YXJkLWluZGljYXRvci1pY29uLXNpemUgIWRlZmF1bHQ7XG4kd2l6YXJkLXRyaWdnZXItaWNvbi1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgJHdpemFyZC1pbmRpY2F0b3Itc3BhY2luZyAhZGVmYXVsdDtcbiR3aXphcmQtdHJpZ2dlci1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICBpbmhlcml0ICFkZWZhdWx0O1xuJHdpemFyZC10cmlnZ2VyLWljb24tYmFja2dyb3VuZDogICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJHdpemFyZC10cmlnZ2VyLWljb24tYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJHdpemFyZC10cmlnZ2VyLWNvdW50ZXItc3BhY2luZzogICAgICAgICAgICAgICAgICR3aXphcmQtaW5kaWNhdG9yLXNwYWNpbmcgIWRlZmF1bHQ7XG4kd2l6YXJkLXRyaWdnZXItY2xvc2VkLXN0YXRlLXNlbGVjdG9yOiAgICAgICAgICAgXCJbYXJpYS1leHBhbmRlZD0nZmFsc2UnXVwiICFkZWZhdWx0O1xuXG4kd2l6YXJkLXRoZW1lczogKFxuICAgIFwiYWx0ZXJuYXRpdmVcIjogKFxuICAgICAgICBcIndpemFyZC1iYWNrZ3JvdW5kLWNvbG9yXCI6IG51bGxcbiAgICApXG4pICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBNYWtlIHN1cmUgYWxsIGl0ZW1zIGFyZSB0aGUgc2FtZSB3aWR0aC5cbiAqIFsyXSBJZiB0aGUgaW5kaWNhdG9yIGlzIHBvc2l0aW9uZWQgYWJvdmUgdGhlIGl0ZW0gdGV4dCwgbWFrZSBzdXJlIHRoYXQgdGhlXG4gKiAgICAgaXRlbXMgYXJlIGFsaWduZWQgdG8gZWFjaCBvdGhlciBhdCB0aGUgdG9wLlxuICogWzNdIEZvcmNlIGNvbGxhcHNpbmcgb2YgaXRlbXMgb24gc21hbGwgc2NyZWVuIGFuZCBhbGlnbiBpdCB0byB0aGUgbGVmdC5cbiAqIFs0XSBDcmVhdGUgbGl0dGxlIHN0cm9rZSBhcnJvdyBiZXR3ZWVuIGl0ZW1zLiBUaGUgYXJyb3dzIGFyZSBhbHdheXMgcGxhY2VkXG4gKiAgICAgaW4gZnJvbnQgb2YgdGhlIGl0ZW1zLlxuICogWzVdIFVwcGVyIGhhbGYgb2YgdGhlIHN0cm9rZSBhcnJvdy5cbiAqIFs2XSBCb3R0b20gaGFsZiBvZiB0aGUgc3Ryb2tlIGFycm93LlxuICogWzddIEFkZCBibG9jayBhcnJvdyB0byBpdGVtcyB3aXRoIGNlcnRhaW4gc3RhdGVzIChkaXNhYmxlZCwgYWN0aXZlKSBieSB1c2luZ1xuICogICAgIHR3byBza2V3ZWQgcHNldWRvIGVsZW1lbnRzIGFzIGJhY2tncm91bmQuXG4gKiBbOF0gRml4IGJsb2NrIGFycm93IGl0ZW1zIG5vdCBiZWluZyB3aWRlIGVub3VnaCBmb3IgZmlyc3QgYW5kIGxhc3QgaXRlbSBhbmRcbiAqICAgICBjdXQgdGhlbSBvZmYgd2hlbiB0aGV5IG92ZXJmbG93IHRoZSBjb250YWluZXIuXG4gKiBbOV0gQ2hhbmdlIGJhY2tncm91bmQgYW5kIHRleHQgY29sb3JzIGZvciB0aGUgc3BlY2lmaWMgc3RhdGVzLlxuICogWzEwXSBDaGFuZ2UgbGluayB0ZXh0IGNvbG9ycyBmb3IgdGhlIHNwZWNpZmljIHN0YXRlcyB1cG9uIGhvdmVyL2ZvY3VzLlxuICogWzExXSBUaGUgZGVmYXVsdCBpdGVtcyAoaS5lLiB0aGUgZnV0dXJlIGl0ZW1zKSBhcmUgbm90IGNsaWNrYWJsZS5cbiAqIFsxMl0gVGhlIGRvbmUgYW5kIGFjdGl2ZSBpdGVtcyBoYXZlIHRvIGJlIG1hZGUgY2xpY2thYmxlIGFnYWluIChzZWUgWzExXSkuXG4gKiBbMTNdIE9uIHNtYWxsIHNjcmVlbiwgdGhlIGluZGljYXRvciBpcyBhbHdheXMgYWxpZ25lZCBpbiByb3cgd2l0aCB0aGUgdGV4dFxuICogICAgICBhbmQgbGVmdCBhbGlnbmVkLlxuICogWzE0XSBQb3NpdGlvbiBjb250ZW50IGFib3ZlIGFycm93cyBhbmQgb3ZlcmxhcCBhcnJvd3MgZm9yIHN0YXRlcyB3aXRoXG4gKiAgICAgIGJhY2tncm91bmQgY29sb3IuXG4gKiBbMTVdIEFkZCByZWxhdGl2ZSBwb3NpdGlvbmluZyB0byBoYXZlIGEgcmVmZXJlbmNlIGZvciBwc2V1ZG8gZWxlbWVudHMgdGhhdFxuICogICAgICBuZWVkIGUuZy4gYWJzb2x1dGUgcG9zaXRpb25pbmcgKHVzZWQgZm9yIGFycm93cyBhbmQgc3VjaCkuXG4gKiBbMTZdIEFkZCBiYWNrZ3JvdW5kIGNvbG9ycyB0byBhbGwgc3RhdGVzIGZvciBzbWFsbCBzY3JlZW4gbGlzdC5cbiAqIFsxN10gU3RyZXRjaCB3aXphcmQgbGluayB0byBmdWxsIGhlaWdodCB0byBjZW50ZXIgaXRzIGNvbnRlbnQgdmVydGljYWxseS5cbiAqIFsxOF0gVXNlIGljb24gYXMgbGluayBpbmRpY2F0b3IgaWYgdGhlIGluZGljYXRvciBzaG91bGQgbm90IGJlIG51bWJlcmVkLlxuICogWzE5XSBBZGQgcmVndWxhciBmb250IHN0eWxlcyBpZiBsaW5rIGluZGljYXRvciBzaG91bGQgbm90IGJlIG51bWJlcmVkIGluc3RlYWRcbiAqICAgICAgb2YgYmVpbmcgYW4gaWNvbi5cbiAqIFsyMF0gQ2hhbmdlIGluZGljYXRvciBzdHlsaW5nIGZvciB0aGUgc3BlY2lmaWMgc3RhdGVzLlxuICogWzIxXSBDaGFuZ2UgaW5kaWNhdG9yIHN0eWxpbmcgZm9yIHRoZSBzcGVjaWZpYyBzdGF0ZXMgdXBvbiBob3Zlci9mb2N1cy5cbiAqIFsyMl0gT3B0aW9uYWxseSByZXZlcnQgb3JkZXIgb2YgdHJpZ2dlciBpY29uLCBjb3VudGVyIGFuZCB0ZXh0LlxuICogWzIzXSBQcmV2ZW50IGludGVyYWN0aW9uIG9mIHRoZSBlbGVtZW50KHMpLCB3aGVuIG1vZGlmaWVyIGlzIGdpdmVuXG4gKiAgICAgIGV4Y2VwdCBvbiB0aGUgLmMtd2l6YXJkX190cmlnZ2VyIG9uIG1vYmlsZS5cbiAqIFsyNF0gU2V0IGhvcml6b250YWwgbGluayBjb250ZW50IGFsaWdubWVudC5cbiAqIFsyNV0gU2V0IHZlcnRpY2FsIGxpbmsgY29udGVudCBhbGlnbm1lbnQsIGJ1dCBhbHdheXMgcmVzZXQgdG8gYGNlbnRlcmAgZm9yXG4gKiAgICAgIGNvbGxhcHNlZCBsYXlvdXQgaW4gc21hbGwgdmlld3BvcnRzLlxuICogWzI2XSBJZiBgJHdpemFyZC1wYWdlLXdyYXA6IHRydWVgIGxpbWl0IHRoZSB3aXphcmQgd2lkdGggdG8gdGhlIHBhZ2Ugd3JhcFxuICogICAgICB3aWR0aC5cbiAqIFsyN10gUmVzaXplIHRoZSB3aXphcmQgdG8gdGhlIGZ1bGwgcGFnZSB3cmFwIHdpZHRoLlxuICogWzI4XSBJZiBhbiBpY29uIGlzIHVzZWQgYXMgaW5kaWNhdG9yIGJ1dCBpdCBpcyBzZXQgdG8gYG5vbmVgLCBzdGlsbCB1c2UgYW4gZW1wdHlcbiAqICAgICAgYGNvbnRlbnRgIGF0dHJpYnV0ZSB0byBzaG93IHRoZSBwc2V1ZG8gZWxlbWVudCBhcyBhbiBlbXB0eSBpbmRpY2F0b3IuXG4gKi9cblxuLy8vIFdpemFyZCBDb2xsYXBzZSBNaXhpblxuLy8vXG4vLy8gQ29udGVudCBtaXhpbiB0byBhbHRlciBzdHlsZXMgZm9yIGNvbGxhcHNlZCBzdGF0ZVxuLy8vIGJhc2VkIG9uIG1lZGlhLXF1ZXJpZXMgYW5kIGhvb2tzIHZpYSBkYXRhLWF0dHJpYnV0cy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHJvb3QgW2ZhbHNlXSBUYXJnZXQgZWl0aGVyIHRoZSByb290IGVsZW1lbnQgb3IgZWxlbWVudHMgaW5zaWRlLlxuLy8vIEByZXF1aXJlcyB7bWl4aW59IG1lZGlhLXF1ZXJ5XG4vLy8gQHJlcXVpcmVzIHt2YXJpYWJsZX0gJHdpemFyZC1jb2xsYXBzZS1icmVha3BvaW50c1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIHdpemFyZC1jb2xsYXBzZWQoJHJvb3Q6IGZhbHNlKSB7XG4gICAgQGVhY2ggJGJyZWFrcG9pbnQgaW4gJHdpemFyZC1jb2xsYXBzZS1icmVha3BvaW50cyB7XG4gICAgICAgIEBpZiAoJHJvb3QpIHtcbiAgICAgICAgICAgIFtkYXRhLXdpemFyZC1jb2xsYXBzZT1cIiN7JGJyZWFrcG9pbnR9XCJdIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgW2RhdGEtd2l6YXJkLWNvbGxhcHNlPVwiI3skYnJlYWtwb2ludH1cIl0gJiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uYy13aXphcmQge1xuICAgIG1hcmdpbi10b3A6ICR3aXphcmQtc3BhY2luZy10b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogJHdpemFyZC1zcGFjaW5nLWJvdHRvbTtcblxuICAgIEBpZiAoJHdpemFyZC1iYWNrZ3JvdW5kLWNvbG9yKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aXphcmQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG5cbn1cblxuICAgIC5jLXdpemFyZF9fbGlzdCB7XG4gICAgICAgIEBpbmNsdWRlIGxpc3QtYmFyZSgpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIEBpZiAoJHdpemFyZC1pbmRpY2F0b3Itb3JpZW50YXRpb24gPT0gY29sdW1uKSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgLyogWzJdICovXG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICgkd2l6YXJkLXBhZ2Utd3JhcCkgeyAvKiBbMjZdICovXG4gICAgICAgICAgICBAaW5jbHVkZSBwYWdlLXdyYXAoKTsgLyogWzI2XSAqL1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7IC8qIFsyN10gKi9cbiAgICAgICAgfVxuICAgICAgICBAaWYgKCR3aXphcmQtYmxvY2stYXJyb3dzKSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyAvKiBbOF0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICR3aXphcmQtdGhlbWVzKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXJ5LWdldChcIndpemFyZC1iYWNrZ3JvdW5kLWNvbG9yXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgd2l6YXJkLWNvbGxhcHNlZCgpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IC8qIFszXSAqL1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IC8qIFszXSAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgd2l6YXJkLWNvbGxhcHNlZCgkcm9vdDogdHJ1ZSkge1xuICAgICAgICAmLmpzLWlzLXJlYWR5IHtcblxuICAgICAgICAgICAgLmMtd2l6YXJkX19saXN0LmlzLWNsb3NlZCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jLXdpemFyZF9faXRlbSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogWzE1XSAqL1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICBmbGV4LWJhc2lzOiAwOyAvKiBbMV0gKi9cbiAgICAgICAgcGFkZGluZy10b3A6ICR3aXphcmQtaXRlbS1wYWRkaW5nLXZlcnRpY2FsO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkd2l6YXJkLWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHdpemFyZC1pdGVtLXBhZGRpbmctdmVydGljYWw7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJHdpemFyZC1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDtcblxuICAgICAgICBAaWYgKCR3aXphcmQtaGVpZ2h0ICE9IGF1dG8pIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICR3aXphcmQtaGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgd2l6YXJkLWNvbGxhcHNlZCgpIHtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJHdpemFyZC1wYWRkaW5nLXZlcnRpY2FsLWF0LWJyZWFrcG9pbnQ7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICR3aXphcmQtcGFkZGluZy12ZXJ0aWNhbC1hdC1icmVha3BvaW50O1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaWYoJHdpemFyZC1pdGVtLWJhY2tncm91bmQtY29sb3IsICR3aXphcmQtaXRlbS1iYWNrZ3JvdW5kLWNvbG9yLCBudWxsKTsgLyogWzE2XSAqL1xuXG4gICAgICAgICAgICAmLmlzLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpZigkd2l6YXJkLWl0ZW0tYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZCwgJHdpemFyZC1pdGVtLWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQsIG51bGwpOyAvKiBbMTZdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuaXMtZG9uZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaWYoJHdpemFyZC1pdGVtLWJhY2tncm91bmQtY29sb3ItZG9uZSwgJHdpemFyZC1pdGVtLWJhY2tncm91bmQtY29sb3ItZG9uZSwgbnVsbCk7IC8qIFsxNl0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGlmKCR3aXphcmQtaXRlbS1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZSwgJHdpemFyZC1pdGVtLWJhY2tncm91bmQtY29sb3ItYWN0aXZlLCBudWxsKTsgLyogWzE2XSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWRkIFN0cm9rZSBhcnJvd3NcbiAgICAgICAgQGlmICgkd2l6YXJkLXN0cm9rZS1hcnJvd3MpIHtcblxuICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG5cbiAgICAgICAgICAgICAgICAvKiBbNF0gKi9cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7IC8qIFsxNF0gKi9cbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJHdpemFyZC1zdHJva2UtYXJyb3ctc3Ryb2tlLXdpZHRoO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICgkd2l6YXJkLXN0cm9rZS1hcnJvdy1oZWlnaHQgKiAwLjUpO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2l6YXJkLXN0cm9rZS1hcnJvdy1jb2xvcjtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB3aXphcmQtY29sbGFwc2VkKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLyogWzVdICovXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBza2V3KCR3aXphcmQtc3Ryb2tlLWFycm93LWFuZ2xlLCAwZGVnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvKiBbNl0gKi9cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNrZXcoLSR3aXphcmQtc3Ryb2tlLWFycm93LWFuZ2xlLCAwZGVnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWRkIEJsb2NrIGFycm93c1xuICAgICAgICBAaWYgKCR3aXphcmQtYmxvY2stYXJyb3dzKSB7XG5cbiAgICAgICAgICAgICYuaXMtaGlnaGxpZ2h0LFxuICAgICAgICAgICAgJi5pcy1hY3RpdmUge1xuXG4gICAgICAgICAgICAgICAgLyogWzddICovXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAyOyAvKiBbMTRdICovXG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogNTAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpZigkd2l6YXJkLWl0ZW0tYmFja2dyb3VuZC1jb2xvciwgJHdpemFyZC1pdGVtLWJhY2tncm91bmQtY29sb3IsIG51bGwpO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHdpemFyZC1jb2xsYXBzZWQoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2tldygkd2l6YXJkLWJsb2NrLWFycm93LWFuZ2xlLCAwZGVnKTsgLyogWzddICovXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBza2V3KC0kd2l6YXJkLWJsb2NrLWFycm93LWFuZ2xlLCAwZGVnKTsgLyogWzddICovXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuaXMtYWN0aXZlIHtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGlmKCR3aXphcmQtaXRlbS1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZSwgJHdpemFyZC1pdGVtLWJhY2tncm91bmQtY29sb3ItYWN0aXZlLCBudWxsKTsgLyogWzldICovXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuXG4gICAgICAgICAgICAgICAgJi5pcy1hY3RpdmUge1xuXG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEyNSU7IC8qIFs4XSAqL1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcblxuICAgICAgICAgICAgICAgICYuaXMtYWN0aXZlIHtcblxuICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMjUlOyAvKiBbOF0gKi9cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtd2l6YXJkX19saW5rIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIFsxMV0gKi9cbiAgICAgICAgei1pbmRleDogMzsgLyogWzE0XSAqL1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHdpemFyZC1pbmRpY2F0b3Itb3JpZW50YXRpb247XG4gICAgICAgIGFsaWduLWl0ZW1zOiAkd2l6YXJkLWl0ZW0tYWxpZ25tZW50LXZlcnRpY2FsOyAvKiBbMjVdICovXG4gICAgICAgIGp1c3RpZnktY29udGVudDogJHdpemFyZC1pdGVtLWFsaWdubWVudC1ob3Jpem9udGFsOyAvKiBbMjRdICovXG4gICAgICAgIGhlaWdodDogMTAwJTsgLyogWzE3XSAqL1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246ICR3aXphcmQtaXRlbS10ZXh0LWFsaWdubWVudDtcbiAgICAgICAgY29sb3I6ICR3aXphcmQtaXRlbS10ZXh0LWNvbG9yO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7IC8qIFsxMV0gKi9cbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIFsxMV0gKi9cblxuICAgICAgICBAaWYgKCR3aXphcmQtaXRlbS1mb250LXdlaWdodCAhPSBub3JtYWwpIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkd2l6YXJkLWl0ZW0tZm9udC13ZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSB3aXphcmQtY29sbGFwc2VkKCkge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgLyogWzEzXSAqL1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogWzI1XSAqL1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyAvKiBbMTNdICovXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJHdpemFyZC1pdGVtLXBhZGRpbmctdmVydGljYWwtYXQtYnJlYWtwb2ludDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkd2l6YXJkLWl0ZW0tcGFkZGluZy12ZXJ0aWNhbC1hdC1icmVha3BvaW50O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXdpemFyZF9faXRlbS5pcy1kaXNhYmxlZCAmIHtcbiAgICAgICAgICAgIEBpZiAoJHdpemFyZC1pdGVtLXRleHQtY29sb3ItZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdpemFyZC1pdGVtLXRleHQtY29sb3ItZGlzYWJsZWQ7IC8qIFs5XSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmMtd2l6YXJkX19pdGVtLmlzLWRvbmUgJixcbiAgICAgICAgLmMtd2l6YXJkX19pdGVtLmlzLWFjdGl2ZSAmLFxuICAgICAgICAuYy13aXphcmRfX2l0ZW0uaXMtZXJyb3IgJiB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7IC8qIFsxMl0gKi9cbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyAvKiBbMTJdICovXG4gICAgICAgIH1cblxuICAgICAgICAuYy13aXphcmRfX2l0ZW0uaGFzLW5vLWludGVyYWN0aW9uICYge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIFsyM10gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXdpemFyZF9faXRlbS5pcy1kb25lICYge1xuICAgICAgICAgICAgQGlmICgkd2l6YXJkLWl0ZW0tdGV4dC1jb2xvci1kb25lKSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aXphcmQtaXRlbS10ZXh0LWNvbG9yLWRvbmU7IC8qIFs5XSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICgkd2l6YXJkLWl0ZW0tdGV4dC1jb2xvci1kb25lLWhvdmVyKSB7XG4gICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aXphcmQtaXRlbS10ZXh0LWNvbG9yLWRvbmUtaG92ZXI7IC8qIFsxMF0gKi9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKCR3aXphcmQtaW5kaWNhdG9ycykge1xuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbiAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoJHdpemFyZC1pbmRpY2F0b3ItdGV4dC1jb2xvci1kb25lLWhvdmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aXphcmQtaW5kaWNhdG9yLXRleHQtY29sb3ItZG9uZS1ob3ZlcjsgLyogWzIxXSAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICgkd2l6YXJkLWluZGljYXRvci1ib3JkZXItY29sb3ItZG9uZS1ob3Zlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJHdpemFyZC1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoICR3aXphcmQtaW5kaWNhdG9yLWJvcmRlci1zdHlsZSAkd2l6YXJkLWluZGljYXRvci1ib3JkZXItY29sb3ItZG9uZS1ob3ZlcjsgLyogWzIxXSAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICgkd2l6YXJkLWluZGljYXRvci1iYWNrZ3JvdW5kLWNvbG9yLWRvbmUtaG92ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2l6YXJkLWluZGljYXRvci1iYWNrZ3JvdW5kLWNvbG9yLWRvbmUtaG92ZXI7IC8qIFsyMV0gKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmMtd2l6YXJkX19pdGVtLmlzLWFjdGl2ZSAmIHtcbiAgICAgICAgICAgIEBpZiAoJHdpemFyZC1pdGVtLXRleHQtY29sb3ItYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aXphcmQtaXRlbS10ZXh0LWNvbG9yLWFjdGl2ZTsgLyogWzldICovXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKCR3aXphcmQtaXRlbS10ZXh0LWNvbG9yLWFjdGl2ZS1ob3Zlcikge1xuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2l6YXJkLWl0ZW0tdGV4dC1jb2xvci1hY3RpdmUtaG92ZXI7IC8qIFsxMF0gKi9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKCR3aXphcmQtaW5kaWNhdG9ycykge1xuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbiAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoJHdpemFyZC1pbmRpY2F0b3ItdGV4dC1jb2xvci1hY3RpdmUtaG92ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdpemFyZC1pbmRpY2F0b3ItdGV4dC1jb2xvci1hY3RpdmUtaG92ZXI7IC8qIFsyMV0gKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoJHdpemFyZC1pbmRpY2F0b3ItYm9yZGVyLWNvbG9yLWFjdGl2ZS1ob3Zlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJHdpemFyZC1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoICR3aXphcmQtaW5kaWNhdG9yLWJvcmRlci1zdHlsZSAkd2l6YXJkLWluZGljYXRvci1ib3JkZXItY29sb3ItYWN0aXZlLWhvdmVyOyAvKiBbMjFdICovXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCR3aXphcmQtaW5kaWNhdG9yLWJhY2tncm91bmQtY29sb3ItYWN0aXZlLWhvdmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdpemFyZC1pbmRpY2F0b3ItYmFja2dyb3VuZC1jb2xvci1hY3RpdmUtaG92ZXI7IC8qIFsyMV0gKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmMtd2l6YXJkX19pdGVtLmlzLWVycm9yICYge1xuICAgICAgICAgICAgQGlmICgkd2l6YXJkLWl0ZW0tdGV4dC1jb2xvci1lcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2l6YXJkLWl0ZW0tdGV4dC1jb2xvci1lcnJvcjsgLyogWzldICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHdpemFyZC1pdGVtLXRleHQtY29sb3ItZXJyb3ItaG92ZXIpIHtcbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdpemFyZC1pdGVtLXRleHQtY29sb3ItZXJyb3ItaG92ZXI7IC8qIFsxMF0gKi9cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFkZCBJbmRpY2F0b3IgaWNvbiBpbiBmcm9udCBvZiBsaW5rXG4gICAgICAgIEBpZiAoJHdpemFyZC1pbmRpY2F0b3JzKSB7XG5cbiAgICAgICAgICAgIEBpZiAoJHdpemFyZC1pbmRpY2F0b3ItaWNvbi1oYXMtdmFyaWFudCkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGljb24tdmFyaWFudCggLyogWzE4XSAqL1xuICAgICAgICAgICAgICAgICAgICAkdmFyaWFudDogICAgICAgICAgXCJyb3VuZFwiLFxuICAgICAgICAgICAgICAgICAgICAkc2l6ZTogICAgICAgICAgICAgJHdpemFyZC1pbmRpY2F0b3ItaWNvbi1zaXplLFxuICAgICAgICAgICAgICAgICAgICAkYmFja2dyb3VuZC1jb2xvcjogJHdpemFyZC1pbmRpY2F0b3ItYmFja2dyb3VuZC1jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJGJvcmRlci1jb2xvcjogICAgICR3aXphcmQtaW5kaWNhdG9yLWJvcmRlci1jb2xvclxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICR3aXphcmQtaW5kaWNhdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCk7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6ICR3aXphcmQtaW5kaWNhdG9yLXNpemU7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICR3aXphcmQtaW5kaWNhdG9yLXNpemU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkd2l6YXJkLWluZGljYXRvci1zaXplO1xuXG4gICAgICAgICAgICAgICAgQGlmICgkd2l6YXJkLWluZGljYXRvci1vcmllbnRhdGlvbiA9PSBjb2x1bW4pIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHdpemFyZC1pbmRpY2F0b3Itc3BhY2luZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmICgkd2l6YXJkLWluZGljYXRvci1vcmllbnRhdGlvbiA9PSByb3cpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkd2l6YXJkLWluZGljYXRvci1zcGFjaW5nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKCR3aXphcmQtaW5kaWNhdG9yLXRleHQtY29sb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aXphcmQtaW5kaWNhdG9yLXRleHQtY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoJHdpemFyZC1pbmRpY2F0b3ItaXMtaWNvbikge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBpY29uLWZvbnQoKTsgLyogWzE4XSAqL1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCR3aXphcmQtaW5kaWNhdG9yLWljb24gIT0gbm9uZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJHdpemFyZC1pbmRpY2F0b3ItaWNvbjsgLyogWzE4XSAqL1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7IC8qIFsyOF0gKi9cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKG5vdCAkd2l6YXJkLWluZGljYXRvci1pcy1pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogJHdpemFyZC1pbmRpY2F0b3ItZm9udC1zaXplLFxuICAgICAgICAgICAgICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAxXG4gICAgICAgICAgICAgICAgICAgICk7IC8qIFsxOV0gKi9cbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICR3aXphcmQtaW5kaWNhdG9yLXBhZGRpbmc7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJHdpemFyZC1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoICR3aXphcmQtaW5kaWNhdG9yLWJvcmRlci1zdHlsZSAkd2l6YXJkLWluZGljYXRvci1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICR3aXphcmQtaW5kaWNhdG9yLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aXphcmQtaW5kaWNhdG9yLWJhY2tncm91bmQtY29sb3I7XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICgkd2l6YXJkLWluZGljYXRvci1mb250LXdlaWdodCAhPSBub3JtYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkd2l6YXJkLWluZGljYXRvci1mb250LXdlaWdodDsgLyogWzE5XSAqL1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgd2l6YXJkLWNvbGxhcHNlZCgpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkd2l6YXJkLWluZGljYXRvci1zcGFjaW5nO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jLXdpemFyZF9faXRlbS5pcy1kaXNhYmxlZCAmIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkd2l6YXJkLWluZGljYXRvci1pcy1pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCR3aXphcmQtaW5kaWNhdG9yLWljb24tZGlzYWJsZWQgIT0gbm9uZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICR3aXphcmQtaW5kaWNhdG9yLWljb24tZGlzYWJsZWQ7IC8qIFsyMF0gKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKCR3aXphcmQtaW5kaWNhdG9yLWJvcmRlci1jb2xvci1kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkd2l6YXJkLWluZGljYXRvci1ib3JkZXItY29sb3ItZGlzYWJsZWQ7IC8qIFsyMF0gKi9cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKCR3aXphcmQtaW5kaWNhdG9yLWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aXphcmQtaW5kaWNhdG9yLWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQ7IC8qIFsyMF0gKi9cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKCR3aXphcmQtaW5kaWNhdG9yLXRleHQtY29sb3ItZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2l6YXJkLWluZGljYXRvci10ZXh0LWNvbG9yLWRpc2FibGVkOyAvKiBbMjBdICovXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuYy13aXphcmRfX2l0ZW0uaXMtZG9uZSAmIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkd2l6YXJkLWluZGljYXRvci1pcy1pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCR3aXphcmQtaW5kaWNhdG9yLWljb24tZG9uZSAhPSBub25lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJHdpemFyZC1pbmRpY2F0b3ItaWNvbi1kb25lOyAvKiBbMjBdICovXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmICgkd2l6YXJkLWluZGljYXRvci1ib3JkZXItY29sb3ItZG9uZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkd2l6YXJkLWluZGljYXRvci1ib3JkZXItY29sb3ItZG9uZTsgLyogWzIwXSAqL1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJHdpemFyZC1pbmRpY2F0b3ItYmFja2dyb3VuZC1jb2xvci1kb25lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2l6YXJkLWluZGljYXRvci1iYWNrZ3JvdW5kLWNvbG9yLWRvbmU7IC8qIFsyMF0gKi9cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKCR3aXphcmQtaW5kaWNhdG9yLXRleHQtY29sb3ItZG9uZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aXphcmQtaW5kaWNhdG9yLXRleHQtY29sb3ItZG9uZTsgLyogWzIwXSAqL1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmMtd2l6YXJkX19pdGVtLmlzLWFjdGl2ZSAmIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkd2l6YXJkLWluZGljYXRvci1pcy1pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCR3aXphcmQtaW5kaWNhdG9yLWljb24tYWN0aXZlICE9IG5vbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAkd2l6YXJkLWluZGljYXRvci1pY29uLWFjdGl2ZTsgLyogWzIwXSAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJHdpemFyZC1pbmRpY2F0b3ItYm9yZGVyLWNvbG9yLWFjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkd2l6YXJkLWluZGljYXRvci1ib3JkZXItY29sb3ItYWN0aXZlOyAvKiBbMjBdICovXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmICgkd2l6YXJkLWluZGljYXRvci1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdpemFyZC1pbmRpY2F0b3ItYmFja2dyb3VuZC1jb2xvci1hY3RpdmU7IC8qIFsyMF0gKi9cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKCR3aXphcmQtaW5kaWNhdG9yLXRleHQtY29sb3ItYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdpemFyZC1pbmRpY2F0b3ItdGV4dC1jb2xvci1hY3RpdmU7IC8qIFsyMF0gKi9cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jLXdpemFyZF9faXRlbS5pcy1lcnJvciAmIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkd2l6YXJkLWluZGljYXRvci1pcy1pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCR3aXphcmQtaW5kaWNhdG9yLWljb24tZXJyb3IgIT0gbm9uZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICR3aXphcmQtaW5kaWNhdG9yLWljb24tZXJyb3I7IC8qIFsyMF0gKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKCR3aXphcmQtaW5kaWNhdG9yLWJvcmRlci1jb2xvci1lcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkd2l6YXJkLWluZGljYXRvci1ib3JkZXItY29sb3ItZXJyb3I7IC8qIFsyMF0gKi9cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKCR3aXphcmQtaW5kaWNhdG9yLWJhY2tncm91bmQtY29sb3ItZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aXphcmQtaW5kaWNhdG9yLWJhY2tncm91bmQtY29sb3ItZXJyb3I7IC8qIFsyMF0gKi9cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKCR3aXphcmQtaW5kaWNhdG9yLXRleHQtY29sb3ItZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2l6YXJkLWluZGljYXRvci10ZXh0LWNvbG9yLWVycm9yOyAvKiBbMjBdICovXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy13aXphcmRfX2xpbmstdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICR3aXphcmQtaXRlbS1mb250LXNpemUsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6IDFcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAuYy13aXphcmRfX3RyaWdnZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIEBpbmNsdWRlIHdpemFyZC1jb2xsYXBzZWQoKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNldC1idXR0b24oXG4gICAgICAgICAgICAgICAgJHJlbW92ZS1mb2N1czogJHdpemFyZC10cmlnZ2VyLXJlbW92ZS1mb2N1cyxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIEBpZiAoJHdpemFyZC10cmlnZ2VyLXJldmVydCkge1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgLyogWzIyXSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICgkd2l6YXJkLXBhZ2Utd3JhcCkgeyAvKiBbMjZdICovXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcGFnZS13cmFwKCk7IC8qIFsyNl0gKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgQGlmICgkd2l6YXJkLXRyaWdnZXItaGVpZ2h0ICE9IGF1dG8pIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAkd2l6YXJkLXRyaWdnZXItaGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGFkZGluZy10b3A6ICR3aXphcmQtdHJpZ2dlci1zcGFjaW5nLXZlcnRpY2FsO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICR3aXphcmQtdHJpZ2dlci1zcGFjaW5nLXZlcnRpY2FsO1xuICAgICAgICAgICAgY29sb3I6ICR3aXphcmQtdHJpZ2dlci10ZXh0LWNvbG9yO1xuICAgICAgICAgICAgQGlmICgkd2l6YXJkLXRyaWdnZXItYmFja2dyb3VuZC1jb2xvcikge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aXphcmQtdHJpZ2dlci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aXphcmQtdHJpZ2dlci10ZXh0LWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy13aXphcmRfX3RyaWdnZXItaWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGljb24tdmFyaWFudChcbiAgICAgICAgICAgICR2YXJpYW50OiAgICAgICAgICBcInJvdW5kXCIsXG4gICAgICAgICAgICAkc2l6ZTogICAgICAgICAgICAgJHdpemFyZC10cmlnZ2VyLWljb24tc2l6ZSxcbiAgICAgICAgICAgICR0ZXh0LWNvbG9yOiAgICAgICAkd2l6YXJkLXRyaWdnZXItaWNvbi1jb2xvcixcbiAgICAgICAgICAgICRiYWNrZ3JvdW5kLWNvbG9yOiAkd2l6YXJkLXRyaWdnZXItaWNvbi1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgJGJvcmRlci1jb2xvcjogICAgICR3aXphcmQtdHJpZ2dlci1pY29uLWJvcmRlci1jb2xvclxuICAgICAgICApO1xuICAgICAgICBAaWYgKCR3aXphcmQtdHJpZ2dlci1yZXZlcnQpIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDsgLyogWzIyXSAqL1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICR3aXphcmQtdHJpZ2dlci1pY29uLXNwYWNpbmc7IC8qIFsyMl0gKi9cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICR3aXphcmQtdHJpZ2dlci1pY29uLXNwYWNpbmc7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCk7XG4gICAgICAgICAgICBjb250ZW50OiAkd2l6YXJkLXRyaWdnZXItaWNvbi1jb2xsYXBzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXdpemFyZF9fdHJpZ2dlciN7JHdpemFyZC10cmlnZ2VyLWNsb3NlZC1zdGF0ZS1zZWxlY3Rvcn0gJiB7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJHdpemFyZC10cmlnZ2VyLWljb24tZXhwYW5kO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXdpemFyZF9fdHJpZ2dlci10ZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAkd2l6YXJkLWl0ZW0tZm9udC1zaXplLFxuICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAxXG4gICAgICAgICk7XG4gICAgICAgIEBpZiAoJHdpemFyZC1pdGVtLWZvbnQtd2VpZ2h0ICE9IG5vcm1hbCkge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR3aXphcmQtaXRlbS1mb250LXdlaWdodDtcbiAgICAgICAgfVxuICAgICAgICBAaWYgKCR3aXphcmQtdHJpZ2dlci1yZXZlcnQpIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgLyogWzIyXSAqL1xuICAgICAgICB9XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgLmMtd2l6YXJkX190cmlnZ2VyLWNvdW50ZXIge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICR3aXphcmQtaXRlbS1mb250LXNpemUsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6IDFcbiAgICAgICAgKTtcbiAgICAgICAgQGlmICgkd2l6YXJkLWl0ZW0tZm9udC13ZWlnaHQgIT0gbm9ybWFsKSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHdpemFyZC1pdGVtLWZvbnQtd2VpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAoJHdpemFyZC10cmlnZ2VyLXJldmVydCkge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkd2l6YXJkLXRyaWdnZXItY291bnRlci1zcGFjaW5nOyAvKiBbMjJdICovXG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICR3aXphcmQtdHJpZ2dlci1jb3VudGVyLXNwYWNpbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbi5jLXdpemFyZC0tbm8taW50ZXJhY3Rpb24gLmMtd2l6YXJkX19saXN0ICoge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgaXRjc3Mvbm8tYXQtaW1wb3J0YW50ICovIC8qIFsyM10gKi9cbn1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNXSVpBUkQgKFNldHRpbmdzKVxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiR3aXphcmQtc3BhY2luZy10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJHdpemFyZC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kd2l6YXJkLXN0cm9rZS1hcnJvd3M6ICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiR3aXphcmQtYmxvY2stYXJyb3dzOiAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuXG4kd2l6YXJkLWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kd2l6YXJkLWl0ZW0tcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YWFNNQUxMICFkZWZhdWx0O1xuJHdpemFyZC1pdGVtLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgJEZTLTEgIWRlZmF1bHQ7XG4kd2l6YXJkLWl0ZW0tZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICBib2xkICFkZWZhdWx0O1xuJHdpemFyZC1pdGVtLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kd2l6YXJkLWl0ZW0tYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDogICAgICBmYWxzZSAhZGVmYXVsdDtcbiR3aXphcmQtaXRlbS1iYWNrZ3JvdW5kLWNvbG9yLWRvbmU6ICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJHdpemFyZC1pdGVtLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuJHdpemFyZC1pdGVtLXRleHQtY29sb3ItZG9uZTogICAgICAgICAgICAgICAgJENPTE9SLURFQ0VOVCAhZGVmYXVsdDtcbiR3aXphcmQtaXRlbS10ZXh0LWNvbG9yLWRvbmUtaG92ZXI6ICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kd2l6YXJkLWl0ZW0tdGV4dC1jb2xvci1hY3RpdmU6ICAgICAgICAgICAgICAkd2l6YXJkLWl0ZW0tdGV4dC1jb2xvci1kb25lICFkZWZhdWx0O1xuJHdpemFyZC1pdGVtLXRleHQtY29sb3ItYWN0aXZlLWhvdmVyOiAgICAgICAgJHdpemFyZC1pdGVtLXRleHQtY29sb3ItZG9uZS1ob3ZlciAhZGVmYXVsdDtcbiR3aXphcmQtaXRlbS10ZXh0LWFsaWdubWVudDogICAgICAgICAgICAgICAgIGNlbnRlciAhZGVmYXVsdDtcblxuJHdpemFyZC1pbmRpY2F0b3Itc3BhY2luZzogICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFhTTUFMTCAhZGVmYXVsdDtcbiR3aXphcmQtaW5kaWNhdG9yLWljb24tc2l6ZTogICAgICAgICAgICAgICAgIHh4c21hbGwgIWRlZmF1bHQ7XG4kd2l6YXJkLWluZGljYXRvci1zaXplOiAgICAgICAgICAgICAgICAgICAgICBpY29uLXNpemUoJHdpemFyZC1pbmRpY2F0b3ItaWNvbi1zaXplKSAhZGVmYXVsdDtcbiR3aXphcmQtaW5kaWNhdG9yLWljb246ICAgICAgICAgICAgICAgICAgICAgIG5vbmUgIWRlZmF1bHQ7XG4kd2l6YXJkLWluZGljYXRvci1pY29uLWRpc2FibGVkOiAgICAgICAgICAgICBub25lICFkZWZhdWx0O1xuJHdpemFyZC1pbmRpY2F0b3ItaWNvbi1hY3RpdmU6ICAgICAgICAgICAgICAgbm9uZSAhZGVmYXVsdDtcbiR3aXphcmQtaW5kaWNhdG9yLXRleHQtY29sb3ItZG9uZTogICAgICAgICAgICRDT0xPUi1TVUNDRVNTICFkZWZhdWx0O1xuXG4kd2l6YXJkLXRyaWdnZXItYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiR3aXphcmQtdHJpZ2dlci10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgICR3aXphcmQtaXRlbS10ZXh0LWNvbG9yLWRvbmUgIWRlZmF1bHQ7XG4kd2l6YXJkLXRyaWdnZXItaWNvbi1zaXplOiAgICAgICAgICAgICAgICAgICB4c21hbGwgIWRlZmF1bHQ7XG4kd2l6YXJkLXRyaWdnZXItY291bnRlci1zcGFjaW5nOiAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG5cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNJQ09OLVZBUklBTlRTXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGljb24tZW5hYmxlLXZhcmlhbnRzOiAgIHRydWUgIWRlZmF1bHQ7IC8vIFdpbGwgYmUgbW9kaWZpZWQgd2hlbiBvcHQtb3V0IGlzIHNldC5cbiRpY29uLWJvcmRlci13aWR0aDogICAgICAkSUNPTi1CT1JERVItV0lEVEggIWRlZmF1bHQ7XG4kaWNvbi1ib3JkZXItc3R5bGU6ICAgICAgJElDT04tQk9SREVSLVNUWUxFICFkZWZhdWx0O1xuJGljb24tc3F1YXJlLXJhZGl1czogICAgICRJQ09OLVNRVUFSRS1SQURJVVMgIWRlZmF1bHQ7XG4kaWNvbi1yb3VuZC1yYWRpdXM6ICAgICAgJElDT04tUk9VTkQtUkFESVVTICFkZWZhdWx0O1xuJGljb24tcm91bmQtZnVsbC1zaXplczogICRJQ09OLVJPVU5ELUZVTEwtU0laRVMgIWRlZmF1bHQ7XG4kaWNvbi1zcXVhcmUtZnVsbC1zaXplczogJElDT04tU1FVQVJFLUZVTEwtU0laRVMgIWRlZmF1bHQ7XG5cbi8vIGAkSUNPTi1ESVNBQkxFLVZBUklBTlRTYCBtdXN0IGJlIHNldCB0byBgZmFsc2VgIChkZWZhdWx0LCBzZWUgX3NldHRpbmdzLmljb24tZm9udHMpXG4vLyBpbiBvcmRlciBmb3IgdGhlIG1peGluIHRvIHdvcmsuXG4vLyBUaGlzIGlzIHRvIG9wdC1vdXQgb2YgdGhpcyBmZWF0dXJlIGlmIG5vIHZhcmlhbnRzIGFyZSB3YW50ZWQuXG4vLyBPbmx5IHRoZSBpY29uLXNpemUgYW5kIGNvbG9yIHdpbGwgYmUgYXBwbGllZC5cbkBpZiAodmFyaWFibGUtZXhpc3RzKElDT04tRElTQUJMRS1WQVJJQU5UUykgYW5kICgkSUNPTi1ESVNBQkxFLVZBUklBTlRTID09IHRydWUpKSB7XG4gICAgJGljb24tZW5hYmxlLXZhcmlhbnRzOiBmYWxzZTtcbn1cblxuLy8gTWl4aW4gdG8gaW5jbHVkZSBpY29uIHNoYXBlcywgc2l6ZXMgYW5kIHN0eWxlIHBhdHRlcm5zLiBUaGUgc2hhcGVcbi8vIChzcXVhcmUgb3Igcm91bmQpIGFzIGZpcnN0IHBhcmFtZXRlciwgZm9sbG93ZWQgYnkgdGhlIHNpemUsIHRleHQtY29sb3IsXG4vLyBiYWNrZ3JvdW5kLWNvbG9yIGFuZCBib3JkZXItY29sb3IuXG4vL1xuLy8gQ29tcGxldGVseSBjdXN0b20gd2l0aCBhbGwgcGFyYW1ldGVyczpcbi8vIEBpbmNsdWRlIGljb24tdmFyaWFudChcbi8vICAgICAkdmFyaWFudDogICAgICAgICAgXCJyb3VuZFwiLFxuLy8gICAgICRzaXplOiAgICAgICAgICAgICBcInNtYWxsXCIsXG4vLyAgICAgJHRleHQtY29sb3I6ICAgICAgIGhvdHBpbmssXG4vLyAgICAgJGJhY2tncm91bmQtY29sb3I6IGJsYWNrLFxuLy8gICAgICRib3JkZXItY29sb3I6ICAgICByZWRcbi8vICk7XG4vL1xuLy8gQWxsIHBhcmFtZXRlcnMgYXJlIG9wdGlvbmFsLCBhbHRob3VnaCB0aGUgY29zbWV0aWMgc3R5bGluZ3MgZG9u4oCZdCBoYXZlIGFueVxuLy8gZGVmYXVsdCB2YWx1ZXMuIFRoaXMgaXMgdG8gcHJldmVudCB1bm5lY2Vzc2FyeSBDU1Mgb3V0cHV0IHdoZW4gYWx0ZXJpbmdcbi8vIHRoZSBzaXplIG9mIHRoZSBpY29uIGZvciBhIHNwZWNpZmljIHNjb3BlIHdoZW4gdGhlIGNvc21ldGljcyBzaG91bGQga2VlcFxuLy8gdGhlIHNhbWUuIEUuZy46XG4vL1xuLy8gLmZvbyB7XG4vLyAgICAgQGluY2x1ZGUgaWNvbi12YXJpYW50KFxuLy8gICAgICAgICAkdmFyaWFudDogICAgICAgICAgXCJyb3VuZFwiLFxuLy8gICAgICAgICAkc2l6ZTogICAgICAgICAgICAgXCJtZWRpdW1cIixcbi8vICAgICAgICAgJHRleHQtY29sb3I6ICAgICAgICRmb28tY29sb3IsXG4vLyAgICAgICAgICRiYWNrZ3JvdW5kLWNvbG9yOiAkZm9vLWJhY2tncm91bmQsXG4vLyAgICAgICAgICRib3JkZXItY29sb3I6ICAgICAkZm9vLWJvcmRlci1jb2xvclxuLy8gICAgICk7XG4vL1xuLy8gICAgICYuZm9vLS1zbWFsbCB7XG4vLyAgICAgICAgIEBpbmNsdWRlIGljb24tdmFyaWFudChcbi8vICAgICAgICAgICAgICR2YXJpYW50OiBcInJvdW5kXCIsXG4vLyAgICAgICAgICAgICAkc2l6ZTogICAgXCJzbWFsbFwiXG4vLyAgICAgICAgICk7ICAvLyBObyBuZWVkIHRvIGxpc3QgdGhlIGNvc21ldGljIGFnYWluIGFzIHBhcmFtZXRlcnMuXG4vLyAgICAgfVxuLy9cbi8vIH1cbi8vXG4vL1xuLy9cbi8vIFsxXSBFeHBsaWNpdGx5IGRldGVybWluZSB0aGUgc2l6ZSBvZiB0aGUgaWNvbiwgc28gYW55IHBvdGVudGlhbFxuLy8gICAgIGAuYy1pY29uLS1bU0laRV1gIGNsYXNzIHRoYXQgaXMgaW4gdGhlIG1hcmt1cCwgaXMgb3ZlcnJpZGRlbiBhbmRcbi8vICAgICB0aGUgZGVzaXJlZCBmb250LXNpemUgaXMgdGFrZW4uXG4vLyBbMl0gQ2FsY3VsYXRlIHRoZSBjb21wb3VuZCBzaXplIG9mIHRoZSBpY29uIHZpYSB0aGUgYHBhZGRpbmdgIHByb3BlcnR5IHRvXG4vLyAgICAgZXF1YWwgdGhlIGRlc2lyZWQgc2l6ZXMgZGVmaW5lZCBpbiB0aGUgU2FzcyBtYXBzLiBJZiBhIGJvcmRlciBpcyBzZXQsXG4vLyAgICAgc3Vic3RyYWN0IGl0IGFzIHdlbGwgZnJvbSB0aGUgZmluYWwgcGFkZGluZy5cbkBtaXhpbiBpY29uLXZhcmlhbnQoXG4gICAgJHZhcmlhbnQ6IFwic3F1YXJlXCIsXG4gICAgJHNpemU6IFwibWVkaXVtXCIsXG4gICAgJHRleHQtY29sb3I6IG51bGwsXG4gICAgJGJhY2tncm91bmQtY29sb3I6IG51bGwsXG4gICAgJGJvcmRlci1jb2xvcjogbnVsbCxcbiAgICAkcHNldWRvLWVsZW1lbnQ6IGJlZm9yZVxuKSB7XG5cbiAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICRmb250LXNpemU6ICAgaWNvbi1zaXplKCRzaXplKSxcbiAgICAgICAgJGxpbmUtaGVpZ2h0OiBmYWxzZVxuICAgICk7IC8vIFsxXVxuXG4gICAgQGlmICgkdGV4dC1jb2xvcikge1xuICAgICAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkaWNvbi1lbmFibGUtdmFyaWFudHMpIHtcblxuICAgICAgICAvLyBTcXVhcmUgdmFyaWFudC5cbiAgICAgICAgQGlmICgkdmFyaWFudCA9PSBcInNxdWFyZVwiKSB7XG4gICAgICAgICAgICAmOjojeyRwc2V1ZG8tZWxlbWVudH0ge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRpY29uLXNxdWFyZS1yYWRpdXM7XG4gICAgICAgICAgICAgICAgQGlmICgkYm9yZGVyLWNvbG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICgobWFwLWdldCgkaWNvbi1zcXVhcmUtZnVsbC1zaXplcywgJHNpemUpIC0gaWNvbi1zaXplKCRzaXplKSkgKiAwLjUpIC0gKCRpY29uLWJvcmRlci13aWR0aCk7IC8vIFsyXVxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAoKG1hcC1nZXQoJGljb24tc3F1YXJlLWZ1bGwtc2l6ZXMsICRzaXplKSAtIGljb24tc2l6ZSgkc2l6ZSkpICogMC41KTsgLy8gWzJdXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUm91bmQgdmFyaWFudC5cbiAgICAgICAgQGlmICgkdmFyaWFudCA9PSBcInJvdW5kXCIpIHtcbiAgICAgICAgICAgICY6OiN7JHBzZXVkby1lbGVtZW50fSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGljb24tcm91bmQtcmFkaXVzO1xuICAgICAgICAgICAgICAgIEBpZiAoJGJvcmRlci1jb2xvcikge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAoKG1hcC1nZXQoJGljb24tcm91bmQtZnVsbC1zaXplcywgJHNpemUpIC0gaWNvbi1zaXplKCRzaXplKSkgKiAwLjUpIC0gKCRpY29uLWJvcmRlci13aWR0aCk7IC8vIFsyXVxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAoKG1hcC1nZXQoJGljb24tcm91bmQtZnVsbC1zaXplcywgJHNpemUpIC0gaWNvbi1zaXplKCRzaXplKSkgKiAwLjUpOyAvLyBbMl1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOjojeyRwc2V1ZG8tZWxlbWVudH0ge1xuICAgICAgICAgICAgQGlmICgkYm9yZGVyLWNvbG9yKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkaWNvbi1ib3JkZXItd2lkdGggJGljb24tYm9yZGVyLXN0eWxlICRib3JkZXItY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKCRiYWNrZ3JvdW5kLWNvbG9yKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI1dJWkFSRFxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRza29kYS13aXphcmQtbGlzdC1tYXJnaW4tdG9wLWF0LWJyZWFrcG9pbnQ6ICAgLSgkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCkgIWRlZmF1bHQ7XG4kc2tvZGEtd2l6YXJkLWl0ZW0tZG90LXNpemU6ICAgICAgICAgICAgICAgICAgIDEycHggIWRlZmF1bHQ7XG4kc2tvZGEtd2l6YXJkLWl0ZW0tZG90LXNpemUtYWN0aXZlOiAgICAgICAgICAgIDE4cHggIWRlZmF1bHQ7XG4kc2tvZGEtd2l6YXJkLWl0ZW0tZG90LWdhcDogICAgICAgICAgICAgICAgICAgIDJweCAhZGVmYXVsdDtcbiRza29kYS13aXphcmQtaXRlbS1kb3QtY29sb3I6ICAgICAgICAgICAgICAgICAgJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuJHNrb2RhLXdpemFyZC1pdGVtLWRvdC1jb2xvci1kb25lOiAgICAgICAgICAgICAkQ09MT1ItREVDRU5UICFkZWZhdWx0O1xuJHNrb2RhLXdpemFyZC1pdGVtLWRvdC1ib3JkZXItd2lkdGg6ICAgICAgICAgICAxLjVweCAhZGVmYXVsdDtcbiRza29kYS13aXphcmQtaXRlbS1saW5lLXdpZHRoOiAgICAgICAgICAgICAgICAgMnB4ICFkZWZhdWx0O1xuJHNrb2RhLXdpemFyZC1pdGVtLWxpbmUtY29sb3I6ICAgICAgICAgICAgICAgICAkc2tvZGEtd2l6YXJkLWl0ZW0tZG90LWNvbG9yICFkZWZhdWx0O1xuJHNrb2RhLXdpemFyZC1pdGVtLWxpbmUtY29sb3ItZG9uZTogICAgICAgICAgICAkc2tvZGEtd2l6YXJkLWl0ZW0tZG90LWNvbG9yLWRvbmUgIWRlZmF1bHQ7XG4kc2tvZGEtd2l6YXJkLWl0ZW0tdGV4dC1hbGlnbm1lbnQtd2l0aC1pY29uOiAgIGxlZnQgIWRlZmF1bHQ7XG4kc2tvZGEtd2l6YXJkLWl0ZW0tcGFkZGluZy1sZWZ0LWF0LWJyZWFrcG9pbnQ6ICRza29kYS13aXphcmQtaXRlbS1kb3Qtc2l6ZS1hY3RpdmUgIWRlZmF1bHQ7XG4kc2tvZGEtd2l6YXJkLWl0ZW0tc3BhY2luZy1sZWZ0LWF0LWJyZWFrcG9pbnQ6ICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBXZSB1c2UgYSBsaW5lYXIgZ3JhZGllbnQgYXMgbGluZSBiYWNrZ3JvdW5kIHRvIGNyZWF0ZSBjdXRvdXRzIGZvciB0aGUgZG90cy5cbiAqIFsyXSBUaGUgb3V0ZXIgbGluZXMgb2YgdGhlIGZpcnN0IGFuZCBsYXN0IGl0ZW1zIGFyZSBkaXNwbGF5ZWQgdHJhbnNwYXJlbnRseS5cbiAqL1xuXG4uYy13aXphcmQge1xuICAgIC0td2l6YXJkLWl0ZW0tZG90LXNpemU6ICN7JHNrb2RhLXdpemFyZC1pdGVtLWRvdC1zaXplfTtcbiAgICAtLXdpemFyZC1pdGVtLWRvdC1jb2xvcjogI3skc2tvZGEtd2l6YXJkLWl0ZW0tZG90LWNvbG9yfTtcbiAgICAtLXdpemFyZC1pdGVtLWRvdC1nYXA6ICN7JHNrb2RhLXdpemFyZC1pdGVtLWRvdC1nYXB9O1xuICAgIC0td2l6YXJkLWl0ZW0tZG90LWJvcmRlci13aWR0aDogI3skc2tvZGEtd2l6YXJkLWl0ZW0tZG90LWJvcmRlci13aWR0aH07XG4gICAgLS13aXphcmQtaXRlbS1saW5lLXdpZHRoOiAjeyRza29kYS13aXphcmQtaXRlbS1saW5lLXdpZHRofTtcbiAgICAtLXdpemFyZC1pdGVtLWxpbmUtY29sb3I6ICN7JHNrb2RhLXdpemFyZC1pdGVtLWxpbmUtY29sb3J9O1xufVxuXG4gICAgICAgIC5jLXdpemFyZF9fdHJpZ2dlci1pY29uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1pY29uLXN0YXRlcyhcbiAgICAgICAgICAgICAgICAkY29udGV4dC1zZWxlY3RvcjogXCIuYy13aXphcmRfX3RyaWdnZXJcIixcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHdpemFyZC1jb2xsYXBzZWQoKSB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIC5jLXdpemFyZF9faXRlbSB7XG4gICAgICAgIC0td2l6YXJkLWl0ZW0tZG90LWNvbG9yOiAjeyRza29kYS13aXphcmQtaXRlbS1kb3QtY29sb3ItZG9uZX07XG4gICAgICAgIC0td2l6YXJkLWl0ZW0tZG90LWJhY2tncm91bmQtY29sb3I6IHZhcigtLXdpemFyZC1pdGVtLWRvdC1jb2xvcik7XG4gICAgICAgIC0td2l6YXJkLWl0ZW0tbGluZS1jb2xvcjogI3skc2tvZGEtd2l6YXJkLWl0ZW0tbGluZS1jb2xvci1kb25lfTtcbiAgICAgICAgLS13aXphcmQtaXRlbS1saW5lLWJlZm9yZS1jb2xvcjogdmFyKC0td2l6YXJkLWl0ZW0tbGluZS1jb2xvcik7XG4gICAgICAgIC0td2l6YXJkLWl0ZW0tbGluZS1hZnRlci1jb2xvcjogdmFyKC0td2l6YXJkLWl0ZW0tbGluZS1jb2xvcik7XG5cbiAgICAgICAgLyogbGluZSAqL1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0td2l6YXJkLWl0ZW0tbGluZS13aWR0aCk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgIHRvIHZhcigtLXdpemFyZC1pdGVtLWxpbmUtZGlyZWN0aW9uLCByaWdodCksXG4gICAgICAgICAgICAgICAgdmFyKC0td2l6YXJkLWl0ZW0tbGluZS1iZWZvcmUtY29sb3IpIGNhbGMoNTAlIC0gdmFyKC0td2l6YXJkLWl0ZW0tZG90LXNpemUpIC8gMiAtIHZhcigtLXdpemFyZC1pdGVtLWRvdC1nYXApKSxcbiAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCBjYWxjKDUwJSAtIHZhcigtLXdpemFyZC1pdGVtLWRvdC1zaXplKSAvIDIgLSB2YXIoLS13aXphcmQtaXRlbS1kb3QtZ2FwKSksXG4gICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgY2FsYyg1MCUgKyB2YXIoLS13aXphcmQtaXRlbS1kb3Qtc2l6ZSkgLyAyICsgdmFyKC0td2l6YXJkLWl0ZW0tZG90LWdhcCkpLFxuICAgICAgICAgICAgICAgIHZhcigtLXdpemFyZC1pdGVtLWxpbmUtYWZ0ZXItY29sb3IpIDBcbiAgICAgICAgICAgICk7IC8qIFsxXSAqL1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLyogZG90cyAqL1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXdpemFyZC1pdGVtLWRvdC1zaXplKTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0td2l6YXJkLWl0ZW0tZG90LXNpemUpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgICBib3JkZXI6IHZhcigtLXdpemFyZC1pdGVtLWRvdC1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXdpemFyZC1pdGVtLWRvdC1ib3JkZXItY29sb3IsIHZhcigtLXdpemFyZC1pdGVtLWRvdC1jb2xvcikpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2l6YXJkLWl0ZW0tZG90LWJhY2tncm91bmQtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogYWxsIGl0ZW1zIGFmdGVyIHRoZSBhY3RpdmUgaXRlbSAqL1xuICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LWNsYXNzICovXG4gICAgICAgICYuYy13aXphcmRfX2l0ZW0uaXMtYWN0aXZlIH4gLmMtd2l6YXJkX19pdGVtIHtcbiAgICAgICAgICAgIC0td2l6YXJkLWl0ZW0tbGluZS1jb2xvcjogI3skc2tvZGEtd2l6YXJkLWl0ZW0tbGluZS1jb2xvcn07XG4gICAgICAgICAgICAtLXdpemFyZC1pdGVtLWRvdC1jb2xvcjogI3skc2tvZGEtd2l6YXJkLWl0ZW0tZG90LWNvbG9yfTtcbiAgICAgICAgICAgIC0td2l6YXJkLWl0ZW0tZG90LWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1kaXNhYmxlZCB7XG4gICAgICAgICAgICAtLXdpemFyZC1pdGVtLWRvdC1jb2xvcjogI3skc2tvZGEtd2l6YXJkLWl0ZW0tZG90LWNvbG9yfTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICAgIC0td2l6YXJkLWl0ZW0tbGluZS1hZnRlci1jb2xvcjogI3skc2tvZGEtd2l6YXJkLWl0ZW0tbGluZS1jb2xvcn07XG4gICAgICAgICAgICAtLXdpemFyZC1pdGVtLWRvdC1zaXplOiAjeyRza29kYS13aXphcmQtaXRlbS1kb3Qtc2l6ZS1hY3RpdmV9O1xuICAgICAgICAgICAgLS13aXphcmQtaXRlbS1kb3QtY29sb3I6ICN7JHNrb2RhLXdpemFyZC1pdGVtLWRvdC1jb2xvci1kb25lfTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtZG9uZSxcbiAgICAgICAgJi5pcy1lcnJvciB7XG5cbiAgICAgICAgICAgIC5jLXdpemFyZF9fbGluayB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogJHNrb2RhLXdpemFyZC1pdGVtLXRleHQtYWxpZ25tZW50LXdpdGgtaWNvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAtLXdpemFyZC1pdGVtLWxpbmUtYmVmb3JlLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogWzJdICovXG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgLS13aXphcmQtaXRlbS1saW5lLWFmdGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogWzJdICovXG4gICAgICAgIH1cblxuICAgICAgICAmOmhhcyguYy13aXphcmRfX2xpbms6aG92ZXIsIC5jLXdpemFyZF9fbGluazpmb2N1cykge1xuICAgICAgICAgICAgLS13aXphcmQtaXRlbS1kb3QtYmFja2dyb3VuZC1jb2xvcjogI3skQ09MT1ItQlJBTkQtU0VDT05EQVJZfTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtd2l6YXJkX19saW5rIHtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogdW5zZXQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBAaW5jbHVkZSB3aXphcmQtY29sbGFwc2VkKCRyb290OiB0cnVlKSB7XG5cbiAgICAgICAgLmMtd2l6YXJkX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRza29kYS13aXphcmQtbGlzdC1tYXJnaW4tdG9wLWF0LWJyZWFrcG9pbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuYy13aXphcmRfX2l0ZW0ge1xuICAgICAgICAgICAgLS13aXphcmQtaXRlbS1saW5lLWRpcmVjdGlvbjogYm90dG9tO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAoJHNrb2RhLXdpemFyZC1pdGVtLXBhZGRpbmctbGVmdC1hdC1icmVha3BvaW50ICsgJHNrb2RhLXdpemFyZC1pdGVtLXNwYWNpbmctbGVmdC1hdC1icmVha3BvaW50KTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHNrb2RhLXdpemFyZC1pdGVtLXBhZGRpbmctbGVmdC1hdC1icmVha3BvaW50fSAvIDIpO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiB1bnNldDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSAqL1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogdmFyKC0td2l6YXJkLWl0ZW0tbGluZS13aWR0aCk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skc2tvZGEtd2l6YXJkLWl0ZW0tcGFkZGluZy1sZWZ0LWF0LWJyZWFrcG9pbnR9IC8gMik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJTkZPLUlDT05cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kaW5mby1pY29uLWNvbG9yOiAgICAgICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiRpbmZvLWljb24tYmFja2dyb3VuZC1jb2xvcjogZmFsc2UgIWRlZmF1bHQ7XG4kaW5mby1pY29uLWJvcmRlci1jb2xvcjogICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiRpbmZvLWljb24tc2l6ZTogICAgICAgICAgICAgc21hbGwgIWRlZmF1bHQ7XG4kaW5mby1pY29uLXZlcnRpY2FsLWFsaWduOiAgIG1pZGRsZSAhZGVmYXVsdDtcbiRpbmZvLWljb24tdmFyaWFudDogICAgICAgICAgXCJyb3VuZFwiICFkZWZhdWx0O1xuJGluZm8taWNvbi1wYWRkaW5nOiAgICAgICAgICAwICFkZWZhdWx0O1xuJGluZm8taWNvbi1zcGFjaW5nOiAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4vLyBBZGRpdGlvbmFsIHN0eWxlcyBmb3IgYnJhbmRzIHRoYXQgbmVlZCBhIENTUyBib3JkZXJcbiRpbmZvLWljb24taGFzLW5vLWJvcmRlcjogICAgZmFsc2UgIWRlZmF1bHQ7XG4kaW5mby1pY29uLWJvcmRlci1zdHlsZTogICAgIHNvbGlkICFkZWZhdWx0O1xuJGluZm8taWNvbi1ib3JkZXItd2lkdGg6ICAgICAxcHggIWRlZmF1bHQ7XG4kaW5mby1pY29uLXBhZGRpbmctYWZ0ZXI6ICAgIDUwJSAhZGVmYXVsdDtcbiRpbmZvLWljb24tcmFkaXVzOiAgICAgICAgICAgJElDT04tUk9VTkQtUkFESVVTICFkZWZhdWx0O1xuJGluZm8taWNvbi1wb3NpdGlvbjogICAgICAgICBhYnNvbHV0ZSAhZGVmYXVsdDtcbiRpbmZvLWljb24tdHJhbnNmb3JtOiAgICAgICAgdHJhbnNsYXRlKC01MCUsIC01MCUpICFkZWZhdWx0O1xuXG4kaW5mby1pY29uLXRoZW1lczogKFxuICAgIFwiYWx0ZXJuYXRpdmVcIjogKFxuICAgICAgICBcImljb24tY29sb3JcIjogICAgICAgICAgICAkQ09MT1ItQlJBTkQsXG4gICAgICAgIFwiaWNvbi1iYWNrZ3JvdW5kLWNvbG9yXCI6IGZhbHNlLFxuICAgICAgICBcImljb24tYm9yZGVyLWNvbG9yXCI6ICAgICBudWxsXG4gICAgKVxuKSAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gVmVydGljYWxseSBhbGlnbiBpY29uLCBpZiBuZWVkZWQuXG4gKiBbMl0gUmVkdWNlIHRoZSBoZWlnaHQgb2YgSW5mbyBJY29uIGJ5IHJlbW92aW5nIHRoZSBwYWRkaW5nXG4gKiAgICAgaW5oZXJpdGVkIGZyb20gdGhlIGBpY29uLXZhcmlhbnRgIG1peGluLlxuICogWzNdIEVuc3VyZSBvdGhlciBjb21wb25lbnRzIGFyZSBub3QgYWZmZWN0ZWQgYnkgdGhlIEluZm8gSWNvbi5cbiAqIFs0XSBIb3Jpem9udGFsIHNwYWNpbmcuXG4gKiBbNV0gQWRkaXRpb25hbCBzdHlsZXMgZm9yIGJyYW5kcyB0aGF0IG5lZWQgYSBDU1MgYm9yZGVyLlxuICogWzZdIEZpeCBjbGlwcGluZyBieSBzbGlnaHRseSBvZmZzZXR0aW5nIChTYWZhcmkpLlxuICovXG4uYy1pbmZvLWljb24ge1xuICAgIEBpZiAoJGluZm8taWNvbi12YXJpYW50KSB7XG4gICAgICAgIEBpbmNsdWRlIGljb24tdmFyaWFudChcbiAgICAgICAgICAgICR2YXJpYW50OiAgICAgICAgICAkaW5mby1pY29uLXZhcmlhbnQsXG4gICAgICAgICAgICAkc2l6ZTogICAgICAgICAgICAgJGluZm8taWNvbi1zaXplLFxuICAgICAgICAgICAgJHRleHQtY29sb3I6ICAgICAgICRpbmZvLWljb24tY29sb3IsXG4gICAgICAgICAgICAkYmFja2dyb3VuZC1jb2xvcjogJGluZm8taWNvbi1iYWNrZ3JvdW5kLWNvbG9yLFxuICAgICAgICAgICAgJGJvcmRlci1jb2xvcjogICAgICRpbmZvLWljb24tYm9yZGVyLWNvbG9yLFxuICAgICAgICAgICAgJHBzZXVkby1lbGVtZW50OiAgIGFmdGVyLFxuICAgICAgICApO1xuXG4gICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICRpbmZvLWljb24tdGhlbWVzKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBpY29uLXZhcmlhbnQoXG4gICAgICAgICAgICAgICAgJHZhcmlhbnQ6ICAgICAgICAgICRpbmZvLWljb24tdmFyaWFudCxcbiAgICAgICAgICAgICAgICAkc2l6ZTogICAgICAgICAgICAgJGluZm8taWNvbi1zaXplLFxuICAgICAgICAgICAgICAgICR0ZXh0LWNvbG9yOiAgICAgICB2YXJ5LWdldChcImljb24tY29sb3JcIiksXG4gICAgICAgICAgICAgICAgJGJhY2tncm91bmQtY29sb3I6IHZhcnktZ2V0KFwiaWNvbi1iYWNrZ3JvdW5kLWNvbG9yXCIpLFxuICAgICAgICAgICAgICAgICRib3JkZXItY29sb3I6ICAgICB2YXJ5LWdldChcImljb24tYm9yZGVyLWNvbG9yXCIpLFxuICAgICAgICAgICAgICAgICRwc2V1ZG8tZWxlbWVudDogICBhZnRlcixcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgY29sb3I6ICRpbmZvLWljb24tY29sb3I7XG4gICAgfVxuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbM10gKi9cbiAgICBtYXJnaW4tdG9wOiAtMTAwcHg7IC8qIFszXSAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjYWxlLXVubGltaXRlZC9kZWNsYXJhdGlvbi1zdHJpY3QtdmFsdWUgKi9cbiAgICBtYXJnaW4tYm90dG9tOiAtMTAwcHg7IC8qIFszXSAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjYWxlLXVubGltaXRlZC9kZWNsYXJhdGlvbi1zdHJpY3QtdmFsdWUgKi9cbiAgICBtYXJnaW4tbGVmdDogJGluZm8taWNvbi1zcGFjaW5nOyAvKiBbNF0gKi9cbiAgICBwYWRkaW5nOiAwLjAzZW07IC8qIFs2XSAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjYWxlLXVubGltaXRlZC9kZWNsYXJhdGlvbi1zdHJpY3QtdmFsdWUgKi9cbiAgICBsaW5lLWhlaWdodDogMTsgLyogWzNdICovXG4gICAgdmVydGljYWwtYWxpZ246ICRpbmZvLWljb24tdmVydGljYWwtYWxpZ247IC8qIFsxXSAqL1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgcGFkZGluZzogJGluZm8taWNvbi1wYWRkaW5nOyAvKiBbMl0gKi9cbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuXG4gICAgQGlmICgkaW5mby1pY29uLWhhcy1uby1ib3JkZXIgPT0gdHJ1ZSkgeyAvKiBbNV0gKi9cbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7IC8qIFszXSAqL1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogJGluZm8taWNvbi1wb3NpdGlvbjtcbiAgICAgICAgICAgIHRvcDogJGluZm8taWNvbi1yYWRpdXM7XG4gICAgICAgICAgICBsZWZ0OiAkaW5mby1pY29uLXJhZGl1cztcbiAgICAgICAgICAgIHBhZGRpbmc6ICRpbmZvLWljb24tcGFkZGluZy1hZnRlcjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogJGluZm8taWNvbi10cmFuc2Zvcm07XG4gICAgICAgICAgICBib3JkZXI6ICRpbmZvLWljb24tYm9yZGVyLXdpZHRoICRpbmZvLWljb24tYm9yZGVyLXN0eWxlICRpbmZvLWljb24tYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGluZm8taWNvbi1yYWRpdXM7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNJTkZPLUlDT04gKFNldHRpbmdzKVxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRpbmZvLWljb24tdmFyaWFudDogZmFsc2UgIWRlZmF1bHQ7XG4kaW5mby1pY29uLWNvbG9yOiAgIGN1cnJlbnRDb2xvciAhZGVmYXVsdDtcbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNJTkZPLUlDT05cbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2tvZGEtaW5mby1pY29uLWhvdmVyOiAgICAgICAgICBnZXQtaWNvbihpbmZvcm1hdGlvbi1jaXJjbGUtZmlsbGVkKSAhZGVmYXVsdDtcbiRza29kYS1pbmZvLWljb24tc2l6ZS1taW46ICAgICAgIGljb24tc2l6ZSh4c21hbGwpICFkZWZhdWx0O1xuJHNrb2RhLWluZm8taWNvbi1zaXplLXByZWZlcnJlZDogMWVtICFkZWZhdWx0OyAvLyBTaXplIHJlbGF0aXZlIHRvIHRleHQgc2l6ZVxuJHNrb2RhLWluZm8taWNvbi1zaXplLW1heDogICAgICAgaWNvbi1zaXplKHNtYWxsKSAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gU2V0IGEgcHJlZmVycmVkIHNpemUgZm9yIHRoZSBpY29uIHRoYXQgaXMgYmFzZWQgb24gdGhlIHRleHQncyBzaXplLlxuICogICAgIFVzZSBgY2xhbXAoKWAgdG8gc2V0IGJvdW5kcyAtIHdpdGggZGVmaW5lZCBtaW5pbXVtIGFuZCBtYXhpbXVtIHNpemVcbiAqICAgICBiYXNlZCBvbiBkZWZpbmVkIGljb24gc2l6ZXMuXG4gKiAgICAgVGhpcyB3YXkgdGhlIGljb24gc3RheXMgcHJvcG9ydGlvbmFsIHRvIHRoZSAocmVzcG9uc2l2ZSkgdGV4dCBzaXplXG4gKiAgICAgd2l0aG91dCBuZWVkIG9mIG1lZGlhLXF1ZXJpZXMuXG4gKiAgICAgVGhpcyBhbHNvIHNvbHZlcyBwb3RlbnRpYWwgbWlzYWxpZ25tZW50cywgZS5nLiB3aXRoIHNlY3Rpb24taGVhZGluZy5cbiAqIFsyXSBVc2UgbmVnYXRpdmUgb2Zmc2V0IGR1ZSB0byB0aGUgbGFyZ2VyIHNpemUgd2l0aCBcIndoaXRlc3BhY2VcIiBvZiB0aGUgaW5mby1pY29uXG4gKiAgICAgaW4gb3JkZXIgdG8gbm90IGNyZWF0ZSBzcGFjaW5nL3BhZGRpbmcgYmV0d2VlbiBpY29uIGFuZCBvdXRsaW5lLlxuICogWzNdIFVzZSBcImludmVydGVkXCIgaWNvbiBvbiBob3Zlci5cbiAqL1xuLmMtaW5mby1pY29uIHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICAgIC8qIFsxXSAqL1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoXG4gICAgICAgICRza29kYS1pbmZvLWljb24tc2l6ZS1taW4sXG4gICAgICAgICRza29kYS1pbmZvLWljb24tc2l6ZS1wcmVmZXJyZWQsXG4gICAgICAgICRza29kYS1pbmZvLWljb24tc2l6ZS1tYXhcbiAgICApO1xuICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuICAgICYuYy1pY29uLS1cXFtzZW1hbnRpYy1pbmZvXFxdOndoZXJlKDpob3ZlciwgOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgLS1icm9uLWljb246ICN7JHNrb2RhLWluZm8taWNvbi1ob3Zlcn07IC8qIFszXSAqL1xuICAgIH1cblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSEVSTy1URUFTRVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vLyBUaGUgcG9pbnQgYXQgd2hpY2ggdGhlIGNvbnRlbnQgKHRoZSB0ZXh0KSBpcyBub3QgZGlzcGxheWVkIG9uIHRvcCBvZiB0aGVcbi8vIGltYWdlIGFueW1vcmUuXG4kaGVyby10ZWFzZXItbWF4LXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kaGVyby10ZWFzZXItY29udGVudC1icmVhazogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhzICFkZWZhdWx0O1xuJGhlcm8tdGVhc2VyLXBhZ2UtaGVhZC1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUxPR08tSEVJR0hUICsgJEdMT0JBTC1TUEFDSU5HLVVOSVQtTEFSR0UgIWRlZmF1bHQ7XG4kaGVyby10ZWFzZXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kaGVyby10ZWFzZXItaW52ZXJ0ZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kaGVyby10ZWFzZXItaW52ZXJ0ZWQtYnV0dG9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG5cbiRoZXJvLXRlYXNlci1oZWlnaHQ6IChcbiAgICBudWxsOiA3MDBweCxcbiAgICBzOiAgICA1NDBweCxcbiAgICB4czogICAzMjBweFxuKSAhZGVmYXVsdDtcblxuJGhlcm8tdGVhc2VyLXNoYWxsb3ctaGVpZ2h0OiAoXG4gICAgbnVsbDogNTQwcHgsXG4gICAgczogICAgNDgwcHgsXG4gICAgeHM6ICAgMjgwcHhcbikgIWRlZmF1bHQ7XG5cbiRoZXJvLXRlYXNlci1hdXRvLWhlaWdodDogMTAwJSAhZGVmYXVsdDtcblxuJGhlcm8tdGVhc2VyLWxheWVyLXdpZHRoczogKCAvKiBbMjRdICovXG5zbWFsbDogIDQ2MHB4LFxubWVkaXVtOiA3MjBweCxcbmxhcmdlOiAgOTYwcHgsXG54bGFyZ2U6IDEyODBweCxcbikgIWRlZmF1bHQ7XG5cbi8vIGRlZmluZSB3aGVyZSB0aGUgY29udGVudCBzaG91bGQgYmUgYW5jaG9yZWQgaW4gcmVnYXJkcyB0byB0aGUgaW1hZ2UuIFBvc3NpYmxlXG4vLyB2YWx1ZXMgYXJlIFwidG9wXCIsIFwiYm90dG9tXCIgYW5kIFwibWlkZGxlXCIuXG4kaGVyby10ZWFzZXItY29udGVudC1hbGlnbm1lbnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidG9wXCIgIWRlZmF1bHQ7XG4kaGVyby10ZWFzZXItY29udGVudC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kaGVyby10ZWFzZXItY29udGVudC1icmVha3BvaW50LW9mZnNldDogICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuXG4vLyBCb29sZWFuIHRvIG9wdGlvbmFsbHkgZGVhY3RpdmF0ZSB1c2FnZSBvZiBwYWdlIHdyYXAgYWxpZ25tZW50LlxuJGhlcm8tdGVhc2VyLWNvbnRlbnQtdXNlLXBhZ2Utd3JhcDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuXG4kaGVyby10ZWFzZXItY29udGVudC1wYWRkaW5nLXRvcDogKFxuICAgIG51bGw6ICAgICAgICAgICAgICAgICAgICAgICAkaGVyby10ZWFzZXItcGFnZS1oZWFkLXNwYWNpbmcsXG4gICAgJGhlcm8tdGVhc2VyLWNvbnRlbnQtYnJlYWs6IDAsXG4pICFkZWZhdWx0O1xuXG4kaGVyby10ZWFzZXItY29udGVudC1wYWRkaW5nLWJvdHRvbTogKFxuICAgIG51bGw6ICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1MQVJHRSxcbiAgICAkaGVyby10ZWFzZXItY29udGVudC1icmVhazogJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwsXG4pICFkZWZhdWx0O1xuXG4vLyBzZXQgdGhlIGRlZmF1bHRzIGZvciBgJGhlcm8tdGVhc2VyLWNvbnRlbnRgIGhlcmVcbiRoZXJvLXRlYXNlci1jb250ZW50LWRlZmF1bHQtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kaGVyby10ZWFzZXItY29udGVudC1kZWZhdWx0LXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGhlcm8tdGVhc2VyLWNvbnRlbnQtZGVmYXVsdC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRoZXJvLXRlYXNlci1jb250ZW50LWRlZmF1bHQtdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kaGVyby10ZWFzZXItY29udGVudC1kZWZhdWx0LXRleHQtY29sb3ItaW52ZXJ0ZWQ6ICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGhlcm8tdGVhc2VyLWNvbnRlbnQtZGVmYXVsdC1tYXJnaW4tYm90dG9tOiAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRoZXJvLXRlYXNlci1jb250ZW50LWRlZmF1bHQtbWF4LXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbi8vIHNldCB0aGUgZGVmYXVsdCBzdGF0ZSBmb3IgYC5jLWhlcm8tdGVhc2VyLS1pbnZlcnRlZGBcbiRoZXJvLXRlYXNlci1jb250ZW50LWRlZmF1bHQtY29sb3ItaW52ZXJ0ZWQ6ICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRoZXJvLXRlYXNlci1idXR0b24tYmFja2dyb3VuZC1jb2xvci1pbnZlcnRlZDogICAgICAgICAgICAgICAgICAgIG1hcC1kZWVwLWdldCgkYnV0dG9uLXZhcmlhbnRzLCBwcmltYXJ5LCBiYWNrZ3JvdW5kKSAhZGVmYXVsdDtcbiRoZXJvLXRlYXNlci1idXR0b24tY29sb3ItaW52ZXJ0ZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC1kZWVwLWdldCgkYnV0dG9uLXZhcmlhbnRzLCBwcmltYXJ5LCB0ZXh0LWNvbG9yKSAhZGVmYXVsdDtcbiRoZXJvLXRlYXNlci1idXR0b24tYm9yZGVyLWNvbG9yLWludmVydGVkOiAgICAgICAgICAgICAgICAgICAgICAgIG1hcC1kZWVwLWdldCgkYnV0dG9uLXZhcmlhbnRzLCBwcmltYXJ5LCBib3JkZXItY29sb3IpICFkZWZhdWx0O1xuXG4vLyBzZXQgdGhlIGhvdmVyIHN0YXRlIGZvciBgLmMtaGVyby10ZWFzZXItLWludmVydGVkYFxuJGhlcm8tdGVhc2VyLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyLWludmVydGVkOiAgICAgICAgICAgICAgbWFwLWRlZXAtZ2V0KCRidXR0b24tdmFyaWFudHMsIHByaW1hcnksIGJhY2tncm91bmQtaG92ZXIpICFkZWZhdWx0O1xuJGhlcm8tdGVhc2VyLWJ1dHRvbi1jb2xvci1ob3Zlci1pbnZlcnRlZDogICAgICAgICAgICAgICAgICAgICAgICAgbWFwLWRlZXAtZ2V0KCRidXR0b24tdmFyaWFudHMsIHByaW1hcnksIHRleHQtY29sb3IpICFkZWZhdWx0O1xuJGhlcm8tdGVhc2VyLWJ1dHRvbi1ib3JkZXItY29sb3ItaG92ZXItaW52ZXJ0ZWQ6ICAgICAgICAgICAgICAgICAgbWFwLWRlZXAtZ2V0KCRidXR0b24tdmFyaWFudHMsIHByaW1hcnksIGJvcmRlci1jb2xvcikgIWRlZmF1bHQ7XG5cbi8vIHNldCB0aGUgZm9jdXMgc3RhdGUgZm9yIGAuYy1oZXJvLXRlYXNlci0taW52ZXJ0ZWRgXG4kaGVyby10ZWFzZXItYnV0dG9uLWJhY2tncm91bmQtY29sb3ItZm9jdXMtaW52ZXJ0ZWQ6ICAgICAgICAgICAgICAkaGVyby10ZWFzZXItYnV0dG9uLWJhY2tncm91bmQtY29sb3ItaG92ZXItaW52ZXJ0ZWQgIWRlZmF1bHQ7XG4kaGVyby10ZWFzZXItYnV0dG9uLWNvbG9yLWZvY3VzLWludmVydGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAkaGVyby10ZWFzZXItYnV0dG9uLWNvbG9yLWhvdmVyLWludmVydGVkICFkZWZhdWx0O1xuJGhlcm8tdGVhc2VyLWJ1dHRvbi1ib3JkZXItY29sb3ItZm9jdXMtaW52ZXJ0ZWQ6ICAgICAgICAgICAgICAgICAgJGhlcm8tdGVhc2VyLWJ1dHRvbi1ib3JkZXItY29sb3ItaG92ZXItaW52ZXJ0ZWQgIWRlZmF1bHQ7XG5cbi8vIHNldCB0aGUgYWN0aXZlIHN0YXRlIGZvciBgLmMtaGVyby10ZWFzZXItLWludmVydGVkYFxuJGhlcm8tdGVhc2VyLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZS1pbnZlcnRlZDogICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kaGVyby10ZWFzZXItYnV0dG9uLWNvbG9yLWFjdGl2ZS1pbnZlcnRlZDogICAgICAgICAgICAgICAgICAgICAgICBtYXAtZGVlcC1nZXQoJGJ1dHRvbi12YXJpYW50cywgcHJpbWFyeSwgbGluay10ZXh0LWNvbG9yKSAhZGVmYXVsdDtcbiRoZXJvLXRlYXNlci1idXR0b24tYm9yZGVyLWNvbG9yLWFjdGl2ZS1pbnZlcnRlZDogICAgICAgICAgICAgICAgIG1hcC1kZWVwLWdldCgkYnV0dG9uLXZhcmlhbnRzLCBwcmltYXJ5LCBib3JkZXItY29sb3ItYWN0aXZlKSAhZGVmYXVsdDtcblxuJGhlcm8tdGVhc2VyLWJ1dHRvbi1saW5rLWRlZmF1bHQtYmFja2dyb3VuZC1jb2xvci1ob3Zlci1pbnZlcnRlZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kaGVyby10ZWFzZXItYnV0dG9uLWxpbmstZGVmYXVsdC1ib3JkZXItY29sb3ItaG92ZXItaW52ZXJ0ZWQ6ICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRoZXJvLXRlYXNlci1idXR0b24tbGluay1kZWZhdWx0LWJvcmRlci1ib3R0b20taG92ZXItaW52ZXJ0ZWQ6ICAgIDFweCBzb2xpZCAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG5cbiRoZXJvLXRlYXNlci1iYWNrZ3JvdW5kLXZpZGVvLWljb246ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLXBhdXNlKSAhZGVmYXVsdDtcbiRoZXJvLXRlYXNlci1iYWNrZ3JvdW5kLXZpZGVvLWljb24tcGF1c2VkOiAgICAgICAgICAgICAgICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLXBsYXkpICFkZWZhdWx0O1xuJGhlcm8tdGVhc2VyLWJhY2tncm91bmQtdmlkZW8tY29udHJvbC1yaWdodDogICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kaGVyby10ZWFzZXItYmFja2dyb3VuZC12aWRlby1jb250cm9sLWJvdHRvbTogICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcblxuJGhlcm8tdGVhc2VyLWxheWVyLWNvbnRlbnQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJMQUNLICFkZWZhdWx0O1xuJGhlcm8tdGVhc2VyLWxheWVyLXBvc2l0aW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRoZXJvLXRlYXNlci1sYXllci1wb3NpdGlvbi1jb250ZW50LWJyZWFrOiAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlICFkZWZhdWx0O1xuJGhlcm8tdGVhc2VyLWxheWVyLXNwYWNpbmctdG9wOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kaGVyby10ZWFzZXItbGF5ZXItYWxpZ25tZW50OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZW50ZXIgIWRlZmF1bHQ7XG4kaGVyby10ZWFzZXItbGF5ZXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZ2JhKCRDT0xPUi1XSElURSwgJE9QQUNJVFktSElHSEVTVCkgIWRlZmF1bHQ7XG4kaGVyby10ZWFzZXItbGF5ZXItYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGhlcm8tdGVhc2VyLWxheWVyLWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtXCIgIWRlZmF1bHQ7XG4kaGVyby10ZWFzZXItbGF5ZXItc2hhZG93OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGhlcm8tdGVhc2VyLWxheWVyLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kaGVyby10ZWFzZXItbGF5ZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAlICFkZWZhdWx0O1xuXG4vLyBJbnN0ZWFkIG9mIG92ZXJ3cml0aW5nIGAkaGVyby10ZWFzZXItY29udGVudGAgdG8gY3VzdG9taXplIHRoZSBkaWZmZXJlbnRcbi8vIGNvbnRlbnQgZWxlbWVudHMsIHlvdSBjYW4gb3ZlcndyaXRlIG9ubHkgY2VydGFpbiB2YWx1ZXMgYnkgZGVmaW5pbmcgdGhlXG4vLyB2YXJpYWJsZSBgJGhlcm8tdGVhc2VyLWNvbnRlbnQtb3ZlcndyaXRlc2AgaW4gdGhlIGJyYW5kJ3Mgc2V0dGluZ3MgZmlsZS5cbiRoZXJvLXRlYXNlci1jb250ZW50LW92ZXJ3cml0ZXM6ICgpICFkZWZhdWx0O1xuJGhlcm8tdGVhc2VyLWNvbnRlbnQ6IChcbiAgICBsYXllcjogKFxuICAgICAgICBwYWRkaW5nLWxlZnQ6ICAgJGhlcm8tdGVhc2VyLWxheWVyLXNwYWNpbmcsXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICAkaGVyby10ZWFzZXItbGF5ZXItc3BhY2luZyxcbiAgICAgICAgbWFyZ2luLXRvcDogICAgIG51bGwsXG4gICAgKSxcbiAgICB0aXRsZTogKFxuICAgICAgICBtYXgtd2lkdGg6ICAgICAgJGhlcm8tdGVhc2VyLWNvbnRlbnQtZGVmYXVsdC1tYXgtd2lkdGgsXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICAkaGVyby10ZWFzZXItY29udGVudC1kZWZhdWx0LW1hcmdpbi1ib3R0b20sXG4gICAgKSxcbiAgICB0aXRsZS1yb3c6IChcbiAgICAgICAgZm9udC1zaXplOiAgICAgICRGUzYsXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAgICBudWxsLFxuICAgICAgICBmb250LXdlaWdodDogICAgbnVsbCxcbiAgICAgICAgcGFkZGluZy10b3A6ICAgICRoZXJvLXRlYXNlci1jb250ZW50LWRlZmF1bHQtcGFkZGluZy12ZXJ0aWNhbCxcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAgICRoZXJvLXRlYXNlci1jb250ZW50LWRlZmF1bHQtcGFkZGluZy1ob3Jpem9udGFsLFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGhlcm8tdGVhc2VyLWNvbnRlbnQtZGVmYXVsdC1wYWRkaW5nLXZlcnRpY2FsLFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAgJGhlcm8tdGVhc2VyLWNvbnRlbnQtZGVmYXVsdC1wYWRkaW5nLWhvcml6b250YWwsXG4gICAgICAgIGJhY2tncm91bmQ6ICAgICAkaGVyby10ZWFzZXItY29udGVudC1kZWZhdWx0LWJhY2tncm91bmQsXG4gICAgICAgIGNvbG9yOiAgICAgICAgICAkaGVyby10ZWFzZXItY29udGVudC1kZWZhdWx0LXRleHQtY29sb3IsXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICBudWxsLFxuICAgICksXG4gICAgcHJldGl0bGU6IChcbiAgICAgICAgZm9udC1zaXplOiAgICAgICRGUzMsXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAgICBudWxsLFxuICAgICAgICBmb250LXdlaWdodDogICAgbnVsbCxcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG51bGwsXG4gICAgICAgIG1heC13aWR0aDogICAgICAkaGVyby10ZWFzZXItY29udGVudC1kZWZhdWx0LW1heC13aWR0aCxcbiAgICAgICAgcGFkZGluZy10b3A6ICAgICRoZXJvLXRlYXNlci1jb250ZW50LWRlZmF1bHQtcGFkZGluZy12ZXJ0aWNhbCxcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAgICRoZXJvLXRlYXNlci1jb250ZW50LWRlZmF1bHQtcGFkZGluZy1ob3Jpem9udGFsLFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGhlcm8tdGVhc2VyLWNvbnRlbnQtZGVmYXVsdC1wYWRkaW5nLXZlcnRpY2FsLFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAgJGhlcm8tdGVhc2VyLWNvbnRlbnQtZGVmYXVsdC1wYWRkaW5nLWhvcml6b250YWwsXG4gICAgICAgIGJhY2tncm91bmQ6ICAgICAkaGVyby10ZWFzZXItY29udGVudC1kZWZhdWx0LWJhY2tncm91bmQsXG4gICAgICAgIGNvbG9yOiAgICAgICAgICAkaGVyby10ZWFzZXItY29udGVudC1kZWZhdWx0LXRleHQtY29sb3IsXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICAkaGVyby10ZWFzZXItY29udGVudC1kZWZhdWx0LW1hcmdpbi1ib3R0b20sXG4gICAgKSxcbiAgICBzdWJ0aXRsZTogKFxuICAgICAgICBmb250LXNpemU6ICAgICAgJEZTMyxcbiAgICAgICAgbGluZS1oZWlnaHQ6ICAgIG51bGwsXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAgICBudWxsLFxuICAgICAgICBtYXgtd2lkdGg6ICAgICAgJGhlcm8tdGVhc2VyLWNvbnRlbnQtZGVmYXVsdC1tYXgtd2lkdGgsXG4gICAgICAgIHBhZGRpbmctdG9wOiAgICAkaGVyby10ZWFzZXItY29udGVudC1kZWZhdWx0LXBhZGRpbmctdmVydGljYWwsXG4gICAgICAgIHBhZGRpbmctbGVmdDogICAkaGVyby10ZWFzZXItY29udGVudC1kZWZhdWx0LXBhZGRpbmctaG9yaXpvbnRhbCxcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRoZXJvLXRlYXNlci1jb250ZW50LWRlZmF1bHQtcGFkZGluZy12ZXJ0aWNhbCxcbiAgICAgICAgcGFkZGluZy1yaWdodDogICRoZXJvLXRlYXNlci1jb250ZW50LWRlZmF1bHQtcGFkZGluZy1ob3Jpem9udGFsLFxuICAgICAgICBiYWNrZ3JvdW5kOiAgICAgJGhlcm8tdGVhc2VyLWNvbnRlbnQtZGVmYXVsdC1iYWNrZ3JvdW5kLFxuICAgICAgICBjb2xvcjogICAgICAgICAgJGhlcm8tdGVhc2VyLWNvbnRlbnQtZGVmYXVsdC10ZXh0LWNvbG9yLFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAgJGhlcm8tdGVhc2VyLWNvbnRlbnQtZGVmYXVsdC1tYXJnaW4tYm90dG9tLFxuICAgICksXG4gICAgdGV4dDogKFxuICAgICAgICBmb250LXNpemU6ICAgICAgJEZTMCxcbiAgICAgICAgbGluZS1oZWlnaHQ6ICAgIG51bGwsXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAgICBudWxsLFxuICAgICAgICBtYXgtd2lkdGg6ICAgICAgJGhlcm8tdGVhc2VyLWNvbnRlbnQtZGVmYXVsdC1tYXgtd2lkdGgsXG4gICAgICAgIHBhZGRpbmctdG9wOiAgICAkaGVyby10ZWFzZXItY29udGVudC1kZWZhdWx0LXBhZGRpbmctdmVydGljYWwsXG4gICAgICAgIHBhZGRpbmctbGVmdDogICAkaGVyby10ZWFzZXItY29udGVudC1kZWZhdWx0LXBhZGRpbmctaG9yaXpvbnRhbCxcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRoZXJvLXRlYXNlci1jb250ZW50LWRlZmF1bHQtcGFkZGluZy12ZXJ0aWNhbCxcbiAgICAgICAgcGFkZGluZy1yaWdodDogICRoZXJvLXRlYXNlci1jb250ZW50LWRlZmF1bHQtcGFkZGluZy1ob3Jpem9udGFsLFxuICAgICAgICBiYWNrZ3JvdW5kOiAgICAgJGhlcm8tdGVhc2VyLWNvbnRlbnQtZGVmYXVsdC1iYWNrZ3JvdW5kLFxuICAgICAgICBjb2xvcjogICAgICAgICAgJGhlcm8tdGVhc2VyLWNvbnRlbnQtZGVmYXVsdC10ZXh0LWNvbG9yLFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAgJGhlcm8tdGVhc2VyLWNvbnRlbnQtZGVmYXVsdC1tYXJnaW4tYm90dG9tLFxuICAgICksXG4gICAgYnV0dG9uOiAoXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICBudWxsLFxuICAgICAgICBtYXJnaW4tdG9wOiAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQsXG4gICAgKSxcbikgIWRlZmF1bHQ7XG5cbi8vIERlZXAtbWVyZ2UgY29udGVudCBjb25maWd1cmF0aW9uIHdpdGggb3ZlcndyaXRlcyB1cCB0byBhIGRlcHRoIG9mIDJcbiRoZXJvLXRlYXNlci1jb250ZW50LW1lcmdlZDogbWFwLWRlZXAtbWVyZ2UoJGhlcm8tdGVhc2VyLWNvbnRlbnQsICRoZXJvLXRlYXNlci1jb250ZW50LW92ZXJ3cml0ZXMsIDIpICFkZWZhdWx0O1xuXG4kaGVyby10ZWFzZXItY29udGVudC1pbnZlcnRlZDogKFxuICAgIHRpdGxlLXJvdzogKFxuICAgICAgICBjb2xvcjogJGhlcm8tdGVhc2VyLWNvbnRlbnQtZGVmYXVsdC10ZXh0LWNvbG9yLWludmVydGVkXG4gICAgKSxcbiAgICBwcmV0aXRsZTogKFxuICAgICAgICBjb2xvcjogJGhlcm8tdGVhc2VyLWNvbnRlbnQtZGVmYXVsdC10ZXh0LWNvbG9yLWludmVydGVkXG4gICAgKSxcbiAgICBzdWJ0aXRsZTogKFxuICAgICAgICBjb2xvcjogJGhlcm8tdGVhc2VyLWNvbnRlbnQtZGVmYXVsdC10ZXh0LWNvbG9yLWludmVydGVkXG4gICAgKSxcbiAgICB0ZXh0OiAoXG4gICAgICAgIGNvbG9yOiAkaGVyby10ZWFzZXItY29udGVudC1kZWZhdWx0LXRleHQtY29sb3ItaW52ZXJ0ZWRcbiAgICApLFxuKSAhZGVmYXVsdDtcblxuLy8gUHJvdmlkZSBmb2N1cyBwb2ludHMgZm9yIHRoZSBoZXJvLXRlYXNlciBpbWFnZSB0byBjaG9zZSBmcm9tLiBNYWtlIHN1cmUgdG9cbi8vIGFkaGVyZSB0byBgW3ktYXhpc10tW3gtYXhpc11gIG5vdGF0aW9uLlxuLy8gQFRPRE86IGBjZW50ZXItY2VudGVyYCBtaXNzaW5nP1xuJGhlcm8tdGVhc2VyLWZvY3VzLXBvaW50czogKFxuICAgIFwidG9wLWNlbnRlclwiLFxuICAgIFwidG9wLWxlZnRcIixcbiAgICBcInRvcC1yaWdodFwiLFxuICAgIFwiY2VudGVyLWxlZnRcIixcbiAgICBcImNlbnRlci1yaWdodFwiLFxuICAgIFwiYm90dG9tLWNlbnRlclwiLFxuICAgIFwiYm90dG9tLWxlZnRcIixcbiAgICBcImJvdHRvbS1yaWdodFwiLFxuKSAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gIFJlZmVyZW5jZSBmb3IgdGhlIGAuYy1oZXJvLXRlYXNlcl9faW1hZ2VgLlxuICogWzJdICBQcmVwYXJlIGZvciB3b3JzdCBjYXNlOiBJZiB0aGUgdGV4dCBjb250ZW50IGRvZXMgbm90IGZpdCB0aGUgaGVyby10ZWFzZXJcbiAqICAgICAgY29udGFpbmVyLCBhdCBsZWFzdCBjdXQgb2ZmIGl0cyBvdmVyZmxvdy5cbiAqIFszXSAgUHJvdmlkZSBhbmNob3IgcG9pbnQgbW9kaWZpZXJzIGZvciB0aGUgaGVyby10ZWFzZXIgaW1hZ2UuXG4gKiBbNF0gIEJ5IGRlZmF1bHQsIHdoZW4gdGhlIGltYWdlIGlzIGNyb3BwZWQgaW5zaWRlIHRoZSBoZXJvLXRlYXNlclxuICogICAgICBjb250YWluZXIsIGNyb3AgaXQgZnJvbSB0aGUgZGVhZCBjZW50ZXIuXG4gKiBbNV0gIEFsd2F5cyBmaWxsIHRoZSBlbnRpcmUgaGVyby10ZWFzZXIgY29udGFpbmVyIHdpdGggdGhlIGltYWdlLlxuICogWzZdICBPdmVycmlkZSBzdGFuZGFyZCBiZWhhdmlvdXIsIHNvIHRoZSBpbWFnZSBjYW4gYmxlZWQgb3V0IG92ZXIgdGhlXG4gKiAgICAgIHZpZXdwb3J0IGVkZ2VzLlxuICogWzddICBUaGUgaGVybyBpbWFnZSBzaG91bGQgbm90IHJlc2VydmUgYW55IGhlaWdodCwgaWYgYC5jLWhlcm8tdGVhc2VyLS1hdXRvYCxcbiAgICAgICAgc2luY2UgdGhlIGNvbnRlbnQgY29udHJvbHMgdGhlIGhlaWdodCBpbiB0aGlzIGNhc2UuXG4gKiBbOF0gIFNldCBwb3NpdGlvbiB0byBgcmVsYXRpdmVgIHNvIGl0IHJlc2VydmVzIHRoZSBuZWNlc3NhcnkgaGVpZ2h0LlxuICogWzldICBQcm92aWRlIHRoZSBjb3JyZWN0IHNwYWNpbmcgYmV0d2VlbiB0aGUgcGFnZS1oZWFkIChpLmUuIGxvZ28pIGFuZCB0aGVcbiAqICAgICAgaGVyby10ZWFzZXIgY29udGVudC5cbiAqIFsxMF0gUG9zaXRpb24gY29udGVudCBvbiB0b3Agb2YgaW1hZ2UuXG4gKiBbMTFdIFJlc2V0IGRlZmF1bHQgc3BhY2luZy5cbiAqIFsxMl0gU2luY2UgdGhlIGNvbnRlbnQgZGVmaW5lcyB0aGUgaGVpZ2h0IG9mIHRoZSBoZXJvIGltYWdlIGZvclxuICogICAgICBgLmMtaGVyby10ZWFzZXItLWF1dG9gIGFuZCBgYy1oZXJvLXRlYXNlci0tbGF5ZXJgLCBjZW50ZXJpbmcgdGhlIGNvbnRlbnRcbiAqICAgICAgZG9lcyBub3QgbWFrZSBzZW5zZS5cbiAqIFsxM10gUHJvdmlkZSBmYWxsYmFjayBmb3IgZXhpc3RpbmcgYnIgdGFncyBiZXR3ZWVuIHRpdGxlX3JvdyBzcGFucy5cbiAqIFsxNF0gSWYgYWN0aXZhdGVkIChieSBkZWZhdWx0KSwgYWxpZ24gY29udGVudCBob3Jpem9udGFsbHkgd2l0aCBnbG9iYWxcbiAqICAgICAgcGFnZSB3cmFwLlxuICogWzE1XSBGaXhlcyBhIHZlcnRpY2FsIG9mZnNldCB3aGVuIGAkaGVyby10ZWFzZXItY29udGVudC1kZWZhdWx0LW1hcmdpbi1ib3R0b21gIGlzIHNldC5cbiAqICAgICAgVGhlIGBtYXJnaW4tYm90dG9tYCBvZiB0aGUgbGFzdCBjaGlsZCBvZiBgLmMtaGVyby10ZWFzZXJfX2hlYWRpbmdgIGNyZWF0ZXNcbiAqICAgICAgYW4gZXh0cmEgc3BhY2UgYW5kIHRodXMgaXMgcmVzZXQgaGVyZS5cbiAqIFsxNl0gU2V0IG9wdGlvbmFsIG1heCB3aWR0aCBhbmQgY2VudGVyIGhlcm8gdGVhc2VyIGhvcml6b250YWxseS5cbiAqIFsxN10gU2V0IGludmVydGVkIHZhcmlhbnQgYnV0dG9uIHN0eWxlcy5cbiAqIFsxOF0gU3RyZXRjaCB0aGUgbWVkaWEgZWxlbWVudCB0byB0aGUgd2hvbGUgdmlld3BvcnQgd2lkdGguXG4gKiBbMTldIFBsYWNlIHRoZSBiYWNrZ3JvdW5kLXZpZGVvIGNvbnRyb2xzIG9uIHRvcCBvZiB0aGUgaGVybyB0ZWFzZXJcbiAqICAgICAgbWVkaWEgYW5kIHBvc2l0aW9uIGl0IGFjY29yZGluZ2x5LlxuICogWzIwXSBEaXNhYmxlIHBvaW50ZXIgZXZlbnRzIGZvciB0aGUgY29udGVudCBlbGVtZW50IHNvIHRoYXQgdGhlIHZpZGVvIGNvbnRyb2xzXG4gKiAgICAgIGNhbiByZWNlaXZlIGV2ZW50cyBidXQgZW5hYmxlIGl0IGZvciBjb250ZW50IGhlYWRpbmcgYW5kIGNvbnRlbnQgYnV0dG9uIGNoaWxkcmVuLlxuICogWzIxXSBNYWtlIHN1cmUgdGhlIGltYWdlIGRvZXMgbm90IHN0cmV0Y2ggaW4gcmVsYXRpb24gdG8gdGhlIGhlcm8gdGVhc2VyIGxheWVyIHdoZW5cbiAqICAgICAgZXhwYW5kaW5nIGluIHZhcmlhbnQgYGMtaGVyby10ZWFzZXItLWxheWVyYC5cbiAqIFsyMl0gUG9zaXRpb24gdGhlIGNvbnRlbnQgaW4gdGhlIHZhcmlhbnQgYGMtaGVyby10ZWFzZXItLWxheWVyYCBiZWxvdyB0aGUgaGVyb1xuICogICAgICBpbWFnZSBvbiBzbWFsbCBzY3JlZW5zLlxuICogWzIzXSBUaGUgdmFyaWFudCBgYy1oZXJvLXRlYXNlci0tbGF5ZXJgIG5lZWRzIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGluIG9yZGVyIHRvXG4gKiAgICAgIHB1c2ggdGhlIGNvbnRlbnQgZG93bndhcmRzIHdoZW4gZXhwYW5kaW5nLlxuICogWzI0XSBUaGUgbGF5ZXIgc2hvdWxkIGFsd2F5cyBgJGhlcm8tdGVhc2VyLWxheWVyLXdpZHRoYCwgIHVubGVzcyBhIGRpZmZlcmVudFxuICogICAgICB3aWR0aCBpcyBzcGVjaWZpZWQgdmlhIGBbZGF0YS1oZXJvLXRlYXNlci1sYXllci1zaXplXWAgZm9yIGxhcmdlciB2aWV3cG9ydHMuXG4gKiBbMjVdIE1ha2Ugc3VyZSB0aGF0IHRoZSBsYXllciBuZXZlciBleGNlZWRzIHRoZSB3aWR0aCBvZiB0aGUgaGVybyB0ZWFzZXIuXG4gKiBbMjZdIEFkZCBzcGFjaW5nIGJldHdlZW4gaGVhZGVyIGFuZCBsYXllciBjb250ZW50LlxuICogWzI3XSBFbnN1cmUgdGhhdCB0aGUgaW1hZ2UgaGVpZ2h0IGRvZXMgbm90IGV4Y2VlZCB0aGUgb3V0ZXIgd3JhcHBlci5cbiAqIFsyOF0gRW5zdXJlIHRoYXQgdGhlIGxheWVyIGNvbnRlbnQgaXMgc2V0IHdpdGhpbiB0aGUgcGFnZS13cmFwLlxuICogWzI5XSBBZGQgdmFyaWFibGUgdG8gc2V0IGZsZXgtYWxpZ25tZW50LlxuICogWzMwXSBBZGQgc3BhY2UgYmV0d2VlbiBsYXllciBhbmQgcHJldmlvdXMgZWxlbWVudCAoZS5nLiBgLmMtaGVyby10ZWFzZXJfX2hlYWRpbmdgKS5cbiAqIFszMV0gUmVtb3ZlIGJvdHRvbSBtYXJnaW4gZnJvbSBsYXN0IGxheWVyIGNoaWxkIGVsZW1lbnQgKGUuZy4gYDxwPmApLlxuICogWzMyXSBJbnZva2UgY29sb3JzIHdoZW4gbGF5ZXIgYW5kIGludmVydGVkIHZhcmlhbnQgYXJlIGNvbWJpbmVkLlxuICovXG4uYy1oZXJvLXRlYXNlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbMV0gKi9cbiAgICBvdmVyZmxvdzogaGlkZGVuOyAvKiBbMl0gKi9cbiAgICBiYWNrZ3JvdW5kOiAkaGVyby10ZWFzZXItYmFja2dyb3VuZDtcblxuICAgIEBpZiAoJGhlcm8tdGVhc2VyLW1heC13aWR0aCkge1xuICAgICAgICBtYXgtd2lkdGg6ICRoZXJvLXRlYXNlci1tYXgtd2lkdGg7IC8qIFsxNl0gKi9cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyAvKiBbMTZdICovXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyAvKiBbMTZdICovXG4gICAgfVxuXG4gICAgJi5jLWhlcm8tdGVhc2VyLS1sYXllciB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXCJtaW4taGVpZ2h0XCIsICRoZXJvLXRlYXNlci1oZWlnaHQpOyAvKiBbMjddICovXG4gICAgfVxufVxuXG4gICAgLmMtaGVyby10ZWFzZXJfX2JhY2tncm91bmQtdmlkZW8ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IHooXCJoZXJvLXRlYXNlci1pbWFnZVwiKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7IC8qIFsxOF0gKi9cblxuICAgICAgICB2aWRlbyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBvYmplY3QtZml0KCk7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFwiaGVpZ2h0XCIsICRoZXJvLXRlYXNlci1oZWlnaHQpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7IC8qIFsxOF0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtaGVyby10ZWFzZXJfX2JhY2tncm91bmQtdmlkZW8tY29udHJvbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLyogWzE5XSAqL1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRoZXJvLXRlYXNlci1jb250ZW50LWJyZWFrfVwiKSB7XG4gICAgICAgICAgICBib3R0b206IDUwJTsgLyogWzE5XSAqL1xuICAgICAgICAgICAgcmlnaHQ6IDUwJTsgLyogWzE5XSAqL1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1MCUsIDUwJSwgMCk7XG5cbiAgICAgICAgICAgICY6bm90KC5pcy1wYXVzZWQpIHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPiN7JGhlcm8tdGVhc2VyLWNvbnRlbnQtYnJlYWt9XCIpIHtcbiAgICAgICAgICAgIGJvdHRvbTogJGhlcm8tdGVhc2VyLWJhY2tncm91bmQtdmlkZW8tY29udHJvbC1ib3R0b207IC8qIFsxOV0gKi9cbiAgICAgICAgICAgIHJpZ2h0OiAkaGVyby10ZWFzZXItYmFja2dyb3VuZC12aWRlby1jb250cm9sLXJpZ2h0OyAvKiBbMTldICovXG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCguaXMtcGF1c2VkKSB7XG4gICAgICAgICAgICAtLXBsYXktYnV0dG9uLWljb246ICN7JGhlcm8tdGVhc2VyLWJhY2tncm91bmQtdmlkZW8taWNvbn07XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLXBhdXNlZCB7XG4gICAgICAgICAgICAtLXBsYXktYnV0dG9uLWljb246ICN7JGhlcm8tdGVhc2VyLWJhY2tncm91bmQtdmlkZW8taWNvbi1wYXVzZWR9O1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1oZXJvLXRlYXNlcl9faW1hZ2Uge1xuICAgICAgICBAaW5jbHVkZSBvYmplY3QtZml0KCk7IC8qIFszXSBbNF0gKi9cbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcImhlaWdodFwiLCAkaGVyby10ZWFzZXItaGVpZ2h0KTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiB6KFwiaGVyby10ZWFzZXItaW1hZ2VcIik7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDEwMCU7IC8qIFs1XSAqL1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7IC8qIFs2XSAqL1xuXG4gICAgICAgIC5jLWhlcm8tdGVhc2VyLS1zaGFsbG93ICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcImhlaWdodFwiLCAkaGVyby10ZWFzZXItc2hhbGxvdy1oZWlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtaGVyby10ZWFzZXItLWF1dG8gJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFwiaGVpZ2h0XCIsICRoZXJvLXRlYXNlci1hdXRvLWhlaWdodCk7IC8qIFs2XSAqL1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIj4jeyRoZXJvLXRlYXNlci1jb250ZW50LWJyZWFrfVwiKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyAvKiBbN10gKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWhlcm8tdGVhc2VyLS1sYXllciAmIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLyogWzIxXSAqL1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjwjeyRoZXJvLXRlYXNlci1jb250ZW50LWJyZWFrfVwiKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246ICRoZXJvLXRlYXNlci1sYXllci1wb3NpdGlvbi1jb250ZW50LWJyZWFrOyAvKiBbMjJdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRfZm9jdXMtcG9pbnQgaW4gJGhlcm8tdGVhc2VyLWZvY3VzLXBvaW50cyB7IC8qIFszXSAqL1xuICAgICAgICAgICAgJF9wb3NpdGlvbjogc3RyLXJlcGxhY2UoJF9mb2N1cy1wb2ludCwgXCItXCIsIFwiIFwiKTtcblxuICAgICAgICAgICAgLmMtaGVyby10ZWFzZXItLSN7JF9mb2N1cy1wb2ludH0gJiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgb2JqZWN0LWZpdCgkb2JqZWN0LXBvc2l0aW9uOiAjeyRfcG9zaXRpb259KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAvLyBAVE9ETzogQlJPTi04NTU5XG4gICAgLy8gVGhpcyBpcyAoY3VycmVudGx5KSBibHVlbGFiZWwgc3BlY2lmaWMuIEV4dHJhY3QgdG8gYnJhbmQgc3BlY2lmaWMgc3R5bGVzLFxuICAgIC8vIHNhdmUgb3V0cHV0IGZvciBwYWNrYWdlcyB0aGF0IGRvIG5vdCBuZWVkIGl0LlxuICAgIC5jLWhlcm8tdGVhc2VyX19wbGF5LWJ1dHRvbiB7XG5cbiAgICAgICAgJi5jLWhlcm8tdGVhc2VyX19wbGF5LWJ1dHRvbi0tdmlkZW8ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgei1pbmRleDogeihcImhlcm8tdGVhc2VyLXBsYXktYnV0dG9uXCIpO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG5cbiAgICAgICAgICAgIC8vIFNhZmVndWFyZCB0byBjaGVjayBpZiB0ZWFzZXItaGVpZ2h0IGlzIGNvbmZpZ3VyZWQgdmlhIG1hcFxuICAgICAgICAgICAgQGlmICh0eXBlLW9mKCRoZXJvLXRlYXNlci1oZWlnaHQpID09IG1hcCkge1xuICAgICAgICAgICAgICAgIC8vIFNhZmVndWFyZCB0byBjaGVjayBpZiBjb250ZW50LWJyZWFrIGlzIHNldCBmb3IgdGVhc2VyLWhlaWdodC4uLlxuICAgICAgICAgICAgICAgIEBpZiAobWFwLWhhcy1rZXkoJGhlcm8tdGVhc2VyLWhlaWdodCwgJGhlcm8tdGVhc2VyLWNvbnRlbnQtYnJlYWspKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogKG1hcC1nZXQoJGhlcm8tdGVhc2VyLWhlaWdodCwgJGhlcm8tdGVhc2VyLWNvbnRlbnQtYnJlYWspICogMC41KTtcbiAgICAgICAgICAgICAgICAvLyAuLi5vdGhlcndpc2UgdXNlIFwiZGVmYXVsdFwiIC8gXCJmYWxsYmFja1wiIHZhbHVlIGBudWxsYFxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IChtYXAtZ2V0KCRoZXJvLXRlYXNlci1oZWlnaHQsIG51bGwpICogMC41KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICB0b3A6ICgkaGVyby10ZWFzZXItaGVpZ2h0ICogMC41KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI+I3skaGVyby10ZWFzZXItY29udGVudC1icmVha31cIikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmMtaGVyby10ZWFzZXJfX3BsYXktYnV0dG9uLS1tb2RhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skaGVyby10ZWFzZXItY29udGVudC1icmVha31cIikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWhlcm8tdGVhc2VyX19jb250ZW50IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcbiAgICAgICAgICAgIChcInBhZGRpbmctdG9wXCIsICAgICRoZXJvLXRlYXNlci1jb250ZW50LXBhZGRpbmctdG9wKSwgLyogWzldICovXG4gICAgICAgICAgICAoXCJwYWRkaW5nLWJvdHRvbVwiLCAkaGVyby10ZWFzZXItY29udGVudC1wYWRkaW5nLWJvdHRvbSksXG4gICAgICAgICAgICAoXCJiYWNrZ3JvdW5kXCIsICAgICAkaGVyby10ZWFzZXItY29udGVudC1iYWNrZ3JvdW5kKVxuICAgICAgICApO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qIFsxMF0gKi9cbiAgICAgICAgei1pbmRleDogeihcImhlcm8tdGVhc2VyLWNvbnRlbnRcIik7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGhlcm8tdGVhc2VyLWNvbnRlbnQtYnJlYWt9XCIpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogWzhdICovXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkaGVyby10ZWFzZXItY29udGVudC1icmVha3BvaW50LW9mZnNldDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWhlcm8tdGVhc2VyOm5vdCguYy1oZXJvLXRlYXNlci0tYXV0byk6bm90KC5jLWhlcm8tdGVhc2VyLS1sYXllcikgJiB7IC8qIFsxMl0gKi9cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPiN7JGhlcm8tdGVhc2VyLWNvbnRlbnQtYnJlYWt9XCIpIHtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgICAgICAgICBAaWYgKCRoZXJvLXRlYXNlci1jb250ZW50LWFsaWdubWVudCA9PSBcInRvcFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gc2VlIGhlcmVcbiAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkaGVyby10ZWFzZXItY29udGVudC1hbGlnbm1lbnQgPT0gXCJib3R0b21cIikge1xuXG4gICAgICAgICAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkaGVyby10ZWFzZXItY29udGVudC1hbGlnbm1lbnQgPT0gXCJtaWRkbGVcIikge1xuXG4gICAgICAgICAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmMtaGVyby10ZWFzZXItLWF1dG8gJiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRoZXJvLXRlYXNlci1sYXllci1wb3NpdGlvbikge1xuICAgICAgICAgICAgLmMtaGVyby10ZWFzZXItLWxheWVyICYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXCJtaW4taGVpZ2h0XCIsICRoZXJvLXRlYXNlci1oZWlnaHQpOyAvKiBbMjddICovXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbMjNdICovXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogJGhlcm8tdGVhc2VyLWxheWVyLWFsaWdubWVudDsgLyogWzI5XSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmMtaGVyby10ZWFzZXItLXZpZGVvICYge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIFsyMF0gKi9cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LWNvbWJpbmF0b3JzLCBzZWxlY3Rvci1tYXgtY29tcG91bmQtc2VsZWN0b3JzICovXG4gICAgICAgICAgICAuYy1oZXJvLXRlYXNlcl9faGVhZGluZyAqLFxuICAgICAgICAgICAgLmMtaGVyby10ZWFzZXJfX2J1dHRvbiAqIHtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsOyAvKiBbMjBdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jLWhlcm8tdGVhc2VyX19jb250ZW50LWlubmVyIHtcblxuICAgICAgICBAaWYgJGhlcm8tdGVhc2VyLWNvbnRlbnQtdXNlLXBhZ2Utd3JhcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwYWdlLXdyYXAoKTsgLyogWzE0XSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtaGVyby10ZWFzZXItLWxheWVyICYge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7IC8qIFsyOF0gKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jLWhlcm8tdGVhc2VyX19oZWFkaW5nIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAgICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCB7IC8qIFsxMV0gKi9cbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRoZXJvLXRlYXNlci1jb250ZW50LWRlZmF1bHQtbWFyZ2luLWJvdHRvbSkgeyAvKiBbMTVdICovXG4gICAgICAgICAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1oZXJvLXRlYXNlcl9fdGl0bGUgPiAqIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgLmMtaGVyby10ZWFzZXJfX3RpdGxlLXJvdyArIGJyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgLyogWzEzXSAqL1xuICAgIH1cblxuICAgIC5jLWhlcm8tdGVhc2VyX19sYXllciB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1oZXJvLXRlYXNlci1sYXllci13aWR0aCwgI3skaGVyby10ZWFzZXItbGF5ZXItd2lkdGh9KTsgLyogWzI0XSAqL1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IC8qIFsyNV0gKi9cbiAgICAgICAgcGFkZGluZzogJGhlcm8tdGVhc2VyLWxheWVyLXNwYWNpbmc7XG4gICAgICAgIGJveC1zaGFkb3c6ICRoZXJvLXRlYXNlci1sYXllci1zaGFkb3c7XG4gICAgICAgIGJvcmRlcjogJGhlcm8tdGVhc2VyLWxheWVyLWJvcmRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhlcm8tdGVhc2VyLWxheWVyLWJhY2tncm91bmQ7XG5cbiAgICAgICAgKiArICYge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJGhlcm8tdGVhc2VyLWxheWVyLXNwYWNpbmctdG9wOyAvKiBbMzBdICovXG4gICAgICAgIH1cblxuICAgICAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IC8qIFszMV0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICR3aWR0aCwgJHZhbHVlIGluICRoZXJvLXRlYXNlci1sYXllci13aWR0aHMge1xuXG4gICAgICAgICAgICAmW2RhdGEtaGVyby10ZWFzZXItbGF5ZXItc2l6ZT1cIiN7JHdpZHRofVwiXSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI+PSN7JGhlcm8tdGVhc2VyLWxheWVyLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgLS1oZXJvLXRlYXNlci1sYXllci13aWR0aDogI3skdmFsdWV9OyAvKiBbMjRdICovXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eS1tYXAoJGhlcm8tdGVhc2VyLWNvbnRlbnQtbWVyZ2VkLCBcIi5jLWhlcm8tdGVhc2VyX19cIik7XG5cbiAgICBAaWYgKCRoZXJvLXRlYXNlci1pbnZlcnRlZCkge1xuICAgICAgICAuYy1oZXJvLXRlYXNlci0taW52ZXJ0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI+I3skaGVyby10ZWFzZXItY29udGVudC1icmVha31cIikge1xuXG4gICAgICAgICAgICAgICAgLmMtaGVyby10ZWFzZXJfX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5LW1hcCgkaGVyby10ZWFzZXItY29udGVudC1pbnZlcnRlZCwgXCIuYy1oZXJvLXRlYXNlcl9fXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGhlcm8tdGVhc2VyLWNvbnRlbnQtZGVmYXVsdC1jb2xvci1pbnZlcnRlZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuYy1oZXJvLXRlYXNlcl9fbGF5ZXIgeyAvKiBbMzJdICovXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHktbWFwKCRoZXJvLXRlYXNlci1jb250ZW50LW1lcmdlZCwgXCIuYy1oZXJvLXRlYXNlcl9fXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGhlcm8tdGVhc2VyLWxheWVyLWNvbnRlbnQtY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGhlcm8tdGVhc2VyLWludmVydGVkLWJ1dHRvbikgeyAvKiBbMTddICovXG4gICAgICAgICAgICAgICAgICAgICAgICAuYy1idG46bm90KC5jLWhlcm8tdGVhc2VyX19sYXllciAuYy1idG4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRoZXJvLXRlYXNlci1idXR0b24tYm9yZGVyLWNvbG9yLWludmVydGVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZXJvLXRlYXNlci1idXR0b24tYmFja2dyb3VuZC1jb2xvci1pbnZlcnRlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGhlcm8tdGVhc2VyLWJ1dHRvbi1jb2xvci1pbnZlcnRlZDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkaGVyby10ZWFzZXItYnV0dG9uLWJvcmRlci1jb2xvci1ob3Zlci1pbnZlcnRlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhlcm8tdGVhc2VyLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyLWludmVydGVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGhlcm8tdGVhc2VyLWJ1dHRvbi1jb2xvci1ob3Zlci1pbnZlcnRlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGhlcm8tdGVhc2VyLWJ1dHRvbi1ib3JkZXItY29sb3ItZm9jdXMtaW52ZXJ0ZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZXJvLXRlYXNlci1idXR0b24tYmFja2dyb3VuZC1jb2xvci1mb2N1cy1pbnZlcnRlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRoZXJvLXRlYXNlci1idXR0b24tY29sb3ItZm9jdXMtaW52ZXJ0ZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkaGVyby10ZWFzZXItYnV0dG9uLWJvcmRlci1jb2xvci1hY3RpdmUtaW52ZXJ0ZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZXJvLXRlYXNlci1idXR0b24tYmFja2dyb3VuZC1jb2xvci1hY3RpdmUtaW52ZXJ0ZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkaGVyby10ZWFzZXItYnV0dG9uLWNvbG9yLWFjdGl2ZS1pbnZlcnRlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLmMtYnRuLS1saW5rIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRoZXJvLXRlYXNlci1idXR0b24tbGluay1kZWZhdWx0LWJvcmRlci1jb2xvci1ob3Zlci1pbnZlcnRlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJGhlcm8tdGVhc2VyLWJ1dHRvbi1saW5rLWRlZmF1bHQtYm9yZGVyLWJvdHRvbS1ob3Zlci1pbnZlcnRlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhlcm8tdGVhc2VyLWJ1dHRvbi1saW5rLWRlZmF1bHQtYmFja2dyb3VuZC1jb2xvci1ob3Zlci1pbnZlcnRlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jLWhlcm8tdGVhc2VyX19ndWlkaW5nLWxpbmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IHooXCJoZXJvLXRlYXNlci1jb250ZW50XCIpICsgMTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICB9XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjT0JKRUNULUZJVFxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8vLyBPbmx5IGFwcGx5IHBvc2l0aW9uIGlmIGl0IGlzIG5vdCBgY2VudGVyIGNlbnRlcmAgKGRlZmF1bHQpLlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9iamVjdC1maXQgW2NvdmVyXSBvYmplY3QtZml0IG1vZGVcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9iamVjdC1wb3NpdGlvbiBbY2VudGVyIGNlbnRlcl0gcG9zaXRpb24geCB5ICh0b3B8Y2VudGVyfGJvdHRvbSwgbGVmdHxjZW50ZXJ8cmlnaHQpXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaW1wb3J0YW50IFtudWxsXSBVc2UgYCFpbXBvcnRhbnRgIG9uIGRlY2xhcmF0aW9uc1xuQG1peGluIG9iamVjdC1maXQoJG9iamVjdC1maXQ6IGNvdmVyLCAkb2JqZWN0LXBvc2l0aW9uOiBudWxsLCAkaW1wb3J0YW50OiBmYWxzZSkge1xuICAgIG9iamVjdC1maXQ6IGltcG9ydGFudCgkb2JqZWN0LWZpdCwgJGltcG9ydGFudCk7XG4gICAgb2JqZWN0LXBvc2l0aW9uOiBpbXBvcnRhbnQoJG9iamVjdC1wb3NpdGlvbiwgJGltcG9ydGFudCk7XG59XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjSEVSTy1URUFTRVIgKFNldHRpbmdzKVxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRoZXJvLXRlYXNlci1jb250ZW50LWRlZmF1bHQtbWFyZ2luLWJvdHRvbTogICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJGhlcm8tdGVhc2VyLWNvbnRlbnQtZGVmYXVsdC10ZXh0LWNvbG9yOiAgICAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kaGVyby10ZWFzZXItY29udGVudC1kZWZhdWx0LXRleHQtY29sb3ItaW52ZXJ0ZWQ6ICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kaGVyby10ZWFzZXItY29udGVudC1icmVha3BvaW50LW9mZnNldDogICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kaGVyby10ZWFzZXItbGF5ZXItc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULUxBUkdFICFkZWZhdWx0O1xuJGhlcm8tdGVhc2VyLWxheWVyLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAkR0xPQkFMLUJPUkRFUi1SQURJVVMgIWRlZmF1bHQ7XG4kaGVyby10ZWFzZXItbGF5ZXItYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgIDFweCBzb2xpZCAkQ09MT1ItQk9SREVSICFkZWZhdWx0O1xuXG4kaGVyby10ZWFzZXItY29udGVudC1vdmVyd3JpdGVzOiAoXG4gICAgbGF5ZXI6IChcbiAgICAgICAgYm9yZGVyLXJhZGl1czogICRoZXJvLXRlYXNlci1sYXllci1ib3JkZXItcmFkaXVzLFxuICAgICksXG4gICAgdGl0bGUtcm93OiAoXG4gICAgICAgIGZvbnQtc2l6ZTogICAgICAkRlM0LFxuICAgICAgICBsaW5lLWhlaWdodDogICAgMSxcbiAgICApLFxuICAgIHByZXRpdGxlOiAoXG4gICAgICAgIGZvbnQtc2l6ZTogICAgICAkRlMtMyxcbiAgICAgICAgZm9udC13ZWlnaHQ6ICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCxcbiAgICApLFxuICAgIHN1YnRpdGxlOiAoXG4gICAgICAgIGZvbnQtc2l6ZTogICAgICAkRlMxLFxuICAgICksXG4pICFkZWZhdWx0O1xuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0hFUk8tVEVBU0VSXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBbMV0gT24gc21hbGxlciBzY3JlZW5zIHRoZSBpbnZlcnRlZCBjb2xvciBzY2hlbWUgaXMgdXNlZCBmb3IgYWxsIHZhcmlhbnRzLlxuICogWzJdIEJ1dHRvbiBlbGVtZW50cyBzaG91bGQgYmUgYWxpZ25lZCBhdCB0aGUgYm90dG9tLlxuICogWzNdIEVuYWJsZSBncmFkaWVudCBmb3IgZGVmYXVsdCB2YXJpYW50IG9uIGJpZ2dlciBzY3JlZW5zLlxuICogWzRdIEVuYWJsZSBncmFkaWVudCBmb3IgaW52ZXJ0ZWQgdmFyaWFudCBvbiBiaWdnZXIgc2NyZWVucy5cbiAqIFs1XSBTaG93IGFib3ZlIGltYWdlL3ZpZGVvLCBiZWxvdyBjb250ZW50LlxuICogWzZdIFJlZHVjZSB2aWRlbyBoZWlnaHQgb24gc21hbGwgc2NyZWVucy5cbiAqIFs3XSBTZXQgaGVpZ2h0IGZvciB0aGUgb3ZlcmxheSBmb3IgTGF5ZXIgVmFyaWFudCB0byBhdm9pZFxuICogICAgIGV4Y2VlZGluZyB0aGUgaW1hZ2UgaGVpZ2h0LlxuICovXG5cbiRza29kYS1oZXJvLXRlYXNlci1jb250ZW50LWJyZWFrOiAgICAgICAgICAgbSAhZGVmYXVsdDtcbiRza29kYS1oZXJvLXRlYXNlci1jb250ZW50LWNvbG9yLWludmVydGVkOiAgJGhlcm8tdGVhc2VyLWNvbnRlbnQtZGVmYXVsdC10ZXh0LWNvbG9yLWludmVydGVkICFkZWZhdWx0O1xuJHNrb2RhLWhlcm8tdGVhc2VyLWNvbnRlbnQtaW5uZXItd2lkdGg6ICAgICA2MCUgIWRlZmF1bHQ7XG4kc2tvZGEtaGVyby10ZWFzZXItbGV0dGVyLXNwYWNpbmc6ICAgICAgICAgICRHTE9CQUwtRk9OVC1MRVRURVItU1BBQ0lORyAhZGVmYXVsdDtcbiRza29kYS1oZXJvLXRlYXNlci1ncmFkaWVudC1jb2xvcjogICAgICAgICAgJENPTE9SLUJMQUNLICFkZWZhdWx0O1xuJHNrb2RhLWhlcm8tdGVhc2VyLWdyYWRpZW50LWNvbG9yLWludmVydGVkOiAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kc2tvZGEtaGVyby10ZWFzZXItY29udGVudC10ZXh0LXNwYWNpbmc6ICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuXG4kc2tvZGEtaGVyby10ZWFzZXItY29udGVudC1zcGFjaW5nLXRvcDogKFxuICAgIG51bGw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhYTEFSR0UsXG4gICAgJHNrb2RhLWhlcm8tdGVhc2VyLWNvbnRlbnQtYnJlYWs6ICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULUxBUkdFLFxuICAgICRoZXJvLXRlYXNlci1jb250ZW50LWJyZWFrOiAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULFxuKSAhZGVmYXVsdDtcblxuQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGhlcm8tdGVhc2VyLWNvbnRlbnQtYnJlYWt9XCIpIHtcblxuICAgIC5jLWhlcm8tdGVhc2VyIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eS1tYXAoJGhlcm8tdGVhc2VyLWNvbnRlbnQtaW52ZXJ0ZWQsIFwiLmMtaGVyby10ZWFzZXJfX1wiKTsgLyogWzFdICovXG4gICAgICAgIGNvbG9yOiAkc2tvZGEtaGVyby10ZWFzZXItY29udGVudC1jb2xvci1pbnZlcnRlZDtcbiAgICB9XG5cbiAgICAuYy1oZXJvLXRlYXNlcl9fdGl0bGUtcm93IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICB9XG59XG5cbiAgICAuYy1oZXJvLXRlYXNlcl9fY29udGVudCB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXG4gICAgICAgICAgICAoXCJwYWRkaW5nLXRvcFwiLCAkc2tvZGEtaGVyby10ZWFzZXItY29udGVudC1zcGFjaW5nLXRvcCksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLmMtaGVyby10ZWFzZXJfX2NvbnRlbnQtaW5uZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47ICAvKiBbMl0gKi9cbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIC5jLWhlcm8tdGVhc2VyX19wcmV0aXRsZSB7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAkc2tvZGEtaGVyby10ZWFzZXItbGV0dGVyLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLmMtaGVyby10ZWFzZXJfX3RleHQge1xuICAgICAgICBtYXJnaW4tdG9wOiAkc2tvZGEtaGVyby10ZWFzZXItY29udGVudC10ZXh0LXNwYWNpbmc7XG4gICAgfVxuXG4uYy1oZXJvLXRlYXNlci0taW52ZXJ0ZWQge1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHktbWFwKCRoZXJvLXRlYXNlci1jb250ZW50LWludmVydGVkLCBcIi5jLWhlcm8tdGVhc2VyX19cIik7XG4gICAgY29sb3I6ICRza29kYS1oZXJvLXRlYXNlci1jb250ZW50LWNvbG9yLWludmVydGVkO1xufVxuXG4uYy1oZXJvLXRlYXNlcl9fYmFja2dyb3VuZC12aWRlbyB7XG5cbiAgICB2aWRlbyB7XG4gICAgICAgIGhlaWdodDogYXV0bzsgLyogWzZdICovXG4gICAgfVxuXG59XG5cbkBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPiN7JGhlcm8tdGVhc2VyLWNvbnRlbnQtYnJlYWt9XCIpIHtcblxuICAgIC5jLWhlcm8tdGVhc2VyIHtcbiAgICAgICAgLS1oZXJvLXRlYXNlci1vdmVybGF5LWNvbG9yLXN0YXJ0OiAje3JnYmEoJHNrb2RhLWhlcm8tdGVhc2VyLWdyYWRpZW50LWNvbG9yLCAwLjc1KX07XG4gICAgICAgIC0taGVyby10ZWFzZXItb3ZlcmxheS1jb2xvci1lbmQ6ICN7cmdiYSgkc2tvZGEtaGVyby10ZWFzZXItZ3JhZGllbnQtY29sb3IsIDApfTtcblxuICAgICAgICAvLyBPdmVybGF5IGZvciBpbmNyZWFzZWQgY29udHJhc3RcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IHooXCJoZXJvLXRlYXNlci1pbWFnZVwiKSArIDE7IC8qIFs1XSAqL1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1oZXJvLXRlYXNlci1vdmVybGF5LWNvbG9yLXN0YXJ0KSAwLCB2YXIoLS1oZXJvLXRlYXNlci1vdmVybGF5LWNvbG9yLWVuZCkgODAlKTsgLyogWzNdICovXG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYy1oZXJvLXRlYXNlci0tbGF5ZXIge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXCJoZWlnaHRcIiwgJGhlcm8tdGVhc2VyLWhlaWdodCk7IC8qIFs3XSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmMtaGVyby10ZWFzZXItLWludmVydGVkIHtcbiAgICAgICAgLS1oZXJvLXRlYXNlci1vdmVybGF5LWNvbG9yLXN0YXJ0OiAje3JnYmEoJHNrb2RhLWhlcm8tdGVhc2VyLWdyYWRpZW50LWNvbG9yLWludmVydGVkLCAwLjc1KX07XG4gICAgICAgIC0taGVyby10ZWFzZXItb3ZlcmxheS1jb2xvci1lbmQ6ICN7cmdiYSgkc2tvZGEtaGVyby10ZWFzZXItZ3JhZGllbnQtY29sb3ItaW52ZXJ0ZWQsIDApfTtcblxuICAgICAgICAmLmMtaGVyby10ZWFzZXItLWxheWVyIHtcbiAgICAgICAgICAgIC0taGVyby10ZWFzZXItb3ZlcmxheS1jb2xvci1zdGFydDogI3tyZ2JhKCRza29kYS1oZXJvLXRlYXNlci1ncmFkaWVudC1jb2xvci1pbnZlcnRlZCwgMC43NSl9O1xuICAgICAgICAgICAgLS1oZXJvLXRlYXNlci1vdmVybGF5LWNvbG9yLWVuZDogI3tyZ2JhKCRza29kYS1oZXJvLXRlYXNlci1ncmFkaWVudC1jb2xvci1pbnZlcnRlZCwgMCl9O1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cbkBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPj0jeyRza29kYS1oZXJvLXRlYXNlci1jb250ZW50LWJyZWFrfVwiKSB7XG5cbiAgICAuYy1oZXJvLXRlYXNlcjpub3QoLmMtaGVyby10ZWFzZXItLWxheWVyKSB7XG5cbiAgICAgICAgLmMtaGVyby10ZWFzZXJfX2hlYWRpbmcge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAkc2tvZGEtaGVyby10ZWFzZXItY29udGVudC1pbm5lci13aWR0aDtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI01FRElBLVRFQVNFUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRtZWRpYS10ZWFzZXItYnJlYWtwb2ludDogICAgICAgICAgICAgICAgICAgICAgICAgIHMgIWRlZmF1bHQ7XG4kbWVkaWEtdGVhc2VyLWlzLWltYWdlLXJhdGlvLWZsZXhpYmxlOiAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcblxuLy8gUmVzcG9uc2l2ZSBwcm9wZXJ0aWVzOlxuJG1lZGlhLXRlYXNlci1zcGFjaW5nLXRvcDogICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRtZWRpYS10ZWFzZXItc3BhY2luZy1ib3R0b206ICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kbWVkaWEtdGVhc2VyLXNwYWNpbmctaXMtcGFkZGluZzogICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcblxuJG1lZGlhLXRlYXNlci12ZXJ0aWNhbC1zcGFjaW5nLXRvcDogICAgICAgICAgICAgICAgJG1lZGlhLXRlYXNlci1zcGFjaW5nLXRvcCAhZGVmYXVsdDtcbiRtZWRpYS10ZWFzZXItdmVydGljYWwtc3BhY2luZy1ib3R0b206ICAgICAgICAgICAgICRtZWRpYS10ZWFzZXItc3BhY2luZy1ib3R0b20gIWRlZmF1bHQ7XG5cbi8vIFZlcnRpY2FsIGFsaWdubWVudCBvcHRpb25zOiBcInRvcFwiLCBcImNlbnRlclwiIG9yIFwiYm90dG9tXCIgKHdpdGhvdXQgcXVvdGVzKVxuJG1lZGlhLXRlYXNlci1tZWRpYS1hbGlnbm1lbnQtdmVydGljYWw6ICAgICAgICAgICAgdG9wICFkZWZhdWx0O1xuJG1lZGlhLXRlYXNlci1tZWRpYS10cmFuc2Zvcm06ICAgICAgICAgICAgICAgICAgICAgc2NhbGUoMS4wMykgIWRlZmF1bHQ7XG5cbiRtZWRpYS10ZWFzZXItY2FwdGlvbi1hbGlnbm1lbnQtdmVydGljYWw6ICAgICAgICAgIGNlbnRlciAhZGVmYXVsdDtcbiRtZWRpYS10ZWFzZXItY2FwdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbi8vIFNwYWNpbmcgYXdheSBmcm9tIHRoZSBpbWFnZTpcbiRtZWRpYS10ZWFzZXItY2FwdGlvbi1zcGFjaW5nLWhvcml6b250YWwtb3V0c2lkZTogIDAgIWRlZmF1bHQ7XG4vLyBTcGFjaW5nIGJldHdlZW4gaW1hZ2UgYW5kIGNhcHRpb246XG4kbWVkaWEtdGVhc2VyLWNhcHRpb24tc3BhY2luZy1ob3Jpem9udGFsLWluc2lkZTogKFxuICAgIG51bGw6ICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQsXG4gICAgJG1lZGlhLXRlYXNlci1icmVha3BvaW50OiAwLFxuKSAhZGVmYXVsdDtcbiRtZWRpYS10ZWFzZXItdmVydGljYWwtY2FwdGlvbi1zcGFjaW5nLWhvcml6b250YWw6ICRtZWRpYS10ZWFzZXItY2FwdGlvbi1zcGFjaW5nLWhvcml6b250YWwtb3V0c2lkZSAhZGVmYXVsdDtcbiRtZWRpYS10ZWFzZXItY2FwdGlvbi1zcGFjaW5nLXZlcnRpY2FsOiAoXG4gICAgbnVsbDogICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCxcbiAgICAkbWVkaWEtdGVhc2VyLWJyZWFrcG9pbnQ6ICRHTE9CQUwtU1BBQ0lORy1VTklULFxuKSAhZGVmYXVsdDtcbiRtZWRpYS10ZWFzZXItY2FwdGlvbi1zcGFjaW5nLXRvcDogICAgICAgICAgICAgICAgICRtZWRpYS10ZWFzZXItY2FwdGlvbi1zcGFjaW5nLXZlcnRpY2FsICFkZWZhdWx0O1xuJG1lZGlhLXRlYXNlci1jYXB0aW9uLXNwYWNpbmctYm90dG9tOiAgICAgICAgICAgICAgJG1lZGlhLXRlYXNlci1jYXB0aW9uLXNwYWNpbmctdmVydGljYWwgIWRlZmF1bHQ7XG4kbWVkaWEtdGVhc2VyLXZlcnRpY2FsLWNhcHRpb24tc3BhY2luZy10b3A6ICAgICAgICAkbWVkaWEtdGVhc2VyLWNhcHRpb24tc3BhY2luZy10b3AgIWRlZmF1bHQ7XG4kbWVkaWEtdGVhc2VyLXZlcnRpY2FsLWNhcHRpb24tc3BhY2luZy1ib3R0b206ICAgICAkbWVkaWEtdGVhc2VyLWNhcHRpb24tc3BhY2luZy1ib3R0b20gIWRlZmF1bHQ7XG5cbiRtZWRpYS10ZWFzZXItY2FwdGlvbi1pbm5lci1zcGFjaW5nLWRlZmF1bHQ6ICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuLy8gSW5zdGVhZCBvZiBvdmVyd3JpdGluZyBgJG1lZGlhLXRlYXNlci1jYXB0aW9uYCB0byBjdXN0b21pemUgdGhlIGRpZmZlcmVudFxuLy8gZWxlbWVudHMsIHlvdSBjYW4gb3ZlcndyaXRlIG9ubHkgY2VydGFpbiB2YWx1ZXMgYnkgZGVmaW5pbmcgdGhlIHZhcmlhYmxlXG4vLyBgJG1lZGlhLXRlYXNlci1jYXB0aW9uLW92ZXJ3cml0ZXNgIGluIHRoZSBicmFuZCdzIHNldHRpbmdzIGZpbGUuXG4kbWVkaWEtdGVhc2VyLWNhcHRpb24tb3ZlcndyaXRlczogKCkgIWRlZmF1bHQ7XG4kbWVkaWEtdGVhc2VyLWNhcHRpb246IChcbiAgICBwcmV0aXRsZTogKFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbWVkaWEtdGVhc2VyLWNhcHRpb24taW5uZXItc3BhY2luZy1kZWZhdWx0LFxuICAgICksXG4gICAgdGl0bGU6IChcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJG1lZGlhLXRlYXNlci1jYXB0aW9uLWlubmVyLXNwYWNpbmctZGVmYXVsdCxcbiAgICApLFxuICAgIGJvZHk6IChcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJG1lZGlhLXRlYXNlci1jYXB0aW9uLWlubmVyLXNwYWNpbmctZGVmYXVsdCxcbiAgICApLFxuICAgIGZvb3RlcjogKFxuICAgICAgICAvLyBhZGQgc3R5bGVzIGhlcmVcbiAgICApXG4pICFkZWZhdWx0O1xuLy8gRGVlcC1tZXJnZSBjb250ZW50IGNvbmZpZ3VyYXRpb24gd2l0aCBvdmVyd3JpdGVzIHVwIHRvIGEgZGVwdGggb2YgMlxuJG1lZGlhLXRlYXNlci1jYXB0aW9uLW1lcmdlZDogbWFwLWRlZXAtbWVyZ2UoJG1lZGlhLXRlYXNlci1jYXB0aW9uLCAkbWVkaWEtdGVhc2VyLWNhcHRpb24tb3ZlcndyaXRlcywgMikgIWRlZmF1bHQ7XG5cbiRtZWRpYS10ZWFzZXItbWFya2V0aW5nLWNhcHRpb24tc3BhY2luZy1ob3Jpem9udGFsLWluc2lkZTogKFxuICAgIG51bGw6ICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQsXG4gICAgJG1lZGlhLXRlYXNlci1icmVha3BvaW50OiAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCxcbikgIWRlZmF1bHQ7XG5cbiRtZWRpYS10ZWFzZXItdGhlbWVzOiAoXG4gICAgXCJhbHRlcm5hdGl2ZVwiOiAoXG4gICAgICAgIFwiY2FwdGlvbi1iYWNrZ3JvdW5kLWNvbG9yXCI6IG51bGwsXG4gICAgKVxuKSAhZGVmYXVsdDtcblxuLy8gU3R5bGUtaG9vazogYFtkYXRhLW1hcmtldGluZy10aGVtZV1gXG4kbWVkaWEtdGVhc2VyLW1hcmtldGluZy10aGVtZXM6ICRNQVJLRVRJTkctVEhFTUVTICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSAgYHRvcGAgZG9lcyBub3QgaGF2ZSB0byBiZSBhbGlnbmVkLCBzaW5jZSBpdCdzIHRoZSBkZWZhdWx0LlxuICogWzJdICBDb252ZXJ0IGFsaWdubWVudCBgYm90dG9tYCB0byBgZmxleC1lbmRgLlxuICogWzNdICBPbmx5IGFsaWduIHZlcnRpY2FsbHkgaWYgdGhlIHJhdGlvIGlzIG5vdCBmbGV4aWJsZS4gSWYgdGhlIHJhdGlvIGlzXG4gKiAgICAgIGZsZXhpYmxlLCB0aGUgaW1hZ2Ugd2lsbCBhbHdheXMgdGFrZSB1cCAxMDAlIG9mIHRoZSBhdmFpbGFibGUgaGVpZ2h0IGFuZFxuICogICAgICBubyBhbGlnbm1lbnQgaXMgbmVjZXNzYXJ5LlxuICogWzRdICBSZXZlcnNlIHRoZSBvcmRlciBvZiBpbWFnZSBhbmQgdGhlIGNhcHRpb24uXG4gKiBbNV0gIElmIGluc2lkZSBhbmQgb3V0c2lkZSBzcGFjaW5ncyBhcmUgdGhlIHNhbWUsIHRoZXJlIGlzIG5vIG5lZWQgdG9cbiAqICAgICAgb3ZlcndyaXRlIHRoZW0gZm9yIHRoZSByZXZlcnNlZCB2YXJpYW50LlxuICogWzZdICBBZGQgc3R5bGluZyBmb3IgY2FwdGlvbiBlbGVtZW50cy5cbiAqIFs3XSAgTWFrZSBib3RoIGZsZXgtaXRlbXMgdGhlIHNhbWUgd2lkdGguIE5vdGUgdGhhdCBzZXR0aW5nIGFsbCBmbGV4IGl0ZW1zXG4gKiAgICAgIHRvIHRoZSBzYW1lIHdpZHRoIHVzaW5nIGBmbGV4OiAxIDEgMDtgIHdpbGwgbm90IHdvcmsgaGVyZSBiZWNhdXNlIGl0XG4gKiAgICAgIHRha2VzIHBhZGRpbmdzIGludG8gYWNjb3VudCBhbmQgd2lsbCBlbmQgdXAgd2l0aCBkaWZmZXJlbnQgd2lkdGhzIGZvclxuICogICAgICBzb21lIGJyYW5kcy5cbiAqIFs4XSAgUmVtb3ZlIGFsbCBib3R0b20tbWFyZ2lucyBmcm9tIGFueSBsYXN0IGVsZW1lbnQuXG4gKiBbOV0gIE1ha2UgaXQgY29uZmlndXJhYmxlIGlmIHRvcCBhbmQgYm90dG9tIHNwYWNpbmdzIGFyZSBzZXQgYXMgbWFyZ2lucyBvclxuICogICAgICBwYWRkaW5ncy5cbiAqIFsxMF0gU2V0IHRoZSBwb3NpdGlvbmluZyBjb250ZXh0IGZvciB0aGUgbGluayBzcGFubmluZy5cbiAqIFsxMV0gRmFrZSBhIHBvaW50ZXIgY3Vyc29yIGZvciB0aGUgZnVsbC1saW5rIHZhcmlhbnQuXG4gKiBbMTJdIFRyYW5zZm9ybSB0aGUgaW1hZ2Ugd2hlbiB0aGUgY29udGFpbmVyIHJlY2VpdmVzIGVpdGhlciBhIGZvY3VzLXdpdGhpbiBvciBob3Zlci5cbiAqIFsxM10gVGhpcyBjb2xsYXBzZXMgdGhlIGAuYy1tZWRpYS10ZWFzZXJfX21lZGlhYCBvbiBjb250ZW50IGNoaWxkcmVuLlxuICogICAgICBUaGUgYDAlYCBpcyBtYW5kYXRvcnkgdG8gbWFrZSB0aGlzIHdvcmsgb24gYnJvd3NlcnMgbm90IHN1cHBvcnRpbmcgYGFsaWduLXNlbGZgLlxuICogWzE0XSBDbGlwIHRoZSBpbWFnZSB0byB0aGUgYC5jLW1lZGlhLXRlYXNlcl9fbWVkaWFgIHdoZW4gaXQgaXMgc2NhbGVkLlxuICogWzE1XSBQcm9ncmVzc2l2ZSBlbmhhbmNlbWVudCBmb3IgWzEzXS5cbiAqIFsxNl0gTWFrZSB0aGUgbGluayBzcGFubmluZyBwc2V1ZG8gZnJvbSBbMTddIGVzY2FwZSBpdHMgbGluayBwYXJlbnQgZWxlbWVudCB3aGljaCBoYXMgYVxuICogICAgICByZWxhdGl2ZSBwb3NpdGlvbiBjb250ZXh0IGZyb20gdGhlIG5vcm1hbGl6ZSBzdHlsZXMuXG4gKiBbMTddIFRoaXMgcHNldWRvIGVsZW1lbnQgbWFrZXMgdGhlIHBhcmVudCBlbGVtZW50IHNwYW5uaW5nIGFjcm9zcyB0aGUgd2hvbGVcbiAqICAgICAgY29udGFpbmVyIHNldCBpbiBbMTBdLlxuICogWzE4XSBGb3IgdGhlIHZpZGVvIHZhcmlhbnQgYC5jLW1lZGlhLXRlYXNlci0tdmlkZW9gIHdlIG9ubHkgc3BhbiBhY3Jvc3MgdGhlXG4gKiAgICAgIGAuYy1tZWRpYS10ZWFzZXJfX2NhcHRpb25gLlxuICogWzE5XSBEaXNhYmxlIHRyYW5zaXRpb25zIGZvciB0b3VjaCBkZXZpY2VzLlxuICogWzIwXSBFbGV2YXRlIGFsbCBsaW5rcyBhbmQgYnV0dG9ucyB0byBtYWtlIHRoZW0gYXBwZWFyIG9uLXRvcCBvZiB0aGUgbGluayBzcGFuXG4gKiAgICAgIGluc2lkZSB0aGUgYC5jLW1lZGlhLXRlYXNlci0tZnVsbC1saW5rYCB2YXJpYW50LlxuICovXG5cbkBtaXhpbiBtZWRpYS10ZWFzZXItYWxpZ24tdmVydGljYWwoJGFsaWdubWVudCkge1xuICAgIEBpZiAoJGFsaWdubWVudCAhPSB0b3ApIHsgLyogWzFdICovXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogaWYoJGFsaWdubWVudCA9PSBib3R0b20sIGZsZXgtZW5kLCAkYWxpZ25tZW50KTsgLyogWzJdICovXG4gICAgfVxufVxuXG4uYy1tZWRpYS10ZWFzZXIge1xuXG4gICAgJG1hcmdpbi1vci1wYWRkaW5nOiBpZigkbWVkaWEtdGVhc2VyLXNwYWNpbmctaXMtcGFkZGluZywgXCJwYWRkaW5nXCIsIFwibWFyZ2luXCIpOyAvKiBbOV0gKi9cblxuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXG4gICAgICAgIChcIiN7JG1hcmdpbi1vci1wYWRkaW5nfS10b3BcIiwgICAgJG1lZGlhLXRlYXNlci1zcGFjaW5nLXRvcCksXG4gICAgICAgIChcIiN7JG1hcmdpbi1vci1wYWRkaW5nfS1ib3R0b21cIiwgJG1lZGlhLXRlYXNlci1zcGFjaW5nLWJvdHRvbSlcbiAgICApO1xuXG4gICAgJjpub3QoLmMtbWVkaWEtdGVhc2VyLS12ZXJ0aWNhbCkge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIj4jeyRtZWRpYS10ZWFzZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgLmMtbWVkaWEtdGVhc2VyX19tZWRpYSxcbiAgICAgICAgICAgIC5jLW1lZGlhLXRlYXNlcl9fY2FwdGlvbiB7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAwOyAvLyBpbml0aWFsIHZhbHVlXG4gICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDE7IC8vIGluaXRpYWwgdmFsdWVcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiA1MCU7ICAvKiBbN10gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmIG5vdCAkbWVkaWEtdGVhc2VyLWlzLWltYWdlLXJhdGlvLWZsZXhpYmxlIHsgLyogWzNdICovXG4gICAgICAgICAgICAgICAgLmMtbWVkaWEtdGVhc2VyX19tZWRpYSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXRlYXNlci1hbGlnbi12ZXJ0aWNhbCgkbWVkaWEtdGVhc2VyLW1lZGlhLWFsaWdubWVudC12ZXJ0aWNhbCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmMtbWVkaWEtdGVhc2VyX19pbWFnZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEBUT0RPOiBuZWVkZWQ/XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMDsgLy8gaW5pdGlhbCB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvOyAvLyBpbml0aWFsIHZhbHVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYy1tZWRpYS10ZWFzZXJfX2NhcHRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXRlYXNlci1hbGlnbi12ZXJ0aWNhbCgkbWVkaWEtdGVhc2VyLWNhcHRpb24tYWxpZ25tZW50LXZlcnRpY2FsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5jLW1lZGlhLXRlYXNlci0tcmV2ZXJzZWQge1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgLyogWzRdICovXG5cbiAgICAgICAgICAgICAgICBAaWYgKCRtZWRpYS10ZWFzZXItY2FwdGlvbi1zcGFjaW5nLWhvcml6b250YWwtaW5zaWRlICE9ICRtZWRpYS10ZWFzZXItY2FwdGlvbi1zcGFjaW5nLWhvcml6b250YWwtb3V0c2lkZSkgeyAvKiBbNV0gKi9cbiAgICAgICAgICAgICAgICAgICAgLmMtbWVkaWEtdGVhc2VyX19jYXB0aW9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFwicGFkZGluZy1yaWdodFwiLCAkbWVkaWEtdGVhc2VyLWNhcHRpb24tc3BhY2luZy1ob3Jpem9udGFsLWluc2lkZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFwicGFkZGluZy1sZWZ0XCIsICAkbWVkaWEtdGVhc2VyLWNhcHRpb24tc3BhY2luZy1ob3Jpem9udGFsLW91dHNpZGUpXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9IC8vICY6bm90KC5jLW1lZGlhLXRlYXNlci0tdmVydGljYWwpIEVORFxuXG4gICAgJi5jLW1lZGlhLXRlYXNlci0tdmVydGljYWwge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFxuICAgICAgICAgICAgKFwiI3skbWFyZ2luLW9yLXBhZGRpbmd9LXRvcFwiLCAgICAkbWVkaWEtdGVhc2VyLXZlcnRpY2FsLXNwYWNpbmctdG9wKSxcbiAgICAgICAgICAgIChcIiN7JG1hcmdpbi1vci1wYWRkaW5nfS1ib3R0b21cIiwgJG1lZGlhLXRlYXNlci12ZXJ0aWNhbC1zcGFjaW5nLWJvdHRvbSlcbiAgICAgICAgKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQWxsb3cgYm90dG9tIGFsaWdubWVudCBmb3IgZm9vdGVyIHdoZW4gaW4gZXF1YWwtaGVpZ2h0IGxheW91dC5cbiAgICAgICAgICogQWZmZWN0cyBvbmx5IHZlcnRpY2FsIGxheW91dCAodmlhIG1vZGlmaWVyLCBub3QgTVEpLlxuICAgICAgICAgKi9cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAuYy1tZWRpYS10ZWFzZXJfX2NhcHRpb24ge1xuICAgICAgICAgICAgLy8gZmxleC1jb250YWluZXJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAgICAvLyBmbGV4LWl0ZW1cbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLW1lZGlhLXRlYXNlcl9fZm9vdGVyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICZbZGF0YS1tYXJrZXRpbmctdGhlbWVdIHtcblxuICAgICAgICBAaWYgbm90ICgkbWVkaWEtdGVhc2VyLWNhcHRpb24tYmFja2dyb3VuZC1jb2xvcikge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmFyeSgkY3JlYXRlOiBjdXN0b20sICRsb29wOiAkbWVkaWEtdGVhc2VyLW1hcmtldGluZy10aGVtZXMpIHtcbiAgICAgICAgICAgICAgICAmW2RhdGEtbWFya2V0aW5nLXRoZW1lPVwiI3skdmFyeS1sb29wLWVudGl0eX1cIl0ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXJ5LWdldChcImJhY2tncm91bmQtY29sb3JcIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXJ5LWdldChcInRleHQtY29sb3JcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuICAgIC5jLW1lZGlhLXRlYXNlcl9fY2FwdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXG4gICAgICAgICAgICAoXCJwYWRkaW5nLXRvcFwiLCAgICAgICRtZWRpYS10ZWFzZXItY2FwdGlvbi1zcGFjaW5nLXRvcCksXG4gICAgICAgICAgICAoXCJwYWRkaW5nLXJpZ2h0XCIsICAgICRtZWRpYS10ZWFzZXItY2FwdGlvbi1zcGFjaW5nLWhvcml6b250YWwtb3V0c2lkZSksXG4gICAgICAgICAgICAoXCJwYWRkaW5nLWJvdHRvbVwiLCAgICRtZWRpYS10ZWFzZXItY2FwdGlvbi1zcGFjaW5nLWJvdHRvbSksXG4gICAgICAgICAgICAoXCJwYWRkaW5nLWxlZnRcIiwgICAgICRtZWRpYS10ZWFzZXItY2FwdGlvbi1zcGFjaW5nLWhvcml6b250YWwtaW5zaWRlKVxuICAgICAgICApO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtZWRpYS10ZWFzZXItY2FwdGlvbi1iYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICRtZWRpYS10ZWFzZXItdGhlbWVzKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFwiYmFja2dyb3VuZC1jb2xvclwiLCB2YXJ5LWdldChcImNhcHRpb24tYmFja2dyb3VuZC1jb2xvclwiKSk7XG4gICAgICAgIH1cblxuICAgICAgICAuYy1tZWRpYS10ZWFzZXItLXZlcnRpY2FsICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcbiAgICAgICAgICAgICAgICAoXCJwYWRkaW5nLXRvcFwiLCAgICAgICRtZWRpYS10ZWFzZXItdmVydGljYWwtY2FwdGlvbi1zcGFjaW5nLXRvcCksXG4gICAgICAgICAgICAgICAgKFwicGFkZGluZy1yaWdodFwiLCAgICAkbWVkaWEtdGVhc2VyLXZlcnRpY2FsLWNhcHRpb24tc3BhY2luZy1ob3Jpem9udGFsKSxcbiAgICAgICAgICAgICAgICAoXCJwYWRkaW5nLWJvdHRvbVwiLCAgICRtZWRpYS10ZWFzZXItdmVydGljYWwtY2FwdGlvbi1zcGFjaW5nLWJvdHRvbSksXG4gICAgICAgICAgICAgICAgKFwicGFkZGluZy1sZWZ0XCIsICAgICAkbWVkaWEtdGVhc2VyLXZlcnRpY2FsLWNhcHRpb24tc3BhY2luZy1ob3Jpem9udGFsKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJG1lZGlhLXRlYXNlci1jYXB0aW9uLWJhY2tncm91bmQtY29sb3IpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZhcnkoJGNyZWF0ZTogY3VzdG9tLCAkbG9vcDogJG1lZGlhLXRlYXNlci1tYXJrZXRpbmctdGhlbWVzKSB7XG4gICAgICAgICAgICAgICAgW2RhdGEtbWFya2V0aW5nLXRoZW1lPVwiI3skdmFyeS1sb29wLWVudGl0eX1cIl0gJiB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcnktZ2V0KFwiYmFja2dyb3VuZC1jb2xvclwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFkZCBob3Jpem9udGFsIHNwYWNpbmcuIElmIGEgYmFja2dyb3VuZCBjb2xvciBpcyBub3QgdXNlZCBieSBkZWZhdWx0LFxuICAgICAgICAvLyB0aGlzIGlzIHJlcXVpcmVkIHRvIGF2b2lkIGNvbnRlbnQgcmlnaHQgbmV4dCB0b1xuICAgICAgICAvLyB2aXN1YWwgY29tcG9uZW50IFwiYm91bmRhcmllc1wiIGNyZWF0ZWQgYnkgYmFja2dyb3VuZCBjb2xvci5cbiAgICAgICAgW2RhdGEtbWFya2V0aW5nLXRoZW1lXSAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXG4gICAgICAgICAgICAgICAgKFwicGFkZGluZy1yaWdodFwiLCAkbWVkaWEtdGVhc2VyLW1hcmtldGluZy1jYXB0aW9uLXNwYWNpbmctaG9yaXpvbnRhbC1pbnNpZGUpLFxuICAgICAgICAgICAgICAgIChcInBhZGRpbmctbGVmdFwiLCAgJG1lZGlhLXRlYXNlci1tYXJrZXRpbmctY2FwdGlvbi1zcGFjaW5nLWhvcml6b250YWwtaW5zaWRlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG5cbiAgICAuYy1tZWRpYS10ZWFzZXJfX2NhcHRpb24gKjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzhdICovXG4gICAgfVxuXG4gICAgQGlmICRtZWRpYS10ZWFzZXItaXMtaW1hZ2UtcmF0aW8tZmxleGlibGUge1xuICAgICAgICAuYy1tZWRpYS10ZWFzZXJfX2ltYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG9iamVjdC1maXQoKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eS1tYXAoJG1lZGlhLXRlYXNlci1jYXB0aW9uLW1lcmdlZCwgXCIuYy1tZWRpYS10ZWFzZXJfX1wiKTsgLyogWzZdICovXG5cbi5jLW1lZGlhLXRlYXNlci0tZnVsbC1saW5rIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIFsxMF0gKi9cblxuICAgICY6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7IC8qIFsxMV0gKi9cbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMtd2l0aGluIHtcblxuICAgICAgICAuYy1tZWRpYS10ZWFzZXJfX2ltYWdlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogJG1lZGlhLXRlYXNlci1tZWRpYS10cmFuc2Zvcm07IC8qIFsxMl0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgYSxcbiAgICBidXR0b24geyAvKiBbMjBdICovXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICAuYy1tZWRpYS10ZWFzZXJfX21lZGlhIHtcbiAgICAgICAgaGVpZ2h0OiAwJTsgLyogWzEzXSAqL1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyAvKiBbMTRdICovXG5cbiAgICAgICAgQHN1cHBvcnRzIChhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0KSB7IC8qIFsxNV0gKi9cbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLW1lZGlhLXRlYXNlcl9faW1hZ2Uge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKFxuICAgICAgICAgICAgJHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSxcbiAgICAgICAgICAgICR0cmFuc2l0aW9uLWR1cmF0aW9uOiAyLjJzLFxuICAgICAgICAgICAgJHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNCwgMS4xMiwgMC42NywgMC45OSlcbiAgICAgICAgKTtcblxuICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9tZWRpYS1mZWF0dXJlLXZhbHVlLWRvbGxhci12YXJpYWJsZSAqL1xuICAgICAgICBAbWVkaWEgKHBvaW50ZXI6IGNvYXJzZSkgeyAvKiBbMTldICovXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICB9XG5cblxuICAgIC5jLW1lZGlhLXRlYXNlcl9fbGluayB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7IC8qIFsxNl0gKi9cblxuICAgICAgICAmOjphZnRlciB7IC8qIFsxN10gKi9cbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJi5jLW1lZGlhLXRlYXNlci0tdmlkZW8gLmMtbWVkaWEtdGVhc2VyX19jYXB0aW9uIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAgLyogWzE4XSAqL1xuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI01FRElBLVRFQVNFUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRza29kYS1tZWRpYS10ZWFzZXItYm9yZGVyLXJhZGl1czogICAgICAgICRHTE9CQUwtQk9SREVSLVJBRElVUyAhZGVmYXVsdDtcblxuJHNrb2RhLW1lZGlhLXRlYXNlci1wcmV0aXRsZS1mb250LXdlaWdodDogJENBUkQtUEFUVEVSTi1TVUJUSVRMRS1XRUlHSFQgIWRlZmF1bHQ7XG5cbiRza29kYS1tZWRpYS10ZWFzZXItdGl0bGUtZm9udC1zaXplOiAgICAgICRGUzIgIWRlZmF1bHQ7XG4kc2tvZGEtbWVkaWEtdGVhc2VyLXRpdGxlLWZvbnQtd2VpZ2h0OiAgICAkQ0FSRC1QQVRURVJOLVRJVExFLVdFSUdIVCAhZGVmYXVsdDtcbiRza29kYS1tZWRpYS10ZWFzZXItdGl0bGUtY29sb3I6ICAgICAgICAgICRDQVJELVBBVFRFUk4tVElUTEUtQ09MT1IgIWRlZmF1bHQ7XG5cbi8qXG4gKiBbMV0gU2V0IGJvcmRlciByYWRpdXMgZm9yIG1lZGlhIGxpa2UgaW1hZ2VzIGFuZCB2aWRlby5cbiAqIFsyXSBJZiBtZWRpYSB0ZWFzZXIgaGFzIGEgbWFya2V0aW5nIHRoZW1lLCBzZXQgYm9yZGVyIHJhZGl1cyBmb3IgdGhlIHdob2xlXG4gKiAgICAgY29tcG9uZW50IGFuZCByZW1vdmUgZnJvbSBpbmNsdWRlZCBtZWRpYSBiZWNhdXNlIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuICovXG5cbi5jLW1lZGlhLXRlYXNlciB7XG59XG5cbiAgICAuYy1tZWRpYS10ZWFzZXJfX21lZGlhIHsgLyogWzFdICovXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgPiAqIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRza29kYS1tZWRpYS10ZWFzZXItYm9yZGVyLXJhZGl1cztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jLW1lZGlhLXRlYXNlcl9fcHJldGl0bGUge1xuICAgICAgICBmb250LXdlaWdodDogJHNrb2RhLW1lZGlhLXRlYXNlci1wcmV0aXRsZS1mb250LXdlaWdodDtcbiAgICB9XG5cbiAgICAuYy1tZWRpYS10ZWFzZXJfX3RpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAkc2tvZGEtbWVkaWEtdGVhc2VyLXRpdGxlLWZvbnQtc2l6ZSxcbiAgICAgICAgKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRza29kYS1tZWRpYS10ZWFzZXItdGl0bGUtZm9udC13ZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkc2tvZGEtbWVkaWEtdGVhc2VyLXRpdGxlLWNvbG9yO1xuICAgIH1cblxuLmMtbWVkaWEtdGVhc2VyW2RhdGEtbWFya2V0aW5nLXRoZW1lXSB7IC8qIFsyXSAqL1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm9yZGVyLXJhZGl1czogJHNrb2RhLW1lZGlhLXRlYXNlci1ib3JkZXItcmFkaXVzO1xuXG4gICAgLmMtbWVkaWEtdGVhc2VyX19tZWRpYSA+ICoge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNNRURJQS1HUklEIChTZXR0aW5ncylcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vLyBTaW1pbGFyIHRvIGJ1dHRvbiAobGluaykgc3R5bGVzXG4kbWVkaWEtZ3JpZC1sYWJlbC1mb250LXNpemU6ICAgICAgICAkQlVUVE9OLVRFWFQtU0laRSAhZGVmYXVsdDtcbiRtZWRpYS1ncmlkLWxhYmVsLWZvbnQtd2VpZ2h0OiAgICAgICRCVVRUT04tRk9OVC1XRUlHSFQgIWRlZmF1bHQ7XG4kbWVkaWEtZ3JpZC1sYWJlbC1jb2xvcjogICAgICAgICAgICAkQlVUVE9OLUxJTkstVEVYVC1DT0xPUiAhZGVmYXVsdDtcbiRtZWRpYS1ncmlkLWxhYmVsLWNvbG9yLWhvdmVyOiAgICAgICRCVVRUT04tTElOSy1URVhULUNPTE9SLUhPVkVSICFkZWZhdWx0O1xuJG1lZGlhLWdyaWQtbGFiZWwtdGV4dC10cmFuc2Zvcm06ICAgZmFsc2UgIWRlZmF1bHQ7XG5cbiRtZWRpYS1ncmlkLWxhYmVsLXNwYWNpbmctdmVydGljYWw6ICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcblxuJG1lZGlhLWdyaWQtaW1hZ2UtYmx1ci1vbi1ob3ZlcjogICAgMnB4ICFkZWZhdWx0O1xuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI01FRElBLUdSSURcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQHVzZSBcInNhc3M6bWF0aFwiIGFzICo7XG5cbi8qKlxuICogVGhlIG1lZGlhIGdyaWQgY29tcG9uZW50IHBsYWNlcyBpbWFnZXMgb3IgaWNvbnMgKHdpdGggb3B0aW9uYWwgdGV4dCBiZWxvdylcbiAqIG5leHQgdG8gZWFjaCBvdGhlciBpbiBhIHNtYXJ0IHdheSwgc28gdGhlIGFtb3VudCBvZiBpdGVtcyBkb2Vzbid0IG1hdHRlci4gVGhlXG4gKiBpdGVtcyB3cmFwIGR5bmFtaWNhbGx5IGludG8gbmV3IGxpbmVzLCBkZXBlbmRpbmcgb24gdGhlIHZpZXdwb3J0LiBJdCBpcyBidWlsdFxuICogd2l0aCBDU1MgZ3JpZC5cbiAqL1xuXG4kbWVkaWEtZ3JpZC1zcGFjaW5nOiAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRtZWRpYS1ncmlkLWxhYmVsLWZvbnQtc2l6ZTogICAgICAgICRGUy0xICFkZWZhdWx0O1xuJG1lZGlhLWdyaWQtbGFiZWwtZm9udC13ZWlnaHQ6ICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xEICFkZWZhdWx0O1xuJG1lZGlhLWdyaWQtbGFiZWwtdGV4dC10cmFuc2Zvcm06ICAgdXBwZXJjYXNlICFkZWZhdWx0O1xuJG1lZGlhLWdyaWQtbGFiZWwtY29sb3I6ICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRtZWRpYS1ncmlkLWxhYmVsLWNvbG9yLWhvdmVyOiAgICAgIG51bGwgIWRlZmF1bHQ7XG4kbWVkaWEtZ3JpZC1sYWJlbC1zcGFjaW5nLXZlcnRpY2FsOiAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG5cbiRtZWRpYS1ncmlkLWltYWdlLW9wYWNpdHktaG92ZXI6ICAgIDAuMyAhZGVmYXVsdDtcbiRtZWRpYS1ncmlkLWltYWdlLWJsdXItb24taG92ZXI6ICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRtZWRpYS1saW5rLWZvY3VzLW91dGxpbmUtd2lkdGg6ICAgIDJweCAhZGVmYXVsdDtcbiRtZWRpYS1saW5rLWZvY3VzLW91dGxpbmUtc3R5bGU6ICAgICRHTE9CQUwtRk9DVVMtU1RZTEUgIWRlZmF1bHQ7XG4kbWVkaWEtbGluay1mb2N1cy1vdXRsaW5lLWNvbG9yOiAgICAkR0xPQkFMLUZPQ1VTLUNPTE9SICFkZWZhdWx0O1xuJG1lZGlhLWxpbmstZm9jdXMtb3V0bGluZS1vZmZzZXQ6ICAgMnB4ICFkZWZhdWx0O1xuXG4kbWVkaWEtZ3JpZC1pdGVtLWNvdW50OiAgICAgICAgICAgICA2ICFkZWZhdWx0O1xuXG4kbWVkaWEtZ3JpZC1pdGVtLXJlc3BvbnNpdmUtY291bnRzOiAoXG4gICAgbTogIDQsXG4gICAgczogIDMsXG4gICAgeHM6IDIsXG4pICFkZWZhdWx0O1xuXG4kbWVkaWEtZ3JpZC1pbWFnZS1hc3BlY3QtcmF0aW9zOiAoXG4gICAgXCIxLzFcIixcbiAgICBcIjQvM1wiLFxuICAgIFwiMTYvOVwiLFxuKSAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gRmFkZSBvdXQgYWxsIGdyaWQgaXRlbSBpbWFnZXMgZXhjZXB0IHRoZSBob3ZlcmVkIG9uZSBvbiBob3ZlciBhbmQgZm9jdXMuXG4gKiBbMl0gUmVtb3ZlIGxpbmstYm9yZGVyIGZvciBicmFuZHMgd2l0aCBzZXQgYm9yZGVyLlxuICogWzNdIEVuc3VyZSBlcXVhbCBhc3BlY3QgcmF0aW9zXG4gKiAgICAgZXZlbiBpZiB0aGUgaW1hZ2VzIGhhdmUgZGlmZmVyZW50IHJhdGlvcyBhbmQgc2l6ZXMuXG4gKiBbNF0gRW5zdXJlIGNvcnJlY3Qgc2l6aW5nIHdpdGggZml4ZWQgYXNwZWN0IHJhdGlvLlxuICogWzVdIFVzZSBgYXV0by1maXRgIHRvIGFsbG93IGhvcml6b250YWwgYWxpZ25tZW50LlxuICogWzZdIFNldCBgd2lkdGhgIHRvIGFwcGx5IGBhc3BlY3QtcmF0aW9gIGluIG5vbi1DaHJvbWl1bSBicm93c2Vycy5cbiAqICAgICBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNzAxNjA0MzBcbiAqL1xuXG4uYy1tZWRpYS1ncmlkIHtcbiAgICAtLWNvbHVtbi1jb3VudDogI3skbWVkaWEtZ3JpZC1pdGVtLWNvdW50fTtcblxuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiAkbWVkaWEtZ3JpZC1zcGFjaW5nO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBjYWxjKCgxMDAlIC8gdmFyKC0tY29sdW1uLWNvdW50KSAtICN7JG1lZGlhLWdyaWQtc3BhY2luZ30pKSk7IC8qIFs1XSAqL1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKiBbNV0gKi9cbiAgICBtYXJnaW46IDA7XG5cbiAgICBAZWFjaCAkYnJlYWtwb2ludCwgJGNvdW50IGluICRtZWRpYS1ncmlkLWl0ZW0tcmVzcG9uc2l2ZS1jb3VudHMge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgLS1jb2x1bW4tY291bnQ6ICN7JGNvdW50fTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIFszXSAqL1xuICAgIEBlYWNoICRyYXRpbyBpbiAkbWVkaWEtZ3JpZC1pbWFnZS1hc3BlY3QtcmF0aW9zIHtcbiAgICAgICAgJltkYXRhLWFzcGVjdC1yYXRpbz1cIiN7JHJhdGlvfVwiXSB7XG4gICAgICAgICAgICAtLWFzcGVjdC1yYXRpbzogI3skcmF0aW99O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvbWVkaWEtZmVhdHVyZS12YWx1ZS1kb2xsYXItdmFyaWFibGUgKi9cbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IG5vLXByZWZlcmVuY2UpIGFuZCAocG9pbnRlcjogZmluZSkge1xuXG4gICAgICAgIEBpbmNsdWRlIHN1cHBvcnRzLWhhcy1zZWxlY3RvcigpIHtcbiAgICAgICAgICAgICY6aGFzKC5jLW1lZGlhLWdyaWRfX2xpbms6d2hlcmUoOmhvdmVyLCA6Zm9jdXMtdmlzaWJsZSkpIC5jLW1lZGlhLWdyaWRfX2xpbms6d2hlcmUoOm5vdCg6aG92ZXIsIDpmb2N1cy12aXNpYmxlKSkge1xuXG4gICAgICAgICAgICAgICAgLmMtbWVkaWEtZ3JpZF9faW1hZ2Uge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAkbWVkaWEtZ3JpZC1pbWFnZS1vcGFjaXR5LWhvdmVyOyAvKiBbMV0gKi9cblxuICAgICAgICAgICAgICAgICAgICBAaWYgKCRtZWRpYS1ncmlkLWltYWdlLWJsdXItb24taG92ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjogYmx1cigkbWVkaWEtZ3JpZC1pbWFnZS1ibHVyLW9uLWhvdmVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuICAgIC5jLW1lZGlhLWdyaWRfX2ltYWdlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigpO1xuICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLWFzcGVjdC1yYXRpbywgYXV0byk7XG5cbiAgICAgICAgLmMtbWVkaWEtZ3JpZFtkYXRhLWFzcGVjdC1yYXRpb10gJiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTsgLyogWzZdICovXG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluOyAvKiBbNF0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtbWVkaWEtZ3JpZF9faXRlbSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB9XG5cbiAgICAuYy1tZWRpYS1ncmlkX19saW5rIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJvcmRlcjogMDsgLyogWzJdICovXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb2N1cy1zdHlsZXMoXG4gICAgICAgICAgICAgICAgJG91dGxpbmUtd2lkdGg6ICAkbWVkaWEtbGluay1mb2N1cy1vdXRsaW5lLXdpZHRoLFxuICAgICAgICAgICAgICAgICRvdXRsaW5lLXN0eWxlOiAgJG1lZGlhLWxpbmstZm9jdXMtb3V0bGluZS1zdHlsZSxcbiAgICAgICAgICAgICAgICAkb3V0bGluZS1jb2xvcjogICRtZWRpYS1saW5rLWZvY3VzLW91dGxpbmUtY29sb3IsXG4gICAgICAgICAgICAgICAgJG91dGxpbmUtb2Zmc2V0OiAkbWVkaWEtbGluay1mb2N1cy1vdXRsaW5lLW9mZnNldCxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuXG4gICAgICAgICAgICAuYy1tZWRpYS1ncmlkX19sYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRtZWRpYS1ncmlkLWxhYmVsLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLW1lZGlhLWdyaWRfX2xhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihcbiAgICAgICAgICAgICR0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvcixcbiAgICAgICAgKTtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAgICRtZWRpYS1ncmlkLWxhYmVsLWZvbnQtc2l6ZSxcbiAgICAgICAgICAgICRsaW5lLWhlaWdodDogMVxuICAgICAgICApO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogJG1lZGlhLWdyaWQtbGFiZWwtc3BhY2luZy12ZXJ0aWNhbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRtZWRpYS1ncmlkLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogaWYoJG1lZGlhLWdyaWQtbGFiZWwtdGV4dC10cmFuc2Zvcm0sICRtZWRpYS1ncmlkLWxhYmVsLXRleHQtdHJhbnNmb3JtLCBudWxsKTtcbiAgICAgICAgY29sb3I6ICRtZWRpYS1ncmlkLWxhYmVsLWNvbG9yO1xuICAgIH1cblxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAjQ0FST1VTRUxcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vLyBUaGlzIGNvbXBvbmVudCBpcyBiYXNlZCBvbiB0aGUgRmxpY2tpdHkgbGlicmFyeS4gTW9yZSBzdHlsZXMgY2FuIGJlIGZvdW5kXG4vLyBpbiB0aGUgYC4uL2xpYi9mbGlja2l0eS9gIGRpcmVjdG9yeS5cbiRjYXJvdXNlbC1icmVha3BvaW50OiAgICAgICAgICAgICAgICAgICAgeHMgIWRlZmF1bHQ7XG5cbiRjYXJvdXNlbC1pdGVtLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuJGNhcm91c2VsLWJ1dHRvbi1vcGFjaXR5OiAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNhcm91c2VsLWJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAgICAgICAwICFkZWZhdWx0O1xuJGNhcm91c2VsLWJ1dHRvbi1vcGFjaXR5LWhvdmVyOiAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNhcm91c2VsLWJ1dHRvbi10cmFuc2Zvcm0taG92ZXI6ICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNhcm91c2VsLWJ1dHRvbi13aWR0aDogICAgICAgICAgICAgICAgICAkR0xPQkFMLVBPSU5URVItVEFSR0VULVNJWkUgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtYnV0dG9uLWhlaWdodDogICAgICAgICAgICAgICAgICRjYXJvdXNlbC1idXR0b24td2lkdGggIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtYnV0dG9uLWJvcmRlcjogICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtYnV0dG9uLWJvcmRlci1yYWRpdXM6ICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtYnV0dG9uLWJhY2tncm91bmQtY29sb3I6ICAgICAgICRDT0xPUi1ISUdITElHSFQgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtYnV0dG9uLWJhY2tncm91bmQtY29sb3ItaG92ZXI6IGxpZ2h0ZW4oJGNhcm91c2VsLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLCAxMCUpICFkZWZhdWx0O1xuJGNhcm91c2VsLWJ1dHRvbi1pY29uLXNpemU6ICAgICAgICAgICAgICBpY29uLXNpemUoeHNtYWxsKSAhZGVmYXVsdDtcbiRjYXJvdXNlbC1idXR0b24taWNvbi1jb2xvcjogICAgICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJGNhcm91c2VsLWJ1dHRvbi1vZmZzZXQ6ICAgICAgICAgICAgICAgICAwICFkZWZhdWx0O1xuJGNhcm91c2VsLWJ1dHRvbi1pY29uLWNvbXBsZXhpdHk6ICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNhcm91c2VsLWJ1dHRvbi1uZXh0LWljb246ICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1mb3J3YXJkLCAkY2Fyb3VzZWwtYnV0dG9uLWljb24tY29tcGxleGl0eSkgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtYnV0dG9uLXByZXYtaWNvbjogICAgICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLWJhY2ssICRjYXJvdXNlbC1idXR0b24taWNvbi1jb21wbGV4aXR5KSAhZGVmYXVsdDtcbiRjYXJvdXNlbC1idXR0b24taGlkZS1hdC1icmVha3BvaW50OiAgICAgdHJ1ZSAhZGVmYXVsdDtcblxuJGNhcm91c2VsLWJ1dHRvbi1sYWJlbDogICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRjYXJvdXNlbC1idXR0b24tbGFiZWwtc3BhY2luZzogICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtYnV0dG9uLWxhYmVsLXNoaWZ0LWhvdmVyOiAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtYnV0dG9uLWxhYmVsLWZvbnQtc2l6ZTogICAgICAgICRHTE9CQUwtRk9OVC1TSVpFICFkZWZhdWx0O1xuXG4vLyBJZiBgdHJ1ZWAgdGhlIGRvdHMgd2lsbCBiZSBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBjYXJvdXNlbFxuJGNhcm91c2VsLXBhZ2UtZG90LXBvc2l0aW9uLWluc2lkZTogICAgICBmYWxzZSAhZGVmYXVsdDtcbiRjYXJvdXNlbC1wYWdlLWRvdC1vZmZzZXQ6ICAgICAgICAgICAgICAgaWYoJGNhcm91c2VsLXBhZ2UtZG90LXBvc2l0aW9uLWluc2lkZSwgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwsIC0oJEdMT0JBTC1QT0lOVEVSLVRBUkdFVC1TSVpFKSkgIWRlZmF1bHQ7XG4vLyBDcmVhdGVzIGEgc2FmZSBtYXJnaW4gaWYgdGhlIGRvdCBvZmZzZXQgaXMgbmVnYXRpdmUuXG4kY2Fyb3VzZWwtYm90dG9tLXNhZmUtc3BhY2U6ICAgICAgICAgICAgIGlmKCRjYXJvdXNlbC1wYWdlLWRvdC1vZmZzZXQgPD0gMCwgLSgkY2Fyb3VzZWwtcGFnZS1kb3Qtb2Zmc2V0KSwgbnVsbCkgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIE1ha2Ugc3VyZSBidXR0b25zIGRvbid0IGdldCBvdmVybGFwcGVkIGJ5IGFuIGl0ZW0uXG4gKiBbMl0gU2V0IHRoZSB3aWR0aCB0byAxMDAlIHRvIGVuc3VyZSB0aGF0IGltYWdlcyBhbHdheXMgYXJlIGZ1bGwgd2lkdGggd2l0aFxuICogICAgIHRoZWlyIGRlZmF1bHQgYG1heC13aWR0aDogMTAwJTtgLlxuICogWzNdIEFsd2F5cyBjZW50ZXIgdGhlIGRvdHMuXG4gKiBbNF0gQWRkIGEgbWFyZ2luLCBpZiB0aGUgZG90cyBhcmUgcGxhY2VkIG91dHNpZGUgb2YgdGhlIGNhcm91c2VsLlxuICogWzVdIENlbnRlciB0aGUgYnV0dG9uIHZlcnRpY2FsbHkuXG4gKiBbNl0gQ2VudGVyIHRoZSBpY29uIGFuZCBsYWJlbCB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHkgd2l0aGluIHRoZSBidXR0b24uXG4gKiBbN10gQ2VudGVyIHRoZSBkb3RzIGhvcml6b250YWxseSB3aXRoaW4gdGhlIGNhcm91c2VsLlxuICogWzhdIEFkZCBob3Jpem9udGFsIG91dGVyIHNwYWNpbmcgdG8gdGhlIGNhcm91c2VsIGl0ZW1zXG4gKiAgICAgKGUuZy4gaWYgdGhlIGRlc2lnbiByZXF1aXJlcyBzcGFjZSBmb3IgdGhlIGJ1dHRvbnMpXG4gKiBbOV0gVXNlIG9wYWNpdHkgaW4gY29tYmluYXRpb24gd2l0aCB0aGUgYnV0dG9uIHRyYW5zaXRpb24gdG8gZmFkZSBvdXRcbiAqICAgICAgZGlzYWJsZWQgYnV0dG9ucy5cbiAqIFsxMF0gSGlkZSBjb21wb25lbnQgdW50aWwgRmxpY2tpdHkgaXMgZnVsbHkgbG9hZGVkIGFuZCBwcmV2ZW50IFwiRmxhc2ggb2ZcbiAqICAgICAgdmlzaWJsZSBidXR0b25cIi5cbiAqIFsxMV0gVHJhbnNmb3JtIHRoZSBwcmV2L25leHQgYnV0dG9uIGljb25zIG9uIGA6aG92ZXJgXG4gKiBbMTJdIFNoaWZ0IHByZXYvbmV4dCBidXR0b24gbGFiZWxzIGhvcml6b250YWxseSBvbiBgOmhvdmVyYFxuICogWzEzXSBSZXZlcnNlIG9yZGVyIG9mIGljb24gYW5kIGxhYmVsLlxuICogWzE0XSBBbmNob3IgYC5jLWNhcm91c2VsX19idXR0b24tbGFiZWxgIGZvciBwcmV2aW91cyBhbmQgbmV4dCBidXR0b25zXG4gKiAgICAgIGluIHJlc3BlY3QgdG8gdGhlaXIgcG9zaXRpb24uXG4gKiBbMTVdIGAuZmxpY2tpdHktdmlld3BvcnRgIGhhcyBubyBmaXhlZCBoZWlnaHQgc2V0IGluIGZ1bGxzY3JlZW4gbW9kZSxcbiAqICAgICAgc28gd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlIGl0ZW1zIGRvIG5vdCBleGNlZWQgdGhlIHNsaWRlcuKAmXMgYm91bmRhcmllcy5cbiAqIFsxNl0gTWFrZSB0aGUgaW1hZ2UgYWx3YXlzIGZpdCBpbnNpZGUgdGhlIGZ1bGxzY3JlZW4gY29udGFpbmVyLlxuICogWzE3XSBBZGQgcG9pbnRlciB0YXJnZXQgc3BhY2UgdG8gdGhlIGJ1dHRvbiBsYWJlbHMuXG4gKiBbMThdIEFsd2F5cyBkaXNwbGF5IHRoZSBidXR0b25zIHdpdGggdGhlIGAuYy1jYXJvdXNlbC0tYnV0dG9ucy12aXNpYmxlYFxuICogICAgICBtb2RpZmllciBjbGFzcyBhbmQgb3ZlcndyaXRlIHBhY2thZ2Ugc2V0dGluZ3MuXG4gKiBbMTldIEFsd2F5cyBoaWRlIHRoZSBidXR0b25zIHdpdGggdGhlIGAuYy1jYXJvdXNlbC0tYnV0dG9ucy1vbi1ob3ZlcmBcbiAqICAgICAgbW9kaWZpZXIgY2xhc3MgYW5kIGRpc3BsYXkgdGhlbSBvbmx5IG9uIGhvdmVyIGFuZCBvdmVyd3JpdGUgcGFja2FnZVxuICogICAgICBzZXR0aW5ncy5cbiAqIFsyMF0gQWx3YXlzIHNob3cgZnVsbHNjcmVlbiBidXR0b24gb24gXCJ0b3VjaFwiIGRldmljZXMuXG4gKiBbMjFdIFVzZSBgcG9pbnRlcjogY29hcnNlYCBtZWRpYS1xdWVyeSB0byB0YXJnZXQgYnJvd3NlcnMgd2l0aFxuICogICAgICBsaW1pdGVkIHByZWNpc2lvbiBhcyBwcmltYXJ5IGlucHV0IGRldmljZSAoXCJ0b3VjaFwiKS5cbiAqICAgICAgaHR0cHM6Ly9jYW5pdXNlLmNvbS9jc3MtbWVkaWEtaW50ZXJhY3Rpb25cbiAqIFsyMl0gUG9zaXRpb24gZG90cyBhdCB0aGUgYm90dG9tIGluIGZ1bGxzY3JlZW4gdG8gYmUgdmlzaWJsZS5cbiAqL1xuLmMtY2Fyb3VzZWwge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oXG4gICAgICAgICR0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LFxuICAgICk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206ICRjYXJvdXNlbC1ib3R0b20tc2FmZS1zcGFjZTsgLyogWzRdICovXG4gICAgb3BhY2l0eTogMDsgLyogWzEwXSAqL1xuXG4gICAgJjpob3ZlciAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbixcbiAgICAmOmZvY3VzIC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uIHtcblxuICAgICAgICAmOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAkY2Fyb3VzZWwtYnV0dG9uLW9wYWNpdHktaG92ZXI7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICYuZmxpY2tpdHktZW5hYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDE7IC8qIFsxMF0gKi9cbiAgICB9XG5cbiAgICAmLmlzLWZ1bGxzY3JlZW4ge1xuXG4gICAgICAgIC5jLWNhcm91c2VsX19pdGVtLFxuICAgICAgICAuYy1jYXJvdXNlbF9faW1hZ2Uge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOyAvKiBbMTVdICovXG4gICAgICAgIH1cblxuICAgICAgICAuYy1jYXJvdXNlbF9faW1hZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgb2JqZWN0LWZpdChjb250YWluKTsgLyogWzE2XSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLmZsaWNraXR5LXBhZ2UtZG90cyB7XG4gICAgICAgICAgICBib3R0b206IDA7IC8qIFsyMl0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmZsaWNraXR5LXBhZ2UtZG90cyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAkY2Fyb3VzZWwtcGFnZS1kb3Qtb2Zmc2V0O1xuICAgICAgICBsZWZ0OiA1MCU7IC8qIFs3XSAqL1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IC8qIFs3XSAqL1xuICAgIH1cblxuICAgIC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDE7IC8qIFsxXSAqL1xuICAgICAgICB0b3A6IDUwJTsgLyogWzVdICovXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IC8qIFs2XSAqL1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiBbNl0gKi9cbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8qIFs2XSAqL1xuICAgICAgICB3aWR0aDogJGNhcm91c2VsLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkY2Fyb3VzZWwtYnV0dG9uLWhlaWdodDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyAvKiBbNV0gKi9cbiAgICAgICAgYm9yZGVyOiAkY2Fyb3VzZWwtYnV0dG9uLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGNhcm91c2VsLWJ1dHRvbi1ib3JkZXItcmFkaXVzO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2Fyb3VzZWwtYnV0dG9uLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIGNvbG9yOiAkY2Fyb3VzZWwtYnV0dG9uLWljb24tY29sb3I7XG4gICAgICAgIG9wYWNpdHk6ICRjYXJvdXNlbC1idXR0b24tb3BhY2l0eTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICYucHJldmlvdXMge1xuICAgICAgICAgICAgbGVmdDogJGNhcm91c2VsLWJ1dHRvbi1vZmZzZXQ7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJGNhcm91c2VsLWJ1dHRvbi1wcmV2LWljb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgICYubmV4dCB7XG4gICAgICAgICAgICByaWdodDogJGNhcm91c2VsLWJ1dHRvbi1vZmZzZXQ7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJGNhcm91c2VsLWJ1dHRvbi1uZXh0LWljb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGNhcm91c2VsLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyKSBhbmQgKCRjYXJvdXNlbC1idXR0b24tYmFja2dyb3VuZC1jb2xvci1ob3ZlciAhPSAkY2Fyb3VzZWwtYnV0dG9uLWJhY2tncm91bmQtY29sb3IpIHtcbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2Fyb3VzZWwtYnV0dG9uLWJhY2tncm91bmQtY29sb3ItaG92ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgIG9wYWNpdHk6ICRjYXJvdXNlbC1idXR0b24tb3BhY2l0eTsgLyogWzEwXSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgb3BhY2l0eTogJGNhcm91c2VsLWJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOyAvKiBbOV0gKi9cbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbOV0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGNhcm91c2VsLWJ1dHRvbi1oaWRlLWF0LWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRjYXJvdXNlbC1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkY2Fyb3VzZWwtYnV0dG9uLWljb24tc2l6ZSxcbiAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6IDEsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBidXR0b24gbGFiZWxcbiAgICAgICAgQGlmICgkY2Fyb3VzZWwtYnV0dG9uLWxhYmVsKSB7XG4gICAgICAgICAgICAkX2xhYmVsLW9mZnNldDogJGNhcm91c2VsLWJ1dHRvbi1pY29uLXNpemU7XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGFyaWEtbGFiZWwpO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY2Fyb3VzZWwtYnV0dG9uLWxhYmVsLXNwYWNpbmc7IC8qIFsxN10gKi9cbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRjYXJvdXNlbC1idXR0b24tbGFiZWwtc3BhY2luZzsgLyogWzE3XSAqL1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGNhcm91c2VsLWJ1dHRvbi1sYWJlbC1mb250LXNpemU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubmV4dCB7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7IC8qIFsxNF0gKi9cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkX2xhYmVsLW9mZnNldDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wcmV2aW91cyB7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjsgLyogWzE0XSAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogJF9sYWJlbC1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUgeyAvKiBwcmV2L25leHQgYnV0dG9uIGljb24gKi9cbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICRjYXJvdXNlbC1idXR0b24tdHJhbnNmb3JtLWhvdmVyOyAvKiBbMTFdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cbiAgICAgICAgICAgICYubmV4dDo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpZiAoJGNhcm91c2VsLWJ1dHRvbi1sYWJlbC1zaGlmdC1ob3Zlcikge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRjYXJvdXNlbC1idXR0b24tbGFiZWwtc2hpZnQtaG92ZXIpOyAvKiBbMTJdICovXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4gICAgICAgICAgICAmLnByZXZpb3VzOjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGlmICgkY2Fyb3VzZWwtYnV0dG9uLWxhYmVsLXNoaWZ0LWhvdmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkY2Fyb3VzZWwtYnV0dG9uLWxhYmVsLXNoaWZ0LWhvdmVyKTsgLyogWzEyXSAqL1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuICAgIC5jLWNhcm91c2VsX19pdGVtIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQGlmICgkY2Fyb3VzZWwtaXRlbS1zcGFjaW5nKSB7IC8qIFs4XSAqL1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI+PSN7JGNhcm91c2VsLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY2Fyb3VzZWwtaXRlbS1zcGFjaW5nO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGNhcm91c2VsLWl0ZW0tc3BhY2luZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtY2Fyb3VzZWxfX2ltYWdlIHtcbiAgICAgICAgQGluY2x1ZGUgb2JqZWN0LWZpdCgpO1xuICAgICAgICB3aWR0aDogMTAwJTsgLyogWzJdICovXG4gICAgfVxuXG4gICAgLmMtY2Fyb3VzZWwtLWJ1dHRvbnMtdmlzaWJsZSB7IC8qIFsxOF0gKi9cblxuICAgICAgICAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtY2Fyb3VzZWwtLWJ1dHRvbnMtb24taG92ZXIgeyAvKiBbMTldICovXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzY3NzL21lZGlhLWZlYXR1cmUtdmFsdWUtZG9sbGFyLXZhcmlhYmxlICovXG4gICAgICAgIEBtZWRpYSAocG9pbnRlcjogY29hcnNlKSB7IC8qIFsyMV0gKi9cbiAgICAgICAgICAgIC5mbGlja2l0eS1mdWxsc2NyZWVuLWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogaW1wb3J0YW50KDEsIHRydWUpOyAvKiBbMjBdICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbixcbiAgICAgICAgLmZsaWNraXR5LWZ1bGxzY3JlZW4tYnV0dG9uIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcblxuICAgICAgICAgICAgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24sXG4gICAgICAgICAgICAuZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b24ge1xuXG4gICAgICAgICAgICAgICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNDQVJPVVNFTCAoU2V0dGluZ3MpXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGNhcm91c2VsLWJ1dHRvbi13aWR0aDogICAgICAgICAgICAgICAgICBtYXAtZ2V0KCRJQ09OLVNRVUFSRS1GVUxMLVNJWkVTLCBtZWRpdW0pICFkZWZhdWx0O1xuJGNhcm91c2VsLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtYnV0dG9uLWJhY2tncm91bmQtY29sb3ItaG92ZXI6ICRCVVRUT04tSUNPTi1JTlRFUkFDVElPTi1CQUNLR1JPVU5ELUNPTE9SLUhPVkVSLU9OLUxJR0hUICFkZWZhdWx0O1xuJGNhcm91c2VsLWJ1dHRvbi1pY29uLXNpemU6ICAgICAgICAgICAgICBpY29uLXNpemUoc21hbGwpICFkZWZhdWx0O1xuJGNhcm91c2VsLWJ1dHRvbi1pY29uLWNvbG9yOiAgICAgICAgICAgICAkQ09MT1ItQkFTRS1URVhUICFkZWZhdWx0O1xuJGNhcm91c2VsLWJ1dHRvbi1uZXh0LWljb246ICAgICAgICAgICAgICBnZXQtaWNvbihhcnJvdy1yaWdodCkgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtYnV0dG9uLXByZXYtaWNvbjogICAgICAgICAgICAgIGdldC1pY29uKGFycm93LWxlZnQpICFkZWZhdWx0O1xuJGNhcm91c2VsLWJ1dHRvbi1vZmZzZXQ6ICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcblxuJGNhcm91c2VsLXBhZ2UtZG90LXBvc2l0aW9uLWluc2lkZTogICAgICB0cnVlICFkZWZhdWx0O1xuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0NBUk9VU0VMXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNrb2RhLWNhcm91c2VsLWNvdW50ZXItb2Zmc2V0OiAgICAgICAgICAgICAgICAgICAgICAgJGZsaWNraXR5LWJ1dHRvbi1vZmZzZXQgIWRlZmF1bHQ7XG4kc2tvZGEtY2Fyb3VzZWwtY291bnRlci1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kc2tvZGEtY2Fyb3VzZWwtY291bnRlci1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAkR0xPQkFMLUJPUkRFUi1SQURJVVMtU01BTEwgIWRlZmF1bHQ7XG4kc2tvZGEtY2Fyb3VzZWwtY291bnRlci1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICByZ2JhKCRDT0xPUi1PTi1TVVJGQUNFLTkwMCwgMC43NSkgIWRlZmF1bHQ7XG4kc2tvZGEtY2Fyb3VzZWwtY291bnRlci1mb250LWNvbG9yLWN1cnJlbnQ6ICAgICAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG5cbiRza29kYS1jYXJvdXNlbC1mdWxsc2NyZWVuLWNvdW50ZXItb2Zmc2V0LWhvcml6b250YWw6ICgkZmxpY2tpdHktZnVsbHNjcmVlbi1idXR0b24tc2l6ZSArICgyICogJHNrb2RhLWNhcm91c2VsLWNvdW50ZXItb2Zmc2V0KSkgIWRlZmF1bHQ7XG4kc2tvZGEtY2Fyb3VzZWwtZnVsbHNjcmVlbi1jb3VudGVyLW9mZnNldC12ZXJ0aWNhbDogICAkc2tvZGEtY2Fyb3VzZWwtY291bnRlci1vZmZzZXQgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIFN1cHByZXNzIHVud2FudGVkIHNwYWNpbmcgaW4gZnVsbHNjcmVlbiBtb2RlLlxuICogWzJdIFJlc2V0IGB0cmFuc2Zvcm1gIGJlY2F1c2UgdGhlIHBhZ2luYXRpb24gZG9lcyBub3QgaGF2ZVxuICogICAgIHRvIGJlIGRpc3BsYXllZCBjZW50ZXJlZCBhY2NvcmRpbmcgdG8gYnJhbmQgZ3VpZGVsaW5lcy5cbiAqIFszXSBFbmZvcmNlIGNvdW50ZXIgYWNjb3JkaW5nIHRvIGJyYW5kIGd1aWRlbGluZXMuXG4gKiBbNF0gT3ZlcndyaXRlIGBtaW4taGVpZ2h0YCBzbyB0aGF0IHRoZSBiYWNrZ3JvdW5kIGNvbG9yXG4gKiAgICAgb2YgdGhlIGNvdW50ZXIgZ2V0cyB0aGUgY29ycmVjdCBoZWlnaHQuXG4gKiBbNV0gRW5mb3JjZSB2aXNpYmlsaXR5IG9mIGZ1bGxzY3JlZW4gYnV0dG9uIHNvIHRoYXQgdGhlcmUgaXNcbiAqICAgICBubyB2aXN1YWwgZ2FwIHRvIHBhZ2luYXRpb24gb25jZSB0aGUgQ1NTIG1vZGlmaWVyXG4gKiAgICAgYC5jLWNhcm91c2VsLS1idXR0b25zLW9uLWhvdmVyYCBpcyBzZXQuXG4gKiBbNl0gSGFuZGxlcyB0aGUgcmlnaHQgcG9zaXRpb25pbmcgb2YgcGFnaW5hdGlvbi5cbiAqIFs3XSBPdmVyd3JpdGUgYG91dGxpbmU6IDBgLCB3aGljaCBpcyBpbmhlcml0ZWRcbiAqICAgICBmcm9tIHRoZSBCcm9uc29uLURlZmF1bHQgcGFja2FnZS5cbiAqL1xuLmMtY2Fyb3VzZWwge1xuXG4gICAgJi5pcy1mdWxsc2NyZWVuIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7IC8qIFsxXSAqL1xuXG4gICAgICAgIC5mbGlja2l0eS1wYWdlLWRvdHMge1xuICAgICAgICAgICAgYm90dG9tOiAkc2tvZGEtY2Fyb3VzZWwtZnVsbHNjcmVlbi1jb3VudGVyLW9mZnNldC12ZXJ0aWNhbDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJltkYXRhLWNhcm91c2VsLWZ1bGxzY3JlZW49XCJ0cnVlXCJdIHtcblxuICAgICAgICAuZmxpY2tpdHktcGFnZS1kb3RzIHtcbiAgICAgICAgICAgIHJpZ2h0OiAkc2tvZGEtY2Fyb3VzZWwtZnVsbHNjcmVlbi1jb3VudGVyLW9mZnNldC1ob3Jpem9udGFsO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuZmxpY2tpdHktcGFnZS1kb3RzIHtcbiAgICAgICAgbGVmdDogYXV0bzsgLyogWzZdICovXG4gICAgICAgIHJpZ2h0OiAkc2tvZGEtY2Fyb3VzZWwtY291bnRlci1vZmZzZXQ7IC8qIFs2XSAqL1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRza29kYS1jYXJvdXNlbC1jb3VudGVyLXBhZGRpbmc7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRza29kYS1jYXJvdXNlbC1jb3VudGVyLXBhZGRpbmc7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTsgLyogWzJdICovXG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRza29kYS1jYXJvdXNlbC1jb3VudGVyLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRza29kYS1jYXJvdXNlbC1jb3VudGVyLWJhY2tncm91bmQtY29sb3I7XG5cbiAgICAgICAgLmRvdCB7XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtY2xhc3MgKi9cbiAgICAgICAgICAgICYuaXMtc2VsZWN0ZWQge1xuXG4gICAgICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSwgc2VsZWN0b3ItbWF4LWNsYXNzLCBtYXgtbmVzdGluZy1kZXB0aCAqL1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbXBvcnRhbnQoJHNrb2RhLWNhcm91c2VsLWNvdW50ZXItZm9udC1jb2xvci1jdXJyZW50LCB0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbiB7XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHsgLyogWzddICovXG4gICAgICAgICAgICBAaW5jbHVkZSBmb2N1cy1zdHlsZXMoKTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbiAgICAuYy1jYXJvdXNlbC0tYnV0dG9ucy1vbi1ob3ZlciB7XG5cbiAgICAgICAgLmZsaWNraXR5LWZ1bGxzY3JlZW4tYnV0dG9uIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7IC8qIFs1XSAqL1xuICAgICAgICB9XG5cbiAgICB9XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjU1RJQ0tZLUNPTlRBSU5FUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRzdGlja3ktY29udGFpbmVyLXBhZ2Utd3JhcDogICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kc3RpY2t5LWNvbnRhaW5lci1tYXgtaGVpZ2h0OiAgICAgICA3NXZoICFkZWZhdWx0O1xuJHN0aWNreS1jb250YWluZXItei1pbmRleDogICAgICAgICAgeihcInN0aWNreS1jb250YWluZXJcIikgIWRlZmF1bHQ7XG4kc3RpY2t5LWNvbnRhaW5lci1wYWRkaW5nLXZlcnRpY2FsOiAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRzdGlja3ktY29udGFpbmVyLWJhY2tncm91bmQtY29sb3I6ICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRzdGlja3ktY29udGFpbmVyLWJveC1zaGFkb3c6ICAgICAgICRHTE9CQUwtQk9YLVNIQURPVyAhZGVmYXVsdDtcbiRzdGlja3ktY29udGFpbmVyLWJvcmRlci1ib3R0b206ICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRzdGlja3ktY29udGFpbmVyLXNwYWNpbmc6ICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kc3RpY2t5LWNvbnRhaW5lci1zcGFjaW5nLXNtYWxsOiAgICBudWxsICFkZWZhdWx0O1xuJHN0aWNreS1jb250YWluZXItYnJlYWtwb2ludDogICAgICAgbnVsbCAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gQXMgdGhlIG5hbWUgc3VnZ2VzdHMsIHRoZSBjb21wb25lbnQgaXMgc3RpY2t5LiBGb3IgYnJvd3NlcnMgdGhhdCBkb27igJl0XG4gKiAgICAgc3VwcG9ydCBgcG9zaXRpb246IHN0aWNreWAsIG1ha2Ugc3VyZSB0byBwcm92aWRlIGEgSlMgcG9seWZpbGwuIEJ5XG4gKiAgICAgZGVmYXVsdCwgdGhpcyBpcyBwcm92aWRlZCBpbiBCcm9uc29uIHZpYSB0aGUgc3RpY2t5ZmlsbCBwb2x5ZmlsbC5cbiAqICAgICBAREVQUkVDQVRFRFxuICogWzJdIEVuc3VyZSB0aGF0IHRoZSB1c2VyIGlzIG5vdCB0cmFwcGVkIGluIHNjcm9sbGluZyBoZWxsIHdoZW4gdGhlIHN0aWNreVxuICogICAgIGNvbnRhaW5lciBjb250YWlucyBsb3Qgb2YgY29udGVudCBhbmQgdGhlIHZlcnRpY2FsIHNwYWNlIGlzIGxpbWl0ZWQgKGUuZy5cbiAqICAgICBvbiBzbWFsbCBzY3JlZW4pLlxuICogWzNdIE1ha2Ugc3VyZSB0aGF0IGFueSBwb3RlbnRpYWwgc3BhY2luZyBib3R0b20gaXMgZWxpbWluYXRlZC5cbiAqL1xuLmMtc3RpY2t5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHN0aWNreTsgLyogWzFdICovXG4gICAgei1pbmRleDogJHN0aWNreS1jb250YWluZXItei1pbmRleDtcbiAgICB0b3A6IDA7IC8qIFsxXSAqL1xuICAgIG1heC1oZWlnaHQ6ICRzdGlja3ktY29udGFpbmVyLW1heC1oZWlnaHQ7IC8qIFsyXSAqL1xuICAgIG92ZXJmbG93LXk6IGF1dG87IC8qIFsyXSAqL1xuICAgIHBhZGRpbmctdG9wOiAkc3RpY2t5LWNvbnRhaW5lci1wYWRkaW5nLXZlcnRpY2FsO1xuICAgIHBhZGRpbmctYm90dG9tOiAkc3RpY2t5LWNvbnRhaW5lci1wYWRkaW5nLXZlcnRpY2FsO1xuICAgIGJvcmRlci1ib3R0b206ICRzdGlja3ktY29udGFpbmVyLWJvcmRlci1ib3R0b207XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHN0aWNreS1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3gtc2hhZG93OiAkc3RpY2t5LWNvbnRhaW5lci1ib3gtc2hhZG93O1xufVxuXG4gICAgLmMtc3RpY2t5LWNvbnRhaW5lcl9faW5uZXIge1xuICAgICAgICBAaWYgKCRzdGlja3ktY29udGFpbmVyLXBhZ2Utd3JhcCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgcGFnZS13cmFwKCk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc3RpY2t5LWNvbnRhaW5lci1zcGFjaW5nO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHN0aWNreS1jb250YWluZXItc3BhY2luZztcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JHN0aWNreS1jb250YWluZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHN0aWNreS1jb250YWluZXItc3BhY2luZy1zbWFsbDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc3RpY2t5LWNvbnRhaW5lci1zcGFjaW5nLXNtYWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzNdICovXG4gICAgICAgIH1cblxuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNGT0xELU9VVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRmb2xkLW91dC1icmVha3BvaW50OiAgICAgICAgICAgICAgcyAhZGVmYXVsdDtcbiRmb2xkLW91dC1oZWFkZXItc3BhY2luZzogICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kZm9sZC1vdXQtaGVhZGVyLWljb246ICAgICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLWV4cGFuZCkgIWRlZmF1bHQ7XG4kZm9sZC1vdXQtaGVhZGVyLWljb24tY29sb3I6ICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiRmb2xkLW91dC1oZWFkZXItb3Blbi1zdGF0ZTogICAgICAgXCJbYXJpYS1leHBhbmRlZD0ndHJ1ZSddXCIgIWRlZmF1bHQ7XG4kZm9sZC1vdXQtaGVhZGVyLWNsb3NlLXN0YXRlOiAgICAgIFwiW2FyaWEtZXhwYW5kZWQ9J2ZhbHNlJ11cIiAhZGVmYXVsdDtcbiRmb2xkLW91dC1jb250ZW50LW9wZW4tc3RhdGU6ICAgICAgXCJbYXJpYS1oaWRkZW49J2ZhbHNlJ11cIiAhZGVmYXVsdDtcbiRmb2xkLW91dC1jb250ZW50LWNsb3NlLXN0YXRlOiAgICAgXCJbYXJpYS1oaWRkZW49J3RydWUnXVwiICFkZWZhdWx0O1xuJGZvbGQtb3V0LWljb24tcHNldWRvLWVsZW1lbnQ6ICAgICBcIjo6YWZ0ZXJcIiAhZGVmYXVsdDtcbiRmb2xkLW91dC1pY29uLXJvdGF0ZS1vcGVuLXN0YXRlOiAgMTgwZGVnICFkZWZhdWx0O1xuJGZvbGQtb3V0LWljb24tcm90YXRlLWNsb3NlLXN0YXRlOiAwICFkZWZhdWx0O1xuJGZvbGQtb3V0LWZvb3RlcjogICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kZm9sZC1vdXQtaGVhZGVyLWl0ZW0tc3BhY2luZy1ob3Jpem9udGFsOiAoXG4gICAgbnVsbDogICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULUxBUkdFLFxuICAgICRmb2xkLW91dC1icmVha3BvaW50OiAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCxcbikgIWRlZmF1bHQ7XG5cbiRmb2xkLW91dC1oZWFkZXItaWNvbi1zaXplOiAoXG4gICAgbnVsbDogICAgICAgICAgICAgICAgIGljb24tc2l6ZShtZWRpdW0pLFxuICAgICRmb2xkLW91dC1icmVha3BvaW50OiBpY29uLXNpemUoc21hbGwpLFxuKSAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gUmVzZXQgZGVmYXVsdCBgPGJ1dHRvbj5gIHN0eWxlcy5cbiAqIFsyXSBQcm92aWRlIHZlcnRpY2FsIHNwYWNpbmcgd2hlbiB0aGUgZm9sZC1vdXQgaXMgZXhwYW5kZWQuXG4gKiBbM10gRGlzcGxheSB0aGUgaGVhZCBhbmQgZm9vdGVyIGljb24gdmlhIHBzZXVkbyBlbGVtZW50IGFzIGl0IGlzXG4gKiAgICAgY29tcGxldGVseSBkZWNvcmF0aXZlLlxuICogWzRdIFRoZSBmb290ZXIgaWNvbiBpcyByZXZlcnNlZCBhY2NvcmRpbmcgdG8gaXRzIHBvc2l0aW9uLlxuICogWzVdIENvbmRpdGlvbmFsbHkgZGlzcGxheSBhIGZvbGQgb3V0IGZvb3Rlci5cbiAqIFs2XSBGb3JjZSB0aGUgY29ycmVjdCBjb2xvciBmb3IgdGhlIGJ1dHRvbiBhbmQgaXRzIGNoaWxkIGVsZW1lbnRzLlxuICogICAgIEZvciBleGFtcGxlLCBTYWZhcmkgMTUgb24gbWFjT1MgYW5kIGlPUyBoYXMgbWFkZSBzb21lIGNoYW5nZXNcbiAqICAgICB0byB0aGUgdXNlciBhZ2VudCBzdHlsZXMsIGluY2x1ZGluZyBvdmVycmlkaW5nIHRoZSBjb2xvciBwcm9wZXJ0eVxuICogICAgIG9mIGFsbCBmb3JtIGVsZW1lbnRzIHN1Y2ggYXMgaW5wdXRzLCBidXR0b25zIGV0Yy5cbiAqL1xuLmMtZm9sZC1vdXQge1xuICAgIEBpbmNsdWRlIHBhZ2Utd3JhcCgpO1xufVxuXG4gICAgLmMtZm9sZC1vdXRfX2hlYWRlciB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWJ1dHRvbigpOyAvKiBbMV0gKi9cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7IC8qIFs2XSAqL1xuXG4gICAgICAgICYjeyRmb2xkLW91dC1oZWFkZXItb3Blbi1zdGF0ZX0ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGZvbGQtb3V0LWhlYWRlci1zcGFjaW5nOyAvKiBbMl0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgID4gKiB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcIm1hcmdpbi1yaWdodFwiLCAkZm9sZC1vdXQtaGVhZGVyLWl0ZW0tc3BhY2luZy1ob3Jpem9udGFsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1mb2xkLW91dF9fY29udGVudCB7XG5cbiAgICAgICAgJjpub3QoI3skZm9sZC1vdXQtY29udGVudC1vcGVuLXN0YXRlfSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWZvbGQtb3V0X19mb290ZXIge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1idXR0b24oKTsgLyogWzFdICovXG4gICAgICAgIGRpc3BsYXk6IGlmKCRmb2xkLW91dC1mb290ZXIsIGZsZXgsIG5vbmUpOyAvKiBbNV0gKi9cbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgICAgQGlmICgkZm9sZC1vdXQtZm9vdGVyKSB7XG5cbiAgICAgICAgICAgICN7JGZvbGQtb3V0LWNvbnRlbnQtY2xvc2Utc3RhdGV9ICsgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skZm9sZC1vdXQtY29udGVudC1vcGVuLXN0YXRlfSArICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmI3skZm9sZC1vdXQtaWNvbi1wc2V1ZG8tZWxlbWVudH0ge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJGZvbGQtb3V0LWljb24tcm90YXRlLW9wZW4tc3RhdGU7IC8qIFs0XSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWZvbGQtb3V0X19oZWFkZXIsXG4gICAgLmMtZm9sZC1vdXRfX2Zvb3RlciB7IC8qIFszXSAgKi9cbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICYjeyRmb2xkLW91dC1pY29uLXBzZXVkby1lbGVtZW50fSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBpY29uLWZvbnQoKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXG4gICAgICAgICAgICAgICAgKFwiZmxleC1iYXNpc1wiLCAkZm9sZC1vdXQtaGVhZGVyLWljb24tc2l6ZSksXG4gICAgICAgICAgICAgICAgKFwiZm9udC1zaXplXCIsICRmb2xkLW91dC1oZWFkZXItaWNvbi1zaXplKSxcbiAgICAgICAgICAgICAgICAoXCJtYXJnaW4tbGVmdFwiLCAkZm9sZC1vdXQtaGVhZGVyLWl0ZW0tc3BhY2luZy1ob3Jpem9udGFsKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb250ZW50OiAkZm9sZC1vdXQtaGVhZGVyLWljb247XG4gICAgICAgICAgICBjb2xvcjogJGZvbGQtb3V0LWhlYWRlci1pY29uLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJiN7JGZvbGQtb3V0LWhlYWRlci1jbG9zZS1zdGF0ZX0jeyRmb2xkLW91dC1pY29uLXBzZXVkby1lbGVtZW50fSB7XG4gICAgICAgICAgICByb3RhdGU6ICRmb2xkLW91dC1pY29uLXJvdGF0ZS1jbG9zZS1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYjeyRmb2xkLW91dC1oZWFkZXItb3Blbi1zdGF0ZX0jeyRmb2xkLW91dC1pY29uLXBzZXVkby1lbGVtZW50fSB7XG4gICAgICAgICAgICByb3RhdGU6ICRmb2xkLW91dC1pY29uLXJvdGF0ZS1vcGVuLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICB9XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjRk9MRC1PVVQgKFNldHRpbmdzKVxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRmb2xkLW91dC1icmVha3BvaW50OiAgICAgICAgICAgICAgcyAhZGVmYXVsdDtcbiRmb2xkLW91dC1oZWFkZXItc3BhY2luZzogICAgICAgICAgMCAhZGVmYXVsdDtcbiRmb2xkLW91dC1pY29uLXJvdGF0ZS1jbG9zZS1zdGF0ZTogMGRlZyAhZGVmYXVsdDtcbiRmb2xkLW91dC1pY29uLXJvdGF0ZS1vcGVuLXN0YXRlOiAgNDVkZWcgIWRlZmF1bHQ7XG4kZm9sZC1vdXQtaWNvbi1wc2V1ZG8tZWxlbWVudDogICAgIFwiOjpiZWZvcmVcIiAhZGVmYXVsdDtcbiRmb2xkLW91dC1oZWFkZXItaWNvbjogICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtcGx1cykgIWRlZmF1bHQ7XG4kZm9sZC1vdXQtaGVhZGVyLWljb24tY29sb3I6ICAgICAgICRDT0xPUi1CQVNFICFkZWZhdWx0O1xuJGZvbGQtb3V0LWhlYWRlci1pY29uLXNpemU6IChcbiAgICBudWxsOiAgICAgICAgICAgICAgICAgaWNvbi1zaXplKHNtYWxsKSxcbiAgICAkZm9sZC1vdXQtYnJlYWtwb2ludDogaWNvbi1zaXplKHNtYWxsKVxuKSAhZGVmYXVsdDtcbiRmb2xkLW91dC1oZWFkZXItaXRlbS1zcGFjaW5nLWhvcml6b250YWw6IChcbiAgICBudWxsOiAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwsXG4gICAgJGZvbGQtb3V0LWJyZWFrcG9pbnQ6ICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMLFxuKSAhZGVmYXVsdDtcbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNGT0xELU9VVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRza29kYS1mb2xkLW91dC1jbG9zZS1idXR0b24tc3RhdGUtc2l6ZTogJEJVVFRPTi1JQ09OLUlOVEVSQUNUSU9OLVNJWkUgIWRlZmF1bHQ7XG4kc2tvZGEtZm9sZC1vdXQtY2xvc2UtYnV0dG9uLW9mZnNldDogICAgIC02cHggIWRlZmF1bHQ7XG4kc2tvZGEtZm9sZC1vdXQtaGVhZGVyLWhlaWdodDogICAgICAgICAgICgkc2tvZGEtZm9sZC1vdXQtY2xvc2UtYnV0dG9uLXN0YXRlLXNpemUgKyAkR0xPQkFMLUZPQ1VTLVdJRFRIICogMikgIWRlZmF1bHQ7IC8qIFsxXSAqL1xuXG4vKipcbiAqIFsxXSBTZXQgaGVpZ2h0IHRvIGhhdmUgYnV0dG9uIChpY29uKSBjbGlja2FibGUuXG4gKiAgICAgQWRkIG91dGxpbmUgYXMgb2Zmc2V0IHRvIGF2b2lkIG92ZXJmbG93L2N1dG9mZnMuXG4gKiBbMl0gT3V0bGluZSBoYW5kbGVkIHZpYSBpY29uLlxuICogWzNdIE1hZ2ljIG51bWJlcnMgZm9yIGFsaWduaW5nIGNpcmNsZSBmb3Igc3RhdGVzIHdpdGggaWNvbi5cbiAqIFs0XSBQbGFjZSBidXR0b24gKGljb24pIG9uIHRoZSByaWdodCBzaWRlLlxuICovXG4uYy1mb2xkLW91dF9faGVhZGVyIHtcbiAgICBAaW5jbHVkZSBidXR0b24taWNvbi1zdGF0ZXMoXG4gICAgICAgICRzaXplOiAgICAgICAgICAgICAgJHNrb2RhLWZvbGQtb3V0LWNsb3NlLWJ1dHRvbi1zdGF0ZS1zaXplLFxuICAgICAgICAkYWN0aXZlLXN0YXRlOiAgICAgIGZhbHNlLFxuICAgICAgICAkaGFuZGxlLXBvc2l0aW9uOiAgIGZhbHNlLFxuICAgICAgICAkaGFuZGxlLXRyYW5zaXRpb246IGZhbHNlLFxuICAgICk7XG5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiAwOyAvKiBbMl0gKi9cbiAgICB9XG5cbiAgICAmI3skZm9sZC1vdXQtaWNvbi1wc2V1ZG8tZWxlbWVudH0ge1xuICAgICAgICBvcmRlcjogMTsgLyogWzRdICovXG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKFxuICAgICAgICAgICAgJHRyYW5zaXRpb24tcHJvcGVydHk6IFwiYmFja2dyb3VuZC1jb2xvclwiLFxuICAgICAgICApO1xuICAgICAgICByaWdodDogJHNrb2RhLWZvbGQtb3V0LWNsb3NlLWJ1dHRvbi1vZmZzZXQ7IC8qIFszXSAqL1xuICAgIH1cblxuICAgICYjeyRmb2xkLW91dC1oZWFkZXItY2xvc2Utc3RhdGV9IHtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJiN7JGZvbGQtb3V0LWhlYWRlci1vcGVuLXN0YXRlfSB7XG4gICAgICAgIGhlaWdodDogJHNrb2RhLWZvbGQtb3V0LWhlYWRlci1oZWlnaHQ7IC8qIFsxXSAqL1xuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1BST0RVQ1QtSU5GT1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRwcm9kdWN0LWluZm8tYnJlYWtwb2ludDogICAgICAgICAgICAgICBzICFkZWZhdWx0O1xuJHByb2R1Y3QtaW5mby1ncmlkLWNvbHVtbnM6ICAgICAgICAgICAgIDFmciAxZnIgIWRlZmF1bHQ7XG4kcHJvZHVjdC1pbmZvLWdyaWQtcm93LWdhcDogKFxuICAgIG51bGw6ICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQsXG4gICAgJHByb2R1Y3QtaW5mby1icmVha3BvaW50OiAkR0xPQkFMLVNQQUNJTkctVU5JVCxcbikgIWRlZmF1bHQ7XG4kcHJvZHVjdC1pbmZvLWdyaWQtY29sdW1uLWdhcDogICAgICAgICAgJHByb2R1Y3QtaW5mby1ncmlkLXJvdy1nYXAgIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LWluZm8tcGFkZGluZzogICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kcHJvZHVjdC1pbmZvLWltYWdlLXNwYWNpbmctYm90dG9tOiAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LWluZm8tdGl0bGUtZm9udC1zaXplOiAgICAgICAgICAkRlM0ICFkZWZhdWx0O1xuJHByb2R1Y3QtaW5mby10aXRsZS10ZXh0LWNvbG9yOiAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kcHJvZHVjdC1pbmZvLXN1YnRpdGxlLXNwYWNpbmc6ICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJHByb2R1Y3QtaW5mby1zdWJ0aXRsZS1mb250LWZhbWlseTogICAgIG51bGwgIWRlZmF1bHQ7XG4kcHJvZHVjdC1pbmZvLXN1YnRpdGxlLWZvbnQtc2l6ZTogICAgICAgJEZTMyAhZGVmYXVsdDtcbiRwcm9kdWN0LWluZm8tc3VidGl0bGUtdGV4dC1jb2xvcjogICAgICAkcHJvZHVjdC1pbmZvLXRpdGxlLXRleHQtY29sb3IgIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LWluZm8tY2FwdGlvbi10ZXh0LWNvbG9yOiAgICAgICAkQ09MT1ItQkFTRS1URVhUICFkZWZhdWx0O1xuJHByb2R1Y3QtaW5mby1jYXB0aW9uLWZvbnQtc2l6ZTogICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbi8vIE1lZGlhIGNvbnRhaW5lciBzdHlsZXNcbiRwcm9kdWN0LWluZm8tbWVkaWEtc3BhY2luZy12ZXJ0aWNhbDogICBudWxsICFkZWZhdWx0O1xuJHByb2R1Y3QtaW5mby1tZWRpYS1zcGFjaW5nLWhvcml6b250YWw6IG51bGwgIWRlZmF1bHQ7XG5cbi8vIEFzaWRlIHN0eWxlXG4kcHJvZHVjdC1pbmZvLWFzaWRlLWJhY2tncm91bmQtY29sb3I6ICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJHByb2R1Y3QtaW5mby1hc2lkZS1zcGFjaW5nLXZlcnRpY2FsOiAgIG51bGwgIWRlZmF1bHQ7XG4kcHJvZHVjdC1pbmZvLWFzaWRlLXNwYWNpbmctaG9yaXpvbnRhbDogbnVsbCAhZGVmYXVsdDtcbiRwcm9kdWN0LWluZm8tYXNpZGUtZ3JpZC1yb3ctZ2FwOiAgICAgICBudWxsICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBDb25kaXRpb25hbGx5IHJlbmRlciB0aGUgaW5mbyBhc2lkZSBhcyBmbGV4IGNvbnRhaW5lciB0b1xuICogICAgIHNldCBhIGdhcCBpZiBpdCB3YXMgc3BlY2lmaWVkLlxuICogWzJdIFNwYW4gaGVhZGVyIGFjcm9zcyBjb2x1bW5zLlxuICovXG5cbi5jLXByb2R1Y3QtaW5mbyB7XG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcInJvdy1nYXBcIiwgJHByb2R1Y3QtaW5mby1ncmlkLXJvdy1nYXApO1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXCJjb2x1bW4tZ2FwXCIsICRwcm9kdWN0LWluZm8tZ3JpZC1jb2x1bW4tZ2FwKTtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFwicGFkZGluZ1wiLCAkcHJvZHVjdC1pbmZvLXBhZGRpbmcpO1xuXG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6ICRwcm9kdWN0LWluZm8tZ3JpZC1jb2x1bW5zO1xufVxuXG4gICAgLmMtcHJvZHVjdC1pbmZvX19tZWRpYSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXG4gICAgICAgICAgICAoXCJwYWRkaW5nLXRvcFwiLCAkcHJvZHVjdC1pbmZvLW1lZGlhLXNwYWNpbmctdmVydGljYWwpLFxuICAgICAgICAgICAgKFwicGFkZGluZy1yaWdodFwiLCAkcHJvZHVjdC1pbmZvLW1lZGlhLXNwYWNpbmctaG9yaXpvbnRhbCksXG4gICAgICAgICAgICAoXCJwYWRkaW5nLWJvdHRvbVwiLCAkcHJvZHVjdC1pbmZvLW1lZGlhLXNwYWNpbmctdmVydGljYWwpLFxuICAgICAgICAgICAgKFwicGFkZGluZy1sZWZ0XCIsICRwcm9kdWN0LWluZm8tbWVkaWEtc3BhY2luZy1ob3Jpem9udGFsKVxuICAgICAgICApO1xuXG4gICAgICAgIGdyaWQtY29sdW1uOiAxLzI7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JHByb2R1Y3QtaW5mby1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMjtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtcHJvZHVjdC1pbmZvX19hc2lkZSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXG4gICAgICAgICAgICAoXCJwYWRkaW5nLXRvcFwiLCAkcHJvZHVjdC1pbmZvLWFzaWRlLXNwYWNpbmctdmVydGljYWwpLFxuICAgICAgICAgICAgKFwicGFkZGluZy1yaWdodFwiLCAkcHJvZHVjdC1pbmZvLWFzaWRlLXNwYWNpbmctaG9yaXpvbnRhbCksXG4gICAgICAgICAgICAoXCJwYWRkaW5nLWJvdHRvbVwiLCAkcHJvZHVjdC1pbmZvLWFzaWRlLXNwYWNpbmctdmVydGljYWwpLFxuICAgICAgICAgICAgKFwicGFkZGluZy1sZWZ0XCIsICRwcm9kdWN0LWluZm8tYXNpZGUtc3BhY2luZy1ob3Jpem9udGFsKVxuICAgICAgICApO1xuXG4gICAgICAgIEBpZiAoJHByb2R1Y3QtaW5mby1hc2lkZS1ncmlkLXJvdy1nYXApIHsgLyogWzFdICovXG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFwicm93LWdhcFwiLCAkcHJvZHVjdC1pbmZvLWFzaWRlLWdyaWQtcm93LWdhcCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGdyaWQtY29sdW1uOiAyLzI7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaWYoJHByb2R1Y3QtaW5mby1hc2lkZS1iYWNrZ3JvdW5kLWNvbG9yLCAkcHJvZHVjdC1pbmZvLWFzaWRlLWJhY2tncm91bmQtY29sb3IsIG51bGwpO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRwcm9kdWN0LWluZm8tYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDI7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXByb2R1Y3QtaW5mb19faGVhZGVyIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTsgLyogWzJdICovXG4gICAgfVxuXG4gICAgLmMtcHJvZHVjdC1pbmZvX190aXRsZSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCRwcm9kdWN0LWluZm8tdGl0bGUtZm9udC1zaXplKTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBjb2xvcjogJHByb2R1Y3QtaW5mby10aXRsZS10ZXh0LWNvbG9yO1xuICAgIH1cblxuICAgIC5jLXByb2R1Y3QtaW5mb19fc3VidGl0bGUge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkcHJvZHVjdC1pbmZvLXN1YnRpdGxlLWZvbnQtc2l6ZSk7XG4gICAgICAgIG1hcmdpbi10b3A6ICRwcm9kdWN0LWluZm8tc3VidGl0bGUtc3BhY2luZztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRwcm9kdWN0LWluZm8tc3VidGl0bGUtZm9udC1mYW1pbHk7XG4gICAgICAgIGNvbG9yOiAkcHJvZHVjdC1pbmZvLXN1YnRpdGxlLXRleHQtY29sb3I7XG4gICAgfVxuXG4gICAgLmMtcHJvZHVjdC1pbmZvX19maWd1cmUge1xuXG4gICAgfVxuXG4gICAgLmMtcHJvZHVjdC1pbmZvX19pbWFnZSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXCJtYXJnaW4tYm90dG9tXCIsICRwcm9kdWN0LWluZm8taW1hZ2Utc3BhY2luZy1ib3R0b20pO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5jLXByb2R1Y3QtaW5mb19fY2FwdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKFxuICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkcHJvZHVjdC1pbmZvLWNhcHRpb24tZm9udC1zaXplLFxuICAgICAgICAgICAgJGFjY2VwdC1udWxsOiB0cnVlXG4gICAgICAgICk7XG4gICAgICAgIGNvbG9yOiAkcHJvZHVjdC1pbmZvLWNhcHRpb24tdGV4dC1jb2xvcjtcbiAgICB9XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjUFJPRFVDVC1JTkZPLVNVTU1BUllcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kcHJvZHVjdC1pbmZvLXN1bW1hcnktYnJlYWtwb2ludDogICAgICAgICAgICAgICAgICAgcyAhZGVmYXVsdDtcbiRwcm9kdWN0LWluZm8tc3VtbWFyeS1pbWFnZS1tYXgtd2lkdGg6ICAgICAgICAgICAgICAxNzVweCAhZGVmYXVsdDtcbiRwcm9kdWN0LWluZm8tc3VtbWFyeS10aXRsZS1zcGFjaW5nLWJvdHRvbTogICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kcHJvZHVjdC1pbmZvLXN1bW1hcnktdGl0bGUtZm9udC1zaXplOiAgICAgICAgICAgICAgJEZTNCAhZGVmYXVsdDtcbiRwcm9kdWN0LWluZm8tc3VtbWFyeS10aXRsZS1mb250LXdlaWdodDogICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQgIWRlZmF1bHQ7XG4kcHJvZHVjdC1pbmZvLXN1bW1hcnktdGl0bGUtZm9udC1mYW1pbHk6ICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRwcm9kdWN0LWluZm8tc3VtbWFyeS10aXRsZS1jb2xvcjogICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHByb2R1Y3QtaW5mby1zdW1tYXJ5LXN1YnRpdGxlLWZvbnQtc2l6ZTogICAgICAgICAgICRGUzAgIWRlZmF1bHQ7XG4kcHJvZHVjdC1pbmZvLXN1bW1hcnktc3VidGl0bGUtY29sb3I6ICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRwcm9kdWN0LWluZm8tc3VtbWFyeS1zdWJ0aXRsZS1mb250LWZhbWlseTogICAgICAgICBudWxsICFkZWZhdWx0O1xuJHByb2R1Y3QtaW5mby1zdW1tYXJ5LXN1YnRpdGxlLWZvbnQtd2VpZ2h0OiAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kcHJvZHVjdC1pbmZvLXN1bW1hcnktaW5mby1mb250LXNpemU6ICAgICAgICAgICAgICAgJEZTMiAhZGVmYXVsdDtcbiRwcm9kdWN0LWluZm8tc3VtbWFyeS1pbmZvLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICBub25lICFkZWZhdWx0O1xuJHByb2R1Y3QtaW5mby1zdW1tYXJ5LWluZm8tZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCAhZGVmYXVsdDtcbiRwcm9kdWN0LWluZm8tc3VtbWFyeS1pbmZvLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHByb2R1Y3QtaW5mby1zdW1tYXJ5LWluZm8tY29sb3I6ICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kcHJvZHVjdC1pbmZvLXN1bW1hcnktaW5mby12YWx1ZS1mb250LXNpemU6ICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRwcm9kdWN0LWluZm8tc3VtbWFyeS1pbmZvLXJvdy1nYXA6ICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHByb2R1Y3QtaW5mby1zdW1tYXJ5LWNvbXBhY3Qtc3BhY2luZy1ob3Jpem9udGFsOiAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhYU01BTEwgIWRlZmF1bHQ7XG4kcHJvZHVjdC1pbmZvLXN1bW1hcnktY29tcGFjdC1pbmZvLXZhbHVlLWZvbnQtc2l6ZTogJEZTMyAhZGVmYXVsdDtcbiRwcm9kdWN0LWluZm8tc3VtbWFyeS1pdGVtLXNwYWNpbmctaG9yaXpvbnRhbDogKFxuICAgIG51bGw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1MQVJHRSxcbiAgICAkcHJvZHVjdC1pbmZvLXN1bW1hcnktYnJlYWtwb2ludDogJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTExcbikgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIEluIGNvbXBhY3QgbW9kZSB3ZSByZW1vdmUgdGhlIGJvdHRvbSBzcGFjaW5nIGZyb20gdGhlIGluZm8gbGFiZWwuXG4gKiBbMl0gUHVsbCB0aGUgaW5mbyBlbGVtZW50IHRvIHRoZSByaWdodC5cbiAqIFszXSBDaGFuZ2UgYGZsZXgtZGlyZWN0aW9uYCB0byBhcnJhbmdlIGl0ZW1zIG9uZSBiZWxvdyB0aGUgb3RoZXIuXG4gKi9cbi5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skcHJvZHVjdC1pbmZvLXN1bW1hcnktYnJlYWtwb2ludH1cIikge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyAvKiBbM10gKi9cbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgPiAqIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcblxuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcIm1hcmdpbi1yaWdodFwiLCAkcHJvZHVjdC1pbmZvLXN1bW1hcnktaXRlbS1zcGFjaW5nLWhvcml6b250YWwpO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmLmMtcHJvZHVjdC1pbmZvLXN1bW1hcnktLWNvbXBhY3Qge1xuXG4gICAgICAgIC5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5X19pbWcge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5X19pbmZvIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtcHJvZHVjdC1pbmZvLXN1bW1hcnlfX2luZm8tdmFsdWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoJHByb2R1Y3QtaW5mby1zdW1tYXJ5LWNvbXBhY3QtaW5mby12YWx1ZS1mb250LXNpemUpO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRwcm9kdWN0LWluZm8tc3VtbWFyeS1jb21wYWN0LXNwYWNpbmctaG9yaXpvbnRhbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5X19pbmZvLWxhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IC8qIFsxXSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtcHJvZHVjdC1pbmZvLXN1bW1hcnlfX2hlYWRpbmcge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5X190aXRsZSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcm9kdWN0LWluZm8tc3VtbWFyeS1jb21wYWN0LXNwYWNpbmctaG9yaXpvbnRhbDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG4gICAgLmMtcHJvZHVjdC1pbmZvLXN1bW1hcnlfX2ltZyB7XG4gICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgIGZsZXgtYmFzaXM6ICRwcm9kdWN0LWluZm8tc3VtbWFyeS1pbWFnZS1tYXgtd2lkdGg7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGZvbGQtb3V0LWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5X19oZWFkaW5nIHtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skcHJvZHVjdC1pbmZvLXN1bW1hcnktYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5X190aXRsZSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCRwcm9kdWN0LWluZm8tc3VtbWFyeS10aXRsZS1mb250LXNpemUpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtaW5mby1zdW1tYXJ5LXRpdGxlLXNwYWNpbmctYm90dG9tO1xuICAgICAgICBmb250LWZhbWlseTogJHByb2R1Y3QtaW5mby1zdW1tYXJ5LXRpdGxlLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXdlaWdodDogJHByb2R1Y3QtaW5mby1zdW1tYXJ5LXRpdGxlLWZvbnQtd2VpZ2h0O1xuICAgICAgICBjb2xvcjogJHByb2R1Y3QtaW5mby1zdW1tYXJ5LXRpdGxlLWNvbG9yO1xuICAgIH1cblxuICAgIC5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5X19zdWJ0aXRsZSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCRwcm9kdWN0LWluZm8tc3VtbWFyeS1zdWJ0aXRsZS1mb250LXNpemUpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRwcm9kdWN0LWluZm8tc3VtbWFyeS1zdWJ0aXRsZS1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRwcm9kdWN0LWluZm8tc3VtbWFyeS1zdWJ0aXRsZS1mb250LXdlaWdodDtcbiAgICAgICAgY29sb3I6ICRwcm9kdWN0LWluZm8tc3VtbWFyeS1zdWJ0aXRsZS1jb2xvcjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skcHJvZHVjdC1pbmZvLXN1bW1hcnktYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtcHJvZHVjdC1pbmZvLXN1bW1hcnlfX2luZm8ge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICAgJHByb2R1Y3QtaW5mby1zdW1tYXJ5LWluZm8tZm9udC1zaXplLFxuICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAkcHJvZHVjdC1pbmZvLXN1bW1hcnktaW5mby1saW5lLWhlaWdodFxuICAgICAgICApO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICByb3ctZ2FwOiAkcHJvZHVjdC1pbmZvLXN1bW1hcnktaW5mby1yb3ctZ2FwO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsgLyogWzJdICovXG4gICAgICAgIGZvbnQtZmFtaWx5OiAkcHJvZHVjdC1pbmZvLXN1bW1hcnktaW5mby1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRwcm9kdWN0LWluZm8tc3VtbWFyeS1pbmZvLWZvbnQtd2VpZ2h0O1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgY29sb3I6ICRwcm9kdWN0LWluZm8tc3VtbWFyeS1pbmZvLWNvbG9yO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRwcm9kdWN0LWluZm8tc3VtbWFyeS1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAgICAgLmMtcHJvZHVjdC1pbmZvLXN1bW1hcnlfX2luZm8tdmFsdWUge1xuICAgICAgICAgICAgQGlmICgkcHJvZHVjdC1pbmZvLXN1bW1hcnktaW5mby12YWx1ZS1mb250LXNpemUpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkcHJvZHVjdC1pbmZvLXN1bW1hcnktaW5mby12YWx1ZS1mb250LXNpemUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjUExZUi1PVkVSUklERVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFRoaXMgcGFydGlhbCBvdmVycmlkZXMgdGhlIGRlZmF1bHQgc3R5bGVzIG9mIHBseXIgdGhhdCBjb3VsZG4ndCBiZSBoYW5kbGVkXG4gKiB3aXRoIHRoZSB2YXJpYWJsZXMgaW4gYDA2LXZlbmRvci9wbHlyL192ZW5kb3IucGx5ci5zZXR0aW5ncy5zY3NzYC5cbiAqL1xuXG4kcGx5ci1jb250cm9scy1ob3Jpem9udGFsLXNwYWNpbmc6ICAgICAgICAgICAgICAkcGx5ci1jb250cm9sLXNwYWNpbmcgIWRlZmF1bHQ7XG4kcGx5ci1jb250cm9scy1pdGVtLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgICAoJHBseXItY29udHJvbC1zcGFjaW5nICogMC41KSAhZGVmYXVsdDtcbiRwbHlyLWNvbnRyb2xzLWl0ZW0tc3BhY2luZy1hdC1icmVha3BvaW50OiAgICAgIG51bGwgIWRlZmF1bHQ7XG4kcGx5ci1jb250cm9scy1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgICByZ2JhKCRDT0xPUi1CTEFDSywgJE9QQUNJVFktSElHSEVTVCkgIWRlZmF1bHQ7XG4kcGx5ci1jb250cm9scy10cmFuc2l0aW9uOiAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVRSQU5TSVRJT04gIWRlZmF1bHQ7XG4kcGx5ci1jb250cm9scy10cmFuc2l0aW9uLXJlc2V0OiAgICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuJHBseXItY29udHJvbHMtcGxheS10aW1lLWNvbG9yOiAgICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuXG4kcGx5ci1jb250cm9scy1idXR0b24tc2l6ZTogICAgICAgICAgICAgICAgICAgICBhdXRvICFkZWZhdWx0O1xuJHBseXItY29udHJvbHMtYnV0dG9uLXNpemUtYXQtYnJlYWtwb2ludDogICAgICAgJHBseXItY29udHJvbHMtYnV0dG9uLXNpemUgIWRlZmF1bHQ7XG4kcGx5ci1jb250cm9scy1idXR0b24tYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogICBudWxsICFkZWZhdWx0O1xuJHBseXItY29udHJvbHMtYnV0dG9uLWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJHBseXItY29udHJvbHMtYnV0dG9uLWJvcmRlci13aWR0aDogICAgICAgICAgICAgMCAhZGVmYXVsdDtcbiRwbHlyLWNvbnRyb2xzLWJ1dHRvbi1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgIDUwJSAhZGVmYXVsdDtcbiRwbHlyLWNvbnRyb2xzLWJ1dHRvbi1ib3JkZXItY29sb3I6ICAgICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJHBseXItY29udHJvbHMtYnV0dG9uLWJvcmRlcjogICAgICAgICAgICAgICAgICAgJHBseXItY29udHJvbHMtYnV0dG9uLWJvcmRlci13aWR0aCBzb2xpZCAkcGx5ci1jb250cm9scy1idXR0b24tYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuXG4vLyBGb2N1cyBzdHlsZXMgb2YgYWxsIGNvbnRyb2xzXG4kcGx5ci1jb250cm9scy1mb2N1cy1vdXRsaW5lLWNvbG9yOiAgICAgICAgICAgICAkcGx5ci1jb250cm9scy1idXR0b24tY29sb3ItaG92ZXIgIWRlZmF1bHQ7XG4kcGx5ci1jb250cm9scy1mb2N1cy1vdXRsaW5lLW9mZnNldDogICAgICAgICAgICA0cHggIWRlZmF1bHQ7XG5cbi8vIENhcHRpb25zXG4kcGx5ci1jb250cm9scy1jYXB0aW9ucy1wYWRkaW5nOiAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcblxuLy8gQ2FwdGlvbiAoSXRlbSlcbiRwbHlyLWNvbnRyb2xzLWNhcHRpb24tcGFkZGluZzogICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kcGx5ci1jb250cm9scy1jYXB0aW9uLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHBseXItY29udHJvbHMtY2FwdGlvbi1sZXR0ZXItc3BhY2luZzogICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuJHBseXItY29udHJvbHMtYnV0dG9uLW92ZXJsYXktYmFja2dyb3VuZC1ob3ZlcjogJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJHBseXItY29udHJvbHMtYnV0dG9uLW92ZXJsYXktaWNvbi1jb2xvci1ob3ZlcjogJENPTE9SLUJMQUNLICFkZWZhdWx0O1xuXG4kcGx5ci1jb250cm9scy12b2x1bWUtc3BhY2luZzogICAgICAgICAgICAgICAgICAkcGx5ci1jb250cm9sLXNwYWNpbmcgIWRlZmF1bHQ7XG4kcGx5ci1jb250cm9scy12b2x1bWUtcGFkZGluZzogICAgICAgICAgICAgICAgICAoJHBseXItY29udHJvbC1zcGFjaW5nICogMC41KSAhZGVmYXVsdDtcbiRwbHlyLWNvbnRyb2xzLXZvbHVtZS13aWR0aC1taW46ICAgICAgICAgICAgICAgIDEwMHB4ICFkZWZhdWx0O1xuJHBseXItY29udHJvbHMtdm9sdW1lLXdpZHRoLW1heDogICAgICAgICAgICAgICAgMTUwcHggIWRlZmF1bHQ7XG4kcGx5ci1jb250cm9scy12b2x1bWUtdmVydGljYWw6ICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRwbHlyLWNvbnRyb2xzLXZvbHVtZS12ZXJ0aWNhbC13aWR0aDogICAgICAgICAgIDgwcHggIWRlZmF1bHQ7XG4kcGx5ci1jb250cm9scy12b2x1bWUtdmVydGljYWwtaGVpZ2h0OiAgICAgICAgICAyMHB4ICFkZWZhdWx0O1xuJHBseXItY29udHJvbHMtdm9sdW1lLXZlcnRpY2FsLW9mZnNldC10b3A6ICAgICAgLSgkcGx5ci1jb250cm9scy12b2x1bWUtc3BhY2luZykgIWRlZmF1bHQ7XG4kcGx5ci1jb250cm9scy12b2x1bWUtdmVydGljYWwtb2Zmc2V0LWxlZnQ6ICAgICAoJHBseXItY29udHJvbHMtdm9sdW1lLXZlcnRpY2FsLWhlaWdodCAqIDAuNSkgIWRlZmF1bHQ7XG5cbiRwbHlyLWNvbnRyb2xzLW92ZXJsYXktc2l6ZTogICAgICAgICAgICAgICAgICAgIDYwcHggIWRlZmF1bHQ7XG4kcGx5ci1jb250cm9scy1vdmVybGF5LXNpemUtYXQtYnJlYWtwb2ludDogICAgICA0NHB4ICFkZWZhdWx0O1xuJHBseXItY29udHJvbHMtb3ZlcmxheS1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgMnB4ICFkZWZhdWx0O1xuJHBseXItY29udHJvbHMtb3ZlcmxheS1ib3JkZXItY29sb3I6ICAgICAgICAgICAgJHBseXItY29sb3ItbWFpbiAhZGVmYXVsdDtcbiRwbHlyLWNvbnRyb2xzLW92ZXJsYXktYm9yZGVyOiAgICAgICAgICAgICAgICAgICRwbHlyLWNvbnRyb2xzLW92ZXJsYXktYm9yZGVyLXdpZHRoIHNvbGlkICRwbHlyLWNvbnRyb2xzLW92ZXJsYXktYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJHBseXItY29udHJvbHMtb3ZlcmxheS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJHBseXItY29udHJvbHMtb3ZlcmxheS1pY29uLWNvbG9yOiAgICAgICAgICAgICAgJENPTE9SLUJMQUNLICFkZWZhdWx0O1xuJHBseXItY29udHJvbHMtb3ZlcmxheS1pY29uLXNpemU6ICAgICAgICAgICAgICAgaWNvbi1zaXplKHNtYWxsKSAhZGVmYXVsdDtcbiRwbHlyLWNvbnRyb2xzLW92ZXJsYXktc2hhZG93OiAgICAgICAgICAgICAgICAgIG5vbmUgIWRlZmF1bHQ7XG5cbiRwbHlyLWNvbnRyb2xzLXRpbWUtc3BhY2luZzogICAgICAgICAgICAgICAgICAgICgkcGx5ci1jb250cm9scy1ob3Jpem9udGFsLXNwYWNpbmcgKiAyKSAhZGVmYXVsdDtcblxuLy8gQ29udHJvbHMgc2V0dGluZ3MgYW5kIHJlc3BvbnNpdmUgYmVoYXZpb3VyXG4kcGx5ci1icmVha3BvaW50OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzICFkZWZhdWx0O1xuJHBseXItY29udHJvbHMtcmVzcG9uc2l2ZTogICAgICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG5cbiRwbHlyLWNvbnRyb2xzLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgIDYwcHggIWRlZmF1bHQ7XG4kcGx5ci1jb250cm9scy1oZWlnaHQtYXQtYnJlYWtwb2ludDogICAgICAgICAgICAoJHBseXItY29udHJvbHMtaGVpZ2h0ICogMC41KSAhZGVmYXVsdDtcblxuJHBseXItY29udHJvbC1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKHNtYWxsKSAhZGVmYXVsdDtcbiRwbHlyLWNvbnRyb2wtaWNvbi1zaXplLWF0LWJyZWFrcG9pbnQ6ICAgICAgICAgICgkcGx5ci1jb250cm9sLWljb24tc2l6ZSAqIDAuNSkgIWRlZmF1bHQ7XG4kcGx5ci1jb250cm9sLWljb24tcG9zaXRpb25pbmc6ICAgICAgICAgICAgICAgICAwIGF1dG8gIWRlZmF1bHQ7XG5cbiRwbHlyLXJhbmdlLXRodW1iLXNjYWxlLWFjdGl2ZTogICAgICAgICAgICAgICAgIDEuMyAhZGVmYXVsdDtcblxuJHBseXItdG9vbHRpcC1vZmZzZXQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCRwbHlyLWNvbnRyb2xzLWhlaWdodCAqIDAuNSkgLSAoJHBseXItcmFuZ2UtdGh1bWItaGVpZ2h0ICogMC41KSAhZGVmYXVsdDtcbiRwbHlyLXRvb2x0aXAtb2Zmc2V0LWF0LWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICgkcGx5ci1jb250cm9scy1oZWlnaHQtYXQtYnJlYWtwb2ludCAqIDAuNSkgLSAoJHBseXItcmFuZ2UtdGh1bWItaGVpZ2h0ICogMC41KSAhZGVmYXVsdDtcbiRwbHlyLXRvb2x0aXAtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdICBSZW1vdmUgcGFkZGluZyBhbmQgdGFrZSBjYXJlIG9mIHNwYWNpbmcgYXQgYW5vdGhlciBwbGFjZS5cbiAqIFsyXSAgU2V0IHRoZSBoZWlnaHQgb2YgdGhlIGNvbnRyb2wgYmFyIHRvIHRoZSBjb3JyZWN0IGhlaWdodC5cbiAqIFszXSAgSW5pdGlhbGx5IGhpZGUgdGhlIGNvbnRyb2xzLCBzbyB5b3UgZG9uJ3Qgc2VlIHRoZW0gYmVmb3JlXG4gKiAgICAgIHRoZSB2aWRlbyBzdGFydGVkLi4uXG4gKiBbNF0gIC4uLmFuZCBzaG93IHRoZW0gYWdhaW4gd2hlbiB0aGUgbW91c2UgZW50ZXJzIHRoZSB2aWRlbyBjb250YWluZXIuXG4gKiBbNV0gIFRoZSBwbHlyIHZpZGVvLXBsYXllciBub3RpY2VzLCB3aGVuIHRoZSBtb3VzZSBoYXNuJ3QgYmVlbiBtb3ZlZCBmb3IgdHdvXG4gKiAgICAgIHNlY29uZHMuIEl0IHRoZW4gcHV0cyB0aGUgYC5wbHlyLS1oaWRlLWNvbnRyb2xzYCBjbGFzcyB0byB0aGUgY29udGFpbmVyLlxuICogICAgICBTaW5jZSB3ZSd2ZSBvdmVycmlkZGVuIHRoZSBiYXNpYyBhcHBlYXJhbmNlIG9mIHRoZSBjb250cm9scyB3aXRoIFszXVxuICogICAgICBhbmQgWzRdLCB3ZSBuZWVkIHRvIG92ZXJyaWRlIGl0IGFnYWluIGhlcmUsIHNvIHRoYXQgdGhlIGNvbnRyb2xzXG4gKiAgICAgIGFjdHVhbGx5IGhpZGUgYWZ0ZXIgdHdvIHNlY29uZHMgb2Ygbm8gbW91c2UgbW92ZW1lbnQuXG4gKiBbNl0gIElmIHlvdSBzcGVjaWZ5IHZvaWNlcyBpbiB0aGUgY2FwdGlvbnMsIHR3byBgPHNwYW4+YHMgZ2V0IGdlbmVyYXRlZFxuICogICAgICBpbnNpZGUgb2YgZWFjaCBvdGhlciBhbmQgYm90aCBnZXQgYSBoYWxmLXRyYW5zcGFyZW50IGJhY2tncm91bmQgYW5kXG4gKiAgICAgIHBhZGRpbmcgYnkgZGVmYXVsdCB3aGljaCBsb29rcyBraW5kYSBvZGQuIFRoaXMgb3ZlcnJpZGUgcmVtb3Zlc1xuICogICAgICB0aGUgYmFja2dyb3VuZCBvZiB0aGUgaW5uZXIgYDxzcGFuPmAuXG4gKiBbN10gIEJ1dHRvbiBob3ZlciBzdHlsZXMgZm9yIGNvbnRyb2xzLlxuICogWzhdICBQbGF5IEJ1dHRvbiBob3ZlciBzdHlsZS5cbiAqIFs5XSAgVW5mb3J0dW5hdGVseSwgd2UgY2Fubm90IHVzZSB0aGUgYHRyYW5zbGF0ZWAgdHJpY2sgdG8gY2VudGVyIHRoZSBpY29uLFxuICogICAgICBiZWNhdXNlIHRoYXQgZG9lc24ndCB3b3JrIGluIG9sZGVyIEZpcmVmb3ggdmVyc2lvbnMgKGUuZy4gdjUyKS5cbiAqICAgICAgU2VlIEJST04tODI4LlxuICogWzEwXSBQb3NpdGlvbiB0b29sdGlwIGFib3ZlIGNvbnRyb2wgc2VjdGlvbi5cbiAqIFsxMV0gRGVzcGl0ZSBzZXQgb3B0aW9ucyBmb3Igdm9sdW1lIGFuZCBtdXRlLFxuICogICAgICB0aGUgZWxlbWVudHMgZ2V0IGFuIGBbaGlkZGVuXWAgYXR0cmlidXRlIHJlc3VsdGluZyBpbiBgZGlzcGxheTpub25lYC5cbiAqIFsxMl0gQ2hhbmdlIHRoZSBkZWZhdWx0IGNvbnRyb2wtaXRlbSBvcmRlcjogUGxheSwgVm9sdW1lLCAuLi5cbiAqIFsxM10gVGFyZ2V0IGFyZWEgdG8gYnJpZGdlIGdhcCBiZXR3ZWVuIHZvbHVtZSBidXR0b24gYW5kIHZvbHVtZSBzbGlkZXIuXG4gKiBbMTRdIEZhZGUtaW4gdm9sdW1lIHNsaWRlci5cbiAqIFsxNV0gUmVtb3ZlIHNwYWNpbmcgd2hlbiB2b2x1bWUgc2xpZGVyIGlzIHZlcnRpY2FsLlxuICogWzE2XSBPdmVycmlkZSBzcGVjaWZpY2l0eSBzZXQgYnkgcGx1Z2luIHN0eWxlcy5cbiAqIFsxN10gUHJldmVudCBpbnRlcmFjdGlvbiB3aXRoIG5vbi12aXNpYmxlIHBvc3Rlci5cbiAqIFsxOF0gUHJldmVudCBvdmVyd3JpdGUgb2Ygd2lkdGggZGVjbGFyYXRpb24gZnJvbSBwbHlyIHZlbmRvciBzdHlsZXMuXG4gKiBbMTldIFJlbW92ZSB0aGUgdHJhbnNwYXJlbmN5IG9mIHRoZSBwbGF5IGJ1dHRvbi5cbiAqIFsyMF0gVXNlIGB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwc2AgaW5zdGVhZCBvZiBgdHJhbnNpdGlvbjogbm9uZWAuXG4gKiAgICAgIEJ5IGRlZmF1bHQgdGhlIGJyb3dzZXIgc2V0IHRoZSBgdHJhbnNpdGlvbi1wcm9wZXJ0eWAgdG8gYGFsbGBcbiAqICAgICAgZm9yIGVhY2ggZWxlbWVudC4gU2V0dGluZyB0aGUgYHRyYW5zaXRpb24tZHVyYXRpb25gIHRvIHRoZSBkZWZhdWx0IGAwc2BcbiAqICAgICAgcmVuZGVycyB0aGUgYHRyYW5zaXRpb24tcHJvcGVydHlgIGlycmVsZXZhbnQuXG4gKiBbMjFdIFJlcGxhY2UgdGhlIGRvdHRlZCBvdXRsaW5lIHdpdGggYSB2aXN1YWwgYm9yZGVyIGFzIGEga2V5Ym9hcmQtb25seVxuICogICAgICBmb2N1cyBzdHlsZS4gVGhlIHZpc3VhbCBib3JkZXIgaXMgYWNjb21wbGlzaGVkIHdpdGggYGJveC1zaGFkb3dgLlxuICogWzIyXSBGb2N1cyBzdHlsZXMgb2YgYWxsIGNvbnRyb2xzLlxuICogWzIzXSBIYW5kbGVzIHRoZSB0cmFjayBjb2xvciBvZiB0aGUgYGlucHV0W3R5cGU9XCJyYW5nZVwiXWAuXG4gKiAgICAgIEFscmVhZHkgZGVmaW5lZCBpbiBgcGx5ci9zcmMvc2Fzcy9jb21wb25lbnRzL3NsaWRlcnMuc2Nzc2AuXG4gKiAgICAgIFNpbmNlIHdlIGhhdmUgZGlzYWJsZWQgQ1NTIGN1c3RvbSBwcm9wZXJ0aWVzIHdpdGhpbiB0aGUgcGx5ciBzdHlsZXMsXG4gKiAgICAgIHdlIG5lZWQgdG8gcmVzZXQgdGhlIHRyYWNrIGNvbG9yIGhlcmUuIENTUyBjdXN0b20gcHJvcGVydGllcyBhcmVcbiAqICAgICAgbmVjZXNzYXJ5IGF0IHRoaXMgcG9pbnQuXG4gKiBbMjRdIFNwZWNpZnkgYHRyYW5zaXRpb24tcHJvcGVydHlgIHRvIGF2b2lkIHBlcmZvcm1hbmNlIGlzc3Vlcy5cbiAqIFsyNV0gSW5jcmVhc2UgdGhlIGBvdXRsaW5lLW9mZnNldGAgdG8gcHJldmVudCB0aGUgZm9jdXMgcmluZyB0byBjbGFzaCB3aXRoIGNvbnRyb2xzLlxuICogWzI2XSBTdGFjayBjYXB0aW9ucyBhYm92ZSBjb250cm9scy5cbiAqL1xuXG4ucGx5ci0tdmlkZW8ge1xuXG4gICAgLnBseXJfX2NvbnRyb2xzIHtcbiAgICAgICAgei1pbmRleDogMjA7XG4gICAgICAgIGhlaWdodDogJHBseXItY29udHJvbHMtaGVpZ2h0OyAvKiBbMl0gKi9cbiAgICAgICAgcGFkZGluZzogJHBseXItY29udHJvbC1zcGFjaW5nOyAvKiBbMV0gKi9cbiAgICAgICAgYmFja2dyb3VuZDogJHBseXItY29udHJvbHMtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgb3BhY2l0eTogMDsgLyogWzNdICovXG5cbiAgICAgICAgQGlmICgkcGx5ci1jb250cm9scy1yZXNwb25zaXZlKSB7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRwbHlyLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRwbHlyLWNvbnRyb2xzLWhlaWdodC1hdC1icmVha3BvaW50O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICgkcGx5ci1jb250cm9scy1ob3Jpem9udGFsLXNwYWNpbmcgKiAyKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICgkcGx5ci1jb250cm9scy1ob3Jpem9udGFsLXNwYWNpbmcgKiAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46ICRwbHlyLWNvbnRyb2wtaWNvbi1wb3NpdGlvbmluZztcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRwbHlyLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICRwbHlyLWNvbnRyb2wtaWNvbi1zaXplLWF0LWJyZWFrcG9pbnQ7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJHBseXItY29udHJvbC1pY29uLXNpemUtYXQtYnJlYWtwb2ludDtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAkcGx5ci1jb250cm9sLWljb24tc2l6ZS1hdC1icmVha3BvaW50O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAucGx5cl9fY29udHJvbCB7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwbHlyLWNvbnRyb2xzLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOyAvKiBbN10gKi9cbiAgICAgICAgICAgICAgICBjb2xvcjogJHBseXItY29udHJvbHMtYnV0dG9uLWNvbG9yLWhvdmVyOyAvKiBbN10gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAucGx5cl9fY29udHJvbCB7XG5cbiAgICAgICAgLy8gRm9jdXMgc3R5bGVzXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSxcbiAgICAgICAgJi5wbHlyX190YWItZm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9jdXMtc3R5bGVzKFxuICAgICAgICAgICAgICAgICRvdXRsaW5lLWNvbG9yOiAgJHBseXItY29udHJvbHMtZm9jdXMtb3V0bGluZS1jb2xvciwgLyogWzIyXSAqL1xuICAgICAgICAgICAgICAgICRvdXRsaW5lLW9mZnNldDogJHBseXItY29udHJvbHMtZm9jdXMtb3V0bGluZS1vZmZzZXQsIC8qIFsyMl0gKi9cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiBpZigkcGx5ci1jb250cm9scy10cmFuc2l0aW9uLXJlc2V0LCAwcywgbnVsbCk7IC8qIFsyMF0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbi5wbHlyX19jYXB0aW9ucyB7XG4gICAgei1pbmRleDogMTA7IC8qIFsyNl0gKi9cbiAgICBwYWRkaW5nOiAkcGx5ci1jb250cm9scy1jYXB0aW9ucy1wYWRkaW5nO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbeF0gKi9cblxuICAgICoge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICB9XG5cbiAgICBzcGFuIHNwYW4ge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgLyogWzZdICovXG4gICAgfVxuXG59XG5cbi5wbHlyX19jYXB0aW9uIHtcbiAgICBwYWRkaW5nOiAkcGx5ci1jb250cm9scy1jYXB0aW9uLXBhZGRpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJHBseXItY29udHJvbHMtY2FwdGlvbi1ib3JkZXItcmFkaXVzO1xuICAgIGxldHRlci1zcGFjaW5nOiAkcGx5ci1jb250cm9scy1jYXB0aW9uLWxldHRlci1zcGFjaW5nO1xufVxuXG4ucGx5cl9fcHJvZ3Jlc3NfX2J1ZmZlciB7XG5cbiAgICAucGx5ci0tdmlkZW8gJiB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG59XG5cbi5wbHlyX19jb250cm9scyB7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skcGx5ci1icmVha3BvaW50fVwiKSB7XG4gICAgICAgIGhlaWdodDogJHBseXItY29udHJvbHMtaGVpZ2h0LWF0LWJyZWFrcG9pbnQ7XG4gICAgfVxuXG4gICAgLnBseXI6aG92ZXIgJixcbiAgICAucGx5cjpmb2N1cy13aXRoaW4gJiB7XG4gICAgICAgIG9wYWNpdHk6IDE7IC8qIFs0XSAqL1xuICAgIH1cblxuICAgIC5wbHlyLnBseXItLWhpZGUtY29udHJvbHM6aG92ZXIgJixcbiAgICAucGx5ci5wbHlyLS1oaWRlLWNvbnRyb2xzOmZvY3VzLXdpdGhpbiAmLCB7XG4gICAgICAgIG9wYWNpdHk6IDA7IC8qIFs1XSAqL1xuICAgIH1cblxuICAgIC5jLWhlcm8tdGVhc2VyLS12aWRlbyAmIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAucGx5cl9fY29udHJvbHNfX2l0ZW0ge1xuICAgICAgICBtYXJnaW4tbGVmdDogJHBseXItY29udHJvbHMtaXRlbS1zcGFjaW5nO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRwbHlyLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkcGx5ci1jb250cm9scy1pdGVtLXNwYWNpbmctYXQtYnJlYWtwb2ludDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5wbHlyX190aW1lIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRwbHlyLWNvbnRyb2xzLXRpbWUtc3BhY2luZztcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9eHNcIikge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRwbHlyLWNvbnRyb2xzLWhvcml6b250YWwtc3BhY2luZztcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbi5wbHlyX190aW1lLS1jdXJyZW50IHtcbiAgICBjb2xvcjogJHBseXItY29udHJvbHMtcGxheS10aW1lLWNvbG9yO1xufVxuXG4ucGx5cl9fdG9vbHRpcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBseXItdG9vbHRpcC1vZmZzZXQ7IC8qIFsxMF0gKi9cbiAgICBwYWRkaW5nOiAkcGx5ci10b29sdGlwLXBhZGRpbmc7XG4gICAgbGluZS1oZWlnaHQ6ICRwbHlyLXRvb2x0aXAtbGluZS1oZWlnaHQ7XG5cbiAgICBAaWYgKCRwbHlyLWNvbnRyb2xzLXJlc3BvbnNpdmUpIHtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skcGx5ci1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkcGx5ci10b29sdGlwLW9mZnNldC1hdC1icmVha3BvaW50O1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuLnBseXJfX2NvbnRyb2wucGx5cl9fY29udHJvbCB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS10b3VjaC1oaWdobGlnaHQoKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAkcGx5ci1jb250cm9scy1idXR0b24tc2l6ZTtcbiAgICBoZWlnaHQ6ICRwbHlyLWNvbnRyb2xzLWJ1dHRvbi1zaXplO1xuICAgIG1pbi13aWR0aDogYXV0bzsgLyogWzE4XSAqL1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAkcGx5ci1jb250cm9scy1idXR0b24tYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6ICRwbHlyLWNvbnRyb2xzLWJ1dHRvbi1ib3JkZXItcmFkaXVzO1xuXG4gICAgQGlmICgkcGx5ci1jb250cm9scy1yZXNwb25zaXZlKSB7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JHBseXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgd2lkdGg6ICRwbHlyLWNvbnRyb2xzLWJ1dHRvbi1zaXplLWF0LWJyZWFrcG9pbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwbHlyLWNvbnRyb2xzLWJ1dHRvbi1zaXplLWF0LWJyZWFrcG9pbnQ7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5wbHlyX19tZW51X19jb250YWluZXIgJiB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5pdGlhbDtcbiAgICB9XG5cbn1cblxuLnBseXIgLnBseXJfX2NvbnRyb2wtLW92ZXJsYWlkIHtcbiAgICB3aWR0aDogJHBseXItY29udHJvbHMtb3ZlcmxheS1zaXplO1xuICAgIGhlaWdodDogJHBseXItY29udHJvbHMtb3ZlcmxheS1zaXplO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiBpZigkcGx5ci1jb250cm9scy1vdmVybGF5LWJvcmRlciwgJHBseXItY29udHJvbHMtb3ZlcmxheS1ib3JkZXIsIG51bGwpO1xuICAgIGJhY2tncm91bmQ6ICRwbHlyLWNvbnRyb2xzLW92ZXJsYXktYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHBseXItY29udHJvbHMtb3ZlcmxheS1pY29uLWNvbG9yO1xuICAgIGJveC1zaGFkb3c6ICRwbHlyLWNvbnRyb2xzLW92ZXJsYXktc2hhZG93O1xuICAgIG9wYWNpdHk6IDE7IC8qIFsxOV0gKi9cblxuICAgIEBpZiAoJHBseXItY29udHJvbHMtcmVzcG9uc2l2ZSkge1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRwbHlyLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgIHdpZHRoOiAkcGx5ci1jb250cm9scy1vdmVybGF5LXNpemUtYXQtYnJlYWtwb2ludDtcbiAgICAgICAgICAgIGhlaWdodDogJHBseXItY29udHJvbHMtb3ZlcmxheS1zaXplLWF0LWJyZWFrcG9pbnQ7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cy12aXNpYmxlLFxuICAgICYucGx5cl9fdGFiLWZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHBseXItY29udHJvbHMtYnV0dG9uLW92ZXJsYXktYmFja2dyb3VuZC1ob3ZlcjsgLyogWzhdICovXG4gICAgICAgIGNvbG9yOiAkcGx5ci1jb250cm9scy1idXR0b24tb3ZlcmxheS1pY29uLWNvbG9yLWhvdmVyOyAvKiBbOF0gKi9cbiAgICB9XG5cbiAgICAuYy1oZXJvLXRlYXNlci0tdmlkZW8gJiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB3aWR0aDogJHBseXItY29udHJvbHMtb3ZlcmxheS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHBseXItY29udHJvbHMtb3ZlcmxheS1pY29uLXNpemU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0oJHBseXItY29udHJvbHMtb3ZlcmxheS1pY29uLXNpemUgKiAwLjUpOyAvKiBbOV0gKi9cbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0oJHBseXItY29udHJvbHMtb3ZlcmxheS1pY29uLXNpemUgKiAwLjUpOyAvKiBbOV0gKi9cbiAgICB9XG5cbn1cblxuLnBseXJfX3Bvc3RlciB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyAvKiBbMTddICovXG5cbiAgICAucGx5ci0tc3RvcHBlZC5wbHlyX19wb3N0ZXItZW5hYmxlZCAmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG5cbn1cblxuLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4ucGx5ci0tZnVsbC11aS5wbHlyLS12aWRlbyBpbnB1dFt0eXBlPVwicmFuZ2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIC8vIFByZXNzZWQgc3R5bGVzXG4gICAgJjphY3RpdmUsXG4gICAgJjpob3ZlciB7XG5cbiAgICAgICAgJjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgjeyRwbHlyLXJhbmdlLXRodW1iLXNjYWxlLWFjdGl2ZX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKCN7JHBseXItcmFuZ2UtdGh1bWItc2NhbGUtYWN0aXZlfSk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC8vIEZvY3VzIHN0eWxlc1xuICAgIC8vIFBseXIgdmVyc2lvbiBvZiBgOmZvY3VzLXZpc2libGVgXG4gICAgJjpmb2N1cy12aXNpYmxlLFxuICAgICYucGx5cl9fdGFiLWZvY3VzIHtcbiAgICAgICAgQGluY2x1ZGUgZm9jdXMtc3R5bGVzKFxuICAgICAgICAgICAgJG91dGxpbmUtY29sb3I6ICAkcGx5ci1jb250cm9scy1mb2N1cy1vdXRsaW5lLWNvbG9yLCAvKiBbMjJdICovXG4gICAgICAgICAgICAkb3V0bGluZS1vZmZzZXQ6ICRwbHlyLWNvbnRyb2xzLWZvY3VzLW91dGxpbmUtb2Zmc2V0LCAvKiBbMjJdICovXG4gICAgICAgICk7XG5cblxuICAgICAgICAmOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gICAgICAgICAgICBvdXRsaW5lOiAwOyAvKiBbMjFdICovXG4gICAgICAgIH1cblxuICAgICAgICAmOjotbW96LXJhbmdlLXRyYWNrIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7IC8qIFsyMV0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLy8gUmFuZ2UgdHJhY2sgc3R5bGVzXG4gICAgJjo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIGN1cnJlbnRDb2xvciB2YXIoLS12YWx1ZSwgMCUpLCB0cmFuc3BhcmVudCB2YXIoLS12YWx1ZSwgMCUpKTsgLyogWzIzXSAqL1xuICAgIH1cblxufVxuXG4ucGx5ciAucGx5cl9fdm9sdW1lIHsgLyogWzExXSAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgbWluLXdpZHRoOiAkcGx5ci1jb250cm9scy12b2x1bWUtd2lkdGgtbWluO1xuICAgIG1heC13aWR0aDogJHBseXItY29udHJvbHMtdm9sdW1lLXdpZHRoLW1heDtcblxuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRwbHlyLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmLnBseXJfX2NvbnRyb2xzX19pdGVtIHsgLyogWzE2XSAqL1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOyAvKiBbMTVdICovXG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLXdpdGhpbiB7XG5cbiAgICAgICAgaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7IC8qIFsxNF0gKi9cbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7IC8qIFsxNF0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgQGlmICgkcGx5ci1jb250cm9scy12b2x1bWUtdmVydGljYWwpIHtcbiAgICAgICAgd2lkdGg6IGF1dG87IC8qIFsxNV0gKi9cbiAgICAgICAgbWluLXdpZHRoOiAwOyAvKiBbMTVdICovXG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcblxuICAgICAgICAvLyBUYXJnZXQgYXJlYVxuICAgICAgICAmOjphZnRlciB7IC8qIFsxM10gKi9cbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHBseXItY29udHJvbC1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwbHlyLWNvbnRyb2xzLXZvbHVtZS12ZXJ0aWNhbC13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIFtkYXRhLXBseXI9XCJtdXRlXCJdIHtcbiAgICAgICAgICAgIHdpZHRoOiAkcGx5ci1jb250cm9sLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0W3R5cGU9XCJyYW5nZVwiXSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6ICRwbHlyLWNvbnRyb2xzLXZvbHVtZS12ZXJ0aWNhbC1vZmZzZXQtdG9wO1xuICAgICAgICAgICAgbGVmdDogJHBseXItY29udHJvbHMtdm9sdW1lLXZlcnRpY2FsLW9mZnNldC1sZWZ0O1xuICAgICAgICAgICAgd2lkdGg6ICRwbHlyLWNvbnRyb2xzLXZvbHVtZS12ZXJ0aWNhbC13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJHBseXItY29udHJvbHMtdm9sdW1lLXZlcnRpY2FsLWhlaWdodDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRwbHlyLWNvbnRyb2xzLXZvbHVtZS1wYWRkaW5nO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwbHlyLWNvbnRyb2xzLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkcGx5ci1jb250cm9scy10cmFuc2l0aW9uO1xuICAgICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgdmlzaWJpbGl0eTsgLyogWzI0XSAqL1xuICAgICAgICAgICAgb3BhY2l0eTogMDsgLyogWzE0XSAqL1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOyAvKiBbMTRdICovXG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRwbHlyLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICB0b3A6IC0oJHBseXItY29udHJvbHMtaGVpZ2h0LWF0LWJyZWFrcG9pbnQgKiAwLjUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxufVxuLyogc3R5bGVsaW50LWVuYWJsZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHkgKi9cblxuLnBseXIgW2RhdGEtcGx5cj1cIm11dGVcIl0geyAvKiBbMTFdICovXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG5cbi5wbHlyOm5vdCgucGx5ci0tY2FwdGlvbnMtZW5hYmxlZCkgW2RhdGEtcGx5cj1cImNhcHRpb25zXCJdIHtcbiAgICBkaXNwbGF5OiBub25lOyAvKiBbMTFdICovXG59XG5cblxuLnBseXItLWNhcHRpb25zLWVuYWJsZWQgW2RhdGEtcGx5cj1cImNhcHRpb25zXCJdLFxuLnBseXItLXBpcC1zdXBwb3J0ZWQgW2RhdGEtcGx5cj1cInBpcFwiXSxcbi5wbHlyLS1haXJwbGF5LXN1cHBvcnRlZCBbZGF0YS1wbHlyPVwiYWlycGxheVwiXSxcbi5wbHlyLS1mdWxsc2NyZWVuLWVuYWJsZWQgW2RhdGEtcGx5cj1cImZ1bGxzY3JlZW5cIl0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI1BMWVItT1ZFUlJJREVTIChTZXR0aW5ncylcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kcGx5ci1jb250cm9scy1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRwbHlyLWNvbnRyb2xzLXRyYW5zaXRpb24tcmVzZXQ6ICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuXG4kcGx5ci1jb250cm9scy1vdmVybGF5LXNpemU6ICAgICAgICAgICAgICAgICAgICBtYXAtZ2V0KCRJQ09OLVJPVU5ELUZVTEwtU0laRVMsIG1lZGl1bSkgIWRlZmF1bHQ7XG4kcGx5ci1jb250cm9scy1vdmVybGF5LXNpemUtYXQtYnJlYWtwb2ludDogICAgICAkcGx5ci1jb250cm9scy1vdmVybGF5LXNpemUgIWRlZmF1bHQ7XG4kcGx5ci1jb250cm9scy1vdmVybGF5LWljb24tc2l6ZTogICAgICAgICAgICAgICBpY29uLXNpemUobWVkaXVtKSAhZGVmYXVsdDtcbiRwbHlyLWNvbnRyb2xzLW92ZXJsYXktaWNvbi1jb2xvcjogICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRwbHlyLWNvbnRyb2xzLW92ZXJsYXktYmFja2dyb3VuZDogICAgICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJHBseXItY29udHJvbHMtb3ZlcmxheS1ib3JkZXI6ICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG5cbiRwbHlyLWNvbnRyb2xzLWl0ZW0tc3BhY2luZzogICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcblxuJHBseXItY29udHJvbHMtYnV0dG9uLW92ZXJsYXktYmFja2dyb3VuZC1ob3ZlcjogJENPTE9SLVRSQU5TUEFSRU5DWS1RVUFSVEVSTkFSWSAhZGVmYXVsdDtcbiRwbHlyLWNvbnRyb2xzLWJ1dHRvbi1vdmVybGF5LWljb24tY29sb3ItaG92ZXI6ICRwbHlyLWNvbnRyb2xzLW92ZXJsYXktaWNvbi1jb2xvciAhZGVmYXVsdDtcblxuJHBseXItY29udHJvbHMtZm9jdXMtb3V0bGluZS1vZmZzZXQ6ICAgICAgICAgICAgMCAhZGVmYXVsdDsgLy8gSGFuZGxlZCB2aWEgYnV0dG9uIHNpemVcblxuJHBseXItY29udHJvbHMtY2FwdGlvbi1wYWRkaW5nOiAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJHBseXItY29udHJvbHMtY2FwdGlvbi1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgJEdMT0JBTC1CT1JERVItUkFESVVTLVNNQUxMICFkZWZhdWx0O1xuJHBseXItY29udHJvbHMtY2FwdGlvbi1sZXR0ZXItc3BhY2luZzogICAgICAgICAgJEdMT0JBTC1GT05ULUxFVFRFUi1TUEFDSU5HICFkZWZhdWx0O1xuXG4kcGx5ci1jb250cm9scy10aW1lLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgICAwICFkZWZhdWx0O1xuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1BMWVItT1ZFUlJJREVTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNrb2RhLXBseXItcHJvZ3Jlc3Mtc3BhY2luZy1ib3R0b206ICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcblxuJHNrb2RhLXBseXItY29udHJvbHMtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJHNrb2RhLXBseXItY29udHJvbHMtcGFkZGluZy1hdC1icmVha3BvaW50OiAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcblxuJHNrb2RhLXBseXItY29udHJvbHMtZmlsdGVyLWNvbG9yOiAgICAgICAgICAgICAgIHJnYmEoMCwgMCwgMCwgMC4zNSkgIWRlZmF1bHQ7XG4kc2tvZGEtcGx5ci1jb250cm9scy1vdmVybGF5LXNoYWRvdzogICAgICAgICAgICAgJERST1AtU0hBRE9XLVBMQVktQlVUVE9OICFkZWZhdWx0O1xuJHNrb2RhLXBseXItY29udHJvbHMtb3ZlcmxheS1zaXplOiAgICAgICAgICAgICAgIDIwMHB4ICFkZWZhdWx0O1xuJHNrb2RhLXBseXItY29udHJvbHMtb3ZlcmxheS1zaXplLWF0LWJyZWFrcG9pbnQ6IDEwMHB4ICFkZWZhdWx0O1xuXG4kc2tvZGEtcGx5ci1jb250cm9sLWJhY2tncm91bmQtaG92ZXItc2l6ZTogICAgICAgbWFwLWdldCgkSUNPTi1ST1VORC1GVUxMLVNJWkVTLCBtZWRpdW0pICFkZWZhdWx0O1xuJHNrb2RhLXBseXItY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiAgICAgICAgICAgICRCVVRUT04tSUNPTi1JTlRFUkFDVElPTi1CQUNLR1JPVU5ELUNPTE9SLUhPVkVSLU9OLURBUksgIWRlZmF1bHQ7XG4kc2tvZGEtcGx5ci1jb250cm9sLXNjYWxlLWFjdGl2ZTogICAgICAgICAgICAgICAgJEJVVFRPTi1TQ0FMRS1BQ1RJVkUgIWRlZmF1bHQ7XG5cbiRza29kYS1wbHlyLXBseXItdGh1bWItZm9jdXMtb2Zmc2V0OiAgICAgICAgICAgICA0cHggIWRlZmF1bHQ7XG5cbiRza29kYS1wbHlyLXZvbHVtZS10aHVtYi1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAkUkFOR0UtU0xJREVSLVRIVU1CLUJBQ0tHUk9VTkQtTElHSFQgIWRlZmF1bHQ7XG4kc2tvZGEtcGx5ci12b2x1bWUtcmFuZ2UtYmFja2dyb3VuZDogICAgICAgICAgICAgJFJBTkdFLVNMSURFUi1UUkFDSy1CQUNLR1JPVU5ELUNPTE9SLUxJR0hUICFkZWZhdWx0O1xuJHNrb2RhLXBseXItdm9sdW1lLXJhbmdlLWJhY2tncm91bmQtZmlsbGVkOiAgICAgICRSQU5HRS1TTElERVItVFJBQ0stRklMTEVELUJBQ0tHUk9VTkQtQ09MT1ItTElHSFQgIWRlZmF1bHQ7XG5cbiRza29kYS1wbHlyLXRpbWUtZm9udC1zaXplLWF0LWJyZWFrcG9pbnQ6ICAgICAgICBtYXAtZ2V0KCRGUy0yLCBudWxsKSAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gRGlzYWJsZSBkZWZhdWx0IG91dGxpbmUuXG4gKiBbMl0gQXBwbHkgY3VzdG9tIG91dGxpbmUgdG8gdGh1bWIuXG4gKiBbM10gUmVkdWNlIHNwZWNpZmljaXR5IHRvIHJlc3BlY3QgdmlzaWJpbGl0eSBzZXR0aW5ncyBmb3IgY2VydGFpbiBjb250cm9sc1xuICogICAgIChlLmcuIGNhcHRpb24pLlxuICogWzRdIFJlbW92ZSBmaXhlZCBoZWlnaHQuIFNldCBpdCBoZXJlIGluc3RlYWQgb2YgbW9kdWxlIHZhcmlhYmxlIGFzIGl0IGlzXG4gKiAgICAgdXNlZCBmb3IgbXVsdGlwbGUgY2FsY3VsYXRpb25zLlxuICovXG5cbi8vIEFkZCBzY29wZSB0byBtYXRjaCBzcGVjaWZpY2l0eVxuLnBseXItLXZpZGVvIHtcblxuICAgIC8vIEdyYWRpZW50IHRvIGltcHJvdmUgdmlzaWJpbGl0eVxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6ICRza29kYS1wbHlyLWNvbnRyb2xzLW92ZXJsYXktc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgJHNrb2RhLXBseXItY29udHJvbHMtZmlsdGVyLWNvbG9yLCB0cmFuc3BhcmVudCk7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBvcGFjaXR5OiAwO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRwbHlyLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgIGhlaWdodDogJHNrb2RhLXBseXItY29udHJvbHMtb3ZlcmxheS1zaXplLWF0LWJyZWFrcG9pbnQ7XG4gICAgICAgIH1cblxuICAgIH1cblxuXG4gICAgJjpob3ZlciB7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLnBseXJfX2NvbnRyb2xzIHtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGhlaWdodDogYXV0bzsgLyogWzRdICovXG4gICAgICAgIHBhZGRpbmctdG9wOiAkc2tvZGEtcGx5ci1jb250cm9scy1wYWRkaW5nLXZlcnRpY2FsO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHNrb2RhLXBseXItY29udHJvbHMtcGFkZGluZy12ZXJ0aWNhbDtcbiAgICB9XG5cbiAgICA6d2hlcmUoLnBseXJfX2NvbnRyb2wpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7IC8qIFszXSAqL1xuICAgIH1cblxuICAgIC5wbHlyX19jb250cm9sIHtcblxuICAgICAgICAmOm5vdCgucGx5cl9fY29udHJvbC0tb3ZlcmxhaWQpIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2tvZGEtcGx5ci1jb250cm9sLWJhY2tncm91bmQtaG92ZXItc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNrb2RhLXBseXItY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyLXNpemU7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRza29kYS1wbHlyLWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgc2NhbGU6ICRza29kYS1wbHlyLWNvbnRyb2wtc2NhbGUtYWN0aXZlO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAvLyBJbmNyZWFzZSBzcGVjaWZpY2l0eSB0byBvdmVyd3JpdGUgZGVmYXVsdFxuICAgIC5wbHlyX19jb250cm9sc19faXRlbS5wbHlyX19wcm9ncmVzc19fY29udGFpbmVyIHtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTsgLy8gZW5mb3JjZSBvd24gXCJyb3dcIlxuICAgICAgICBvcmRlcjogNTA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG5cbiAgICAucGx5cl9fY29udHJvbC0tb3ZlcmxhaWQge1xuICAgICAgICBmaWx0ZXI6ICRza29kYS1wbHlyLWNvbnRyb2xzLW92ZXJsYXktc2hhZG93O1xuICAgIH1cblxuICAgIC5wbHlyX190aW1lIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyAvLyBwdXNoIHN1YnNlcXVlbnQgaXRlbXMgdG8gdGhlIHJpZ2h0XG4gICAgfVxuXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG9yZGVyL29yZGVyICovXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JHBseXItYnJlYWtwb2ludH1cIikge1xuXG4gICAgICAgIC5wbHlyX19jb250cm9scyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2tvZGEtcGx5ci1jb250cm9scy1wYWRkaW5nLWF0LWJyZWFrcG9pbnQ7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC8vIFJlLWxheW91dCBjb250cm9sc1xuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPiN7JHBseXItYnJlYWtwb2ludH1cIikge1xuXG4gICAgICAgIC5wbHlyX19jb250cm9sc19faXRlbS5wbHlyX19wcm9ncmVzc19fY29udGFpbmVyIHtcbiAgICAgICAgICAgIG9yZGVyOiAtNTA7IC8vIHBsYWNlIGFib3ZlIGNvbnRyb2xzXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRza29kYS1wbHlyLXByb2dyZXNzLXNwYWNpbmctYm90dG9tO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBseXJfX2NvbnRyb2xzX19pdGVtIHtcblxuICAgICAgICAgICAgJltkYXRhLXBseXI9XCJwbGF5XCJdIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogLTMwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wbHlyX192b2x1bWUge1xuICAgICAgICAgICAgICAgIG9yZGVyOiAtMzA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JHBseXItYnJlYWtwb2ludH1cIikge1xuXG4gICAgICAgIC5wbHlyX19jb250cm9sc19faXRlbVtkYXRhLXBseXI9XCJwbGF5XCJdIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAucGx5cl9fdGltZSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHNrb2RhLXBseXItdGltZS1mb250LXNpemUtYXQtYnJlYWtwb2ludDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuLnBseXItLWZ1bGwtdWkucGx5ci0tdmlkZW8gaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcblxuICAgICY6Zm9jdXMtdmlzaWJsZSxcbiAgICAmLnBseXJfX3RhYi1mb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIG91dGxpbmU6IDA7IC8qIFsxXSAqL1xuXG4gICAgICAgICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcblxuICAgICAgICAgICAgQGluY2x1ZGUgZm9jdXMtc3R5bGVzKFxuICAgICAgICAgICAgICAgICRvdXRsaW5lLWNvbG9yOiAgJHBseXItY29sb3ItbWFpbixcbiAgICAgICAgICAgICAgICAkb3V0bGluZS1vZmZzZXQ6ICRza29kYS1wbHlyLXBseXItdGh1bWItZm9jdXMtb2Zmc2V0LFxuICAgICAgICAgICAgKTtcblxuICAgICAgICB9XG5cbiAgICAgICAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGZvY3VzLXN0eWxlcyhcbiAgICAgICAgICAgICAgICAkb3V0bGluZS1jb2xvcjogICRwbHlyLWNvbG9yLW1haW4sXG4gICAgICAgICAgICAgICAgJG91dGxpbmUtb2Zmc2V0OiAkc2tvZGEtcGx5ci1wbHlyLXRodW1iLWZvY3VzLW9mZnNldCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuXG4ucGx5ci0tZnVsbC11aSB7XG5cbiAgICBpbnB1dFtkYXRhLXBseXI9XCJ2b2x1bWVcIl1bdHlwZT1cInJhbmdlXCJdIHtcbiAgICAgICAgY29sb3I6ICRza29kYS1wbHlyLXZvbHVtZS1yYW5nZS1iYWNrZ3JvdW5kLWZpbGxlZDtcblxuICAgICAgICAmOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2tvZGEtcGx5ci12b2x1bWUtdGh1bWItYmFja2dyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNrb2RhLXBseXItdm9sdW1lLXRodW1iLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2tvZGEtcGx5ci12b2x1bWUtcmFuZ2UtYmFja2dyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNrb2RhLXBseXItdm9sdW1lLXJhbmdlLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZBVi1CVVRUT05cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG5cbiRmYXYtYnV0dG9uLXRleHQtc2l6ZTogICAgICAgICAgICAgICAgICAkRlMwICFkZWZhdWx0O1xuJGZhdi1idXR0b24tdHJhbnNpdGlvbi1wcm9wZXJ0eTogICAgICAgICRHTE9CQUwtVFJBTlNJVElPTi1QUk9QRVJUWSAhZGVmYXVsdDtcbiRmYXYtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb246ICAgICAgICAkR0xPQkFMLVRSQU5TSVRJT04tRFVSQVRJT04gIWRlZmF1bHQ7XG4kZmF2LWJ1dHRvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJEdMT0JBTC1UUkFOU0lUSU9OLVRJTUlORy1GVU5DVElPTiAhZGVmYXVsdDtcbiRmYXYtYnV0dG9uLWl0ZW0tc3BhY2luZzogICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kZmF2LWJ1dHRvbi1jb2xvci1kZXNlbGVjdGVkOiAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcbiRmYXYtYnV0dG9uLWNvbG9yLXNlbGVjdGVkOiAgICAgICAgICAgICAkZmF2LWJ1dHRvbi1jb2xvci1kZXNlbGVjdGVkICFkZWZhdWx0O1xuJGZhdi1idXR0b24tY29sb3ItaG92ZXI6ICAgICAgICAgICAgICAgICRmYXYtYnV0dG9uLWNvbG9yLWRlc2VsZWN0ZWQgIWRlZmF1bHQ7XG4kZmF2LWJ1dHRvbi1jb2xvci1hY3RpdmU6ICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRmYXYtYnV0dG9uLWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgICByZ2JhKCRDT0xPUi1CQVNFLCAkT1BBQ0lUWS1NRURJVU0pICFkZWZhdWx0O1xuJGZhdi1idXR0b24tc3RhdGUtYWN0aXZlOiAgICAgICAgICAgICAgIFwiLmlzLWFjdGl2ZVwiICFkZWZhdWx0O1xuJGZhdi1idXR0b24tbGV0dGVyLXNwYWNpbmc6ICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kZmF2LWJ1dHRvbi10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgICAgaW5oZXJpdCAhZGVmYXVsdDtcbiRmYXYtYnV0dG9uLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG4kZmF2LWJ1dHRvbi1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKHNtYWxsKSAhZGVmYXVsdDtcbiRmYXYtYnV0dG9uLWljb24tZGVzZWxlY3RlZDogICAgICAgICAgICBnZXQtaWNvbihoZWFydCkgIWRlZmF1bHQ7XG4kZmF2LWJ1dHRvbi1pY29uLXNlbGVjdGVkOiAgICAgICAgICAgICAgZ2V0LWljb24oaGVhcnQtZmlsbGVkKSAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gUmVzZXQgdGhlIGJyb3dzZXIgYnV0dG9uIHN0eWxlcy5cbiAqIFsyXSBBbGlnbiBzdHlsZXMgdG8gdGhlIEJ1dHRvbiBMaW5r4oCZcyBpbXBsZW1lbnRhdGlvbi5cbiAqIFszXSBIYW5kbGVzIHRoZSBwcmVzc2VkIHN0YXRlLlxuICogWzRdIEluaGVyaXQgdGhlIHRyYW5zaXRpb25zIGxpa2UgaW4gdGhlIEJ1dHRvbiBMaW5rIGltcGxlbWVudGF0aW9uLlxuICogWzVdIFZpc3VhbGx5IGhpZGUgdGhlIGxhYmVsIGZvciBgLmMtZmF2LWJ1dHRvbi0taWNvbi1vbmx5YCB2YXJpYW50IHRvIGltcHJvdmUgYTExeS5cbiAqL1xuXG4uYy1mYXYtYnV0dG9uIHtcbiAgICAtLWZhdi1idXR0b24tY29sb3I6ICN7JGZhdi1idXR0b24tY29sb3ItZGVzZWxlY3RlZH07XG4gICAgLS1mYXYtYnV0dG9uLWljb24tbmFtZTogI3skZmF2LWJ1dHRvbi1pY29uLWRlc2VsZWN0ZWR9O1xuICAgIC0tZmF2LWJ1dHRvbi1pdGVtLXNwYWNpbmc6ICN7JGZhdi1idXR0b24taXRlbS1zcGFjaW5nfTtcblxuICAgIEBpbmNsdWRlIHJlc2V0LWJ1dHRvbigpOyAvKiBbMV0gKi9cbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkZmF2LWJ1dHRvbi10ZXh0LXNpemUpOyAvKiBbMl0gKi9cbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKFxuICAgICAgICAkdHJhbnNpdGlvbi1wcm9wZXJ0eTogICAgICAgICRmYXYtYnV0dG9uLXRyYW5zaXRpb24tcHJvcGVydHksXG4gICAgICAgICR0cmFuc2l0aW9uLWR1cmF0aW9uOiAgICAgICAgJGZhdi1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgICAgICAgJHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkZmF2LWJ1dHRvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbixcbiAgICApOyAvKiBbMl0gKi9cblxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyAvKiBbMl0gKi9cbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiBbMl0gKi9cbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyAvKiBbMl0gKi9cbiAgICBjb2x1bW4tZ2FwOiB2YXIoLS1mYXYtYnV0dG9uLWl0ZW0tc3BhY2luZyk7IC8qIFsyXSAqL1xuICAgIGxpbmUtaGVpZ2h0OiAxOyAvKiBbMl0gKi9cbiAgICB0ZXh0LXRyYW5zZm9ybTogJGZhdi1idXR0b24tdGV4dC10cmFuc2Zvcm07IC8qIFsyXSAqL1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZDogUmVtb3ZlIGBbYXJpYS1wcmVzc2VkPVwidHJ1ZVwiXWAgaW4gdjE1LlxuICAgICAqL1xuICAgIFthcmlhLXByZXNzZWQ9XCJ0cnVlXCJdLFxuICAgICYjeyRmYXYtYnV0dG9uLXN0YXRlLWFjdGl2ZX0ge1xuICAgICAgICAtLWZhdi1idXR0b24taWNvbi1uYW1lOiAjeyRmYXYtYnV0dG9uLWljb24tc2VsZWN0ZWR9OyAvKiBbM10gKi9cbiAgICAgICAgLS1mYXYtYnV0dG9uLWNvbG9yOiAjeyRmYXYtYnV0dG9uLWNvbG9yLXNlbGVjdGVkfTsgLyogWzNdICovXG4gICAgfVxuXG4gICAgJi5jLWZhdi1idXR0b24tLXJldmVyc2VkIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgLS1mYXYtYnV0dG9uLWNvbG9yOiAjeyRmYXYtYnV0dG9uLWNvbG9yLWhvdmVyfTtcbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgLS1mYXYtYnV0dG9uLWNvbG9yOiAjeyRmYXYtYnV0dG9uLWNvbG9yLWFjdGl2ZX07XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAtLWZhdi1idXR0b24tY29sb3I6ICN7JGZhdi1idXR0b24tY29sb3ItZGlzYWJsZWR9O1xuICAgIH1cblxufVxuXG4uYy1mYXYtYnV0dG9uX19sYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6ICRmYXYtYnV0dG9uLWZvbnQtd2VpZ2h0O1xuICAgIGxldHRlci1zcGFjaW5nOiAkZmF2LWJ1dHRvbi1sZXR0ZXItc3BhY2luZztcbiAgICBjb2xvcjogdmFyKC0tZmF2LWJ1dHRvbi1jb2xvcik7XG4gICAgdHJhbnNpdGlvbjogaW5oZXJpdDsgLyogWzRdICovXG5cbiAgICAuYy1mYXYtYnV0dG9uLS1pY29uLW9ubHkgJiB7XG4gICAgICAgIEBpbmNsdWRlIGExMXktaGlkZGVuKCk7IC8qIFs1XSAqL1xuICAgIH1cblxufVxuXG4uYy1mYXYtYnV0dG9uX19sYWJlbC0tb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZDogUmVtb3ZlIGBbYXJpYS1wcmVzc2VkPVwidHJ1ZVwiXSAmYCBpbiB2MTUuXG4gICAgICovXG4gICAgW2FyaWEtcHJlc3NlZD1cInRydWVcIl0gJixcbiAgICAuYy1mYXYtYnV0dG9uI3skZmF2LWJ1dHRvbi1zdGF0ZS1hY3RpdmV9ICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbn1cblxuLmMtZmF2LWJ1dHRvbl9fbGFiZWwtLW9mZiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZDogUmVtb3ZlIGBbYXJpYS1wcmVzc2VkPVwidHJ1ZVwiXSAmYCBpbiB2MTUuXG4gICAgICovXG4gICAgW2FyaWEtcHJlc3NlZD1cInRydWVcIl0gJixcbiAgICAuYy1mYXYtYnV0dG9uI3skZmF2LWJ1dHRvbi1zdGF0ZS1hY3RpdmV9ICYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxufVxuXG4uYy1mYXYtYnV0dG9uX19pY29uIHtcbiAgICBmb250LXNpemU6ICRmYXYtYnV0dG9uLWljb24tc2l6ZTtcbiAgICBjb2xvcjogdmFyKC0tZmF2LWJ1dHRvbi1jb2xvcik7XG4gICAgdHJhbnNpdGlvbjogaW5oZXJpdDsgLyogWzRdICovXG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBpY29uLWZvbnQoKTtcbiAgICAgICAgY29udGVudDogdmFyKC0tZmF2LWJ1dHRvbi1pY29uLW5hbWUpO1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG59XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjRkFWLUJVVFRPTiAoU2V0dGluZ3MpXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGZhdi1idXR0b24taWNvbi1zaXplOiAgICAgICAgaWNvbi1zaXplKCRCVVRUT04tSUNPTi1TSVpFKSAhZGVmYXVsdDtcbiRmYXYtYnV0dG9uLWNvbG9yLWRlc2VsZWN0ZWQ6ICRCVVRUT04tTElOSy1URVhULUNPTE9SICFkZWZhdWx0O1xuJGZhdi1idXR0b24tY29sb3ItaG92ZXI6ICAgICAgJEJVVFRPTi1MSU5LLVRFWFQtQ09MT1ItSE9WRVIgIWRlZmF1bHQ7XG4kZmF2LWJ1dHRvbi1jb2xvci1hY3RpdmU6ICAgICAkQlVUVE9OLUxJTkstVEVYVC1DT0xPUi1GT0NVUyAhZGVmYXVsdDtcbiRmYXYtYnV0dG9uLWNvbG9yLWRpc2FibGVkOiAgICRCVVRUT04tTElOSy1URVhULUNPTE9SLURJU0FCTEVEICFkZWZhdWx0O1xuJGZhdi1idXR0b24tZm9udC13ZWlnaHQ6ICAgICAgJEJVVFRPTi1GT05ULVdFSUdIVCAhZGVmYXVsdDtcbiRmYXYtYnV0dG9uLWxldHRlci1zcGFjaW5nOiAgICRCVVRUT04tTEVUVEVSLVNQQUNJTkcgIWRlZmF1bHQ7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjRkFWLUJVVFRPTlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jLWZhdi1idXR0b24ge1xuXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgQGluY2x1ZGUgZm9jdXMtc3R5bGVzKFxuICAgICAgICAgICAgJG91dGxpbmUtb2Zmc2V0OiAkR0xPQkFMLUZPQ1VTLU9GRlNFVC1MQVJHRSxcbiAgICAgICAgKTtcbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNCTE9DS1FVT1RFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGJsb2NrcXVvdGUtdGV4dC1zaXplOiAgICAgICAgICAgICAgICRGUzMgIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS10ZXh0LWxpbmUtaGVpZ2h0OiAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRibG9ja3F1b3RlLXRleHQtY29sb3I6ICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtdGV4dC1zdHlsZTogICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS10ZXh0LWZvbnQtZmFtaWx5OiAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuJGJsb2NrcXVvdGUtZm9vdGVyLXRleHQtc2l6ZTogICAgICAgICRGUy0xICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtZm9vdGVyLXRleHQtbGluZS1oZWlnaHQ6IG51bGwgIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS1mb290ZXItdGV4dC1jb2xvcjogICAgICAgbnVsbCAhZGVmYXVsdDtcbiRibG9ja3F1b3RlLWZvb3Rlci10ZXh0LXN0eWxlOiAgICAgICBudWxsICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtZm9vdGVyLWZvbnQtZmFtaWx5OiAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRibG9ja3F1b3RlLWZvb3Rlci1jaXRlLXRleHQtc3R5bGU6ICBub3JtYWwgIWRlZmF1bHQ7XG5cbiRibG9ja3F1b3RlLXRoZW1lczogKFxuICAgIFwiYWx0ZXJuYXRpdmVcIjogKFxuICAgICAgICBcImJsb2NrcXVvdGUtdGV4dC1jb2xvclwiOiAgICAgICAgbnVsbCxcbiAgICAgICAgXCJibG9ja3F1b3RlLWZvb3Rlci10ZXh0LWNvbG9yXCI6IG51bGwsXG4gICAgKSxcbiAgICBcImJyYW5kXCI6IChcbiAgICAgICAgXCJibG9ja3F1b3RlLXRleHQtY29sb3JcIjogICAgICAgIG51bGwsXG4gICAgICAgIFwiYmxvY2txdW90ZS1mb290ZXItdGV4dC1jb2xvclwiOiBudWxsLFxuICAgIClcbikgIWRlZmF1bHQ7XG5cbi5jLWJsb2NrcXVvdGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbiAgICAuYy1ibG9ja3F1b3RlX190ZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAgICRibG9ja3F1b3RlLXRleHQtc2l6ZSxcbiAgICAgICAgICAgICRsaW5lLWhlaWdodDogJGJsb2NrcXVvdGUtdGV4dC1saW5lLWhlaWdodCxcbiAgICAgICAgKTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRibG9ja3F1b3RlLXRleHQtZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc3R5bGU6ICRibG9ja3F1b3RlLXRleHQtc3R5bGU7XG4gICAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS10ZXh0LWNvbG9yO1xuXG4gICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICRibG9ja3F1b3RlLXRoZW1lcykge1xuICAgICAgICAgICAgY29sb3I6IHZhcnktZ2V0KFwiYmxvY2txdW90ZS10ZXh0LWNvbG9yXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmMtYmxvY2txdW90ZV9fZm9vdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAgICRibG9ja3F1b3RlLWZvb3Rlci10ZXh0LXNpemUsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICRibG9ja3F1b3RlLWZvb3Rlci10ZXh0LWxpbmUtaGVpZ2h0LFxuICAgICAgICApO1xuICAgICAgICBmb250LWZhbWlseTogJGJsb2NrcXVvdGUtZm9vdGVyLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXN0eWxlOiAkYmxvY2txdW90ZS1mb290ZXItdGV4dC1zdHlsZTtcbiAgICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWZvb3Rlci10ZXh0LWNvbG9yO1xuXG4gICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICRibG9ja3F1b3RlLXRoZW1lcykge1xuICAgICAgICAgICAgY29sb3I6IHZhcnktZ2V0KFwiYmxvY2txdW90ZS1mb290ZXItdGV4dC1jb2xvclwiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jLWJsb2NrcXVvdGVfX2NpdGUge1xuICAgICAgICBmb250LXN0eWxlOiAkYmxvY2txdW90ZS1mb290ZXItY2l0ZS10ZXh0LXN0eWxlO1xuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNGTE9BVElORy1CVVRUT04gKFNldHRpbmdzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRmbG9hdGluZy1idXR0b24taWNvbi1zaXplOiBpY29uLXNpemUoJEJVVFRPTi1JQ09OLVNJWkUpICFkZWZhdWx0O1xuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZMT0FUSU5HLUJVVFRPTlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRmbG9hdGluZy1idXR0b24tZ3JpZC1hcmVhOiAgICAgICAgICAgICAgICAgYm90dG9tLXJpZ2h0ICFkZWZhdWx0O1xuJGZsb2F0aW5nLWJ1dHRvbi1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGZsb2F0aW5nLWJ1dHRvbi1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGZsb2F0aW5nLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGZsb2F0aW5nLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiAgICBudWxsICFkZWZhdWx0O1xuJGZsb2F0aW5nLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1idXR0b24tYmFja2dyb3VuZCkgIWRlZmF1bHQ7XG4kZmxvYXRpbmctYnV0dG9uLWljb24tb25seTogICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kZmxvYXRpbmctYnV0dG9uLWljb24tb25seS1yb3VuZDogICAgICAgICAgICRmbG9hdGluZy1idXR0b24taWNvbi1vbmx5ICFkZWZhdWx0O1xuJGZsb2F0aW5nLWJ1dHRvbi1pY29uLW9ubHktc2l6ZTogICAgICAgICAgICBtYXAtZ2V0KCRJQ09OLVJPVU5ELUZVTEwtU0laRVMsIFwibWVkaXVtXCIpICFkZWZhdWx0O1xuJGZsb2F0aW5nLWJ1dHRvbi1pY29uLW9ubHktYm9yZGVyLXJhZGl1czogICA1MCUgIWRlZmF1bHQ7XG4kZmxvYXRpbmctYnV0dG9uLWljb24tc2l6ZTogICAgICAgICAgICAgICAgIGljb24tc2l6ZShzbWFsbCkgIWRlZmF1bHQ7XG4kZmxvYXRpbmctYnV0dG9uLWljb24tY29sb3I6ICAgICAgICAgICAgICAgIGluaGVyaXQgIWRlZmF1bHQ7XG4kZmxvYXRpbmctYnV0dG9uLWxhYmVsLXNwYWNpbmc6ICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiRmbG9hdGluZy1idXR0b24tbGFiZWwtY29sb3I6ICAgICAgICAgICAgICAgJGZsb2F0aW5nLWJ1dHRvbi1pY29uLWNvbG9yICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBBbGxvdyBjbGljay10aHJvdWdoIGV2ZW50cyBpZiBjbGljay10YXJnZXRzIGFyZSBiZWhpbmQgdGhlIHN0aWNreVxuICogICAgIGJhY2stdG8tdG9wIGNvbnRhaW5lci5cbiAqIFsyXSBSZXNldCBkZWZhdWx0IGJ1dHRvbiBwYWRkaW5nIHRvIHByZXZlbnQgaXNzdWVzIHdpdGggc2l6ZS5cbiAqIFszXSBFbnN1cmUgY29ycmVjdCBwb3NpdGlvbmluZywgaW5kZXBlbmRlbnQgb2YgcGFyZW50J3Mgc3BhY2luZ3MgZXRjLlxuICovXG5cbi5jLWZsb2F0aW5nLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgZmxvYXQtZ3JpZC1hcmVhKFxuICAgICAgICAkYXJlYTogJGZsb2F0aW5nLWJ1dHRvbi1ncmlkLWFyZWEsXG4gICAgKTtcbn1cblxuICAgIC5jLWZsb2F0aW5nLWJ1dHRvbl9fYnV0dG9uIHtcbiAgICAgICAgQGlmICgkZmxvYXRpbmctYnV0dG9uLWljb24tb25seSkge1xuICAgICAgICAgICAgd2lkdGg6ICRmbG9hdGluZy1idXR0b24taWNvbi1vbmx5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRmbG9hdGluZy1idXR0b24taWNvbi1vbmx5LXNpemU7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICgkZmxvYXRpbmctYnV0dG9uLWljb24tb25seS1yb3VuZCkge1xuICAgICAgICAgICAgcGFkZGluZzogMDsgLyogWzJdICovXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZmxvYXRpbmctYnV0dG9uLWljb24tb25seS1ib3JkZXItcmFkaXVzO1xuICAgICAgICB9XG4gICAgICAgIGJvcmRlcjogJGZsb2F0aW5nLWJ1dHRvbi1ib3JkZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmbG9hdGluZy1idXR0b24tYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgYm94LXNoYWRvdzogJGZsb2F0aW5nLWJ1dHRvbi1zaGFkb3c7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyAvKiBbMV0gKi9cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmbG9hdGluZy1idXR0b24tYmFja2dyb3VuZC1jb2xvci1ob3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6ZGlzYWJsZWQsXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmbG9hdGluZy1idXR0b24tYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtZmxvYXRpbmctYnV0dG9uX19pY29uIHtcbiAgICAgICAgQGlmICgkZmxvYXRpbmctYnV0dG9uLWljb24tc2l6ZSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICRmb250LXNpemU6ICRmbG9hdGluZy1idXR0b24taWNvbi1zaXplLFxuICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogMVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBjb2xvcjogJGZsb2F0aW5nLWJ1dHRvbi1pY29uLWNvbG9yO1xuICAgIH1cblxuICAgIC5jLWZsb2F0aW5nLWJ1dHRvbl9fbGFiZWwge1xuICAgICAgICBAaWYgKCRmbG9hdGluZy1idXR0b24taWNvbi1vbmx5KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhMTF5LWhpZGRlbigpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkZmxvYXRpbmctYnV0dG9uLWxhYmVsLXNwYWNpbmc7XG4gICAgICAgIH1cbiAgICAgICAgY29sb3I6ICRmbG9hdGluZy1idXR0b24tbGFiZWwtY29sb3I7XG4gICAgfVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZMT0FUSU5HLUJBUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRmbG9hdGluZy1iYXItYnJlYWtwb2ludDogICAgICAgcyAhZGVmYXVsdDtcbiRmbG9hdGluZy1iYXItYmFja2dyb3VuZC1jb2xvcjogJENPTE9SLUJBU0UtQkFDS0dST1VORCAhZGVmYXVsdDtcbiRmbG9hdGluZy1iYXItc2hhZG93OiAgICAgICAgICAgJEdMT0JBTC1CT1gtU0hBRE9XICFkZWZhdWx0O1xuJGZsb2F0aW5nLWJhci1ib3JkZXItYm90dG9tOiAgICBub25lICFkZWZhdWx0O1xuJGZsb2F0aW5nLWJhci12aXNpYmxlLXNlbGVjdG9yOiBpbnRlcnNlY3Rpb24ob3V0c2lkZSwgYWJvdmUtbGVhdmUpICFkZWZhdWx0O1xuJGZsb2F0aW5nLWJhci10cmFuc2l0aW9uOiAgICAgICBvcGFjaXR5ICRHTE9CQUwtVFJBTlNJVElPTi1EVVJBVElPTiAkR0xPQkFMLVRSQU5TSVRJT04tVElNSU5HLUZVTkNUSU9OLCB0cmFuc2Zvcm0gJEdMT0JBTC1UUkFOU0lUSU9OLURVUkFUSU9OICRHTE9CQUwtVFJBTlNJVElPTi1USU1JTkctRlVOQ1RJT04gIWRlZmF1bHQ7XG4kZmxvYXRpbmctYmFyLWljb246ICAgICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLWNvbGxhcHNlKSAhZGVmYXVsdDtcbiRmbG9hdGluZy1iYXItaWNvbi1jb2xvcjogICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJGZsb2F0aW5nLWJhci1pY29uLXNpemU6IChcbiAgICBudWxsOiAgICAgICAgICAgICAgICAgaWNvbi1zaXplKG1lZGl1bSksXG4gICAgJGZvbGQtb3V0LWJyZWFrcG9pbnQ6IGljb24tc2l6ZShzbWFsbClcbikgIWRlZmF1bHQ7XG4kZmxvYXRpbmctYmFyLXNwYWNpbmctaG9yaXpvbnRhbDogKFxuICAgIG51bGw6ICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtTEFSR0UsXG4gICAgJGZsb2F0aW5nLWJhci1icmVha3BvaW50OiAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTFxuKSAhZGVmYXVsdDtcbiRmbG9hdGluZy1iYXItc3BhY2luZy12ZXJ0aWNhbDogKFxuICAgIG51bGw6ICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwsXG4gICAgJGZsb2F0aW5nLWJhci1icmVha3BvaW50OiAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTExcbikgIWRlZmF1bHQ7XG4vKipcbiAqIFsxXSBGTElQIHRoZSB0cmFuc2Zvcm0gdG8gaG9pc3QgZWxlbWVudCBpbiB0aGUgdHJhbnNmb3JtIGNvbnRleHQgdG8gb3B0aW1pc2UgdHJhbnNpdGlvbi4gaHR0cHM6Ly9hZXJvdHdpc3QuY29tL2Jsb2cvZmxpcC15b3VyLWFuaW1hdGlvbnMvXG4gKiBbMl0gRGlzYWJsZSBwb3RlbnRpYWwgbGlua3Mgc3R5bGVzLlxuICogWzNdIERpc3BsYXkgdGhlIGFjdGlvbiBpY29uIGhlcmUgZmx1c2gtcmlnaHQgYWxpZ25lZCB3aXRoIHRoZSBwYWdlLXdyYXAuXG4gKi9cblxuLmMtZmxvYXRpbmctYmFyIHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFxuICAgICAgICAoXCJwYWRkaW5nLXRvcFwiLCAkZmxvYXRpbmctYmFyLXNwYWNpbmctdmVydGljYWwpLFxuICAgICAgICAoXCJwYWRkaW5nLWJvdHRvbVwiLCAkZmxvYXRpbmctYmFyLXNwYWNpbmctdmVydGljYWwpXG4gICAgKTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogeihcImZsb2F0aW5nLWJhclwiKTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpOyAvKiBbMV0gKi9cbiAgICBib3JkZXItYm90dG9tOiAkZmxvYXRpbmctYmFyLWJvcmRlci1ib3R0b207IC8qIFsyXSAqL1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgLyogWzJdICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGZsb2F0aW5nLWJhci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIHRyYW5zaXRpb246ICRmbG9hdGluZy1iYXItdHJhbnNpdGlvbjtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGJveC1zaGFkb3c6ICRmbG9hdGluZy1iYXItc2hhZG93O1xuXG4gICAgJiN7JGZsb2F0aW5nLWJhci12aXNpYmxlLXNlbGVjdG9yfSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgLyogWzFdICovXG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG5cbn1cblxuICAgIC5jLWZsb2F0aW5nLWJhcl9faW5uZXIge1xuICAgICAgICBAaW5jbHVkZSBwYWdlLXdyYXAoKTtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgJjo6YWZ0ZXIgeyAvKiBbM10gKi9cbiAgICAgICAgICAgIEBpbmNsdWRlIGljb24tZm9udCgpO1xuICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcbiAgICAgICAgICAgICAgICAoXCJmbGV4LWJhc2lzXCIsICRmbG9hdGluZy1iYXItaWNvbi1zaXplKSxcbiAgICAgICAgICAgICAgICAoXCJmb250LXNpemVcIiwgJGZsb2F0aW5nLWJhci1pY29uLXNpemUpLFxuICAgICAgICAgICAgICAgIChcIm1hcmdpbi1sZWZ0XCIsICRmbG9hdGluZy1iYXItc3BhY2luZy1ob3Jpem9udGFsKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRmbG9hdGluZy1iYXItaWNvbjtcbiAgICAgICAgICAgIGNvbG9yOiAkZmxvYXRpbmctYmFyLWljb24tY29sb3I7XG4gICAgICAgIH1cblxuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNFWFBBTkRBQkxFLUNPTlRFTlRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kZXhwYW5kYWJsZS1jb250ZW50LXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULUxBUkdFICFkZWZhdWx0O1xuJGV4cGFuZGFibGUtY29udGVudC1wYWRkaW5nLXRvcDogICAgICAgICAgICAgICAgICAkZXhwYW5kYWJsZS1jb250ZW50LXBhZGRpbmctdmVydGljYWwgIWRlZmF1bHQ7XG4kZXhwYW5kYWJsZS1jb250ZW50LXBhZGRpbmctYm90dG9tOiAgICAgICAgICAgICAgICRleHBhbmRhYmxlLWNvbnRlbnQtcGFkZGluZy12ZXJ0aWNhbCAhZGVmYXVsdDtcbiRleHBhbmRhYmxlLWNvbnRlbnQtY29udGVudC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kZXhwYW5kYWJsZS1jb250ZW50LWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgIG1hcC1nZXQoJEJBQ0tHUk9VTkQtVVRJTElUSUVTLCBcImFsdGVybmF0aXZlXCIpICFkZWZhdWx0O1xuXG4kZXhwYW5kYWJsZS1jb250ZW50LXN0YXRlLWV4cGFuZGVkOiAgICAgICAgICAgICAgIFwiW2FyaWEtaGlkZGVuPSdmYWxzZSddXCIgIWRlZmF1bHQ7XG5cbiRleHBhbmRhYmxlLWNvbnRlbnQtaWNvbi1zaXplOiAgICAgICAgICAgICAgICAgICAgXCJ4c21hbGxcIiAhZGVmYXVsdDtcbiRleHBhbmRhYmxlLWNvbnRlbnQtaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJGV4cGFuZGFibGUtY29udGVudC1pY29uLWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAkZXhwYW5kYWJsZS1jb250ZW50LWljb24tY29sb3IgIWRlZmF1bHQ7XG4kZXhwYW5kYWJsZS1jb250ZW50LWljb24tY29tcGxleGl0eTogICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kZXhwYW5kYWJsZS1jb250ZW50LWljb246ICAgICAgICAgICAgICAgICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLWV4cGFuZCwgJGV4cGFuZGFibGUtY29udGVudC1pY29uLWNvbXBsZXhpdHkpICFkZWZhdWx0O1xuLy8gVGhpcyBpY29uIHdpbGwgYmUgdXNlZCBpZiBgJGV4cGFuZGFibGUtY29udGVudC1oYXMtY2xvc2UtdHJpZ2dlcmAgaXMgYHRydWVgXG4kZXhwYW5kYWJsZS1jb250ZW50LWljb24tY2xvc2U6ICAgICAgICAgICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLWNvbGxhcHNlLCAkZXhwYW5kYWJsZS1jb250ZW50LWljb24tY29tcGxleGl0eSkgIWRlZmF1bHQ7XG4kZXhwYW5kYWJsZS1jb250ZW50LWljb24tYmFja2dyb3VuZDogICAgICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGV4cGFuZGFibGUtY29udGVudC1pY29uLWJhY2tncm91bmQtaG92ZXI6ICAgICAgICAkZXhwYW5kYWJsZS1jb250ZW50LWljb24tYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRleHBhbmRhYmxlLWNvbnRlbnQtaWNvbi1yb3RhdGlvbjogICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRleHBhbmRhYmxlLWNvbnRlbnQtaWNvbi1ib3JkZXItY29sb3I6ICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kZXhwYW5kYWJsZS1jb250ZW50LWljb24tYm9yZGVyLWNvbG9yLWhvdmVyOiAgICAgICRleHBhbmRhYmxlLWNvbnRlbnQtaWNvbi1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kZXhwYW5kYWJsZS1jb250ZW50LWljb24tYm9yZGVyLXdpZHRoOiAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4vLyBJZiBhIGJyZWFrcG9pbnQgaXMgZGVmaW5lZCBoZXJlLCB0aGUgaWNvbiBhbmQgdGV4dCBvZiB0aGUgdHJpZ2dlciB3aWxsIGJlXG4vLyBpbmxpbmUgKmFib3ZlKiB0aGlzIGJyZWFrcG9pbnQuXG4kZXhwYW5kYWJsZS1jb250ZW50LWljb24taW5saW5lLWJyZWFrcG9pbnQ6ICAgICAgIGZhbHNlICFkZWZhdWx0O1xuXG4vLyBTZXQgdGhlIGZvbnQtc2l6ZSBvZiB0aGUgdHJpZ2dlciB0ZXh0LiBUaGlzIGhhcyB0byBiZSBhIGZpeGVkIGZvbnQtc2l6ZSBhbmRcbi8vIG5vdCBhIHJlc3BvbnNpdmUgZm9udC1zaXplIHNpbmNlIHdlIGFyZSB1c2luZyB0aGlzIHZhcmlhYmxlIGZvciBjYWxjdWxhdGlvblxuLy8gc3R1ZmYuXG4kZXhwYW5kYWJsZS1jb250ZW50LXRyaWdnZXItdGV4dC1zaXplOiAgICAgICAgICAgICRHTE9CQUwtRk9OVC1TSVpFICFkZWZhdWx0O1xuJGV4cGFuZGFibGUtY29udGVudC10cmlnZ2VyLXRleHQtY29sb3I6ICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kZXhwYW5kYWJsZS1jb250ZW50LXRyaWdnZXItdGV4dC1jb2xvci1ob3ZlcjogICAgIG51bGwgIWRlZmF1bHQ7XG4kZXhwYW5kYWJsZS1jb250ZW50LXRyaWdnZXItdGV4dC10cmFuc2Zvcm06ICAgICAgIG5vbmUgIWRlZmF1bHQ7XG4kZXhwYW5kYWJsZS1jb250ZW50LXRyaWdnZXItZm9udC13ZWlnaHQ6ICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCAhZGVmYXVsdDtcbiRleHBhbmRhYmxlLWNvbnRlbnQtdHJpZ2dlci10ZXh0LWljb24tZ2FwOiAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuXG4kZXhwYW5kYWJsZS1jb250ZW50LWhhcy1jbG9zZS10cmlnZ2VyOiAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kZXhwYW5kYWJsZS1jb250ZW50LXRyaWdnZXItY2xvc2Utc3BhY2luZy1ib3R0b206ICRleHBhbmRhYmxlLWNvbnRlbnQtcGFkZGluZy12ZXJ0aWNhbCAhZGVmYXVsdDtcblxuLy8gRGVmaW5lIHRoZSBvcGVuL2Nsb3NlIGFuaW1hdGlvbiBkdXJhdGlvbi5cbiRleHBhbmRhYmxlLWNvbnRlbnQtdHJhbnNpdGlvbi1kdXJhdGlvbjogICAgICAgICAgJEdMT0JBTC1UUkFOU0lUSU9OLURVUkFUSU9OLUxPTkcgIWRlZmF1bHQ7XG5cbi8vIEN1c3RvbSB0aW1pbmcgZnVuY3Rpb24gZm9yIHRyYW5zaXRpb24uXG4kZXhwYW5kYWJsZS1jb250ZW50LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAgIGN1YmljLWJlemllcigwLjQ1NSwgMC4wMzAsIDAuNTE1LCAwLjk1NSkgIWRlZmF1bHQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgbnVtYmVyLW5vLXRyYWlsaW5nLXplcm9zICovXG5cbi8vIFRoaXMgb2Zmc2V0IGlzIG5lZWRlZCB0byBsZXQgdGhlIGV4cGFuZGFibGUtY29udGVudCBjb250YWluZXIg4oCYZmx5LWlu4oCZIHVuZGVybmVhdGhcbi8vIHRoZSB0cmlnZ2VyIGljb24uIFRoZSB2YWx1ZSBpcyBzb21lIGtpbmQgb2Yg4oCYbWFnaWMgbnVtYmVy4oCZLiBUaGUgYmlnZ2VyIHRoZVxuLy8gdmFsdWUsIHRoZSBtb3JlIOKAmGV4dHJlbWXigJkgdGhlIGFuaW1hdGlvbi5cbiRleHBhbmRhYmxlLWNvbnRlbnQtYW5pbWF0aW9uLW9mZnNldDogICAgICAgICAgICAgOTVweCAhZGVmYXVsdDtcblxuJGV4cGFuZGFibGUtY29udGVudC10aGVtZXM6IChcbiAgICBcImFsdGVybmF0aXZlXCI6IChcbiAgICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yXCI6ICRDT0xPUi1CQVNFLUJBQ0tHUk9VTkQsXG4gICAgKSxcbikgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdICBVc2UgcHNldWRvIGVsZW1lbnQgZm9yIGNvbGxhcHNpYmxlIGJhY2tncm91bmQgc28gaXQgY2FuIGJlIGFuaW1hdGVkXG4gKiAgICAgIChhbHNvIHNlZSBbMTVdKS5cbiAqIFsyXSAgRGVmYXVsdCBiYWNrZ3JvdW5kLWNvbG9yIHdoZW4gdGhlIGJhY2tncm91bmQgc2VjdGlvbiBjb250YWluZXIgaXMgd2hpdGUuXG4gKiBbM10gIE1ha2Ugc3VyZSB0byBqdXN0IHJldmVhbCB0aGUgZGlmZmVyaW5nIGJhY2tncm91bmQtY29sb3Igd2hlbiB0aGUgZXh0cmEtXG4gKiAgICAgIGNvbnRlbnQgaXMgdmlzaWJsZS4gVW5mb3J0dW5hdGVseSwgYCFpbXBvcnRhbnRgIGlzIG5lY2Vzc2FyeSBzbyB0aGF0XG4gKiAgICAgIHRoZSBkZWNsYXJhdGlvbiBhbHNvIGFwcGxpZXMsIGlmIHRoZSBleHBhbmRhYmxlLWNvbnRlbnQgY29tcG9uZW50IGFsc28gY2Fycmllc1xuICogICAgICB0aGUgYFtkYXRhLXRoZW1lXWAgYXR0cmlidXRlLlxuICogWzRdICBJbml0aWFsbHkgaGlkZSB0aGUgZWxlbWVudCBhbmQgc2V0IGBkaXNwbGF5OiBibG9ja2AgYnkgSlMgb24gcGFnZS1sb2FkIHRvXG4gKiAgICAgIHNob3cgaXQgYWdhaW4uIFRoaXMgZW5zdXJlcyB0aGF0IGluIGNhc2UgSlMgaXNuJ3QgZXhlY3V0ZWQgZm9yIHdoYXRldmVyXG4gKiAgICAgIHJlYXNvbiwgdGhlIHRyaWdnZXIgaXMgbm90IHNob3duIChiZWNhdXNlIGEgdHJpZ2dlciB0cmlnZ2VycyBub3RoaW5nLFxuICogICAgICB3aGVuIGl0J3MgbGFja2luZyB0aGUgbmVjZXNzYXJ5IEpTLWZ1bmN0aW9uKS5cbiAqIFs1XSAgVXNlIGBncmlkLXRlbXBsYXRlLXJvd3NgIHRvIHRyYW5zaXRpb24gdGhlIGhlaWdodC5cbiAqICAgICAgTm8gbW9yZSBjaG9wcHkgYG1heC1oZWlnaHRgIHRyYW5zaXRpb24uIChzZWUgaHR0cHM6Ly93d3cuc3RlZmFuanVkaXMuY29tL3NuaXBwZXRzL2hvdy10by1hbmltYXRlLWhlaWdodC13aXRoLWNzcy1ncmlkLylcbiAqIFs2XSAgUHVsbGluZyB0aGUgdGV4dCB1cCBhYm92ZSB0aGUgaWNvbi4gVGhlIGFtb3VudCBjb21wcmlzZXMgb2YgdGhlIHRleHQtXG4gKiAgICAgIHNpemUgcGx1cyBzcGFjaW5nIGJldHdlZW4gdGhlIHRleHQgYW5kIHRoZSBpY29uXG4gKiAgICAgICgkZXhwYW5kYWJsZS1jb250ZW50LXRyaWdnZXItdGV4dC1pY29uLWdhcCkuXG4gKiBbN10gIE1ha2Ugc3VyZSB0aGUgbGluZS1oZWlnaHQgZXF1YWxzIHRoZSBmb250LXNpemUgc28gdGhlIG1hdGggaXMgY29ycmVjdC5cbiAqICAgICAgVGhpcyB3aWxsIGV2ZXIgb25seSB3b3JrLCBpZiB0aGUgdHJpZ2dlciB0ZXh0IGlzIGEgb25lLWxpbmVyIVxuICogWzhdICBJbiBjYXNlIHRoZSB0cmlnZ2VyIHRleHQgaXMgZXhjZWVkaW5nbHkgbG9uZywgdGhpcyBlbnN1cmVzIHRoZSB0ZXh0XG4gKiAgICAgIHdpbGwgbmV2ZXIgd3JhcC4uLlxuICogWzldICAuLi5hbmQgcHJldmVudCBob3Jpem9udGFsIHNjcm9sbGJhci4uLlxuICogWzEwXSAuLi5hbmQgaW5zdGVhZCBqdXN0IHNob3cgYW4gZWxsaXBzaXMuXG4gKiBbMTFdIEFsc28gaGlkZSB0aGUgb3ZlcmZsb3cgb24gdGhlIHktYXhpcywgYmVjYXVzZSBJRS1pc3N1ZXMuXG4gKiBbMTJdIEFuaW1hdGUgdGhlIGljb24gd2hlbiB0cmlnZ2VyaW5nIHRoZSBleHBhbmRhYmxlLWNvbnRlbnQuXG4gKiBbMTNdIE1ha2UgdGhlIGljb24gYm94IHJvdW5kLlxuICogWzE0XSBXZSBoYXZlIHRvIHVzZSBwc2V1ZG8gZWxlbWVudHMgZm9yIHBhZGRpbmdzIGhlcmUuIE90aGVyd2lzZSBpdCB3b3VsZCBub3RcbiAqICAgICAgY29tcGxldGVseSBoaWRlIHRoZSBjb250ZW50IGluIGNvbGxhcHNlZCBzdGF0ZSBiZWNhdXNlIGl04oCZcyBhIGdyaWQgaXRlbS5cbiAqICAgICAgU2VlIFs1XS5cbiAqIFsxNV0gVGhlIGFuaW1hdGlvbiBvZiB0aGUgcHNldWRvIGVsZW1lbnQgbmVlZHMgdG8gaGF2ZSBhIHNob3J0ZXIgZHVyYXRpb25cbiAqICAgICAgdGhhbiB0aGUgZXhwYW5kYWJsZS1jb250ZW50IGl0c2VsZi4gSnVzdCBkaXZpZGluZyBpdCBieSB0d28gbWFrZXMgc3VyZSBpdFxuICogICAgICBhbHdheXMgaXMgd2l0aG91dCBjcmVhdGluZyBhbiBleHRyYSB2YXJpYWJsZS5cbiAqIFsxNl0gVGhlIGFuaW1hdGlvbiBvZiB0aGUgdHJpZ2dlciB0ZXh0IHNob3VsZCBiZSBzZXF1ZW50aWFsbHkgYmVmb3JlIHRoZVxuICogICAgICBhbmltYXRpb24gb2YgdGhlIGV4cGFuZGFibGUtY29udGVudCBpdHNlbGYuIERpdmlkaW5nIGl0IGJ5IHR3byB3aXRoIHRoZVxuICogICAgICBkZWZhdWx0IHRyYW5zaXRpb24gZHVyYXRpb24gcHJldmVudHMgdXMgZnJvbSBjcmVhdGluZyBhIHNlcGFyYXRlXG4gKiAgICAgIHZhcmlhYmxlLlxuICogWzE3XSBUaGUgc3BlY2lmaWNpdHkgbmVlZHMgdG8gYmUgcmFpc2VkIHRvIHRydW1wIHRoZSBzZWxlY3RvciBtYWtpbmcgdGhlXG4gKiAgICAgIGVsZW1lbnQgdmlzaWJsZSBhZnRlciB0aGUgSmF2YVNjcmlwdCB3YXMgbG9hZGVkLlxuICogWzE4XSBEaXNhYmxlIChhbiByZS1lc3RhYmxpc2gpIHBvaW50ZXItZXZlbnRzIGlmIHRyaWdnZXIgYnV0dG9uIGlzIGludmlzaWJsZS5cbiAqIFsxOV0gV2UgbmVlZCB0byBzZXQgdGhlIGhlaWdodCBvZiB0aGUgdHJpZ2dlciBidXR0b24gaW4gb3JkZXIgdG8gYWRkIGEgaGVpZ2h0XG4gKiAgICAgIGFuaW1hdGlvbiB0byBpdC4gVGhlIGhlaWdodCBpcyBhIGNvbWJpbmF0aW9uIG9mIGZvbnQtc2l6ZSAod2hpY2ggaXMgYVxuICogICAgICByZXNwb25zaXZlIG1hcCksIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIGdhcCBiZXR3ZWVuIGljb24gYW5kIHRleHQuXG4gKi9cblxuLmMtZXhwYW5kYWJsZS1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgICB0b3A6IDA7XG4gICAgbWFyZ2luLXRvcDogJGV4cGFuZGFibGUtY29udGVudC1wYWRkaW5nLXRvcDtcbiAgICBtYXJnaW4tYm90dG9tOiAkZXhwYW5kYWJsZS1jb250ZW50LXBhZGRpbmctYm90dG9tO1xuXG4gICAgJjo6YmVmb3JlIHsgLyogWzFdICovXG5cbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGV4cGFuZGFibGUtY29udGVudC1iYWNrZ3JvdW5kLWNvbG9yOyAvKiBbMl0gKi9cblxuICAgICAgICBAaW5jbHVkZSB2YXJ5KCRsb29wOiAkZXhwYW5kYWJsZS1jb250ZW50LXRoZW1lcykge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyeS1nZXQoXCJiYWNrZ3JvdW5kLWNvbG9yXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5qcy1pcy1yZWFkeSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oJHRyYW5zaXRpb24tZHVyYXRpb246ICRleHBhbmRhYmxlLWNvbnRlbnQtdHJhbnNpdGlvbi1kdXJhdGlvbik7IC8qIFsxNV0gKi9cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigkdHJhbnNpdGlvbi1kdXJhdGlvbjogKCRleHBhbmRhYmxlLWNvbnRlbnQtdHJhbnNpdGlvbi1kdXJhdGlvbiAqIDAuNSkpICAvKiBbMTVdICovO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5jLWV4cGFuZGFibGUtY29udGVudC0tbm8tYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgJi5pcy1jbG9zZWQtd2l0aGluIHtcbiAgICAgICAgdG9wOiAkZXhwYW5kYWJsZS1jb250ZW50LWFuaW1hdGlvbi1vZmZzZXQ7XG5cbiAgICAgICAgJi5qcy1pcy1yZWFkeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCR0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZXhwYW5kYWJsZS1jb250ZW50LXRyYW5zaXRpb24tZHVyYXRpb24sICRjdXN0b20tcHJvcGVydGllcy1vbmx5OiB0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyAvKiBbM10gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBpdGNzcy9uby1hdC1pbXBvcnRhbnQgKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbiAgICAuYy1leHBhbmRhYmxlLWNvbnRlbnRfX3RyaWdnZXIge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1idXR0b24oKTtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgLyogWzRdICovXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIC5jLWV4cGFuZGFibGUtY29udGVudC5qcy1pcy1yZWFkeSAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyAvKiBbNF0gKi9cblxuICAgICAgICAgICAgQGlmICgkZXhwYW5kYWJsZS1jb250ZW50LWljb24taW5saW5lLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIj4jeyRleHBhbmRhYmxlLWNvbnRlbnQtaWNvbi1pbmxpbmUtYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtZXhwYW5kYWJsZS1jb250ZW50X190cmlnZ2VyLW9wZW4ge1xuXG4gICAgICAgIC5jLWV4cGFuZGFibGUtY29udGVudC5qcy1pcy1yZWFkeSAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oJHRyYW5zaXRpb24tZHVyYXRpb246ICRleHBhbmRhYmxlLWNvbnRlbnQtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAuYy1leHBhbmRhYmxlLWNvbnRlbnQuaXMtY2xvc2VkLXdpdGhpbiAmIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtKCRleHBhbmRhYmxlLWNvbnRlbnQtYW5pbWF0aW9uLW9mZnNldCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZXhwYW5kYWJsZS1jb250ZW50LWhhcy1jbG9zZS10cmlnZ2VyKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuXG4gICAgICAgICAgICAmLFxuICAgICAgICAgICAgPiAqIHtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogWzE4XSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYy1leHBhbmRhYmxlLWNvbnRlbnQuaXMtY2xvc2VkLXdpdGhpbiAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFxuICAgICAgICAgICAgICAgICAgICBcImhlaWdodFwiLFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zaXZlLXByb3BlcnR5LW1vZGlmeShcbiAgICAgICAgICAgICAgICAgICAgICAgICRleHBhbmRhYmxlLWNvbnRlbnQtdHJpZ2dlci10ZXh0LXNpemUsXG4gICAgICAgICAgICAgICAgICAgICAgICAkYWRkOiBtYXAtZ2V0KCRJQ09OLVJPVU5ELUZVTEwtU0laRVMsICRleHBhbmRhYmxlLWNvbnRlbnQtaWNvbi1zaXplKSArICRleHBhbmRhYmxlLWNvbnRlbnQtdHJpZ2dlci10ZXh0LWljb24tZ2FwXG4gICAgICAgICAgICAgICAgICAgICkgLyogWzE5XSAqL1xuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAgICAgICAgICAgJixcbiAgICAgICAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsgLyogWzE4XSAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1leHBhbmRhYmxlLWNvbnRlbnRfX3RyaWdnZXItdGV4dCB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICAgJGV4cGFuZGFibGUtY29udGVudC10cmlnZ2VyLXRleHQtc2l6ZSxcbiAgICAgICAgICAgICRsaW5lLWhlaWdodDogMVxuICAgICAgICApOyAvKiBbN10gKi9cbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyAvKiBbOV0gKi8gLyogWzExXSAqL1xuICAgICAgICBmb250LXdlaWdodDogJGV4cGFuZGFibGUtY29udGVudC10cmlnZ2VyLWZvbnQtd2VpZ2h0O1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgLyogWzEwXSAqL1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGV4cGFuZGFibGUtY29udGVudC10cmlnZ2VyLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8qIFs4XSAqL1xuICAgICAgICBjb2xvcjogJGV4cGFuZGFibGUtY29udGVudC10cmlnZ2VyLXRleHQtY29sb3I7XG5cbiAgICAgICAgQGlmICgkZXhwYW5kYWJsZS1jb250ZW50LWljb24taW5saW5lLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPiN7JGV4cGFuZGFibGUtY29udGVudC1pY29uLWlubGluZS1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYy1leHBhbmRhYmxlLWNvbnRlbnRfX3RyaWdnZXI6aG92ZXIgJiB7XG4gICAgICAgICAgICBjb2xvcjogJGV4cGFuZGFibGUtY29udGVudC10cmlnZ2VyLXRleHQtY29sb3ItaG92ZXI7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWV4cGFuZGFibGUtY29udGVudF9fdHJpZ2dlci10ZXh0LW9wZW4ge1xuICAgICAgICB0b3A6IC0oJGV4cGFuZGFibGUtY29udGVudC10cmlnZ2VyLXRleHQtaWNvbi1nYXAgKyAkZXhwYW5kYWJsZS1jb250ZW50LXRyaWdnZXItdGV4dC1zaXplKTsgLyogWzZdICovXG4gICAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgICAgLmMtZXhwYW5kYWJsZS1jb250ZW50LmpzLWlzLXJlYWR5ICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigkdHJhbnNpdGlvbi1kdXJhdGlvbjogKCRleHBhbmRhYmxlLWNvbnRlbnQtdHJhbnNpdGlvbi1kdXJhdGlvbiAqIDAuNSkpOyAvKiBbMTZdICovXG4gICAgICAgIH1cblxuICAgICAgICAuYy1leHBhbmRhYmxlLWNvbnRlbnQuaXMtY2xvc2VkLXdpdGhpbiAmIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWV4cGFuZGFibGUtY29udGVudF9faWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGljb24tdmFyaWFudChcbiAgICAgICAgICAgICR2YXJpYW50OiAgICAgICAgICBcInJvdW5kXCIsXG4gICAgICAgICAgICAkc2l6ZTogICAgICAgICAgICAgJGV4cGFuZGFibGUtY29udGVudC1pY29uLXNpemUsXG4gICAgICAgICAgICAkdGV4dC1jb2xvcjogICAgICAgJGV4cGFuZGFibGUtY29udGVudC1pY29uLWNvbG9yLFxuICAgICAgICAgICAgJGJhY2tncm91bmQtY29sb3I6ICRleHBhbmRhYmxlLWNvbnRlbnQtaWNvbi1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgJGJvcmRlci1jb2xvcjogICAgICRleHBhbmRhYmxlLWNvbnRlbnQtaWNvbi1ib3JkZXItY29sb3JcbiAgICAgICAgKTtcblxuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogJGV4cGFuZGFibGUtY29udGVudC10cmlnZ2VyLXRleHQtaWNvbi1nYXA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBAaWYgKCRleHBhbmRhYmxlLWNvbnRlbnQtaWNvbi1pbmxpbmUtYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI+I3skZXhwYW5kYWJsZS1jb250ZW50LWljb24taW5saW5lLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGV4cGFuZGFibGUtY29udGVudC10cmlnZ2VyLXRleHQtaWNvbi1nYXA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCk7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCR0cmFuc2l0aW9uLWR1cmF0aW9uOiAoJGV4cGFuZGFibGUtY29udGVudC10cmFuc2l0aW9uLWR1cmF0aW9uICogMC41KSk7XG4gICAgICAgICAgICBjb250ZW50OiAkZXhwYW5kYWJsZS1jb250ZW50LWljb247XG4gICAgICAgICAgICB0cmFuc2Zvcm06ICRleHBhbmRhYmxlLWNvbnRlbnQtaWNvbi1yb3RhdGlvbjsgLyogWzEyXSAqL1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAkZXhwYW5kYWJsZS1jb250ZW50LWljb24tYm9yZGVyLXdpZHRoO1xuXG4gICAgICAgICAgICBAaWYgKCRleHBhbmRhYmxlLWNvbnRlbnQtaWNvbi1yb3RhdGlvbikge1xuICAgICAgICAgICAgICAgIC5jLWV4cGFuZGFibGUtY29udGVudC5pcy1jbG9zZWQtd2l0aGluICYge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgLyogWzEyXSAqL1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLmMtZXhwYW5kYWJsZS1jb250ZW50X190cmlnZ2VyOmhvdmVyICYge1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGV4cGFuZGFibGUtY29udGVudC1pY29uLWJvcmRlci1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXhwYW5kYWJsZS1jb250ZW50LWljb24tYmFja2dyb3VuZC1ob3ZlcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGV4cGFuZGFibGUtY29udGVudC1pY29uLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWV4cGFuZGFibGUtY29udGVudF9fY29sbGFwc2Uge1xuXG4gICAgICAgIC5jLWV4cGFuZGFibGUtY29udGVudCAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oXG4gICAgICAgICAgICAgICAgJHRyYW5zaXRpb24tcHJvcGVydHk6IGdyaWQtdGVtcGxhdGUtcm93cyxcbiAgICAgICAgICAgICAgICAkdHJhbnNpdGlvbi1kdXJhdGlvbjogJGV4cGFuZGFibGUtY29udGVudC10cmFuc2l0aW9uLWR1cmF0aW9uLFxuICAgICAgICAgICAgICAgICR0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJGV4cGFuZGFibGUtY29udGVudC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbixcbiAgICAgICAgICAgICk7IC8qIFs1XSAqL1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsgLyogWzVdICovXG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmciAwZnI7IC8qIFs1XSAqL1xuXG4gICAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIFs1XSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmI3skZXhwYW5kYWJsZS1jb250ZW50LXN0YXRlLWV4cGFuZGVkfSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnIgbWluLWNvbnRlbnQ7IC8qIFs1XSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWV4cGFuZGFibGUtY29udGVudF9fY29udGVudCB7XG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAkZXhwYW5kYWJsZS1jb250ZW50LWNvbnRlbnQtcGFkZGluZy12ZXJ0aWNhbDsgLyogWzE0XSAqL1xuICAgICAgICB9XG4gICAgfVxuXG5AaWYgKCRleHBhbmRhYmxlLWNvbnRlbnQtaGFzLWNsb3NlLXRyaWdnZXIpIHtcbiAgICAuYy1leHBhbmRhYmxlLWNvbnRlbnRfX3RyaWdnZXItY2xvc2UuYy1leHBhbmRhYmxlLWNvbnRlbnRfX3RyaWdnZXItY2xvc2Uge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKFxuICAgICAgICAgICAgJHRyYW5zaXRpb24tcHJvcGVydHk6IFwib3BhY2l0eSwgcGFkZGluZ1wiLFxuICAgICAgICAgICAgJHRyYW5zaXRpb24tZHVyYXRpb246ICRleHBhbmRhYmxlLWNvbnRlbnQtdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgICAgICAgKTtcblxuICAgICAgICA6bm90KCN7JGV4cGFuZGFibGUtY29udGVudC1zdGF0ZS1leHBhbmRlZH0pID4gJiB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogWzE4XSAqL1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JGV4cGFuZGFibGUtY29udGVudC1zdGF0ZS1leHBhbmRlZH0gPiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkZXhwYW5kYWJsZS1jb250ZW50LXRyaWdnZXItY2xvc2Utc3BhY2luZy1ib3R0b207XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtZXhwYW5kYWJsZS1jb250ZW50X19pY29uOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJGV4cGFuZGFibGUtY29udGVudC1pY29uLWNsb3NlO1xuICAgICAgICB9XG4gICAgfVxufSBAZWxzZSB7XG4gICAgLmMtZXhwYW5kYWJsZS1jb250ZW50IC5jLWV4cGFuZGFibGUtY29udGVudF9fdHJpZ2dlci5jLWV4cGFuZGFibGUtY29udGVudF9fdHJpZ2dlci1jbG9zZSB7IC8qIFsxN10gKi9cbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjRVhQQU5EQUJMRSBDT05URU5UIChTZXR0aW5ncylcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kZXhwYW5kYWJsZS1jb250ZW50LXRyaWdnZXItdGV4dC1jb2xvcjogICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kZXhwYW5kYWJsZS1jb250ZW50LXRyaWdnZXItY2xvc2Utc3BhY2luZy1ib3R0b206ICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuXG4kZXhwYW5kYWJsZS1jb250ZW50LWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICRleHBhbmRhYmxlLWNvbnRlbnQtdHJpZ2dlci10ZXh0LWNvbG9yICFkZWZhdWx0O1xuXG4kZXhwYW5kYWJsZS1jb250ZW50LWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICRDT0xPUi1TVVJGQUNFLVBSSU1BUlkgIWRlZmF1bHQ7XG5cbi8vIFRoZSB2ZXJ0aWNhbCBwYWRkaW5nIGNvcnJlc3BvbmRzIHRvIHRoZSBwYWdlIHdyYXAgcGFkZGluZy4gSG93ZXZlciwgaW4gb3JkZXJcbi8vIHRvIGtlZXAgaXQgZnJvbSBiZWluZyB0b28gc21hbGwgaW4gc21hbGwgdmlld3BvcnRzLCB0aGlzIHZhbHVlIGlzIG11bHRpcGxpZWRcbi8vIGJ5IGAxLjVgIChhIG1hZ2ljIG51bWJlciB0aGF0IHdvcmtzIHF1aXRlIHdlbGwgaGVyZSkuIFRoZSBtYXhpbXVtIHZhbHVlIHdpbGxcbi8vIG5ldmVyIGV4Y2VlZCBgJEdMT0JBTC1TUEFDSU5HLVVOSVRgLlxuJGV4cGFuZGFibGUtY29udGVudC1jb250ZW50LXBhZGRpbmctdmVydGljYWw6ICAgICBtaW4oJEdMT0JBTC1TUEFDSU5HLVVOSVQsIHZhcigtLXBhZ2Utd3JhcCkgKiAxLjUpICFkZWZhdWx0O1xuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0VYUEFOREFCTEUtQ09OVEVOVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRza29kYS1leHBhbmRhYmxlLWNvbnRlbnQtYm9yZGVyOiAgICAgICAgJEdMT0JBTC1CT1JERVItV0lEVEggc29saWQgJEdMT0JBTC1CT1JERVItQ09MT1IgIWRlZmF1bHQ7XG4kc2tvZGEtZXhwYW5kYWJsZS1jb250ZW50LWJvcmRlci1jb2xvcjogICRHTE9CQUwtQk9SREVSLUNPTE9SICFkZWZhdWx0O1xuJHNrb2RhLWV4cGFuZGFibGUtY29udGVudC1ib3JkZXItcmFkaXVzOiAkR0xPQkFMLUJPUkRFUi1SQURJVVMgIWRlZmF1bHQ7XG5cbi5jLWV4cGFuZGFibGUtY29udGVudCB7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6ICRza29kYS1leHBhbmRhYmxlLWNvbnRlbnQtYm9yZGVyLWNvbG9yO1xuICAgIH1cblxuICAgICY6bm90KC5pcy1jbG9zZWQtd2l0aGluKTo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyOiAkc2tvZGEtZXhwYW5kYWJsZS1jb250ZW50LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNrb2RhLWV4cGFuZGFibGUtY29udGVudC1ib3JkZXItcmFkaXVzO1xuICAgIH1cblxufVxuXG4gICAgLmMtZXhwYW5kYWJsZS1jb250ZW50X19jb250ZW50ID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuYy1leHBhbmRhYmxlLWNvbnRlbnRfX2ljb24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taWNvbi1zdGF0ZXMoXG4gICAgICAgICAgICAkY29udGV4dC1zZWxlY3RvcjogXCIuYy1leHBhbmRhYmxlLWNvbnRlbnRfX3RyaWdnZXJcIixcbiAgICAgICAgKTtcbiAgICB9XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjR1VJRElORy1MSU5FXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGd1aWRpbmctbGluZS1lbmFibGVkOiAgICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcblxuJGd1aWRpbmctbGluZS1icmVha3BvaW50OiAgICAgICAgICAgICAgICBzICFkZWZhdWx0O1xuJGd1aWRpbmctbGluZS13aWR0aDogICAgICAgICAgICAgICAgICAgICAycHggIWRlZmF1bHQ7XG4kZ3VpZGluZy1saW5lLXNwYWNpbmctYm90dG9tOiAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJGd1aWRpbmctbGluZS1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAzcHggIWRlZmF1bHQ7XG5cbiRndWlkaW5nLWxpbmUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UgIWRlZmF1bHQ7XG4kZ3VpZGluZy1saW5lLWFsdGVybmF0aXZlLWNvbG9yOiAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcblxuJGd1aWRpbmctbGluZS1hbmltYXRpb24tZHVyYXRpb246ICAgICAgICAzcyAhZGVmYXVsdDtcbiRndWlkaW5nLWxpbmUtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTQsIDEuMTIsIDAuNjcsIDAuOTkpICFkZWZhdWx0O1xuXG4kZ3VpZGluZy1saW5lLWxhYmVsLXNwYWNpbmctYm90dG9tOiAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULUxBUkdFICFkZWZhdWx0O1xuJGd1aWRpbmctbGluZS1sYWJlbC1mb250LXNpemU6ICAgICAgICAgICAkRlMtMSAhZGVmYXVsdDtcbiRndWlkaW5nLWxpbmUtbGFiZWwtY29sb3I6ICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcblxuJGd1aWRpbmctbGluZS1oZWlnaHQ6IChcbiAgICBudWxsOiAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhMQVJHRSxcbiAgICAkZ3VpZGluZy1saW5lLWJyZWFrcG9pbnQ6ICRHTE9CQUwtU1BBQ0lORy1VTklULUxBUkdFXG4pICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBCb3JkZXIgcmFkaXVzIG9mIHRoZSBsaW5lIGNvbnRhaW5lci5cbiAqIFsyXSBCb3JkZXIgcmFkaXVzIG9mIHRoZSBsaW5lLlxuKi9cblxuQGlmICgkZ3VpZGluZy1saW5lLWVuYWJsZWQpIHtcblxuICAgIC5jLWd1aWRpbmctbGluZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgICAgIC5jLWd1aWRpbmctbGluZV9fbGluZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFwiaGVpZ2h0XCIsICRndWlkaW5nLWxpbmUtaGVpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkZ3VpZGluZy1saW5lLXdpZHRoO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRndWlkaW5nLWxpbmUtc3BhY2luZy1ib3R0b207XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZ3VpZGluZy1saW5lLWJvcmRlci1yYWRpdXM7IC8qIFsxXSAqL1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRndWlkaW5nLWxpbmUtYm9yZGVyLXJhZGl1czsgLyogWzJdICovXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGd1aWRpbmctbGluZS1jb2xvcjtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246ICRndWlkaW5nLWxpbmUtYW5pbWF0aW9uLWR1cmF0aW9uICRndWlkaW5nLWxpbmUtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiAwcyBpbmZpbml0ZSBub3JtYWwgbm9uZSBydW5uaW5nIGd1aWRpbmctbGluZS1hbmltYXRpb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYy1ndWlkaW5nLWxpbmVfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICRmb250LXNpemU6ICRndWlkaW5nLWxpbmUtbGFiZWwtZm9udC1zaXplXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGd1aWRpbmctbGluZS1sYWJlbC1zcGFjaW5nLWJvdHRvbTtcbiAgICAgICAgICAgIGNvbG9yOiAkZ3VpZGluZy1saW5lLWxhYmVsLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICBAaWYgKCRndWlkaW5nLWxpbmUtYWx0ZXJuYXRpdmUtY29sb3IpIHtcbiAgICAgICAgLmMtZ3VpZGluZy1saW5lLS1hbHRlcm5hdGl2ZSB7XG5cbiAgICAgICAgICAgIC5jLWd1aWRpbmctbGluZV9fbGluZTo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3VpZGluZy1saW5lLWFsdGVybmF0aXZlLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyBndWlkaW5nLWxpbmUtYW5pbWF0aW9uIHtcbiAgICAgICAgMCUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDUwJSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gICAgICAgIH1cbiAgICB9XG5cbn0gQGVsc2Uge1xuXG4gICAgLmMtZ3VpZGluZy1saW5lIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbn1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNQTEFZLUJVVFRPTlxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogWzFdIENlbnRlciBpY29uIGluc2lkZSBidXR0b24uXG4gKiBbMl0gT3ZlcndyaXRlIHBseXIgZGVmYXVsdC5cbiAqIFszXSBDZW50ZXIgcGxheSBidXR0b24gaWNvbi5cbiAqL1xuJHBsYXktYnV0dG9uLWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICBzICFkZWZhdWx0O1xuJHBsYXktYnV0dG9uLXNpemU6ICAgICAgICAgICAgICAgICAgICBtYXAtZ2V0KCRJQ09OLVJPVU5ELUZVTEwtU0laRVMsIFwibWVkaXVtXCIpICFkZWZhdWx0O1xuJHBsYXktYnV0dG9uLXNpemUtYXQtYnJlYWtwb2ludDogICAgICBtYXAtZ2V0KCRJQ09OLVJPVU5ELUZVTEwtU0laRVMsIFwic21hbGxcIikgIWRlZmF1bHQ7XG4kcGxheS1idXR0b24tYm9yZGVyLXdpZHRoOiAgICAgICAgICAgIDJweCAhZGVmYXVsdDtcbiRwbGF5LWJ1dHRvbi1ib3JkZXItY29sb3I6ICAgICAgICAgICAgJENPTE9SLUhJR0hMSUdIVCAhZGVmYXVsdDtcbiRwbGF5LWJ1dHRvbi1ib3JkZXI6ICAgICAgICAgICAgICAgICAgJHBsYXktYnV0dG9uLWJvcmRlci13aWR0aCBzb2xpZCAkcGxheS1idXR0b24tYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJHBsYXktYnV0dG9uLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kcGxheS1idXR0b24tYmFja2dyb3VuZC1ob3ZlcjogICAgICAgICRwbGF5LWJ1dHRvbi1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHBsYXktYnV0dG9uLWljb246ICAgICAgICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1wbGF5KSAhZGVmYXVsdDtcbiRwbGF5LWJ1dHRvbi1pY29uLWNvbG9yOiAgICAgICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJHBsYXktYnV0dG9uLWljb24tY29sb3ItaG92ZXI6ICAgICAgICAkcGxheS1idXR0b24taWNvbi1jb2xvciAhZGVmYXVsdDtcbiRwbGF5LWJ1dHRvbi1pY29uLXNpemU6ICAgICAgICAgICAgICAgaWNvbi1zaXplKHNtYWxsKSAhZGVmYXVsdDtcbiRwbGF5LWJ1dHRvbi1pY29uLXNpemUtYXQtYnJlYWtwb2ludDogbnVsbCAhZGVmYXVsdDtcbiRwbGF5LWJ1dHRvbi1pY29uLWZpbHRlcjogICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRwbGF5LWJ1dHRvbi1zaGFkb3c6ICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRwbGF5LWJ1dHRvbi10cmFuc2l0aW9uOiAgICAgICAgICAgICAgJEdMT0JBTC1UUkFOU0lUSU9OICFkZWZhdWx0O1xuXG4vLy8gQXBwbHkgcGxheS1idXR0b24gc3R5bGVzIHRvIGNvbmZpZ3VyYWJsZSBzZWxlY3RvcnMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJ1dHRvbi1zZWxlY3RvciAtIFNlbGVjdG9yIGZvciBidXR0b25cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGljb24tc2VsZWN0b3IgLSBTZWxlY3RvciBmb3IgaWNvbiAoaWNvbmZvbnQgb3Igc3ZnKVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbGFiZWwtc2VsZWN0b3IgLSBTZWxlY3RvciBmb3IgbGFiZWwgKGExMXksIHZpc3VhbGx5IGhpZGRlbilcbi8vLyBAcmV0dXJucyB7Q1NTfSBDb21wbGV0ZSBydWxlc2V0IGZvciBwbGF5LWJ1dHRvbiBzdHlsaW5nLlxuQG1peGluIHBsYXktYnV0dG9uKFxuICAgICRidXR0b24tc2VsZWN0b3I6IFwiLmMtcGxheS1idXR0b25cIixcbiAgICAkaWNvbi1zZWxlY3RvcjogICBcIi5jLXBsYXktYnV0dG9uX19pY29uXCIsXG4gICAgJGxhYmVsLXNlbGVjdG9yOiAgXCIuYy1wbGF5LWJ1dHRvbl9fbGFiZWxcIixcbikge1xuICAgIEBpZiBub3QoJHBsYXktYnV0dG9uLWljb24pIHtcbiAgICAgICAgQGVycm9yKFwiUGxheUJ1dHRvbjogWW91IGhhdmUgdG8gY29uZmlndXJlIGAkcGxheS1idXR0b24taWNvbmAuXCIpO1xuICAgIH1cblxuICAgICN7JGJ1dHRvbi1zZWxlY3Rvcn0ge1xuICAgICAgICAtLXBsYXktYnV0dG9uLWljb246ICN7JHBsYXktYnV0dG9uLWljb259O1xuICAgICAgICAtLXBsYXktYnV0dG9uLWJhY2tncm91bmQtY29sb3I6ICN7JHBsYXktYnV0dG9uLWJhY2tncm91bmR9O1xuICAgICAgICAtLXBsYXktYnV0dG9uLWJhY2tncm91bmQtY29sb3ItaG92ZXI6ICN7JHBsYXktYnV0dG9uLWJhY2tncm91bmQtaG92ZXJ9O1xuICAgICAgICAtLXBsYXktYnV0dG9uLWJvcmRlcjogI3skcGxheS1idXR0b24tYm9yZGVyfTtcbiAgICAgICAgLS1wbGF5LWJ1dHRvbi1pY29uLWNvbG9yOiAjeyRwbGF5LWJ1dHRvbi1pY29uLWNvbG9yfTtcbiAgICAgICAgLS1wbGF5LWJ1dHRvbi1pY29uLWNvbG9yLWhvdmVyOiAjeyRwbGF5LWJ1dHRvbi1pY29uLWNvbG9yLWhvdmVyfTtcblxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50OyAvKiBbMV1bMl0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBpdGNzcy9uby1hdC1pbXBvcnRhbnQgKi9cbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogWzFdICovXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKiBbMl0gKi9cbiAgICAgICAgd2lkdGg6ICRwbGF5LWJ1dHRvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwbGF5LWJ1dHRvbi1zaXplO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXI6IHZhcigtLXBsYXktYnV0dG9uLWJvcmRlcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwOyAvKiBbM10gKi9cbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcGxheS1idXR0b24tYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wbGF5LWJ1dHRvbi1pY29uLWNvbG9yKTtcbiAgICAgICAgYm94LXNoYWRvdzogJHBsYXktYnV0dG9uLXNoYWRvdztcbiAgICAgICAgdHJhbnNpdGlvbjogJHBsYXktYnV0dG9uLXRyYW5zaXRpb247XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JHBsYXktYnV0dG9uLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgIHdpZHRoOiAkcGxheS1idXR0b24tc2l6ZS1hdC1icmVha3BvaW50O1xuICAgICAgICAgICAgaGVpZ2h0OiAkcGxheS1idXR0b24tc2l6ZS1hdC1icmVha3BvaW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wbGF5LWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wbGF5LWJ1dHRvbi1pY29uLWNvbG9yLWhvdmVyKTtcbiAgICAgICAgICAgIGZpbHRlcjogJHBsYXktYnV0dG9uLWljb24tZmlsdGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3skaWNvbi1zZWxlY3Rvcn0ge1xuICAgICAgICBAaW5jbHVkZSBpY29uLWZvbnQoKTtcbiAgICAgICAgZm9udC1zaXplOiAkcGxheS1idXR0b24taWNvbi1zaXplO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRwbGF5LWJ1dHRvbi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwbGF5LWJ1dHRvbi1pY29uLXNpemUtYXQtYnJlYWtwb2ludDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiB2YXIoLS1wbGF5LWJ1dHRvbi1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgI3skbGFiZWwtc2VsZWN0b3J9IHtcbiAgICAgICAgQGluY2x1ZGUgYTExeS1oaWRkZW4oKTtcbiAgICB9XG5cbn1cblxuQGluY2x1ZGUgcGxheS1idXR0b24oKTtcbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNQTEFZLUJVVFRPTlxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRza29kYS1wbGF5LWJ1dHRvbi1maWx0ZXI6ICAgICAgICREUk9QLVNIQURPVy1QTEFZLUJVVFRPTiAhZGVmYXVsdDtcbiRza29kYS1wbGF5LWJ1dHRvbi1zY2FsZS1hY3RpdmU6ICRCVVRUT04tU0NBTEUtQUNUSVZFICFkZWZhdWx0O1xuXG4uYy1wbGF5LWJ1dHRvbiB7XG4gICAgZmlsdGVyOiAkc2tvZGEtcGxheS1idXR0b24tZmlsdGVyO1xuXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgQGluY2x1ZGUgZm9jdXMtc3R5bGVzKFxuICAgICAgICAgICAgJG91dGxpbmUtY29sb3I6ICRwbGF5LWJ1dHRvbi1ib3JkZXItY29sb3IsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgICBzY2FsZTogJHNrb2RhLXBsYXktYnV0dG9uLXNjYWxlLWFjdGl2ZTtcbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNMQUJFTEVELUNPTlRFTlQtU0VDVElPTlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRsYWJlbGVkLWNvbnRlbnQtc2VjdGlvbi1wYWRkaW5nLXRvcDogICAgICAgICAgICAkQ09OVEVOVC1TRUNUSU9OLVNQQUNJTkctVE9QICFkZWZhdWx0O1xuJGxhYmVsZWQtY29udGVudC1zZWN0aW9uLXBhZGRpbmctYm90dG9tOiAgICAgICAgICRDT05URU5ULVNFQ1RJT04tU1BBQ0lORy1CT1RUT00gIWRlZmF1bHQ7XG5cbiRsYWJlbGVkLWNvbnRlbnQtc2VjdGlvbi1sYWJlbC1zcGFjaW5nOiAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kbGFiZWxlZC1jb250ZW50LXNlY3Rpb24tbGFiZWwtdGV4dC1jb2xvcjogICAgICAgbnVsbCAhZGVmYXVsdDtcbiRsYWJlbGVkLWNvbnRlbnQtc2VjdGlvbi1sYWJlbC10ZXh0LWZvbnQtc2l6ZTogICBudWxsICFkZWZhdWx0O1xuJGxhYmVsZWQtY29udGVudC1zZWN0aW9uLWxhYmVsLXRleHQtZm9udC13ZWlnaHQ6IG51bGwgIWRlZmF1bHQ7XG4kbGFiZWxlZC1jb250ZW50LXNlY3Rpb24tbGFiZWwtdGV4dC1mb250LWZhbWlseTogbnVsbCAhZGVmYXVsdDtcbiRsYWJlbGVkLWNvbnRlbnQtc2VjdGlvbi1sYWJlbC10ZXh0LXRyYW5zZm9ybTogICBudWxsICFkZWZhdWx0O1xuXG5cbi8qKlxuICogWzFdIFVzZSB0aGUgc2FtZSBwYWRkaW5ncyBhcyB0aGUgY29udGVudCBzZWN0aW9uIG9iamVjdC5cbiAqL1xuXG4uYy1sYWJlbGVkLWNvbnRlbnQtc2VjdGlvbiB7XG4gICAgcGFkZGluZy10b3A6ICRsYWJlbGVkLWNvbnRlbnQtc2VjdGlvbi1wYWRkaW5nLXRvcDsgLyogWzFdICovXG4gICAgcGFkZGluZy1ib3R0b206ICRsYWJlbGVkLWNvbnRlbnQtc2VjdGlvbi1wYWRkaW5nLWJvdHRvbTsgLyogWzFdICovXG59XG5cbi5jLWxhYmVsZWQtY29udGVudC1zZWN0aW9uX19sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGxhYmVsZWQtY29udGVudC1zZWN0aW9uLWxhYmVsLXNwYWNpbmc7XG59XG5cbi5jLWxhYmVsZWQtY29udGVudC1zZWN0aW9uX19sYWJlbC10ZXh0IHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgJGZvbnQtc2l6ZTogICAkbGFiZWxlZC1jb250ZW50LXNlY3Rpb24tbGFiZWwtdGV4dC1mb250LXNpemUsXG4gICAgICAgICRhY2NlcHQtbnVsbDogdHJ1ZVxuICAgICk7XG4gICAgZm9udC1mYW1pbHk6ICRsYWJlbGVkLWNvbnRlbnQtc2VjdGlvbi1sYWJlbC10ZXh0LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkbGFiZWxlZC1jb250ZW50LXNlY3Rpb24tbGFiZWwtdGV4dC1mb250LXdlaWdodDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJGxhYmVsZWQtY29udGVudC1zZWN0aW9uLWxhYmVsLXRleHQtdHJhbnNmb3JtO1xuICAgIGNvbG9yOiAkbGFiZWxlZC1jb250ZW50LXNlY3Rpb24tbGFiZWwtdGV4dC1jb2xvcjtcbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNDT01QQVJFLUFORC1TRUxFQ1QgKFNldHRpbmdzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8vIFVzZSBhIHN0YXRpYyBzcGFjaW5nLCBub3QgcmVzcG9uc2l2ZVxuJGNvbXBhcmUtYW5kLXNlbGVjdC1pdGVtLXNwYWNpbmc6IChcbiAgICBudWxsOiAkR0xPQkFMLVNQQUNJTkctVU5JVCxcbikgIWRlZmF1bHQ7XG5cbiRjb21wYXJlLWFuZC1zZWxlY3QtcGFkZGluZzogICAgICAgICAgICAgICAgICAgICAgICRDQVJELVBBVFRFUk4tUEFERElORy1IT1JJWk9OVEFMICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC1wYWRkaW5nLXRvcDogICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtTEFSR0UgIWRlZmF1bHQ7XG5cbiRjb21wYXJlLWFuZC1zZWxlY3QtYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICRDQVJELVBBVFRFUk4tQkFDS0dST1VORC1DT0xPUiAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtYmFja2dyb3VuZC1jb2xvci1jaGVja2VkOiAgICAgICRDQVJELVBBVFRFUk4tQkFDS0dST1VORC1DT0xPUiAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtYm94LXNoYWRvdzogICAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgJENBUkQtUEFUVEVSTi1CT1JERVIgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LWJvcmRlci1jb2xvci1jaGVja2VkOiAgICAgICAgICAkQ0FSRC1QQVRURVJOLUJPUkRFUi1DT0xPUi1TRUxFQ1RFRCAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgICRDQVJELVBBVFRFUk4tQk9SREVSLVJBRElVUyAhZGVmYXVsdDtcblxuJGNvbXBhcmUtYW5kLXNlbGVjdC10aXRsZS1mb250LXNpemU6ICAgICAgICAgICAgICAgJENBUkQtUEFUVEVSTi1USVRMRS1TSVpFICFkZWZhdWx0O1xuXG4kY29tcGFyZS1hbmQtc2VsZWN0LWxhYmVsLWZvbnQtc2l6ZTogICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtbGFiZWwtdGV4dC10cmFuc2Zvcm06ICAgICAgICAgIHVwcGVyY2FzZSAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtbGFiZWwtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtbGFiZWwtbGV0dGVyLXNwYWNpbmc6ICAgICAgICAgICRHTE9CQUwtRk9OVC1MRVRURVItU1BBQ0lORyAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtbGFiZWwtY29sb3I6ICAgICAgICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtbGFiZWwtYmFja2dyb3VuZC1jb2xvcjogICAgICAgICRDT0xPUi1CUkFORC1URVJUSUFSWSAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtbGFiZWwtb2Zmc2V0OiAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcblxuLy8gVXNlIHN0YXRpYyBmb250LXNpemUsIG5vdCByZXNwb25zaXZlXG4kY29tcGFyZS1hbmQtc2VsZWN0LXRpdGxlLWluZGljYXRvci1mb250LXNpemU6IChcbiAgICBudWxsOiBtYXAtZ2V0KCRGUzQsIG51bGwpLFxuKSAhZGVmYXVsdDtcblxuJGNvbXBhcmUtYW5kLXNlbGVjdC1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKCRDQVJELVBBVFRFUk4tSUNPTi1TSVpFKSAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICRDQVJELVBBVFRFUk4tSUNPTi1DT0xPUiAhZGVmYXVsdDtcblxuJGNvbXBhcmUtYW5kLXNlbGVjdC1sZWdhbC1mb250LXNpemU6ICAgICAgICAgICAgICAgJEZTLTIgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LWxlZ2FsLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG5cbiRjb21wYXJlLWFuZC1zZWxlY3QtcmFkaW8tZm9udC1zaXplOiAgICAgICAgICAgICAgICRGUy0xICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC1yYWRpby1mb250LXdlaWdodDogICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1MQUJFTC1GT05ULVdFSUdIVCAhZGVmYXVsdDtcblxuJGNvbXBhcmUtYW5kLXNlbGVjdC1yYWRpby1kZXNjcmlwdGlvbi1mb250LXNpemU6ICAgJEZTLTIgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LXJhZGlvLWRlc2NyaXB0aW9uLWZvbnQtd2VpZ2h0OiAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG5cbiRjb21wYXJlLWFuZC1zZWxlY3QtYnV0dG9uLWZ1bGwtd2lkdGg6ICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQ09NUEFSRS1BTkQtU0VMRUNUXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQHVzZSBcInNhc3M6bWF0aFwiIGFzICo7XG5cbiRjb21wYXJlLWFuZC1zZWxlY3Qtd2lkdGg6IChcbiAgICBudWxsOiBwZXJjZW50YWdlKGRpdig0LCAxMikpLFxuICAgIFwibVwiOiAgcGVyY2VudGFnZShkaXYoNSwgMTIpKSxcbiAgICBcInNcIjogIHBlcmNlbnRhZ2UoZGl2KDgsIDEyKSksXG4gICAgXCJ4c1wiOiBwZXJjZW50YWdlKGRpdigxMCwgMTIpKSxcbikgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgbSAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtZXF1YWwtaGVpZ2h0LWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICBzICFkZWZhdWx0O1xuXG4vLyBVc2UgcGFnZS13cmFwIHNwYWNpbmcgZGVmaW5pdGlvbnMgPCBicmVha3BvaW50XG4kY29tcGFyZS1hbmQtc2VsZWN0LW9mZnNldC1hdC1icmVha3BvaW50OiAoXG4gICAgXCJtXCI6ICBtYXAtZ2V0KCRwYWdlLXdyYXAtcGFkZGluZy1ob3Jpem9udGFsLCBcIm1cIiksXG4gICAgXCJzXCI6ICBtYXAtZ2V0KCRwYWdlLXdyYXAtcGFkZGluZy1ob3Jpem9udGFsLCBcInNcIiksXG4gICAgXCJ4c1wiOiBtYXAtZ2V0KCRwYWdlLXdyYXAtcGFkZGluZy1ob3Jpem9udGFsLCBcInhzXCIpLFxuKSAhZGVmYXVsdDtcblxuJGNvbXBhcmUtYW5kLXNlbGVjdC1pdGVtLXNwYWNpbmc6IChcbiAgICBudWxsOiAkR0xPQkFMLVNQQUNJTkctVU5JVC1MQVJHRSxcbiAgICBcImxcIjogICRHTE9CQUwtU1BBQ0lORy1VTklULFxuICAgIFwibVwiOiAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwsXG4gICAgXCJzXCI6ICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwsXG4pICFkZWZhdWx0O1xuXG4kY29tcGFyZS1hbmQtc2VsZWN0LXNsaWRlci1hcnJvdy1pY29uLXNpemU6ICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbi8vIGBib3R0b21gIG9yIGB0b3BgXG4kY29tcGFyZS1hbmQtc2VsZWN0LXNsaWRlci1uYXZpZ2F0aW9uLXBvc2l0aW9uOiAgICAgICAgICAgYm90dG9tICFkZWZhdWx0O1xuLy8gVGhpcyBzZXRzIHRoZSBpbm5lciBwYWRkaW5nIG9mIHRoZSBjb21wb25lbnRzIGJveCBmb3IgYWxsIGl0cyBjb250ZW50LlxuJGNvbXBhcmUtYW5kLXNlbGVjdC1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC1wYWRkaW5nLXRvcDogICAgICAgICAgICAgICAgICAgICAgICAgICRjb21wYXJlLWFuZC1zZWxlY3QtcGFkZGluZyAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtcGFkZGluZy1ib3R0b206ICAgICAgICAgICAgICAgICAgICAgICAkY29tcGFyZS1hbmQtc2VsZWN0LXBhZGRpbmcgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1CT1gtU0hBRE9XICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC1ib3gtc2hhZG93LWNoZWNrZWQ6ICAgICAgICAgICAgICAgICAgICRjb21wYXJlLWFuZC1zZWxlY3QtYm94LXNoYWRvdyAhZGVmYXVsdDtcbi8vIE1ha2Ugc3VyZSB0aGUgYm94LXNoYWRvdyBpcyB2aXNpYmxlIGJ5IGV4dGVuZGluZyB0aGUgZmxpY2tpdHkgdmlld3BvcnRcbiRjb21wYXJlLWFuZC1zZWxlY3Qtb2Zmc2V0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigkY29tcGFyZS1hbmQtc2VsZWN0LWJveC1zaGFkb3cgb3IgJGNvbXBhcmUtYW5kLXNlbGVjdC1ib3gtc2hhZG93LWNoZWNrZWQsIDVweCwgbnVsbCkgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LW9mZnNldC10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBhcmUtYW5kLXNlbGVjdC1vZmZzZXQgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LW9mZnNldC1ib3R0b206ICAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBhcmUtYW5kLXNlbGVjdC1vZmZzZXQgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC1iYWNrZ3JvdW5kLWNvbG9yLWNoZWNrZWQ6ICAgICAgICAgICAgICRDT0xPUi1QQUxFICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LWJvcmRlci1jb2xvci1jaGVja2VkOiAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kY29tcGFyZS1hbmQtc2VsZWN0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtY29sb3ItY2hlY2tlZDogICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC1jb2xvci1pbmRpY2F0b3ItY2hlY2tlZDogICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbi8vIFRvcCBwb3NpdGlvbiBmb3IgYWJzb2x1dGUgcG9zaXRpb25lZCBsYWJlbHNcbiRjb21wYXJlLWFuZC1zZWxlY3QtbGFiZWwtdG9wOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29tcGFyZS1hbmQtc2VsZWN0LXBhZGRpbmcgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LWxhYmVsLW9mZnNldDogICAgICAgICAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtbGFiZWwtaG9yaXpvbnRhbC1jZW50ZXJpbmc6ICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC1sYWJlbC1ob3Jpem9udGFsLXBhZGRpbmc6ICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LWxhYmVsLXZlcnRpY2FsLXBhZGRpbmc6ICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtbGFiZWwtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAkRlMtMSAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtbGFiZWwtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LWxhYmVsLXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtbGFiZWwtbGV0dGVyLXNwYWNpbmc6ICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC1sYWJlbC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LWxhYmVsLWNvbG9yLWNoZWNrZWQ6ICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtbGFiZWwtYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC1sYWJlbC1iYWNrZ3JvdW5kLWNvbG9yLWNoZWNrZWQ6ICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRjb21wYXJlLWFuZC1zZWxlY3QtbGluay1jb2xvci1jaGVja2VkOiAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC1pY29uLWNvbG9yLWNoZWNrZWQ6ICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRjb21wYXJlLWFuZC1zZWxlY3QtdGl0bGUtaG9yaXpvbnRhbC1jZW50ZXJpbmc6ICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtdGl0bGUtdmVydGljYWwtc3BhY2luZzogICAgICAgICAgICAgICAkY29tcGFyZS1hbmQtc2VsZWN0LXBhZGRpbmcgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LXRpdGxlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgJEZTMCAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtdGl0bGUtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC10aXRsZS10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LXRpdGxlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtdGl0bGUtZGl2aWRlcjogICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC10aXRsZS1kaXZpZGVyLWNoZWNrZWQ6ICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LXRpdGxlLWFsaWduOiAgICAgICAgICAgICAgICAgICAgICAgICAgY2VudGVyICFkZWZhdWx0O1xuXG4kY29tcGFyZS1hbmQtc2VsZWN0LXRpdGxlLWluZGljYXRvci1mb250LXNpemU6ICAgICAgICAgICAgJEZTNSAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtdGl0bGUtaW5kaWNhdG9yLWZvbnQtd2VpZ2h0OiAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC10aXRsZS1pbmRpY2F0b3ItdGV4dC10cmFuc2Zvcm06ICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LXRpdGxlLWluZGljYXRvci1jb2xvcjogICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuJGNvbXBhcmUtYW5kLXNlbGVjdC1pY29uLWVuYWJsZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LWljb24tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKGxhcmdlKSAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtaWNvbi1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuXG4kY29tcGFyZS1hbmQtc2VsZWN0LWRlc2NyaXB0aW9uLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgJEZTLTEgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LWRlc2NyaXB0aW9uLXZlcnRpY2FsLXNwYWNpbmc6ICAgICAgICAgJGNvbXBhcmUtYW5kLXNlbGVjdC1wYWRkaW5nICFkZWZhdWx0O1xuXG4kY29tcGFyZS1hbmQtc2VsZWN0LWJ1dHRvbi1mdWxsLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtYnV0dG9uLXZlcnRpY2FsLXNwYWNpbmc6ICAgICAgICAgICAgICAkY29tcGFyZS1hbmQtc2VsZWN0LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbiRjb21wYXJlLWFuZC1zZWxlY3QtbGVnYWwtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAkRlMtMSAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtbGVnYWwtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC1sZWdhbC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRjb21wYXJlLWFuZC1zZWxlY3QtY2hlY2tib3gtbGFiZWwtY29sb3I6ICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC1jaGVja2JveC1sYWJlbC1jb2xvci1jaGVja2VkOiAgICAgICAgIGluaGVyaXQgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LWNoZWNrYm94LWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtY2hlY2tib3gtaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC1jaGVja2JveC1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRjb21wYXJlLWFuZC1zZWxlY3QtcmFkaW8tZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAkRlMyICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC1yYWRpby1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtcmFkaW8tZGVzY3JpcHRpb24tZm9udC1zaXplOiAgICAgICAgICAkRlMtMSAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtcmFkaW8tZGVzY3JpcHRpb24tZm9udC13ZWlnaHQ6ICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LXJhZGlvLWRlc2NyaXB0aW9uLWNvbG9yOiAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtcmFkaW8tbGFiZWwtYmFja2dyb3VuZC1jb2xvcjogICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC1yYWRpby1sYWJlbC1iYWNrZ3JvdW5kLWNvbG9yLWNoZWNrZWQ6IG51bGwgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LXJhZGlvLWxhYmVsLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgaW5oZXJpdCAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtcmFkaW8tbGFiZWwtY29sb3ItY2hlY2tlZDogICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC1yYWRpby1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LXJhZGlvLWJvcmRlci1jb2xvci1jaGVja2VkOiAgICAgICAgICAgJGNvbXBhcmUtYW5kLXNlbGVjdC1yYWRpby1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LXJhZGlvLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtcmFkaW8tYmFja2dyb3VuZC1jb2xvci1jaGVja2VkOiAgICAgICAkY29tcGFyZS1hbmQtc2VsZWN0LXJhZGlvLWJhY2tncm91bmQtY29sb3IgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LXJhZGlvLWRvdC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3QtcmFkaW8tZG90LWJhY2tncm91bmQtY29sb3ItaG92ZXI6ICAgICBudWxsICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC1yYWRpby1kb3QtYmFja2dyb3VuZC1jb2xvci1jaGVja2VkOiAgIG51bGwgIWRlZmF1bHQ7XG5cbiRjb21wYXJlLWFuZC1zZWxlY3QtbGlzdC12ZXJ0aWNhbC1zcGFjaW5nOiAgICAgICAgICAgICAgICAkY29tcGFyZS1hbmQtc2VsZWN0LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbiRjb21wYXJlLWFuZC1zZWxlY3Qtc3RhY2tlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LXN0YWNrZWQtY29sb3ItY2hlY2tlZDogICAgICAgICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJGNvbXBhcmUtYW5kLXNlbGVjdC1zdGFja2VkLXZlcnRpY2FsLXNwYWNpbmc6ICAgICAgICAgICAgICRjb21wYXJlLWFuZC1zZWxlY3QtcGFkZGluZyAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3Qtc3RhY2tlZC1pdGVtLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAkY29tcGFyZS1hbmQtc2VsZWN0LXBhZGRpbmcgIWRlZmF1bHQ7XG4kY29tcGFyZS1hbmQtc2VsZWN0LXN0YWNrZWQtYnJlYWtwb2ludDogICAgICAgICAgICAgICAgICAgcyAhZGVmYXVsdDtcbiRjb21wYXJlLWFuZC1zZWxlY3Qtc3RhY2tlZC1icmVha3BvaW50LXZhbHVlOiAgICAgICAgICAgICBtYXAtZ2V0KCRCUkVBS1BPSU5UUywgJGNvbXBhcmUtYW5kLXNlbGVjdC1zdGFja2VkLWJyZWFrcG9pbnQpICFkZWZhdWx0O1xuXG4kY29tcGFyZS1hbmQtc2VsZWN0LXRoZW1lczogKFxuICAgIFwiYWx0ZXJuYXRpdmVcIjogKFxuICAgICAgICBcIiRjb21wYXJlLWFuZC1zZWxlY3QtYmFja2dyb3VuZC1jb2xvclwiOiAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgIFwiJGNvbXBhcmUtYW5kLXNlbGVjdC1iYWNrZ3JvdW5kLWNvbG9yLWNoZWNrZWRcIjogICAgICAgbnVsbCxcbiAgICAgICAgXCIkY29tcGFyZS1hbmQtc2VsZWN0LWxhYmVsLWNvbG9yXCI6ICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICBcIiRjb21wYXJlLWFuZC1zZWxlY3QtbGFiZWwtY29sb3ItY2hlY2tlZFwiOiAgICAgICAgICAgIG51bGwsXG4gICAgICAgIFwiJGNvbXBhcmUtYW5kLXNlbGVjdC1sYWJlbC1iYWNrZ3JvdW5kLWNvbG9yXCI6ICAgICAgICAgbnVsbCxcbiAgICAgICAgXCIkY29tcGFyZS1hbmQtc2VsZWN0LWxhYmVsLWJhY2tncm91bmQtY29sb3ItY2hlY2tlZFwiOiBudWxsLFxuICAgIClcbikgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIE9ubHkgYWRkIHBhZGRpbmcgYW5kIGJvcmRlciB0byB0aGUgdG9wIGlmIHRoaXMgZWxlbWVudCBpcyBub3QgYVxuICogICAgIGRpcmVjdCBzaWJsaW5nIG9mIHRoZSBoZWFkZXIgZWxlbWVudC5cbiAqIFsyXSBIaWRlIG5hdGl2ZSBpbnB1dCBlbGVtZW50IGFuZCBkbyBub3QgYWN0IGFzIGEgXCJzY3JvbGwgYW5jaG9yXCJcbiAqICAgICB3aGVuIHRoZSBhc3NvY2lhdGVkIGxhYmVsIGlzIGNsaWNrZWQuXG4gKiBbM10gQ2VudGVyIHRoZSBpY29uIGFuZCB0aXRsZSB0ZXh0LiBgZGlzcGxheTogZmxleGAgaXMgc2V0IGJ5IGAuby1tZWRpYWAuXG4gKiBbNF0gUmVzZXQgZGVmYXVsdCBgbWFyZ2luLWJvdHRvbWAuXG4gKiBbNV0gVGhlIGJ1dHRvbiBzdHJldGNoZXMgYWNyb3NzIHRoZSBmdWxsIHdpZHRoIGJ5IGRlZmF1bHQuIE9wdGlvbmFsbHkgaXQgY2FuXG4gKiAgICAgIGJlIGNlbnRlcmVkIHZpYSBmbGV4Ym94IGFuZCBgYXV0b2AgbWFyZ2lucy5cbiAqIFs2XSBFbGltaW5hdGUgdGhlIHNwYWNpbmcgYm90dG9tIGJlbG93IHRoZSB2ZXJ5IGxhc3RcbiAqICAgICBlbGVtZW50IGluIHRoZSBjb250YWluZXIuXG4gKiBbN10gQWx0aG91Z2ggdGhlIGBtYXJnaW5gIHByb3BlcnR5IGlzIHVzZWQgaGVyZSwgd2hhdCBpdCBhY3R1YWxseSBkb2VzXG4gKiAgICAgKip2aXN1YWxseSoqIGlzIHNldHRpbmcgYSBwYWRkaW5nLiBUaGF0J3Mgd2h5IG91clxuICogICAgIGAkY29tcGFyZS1hbmQtc2VsZWN0LXBhZGRpbmdgIHZhcmlhYmxlIGlzIHVzZWQuXG4gKiBbOF0gVG8gYWxpZ24gdGhlIHNsaWRlciBkb3RzIGFuZCB0aGUgc2xpZGVyIGFycm93cyBwcm9wZXJseSwgd2Ugc2V0IHRoZVxuICogICAgIGNvbnRhaW5lciB0byBmbGV4IGFuZCByZXBvc2l0aW9uIHRoZSBpdGVtcyB3aXRoIHRoZSBgb3JkZXJgIHByb3BlcnR5LlxuICogICAgIFRoaXMgcHJldmVudHMgdXMgZnJvbSB1c2luZyBgcG9zaXRpb246IGFic29sdXRlYCBwbHVzIG1hZ2ljIG51bWJlcnMuXG4gKiBbOV0gQ2VudGVyIHRoZSBkb3RzIGFuZCB0aGUgYXJyb3dzIGhvcml6b250YWxseS5cbiAqIFsxMF0gQ2VudGVyIHRoZSBkb3RzIGFuZCB0aGUgYXJyb3dzIHZlcnRpY2FsbHkuXG4gKiBbMTFdIEZvcmNlIHRoZSBzbGlkZXIgaXRlbXMgdG8gdGFrZSB1cCBhbGwgaG9yaXpvbnRhbCBzcGFjZS5cbiAqIFsxMl0gSGFjayB0byBwcmV2ZW50IGEgY3V0LW9mZiBvZiB0aGUgYm94LXNoYWRvdyBieSB0aGUgbmVjZXNzYXJ5XG4gKiAgICAgIGBvdmVyZmxvdzogaGlkZGVuYCBvZiB0aGUgc2xpZGVyIGNvbnRhaW5lci5cbiAqIFsxM10gSGlkZSB0aGUgZG90cyBhbmQgYXJyb3dzLCBpZiB0aGVyZSBpcyBub3RoaW5nIHRvIHNsaWRlLlxuICogWzE0XSBDb21wZW5zYXRlIG9ubHkgYWJvdmUgYnJlYWtwb2ludC4gU21hbGxlciBicmVha3BvaW50cyBnbyBlZGdlLXRvLWVkZ2UsXG4gKiAgICAgIG5vIGNvbXBlbnNhdGlvbiByZXF1aXJlZC5cbiAqIFsxNV0gVGhlIGFjdHVhbCBhcnJvdyBpY29ucyBvZiB0aGUgc2xpZGVyLiBUaGUgc2l6ZSBvZiB0aGUgaWNvbnMgaGFzIHRvIGJlXG4gKiAgICAgIGRvbmUgZGlyZWN0bHkgb24gdGhlIHBzZXVkbyBlbGVtZW50LlxuICogWzE2XSBgYm94LXNoYWRvd2AgY2FuIGJlIHVzZWQgZm9yIHJlYWwgYm94IHNoYWRvdyBlZmZlY3RzIG9yIHNpbXVsYXRlZFxuICogICAgICBib3JkZXJzIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgaW5uZXIgZWxlbWVudMuacyB3aWR0aHMuXG4gKiBbMTddIFVzZSBmbGV4Ym94IHRvIGFsbG93IHJldmVyc2VkIG9yZGVyIG9mIHRvdGFsIGFuZCBzdWZmaXguXG4gKiBbMThdIFNldCB0aGUgc3BhY2luZyBiZXR3ZWVuIHZhbHVlIHRvdGFsIGFuZCB2YWx1ZSBzdWZmaXggZGVwZW5kaW5nIG9uIHRoZVxuICogICAgICB2aXN1YWwgb3JkZXIgb2YgYm90aCBlbGVtZW50cy5cbiAqIFsxOV0gU2V0IGBwb3NpdGlvbmAgdG8gYWxsb3cgcG9zaXRpb25pbmcgb2YgaW5uZXIgZWxlbWVudHMgbGlrZSB0aGUgbGFiZWwuXG4gKiBbMjBdIEluY3JlYXNlIHRoZSByYWRpbyBidXR0b24gbGFiZWwgd2lkdGggdG8gdGhlIGZ1bGwgY29tcG9uZW50IHdpZHRoLlxuICogICAgICB0aGVtIGhvcml6b250YWxseS5cbiAqIFsyMV0gQ3JlYXRlIChyZXNwb25zaXZlKSBndXR0ZXIgYmV0d2VlbiB0aGUgc2xpZGVyIGVsZW1lbnRzIHdoaWxlIHN0aWxsXG4gKiAgICAgIGFsaWduaW5nIHRoZSBjb250ZW50IGNvcnJlY3RseSBob3Jpem9udGFsbHkuIFRoYXQgaXMgd2h5IHdlIG5lZWQgdGhlXG4gKiAgICAgIG5lZ2F0aXZlIHBhZGRpbmcgXCJ0cmlja1wiIGhlcmUuXG4gKiBbMjJdIE1ha2UgYWxsIHNsaWRlciBlbGVtZW50cyB0aGUgc2FtZSBoZWlnaHQgd2hpbGUgcHVzaGluZyB0aGUgcmFkaW8gYWRkb25cbiAqICAgICAgYW5kIGxlZ2FsIHRleHQgdG8gdGhlIGJvdHRvbS5cbiAqIFsyM10gQ2FsY3VsYXRlIGNvcnJlY3Qgc3BhY2luZyBiZXR3ZWVuIHNsaWRlciBhbmQgbmF2aWdhdGlvbiBjb250cm9scyBieVxuICogICAgICBzdWJzdHJhY3RpbmcgdGhlIGJvdHRvbSBvZmZzZXQgaWYgbmVlZGVkLiBUaGlzIG1ha2VzIHN1cmUgdGhhdCB0aGUgc3BhY2luZ1xuICogICAgICBpbiB0b3RhbCBpcyBhbHdheXMgdGhlIHZhbHVlIHdlIHNldCBmb3IgdGhlIHZlcnRpY2FsIHNwYWNpbmcuXG4gKiBbMjRdIEhpZGUgbGFiZWwgd2l0aG91dCBjb250ZW50LiBTZWxlY3RvciBvbmx5IG1hdGNoZXMgZm9yIE5PIGNvbnRlbnQsXG4gKiAgICAgIHdoaXRlc3BhY2VzICYgY29tbWVudHMgYXJlIG5vdCBjb25zaWRlcmVkIGFzIGVtcHR5LlxuICogWzI1XSBNYXRjaCBzZWxlY3RvciBldmVuIHdpdGggd2hpdGVzcGFjZXMgJiBjb21tZW50cyxcbiAqICAgICAgYW5hbG9ndWUgdG8gYDpibGFua2AgKGZpcmVmb3ggb25seSkuXG4gKiBbMjZdIE1vdmUgdGl0bGUgZG93biBpZiBhIGxhYmVsIGlzIHByZXNlbnQgaW4gb3JkZXIgdG8gYWxpZ24gdGl0bGVzIG9mIGl0ZW1zXG4gKiAgICAgIHdpdGggYW5kIHdpdGhvdXQgbGFiZWwgc2lkZS1ieS1zaWRlLiBXZSBhY2NvdW50IGZvciB0aGUgbGFiZWwgaGVpZ2h0IHVzaW5nXG4gKiAgICAgIGFuIG9mZnNldCB2YWx1ZS5cbiAqIFsyN10gRW5hYmxlcyBjaGlsZCBlbGVtZW50cyB0byB3b3JrIHdpdGggdXRpbGl0eSBjbGFzcyBgdS10ZXh0LXRydW5jYXRlYC5cbiAqIFsyOF0gTWFrZSBzdXJlIHdoZW4gdGhlIGJhY2tncm91bmQgaGFzIGEgYnJhbmQgY29sb3IsIHRoZSBgLmMtaWNvbmAgaW5oZXJpdHMgdGhlIHBhcmVudCdzIGNvbG9yLlxuICogWzI5XSBBbGxvdyBjb21wb25lbnQgdG8gYnJlYWsgb3V0IG9mIHBhZ2Utd3JhcCB0byBnbyBmcm9tIGVkZ2UtdG8tZWRnZS5cbiAqIFszMF0gRW5hYmxlIGFuZCBkaXNhYmxlIEZsaWNraXR5IHdpdGggQ1NTIGRlcGVuZGluZyBvbiB0aGUgZGVmaW5lZCBicmVha3BvaW50LlxuICogICAgICBAc2VlIGh0dHBzOi8vZmxpY2tpdHkubWV0YWZpenp5LmNvL29wdGlvbnMuaHRtbCN3YXRjaGNzc1xuICogWzMxXSBXaGVuIHN0YWNrZWQgZW5hYmxlIGZ1bGwgdmlld3BvcnQgd2lkdGggZm9yIGl0ZW1zLlxuICogWzMyXSBIaWRlIHRoZSBpbml0aWFsIG1hcmtlciBmb3IgYWxsIGJyb3dzZXJzLlxuICogWzMzXSBEaXNwbGF5IHRoZSBgPHN1bW1hcnk+YCBlbGVtZW50IG9mIHRoZSBwYXJlbnQgYDxkZXRhaWxzPmAgZWxlbWVudCBvbmx5IG9uIHNtYWxsIHNjcmVlbnMuXG4gKiBbMzRdIFJldHJpZXZlIHRoZSBicmVha3BvaW50IGN1c3RvbSBwcm9wZXJ0eSB0byB1c2Ugd2l0aGluIHRoZSBjb21wb25lbnQgc2NyaXB0LlxuICogWzM1XSBSZW1vdmUgYW55IGluaGVyaXRlZCBtYXJnaW4sIGUuZy4gZnJvbSBgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19saXN0YC5cbiAqIFszNl0gQWRkIGJvdHRvbSBzcGFjaW5nIHRvIGFueSBpdGVtIHdoZW4gaW4gc3RhY2tlZCBtb2RlIG9uIHNtYWxsZXIgc2NyZWVucy5cbiAqIFszN10gUm90YXRlIHRoZSBpY29uIHRvIGluZGljYXRlIHRoZSBvcGVuIGA8ZGV0YWlscz5gLlxuICogWzM4XSBFbnN1cmUgc3BhY2luZyBvbiBzbWFsbGVyIHNjcmVlbnMuXG4gKiBbMzldIFJlbW92ZSByZXNlcnZlZCBzcGFjZSBmb3IgbGFiZWwgdG8gcmVkdWNlIHdoaXRlc3BhY2UgaW4gc3RhY2tlZCBtb2RlLlxuICogWzQwXSBPdmVycmlkZSBoaW50IGNvbG9ycyBmb3Igc2VsZWN0ZWQgdGlsZXMuXG4gKiBbNDFdIEFjdGl2YXRlIHRoZSBlcXVhbCBoZWlnaHQgZnVuY3Rpb25hbGl0eSBvbmx5IGZvciBsYXJnZXIgdmlld3BvcnRzLlxuICogWzQyXSBBbGlnbiB0aGUgcHJpY2luZyBjb21wb25lbnQgYWx3YXlzIGZyb20gdGhlIGJvdHRvbS11cC5cbiAqIFs0M10gQXBwbHkgY2FsY3VsYXRlZCB0aXRsZSBoZWlnaHQuXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1jb21wb3VuZC1zZWxlY3RvcnMsIHNlbGVjdG9yLW1heC1jb21iaW5hdG9ycywgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4uYy1jb21wYXJlLWFuZC1zZWxlY3QtY29udGFpbmVyIHtcblxuICAgIC5vLXBhZ2Utd3JhcCAmIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcIm1hcmdpbi1sZWZ0XCIsIHJlc3BvbnNpdmUtcHJvcGVydHktbW9kaWZ5KCRjb21wYXJlLWFuZC1zZWxlY3Qtb2Zmc2V0LWF0LWJyZWFrcG9pbnQsICRmYWN0b3I6IC0xKSk7IC8qIFsyOV0gKi9cbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcIm1hcmdpbi1yaWdodFwiLCByZXNwb25zaXZlLXByb3BlcnR5LW1vZGlmeSgkY29tcGFyZS1hbmQtc2VsZWN0LW9mZnNldC1hdC1icmVha3BvaW50LCAkZmFjdG9yOiAtMSkpOyAvKiBbMjldICovXG4gICAgfVxuXG4gICAgLmZsaWNraXR5LXZpZXdwb3J0IHtcbiAgICAgICAgb3JkZXI6IGlmKCRjb21wYXJlLWFuZC1zZWxlY3Qtc2xpZGVyLW5hdmlnYXRpb24tcG9zaXRpb24gPT0gXCJ0b3BcIiwgMTAsIDApOyAvKiBbOF0gKi9cbiAgICB9XG5cbiAgICAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogWzExXSAqL1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgLyogWzEzXSAqL1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7IC8qIFsxMV0gKi9cblxuICAgICAgICAmOjpiZWZvcmUgeyAvKiBbMTVdICovXG4gICAgICAgICAgICBmb250LXNpemU6ICRjb21wYXJlLWFuZC1zZWxlY3Qtc2xpZGVyLWFycm93LWljb24tc2l6ZTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8qIFsxMF0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgICYucHJldmlvdXMge1xuICAgICAgICAgICAgb3JkZXI6IDE7IC8qIFs4XSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJi5uZXh0IHtcbiAgICAgICAgICAgIG9yZGVyOiAzOyAvKiBbOF0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmZsaWNraXR5LXBhZ2UtZG90cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IC8qIFsxM10gKi9cbiAgICAgICAgb3JkZXI6IDI7IC8qIFs4XSAqL1xuICAgIH1cblxufVxuXG4gICAgLmMtY29tcGFyZS1hbmQtc2VsZWN0LWNvbnRhaW5lcl9faW5uZXIge1xuICAgICAgICAtLWJyb24tY29tcGFyZS1hbmQtc2VsZWN0LW1pbi1oZWlnaHQ6IGluaXRpYWw7XG5cbiAgICAgICAgJi5mbGlja2l0eS1yZXNpemUge1xuICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcIm1hcmdpbi1sZWZ0XCIsIHJlc3BvbnNpdmUtcHJvcGVydHktbW9kaWZ5KCRjb21wYXJlLWFuZC1zZWxlY3QtaXRlbS1zcGFjaW5nLCAkZmFjdG9yOiAtMC41KSk7IC8qIFsyMV0gKi9cbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXCJtYXJnaW4tcmlnaHRcIiwgcmVzcG9uc2l2ZS1wcm9wZXJ0eS1tb2RpZnkoJGNvbXBhcmUtYW5kLXNlbGVjdC1pdGVtLXNwYWNpbmcsICRmYWN0b3I6IC0wLjUpKTsgLyogWzIxXSAqL1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skY29tcGFyZS1hbmQtc2VsZWN0LWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OyAvKiBbMTRdICovXG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IC8qIFsxNF0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19pdGVtLFxuICAgICAgICAgICAgLmMtY29tcGFyZS1hbmQtc2VsZWN0IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7IC8qIFsyMl0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1jb21wYXJlLWFuZC1zZWxlY3QtLXN0YWNrZWQge1xuICAgICAgICAtLWJyb24tY29tcGFyZS1zZWxlY3QtYWNjb3JkaW9uLWJyZWFrcG9pbnQ6ICN7JGNvbXBhcmUtYW5kLXNlbGVjdC1zdGFja2VkLWJyZWFrcG9pbnQtdmFsdWV9OyAvKiBbMzRdICovXG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJmbGlja2l0eVwiOyAvKiBbMzBdICovXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBbMzBdICovXG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPCN7JGNvbXBhcmUtYW5kLXNlbGVjdC1zdGFja2VkLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiOyAvKiBbMzBdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWNvbXBhcmUtYW5kLXNlbGVjdF9faXRlbSB7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRjb21wYXJlLWFuZC1zZWxlY3Qtc3RhY2tlZC1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7IC8qIFszMV0gKi9cbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkY29tcGFyZS1hbmQtc2VsZWN0LXN0YWNrZWQtaXRlbS1zcGFjaW5nOyAvKiBbMzZdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fbGFiZWwge1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skY29tcGFyZS1hbmQtc2VsZWN0LXN0YWNrZWQtYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgICAgICY6ZW1wdHkge1xuXG4gICAgICAgICAgICAgICAgICAgICsgLmMtY29tcGFyZS1hbmQtc2VsZWN0X190aXRsZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwOyAvKiBbMzldICovXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6LW1vei1vbmx5LXdoaXRlc3BhY2Uge1xuXG4gICAgICAgICAgICAgICAgICAgICsgLmMtY29tcGFyZS1hbmQtc2VsZWN0X190aXRsZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwOyAvKiBbMzldICovXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fZGV0YWlscyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJGNvbXBhcmUtYW5kLXNlbGVjdC1wYWRkaW5nO1xuICAgICAgICBtYXJnaW4tbGVmdDogJGNvbXBhcmUtYW5kLXNlbGVjdC1wYWRkaW5nO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPCN7JGNvbXBhcmUtYW5kLXNlbGVjdC1zdGFja2VkLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRjb21wYXJlLWFuZC1zZWxlY3Qtc3RhY2tlZC12ZXJ0aWNhbC1zcGFjaW5nOyAvKiBbMzhdICovXG4gICAgICAgIH1cblxuICAgICAgICAmW29wZW5dIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IC8qIFszOF0gKi9cblxuICAgICAgICAgICAgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19zdW1tYXJ5IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkY29tcGFyZS1hbmQtc2VsZWN0LXN0YWNrZWQtdmVydGljYWwtc3BhY2luZztcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPiN7JGNvbXBhcmUtYW5kLXNlbGVjdC1zdGFja2VkLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgLyogWzMzXSAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYy1idG5fX2ljb24ge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IC8qIFszN10gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiAqIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDsgLyogWzM1XSAqL1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDsgLyogWzM1XSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fc3VtbWFyeSB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7IC8qIFszMl0gKi9cbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgLyogWzMyXSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGNvbXBhcmUtYW5kLXNlbGVjdC1zdGFja2VkLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbXBhcmUtYW5kLXNlbGVjdC1zdGFja2VkLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWNvbXBhcmUtYW5kLXNlbGVjdF9faXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXCJ3aWR0aFwiLCAkY29tcGFyZS1hbmQtc2VsZWN0LXdpZHRoKTtcbiAgICAgICAgcGFkZGluZy10b3A6ICRjb21wYXJlLWFuZC1zZWxlY3Qtb2Zmc2V0LXRvcDsgLyogWzEyXSAqL1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGNvbXBhcmUtYW5kLXNlbGVjdC1vZmZzZXQtYm90dG9tOyAvKiBbMTJdICovXG4gICAgfVxuXG4gICAgICAgIC5jLWNvbXBhcmUtYW5kLXNlbGVjdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXCJtYXJnaW4tbGVmdFwiLCByZXNwb25zaXZlLXByb3BlcnR5LW1vZGlmeSgkY29tcGFyZS1hbmQtc2VsZWN0LWl0ZW0tc3BhY2luZywgJGZhY3RvcjogMC41KSk7IC8qIFsyMV0gKi9cbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXCJtYXJnaW4tcmlnaHRcIiwgcmVzcG9uc2l2ZS1wcm9wZXJ0eS1tb2RpZnkoJGNvbXBhcmUtYW5kLXNlbGVjdC1pdGVtLXNwYWNpbmcsICRmYWN0b3I6IDAuNSkpOyAvKiBbMjFdICovXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIFsxOV0gKi9cbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRjb21wYXJlLWFuZC1zZWxlY3QtcGFkZGluZy10b3A7XG4gICAgICAgICAgICBib3JkZXI6ICRjb21wYXJlLWFuZC1zZWxlY3QtYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGNvbXBhcmUtYW5kLXNlbGVjdC1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaWYoJGNvbXBhcmUtYW5kLXNlbGVjdC1iYWNrZ3JvdW5kLWNvbG9yLCAkY29tcGFyZS1hbmQtc2VsZWN0LWJhY2tncm91bmQtY29sb3IsIG51bGwpO1xuICAgICAgICAgICAgY29sb3I6ICRjb21wYXJlLWFuZC1zZWxlY3QtY29sb3I7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpZigkY29tcGFyZS1hbmQtc2VsZWN0LWJveC1zaGFkb3csICRjb21wYXJlLWFuZC1zZWxlY3QtYm94LXNoYWRvdywgbnVsbCk7IC8qIFsxNl0gKi9cblxuICAgICAgICAgICAgQGluY2x1ZGUgdmFyeSgkbG9vcDogJGNvbXBhcmUtYW5kLXNlbGVjdC10aGVtZXMpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXJ5LWdldChcIiRjb21wYXJlLWFuZC1zZWxlY3QtYmFja2dyb3VuZC1jb2xvclwiKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19oaWRkZW4taW5wdXQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICAgICAuYy1jb21wYXJlLWFuZC1zZWxlY3RfX2xhYmVsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAkY29tcGFyZS1hbmQtc2VsZWN0LWxhYmVsLXRvcDtcbiAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBpZigkY29tcGFyZS1hbmQtc2VsZWN0LWxhYmVsLWhvcml6b250YWwtY2VudGVyaW5nLCBjZW50ZXIsIG51bGwpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkY29tcGFyZS1hbmQtc2VsZWN0LWxhYmVsLXZlcnRpY2FsLXBhZGRpbmc7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGNvbXBhcmUtYW5kLXNlbGVjdC1sYWJlbC1ob3Jpem9udGFsLXBhZGRpbmc7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRjb21wYXJlLWFuZC1zZWxlY3QtbGFiZWwtdmVydGljYWwtcGFkZGluZztcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRjb21wYXJlLWFuZC1zZWxlY3QtbGFiZWwtaG9yaXpvbnRhbC1wYWRkaW5nO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkY29tcGFyZS1hbmQtc2VsZWN0LWxhYmVsLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiAkY29tcGFyZS1hbmQtc2VsZWN0LWxhYmVsLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAkY29tcGFyZS1hbmQtc2VsZWN0LWxhYmVsLWxldHRlci1zcGFjaW5nO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb21wYXJlLWFuZC1zZWxlY3QtbGFiZWwtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbXBhcmUtYW5kLXNlbGVjdC1sYWJlbC1jb2xvcjtcbiAgICAgICAgICAgICAgICBAaWYgKCRjb21wYXJlLWFuZC1zZWxlY3QtbGFiZWwtaG9yaXpvbnRhbC1jZW50ZXJpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkY29tcGFyZS1hbmQtc2VsZWN0LXBhZGRpbmc7IC8qIFs3XSAqL1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogJGNvbXBhcmUtYW5kLXNlbGVjdC1wYWRkaW5nOyAvKiBbN10gKi9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmICgkY29tcGFyZS1hbmQtc2VsZWN0LWxhYmVsLWZvbnQtc2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkY29tcGFyZS1hbmQtc2VsZWN0LWxhYmVsLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICRjb21wYXJlLWFuZC1zZWxlY3QtdGhlbWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcnktZ2V0KFwiJGNvbXBhcmUtYW5kLXNlbGVjdC1sYWJlbC1iYWNrZ3JvdW5kLWNvbG9yXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyeS1nZXQoXCIkY29tcGFyZS1hbmQtc2VsZWN0LWxhYmVsLWNvbG9yXCIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBbMjRdICovXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjotbW96LW9ubHktd2hpdGVzcGFjZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IC8qIFsyNV0gKi9cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmMtY29tcGFyZS1hbmQtc2VsZWN0X190aXRsZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWFsaWdubWVudCgkY29tcGFyZS1hbmQtc2VsZWN0LXRpdGxlLWFsaWduKTtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGlmKCRjb21wYXJlLWFuZC1zZWxlY3QtdGl0bGUtaG9yaXpvbnRhbC1jZW50ZXJpbmcsIGNlbnRlciwgbnVsbCk7IC8qIFszXSAqL1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjb21wYXJlLWFuZC1zZWxlY3QtcGFkZGluZztcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRjb21wYXJlLWFuZC1zZWxlY3QtcGFkZGluZztcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiAkY29tcGFyZS1hbmQtc2VsZWN0LXRpdGxlLWFsaWduO1xuXG4gICAgICAgICAgICAgICAgQGlmICgkY29tcGFyZS1hbmQtc2VsZWN0LXRpdGxlLWRpdmlkZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGNvbXBhcmUtYW5kLXNlbGVjdC10aXRsZS12ZXJ0aWNhbC1zcGFjaW5nO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGNvbXBhcmUtYW5kLXNlbGVjdC10aXRsZS12ZXJ0aWNhbC1zcGFjaW5nO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkY29tcGFyZS1hbmQtc2VsZWN0LXRpdGxlLWRpdmlkZXI7XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRjb21wYXJlLWFuZC1zZWxlY3QtdGl0bGUtdmVydGljYWwtc3BhY2luZztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIj4jeyRjb21wYXJlLWFuZC1zZWxlY3QtZXF1YWwtaGVpZ2h0LWJyZWFrcG9pbnR9XCIpIHsgLyogWzQxXSAqL1xuICAgICAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiB2YXIoI3stLWJyb24tY29tcGFyZS1hbmQtc2VsZWN0LW1pbi1oZWlnaHR9KTsgIC8qIFs0M10gKi9cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuYy1jb21wYXJlLWFuZC1zZWxlY3RfX2xhYmVsICsgJiB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6ICgkY29tcGFyZS1hbmQtc2VsZWN0LWxhYmVsLXRvcCArICRjb21wYXJlLWFuZC1zZWxlY3QtbGFiZWwtb2Zmc2V0KTsgLyogWzI2XSAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYy1jb21wYXJlLWFuZC1zZWxlY3RfX2ljb24ge1xuICAgICAgICAgICAgICAgIEBpZiAoJGNvbXBhcmUtYW5kLXNlbGVjdC1pY29uLWVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkY29tcGFyZS1hbmQtc2VsZWN0LWljb24tc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogMVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkY29tcGFyZS1hbmQtc2VsZWN0LWljb24tc3BhY2luZztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb21wYXJlLWFuZC1zZWxlY3QtaWNvbi1jb2xvcjtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmMtY29tcGFyZS1hbmQtc2VsZWN0X190aXRsZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkY29tcGFyZS1hbmQtc2VsZWN0LXRpdGxlLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyAvKiBbMjddICovXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzRdICovXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRjb21wYXJlLWFuZC1zZWxlY3QtdGl0bGUtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRjb21wYXJlLWFuZC1zZWxlY3QtdGl0bGUtdGV4dC10cmFuc2Zvcm07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb21wYXJlLWFuZC1zZWxlY3QtdGl0bGUtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fdGl0bGUtaW5kaWNhdG9yLXRleHQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCRjb21wYXJlLWFuZC1zZWxlY3QtdGl0bGUtaW5kaWNhdG9yLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRjb21wYXJlLWFuZC1zZWxlY3QtdGl0bGUtaW5kaWNhdG9yLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiAkY29tcGFyZS1hbmQtc2VsZWN0LXRpdGxlLWluZGljYXRvci10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbXBhcmUtYW5kLXNlbGVjdC10aXRsZS1pbmRpY2F0b3ItY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCRjb21wYXJlLWFuZC1zZWxlY3QtZGVzY3JpcHRpb24tZm9udC1zaXplKTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRjb21wYXJlLWFuZC1zZWxlY3QtcGFkZGluZzsgLyogWzddICovXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGNvbXBhcmUtYW5kLXNlbGVjdC1kZXNjcmlwdGlvbi12ZXJ0aWNhbC1zcGFjaW5nO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkY29tcGFyZS1hbmQtc2VsZWN0LXBhZGRpbmc7IC8qIFs3XSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYy1jb21wYXJlLWFuZC1zZWxlY3RfX3ByaWNpbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7ICAvKiBbNDJdICovXG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgIC8qIFs0Ml0gKi9cbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyAgLyogWzQyXSAqL1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHZhcigjey0tYnJvbi1jb21wYXJlLWFuZC1zZWxlY3QtbWluLWhlaWdodH0pOyAgLyogWzQzXSAqL1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGNvbXBhcmUtYW5kLXNlbGVjdC1wYWRkaW5nOyAvKiBbN10gKi9cbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogJGNvbXBhcmUtYW5kLXNlbGVjdC1wYWRkaW5nOyAvKiBbN10gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19idXR0b24ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogaWYoJGNvbXBhcmUtYW5kLXNlbGVjdC1idXR0b24tZnVsbC13aWR0aCwgJGNvbXBhcmUtYW5kLXNlbGVjdC1wYWRkaW5nLCBhdXRvKTsgLyogWzVdICovXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGlmKCRjb21wYXJlLWFuZC1zZWxlY3QtYnV0dG9uLWZ1bGwtd2lkdGgsICRjb21wYXJlLWFuZC1zZWxlY3QtcGFkZGluZywgYXV0byk7IC8qIFs1XSAqL1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRjb21wYXJlLWFuZC1zZWxlY3QtcGFkZGluZy1ib3R0b207XG5cbiAgICAgICAgICAgICAgICAuYy1jb21wYXJlLWFuZC1zZWxlY3QgPiAmIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGNvbXBhcmUtYW5kLXNlbGVjdC1idXR0b24tdmVydGljYWwtc3BhY2luZztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19sZWdhbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoJGNvbXBhcmUtYW5kLXNlbGVjdC1sZWdhbC1mb250LXNpemUpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGNvbXBhcmUtYW5kLXNlbGVjdC1wYWRkaW5nOyAvKiBbN10gKi9cbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogJGNvbXBhcmUtYW5kLXNlbGVjdC1wYWRkaW5nOyAvKiBbN10gKi9cbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkY29tcGFyZS1hbmQtc2VsZWN0LXBhZGRpbmc7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRjb21wYXJlLWFuZC1zZWxlY3QtbGVnYWwtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb21wYXJlLWFuZC1zZWxlY3QtbGVnYWwtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkY29tcGFyZS1hbmQtc2VsZWN0LXBhZGRpbmc7IC8qIFs3XSAqL1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRjb21wYXJlLWFuZC1zZWxlY3QtbGlzdC12ZXJ0aWNhbC1zcGFjaW5nO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkY29tcGFyZS1hbmQtc2VsZWN0LXBhZGRpbmc7IC8qIFs3XSAqL1xuXG4gICAgICAgICAgICAgICAgJi5jLWljb24tbGlzdCBsaTpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzZdICovXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fY2hlY2tib3gge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGNvbXBhcmUtYW5kLXNlbGVjdC1wYWRkaW5nOyAvKiBbN10gKi9cbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkY29tcGFyZS1hbmQtc2VsZWN0LXBhZGRpbmc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRjb21wYXJlLWFuZC1zZWxlY3QtcGFkZGluZzsgLyogWzddICovXG5cbiAgICAgICAgICAgICAgICAuYy1jaGVja2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jLWNoZWNrYm94X19sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29tcGFyZS1hbmQtc2VsZWN0LWNoZWNrYm94LWxhYmVsLWNvbG9yO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFRoZSBjaGVja2JveCBvdXRlciBib3guXG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRjb21wYXJlLWFuZC1zZWxlY3QtY2hlY2tib3gtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbXBhcmUtYW5kLXNlbGVjdC1jaGVja2JveC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGNoZWNrIG1hcmsgaWNvbi5cbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb21wYXJlLWFuZC1zZWxlY3QtY2hlY2tib3gtaWNvbi1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19yYWRpbyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IC8qIFsyMF0gKi9cbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogJGNvbXBhcmUtYW5kLXNlbGVjdC1wYWRkaW5nO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjb21wYXJlLWFuZC1zZWxlY3QtcGFkZGluZzsgLyogWzddICovXG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRjb21wYXJlLWFuZC1zZWxlY3QtcGFkZGluZztcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRjb21wYXJlLWFuZC1zZWxlY3QtcGFkZGluZzsgLyogWzddICovXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbXBhcmUtYW5kLXNlbGVjdC1yYWRpby1sYWJlbC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuXG4gICAgICAgICAgICAgICAgLmMtcmFkaW9fX2lucHV0OmNoZWNrZWQgKyAuYy1yYWRpb19fbGFiZWwtY29udGFpbmVyICYge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29tcGFyZS1hbmQtc2VsZWN0LXJhZGlvLWxhYmVsLWJhY2tncm91bmQtY29sb3ItY2hlY2tlZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fcmFkaW8tbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRjb21wYXJlLWFuZC1zZWxlY3QtcmFkaW8tZm9udC1zaXplKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkY29tcGFyZS1hbmQtc2VsZWN0LXJhZGlvLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRjb21wYXJlLWFuZC1zZWxlY3QtcmFkaW8tZm9udC13ZWlnaHQ7XG5cbiAgICAgICAgICAgICAgICAgICAgJiwgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbXBhcmUtYW5kLXNlbGVjdC1yYWRpby1sYWJlbC1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5jLXJhZGlvX19pbnB1dDpjaGVja2VkICsgLmMtcmFkaW9fX2xhYmVsLWNvbnRhaW5lciAmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICYsICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29tcGFyZS1hbmQtc2VsZWN0LXJhZGlvLWxhYmVsLWNvbG9yLWNoZWNrZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBUaGUgY2lyY2xlIHJhZGlvLWJ1dHRvbiBib3guXG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRjb21wYXJlLWFuZC1zZWxlY3QtcmFkaW8tYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbXBhcmUtYW5kLXNlbGVjdC1yYWRpby1iYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAuYy1yYWRpb19faW5wdXQ6Y2hlY2tlZCArIC5jLXJhZGlvX19sYWJlbC1jb250YWluZXIgJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29tcGFyZS1hbmQtc2VsZWN0LXJhZGlvLWJvcmRlci1jb2xvci1jaGVja2VkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb21wYXJlLWFuZC1zZWxlY3QtcmFkaW8tYmFja2dyb3VuZC1jb2xvci1jaGVja2VkO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGRvdCBpbnNpZGUgdGhlIHJhZGlvLWJ1dHRvbi5cbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbXBhcmUtYW5kLXNlbGVjdC1yYWRpby1kb3QtYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLmMtcmFkaW9fX2lucHV0OmhvdmVyICsgLmMtcmFkaW9fX2xhYmVsLWNvbnRhaW5lciAmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29tcGFyZS1hbmQtc2VsZWN0LXJhZGlvLWRvdC1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAuYy1yYWRpb19faW5wdXQ6Y2hlY2tlZCArIC5jLXJhZGlvX19sYWJlbC1jb250YWluZXIgJixcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jLXJhZGlvX19pbnB1dDpjaGVja2VkOmhvdmVyICsgLmMtcmFkaW9fX2xhYmVsLWNvbnRhaW5lciAmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29tcGFyZS1hbmQtc2VsZWN0LXJhZGlvLWRvdC1iYWNrZ3JvdW5kLWNvbG9yLWNoZWNrZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fcmFkaW8tZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkY29tcGFyZS1hbmQtc2VsZWN0LXJhZGlvLWRlc2NyaXB0aW9uLWZvbnQtc2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoJGNvbXBhcmUtYW5kLXNlbGVjdC1yYWRpby1kZXNjcmlwdGlvbi1mb250LXNpemUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkY29tcGFyZS1hbmQtc2VsZWN0LXJhZGlvLWRlc2NyaXB0aW9uLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbXBhcmUtYW5kLXNlbGVjdC1yYWRpby1kZXNjcmlwdGlvbi1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLWNvbXBhcmUtYW5kLXNlbGVjdC0tc2VsZWN0ZWQsXG4gICAgICAgICAgICAuYy1jb21wYXJlLWFuZC1zZWxlY3RfX2hpZGRlbi1pbnB1dDpjaGVja2VkICsgLmMtY29tcGFyZS1hbmQtc2VsZWN0IHtcbiAgICAgICAgICAgICAgICAtLWhpbnQtdGV4dC1jb2xvcjogJGNvbXBhcmUtYW5kLXNlbGVjdC1jb2xvci1jaGVja2VkOyAvKiBbNDBdICovXG4gICAgICAgICAgICAgICAgLS1oaW50LXRleHQtY29sb3ItaG92ZXI6ICRjb21wYXJlLWFuZC1zZWxlY3QtY29sb3ItY2hlY2tlZDsgLyogWzQwXSAqL1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNvbXBhcmUtYW5kLXNlbGVjdC1ib3JkZXItY29sb3ItY2hlY2tlZDtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpZigkY29tcGFyZS1hbmQtc2VsZWN0LWJveC1zaGFkb3ctY2hlY2tlZCwgJGNvbXBhcmUtYW5kLXNlbGVjdC1ib3gtc2hhZG93LWNoZWNrZWQsIG51bGwpOyAgLyogWzE2XSAqL1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGlmKCRjb21wYXJlLWFuZC1zZWxlY3QtYmFja2dyb3VuZC1jb2xvci1jaGVja2VkLCAkY29tcGFyZS1hbmQtc2VsZWN0LWJhY2tncm91bmQtY29sb3ItY2hlY2tlZCwgbnVsbCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IGlmKCRjb21wYXJlLWFuZC1zZWxlY3QtY29sb3ItY2hlY2tlZCwgJGNvbXBhcmUtYW5kLXNlbGVjdC1jb2xvci1jaGVja2VkLCBudWxsKTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICRjb21wYXJlLWFuZC1zZWxlY3QtdGhlbWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcnktZ2V0KFwiJGNvbXBhcmUtYW5kLXNlbGVjdC1iYWNrZ3JvdW5kLWNvbG9yLWNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb21wYXJlLWFuZC1zZWxlY3QtbGFiZWwtYmFja2dyb3VuZC1jb2xvci1jaGVja2VkO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbXBhcmUtYW5kLXNlbGVjdC1sYWJlbC1jb2xvci1jaGVja2VkO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICRjb21wYXJlLWFuZC1zZWxlY3QtdGhlbWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXJ5LWdldChcIiRjb21wYXJlLWFuZC1zZWxlY3QtbGFiZWwtYmFja2dyb3VuZC1jb2xvci1jaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcnktZ2V0KFwiJGNvbXBhcmUtYW5kLXNlbGVjdC1sYWJlbC1jb2xvci1jaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuYy1jb21wYXJlLWFuZC1zZWxlY3RfX3RpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJGNvbXBhcmUtYW5kLXNlbGVjdC10aXRsZS1kaXZpZGVyLWNoZWNrZWQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmMtY29tcGFyZS1hbmQtc2VsZWN0X190aXRsZS10ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGlmKCRjb21wYXJlLWFuZC1zZWxlY3QtY29sb3ItY2hlY2tlZCwgJGNvbXBhcmUtYW5kLXNlbGVjdC1jb2xvci1jaGVja2VkLCBudWxsKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuYy1jb21wYXJlLWFuZC1zZWxlY3RfX3RpdGxlLWluZGljYXRvci10ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGlmKCRjb21wYXJlLWFuZC1zZWxlY3QtY29sb3ItY2hlY2tlZCwgJGNvbXBhcmUtYW5kLXNlbGVjdC1jb2xvci1pbmRpY2F0b3ItY2hlY2tlZCwgbnVsbCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGlmKCRjb21wYXJlLWFuZC1zZWxlY3QtY29sb3ItY2hlY2tlZCwgJGNvbXBhcmUtYW5kLXNlbGVjdC1jb2xvci1jaGVja2VkLCBudWxsKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuYy1jaGVja2JveF9fbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbXBhcmUtYW5kLXNlbGVjdC1jaGVja2JveC1sYWJlbC1jb2xvci1jaGVja2VkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbXBhcmUtYW5kLXNlbGVjdC1saW5rLWNvbG9yLWNoZWNrZWQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19zdW1tYXJ5IHtcblxuICAgICAgICAgICAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb21wYXJlLWFuZC1zZWxlY3Qtc3RhY2tlZC1jb2xvci1jaGVja2VkO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29tcGFyZS1hbmQtc2VsZWN0LXN0YWNrZWQtY29sb3ItY2hlY2tlZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19mb290ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOyAvKiBbMjJdICovXG4gICAgICAgIH1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuXG4uYy1jb21wYXJlLWFuZC1zZWxlY3QtLXNlbGVjdGVkLFxuLmMtY29tcGFyZS1hbmQtc2VsZWN0X19oaWRkZW4taW5wdXQ6Y2hlY2tlZCArIC5jLWNvbXBhcmUtYW5kLXNlbGVjdCxcbi5jLWNvbXBhcmUtYW5kLXNlbGVjdF9fcmFkaW8ge1xuXG4gICAgLmMtaWNvbiB7XG4gICAgICAgIGNvbG9yOiBpZigkY29tcGFyZS1hbmQtc2VsZWN0LWljb24tY29sb3ItY2hlY2tlZCwgJGNvbXBhcmUtYW5kLXNlbGVjdC1pY29uLWNvbG9yLWNoZWNrZWQsIG51bGwpOyAvKiBbMjhdICovXG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQ09NUEFSRS1BTkQtU0VMRUNUXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNrb2RhLWNvbXBhcmUtYW5kLXNlbGVjdC1ib3JkZXItaG92ZXI6ICAgICAgICAgICAgICAgICAgICAgICAgJENBUkQtUEFUVEVSTi1CT1JERVItQ09MT1ItSE9WRVIgIWRlZmF1bHQ7XG5cbiRza29kYS1jb21wYXJlLWFuZC1zZWxlY3QtaW5kaWNhdG9yLWJhY2tncm91bmQtc2VsZWN0b3I6ICAgICAgIFwiOjpiZWZvcmVcIiAhZGVmYXVsdDtcbiRza29kYS1jb21wYXJlLWFuZC1zZWxlY3QtaW5kaWNhdG9yLWZvcmVncm91bmQtc2VsZWN0b3I6ICAgICAgIFwiOjphZnRlclwiICFkZWZhdWx0O1xuXG4kc2tvZGEtY29tcGFyZS1hbmQtc2VsZWN0LWluZGljYXRvci1vZmZzZXQ6ICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcblxuJHNrb2RhLWNvbXBhcmUtYW5kLXNlbGVjdC1pbmRpY2F0b3ItYmFja2dyb3VuZC1zaXplOiAgICAgICAgICAgJENBUkQtUEFUVEVSTi1TRUxFQ1QtSU5ESUNBVE9SLUJBQ0tHUk9VTkQtU0laRSAhZGVmYXVsdDtcbiRza29kYS1jb21wYXJlLWFuZC1zZWxlY3QtaW5kaWNhdG9yLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICRDQVJELVBBVFRFUk4tU0VMRUNULUlORElDQVRPUi1CQUNLR1JPVU5ELUNPTE9SICFkZWZhdWx0O1xuJHNrb2RhLWNvbXBhcmUtYW5kLXNlbGVjdC1pbmRpY2F0b3ItYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogICAgJENBUkQtUEFUVEVSTi1TRUxFQ1QtSU5ESUNBVE9SLUJBQ0tHUk9VTkQtQ09MT1ItSE9WRVIgIWRlZmF1bHQ7XG4kc2tvZGEtY29tcGFyZS1hbmQtc2VsZWN0LWluZGljYXRvci1iYWNrZ3JvdW5kLWNvbG9yLXNlbGVjdGVkOiAkQ0FSRC1QQVRURVJOLVNFTEVDVC1JTkRJQ0FUT1ItQkFDS0dST1VORC1DT0xPUi1TRUxFQ1RFRCAhZGVmYXVsdDtcblxuJHNrb2RhLWNvbXBhcmUtYW5kLXNlbGVjdC1pbmRpY2F0b3ItaWNvbjogICAgICAgICAgICAgICAgICAgICAgZ2V0LWljb24oJENBUkQtUEFUVEVSTi1TRUxFQ1QtSU5ESUNBVE9SLUlDT04pICFkZWZhdWx0O1xuJHNrb2RhLWNvbXBhcmUtYW5kLXNlbGVjdC1pbmRpY2F0b3ItaWNvbi1zaXplOiAgICAgICAgICAgICAgICAgaWNvbi1zaXplKCRDQVJELVBBVFRFUk4tU0VMRUNULUlORElDQVRPUi1JQ09OLVNJWkUpICFkZWZhdWx0O1xuJHNrb2RhLWNvbXBhcmUtYW5kLXNlbGVjdC1pbmRpY2F0b3ItaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgJENBUkQtUEFUVEVSTi1TRUxFQ1QtSU5ESUNBVE9SLUlDT04tQ09MT1IgIWRlZmF1bHQ7XG5cbiRza29kYS1jb21wYXJlLWFuZC1zZWxlY3QtaW5kaWNhdG9yLXNhZmUtc3BhY2U6ICAgICAgICAgICAgICAgICRza29kYS1jb21wYXJlLWFuZC1zZWxlY3QtaW5kaWNhdG9yLWljb24tc2l6ZSAhZGVmYXVsdDtcblxuXG4vKipcbiAqIFsxXSBFbnN1cmUgdGlsZSBpY29uIGZvcmVncm91bmQgYW5kIGJhY2tncm91bmQgdXNlIGNvbW1vbiBwb3NpdGlvbi5cbiAqIFsyXSBFbnN1cmUgdGhhdCBpY29uIGlzIGNlbnRlcmVkLlxuICogWzNdIENyZWF0ZSBzYWZlLXNwYWNlIG9ubHkgZm9yIGVsZW1lbnRzIHRoYXQgYXJlIG5leHQgdG8gaW5kaWNhdG9yLlxuICogICAgIFRoaXMgY2FuIGJlIGFuIGluZGljYXRvciB0aXRsZSwgbGFiZWwgb3IgdGl0bGUuXG4gKiBbNF0gUHJldmVudCBjb2xsaXNpb24gd2l0aCB0aXRsZSBlbGVtZW50cyBhbmQgaW5kaWNhdG9yLlxuICogWzVdIEFwcGx5IHNhZmUtc3BhY2UgdG8gYm90aCBzaWRlcyB0byBtYWludGFpbiBob3Jpem9udGFsIGFsaWdubWVudC5cbiAqIFs2XSBDaGFuZ2UgdmlzdWFscyB3aGVuIHRvZ2dsZSBpdGVtcyAoYnV0dG9uLCByYWRpby1idXR0b24pIGlzIGhvdmVyZWRcbiAqICAgICB0byBpbmRpY2F0ZSB0aGF0IHN0YXRlIGNoYW5nZXMuXG4gKiBbN10gXCJVbmRvXCIgc2VsZWN0ZWQgc3RhdGUgYXMgY29tcGFyZSAmIHNlbGVjdCBpdGVtcyBjYW4gYmUgc2VsZWN0ZWQsIGJ1dFxuICogICAgIG5vdCB0b2dnbGVkIG9mZiBkaXJlY3RseSAoY2hlY2tib3ggZnVuY3Rpb25hbGl0eSksIHRoZXkgY2FuIG9ubHkgYmVcbiAqICAgICBzZWxlY3RlZCBleGNsdXNpdmVseSAocmFkaW8tYnV0dG9uIGZ1bmN0aW9uYWxpdHkpLlxuICogWzhdIE1pbWljIHRhZyBieSByZXVzaW5nIGl0J3Mgc2V0dGluZ3MgdmlhIGBAZXh0ZW5kYC5cbiAqIFs5fSBFbnN1cmUgY29ycmVjdCBoZWlnaHQgd2l0aG91dCBoYXZpbmcgdGhlIHNhbWUgbWFya3VwIGFzIHRhZyAoYC5jLXRhZ19fbGFiZWxgKS5cbiAqL1xuLmMtY29tcGFyZS1hbmQtc2VsZWN0IHtcblxuICAgICYjeyRza29kYS1jb21wYXJlLWFuZC1zZWxlY3QtaW5kaWNhdG9yLWJhY2tncm91bmQtc2VsZWN0b3J9LFxuICAgICYjeyRza29kYS1jb21wYXJlLWFuZC1zZWxlY3QtaW5kaWNhdG9yLWZvcmVncm91bmQtc2VsZWN0b3J9IHsgLyogWzFdICovXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oXG4gICAgICAgICAgICAkdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvcixcbiAgICAgICAgKTtcblxuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogJHNrb2RhLWNvbXBhcmUtYW5kLXNlbGVjdC1pbmRpY2F0b3Itb2Zmc2V0O1xuICAgICAgICByaWdodDogJHNrb2RhLWNvbXBhcmUtYW5kLXNlbGVjdC1pbmRpY2F0b3Itb2Zmc2V0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6ICRza29kYS1jb21wYXJlLWFuZC1zZWxlY3QtaW5kaWNhdG9yLWJhY2tncm91bmQtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2tvZGEtY29tcGFyZS1hbmQtc2VsZWN0LWluZGljYXRvci1iYWNrZ3JvdW5kLXNpemU7XG4gICAgfVxuXG4gICAgJiN7JHNrb2RhLWNvbXBhcmUtYW5kLXNlbGVjdC1pbmRpY2F0b3ItYmFja2dyb3VuZC1zZWxlY3Rvcn0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRza29kYS1jb21wYXJlLWFuZC1zZWxlY3QtaW5kaWNhdG9yLWJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuXG4gICAgJiN7JHNrb2RhLWNvbXBhcmUtYW5kLXNlbGVjdC1pbmRpY2F0b3ItZm9yZWdyb3VuZC1zZWxlY3Rvcn0ge1xuICAgICAgICBAaW5jbHVkZSBpY29uLWZvbnQoJGxpbmUtaGVpZ2h0OiBudWxsKTtcbiAgICAgICAgY29udGVudDogJHNrb2RhLWNvbXBhcmUtYW5kLXNlbGVjdC1pbmRpY2F0b3ItaWNvbjtcbiAgICAgICAgZm9udC1zaXplOiAkc2tvZGEtY29tcGFyZS1hbmQtc2VsZWN0LWluZGljYXRvci1pY29uLXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkc2tvZGEtY29tcGFyZS1hbmQtc2VsZWN0LWluZGljYXRvci1iYWNrZ3JvdW5kLXNpemU7IC8qIFsyXSAqL1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IC8qIFsyXSAqL1xuICAgICAgICBjb2xvcjogJHNrb2RhLWNvbXBhcmUtYW5kLXNlbGVjdC1pbmRpY2F0b3ItaWNvbi1jb2xvcjtcbiAgICB9XG5cbiAgICAvLyBTZWxlY3RlZCBzdGF0ZVxuICAgICYuYy1jb21wYXJlLWFuZC1zZWxlY3QtLXNlbGVjdGVkLFxuICAgIC5jLWNvbXBhcmUtYW5kLXNlbGVjdF9faGlkZGVuLWlucHV0OmNoZWNrZWQgKyAmIHtcblxuICAgICAgICAmI3skc2tvZGEtY29tcGFyZS1hbmQtc2VsZWN0LWluZGljYXRvci1iYWNrZ3JvdW5kLXNlbGVjdG9yfSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2tvZGEtY29tcGFyZS1hbmQtc2VsZWN0LWluZGljYXRvci1iYWNrZ3JvdW5kLWNvbG9yLXNlbGVjdGVkO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAvKiBbNl0gKi9cbiAgICAmOmhhcyguYy1jb21wYXJlLWFuZC1zZWxlY3RfX2J1dHRvbjpob3ZlciwgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19yYWRpbzpob3Zlcikge1xuICAgICAgICBib3JkZXItY29sb3I6ICRza29kYS1jb21wYXJlLWFuZC1zZWxlY3QtYm9yZGVyLWhvdmVyO1xuXG4gICAgICAgICYjeyRza29kYS1jb21wYXJlLWFuZC1zZWxlY3QtaW5kaWNhdG9yLWJhY2tncm91bmQtc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRza29kYS1jb21wYXJlLWFuZC1zZWxlY3QtaW5kaWNhdG9yLWJhY2tncm91bmQtY29sb3ItaG92ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4gICAgICAgICYuYy1jb21wYXJlLWFuZC1zZWxlY3QtLXNlbGVjdGVkLFxuICAgICAgICAuYy1jb21wYXJlLWFuZC1zZWxlY3RfX2hpZGRlbi1pbnB1dDpjaGVja2VkICsgJiB7XG5cbiAgICAgICAgICAgICYjeyRza29kYS1jb21wYXJlLWFuZC1zZWxlY3QtaW5kaWNhdG9yLWJhY2tncm91bmQtc2VsZWN0b3J9IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2tvZGEtY29tcGFyZS1hbmQtc2VsZWN0LWluZGljYXRvci1iYWNrZ3JvdW5kLWNvbG9yLXNlbGVjdGVkOyAvKiBbN10gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cblxuICAgIH1cblxufVxuXG4gICAgLmMtY29tcGFyZS1hbmQtc2VsZWN0X190aXRsZSB7XG5cbiAgICAgICAgLyogWzNdICovXG4gICAgICAgID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRza29kYS1jb21wYXJlLWFuZC1zZWxlY3QtaW5kaWNhdG9yLXNhZmUtc3BhY2U7IC8qIFs0XSAqL1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2tvZGEtY29tcGFyZS1hbmQtc2VsZWN0LWluZGljYXRvci1zYWZlLXNwYWNlOyAvKiBbNV0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtY29tcGFyZS1hbmQtc2VsZWN0X19sYWJlbCB7XG4gICAgICAgIEBleHRlbmQgLmMtdGFnOyAvKiBbOF0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY3NzL2F0LWV4dGVuZC1uby1taXNzaW5nLXBsYWNlaG9sZGVyICovXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxOyAvKiBbOV0gKi9cbiAgICB9XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSU5CT1gtRklMVEVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGluYm94LWZpbHRlci1zcGFjaW5nLWJvdHRvbTogICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1MQVJHRSAhZGVmYXVsdDtcbiRpbmJveC1maWx0ZXItYmFja2dyb3VuZC1jb2xvcjogICAgbnVsbCAhZGVmYXVsdDtcbiRpbmJveC1maWx0ZXItcGFkZGluZzogICAgICAgICAgICAgMCAhZGVmYXVsdDtcblxuJGluYm94LWZpbHRlci10aXRsZS1tYXJnaW4tYm90dG9tOiAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbi8vIE1hZ2ljIG51bWJlciB0byBtYWtlIHNvbWUgc3BhY2UgZm9yIHRoZSBiYWRnZSB3aGVuIHRoZSB0aXRsZSB3cmFwcy5cbiRpbmJveC1maWx0ZXItdGl0bGUtbGluZS1oZWlnaHQ6ICAgMS41ICFkZWZhdWx0O1xuJGluYm94LWZpbHRlci10aXRsZS1mb250LXNpemU6ICAgICAkRlMxICFkZWZhdWx0O1xuJGluYm94LWZpbHRlci10aXRsZS1mb250LXdlaWdodDogICAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQgIWRlZmF1bHQ7XG5cbiRpbmJveC1maWx0ZXItYmFkZ2UtbWFyZ2luLWxlZnQ6ICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFhTTUFMTCAhZGVmYXVsdDtcblxuLmMtaW5ib3gtZmlsdGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkaW5ib3gtZmlsdGVyLXNwYWNpbmctYm90dG9tO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbmJveC1maWx0ZXItYmFja2dyb3VuZC1jb2xvcjtcbn1cblxuICAgIC5jLWluYm94LWZpbHRlcl9fdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICRpbmJveC1maWx0ZXItdGl0bGUtZm9udC1zaXplLFxuICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAkaW5ib3gtZmlsdGVyLXRpdGxlLWxpbmUtaGVpZ2h0LFxuICAgICAgICApO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IGlmKCRpbmJveC1maWx0ZXItdGl0bGUtbWFyZ2luLWJvdHRvbSwgJGluYm94LWZpbHRlci10aXRsZS1tYXJnaW4tYm90dG9tLCBudWxsKTtcbiAgICAgICAgcGFkZGluZzogJGluYm94LWZpbHRlci1wYWRkaW5nO1xuICAgICAgICBmb250LXdlaWdodDogJGluYm94LWZpbHRlci10aXRsZS1mb250LXdlaWdodDtcbiAgICB9XG5cbiAgICAuYy1pbmJveC1maWx0ZXJfX2JhZGdlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRpbmJveC1maWx0ZXItYmFkZ2UtbWFyZ2luLWxlZnQ7XG4gICAgfVxuXG4gICAgLmMtaW5ib3gtZmlsdGVyX19ib2R5IHtcbiAgICAgICAgcGFkZGluZzogJGluYm94LWZpbHRlci1wYWRkaW5nO1xuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJTkJPWC1UQUJMRSAoU2V0dGluZ3MpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGluYm94LXRhYmxlLXN1YmhlYWRpbmctcGFkZGluZy12ZXJ0aWNhbDogICAgICBmYWxzZSAhZGVmYXVsdDtcbiRpbmJveC10YWJsZS1zdWJoZWFkaW5nLW1hcmdpbi10b3A6ICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kaW5ib3gtdGFibGUtc3ViaGVhZGluZy1tYXJnaW4tYm90dG9tOiAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiRpbmJveC10YWJsZS1zdWJoZWFkaW5nLWZvbnQtc2l6ZTogICAgICAgICAgICAgJEZTMSAhZGVmYXVsdDtcbiRpbmJveC10YWJsZS1zdWJoZWFkaW5nLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xEICFkZWZhdWx0O1xuJGluYm94LXRhYmxlLXRkLWluZGljYXRvci1kb3Qtb2Zmc2V0LXZlcnRpY2FsOiAwLjNlbSAhZGVmYXVsdDsgLy8gc2FtZSB2YWx1ZSBhcyBFTUlMIGAkc3RhdHVzLW1lc3NhZ2UtaWNvbi1zaGlmdGAgYXMgdGhpcyBpcyB0aGUgc2FtZSBwYXR0ZXJuXG5cbiRpbmJveC10YWJsZS10ci1yZXNwb25zaXZlLXNwYWNpbmctdmVydGljYWw6ICAgMCAhZGVmYXVsdDtcbiRpbmJveC10YWJsZS10ZC1kYXRlLXJlc3BvbnNpdmUtbWFyZ2luLWJvdHRvbTogJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSU5CT1gtVEFCTEVcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kaW5ib3gtdGFibGUtc3ViaGVhZGluZy1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kaW5ib3gtdGFibGUtc3ViaGVhZGluZy1tYXJnaW4tdG9wOiAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtTEFSR0UgIWRlZmF1bHQ7XG4kaW5ib3gtdGFibGUtc3ViaGVhZGluZy1tYXJnaW4tYm90dG9tOiAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kaW5ib3gtdGFibGUtc3ViaGVhZGluZy1mb250LXNpemU6ICAgICAgICAgICAgICAgJEZTMCAhZGVmYXVsdDtcbiRpbmJveC10YWJsZS1zdWJoZWFkaW5nLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG4kaW5ib3gtdGFibGUtc3ViaGVhZGluZy10ZXh0LWFsaWduOiAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRpbmJveC10YWJsZS1zdWJoZWFkaW5nLWJhY2tncm91bmQtY29sb3I6ICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kaW5ib3gtdGFibGUtYnJlYWtwb2ludDogICAgICAgICAgICAgICAgICAgICAgICAgXCJzXCIgIWRlZmF1bHQ7XG5cbiRpbmJveC10YWJsZS1yZXNwb25zaXZlLWJvcmRlci10b3A6ICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kaW5ib3gtdGFibGUtdHItdW5yZWFkLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xEICFkZWZhdWx0O1xuJGluYm94LXRhYmxlLXRyLXJlc3BvbnNpdmUtc3BhY2luZy12ZXJ0aWNhbDogICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuXG4kaW5ib3gtdGFibGUtdGQtbWluLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtTEFSR0UgIWRlZmF1bHQ7XG4kaW5ib3gtdGFibGUtdGQtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgJEZTMCAhZGVmYXVsdDtcblxuLy8gTWFnaWMgbnVtYmVyIGJlY2F1c2UgdGhlIGxlbmd0aCBkZXBlbmRzIG9uIGNvbnRlbnQgYW5kIGZvbnQgc2l6ZSBvZiB0aGUgY2VsbHNcbiRpbmJveC10YWJsZS10ZC1kYXRlLW1pbi13aWR0aDogICAgICAgICAgICAgICAgICA4ZW0gIWRlZmF1bHQ7XG4kaW5ib3gtdGFibGUtdGQtZGF0ZS1yZXNwb25zaXZlLW1hcmdpbi1ib3R0b206ICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG5cbiRpbmJveC10YWJsZS10ZC1leHRyYS1pbmZvLWZvbnQtc2l6ZTogICAgICAgICAgICAkRlMtMiAhZGVmYXVsdDtcbiRpbmJveC10YWJsZS10ZC1leHRyYS1pbmZvLWZvbnQtd2VpZ2h0OiAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG4kaW5ib3gtdGFibGUtdGQtZXh0cmEtaW5mby10ZXh0LXRyYW5zZm9ybTogICAgICAgbnVsbCAhZGVmYXVsdDtcbiRpbmJveC10YWJsZS10ZC1leHRyYS1pbmZvLWNvbG9yOiAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4vLyBVc2UgdGFibGUtY2VsbCBzcGFjaW5nICYgaW5kaWNhdG9yLXNpemUgKyBzcGFjaW5nXG4kaW5ib3gtdGFibGUtdGQtaW5kaWNhdG9yLW9mZnNldDogICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7IC8vIEBUT0RPOiBCYXNlZCBvbiB0YWJsZS1jZWxsIHNwYWNpbmcuIFRhYmxlIHNldHRpbmdzIG5lZWQgdG8gYmUgZ2xvYmFsIGluIG9yZGVyIHRvIHJldXNlIHRoZW0uXG4kaW5ib3gtdGFibGUtdGQtaW5kaWNhdG9yLWRvdC1vZmZzZXQtdmVydGljYWw6ICAgJElORElDQVRPUi1ET1QtU0laRSAhZGVmYXVsdDtcbiRpbmJveC10YWJsZS10ZC1pbmRpY2F0b3ItZG90LW9mZnNldC1ob3Jpem9udGFsOiAoJElORElDQVRPUi1ET1QtU1BBQ0lORyArICRJTkRJQ0FUT1ItRE9ULVNJWkUpICFkZWZhdWx0O1xuJGluYm94LXRhYmxlLXRkLXN1YmplY3Qtb2Zmc2V0OiAgICAgICAgICAgICAgICAgICRpbmJveC10YWJsZS10ZC1pbmRpY2F0b3Itb2Zmc2V0ICsgKCRpbmJveC10YWJsZS10ZC1pbmRpY2F0b3ItZG90LW9mZnNldC1ob3Jpem9udGFsKSAhZGVmYXVsdDtcbiRpbmJveC10YWJsZS10ZC1zdWJqZWN0LW9mZnNldC1hdC1icmVha3BvaW50OiAgICAoJElORElDQVRPUi1ET1QtU0laRSArICRJTkRJQ0FUT1ItRE9ULVNQQUNJTkcpICFkZWZhdWx0O1xuXG4kaW5ib3gtdGFibGUtYnV0dG9uLXNwYWNpbmctaG9yaXpvbnRhbDogICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBOZXN0IGAuYy1pbmJveC10YWJsZWAgZWxlbWVudHMgdG8gaW5jcmVhc2Ugc3BlY2lmaWNpdHkgdGhhdCBsZXQgaXRcbiAqICAgICBvdmVyd3JpdGUgYC5jLXRhYmxlYCBzdHlsZXMuXG4gKiBbMl0gRGVmaW5lIGEgbWluaW11bSBoZWlnaHQgdG8gaGF2ZSBzYW1lIHRhYmxlIGNlbGwgaGVpZ2h0cywgcmVnYXJkbGVzcyBvZlxuICogICAgIHdoZXRoZXIgdGhlIGNvbnRlbnQgaXMgb25lIG9yIHR3byBsaW5lcyBsb25nLlxuICogWzNdIFRoZSBkYXRlIGNlbGwgc2hvdWxkIGhhdmUgYSBgbWluLXdpZHRoYCBzbyB0aGF0IHRoaXMgY29sdW1uIGlzIGFsd2F5cyB0aGVcbiAqICAgICBzYW1lIHdpZHRoIGluIHNlcGFyYXRlIHRhYmxlcy5cbiAqIFs0XSBTdHJldGNoIHRoZSBzdWJqZWN0IGNvbHVtbiB0byB0aGUgd2lkZXN0IHBvc3NpYmxlIHdpZHRoLlxuICogWzVdIFNtYWxsIHZpZXdwb3J0czogUmVtb3ZlIGB0YWJsZWAgcmVsYXRlZCBiZWhhdmlvciBmcm9tIGFsbCB0YWJsZSBlbGVtZW50c1xuICogICAgIGFuZCBmb3JtYXQgZXZlcnl0aGluZyBhcyBhIGJsb2NrLWxldmVsIGVsZW1lbnQuXG4gKiBbNl0gU21hbGwgdmlld3BvcnRzOiBIaWRlIHRhYmxlIGhlYWQgcm93IGluIGFuIGFjY2Vzc2libHkuXG4gKiBbN10gU21hbGwgdmlld3BvcnRzOiBQb3NpdGlvbiBhY3Rpb24gYnV0dG9ucy9pY29ucyBpbnRvIHRoZSB0b3AgcmlnaHQgY29ybmVyLlxuICogWzhdIFNtYWxsIHZpZXdwb3J0czogUmVtb3ZlIGJvdHRvbSB0YWJsZSBjZWxsIGJvcmRlcnMgZXhjZXB0IGZvciB0aGUgbGFzdFxuICogICAgIGNlbGwuXG4gKiBbOV0gUmVzZXQgc29tZSB0YWJsZSBsaW5rIHN0eWxlcyBmb3IgdGhlIG5vcm1hbCwgbm9uLWhvdmVyIHN0YXRlLlxuKi9cblxuLy8gQFRPRE86IHJlc29sdmUgbmVzdGluZ1xuLmMtaW5ib3gtdGFibGUge1xuXG4gICAgLmMtaW5ib3gtdGFibGVfX3N1YmhlYWRpbmcgeyAvKiBbMV0gKi9cbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAkaW5ib3gtdGFibGUtc3ViaGVhZGluZy1mb250LXNpemVcbiAgICAgICAgKTtcbiAgICAgICAgbWFyZ2luLXRvcDogJGluYm94LXRhYmxlLXN1YmhlYWRpbmctbWFyZ2luLXRvcDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGluYm94LXRhYmxlLXN1YmhlYWRpbmctbWFyZ2luLWJvdHRvbTtcbiAgICAgICAgcGFkZGluZy10b3A6IGlmKCRpbmJveC10YWJsZS1zdWJoZWFkaW5nLXBhZGRpbmctdmVydGljYWwsICRpbmJveC10YWJsZS1zdWJoZWFkaW5nLXBhZGRpbmctdmVydGljYWwsIG51bGwpO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogaWYoJGluYm94LXRhYmxlLXN1YmhlYWRpbmctcGFkZGluZy12ZXJ0aWNhbCwgJGluYm94LXRhYmxlLXN1YmhlYWRpbmctcGFkZGluZy12ZXJ0aWNhbCwgbnVsbCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkaW5ib3gtdGFibGUtc3ViaGVhZGluZy1mb250LXdlaWdodDtcbiAgICAgICAgdGV4dC1hbGlnbjogJGluYm94LXRhYmxlLXN1YmhlYWRpbmctdGV4dC1hbGlnbjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGluYm94LXRhYmxlLXN1YmhlYWRpbmctYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG5cbiAgICAuYy1pbmJveC10YWJsZV9fYm9keSB7XG5cbiAgICAgICAgLmMtdGFibGVfX2J0biB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRpbmJveC10YWJsZS1idXR0b24tc3BhY2luZy1ob3Jpem9udGFsO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRpbmJveC10YWJsZS1idXR0b24tc3BhY2luZy1ob3Jpem9udGFsO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1pbmJveC10YWJsZV9fdHIge1xuXG4gICAgICAgICYuaXMtdW5yZWFkIHtcblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1jbGFzcyAqL1xuICAgICAgICAgICAgLmMtaW5ib3gtdGFibGVfX3RkIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJGluYm94LXRhYmxlLXRyLXVucmVhZC1mb250LXdlaWdodDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1pbmJveC10YWJsZV9fdGQge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICRpbmJveC10YWJsZS10ZC1mb250LXNpemUsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6IGF1dG8sXG4gICAgICAgICk7XG5cbiAgICAgICAgaGVpZ2h0OiAkaW5ib3gtdGFibGUtdGQtbWluLWhlaWdodDsgLyogWzJdICovXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICB9XG5cbiAgICAgICAgLmMtaW5ib3gtdGFibGVfX3RkLS1kYXRlIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJGluYm94LXRhYmxlLXRkLWRhdGUtbWluLXdpZHRoOyAvKiBbM10gKi9cbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAuYy1pbmJveC10YWJsZV9fdGQtLWFjdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtaW5ib3gtdGFibGVfX3RkLS1zdWJqZWN0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlOyAvKiBbNF0gKi9cbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGluYm94LXRhYmxlLXRkLXN1YmplY3Qtb2Zmc2V0O1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtaW5ib3gtdGFibGVfX3RkX19zdWJqZWN0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWluYm94LXRhYmxlX19zdGF0dXMtaW5kaWNhdG9yIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogJGluYm94LXRhYmxlLXRkLWluZGljYXRvci1kb3Qtb2Zmc2V0LXZlcnRpY2FsO1xuICAgICAgICAgICAgbGVmdDogLSgkaW5ib3gtdGFibGUtdGQtaW5kaWNhdG9yLWRvdC1vZmZzZXQtaG9yaXpvbnRhbCk7XG4gICAgICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc3BvbnNpdmUgdmFyaWFudCBmb3Igc21hbGwgdmlld3BvcnRzXG4gICAgICovXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG9yZGVyL29yZGVyICovXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGluYm94LXRhYmxlLWJyZWFrcG9pbnR9XCIpIHtcblxuICAgICAgICAmLmMtaW5ib3gtdGFibGUge1xuXG4gICAgICAgICAgICB0YWJsZSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6ICRpbmJveC10YWJsZS1yZXNwb25zaXZlLWJvcmRlci10b3A7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRhYmxlLCB0aGVhZCwgdGJvZHksIHRyLCB0aCwgdGQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyAvKiBbNV0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhlYWQgdHIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGExMXktaGlkZGVuKCk7IC8qIFs2XSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0ciB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbN10gKi9cbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkaW5ib3gtdGFibGUtdHItcmVzcG9uc2l2ZS1zcGFjaW5nLXZlcnRpY2FsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aCwgdGQge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7IC8qIFs3XSAqL1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuXG4gICAgICAgICAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7IC8qIFs4XSAqL1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLXRhYmxlX19idG4ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLyogWzddICovXG4gICAgICAgICAgICAgICAgdG9wOiAwOyAvKiBbN10gKi9cbiAgICAgICAgICAgICAgICByaWdodDogMDsgLyogWzddICovXG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmMtaW5ib3gtdGFibGVfX3RkLS1kYXRlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkaW5ib3gtdGFibGUtdGQtZGF0ZS1yZXNwb25zaXZlLW1hcmdpbi1ib3R0b207XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLWluYm94LXRhYmxlX190ZC0tc3ViamVjdCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGluYm94LXRhYmxlLXRkLXN1YmplY3Qtb2Zmc2V0LWF0LWJyZWFrcG9pbnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRpbmJveC10YWJsZS10ci1yZXNwb25zaXZlLXNwYWNpbmctdmVydGljYWw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbiAgICAuYy1pbmJveC10YWJsZV9fZXh0cmEtaW5mbyB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKFxuICAgICAgICAgICAgJGZvbnQtc2l6ZTogJGluYm94LXRhYmxlLXRkLWV4dHJhLWluZm8tZm9udC1zaXplXG4gICAgICAgICk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkaW5ib3gtdGFibGUtdGQtZXh0cmEtaW5mby1mb250LXdlaWdodDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRpbmJveC10YWJsZS10ZC1leHRyYS1pbmZvLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICBjb2xvcjogJGluYm94LXRhYmxlLXRkLWV4dHJhLWluZm8tY29sb3I7XG4gICAgfVxuXG4gICAgLmMtaW5ib3gtdGFibGVfX2xpbmsge1xuICAgICAgICAmOm5vdCg6aG92ZXIpIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIFs5XSAqL1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyAvKiBbOV0gKi9cbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0OyAvKiBbOV0gKi9cbiAgICAgICAgfVxuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJTkJPWC1UQUJMRVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRza29kYS1pbmJveC10YWJsZS1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICRDT0xPUi1CT1JERVIgIWRlZmF1bHQ7XG4kc2tvZGEtaW5ib3gtdGFibGUtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgICAkR0xPQkFMLUJPUkRFUi1SQURJVVMgIWRlZmF1bHQ7XG5cbiRza29kYS1pbmJveC10YWJsZS1yZXNwb25zaXZlLXRyLXRyYW5zaXRpb246ICAgICAgICRHTE9CQUwtVFJBTlNJVElPTiAhZGVmYXVsdDtcbiRza29kYS1pbmJveC10YWJsZS1yZXNwb25zaXZlLXRyLXBhZGRpbmc6ICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJHNrb2RhLWluYm94LXRhYmxlLXJlc3BvbnNpdmUtdHItYmFja2dyb3VuZC1ob3ZlcjogJENPTE9SLVJPVy1IT1ZFUiAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gSW5jcmVhc2Ugc3BlY2lmaWNpdHkgdG8gb3ZlcnJpZGUgZGVmYXVsdCB0YWJsZSBhbmQgaW5ib3ggdGFibGUgc3R5bGVzIChzbyBzYWQpLlxuICogWzJdIFVzZSBhIHBzZXVkbyBlbGVtZW50IHRvIGFkZCBhIGJvcmRlciB3aXRoIHJvdW5kZWQgY29ybmVycyB0byB0aGUgdGFibGUuXG4gKiBbM10gRGlzYWJsZSBFTUlMIGJvcmRlcnMgYmFzZWQgb24gYHRkLCB0aGAgcHNldWRvIGVsZW1lbnRzIGluIGZhdm9yIG9mIFsyXS5cbiAqIFs0XSBEaXNhYmxlIHVubmVlZGVkIGA6OmFmdGVyYCBwc2V1ZG8gZWxlbWVudCBpbiBgdGhgcyB3aGljaCBwcmV2ZW50cyBidXR0b25zXG4gKiAgICAgZnJvbSBiZWluZyBjbGlja2VkIGluIHRoZSBoZWFkZXIuXG4gKiBbNV0gUmVtb3ZlIGNvbHVtbiBkaXZpZGVycyBiZXR3ZWVuIGVtcHR5IGB0aGBzIGluIGB0aGVhZGAuIEJlY2F1c2Ugd2UgYXJlXG4gKiAgICAgY2hlY2tpbmcgZm9yIGA6ZW1wdHlgLCB0aGUgY2VsbHMgbXVzdCBub3QgZXZlbiBjb250YWluIHdoaXRlc3BhY2UuXG4gKiAgICAgKFRoaXMgd2lsbCBjaGFuZ2Ugd2l0aCBicm93c2VyIHN1cHBvcnQgZm9yIENTUyBTZWxlY3RvcnMgTGV2ZWwgNDogaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL3NlbGVjdG9ycy00LyN0aGUtZW1wdHktcHNldWRvKVxuICogWzZdIFNtYWxsIHZpZXdwb3J0czogQWRkIGhvdmVyIGVmZmVjdCB0byB0aGUgYHRyYCBpbnN0ZWFkIG9mIGB0ZCwgdGhgLlxuICpcbiAqL1xuXG4uYy1pbmJveC10YWJsZS5jLWluYm94LXRhYmxlIHsgLyogWzFdICovXG5cbiAgICB0YWJsZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogWzJdICovXG4gICAgICAgIGJvcmRlcjogbm9uZTsgLyogWzNdICovXG5cbiAgICAgICAgJjo6YWZ0ZXIgeyAvKiBbMl0gKi9cbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2tvZGEtaW5ib3gtdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHNrb2RhLWluYm94LXRhYmxlLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSwgc2VsZWN0b3ItbWF4LWNsYXNzICovXG4gICAgJi5jLWluYm94LXRhYmxlLmMtaW5ib3gtdGFibGUuYy1pbmJveC10YWJsZS5jLWluYm94LXRhYmxlIHsgLyogWzFdICovXG5cbiAgICAgICAgdGQge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBbM10gKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBbNF0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eTo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBbNV0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb3JkZXIvb3JkZXIgKi9cbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skaW5ib3gtdGFibGUtYnJlYWtwb2ludH1cIikge1xuXG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRza29kYS1pbmJveC10YWJsZS1yZXNwb25zaXZlLXRyLXBhZGRpbmc7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkc2tvZGEtaW5ib3gtdGFibGUtcmVzcG9uc2l2ZS10ci10cmFuc2l0aW9uOyAvKiBbNl0gKi9cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNrb2RhLWluYm94LXRhYmxlLXJlc3BvbnNpdmUtdHItYmFja2dyb3VuZC1ob3ZlcjsgLyogWzZdICovXG5cbiAgICAgICAgICAgICAgICB0aCwgdGQge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogWzZdICovXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsIHRkIHtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IC8qIFszXSAqL1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLmMtdGFibGVfX2J0bi5jLXRhYmxlX19idG4ge1xuICAgICAgICAgICAgdG9wOiAkc2tvZGEtaW5ib3gtdGFibGUtcmVzcG9uc2l2ZS10ci1wYWRkaW5nO1xuICAgICAgICAgICAgcmlnaHQ6ICRza29kYS1pbmJveC10YWJsZS1yZXNwb25zaXZlLXRyLXBhZGRpbmc7XG4gICAgICAgIH1cblxuICAgIH1cbiAgICAvKiBzdHlsZWxpbnQtZW5hYmxlIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSwgc2VsZWN0b3ItbWF4LWNsYXNzICovXG5cbn1cblxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAjVE9BU1QtTk9USUZJQ0FUSU9OXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHRvYXN0LW5vdGlmaWNhdGlvbi1icmVha3BvaW50OiAgICAgICAgICAgICAgIHMgIWRlZmF1bHQ7XG4kdG9hc3Qtbm90aWZpY2F0aW9uLW1heC13aWR0aDogICAgICAgICAgICAgICAgMzAwcHggIWRlZmF1bHQ7XG4kdG9hc3Qtbm90aWZpY2F0aW9uLW9mZnNldDogICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kdG9hc3Qtbm90aWZpY2F0aW9uLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJHRvYXN0LW5vdGlmaWNhdGlvbi1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICRDT0xPUi1QQUxFICFkZWZhdWx0O1xuJHRvYXN0LW5vdGlmaWNhdGlvbi1ib3JkZXI6ICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kdG9hc3Qtbm90aWZpY2F0aW9uLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgJENPTE9SLUJMQUNLICFkZWZhdWx0O1xuJHRvYXN0LW5vdGlmaWNhdGlvbi10ZXh0LXNpemU6ICAgICAgICAgICAgICAgIG1hcC1nZXQoJEZTMSwgbnVsbCkgIWRlZmF1bHQ7XG4kdG9hc3Qtbm90aWZpY2F0aW9uLXRleHQtZm9udC13ZWlnaHQ6ICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR0b2FzdC1ub3RpZmljYXRpb24tdGV4dC1saW5lLWhlaWdodDogICAgICAgICAkR0xPQkFMLUxJTkUtSEVJR0hUICFkZWZhdWx0O1xuJHRvYXN0LW5vdGlmaWNhdGlvbi1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJHRvYXN0LW5vdGlmaWNhdGlvbi1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJHRvYXN0LW5vdGlmaWNhdGlvbi16LWluZGV4OiAgICAgICAgICAgICAgICAgIHooXCJ0b2FzdC1ub3RpZmljYXRpb25cIikgIWRlZmF1bHQ7XG4kdG9hc3Qtbm90aWZpY2F0aW9uLWNsb3NlLWljb246ICAgICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtY2xvc2UpICFkZWZhdWx0O1xuJHRvYXN0LW5vdGlmaWNhdGlvbi1jbG9zZS1pY29uLXNpemU6ICAgICAgICAgIGljb24tc2l6ZShzbWFsbCkgIWRlZmF1bHQ7XG4kdG9hc3Qtbm90aWZpY2F0aW9uLWNsb3NlLWljb24tc3BhY2luZzogICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJHRvYXN0LW5vdGlmaWNhdGlvbi1jbG9zZS1pY29uLWNvbG9yOiAgICAgICAgIGN1cnJlbnRDb2xvciAhZGVmYXVsdDtcbiR0b2FzdC1ub3RpZmljYXRpb24tY2xvc2UtYW5pbWF0aW9uLWR1cmF0aW9uOiAoJEdMT0JBTC1UUkFOU0lUSU9OLURVUkFUSU9OICogMikgIWRlZmF1bHQ7XG5cbiR0b2FzdC1ub3RpZmljYXRpb24tdGhlbWVzOiAgICAgICAgICAgICAgICAgICAkU1RBVFVTLVRIRU1FUyAhZGVmYXVsdDtcblxuLy8gTWVyZ2UgZGVmYXVsdCBhbmQgb3ZlcndyaXRlIHNldHRpbmdzIHRvIGF2b2lkIGR1cGxpY2F0aW9uc1xuLy8gYW5kIG92ZXJ3cml0ZSBvbmx5IG5lY2Vzc2FyeSBzZXR0aW5ncy5cbiR0b2FzdC1ub3RpZmljYXRpb24tdGhlbWVzLW92ZXJ3cml0ZXM6ICAgICgpICFkZWZhdWx0O1xuJHRvYXN0LW5vdGlmaWNhdGlvbi1zdGF0dXMtdGhlbWVzLW1lcmdlZDogbWFwLWRlZXAtbWVyZ2UoJHRvYXN0LW5vdGlmaWNhdGlvbi10aGVtZXMsICR0b2FzdC1ub3RpZmljYXRpb24tdGhlbWVzLW92ZXJ3cml0ZXMsIDIpICFkZWZhdWx0O1xuXG4vLyBTdHlsZS1ob29rOiBgW2RhdGEtbWFya2V0aW5nLXRoZW1lXWBcbiR0b2FzdC1ub3RpZmljYXRpb24tbWFya2V0aW5nLXRoZW1lcy1vdmVyd3JpdGVzOiAoKSAhZGVmYXVsdDtcbiR0b2FzdC1ub3RpZmljYXRpb24tbWFya2V0aW5nLXRoZW1lczogICAgICAgICAgICBtYXAtZGVlcC1tZXJnZSgkTUFSS0VUSU5HLVRIRU1FUywgJHRvYXN0LW5vdGlmaWNhdGlvbi1tYXJrZXRpbmctdGhlbWVzLW92ZXJ3cml0ZXMsIDIpICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBSZXN0cmljdCB0aGUgaGVpZ2h0IG9mIHRoZSBjb250YWluZXIgdG8gdGhlIHZpZXdwb3J0IGhlaWdodCwgc28gaXQgaXNcbiAqICAgICBzY3JvbGxhYmxlIHdpdGggbWFueSBpdGVtcyBpbiBpdC5cbiAqIFsyXSBQcm92aWRlIG9mZnNldCBzcGFjaW5nIGZvciBzbWFsbCBzY3JlZW5zLCB3aGVuIHRoZSBub3RpZmljYXRpb25zIHdvdWxkXG4gKiAgICAgb3RoZXJ3aXNlIHRvdWNoIHRoZSBsZWZ0IHZpZXdwb3J0IGVkZ2UuXG4gKiBbM10gT2Zmc2V0IHRoZSBub3RpZmljYXRpb25zIHRvIHRoZSByaWdodCB3aXRoIGBwYWRkaW5nLXJpZ2h0YCBpbnN0ZWFkIG9mXG4gKiAgICAgdGhlIGByaWdodGAgcHJvcGVydHksIHNvIHRoZSBzbGlkZS1yaWdodCBhbmltYXRpb24gbG9va3MgYXV0aGVudGljLlxuICogWzRdIEluIGNhc2Ugb2YgbWFueSBub3RpZmljYXRpb25zLCBlbnN1cmUgc2Nyb2xsYWJpbGl0eSwuLi5cbiAqIFs1XSAuLi5idXQgcHJldmVudCBvbiB0aGUgeC1heGlzLlxuICogWzZdIERlbGF5IHRoZSB2ZXJ0aWNhbCBhbmltYXRpb24sIHNvIHRoZSBob3Jpem9udGFsIGFuaW1hdGlvbiBydW5zIGZpcnN0LlxuICogWzddIElmIHRoZXJlIGFyZSBhbnkgZWxlbWVudHMgaW4gbm90aWZpY2F0aW9ucyB0aGF0IGJyaW5nIHNwYWNpbmcgd2l0aCBpdCxcbiAqICAgICBwcmV2ZW50IGl0IGZyb20gc2NyZXdpbmcgdXAgdGhlIHBhZGRpbmcuXG4gKiBbOF0gU2hyaW5rIHNpemUgdG8gemVyby5cbiAqIFs5XSBBbHNvIHJlc2V0IG1hcmdpbi1ib3R0b20gYXMgdGhpcyBjb250cmlidXRlcyB0byB0aGUgY29tcG91bmQgaGVpZ2h0LlxuICogWzEwXSBSZWZlcmVuY2UgZm9yIHRoZSBjbG9zZSBidXR0b24uXG4gKiBbMTFdIFB1c2ggdGhlIG5vdGlmaWNhdGlvbiBvdXQgb2Ygc2NyZWVuIHdoZW4gY2xvc2VkLlxuICogWzEyXSBQcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGNsb3NlIGJ1dHRvbi5cbiAqIFsxM10gRGVsYXkgdGhlIGhvcml6b250YWwgYW5pbWF0aW9uIHdoZW4gYW4gaXRlbSBzaG91bGQgYmUgYWRkZWQsIHNvIHRoZVxuICogICAgICB2ZXJ0aWNhbCBhbmltYXRpb24gcnVucyBmaXJzdCBhbmQgZ2l2ZXMgdXAgaXRzIHNwYWNlIGZvciB0aGUgbmV3IGl0ZW0uXG4gKiBbMTRdIFJlc2V0IHRoZSB0cmFuc2l0aW9uLWRlbGF5IGZvciB0aGUgcmV2ZXJzZWQgYW5pbWF0aW9uLCBpLmUuIHRoZSBhZGRpbmdcbiAqICAgICAgb2YgbmV3IG5vdGlmaWNhdGlvbiBpdGVtcy5cbiAqIFsxNV0gUHJldmVudHMgdGhlIG5vdGlmaWNhdGlvbnMgdG8gdGFrZSB1cCBhbnkgc3BhY2Ugd2hlbiBpdOKAmXMgY2xvc2VkIGFuZFxuICogICAgICB0YWtlcyBjYXJlIG9mIGVsaW1pbmF0aW5nIGFueSBwb3RlbnRpYWwgc2Nyb2xsIGJhcnMuXG4gKiBbMTZdIFByb3ZpZGUgYSBkZWZhdWx0IHRleHQgY29sb3IuXG4gKiBbMTddIE1ha2Ugc3VyZSB0aGUgaWNvbiBjb2xvciBpcyB0aGUgc2FtZSBhcyB0aGUgdGV4dCBjb2xvciwgaGVuY2UgcHJldmVudFxuICogICAgICBhbnkgb3ZlcnJpZGUgZnJvbSB0aGUgYCRJQ09OLUNPTE9SYCBzZXR0aW5ncy5cbiAqIFsxOF0gRGlzYWJsZSB0cmFuc2l0aW9uIGR1cmluZyBpbml0aWFsaXphdGlvbnMuXG4gKi9cbi5jLXRvYXN0LW5vdGlmaWNhdGlvbnMge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAkdG9hc3Qtbm90aWZpY2F0aW9uLXotaW5kZXg7XG4gICAgdG9wOiAkdG9hc3Qtbm90aWZpY2F0aW9uLW9mZnNldDtcbiAgICByaWdodDogMDsgLyogWzNdICovXG4gICAgbWF4LWhlaWdodDogMTAwdmg7IC8qIFsxXSAqL1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjsgLyogWzVdICovXG4gICAgb3ZlcmZsb3cteTogYXV0bzsgLyogWzRdICovXG4gICAgbWFyZ2luLWxlZnQ6ICR0b2FzdC1ub3RpZmljYXRpb24tb2Zmc2V0OyAvKiBbMl0gKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiAkdG9hc3Qtbm90aWZpY2F0aW9uLW9mZnNldDsgLyogWzNdICovXG59XG5cbi5jLXRvYXN0LW5vdGlmaWNhdGlvbiB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbigkdHJhbnNpdGlvbi1kdXJhdGlvbjogJHRvYXN0LW5vdGlmaWNhdGlvbi1jbG9zZS1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyAvKiBbMTVdICovXG4gICAgdHJhbnNpdGlvbi1kZWxheTogMHM7IC8qIFsxNF0gKi9cblxuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPiN7JHRvYXN0LW5vdGlmaWNhdGlvbi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgIG1heC13aWR0aDogJHRvYXN0LW5vdGlmaWNhdGlvbi1tYXgtd2lkdGg7XG4gICAgfVxuXG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRvYXN0LW5vdGlmaWNhdGlvbi1zcGFjaW5nO1xuICAgIH1cblxuICAgICo6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IC8qIFs3XSAqL1xuICAgIH1cblxuICAgICYuaXMtY2xvc2VkIHtcbiAgICAgICAgaGVpZ2h0OiAwOyAvKiBbOF0gKi9cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzldICovXG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6ICR0b2FzdC1ub3RpZmljYXRpb24tY2xvc2UtYW5pbWF0aW9uLWR1cmF0aW9uOyAvKiBbNl0gKi9cbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxufVxuXG4gICAgLmMtdG9hc3Qtbm90aWZpY2F0aW9uX19jb250ZW50IHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigkdHJhbnNpdGlvbi1kdXJhdGlvbjogJHRvYXN0LW5vdGlmaWNhdGlvbi1jbG9zZS1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIFsxMF0gKi9cbiAgICAgICAgcGFkZGluZzogJHRvYXN0LW5vdGlmaWNhdGlvbi1wYWRkaW5nLXZlcnRpY2FsICR0b2FzdC1ub3RpZmljYXRpb24tcGFkZGluZy1ob3Jpem9udGFsO1xuICAgICAgICBib3JkZXI6ICR0b2FzdC1ub3RpZmljYXRpb24tYm9yZGVyO1xuICAgICAgICBmb250LXdlaWdodDogJHRvYXN0LW5vdGlmaWNhdGlvbi10ZXh0LWZvbnQtd2VpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9hc3Qtbm90aWZpY2F0aW9uLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkdG9hc3Qtbm90aWZpY2F0aW9uLXRleHQtY29sb3I7IC8qIFsxNl0gKi9cbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogJHRvYXN0LW5vdGlmaWNhdGlvbi1jbG9zZS1hbmltYXRpb24tZHVyYXRpb247IC8qIFsxM10gKi9cblxuICAgICAgICAvLyBBZGQgc3RhdHVzIG1vZGlmaWVyIGNsYXNzZXMuXG4gICAgICAgIEBpbmNsdWRlIHZhcnkoJGNyZWF0ZTogY3VzdG9tLCAkbG9vcDogJHRvYXN0LW5vdGlmaWNhdGlvbi1zdGF0dXMtdGhlbWVzLW1lcmdlZCkge1xuXG4gICAgICAgICAgICAuYy10b2FzdC1ub3RpZmljYXRpb24tLSN7JHZhcnktbG9vcC1lbnRpdHl9ICYge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcnktZ2V0KFwiYmFja2dyb3VuZC1jb2xvclwiKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyeS1nZXQoXCJ0ZXh0LWNvbG9yXCIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSB2YXJ5KCRjcmVhdGU6IGN1c3RvbSwgJGxvb3A6ICR0b2FzdC1ub3RpZmljYXRpb24tbWFya2V0aW5nLXRoZW1lcykge1xuICAgICAgICAgICAgLmMtdG9hc3Qtbm90aWZpY2F0aW9uW2RhdGEtbWFya2V0aW5nLXRoZW1lPVwiI3skdmFyeS1sb29wLWVudGl0eX1cIl0gJiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXJ5LWdldChcImJvcmRlci1jb2xvclwiKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXJ5LWdldChcImJhY2tncm91bmQtY29sb3JcIik7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcnktZ2V0KFwidGV4dC1jb2xvclwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXRvYXN0LW5vdGlmaWNhdGlvbi5pcy1jbG9zZWQgJiB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwJSk7IC8qIFsxMV0gKi9cbiAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzOyAvKiBbMTRdICovXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXRvYXN0LW5vdGlmaWNhdGlvbl9fYm9keSB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICR0b2FzdC1ub3RpZmljYXRpb24tdGV4dC1zaXplLFxuICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAkdG9hc3Qtbm90aWZpY2F0aW9uLXRleHQtbGluZS1oZWlnaHRcbiAgICAgICAgKTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogKCR0b2FzdC1ub3RpZmljYXRpb24tY2xvc2UtaWNvbi1zcGFjaW5nICsgJHRvYXN0LW5vdGlmaWNhdGlvbi1jbG9zZS1pY29uLXNpemUpOyAvKiBbMTJdICovXG4gICAgfVxuXG4gICAgLmMtdG9hc3Qtbm90aWZpY2F0aW9uX19jbG9zZSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWJ1dHRvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogJHRvYXN0LW5vdGlmaWNhdGlvbi1wYWRkaW5nLXZlcnRpY2FsO1xuICAgICAgICByaWdodDogJHRvYXN0LW5vdGlmaWNhdGlvbi1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgICAgIGNvbG9yOiAkdG9hc3Qtbm90aWZpY2F0aW9uLWNsb3NlLWljb24tY29sb3I7IC8qIFsxN10gKi9cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCk7XG4gICAgICAgICAgICBjb250ZW50OiAkdG9hc3Qtbm90aWZpY2F0aW9uLWNsb3NlLWljb247XG4gICAgICAgICAgICBmb250LXNpemU6ICR0b2FzdC1ub3RpZmljYXRpb24tY2xvc2UtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICB9XG5cbi5jLXRvYXN0LW5vdGlmaWNhdGlvbjpub3QoLmpzLWlzLXJlYWR5KSB7XG5cbiAgICAmLFxuICAgIC5jLXRvYXN0LW5vdGlmaWNhdGlvbl9fY29udGVudCB7XG4gICAgICAgIHRyYW5zaXRpb246IGltcG9ydGFudChub25lLCB0cnVlKTsgLyogWzE4XSAqL1xuICAgIH1cblxufVxuXG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjVE9BU1QtTk9USUZJQ0FUSU9OIChTZXR0aW5ncylcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cbiR0b2FzdC1ub3RpZmljYXRpb24tYmFja2dyb3VuZDogICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQtVEVSVElBUlkgIWRlZmF1bHQ7XG5cbiR0b2FzdC1ub3RpZmljYXRpb24tcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcblxuJHRvYXN0LW5vdGlmaWNhdGlvbi10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiR0b2FzdC1ub3RpZmljYXRpb24tdGV4dC1zaXplOiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRGUy0xLCBudWxsKSAhZGVmYXVsdDtcbiR0b2FzdC1ub3RpZmljYXRpb24tdGV4dC1saW5lLWhlaWdodDogICAgICAgICAxLjUgIWRlZmF1bHQ7XG5cbiR0b2FzdC1ub3RpZmljYXRpb24tY2xvc2UtaWNvbi1zaXplOiAgICAgICAgICBpY29uLXNpemUoeHhzbWFsbCkgIWRlZmF1bHQ7XG4kdG9hc3Qtbm90aWZpY2F0aW9uLWNsb3NlLWFuaW1hdGlvbi1kdXJhdGlvbjogJEdMT0JBTC1UUkFOU0lUSU9OLURVUkFUSU9OICFkZWZhdWx0O1xuXG4kdG9hc3Qtbm90aWZpY2F0aW9uLXRoZW1lcy1vdmVyd3JpdGVzOiAoXG4gICAgaW5mbzogKFxuICAgICAgICBcInRleHQtY29sb3JcIjogICAgICAgJHRvYXN0LW5vdGlmaWNhdGlvbi10ZXh0LWNvbG9yLFxuICAgICAgICBcImJhY2tncm91bmQtY29sb3JcIjogJHRvYXN0LW5vdGlmaWNhdGlvbi1iYWNrZ3JvdW5kLFxuICAgICksXG4gICAgc3VjY2VzczogKFxuICAgICAgICBcInRleHQtY29sb3JcIjogICAgICAgJHRvYXN0LW5vdGlmaWNhdGlvbi10ZXh0LWNvbG9yLFxuICAgICAgICBcImJhY2tncm91bmQtY29sb3JcIjogJHRvYXN0LW5vdGlmaWNhdGlvbi1iYWNrZ3JvdW5kLFxuICAgICksXG4gICAgd2FybmluZzogKFxuICAgICAgICBcInRleHQtY29sb3JcIjogICAgICAgJHRvYXN0LW5vdGlmaWNhdGlvbi10ZXh0LWNvbG9yLFxuICAgICAgICBcImJhY2tncm91bmQtY29sb3JcIjogJHRvYXN0LW5vdGlmaWNhdGlvbi1iYWNrZ3JvdW5kLFxuICAgICksXG4gICAgZXJyb3I6IChcbiAgICAgICAgXCJ0ZXh0LWNvbG9yXCI6ICAgICAgICR0b2FzdC1ub3RpZmljYXRpb24tdGV4dC1jb2xvcixcbiAgICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yXCI6ICR0b2FzdC1ub3RpZmljYXRpb24tYmFja2dyb3VuZCxcbiAgICApLFxuKSAhZGVmYXVsdDtcbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNUT0FTVC1OT1RJRklDQVRJT05cbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2tvZGEtdG9hc3Qtbm90aWZpY2F0aW9uLXN0YXR1cy1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICROT1RJRklDQVRJT04tU1RBVFVTLUJPUkRFUi1XSURUSCAhZGVmYXVsdDtcbiRza29kYS10b2FzdC1ub3RpZmljYXRpb24tc3RhdHVzLXRoZW1lczogICAgICAgICAgICAgICAgICAgICAgICAgbWFwLXJlbW92ZSgkU1RBVFVTLVRIRU1FUywgXCJpbmZvXCIpICFkZWZhdWx0OyAvLyBVc2UgcmVndWxhciBzdGF0dXMgdGhlbWVzIEVYQ0VQVCBcImluZm9cIi5cblxuJHNrb2RhLXRvYXN0LW5vdGlmaWNhdGlvbi1jbG9zZS1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiAgICAgICAgICAkQlVUVE9OLUlDT04tSU5URVJBQ1RJT04tQkFDS0dST1VORC1DT0xPUi1IT1ZFUi1PTi1EQVJLICFkZWZhdWx0O1xuJHNrb2RhLXRvYXN0LW5vdGlmaWNhdGlvbi1jbG9zZS1iYWNrZ3JvdW5kLXNpemU6ICAgICAgICAgICAgICAgICAkQlVUVE9OLUlDT04tSU5URVJBQ1RJT04tU0laRS1TTUFMTCAhZGVmYXVsdDtcbiRza29kYS10b2FzdC1ub3RpZmljYXRpb24tb24tbGlnaHQtY2xvc2UtYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogJEJVVFRPTi1JQ09OLUlOVEVSQUNUSU9OLUJBQ0tHUk9VTkQtQ09MT1ItSE9WRVItT04tTElHSFQgIWRlZmF1bHQ7XG4kc2tvZGEtdG9hc3Qtbm90aWZpY2F0aW9uLWZvY3VzLW91dGxpbmUtY29sb3I6ICAgICAgICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRza29kYS10b2FzdC1ub3RpZmljYXRpb24tb24tbGlnaHQtZm9jdXMtb3V0bGluZS1jb2xvcjogICAgICAgICAgJEdMT0JBTC1GT0NVUy1DT0xPUiAhZGVmYXVsdDtcblxuLmMtdG9hc3Qtbm90aWZpY2F0aW9uIHtcbiAgICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICN7JHNrb2RhLXRvYXN0LW5vdGlmaWNhdGlvbi1mb2N1cy1vdXRsaW5lLWNvbG9yfTtcblxuICAgICZbZGF0YS1tYXJrZXRpbmctdGhlbWVdIHtcbiAgICAgICAgLS1mb2N1cy1vdXRsaW5lLWNvbG9yOiAjeyRza29kYS10b2FzdC1ub3RpZmljYXRpb24tb24tbGlnaHQtZm9jdXMtb3V0bGluZS1jb2xvcn07XG4gICAgfVxuXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG9yZGVyL29yZGVyICovXG4gICAgQGluY2x1ZGUgdmFyeSgkY3JlYXRlOiBtb2RpZmllciwgJGxvb3A6ICRza29kYS10b2FzdC1ub3RpZmljYXRpb24tc3RhdHVzLXRoZW1lcykge1xuXG4gICAgICAgIC5jLXRvYXN0LW5vdGlmaWNhdGlvbl9fY29udGVudCB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMDtcblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcnktZ2V0KFwiYmFja2dyb3VuZC1jb2xvclwiKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy10b2FzdC1ub3RpZmljYXRpb25fX2NvbnRlbnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLy8gVG9hc3Qgbm90aWZpY2F0aW9uIHN0YXR1cyBib3JkZXIuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6ICRza29kYS10b2FzdC1ub3RpZmljYXRpb24tc3RhdHVzLWJvcmRlci13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbiAgICAuYy10b2FzdC1ub3RpZmljYXRpb25fX2Nsb3NlIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWljb24tc3RhdGVzKFxuICAgICAgICAgICAgJHNpemU6ICAgICAgICAgICAgICAgICAgICRza29kYS10b2FzdC1ub3RpZmljYXRpb24tY2xvc2UtYmFja2dyb3VuZC1zaXplLFxuICAgICAgICAgICAgJGJhY2tncm91bmQtY29sb3ItaG92ZXI6ICRza29kYS10b2FzdC1ub3RpZmljYXRpb24tY2xvc2UtYmFja2dyb3VuZC1jb2xvci1ob3ZlcixcbiAgICAgICAgICAgICRmb2N1cy1vdXRsaW5lLWNvbG9yOiAgICAkc2tvZGEtdG9hc3Qtbm90aWZpY2F0aW9uLWZvY3VzLW91dGxpbmUtY29sb3IsXG4gICAgICAgICk7XG5cbiAgICAgICAgW2RhdGEtbWFya2V0aW5nLXRoZW1lXSAmIHtcblxuICAgICAgICAgICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRza29kYS10b2FzdC1ub3RpZmljYXRpb24tb24tbGlnaHQtY2xvc2UtYmFja2dyb3VuZC1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAtLWZvY3VzLW91dGxpbmUtY29sb3I6ICN7JHNrb2RhLXRvYXN0LW5vdGlmaWNhdGlvbi1vbi1saWdodC1mb2N1cy1vdXRsaW5lLWNvbG9yfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjREVTQ1JJUFRJT04tTElTVC1BQ0NPUkRJT05cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tYnJlYWtwb2ludDogICAgICAgICAgICAgICAgICAgICAgICAgcyAhZGVmYXVsdDtcblxuJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWFjY29yZGlvbi1ib3JkZXItdG9wOiAgICAgICAgICAgICAgIG5vbmUgIWRlZmF1bHQ7XG4kZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tYWNjb3JkaW9uLWJvcmRlci1ib3R0b206ICAgICAgICAgICAgMnB4IHNvbGlkICRDT0xPUi1CT1JERVIgIWRlZmF1bHQ7XG5cbiRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi1oZWFkZXItc3BhY2luZy1sZWZ0OiAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWhlYWRlci1ib3JkZXItdG9wOiAgICAgICAgICAgICAgICAgIDJweCBzb2xpZCAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG5cbiRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi1jb250ZW50LXNwYWNpbmctdG9wOiAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWNvbnRlbnQtc3BhY2luZy1yaWdodDogICAgICAgICAgICAgICRhY2NvcmRpb24taGVhZGVyLXNwbGl0LXNwYWNpbmctcmlnaHQgIWRlZmF1bHQ7XG4kZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tY29udGVudC1zcGFjaW5nLWJvdHRvbTogICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi1jb250ZW50LXNwYWNpbmctbGVmdDogICAgICAgICAgICAgICAkYWNjb3JkaW9uLWhlYWRlci1zcGxpdC1zcGFjaW5nLWxlZnQgIWRlZmF1bHQ7XG5cbiRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi10aXRsZS1sYWJlbC1mb250LXNpemU6ICAgICAgICAgICAgICAkRlMyICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLXRpdGxlLWxhYmVsLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCAhZGVmYXVsdDtcbiRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi10aXRsZS1sYWJlbC1jb2xvcjogICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLXRpdGxlLWxhYmVsLXRleHQtdHJhbnNmb3JtOiAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi10aXRsZS12YWx1ZS1mb250LXNpemU6ICAgICAgICAgICAgICAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdGl0bGUtbGFiZWwtZm9udC1zaXplICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLXRpdGxlLXZhbHVlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtUkVHVUxBUiAhZGVmYXVsdDtcbiRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi10aXRsZS12YWx1ZS1jb2xvcjogICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLXRpdGxlLXZhbHVlLXRleHQtdHJhbnNmb3JtOiAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdGl0bGUtdmFsdWUtbWFyZ2luLXRvcC1yZXNwb25zaXZlOiAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFhTTUFMTCAhZGVmYXVsdDtcblxuJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWl0ZW0tc3BhY2luZy12ZXJ0aWNhbDogICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuXG4kZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24taXRlbS1sYWJlbC1jb2xvci1yZXNldDogICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi1pdGVtLWxhYmVsLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAkRlMwICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWl0ZW0tbGFiZWwtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCAhZGVmYXVsdDtcbiRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi1pdGVtLWxhYmVsLWNvbG9yOiAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWl0ZW0tbGFiZWwtdGV4dC10cmFuc2Zvcm06ICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi1pdGVtLW5vdGUtbWFyZ2luLWJvdHRvbS1yZXNwb25zaXZlOiAkR0xPQkFMLVNQQUNJTkctVU5JVC1YWFNNQUxMICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWl0ZW0tbm90ZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICRGUy0xICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWl0ZW0tbm90ZS1mb250LXdlaWdodDogICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtUkVHVUxBUiAhZGVmYXVsdDtcbiRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi1pdGVtLW5vdGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWl0ZW0tbm90ZS10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi1pdGVtLXZhbHVlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24taXRlbS1sYWJlbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24taXRlbS12YWx1ZS1mb250LXdlaWdodDogICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1SRUdVTEFSICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWl0ZW0tdmFsdWUtY29sb3I6ICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24taXRlbS12YWx1ZS10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLXRvdGFsLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdG90YWwtcGFkZGluZy10b3A6ICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdG90YWwtcGFkZGluZy1ib3R0b206ICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLXRvdGFsLWxhYmVsLWZvbnQtZmFtaWx5OiAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdG90YWwtbGFiZWwtZm9udC1zaXplOiAgICAgICAgICAgICAgJEZTNCAhZGVmYXVsdDtcbiRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi10b3RhbC1sYWJlbC1mb250LXdlaWdodDogICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQgIWRlZmF1bHQ7XG4kZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdG90YWwtbGFiZWwtY29sb3I6ICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi10b3RhbC1sYWJlbC10ZXh0LXRyYW5zZm9ybTogICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdG90YWwtbm90ZS1jb2xvcjogICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLXRvdGFsLXZhbHVlLWZvbnQtZmFtaWx5OiAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdG90YWwtdmFsdWUtZm9udC1zaXplOiAgICAgICAgICAgICAgJEZTNCAhZGVmYXVsdDtcbiRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi10b3RhbC12YWx1ZS1mb250LXdlaWdodDogICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQgIWRlZmF1bHQ7XG4kZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdG90YWwtdmFsdWUtY29sb3I6ICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi10b3RhbC12YWx1ZS10ZXh0LXRyYW5zZm9ybTogICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBUaGUgYm90dG9tIGFjY29yZGlvbiBib3JkZXIgc2VwYXJhdGVzIHRoZSBhY2NvcmRpb24gYW5kIHRoZSB0b3RhbCBzZWN0aW9uLlxuICogWzJdIEFsaWduIGl0ZW0gbGFiZWwgYW5kIHZhbHVlIHRvIHRoZSBsZWZ0IGFuZCByaWdodCB2aWEgZmxleGJveC5cbiAqIFszXSBSZXNldCBgZGxgIG1hcmdpbnMuXG4gKiBbNF0gU3RhY2sgaXRlbSBsYWJlbCBhbmQgdmFsdWUgdmVydGljYWxseSBpbiBzbWFsbCB2aWV3cG9ydHMuXG4gKiBbNV0gSW5jcmVhc2Ugc3BlY2lmaWNpdHkgdG8gb3ZlcnJ1bGUgc3BlY2lmaWNpdHkgb2ZcbiAqICAgICBgLmMtYWNjb3JkaW9uOm5vdCg6b25seS1jaGlsZClgLlxuICogWzZdIEluY3JlYXNlIHNwZWNpZmljaXR5IHRvIG92ZXJydWxlIHNwZWNpZmljaXR5IG9mXG4gKiAgICAgYC5jLWFjY29yZGlvbi0taGVhZGVyLXNwbGl0IC5jLWFjY29yZGlvbl9faGVhZGVyYC5cbiAqIFs3XSBNYWtlIHN1cmUgdG8gbm90IHVzZSB0aGUgZGVmYXVsdCBgPGR0PmAgY29sb3IuXG4gKi9cblxuLmMtZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24ge1xufVxuXG4gICAgLmMtZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb25fX2FjY29yZGlvbi5jLWRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uX19hY2NvcmRpb24geyAvKiBbNV0gKi9cbiAgICAgICAgYm9yZGVyLXRvcDogJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWFjY29yZGlvbi1ib3JkZXItdG9wO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tYWNjb3JkaW9uLWJvcmRlci1ib3R0b207IC8qIFsxXSAqL1xuICAgIH1cblxuICAgIC5jLWRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uX19oZWFkZXIuYy1kZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbl9faGVhZGVyIHsgLyogWzZdICovXG4gICAgICAgIHBhZGRpbmctbGVmdDogJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWhlYWRlci1zcGFjaW5nLWxlZnQ7XG5cbiAgICAgICAgKiArICYge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWhlYWRlci1ib3JkZXItdG9wO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmMtZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb25fX3RpdGxlLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdGl0bGUtbGFiZWwtZm9udC1zaXplXG4gICAgICAgICk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdGl0bGUtbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdGl0bGUtbGFiZWwtdGV4dC10cmFuc2Zvcm07XG4gICAgICAgIGNvbG9yOiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdGl0bGUtbGFiZWwtY29sb3I7XG4gICAgfVxuXG4gICAgLmMtZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb25fX3RpdGxlLXZhbHVlIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdGl0bGUtdmFsdWUtZm9udC1zaXplXG4gICAgICAgICk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdGl0bGUtdmFsdWUtZm9udC13ZWlnaHQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdGl0bGUtdmFsdWUtdGV4dC10cmFuc2Zvcm07XG4gICAgICAgIGNvbG9yOiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdGl0bGUtdmFsdWUtY29sb3I7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi10aXRsZS12YWx1ZS1tYXJnaW4tdG9wLXJlc3BvbnNpdmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYy1kZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbl9fY29udGVudCxcbiAgICAuYy1kZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbl9faXRlbS0tdG90YWwge1xuICAgICAgICBwYWRkaW5nLXRvcDogJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWNvbnRlbnQtc3BhY2luZy10b3A7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi1jb250ZW50LXNwYWNpbmctcmlnaHQ7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tY29udGVudC1zcGFjaW5nLWJvdHRvbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tY29udGVudC1zcGFjaW5nLWxlZnQ7XG4gICAgfVxuXG4gICAgLmMtZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb25fX2l0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyAvKiBbMl0gKi9cbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgLyogWzJdICovXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgLyogWzJdICovXG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyAvKiBbMl0gKi9cbiAgICAgICAgbWFyZ2luLXRvcDogMDsgLyogWzNdICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IC8qIFszXSAqL1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgLyogWzRdICovXG4gICAgICAgIH1cblxuICAgICAgICAmICsgJiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24taXRlbS1zcGFjaW5nLXZlcnRpY2FsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgICAgIC5jLWRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uX19pdGVtX19sYWJlbCB7XG4gICAgICAgICAgICBjb2xvcjogaWYoJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWl0ZW0tbGFiZWwtY29sb3ItcmVzZXQsIGluaGVyaXQsIG51bGwpOyAvKiBbN10gKi9cbiAgICAgICAgfVxuXG4gICAgICAgICAgICAuYy1kZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbl9faXRlbV9fbGFiZWwtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAgICAgICAgICRmb250LXNpemU6ICRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi1pdGVtLWxhYmVsLWZvbnQtc2l6ZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi1pdGVtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24taXRlbS1sYWJlbC10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWl0ZW0tbGFiZWwtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLWRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uX19pdGVtX19sYWJlbC1ub3RlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWl0ZW0tbm90ZS1mb250LXNpemVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24taXRlbS1ub3RlLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24taXRlbS1ub3RlLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24taXRlbS1ub3RlLWNvbG9yO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWl0ZW0tbm90ZS1tYXJnaW4tYm90dG9tLXJlc3BvbnNpdmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIC5jLWRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uX19pdGVtX192YWx1ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24taXRlbS12YWx1ZS1mb250LXNpemVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWl0ZW0tdmFsdWUtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWl0ZW0tdmFsdWUtdGV4dC10cmFuc2Zvcm07XG4gICAgICAgICAgICBjb2xvcjogJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWl0ZW0tdmFsdWUtY29sb3I7XG4gICAgICAgIH1cblxuICAgIC5jLWRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uX19pdGVtLS10b3RhbCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdG90YWwtcGFkZGluZy10b3A7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdG90YWwtcGFkZGluZy1ib3R0b207XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi10b3RhbC1iYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgICAgIC5jLWRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uX19pdGVtX19sYWJlbCB7XG4gICAgICAgIH1cblxuICAgICAgICAgICAgLmMtZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb25fX2l0ZW1fX2xhYmVsLXRleHQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdG90YWwtbGFiZWwtZm9udC1zaXplXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLXRvdGFsLWxhYmVsLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdG90YWwtbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi10b3RhbC1sYWJlbC10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLXRvdGFsLWxhYmVsLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYy1kZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbl9faXRlbV9fbGFiZWwtbm90ZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi10b3RhbC1ub3RlLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIC5jLWRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uX19pdGVtX192YWx1ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdG90YWwtdmFsdWUtZm9udC1zaXplXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi10b3RhbC12YWx1ZS1mb250LWZhbWlseTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdG90YWwtdmFsdWUtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLXRvdGFsLXZhbHVlLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICAgICAgY29sb3I6ICRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi10b3RhbC12YWx1ZS1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0RFU0NSSVBUSU9OLUxJU1QtQUNDT1JESU9OIChTZXR0aW5ncylcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tYWNjb3JkaW9uLWJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkQ09MT1ItQk9SREVSICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWhlYWRlci1ib3JkZXItdG9wOiAgICAgICAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tYWNjb3JkaW9uLWJvcmRlci1ib3R0b20gIWRlZmF1bHQ7XG5cbiRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi10aXRsZS12YWx1ZS1mb250LXdlaWdodDogJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xEICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWl0ZW0tdmFsdWUtZm9udC13ZWlnaHQ6ICAkZGVzY3JpcHRpb24tbGlzdC1hY2NvcmRpb24tdGl0bGUtdmFsdWUtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG5cbiRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi1pdGVtLWxhYmVsLWZvbnQtd2VpZ2h0OiAgJEdMT0JBTC1GT05ULVdFSUdIVC1MSUdIVCAhZGVmYXVsdDtcblxuJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLWl0ZW0tc3BhY2luZy12ZXJ0aWNhbDogICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG5cbiRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi10b3RhbC1sYWJlbC1mb250LXNpemU6ICAgJEZTMSAhZGVmYXVsdDtcbiRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi10b3RhbC12YWx1ZS1mb250LXNpemU6ICAgJGRlc2NyaXB0aW9uLWxpc3QtYWNjb3JkaW9uLXRvdGFsLWxhYmVsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuLy8gUmVzcG9uc2l2ZSBmb250IHNpemUgb3B0LW91dC5cbiRkZXNjcmlwdGlvbi1saXN0LWFjY29yZGlvbi10aXRsZS1sYWJlbC1mb250LXNpemU6IChcbiAgICBudWxsOiBtYXAtZ2V0KCRGUzAsIG51bGwpLFxuKSAhZGVmYXVsdDtcbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgI05PVElGSUNBVElPTi1DRU5URVIgKFNldHRpbmdzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRub3RpZmljYXRpb24tY2VudGVyLXRvZ2dsZS1iYWRnZS10cmFuc2Zvcm06ICAgICAgICAgIHRyYW5zbGF0ZSgtODUlLCAtNTAlKSAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLXRvZ2dsZS1zcGFjaW5nLWxlZnQ6ICAgICAgICAgICAgIDAgIWRlZmF1bHQ7IC8vIHNwYWNpbmcgY3JlYXRlZCB2aXN1YWxseSB2aWEgc2l6ZVxuXG4kbm90aWZpY2F0aW9uLWNlbnRlci10b2dnbGUtaWNvbi1jb2xvcjogICAgICAgICAgICAgICBpbmhlcml0ICFkZWZhdWx0O1xuXG4kbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAkQ09MT1ItQk9SREVSICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtYm94LXNoYWRvdzogICAgICAgICAgICAgICAgJERST1AtU0hBRE9XLVhMICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgJEdMT0JBTC1CT1JERVItUkFESVVTICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1SRUdVTEFSICFkZWZhdWx0O1xuXG4kbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1oZWFkZXItYmFja2dyb3VuZDogICAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1oZWFkZXItY29sb3I6ICAgICAgICAgICAgICAkQ09MT1ItQkFTRS1URVhUICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtaGVhZGVyLWJvcmRlci1jb2xvcjogICAgICAgJENPTE9SLUJPUkRFUiAhZGVmYXVsdDtcblxuJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtaGVhZGluZy1mb250LXNpemU6ICAgICAgICAgJEZTMiAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLWhlYWRpbmctZm9udC13ZWlnaHQ6ICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0taGVhZGluZy1yZWFkLWZvbnQtd2VpZ2h0OiAgICRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLWhlYWRpbmctZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG5cbiRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tb3ZlcmxheS1jb2xvcjogICAgICAgICAgICAgICRDT0xPUi1TVVJGQUNFLVBSSU1BUlkgIWRlZmF1bHQ7XG5cbiRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULUxBUkdFICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG5cbiRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWw6ICRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsICFkZWZhdWx0O1xuXG4kbm90aWZpY2F0aW9uLWNlbnRlci1pdGVtLXN0YXR1cy1wb3NpdGlvbi10b3A6ICAgICAgICAoJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1wYWRkaW5nLXZlcnRpY2FsICsgMTBweCkgIWRlZmF1bHQ7IC8vIEFsaWduIHdpdGggZmlyc3QgbGluZVxuJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1zdGF0dXMtcG9zaXRpb24tbGVmdDogICAgICAgJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1wYWRkaW5nLWhvcml6b250YWwgIWRlZmF1bHQ7XG5cbiRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICRDT0xPUi1CT1JERVIgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNlbnRlci1pdGVtLW1hcmstcmVhZC1mb250LXNpemU6ICAgICAgICAkRlMtMSAhZGVmYXVsdDtcblxuJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1jbG9zZS1wb3NpdGlvbi10b3A6ICAgICAgICAgJF9fU0tPREEtU1BBQ0lORy1TVEFUSUMtMTJfXyAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tY2xvc2UtcG9zaXRpb24tcmlnaHQ6ICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1jbG9zZS1wYWRkaW5nOiAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcblxuJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1jbG9zZS1pY29uLXNpemU6ICAgICAgICAgICAgaWNvbi1zaXplKHh4c21hbGwpICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1jbG9zZS1jb2xvcjogICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcblxuJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS10aW1lc3RhbXAtY29sb3I6ICAgICAgICAgICAgJENPTE9SLU9OLVNVUkZBQ0UtNTAwICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS10aW1lc3RhbXAtZm9udC13ZWlnaHQ6ICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1SRUdVTEFSICFkZWZhdWx0O1xuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAjTk9USUZJQ0FUSU9OLUNFTlRFUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRub3RpZmljYXRpb24tY2VudGVyLWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVBBR0UtSEVBRC1CUkVBS1BPSU5UICFkZWZhdWx0O1xuXG4kbm90aWZpY2F0aW9uLWNlbnRlci10b2dnbGUtaWNvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtbm90aWZpY2F0aW9uKSAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLXRvZ2dsZS1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uLXNpemUoJEdMT0JBTC1QQUdFLUhFQUQtTU9EVUxFLUlDT04tU0laRSkgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNlbnRlci10b2dnbGUtaWNvbi1zaXplLWF0LWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLXRvZ2dsZS1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG5cbiRub3RpZmljYXRpb24tY2VudGVyLXRvZ2dsZS1zcGFjaW5nLWxlZnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLXRvZ2dsZS1zcGFjaW5nLXJpZ2h0LWF0LWJyZWFrcG9pbnQ6ICAgICAgICAgICAoJGJhZGdlLXNpemUgKiAwLjUpICFkZWZhdWx0O1xuXG4kbm90aWZpY2F0aW9uLWNlbnRlci10b2dnbGUtYmFkZ2UtcG9zaXRpb24tdG9wOiAgICAgICAgICAgICAgICAgICAgNTAlICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItdG9nZ2xlLWJhZGdlLXBvc2l0aW9uLWxlZnQ6ICAgICAgICAgICAgICAgICAgIDEwMCUgIWRlZmF1bHQ7XG4vLyBPZmZzZXQgY2FuIGJlIGN1c3RvbSAoXCJtYWdpYyBudW1iZXJzXCIpIGFzIGl0IGRlcGVuZHMgb24gdGhlIGNvbnRlbnQgb2YgdGhlIG5vdGlmaWNhdGlvbiBpY29uIG9uIGhvdyBtdWNoIGlzIGNvdmVyZWQuXG4kbm90aWZpY2F0aW9uLWNlbnRlci10b2dnbGUtYmFkZ2UtdHJhbnNmb3JtOiAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlKC0yNSUsIC01MCUpICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItdG9nZ2xlLWJhZGdlLWhvcml6b250YWwtb2Zmc2V0OiAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNlbnRlci10b2dnbGUtYmFkZ2UtdmVydGljYWwtb2Zmc2V0OiAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLXRvZ2dsZS1iYWRnZS1ob3Jpem9udGFsLW9mZnNldC1hdC1icmVha3BvaW50OiBudWxsICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItdG9nZ2xlLWJhZGdlLXZlcnRpY2FsLW9mZnNldC1hdC1icmVha3BvaW50OiAgIG51bGwgIWRlZmF1bHQ7XG5cbiRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLXN0YXRlLWV4cGFuZGVkOiAgICAgICAgICAgICAgICAgICAgICAgICBcIlthcmlhLWhpZGRlbj0nZmFsc2UnXVwiICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtei1pbmRleC1hdC1icmVha3BvaW50OiAgICAgICAgICAgICAgICAgIHooXCJub3RpZmljYXRpb25zXCIpICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtcG9zaXRpb24tdG9wOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRzaXRlLW5hdi1kcm9wZG93bi10b3AgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1zcGFjaW5nLXRvcDogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbi8vIFVzZSBhIGZvbnQgc2l6ZSByZWxhdGl2ZSB1bml0IGxpa2UgYGVtYC4gVGhlIHdpZHRoIHNob3VsZCBiZSBkZXBlbmRlbnQgb24gdGhlIGZvbnQgc2l6ZSBzbyB0aGF0IGxpbmUgbGVuZ3RocyAoYnV0IG5vdFxuLy8gdGhlIGV4YWN0IHdpZHRoIGluIGBweGApIHNob3VsZCBiZSBzaW1pbGFyIGZvciBkaWZmZXJlbnQgYnJhbmRzLlxuJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM4ZW0gIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1tYXgtd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLW1heC1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxjKDEwMHZoIC0gI3skR0xPQkFMLVBBR0UtSEVBRC1IRUlHSFR9IC0gODBweCkgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRlMtMiAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFLUJBQ0tHUk9VTkQgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLUJPWC1TSEFET1cgIWRlZmF1bHQ7XG5cbiRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLWhlYWRlci1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVBBR0UtSEVBRC1IRUlHSFQtQVQtQlJFQUtQT0lOVCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAkcGFnZS13cmFwLXBhZGRpbmctaG9yaXpvbnRhbCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLWhlYWRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1oZWFkZXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgJENPTE9SLVBBTEUgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1oZWFkZXItYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtaGVhZGluZy1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICRGUzQgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1oZWFkaW5nLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtY2xvc2UtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1jbG9zZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLWNsb3NlLWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtY2xvc2UtaWNvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldC1pY29uKHNlbWFudGljLWNsb3NlKSAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLWNsb3NlLWljb24tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtY2xvc2UtaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1jbG9zZS1pY29uLWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuLy8gTWFnaWMgbnVtYmVyIGJlY2F1c2Ugd2UgZG9u4oCZdCBoYXZlIGEgZ2xvYmFsIHZhcmlhYmxlIGZvciB0aGlzLlxuJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1pbml0aWFsLXZlcnRpY2FsLW9mZnNldC1hdC1icmVha3BvaW50OiAgIC0oMzBweCkgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNlbnRlci1pdGVtLXRyYW5zaXRpb246ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1UUkFOU0lUSU9OICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULUxBUkdFICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1jaGlsZC1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItU1VCVExFICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDFweCBzb2xpZCAkbm90aWZpY2F0aW9uLWNlbnRlci1pdGVtLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1vdmVybGF5LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1QQUxFICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1vdmVybGF5LXRyYW5zaXRpb246ICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtVFJBTlNJVElPTiAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tc3RhdHVzLXBvc2l0aW9uLXRvcDogICAgICAgICAgICAgICAgICAgICAoJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1wYWRkaW5nLXZlcnRpY2FsICsgJElORElDQVRPUi1ET1QtU0laRSkgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNlbnRlci1pdGVtLXN0YXR1cy1wb3NpdGlvbi1sZWZ0OiAgICAgICAgICAgICAgICAgICAgKCRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsIC0gKCRJTkRJQ0FUT1ItRE9ULVNJWkUgKyAkSU5ESUNBVE9SLURPVC1TUEFDSU5HKSkgIWRlZmF1bHQ7XG5cbiRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0taGVhZGluZy1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAkRlMwICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1oZWFkaW5nLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSEVBRElORy1CQVNFLUxJTkUtSEVJR0hUICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1oZWFkaW5nLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0taGVhZGluZy1yZWFkLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNlbnRlci1pdGVtLWhlYWRpbmctbGluay10ZXh0LWRlY29yYXRpb246ICAgICAgICAgICAgbm9uZSAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0taGVhZGluZy1saW5rLWJvcmRlci1zdHlsZTogICAgICAgICAgICAgICBub25lICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1oZWFkaW5nLXNwYWNpbmctcmlnaHQ6ICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tY2xvc2UtcGFkZGluZzogICAgICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNlbnRlci1pdGVtLWNsb3NlLXBvc2l0aW9uLXRvcDogICAgICAgICAgICAgICAgICAgICAgY2FsYygjeyRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tcGFkZGluZy12ZXJ0aWNhbH0gLSAjeyRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tY2xvc2UtcGFkZGluZ30pICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1jbG9zZS1wb3NpdGlvbi1yaWdodDogICAgICAgICAgICAgICAgICAgIGZsb29yKCRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsICogMC41KSAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tY2xvc2UtaWNvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1jbG9zZSkgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNlbnRlci1pdGVtLWNsb3NlLWljb24tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKHhzbWFsbCkgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNlbnRlci1pdGVtLWNsb3NlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuXG4kbm90aWZpY2F0aW9uLWNlbnRlci1pdGVtLXRpbWVzdGFtcC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgJEZTLTMgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNlbnRlci1pdGVtLXRpbWVzdGFtcC1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tdGltZXN0YW1wLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kbm90aWZpY2F0aW9uLWNlbnRlci1pdGVtLW1hcmstcmVhZC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgJEZTLTIgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIFBvc2l0aW9uIHRoZSBOb3RpZmljYXRpb24gQ2VudGVyIHRvZ2dsZSBpbiB0aGUgaGVhZGVyLlxuICogWzJdIFNwYWNpbmcgdG8gb3RoZXIgaGVhZGVyIGl0ZW1zIChlLmcuIHRoZSBjb250ZXh0IGJhcikuXG4gKiBbM10gQWRkIHNwYWNlIGZvciB0aGUgYmFkZ2UgaW4gc21hbGxlciB2aWV3cG9ydHMgc28gdGhhdCBpdCB3aWxsIG5vdCBvdmVybGFwXG4gKiAgICAgdGhlIG5hdmlnYXRpb24gdG9nZ2xlIOKAnGhhbWJ1cmdlcuKAnSBpY29uLlxuICogWzRdIFJlbW92ZSB1bndhbnRlZCB2ZXJ0aWNhbCBzcGFjZSBieSBtYWtpbmcgdGhlIGljb24gYSBibG9jayBlbGVtZW50LlxuICogWzVdIFBvc2l0aW9uIHRoZSBiYWRnZSBhYnNvbHV0ZWx5IGluc2lkZSB0aGUgdG9nZ2xlLlxuICogWzZdIFNoaWZ0IHRoZSBiYWRnZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBpZiBuZWNlc3NhcnkuIFRoaXMgY2FuIGFsc28gYmVcbiAqICAgICBzZXQgc2VwYXJhdGVseSBmb3Igc21hbGxlciB2aWV3cG9ydHMuXG4gKiBbN10gQWRkIHNoYWRvdyB0byB0aGUgYm90dG9tIG9yIHRvcCBpZiBjb250ZW50IGlzIG91dHNpZGUgb2YgdGhlIHZpZXdwb3J0LlxuICogWzhdIE1ha2UgcGFuZWwgc2Nyb2xsYWJsZS5cbiAqIFs5XSBTZXQgcGFuZWwgYHotaW5kZXhgIHRvIG92ZXJsYXkgb3RoZXIgZWxlbWVudHMgKGUuZy4gVlc2IG5hdmlnYXRpb24gbGF5ZXJzKS5cbiAqIFsxMF0gRmFkZSBwYW5lbCBpbiB3aXRoIGEgc21vb3RoIHRyYW5zaXRpb24gaW4gc21hbGwgdmlld3BvcnRzLlxuICogICAgICBgcG9pbnRlci1ldmVudHNgIGFyZSBkaXNhYmxlZCBpbiB0aGUgY29sbGFwc2VkIHN0YXRlLlxuICogWzExXSBQdXNoIHRoZSBmaXJzdCBpdGVtIGRvd24gYnkgdGhlIGhlaWdodCBvZiB0aGUgZml4ZWQgcG9zaXRpb25lZCBwYW5lbFxuICogICAgICBoZWFkaW5nLlxuICogWzEyXSBGaXhhdGUgdGhlIHBhbmVsIGhlYWRlciB0byB0aGUgdG9wIGFuZCBpbmNyZWFzZSBgei1pbmRleGAgc28gaXQgYWx3YXlzXG4gKiAgICAgIHN0YXlzIGluIGZyb250IG9mIHRoZSBwYW5lbCBpdGVtcy5cbiAqIFsxM10gU2V0IHBhbmVsIGhlYWRlciBwYWRkaW5nIHRvIGEgcmVzcG9uc2l2ZSBtYXAgb3IgZml4ZWQgdmFsdWVcbiAqICAgICAgKGRlZmF1bHQgaXMgYCRwYWdlLXdyYXAtcGFkZGluZy1ob3Jpem9udGFsYClcbiAqIFsxNF0gSW5jcmVhc2Ugc3BlY2lmaWNpdHkgdG8gYWxsb3cgYnV0dG9uIHN0eWxlcyB0byBiZSBvdmVyd3JpdHRlbi5cbiAqIFsxNV0gRGlzcGxheSBhbGwgaXRlbXMgYmVsb3cgZWFjaCBvdGhlciwgbm8gbWF0dGVyIGlmIHRoZXkgYXJlIGJsb2NrIG9yXG4gKiAgICAgIGlubGluZSBlbGVtZW50cy5cbiAqIFsxNl0gU2V0IHNhbWUgc3BhY2luZ3MgYmV0d2VlbiBpbm5lciBpdGVtIGVsZW1lbnRzLlxuICogWzE3XSBBbmltYXRlIHBhbmVsIGl0ZW1zIGluIHdpdGggYSBzbW9vdGggdHJhbnNpdGlvbiBpbiBzbWFsbCB2aWV3cG9ydHMuXG4gKiBbMThdIFBvc2l0aW9uIHRoZSBzdGF0dXMgcG9pbnQgdmVydGljYWxseSBjZW50ZXJlZCB0byB0aGUgZmlyc3QgbGluZSBvZiB0aGVcbiAqICAgICAgYXJ0aWNsZSBoZWFkaW5nIGJ5IGRpdmlkaW5nIHRoZSByZXNwb25zaXZlIGZvbnQgc2l6ZSBvZiB0aGUgaGVhZGluZyBpblxuICogICAgICBoYWxmIGNvbnNpZGVyaW5nIGl0cyBsaW5lIHNwYWNpbmcuXG4gKiBbMTldIENoYW5nZSBoZWFkaW5nIGBmb250LXdlaWdodGAgZm9yIHJlYWQgaXRlbXMuXG4gKiBbMjBdIFJlbW92ZSBib3R0b20gbWFyZ2luIG9mIGxhc3QgY2hpbGQgZWxlbWVudCAoZS5nLiBhIHBhcmFncmFwaCkuXG4gKiBbMjFdIE92ZXJ3cml0ZSBgLmMtYnRuYCBmb250IHNpemUuXG4gKiBbMjJdIFB1c2ggbGluayB0byB0aGUgbGVmdCBpbiBmbGV4Ym94IGNvbnRleHQgZm9yIGJyYW5kcyAoVlc2KSB0aGF0IHVzZSBhXG4gKiAgICAgIGJvcmRlciBhcyBsaW5rIGRlY29yYXRpb24uXG4gKiBbMjNdIFNob3cgaXRlbSBvdmVybGF5IG9uIGhvdmVyaW5nL2ZvY3VzaW5nIHRoZVxuICogICAgICBgLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9faXRlbV9fbWFyay1yZWFkLXRvZ2dsZWAgYnV0dG9uLlxuICovXG5cbi5jLW5vdGlmaWNhdGlvbi1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7IC8qIFsxXSAqL1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIFsxXSAqL1xuICAgIGhlaWdodDogMTAwJTsgLyogWzFdICovXG59XG5cbiAgICAuYy1ub3RpZmljYXRpb24tY2VudGVyX190b2dnbGUge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1idXR0b24oJHJlbW92ZS1mb2N1czogZmFsc2UpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIFs1XSAqL1xuICAgICAgICBtYXJnaW4tbGVmdDogJG5vdGlmaWNhdGlvbi1jZW50ZXItdG9nZ2xlLXNwYWNpbmctbGVmdDsgLyogWzJdICovXG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JG5vdGlmaWNhdGlvbi1jZW50ZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBpZigkbm90aWZpY2F0aW9uLWNlbnRlci10b2dnbGUtc3BhY2luZy1yaWdodC1hdC1icmVha3BvaW50LCAkbm90aWZpY2F0aW9uLWNlbnRlci10b2dnbGUtc3BhY2luZy1yaWdodC1hdC1icmVha3BvaW50LCBudWxsKTsgLyogWzNdICovXG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBpY29uLWZvbnQoJGRlZmF1bHRzOiBudWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAkbm90aWZpY2F0aW9uLWNlbnRlci10b2dnbGUtaWNvbi1zaXplLFxuICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogMVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRub3RpZmljYXRpb24tY2VudGVyLXRvZ2dsZS1pY29uO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IC8qIFs0XSAqL1xuICAgICAgICAgICAgY29sb3I6ICRub3RpZmljYXRpb24tY2VudGVyLXRvZ2dsZS1pY29uLWNvbG9yO1xuXG4gICAgICAgICAgICBAaWYgKCRub3RpZmljYXRpb24tY2VudGVyLXRvZ2dsZS1pY29uLXNpemUtYXQtYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRub3RpZmljYXRpb24tY2VudGVyLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogJG5vdGlmaWNhdGlvbi1jZW50ZXItdG9nZ2xlLWljb24tc2l6ZS1hdC1icmVha3BvaW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiBudWxsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgICAgIC5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX3RvZ2dsZV9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgYTExeS1oaWRkZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX3RvZ2dsZV9fYmFkZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyAvKiBbNV0gKi9cbiAgICAgICAgICAgIHRvcDogJG5vdGlmaWNhdGlvbi1jZW50ZXItdG9nZ2xlLWJhZGdlLXBvc2l0aW9uLXRvcDsgLyogWzVdICovXG4gICAgICAgICAgICBsZWZ0OiAkbm90aWZpY2F0aW9uLWNlbnRlci10b2dnbGUtYmFkZ2UtcG9zaXRpb24tbGVmdDsgLyogWzVdICovXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkbm90aWZpY2F0aW9uLWNlbnRlci10b2dnbGUtYmFkZ2UtdmVydGljYWwtb2Zmc2V0OyAvKiBbNl0gKi9cbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkbm90aWZpY2F0aW9uLWNlbnRlci10b2dnbGUtYmFkZ2UtaG9yaXpvbnRhbC1vZmZzZXQ7IC8qIFs2XSAqL1xuICAgICAgICAgICAgdHJhbnNmb3JtOiAkbm90aWZpY2F0aW9uLWNlbnRlci10b2dnbGUtYmFkZ2UtdHJhbnNmb3JtOyAvKiBbNV0gKi9cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JG5vdGlmaWNhdGlvbi1jZW50ZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6ICRub3RpZmljYXRpb24tY2VudGVyLXRvZ2dsZS1iYWRnZS12ZXJ0aWNhbC1vZmZzZXQtYXQtYnJlYWtwb2ludDsgLyogWzZdICovXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRub3RpZmljYXRpb24tY2VudGVyLXRvZ2dsZS1iYWRnZS1ob3Jpem9udGFsLW9mZnNldC1hdC1icmVha3BvaW50OyAvKiBbNl0gKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9fcGFuZWwge1xuICAgICAgICBAaW5jbHVkZSBzY3JvbGxhYmxlKCAvKiBbN10gKi9cbiAgICAgICAgICAgICRjb250YWluZXItaGVpZ2h0OiAxMDAlLFxuICAgICAgICAgICAgJGJnLWNvbG9yOiAgICAgICAgICRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLWJhY2tncm91bmQsXG4gICAgICAgICk7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLWZvbnQtc2l6ZSk7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvOyAvKiBbOF0gKi9cbiAgICAgICAgYm9yZGVyLXJhZGl1czogJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLWZvbnQtd2VpZ2h0O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPiN7JG5vdGlmaWNhdGlvbi1jZW50ZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAkbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1wb3NpdGlvbi10b3A7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtd2lkdGg7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLW1heC13aWR0aDtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6ICRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLW1heC1oZWlnaHQ7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1zcGFjaW5nLXRvcDtcbiAgICAgICAgICAgIGJvcmRlcjogaWYoJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtYm9yZGVyLWNvbG9yLCAxcHggc29saWQgJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtYm9yZGVyLWNvbG9yLCBudWxsKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLWJveC1zaGFkb3c7XG5cbiAgICAgICAgICAgICYjeyRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLXN0YXRlLWV4cGFuZGVkfSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skbm90aWZpY2F0aW9uLWNlbnRlci1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCR0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLXotaW5kZXgtYXQtYnJlYWtwb2ludDsgLyogWzldICovXG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogWzEwXSAqL1xuICAgICAgICAgICAgb3BhY2l0eTogMDsgLyogWzEwXSAqL1xuXG4gICAgICAgICAgICAmI3skbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1zdGF0ZS1leHBhbmRlZH0ge1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyAvKiBbMTBdICovXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTsgLyogWzEwXSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+IC5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX2l0ZW06Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtaGVhZGVyLWhlaWdodDsgLyogWzExXSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgICAgIC5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX3BhbmVsX19oZWFkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOyAvKiBbMTJdICovXG4gICAgICAgICAgICB6LWluZGV4OiAxOyAvKiBbMTJdICovXG4gICAgICAgICAgICB0b3A6IDA7IC8qIFsxMl0gKi9cbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLWhlYWRlci1oZWlnaHQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBpZigkbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1oZWFkZXItYm9yZGVyLWNvbG9yLCAxcHggc29saWQgJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtaGVhZGVyLWJvcmRlci1jb2xvciwgbnVsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1oZWFkZXItYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGNvbG9yOiAkbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1oZWFkZXItY29sb3I7XG5cbiAgICAgICAgICAgIEBpZiAoaXMtbWFwKCRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWwpKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcbiAgICAgICAgICAgICAgICAgICAgKFwicGFkZGluZy1yaWdodFwiLCAkbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsKSxcbiAgICAgICAgICAgICAgICAgICAgKFwicGFkZGluZy1sZWZ0XCIsICAkbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsKSxcbiAgICAgICAgICAgICAgICApOyAvKiBbMTNdICovXG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsOyAvKiBbMTNdICovXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsOyAvKiBbMTNdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPiN7JG5vdGlmaWNhdGlvbi1jZW50ZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYy1ub3RpZmljYXRpb24tY2VudGVyX19wYW5lbF9faGVhZGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1oZWFkaW5nLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtaGVhZGluZy1mb250LXdlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1jbGFzcywgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4gICAgICAgIC5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX3BhbmVsX19jbG9zZS5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX3BhbmVsX19jbG9zZS5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX3BhbmVsX19jbG9zZSB7IC8qIFsxNF0gKi9cbiAgICAgICAgICAgIEBpZiAoJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtY2xvc2UtZm9udC1zaXplKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtY2xvc2UtZm9udC1zaXplKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbG9yOiAkbm90aWZpY2F0aW9uLWNlbnRlci1wYW5lbC1jbG9zZS1jb2xvcjtcblxuICAgICAgICAgICAgLmMtYnRuX19pY29uIHtcbiAgICAgICAgICAgICAgICBAaWYgKCRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLWNsb3NlLWljb24tc2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgICRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLWNsb3NlLWljb24tc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogMFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtY2xvc2UtaWNvbi1jb2xvcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtY2xvc2UtaWNvbi1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBpY29uLWZvbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtY2xvc2UtaWNvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLWJ0bl9fdGV4dCB7IC8qIFsxNF0gKi9cbiAgICAgICAgICAgICAgICBjb2xvcjogJG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtY2xvc2UtY29sb3I7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRub3RpZmljYXRpb24tY2VudGVyLXBhbmVsLWNsb3NlLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cbiAgICAuYy1ub3RpZmljYXRpb24tY2VudGVyX19pdGVtIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAgICRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tZm9udC1zaXplLFxuICAgICAgICAgICAgJGFjY2VwdC1udWxsOiB0cnVlLFxuICAgICAgICApO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IC8qIFsxNV0gKi9cbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgLyogWzE1XSAqL1xuICAgICAgICBwYWRkaW5nOiAkbm90aWZpY2F0aW9uLWNlbnRlci1pdGVtLXBhZGRpbmctdmVydGljYWwgJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1wYWRkaW5nLWhvcml6b250YWw7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JG5vdGlmaWNhdGlvbi1jZW50ZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0taW5pdGlhbC12ZXJ0aWNhbC1vZmZzZXQtYXQtYnJlYWtwb2ludCk7IC8qIFsxN10gKi9cbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tdHJhbnNpdGlvbjsgLyogWzE3XSAqL1xuXG4gICAgICAgICAgICAuYy1ub3RpZmljYXRpb24tY2VudGVyX19wYW5lbCN7JG5vdGlmaWNhdGlvbi1jZW50ZXItcGFuZWwtc3RhdGUtZXhwYW5kZWR9ICYge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgLyogWzE3XSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgKyAuYy1ub3RpZmljYXRpb24tY2VudGVyX19pdGVtIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gYW55IGVsZW1lbnQgdGhhdCBoYXMgYSBwcmV2aW91cyBzaWJsaW5nXG4gICAgICAgID4gKiArICoge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1jaGlsZC1zcGFjaW5nOyAvKiBbMTZdICovXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbMTZdICovXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICAgICAuYy1ub3RpZmljYXRpb24tY2VudGVyX19pdGVtX19zdGF0dXMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAkbm90aWZpY2F0aW9uLWNlbnRlci1pdGVtLXN0YXR1cy1wb3NpdGlvbi10b3A7IC8qIFsxOF0gKi9cbiAgICAgICAgICAgIGxlZnQ6ICRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tc3RhdHVzLXBvc2l0aW9uLWxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuYy1ub3RpZmljYXRpb24tY2VudGVyX19pdGVtX19oZWFkaW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0taGVhZGluZy1mb250LXNpemUsICRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0taGVhZGluZy1saW5lLWhlaWdodCk7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1oZWFkaW5nLXNwYWNpbmctcmlnaHQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1oZWFkaW5nLWZvbnQtd2VpZ2h0O1xuXG4gICAgICAgICAgICAuYy1ub3RpZmljYXRpb24tY2VudGVyX19pdGVtLS1yZWFkICYge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkbm90aWZpY2F0aW9uLWNlbnRlci1pdGVtLWhlYWRpbmctcmVhZC1mb250LXdlaWdodDsgLyogWzE5XSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9faXRlbV9faGVhZGluZy1saW5rIHtcbiAgICAgICAgICAgIGJvcmRlci1zdHlsZTogJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1oZWFkaW5nLWxpbmstYm9yZGVyLXN0eWxlO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkbm90aWZpY2F0aW9uLWNlbnRlci1pdGVtLWhlYWRpbmctbGluay10ZXh0LWRlY29yYXRpb247XG4gICAgICAgIH1cblxuICAgICAgICAuYy1ub3RpZmljYXRpb24tY2VudGVyX19pdGVtX19ib2R5IHtcblxuICAgICAgICAgICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzIwXSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9faXRlbV9fdGltZXN0YW1wIHtcbiAgICAgICAgICAgIEBpZiAoJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS10aW1lc3RhbXAtZm9udC1zaXplKSB7XG4gICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkbm90aWZpY2F0aW9uLWNlbnRlci1pdGVtLXRpbWVzdGFtcC1mb250LXNpemUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tdGltZXN0YW1wLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgY29sb3I6ICRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tdGltZXN0YW1wLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9faXRlbV9fbWFyay1yZWFkLXRvZ2dsZSB7XG4gICAgICAgICAgICBAaWYgKCRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tbWFyay1yZWFkLWZvbnQtc2l6ZSkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tbWFyay1yZWFkLWZvbnQtc2l6ZSk7IC8qIFsyMV0gKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgLyogWzIyXSAqL1xuXG4gICAgICAgICAgICBAaWYgKCRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tb3ZlcmxheS1jb2xvcikge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUgeyAvKiBbMjNdICovXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbm90aWZpY2F0aW9uLWNlbnRlci1pdGVtLW92ZXJsYXktY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246ICRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tb3ZlcmxheS10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICAgICAgbWl4LWJsZW5kLW1vZGU6IGRhcmtlbjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICBtaXgtYmxlbmQtbW9kZTogZGFya2VuO1xuXG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxOyAvKiBbMjNdICovXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYy1ub3RpZmljYXRpb24tY29udGVudC1jZW50ZXJfX2l0ZW1fX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc2V0LWJ1dHRvbihcbiAgICAgICAgICAgICAgICAkcmV2b2x2ZXI6ICAgICB0cnVlLFxuICAgICAgICAgICAgICAgICRyZW1vdmUtZm9jdXM6IGZhbHNlLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1jbG9zZS1wb3NpdGlvbi10b3A7XG4gICAgICAgICAgICByaWdodDogJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1jbG9zZS1wb3NpdGlvbi1yaWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tY2xvc2UtcGFkZGluZztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpO1xuICAgICAgICAgICAgY29sb3I6ICRub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tY2xvc2UtY29sb3I7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1jbG9zZS1pY29uO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1jbG9zZS1pY29uLXNpemU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYy1ub3RpZmljYXRpb24tY29udGVudC1jZW50ZXJfX2l0ZW1fX2Nsb3NlLWxhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGExMXktaGlkZGVuKCk7XG4gICAgICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgI05PVElGSUNBVElPTi1DRU5URVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2tvZGEtbm90aWZpY2F0aW9uLWNlbnRlci1pdGVtLXBhZGRpbmctbGVmdDogICAgICAgICAgICAgICAgICAgICAoJG5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1wYWRkaW5nLWhvcml6b250YWwgKyAoJElORElDQVRPUi1ET1QtU0laRSArICRJTkRJQ0FUT1ItRE9ULVNQQUNJTkcpKSAhZGVmYXVsdDtcbiRza29kYS1ub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tYmFja2dyb3VuZC1yZWFkOiAgICAgICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRza29kYS1ub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tYmFja2dyb3VuZC11bnJlYWQ6ICAgICAgICAgICAgICAgICRDT0xPUi1TVVJGQUNFLVBSSU1BUlkgIWRlZmF1bHQ7XG5cbiRza29kYS1ub3RpZmljYXRpb24tY2VudGVyLWNsb3NlLWJhY2tncm91bmQtc2l6ZTogICAgICAgICAgICAgICAgICRCVVRUT04tSUNPTi1JTlRFUkFDVElPTi1TSVpFLVNNQUxMICFkZWZhdWx0O1xuXG4kc2tvZGEtbm90aWZpY2F0aW9uLWNlbnRlci1yZWFkLXRvZ2dsZS1idXR0b24tcGFkZGluZy12ZXJ0aWNhbDogICAkQlVUVE9OLVBBRERJTkctVkVSVElDQUwgIWRlZmF1bHQ7XG4kc2tvZGEtbm90aWZpY2F0aW9uLWNlbnRlci1yZWFkLXRvZ2dsZS1idXR0b24tcGFkZGluZy1ob3Jpem9udGFsOiAkQlVUVE9OLVBBRERJTkctVkVSVElDQUwgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIE92ZXJsYXkgb24gdG9nZ2xlLWhvdmVyIG5vdCBuZWVkZWQuIE92ZXJ3cml0ZSBkZWZhdWx0LlxuICogWzJdIENvbG9yaXplIGl0ZW0gYmFja2dyb3VuZFxuICogICAgIHdoaWxlIG1haW50YWluaW5nIHNjcm9sbC1zaGFkb3cgdmlzaWJpbGl0eSAoaXRlbSBvdmVybGF5KS5cbiAqIFsyYV0gVW5yZWFkIHN0YXR1cyAoZGVmYXVsdCkuXG4gKiBbMmJdIFJlYWQuIHN0YXR1cy5cbiAqIFszXSBEaXNhYmxlIHRvZ2dsZSBvdmVybGF5IHRvIHNob3cgaXRlbSBvdmVybGF5IChpdGVtIGJhY2tncm91bmQpLlxuICogWzRdIEltcGx5IFwicmVhZFwiIHN0YXR1cyBieSBob3ZlcmluZyB0b2dnbGUgZnJvbSBcInVucmVhZFwiLlxuICogICAgIFByb2dyZXNzaXZlIGVuaGFuY2VtZW50OlxuICogICAgIFVzZSBgOmhhc2Agc2VsZWN0b3IgdG8gY2hlY2sgZm9yIGNoaWxkIHN0YXRlIGFuZCBtb2RpZnkgb24gcGFyZW50IGxldmVsLlxuICogICAgIE5vbi1zdXBwb3J0aW5nIGJyb3dzZXJzIGRvIG5vdCBjaGFuZ2UgYmFja2dyb3VuZCBieSBob3ZlcmluZyB0b2dnbGUuXG4gKi9cbi5jLW5vdGlmaWNhdGlvbi1jZW50ZXIge1xufVxuXG4gICAgLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9faXRlbSB7XG5cbiAgICAgICAgJjpoYXMoLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9faXRlbV9fbWFyay1yZWFkLXRvZ2dsZTpob3Zlcikge1xuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRza29kYS1ub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tYmFja2dyb3VuZC1yZWFkOyAvKiBbNF0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9faXRlbS0tcmVhZCkge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2tvZGEtbm90aWZpY2F0aW9uLWNlbnRlci1pdGVtLXBhZGRpbmctbGVmdDtcblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuICAgICAgICAgICAgLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9faXRlbV9fbWFyay1yZWFkLXRvZ2dsZTpob3Zlcjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiB1bnNldDsgLyogWzNdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIFsyXSAqL1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihcbiAgICAgICAgICAgICAgICAkdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvcixcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNrb2RhLW5vdGlmaWNhdGlvbi1jZW50ZXItaXRlbS1iYWNrZ3JvdW5kLXVucmVhZDsgLyogWzJhXSAqL1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBtaXgtYmxlbmQtbW9kZTogZGFya2VuO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX2l0ZW0tLXJlYWQge1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRza29kYS1ub3RpZmljYXRpb24tY2VudGVyLWl0ZW0tYmFja2dyb3VuZC1yZWFkOyAvKiBbMmJdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9faXRlbV9fbWFyay1yZWFkLXRvZ2dsZSB7XG4gICAgICAgIHBhZGRpbmc6ICRza29kYS1ub3RpZmljYXRpb24tY2VudGVyLXJlYWQtdG9nZ2xlLWJ1dHRvbi1wYWRkaW5nLXZlcnRpY2FsICRza29kYS1ub3RpZmljYXRpb24tY2VudGVyLXJlYWQtdG9nZ2xlLWJ1dHRvbi1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgfVxuXG4gICAgLmMtbm90aWZpY2F0aW9uLWNvbnRlbnQtY2VudGVyX19pdGVtX19jbG9zZSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1pY29uLXN0YXRlcyhcbiAgICAgICAgICAgICRzaXplOiAkc2tvZGEtbm90aWZpY2F0aW9uLWNlbnRlci1jbG9zZS1iYWNrZ3JvdW5kLXNpemUsXG4gICAgICAgICk7XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cblxuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNDQVJEUy1TTElERVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AdXNlIFwic2FzczptYXRoXCIgYXMgKjtcblxuJGNhcmRzLXNsaWRlci1jYXJkLW9mZnNldC12ZXJ0aWNhbDogICAgICAgICAgICAkQ0FSRC1TSEFET1ctQkxVUi1SQURJVVMgIWRlZmF1bHQ7XG4kY2FyZHMtc2xpZGVyLWNhcmQtb2Zmc2V0LWhvcml6b250YWw6ICAgICAgICAgICRjYXJkcy1zbGlkZXItY2FyZC1vZmZzZXQtdmVydGljYWwgIWRlZmF1bHQ7XG4kY2FyZHMtc2xpZGVyLWNhcmQtZ3V0dGVyOiAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJGNhcmRzLXNsaWRlci1zZWxlY3Rvci1pbml0aWFsaXplZDogICAgICAgICAgICBcIi5pcy1pbml0aWFsaXplZFwiICFkZWZhdWx0O1xuJGNhcmRzLXNsaWRlci1lbmFibGUtb3ZlcmZsb3ctZmFkZTogICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRjYXJkcy1zbGlkZXItb3ZlcmZsb3ctZmFkZS1zaXplOiAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcbiRjYXJkcy1zbGlkZXItb3ZlcmZsb3ctZmFkZS1jb2xvcjogICAgICAgICAgICAgJENPTE9SLUJBU0UtQkFDS0dST1VORCAhZGVmYXVsdDtcbiRjYXJkcy1zbGlkZXItb3ZlcmZsb3ctZmFkZS1jb2xvci1hbHRlcm5hdGl2ZTogbWFwLWdldCgkQkFDS0dST1VORC1VVElMSVRJRVMsIFwiYWx0ZXJuYXRpdmVcIikgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIFRoZSBmbGlja2l0eSBzbGlkZXIgdXNlZCBmb3IgdGhpcyBjb21wb25lbnQgY3JlYXRlcyBhblxuICogICAgIGBvdmVyZmxvdzogaGlkZGVuYCB3aGljaCBjdXRzLW9mZiB0aGUgc2hhZG93IG9mIHRoZSBjYXJkcy4gQWRkaW5nIHRoZVxuICogICAgIHNhbWUgYW1vdW50IG9mIHBhZGRpbmcgYXMgdGhlIGJveC1zaGFkb3cgc3ByZWFkIG9mIHRoZSBjYXJkc1xuICogICAgIGNvbXBlbnNhdGVzIHRoaXMuXG4gKiBbMl0gU2V0IGVxdWFsIGNvbnRlbnQgaGVpZ2h0cyBmb3Igc2xpZGVycyBjZWxscy5cbiAqIFszXSBSZXNldCBkZWZhdWx0IGZsaWNraXR5IG5leHQvcHJldiBidXR0b24gc3R5bGVzLlxuICogWzRdIFNvZnQgZmFkZSBsZWZ0IGFuZCByaWdodCBvZiB0aGUgc2xpZGVyIHRvIHByZXZlbnQgYSBoYXJkIG92ZXJmbG93L2N1dG9mZi5cbiAqIFs1XSBTaG93IHNoYWRvdyBhYm92ZSBzbGlkZXMuXG4gKiBbNl0gQ29tcGVuc2F0ZSBndXR0ZXIuXG4gKi9cbi5jLWNhcmRzLXNsaWRlci1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oJHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHkpO1xuXG4gICAgb3BhY2l0eTogMDtcblxuICAgICYjeyRjYXJkcy1zbGlkZXItc2VsZWN0b3ItaW5pdGlhbGl6ZWR9IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICBAaWYgKCRjYXJkcy1zbGlkZXItZW5hYmxlLW92ZXJmbG93LWZhZGUpIHtcblxuICAgICAgICAvLyBAVE9ETzogZXh0cmFjdCBpbnRvIHJldXNhYmxlIGNvZGUgKG1peGluKSBmb3Igb3RoZXIgc2xpZGVyc1xuICAgICAgICAuZmxpY2tpdHktdmlld3BvcnQge1xuXG4gICAgICAgICAgICAvKiBbNF0gKi9cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDsgLyogWzVdICovXG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkY2FyZHMtc2xpZGVyLW92ZXJmbG93LWZhZGUtc2l6ZTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoJGNhcmRzLXNsaWRlci1vdmVyZmxvdy1mYWRlLWNvbG9yLCAxKSAwLCByZ2JhKCRjYXJkcy1zbGlkZXItb3ZlcmZsb3ctZmFkZS1jb2xvciwgMCkgMTAwJSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoJGNhcmRzLXNsaWRlci1vdmVyZmxvdy1mYWRlLWNvbG9yLCAwKSAwJSwgcmdiYSgkY2FyZHMtc2xpZGVyLW92ZXJmbG93LWZhZGUtY29sb3IsIDEpIDEwMCUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBbZGF0YS10aGVtZT1cImFsdGVybmF0aXZlXCJdICYge1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKCRjYXJkcy1zbGlkZXItb3ZlcmZsb3ctZmFkZS1jb2xvci1hbHRlcm5hdGl2ZSwgMSkgMCwgcmdiYSgkY2FyZHMtc2xpZGVyLW92ZXJmbG93LWZhZGUtY29sb3ItYWx0ZXJuYXRpdmUsIDApIDEwMCUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKCRjYXJkcy1zbGlkZXItb3ZlcmZsb3ctZmFkZS1jb2xvci1hbHRlcm5hdGl2ZSwgMCkgMCUsIHJnYmEoJGNhcmRzLXNsaWRlci1vdmVyZmxvdy1mYWRlLWNvbG9yLWFsdGVybmF0aXZlLCAxKSAxMDAlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuLmMtY2FyZHMtc2xpZGVyIHtcbiAgICBtYXJnaW4tbGVmdDogLSgkY2FyZHMtc2xpZGVyLWNhcmQtZ3V0dGVyKTsgLyogWzZdICovXG5cbiAgICAmLmZsaWNraXR5LXJlc2l6ZSB7XG5cbiAgICAgICAgLmMtY2FyZHMtc2xpZGVyX19pdGVtLFxuICAgICAgICAuYy1jYXJkcy1zbGlkZXJfX2NhcmQtd3JhcHBlcixcbiAgICAgICAgLmMtY2FyZCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7IC8qIFsyXSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuICAgIC8qKlxuICAgICAqIE9uIGxhcmdlIHNjcmVlbnMsIHRoZSBjYXJkcyBhcmUgc2hvd24gY29tcGxldGVseSAoNCBkZWZhdWx0IGNhcmRzIGFuZCA1XG4gICAgICogc21hbGwgY2FyZHMpLiBPbiBzbWFsbGVyIHNjcmVlbnMsIHRoZSBsYXN0IHZpc2libGUgY2FyZCBpcyBhbHdheXMgc2hvd25cbiAgICAgKiBoYWxmIHRvIGluZGljYXRlIHRvIHRoZSB1c2VyIHRoYXQgdGhlcmUgYXJlIG1vcmUgY2FyZHMgdG8gc2Nyb2xsIHRvLlxuICAgICAqL1xuXG4gICAgJGNhcmQtY291bnQtYnJlYWtwb2ludHM6IChcbiAgICAgICAgbnVsbDogNCxcbiAgICAgICAgXCJtXCI6ICAzLFxuICAgICAgICBcInNcIjogIDIsXG4gICAgICAgIFwieHNcIjogMSxcbiAgICApICFkZWZhdWx0O1xuXG4gICAgLmMtY2FyZHMtc2xpZGVyX19pdGVtIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkY2FyZHMtc2xpZGVyLWNhcmQtZ3V0dGVyO1xuXG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkY291bnQgaW4gJGNhcmQtY291bnQtYnJlYWtwb2ludHMge1xuICAgICAgICAgICAgJF93aWR0aDogcGVyY2VudGFnZShkaXYoMSwgJGNvdW50KSk7XG5cbiAgICAgICAgICAgIEBpZiAoJGJyZWFrcG9pbnQgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkX3dpZHRoO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICRfd2lkdGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWNhcmRzLXNsaWRlcl9fY2FyZC13cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZzogJGNhcmRzLXNsaWRlci1jYXJkLW9mZnNldC12ZXJ0aWNhbCAkY2FyZHMtc2xpZGVyLWNhcmQtb2Zmc2V0LWhvcml6b250YWw7IC8qIFsxXSAqL1xuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNUUkVFLVZJRVdcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJHRyZWUtdmlldy1icmVha3BvaW50OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMgIWRlZmF1bHQ7XG5cbiR0cmVlLXZpZXctaXRlbS1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHRyZWUtdmlldy1pdGVtLWJhY2tncm91bmQtY29sb3ItaG92ZXI6ICAgICAgICAgICAgICRDT0xPUi1QQUxFICFkZWZhdWx0O1xuJHRyZWUtdmlldy1pdGVtLWJhY2tncm91bmQtY29sb3Itc2VsZWN0ZWQ6ICAgICAgICAgICRDT0xPUi1ISUdITElHSFQgIWRlZmF1bHQ7XG4kdHJlZS12aWV3LWl0ZW0tYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDogICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kdHJlZS12aWV3LWl0ZW0tYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZC1zZWxlY3RlZDogJENPTE9SLVBBTEUgIWRlZmF1bHQ7XG4kdHJlZS12aWV3LWl0ZW0tYmFja2dyb3VuZC1jb2xvci1hY2NlbnQ6ICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR0cmVlLXZpZXctaXRlbS1iYWNrZ3JvdW5kLWNvbG9yLWFjY2VudC1hbHQ6ICAgICAgICBudWxsICFkZWZhdWx0O1xuJHRyZWUtdmlldy1pdGVtLWJhY2tncm91bmQtY29sb3ItYWNjZW50LWhvdmVyOiAgICAgIG51bGwgIWRlZmF1bHQ7XG4kdHJlZS12aWV3LWl0ZW0tYmFja2dyb3VuZC1jb2xvci1hY2NlbnQtYWx0LWhvdmVyOiAgbnVsbCAhZGVmYXVsdDtcbiR0cmVlLXZpZXctaXRlbS1iYWNrZ3JvdW5kLWNvbG9yLXRyYW5zaXRpb246ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICRHTE9CQUwtVFJBTlNJVElPTi1EVVJBVElPTiAkR0xPQkFMLVRSQU5TSVRJT04tVElNSU5HLUZVTkNUSU9OICFkZWZhdWx0O1xuXG4kdHJlZS12aWV3LWl0ZW0tYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgMXB4ICFkZWZhdWx0O1xuJHRyZWUtdmlldy1pdGVtLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CT1JERVIgIWRlZmF1bHQ7XG4kdHJlZS12aWV3LWl0ZW0tYm9yZGVyLXN0eWxlOiAgICAgICAgICAgICAgICAgICAgICAgc29saWQgIWRlZmF1bHQ7XG4kdHJlZS12aWV3LWl0ZW0tYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRyZWUtdmlldy1pdGVtLWJvcmRlci13aWR0aCAkdHJlZS12aWV3LWl0ZW0tYm9yZGVyLWNvbG9yICR0cmVlLXZpZXctaXRlbS1ib3JkZXItc3R5bGUgIWRlZmF1bHQ7XG4kdHJlZS12aWV3LWl0ZW0tZm9jdXMtb2Zmc2V0OiAgICAgICAgICAgICAgICAgICAgICAgLSgkR0xPQkFMLUZPQ1VTLVdJRFRIKSAhZGVmYXVsdDtcbiR0cmVlLXZpZXctaXRlbS1pbmRlbnRhdGlvbjogICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1MQVJHRSAhZGVmYXVsdDtcbiR0cmVlLXZpZXctaXRlbS1pbmRlbnRhdGlvbi1hdC1icmVha3BvaW50OiAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiR0cmVlLXZpZXctaXRlbS1zcGFjaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiR0cmVlLXZpZXctaXRlbS1zcGFjaW5nLXZlcnRpY2FsLWF0LWJyZWFrcG9pbnQ6ICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG5cbiR0cmVlLXZpZXctaWNvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1leHBhbmQpICFkZWZhdWx0O1xuJHRyZWUtdmlldy1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiR0cmVlLXZpZXctaWNvbi1jb2xvci1hY2NlbnQ6ICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kdHJlZS12aWV3LWljb24tY29sb3ItYWNjZW50LWFsdDogICAgICAgICAgICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJHRyZWUtdmlldy1pY29uLWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1JTkFDVElWRSAhZGVmYXVsdDtcbiR0cmVlLXZpZXctaWNvbi1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uLXNpemUoeHNtYWxsKSAhZGVmYXVsdDtcbiR0cmVlLXZpZXctaWNvbi10cmFuc2Zvcm0tY29sbGFwc2VkOiAgICAgICAgICAgICAgICByb3RhdGUoLTkwZGVnKSAhZGVmYXVsdDtcbiR0cmVlLXZpZXctaWNvbi10cmFuc2Zvcm0tZXhwYW5kZWQ6ICAgICAgICAgICAgICAgICByb3RhdGUoMCkgIWRlZmF1bHQ7XG4kdHJlZS12aWV3LWljb24tdHJhbnNmb3JtLW9yaWdpbjogICAgICAgICAgICAgICAgICAgY2VudGVyICFkZWZhdWx0O1xuJHRyZWUtdmlldy1pY29uLXNwYWNpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICR0cmVlLXZpZXctaXRlbS1zcGFjaW5nLXZlcnRpY2FsICFkZWZhdWx0O1xuJHRyZWUtdmlldy1pY29uLXNwYWNpbmctdmVydGljYWwtYXQtYnJlYWtwb2ludDogICAgICR0cmVlLXZpZXctaXRlbS1zcGFjaW5nLXZlcnRpY2FsLWF0LWJyZWFrcG9pbnQgIWRlZmF1bHQ7XG5cbiR0cmVlLXZpZXctaXRlbS1zdGF0ZS1leHBhbmRlZDogICAgICAgICAgICAgICAgICAgICBcIlthcmlhLWV4cGFuZGVkPSd0cnVlJ11cIiAhZGVmYXVsdDtcbiR0cmVlLXZpZXctaXRlbS1zdGF0ZS1jb2xsYXBzZWQ6ICAgICAgICAgICAgICAgICAgICBcIlthcmlhLWV4cGFuZGVkPSdmYWxzZSddXCIgIWRlZmF1bHQ7XG5cbiR0cmVlLXZpZXctdGl0bGUtZm9udC1mYW1pbHk6ICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHRyZWUtdmlldy10aXRsZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICRGUzAgIWRlZmF1bHQ7XG4kdHJlZS12aWV3LXRpdGxlLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcbiR0cmVlLXZpZXctdGl0bGUtdGV4dC1jb2xvci1hY2NlbnQ6ICAgICAgICAgICAgICAgICAkdHJlZS12aWV3LXRpdGxlLXRleHQtY29sb3IgIWRlZmF1bHQ7XG4kdHJlZS12aWV3LXRpdGxlLXRleHQtY29sb3ItYWNjZW50LWFsdDogICAgICAgICAgICAgJHRyZWUtdmlldy10aXRsZS10ZXh0LWNvbG9yICFkZWZhdWx0O1xuJHRyZWUtdmlldy10aXRsZS10ZXh0LWNvbG9yLWhvdmVyOiAgICAgICAgICAgICAgICAgICR0cmVlLXZpZXctdGl0bGUtdGV4dC1jb2xvciAhZGVmYXVsdDtcbiR0cmVlLXZpZXctdGl0bGUtdGV4dC1jb2xvci1zZWxlY3RlZDogICAgICAgICAgICAgICAkdHJlZS12aWV3LXRpdGxlLXRleHQtY29sb3IgIWRlZmF1bHQ7XG4kdHJlZS12aWV3LXRpdGxlLXRleHQtY29sb3ItZGlzYWJsZWQ6ICAgICAgICAgICAgICAgJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuXG4kdHJlZS12aWV3LXN1YnRpdGxlLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgJHRyZWUtdmlldy10aXRsZS1mb250LWZhbWlseSAhZGVmYXVsdDtcbiR0cmVlLXZpZXctc3VidGl0bGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAkdHJlZS12aWV3LXRpdGxlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiR0cmVlLXZpZXctc3VidGl0bGUtdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkdHJlZS12aWV3LXRpdGxlLXRleHQtY29sb3IgIWRlZmF1bHQ7XG4kdHJlZS12aWV3LXN1YnRpdGxlLXRleHQtY29sb3ItYWNjZW50OiAgICAgICAgICAgICAgJHRyZWUtdmlldy10aXRsZS10ZXh0LWNvbG9yLWFjY2VudCAhZGVmYXVsdDtcbiR0cmVlLXZpZXctc3VidGl0bGUtdGV4dC1jb2xvci1hY2NlbnQtYWx0OiAgICAgICAgICAkdHJlZS12aWV3LXRpdGxlLXRleHQtY29sb3ItYWNjZW50LWFsdCAhZGVmYXVsdDtcbiR0cmVlLXZpZXctc3VidGl0bGUtdGV4dC1jb2xvci1ob3ZlcjogICAgICAgICAgICAgICAkdHJlZS12aWV3LXRpdGxlLXRleHQtY29sb3ItaG92ZXIgIWRlZmF1bHQ7XG4kdHJlZS12aWV3LXN1YnRpdGxlLXRleHQtY29sb3Itc2VsZWN0ZWQ6ICAgICAgICAgICAgJHRyZWUtdmlldy10aXRsZS10ZXh0LWNvbG9yLXNlbGVjdGVkICFkZWZhdWx0O1xuJHRyZWUtdmlldy1zdWJ0aXRsZS10ZXh0LWNvbG9yLWRpc2FibGVkOiAgICAgICAgICAgICR0cmVlLXZpZXctdGl0bGUtdGV4dC1jb2xvci1kaXNhYmxlZCAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gV2UgbmVlZCB0byBjbGlwIHRoZSBob3Jpem9udGFsIGJvdW5kcyBhdCByb290IGxldmVsXG4gKiAgICAgdG8gY3V0IG9mZiB0aGUgcHNldWRvLWVsZW1lbnQgZnJvbSBbNV0uXG4gKiBbMl0gSGFuZGxlIHRoZSBjb2xsYXBzZSBhbmQgZXhwYW5kZWQgc3RhdGUgb2YgbmVzdGVkIGxpc3RzIHZpYSB0aGVcbiAqICAgICBgYXJpYS1leHBhbmRlZGAgYXR0cmlidXRlIGZyb20gdGhlIHBhcmVudCB0cmVlIGxpc3QgaXRlbS5cbiAqIFszXSBEaXNhYmxlIGZvY3VzIHN0eWxlcyBvbiB0aGUgZm9jdXNhYmxlIGVsZW1lbnQgYW5kIHBhc3MgdGhlbSBkb3duXG4gKiAgICAgdG8gdGhlIGNvbnRhaW5lZCB0cmVlLXZpZXcgYm9keS5cbiAqIFs0XSBPbmx5IGVuYWJsZSBwb2ludGVyIGZvciBleHBhbmRhYmxlIHRyZWUgbGlzdCBpdGVtcy5cbiAqIFs1XSBTdGF0ZSBpcyBoYW5kbGVkIHZpYSB0cmVlIGxpc3QgaXRlbSBwYXJlbnQgYnV0IHRoZSBzdHlsZXMgYXJlIGFwcGxpZWQgdG8gdGhlXG4gKiAgICAgYC5jLXRyZWUtdmlld19fYm9keWAgYW5kIGl0cyBgOjpiZWZvcmVgIHBzZXVkby1lbGVtZW50LiBUaGUgcHNldWRvLWVsZW1lbnRcbiAqICAgICBjYXJyaWVzIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgc3RhdGUgY29sb3JzLlxuICogWzZdIElmIHRoZSBwYXJlbnQgdHJlZSBsaXN0IGl0ZW0gcmVjZWl2ZXMgZm9jdXMsIGhvdmVyIG9yIGhhcyB0aGVcbiAqICAgICBgLmlzLXNlbGVjdGVkYCwgYC5pcy1hY2NlbnRlZGAgb3IgYC5pcy1hbHQtYWNjZW50ZWRgIGNsYXNzXG4gKiAgICAgc3R5bGUgdGhlIGVsZW1lbnQgYWNjb3JkaW5nbHkuXG4gKiBbN10gRGlzcGxheSB0aGUgdHJlZSB2aWV3IGljb24gYXMgYDo6YWZ0ZXJgIHBzZXVkby1lbGVtZW50IG9mIHRoZSBgLmMtdHJlZS12aWV3X19ib2R5YC5cbiAqIFs4XSBDaGFuZ2UgdGhlIHRyZWUgdmlldyBpY29uIGRlcGVuZGluZyBvbiB0aGUgcGFyZW50IHRyZWUgbGlzdCBpdGVtIHN0YXRlIGZyb20gWzJdLlxuICogWzldIFJlc2V0IGRlZmF1bHQgbGlzdCBzdHlsZXMuXG4gKiBbMTBdIE9mZnNldCB0aGUgaWNvbiBieSBpdHMgc2l0ZSB3aGljaCBpcyB0aGUgaXRlbeKAmXMgbWFyZ2luLlxuICogWzExXSBUaGUgcHNldWRvLWVsZW1lbnQgc3BhbnMgYWNyb3NzIHRoZSBkb3VibGUgb2YgdGhlIHZpZXdwb3J0IGFuZCBpcyBwdWxsZWQgYmFja1xuICogICAgICBieSB0aGUgd2lkdGggb2YgdGhlIHZpZXdwb3J0ICgtMTAwdncpIHRvIGJlIGluZGVwZW5kZW50IG9mIHBvc2l0aW9uIGNvbnRleHQgYW5kIG5lc3RpbmcuXG4gKiAgICAgIFRoZSBwc2V1ZG8tZWxlbWVudCBzaG91bGQgYWx3YXlzIGNvdmVyIHRoZSB3aG9sZSByb3cuXG4gKiBbMTJdIExvd2VyIHRoZSBwb3NpdGlvbmluZyBsYXllciB0byBtYWtlIHRoZSBwc2V1ZG8tZWxlbWVudCBmcm9tIFs1XSBhcHBlYXIgYmVsb3cgdGhlIHJvdyBjb250ZW50LlxuICogWzEzXSBJbmRlbnQgbmVzdGVkIHRyZWUgdmlldyBpdGVtcy5cbiAqL1xuXG4uYy10cmVlLXZpZXcge1xuICAgIG1hcmdpbjogMDsgLyogWzldICovXG4gICAgcGFkZGluZzogMDsgLyogWzldICovXG4gICAgbGlzdC1zdHlsZTogbm9uZTsgLyogWzldICovXG5cbiAgICAmLmlzLXRyZWUtdmlldy1yb290LW5vZGUge1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47IC8qIFsxXSAqL1xuICAgICAgICBib3JkZXItYm90dG9tOiAkdHJlZS12aWV3LWl0ZW0tYm9yZGVyO1xuICAgIH1cblxuICAgICN7JHRyZWUtdmlldy1pdGVtLXN0YXRlLWNvbGxhcHNlZH0gPiAmIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgLyogWzJdICovXG4gICAgfVxuXG4gICAgI3skdHJlZS12aWV3LWl0ZW0tc3RhdGUtZXhwYW5kZWR9ID4gJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyAvKiBbMl0gKi9cbiAgICB9XG5cbn1cblxuICAgIC5jLXRyZWUtdmlld19faXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIGRpc2FibGUtZm9jdXMoKTsgLyogWzNdICovXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICZbYXJpYS1leHBhbmRlZF0uaXMtaG92ZXJlZCB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7IC8qIFs0XSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJlthcmlhLWV4cGFuZGVkXS5pcy1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmICYgeyAvKiBbMTNdICovXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICR0cmVlLXZpZXctaXRlbS1pbmRlbnRhdGlvbjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JHRyZWUtdmlldy1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkdHJlZS12aWV3LWl0ZW0taW5kZW50YXRpb24tYXQtYnJlYWtwb2ludDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtdHJlZS12aWV3X19ib2R5IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy10b3A6ICR0cmVlLXZpZXctaXRlbS1zcGFjaW5nLXZlcnRpY2FsO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHRyZWUtdmlldy1pdGVtLXNwYWNpbmctdmVydGljYWw7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJHRyZWUtdmlldy1pdGVtLWluZGVudGF0aW9uO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyR0cmVlLXZpZXctYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICR0cmVlLXZpZXctaXRlbS1zcGFjaW5nLXZlcnRpY2FsLWF0LWJyZWFrcG9pbnQ7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHRyZWUtdmlldy1pdGVtLXNwYWNpbmctdmVydGljYWwtYXQtYnJlYWtwb2ludDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHRyZWUtdmlldy1pdGVtLWluZGVudGF0aW9uLWF0LWJyZWFrcG9pbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUgeyAvKiBbNV0gKi9cbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB6LWluZGV4OiAtMTsgLyogWzEyXSAqL1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogLTEwMHZ3OyAvKiBbMTFdICovXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAyMDB2dzsgLyogWzExXSAqL1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHRyZWUtdmlldy1pdGVtLWJvcmRlcjtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICR0cmVlLXZpZXctaXRlbS1iYWNrZ3JvdW5kLWNvbG9yLXRyYW5zaXRpb247XG4gICAgICAgIH1cblxuICAgICAgICAuYy10cmVlLXZpZXdfX2l0ZW0gPiAmOjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRyZWUtdmlldy1pdGVtLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAuYy10cmVlLXZpZXdfX2l0ZW06Zm9jdXMgPiAmIHsgLyogWzZdICovXG4gICAgICAgICAgICBAaW5jbHVkZSBmb2N1cy1zdHlsZXMoJG91dGxpbmUtb2Zmc2V0OiAkdHJlZS12aWV3LWl0ZW0tZm9jdXMtb2Zmc2V0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXRyZWUtdmlld19faXRlbS5pcy1ob3ZlcmVkID4gJjo6YmVmb3JlIHsgLyogWzZdICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdHJlZS12aWV3LWl0ZW0tYmFja2dyb3VuZC1jb2xvci1ob3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXRyZWUtdmlld19faXRlbS5pcy1zZWxlY3RlZCA+ICY6OmJlZm9yZSB7IC8qIFs2XSAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRyZWUtdmlldy1pdGVtLWJhY2tncm91bmQtY29sb3Itc2VsZWN0ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAuYy10cmVlLXZpZXdfX2l0ZW0uaXMtYWNjZW50ZWQgPiAmOjpiZWZvcmUgeyAvKiBbNl0gKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0cmVlLXZpZXctaXRlbS1iYWNrZ3JvdW5kLWNvbG9yLWFjY2VudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXRyZWUtdmlld19faXRlbS5pcy1hbHQtYWNjZW50ZWQgPiAmOjpiZWZvcmUgeyAvKiBbNl0gKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0cmVlLXZpZXctaXRlbS1iYWNrZ3JvdW5kLWNvbG9yLWFjY2VudC1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtY2xhc3MsIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuICAgICAgICAuYy10cmVlLXZpZXdfX2l0ZW0uaXMtc2VsZWN0ZWQuaXMtYWNjZW50ZWQgPiAmOjpiZWZvcmUsXG4gICAgICAgIC5jLXRyZWUtdmlld19faXRlbS5pcy1ob3ZlcmVkLmlzLWFjY2VudGVkID4gJjo6YmVmb3JlIHsgLyogWzZdICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdHJlZS12aWV3LWl0ZW0tYmFja2dyb3VuZC1jb2xvci1hY2NlbnQtaG92ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuYy10cmVlLXZpZXdfX2l0ZW0uaXMtc2VsZWN0ZWQuaXMtYWx0LWFjY2VudGVkID4gJjo6YmVmb3JlLFxuICAgICAgICAuYy10cmVlLXZpZXdfX2l0ZW0uaXMtaG92ZXJlZC5pcy1hbHQtYWNjZW50ZWQgPiAmOjpiZWZvcmUgeyAvKiBbNl0gKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0cmVlLXZpZXctaXRlbS1iYWNrZ3JvdW5kLWNvbG9yLWFjY2VudC1hbHQtaG92ZXI7XG4gICAgICAgIH1cbiAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuXG4gICAgICAgIC5jLXRyZWUtdmlld19faXRlbS5pcy1kaXNhYmxlZCA+ICY6OmJlZm9yZSB7IC8qIFs2XSAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRyZWUtdmlldy1pdGVtLWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtY2xhc3MsIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSAqL1xuICAgICAgICAuYy10cmVlLXZpZXdfX2l0ZW0uaXMtc2VsZWN0ZWQuaXMtZGlzYWJsZWQgPiAmOjpiZWZvcmUgeyAvKiBbNl0gKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0cmVlLXZpZXctaXRlbS1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkLXNlbGVjdGVkO1xuICAgICAgICB9XG4gICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuICAgICAgICAuYy10cmVlLXZpZXdfX2l0ZW0uaXMtdHJlZS12aWV3LXBhcmVudC1ub2RlID4gJiB7IC8qIFs3XSAqL1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCRkZWZhdWx0czogbnVsbCk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAkdHJlZS12aWV3LWljb24tc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAxXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCR0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0pO1xuXG4gICAgICAgICAgICAgICAgY29udGVudDogJHRyZWUtdmlldy1pY29uO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6ICR0cmVlLXZpZXctaWNvbi1zcGFjaW5nLXZlcnRpY2FsO1xuICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkdHJlZS12aWV3LWl0ZW0taW5kZW50YXRpb247XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkdHJlZS12aWV3LWl0ZW0taW5kZW50YXRpb247XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0oJHRyZWUtdmlldy1pdGVtLWluZGVudGF0aW9uKTsgLyogWzEwXSAqL1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46ICR0cmVlLXZpZXctaWNvbi10cmFuc2Zvcm0tb3JpZ2luO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdHJlZS12aWV3LWljb24tY29sb3I7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skdHJlZS12aWV3LWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAkdHJlZS12aWV3LWljb24tc3BhY2luZy12ZXJ0aWNhbC1hdC1icmVha3BvaW50O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJHRyZWUtdmlldy1pdGVtLWluZGVudGF0aW9uLWF0LWJyZWFrcG9pbnQ7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJHRyZWUtdmlldy1pdGVtLWluZGVudGF0aW9uLWF0LWJyZWFrcG9pbnQ7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtKCR0cmVlLXZpZXctaXRlbS1pbmRlbnRhdGlvbi1hdC1icmVha3BvaW50KTsgLyogWzEwXSAqL1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLmMtdHJlZS12aWV3X19pdGVtLmlzLWFjY2VudGVkID4gJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29sb3I6ICR0cmVlLXZpZXctaWNvbi1jb2xvci1hY2NlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuYy10cmVlLXZpZXdfX2l0ZW0uaXMtYWx0LWFjY2VudGVkID4gJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29sb3I6ICR0cmVlLXZpZXctaWNvbi1jb2xvci1hY2NlbnQtYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtdHJlZS12aWV3X19pdGVtLmlzLWRpc2FibGVkID4gJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29sb3I6ICR0cmVlLXZpZXctaWNvbi1jb2xvci1kaXNhYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXRyZWUtdmlld19faXRlbSN7JHRyZWUtdmlldy1pdGVtLXN0YXRlLWV4cGFuZGVkfSA+ICY6OmFmdGVyIHsgLyogWzhdICovXG4gICAgICAgICAgICB0cmFuc2Zvcm06ICR0cmVlLXZpZXctaWNvbi10cmFuc2Zvcm0tZXhwYW5kZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAuYy10cmVlLXZpZXdfX2l0ZW0jeyR0cmVlLXZpZXctaXRlbS1zdGF0ZS1jb2xsYXBzZWR9ID4gJjo6YWZ0ZXIgeyAvKiBbOF0gKi9cbiAgICAgICAgICAgIHRyYW5zZm9ybTogJHRyZWUtdmlldy1pY29uLXRyYW5zZm9ybS1jb2xsYXBzZWQ7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXRyZWUtdmlld19fdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkdHJlZS12aWV3LXRpdGxlLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkdHJlZS12aWV3LXRpdGxlLWZvbnQtZmFtaWx5O1xuXG4gICAgICAgIGNvbG9yOiAkdHJlZS12aWV3LXRpdGxlLXRleHQtY29sb3I7XG5cbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LWNsYXNzICovXG4gICAgICAgIC5jLXRyZWUtdmlld19faXRlbS5pcy1ob3ZlcmVkID4gLmMtdHJlZS12aWV3X19ib2R5ICYge1xuICAgICAgICAgICAgY29sb3I6ICR0cmVlLXZpZXctdGl0bGUtdGV4dC1jb2xvci1ob3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXRyZWUtdmlld19faXRlbS5pcy1zZWxlY3RlZCA+IC5jLXRyZWUtdmlld19fYm9keSAmIHtcbiAgICAgICAgICAgIGNvbG9yOiAkdHJlZS12aWV3LXRpdGxlLXRleHQtY29sb3Itc2VsZWN0ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAuYy10cmVlLXZpZXdfX2l0ZW0uaXMtYWNjZW50ZWQgPiAuYy10cmVlLXZpZXdfX2JvZHkgJiB7XG4gICAgICAgICAgICBjb2xvcjogJHRyZWUtdmlldy10aXRsZS10ZXh0LWNvbG9yLWFjY2VudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXRyZWUtdmlld19faXRlbS5pcy1hbHQtYWNjZW50ZWQgPiAuYy10cmVlLXZpZXdfX2JvZHkgJiB7XG4gICAgICAgICAgICBjb2xvcjogJHRyZWUtdmlldy10aXRsZS10ZXh0LWNvbG9yLWFjY2VudC1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAuYy10cmVlLXZpZXdfX2l0ZW0uaXMtZGlzYWJsZWQgPiAuYy10cmVlLXZpZXdfX2JvZHkgJiB7XG4gICAgICAgICAgICBjb2xvcjogJHRyZWUtdmlldy10aXRsZS10ZXh0LWNvbG9yLWRpc2FibGVkO1xuICAgICAgICB9XG4gICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuICAgIH1cblxuICAgIC5jLXRyZWUtdmlld19fc3VidGl0bGUge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkdHJlZS12aWV3LXN1YnRpdGxlLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkdHJlZS12aWV3LXN1YnRpdGxlLWZvbnQtZmFtaWx5O1xuXG4gICAgICAgIGNvbG9yOiAkdHJlZS12aWV3LXN1YnRpdGxlLXRleHQtY29sb3I7XG5cbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LWNsYXNzICovXG4gICAgICAgIC5jLXRyZWUtdmlld19faXRlbS5pcy1ob3ZlcmVkID4gLmMtdHJlZS12aWV3X19ib2R5ICYge1xuICAgICAgICAgICAgY29sb3I6ICR0cmVlLXZpZXctc3VidGl0bGUtdGV4dC1jb2xvci1ob3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXRyZWUtdmlld19faXRlbS5pcy1zZWxlY3RlZCA+IC5jLXRyZWUtdmlld19fYm9keSAmIHtcbiAgICAgICAgICAgIGNvbG9yOiAkdHJlZS12aWV3LXN1YnRpdGxlLXRleHQtY29sb3Itc2VsZWN0ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAuYy10cmVlLXZpZXdfX2l0ZW0uaXMtYWNjZW50ZWQgPiAuYy10cmVlLXZpZXdfX2JvZHkgJiB7XG4gICAgICAgICAgICBjb2xvcjogJHRyZWUtdmlldy1zdWJ0aXRsZS10ZXh0LWNvbG9yLWFjY2VudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXRyZWUtdmlld19faXRlbS5pcy1hbHQtYWNjZW50ZWQgPiAuYy10cmVlLXZpZXdfX2JvZHkgJiB7XG4gICAgICAgICAgICBjb2xvcjogJHRyZWUtdmlldy1zdWJ0aXRsZS10ZXh0LWNvbG9yLWFjY2VudC1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAuYy10cmVlLXZpZXdfX2l0ZW0uaXMtZGlzYWJsZWQgPiAuYy10cmVlLXZpZXdfX2JvZHkgJiB7XG4gICAgICAgICAgICBjb2xvcjogJHRyZWUtdmlldy1zdWJ0aXRsZS10ZXh0LWNvbG9yLWRpc2FibGVkO1xuICAgICAgICB9XG4gICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNDQUxMT1VUXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBVc2UgYSBjYWxsb3V0IHRvIGRpc3BsYXkgYSBwcm9taW5lbnQgbWVzc2FnZSB3aXRoIGEgY2FsbCB0byBhY3Rpb24uXG4gKi9cblxuLy8gQnJlYWtwb2ludFxuJGNhbGxvdXQtYnJlYWtwb2ludDogICAgICAgICAgICAgICAgICAgICAgIHhzICFkZWZhdWx0O1xuXG4vLyBDb2xvcnNcbiRjYWxsb3V0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kY2FsbG91dC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuXG4vLyBTcGFjaW5nXG4kY2FsbG91dC1zcGFjaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtTEFSR0UgIWRlZmF1bHQ7XG4kY2FsbG91dC1zcGFjaW5nLXZlcnRpY2FsLWF0LWJyZWFrcG9pbnQ6ICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kY2FsbG91dC1zcGFjaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWExBUkdFICFkZWZhdWx0O1xuJGNhbGxvdXQtc3BhY2luZy1ob3Jpem9udGFsLWF0LWJyZWFrcG9pbnQ6ICRjYWxsb3V0LXNwYWNpbmctdmVydGljYWwtYXQtYnJlYWtwb2ludCAhZGVmYXVsdDtcbiRjYWxsb3V0LWl0ZW0tc3BhY2luZzogICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4vLyBNZWRpYVxuJGNhbGxvdXQtbWVkaWEtbWFyZ2luLWJvdHRvbTogICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuXG4vLyBJbWFnZVxuJGNhbGxvdXQtaW1hZ2UtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgIDE0NHB4ICFkZWZhdWx0O1xuXG4vLyBUaXRsZVxuJGNhbGxvdXQtdGl0bGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICRHTE9CQUwtSEVBRElORy1INC1GT05ULVNJWkUgIWRlZmF1bHQ7XG4kY2FsbG91dC10aXRsZS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgJEdMT0JBTC1IRUFESU5HLUg0LUxJTkUtSEVJR0hUICFkZWZhdWx0O1xuJGNhbGxvdXQtdGl0bGUtc3BhY2luZy1ib3R0b206ICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIE1hZ2ljIG51bWJlciBkZWZpbmVkIGluIEFic3RyYWN0IHRvIGxpbWl0IHRoZSBoZWlnaHQgb2YgdGhlIGltYWdlLlxuICogWzJdIE1ha2UgdGhlIGltYWdlIGFsd2F5cyBmaXQgaW5zaWRlIHRoZSBlbGVtZW504oCZcyAvIGNvbnRhaW5lcuKAmXMgc2l6ZS5cbiAqIFszXSBTZXQgc3BhY2luZyBmb3IgZXZlcnkgZGlyZWN0IGNoaWxkIGVsZW1lbnQgb2YgdGhlIGNhbGxvdXRcbiAqICAgICBleGNlcHQgdGhlIGxhc3Qgb25lLiBMb3dlciB0aGUgc2VsZWN0b3Igc3BlY2lmaWNpdHkgdmlhIGA6d2hlcmVgXG4gKiAgICAgdG8gbWFrZSBpdCBvdmVycmlkZWFibGUgdmlhIG90aGVyIHNlbGVjdG9ycyAoc2VlIHRpdGxlIGFuZCBtZWRpYSkuXG4gKi9cbi5jLWNhbGxvdXQge1xuICAgIHBhZGRpbmc6ICRjYWxsb3V0LXNwYWNpbmctdmVydGljYWwgJGNhbGxvdXQtc3BhY2luZy1ob3Jpem9udGFsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FsbG91dC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGNvbG9yOiAkY2FsbG91dC1jb2xvcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRjYWxsb3V0LWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgcGFkZGluZzogJGNhbGxvdXQtc3BhY2luZy12ZXJ0aWNhbC1hdC1icmVha3BvaW50ICRjYWxsb3V0LXNwYWNpbmctaG9yaXpvbnRhbC1hdC1icmVha3BvaW50O1xuICAgIH1cblxuICAgID4gOndoZXJlKCogKyAqOm5vdCg6bGFzdC1jaGlsZCkpIHsgLyogWzNdICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRjYWxsb3V0LWl0ZW0tc3BhY2luZztcbiAgICB9XG5cbn1cblxuICAgIC5jLWNhbGxvdXRfX21lZGlhIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGNhbGxvdXQtbWVkaWEtbWFyZ2luLWJvdHRvbTtcbiAgICB9XG5cbiAgICAuYy1jYWxsb3V0X19pbWFnZSB7XG4gICAgICAgIGhlaWdodDogaW1wb3J0YW50KCRjYWxsb3V0LWltYWdlLWhlaWdodCwgdHJ1ZSk7IC8qIFsxXSAqL1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluOyAvKiBbMl0gKi9cbiAgICB9XG5cbiAgICAuYy1jYWxsb3V0X190aXRsZSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKFxuICAgICAgICAgICAgJGZvbnQtc2l6ZTogJGNhbGxvdXQtdGl0bGUtZm9udC1zaXplLFxuICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAkY2FsbG91dC10aXRsZS1saW5lLWhlaWdodFxuICAgICAgICApO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkY2FsbG91dC10aXRsZS1zcGFjaW5nLWJvdHRvbTtcbiAgICB9XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQ0FMTE9VVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogWzFdIE92ZXJyaWRlIGJyYW5kIHRoZW1lIGJhY2tncm91bmQgd2l0aCBjdXN0b20gY2FsbG91dCBjb2xvci5cbiAqL1xuLmMtY2FsbG91dCB7XG5cbiAgICAmW2RhdGEtdGhlbWU9XCJicmFuZFwiXSB7XG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBpdGNzcy9uby1hdC1pbXBvcnRhbnQgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZC1jb2xvciAhaW1wb3J0YW50OyAvKiBbMV0gKi9cbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJTkxJTkUtRURJVEFCTEVcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kaW5saW5lLWVkaXRhYmxlLWJ1dHRvbi1zcGFjaW5nOiAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kaW5saW5lLWVkaXRhYmxlLWJ1dHRvbi1kaXNwbGF5OiAgICBibG9jayAhZGVmYXVsdDtcbiRpbmxpbmUtZWRpdGFibGUtaW5wdXQtc3BhY2luZzogICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJGlubGluZS1lZGl0YWJsZS1pbnB1dC1mb250LXNpemU6ICAgJEdMT0JBTC1JTlBVVC1GT05ULVNJWkUgIWRlZmF1bHQ7XG4kaW5saW5lLWVkaXRhYmxlLWlucHV0LWZvbnQtd2VpZ2h0OiAkR0xPQkFMLUlOUFVULUZPTlQtV0VJR0hUICFkZWZhdWx0O1xuJGlubGluZS1lZGl0YWJsZS1pbnB1dC13aWR0aDogICAgICAgMWVtICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBBZGQgcHJvcGVyIGJ1dHRvbiBzcGFjaW5nLlxuICogWzJdIFJlc2V0IHJpZ2h0IHBhZGRpbmcgYmVjYXVzZSBicm93c2Vy4oCZcyBhbHJlYWR5IGFkZCBzYWZlLXNwYWNlIHRoZXJlXG4gKiAgICAgd2hlbiBub3QgaW4gZWRpdGluZyBtb2RlLlxuICogWzNdIFJlc2V0IGFsbCBpbnB1dCBwcm9wZXJ0aWVzIHdoZW4gaW4gbm9uLWVkaXRpbmcgbW9kZS5cbiAqIFs0XSBIaWRlIHRoZSBzdWJtaXQgYW5kIHJlc2V0IGJ1dHRvbiB3aGVuIGluIG5vbi1lZGl0aW5nIG1vZGUuXG4gKiBbNV0gU2hvdyB0aGUgc3VibWl0IGFuZCByZXNldCBidXR0b24gYW5kIGhpZGUgdGhlIGVkaXQgYnV0dG9uXG4gKiAgICAgd2hlbiBpbiBlZGl0aW5nIG1vZGUuXG4gKiBbNl0gQWRkIHRoZSBhZGRvbiBtaW5pbXVtIGBtaW4td2lkdGhgIHRvIHRoZSBpbnB1dCBzaXplciB3aWR0aC5cbiAqIFs3XSBBZGQgdGhlIGR5bmFtaWMgc2l6ZXIgdmlhIGEgcHNldWRvIGVsZW1lbnQuXG4gKiBbOF0gVGhlIHNpemVyIHdpZHRoIGlzIGNvbnRyb2xsZWQgdmlhIHRoZSBpbnB1dCB2YWx1ZSB0aGF0IGlzIGJlaW5nXG4gKiAgICAgZHluYW1pY2FsbHkgdXBkYXRlZCB2aWEgdGhlIGBkYXRhLWlubGluZS1lZGl0YWJsZS1zaXplYCBhdHRyaWJ1dGUuXG4gKiBbOV0gSW5jbHVkZSB0aGUgZm9udC1zaXplIGFuZCBmb250LXdpZHRoIHRvIG1ha2UgbWVhc3VyaW5nIHRoZSBjb250ZW50IG1vcmUgcm9idXN0LlxuICogWzEwXSBVc2UgYW4gaW5saW5lIGdyaWQgdG8gcG9zaXRpb24gdGhlIGlucHV0IGFuZCB0YWtpbmcgdXAgdGhlIHNpemVyIGVsZW1lbnTigJlzIHNwYWNlLlxuICogWzExXSBBZGp1c3Qgc2l6ZXIgd2hlbiBpbiBlZGl0YWJsZSBtb2RlLlxuICogWzEyXSBQb3NpdGlvbiB0aGUgaW5wdXQgYW5kIHRoZSBzaXplciBpbiBvbmUgY29sdW1uIGFuZCBtYWtlIGl0IGdyb3cgZXF1YWxseS5cbiAqICAgICAgVGhlIGFkZG9uIGlzIHBvc2l0aW9uZWQgaW4gdGhlIHNlY29uZCBjb2x1bW4uXG4gKi9cblxuLmMtaW5saW5lLWVkaXRhYmxlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogdGV4dDtcbiAgICB9XG5cbiAgICAmW2FyaWEtaGlkZGVuPVwiZmFsc2VcIl0ge1xuXG4gICAgICAgIC5jLWlubGluZS1lZGl0YWJsZV9fc3VibWl0LFxuICAgICAgICAuYy1pbmxpbmUtZWRpdGFibGVfX2NhbmNlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiAkaW5saW5lLWVkaXRhYmxlLWJ1dHRvbi1kaXNwbGF5OyAvKiBbNV0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWlubGluZS1lZGl0YWJsZV9fYnRuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IC8qIFs1XSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtaW5wdXQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkaW5saW5lLWVkaXRhYmxlLWlucHV0LXNwYWNpbmc7IC8qIFsxXSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuICAgIC5jLWlubGluZS1lZGl0YWJsZV9fd3JhcCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgfVxuXG4gICAgLmMtaW5saW5lLWVkaXRhYmxlX19pbnB1dCxcbiAgICAuYy1pbmxpbmUtZWRpdGFibGVfX2lucHV0LWFkZG9uIHtcbiAgICAgICAgdHJhbnNpdGlvbjogaW1wb3J0YW50KG5vbmUsIHRydWUpO1xuXG4gICAgICAgIC5jLWlubGluZS1lZGl0YWJsZTpub3QoW2FyaWEtaGlkZGVuPVwiZmFsc2VcIl0pICYgeyAvKiBbM10gKi9cbiAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIHBhZGRpbmc6IGluaGVyaXQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1pbmxpbmUtZWRpdGFibGVfX2lucHV0IHtcbiAgICAgICAgZ3JpZC1hcmVhOiAxIC8gMjsgLyogWzEyXSAqL1xuICAgIH1cblxuICAgIC5jLWlubGluZS1lZGl0YWJsZV9faW5wdXQtYWRkb24ge1xuICAgICAgICBncmlkLWFyZWE6IDEgLyAzOyAvKiBbMTJdICovXG4gICAgfVxuXG4gICAgLmMtaW5saW5lLWVkaXRhYmxlOm5vdChbYXJpYS1oaWRkZW49XCJmYWxzZVwiXSkgLmMtaW5saW5lLWVkaXRhYmxlX19pbnB1dCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IC8qIFsyXSAqL1xuICAgIH1cblxuICAgIC5jLWlubGluZS1lZGl0YWJsZV9fY2FuY2VsLFxuICAgIC5jLWlubGluZS1lZGl0YWJsZV9fc3VibWl0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgLyogWzRdICovXG4gICAgfVxuXG4gICAgLmMtaW5saW5lLWVkaXRhYmxlX19idG4sXG4gICAgLmMtaW5saW5lLWVkaXRhYmxlX19jYW5jZWwge1xuICAgICAgICBtYXJnaW4tbGVmdDogJGlubGluZS1lZGl0YWJsZS1idXR0b24tc3BhY2luZztcbiAgICB9XG5cbiAgICAuYy1pbmxpbmUtZWRpdGFibGUgW2RhdGEtaW5saW5lLWVkaXRhYmxlLXNpemVdIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWdyaWQ7IC8qIFsxMF0gKi9cbiAgICB9XG5cbiAgICBbZGF0YS1pbmxpbmUtZWRpdGFibGUtc2l6ZV06OmFmdGVyIHsgLyogWzddICovXG4gICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1pbmxpbmUtZWRpdGFibGUtc2l6ZSkgXCIgXCI7IC8qIFs4XSAqL1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZ3JpZC1hcmVhOiAxIC8gMjsgLyogWzEyXSAqL1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlO1xuICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgICAgd2lkdGg6IG1pbi1jb250ZW50O1xuICAgICAgICBtaW4td2lkdGg6ICRpbmxpbmUtZWRpdGFibGUtaW5wdXQtd2lkdGg7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgICAgICAuYy1pbmxpbmUtZWRpdGFibGVbYXJpYS1oaWRkZW49XCJmYWxzZVwiXSAmIHsgLyogWzExXSAqL1xuICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoJGlubGluZS1lZGl0YWJsZS1pbnB1dC1mb250LXNpemUpOyAvKiBbOV0gKi9cbiAgICAgICAgICAgIEBpZiAoJGlucHV0LWFkZG9uLW1pbi13aWR0aCkge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogY2FsYygjeyRpbmxpbmUtZWRpdGFibGUtaW5wdXQtd2lkdGh9ICsgI3skaW5wdXQtYWRkb24tbWluLXdpZHRofSk7IC8qIFs2XSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkaW5wdXQtYWRkb24tcGFkZGluZztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRpbnB1dC1hZGRvbi1wYWRkaW5nO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRpbmxpbmUtZWRpdGFibGUtaW5wdXQtZm9udC13ZWlnaHQ7IC8qIFs5XSAqL1xuICAgICAgICB9XG5cbiAgICB9XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICNQUk9EVUNULUNBUkRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIEBUT0RPOlxuICogZXh0cmFjdCBjYXJkLXBhdHRlcm4gc3R5bGVzIHRvIHNldHRpbmdzIGxheWVyIGZvciByZXVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kuXG4gKi9cbiRwcm9kdWN0LWNhcmQtd2lkdGgtcXVlcmllczogKFxuICAgIHZlcnRpY2FsOiAgIDAsXG4gICAgY29tcGFjdDogICAgNDUwLFxuICAgIGhvcml6b250YWw6IDY4MCxcbikgIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LWNhcmQtZ2FwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kcHJvZHVjdC1jYXJkLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuJHByb2R1Y3QtY2FyZC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgICAgICAkQ0FSRC1TSEFET1cgIWRlZmF1bHQ7XG4kcHJvZHVjdC1jYXJkLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFLUJBQ0tHUk9VTkQgIWRlZmF1bHQ7XG4kcHJvZHVjdC1jYXJkLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kcHJvZHVjdC1jYXJkLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LWNhcmQtaW5hY3RpdmUtb3BhY2l0eTogICAgICAgICAgICAgICAgJE9QQUNJVFktRElTQUJMRUQgIWRlZmF1bHQ7XG4kcHJvZHVjdC1jYXJkLWluYWN0aXZlLXNoYWRvdzogICAgICAgICAgICAgICAgICRDQVJELUlOQUNUSVZFLVNIQURPVyAhZGVmYXVsdDtcbiRwcm9kdWN0LWNhcmQtaW5hY3RpdmUtYmFja2dyb3VuZC1jb2xvcjogICAgICAgbnVsbCAhZGVmYXVsdDtcbiRwcm9kdWN0LWNhcmQtaW5hY3RpdmUtYm9yZGVyOiAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuJHByb2R1Y3QtY2FyZC1lbXB0eS1vcGFjaXR5OiAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHByb2R1Y3QtY2FyZC1lbXB0eS1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAkcHJvZHVjdC1jYXJkLWluYWN0aXZlLXNoYWRvdyAhZGVmYXVsdDtcbiRwcm9kdWN0LWNhcmQtZW1wdHktYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgJHByb2R1Y3QtY2FyZC1pbmFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yICFkZWZhdWx0O1xuJHByb2R1Y3QtY2FyZC1lbXB0eS1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAkcHJvZHVjdC1jYXJkLWluYWN0aXZlLWJvcmRlciAhZGVmYXVsdDtcblxuJHByb2R1Y3QtY2FyZC1oZWFkZXItbW9kdWxlLXNwYWNpbmc6ICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LWNhcmQtZmVhdHVyZXMtc3BhY2luZzogICAgICAgICAgICAgICAgJHByb2R1Y3QtY2FyZC1oZWFkZXItbW9kdWxlLXNwYWNpbmcgIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LWNhcmQtdGl0bGUtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgJEZTMyAhZGVmYXVsdDtcbiRwcm9kdWN0LWNhcmQtdGl0bGUtc3BhY2luZzogICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJHByb2R1Y3QtY2FyZC10aXRsZS1mb250LXdlaWdodDogICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQgIWRlZmF1bHQ7XG4kcHJvZHVjdC1jYXJkLXRpdGxlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kcHJvZHVjdC1jYXJkLXN1YnRpdGxlLXNpemU6ICAgICAgICAgICAgICAgICAgICRGUzIgIWRlZmF1bHQ7XG4kcHJvZHVjdC1jYXJkLXN1YnRpdGxlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICRwcm9kdWN0LWNhcmQtdGl0bGUtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kcHJvZHVjdC1jYXJkLXN1YnRpdGxlLWNvbG9yOiAgICAgICAgICAgICAgICAgICRwcm9kdWN0LWNhcmQtdGl0bGUtY29sb3IgIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LWNhcmQtdGFnLWxpc3QtdGl0bGUtc2l6ZTogICAgICAgICAgICAgJEZTMiAhZGVmYXVsdDtcbiRwcm9kdWN0LWNhcmQtdGFnLWxpc3QtdGl0bGUtbGluZS1oZWlnaHQ6ICAgICAgbnVsbCAhZGVmYXVsdDtcbiRwcm9kdWN0LWNhcmQtdGFnLWxpc3QtdGl0bGUtZm9udC13ZWlnaHQ6ICAgICAgJHByb2R1Y3QtY2FyZC10aXRsZS1mb250LXdlaWdodCAhZGVmYXVsdDtcbiRwcm9kdWN0LWNhcmQtdGFnLWxpc3QtdGl0bGUtY29sb3I6ICAgICAgICAgICAgJEdMT0JBTC1IRUFESU5HLUNPTE9SICFkZWZhdWx0O1xuXG4kcHJvZHVjdC1jYXJkLXRhZy1saXN0LW1vZHVsZS1zcGFjaW5nOiAgICAgICAgICRwcm9kdWN0LWNhcmQtaGVhZGVyLW1vZHVsZS1zcGFjaW5nICFkZWZhdWx0O1xuXG4kcHJvZHVjdC1jYXJkLWlubGluZS1iYXNpcy13aWR0aDogICAgICAgICAgICAgIDAuNCAhZGVmYXVsdDsgLy8gNDAlXG4kcHJvZHVjdC1jYXJkLWlubGluZS1lbGVtZW50LWNvdW50OiAgICAgICAgICAgIDMgIWRlZmF1bHQ7IC8vIGFtb3VudCBvZiBpbmxpbmUgZWxlbWVudHNcblxuJHByb2R1Y3QtY2FyZC1tZWRpYS1mYWxsYmFjay1iYWNrZ3JvdW5kLWNvbG9yOiAkQ09MT1ItUEFMRSAhZGVmYXVsdDtcbiRwcm9kdWN0LWNhcmQtbWVkaWEtZmFsbGJhY2staWNvbi1jb2xvcjogICAgICAgJENPTE9SLVNVQlRMRSAhZGVmYXVsdDtcbiRwcm9kdWN0LWNhcmQtbWVkaWEtZmFsbGJhY2staWNvbi1zaXplOiAgICAgICAgMTIwcHggIWRlZmF1bHQ7IC8vIG1hZ2ljIG51bWJlclxuXG4kcHJvZHVjdC1jYXJkLXByaWNlLWhlYWRlci1zcGFjaW5nOiAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcblxuJHByb2R1Y3QtY2FyZC1wcm9ncmVzcy1zcGFjaW5nOiAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRwcm9kdWN0LWNhcmQtcHJvZ3Jlc3MtbGFiZWwtc3BhY2luZzogICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJHByb2R1Y3QtY2FyZC1wcm9ncmVzcy1sYWJlbC1mb250LXNpemU6ICAgICAgICAkRlMtMSAhZGVmYXVsdDtcblxuJHByb2R1Y3QtY2FyZC1wYW5lbC1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRwcm9kdWN0LWNhcmQtcGFuZWwtdGl0bGUtc3BhY2luZzogICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LWNhcmQtYnV0dG9ucy1zcGFjaW5nOiAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kcHJvZHVjdC1jYXJkLWJ1dHRvbnMtbWF4LXdpZHRoOiAgICAgICAgICAgICAgICRCVVRUT04tTUFYLVdJRFRILUlOLUNPTlRBSU5FUiAhZGVmYXVsdDtcblxuJHByb2R1Y3QtY2FyZC1leHBhbmRhYmxlLWJ1dHRvbi1zcGFjaW5nOiAgICAgICAkR0xPQkFMLUxJTkUtSEVJR0hUICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBBcHBseSBzcGFjaW5nIHRvIGZpcnN0IGNoaWxkLCBub3QgdG8gcGFuZWwgdG8gYXZvaWQgdmlzaWJsZSBzcGFjaW5nXG4gKiAgICAgd2hlbiBwYW5lbCBpcyBjb2xsYXBzZWQuXG4gKiBbMl0gU2NvcGVkIG1vZGlmaWNhdGlvbnMgdG8gcHJpY2UtYm94OlxuICogICAgIHJpZ2h0LWFsaWduZWQsIG1vcmUgY29uZGVuc2VkIGFuZCB3aXRob3V0IGJvcmRlci5cbiAqICAgICBBcyBtb2RpZmljYXRpb25zIGFyZSBxdWl0ZSBzcGVjaWFsLFxuICogICAgIGEgZ2VuZXJhbCBtb2RpZmllciBpcyBoYXJkIHRvIGFic3RyYWN0LiBAVE9ETzogcmVjb25zaWRlclxuICogWzNdIFBsYWNlIGZlYXR1cmVzIG9uIHRoZSByaWdodCBzaWRlIGluIGhvcml6b250YWwgbW9kZS5cbiAqIFs0XSBEaXNwbGF5IGZhdi1idXR0b24gYW5kIHRhZyBiZWxvdyBlYWNoIG90aGVyIGluIGxhcmdlciBjb250YWluZXIgd2lkdGhzLlxuICogWzVdIFJlc2VydmUgZW5vdWdoIHNwYWNlIGZvciB0YWctbGlzdCB0byBzaG93IGl0ZW1zIGhvcml6b250YWxseVxuICogICAgIGlmIHNwYWNlIGlzIGF2YWlsYWJsZS5cbiAqIFs2XSBBbGlnbiB0byByaWdodCBpbiBob3Jpem9udGFsIG1vZGUuXG4gKiBbN10gS2VlcCBmbGV4LWl0ZW1zIGluIHBsYWNlIGFuZCBkbyBub3QgZGlzdHJpYnV0ZSwgZS5nLiBpbiBjb250ZXh0IG9mXG4gKiAgICAgZXF1YWwtaGVpZ2h0IGdyaWQuXG4gKiBbOF0gS2VlcCBmYXZvcml0ZXMgYWxpZ25lZCB0b3AsIGVzcGVjaWFsbHkgd2hlbiB0YWctbGlzdCB3cmFwc1xuICogICAgIChpbiBob3Jpem9udGFsIG1vZGUpLlxuICogWzldIERlY3JlYXNlIGF2YWlsYWJsZSBzcGFjaW5nIGZvciBwcmljaW5nIHRvIGluY3JlYXNlIHNwYWNpbmcgZm9yIHRpdGxlIGFuZFxuICogICAgICBpbWFnZS5cbiAqIFsxMF0gVXNlIGBncmlkLXRlbXBsYXRlLXJvd3NgIHRvIHRyYW5zaXRpb24gdGhlIGhlaWdodC5cbiAqICAgICAgKHNlZSBodHRwczovL3d3dy5zdGVmYW5qdWRpcy5jb20vc25pcHBldHMvaG93LXRvLWFuaW1hdGUtaGVpZ2h0LXdpdGgtY3NzLWdyaWQvKVxuICogICAgICBUaGUgdHJpZ2dlciBidXR0b24gbXVzdCBiZSB0YWtlbiBvdXQgb2YgdGhlIGdyaWQgdmlhIGFic29sdXRlIHBvc2l0aW9uaW5nXG4gKiAgICAgIGZvciB0aGlzIHRlY2huaXF1ZSB0byB3b3JrLlxuICogWzExXSBEZWZlbnNpdmVseSByZXNldCBzcGFjaW5nIGZyb20gYXJiaXRyYXJ5IGVsZW1lbnQuXG4gKiBbMTJdIFJvdWdobHkgYWxpZ24gYm90dG9tIG9mIHRhZ3Mgd2l0aCBvcHRpb24gdGFnIG9uIHJpZ2h0IHNpZGUgaW4gaG9yaXpvbnRhbFxuICogICAgICBtb2RlIGlmIHRpdGxlIGlzIG5vdCBtdWx0aWxpbmUuIEFzIHRoaXMgYWxzbyBkZXBlbmRzIG9uIHRpdGxlIGFuZFxuICogICAgICBmYXYtYnV0dG9uIHNpemUgaXQgY2FuIG5vdCBiZSBwZXJmZWN0bHkgYWxpZ25lZC5cbiAqIFsxM10gQWxpZ24gdG8gcmlnaHQgKGR1ZSB0byByZXZlcnNlZCBkaXJlY3Rpb24pLlxuICogWzE0XSBNYWtlIHRoZSBpbWFnZSBhbHdheXMgZml0IGluc2lkZSB0aGUgZWxlbWVudOKAmXMgYXNwZWN0IHJhdGlvLlxuICogWzE1XSBNYWtlIGNoaWxkIGVsZW1lbnRzIGluYWN0aXZlIGJ5IGRpc2FibGluZyBwb2ludGVyIGV2ZW50cyBhbmQgcmVkdWNlXG4gKiAgICAgIG9wYWNpdHkuXG4gKiBbMTZdIFBvc2l0aW9uIGJ1dHRvbihzKSBhYnNvbHV0ZWx5IGluIGVtcHR5IGNhcmQgdmFyaWFudC5cbiAqIFsxN10gQWRkIGEgZmFsbGJhY2sgZWxlbWVudCB3aXRoIGEgYmFja2dyb3VuZCBjb2xvciBhbmQgYSBpY29uLlxuICogICAgICAtIEFzcGVjdCByYXRpbyBzaG91bGQgYmUgY29udHJvbGxlZCB2aWEgYC5vLXJhdGlvLlxuICogICAgICAtIFVzZSBgLmMtaWNvbmAgYW5kIGAuYy1pY29uLS1bc2VtYW50aWMtSUNPTl1gIHRvIHNldCB0aGUgaWNvbi5cbiAqIFsxOF0gQWxpZ24gZmF2LWJ1dHRvbiBhbHdheXMgdG8gdGhlIHJpZ2h0LCByZWdhcmRsZXNzIG9mIG90aGVyXG4gKiAgICAgIGAuYy1wcm9kdWN0LWNhcmRfX2ZlYXR1cmVzX19pdGVtYHMuXG4gKiBbMTldIE1vdmUgc3RhdHVzIHZpc3VhbGx5IHRvIHRoZSB0b3AgaW4gc21hbGwgY29udGFpbmVyIHdpZHRocy5cbiAqIFsyMF0gT3ZlcndyaXRlIGBvcmRlcjogLTFgIHRvIGRpc3BsYXkgc3RhdHVzICBpbiBzb3VyY2Ugb3JkZXIgaW4gbGFyZ2VyXG4gKiAgICAgIGNvbnRhaW5lciB3aWR0aHMuXG4gKiBbMjFdIFNldCBgLmMtcHJvZHVjdC1jYXJkX19pbmxpbmVgIGVsZW1lbnRzIHdpZHRoIHRvIGEgcGVyY2VudGFnZSBvZiB0aGVcbiAqICAgICAgcGFyZW504oCZcyB3aWR0aCwgdGFraW5nIGZsZXggZ2FwcyBpbnRvIGFjY291bnQuIFRoZSBlbGVtZW50cyBhcmUgbm90XG4gKiAgICAgIGFsbG93ZWQgdG8gZ3Jvdywgb25seSB0byBzaHJpbmsuIFRoaXMga2VlcHMgdGhlIHdpZHRocyBvZlxuICogICAgICBgLmMtcHJvZHVjdC1jYXJkX19tZWRpYWAgYW5kIGAuYy1wcm9kdWN0LWNhcmRfX21ldGFgIGVsZW1lbnRzIGFsd2F5cyB0aGVcbiAqICAgICAgc2FtZSBldmVuIGlmIG9uZSBvciBtb3JlIGAuYy1wcm9kdWN0LWNhcmRfX2lubGluZWAgYXJlIG5vdCBwcmVzZW50XG4gKiAgICAgIChlLmcuIGAuYy1wcm9kdWN0LWNhcmRfX3ByaWNpbmdgIGluIGAuYy1wcm9kdWN0LWNhcmQtLWluYWN0aXZlYCBhbmRcbiAqICAgICAgYC5jLXByb2R1Y3QtY2FyZC0tZW1wdHlgKS5cbiAqICAgICAgYGZsZXgtYmFzaXNgIGNhbGN1bGF0aW9uIHBhcnRzOlxuICogICAgICAgICAgLSAxMDAlID0+IGZ1bGwgcGFyZW50IHdpZHRoc1xuICogICAgICAgICAgLSAjeyRwcm9kdWN0LWNhcmQtZ2FwfSAqICN7JHByb2R1Y3QtY2FyZC1pbmxpbmUtZWxlbWVudC1jb3VudCAtIDF9XG4gKiAgICAgICAgICAgID0+IHRvdGFsIHdpZHRoIG9mIGFsbCBnYXBzXG4gKiAgICAgICAgICAtICN7JHByb2R1Y3QtY2FyZC1pbmxpbmUtYmFzaXMtd2lkdGh9XG4gKiAgICAgICAgICAgID0+IG1heC4gcGVyY2VudGFnZSBlbGVtZW50IHdpZHRoIGluIGRlY2ltYWwgZm9ybWF0ICg0MCUgPT4gMC40KVxuICogWzIyXSBPdmVyd3JpdGUgc2V0dGluZ3MgZnJvbSBbMjFdIGZvciB0aGUgcHJpY2luZyBlbGVtZW50IHRvIGxldCBpdCBncm93IGludG9cbiAqICAgICAgdGhlIGF2YWlsYWJsZSBzcGFjZS5cbiAqIFsyM10gU3dhcCBwb3NpdGlvbiBvZiB0YWcgbGFiZWwgYW5kIGZhdi1idXR0b24uXG4gKiBbMjRdIFB1c2ggdGhlIHRhZyBsYWJlbCB0byB0aGUgbGVmdCBpbiBzbWFsbCBjb250YWluZXIgd2lkdGhzLCBldmVuIGlmIGl0IGlzXG4gKiAgICAgIHRoZSBvbmx5IGNoaWxkIG9mIGAuYy1wcm9kdWN0LWNhcmRfX2ZlYXR1cmVzYC5cbiAqIFsyNV0gT3JkZXIgaW4gdmVydGljYWwgbW9kZSB2aWEgRE9NIG9yZGVyOlxuICogICAgICBoZWFkZXIgKyBtZXRhIHwgbWVkaWEgfCBwcmljaW5nXG4gKiAgICAgIE9yZGVyIGluIGhvcml6b250YWwgbW9kZSAodmlzdWFsbHkpOlxuICogICAgICBoZWFkZXIgKyBtZWRpYSB8IG1lZGlhIHwgcHJpY2luZ1xuICovXG5cbi5jLXByb2R1Y3QtY2FyZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbMTZdICovXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6ICRwcm9kdWN0LWNhcmQtZ2FwO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0OyAvKiBbN10gKi9cbiAgICBwYWRkaW5nOiAkcHJvZHVjdC1jYXJkLXBhZGRpbmc7XG4gICAgYm9yZGVyOiAkcHJvZHVjdC1jYXJkLWJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkcHJvZHVjdC1jYXJkLWJvcmRlci1yYWRpdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2R1Y3QtY2FyZC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJveC1zaGFkb3c6IGlmKCRwcm9kdWN0LWNhcmQtc2hhZG93LCAkcHJvZHVjdC1jYXJkLXNoYWRvdywgbnVsbCk7XG5cbiAgICA+ICoge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIH1cblxuICAgIC5jLXByaWNlLWJveF9faGVhZGVyIHtcbiAgICAgICAgcGFkZGluZzogMDsgLyogWzJdICovXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkcHJvZHVjdC1jYXJkLXByaWNlLWhlYWRlci1zcGFjaW5nO1xuICAgIH1cblxufVxuXG4gICAgLmMtcHJvZHVjdC1jYXJkX19tZWRpYSB7XG4gICAgfVxuXG4gICAgICAgIC5jLXByb2R1Y3QtY2FyZF9fbWVkaWEtZmFsbGJhY2sgeyAvKiBbMTddICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZHVjdC1jYXJkLW1lZGlhLWZhbGxiYWNrLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAgICAgLmMtcHJvZHVjdC1jYXJkX19tZWRpYS1mYWxsYmFja19faWNvbiB7IC8qIFsxN10gKi9cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LWNhcmQtbWVkaWEtZmFsbGJhY2staWNvbi1jb2xvcjtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICRmb250LXNpemU6ICAgJHByb2R1Y3QtY2FyZC1tZWRpYS1mYWxsYmFjay1pY29uLXNpemUsXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6IDFcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgIC5jLXByb2R1Y3QtY2FyZF9faW1hZ2Uge1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluOyAvKiBbMTRdICovXG4gICAgfVxuXG4gICAgLmMtcHJvZHVjdC1jYXJkX190aXRsZSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKCRwcm9kdWN0LWNhcmQtdGl0bGUtc2l6ZSk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWNhcmQtdGl0bGUtc3BhY2luZztcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRwcm9kdWN0LWNhcmQtdGl0bGUtZm9udC13ZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkcHJvZHVjdC1jYXJkLXRpdGxlLWNvbG9yO1xuICAgIH1cblxuICAgIC5jLXByb2R1Y3QtY2FyZF9fc3VidGl0bGUge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkcHJvZHVjdC1jYXJkLXN1YnRpdGxlLXNpemUpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBmb250LXdlaWdodDogJHByb2R1Y3QtY2FyZC1zdWJ0aXRsZS1mb250LXdlaWdodDtcbiAgICAgICAgY29sb3I6ICRwcm9kdWN0LWNhcmQtc3VidGl0bGUtY29sb3I7XG4gICAgfVxuXG4gICAgLmMtcHJvZHVjdC1jYXJkX19oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6ICRwcm9kdWN0LWNhcmQtZ2FwO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICAgPiAqIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1wcm9kdWN0LWNhcmRfX2ZlYXR1cmVzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyAvKiBbMjNdICovXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBjb2x1bW4tZ2FwOiAkcHJvZHVjdC1jYXJkLWdhcDtcbiAgICB9XG5cbiAgICAgICAgLmMtcHJvZHVjdC1jYXJkX19mZWF0dXJlc19faXRlbS0tdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgLyogWzI0XSAqL1xuICAgICAgICB9XG5cbiAgICAuYy1wcm9kdWN0LWNhcmRfX3RhZy1saXN0IHtcbiAgICAgICAgLy8gZmxleC1jb250YWluZXJcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAkcHJvZHVjdC1jYXJkLXRhZy1saXN0LW1vZHVsZS1zcGFjaW5nO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IC8qIFsxMl0gKi9cblxuICAgICAgICAvLyBmbGV4LWl0ZW1cbiAgICAgICAgZmxleC1ncm93OiAzOyAvKiBbNV0gKi9cbiAgICB9XG5cbiAgICAgICAgLmMtcHJvZHVjdC1jYXJkX190YWctbGlzdF9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkcHJvZHVjdC1jYXJkLXRhZy1saXN0LXRpdGxlLXNpemUsXG4gICAgICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAkcHJvZHVjdC1jYXJkLXRhZy1saXN0LXRpdGxlLWxpbmUtaGVpZ2h0LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHByb2R1Y3QtY2FyZC10YWctbGlzdC10aXRsZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJvZHVjdC1jYXJkLXRhZy1saXN0LXRpdGxlLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAuYy1wcm9kdWN0LWNhcmRfX2JvZHkge1xuXG4gICAgICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzExXSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1wcm9kdWN0LWNhcmRfX2J1dHRvbnMge1xuICAgICAgICAtLWJ1dHRvbi1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG5cbiAgICAgICAgLy8gZmxleC1jb250YWluZXJcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAkcHJvZHVjdC1jYXJkLWJ1dHRvbnMtc3BhY2luZztcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAvLyBmbGV4LWl0ZW1cbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcblxuICAgICAgICAuYy1wcm9kdWN0LWNhcmRfX3N0YXR1cyArICYge1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgICAgIC5jLXByb2R1Y3QtY2FyZF9fYnV0dG9uc19faXRlbSB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICRwcm9kdWN0LWNhcmQtYnV0dG9ucy1tYXgtd2lkdGg7XG4gICAgICAgIH1cblxuICAgIC5jLXByb2R1Y3QtY2FyZF9fc3RhdHVzIHtcbiAgICAgICAgb3JkZXI6IC0xOyAvKiBbMTldICovXG4gICAgfVxuXG4gICAgLmMtcHJvZHVjdC1jYXJkX19wcm9ncmVzcyB7XG4gICAgfVxuXG4gICAgICAgIC5jLXByb2R1Y3QtY2FyZF9fcHJvZ3Jlc3NfX3dyYXBwZXIge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHByb2R1Y3QtY2FyZC1wcm9ncmVzcy1zcGFjaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtcHJvZHVjdC1jYXJkX19wcm9ncmVzc19fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoJHByb2R1Y3QtY2FyZC1wcm9ncmVzcy1sYWJlbC1mb250LXNpemUpO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHByb2R1Y3QtY2FyZC1wcm9ncmVzcy1sYWJlbC1zcGFjaW5nO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgLmpzLWNhcmQtZXhwYW5kYWJsZV9fdHJpZ2dlciB7XG5cbiAgICAgICAgLmMtYnRuX19pY29uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oXG4gICAgICAgICAgICAgICAgJHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbYXJpYS1leHBhbmRlZD1cInRydWVcIl0ge1xuXG4gICAgICAgICAgICAuYy1idG5fX2ljb24ge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXByb2R1Y3QtY2FyZF9fZXhwYW5kYWJsZSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oKTsgLyogWzEwXSAqL1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIFsxMF0gKi9cbiAgICAgICAgZGlzcGxheTogZ3JpZDsgLyogWzEwXSAqL1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjsgLyogWzEwXSAqL1xuICAgICAgICBwYWRkaW5nLXRvcDogJHByb2R1Y3QtY2FyZC1leHBhbmRhYmxlLWJ1dHRvbi1zcGFjaW5nOyAvKiBbMTBdICovXG5cbiAgICAgICAgJi5pcy1vcGVuIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOyAvKiBbMTBdICovXG5cbiAgICAgICAgfVxuXG4gICAgICAgID4gLmMtYnRuOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsvKiBbMTBdICovXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXByb2R1Y3QtY2FyZF9fZXhwYW5kYWJsZS1wYW5lbCB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIFsxMF0gKi9cblxuICAgICAgICA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHByb2R1Y3QtY2FyZC1wYW5lbC1zcGFjaW5nOyAvKiBbMV0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgID4gKjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWNhcmQtcGFuZWwtc3BhY2luZztcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgICAgIC5jLXByb2R1Y3QtY2FyZF9fZXhwYW5kYWJsZS1wYW5lbF9fdGl0bGUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtY2FyZC1wYW5lbC10aXRsZS1zcGFjaW5nO1xuICAgICAgICB9XG5cbiAgICAuYy1wcm9kdWN0LWNhcmQtLWluYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyOiAkcHJvZHVjdC1jYXJkLWluYWN0aXZlLWJvcmRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2R1Y3QtY2FyZC1pbmFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICBib3gtc2hhZG93OiAkcHJvZHVjdC1jYXJkLWluYWN0aXZlLXNoYWRvdztcblxuICAgICAgICA+ICo6bm90KC5jLXByb2R1Y3QtY2FyZF9fYnV0dG9ucyk6bm90KC5jLXByb2R1Y3QtY2FyZF9fc3RhdHVzKSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogWzE1XSAqL1xuICAgICAgICAgICAgb3BhY2l0eTogJHByb2R1Y3QtY2FyZC1pbmFjdGl2ZS1vcGFjaXR5OyAvKiBbMTVdICovXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXByb2R1Y3QtY2FyZC0tZW1wdHkge1xuICAgICAgICBib3JkZXI6ICRwcm9kdWN0LWNhcmQtZW1wdHktYm9yZGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZHVjdC1jYXJkLWVtcHR5LWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIGJveC1zaGFkb3c6ICRwcm9kdWN0LWNhcmQtZW1wdHktc2hhZG93O1xuXG4gICAgICAgID4gKjpub3QoLmMtcHJvZHVjdC1jYXJkX19idXR0b25zKTpub3QoLmMtcHJvZHVjdC1jYXJkX19zdGF0dXMpIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbMTVdICovXG4gICAgICAgICAgICBvcGFjaXR5OiAkcHJvZHVjdC1jYXJkLWVtcHR5LW9wYWNpdHk7IC8qIFsxNV0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG5bZGF0YS1jb250YWluZXItcXVlcnk9XCJwcm9kdWN0LWNhcmRcIl0ge1xuICAgIC0tY29udGFpbmVyLXdpZHRoczogXCIje2NxLWNvbnZlcnQtZGF0YSgkcHJvZHVjdC1jYXJkLXdpZHRoLXF1ZXJpZXMpfVwiO1xuXG4gICAgQGluY2x1ZGUgY29udGFpbmVyKCRtYXA6ICRwcm9kdWN0LWNhcmQtd2lkdGgtcXVlcmllcywgJHNpemU6IFwiY29tcGFjdFwiKSB7XG5cbiAgICAgICAgLmMtcHJvZHVjdC1jYXJkX19tZWRpYSxcbiAgICAgICAgLmMtcHJvZHVjdC1jYXJkX19tZXRhLFxuICAgICAgICAuYy1wcm9kdWN0LWNhcmRfX3N0YXR1cyB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBjYWxjKDUwJSAtICN7JHByb2R1Y3QtY2FyZC1nYXB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYy1wcm9kdWN0LWNhcmQtLWVtcHR5IHtcblxuICAgICAgICAgICAgLmMtcHJvZHVjdC1jYXJkX19idXR0b25zIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qIFsxNl0gKi9cbiAgICAgICAgICAgICAgICBib3R0b206ICRwcm9kdWN0LWNhcmQtcGFkZGluZztcbiAgICAgICAgICAgICAgICByaWdodDogJHByb2R1Y3QtY2FyZC1wYWRkaW5nO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAuYy1wcm9kdWN0LWNhcmRfX3N0YXR1cyB7XG4gICAgICAgICAgICBvcmRlcjogaW5pdGlhbDsgLyogWzIwXSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtcHJvZHVjdC1jYXJkX19tZWRpYSxcbiAgICAgICAgLmMtcHJvZHVjdC1jYXJkX19oZWFkZXIge1xuICAgICAgICAgICAgb3JkZXI6IC0xOyAvKiBbMjVdICovXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIEBpbmNsdWRlIGNvbnRhaW5lcigkbWFwOiAkcHJvZHVjdC1jYXJkLXdpZHRoLXF1ZXJpZXMsICRzaXplOiBcImhvcml6b250YWxcIikge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBIRUFERVJcbiAgICAgICAgICovXG4gICAgICAgIC5jLXByb2R1Y3QtY2FyZF9faGVhZGVyIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogRkVBVFVSRVNcbiAgICAgICAgICovXG4gICAgICAgIC5jLXByb2R1Y3QtY2FyZF9fZmVhdHVyZXMge1xuICAgICAgICAgICAgLy8gZmxleC1jb250YWluZXJcbiAgICAgICAgICAgIGdhcDogJHByb2R1Y3QtY2FyZC1mZWF0dXJlcy1zcGFjaW5nO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyAvKiBbNF0gKi9cbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IC8qIFs4XSAqL1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyAvKiBbNl0gKi9cblxuICAgICAgICAgICAgLy8gZmxleC1pdGVtXG4gICAgICAgICAgICBvcmRlcjogMTsgLyogWzNdICovXG4gICAgICAgIH1cblxuICAgICAgICAgICAgLmMtcHJvZHVjdC1jYXJkX19mZWF0dXJlc19faXRlbS0tZmF2LWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IDE7IC8qIFsxOF0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAuYy1wcm9kdWN0LWNhcmRfX2ZlYXR1cmVzX19pdGVtLS10YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBpbml0aWFsOyAvKiBbMjRdICovXG4gICAgICAgIH1cblxuICAgICAgICAuYy1wcm9kdWN0LWNhcmRfX2lubGluZSB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7IC8qIFsyMV0gKi9cbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAxOyAvKiBbMjFdICovXG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBjYWxjKCgxMDAlIC0gI3skcHJvZHVjdC1jYXJkLWdhcH0gKiAjeyRwcm9kdWN0LWNhcmQtaW5saW5lLWVsZW1lbnQtY291bnQgLSAxfSkgKiAjeyRwcm9kdWN0LWNhcmQtaW5saW5lLWJhc2lzLXdpZHRofSk7IC8qIFsyMV0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXByb2R1Y3QtY2FyZF9fcHJpY2luZyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7IC8qIFsyMl0gKi9cbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7IC8qIFsyMl0gKi9cbiAgICAgICAgICAgIG1pbi13aWR0aDogMDsgLyogWzIyXSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBSSUNFIEJPWFxuICAgICAgICAgKi9cbiAgICAgICAgIC8qIFsyXSAqL1xuICAgICAgICAgLmMtcHJpY2UtYm94X19oZWFkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogWzJdICovXG4gICAgICAgIC5jLXByaWNlLWJveF9faGVhZGVyLFxuICAgICAgICAuYy1wcmljZS1ib3hfX2JvZHlfX2NvbnRlbnQsXG4gICAgICAgIC5jLXByaWNlLWJveF9fYWRkaXRpb25hbC1pbmZvX190ZXh0IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgLyogWzJdICovXG4gICAgICAgIC5jLXByaWNlLWJveF9fYm9keSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXByaWNlLWJveF9fZGlzY291bnQge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQUk9HUkVTU1xuICAgICAgICAgKi9cbiAgICAgICAgLmMtcHJvZHVjdC1jYXJkX19wcm9ncmVzc19fbGFiZWwge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAuYy1wcm9kdWN0LWNhcmRfX2J1dHRvbnMge1xuICAgICAgICAgICAgLy8gZmxleC1jb250YWluZXJcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgLyogWzEzXSAqL1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAgICAgICAgIC8vIGZsZXgtaXRlbVxuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLXByb2R1Y3QtY2FyZF9fYnV0dG9uc19faXRlbSB7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgIH1cblxufVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI1BST0RVQ1QtQ0FSRCAoU2V0dGluZ3MpXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHByb2R1Y3QtY2FyZC1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgJENBUkQtUEFUVEVSTi1QQURESU5HICFkZWZhdWx0O1xuJHByb2R1Y3QtY2FyZC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kcHJvZHVjdC1jYXJkLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAkQ0FSRC1QQVRURVJOLUJBQ0tHUk9VTkQtQ09MT1IgIWRlZmF1bHQ7XG4kcHJvZHVjdC1jYXJkLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAkQ0FSRC1QQVRURVJOLUJPUkRFUiAhZGVmYXVsdDtcbiRwcm9kdWN0LWNhcmQtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICRDQVJELVBBVFRFUk4tQk9SREVSLVJBRElVUyAhZGVmYXVsdDtcblxuJHByb2R1Y3QtY2FyZC1oZWFkZXItbW9kdWxlLXNwYWNpbmc6ICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LWNhcmQtdGl0bGUtc2l6ZTogICAgICAgICAgICAgICAgICRDQVJELVBBVFRFUk4tVElUTEUtU0laRSAhZGVmYXVsdDtcbiRwcm9kdWN0LWNhcmQtdGl0bGUtZm9udC13ZWlnaHQ6ICAgICAgICAgICRDQVJELVBBVFRFUk4tVElUTEUtV0VJR0hUICFkZWZhdWx0O1xuXG4kcHJvZHVjdC1jYXJkLXN1YnRpdGxlLXNpemU6ICAgICAgICAgICAgICAkQ0FSRC1QQVRURVJOLVNVQlRJVExFLVNJWkUgIWRlZmF1bHQ7XG4kcHJvZHVjdC1jYXJkLXN1YnRpdGxlLWZvbnQtd2VpZ2h0OiAgICAgICAkQ0FSRC1QQVRURVJOLVNVQlRJVExFLVdFSUdIVCAhZGVmYXVsdDtcblxuJHByb2R1Y3QtY2FyZC10YWctbGlzdC10aXRsZS1zaXplOiAgICAgICAgJEZTMCAhZGVmYXVsdDtcbiRwcm9kdWN0LWNhcmQtdGFnLWxpc3QtdGl0bGUtZm9udC13ZWlnaHQ6ICRDQVJELVBBVFRFUk4tVElUTEUtV0VJR0hUICFkZWZhdWx0O1xuXG4kcHJvZHVjdC1jYXJkLWluYWN0aXZlLW9wYWNpdHk6ICAgICAgICAgICAxICFkZWZhdWx0OyAvLyBoYW5kbGUgdmlhIG92ZXJsYXlcbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNQUk9EVUNULUNBUkRcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2tvZGEtcHJvZHVjdC1jYXJkLWluYWN0aXZlLWxheWVyLWNvbG9yOiAgICRDQVJELVBBVFRFUk4tSU5BQ1RJVkUtTEFZRVItQkFDS0dST1VORC1DT0xPUiAhZGVmYXVsdDtcbiRza29kYS1wcm9kdWN0LWNhcmQtaW5hY3RpdmUtbGF5ZXItb3BhY2l0eTogJENBUkQtUEFUVEVSTi1JTkFDVElWRS1MQVlFUi1PUEFDSVRZICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBBZGQgb3ZlcmxheSB0byB2aXN1YWxpemUgYmxvY2tlZCBpbmFjdGl2ZS9kaXNhYmxlZCBzdGF0ZS5cbiAqICAgICBEdWUgdG8gdGhlIGZsZXhpYmxlIG5hdHVyZSBvZiB0aGUgY29tcG9uZW50IG9mIGluY2x1ZGluZ1xuICogICAgIGFyYml0cmFyeSBlbGVtZW50cyBpbnNpZGUsIGFuIG92ZXJsYXkgaXMgdXNlZCBpbnN0ZWFkIG9mXG4gKiAgICAgY29sb3JpemluZyBzaW5nbGUgZWxlbWVudHMgaW5zaWRlIHdoaWNoIHdvdWxkIGFkZCBjb21wbGV4aXR5IGFuZFxuICogICAgIGlzIGVycm9yLXByb25lLlxuICogICAgIE9wdGlvbnMgaW4gZGVmYXVsdCBkbyBub3Qgc2F0aXNmeSB0aGUgdmlzdWFsIHJlcXVpcmVtZW50cyBmb3IgdGhpcyBicmFuZC5cbiAqIFsyXSBTdGFjayBhYm92ZSBsYXllciwgZXhjbHVkZSBmcm9tIGluYWN0aXZlIHN0YXRlLlxuICovXG4uYy1wcm9kdWN0LWNhcmQtLWluYWN0aXZlIHtcblxuICAgIC8qIFsxXSAqL1xuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3BhY2l0eTogJHNrb2RhLXByb2R1Y3QtY2FyZC1pbmFjdGl2ZS1sYXllci1vcGFjaXR5O1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2tvZGEtcHJvZHVjdC1jYXJkLWluYWN0aXZlLWxheWVyLWNvbG9yO1xuICAgIH1cblxufVxuXG4gICAgLmMtcHJvZHVjdC1jYXJkX19idXR0b25zLFxuICAgIC5jLXByb2R1Y3QtY2FyZF9fc3RhdHVzIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbMl0gKi9cbiAgICAgICAgei1pbmRleDogMTA7IC8qIFsyXSAqL1xuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNQUk9EVUNULVNFQVJDSFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRwcm9kdWN0LXNlYXJjaC1icmVha3BvaW50OiAgICAgICAgIG0gIWRlZmF1bHQ7XG4kcHJvZHVjdC1zZWFyY2gtZ2FwOiAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRwcm9kdWN0LXNlYXJjaC1zaWRlYmFyLXdpZHRoOiAgICAgIDMwMHB4ICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBTcGFuIGhlYWRlciBhbHdheXMgYWNyb3NzIGFsbCBjb2x1bW5zLlxuICogWzJdIEluaXRpYWxseSBoaWRlIHNpZGViYXIgYmVsb3cgYnJlYWtwb2ludC4gQFRPRE86IHRvZ2dsZSB2aXNpYmlsaXR5XG4gKi9cblxuLmMtcHJvZHVjdC1zZWFyY2gge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcbiAgICBnYXA6ICRwcm9kdWN0LXNlYXJjaC1nYXA7XG59XG5cbiAgICAuYy1wcm9kdWN0LXNlYXJjaC0taGFzLXNpZGViYXIge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIj4jeyRwcm9kdWN0LXNlYXJjaC1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6ICRwcm9kdWN0LXNlYXJjaC1zaWRlYmFyLXdpZHRoIGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYy1wcm9kdWN0LXNlYXJjaF9faGVhZGVyLFxuICAgIC5jLXByb2R1Y3Qtc2VhcmNoX19hc2lkZSxcbiAgICAuYy1wcm9kdWN0LXNlYXJjaF9fZm9vdGVyIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTsgLyogWzFdICovXG4gICAgfVxuXG4gICAgLmMtcHJvZHVjdC1zZWFyY2hfX3NpZGViYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBbMl0gKi9cblxuXG4gICAgICAgIC5jLXByb2R1Y3Qtc2VhcmNoLS1oYXMtc2lkZWJhciAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyAvKiBbMl0gKi9cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JHByb2R1Y3Qtc2VhcmNoLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBbMl0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1wcm9kdWN0LXNlYXJjaF9fcmVzdWx0cyB7XG4gICAgfVxuXG4gICAgLmMtcHJvZHVjdC1zZWFyY2hfX2FzaWRlIHtcblxuICAgICAgICAuYy1wcm9kdWN0LXNlYXJjaC0taGFzLXNpZGViYXIgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIj4jeyRwcm9kdWN0LXNlYXJjaC1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgLyogWzJdICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXByb2R1Y3Qtc2VhcmNoX19mb290ZXIge1xuICAgIH1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNJTlRFUkFDVElPTi1MQVlFUlxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblxuJGludGVyYWN0aW9uLWxheWVyLXotaW5kZXg6ICAgICAgICAgICAgICAgICAgICAgICB6KFwiaW50ZXJhY3Rpb24tbGF5ZXJcIikgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkcm9wLXNoYWRvdyBvZiB0aGUgaW50ZXJhY3Rpb24tbGF5ZXJcbiRpbnRlcmFjdGlvbi1sYXllci1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgICAgJERST1AtU0hBRE9XLVNNQUxMICFkZWZhdWx0O1xuJGludGVyYWN0aW9uLWxheWVyLWJveC1zaGFkb3ctc2l6ZTogICAgICAgICAgICAgICAkRFJPUC1TSEFET1ctU01BTEwtU0laRSAhZGVmYXVsdDtcblxuLy8gTWFpbiBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBpbnRlcmFjdGlvbi1sYXllclxuJGludGVyYWN0aW9uLWxheWVyLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG5cbiRpbnRlcmFjdGlvbi1sYXllci1iYWNrZHJvcC1jb2xvcjogICAgICAgICAgICAgICAgJEdMT0JBTC1CQUNLRFJPUC1CQUNLR1JPVU5EICFkZWZhdWx0O1xuXG4vLyBDb2xvciBmb3IgaW50ZXJhY3Rpb24tbGF5ZXIgZm9yZWdyb3VuZFxuJGludGVyYWN0aW9uLWxheWVyLWNvbnRlbnQtY29sb3I6ICAgICAgICAgICAgICAgICAkQ09MT1ItQkFTRS1URVhUICFkZWZhdWx0O1xuXG4vLyBDbG9zZSBidXR0b24gaWNvblxuJGludGVyYWN0aW9uLWxheWVyLWNsb3NlLWJ1dHRvbi1pY29uOiAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1jbG9zZSkgIWRlZmF1bHQ7XG4kaW50ZXJhY3Rpb24tbGF5ZXItY2xvc2UtYnV0dG9uLWljb24tc2l6ZTogICAgICAgIGljb24tc2l6ZShzbWFsbCkgIWRlZmF1bHQ7XG4kaW50ZXJhY3Rpb24tbGF5ZXItY2xvc2UtYnV0dG9uLWljb24tY29sb3I6ICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kaW50ZXJhY3Rpb24tbGF5ZXItY2xvc2UtYnV0dG9uLWljb24tY29sb3ItaG92ZXI6ICRpbnRlcmFjdGlvbi1sYXllci1jbG9zZS1idXR0b24taWNvbi1jb2xvciAhZGVmYXVsdDtcblxuLy8gVGhlIGhlaWdodCBvZiB0aGUgZmFkaW5nIGdyYWRpZW50IGZvciBzY3JvbGxpbmdcbiRpbnRlcmFjdGlvbi1sYXllci1jb250ZW50LWZhZGUtaGVpZ2h0OiAgICAgICAgICAgMS41ZW0gIWRlZmF1bHQ7XG5cbi8vIFJlc3BvbnNpdmUgc3BhY2luZ3NcbiRpbnRlcmFjdGlvbi1sYXllci1wYWRkaW5nLWhvcml6b250YWw6IChcbiAgICBudWxsOiAkR0xPQkFMLVNQQUNJTkctVU5JVC1MQVJHRSxcbiAgICBzOiAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCxcbikgIWRlZmF1bHQ7XG5cbiRpbnRlcmFjdGlvbi1sYXllci1wYWRkaW5nLXZlcnRpY2FsOiAoXG4gICAgbnVsbDogJEdMT0JBTC1TUEFDSU5HLVVOSVQsXG4gICAgczogICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwsXG4pICFkZWZhdWx0O1xuXG4kaW50ZXJhY3Rpb24tbGF5ZXItY29udGVudC1wYWRkaW5nOiAoXG4gICAgbnVsbDogJEdMT0JBTC1TUEFDSU5HLVVOSVQtTEFSR0UsXG4gICAgczogICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwsXG4pICFkZWZhdWx0O1xuXG4kaW50ZXJhY3Rpb24tbGF5ZXItZm9vdGVyLXBhZGRpbmc6IChcbiAgICBudWxsOiAkR0xPQkFMLVNQQUNJTkctVU5JVC1MQVJHRSxcbiAgICBzOiAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCxcbikgIWRlZmF1bHQ7XG5cbi8vIEhlYWRlciBzcGFjaW5nc1xuJGludGVyYWN0aW9uLWxheWVyLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWw6ICAgICAkaW50ZXJhY3Rpb24tbGF5ZXItcGFkZGluZy1ob3Jpem9udGFsICFkZWZhdWx0O1xuJGludGVyYWN0aW9uLWxheWVyLWhlYWRlci1wYWRkaW5nLXRvcDogICAgICAgICAgICAkaW50ZXJhY3Rpb24tbGF5ZXItcGFkZGluZy12ZXJ0aWNhbCAhZGVmYXVsdDtcbiRpbnRlcmFjdGlvbi1sYXllci1oZWFkZXItcGFkZGluZy1ib3R0b206ICAgICAgICAgMCAhZGVmYXVsdDtcblxuLy8gQ29udGVudCBzcGFjaW5nc1xuJGludGVyYWN0aW9uLWxheWVyLWNvbnRlbnQtcGFkZGluZy1ob3Jpem9udGFsOiAgICAkaW50ZXJhY3Rpb24tbGF5ZXItY29udGVudC1wYWRkaW5nICFkZWZhdWx0O1xuJGludGVyYWN0aW9uLWxheWVyLWNvbnRlbnQtcGFkZGluZy10b3A6ICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG5cbi8vIEZvb3RlciBzcGFjaW5nc1xuJGludGVyYWN0aW9uLWxheWVyLWZvb3Rlci1wYWRkaW5nLWhvcml6b250YWw6ICAgICAkaW50ZXJhY3Rpb24tbGF5ZXItZm9vdGVyLXBhZGRpbmcgIWRlZmF1bHQ7XG4kaW50ZXJhY3Rpb24tbGF5ZXItZm9vdGVyLXBhZGRpbmctdmVydGljYWw6ICAgICAgICRpbnRlcmFjdGlvbi1sYXllci1wYWRkaW5nLXZlcnRpY2FsICFkZWZhdWx0O1xuJGludGVyYWN0aW9uLWxheWVyLWZvb3Rlci1wYWRkaW5nLXRvcDogICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kaW50ZXJhY3Rpb24tbGF5ZXItZm9vdGVyLXBhZGRpbmctYm90dG9tOiAgICAgICAgICRpbnRlcmFjdGlvbi1sYXllci1mb290ZXItcGFkZGluZy12ZXJ0aWNhbCAhZGVmYXVsdDtcblxuLy8gUmVzcG9uc2l2ZSB3aWR0aCBkZWZhdWx0XG4kaW50ZXJhY3Rpb24tbGF5ZXItd2lkdGg6IChcbiAgICBudWxsOiA1MHZ3LFxuICAgIHM6ICAgIGNhbGMoMTAwdncgLSAjeyRHTE9CQUwtU1BBQ0lORy1VTklUfSksXG4pICFkZWZhdWx0O1xuXG4vLyBSZXNwb25zaXZlIHdpZHRoIHNtYWxsXG4kaW50ZXJhY3Rpb24tbGF5ZXItd2lkdGgtc21hbGw6IChcbiAgICBudWxsOiAzM3Z3LFxuICAgIHM6ICAgIGNhbGMoMTAwdncgLSAjeyRHTE9CQUwtU1BBQ0lORy1VTklUfSksXG4pICFkZWZhdWx0O1xuXG4vLyBSZXNwb25zaXZlIHdpZHRoIGxhcmdlXG4kaW50ZXJhY3Rpb24tbGF5ZXItd2lkdGgtbGFyZ2U6IChcbiAgICBudWxsOiA2NnZ3LFxuICAgIHM6ICAgIGNhbGMoMTAwdncgLSAjeyRHTE9CQUwtU1BBQ0lORy1VTklUfSksXG4pICFkZWZhdWx0O1xuXG4kaW50ZXJhY3Rpb24tbGF5ZXItbWF4LXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICRpbnRlcmFjdGlvbi1sYXllci13aWR0aCAhZGVmYXVsdDtcbiRpbnRlcmFjdGlvbi1sYXllci1tYXgtd2lkdGgtc21hbGw6ICAgICAgICAgICAgICAgJGludGVyYWN0aW9uLWxheWVyLXdpZHRoLXNtYWxsICFkZWZhdWx0O1xuJGludGVyYWN0aW9uLWxheWVyLW1heC13aWR0aC1sYXJnZTogICAgICAgICAgICAgICAkaW50ZXJhY3Rpb24tbGF5ZXItd2lkdGgtbGFyZ2UgIWRlZmF1bHQ7XG5cbi8vIEFuaW1hdGlvbiBzZXR0aW5nc1xuJGludGVyYWN0aW9uLWxheWVyLXNob3c6ICAgICAgICAgICAgICAgICAgICAgICAgICBcIlthcmlhLWhpZGRlbj0nZmFsc2UnXVwiICFkZWZhdWx0O1xuJGludGVyYWN0aW9uLWxheWVyLXRyYW5zZm9ybS1kZWZhdWx0OiAgICAgICAgICAgICB0cmFuc2xhdGVYKC0xMDAlKSAhZGVmYXVsdDtcblxuJGludGVyYWN0aW9uLWxheWVyLWJ1dHRvbi1iYXItd2lkdGg6ICAgICAgICAgICAgICAxMDAlICFkZWZhdWx0O1xuJGludGVyYWN0aW9uLWxheWVyLWJ1dHRvbi1iYXItcGFkZGluZy12ZXJ0aWNhbDogICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRpbnRlcmFjdGlvbi1sYXllci1idXR0b24tYmFyLXNoYWRvdy1vZmZzZXQteTogICAgLSgkR0xPQkFMLUJPWC1TSEFET1ctT0ZGU0VULVkpICFkZWZhdWx0O1xuJGludGVyYWN0aW9uLWxheWVyLWJ1dHRvbi1iYXItc2hhZG93OiAgICAgICAgICAgICAkR0xPQkFMLUJPWC1TSEFET1ctT0ZGU0VULVggJGludGVyYWN0aW9uLWxheWVyLWJ1dHRvbi1iYXItc2hhZG93LW9mZnNldC15ICRHTE9CQUwtQk9YLVNIQURPVy1CTFVSLVJBRElVUyAkR0xPQkFMLUJPWC1TSEFET1ctU1BSRUFEICRHTE9CQUwtQk9YLVNIQURPVy1DT0xPUiAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gIFRoZSBJbnRlcmFjdGlvbiBMYXllciBpcyBwbGFjZWQgYWJvdmUgZXZlcnkgb3RoZXIgZWxlbWVudC5cbiAqIFsyXSAgUmVtb3ZlIGJyb3dzZXIgYmFzZWQgZm9jdXMgY29sb3IgaW4gQ2hyb21lLlxuICogWzNdICBBbGlnbiB0aGUgY29udGVudCBhdCB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgdmlld3BvcnQuXG4gKiBbNF0gIElmIHRoZSBjb250ZW50IGV4Y2VlZHMgdGhlIHZpZXdwb3J0IGhlaWdodCwgdGhpcyBzdGlsbCBtYWtlcyB0aGVcbiAqICAgICAgY29udGVudCBhY2Nlc3NpYmxlIChpLmUuIHNjcm9sbGFibGUpLlxuICogWzVdICBQcmV2ZW50IGludGVyYWN0aW9uIHdpdGggY29udGVudCB3aGVuIGNsb3NlZC5cbiAqIFs2XSAgVGhlIGNvbnRlbnQgYWxsb3dzIGFueSBraW5kIG9mIGVsZW1lbnRzLiBUaGlzIGVuc3VyZXMsIHRoYXRcbiAqICAgICAgZWxlbWVudHMgY2FycnlpbmcgYSBkZWZhdWx0IG1hcmdpbi1ib3R0b20gKGA8cD5gIGV0Yy4pIGdldFxuICogICAgICBjb25zY2lvdXNseSByZXNldCB0byBsZXQgdGhlIHN1cnJvdW5kaW5nIHBhZGRpbmcgZG8gaXRzIGpvYiBwcm9wZXJseS5cbiAqIFs3XSAgQXZvaWQgc2hvd2luZyBncmFkaWVudCB3aGVuIG5vdCBuZWNlc3NhcnkuXG4gKiBbOF0gIEluZGljYXRlIGFjdGlvbnMgb24gbm9uLWludGVyYWN0aXZlIGVsZW1lbnRzLlxuICogWzldICBQcmV2ZW50IGVsZW1lbnRzIGluc2lkZSB0aGUgYC5qcy1pbnRlcmFjdGlvbi1sYXllci10cmlnZ2VyYCBjYXRjaGluZyBhbnlcbiAqICAgICAgZXZlbnRzIGR1ZSB0byBldmVudCBkZWxlZ2F0aW9uLlxuICogWzEwXSBBZGQgc3R5bGluZyB0byBkaXNwbGF5IGEgY2xpY2thYmxlIGljb24gYnV0dG9uLlxuICogWzExXSBIaWRlIHdpdGggc2xpZGUgb3V0IGFuaW1hdGlvbiAobGVmdCB0byByaWdodCkuXG4gKiBbMTJdIFNob3cgd2l0aCBzbGlkZSBpbiBhbmltYXRpb24gKHJpZ2h0IHRvIGxlZnQpLlxuICogWzEzXSBBZGQgYSBtb2RhbCBiYWNrZHJvcCBsYXllci5cbiAqIFsxNF0gQWx3YXlzIGtlZXAgdGhlIGJ1dHRvbiBiYXIgb24gdGhlIGJvdHRvbSBvZiB0aGUgaW50ZXJhY3Rpb24gbGF5ZXIsXG4gKiAgICAgIHJlZ2FyZGxlc3Mgb2YgdGhlIGFtb3VudCBvZiBjb250ZW50IHBsYWNlZCBpbnNpZGUuXG4gKiBbMTVdIEFsd2F5cyBzaG93IGJ1dHRvbiBiYXIgaW4gZnJvbnQgb2YgaW50ZXJhY3Rpb24gbGF5ZXIgY29udGVudC5cbiAqIFsxNl0gUHJldmVudCBvdmVyc2Nyb2xsIGluIHRoZSBjb250YWluZXIuXG4gKiBbMTddIFByZXZlbnQgaG9yaXpvbnRhbCBzaGlmdCB3aGVuIHNjcm9sbGJhciBnZXRzIHZpc2libGUgZHVyaW5nIHJ1bnRpbWVcbiAqICAgICAgYnkgaW5jcmVhc2VkIGNvbnRlbnQgaGVpZ2h0IChlLmcuIGV4cGFuZGluZyBjb21wb25lbnRzKS5cbiAqL1xuXG4uYy1pbnRlcmFjdGlvbi1sYXllcl9fd3JhcHBlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6ICRpbnRlcmFjdGlvbi1sYXllci16LWluZGV4OyAvKiBbMV0gKi9cbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuXG4gICAgJjpmb2N1cyB7IC8qIFsyXSAqL1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJiN7JGludGVyYWN0aW9uLWxheWVyLXNob3d9IHtcblxuICAgICAgICAuYy1pbnRlcmFjdGlvbi1sYXllciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06ICRpbnRlcmFjdGlvbi1sYXllci10cmFuc2Zvcm0tZGVmYXVsdDtcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4uYy1pbnRlcmFjdGlvbi1sYXllciB7XG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcbiAgICAgICAgKFwid2lkdGhcIiwgJGludGVyYWN0aW9uLWxheWVyLXdpZHRoKSxcbiAgICAgICAgKFwibWF4LXdpZHRoXCIsICRpbnRlcmFjdGlvbi1sYXllci1tYXgtd2lkdGgpXG4gICAgKTtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDsgLyogWzE0XSAqL1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IC8qIFsxNF0gKi9cbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93LXk6IGF1dG87IC8qIFs0XSAqL1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgjeyRpbnRlcmFjdGlvbi1sYXllci1ib3gtc2hhZG93LXNpemV9KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW50ZXJhY3Rpb24tbGF5ZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3gtc2hhZG93OiBpZigkaW50ZXJhY3Rpb24tbGF5ZXItc2hhZG93LCAkaW50ZXJhY3Rpb24tbGF5ZXItc2hhZG93LCBudWxsKTtcbiAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBub25lOyAvKiBbMTZdICovXG4gICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlOyAvKiBbMTddICovXG59XG5cbiAgICAuYy1pbnRlcmFjdGlvbi1sYXllci0tbGFyZ2Uge1xuXG4gICAgICAgIC5jLWludGVyYWN0aW9uLWxheWVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXG4gICAgICAgICAgICAgICAgKFwid2lkdGhcIiwgJGludGVyYWN0aW9uLWxheWVyLXdpZHRoLWxhcmdlKSxcbiAgICAgICAgICAgICAgICAoXCJtYXgtd2lkdGhcIiwgJGludGVyYWN0aW9uLWxheWVyLW1heC13aWR0aC1sYXJnZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWludGVyYWN0aW9uLWxheWVyLS1zbWFsbCB7XG5cbiAgICAgICAgLmMtaW50ZXJhY3Rpb24tbGF5ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcbiAgICAgICAgICAgICAgICAoXCJ3aWR0aFwiLCAkaW50ZXJhY3Rpb24tbGF5ZXItd2lkdGgtc21hbGwpLFxuICAgICAgICAgICAgICAgIChcIm1heC13aWR0aFwiLCAkaW50ZXJhY3Rpb24tbGF5ZXItbWF4LXdpZHRoLXNtYWxsKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtaW50ZXJhY3Rpb24tbGF5ZXItLW1vZGFsIHtcblxuICAgICAgICAmOjpiZWZvcmUgeyAvKiBbMTNdICovXG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnRlcmFjdGlvbi1sYXllci1iYWNrZHJvcC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbYXJpYS1oaWRkZW49XCJmYWxzZVwiXTo6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1pbnRlcmFjdGlvbi1sYXllcl9faGVhZGVyIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcbiAgICAgICAgICAgIChcInBhZGRpbmctdG9wXCIsICRpbnRlcmFjdGlvbi1sYXllci1oZWFkZXItcGFkZGluZy10b3ApLFxuICAgICAgICAgICAgKFwicGFkZGluZy1sZWZ0XCIsICRpbnRlcmFjdGlvbi1sYXllci1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsKSxcbiAgICAgICAgICAgIChcInBhZGRpbmctcmlnaHRcIiwgJGludGVyYWN0aW9uLWxheWVyLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWwpLFxuICAgICAgICAgICAgKFwicGFkZGluZy1ib3R0b21cIiwgJGludGVyYWN0aW9uLWxheWVyLWhlYWRlci1wYWRkaW5nLWJvdHRvbSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAuYy1pbnRlcmFjdGlvbi1sYXllcl9fY2xvc2UtYnRuIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtYnV0dG9uKCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOjpiZWZvcmUgeyAvKiBbMTBdICovXG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogJGludGVyYWN0aW9uLWxheWVyLWNsb3NlLWJ1dHRvbi1pY29uLXNpemUsXG4gICAgICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiBmYWxzZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGljb24tZm9udCgpO1xuICAgICAgICAgICAgY29udGVudDogJGludGVyYWN0aW9uLWxheWVyLWNsb3NlLWJ1dHRvbi1pY29uO1xuICAgICAgICAgICAgY29sb3I6ICRpbnRlcmFjdGlvbi1sYXllci1jbG9zZS1idXR0b24taWNvbi1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkaW50ZXJhY3Rpb24tbGF5ZXItY2xvc2UtYnV0dG9uLWljb24tY29sb3ItaG92ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtaW50ZXJhY3Rpb24tbGF5ZXJfX2NvbnRlbnQge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFxuICAgICAgICAgICAgKFwicGFkZGluZy1sZWZ0XCIsICRpbnRlcmFjdGlvbi1sYXllci1jb250ZW50LXBhZGRpbmctaG9yaXpvbnRhbCksXG4gICAgICAgICAgICAoXCJwYWRkaW5nLXJpZ2h0XCIsICRpbnRlcmFjdGlvbi1sYXllci1wYWRkaW5nLWhvcml6b250YWwpLFxuICAgICAgICAgICAgKFwicGFkZGluZy10b3BcIiwgJGludGVyYWN0aW9uLWxheWVyLWNvbnRlbnQtcGFkZGluZy10b3ApXG4gICAgICAgICk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkaW50ZXJhY3Rpb24tbGF5ZXItY29udGVudC1mYWRlLWhlaWdodDsgLyogWzddICovXG4gICAgICAgIGNvbG9yOiAkaW50ZXJhY3Rpb24tbGF5ZXItY29udGVudC1jb2xvcjtcblxuICAgICAgICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbNl0gKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jLWludGVyYWN0aW9uLWxheWVyX19mb290ZXIge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFxuICAgICAgICAgICAgKFwicGFkZGluZy10b3BcIiwgJGludGVyYWN0aW9uLWxheWVyLWZvb3Rlci1wYWRkaW5nLXRvcCksXG4gICAgICAgICAgICAoXCJwYWRkaW5nLWxlZnRcIiwgJGludGVyYWN0aW9uLWxheWVyLWZvb3Rlci1wYWRkaW5nLWhvcml6b250YWwpLFxuICAgICAgICAgICAgKFwicGFkZGluZy1yaWdodFwiLCAkaW50ZXJhY3Rpb24tbGF5ZXItZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbCksXG4gICAgICAgICAgICAoXCJwYWRkaW5nLWJvdHRvbVwiLCAkaW50ZXJhY3Rpb24tbGF5ZXItZm9vdGVyLXBhZGRpbmctYm90dG9tKVxuICAgICAgICApO1xuXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbi8qKlxuICogU3R5bGVzIGFwcGxpZWQgdG8gYSBqcy1ob29rICh3aGljaCBpcyBhIG5vLW5vKSBpcyBhbiBleGNlcHRpb24gYXMgdGhlIHRyaWdnZXJcbiAqIGNhbiBiZSBhcHBsaWVkIHRvIGFyYml0cmFyeSBlbGVtZW50cyBidXQgbmVlZCB0aG9zZSBhZGRpdGlvbmFsIHN0eWxlcyB0b1xuICogd29yayBwcm9wZXJseS5cbiAqL1xuLmpzLWludGVyYWN0aW9uLWxheWVyLXRyaWdnZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgLyogWzhdICovXG5cbiAgICAqIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIFs5XSAqL1xuICAgIH1cblxufVxuXG4uYy1pbnRlcmFjdGlvbi1sYXllcl9fYnV0dG9uLWJhciB7XG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcbiAgICAgICAgKFwicGFkZGluZy1sZWZ0XCIsICRpbnRlcmFjdGlvbi1sYXllci1wYWRkaW5nLWhvcml6b250YWwpLFxuICAgICAgICAoXCJwYWRkaW5nLXJpZ2h0XCIsICRpbnRlcmFjdGlvbi1sYXllci1wYWRkaW5nLWhvcml6b250YWwpLFxuICAgICk7XG4gICAgcG9zaXRpb246IHN0aWNreTsgLyogWzE0XSAqL1xuICAgIHotaW5kZXg6IDEwMDsgLyogWzE1XSAqL1xuICAgIGJvdHRvbTogMDsgLyogWzE0XSAqL1xuICAgIHdpZHRoOiAkaW50ZXJhY3Rpb24tbGF5ZXItYnV0dG9uLWJhci13aWR0aDtcbiAgICBtYXJnaW4tdG9wOiBhdXRvOyAvKiBbMTRdICovXG4gICAgcGFkZGluZy10b3A6ICRpbnRlcmFjdGlvbi1sYXllci1idXR0b24tYmFyLXBhZGRpbmctdmVydGljYWw7XG4gICAgcGFkZGluZy1ib3R0b206ICRpbnRlcmFjdGlvbi1sYXllci1idXR0b24tYmFyLXBhZGRpbmctdmVydGljYWw7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGludGVyYWN0aW9uLWxheWVyLWJhY2tncm91bmQtY29sb3I7XG4gICAgYm94LXNoYWRvdzogJGludGVyYWN0aW9uLWxheWVyLWJ1dHRvbi1iYXItc2hhZG93O1xuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSU5URVJBQ1RJT04tTEFZRVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2tvZGEtaW50ZXJhY3Rpb24tbGF5ZXItYmFja2Ryb3AtZmlsdGVyOiAkQkFDS0RST1AtRklMVEVSICFkZWZhdWx0O1xuXG4uYy1pbnRlcmFjdGlvbi1sYXllcl9fd3JhcHBlciB7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBiYWNrZHJvcC1maWx0ZXI6ICRza29kYS1pbnRlcmFjdGlvbi1sYXllci1iYWNrZHJvcC1maWx0ZXI7XG4gICAgfVxuXG59XG5cbi5jLWludGVyYWN0aW9uLWxheWVyX19jbG9zZS1idG4ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1pY29uLXN0YXRlcygpO1xufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1BST0RVQ1QtU0VBUkNILUhFQURFUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRwcm9kdWN0LXNlYXJjaC1oZWFkZXItYnJlYWtwb2ludDogICAgICAgICAgICAgICAgICAgICBtICFkZWZhdWx0O1xuJHByb2R1Y3Qtc2VhcmNoLWhlYWRlci1hY3Rpb25zLWZ1bGwtd2lkdGgtYnJlYWtwb2ludDogIHhzICFkZWZhdWx0O1xuJHByb2R1Y3Qtc2VhcmNoLWhlYWRlci1pdGVtcy1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuXG4kcHJvZHVjdC1zZWFyY2gtaGVhZGVyLWxhYmVsLWhpZGRlbjogICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcblxuJHByb2R1Y3Qtc2VhcmNoLWhlYWRlci1hY3Rpb25zLXNwYWNpbmc6ICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuXG4kcHJvZHVjdC1zZWFyY2gtaGVhZGVyLWZpbHRlci1iYXItZmxvYXQtZ3JpZC1hcmVhOiAgICAgYm90dG9tICFkZWZhdWx0O1xuJHByb2R1Y3Qtc2VhcmNoLWhlYWRlci1maWx0ZXItYmFyLXZpc2libGUtY2xhc3M6ICAgICAgIG1hcC1nZXQoJElOVEVSU0VDVElPTi1IT09LUywgb3V0c2lkZSkgIWRlZmF1bHQ7XG4kcHJvZHVjdC1zZWFyY2gtaGVhZGVyLWZpbHRlci1iYXItYmFja2dyb3VuZC1jb2xvcjogICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJHByb2R1Y3Qtc2VhcmNoLWhlYWRlci1maWx0ZXItYmFyLXNwYWNpbmctdmVydGljYWw6ICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiRwcm9kdWN0LXNlYXJjaC1oZWFkZXItZmlsdGVyLWJhci1sYXllcjogICAgICAgICAgICAgICB6KFwicHJvZHVjdC1zZWFyY2gtZmlsdGVyLWJhclwiKSAhZGVmYXVsdDtcbiRwcm9kdWN0LXNlYXJjaC1oZWFkZXItZmlsdGVyLWJhci1ib3gtc2hhZG93OiAgICAgICAgICAkR0xPQkFMLUJPWC1TSEFET1cgIWRlZmF1bHQ7XG4kcHJvZHVjdC1zZWFyY2gtaGVhZGVyLWZpbHRlci1iYXItYm94LXNoYWRvdy1pbnZlcnRlZDogJEdMT0JBTC1CT1gtU0hBRE9XLUlOVkVSVEVEICFkZWZhdWx0O1xuJHByb2R1Y3Qtc2VhcmNoLWhlYWRlci1maWx0ZXItYmFyLXRyYW5zaXRpb24tZHVyYXRpb246ICRHTE9CQUwtVFJBTlNJVElPTi1EVVJBVElPTiAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gRW5mb3JjZSBmdWxsIHdpZHRoIHdoZW4gd3JhcHBlZCBhbmQgaW4gc2VwYXJhdGUgcm93LlxuICogWzJdIFNob3cgaXRlbXMgNTAlIGJ1dCBhY2NvdW50IGZvciBnYXAgdG8gcmVtb3ZlIHByZW1hdHVyZSB3cmFwcGluZy5cbiAqIFszXSBPdmVyd3JpdGUgYnRuIG1vZGlmaWVycy5cbiAqIFs0XSBQb3NpdGlvbiB0aGUgZmlsdGVyIGJhciBmaXhlZCB0byB0aGUgdG9wIG9uIGxhcmdlIHNjcmVlbnMgYW5kIG1ha2UgaXRcbiAqICAgICBzcGFuIHRoZSB3aG9sZSB3aWR0aC5cbiAqIFs1XSBPZmZzZXQgdGhlIGJhciBvZmYtc2NyZWVuIHRvIHRoZSB0b3AuXG4gKiBbNl0gUmVtb3ZlIGFueSBgYm94LXNoYWRvd2Agc2luY2UgdGhlIGJhciBpcyBvZmYtY2FudmFzLlxuICogWzddIE9uIHNtYWxsZXIgdmlld3BvcnRzIHRoZSBiYXIgaXMgcGVybWFuZW50bHkgZGlzcGxheWVkIGF0IHRoZSBib3R0b20gb2YgdGhlXG4gKiAgICAgc2NyZWVuLlxuICogWzhdIEFsd2F5cyBzaG93IGBib3gtc2hhZG93YCBvbiBzbWFsbGVyIHZpZXdwb3J0cyAod2hlbiB0aGUgYmFyIGlzIGFsd2F5c1xuICogICAgIHZpc2libGUpLlxuICogWzldICBEaXNwbGF5IHRoZSBub3JtYWwgYGJveC1zaGFkb3dgIG9ubHkgb24gbGFyZ2VyIHNjcmVlbnMgd2hlbiByZXZlYWxlZC5cbiAqIFsxMF0gUmV2ZWFsIHRoZSBiYXIgd2hlbiBpdHMgc2Nyb2xsIG9ic2VydmVyIGhhcyBhY3RpdmF0ZWQgaXQgb24gbGFyZ2VyIHZpZXdwb3J0cy5cbiAqIFsxMV0gUmVtb3ZlIHVud2FudGVkIHZlcnRpY2FsIHNwYWNpbmcuXG4gKiBbMTJdIEFsd2F5cyBoaWRlIHRoZSB0aXRsZSBvbiBzbWFsbGVyIHZpZXdwb3J0cyBhbmQgb25seSBzaG93IHRoZSBidXR0b25cbiAqICAgICAgKHdoZW4gdGhlIGJhciBpcyBhbHdheXMgdmlzaWJsZSkuXG4gKiBbMTNdIEhpZGUgdGhlIGZpbHRlciB0b2dnbGUgYnV0dG9uIGluIHRoZSBzdGF0aWMgaGVhZGVyIG9uIHNtYWxsIHZpZXdwb3J0c1xuICogICAgICBhcyBpdCBpcyBhbHdheXMgdmlzaWJsZSBkdWUgdG8gdGhlIGZpeGVkIGJvdHRvbSBiYXIuXG4gKiBbMTRdIEhpZGUgdGhlIGZpbHRlciB0b2dnbGUgd2hlbiB0aGUgc2lkZWJhciBpcyBhbHJlYWR5IHZpc2libGUuXG4gKiBbMTVdIE1vdmUgZmlsdGVyIHRvIEZsb2F0IEdyaWQgYXJlYSAoZm9yIHNtYWxsIHZpZXdwb3J0cykuXG4gKi9cbi5jLXByb2R1Y3Qtc2VhcmNoLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6ICRwcm9kdWN0LXNlYXJjaC1oZWFkZXItaXRlbXMtc3BhY2luZztcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4gICAgLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX190aXRsZSB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTsgLyogWzFdICovXG4gICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAuYy1wcm9kdWN0LXNlYXJjaC1oZWFkZXJfX2ZpbHRlci10b2dnbGUge1xuICAgICAgICBmbGV4LWdyb3c6IDA7IC8qIFsxXSAqL1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPiN7JHByb2R1Y3Qtc2VhcmNoLWhlYWRlci1icmVha3BvaW50fVwiKSB7XG5cbiAgICAgICAgICAgIC5jLXByb2R1Y3Qtc2VhcmNoLS1oYXMtc2lkZWJhciAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skcHJvZHVjdC1zZWFyY2gtaGVhZGVyLWFjdGlvbnMtZnVsbC13aWR0aC1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuXG4gICAgICAgICAgICAuYy1wcm9kdWN0LXNlYXJjaC1oZWFkZXItLXN0aWNreSA+ICYgeyAvKiBbMTNdICovXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgPiAuYy1idG4ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXByb2R1Y3Qtc2VhcmNoLWhlYWRlcl9fYm9keSB7XG4gICAgICAgIC8vIGZsZXgtY29udGFpbmVyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogJHByb2R1Y3Qtc2VhcmNoLWhlYWRlci1pdGVtcy1zcGFjaW5nO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcblxuICAgICAgICAvLyBmbGV4LWl0ZW1cbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skcHJvZHVjdC1zZWFyY2gtaGVhZGVyLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX19maWx0ZXIge1xuICAgICAgICAvLyBmbGV4LWNvbnRhaW5lclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6ICRwcm9kdWN0LXNlYXJjaC1oZWFkZXItaXRlbXMtc3BhY2luZztcbiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuXG4gICAgICAgIC8vIGZsZXgtaXRlbVxuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRwcm9kdWN0LXNlYXJjaC1oZWFkZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgLy8gZmxleC1jb250YWluZXJcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgICAgICAgLy8gZmxleC1pdGVtXG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAgICAgLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX19maWx0ZXJfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpZiAoJHByb2R1Y3Qtc2VhcmNoLWhlYWRlci1sYWJlbC1oaWRkZW4pIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhMTF5LWhpZGRlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX19maWx0ZXJfX3RhZ3Mge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX19maWx0ZXJfX3Jlc2V0IHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgIC5jLXByb2R1Y3Qtc2VhcmNoLWhlYWRlcl9fYWN0aW9ucyB7XG4gICAgICAgIC8vIGZsZXgtY29udGFpbmVyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogJHByb2R1Y3Qtc2VhcmNoLWhlYWRlci1hY3Rpb25zLXNwYWNpbmc7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAvLyBmbGV4LWl0ZW1cbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuXG4gICAgICAgIC5jLXByb2R1Y3Qtc2VhcmNoLWhlYWRlcl9fYWN0aW9uc19faXRlbSB7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRwcm9kdWN0LXNlYXJjaC1oZWFkZXItYWN0aW9ucy1mdWxsLXdpZHRoLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogY2FsYyg1MCUgLSAjeyRwcm9kdWN0LXNlYXJjaC1oZWFkZXItYWN0aW9ucy1zcGFjaW5nICogMC41fSk7IC8qIFsyXSAqL1xuXG4gICAgICAgICAgICAgICAgPiAqIHtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBpbXBvcnRhbnQoY2VudGVyLCB0cnVlKTsgLyogWzNdICovXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAuYy1wcm9kdWN0LXNlYXJjaC1oZWFkZXJfX2FjdGlvbnNfX2l0ZW0tLXdyYXAge1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIj4jeyRwcm9kdWN0LXNlYXJjaC1oZWFkZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX19zb3J0IHtcbiAgICAgICAgLy8gZmxleC1jb250YWluZXJcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skcHJvZHVjdC1zZWFyY2gtaGVhZGVyLWFjdGlvbnMtZnVsbC13aWR0aC1icmVha3BvaW50fVwiKSB7XG5cbiAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXByb2R1Y3Qtc2VhcmNoLWhlYWRlcl9fZmlsdGVyLWJhciB7XG4gICAgICAgIEBpbmNsdWRlIGZsb2F0LWdyaWQtYXJlYShcbiAgICAgICAgICAgICRhcmVhOiAkcHJvZHVjdC1zZWFyY2gtaGVhZGVyLWZpbHRlci1iYXItZmxvYXQtZ3JpZC1hcmVhLFxuICAgICAgICApOyAvKiBbMTVdICovXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oXG4gICAgICAgICAgICAkdHJhbnNpdGlvbi1wcm9wZXJ0eTogXCJ2aXNpYmlsaXR5LCB0cmFuc2Zvcm1cIixcbiAgICAgICAgICAgICR0cmFuc2l0aW9uLWR1cmF0aW9uOiBcIjBzLCAjeyRwcm9kdWN0LXNlYXJjaC1oZWFkZXItZmlsdGVyLWJhci10cmFuc2l0aW9uLWR1cmF0aW9ufVwiLFxuICAgICAgICApO1xuICAgICAgICB0b3A6IDA7IC8qIFs0XSAqL1xuICAgICAgICByaWdodDogMDsgLyogWzRdICovXG4gICAgICAgIGxlZnQ6IDA7IC8qIFs0XSAqL1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy10b3A6ICRwcm9kdWN0LXNlYXJjaC1oZWFkZXItZmlsdGVyLWJhci1zcGFjaW5nLXZlcnRpY2FsO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHByb2R1Y3Qtc2VhcmNoLWhlYWRlci1maWx0ZXItYmFyLXNwYWNpbmctdmVydGljYWw7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9kdWN0LXNlYXJjaC1oZWFkZXItZmlsdGVyLWJhci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICBib3gtc2hhZG93OiBub25lOyAvKiBbNl0gKi9cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skcHJvZHVjdC1zZWFyY2gtaGVhZGVyLWFjdGlvbnMtZnVsbC13aWR0aC1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgLyogWzd8ICovXG5cbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAmI3skcHJvZHVjdC1zZWFyY2gtaGVhZGVyLWZpbHRlci1iYXItdmlzaWJsZS1jbGFzc30ge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6ICRwcm9kdWN0LXNlYXJjaC1oZWFkZXItZmlsdGVyLWJhci1ib3gtc2hhZG93LWludmVydGVkOyAvKiBbOF0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPiN7JHByb2R1Y3Qtc2VhcmNoLWhlYWRlci1hY3Rpb25zLWZ1bGwtd2lkdGgtYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOyAvKiBbNF0gKi9cbiAgICAgICAgICAgIHotaW5kZXg6ICRwcm9kdWN0LXNlYXJjaC1oZWFkZXItZmlsdGVyLWJhci1sYXllcjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7IC8qIFs1XSAqL1xuXG4gICAgICAgICAgICAmI3skcHJvZHVjdC1zZWFyY2gtaGVhZGVyLWZpbHRlci1iYXItdmlzaWJsZS1jbGFzc30ge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6ICRwcm9kdWN0LXNlYXJjaC1oZWFkZXItZmlsdGVyLWJhci1ib3gtc2hhZG93OyAvKiBbOV0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI+I3skcHJvZHVjdC1zZWFyY2gtaGVhZGVyLWJyZWFrcG9pbnR9XCIpIHtcblxuICAgICAgICAgICAgLmMtcHJvZHVjdC1zZWFyY2gtLWhhcy1zaWRlYmFyICYsXG4gICAgICAgICAgICAmLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX19maWx0ZXItYmFyLS1zaWRlYmFyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBbMTRdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgICYjeyRwcm9kdWN0LXNlYXJjaC1oZWFkZXItZmlsdGVyLWJhci12aXNpYmxlLWNsYXNzfSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IC8qIFsxMF0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX19maWx0ZXItYmFyX19pbm5lciB7XG4gICAgICAgIEBpbmNsdWRlIHBhZ2Utd3JhcCgpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6ICRwcm9kdWN0LXNlYXJjaC1oZWFkZXItaXRlbXMtc3BhY2luZztcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgfVxuXG4gICAgLmMtcHJvZHVjdC1zZWFyY2gtaGVhZGVyX19maWx0ZXItYmFyX190aXRsZSB7XG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgLyogWzExXSAqL1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRwcm9kdWN0LXNlYXJjaC1oZWFkZXItYWN0aW9ucy1mdWxsLXdpZHRoLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IC8qIFsxMl0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAjUFJPRFVDVCBTRUFSQ0ggRk9STVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRwcm9kdWN0LXNlYXJjaC1mb3JtLWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICAgbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXNlYXJjaC1mb3JtLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG4kcHJvZHVjdC1zZWFyY2gtZm9ybS1zaGFkb3c6ICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kcHJvZHVjdC1zZWFyY2gtZm9ybS1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICRDT0xPUi1CQVNFLUJBQ0tHUk9VTkQgIWRlZmF1bHQ7XG4kcHJvZHVjdC1zZWFyY2gtZm9ybS1ib3JkZXI6ICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kcHJvZHVjdC1zZWFyY2gtZm9ybS1idXR0b24tY29udGFpbmVyLXNwYWNpbmc6ICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJHByb2R1Y3Qtc2VhcmNoLWZvcm0tcmVzdWx0LWJ1dHRvbi1zcGFjaW5nOiAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gQ2hhbmdlIHRoZSBmbGV4LWRpcmVjdGlvbiBmb3IgdGhlIHZlcnRpY2FsIG1vZGUgdG8gZGlzcGxheSB0aGUgcmVzdWx0XG4gKiAgICAgYnV0dG9uIGFib3ZlIHRoZSBjaGVjayBtb3JlIGZpbHRlcnMgYnV0dG9uLlxuICogWzJdIEFkYXB0IGJ1dHRvbiB3aWR0aCB0byB0aGUgbWVkaWEtcXVlcnkgYnJlYWtwb2ludHMuXG4gKi9cbi5jLXByb2R1Y3Qtc2VhcmNoLWZvcm0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmc6ICRwcm9kdWN0LXNlYXJjaC1mb3JtLXBhZGRpbmc7XG4gICAgYm9yZGVyOiAkcHJvZHVjdC1zZWFyY2gtZm9ybS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2R1Y3Qtc2VhcmNoLWZvcm0tYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3gtc2hhZG93OiAkcHJvZHVjdC1zZWFyY2gtZm9ybS1zaGFkb3c7XG5cbiAgICA+ICoge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIH1cblxufVxuXG4gICAgLmMtcHJvZHVjdC1zZWFyY2gtZm9ybV9faGVhZGluZyB7XG4gICAgfVxuXG4gICAgLmMtcHJvZHVjdC1zZWFyY2gtZm9ybV9fYWN0aW9uLWJ1dHRvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JHByb2R1Y3Qtc2VhcmNoLWZvcm0tYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyAvKiBbMV0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtcHJvZHVjdC1zZWFyY2gtZm9ybV9fYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogJHByb2R1Y3Qtc2VhcmNoLWZvcm0tYnV0dG9uLWNvbnRhaW5lci1zcGFjaW5nO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyAvKiBbMV0gKi9cbiAgICB9XG5cbiAgICAuYy1wcm9kdWN0LXNlYXJjaC1mb3JtX19yZXNldC1idXR0b24ge1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRwcm9kdWN0LXNlYXJjaC1mb3JtLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXByb2R1Y3Qtc2VhcmNoLWZvcm1fX3Jlc3VsdC1idXR0b24ge1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRwcm9kdWN0LXNlYXJjaC1mb3JtLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgIHdpZHRoOiBpbXBvcnRhbnQoMTAwJSwgdHJ1ZSk7IC8qIFsyXSAqL1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBpbXBvcnRhbnQoMTAwJSwgdHJ1ZSk7IC8qIFsyXSAqL1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3Qtc2VhcmNoLWZvcm0tcmVzdWx0LWJ1dHRvbi1zcGFjaW5nO1xuICAgICAgICB9XG5cbiAgICB9XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSU5ESUNBVE9SLURPVCAoU2V0dGluZ3MpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGluZGljYXRvci1kb3Qtb2Zmc2V0OiAgICAxcHggIWRlZmF1bHQ7XG4kaW5kaWNhdG9yLWRvdC10ZXh0LXNpemU6ICRHTE9CQUwtU1RBVFVTLVRFWFQtU0laRSAhZGVmYXVsdDtcblxuJGluZGljYXRvci1kb3QtdGhlbWVzLW92ZXJ3cml0ZXM6IChcbiAgICBcImluZm9cIjogKFxuICAgICAgICBcInRleHQtY29sb3JcIjogJElORElDQVRPUi1ET1QtTEFCRUwtQ09MT1IsXG4gICAgKSxcbiAgICBcInN1Y2Nlc3NcIjogKFxuICAgICAgICBcInRleHQtY29sb3JcIjogJElORElDQVRPUi1ET1QtTEFCRUwtQ09MT1IsXG4gICAgKSxcbiAgICBcIndhcm5pbmdcIjogKFxuICAgICAgICBcInRleHQtY29sb3JcIjogJElORElDQVRPUi1ET1QtTEFCRUwtQ09MT1IsXG4gICAgKSxcbiAgICBcInVucmVhZFwiOiAoXG4gICAgICAgIFwiaWNvbi1jb2xvclwiOiAkQ09MT1ItT04tU1VSRkFDRS0yMDAsXG4gICAgKSxcbikgIWRlZmF1bHQ7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSU5ESUNBVE9SLURPVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRpbmRpY2F0b3ItZG90LXNpemU6ICAgICAgJElORElDQVRPUi1ET1QtU0laRSAhZGVmYXVsdDtcbiRpbmRpY2F0b3ItZG90LW9mZnNldDogICAgJGluZGljYXRvci1kb3Qtc2l6ZSAhZGVmYXVsdDtcbiRpbmRpY2F0b3ItZG90LXNwYWNpbmc6ICAgJElORElDQVRPUi1ET1QtU1BBQ0lORyAhZGVmYXVsdDtcbiRpbmRpY2F0b3ItZG90LWNvbG9yOiAgICAgJElORElDQVRPUi1ET1QtQ09MT1IgIWRlZmF1bHQ7XG4kaW5kaWNhdG9yLWRvdC10ZXh0LXNpemU6IG51bGwgIWRlZmF1bHQ7XG5cbi8vIEBUT0RPOiBSZWZhY3RvciBfc2V0dGluZ3Muc3RhdHVzLnNjc3MgYW5kIGNvbXBvbmVudHMgKGUuIGcuIEluZGljYXRvciBEb3QsXG4vLyAgICAgU3RhdHVzIE1lc3NhZ2UsIOKApikgdG8gdXNlIGNvbnNpc3RlbnQgYW5kIGdsb2JhbCBydWxlcyB0byBzZXQgc3RhdHVzXG4vLyAgICAgdGV4dC9pY29uIGNvbG9ycy5cbi8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiRpbmRpY2F0b3ItZG90LXRoZW1lczogbWFwLWRlZXAtbWVyZ2UoJElORElDQVRPUi1ET1QtVEhFTUVTLCAoXG4gICAgXCJzdWNjZXNzXCI6IChcbiAgICAgICAgXCJ0ZXh0LWNvbG9yXCI6ICRDT0xPUi1TVUNDRVNTLFxuICAgICksXG4gICAgXCJlcnJvclwiOiAoXG4gICAgICAgIFwidGV4dC1jb2xvclwiOiAkQ09MT1ItQUxFUlQsXG4gICAgKSxcbiAgICBcInVucmVhZFwiOiAoXG4gICAgICAgIFwiaWNvbi1jb2xvclwiOiAkQ09MT1ItSU5GTyxcbiAgICAgICAgXCJ0ZXh0LWNvbG9yXCI6ICAgICAgICRHTE9CQUwtU1RBVFVTLVRFWFQtQ09MT1IsXG4gICAgKSxcbiksIDIpICFkZWZhdWx0O1xuLyogc3R5bGVsaW50LWVuYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG5cbi8vIE1lcmdlIGRlZmF1bHQgYW5kIG92ZXJ3cml0ZSBzZXR0aW5ncyB0byBhdm9pZCBkdXBsaWNhdGlvbnNcbi8vIGFuZCBvdmVyd3JpdGUgb25seSBuZWNlc3Nhcnkgc2V0dGluZ3MuXG4kaW5kaWNhdG9yLWRvdC10aGVtZXMtb3ZlcndyaXRlczogKCkgIWRlZmF1bHQ7XG4kaW5kaWNhdG9yLWRvdC10aGVtZXMtbWVyZ2VkOiAgICAgbWFwLWRlZXAtbWVyZ2UoJGluZGljYXRvci1kb3QtdGhlbWVzLCAkaW5kaWNhdG9yLWRvdC10aGVtZXMtb3ZlcndyaXRlcywgMikgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIEtlZXAgZG90IHNpemUsIGF2b2lkIGRpc3RvcnRpb24uXG4gKiBbMl0gQWxpZ24gaW4tbGluZSB3aXRoIGZpcnN0IGxpbmUuIGBiYXNlbGluZWAgY3JlYXRlcyBhbiBvZmZzZXQuXG4gKi9cbi5jLWluZGljYXRvci1kb3Qge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyAvKiBbMl0gKi9cbn1cblxuICAgIC5jLWluZGljYXRvci1kb3RfX2RvdCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMDsgLyogWzFdICovXG4gICAgICAgIGZsZXgtc2hyaW5rOiAwOyAvKiBbMV0gKi9cbiAgICAgICAgZmxleC1iYXNpczogYXV0bzsgLyogWzFdICovXG4gICAgICAgIHdpZHRoOiAkaW5kaWNhdG9yLWRvdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRpbmRpY2F0b3ItZG90LXNpemU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJGluZGljYXRvci1kb3Qtc3BhY2luZztcbiAgICAgICAgdHJhbnNmb3JtOiBpZigkaW5kaWNhdG9yLWRvdC1vZmZzZXQsIHRyYW5zbGF0ZVkoJGluZGljYXRvci1kb3Qtb2Zmc2V0KSwgbnVsbCk7IC8qIFsyXSAqL1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbmRpY2F0b3ItZG90LWNvbG9yO1xuICAgIH1cblxuICAgIGJ1dHRvbi5jLWluZGljYXRvci1kb3RfX2RvdCB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWJ1dHRvbihcbiAgICAgICAgICAgICRiYWNrZ3JvdW5kLWNvbG9yOiBudWxsLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC5jLWluZGljYXRvci1kb3RfX2xhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAgICRpbmRpY2F0b3ItZG90LXRleHQtc2l6ZSxcbiAgICAgICAgICAgICRsaW5lLWhlaWdodDogMSxcbiAgICAgICAgICAgICRhY2NlcHQtbnVsbDogdHJ1ZSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSB2YXJ5KCRjcmVhdGU6IGN1c3RvbSwgJGxvb3A6ICRpbmRpY2F0b3ItZG90LXRoZW1lcy1tZXJnZWQpIHtcblxuICAgICAgICAuYy1pbmRpY2F0b3ItZG90LS0jeyR2YXJ5LWxvb3AtZW50aXR5fSB7XG5cbiAgICAgICAgICAgIC5jLWluZGljYXRvci1kb3RfX2RvdCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyeS1nZXQoXCJpY29uLWNvbG9yXCIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYy1pbmRpY2F0b3ItZG90X19sYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcnktZ2V0KFwidGV4dC1jb2xvclwiKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjSU5ESUNBVE9SLURPVFxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRJTkRJQ0FUT1ItRE9ULVNJWkU6ICAgICAgICAxNHB4ICFkZWZhdWx0O1xuJElORElDQVRPUi1ET1QtTEFCRUwtQ09MT1I6ICRHTE9CQUwtU1RBVFVTLVRFWFQtQ09MT1IgIWRlZmF1bHQ7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjU0VDVElPTi1OQVZcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2VjdGlvbi1uYXYtYnJlYWtwb2ludDogICAgICAgICAgICAgICAgICAgICAgICAgcyAhZGVmYXVsdDtcbiRzZWN0aW9uLW5hdi1icmVha3BvaW50LXZhbHVlOiAgICAgICAgICAgICAgICAgICBtYXAtZ2V0KCRCUkVBS1BPSU5UUywgJHNlY3Rpb24tbmF2LWJyZWFrcG9pbnQpICFkZWZhdWx0O1xuLy8gTWFnaWMgbnVtYmVyIHRvIHByb3Blcmx5IGRlZmluZSB0aGUgdG9wIG1hcmdpbiBvZiB0aGUgc2Nyb2xsIHNuYXAgYXJlYSBhbmRcbi8vIHRvIHByZXZlbnQgYC5jLXNlY3Rpb24tbmF2X19oZWFkZXJgIGZyb20gaGF2aW5nIGEgZGlmZmVyZW50IGhlaWdodFxuLy8gb24gc21hbGxlciB2aWV3cG9ydHMgd2hlbiB0aGUgY2FsbC10by1hY3Rpb24gaXMgaGlkZGVuLlxuJHNlY3Rpb24tbmF2LWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY0cHggIWRlZmF1bHQ7XG4kc2VjdGlvbi1uYXYtYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJHNlY3Rpb24tbmF2LXNoYWRvdzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtQk9YLVNIQURPVyAhZGVmYXVsdDtcbiRzZWN0aW9uLW5hdi16LWluZGV4OiAgICAgICAgICAgICAgICAgICAgICAgICAgICB6KFwic2VjdGlvbi1uYXZcIikgIWRlZmF1bHQ7XG4kc2VjdGlvbi1uYXYtcmVzcG9uc2l2ZS1vZmZzZXQtdG9wOiAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcbiRzZWN0aW9uLW5hdi1ib3JkZXItdG9wOiAgICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHNlY3Rpb24tbmF2LWJhY2tkcm9wLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtQkFDS0RST1AtQkFDS0dST1VORCAhZGVmYXVsdDtcblxuJHNlY3Rpb24tbmF2LXdyYXBwZXItc3BhY2luZy12ZXJ0aWNhbDogICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiRzZWN0aW9uLW5hdi13cmFwcGVyLXNwYWNpbmctaG9yaXpvbnRhbDogICAgICAgICAkcGFnZS13cmFwLXBhZGRpbmctaG9yaXpvbnRhbCAhZGVmYXVsdDtcblxuJHNlY3Rpb24tbmF2LWl0ZW0tdGV4dC1zaXplOiAgICAgICAgICAgICAgICAgICAgICRGUy0xICFkZWZhdWx0O1xuJHNlY3Rpb24tbmF2LWl0ZW0tZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kc2VjdGlvbi1uYXYtaXRlbS1mb250LXdlaWdodC1pcy1hY3RpdmU6ICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xEICFkZWZhdWx0O1xuJHNlY3Rpb24tbmF2LWl0ZW0taGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtSEVJR0hUICFkZWZhdWx0O1xuJHNlY3Rpb24tbmF2LWl0ZW0tc3BhY2luZy12ZXJ0aWNhbDogICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTCAhZGVmYXVsdDtcbiRzZWN0aW9uLW5hdi1pdGVtLXNwYWNpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAkcGFnZS13cmFwLXBhZGRpbmctaG9yaXpvbnRhbCAhZGVmYXVsdDtcblxuJHNlY3Rpb24tbmF2LWxpbmstYm9yZGVyLWJvdHRvbS13aWR0aDogICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kc2VjdGlvbi1uYXYtbGluay1ib3JkZXItYm90dG9tLXN0eWxlOiAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRzZWN0aW9uLW5hdi1saW5rLWJvcmRlci1ib3R0b20tY29sb3I6ICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHNlY3Rpb24tbmF2LWxpbmstYm9yZGVyLWJvdHRvbTogICAgICAgICAgICAgICAgICRzZWN0aW9uLW5hdi1saW5rLWJvcmRlci1ib3R0b20td2lkdGggJHNlY3Rpb24tbmF2LWxpbmstYm9yZGVyLWJvdHRvbS1zdHlsZSAkc2VjdGlvbi1uYXYtbGluay1ib3JkZXItYm90dG9tLWNvbG9yICFkZWZhdWx0O1xuJHNlY3Rpb24tbmF2LWxpbmstYWN0aXZlLXNlbGVjdG9yOiAgICAgICAgICAgICAgIFwiLmlzLWFjdGl2ZVwiICFkZWZhdWx0O1xuJHNlY3Rpb24tbmF2LWxpbmstY29sb3ItaG92ZXI6ICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kc2VjdGlvbi1uYXYtbGluay1jb2xvci1ob3Zlci1pcy1hY3RpdmU6ICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJHNlY3Rpb24tbmF2LWxpbmstaGFzLXRyYW5zaXRpb246ICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuXG4kc2VjdGlvbi1uYXYtYXJyb3ctY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuXG4kc2VjdGlvbi1uYXYtaWNvbi1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKHhzbWFsbCkgIWRlZmF1bHQ7XG4kc2VjdGlvbi1uYXYtaWNvbi1wcmV2OiAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtYmFjaykgIWRlZmF1bHQ7XG4kc2VjdGlvbi1uYXYtaWNvbi1uZXh0OiAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtZm9yd2FyZCkgIWRlZmF1bHQ7XG4kc2VjdGlvbi1uYXYtaWNvbi1zaG93OiAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtZXhwYW5kKSAhZGVmYXVsdDtcbiRzZWN0aW9uLW5hdi1pY29uLWhpZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1jb2xsYXBzZSkgIWRlZmF1bHQ7XG5cbiRzZWN0aW9uLW5hdi1idXR0b24tc3BhY2luZy1ob3Jpem9udGFsOiAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1MQVJHRSAhZGVmYXVsdDtcblxuJHNlY3Rpb24tbmF2LWFjdGl2ZS1iZWxvdy1jbGFzczogICAgICAgICAgICAgICAgIG1hcC1nZXQoJElOVEVSU0VDVElPTi1IT09LUywgaW5zaWRlKSArIG1hcC1nZXQoJElOVEVSU0VDVElPTi1IT09LUywgYmVsb3ctZW50ZXIpICFkZWZhdWx0O1xuJHNlY3Rpb24tbmF2LWFjdGl2ZS1hYm92ZS1jbGFzczogICAgICAgICAgICAgICAgIG1hcC1nZXQoJElOVEVSU0VDVElPTi1IT09LUywgaW5zaWRlKSArIG1hcC1nZXQoJElOVEVSU0VDVElPTi1IT09LUywgYWJvdmUtZW50ZXIpICFkZWZhdWx0O1xuJHNlY3Rpb24tbmF2LWFjdGl2ZS1zdGlja3ktY2xhc3M6ICAgICAgICAgICAgICAgIG1hcC1nZXQoJElOVEVSU0VDVElPTi1IT09LUywgYWJvdmUtbGVhdmUpICFkZWZhdWx0O1xuXG4kc2VjdGlvbi1uYXYtdHJhbnNpdGlvbi1kdXJhdGlvbjogICAgICAgICAgICAgICAgJEdMT0JBTC1UUkFOU0lUSU9OLURVUkFUSU9OICFkZWZhdWx0O1xuXG4kc2VjdGlvbi1uYXYtbGFiZWwtdGV4dC1hbGlnbjogICAgICAgICAgICAgICAgICAgbGVmdCAhZGVmYXVsdDtcbiRzZWN0aW9uLW5hdi1sYWJlbC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kc2VjdGlvbi1uYXYtbGFiZWwtc3BhY2luZy1ob3Jpem9udGFsOiAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG5cbiRzZWN0aW9uLW5hdi1saXN0LWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAkc2VjdGlvbi1uYXYtYmFja2dyb3VuZC1jb2xvciAhZGVmYXVsdDtcbiRzZWN0aW9uLW5hdi1saXN0LXNwYWNpbmctdmVydGljYWw6ICAgICAgICAgICAgICAkc2VjdGlvbi1uYXYtd3JhcHBlci1zcGFjaW5nLXZlcnRpY2FsICFkZWZhdWx0O1xuJHNlY3Rpb24tbmF2LWxpc3QtYm9yZGVyLWJvdHRvbTogICAgICAgICAgICAgICAgICRzZWN0aW9uLW5hdi1oZWlnaHQgc29saWQgJHNlY3Rpb24tbmF2LWxpc3QtYmFja2dyb3VuZC1jb2xvciAhZGVmYXVsdDtcbiRzZWN0aW9uLW5hdi1saXN0LXNjcm9sbC1oaW50LXdpZHRoOiAgICAgICAgICAgICA0cmVtICFkZWZhdWx0O1xuJHNlY3Rpb24tbmF2LWxpc3Qtc2Nyb2xsLWhpbnQtZ3JhZGllbnQtY29sb3ItMTogIHJnYmEoJHNlY3Rpb24tbmF2LWxpc3QtYmFja2dyb3VuZC1jb2xvciwgMC4xKSAhZGVmYXVsdDtcbiRzZWN0aW9uLW5hdi1saXN0LXNjcm9sbC1oaW50LWdyYWRpZW50LWNvbG9yLTI6ICAkc2VjdGlvbi1uYXYtbGlzdC1iYWNrZ3JvdW5kLWNvbG9yICFkZWZhdWx0O1xuJHNlY3Rpb24tbmF2LWxpc3Qtc2Nyb2xsLWhpbnQtZ3JhZGllbnQtdG8tbGVmdDogIGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCAkc2VjdGlvbi1uYXYtbGlzdC1zY3JvbGwtaGludC1ncmFkaWVudC1jb2xvci0xLCAkc2VjdGlvbi1uYXYtbGlzdC1zY3JvbGwtaGludC1ncmFkaWVudC1jb2xvci0yKSAhZGVmYXVsdDtcbiRzZWN0aW9uLW5hdi1saXN0LXNjcm9sbC1oaW50LWdyYWRpZW50LXRvLXJpZ2h0OiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRzZWN0aW9uLW5hdi1saXN0LXNjcm9sbC1oaW50LWdyYWRpZW50LWNvbG9yLTEsICRzZWN0aW9uLW5hdi1saXN0LXNjcm9sbC1oaW50LWdyYWRpZW50LWNvbG9yLTIpICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSAgTW92ZSB0aGUgc2VjdGlvbiBuYXYgb2ZmLWNhbnZhcyBhbmQgZGlzcGxheSBpdCB3aGVuXG4gKiAgICAgIHRoZSB0cmFja2VkIHNlY3Rpb24gYXBwZWFycy5cbiAqIFsyXSAgQWxpZ24gdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBzZWN0aW9uIG5hdiBoZWFkZXIgdmlhIGdyaWQgYW5kIG1ha2VcbiAqICAgICAgdGhlIHNlY3Rpb24gbGFiZWwgYXMgdGFsbCBhcyBwb3NzaWJsZS4gSGlkZSBpdCBvbiBsYXJnZXIgdmlld3BvcnRzLlxuICogWzNdICBBbGlnbiB0aGUgc2Nyb2xsYWJsZSBsaXN0IGFuZCBhIHBvc3NpYmxlIGluc2lkZSB0aGUgc2VjdGlvbiBuYXZcbiAqICAgICAgY29udGFpbmVyIHZpYSBncmlkIGFuZCBtYWtlIHRoZSBsaXN0IGFzIHRhbGwgYXMgcG9zc2libGUuIERpc3BsYXlcbiAqICAgICAgdGhlIHNlY3Rpb24gY29udGFpbmVyIG9uIHNtYWxsZXIgdmlld3BvcnRzIHZpYSB0aGUgYC5pcy12aXNpYmxlYCBjbGFzc1xuICogICAgICBhbmQgaGlkZSBpdCBvdGhlcndpc2UuXG4gKiBbNF0gIEluaGVyaXQgdGhlIGdyaWQgdG8gcHJveHkgdGhlIGdyaWQgYmVoYXZpb3IuIEFub3RoZXIgcG9zc2liaWxpdHkgd291bGRcbiAqICAgICAgYmUgYGRpc3BsYXk6IGNvbnRlbnRgIGlmIHdlIGRlY2lkZSBhZ2FpbnN0IHRoZSBzY3JvbGwgYnV0dG9ucy5cbiAqIFs1XSAgSGlkZSBzY3JvbGxiYXJzIGFzIHdlIGltcGxlbWVudCBjdXN0b20gcGFnaW5nIGFuZCBzY3JvbGwgaGludHMuXG4gKiBbNl0gIE1vdmUgdGhlIGNvbnRhaW5lciBmb3Igc21hbGwgdmlld3BvcnRzIGRvd24gdGhlIHN0YWNrLlxuICogWzddICBUcnVuY2F0ZSB0aGUgY29udGVudCBhZnRlciB0d28gbGluZXMuXG4gKiBbOF0gIFdlIGRpc3BsYXkgdGhlIGBib3gtc2hhZG93YCBvbiBjZXJ0YWluIGVsZW1lbnRzIHdoZW4gc3dpdGNoaW5nXG4gKiAgICAgIGJldHdlZW4gdmlld3BvcnRzIGFuZCB2aXNpYmxlIHN0YXRlIG9mIHRoZSBzY3JvbGwgbGlzdC5cbiAqIFs5XSAgUHJldmVudCB0ZXh0IHNlbGVjdGlvbiBvbiBhbGwgY2xpY2thYmxlIGVsZW1lbnRzLCBlc3BlY2lhbGx5IGZvclxuICogICAgICB0b3VjaC1kZXZpY2VzLCBpLmUuIGEgYDxidXR0b24+YCBvciBgPGE+YCBlbGVtZW50LlxuICogWzEwXSBBZGQgYSBiYWNrZHJvcCBhbmQgc3BhbiBpdCBhY3Jvc3MgdGhlIHdob2xlIHZpZXdwb3J0LlxuICogWzExXSBUaGUgcHJldi9uZXh0IGJ1dHRvbnMgaWNvbiBwc2V1ZG8gZWxlbWVudC5cbiAqIFsxMl0gTWFrZSB0aGUgc2Nyb2xsIGhpbnRzIG92ZXJsYXkgdGhlIGxpc3QgdG8gc3VnZ2VzdCB0aGUgbGlzdCBjYW4gYmVcbiAqICAgICAgc2Nyb2xsZWQgaW4gaXRzIHJlc3BlY3RpdmUgZGlyZWN0aW9uLlxuICogWzEzXSBNYWtlIHRoZSBzY3JvbGwgbGlzdCBzY3JvbGxhYmxlIHZpYSBvbmUtZmluZ2VyIHRvdWNoIGdlc3R1cmVzLlxuICogWzE0XSBTdGFjayB0aGUgc2Nyb2xsIGhpbnRzIGFib3ZlIHRoZSBsaXN0IGl0ZW1zLlxuICogWzE1XSBGb3Igc21hbGwgdmlld3BvcnRzLCByZW1vdmUgdGhlIHNwYWNpbmcgYXQgdGhlIGJvdHRvbVxuICogICAgICBpZiB0aGVyZSBpcyBubyBidXR0b24uXG4gKiBbMTZdIEJ5IGNoYW5naW5nIGBmb250LXdlaWdodGAgdGhlIGxpbmsgZWxlbWVudCBuZWVkIGRpZmZlcmVudCB3aWR0aHMsXG4gKiAgICAgIHRoaXMgY2F1c2VzIHNoaWZ0aW5nLiBUaGlzIHdvcmthcm91bmQgcHJldmVudHMgc2hpZnRpbmcgb24gbGFyZ2VcbiAqICAgICAgdmlld3BvcnRzIHdoZW4gdGhlIGAuaXMtYWN0aXZlYCBjbGFzcyBpcyBhZGRlZC5cbiAqIFsxN10gUHJldmVudHMgdGhlIGRvY3VtZW50IGZyb20gYmFja2dyb3VuZCBzY3JvbGxpbmcuXG4gKiBbMThdIFRoZSBwc2V1ZG8gZWxlbWVudHMgYWN0IGFzIHNjcm9sbCBoaW50cyBieSBvdmVybGF5aW5nIHRoZSBvdXRlcm1vc3RcbiAqICAgICAgbGVmdCBhbmQgcmlnaHQgcGFydCBvZiB0aGUgbmF2aWdhdGlvbiBsaXN0LlxuICogWzE5XSBFeHBvc2UgdGhlIHNlY3Rpb24gbmF2IGN1c3RvbSBwcm9wZXJ0eSB0byB1c2Ugd2l0aGluXG4gKiAgICAgIHRoZSBzZWN0aW9uIG5hdiBzY3JpcHQuXG4gKiBbMjBdIEVzdGFibGlzaCBtaW5pbXVtIHBvaW50ZXIvdG91Y2ggdGFyZ2V0IHNpemUuXG4gKiBbMjFdIEhpZGUgdGhlIGNhbGwtdG8tYWN0aW9uIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAqICAgICAgb24gc21hbGxlciBzY3JlZW5zLlxuICogWzIyXSBFbnN1cmUgZWxlbWVudCBpcyBoaWRkZW4uIFByZXZlbnRzIG92ZXJ3cml0ZXMgZnJvbSBtb3JlIHNwZWNpZmljIHN0eWxlc1xuICogICAgICB0aGF0IG1pZ2h0IHNldCBhbm90aGVyIHZhbHVlIGZvciBgZGlzcGxheWAgcHJvcGVydHkgKGUuZy4gYGJsb2NrYCB2cyBgZmxleGApLlxuICovXG4uYy1zZWN0aW9uLW5hdiB7XG4gICAgLS1icm9uLXNlY3Rpb24tbmF2LWJyZWFrcG9pbnQ6ICN7JHNlY3Rpb24tbmF2LWJyZWFrcG9pbnQtdmFsdWV9OyAvKiBbMTldICovXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihcbiAgICAgICAgJHRyYW5zaXRpb24tcHJvcGVydHk6IFwidmlzaWJsaXR5LCBvcGFjaXR5LCB0cmFuc2Zvcm1cIixcbiAgICAgICAgJHRyYW5zaXRpb24tZHVyYXRpb246IFwiMCwgMCwgI3skc2VjdGlvbi1uYXYtdHJhbnNpdGlvbi1kdXJhdGlvbn1cIlxuICAgICk7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICB6LWluZGV4OiAkc2VjdGlvbi1uYXYtei1pbmRleDtcbiAgICB0b3A6IDA7XG4gICAgYm9yZGVyLXRvcDogJHNlY3Rpb24tbmF2LWJvcmRlci10b3A7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7IC8qIFs5XSAqL1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI+I3skc2VjdGlvbi1uYXYtYnJlYWtwb2ludH1cIikge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VjdGlvbi1uYXYtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgYm94LXNoYWRvdzogJHNlY3Rpb24tbmF2LXNoYWRvdzsgLyogWzhdICovXG4gICAgfVxuXG59XG5cbi5jLXNlY3Rpb24tbmF2LS1yZXZlYWwge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6ICRzZWN0aW9uLW5hdi1yZXNwb25zaXZlLW9mZnNldC10b3A7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsgLyogWzFdICovXG4gICAgYm94LXNoYWRvdzogbm9uZTtcblxuICAgICYjeyRzZWN0aW9uLW5hdi1hY3RpdmUtYWJvdmUtY2xhc3N9LFxuICAgICYjeyRzZWN0aW9uLW5hdi1hY3RpdmUtYmVsb3ctY2xhc3N9LFxuICAgICYjeyRzZWN0aW9uLW5hdi1hY3RpdmUtc3RpY2t5LWNsYXNzfSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oXG4gICAgICAgICAgICAkdHJhbnNpdGlvbi1wcm9wZXJ0eTogXCJ2aXNpYmxpdHksIG9wYWNpdHksIHRyYW5zZm9ybVwiLFxuICAgICAgICAgICAgJHRyYW5zaXRpb24tZHVyYXRpb246IFwiMCwgI3skc2VjdGlvbi1uYXYtdHJhbnNpdGlvbi1kdXJhdGlvbn0sICN7JHNlY3Rpb24tbmF2LXRyYW5zaXRpb24tZHVyYXRpb259XCJcbiAgICAgICAgKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyAvKiBbMV0gKi9cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIj4jeyRzZWN0aW9uLW5hdi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkc2VjdGlvbi1uYXYtc2hhZG93OyAvKiBbOF0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXNlY3Rpb24tbmF2X19oZWFkZXIge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJHNlY3Rpb24tbmF2LXNoYWRvdzsgLyogWzhdICovXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXNlY3Rpb24tbmF2X19oZWFkZXIge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxufVxuXG4uYy1zZWN0aW9uLW5hdi1wcmV2ZW50LXNjcm9sbCB7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skc2VjdGlvbi1uYXYtYnJlYWtwb2ludH1cIikge1xuICAgICAgICBvdmVyZmxvdzogaW1wb3J0YW50KGhpZGRlbiwgdHJ1ZSk7IC8qIFsxN10gKi9cbiAgICB9XG5cbn1cblxuICAgIC5jLXNlY3Rpb24tbmF2X19oZWFkZXIge1xuICAgICAgICBAaW5jbHVkZSBwYWdlLXdyYXAoKTtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcImNvbHVtbi1nYXBcIiwgJHNlY3Rpb24tbmF2LWl0ZW0tc3BhY2luZy1ob3Jpem9udGFsKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAoJHNlY3Rpb24tbmF2LXotaW5kZXggLSAxKTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDsgLyogWzJdICovXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgbWF4LWNvbnRlbnQ7IC8qIFsyXSAqL1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAkc2VjdGlvbi1uYXYtaGVpZ2h0O1xuICAgICAgICBwYWRkaW5nLXRvcDogJHNlY3Rpb24tbmF2LXdyYXBwZXItc3BhY2luZy12ZXJ0aWNhbDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRzZWN0aW9uLW5hdi13cmFwcGVyLXNwYWNpbmctdmVydGljYWw7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWN0aW9uLW5hdi1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICBib3gtc2hhZG93OiAkc2VjdGlvbi1uYXYtc2hhZG93OyAvKiBbOF0gKi9cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIj4jeyRzZWN0aW9uLW5hdi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBbMl0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtc2VjdGlvbi1uYXZfX2NvbnRhaW5lciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWN0aW9uLW5hdi1iYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRzZWN0aW9uLW5hdi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKFxuICAgICAgICAgICAgICAgICR0cmFuc2l0aW9uLXByb3BlcnR5OiBcInZpc2libGl0eSwgb3BhY2l0eSwgdHJhbnNmb3JtXCIsXG4gICAgICAgICAgICAgICAgJHRyYW5zaXRpb24tZHVyYXRpb246IFwiMCwgMCwgI3skc2VjdGlvbi1uYXYtdHJhbnNpdGlvbi1kdXJhdGlvbn1cIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICgkc2VjdGlvbi1uYXYtei1pbmRleCAtIDIpOyAvKiBbNl0gKi9cbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2VjdGlvbi1uYXYtaGVpZ2h0KTtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgICAgICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJHRyYW5zaXRpb24tcHJvcGVydHk6IFwidmlzaWJsaXR5LCBvcGFjaXR5LCB0cmFuc2Zvcm1cIixcbiAgICAgICAgICAgICAgICAgICAgJHRyYW5zaXRpb24tZHVyYXRpb246IFwiMCwgI3skc2VjdGlvbi1uYXYtdHJhbnNpdGlvbi1kdXJhdGlvbn0sICN7JHNlY3Rpb24tbmF2LXRyYW5zaXRpb24tZHVyYXRpb259XCJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogJHNlY3Rpb24tbmF2LXNoYWRvdzsgLyogWzhdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHsgLyogWzEwXSAqL1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWN0aW9uLW5hdi1iYWNrZHJvcC1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI+I3skc2VjdGlvbi1uYXYtYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgQGluY2x1ZGUgcGFnZS13cmFwKCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkOyAvKiBbM10gKi9cbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIG1heC1jb250ZW50OyAvKiBbM10gKi9cbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIFszXSAqL1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyAvKiBbM10gKi9cbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRzZWN0aW9uLW5hdi13cmFwcGVyLXNwYWNpbmctdmVydGljYWw7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHNlY3Rpb24tbmF2LXdyYXBwZXItc3BhY2luZy12ZXJ0aWNhbDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtc2VjdGlvbi1uYXZfX3Njcm9sbCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5oZXJpdDsgLyogWzRdICovXG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcblxuICAgICAgICAgICAgLmMtc2VjdGlvbi1uYXZfX2xpc3Qge1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JHNlY3Rpb24tbmF2LWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDsgLyogWzE1XSAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXNlY3Rpb24tbmF2X19zZWN0aW9uLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtYnV0dG9uKCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LWFsaWduOiAkc2VjdGlvbi1uYXYtbGFiZWwtdGV4dC1hbGlnbjtcbiAgICAgICAgY29sb3I6ICRzZWN0aW9uLW5hdi1sYWJlbC1jb2xvcjtcblxuICAgICAgICAmW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdIHtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAkc2VjdGlvbi1uYXYtaWNvbi1oaWRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICArIC5jLXNlY3Rpb24tbmF2X19idG4geyAvKiBbMjFdICovXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgICRzZWN0aW9uLW5hdi1pY29uLXNpemUsXG4gICAgICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAxLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGljb24tZm9udCgkbGluZS1oZWlnaHQ6IG51bGwpO1xuICAgICAgICAgICAgY29udGVudDogJHNlY3Rpb24tbmF2LWljb24tc2hvdztcbiAgICAgICAgICAgIGNvbG9yOiAkc2VjdGlvbi1uYXYtYXJyb3ctY29sb3I7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXNlY3Rpb24tbmF2X19zZWN0aW9uLWxhYmVsX190ZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAgICRzZWN0aW9uLW5hdi1pdGVtLXRleHQtc2l6ZSxcbiAgICAgICAgICAgICRsaW5lLWhlaWdodDogbm9ybWFsLFxuICAgICAgICApO1xuICAgICAgICBAaW5jbHVkZSB0cnVuY2F0ZSgkbXVsdGlsaW5lOiAyKTsgLyogWzddICovXG4gICAgICAgIHBhZGRpbmctbGVmdDogJHNlY3Rpb24tbmF2LWxhYmVsLXNwYWNpbmctaG9yaXpvbnRhbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRzZWN0aW9uLW5hdi1pdGVtLWZvbnQtd2VpZ2h0LWlzLWFjdGl2ZTtcbiAgICAgICAgaHlwaGVuczogYXV0bztcbiAgICB9XG5cbiAgICAuYy1zZWN0aW9uLW5hdl9fbGlzdCB7XG4gICAgICAgIEBpbmNsdWRlIGxpc3QtYmFyZSgpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRzZWN0aW9uLW5hdi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwYWdlLXdyYXAoKTtcbiAgICAgICAgICAgIHJvdy1nYXA6ICRzZWN0aW9uLW5hdi1pdGVtLXNwYWNpbmctdmVydGljYWw7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAjeyRzZWN0aW9uLW5hdi1oZWlnaHR9KTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJHNlY3Rpb24tbmF2LWxpc3Qtc3BhY2luZy12ZXJ0aWNhbDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkc2VjdGlvbi1uYXYtbGlzdC1zcGFjaW5nLXZlcnRpY2FsO1xuICAgICAgICAgICAgdG91Y2gtYWN0aW9uOiBwYW4teTsgLyogWzEzXSAqL1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlY3Rpb24tbmF2LWxpc3QtYm9yZGVyLWJvdHRvbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWN0aW9uLW5hdi1saXN0LWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIj4jeyRzZWN0aW9uLW5hdi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFwiY29sdW1uLWdhcFwiLCAkc2VjdGlvbi1uYXYtaXRlbS1zcGFjaW5nLWhvcml6b250YWwpO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgICAgICAgICB0b3VjaC1hY3Rpb246IHBhbi14O1xuICAgICAgICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogeCBtYW5kYXRvcnk7IC8qIFs1XSAqL1xuICAgICAgICAgICAgc2Nyb2xsLW1hcmdpbi1sZWZ0OiAkc2VjdGlvbi1uYXYtbGlzdC1zY3JvbGwtaGludC13aWR0aDsgLyogWzVdICovXG4gICAgICAgICAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7IC8qIFs1XSAqL1xuICAgICAgICAgICAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lOyAvKiBbNV0gKi9cblxuICAgICAgICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IC8qIFs1XSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7IC8qIFsxOF0gKi9cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCR0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5KTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAoJHNlY3Rpb24tbmF2LXotaW5kZXggKyAxKTsgLyogWzE0XSAqL1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogJHNlY3Rpb24tbmF2LWxpc3Qtc2Nyb2xsLWhpbnQtd2lkdGg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkc2VjdGlvbi1uYXYtbGlzdC1zY3JvbGwtaGludC1ncmFkaWVudC10by1sZWZ0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJHNlY3Rpb24tbmF2LWxpc3Qtc2Nyb2xsLWhpbnQtZ3JhZGllbnQtdG8tcmlnaHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5oYXMtb3ZlcmZsb3ctbGVmdCAmOjpiZWZvcmUsXG4gICAgICAgICAgICAuaGFzLW92ZXJmbG93LXJpZ2h0ICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXNlY3Rpb24tbmF2X19pdGVtIHtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skc2VjdGlvbi1uYXYtYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkc2VjdGlvbi1uYXYtaXRlbS10ZXh0LXNpemUsXG4gICAgICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiBub3JtYWwsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIj4jeyRzZWN0aW9uLW5hdi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICAgICAkZm9udC1zaXplOiAgICRzZWN0aW9uLW5hdi1pdGVtLXRleHQtc2l6ZSxcbiAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICRzZWN0aW9uLW5hdi1pdGVtLWhlaWdodCxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXNlY3Rpb24tbmF2X19saW5rIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogJHNlY3Rpb24tbmF2LWl0ZW0taGVpZ2h0OyAvKiBbMjBdICovXG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWN0aW9uLW5hdi1saW5rLWJvcmRlci1ib3R0b207XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkc2VjdGlvbi1uYXYtaXRlbS1mb250LXdlaWdodDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgIEBpZiAoJHNlY3Rpb24tbmF2LWxpbmstaGFzLXRyYW5zaXRpb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oJHRyYW5zaXRpb24tcHJvcGVydHk6IFwiY29sb3JcIik7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIj4jeyRzZWN0aW9uLW5hdi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IC8qIFsxNl0gKi9cblxuICAgICAgICAgICAgJjo6YmVmb3JlIHsgLyogWzE2XSAqL1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10ZXh0KTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRzZWN0aW9uLW5hdi1pdGVtLWZvbnQtd2VpZ2h0LWlzLWFjdGl2ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY3Rpb24tbmF2LWxpbmstY29sb3ItaG92ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmI3skc2VjdGlvbi1uYXYtbGluay1hY3RpdmUtc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkc2VjdGlvbi1uYXYtaXRlbS1mb250LXdlaWdodC1pcy1hY3RpdmU7XG4gICAgICAgICAgICBjb2xvcjogJHNlY3Rpb24tbmF2LWxpbmstY29sb3ItaG92ZXItaXMtYWN0aXZlO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1zZWN0aW9uLW5hdl9fc2Nyb2xsLWJ1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWJ1dHRvbigpO1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFwid2lkdGhcIiwgJHNlY3Rpb24tbmF2LXdyYXBwZXItc3BhY2luZy1ob3Jpem9udGFsKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihcbiAgICAgICAgICAgICR0cmFuc2l0aW9uLXByb3BlcnR5OiBcInZpc2libGl0eSwgb3BhY2l0eSwgdHJhbnNmb3JtXCIsXG4gICAgICAgICAgICAkdHJhbnNpdGlvbi1kdXJhdGlvbjogXCIwLCAwLCAjeyRzZWN0aW9uLW5hdi10cmFuc2l0aW9uLWR1cmF0aW9ufVwiXG4gICAgICAgICk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogKCRzZWN0aW9uLW5hdi16LWluZGV4ICsgMTApO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBjb2xvcjogJHNlY3Rpb24tbmF2LWFycm93LWNvbG9yO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JHNlY3Rpb24tbmF2LWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGltcG9ydGFudChub25lLCB0cnVlKTsgLyogWzIyXSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHsgLyogWzExXSAqL1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgICAgICRmb250LXNpemU6ICAgJHNlY3Rpb24tbmF2LWljb24tc2l6ZSxcbiAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6IDEsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KCRsaW5lLWhlaWdodDogbnVsbCk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLXNlY3Rpb24tbmF2X19zY3JvbGwtYnV0dG9uLS1wcmV2IHtcbiAgICAgICAgbGVmdDogMDtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJHNlY3Rpb24tbmF2LWljb24tcHJldjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oYXMtb3ZlcmZsb3ctbGVmdCAmIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IC8qIFsxMl0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtc2VjdGlvbi1uYXZfX3Njcm9sbC1idXR0b24tLW5leHQge1xuICAgICAgICByaWdodDogMDtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJHNlY3Rpb24tbmF2LWljb24tbmV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oYXMtb3ZlcmZsb3ctcmlnaHQgJiB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IC8qIFsxMl0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmhhcy1vdmVyZmxvdy1sZWZ0IC5jLXNlY3Rpb24tbmF2X19zY3JvbGwtYnV0dG9uLS1wcmV2LFxuICAgIC5oYXMtb3ZlcmZsb3ctcmlnaHQgLmMtc2VjdGlvbi1uYXZfX3Njcm9sbC1idXR0b24tLW5leHQge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKFxuICAgICAgICAgICAgJHRyYW5zaXRpb24tcHJvcGVydHk6IFwidmlzaWJsaXR5LCBvcGFjaXR5LCB0cmFuc2Zvcm1cIixcbiAgICAgICAgICAgICR0cmFuc2l0aW9uLWR1cmF0aW9uOiBcIjAsICN7JHNlY3Rpb24tbmF2LXRyYW5zaXRpb24tZHVyYXRpb259LCAjeyRzZWN0aW9uLW5hdi10cmFuc2l0aW9uLWR1cmF0aW9ufVwiXG4gICAgICAgICk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLmMtc2VjdGlvbi1uYXZfX2NvbnRhaW5lciAuYy1zZWN0aW9uLW5hdl9fYnRuIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcImxlZnRcIiwgJHNlY3Rpb24tbmF2LXdyYXBwZXItc3BhY2luZy1ob3Jpem9udGFsKTtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcInJpZ2h0XCIsICRzZWN0aW9uLW5hdi13cmFwcGVyLXNwYWNpbmctaG9yaXpvbnRhbCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAkc2VjdGlvbi1uYXYtd3JhcHBlci1zcGFjaW5nLXZlcnRpY2FsO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPiN7JHNlY3Rpb24tbmF2LWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzZWN0aW9uLW5hdi1idXR0b24tc3BhY2luZy1ob3Jpem9udGFsO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1zZWN0aW9uLW5hdl9fc2VjdGlvbiB7XG4gICAgICAgIHNjcm9sbC1tYXJnaW4tdG9wOiAkc2VjdGlvbi1uYXYtaGVpZ2h0O1xuICAgIH1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNTRUNUSU9OLU5BViAoU2V0dGluZ3MpXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNlY3Rpb24tbmF2LXNoYWRvdzogICAgICAgICAgICAgICAgICAgICAkRFJPUC1TSEFET1ctTCAhZGVmYXVsdDtcbiRzZWN0aW9uLW5hdi13cmFwcGVyLXNwYWNpbmctdmVydGljYWw6ICAgMCAhZGVmYXVsdDtcbiRzZWN0aW9uLW5hdi13cmFwcGVyLXNwYWNpbmctaG9yaXpvbnRhbDogJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kc2VjdGlvbi1uYXYtaXRlbS1mb250LXdlaWdodDogICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCAhZGVmYXVsdDtcbiRzZWN0aW9uLW5hdi1pdGVtLWZvbnQtd2VpZ2h0LWlzLWFjdGl2ZTogJHNlY3Rpb24tbmF2LWl0ZW0tZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kc2VjdGlvbi1uYXYtaXRlbS1zcGFjaW5nLWhvcml6b250YWw6ICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJHNlY3Rpb24tbmF2LWl0ZW0tdGV4dC1zaXplOiAgICAgICAgICAgICAkRlMwICFkZWZhdWx0O1xuJHNlY3Rpb24tbmF2LWxpbmstY29sb3ItaG92ZXI6ICAgICAgICAgICAkQ09MT1ItQkFTRS1URVhUICFkZWZhdWx0O1xuJHNlY3Rpb24tbmF2LWxpbmstY29sb3ItaG92ZXItaXMtYWN0aXZlOiAkQ09MT1ItQkFTRS1URVhUICFkZWZhdWx0O1xuJHNlY3Rpb24tbmF2LWxhYmVsLWNvbG9yOiAgICAgICAgICAgICAgICBpbmhlcml0ICFkZWZhdWx0O1xuJHNlY3Rpb24tbmF2LWFycm93LWNvbG9yOiAgICAgICAgICAgICAgICBjdXJyZW50Q29sb3IgIWRlZmF1bHQ7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjU0VDVElPTi1OQVZcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2tvZGEtc2VjdGlvbi1uYXYtbGlzdC1wYWRkaW5nLXRvcC1hdC1icmVha3BvaW50OiAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRza29kYS1zZWN0aW9uLW5hdi1saXN0LWJvcmRlci1ib3R0b20td2lkdGg6ICAgICAgICAgICAgIGNhbGMoI3skc2VjdGlvbi1uYXYtaGVpZ2h0fSArICN7JEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMfSkgIWRlZmF1bHQ7XG4kc2tvZGEtc2VjdGlvbi1uYXYtbGluay1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kc2tvZGEtc2VjdGlvbi1uYXYtbGluay1ib3JkZXItYm90dG9tLXBvc2l0aW9uOiAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgIWRlZmF1bHQ7XG4kc2tvZGEtc2VjdGlvbi1uYXYtbGluay1ib3JkZXItYm90dG9tLXdpZHRoLWlzLWFjdGl2ZTogICAzcHggIWRlZmF1bHQ7XG4kc2tvZGEtc2VjdGlvbi1uYXYtbGluay1ib3JkZXItYm90dG9tLWNvbG9yLWlzLWFjdGl2ZTogICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kc2tvZGEtc2VjdGlvbi1uYXYtbGluay1mb2N1cy1vdXRsaW5lLXdpZHRoOiAgICAgICAgICAgICAkR0xPQkFMLUZPQ1VTLVdJRFRIICFkZWZhdWx0O1xuJHNrb2RhLXNlY3Rpb24tbmF2LWxpbmstZm9jdXMtb3V0bGluZS1jb2xvcjogICAgICAgICAgICAgJENPTE9SLUJBU0UgIWRlZmF1bHQ7IC8vIEBUT0RPOiB1c2UgZ2xvYmFsIHNldHRpbmdzXG4kc2tvZGEtc2VjdGlvbi1uYXYtbGluay1mb2N1cy1vdXRsaW5lLW9mZnNldC1ob3Jpem9udGFsOiAkc2tvZGEtc2VjdGlvbi1uYXYtbGluay1mb2N1cy1vdXRsaW5lLXdpZHRoICFkZWZhdWx0O1xuJHNrb2RhLXNlY3Rpb24tbmF2LWxpbmstZm9jdXMtb3V0bGluZS1vZmZzZXQtdmVydGljYWw6ICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG4kc2tvZGEtc2VjdGlvbi1uYXYtYnV0dG9uLW1hcmdpbi1ib3R0b20tYXQtYnJlYWtwb2ludDogICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gTWFyayBhY3RpdmUgbGluayB3aXRoIGEgbGVmdCBib3JkZXIgaW4gc21hbGxlciB2aWV3cG9ydHMuXG4gKiBbMl0gTWFyayBhY3RpdmUgbGluayB3aXRoIGEgYm90dG9tIGJvcmRlciBpbiBsYXJnZXIgdmlld3BvcnRzLlxuICogWzNdIERpc2FibGUgZGVmYXVsdCBwc2V1ZG8gZWxlbWVudCBzdHlsZXMsIGJlY2F1c2UgZG9u4oCZdCB3YW50IHRvIGludGVyZmVyZSB3aXRoIFs0XVxuICogWzRdIEFkZCBmb2N1cyByZWN0YW5nbGUgYXMgcHNldWRvIGVsZW1lbnQuXG4gKiBbNV0gVXNlIGEgc21hbGxlciBoZWFkZXIgc2hhZG93LCB3aGVuIGAuYy1zZWN0aW9uLW5hdl9fY29udGFpbmVyYCBpcyBleHBhbmRlZC5cbiAqIFs2XSBQb3NpdGlvbiBwc2V1ZG8tZWxlbWVudCAoY2lyY2xlKSBvbiBpY29uLlxuICogICAgIE1hZ2ljIG51bWJlciB2aWEgcGl4ZWwtcHVzaGluZyBhcyB0aGVyZSBjYW4gYmUgbm8gY29ubmVjdGlvbi9yZWxhdGlvbiBiZSBmb3VuZC5cbiAqL1xuXG4uYy1zZWN0aW9uLW5hdl9fY29udGFpbmVyIHtcbiAgICBtaW4taGVpZ2h0OiAkc2VjdGlvbi1uYXYtaGVpZ2h0O1xuXG4gICAgLmMtc2VjdGlvbi1uYXZfX2J0biB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRzZWN0aW9uLW5hdi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc2tvZGEtc2VjdGlvbi1uYXYtYnV0dG9uLW1hcmdpbi1ib3R0b20tYXQtYnJlYWtwb2ludDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmMtc2VjdGlvbi1uYXZfX2xpc3Qge1xuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRzZWN0aW9uLW5hdi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkc2tvZGEtc2VjdGlvbi1uYXYtbGlzdC1wYWRkaW5nLXRvcC1hdC1icmVha3BvaW50O1xuICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAkc2tvZGEtc2VjdGlvbi1uYXYtbGlzdC1ib3JkZXItYm90dG9tLXdpZHRoO1xuICAgIH1cbn1cblxuLmMtc2VjdGlvbi1uYXZfX2xpbmsge1xuICAgIHBhZGRpbmctcmlnaHQ6ICRza29kYS1zZWN0aW9uLW5hdi1saW5rLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBwYWRkaW5nLWxlZnQ6ICRza29kYS1zZWN0aW9uLW5hdi1saW5rLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBjb2xvcjogJENPTE9SLU9OLVNVUkZBQ0UtNTAwO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYWxsOiBpbml0aWFsOyAvKiBbM10gKi9cbiAgICB9XG5cbiAgICAmI3skc2VjdGlvbi1uYXYtbGluay1hY3RpdmUtc2VsZWN0b3J9IHtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNrb2RhLXNlY3Rpb24tbmF2LWxpbmstYm9yZGVyLWJvdHRvbS1jb2xvci1pcy1hY3RpdmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRzZWN0aW9uLW5hdi1icmVha3BvaW50fVwiKSB7IC8qIFsxXSAqL1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYyh2YXIoLS1wYWdlLXdyYXApICogLTEpO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkc2tvZGEtc2VjdGlvbi1uYXYtbGluay1ib3JkZXItYm90dG9tLXdpZHRoLWlzLWFjdGl2ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI+I3skc2VjdGlvbi1uYXYtYnJlYWtwb2ludH1cIikgeyAvKiBbMl0gKi9cbiAgICAgICAgICAgICAgICBib3R0b206ICRza29kYS1zZWN0aW9uLW5hdi1saW5rLWJvcmRlci1ib3R0b20tcG9zaXRpb247XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRza29kYS1zZWN0aW9uLW5hdi1saW5rLWJvcmRlci1ib3R0b20td2lkdGgtaXMtYWN0aXZlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7IC8qIFs0XSAqL1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAkc2tvZGEtc2VjdGlvbi1uYXYtbGluay1mb2N1cy1vdXRsaW5lLW9mZnNldC12ZXJ0aWNhbDtcbiAgICAgICAgICAgIHJpZ2h0OiAkc2tvZGEtc2VjdGlvbi1uYXYtbGluay1mb2N1cy1vdXRsaW5lLW9mZnNldC1ob3Jpem9udGFsO1xuICAgICAgICAgICAgYm90dG9tOiAkc2tvZGEtc2VjdGlvbi1uYXYtbGluay1mb2N1cy1vdXRsaW5lLW9mZnNldC12ZXJ0aWNhbDtcbiAgICAgICAgICAgIGxlZnQ6ICRza29kYS1zZWN0aW9uLW5hdi1saW5rLWZvY3VzLW91dGxpbmUtb2Zmc2V0LWhvcml6b250YWw7XG4gICAgICAgICAgICBvdXRsaW5lOiAkc2tvZGEtc2VjdGlvbi1uYXYtbGluay1mb2N1cy1vdXRsaW5lLXdpZHRoIHNvbGlkICRza29kYS1zZWN0aW9uLW5hdi1saW5rLWZvY3VzLW91dGxpbmUtY29sb3I7XG4gICAgICAgIH1cblxuICAgIH1cbn1cblxuLmMtc2VjdGlvbi1uYXZfX2J0biB7XG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JHNlY3Rpb24tbmF2LWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIH1cbn1cblxuLmMtc2VjdGlvbi1uYXZfX2hlYWRlcjpoYXMoKyAuYy1zZWN0aW9uLW5hdl9fY29udGFpbmVyLmlzLXZpc2libGUpIHtcbiAgICBib3gtc2hhZG93OiAkRFJPUC1TSEFET1ctWFM7XG59XG5cbi5jLXNlY3Rpb24tbmF2X19zZWN0aW9uLWxhYmVsIHtcbiAgICBAaW5jbHVkZSBidXR0b24taWNvbi1zdGF0ZXMoXG4gICAgICAgICRoYW5kbGUtcG9zaXRpb246IGZhbHNlLFxuICAgICAgICAkYWN0aXZlLXN0YXRlOiAgICBmYWxzZSxcbiAgICApO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBsZWZ0OiAxNHB4OyAvKiBbNl0gKi8gIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2NhbGUtdW5saW1pdGVkL2RlY2xhcmF0aW9uLXN0cmljdC12YWx1ZSAqL1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD14c1wiKSB7XG4gICAgICAgICAgICBsZWZ0OiAycHg7IC8qIFs2XSAqLyAgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY2FsZS11bmxpbWl0ZWQvZGVjbGFyYXRpb24tc3RyaWN0LXZhbHVlICovXG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jLXNlY3Rpb24tbmF2X19zY3JvbGwtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBidXR0b24taWNvbi1zdGF0ZXMoXG4gICAgICAgICRoYW5kbGUtdHJhbnNpdGlvbjogZmFsc2UsXG4gICAgKTtcblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCk7XG4gICAgfVxufVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0ZPQ1VTXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gR2xvYmFsIGZvY3VzIHN0eWxlcy5cbiRHTE9CQUwtRk9DVVMtQ09MT1I6ICAgICAgICAkQ09MT1ItRk9DVVMgIWRlZmF1bHQ7XG4kR0xPQkFMLUZPQ1VTLVdJRFRIOiAgICAgICAgMnB4ICFkZWZhdWx0O1xuJEdMT0JBTC1GT0NVUy1TVFlMRTogICAgICAgIHNvbGlkICFkZWZhdWx0O1xuJEdMT0JBTC1GT0NVUy1PRkZTRVQ6ICAgICAgIDFweCAhZGVmYXVsdDtcbiRHTE9CQUwtRk9DVVMtT0ZGU0VULUxBUkdFOiA4cHggIWRlZmF1bHQ7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjU1RBVFVTLU1FU1NBR0VcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFRoZSBzdGF0dXMgY29tcG9uZW50IGRpc3BsYXlzIGEgc3RhdHVzIGljb24gKyB0ZXh0IG1lc3NhZ2UuXG4gKi9cblxuJHN0YXR1cy1tZXNzYWdlLWljb24tc2l6ZTogICAgICAgaWNvbi1zaXplKHhzbWFsbCkgIWRlZmF1bHQ7XG4kc3RhdHVzLW1lc3NhZ2UtaWNvbi1jb21wbGV4aXR5OiBudWxsICFkZWZhdWx0O1xuJHN0YXR1cy1tZXNzYWdlLWljb24tbWFyZ2luOiAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJHN0YXR1cy1tZXNzYWdlLWljb24tc2hpZnQ6ICAgICAgMC4yNWVtICFkZWZhdWx0O1xuXG4vLyBEb3VibGUtZGVlcC1tZXJnZSBzdGF0dXMgdGhlbWVzIHdpdGggc3RhdHVzIGljb25zIHdpdGggY29sb3Igb3ZlcndyaXRlcyBmb3Jcbi8vIGJldHRlciBjb250cmFzdHMgYW5kIHJlYWRhYmlsaXR5LiBUaGlzIHNob3VsZCBtYXRjaCB0aGUgc2V0dGluZ3Mgb2YgdGhlXG4vLyBJbmRpY2F0b3IgRG90IGZvciBlYWNoIGJyYW5kLlxuLy9cbi8vIEBUT0RPOiBSZWZhY3RvciBfc2V0dGluZ3Muc3RhdHVzLnNjc3MgYW5kIGNvbXBvbmVudHMgKGUuIGcuIEluZGljYXRvciBEb3QsXG4vLyAgICAgU3RhdHVzIE1lc3NhZ2UsIOKApikgdG8gdXNlIGNvbnNpc3RlbnQgYW5kIGdsb2JhbCBydWxlcyB0byBzZXQgc3RhdHVzXG4vLyAgICAgdGV4dC9pY29uIGNvbG9ycy5cbi8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiRzdGF0dXMtbWVzc2FnZS10aGVtZXM6IG1hcC1kZWVwLW1lcmdlKG1hcC1kZWVwLW1lcmdlKCRTVEFUVVMtVEhFTUVTLCAkU1RBVFVTLUlDT05TKSwgKFxuICAgIFwic3VjY2Vzc1wiOiAoXG4gICAgICAgIFwidGV4dC1jb2xvclwiOiAkQ09MT1ItU1VDQ0VTUyxcbiAgICApLFxuICAgIFwiZXJyb3JcIjogKFxuICAgICAgICBcInRleHQtY29sb3JcIjogJENPTE9SLUFMRVJULFxuICAgICksXG4pLCAyKSAhZGVmYXVsdDtcbi8qIHN0eWxlbGludC1lbmFibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuXG4vLyBNZXJnZSBkZWZhdWx0IGFuZCBvdmVyd3JpdGUgc2V0dGluZ3MgdG8gYXZvaWQgZHVwbGljYXRpb25zXG4vLyBhbmQgb3ZlcndyaXRlIG9ubHkgbmVjZXNzYXJ5IHNldHRpbmdzLlxuJHN0YXR1cy1tZXNzYWdlLXRoZW1lcy1vdmVyd3JpdGVzOiAoKSAhZGVmYXVsdDtcbiRzdGF0dXMtbWVzc2FnZS10aGVtZXMtbWVyZ2VkOiAgICAgbWFwLWRlZXAtbWVyZ2UoJHN0YXR1cy1tZXNzYWdlLXRoZW1lcywgJHN0YXR1cy1tZXNzYWdlLXRoZW1lcy1vdmVyd3JpdGVzLCAyKSAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gQWRqdXN0IHZlcnRpY2FsIGFsaWdubWVudCBvZiBpY29uIGFuZCBmaXJzdCB0ZXh0IGxpbmUuXG4gKi9cblxuLmMtc3RhdHVzLW1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuXG4gICAgQGluY2x1ZGUgdmFyeSgkY3JlYXRlOiBtb2RpZmllciwgJGxvb3A6ICRzdGF0dXMtbWVzc2FnZS10aGVtZXMtbWVyZ2VkKSB7XG4gICAgICAgIGNvbG9yOiB2YXJ5LWdldChcInRleHQtY29sb3JcIik7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IGdldC1pY29uKHZhcnktZ2V0KFwiaWNvblwiKSwgJHN0YXR1cy1tZXNzYWdlLWljb24tY29tcGxleGl0eSk7XG4gICAgICAgICAgICBjb2xvcjogdmFyeS1nZXQoXCJpY29uLWNvbG9yXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbi1mb250KFxuICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAwLFxuICAgICAgICApO1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAgICRzdGF0dXMtbWVzc2FnZS1pY29uLXNpemUsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6IGZhbHNlLFxuICAgICAgICApO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRzdGF0dXMtbWVzc2FnZS1pY29uLW1hcmdpbjtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCN7JHN0YXR1cy1tZXNzYWdlLWljb24tc2hpZnR9KTsgLyogWzFdICovXG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSElOVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AdXNlIFwic2FzczptYXRoXCIgYXMgKjtcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBleHRlbmRzIHRoZSBzdGFuZGFyZCBgPHN1cD5gIEhUTUwgZWxlbWVudCB3aXRoIHRoZVxuICogcG9zc2liaWxpdHkgb2YgY2xpY2tpbmcvaG92ZXJpbmcgb3ZlciBpdC5cbiAqL1xuXG4kaGludC10ZXh0LWNvbG9yOiAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kaGludC10ZXh0LWNvbG9yLWhvdmVyOiAgICAgICAkaGludC10ZXh0LWNvbG9yICFkZWZhdWx0O1xuJGhpbnQtYmFja2dyb3VuZC1jb2xvcjogICAgICAgbnVsbCAhZGVmYXVsdDtcbiRoaW50LWJhY2tncm91bmQtY29sb3ItaG92ZXI6IG51bGwgIWRlZmF1bHQ7XG4kaGludC10ZXh0LXNpemU6ICAgICAgICAgICAgICAkRlMtMiAhZGVmYXVsdDtcbiRoaW50LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtUkVHVUxBUiAhZGVmYXVsdDtcbiRoaW50LW1pbi1zaXplOiAgICAgICAgICAgICAgIDE0cHggIWRlZmF1bHQ7XG4kaGludC1vZmZzZXQtdmVydGljYWw6ICAgICAgICAwICFkZWZhdWx0O1xuJGhpbnQtc3BhY2luZy1ob3Jpem9udGFsOiAgICAgMC4zZW0gIWRlZmF1bHQ7XG4kaGludC1ib3JkZXItd2lkdGg6ICAgICAgICAgICAxcHggIWRlZmF1bHQ7XG4kaGludC1ib3JkZXItc3R5bGU6ICAgICAgICAgICBzb2xpZCAhZGVmYXVsdDtcbiRoaW50LWJvcmRlci1jb2xvcjogICAgICAgICAgIGN1cnJlbnRDb2xvciAhZGVmYXVsdDtcbiRoaW50LWJvcmRlci1jb2xvci1ob3ZlcjogICAgIGN1cnJlbnRDb2xvciAhZGVmYXVsdDtcbiRoaW50LWJvcmRlcjogICAgICAgICAgICAgICAgICRoaW50LWJvcmRlci13aWR0aCAkaGludC1ib3JkZXItc3R5bGUgJGhpbnQtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGhpbnQtYm9yZGVyLXJhZGl1czogICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRoaW50LWJveC1zaGFkb3c6ICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kaGludC1ib3gtc2hhZG93LWhvdmVyOiAgICAgICAwIDAgMCAxcHggY3VycmVudENvbG9yICFkZWZhdWx0O1xuJGhpbnQtdHJhbnNpdGlvbjogICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuLy8gVGhlIHNhZmUtc3BhY2Ugc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYSByZWFkLW9ubHkgdmFyaWFibGUuXG4vLyBJdCBpcyBzZXQgdG8gcHJldmVudCBjb250ZW50IGNvbGxpc2lvbiB3aXRoIHRoZSBib3JkZXIuXG4kaGludC1zYWZlLXNwYWNlOiAgICAgICAgICAgICAxcHggIWRlZmF1bHQ7XG5cbiRoaW50LXBhZGRpbmctaG9yaXpvbnRhbDogICAgICRoaW50LXNhZmUtc3BhY2UgIWRlZmF1bHQ7XG5cbi8vIEdldCB0aGUgYmFzZSBmb250LXNpemUgZnJvbSB0aGUgY2hvc2VuIGZvbnQtc2l6ZSBtYXAuXG4kaGludC1taW4tdGV4dC1zaXplOiAgICAgICAgICBtYXAtZ2V0KCRoaW50LXRleHQtc2l6ZSwgbnVsbCkgIWRlZmF1bHQ7XG4kaGludC1tYXgtdGV4dC1zaXplOiAgICAgICAgICAoJGhpbnQtbWluLXRleHQtc2l6ZSAqIDEuNCkgIWRlZmF1bHQ7XG4kaGludC1vcHRpbXVtLXRleHQtc2l6ZTogICAgICBkaXYoJGhpbnQtbWluLXRleHQtc2l6ZSwgJEdMT0JBTC1GT05ULVNJWkUpICogMWVtICFkZWZhdWx0O1xuLy8gVGhpcyBpcyBwcm9iYWJseSB3aGVyZSB5b3UgZ29ubmEgc3RhcnQgdG8gaGF0ZSBtZS4gQnV0IGxldCBtZSBleHBsYWluOlxuLy8gV2Ugc2V0IHRoZSBiYXNlIGZvbnQgKGluIHB4KSBhcyB0aGUgbWluaW11bSB3ZSB3YW50IGFzIHRoZSBmb250LXNpemUuXG4vLyBXZSByZWNvbW1lbmQgdG8gbWFrZSBpdCBncm93IHRvIGl0cyByZWxhdGl2ZSBjb3VudGVyIHBhcnQuXG4vLyBXZSBzZXQgdGhlIG1heGltdW0gZm9udC1zaXplIHRvIHRoZSAxLjQtZmFjdG9yIG9mIHRoZSBiYXNlLCBhcyB0aGVcbi8vIGhpbnQgc2hvdWxkIG5vdCBvdXRncm93IHByb3BvcnRpb25hbGx5LlxuJGhpbnQtZmx1aWQtZm9udC1zaXplOiAgICAgICAgdW5xdW90ZSgnY2xhbXAoI3skaGludC1taW4tdGV4dC1zaXplfSwgI3skaGludC1vcHRpbXVtLXRleHQtc2l6ZX0sICN7JGhpbnQtbWF4LXRleHQtc2l6ZX0pJykgIWRlZmF1bHQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgKi9cbi8vIENhbGN1bGF0ZSBhIHJlbGF0aXZlIG1pbi1zaXplIGJhc2VkIG9uIHRoZSBiYXNlLWZvbnQgc2l6ZSBvZiB0aGUgaGludC5cbiRoaW50LXJlbGF0aXZlLW1pbi1zaXplOiAgICAgICN7ZGl2KCRoaW50LW1pbi1zaXplLCAkaGludC1taW4tdGV4dC1zaXplKSAqIDFlbX0gIWRlZmF1bHQ7XG5cbiRoaW50LXRoZW1lczogKFxuICAgIFwiYnJhbmRcIjogKFxuICAgICAgICBcImhpbnQtY29sb3JcIjogICAgICAgaW5oZXJpdCxcbiAgICAgICAgXCJoaW50LWNvbG9yLWhvdmVyXCI6IGluaGVyaXQsXG4gICAgKVxuKSAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gU2V0IGEgbWluaW11bSBzaXplIGZvciB0aGUgaGludCByZWxhdGl2ZSB0byBpdHMgZmx1aWQgZm9udC1zaXplLlxuICogICAgIFNvIHRoYXQgaXQgY2FuIGdyb3cgZXF1YWxseS4gQWxzbyBzZXQgYSBzYWZlIHNwYWNlIHRvIGF2b2lkIGNvbGxpc2lvblxuICogICAgIG9mIGNvbnRlbnQgYW5kIGJvcmRlci5cbiAqIFsyXSBPZmZzZXQgdGhlIGhpbnQgcmVsYXRpdmVseSB0byBpdHMgc3VwZXJzY3JpcHQgcG9zaXRpb24uXG4gKiBbM10gQ2VudGVyIHRoZSB0ZXh0IHZlcnRpY2FsbHkgaW4gdGhlIGJveCB2aWEgYGxpbmUtaGVpZ2h0YC5cbiAqIFs0XSBBbGlnbiB0aGUgaGludCB2ZXJ0aWNhbGx5IGluIHRoZSBmb2504oCZcyBzdXBlcnNjcmlwdCBwb3NpdGlvbi5cbiAqIFs1XSBJbmhlcml0IGFsbCBmb250IGFuZCBjb2xvciByZWxhdGVkIHN0eWxlcyBhbmQgdXNlIGAhaW1wb3J0YW50YCB0b1xuICogICAgIHByZXZlbnQgb3ZlcnJpZGluZyBvZiB0aGUgdGV4dCBjb2xvciBvbiBgOmhvdmVyYCBvciBgW2RhdGEtdGhlbWVdYCBzY29wZS5cbiAqIFs2XSBUcnkgdG8gdXNlIGxpbmVhciBudW1iZXJzIGluc3RlYWQgb2Ygb2xkIGZpZ3VyZXMgdG8gbWFrZSBhbGlnbm1lbnQgZWFzaWVyLlxuICogWzddIEVuYWJsZSBzcGFjaW5nIGZvciBwaWxsLXNoYXBlZCBoaW50IHdoZW4gY29udGVudCBpbmNyZWFzZXMuXG4gKiBbOF0gTWFrZSBzdXJlIHRoZSBoaW50IGNvbnRlbnQgZmlsbHMgdGhlIGVudGlyZSB3cmFwcGVyLlxuICogWzldIEVuYWJsZSBhIGZ1bGx5IGNsaWNrYWJsZSBhcmVhLlxuICogWzEwXSBFbmFibGUgaG92ZXIgYW5kIGZvY3VzIHN0YXRlIHN0eWxlcyBvbmx5IGlmIHRoZSBpbm5lciBlbGVtZW50IGlzIGEgbGluayxcbiAqICAgICAgYnV0dG9uIG9yIGlzIGZvY3VzYWJsZS4gYDpoYXMoKWAgaGFzIGN1cnJlbnRseSBsaW1pdGVkIGJyb3dzZXIgc3VwcG9ydC5cbiAqICAgICAgVGhlcmVmb3JlIHdlIGR1cGxpY2F0ZSB0aGUgQ1NTIHJ1bGVzIHZpYSBhIG1peGluIHRvIGF2b2lkIOKAnGludmFsaWTigJ0gQ1NTXG4gKiAgICAgIHNlbGVjdG9ycyBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBgOmhhcygpYC5cbiAqL1xuLmMtaGludCB7XG4gICAgdG9wOiAkaGludC1vZmZzZXQtdmVydGljYWw7IC8qIFsyXSAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWluLXdpZHRoOiAkaGludC1yZWxhdGl2ZS1taW4tc2l6ZTsgLyogWzFdICovXG4gICAgbWluLWhlaWdodDogJGhpbnQtcmVsYXRpdmUtbWluLXNpemU7IC8qIFsxXSAqL1xuICAgIG1hcmdpbi1yaWdodDogJGhpbnQtc3BhY2luZy1ob3Jpem9udGFsO1xuICAgIG1hcmdpbi1sZWZ0OiAkaGludC1zcGFjaW5nLWhvcml6b250YWw7XG4gICAgcGFkZGluZy10b3A6ICRoaW50LXNhZmUtc3BhY2U7IC8qIFsxXSAqL1xuICAgIHBhZGRpbmctYm90dG9tOiAkaGludC1zYWZlLXNwYWNlOyAvKiBbMV0gKi9cbiAgICBwYWRkaW5nLWxlZnQ6ICRoaW50LXBhZGRpbmctaG9yaXpvbnRhbDsgLyogWzddICovXG4gICAgcGFkZGluZy1yaWdodDogJGhpbnQtcGFkZGluZy1ob3Jpem9udGFsOyAvKiBbN10gKi9cbiAgICBib3JkZXI6IGlmKCRoaW50LWJvcmRlciwgJGhpbnQtYm9yZGVyLCBudWxsKTtcbiAgICBib3JkZXItcmFkaXVzOiAkaGludC1ib3JkZXItcmFkaXVzO1xuICAgIGZvbnQtc2l6ZTogJGhpbnQtZmx1aWQtZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkaGludC1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogaW1wb3J0YW50KDEsIHRydWUpOyAvKiBbM10gKi9cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IHN1cGVyOyAvKiBbNF0gKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1oaW50LWJhY2tncm91bmQtY29sb3IsICRoaW50LWJhY2tncm91bmQtY29sb3IpO1xuICAgIGNvbG9yOiB2YXIoLS1oaW50LXRleHQtY29sb3IsICRoaW50LXRleHQtY29sb3IpO1xuICAgIGJveC1zaGFkb3c6IGlmKCRoaW50LWJveC1zaGFkb3csICRoaW50LWJveC1zaGFkb3csIG51bGwpO1xuICAgIHRyYW5zaXRpb246ICRoaW50LXRyYW5zaXRpb247XG5cbiAgICBAaW5jbHVkZSB2YXJ5KCRsb29wOiAkaGludC10aGVtZXMpIHtcbiAgICAgICAgY29sb3I6IHZhcnktZ2V0KFwiaGludC1jb2xvclwiKTtcblxuICAgICAgICAmOmhhcyhhOmhvdmVyLCBidXR0b246aG92ZXIpIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXJ5LWdldChcImhpbnQtY29sb3ItaG92ZXJcIik7IC8qIFsxMF0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXJ5LWdldChcImhpbnQtY29sb3ItaG92ZXJcIik7IC8qIFsxMF0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLy8vIE1peGluIGZvciBzaGFyZWQgaG92ZXIvZm9jdXMgc3R5bGVzXG4gICAgQG1peGluIF9oaW50LWhvdmVyKCkgeyAvKiBbMTBdICovXG4gICAgICAgIGJvcmRlci1jb2xvcjogJGhpbnQtYm9yZGVyLWNvbG9yLWhvdmVyOyAvKiBbNV0gKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhpbnQtYmFja2dyb3VuZC1jb2xvci1ob3ZlcjtcbiAgICAgICAgY29sb3I6IHZhcigtLWhpbnQtdGV4dC1jb2xvci1ob3ZlciwgJGhpbnQtdGV4dC1jb2xvci1ob3Zlcik7XG4gICAgICAgIGJveC1zaGFkb3c6IGlmKCRoaW50LWJveC1zaGFkb3ctaG92ZXIsICRoaW50LWJveC1zaGFkb3ctaG92ZXIsIG51bGwpO1xuICAgIH1cblxuICAgICY6aGFzKGE6aG92ZXIsIGJ1dHRvbjpob3Zlcikge1xuICAgICAgICBAaW5jbHVkZSBfaGludC1ob3ZlcigpOyAvKiBbMTBdICovXG4gICAgfVxuXG4gICAgJjpmb2N1cy13aXRoaW4ge1xuICAgICAgICBAaW5jbHVkZSBfaGludC1ob3ZlcigpOyAvKiBbMTBdICovXG4gICAgfVxuXG4gICAgPiAqIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtYnV0dG9uKCk7XG4gICAgICAgIG1hcmdpbi10b3A6IC0oJGhpbnQtc2FmZS1zcGFjZSk7IC8qIFs4XSAqL1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0oJGhpbnQtcGFkZGluZy1ob3Jpem9udGFsKTsgLyogWzhdICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206IC0oJGhpbnQtc2FmZS1zcGFjZSk7IC8qIFs4XSAqL1xuICAgICAgICBtYXJnaW4tbGVmdDogLSgkaGludC1wYWRkaW5nLWhvcml6b250YWwpOyAvKiBbOF0gKi9cbiAgICAgICAgcGFkZGluZy10b3A6ICRoaW50LXNhZmUtc3BhY2U7IC8qIFsxXSAqL1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkaGludC1wYWRkaW5nLWhvcml6b250YWw7IC8qIFs3XSAqL1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGhpbnQtc2FmZS1zcGFjZTsgLyogWzFdICovXG4gICAgICAgIHBhZGRpbmctbGVmdDogJGhpbnQtcGFkZGluZy1ob3Jpem9udGFsOyAvKiBbN10gKi9cbiAgICAgICAgZm9udC1zaXplOiBpbXBvcnRhbnQoaW5oZXJpdCwgdHJ1ZSk7IC8qIFs1XSAqL1xuICAgICAgICBmb250LXdlaWdodDogaW1wb3J0YW50KGluaGVyaXQsIHRydWUpOyAvKiBbNV0gKi9cbiAgICAgICAgbGluZS1oZWlnaHQ6IGltcG9ydGFudChpbmhlcml0LCB0cnVlKTsgLyogWzVdICovXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogaW1wb3J0YW50KG5vbmUsIHRydWUpOyAvKiBbNV0gKi9cbiAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcImxudW1cIiAxOyAvKiBbNl0gKi9cbiAgICAgICAgY29sb3I6IGltcG9ydGFudChpbmhlcml0LCB0cnVlKTsgLyogWzVdICovXG4gICAgfVxuXG4gICAgPiBhLFxuICAgID4gYnV0dG9uIHtcblxuICAgICAgICAmOjphZnRlciB7IC8qIFs5XSAqL1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogLSgkaGludC1zYWZlLXNwYWNlKTtcbiAgICAgICAgICAgIGxlZnQ6IC0oJGhpbnQtcGFkZGluZy1ob3Jpem9udGFsKTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJGhpbnQtcmVsYXRpdmUtbWluLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkaGludC1yZWxhdGl2ZS1taW4tc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRoaW50LWJvcmRlci1yYWRpdXM7XG4gICAgICAgIH1cblxuICAgIH1cblxufVxuIiwiLy8gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0hJTlQgKFNldHRpbmdzKVxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRoaW50LXRleHQtY29sb3I6ICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRoaW50LWJhY2tncm91bmQtY29sb3I6ICAgICAgICRDT0xPUi1CQVNFICFkZWZhdWx0O1xuJGhpbnQtYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogJENPTE9SLU9OLVNVUkZBQ0UtNzAwICFkZWZhdWx0O1xuJGhpbnQtYm94LXNoYWRvdy1ob3ZlcjogICAgICAgZmFsc2UgIWRlZmF1bHQ7XG5cbiRoaW50LW1pbi1zaXplOiAgICAgICAgICAgICAgIDE2cHggIWRlZmF1bHQ7XG4kaGludC1taW4tdGV4dC1zaXplOiAgICAgICAgICBtYXAtZ2V0KCRGUy0yLCBudWxsKSAhZGVmYXVsdDtcbiRoaW50LW1heC10ZXh0LXNpemU6ICAgICAgICAgIG1hcC1nZXQoJEZTLTEsIG51bGwpICFkZWZhdWx0O1xuJGhpbnQtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgMC4zZW0gIWRlZmF1bHQ7XG5cbiRoaW50LWJvcmRlcjogICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGhpbnQtYm9yZGVyLXJhZGl1czogICAgICAgICAgJGhpbnQtbWluLXNpemUgIWRlZmF1bHQ7XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjSElOVFxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jLWhpbnQge1xuXG4gICAgJjpmb2N1cy13aXRoaW4ge1xuICAgICAgICBAaW5jbHVkZSBmb2N1cy1zdHlsZXMoKTtcbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNERVNDUklQVElPTi1MSVNUXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGRlc2NyaXB0aW9uLWxpc3QtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQkFTRS1URVhUICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtZ3JvdXAtc3BhY2luZy12ZXJ0aWNhbDogICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRkZXNjcmlwdGlvbi1saXN0LWdyb3VwLXNwYWNpbmctaG9yaXpvbnRhbDogICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG5cbi8vIFdoZW4gdGhlIHdpZHRoIG9mIHRoZSBkZXNjcmlwdGlvbiBsaXN0IGlzIHNtYWxsZXIsIHRoZSBpdGVtcyBpbiB0aGVcbi8vIOKAnGhvcml6b250YWzigJ0gdmFyaWFudCAoYW5kIHRoZSBncm91cHMgaW4gdGhlIOKAnGdyaWTigJ0gdmFyaWFudCkgd2lsbCBiZSBkaXNwbGF5ZWRcbi8vIGJlbG93IHRoZSBvdGhlci5cbiRkZXNjcmlwdGlvbi1saXN0LWhvcml6b250YWwtaXRlbS1icmVhay13aWR0aDogICAgMzVyZW0gIWRlZmF1bHQ7XG5cbi8vIFZlcnRpY2FsIHNwYWNpbmcgYmV0d2VlbiB0ZXJtcyBhbmQgZGV0YWlscyAoYW5kIGNvbnNlY3V0aXZlIGRldGFpbHMpLlxuJGRlc2NyaXB0aW9uLWxpc3QtaXRlbS1zcGFjaW5nLXZlcnRpY2FsOiAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtaXRlbS1zcGFjaW5nLWhvcml6b250YWw6ICAgICAgICAkZGVzY3JpcHRpb24tbGlzdC1ncm91cC1zcGFjaW5nLWhvcml6b250YWwgIWRlZmF1bHQ7XG5cbiRkZXNjcmlwdGlvbi1saXN0LXRlcm0tZm9udC1zaXplOiAgICAgICAgICAgICAgICAgJEZTMCAhZGVmYXVsdDtcbiRkZXNjcmlwdGlvbi1saXN0LXRlcm0tZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1SRUdVTEFSICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtdGVybS1jb2xvcjogICAgICAgICAgICAgICAgICAgICBpbmhlcml0ICFkZWZhdWx0O1xuXG4kZGVzY3JpcHRpb24tbGlzdC10aW1lLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICRGUy0xICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtdGltZS1mb250LXdlaWdodDogICAgICAgICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVIgIWRlZmF1bHQ7XG5cbiRkZXNjcmlwdGlvbi1saXN0LWRldGFpbC1mb250LXNpemU6ICAgICAgICAgICAgICAgJEZTMCAhZGVmYXVsdDtcbiRkZXNjcmlwdGlvbi1saXN0LWRldGFpbC1mb250LXdlaWdodDogICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xEICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtZGV0YWlsLWNvbG9yOiAgICAgICAgICAgICAgICAgICBpbmhlcml0ICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtZGV0YWlsLWl0ZW0tc3BhY2luZy1ob3Jpem9udGFsOiAkZGVzY3JpcHRpb24tbGlzdC1pdGVtLXNwYWNpbmctaG9yaXpvbnRhbCAhZGVmYXVsdDtcblxuLy8gVGhlIHdpZHRoIG9mIHRoZSB0ZXJtcyBpbiB0aGUg4oCcdGVybXMgc2hvcnTigJ0gdmFyaWFudCB3aGVuIHRoZSB3aWR0aCBvZlxuLy8gdGhlIGRlc2NyaXB0aW9uIGxpc3QgaXMgbGFyZ2VyIHRoYW4gYCRkZXNjcmlwdGlvbi1saXN0LWhvcml6b250YWwtaXRlbS1icmVhay13aWR0aGAuXG4kZGVzY3JpcHRpb24tbGlzdC10ZXJtcy1zaG9ydC13aWR0aDogICAgICAgICAgICAgIDE1cmVtICFkZWZhdWx0O1xuXG4vLyBTZXQgdGhlIGNvbnRhaW5lciBxdWVyeSDigJxicmVha3BvaW504oCdIGluIGByZW1gIHdoZW4gdGhlIGRldGFpbCBlbGVtZW50cyBzaG91bGRcbi8vIGJyZWFrIGJlbG93IHRoZSB0ZXJtcyBpbiB0aGUg4oCcc3BsaXTigJ0gdmFyaWFudC5cbiRkZXNjcmlwdGlvbi1saXN0LXNwbGl0LWl0ZW0tYnJlYWstd2lkdGg6ICAgICAgICAgMjByZW0gIWRlZmF1bHQ7XG4vLyBNYXAgdGhhdCBpcyBuZWVkZWQgYnkgdGhlIGNvbnRhaW5lciBxdWVyaWVzIG1peGluLiBUaGUg4oCcYnJlYWtwb2ludOKAnSBnZXRzXG4vLyBjb252ZXJ0ZWQgdG8gYSB1bml0bGVzcyBwaXhlbCB2YWx1ZS5cbiRkZXNjcmlwdGlvbi1saXN0LXNwbGl0LXdpZHRoLXF1ZXJpZXM6IChcbiAgICBzOiAwLFxuICAgIG06IHN0cmlwLXVuaXQoJGRlc2NyaXB0aW9uLWxpc3Qtc3BsaXQtaXRlbS1icmVhay13aWR0aCkgKiBzdHJpcC11bml0KCRHTE9CQUwtRk9OVC1TSVpFKSxcbikgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIFJlc2V0IHBvdGVudGlhbCBkZWZhdWx0IHN0eWxlIGZyb20gZ2VuZXJpYyBhbmQgZWxlbWVudCBsYXllcnMuXG4gKiBbMl0gVXNlIGBpbmxpbmUtZmxleGAgc28gdGhhdCBjaGlsZCBlbGVtZW50cyxcbiAqICAgICBsaWtlIGAuYy1kZXNjcmlwdGlvbi1saXN0X19hY3Rpb25gLCBjYW4gYmUgYWxpZ25lZCBwcm9wZXJseS5cbiAqIFszXSBgLmMtZGVzY3JpcHRpb24tbGlzdF9fdGV4dGAgaXMgbmVlZGVkIHRvIG5vdCBsZXQgaW5saW5lIGVsZW1lbnRzIGJlXG4gKiAgICAgaW5mbHVlbmNlZCBieSB0aGUgZmxleGJveCBjb250ZXh0LlxuICogWzRdIExldCBgLmMtZGVzY3JpcHRpb24tbGlzdF9fdGV4dGAgZ3JvdyBzbyB0aGF0IGl0IHBsYXlzIG5pY2Ugd2l0aFxuICogICAgIGAuYy1kZXNjcmlwdGlvbi1saXN0X19hY3Rpb25gIGluIOKAnHNwbGl0IHZhcmlhbnTigJ0uXG4gKiBbNV0gTGV0IGAuYy1kZXNjcmlwdGlvbi1saXN0X19hY3Rpb25gIGdyb3cgaWYgaXTigJlzIHRoZSBvbmx5IGNoaWxkIG9mXG4gKiAgICAgYC5jLWRlc2NyaXB0aW9uLWxpc3RfX2RldGFpbGAuXG4gKiBbNl0gVGVjaG5pcXVlIGlzIGJhc2VkIG9uIHRoZSBiYXNlZCBvbiBGbGV4Ym94IEhvbHkgQWxiYXRyb3NzXG4gKiAgICAgaHR0cHM6Ly9oZXlkb253b3Jrcy5jb20vYXJ0aWNsZS90aGUtZmxleGJveC1ob2x5LWFsYmF0cm9zc1xuICogWzddIFNldCBgZmxleC1iYXNpc2AgdG8gYSBleHRyZW1lIG5lZ2F0aXZlIG9yIHBvc2l0aXZlIHZhbHVlIGJhc2VkIG9uXG4gKiAgICAgYCRkZXNjcmlwdGlvbi1saXN0LWhvcml6b250YWwtaXRlbS1icmVhay13aWR0aGAgYW5kIHRoZXJlZm9yZSBlbmxhcmdlIHRoZVxuICogICAgIGRlc2NyaXB0aW9uIGxpc3QgZ3JvdXAgZWxlbWVudCB0byBmdWxsIHdpZHRoIG9yIHNocmluayB0byB0aGUgYG1pbi13aWR0aGAuXG4gKiBbOF0gU2V0IGBtaW4td2lkdGhgdG8gNTAlIHdpZHRoICh0YWtpbmcgdGhlIGhvcml6b250YWwgc3BhY2luZyBpbnRvIGFjY291bnQpLlxuICogWzldIGBmbGV4LWVuZGAgYmVjYXVzZSB3ZSB3YW50IHRvIGFsaWduIG11bHRpcGxlIGNvbnNlY3V0aXZlIGRldGFpbHMgdG8gdGhlXG4gKiAgICAgcmlnaHQuXG4gKiBbMTBdIExldCB0aGUgZGVzY3JpcHRpb24gbGlzdCBpdGVtIGhvcml6b250YWxseSBncm93IGlmIHRoZSBgZmxleC1iYXNpc2AgdmFsdWVcbiAqICAgICBpcyBuZWdhdGl2ZSAod2hlbiB0aGUgcGFyZW50IGlzIHNtYWxsZXIgdGhhblxuICogICAgIGAkZGVzY3JpcHRpb24tbGlzdC1ob3Jpem9udGFsLWl0ZW0tYnJlYWstd2lkdGhgKS5cbiAqIFsxMV0gU2V0IGBmbGV4LWJhc2lzYCB0byBhIGV4dHJlbWUgbmVnYXRpdmUgb3IgcG9zaXRpdmUgdmFsdWUgYmFzZWQgb25cbiAqICAgICAgYCRkZXNjcmlwdGlvbi1saXN0LWhvcml6b250YWwtaXRlbS1icmVhay13aWR0aGAgYW5kIHRoZXJlZm9yZSB3cmFwIGFuZFxuICogICAgICBlbmxhcmdlIHRoZSBkZXNjcmlwdGlvbiBsaXN0IGl0ZW1zIHRvIGZ1bGwgd2lkdGggb3IgZGlzcGxheSBzaWRlIGJ5IHNpZGUuXG4gKiBbMTJdIFNldCBgbWluLXdpZHRoYCB0byBgNTAlYCB3aWR0aCAodGFraW5nIHRoZSBob3Jpem9udGFsIHNwYWNpbmcgaW50byBhY2NvdW50KS5cbiAqIFsxM10gRG8gbm90IGFsbG93IGNvbnNlY3V0aXZlIGRldGFpbHMgdG8gZ3JvdyBpbiB3aWR0aCBzbyB0aGF0IHRoZXkgYXJlIG5vdFxuICogICAgICBkaXNwbGF5ZWQgYmVsb3cgdGhlIHRlcm0gd2hlbiB0aGUgZGVzY3JpcHRpb24gbGlzdCBpcyB3aWRlciB0aGFuXG4gKiAgICAgIGAkZGVzY3JpcHRpb24tbGlzdC1ob3Jpem9udGFsLWl0ZW0tYnJlYWstd2lkdGhgLlxuICogWzE0XSBBZGQgYDAuMXB4YCB0byB0aGUgYG1pbi13aWR0aGAgdG8gbWFrZSBpdCBhIHZlcnkgdGlueSBiaXQgd2lkZXIgdGhhbiBgNTAlYFxuICogICAgICBzbyB0aGF0IGNvbnNlY3V0aXZlIGRldGFpbHMgYXJlIGRpc3BsYXllZCBvbmUgYmVsb3cgdGhlIG90aGVyIGFuZCBub3RcbiAqICAgICAgc2lkZSBieSBzaWRlLlxuICogWzE1XSBVbnNldCBgbWluLXdpZHRoYCBiZWNhdXNlIGluIHRoZSDigJx0ZXJtcyBzaG9ydOKAnSB2YXJpYW50IHRoZSBzaXplIG9mIHRoZVxuICogICAgICB0ZXJtIHdpbGwgYmUgZGV0ZXJtaW5lZCBieSB0aGUgZGV0YWlsIHdpZHRoLlxuICogWzE2XSBDYWxjdWxhdGUgdGhlIGBtaW4td2lkdGhgIGJ5IHN1YnRyYWN0aW5nIHRoZSB0ZXJtc+KAmSB3aWR0aCBhbmQgaG9yaXpvbnRhbFxuICogICAgICBzcGFjaW5nLlxuICogWzE3XSBVc2UgYGNvbnRhaW5lcmAgbWl4aW4gdG8gcmlnaHQgYWxpZ24gdGV4dCBhYm92ZSB0aGVcbiAqICAgICBgJGRlc2NyaXB0aW9uLWxpc3Qtc3BsaXQtaXRlbS1icmVhay13aWR0aGAg4oCcYnJlYWtwb2ludOKAnS5cbiAqICAgICAgVGhlIHNlbGVjdG9yIGAuYy1kZXNjcmlwdGlvbi1saXN0LS1zcGxpdGAgbmVlZHMgdG8gYmUgYWRkZWQgdG8gdGhlXG4gKiAgICAgIGBDb250YWluZXJRdWVyeWAgYGNvbXBvbmVudFNlbGVjdG9yYCBpblxuICogICAgICBgcGFja2FnZXMvYnJvbnNvbi1kZWZhdWx0L3NyYy9qcy9tb2R1bGUvY29udGFpbmVyLXF1ZXJ5LW9ic2VydmVyLmpzYFxuICogICAgICBAVE9ETzogTWF5YmUgd2UgY291bGQgdXNlIF9yZWFsXyBjb250YWluZXIgcXVlcmllcyAob3IgYSBwb2x5ZmlsbCksXG4gKiAgICAgICAgICAgICBzbyBubyBjdXN0b20gU0NTUy9KUyBoeWJyaWQgc29sdXRpb24gaXMgbmVlZGVkIGFueW1vcmUuXG4gKiBbMThdIFRoaXMgYSBDU1MgY3VzdG9tIHByb3BlcnRpZXMgY29uZGl0aW9uYWwgbG9naWMgdGVjaG5pcXVlICgqKmhhY2sqKilcbiAqICAgICAgdGhhdCBhbGxvd3MgdXMgdG8gc2V0IHByb3BlcnRpZXMgZGVwZW5kaW5nIG9uIHRoZSBzaXplIG9mIGAuYy1kZXNjcmlwdGlvbi1saXN0LS1zcGxpdGAuXG4gKiAgICAgIGAtLWlmLWRlc2NyaXB0aW9uLWxpc3Qtc3BsaXQtaXMtd2lkZWAgY2FuIGJlIHVzZWQgYXMgdG9nZ2xlIHRvIHNldFxuICogICAgICBpbnZhbGlkIG9yIHZhbGlkIHZhbHVlcyB0byBDU1MgcHJvcGVydGllcy4gRm9yIGV4YW1wbGU6XG4gKiAgICAgICAgICBgZmxleC1kaXJlY3Rpb246IHZhcigtLWlmLWRlc2NyaXB0aW9uLWxpc3Qtc3BsaXQtaXMtd2lkZSkgY29sdW1uO2BcbiAqICAgICAgV2UgbmVlZCB0aGlzIGZvciB0aGUgUHJvZHVjdCBUYWJsZSBzdW1tYXJ5IGluIFZXNi5cbiAqICAgICAgTGVhcm4gbW9yZSBhYm91dCB0aGlzIHRlY2huaXF1ZSBoZXJlOlxuICogICAgICAtIGh0dHBzOi8vZGV2LnRvL3NpZGRoYXJ0aHNoeW5pYmVuL2NvbmRpdGlvbmFsLWxvZ2ljLXdpdGgtY3NzLXRoZS1jc3MtY3VzdG9tLXByb3BlcnR5LXRyaWNrLTQ0aGJcbiAqICAgICAgLSBodHRwczovL2xlYS52ZXJvdS5tZS8yMDIwLzEwL3RoZS12YXItc3BhY2UtaGFjay10by10b2dnbGUtbXVsdGlwbGUtdmFsdWVzLXdpdGgtb25lLWN1c3RvbS1wcm9wZXJ0eS9cbiAqIFsxOV0gTGV0IChjb25zZWN1dGl2ZSkgZGV0YWlsIGVsZW1lbnRzIGdyb3cgc28gdGhhdCB0aGF0IHRoZXkgYXJlIHJpZ2h0XG4gKiAgICAgIGFsaWduZWQgYWJvdmUgdGhlIOKAnGJyZWFrcG9pbnTigJ0uXG4gKiBbMjBdIEJyZWFrIGVhY2ggZGV0YWlsIGVsZW1lbnQgaW50byBpdHMgb3duIGxpbmUgd2hlbiB0aGVyZSBpcyBub3QgZW5vdWdoXG4gKiAgICAgIHNwYWNlIGJlc2lkZXMgdGhlIHRlcm0gZWxlbWVudC4gUmVzZXQgYWdhaW4gYWJvdmUgdGhlIOKAnGJyZWFrcG9pbnTigJ0uXG4gKiBbMjFdIERpc3BsYXkgY29uc2VjdXRpdmUgZGV0YWlscyBvbmUgYmVsb3cgdGhlIG90aGVyIGJ5IGxldHRpbmcgdGhlbSBncm93IHRvXG4gKiAgICAgYDEwMCVgIHdpZHRoLlxuICogWzIyXSBDb252ZXJ0IHRoZSBsaXN0IHNlbWFudGljYWxseSBhbmQgc3R5bGlzdGljYWxseSBpbnRvIGEgdGFibGUgc28gdGhhdCBpdFxuICogICAgICBiZWhhdmVzIGxpa2UgYSB0YWJsZS5cbiAqIFsyM10gV2UgYXJlIHVzaW5nIGBwYWRkaW5nYCBmb3IgdGhlIHNwYWNpbmcgYmVjYXVzZSB3ZSBjYW4ndCB1c2UgYGdhcGAgb3JcbiAqICAgICAgYG1hcmdpbmAgaW4gYSB0YWJsZS5cbiAqIFsyNF0gV2UgZGlzcGxheSBkZXRhaWxzIG9ubHkgYXMgdGFibGUgY2VsbCwgd2hlbiB0aGVyZSBhcmUgbm8gY29uc2VjdXRpdmVcbiAqICAgICAgZGV0YWlscy4gT3RoZXJ3aXNlIGFkZGl0aW9uYWwgY29sdW1ucyB3b3VsZCBiZSBhZGRlZCB0byB0aGUg4oCcdGFibGXigJ0uXG4gKiBbMjVdIEFkZCBjdXN0b20gcHJvcGVydHkgYXMgYW4gXCJBUElcIiBmb3IgdGV4dC1hbGlnbm1lbnQgYmFzZWQgb24gc2NvcGUvY29udGV4dC5cbiAqIFsyNl0gUmVzZXQgZGVmYXVsdCBlbGVtZW50IG1hcmdpbi5cbiAqIFsyN10gQWx0ZXIgdGV4dC1hbGlnbm1lbnQgYmFzZWQgb24gc3BsaXQtbW9kZSBjb25kaXRpb24uXG4gKi9cblxuLmMtZGVzY3JpcHRpb24tbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHJvdy1nYXA6ICRkZXNjcmlwdGlvbi1saXN0LWdyb3VwLXNwYWNpbmctdmVydGljYWw7XG4gICAgY29sdW1uLWdhcDogJGRlc2NyaXB0aW9uLWxpc3QtZ3JvdXAtc3BhY2luZy1ob3Jpem9udGFsO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IC8qIFsyNl0gKi9cbiAgICB0ZXh0LWFsaWduOiB2YXIoLS1kZXNjcmlwdGlvbi1saXN0LXRleHQtYWxpZ24sIGxlZnQpOyAvKiBbMjVdICovXG4gICAgY29sb3I6ICRkZXNjcmlwdGlvbi1saXN0LWNvbG9yO1xufVxuXG4gICAgLmMtZGVzY3JpcHRpb24tbGlzdF9fZ3JvdXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICByb3ctZ2FwOiAkZGVzY3JpcHRpb24tbGlzdC1pdGVtLXNwYWNpbmctdmVydGljYWw7XG4gICAgICAgIGNvbHVtbi1nYXA6ICRkZXNjcmlwdGlvbi1saXN0LWl0ZW0tc3BhY2luZy1ob3Jpem9udGFsO1xuICAgIH1cblxuICAgIC5jLWRlc2NyaXB0aW9uLWxpc3RfX3Rlcm0ge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZSgkZGVzY3JpcHRpb24tbGlzdC10ZXJtLWZvbnQtc2l6ZSk7XG4gICAgICAgIG1hcmdpbjogMDsgLyogWzFdICovXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGVzY3JpcHRpb24tbGlzdC10ZXJtLWZvbnQtd2VpZ2h0O1xuICAgICAgICB0ZXh0LWFsaWduOiB2YXIoLS1kZXNjcmlwdGlvbi1saXN0LXRleHQtYWxpZ24pO1xuICAgICAgICBjb2xvcjogJGRlc2NyaXB0aW9uLWxpc3QtdGVybS1jb2xvcjtcblxuICAgIH1cblxuICAgIC5jLWRlc2NyaXB0aW9uLWxpc3RfX2RldGFpbCB7XG4gICAgICAgIC0tdGV4dC1hbGlnbi1lbmQ6IHZhcigtLWlmLWRlc2NyaXB0aW9uLWxpc3Qtc3BsaXQtaXMtd2lkZSkgcmlnaHQ7IC8qIFsyN10gKi9cbiAgICAgICAgLS10ZXh0LWFsaWduOiB2YXIoLS10ZXh0LWFsaWduLWVuZCwgdmFyKC0tZGVzY3JpcHRpb24tbGlzdC10ZXh0LWFsaWduKSk7XG5cbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoJGRlc2NyaXB0aW9uLWxpc3QtZGV0YWlsLWZvbnQtc2l6ZSk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyAvKiBbMl0gKi9cbiAgICAgICAgZmxleC13cmFwOiB3cmFwOyAvKiBbMl0gKi9cbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyAvKiBbMl0gKi9cbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IC8qIFsyXSAqL1xuICAgICAgICBjb2x1bW4tZ2FwOiAkZGVzY3JpcHRpb24tbGlzdC1kZXRhaWwtaXRlbS1zcGFjaW5nLWhvcml6b250YWw7XG4gICAgICAgIG1hcmdpbjogMDsgLyogWzFdICovXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGVzY3JpcHRpb24tbGlzdC1kZXRhaWwtZm9udC13ZWlnaHQ7XG4gICAgICAgIHRleHQtYWxpZ246IHZhcigtLXRleHQtYWxpZ24pO1xuICAgICAgICBjb2xvcjogJGRlc2NyaXB0aW9uLWxpc3QtZGV0YWlsLWNvbG9yO1xuXG4gICAgICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgZmxleC1iYXNpczogMTAwJTsgLyogWzJdICovXG5cbiAgICAgICAgICAgICYuYy1kZXNjcmlwdGlvbi1saXN0X19hY3Rpb24ge1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87IC8qIFsyXSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWRlc2NyaXB0aW9uLWxpc3RfX3RleHQgeyAvKiBbM10gKi9cbiAgICAgICAgZmxleC1ncm93OiAxOyAvKiBbNF0gKi9cblxuICAgICAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jLWRlc2NyaXB0aW9uLWxpc3RfX3RpbWUge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICAgJGRlc2NyaXB0aW9uLWxpc3QtdGltZS1mb250LXNpemUsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6IG5vbmUsXG4gICAgICAgICk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGVzY3JpcHRpb24tbGlzdC10aW1lLWZvbnQtd2VpZ2h0O1xuICAgIH1cblxuICAgIC5jLWRlc2NyaXB0aW9uLWxpc3RfX2FjdGlvbiB7XG5cbiAgICAgICAgJjpvbmx5LWNoaWxkIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsgLyogWzVdICovXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC8qXG4gICAgICogR3JpZCB2YXJpYW50XG4gICAgICovXG4gICAgLmMtZGVzY3JpcHRpb24tbGlzdC0tZ3JpZCB7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICA+IC5jLWRlc2NyaXB0aW9uLWxpc3RfX2dyb3VwIHtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoKCN7JGRlc2NyaXB0aW9uLWxpc3QtaG9yaXpvbnRhbC1pdGVtLWJyZWFrLXdpZHRofSAtIDEwMCUpICogOTk5KTsgLyogWzZdIFs3XSAqL1xuICAgICAgICAgICAgbWluLXdpZHRoOiBjYWxjKDUwJSAtICN7JGRlc2NyaXB0aW9uLWxpc3QtZ3JvdXAtc3BhY2luZy1ob3Jpem9udGFsICogMC41fSk7IC8qIFs4XSAqL1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAvKlxuICAgICAqIEhvcml6b250YWwgdmFyaWFudFxuICAgICAqL1xuICAgIC5jLWRlc2NyaXB0aW9uLWxpc3QtLWhvcml6b250YWwge1xuXG4gICAgICAgIC5jLWRlc2NyaXB0aW9uLWxpc3RfX2dyb3VwIHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyAvKiBbOV0gKi9cblxuICAgICAgICAgICAgPiAqIHtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7IC8qIFs2XSBbMTBdICovXG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogY2FsYygoI3skZGVzY3JpcHRpb24tbGlzdC1ob3Jpem9udGFsLWl0ZW0tYnJlYWstd2lkdGh9IC0gMTAwJSkgKiA5OTkpOyAvKiBbNl0gWzExXSAqL1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogY2FsYyg1MCUgLSAjeyRkZXNjcmlwdGlvbi1saXN0LWdyb3VwLXNwYWNpbmctaG9yaXpvbnRhbCAqIDAuNX0pOyAvKiBbMTJdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWRlc2NyaXB0aW9uLWxpc3RfX2RldGFpbCB7XG5cbiAgICAgICAgICAgICsgLmMtZGVzY3JpcHRpb24tbGlzdF9fZGV0YWlsIHtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDA7IC8qIFsxM10gKi9cbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGNhbGMoNTAlIC0gI3skZGVzY3JpcHRpb24tbGlzdC1ncm91cC1zcGFjaW5nLWhvcml6b250YWwgKiAwLjV9ICsgMC4xcHgpOyAvKiBbMTRdICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBTbWFsbCB0ZXJtcyB2YXJpYW50IChjb3VsZCBiZSBjb21iaW5lZCB3aXRoIHRoZSBob3Jpem9udGFsIHZhcmlhbnRzKVxuICAgICAqL1xuICAgIC5jLWRlc2NyaXB0aW9uLWxpc3QtLXRlcm1zLXNob3J0IHtcblxuICAgICAgICAuYy1kZXNjcmlwdGlvbi1saXN0X190ZXJtIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogdW5zZXQ7IC8qIFsxNV0gKi8gLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzY2FsZS11bmxpbWl0ZWQvZGVjbGFyYXRpb24tc3RyaWN0LXZhbHVlICovXG4gICAgICAgIH1cblxuICAgICAgICAuYy1kZXNjcmlwdGlvbi1saXN0X19kZXRhaWwge1xuXG4gICAgICAgICAgICAmLFxuICAgICAgICAgICAgKyAuYy1kZXNjcmlwdGlvbi1saXN0X19kZXRhaWwge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogY2FsYygxMDAlIC0gI3skZGVzY3JpcHRpb24tbGlzdC10ZXJtcy1zaG9ydC13aWR0aH0gLSAjeyRkZXNjcmlwdGlvbi1saXN0LWl0ZW0tc3BhY2luZy1ob3Jpem9udGFsfSk7IC8qIFsxNl0gKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBTcGxpdCB2YXJpYW50XG4gICAgICovXG4gICAgLmMtZGVzY3JpcHRpb24tbGlzdC0tc3BsaXQge1xuICAgICAgICAtLWNvbnRhaW5lci13aWR0aHM6IFwiI3tjcS1jb252ZXJ0LWRhdGEoJGRlc2NyaXB0aW9uLWxpc3Qtc3BsaXQtd2lkdGgtcXVlcmllcyl9XCI7IC8qIFsxN10gKi9cbiAgICAgICAgLS1pZi1kZXNjcmlwdGlvbi1saXN0LXNwbGl0LWlzLXdpZGU6IGluaXRpYWw7IC8qIFsxOF0gKi9cblxuICAgICAgICAuYy1kZXNjcmlwdGlvbi1saXN0X19ncm91cCB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtZGVzY3JpcHRpb24tbGlzdF9fZGV0YWlsIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsgLyogWzE5XSAqL1xuICAgICAgICAgICAgZmxleC1iYXNpczogMTAwJTsgLyogWzIwXSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG9yZGVyL29yZGVyICovXG4gICAgICAgIEBpbmNsdWRlIGNvbnRhaW5lcigkbWFwOiAkZGVzY3JpcHRpb24tbGlzdC1zcGxpdC13aWR0aC1xdWVyaWVzLCAkc2l6ZTogXCJtXCIpIHsgLyogWzE3XSAqL1xuICAgICAgICAgICAgLS1pZi1kZXNjcmlwdGlvbi1saXN0LXNwbGl0LWlzLXdpZGU6IDsgLyogWzE4XSAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lICovXG5cbiAgICAgICAgICAgIC5jLWRlc2NyaXB0aW9uLWxpc3RfX2RldGFpbCB7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogdmFyKC0taWYtZGVzY3JpcHRpb24tbGlzdC1zcGxpdC1pcy13aWRlKSB1bnNldDsgLyogWzIwXSAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjYWxlLXVubGltaXRlZC9kZWNsYXJhdGlvbi1zdHJpY3QtdmFsdWUgKi9cblxuICAgICAgICAgICAgICAgICsgLmMtZGVzY3JpcHRpb24tbGlzdF9fZGV0YWlsIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1iYXNpczogMTAwJTsgLyogWzIxXSAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC8qXG4gICAgICogVGFibGUgdmFyaWFudFxuICAgICAqL1xuICAgIC5jLWRlc2NyaXB0aW9uLWxpc3QtLXRhYmxlIHtcbiAgICAgICAgZGlzcGxheTogdGFibGU7IC8qIFsyMl0gKi9cblxuICAgICAgICAuYy1kZXNjcmlwdGlvbi1saXN0X19ncm91cCB7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3c7IC8qIFsyMl0gKi9cblxuICAgICAgICAgICAgKyAuYy1kZXNjcmlwdGlvbi1saXN0X19ncm91cCB7XG5cbiAgICAgICAgICAgICAgICA+IDpmaXJzdC1vZi10eXBlIHsgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LWNvbWJpbmF0b3JzLCBzZWxlY3Rvci1tYXgtY29tcG91bmQtc2VsZWN0b3JzICovXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkZGVzY3JpcHRpb24tbGlzdC1ncm91cC1zcGFjaW5nLXZlcnRpY2FsOyAvKiBbMjNdICovXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAuYy1kZXNjcmlwdGlvbi1saXN0X190ZXJtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7IC8qIFsyMl0gKi9cbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICgkZGVzY3JpcHRpb24tbGlzdC1pdGVtLXNwYWNpbmctaG9yaXpvbnRhbCAqIDAuNSk7IC8qIFsyM10gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWRlc2NyaXB0aW9uLWxpc3RfX2RldGFpbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogKCRkZXNjcmlwdGlvbi1saXN0LWl0ZW0tc3BhY2luZy1ob3Jpem9udGFsICogMC41KTsgLyogWzIzXSAqL1xuXG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGU6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsgLyogWzI0XSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICArIC5jLWRlc2NyaXB0aW9uLWxpc3RfX2RldGFpbCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6ICRkZXNjcmlwdGlvbi1saXN0LWl0ZW0tc3BhY2luZy12ZXJ0aWNhbDsgLyogWzIzXSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgI1RPR0dMRVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiR0b2dnbGUtdW5oaWRkZW4tc3RhdGU6ICAgICAgICAgJ1thcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXScgIWRlZmF1bHQ7XG4kdG9nZ2xlLWhpZGRlbi1zdGF0ZTogICAgICAgICAgICc6bm90KFthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSknICFkZWZhdWx0O1xuXG4vLyBBIHNlbGVjdG9yIHRoYXQgY2FuIGJlIHVzZWQgdG8gY2hlY2sgaWYgdGhlIHRvZ2dsZSBpcyBpbml0aWFsaXplZC5cbiR0b2dnbGUtdGFyZ2V0LWFjdGl2ZS1zZWxlY3RvcjogXCJbYXJpYS1sYWJlbGxlZGJ5XVwiICFkZWZhdWx0O1xuJHRvZ2dsZS10YXJnZXQtaGlkZGVuLXN0YXRlOiAgICAnW2FyaWEtaGlkZGVuPVwidHJ1ZVwiXScgIWRlZmF1bHQ7XG4kdG9nZ2xlLXRhcmdldC11bmhpZGRlbi1zdGF0ZTogICdbYXJpYS1oaWRkZW49XCJmYWxzZVwiXScgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIEhhbmRsZSB0aGUgaGlkZGVuL3VuaGlkZGVuIHN0YXRlIGZvciB0aGUgbGFiZWwuXG4gKi9cblxuLm8tdG9nZ2xlIHtcblxuICAgICYjeyR0b2dnbGUtaGlkZGVuLXN0YXRlfSAuby10b2dnbGVfX2xhYmVsLS10YXJnZXQtdW5oaWRkZW4sXG4gICAgJiN7JHRvZ2dsZS11bmhpZGRlbi1zdGF0ZX0gLm8tdG9nZ2xlX19sYWJlbC0tdGFyZ2V0LWhpZGRlbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IC8qIFsxXSAqL1xuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1NIT1ctTU9SRVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkB1c2UgXCIuLi8wNS1vYmplY3RzL19vYmplY3RzLnRvZ2dsZS5zY3NzXCIgYXMgdG9nZ2xlO1xuXG4kc2hvdy1tb3JlLXNwYWNpbmctYm90dG9tOiAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHNob3ctbW9yZS1zcGFjaW5nLXRvcDogICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuJHNob3ctbW9yZS10b2dnbGUtc3BhY2luZy1ib3R0b206ICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRzaG93LW1vcmUtdG9nZ2xlLXNwYWNpbmctdG9wOiAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuXG4kc2hvdy1tb3JlLWl0ZW1zLWFsaWdubWVudDogICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kc2hvdy1tb3JlLWljb24tY29tcGxleGl0eTogICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHNob3ctbW9yZS1pY29uLWV4cGFuZDogICAgICAgICAgICAgICAgICAgICAgZ2V0LWljb24oc2VtYW50aWMtZXhwYW5kLCAkc2hvdy1tb3JlLWljb24tY29tcGxleGl0eSkgIWRlZmF1bHQ7XG4kc2hvdy1tb3JlLWljb24tY29sbGFwc2U6ICAgICAgICAgICAgICAgICAgICBnZXQtaWNvbihzZW1hbnRpYy1jb2xsYXBzZSwgJHNob3ctbW9yZS1pY29uLWNvbXBsZXhpdHkpICFkZWZhdWx0O1xuJHNob3ctbW9yZS1pY29uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgaWNvbi1zaXplKHNtYWxsKSAhZGVmYXVsdDtcblxuLy8gU2V0IHRvIGEgcmVhc29uYWJsZSBhbW91bnQuXG4kc2hvdy1tb3JlLXRhcmdldC1tYXgtaGVpZ2h0OiAgICAgICAgICAgICAgICAyMDBlbSAhZGVmYXVsdDtcbiRzaG93LW1vcmUtdGFyZ2V0LWFuaW1hdGlvbi1kdXJhdGlvbi1leHBhbmQ6ICRHTE9CQUwtVFJBTlNJVElPTi1EVVJBVElPTi1MT05HICFkZWZhdWx0O1xuXG5cbi8qKlxuICogWzFdIFJlbW92ZSBhbnkgdHJhaWxpbmcgc3BhY2luZyBmb3IgdGhlIGZpcnN0LXR3byBsZXZlbCBvZiBuZXN0ZWQgbGFzdC1jaGlsZCBlbGVtZW50cyBpbnNpZGUgYGMtc2hvdy1tb3JlX19ib2R5YC5cbiAqIFsyXSBSZW5kZXIgdGhlIHNob3cgbW9yZSBidXR0b24gaWNvbiB2aWEgQ1NTIGFuZCBkZWZhdWx0IHRvIHRoZSBjb2xsYXBzZSBzdGF0ZS5cbiAqIFs0XSBUcnVuY2F0ZSBhbnkgdmlzaWJsZSBvdmVyZmxvdy5cbiAqIFs1XSBIYW5kbGUgdGhlIGNvbGxhcHNlZCBzdGF0ZSBmb3IgdGhlIHRvZ2dsZSBjb250ZW50IHRhcmdldC5cbiAqIFs2XSBIYW5kbGUgdGhlIGluaXRpYWwgc3RhdGUgZm9yIHRoZSB0b2dnbGUgY29udGVudCB0YXJnZXQuXG4gKiBbN10gQWxpZ24gaWNvbiBhbmQgYnV0dG9uIHRleHQgd2hlbiBkaWZmZXIgaW4gc2l6ZS5cbiAqL1xuXG4uYy1zaG93LW1vcmUge1xuICAgIG1hcmdpbi1ib3R0b206ICRzaG93LW1vcmUtc3BhY2luZy1ib3R0b207XG4gICAgbWFyZ2luLXRvcDogJHNob3ctbW9yZS1zcGFjaW5nLXRvcDtcbn1cblxuICAgIC5jLXNob3ctbW9yZV9fYm9keSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oXG4gICAgICAgICAgICAkdHJhbnNpdGlvbi1wcm9wZXJ0eTogXCJ2aXNpYmlsaXR5LCBtYXgtaGVpZ2h0LCBvcGFjaXR5XCIsXG4gICAgICAgICAgICAkdHJhbnNpdGlvbi1kdXJhdGlvbjogJHNob3ctbW9yZS10YXJnZXQtYW5pbWF0aW9uLWR1cmF0aW9uLWV4cGFuZFxuICAgICAgICApO1xuICAgICAgICBtYXgtaGVpZ2h0OiAkc2hvdy1tb3JlLXRhcmdldC1tYXgtaGVpZ2h0O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXG4gICAgICAgICYje3RvZ2dsZS4kdG9nZ2xlLXRhcmdldC1oaWRkZW4tc3RhdGV9IHsgLyogWzVdICovXG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKFxuICAgICAgICAgICAgICAgICR0cmFuc2l0aW9uLXByb3BlcnR5OiBcInZpc2liaWxpdHksIG1heC1oZWlnaHQsIG9wYWNpdHlcIixcbiAgICAgICAgICAgICAgICAkdHJhbnNpdGlvbi1kZWxheTogXCIjeyRzaG93LW1vcmUtdGFyZ2V0LWFuaW1hdGlvbi1kdXJhdGlvbi1leHBhbmR9LCAwcywgMHM7XCIsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCgje3RvZ2dsZS4kdG9nZ2xlLXRhcmdldC11bmhpZGRlbi1zdGF0ZX0pOm5vdCgje3RvZ2dsZS4kdG9nZ2xlLXRhcmdldC1oaWRkZW4tc3RhdGV9KSB7IC8qIFs2XSAqL1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDBzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwcztcbiAgICAgICAgfVxuXG4gICAgICAgID4gOmxhc3QtY2hpbGQsXG4gICAgICAgID4gOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBpbml0aWFsOyAvKiBbMV0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtc2hvdy1tb3JlX19idXR0b24ge1xuICAgICAgICAtLXNob3ctbW9yZS1idXR0b24taWNvbjogI3skc2hvdy1tb3JlLWljb24tZXhwYW5kfTtcbiAgICAgICAgYWxpZ24taXRlbXM6ICRzaG93LW1vcmUtaXRlbXMtYWxpZ25tZW50OyAvKiBbN10gKi9cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNob3ctbW9yZS10b2dnbGUtc3BhY2luZy1ib3R0b207XG4gICAgICAgIG1hcmdpbi10b3A6ICRzaG93LW1vcmUtdG9nZ2xlLXNwYWNpbmctdG9wO1xuXG4gICAgICAgICYje3RvZ2dsZS4kdG9nZ2xlLXVuaGlkZGVuLXN0YXRlfSB7XG4gICAgICAgICAgICAtLXNob3ctbW9yZS1idXR0b24taWNvbjogI3skc2hvdy1tb3JlLWljb24tY29sbGFwc2V9O1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1zaG93LW1vcmVfX2ljb246OmJlZm9yZSB7IC8qIFsyXSAqL1xuICAgICAgICBAaW5jbHVkZSBpY29uLWZvbnQoKTtcbiAgICAgICAgY29udGVudDogdmFyKC0tc2hvdy1tb3JlLWJ1dHRvbi1pY29uKTtcbiAgICAgICAgZm9udC1zaXplOiAkc2hvdy1tb3JlLWljb24tc2l6ZTtcbiAgICB9XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjU0hPVy1NT1JFIChTZXR0aW5ncylcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2hvdy1tb3JlLWljb24tc2l6ZTogaWNvbi1zaXplKCRCVVRUT04tSUNPTi1TSVpFKSAhZGVmYXVsdDtcbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgI0FDVElPTlMtQlVUVE9OUy1DT05UQUlORVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AdXNlIFwiLi4vMDUtb2JqZWN0cy9fb2JqZWN0cy50b2dnbGUuc2Nzc1wiIGFzIHRvZ2dsZTtcblxuJGFjdGlvbi1idXR0b25zLWNvbnRhaW5lci1mbG9hdC1ncmlkLWFyZWE6ICAgICAgICAgIGJvdHRvbS1yaWdodCAhZGVmYXVsdDtcbiRhY3Rpb24tYnV0dG9ucy1jb250YWluZXItdG9nZ2xlLWljb24tY29tcGxleGl0eTogICBudWxsICFkZWZhdWx0O1xuJGFjdGlvbi1idXR0b25zLWNvbnRhaW5lci10b2dnbGUtaWNvbi1oaWRkZW46ICAgICAgIHNlbWFudGljLXBsdXMgIWRlZmF1bHQ7XG4kYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyLXRvZ2dsZS1pY29uLXVuaGlkZGVuOiAgICAgc2VtYW50aWMtbWludXMgIWRlZmF1bHQ7XG4kYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyLW1heC1pdGVtczogICAgICAgICAgICAgICAgMTAgIWRlZmF1bHQ7XG4kYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyLWl0ZW0tdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4wNXMgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIERvbuKAmXQgZ2VuZXJhdGUgYSBkaXNwbGF5IGJveCBmb3IgdGhlIGNvbnRhaW5lciBhbmQgdGhlIGJ1dHRvbnMgd3JhcHBlclxuICogICAgIHNvIHRoYXQgdGhlIGl0ZW1zIHdpbGwgYmUgcG9zaXRpb25lZCBieSB0aGUgb3V0ZXIgZmxvYXQgZ3JpZCBhcmVhIEZsZXhib3ggcnVsZXMuXG4gKiBbMl0gUG9zaXRpb24gYnV0dG9ucyBpbiBGbG9hdCBHcmlkIGFyZWEuXG4gKiBbM10gVHJhbnNpdGlvbiBpdGVtcyBmcm9tIGAwcHhgIGhlaWdodCB0byBidXR0b24gaGVpZ2h0IGluIHVuaGlkZGVuIHN0YXRlLlxuICogWzRdIEluY3JlYXNlIGB0cmFuc2l0aW9uLWRlbGF5YCBmb3IgZWFjaCBpdGVtICh1cCB0byBgJGFjdGlvbi1idXR0b25zLWNvbnRhaW5lci1tYXgtaXRlbXNgKVxuICogICAgIHRvIGRpc3BsYXkgb25lIGFmdGVyIHRoZSBvdGhlci5cbiAqIFs1XSBXaXRoIGB0b2dnbGUuJHRvZ2dsZS10YXJnZXQtYWN0aXZlLXNlbGVjdG9yYCB3ZSBjYW4gY2hlY2sgaWYgdGhlIHRvZ2dsZSBpc1xuICogICAgIHdvcmtpbmcuIElmIG5vdCAoZS5nLiB3aXRoIGRpc2FibGVkIEphdmFTY3JpcHQpLCB3ZSBkb27igJl0IGhpZGUgdGhlIGl0ZW1zLlxuICogWzZdIFJlbW92ZSBmbGV4Ym94IGdhcCBiZXR3ZWVuIGl0ZW1zIGluIGhpZGRlbiBzdGF0ZS5cbiAqIFs3XSBUYXJnZXQgZGV2aWNlcyB0aGF0IHByaW1hcnkgaW5wdXQgbWVjaGFuaXNtIGNhbiBub3QgaG92ZXIgYW5kIGhhcyBub3QgYVxuICogICAgIGZpbmUgcG9pbnRlciwgc28gZXNzZW50aWFsbHkgZGV2aWNlcyB3aXRoIHRvdWNoIGNhcGFiaWxpdGllcy5cbiAqIFs4XSBJbmNyZWFzZSBzcGVjaWZpY2l0eSB0byBvdmVycmlkZSBgLmMtYnRuLS1pbmNvZ25pdG9gLlxuICogWzldIFVzZSBhIGZlYXR1cmUgb2YgdGhlIEluY29nbml0byBCdXR0b246IENTUyBjdXN0b20gcHJvcGVydGllcyBjb25kaXRpb25hbHNcbiAqICAgICB0byBzZXQgdGhlIGNvbGxhcHNlZCBzdGF0ZSBvZiBhIGJ1dHRvbi4gQ2hlY2sgdGhlIHJlbGF0ZWQgY29tbWVudCBpblxuICogICAgIGBfY29tcG9uZW50cy5idXR0b25zLnNjc3NgLlxuICogWzEwXSBGaXggc29tZSB1bndhbnRlZCB0b2dnbGUgYnV0dG9uIGhlaWdodCBjaGFuZ2UgZm9yIHNvbWUgYnJhbmRzIChlLmcuIEFVREkpXG4gKiAgICAgIHdoZW4gdGhlIGNvbnRhaW5lciBnZXRzIGV4cGFuZGVkIGluIGEgRmxvYXQgR3JpZCBhcmVhLlxuICogWzExXSBXZSBkb27igJl0IHdhbnQgdG8gYW5pbWF0ZSBgdHJhbnNmb3JtYCBmb3IgdGhlIGJ1dHRvbnMgYW5kIHRoZSB0b2dnbGUgYnV0dG9uLlxuICogICAgICBUaGF0IHdvdWxkIHJlc3VsdCBpbiBzb21lIHdlaXJkIG1vdmVtZW50cyB3aGlsZSByZXNpemluZyB0aGUgYnJvd3NlclxuICogICAgICB3aW5kb3cgKGR1ZSB0byB0aGUgYHRyYW5zaXRpb24tZGVsYXlgKS5cbiAqIFsxMl0gYmVjYXVzZSB3ZSBhbHJlYWR5IGtub3cgdGhlIHdpZHRoIG9mIHRoZSBjb2xsYXBzZWQgYnV0dG9ucyAoYC0tYnV0dG9uLWhlaWdodGApXG4gKiAgICAgIHdlIGNhbiB1c2UgdGhhdCB0byBjYWxjdWxhdGUgdGhlIG9mZnNldCBpbiB0aGUgRmxvYXQgR3JpZCBhcmVhLlxuICogICAgICBUaGUgZGVmYXVsdCBvZmZzZXQgb2YgYDEwMCVgIHdvdWxkIHNoaWZ0IHRoZSB3aG9sZSBidXR0b24gd2hlbiBpdCBnZXRzXG4gKiAgICAgIGV4cGFuZGVkLlxuICogWzEzXSBFeHRlbmQgdGhlIEZsb2F0IEdyaWQgYXJlYSBvZmZzZXQgdHJhbnNmb3JtYXRpb24uIEZvciBkZXRhaWxzIGNoZWNrIHRoZVxuICogICAgICBjb21tZW50cyBpbiBgX29iamVjdHMuZmxvYXQtZ3JpZC5zY3NzYC5cbiAqIFsxNF0gUmVtb3ZlIGFueSB2aXNpYmxlIGBib3gtc2hhZG93YCB3aGVuIGluIGNvbGxhcHNlZCBzdGF0ZS5cbiAqL1xuLmMtYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyLFxuLmMtYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyX19pdGVtcyB7XG4gICAgZGlzcGxheTogY29udGVudHM7IC8qIFsxXSAqL1xufVxuXG4uYy1hY3Rpb24tYnV0dG9ucy1jb250YWluZXIge1xuICAgIC0tYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyLWl0ZW0tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1yZWR1Y2VkLW1vdGlvbiwgI3skYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyLWl0ZW0tdHJhbnNpdGlvbi1kdXJhdGlvbn0pO1xuICAgIEBpbmNsdWRlIGZsb2F0LWdyaWQtYXJlYShcbiAgICAgICAgJGFyZWE6ICRhY3Rpb24tYnV0dG9ucy1jb250YWluZXItZmxvYXQtZ3JpZC1hcmVhLCAvKiBbMl0gKi9cbiAgICApO1xufVxuXG4gICAgLmMtYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyX19pdGVtIHtcbiAgICAgICAgLS1hY3Rpb24tYnV0dG9ucy1jb250YWluZXItaXRlbS10cmFuc2l0aW9uLWRlbGF5OiBjYWxjKCh2YXIoLS1hY3Rpb24tYnV0dG9ucy1jb250YWluZXItaXRlbS10cmFuc2l0aW9uLWR1cmF0aW9uKSAqIHZhcigtLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lci1pdGVtLXRyYW5zaXRpb24tZGVsYXktbXVsdGlwbGllciwgMSkpIC0gdmFyKC0tYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyLWl0ZW0tdHJhbnNpdGlvbi1kdXJhdGlvbikpOyAvKiBbNF0gKi9cbiAgICAgICAgbWF4LWhlaWdodDogdmFyKC0tYnV0dG9uLWhlaWdodCk7IC8qIFszXSAqL1xuICAgICAgICB0cmFuc2l0aW9uOiAvKiBbNF0gKi9cbiAgICAgICAgICAgIHZhcigtLXRyYW5zaXRpb24tcHJvcGVydHkpIHZhcigtLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lci1pdGVtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKSB2YXIoLS1hY3Rpb24tYnV0dG9ucy1jb250YWluZXItaXRlbS10cmFuc2l0aW9uLWRlbGF5KSxcbiAgICAgICAgICAgIG9wYWNpdHkgY2FsYyh2YXIoLS1hY3Rpb24tYnV0dG9ucy1jb250YWluZXItaXRlbS10cmFuc2l0aW9uLWR1cmF0aW9uKSAqIDUpIGVhc2UtaW4tb3V0IHZhcigtLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lci1pdGVtLXRyYW5zaXRpb24tZGVsYXkpLFxuICAgICAgICAgICAgdHJhbnNmb3JtIDBzO1xuXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGFjdGlvbi1idXR0b25zLWNvbnRhaW5lci1tYXgtaXRlbXMge1xuICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAtLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lci1pdGVtLXRyYW5zaXRpb24tZGVsYXktbXVsdGlwbGllcjogI3skaX07IC8qIFs0XSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3t0b2dnbGUuJHRvZ2dsZS10YXJnZXQtYWN0aXZlLXNlbGVjdG9yfTpub3QoI3t0b2dnbGUuJHRvZ2dsZS10YXJnZXQtdW5oaWRkZW4tc3RhdGV9KSA+ICYgeyAvKiBbNV0gKi9cbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7IC8qIFszXSAqL1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMDsgLyogWzNdICovXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWZsb2F0LWdyaWQtaXRlbS1nYXApICogLTEpOyAvKiBbM10gWzZdICovXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDsgLyogWzNdICovXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDsgLyogWzNdICovXG4gICAgICAgICAgICBib3JkZXItdG9wLXdpZHRoOiAwOyAvKiBbM10gKi9cbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7IC8qIFszXSAqL1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTsgLyogWzE0XSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvbWVkaWEtZmVhdHVyZS12YWx1ZS1kb2xsYXItdmFyaWFibGUsIG9yZGVyL29yZGVyICovXG4gICAgICAgIEBtZWRpYSBub3QgYWxsIGFuZCAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHsgLyogWzddICovXG4gICAgICAgICAgICAmI3smfSB7IC8qIFs4XSAqL1xuICAgICAgICAgICAgICAgIC0tYnV0dG9uLWNvbGxhcHNlZDogaW5pdGlhbDsgLyogWzldICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuLmMtYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyX190b2dnbGUge1xuICAgIC0tdHJhbnNpdGlvbi1wcm9wZXJ0eTogdmFyKC0tdHJhbnNpdGlvbi1wcm9wZXJ0eSksIHRyYW5zZm9ybTtcbiAgICAtLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pLCAwcztcbiAgICAtLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lci10b2dnbGUtaWNvbjogI3tnZXQtaWNvbigkYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyLXRvZ2dsZS1pY29uLWhpZGRlbiwgJGFjdGlvbi1idXR0b25zLWNvbnRhaW5lci10b2dnbGUtaWNvbi1jb21wbGV4aXR5KX07XG4gICAgZmxleC1iYXNpczogdmFyKC0tYnV0dG9uLWhlaWdodCk7IC8qIDEwICovXG5cbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9tZWRpYS1mZWF0dXJlLXZhbHVlLWRvbGxhci12YXJpYWJsZSAqL1xuICAgIEBtZWRpYSBub3QgYWxsIGFuZCAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHsgLyogWzddICovXG4gICAgICAgICY6bm90KC5pcy1jb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIC0tYnV0dG9uLWNvbGxhcHNlZDogaW5pdGlhbDsgLyogWzldICovXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmI3t0b2dnbGUuJHRvZ2dsZS11bmhpZGRlbi1zdGF0ZX0ge1xuICAgICAgICAtLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lci10b2dnbGUtaWNvbjogI3tnZXQtaWNvbigkYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyLXRvZ2dsZS1pY29uLXVuaGlkZGVuLCAkYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyLXRvZ2dsZS1pY29uLWNvbXBsZXhpdHkpfTtcbiAgICB9XG59XG5cbi5jLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lcl9fdG9nZ2xlX19pY29uOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGljb24tZm9udCgpO1xuICAgIGNvbnRlbnQ6IHZhcigtLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lci10b2dnbGUtaWNvbik7XG59XG5cbi5jLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lcl9faXRlbSxcbi5jLWFjdGlvbi1idXR0b25zLWNvbnRhaW5lcl9fdG9nZ2xlIHtcbiAgICAtLWdyaWQtYXJlYS1pdGVtLW9mZnNldDogdmFyKC0tYnV0dG9uLWhlaWdodCk7IC8qIFsxMl0gKi9cbiAgICBAZXh0ZW5kICVmbG9hdC1ncmlkLWFyZWEtb2Zmc2V0OyAvKiBbMTNdICovXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjRUZGSUNJRU5DWS1UQUdcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vLyBXZSBhcmUgdXNpbmcgcmVsYXRpdmUgZm9udCBzaXplIHVuaXRzIGhlcmUsIHNvIHRoYXQgdGhlIHNpemUgYWx3YXlzIGFkYXB0cyB0b1xuLy8gdGhlIGNvbnRleHQuXG4kZWZmaWNpZW5jeS10YWctdmVydGljYWwtb2Zmc2V0OiAgICAtMC4xZW0gIWRlZmF1bHQ7XG4kZWZmaWNpZW5jeS10YWctbWluLXdpZHRoOiAgICAgICAgICAzLjVlbSAhZGVmYXVsdDtcbiRlZmZpY2llbmN5LXRhZy1oZWlnaHQ6ICAgICAgICAgICAgIDEuNmVtICFkZWZhdWx0O1xuJGVmZmljaWVuY3ktdGFnLXBhZGRpbmctaG9yaXpvbnRhbDogMC41ZW0gIWRlZmF1bHQ7XG4kZWZmaWNpZW5jeS10YWctZm9udC1mYW1pbHk6ICAgICAgICAkQkFTRS1GT05UICFkZWZhdWx0O1xuJGVmZmljaWVuY3ktdGFnLWZvbnQtc2l6ZTogICAgICAgICAgMC44ZW0gIWRlZmF1bHQ7XG4kZWZmaWNpZW5jeS10YWctZm9udC13ZWlnaHQ6ICAgICAgICAkR0xPQkFMLUZPTlQtV0VJR0hULUJPTEQgIWRlZmF1bHQ7XG4kZWZmaWNpZW5jeS10YWctY29sb3I6ICAgICAgICAgICAgICAkQ09MT1ItU1VCVExFICFkZWZhdWx0O1xuJGVmZmljaWVuY3ktdGFnLXRleHQtY29sb3I6ICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuLy8gJGVmZmljaWVuY3ktdGFnLXRleHQtY29sb3ItZGFyazogICAgJENPTE9SLUJBU0UgIWRlZmF1bHQ7IC8vIE5vdCB1c2VkIGFjY29yZGluZyB0byBvZmZpY2lhbCBndWlkZWxpbmVzIGRlc3BpdGUgYmVpbmcgbm90IGFjY2Vzc2libGUuIEtlZXAgZm9yIGxhdGVyIHJlZmVyZW5jZS91c2UuXG5cbiRlZmZpY2llbmN5LXRhZy12YXJpYW50czogKFxuICAgIFwiYVxcK1xcK1xcK1wiOiAoXG4gICAgICAgIGNvbG9yOiAjMDA5NjQwLFxuICAgICksXG4gICAgXCJhXFwrXFwrXCI6IChcbiAgICAgICAgY29sb3I6ICMwMDk2NDAsXG4gICAgKSxcbiAgICBcImFcXCtcIjogKFxuICAgICAgICBjb2xvcjogIzUyYWUzMixcbiAgICApLFxuICAgIFwiYVwiOiAoXG4gICAgICAgIGNvbG9yOiAjYzhkNDAwLFxuICAgICksXG4gICAgXCJiXCI6IChcbiAgICAgICAgY29sb3I6ICNjOGQ0MDAsXG4gICAgKSxcbiAgICBcImNcIjogKFxuICAgICAgICBjb2xvcjogI2ZmZWQwMCxcbiAgICApLFxuICAgIFwiZFwiOiAoXG4gICAgICAgIGNvbG9yOiAjZWM2NjA4LFxuICAgICksXG4gICAgXCJlXCI6IChcbiAgICAgICAgY29sb3I6ICNlMzA2MTMsXG4gICAgKSxcbiAgICBcImZcIjogKFxuICAgICAgICBjb2xvcjogI2UzMDYxMyxcbiAgICApLFxuICAgIFwiZ1wiOiAoXG4gICAgICAgIGNvbG9yOiAjZTMwNjEzLFxuICAgICksXG4pICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBSZXNldCBhbGwgcHJvcGVydGllcyB0byB0aGVpciBpbml0aWFsIHZhbHVlcyBzbyB0aGF0IG5vIHVud2FudGVkIHN0eWxlc1xuICogICAgIGFyZSBsZWFrZWQgaW50byB0aGUgY29tcG9uZW50LlxuICogWzJdIFJlLXNldCBzb21lIHByb3BlcnRpZXMgYWdhaW4gYWZ0ZXIgdGhlIHJlc2V0IGluIFsxXS5cbiAqIFszXSBDZW50ZXIgdGV4dCB2ZXJ0aWNhbGx5LlxuICogWzRdIFRoZSByaWdodCBwYWRkaW5nIGlzIGRvdWJsZWQgdG8gYWNjb3VudCBmb3IgdGhlIHJlZHVjZWQgaGVpZ2h0IGF0IHRoZVxuICAgICAgIGFycm93aGVhZC5cbiAqIFs1XSBTaGlmdCB0aGUgdGFnIGEgdGlueSBiaXQgdG8gdGhlIHRvcCB0byBhbGlnbiBpdCB2aXN1YWxseSBuaWNlciB2ZXJ0aWNhbGx5XG4gKiAgICAgbmV4dCB0byB0ZXh0LlxuICogWzZdIFdlIHVzZSBgY2xpcC1wYXRoYCB0byBtYWtlIGFuIGFycm93LWxpa2Ugc2hhcGUuXG4gKi9cblxuLmMtZWZmaWNpZW5jeS10YWcge1xuICAgIGFsbDogaW5pdGlhbDsgLyogWzFdICovXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogWzJdICovXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7IC8qIFszXSAqL1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIFszXSAqL1xuICAgIG1pbi13aWR0aDogJGVmZmljaWVuY3ktdGFnLW1pbi13aWR0aDtcbiAgICBtaW4taGVpZ2h0OiAkZWZmaWNpZW5jeS10YWctaGVpZ2h0O1xuICAgIHBhZGRpbmctcmlnaHQ6ICgkZWZmaWNpZW5jeS10YWctcGFkZGluZy1ob3Jpem9udGFsICogMik7IC8qIFs0XSAqL1xuICAgIHBhZGRpbmctbGVmdDogJGVmZmljaWVuY3ktdGFnLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJGVmZmljaWVuY3ktdGFnLXZlcnRpY2FsLW9mZnNldCk7IC8qIFs1XSAqL1xuICAgIGZvbnQtZmFtaWx5OiAkZWZmaWNpZW5jeS10YWctZm9udC1mYW1pbHk7XG4gICAgZm9udC1zaXplOiAkZWZmaWNpZW5jeS10YWctZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkZWZmaWNpZW5jeS10YWctZm9udC13ZWlnaHQ7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWVmZmljaWVuY3ktdGFnLWNvbG9yLCAjeyRlZmZpY2llbmN5LXRhZy1jb2xvcn0pO1xuICAgIGNvbG9yOiB2YXIoLS1lZmZpY2llbmN5LXRhZy10ZXh0LWNvbG9yLCAjeyRlZmZpY2llbmN5LXRhZy10ZXh0LWNvbG9yfSk7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oXG4gICAgICAgIDAlIDAlLCAvLyBsZWZ0IHRvcFxuICAgICAgICBjYWxjKDEwMCUgLSAjeyRlZmZpY2llbmN5LXRhZy1oZWlnaHQgKiAwLjV9KSAwJSwgLy8gcmlnaHQgdG9wXG4gICAgICAgIDEwMCUgNTAlLCAvLyByaWdodCBjZW50ZXJcbiAgICAgICAgY2FsYygxMDAlIC0gI3skZWZmaWNpZW5jeS10YWctaGVpZ2h0ICogMC41fSkgMTAwJSwgLy8gcmlnaHQgYm90dG9tXG4gICAgICAgIDAlIDEwMCUgLy8gbGVmdCBib3R0b21cbiAgICApOyAvKiBbNl0gKi9cbiAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbiAgICAvKiBWYXJpYW50cyAqL1xuICAgIEBlYWNoICR2YXJpYW50LCAkcHJvcHMgaW4gJGVmZmljaWVuY3ktdGFnLXZhcmlhbnRzIHtcbiAgICAgICAgW2RhdGEtZWZmaWNpZW5jeS10YWc9XCIjeyR2YXJpYW50fVwiIGldIHtcbiAgICAgICAgICAgIC0tZWZmaWNpZW5jeS10YWctY29sb3I6ICN7bWFwLWdldCgkcHJvcHMsIGNvbG9yKX07XG4gICAgICAgICAgICBAaWYgKG1hcC1nZXQoJHByb3BzLCB0ZXh0LWNvbG9yKSkge1xuICAgICAgICAgICAgICAgIC0tZWZmaWNpZW5jeS10YWctdGV4dC1jb2xvcjogI3ttYXAtZ2V0KCRwcm9wcywgdGV4dC1jb2xvcil9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0NVU1RPTS1QUk9HUkVTU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRjdXN0b20tcHJvZ3Jlc3MtYnJlYWtwb2ludDogICAgICAgICAgICAgICAgICAgICAgICAgICB4cyAhZGVmYXVsdDtcblxuJGN1c3RvbS1wcm9ncmVzcy10b3Atb2Zmc2V0OiAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMHB4ICFkZWZhdWx0O1xuXG4kY3VzdG9tLXByb2dyZXNzLXRyYWNrLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgJFBST0dSRVNTLUhFSUdIVC1MQVJHRSAhZGVmYXVsdDtcbiRjdXN0b20tcHJvZ3Jlc3MtdHJhY2stYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAkUFJPR1JFU1MtVFJBQ0stQkFDS0dST1VORCAhZGVmYXVsdDtcbiRjdXN0b20tcHJvZ3Jlc3MtdHJhY2stYm9yZGVyLWVuYWJsZTogICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRjdXN0b20tcHJvZ3Jlc3MtdHJhY2stYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAxcHggIWRlZmF1bHQ7XG4kY3VzdG9tLXByb2dyZXNzLXRyYWNrLWJvcmRlci1zdHlsZTogICAgICAgICAgICAgICAgICAgc29saWQgIWRlZmF1bHQ7XG4kY3VzdG9tLXByb2dyZXNzLXRyYWNrLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgJGN1c3RvbS1wcm9ncmVzcy10cmFjay1iYWNrZ3JvdW5kLWNvbG9yICFkZWZhdWx0O1xuJGN1c3RvbS1wcm9ncmVzcy10cmFjay1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICRjdXN0b20tcHJvZ3Jlc3MtdHJhY2stYm9yZGVyLXdpZHRoICRjdXN0b20tcHJvZ3Jlc3MtdHJhY2stYm9yZGVyLXN0eWxlICRjdXN0b20tcHJvZ3Jlc3MtdHJhY2stYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGN1c3RvbS1wcm9ncmVzcy10cmFjay1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgIGlmKCRQUk9HUkVTUy1CT1JERVItUkFESVVTLCAkUFJPR1JFU1MtQk9SREVSLVJBRElVUywgbnVsbCkgIWRlZmF1bHQ7XG5cbiRjdXN0b20tcHJvZ3Jlc3MtcHJvZ3Jlc3MtbWFpbi1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAkUFJPR1JFU1MtUFJPR1JFU1MtQkFDS0dST1VORCAhZGVmYXVsdDtcbiRjdXN0b20tcHJvZ3Jlc3MtcHJvZ3Jlc3MtbWFpbi1pY29uLWNvbG9yOiAgICAgICAgICAgICAkQ09MT1ItQkFTRSAhZGVmYXVsdDtcblxuJGN1c3RvbS1wcm9ncmVzcy1wcm9ncmVzcy1zdGFydC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICRDT0xPUi1QQUxFICFkZWZhdWx0O1xuJGN1c3RvbS1wcm9ncmVzcy1wcm9ncmVzcy1zdGFydC1pY29uLWNvbG9yOiAgICAgICAgICAgICRDT0xPUi1CQVNFICFkZWZhdWx0O1xuXG4kY3VzdG9tLXByb2dyZXNzLXByb2dyZXNzLWVuZC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgJENPTE9SLUJBU0UgIWRlZmF1bHQ7XG4kY3VzdG9tLXByb2dyZXNzLXByb2dyZXNzLWVuZC1pY29uLWNvbG9yOiAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuXG4kY3VzdG9tLXByb2dyZXNzLXRodW1iLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTVweCAhZGVmYXVsdDtcbiRjdXN0b20tcHJvZ3Jlc3MtdGh1bWItaWNvbi1jaXJjbGUtc2l6ZTogICAgICAgICAgICAgICA0OHB4ICFkZWZhdWx0O1xuJGN1c3RvbS1wcm9ncmVzcy10aHVtYi1pY29uLWNpcmNsZS1zaXplLWF0LWJyZWFrcG9pbnQ6IDMycHggIWRlZmF1bHQ7XG4kY3VzdG9tLXByb2dyZXNzLXRodW1iLWljb24tY29tcGxleGl0eTogICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjdXN0b20tcHJvZ3Jlc3MtdGh1bWItaWNvbi1zaXplOiAgICAgICAgICAgICAgICAgICAgICBtYXAtZ2V0KCRJQ09OLVNJWkVTLCBzbWFsbCkgIWRlZmF1bHQ7XG4kY3VzdG9tLXByb2dyZXNzLXRodW1iLWljb24tc2l6ZS1hdC1icmVha3BvaW50OiAgICAgICAgbWFwLWdldCgkSUNPTi1TSVpFUywgeHNtYWxsKSAhZGVmYXVsdDtcblxuJGN1c3RvbS1wcm9ncmVzcy1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkY3VzdG9tLXByb2dyZXNzLXRyYWNrLWhlaWdodCArICRjdXN0b20tcHJvZ3Jlc3MtdGh1bWItc2l6ZSkgIWRlZmF1bHQ7XG5cbiRjdXN0b20tcHJvZ3Jlc3MtdG9vbHRpcC10ZXh0LWFsaWduOiAgICAgICAgICAgICAgICAgICBjZW50ZXIgIWRlZmF1bHQ7XG4kY3VzdG9tLXByb2dyZXNzLXRvb2x0aXAtbWF4LXdpZHRoOiAgICAgICAgICAgICAgICAgICAgMjUwcHggIWRlZmF1bHQ7XG5cbiRjdXN0b20tcHJvZ3Jlc3MtZGVzY3JpcHRpb24tc3BhY2luZy10b3A6ICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcbiRjdXN0b20tcHJvZ3Jlc3MtZGVzY3JpcHRpb24taXRlbS1icmVha3BvaW50OiAgICAgICAgICB4cyAhZGVmYXVsdDtcbiRjdXN0b20tcHJvZ3Jlc3MtZGVzY3JpcHRpb24taXRlbS1zcGFjaW5nOiAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gUmVzZXJ2ZSBzcGFjZSBmb3IgdG9vbHRpcCB0byBhdm9pZCBjb2xsaXNpb24gd2l0aCBvdGhlciBjb21wb25lbnRzLlxuICogWzJdIEFwcGx5IGNsaXBwaW5nIHRvIGFjaGlldmUgYm9yZGVyLXJhZGl1cy5cbiAqIFszXSBQcmV2ZW50IHN1YnNlcXVlbnQgb3JpZ2lucyBibG9ja2luZyBpbnRlcmFjdGlvbiBvbiBgY29ubmVjdGAgZWxlbWVudHMuXG4gKiBbNF0gSW5kaWNhdG9yIGZvciBob3ZlciB0aGF0IHRyaWdnZXJzIG9wdGlvbmFsIHRvb2x0aXAuXG4gKiAgICAgYGFyaWEtZGVzY3JpYmVkYnlgIGlzIHNldCB3aGVuIHRvb2x0aXAgaXMgdmlzaWJsZS5cbiAqIFs1XSBQb3NpdGlvbiB0b29sdGlwIHRodW1icyB3aXRoIGljb24gZGlmZmVyZW50bHkuIGAzcHhgIGlzIGEgbWFnaWMgbnVtYmVyIHRvXG4gKiAgICAgc2hpZnQgdGhlIGNpcmNsZSBlZGdlIG92ZXIgdGhlIHRyYWNrIGVkZ2UuXG4gKiBbNl0gU2hpZnQgaWNvbiBmb3IgdGhlIGxhc3Qgc2VnbWVudCB0byB0aGUgbGVmdCBzaWRlIG9mIHRoZSBzZWdtZW50LlxuICogWzddIFVzZSBpY29ucyB3aXRoIHNpbXBsZSBjb21wbGV4aXR5IGlmIHNldC5cbiAqIFs4XSBBZGQgaW52aXNpYmxlIHBzZXVkbyBlbGVtZW50IHRvIGluY3JlYXNlIHRyYWNrIGhlaWdodCB0byBpY29uIChjaXJjbGUpXG4gKiAgICAgaGVpZ2h0LiBUaGlzIGluY3JlYXNlcyB0aGUgaG92ZXIvY2xpY2thYmxlIGFyZWEgYW5kIGluY2x1ZGVzIHRoZSBpY29uIGFyZWEuXG4gKiBbOV0gVGhlIHN0YXJ0IGl0ZW0gaXMgdGhlIGZpcnN0IGNoaWxkIGNvbm5lY3QgYW5kIHRoZSAybmQgY2hpbGQgb2YgYC5jLWN1c3RvbS1wcm9ncmVzc19fY29ubmVjdC1jb250YWluZXJgXG4gKiAgICAgd2hpY2ggaXMgdGhlIGZpcnN0IG9yaWdpbi5cbiAqIFsxMF0gVGhlIGVuZCBpdGVtIGlzIHRoZSBsYXN0IGNvbm5lY3QgYW5kIGxhc3Qgb3JpZ2luLlxuICogWzExXSBUaGUgbWFpbiBpdGVtIGlzIGRlZmluZWQgYnkgdGhlIGluaXRpYWwgdmlzaWJsZSB0b29sdGlwIGFuZCB0aGVcbiAqICAgICAgZHluYW1pY2FsbHkgc2V0IGAuYy1jdXN0b20tcHJvZ3Jlc3NfX3N0ZXAtLW1haW5gIGNsYXNzLlxuICovXG5cbi5jLWN1c3RvbS1wcm9ncmVzcyB7XG5cbn1cblxuICAgIC5jLWN1c3RvbS1wcm9ncmVzc19fdmlzdWFsaXphdGlvbiB7XG4gICAgICAgIC0tY3VzdG9tLXByb2dyZXNzLXRodW1iLWljb24tc2l6ZTogI3skY3VzdG9tLXByb2dyZXNzLXRodW1iLWljb24tc2l6ZX07XG4gICAgICAgIC0tY3VzdG9tLXByb2dyZXNzLXRodW1iLWljb24tY2lyY2xlLXNpemU6ICN7JGN1c3RvbS1wcm9ncmVzcy10aHVtYi1pY29uLWNpcmNsZS1zaXplfTtcblxuICAgICAgICAtLWN1c3RvbS1wcm9ncmVzcy1jb25uZWN0LW1haW4tYmFja2dyb3VuZC1jb2xvcjogI3skY3VzdG9tLXByb2dyZXNzLXByb2dyZXNzLW1haW4tYmFja2dyb3VuZC1jb2xvcn07XG4gICAgICAgIC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3QtbWFpbi1pY29uLWNvbG9yOiAjeyRjdXN0b20tcHJvZ3Jlc3MtcHJvZ3Jlc3MtbWFpbi1pY29uLWNvbG9yfTtcblxuICAgICAgICAtLWN1c3RvbS1wcm9ncmVzcy1jb25uZWN0LXN0YXJ0LWJhY2tncm91bmQtY29sb3I6ICN7JGN1c3RvbS1wcm9ncmVzcy1wcm9ncmVzcy1zdGFydC1iYWNrZ3JvdW5kLWNvbG9yfTtcbiAgICAgICAgLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1zdGFydC1pY29uLWNvbG9yOiAjeyRjdXN0b20tcHJvZ3Jlc3MtcHJvZ3Jlc3Mtc3RhcnQtaWNvbi1jb2xvcn07XG5cbiAgICAgICAgLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1lbmQtYmFja2dyb3VuZC1jb2xvcjogI3skY3VzdG9tLXByb2dyZXNzLXByb2dyZXNzLWVuZC1iYWNrZ3JvdW5kLWNvbG9yfTtcbiAgICAgICAgLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1lbmQtaWNvbi1jb2xvcjogI3skY3VzdG9tLXByb2dyZXNzLXByb2dyZXNzLWVuZC1pY29uLWNvbG9yfTtcblxuICAgICAgICAmW2RhdGEtY3VzdG9tLXByb2dyZXNzLXRoZW1lPVwiYWx0LTFcIl0ge1xuICAgICAgICAgICAgLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1tYWluLWJhY2tncm91bmQtY29sb3I6ICN7JGN1c3RvbS1wcm9ncmVzcy1wcm9ncmVzcy1lbmQtYmFja2dyb3VuZC1jb2xvcn07XG4gICAgICAgICAgICAtLWN1c3RvbS1wcm9ncmVzcy1jb25uZWN0LW1haW4taWNvbi1jb2xvcjogI3skY3VzdG9tLXByb2dyZXNzLXByb2dyZXNzLWVuZC1pY29uLWNvbG9yfTtcblxuICAgICAgICAgICAgLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1zdGFydC1iYWNrZ3JvdW5kLWNvbG9yOiAjeyRjdXN0b20tcHJvZ3Jlc3MtcHJvZ3Jlc3MtbWFpbi1iYWNrZ3JvdW5kLWNvbG9yfTtcbiAgICAgICAgICAgIC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3Qtc3RhcnQtaWNvbi1jb2xvcjogI3skY3VzdG9tLXByb2dyZXNzLXByb2dyZXNzLW1haW4taWNvbi1jb2xvcn07XG5cbiAgICAgICAgICAgIC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3QtZW5kLWJhY2tncm91bmQtY29sb3I6ICN7JGN1c3RvbS1wcm9ncmVzcy1wcm9ncmVzcy1zdGFydC1iYWNrZ3JvdW5kLWNvbG9yfTtcbiAgICAgICAgICAgIC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3QtZW5kLWljb24tY29sb3I6ICN7JGN1c3RvbS1wcm9ncmVzcy1wcm9ncmVzcy1zdGFydC1pY29uLWNvbG9yfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1jdXN0b20tcHJvZ3Jlc3MtdGhlbWU9XCJhbHQtMlwiXSB7XG4gICAgICAgICAgICAtLWN1c3RvbS1wcm9ncmVzcy1jb25uZWN0LW1haW4tYmFja2dyb3VuZC1jb2xvcjogI3skY3VzdG9tLXByb2dyZXNzLXByb2dyZXNzLXN0YXJ0LWJhY2tncm91bmQtY29sb3J9O1xuICAgICAgICAgICAgLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1tYWluLWljb24tY29sb3I6ICN7JGN1c3RvbS1wcm9ncmVzcy1wcm9ncmVzcy1zdGFydC1pY29uLWNvbG9yfTtcblxuICAgICAgICAgICAgLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1zdGFydC1iYWNrZ3JvdW5kLWNvbG9yOiAjeyRjdXN0b20tcHJvZ3Jlc3MtcHJvZ3Jlc3MtZW5kLWJhY2tncm91bmQtY29sb3J9O1xuICAgICAgICAgICAgLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1zdGFydC1pY29uLWNvbG9yOiAjeyRjdXN0b20tcHJvZ3Jlc3MtcHJvZ3Jlc3MtZW5kLWljb24tY29sb3J9O1xuXG4gICAgICAgICAgICAtLWN1c3RvbS1wcm9ncmVzcy1jb25uZWN0LWVuZC1iYWNrZ3JvdW5kLWNvbG9yOiAjeyRjdXN0b20tcHJvZ3Jlc3MtcHJvZ3Jlc3MtbWFpbi1iYWNrZ3JvdW5kLWNvbG9yfTtcbiAgICAgICAgICAgIC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3QtZW5kLWljb24tY29sb3I6ICN7JGN1c3RvbS1wcm9ncmVzcy1wcm9ncmVzcy1tYWluLWljb24tY29sb3J9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG9yZGVyL29yZGVyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPCN7JGN1c3RvbS1wcm9ncmVzcy1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICAtLWN1c3RvbS1wcm9ncmVzcy10aHVtYi1pY29uLXNpemU6ICN7JGN1c3RvbS1wcm9ncmVzcy10aHVtYi1pY29uLXNpemUtYXQtYnJlYWtwb2ludH07XG4gICAgICAgICAgICAtLWN1c3RvbS1wcm9ncmVzcy10aHVtYi1pY29uLWNpcmNsZS1zaXplOiAjeyRjdXN0b20tcHJvZ3Jlc3MtdGh1bWItaWNvbi1jaXJjbGUtc2l6ZS1hdC1icmVha3BvaW50fTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBvcmRlci9vcmRlciAqL1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogJGN1c3RvbS1wcm9ncmVzcy1oZWlnaHQ7XG4gICAgICAgIG1hcmdpbi10b3A6ICRjdXN0b20tcHJvZ3Jlc3MtdG9wLW9mZnNldDsgLyogWzFdICovXG5cbiAgICAgICAgLnRpcHB5LWNvbnRlbnQge1xuICAgICAgICAgICAgd2lkdGg6IG1heC1jb250ZW50OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjYWxlLXVubGltaXRlZC9kZWNsYXJhdGlvbi1zdHJpY3QtdmFsdWUgKi9cbiAgICAgICAgICAgIG1heC13aWR0aDogJGN1c3RvbS1wcm9ncmVzcy10b29sdGlwLW1heC13aWR0aDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRjdXN0b20tcHJvZ3Jlc3MtdG9vbHRpcC10ZXh0LWFsaWduO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1jdXN0b20tcHJvZ3Jlc3NfX3RhcmdldCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAqIHtcbiAgICAgICAgICAgIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogVHJhY2sgKi9cbiAgICAuYy1jdXN0b20tcHJvZ3Jlc3NfX2Jhc2Uge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAkY3VzdG9tLXByb2dyZXNzLXRyYWNrLWhlaWdodDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgfVxuXG4gICAgLmMtY3VzdG9tLXByb2dyZXNzX19jb25uZWN0LWNvbnRhaW5lciB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYm9yZGVyOiBpZigkY3VzdG9tLXByb2dyZXNzLXRyYWNrLWJvcmRlci1lbmFibGUsICRjdXN0b20tcHJvZ3Jlc3MtdHJhY2stYm9yZGVyLCBudWxsKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGN1c3RvbS1wcm9ncmVzcy10cmFjay1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICBAaWYgKCRjdXN0b20tcHJvZ3Jlc3MtdHJhY2stYm9yZGVyLXJhZGl1cykge1xuICAgICAgICAgICAgY2xpcC1wYXRoOiBpbnNldCgwIHJvdW5kICRjdXN0b20tcHJvZ3Jlc3MtdHJhY2stYm9yZGVyLXJhZGl1cyk7IC8qIFsyXSAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmMtY3VzdG9tLXByb2dyZXNzX19vcmlnaW4ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbM10gKi9cbiAgICB9XG5cbiAgICAuYy1jdXN0b20tcHJvZ3Jlc3NfX3RodW1iIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiBbNF0gKi9cblxuICAgICAgICAvKlxuICAgICAgICAgKiBAREVQUkVDQVRFRDogUmVtb3ZlIGAuYy1jdXN0b20tcHJvZ3Jlc3NfX3RodW1iLS1oYXMtaWNvbmAgd2hlbiBgOmhhc2AgYnJvd3NlciBzdXBwb3J0IGlzIHN1ZmZpY2llbnQuXG4gICAgICAgICAqIGB3aGVyZSgpYCBpcyB1c2VkIHRvIGdldCBhIGZvcmdpdmluZyBzZWxlY3RvciBsaXN0OiBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvc2VsZWN0b3JzLTQvI3R5cGVkZWYtZm9yZ2l2aW5nLXNlbGVjdG9yLWxpc3RcbiAgICAgICAgICovXG4gICAgICAgICY6d2hlcmUoXG4gICAgICAgICAgICA6aGFzKC5jLWN1c3RvbS1wcm9ncmVzc19fdGh1bWJfX2ljb24pLFxuICAgICAgICAgICAgLmMtY3VzdG9tLXByb2dyZXNzX190aHVtYi0taGFzLWljb24pIHtcbiAgICAgICAgICAgIHRvcDogNTAlOyAvKiBbNV0gKi9cbiAgICAgICAgICAgIGJvdHRvbTogYXV0bzsgLyogWzVdICovXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgzcHgsIC01MCUpOyAvKiBbNV0gKi9cblxuICAgICAgICAgICAgLmMtY3VzdG9tLXByb2dyZXNzX19vcmlnaW46bGFzdC1jaGlsZCAmIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKDEwMCUgLSAzcHgpLCAtNTAlKTsgLyogWzZdICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICAgICAuYy1jdXN0b20tcHJvZ3Jlc3NfX3RodW1iX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tY3VzdG9tLXByb2dyZXNzLXRodW1iLWljb24tY2lyY2xlLXNpemUpO1xuICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1jdXN0b20tcHJvZ3Jlc3MtdGh1bWItaWNvbi1zaXplKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWN1c3RvbS1wcm9ncmVzcy1jb25uZWN0LWJhY2tncm91bmQtY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWN1c3RvbS1wcm9ncmVzcy1jb25uZWN0LWljb24tY29sb3IpO1xuXG4gICAgICAgICAgICBAaWYgKCRjdXN0b20tcHJvZ3Jlc3MtdGh1bWItaWNvbi1jb21wbGV4aXR5ID09IFwic2ltcGxlXCIpIHtcbiAgICAgICAgICAgICAgICAtLWJyb24taWNvbi1zaW1wbGU6IDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSAqLyAvKiBbN10gKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgLmMtY3VzdG9tLXByb2dyZXNzX19jb25uZWN0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWN1c3RvbS1wcm9ncmVzcy1jb25uZWN0LWJhY2tncm91bmQtY29sb3IpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3QtaWNvbi1jb2xvcik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjsgLyogWzRdICovXG5cbiAgICAgICAgJlthcmlhLWRlc2NyaWJlZGJ5XSB7XG4gICAgICAgICAgICBjdXJzb3I6IGF1dG87IC8qIFs0XSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHsgLyogWzhdICovXG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLWN1c3RvbS1wcm9ncmVzcy10aHVtYi1pY29uLWNpcmNsZS1zaXplKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLyogc3RhcnQgKi8gLyogWzldICovXG4gICAgLmMtY3VzdG9tLXByb2dyZXNzX19jb25uZWN0OmZpcnN0LWNoaWxkLFxuICAgIC5jLWN1c3RvbS1wcm9ncmVzc19fb3JpZ2luOm50aC1jaGlsZCgyKSB7XG4gICAgICAgIC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3QtaWNvbi1jb2xvcjogdmFyKC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3Qtc3RhcnQtaWNvbi1jb2xvcik7XG4gICAgICAgIC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3QtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3Qtc3RhcnQtYmFja2dyb3VuZC1jb2xvcik7XG4gICAgfVxuXG5cbiAgICAvKiBlbmQgKi8gLyogWzEwXSAqL1xuICAgIC5jLWN1c3RvbS1wcm9ncmVzc19fY29ubmVjdDpsYXN0LWNoaWxkLFxuICAgIC5jLWN1c3RvbS1wcm9ncmVzc19fb3JpZ2luOmxhc3QtY2hpbGQge1xuICAgICAgICAtLWN1c3RvbS1wcm9ncmVzcy1jb25uZWN0LWljb24tY29sb3I6IHZhcigtLWN1c3RvbS1wcm9ncmVzcy1jb25uZWN0LWVuZC1pY29uLWNvbG9yKTtcbiAgICAgICAgLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jdXN0b20tcHJvZ3Jlc3MtY29ubmVjdC1lbmQtYmFja2dyb3VuZC1jb2xvcik7XG4gICAgfVxuXG4gICAgLyogbWFpbiAqLyAvKiBbMTFdICovXG4gICAgLmMtY3VzdG9tLXByb2dyZXNzX19jb25uZWN0LmMtY3VzdG9tLXByb2dyZXNzX19zdGVwLS1tYWluLFxuICAgIC5jLWN1c3RvbS1wcm9ncmVzc19fdGh1bWIuYy1jdXN0b20tcHJvZ3Jlc3NfX3N0ZXAtLW1haW4ge1xuICAgICAgICAtLWN1c3RvbS1wcm9ncmVzcy1jb25uZWN0LWljb24tY29sb3I6IHZhcigtLWN1c3RvbS1wcm9ncmVzcy1jb25uZWN0LW1haW4taWNvbi1jb2xvcik7XG4gICAgICAgIC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3QtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3VzdG9tLXByb2dyZXNzLWNvbm5lY3QtbWFpbi1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICB9XG5cblxuICAgIC5jLWN1c3RvbS1wcm9ncmVzc19fcGlwcyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIC5jLWN1c3RvbS1wcm9ncmVzc19fbWFya2VyIHtcbiAgICB9XG5cbiAgICAuYy1jdXN0b20tcHJvZ3Jlc3NfX3ZhbHVlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB9XG5cbiAgICAuYy1jdXN0b20tcHJvZ3Jlc3NfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAkY3VzdG9tLXByb2dyZXNzLWRlc2NyaXB0aW9uLWl0ZW0tc3BhY2luZztcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBtYXJnaW4tdG9wOiAkY3VzdG9tLXByb2dyZXNzLWRlc2NyaXB0aW9uLXNwYWNpbmctdG9wO1xuICAgIH1cblxuQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI+I3skY3VzdG9tLXByb2dyZXNzLWRlc2NyaXB0aW9uLWl0ZW0tYnJlYWtwb2ludH1cIikge1xuICAgIC5jLWN1c3RvbS1wcm9ncmVzc19fZGVzY3JpcHRpb24ge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIH1cblxuICAgIC5jLWN1c3RvbS1wcm9ncmVzc19fZGVzY3JpcHRpb25fX2l0ZW0ge1xuICAgICAgICBmbGV4LWJhc2lzOiBjYWxjKDUwJSAtICN7JGN1c3RvbS1wcm9ncmVzcy1kZXNjcmlwdGlvbi1pdGVtLXNwYWNpbmd9KTtcbiAgICB9XG5cbiAgICAuYy1jdXN0b20tcHJvZ3Jlc3NfX2Rlc2NyaXB0aW9uX19pdGVtLS1lbmQge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG5cbn1cblxuICAgIC5jLWN1c3RvbS1wcm9ncmVzc19fZGVzY3JpcHRpb25fX2l0ZW0ge1xuICAgIH1cblxuICAgIC5jLWN1c3RvbS1wcm9ncmVzc19fZGVzY3JpcHRpb25fX2l0ZW0tLXN0YXJ0IHtcbiAgICB9XG5cbiAgICAuYy1jdXN0b20tcHJvZ3Jlc3NfX2Rlc2NyaXB0aW9uX19pdGVtLS1lbmQge1xuICAgIH1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNEUk9QRE9XTi1DT05UQUlORVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kZHJvcGRvd24tY29udGFpbmVyLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAkQ09MT1ItQkFTRS1CQUNLR1JPVU5EICFkZWZhdWx0O1xuJGRyb3Bkb3duLWNvbnRhaW5lci1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRkcm9wZG93bi1jb250YWluZXItYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICRDT0xPUi1CTEFDSyAhZGVmYXVsdDtcbiRkcm9wZG93bi1jb250YWluZXItYm9yZGVyLXNpemU6ICAgICAgICAgICAgICAgICRHTE9CQUwtQk9SREVSLVdJRFRIICFkZWZhdWx0O1xuJGRyb3Bkb3duLWNvbnRhaW5lci1kcm9wLXNoYWRvdzogICAgICAgICAgICAgICAgJERST1AtU0hBRE9XLVNNQUxMICFkZWZhdWx0O1xuJGRyb3Bkb3duLWNvbnRhaW5lci1sYXllcjogICAgICAgICAgICAgICAgICAgICAgeihcImludGVyYWN0aW9uLWxheWVyXCIpICFkZWZhdWx0O1xuJGRyb3Bkb3duLWNvbnRhaW5lci1tYXgtd2lkdGg6ICAgICAgICAgICAgICAgICAgNDAwcHggIWRlZmF1bHQ7XG4kZHJvcGRvd24tY29udGFpbmVyLW1pbi13aWR0aDogICAgICAgICAgICAgICAgICAyMDBweCAhZGVmYXVsdDtcbiRkcm9wZG93bi1jb250YWluZXItb2Zmc2V0OiAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJGRyb3Bkb3duLWNvbnRhaW5lci1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1jb250YWluZXItYXJyb3ctc2l6ZTogICAgICAgICAgICAgICAgICRHTE9CQUwtQVJST1ctU0laRSAhZGVmYXVsdDtcbiRkcm9wZG93bi1jb250YWluZXItaGFzLWFycm93OiAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1jb250YWluZXItZGl2aWRlci1jb2xvcjogICAgICAgICAgICAgICRHTE9CQUwtQk9SREVSLUNPTE9SICFkZWZhdWx0O1xuJGRyb3Bkb3duLWNvbnRhaW5lci1kaXZpZGVyLXNpemU6ICAgICAgICAgICAgICAgJEdMT0JBTC1CT1JERVItV0lEVEggIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1jb250YWluZXItaXRlbS1zcGFjaW5nOiAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklUICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tY29udGFpbmVyLWNvbnRhaW5lci1wbGFjZW1lbnQtYm90dG9tOiAnW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49XCJib3R0b20tXCJdJyAhZGVmYXVsdDtcbiRkcm9wZG93bi1jb250YWluZXItY29udGFpbmVyLXBsYWNlbWVudC10b3A6ICAgICdbZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1cInRvcC1cIl0nICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tY29udGFpbmVyLWJ1dHRvbi1zdGF0ZS1vcGVuOiAgICAgICAgICAgJ1thcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXScgIWRlZmF1bHQ7XG4kZHJvcGRvd24tY29udGFpbmVyLWJ1dHRvbi1jb2xvci1hY3RpdmU6ICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gQ29uZGl0aW9uYWxseSBkaXNwbGF5IGFuIGFycm93IGZvciB0aGUgZHJvcGRvd24tY29udGFpbmVyLlxuICogWzJdIEFkZCBvcGVuIHN0YXRlIHN0eWxlcyB0byB0aGUgYnV0dG9uIGNvbmRpdGlvbmFsbHkuXG4gKiBbM10gTWFrZSB0aGUgdHJpZ2dlciB3cmFwcGVyIGJlaGF2ZSBsaWtlIGFuIGlubGluZSBlbGVtZW50IHRvIHRyYWNrIGl0c1xuICogICAgIGNvbGxhcHNlZCBib3gtZGltZW5zaW9ucyB2aWEgSmF2YVNjcmlwdC5cbiAqL1xuXG4uYy1kcm9wZG93bi1jb250YWluZXIge1xuICAgIC0tZHJvcGRvd24tY29udGFpbmVyLWJvcmRlci1jb2xvcjogI3skZHJvcGRvd24tY29udGFpbmVyLWJvcmRlci1jb2xvcn07XG4gICAgLS1kcm9wZG93bi1jb250YWluZXItYm9yZGVyLXNpemU6ICN7JGRyb3Bkb3duLWNvbnRhaW5lci1ib3JkZXItc2l6ZX07XG4gICAgLS1kcm9wZG93bi1jb250YWluZXItbGF5ZXI6ICN7JGRyb3Bkb3duLWNvbnRhaW5lci1sYXllcn07XG4gICAgLS1kcm9wZG93bi1jb250YWluZXItbWF4LXdpZHRoOiAjeyRkcm9wZG93bi1jb250YWluZXItbWF4LXdpZHRofTtcbiAgICAtLWRyb3Bkb3duLWNvbnRhaW5lci1taW4td2lkdGg6ICN7JGRyb3Bkb3duLWNvbnRhaW5lci1taW4td2lkdGh9O1xuICAgIC0tanMtZHJvcGRvd24tY29udGFpbmVyLW9mZnNldDogI3skZHJvcGRvd24tY29udGFpbmVyLW9mZnNldH07XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbiAgICAuYy1kcm9wZG93bi1jb250YWluZXJfX2Fycm93IHtcblxuICAgICAgICBAaWYgbm90ICgkZHJvcGRvd24tY29udGFpbmVyLWhhcy1hcnJvdykgeyAvKiBbMV0gKi9cbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAuYy1kcm9wZG93bi1jb250YWluZXJfX3BhbmVsI3skZHJvcGRvd24tY29udGFpbmVyLWNvbnRhaW5lci1wbGFjZW1lbnQtdG9wfSAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmlhbmdsZS1leHRlbmRlZChcbiAgICAgICAgICAgICAgICAgICAgJHNpemU6ICAgICAgICAgJGRyb3Bkb3duLWNvbnRhaW5lci1hcnJvdy1zaXplLFxuICAgICAgICAgICAgICAgICAgICAkY29sb3I6ICAgICAgICAkZHJvcGRvd24tY29udGFpbmVyLWJhY2tncm91bmQtY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRib3JkZXItd2lkdGg6ICRkcm9wZG93bi1jb250YWluZXItYm9yZGVyLXNpemUsXG4gICAgICAgICAgICAgICAgICAgICRib3JkZXItY29sb3I6ICRkcm9wZG93bi1jb250YWluZXItYm9yZGVyLWNvbG9yXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmMtZHJvcGRvd24tY29udGFpbmVyX19wYW5lbCN7JGRyb3Bkb3duLWNvbnRhaW5lci1jb250YWluZXItcGxhY2VtZW50LWJvdHRvbX0gJiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUtZXh0ZW5kZWQoXG4gICAgICAgICAgICAgICAgICAgICRkaXJlY3Rpb246ICAgIGJvdHRvbSxcbiAgICAgICAgICAgICAgICAgICAgJHNpemU6ICAgICAgICAgJGRyb3Bkb3duLWNvbnRhaW5lci1hcnJvdy1zaXplLFxuICAgICAgICAgICAgICAgICAgICAkY29sb3I6ICAgICAgICAkZHJvcGRvd24tY29udGFpbmVyLWJhY2tncm91bmQtY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRib3JkZXItd2lkdGg6ICRkcm9wZG93bi1jb250YWluZXItYm9yZGVyLXNpemUsXG4gICAgICAgICAgICAgICAgICAgICRib3JkZXItY29sb3I6ICRkcm9wZG93bi1jb250YWluZXItYm9yZGVyLWNvbG9yXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1kcm9wZG93bi1jb250YWluZXJfX3BhbmVsIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigkdHJhbnNpdGlvbi1wcm9wZXJ0eTogXCJvcGFjaXR5LCB2aXNpYmlsaXR5XCIpO1xuICAgICAgICB6LWluZGV4OiB2YXIoLS1kcm9wZG93bi1jb250YWluZXItbGF5ZXIpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6ICRkcm9wZG93bi1jb250YWluZXItaXRlbS1zcGFjaW5nO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBtaW4td2lkdGg6IHZhcigtLWRyb3Bkb3duLWNvbnRhaW5lci1taW4td2lkdGgpO1xuICAgICAgICBtYXgtd2lkdGg6IHZhcigtLWRyb3Bkb3duLWNvbnRhaW5lci1tYXgtd2lkdGgpO1xuICAgICAgICBwYWRkaW5nOiAkZHJvcGRvd24tY29udGFpbmVyLXNwYWNpbmc7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tZHJvcGRvd24tY29udGFpbmVyLWJvcmRlci1zaXplKSBzb2xpZCB2YXIoLS1kcm9wZG93bi1jb250YWluZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGRyb3Bkb3duLWNvbnRhaW5lci1ib3JkZXItcmFkaXVzO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJvcGRvd24tY29udGFpbmVyLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIC8vIEBUT0RPOiBBY2NvdW50IGZvciBtdWx0aXBsZSBkcm9wIHNoYWRvd3NcbiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygjeyRkcm9wZG93bi1jb250YWluZXItZHJvcC1zaGFkb3d9KTtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICBvcGFjaXR5OiAwO1xuXG4gICAgICAgICZbYXJpYS1oaWRkZW49XCJmYWxzZVwiXSB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmMtZHJvcGRvd24tY29udGFpbmVyX19kaXZpZGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogJGRyb3Bkb3duLWNvbnRhaW5lci1kaXZpZGVyLXNpemU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkcm9wZG93bi1jb250YWluZXItZGl2aWRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAuYy1kcm9wZG93bi1jb250YWluZXJfX2J1dHRvbiB7XG5cbiAgICAgICAgJiN7JGRyb3Bkb3duLWNvbnRhaW5lci1idXR0b24tc3RhdGUtb3Blbn0ge1xuICAgICAgICAgICAgLS1idXR0b24tdGV4dC1jb2xvcjogI3skZHJvcGRvd24tY29udGFpbmVyLWJ1dHRvbi1jb2xvci1hY3RpdmV9OyAvKiBbMl0gKi9cblxuICAgICAgICAgICAgLmMtZHJvcGRvd24tY29udGFpbmVyX19pY29uLmMtZHJvcGRvd24tY29udGFpbmVyX19pY29uIHsgLyogWzJdICovXG4gICAgICAgICAgICAgICAgY29sb3I6ICN7JGRyb3Bkb3duLWNvbnRhaW5lci1idXR0b24tY29sb3ItYWN0aXZlfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1kcm9wZG93bi1jb250YWluZXJfX3RyaWdnZXItd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyAvKiBbM10gKi9cbiAgICB9XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjRkFWLUJVVFRPTiAoRGVwcmVjYXRlZClcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIEZhbGxiYWNrIGZvciBpY29uIGluIG1hcmt1cCB2aWEgU1ZHXG4gKiBSZXBsYWNlZCBpY29uIHZpYSBpY29uZm9udFxuICovXG5cbi5jLWZhdi1idXR0b25fX3N2ZyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNGTEFUUElDS1IgKERlcHJlY2F0ZWQpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBTZWxlY3RvciBmb3IgZGlzYWJsZWQgc3RhdGUgd2FzIGNoYW5nZWQgaW4gZmxhdHBpY2tyIDQuNlxuICogRmFsbGJhY2sgZm9yIDwgNC42XG4gKi9cblxuLmZsYXRwaWNrci1kYXkge1xuXG4gICAgJi5kaXNhYmxlZCB7XG4gICAgICAgIGNvbG9yOiAkZmxhdHBpY2tyLWRheS1jb2xvci1kaXNhYmxlZDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTGVnYWN5IEJyb3dzZXIgTm90aWZpY2F0aW9uXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBEaXNwbGF5IG5vdGlmaWNhdGlvbiBvbmx5IGluIG5vbi1hZmZlY3RlZCBicm93c2Vycy5cbiAqIE1pZ2h0IGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZSBpZiB1c2VyIG51bWJlcnMgY2FuIGJlIGlnbm9yZWQgY29tcGxldGVseVxuICogaW5zdGVhZCBvZiBwcm92aWRpbmcgY3VzdG9tIG1lc3NhZ2UgcmVnYXJkaW5nIGxlZ2FjeSAob3V0ZGF0ZWQpIGJyb3dzZXIuXG4gKi9cblxuQGluY2x1ZGUgaWUtb25seSgpIHtcbiAgICBAaW5jbHVkZSBsZWdhY3ktYnJvd3Nlci1ub3RpZmljYXRpb24oKTtcbn1cblxuQGluY2x1ZGUgZWRnZS1vbmx5KCkge1xuICAgIEBpbmNsdWRlIGxlZ2FjeS1icm93c2VyLW5vdGlmaWNhdGlvbigpO1xufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0lOUFVUIChTY29wZXMpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBbMV0gQWRkIGZhbGxiYWNrIHNwYWNpbmcgd2hlbiBzZWxlY3RvciBgLmMtZm9ybS1maWVsZC0tc3RhdGljYCBpcyBub3QgcHJlc2VudC5cbiAqIFsyXSBEbyBub3QgYXBwbHkgZmFsbGJhY2sgdG8gY29tYm9ib3ggaXRlbXMgKGluaGVyaXRlZCB2aWEgYEBleHRlbmRgKS5cbiovXG5cbkBpZiAoJGZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcpIHtcblxuICAgIC5jLWZvcm0tZmllbGQ6bm90KC5jLWZvcm0tZmllbGQtLXN0YXRpYykge1xuXG4gICAgICAgIC5jLXJhZGlvX19sYWJlbCxcbiAgICAgICAgLmMtY2hlY2tib3hfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRmb3JtLWZpZWxkLWxhYmVsLXNwYWNpbmc7IC8qIFsxXSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLmMtY29tYm9ib3hfX2l0ZW1fX3RleHQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogaW1wb3J0YW50KDAsIHRydWUpOyAvKiBbMl0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTUVESUEtR1JJRCAoRGVwcmVjYXRlZClcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIEBGQUxMQkFDSzpcbiAqIEJyb3dzZXJzIHdpdGhvdXQgYDpoYXNgIHN1cHBvcnQuXG4gKlxuICogVGhpcyB0cmlnZ2VycyBhbmltYXRpb24gb24gaG92ZXIvZm9jdXMgb24gY29udGFpbmVyIGluc3RlYWQgb2Ygc2luZ2xlIGVsZW1lbnRzLlxuICovXG5cbi8qKlxuICogWzFdIEF2b2lkIHRyaWdnZXJpbmcgYW5pbWF0aW9uIG9uIGhvdmVyIGZvciBjb250YWluZXIgd2hlbiBpbiBiZXR3ZWVuIGl0ZW1zLlxuICogWzJdIFJlc2V0IHBvaW50ZXIgZXZlbnRzIGZvciBpdGVtcy5cbiAqL1xuXG5AaW5jbHVkZSBzdXBwb3J0cy1ub3QtaGFzLXNlbGVjdG9yKCkge1xuXG4gICAgLmMtbWVkaWEtZ3JpZCB7XG5cbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvbWVkaWEtZmVhdHVyZS12YWx1ZS1kb2xsYXItdmFyaWFibGUgKi9cbiAgICAgICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBbMV0gKi9cblxuICAgICAgICAgICAgJjpob3ZlciAuYy1tZWRpYS1ncmlkX19saW5rIC5jLW1lZGlhLWdyaWRfX2ltYWdlLFxuICAgICAgICAgICAgJjpmb2N1cy13aXRoaW4gLmMtbWVkaWEtZ3JpZF9faW1hZ2Uge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6ICRtZWRpYS1ncmlkLWltYWdlLW9wYWNpdHktaG92ZXI7XG5cbiAgICAgICAgICAgICAgICBAaWYgKCRtZWRpYS1ncmlkLWltYWdlLWJsdXItb24taG92ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiBibHVyKCRtZWRpYS1ncmlkLWltYWdlLWJsdXItb24taG92ZXIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIC5jLW1lZGlhLWdyaWRfX2xpbmssXG4gICAgICAgICAgICAuYy1tZWRpYS1ncmlkX19saW5rIHtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcblxuICAgICAgICAgICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4gICAgICAgICAgICAgICAgICAgIC5jLW1lZGlhLWdyaWRfX2ltYWdlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoJG1lZGlhLWdyaWQtaW1hZ2UtYmx1ci1vbi1ob3Zlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjogYmx1cigwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmMtbWVkaWEtZ3JpZF9faXRlbSB7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87IC8qIFsyXSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZsYXRwaWNrciAoRmFsbGJhY2spXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBbMV0gRmFsbGJhY2sgZm9yIG5vbi1zdXBwb3J0aW5nIGJyb3dzZXIgZm9yIGA6aGFzYCBzZWxlY3Rvci5cbiAqICAgICBUaGlzIHdpbGwgYWx3YXlzIHNob3cgdGhlIEluUmFuZ2UtU3RhcnQvRW5kIGJhY2tncm91bmQgZXZlbiB3aGVuIG5vXG4gKiAgICAgcmFuZ2UgaXMgc2VsZWN0ZWQgKHlldCkuXG4gKiAgICAgaHR0cHM6Ly9jYW5pdXNlLmNvbS9jc3MtaGFzXG4gKi9cbkBpbmNsdWRlIHN1cHBvcnRzLW5vdC1oYXMtc2VsZWN0b3IoKSB7XG5cbiAgICAuZmxhdHBpY2tyLWRheSB7XG5cbiAgICAgICAgJi5zdGFydFJhbmdlLFxuICAgICAgICAmLmVuZFJhbmdlIHtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmxhdHBpY2tyLWRheS1yYW5nZS1iYWNrZ3JvdW5kLWNvbG9yOyAvKiBbMV0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJbmRpY2F0b3IgRG90IChTY29wZSBTZXR0aW5ncylcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2NvcGUtaW5kaWNhdG9yLWRvdC10YWJsZS1vZmZzZXQtdmVydGljYWw6IGZhbHNlICFkZWZhdWx0O1xuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNTdGlja3kgRWxlbWVudHMgKFNjb3BlcylcblxuICAgIERlZmluZSBvZmZzZXRzIGZvciBzdGlja3kgZWxlbWVudHMgZm9yIHNwZWNpZmljIGNvbnRleHRzL3Njb3Blcy5cblxuICAgIEFzIHBlciBkZXNpZ24vcmVjb21tZW5kYXRpb24sIG9ubHkgMiBzdGlja3kgZWxlbWVudHMgc2hvdWxkIGJlIGNvbWJpbmVkLlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAgKiBbMV0gRmFsbGJhY2sgZm9yIG5vbi1zdXBwb3J0aW5nIGJyb3dzZXJzIG9mIGA6aGFzYC5cbiAgICAgUmVsaWVzIG9uIERPTSBzdHJ1Y3R1cmUgKHRhYmxlIG5lZWRzIHRvIGJlIGluIHNlY3Rpb24tbmF2IHNlY3Rpb24pLlxuICAgICBAREVQUkVDQVRFRFxuICovXG5cbjpyb290OmhhcyguYy1zZWN0aW9uLW5hdikge1xuICAgIC0tYnJvbi1zdGlja3ktb2Zmc2V0OiAjeyRzZWN0aW9uLW5hdi1oZWlnaHR9O1xufVxuXG4vKiBbMV0gKi9cbkBpbmNsdWRlIHN1cHBvcnRzLW5vdC1oYXMtc2VsZWN0b3IoKSB7XG5cbiAgICAuYy1zZWN0aW9uLW5hdl9fc2VjdGlvbiAuYy10YWJsZS0tc3RpY2t5LWhlYWQge1xuICAgICAgICAtLWJyb24tc3RpY2t5LW9mZnNldDogI3skc2VjdGlvbi1uYXYtaGVpZ2h0fTtcbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNCVVRUT05TIChTY29wZXMpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNjb3BlLW1lZGlhLXRlYXNlci1idXR0b24tYnJlYWtwb2ludDogJG1lZGlhLXRlYXNlci1icmVha3BvaW50ICFkZWZhdWx0O1xuJHNjb3BlLW1lZGlhLXRlYXNlci1idXR0b24tZnVsbC13aWR0aDogdHJ1ZSAhZGVmYXVsdDsgLy8gQFRPRE86IEJST04tNjQ3MlxuJHNjb3BlLXRhYmxlLWJ1dHRvbi1kaXNhYmxlZC1jb2xvcjogICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcblxuLypcbiAqIFsxXSBTZXQgdGhlIGJ1dHRvbiB3aWR0aCB0byAxMDAlIG9uIG1lZGlhIHRlYXNlciBicmVha3BvaW50LlxuICogWzJdIFRoZSB2ZXJ0aWNhbCBtZWRpYSB0ZWFzZXIncyBidXR0b24gaXMgYWx3YXlzIDEwMCUgd2lkdGguXG4gKiBbM10gT3ZlcndyaXRlIHRoZSBkaXNhYmxlZCBzdHlsZXMgYXMgdGhleSBhcmUgaGFuZGxlZCBieSB0aGUgb3ZlcmxheS5cbiAqL1xuLmMtYnRuIHtcblxuICAgIEBpZiAoJHNjb3BlLW1lZGlhLXRlYXNlci1idXR0b24tZnVsbC13aWR0aCkge1xuICAgICAgICAuYy1tZWRpYS10ZWFzZXIgLmMtbWVkaWEtdGVhc2VyX19mb290ZXIgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skc2NvcGUtbWVkaWEtdGVhc2VyLWJ1dHRvbi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7IC8qIFsxXSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmMtbWVkaWEtdGVhc2VyLS12ZXJ0aWNhbCAuYy1tZWRpYS10ZWFzZXJfX2Zvb3RlciAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlOyAvKiBbMl0gKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jLWJhY2stdG8tdG9wICYge1xuICAgICAgICAtLWJ1dHRvbi1mbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIH1cblxuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eSwgc2VsZWN0b3ItbWF4LWNvbWJpbmF0b3JzLCBzZWxlY3Rvci1tYXgtY29tcG91bmQtc2VsZWN0b3JzLCBzZWxlY3Rvci1tYXgtY2xhc3MgKi9cbiAgICAuYy10YWJsZS13cmFwcGVyIFthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSAmLFxuICAgIC5jLXRhYmxlLXdyYXBwZXIgLmlzLWRpc2FibGVkICYge1xuXG4gICAgICAgIC5jLWJ0bl9fdGV4dC5jLWJ0bl9fdGV4dCxcbiAgICAgICAgLmMtYnRuX19pY29uLmMtYnRuX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2NvcGUtdGFibGUtYnV0dG9uLWRpc2FibGVkLWNvbG9yOyAvKiBbM10gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuICAgIC8qIHN0eWxlbGludC1lbmFibGUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5LCBzZWxlY3Rvci1tYXgtY29tYmluYXRvcnMsIHNlbGVjdG9yLW1heC1jb21wb3VuZC1zZWxlY3RvcnMsIHNlbGVjdG9yLW1heC1jbGFzcyAqL1xuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSU5QVVQgKFNjb3BlcylcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFsxXSBIaWRlIHBsYWNlaG9sZGVyIHRleHRzIGlmIGZsb2F0aW5nIGxhYmVscyBhcmUgYWN0aXZhdGVkLlxuICogWzJdIFdoZW4gRmxvYXRpbmcgTGFiZWwgc3BhY2luZyBpcyBiaWdnZXIgdGhhbiBgMGAsIGFkZCB0aGlzIHNwYWNlIHRvXG4gKiAgICAgdGhlIENoZWNrYm94IG9yIFJhZGlvIExhYmVsIHRvIGVuc3VyZSBlbm91Z2ggc3BhY2UgYmV0d2VlbiB0aGVtLlxuICogLy8gQFRPRE86IG1vdmUgdG8gZmFsbGJhY2sgbGF5ZXJcbiAqIFszXSBBZGQgZmFsbGJhY2sgc3BhY2luZyB3aGVuIHNlbGVjdG9yIGAuYy1mb3JtLWZpZWxkLS1zdGF0aWNgIGlzIG5vdCBwcmVzZW50LlxuKi9cblxuQGlmICgkZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZykge1xuXG4gICAgLmMtaW5wdXRfX2lucHV0IHtcblxuICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICAgICAgICBmb3JtLmlzLWpzLW9uIC5jLWZvcm0tZmllbGQ6bm90KC5jLWZvcm0tZmllbGQtLW5vLWZsb2F0aW5nKSAmIHsgIC8qIFsxXSAqL1xuXG4gICAgICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgICAgICAgICAgICY6ZGlzYWJsZWQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogaW1wb3J0YW50KHRyYW5zcGFyZW50LCB0cnVlKTtcbiAgICAgICAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogaW1wb3J0YW50KHRyYW5zcGFyZW50LCB0cnVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0FDQ09SRElPTiAoU2NvcGVzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRzY29wZS1hY2NvcmRpb24taW4tY2FyZC10ZXh0LWFsaWduOiAgICAgICAgICAgIGxlZnQgIWRlZmF1bHQ7XG4kc2NvcGUtYWNjb3JkaW9uLWluLWNhcmQtaGVhZGVyLXNwYWNpbmctcmlnaHQ6ICAkYWNjb3JkaW9uLWljb24tc2l6ZSAhZGVmYXVsdDtcbiRzY29wZS1hY2NvcmRpb24taW4tY2FyZC1oZWFkZXItc3BhY2luZy1ib3R0b206ICRhY2NvcmRpb24taGVhZGVyLXNwYWNpbmctdG9wICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBTdHlsaW5nIG9mIGEgc2luZ2xlIGFjY29yZGlvbiBjb21wb25lbnQgd2l0aGluIGEgY2FyZCBjb21wb25lbnQuXG4gKiBbMl0gSWYgYW4gYWNjb3JkaW9uIHdpdGggb25seSBvbmUgY2hpbGQgZWxlbWVudCBpcyBwbGFjZWQgaW4gYSBjYXJkIGNvbGxhcHNpYmxlXG4gKiAgICAgY29tcG9uZW50LCBwYWRkaW5ncyBoYXZlIHRvIGJlIHJlbW92ZWQuXG4gKi9cblxuLmMtYWNjb3JkaW9uIHtcblxuICAgIC5jLWNhcmQgJiB7IC8qIFsxXSAqL1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgICAgICAmOm9ubHktY2hpbGQgeyAvKiBbMV0gKi9cblxuICAgICAgICAgICAgdGV4dC1hbGlnbjogJHNjb3BlLWFjY29yZGlvbi1pbi1jYXJkLXRleHQtYWxpZ247XG5cbiAgICAgICAgICAgIC5jLWFjY29yZGlvbl9faGVhZGVyIHtcblxuICAgICAgICAgICAgICAgIEBpZiAoJGFjY29yZGlvbi1pY29uLXNwYWNpbmctcmlnaHQgIT0gXCJhdXRvXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogKCRhY2NvcmRpb24taWNvbi1zcGFjaW5nLXJpZ2h0ICsgJHNjb3BlLWFjY29yZGlvbi1pbi1jYXJkLWhlYWRlci1zcGFjaW5nLXJpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYy1hY2NvcmRpb25fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcHJvcGVydHkoXCItLWFjY29yZGlvbi1wYW5lbC1wYWRkaW5nLXRvcFwiLCAkc2NvcGUtYWNjb3JkaW9uLWluLWNhcmQtaGVhZGVyLXNwYWNpbmctYm90dG9tKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYy1jYXJkOm5vdCguYy1jYXJkLS1leHBhbmRhYmxlKSAmIHsgLyogWzJdICovXG5cbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5ICovXG4gICAgICAgICY6b25seS1jaGlsZCB7XG5cbiAgICAgICAgICAgIC5jLWFjY29yZGlvbl9faGVhZGVyIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmMtYWNjb3JkaW9uX190aXRsZS1pY29uIHtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLWFjY29yZGlvbl9fcGFuZWwge1xuICAgICAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGxlbmd0aC16ZXJvLW5vLXVuaXQgKi9cbiAgICAgICAgICAgICAgICAtLWFjY29yZGlvbi1wYW5lbC1wYWRkaW5nLXJpZ2h0OiAwcHg7XG4gICAgICAgICAgICAgICAgLS1hY2NvcmRpb24tcGFuZWwtcGFkZGluZy1ib3R0b206IDBweDtcbiAgICAgICAgICAgICAgICAtLWFjY29yZGlvbi1wYW5lbC1wYWRkaW5nLWxlZnQ6IDBweDtcbiAgICAgICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlIGxlbmd0aC16ZXJvLW5vLXVuaXQgKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuICAgIH1cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNQUk9EVUNULUlORk8tU1VNTUFSWSAoU2NvcGVzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogWzFdIFN0eWxpbmcgb2YgYSBwcm9kdWN0IGluZm8gc3VtbWFyeSBpbiBhIGZvbGQgb3V0LlxuICovXG4uYy1wcm9kdWN0LWluZm8tc3VtbWFyeSB7XG5cbiAgICAuYy1wcm9kdWN0LWluZm8tc3VtbWFyeV9faGVhZGluZyxcbiAgICAuYy1wcm9kdWN0LWluZm8tc3VtbWFyeV9faW1nLFxuICAgIC5jLXByb2R1Y3QtaW5mby1zdW1tYXJ5X19pbmZvIHtcblxuICAgICAgICAuYy1mb2xkLW91dF9faGVhZGVyI3skZm9sZC1vdXQtaGVhZGVyLW9wZW4tc3RhdGV9ICYge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSU5GTy1JQ09OIChTY29wZXMpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBIb3RmaXggZm9yIEluZm8gSWNvbiBsYXlvdXQgaXNzdWVzIHdoZW4gdGhlIGljb24gaXMgYSBkaXJlY3QgY2hpbGQgb2ZcbiAqIGAuYy1mb3JtLWZpZWxkYCBUaGUgc2l6ZSBhbmQgcG9zaXRpb24gb2YgdGhlIGluZm8gaWNvbiB3YXMgYWZmZWN0ZWQgYnkgdGhlXG4gKiBmbGV4Ym94IGNvbnRleHQuIGAuYy1mb3JtLWZpZWxkID4gLmMtaW5mby1pY29uYCBpcyBub3QgYSByZWNvbW1lbmRlZCBtYXJrdXBcbiAqIG9yZGVyLiBJZGVhbGx5IGAuYy1pbmZvLWljb25gIHNob3VsZCBiZSBpbnNpZGUgb2YgYC5jLWZvcm0tZmllbGRfX2xhYmVsYC5cbiAqIEJ1dCB3ZSBvdXJzZWx2ZXMgaGF2ZSB3cm9uZ2x5IGRlbW9uc3RyYXRlZCB0aGlzIGluXG4gKiBodHRwczovL2Jyb25zb24udndmcy50b29scy9kZWZhdWx0L3YvNy4xNC4wL2NvbXBvbmVudHMvcHJldmlldy9icm9uc29uLWNhbGN1bGF0aW9uLXBhZ2UtLWNhbGN1bGF0aW9uLXBhZ2UuaHRtbClcbiAqIEJ1ZyByZXBvcnQ6IGh0dHBzOi8vamlyYS5wbGF0Zm9ybS52d2ZzLmlvL2Jyb3dzZS9CUk9OU0QtMTM1P2ZvY3VzZWRDb21tZW50SWQ9NDk5OTcmcGFnZT1jb20uYXRsYXNzaWFuLmppcmEucGx1Z2luLnN5c3RlbS5pc3N1ZXRhYnBhbmVscyUzQWNvbW1lbnQtdGFicGFuZWwjY29tbWVudC00OTk5N1xuICpcbiAqIEBUT0RPOiBSZWZhY3RvciBJbmZvIEljb24gQ1NTIGZvciBhbGwgYnJhbmRzIGJ5IHNpbXBsaWZ5aW5nIFNDU1MgYW5kIG1ha2luZyBpdCBtb3JlIHJvYnVzdC5cbiAqXG4gKiBbaGYtMV0gUmVzZXQgbmVnYXRpdmUgbWFyZ2lucy4gU2VlIFszXS5cbiAqIFtoZi0yXSBPdmVycmlkZSB0aGUgZGVmYXVsdCBgYWxpZ24taXRlbXNgIHZhbHVlIChgc3RyZXRjaGApLlxuICovXG5cbi5jLWZvcm0tZmllbGQge1xuXG4gICAgPiAuYy1pbmZvLWljb24ge1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7IC8qIFtoZi0yXSAqL1xuICAgICAgICBtYXJnaW4tdG9wOiAwOyAvKiBbaGYtMV0gKi9cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgLyogW2hmLTFdICovXG4gICAgfVxuXG59XG5cbi8qKlxuICogRml4IGluY29ycmVjdCBwb3NpdGlvbmluZyBpbiB2YXJpb3VzIGNvbnRleHRzIGR1ZSB0byBuZWdhdGl2ZSBtYXJnaW4gXCJoYWNrXCIuXG4gKi9cblxuLmMtaW5mby1pY29uIHtcblxuICAgIC5jLXNlY3Rpb24taGVhZGluZyAmIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNIRUFERVIgKFNjb3BlcylcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2NvcGUtaGVhZGVyLWJyZWFrcG9pbnQ6ICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUwtUEFHRS1IRUFELUJSRUFLUE9JTlQgIWRlZmF1bHQ7XG4kc2NvcGUtaGVhZGVyLW1vZHVsZS1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULUxBUkdFICFkZWZhdWx0O1xuJHNjb3BlLWhlYWRlci1tb2R1bGUtc3BhY2luZy1iZWxvdy1icmVha3BvaW50OiAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRzY29wZS1oZWFkZXItbWVudS10cmlnZ2VyLXBvc2l0aW9uLWVuZDogICAgICAgdHJ1ZSAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gUHVzaCB0byByaWdodCBzaWRlLlxuICogWzJdIE5vIHNwYWNpbmcgYmV0d2VlbiBjb250ZXh0LWJhciAmIG5vdGlmaWNhdGlvbi1jZW50ZXJcbiAqICAgICB0byB2aXN1YWxseSBncm91cCB0aGVtLlxuICogWzNdIEZhbGxiYWNrIGZvciBvbGQgbWFya3VwIChjb250ZXh0LWJhciBuZXN0ZWQgaW4gaGVhZGVyLW5hdikgZm9yIHBvc2l0aW9uaW5nLlxuICogWzRdIExheW91dCBjb250ZXh0LWJhciB3aXRoIG9ubHkgbG9nbyAmIGNvbnRleHQtYmFyIGluIGhlYWRlci5cbiAqL1xuLmMtaGVhZGVyX19jb250ZW50LXdyYXBwZXIge1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI+I3skc2NvcGUtaGVhZGVyLWJyZWFrcG9pbnR9XCIpIHtcbiAgICAgICAgLmMtaGVhZGVyX19sb2dvLFxuICAgICAgICAuYy1oZWFkZXJfX25hdiB7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkc2NvcGUtaGVhZGVyLW1vZHVsZS1zcGFjaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JHNjb3BlLWhlYWRlci1icmVha3BvaW50fVwiKSB7XG4gICAgICAgIC5jLWhlYWRlcl9fbmF2IHtcbiAgICAgICAgICAgIEBpZiAoJHNjb3BlLWhlYWRlci1tZW51LXRyaWdnZXItcG9zaXRpb24tZW5kKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzY29wZS1oZWFkZXItbW9kdWxlLXNwYWNpbmctYmVsb3ctYnJlYWtwb2ludDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiAuYy1jb250ZXh0LWJhciB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IC0xOyAvKiBbM10gKi9cbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRzY29wZS1oZWFkZXItbW9kdWxlLXNwYWNpbmctYmVsb3ctYnJlYWtwb2ludDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jLWNvbnRleHQtYmFyLFxuICAgIC5jLWhlYWRlcl9fbm90aWZpY2F0aW9uLWNlbnRlciB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyAvKiBbMV0gKi9cbiAgICB9XG5cbiAgICAuYy1oZWFkZXJfX2xvZ28ge1xuXG4gICAgICAgICsgLmMtY29udGV4dC1iYXIgeyAvKiBbNF0gKi9cbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbi5jLWNvbnRleHQtYmFyIH4gLmMtaGVhZGVyX19ub3RpZmljYXRpb24tY2VudGVyIHtcblxuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRzY29wZS1oZWFkZXItYnJlYWtwb2ludH1cIikge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDsgLyogWzJdICovXG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjUFJPRFVDVC1TRUFSQ0gtRklMVEVSIChTY29wZXMpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNjb3BlLWJ1dHRvbi1ncm91cC1pdGVtLW1pbi13aWR0aDogMTIycHggIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIFJlbW92ZSBob3Jpem9udGFsIHBhZGRpbmcgZm9yIGFjY29yZGlvbnMgaW5zaWRlIHByb2R1Y3Qgc2VhcmNoIGZpbHRlcnMuXG4gKiBbMl0gRGVjcmVhc2UgYnV0dG9uIGdyb3VwIGl0ZW0gd2lkdGggaW5zaWRlIHByb2R1Y3Qgc2VhcmNoIGZpbHRlcnMuXG4gKi9cblxuLmMtcHJvZHVjdC1zZWFyY2gtZmlsdGVyIHtcblxuICAgIC5jLWFjY29yZGlvbl9fcGFuZWwge1xuICAgICAgICAtLWFjY29yZGlvbi1wYW5lbC1wYWRkaW5nLWxlZnQ6IDBweDsgLyogWzFdICovIC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgbGVuZ3RoLXplcm8tbm8tdW5pdFxuICAgICAgICAtLWFjY29yZGlvbi1wYW5lbC1wYWRkaW5nLXJpZ2h0OiAwcHg7IC8qIFsxXSAqLyAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGxlbmd0aC16ZXJvLW5vLXVuaXRcbiAgICB9XG5cbiAgICAuYy1idXR0b24tZ3JvdXAge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KCRzY29wZS1idXR0b24tZ3JvdXAtaXRlbS1taW4td2lkdGgsIDFmcikpOyAvKiBbMl0gKi9cblxuICAgICAgICAmLmMtYnV0dG9uLWdyb3VwLS1hdXRvIHtcbiAgICAgICAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KCRzY29wZS1idXR0b24tZ3JvdXAtaXRlbS1taW4td2lkdGgsIDFmcikpOyAvKiBbMl0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG4iLCJcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNQUk9EVUNUIFNFQVJDSCBGT1JNIChTY29wZXMpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBbMV0gQWxpZ24gYnV0dG9ucyB0byB0aGUgcmlnaHQgc2lkZSBvbiBob3Jpem9udGFsIG1vZGUgYW5kIGNlbnRlciB0aGVtXG4gKiAgICAgb24gdmVydGljYWwgbW9kZS5cbiAqL1xuXG4gLmMtcHJvZHVjdC1zZWFyY2gtZm9ybSB7XG5cbiAgICAuYy1idG4tLXNtYWxsIHtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skcHJvZHVjdC1zZWFyY2gtZm9ybS1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSW5kaWNhdG9yIERvdCAoU2NvcGUgU2V0dGluZ3MpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNjb3BlLWluZGljYXRvci1kb3QtdGFibGUtb2Zmc2V0LXZlcnRpY2FsOiA3cHggIWRlZmF1bHQ7XG4iLCJcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJbmRpY2F0b3IgRG90IChTY29wZXMpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNjb3BlLWluZGljYXRvci1kb3QtdGFibGUtb2Zmc2V0LXZlcnRpY2FsOiBudWxsICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBVbnNldCAocmUtKSBwb3NpdGlvbmluZyBhcyBpbiB0aG9zZSBzY29wZXMgdGhlIHBvc2l0aW9uIGlzIGhhbmRsZWQgZGlmZmVyZW50bHkuXG4gKiBbMl0gUGl4ZWwtcHVzaGluZyBkZWx1eGUhIFNpbmNlIHRoZSBwb3NpdGlvbmluZyBpcyBkZXBlbmRpbmcgb24gdG9vIG1hbnkgcGFyYW1ldGVyc1xuICogICAgIChgZm9udC1zaXplYCwgYGxpbmUtaGVpZ2h0YCwgZXRjLikgYSBtYWdpYyBudW1iZXIgaXMgdXNlZCBoZXJlXG4gKiAgICAgdG8gdmlzdWFsbHkgYWxpZ24gZG90IHRvIGJhc2VsaW5lLlxuICovXG4uYy1pbmRpY2F0b3ItZG90X19kb3Qge1xuXG4gICAgLmMtaW5ib3gtdGFibGVfX3N0YXR1cy1pbmRpY2F0b3IgJiB7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTsgLyogWzFdICovXG4gICAgfVxuXG4gICAgLmMtbm90aWZpY2F0aW9uLWNlbnRlcl9faXRlbV9fc3RhdHVzICYge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IC8qIFsxXSAqL1xuICAgIH1cblxuICAgIC5jLXRhYmxlX19jZWxsLWFsaWduICYge1xuICAgICAgICBAaWYgKCRzY29wZS1pbmRpY2F0b3ItZG90LXRhYmxlLW9mZnNldC12ZXJ0aWNhbCkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCN7JHNjb3BlLWluZGljYXRvci1kb3QtdGFibGUtb2Zmc2V0LXZlcnRpY2FsfSk7IC8qIFsyXSAqL1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSU5URVJBQ1RJT04tTEFZRVIgKFNjb3BlcylcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kYnV0dG9uLWJhci1icmVha3BvaW50OiBtICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBDZW50ZXIgYnV0dG9uIHRleHQgaW4gc21hbGxlciB2aWV3cG9ydHMuXG4gKiBbMl0gQ2hhbmdlIGBmbGV4LWRpcmVjdGlvbmAgb24gcmV2ZXJzZWQgYnV0dG9uLWNvbnRhaW5lciBvbiBzbWFsbGVyIHZpZXdwb3J0c1xuICogICAgIHRvIGRpc3BsYXkgY2FsbC10by1hY3Rpb24gb24gdG9wLlxuICovXG4gLmMtaW50ZXJhY3Rpb24tbGF5ZXJfX2J1dHRvbi1iYXIge1xuXG4gICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRidXR0b24tYmFyLWJyZWFrcG9pbnR9XCIpIHtcblxuICAgICAgICAgLmMtYnRuLS1saW5rIHtcbiAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogWzFdICovXG4gICAgICAgICB9XG5cbiAgICAgICAgIC5vLWJ1dHRvbi1jb250YWluZXIge1xuICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgLyogWzJdICovXG4gICAgICAgICB9XG5cbiAgICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjVEFCTEVTIChTY29wZXMpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBbMV0gUmVzcG9uc2l2ZSB2YXJpYW50OiBQcmV2ZW50cyB0aGUgd2lkdGggb2YgYC5jLWJhZGdlYCBmcm9tIGJsb3dpbmcgdXBcbiAqICAgICB3aGVuIGEgY29tYmluYXRpb24gb2YgQ1NTIGdyaWQgYW5kIENTUyBmbGV4Ym94IGNvbWVzIGludG8gcGxheS5cbiAqIFsyXSBWZXJ0aWNhbGx5IGFsaWduIHdpdGggdGV4dFxuICovXG4uYy10YWJsZS13cmFwcGVyIHtcblxuICAgIHRoLFxuICAgIHRkIHtcblxuICAgICAgICAuYy1iYWRnZV9faWNvbiB7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5jLXN0YXR1cy1tZXNzYWdlIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgLyogWzJdICovXG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG4uYy10YWJsZS0tcmVzcG9uc2l2ZSB7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skdGFibGUtcmVzcG9uc2l2ZS1icmVha3BvaW50fVwiKSB7XG5cbiAgICAgICAgW2RhdGEtY29sdW1uaGVhZGVyXSB7XG5cbiAgICAgICAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuXG4gICAgICAgICAgICAgICAgLmMtYmFkZ2Uge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDA7IC8qIFsxXSAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0hFUk8tVEVBU0VSIChTY29wZXMpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNjb3BlLWhlcm8tdGVhc2VyLWVuYWJsZS1oaW50LXN0eWxlczogICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRzY29wZS1oZXJvLXRlYXNlci1lbmFibGUtaGludC1zdHlsZXMtaW52ZXJ0ZWQ6ICAgICAgICAgICRoZXJvLXRlYXNlci1pbnZlcnRlZCAhZGVmYXVsdDtcblxuJHNjb3BlLWhlcm8tdGVhc2VyLWVuYWJsZS1zaG93LW1vcmUtc3BhY2luZzogICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kc2NvcGUtaGVyby10ZWFzZXItc2hvdy1tb3JlLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcblxuJHNjb3BlLWhlcm8tdGVhc2VyLWhpbnQtdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRzY29wZS1oZXJvLXRlYXNlci1oaW50LXRleHQtY29sb3ItaW52ZXJ0ZWQ6ICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRzY29wZS1oZXJvLXRlYXNlci1oaW50LXRleHQtY29sb3ItaG92ZXI6ICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kc2NvcGUtaGVyby10ZWFzZXItaGludC10ZXh0LWNvbG9yLWhvdmVyLWludmVydGVkOiAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG5cbiRzY29wZS1oZXJvLXRlYXNlci1oaW50LWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJHNjb3BlLWhlcm8tdGVhc2VyLWhpbnQtYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRzY29wZS1oZXJvLXRlYXNlci1oaW50LWJhY2tncm91bmQtY29sb3ItaW52ZXJ0ZWQ6ICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJHNjb3BlLWhlcm8tdGVhc2VyLWhpbnQtYmFja2dyb3VuZC1jb2xvci1ob3Zlci1pbnZlcnRlZDogbnVsbCAhZGVmYXVsdDtcblxuJHNjb3BlLWhlcm8tdGVhc2VyLWhpbnQtYm9yZGVyLWNvbG9yLWludmVydGVkOiAgICAgICAgICAgY3VycmVudENvbG9yICFkZWZhdWx0O1xuJHNjb3BlLWhlcm8tdGVhc2VyLWhpbnQtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgY3VycmVudENvbG9yICFkZWZhdWx0O1xuXG4kc2NvcGUtaGVyby10ZWFzZXItaGludC1zZWxlY3RvcnM6IChcbiAgICBcIi5jLWhlcm8tdGVhc2VyX19wcmV0aXRsZVwiLFxuICAgIFwiLmMtaGVyby10ZWFzZXJfX3RpdGxlXCIsXG4gICAgXCIuYy1oZXJvLXRlYXNlcl9fc3VidGl0bGVcIixcbiAgICBcIi5jLWhlcm8tdGVhc2VyX190ZXh0XCIsXG4pICFkZWZhdWx0O1xuXG4vLy8gTWl4aW4gdG8gYWRkIHNjb3BlZCBIaW50IHN0eWxlcy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNlbGVjdG9ycyBbbnVsbF0gLSBDU1Mgc2VsZWN0b3JzIHdoZXJlIHRoZSBIaW50IHN0eWxlcyBzaG91bGQgYmUgc2NvcGVkIHRvLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGludmVydGVkIFtmYWxzZV0gLSBDb250cm9scyB0aGUgdXNlZCBjb2xvciB2YXJpYWJsZXMuXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vICAgICBkaXYge1xuLy8vICAgICAgICAgQGluY2x1ZGUgaGludC1zdHlsZXMoXG4vLy8gICAgICAgICAgICAgJHNlbGVjdG9yczogKFwiLnNlbGVjdG9yLTFcIiwgXCIuc2VsZWN0b3ItMlwiLCAuLi4pLFxuLy8vICAgICAgICAgICAgICRpbnZlcnRlZDogIHRydWUsXG4vLy8gICAgICAgICApO1xuLy8vICAgICB9XG5AbWl4aW4gaGludC1zdHlsZXMoJHNlbGVjdG9yczogbnVsbCwgJGludmVydGVkOiBmYWxzZSkge1xuXG4gICAgJF9jb2xvcjogICAgICAgICAgICAgICAgICBpZigkaW52ZXJ0ZWQsICRzY29wZS1oZXJvLXRlYXNlci1oaW50LXRleHQtY29sb3ItaW52ZXJ0ZWQsICRzY29wZS1oZXJvLXRlYXNlci1oaW50LXRleHQtY29sb3IpO1xuICAgICRfY29sb3ItaG92ZXI6ICAgICAgICAgICAgaWYoJGludmVydGVkLCAkc2NvcGUtaGVyby10ZWFzZXItaGludC10ZXh0LWNvbG9yLWhvdmVyLWludmVydGVkLCAkc2NvcGUtaGVyby10ZWFzZXItaGludC10ZXh0LWNvbG9yLWhvdmVyKTtcbiAgICAkX2JhY2tncm91bmQtY29sb3I6ICAgICAgIGlmKCRpbnZlcnRlZCwgJHNjb3BlLWhlcm8tdGVhc2VyLWhpbnQtYmFja2dyb3VuZC1jb2xvci1pbnZlcnRlZCwgJHNjb3BlLWhlcm8tdGVhc2VyLWhpbnQtYmFja2dyb3VuZC1jb2xvcik7XG4gICAgJF9iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiBpZigkaW52ZXJ0ZWQsICRzY29wZS1oZXJvLXRlYXNlci1oaW50LWJhY2tncm91bmQtY29sb3ItaG92ZXItaW52ZXJ0ZWQsICRzY29wZS1oZXJvLXRlYXNlci1oaW50LWJhY2tncm91bmQtY29sb3ItaG92ZXIpO1xuICAgICRfYm9yZGVyLWNvbG9yOiAgICAgICAgICAgaWYoJGludmVydGVkLCAkc2NvcGUtaGVyby10ZWFzZXItaGludC1ib3JkZXItY29sb3ItaW52ZXJ0ZWQsICRzY29wZS1oZXJvLXRlYXNlci1oaW50LWJvcmRlci1jb2xvcik7XG5cbiAgICBAaWYgKCRzZWxlY3RvcnMpIHtcbiAgICAgICAgLy8gSXRlcmF0ZXMgdGhyb3VnaCB0aGUgZ2l2ZW4gc2VsZWN0b3JzIHBhc3NlZCBpbnRvIHRoZSBtaXhpbiBhbmRcbiAgICAgICAgLy8gZ2VuZXJhdGVzIHRoZSByZXNwZWN0aXZlIHNlbGVjdG9ycy5cbiAgICAgICAgQGVhY2ggJHNlbGVjdG9yIGluICRzZWxlY3RvcnMge1xuXG4gICAgICAgICAgICAjeyRzZWxlY3Rvcn0ge1xuXG4gICAgICAgICAgICAgICAgLy8gU2NvcGVkIEhpbnQgc3R5bGVzXG4gICAgICAgICAgICAgICAgLmMtaGludCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJF9ib3JkZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRfYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRfY29sb3I7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQFRPRE8gQlJPTi04NTU3XG4gICAgICAgICAgICAgICAgICAgIC8vIC0gYWRkIGZvY3VzIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgIC8vIC0gaG92ZXIgJiBmb2N1cyBjb25kaXRpb25hbGx5XG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJF9iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRfY29sb3ItaG92ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuLyoqXG4gKiBbMV0gSWYgdGhlIGludmVydGVkIHZhcmlhbnQgb2YgdGhlIEhlcm8gVGVhc2VyIGNvbXBvbmVudCBpcyBlbmFibGVkIHZpYVxuICogICAgIHRoZSBgJGhlcm8tdGVhc2VyLWludmVydGVkYCBTYXNzIHZhcmlhYmxlLCB0aGUgY29sb3IgbXVzdCBiZSBpbnZlcnRlZFxuICogICAgIG1hbnVhbGx5LCBzaW5jZSB0aGUgY29sb3IgY2Fubm90IGJlIGluaGVyaXRlZCBmcm9tXG4gKiAgICAgYFtkYXRhLXRoZW1lPVwiYnJhbmRcIl1gLlxuICogWzJdIEZvciBicmFuZHMgdGhhdCBoYXZlIG5vdCBlbmFibGVkIHRoZSBpbnZlcnRlZCB2YXJpYW50IG9mIHRoZVxuICogICAgIEhlcm8gVGVhc2VyIGNvbXBvbmVudCB2aWEgdGhlIGAkaGVyby10ZWFzZXItaW52ZXJ0ZWRgIFNhc3MgdmFyaWFibGUsXG4gKiAgICAgYnV0IHN0aWxsIG5lZWQgdG8gYWRqdXN0IHRoZSBjb2xvciBvZiB0aGUgSGludCBjb21wb25lbnQuXG4gKiBbM10gU2NhbGUgdGhlIHZpZGVvIHdyYXBwZXIgZm9yIGJhY2tncm91bmQtdmlkZW9zIHRvIHRoZSBwYXJlbnTigJlzIGhlaWdodC5cbiAqIFs0XSBVc2Ugc2FtZSBzaXplIG1vZGUgYXMgYmFja2dyb3VuZCB2aWRlbyAoYGNvdmVyYCkgdG8gcHJvdmlkZSBhIHNtb290aGVyIGV4cGVyaWVuY2UgYmVmb3JlIHRoZSB2aWRlbyBpcyBsb2FkZWQuXG4gKiBbNV0gQnlwYXNzIHRoZSBgU2hvdyBtb3JlYCBzZXR0aW5ncywgYXMgdGhleSBhcmUgaGlkaW5nIHRoZSBpbnB1dCBib3JkZXJzIGFuZCBtYWtlIHRoZSBmb2N1cyBzdHlsZXMgcGFydGlhbGx5IGludmlzaWJsZS5cbiAqL1xuLmMtaGVyby10ZWFzZXIge1xuXG59XG5cbiAgICBAaWYgKCRzY29wZS1oZXJvLXRlYXNlci1lbmFibGUtaGludC1zdHlsZXMpIHtcbiAgICAgICAgQGluY2x1ZGUgaGludC1zdHlsZXMoIC8qIFsyXSAqL1xuICAgICAgICAgICAgJHNlbGVjdG9yczogJHNjb3BlLWhlcm8tdGVhc2VyLWhpbnQtc2VsZWN0b3JzLFxuICAgICAgICAgICAgJGludmVydGVkOiAgZmFsc2UsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgQGlmICgkc2NvcGUtaGVyby10ZWFzZXItZW5hYmxlLWhpbnQtc3R5bGVzLWludmVydGVkKSB7XG4gICAgICAgIC5jLWhlcm8tdGVhc2VyLS1pbnZlcnRlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoaW50LXN0eWxlcyggIC8qIFsxXSAqL1xuICAgICAgICAgICAgICAgICRzZWxlY3RvcnM6ICRzY29wZS1oZXJvLXRlYXNlci1oaW50LXNlbGVjdG9ycyxcbiAgICAgICAgICAgICAgICAkaW52ZXJ0ZWQ6ICB0cnVlLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jLWhlcm8tdGVhc2VyX19iYWNrZ3JvdW5kLXZpZGVvIHtcblxuICAgICAgICAucGx5ci0tdmlkZW8ge1xuICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0OyAvKiBbM10gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC5wbHlyX19wb3N0ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgLyogWzRdICovXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIEBpZiAoJHNjb3BlLWhlcm8tdGVhc2VyLWVuYWJsZS1zaG93LW1vcmUtc3BhY2luZykge1xuICAgICAgICAuYy1oZXJvLXRlYXNlcl9fbGF5ZXIge1xuXG4gICAgICAgICAgICAuYy1zaG93LW1vcmVfX2JvZHkge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBpbml0aWFsOyAvKiBbNV0gKi9cbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogJHNjb3BlLWhlcm8tdGVhc2VyLXNob3ctbW9yZS1zcGFjaW5nOyAvKiBbNV0gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgfVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0NVU1RPTS1QUk9HUkVTUyAoU2NvcGUpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI+I3skY3VzdG9tLXByb2dyZXNzLWRlc2NyaXB0aW9uLWl0ZW0tYnJlYWtwb2ludH1cIikge1xuXG4gICAgLmMtY3VzdG9tLXByb2dyZXNzX19kZXNjcmlwdGlvbl9faXRlbS0tZW5kIHtcbiAgICAgICAgLy8gU2V0IGFsaWdubWVudCBmb3IgbXVsdGlwbGUgdGV4dCBlbGVtZW50cy5cbiAgICAgICAgLS1kZXNjcmlwdGlvbi1saXN0LXRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgICAgIC8vIEVuYWJsZSB0ZXh0IGFsaWdubWV0IGJhc2VkIG9uIGxheW91dCBtb2RlLlxuICAgICAgICAtLWlmLWRlc2NyaXB0aW9uLWxpc3Qtc3BsaXQtaXMtd2lkZTogOyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lICovXG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQ0FSRFMgKFNjb3BlcylcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2NvcGUtY2FyZC1mb3JtLWZpZWxkLXNwYWNpbmctdmVydGljYWw6ICRHTE9CQUwtRklFTERTRVQtSVRFTS1TUEFDSU5HICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBBZGQgdmVydGljYWwgc3BhY2luZyBiZXR3ZWVuIGZvcm0gZmllbGRzLlxuICovXG5cbi5jLWNhcmQge1xufVxuXG4gICAgLmMtY2FyZF9fYm9keSB7XG5cbiAgICAgICAgLmMtZm9ybS1maWVsZCArIC5jLWZvcm0tZmllbGQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNjb3BlLWNhcmQtZm9ybS1maWVsZC1zcGFjaW5nLXZlcnRpY2FsOyAvKiBbMV0gKi9cbiAgICAgICAgfVxuXG4gICAgfVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1NIT1ctTU9SRSAoU2NvcGVzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRzY29wZS1zaG93LW1vcmUtZmllbGRzZXQtc3BhY2luZzogICAgICAgICAkR0xPQkFMLUZJRUxEU0VULUlURU0tU1BBQ0lORyAhZGVmYXVsdDtcbiRzY29wZS1zaG93LW1vcmUtYnV0dG9uLWNvbnRhaW5lci1zcGFjaW5nOiAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gVmVydGljYWwgc3BhY2luZyBiZXR3ZWVuIEZpZWxkc2V0IG9iamVjdCBhbmQgU2hvdyBNb3JlLlxuICogWzJdIFZlcnRpY2FsIHNwYWNpbmcgYmV0d2VlbiBTaG93IE1vcmUgYW5kIEJ1dHRvbiBDb250YWluZXIgb2JqZWN0LlxuICovXG5cbi5jLXNob3ctbW9yZSB7XG5cbiAgICAuby1maWVsZHNldCArICYge1xuXG4gICAgICAgIC5jLXNob3ctbW9yZV9fYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7IC8qIFsxXSAqL1xuXG4gICAgICAgICAgICAmW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2NvcGUtc2hvdy1tb3JlLWZpZWxkc2V0LXNwYWNpbmc7IC8qIFsxXSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICsgLm8tYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRzY29wZS1zaG93LW1vcmUtYnV0dG9uLWNvbnRhaW5lci1zcGFjaW5nOyAvKiBbMl0gKi9cbiAgICB9XG59XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjUFJPR1JFU1Ncbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2NvcGUtcHJvZ3Jlc3Mtc3BhY2luZy1pbi1tb2RhbDogJEdMT0JBTC1TUEFDSU5HLVVOSVQgIWRlZmF1bHQ7XG5cbi5jLXByb2dyZXNzIHtcblxuICAgIC5jLW1vZGFsICYge1xuICAgICAgICBtYXJnaW4tdG9wOiAkc2NvcGUtcHJvZ3Jlc3Mtc3BhY2luZy1pbi1tb2RhbDtcbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNJTkZPLUlDT04gKFNjb3BlcylcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFsxXSBWaXN1YWxseSBhbGlnbiBJbmZvIEljb24uXG4gKi9cbi5jLWluZm8taWNvbiB7XG5cbiAgICAuYy1zZWN0aW9uLWhlYWRpbmcgJiB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogWzFdICovXG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjU1BJTk5FUiAoU2NvcGVzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogWzFdIFNtYWxsIHNpemUgaW4gdXBsb2FkIGNvbnRleHQuIFVzZSBgQGV4dGVuZGAgYXMgbXVsdGlwbGUgc2VsZWN0b3JzXG4gKiAgICAgYW5kIHByb3BlcnRpZXMgbmVlZCB0byBiZSBzZXQuXG4gKi9cbi5jLXVwbG9hZCB7XG5cbiAgICAuYy1zcGlubmVyIHtcbiAgICAgICAgQGV4dGVuZCAuYy1zcGlubmVyLS1zbWFsbDsgLyogWzFdICovIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9hdC1leHRlbmQtbm8tbWlzc2luZy1wbGFjZWhvbGRlciAqL1xuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZPT1ROT1RFUyAoU2NvcGVzKVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRza29kYS1mb290bm90ZXMtdGV4dC1jb2xvci1pbi1mb290ZXI6ICRmb290ZXItZm9vdG5vdGVzLXRleHQtY29sb3IgIWRlZmF1bHQ7XG5cbi8qKlxuICogWzFdIEF2b2lkIElubGluZSBMaW5rIEVsZW1lbnQgc3R5bGVzLlxuICovXG4uYy1mb290bm90ZXMge1xuXG4gICAgLmMtZm9vdGVyICYge1xuICAgICAgICBjb2xvcjogJHNrb2RhLWZvb3Rub3Rlcy10ZXh0LWNvbG9yLWluLWZvb3RlcjtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBpbmhlcml0OyAvKiBbMV0gKi9cbiAgICB9XG5cbn1cbiIsIi8vIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNDQVJPVVNFTCAoU2NvcGUgU2V0dGluZ3MpXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gYHBjYCBhcyBzaG9ydGhhbmQgZm9yIGBwcm9kdWN0LWNhcmRgIHNjb3BlIGJlIGxlc3MgdmVyYm9zZS5cbiRza29kYS1jYXJvdXNlbC1wYy1zcGFjaW5nLXRvcDogICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVhYU01BTEwgIWRlZmF1bHQ7XG4kc2tvZGEtY2Fyb3VzZWwtcGMtY29udHJvbC1idXR0b25zLXNwYWNpbmc6ICAkR0xPQkFMLVNQQUNJTkctVU5JVC1YWFNNQUxMICFkZWZhdWx0O1xuJHNrb2RhLWNhcm91c2VsLXBjLWNvbnRyb2wtYnV0dG9uLXNpemU6ICAgICAgbWFwLWdldCgkSUNPTi1TUVVBUkUtRlVMTC1TSVpFUywgeHNtYWxsKSAhZGVmYXVsdDtcbiRza29kYS1jYXJvdXNlbC1wYy1jb250cm9sLWljb24tc2l6ZTogICAgICAgIGljb24tc2l6ZSh4c21hbGwpICFkZWZhdWx0O1xuJHNrb2RhLWNhcm91c2VsLXBjLWRvdHMtcGFkZGluZzogICAgICAgICAgICAgKCRza29kYS1jYXJvdXNlbC1jb3VudGVyLXBhZGRpbmcgKiAwLjUpICFkZWZhdWx0O1xuJHNrb2RhLWNhcm91c2VsLXBjLWNvdW50LWZvbnQtY29sb3ItY3VycmVudDogJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcblxuLyoqXG4gKiBbMV0gUmVzZXQgZGVmYXVsdHMuXG4gKi9cbi5jLXByb2R1Y3QtY2FyZCB7XG5cbiAgICAuYy1jYXJvdXNlbCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRHTE9CQUwtU1BBQ0lORy1VTklULUxBUkdFO1xuXG4gICAgICAgIC5mbGlja2l0eS1wYWdlLWRvdHMge1xuICAgICAgICAgICAgYm90dG9tOiBhdXRvOyAvKiBbMV0gKi9cbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvOyAvKiBbMV0gKi9cbiAgICAgICAgICAgIHRvcDogY2FsYygxMDAlICsgI3skc2tvZGEtY2Fyb3VzZWwtcGMtc3BhY2luZy10b3B9KTtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkc2tvZGEtY2Fyb3VzZWwtcGMtZG90cy1wYWRkaW5nO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRza29kYS1jYXJvdXNlbC1wYy1kb3RzLXBhZGRpbmc7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kb3Qge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWluLWhlaWdodDogYXV0bztcblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1jbGFzcyAqL1xuICAgICAgICAgICAgJi5pcy1zZWxlY3RlZCB7XG5cbiAgICAgICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5LCBzZWxlY3Rvci1tYXgtY2xhc3MsIG1heC1uZXN0aW5nLWRlcHRoICovXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGltcG9ydGFudCgkc2tvZGEtY2Fyb3VzZWwtcGMtY291bnQtZm9udC1jb2xvci1jdXJyZW50LCB0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ge1xuICAgICAgICAgICAgd2lkdGg6ICRza29kYS1jYXJvdXNlbC1wYy1jb250cm9sLWJ1dHRvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2tvZGEtY2Fyb3VzZWwtcGMtY29udHJvbC1idXR0b24tc2l6ZTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRza29kYS1jYXJvdXNlbC1wYy1jb250cm9sLWljb24tc2l6ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1jbGFzcyAqL1xuICAgICAgICAgICAgJi5uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogJHNrb2RhLWNhcm91c2VsLXBjLWNvbnRyb2wtYnV0dG9ucy1zcGFjaW5nO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LWNsYXNzICovXG4gICAgICAgICAgICAmLnByZXZpb3VzIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAkc2tvZGEtY2Fyb3VzZWwtcGMtY29udHJvbC1idXR0b25zLXNwYWNpbmc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5mbGlja2l0eS1mdWxsc2NyZWVuLWJ1dHRvbiB7XG4gICAgICAgICAgICByaWdodDogJHNrb2RhLWNhcm91c2VsLXBjLWNvbnRyb2wtYnV0dG9ucy1zcGFjaW5nO1xuICAgICAgICAgICAgYm90dG9tOiAkc2tvZGEtY2Fyb3VzZWwtcGMtY29udHJvbC1idXR0b25zLXNwYWNpbmc7XG4gICAgICAgIH1cblxuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0hFUk8tVEVBU0VSIChTY29wZXMpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBbMV0gSW52ZXJ0IGhpbnQgc3R5bGVzIG9uIHNtYWxsIHNjcmVlbnMuXG4gKiBbMl0gRGlzYWJsZSBncmFkaWVudCBmb3IgY29udHJvbHMuXG4gKi9cbkBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRoZXJvLXRlYXNlci1jb250ZW50LWJyZWFrfVwiKSB7XG5cbiAgICAuYy1oZXJvLXRlYXNlciB7XG4gICAgICAgIEBpbmNsdWRlIGhpbnQtc3R5bGVzKFxuICAgICAgICAgICAgJHNlbGVjdG9yczogJHNjb3BlLWhlcm8tdGVhc2VyLWhpbnQtc2VsZWN0b3JzLFxuICAgICAgICAgICAgJGludmVydGVkOiAgdHJ1ZSwgLyogWzFdICovXG4gICAgICAgICk7XG4gICAgfVxufVxuXG4uYy1oZXJvLXRlYXNlcl9fYmFja2dyb3VuZC12aWRlbyB7XG5cbiAgICAucGx5ci0tdmlkZW86OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogdW5zZXQ7IC8qIFsyXSAqL1xuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0hlYWRlciAoU2NvcGUgU2V0dGluZ3MpXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNjb3BlLWhlYWRlci1tb2R1bGUtc3BhY2luZzogJEdMT0JBTC1TUEFDSU5HLVVOSVQtTEFSR0UgIWRlZmF1bHQ7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjSGVhZGVyXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHNrb2RhLXNjb3BlLWhlYWRlci1pbnRlcmFjdGl2ZS1pY29uLXNpemU6ICRCVVRUT04tSUNPTi1JTlRFUkFDVElPTi1TSVpFICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBPdmVycmlkZSBkZWZhdWx0IHRoYXQgaGFzIG5vIGRlZGljYXRlZCBzZXR0aW5nLlxuICovXG4uYy1oZWFkZXIge1xuXG4gICAgLmMtaGVhZGVyX19uYXYge1xuICAgICAgICBtYXJnaW46IDA7IC8qIFsxXSAqL1xuICAgIH1cblxufVxuXG4uYy1jb250ZXh0LWJhcl9fbGluayxcbi5jLW5vdGlmaWNhdGlvbi1jZW50ZXJfX3RvZ2dsZSxcbi5jLXNpdGUtbmF2X190b2dnbGUge1xuICAgIHdpZHRoOiAkc2tvZGEtc2NvcGUtaGVhZGVyLWludGVyYWN0aXZlLWljb24tc2l6ZTtcbiAgICBoZWlnaHQ6ICRza29kYS1zY29wZS1oZWFkZXItaW50ZXJhY3RpdmUtaWNvbi1zaXplO1xufVxuXG4uYy1jb250ZXh0LWJhcl9fbGluayB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWljb24tc3RhdGVzKCk7XG5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiAwO1xuICAgIH1cblxufVxuXG4uYy1ub3RpZmljYXRpb24tY2VudGVyX190b2dnbGUge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1pY29uLXN0YXRlcyhcbiAgICAgICAgJHNlbGVjdG9yOiBcIjo6YmVmb3JlXCIsXG4gICAgKTtcblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuXG59XG5cbi5jLXNpdGUtbmF2X190b2dnbGUge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1pY29uLXN0YXRlcyhcbiAgICAgICAgJGhhbmRsZS1wb3NpdGlvbjogZmFsc2UsXG4gICAgKTtcbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNUQUJMRVMgKFNjb3BlcylcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kc2tvZGEtdGFibGUtYnV0dG9uLWxpbmstY29sb3I6ICRCVVRUT04tTElOSy1URVhULUNPTE9SICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBSZXNldCBjb2xvciB0byBkZWZhdWx0IGxpbmsgY29sb3IgYXMgZGlzYWJsZWQgcm93cyBoYXZlIGFuIG92ZXJsYXkuXG4gKi9cbi5jLXRhYmxlLXdyYXBwZXIge1xuXG4gICAgdHIuaXMtZGlzYWJsZWQsXG4gICAgdHJbYXJpYS1kaXNhYmxlZD1cInRydWVcIl0ge1xuXG4gICAgICAgIC5jLWJ0bi0tbGluayB7XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICAgICAgICAgICAgLmMtYnRuX19pY29uLFxuICAgICAgICAgICAgLmMtYnRuX190ZXh0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogaW1wb3J0YW50KCRza29kYS10YWJsZS1idXR0b24tbGluay1jb2xvciwgdHJ1ZSk7IC8qIFsxXSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0JMT0NLXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBVdGlsaXR5IGNsYXNzIHRvIG1ha2UgYW4gZWxlbWVudCBgZGlzcGxheTogYmxvY2s7YC5cbiAqL1xuXG4udS1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNCT1JERVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFV0aWxpdHkgY2xhc3MgdG8gbWFrZSBhbiBlbGVtZW50IGhhdmUgYm9yZGVycyBsaWtlIGBib3JkZXI6IDFweCBzb2xpZCByZWQ7YC5cbiAqL1xuXG4vLyBAc2Fzcy1leHBvcnQtc2VjdGlvbj1cImJvcmRlckRpcmVjdGlvbnNcIlxuJGJvcmRlci1kaXJlY3Rpb25zOiAoXG4gICAgICAgIG51bGw6IG51bGwsXG4gICAgICAgIFwiLXRcIjogXCItdG9wXCIsXG4gICAgICAgIFwiLXJcIjogXCItcmlnaHRcIixcbiAgICAgICAgXCItYlwiOiBcIi1ib3R0b21cIixcbiAgICAgICAgXCItbFwiOiBcIi1sZWZ0XCIsXG4gICAgICAgIFwiLXZcIjogXCItbGVmdFwiIFwiLXJpZ2h0XCIsXG4gICAgICAgIFwiLWhcIjogXCItdG9wXCIgXCItYm90dG9tXCIsXG4pICFkZWZhdWx0O1xuLy8gQGVuZC1zYXNzLWV4cG9ydC1zZWN0aW9uXG5cbkBlYWNoICRkaXJlY3Rpb24tbmFtZXNwYWNlLCAkZGlyZWN0aW9uLXJ1bGVzIGluICRib3JkZXItZGlyZWN0aW9ucyB7XG5cbiAgICAudS1ib3JkZXIjeyRkaXJlY3Rpb24tbmFtZXNwYWNlfSB7XG4gICAgICAgIEBlYWNoICRkaXJlY3Rpb24gaW4gJGRpcmVjdGlvbi1ydWxlcyB7XG4gICAgICAgICAgICBib3JkZXIjeyRkaXJlY3Rpb259OiBpbXBvcnRhbnQoJEdMT0JBTC1CT1JERVItV0lEVEggJEdMT0JBTC1CT1JERVItU1RZTEUgJEdMT0JBTC1CT1JERVItQ09MT1IsIHRydWUpO1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNDTEVBUkZJWFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogQ2xlYXJmaXggdXRpbGl0eSBjbGFzcy5cbiAqL1xuXG4udS1jbGVhcmZpeCB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNERUJVR1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG5cbi8vIEluaXRpYWxseSBkaXNhYmxlIGRlYnVnIENTUyBhbmQgZW5hYmxlIGl0IGluIHlvdXIgYnVpbGQtcHJvY2Vzcy5cbiRkZWJ1ZzogICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGRlYnVnLWJlbS1tb2RpZmllcjogICAgdHJ1ZSAhZGVmYXVsdDtcbiRkZWJ1Zy1sYXlvdXQtbW9kaWZpZXI6IHRydWUgIWRlZmF1bHQ7XG5cbkBtaXhpbiBkZWJ1ZygkbWVzc2FnZTogXCJFcnJvclwiLCAkc2V2ZXJpdHk6IGVycm9yKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG91dGxpbmU6IDFweCBzb2xpZCByZWQ7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDEwMCU7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgQGlmICRzZXZlcml0eSA9PSBlcnJvciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMCwgMCwgMC44KTtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkc2V2ZXJpdHkgPT0gd2FybmluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAwLCAwLjgpO1xuICAgICAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHJlZDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuXG4gICAgICAgIEBpZiAkc2V2ZXJpdHkgPT0gZXJyb3Ige1xuICAgICAgICAgICAgY29udGVudDogXCJFUlJPUjogXCIgJG1lc3NhZ2U7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHNldmVyaXR5ID09IHdhcm5pbmcge1xuICAgICAgICAgICAgY29udGVudDogXCJXQVJOSU5HOiBcIiAkbWVzc2FnZTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbkBtaXhpbiByZXNldC1kZWJ1ZygpIHtcbiAgICBwb3NpdGlvbjogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgfVxuXG59XG5cbkBpZiAkZGVidWcgPT0gdHJ1ZSB7XG5cbiAgICBAaWYgJGRlYnVnLWJlbS1tb2RpZmllciA9PSB0cnVlIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQkVNIERlYnVnLlxuICAgICAgICAgKi9cbiAgICAgICAgW2NsYXNzKj1cIi0tXCJdOm5vdChbY2xhc3MqPVwiIFwiXSkge1xuICAgICAgICAgICAgIEBpbmNsdWRlIGRlYnVnKFwiU2VlbXMgbGlrZSB5b3UgaGF2ZSBqdXN0IGEgbW9kaWZpZXIgY2xhc3Mgd2l0aG91dCB0aGUgQkVNIGJsb2NrIGNsYXNzIGFzc2lnbmVkLiBBbHdheXMgYWxzbyBhc3NpZ24gdGhlIGJsb2NrIGNsYXNzIGFsb25nc2lkZSB0aGUgbW9kaWZpZXIgY2xhc3MuXCIpO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBAaWYgJGRlYnVnLWxheW91dC1tb2RpZmllciA9PSB0cnVlIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogTGF5b3V0IERlYnVnLlxuICAgICAgICAgKi9cbiAgICAgICAgLm8tbGF5b3V0IHtcblxuICAgICAgICAgICAgPiAqOm5vdCguby1sYXlvdXRfX2l0ZW0pIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBkZWJ1ZyhcIi5vLWxheW91dCBuZWVkcyAuby1sYXlvdXRfX2l0ZW0gYXMgYSBkaXJlY3QgY2hpbGQgZWxlbWVudC4gV3JhcCBldmVyeSBvdGhlciBjb21wb25lbnQgaW5zaWRlIC5vLWxheW91dF9faXRlbS5cIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgICo6bm90KC5vLWxheW91dCkgPiAuby1sYXlvdXRfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgZGVidWcoXCIuby1sYXlvdXRfX2l0ZW0gbmVlZHMgLm8tbGF5b3V0IGFzIGEgZGlyZWN0IHdyYXBwZXIuXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm8tbGF5b3V0W2NsYXNzKj1cImMtXCJdLFxuICAgICAgICAuby1sYXlvdXRfX2l0ZW1bY2xhc3MqPVwiYy1cIl0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgZGVidWcoXG4gICAgICAgICAgICAgICAgJG1lc3NhZ2U6ICBcIkRvIG5vdCBtaXggbGF5b3V0IGNsYXNzZXMgd2l0aCBjdXN0b20gY29tcG9uZW50cy4gUmF0aGVyIHRyeSB0byBuZXN0IHlvdXIgY29tcG9uZW50cyB3aXRoaW4gYSAuby1sYXlvdXRfX2l0ZW0gaW5zdGVhZC5cIixcbiAgICAgICAgICAgICAgICAkc2V2ZXJpdHk6IHdhcm5pbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBbY2xhc3M9XCIgby1sYXlvdXRfX2l0ZW0gdS0xLzFcIl0sXG4gICAgICAgIFtjbGFzcz1cIiBvLWxheW91dF9faXRlbSAgdS0xLzFcIl0sXG4gICAgICAgIFtjbGFzcz1cIm8tbGF5b3V0X19pdGVtIHUtMS8xIFwiXSxcbiAgICAgICAgW2NsYXNzPVwiby1sYXlvdXRfX2l0ZW0gIHUtMS8xIFwiXSxcbiAgICAgICAgW2NsYXNzPVwiIG8tbGF5b3V0X19pdGVtIHUtMS8xIFwiXSxcbiAgICAgICAgW2NsYXNzPVwiIG8tbGF5b3V0X19pdGVtICB1LTEvMSBcIl0sXG4gICAgICAgIFtjbGFzcz1cIm8tbGF5b3V0X19pdGVtIHUtMS8xXCJdLFxuICAgICAgICBbY2xhc3M9XCJvLWxheW91dF9faXRlbSAgdS0xLzFcIl0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgZGVidWcoXG4gICAgICAgICAgICAgICAgJG1lc3NhZ2U6ICBcIlRoaXMgcm93IGlzIGFsd2F5cyBmdWxsLXdpZHRoIHNvIHlvdSBkb24ndCBuZWVkIGEgLm8tbGF5b3V0ID4gLm8tbGF5b3V0X19pdGVtIGNvbWJpbmF0aW9uIHRvZ2V0aGVyIHdpdGggLnUtMS8xIGF0IGFsbC4gSWYgeW91IGhhdmUgY29udHJvbCBvdmVyIHlvdXIgSFRNTCBoZXJlLCBnZXQgcmlkIG9mIHRob3NlIC5vLWxheW91dC8uby1sYXlvdXRfX2l0ZW0gY2xhc3NlcyBzdXJyb3VuZGluZyB0aGlzIGVsZW1lbnQgaW4gb3JkZXIgdG8gdGlkeSB1cCB5b3VyIG1hcmt1cC5cIixcbiAgICAgICAgICAgICAgICAkc2V2ZXJpdHk6IHdhcm5pbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cbi8qKlxuICogRGlzYWJsZSBkZWJ1ZyBvbiBQbHlyIHZpZGVvIGNvbnRyb2xzLiBUaGUgdXNlZCBwbHVnaW4gKFBseXIpIGRvZXMgbm90IGZvbGxvd1xuICogdGhlIFwibm8gbW9kaWZpZXIgd2l0aG91dCBiYXNlIGNsYXNzXCIgQkVNIHJ1bGUuXG4gKlxuICogQFRPRE86IGZpbmQgYmV0dGVyIHNvbHV0aW9uIHRvIGV4Y2x1ZGUgUGx5ci5cbiAqL1xuLnBseXJfX2NvbnRyb2wgPiBzdmcge1xuICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNGTE9BVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogSGVscGVyIGNsYXNzZXMgdG8gZmxvYXQgZWxlbWVudHMgZWl0aGVyIGxlZnQsIHJpZ2h0IG9yIG5vbmUuXG4gKi9cblxuLnUtZmxvYXQtbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbn1cblxuLnUtZmxvYXQtcmlnaHQge1xuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xufVxuXG4udS1mbG9hdC1ub25lIHtcbiAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5cblxuLy8gTG9vcCBvdmVyIG91ciBicmVha3BvaW50cyBkZWZpbmVkIGluIF9zZXR0aW5ncy5yZXNwb25zaXZlLnNjc3NcbkBlYWNoICRicmVha3BvaW50IGluICRCUkVBS1BPSU5UUyB7XG5cbiAgICAvLyBHZXQgdGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQuXG4gICAgJGFsaWFzOiBudGgoJGJyZWFrcG9pbnQsIDEpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGFsaWFzfVwiKSB7XG5cbiAgICAgICAgLnUtZmxvYXQtbGVmdFxcQCN7JGFsaWFzfSB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLnUtZmxvYXQtcmlnaHRcXEAjeyRhbGlhc30ge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAudS1mbG9hdC1ub25lXFxAI3skYWxpYXN9IHtcbiAgICAgICAgICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPiN7JGFsaWFzfVwiKSB7XG5cbiAgICAgICAgLnUtZmxvYXQtbGVmdFxcQCN7JGFsaWFzfS11cCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLnUtZmxvYXQtcmlnaHRcXEAjeyRhbGlhc30tdXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAudS1mbG9hdC1ub25lXFxAI3skYWxpYXN9LXVwIHtcbiAgICAgICAgICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZPTlQtU0laRVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFV0aWxpdHkgY2xhc3NlcyB0byBlbmZvcmNlIGZvbnQgc2l6ZXMuXG4gKi9cblxuJHRleHQtc2l6ZS1mczc6ICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHRleHQtc2l6ZS1mczctbGluZS1oZWlnaHQ6ICBudWxsICFkZWZhdWx0O1xuJHRleHQtc2l6ZS1mczY6ICAgICAgICAgICAgICAkRlM2ICFkZWZhdWx0O1xuJHRleHQtc2l6ZS1mczYtbGluZS1oZWlnaHQ6ICBudWxsICFkZWZhdWx0O1xuJHRleHQtc2l6ZS1mczU6ICAgICAgICAgICAgICAkRlM1ICFkZWZhdWx0O1xuJHRleHQtc2l6ZS1mczUtbGluZS1oZWlnaHQ6ICBudWxsICFkZWZhdWx0O1xuJHRleHQtc2l6ZS1mczQ6ICAgICAgICAgICAgICAkRlM0ICFkZWZhdWx0O1xuJHRleHQtc2l6ZS1mczQtbGluZS1oZWlnaHQ6ICBudWxsICFkZWZhdWx0O1xuJHRleHQtc2l6ZS1mczM6ICAgICAgICAgICAgICAkRlMzICFkZWZhdWx0O1xuJHRleHQtc2l6ZS1mczMtbGluZS1oZWlnaHQ6ICBudWxsICFkZWZhdWx0O1xuJHRleHQtc2l6ZS1mczI6ICAgICAgICAgICAgICAkRlMyICFkZWZhdWx0O1xuJHRleHQtc2l6ZS1mczItbGluZS1oZWlnaHQ6ICBudWxsICFkZWZhdWx0O1xuJHRleHQtc2l6ZS1mczE6ICAgICAgICAgICAgICAkRlMxICFkZWZhdWx0O1xuJHRleHQtc2l6ZS1mczEtbGluZS1oZWlnaHQ6ICBudWxsICFkZWZhdWx0O1xuJHRleHQtc2l6ZS1mczA6ICAgICAgICAgICAgICAkRlMwICFkZWZhdWx0O1xuJHRleHQtc2l6ZS1mczAtbGluZS1oZWlnaHQ6ICBudWxsICFkZWZhdWx0O1xuJHRleHQtc2l6ZS1mcy0xOiAgICAgICAgICAgICAkRlMtMSAhZGVmYXVsdDtcbiR0ZXh0LXNpemUtZnMtMS1saW5lLWhlaWdodDogbnVsbCAhZGVmYXVsdDtcbiR0ZXh0LXNpemUtZnMtMjogICAgICAgICAgICAgJEZTLTIgIWRlZmF1bHQ7XG4kdGV4dC1zaXplLWZzLTItbGluZS1oZWlnaHQ6IG51bGwgIWRlZmF1bHQ7XG4kdGV4dC1zaXplLWZzLTM6ICAgICAgICAgICAgICRGUy0zICFkZWZhdWx0O1xuJHRleHQtc2l6ZS1mcy0zLWxpbmUtaGVpZ2h0OiBudWxsICFkZWZhdWx0O1xuXG4udS1mb250LXNpemUtZnM3IHtcbiAgICBAaWYgJHRleHQtc2l6ZS1mczcge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICAgJHRleHQtc2l6ZS1mczcsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICR0ZXh0LXNpemUtZnM3LWxpbmUtaGVpZ2h0LFxuICAgICAgICAgICAgJGltcG9ydGFudDogICB0cnVlXG4gICAgICAgICk7XG4gICAgfVxufVxuXG4udS1mb250LXNpemUtZnM2IHtcbiAgICBAaWYgJHRleHQtc2l6ZS1mczYge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICAgJHRleHQtc2l6ZS1mczYsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICR0ZXh0LXNpemUtZnM2LWxpbmUtaGVpZ2h0LFxuICAgICAgICAgICAgJGltcG9ydGFudDogICB0cnVlXG4gICAgICAgICk7XG4gICAgfVxufVxuXG4udS1mb250LXNpemUtZnM1IHtcbiAgICBAaWYgJHRleHQtc2l6ZS1mczUge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICAgJHRleHQtc2l6ZS1mczUsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICR0ZXh0LXNpemUtZnM1LWxpbmUtaGVpZ2h0LFxuICAgICAgICAgICAgJGltcG9ydGFudDogICB0cnVlXG4gICAgICAgICk7XG4gICAgfVxufVxuXG4udS1mb250LXNpemUtZnM0IHtcbiAgICBAaWYgJHRleHQtc2l6ZS1mczQge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICAgJHRleHQtc2l6ZS1mczQsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICR0ZXh0LXNpemUtZnM0LWxpbmUtaGVpZ2h0LFxuICAgICAgICAgICAgJGltcG9ydGFudDogICB0cnVlXG4gICAgICAgICk7XG4gICAgfVxufVxuXG4udS1mb250LXNpemUtZnMzIHtcbiAgICBAaWYgJHRleHQtc2l6ZS1mczMge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICAgJHRleHQtc2l6ZS1mczMsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICR0ZXh0LXNpemUtZnMzLWxpbmUtaGVpZ2h0LFxuICAgICAgICAgICAgJGltcG9ydGFudDogICB0cnVlXG4gICAgICAgICk7XG4gICAgfVxufVxuXG4udS1mb250LXNpemUtZnMyIHtcbiAgICBAaWYgJHRleHQtc2l6ZS1mczIge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICAgJHRleHQtc2l6ZS1mczIsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICR0ZXh0LXNpemUtZnMyLWxpbmUtaGVpZ2h0LFxuICAgICAgICAgICAgJGltcG9ydGFudDogICB0cnVlXG4gICAgICAgICk7XG4gICAgfVxufVxuXG4udS1mb250LXNpemUtZnMxIHtcbiAgICBAaWYgJHRleHQtc2l6ZS1mczEge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICAgJHRleHQtc2l6ZS1mczEsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICR0ZXh0LXNpemUtZnMxLWxpbmUtaGVpZ2h0LFxuICAgICAgICAgICAgJGltcG9ydGFudDogICB0cnVlXG4gICAgICAgICk7XG4gICAgfVxufVxuXG4udS1mb250LXNpemUtZnMwIHtcbiAgICBAaWYgJHRleHQtc2l6ZS1mczAge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICAgJHRleHQtc2l6ZS1mczAsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICR0ZXh0LXNpemUtZnMwLWxpbmUtaGVpZ2h0LFxuICAgICAgICAgICAgJGltcG9ydGFudDogICB0cnVlXG4gICAgICAgICk7XG4gICAgfVxufVxuXG4udS1mb250LXNpemUtZnMtMSB7XG4gICAgQGlmICR0ZXh0LXNpemUtZnMtMSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKFxuICAgICAgICAgICAgJGZvbnQtc2l6ZTogICAkdGV4dC1zaXplLWZzLTEsXG4gICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICR0ZXh0LXNpemUtZnMtMS1saW5lLWhlaWdodCxcbiAgICAgICAgICAgICRpbXBvcnRhbnQ6ICAgdHJ1ZVxuICAgICAgICApO1xuICAgIH1cbn1cblxuLnUtZm9udC1zaXplLWZzLTIge1xuICAgIEBpZiAkdGV4dC1zaXplLWZzLTIge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgICAgICRmb250LXNpemU6ICAgJHRleHQtc2l6ZS1mcy0yLFxuICAgICAgICAgICAgJGxpbmUtaGVpZ2h0OiAkdGV4dC1zaXplLWZzLTItbGluZS1oZWlnaHQsXG4gICAgICAgICAgICAkaW1wb3J0YW50OiAgIHRydWVcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbi51LWZvbnQtc2l6ZS1mcy0zIHtcbiAgICBAaWYgJHRleHQtc2l6ZS1mcy0zIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAgICR0ZXh0LXNpemUtZnMtMyxcbiAgICAgICAgICAgICRsaW5lLWhlaWdodDogJHRleHQtc2l6ZS1mcy0zLWxpbmUtaGVpZ2h0LFxuICAgICAgICAgICAgJGltcG9ydGFudDogICB0cnVlXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0hJREVcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIEhpZGUgaGVscGVyIGNsYXNzZXMgdG8gaGlkZSBlbGVtZW50cyBvbiBjZXJ0YWluIHZlaXdwb3J0cy5cbiAqL1xuXG4udS1oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cblxuXG4vKipcbiAqIEJyZWFrcG9pbnRzIHNwZWNpZmljIGhpZGUgY2xhc3Nlcy5cbiAqL1xuXG4vLyBMb29wIG92ZXIgb3VyIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gX3NldHRpbmdzLnJlc3BvbnNpdmUuc2Nzc1xuQGVhY2ggJGJyZWFrcG9pbnQgaW4gJEJSRUFLUE9JTlRTIHtcblxuICAgIC8vIEdldCB0aGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludC5cbiAgICAkYWxpYXM6IG50aCgkYnJlYWtwb2ludCwgMSk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIjw9I3skYWxpYXN9XCIpIHtcblxuICAgICAgICAudS1oaWRlXFxAI3skYWxpYXN9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI+I3skYWxpYXN9XCIpIHtcblxuICAgICAgICAudS1oaWRlXFxAI3skYWxpYXN9LXVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTk8tQ0FSUEVUXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8vIEBERVBSRUNBVEVEOiByZW1vdmUgaW4gdjE1XG5cbi8qKlxuICogQSB1dGlsaXR5IGNsYXNzIHRvIGVsaW1pbmF0ZSB0aGUgYHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lYCwgc2V0IGJ5IHRoZVxuICogYDxhPmAgZWxlbWVudC5cbiAqL1xuXG4udS1uby1jYXJwZXQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1JPVU5EXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBBIHV0aWxpdHkgY2xhc3MgdG8gbWFrZSBlbGVtZW50cyDigJhyb3VuZOKAmS5cbiAqL1xuXG4udS1yb3VuZCB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1NQQUNJTkcgU0VUVElOR1NcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vLyBAc2Fzcy1leHBvcnQtc2VjdGlvbj1cInNwYWNpbmdQcm9wZXJ0aWVzXCJcbiRzcGFjaW5nLXByb3BlcnRpZXM6IChcbiAgICBcIm1cIjogXCJtYXJnaW5cIixcbiAgICBcInBcIjogXCJwYWRkaW5nXCIsXG4pICFkZWZhdWx0O1xuLy8gQGVuZC1zYXNzLWV4cG9ydC1zZWN0aW9uXG5cbi8vIEBzYXNzLWV4cG9ydC1zZWN0aW9uPVwic3BhY2luZ0RpcmVjdGlvbnNcIlxuJHNwYWNpbmctZGlyZWN0aW9uczogKFxuICAgIG51bGw6IG51bGwsXG4gICAgXCJ0XCI6IFwiLXRvcFwiLFxuICAgIFwiclwiOiBcIi1yaWdodFwiLFxuICAgIFwiYlwiOiBcIi1ib3R0b21cIixcbiAgICBcImxcIjogXCItbGVmdFwiLFxuICAgIFwiaFwiOiBcIi1sZWZ0XCIgXCItcmlnaHRcIixcbiAgICBcInZcIjogXCItdG9wXCIgXCItYm90dG9tXCIsXG4pICFkZWZhdWx0O1xuLy8gQGVuZC1zYXNzLWV4cG9ydC1zZWN0aW9uXG5cbi8vIEBzYXNzLWV4cG9ydC1zZWN0aW9uPVwic3BhY2luZ1NpemVzXCJcbiRzcGFjaW5nLXNpemVzOiAoXG4gICAgXCIteHhzbWFsbFwiOiAkR0xPQkFMLVNQQUNJTkctVU5JVC1YWFNNQUxMLFxuICAgIFwiLXhzbWFsbFwiOiAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwsXG4gICAgXCItc21hbGxcIjogJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEwsXG4gICAgbnVsbDogJEdMT0JBTC1TUEFDSU5HLVVOSVQsXG4gICAgXCItbGFyZ2VcIjogJEdMT0JBTC1TUEFDSU5HLVVOSVQtTEFSR0UsXG4gICAgXCIteGxhcmdlXCI6ICRHTE9CQUwtU1BBQ0lORy1VTklULVhMQVJHRSxcbiAgICBcIi1ub25lXCI6IDAsXG4pICFkZWZhdWx0O1xuLy8gQGVuZC1zYXNzLWV4cG9ydC1zZWN0aW9uXG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjU1BBQ0lOR1NcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIE1hcmdpbiBhbmQgcGFkZGluZyBoZWxwZXIgY2xhc3Nlcy4gVXNlIHRoZXNlIHRvIHR3ZWFrIGxheW91dCBvbiBhIG1pY3JvIGxldmVsLlxuICovXG5cbkBlYWNoICRwcm9wZXJ0eS1uYW1lc3BhY2UsICRwcm9wZXJ0eSBpbiAkc3BhY2luZy1wcm9wZXJ0aWVzIHtcblxuICAgIEBlYWNoICRkaXJlY3Rpb24tbmFtZXNwYWNlLCAkZGlyZWN0aW9uLXJ1bGVzIGluICRzcGFjaW5nLWRpcmVjdGlvbnMge1xuXG4gICAgICAgIEBlYWNoICRzaXplLW5hbWVzcGFjZSwgJHNpemUgaW4gJHNwYWNpbmctc2l6ZXMge1xuICAgICAgICAgICAgLnUtI3skcHJvcGVydHktbmFtZXNwYWNlfSN7JGRpcmVjdGlvbi1uYW1lc3BhY2V9I3skc2l6ZS1uYW1lc3BhY2V9IHtcblxuICAgICAgICAgICAgICAgIEBlYWNoICRkaXJlY3Rpb24gaW4gJGRpcmVjdGlvbi1ydWxlcyB7XG4gICAgICAgICAgICAgICAgICAgICN7JHByb3BlcnR5fSN7JGRpcmVjdGlvbn06ICRzaXplICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFJlc3BvbnNpdmUgc3BhY2luZ3NcbiAgICAgICAgICAgIEBlYWNoICRicC1uYW1lLCAkYnAtdmFsdWUgaW4gJEJSRUFLUE9JTlRTIHtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRicC1uYW1lfVwiKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgLnUtI3skcHJvcGVydHktbmFtZXNwYWNlfSN7JGRpcmVjdGlvbi1uYW1lc3BhY2V9I3skc2l6ZS1uYW1lc3BhY2V9XFxAI3skYnAtbmFtZX0ge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBAZWFjaCAkZGlyZWN0aW9uIGluICRkaXJlY3Rpb24tcnVsZXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICN7JHByb3BlcnR5fSN7JGRpcmVjdGlvbn06ICRzaXplICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjVEVYVC1BTElHTlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogSGVscGVyIGNsYXNzZXMgdG8gYWxpZ24gZWxlbWVudHMgZWl0aGVyIGxlZnQsIHJpZ2h0IG9yIGNlbnRlci5cbiAqL1xuXG4udS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbn1cblxuLnUtdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbn1cblxuLnUtdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG5cblxuLy8gTG9vcCBvdmVyIG91ciBicmVha3BvaW50cyBkZWZpbmVkIGluIF9zZXR0aW5ncy5yZXNwb25zaXZlLnNjc3NcbkBlYWNoICRicmVha3BvaW50IGluICRCUkVBS1BPSU5UUyB7XG5cbiAgICAvLyBHZXQgdGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQuXG4gICAgJGFsaWFzOiBudGgoJGJyZWFrcG9pbnQsIDEpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoXCI8PSN7JGFsaWFzfVwiKSB7XG5cbiAgICAgICAgLnUtdGV4dC1sZWZ0XFxAI3skYWxpYXN9IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC51LXRleHQtcmlnaHRcXEAjeyRhbGlhc30ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC51LXRleHQtY2VudGVyXFxAI3skYWxpYXN9IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShcIj4jeyRhbGlhc31cIikge1xuXG4gICAgICAgIC51LXRleHQtbGVmdFxcQCN7JGFsaWFzfS11cCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAudS10ZXh0LXJpZ2h0XFxAI3skYWxpYXN9LXVwIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAudS10ZXh0LWNlbnRlclxcQCN7JGFsaWFzfS11cCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjVEVYVC1UUkFOU0ZPUk1cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cbi8qKlxuICogVGhlIGZvbGxvd2luZyBjbGFzc2VzIHdpbGwgdHJhbnNmb3JtIHRleHQgaW50b1xuICogdXBwZXJjYXNlZCwgY2FwaXRhbGl6ZWQgb3IgbG93ZXJjYXNlZCBjaGFyYWN0ZXJzLlxuICovXG5cbi51LXRleHQtbG93ZXJjYXNlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlICFpbXBvcnRhbnQ7XG59XG5cbi51LXRleHQtdXBwZXJjYXNlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7XG59XG5cbi51LXRleHQtY2FwaXRhbGl6ZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemUgIWltcG9ydGFudDtcbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNURVhULVRSVU5DQVRFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBBIHV0aWxpdHkgY2xhc3MgdG8gdHJ1bmNhdGUgdGV4dCB3aXRoIFwiLi4uXCIgd2hlbiBjb250ZW50IGlzIHdpZGVyIHRoYW4gdGhlIGF2YWlsYWJsZSBzcGFjZS5cbiAqIFdvcmtzIG9ubHkgZm9yIHNpbmdsZS1saW5lIHRydW5jYXRpb25cbiAqL1xuXG4udS10ZXh0LXRydW5jYXRlIHtcbiAgICBAaW5jbHVkZSB0cnVuY2F0ZSgpO1xufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1RFWFQtV1JBUFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogQSB1dGlsaXR5IGNsYXNzIHRvIGVuZm9yY2UgdGV4dCB3cmFwcGluZy4gV2l0aCBoeXBoZW5zIGlmIHBvc3NpYmxlXG4gKiBvdGhlcndpc2Ugd2l0aCBoYXJkIHdvcmQtYnJlYWtzLlxuICovXG5cbi51LXRleHQtd3JhcCB7XG4gICAgQGluY2x1ZGUgZm9yY2UtdGV4dC13cmFwKCk7XG59XG4iLCIvLyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjVEVYVCBXUkFQXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8vIFdyYXAgdGV4dCBpZiBpdCBvdmVyZmxvd3MgdGhlIGF2YWlsYWJsZSBzcGFjZS5cbi8vLyBPdGhlciBtZXRob2RzIGxpa2Ugc29mdC1oeXBlbnMgKGAmc2h5O2ApIGFyZSBwcmVmZXJyZWQgYnV0IHRoaXMgZm9yY2VzXG4vLy8gdGhlIHdyYXAuIFRoZSBjb3JyZWN0IGh5cGhlbmF0aW9uIGlzIGRlcGVuZGluZyBvbiB0aGUgT1MsIGJyb3dzZXIgYW5kIGxhbmd1YWdlLlxuLy8vIElmIGh5cGhlbmF0aW9uIGlzIG5vdCBhcHBsaWVkLCBgd29yZC1icmVha2AgaXMgdXNlZCwgd3JhcHBpbmcgdGV4dCB3aXRob3V0XG4vLy8gdXNpbmcgaHlwaGVucy5cbkBtaXhpbiBmb3JjZS10ZXh0LXdyYXAoKSB7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICBoeXBoZW5zOiBhdXRvO1xufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1ZJU1VBTExZLUhJRERFTlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogQSB1dGlsaXR5IGNsYXNzIHRvIGhpZGUgZWxlbWVudHMgdmlzdWFsbHlcbiAqIGJ1dCBrZWVwIHRoZSBlbGVtZW50IHRleHQgYXZhaWxhYmxlIHRvIGJlIGFubm91bmNlZCBieSBhIHNjcmVlbiByZWFkZXIuXG4gKi9cblxuLnUtdmlzdWFsbHktaGlkZGVuIHtcbiAgICBAaW5jbHVkZSBhMTF5LWhpZGRlbigkaW1wb3J0YW50OiB0cnVlKTtcbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgI1dISVRFLVNQQUNFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnUtd3Mtbm93cmFwIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjV0lEVEhTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQHVzZSBcInNhc3M6bWF0aFwiIGFzICo7XG5cbiRjb2xzOiAoMSwgMiwgMywgNCwgNSwgNiwgMTIpICFkZWZhdWx0O1xuXG4vLyBHZW5lcmF0ZXMgd2lkdGhzIGNsYXNzZXMgYmFzZWQgb24gdGhlIGRlZmluZWQgYnJlYWtwb2ludHMsIG5hbWVkIHdpdGggdGhlXG4vLyBjb252ZW50aW9uIGAudS14L3lAYnJlYWtwb2ludGAuIFRoaXMgbWl4aW5zIHB1cnBvc2UgaXMganVzdCB0byBnZW5lcmF0ZSB0aGVcbi8vIHdpZHRocyBjbGFzc2VzIGluIHRoZSB1dGlsaXRpZXMgbGF5ZXIsIGhlbmNlIHRoaXMgZG9lc24ndCBuZWVkIHRvIGJlIHVzZWRcbi8vIGFueXdoZXJlIGVsc2UuIEluIG90aGVyIHdvcmRzOiBJZ25vcmUgdGhpcyBmaWxlIChleGNlcHQgc29tZXRoaW5nJ3Mgd3Jvbmcgb3Jcbi8vIG5lZWRzIHRvIGJlIGltcHJvdmVkKS5cbkBtaXhpbiBjb2xzKCRjb2x1bW5zKSB7XG4gICAgQGVhY2ggJGkgaW4gJGNvbHVtbnMge1xuICAgICAgICBAZm9yICRuIGZyb20gMSB0aHJvdWdoICRpIHtcblxuICAgICAgICAgICAgLnUtI3skbn1cXC8jeyRpfSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoZGl2KCRuLCAkaSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAZWFjaCAkYnJlYWtwb2ludCBpbiAkQlJFQUtQT0lOVFMge1xuICAgICAgICAkYnJlYWtwb2ludC1uYW1lOiBudGgoJGJyZWFrcG9pbnQsIDEpO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KCN7XCI8PVwiICsgJGJyZWFrcG9pbnQtbmFtZX0pIHtcbiAgICAgICAgICAgIEBlYWNoICRpIGluICRjb2x1bW5zIHtcbiAgICAgICAgICAgICAgICBAZm9yICRuIGZyb20gMSB0aHJvdWdoICRpIHtcblxuICAgICAgICAgICAgICAgICAgICAudS0jeyRufVxcLyN7JGl9XFxAI3skYnJlYWtwb2ludC1uYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZShkaXYoJG4sICRpKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vKipcbiAqIEEgc2VyaWVzIG9mIHdpZHRocyBoZWxwZXIgY2xhc3NlcyB0aGF0IHlvdSBjYW4gdXNlIHRvIHNpemUgdGhpbmdzIGxpa2UgZ3JpZFxuICogc3lzdGVtcy4gQ2xhc3NlcyB0YWtlIGEgZnJhY3Rpb24tbGlrZSBmb3JtYXQgKGUuZy4gYC51LTIvM2ApLlxuICovXG5cbi8vIFlvdSBjYW4gY29udHJvbCwgd2hpY2ggZGVub21pbmF0b3JzIGFyZSBnZW5lcmF0ZWQgYXMgY2xhc3NlcyBieSBwYXNzaW5nIHRoZW1cbi8vIGFzIGFyZ3VtZW50cyBpbiB0aGUgZm9sbG93aW5nIG1peGluLWNhbGw6XG5AaW5jbHVkZSBjb2xzKCRjb2xzKTtcbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNTUEFDSU5HLUlURU1cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLy8gQERFUFJFQ0FURUQ6IHJlbW92ZSBpbiB2MTVcblxuLnUtc3BhY2luZy1pdGVtLWZsdXNoIHtcbiAgICBAaW5jbHVkZSBzcGFjaW5nLWl0ZW0tZmx1c2goKTtcbn1cblxuLnUtc3BhY2luZy1pdGVtLWZsdXNoLWFsbCB7XG4gICAgQGluY2x1ZGUgc3BhY2luZy1pdGVtLWZsdXNoKCRiZXR3ZWVuLW1vZHVsZXM6IHRydWUpO1xufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI09WRVJGTE9XLUhJRERFTlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogQSB1dGlsaXR5IGNsYXNzIGZvciBjbGlwcGluZyB0aGUgY29udGVudCBhdCB0aGUgZWxlbWVudOKAmXMgcGFkZGluZyBib3guXG4gKiBObyBzY3JvbGxiYXJzIGFyZSBwcm92aWRlZCwgYW5kIG5vIHN1cHBvcnQgZm9yIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNjcm9sbFxuICogKHN1Y2ggYXMgYnkgZHJhZ2dpbmcgb3IgdXNpbmcgYSBzY3JvbGwgd2hlZWwpIGlzIGFsbG93ZWQuXG4gKi9cblxuLnUtb3ZlcmZsb3ctaGlkZGVuIHtcbiAgICBvdmVyZmxvdzogaW1wb3J0YW50KGhpZGRlbiwgdHJ1ZSk7XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQkFDS0dST1VORC1DT0xPUlNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZWFjaCAkX2FsaWFzLCAkX2NvbG9yIGluICRCQUNLR1JPVU5ELVVUSUxJVElFUyB7XG5cbiAgICBbZGF0YS10aGVtZT1cIiN7JF9hbGlhc31cIl0sXG4gICAgLnUtYmctI3skX2FsaWFzfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRfY29sb3IgIWltcG9ydGFudDtcbiAgICB9XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNURVhULUNPTE9SU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBlYWNoICRfYWxpYXMsICRfY29sb3IgaW4gJFRFWFQtQ09MT1ItVVRJTElUSUVTIHtcblxuICAgIC51LXRleHQtI3skX2FsaWFzfSB7XG4gICAgICAgIGNvbG9yOiAkX2NvbG9yICFpbXBvcnRhbnQ7XG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjVEVYVC1DT0xPUlNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udS10ZXh0LXN1YnRsZSB7XG4gICAgY29sb3I6ICRDT0xPUi1TVUJUTEUgIWltcG9ydGFudDtcbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNCTE9DSy1DRU5URVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udS1ibG9jay1jZW50ZXIge1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjRk9DVVMtUE9JTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gUHJvdmlkZSBmb2N1cyBwb2ludHMgZm9yIGltYWdlcyB1c2luZyBgb2JqZWN0LWZpdDogY292ZXJgIHRvIGNob3NlIGZyb20uIE1ha2Vcbi8vIHN1cmUgdG8gYWRoZXJlIHRvIGBbeS1heGlzXS1beC1heGlzXWAgbm90YXRpb24uXG4kZm9jdXMtcG9pbnRzOiAoXG4gICAgXCJ0b3AtY2VudGVyXCIsXG4gICAgXCJ0b3AtbGVmdFwiLFxuICAgIFwidG9wLXJpZ2h0XCIsXG4gICAgXCJjZW50ZXItbGVmdFwiLFxuICAgIFwiY2VudGVyLWNlbnRlclwiLFxuICAgIFwiY2VudGVyLXJpZ2h0XCIsXG4gICAgXCJib3R0b20tY2VudGVyXCIsXG4gICAgXCJib3R0b20tbGVmdFwiLFxuICAgIFwiYm90dG9tLXJpZ2h0XCIsXG4pICFkZWZhdWx0O1xuXG5AZWFjaCAkX2ZvY3VzLXBvaW50IGluICRmb2N1cy1wb2ludHMge1xuICAgICRfcG9zaXRpb246IHN0ci1yZXBsYWNlKCRfZm9jdXMtcG9pbnQsIFwiLVwiLCBcIiBcIik7XG5cbiAgICAudS1mb2N1cy1wb2ludC0jeyRfZm9jdXMtcG9pbnR9IHtcbiAgICAgICAgQGluY2x1ZGUgb2JqZWN0LWZpdChcbiAgICAgICAgICAgICRvYmplY3QtcG9zaXRpb246ICN7JF9wb3NpdGlvbn0sXG4gICAgICAgICAgICAkaW1wb3J0YW50OiB0cnVlXG4gICAgICAgICk7XG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQkFTRS1MSU5LXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBNYWtlcyBpdCBwb3NzaWJsZSB0byBzdHlsZSBhcmJpdHJhcnkgZWxlbWVudHMgYW5kIGNvbXBvbmVudHMgYXMgaW5saW5lIGxpbmsuXG4gKiBbMV0gUmVzZXQgYWxsIHBvc3NpYmxlIHZlbmRvciBidXR0b24gc3R5bGVzIGV4Y2VwdCBmb2N1cyBzdHlsZXMuXG4gKiBbMl0gQWRkIHRoZSBzaGFyZWQgbGluayBzdHlsZXMgdG8gdGhlIHV0aWxpdHkuXG4gKiBbM10gTWFrZSBzdXJlIHRvIGFsd2F5cyBpbmxpbmUgdGhlIGVsZW1lbnQuXG4gKiBbNF0gUmVzZXQgc3VibWl0IGlucHV0IHN0eWxlcy5cbiAqL1xuXG4udS1iYXNlLWxpbmsge1xuICAgIEBpbmNsdWRlIHJlc2V0LWJ1dHRvbigkcmVtb3ZlLWZvY3VzOiBmYWxzZSk7IC8qIFsxXSAqL1xuICAgIEBpbmNsdWRlIGJhc2UtbGluaygkaW1wb3J0YW50OiB0cnVlKTsgLyogWzJdICovXG5cbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsgLyogWzNdICovXG5cbiAgICAmW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgICBhcHBlYXJhbmNlOiBub25lOyAvKiBbNF0gKi9cbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIFs0XSAqL1xuICAgIH1cblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0hFQURJTkdTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBIZWFkaW5ncyAx4oCTNidzIGNvcnJlc3BvbmRpbmcgY2xhc3NlcyBmb3IgZG91YmxlLXN0cmFuZGVkIGhlYWRpbmcgaGllcmFyY2h5OlxuICogaHR0cHM6Ly9jc3N3aXphcmRyeS5jb20vMjAxMi8wMi9wcmFnbWF0aWMtcHJhY3RpY2FsLWZvbnQtc2l6aW5nLWluLWNzc1xuICpcbiAqIFVzZSB0aGVzZSBoZWxwZXIgY2xhc3NlcyB0byBjYXVzZSBoZWFkaW5nIGVsZW1lbnRzIHRvIGFkb3B0IHRoZSBmb250LXNpemUgb2ZcbiAqIGFub3RoZXIgcmVzcGVjdGl2ZSBoZWFkaW5nIGxldmVsLCBlLmcuOlxuICpcbiAqIGA8aDMgY2xhc3M9XCJ1LWgxXCI+U2VtYW50aWMgaDMsIGxvb2tzIGxpa2UgaDE8aDM+YFxuICpcbiAqL1xuXG4udS1oMSB7XG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICRmb250LXNpemU6ICAgJEdMT0JBTC1IRUFESU5HLUgxLUZPTlQtU0laRSxcbiAgICAgICAgJGxpbmUtaGVpZ2h0OiAkR0xPQkFMLUhFQURJTkctSDEtTElORS1IRUlHSFQsXG4gICAgICAgICRpbXBvcnRhbnQ6ICAgdHJ1ZVxuICAgICk7XG59XG5cbi51LWgyIHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgJGZvbnQtc2l6ZTogICAkR0xPQkFMLUhFQURJTkctSDItRk9OVC1TSVpFLFxuICAgICAgICAkbGluZS1oZWlnaHQ6ICRHTE9CQUwtSEVBRElORy1IMi1MSU5FLUhFSUdIVCxcbiAgICAgICAgJGltcG9ydGFudDogICB0cnVlXG4gICAgKTtcbn1cblxuLnUtaDMge1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKFxuICAgICAgICAkZm9udC1zaXplOiAgICRHTE9CQUwtSEVBRElORy1IMy1GT05ULVNJWkUsXG4gICAgICAgICRsaW5lLWhlaWdodDogJEdMT0JBTC1IRUFESU5HLUgzLUxJTkUtSEVJR0hULFxuICAgICAgICAkaW1wb3J0YW50OiAgIHRydWVcbiAgICApO1xufVxuXG4udS1oNCB7XG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250LXNpemUoXG4gICAgICAgICRmb250LXNpemU6ICAgJEdMT0JBTC1IRUFESU5HLUg0LUZPTlQtU0laRSxcbiAgICAgICAgJGxpbmUtaGVpZ2h0OiAkR0xPQkFMLUhFQURJTkctSDQtTElORS1IRUlHSFQsXG4gICAgICAgICRpbXBvcnRhbnQ6ICAgdHJ1ZVxuICAgICk7XG59XG5cbi51LWg1IHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnQtc2l6ZShcbiAgICAgICAgJGZvbnQtc2l6ZTogICAkR0xPQkFMLUhFQURJTkctSDUtRk9OVC1TSVpFLFxuICAgICAgICAkbGluZS1oZWlnaHQ6ICRHTE9CQUwtSEVBRElORy1INS1MSU5FLUhFSUdIVCxcbiAgICAgICAgJGltcG9ydGFudDogICB0cnVlXG4gICAgKTtcbn1cblxuLnUtaDYge1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKFxuICAgICAgICAkZm9udC1zaXplOiAgICRHTE9CQUwtSEVBRElORy1INi1GT05ULVNJWkUsXG4gICAgICAgICRsaW5lLWhlaWdodDogJEdMT0JBTC1IRUFESU5HLUg2LUxJTkUtSEVJR0hULFxuICAgICAgICAkaW1wb3J0YW50OiAgIHRydWVcbiAgICApO1xufVxuXG4udS1oMSxcbi51LWgyLFxuLnUtaDMsXG4udS1oNCxcbi51LWg1LFxuLnUtaDYge1xuXG4gICAgLy8gV2UgbmVlZCB0byBmb3JjZSB0aGUgYmxvY2sgaGVyZSBhcyBoMS1oNiBoYXZlIHRoZSBpbXBsaWNpdGx5LlxuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG9yZGVyL29yZGVyICovXG4gICAgQGluY2x1ZGUgaGVhZGluZy1iYXNlLXN0eWxlcyhcbiAgICAgICAgJGNvbG9yOiAgICAgICAgICAkR0xPQkFMLUhFQURJTkctQ09MT1IsXG4gICAgICAgICRmb250LWZhbWlseTogICAgJEdMT0JBTC1IRUFESU5HLUZPTlQtRkFNSUxZLFxuICAgICAgICAkZm9udC13ZWlnaHQ6ICAgICRHTE9CQUwtSEVBRElORy1GT05ULVdFSUdIVCxcbiAgICAgICAgJGxldHRlci1zcGFjaW5nOiAkR0xPQkFMLUhFQURJTkctTEVUVEVSLVNQQUNJTkcsXG4gICAgICAgICRtYXJnaW4tYm90dG9tOiAgJEdMT0JBTC1IRUFESU5HLU1BUkdJTi1CT1RUT00sXG4gICAgICAgICRoZWFkaW5nLXRoZW1lczogJEdMT0JBTC1IRUFESU5HLVRIRU1FUyxcbiAgICAgICAgJGltcG9ydGFudDogICAgICB0cnVlLFxuICAgICk7XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgI09CSkVDVC1GSVRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFsxXSBTY2FsZSB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiBhIHJlcGxhY2VtZW50IGVsZW1lbnQgKGUuZy4gYDxpbWc+YCBvclxuICogYDx2aWRlbz5gKSB0byBpdHMgY29udGFpbmVyIGRpbWVuc2lvbnMuXG4gKi9cblxuLnUtb2JqZWN0LWZpdC1jb250YWluIHtcbiAgICBAaW5jbHVkZSBvYmplY3QtZml0KCRvYmplY3QtZml0OiBjb250YWluLCAkaW1wb3J0YW50OiB0cnVlKTtcbiAgICB3aWR0aDogMTAwJTsgLyogWzFdICovXG4gICAgaGVpZ2h0OiAxMDAlOyAvKiBbMV0gKi9cbn1cblxuLnUtb2JqZWN0LWZpdC1jb3ZlciB7XG4gICAgQGluY2x1ZGUgb2JqZWN0LWZpdCgkb2JqZWN0LWZpdDogY292ZXIsICRpbXBvcnRhbnQ6IHRydWUpO1xuICAgIHdpZHRoOiAxMDAlOyAvKiBbMV0gKi9cbiAgICBoZWlnaHQ6IDEwMCU7IC8qIFsxXSAqL1xufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1NIQU1FXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBIYWNreSwgbmFzdHkgY29kZS4gVGhlc2UgYml0cyBoYXZlIHRvIGJlIHJlcGFpcmVkIVxuICpcbiAqIEd1aWRlbGluZXM6XG4gKiAtIFRpY2tldCBSZWZlcmVuY2VcbiAqIC0gRG9jdW1lbnQgd2h5IHRoaXMgZml4IGlzIG5lZWRlZFxuICovXG5cbi8qKlxuICogVGhpcyBDU1MgY3VzdG9tIHByb3BlcnR5IHByb3ZpZGVzIHRoZSBzZWxlY3RvcnMgbGlzdCBmb3IgYGZsb2F0LWdyaWQuanNgLlxuICogU2luY2UgdGhlIGxpc3QgaXMgb25seSBjb21wbGV0ZSBhZnRlciB0aGUgYGZsb2F0LWdyaWQtYXJlYWAgbWl4aW4gaGFzIGJlZW5cbiAqIHByb2Nlc3NlZCBmb3IgYWxsIEZsb2F0IEdyaWQgY29tcG9uZW50cywgd2UgY2hvb3NlICdfc2hhbWUuc2NzcycgYXMgaXRzXG4gKiBsb2NhdGlvbi5cbiAqL1xuLm8tZmxvYXQtZ3JpZCB7XG4gICAgLS1mbG9hdC1ncmlkLXNlbGVjdG9yczogI3skZmxvYXQtZ3JpZC1zZWxlY3RvcnN9O1xufVxuXG4vKipcbiAqIFdoZW4gYHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbGAgaXMgYXBwbGllZCwgdGhlIGZvY3VzIG91dGxpbmUgaXMgbm90IGRpc3BsYXllZFxuICogZm9yIGJ1dHRvbnMgdGhhdCBoYXZlIGJvcmRlciBhcHBsaWVkIChub3Qgc2Vjb25kYXJ5KS5cbiAqIFRoaXMgb25seSBvY2N1cnMgaW4gU2FmYXJpLlxuICogQnkgbGltaXRpbmcgdGhlIHRyYW5zaXRpb24gdG8gcmVsZXZhbnQgcHJvcGVydGllcyAoYmctY29sb3IsIHRyYW5zZm9ybSkgZml4ZXMgdGhlIGlzc3VlIGFzIHRoaXNcbiAqIGlzIHRoZSBtYWluIHByb3BlcnR5IHRoYXQgbmVlZHMgYSB0cmFuc2l0aW9uLlxuICovXG4uYy1idG4ge1xuICAgIEBpbmNsdWRlIHNhZmFyaS1vbmx5KCkge1xuICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLCB0cmFuc2Zvcm07XG4gICAgfVxufVxuXG4vKipcbiAqIFVzZSBwcm9wZXIgbGluZS1oZWlnaHQgZm9yIHRleHQuXG4gKiBsaW5lLWhlaWdodCB2YXJpYWJsZXMgYXJlIHVzZWQgZm9yIG11bHRpcGxlIHNpemUgYW5kIHNwYWNpbmcgY2FsY3VsYXRpb25zLFxuICogdGhlcmVmb3JlIGNhbid0IGJlIHVuaXRsZXNzLlxuICovXG4uYy1idG5fX3RleHQsXG4uYy1idXR0b24tZ3JvdXBfX2xhYmVsLFxuLmMtbGlua19fYm9keSB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi8qKlxuICogRW5zdXJlIHByb3BlciBjaXJjdWxhciBzaGFwZS5cbiAqIE90aGVyIHByb3BlcnRpZXMgdGhhdCBkZXRlcm1pbmUgdGhlIGhlaWdodCBkb2VzIG5vdCByZXN1bHQgaW4gMToxIHJhdGlvLlxuICovXG4uYy1idG4tLWFjdGlvbiB7XG4gICAgbWluLWhlaWdodDogdmFyKC0tYnV0dG9uLWhlaWdodCk7XG59XG5cbi8qKlxuICogRGlzYWJsZSBvdXRsaW5lIG9uIHRodW1iIHRvIGF2b2lkIHJlbmRlcmluZyBpc3N1ZXMgd2hpbGUgZHJhZ2dpbmcuXG4gKi9cbkBpbmNsdWRlIHNhZmFyaS1vbmx5KCkge1xuICAgIC5jLWN1c3RvbS1yYW5nZS1zbGlkZXJfX3RodW1iIHtcblxuICAgICAgICAuYy1jdXN0b20tcmFuZ2Utc2xpZGVyOm5vdChbZGlzYWJsZWRdKSAmOjpiZWZvcmUge1xuICAgICAgICAgICAgb3V0bGluZTogMCAhaW1wb3J0YW50OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGl0Y3NzL25vLWF0LWltcG9ydGFudCAqL1xuICAgICAgICB9XG5cbiAgICB9XG59XG4iXX0= */
