/*! uswds @version */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS and IE text size adjust after device orientation change,
 *    without disabling user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/**
 * Remove default margin.
 */
body {
  margin: 0; }

/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block; }

/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none; }

/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background-color: transparent; }

/**
 * Improve readability of focused elements when they are also in an
 * active/hover state.
 */
a:active,
a:hover {
  outline: 0; }

/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold; }

/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic; }

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/**
 * Address styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000; }

/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%; }

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* Embedded content
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9/10.
 */
img {
  border: 0; }

/**
 * Correct overflow not hidden in IE 9/10/11.
 */
svg:not(:root) {
  overflow: hidden; }

/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
  margin: 1em 40px; }

/**
 * Address differences between Firefox and other browsers.
 */
hr {
  box-sizing: content-box;
  height: 0; }

/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto; }

/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */ }

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible; }

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
button,
select {
  text-transform: none; }

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default; }

/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
input {
  line-height: normal; }

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  box-sizing: content-box;
  /* 2 */ }

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto; }

/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */
optgroup {
  font-weight: bold; }

/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

td,
th {
  padding: 0; }

/* stylelint-disable at-rule-empty-line-before */
@font-face {
  font-family: "Source Sans Pro";
  font-style: normal;
  font-weight: 300;
  src: url("../vendor/uswds/fonts/sourcesanspro-light-webfont.eot?#iefix") format("embedded-opentype"), url("../vendor/uswds/fonts/sourcesanspro-light-webfont.woff2") format("woff2"), url("../vendor/uswds/fonts/sourcesanspro-light-webfont.woff") format("woff"), url("../vendor/uswds/fonts/sourcesanspro-light-webfont.ttf") format("truetype"); }

@font-face {
  font-family: "Source Sans Pro";
  font-style: normal;
  font-weight: 400;
  src: url("../vendor/uswds/fonts/sourcesanspro-regular-webfont.eot?#iefix") format("embedded-opentype"), url("../vendor/uswds/fonts/sourcesanspro-regular-webfont.woff2") format("woff2"), url("../vendor/uswds/fonts/sourcesanspro-regular-webfont.woff") format("woff"), url("../vendor/uswds/fonts/sourcesanspro-regular-webfont.ttf") format("truetype"); }

@font-face {
  font-family: "Source Sans Pro";
  font-style: italic;
  font-weight: 400;
  src: url("../vendor/uswds/fonts/sourcesanspro-italic-webfont.eot?#iefix") format("embedded-opentype"), url("../vendor/uswds/fonts/sourcesanspro-italic-webfont.woff2") format("woff2"), url("../vendor/uswds/fonts/sourcesanspro-italic-webfont.woff") format("woff"), url("../vendor/uswds/fonts/sourcesanspro-italic-webfont.ttf") format("truetype"); }

@font-face {
  font-family: "Source Sans Pro";
  font-style: normal;
  font-weight: 700;
  src: url("../vendor/uswds/fonts/sourcesanspro-bold-webfont.eot?#iefix") format("embedded-opentype"), url("../vendor/uswds/fonts/sourcesanspro-bold-webfont.woff2") format("woff2"), url("../vendor/uswds/fonts/sourcesanspro-bold-webfont.woff") format("woff"), url("../vendor/uswds/fonts/sourcesanspro-bold-webfont.ttf") format("truetype"); }

@font-face {
  font-family: "Merriweather";
  font-style: normal;
  font-weight: 300;
  src: url("../vendor/uswds/fonts/merriweather-light-webfont.eot?#iefix") format("embedded-opentype"), url("../vendor/uswds/fonts/merriweather-light-webfont.woff2") format("woff2"), url("../vendor/uswds/fonts/merriweather-light-webfont.woff") format("woff"), url("../vendor/uswds/fonts/merriweather-light-webfont.ttf") format("truetype"); }

@font-face {
  font-family: "Merriweather";
  font-style: normal;
  font-weight: 400;
  src: url("../vendor/uswds/fonts/merriweather-regular-webfont.eot?#iefix") format("embedded-opentype"), url("../vendor/uswds/fonts/merriweather-regular-webfont.woff2") format("woff2"), url("../vendor/uswds/fonts/merriweather-regular-webfont.woff") format("woff"), url("../vendor/uswds/fonts/merriweather-regular-webfont.ttf") format("truetype"); }

@font-face {
  font-family: "Merriweather";
  font-style: italic;
  font-weight: 400;
  src: url("../vendor/uswds/fonts/merriweather-italic-webfont.eot?#iefix") format("embedded-opentype"), url("../vendor/uswds/fonts/merriweather-italic-webfont.woff2") format("woff2"), url("../vendor/uswds/fonts/merriweather-italic-webfont.woff") format("woff"), url("../vendor/uswds/fonts/merriweather-italic-webfont.ttf") format("truetype"); }

@font-face {
  font-family: "Merriweather";
  font-style: normal;
  font-weight: 700;
  src: url("../vendor/uswds/fonts/merriweather-bold-webfont.eot?#iefix") format("embedded-opentype"), url("../vendor/uswds/fonts/merriweather-bold-webfont.woff2") format("woff2"), url("../vendor/uswds/fonts/merriweather-bold-webfont.woff") format("woff"), url("../vendor/uswds/fonts/merriweather-bold-webfont.ttf") format("truetype"); }

/* stylelint-enable */
.usa-grid,
.usa-grid-full {
  max-width: 1040px;
  margin-left: auto;
  margin-right: auto; }
  .usa-grid::after,
  .usa-grid-full::after {
    clear: both;
    content: "";
    display: block; }

.usa-grid {
  padding-right: 1.5rem;
  padding-left: 1.5rem; }
  @media screen and (min-width: 600px) {
    .usa-grid {
      padding-right: 3rem;
      padding-left: 3rem; } }

.usa-grid-full {
  padding: 0; }

@media screen and (min-width: 600px) {
  .usa-width-one-whole {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 100%; }
    .usa-width-one-whole:last-child {
      margin-right: 0; }
  .usa-width-one-half {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 47.58542%; }
    .usa-width-one-half:last-child {
      margin-right: 0; }
  .usa-width-one-third {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 30.11389%; }
    .usa-width-one-third:last-child {
      margin-right: 0; }
  .usa-width-two-thirds {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 65.05695%; }
    .usa-width-two-thirds:last-child {
      margin-right: 0; }
  .usa-width-one-fourth {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 47.58542%; }
    .usa-width-one-fourth:last-child {
      margin-right: 0; }
    .usa-width-one-fourth:nth-child(2n) {
      margin-right: 0; }
  .usa-width-three-fourths {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 100%; }
    .usa-width-three-fourths:last-child {
      margin-right: 0; }
  .usa-width-one-sixth {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 30.11389%; }
    .usa-width-one-sixth:last-child {
      margin-right: 0; }
    .usa-width-one-sixth:nth-child(3n) {
      margin-right: 0; }
  .usa-width-five-sixths {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 65.05695%; }
    .usa-width-five-sixths:last-child {
      margin-right: 0; }
  .usa-width-one-twelfth {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 30.11389%; }
    .usa-width-one-twelfth:last-child {
      margin-right: 0; }
    .usa-width-one-twelfth:nth-child(3n) {
      margin-right: 0; }
  .usa-width-five-twelfths {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 30.11389%; }
    .usa-width-five-twelfths:last-child {
      margin-right: 0; }
  .usa-width-seven-twelfths {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 65.05695%; }
    .usa-width-seven-twelfths:last-child {
      margin-right: 0; } }

@media screen and (min-width: 1201px) {
  .usa-width-one-whole {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 100%; }
    .usa-width-one-whole:last-child {
      margin-right: 0; }
  .usa-width-one-half {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 48.82117%; }
    .usa-width-one-half:last-child {
      margin-right: 0; }
  .usa-width-one-third {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 31.76157%; }
    .usa-width-one-third:last-child {
      margin-right: 0; }
  .usa-width-two-thirds {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 65.88078%; }
    .usa-width-two-thirds:last-child {
      margin-right: 0; }
  .usa-width-one-fourth {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 23.23176%; }
    .usa-width-one-fourth:last-child {
      margin-right: 0; }
    .usa-width-one-fourth:nth-child(2n) {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 23.23176%; }
      .usa-width-one-fourth:nth-child(2n):last-child {
        margin-right: 0; }
    .usa-width-one-fourth:nth-child(4n) {
      margin-right: 0; }
  .usa-width-three-fourths {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 74.41059%; }
    .usa-width-three-fourths:last-child {
      margin-right: 0; }
  .usa-width-one-sixth {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 14.70196%; }
    .usa-width-one-sixth:last-child {
      margin-right: 0; }
    .usa-width-one-sixth:nth-child(3n) {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 14.70196%; }
      .usa-width-one-sixth:nth-child(3n):last-child {
        margin-right: 0; }
    .usa-width-one-sixth:nth-child(6n) {
      margin-right: 0; }
  .usa-width-five-sixths {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 82.94039%; }
    .usa-width-five-sixths:last-child {
      margin-right: 0; }
  .usa-width-one-twelfth {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 6.17215%; }
    .usa-width-one-twelfth:last-child {
      margin-right: 0; }
    .usa-width-one-twelfth:nth-child(3n) {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 6.17215%; }
      .usa-width-one-twelfth:nth-child(3n):last-child {
        margin-right: 0; }
    .usa-width-one-twelfth:nth-child(12n) {
      margin-right: 0; }
  .usa-width-five-twelfths {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 40.29137%; }
    .usa-width-five-twelfths:last-child {
      margin-right: 0; }
  .usa-width-seven-twelfths {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 57.35098%; }
    .usa-width-seven-twelfths:last-child {
      margin-right: 0; } }

.usa-end-row {
  margin-right: 0; }

.usa-offset-one-twelfth {
  margin-left: 8.5298%; }

.usa-offset-one-sixth {
  margin-left: 17.05961%; }

.usa-offset-one-fourth {
  margin-left: 25.58941%; }

.usa-offset-one-third {
  margin-left: 34.11922%; }

.usa-offset-five-twelfths {
  margin-left: 42.64902%; }

.usa-offset-one-half {
  margin-left: 51.17883%; }

.usa-offset-seven-twelfths {
  margin-left: 59.70863%; }

.usa-offset-two-thirds {
  margin-left: 68.23843%; }

.usa-offset-three-fourths {
  margin-left: 76.76824%; }

.usa-offset-five-sixths {
  margin-left: 85.29804%; }

.usa-offset-eleven-twelfths {
  margin-left: 93.82785%; }

.usa-sr-only {
  position: absolute;
  left: -999em; }

html {
  box-sizing: border-box; }

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

body {
  background-color: #ffffff;
  color: #212121;
  overflow-x: hidden; }

.lt-ie9 * {
  filter: none !important;
  /* stylelint-disable-line declaration-no-important */ }

[hidden] {
  display: none !important;
  /* stylelint-disable-line declaration-no-important */ }

*:focus,
.usa-focus {
  outline: 2px dotted #aeb0b5;
  outline-offset: 3px; }

/* stylelint-disable selector-no-qualifying-type */
.usa-button,
.usa-button-primary,
.usa-button:visited,
.usa-button-primary:visited,
button,
[type=button],
[type=submit],
[type=reset],
[type=image] {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  margin-top: 0.5em;
  margin-right: 0.5em;
  margin-bottom: 0.5em;
  appearance: none;
  background-color: #0071bc;
  border: 0;
  border-radius: 5px;
  color: #ffffff;
  cursor: pointer;
  display: inline-block;
  font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 1;
  padding: 1rem 2rem;
  text-align: center;
  text-decoration: none;
  width: 100%; }
  @media screen and (min-width: 481px) {
    .usa-button,
    .usa-button-primary,
    .usa-button:visited,
    .usa-button-primary:visited,
    button,
    [type=button],
    [type=submit],
    [type=reset],
    [type=image] {
      width: auto; } }
  .usa-button:hover, .usa-button.usa-button-hover,
  .usa-button-primary:hover,
  .usa-button-primary.usa-button-hover,
  .usa-button:visited:hover,
  .usa-button:visited.usa-button-hover,
  .usa-button-primary:visited:hover,
  .usa-button-primary:visited.usa-button-hover,
  button:hover,
  button.usa-button-hover,
  [type=button]:hover,
  [type=button].usa-button-hover,
  [type=submit]:hover,
  [type=submit].usa-button-hover,
  [type=reset]:hover,
  [type=reset].usa-button-hover,
  [type=image]:hover,
  [type=image].usa-button-hover {
    background-color: #205493;
    border-bottom: 0;
    color: #ffffff;
    text-decoration: none; }
  .usa-button:active, .usa-button.usa-button-active,
  .usa-button-primary:active,
  .usa-button-primary.usa-button-active,
  .usa-button:visited:active,
  .usa-button:visited.usa-button-active,
  .usa-button-primary:visited:active,
  .usa-button-primary:visited.usa-button-active,
  button:active,
  button.usa-button-active,
  [type=button]:active,
  [type=button].usa-button-active,
  [type=submit]:active,
  [type=submit].usa-button-active,
  [type=reset]:active,
  [type=reset].usa-button-active,
  [type=image]:active,
  [type=image].usa-button-active {
    background-color: #112e51; }
  .usa-button.usa-button-primary-alt,
  .usa-button-primary.usa-button-primary-alt,
  .usa-button:visited.usa-button-primary-alt,
  .usa-button-primary:visited.usa-button-primary-alt,
  button.usa-button-primary-alt,
  [type=button].usa-button-primary-alt,
  [type=submit].usa-button-primary-alt,
  [type=reset].usa-button-primary-alt,
  [type=image].usa-button-primary-alt {
    background-color: #02bfe7;
    color: #212121; }
    .usa-button.usa-button-primary-alt:hover, .usa-button.usa-button-primary-alt.usa-button-hover,
    .usa-button-primary.usa-button-primary-alt:hover,
    .usa-button-primary.usa-button-primary-alt.usa-button-hover,
    .usa-button:visited.usa-button-primary-alt:hover,
    .usa-button:visited.usa-button-primary-alt.usa-button-hover,
    .usa-button-primary:visited.usa-button-primary-alt:hover,
    .usa-button-primary:visited.usa-button-primary-alt.usa-button-hover,
    button.usa-button-primary-alt:hover,
    button.usa-button-primary-alt.usa-button-hover,
    [type=button].usa-button-primary-alt:hover,
    [type=button].usa-button-primary-alt.usa-button-hover,
    [type=submit].usa-button-primary-alt:hover,
    [type=submit].usa-button-primary-alt.usa-button-hover,
    [type=reset].usa-button-primary-alt:hover,
    [type=reset].usa-button-primary-alt.usa-button-hover,
    [type=image].usa-button-primary-alt:hover,
    [type=image].usa-button-primary-alt.usa-button-hover {
      background-color: #00a6d2; }
    .usa-button.usa-button-primary-alt:active, .usa-button.usa-button-primary-alt.usa-button-active,
    .usa-button-primary.usa-button-primary-alt:active,
    .usa-button-primary.usa-button-primary-alt.usa-button-active,
    .usa-button:visited.usa-button-primary-alt:active,
    .usa-button:visited.usa-button-primary-alt.usa-button-active,
    .usa-button-primary:visited.usa-button-primary-alt:active,
    .usa-button-primary:visited.usa-button-primary-alt.usa-button-active,
    button.usa-button-primary-alt:active,
    button.usa-button-primary-alt.usa-button-active,
    [type=button].usa-button-primary-alt:active,
    [type=button].usa-button-primary-alt.usa-button-active,
    [type=submit].usa-button-primary-alt:active,
    [type=submit].usa-button-primary-alt.usa-button-active,
    [type=reset].usa-button-primary-alt:active,
    [type=reset].usa-button-primary-alt.usa-button-active,
    [type=image].usa-button-primary-alt:active,
    [type=image].usa-button-primary-alt.usa-button-active {
      background-color: #046b99;
      color: #ffffff; }
  .usa-button.usa-button-secondary,
  .usa-button-primary.usa-button-secondary,
  .usa-button:visited.usa-button-secondary,
  .usa-button-primary:visited.usa-button-secondary,
  button.usa-button-secondary,
  [type=button].usa-button-secondary,
  [type=submit].usa-button-secondary,
  [type=reset].usa-button-secondary,
  [type=image].usa-button-secondary {
    background-color: #ffffff;
    box-shadow: inset 0 0 0 2px #0071bc;
    color: #0071bc; }
    .usa-button.usa-button-secondary:hover, .usa-button.usa-button-secondary.usa-button-hover,
    .usa-button-primary.usa-button-secondary:hover,
    .usa-button-primary.usa-button-secondary.usa-button-hover,
    .usa-button:visited.usa-button-secondary:hover,
    .usa-button:visited.usa-button-secondary.usa-button-hover,
    .usa-button-primary:visited.usa-button-secondary:hover,
    .usa-button-primary:visited.usa-button-secondary.usa-button-hover,
    button.usa-button-secondary:hover,
    button.usa-button-secondary.usa-button-hover,
    [type=button].usa-button-secondary:hover,
    [type=button].usa-button-secondary.usa-button-hover,
    [type=submit].usa-button-secondary:hover,
    [type=submit].usa-button-secondary.usa-button-hover,
    [type=reset].usa-button-secondary:hover,
    [type=reset].usa-button-secondary.usa-button-hover,
    [type=image].usa-button-secondary:hover,
    [type=image].usa-button-secondary.usa-button-hover {
      box-shadow: inset 0 0 0 2px #205493;
      color: #205493; }
    .usa-button.usa-button-secondary:active, .usa-button.usa-button-secondary.usa-button-active,
    .usa-button-primary.usa-button-secondary:active,
    .usa-button-primary.usa-button-secondary.usa-button-active,
    .usa-button:visited.usa-button-secondary:active,
    .usa-button:visited.usa-button-secondary.usa-button-active,
    .usa-button-primary:visited.usa-button-secondary:active,
    .usa-button-primary:visited.usa-button-secondary.usa-button-active,
    button.usa-button-secondary:active,
    button.usa-button-secondary.usa-button-active,
    [type=button].usa-button-secondary:active,
    [type=button].usa-button-secondary.usa-button-active,
    [type=submit].usa-button-secondary:active,
    [type=submit].usa-button-secondary.usa-button-active,
    [type=reset].usa-button-secondary:active,
    [type=reset].usa-button-secondary.usa-button-active,
    [type=image].usa-button-secondary:active,
    [type=image].usa-button-secondary.usa-button-active {
      box-shadow: inset 0 0 0 2px #112e51;
      color: #112e51; }
  .usa-button.usa-button-secondary-inverse, .usa-button.usa-button-outline-inverse,
  .usa-button-primary.usa-button-secondary-inverse,
  .usa-button-primary.usa-button-outline-inverse,
  .usa-button:visited.usa-button-secondary-inverse,
  .usa-button:visited.usa-button-outline-inverse,
  .usa-button-primary:visited.usa-button-secondary-inverse,
  .usa-button-primary:visited.usa-button-outline-inverse,
  button.usa-button-secondary-inverse,
  button.usa-button-outline-inverse,
  [type=button].usa-button-secondary-inverse,
  [type=button].usa-button-outline-inverse,
  [type=submit].usa-button-secondary-inverse,
  [type=submit].usa-button-outline-inverse,
  [type=reset].usa-button-secondary-inverse,
  [type=reset].usa-button-outline-inverse,
  [type=image].usa-button-secondary-inverse,
  [type=image].usa-button-outline-inverse {
    background: transparent;
    box-shadow: inset 0 0 0 2px #ffffff;
    color: #ffffff; }
    .usa-button.usa-button-secondary-inverse:hover, .usa-button.usa-button-secondary-inverse.usa-button-hover, .usa-button.usa-button-outline-inverse:hover, .usa-button.usa-button-outline-inverse.usa-button-hover,
    .usa-button-primary.usa-button-secondary-inverse:hover,
    .usa-button-primary.usa-button-secondary-inverse.usa-button-hover,
    .usa-button-primary.usa-button-outline-inverse:hover,
    .usa-button-primary.usa-button-outline-inverse.usa-button-hover,
    .usa-button:visited.usa-button-secondary-inverse:hover,
    .usa-button:visited.usa-button-secondary-inverse.usa-button-hover,
    .usa-button:visited.usa-button-outline-inverse:hover,
    .usa-button:visited.usa-button-outline-inverse.usa-button-hover,
    .usa-button-primary:visited.usa-button-secondary-inverse:hover,
    .usa-button-primary:visited.usa-button-secondary-inverse.usa-button-hover,
    .usa-button-primary:visited.usa-button-outline-inverse:hover,
    .usa-button-primary:visited.usa-button-outline-inverse.usa-button-hover,
    button.usa-button-secondary-inverse:hover,
    button.usa-button-secondary-inverse.usa-button-hover,
    button.usa-button-outline-inverse:hover,
    button.usa-button-outline-inverse.usa-button-hover,
    [type=button].usa-button-secondary-inverse:hover,
    [type=button].usa-button-secondary-inverse.usa-button-hover,
    [type=button].usa-button-outline-inverse:hover,
    [type=button].usa-button-outline-inverse.usa-button-hover,
    [type=submit].usa-button-secondary-inverse:hover,
    [type=submit].usa-button-secondary-inverse.usa-button-hover,
    [type=submit].usa-button-outline-inverse:hover,
    [type=submit].usa-button-outline-inverse.usa-button-hover,
    [type=reset].usa-button-secondary-inverse:hover,
    [type=reset].usa-button-secondary-inverse.usa-button-hover,
    [type=reset].usa-button-outline-inverse:hover,
    [type=reset].usa-button-outline-inverse.usa-button-hover,
    [type=image].usa-button-secondary-inverse:hover,
    [type=image].usa-button-secondary-inverse.usa-button-hover,
    [type=image].usa-button-outline-inverse:hover,
    [type=image].usa-button-outline-inverse.usa-button-hover {
      box-shadow: inset 0 0 0 2px #d6d7d9;
      color: #d6d7d9; }
    .usa-button.usa-button-secondary-inverse:active, .usa-button.usa-button-secondary-inverse.usa-button-active, .usa-button.usa-button-outline-inverse:active, .usa-button.usa-button-outline-inverse.usa-button-active,
    .usa-button-primary.usa-button-secondary-inverse:active,
    .usa-button-primary.usa-button-secondary-inverse.usa-button-active,
    .usa-button-primary.usa-button-outline-inverse:active,
    .usa-button-primary.usa-button-outline-inverse.usa-button-active,
    .usa-button:visited.usa-button-secondary-inverse:active,
    .usa-button:visited.usa-button-secondary-inverse.usa-button-active,
    .usa-button:visited.usa-button-outline-inverse:active,
    .usa-button:visited.usa-button-outline-inverse.usa-button-active,
    .usa-button-primary:visited.usa-button-secondary-inverse:active,
    .usa-button-primary:visited.usa-button-secondary-inverse.usa-button-active,
    .usa-button-primary:visited.usa-button-outline-inverse:active,
    .usa-button-primary:visited.usa-button-outline-inverse.usa-button-active,
    button.usa-button-secondary-inverse:active,
    button.usa-button-secondary-inverse.usa-button-active,
    button.usa-button-outline-inverse:active,
    button.usa-button-outline-inverse.usa-button-active,
    [type=button].usa-button-secondary-inverse:active,
    [type=button].usa-button-secondary-inverse.usa-button-active,
    [type=button].usa-button-outline-inverse:active,
    [type=button].usa-button-outline-inverse.usa-button-active,
    [type=submit].usa-button-secondary-inverse:active,
    [type=submit].usa-button-secondary-inverse.usa-button-active,
    [type=submit].usa-button-outline-inverse:active,
    [type=submit].usa-button-outline-inverse.usa-button-active,
    [type=reset].usa-button-secondary-inverse:active,
    [type=reset].usa-button-secondary-inverse.usa-button-active,
    [type=reset].usa-button-outline-inverse:active,
    [type=reset].usa-button-outline-inverse.usa-button-active,
    [type=image].usa-button-secondary-inverse:active,
    [type=image].usa-button-secondary-inverse.usa-button-active,
    [type=image].usa-button-outline-inverse:active,
    [type=image].usa-button-outline-inverse.usa-button-active {
      box-shadow: inset 0 0 0 2px #aeb0b5;
      color: #d6d7d9; }
  .usa-button.usa-button-gray,
  .usa-button-primary.usa-button-gray,
  .usa-button:visited.usa-button-gray,
  .usa-button-primary:visited.usa-button-gray,
  button.usa-button-gray,
  [type=button].usa-button-gray,
  [type=submit].usa-button-gray,
  [type=reset].usa-button-gray,
  [type=image].usa-button-gray {
    background-color: #5b616b; }
    .usa-button.usa-button-gray:hover, .usa-button.usa-button-gray.usa-button-hover,
    .usa-button-primary.usa-button-gray:hover,
    .usa-button-primary.usa-button-gray.usa-button-hover,
    .usa-button:visited.usa-button-gray:hover,
    .usa-button:visited.usa-button-gray.usa-button-hover,
    .usa-button-primary:visited.usa-button-gray:hover,
    .usa-button-primary:visited.usa-button-gray.usa-button-hover,
    button.usa-button-gray:hover,
    button.usa-button-gray.usa-button-hover,
    [type=button].usa-button-gray:hover,
    [type=button].usa-button-gray.usa-button-hover,
    [type=submit].usa-button-gray:hover,
    [type=submit].usa-button-gray.usa-button-hover,
    [type=reset].usa-button-gray:hover,
    [type=reset].usa-button-gray.usa-button-hover,
    [type=image].usa-button-gray:hover,
    [type=image].usa-button-gray.usa-button-hover {
      background-color: #323a45; }
    .usa-button.usa-button-gray:active, .usa-button.usa-button-gray.usa-button-active,
    .usa-button-primary.usa-button-gray:active,
    .usa-button-primary.usa-button-gray.usa-button-active,
    .usa-button:visited.usa-button-gray:active,
    .usa-button:visited.usa-button-gray.usa-button-active,
    .usa-button-primary:visited.usa-button-gray:active,
    .usa-button-primary:visited.usa-button-gray.usa-button-active,
    button.usa-button-gray:active,
    button.usa-button-gray.usa-button-active,
    [type=button].usa-button-gray:active,
    [type=button].usa-button-gray.usa-button-active,
    [type=submit].usa-button-gray:active,
    [type=submit].usa-button-gray.usa-button-active,
    [type=reset].usa-button-gray:active,
    [type=reset].usa-button-gray.usa-button-active,
    [type=image].usa-button-gray:active,
    [type=image].usa-button-gray.usa-button-active {
      background-color: #212121; }
  .usa-button.usa-button-red,
  .usa-button-primary.usa-button-red,
  .usa-button:visited.usa-button-red,
  .usa-button-primary:visited.usa-button-red,
  button.usa-button-red,
  [type=button].usa-button-red,
  [type=submit].usa-button-red,
  [type=reset].usa-button-red,
  [type=image].usa-button-red {
    background-color: #e31c3d; }
    .usa-button.usa-button-red:hover, .usa-button.usa-button-red.usa-button-hover,
    .usa-button-primary.usa-button-red:hover,
    .usa-button-primary.usa-button-red.usa-button-hover,
    .usa-button:visited.usa-button-red:hover,
    .usa-button:visited.usa-button-red.usa-button-hover,
    .usa-button-primary:visited.usa-button-red:hover,
    .usa-button-primary:visited.usa-button-red.usa-button-hover,
    button.usa-button-red:hover,
    button.usa-button-red.usa-button-hover,
    [type=button].usa-button-red:hover,
    [type=button].usa-button-red.usa-button-hover,
    [type=submit].usa-button-red:hover,
    [type=submit].usa-button-red.usa-button-hover,
    [type=reset].usa-button-red:hover,
    [type=reset].usa-button-red.usa-button-hover,
    [type=image].usa-button-red:hover,
    [type=image].usa-button-red.usa-button-hover {
      background-color: #cd2026; }
    .usa-button.usa-button-red:active, .usa-button.usa-button-red.usa-button-active,
    .usa-button-primary.usa-button-red:active,
    .usa-button-primary.usa-button-red.usa-button-active,
    .usa-button:visited.usa-button-red:active,
    .usa-button:visited.usa-button-red.usa-button-active,
    .usa-button-primary:visited.usa-button-red:active,
    .usa-button-primary:visited.usa-button-red.usa-button-active,
    button.usa-button-red:active,
    button.usa-button-red.usa-button-active,
    [type=button].usa-button-red:active,
    [type=button].usa-button-red.usa-button-active,
    [type=submit].usa-button-red:active,
    [type=submit].usa-button-red.usa-button-active,
    [type=reset].usa-button-red:active,
    [type=reset].usa-button-red.usa-button-active,
    [type=image].usa-button-red:active,
    [type=image].usa-button-red.usa-button-active {
      background-color: #981b1e; }
  .usa-button.usa-button-big,
  .usa-button-primary.usa-button-big,
  .usa-button:visited.usa-button-big,
  .usa-button-primary:visited.usa-button-big,
  button.usa-button-big,
  [type=button].usa-button-big,
  [type=submit].usa-button-big,
  [type=reset].usa-button-big,
  [type=image].usa-button-big {
    border-radius: 8px;
    font-size: 2.4rem;
    padding: 1.5rem 3rem; }
  .usa-button:disabled,
  .usa-button-primary:disabled,
  .usa-button:visited:disabled,
  .usa-button-primary:visited:disabled,
  button:disabled,
  [type=button]:disabled,
  [type=submit]:disabled,
  [type=reset]:disabled,
  [type=image]:disabled {
    background-color: #d6d7d9;
    pointer-events: none; }
    .usa-button:disabled:hover, .usa-button:disabled.usa-button-hover, .usa-button:disabled:active, .usa-button:disabled.usa-button-active, .usa-button:disabled:focus, .usa-button:disabled.usa-focus,
    .usa-button-primary:disabled:hover,
    .usa-button-primary:disabled.usa-button-hover,
    .usa-button-primary:disabled:active,
    .usa-button-primary:disabled.usa-button-active,
    .usa-button-primary:disabled:focus,
    .usa-button-primary:disabled.usa-focus,
    .usa-button:visited:disabled:hover,
    .usa-button:visited:disabled.usa-button-hover,
    .usa-button:visited:disabled:active,
    .usa-button:visited:disabled.usa-button-active,
    .usa-button:visited:disabled:focus,
    .usa-button:visited:disabled.usa-focus,
    .usa-button-primary:visited:disabled:hover,
    .usa-button-primary:visited:disabled.usa-button-hover,
    .usa-button-primary:visited:disabled:active,
    .usa-button-primary:visited:disabled.usa-button-active,
    .usa-button-primary:visited:disabled:focus,
    .usa-button-primary:visited:disabled.usa-focus,
    button:disabled:hover,
    button:disabled.usa-button-hover,
    button:disabled:active,
    button:disabled.usa-button-active,
    button:disabled:focus,
    button:disabled.usa-focus,
    [type=button]:disabled:hover,
    [type=button]:disabled.usa-button-hover,
    [type=button]:disabled:active,
    [type=button]:disabled.usa-button-active,
    [type=button]:disabled:focus,
    [type=button]:disabled.usa-focus,
    [type=submit]:disabled:hover,
    [type=submit]:disabled.usa-button-hover,
    [type=submit]:disabled:active,
    [type=submit]:disabled.usa-button-active,
    [type=submit]:disabled:focus,
    [type=submit]:disabled.usa-focus,
    [type=reset]:disabled:hover,
    [type=reset]:disabled.usa-button-hover,
    [type=reset]:disabled:active,
    [type=reset]:disabled.usa-button-active,
    [type=reset]:disabled:focus,
    [type=reset]:disabled.usa-focus,
    [type=image]:disabled:hover,
    [type=image]:disabled.usa-button-hover,
    [type=image]:disabled:active,
    [type=image]:disabled.usa-button-active,
    [type=image]:disabled:focus,
    [type=image]:disabled.usa-focus {
      background-color: #d6d7d9;
      border: 0;
      box-shadow: none; }

/* stylelint-disable */
.usa-button-disabled {
  background-color: #d6d7d9;
  pointer-events: none; }
  .usa-button-disabled:hover, .usa-button-disabled.usa-button-hover, .usa-button-disabled:active, .usa-button-disabled.usa-button-active, .usa-button-disabled:focus, .usa-button-disabled.usa-focus {
    background-color: #d6d7d9;
    border: 0;
    box-shadow: none; }

.usa-button-secondary-disabled,
.usa-button-secondary-inverse-disabled,
.usa-button-secondary:disabled,
.usa-button-secondary-inverse:disabled,
.usa-button-outline-inverse:disabled {
  box-shadow: inset 0 0 0 2px #d6d7d9;
  pointer-events: none;
  color: #d6d7d9; }
  .usa-button-secondary-disabled:hover, .usa-button-secondary-disabled.usa-button-hover, .usa-button-secondary-disabled:active, .usa-button-secondary-disabled.usa-button-active, .usa-button-secondary-disabled:focus, .usa-button-secondary-disabled.usa-focus,
  .usa-button-secondary-inverse-disabled:hover,
  .usa-button-secondary-inverse-disabled.usa-button-hover,
  .usa-button-secondary-inverse-disabled:active,
  .usa-button-secondary-inverse-disabled.usa-button-active,
  .usa-button-secondary-inverse-disabled:focus,
  .usa-button-secondary-inverse-disabled.usa-focus,
  .usa-button-secondary:disabled:hover,
  .usa-button-secondary:disabled.usa-button-hover,
  .usa-button-secondary:disabled:active,
  .usa-button-secondary:disabled.usa-button-active,
  .usa-button-secondary:disabled:focus,
  .usa-button-secondary:disabled.usa-focus,
  .usa-button-secondary-inverse:disabled:hover,
  .usa-button-secondary-inverse:disabled.usa-button-hover,
  .usa-button-secondary-inverse:disabled:active,
  .usa-button-secondary-inverse:disabled.usa-button-active,
  .usa-button-secondary-inverse:disabled:focus,
  .usa-button-secondary-inverse:disabled.usa-focus,
  .usa-button-outline-inverse:disabled:hover,
  .usa-button-outline-inverse:disabled.usa-button-hover,
  .usa-button-outline-inverse:disabled:active,
  .usa-button-outline-inverse:disabled.usa-button-active,
  .usa-button-outline-inverse:disabled:focus,
  .usa-button-outline-inverse:disabled.usa-focus {
    background-color: #ffffff;
    border: 0; }

html .usa-button-secondary-disabled,
.usa-button-secondary:disabled {
  background-color: #ffffff; }

html .usa-button-secondary-inverse-disabled,
.usa-button-secondary-inverse:disabled {
  background-color: transparent;
  color: #5b616b;
  box-shadow: inset 0 0 0 2px #5b616b; }

.usa-button-unstyled {
  background-color: transparent;
  border: 0;
  border-radius: 0;
  font-weight: 400;
  margin: 0;
  padding: 0;
  text-align: left;
  -webkit-font-smoothing: auto; }
  .usa-button-unstyled:hover {
    background-color: transparent; }

.usa-embed-container iframe,
.usa-embed-container object,
.usa-embed-container embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

.usa-embed-container {
  padding-bottom: 56.25%;
  position: relative;
  height: 0;
  overflow: hidden;
  max-width: 100%; }

img {
  max-width: 100%; }

.media_link {
  display: inline-block;
  line-height: 0; }

/* stylelint-disable selector-no-qualifying-type */
input,
textarea,
select {
  appearance: none;
  border: 0.1rem solid #5b616b;
  border-radius: 0;
  box-sizing: border-box;
  color: #212121;
  display: block;
  font-size: 1.7rem;
  height: 4.4rem;
  line-height: 1.3;
  margin: 0.2em 0;
  max-width: 46rem;
  padding: 1rem 0.7em;
  width: 100%; }
  input.usa-input-success,
  textarea.usa-input-success,
  select.usa-input-success {
    border: 3px solid #4aa564; }

/* stylelint-enable */
.usa-input-error {
  border-left: 4px solid #cd2026;
  margin-top: 3rem;
  padding-bottom: 0.8rem;
  padding-left: 1.5rem;
  padding-top: 0.8rem;
  position: relative;
  right: 1.9rem; }
  .usa-input-error input,
  .usa-input-error textarea,
  .usa-input-error select {
    border: 3px solid #cd2026;
    width: calc(100% + 1.9rem); }
  .usa-input-error label {
    margin-top: 0; }
  .usa-input-error .usa-input-inline {
    border: 0.1rem solid #5b616b;
    width: inherit; }
  .usa-input-error .usa-input-inline-error {
    border: 3px solid #cd2026; }

.usa-input-error-label {
  display: block;
  font-size: 1.7rem;
  font-weight: 700; }

.usa-input-error-message {
  color: #cd2026;
  display: block;
  font-size: 1.7rem;
  font-weight: 700;
  padding-bottom: 3px;
  padding-top: 3px; }

.usa-input-required:after {
  color: #981b1e;
  content: ' (*required)'; }

.usa-input-optional:after {
  color: #757575;
  content: ' (optional)'; }

.usa-input-label-helper {
  color: #757575; }

.usa-input-label-required {
  color: #981b1e; }

label {
  display: block;
  margin-top: 3rem;
  max-width: 46rem; }

textarea {
  height: 16rem; }

select {
  appearance: none;
  background-color: #ffffff;
  background-image: url("../vendor/uswds/img/arrow-both.png");
  background-image: none, url("../vendor/uswds/img/arrow-both.svg"), url("../vendor/uswds/img/arrow-both.png");
  background-position: right 1.3rem center;
  background-repeat: no-repeat;
  background-size: 1rem;
  padding-right: 3rem; }
  select::-ms-expand {
    display: none; }
  select:-webkit-autofill {
    appearance: menulist; }
  select:-moz-focusring {
    color: transparent;
    text-shadow: 0 0 0 #000000; }

option:first-child {
  font-weight: 700; }

legend {
  font-size: 3rem;
  font-weight: 700; }

.usa-fieldset-inputs label {
  margin-top: 0; }

.usa-form-hint {
  color: #757575;
  font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  margin-bottom: 0; }

[type=checkbox],
[type=radio] {
  position: absolute;
  left: -999em; }
  .lt-ie9 [type=checkbox], .lt-ie9
  [type=radio] {
    border: 0;
    float: left;
    margin: 0.4em 0.4em 0 0;
    position: static;
    width: auto; }

[type=checkbox] + label,
[type=radio] + label {
  cursor: pointer;
  font-weight: 400;
  margin-bottom: 0.65em; }

[type=checkbox] + label::before,
[type=radio] + label::before {
  background: #ffffff;
  content: '\a0';
  display: inline-block;
  text-indent: 0.15em;
  vertical-align: middle\0; }

[type=checkbox] + label::before {
  border-radius: 2px;
  box-shadow: 0 0 0 1px #757575;
  height: 2rem;
  line-height: 2rem;
  margin-left: 1px;
  margin-right: 0.6em;
  width: 2rem; }

[type=radio] + label::before {
  border-radius: 100%;
  box-shadow: 0 0 0 2px #ffffff, 0 0 0 3px #757575;
  height: 1.4rem;
  line-height: 1.4rem;
  margin-left: 3px;
  margin-right: 0.75em;
  width: 1.4rem; }

[type=checkbox]:checked + label::before,
[type=radio]:checked + label::before {
  background-color: #0071bc;
  box-shadow: 0 0 0 1px #0071bc; }

[type=radio]:checked + label::before {
  box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #0071bc; }

[type=checkbox]:checked + label::before,
[type=checkbox]:checked:disabled + label::before {
  background-image: url("../vendor/uswds/img/correct8.png");
  background-image: url("../vendor/uswds/img/correct8.svg");
  background-position: 50%;
  background-repeat: no-repeat; }

[type=radio]:focus + label::before {
  outline: 2px dotted #aeb0b5;
  outline-offset: 6px; }

[type=checkbox]:disabled + label {
  color: #d6d7d9; }

[type=checkbox]:focus + label::before {
  outline: 2px dotted #aeb0b5;
  outline-offset: 3px; }

[type=checkbox]:disabled + label::before,
[type=radio]:disabled + label::before {
  background: #f1f1f1;
  box-shadow: 0 0 0 1px #aeb0b5;
  cursor: not-allowed; }

@media print {
  [type=checkbox]:checked + label::before,
  [type=checkbox]:checked:disabled + label::before {
    background-image: none;
    background-color: #ffffff;
    content: url("../vendor/uswds/img/correct8-alt.png");
    content: url("../vendor/uswds/img/correct8-alt.svg");
    text-indent: 0; } }

[type=range] {
  appearance: none;
  border: none;
  padding-left: 0;
  overflow: hidden;
  width: 100%; }
  [type=range]:focus {
    outline: none; }
    [type=range]:focus::-webkit-slider-thumb {
      box-shadow: 0 0 0 2px #0071bc; }
    [type=range]:focus::-moz-range-thumb {
      box-shadow: 0 0 0 2px #0071bc; }
    [type=range]:focus::-ms-thumb {
      box-shadow: 0 0 0 2px #0071bc; }
  [type=range]::-webkit-slider-runnable-track {
    background: #d6d7d9;
    border: 1px solid #757575;
    cursor: pointer;
    height: 1.6rem;
    width: 100%; }
  [type=range]::-moz-range-track {
    background: #d6d7d9;
    border: 1px solid #757575;
    cursor: pointer;
    height: 1.6rem;
    width: 100%; }
  [type=range]::-ms-track {
    background: #d6d7d9;
    border: 1px solid #757575;
    cursor: pointer;
    height: 1.6rem;
    width: 100%; }
  [type=range]::-webkit-slider-thumb {
    background: #f1f1f1;
    box-shadow: 0 0 0 1px #757575;
    border-radius: 1.5rem;
    cursor: pointer;
    height: 2.5rem;
    width: 2.5rem;
    appearance: none;
    margin-top: -0.6rem; }
  [type=range]::-moz-range-thumb {
    background: #f1f1f1;
    box-shadow: 0 0 0 1px #757575;
    border-radius: 1.5rem;
    cursor: pointer;
    height: 2.5rem;
    width: 2.5rem; }
  [type=range]::-ms-thumb {
    background: #f1f1f1;
    box-shadow: 0 0 0 1px #757575;
    border-radius: 1.5rem;
    cursor: pointer;
    height: 2.5rem;
    width: 2.5rem; }
  [type=range]::-ms-fill-lower {
    background: #aeb0b5;
    border: 1px solid #757575;
    border-radius: 2rem; }
  [type=range]::-ms-fill-upper {
    background: #aeb0b5;
    border: 1px solid #757575;
    border-radius: 2rem; }

[type='file'] {
  border: none;
  padding-left: 0; }

.usa-date-of-birth {
  /* stylelint-disable-line */ }
  .usa-date-of-birth label {
    margin-top: 0; }
  .usa-date-of-birth [type=number] {
    -moz-appearance: textfield; }
    .usa-date-of-birth [type=number]::-webkit-inner-spin-button {
      appearance: none; }
    .usa-date-of-birth [type=number]::-webkit-contacts-auto-fill-button {
      visibility: hidden;
      display: none !important;
      /* stylelint-disable-line declaration-no-important */
      pointer-events: none;
      height: 0;
      width: 0;
      margin: 0; }

.usa-form-group-day,
.usa-form-group-month,
.usa-form-group-year {
  clear: none;
  float: left;
  margin-right: 1.5rem;
  width: 5rem; }

.usa-form-group-year {
  width: 7rem; }

.usa-label, .usa-label-big {
  background-color: #5b616b;
  border-radius: 2px;
  color: #ffffff;
  font-size: 1.5rem;
  margin-right: 0.5rem;
  padding: 0.1rem 0.7rem;
  text-transform: uppercase; }
  .usa-label:only-of-type, .usa-label-big:only-of-type {
    margin-right: 0; }

.usa-label-big {
  font-size: 1.7rem;
  padding-left: 0.9rem;
  padding-right: 0.9rem; }

ul,
ol {
  margin-top: 1em;
  margin-bottom: 1em;
  padding-left: 1.94em; }

li {
  line-height: 1.5;
  margin-bottom: 0.5em; }
  li:last-child {
    margin-bottom: 0; }

.usa-unstyled-list {
  margin-top: 0;
  margin-bottom: 0;
  list-style-type: none;
  padding-left: 0; }
  .usa-unstyled-list > li {
    margin-bottom: 0; }

table {
  border-spacing: 0;
  margin: 2em 0; }

thead th {
  font-weight: 700; }

thead th,
thead td {
  background-color: #f1f1f1; }

th {
  text-align: left; }

th,
td {
  background-color: #ffffff;
  border: 1px solid #5b616b;
  font-weight: 400;
  padding: 1rem 1.5rem; }

.usa-table-borderless thead th {
  background-color: transparent;
  border-top: 0; }

.usa-table-borderless th,
.usa-table-borderless td {
  border-left: 0;
  border-right: 0; }

.usa-table-borderless th:first-child {
  padding-left: 0; }

caption {
  font-size: 1.5rem;
  font-weight: 700;
  font-family: "Merriweather", "Georgia", "Cambria", "Times New Roman", "Times", serif;
  margin-bottom: 1.2rem;
  text-align: left; }

html {
  font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 10px; }

body {
  font-size: 1.7rem; }

p {
  line-height: 1.5;
  margin-bottom: 1em;
  margin-top: 1em; }

a {
  color: #0071bc;
  text-decoration: underline; }
  a:hover, a:active {
    color: #205493; }
  a:focus {
    outline: 2px dotted #aeb0b5;
    outline-offset: 3px; }
  a:visited {
    color: #4c2c92; }

.usa-external_link::after {
  background: url("../vendor/uswds/img/external-link.png") no-repeat 0 0;
  background: url("../vendor/uswds/img/external-link.svg") no-repeat 0 0;
  background-size: 100%;
  content: '';
  display: inline-block;
  height: 0.65em;
  margin-bottom: -1px;
  margin-left: 4px;
  width: 0.65em; }

.usa-external_link:hover::after {
  background-image: url("../vendor/uswds/img/external-link-hover.png");
  background-image: url("../vendor/uswds/img/external-link-hover.svg"); }

.usa-external_link-alt::after {
  background: url("../vendor/uswds/img/external-link-alt.png") no-repeat 0 0;
  background: url("../vendor/uswds/img/external-link-alt.svg") no-repeat 0 0;
  background-size: 100%;
  content: '';
  display: inline-block;
  height: 0.65em;
  margin-bottom: -1px;
  margin-left: 4px;
  width: 0.65em; }

.usa-external_link-alt:hover::after {
  background-image: url("../vendor/uswds/img/external-link-alt-hover.png");
  background-image: url("../vendor/uswds/img/external-link-alt-hover.svg"); }

h1,
h2,
h3,
h4,
h5,
h6 {
  clear: both;
  font-family: "Merriweather", "Georgia", "Cambria", "Times New Roman", "Times", serif;
  line-height: 1.3;
  margin-bottom: 0.5em;
  margin-top: 1.5em; }

h1 {
  font-size: 4rem;
  font-weight: 700; }

h2 {
  font-size: 3rem;
  font-weight: 700; }

h3 {
  font-size: 2rem;
  font-weight: 700; }

h4 {
  font-size: 1.7rem;
  font-weight: 700; }

h5 {
  font-size: 1.5rem;
  font-weight: 700; }

h6 {
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 1.5;
  text-transform: uppercase;
  font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; }

cite,
var,
address,
dfn {
  font-style: normal; }

.usa-content p,
.usa-content ul:not(.usa-accordion):not(.usa-accordion-bordered),
.usa-content ol:not(.usa-accordion):not(.usa-accordion-bordered) {
  max-width: 66ch; }

.usa-content-list {
  max-width: 66ch; }

.usa-sans p,
.usa-sans a,
.usa-sans li,
.usa-sans span {
  font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; }

.usa-sans a {
  border-bottom: none;
  font-weight: 700; }

.usa-serif p,
.usa-serif a,
.usa-serif li,
.usa-serif span {
  font-family: "Merriweather", "Georgia", "Cambria", "Times New Roman", "Times", serif; }

.usa-display {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 0; }
  @media screen and (min-width: 481px) {
    .usa-display {
      font-size: 4rem;
      font-weight: 700; } }
  @media screen and (min-width: 600px) {
    .usa-display {
      font-size: 5.2rem;
      font-weight: 700; } }

.usa-font-lead {
  font-family: "Merriweather", "Georgia", "Cambria", "Times New Roman", "Times", serif;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.7;
  max-width: 77rem; }

.usa-background-dark {
  background-color: #323a45; }
  .usa-background-dark p,
  .usa-background-dark span {
    color: #ffffff; }
  .usa-background-dark a {
    color: #d6d7d9; }
    .usa-background-dark a:hover {
      color: #ffffff; }

.usa-text-small {
  font-size: 1.3rem;
  margin-top: 0; }

.usa-section > :first-child,
.usa-grid > :first-child,
.usa-grid-full > :first-child {
  margin-top: 0; }

.usa-section > :last-child,
.usa-grid > :last-child,
.usa-grid-full > :last-child {
  margin-bottom: 0; }

.usa-width-one-whole:first-child > :first-child,
.usa-width-one-half:first-child > :first-child,
.usa-width-one-third:first-child > :first-child,
.usa-width-two-thirds:first-child > :first-child,
.usa-width-one-fourth:first-child > :first-child,
.usa-width-three-fourths:first-child > :first-child,
.usa-width-one-sixth:first-child > :first-child,
.usa-width-five-sixths:first-child > :first-child,
.usa-width-one-twelfth:first-child > :first-child {
  margin-top: 0; }

@media screen and (min-width: 600px) {
  .usa-width-one-whole > :first-child,
  .usa-width-one-half > :first-child,
  .usa-width-one-third > :first-child,
  .usa-width-two-thirds > :first-child,
  .usa-width-one-fourth > :first-child,
  .usa-width-three-fourths > :first-child,
  .usa-width-one-sixth > :first-child,
  .usa-width-five-sixths > :first-child,
  .usa-width-one-twelfth > :first-child {
    margin-top: 0; } }

.usa-width-one-whole:last-child > :last-child,
.usa-width-one-half:last-child > :last-child,
.usa-width-one-third:last-child > :last-child,
.usa-width-two-thirds:last-child > :last-child,
.usa-width-one-fourth:last-child > :last-child,
.usa-width-three-fourths:last-child > :last-child,
.usa-width-one-sixth:last-child > :last-child,
.usa-width-five-sixths:last-child > :last-child,
.usa-width-one-twelfth:last-child > :last-child {
  margin-bottom: 0; }

@media screen and (min-width: 600px) {
  .usa-width-one-whole > :last-child,
  .usa-width-one-half > :last-child,
  .usa-width-one-third > :last-child,
  .usa-width-two-thirds > :last-child,
  .usa-width-one-fourth > :last-child,
  .usa-width-three-fourths > :last-child,
  .usa-width-one-sixth > :last-child,
  .usa-width-five-sixths > :last-child,
  .usa-width-one-twelfth > :last-child {
    margin-bottom: 0; } }

.usa-accordion,
.usa-accordion-bordered {
  margin-top: 0;
  margin-bottom: 0;
  list-style-type: none;
  padding-left: 0;
  color: #212121;
  margin: 0;
  padding: 0;
  width: 100%; }
  .usa-accordion > li,
  .usa-accordion-bordered > li {
    margin-bottom: 0; }
  .usa-accordion > ul li ul,
  .usa-accordion-bordered > ul li ul {
    list-style: disc; }
    .usa-accordion > ul li ul > li > ul,
    .usa-accordion-bordered > ul li ul > li > ul {
      list-style: circle; }
      .usa-accordion > ul li ul > li > ul > li > ul,
      .usa-accordion-bordered > ul li ul > li > ul > li > ul {
        list-style: square; }
  .usa-accordion + .usa-accordion,
  .usa-accordion + .usa-accordion-bordered,
  .usa-accordion-bordered + .usa-accordion,
  .usa-accordion-bordered + .usa-accordion-bordered {
    margin-top: 1rem; }
  .usa-accordion > ul,
  .usa-accordion-bordered > ul {
    margin-top: 0;
    margin-bottom: 0;
    list-style-type: none;
    padding-left: 0;
    color: #212121;
    margin: 0;
    padding: 0;
    width: 100%; }
    .usa-accordion > ul > li,
    .usa-accordion-bordered > ul > li {
      margin-bottom: 0; }
    .usa-accordion > ul > li,
    .usa-accordion-bordered > ul > li {
      background-color: #f1f1f1;
      font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
      list-style: none;
      margin-bottom: 0.5rem;
      width: 100%; }
    .usa-accordion > ul button,
    .usa-accordion-bordered > ul button {
      background-color: transparent;
      border: 0;
      border-radius: 0;
      font-weight: 400;
      margin: 0;
      padding: 0;
      text-align: left;
      -webkit-font-smoothing: auto;
      background-color: #f1f1f1;
      background-image: url("../vendor/uswds/img/minus.png");
      background-image: url("../vendor/uswds/img/minus.svg");
      background-position: right 2rem center;
      background-repeat: no-repeat;
      background-size: 1.5rem;
      color: #212121;
      cursor: pointer;
      display: inline-block;
      font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
      font-weight: 700;
      margin: 0;
      padding: 1.5rem 5.5rem 1.5rem 2rem;
      width: 100%; }
      .usa-accordion > ul button:hover,
      .usa-accordion-bordered > ul button:hover {
        background-color: transparent; }
      .usa-accordion > ul button:hover,
      .usa-accordion-bordered > ul button:hover {
        background-color: #d6d7d9;
        color: #212121; }
      .usa-accordion > ul button h1,
      .usa-accordion > ul button h2,
      .usa-accordion > ul button h3,
      .usa-accordion > ul button h4,
      .usa-accordion > ul button h5,
      .usa-accordion > ul button h6,
      .usa-accordion-bordered > ul button h1,
      .usa-accordion-bordered > ul button h2,
      .usa-accordion-bordered > ul button h3,
      .usa-accordion-bordered > ul button h4,
      .usa-accordion-bordered > ul button h5,
      .usa-accordion-bordered > ul button h6 {
        margin: 0; }
    .usa-accordion > ul [aria-expanded=false],
    .usa-accordion-bordered > ul [aria-expanded=false] {
      background-image: url("../vendor/uswds/img/plus.png");
      background-image: url("../vendor/uswds/img/plus.svg");
      background-repeat: no-repeat;
      background-size: 1.5rem; }
  .usa-accordion > li,
  .usa-accordion-bordered > li {
    background-color: #f1f1f1;
    font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    list-style: none;
    margin-bottom: 0.5rem;
    width: 100%; }

.usa-accordion-bordered .usa-accordion-content {
  border-bottom: 3px solid #f1f1f1;
  border-left: 3px solid #f1f1f1;
  border-right: 3px solid #f1f1f1; }

.usa-accordion-content {
  background-color: #ffffff;
  overflow: auto;
  padding: 1.5rem 2rem; }
  .usa-accordion-content > *:first-child {
    margin-top: 0; }
  .usa-accordion-content > *:last-child {
    margin-bottom: 0; }
  .usa-accordion-content:not([aria-hidden]) {
    position: absolute;
    left: -999em; }
  .usa-accordion-content[aria-hidden=true] {
    display: none; }

.usa-accordion-button {
  background-color: transparent;
  border: 0;
  border-radius: 0;
  font-weight: 400;
  margin: 0;
  padding: 0;
  text-align: left;
  -webkit-font-smoothing: auto;
  background-color: #f1f1f1;
  background-image: url("../vendor/uswds/img/minus.png");
  background-image: url("../vendor/uswds/img/minus.svg");
  background-position: right 2rem center;
  background-repeat: no-repeat;
  background-size: 1.5rem;
  color: #212121;
  cursor: pointer;
  display: inline-block;
  font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-weight: 700;
  margin: 0;
  padding: 1.5rem 5.5rem 1.5rem 2rem;
  width: 100%; }
  .usa-accordion-button:hover {
    background-color: transparent; }
  .usa-accordion-button:hover {
    background-color: #d6d7d9;
    color: #212121; }
  .usa-accordion-button h1,
  .usa-accordion-button h2,
  .usa-accordion-button h3,
  .usa-accordion-button h4,
  .usa-accordion-button h5,
  .usa-accordion-button h6 {
    margin: 0; }

.usa-accordion-button[aria-expanded=false] {
  background-image: url("../vendor/uswds/img/plus.png");
  background-image: url("../vendor/uswds/img/plus.svg");
  background-repeat: no-repeat;
  background-size: 1.5rem; }

.usa-alert {
  background-color: #f1f1f1;
  background-position: 2rem 2rem;
  background-repeat: no-repeat;
  background-size: 5.2rem;
  padding-bottom: 1.4rem;
  padding-left: 3rem;
  padding-right: 2rem;
  padding-top: 2rem;
  position: relative; }
  .usa-alert::before {
    background-color: #8b8b8b;
    content: '';
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 1rem; }
  .usa-alert a {
    color: #205493; }
    .usa-alert a:focus, .usa-alert a:hover {
      color: #112e51; }
  .usa-alert ul {
    margin-bottom: 0;
    margin-top: 1rem;
    padding-left: 1rem; }

.usa-alert-slim {
  background-position: 2rem 1rem;
  padding-bottom: 1rem;
  padding-top: 1rem; }
  .usa-alert-slim .usa-alert-text:only-child {
    margin-bottom: 0.5rem;
    padding-top: 0.5rem; }

.usa-alert-icon {
  display: table-cell;
  padding-right: 1rem; }

.usa-alert-body {
  display: table-cell;
  vertical-align: top; }

.usa-alert-heading {
  margin-top: 0;
  margin-bottom: 0; }

.usa-alert-text {
  font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  margin-bottom: 0;
  margin-top: 0; }

.usa-alert-text:only-child {
  margin-bottom: 1rem;
  padding-top: 0.5rem; }

.usa-alert-success {
  background-color: #e7f4e4;
  background-image: url("../vendor/uswds/img/alerts/success.png");
  background-image: url("../vendor/uswds/img/alerts/success.svg"); }
  .usa-alert-success::before {
    background-color: #2e8540; }
  .usa-alert-success .usa-alert-body {
    padding-left: 5rem; }

.usa-alert-warning {
  background-color: #fff1d2;
  background-image: url("../vendor/uswds/img/alerts/warning.png");
  background-image: url("../vendor/uswds/img/alerts/warning.svg"); }
  .usa-alert-warning::before {
    background-color: #fdb81e; }
  .usa-alert-warning .usa-alert-body {
    padding-left: 5rem; }

.usa-alert-error {
  background-color: #f9dede;
  background-image: url("../vendor/uswds/img/alerts/error.png");
  background-image: url("../vendor/uswds/img/alerts/error.svg"); }
  .usa-alert-error::before {
    background-color: #e31c3d; }
  .usa-alert-error .usa-alert-body {
    padding-left: 5rem; }

.usa-alert-info {
  background-color: #e1f3f8;
  background-image: url("../vendor/uswds/img/alerts/info.png");
  background-image: url("../vendor/uswds/img/alerts/info.svg"); }
  .usa-alert-info::before {
    background-color: #02bfe7; }
  .usa-alert-info .usa-alert-body {
    padding-left: 5rem; }

.usa-alert-no_icon {
  background-image: none; }

.usa-alert-paragraph {
  width: 66ch; }

.usa-alert {
  margin-top: 1.5em; }

.usa-banner {
  background-color: #f1f1f1;
  padding-bottom: 0.7rem; }
  @media screen and (min-width: 481px) {
    .usa-banner {
      font-size: 1.3rem;
      padding-bottom: 0; } }

.usa-banner-content {
  padding-right: 1.5rem;
  padding-bottom: 3px;
  padding-left: 1.5rem;
  background-color: transparent;
  font-size: 1.5rem;
  padding-top: 2rem;
  width: 100%; }
  @media screen and (min-width: 600px) {
    .usa-banner-content {
      padding-bottom: 2.3rem;
      padding-top: 4rem; } }
  @media screen and (min-width: 951px) {
    .usa-banner-content {
      padding-right: 3rem;
      padding-left: 3rem; } }
  .usa-banner-content p:first-child {
    margin-top: 1rem; }
    @media screen and (min-width: 600px) {
      .usa-banner-content p:first-child {
        margin-top: 0; } }

.usa-banner-inner {
  max-width: 1040px;
  margin-left: auto;
  margin-right: auto;
  padding-right: 1.5rem;
  padding-left: 1.5rem; }
  .usa-banner-inner::after {
    clear: both;
    content: "";
    display: block; }
  @media screen and (min-width: 951px) {
    .usa-banner-inner {
      padding-right: 3rem;
      padding-left: 3rem; } }

.usa-banner-header {
  padding-top: 0.55rem;
  padding-bottom: 0.55rem;
  font-size: 1.2rem;
  font-weight: 400; }
  @media screen and (min-width: 481px) {
    .usa-banner-header {
      padding-top: 0;
      padding-bottom: 0; } }
  .usa-banner-header p {
    margin-top: 0;
    margin-bottom: 0;
    display: inline;
    overflow: hidden;
    vertical-align: middle; }
    @media screen and (min-width: 481px) {
      .usa-banner-header p {
        margin-top: 2px;
        margin-bottom: 2px;
        display: inline-block; } }
  .usa-banner-header img {
    float: left;
    margin-right: 1rem;
    margin-top: 1px;
    width: 2.4rem; }
    @media screen and (min-width: 481px) {
      .usa-banner-header img {
        margin-right: 0.7rem;
        width: 2rem; } }

.usa-banner-header-expanded {
  align-items: center;
  border-bottom: 1px solid #aeb0b5;
  display: flex;
  font-size: 1.5rem;
  min-height: 5.6rem;
  padding-right: 3rem; }
  @media screen and (min-width: 481px) {
    .usa-banner-header-expanded {
      border-bottom: none;
      display: block;
      font-size: 1.2rem;
      font-weight: 400;
      min-height: 0;
      padding-right: 0; } }
  .usa-banner-header-expanded > .usa-banner-inner {
    margin-left: 0; }
    @media screen and (min-width: 481px) {
      .usa-banner-header-expanded > .usa-banner-inner {
        margin-left: auto; } }
  .usa-banner-header-expanded img {
    margin-right: 2.4rem; }
    @media screen and (min-width: 481px) {
      .usa-banner-header-expanded img {
        margin-right: 0.7rem; } }
  .usa-banner-header-expanded p {
    line-height: 1.3;
    vertical-align: top; }
    @media screen and (min-width: 481px) {
      .usa-banner-header-expanded p {
        line-height: 1.5;
        vertical-align: middle; } }

.usa-banner-button {
  background-color: transparent;
  border: 0;
  border-radius: 0;
  font-weight: 400;
  margin: 0;
  padding: 0;
  text-align: left;
  -webkit-font-smoothing: auto;
  padding-top: 1.3rem;
  padding-left: 4.8rem;
  background-position-x: right;
  color: #0071bc;
  display: block;
  font-size: 1.2rem;
  height: 4.3rem;
  left: 0;
  position: absolute;
  text-decoration: underline;
  top: 0;
  width: 100%; }
  .usa-banner-button:hover {
    background-color: transparent; }
  @media screen and (min-width: 481px) {
    .usa-banner-button {
      padding-top: 0;
      padding-left: 0;
      /* stylelint-disable declaration-block-no-ignored-properties */
      display: inline;
      height: auto;
      margin-left: 3px;
      position: relative;
      vertical-align: middle;
      width: auto;
      /* stylelint-enable */ } }
  .usa-banner-button:hover {
    color: #205493;
    text-decoration: underline; }
  .usa-banner-button[aria-expanded=false] {
    background-image: none; }
    .usa-banner-button[aria-expanded=false]::after {
      background-image: url("../vendor/uswds/img/angle-arrow-down-primary.png");
      background-image: url("../vendor/uswds/img/angle-arrow-down-primary.svg");
      background-size: 100%;
      content: '';
      display: inline-block;
      height: 1rem;
      width: 1rem;
      /* stylelint-disable block-closing-brace-newline-after, at-rule-empty-line-before */
      margin-left: 0;
      /* stylelint-enable */ }
    .usa-banner-button[aria-expanded=false]:hover::after {
      background-image: url("../vendor/uswds/img/angle-arrow-down-primary-hover.png");
      background-image: url("../vendor/uswds/img/angle-arrow-down-primary-hover.svg"); }
    .usa-banner-button[aria-expanded=false]::after {
      background-position-y: 1px; }
  .usa-banner-button[aria-expanded=true] {
    background-image: none;
    height: 5.6rem; }
    .usa-banner-button[aria-expanded=true]::after {
      background-image: url("../vendor/uswds/img/close.png");
      background-image: url("../vendor/uswds/img/close.svg");
      background-size: 100%;
      content: '';
      display: inline-block;
      height: 1.3rem;
      width: 1.3rem;
      /* stylelint-disable block-closing-brace-newline-after, at-rule-empty-line-before */
      margin-left: 0;
      /* stylelint-enable */ }
    @media screen and (min-width: 481px) {
      .usa-banner-button[aria-expanded=true] {
        height: initial;
        padding: 0;
        position: relative; }
        .usa-banner-button[aria-expanded=true]::after {
          background-image: url("../vendor/uswds/img/angle-arrow-up-primary.png");
          background-image: url("../vendor/uswds/img/angle-arrow-up-primary.svg");
          background-size: 100%;
          content: '';
          display: inline-block;
          height: 1rem;
          width: 1rem;
          /* stylelint-disable block-closing-brace-newline-after, at-rule-empty-line-before */
          margin-left: 0;
          /* stylelint-enable */ }
        .usa-banner-button[aria-expanded=true]:hover::after {
          background-image: url("../vendor/uswds/img/angle-arrow-up-primary-hover.png");
          background-image: url("../vendor/uswds/img/angle-arrow-up-primary-hover.svg"); }
        .usa-banner-button[aria-expanded=true]::after {
          background-position-y: 1px; } }
    .usa-banner-button[aria-expanded=true]::after {
      position: absolute;
      right: 1.5rem;
      top: 2.15rem; }
      @media screen and (min-width: 481px) {
        .usa-banner-button[aria-expanded=true]::after {
          position: static; } }
    .usa-banner-button[aria-expanded=true] .usa-banner-button-text {
      display: none; }
      @media screen and (min-width: 481px) {
        .usa-banner-button[aria-expanded=true] .usa-banner-button-text {
          display: inline; } }

.usa-banner-icon {
  width: 3.8rem; }

.usa-footer .usa-unstyled-list {
  display: block; }

.usa-footer .usa-footer-primary-link {
  color: #212121;
  display: block;
  font-weight: 700;
  margin-top: 0;
  padding-bottom: 2rem;
  padding-top: 2rem;
  text-decoration: none; }
  @media screen and (min-width: 600px) {
    .usa-footer .usa-footer-primary-link {
      border-top: none; } }
  .usa-footer .usa-footer-primary-link:hover {
    cursor: pointer;
    text-decoration: underline; }
    @media screen and (min-width: 600px) {
      .usa-footer .usa-footer-primary-link:hover {
        cursor: auto;
        text-decoration: none; } }

.usa-footer .usa-footer-primary-link ~ li a,
.usa-footer .usa-footer-secondary-link {
  text-decoration: none; }

.usa-footer-contact_info {
  display: inline-block; }
  .usa-footer-contact_info a {
    color: #212121;
    text-decoration: none; }
  .usa-footer-contact_info:hover {
    text-decoration: underline; }

.usa-footer-return-to-top {
  padding-bottom: 2rem;
  padding-top: 2rem; }

.usa-footer-primary-section {
  background-color: #f1f1f1; }
  .usa-footer-primary-section .usa-footer-primary-content {
    padding-left: 1.5rem;
    padding-right: 2.5rem; }
    @media screen and (min-width: 600px) {
      .usa-footer-primary-section .usa-footer-primary-content {
        padding-left: 0;
        padding-right: 0; } }
    .usa-footer-primary-section .usa-footer-primary-content li {
      margin-left: 1rem; }
      @media screen and (min-width: 600px) {
        .usa-footer-primary-section .usa-footer-primary-content li {
          margin-left: 0; } }
  @media screen and (min-width: 600px) {
    .usa-footer-primary-section .usa-grid-full {
      padding-left: 2.5rem;
      padding-right: 2.5rem; } }

.usa-footer-medium .usa-footer-contact_info p {
  margin: 0 1rem 0 0; }
  @media screen and (min-width: 600px) {
    .usa-footer-medium .usa-footer-contact_info p {
      margin: 0 0 0 1rem; } }

.usa-footer-medium .usa-footer-contact-heading {
  margin-top: 0; }
  @media screen and (min-width: 600px) {
    .usa-footer-medium .usa-footer-contact-heading {
      margin-top: 0.5rem;
      margin-bottom: 0.5rem; } }

.usa-footer-medium .usa-footer-logo {
  padding: 1rem 0; }
  @media screen and (min-width: 600px) {
    .usa-footer-medium .usa-footer-logo {
      padding: 2rem 0; } }

.usa-footer-medium .usa-footer-primary-link {
  padding-bottom: 1.5rem;
  padding-top: 1.5rem; }

.usa-footer-medium .usa-footer-primary-section > .usa-grid {
  padding: 0; }
  @media screen and (min-width: 600px) {
    .usa-footer-medium .usa-footer-primary-section > .usa-grid {
      padding-left: 3rem;
      padding-right: 3rem; } }

@media screen and (min-width: 1201px) {
  .usa-footer-medium .usa-footer-primary-section .usa-footer-primary-content {
    margin-right: 5%;
    width: inherit; } }

@media screen and (min-width: 1201px) {
  .usa-footer-medium .usa-footer-primary-section .usa-footer-primary-content:last-child {
    margin-right: 0; } }

@media screen and (min-width: 600px) {
  .usa-footer-medium .usa-footer-nav ul {
    align-items: center; } }

.usa-footer-slim .usa-footer-nav a {
  display: block; }

@media screen and (min-width: 1201px) {
  .usa-footer-slim .usa-footer-nav .usa-footer-primary-content {
    margin-right: 5%;
    width: inherit; } }

@media screen and (min-width: 1201px) {
  .usa-footer-slim .usa-footer-nav .usa-footer-primary-content:last-child {
    margin-right: 0; } }

.usa-footer-slim .usa-footer-primary-link {
  padding-bottom: 1.5rem;
  padding-top: 1.5rem; }

.usa-footer-slim .usa-footer-primary-section > .usa-grid {
  padding: 0; }
  @media screen and (min-width: 600px) {
    .usa-footer-slim .usa-footer-primary-section > .usa-grid {
      padding-left: 3rem;
      padding-right: 3rem; } }

@media screen and (min-width: 600px) {
  .usa-footer-slim .usa-footer-primary-section {
    padding-bottom: 0;
    padding-top: 0; }
    .usa-footer-slim .usa-footer-primary-section .usa-grid-full {
      align-items: center; } }

@media screen and (min-width: 600px) {
  .usa-footer-slim .usa-footer-contact_info > * {
    margin: 0; } }

@media screen and (min-width: 600px) {
  .usa-footer-slim .usa-footer-contact_info {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem; } }

@media screen and (min-width: 600px) {
  .usa-footer-slim .usa-footer-contact_info {
    width: 100%; } }

@media screen and (min-width: 1201px) {
  .usa-footer-slim .usa-footer-contact_info {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 48.82117%; }
    .usa-footer-slim .usa-footer-contact_info:last-child {
      margin-right: 0; } }

/* stylelint-disable selector-no-qualifying-type */
ul.usa-footer-primary-content,
li.usa-footer-primary-content,
li.usa-footer-primary-content {
  border-top: 1px solid #aeb0b5; }
  @media screen and (min-width: 600px) {
    ul.usa-footer-primary-content,
    li.usa-footer-primary-content,
    li.usa-footer-primary-content {
      border: none; } }
  ul.usa-footer-primary-content:last-child,
  li.usa-footer-primary-content:last-child,
  li.usa-footer-primary-content:last-child {
    border-bottom: 1px solid #aeb0b5; }
    @media screen and (min-width: 600px) {
      ul.usa-footer-primary-content:last-child,
      li.usa-footer-primary-content:last-child,
      li.usa-footer-primary-content:last-child {
        border-bottom: none; } }

/* stylelint-enable */
.usa-sign_up-block {
  padding-bottom: 4.5rem;
  padding-left: 1.5rem;
  padding-right: 1.5rem; }
  @media screen and (min-width: 600px) {
    .usa-sign_up-block {
      float: right;
      padding: 0; } }
  .usa-sign_up-block label:first-of-type {
    margin-top: 0; }
  .usa-sign_up-block button {
    float: none;
    margin-right: 0;
    margin-top: 1.5rem; }
  .usa-sign_up-block input {
    width: 100%; }

.usa-footer-secondary_section {
  background-color: #d6d7d9;
  padding-bottom: 2rem;
  padding-top: 2rem; }
  .usa-footer-secondary_section a {
    color: #212121; }

@media screen and (min-width: 600px) {
  .usa-footer-big-secondary-section {
    padding-top: 2rem;
    padding-bottom: 2rem; } }

@media screen and (min-width: 600px) {
  .usa-footer-contact-links {
    text-align: right; } }

.usa-social-links a {
  text-decoration: none; }

.usa-footer-big .usa-footer-contact_info {
  display: block; }
  .usa-footer-big .usa-footer-contact_info p {
    margin: 0 1rem 0 0; }
    @media screen and (min-width: 600px) {
      .usa-footer-big .usa-footer-contact_info p {
        margin: 0.5rem 0 0 1rem; } }

@media screen and (min-width: 600px) {
  .usa-footer-big .usa-footer-contact-links {
    padding-top: 2rem; } }

.usa-footer-big .usa-footer-logo {
  padding: 1rem 0; }
  @media screen and (min-width: 600px) {
    .usa-footer-big .usa-footer-logo {
      padding: 2rem 0; } }

@media screen and (min-width: 600px) {
  .usa-footer-big .usa-footer-primary-section {
    padding-bottom: 4rem;
    padding-top: 3rem; } }

.usa-footer-big .usa-footer-primary-section > .usa-grid {
  padding: 0; }
  @media screen and (min-width: 600px) {
    .usa-footer-big .usa-footer-primary-section > .usa-grid {
      padding-left: 3rem;
      padding-right: 3rem; } }

.usa-footer-big .usa-footer-primary-section .usa-footer-primary-content {
  padding-left: 0;
  padding-right: 0; }
  .usa-footer-big .usa-footer-primary-section .usa-footer-primary-content li {
    margin-left: 1.5rem; }
    @media screen and (min-width: 600px) {
      .usa-footer-big .usa-footer-primary-section .usa-footer-primary-content li {
        margin-left: 0; } }
  .usa-footer-big .usa-footer-primary-section .usa-footer-primary-content .usa-footer-primary-link {
    margin-left: 0; }

.usa-footer-big ul {
  padding-bottom: 2.4rem; }
  @media screen and (min-width: 600px) {
    .usa-footer-big ul {
      padding-bottom: 0; } }
  .usa-footer-big ul:last-child {
    border-bottom: 1px solid #aeb0b5; }
    @media screen and (min-width: 600px) {
      .usa-footer-big ul:last-child {
        border-bottom: none; } }
  .usa-footer-big ul li:not(.usa-footer-primary-link) {
    line-height: 1.3;
    padding-bottom: 0.35em;
    padding-top: 0.35em; }
  .usa-footer-big ul .usa-footer-primary-link {
    background-image: url("../vendor/uswds/img/arrow-down.png");
    background-image: url("../vendor/uswds/img/arrow-down.svg");
    background-position: 1.5rem center;
    background-repeat: no-repeat;
    background-size: 1.3rem;
    margin-left: 0;
    padding-left: 3.5rem; }
    @media screen and (min-width: 600px) {
      .usa-footer-big ul .usa-footer-primary-link {
        background: none;
        margin-bottom: .8rem;
        padding-bottom: 0;
        padding-left: 0; } }
    .usa-footer-big ul .usa-footer-primary-link > * {
      margin-top: 0;
      margin-bottom: 0; }
  .usa-footer-big ul.hidden {
    /* stylelint-disable-line selector-no-qualifying-type */
    padding-bottom: 0; }
    .usa-footer-big ul.hidden li {
      display: none; }
    .usa-footer-big ul.hidden .usa-footer-primary-link {
      /* stylelint-disable-line selector-no-qualifying-type */
      background-image: url("../vendor/uswds/img/arrow-right.png");
      background-image: url("../vendor/uswds/img/arrow-right.svg");
      cursor: pointer;
      display: block; }
      @media screen and (min-width: 600px) {
        .usa-footer-big ul.hidden .usa-footer-primary-link {
          background: none;
          padding-left: 0; } }

.usa-footer-topic {
  margin: 0;
  padding: 2rem 0; }

@media screen and (min-width: 600px) {
  .usa-sign_up-header {
    margin: 0;
    padding: 2rem 0; } }

.usa-footer-logo-img {
  max-width: 8rem; }
  @media screen and (min-width: 600px) {
    .usa-footer-logo-img {
      float: left; } }

.usa-footer-big-logo-img {
  max-width: 10rem; }

.usa-footer-slim-logo-img {
  float: left;
  max-width: 5rem; }

.usa-footer-logo-heading {
  display: block;
  margin-top: 1rem; }
  @media screen and (min-width: 600px) {
    .usa-footer-logo-heading {
      display: inline-block;
      margin-top: 3rem;
      padding-left: 1.5rem; } }

.usa-footer-big-logo-heading {
  margin-top: 1.5rem; }
  @media screen and (min-width: 600px) {
    .usa-footer-big-logo-heading {
      margin-top: 2rem; } }

.usa-footer-slim-logo-heading {
  display: inline-block;
  margin-top: 1.5rem;
  padding-left: 1.5rem; }

.usa-footer-contact-heading {
  margin-top: 0; }
  @media screen and (min-width: 600px) {
    .usa-footer-contact-heading {
      margin-top: 1rem; } }

.usa-social_link, .usa-link-facebook, .usa-link-twitter, .usa-link-youtube, .usa-link-rss {
  margin: 2.5rem 1rem 1.5rem 0;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: auto 3rem;
  display: inline-block;
  height: 4.4rem;
  left: -1.6rem;
  position: relative;
  text-align: center;
  width: 4.4rem; }
  @media screen and (min-width: 600px) {
    .usa-social_link, .usa-link-facebook, .usa-link-twitter, .usa-link-youtube, .usa-link-rss {
      margin: 0 0 0 0.5rem;
      left: 1.5rem; } }
  .usa-social_link span, .usa-link-facebook span, .usa-link-twitter span, .usa-link-youtube span, .usa-link-rss span {
    position: absolute;
    left: -999em; }

.usa-link-facebook {
  background-image: url("../vendor/uswds/img/social-icons/png/facebook25.png");
  background-image: url("../vendor/uswds/img/social-icons/svg/facebook25.svg"); }

.usa-link-twitter {
  background-image: url("../vendor/uswds/img/social-icons/png/twitter16.png");
  background-image: url("../vendor/uswds/img/social-icons/svg/twitter16.svg"); }

.usa-link-youtube {
  background-image: url("../vendor/uswds/img/social-icons/png/youtube15.png");
  background-image: url("../vendor/uswds/img/social-icons/svg/youtube15.svg"); }

.usa-link-rss {
  background-image: url("../vendor/uswds/img/social-icons/png/rss25.png");
  background-image: url("../vendor/uswds/img/social-icons/svg/rss25.svg"); }

@media screen and (min-width: 600px) {
  [type=submit] {
    margin-top: calc(3rem - .2em); } }

fieldset {
  border: none;
  margin: 0;
  padding: 0; }

@media screen and (min-width: 600px) {
  .usa-form {
    max-width: 32rem; } }

@media screen and (min-width: 600px) {
  .usa-input-tiny {
    max-width: 6rem; } }

@media screen and (min-width: 600px) {
  .usa-input-medium {
    max-width: 12rem; } }

.usa-form-note {
  float: right;
  font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1.5rem;
  margin: 0 0 1.5rem; }
  .usa-form-note + * {
    clear: both; }

@media screen and (min-width: 600px) {
  .usa-form-large {
    max-width: 46rem; } }

@media screen and (min-width: 600px) {
  .usa-input-grid {
    padding-right: 5%; } }

@media screen and (min-width: 600px) {
  .usa-input-grid:last-of-type {
    padding-right: 0; } }

@media screen and (min-width: 600px) {
  .usa-input-grid-small {
    float: left;
    width: 35%; } }

.usa-input-grid-small input {
  margin-bottom: 3rem; }

.usa-input-grid-small select {
  margin-bottom: 3rem; }

@media screen and (min-width: 600px) {
  .usa-input-grid-medium {
    float: left;
    width: 65%; } }

.usa-input-grid-medium input {
  margin-bottom: 3rem; }

.usa-input-grid-medium select {
  margin-bottom: 3rem; }

@media screen and (min-width: 600px) {
  .usa-input-grid-large {
    float: left;
    width: 100%; } }

.usa-input-grid-large input {
  margin-bottom: 3rem; }

.usa-input-grid-large select {
  margin-bottom: 3rem; }

.usa-additional_text {
  font-weight: normal; }

.usa-checklist {
  list-style: none;
  margin-left: 0;
  padding-left: 0; }
  .usa-checklist li {
    display: inline-block;
    list-style: none;
    margin-bottom: 0;
    margin-top: 0;
    padding-left: 3em;
    text-indent: -2em; }
    .usa-checklist li::before {
      content: ' ';
      display: inline-block;
      height: .8em;
      margin-right: .2em;
      width: 1.8em; }

.usa-checklist-checked::before {
  background-image: url("../vendor/uswds/img/correct9.png");
  background-image: url("../vendor/uswds/img/correct9.svg");
  background-position: 100%;
  background-repeat: no-repeat;
  background-size: 100%; }

.usa-graphic_list .usa-graphic_list-row .usa-media_block {
  margin-bottom: 3rem; }
  @media screen and (min-width: 600px) {
    .usa-graphic_list .usa-graphic_list-row .usa-media_block {
      margin-bottom: 6rem; } }

@media screen and (min-width: 600px) {
  .usa-graphic_list .usa-graphic_list-row:last-child .usa-media_block {
    margin-bottom: 0; } }

.usa-graphic_list .usa-graphic_list-row:last-child .usa-media_block:last-child {
  margin-bottom: 0; }

.usa-graphic_list .usa-media_block-img {
  margin-right: 3rem; }

.usa-graphic_list .usa-media_block-body > :first-child {
  margin-top: 0; }

.usa-header {
  width: 100%;
  z-index: 7000; }
  @media screen and (min-width: 951px) {
    .usa-header {
      border-bottom: 1px solid #d6d7d9; } }
  .usa-header a {
    border-bottom: none; }
  @media screen and (min-width: 951px) {
    .usa-header .usa-search {
      float: right;
      max-width: 21.5rem; } }

.usa-logo {
  float: left;
  line-height: 4rem;
  margin-left: 1.5rem; }
  @media screen and (min-width: 951px) {
    .usa-logo {
      line-height: 7.5rem;
      margin-left: 0; } }
  .usa-logo a {
    color: #212121;
    text-decoration: none; }
  .usa-logo br {
    display: none; }
    @media screen and (min-width: 951px) {
      .usa-logo br {
        display: block; } }

.usa-logo-text {
  display: block;
  font-size: 1.5rem;
  font-style: normal;
  font-weight: 700;
  margin: 0; }
  @media screen and (min-width: 951px) {
    .usa-logo-text {
      display: block;
      font-size: 2.4rem;
      line-height: 1.3; } }

.usa-menu-btn {
  /* stylelint-disable declaration-block-no-ignored-properties */
  background-color: transparent;
  border: 0;
  border-radius: 0;
  font-weight: 400;
  margin: 0;
  padding: 0;
  text-align: left;
  -webkit-font-smoothing: auto;
  background-color: #0071bc;
  color: #ffffff;
  display: inline;
  float: right;
  font-size: 1.3rem;
  height: 4rem;
  line-height: 4rem;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  width: 5.8rem;
  /* stylelint-enable */ }
  .usa-menu-btn:hover {
    background-color: transparent; }
  @media screen and (min-width: 951px) {
    .usa-menu-btn {
      display: none; } }
  .usa-menu-btn:hover {
    color: #ffffff;
    background-color: #205493; }
  .usa-menu-btn:visited {
    color: #ffffff; }

.usa-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: #000000;
  opacity: 0;
  transition: opacity 0.2s ease-in-out;
  visibility: hidden;
  z-index: 8000; }
  .usa-overlay.is-visible {
    opacity: 0.1;
    visibility: visible; }

@media screen and (min-width: 951px) {
  .usa-header-basic .usa-logo {
    bottom: 0;
    position: absolute; } }

@media screen and (min-width: 951px) {
  .usa-header-basic .usa-navbar {
    position: relative;
    width: 18%; } }

.usa-header-extended {
  /* stylelint-disable selector-no-id, declaration-no-important  */
  /* stylelint-enable */ }
  @media screen and (min-width: 951px) {
    .usa-header-extended .usa-header {
      border-bottom: none; } }
  @media screen and (min-width: 951px) {
    .usa-header-extended .usa-logo {
      margin-top: 3rem;
      margin-bottom: 3rem; } }
  @media screen and (min-width: 951px) {
    .usa-header-extended em {
      font-size: 3.2rem;
      line-height: 1; } }
  @media screen and (min-width: 951px) {
    .usa-header-extended .usa-navbar {
      max-width: 1040px;
      margin-left: auto;
      margin-right: auto;
      padding-right: 3rem;
      padding-left: 3rem;
      display: block;
      height: auto; }
      .usa-header-extended .usa-navbar::after {
        clear: both;
        content: "";
        display: block; } }
  @media screen and (min-width: 951px) {
    .usa-header-extended .usa-nav {
      border-top: 1px solid #d6d7d9;
      float: none;
      padding: 0;
      width: 100%; } }
  @media screen and (min-width: 951px) {
    .usa-header-extended .usa-nav-inner {
      max-width: 1040px;
      margin-left: auto;
      margin-right: auto;
      padding-right: 3rem;
      padding-left: 1.5rem;
      position: relative; }
      .usa-header-extended .usa-nav-inner::after {
        clear: both;
        content: "";
        display: block; } }
  @media screen and (min-width: 951px) {
    .usa-header-extended .usa-nav-primary::after {
      clear: both;
      content: "";
      display: block; } }
  .usa-header-extended .usa-nav-primary button[aria-expanded=false], .usa-header-extended .usa-nav-primary button[aria-expanded=true] {
    /* stylelint-disable-line selector-no-qualifying-type */ }
    @media screen and (min-width: 951px) {
      .usa-header-extended .usa-nav-primary button[aria-expanded=false], .usa-header-extended .usa-nav-primary button[aria-expanded=true] {
        /* stylelint-disable-line selector-no-qualifying-type */
        background-position: right 1.5rem top 53%; } }
  @media screen and (min-width: 951px) {
    .usa-header-extended .usa-nav-link {
      padding-top: 1.8rem;
      padding-bottom: 1.8rem; } }
  @media screen and (min-width: 951px) {
    .usa-header-extended .usa-nav-submenu .usa-grid-full {
      padding-left: 1.2rem; } }
  @media screen and (min-width: 951px) {
    .usa-header-extended .usa-megamenu {
      padding-left: 3rem; } }
  .usa-header-extended .usa-search[hidden] {
    display: block !important; }
    @media screen and (min-width: 951px) {
      .usa-header-extended .usa-search[hidden] {
        display: none !important; } }

.usa-hero {
  padding-top: 3rem;
  padding-bottom: 3rem;
  background-image: url("../vendor/uswds/img/hero.png");
  background-position: center;
  background-size: cover; }
  .usa-hero .usa-button {
    color: #ffffff; }

.usa-section-dark .usa-hero-link {
  color: #02bfe7; }

.usa-hero-callout {
  background-color: #112e51;
  padding: 3rem; }
  @media screen and (min-width: 481px) {
    .usa-hero-callout {
      max-width: 30rem; } }
  .usa-hero-callout > *:first-child {
    margin-top: 0;
    margin-bottom: 2rem; }

.usa-hero-callout-alt {
  color: #ffffff;
  display: block; }

.usa-layout-docs {
  display: flex;
  flex-direction: column; }
  @media screen and (min-width: 1201px) {
    .usa-layout-docs {
      display: inherit; } }
  .usa-layout-docs .usa-grid > :first-child:not(.usa-width-*) {
    margin-top: 0; }
  .usa-layout-docs .usa-grid > :last-child:not(.usa-width-*) {
    margin-bottom: 0; }

.usa-layout-docs-sidenav {
  order: 2; }

.usa-layout-docs-main_content {
  margin-bottom: 3rem;
  order: 1; }
  @media screen and (min-width: 1201px) {
    .usa-layout-docs-main_content {
      margin-bottom: 0; } }
  .usa-layout-docs-main_content > :first-child {
    margin-top: 0; }

.usa-media_block-img {
  float: left;
  margin-right: 1rem; }

.usa-media_block-body {
  overflow: hidden; }

.usa-navbar {
  border-bottom: 1px solid #aeb0b5;
  height: 4rem; }
  @media screen and (min-width: 951px) {
    .usa-navbar {
      border-bottom: none;
      display: inline-block;
      height: 7.8rem; } }

.usa-nav-link {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased; }
  @media screen and (min-width: 951px) {
    .usa-nav-link:hover span {
      border-bottom: 0.4rem solid #0071bc;
      padding-bottom: 0.6rem; } }
  @media screen and (min-width: 951px) {
    .usa-nav-link.usa-accordion-button span {
      margin-right: 0;
      padding-right: 1.5rem; } }

@media screen and (min-width: 951px) {
  .usa-nav-container {
    max-width: 1040px;
    margin-left: auto;
    margin-right: auto;
    padding-right: 3rem;
    padding-left: 3rem; }
    .usa-nav-container::after {
      clear: both;
      content: "";
      display: block; } }

.usa-nav {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: auto;
  background: #ffffff;
  border-left: 1px solid #aeb0b5;
  border-right: 0;
  display: none;
  flex-direction: column;
  overflow-y: auto;
  padding: 2rem;
  width: 26rem;
  z-index: 9000; }

@keyframes slidein-left {
  from {
    transform: translateX(26rem); }
  to {
    transform: translateX(0); } }
  @media screen and (min-width: 951px) {
    .usa-nav {
      padding-top: 4.5rem;
      padding-right: 0;
      padding-bottom: 0;
      border-left: none;
      display: block;
      float: right;
      overflow-y: visible;
      position: relative;
      transform: translateX(0);
      width: auto; } }
  .usa-nav.is-visible {
    animation: slidein-left 0.3s ease-in-out;
    display: flex; }
  .usa-nav nav {
    margin-top: 6rem;
    min-height: 100%; }
    @media screen and (min-width: 951px) {
      .usa-nav nav {
        margin-top: 0; } }
  .usa-nav .usa-current {
    border-left: 4px solid #0071bc;
    color: #0071bc;
    font-weight: 700;
    padding-left: 1.4rem; }
    @media screen and (min-width: 951px) {
      .usa-nav .usa-current {
        color: #212121; } }
  .usa-nav .usa-button {
    width: 100%; }
  @media screen and (min-width: 951px) {
    .usa-nav .usa-search {
      margin-left: 1.5rem;
      top: 4px; } }

.usa-nav-primary {
  margin-top: 0;
  margin-bottom: 0;
  list-style-type: none;
  padding-left: 0;
  margin-top: 1.5rem;
  order: 2; }
  .usa-nav-primary > li {
    margin-bottom: 0; }
  .usa-nav-primary > li {
    background-color: transparent;
    border-top: 1px solid #5b616b;
    font-size: 1.7rem; }
    .usa-nav-primary > li:first-child {
      border-top: none; }
  .usa-nav-primary a {
    border: none;
    color: #212121;
    display: block;
    font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    line-height: 1.3;
    padding: 0.85rem 1rem 0.85rem 1.5rem;
    text-decoration: none; }
    .usa-nav-primary a:hover {
      background-color: #f1f1f1;
      color: #0071bc;
      text-decoration: none; }
    .usa-nav-primary a:focus {
      outline-offset: 0;
      position: relative;
      z-index: 1; }
    .usa-nav-primary a.usa-current {
      /* stylelint-disable-line selector-no-qualifying-type */
      border-left: 0.4rem solid #0071bc;
      color: #0071bc;
      font-weight: 700;
      padding-left: 1.1rem; }
  @media screen and (min-width: 951px) {
    .usa-nav-primary {
      display: inline; } }
  @media screen and (min-width: 951px) {
    .usa-nav-primary li {
      border-top: none; } }
  .usa-nav-primary > li {
    width: auto; }
    @media screen and (min-width: 951px) {
      .usa-nav-primary > li {
        display: inline-block; } }
    @media screen and (min-width: 951px) {
      .usa-nav-primary > li > a {
        padding: 1.3rem 1.5rem 2.2rem;
        color: #5b616b;
        font-size: 1.5rem;
        font-weight: 700;
        line-height: 1; } }
    @media screen and (min-width: 951px) {
      .usa-nav-primary > li > a:hover {
        background-color: transparent; } }
  @media screen and (min-width: 951px) {
    .usa-nav-primary a {
      padding-top: 0.75rem;
      padding-bottom: 0.75rem; } }
  .usa-nav-primary button {
    background-color: transparent;
    border: 0;
    border-radius: 0;
    font-weight: 400;
    margin: 0;
    padding: 0;
    text-align: left;
    -webkit-font-smoothing: auto;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    font-weight: 400;
    line-height: 1.3;
    padding: 0.85rem 1.5rem 0.85rem 1.8rem; }
    .usa-nav-primary button:hover {
      background-color: transparent; }
    @media screen and (min-width: 951px) {
      .usa-nav-primary button {
        padding: 1.3rem 1.5rem 2.2rem;
        color: #5b616b;
        font-size: 1.5rem;
        font-weight: 700;
        line-height: 1;
        width: initial; } }
    .usa-nav-primary button:focus, .usa-nav-primary button:active {
      box-shadow: 2px dotted #aeb0b5; }
    .usa-nav-primary button:hover {
      background-color: #f1f1f1;
      color: #0071bc; }
      @media screen and (min-width: 951px) {
        .usa-nav-primary button:hover {
          background-color: transparent; } }
    .usa-nav-primary button[aria-expanded=false] {
      /* stylelint-disable-line selector-no-qualifying-type */
      background-image: url("../vendor/uswds/img/plus-alt.png");
      background-image: url("../vendor/uswds/img/plus-alt.svg");
      background-repeat: no-repeat;
      background-position: right 0 center;
      background-size: 1rem; }
      @media screen and (min-width: 951px) {
        .usa-nav-primary button[aria-expanded=false] {
          background-image: url("../vendor/uswds/img/angle-arrow-down.png");
          background-image: url("../vendor/uswds/img/angle-arrow-down.svg");
          background-position: right 1.5rem top 40%; } }
      @media screen and (min-width: 951px) {
        .usa-nav-primary button[aria-expanded=false]:hover {
          background-image: url("../vendor/uswds/img/angle-arrow-down-primary.png");
          background-image: url("../vendor/uswds/img/angle-arrow-down-primary.svg"); } }
    .usa-nav-primary button[aria-expanded=true] {
      /* stylelint-disable-line selector-no-qualifying-type */
      background-image: url("../vendor/uswds/img/minus-alt.png");
      background-image: url("../vendor/uswds/img/minus-alt.svg");
      background-repeat: no-repeat;
      background-position: right 0 center;
      background-size: 1rem; }
      @media screen and (min-width: 951px) {
        .usa-nav-primary button[aria-expanded=true] {
          background-color: #112e51;
          color: #ffffff;
          background-image: url("../vendor/uswds/img/angle-arrow-down-hover.png");
          background-image: url("../vendor/uswds/img/angle-arrow-down-hover.svg");
          background-position: right 1.5rem top 40%; }
          .usa-nav-primary button[aria-expanded=true]:hover {
            background-color: #112e51; }
          .usa-nav-primary button[aria-expanded=true] span {
            border-bottom: 0.4rem solid #0071bc;
            padding-bottom: 0.6rem;
            color: #ffffff; } }
  @media screen and (min-width: 951px) {
    .usa-nav-primary a.usa-current,
    .usa-nav-primary .usa-current {
      border-left: 0;
      padding-left: 1.5rem; }
      .usa-nav-primary a.usa-current:hover span,
      .usa-nav-primary .usa-current:hover span {
        color: #0071bc; }
      .usa-nav-primary a.usa-current span,
      .usa-nav-primary .usa-current span {
        border-bottom: 0.4rem solid #0071bc;
        padding-bottom: 0.6rem;
        color: #212121; } }

@media screen and (min-width: 951px) {
  .usa-header-extended .usa-nav-link:hover span {
    border-bottom: 0.7rem solid #0071bc;
    padding-bottom: 0.9rem; } }

.usa-header-extended .usa-nav-primary button[aria-expanded=true] {
  /* stylelint-disable-line selector-no-qualifying-type */ }
  @media screen and (min-width: 951px) {
    .usa-header-extended .usa-nav-primary button[aria-expanded=true] span {
      border-bottom: 0.7rem solid #0071bc;
      padding-bottom: 0.9rem; } }

@media screen and (min-width: 951px) {
  .usa-header-extended .usa-nav-primary .usa-current span {
    border-bottom: 0.7rem solid #0071bc;
    padding-bottom: 0.9rem; } }

.usa-nav-secondary {
  margin-top: 1.5rem; }
  @media screen and (min-width: 951px) {
    .usa-nav-secondary {
      margin-top: 0;
      position: absolute;
      right: 3rem;
      top: -5.7rem; } }
  .usa-nav-secondary .usa-search {
    margin-top: 1.5rem;
    margin-bottom: 0; }
    @media screen and (min-width: 951px) {
      .usa-nav-secondary .usa-search {
        margin-top: -0.9rem;
        margin-bottom: 0;
        margin-left: 0;
        float: left; } }

.usa-nav-secondary-links {
  margin-top: 2.4rem; }
  @media screen and (min-width: 951px) {
    .usa-nav-secondary-links {
      float: left;
      margin-top: 0; } }
  @media screen and (min-width: 951px) {
    .usa-nav-secondary-links li {
      display: inline;
      padding-left: 0.5rem; } }
  @media screen and (min-width: 951px) {
    .usa-nav-secondary-links li:not(:last-child)::after {
      color: #d6d7d9;
      content: '|';
      padding-left: 0.5rem; } }
  .usa-nav-secondary-links a,
  .usa-nav-secondary-links .usa-header-search-button {
    color: #5b616b;
    display: inline-block;
    font-size: 1.5rem;
    text-decoration: none; }
    .usa-nav-secondary-links a:hover,
    .usa-nav-secondary-links .usa-header-search-button:hover {
      color: #0071bc;
      text-decoration: underline; }
  .usa-nav-secondary-links .usa-header-search-button {
    background-color: transparent;
    border: 0;
    border-radius: 0;
    font-weight: 400;
    margin: 0;
    padding: 0;
    text-align: left;
    -webkit-font-smoothing: auto;
    display: none; }
    .usa-nav-secondary-links .usa-header-search-button:hover {
      background-color: transparent; }
    @media screen and (min-width: 951px) {
      .usa-nav-secondary-links .usa-header-search-button {
        background-image: url("../vendor/uswds/img/search-alt.png");
        background-image: url("../vendor/uswds/img/search-alt.svg");
        background-repeat: no-repeat;
        background-position: left center;
        background-size: 2.2rem;
        display: inline-block;
        padding-left: 2.3rem; } }
    @media screen and (min-width: 951px) {
      .usa-nav-secondary-links .usa-header-search-button.is-hidden {
        display: none; } }
  @media screen and (min-width: 951px) {
    .usa-nav-secondary-links a.usa-current {
      border-left: 0;
      padding-left: 0; } }

.usa-nav-submenu {
  margin-top: 0;
  margin-bottom: 0;
  list-style-type: none;
  padding-left: 0;
  margin: 0;
  width: 100%; }
  .usa-nav-submenu > li {
    margin-bottom: 0; }
  .usa-nav-submenu li {
    border: none;
    font-size: 1.5rem; }
  .usa-nav-submenu a {
    padding-left: 2.8rem;
    line-height: 1.3; }
    .usa-nav-submenu a:hover, .usa-nav-submenu a.usa-current {
      /* stylelint-disable-line selector-no-qualifying-type */
      border: none;
      padding-left: 2.8rem; }
  .usa-nav-submenu .usa-sidenav-sub_list a {
    padding-left: 3.8rem; }
    .usa-nav-submenu .usa-sidenav-sub_list a:focus {
      outline-offset: 0; }
    .usa-nav-submenu .usa-sidenav-sub_list a:hover {
      padding-left: 3.8rem; }
  @media screen and (min-width: 951px) {
    .usa-nav-submenu {
      margin-top: 0;
      margin-bottom: 0;
      list-style-type: none;
      padding-left: 0;
      padding-top: 0.75rem;
      padding-bottom: 0.9rem;
      background-color: #112e51;
      width: 21.5rem;
      position: absolute; }
      .usa-nav-submenu > li {
        margin-bottom: 0; } }
  .usa-nav-submenu[aria-hidden=true] {
    display: none; }
  @media screen and (min-width: 951px) {
    .usa-nav-submenu a {
      color: #ffffff;
      padding-left: 1.5rem; } }
  @media screen and (min-width: 951px) {
    .usa-nav-submenu a:hover {
      background-color: #112e51;
      color: #ffffff;
      padding-left: 1.5rem;
      text-decoration: underline; } }
  .usa-nav-submenu li {
    font-size: 1.5rem;
    margin-bottom: 0; }

.usa-nav-close {
  background-color: transparent;
  border: 0;
  border-radius: 0;
  font-weight: 400;
  margin: 0;
  padding: 0;
  text-align: left;
  -webkit-font-smoothing: auto;
  margin: -1.2rem -1.5rem 1.5rem auto;
  color: currentColor;
  float: right;
  height: 4.4rem;
  text-align: center;
  width: 4.4rem; }
  .usa-nav-close:hover {
    background-color: transparent; }
  .usa-nav-close:hover {
    color: currentColor; }
  @media screen and (min-width: 951px) {
    .usa-nav-close {
      display: none; } }
  .usa-nav-close img {
    width: 1.3rem; }
  .usa-nav-close + * {
    clear: both; }

.usa-mobile_nav-active {
  overflow: hidden; }

@media screen and (min-width: 951px) {
  .usa-megamenu {
    padding-top: 3.15rem;
    padding-bottom: 3.15rem;
    left: -1rem;
    width: 100%; } }

@media screen and (min-width: 951px) {
  .usa-megamenu::before {
    background-color: #112e51;
    content: '';
    display: block;
    height: 100%;
    position: absolute;
    top: 0;
    width: 1000%;
    right: 100%; } }

@media screen and (min-width: 951px) {
  .usa-megamenu::after {
    background-color: #112e51;
    content: '';
    display: block;
    height: 100%;
    position: absolute;
    top: 0;
    width: 1000%;
    left: 100%; } }

@media screen and (min-width: 951px) {
  .usa-header-basic-megamenu .usa-nav {
    padding-left: 0;
    padding-top: 0;
    width: 100%; } }

.usa-header-basic-megamenu .usa-nav-inner {
  display: flex;
  flex-direction: column; }
  @media screen and (min-width: 951px) {
    .usa-header-basic-megamenu .usa-nav-inner {
      display: block;
      float: right;
      margin-top: -3.8rem; } }

@media screen and (min-width: 951px) {
  .usa-header-basic-megamenu .usa-nav-submenu .usa-grid-full {
    margin-left: -1.8rem; } }

@media screen and (min-width: 951px) {
  .usa-megamenu-col {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 23.23176%; }
    .usa-megamenu-col:last-child {
      margin-right: 0; }
    .usa-megamenu-col:nth-child(2n) {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 23.23176%; }
      .usa-megamenu-col:nth-child(2n):last-child {
        margin-right: 0; }
    .usa-megamenu-col:nth-child(4n) {
      margin-right: 0; } }

.usa-megamenu-col > ul {
  margin-top: 0;
  margin-bottom: 0;
  list-style-type: none;
  padding-left: 0; }
  .usa-megamenu-col > ul > li {
    margin-bottom: 0; }

.usa-search {
  max-width: none;
  position: relative; }
  .usa-search::after {
    clear: both;
    content: "";
    display: block; }
  .usa-search [type=submit],
  .usa-search .usa-search-submit {
    background-image: url("../vendor/uswds/img/search.png");
    background-image: url("../vendor/uswds/img/search.svg");
    background-position: 50%;
    background-repeat: no-repeat;
    border-bottom-left-radius: 0;
    border-top-left-radius: 0;
    height: 3.3rem;
    margin: 0;
    padding: 0;
    width: 4.5rem; }
    @media screen and (min-width: 481px) {
      .usa-search [type=submit],
      .usa-search .usa-search-submit {
        background-image: none;
        width: 8.5rem; } }
  @media screen and (min-width: 481px) {
    .usa-search.usa-search-big [type=search],
    .usa-search.usa-search-big .usa-search-input {
      font-size: 1.7rem;
      height: 4.4rem;
      width: calc(100% - 11.6rem); }
    .usa-search.usa-search-big [type=submit],
    .usa-search.usa-search-big .usa-search-submit {
      font-size: 2rem;
      height: 4.4rem;
      width: 11.6rem; } }
  @media screen and (min-width: 481px) {
    .usa-search.usa-search-small [type=search],
    .usa-search.usa-search-small .usa-search-input {
      width: calc(100% - 4.5rem); }
    .usa-search.usa-search-small [type=submit],
    .usa-search.usa-search-small .usa-search-submit {
      background-image: url("../vendor/uswds/img/search.png");
      background-image: url("../vendor/uswds/img/search.svg");
      background-position: 50%;
      background-repeat: no-repeat;
      width: 4.5rem; } }
  @media screen and (max-width: 950px) {
    .usa-search.usa-search-small.usa-sr-only {
      left: auto;
      position: relative; } }

input[type="search"] {
  /* stylelint-disable-line selector-no-qualifying-type */
  box-sizing: border-box;
  appearance: none; }

[type=search],
.usa-search-input {
  padding-top: 0;
  padding-bottom: 0;
  border-bottom-right-radius: 0;
  border-right: none;
  border-top-right-radius: 0;
  box-sizing: border-box;
  float: left;
  font-size: 1.4rem;
  height: 3.3rem;
  margin: 0;
  width: calc(100% - 4.5rem); }
  @media screen and (min-width: 481px) {
    [type=search],
    .usa-search-input {
      width: calc(100% - 8.5rem); } }

.usa-search-submit-text {
  position: absolute;
  left: -999em; }
  @media screen and (min-width: 481px) {
    .usa-search-submit-text {
      position: static; } }

.usa-section {
  padding-top: 3rem;
  padding-bottom: 3rem; }
  @media screen and (min-width: 600px) {
    .usa-section {
      padding-top: 6rem;
      padding-bottom: 6rem; } }

.usa-section-light {
  background-color: #f1f1f1; }

.usa-section-dark {
  background-color: #112e51;
  color: #ffffff; }
  .usa-section-dark h1,
  .usa-section-dark h2,
  .usa-section-dark h3,
  .usa-section-dark h4,
  .usa-section-dark h5,
  .usa-section-dark h6 {
    color: #02bfe7; }
  .usa-section-dark p {
    color: #ffffff; }
  .usa-section-dark a {
    color: #d6d7d9; }
    .usa-section-dark a:hover {
      color: #ffffff; }

.usa-sidenav-list {
  margin-top: 0;
  margin-bottom: 0;
  list-style-type: none;
  padding-left: 0;
  border-bottom: 1px solid;
  border-top: 1px solid; }
  .usa-sidenav-list > li {
    margin-bottom: 0; }
  .usa-sidenav-list > li {
    background-color: transparent;
    border-top: 1px solid #5b616b;
    font-size: 1.7rem; }
    .usa-sidenav-list > li:first-child {
      border-top: none; }
  .usa-sidenav-list a {
    border: none;
    color: #212121;
    display: block;
    font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    line-height: 1.3;
    padding: 0.85rem 1rem 0.85rem 1.5rem;
    text-decoration: none; }
    .usa-sidenav-list a:hover {
      background-color: #f1f1f1;
      color: #0071bc;
      text-decoration: none; }
    .usa-sidenav-list a:focus {
      outline-offset: 0;
      position: relative;
      z-index: 1; }
    .usa-sidenav-list a.usa-current {
      /* stylelint-disable-line selector-no-qualifying-type */
      border-left: 0.4rem solid #0071bc;
      color: #0071bc;
      font-weight: 700;
      padding-left: 1.1rem; }
  @media screen and (min-width: 1201px) {
    .usa-sidenav-list {
      border-bottom: none;
      border-top: none; } }
  .usa-grid .usa-sidenav-list {
    margin-right: -1.5rem;
    margin-left: -1.5rem; }
    @media screen and (min-width: 600px) {
      .usa-grid .usa-sidenav-list {
        margin-right: 0;
        margin-left: 0; } }

.usa-sidenav-sub_list {
  margin-top: 0;
  margin-bottom: 0;
  list-style-type: none;
  padding-left: 0;
  margin: 0;
  width: 100%; }
  .usa-sidenav-sub_list > li {
    margin-bottom: 0; }
  .usa-sidenav-sub_list li {
    border: none;
    font-size: 1.5rem; }
  .usa-sidenav-sub_list a {
    padding-left: 2.8rem;
    line-height: 1.3; }
    .usa-sidenav-sub_list a:hover, .usa-sidenav-sub_list a.usa-current {
      /* stylelint-disable-line selector-no-qualifying-type */
      border: none;
      padding-left: 2.8rem; }
  .usa-sidenav-sub_list .usa-sidenav-sub_list a {
    padding-left: 3.8rem; }
    .usa-sidenav-sub_list .usa-sidenav-sub_list a:focus {
      outline-offset: 0; }
    .usa-sidenav-sub_list .usa-sidenav-sub_list a:hover {
      padding-left: 3.8rem; }

.usa-layout-docs-sidenav {
  padding-top: 2.4rem; }
  @media screen and (min-width: 1201px) {
    .usa-layout-docs-sidenav {
      padding-top: 0; } }

.usa-skipnav {
  background: transparent;
  color: #212121;
  left: 0;
  padding: 1rem 1.5rem;
  position: absolute;
  top: -4.2rem;
  transition: all 0.2s ease-in-out;
  z-index: 100; }
  .usa-skipnav:focus {
    background: #ffffff;
    left: 0;
    outline: 0;
    position: absolute;
    top: 0;
    transition: all 0.2s ease-in-out; }

/***************************************
  Begin site customizations.
****************************************/
.usa-footer-return-to-top {
  padding-left: 0; }

.site-header-navbar {
  border-bottom: none; }
  @media screen and (min-width: 951px) {
    .site-header-navbar {
      height: 8rem;
      width: 100%;
      display: block; } }

@-moz-document url-prefix() {
  @media screen and (min-width: 951px) {
    .site-header-navbar {
      padding-top: 1px; } } }

.site-header {
  background-color: #003965; }
  @media screen and (min-width: 951px) {
    .site-header {
      border-bottom: none; } }
  .site-header .site-logo {
    margin-left: 1.5rem; }
    @media screen and (min-width: 951px) {
      .site-header .site-logo {
        margin-left: 3rem; } }
  @media screen and (max-width: 349px) {
    .site-header #logo-text {
      display: none; }
    .site-header #logo-text-small {
      display: none; }
    .site-header #logo-text-smallest {
      display: inherit; } }
  @media screen and (min-width: 350px) and (max-width: 481px) {
    .site-header #logo-text {
      display: none; }
    .site-header #logo-text-small {
      display: inherit; }
    .site-header #logo-text-smallest {
      display: none; } }
  @media screen and (min-width: 482px) {
    .site-header #logo-text {
      display: inherit; }
    .site-header #logo-text-small {
      display: none; }
    .site-header #logo-text-smallest {
      display: none; } }
  .site-header .usa-banner {
    padding-bottom: 0; }
  @media screen and (max-width: 480px) {
    .site-header .usa-banner-header {
      padding-top: 0;
      padding-bottom: 0; }
      .site-header .usa-banner-header p {
        padding-top: 5px; } }
  @media screen and (min-width: 481px) {
    .site-header .usa-banner-header p {
      margin-top: 1px; } }
  .site-header .usa-banner-inner {
    max-width: 100%;
    padding-top: 3px;
    padding-bottom: 3px; }
  .site-header .usa-banner-content {
    margin-left: 0; }
  .site-header .usa-button-list {
    float: right;
    display: none;
    margin-top: -5px; }
    @media screen and (min-width: 951px) {
      .site-header .usa-button-list {
        line-height: 8rem;
        margin-top: 0;
        display: block;
        padding-right: 3rem; } }
    .site-header .usa-button-list li {
      display: inline;
      font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; }
      .site-header .usa-button-list li:last-child .usa-button {
        margin-right: 0; }

@media screen and (min-width: 951px) {
  .site-logo {
    margin-top: 0; } }

.site-logo a {
  color: #ffffff; }

.site-logo em {
  font-family: "Merriweather", "Georgia", "Cambria", "Times New Roman", "Times", serif;
  font-size: 1.4rem;
  line-height: 4rem; }
  @media screen and (min-width: 951px) {
    .site-logo em {
      font-size: 2.6rem !important; } }
  @media screen and (min-width: 951px) {
    .site-logo em {
      font-size: 3rem;
      line-height: 8rem; } }

.sticky {
  position: -webkit-sticky;
  position: sticky;
  top: 0; }
  .sticky:before, .sticky:after {
    content: '';
    display: table; }

.sidenav {
  display: none;
  clear: both; }
  @media screen and (min-width: 951px) {
    .sidenav {
      display: block;
      float: left;
      height: 100vh;
      margin-bottom: 525px;
      margin-top: 0px;
      padding-right: 1rem;
      padding-left: 3rem;
      overflow: auto;
      top: 0rem;
      width: 250px; } }
  .lt-ie9 .sidenav {
    width: 25%; }
  .sidenav .usa-navigation-submenu[aria-hidden="false"] {
    display: block; }

.main-content {
  font-family: "Merriweather", "Georgia", "Cambria", "Times New Roman", "Times", serif;
  position: absolute;
  right: 0;
  bottom: 0;
  display: inline-block;
  position: relative;
  width: 100%;
  top: 3rem;
  padding-top: 0;
  margin-top: 0;
  padding-right: 3rem;
  padding-left: 3rem;
  font-size: 1.5rem; }
  .main-content p, .main-content li {
    line-height: 1.7; }
  .main-content p, .main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6, .main-content ul, .main-content ol {
    max-width: 95ch !important; }
  @media screen and (min-width: 951px) {
    .main-content {
      width: calc(100% - 250px);
      top: 0; } }
  .lt-ie9 .main-content {
    width: 75%; }
  @media screen and (max-width: 481px) {
    .main-content h1 {
      font-size: 3rem; }
    .main-content h2 {
      font-size: 2.2rem; }
    .main-content h3 {
      font-size: 1.7rem; } }
  .main-content h1 {
    display: inline-block;
    margin-top: 0.2em;
    margin-bottom: 0.5em;
    padding-bottom: 0px; }
  .main-content h2 {
    margin-top: 12px;
    margin-bottom: 15px;
    color: #205493; }
  .main-content h4 {
    margin-top: 40px;
    margin-bottom: 5px; }

.sidenav-mobile {
  clear: both; }
  .sidenav-mobile .usa-button.usa-button-outline-inverse {
    box-shadow: inset 0 0 0 2px #0071bc;
    color: #0071bc; }
    .sidenav-mobile .usa-button.usa-button-outline-inverse:hover {
      box-shadow: inset 0 0 0 2px #205493;
      color: #205493; }
  @media screen and (min-width: 951px) {
    .sidenav-mobile {
      display: none; } }
  .sidenav-mobile .usa-sidenav-sub_list[aria-hidden=true] {
    display: none; }
  .sidenav-mobile li > button {
    background-color: transparent;
    border: 0;
    border-radius: 0;
    font-weight: 400;
    margin: 0;
    padding: 0;
    text-align: left;
    -webkit-font-smoothing: auto;
    font-weight: 400;
    padding: 1.4rem 1.5rem 1rem 1.8rem; }
    .sidenav-mobile li > button:hover {
      background-color: transparent; }
    .sidenav-mobile li > button:hover {
      background-color: #f1f1f1;
      color: #0071bc; }
    .sidenav-mobile li > button[aria-expanded=false] {
      background-image: url("../vendor/uswds/img/plus-alt.png");
      background-image: url("../vendor/uswds/img/plus-alt.svg");
      background-repeat: no-repeat;
      background-position: right 0 center;
      background-size: 1rem; }
    .sidenav-mobile li > button[aria-expanded=true] {
      background-image: url("../vendor/uswds/img/minus-alt.png");
      background-image: url("../vendor/uswds/img/minus-alt.svg");
      background-repeat: no-repeat;
      background-position: right 0 center;
      background-size: 1rem; }
  .sidenav-mobile .usa-button-list {
    margin-top: 4rem; }

pre {
  max-width: 80%;
  font-size: 0.875em;
  overflow-y: scroll;
  background-color: #f1f2f2;
  padding: 10px; }

p > code, li > code {
  padding: 2px 4px;
  background-color: #eaeaff;
  border: 1px solid #d5d5d5;
  font-size: 10pt;
  font-family: monospace; }

a.usa-sidenav-edit {
  color: #0072ce;
  text-decoration: underline; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvdXN3ZHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvY29yZS9fdmFyaWFibGVzLXZlbmRvci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvX2JvdXJib24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL3NldHRpbmdzL19wcmVmaXhlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvc2V0dGluZ3MvX3B4LXRvLWVtLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9zZXR0aW5ncy9fYXNzZXQtcGlwZWxpbmUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2Z1bmN0aW9ucy9fYXNzaWduLWlucHV0cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZnVuY3Rpb25zL19jb250YWlucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZnVuY3Rpb25zL19jb250YWlucy1mYWxzeS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZnVuY3Rpb25zL19pcy1sZW5ndGguc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2Z1bmN0aW9ucy9faXMtbGlnaHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2Z1bmN0aW9ucy9faXMtbnVtYmVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9mdW5jdGlvbnMvX2lzLXNpemUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2Z1bmN0aW9ucy9fcHgtdG8tZW0uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2Z1bmN0aW9ucy9fcHgtdG8tcmVtLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9mdW5jdGlvbnMvX3NoYWRlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9mdW5jdGlvbnMvX3N0cmlwLXVuaXRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9mdW5jdGlvbnMvX3RpbnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2Z1bmN0aW9ucy9fdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9mdW5jdGlvbnMvX3VucGFjay5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZnVuY3Rpb25zL19tb2R1bGFyLXNjYWxlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9oZWxwZXJzL19jb252ZXJ0LXVuaXRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9oZWxwZXJzL19kaXJlY3Rpb25hbC12YWx1ZXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2hlbHBlcnMvX2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9oZWxwZXJzL19ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9oZWxwZXJzL19saW5lYXItYW5nbGUtcGFyc2VyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9oZWxwZXJzL19saW5lYXItZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9oZWxwZXJzL19saW5lYXItcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvaGVscGVycy9fbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvaGVscGVycy9fcmFkaWFsLWFyZy1wYXJzZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2hlbHBlcnMvX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9oZWxwZXJzL19yYWRpYWwtZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9oZWxwZXJzL19yZW5kZXItZ3JhZGllbnRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9oZWxwZXJzL19zaGFwZS1zaXplLXN0cmlwcGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9oZWxwZXJzL19zdHItdG8tbnVtLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9jc3MzL19hbmltYXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2NzczMvX2FwcGVhcmFuY2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2NzczMvX2JhY2tmYWNlLXZpc2liaWxpdHkuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2NzczMvX2JhY2tncm91bmQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2NzczMvX2JhY2tncm91bmQtaW1hZ2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2NzczMvX2JvcmRlci1pbWFnZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvY3NzMy9fY2FsYy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvY3NzMy9fY29sdW1ucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvY3NzMy9fZmlsdGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9jc3MzL19mbGV4LWJveC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvY3NzMy9fZm9udC1mYWNlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9jc3MzL19mb250LWZlYXR1cmUtc2V0dGluZ3Muc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2NzczMvX2hpZHBpLW1lZGlhLXF1ZXJ5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9jc3MzL19oeXBoZW5zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9jc3MzL19pbWFnZS1yZW5kZXJpbmcuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2NzczMvX2tleWZyYW1lcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvY3NzMy9fbGluZWFyLWdyYWRpZW50LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9jc3MzL19wZXJzcGVjdGl2ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvY3NzMy9fcGxhY2Vob2xkZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2NzczMvX3JhZGlhbC1ncmFkaWVudC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvY3NzMy9fc2VsZWN0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9jc3MzL190ZXh0LWRlY29yYXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2NzczMvX3RyYW5zZm9ybS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvY3NzMy9fdHJhbnNpdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvY3NzMy9fdXNlci1zZWxlY3Quc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2FkZG9ucy9fYm9yZGVyLWNvbG9yLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9hZGRvbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2FkZG9ucy9fYm9yZGVyLXN0eWxlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9hZGRvbnMvX2JvcmRlci13aWR0aC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvYWRkb25zL19idXR0b25zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9hZGRvbnMvX2NsZWFyZml4LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9hZGRvbnMvX2VsbGlwc2lzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9hZGRvbnMvX2ZvbnQtc3RhY2tzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9hZGRvbnMvX2hpZGUtdGV4dC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvYWRkb25zL19tYXJnaW4uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2FkZG9ucy9fcGFkZGluZy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvYWRkb25zL19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvYWRkb25zL19wcmVmaXhlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvYWRkb25zL19yZXRpbmEtaW1hZ2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2FkZG9ucy9fc2l6ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvYWRkb25zL190ZXh0LWlucHV0cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvYWRkb25zL190aW1pbmctZnVuY3Rpb25zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9hZGRvbnMvX3RyaWFuZ2xlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9hZGRvbnMvX3dvcmQtd3JhcC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvX2JvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvX25lYXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL19uZWF0LWhlbHBlcnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL21peGlucy9fY2xlYXJmaXguc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2Z1bmN0aW9ucy9fcHJpdmF0ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZnVuY3Rpb25zL19uZXctYnJlYWtwb2ludC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvc2V0dGluZ3MvX2dyaWQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL3NldHRpbmdzL192aXN1YWwtZ3JpZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvc2V0dGluZ3MvX2Rpc2FibGUtd2FybmluZ3Muc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2dyaWQvX3ByaXZhdGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2dyaWQvX2JveC1zaXppbmcuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2dyaWQvX29tZWdhLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9ncmlkL19vdXRlci1jb250YWluZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2dyaWQvX3NwYW4tY29sdW1ucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZ3JpZC9fcm93LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9ncmlkL19zaGlmdC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZ3JpZC9fcGFkLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9ncmlkL19maWxsLXBhcmVudC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZ3JpZC9fbWVkaWEuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2dyaWQvX3RvLWRlcHJlY2F0ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZ3JpZC9fdmlzdWFsLWdyaWQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2dyaWQvX2Rpc3BsYXktY29udGV4dC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZ3JpZC9fZGlyZWN0aW9uLWNvbnRleHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL19ub3JtYWxpemUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvY29yZS9fdmFyaWFibGVzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2NvcmUvX2ZvbnRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2NvcmUvX2dyaWQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvY29yZS9fdXRpbGl0aWVzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2NvcmUvX2Jhc2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvZWxlbWVudHMvX2J1dHRvbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvZWxlbWVudHMvX2VtYmVkLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2VsZW1lbnRzL19maWd1cmUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvZWxlbWVudHMvX2lucHV0cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9lbGVtZW50cy9fbGFiZWxzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2VsZW1lbnRzL19saXN0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2VsZW1lbnRzL190YWJsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9lbGVtZW50cy9fdHlwb2dyYXBoeS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb25zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2NvbXBvbmVudHMvX2FsZXJ0cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9jb21wb25lbnRzL19iYW5uZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvY29tcG9uZW50cy9fZm9vdGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2NvbXBvbmVudHMvX2Zvcm1zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2NvbXBvbmVudHMvX2dyYXBoaWMtbGlzdC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9jb21wb25lbnRzL19oZWFkZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvY29tcG9uZW50cy9faGVyby5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9jb21wb25lbnRzL19sYXlvdXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvY29tcG9uZW50cy9fbWVkaWEtYmxvY2suc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvY29tcG9uZW50cy9fbmF2aWdhdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9jb21wb25lbnRzL19zZWFyY2guc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvY29tcG9uZW50cy9fc2VjdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9jb21wb25lbnRzL19zaWRlbmF2LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2NvbXBvbmVudHMvX3NraXBuYXYuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBVU1dEUyBTQVNTIHZhcmlhYmxlIG92ZXJyaWRlcyBnbyBoZXJlLCBiZWZvcmUgd2UgaW1wb3J0IFVTV0RTIGl0c2VsZi5cblxuJGZvbnQtcGF0aDogJy4uL3ZlbmRvci91c3dkcy9mb250cyc7XG4kaW1hZ2UtcGF0aDogJy4uL3ZlbmRvci91c3dkcy9pbWcnO1xuXG5AaW1wb3J0ICd1c3dkcyc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgQmVnaW4gc2l0ZSBjdXN0b21pemF0aW9ucy5cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51c2EtZm9vdGVyLXJldHVybi10by10b3Age1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi5zaXRlLWhlYWRlci1uYXZiYXIge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICBoZWlnaHQ6IDhyZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBGaXJlZm94IGZpeCBzbyB0aGF0IG5hdmJhciBidXR0b25zIHRvIGFsaWduIHJpZ2h0XG4gIEAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKSB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgcGFkZGluZy10b3A6IDFweDtcbiAgICB9XG4gIH1cbn1cblxuLnNpdGUtaGVhZGVyIHtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAzOTY1O1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICB9XG5cbiAgLnNpdGUtbG9nbyB7XG4gICAgbWFyZ2luLWxlZnQ6ICRzaXRlLW1hcmdpbnMtbW9iaWxlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgbWFyZ2luLWxlZnQ6ICRzaXRlLW1hcmdpbnM7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzQ5cHgpIHtcbiAgICAgICNsb2dvLXRleHQge2Rpc3BsYXk6IG5vbmU7fVxuICAgICAgI2xvZ28tdGV4dC1zbWFsbCB7ZGlzcGxheTogbm9uZTt9XG4gICAgICAjbG9nby10ZXh0LXNtYWxsZXN0IHtkaXNwbGF5OiBpbmhlcml0O31cbiAgfVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM1MHB4KSBhbmQgKG1heC13aWR0aDogNDgxcHgpIHtcbiAgICAgICNsb2dvLXRleHQge2Rpc3BsYXk6IG5vbmU7fVxuICAgICAgI2xvZ28tdGV4dC1zbWFsbCB7ZGlzcGxheTogaW5oZXJpdDt9XG4gICAgICAjbG9nby10ZXh0LXNtYWxsZXN0IHtkaXNwbGF5OiBub25lO31cbiAgfVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4MnB4KSB7XG4gICAgICAjbG9nby10ZXh0IHtkaXNwbGF5OiBpbmhlcml0O31cbiAgICAgICNsb2dvLXRleHQtc21hbGwge2Rpc3BsYXk6IG5vbmU7fVxuICAgICAgI2xvZ28tdGV4dC1zbWFsbGVzdCB7ZGlzcGxheTogbm9uZTt9XG4gIH1cblxuICAudXNhLWJhbm5lciB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuICAgIC51c2EtYmFubmVyLWhlYWRlciB7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuXG4gICAgICBwIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0ODFweCkge1xuICAgIC51c2EtYmFubmVyLWhlYWRlciB7XG4gICAgICBwIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC51c2EtYmFubmVyLWlubmVyIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy10b3A6IDNweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICB9XG5cbiAgLnVzYS1iYW5uZXItY29udGVudCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAudXNhLWJ1dHRvbi1saXN0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXJnaW4tdG9wOiAtNXB4O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgbGluZS1oZWlnaHQ6IDhyZW07XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkc2l0ZS1tYXJnaW5zO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1zYW5zO1xuXG4gICAgICAmOmxhc3QtY2hpbGQgLnVzYS1idXR0b24ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5zaXRlLWxvZ28ge1xuICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gIGEge1xuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gIH1cblxuICBlbSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiA0cmVtO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTUxcHgpIHtcbiAgICAgIGZvbnQtc2l6ZTogMi42cmVtICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgZm9udC1zaXplOiAkaDItZm9udC1zaXplO1xuICAgICAgbGluZS1oZWlnaHQ6IDhyZW07XG4gICAgfVxuICB9XG59XG5cbi8vIEhlYWRlciAtLS0tLS0tLS0tLS0tLSAvL1xuLnN0aWNreSB7XG4gIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuXG4gICY6YmVmb3JlLFxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxufVxuXG5cbi8vIFNpZGViYXIgTmF2IC0tLS0tLS0tLSAvL1xuXG4uc2lkZW5hdiB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGNsZWFyOiBib3RoO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG1hcmdpbi1ib3R0b206IDUyNXB4O1xuICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgIHBhZGRpbmctbGVmdDogM3JlbTtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB0b3A6IDByZW07XG4gICAgd2lkdGg6ICR3aWR0aC1uYXYtc2lkZWJhcjtcbiAgfVxuXG4gIC5sdC1pZTkgJiB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuXG4gIC51c2EtbmF2aWdhdGlvbi1zdWJtZW51IHtcbiAgICAmW2FyaWEtaGlkZGVuPVwiZmFsc2VcIl0ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG5cbi8vIE1haW4gQ29udGVudCAtLS0tLS0tLS0gLy9cblxuLm1haW4tY29udGVudCB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1zZXJpZjtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLy8gc3RhcnRpbmc6IG5vdCBzY3JvbGxlZFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICB0b3A6IDNyZW07IC8vIGhlaWdodCBvZiBkaXNjbGFpbWVyICsgbmF2YmFyIG9uIG1vYmlsZVxuXG4gIHBhZGRpbmctdG9wOiAwO1xuICBtYXJnaW4tdG9wOiAwO1xuXG4gIHBhZGRpbmctcmlnaHQ6IDNyZW07XG4gIHBhZGRpbmctbGVmdDogM3JlbTtcblxuICBmb250LXNpemU6IDEuNXJlbTtcblxuICBwLCBsaSB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNztcbiAgfVxuXG4gIHAsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHVsLCBvbCB7XG4gICAgbWF4LXdpZHRoOiA5NWNoICFpbXBvcnRhbnQ7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7JHdpZHRoLW5hdi1zaWRlYmFyfSk7XG4gICAgdG9wOiAwO1xuICB9XG5cbiAgLmx0LWllOSAmIHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgxcHgpIHtcbiAgICBoMSB7Zm9udC1zaXplOiAzcmVtO31cbiAgICBoMiB7Zm9udC1zaXplOiAyLjJyZW07fVxuICAgIGgzIHtmb250LXNpemU6IDEuN3JlbTt9XG4gIH1cblxuICBoMSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDAuMmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gIH1cblxuICBoMiB7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeS1kYXJrZXI7XG4gIH1cblxuICBoNCB7XG4gICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIH1cbn1cblxuQG1peGluIG91dGxpbmUtaW52ZXJzZS1idXR0b24ge1xuICAvLyBUT0RPOiBGaXggdGhpcyB3aXRoIGJ1dHRvbiBtaXhpblxuICAudXNhLWJ1dHRvbi51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICRjb2xvci1wcmltYXJ5O1xuICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICRjb2xvci1wcmltYXJ5LWRhcmtlcjtcbiAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeS1kYXJrZXI7XG4gICAgfVxuICB9XG59XG5cbi5zaWRlbmF2LW1vYmlsZSB7XG4gIGNsZWFyOiBib3RoO1xuXG4gIEBpbmNsdWRlIG91dGxpbmUtaW52ZXJzZS1idXR0b247XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAudXNhLXNpZGVuYXYtc3ViX2xpc3Qge1xuICAgICZbYXJpYS1oaWRkZW49dHJ1ZV0ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICBsaSA+IGJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXVuc3R5bGVkO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtYWw7XG4gICAgcGFkZGluZzogMS40cmVtIDEuNXJlbSAxcmVtIDEuOHJlbTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlc3Q7XG4gICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gICAgfVxuXG4gICAgJlthcmlhLWV4cGFuZGVkPWZhbHNlXSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L3BsdXMtYWx0LnBuZycpO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9wbHVzLWFsdC5zdmcnKTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwIGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMXJlbTtcbiAgICB9XG5cbiAgICAmW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0ge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9taW51cy1hbHQucG5nJyk7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L21pbnVzLWFsdC5zdmcnKTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwIGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMXJlbTtcbiAgICB9XG4gIH1cblxuICAudXNhLWJ1dHRvbi1saXN0IHtcbiAgICBtYXJnaW4tdG9wOiA0cmVtO1xuICB9XG59XG5cbnByZSB7XG4gIG1heC13aWR0aDogODAlO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmMjtcbiAgcGFkZGluZzogMTBweDtcbn1cblxucCA+IGNvZGUsIGxpID4gY29kZSB7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYWVhZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gIGZvbnQtc2l6ZTogMTBwdDtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbn1cblxuYS51c2Etc2lkZW5hdi1lZGl0IHtcbiAgICBjb2xvcjogIzAwNzJjZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiIsIi8qISB1c3dkcyBAdmVyc2lvbiAqL1xuXG4vLyBWZW5kb3IgLS0tLS0tLS0tLS0tLS0gLy9cbkBpbXBvcnQgJ2NvcmUvdmFyaWFibGVzLXZlbmRvcic7XG5AaW1wb3J0ICdsaWIvYm91cmJvbic7XG5AaW1wb3J0ICdsaWIvbmVhdCc7XG5AaW1wb3J0ICdsaWIvbm9ybWFsaXplJztcblxuLy8gQ29yZSAtLS0tLS0tLS0tLS0tLSAvL1xuQGltcG9ydCAnY29yZS92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29yZS9mb250cyc7XG5AaW1wb3J0ICdjb3JlL2dyaWQnO1xuQGltcG9ydCAnY29yZS91dGlsaXRpZXMnO1xuQGltcG9ydCAnY29yZS9iYXNlJztcblxuLy8gRWxlbWVudHMgLS0tLS0tLS0tLS0tLS0gLy9cbi8vIFN0eWxlcyBiYXNpYyBIVE1MIGVsZW1lbnRzXG5AaW1wb3J0ICdlbGVtZW50cy9idXR0b25zJztcbkBpbXBvcnQgJ2VsZW1lbnRzL2VtYmVkJztcbkBpbXBvcnQgJ2VsZW1lbnRzL2ZpZ3VyZSc7XG5AaW1wb3J0ICdlbGVtZW50cy9pbnB1dHMnO1xuQGltcG9ydCAnZWxlbWVudHMvbGFiZWxzJztcbkBpbXBvcnQgJ2VsZW1lbnRzL2xpc3QnO1xuQGltcG9ydCAnZWxlbWVudHMvdGFibGUnO1xuQGltcG9ydCAnZWxlbWVudHMvdHlwb2dyYXBoeSc7XG5cbi8vIENvbXBvbmVudHMgLS0tLS0tLS0tLS0tLS0gLy9cbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9ucyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FsZXJ0cyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Jhbm5lcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Zvb3Rlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Zvcm1zJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZ3JhcGhpYy1saXN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvaGVhZGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvaGVybyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xheW91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lZGlhLWJsb2NrJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbmF2aWdhdGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NlYXJjaCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NlY3Rpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9zaWRlbmF2JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2tpcG5hdic7XG4iLCIvLy8gV2hlbiBzZXQgdG8gdHJ1ZSwgaXQgc2V0cyB0aGUgYm94LXNpemluZyBwcm9wZXJ0eSBvZiBhbGwgZWxlbWVudHMgdG8gYGJvcmRlci1ib3hgLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgaHRtbCB7XG4vLy8gICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbi8vL1xuLy8vICAgKiwgKjo6YWZ0ZXIsICo6OmJlZm9yZSB7XG4vLy8gICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4vLy8gICB9XG4kYm9yZGVyLWJveC1zaXppbmc6IGZhbHNlO1xuIiwiLy8gQm91cmJvbiA0LjIuN1xuLy8gaHR0cDovL2JvdXJib24uaW9cbi8vIENvcHlyaWdodCAyMDExLTIwMTUgdGhvdWdodGJvdCwgaW5jLlxuLy8gTUlUIExpY2Vuc2VcblxuQGltcG9ydCBcInNldHRpbmdzL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvcHgtdG8tZW1cIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9hc3NldC1waXBlbGluZVwiO1xuXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2Fzc2lnbi1pbnB1dHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnMtZmFsc3lcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGVuZ3RoXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxpZ2h0XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLW51bWJlclwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1zaXplXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLXJlbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zaGFkZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zdHJpcC11bml0c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90aW50XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RyYW5zaXRpb24tcHJvcGVydHktbmFtZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy91bnBhY2tcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbW9kdWxhci1zY2FsZVwiO1xuXG5AaW1wb3J0IFwiaGVscGVycy9jb252ZXJ0LXVuaXRzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9kaXJlY3Rpb25hbC12YWx1ZXNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uXCI7XG5AaW1wb3J0IFwiaGVscGVycy9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItYW5nbGUtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItZ3JhZGllbnQtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWFyZy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yZW5kZXItZ3JhZGllbnRzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9zaGFwZS1zaXplLXN0cmlwcGVyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9zdHItdG8tbnVtXCI7XG5cbkBpbXBvcnQgXCJjc3MzL2FuaW1hdGlvblwiO1xuQGltcG9ydCBcImNzczMvYXBwZWFyYW5jZVwiO1xuQGltcG9ydCBcImNzczMvYmFja2ZhY2UtdmlzaWJpbGl0eVwiO1xuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZFwiO1xuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZC1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvYm9yZGVyLWltYWdlXCI7XG5AaW1wb3J0IFwiY3NzMy9jYWxjXCI7XG5AaW1wb3J0IFwiY3NzMy9jb2x1bW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9maWx0ZXJcIjtcbkBpbXBvcnQgXCJjc3MzL2ZsZXgtYm94XCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZhY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5nc1wiO1xuQGltcG9ydCBcImNzczMvaGlkcGktbWVkaWEtcXVlcnlcIjtcbkBpbXBvcnQgXCJjc3MzL2h5cGhlbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2ltYWdlLXJlbmRlcmluZ1wiO1xuQGltcG9ydCBcImNzczMva2V5ZnJhbWVzXCI7XG5AaW1wb3J0IFwiY3NzMy9saW5lYXItZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJjc3MzL3BlcnNwZWN0aXZlXCI7XG5AaW1wb3J0IFwiY3NzMy9wbGFjZWhvbGRlclwiO1xuQGltcG9ydCBcImNzczMvcmFkaWFsLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9zZWxlY3Rpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3RleHQtZGVjb3JhdGlvblwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNmb3JtXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2l0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy91c2VyLXNlbGVjdFwiO1xuXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1jb2xvclwiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItcmFkaXVzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1zdHlsZVwiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItd2lkdGhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYnV0dG9uc1wiO1xuQGltcG9ydCBcImFkZG9ucy9jbGVhcmZpeFwiO1xuQGltcG9ydCBcImFkZG9ucy9lbGxpcHNpc1wiO1xuQGltcG9ydCBcImFkZG9ucy9mb250LXN0YWNrc1wiO1xuQGltcG9ydCBcImFkZG9ucy9oaWRlLXRleHRcIjtcbkBpbXBvcnQgXCJhZGRvbnMvbWFyZ2luXCI7XG5AaW1wb3J0IFwiYWRkb25zL3BhZGRpbmdcIjtcbkBpbXBvcnQgXCJhZGRvbnMvcG9zaXRpb25cIjtcbkBpbXBvcnQgXCJhZGRvbnMvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJhZGRvbnMvcmV0aW5hLWltYWdlXCI7XG5AaW1wb3J0IFwiYWRkb25zL3NpemVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdGV4dC1pbnB1dHNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdGltaW5nLWZ1bmN0aW9uc1wiO1xuQGltcG9ydCBcImFkZG9ucy90cmlhbmdsZVwiO1xuQGltcG9ydCBcImFkZG9ucy93b3JkLXdyYXBcIjtcblxuQGltcG9ydCBcImJvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZ1wiO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2xvYmFsIHZhcmlhYmxlcyB0byBlbmFibGUgb3IgZGlzYWJsZSB2ZW5kb3IgcHJlZml4ZXNcblxuJHByZWZpeC1mb3Itd2Via2l0OiAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbW96aWxsYTogICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbWljcm9zb2Z0OiB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itb3BlcmE6ICAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itc3BlYzogICAgICB0cnVlICFkZWZhdWx0O1xuIiwiJGVtLWJhc2U6IDE2cHggIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBIGdsb2JhbCBzZXR0aW5nIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBgJGFzc2V0LXBpcGVsaW5lYCB2YXJpYWJsZSBmb3IgYWxsIGZ1bmN0aW9ucyB0aGF0IGFjY2VwdCBpdC5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcblxuJGFzc2V0LXBpcGVsaW5lOiBmYWxzZSAhZGVmYXVsdDtcbiIsIkBmdW5jdGlvbiBhc3NpZ24taW5wdXRzKCRpbnB1dHMsICRwc2V1ZG86IG51bGwpIHtcbiAgJGxpc3Q6ICgpO1xuXG4gIEBlYWNoICRpbnB1dCBpbiAkaW5wdXRzIHtcbiAgICAkaW5wdXQ6IHVucXVvdGUoJGlucHV0KTtcbiAgICAkaW5wdXQ6IGlmKCRwc2V1ZG8sICRpbnB1dCArIFwiOlwiICsgJHBzZXVkbywgJGlucHV0KTtcbiAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkaW5wdXQsIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxpc3Q7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgaWYgYSBsaXN0IGNvbnRhaW5zIGEgdmFsdWUocykuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3Rcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWx1ZXNcbi8vLyAgIEEgc2luZ2xlIHZhbHVlIG9yIGxpc3Qgb2YgdmFsdWVzIHRvIGNoZWNrIGZvci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgY29udGFpbnMoJGxpc3QsICR2YWx1ZSlcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBjb250YWlucygkbGlzdCwgJHZhbHVlcy4uLikge1xuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XG4gICAgQGlmIHR5cGUtb2YoaW5kZXgoJGxpc3QsICR2YWx1ZSkpICE9IFwibnVtYmVyXCIge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgaWYgYSBsaXN0IGRvZXMgbm90IGNvbnRhaW5zIGEgdmFsdWUuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3Rcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gY29udGFpbnMtZmFsc3koJGxpc3QpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xuICAgIEBpZiBub3QgJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIGxlbmd0aC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcblxuQGZ1bmN0aW9uIGlzLWxlbmd0aCgkdmFsdWUpIHtcbiAgQHJldHVybiB0eXBlLW9mKCR2YWx1ZSkgIT0gXCJudWxsXCIgYW5kIChzdHItc2xpY2UoJHZhbHVlICsgXCJcIiwgMSwgNCkgPT0gXCJjYWxjXCJcbiAgICAgICBvciBpbmRleChhdXRvIGluaGVyaXQgaW5pdGlhbCAwLCAkdmFsdWUpXG4gICAgICAgb3IgKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiIGFuZCBub3QodW5pdGxlc3MoJHZhbHVlKSkpKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb2dyYW1hdGljYWxseSBkZXRlcm1pbmVzIHdoZXRoZXIgYSBjb2xvciBpcyBsaWdodCBvciBkYXJrLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL3JvYm90cy50aG91Z2h0Ym90LmNvbS9jbG9zZXItbG9vay1jb2xvci1saWdodG5lc3Ncbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3IgKEhleCl9ICRjb2xvclxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBpcy1saWdodCgkY29sb3IpXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gaXMtbGlnaHQoJGhleC1jb2xvcikge1xuICAkLWxvY2FsLXJlZDogcmVkKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWdyZWVuOiBncmVlbihyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ibHVlOiBibHVlKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWxpZ2h0bmVzczogKCQtbG9jYWwtcmVkICogMC4yMTI2ICsgJC1sb2NhbC1ncmVlbiAqIDAuNzE1MiArICQtbG9jYWwtYmx1ZSAqIDAuMDcyMikgLyAyNTU7XG5cbiAgQHJldHVybiAkLWxvY2FsLWxpZ2h0bmVzcyA+IDAuNjtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBudW1iZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXG5cbkBmdW5jdGlvbiBpcy1udW1iZXIoJHZhbHVlKSB7XG4gIEByZXR1cm4gY29udGFpbnMoXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCIgMCAxIDIgMyA0IDUgNiA3IDggOSwgJHZhbHVlKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1Mgc2l6ZS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxuXG5AZnVuY3Rpb24gaXMtc2l6ZSgkdmFsdWUpIHtcbiAgQHJldHVybiBpcy1sZW5ndGgoJHZhbHVlKVxuICAgICAgICAgIG9yIGNvbnRhaW5zKFwiZmlsbFwiIFwiZml0LWNvbnRlbnRcIiBcIm1pbi1jb250ZW50XCIgXCJtYXgtY29udGVudFwiLCAkdmFsdWUpO1xufVxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIGVtKDEyKSB3aGVuIHRoZSBwYXJlbnQgaXMgMTZweFxuLy8gaWYgdGhlIHBhcmVudCBpcyBhbm90aGVyIHZhbHVlIHNheSAyNHB4IHdyaXRlIGVtKDEyLCAyNClcblxuQGZ1bmN0aW9uIGVtKCRweHZhbCwgJGJhc2U6ICRlbS1iYXNlKSB7XG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFlbTtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgcmVtKDEyKVxuLy8gQXNzdW1lcyAkZW0tYmFzZSBpcyB0aGUgZm9udC1zaXplIG9mIDxodG1sPlxuXG5AZnVuY3Rpb24gcmVtKCRweHZhbCkge1xuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuXG4gICRiYXNlOiAkZW0tYmFzZTtcbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gIH1cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMXJlbTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCBibGFjay5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxuLy8vICAgVGhlIGFtb3VudCBvZiBibGFjayB0byBiZSBtaXhlZCBpbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgjZmZiYjUyLCA2MCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY0YTIwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJldHVybiB7Q29sb3J9XG5cbkBmdW5jdGlvbiBzaGFkZSgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCMwMDAsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU3RyaXBzIHRoZSB1bml0IGZyb20gYSBudW1iZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoV2l0aCBVbml0KX0gJHZhbHVlXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICRkaW1lbnNpb246IHN0cmlwLXVuaXRzKDEwZW0pO1xuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgJGRpbWVuc2lvbjogMTA7XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXIgKFVuaXRsZXNzKX1cblxuQGZ1bmN0aW9uIHN0cmlwLXVuaXRzKCR2YWx1ZSkge1xuICBAcmV0dXJuICgkdmFsdWUgLyAoJHZhbHVlICogMCArIDEpKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCB3aGl0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxuLy8vICAgVGhlIGFtb3VudCBvZiB3aGl0ZSB0byBiZSBtaXhlZCBpbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCM2ZWNhYTYsIDQwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNhOGRmYzk7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmV0dXJuIHtDb2xvcn1cblxuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkcGVyY2VudCkge1xuICBAcmV0dXJuIG1peCgjZmZmLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsIi8vIFJldHVybiB2ZW5kb3ItcHJlZml4ZWQgcHJvcGVydHkgbmFtZXMgaWYgYXBwcm9wcmlhdGVcbi8vIEV4YW1wbGU6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoKHRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmQpLCBtb3opIC0+IC1tb3otdHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BzLCAkdmVuZG9yOiBmYWxzZSkge1xuICAkbmV3LXByb3BzOiAoKTtcblxuICBAZWFjaCAkcHJvcCBpbiAkcHJvcHMge1xuICAgICRuZXctcHJvcHM6IGFwcGVuZCgkbmV3LXByb3BzLCB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3IpLCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRuZXctcHJvcHM7XG59XG5cbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3I6IGZhbHNlKSB7XG4gIC8vIHB1dCBvdGhlciBwcm9wZXJ0aWVzIHRoYXQgbmVlZCB0byBiZSBwcmVmaXhlZCBoZXJlIGFzd2VsbFxuICBAaWYgJHZlbmRvciBhbmQgJHByb3AgPT0gdHJhbnNmb3JtIHtcbiAgICBAcmV0dXJuIHVucXVvdGUoJy0nKyR2ZW5kb3IrJy0nKyRwcm9wKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkcHJvcDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ29udmVydHMgc2hvcnRoYW5kIHRvIHRoZSA0LXZhbHVlIHN5bnRheC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3J0aGFuZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbjogdW5wYWNrKDFlbSAyZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW46IDFlbSAyZW0gMWVtIDJlbTtcbi8vLyAgIH1cblxuQGZ1bmN0aW9uIHVucGFjaygkc2hvcnRoYW5kKSB7XG4gIEBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMSB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSk7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDIge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAzIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDMpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkc2hvcnRoYW5kO1xuICB9XG59XG4iLCIvLyBTY2FsaW5nIFZhcmlhYmxlc1xuJGdvbGRlbjogICAgICAgICAgIDEuNjE4O1xuJG1pbm9yLXNlY29uZDogICAgIDEuMDY3O1xuJG1ham9yLXNlY29uZDogICAgIDEuMTI1O1xuJG1pbm9yLXRoaXJkOiAgICAgIDEuMjtcbiRtYWpvci10aGlyZDogICAgICAxLjI1O1xuJHBlcmZlY3QtZm91cnRoOiAgIDEuMzMzO1xuJGF1Z21lbnRlZC1mb3VydGg6IDEuNDE0O1xuJHBlcmZlY3QtZmlmdGg6ICAgIDEuNTtcbiRtaW5vci1zaXh0aDogICAgICAxLjY7XG4kbWFqb3Itc2l4dGg6ICAgICAgMS42Njc7XG4kbWlub3Itc2V2ZW50aDogICAgMS43Nzg7XG4kbWFqb3Itc2V2ZW50aDogICAgMS44NzU7XG4kb2N0YXZlOiAgICAgICAgICAgMjtcbiRtYWpvci10ZW50aDogICAgICAyLjU7XG4kbWFqb3ItZWxldmVudGg6ICAgMi42Njc7XG4kbWFqb3ItdHdlbGZ0aDogICAgMztcbiRkb3VibGUtb2N0YXZlOiAgICA0O1xuXG4kbW9kdWxhci1zY2FsZS1yYXRpbzogJHBlcmZlY3QtZm91cnRoICFkZWZhdWx0O1xuJG1vZHVsYXItc2NhbGUtYmFzZTogZW0oJGVtLWJhc2UpICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWU6ICRtb2R1bGFyLXNjYWxlLWJhc2UsICRyYXRpbzogJG1vZHVsYXItc2NhbGUtcmF0aW8pIHtcbiAgJHYxOiBudGgoJHZhbHVlLCAxKTtcbiAgJHYyOiBudGgoJHZhbHVlLCBsZW5ndGgoJHZhbHVlKSk7XG4gICR2YWx1ZTogJHYxO1xuXG4gIC8vIHNjYWxlICR2MiB0byBqdXN0IGFib3ZlICR2MVxuICBAd2hpbGUgJHYyID4gJHYxIHtcbiAgICAkdjI6ICgkdjIgLyAkcmF0aW8pOyAvLyB3aWxsIGJlIG9mZi1ieS0xXG4gIH1cbiAgQHdoaWxlICR2MiA8ICR2MSB7XG4gICAgJHYyOiAoJHYyICogJHJhdGlvKTsgLy8gd2lsbCBmaXggb2ZmLWJ5LTFcbiAgfVxuXG4gIC8vIGNoZWNrIEFGVEVSIHNjYWxpbmcgJHYyIHRvIHByZXZlbnQgZG91YmxlLWNvdW50aW5nIGNvcm5lci1jYXNlXG4gICRkb3VibGUtc3RyYW5kZWQ6ICR2MiA+ICR2MTtcblxuICBAaWYgJGluY3JlbWVudCA+IDAge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGluY3JlbWVudCB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAqICRyYXRpbykgPiAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyICogJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgKiAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJGluY3JlbWVudCA8IDAge1xuICAgIC8vIGFkanVzdCAkdjIgdG8ganVzdCBiZWxvdyAkdjFcbiAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCB7XG4gICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgIH1cblxuICAgIEBmb3IgJGkgZnJvbSAkaW5jcmVtZW50IHRocm91Z2ggLTEge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgLyAkcmF0aW8pIDwgJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxIC8gJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHN0ci10by1udW0gZm4uXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX2NvbnZlcnQtdW5pdHMoJG51bWJlciwgJHVuaXQpIHtcbiAgJHN0cmluZ3M6IFwicHhcIiwgXCJjbVwiLCBcIm1tXCIsIFwiJVwiLCBcImNoXCIsIFwicGljYVwiLCBcImluXCIsIFwiZW1cIiwgXCJyZW1cIiwgXCJwdFwiLCBcInBjXCIsIFwiZXhcIiwgXCJ2d1wiLCBcInZoXCIsIFwidm1pblwiLCBcInZtYXhcIiwgXCJkZWdcIiwgXCJyYWRcIiwgXCJncmFkXCIsIFwidHVyblwiO1xuICAkdW5pdHM6ICAgMXB4LCAxY20sIDFtbSwgMSUsIDFjaCwgMXBpY2EsIDFpbiwgMWVtLCAxcmVtLCAxcHQsIDFwYywgMWV4LCAxdncsIDF2aCwgMXZtaW4sIDF2bWF4LCAxZGVnLCAxcmFkLCAxZ3JhZCwgMXR1cm47XG4gICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICR1bml0KTtcblxuICBAaWYgbm90ICRpbmRleCB7XG4gICAgQHdhcm4gXCJVbmtub3duIHVuaXQgYCN7JHVuaXR9YC5cIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJG51bWJlcikgIT0gXCJudW1iZXJcIiB7XG4gICAgQHdhcm4gXCJgI3skbnVtYmVyfSBpcyBub3QgYSBudW1iZXJgXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEByZXR1cm4gJG51bWJlciAqIG50aCgkdW5pdHMsICRpbmRleCk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBEaXJlY3Rpb25hbC1wcm9wZXJ0eSBtaXhpbnMgYXJlIHNob3J0aGFuZHMgZm9yIHdyaXRpbmcgcHJvcGVydGllcyBsaWtlIHRoZSBmb2xsb3dpbmdcbi8vL1xuLy8vIEBpZ25vcmUgWW91IGNhbiBhbHNvIHVzZSBgZmFsc2VgIGluc3RlYWQgb2YgYG51bGxgLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBkaXJlY3Rpb25hbCB2YWx1ZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZG90dGVkIG51bGwpO1xuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAwIDEwcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIGJvcmRlci10b3Atc3R5bGU6IGRvdHRlZDtcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDA7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9XG5cbkBmdW5jdGlvbiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpIHtcbiAgJG91dHB1dDogbnVsbDtcblxuICAkYTogbnRoKCR2YWxzLCAxKTtcbiAgJGI6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCAyKSk7XG4gICRjOiBpZihsZW5ndGgoJHZhbHMpIDwgMywgJGEsIG50aCgkdmFscywgMykpO1xuICAkZDogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIGlmKGxlbmd0aCgkdmFscykgPCA0LCAyLCA0KSkpO1xuXG4gIEBpZiAkYSA9PSAwIHsgJGE6IDA7IH1cbiAgQGlmICRiID09IDAgeyAkYjogMDsgfVxuICBAaWYgJGMgPT0gMCB7ICRjOiAwOyB9XG4gIEBpZiAkZCA9PSAwIHsgJGQ6IDA7IH1cblxuICBAaWYgJGEgPT0gJGIgYW5kICRhID09ICRjIGFuZCAkYSA9PSAkZCB7ICRvdXRwdXQ6ICRhOyAgICAgICAgICB9XG4gIEBlbHNlIGlmICRhID09ICRjIGFuZCAkYiA9PSAkZCAgICAgICAgIHsgJG91dHB1dDogJGEgJGI7ICAgICAgIH1cbiAgQGVsc2UgaWYgJGIgPT0gJGQgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYzsgICAgfVxuICBAZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjICRkOyB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuXG4vLy8gT3V0cHV0IGRpcmVjdGlvbmFsIHByb3BlcnRpZXMsIGZvciBpbnN0YW5jZSBgbWFyZ2luYC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcmVcbi8vLyAgIFByZWZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN1ZlxuLy8vICAgU3VmZml4IHRvIHVzZVxuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgdmFsdWVzXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbGxhcHNlLWRpcmVjdGlvbmFsc1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcblxuQG1peGluIGRpcmVjdGlvbmFsLXByb3BlcnR5KCRwcmUsICRzdWYsICR2YWxzKSB7XG4gIC8vIFByb3BlcnR5IE5hbWVzXG4gICR0b3A6ICAgICRwcmUgKyBcIi10b3BcIiAgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRib3R0b206ICRwcmUgKyBcIi1ib3R0b21cIiArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRsZWZ0OiAgICRwcmUgKyBcIi1sZWZ0XCIgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRyaWdodDogICRwcmUgKyBcIi1yaWdodFwiICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRhbGw6ICAgICRwcmUgKyAgICAgICAgICAgICBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuXG4gICR2YWxzOiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpO1xuXG4gIEBpZiBjb250YWlucy1mYWxzeSgkdmFscykge1xuICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skdG9wfTogbnRoKCR2YWxzLCAxKTsgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAxKTsgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRyaWdodH06IG50aCgkdmFscywgMik7IH1cbiAgICB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAyIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAxKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDMge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gNCB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDQpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCA0KTsgfVxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgI3skYWxsfTogJHZhbHM7XG4gIH1cbn1cbiIsIi8vIFVzZWQgZm9yIGNyZWF0aW5nIHRoZSBzb3VyY2Ugc3RyaW5nIGZvciBmb250cyB1c2luZyBAZm9udC1mYWNlXG4vLyBSZWZlcmVuY2U6IGh0dHA6Ly9nb28uZ2wvUnUxYktQXG5cbkBmdW5jdGlvbiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpIHtcbiAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICBAcmV0dXJuIGZvbnQtdXJsO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIHVybDtcbiAgfVxufVxuXG5AZnVuY3Rpb24gZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJGFzc2V0LXBpcGVsaW5lLFxuICAkZmlsZS1mb3JtYXRzLFxuICAkZm9udC11cmwpIHtcblxuICAkc3JjOiAoKTtcblxuICAkZm9ybWF0cy1tYXA6IChcbiAgICBlb3Q6ICAgXCIjeyRmaWxlLXBhdGh9LmVvdD8jaWVmaXhcIiBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSxcbiAgICB3b2ZmMjogXCIjeyRmaWxlLXBhdGh9LndvZmYyXCIgZm9ybWF0KFwid29mZjJcIiksXG4gICAgd29mZjogIFwiI3skZmlsZS1wYXRofS53b2ZmXCIgZm9ybWF0KFwid29mZlwiKSxcbiAgICB0dGY6ICAgXCIjeyRmaWxlLXBhdGh9LnR0ZlwiIGZvcm1hdChcInRydWV0eXBlXCIpLFxuICAgIHN2ZzogICBcIiN7JGZpbGUtcGF0aH0uc3ZnIyN7JGZvbnQtZmFtaWx5fVwiIGZvcm1hdChcInN2Z1wiKVxuICApO1xuXG4gIEBlYWNoICRrZXksICR2YWx1ZXMgaW4gJGZvcm1hdHMtbWFwIHtcbiAgICBAaWYgY29udGFpbnMoJGZpbGUtZm9ybWF0cywgJGtleSkge1xuICAgICAgJGZpbGUtcGF0aDogbnRoKCR2YWx1ZXMsIDEpO1xuICAgICAgJGZvbnQtZm9ybWF0OiBudGgoJHZhbHVlcywgMik7XG5cbiAgICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCBmb250LXVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHNyYztcbn1cbiIsIkBmdW5jdGlvbiBfZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtdHlwZSwgJGdyYWRpZW50LXBvc2l0aW9ucykge1xuICBAaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IGxpbmVhcilcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG4gIEBlbHNlIGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuICBAcmV0dXJuICRncmFkaWVudC1wb3NpdGlvbnM7XG59XG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXG5AZnVuY3Rpb24gX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KSB7XG4gICRvZmZzZXQ6IG51bGw7XG4gICR1bml0LXNob3J0OiAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAyLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHVuaXQtbG9uZzogICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gIEBpZiAoJHVuaXQtbG9uZyA9PSBcImdyYWRcIikgb3JcbiAgICAgICgkdW5pdC1sb25nID09IFwidHVyblwiKSB7XG4gICAgJG9mZnNldDogaWYoJHVuaXQtbG9uZyA9PSBcImdyYWRcIiwgLTEwMGdyYWQgKiAzLCAtMC43NXR1cm4pO1xuICB9XG5cbiAgQGVsc2UgaWYgKCR1bml0LXNob3J0ID09IFwiZGVnXCIpIG9yXG4gICAgICAgICAgICgkdW5pdC1zaG9ydCA9PSBcInJhZFwiKSB7XG4gICAgJG9mZnNldDogaWYoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIiwgLTkwICogMywgMS42cmFkKTtcbiAgfVxuXG4gIEBpZiAkb2Zmc2V0IHtcbiAgICAkbnVtOiBfc3RyLXRvLW51bSgkZmlyc3QtdmFsKTtcblxuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAoJG9mZnNldCAtICRudW0pICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaGFzLW11bHRpcGxlLXZhbHM6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcIiBcIik7XG4gICRoYXMtc2luZ2xlLXBvc2l0aW9uOiB1bnF1b3RlKF9wb3NpdGlvbi1mbGlwcGVyKCRmaXJzdC12YWwpICsgXCJcIik7XG4gICRoYXMtYW5nbGU6IGlzLW51bWJlcihzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgMSkpO1xuXG4gIEBpZiAkaGFzLW11bHRpcGxlLXZhbHMge1xuICAgICRncmFkaWVudHM6IF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRoYXMtc2luZ2xlLXBvc2l0aW9uICE9IFwiXCIge1xuICAgICRwb3M6IHVucXVvdGUoJGhhcy1zaW5nbGUtcG9zaXRpb24gKyBcIlwiKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRoYXMtYW5nbGUge1xuICAgIC8vIFJvdGF0ZSBkZWdyZWUgZm9yIHdlYmtpdFxuICAgICRncmFkaWVudHM6IF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCk7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAcmV0dXJuICRncmFkaWVudHM7XG59XG4iLCJAZnVuY3Rpb24gX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpIHtcbiAgJHR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcbiAgJHNwZWM6IG51bGw7XG4gICRkZWdyZWU6IG51bGw7XG4gICRzaWRlOiBudWxsO1xuICAkY29ybmVyOiBudWxsO1xuICAkbGVuZ3RoOiBsZW5ndGgoJHBvcyk7XG4gIC8vIFBhcnNlIFNpZGUgYW5kIGNvcm5lciBwb3NpdGlvbnNcbiAgQGlmICgkbGVuZ3RoID4gMSkge1xuICAgIEBpZiBudGgoJHBvcywgMSkgPT0gXCJ0b1wiIHsgLy8gTmV3ZXIgc3ludGF4XG4gICAgICAkc2lkZTogbnRoKCRwb3MsIDIpO1xuXG4gICAgICBAaWYgJGxlbmd0aCA9PSAyIHsgLy8gZWcuIHRvIHRvcFxuICAgICAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHsgLy8gZWcuIHRvIHRvcCBsZWZ0XG4gICAgICAgICRjb3JuZXI6IG50aCgkcG9zLCAzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAyIHsgLy8gT2xkZXIgc3ludGF4IChcInRvcCBsZWZ0XCIpXG4gICAgICAkc2lkZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDEpKTtcbiAgICAgICRjb3JuZXI6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgfVxuXG4gICAgQGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgICRzcGVjOiB0byAkc2lkZSAkY29ybmVyO1xuICB9XG4gIEBlbHNlIGlmICRsZW5ndGggPT0gMSB7XG4gICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICBAaWYgJHR5cGUgPT0gc3RyaW5nIHtcbiAgICAgICRkZWdyZWU6ICRwb3M7XG4gICAgICAkc3BlYzogdG8gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRkZWdyZWU6IC0yNzAgLSAkcG9zOyAvL3JvdGF0ZSB0aGUgZ3JhZGllbnQgb3Bwb3NpdGUgZnJvbSBzcGVjXG4gICAgICAkc3BlYzogJHBvcztcbiAgICB9XG4gIH1cbiAgJGRlZ3JlZTogdW5xdW90ZSgkZGVncmVlICsgXCIsXCIpO1xuICAkc3BlYzogICB1bnF1b3RlKCRzcGVjICsgXCIsXCIpO1xuICBAcmV0dXJuICRkZWdyZWUgJHNwZWM7XG59XG5cbkBmdW5jdGlvbiBfcG9zaXRpb24tZmxpcHBlcigkcG9zKSB7XG4gIEByZXR1cm4gaWYoJHBvcyA9PSBsZWZ0LCByaWdodCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gcmlnaHQsIGxlZnQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHRvcCwgYm90dG9tLCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSBib3R0b20sIHRvcCwgbnVsbCk7XG59XG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXG5AZnVuY3Rpb24gX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpIHtcbiAgJHZhbC0xOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGhhcy1tdWx0aXBsZS12YWxzIC0gMSk7XG4gICR2YWwtMjogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRoYXMtbXVsdGlwbGUtdmFscyArIDEsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAkdmFsLTM6IG51bGw7XG4gICRoYXMtdmFsLTM6IHN0ci1pbmRleCgkdmFsLTIsIFwiIFwiKTtcblxuICBAaWYgJGhhcy12YWwtMyB7XG4gICAgJHZhbC0zOiBzdHItc2xpY2UoJHZhbC0yLCAkaGFzLXZhbC0zICsgMSwgc3RyLWxlbmd0aCgkdmFsLTIpKTtcbiAgICAkdmFsLTI6IHN0ci1zbGljZSgkdmFsLTIsIDEsICRoYXMtdmFsLTMgLSAxKTtcbiAgfVxuXG4gICRwb3M6IF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMSkgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0yKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTMpO1xuICAkcG9zOiB1bnF1b3RlKCRwb3MgKyBcIlwiKTtcblxuICAvLyBVc2Ugb2xkIHNwZWMgZm9yIHdlYmtpdFxuICBAaWYgJHZhbC0xID09IFwidG9cIiB7XG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIC8vIEJyaW5nIHRoZSBjb2RlIHVwIHRvIHNwZWNcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcbiAgICApO1xuICB9XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSkge1xuICBAZWFjaCAkdmFsdWUgaW4gJGcxLCAkZzIge1xuICAgICRmaXJzdC12YWw6IG50aCgkdmFsdWUsIDEpO1xuICAgICRwb3MtdHlwZTogIHR5cGUtb2YoJGZpcnN0LXZhbCk7XG4gICAgJHNwZWMtYXQtaW5kZXg6IG51bGw7XG5cbiAgICAvLyBEZXRlcm1pbmUgaWYgc3BlYyB3YXMgcGFzc2VkIHRvIG1peGluXG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBsaXN0IHtcbiAgICAgICRzcGVjLWF0LWluZGV4OiBpZihpbmRleCgkdmFsdWUsIGF0KSwgaW5kZXgoJHZhbHVlLCBhdCksIGZhbHNlKTtcbiAgICB9XG4gICAgQGlmICRzcGVjLWF0LWluZGV4IHtcbiAgICAgIEBpZiAkc3BlYy1hdC1pbmRleCA+IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICgkc3BlYy1hdC1pbmRleCAtIDEpIHtcbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHNoYXBlLXNpemUgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHNwZWMtYXQtaW5kZXggPT0gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJGcxOiBudWxsO1xuICAgIH1cblxuICAgIC8vIElmIG5vdCBzcGVjIGNhbGN1bGF0ZSBjb3JyZWN0IHZhbHVlc1xuICAgIEBlbHNlIHtcbiAgICAgIEBpZiAoJHBvcy10eXBlICE9IGNvbG9yKSBvciAoJGZpcnN0LXZhbCAhPSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAgICAgQGlmICgkcG9zLXR5cGUgPT0gbnVtYmVyKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNlbnRlclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInRvcFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInJpZ2h0XCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiYm90dG9tXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwibGVmdFwiKSB7XG5cbiAgICAgICAgICAkcG9zOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHBvcyA9PSAkZzEge1xuICAgICAgICAgICAgJGcxOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIGlmXG4gICAgICAgICAgICgkZmlyc3QtdmFsID09IFwiZWxsaXBzZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNpcmNsZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3Qtc2lkZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3Qtc2lkZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvbnRhaW5cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb3ZlclwiKSB7XG5cbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICR2YWx1ZSA9PSAkZzEge1xuICAgICAgICAgICAgJGcxOiBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlbHNlIGlmICR2YWx1ZSA9PSAkZzIge1xuICAgICAgICAgICAgJGcyOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAcmV0dXJuICRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZTtcbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvcykge1xuICAkc2hhcGUtc2l6ZTogbnRoKCRncmFkaWVudC1wb3MsIDEpO1xuICAkcG9zOiAgICAgICAgbnRoKCRncmFkaWVudC1wb3MsIDIpO1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XG5cbiAgJHByZS1zcGVjOiB1bnF1b3RlKGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpKVxuICAgICAgICAgICAgIHVucXVvdGUoaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sXCIsIG51bGwpKTtcbiAgJHBvcy1zcGVjOiBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XG5cbiAgJHNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyRwb3Mtc3BlY31cIjtcblxuICAvLyBBZGQgY29tbWFcbiAgQGlmICgkc3BlYyAhPSBcIiAgXCIpIHtcbiAgICAkc3BlYzogXCIjeyRzcGVjfSxcIjtcbiAgfVxuXG4gIEByZXR1cm4gJHByZS1zcGVjICRzcGVjO1xufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRpcy1zcGVjLXN5bnRheDogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiYXRcIik7XG5cbiAgQGlmICRpcy1zcGVjLXN5bnRheCBhbmQgJGlzLXNwZWMtc3ludGF4ID4gMSB7XG4gICAgJGtleXdvcmQ6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaXMtc3BlYy1zeW50YXggLSAyKTtcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICAgJHBvczogYXBwZW5kKCRwb3MsICRrZXl3b3JkLCBjb21tYSk7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRpcy1zcGVjLXN5bnRheCA9PSAxIHtcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmIHN0ci1pbmRleCgkaW1hZ2UsIFwiY292ZXJcIikgb3Igc3RyLWluZGV4KCRpbWFnZSwgXCJjb250YWluXCIpIHtcbiAgICBAd2FybiBcIlJhZGlhbC1ncmFkaWVudCBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIGNvbmZvcm0gdG8gbGF0ZXN0IHNwZWMuXCI7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IG51bGwsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwiLy8gVXNlciBmb3IgbGluZWFyIGFuZCByYWRpYWwgZ3JhZGllbnRzIHdpdGhpbiBiYWNrZ3JvdW5kLWltYWdlIG9yIGJvcmRlci1pbWFnZSBwcm9wZXJ0aWVzXG5cbkBmdW5jdGlvbiBfcmVuZGVyLWdyYWRpZW50cygkZ3JhZGllbnQtcG9zaXRpb25zLCAkZ3JhZGllbnRzLCAkZ3JhZGllbnQtdHlwZSwgJHZlbmRvcjogZmFsc2UpIHtcbiAgJHByZS1zcGVjOiBudWxsO1xuICAkc3BlYzogbnVsbDtcbiAgJHZlbmRvci1ncmFkaWVudHM6IG51bGw7XG4gIEBpZiAkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIge1xuICAgIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zIHtcbiAgICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IHJhZGlhbCB7XG4gICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XG4gICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XG4gIH1cblxuICBAaWYgJHZlbmRvciB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IC0jeyR2ZW5kb3J9LSN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHByZS1zcGVjfSAkZ3JhZGllbnRzKTtcbiAgfVxuICBAZWxzZSBpZiAkdmVuZG9yID09IGZhbHNlIHtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogXCIjeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRzcGVjfSAjeyRncmFkaWVudHN9KVwiO1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiB1bnF1b3RlKCR2ZW5kb3ItZ3JhZGllbnRzKTtcbiAgfVxuICBAcmV0dXJuICR2ZW5kb3ItZ3JhZGllbnRzO1xufVxuIiwiQGZ1bmN0aW9uIF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKSB7XG4gICRzaGFwZS1zaXplLXNwZWM6IG51bGw7XG4gIEBlYWNoICR2YWx1ZSBpbiAkc2hhcGUtc2l6ZSB7XG4gICAgQGlmICgkdmFsdWUgPT0gXCJjb3ZlclwiKSBvciAoJHZhbHVlID09IFwiY29udGFpblwiKSB7XG4gICAgICAkdmFsdWU6IG51bGw7XG4gICAgfVxuICAgICRzaGFwZS1zaXplLXNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyR2YWx1ZX1cIjtcbiAgfVxuICBAcmV0dXJuICRzaGFwZS1zaXplLXNwZWM7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIGxpbmVhci9yYWRpYWwtZ3JhZGllbnQtcGFyc2Vycy5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfc3RyLXRvLW51bSgkc3RyaW5nKSB7XG4gIC8vIE1hdHJpY2VzXG4gICRzdHJpbmdzOiBcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIjtcbiAgJG51bWJlcnM6ICAwICAgMSAgIDIgICAzICAgNCAgIDUgICA2ICAgNyAgIDggICA5O1xuXG4gIC8vIFJlc3VsdFxuICAkcmVzdWx0OiAwO1xuICAkZGl2aWRlcjogMDtcbiAgJG1pbnVzOiBmYWxzZTtcblxuICAvLyBMb29waW5nIHRocm91Z2ggYWxsIGNoYXJhY3RlcnNcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCRzdHJpbmcpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHN0cmluZywgJGksICRpKTtcbiAgICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkY2hhcmFjdGVyKTtcblxuICAgIEBpZiAkY2hhcmFjdGVyID09IFwiLVwiIHtcbiAgICAgICRtaW51czogdHJ1ZTtcbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkY2hhcmFjdGVyID09IFwiLlwiIHtcbiAgICAgICRkaXZpZGVyOiAxO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiBub3QgJGluZGV4IHtcbiAgICAgICAgJHJlc3VsdDogaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xuICAgICAgICBAcmV0dXJuIF9jb252ZXJ0LXVuaXRzKCRyZXN1bHQsIHN0ci1zbGljZSgkc3RyaW5nLCAkaSkpO1xuICAgICAgfVxuXG4gICAgICAkbnVtYmVyOiBudGgoJG51bWJlcnMsICRpbmRleCk7XG5cbiAgICAgIEBpZiAkZGl2aWRlciA9PSAwIHtcbiAgICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgIC8vIE1vdmUgdGhlIGRlY2ltYWwgZG90IHRvIHRoZSBsZWZ0XG4gICAgICAgICRkaXZpZGVyOiAkZGl2aWRlciAqIDEwO1xuICAgICAgICAkbnVtYmVyOiAkbnVtYmVyIC8gJGRpdmlkZXI7XG4gICAgICB9XG5cbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyAkbnVtYmVyO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbn1cbiIsIi8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYW5pbWF0aW9ucy8jdGhlLWFuaW1hdGlvbi1uYW1lLXByb3BlcnR5LVxuLy8gRWFjaCBvZiB0aGVzZSBtaXhpbnMgc3VwcG9ydCBjb21tYSBzZXBhcmF0ZWQgbGlzdHMgb2YgdmFsdWVzLCB3aGljaCBhbGxvd3MgZGlmZmVyZW50IHRyYW5zaXRpb25zIGZvciBpbmRpdmlkdWFsIHByb3BlcnRpZXMgdG8gYmUgZGVzY3JpYmVkIGluIGEgc2luZ2xlIHN0eWxlIHJ1bGUuIEVhY2ggdmFsdWUgaW4gdGhlIGxpc3QgY29ycmVzcG9uZHMgdG8gdGhlIHZhbHVlIGF0IHRoYXQgc2FtZSBwb3NpdGlvbiBpbiB0aGUgb3RoZXIgcHJvcGVydGllcy5cblxuQG1peGluIGFuaW1hdGlvbigkYW5pbWF0aW9ucy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24sICRhbmltYXRpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLW5hbWUoJG5hbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1uYW1lLCAkbmFtZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50KCR2YWx1ZXMuLi4pIHtcbiAgLy8gaW5maW5pdGUgfCA8bnVtYmVyPlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAkdmFsdWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWRpcmVjdGlvbigkZGlyZWN0aW9ucy4uLikge1xuICAvLyBub3JtYWwgfCBhbHRlcm5hdGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRpcmVjdGlvbiwgJGRpcmVjdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tcGxheS1zdGF0ZSgkc3RhdGVzLi4uKSB7XG4gIC8vIHJ1bm5pbmcgfCBwYXVzZWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXBsYXktc3RhdGUsICRzdGF0ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWZpbGwtbW9kZSgkbW9kZXMuLi4pIHtcbiAgLy8gbm9uZSB8IGZvcndhcmRzIHwgYmFja3dhcmRzIHwgYm90aFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZmlsbC1tb2RlLCAkbW9kZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gYXBwZWFyYW5jZSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYXBwZWFyYW5jZSwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCJAbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihiYWNrZmFjZS12aXNpYmlsaXR5LCAkdmlzaWJpbGl0eSwgd2Via2l0IHNwZWMpO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2dyb3VuZCBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmRzIHVzaW5nIHNob3J0aGFuZFxuLy8gbm90YXRpb24uXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5cbkBtaXhpbiBiYWNrZ3JvdW5kKCRiYWNrZ3JvdW5kcy4uLikge1xuICAkd2Via2l0LWJhY2tncm91bmRzOiAoKTtcbiAgJHNwZWMtYmFja2dyb3VuZHM6ICgpO1xuXG4gIEBlYWNoICRiYWNrZ3JvdW5kIGluICRiYWNrZ3JvdW5kcyB7XG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAoKTtcbiAgICAkc3BlYy1iYWNrZ3JvdW5kOiAoKTtcbiAgICAkYmFja2dyb3VuZC10eXBlOiB0eXBlLW9mKCRiYWNrZ3JvdW5kKTtcblxuICAgIEBpZiAkYmFja2dyb3VuZC10eXBlID09IHN0cmluZyBvciAkYmFja2dyb3VuZC10eXBlID09IGxpc3Qge1xuICAgICAgJGJhY2tncm91bmQtc3RyOiBpZigkYmFja2dyb3VuZC10eXBlID09IGxpc3QsIG50aCgkYmFja2dyb3VuZCwgMSksICRiYWNrZ3JvdW5kKTtcblxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICR3ZWJraXQtYmFja2dyb3VuZHM6IGFwcGVuZCgkd2Via2l0LWJhY2tncm91bmRzLCAkd2Via2l0LWJhY2tncm91bmQsIGNvbW1hKTtcbiAgICAkc3BlYy1iYWNrZ3JvdW5kczogICBhcHBlbmQoJHNwZWMtYmFja2dyb3VuZHMsICAgJHNwZWMtYmFja2dyb3VuZCwgICBjb21tYSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kOiAkd2Via2l0LWJhY2tncm91bmRzO1xuICBiYWNrZ3JvdW5kOiAkc3BlYy1iYWNrZ3JvdW5kcztcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQtaW1hZ2UgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kIGltYWdlcyB3aXRoXG4vLyBncmFkaWVudHMsIG9yIGZvciBzdHJpbmdpbmcgbXVsdGlwbGUgZ3JhZGllbnRzIHRvZ2V0aGVyLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZC1pbWFnZSgkaW1hZ2VzLi4uKSB7XG4gICR3ZWJraXQtaW1hZ2VzOiAoKTtcbiAgJHNwZWMtaW1hZ2VzOiAoKTtcblxuICBAZWFjaCAkaW1hZ2UgaW4gJGltYWdlcyB7XG4gICAgJHdlYmtpdC1pbWFnZTogKCk7XG4gICAgJHNwZWMtaW1hZ2U6ICgpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRpbWFnZSkgPT0gc3RyaW5nKSB7XG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRpbWFnZSwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRpbWFnZSwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogJGltYWdlO1xuICAgICAgICAkc3BlYy1pbWFnZTogICAkaW1hZ2U7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiAgbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1pbWFnZTogICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkd2Via2l0LWltYWdlczogYXBwZW5kKCR3ZWJraXQtaW1hZ2VzLCAkd2Via2l0LWltYWdlLCBjb21tYSk7XG4gICAgJHNwZWMtaW1hZ2VzOiAgIGFwcGVuZCgkc3BlYy1pbWFnZXMsICAgJHNwZWMtaW1hZ2UsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogJHdlYmtpdC1pbWFnZXM7XG4gIGJhY2tncm91bmQtaW1hZ2U6ICRzcGVjLWltYWdlcztcbn1cbiIsIkBtaXhpbiBib3JkZXItaW1hZ2UoJGJvcmRlcnMuLi4pIHtcbiAgJHdlYmtpdC1ib3JkZXJzOiAoKTtcbiAgJHNwZWMtYm9yZGVyczogKCk7XG5cbiAgQGVhY2ggJGJvcmRlciBpbiAkYm9yZGVycyB7XG4gICAgJHdlYmtpdC1ib3JkZXI6ICgpO1xuICAgICRzcGVjLWJvcmRlcjogKCk7XG4gICAgJGJvcmRlci10eXBlOiB0eXBlLW9mKCRib3JkZXIpO1xuXG4gICAgQGlmICRib3JkZXItdHlwZSA9PSBzdHJpbmcgb3IgbGlzdCB7XG4gICAgICAkYm9yZGVyLXN0cjogaWYoJGJvcmRlci10eXBlID09IGxpc3QsIG50aCgkYm9yZGVyLCAxKSwgJGJvcmRlcik7XG5cbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgfVxuXG4gICAgJHdlYmtpdC1ib3JkZXJzOiBhcHBlbmQoJHdlYmtpdC1ib3JkZXJzLCAkd2Via2l0LWJvcmRlciwgY29tbWEpO1xuICAgICRzcGVjLWJvcmRlcnM6ICAgYXBwZW5kKCRzcGVjLWJvcmRlcnMsICAgJHNwZWMtYm9yZGVyLCAgIGNvbW1hKTtcbiAgfVxuXG4gIC13ZWJraXQtYm9yZGVyLWltYWdlOiAkd2Via2l0LWJvcmRlcnM7XG4gICAgICAgICAgYm9yZGVyLWltYWdlOiAkc3BlYy1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG5cbi8vRXhhbXBsZXM6XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikgMjAgc3RyZXRjaCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIDIwIDMwIDQwIDUwIHN0cmV0Y2ggcm91bmQpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHJhZGlhbC1ncmFkaWVudCh0b3AsIGNvdmVyLCBvcmFuZ2UsIHllbGxvdywgb3JhbmdlKSk7XG4iLCJAbWl4aW4gY2FsYygkcHJvcGVydHksICR2YWx1ZSkge1xuICAjeyRwcm9wZXJ0eX06IC13ZWJraXQtY2FsYygjeyR2YWx1ZX0pO1xuICAjeyRwcm9wZXJ0eX06IGNhbGMoI3skdmFsdWV9KTtcbn1cbiIsIkBtaXhpbiBjb2x1bW5zKCRhcmc6IGF1dG8pIHtcbiAgLy8gPGNvbHVtbi1jb3VudD4gfHwgPGNvbHVtbi13aWR0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1ucywgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkaW50OiBhdXRvKSB7XG4gIC8vIGF1dG8gfHwgaW50ZWdlclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tY291bnQsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCRsZW5ndGg6IG5vcm1hbCkge1xuICAvLyBub3JtYWwgfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1nYXAsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tZmlsbCgkYXJnOiBhdXRvKSB7XG4gIC8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1maWxsLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUoJGFyZykge1xuICAvLyA8Ym9yZGVyLXdpZHRoPiB8fCA8Ym9yZGVyLXN0eWxlPiB8fCA8Y29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtY29sb3IoJGNvbG9yKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLWNvbG9yLCAkY29sb3IsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1zdHlsZSgkc3R5bGU6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IGhpZGRlbiB8IGRhc2hlZCB8IGRvdHRlZCB8IGRvdWJsZSB8IGdyb292ZSB8IGluc2V0IHwgaW5zZXQgfCBvdXRzZXQgfCByaWRnZSB8IHNvbGlkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS13aWR0aCAoJHdpZHRoOiBub25lKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXdpZHRoLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tc3BhbigkYXJnOiBub25lKSB7XG4gIC8vIG5vbmUgfHwgYWxsXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1zcGFuLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXdpZHRoKCRsZW5ndGg6IGF1dG8pIHtcbiAgLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXdpZHRoLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIGZpbHRlcigkZnVuY3Rpb246IG5vbmUpIHtcbiAgLy8gPGZpbHRlci1mdW5jdGlvbj4gWzxmaWx0ZXItZnVuY3Rpb25dKiB8IG5vbmVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmlsdGVyLCAkZnVuY3Rpb24sIHdlYmtpdCBzcGVjKTtcbn1cbiIsIi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuXG4vLyBDdXN0b20gc2hvcnRoYW5kIG5vdGF0aW9uIGZvciBmbGV4Ym94XG5AbWl4aW4gYm94KCRvcmllbnQ6IGlubGluZS1heGlzLCAkcGFjazogc3RhcnQsICRhbGlnbjogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBkaXNwbGF5LWJveDtcbiAgQGluY2x1ZGUgYm94LW9yaWVudCgkb3JpZW50KTtcbiAgQGluY2x1ZGUgYm94LXBhY2soJHBhY2spO1xuICBAaW5jbHVkZSBib3gtYWxpZ24oJGFsaWduKTtcbn1cblxuQG1peGluIGRpc3BsYXktYm94IHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC1tb3otYm94O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gSUUgMTBcbiAgZGlzcGxheTogYm94O1xufVxuXG5AbWl4aW4gYm94LW9yaWVudCgkb3JpZW50OiBpbmxpbmUtYXhpcykge1xuLy8gaG9yaXpvbnRhbHx2ZXJ0aWNhbHxpbmxpbmUtYXhpc3xibG9jay1heGlzfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJG9yaWVudCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1wYWNrKCRwYWNrOiBzdGFydCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxqdXN0aWZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkcGFjaywgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcGFjazogJHBhY2s7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtYWxpZ24oJGFsaWduOiBzdHJldGNoKSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGJhc2VsaW5lfHN0cmV0Y2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWxpZ24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWFsaWduOiAkYWxpZ247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZGlyZWN0aW9uKCRkaXJlY3Rpb246IG5vcm1hbCkge1xuLy8gbm9ybWFsfHJldmVyc2V8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtbGluZXMoJGxpbmVzOiBzaW5nbGUpIHtcbi8vIHNpbmdsZXxtdWx0aXBsZVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRsaW5lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1vcmRpbmFsLWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50OyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgoJHZhbHVlOiAwKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4OiAkdmFsdWU7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcbi8vIFVuaWZpZWQgYXR0cmlidXRlcyBmb3IgMjAwOSwgMjAxMSwgYW5kIDIwMTIgZmxhdm91cnMuXG5cbi8vIDIwMDkgLSBkaXNwbGF5IChib3ggfCBpbmxpbmUtYm94KVxuLy8gMjAxMSAtIGRpc3BsYXkgKGZsZXhib3ggfCBpbmxpbmUtZmxleGJveClcbi8vIDIwMTIgLSBkaXNwbGF5IChmbGV4IHwgaW5saW5lLWZsZXgpXG5AbWl4aW4gZGlzcGxheSgkdmFsdWUpIHtcbi8vIGZsZXggfCBpbmxpbmUtZmxleFxuICBAaWYgJHZhbHVlID09IFwiZmxleFwiIHtcbiAgICAvLyAyMDA5XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLW1vei1ib3g7XG4gICAgZGlzcGxheTogYm94O1xuXG4gICAgLy8gMjAxMlxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbW96LWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIDIwMTEgKElFIDEwKVxuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiaW5saW5lLWZsZXhcIiB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYm94O1xuXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgfSBAZWxzZSB7XG4gICAgZGlzcGxheTogJHZhbHVlO1xuICB9XG59XG5cbi8vIDIwMDkgLSBib3gtZmxleCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4IChkZWNpbWFsIHwgd2lkdGggZGVjaW1hbClcbi8vIDIwMTIgLSBmbGV4IChpbnRlZ2VyIGludGVnZXIgd2lkdGgpXG5AbWl4aW4gZmxleCgkdmFsdWUpIHtcblxuICAvLyBHcmFiIGZsZXgtZ3JvdyBmb3Igb2xkZXIgYnJvd3NlcnMuXG4gICRmbGV4LWdyb3c6IG50aCgkdmFsdWUsIDEpO1xuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICRmbGV4LWdyb3csIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApLCAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmllbnQgKCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBpbmxpbmUtYXhpcyB8IGJsb2NrLWF4aXMpXG4vLyAgICAgIC0gYm94LWRpcmVjdGlvbiAobm9ybWFsIHwgcmV2ZXJzZSlcbi8vIDIwMTEgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWU6IHJvdykge1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICR2YWx1ZS0yMDA5OiAkdmFsdWU7XG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICRkaXJlY3Rpb246IG5vcm1hbDtcblxuICBAaWYgJHZhbHVlID09IHJvdyB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gY29sdW1uIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiY29sdW1uLXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICR2YWx1ZS0yMDA5LCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtbGluZXMgKHNpbmdsZSB8IG11bHRpcGxlKVxuLy8gMjAxMSAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZTogbm93cmFwKSB7XG4gIC8vIEFsdCB2YWx1ZXNcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IG5vd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogc2luZ2xlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSB3cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJ3cmFwLXJldmVyc2VcIiB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH1cblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtd3JhcCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDExIC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDEyIC0gZmxleC1mbG93IChmbGV4LWRpcmVjdGlvbiB8fCBmbGV4LXdyYXApXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWZsb3csICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmRpbmFsLWdyb3VwIChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXgtb3JkZXIgKGludGVnZXIpXG4vLyAyMDEyIC0gb3JkZXIgKGludGVnZXIpXG5AbWl4aW4gb3JkZXIoJGludDogMCkge1xuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIob3JkZXIsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50O1xufVxuXG4vLyAyMDEyIC0gZmxleC1ncm93IChudW1iZXIpXG5AbWl4aW4gZmxleC1ncm93KCRudW1iZXI6IDApIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1ncm93LCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wb3NpdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtc2hyaW5rIChudW1iZXIpXG5AbWl4aW4gZmxleC1zaHJpbmsoJG51bWJlcjogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXNocmluaywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtbmVnYXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWJhc2lzIChudW1iZXIpXG5AbWl4aW4gZmxleC1iYXNpcygkd2lkdGg6IGF1dG8pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1iYXNpcywgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogJHdpZHRoO1xufVxuXG4vLyAyMDA5IC0gYm94LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTEgLSBmbGV4LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTIgLSBqdXN0aWZ5LWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQpXG5AbWl4aW4ganVzdGlmeS1jb250ZW50KCR2YWx1ZTogZmxleC1zdGFydCkge1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgJGFsdC12YWx1ZToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1wYWNrOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTEgLSBmbGV4LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1pdGVtcyAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWl0ZW1zKCR2YWx1ZTogc3RyZXRjaCkge1xuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcblxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWl0ZW1zLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtYWxpZ246ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWl0ZW0tYWxpZ24gKGF1dG8gfCBzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1zZWxmIChhdXRvIHwgZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLXNlbGYoJHZhbHVlOiBhdXRvKSB7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLXNlbGYsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlLTIwMTE7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWxpbmUtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5IHwgZGlzdHJpYnV0ZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICR2YWx1ZS0yMDExOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1saW5lLXBhY2s6ICR2YWx1ZS0yMDExO1xufVxuIiwiQG1peGluIGZvbnQtZmFjZShcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkd2VpZ2h0OiBub3JtYWwsXG4gICRzdHlsZTogbm9ybWFsLFxuICAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmIHN2Zykge1xuXG4gICRmb250LXVybC1wcmVmaXg6IGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSk7XG5cbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBzcmM6IGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAgICAgJGZvbnQtZmFtaWx5LFxuICAgICAgJGZpbGUtcGF0aCxcbiAgICAgICRhc3NldC1waXBlbGluZSxcbiAgICAgICRmaWxlLWZvcm1hdHMsXG4gICAgICAkZm9udC11cmwtcHJlZml4XG4gICAgKTtcbiAgfVxufVxuIiwiQG1peGluIGZvbnQtZmVhdHVyZS1zZXR0aW5ncygkc2V0dGluZ3MuLi4pIHtcbiAgQGlmIGxlbmd0aCgkc2V0dGluZ3MpID09IDAgeyAkc2V0dGluZ3M6IG5vbmU7IH1cbiAgQGluY2x1ZGUgcHJlZml4ZXIoZm9udC1mZWF0dXJlLXNldHRpbmdzLCAkc2V0dGluZ3MsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCIvLyBIaURQSSBtaXhpbi4gRGVmYXVsdCB2YWx1ZSBzZXQgdG8gMS4zIHRvIHRhcmdldCBHb29nbGUgTmV4dXMgNyAoaHR0cDovL2JqYW5nby5jb20vYXJ0aWNsZXMvbWluLWRldmljZS1waXhlbC1yYXRpby8pXG5AbWl4aW4gaGlkcGkoJHJhdGlvOiAxLjMpIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyRyYXRpb30vMSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IHJvdW5kKCRyYXRpbyAqIDk2ZHBpKSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICRyYXRpbyAqIDFkcHB4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIkBtaXhpbiBoeXBoZW5zKCRoeXBoZW5hdGlvbjogbm9uZSkge1xuICAvLyBub25lIHwgbWFudWFsIHwgYXV0b1xuICBAaW5jbHVkZSBwcmVmaXhlcihoeXBoZW5zLCAkaHlwaGVuYXRpb24sIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCJAbWl4aW4gaW1hZ2UtcmVuZGVyaW5nICgkbW9kZTphdXRvKSB7XG5cbiAgQGlmICgkbW9kZSA9PSBjcmlzcC1lZGdlcykge1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IG5lYXJlc3QtbmVpZ2hib3I7IC8vIElFOCtcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXM7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtby1jcmlzcC1lZGdlcztcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBpbWFnZS1yZW5kZXJpbmc6ICRtb2RlO1xuICB9XG59XG4iLCIvLyBBZGRzIGtleWZyYW1lcyBibG9ja3MgZm9yIHN1cHBvcnRlZCBwcmVmaXhlcywgcmVtb3ZpbmcgcmVkdW5kYW50IHByZWZpeGVzIGluIHRoZSBibG9jaydzIGNvbnRlbnRcbkBtaXhpbiBrZXlmcmFtZXMoJG5hbWUpIHtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0OiAgICAkcHJlZml4LWZvci13ZWJraXQ7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGE6ICAgJHByZWZpeC1mb3ItbW96aWxsYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0OiAkcHJlZml4LWZvci1taWNyb3NvZnQ7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhOiAgICAgJHByZWZpeC1mb3Itb3BlcmE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWM6ICAgICAgJHByZWZpeC1mb3Itc3BlYztcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0IHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XG4gICAgJHByZWZpeC1mb3Itd2Via2l0OiB0cnVlICFnbG9iYWw7XG4gICAgQC13ZWJraXQta2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XG4gICAgJHByZWZpeC1mb3ItbW96aWxsYTogdHJ1ZSAhZ2xvYmFsO1xuICAgIEAtbW96LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCAgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6ICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdCAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhICAgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMgICAgICAhZ2xvYmFsO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjIHtcbiAgICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGxpbmVhci1ncmFkaWVudCgkcG9zLCAkZzEsICRnMjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcbiAgLy8gRGV0ZWN0IHdoYXQgdHlwZSBvZiB2YWx1ZSBleGlzdHMgaW4gJHBvc1xuICAkcG9zLXR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcbiAgJHBvcy1zcGVjOiBudWxsO1xuICAkcG9zLWRlZ3JlZTogbnVsbDtcblxuICAvLyBJZiAkcG9zIGlzIG1pc3NpbmcgZnJvbSBtaXhpbiwgcmVhc3NpZ24gdmFycyBhbmQgYWRkIGRlZmF1bHQgcG9zaXRpb25cbiAgQGlmICgkcG9zLXR5cGUgPT0gY29sb3IpIG9yIChudGgoJHBvcywgMSkgPT0gXCJ0cmFuc3BhcmVudFwiKSAge1xuICAgICRnMTA6ICRnOTsgJGc5OiAkZzg7ICRnODogJGc3OyAkZzc6ICRnNjsgJGc2OiAkZzU7XG4gICAgJGc1OiAkZzQ7ICRnNDogJGczOyAkZzM6ICRnMjsgJGcyOiAkZzE7ICRnMTogJHBvcztcbiAgICAkcG9zOiBudWxsO1xuICB9XG5cbiAgQGlmICRwb3Mge1xuICAgICRwb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKTtcbiAgICAkcG9zLWRlZ3JlZTogbnRoKCRwb3NpdGlvbnMsIDEpO1xuICAgICRwb3Mtc3BlYzogICBudGgoJHBvc2l0aW9ucywgMik7XG4gIH1cblxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcblxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRnMSwgMSk7XG5cbiAgLy8gSWYgJGZhbGxiYWNrIGlzIGEgY29sb3IgdXNlIHRoYXQgY29sb3IgYXMgdGhlIGZhbGxiYWNrIGNvbG9yXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGZhbGxiYWNrLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkcG9zLWRlZ3JlZSAkZnVsbCk7IC8vIFNhZmFyaSA1LjErLCBDaHJvbWVcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcImxpbmVhci1ncmFkaWVudCgjeyRwb3Mtc3BlY30jeyRmdWxsfSlcIik7XG59XG4iLCJAbWl4aW4gcGVyc3BlY3RpdmUoJGRlcHRoOiBub25lKSB7XG4gIC8vIG5vbmUgfCA8bGVuZ3RoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZSwgJGRlcHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gcGVyc3BlY3RpdmUtb3JpZ2luKCR2YWx1ZTogNTAlIDUwJSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZS1vcmlnaW4sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICRwbGFjZWhvbGRlcnM6IFwiOi13ZWJraXQtaW5wdXRcIiBcIjotbW96XCIgXCItbW96XCIgXCItbXMtaW5wdXRcIjtcbiAgQGVhY2ggJHBsYWNlaG9sZGVyIGluICRwbGFjZWhvbGRlcnMge1xuICAgICY6I3skcGxhY2Vob2xkZXJ9LXBsYWNlaG9sZGVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gUmVxdWlyZXMgU2FzcyAzLjErXG5AbWl4aW4gcmFkaWFsLWdyYWRpZW50KCRnMSwgJGcyLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRwb3M6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRzaGFwZS1zaXplOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcblxuICAkZGF0YTogX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSk7XG4gICRnMTogIG50aCgkZGF0YSwgMSk7XG4gICRnMjogIG50aCgkZGF0YSwgMik7XG4gICRwb3M6IG50aCgkZGF0YSwgMyk7XG4gICRzaGFwZS1zaXplOiBudGgoJGRhdGEsIDQpO1xuXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xuXG4gIC8vIFN0cmlwIGRlcHJlY2F0ZWQgY292ZXIvY29udGFpbiBmb3Igc3BlY1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XG5cbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmlyc3QtY29sb3I6IG50aCgkZnVsbCwgMSk7XG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRmaXJzdC1jb2xvciwgMSk7XG5cbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICAvLyBBZGQgQ29tbWFzIGFuZCBzcGFjZXNcbiAgJHNoYXBlLXNpemU6IGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LCBcIiwgbnVsbCk7XG4gICRwb3M6ICAgICAgICBpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKTtcbiAgJHBvcy1zcGVjOiAgIGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogaWYoKCRzaGFwZS1zaXplLXNwZWMgIT0gXCIgXCIpIGFuZCAoJHBvcyA9PSBudWxsKSwgXCIjeyRzaGFwZS1zaXplLXNwZWN9LCBcIiwgXCIjeyRzaGFwZS1zaXplLXNwZWN9IFwiKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAgJGZhbGxiYWNrLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudCgjeyRwb3N9I3skc2hhcGUtc2l6ZX0jeyRmdWxsfSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCgjeyRzaGFwZS1zaXplLXNwZWN9I3skcG9zLXNwZWN9I3skZnVsbH0pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIE91dHB1dHMgdGhlIHNwZWMgYW5kIHByZWZpeGVkIHZlcnNpb25zIG9mIHRoZSBgOjpzZWxlY3Rpb25gIHBzZXVkby1lbGVtZW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Qm9vbH0gJGN1cnJlbnQtc2VsZWN0b3IgW2ZhbHNlXVxyXG4vLy8gICBJZiBzZXQgdG8gYHRydWVgLCBpdCB0YWtlcyB0aGUgY3VycmVudCBlbGVtZW50IGludG8gY29uc2lkZXJhdGlvbi5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNlbGVjdGlvbih0cnVlKSB7XHJcbi8vLyAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICAgIH1cclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQ6Oi1tb3otc2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuZWxlbWVudDo6c2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gc2VsZWN0aW9uKCRjdXJyZW50LXNlbGVjdG9yOiBmYWxzZSkge1xyXG4gIEBpZiAkY3VycmVudC1zZWxlY3RvciB7XHJcbiAgICAmOjotbW96LXNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgICY6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgOjotbW96LXNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgIDo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiB0ZXh0LWRlY29yYXRpb24oJHZhbHVlKSB7XG4vLyA8dGV4dC1kZWNvcmF0aW9uLWxpbmU+IHx8IDx0ZXh0LWRlY29yYXRpb24tc3R5bGU+IHx8IDx0ZXh0LWRlY29yYXRpb24tY29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbiwgJHZhbHVlLCBtb3opO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWxpbmUoJGxpbmU6IG5vbmUpIHtcbi8vIG5vbmUgfHwgdW5kZXJsaW5lIHx8IG92ZXJsaW5lIHx8IGxpbmUtdGhyb3VnaFxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tbGluZSwgJGxpbmUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tc3R5bGUoJHN0eWxlOiBzb2xpZCkge1xuLy8gc29saWQgfHwgZG91YmxlIHx8IGRvdHRlZCB8fCBkYXNoZWQgfHwgd2F2eVxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tc3R5bGUsICRzdHlsZSwgbW96IHdlYmtpdCk7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tY29sb3IoJGNvbG9yOiBjdXJyZW50Q29sb3IpIHtcbi8vIGN1cnJlbnRDb2xvciB8fCA8Y29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1jb2xvciwgJGNvbG9yLCBtb3opO1xufVxuIiwiQG1peGluIHRyYW5zZm9ybSgkcHJvcGVydHk6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IDx0cmFuc2Zvcm0tZnVuY3Rpb24+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgJHByb3BlcnR5LCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tb3JpZ2luKCRheGVzOiA1MCUpIHtcbiAgLy8geC1heGlzIC0gbGVmdCB8IGNlbnRlciB8IHJpZ2h0ICB8IGxlbmd0aCB8ICVcbiAgLy8geS1heGlzIC0gdG9wICB8IGNlbnRlciB8IGJvdHRvbSB8IGxlbmd0aCB8ICVcbiAgLy8gei1heGlzIC0gICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tb3JpZ2luLCAkYXhlcywgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLXN0eWxlKCRzdHlsZTogZmxhdCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiLy8gU2hvcnRoYW5kIG1peGluLiBTdXBwb3J0cyBtdWx0aXBsZSBwYXJlbnRoZXNlcy1kZWxpbWluYXRlZCB2YWx1ZXMgZm9yIGVhY2ggdmFyaWFibGUuXG4vLyBFeGFtcGxlOiBAaW5jbHVkZSB0cmFuc2l0aW9uIChhbGwgMnMgZWFzZS1pbi1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiAob3BhY2l0eSAxcyBlYXNlLWluIDJzLCB3aWR0aCAycyBlYXNlLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLXByb3BlcnR5ICh0cmFuc2Zvcm0sIG9wYWNpdHkpO1xuXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydGllcy4uLikge1xuICAvLyBGaXggZm9yIHZlbmRvci1wcmVmaXggdHJhbnNmb3JtIHByb3BlcnR5XG4gICRuZWVkcy1wcmVmaXhlczogZmFsc2U7XG4gICR3ZWJraXQ6ICgpO1xuICAkbW96OiAoKTtcbiAgJHNwZWM6ICgpO1xuXG4gIC8vIENyZWF0ZSBsaXN0cyBmb3IgdmVuZG9yLXByZWZpeGVkIHRyYW5zZm9ybVxuICBAZWFjaCAkbGlzdCBpbiAkcHJvcGVydGllcyB7XG4gICAgQGlmIG50aCgkbGlzdCwgMSkgPT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAkbmVlZHMtcHJlZml4ZXM6IHRydWU7XG4gICAgICAkbGlzdDE6IC13ZWJraXQtdHJhbnNmb3JtO1xuICAgICAgJGxpc3QyOiAtbW96LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MzogKCk7XG5cbiAgICAgIEBlYWNoICR2YXIgaW4gJGxpc3Qge1xuICAgICAgICAkbGlzdDM6IGpvaW4oJGxpc3QzLCAkdmFyKTtcblxuICAgICAgICBAaWYgJHZhciAhPSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICAgICAkbGlzdDE6IGpvaW4oJGxpc3QxLCAkdmFyKTtcbiAgICAgICAgICAkbGlzdDI6IGpvaW4oJGxpc3QyLCAkdmFyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QxKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdDIpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0Myk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdCwgY29tbWEpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0LCBjb21tYSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICRuZWVkcy1wcmVmaXhlcyB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkd2Via2l0O1xuICAgICAgIC1tb3otdHJhbnNpdGlvbjogJG1vejtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRzcGVjO1xuICB9IEBlbHNlIHtcbiAgICBAaWYgbGVuZ3RoKCRwcm9wZXJ0aWVzKSA+PSAxIHtcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHByb3BlcnRpZXM6IGFsbCAwLjE1cyBlYXNlLW91dCAwcztcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1wcm9wZXJ0eSgkcHJvcGVydGllcy4uLikge1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwid2Via2l0XCIpO1xuICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwibW96XCIpO1xuICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIGZhbHNlKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dCB8IGN1YmljLWJlemllcigpXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiB1c2VyLXNlbGVjdCgkdmFsdWU6IG5vbmUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodXNlci1zZWxlY3QsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1jb2xvcmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWNvbG9yKCNhNjBiNTUgIzc2Y2Q5YyBudWxsICNlOGFlMWEpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItbGVmdC1jb2xvcjogI2U4YWUxYTtcbi8vLyAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjNzZjZDljO1xuLy8vICAgICBib3JkZXItdG9wLWNvbG9yOiAjYTYwYjU1O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLWNvbG9yYFxuXG5AbWl4aW4gYm9yZGVyLWNvbG9yKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgY29sb3IsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1yYWRpdXNgIG9uIGJvdGggY29ybmVycyBvbiB0aGUgc2lkZSBvZiBhIGJveC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmFkaWlcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50LW9uZSB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDVweCk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygzcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xuLy8vICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudC10d28ge1xuLy8vICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1yYWRpdXNgXG5cbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXN0eWxlYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZGFzaGVkIG51bGwgc29saWQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXN0eWxlYFxuXG5AbWl4aW4gYm9yZGVyLXN0eWxlKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgc3R5bGUsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci13aWR0aGAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXdpZHRoKDFlbSBudWxsIDIwcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMHB4O1xuLy8vICAgICBib3JkZXItdG9wLXdpZHRoOiAxZW07XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItd2lkdGhgXG5cbkBtaXhpbiBib3JkZXItd2lkdGgoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCB3aWR0aCwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIGJ1dHRvbnMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLWJ1dHRvbnN9YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgI3skYWxsLWJ1dHRvbnN9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLWJ1dHRvbnMtZm9jdXN9LFxuLy8vICAgI3skYWxsLWJ1dHRvbnMtaG92ZXJ9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLWJ1dHRvbnMtYWN0aXZlfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBidXR0b24sXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGJ1dHRvbjpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmZvY3VzLFxuLy8vICAgYnV0dG9uOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBidXR0b246YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTphY3RpdmUge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xuLy8vXG4vLy8gQHR5cGUgTGlzdFxuLy8vXG4vLy8gQHRvZG8gUmVtb3ZlIGRvdWJsZSBhc3NpZ25lZCB2YXJpYWJsZXMgKExpbmVzIDU54oCTNjIpIGluIHY1LjAuMFxuXG4kYnV0dG9ucy1saXN0OiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiYnV0dG9uXCJdJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicmVzZXRcIl0nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzdWJtaXRcIl0nO1xuXG4kYWxsLWJ1dHRvbnM6ICAgICAgICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QpO1xuJGFsbC1idXR0b25zLWFjdGl2ZTogYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBhY3RpdmUpO1xuJGFsbC1idXR0b25zLWZvY3VzOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBmb2N1cyk7XG4kYWxsLWJ1dHRvbnMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGhvdmVyKTtcblxuJGFsbC1idXR0b24taW5wdXRzOiAgICAgICAgJGFsbC1idXR0b25zO1xuJGFsbC1idXR0b24taW5wdXRzLWFjdGl2ZTogJGFsbC1idXR0b25zLWFjdGl2ZTtcbiRhbGwtYnV0dG9uLWlucHV0cy1mb2N1czogICRhbGwtYnV0dG9ucy1mb2N1cztcbiRhbGwtYnV0dG9uLWlucHV0cy1ob3ZlcjogICRhbGwtYnV0dG9ucy1ob3ZlcjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vY3NzbW9qby5jb20vbGF0ZXN0X25ld19jbGVhcmZpeF9zb19mYXIvXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudDo6YWZ0ZXIge1xuLy8vICAgICBjbGVhcjogYm90aDtcbi8vLyAgICAgY29udGVudDogXCJcIjtcbi8vLyAgICAgZGlzcGxheTogdGFibGU7XG4vLy8gICB9XG5cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBUcnVuY2F0ZXMgdGV4dCBhbmQgYWRkcyBhbiBlbGxpcHNpcyB0byByZXByZXNlbnQgb3ZlcmZsb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsxMDAlXVxuLy8vICAgTWF4LXdpZHRoIGZvciB0aGUgc3RyaW5nIHRvIHJlc3BlY3QgYmVmb3JlIGJlaW5nIHRydW5jYXRlZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGVsbGlwc2lzO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4vLy8gICAgIG1heC13aWR0aDogMTAwJTtcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbi8vLyAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4vLy8gICAgIHdvcmQtd3JhcDogbm9ybWFsO1xuLy8vICAgfVxuXG5AbWl4aW4gZWxsaXBzaXMoJHdpZHRoOiAxMDAlKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlb3JnaWEgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGdlb3JnaWE6IFwiR2VvcmdpYVwiLCBcIkNhbWJyaWFcIiwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgXCJUaW1lc1wiLCBzZXJpZjtcblxuLy8vIEhlbHZldGljYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kaGVsdmV0aWNhOiBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiUm9ib3RvXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcblxuLy8vIEx1Y2lkYSBHcmFuZGUgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGx1Y2lkYS1ncmFuZGU6IFwiTHVjaWRhIEdyYW5kZVwiLCBcIlRhaG9tYVwiLCBcIlZlcmRhbmFcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuXG4vLy8gTW9ub3NwYWNlIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRtb25vc3BhY2U6IFwiQml0c3RyZWFtIFZlcmEgU2FucyBNb25vXCIsIFwiQ29uc29sYXNcIiwgXCJDb3VyaWVyXCIsIG1vbm9zcGFjZTtcblxuLy8vIFZlcmRhbmEgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJHZlcmRhbmE6IFwiVmVyZGFuYVwiLCBcIkdlbmV2YVwiLCBzYW5zLXNlcmlmO1xuIiwiLy8vIEhpZGVzIHRoZSB0ZXh0IGluIGFuIGVsZW1lbnQsIGNvbW1vbmx5IHVzZWQgdG8gc2hvdyBhbiBpbWFnZS4gU29tZSBlbGVtZW50cyB3aWxsIG5lZWQgYmxvY2stbGV2ZWwgc3R5bGVzIGFwcGxpZWQuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vemVsZG1hbi5jb20vMjAxMi8wMy8wMS9yZXBsYWNpbmctdGhlLTk5OTlweC1oYWNrLW5ldy1pbWFnZS1yZXBsYWNlbWVudFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGhpZGUtdGV4dDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbi8vLyAgICAgdGV4dC1pbmRlbnQ6IDEwMSU7XG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4vLy8gICB9XG4vLy9cbi8vLyBAdG9kbyBSZW1vdmUgaGVpZ2h0IGFyZ3VtZW50IGluIHY1LjAuMFxuXG5AbWl4aW4gaGlkZS10ZXh0KCRoZWlnaHQ6IG51bGwpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1pbmRlbnQ6IDEwMSU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgQGlmICRoZWlnaHQge1xuICAgIEB3YXJuIFwiVGhlIGBoaWRlLXRleHRgIG1peGluIGhhcyBjaGFuZ2VkIGFuZCBubyBsb25nZXIgcmVxdWlyZXMgYSBoZWlnaHQuIFRoZSBoZWlnaHQgYXJndW1lbnQgd2lsbCBubyBsb25nZXIgYmUgYWNjZXB0ZWQgaW4gdjUuMC4wXCI7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYG1hcmdpbmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMTBweCAzZW0gMjB2aCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDNlbTtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDIwdmg7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMTBweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYG1hcmdpbmBcblxuQG1peGluIG1hcmdpbigkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShtYXJnaW4sIGZhbHNlLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBwYWRkaW5nYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwYWRkaW5nKDEydmggbnVsbCAxMHB4IDUlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4vLy8gICAgIHBhZGRpbmctbGVmdDogNSU7XG4vLy8gICAgIHBhZGRpbmctdG9wOiAxMnZoO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgcGFkZGluZ2BcblxuQG1peGluIHBhZGRpbmcoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkocGFkZGluZywgZmFsc2UsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciBzZXR0aW5nIGFuIGVsZW1lbnTigJlzIHBvc2l0aW9uLiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge1Bvc2l0aW9ufSAkcG9zaXRpb24gW3JlbGF0aXZlXVxuLy8vICAgQSBDU1MgcG9zaXRpb24gdmFsdWVcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJGNvb3JkaW5hdGVzIFtudWxsIG51bGwgbnVsbCBudWxsXVxuLy8vICAgTGlzdCBvZiB2YWx1ZXMgdGhhdCBjb3JyZXNwb25kIHRvIHRoZSA0LXZhbHVlIHN5bnRheCBmb3IgdGhlIGVkZ2VzIG9mIGEgYm94XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBsZWZ0OiAxMGVtO1xuLy8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLy8gICAgIHRvcDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSB1bnBhY2tcblxuQG1peGluIHBvc2l0aW9uKCRwb3NpdGlvbjogcmVsYXRpdmUsICRjb29yZGluYXRlczogbnVsbCBudWxsIG51bGwgbnVsbCkge1xuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xuICAgICRjb29yZGluYXRlczogJHBvc2l0aW9uO1xuICAgICRwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAkY29vcmRpbmF0ZXM6IHVucGFjaygkY29vcmRpbmF0ZXMpO1xuXG4gICRvZmZzZXRzOiAoXG4gICAgdG9wOiAgICBudGgoJGNvb3JkaW5hdGVzLCAxKSxcbiAgICByaWdodDogIG50aCgkY29vcmRpbmF0ZXMsIDIpLFxuICAgIGJvdHRvbTogbnRoKCRjb29yZGluYXRlcywgMyksXG4gICAgbGVmdDogICBudGgoJGNvb3JkaW5hdGVzLCA0KVxuICApO1xuXG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG5cbiAgQGVhY2ggJG9mZnNldCwgJHZhbHVlIGluICRvZmZzZXRzIHtcbiAgICBAaWYgaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgI3skb2Zmc2V0fTogJHZhbHVlO1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBtaXhpbiBmb3IgZ2VuZXJhdGluZyB2ZW5kb3IgcHJlZml4ZXMgb24gbm9uLXN0YW5kYXJkaXplZCBwcm9wZXJ0aWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eVxuLy8vICAgUHJvcGVydHkgdG8gcHJlZml4XG4vLy9cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZVxuLy8vICAgVmFsdWUgdG8gdXNlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRwcmVmaXhlc1xuLy8vICAgUHJlZml4ZXMgdG8gZGVmaW5lXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgMTBweCwgd2Via2l0IG1zIHNwZWMpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itd2Via2l0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1tb3ppbGxhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1taWNyb3NvZnRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW9wZXJhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1zcGVjXG5cbkBtaXhpbiBwcmVmaXhlcigkcHJvcGVydHksICR2YWx1ZSwgJHByZWZpeGVzKSB7XG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcbiAgICBAaWYgJHByZWZpeCA9PSB3ZWJraXQge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1veiB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgICAgIC1tb3otI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1zIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1taWNyb3NvZnQge1xuICAgICAgICAtbXMtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG8ge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW9wZXJhIHtcbiAgICAgICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IHNwZWMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXNwZWMge1xuICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlICB7XG4gICAgICBAd2FybiBcIlVucmVjb2duaXplZCBwcmVmaXg6ICN7JHByZWZpeH1cIjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKSB7XG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6IGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICBmYWxzZSAhZ2xvYmFsO1xufVxuIiwiQG1peGluIHJldGluYS1pbWFnZSgkZmlsZW5hbWUsICRiYWNrZ3JvdW5kLXNpemUsICRleHRlbnNpb246IHBuZywgJHJldGluYS1maWxlbmFtZTogbnVsbCwgJHJldGluYS1zdWZmaXg6IF8yeCwgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUpIHtcbiAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH0gQGVsc2Uge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgIHVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9XG5cbiAgQGluY2x1ZGUgaGlkcGkge1xuICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1zaXplOiAkYmFja2dyb3VuZC1zaXplO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTZXRzIHRoZSBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBvZiB0aGUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNpemVcbi8vLyAgIEEgbGlzdCBvZiBhdCBtb3N0IDIgc2l6ZSB2YWx1ZXMuXG4vLy9cbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgdmFsdWUgaW4gYCRzaXplYCBpdCBpcyB1c2VkIGZvciBib3RoIHdpZHRoIGFuZCBoZWlnaHQuIEFsbCB1bml0cyBhcmUgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZShhdXRvIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogMmVtO1xuLy8vICAgICBoZWlnaHQ6IDJlbTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IGF1dG87XG4vLy8gICAgIGhlaWdodDogMTBlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlZmFjdG9yIGluIDUuMC4wIHRvIHVzZSBhIGNvbW1hLXNlcGFyYXRlZCBhcmd1bWVudFxuXG5AbWl4aW4gc2l6ZSgkdmFsdWUpIHtcbiAgJHdpZHRoOiBudGgoJHZhbHVlLCAxKTtcbiAgJGhlaWdodDogJHdpZHRoO1xuXG4gIEBpZiBsZW5ndGgoJHZhbHVlKSA+IDEge1xuICAgICRoZWlnaHQ6IG50aCgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJGhlaWdodCkge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skaGVpZ2h0fWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCRoZWlnaHRgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJHdpZHRoKSB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skd2lkdGh9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJHdpZHRoYCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIHRleHQtYmFzZWQgaW5wdXRzLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC10ZXh0LWlucHV0c31gLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHN9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWZvY3VzfSxcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1ob3Zlcn0ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl0sXG4vLy8gICB0ZXh0YXJlYSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpmb2N1cyxcbi8vLyAgIHRleHRhcmVhOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmhvdmVyLFxuLy8vICAgdGV4dGFyZWE6aG92ZXIge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmFjdGl2ZSxcbi8vLyAgIHRleHRhcmVhOmFjdGl2ZSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiR0ZXh0LWlucHV0cy1saXN0OiAnaW5wdXRbdHlwZT1cImNvbG9yXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZW1haWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibW9udGhcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibnVtYmVyXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInNlYXJjaFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGV4dFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0aW1lXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInVybFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ3ZWVrXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXQ6bm90KFt0eXBlXSknLFxuICAgICAgICAgICAgICAgICAgICd0ZXh0YXJlYSc7XG5cbiRhbGwtdGV4dC1pbnB1dHM6ICAgICAgICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0KTtcbiRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBhY3RpdmUpO1xuJGFsbC10ZXh0LWlucHV0cy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGZvY3VzKTtcbiRhbGwtdGV4dC1pbnB1dHMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBob3Zlcik7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDU1MgY3ViaWMtYmV6aWVyIHRpbWluZyBmdW5jdGlvbnMuIFRpbWluZyBmdW5jdGlvbnMgY291cnRlc3kgb2YganF1ZXJ5LmVhc2llIChnaXRodWIuY29tL2phdWtpYS9lYXNpZSlcbi8vL1xuLy8vIFRpbWluZyBmdW5jdGlvbnMgYXJlIHRoZSBzYW1lIGFzIGRlbW9lZCBoZXJlOiBodHRwOi8vanF1ZXJ5dWkuY29tL3Jlc291cmNlcy9kZW1vcy9lZmZlY3QvZWFzaW5nLmh0bWxcbi8vL1xuLy8vIEB0eXBlIGN1YmljLWJlemllclxuXG4kZWFzZS1pbi1xdWFkOiAgICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDg1LCAwLjY4MCwgMC41MzApO1xuJGVhc2UtaW4tY3ViaWM6ICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiRlYXNlLWluLXF1YXJ0OiAgICAgY3ViaWMtYmV6aWVyKDAuODk1LCAgMC4wMzAsIDAuNjg1LCAwLjIyMCk7XG4kZWFzZS1pbi1xdWludDogICAgIGN1YmljLWJlemllcigwLjc1NSwgIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuJGVhc2UtaW4tc2luZTogICAgICBjdWJpYy1iZXppZXIoMC40NzAsICAwLjAwMCwgMC43NDUsIDAuNzE1KTtcbiRlYXNlLWluLWV4cG86ICAgICAgY3ViaWMtYmV6aWVyKDAuOTUwLCAgMC4wNTAsIDAuNzk1LCAwLjAzNSk7XG4kZWFzZS1pbi1jaXJjOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgIDAuMDQwLCAwLjk4MCwgMC4zMzUpO1xuJGVhc2UtaW4tYmFjazogICAgICBjdWJpYy1iZXppZXIoMC42MDAsIC0wLjI4MCwgMC43MzUsIDAuMDQ1KTtcblxuJGVhc2Utb3V0LXF1YWQ6ICAgICBjdWJpYy1iZXppZXIoMC4yNTAsICAwLjQ2MCwgMC40NTAsIDAuOTQwKTtcbiRlYXNlLW91dC1jdWJpYzogICAgY3ViaWMtYmV6aWVyKDAuMjE1LCAgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVhcnQ6ICAgIGN1YmljLWJlemllcigwLjE2NSwgIDAuODQwLCAwLjQ0MCwgMS4wMDApO1xuJGVhc2Utb3V0LXF1aW50OiAgICBjdWJpYy1iZXppZXIoMC4yMzAsICAxLjAwMCwgMC4zMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1zaW5lOiAgICAgY3ViaWMtYmV6aWVyKDAuMzkwLCAgMC41NzUsIDAuNTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtZXhwbzogICAgIGN1YmljLWJlemllcigwLjE5MCwgIDEuMDAwLCAwLjIyMCwgMS4wMDApO1xuJGVhc2Utb3V0LWNpcmM6ICAgICBjdWJpYy1iZXppZXIoMC4wNzUsICAwLjgyMCwgMC4xNjUsIDEuMDAwKTtcbiRlYXNlLW91dC1iYWNrOiAgICAgY3ViaWMtYmV6aWVyKDAuMTc1LCAgMC44ODUsIDAuMzIwLCAxLjI3NSk7XG5cbiRlYXNlLWluLW91dC1xdWFkOiAgY3ViaWMtYmV6aWVyKDAuNDU1LCAgMC4wMzAsIDAuNTE1LCAwLjk1NSk7XG4kZWFzZS1pbi1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjY0NSwgIDAuMDQ1LCAwLjM1NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1YXJ0OiBjdWJpYy1iZXppZXIoMC43NzAsICAwLjAwMCwgMC4xNzUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWludDogY3ViaWMtYmV6aWVyKDAuODYwLCAgMC4wMDAsIDAuMDcwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtc2luZTogIGN1YmljLWJlemllcigwLjQ0NSwgIDAuMDUwLCAwLjU1MCwgMC45NTApO1xuJGVhc2UtaW4tb3V0LWV4cG86ICBjdWJpYy1iZXppZXIoMS4wMDAsICAwLjAwMCwgMC4wMDAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1jaXJjOiAgY3ViaWMtYmV6aWVyKDAuNzg1LCAgMC4xMzUsIDAuMTUwLCAwLjg2MCk7XG4kZWFzZS1pbi1vdXQtYmFjazogIGN1YmljLWJlemllcigwLjY4MCwgLTAuNTUwLCAwLjI2NSwgMS41NTApO1xuIiwiQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiBpZihsZW5ndGgoJGNvbG9yKSA9PSAyLCBudGgoJGNvbG9yLCAyKSwgdHJhbnNwYXJlbnQpO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuXG4gIEBpZiAoJGRpcmVjdGlvbiA9PSB1cCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bikgb3IgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICAkd2lkdGg6ICR3aWR0aCAvIDI7XG4gICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93biB7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gdXAtcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IHVwLWxlZnQpIHtcbiAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAtcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHVwLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGRvd24tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGRvd24tbGVmdCkge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXVwKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtZG93bikge1xuICAgIGJvcmRlci1jb2xvcjogJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXJpZ2h0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtbGVmdCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBjaGFuZ2UgdGhlIGB3b3JkLXdyYXBgIHByb3BlcnR5LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR3cmFwIFticmVhay13b3JkXVxuLy8vICAgVmFsdWUgZm9yIHRoZSBgd29yZC1icmVha2AgcHJvcGVydHkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgQGluY2x1ZGUgd29yZC13cmFwKGJyZWFrLXdvcmQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuLy8vICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4vLy8gICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbi8vLyAgIH1cblxuQG1peGluIHdvcmQtd3JhcCgkd3JhcDogYnJlYWstd29yZCkge1xuICBvdmVyZmxvdy13cmFwOiAkd3JhcDtcbiAgd29yZC13cmFwOiAkd3JhcDtcblxuICBAaWYgJHdyYXAgPT0gYnJlYWstd29yZCB7XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB9IEBlbHNlIHtcbiAgICB3b3JkLWJyZWFrOiAkd3JhcDtcbiAgfVxufVxuIiwiLy8gVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IE1BSk9SIHZlcnNpb24gcmVsZWFzZVxuXG5AbWl4aW4gaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIEB3YXJuIFwiVGhlIGlubGluZS1ibG9jayBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbkBtaXhpbiBidXR0b24gKCRzdHlsZTogc2ltcGxlLCAkYmFzZS1jb2xvcjogIzQyOTRmMCwgJHRleHQtc2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkYmFzZS1jb2xvcjtcbiAgICAkdGV4dC1zaXplOiAkc3R5bGU7XG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gIzQyOTRmMCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cblxuICBAd2FybiBcIlRoZSBidXR0b24gbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG4vLyBTZWxlY3RvciBTdHlsZSBCdXR0b25cbkBtaXhpbiBidXR0b25zdHlsZSgkdHlwZSwgJGItY29sb3IsICR0LXNpemUsICRwYWQpIHtcbiAgLy8gR3JheXNjYWxlIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IHNoaW55IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gcGlsbCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gZmxhdCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICAvLyBDb2xvcmVkIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IHNoaW55IHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gcGlsbCB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gZmxhdCB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG59XG5cbi8vIFNpbXBsZSBCdXR0b25cbkBtaXhpbiBzaW1wbGUoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTE0JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtOCUsICAkbGlnaHRuZXNzOiAgMTUlKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xMSUpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDE1JSwgJGxpZ2h0bmVzczogLTE4JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNyUsICRsaWdodG5lc3M6ICA1JSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA4JSwgJGxpZ2h0bmVzczogLTE0JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogOSUsICRsaWdodG5lc3M6IC0xNCUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA3JSwgJGxpZ2h0bmVzczogLTE3JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmUsIGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFNoaW55IEJ1dHRvblxuQG1peGluIHNoaW55KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExNywgJGdyZWVuOiAtMTExLCAkYmx1ZTogLTgxKTtcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEyNiwgJGdyZWVuOiAtMTI3LCAkYmx1ZTogLTEyMik7XG4gICRmb3VydGgtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC03OSwgICRncmVlbjogLTcwLCAgJGJsdWU6IC00Nik7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6ICAzNywgICRncmVlbjogIDI5LCAgJGJsdWU6ICAxMik7XG4gICRzZWNvbmQtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC01NiwgICRncmVlbjogLTUwLCAgJGJsdWU6IC0zMyk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xNDAsICRncmVlbjogLTE0MSwgJGJsdWU6IC0xMTQpO1xuICAkdGhpcmQtc3RvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICAkZ3JlZW46IC03NSwgICRibHVlOiAtNDgpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGZvdXJ0aC1zdG9wOiAgIGdyYXlzY2FsZSgkZm91cnRoLXN0b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHNlY29uZC1zdG9wOiAgIGdyYXlzY2FsZSgkc2Vjb25kLXN0b3ApO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgICAkdGhpcmQtc3RvcDogICAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRiYXNlLWNvbG9yIDAlLCAkc2Vjb25kLXN0b3AgNTAlLCAkdGhpcmQtc3RvcCA1MCUsICRmb3VydGgtc3RvcCAxMDAlKTtcblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEzLCAkZ3JlZW46IC0xNSwgJGJsdWU6IC0xOCk7XG4gICAgJHNlY29uZC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC02NiwgJGdyZWVuOiAtNjIsICRibHVlOiAtNTEpO1xuICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtOTMsICRncmVlbjogLTg1LCAkYmx1ZTogLTY2KTtcbiAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAkZ3JlZW46IC04MCwgJGJsdWU6IC02Myk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCRmaXJzdC1zdG9wLWhvdmVyKTtcbiAgICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRzZWNvbmQtc3RvcC1ob3Zlcik7XG4gICAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkdGhpcmQtc3RvcC1ob3Zlcik7XG4gICAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkZm91cnRoLXN0b3AtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRmaXJzdC1zdG9wLWhvdmVyICAwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2Vjb25kLXN0b3AtaG92ZXIgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlyZC1zdG9wLWhvdmVyICA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyIDEwMCUpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTExLCAkZ3JlZW46IC0xMTYsICRibHVlOiAtMTIyKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDIwcHggMCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBQaWxsIEJ1dHRvblxuQG1peGluIHBpbGwoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC0xMSUsICRsaWdodG5lc3M6IC0yNiUpO1xuICAkYm9yZGVyLXNpZGVzOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yMSUsICRsaWdodG5lc3M6IC0yMSUpO1xuICAkYm9yZGVyLXRvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0zMCUsICRsaWdodG5lc3M6IC0xNSUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xJSwgICRsaWdodG5lc3M6ICA3JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDE0JSwgJGxpZ2h0bmVzczogLTEwJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTE5JSwgJGxpZ2h0bmVzczogLTE1JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGJvcmRlci1zaWRlczogIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAkYm9yZGVyLXRvcDogICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpZ2h0bmVzczogLTQuNSUpO1xuICAgICRib3JkZXItYm90dG9tOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDEzLjUlLCAkbGlnaHRuZXNzOiAtMzIlKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yJSwgICAgJGxpZ2h0bmVzczogLTI3JSk7XG4gICAgJGJvcmRlci10b3A6ICAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMTclLCAgICRsaWdodG5lc3M6IC0yMSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAkc2F0dXJhdGlvbjogLTElLCAgICAkbGlnaHRuZXNzOiAgMyUpO1xuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTQlLCAgICAkbGlnaHRuZXNzOiAtMTUuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTUlLCAgICAkbGlnaHRuZXNzOiAtMjIlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAgICRib3JkZXItc2lkZXM6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgICAkYm9yZGVyLXRvcDogICAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG5cbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWhvdmVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA0LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNiwgICRzYXR1cmF0aW9uOiAtMi41JSwgJGxpZ2h0bmVzczogLTMwJSk7XG4gICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDExLCAkc2F0dXJhdGlvbjogIDYlLCAgICRsaWdodG5lc3M6IC0zMSUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA5LCAgJHNhdHVyYXRpb246ICAyJSwgICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA1LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGdyYXlzY2FsZSgkYWN0aXZlLWNvbG9yKTtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLWNvbG9yO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbS1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCAzcHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBGbGF0IEJ1dHRvblxuQG1peGluIGZsYXQoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IDA7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCl7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDQlLCAkbGlnaHRuZXNzOiA1JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItYWN0aXZlOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1hY3RpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi8vIEZsZXhpYmxlIGdyaWRcbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XG4gICR3aWR0aDogJGNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xuXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3JpZCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbi8vIEZsZXhpYmxlIGd1dHRlclxuQGZ1bmN0aW9uIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zLCAkZ3V0dGVyOiAkZmctZ3V0dGVyKSB7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xuXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3V0dGVyIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQGZ1bmN0aW9uIGdyaWQtd2lkdGgoJG4pIHtcbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XG5cbiAgQHdhcm4gXCJUaGUgZ3JpZC13aWR0aCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbkBmdW5jdGlvbiBnb2xkZW4tcmF0aW8oJHZhbHVlLCAkaW5jcmVtZW50KSB7XG4gIEByZXR1cm4gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWUsICRyYXRpbzogJGdvbGRlbik7XG5cbiAgQHdhcm4gXCJUaGUgZ29sZGVuLXJhdGlvIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2UuIFBsZWFzZSB1c2UgdGhlIG1vZHVsYXItc2NhbGUgZnVuY3Rpb24sIGluc3RlYWQuXCI7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRib3gpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXNpemluZywgJGJveCwgd2Via2l0IG1veiBzcGVjKTtcblxuICBAd2FybiBcIlRoZSBib3gtc2l6aW5nIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2UuIFRoaXMgcHJvcGVydHkgY2FuIG5vdyBiZSB1c2VkIHVuLXByZWZpeGVkLlwiO1xufVxuIiwiLy8gTmVhdCAxLjguMFxuLy8gaHR0cDovL25lYXQuYm91cmJvbi5pb1xuLy8gQ29weXJpZ2h0IDIwMTItMjAxNSB0aG91Z2h0Ym90LCBpbmMuXG4vLyBNSVQgTGljZW5zZVxuXG4vLyBIZWxwZXJzXG5AaW1wb3J0IFwibmVhdC1oZWxwZXJzXCI7XG5cbi8vIEdyaWRcbkBpbXBvcnQgXCJncmlkL3ByaXZhdGVcIjtcbkBpbXBvcnQgXCJncmlkL2JveC1zaXppbmdcIjtcbkBpbXBvcnQgXCJncmlkL29tZWdhXCI7XG5AaW1wb3J0IFwiZ3JpZC9vdXRlci1jb250YWluZXJcIjtcbkBpbXBvcnQgXCJncmlkL3NwYW4tY29sdW1uc1wiO1xuQGltcG9ydCBcImdyaWQvcm93XCI7XG5AaW1wb3J0IFwiZ3JpZC9zaGlmdFwiO1xuQGltcG9ydCBcImdyaWQvcGFkXCI7XG5AaW1wb3J0IFwiZ3JpZC9maWxsLXBhcmVudFwiO1xuQGltcG9ydCBcImdyaWQvbWVkaWFcIjtcbkBpbXBvcnQgXCJncmlkL3RvLWRlcHJlY2F0ZVwiO1xuQGltcG9ydCBcImdyaWQvdmlzdWFsLWdyaWRcIjtcbkBpbXBvcnQgXCJncmlkL2Rpc3BsYXktY29udGV4dFwiO1xuQGltcG9ydCBcImdyaWQvZGlyZWN0aW9uLWNvbnRleHRcIjtcbiIsIi8vIE1peGluc1xuQGltcG9ydCBcIm1peGlucy9jbGVhcmZpeFwiO1xuXG4vLyBGdW5jdGlvbnNcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHJpdmF0ZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9uZXctYnJlYWtwb2ludFwiO1xuXG4vLyBTZXR0aW5nc1xuQGltcG9ydCBcInNldHRpbmdzL2dyaWRcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy92aXN1YWwtZ3JpZFwiO1xuQGltcG9ydCBcInNldHRpbmdzL2Rpc2FibGUtd2FybmluZ3NcIjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vZ29vLmdsL3lQNWhpWlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzc1xuLy8vICAgLmVsZW1lbnQ6OmFmdGVyIHtcbi8vLyAgICAgY2xlYXI6IGJvdGg7XG4vLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgfVxuXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuIiwiLy8gTm90IGZ1bmN0aW9uIGZvciBMaWJzYXNzIGNvbXBhdGliaWxpdHlcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzL2xpYnNhc3MvaXNzdWVzLzM2OFxuQGZ1bmN0aW9uIGlzLW5vdCgkdmFsdWUpIHtcbiAgQHJldHVybiBpZigkdmFsdWUsIGZhbHNlLCB0cnVlKTtcbn1cblxuLy8gQ2hlY2tzIGlmIGEgbnVtYmVyIGlzIGV2ZW5cbkBmdW5jdGlvbiBpcy1ldmVuKCRpbnQpIHtcbiAgQHJldHVybiAkaW50ICUgMiA9PSAwO1xufVxuXG4vLyBDaGVja3MgaWYgYW4gZWxlbWVudCBiZWxvbmdzIHRvIGEgbGlzdCBvciBub3RcbkBmdW5jdGlvbiBiZWxvbmdzLXRvKCR0ZXN0ZWQtaXRlbSwgJGxpc3QpIHtcbiAgQHJldHVybiBpcy1ub3Qobm90LWJlbG9uZ3MtdG8oJHRlc3RlZC1pdGVtLCAkbGlzdCkpO1xufVxuXG5AZnVuY3Rpb24gbm90LWJlbG9uZ3MtdG8oJHRlc3RlZC1pdGVtLCAkbGlzdCkge1xuICBAcmV0dXJuIGlzLW5vdChpbmRleCgkbGlzdCwgJHRlc3RlZC1pdGVtKSk7XG59XG5cbi8vIENvbnRhaW5zIGRpc3BsYXkgdmFsdWVcbkBmdW5jdGlvbiBjb250YWlucy1kaXNwbGF5LXZhbHVlKCRxdWVyeSkge1xuICBAcmV0dXJuIGJlbG9uZ3MtdG8odGFibGUsICRxdWVyeSlcbiAgICAgICBvciBiZWxvbmdzLXRvKGJsb2NrLCAkcXVlcnkpXG4gICAgICAgb3IgYmVsb25ncy10byhpbmxpbmUtYmxvY2ssICRxdWVyeSlcbiAgICAgICBvciBiZWxvbmdzLXRvKGlubGluZSwgJHF1ZXJ5KTtcbn1cblxuLy8gUGFyc2VzIHRoZSBmaXJzdCBhcmd1bWVudCBvZiBzcGFuLWNvbHVtbnMoKVxuQGZ1bmN0aW9uIGNvbnRhaW5lci1zcGFuKCRzcGFuOiAkc3Bhbikge1xuICBAaWYgbGVuZ3RoKCRzcGFuKSA9PSAzIHtcbiAgICAkY29udGFpbmVyLWNvbHVtbnM6IG50aCgkc3BhbiwgMyk7XG4gICAgQHJldHVybiAkY29udGFpbmVyLWNvbHVtbnM7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzcGFuKSA9PSAyIHtcbiAgICAkY29udGFpbmVyLWNvbHVtbnM6IG50aCgkc3BhbiwgMik7XG4gICAgQHJldHVybiAkY29udGFpbmVyLWNvbHVtbnM7XG4gIH1cblxuICBAcmV0dXJuICRncmlkLWNvbHVtbnM7XG59XG5cbkBmdW5jdGlvbiBjb250YWluZXItc2hpZnQoJHNoaWZ0OiAkc2hpZnQpIHtcbiAgJHBhcmVudC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zICFkZWZhdWx0ICFnbG9iYWw7XG5cbiAgQGlmIGxlbmd0aCgkc2hpZnQpID09IDMge1xuICAgICRjb250YWluZXItY29sdW1uczogbnRoKCRzaGlmdCwgMyk7XG4gICAgQHJldHVybiAkY29udGFpbmVyLWNvbHVtbnM7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaGlmdCkgPT0gMiB7XG4gICAgJGNvbnRhaW5lci1jb2x1bW5zOiBudGgoJHNoaWZ0LCAyKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfVxuXG4gIEByZXR1cm4gJHBhcmVudC1jb2x1bW5zO1xufVxuXG4vLyBHZW5lcmF0ZXMgYSBzdHJpcGVkIGJhY2tncm91bmRcbkBmdW5jdGlvbiBncmFkaWVudC1zdG9wcygkZ3JpZC1jb2x1bW5zLCAkY29sb3I6ICR2aXN1YWwtZ3JpZC1jb2xvcikge1xuICAkdHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50O1xuXG4gICRjb2x1bW4td2lkdGg6IGZsZXgtZ3JpZCgxLCAkZ3JpZC1jb2x1bW5zKTtcbiAgJGd1dHRlci13aWR0aDogZmxleC1ndXR0ZXIoJGdyaWQtY29sdW1ucyk7XG4gICRjb2x1bW4tb2Zmc2V0OiAkY29sdW1uLXdpZHRoO1xuXG4gICR2YWx1ZXM6ICgkdHJhbnNwYXJlbnQgMCwgJGNvbG9yIDApO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRvICRncmlkLWNvbHVtbnMqMiB7XG4gICAgQGlmIGlzLWV2ZW4oJGkpIHtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkdHJhbnNwYXJlbnQgJGNvbHVtbi1vZmZzZXQsIGNvbW1hKTtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkY29sb3IgJGNvbHVtbi1vZmZzZXQsIGNvbW1hKTtcbiAgICAgICRjb2x1bW4tb2Zmc2V0OiAkY29sdW1uLW9mZnNldCArICRjb2x1bW4td2lkdGg7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkdmFsdWVzOiBhcHBlbmQoJHZhbHVlcywgJGNvbG9yICRjb2x1bW4tb2Zmc2V0LCBjb21tYSk7XG4gICAgICAkdmFsdWVzOiBhcHBlbmQoJHZhbHVlcywgJHRyYW5zcGFyZW50ICRjb2x1bW4tb2Zmc2V0LCBjb21tYSk7XG4gICAgICAkY29sdW1uLW9mZnNldDogJGNvbHVtbi1vZmZzZXQgKyAkZ3V0dGVyLXdpZHRoO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlcztcbn1cblxuLy8gTGF5b3V0IGRpcmVjdGlvblxuQGZ1bmN0aW9uIGdldC1kaXJlY3Rpb24oJGxheW91dCwgJGRlZmF1bHQpIHtcbiAgJGRpcmVjdGlvbjogbnVsbDtcblxuICBAaWYgdG8tdXBwZXItY2FzZSgkbGF5b3V0KSA9PSBcIkxUUlwiIG9yIHRvLXVwcGVyLWNhc2UoJGxheW91dCkgPT0gXCJSVExcIiB7XG4gICAgJGRpcmVjdGlvbjogZGlyZWN0aW9uLWZyb20tbGF5b3V0KCRsYXlvdXQpO1xuICB9IEBlbHNlIHtcbiAgICAkZGlyZWN0aW9uOiBkaXJlY3Rpb24tZnJvbS1sYXlvdXQoJGRlZmF1bHQpO1xuICB9XG5cbiAgQHJldHVybiAkZGlyZWN0aW9uO1xufVxuXG5AZnVuY3Rpb24gZGlyZWN0aW9uLWZyb20tbGF5b3V0KCRsYXlvdXQpIHtcbiAgJGRpcmVjdGlvbjogbnVsbDtcblxuICBAaWYgdG8tdXBwZXItY2FzZSgkbGF5b3V0KSA9PSBcIkxUUlwiIHtcbiAgICAkZGlyZWN0aW9uOiByaWdodDtcbiAgfSBAZWxzZSB7XG4gICAgJGRpcmVjdGlvbjogbGVmdDtcbiAgfVxuXG4gIEByZXR1cm4gJGRpcmVjdGlvbjtcbn1cblxuQGZ1bmN0aW9uIGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbikge1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiBsZWZ0O1xuXG4gIEBpZiAkZGlyZWN0aW9uID09IFwibGVmdFwiIHtcbiAgICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiByaWdodDtcbiAgfVxuXG4gIEByZXR1cm4gJG9wcG9zaXRlLWRpcmVjdGlvbjtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFJldHVybnMgYSBtZWRpYSBjb250ZXh0IChtZWRpYSBxdWVyeSAvIGdyaWQgY29udGV4dCkgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgdmFyaWFibGUgYW5kIHBhc3NlZCB0byBgbWVkaWEoKWAgYXMgYSBzaW5nbGUta2V5d29yZCBhcmd1bWVudC4gTWVkaWEgY29udGV4dHMgZGVmaW5lZCB1c2luZyBgbmV3LWJyZWFrcG9pbnRgIGFyZSB1c2VkIGJ5IHRoZSB2aXN1YWwgZ3JpZCwgYXMgbG9uZyBhcyB0aGV5IGFyZSBkZWZpbmVkIGJlZm9yZSBpbXBvcnRpbmcgTmVhdC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHF1ZXJ5XG4vLy8gICBBIGxpc3Qgb2YgbWVkaWEgcXVlcnkgZmVhdHVyZXMgYW5kIHZhbHVlcy4gRWFjaCBgJGZlYXR1cmVgIHNob3VsZCBoYXZlIGEgY29ycmVzcG9uZGluZyBgJHZhbHVlYC5cbi8vL1xuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSBgJHZhbHVlYCBpbiBgJHF1ZXJ5YCwgYCRkZWZhdWx0LWZlYXR1cmVgIGlzIGdvaW5nIHRvIGJlIHVzZWQuXG4vLy9cbi8vLyAgIFRoZSBudW1iZXIgb2YgdG90YWwgY29sdW1ucyBpbiB0aGUgZ3JpZCBjYW4gYmUgc2V0IGJ5IHBhc3NpbmcgYCRjb2x1bW5zYCBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0IChvdmVycmlkZXMgYCR0b3RhbC1jb2x1bW5zYCkuIEZvciBhIGxpc3Qgb2YgdmFsaWQgdmFsdWVzIGZvciBgJGZlYXR1cmVgLCBjbGljayBbaGVyZV0oaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1tZWRpYXF1ZXJpZXMvI21lZGlhMSkuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAodW5pdGxlc3MpfSAkdG90YWwtY29sdW1ucyBbJGdyaWQtY29sdW1uc11cbi8vLyAgIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGluIHRoZSBuZXcgZ3JpZCBjb250ZXh0LiBDYW4gYmUgc2V0IGFzIGEgc2hvcnRoYW5kIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICRtb2JpbGU6IG5ldy1icmVha3BvaW50KG1heC13aWR0aCA0ODBweCA0KTtcbi8vL1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBtZWRpYSgkbW9iaWxlKSB7XG4vLy8gICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQpO1xuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuLy8vICAgICAuZWxlbWVudCB7XG4vLy8gICAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgICAgbWFyZ2luLXJpZ2h0OiA3LjQyMjk3JTtcbi8vLyAgICAgICB3aWR0aDogMTAwJTtcbi8vLyAgICAgfVxuLy8vICAgICAuZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICAgIH1cbi8vLyAgIH1cblxuQGZ1bmN0aW9uIG5ldy1icmVha3BvaW50KCRxdWVyeTogJGZlYXR1cmUgJHZhbHVlICRjb2x1bW5zLCAkdG90YWwtY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgJHF1ZXJ5OiAkZGVmYXVsdC1mZWF0dXJlIG50aCgkcXVlcnksIDEpICR0b3RhbC1jb2x1bW5zO1xuICB9IEBlbHNlIGlmIGlzLWV2ZW4obGVuZ3RoKCRxdWVyeSkpIHtcbiAgICAkcXVlcnk6IGFwcGVuZCgkcXVlcnksICR0b3RhbC1jb2x1bW5zKTtcbiAgfVxuXG4gIEBpZiBpcy1ub3QoYmVsb25ncy10bygkcXVlcnksICR2aXN1YWwtZ3JpZC1icmVha3BvaW50cykpIHtcbiAgICAkdmlzdWFsLWdyaWQtYnJlYWtwb2ludHM6IGFwcGVuZCgkdmlzdWFsLWdyaWQtYnJlYWtwb2ludHMsICRxdWVyeSwgY29tbWEpICFnbG9iYWw7XG4gIH1cblxuICBAcmV0dXJuICRxdWVyeTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFNldHMgdGhlIHJlbGF0aXZlIHdpZHRoIG9mIGEgc2luZ2xlIGdyaWQgY29sdW1uLiBUaGUgdW5pdCB1c2VkIHNob3VsZCBiZSB0aGUgc2FtZSBvbmUgdXNlZCB0byBkZWZpbmUgYCRndXR0ZXJgLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0KVxuXG4kY29sdW1uOiA0LjIzNThlbSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHJlbGF0aXZlIHdpZHRoIG9mIGEgc2luZ2xlIGdyaWQgZ3V0dGVyLiBUaGUgdW5pdCB1c2VkIHNob3VsZCBiZSB0aGUgc2FtZSBvbmUgdXNlZCB0byBkZWZpbmUgYCRjb2x1bW5gLiBTZXQgd2l0aCB0aGUgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXIgKFVuaXQpXG5cbiRndXR0ZXI6IDEuNjE4ZW0gIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC4gSXRzIHZhbHVlIGNhbiBiZSBvdmVycmlkZGVuIGluc2lkZSBhIG1lZGlhIHF1ZXJ5IHVzaW5nIHRoZSBgbWVkaWEoKWAgbWl4aW4uIFNldCB3aXRoIHRoZSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAoVW5pdGxlc3MpXG5cbiRncmlkLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgbWF4LXdpZHRoIHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IHRoYXQgaW5jbHVkZXMgYG91dGVyLWNvbnRhaW5lcigpYC4gU2V0IHdpdGggdGhlIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0KVxuLy8vXG4kbWF4LXdpZHRoOiAxMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBXaGVuIHNldCB0byB0cnVlLCBpdCBzZXRzIHRoZSBib3gtc2l6aW5nIHByb3BlcnR5IG9mIGFsbCBlbGVtZW50cyB0byBgYm9yZGVyLWJveGAuIFNldCB3aXRoIGEgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBodG1sIHtcbi8vLyAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuLy8vXG4vLy8gICAqLCAqOjphZnRlciwgKjo6YmVmb3JlIHtcbi8vLyAgICAgYm94LXNpemluZzogaW5oZXJpdDtcbi8vLyAgIH1cblxuJGJvcmRlci1ib3gtc2l6aW5nOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgZGVmYXVsdCBbbWVkaWEgZmVhdHVyZV0oaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1tZWRpYXF1ZXJpZXMvI21lZGlhKSB0aGF0IGBtZWRpYSgpYCBhbmQgYG5ldy1icmVha3BvaW50KClgIHJldmVydCB0byB3aGVuIG9ubHkgYSBicmVha3BvaW50IHZhbHVlIGlzIHBhc3NlZC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuXG4kZGVmYXVsdC1mZWF0dXJlOiBtaW4td2lkdGg7IC8vIERlZmF1bHQgQG1lZGlhIGZlYXR1cmUgZm9yIHRoZSBicmVha3BvaW50KCkgbWl4aW5cblxuLy8vU2V0cyB0aGUgZGVmYXVsdCBsYXlvdXQgZGlyZWN0aW9uIG9mIHRoZSBncmlkLiBDYW4gYmUgYExUUmAgb3IgYFJUTGAuIFNldCB3aXRoIGEgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vL0B0eXBlIFN0cmluZ1xuXG4kZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uOiBMVFIgIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBEaXNwbGF5cyB0aGUgdmlzdWFsIGdyaWQgd2hlbiBzZXQgdG8gdHJ1ZS4gVGhlIG92ZXJsYWlkIGdyaWQgbWF5IGJlIGZldyBwaXhlbHMgb2ZmIGRlcGVuZGluZyBvbiB0aGUgYnJvd3NlcidzIHJlbmRlcmluZyBlbmdpbmUgYW5kIHBpeGVsIHJvdW5kaW5nIGFsZ29yaXRobS4gU2V0IHdpdGggdGhlIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kdmlzdWFsLWdyaWQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIGdyaWQgY29sb3IuIFNldCB3aXRoIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgQ29sb3JcblxuJHZpc3VhbC1ncmlkLWNvbG9yOiAjZWVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgYHotaW5kZXhgIHByb3BlcnR5IG9mIHRoZSB2aXN1YWwgZ3JpZC4gQ2FuIGJlIGBiYWNrYCAoYmVoaW5kIGNvbnRlbnQpIG9yIGBmcm9udGAgKGluIGZyb250IG9mIGNvbnRlbnQpLiBTZXQgd2l0aCBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuXG4kdmlzdWFsLWdyaWQtaW5kZXg6IGJhY2sgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSBvcGFjaXR5IHByb3BlcnR5IG9mIHRoZSB2aXN1YWwgZ3JpZC4gU2V0IHdpdGggYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXIgKHVuaXRsZXNzKVxuXG4kdmlzdWFsLWdyaWQtb3BhY2l0eTogMC40ICFkZWZhdWx0O1xuXG4kdmlzdWFsLWdyaWQtYnJlYWtwb2ludHM6ICgpICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlzYWJsZSBhbGwgZGVwcmVjYXRpb24gd2FybmluZ3MuIERlZmF1bHRzIHRvIGBmYWxzZWAuIFNldCB3aXRoIGEgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiRkaXNhYmxlLXdhcm5pbmdzOiBmYWxzZSAhZGVmYXVsdDtcblxuQG1peGluIC1uZWF0LXdhcm4oJG1lc3NhZ2UpIHtcbiAgQGlmICRkaXNhYmxlLXdhcm5pbmdzID09IGZhbHNlIHtcbiAgICBAd2FybiBcIiN7JG1lc3NhZ2V9XCI7XG4gIH1cbn1cbiIsIiRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZGVmYXVsdDtcbiRmZy1jb2x1bW46ICRjb2x1bW47XG4kZmctZ3V0dGVyOiAkZ3V0dGVyO1xuJGZnLW1heC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiBmYWxzZSAhZGVmYXVsdDtcbiRsYXlvdXQtZGlyZWN0aW9uOiBMVFIgIWRlZmF1bHQ7XG5cbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XG4gICR3aWR0aDogJGNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xufVxuXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XG4gIEByZXR1cm4gJG4gKiAkZ3ctY29sdW1uICsgKCRuIC0gMSkgKiAkZ3ctZ3V0dGVyO1xufVxuXG5AZnVuY3Rpb24gZ2V0LXBhcmVudC1jb2x1bW5zKCRjb2x1bW5zKSB7XG4gIEBpZiAkY29sdW1ucyAhPSAkZ3JpZC1jb2x1bW5zIHtcbiAgICAkcGFyZW50LWNvbHVtbnM6ICRjb2x1bW5zICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiAkcGFyZW50LWNvbHVtbnM7XG59XG5cbkBmdW5jdGlvbiBpcy1kaXNwbGF5LXRhYmxlKCRjb250YWluZXItaXMtZGlzcGxheS10YWJsZSwgJGRpc3BsYXkpIHtcbiAgQHJldHVybiAkY29udGFpbmVyLWlzLWRpc3BsYXktdGFibGUgPT0gdHJ1ZSBvciAkZGlzcGxheSA9PSB0YWJsZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuQGlmICRib3JkZXItYm94LXNpemluZyA9PSB0cnVlIHtcbiAgaHRtbCB7IC8vIGh0dHA6Ly9iaXQubHkvMXFrMnRWUlxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAqIHtcbiAgICAmLFxuICAgICY6OmFmdGVyLFxuICAgICY6OmJlZm9yZSB7XG4gICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUmVtb3ZlcyB0aGUgZWxlbWVudCdzIGd1dHRlciBtYXJnaW4sIHJlZ2FyZGxlc3Mgb2YgaXRzIHBvc2l0aW9uIGluIHRoZSBncmlkIGhpZXJhcmNoeSBvciBkaXNwbGF5IHByb3BlcnR5LiBJdCBjYW4gdGFyZ2V0IGEgc3BlY2lmaWMgZWxlbWVudCwgb3IgZXZlcnkgYG50aC1jaGlsZGAgb2NjdXJyZW5jZS4gV29ya3Mgb25seSB3aXRoIGBibG9ja2AgbGF5b3V0cy5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHF1ZXJ5IFtibG9ja11cbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzLiBTdXBwb3J0ZWQgYXJndW1lbnRzIGFyZSBgbnRoLWNoaWxkYCBzZWxlY3RvcnMgKHRhcmdldHMgYSBzcGVjaWZpYyBwc2V1ZG8gZWxlbWVudCkgYW5kIGBhdXRvYCAodGFyZ2V0cyBgbGFzdC1jaGlsZGApLlxuLy8vXG4vLy8gICBXaGVuIHBhc3NlZCBhbiBgbnRoLWNoaWxkYCBhcmd1bWVudCBvZiB0eXBlIGAqbmAgd2l0aCBgYmxvY2tgIGRpc3BsYXksIHRoZSBvbWVnYSBtaXhpbiBhdXRvbWF0aWNhbGx5IGFkZHMgYSBjbGVhciB0byB0aGUgYCpuKzFgIHRoIGVsZW1lbnQuIE5vdGUgdGhhdCBjb21wb3NpdGUgYXJndW1lbnRzIHN1Y2ggYXMgYDJuKzFgIGRvIG5vdCBzdXBwb3J0IHRoaXMgZmVhdHVyZS5cbi8vL1xuLy8vICAgKipEZXByZWNhdGlvbiB3YXJuaW5nKio6IFRoZSBvbWVnYSBtaXhpbiB3aWxsIG5vIGxvbmdlciB0YWtlIGEgYCRkaXJlY3Rpb25gIGFyZ3VtZW50LiBUbyBjaGFuZ2UgdGhlIGxheW91dCBkaXJlY3Rpb24sIHVzZSBgcm93KCRkaXJlY3Rpb24pYCBvciBzZXQgYCRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb25gIGluc3RlYWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgb21lZ2E7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5udGgtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG9tZWdhKDRuKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAubnRoLWVsZW1lbnQ6bnRoLWNoaWxkKDRuKSB7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLm50aC1lbGVtZW50Om50aC1jaGlsZCg0bisxKSB7XG4vLy8gICAgIGNsZWFyOiBsZWZ0O1xuLy8vICAgfVxuXG5AbWl4aW4gb21lZ2EoJHF1ZXJ5OiBibG9jaywgJGRpcmVjdGlvbjogZGVmYXVsdCkge1xuICAkdGFibGU6IGJlbG9uZ3MtdG8odGFibGUsICRxdWVyeSk7XG4gICRhdXRvOiBiZWxvbmdzLXRvKGF1dG8sICRxdWVyeSk7XG5cbiAgQGlmICRkaXJlY3Rpb24gIT0gZGVmYXVsdCB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSBvbWVnYSBtaXhpbiB3aWxsIG5vIGxvbmdlciB0YWtlIGEgJGRpcmVjdGlvbiBhcmd1bWVudC4gVG8gY2hhbmdlIHRoZSBsYXlvdXQgZGlyZWN0aW9uLCB1c2UgdGhlIGRpcmVjdGlvbigpey4uLn0gbWl4aW4uXCIpO1xuICB9IEBlbHNlIHtcbiAgICAkZGlyZWN0aW9uOiBnZXQtZGlyZWN0aW9uKCRsYXlvdXQtZGlyZWN0aW9uLCAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKTtcbiAgfVxuXG4gIEBpZiAkdGFibGUge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgb21lZ2EgbWl4aW4gbm8gbG9uZ2VyIHJlbW92ZXMgcGFkZGluZyBpbiB0YWJsZSBsYXlvdXRzLlwiKTtcbiAgfVxuXG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICBAaWYgJGF1dG8ge1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgY29udGFpbnMtZGlzcGxheS12YWx1ZSgkcXVlcnkpIGFuZCAkdGFibGUgPT0gZmFsc2Uge1xuICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgbnRoLWNoaWxkKCRxdWVyeSwgJGRpcmVjdGlvbik7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDIge1xuICAgIEBpZiAkYXV0byB7XG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIG50aC1jaGlsZChudGgoJHF1ZXJ5LCAxKSwgJGRpcmVjdGlvbik7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVG9vIG1hbnkgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgb21lZ2EoKSBtaXhpbi5cIik7XG4gIH1cbn1cblxuQG1peGluIG50aC1jaGlsZCgkcXVlcnksICRkaXJlY3Rpb24pIHtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKTtcblxuICAmOm50aC1jaGlsZCgjeyRxdWVyeX0pIHtcbiAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gbnVtYmVyIGFuZCB1bml0KCRxdWVyeSkgPT0gXCJuXCIge1xuICAgICY6bnRoLWNoaWxkKCN7JHF1ZXJ5fSsxKSB7XG4gICAgICBjbGVhcjogJG9wcG9zaXRlLWRpcmVjdGlvbjtcbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgYSBvdXRlciBjb250YWluZXIgYnkgY2VudGVyaW5nIGl0IGluIHRoZSB2aWV3cG9ydCwgY2xlYXJpbmcgaXRzIGZsb2F0cywgYW5kIHNldHRpbmcgaXRzIGBtYXgtd2lkdGhgLlxuLy8vIEFsdGhvdWdoIG9wdGlvbmFsLCB1c2luZyBgb3V0ZXItY29udGFpbmVyYCBpcyByZWNvbW1lbmRlZC4gVGhlIG1peGluIGNhbiBiZSBjYWxsZWQgb24gbW9yZSB0aGFuIG9uZSBlbGVtZW50IHBlciBwYWdlLCBhcyBsb25nIGFzIHRoZXkgYXJlIG5vdCBuZXN0ZWQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciBbdW5pdF19ICRsb2NhbC1tYXgtd2lkdGggWyRtYXgtd2lkdGhdXG4vLy8gICBNYXggd2lkdGggdG8gYmUgYXBwbGllZCB0byB0aGUgZWxlbWVudC4gQ2FuIGJlIGEgcGVyY2VudGFnZSBvciBhIG1lYXN1cmUuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDEwMCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXgtd2lkdGg6IDEwMCU7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XG4vLy8gICAgIGNsZWFyOiBib3RoO1xuLy8vICAgICBjb250ZW50OiBcIlwiO1xuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcbi8vLyAgIH1cblxuQG1peGluIG91dGVyLWNvbnRhaW5lcigkbG9jYWwtbWF4LXdpZHRoOiAkbWF4LXdpZHRoKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXgtd2lkdGg6ICRsb2NhbC1tYXgtd2lkdGg7XG4gIG1hcmdpbjoge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgYW4gZWxlbWVudCBzaG91bGQgc3Bhbi4gSWYgdGhlIHNlbGVjdG9yIGlzIG5lc3RlZCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgb2YgaXRzIHBhcmVudCBlbGVtZW50IHNob3VsZCBiZSBwYXNzZWQgYXMgYW4gYXJndW1lbnQgYXMgd2VsbC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNwYW5cbi8vLyAgIEEgbGlzdCBjb250YWluaW5nIGAkY29sdW1uc2AsIHRoZSB1bml0bGVzcyBudW1iZXIgb2YgY29sdW1ucyB0aGUgZWxlbWVudCBzcGFucyAocmVxdWlyZWQpLCBhbmQgYCRjb250YWluZXItY29sdW1uc2AsIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0aGUgcGFyZW50IGVsZW1lbnQgc3BhbnMgKG9wdGlvbmFsKS5cbi8vL1xuLy8vICAgSWYgb25seSBvbmUgdmFsdWUgaXMgcGFzc2VkLCBpdCBpcyBhc3N1bWVkIHRoYXQgaXQncyBgJGNvbHVtbnNgIGFuZCB0aGF0IHRoYXQgYCRjb250YWluZXItY29sdW1uc2AgaXMgZXF1YWwgdG8gYCRncmlkLWNvbHVtbnNgLCB0aGUgdG90YWwgbnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGdyaWQuXG4vLy9cbi8vLyAgIFRoZSB2YWx1ZXMgY2FuIGJlIHNlcGFyYXRlZCB3aXRoIGFueSBzdHJpbmcgc3VjaCBhcyBgb2ZgLCBgL2AsIGV0Yy5cbi8vL1xuLy8vICAgYCRjb2x1bW5zYCBhbHNvIGFjY2VwdHMgZGVjaW1hbHMgZm9yIHdoZW4gaXQncyBuZWNlc3NhcnkgdG8gYnJlYWsgb3V0IG9mIHRoZSBzdGFuZGFyZCBncmlkLiBFLmcuIFBhc3NpbmcgYDIuNGAgaW4gYSBzdGFuZGFyZCAxMiBjb2x1bW4gZ3JpZCB3aWxsIGRpdmlkZSB0aGUgcm93IGludG8gNSBjb2x1bW5zLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXNwbGF5IFtibG9ja11cbi8vLyAgIFNldHMgdGhlIGRpc3BsYXkgcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQuIEJ5IGRlZmF1bHQgaXQgc2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCB0byBgYmxvY2tgLlxuLy8vXG4vLy8gICBJZiBwYXNzZWQgYGJsb2NrLWNvbGxhcHNlYCwgaXQgYWxzbyByZW1vdmVzIHRoZSBtYXJnaW4gZ3V0dGVyIGJ5IGFkZGluZyBpdCB0byB0aGUgZWxlbWVudCB3aWR0aC5cbi8vL1xuLy8vICAgSWYgcGFzc2VkIGB0YWJsZWAsIGl0IHNldHMgdGhlIGRpc3BsYXkgcHJvcGVydHkgdG8gYHRhYmxlLWNlbGxgIGFuZCBjYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiB0aGUgZWxlbWVudCB3aXRob3V0IHRha2luZyBndXR0ZXJzIGludG8gY29uc2lkZXJhdGlvbi4gVGhlIHJlc3VsdCBkb2VzIG5vdCBhbGlnbiB3aXRoIHRoZSBibG9jay1iYXNlZCBncmlkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vL1xuLy8vICAgIC5uZXN0ZWQtZWxlbWVudCB7XG4vLy8gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMiBvZiA2KTtcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuLy8vICAgICB3aWR0aDogNDguODIxMTclO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudCAubmVzdGVkLWVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogNC44MjkxNiU7XG4vLy8gICAgIHdpZHRoOiAzMC4xMTM4OSU7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50IC5uZXN0ZWQtZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuXG5AbWl4aW4gc3Bhbi1jb2x1bW5zKCRzcGFuOiAkY29sdW1ucyBvZiAkY29udGFpbmVyLWNvbHVtbnMsICRkaXNwbGF5OiBibG9jaykge1xuICAkY29sdW1uczogbnRoKCRzcGFuLCAxKTtcbiAgJGNvbnRhaW5lci1jb2x1bW5zOiBjb250YWluZXItc3Bhbigkc3Bhbik7XG5cbiAgJHBhcmVudC1jb2x1bW5zOiBnZXQtcGFyZW50LWNvbHVtbnMoJGNvbnRhaW5lci1jb2x1bW5zKSAhZ2xvYmFsO1xuXG4gICRkaXJlY3Rpb246IGdldC1kaXJlY3Rpb24oJGxheW91dC1kaXJlY3Rpb24sICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24pO1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiBnZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXJlY3Rpb24pO1xuXG4gICRkaXNwbGF5LXRhYmxlOiBpcy1kaXNwbGF5LXRhYmxlKCRjb250YWluZXItZGlzcGxheS10YWJsZSwgJGRpc3BsYXkpO1xuXG4gIEBpZiAkZGlzcGxheS10YWJsZSAge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMgLyAkY29udGFpbmVyLWNvbHVtbnMpO1xuICB9IEBlbHNlIHtcbiAgICBmbG9hdDogI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTtcblxuICAgIEBpZiAkZGlzcGxheSAhPSBuby1kaXNwbGF5IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIEBpZiAkZGlzcGxheSA9PSBjb2xsYXBzZSB7XG4gICAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlICdjb2xsYXBzZScgYXJndW1lbnQgd2lsbCBiZSBkZXByZWNhdGVkLiBVc2UgJ2Jsb2NrLWNvbGxhcHNlJyBpbnN0ZWFkLlwiKTtcbiAgICB9XG5cbiAgICBAaWYgJGRpc3BsYXkgPT0gY29sbGFwc2Ugb3IgJGRpc3BsYXkgPT0gYmxvY2stY29sbGFwc2Uge1xuICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zKSArIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1ucyk7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIHdpZHRoOiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1ucyk7XG4gICAgICB9XG5cbiAgICB9IEBlbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnMpO1xuICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zKTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBEZXNpZ25hdGVzIHRoZSBlbGVtZW50IGFzIGEgcm93IG9mIGNvbHVtbnMgaW4gdGhlIGdyaWQgbGF5b3V0LiBJdCBjbGVhcnMgdGhlIGZsb2F0cyBvbiB0aGUgZWxlbWVudCBhbmQgc2V0cyBpdHMgZGlzcGxheSBwcm9wZXJ0eS4gUm93cyBjYW4ndCBiZSBuZXN0ZWQsIGJ1dCB0aGVyZSBjYW4gYmUgbW9yZSB0aGFuIG9uZSByb3cgZWxlbWVudOKAlHdpdGggZGlmZmVyZW50IGRpc3BsYXkgcHJvcGVydGllc+KAlHBlciBsYXlvdXQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW2RlZmF1bHRdXG4vLy8gIFNldHMgdGhlIGRpc3BsYXkgcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQgYW5kIHRoZSBkaXNwbGF5IGNvbnRleHQgdGhhdCB3aWxsIGJlIHVzZWQgYnkgaXRzIGNoaWxkcmVuLiBDYW4gYmUgYGJsb2NrYCBvciBgdGFibGVgLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXJlY3Rpb24gWyRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb25dXG4vLy8gIFNldHMgdGhlIGxheW91dCBkaXJlY3Rpb24uIENhbiBiZSBgTFRSYCAobGVmdC10by1yaWdodCkgb3IgYFJUTGAgKHJpZ2h0LXRvLWxlZnQpLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gIC5lbGVtZW50IHtcbi8vLyAgICBAaW5jbHVkZSByb3coKTtcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAuZWxlbWVudCB7XG4vLy8gICAgKnpvb206IDE7XG4vLy8gICAgZGlzcGxheTogYmxvY2s7XG4vLy8gIH1cbi8vL1xuLy8vIC5lbGVtZW50OmJlZm9yZSwgLmVsZW1lbnQ6YWZ0ZXIge1xuLy8vICAgY29udGVudDogXCIgXCI7XG4vLy8gICBkaXNwbGF5OiB0YWJsZTtcbi8vLyB9XG4vLy9cbi8vLyAuZWxlbWVudDphZnRlciB7XG4vLy8gICBjbGVhcjogYm90aDtcbi8vLyB9XG5cbkBtaXhpbiByb3coJGRpc3BsYXk6IGRlZmF1bHQsICRkaXJlY3Rpb246ICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24pIHtcbiAgQGlmICRkaXJlY3Rpb24gIT0gJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbiB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSAkZGlyZWN0aW9uIGFyZ3VtZW50IHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBmdXR1cmUgdmVyc2lvbnMgaW4gZmF2b3Igb2YgdGhlIGRpcmVjdGlvbigpey4uLn0gbWl4aW4uXCIpO1xuICB9XG5cbiAgJGxheW91dC1kaXJlY3Rpb246ICRkaXJlY3Rpb24gIWdsb2JhbDtcblxuICBAaWYgJGRpc3BsYXkgIT0gZGVmYXVsdCB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSAkZGlzcGxheSBhcmd1bWVudCB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gZnV0dXJlIHZlcnNpb25zIGluIGZhdm9yIG9mIHRoZSBkaXNwbGF5KCl7Li4ufSBtaXhpbi5cIik7XG4gIH1cblxuICBAaWYgJGRpc3BsYXkgPT0gdGFibGUge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIEBpbmNsdWRlIGZpbGwtcGFyZW50O1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiB0cnVlICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICRjb250YWluZXItZGlzcGxheS10YWJsZTogZmFsc2UgIWdsb2JhbDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gVHJhbnNsYXRlcyBhbiBlbGVtZW50IGhvcml6b250YWxseSBieSBhIG51bWJlciBvZiBjb2x1bW5zLiBQb3NpdGl2ZSBhcmd1bWVudHMgc2hpZnQgdGhlIGVsZW1lbnQgdG8gdGhlIGFjdGl2ZSBsYXlvdXQgZGlyZWN0aW9uLCB3aGlsZSBuZWdhdGl2ZSBvbmVzIHNoaWZ0IGl0IHRvIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAodW5pdGxlc3MpfSAkbi1jb2x1bW5zIFsxXVxuLy8vICAgTnVtYmVyIG9mIGNvbHVtbnMgYnkgd2hpY2ggdGhlIGVsZW1lbnQgc2hpZnRzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNoaWZ0KC0zKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBvdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IC0yNS41ODk0MSU7XG4vLy8gICB9XG5cbkBtaXhpbiBzaGlmdCgkbi1jb2x1bW5zOiAxKSB7XG4gIEBpbmNsdWRlIHNoaWZ0LWluLWNvbnRleHQoJG4tY29sdW1ucyk7XG59XG5cbi8vLyBUcmFuc2xhdGVzIGFuIGVsZW1lbnQgaG9yaXpvbnRhbGx5IGJ5IGEgbnVtYmVyIG9mIGNvbHVtbnMsIGluIGEgc3BlY2lmaWMgbmVzdGluZyBjb250ZXh0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hpZnRcbi8vLyAgIEEgbGlzdCBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0byBzaGlmdCAoYCRjb2x1bW5zYCkgYW5kIHRoZSBudW1iZXIgb2YgY29sdW1ucyBvZiB0aGUgcGFyZW50IGVsZW1lbnQgKGAkY29udGFpbmVyLWNvbHVtbnNgKS5cbi8vL1xuLy8vICAgVGhlIHR3byB2YWx1ZXMgY2FuIGJlIHNlcGFyYXRlZCB3aXRoIGFueSBzdHJpbmcgc3VjaCBhcyBgb2ZgLCBgL2AsIGV0Yy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaGlmdCgtMyBvZiA2KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBvdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IC01Mi40MTQ1OCU7XG4vLy8gICB9XG5cbkBtaXhpbiBzaGlmdC1pbi1jb250ZXh0KCRzaGlmdDogJGNvbHVtbnMgb2YgJGNvbnRhaW5lci1jb2x1bW5zKSB7XG4gICRuLWNvbHVtbnM6IG50aCgkc2hpZnQsIDEpO1xuICAkcGFyZW50LWNvbHVtbnM6IGNvbnRhaW5lci1zaGlmdCgkc2hpZnQpICFnbG9iYWw7XG5cbiAgJGRpcmVjdGlvbjogZ2V0LWRpcmVjdGlvbigkbGF5b3V0LWRpcmVjdGlvbiwgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbik7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbik7XG5cbiAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRuLWNvbHVtbnMgKiBmbGV4LWdyaWQoMSwgJHBhcmVudC1jb2x1bW5zKSArICRuLWNvbHVtbnMgKiBmbGV4LWd1dHRlcigkcGFyZW50LWNvbHVtbnMpO1xuXG4gIC8vIFJlc2V0IG5lc3RpbmcgY29udGV4dFxuICAkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEFkZHMgcGFkZGluZyB0byB0aGUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHBhZGRpbmcgW2ZsZXgtZ3V0dGVyKCldXG4vLy8gICBBIGxpc3Qgb2YgcGFkZGluZyB2YWx1ZShzKSB0byB1c2UuIFBhc3NpbmcgYGRlZmF1bHRgIGluIHRoZSBsaXN0IHdpbGwgcmVzdWx0IGluIHVzaW5nIHRoZSBndXR0ZXIgd2lkdGggYXMgYSBwYWRkaW5nIHZhbHVlLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBhZCgzMHB4IC0yMHB4IDEwcHggZGVmYXVsdCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHBhZGRpbmc6IDMwcHggLTIwcHggMTBweCAyLjM1NzY1JTtcbi8vLyAgIH1cblxuQG1peGluIHBhZCgkcGFkZGluZzogZmxleC1ndXR0ZXIoKSkge1xuICAkcGFkZGluZy1saXN0OiBudWxsO1xuICBAZWFjaCAkdmFsdWUgaW4gJHBhZGRpbmcge1xuICAgICR2YWx1ZTogaWYoJHZhbHVlID09ICdkZWZhdWx0JywgZmxleC1ndXR0ZXIoKSwgJHZhbHVlKTtcbiAgICAkcGFkZGluZy1saXN0OiBqb2luKCRwYWRkaW5nLWxpc3QsICR2YWx1ZSk7XG4gIH1cbiAgcGFkZGluZzogJHBhZGRpbmctbGlzdDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEZvcmNlcyB0aGUgZWxlbWVudCB0byBmaWxsIGl0cyBwYXJlbnQgY29udGFpbmVyLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGZpbGwtcGFyZW50O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogMTAwJTtcbi8vLyAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbi8vLyAgIH1cblxuQG1peGluIGZpbGwtcGFyZW50KCkge1xuICB3aWR0aDogMTAwJTtcblxuICBAaWYgJGJvcmRlci1ib3gtc2l6aW5nID09IGZhbHNlIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBPdXRwdXRzIGEgbWVkaWEtcXVlcnkgYmxvY2sgd2l0aCBhbiBvcHRpb25hbCBncmlkIGNvbnRleHQgKHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyB1c2VkIGluIHRoZSBncmlkKS5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHF1ZXJ5XG4vLy8gICBBIGxpc3Qgb2YgbWVkaWEgcXVlcnkgZmVhdHVyZXMgYW5kIHZhbHVlcywgd2hlcmUgZWFjaCBgJGZlYXR1cmVgIHNob3VsZCBoYXZlIGEgY29ycmVzcG9uZGluZyBgJHZhbHVlYC5cbi8vLyAgIEZvciBhIGxpc3Qgb2YgdmFsaWQgdmFsdWVzIGZvciBgJGZlYXR1cmVgLCBjbGljayBbaGVyZV0oaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1tZWRpYXF1ZXJpZXMvI21lZGlhMSkuXG4vLy9cbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgYCR2YWx1ZWAgaW4gYCRxdWVyeWAsIGAkZGVmYXVsdC1mZWF0dXJlYCBpcyBnb2luZyB0byBiZSB1c2VkLlxuLy8vXG4vLy8gICBUaGUgbnVtYmVyIG9mIHRvdGFsIGNvbHVtbnMgaW4gdGhlIGdyaWQgY2FuIGJlIHNldCBieSBwYXNzaW5nIGAkY29sdW1uc2AgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdCAob3ZlcnJpZGVzIGAkdG90YWwtY29sdW1uc2ApLlxuLy8vXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAodW5pdGxlc3MpfSAkdG90YWwtY29sdW1ucyBbJGdyaWQtY29sdW1uc11cbi8vLyAgIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGluIHRoZSBuZXcgZ3JpZCBjb250ZXh0LiBDYW4gYmUgc2V0IGFzIGEgc2hvcnRoYW5kIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5yZXNwb25zaXZlLWVsZW1lbnQge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoNzY5cHgpIHtcbi8vLyAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vICAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gIC5uZXctY29udGV4dC1lbGVtZW50IHtcbi8vLyAgICBAaW5jbHVkZSBtZWRpYShtaW4td2lkdGggMzIwcHggbWF4LXdpZHRoIDQ4MHB4LCA2KSB7XG4vLy8gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSB7XG4vLy8gICAgLnJlc3BvbnNpdmUtZWxlbWVudCB7XG4vLy8gICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbi8vLyAgICAgIHdpZHRoOiA0OC44MjExNyU7XG4vLy8gICAgfVxuLy8vXG4vLy8gICAgLnJlc3BvbnNpdmUtZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4vLy8gICAgLm5ldy1jb250ZXh0LWVsZW1lbnQge1xuLy8vICAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogNC44MjkxNiU7XG4vLy8gICAgICB3aWR0aDogMTAwJTtcbi8vLyAgICB9XG4vLy9cbi8vLyAgICAubmV3LWNvbnRleHQtZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICB9XG4vLy8gIH1cblxuQG1peGluIG1lZGlhKCRxdWVyeTogJGZlYXR1cmUgJHZhbHVlICRjb2x1bW5zLCAkdG90YWwtY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKCRkZWZhdWx0LWZlYXR1cmU6IG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucyAhZ2xvYmFsO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnMgIWdsb2JhbDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICRsb29wLXRvOiBsZW5ndGgoJHF1ZXJ5KTtcbiAgICAkbWVkaWEtcXVlcnk6IFwic2NyZWVuIGFuZCBcIjtcbiAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnMgIWdsb2JhbDtcblxuICAgIEBpZiBpcy1ub3QoaXMtZXZlbihsZW5ndGgoJHF1ZXJ5KSkpIHtcbiAgICAgICRncmlkLWNvbHVtbnM6IG50aCgkcXVlcnksICRsb29wLXRvKSAhZ2xvYmFsO1xuICAgICAgJGxvb3AtdG86ICRsb29wLXRvIC0gMTtcbiAgICB9XG5cbiAgICAkaTogMTtcbiAgICBAd2hpbGUgJGkgPD0gJGxvb3AtdG8ge1xuICAgICAgJG1lZGlhLXF1ZXJ5OiAkbWVkaWEtcXVlcnkgKyBcIihcIiArIG50aCgkcXVlcnksICRpKSArIFwiOiBcIiArIG50aCgkcXVlcnksICRpICsgMSkgKyBcIikgXCI7XG5cbiAgICAgIEBpZiAoJGkgKyAxKSAhPSAkbG9vcC10byB7XG4gICAgICAgICRtZWRpYS1xdWVyeTogJG1lZGlhLXF1ZXJ5ICsgXCJhbmQgXCI7XG4gICAgICB9XG5cbiAgICAgICRpOiAkaSArIDI7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGlhLXF1ZXJ5fSB7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucyAhZ2xvYmFsO1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG5AbWl4aW4gYnJlYWtwb2ludCgkcXVlcnk6JGZlYXR1cmUgJHZhbHVlICRjb2x1bW5zLCAkdG90YWwtY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlIGJyZWFrcG9pbnQoKSBtaXhpbiB3YXMgcmVuYW1lZCB0byBtZWRpYSgpIGluIE5lYXQgMS4wLiBQbGVhc2UgdXBkYXRlIHlvdXIgcHJvamVjdCB3aXRoIHRoZSBuZXcgc3ludGF4IGJlZm9yZSB0aGUgbmV4dCB2ZXJzaW9uIGJ1bXAuXCIpO1xuXG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoJGRlZmF1bHQtZmVhdHVyZTogbnRoKCRxdWVyeSwgMSkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDIge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDMge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6IG50aCgkcXVlcnksIDMpO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDQge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpIGFuZCAobnRoKCRxdWVyeSwgMyk6IG50aCgkcXVlcnksIDQpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucztcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSA1IHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKSBhbmQgKG50aCgkcXVlcnksIDMpOiBudGgoJHF1ZXJ5LCA0KSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogbnRoKCRxdWVyeSwgNSk7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJXcm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIGZvciBicmVha3BvaW50KCkuIFJlYWQgdGhlIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscy5cIik7XG4gIH1cbn1cblxuQG1peGluIG50aC1vbWVnYSgkbnRoLCAkZGlzcGxheTogYmxvY2ssICRkaXJlY3Rpb246IGRlZmF1bHQpIHtcbiAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSBudGgtb21lZ2EoKSBtaXhpbiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIG9tZWdhKCkgaW5zdGVhZC5cIik7XG4gIEBpbmNsdWRlIG9tZWdhKCRudGggJGRpc3BsYXksICRkaXJlY3Rpb24pO1xufVxuXG4vLy8gUmVzZXRzIHRoZSBhY3RpdmUgZGlzcGxheSBwcm9wZXJ0eSB0byBgYmxvY2tgLiBQYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gY2hhbmdpbmcgdGhlIGRpc3BsYXkgcHJvcGVydHkgaW4gYSBzaW5nbGUgcm93LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHJvdyh0YWJsZSk7XG4vLy8gICAgIC8vIENvbnRleHQgY2hhbmdlZCB0byB0YWJsZSBkaXNwbGF5XG4vLy8gICB9XG4vLy9cbi8vLyAgIEBpbmNsdWRlIHJlc2V0LWRpc3BsYXk7XG4vLy8gICAvLyBDb250ZXh0IGlzIHJlc2V0IHRvIGJsb2NrIGRpc3BsYXlcblxuQG1peGluIHJlc2V0LWRpc3BsYXkge1xuICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6IGZhbHNlICFnbG9iYWw7XG4gIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJSZXNldHRpbmcgJGRpc3BsYXkgd2lsbCBiZSBkZXByZWNhdGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBpbiBmYXZvciBvZiB0aGUgZGlzcGxheSgpey4uLn0gbWl4aW4uXCIpO1xufVxuXG4vLy8gUmVzZXRzIHRoZSBhY3RpdmUgbGF5b3V0IGRpcmVjdGlvbiB0byB0aGUgZGVmYXVsdCB2YWx1ZSBzZXQgaW4gYCRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb25gLiBQYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gY2hhbmdpbmcgdGhlIGxheW91dCBkaXJlY3Rpb24gaW4gYSBzaW5nbGUgcm93LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHJvdygkZGlyZWN0aW9uOiBSVEwpO1xuLy8vICAgICAvLyBDb250ZXh0IGNoYW5nZWQgdG8gcmlnaHQtdG8tbGVmdFxuLy8vICAgfVxuLy8vXG4vLy8gICBAaW5jbHVkZSByZXNldC1sYXlvdXQtZGlyZWN0aW9uO1xuLy8vICAgLy8gQ29udGV4dCBpcyByZXNldCB0byBsZWZ0LXRvLXJpZ2h0XG5cbkBtaXhpbiByZXNldC1sYXlvdXQtZGlyZWN0aW9uIHtcbiAgJGxheW91dC1kaXJlY3Rpb246ICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24gIWdsb2JhbDtcbiAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlJlc2V0dGluZyAkZGlyZWN0aW9uIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBmdXR1cmUgdmVyc2lvbnMgaW4gZmF2b3Igb2YgdGhlIGRpcmVjdGlvbigpey4uLn0gbWl4aW4uXCIpO1xufVxuXG4vLy8gUmVzZXRzIGJvdGggdGhlIGFjdGl2ZSBsYXlvdXQgZGlyZWN0aW9uIGFuZCB0aGUgYWN0aXZlIGRpc3BsYXkgcHJvcGVydHkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcm93KHRhYmxlLCBSVEwpO1xuLy8vICAgICAvLyBDb250ZXh0IGNoYW5nZWQgdG8gdGFibGUgdGFibGUgYW5kIHJpZ2h0LXRvLWxlZnRcbi8vLyAgIH1cbi8vL1xuLy8vICAgQGluY2x1ZGUgcmVzZXQtYWxsO1xuLy8vICAgLy8gQ29udGV4dCBpcyByZXNldCB0byBibG9jayBkaXNwbGF5IGFuZCBsZWZ0LXRvLXJpZ2h0XG5cbkBtaXhpbiByZXNldC1hbGwge1xuICBAaW5jbHVkZSByZXNldC1kaXNwbGF5O1xuICBAaW5jbHVkZSByZXNldC1sYXlvdXQtZGlyZWN0aW9uO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZ3JhZGllbnQoJHZhbHVlcy4uLikge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAkdmFsdWVzKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgJHZhbHVlcyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQobGVmdCwgJHZhbHVlcyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCAkdmFsdWVzKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcImxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCAjeyR2YWx1ZXN9KVwiKTtcbn1cblxuQGlmICR2aXN1YWwtZ3JpZCA9PSB0cnVlIG9yICR2aXN1YWwtZ3JpZCA9PSB5ZXMge1xuICBib2R5OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3JhZGllbnQoZ3JhZGllbnQtc3RvcHMoJGdyaWQtY29sdW1ucykpO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgICBvcGFjaXR5OiAkdmlzdWFsLWdyaWQtb3BhY2l0eTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaWYgJHZpc3VhbC1ncmlkLWluZGV4ID09IGJhY2sge1xuICAgICAgei1pbmRleDogLTE7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJHZpc3VhbC1ncmlkLWluZGV4ID09IGZyb250IHtcbiAgICAgIHotaW5kZXg6IDk5OTk7XG4gICAgfVxuXG4gICAgQGVhY2ggJGJyZWFrcG9pbnQgaW4gJHZpc3VhbC1ncmlkLWJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiAkYnJlYWtwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50KSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3JhZGllbnQoZ3JhZGllbnQtc3RvcHMoJGdyaWQtY29sdW1ucykpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGFuZ2VzIHRoZSBkaXNwbGF5IHByb3BlcnR5IHVzZWQgYnkgb3RoZXIgbWl4aW5zIGNhbGxlZCBpbiB0aGUgY29kZSBibG9jayBhcmd1bWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlzcGxheSBbYmxvY2tdXG4vLy8gICBEaXNwbGF5IHZhbHVlIHRvIGJlIHVzZWQgd2l0aGluIHRoZSBibG9jay4gQ2FuIGJlIGB0YWJsZWAgb3IgYGJsb2NrYC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIEBpbmNsdWRlIGRpc3BsYXktY29udGV4dCh0YWJsZSkge1xuLy8vICAgIC5kaXNwbGF5LXRhYmxlIHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzXG4vLy8gICAuZGlzcGxheS10YWJsZSB7XG4vLy8gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuLy8vICAgICAgLi4uXG4vLy8gICB9XG5cbkBtaXhpbiBkaXNwbGF5LWNvbnRleHQoJGRpc3BsYXk6IGJsb2NrKSB7XG4gICRzY29wZS1kaXNwbGF5OiAkY29udGFpbmVyLWRpc3BsYXktdGFibGU7XG4gICRjb250YWluZXItZGlzcGxheS10YWJsZTogJGRpc3BsYXkgPT0gdGFibGUgIWdsb2JhbDtcblxuICBAY29udGVudDtcblxuICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6ICRzY29wZS1kaXNwbGF5ICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGFuZ2VzIHRoZSBkaXJlY3Rpb24gcHJvcGVydHkgdXNlZCBieSBvdGhlciBtaXhpbnMgY2FsbGVkIGluIHRoZSBjb2RlIGJsb2NrIGFyZ3VtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXJlY3Rpb24gW2xlZnQtdG8tcmlnaHRdXG4vLy8gICBMYXlvdXQgZGlyZWN0aW9uIHRvIGJlIHVzZWQgd2l0aGluIHRoZSBibG9jay4gQ2FuIGJlIGBsZWZ0LXRvLXJpZ2h0YCBvciBgcmlnaHQtdG8tbGVmdGAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIEBpbmNsdWRlIGRpcmVjdGlvbi1jb250ZXh0KHJpZ2h0LXRvLWxlZnQpIHtcbi8vLyAgICAucmlnaHQtdG8tbGVmdC1ibG9jayB7XG4vLy8gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5yaWdodC10by1sZWZ0LWJsb2NrIHtcbi8vLyAgICAgZmxvYXQ6IHJpZ2h0O1xuLy8vICAgICAgLi4uXG4vLy8gICB9XG5cbkBtaXhpbiBkaXJlY3Rpb24tY29udGV4dCgkZGlyZWN0aW9uOiBsZWZ0LXRvLXJpZ2h0KSB7XG4gICRzY29wZS1kaXJlY3Rpb246ICRsYXlvdXQtZGlyZWN0aW9uO1xuXG4gIEBpZiB0by1sb3dlci1jYXNlKCRkaXJlY3Rpb24pID09IFwibGVmdC10by1yaWdodFwiIHtcbiAgICAkbGF5b3V0LWRpcmVjdGlvbjogTFRSICFnbG9iYWw7XG4gIH0gQGVsc2UgaWYgdG8tbG93ZXItY2FzZSgkZGlyZWN0aW9uKSA9PSBcInJpZ2h0LXRvLWxlZnRcIiB7XG4gICAgJGxheW91dC1kaXJlY3Rpb246IFJUTCAhZ2xvYmFsO1xuICB9XG5cbiAgQGNvbnRlbnQ7XG5cbiAgJGxheW91dC1kaXJlY3Rpb246ICRzY29wZS1kaXJlY3Rpb24gIWdsb2JhbDtcbn1cbiIsIi8qISBub3JtYWxpemUuY3NzIHYzLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcbiAqICAgIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgZm9jdXNlZCBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIGFsc28gaW4gYW5cbiAqIGFjdGl2ZS9ob3ZlciBzdGF0ZS5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIG1hcmdpbjogMDsgLyogMyAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG59XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCIvLyBUaGVzZSB2YXJpYWJsZXMgZHJpdmUgYWxtb3N0IGV2ZXJ5IGFzcGVjdCBvZiB0aGUgVS5TLiBXZWIgRGVzaWduXG4vLyBzeXN0ZW0uIEV2ZXJ5IHZhcmlhYmxlIGlzIGRlY2xhcmVkIGFzICFkZWZhdWx0IHNvIHRoYXQgaXQgY2FuIGJlXG4vLyBvdmVycmlkZGVuIGJ5IGEgcHJldmlvdXMgaW1wb3J0LlxuLy9cbi8vIFhYWCBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZSFcbi8vXG4vLyBJZiB5b3Ugd2FudCB0byBvdmVycmlkZSBhIHZhcmlhYmxlLCBzZXQgdGhhdCB2YXJpYWJsZSBpbiBvbmUgb2YgeW91clxuLy8gb3duIHBhcnRpYWxzLCB0aGVuIEBpbXBvcnQgJ3twYXRoL3RvL3Vzd2RzL31jb3JlL3ZhcmlhYmxlcycuXG5cbi8vIFR5cG9ncmFwaHlcbi8vIFJlbW92aW5nIHRoZSAhZGVmYXVsdCBmcm9tICRlbS1iYXNlIHNvIHdlIGFyZSBub3QgaW5oZXJpdGluZyB0aGF0XG4vLyB2YWx1ZSBmcm9tIEJvdXJib24uXG4kZW0tYmFzZTogICAgICAgICAgICAgMTBweDtcbiRiYXNlLWZvbnQtc2l6ZTogICAgICAxLjdyZW0gIWRlZmF1bHQ7XG4kc21hbGwtZm9udC1zaXplOiAgICAgMS40cmVtICFkZWZhdWx0O1xuJGxlYWQtZm9udC1zaXplOiAgICAgIDJyZW0gIWRlZmF1bHQ7XG4kdGl0bGUtZm9udC1zaXplOiAgICAgNS4ycmVtICFkZWZhdWx0O1xuJGgxLWZvbnQtc2l6ZTogICAgICAgIDRyZW0gIWRlZmF1bHQ7XG4kaDItZm9udC1zaXplOiAgICAgICAgM3JlbSAhZGVmYXVsdDtcbiRoMy1mb250LXNpemU6ICAgICAgICAycmVtICFkZWZhdWx0O1xuJGg0LWZvbnQtc2l6ZTogICAgICAgIDEuN3JlbSAhZGVmYXVsdDtcbiRoNS1mb250LXNpemU6ICAgICAgICAxLjVyZW0gIWRlZmF1bHQ7XG4kaDYtZm9udC1zaXplOiAgICAgICAgMS4zcmVtICFkZWZhdWx0O1xuJGJhc2UtbGluZS1oZWlnaHQ6ICAgIDEuNSAhZGVmYXVsdDtcbiRoZWFkaW5nLWxpbmUtaGVpZ2h0OiAxLjMgIWRlZmF1bHQ7XG4kbGVhZC1saW5lLWhlaWdodDogICAgMS43ICFkZWZhdWx0O1xuXG4kZm9udC1zYW5zOiAgICAgICAgICAgJ1NvdXJjZSBTYW5zIFBybycsICRoZWx2ZXRpY2EgIWRlZmF1bHQ7XG4kZm9udC1zZXJpZjogICAgICAgICAgJ01lcnJpd2VhdGhlcicsICRnZW9yZ2lhICFkZWZhdWx0O1xuXG4vLyBUT0RPIHRoZXNlIHNob3VsZCBiZSBjYWxsZWQgZm9udC13ZWlnaHQtJHt9XG4kZm9udC1ub3JtYWw6ICAgICAgICAgNDAwICFkZWZhdWx0O1xuJGZvbnQtYm9sZDogICAgICAgICAgIDcwMCAhZGVmYXVsdDtcblxuLy8gQ29sb3JcbiRjb2xvci1ibHVlOiAgICAgICAgICAgICAgICAgIzAwNzFiYyAhZGVmYXVsdDtcbiRjb2xvci1ibHVlLWRhcmtlcjogICAgICAgICAgIzIwNTQ5MyAhZGVmYXVsdDtcbiRjb2xvci1ibHVlLWRhcmtlc3Q6ICAgICAgICAgIzExMmU1MSAhZGVmYXVsdDtcblxuJGNvbG9yLWFxdWE6ICAgICAgICAgICAgICAgICAjMDJiZmU3ICFkZWZhdWx0O1xuJGNvbG9yLWFxdWEtZGFyazogICAgICAgICAgICAjMDBhNmQyICFkZWZhdWx0O1xuJGNvbG9yLWFxdWEtZGFya2VzdDogICAgICAgICAjMDQ2Yjk5ICFkZWZhdWx0O1xuJGNvbG9yLWFxdWEtbGlnaHQ6ICAgICAgICAgICAjOWJkYWYxICFkZWZhdWx0O1xuJGNvbG9yLWFxdWEtbGlnaHRlc3Q6ICAgICAgICAjZTFmM2Y4ICFkZWZhdWx0O1xuXG4kY29sb3ItcmVkOiAgICAgICAgICAgICAgICAgICNlMzFjM2QgIWRlZmF1bHQ7XG4kY29sb3ItcmVkLWRhcms6ICAgICAgICAgICAgICNjZDIwMjYgIWRlZmF1bHQ7XG4kY29sb3ItcmVkLWRhcmtlc3Q6ICAgICAgICAgICM5ODFiMWUgIWRlZmF1bHQ7XG4kY29sb3ItcmVkLWxpZ2h0OiAgICAgICAgICAgICNlNTkzOTMgIWRlZmF1bHQ7XG4kY29sb3ItcmVkLWxpZ2h0ZXN0OiAgICAgICAgICNmOWRlZGUgIWRlZmF1bHQ7XG5cbiRjb2xvci13aGl0ZTogICAgICAgICAgICAgICAgI2ZmZmZmZiAhZGVmYXVsdDtcbiRjb2xvci1ibGFjazogICAgICAgICAgICAgICAgIzAwMDAwMCAhZGVmYXVsdDtcbiRjb2xvci1ibGFjay1saWdodDogICAgICAgICAgIzIxMjEyMSAhZGVmYXVsdDtcblxuJGNvbG9yLWdyYXktZGFyazogICAgICAgICAgICAjMzIzYTQ1ICFkZWZhdWx0O1xuJGNvbG9yLWdyYXk6ICAgICAgICAgICAgICAgICAjNWI2MTZiICFkZWZhdWx0O1xuJGNvbG9yLWdyYXktbWVkaXVtOiAgICAgICAgICAjNzU3NTc1ICFkZWZhdWx0O1xuJGNvbG9yLWdyYXktbGlnaHQ6ICAgICAgICAgICAjYWViMGI1ICFkZWZhdWx0O1xuJGNvbG9yLWdyYXktbGlnaHRlcjogICAgICAgICAjZDZkN2Q5ICFkZWZhdWx0O1xuJGNvbG9yLWdyYXktbGlnaHRlc3Q6ICAgICAgICAjZjFmMWYxICFkZWZhdWx0O1xuXG4kY29sb3ItZ3JheS13YXJtLWRhcms6ICAgICAgICM0OTQ0NDAgIWRlZmF1bHQ7XG4kY29sb3ItZ3JheS13YXJtLWxpZ2h0OiAgICAgICNlNGUyZTAgIWRlZmF1bHQ7XG4kY29sb3ItZ3JheS1jb29sLWxpZ2h0OiAgICAgICNkY2U0ZWYgIWRlZmF1bHQ7XG5cbiRjb2xvci1nb2xkOiAgICAgICAgICAgICAgICAgI2ZkYjgxZSAhZGVmYXVsdDtcbiRjb2xvci1nb2xkLWxpZ2h0OiAgICAgICAgICAgI2Y5YzY0MiAhZGVmYXVsdDtcbiRjb2xvci1nb2xkLWxpZ2h0ZXI6ICAgICAgICAgI2ZhZDk4MCAhZGVmYXVsdDtcbiRjb2xvci1nb2xkLWxpZ2h0ZXN0OiAgICAgICAgI2ZmZjFkMiAhZGVmYXVsdDtcblxuJGNvbG9yLWdyZWVuOiAgICAgICAgICAgICAgICAjMmU4NTQwICFkZWZhdWx0O1xuJGNvbG9yLWdyZWVuLWxpZ2h0OiAgICAgICAgICAjNGFhNTY0ICFkZWZhdWx0O1xuJGNvbG9yLWdyZWVuLWxpZ2h0ZXI6ICAgICAgICAjOTRiZmEyICFkZWZhdWx0O1xuJGNvbG9yLWdyZWVuLWxpZ2h0ZXN0OiAgICAgICAjZTdmNGU0ICFkZWZhdWx0O1xuXG4kY29sb3ItY29vbC1ibHVlOiAgICAgICAgICAgICMyMDU0OTMgIWRlZmF1bHQ7XG4kY29sb3ItY29vbC1ibHVlLWxpZ2h0OiAgICAgICM0NzczYWEgIWRlZmF1bHQ7XG4kY29sb3ItY29vbC1ibHVlLWxpZ2h0ZXI6ICAgICM4YmE2Y2EgIWRlZmF1bHQ7XG4kY29sb3ItY29vbC1ibHVlLWxpZ2h0ZXN0OiAgICNkY2U0ZWYgIWRlZmF1bHQ7XG5cbiRjb2xvci1wdXJwbGU6ICAgICAgICAgICAgICAgIzRjMmM5MiAhZGVmYXVsdDtcblxuLy8gRnVuY3Rpb25hbCBjb2xvcnNcbiRjb2xvci1wcmltYXJ5OiAgICAgICAgICAgICAgJGNvbG9yLWJsdWUgIWRlZmF1bHQ7XG4kY29sb3ItcHJpbWFyeS1kYXJrZXI6ICAgICAgICRjb2xvci1ibHVlLWRhcmtlciAhZGVmYXVsdDtcbiRjb2xvci1wcmltYXJ5LWRhcmtlc3Q6ICAgICAgJGNvbG9yLWJsdWUtZGFya2VzdCAhZGVmYXVsdDtcblxuJGNvbG9yLXByaW1hcnktYWx0OiAgICAgICAgICAkY29sb3ItYXF1YSAhZGVmYXVsdDtcbiRjb2xvci1wcmltYXJ5LWFsdC1kYXJrOiAgICAgJGNvbG9yLWFxdWEtZGFyayAhZGVmYXVsdDtcbiRjb2xvci1wcmltYXJ5LWFsdC1kYXJrZXN0OiAgJGNvbG9yLWFxdWEtZGFya2VzdCAhZGVmYXVsdDtcbiRjb2xvci1wcmltYXJ5LWFsdC1saWdodDogICAgJGNvbG9yLWFxdWEtbGlnaHQgIWRlZmF1bHQ7XG4kY29sb3ItcHJpbWFyeS1hbHQtbGlnaHRlc3Q6ICRjb2xvci1hcXVhLWxpZ2h0ZXN0ICFkZWZhdWx0O1xuXG4kY29sb3Itc2Vjb25kYXJ5OiAgICAgICAgICAgICRjb2xvci1yZWQgIWRlZmF1bHQ7XG4kY29sb3Itc2Vjb25kYXJ5LWRhcms6ICAgICAgICRjb2xvci1yZWQtZGFyayAhZGVmYXVsdDtcbiRjb2xvci1zZWNvbmRhcnktZGFya2VzdDogICAgJGNvbG9yLXJlZC1kYXJrZXN0ICFkZWZhdWx0O1xuJGNvbG9yLXNlY29uZGFyeS1saWdodDogICAgICAkY29sb3ItcmVkLWxpZ2h0ICFkZWZhdWx0O1xuJGNvbG9yLXNlY29uZGFyeS1saWdodGVzdDogICAkY29sb3ItcmVkLWxpZ2h0ZXN0ICFkZWZhdWx0O1xuXG4kY29sb3ItYmFzZTogICAgICAgICAgICAgICAgICRjb2xvci1ibGFjay1saWdodCAhZGVmYXVsdDtcbiRjb2xvci1mb2N1czogICAgICAgICAgICAgICAgJGNvbG9yLWdyYXktbGlnaHQgIWRlZmF1bHQ7XG4kY29sb3ItdmlzaXRlZDogICAgICAgICAgICAgICRjb2xvci1wdXJwbGUgIWRlZmF1bHQ7XG5cbiRjb2xvci1zaGFkb3c6ICAgICAgICAgICAgICAgcmdiYSgjMDAwLCAwLjMpICFkZWZhdWx0O1xuJGNvbG9yLXRyYW5zcGFyZW50OiAgICAgICAgICByZ2JhKCMwMDAsIDApICFkZWZhdWx0O1xuXG4vLyBNb2JpbGUgRmlyc3QgQnJlYWtwb2ludHNcbiRzbWFsbC1zY3JlZW46ICA0ODFweCAhZGVmYXVsdDtcbiRtZWRpdW0tc2NyZWVuOiA2MDBweCAhZGVmYXVsdDtcbiRsYXJnZS1zY3JlZW46ICAxMjAxcHggIWRlZmF1bHQ7XG5cbi8vIEdyaWQgY29sdW1uIGNvdW50cyBieSBzY3JlZW4gc2l6ZVxuJGdyaWQtY29sdW1ucy1zbWFsbDogMSAhZGVmYXVsdDtcbiRncmlkLWNvbHVtbnMtbWVkaXVtOiA2ICFkZWZhdWx0O1xuJGdyaWQtY29sdW1ucy1sYXJnZTogMTIgIWRlZmF1bHQ7XG5cbi8vIEBtZWRpYSBzaW5nbGUta2V5d29yZCBoZWxwZXJzXG4kc21hbGw6IG5ldy1icmVha3BvaW50KG1pbi13aWR0aCAkc21hbGwtc2NyZWVuICRncmlkLWNvbHVtbnMtc21hbGwpICFkZWZhdWx0O1xuJG1lZGl1bTogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICRtZWRpdW0tc2NyZWVuICRncmlkLWNvbHVtbnMtbWVkaXVtKSAhZGVmYXVsdDtcbiRsYXJnZTogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICRsYXJnZS1zY3JlZW4gJGdyaWQtY29sdW1ucy1sYXJnZSkgIWRlZmF1bHQ7XG5cbi8vIFNldCB0aGUgYmFzZSBwYXRoIGZvciBhc3NldHMgKHVzZWQgZm9yIGZvbnQgYW5kIGltYWdlIHBhdGhzIGJlbG93KVxuJGFzc2V0LXBhdGg6ICcuLi8nICFkZWZhdWx0O1xuXG4vLyBSZWxhdGl2ZSBmb250IGFuZCBpbWFnZSBmaWxlIHBhdGhzXG4kZm9udC1wYXRoOiAnI3skYXNzZXQtcGF0aH1mb250cycgIWRlZmF1bHQ7XG4kaW1hZ2UtcGF0aDogJyN7JGFzc2V0LXBhdGh9aW1nJyAhZGVmYXVsdDtcblxuLy8gU2V0ICRhc3NldC1waXBlbGluZSB0byB0cnVlIGlmIHlvdSdyZSB1c2luZyB0aGUgUmFpbHMgQXNzZXQgUGlwZWxpbmVcbiRhc3NldC1waXBlbGluZTogICAgICBmYWxzZSAhZGVmYXVsdDtcblxuLy8gTWFnaWMgTnVtYmVyc1xuJHRleHQtbWF4LXdpZHRoOiAgICAgICAgICAgICAgICA2NmNoICFkZWZhdWx0OyAvLyA2NiBjaGFyYWN0ZXJzIHBlciBsaW5lXG4kbGVhZC1tYXgtd2lkdGg6ICAgICAgICAgICAgICAgIDc3cmVtICFkZWZhdWx0O1xuJHNpdGUtbWF4LXdpZHRoOiAgICAgICAgICAgICAgICAxMDQwcHggIWRlZmF1bHQ7XG4kc2l0ZS1tYXJnaW5zOiAgICAgICAgICAgICAgICAgIDNyZW0gIWRlZmF1bHQ7XG4kc2l0ZS1tYXJnaW5zLW1vYmlsZTogICAgICAgICAgIDEuNXJlbSAhZGVmYXVsdDtcbiRhcnRpY2xlLW1heC13aWR0aDogICAgICAgICAgICAgNjAwcHggIWRlZmF1bHQ7XG4kaW5wdXQtbWF4LXdpZHRoOiAgICAgICAgICAgICAgIDQ2cmVtICFkZWZhdWx0O1xuJGxhYmVsLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAycHggIWRlZmF1bHQ7XG4kY2hlY2tib3gtYm9yZGVyLXJhZGl1czogICAgICAgIDJweCAhZGVmYXVsdDtcbiRib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgM3B4ICFkZWZhdWx0O1xuJGJ1dHRvbi1ib3JkZXItcmFkaXVzOiAgICAgICAgICA1cHggIWRlZmF1bHQ7XG4kYm94LXNoYWRvdzogICAgICAgICAgICAgICAgICAgIDAgMCAycHggJGNvbG9yLXNoYWRvdyAhZGVmYXVsdDtcbiRmb2N1cy1vdXRsaW5lOiAgICAgICAgICAgICAgICAgMnB4IGRvdHRlZCAkY29sb3ItZ3JheS1saWdodCAhZGVmYXVsdDtcbiRmb2N1cy1zcGFjaW5nOiAgICAgICAgICAgICAgICAgM3B4ICFkZWZhdWx0O1xuJG5hdi13aWR0aDogICAgICAgICAgICAgICAgICAgICA5NTFweCAhZGVmYXVsdDtcbiRzaWRlbmF2LWN1cnJlbnQtYm9yZGVyLXdpZHRoOiAgMC40cmVtICFkZWZhdWx0OyAvLyBtdXN0IGJlIGluIHJlbSBmb3IgbWF0aFxuXG4vLyA0NCB4IDQ0IHBpeGVscyBoaXQgdGFyZ2V0IGZvbGxvd2luZyBBcHBsZSBpT1MgSHVtYW4gSW50ZXJmYWNlXG4vLyBHdWlkZWxpbmVzXG4kaGl0LWFyZWE6IDQuNHJlbSAhZGVmYXVsdDtcblxuJHNwYWNpbmcteC1zbWFsbDogMC41cmVtO1xuJHNwYWNpbmctc21hbGw6IDFyZW07XG4kc3BhY2luZy1tZC1zbWFsbDogMS41cmVtO1xuJHNwYWNpbmctbWVkaXVtOiAycmVtO1xuJHNwYWNpbmctbGFyZ2U6IDNyZW07XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBhdC1ydWxlLWVtcHR5LWxpbmUtYmVmb3JlICovXG5AaW5jbHVkZSBmb250LWZhY2UoXG4gICdTb3VyY2UgU2FucyBQcm8nLFxuICAnI3skZm9udC1wYXRofS9zb3VyY2VzYW5zcHJvLWxpZ2h0LXdlYmZvbnQnLFxuICAzMDAsXG4gIG5vcm1hbCxcbiAgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmXG4pO1xuXG5AaW5jbHVkZSBmb250LWZhY2UoXG4gICdTb3VyY2UgU2FucyBQcm8nLFxuICAnI3skZm9udC1wYXRofS9zb3VyY2VzYW5zcHJvLXJlZ3VsYXItd2ViZm9udCcsXG4gIDQwMCxcbiAgbm9ybWFsLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGZcbik7XG5cbkBpbmNsdWRlIGZvbnQtZmFjZShcbiAgJ1NvdXJjZSBTYW5zIFBybycsXG4gICcjeyRmb250LXBhdGh9L3NvdXJjZXNhbnNwcm8taXRhbGljLXdlYmZvbnQnLFxuICA0MDAsXG4gIGl0YWxpYyxcbiAgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmXG4pO1xuXG5AaW5jbHVkZSBmb250LWZhY2UoXG4gICdTb3VyY2UgU2FucyBQcm8nLFxuICAnI3skZm9udC1wYXRofS9zb3VyY2VzYW5zcHJvLWJvbGQtd2ViZm9udCcsXG4gIDcwMCxcbiAgbm9ybWFsLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGZcbik7XG5cbkBpbmNsdWRlIGZvbnQtZmFjZShcbiAgJ01lcnJpd2VhdGhlcicsXG4gICcjeyRmb250LXBhdGh9L21lcnJpd2VhdGhlci1saWdodC13ZWJmb250JyxcbiAgMzAwLFxuICBub3JtYWwsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZlxuKTtcblxuQGluY2x1ZGUgZm9udC1mYWNlKFxuICAnTWVycml3ZWF0aGVyJyxcbiAgJyN7JGZvbnQtcGF0aH0vbWVycml3ZWF0aGVyLXJlZ3VsYXItd2ViZm9udCcsXG4gIDQwMCxcbiAgbm9ybWFsLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGZcbik7XG5cbkBpbmNsdWRlIGZvbnQtZmFjZShcbiAgJ01lcnJpd2VhdGhlcicsXG4gICcjeyRmb250LXBhdGh9L21lcnJpd2VhdGhlci1pdGFsaWMtd2ViZm9udCcsXG4gIDQwMCxcbiAgaXRhbGljLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGZcbik7XG5cbkBpbmNsdWRlIGZvbnQtZmFjZShcbiAgJ01lcnJpd2VhdGhlcicsXG4gICcjeyRmb250LXBhdGh9L21lcnJpd2VhdGhlci1ib2xkLXdlYmZvbnQnLFxuICA3MDAsXG4gIG5vcm1hbCxcbiAgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmXG4pO1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiLy8gR3JpZCBjb250YWluZXJcbi51c2EtZ3JpZCxcbi51c2EtZ3JpZC1mdWxsIHtcbiAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKCRzaXRlLW1heC13aWR0aCk7XG59XG5cbi51c2EtZ3JpZCB7XG4gIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAkc2l0ZS1tYXJnaW5zLW1vYmlsZSk7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgJHNpdGUtbWFyZ2lucyk7XG4gIH1cbn1cblxuLnVzYS1ncmlkLWZ1bGwge1xuICBwYWRkaW5nOiAwO1xufVxuXG4vLyBHcmlkIGl0ZW1zXG5AaW5jbHVkZSBtZWRpYSgkbWVkaXVtKSB7XG4gIC51c2Etd2lkdGgtb25lLXdob2xlIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4gIH1cblxuICAudXNhLXdpZHRoLW9uZS1oYWxmIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMyk7XG4gIH1cblxuICAudXNhLXdpZHRoLW9uZS10aGlyZCB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDIpO1xuICB9XG5cbiAgLnVzYS13aWR0aC10d28tdGhpcmRzIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG4gIH1cblxuICAudXNhLXdpZHRoLW9uZS1mb3VydGgge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygzKTtcblxuICAgICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLnVzYS13aWR0aC10aHJlZS1mb3VydGhzIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4gIH1cblxuICAudXNhLXdpZHRoLW9uZS1zaXh0aCB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDIpO1xuXG4gICAgJjpudGgtY2hpbGQoM24pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAudXNhLXdpZHRoLWZpdmUtc2l4dGhzIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG4gIH1cblxuICAudXNhLXdpZHRoLW9uZS10d2VsZnRoIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMik7XG5cbiAgICAmOm50aC1jaGlsZCgzbikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC51c2Etd2lkdGgtZml2ZS10d2VsZnRocyB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDIpO1xuICB9XG5cbiAgLnVzYS13aWR0aC1zZXZlbi10d2VsZnRocyB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQpO1xuICB9XG59XG5cbkBpbmNsdWRlIG1lZGlhKCRsYXJnZSkge1xuICAudXNhLXdpZHRoLW9uZS13aG9sZSB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyKTtcbiAgfVxuXG4gIC51c2Etd2lkdGgtb25lLWhhbGYge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbiAgfVxuXG4gIC51c2Etd2lkdGgtb25lLXRoaXJkIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG4gIH1cblxuICAudXNhLXdpZHRoLXR3by10aGlyZHMge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg4KTtcbiAgfVxuXG4gIC51c2Etd2lkdGgtb25lLWZvdXJ0aCB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMpO1xuXG4gICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygzKTtcbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCg0bikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC51c2Etd2lkdGgtdGhyZWUtZm91cnRocyB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDkpO1xuICB9XG5cbiAgLnVzYS13aWR0aC1vbmUtc2l4dGgge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyKTtcblxuICAgICY6bnRoLWNoaWxkKDNuKSB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMik7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoNm4pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAudXNhLXdpZHRoLWZpdmUtc2l4dGhzIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTApO1xuICB9XG5cbiAgLnVzYS13aWR0aC1vbmUtdHdlbGZ0aCB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEpO1xuXG4gICAgJjpudGgtY2hpbGQoM24pIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxKTtcbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgxMm4pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAudXNhLXdpZHRoLWZpdmUtdHdlbGZ0aHMge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg1KTtcbiAgfVxuXG4gIC51c2Etd2lkdGgtc2V2ZW4tdHdlbGZ0aHMge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg3KTtcbiAgfVxufVxuXG4vLyBTcGVjaWZpZXMgZW5kIG9mIGEgcm93LlxuLy8gUmVxdWlyZWQgaWYgZ3JpZC1ib3ggY29udGFpbnMgbXVsdGlwbGUgcm93cy5cbi8vIFJlcXVpcmVkIGlmIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCA6bGFzdC1jaGlsZFxuLnVzYS1lbmQtcm93IHtcbiAgQGluY2x1ZGUgb21lZ2EoKTtcbn1cblxuLy8gR3JpZCBPZmZzZXRzXG4udXNhLW9mZnNldC1vbmUtdHdlbGZ0aCB7XG4gIEBpbmNsdWRlIHNoaWZ0KDEgb2YgMTIpO1xufVxuXG4udXNhLW9mZnNldC1vbmUtc2l4dGgge1xuICBAaW5jbHVkZSBzaGlmdCgyIG9mIDEyKTtcbn1cblxuLnVzYS1vZmZzZXQtb25lLWZvdXJ0aCB7XG4gIEBpbmNsdWRlIHNoaWZ0KDMgb2YgMTIpO1xufVxuXG4udXNhLW9mZnNldC1vbmUtdGhpcmQge1xuICBAaW5jbHVkZSBzaGlmdCg0IG9mIDEyKTtcbn1cblxuLnVzYS1vZmZzZXQtZml2ZS10d2VsZnRocyB7XG4gIEBpbmNsdWRlIHNoaWZ0KDUgb2YgMTIpO1xufVxuXG4udXNhLW9mZnNldC1vbmUtaGFsZiB7XG4gIEBpbmNsdWRlIHNoaWZ0KDYgb2YgMTIpO1xufVxuXG4udXNhLW9mZnNldC1zZXZlbi10d2VsZnRocyB7XG4gIEBpbmNsdWRlIHNoaWZ0KDcgb2YgMTIpO1xufVxuXG4udXNhLW9mZnNldC10d28tdGhpcmRzIHtcbiAgQGluY2x1ZGUgc2hpZnQoOCBvZiAxMik7XG59XG5cbi51c2Etb2Zmc2V0LXRocmVlLWZvdXJ0aHMge1xuICBAaW5jbHVkZSBzaGlmdCg5IG9mIDEyKTtcbn1cblxuLnVzYS1vZmZzZXQtZml2ZS1zaXh0aHMge1xuICBAaW5jbHVkZSBzaGlmdCgxMCBvZiAxMik7XG59XG5cbi51c2Etb2Zmc2V0LWVsZXZlbi10d2VsZnRocyB7XG4gIEBpbmNsdWRlIHNoaWZ0KDExIG9mIDEyKTtcbn1cbiIsIi8vIEhlYWRpbmcgbWl4aW5zXG5AbWl4aW4gdGl0bGUge1xuICBmb250LXNpemU6ICR0aXRsZS1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xufVxuXG5AbWl4aW4gaDEge1xuICBmb250LXNpemU6ICRoMS1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xufVxuXG5AbWl4aW4gaDIge1xuICBmb250LXNpemU6ICRoMi1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xufVxuXG5AbWl4aW4gaDMge1xuICBmb250LXNpemU6ICRoMy1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xufVxuXG5AbWl4aW4gaDQge1xuICBmb250LXNpemU6ICRoNC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xufVxuXG5AbWl4aW4gaDUge1xuICBmb250LXNpemU6ICRoNS1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xufVxuXG5AbWl4aW4gaDYge1xuICBmb250LXNpemU6ICRoNi1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAkYmFzZS1saW5lLWhlaWdodDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLy8gRm9jdXMgc3RhdGUgbWl4aW5cbkBtaXhpbiBmb2N1cyB7XG4gIG91dGxpbmU6ICRmb2N1cy1vdXRsaW5lO1xuICBvdXRsaW5lLW9mZnNldDogJGZvY3VzLXNwYWNpbmc7XG59XG5cbi8vIE1vYmlsZS1maXJzdCBtZWRpYSBxdWVyeSBoZWxwZXJcbkBtaXhpbiBtZWRpYSgkYnApIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3skYnB9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gU2NyZWVuIHJlYWRlciBvbmx5IGhlbHBlclxuQG1peGluIHNyLW9ubHkoKSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTk5OWVtO1xufVxuXG4vLyBUaGlzIFwibmVnYXRlc1wiIHRoZSBzci1vbmx5KCkgaGVscGVyOyB1c2VmdWwgaWZcbi8vIHdlIHdhbnQgdGhlIGRlZmF1bHQgc3RhdGUgb2Ygc29tZXRoaW5nIHRvIGJlXG4vLyBmb3Igc2NyZWVuIHJlYWRlcnMgb25seSwgYnV0IHdlIHdhbnQgdG8gZm9yY2Vcbi8vIGl0IHRvIHNob3cgZm9yIHNpZ2h0ZWQgdXNlcnMgdW5kZXIgbW9yZSBzcGVjaWZpY1xuLy8gY29uZGl0aW9ucy5cbkBtaXhpbiBub3Qtc3Itb25seSgpIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cblxuLnVzYS1zci1vbmx5IHtcbiAgQGluY2x1ZGUgc3Itb25seSgpO1xufVxuXG4vLyBBcmlhIGhpZGRlbiBoZWxwZXJcbkBtaXhpbiBhY2Nlc3NpYmx5LWhpZGRlbigpIHtcbiAgJlthcmlhLWhpZGRlbj10cnVlXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLyBVbnN0eWxlZCBsaXN0IGhlbHBlclxuQG1peGluIHVuc3R5bGVkLWxpc3QoKSB7XG4gIEBpbmNsdWRlIG1hcmdpbigwIG51bGwpO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogMDtcblxuICA+IGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vIEZvbnQgc21vb3RoaW5nIG1peGluXG4vLyBPbmx5IHVzZSBmb3IgbGlnaHQgdGV4dCBvbiBkYXJrIGJhY2tncm91bmRcbi8vIFRPRE86IFJlbW92ZSBhZnRlciBhZGRpbmcgUG9zdENTU1xuQG1peGluIGZvbnQtc21vb3RoaW5nIHtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG5cbi8vIENvbnRlbnQgc2l6ZSBoZWxwZXJzXG5AbWl4aW4gYWxsb3ctbGF5b3V0LWNsYXNzZXMge1xuICBAaW5jbHVkZSBtYXJnaW4obnVsbCBhdXRvKTtcblxuICAmLndpZHRoLW9uZS1oYWxmIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG4gIH1cblxuICAmLndpZHRoLW9uZS10aGlyZCB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIHdpZHRoOiAzMyU7XG4gICAgfVxuICB9XG5cbiAgJi53aWR0aC10d28tdGhpcmRzIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgd2lkdGg6IDY3JTtcbiAgICB9XG4gIH1cblxuICAmLndpZHRoLW9uZS1mb3VydGgge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICB3aWR0aDogMjUlO1xuICAgIH1cbiAgfVxuXG4gICYud2lkdGgtdGhyZWUtZm91cnRocyB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIHdpZHRoOiA3NSU7XG4gICAgfVxuICB9XG5cbiAgJi5hbGlnbi1sZWZ0IHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDAuNWVtO1xuICAgIH1cbiAgfVxuXG4gICYuYWxpZ24tcmlnaHQge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBtYXJnaW4tbGVmdDogMmVtO1xuICAgICAgbWFyZ2luLXRvcDogMC41ZW07XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBkaXNwbGF5LWljb24oJGljb24sICRkaXJlY3Rpb24sICRzaXplLCAkbWFyZ2luLCAkaG92ZXIpIHtcbiAgJjo6I3skZGlyZWN0aW9ufSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS8jeyRpY29ufS5wbmcnKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9LyN7JGljb259LnN2ZycpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICB3aWR0aDogJHNpemU7XG5cbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1jbG9zaW5nLWJyYWNlLW5ld2xpbmUtYWZ0ZXIsIGF0LXJ1bGUtZW1wdHktbGluZS1iZWZvcmUgKi9cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSAnYWZ0ZXInIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luO1xuICAgIH0gQGVsc2Uge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luO1xuICAgIH1cbiAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gIH1cblxuICBAaWYgJGhvdmVyID09ICdob3Zlcicge1xuICAgICY6aG92ZXI6OiN7JGRpcmVjdGlvbn0ge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS8jeyRpY29ufS1ob3Zlci5wbmcnKTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vI3skaWNvbn0taG92ZXIuc3ZnJyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB1c2Etc2lkZW5hdi1saXN0IHtcbiAgQGluY2x1ZGUgdW5zdHlsZWQtbGlzdCgpO1xuXG4gID4gbGkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3ItZ3JheTtcbiAgICBmb250LXNpemU6ICRoNC1mb250LXNpemU7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiAkY29sb3ItYmFzZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LWZhbWlseTogJGZvbnQtc2FucztcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIHBhZGRpbmc6IDAuODVyZW0gMXJlbSAwLjg1cmVtICRzaXRlLW1hcmdpbnMtbW9iaWxlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlc3Q7XG4gICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgJi51c2EtY3VycmVudCB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlICovXG4gICAgICBib3JkZXItbGVmdDogJHNpZGVuYXYtY3VycmVudC1ib3JkZXItd2lkdGggc29saWQgJGNvbG9yLXByaW1hcnk7XG4gICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICAgIHBhZGRpbmctbGVmdDogJHNpdGUtbWFyZ2lucy1tb2JpbGUgLSAkc2lkZW5hdi1jdXJyZW50LWJvcmRlci13aWR0aDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHVzYS1zaWRlbmF2LXN1Ymxpc3Qge1xuICBAaW5jbHVkZSB1bnN0eWxlZC1saXN0KCk7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgbGkge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmb250LXNpemU6ICRoNS1mb250LXNpemU7XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIuOHJlbTtcbiAgICBsaW5lLWhlaWdodDogJGhlYWRpbmctbGluZS1oZWlnaHQ7XG5cbiAgICAmOmhvdmVyLFxuICAgICYudXNhLWN1cnJlbnQgeyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZSAqL1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgcGFkZGluZy1sZWZ0OiAyLjhyZW07XG4gICAgfVxuICB9XG5cbiAgLnVzYS1zaWRlbmF2LXN1Yl9saXN0IHtcbiAgICBhIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMy44cmVtO1xuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDA7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDMuOHJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEFwcGx5IGEgbmF0dXJhbCBib3ggbGF5b3V0IG1vZGVsIHRvIGFsbCBlbGVtZW50cywgYnV0IGFsbG93aW5nIGNvbXBvbmVudHMgdG9cbi8vIGNoYW5nZVxuXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgY29sb3I6ICRjb2xvci1iYXNlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5cbi8vIEhhY2sgZm9yIGNsZWFyZml4ZXNcbi5sdC1pZTkge1xuICAqIHtcbiAgICBmaWx0ZXI6IG5vbmUgIWltcG9ydGFudDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQgKi9cbiAgfVxufVxuXG4vLyBmb3IgSUUgPCAxMSwgc2VlOlxuLy8gPGh0dHA6Ly9jYW5pdXNlLmNvbS8jZmVhdD1oaWRkZW4+XG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQgKi9cbn1cblxuKjpmb2N1cyxcbi51c2EtZm9jdXMge1xuICBAaW5jbHVkZSBmb2N1cztcbn1cbiIsIi8vIEJ1dHRvbnMgdmFyaWFibGVzXG5cbiRidXR0b24tc3Ryb2tlOiBpbnNldCAwIDAgMCAycHg7XG5cbi8vIEJ1dHRvbnNcblxuLy8gVGhpcyBtaXhpbiBpcyBvbmx5IG5lZWRlZCB1bnRpbCB3ZSBmdWxseSByZW1vdmUgdGhlXG4vLyBkZXByZWNhdGVkIHVzYS1idXR0b24tZGlzYWJsZWQgc3R5bGUuXG5AbWl4aW4gZGlzYWJsZWRlc3F1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmF5LWxpZ2h0ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICY6aG92ZXIsXG4gICYudXNhLWJ1dHRvbi1ob3ZlcixcbiAgJjphY3RpdmUsXG4gICYudXNhLWJ1dHRvbi1hY3RpdmUsXG4gICY6Zm9jdXMsXG4gICYudXNhLWZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheS1saWdodGVyO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZSAqL1xuLnVzYS1idXR0b24sXG4udXNhLWJ1dHRvbi1wcmltYXJ5LFxuLnVzYS1idXR0b246dmlzaXRlZCxcbi51c2EtYnV0dG9uLXByaW1hcnk6dmlzaXRlZCxcbmJ1dHRvbixcblt0eXBlPWJ1dHRvbl0sXG5bdHlwZT1zdWJtaXRdLFxuW3R5cGU9cmVzZXRdLFxuW3R5cGU9aW1hZ2VdIHtcbiAgQGluY2x1ZGUgZm9udC1zbW9vdGhpbmc7XG4gIEBpbmNsdWRlIG1hcmdpbigwLjVlbSAwLjVlbSAwLjVlbSBudWxsKTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1ib3JkZXItcmFkaXVzO1xuICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICRmb250LXNhbnM7XG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDFyZW0gMnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG4gICY6aG92ZXIsXG4gICYudXNhLWJ1dHRvbi1ob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnktZGFya2VyO1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJi51c2EtYnV0dG9uLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnktZGFya2VzdDtcbiAgfVxuXG4gICYudXNhLWJ1dHRvbi1wcmltYXJ5LWFsdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnktYWx0O1xuICAgIGNvbG9yOiAkY29sb3ItYmFzZTtcblxuICAgICY6aG92ZXIsXG4gICAgJi51c2EtYnV0dG9uLWhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1wcmltYXJ5LWFsdC1kYXJrO1xuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICYudXNhLWJ1dHRvbi1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnktYWx0LWRhcmtlc3Q7XG4gICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgIH1cbiAgfVxuXG4gICYudXNhLWJ1dHRvbi1zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICBib3gtc2hhZG93OiAkYnV0dG9uLXN0cm9rZSAkY29sb3ItcHJpbWFyeTtcbiAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG5cbiAgICAmOmhvdmVyLFxuICAgICYudXNhLWJ1dHRvbi1ob3ZlciB7XG4gICAgICBib3gtc2hhZG93OiAkYnV0dG9uLXN0cm9rZSAkY29sb3ItcHJpbWFyeS1kYXJrZXI7XG4gICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnktZGFya2VyO1xuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICYudXNhLWJ1dHRvbi1hY3RpdmUge1xuICAgICAgYm94LXNoYWRvdzogJGJ1dHRvbi1zdHJva2UgJGNvbG9yLXByaW1hcnktZGFya2VzdDtcbiAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeS1kYXJrZXN0O1xuICAgIH1cbiAgfVxuXG4gICYudXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZSxcbiAgJi51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZSB7ICAgIC8vIE91dGxpbmUgaW52ZXJzZSB0byBiZSBkZXByZWNhdGVkIGluIDIuMFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6ICRidXR0b24tc3Ryb2tlICRjb2xvci13aGl0ZTtcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuXG4gICAgJjpob3ZlcixcbiAgICAmLnVzYS1idXR0b24taG92ZXIge1xuICAgICAgYm94LXNoYWRvdzogJGJ1dHRvbi1zdHJva2UgJGNvbG9yLWdyYXktbGlnaHRlcjtcbiAgICAgIGNvbG9yOiAkY29sb3ItZ3JheS1saWdodGVyO1xuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICYudXNhLWJ1dHRvbi1hY3RpdmUge1xuICAgICAgYm94LXNoYWRvdzogJGJ1dHRvbi1zdHJva2UgJGNvbG9yLWdyYXktbGlnaHQ7XG4gICAgICBjb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlcjtcbiAgICB9XG4gIH1cblxuICAmLnVzYS1idXR0b24tZ3JheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyYXk7XG5cbiAgICAmOmhvdmVyLFxuICAgICYudXNhLWJ1dHRvbi1ob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheS1kYXJrO1xuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICYudXNhLWJ1dHRvbi1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJhc2U7XG4gICAgfVxuICB9XG5cbiAgJi51c2EtYnV0dG9uLXJlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXNlY29uZGFyeTtcblxuICAgICY6aG92ZXIsXG4gICAgJi51c2EtYnV0dG9uLWhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1zZWNvbmRhcnktZGFyaztcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSxcbiAgICAmLnVzYS1idXR0b24tYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1zZWNvbmRhcnktZGFya2VzdDtcbiAgICB9XG4gIH1cblxuICAmLnVzYS1idXR0b24tYmlnIHtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZm9udC1zaXplOiAyLjRyZW07XG4gICAgcGFkZGluZzogMS41cmVtIDNyZW07XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlZGVzcXVlO1xuICB9XG59XG4vKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuXG4udXNhLWJ1dHRvbi1kaXNhYmxlZCAgLy8gRGVwcmVjYXRlZFxue1xuICBAaW5jbHVkZSBkaXNhYmxlZGVzcXVlXG59XG5cbi51c2EtYnV0dG9uLXNlY29uZGFyeS1kaXNhYmxlZCwgICAgICAgICAgLy8gRGVwcmVjYXRlZFxuLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2UtZGlzYWJsZWQsICAvLyBEZXByZWNhdGVkXG4udXNhLWJ1dHRvbi1zZWNvbmRhcnk6ZGlzYWJsZWQsXG4udXNhLWJ1dHRvbi1zZWNvbmRhcnktaW52ZXJzZTpkaXNhYmxlZCxcbi51c2EtYnV0dG9uLW91dGxpbmUtaW52ZXJzZTpkaXNhYmxlZCB7ICAgLy8gT3V0bGluZSBpbnZlcnNlIHRvIGJlIGRlcHJlY2F0ZWQgaW4gMi4wXG4gIGJveC1zaGFkb3c6ICRidXR0b24tc3Ryb2tlICRjb2xvci1ncmF5LWxpZ2h0ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlcjtcblxuICAmOmhvdmVyLFxuICAmLnVzYS1idXR0b24taG92ZXIsXG4gICY6YWN0aXZlLFxuICAmLnVzYS1idXR0b24tYWN0aXZlLFxuICAmOmZvY3VzLFxuICAmLnVzYS1mb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgIGJvcmRlcjogMDtcbiAgfVxufVxuXG5odG1sIC51c2EtYnV0dG9uLXNlY29uZGFyeS1kaXNhYmxlZCwgICAgICAgICAgLy8gRGVwcmVjYXRlZFxuLnVzYS1idXR0b24tc2Vjb25kYXJ5OmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlO1xufVxuXG5odG1sIC51c2EtYnV0dG9uLXNlY29uZGFyeS1pbnZlcnNlLWRpc2FibGVkLCAgLy8gRGVwcmVjYXRlZFxuLnVzYS1idXR0b24tc2Vjb25kYXJ5LWludmVyc2U6ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICRjb2xvci1ncmF5O1xuICBib3gtc2hhZG93OiAkYnV0dG9uLXN0cm9rZSAkY29sb3ItZ3JheTtcbn1cblxuQG1peGluIGJ1dHRvbi11bnN0eWxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtYWw7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYXV0bztcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4udXNhLWJ1dHRvbi11bnN0eWxlZCB7XG4gIEBpbmNsdWRlIGJ1dHRvbi11bnN0eWxlZDtcbn1cbiIsIiRhc3BlY3QtaGVpZ2h0OiA5O1xuJGFzcGVjdC13aWR0aDogMTY7XG5cbkBtaXhpbiBlbWJlZC1jb250YWluZXIgKCRoZWlnaHQsICR3aWR0aCkge1xuICBwYWRkaW5nLWJvdHRvbTogcGVyY2VudGFnZSgkaGVpZ2h0LyR3aWR0aCk7XG59XG5cbi51c2EtZW1iZWQtY29udGFpbmVyIHtcbiAgaWZyYW1lLFxuICBvYmplY3QsXG4gIGVtYmVkIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbi51c2EtZW1iZWQtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgZW1iZWQtY29udGFpbmVyKCRhc3BlY3QtaGVpZ2h0LCAkYXNwZWN0LXdpZHRoKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbiIsImltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLy8gVE9ETzogQWRkIGRvY3VtZW50YXRpb24gaW5zdHJ1Y3Rpb25zIGZvciB1c2luZyB0aGlzIGNsYXNzIG9uIGltYWdlIGxpbmtzXG5AbWl4aW4gbWVkaWEtbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbGluZS1oZWlnaHQ6IDA7XG59XG5cbi5tZWRpYV9saW5rIHtcbiAgQGluY2x1ZGUgbWVkaWEtbGluaygpO1xufVxuIiwiLy8gc2Nzcy1saW50OmRpc2FibGUgUXVhbGlmeWluZ0VsZW1lbnQsIFByb3BlcnR5Q291bnRcblxuJGlucHV0LWxpbmUtaGVpZ2h0OiAxLjM7XG4kaW5wdXQtYm9yZGVyLXdpZHRoOiAwLjFyZW07IC8vIFVzaW5nIHJlbSBpbnN0ZWFkIG9mIHB4IHNvIGZ1bmN0aW9uIHVzZXMgc2FtZSB1bml0c1xuJGlucHV0LXBhZGRpbmctdmVydGljYWw6IDFyZW07XG5cbi8vIGlucHV0IGhlaWdodHMgd2lsbCB2YXJ5IGJ5IGJyb3dzZXIgYW5kIHR5cGVcbi8vIGlmIGhlaWdodCBub3QgZXhwbGljaXRseSBzZXRcbiRpbnB1dC1oZWlnaHQtZXhhY3Q6IChcbiAgKCRiYXNlLWZvbnQtc2l6ZSAqICRpbnB1dC1saW5lLWhlaWdodCkgK1xuICAoJGlucHV0LXBhZGRpbmctdmVydGljYWwgKiAyKSArXG4gICgkaW5wdXQtYm9yZGVyLXdpZHRoICogMilcbik7XG5cbi8vIHRydW5jYXRlZCB0byAxIGRlY2ltYWwgcGxhY2Vcbi8vIChpLmUuLCAxLjIxcmVtIC0+IDEuMnJlbSlcbiRpbnB1dC1oZWlnaHQ6IGZsb29yKCRpbnB1dC1oZWlnaHQtZXhhY3QgKiAxMCkgLyAxMDtcblxuLy8gQmxvY2sgZm9ybSBlbGVtZW50c1xuLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlICovXG5pbnB1dCxcbnRleHRhcmVhLFxuc2VsZWN0IHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkICRjb2xvci1ncmF5O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb2xvcjogJGNvbG9yLWJhc2U7IC8vIHN0YW5kYXJkaXplIG9uIGZpcmVmb3hcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICBoZWlnaHQ6ICRpbnB1dC1oZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIG1hcmdpbjogMC4yZW0gMDtcbiAgbWF4LXdpZHRoOiAkaW5wdXQtbWF4LXdpZHRoO1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZy12ZXJ0aWNhbCAwLjdlbTtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgJi51c2EtaW5wdXQtc3VjY2VzcyB7XG4gICAgYm9yZGVyOiAzcHggc29saWQgJGNvbG9yLWdyZWVuLWxpZ2h0O1xuICB9XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cbi51c2EtaW5wdXQtZXJyb3Ige1xuICBib3JkZXItbGVmdDogNHB4IHNvbGlkICRjb2xvci1zZWNvbmRhcnktZGFyaztcbiAgbWFyZ2luLXRvcDogM3JlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuOHJlbTtcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gIHBhZGRpbmctdG9wOiAwLjhyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcmlnaHQ6IDEuOXJlbTtcblxuICBpbnB1dCxcbiAgdGV4dGFyZWEsXG4gIHNlbGVjdCB7XG4gICAgYm9yZGVyOiAzcHggc29saWQgJGNvbG9yLXNlY29uZGFyeS1kYXJrO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxLjlyZW0pOyAvLyAxLjVyZW0gbGVmdCBwYWRkaW5nICsgNHB4IGJvcmRlciBmcm9tIGlucHV0IGVycm9yIHNwYWNpbmdcbiAgfVxuXG4gIGxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgLnVzYS1pbnB1dC1pbmxpbmUge1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkY29sb3ItZ3JheTtcbiAgICB3aWR0aDogaW5oZXJpdDtcbiAgfVxuXG4gIC51c2EtaW5wdXQtaW5saW5lLWVycm9yIHtcbiAgICBib3JkZXI6IDNweCBzb2xpZCAkY29sb3Itc2Vjb25kYXJ5LWRhcms7XG4gIH1cbn1cblxuLnVzYS1pbnB1dC1lcnJvci1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbi51c2EtaW5wdXQtZXJyb3ItbWVzc2FnZSB7XG4gIGNvbG9yOiAkY29sb3Itc2Vjb25kYXJ5LWRhcms7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gIHBhZGRpbmctYm90dG9tOiAzcHg7XG4gIHBhZGRpbmctdG9wOiAzcHg7XG59XG5cbi8vIERlcHJlY2F0ZWQ6IFNvbWUgc2NyZWVuIHJlYWRlcnMgY2FuJ3QgcmVhZCBDU1MgY29udGVudC5cbi8vIFdpbGwgYmUgcmVtb3ZlZCBpbiAyLjAuXG4udXNhLWlucHV0LXJlcXVpcmVkOmFmdGVyIHtcbiAgY29sb3I6ICRjb2xvci1zZWNvbmRhcnktZGFya2VzdDtcbiAgY29udGVudDogJyAoKnJlcXVpcmVkKSc7XG59XG5cbi8vIERlcHJlY2F0ZWQ6IFNvbWUgc2NyZWVuIHJlYWRlcnMgY2FuJ3QgcmVhZCBDU1MgY29udGVudC5cbi8vIFdpbGwgYmUgcmVtb3ZlZCBpbiAyLjAuXG4udXNhLWlucHV0LW9wdGlvbmFsOmFmdGVyIHtcbiAgY29sb3I6ICRjb2xvci1ncmF5LW1lZGl1bTtcbiAgY29udGVudDogJyAob3B0aW9uYWwpJztcbn1cblxuLnVzYS1pbnB1dC1sYWJlbC1oZWxwZXIge1xuICBjb2xvcjogJGNvbG9yLWdyYXktbWVkaXVtO1xufVxuXG4udXNhLWlucHV0LWxhYmVsLXJlcXVpcmVkIHtcbiAgY29sb3I6ICRjb2xvci1zZWNvbmRhcnktZGFya2VzdDtcbn1cblxubGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogM3JlbTtcbiAgbWF4LXdpZHRoOiAkaW5wdXQtbWF4LXdpZHRoO1xufVxuXG50ZXh0YXJlYSB7XG4gIGhlaWdodDogMTZyZW07XG59XG5cbnNlbGVjdCB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9hcnJvdy1ib3RoLnBuZycpO1xuICAvLyBFbnN1cmUgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IFNWRyBpbiBiYWNrZ3JvdW5kLWltYWdlIChJRSAxMSBhbmQgYmVsb3cpIGZhbGwgYmFjayB0byBQTkcuXG4gIC8vIFNlZSBodHRwczovL3d3dy5icm9rZW4tbGlua3MuY29tLzIwMTAvMDYvMTQvdXNpbmctc3ZnLWluLWJhY2tncm91bmRzLXdpdGgtcG5nLWZhbGxiYWNrL1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lLCB1cmwoJyN7JGltYWdlLXBhdGh9L2Fycm93LWJvdGguc3ZnJyksIHVybCgnI3skaW1hZ2UtcGF0aH0vYXJyb3ctYm90aC5wbmcnKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMS4zcmVtIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAxcmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAzcmVtO1xuXG4gICY6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBTaG93IGRlZmF1bHQgd2Via2l0IHN0eWxlIG9uIHNlbGVjdCBlbGVtZW50IHdoZW4gYXV0b2ZpbGxlZCB0byBzaG93IGljb25cbiAgJjotd2Via2l0LWF1dG9maWxsIHtcbiAgICBhcHBlYXJhbmNlOiBtZW51bGlzdDtcbiAgfVxuXG4gIC8vIFJlbW92ZSBkb3R0ZWQgb3V0bGluZSBmcm9tIHNlbGVjdCBlbGVtZW50IG9uIGZvY3VzIGluIEZpcmVmb3hcbiAgJjotbW96LWZvY3VzcmluZyB7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRleHQtc2hhZG93OiAwIDAgMCAkY29sb3ItYmxhY2s7XG4gIH1cbn1cblxub3B0aW9uOmZpcnN0LWNoaWxkIHtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbmxlZ2VuZCB7XG4gIGZvbnQtc2l6ZTogJGgyLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbi51c2EtZmllbGRzZXQtaW5wdXRzIHtcbiAgbGFiZWwge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cblxuLy8gSGludCB0ZXh0XG5cbi51c2EtZm9ybS1oaW50IHtcbiAgY29sb3I6ICRjb2xvci1ncmF5LW1lZGl1bTtcbiAgZm9udC1mYW1pbHk6ICRmb250LXNhbnM7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi8vIEN1c3RvbSBjaGVja2JveGVzXG5cblt0eXBlPWNoZWNrYm94XSxcblt0eXBlPXJhZGlvXSB7XG4gIC8vIFRoZSBhY3R1YWwgaW5wdXQgZWxlbWVudCBpcyBvbmx5IHZpc2libGUgdG8gc2NyZWVuIHJlYWRlcnMsIGJlY2F1c2VcbiAgLy8gYWxsIHZpc3VhbCBzdHlsaW5nIGlzIGRvbmUgdmlhIHRoZSBsYWJlbC5cbiAgQGluY2x1ZGUgc3Itb25seSgpO1xuXG4gIC5sdC1pZTkgJiB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMC40ZW0gMC40ZW0gMCAwO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuW3R5cGU9Y2hlY2tib3hdICsgbGFiZWwsXG5bdHlwZT1yYWRpb10gKyBsYWJlbCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbWFyZ2luLWJvdHRvbTogMC42NWVtO1xufVxuXG5bdHlwZT1jaGVja2JveF0gKyBsYWJlbDo6YmVmb3JlLFxuW3R5cGU9cmFkaW9dICsgbGFiZWw6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICRjb2xvci13aGl0ZTtcbiAgY29udGVudDogJ1xcYTAnO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtaW5kZW50OiAwLjE1ZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGVcXDA7IC8vIFRhcmdldCBJRSAxMSBhbmQgYmVsb3cgdG8gdmVydGljYWxseSBjZW50ZXIgaW5wdXRzXG59XG5cblt0eXBlPWNoZWNrYm94XSArIGxhYmVsOjpiZWZvcmUge1xuICBib3JkZXItcmFkaXVzOiAkY2hlY2tib3gtYm9yZGVyLXJhZGl1cztcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRjb2xvci1ncmF5LW1lZGl1bTtcbiAgaGVpZ2h0OiAkc3BhY2luZy1tZWRpdW07XG4gIGxpbmUtaGVpZ2h0OiAkc3BhY2luZy1tZWRpdW07XG4gIG1hcmdpbi1sZWZ0OiAxcHg7XG4gIG1hcmdpbi1yaWdodDogMC42ZW07XG4gIHdpZHRoOiAkc3BhY2luZy1tZWRpdW07XG59XG5cblt0eXBlPXJhZGlvXSArIGxhYmVsOjpiZWZvcmUge1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggJGNvbG9yLXdoaXRlLCAwIDAgMCAzcHggJGNvbG9yLWdyYXktbWVkaXVtO1xuICBoZWlnaHQ6IDEuNHJlbTsgLy8gU2l6ZSBvdmVycmlkZXMgdG8gYWNjb3VudCBmb3Igc2hhcGUgKyBjaGVja2VkIHN0eWxpbmdcbiAgbGluZS1oZWlnaHQ6IDEuNHJlbTtcbiAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgbWFyZ2luLXJpZ2h0OiAwLjc1ZW07XG4gIHdpZHRoOiAxLjRyZW07XG59XG5cblt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWw6OmJlZm9yZSxcblt0eXBlPXJhZGlvXTpjaGVja2VkICsgbGFiZWw6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1wcmltYXJ5O1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggJGNvbG9yLXByaW1hcnk7XG59XG5cblt0eXBlPXJhZGlvXTpjaGVja2VkICsgbGFiZWw6OmJlZm9yZSB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCAkY29sb3Itd2hpdGUsIDAgMCAwIDRweCAkY29sb3ItcHJpbWFyeTtcbn1cblxuW3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyBsYWJlbDo6YmVmb3JlLFxuW3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6ZGlzYWJsZWQgKyBsYWJlbDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9jb3JyZWN0OC5wbmcnKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9jb3JyZWN0OC5zdmcnKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG5bdHlwZT1yYWRpb106Zm9jdXMgKyBsYWJlbDo6YmVmb3JlIHtcbiAgb3V0bGluZTogJGZvY3VzLW91dGxpbmU7XG4gIG91dGxpbmUtb2Zmc2V0OiAkZm9jdXMtc3BhY2luZyAqIDI7IC8vIERvdWJsZSB0aGUgb2Zmc2V0IHRvIGFjY291bnQgZm9yIGNpcmN1bGFyIHNoYXBlXG59XG5cblt0eXBlPWNoZWNrYm94XTpkaXNhYmxlZCArIGxhYmVsIHtcbiAgY29sb3I6ICRjb2xvci1ncmF5LWxpZ2h0ZXI7XG59XG5cblt0eXBlPWNoZWNrYm94XTpmb2N1cyArIGxhYmVsOjpiZWZvcmUge1xuICBvdXRsaW5lOiAkZm9jdXMtb3V0bGluZTtcbiAgb3V0bGluZS1vZmZzZXQ6ICRmb2N1cy1zcGFjaW5nO1xufVxuXG5bdHlwZT1jaGVja2JveF06ZGlzYWJsZWQgKyBsYWJlbDo6YmVmb3JlLFxuW3R5cGU9cmFkaW9dOmRpc2FibGVkICsgbGFiZWw6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICRjb2xvci1ncmF5LWxpZ2h0ZXN0O1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggJGNvbG9yLWdyYXktbGlnaHQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbkBtZWRpYSBwcmludCB7XG4gIFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWw6OmJlZm9yZSxcbiAgW3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6ZGlzYWJsZWQgKyBsYWJlbDo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICBjb250ZW50OiB1cmwoJyN7JGltYWdlLXBhdGh9L2NvcnJlY3Q4LWFsdC5wbmcnKTtcbiAgICBjb250ZW50OiB1cmwoJyN7JGltYWdlLXBhdGh9L2NvcnJlY3Q4LWFsdC5zdmcnKTtcbiAgICB0ZXh0LWluZGVudDogMDtcbiAgfVxufVxuXG4vLyBSYW5nZSBpbnB1dHNcblxuLy8gQ2hhbmdlIHRvICRjb2xvci1mb2N1cyBpbiAyLjBcbkBtaXhpbiByYW5nZS1mb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCAkY29sb3ItcHJpbWFyeTtcbn1cblxuQG1peGluIHJhbmdlLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogJGNvbG9yLWdyYXktbGlnaHRlcjtcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWdyYXktbWVkaXVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGhlaWdodDogMS42cmVtO1xuICB3aWR0aDogMTAwJTtcbn1cblxuQG1peGluIHJhbmdlLXRodW1iIHtcbiAgYmFja2dyb3VuZDogJGNvbG9yLWdyYXktbGlnaHRlc3Q7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkY29sb3ItZ3JheS1tZWRpdW07XG4gIGJvcmRlci1yYWRpdXM6IDEuNXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBoZWlnaHQ6IDIuNXJlbTtcbiAgd2lkdGg6IDIuNXJlbTtcbn1cblxuQG1peGluIHJhbmdlLW1zLWZpbGwge1xuICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JheS1saWdodDtcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWdyYXktbWVkaXVtO1xuICBib3JkZXItcmFkaXVzOiAycmVtO1xufVxuXG5bdHlwZT1yYW5nZV0ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcblxuICAgICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIEBpbmNsdWRlIHJhbmdlLWZvY3VzO1xuICAgIH1cblxuICAgICY6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgQGluY2x1ZGUgcmFuZ2UtZm9jdXM7XG4gICAgfVxuXG4gICAgJjo6LW1zLXRodW1iIHtcbiAgICAgIEBpbmNsdWRlIHJhbmdlLWZvY3VzO1xuICAgIH1cbiAgfVxuXG4gICY6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgICBAaW5jbHVkZSByYW5nZS10cmFjaztcbiAgfVxuXG4gICY6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICAgIEBpbmNsdWRlIHJhbmdlLXRyYWNrO1xuICB9XG5cbiAgJjo6LW1zLXRyYWNrIHtcbiAgICBAaW5jbHVkZSByYW5nZS10cmFjaztcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICBAaW5jbHVkZSByYW5nZS10aHVtYjtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIG1hcmdpbi10b3A6IC0wLjZyZW07XG4gIH1cblxuICAmOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICBAaW5jbHVkZSByYW5nZS10aHVtYjtcbiAgfVxuXG4gICY6Oi1tcy10aHVtYiB7XG4gICAgQGluY2x1ZGUgcmFuZ2UtdGh1bWI7XG4gIH1cblxuICAmOjotbXMtZmlsbC1sb3dlciB7XG4gICAgQGluY2x1ZGUgcmFuZ2UtbXMtZmlsbDtcbiAgfVxuXG4gICY6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICBAaW5jbHVkZSByYW5nZS1tcy1maWxsO1xuICB9XG59XG5cbi8vIEZpbGUgaW5wdXQgdHlwZVxuW3R5cGU9J2ZpbGUnXSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4vLyBNZW1vcmFibGUgZGF0ZXNcblxuLnVzYS1kYXRlLW9mLWJpcnRoIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSAqL1xuICBsYWJlbCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gIFt0eXBlPW51bWJlcl0ge1xuICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuXG4gICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIH1cblxuICAgICY6Oi13ZWJraXQtY29udGFjdHMtYXV0by1maWxsLWJ1dHRvbiB7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICovXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxufVxuXG4udXNhLWZvcm0tZ3JvdXAtZGF5LFxuLnVzYS1mb3JtLWdyb3VwLW1vbnRoLFxuLnVzYS1mb3JtLWdyb3VwLXllYXIge1xuICBjbGVhcjogbm9uZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMS41cmVtO1xuICB3aWR0aDogNXJlbTtcbn1cblxuLnVzYS1mb3JtLWdyb3VwLXllYXIge1xuICB3aWR0aDogN3JlbTtcbn1cbiIsIi51c2EtbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheTtcbiAgYm9yZGVyLXJhZGl1czogJGxhYmVsLWJvcmRlci1yYWRpdXM7XG4gIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gIGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gIHBhZGRpbmc6IDAuMXJlbSAwLjdyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgJjpvbmx5LW9mLXR5cGUge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuXG4udXNhLWxhYmVsLWJpZyB7XG4gIEBleHRlbmQgLnVzYS1sYWJlbDtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gIHBhZGRpbmctbGVmdDogMC45cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjlyZW07XG59XG4iLCJ1bCxcbm9sIHtcbiAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsKTtcbiAgcGFkZGluZy1sZWZ0OiAxLjk0ZW07IC8vIEFwcHJveGltYXRlbHkgMTVweCBsZWZ0IHBhZGRpbmcgYXQgZGVmYXVsdCBmb250IHNpemVcbn1cblxubGkge1xuICBsaW5lLWhlaWdodDogJGJhc2UtbGluZS1oZWlnaHQ7XG4gIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLyBVbnN0eWxlZCBsaXN0c1xuLnVzYS11bnN0eWxlZC1saXN0IHtcbiAgQGluY2x1ZGUgdW5zdHlsZWQtbGlzdDtcbn1cbiIsInRhYmxlIHtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIG1hcmdpbjogMmVtIDA7XG59XG5cbnRoZWFkIHtcbiAgdGgge1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICB9XG5cbiAgdGgsXG4gIHRkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheS1saWdodGVzdDtcbiAgfVxufVxuXG50aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbnRoLFxudGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ncmF5O1xuICBmb250LXdlaWdodDogJGZvbnQtbm9ybWFsO1xuICBwYWRkaW5nOiAxcmVtIDEuNXJlbTtcbn1cblxuLnVzYS10YWJsZS1ib3JkZXJsZXNzIHtcbiAgdGhlYWQge1xuICAgIHRoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICB0aCxcbiAgdGQge1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgfVxuXG4gIHRoIHtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cblxuY2FwdGlvbiB7XG4gIEBpbmNsdWRlIGg1O1xuICBmb250LWZhbWlseTogJGZvbnQtc2VyaWY7XG4gIG1hcmdpbi1ib3R0b206IDEuMnJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbiIsImh0bWwge1xuICBmb250LWZhbWlseTogJGZvbnQtc2FucztcbiAgZm9udC1zaXplOiAkZW0tYmFzZTtcbn1cblxuYm9keSB7XG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xufVxuXG5wIHtcbiAgbGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIG1hcmdpbi10b3A6IDFlbTtcbn1cblxuYSB7XG4gIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUge1xuICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeS1kYXJrZXI7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBAaW5jbHVkZSBmb2N1cztcbiAgfVxuXG4gICY6dmlzaXRlZCB7XG4gICAgY29sb3I6ICRjb2xvci12aXNpdGVkO1xuICB9XG59XG5cbkBtaXhpbiBleHRlcm5hbC1saW5rKCRleHRlcm5hbC1saW5rLCAkZXh0ZXJuYWwtbGluay1ob3Zlcikge1xuICAmOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogdXJsKCcjeyRpbWFnZS1wYXRofS8jeyRleHRlcm5hbC1saW5rfS5wbmcnKSBuby1yZXBlYXQgMCAwO1xuICAgIGJhY2tncm91bmQ6IHVybCgnI3skaW1hZ2UtcGF0aH0vI3skZXh0ZXJuYWwtbGlua30uc3ZnJykgbm8tcmVwZWF0IDAgMDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMC42NWVtO1xuICAgIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgICB3aWR0aDogMC42NWVtO1xuICB9XG5cbiAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vI3skZXh0ZXJuYWwtbGluay1ob3Zlcn0ucG5nJyk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS8jeyRleHRlcm5hbC1saW5rLWhvdmVyfS5zdmcnKTtcbiAgfVxufVxuXG4vLyBFeHRlcm5hbCBsaW5rIGNvbnNpZGVyIFwiZWZmb3J0bGVzcyBzdHlsZSBhcHByb2FjaFwiOlxuLy8gW2hyZWZePVwiaHR0cDpcIl06bm90KFtocmVmKj1cIm15LWRvbWFpbi5jb21cIl0pXG4vLyBbaHJlZl49XCJodHRwczpcIl06bm90KFtocmVmKj1cIm15LWRvbWFpbi5jb21cIl0pXG5cbi51c2EtZXh0ZXJuYWxfbGluayB7XG4gIEBpbmNsdWRlIGV4dGVybmFsLWxpbmsoZXh0ZXJuYWwtbGluaywgZXh0ZXJuYWwtbGluay1ob3Zlcik7XG59XG5cbi51c2EtZXh0ZXJuYWxfbGluay1hbHQge1xuICBAaW5jbHVkZSBleHRlcm5hbC1saW5rKGV4dGVybmFsLWxpbmstYWx0LCBleHRlcm5hbC1saW5rLWFsdC1ob3Zlcik7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIGNsZWFyOiBib3RoO1xuICBmb250LWZhbWlseTogJGZvbnQtc2VyaWY7XG4gIGxpbmUtaGVpZ2h0OiAkaGVhZGluZy1saW5lLWhlaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gIG1hcmdpbi10b3A6IDEuNWVtO1xufVxuXG5oMSB7XG4gIEBpbmNsdWRlIGgxKCk7XG59XG5cbmgyIHtcbiAgQGluY2x1ZGUgaDIoKTtcbn1cblxuaDMge1xuICBAaW5jbHVkZSBoMygpO1xufVxuXG5oNCB7XG4gIEBpbmNsdWRlIGg0KCk7XG59XG5cbmg1IHtcbiAgQGluY2x1ZGUgaDUoKTtcbn1cblxuaDYge1xuICBAaW5jbHVkZSBoNigpO1xuICBmb250LWZhbWlseTogJGZvbnQtc2Fucztcbn1cblxuLy8gUmVtb3ZlIHVzZXIgYWdlbnQgc3R5bGVzXG5cbmNpdGUsXG52YXIsXG5hZGRyZXNzLFxuZGZuIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4vLyBDdXN0b20gdHlwb2dyYXBoeVxuXG4udXNhLWNvbnRlbnQge1xuICBwLFxuICB1bDpub3QoLnVzYS1hY2NvcmRpb24pOm5vdCgudXNhLWFjY29yZGlvbi1ib3JkZXJlZCksXG4gIG9sOm5vdCgudXNhLWFjY29yZGlvbik6bm90KC51c2EtYWNjb3JkaW9uLWJvcmRlcmVkKSB7XG4gICAgbWF4LXdpZHRoOiAkdGV4dC1tYXgtd2lkdGg7XG4gIH1cbn1cblxuLnVzYS1jb250ZW50LWxpc3Qge1xuICBtYXgtd2lkdGg6ICR0ZXh0LW1heC13aWR0aDtcbn1cblxuLnVzYS1zYW5zIHtcbiAgcCxcbiAgYSxcbiAgbGksXG4gIHNwYW4ge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1zYW5zO1xuICB9XG5cbiAgYSB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgfVxufVxuXG4udXNhLXNlcmlmIHtcbiAgcCxcbiAgYSxcbiAgbGksXG4gIHNwYW4ge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1zZXJpZjtcbiAgfVxufVxuXG4udXNhLWRpc3BsYXkge1xuICBAaW5jbHVkZSBoMygpO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICBAaW5jbHVkZSBoMSgpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBAaW5jbHVkZSB0aXRsZSgpO1xuICB9XG59XG5cbi51c2EtZm9udC1sZWFkIHtcbiAgZm9udC1mYW1pbHk6ICRmb250LXNlcmlmO1xuICBmb250LXNpemU6ICRsZWFkLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6ICRsZWFkLWxpbmUtaGVpZ2h0O1xuICBtYXgtd2lkdGg6ICRsZWFkLW1heC13aWR0aDtcbn1cblxuLnVzYS1iYWNrZ3JvdW5kLWRhcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheS1kYXJrO1xuXG4gIHAsXG4gIHNwYW4ge1xuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gIH1cblxuICBhIHtcbiAgICBjb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICB9XG4gIH1cbn1cblxuLnVzYS10ZXh0LXNtYWxsIHtcbiAgZm9udC1zaXplOiAkaDYtZm9udC1zaXplO1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4vLyBSZW1vdmVzIHRvcCBtYXJnaW4gZnJvbSBmaXJzdCBjaGlsZCBhbmQgYm90dG9tIG1hcmdpbiBmcm9tIGxhc3QgY2hpbGQgb25cbi8vIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgd2l0aGluIHRob3NlIGxheW91dCBlbGVtZW50cy5cbi51c2Etc2VjdGlvbixcbi51c2EtZ3JpZCxcbi51c2EtZ3JpZC1mdWxsIHtcbiAgPiA6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi51c2Etd2lkdGgtb25lLXdob2xlLFxuLnVzYS13aWR0aC1vbmUtaGFsZixcbi51c2Etd2lkdGgtb25lLXRoaXJkLFxuLnVzYS13aWR0aC10d28tdGhpcmRzLFxuLnVzYS13aWR0aC1vbmUtZm91cnRoLFxuLnVzYS13aWR0aC10aHJlZS1mb3VydGhzLFxuLnVzYS13aWR0aC1vbmUtc2l4dGgsXG4udXNhLXdpZHRoLWZpdmUtc2l4dGhzLFxuLnVzYS13aWR0aC1vbmUtdHdlbGZ0aCB7XG4gICY6Zmlyc3QtY2hpbGQge1xuICAgID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgPiA6Zmlyc3QtY2hpbGQge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gVmFyaWFibGVzXG5cbiRhY2NvcmRpb24tYm9yZGVyOiAzcHggc29saWQgJGNvbG9yLWdyYXktbGlnaHRlc3Q7XG5cbi8vIEFjY29yZGlvbiBTdHlsZXNcblxuJGljb24tc2l6ZTogJHNwYWNpbmctbWQtc21hbGw7XG4kaC1wYWRkaW5nOiAkc3BhY2luZy1tZWRpdW07XG4kdi1wYWRkaW5nOiAkc3BhY2luZy1tZC1zbWFsbDtcblxuQG1peGluIGFjY29yZGlvbi1saXN0LXN0eWxlcyB7XG4gIEBpbmNsdWRlIHVuc3R5bGVkLWxpc3Q7XG4gIGNvbG9yOiAkY29sb3ItYmFzZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuQG1peGluIGFjY29yZGlvbi1saXN0LWl0ZW0tc3R5bGVzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlc3Q7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1zYW5zO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy14LXNtYWxsO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLy8gc2Nzcy1saW50OmRpc2FibGUgUHJvcGVydHlDb3VudFxuQG1peGluIGFjY29yZGlvbi1idXR0b24tc3R5bGVzIHtcbiAgQGluY2x1ZGUgYnV0dG9uLXVuc3R5bGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheS1saWdodGVzdDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9taW51cy5wbmcnKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9taW51cy5zdmcnKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgJGgtcGFkZGluZyBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogJGljb24tc2l6ZTtcbiAgY29sb3I6ICRjb2xvci1iYXNlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICRmb250LXNhbnM7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6ICR2LXBhZGRpbmcgKCRoLXBhZGRpbmcgKiAyICsgJGljb24tc2l6ZSkgJHYtcGFkZGluZyAkaC1wYWRkaW5nO1xuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheS1saWdodGVyO1xuICAgIGNvbG9yOiAkY29sb3ItYmFzZTtcbiAgfVxuXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuLy8gc2Nzcy1saW50OmVuYWJsZSBQcm9wZXJ0eUNvdW50XG5cbkBtaXhpbiBhY2NvcmRpb24tYnV0dG9uLXVub3BlbmVkLXN0eWxlcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vcGx1cy5wbmcnKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9wbHVzLnN2ZycpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6ICRpY29uLXNpemU7XG59XG5cbkBtaXhpbiBhY2NvcmRpb24tbmVzdGVkLWxpc3Qge1xuICA+IHVsIGxpIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBkaXNjO1xuICAgID4gbGkgPiB1bCB7XG4gICAgICBsaXN0LXN0eWxlOiBjaXJjbGU7XG4gICAgICA+IGxpID4gdWwge1xuICAgICAgICBsaXN0LXN0eWxlOiBzcXVhcmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi51c2EtYWNjb3JkaW9uLFxuLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQge1xuICBAaW5jbHVkZSBhY2NvcmRpb24tbGlzdC1zdHlsZXM7XG4gIEBpbmNsdWRlIGFjY29yZGlvbi1uZXN0ZWQtbGlzdDtcblxuICArIC51c2EtYWNjb3JkaW9uLFxuICArIC51c2EtYWNjb3JkaW9uLWJvcmRlcmVkIHtcbiAgICBtYXJnaW4tdG9wOiAkc3BhY2luZy1zbWFsbDtcbiAgfVxuXG4gIC8vIFRPRE8gZGVwcmVjYXRlZCBydWxlc2V0IGJhc2VkIG9uIG9sZCBhY2NvcmRpb24uXG4gID4gdWwge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1saXN0LXN0eWxlcztcblxuICAgIC8vIFRPRE8gZGVwcmVjYXRlZCBydWxlc2V0IGJhc2VkIG9uIG9sZCBhY2NvcmRpb24uXG4gICAgPiBsaSB7XG4gICAgICBAaW5jbHVkZSBhY2NvcmRpb24tbGlzdC1pdGVtLXN0eWxlcztcbiAgICB9XG5cbiAgICAvLyBUT0RPIGRlcHJlY2F0ZWQgcnVsZXNldCBiYXNlZCBvbiBvbGQgYWNjb3JkaW9uLlxuICAgIGJ1dHRvbiB7XG4gICAgICBAaW5jbHVkZSBhY2NvcmRpb24tYnV0dG9uLXN0eWxlcztcbiAgICB9XG5cbiAgICAvLyBUT0RPIGRlcHJlY2F0ZWQgcnVsZXNldCBiYXNlZCBvbiBvbGQgYWNjb3JkaW9uLlxuICAgIFthcmlhLWV4cGFuZGVkPWZhbHNlXSB7XG4gICAgICBAaW5jbHVkZSBhY2NvcmRpb24tYnV0dG9uLXVub3BlbmVkLXN0eWxlcztcbiAgICB9XG4gIH1cblxuICA+IGxpIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tbGlzdC1pdGVtLXN0eWxlcztcbiAgfVxuXG59XG5cbi51c2EtYWNjb3JkaW9uLWJvcmRlcmVkIHtcbiAgLnVzYS1hY2NvcmRpb24tY29udGVudCB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFjY29yZGlvbi1ib3JkZXI7XG4gICAgYm9yZGVyLWxlZnQ6ICRhY2NvcmRpb24tYm9yZGVyO1xuICAgIGJvcmRlci1yaWdodDogJGFjY29yZGlvbi1ib3JkZXI7XG4gIH1cbn1cblxuLnVzYS1hY2NvcmRpb24tY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHBhZGRpbmc6ICRzcGFjaW5nLW1kLXNtYWxsICRzcGFjaW5nLW1lZGl1bTtcblxuICA+ICo6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gICY6bm90KFthcmlhLWhpZGRlbl0pIHtcbiAgICBAaW5jbHVkZSBzci1vbmx5KCk7XG4gIH1cblxuICBAaW5jbHVkZSBhY2Nlc3NpYmx5LWhpZGRlbigpO1xufVxuXG4udXNhLWFjY29yZGlvbi1idXR0b24ge1xuICBAaW5jbHVkZSBhY2NvcmRpb24tYnV0dG9uLXN0eWxlcztcbn1cblxuLnVzYS1hY2NvcmRpb24tYnV0dG9uW2FyaWEtZXhwYW5kZWQ9ZmFsc2VdIHtcbiAgQGluY2x1ZGUgYWNjb3JkaW9uLWJ1dHRvbi11bm9wZW5lZC1zdHlsZXM7XG59XG4iLCIvLyBBbGVydCB2YXJpYWJsZXMgLS0tLS0tLS0tLSAvL1xuJHVzYS1jdXN0b20tYWxlcnRzOiAoKSAhZGVmYXVsdDtcbiR1c2EtY3VzdG9tLWFsZXJ0cy1iYXI6ICgpICFkZWZhdWx0O1xuXG4kdXNhLWFsZXJ0czogKFxuICBzdWNjZXNzOiAkY29sb3ItZ3JlZW4tbGlnaHRlc3QsXG4gIHdhcm5pbmc6ICRjb2xvci1nb2xkLWxpZ2h0ZXN0LFxuICBlcnJvcjogJGNvbG9yLXNlY29uZGFyeS1saWdodGVzdCxcbiAgaW5mbzogJGNvbG9yLXByaW1hcnktYWx0LWxpZ2h0ZXN0XG4pO1xuXG4kdXNhLWFsZXJ0cy1iYXI6IChcbiAgc3VjY2VzczogJGNvbG9yLWdyZWVuLFxuICB3YXJuaW5nOiAkY29sb3ItZ29sZCxcbiAgZXJyb3I6ICRjb2xvci1zZWNvbmRhcnksXG4gIGluZm86ICRjb2xvci1wcmltYXJ5LWFsdFxuKTtcblxuJGFsZXJ0czogbWFwLW1lcmdlKCR1c2EtYWxlcnRzLCAkdXNhLWN1c3RvbS1hbGVydHMpO1xuJGFsZXJ0cy1iYXI6IG1hcC1tZXJnZSgkdXNhLWFsZXJ0cy1iYXIsICR1c2EtY3VzdG9tLWFsZXJ0cy1iYXIpO1xuXG4kaC1wYWRkaW5nOiAkc3BhY2luZy1tZWRpdW07XG4kYmFyLXNpemU6ICRzcGFjaW5nLXNtYWxsO1xuJGxlZnQtcGFkZGluZzogJGgtcGFkZGluZyArICRiYXItc2l6ZTtcbiRpY29uLXNpemU6IDNyZW07XG5cbi51c2EtYWxlcnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheS1saWdodGVzdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogJGgtcGFkZGluZyAkaC1wYWRkaW5nO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDUuMnJlbTsgLy8gVE9ETyBhYnJpdHVhcnkgbnVtYmVyIGJhc2VkIG9uIHN2ZyBzaXplIG1heWJlP1xuICBwYWRkaW5nLWJvdHRvbTogJGgtcGFkZGluZyAqIDAuNztcbiAgcGFkZGluZy1sZWZ0OiAkbGVmdC1wYWRkaW5nO1xuICBwYWRkaW5nLXJpZ2h0OiAkaC1wYWRkaW5nO1xuICBwYWRkaW5nLXRvcDogJGgtcGFkZGluZztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRjb2xvci1ncmF5LWxpZ2h0ZXN0LCA0MCUpO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6ICRiYXItc2l6ZTtcbiAgfVxuXG4gIGEge1xuICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeS1kYXJrZXI7XG5cbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5LWRhcmtlc3Q7XG4gICAgfVxuICB9XG5cbiAgdWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLXRvcDogJHNwYWNpbmctc21hbGw7XG4gICAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1zbWFsbDtcbiAgfVxufVxuXG4udXNhLWFsZXJ0LXNsaW0ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkaC1wYWRkaW5nICRzcGFjaW5nLXNtYWxsO1xuICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctc21hbGw7XG4gIHBhZGRpbmctdG9wOiAkc3BhY2luZy1zbWFsbDtcblxuICAudXNhLWFsZXJ0LXRleHQ6b25seS1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmcteC1zbWFsbDtcbiAgICBwYWRkaW5nLXRvcDogJHNwYWNpbmcteC1zbWFsbDtcbiAgfVxufVxuXG4udXNhLWFsZXJ0LWljb24ge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1zbWFsbDtcbn1cblxuLnVzYS1hbGVydC1ib2R5IHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuLnVzYS1hbGVydC1oZWFkaW5nIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLnVzYS1hbGVydC10ZXh0IHtcbiAgZm9udC1mYW1pbHk6ICRmb250LXNhbnM7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi51c2EtYWxlcnQtdGV4dDpvbmx5LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctc21hbGw7XG4gIHBhZGRpbmctdG9wOiAkc3BhY2luZy14LXNtYWxsO1xufVxuXG5AZWFjaCAkbmFtZSwgJGJnY29sb3IgaW4gJGFsZXJ0cyB7XG4gIC51c2EtYWxlcnQtI3skbmFtZX0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiZ2NvbG9yO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vYWxlcnRzLyN7JG5hbWV9LnBuZycpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vYWxlcnRzLyN7JG5hbWV9LnN2ZycpO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGFsZXJ0cy1iYXIsICRuYW1lKTtcbiAgICB9XG5cbiAgICAudXNhLWFsZXJ0LWJvZHkge1xuICAgICAgcGFkZGluZy1sZWZ0OiAkaWNvbi1zaXplICsgJGgtcGFkZGluZztcbiAgICB9XG4gIH1cbn1cblxuLnVzYS1hbGVydC1ub19pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cblxuLnVzYS1hbGVydC1wYXJhZ3JhcGgge1xuICB3aWR0aDogJHRleHQtbWF4LXdpZHRoO1xufVxuXG4vLyBEZXByZWNhdGVkXG4udXNhLWFsZXJ0IHtcbiAgbWFyZ2luLXRvcDogMS41ZW07IC8vIFRPRE8gZGVwcmVjYXRlXG59XG4iLCIudXNhLWJhbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmF5LWxpZ2h0ZXN0O1xuICBwYWRkaW5nLWJvdHRvbTogMC43cmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICBmb250LXNpemU6ICRoNi1mb250LXNpemU7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cbn1cblxuLnVzYS1iYW5uZXItY29udGVudCB7XG4gIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAkc2l0ZS1tYXJnaW5zLW1vYmlsZSAzcHggJHNpdGUtbWFyZ2lucy1tb2JpbGUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAkaDUtZm9udC1zaXplO1xuICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMi4zcmVtO1xuICAgIHBhZGRpbmctdG9wOiA0cmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAkc2l0ZS1tYXJnaW5zKTtcbiAgfVxuXG4gIHAge1xuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnVzYS1iYW5uZXItaW5uZXIge1xuICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoJHNpdGUtbWF4LXdpZHRoKTtcbiAgQGluY2x1ZGUgcGFkZGluZyhudWxsICRzaXRlLW1hcmdpbnMtbW9iaWxlKTtcblxuICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZyhudWxsICRzaXRlLW1hcmdpbnMpO1xuICB9XG59XG5cbi51c2EtYmFubmVyLWhlYWRlciB7XG4gIEBpbmNsdWRlIHBhZGRpbmcoMC41NXJlbSBudWxsKTtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtYWw7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoMCBudWxsKTtcbiAgfVxuXG4gIHAge1xuICAgIEBpbmNsdWRlIG1hcmdpbigwIG51bGwpO1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBtYXJnaW4oMnB4IG51bGwpO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIG1hcmdpbi10b3A6IDFweDtcbiAgICB3aWR0aDogMi40cmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjdyZW07XG4gICAgICB3aWR0aDogMnJlbTtcbiAgICB9XG4gIH1cbn1cblxuLnVzYS1iYW5uZXItaGVhZGVyLWV4cGFuZGVkIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1ncmF5LWxpZ2h0O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LXNpemU6ICRoNS1mb250LXNpemU7XG4gIG1pbi1oZWlnaHQ6IDUuNnJlbTtcbiAgcGFkZGluZy1yaWdodDogM3JlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtbm9ybWFsO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxuXG4gID4gLnVzYS1iYW5uZXItaW5uZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDIuNHJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMC43cmVtO1xuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGluZy1saW5lLWhlaWdodDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgbGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0O1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cblxuLnVzYS1iYW5uZXItYnV0dG9uIHtcbiAgQGluY2x1ZGUgYnV0dG9uLXVuc3R5bGVkO1xuICBAaW5jbHVkZSBwYWRkaW5nKDEuM3JlbSBudWxsIG51bGwgNC44cmVtKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiByaWdodDtcbiAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGhlaWdodDogNC4zcmVtO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKDAgbnVsbCBudWxsIDApO1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLWJsb2NrLW5vLWlnbm9yZWQtcHJvcGVydGllcyAqL1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB3aWR0aDogYXV0bztcbiAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJGNvbG9yLXByaW1hcnktZGFya2VyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5cbiAgJlthcmlhLWV4cGFuZGVkPWZhbHNlXSB7XG4gICAgQGluY2x1ZGUgZGlzcGxheS1pY29uKGFuZ2xlLWFycm93LWRvd24tcHJpbWFyeSwgYWZ0ZXIsIDFyZW0sIDAsIGhvdmVyKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiAxcHg7XG4gICAgfVxuICB9XG5cbiAgJlthcmlhLWV4cGFuZGVkPXRydWVdIHtcbiAgICBAaW5jbHVkZSBkaXNwbGF5LWljb24oY2xvc2UsIGFmdGVyLCAxLjNyZW0sIDAsIG5vLWhvdmVyKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIGhlaWdodDogNS42cmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgZGlzcGxheS1pY29uKGFuZ2xlLWFycm93LXVwLXByaW1hcnksIGFmdGVyLCAxcmVtLCAwLCBob3Zlcik7XG4gICAgICBoZWlnaHQ6IGluaXRpYWw7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogMXB4O1xuICAgICAgfVxuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICB0b3A6IDIuMTVyZW07XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudXNhLWJhbm5lci1idXR0b24tdGV4dCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnVzYS1iYW5uZXItaWNvbiB7XG4gIHdpZHRoOiAzLjhyZW07XG59XG4iLCIudXNhLWZvb3RlciB7XG4gIC51c2EtdW5zdHlsZWQtbGlzdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAudXNhLWZvb3Rlci1wcmltYXJ5LWxpbmsge1xuICAgIGNvbG9yOiAkY29sb3ItYmFzZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1tZWRpdW07XG4gICAgcGFkZGluZy10b3A6ICRzcGFjaW5nLW1lZGl1bTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudXNhLWZvb3Rlci1wcmltYXJ5LWxpbmsgfiBsaSBhLFxuICAudXNhLWZvb3Rlci1zZWNvbmRhcnktbGluayB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5cbi51c2EtZm9vdGVyLWNvbnRhY3RfaW5mbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBhIHtcbiAgICBjb2xvcjogJGNvbG9yLWJhc2U7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbn1cblxuLnVzYS1mb290ZXItcmV0dXJuLXRvLXRvcCB7XG4gIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1tZWRpdW07XG4gIHBhZGRpbmctdG9wOiAkc3BhY2luZy1tZWRpdW07XG59XG5cbi51c2EtZm9vdGVyLXByaW1hcnktc2VjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmF5LWxpZ2h0ZXN0O1xuXG4gIC51c2EtZm9vdGVyLXByaW1hcnktY29udGVudCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMi41cmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC51c2EtZ3JpZC1mdWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyLjVyZW07XG4gICAgfVxuICB9XG59XG5cbi51c2EtZm9vdGVyLW1lZGl1bSB7XG4gIC51c2EtZm9vdGVyLWNvbnRhY3RfaW5mbyB7XG4gICAgcCB7XG4gICAgICBtYXJnaW46IDAgJHNwYWNpbmctc21hbGwgMCAwO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgICBtYXJnaW46IDAgMCAwICRzcGFjaW5nLXNtYWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC51c2EtZm9vdGVyLWNvbnRhY3QtaGVhZGluZyB7XG4gICAgbWFyZ2luLXRvcDogMDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBtYXJnaW4tdG9wOiAkc3BhY2luZy14LXNtYWxsO1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmcteC1zbWFsbDtcbiAgICB9XG4gIH1cblxuICAudXNhLWZvb3Rlci1sb2dvIHtcbiAgICBwYWRkaW5nOiAkc3BhY2luZy1zbWFsbCAwO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIHBhZGRpbmc6ICRzcGFjaW5nLW1lZGl1bSAwO1xuICAgIH1cbiAgfVxuXG4gIC51c2EtZm9vdGVyLXByaW1hcnktbGluayB7XG4gICAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLW1kLXNtYWxsO1xuICAgIHBhZGRpbmctdG9wOiAkc3BhY2luZy1tZC1zbWFsbDtcbiAgfVxuXG4gIC51c2EtZm9vdGVyLXByaW1hcnktc2VjdGlvbiB7XG4gICAgPiAudXNhLWdyaWQge1xuICAgICAgcGFkZGluZzogMDtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1sYXJnZTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctbGFyZ2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnVzYS1mb290ZXItcHJpbWFyeS1jb250ZW50IHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4pIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1JTtcbiAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4pIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudXNhLWZvb3Rlci1uYXYgdWwge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgfVxufVxuXG4udXNhLWZvb3Rlci1zbGltIHtcbiAgLnVzYS1mb290ZXItbmF2IHtcbiAgICBhIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC51c2EtZm9vdGVyLXByaW1hcnktY29udGVudCB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNSU7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuKSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnVzYS1mb290ZXItcHJpbWFyeS1saW5rIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctbWQtc21hbGw7XG4gICAgcGFkZGluZy10b3A6ICRzcGFjaW5nLW1kLXNtYWxsO1xuICB9XG5cbiAgLnVzYS1mb290ZXItcHJpbWFyeS1zZWN0aW9uIHtcbiAgICA+IC51c2EtZ3JpZCB7XG4gICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLWxhcmdlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1sYXJnZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcblxuICAgICAgLnVzYS1ncmlkLWZ1bGwge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC51c2EtZm9vdGVyLWNvbnRhY3RfaW5mbyB7XG4gICAgPiAqIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyAoJHNwYWNpbmctbWQtc21hbGwgbnVsbCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4pIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbiAgICB9XG4gIH1cbn1cblxuLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlICovXG51bC51c2EtZm9vdGVyLXByaW1hcnktY29udGVudCxcbmxpLnVzYS1mb290ZXItcHJpbWFyeS1jb250ZW50LFxubGkudXNhLWZvb3Rlci1wcmltYXJ5LWNvbnRlbnQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yLWdyYXktbGlnaHQ7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItZ3JheS1saWdodDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cbiAgfVxufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuXG4udXNhLXNpZ25fdXAtYmxvY2sge1xuICBwYWRkaW5nLWJvdHRvbTogNC41cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICBsYWJlbDpmaXJzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgYnV0dG9uIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICB9XG5cbiAgaW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi51c2EtZm9vdGVyLXNlY29uZGFyeV9zZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlcjtcbiAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLW1lZGl1bTtcbiAgcGFkZGluZy10b3A6ICRzcGFjaW5nLW1lZGl1bTtcblxuICBhIHtcbiAgICBjb2xvcjogJGNvbG9yLWJhc2U7XG4gIH1cbn1cblxuLnVzYS1mb290ZXItYmlnLXNlY29uZGFyeS1zZWN0aW9uIHtcbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBwYWRkaW5nLXRvcDogJHNwYWNpbmctbWVkaXVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1tZWRpdW07XG4gIH1cbn1cblxuLnVzYS1mb290ZXItY29udGFjdC1saW5rcyB7XG4gIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbn1cblxuLnVzYS1zb2NpYWwtbGlua3Mge1xuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbn1cblxuLnVzYS1mb290ZXItYmlnIHtcbiAgLnVzYS1mb290ZXItY29udGFjdF9pbmZvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIHAge1xuICAgICAgbWFyZ2luOiAwICRzcGFjaW5nLXNtYWxsIDAgMDtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgICAgbWFyZ2luOiAkc3BhY2luZy14LXNtYWxsIDAgMCAkc3BhY2luZy1zbWFsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudXNhLWZvb3Rlci1jb250YWN0LWxpbmtzIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgcGFkZGluZy10b3A6ICRzcGFjaW5nLW1lZGl1bTtcbiAgICB9XG4gIH1cblxuICAudXNhLWZvb3Rlci1sb2dvIHtcbiAgICBwYWRkaW5nOiAkc3BhY2luZy1zbWFsbCAwO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIHBhZGRpbmc6ICRzcGFjaW5nLW1lZGl1bSAwO1xuICAgIH1cbiAgfVxuXG4gIC51c2EtZm9vdGVyLXByaW1hcnktc2VjdGlvbiB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0cmVtO1xuICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgfVxuXG4gICAgPiAudXNhLWdyaWQge1xuICAgICAgcGFkZGluZzogMDtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1sYXJnZTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctbGFyZ2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnVzYS1mb290ZXItcHJpbWFyeS1jb250ZW50IHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLW1kLXNtYWxsO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnVzYS1mb290ZXItcHJpbWFyeS1saW5rIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdWwge1xuICAgIHBhZGRpbmctYm90dG9tOiAyLjRyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItZ3JheS1saWdodDtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsaTpub3QoLnVzYS1mb290ZXItcHJpbWFyeS1saW5rKSB7XG4gICAgICBsaW5lLWhlaWdodDogJGhlYWRpbmctbGluZS1oZWlnaHQ7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMC4zNWVtO1xuICAgICAgcGFkZGluZy10b3A6IDAuMzVlbTtcbiAgICB9XG5cbiAgICAudXNhLWZvb3Rlci1wcmltYXJ5LWxpbmsge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9hcnJvdy1kb3duLnBuZycpO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9hcnJvdy1kb3duLnN2ZycpO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMS41cmVtIGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDEuM3JlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAzLjVyZW07XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC44cmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuXG4gICAgICA+ICoge1xuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oMCBudWxsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmhpZGRlbiB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlICovXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcblxuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAudXNhLWZvb3Rlci1wcmltYXJ5LWxpbmsgeyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZSAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L2Fycm93LXJpZ2h0LnBuZycpO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L2Fycm93LXJpZ2h0LnN2ZycpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnVzYS1mb290ZXItdG9waWMge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDJyZW0gMDtcbn1cblxuLnVzYS1zaWduX3VwLWhlYWRlciB7XG4gIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgfVxufVxuXG4udXNhLWZvb3Rlci1sb2dvLWltZyB7XG4gIG1heC13aWR0aDogOHJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG59XG5cbi51c2EtZm9vdGVyLWJpZy1sb2dvLWltZyB7XG4gIG1heC13aWR0aDogMTByZW07XG59XG5cbi51c2EtZm9vdGVyLXNsaW0tbG9nby1pbWcge1xuICBmbG9hdDogbGVmdDtcbiAgbWF4LXdpZHRoOiA1cmVtO1xufVxuXG4udXNhLWZvb3Rlci1sb2dvLWhlYWRpbmcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogJHNwYWNpbmctc21hbGw7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogJHNwYWNpbmctbGFyZ2U7XG4gICAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1tZC1zbWFsbDtcbiAgfVxufVxuXG4udXNhLWZvb3Rlci1iaWctbG9nby1oZWFkaW5nIHtcbiAgbWFyZ2luLXRvcDogJHNwYWNpbmctbWQtc21hbGw7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBtYXJnaW4tdG9wOiAkc3BhY2luZy1tZWRpdW07XG4gIH1cbn1cblxuLnVzYS1mb290ZXItc2xpbS1sb2dvLWhlYWRpbmcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi10b3A6ICRzcGFjaW5nLW1kLXNtYWxsO1xuICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLW1kLXNtYWxsO1xufVxuXG4udXNhLWZvb3Rlci1jb250YWN0LWhlYWRpbmcge1xuICBtYXJnaW4tdG9wOiAwO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgfVxufVxuXG4udXNhLXNvY2lhbF9saW5rIHtcbiAgJGJhY2tncm91bmQtaGVpZ2h0OiAzcmVtOyAvLyBIZWlnaHQgb2YgaWNvbiB3aXRoaW4gaGl0IGFyZWEuXG4gIC8vIExpbmsgaGl0IHRhcmdldCBpcyA0NCB4IDQ0IHBpeGVscyBmb2xsb3dpbmdcbiAgLy8gQXBwbGUgaU9TIEh1bWFuIEludGVyZmFjZSBHdWlkZWxpbmVzLlxuICAkaGl0LWFyZWE6IDQuNHJlbTtcblxuICBAaW5jbHVkZSBtYXJnaW4oMi41cmVtIDFyZW0gMS41cmVtIDApO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gJGJhY2tncm91bmQtaGVpZ2h0O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogJGhpdC1hcmVhO1xuICBsZWZ0OiAtMS42cmVtOyAvLyByZWxhdGl2ZSBsZWZ0IHBvc2l0aW9uaW5nXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogJGhpdC1hcmVhO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgQGluY2x1ZGUgbWFyZ2luKDAgMCAwICRzcGFjaW5nLXgtc21hbGwpO1xuICAgIGxlZnQ6ICRzcGFjaW5nLW1kLXNtYWxsO1xuICB9XG5cbiAgc3BhbiB7XG4gICAgQGluY2x1ZGUgc3Itb25seSgpO1xuICB9XG59XG5cbi51c2EtbGluay1mYWNlYm9vayB7XG4gIEBleHRlbmQgLnVzYS1zb2NpYWxfbGluaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9zb2NpYWwtaWNvbnMvcG5nL2ZhY2Vib29rMjUucG5nJyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vc29jaWFsLWljb25zL3N2Zy9mYWNlYm9vazI1LnN2ZycpO1xufVxuXG4udXNhLWxpbmstdHdpdHRlciB7XG4gIEBleHRlbmQgLnVzYS1zb2NpYWxfbGluaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9zb2NpYWwtaWNvbnMvcG5nL3R3aXR0ZXIxNi5wbmcnKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9zb2NpYWwtaWNvbnMvc3ZnL3R3aXR0ZXIxNi5zdmcnKTtcbn1cblxuLnVzYS1saW5rLXlvdXR1YmUge1xuICBAZXh0ZW5kIC51c2Etc29jaWFsX2xpbms7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vc29jaWFsLWljb25zL3BuZy95b3V0dWJlMTUucG5nJyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vc29jaWFsLWljb25zL3N2Zy95b3V0dWJlMTUuc3ZnJyk7XG59XG5cbi51c2EtbGluay1yc3Mge1xuICBAZXh0ZW5kIC51c2Etc29jaWFsX2xpbms7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vc29jaWFsLWljb25zL3BuZy9yc3MyNS5wbmcnKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9zb2NpYWwtaWNvbnMvc3ZnL3JzczI1LnN2ZycpO1xufVxuIiwiJHVzYS1mb3JtLXdpZHRoOiAzMnJlbTtcblxuW3R5cGU9c3VibWl0XSB7XG4gIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgbWFyZ2luLXRvcDogY2FsYygzcmVtIC0gLjJlbSk7IC8vIExhYmVsIG1hcmdpbiBtaW51cyBpbnB1dCBib3R0b20gbWFyZ2luXG4gIH1cbn1cblxuZmllbGRzZXQge1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLnVzYS1mb3JtIHtcbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBtYXgtd2lkdGg6ICR1c2EtZm9ybS13aWR0aDtcbiAgfVxufVxuXG4udXNhLWlucHV0LXRpbnkge1xuICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgIG1heC13aWR0aDogNnJlbTtcbiAgfVxufVxuXG4udXNhLWlucHV0LW1lZGl1bSB7XG4gIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgbWF4LXdpZHRoOiAxMnJlbTtcbiAgfVxufVxuXG4udXNhLWZvcm0tbm90ZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1mYW1pbHk6ICRmb250LXNhbnM7XG4gIGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZTtcbiAgbWFyZ2luOiAwIDAgMS41cmVtO1xuXG4gICsgKiB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLnVzYS1mb3JtLWxhcmdlIHtcbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBtYXgtd2lkdGg6IDQ2cmVtO1xuICB9XG59XG5cbi51c2EtaW5wdXQtZ3JpZCB7XG4gIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgcGFkZGluZy1yaWdodDogNSU7XG4gIH1cbn1cblxuLnVzYS1pbnB1dC1ncmlkOmxhc3Qtb2YtdHlwZSB7XG4gIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxufVxuXG4udXNhLWlucHV0LWdyaWQtc21hbGwge1xuICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAzNSU7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgfVxuXG4gIHNlbGVjdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgfVxufVxuXG4udXNhLWlucHV0LWdyaWQtbWVkaXVtIHtcbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNjUlO1xuICB9XG5cbiAgaW5wdXQge1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW07XG4gIH1cblxuICBzZWxlY3Qge1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW07XG4gIH1cbn1cblxuLnVzYS1pbnB1dC1ncmlkLWxhcmdlIHtcbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICB9XG5cbiAgc2VsZWN0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICB9XG59XG5cbi51c2EtYWRkaXRpb25hbF90ZXh0IHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLy8gUmVzZXQgcGFzc3dvcmQgY2hlY2tsaXN0XG5cbi51c2EtY2hlY2tsaXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcblxuICBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHBhZGRpbmctbGVmdDogM2VtO1xuICAgIHRleHQtaW5kZW50OiAtMmVtO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGhlaWdodDogLjhlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogLjJlbTtcbiAgICAgIHdpZHRoOiAxLjhlbTtcbiAgICB9XG4gIH1cbn1cblxuLnVzYS1jaGVja2xpc3QtY2hlY2tlZCB7XG4gICY6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9jb3JyZWN0OS5wbmcnKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L2NvcnJlY3Q5LnN2ZycpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCU7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEEgY29sbGVjdGlvbiBvZiBtZWRpYSBibG9jayBvYmplY3RzXG5cbi51c2EtZ3JhcGhpY19saXN0IHtcbiAgLnVzYS1ncmFwaGljX2xpc3Qtcm93IHtcbiAgICAudXNhLW1lZGlhX2Jsb2NrIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRzaXRlLW1hcmdpbnM7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRzaXRlLW1hcmdpbnMgKiAyO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAudXNhLW1lZGlhX2Jsb2NrIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnVzYS1tZWRpYV9ibG9jay1pbWcge1xuICAgIG1hcmdpbi1yaWdodDogJHNpdGUtbWFyZ2lucztcbiAgfVxuXG4gIC51c2EtbWVkaWFfYmxvY2stYm9keSB7XG4gICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEhlYWRlciB2YXJpYWJsZXMgLS0tLS0tLS0tLSAvL1xuXG4kaGVpZ2h0LW5hdi1zZWNvbmRhcnk6IDVyZW07XG4kd2lkdGgtbmF2LXNpZGViYXI6ICAgIDI1MHB4O1xuXG4vLyB6LWluZGV4ZXMgLSBUT0RPIHJlZmFjdG9yIHRvIGEgc2l0ZS13aWRlIHotaW5kZXggbWFuYWdlbWVudCBhcHByb2FjaFxuJHotaW5kZXgtaGVhZGVyOiAgNzAwMDtcbiR6LWluZGV4LW92ZXJsYXk6IDgwMDA7XG4kei1pbmRleC1uYXY6ICAgICA5MDAwO1xuXG4vLyBIZWFkZXIgLS0tLS0tLS0tLS0tLSAvL1xuXG4udXNhLWhlYWRlciB7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAkei1pbmRleC1oZWFkZXI7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItZ3JheS1saWdodGVyO1xuICB9XG5cbiAgYSB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgfVxuXG4gIC51c2Etc2VhcmNoIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBtYXgtd2lkdGg6IDIxLjVyZW07XG4gICAgfVxuICB9XG59XG5cbi51c2EtbG9nbyB7XG4gIGZsb2F0OiBsZWZ0O1xuICBsaW5lLWhlaWdodDogNHJlbTtcbiAgbWFyZ2luLWxlZnQ6IDEuNXJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgbGluZS1oZWlnaHQ6IDcuNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gIGEge1xuICAgIGNvbG9yOiAkY29sb3ItYmFzZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICBiciB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuXG4udXNhLWxvZ28tdGV4dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICRoNS1mb250LXNpemU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gIG1hcmdpbjogMDtcblxuICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAyLjRyZW07XG4gICAgbGluZS1oZWlnaHQ6ICRoZWFkaW5nLWxpbmUtaGVpZ2h0O1xuICB9XG59XG5cbi51c2EtbWVudS1idG4ge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1ibG9jay1uby1pZ25vcmVkLXByb3BlcnRpZXMgKi9cbiAgQGluY2x1ZGUgYnV0dG9uLXVuc3R5bGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgZGlzcGxheTogaW5saW5lO1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogJGg2LWZvbnQtc2l6ZTtcbiAgaGVpZ2h0OiA0cmVtO1xuICBsaW5lLWhlaWdodDogNHJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHdpZHRoOiA1LjhyZW07XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnktZGFya2VyO1xuICB9XG5cbiAgJjp2aXNpdGVkIHtcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICB9XG59XG5cbi51c2Etb3ZlcmxheSB7XG4gIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCAwKTtcbiAgYmFja2dyb3VuZDogJGNvbG9yLWJsYWNrO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZS1pbi1vdXQ7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogJHotaW5kZXgtb3ZlcmxheTtcblxuICAmLmlzLXZpc2libGUge1xuICAgIG9wYWNpdHk6IDAuMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG59XG5cbi8vIEJhc2ljIGhlYWRlciAtLS0tLS0tLS0tLSAvL1xuXG4udXNhLWhlYWRlci1iYXNpYyB7XG4gIC51c2EtbG9nbyB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbiAgfVxuXG4gIC51c2EtbmF2YmFyIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB3aWR0aDogMTglOyAvLyBUT0RPOiByZXZpZXcgdGhpcyBtb3JlXG4gICAgfVxuICB9XG59XG5cbi8vIEV4dGVuZGVkIGhlYWRlciAtLS0tLS0tLS0tLSAvL1xuXG4udXNhLWhlYWRlci1leHRlbmRlZCB7XG4gIC51c2EtaGVhZGVyIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC51c2EtbG9nbyB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKDNyZW0gbnVsbCk7XG4gICAgfVxuICB9XG5cbiAgZW0ge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgIGZvbnQtc2l6ZTogMy4ycmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuICB9XG5cbiAgLnVzYS1uYXZiYXIge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigkc2l0ZS1tYXgtd2lkdGgpO1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsICRzaXRlLW1hcmdpbnMpO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgLnVzYS1uYXYge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3ItZ3JheS1saWdodGVyO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLnVzYS1uYXYtaW5uZXIge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigkc2l0ZS1tYXgtd2lkdGgpO1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsICRzaXRlLW1hcmdpbnMgbnVsbCAxLjVyZW0pO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbiAgfVxuXG4gIC51c2EtbmF2LXByaW1hcnkge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cblxuICAgIGJ1dHRvbiB7XG4gICAgICAmW2FyaWEtZXhwYW5kZWQ9ZmFsc2VdLFxuICAgICAgJlthcmlhLWV4cGFuZGVkPXRydWVdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGUgKi9cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkgeyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZSAqL1xuICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDEuNXJlbSB0b3AgNTMlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnVzYS1uYXYtbGluayB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZygxLjhyZW0gbnVsbCk7XG4gICAgfVxuICB9XG5cbiAgLnVzYS1uYXYtc3VibWVudSB7XG4gICAgLnVzYS1ncmlkLWZ1bGwge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuMnJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudXNhLW1lZ2FtZW51IHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRzaXRlLW1hcmdpbnM7XG4gICAgfVxuICB9XG5cbiAgLy8gVGVtcCBjb2RlIGZvciB2MSB0byBmb3JjZSBzaG93IHRoZSBzZWFyY2ggYXQgbW9iaWxlLCBub3QgZGVrc3RvcFxuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1uby1pZCwgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICAqL1xuICAudXNhLXNlYXJjaCB7XG4gICAgJltoaWRkZW5dIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG4iLCIvLyBIZXJvIGZlYXR1cmVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi51c2EtaGVybyB7XG4gIEBpbmNsdWRlIHBhZGRpbmcoJHNpdGUtbWFyZ2lucyBudWxsKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9oZXJvLnBuZycpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cbiAgLnVzYS1idXR0b24ge1xuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gIH1cbn1cblxuLnVzYS1zZWN0aW9uLWRhcmsge1xuICAudXNhLWhlcm8tbGluayB7XG4gICAgY29sb3I6ICRjb2xvci1wcmltYXJ5LWFsdDtcbiAgfVxufVxuXG4udXNhLWhlcm8tY2FsbG91dCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1wcmltYXJ5LWRhcmtlc3Q7XG4gIHBhZGRpbmc6IDNyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgIG1heC13aWR0aDogMzByZW07XG4gIH1cblxuICA+ICo6Zmlyc3QtY2hpbGQge1xuICAgIEBpbmNsdWRlIG1hcmdpbigwIG51bGwgJHNwYWNpbmctbWVkaXVtIG51bGwpO1xuICB9XG59XG5cbi51c2EtaGVyby1jYWxsb3V0LWFsdCB7XG4gIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuIiwiLy8gRmxleGJveCBwb3NpdGlvbmluZyB0byBtb3ZlIHNpZGVuYXYgYmVsb3cgbWFpbiBjb250ZW50IG9uIHNtYWxsIHNjcmVlbnNcbi51c2EtbGF5b3V0LWRvY3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4pIHtcbiAgICBkaXNwbGF5OiBpbmhlcml0O1xuICB9XG5cbiAgLnVzYS1ncmlkIHtcbiAgICA+IDpmaXJzdC1jaGlsZDpub3QoLnVzYS13aWR0aC0qKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgID4gOmxhc3QtY2hpbGQ6bm90KC51c2Etd2lkdGgtKikge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cblxuLnVzYS1sYXlvdXQtZG9jcy1zaWRlbmF2IHtcbiAgb3JkZXI6IDI7XG59XG5cbi51c2EtbGF5b3V0LWRvY3MtbWFpbl9jb250ZW50IHtcbiAgbWFyZ2luLWJvdHRvbTogJHNpdGUtbWFyZ2lucztcbiAgb3JkZXI6IDE7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbikge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuIiwiQG1peGluIG1lZGlhLWJsb2NrLWltZygkbWFyZ2luLXJpZ2h0OiAxcmVtKSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW4tcmlnaHQ7XG59XG5cbi51c2EtbWVkaWFfYmxvY2staW1nIHtcbiAgQGluY2x1ZGUgbWVkaWEtYmxvY2staW1nO1xufVxuXG4udXNhLW1lZGlhX2Jsb2NrLWJvZHkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuIiwiLy8gSGVhZGVyIG5hdmlnYXRpb24gLS0tLS0tLS0tLS0tLSAvL1xuXG5AbWl4aW4gbmF2LWJvcmRlciB7XG4gIGJvcmRlci1ib3R0b206IDAuNHJlbSBzb2xpZCAkY29sb3ItcHJpbWFyeTtcbiAgcGFkZGluZy1ib3R0b206IDAuNnJlbTtcbn1cblxuQG1peGluIG5hdi1ib3JkZXItdGhpY2sge1xuICBib3JkZXItYm90dG9tOiAwLjdyZW0gc29saWQgJGNvbG9yLXByaW1hcnk7XG4gIHBhZGRpbmctYm90dG9tOiAwLjlyZW07XG59XG5cbi51c2EtbmF2YmFyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1ncmF5LWxpZ2h0O1xuICBoZWlnaHQ6IDRyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogNy44cmVtOyAvLyBYWFggbWFnaWMgbnVtYmVyXG4gIH1cbn1cblxuLnVzYS1uYXYtbGluayB7XG4gIEBpbmNsdWRlIGZvbnQtc21vb3RoaW5nO1xuXG4gICY6aG92ZXIge1xuICAgIHNwYW4ge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgICBAaW5jbHVkZSBuYXYtYm9yZGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYudXNhLWFjY29yZGlvbi1idXR0b24ge1xuICAgIHNwYW4ge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnVzYS1uYXYtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigkc2l0ZS1tYXgtd2lkdGgpO1xuICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAkc2l0ZS1tYXJnaW5zKTtcbiAgfVxufVxuXG4udXNhLW5hdiB7XG4gICRzbGlkaW5nLXBhbmVsLXdpZHRoOiAyNnJlbTtcblxuICBAa2V5ZnJhbWVzIHNsaWRlaW4tbGVmdCB7XG4gICAgZnJvbSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNsaWRpbmctcGFuZWwtd2lkdGgpO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgMCAwIDAgYXV0byk7XG4gIGJhY2tncm91bmQ6ICRjb2xvci13aGl0ZTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkY29sb3ItZ3JheS1saWdodDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBkaXNwbGF5OiBub25lO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiAycmVtO1xuICB3aWR0aDogJHNsaWRpbmctcGFuZWwtd2lkdGg7XG4gIHotaW5kZXg6ICR6LWluZGV4LW5hdjtcblxuICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZyg0LjVyZW0gMCAwIG51bGwpO1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cblxuICAmLmlzLXZpc2libGUge1xuICAgIGFuaW1hdGlvbjogc2xpZGVpbi1sZWZ0IDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gIG5hdiB7XG4gICAgbWFyZ2luLXRvcDogNnJlbTsgLy8gWFhYIG1hZ2ljIG51bWJlclxuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIC51c2EtY3VycmVudCB7XG4gICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAkY29sb3ItcHJpbWFyeTtcbiAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjRyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICBjb2xvcjogJGNvbG9yLWJhc2U7XG4gICAgfVxuICB9XG5cbiAgLnVzYS1idXR0b24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLnVzYS1zZWFyY2gge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW07IC8vIFhYWCBtYWdpYyBudW1iZXJcbiAgICAgIHRvcDogNHB4O1xuICAgIH1cbiAgfVxufVxuXG4vLyBQcmltYXJ5IG5hdmlnYXRpb24gLS0tLS0tLS0tLS0tLSAvL1xuXG4udXNhLW5hdi1wcmltYXJ5IHtcbiAgQGluY2x1ZGUgdXNhLXNpZGVuYXYtbGlzdDtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xuICBvcmRlcjogMjtcblxuICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICB9XG5cbiAgbGkge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgPiBsaSB7XG4gICAgd2lkdGg6IGF1dG87XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAvLyBtYXJnaW4tbGVmdDogLTRweDtcbiAgICB9XG5cbiAgICA+IGEge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKDEuM3JlbSAxLjVyZW0gMi4ycmVtIDEuNXJlbSk7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItZ3JheTtcbiAgICAgICAgZm9udC1zaXplOiAkaDUtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKDAuNzVyZW0gbnVsbCk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICAgIC8vIGNvbG9yOiAkY29sb3ItYmFzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBidXR0b24ge1xuICAgICRidXR0b24tdmVydGljYWwtb2Zmc2V0OiA0MCU7XG5cbiAgICBAaW5jbHVkZSBidXR0b24tdW5zdHlsZWQ7XG4gICAgQGluY2x1ZGUgZm9udC1zbW9vdGhpbmc7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIHBhZGRpbmc6IDAuODVyZW0gMS41cmVtIDAuODVyZW0gMS44cmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZygxLjNyZW0gMS41cmVtIDIuMnJlbSAxLjVyZW0pO1xuICAgICAgY29sb3I6ICRjb2xvci1ncmF5O1xuICAgICAgZm9udC1zaXplOiAkaDUtZm9udC1zaXplO1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIHdpZHRoOiBpbml0aWFsO1xuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgYm94LXNoYWRvdzogJGZvY3VzLW91dGxpbmU7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheS1saWdodGVzdDtcbiAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgLy8gY29sb3I6ICRjb2xvci1iYXNlO1xuICAgICAgfVxuICAgIH1cblxuICAgICZbYXJpYS1leHBhbmRlZD1mYWxzZV0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZSAqL1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9wbHVzLWFsdC5wbmcnKTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vcGx1cy1hbHQuc3ZnJyk7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMCBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDFyZW07XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9hbmdsZS1hcnJvdy1kb3duLnBuZycpO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L2FuZ2xlLWFycm93LWRvd24uc3ZnJyk7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDEuNXJlbSB0b3AgJGJ1dHRvbi12ZXJ0aWNhbC1vZmZzZXQ7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9hbmdsZS1hcnJvdy1kb3duLXByaW1hcnkucG5nJyk7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9hbmdsZS1hcnJvdy1kb3duLXByaW1hcnkuc3ZnJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZSAqL1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9taW51cy1hbHQucG5nJyk7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L21pbnVzLWFsdC5zdmcnKTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwIGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMXJlbTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItcHJpbWFyeS1kYXJrZXN0O1xuICAgICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L2FuZ2xlLWFycm93LWRvd24taG92ZXIucG5nJyk7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vYW5nbGUtYXJyb3ctZG93bi1ob3Zlci5zdmcnKTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMS41cmVtIHRvcCAkYnV0dG9uLXZlcnRpY2FsLW9mZnNldDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItcHJpbWFyeS1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgQGluY2x1ZGUgbmF2LWJvcmRlcjtcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgIGEudXNhLWN1cnJlbnQsXG4gICAgLnVzYS1jdXJyZW50IHsgLy8gc3R5bGVsaW50LWRpc2FibGUtbGluZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcbiAgICAgIC8vIHVuZG8gdGhlIHNpZGVuYXYgc3R5bGVcbiAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIG5hdi1ib3JkZXI7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItYmFzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gRXh0ZW5kZWQgaGVhZGVyIG5hdmlnYXRpb24gLS0tLS0tLSAvL1xuXG4udXNhLWhlYWRlci1leHRlbmRlZCB7XG4gIC51c2EtbmF2LWxpbmsge1xuICAgICY6aG92ZXIge1xuICAgICAgc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgICAgICBAaW5jbHVkZSBuYXYtYm9yZGVyLXRoaWNrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnVzYS1uYXYtcHJpbWFyeSB7XG4gICAgYnV0dG9uW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZSAqL1xuICAgICAgc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgICAgICBAaW5jbHVkZSBuYXYtYm9yZGVyLXRoaWNrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnVzYS1jdXJyZW50IHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgQGluY2x1ZGUgbmF2LWJvcmRlci10aGljaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBTZWNvbmRhcnkgbmF2aWdhdGlvbiAtLS0tLS0tLS0tLSAvL1xuXG4udXNhLW5hdi1zZWNvbmRhcnkge1xuICBtYXJnaW4tdG9wOiAxLjVyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAkc2l0ZS1tYXJnaW5zO1xuICAgIHRvcDogLTUuN3JlbTsgLy8gWFhYIG1hZ2ljIG51bWJlclxuICB9XG5cbiAgLnVzYS1zZWFyY2gge1xuICAgIEBpbmNsdWRlIG1hcmdpbigxLjVyZW0gbnVsbCAwIG51bGwpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKC0wLjlyZW0gbnVsbCAwIDApO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuICB9XG59XG5cbi51c2EtbmF2LXNlY29uZGFyeS1saW5rcyB7XG4gIG1hcmdpbi10b3A6IDIuNHJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gIGxpIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbiAgICB9XG5cbiAgICAmOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgICAgY29sb3I6ICRjb2xvci1ncmF5LWxpZ2h0ZXI7XG4gICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYSxcbiAgLnVzYS1oZWFkZXItc2VhcmNoLWJ1dHRvbiB7XG4gICAgY29sb3I6ICRjb2xvci1ncmF5O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6ICRoNS1mb250LXNpemU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cblxuICAudXNhLWhlYWRlci1zZWFyY2gtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBidXR0b24tdW5zdHlsZWQ7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vc2VhcmNoLWFsdC5wbmcnKTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vc2VhcmNoLWFsdC5zdmcnKTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMi4ycmVtO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZy1sZWZ0OiAyLjNyZW07XG4gICAgfVxuXG4gICAgJi5pcy1oaWRkZW4ge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICBhLnVzYS1jdXJyZW50IHsgLy8gc3R5bGVsaW50LWRpc2FibGUtbGluZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcbiAgICAgIC8vIHVuZG8gdGhlIHNpZGVuYXYgc3R5bGVcbiAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuXG4vLyBOYXZpZ2F0aW9uIHN1Ym1lbnUgKGRyb3Bkb3duIGFuZCBtZWdhIG1lbnUpIC0tLS0tIC8vXG5cbi51c2EtbmF2LXN1Ym1lbnUge1xuICBAaW5jbHVkZSB1c2Etc2lkZW5hdi1zdWJsaXN0O1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlZC1saXN0O1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoMC43NXJlbSBudWxsIDAuOXJlbSBudWxsKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItcHJpbWFyeS1kYXJrZXN0O1xuICAgIHdpZHRoOiAyMS41cmVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gICZbYXJpYS1oaWRkZW49dHJ1ZV0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICBhIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07IC8vIFhYWCBtYWdpYyBudW1iZXJcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnktZGFya2VzdDtcbiAgICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHRoaXMgdXNlZCB0byBiZSBuZWNlc3NhcnkgdG8gdW5kbyB0aGUgYHVzYS1zaWRlbmF2LXN1Ymxpc3RgXG4gICAgLy8gaW5jbHVkZSwgYWJvdmVcbiAgICAvLyAmOmhvdmVyLFxuICAgIC8vICYudXNhLWN1cnJlbnQgeyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZSAqL1xuICAgIC8vICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgIC8vICAgICBwYWRkaW5nLWxlZnQ6IDEuOHJlbTtcbiAgICAvLyAgIH1cbiAgICAvLyB9XG4gIH1cblxuICBsaSB7XG4gICAgZm9udC1zaXplOiAkaDUtZm9udC1zaXplO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8gTmF2aWdhdGlvbiBjbG9zZSBidXR0b24gLS0tLS0tLS0gLy9cblxuLnVzYS1uYXYtY2xvc2Uge1xuICBAaW5jbHVkZSBidXR0b24tdW5zdHlsZWQ7XG4gIEBpbmNsdWRlIG1hcmdpbigtMS4ycmVtIC0xLjVyZW0gMS41cmVtIGF1dG8pO1xuICBjb2xvcjogY3VycmVudENvbG9yO1xuICBmbG9hdDogcmlnaHQ7XG4gIGhlaWdodDogJGhpdC1hcmVhO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAkaGl0LWFyZWE7XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgaW1nIHtcbiAgICB3aWR0aDogMS4zcmVtO1xuICB9XG5cbiAgKyAqIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4udXNhLW1vYmlsZV9uYXYtYWN0aXZlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gTmF2aWdhdGlvbiBtZWdhIG1lbnUgLS0tLS0tLS0gLy9cblxuQG1peGluIG91dGVyLW1lZ2FtZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnktZGFya2VzdDtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwMCU7XG59XG5cbi51c2EtbWVnYW1lbnUge1xuICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZygzLjE1cmVtIG51bGwpOyAvLyBYWFggbWFnaWMgbnVtYmVyXG4gICAgLy8gWFhYIHRoaXMgaXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgMnJlbSBwYWRkaW5nLWxlZnRcbiAgICAvLyBvZiAudXNhLW5hdi1pbm5lciBhbmQgdGhlICRzaXRlLW1hcmdpbnMgKDNyZW0pIHBhZGRpbmctbGVmdFxuICAgIC8vIG9mIC51c2EtbWVnYW1lbnVcbiAgICBsZWZ0OiAtMXJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgQGluY2x1ZGUgb3V0ZXItbWVnYW1lbnU7XG4gICAgICByaWdodDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgQGluY2x1ZGUgb3V0ZXItbWVnYW1lbnU7XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4udXNhLWhlYWRlci1iYXNpYy1tZWdhbWVudSB7XG4gIC51c2EtbmF2IHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC51c2EtbmF2LWlubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIG1hcmdpbi10b3A6IC0zLjhyZW07XG4gICAgfVxuICB9XG5cbiAgLnVzYS1uYXYtc3VibWVudSB7XG4gICAgLnVzYS1ncmlkLWZ1bGwge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgICBtYXJnaW4tbGVmdDogLTEuOHJlbTsgLy8gWFhYIG1hZ2ljIG51bWJlclxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4udXNhLW1lZ2FtZW51LWNvbCB7XG4gIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMyk7XG5cbiAgICAmOm50aC1jaGlsZCgybikge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMpO1xuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDRuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgPiB1bCB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZWQtbGlzdDtcbiAgfVxufVxuIiwiJHVzYS1idG4tc21hbGwtd2lkdGg6ICAgNC41cmVtO1xuJHVzYS1idG4tbWVkaXVtLXdpZHRoOiAgOC41cmVtO1xuJHVzYS1idG4tYmlnLXdpZHRoOiAgICAgMTEuNnJlbTtcblxuQG1peGluIHNlYXJjaC1pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9zZWFyY2gucG5nJyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vc2VhcmNoLnN2ZycpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi51c2Etc2VhcmNoIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIFt0eXBlPXN1Ym1pdF0sXG4gIC51c2Etc2VhcmNoLXN1Ym1pdCB7XG4gICAgQGluY2x1ZGUgc2VhcmNoLWljb247XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgIGhlaWdodDogMy4zcmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAkdXNhLWJ0bi1zbWFsbC13aWR0aDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICB3aWR0aDogJHVzYS1idG4tbWVkaXVtLXdpZHRoO1xuICAgIH1cbiAgfVxuXG4gICYudXNhLXNlYXJjaC1iaWcge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgICRoZWlnaHQ6IDQuNHJlbTtcbiAgICAgICR3aWR0aDogJHVzYS1idG4tYmlnLXdpZHRoO1xuXG4gICAgICBbdHlwZT1zZWFyY2hdLFxuICAgICAgLnVzYS1zZWFyY2gtaW5wdXQge1xuICAgICAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gI3skd2lkdGh9KTtcbiAgICAgIH1cblxuICAgICAgW3R5cGU9c3VibWl0XSxcbiAgICAgIC51c2Etc2VhcmNoLXN1Ym1pdCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGgzLWZvbnQtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgICAgICB3aWR0aDogJHdpZHRoO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYudXNhLXNlYXJjaC1zbWFsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgJHdpZHRoOiAkdXNhLWJ0bi1zbWFsbC13aWR0aDtcblxuICAgICAgW3R5cGU9c2VhcmNoXSxcbiAgICAgIC51c2Etc2VhcmNoLWlucHV0IHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7JHdpZHRofSk7XG4gICAgICB9XG5cbiAgICAgIFt0eXBlPXN1Ym1pdF0sXG4gICAgICAudXNhLXNlYXJjaC1zdWJtaXQge1xuICAgICAgICBAaW5jbHVkZSBzZWFyY2gtaWNvbjtcbiAgICAgICAgd2lkdGg6ICR3aWR0aDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkbHQtbmF2LXdpZHRoOiAkbmF2LXdpZHRoIC0gMXB4O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGx0LW5hdi13aWR0aCkge1xuICAgICAgJi51c2Etc3Itb25seSB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gRXh0cmEgc3BlY2lmaWNpdHkgdG8gb3ZlcnJpZGUgcnVsZXMgc2V0IGluIHJlc2V0LmNzcy5cbmlucHV0W3R5cGU9c2VhcmNoXSB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cblt0eXBlPXNlYXJjaF0sXG4udXNhLXNlYXJjaC1pbnB1dCB7XG4gIEBpbmNsdWRlIHBhZGRpbmcoMCBudWxsKTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZsb2F0OiBsZWZ0O1xuICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gIGhlaWdodDogMy4zcmVtO1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyR1c2EtYnRuLXNtYWxsLXdpZHRofSk7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyR1c2EtYnRuLW1lZGl1bS13aWR0aH0pO1xuICB9XG59XG5cbi51c2Etc2VhcmNoLXN1Ym1pdC10ZXh0IHtcbiAgQGluY2x1ZGUgc3Itb25seTtcblxuICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgQGluY2x1ZGUgbm90LXNyLW9ubHkoKTtcbiAgfVxufVxuIiwiLnVzYS1zZWN0aW9uIHtcbiAgQGluY2x1ZGUgcGFkZGluZygkc2l0ZS1tYXJnaW5zIG51bGwpO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZyg2cmVtIG51bGwpO1xuICB9XG59XG5cbi51c2Etc2VjdGlvbi1saWdodCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmF5LWxpZ2h0ZXN0O1xufVxuXG4udXNhLXNlY3Rpb24tZGFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1wcmltYXJ5LWRhcmtlc3Q7XG4gIGNvbG9yOiAkY29sb3Itd2hpdGU7XG5cbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNiB7XG4gICAgY29sb3I6ICRjb2xvci1wcmltYXJ5LWFsdDtcbiAgfVxuXG4gIHAge1xuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gIH1cblxuICBhIHtcbiAgICBjb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICB9XG4gIH1cbn1cbiIsIlxuLnVzYS1zaWRlbmF2LWxpc3Qge1xuICBAaW5jbHVkZSB1c2Etc2lkZW5hdi1saXN0O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZDtcblxuICBAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuKSB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICB9XG5cbiAgLnVzYS1ncmlkICYge1xuICAgIEBpbmNsdWRlIG1hcmdpbihudWxsICgtJHNpdGUtbWFyZ2lucy1tb2JpbGUpIG51bGwgKC0kc2l0ZS1tYXJnaW5zLW1vYmlsZSkpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDApO1xuICAgIH1cbiAgfVxufVxuXG4udXNhLXNpZGVuYXYtc3ViX2xpc3Qge1xuICBAaW5jbHVkZSB1c2Etc2lkZW5hdi1zdWJsaXN0O1xufVxuXG4udXNhLWxheW91dC1kb2NzLXNpZGVuYXYge1xuICBwYWRkaW5nLXRvcDogMi40cmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4pIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgfVxufVxuIiwiLnVzYS1za2lwbmF2IHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAkY29sb3ItYmFzZTtcbiAgbGVmdDogMDtcbiAgcGFkZGluZzogMXJlbSAxLjVyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtNC4ycmVtO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgei1pbmRleDogMTAwO1xuXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci13aGl0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIG91dGxpbmU6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQ0FBLHFCQUFxQjtBc0dBckIsNEVBQTRFO0FBRTVFOzs7O0dBSUc7QUFFSCxBQUFBLElBQUksQ0FBQztFQUNILFdBQVcsRUFBRSxVQUFVO0VBQUUsT0FBTztFQUNoQyxvQkFBb0IsRUFBRSxJQUFJO0VBQUUsT0FBTztFQUNuQyx3QkFBd0IsRUFBRSxJQUFJO0VBQUUsT0FBTyxFQUN4Qzs7QUFFRDs7R0FFRztBQUVILEFBQUEsSUFBSSxDQUFDO0VBQ0gsTUFBTSxFQUFFLENBQUMsR0FDVjs7QUFFRDtnRkFDZ0Y7QUFFaEY7Ozs7O0dBS0c7QUFFSCxBQUFBLE9BQU87QUFDUCxLQUFLO0FBQ0wsT0FBTztBQUNQLFVBQVU7QUFDVixNQUFNO0FBQ04sTUFBTTtBQUNOLE1BQU07QUFDTixNQUFNO0FBQ04sSUFBSTtBQUNKLElBQUk7QUFDSixHQUFHO0FBQ0gsT0FBTztBQUNQLE9BQU8sQ0FBQztFQUNOLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7O0FBRUQ7OztHQUdHO0FBRUgsQUFBQSxLQUFLO0FBQ0wsTUFBTTtBQUNOLFFBQVE7QUFDUixLQUFLLENBQUM7RUFDSixPQUFPLEVBQUUsWUFBWTtFQUFFLE9BQU87RUFDOUIsY0FBYyxFQUFFLFFBQVE7RUFBRSxPQUFPLEVBQ2xDOztBQUVEOzs7R0FHRztB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 */
