@charset "UTF-8";
/* START: VENDOR */
/**
 * Foundation for Sites by ZURB
 * Version 6.3.1
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */
/* Document
       ========================================================================== */
/**
     * 1. Change the default font family in all browsers (opinionated).
     * 2. Correct the line height in all browsers.
     * 3. Prevent adjustments of font size after orientation changes in
     *    IE on Windows Phone and in iOS.
     */
@import url("../fonts/fontello/css/flo-icons.css");
@import url("../fonts/default/font.css");
html {
  font-family: sans-serif;
  /* 1 */
  line-height: 1.15;
  /* 2 */
  -ms-text-size-adjust: 100%;
  /* 3 */
  -webkit-text-size-adjust: 100%;
  /* 3 */ }

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

/**
     * Add the correct display in IE 9-.
     */
article,
aside,
footer,
header,
nav,
section {
  display: block; }

/**
     * Correct the font size and margin on `h1` elements within `section` and
     * `article` contexts in Chrome, Firefox, and Safari.
     */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/* Grouping content
       ========================================================================== */
/**
     * Add the correct display in IE 9-.
     */
figcaption,
figure {
  display: block; }

/**
     * Add the correct margin in IE 8.
     */
figure {
  margin: 1em 40px; }

/**
     * 1. Add the correct box sizing in Firefox.
     * 2. Show the overflow in Edge and IE.
     */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */ }

/**
     * Add the correct display in IE.
     */
main {
  display: block; }

/**
     * 1. Correct the inheritance and scaling of font size in all browsers.
     * 2. Correct the odd `em` font sizing in all browsers.
     */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */ }

/* Links
       ========================================================================== */
/**
     * 1. Remove the gray background on active links in IE 10.
     * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
     */
a {
  background-color: transparent;
  /* 1 */
  -webkit-text-decoration-skip: objects;
  /* 2 */ }

/**
     * Remove the outline on focused links when they are also active or hovered
     * in all browsers (opinionated).
     */
a:active,
a:hover {
  outline-width: 0; }

/* Text-level semantics
       ========================================================================== */
/**
     * 1. Remove the bottom border in Firefox 39-.
     * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
     */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  text-decoration: underline dotted;
  /* 2 */ }

/**
     * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
     */
b,
strong {
  font-weight: inherit; }

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

/**
     * 1. Correct the inheritance and scaling of font size in all browsers.
     * 2. Correct the odd `em` font sizing in all browsers.
     */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */ }

/**
     * Add the correct font style in Android 4.3-.
     */
dfn {
  font-style: italic; }

/**
     * Add the correct background and color in IE 9-.
     */
mark {
  background-color: #ff0;
  color: #000; }

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

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

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

/* Embedded content
       ========================================================================== */
/**
     * Add the correct display in IE 9-.
     */
audio,
video {
  display: inline-block; }

/**
     * Add the correct display in iOS 4-7.
     */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
     * Remove the border on images inside links in IE 10-.
     */
img {
  border-style: none; }

/**
     * Hide the overflow in IE.
     */
svg:not(:root) {
  overflow: hidden; }

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

/**
     * Show the overflow in IE.
     */
button {
  overflow: visible; }

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

/**
     * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
     *    controls in Android 4.
     * 2. Correct the inability to style clickable types in iOS and Safari.
     */
button,
html [type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
  /* 2 */ }

button,
[type="button"],
[type="reset"],
[type="submit"] {
  /**
       * Remove the inner border and padding in Firefox.
       */
  /**
       * Restore the focus styles unset by the previous rule.
       */ }
  button::-moz-focus-inner,
  [type="button"]::-moz-focus-inner,
  [type="reset"]::-moz-focus-inner,
  [type="submit"]::-moz-focus-inner {
    border-style: none;
    padding: 0; }
  button:-moz-focusring,
  [type="button"]:-moz-focusring,
  [type="reset"]:-moz-focusring,
  [type="submit"]:-moz-focusring {
    outline: 1px dotted ButtonText; }

/**
     * Show the overflow in Edge.
     */
input {
  overflow: visible; }

/**
     * 1. Add the correct box sizing in IE 10-.
     * 2. Remove the padding in IE 10-.
     */
[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
     * Correct the cursor style of increment and decrement buttons in Chrome.
     */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
     * 1. Correct the odd appearance in Chrome and Safari.
     * 2. Correct the outline style in Safari.
     */
[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
  /**
       * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
       */ }
  [type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration {
    -webkit-appearance: none; }

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

/**
     * Change the border, margin, and padding in all browsers (opinionated).
     */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/**
     * 1. Correct the text wrapping in Edge and IE.
     * 2. Correct the color inheritance from `fieldset` elements in IE.
     * 3. Remove the padding so developers are not caught out when they zero out
     *    `fieldset` elements in all browsers.
     */
legend {
  box-sizing: border-box;
  /* 1 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  color: inherit;
  /* 2 */
  white-space: normal;
  /* 1 */ }

/**
     * 1. Add the correct display in IE 9-.
     * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
     */
progress {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

/**
     * Remove the default vertical scrollbar in IE.
     */
textarea {
  overflow: auto; }

/* Interactive
       ========================================================================== */
/*
     * Add the correct display in Edge, IE, and Firefox.
     */
details {
  display: block; }

/*
     * Add the correct display in all browsers.
     */
summary {
  display: list-item; }

/*
     * Add the correct display in IE 9-.
     */
menu {
  display: block; }

/* Scripting
       ========================================================================== */
/**
     * Add the correct display in IE 9-.
     */
canvas {
  display: inline-block; }

/**
     * Add the correct display in IE.
     */
template {
  display: none; }

/* Hidden
       ========================================================================== */
/**
     * Add the correct display in IE 10-.
     */
[hidden] {
  display: none; }

.foundation-mq {
  font-family: "small=0em&medium=48em&large=64.0625em&xlarge=75em&xxlarge=90em"; }

html {
  box-sizing: border-box;
  font-size: 100%; }

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

body {
  margin: 0;
  padding: 0;
  background: #fefefe;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  height: auto;
  -ms-interpolation-mode: bicubic; }

textarea {
  height: auto;
  min-height: 50px;
  border-radius: 0; }

select {
  box-sizing: border-box;
  width: 100%;
  border-radius: 0; }

.map_canvas img,
.map_canvas embed,
.map_canvas object,
.mqa-display img,
.mqa-display embed,
.mqa-display object {
  max-width: none !important; }

button {
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  line-height: 1; }
  [data-whatinput='mouse'] button {
    outline: 0; }

pre {
  overflow: auto; }

.is-visible {
  display: block !important; }

.is-hidden {
  display: none !important; }

.row {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto; }
  .row::before, .row::after {
    display: table;
    content: ' '; }
  .row::after {
    clear: both; }
  .row.collapse > .column, .row.collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .row .row {
    margin-right: -0.625rem;
    margin-left: -0.625rem; }
    @media print, screen and (min-width: 48em) {
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    @media print, screen and (min-width: 64.0625em) {
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    .row .row.collapse {
      margin-right: 0;
      margin-left: 0; }
  .row.expanded {
    max-width: none; }
    .row.expanded .row {
      margin-right: auto;
      margin-left: auto; }
  .row:not(.expanded) .row {
    max-width: none; }
  .row.gutter-small > .column, .row.gutter-small > .columns {
    padding-right: 0.625rem;
    padding-left: 0.625rem; }
  .row.gutter-medium > .column, .row.gutter-medium > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }

.column, .columns {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem; }
  @media print, screen and (min-width: 48em) {
    .column, .columns {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {
    float: right; }
  .column.end:last-child:last-child, .end.columns:last-child:last-child {
    float: left; }

.column.row.row, .row.row.columns {
  float: none; }

.row .column.row.row, .row .row.row.columns {
  margin-right: 0;
  margin-left: 0;
  padding-right: 0;
  padding-left: 0; }

.small-1 {
  width: 8.33333%; }

.small-push-1 {
  position: relative;
  left: 8.33333%; }

.small-pull-1 {
  position: relative;
  left: -8.33333%; }

.small-offset-0 {
  margin-left: 0%; }

.small-2 {
  width: 16.66667%; }

.small-push-2 {
  position: relative;
  left: 16.66667%; }

.small-pull-2 {
  position: relative;
  left: -16.66667%; }

.small-offset-1 {
  margin-left: 8.33333%; }

.small-3 {
  width: 25%; }

.small-push-3 {
  position: relative;
  left: 25%; }

.small-pull-3 {
  position: relative;
  left: -25%; }

.small-offset-2 {
  margin-left: 16.66667%; }

.small-4 {
  width: 33.33333%; }

.small-push-4 {
  position: relative;
  left: 33.33333%; }

.small-pull-4 {
  position: relative;
  left: -33.33333%; }

.small-offset-3 {
  margin-left: 25%; }

.small-5 {
  width: 41.66667%; }

.small-push-5 {
  position: relative;
  left: 41.66667%; }

.small-pull-5 {
  position: relative;
  left: -41.66667%; }

.small-offset-4 {
  margin-left: 33.33333%; }

.small-6 {
  width: 50%; }

.small-push-6 {
  position: relative;
  left: 50%; }

.small-pull-6 {
  position: relative;
  left: -50%; }

.small-offset-5 {
  margin-left: 41.66667%; }

.small-7 {
  width: 58.33333%; }

.small-push-7 {
  position: relative;
  left: 58.33333%; }

.small-pull-7 {
  position: relative;
  left: -58.33333%; }

.small-offset-6 {
  margin-left: 50%; }

.small-8 {
  width: 66.66667%; }

.small-push-8 {
  position: relative;
  left: 66.66667%; }

.small-pull-8 {
  position: relative;
  left: -66.66667%; }

.small-offset-7 {
  margin-left: 58.33333%; }

.small-9 {
  width: 75%; }

.small-push-9 {
  position: relative;
  left: 75%; }

.small-pull-9 {
  position: relative;
  left: -75%; }

.small-offset-8 {
  margin-left: 66.66667%; }

.small-10 {
  width: 83.33333%; }

.small-push-10 {
  position: relative;
  left: 83.33333%; }

.small-pull-10 {
  position: relative;
  left: -83.33333%; }

.small-offset-9 {
  margin-left: 75%; }

.small-11 {
  width: 91.66667%; }

.small-push-11 {
  position: relative;
  left: 91.66667%; }

.small-pull-11 {
  position: relative;
  left: -91.66667%; }

.small-offset-10 {
  margin-left: 83.33333%; }

.small-12 {
  width: 100%; }

.small-offset-11 {
  margin-left: 91.66667%; }

.small-up-1 > .column, .small-up-1 > .columns {
  float: left;
  width: 100%; }
  .small-up-1 > .column:nth-of-type(1n), .small-up-1 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-1 > .column:nth-of-type(1n+1), .small-up-1 > .columns:nth-of-type(1n+1) {
    clear: both; }
  .small-up-1 > .column:last-child, .small-up-1 > .columns:last-child {
    float: left; }

.small-up-2 > .column, .small-up-2 > .columns {
  float: left;
  width: 50%; }
  .small-up-2 > .column:nth-of-type(1n), .small-up-2 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-2 > .column:nth-of-type(2n+1), .small-up-2 > .columns:nth-of-type(2n+1) {
    clear: both; }
  .small-up-2 > .column:last-child, .small-up-2 > .columns:last-child {
    float: left; }

.small-up-3 > .column, .small-up-3 > .columns {
  float: left;
  width: 33.33333%; }
  .small-up-3 > .column:nth-of-type(1n), .small-up-3 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-3 > .column:nth-of-type(3n+1), .small-up-3 > .columns:nth-of-type(3n+1) {
    clear: both; }
  .small-up-3 > .column:last-child, .small-up-3 > .columns:last-child {
    float: left; }

.small-up-4 > .column, .small-up-4 > .columns {
  float: left;
  width: 25%; }
  .small-up-4 > .column:nth-of-type(1n), .small-up-4 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-4 > .column:nth-of-type(4n+1), .small-up-4 > .columns:nth-of-type(4n+1) {
    clear: both; }
  .small-up-4 > .column:last-child, .small-up-4 > .columns:last-child {
    float: left; }

.small-up-5 > .column, .small-up-5 > .columns {
  float: left;
  width: 20%; }
  .small-up-5 > .column:nth-of-type(1n), .small-up-5 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-5 > .column:nth-of-type(5n+1), .small-up-5 > .columns:nth-of-type(5n+1) {
    clear: both; }
  .small-up-5 > .column:last-child, .small-up-5 > .columns:last-child {
    float: left; }

.small-up-6 > .column, .small-up-6 > .columns {
  float: left;
  width: 16.66667%; }
  .small-up-6 > .column:nth-of-type(1n), .small-up-6 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-6 > .column:nth-of-type(6n+1), .small-up-6 > .columns:nth-of-type(6n+1) {
    clear: both; }
  .small-up-6 > .column:last-child, .small-up-6 > .columns:last-child {
    float: left; }

.small-up-7 > .column, .small-up-7 > .columns {
  float: left;
  width: 14.28571%; }
  .small-up-7 > .column:nth-of-type(1n), .small-up-7 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-7 > .column:nth-of-type(7n+1), .small-up-7 > .columns:nth-of-type(7n+1) {
    clear: both; }
  .small-up-7 > .column:last-child, .small-up-7 > .columns:last-child {
    float: left; }

.small-up-8 > .column, .small-up-8 > .columns {
  float: left;
  width: 12.5%; }
  .small-up-8 > .column:nth-of-type(1n), .small-up-8 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-8 > .column:nth-of-type(8n+1), .small-up-8 > .columns:nth-of-type(8n+1) {
    clear: both; }
  .small-up-8 > .column:last-child, .small-up-8 > .columns:last-child {
    float: left; }

.small-collapse > .column, .small-collapse > .columns {
  padding-right: 0;
  padding-left: 0; }

.small-collapse .row {
  margin-right: 0;
  margin-left: 0; }

.expanded.row .small-collapse.row {
  margin-right: 0;
  margin-left: 0; }

.small-uncollapse > .column, .small-uncollapse > .columns {
  padding-right: 0.625rem;
  padding-left: 0.625rem; }

.small-centered {
  margin-right: auto;
  margin-left: auto; }
  .small-centered, .small-centered:last-child:not(:first-child) {
    float: none;
    clear: both; }

.small-uncentered,
.small-push-0,
.small-pull-0 {
  position: static;
  float: left;
  margin-right: 0;
  margin-left: 0; }

@media print, screen and (min-width: 48em) {
  .medium-1 {
    width: 8.33333%; }
  .medium-push-1 {
    position: relative;
    left: 8.33333%; }
  .medium-pull-1 {
    position: relative;
    left: -8.33333%; }
  .medium-offset-0 {
    margin-left: 0%; }
  .medium-2 {
    width: 16.66667%; }
  .medium-push-2 {
    position: relative;
    left: 16.66667%; }
  .medium-pull-2 {
    position: relative;
    left: -16.66667%; }
  .medium-offset-1 {
    margin-left: 8.33333%; }
  .medium-3 {
    width: 25%; }
  .medium-push-3 {
    position: relative;
    left: 25%; }
  .medium-pull-3 {
    position: relative;
    left: -25%; }
  .medium-offset-2 {
    margin-left: 16.66667%; }
  .medium-4 {
    width: 33.33333%; }
  .medium-push-4 {
    position: relative;
    left: 33.33333%; }
  .medium-pull-4 {
    position: relative;
    left: -33.33333%; }
  .medium-offset-3 {
    margin-left: 25%; }
  .medium-5 {
    width: 41.66667%; }
  .medium-push-5 {
    position: relative;
    left: 41.66667%; }
  .medium-pull-5 {
    position: relative;
    left: -41.66667%; }
  .medium-offset-4 {
    margin-left: 33.33333%; }
  .medium-6 {
    width: 50%; }
  .medium-push-6 {
    position: relative;
    left: 50%; }
  .medium-pull-6 {
    position: relative;
    left: -50%; }
  .medium-offset-5 {
    margin-left: 41.66667%; }
  .medium-7 {
    width: 58.33333%; }
  .medium-push-7 {
    position: relative;
    left: 58.33333%; }
  .medium-pull-7 {
    position: relative;
    left: -58.33333%; }
  .medium-offset-6 {
    margin-left: 50%; }
  .medium-8 {
    width: 66.66667%; }
  .medium-push-8 {
    position: relative;
    left: 66.66667%; }
  .medium-pull-8 {
    position: relative;
    left: -66.66667%; }
  .medium-offset-7 {
    margin-left: 58.33333%; }
  .medium-9 {
    width: 75%; }
  .medium-push-9 {
    position: relative;
    left: 75%; }
  .medium-pull-9 {
    position: relative;
    left: -75%; }
  .medium-offset-8 {
    margin-left: 66.66667%; }
  .medium-10 {
    width: 83.33333%; }
  .medium-push-10 {
    position: relative;
    left: 83.33333%; }
  .medium-pull-10 {
    position: relative;
    left: -83.33333%; }
  .medium-offset-9 {
    margin-left: 75%; }
  .medium-11 {
    width: 91.66667%; }
  .medium-push-11 {
    position: relative;
    left: 91.66667%; }
  .medium-pull-11 {
    position: relative;
    left: -91.66667%; }
  .medium-offset-10 {
    margin-left: 83.33333%; }
  .medium-12 {
    width: 100%; }
  .medium-offset-11 {
    margin-left: 91.66667%; }
  .medium-up-1 > .column, .medium-up-1 > .columns {
    float: left;
    width: 100%; }
    .medium-up-1 > .column:nth-of-type(1n), .medium-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-1 > .column:nth-of-type(1n+1), .medium-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .medium-up-1 > .column:last-child, .medium-up-1 > .columns:last-child {
      float: left; }
  .medium-up-2 > .column, .medium-up-2 > .columns {
    float: left;
    width: 50%; }
    .medium-up-2 > .column:nth-of-type(1n), .medium-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-2 > .column:nth-of-type(2n+1), .medium-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .medium-up-2 > .column:last-child, .medium-up-2 > .columns:last-child {
      float: left; }
  .medium-up-3 > .column, .medium-up-3 > .columns {
    float: left;
    width: 33.33333%; }
    .medium-up-3 > .column:nth-of-type(1n), .medium-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-3 > .column:nth-of-type(3n+1), .medium-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .medium-up-3 > .column:last-child, .medium-up-3 > .columns:last-child {
      float: left; }
  .medium-up-4 > .column, .medium-up-4 > .columns {
    float: left;
    width: 25%; }
    .medium-up-4 > .column:nth-of-type(1n), .medium-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-4 > .column:nth-of-type(4n+1), .medium-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .medium-up-4 > .column:last-child, .medium-up-4 > .columns:last-child {
      float: left; }
  .medium-up-5 > .column, .medium-up-5 > .columns {
    float: left;
    width: 20%; }
    .medium-up-5 > .column:nth-of-type(1n), .medium-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-5 > .column:nth-of-type(5n+1), .medium-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .medium-up-5 > .column:last-child, .medium-up-5 > .columns:last-child {
      float: left; }
  .medium-up-6 > .column, .medium-up-6 > .columns {
    float: left;
    width: 16.66667%; }
    .medium-up-6 > .column:nth-of-type(1n), .medium-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-6 > .column:nth-of-type(6n+1), .medium-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .medium-up-6 > .column:last-child, .medium-up-6 > .columns:last-child {
      float: left; }
  .medium-up-7 > .column, .medium-up-7 > .columns {
    float: left;
    width: 14.28571%; }
    .medium-up-7 > .column:nth-of-type(1n), .medium-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-7 > .column:nth-of-type(7n+1), .medium-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .medium-up-7 > .column:last-child, .medium-up-7 > .columns:last-child {
      float: left; }
  .medium-up-8 > .column, .medium-up-8 > .columns {
    float: left;
    width: 12.5%; }
    .medium-up-8 > .column:nth-of-type(1n), .medium-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-8 > .column:nth-of-type(8n+1), .medium-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .medium-up-8 > .column:last-child, .medium-up-8 > .columns:last-child {
      float: left; }
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .medium-collapse .row {
    margin-right: 0;
    margin-left: 0; }
  .expanded.row .medium-collapse.row {
    margin-right: 0;
    margin-left: 0; }
  .medium-uncollapse > .column, .medium-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }
  .medium-centered {
    margin-right: auto;
    margin-left: auto; }
    .medium-centered, .medium-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .medium-uncentered,
  .medium-push-0,
  .medium-pull-0 {
    position: static;
    float: left;
    margin-right: 0;
    margin-left: 0; } }

@media print, screen and (min-width: 64.0625em) {
  .large-1 {
    width: 8.33333%; }
  .large-push-1 {
    position: relative;
    left: 8.33333%; }
  .large-pull-1 {
    position: relative;
    left: -8.33333%; }
  .large-offset-0 {
    margin-left: 0%; }
  .large-2 {
    width: 16.66667%; }
  .large-push-2 {
    position: relative;
    left: 16.66667%; }
  .large-pull-2 {
    position: relative;
    left: -16.66667%; }
  .large-offset-1 {
    margin-left: 8.33333%; }
  .large-3 {
    width: 25%; }
  .large-push-3 {
    position: relative;
    left: 25%; }
  .large-pull-3 {
    position: relative;
    left: -25%; }
  .large-offset-2 {
    margin-left: 16.66667%; }
  .large-4 {
    width: 33.33333%; }
  .large-push-4 {
    position: relative;
    left: 33.33333%; }
  .large-pull-4 {
    position: relative;
    left: -33.33333%; }
  .large-offset-3 {
    margin-left: 25%; }
  .large-5 {
    width: 41.66667%; }
  .large-push-5 {
    position: relative;
    left: 41.66667%; }
  .large-pull-5 {
    position: relative;
    left: -41.66667%; }
  .large-offset-4 {
    margin-left: 33.33333%; }
  .large-6 {
    width: 50%; }
  .large-push-6 {
    position: relative;
    left: 50%; }
  .large-pull-6 {
    position: relative;
    left: -50%; }
  .large-offset-5 {
    margin-left: 41.66667%; }
  .large-7 {
    width: 58.33333%; }
  .large-push-7 {
    position: relative;
    left: 58.33333%; }
  .large-pull-7 {
    position: relative;
    left: -58.33333%; }
  .large-offset-6 {
    margin-left: 50%; }
  .large-8 {
    width: 66.66667%; }
  .large-push-8 {
    position: relative;
    left: 66.66667%; }
  .large-pull-8 {
    position: relative;
    left: -66.66667%; }
  .large-offset-7 {
    margin-left: 58.33333%; }
  .large-9 {
    width: 75%; }
  .large-push-9 {
    position: relative;
    left: 75%; }
  .large-pull-9 {
    position: relative;
    left: -75%; }
  .large-offset-8 {
    margin-left: 66.66667%; }
  .large-10 {
    width: 83.33333%; }
  .large-push-10 {
    position: relative;
    left: 83.33333%; }
  .large-pull-10 {
    position: relative;
    left: -83.33333%; }
  .large-offset-9 {
    margin-left: 75%; }
  .large-11 {
    width: 91.66667%; }
  .large-push-11 {
    position: relative;
    left: 91.66667%; }
  .large-pull-11 {
    position: relative;
    left: -91.66667%; }
  .large-offset-10 {
    margin-left: 83.33333%; }
  .large-12 {
    width: 100%; }
  .large-offset-11 {
    margin-left: 91.66667%; }
  .large-up-1 > .column, .large-up-1 > .columns {
    float: left;
    width: 100%; }
    .large-up-1 > .column:nth-of-type(1n), .large-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-1 > .column:nth-of-type(1n+1), .large-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .large-up-1 > .column:last-child, .large-up-1 > .columns:last-child {
      float: left; }
  .large-up-2 > .column, .large-up-2 > .columns {
    float: left;
    width: 50%; }
    .large-up-2 > .column:nth-of-type(1n), .large-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-2 > .column:nth-of-type(2n+1), .large-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .large-up-2 > .column:last-child, .large-up-2 > .columns:last-child {
      float: left; }
  .large-up-3 > .column, .large-up-3 > .columns {
    float: left;
    width: 33.33333%; }
    .large-up-3 > .column:nth-of-type(1n), .large-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-3 > .column:nth-of-type(3n+1), .large-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .large-up-3 > .column:last-child, .large-up-3 > .columns:last-child {
      float: left; }
  .large-up-4 > .column, .large-up-4 > .columns {
    float: left;
    width: 25%; }
    .large-up-4 > .column:nth-of-type(1n), .large-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-4 > .column:nth-of-type(4n+1), .large-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .large-up-4 > .column:last-child, .large-up-4 > .columns:last-child {
      float: left; }
  .large-up-5 > .column, .large-up-5 > .columns {
    float: left;
    width: 20%; }
    .large-up-5 > .column:nth-of-type(1n), .large-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-5 > .column:nth-of-type(5n+1), .large-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .large-up-5 > .column:last-child, .large-up-5 > .columns:last-child {
      float: left; }
  .large-up-6 > .column, .large-up-6 > .columns {
    float: left;
    width: 16.66667%; }
    .large-up-6 > .column:nth-of-type(1n), .large-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-6 > .column:nth-of-type(6n+1), .large-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .large-up-6 > .column:last-child, .large-up-6 > .columns:last-child {
      float: left; }
  .large-up-7 > .column, .large-up-7 > .columns {
    float: left;
    width: 14.28571%; }
    .large-up-7 > .column:nth-of-type(1n), .large-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-7 > .column:nth-of-type(7n+1), .large-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .large-up-7 > .column:last-child, .large-up-7 > .columns:last-child {
      float: left; }
  .large-up-8 > .column, .large-up-8 > .columns {
    float: left;
    width: 12.5%; }
    .large-up-8 > .column:nth-of-type(1n), .large-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-8 > .column:nth-of-type(8n+1), .large-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .large-up-8 > .column:last-child, .large-up-8 > .columns:last-child {
      float: left; }
  .large-collapse > .column, .large-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .large-collapse .row {
    margin-right: 0;
    margin-left: 0; }
  .expanded.row .large-collapse.row {
    margin-right: 0;
    margin-left: 0; }
  .large-uncollapse > .column, .large-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }
  .large-centered {
    margin-right: auto;
    margin-left: auto; }
    .large-centered, .large-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .large-uncentered,
  .large-push-0,
  .large-pull-0 {
    position: static;
    float: left;
    margin-right: 0;
    margin-left: 0; } }

.column-block {
  margin-bottom: 1.25rem; }
  .column-block > :last-child {
    margin-bottom: 0; }
  @media print, screen and (min-width: 48em) {
    .column-block {
      margin-bottom: 1.875rem; }
      .column-block > :last-child {
        margin-bottom: 0; } }

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0; }

p {
  margin-bottom: 1rem;
  font-size: inherit;
  line-height: 1.6;
  text-rendering: optimizeLegibility; }

em,
i {
  font-style: italic;
  line-height: inherit; }

strong,
b {
  font-weight: bold;
  line-height: inherit; }

small {
  font-size: 80%;
  line-height: inherit; }

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  color: inherit;
  text-rendering: optimizeLegibility; }
  h1 small,
  h2 small,
  h3 small,
  h4 small,
  h5 small,
  h6 small {
    line-height: 0;
    color: #cacaca; }

h1 {
  font-size: 1.5rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h2 {
  font-size: 1.25rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h3 {
  font-size: 1.1875rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h4 {
  font-size: 1.125rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h5 {
  font-size: 1.0625rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h6 {
  font-size: 1rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

@media print, screen and (min-width: 48em) {
  h1 {
    font-size: 3rem; }
  h2 {
    font-size: 2.5rem; }
  h3 {
    font-size: 1.9375rem; }
  h4 {
    font-size: 1.5625rem; }
  h5 {
    font-size: 1.25rem; }
  h6 {
    font-size: 1rem; } }

a {
  line-height: inherit;
  color: #1779ba;
  text-decoration: none;
  cursor: pointer; }
  a:hover, a:focus {
    color: #1468a0; }
  a img {
    border: 0; }

hr {
  clear: both;
  max-width: 75rem;
  height: 0;
  margin: 1.25rem auto;
  border-top: 0;
  border-right: 0;
  border-bottom: 1px solid #cacaca;
  border-left: 0; }

ul,
ol,
dl {
  margin-bottom: 1rem;
  list-style-position: outside;
  line-height: 1.6; }

li {
  font-size: inherit; }

ul {
  margin-left: 1.25rem;
  list-style-type: disc; }

ol {
  margin-left: 1.25rem; }

ul ul, ol ul, ul ol, ol ol {
  margin-left: 1.25rem;
  margin-bottom: 0; }

dl {
  margin-bottom: 1rem; }
  dl dt {
    margin-bottom: 0.3rem;
    font-weight: bold; }

blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #cacaca; }
  blockquote, blockquote p {
    line-height: 1.6;
    color: #8a8a8a; }

cite {
  display: block;
  font-size: 0.8125rem;
  color: #8a8a8a; }
  cite:before {
    content: "— "; }

abbr {
  border-bottom: 1px dotted #0a0a0a;
  color: #0a0a0a;
  cursor: help; }

figure {
  margin: 0; }

code {
  padding: 0.125rem 0.3125rem 0.0625rem;
  border: 1px solid #cacaca;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #0a0a0a; }

kbd {
  margin: 0;
  padding: 0.125rem 0.25rem 0;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  color: #0a0a0a; }

.subheader {
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  font-weight: normal;
  line-height: 1.4;
  color: #8a8a8a; }

.lead {
  font-size: 125%;
  line-height: 1.6; }

.stat {
  font-size: 2.5rem;
  line-height: 1; }
  p + .stat {
    margin-top: -1rem; }

.no-bullet {
  margin-left: 0;
  list-style: none; }

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

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

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

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

@media print, screen and (min-width: 48em) {
  .medium-text-left {
    text-align: left; }
  .medium-text-right {
    text-align: right; }
  .medium-text-center {
    text-align: center; }
  .medium-text-justify {
    text-align: justify; } }

@media print, screen and (min-width: 64.0625em) {
  .large-text-left {
    text-align: left; }
  .large-text-right {
    text-align: right; }
  .large-text-center {
    text-align: center; }
  .large-text-justify {
    text-align: justify; } }

.show-for-print {
  display: none !important; }

@media print {
  * {
    background: transparent !important;
    box-shadow: none !important;
    color: black !important;
    text-shadow: none !important; }
  .show-for-print {
    display: block !important; }
  .hide-for-print {
    display: none !important; }
  table.show-for-print {
    display: table !important; }
  thead.show-for-print {
    display: table-header-group !important; }
  tbody.show-for-print {
    display: table-row-group !important; }
  tr.show-for-print {
    display: table-row !important; }
  td.show-for-print {
    display: table-cell !important; }
  th.show-for-print {
    display: table-cell !important; }
  a,
  a:visited {
    text-decoration: underline; }
  a[href]:after {
    content: " (" attr(href) ")"; }
  .ir a:after,
  a[href^='javascript:']:after,
  a[href^='#']:after {
    content: ''; }
  abbr[title]:after {
    content: " (" attr(title) ")"; }
  pre,
  blockquote {
    border: 1px solid #8a8a8a;
    page-break-inside: avoid; }
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  @page {
    margin: 0.5cm; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; } }

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  color: #0a0a0a;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }
  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
  textarea:focus {
    outline: none;
    border: 1px solid #8a8a8a;
    background-color: #fefefe;
    box-shadow: 0 0 5px #cacaca;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }

textarea {
  max-width: 100%; }
  textarea[rows] {
    height: auto; }

input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
  color: #cacaca; }

input::-moz-placeholder,
textarea::-moz-placeholder {
  color: #cacaca; }

input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: #cacaca; }

input::placeholder,
textarea::placeholder {
  color: #cacaca; }

input:disabled, input[readonly],
textarea:disabled,
textarea[readonly] {
  background-color: #e6e6e6;
  cursor: not-allowed; }

[type='submit'],
[type='button'] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border-radius: 0; }

input[type='search'] {
  box-sizing: border-box; }

[type='file'],
[type='checkbox'],
[type='radio'] {
  margin: 0 0 1rem; }

[type='checkbox'] + label,
[type='radio'] + label {
  display: inline-block;
  vertical-align: baseline;
  margin-left: 0.5rem;
  margin-right: 1rem;
  margin-bottom: 0; }
  [type='checkbox'] + label[for],
  [type='radio'] + label[for] {
    cursor: pointer; }

label > [type='checkbox'],
label > [type='radio'] {
  margin-right: 0.5rem; }

[type='file'] {
  width: 100%; }

label {
  display: block;
  margin: 0;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.8;
  color: #0a0a0a; }
  label.middle {
    margin: 0 0 1rem;
    padding: 0.5625rem 0; }

.help-text {
  margin-top: -0.5rem;
  font-size: 0.8125rem;
  font-style: italic;
  color: #0a0a0a; }

.input-group {
  display: table;
  width: 100%;
  margin-bottom: 1rem; }
  .input-group > :first-child {
    border-radius: 0 0 0 0; }
  .input-group > :last-child > * {
    border-radius: 0 0 0 0; }

.input-group-label, .input-group-field, .input-group-button, .input-group-button a,
.input-group-button input,
.input-group-button button,
.input-group-button label {
  margin: 0;
  white-space: nowrap;
  display: table-cell;
  vertical-align: middle; }

.input-group-label {
  padding: 0 1rem;
  border: 1px solid #cacaca;
  background: #e6e6e6;
  color: #0a0a0a;
  text-align: center;
  white-space: nowrap;
  width: 1%;
  height: 100%; }
  .input-group-label:first-child {
    border-right: 0; }
  .input-group-label:last-child {
    border-left: 0; }

.input-group-field {
  border-radius: 0;
  height: 2.5rem; }

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  width: 1%;
  height: 100%; }
  .input-group-button a,
  .input-group-button input,
  .input-group-button button,
  .input-group-button label {
    height: 2.5rem;
    padding-top: 0;
    padding-bottom: 0;
    font-size: 1rem; }

.input-group .input-group-button {
  display: table-cell; }

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

legend {
  max-width: 100%;
  margin-bottom: 0.5rem; }

.fieldset {
  margin: 1.125rem 0;
  padding: 1.25rem;
  border: 1px solid #cacaca; }
  .fieldset legend {
    margin: 0;
    margin-left: -0.1875rem;
    padding: 0 0.1875rem;
    background: #fefefe; }

select {
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  font-family: inherit;
  font-size: 1rem;
  line-height: normal;
  color: #0a0a0a;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>");
  background-origin: content-box;
  background-position: right -1rem center;
  background-repeat: no-repeat;
  background-size: 9px 6px;
  padding-right: 1.5rem;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }
  @media screen and (min-width: 0\0) {
    select {
      background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg=="); } }
  select:focus {
    outline: none;
    border: 1px solid #8a8a8a;
    background-color: #fefefe;
    box-shadow: 0 0 5px #cacaca;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }
  select:disabled {
    background-color: #e6e6e6;
    cursor: not-allowed; }
  select::-ms-expand {
    display: none; }
  select[multiple] {
    height: auto;
    background-image: none; }

.is-invalid-input:not(:focus) {
  border-color: #cc4b37;
  background-color: #f9ecea; }
  .is-invalid-input:not(:focus)::-webkit-input-placeholder {
    color: #cc4b37; }
  .is-invalid-input:not(:focus)::-moz-placeholder {
    color: #cc4b37; }
  .is-invalid-input:not(:focus):-ms-input-placeholder {
    color: #cc4b37; }
  .is-invalid-input:not(:focus)::placeholder {
    color: #cc4b37; }

.is-invalid-label {
  color: #cc4b37; }

.form-error {
  display: none;
  margin-top: -0.5rem;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: bold;
  color: #cc4b37; }
  .form-error.is-visible {
    display: block; }

.button {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 1rem 0;
  padding: 0.85em 1em;
  -webkit-appearance: none;
  border: 1px solid transparent;
  border-radius: 0;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-size: 0.9rem;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  background-color: #1779ba;
  color: #fefefe; }
  [data-whatinput='mouse'] .button {
    outline: 0; }
  .button:hover, .button:focus {
    background-color: #14679e;
    color: #fefefe; }
  .button.tiny {
    font-size: 0.6rem; }
  .button.small {
    font-size: 0.75rem; }
  .button.large {
    font-size: 1.25rem; }
  .button.expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0; }
  .button.primary {
    background-color: #1779ba;
    color: #fefefe; }
    .button.primary:hover, .button.primary:focus {
      background-color: #126195;
      color: #fefefe; }
  .button.secondary {
    background-color: #767676;
    color: #fefefe; }
    .button.secondary:hover, .button.secondary:focus {
      background-color: #5e5e5e;
      color: #fefefe; }
  .button.success {
    background-color: #3adb76;
    color: #0a0a0a; }
    .button.success:hover, .button.success:focus {
      background-color: #22bb5b;
      color: #0a0a0a; }
  .button.warning {
    background-color: #ffae00;
    color: #0a0a0a; }
    .button.warning:hover, .button.warning:focus {
      background-color: #cc8b00;
      color: #0a0a0a; }
  .button.alert {
    background-color: #cc4b37;
    color: #fefefe; }
    .button.alert:hover, .button.alert:focus {
      background-color: #a53b2a;
      color: #fefefe; }
  .button.hollow {
    border: 1px solid #1779ba;
    color: #1779ba; }
    .button.hollow, .button.hollow:hover, .button.hollow:focus {
      background-color: transparent; }
    .button.hollow:hover, .button.hollow:focus {
      border-color: #0c3d5d;
      color: #0c3d5d; }
    .button.hollow.primary {
      border: 1px solid #1779ba;
      color: #1779ba; }
      .button.hollow.primary:hover, .button.hollow.primary:focus {
        border-color: #0c3d5d;
        color: #0c3d5d; }
    .button.hollow.secondary {
      border: 1px solid #767676;
      color: #767676; }
      .button.hollow.secondary:hover, .button.hollow.secondary:focus {
        border-color: #3b3b3b;
        color: #3b3b3b; }
    .button.hollow.success {
      border: 1px solid #3adb76;
      color: #3adb76; }
      .button.hollow.success:hover, .button.hollow.success:focus {
        border-color: #157539;
        color: #157539; }
    .button.hollow.warning {
      border: 1px solid #ffae00;
      color: #ffae00; }
      .button.hollow.warning:hover, .button.hollow.warning:focus {
        border-color: #805700;
        color: #805700; }
    .button.hollow.alert {
      border: 1px solid #cc4b37;
      color: #cc4b37; }
      .button.hollow.alert:hover, .button.hollow.alert:focus {
        border-color: #67251a;
        color: #67251a; }
  .button.disabled, .button[disabled] {
    opacity: 0.25;
    cursor: not-allowed; }
    .button.disabled, .button.disabled:hover, .button.disabled:focus, .button[disabled], .button[disabled]:hover, .button[disabled]:focus {
      background-color: #1779ba;
      color: #fefefe; }
    .button.disabled.primary, .button[disabled].primary {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.primary, .button.disabled.primary:hover, .button.disabled.primary:focus, .button[disabled].primary, .button[disabled].primary:hover, .button[disabled].primary:focus {
        background-color: #1779ba;
        color: #fefefe; }
    .button.disabled.secondary, .button[disabled].secondary {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.secondary, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        background-color: #767676;
        color: #fefefe; }
    .button.disabled.success, .button[disabled].success {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.success, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success, .button[disabled].success:hover, .button[disabled].success:focus {
        background-color: #3adb76;
        color: #0a0a0a; }
    .button.disabled.warning, .button[disabled].warning {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.warning, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning, .button[disabled].warning:hover, .button[disabled].warning:focus {
        background-color: #ffae00;
        color: #0a0a0a; }
    .button.disabled.alert, .button[disabled].alert {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.alert, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert, .button[disabled].alert:hover, .button[disabled].alert:focus {
        background-color: #cc4b37;
        color: #fefefe; }
  .button.dropdown::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.4em;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #fefefe transparent transparent;
    position: relative;
    top: 0.4em;
    display: inline-block;
    float: right;
    margin-left: 1em; }
  .button.arrow-only::after {
    top: -0.1em;
    float: none;
    margin-left: 0; }

.accordion {
  margin-left: 0;
  background: #fefefe;
  list-style-type: none; }

.accordion-item:first-child > :first-child {
  border-radius: 0 0 0 0; }

.accordion-item:last-child > :last-child {
  border-radius: 0 0 0 0; }

.accordion-title {
  position: relative;
  display: block;
  padding: 1.25rem 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  font-size: 0.75rem;
  line-height: 1;
  color: #1779ba; }
  :last-child:not(.is-active) > .accordion-title {
    border-bottom: 1px solid #e6e6e6;
    border-radius: 0 0 0 0; }
  .accordion-title:hover, .accordion-title:focus {
    background-color: #e6e6e6; }
  .accordion-title::before {
    position: absolute;
    top: 50%;
    right: 1rem;
    margin-top: -0.5rem;
    content: '+'; }
  .is-active > .accordion-title::before {
    content: '\2013'; }

.accordion-content {
  display: none;
  padding: 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  background-color: #fefefe;
  color: #0a0a0a; }
  :last-child > .accordion-content:last-child {
    border-bottom: 1px solid #e6e6e6; }

.is-accordion-submenu-parent > a {
  position: relative; }
  .is-accordion-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #1779ba transparent transparent;
    position: absolute;
    top: 50%;
    margin-top: -3px;
    right: 1rem; }

.is-accordion-submenu-parent[aria-expanded='true'] > a::after {
  transform: rotate(180deg);
  transform-origin: 50% 50%; }

.badge {
  display: inline-block;
  min-width: 2.1em;
  padding: 0.3em;
  border-radius: 50%;
  font-size: 0.6rem;
  text-align: center;
  background: #1779ba;
  color: #fefefe; }
  .badge.primary {
    background: #1779ba;
    color: #fefefe; }
  .badge.secondary {
    background: #767676;
    color: #fefefe; }
  .badge.success {
    background: #3adb76;
    color: #0a0a0a; }
  .badge.warning {
    background: #ffae00;
    color: #0a0a0a; }
  .badge.alert {
    background: #cc4b37;
    color: #fefefe; }

.breadcrumbs {
  margin: 0 0 1rem 0;
  list-style: none; }
  .breadcrumbs::before, .breadcrumbs::after {
    display: table;
    content: ' '; }
  .breadcrumbs::after {
    clear: both; }
  .breadcrumbs li {
    float: left;
    font-size: 0.6875rem;
    color: #0a0a0a;
    cursor: default;
    text-transform: uppercase; }
    .breadcrumbs li:not(:last-child)::after {
      position: relative;
      top: 1px;
      margin: 0 0.75rem;
      opacity: 1;
      content: "/";
      color: #cacaca; }
  .breadcrumbs a {
    color: #1779ba; }
    .breadcrumbs a:hover {
      text-decoration: underline; }
  .breadcrumbs .disabled {
    color: #cacaca;
    cursor: not-allowed; }

.button-group {
  margin-bottom: 1rem;
  font-size: 0; }
  .button-group::before, .button-group::after {
    display: table;
    content: ' '; }
  .button-group::after {
    clear: both; }
  .button-group .button {
    margin: 0;
    margin-right: 1px;
    margin-bottom: 1px;
    font-size: 0.9rem; }
    .button-group .button:last-child {
      margin-right: 0; }
  .button-group.tiny .button {
    font-size: 0.6rem; }
  .button-group.small .button {
    font-size: 0.75rem; }
  .button-group.large .button {
    font-size: 1.25rem; }
  .button-group.expanded {
    margin-right: -1px; }
    .button-group.expanded::before, .button-group.expanded::after {
      display: none; }
    .button-group.expanded .button:first-child:last-child {
      width: 100%; }
    .button-group.expanded .button:first-child:nth-last-child(2), .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button {
      display: inline-block;
      width: calc(50% - 1px);
      margin-right: 1px; }
      .button-group.expanded .button:first-child:nth-last-child(2):last-child, .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child {
        margin-right: -6px; }
    .button-group.expanded .button:first-child:nth-last-child(3), .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button {
      display: inline-block;
      width: calc(33.33333% - 1px);
      margin-right: 1px; }
      .button-group.expanded .button:first-child:nth-last-child(3):last-child, .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child {
        margin-right: -6px; }
    .button-group.expanded .button:first-child:nth-last-child(4), .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button {
      display: inline-block;
      width: calc(25% - 1px);
      margin-right: 1px; }
      .button-group.expanded .button:first-child:nth-last-child(4):last-child, .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child {
        margin-right: -6px; }
    .button-group.expanded .button:first-child:nth-last-child(5), .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button {
      display: inline-block;
      width: calc(20% - 1px);
      margin-right: 1px; }
      .button-group.expanded .button:first-child:nth-last-child(5):last-child, .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child {
        margin-right: -6px; }
    .button-group.expanded .button:first-child:nth-last-child(6), .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button {
      display: inline-block;
      width: calc(16.66667% - 1px);
      margin-right: 1px; }
      .button-group.expanded .button:first-child:nth-last-child(6):last-child, .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child {
        margin-right: -6px; }
  .button-group.primary .button {
    background-color: #1779ba;
    color: #fefefe; }
    .button-group.primary .button:hover, .button-group.primary .button:focus {
      background-color: #126195;
      color: #fefefe; }
  .button-group.secondary .button {
    background-color: #767676;
    color: #fefefe; }
    .button-group.secondary .button:hover, .button-group.secondary .button:focus {
      background-color: #5e5e5e;
      color: #fefefe; }
  .button-group.success .button {
    background-color: #3adb76;
    color: #0a0a0a; }
    .button-group.success .button:hover, .button-group.success .button:focus {
      background-color: #22bb5b;
      color: #0a0a0a; }
  .button-group.warning .button {
    background-color: #ffae00;
    color: #0a0a0a; }
    .button-group.warning .button:hover, .button-group.warning .button:focus {
      background-color: #cc8b00;
      color: #0a0a0a; }
  .button-group.alert .button {
    background-color: #cc4b37;
    color: #fefefe; }
    .button-group.alert .button:hover, .button-group.alert .button:focus {
      background-color: #a53b2a;
      color: #fefefe; }
  .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {
    width: 100%; }
    .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {
      margin-bottom: 0; }
  @media print, screen and (min-width: 48em) {
    .button-group.stacked-for-small .button {
      width: auto;
      margin-bottom: 0; } }
  @media print, screen and (min-width: 64.0625em) {
    .button-group.stacked-for-medium .button {
      width: auto;
      margin-bottom: 0; } }
  @media screen and (max-width: 47.9375em) {
    .button-group.stacked-for-small.expanded {
      display: block; }
      .button-group.stacked-for-small.expanded .button {
        display: block;
        margin-right: 0; } }

.callout {
  position: relative;
  margin: 0 0 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(10, 10, 10, 0.25);
  border-radius: 0;
  background-color: white;
  color: #0a0a0a; }
  .callout > :first-child {
    margin-top: 0; }
  .callout > :last-child {
    margin-bottom: 0; }
  .callout.primary {
    background-color: #d7ecfa;
    color: #0a0a0a; }
  .callout.secondary {
    background-color: #eaeaea;
    color: #0a0a0a; }
  .callout.success {
    background-color: #e1faea;
    color: #0a0a0a; }
  .callout.warning {
    background-color: #fff3d9;
    color: #0a0a0a; }
  .callout.alert {
    background-color: #f7e4e1;
    color: #0a0a0a; }
  .callout.small {
    padding-top: 0.5rem;
    padding-right: 0.5rem;
    padding-bottom: 0.5rem;
    padding-left: 0.5rem; }
  .callout.large {
    padding-top: 3rem;
    padding-right: 3rem;
    padding-bottom: 3rem;
    padding-left: 3rem; }

.card {
  margin-bottom: 1rem;
  border: 1px solid #e6e6e6;
  border-radius: 0;
  background: #fefefe;
  box-shadow: none;
  overflow: hidden;
  color: #0a0a0a; }
  .card > :last-child {
    margin-bottom: 0; }

.card-divider {
  padding: 1rem;
  background: #e6e6e6; }
  .card-divider > :last-child {
    margin-bottom: 0; }

.card-section {
  padding: 1rem; }
  .card-section > :last-child {
    margin-bottom: 0; }

.close-button {
  position: absolute;
  color: #8a8a8a;
  cursor: pointer; }
  [data-whatinput='mouse'] .close-button {
    outline: 0; }
  .close-button:hover, .close-button:focus {
    color: #0a0a0a; }
  .close-button.small {
    right: 0.66rem;
    top: 0.33em;
    font-size: 1.5em;
    line-height: 1; }
  .close-button, .close-button.medium {
    right: 1rem;
    top: 0.5rem;
    font-size: 2em;
    line-height: 1; }

.menu {
  margin: 0;
  list-style-type: none; }
  .menu > li {
    display: table-cell;
    vertical-align: middle; }
    [data-whatinput='mouse'] .menu > li {
      outline: 0; }
  .menu > li > a {
    display: block;
    padding: 0.7rem 1rem;
    line-height: 1; }
  .menu input,
  .menu select,
  .menu a,
  .menu button {
    margin-bottom: 0; }
  .menu > li > a img,
  .menu > li > a i,
  .menu > li > a svg {
    vertical-align: middle; }
    .menu > li > a img + span,
    .menu > li > a i + span,
    .menu > li > a svg + span {
      vertical-align: middle; }
  .menu > li > a img,
  .menu > li > a i,
  .menu > li > a svg {
    margin-right: 0.25rem;
    display: inline-block; }
  .menu > li, .menu.horizontal > li {
    display: table-cell; }
  .menu.expanded {
    display: table;
    width: 100%;
    table-layout: fixed; }
    .menu.expanded > li:first-child:last-child {
      width: 100%; }
  .menu.vertical > li {
    display: block; }
  @media print, screen and (min-width: 48em) {
    .menu.medium-horizontal > li {
      display: table-cell; }
    .menu.medium-expanded {
      display: table;
      width: 100%;
      table-layout: fixed; }
      .menu.medium-expanded > li:first-child:last-child {
        width: 100%; }
    .menu.medium-vertical > li {
      display: block; } }
  @media print, screen and (min-width: 64.0625em) {
    .menu.large-horizontal > li {
      display: table-cell; }
    .menu.large-expanded {
      display: table;
      width: 100%;
      table-layout: fixed; }
      .menu.large-expanded > li:first-child:last-child {
        width: 100%; }
    .menu.large-vertical > li {
      display: block; } }
  .menu.simple li {
    display: inline-block;
    vertical-align: top;
    line-height: 1; }
  .menu.simple a {
    padding: 0; }
  .menu.simple li {
    margin-left: 0;
    margin-right: 1rem; }
  .menu.simple.align-right li {
    margin-right: 0;
    margin-left: 1rem; }
  .menu.align-right::before, .menu.align-right::after {
    display: table;
    content: ' '; }
  .menu.align-right::after {
    clear: both; }
  .menu.align-right > li {
    float: right; }
  .menu.icon-top > li > a {
    text-align: center; }
    .menu.icon-top > li > a img,
    .menu.icon-top > li > a i,
    .menu.icon-top > li > a svg {
      display: block;
      margin: 0 auto 0.25rem; }
  .menu.icon-top.vertical a > span {
    margin: auto; }
  .menu.nested {
    margin-left: 1rem; }
  .menu .active > a {
    background: #1779ba;
    color: #fefefe; }
  .menu.menu-bordered li {
    border: 1px solid #e6e6e6; }
    .menu.menu-bordered li:not(:first-child) {
      border-top: 0; }
  .menu.menu-hover li:hover {
    background-color: #e6e6e6; }

.menu-text {
  padding-top: 0;
  padding-bottom: 0;
  padding: 0.7rem 1rem;
  font-weight: bold;
  line-height: 1;
  color: inherit; }

.menu-centered {
  text-align: center; }
  .menu-centered > .menu {
    display: inline-block;
    vertical-align: top; }

.no-js [data-responsive-menu] ul {
  display: none; }

.menu-icon {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer; }
  .menu-icon::after {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 2px;
    background: #fefefe;
    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
    content: ''; }
  .menu-icon:hover::after {
    background: #cacaca;
    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }

.menu-icon.dark {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer; }
  .menu-icon.dark::after {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 2px;
    background: #0a0a0a;
    box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
    content: ''; }
  .menu-icon.dark:hover::after {
    background: #8a8a8a;
    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }

.is-drilldown {
  position: relative;
  overflow: hidden; }
  .is-drilldown li {
    display: block; }
  .is-drilldown.animate-height {
    transition: height 0.5s; }

.is-drilldown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: -1;
  width: 100%;
  background: #fefefe;
  transition: transform 0.15s linear; }
  .is-drilldown-submenu.is-active {
    z-index: 1;
    display: block;
    transform: translateX(-100%); }
  .is-drilldown-submenu.is-closing {
    transform: translateX(100%); }

.drilldown-submenu-cover-previous {
  min-height: 100%; }

.is-drilldown-submenu-parent > a {
  position: relative; }
  .is-drilldown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1779ba;
    position: absolute;
    top: 50%;
    margin-top: -6px;
    right: 1rem; }

.js-drilldown-back > a::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #1779ba transparent transparent;
  border-left-width: 0;
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.75rem;
  border-left-width: 0; }

.dropdown-pane {
  position: absolute;
  z-index: 10;
  display: block;
  width: 300px;
  padding: 1rem;
  visibility: hidden;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  font-size: 1rem; }
  .dropdown-pane.is-open {
    visibility: visible; }

.dropdown-pane.tiny {
  width: 100px; }

.dropdown-pane.small {
  width: 200px; }

.dropdown-pane.large {
  width: 400px; }

.dropdown.menu > li.opens-left > .is-dropdown-submenu {
  top: 100%;
  right: 0;
  left: auto; }

.dropdown.menu > li.opens-right > .is-dropdown-submenu {
  top: 100%;
  right: auto;
  left: 0; }

.dropdown.menu > li.is-dropdown-submenu-parent > a {
  position: relative;
  padding-right: 1.5rem; }

.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #1779ba transparent transparent;
  right: 5px;
  margin-top: -3px; }

[data-whatinput='mouse'] .dropdown.menu a {
  outline: 0; }

.no-js .dropdown.menu ul {
  display: none; }

.dropdown.menu.vertical > li .is-dropdown-submenu {
  top: 0; }

.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {
  right: 100%;
  left: auto; }

.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%; }

.dropdown.menu.vertical > li > a::after {
  right: 14px; }

.dropdown.menu.vertical > li.opens-left > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #1779ba transparent transparent; }

.dropdown.menu.vertical > li.opens-right > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #1779ba; }

@media print, screen and (min-width: 48em) {
  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem; }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #1779ba transparent transparent;
    right: 5px;
    margin-top: -3px; }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto; }
  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.medium-vertical > li > a::after {
    right: 14px; }
  .dropdown.menu.medium-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #1779ba transparent transparent; }
  .dropdown.menu.medium-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1779ba; } }

@media print, screen and (min-width: 64.0625em) {
  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem; }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #1779ba transparent transparent;
    right: 5px;
    margin-top: -3px; }
  .dropdown.menu.large-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto; }
  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.large-vertical > li > a::after {
    right: 14px; }
  .dropdown.menu.large-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #1779ba transparent transparent; }
  .dropdown.menu.large-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1779ba; } }

.dropdown.menu.align-right .is-dropdown-submenu.first-sub {
  top: 100%;
  right: 0;
  left: auto; }

.is-dropdown-menu.vertical {
  width: 100px; }
  .is-dropdown-menu.vertical.align-right {
    float: right; }

.is-dropdown-submenu-parent {
  position: relative; }
  .is-dropdown-submenu-parent a::after {
    position: absolute;
    top: 50%;
    right: 5px;
    margin-top: -6px; }
  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {
    top: 100%;
    left: auto; }
  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto; }
  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }

.is-dropdown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: 1;
  display: none;
  min-width: 200px;
  border: 1px solid #cacaca;
  background: #fefefe; }
  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {
    right: 14px; }
  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #1779ba transparent transparent; }
  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1779ba; }
  .is-dropdown-submenu .is-dropdown-submenu {
    margin-top: -1px; }
  .is-dropdown-submenu > li {
    width: 100%; }
  .is-dropdown-submenu.js-dropdown-active {
    display: block; }

.responsive-embed,
.flex-video {
  position: relative;
  height: 0;
  margin-bottom: 1rem;
  padding-bottom: 75%;
  overflow: hidden; }
  .responsive-embed iframe,
  .responsive-embed object,
  .responsive-embed embed,
  .responsive-embed video,
  .flex-video iframe,
  .flex-video object,
  .flex-video embed,
  .flex-video video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }
  .responsive-embed.widescreen,
  .flex-video.widescreen {
    padding-bottom: 56.25%; }

.label {
  display: inline-block;
  padding: 0.33333rem 0.5rem;
  border-radius: 0;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  background: #1779ba;
  color: #fefefe; }
  .label.primary {
    background: #1779ba;
    color: #fefefe; }
  .label.secondary {
    background: #767676;
    color: #fefefe; }
  .label.success {
    background: #3adb76;
    color: #0a0a0a; }
  .label.warning {
    background: #ffae00;
    color: #0a0a0a; }
  .label.alert {
    background: #cc4b37;
    color: #fefefe; }

.media-object {
  display: block;
  margin-bottom: 1rem; }
  .media-object img {
    max-width: none; }
  @media screen and (max-width: 47.9375em) {
    .media-object.stack-for-small .media-object-section {
      padding: 0;
      padding-bottom: 1rem;
      display: block; }
      .media-object.stack-for-small .media-object-section img {
        width: 100%; } }

.media-object-section {
  display: table-cell;
  vertical-align: top; }
  .media-object-section:first-child {
    padding-right: 1rem; }
  .media-object-section:last-child:not(:nth-child(2)) {
    padding-left: 1rem; }
  .media-object-section > :last-child {
    margin-bottom: 0; }
  .media-object-section.middle {
    vertical-align: middle; }
  .media-object-section.bottom {
    vertical-align: bottom; }

.is-off-canvas-open {
  overflow: hidden; }

.js-off-canvas-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition: opacity 0.5s ease, visibility 0.5s ease;
  background: rgba(254, 254, 254, 0.25);
  opacity: 0;
  visibility: hidden;
  overflow: hidden; }
  .js-off-canvas-overlay.is-visible {
    opacity: 1;
    visibility: visible; }
  .js-off-canvas-overlay.is-closable {
    cursor: pointer; }
  .js-off-canvas-overlay.is-overlay-absolute {
    position: absolute; }
  .js-off-canvas-overlay.is-overlay-fixed {
    position: fixed; }

.off-canvas-wrapper {
  position: relative;
  overflow: hidden; }

.off-canvas {
  position: fixed;
  z-index: 1;
  transition: transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #e6e6e6; }
  [data-whatinput='mouse'] .off-canvas {
    outline: 0; }
  .off-canvas.is-transition-overlap {
    z-index: 10; }
    .off-canvas.is-transition-overlap.is-open {
      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }
  .off-canvas.is-open {
    transform: translate(0, 0); }

.off-canvas-absolute {
  position: absolute;
  z-index: 1;
  transition: transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #e6e6e6; }
  [data-whatinput='mouse'] .off-canvas-absolute {
    outline: 0; }
  .off-canvas-absolute.is-transition-overlap {
    z-index: 10; }
    .off-canvas-absolute.is-transition-overlap.is-open {
      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }
  .off-canvas-absolute.is-open {
    transform: translate(0, 0); }

.position-left {
  top: 0;
  left: 0;
  width: 250px;
  height: 100%;
  transform: translateX(-250px);
  overflow-y: auto; }
  .position-left.is-open ~ .off-canvas-content {
    transform: translateX(250px); }
  .position-left.is-transition-push::after {
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    width: 1px;
    box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
    content: " "; }
  .position-left.is-transition-overlap.is-open ~ .off-canvas-content {
    transform: none; }

.position-right {
  top: 0;
  right: 0;
  width: 250px;
  height: 100%;
  transform: translateX(250px);
  overflow-y: auto; }
  .position-right.is-open ~ .off-canvas-content {
    transform: translateX(-250px); }
  .position-right.is-transition-push::after {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 1px;
    box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
    content: " "; }
  .position-right.is-transition-overlap.is-open ~ .off-canvas-content {
    transform: none; }

.position-top {
  top: 0;
  left: 0;
  width: 100%;
  height: 250px;
  transform: translateY(-250px);
  overflow-x: auto; }
  .position-top.is-open ~ .off-canvas-content {
    transform: translateY(250px); }
  .position-top.is-transition-push::after {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 1px;
    width: 100%;
    box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
    content: " "; }
  .position-top.is-transition-overlap.is-open ~ .off-canvas-content {
    transform: none; }

.position-bottom {
  bottom: 0;
  left: 0;
  width: 100%;
  height: 250px;
  transform: translateY(250px);
  overflow-x: auto; }
  .position-bottom.is-open ~ .off-canvas-content {
    transform: translateY(-250px); }
  .position-bottom.is-transition-push::after {
    position: absolute;
    top: 0;
    left: 0;
    height: 1px;
    width: 100%;
    box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
    content: " "; }
  .position-bottom.is-transition-overlap.is-open ~ .off-canvas-content {
    transform: none; }

.off-canvas-content {
  transition: transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

@media print, screen and (min-width: 48em) {
  .position-left.reveal-for-medium {
    transform: none;
    z-index: 1; }
    .position-left.reveal-for-medium ~ .off-canvas-content {
      margin-left: 250px; }
  .position-right.reveal-for-medium {
    transform: none;
    z-index: 1; }
    .position-right.reveal-for-medium ~ .off-canvas-content {
      margin-right: 250px; }
  .position-top.reveal-for-medium {
    transform: none;
    z-index: 1; }
    .position-top.reveal-for-medium ~ .off-canvas-content {
      margin-top: 250px; }
  .position-bottom.reveal-for-medium {
    transform: none;
    z-index: 1; }
    .position-bottom.reveal-for-medium ~ .off-canvas-content {
      margin-bottom: 250px; } }

@media print, screen and (min-width: 64.0625em) {
  .position-left.reveal-for-large {
    transform: none;
    z-index: 1; }
    .position-left.reveal-for-large ~ .off-canvas-content {
      margin-left: 250px; }
  .position-right.reveal-for-large {
    transform: none;
    z-index: 1; }
    .position-right.reveal-for-large ~ .off-canvas-content {
      margin-right: 250px; }
  .position-top.reveal-for-large {
    transform: none;
    z-index: 1; }
    .position-top.reveal-for-large ~ .off-canvas-content {
      margin-top: 250px; }
  .position-bottom.reveal-for-large {
    transform: none;
    z-index: 1; }
    .position-bottom.reveal-for-large ~ .off-canvas-content {
      margin-bottom: 250px; } }

.orbit {
  position: relative; }

.orbit-container {
  position: relative;
  height: 0;
  margin: 0;
  list-style: none;
  overflow: hidden; }

.orbit-slide {
  width: 100%; }
  .orbit-slide.no-motionui.is-active {
    top: 0;
    left: 0; }

.orbit-figure {
  margin: 0; }

.orbit-image {
  width: 100%;
  max-width: 100%;
  margin: 0; }

.orbit-caption {
  position: absolute;
  bottom: 0;
  width: 100%;
  margin-bottom: 0;
  padding: 1rem;
  background-color: rgba(10, 10, 10, 0.5);
  color: #fefefe; }

.orbit-previous, .orbit-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  padding: 1rem;
  color: #fefefe; }
  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {
    outline: 0; }
  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {
    background-color: rgba(10, 10, 10, 0.5); }

.orbit-previous {
  left: 0; }

.orbit-next {
  left: auto;
  right: 0; }

.orbit-bullets {
  position: relative;
  margin-top: 0.8rem;
  margin-bottom: 0.8rem;
  text-align: center; }
  [data-whatinput='mouse'] .orbit-bullets {
    outline: 0; }
  .orbit-bullets button {
    width: 1.2rem;
    height: 1.2rem;
    margin: 0.1rem;
    border-radius: 50%;
    background-color: #cacaca; }
    .orbit-bullets button:hover {
      background-color: #8a8a8a; }
    .orbit-bullets button.is-active {
      background-color: #8a8a8a; }

.pagination {
  margin-left: 0;
  margin-bottom: 1rem; }
  .pagination::before, .pagination::after {
    display: table;
    content: ' '; }
  .pagination::after {
    clear: both; }
  .pagination li {
    margin-right: 0.0625rem;
    border-radius: 0;
    font-size: 0.875rem;
    display: none; }
    .pagination li:last-child, .pagination li:first-child {
      display: inline-block; }
    @media print, screen and (min-width: 48em) {
      .pagination li {
        display: inline-block; } }
  .pagination a,
  .pagination button {
    display: block;
    padding: 0.1875rem 0.625rem;
    border-radius: 0;
    color: #0a0a0a; }
    .pagination a:hover,
    .pagination button:hover {
      background: #e6e6e6; }
  .pagination .current {
    padding: 0.1875rem 0.625rem;
    background: #1779ba;
    color: #fefefe;
    cursor: default; }
  .pagination .disabled {
    padding: 0.1875rem 0.625rem;
    color: #cacaca;
    cursor: not-allowed; }
    .pagination .disabled:hover {
      background: transparent; }
  .pagination .ellipsis::after {
    padding: 0.1875rem 0.625rem;
    content: '\2026';
    color: #0a0a0a; }

.pagination-previous a::before,
.pagination-previous.disabled::before {
  display: inline-block;
  margin-right: 0.5rem;
  content: '\00ab'; }

.pagination-next a::after,
.pagination-next.disabled::after {
  display: inline-block;
  margin-left: 0.5rem;
  content: '\00bb'; }

.progress {
  height: 1rem;
  margin-bottom: 1rem;
  border-radius: 0;
  background-color: #cacaca; }
  .progress.primary .progress-meter {
    background-color: #1779ba; }
  .progress.secondary .progress-meter {
    background-color: #767676; }
  .progress.success .progress-meter {
    background-color: #3adb76; }
  .progress.warning .progress-meter {
    background-color: #ffae00; }
  .progress.alert .progress-meter {
    background-color: #cc4b37; }

.progress-meter {
  position: relative;
  display: block;
  width: 0%;
  height: 100%;
  background-color: #1779ba; }

.progress-meter-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
  margin: 0;
  font-size: 0.75rem;
  font-weight: bold;
  color: #fefefe;
  white-space: nowrap; }

.slider {
  position: relative;
  height: 0.5rem;
  margin-top: 1.25rem;
  margin-bottom: 2.25rem;
  background-color: #e6e6e6;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -ms-touch-action: none;
      touch-action: none; }

.slider-fill {
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  max-width: 100%;
  height: 0.5rem;
  background-color: #cacaca;
  transition: all 0.2s ease-in-out; }
  .slider-fill.is-dragging {
    transition: all 0s linear; }

.slider-handle {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  position: absolute;
  left: 0;
  z-index: 1;
  display: inline-block;
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 0;
  background-color: #1779ba;
  transition: all 0.2s ease-in-out;
  -ms-touch-action: manipulation;
      touch-action: manipulation; }
  [data-whatinput='mouse'] .slider-handle {
    outline: 0; }
  .slider-handle:hover {
    background-color: #14679e; }
  .slider-handle.is-dragging {
    transition: all 0s linear; }

.slider.disabled,
.slider[disabled] {
  opacity: 0.25;
  cursor: not-allowed; }

.slider.vertical {
  display: inline-block;
  width: 0.5rem;
  height: 12.5rem;
  margin: 0 1.25rem;
  transform: scale(1, -1); }
  .slider.vertical .slider-fill {
    top: 0;
    width: 0.5rem;
    max-height: 100%; }
  .slider.vertical .slider-handle {
    position: absolute;
    top: 0;
    left: 50%;
    width: 1.4rem;
    height: 1.4rem;
    transform: translateX(-50%); }

.sticky-container {
  position: relative; }

.sticky {
  position: relative;
  z-index: 0;
  transform: translate3d(0, 0, 0); }

.sticky.is-stuck {
  position: fixed;
  z-index: 5; }
  .sticky.is-stuck.is-at-top {
    top: 0; }
  .sticky.is-stuck.is-at-bottom {
    bottom: 0; }

.sticky.is-anchored {
  position: relative;
  right: auto;
  left: auto; }
  .sticky.is-anchored.is-at-bottom {
    bottom: 0; }

body.is-reveal-open {
  overflow: hidden; }

html.is-reveal-open,
html.is-reveal-open body {
  min-height: 100%;
  overflow: hidden;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }

.reveal-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1005;
  display: none;
  background-color: rgba(10, 10, 10, 0.45);
  overflow-y: scroll; }

.reveal {
  z-index: 1006;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  display: none;
  padding: 1rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  position: relative;
  top: 100px;
  margin-right: auto;
  margin-left: auto;
  overflow-y: auto; }
  [data-whatinput='mouse'] .reveal {
    outline: 0; }
  @media print, screen and (min-width: 48em) {
    .reveal {
      min-height: 0; } }
  .reveal .column, .reveal .columns,
  .reveal .columns {
    min-width: 0; }
  .reveal > :last-child {
    margin-bottom: 0; }
  @media print, screen and (min-width: 48em) {
    .reveal {
      width: 600px;
      max-width: 75rem; } }
  @media print, screen and (min-width: 48em) {
    .reveal .reveal {
      right: auto;
      left: auto;
      margin: 0 auto; } }
  .reveal.collapse {
    padding: 0; }
  @media print, screen and (min-width: 48em) {
    .reveal.tiny {
      width: 30%;
      max-width: 75rem; } }
  @media print, screen and (min-width: 48em) {
    .reveal.small {
      width: 50%;
      max-width: 75rem; } }
  @media print, screen and (min-width: 48em) {
    .reveal.large {
      width: 90%;
      max-width: 75rem; } }
  .reveal.full {
    top: 0;
    left: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    height: 100vh;
    min-height: 100vh;
    margin-left: 0;
    border: 0;
    border-radius: 0; }
  @media screen and (max-width: 47.9375em) {
    .reveal {
      top: 0;
      left: 0;
      width: 100%;
      max-width: none;
      height: 100%;
      height: 100vh;
      min-height: 100vh;
      margin-left: 0;
      border: 0;
      border-radius: 0; } }
  .reveal.without-overlay {
    position: fixed; }

.switch {
  height: 2rem;
  position: relative;
  margin-bottom: 1rem;
  outline: 0;
  font-size: 0.875rem;
  font-weight: bold;
  color: #fefefe;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }

.switch-input {
  position: absolute;
  margin-bottom: 0;
  opacity: 0; }

.switch-paddle {
  position: relative;
  display: block;
  width: 4rem;
  height: 2rem;
  border-radius: 0;
  background: #cacaca;
  transition: all 0.25s ease-out;
  font-weight: inherit;
  color: inherit;
  cursor: pointer; }
  input + .switch-paddle {
    margin: 0; }
  .switch-paddle::after {
    position: absolute;
    top: 0.25rem;
    left: 0.25rem;
    display: block;
    width: 1.5rem;
    height: 1.5rem;
    transform: translate3d(0, 0, 0);
    border-radius: 0;
    background: #fefefe;
    transition: all 0.25s ease-out;
    content: ''; }
  input:checked ~ .switch-paddle {
    background: #1779ba; }
    input:checked ~ .switch-paddle::after {
      left: 2.25rem; }
  [data-whatinput='mouse'] input:focus ~ .switch-paddle {
    outline: 0; }

.switch-active, .switch-inactive {
  position: absolute;
  top: 50%;
  transform: translateY(-50%); }

.switch-active {
  left: 8%;
  display: none; }
  input:checked + label > .switch-active {
    display: block; }

.switch-inactive {
  right: 15%; }
  input:checked + label > .switch-inactive {
    display: none; }

.switch.tiny {
  height: 1.5rem; }
  .switch.tiny .switch-paddle {
    width: 3rem;
    height: 1.5rem;
    font-size: 0.625rem; }
  .switch.tiny .switch-paddle::after {
    top: 0.25rem;
    left: 0.25rem;
    width: 1rem;
    height: 1rem; }
  .switch.tiny input:checked ~ .switch-paddle::after {
    left: 1.75rem; }

.switch.small {
  height: 1.75rem; }
  .switch.small .switch-paddle {
    width: 3.5rem;
    height: 1.75rem;
    font-size: 0.75rem; }
  .switch.small .switch-paddle::after {
    top: 0.25rem;
    left: 0.25rem;
    width: 1.25rem;
    height: 1.25rem; }
  .switch.small input:checked ~ .switch-paddle::after {
    left: 2rem; }

.switch.large {
  height: 2.5rem; }
  .switch.large .switch-paddle {
    width: 5rem;
    height: 2.5rem;
    font-size: 1rem; }
  .switch.large .switch-paddle::after {
    top: 0.25rem;
    left: 0.25rem;
    width: 2rem;
    height: 2rem; }
  .switch.large input:checked ~ .switch-paddle::after {
    left: 2.75rem; }

table {
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 0; }
  table thead,
  table tbody,
  table tfoot {
    border: 1px solid #f1f1f1;
    background-color: #fefefe; }
  table caption {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold; }
  table thead {
    background: #f8f8f8;
    color: #0a0a0a; }
  table tfoot {
    background: #f1f1f1;
    color: #0a0a0a; }
  table thead tr,
  table tfoot tr {
    background: transparent; }
  table thead th,
  table thead td,
  table tfoot th,
  table tfoot td {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold;
    text-align: left; }
  table tbody th,
  table tbody td {
    padding: 0.5rem 0.625rem 0.625rem; }
  table tbody tr:nth-child(even) {
    border-bottom: 0;
    background-color: #f1f1f1; }
  table.unstriped tbody {
    background-color: #fefefe; }
    table.unstriped tbody tr {
      border-bottom: 0;
      border-bottom: 1px solid #f1f1f1;
      background-color: #fefefe; }

@media screen and (max-width: 64em) {
  table.stack thead {
    display: none; }
  table.stack tfoot {
    display: none; }
  table.stack tr,
  table.stack th,
  table.stack td {
    display: block; }
  table.stack td {
    border-top: 0; } }

table.scroll {
  display: block;
  width: 100%;
  overflow-x: auto; }

table.hover thead tr:hover {
  background-color: #f3f3f3; }

table.hover tfoot tr:hover {
  background-color: #ececec; }

table.hover tbody tr:hover {
  background-color: #f9f9f9; }

table.hover:not(.unstriped) tr:nth-of-type(even):hover {
  background-color: #ececec; }

.table-scroll {
  overflow-x: auto; }
  .table-scroll table {
    width: auto; }

.tabs {
  margin: 0;
  border: 1px solid #e6e6e6;
  background: #fefefe;
  list-style-type: none; }
  .tabs::before, .tabs::after {
    display: table;
    content: ' '; }
  .tabs::after {
    clear: both; }

.tabs.vertical > li {
  display: block;
  float: none;
  width: auto; }

.tabs.simple > li > a {
  padding: 0; }
  .tabs.simple > li > a:hover {
    background: transparent; }

.tabs.primary {
  background: #1779ba; }
  .tabs.primary > li > a {
    color: #fefefe; }
    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
      background: #1673b1; }

.tabs-title {
  float: left; }
  .tabs-title > a {
    display: block;
    padding: 1.25rem 1.5rem;
    font-size: 0.75rem;
    line-height: 1;
    color: #1779ba; }
    .tabs-title > a:hover {
      background: #fefefe;
      color: #1468a0; }
    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {
      background: #e6e6e6;
      color: #1779ba; }

.tabs-content {
  border: 1px solid #e6e6e6;
  border-top: 0;
  background: #fefefe;
  color: #0a0a0a;
  transition: all 0.5s ease; }

.tabs-content.vertical {
  border: 1px solid #e6e6e6;
  border-left: 0; }

.tabs-panel {
  display: none;
  padding: 1rem; }
  .tabs-panel[aria-hidden="false"] {
    display: block; }

.thumbnail {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 1rem;
  border: solid 4px #fefefe;
  border-radius: 0;
  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);
  line-height: 0; }

a.thumbnail {
  transition: box-shadow 200ms ease-out; }
  a.thumbnail:hover, a.thumbnail:focus {
    box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5); }
  a.thumbnail image {
    box-shadow: none; }

.title-bar {
  padding: 0.5rem;
  background: #0a0a0a;
  color: #fefefe; }
  .title-bar::before, .title-bar::after {
    display: table;
    content: ' '; }
  .title-bar::after {
    clear: both; }
  .title-bar .menu-icon {
    margin-left: 0.25rem;
    margin-right: 0.25rem; }

.title-bar-left {
  float: left; }

.title-bar-right {
  float: right;
  text-align: right; }

.title-bar-title {
  display: inline-block;
  vertical-align: middle;
  font-weight: bold; }

.has-tip {
  position: relative;
  display: inline-block;
  border-bottom: dotted 1px #8a8a8a;
  font-weight: bold;
  cursor: help; }

.tooltip {
  position: absolute;
  top: calc(100% + 0.6495rem);
  z-index: 1200;
  max-width: 10rem;
  padding: 0.75rem;
  border-radius: 0;
  background-color: #0a0a0a;
  font-size: 80%;
  color: #fefefe; }
  .tooltip::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.75rem;
    content: '';
    border-top-width: 0;
    border-bottom-style: solid;
    border-color: transparent transparent #0a0a0a;
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%); }
  .tooltip.top::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.75rem;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #0a0a0a transparent transparent;
    top: 100%;
    bottom: auto; }
  .tooltip.left::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.75rem;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #0a0a0a;
    top: 50%;
    bottom: auto;
    left: 100%;
    transform: translateY(-50%); }
  .tooltip.right::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.75rem;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #0a0a0a transparent transparent;
    top: 50%;
    right: 100%;
    bottom: auto;
    left: auto;
    transform: translateY(-50%); }

.top-bar {
  padding: 0.5rem; }
  .top-bar::before, .top-bar::after {
    display: table;
    content: ' '; }
  .top-bar::after {
    clear: both; }
  .top-bar,
  .top-bar ul {
    background-color: #e6e6e6; }
  .top-bar input {
    max-width: 200px;
    margin-right: 1rem; }
  .top-bar .input-group-field {
    width: 100%;
    margin-right: 0; }
  .top-bar input.button {
    width: auto; }
  .top-bar .top-bar-left,
  .top-bar .top-bar-right {
    width: 100%; }
  @media print, screen and (min-width: 48em) {
    .top-bar .top-bar-left,
    .top-bar .top-bar-right {
      width: auto; } }
  @media screen and (max-width: 64em) {
    .top-bar.stacked-for-medium .top-bar-left,
    .top-bar.stacked-for-medium .top-bar-right {
      width: 100%; } }
  @media screen and (max-width: 74.9375em) {
    .top-bar.stacked-for-large .top-bar-left,
    .top-bar.stacked-for-large .top-bar-right {
      width: 100%; } }

.top-bar-title {
  display: inline-block;
  float: left;
  padding: 0.5rem 1rem 0.5rem 0; }
  .top-bar-title .menu-icon {
    bottom: 2px; }

.top-bar-left {
  float: left; }

.top-bar-right {
  float: right; }

.hide {
  display: none !important; }

.invisible {
  visibility: hidden; }

@media screen and (max-width: 47.9375em) {
  .hide-for-small-only {
    display: none !important; } }

@media screen and (max-width: 0em), screen and (min-width: 48em) {
  .show-for-small-only {
    display: none !important; } }

@media print, screen and (min-width: 48em) {
  .hide-for-medium {
    display: none !important; } }

@media screen and (max-width: 47.9375em) {
  .show-for-medium {
    display: none !important; } }

@media screen and (min-width: 48em) and (max-width: 64em) {
  .hide-for-medium-only {
    display: none !important; } }

@media screen and (max-width: 47.9375em), screen and (min-width: 64.0625em) {
  .show-for-medium-only {
    display: none !important; } }

@media print, screen and (min-width: 64.0625em) {
  .hide-for-large {
    display: none !important; } }

@media screen and (max-width: 64em) {
  .show-for-large {
    display: none !important; } }

@media screen and (min-width: 64.0625em) and (max-width: 74.9375em) {
  .hide-for-large-only {
    display: none !important; } }

@media screen and (max-width: 64em), screen and (min-width: 75em) {
  .show-for-large-only {
    display: none !important; } }

.show-for-sr,
.show-on-focus {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0); }

.show-on-focus:active, .show-on-focus:focus {
  position: static !important;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto; }

.show-for-landscape,
.hide-for-portrait {
  display: block !important; }
  @media screen and (orientation: landscape) {
    .show-for-landscape,
    .hide-for-portrait {
      display: block !important; } }
  @media screen and (orientation: portrait) {
    .show-for-landscape,
    .hide-for-portrait {
      display: none !important; } }

.hide-for-landscape,
.show-for-portrait {
  display: none !important; }
  @media screen and (orientation: landscape) {
    .hide-for-landscape,
    .show-for-portrait {
      display: none !important; } }
  @media screen and (orientation: portrait) {
    .hide-for-landscape,
    .show-for-portrait {
      display: block !important; } }

.float-left {
  float: left !important; }

.float-right {
  float: right !important; }

.float-center {
  display: block;
  margin-right: auto;
  margin-left: auto; }

.clearfix::before, .clearfix::after {
  display: table;
  content: ' '; }

.clearfix::after {
  clear: both; }

.slide-in-down.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: translateY(-100%);
  transition-property: transform, opacity;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-down.mui-enter.mui-enter-active {
  transform: translateY(0); }

.slide-in-left.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: translateX(-100%);
  transition-property: transform, opacity;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-left.mui-enter.mui-enter-active {
  transform: translateX(0); }

.slide-in-up.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: translateY(100%);
  transition-property: transform, opacity;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-up.mui-enter.mui-enter-active {
  transform: translateY(0); }

.slide-in-right.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: translateX(100%);
  transition-property: transform, opacity;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-right.mui-enter.mui-enter-active {
  transform: translateX(0); }

.slide-out-down.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: translateY(0);
  transition-property: transform, opacity;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-down.mui-leave.mui-leave-active {
  transform: translateY(100%); }

.slide-out-right.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: translateX(0);
  transition-property: transform, opacity;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-right.mui-leave.mui-leave-active {
  transform: translateX(100%); }

.slide-out-up.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: translateY(0);
  transition-property: transform, opacity;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-up.mui-leave.mui-leave-active {
  transform: translateY(-100%); }

.slide-out-left.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: translateX(0);
  transition-property: transform, opacity;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-left.mui-leave.mui-leave-active {
  transform: translateX(-100%); }

.fade-in.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  opacity: 0;
  transition-property: opacity; }

.fade-in.mui-enter.mui-enter-active {
  opacity: 1; }

.fade-out.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  opacity: 1;
  transition-property: opacity; }

.fade-out.mui-leave.mui-leave-active {
  opacity: 0; }

.hinge-in-from-top.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotateX(-90deg);
  transform-origin: top;
  transition-property: transform, opacity;
  opacity: 0; }

.hinge-in-from-top.mui-enter.mui-enter-active {
  transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-right.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotateY(-90deg);
  transform-origin: right;
  transition-property: transform, opacity;
  opacity: 0; }

.hinge-in-from-right.mui-enter.mui-enter-active {
  transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-bottom.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotateX(90deg);
  transform-origin: bottom;
  transition-property: transform, opacity;
  opacity: 0; }

.hinge-in-from-bottom.mui-enter.mui-enter-active {
  transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-left.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotateY(90deg);
  transform-origin: left;
  transition-property: transform, opacity;
  opacity: 0; }

.hinge-in-from-left.mui-enter.mui-enter-active {
  transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-middle-x.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotateX(-90deg);
  transform-origin: center;
  transition-property: transform, opacity;
  opacity: 0; }

.hinge-in-from-middle-x.mui-enter.mui-enter-active {
  transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-middle-y.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotateY(-90deg);
  transform-origin: center;
  transition-property: transform, opacity;
  opacity: 0; }

.hinge-in-from-middle-y.mui-enter.mui-enter-active {
  transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-out-from-top.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotate(0deg);
  transform-origin: top;
  transition-property: transform, opacity;
  opacity: 1; }

.hinge-out-from-top.mui-leave.mui-leave-active {
  transform: perspective(2000px) rotateX(-90deg);
  opacity: 0; }

.hinge-out-from-right.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotate(0deg);
  transform-origin: right;
  transition-property: transform, opacity;
  opacity: 1; }

.hinge-out-from-right.mui-leave.mui-leave-active {
  transform: perspective(2000px) rotateY(-90deg);
  opacity: 0; }

.hinge-out-from-bottom.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotate(0deg);
  transform-origin: bottom;
  transition-property: transform, opacity;
  opacity: 1; }

.hinge-out-from-bottom.mui-leave.mui-leave-active {
  transform: perspective(2000px) rotateX(90deg);
  opacity: 0; }

.hinge-out-from-left.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotate(0deg);
  transform-origin: left;
  transition-property: transform, opacity;
  opacity: 1; }

.hinge-out-from-left.mui-leave.mui-leave-active {
  transform: perspective(2000px) rotateY(90deg);
  opacity: 0; }

.hinge-out-from-middle-x.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotate(0deg);
  transform-origin: center;
  transition-property: transform, opacity;
  opacity: 1; }

.hinge-out-from-middle-x.mui-leave.mui-leave-active {
  transform: perspective(2000px) rotateX(-90deg);
  opacity: 0; }

.hinge-out-from-middle-y.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotate(0deg);
  transform-origin: center;
  transition-property: transform, opacity;
  opacity: 1; }

.hinge-out-from-middle-y.mui-leave.mui-leave-active {
  transform: perspective(2000px) rotateY(-90deg);
  opacity: 0; }

.scale-in-up.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: scale(0.5);
  transition-property: transform, opacity;
  opacity: 0; }

.scale-in-up.mui-enter.mui-enter-active {
  transform: scale(1);
  opacity: 1; }

.scale-in-down.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: scale(1.5);
  transition-property: transform, opacity;
  opacity: 0; }

.scale-in-down.mui-enter.mui-enter-active {
  transform: scale(1);
  opacity: 1; }

.scale-out-up.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: scale(1);
  transition-property: transform, opacity;
  opacity: 1; }

.scale-out-up.mui-leave.mui-leave-active {
  transform: scale(1.5);
  opacity: 0; }

.scale-out-down.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: scale(1);
  transition-property: transform, opacity;
  opacity: 1; }

.scale-out-down.mui-leave.mui-leave-active {
  transform: scale(0.5);
  opacity: 0; }

.spin-in.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: rotate(-0.75turn);
  transition-property: transform, opacity;
  opacity: 0; }

.spin-in.mui-enter.mui-enter-active {
  transform: rotate(0);
  opacity: 1; }

.spin-out.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: rotate(0);
  transition-property: transform, opacity;
  opacity: 1; }

.spin-out.mui-leave.mui-leave-active {
  transform: rotate(0.75turn);
  opacity: 0; }

.spin-in-ccw.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: rotate(0.75turn);
  transition-property: transform, opacity;
  opacity: 0; }

.spin-in-ccw.mui-enter.mui-enter-active {
  transform: rotate(0);
  opacity: 1; }

.spin-out-ccw.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: rotate(0);
  transition-property: transform, opacity;
  opacity: 1; }

.spin-out-ccw.mui-leave.mui-leave-active {
  transform: rotate(-0.75turn);
  opacity: 0; }

.slow {
  transition-duration: 750ms !important; }

.fast {
  transition-duration: 250ms !important; }

.linear {
  transition-timing-function: linear !important; }

.ease {
  transition-timing-function: ease !important; }

.ease-in {
  transition-timing-function: ease-in !important; }

.ease-out {
  transition-timing-function: ease-out !important; }

.ease-in-out {
  transition-timing-function: ease-in-out !important; }

.bounce-in {
  transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; }

.bounce-out {
  transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; }

.bounce-in-out {
  transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; }

.short-delay {
  transition-delay: 300ms !important; }

.long-delay {
  transition-delay: 700ms !important; }

/* END: VENDOR */
/* START: GLOBAL */
/* START: TEMPORARY */
/* END: TEMPORARY */
/* START: FLO ICONS */
/* END: FLO ICONS */
/* START: MIXINS */
/* End: Transitions */
/* End: Transitions */
/* Start: Background image */
/* End: Background image */
/* Start: Box Sizing */
/* End: Box sizing */
/* END: MIXINS */
/* START: COLORS */
/* END: COLORS */
/* START: FONTS */
/* END: FONTS */
/* START: GLOBAL STYLES */
@media screen and (min-width: 48em) {
  html {
    font-size: 1.21vw; } }

*:not(.flo-post) a, *:not(.flo-post__styles) a {
  transition: color 0.4s, opacity 0.4s, filter 0.4s;
  transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }

*:not(.flo-post) .hover-block, *:not(.flo-post__styles) .hover-block {
  display: block; }
  *:not(.flo-post) .hover-block figure, *:not(.flo-post__styles) .hover-block figure {
    opacity: 1;
    transition: opacity 0.4s, filter 0.4s;
    transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }
    *:not(.flo-post) .hover-block figure:hover, *:not(.flo-post__styles) .hover-block figure:hover {
      opacity: 0.6; }
  *:not(.flo-post) .hover-block:hover, *:not(.flo-post__styles) .hover-block:hover {
    color: inherit; }

*:not(.flo-post) ul, *:not(.flo-post__styles) ul {
  list-style: none;
  margin: 0;
  padding: 0; }

.text-underline:after {
  content: '';
  border-top: 1px solid #383838;
  opacity: 0;
  display: block; }

.text-underline:hover:after {
  opacity: 1;
  transition: opacity 0.4s, filter 0.4s;
  transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }

body {
  overflow-x: hidden;
  color: #383838;
  width: 100%; }

h1, h2, h3, h4, h5, h6 {
  margin: 0; }

[class^="flo-icon-"]:before,
[class*=" flo-icon-"]:before {
  width: auto;
  height: auto; }

img {
  image-rendering: -moz-crisp-edges;
  image-rendering: -o-crisp-edges;
  image-rendering: -webkit-optimize-contrast;
  -ms-interpolation-mode: nearest-neighbor;
  transform: scale(0.999); }

button {
  outline: none; }

a {
  color: inherit; }
  a:hover {
    color: inherit; }

figure {
  margin: 0; }

.row {
  max-width: none;
  width: initial; }

@media screen and (min-width: 48em) {
  .row-flex {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; } }

.column, .columns {
  padding: 0;
  float: none; }

.flo-btn {
  border: 0;
  background: 0;
  outline: 0;
  box-shadow: none;
  text-transform: uppercase;
  cursor: pointer;
  color: inherit; }

.flo-btn--link {
  font-size: 0.75rem;
  font-family: "AmplitudeCond-Regular";
  letter-spacing: .375em;
  display: inline-block;
  transition: color 0.4s, filter 0.4s;
  transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }
  .flo-btn--link:hover {
    color: #e5e5e5; }

.title-line-up:before {
  content: '─';
  display: block;
  line-height: 1;
  padding-bottom: 0.5rem; }

.title-line-bottom {
  position: relative;
  padding-bottom: 3.125rem; }
  .title-line-bottom:after {
    content: '';
    display: block;
    height: 1.625rem;
    width: 2px;
    background: #383838;
    position: absolute;
    bottom: 0;
    left: 0; }
  .title-line-bottom--center:after {
    left: 50%;
    transform: translate(-50%, 0); }
  @media screen and (max-width: 47.9375em) {
    .title-line-bottom {
      text-align: center; }
      .title-line-bottom:after {
        left: 50%;
        transform: translate(-50%, 0); } }

.slick-initialized .slick-slide {
  outline: none; }

input[type]:not([type="submit"]),
textarea {
  border-color: transparent;
  border-width: 1px;
  border-style: solid;
  font-size: 0.5rem;
  font-family: "Adobe Caslon Pro";
  letter-spacing: 0.75em;
  font-weight: normal;
  box-shadow: none;
  padding: 0;
  box-sizing: border-box;
  transition: background-image 0.4s, border-color 0.4s, line-height 0.4s, letter-spacing 0.4s, color 0.4s, padding 0.4s, filter 0.4s;
  transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }
  input[type]:not([type="submit"])::-webkit-input-placeholder,
  textarea::-webkit-input-placeholder {
    color: #383838;
    opacity: 1; }
  input[type]:not([type="submit"])::-moz-placeholder,
  textarea::-moz-placeholder {
    color: #383838;
    opacity: 1; }
  input[type]:not([type="submit"]):-ms-input-placeholder,
  textarea:-ms-input-placeholder {
    color: #383838;
    opacity: 1; }
  input[type]:not([type="submit"]):-moz-placeholder,
  textarea:-moz-placeholder {
    color: #383838;
    opacity: 1; }
  input[type]:not([type="submit"]):hover, input[type]:not([type="submit"]):focus,
  textarea:hover,
  textarea:focus {
    background-image: none;
    border-color: #e6e6e6;
    padding: 1.0625rem;
    line-height: 1.8em; }

input[type]:not([type="submit"]) {
  background: none;
  height: 3.125rem;
  border-bottom-color: #e5e5e5; }
  input[type]:not([type="submit"])::-webkit-input-placeholder {
    color: inherit; }
  input[type]:not([type="submit"])::-moz-placeholder {
    color: inherit; }
  input[type]:not([type="submit"]):-ms-input-placeholder {
    color: inherit; }
  input[type]:not([type="submit"])::placeholder {
    color: inherit; }
  input[type]:not([type="submit"]):hover, input[type]:not([type="submit"]):focus {
    letter-spacing: 0.1em; }

input[type]:not([type="submit"]):hover, input[type]:not([type="submit"]):focus,
textarea:hover,
textarea:focus {
  box-shadow: none;
  outline: none; }

input[type='submit'] {
  border: 0;
  background: 0;
  outline: 0;
  padding: 0;
  box-shadow: none;
  cursor: pointer;
  color: inherit;
  font-size: 0.75rem;
  font-family: "AmplitudeCond-Regular";
  letter-spacing: .375em;
  text-decoration: underline !important;
  display: inline-block;
  transition: color 0.4s, filter 0.4s;
  transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }
  input[type='submit']:hover {
    color: #e5e5e5; }

textarea {
  resize: none;
  height: 16.25rem;
  line-height: calc(1.2em + 2.125rem);
  background-image: linear-gradient(to right, transparent 0, transparent 0), linear-gradient(to left, transparent 0, transparent 0), repeating-linear-gradient(transparent, transparent calc(1em + 2.125rem), #e5e5e5 calc(1em + 2.125rem), #e5e5e5, transparent calc(1em + 2.125rem + 0.0875rem)); }

/* END: GLOBAL STYLES */
/* START: APPEAR ANIMATION */
body:not(.flo-appear-disabled) .layout-sections--scroll-normal .flo-section,
body:not(.flo-appear-disabled) .flo_page > .flo-section:not(:first-of-type):not(.disable-appear),
body:not(.flo-appear-disabled) .flo-post > *,
body:not(.flo-appear-disabled) .flo-footer,
body:not(.flo-appear-disabled) .to-appear,
body:not(.flo-appear-disabled) .widget:not(:first-child) {
  opacity: 0;
  transform: translateY(5rem);
  transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }
  body:not(.flo-appear-disabled) .layout-sections--scroll-normal .flo-section:nth-child(1n),
  body:not(.flo-appear-disabled) .flo_page > .flo-section:not(:first-of-type):not(.disable-appear):nth-child(1n),
  body:not(.flo-appear-disabled) .flo-post > *:nth-child(1n),
  body:not(.flo-appear-disabled) .flo-footer:nth-child(1n),
  body:not(.flo-appear-disabled) .to-appear:nth-child(1n),
  body:not(.flo-appear-disabled) .widget:not(:first-child):nth-child(1n) {
    transition: opacity 0.4s, transform 0.4s, color 0.4s; }
  body:not(.flo-appear-disabled) .layout-sections--scroll-normal .flo-section:nth-child(2n),
  body:not(.flo-appear-disabled) .flo_page > .flo-section:not(:first-of-type):not(.disable-appear):nth-child(2n),
  body:not(.flo-appear-disabled) .flo-post > *:nth-child(2n),
  body:not(.flo-appear-disabled) .flo-footer:nth-child(2n),
  body:not(.flo-appear-disabled) .to-appear:nth-child(2n),
  body:not(.flo-appear-disabled) .widget:not(:first-child):nth-child(2n) {
    transition: opacity 0.4s 0.1s, transform 0.4s 0.1s, color 0.4s; }
  body:not(.flo-appear-disabled) .layout-sections--scroll-normal .flo-section.visible,
  body:not(.flo-appear-disabled) .flo_page > .flo-section:not(:first-of-type):not(.disable-appear).visible,
  body:not(.flo-appear-disabled) .flo-post > *.visible,
  body:not(.flo-appear-disabled) .flo-footer.visible,
  body:not(.flo-appear-disabled) .to-appear.visible,
  body:not(.flo-appear-disabled) .widget:not(:first-child).visible {
    opacity: 1;
    transform: translateY(0); }

/* END: APPEAR ANIMATION */
/* START: Z-INDEX MAP */
.flo-page-has-sidebar__sidebar {
  z-index: 9; }

.flo-slider-arrow {
  z-index: 9; }

.flo-page-hero__logo {
  z-index: 11; }

/* END: Z-INDEX MAP */
/* START: HTML OVERFLOW FOR SAFARI FIX */
html {
  overflow-y: scroll;
  overflow-x: hidden; }

body {
  overflow-x: hidden !important;
  overflow-y: hidden !important;
  height: auto; }

/* END: HTML OVERFLOW FOR SAFARI FIX */
/* START: FIX ROWS IN SAFARI */
.row:before {
  width: 0; }

/* END: FIX ROWS IN SAFARI */
/* END: GLOBAL */
/* START: COMPONENTS (KEEP THIS ONE AT THE BOTTOM ALL THE TIME) */
.flo-block-title-wrap {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: center;
      justify-content: center;
  border-bottom: 1px solid #ddd;
  padding: 1.03125rem 0; }

.flo-dropdown-menu .flo-icon {
  font-size: 1.375rem;
  position: relative;
  width: 2.375rem; }
  .flo-dropdown-menu .flo-icon:before, .flo-dropdown-menu .flo-icon:after {
    text-align: center;
    transition: visibility 0.4s, opacity 0.4s, font-size 0.4s, filter 0.4s;
    transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95);
    position: absolute;
    top: 50%;
    transform: translate(0, -50%); }
  .flo-dropdown-menu .flo-icon:after {
    content: '\e805';
    font-family: 'flo-icons';
    visibility: hidden;
    opacity: 0; }

.flo-dropdown-menu .hover .flo-icon {
  color: #5a5a5a;
  font-size: 0.875rem; }
  .flo-dropdown-menu .hover .flo-icon:before {
    opacity: 0;
    visibility: hidden; }
  .flo-dropdown-menu .hover .flo-icon:after {
    visibility: visible;
    opacity: 1; }

.flo-dropdown-menu__btn {
  font-size: 0.6875rem;
  font-family: "AmplitudeCond-Regular";
  text-transform: uppercase;
  letter-spacing: 0.2185em;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  outline: none;
  height: 100%; }

.flo-dropdown-menu__pane {
  width: 100%;
  text-align: right;
  border: 0;
  opacity: 0;
  box-sizing: content-box;
  transition: visibility 0.4s, opacity 0.4s, right 0.4s, filter 0.4s;
  transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95);
  left: initial !important;
  right: -100%; }
  .flo-dropdown-menu__pane.is-open {
    opacity: 1;
    right: 0; }

.flo-dropdown-menu__link {
  font-family: "Butler";
  font-size: 2.8125rem;
  outline: none; }

@media screen and (min-width: 48em) {
  .flo-dropdown-menu__pane {
    padding: 9.5rem 2.5rem;
    min-height: 26.25rem; } }

@media screen and (max-width: 47.9375em) {
  .flo-dropdown-menu__pane {
    padding: 5rem 0;
    text-align: center; } }

.flo-form-1__field {
  margin-bottom: 0.59375rem; }
  .flo-form-1__field:last-of-type {
    margin-bottom: 0; }

.flo-form-1__textarea {
  padding-top: 0.9375rem; }

.flo-form-1 input[type],
.flo-form-1 textarea,
.flo-form-1 .parsley-errors-list li {
  font-family: "AmplitudeCond-Regular";
  font-size: 0.6875rem;
  letter-spacing: 0.1875em;
  text-align: center;
  margin: 0; }

.flo-form-1 .parsley-errors-list {
  margin-top: 0.625rem;
  margin-bottom: 1.25rem;
  transition: max-height 0.4s, filter 0.4s;
  transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95);
  animation: 0.4s parsley-errors-list__appear; }

@keyframes parsley-errors-list__appear {
  0% {
    max-height: 0; }
  100% {
    max-height: 6.25rem; } }

.flo-form-1 .parsley-required {
  color: red; }

.flo-form-1 input[type="submit"] {
  display: block;
  margin: 2.1875rem auto 0;
  text-decoration: none !important; }

.flo-form input[type] {
  margin: 0; }

.flo-form__field {
  margin-bottom: 1.46875rem; }
  .flo-form__field:last-of-type {
    margin-bottom: 0; }

.flo-form input[type="submit"] {
  margin-top: 2.5rem; }

.flo-modal {
  position: fixed;
  z-index: 9;
  background: rgba(255, 255, 255, 0.5);
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  display: none; }
  .flo-modal .thx-msg {
    width: 300px;
    height: 200px;
    text-align: center;
    padding: 20px;
    vertical-align: middle;
    margin: 0 auto;
    top: 50%;
    margin-top: -180px;
    position: absolute;
    left: 50%;
    margin-left: -170px;
    background-color: #fff;
    border: 2px solid #e5e5e5; }

.contact-response p {
  border-radius: 0.78125rem;
  border: 2px dashed #e5e5e5;
  padding: 0.9375rem;
  margin-top: 0.9375rem;
  color: #383838; }

*[data-lqip-src] {
  transition: filter 0.4s, background-image 0.4s, filter 0.4s;
  transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }
  *[data-lqip-src]:not(.flo-lqip--original-loaded) {
    filter: blur(40px); }

.flo-page-head {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: stretch;
      align-items: stretch;
  -ms-flex-pack: justify;
      justify-content: space-between;
  width: calc(100% - 5rem);
  margin: 0 auto; }
  .flo-page-head--with-border {
    border-bottom: 1px solid #ddd; }
  .flo-page-head__dropdown {
    visibility: hidden; }
    .flo-page-head__dropdown .flo-dropdown-menu {
      height: 100%; }
  .flo-page-head--has-dropdown-menu .flo-page-head__dropdown {
    visibility: visible; }
  .flo-page-head__decoration-image {
    display: inline-block;
    max-width: 5.55rem;
    margin-bottom: 1.25rem; }
  .flo-page-head__title {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex-pack: center;
        justify-content: center;
    -ms-flex-align: center;
        align-items: center;
    font-size: 0.9375rem;
    font-family: "Butler";
    letter-spacing: 1em;
    text-transform: uppercase;
    text-align: center; }
  .flo-page-head__title-decorative-image img {
    max-height: 5rem;
    margin-bottom: 0.625rem; }
  @media screen and (min-width: 48em) {
    .flo-page-head__title {
      width: 60%;
      padding: 2.6875rem 0; }
    .flo-page-head__left-side {
      width: 20%; }
    .flo-page-head__dropdown {
      width: 20%; }
    .flo-page-head .flo-dropdown-menu__btn {
      margin-left: auto; } }
  @media screen and (max-width: 47.9375em) {
    .flo-page-head {
      -ms-flex-direction: column;
          flex-direction: column;
      -ms-flex-align: center;
          align-items: center;
      width: calc(100% - 3.75rem);
      padding-top: 2.6875rem;
      margin-bottom: 2.5rem; }
      .flo-page-head .flo-dropdown-menu__btn {
        padding: 1.4375rem 0 2.6875rem; } }

.post-password-form {
  max-width: 700px;
  margin: 0 auto; }
  .post-password-form label {
    display: block;
    vertical-align: middle; }
    .post-password-form label input[type="password"] {
      border: 1px solid #181818; }
  .post-password-form input[type="submit"] {
    margin: 0 auto;
    display: block; }
  .post-password-form p {
    font-size: 0.8rem !important; }

.flo-share-wrap {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  font-size: 0.6875rem;
  font-family: "AmplitudeCond-Regular";
  letter-spacing: 0.2185em; }
  @media screen and (min-width: 48em) {
    .flo-share-wrap__link {
      padding-left: 0.71875rem; }
      .flo-share-wrap__link:after {
        content: '/';
        padding-left: 0.96875rem; }
      .flo-share-wrap__link:last-of-type:after {
        display: none; } }
  @media screen and (max-width: 47.9375em) {
    .flo-share-wrap__link {
      margin-right: 0.625rem; }
      .flo-share-wrap__link:first-of-type {
        margin-left: 0.625rem; } }

.slick-slider {
  position: relative; }
  .slick-slider .flo-slider-arrow {
    position: absolute;
    top: 50%;
    transform: translate(0, -50%);
    font-size: 3.125rem;
    cursor: pointer; }
    .slick-slider .flo-slider-arrow:hover {
      color: #ddd;
      transition: color 0.4s, filter 0.4s;
      transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }
  .slick-slider .flo-icon__arrow-left {
    left: 2.5rem; }
  .slick-slider .flo-icon__arrow-right {
    right: 2.5rem; }

.flo-portfolio-title {
  text-align: center;
  -ms-flex: 1;
      flex: 1; }
  .flo-portfolio-title__decoration {
    max-width: 5rem;
    margin: 0 auto 1.375rem; }
  .flo-portfolio-title__text {
    font-size: 0.9375rem;
    font-family: "Butler";
    letter-spacing: 1em;
    text-transform: uppercase;
    margin-right: -1em; }

.search-form {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center; }
  .search-form input[type] {
    min-width: 13.75rem;
    height: 1.75rem;
    letter-spacing: 0.325em;
    text-overflow: ellipsis;
    margin: 0;
    color: white; }
    .search-form input[type]:hover, .search-form input[type]:focus {
      padding-top: 0;
      padding-bottom: 0; }
    .search-form input[type]::-webkit-input-placeholder {
      color: white;
      opacity: 1; }
    .search-form input[type]::-moz-placeholder {
      color: white;
      opacity: 1; }
    .search-form input[type]:-ms-input-placeholder {
      color: white;
      opacity: 1; }
    .search-form input[type]:-moz-placeholder {
      color: white;
      opacity: 1; }
  .search-form__btn {
    font-size: 0.875rem;
    margin-left: 1.25rem;
    transition: color 0.4s, filter 0.4s;
    transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }
    .search-form__btn:hover {
      color: #e5e5e5; }

.social-links {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center; }
  .social-links__label {
    font-family: "Butler";
    font-size: 1rem;
    margin-right: 0.3125rem; }
  .social-links__link {
    width: 1.875rem;
    text-align: center;
    margin-left: 0.3125rem; }
    .social-links__link:first-child {
      margin-left: 0; }

.comments-block {
  /* START: COMMENT */
  /* END: COMMENT */
  /* START: REPLY COMMENT */
  /* END: REPLY COMMENT */ }
  .comments-block__post {
    text-align: center;
    padding: 2.40625rem 0 2.75rem;
    border-bottom: 1px solid #ddd; }
  .comments-block .comment {
    width: 100%;
    position: relative; }
  .comments-block .comment-body {
    margin-bottom: 2.5625rem; }
  .comments-block .comment-avatar {
    display: block;
    width: 2.8125rem;
    height: 2.8125rem;
    border-radius: 2.8125rem;
    overflow: hidden; }
  .comments-block #cancel-comment-reply-link {
    font-size: 0; }
    .comments-block #cancel-comment-reply-link:before {
      content: "\e805";
      font-family: "flo-icons";
      font-size: 1.375rem;
      color: black;
      transition: color 0.4s, filter 0.4s;
      transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }
    .comments-block #cancel-comment-reply-link:hover:before {
      color: #e5e5e5; }
  @media screen and (min-width: 48em) {
    .comments-block {
      /* START: COMMENT */
      /* END: COMMENT */
      /* START: REPLY COMMENT */
      /* END: REPLY COMMENT */ }
      .comments-block .comment-header {
        display: -ms-flexbox;
        display: flex;
        -ms-flex-align: center;
            align-items: center;
        position: relative;
        margin-bottom: 1.375rem; }
      .comments-block .comment-avatar {
        margin-right: 1.53125rem; }
      .comments-block .comment-name-and-date {
        text-align: left; }
      .comments-block .comment-author {
        margin-bottom: 0.375rem; }
      .comments-block .reply {
        position: absolute;
        top: 0;
        right: 0; }
      .comments-block .comment-content {
        text-align: left;
        padding-right: 1.46875rem; }
      .comments-block .comment .comment .comment-header {
        padding-left: 2.59375rem; }
        .comments-block .comment .comment .comment-header:before {
          content: " ";
          position: absolute;
          left: 0;
          top: 50%;
          transform: translateY(-50%);
          height: 1.625rem;
          width: 1px;
          background-color: black; }
      .comments-block .comment .comment .comment-content {
        padding-left: 2.59375rem; } }
  @media screen and (max-width: 47.9375em) {
    .comments-block {
      /* START: COMMENT */
      /* END: COMMENT */
      /* START: REPLY COMMENT */
      /* END: REPLY COMMENT */ }
      .comments-block .comment-header {
        display: -ms-flexbox;
        display: flex;
        -ms-flex-direction: column;
            flex-direction: column;
        -ms-flex-pack: center;
            justify-content: center;
        -ms-flex-align: center;
            align-items: center; }
      .comments-block .comment-avatar {
        margin-bottom: 0.9375rem; }
      .comments-block .comment-author {
        margin-bottom: 0.625rem; }
      .comments-block .comment-meta {
        margin-bottom: 1.5625rem; }
      .comments-block .reply {
        margin-bottom: 1.25rem; }
      .comments-block .comment .comment .comment-body {
        padding: 0 3.125rem; } }

.flo-contact-block-1 {
  padding-top: 5rem;
  padding-bottom: 8.75rem; }
  .flo-contact-block-1--has-no-decoration .flo-contact-block-1__content {
    padding-top: 0; }
  .flo-contact-block-1__content {
    position: relative;
    padding-top: 9.375rem; }
  .flo-contact-block-1__decoration {
    top: 0;
    left: 0;
    position: absolute;
    width: 100%;
    height: 100%;
    background-position: top center;
    background-repeat: no-repeat;
    z-index: -1; }
  .flo-contact-block-1__title {
    text-align: center; }
  .flo-contact-block-1__text {
    font-size: 1.125rem;
    font-family: "Adobe Caslon Pro";
    text-align: center;
    margin-top: 1.875rem; }
    .flo-contact-block-1__text:before {
      content: '|';
      display: block;
      text-align: center;
      margin-bottom: 1.25rem; }
  .flo-contact-block-1__form {
    margin-top: 6.5625rem; }
  @media screen and (min-width: 48em) {
    .flo-contact-block-1 {
      padding-right: 2.5rem;
      padding-left: 2.5rem; }
      .flo-contact-block-1__content {
        max-width: 40%;
        margin: 0 auto; }
      .flo-contact-block-1__text {
        padding-left: 3.75rem;
        padding-right: 3.75rem; }
      .flo-contact-block-1__form {
        padding: 0 2.125rem; } }
  @media screen and (max-width: 47.9375em) {
    .flo-contact-block-1 {
      padding-right: 1.875rem;
      padding-left: 1.875rem; }
      .flo-contact-block-1__title {
        font-size: 2.8125rem; } }

.flo-card-1 {
  text-align: center;
  -ms-flex-pack: center;
      justify-content: center; }
  .flo-card-1__decoration {
    max-width: 7.8125rem;
    height: 10rem;
    margin: 0 auto 4.375rem;
    background-size: contain;
    background-position: center center;
    background-repeat: no-repeat; }
  .flo-card-1__text {
    font-size: 1.125rem;
    font-family: "Adobe Caslon Pro"; }
  .flo-card-1__btn {
    margin-top: 2.625rem; }

.flo-card-2 {
  text-align: center; }
  .flo-card-2__title {
    font-family: "Butler";
    font-size: 2.5rem;
    line-height: 1.2;
    display: inline-block;
    margin-top: 1.75rem; }
    .flo-card-2__title:after {
      border-width: 3px; }
    .flo-card-2__title a:hover {
      color: inherit; }
  @media screen and (min-width: 48em) {
    .flo-card-2__img {
      width: 100%;
      height: 21.875rem;
      background-size: cover;
      background-position: center center;
      background-repeat: no-repeat; }
      .flo-card-2__img img {
        display: none; }
    .flo-card-2__title {
      font-size: 2.8125rem; } }
  @media screen and (max-width: 47.9375em) {
    .flo-card-2__img {
      background: none; } }

.flo-card-3__img-wrap {
  overflow: hidden; }
  .flo-card-3__img-wrap img {
    width: 100%; }

.flo-card-3__img {
  width: 100%; }

.flo-card-3__text {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  text-align: center;
  margin-top: 2.5rem; }

.flo-card-3__img-date {
  font-size: 0.6875rem;
  font-family: "AmplitudeCond-Regular";
  letter-spacing: 0.375em;
  text-transform: uppercase; }

.flo-card-3__title {
  font-size: 1.5rem;
  font-family: "Butler";
  max-width: 14.125rem;
  margin: 0 auto; }

@media screen and (min-width: 48em) {
  .flo-card-3__img {
    height: 14.625rem;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat; }
    .flo-card-3__img img {
      display: none; } }

@media screen and (max-width: 47.9375em) {
  .flo-card-3__img {
    background: none; }
  .flo-card-3__text {
    margin-top: 1.25rem;
    margin-bottom: 3.75rem; }
    .flo-card-3__text .title-line-up:before {
      line-height: 0;
      margin-top: 1.25rem; } }

.flo-card-4__img {
  width: 100%; }

.flo-card-4__text {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  text-align: center;
  margin-top: 2.5rem; }

.flo-card-4__img-date {
  font-size: 0.6875rem;
  font-family: "AmplitudeCond-Regular";
  letter-spacing: 0.375em;
  text-transform: uppercase; }

.flo-card-4__title {
  font-size: 1.875rem;
  font-family: "Butler";
  max-width: 18.75rem;
  margin: 0 auto; }

@media screen and (min-width: 48em) {
  .flo-card-4__img {
    width: 100%;
    height: 31.25rem;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat; }
    .flo-card-4__img img {
      display: none; } }

@media screen and (max-width: 47.9375em) {
  .flo-card-4__img {
    background-image: none !important; }
    .flo-card-4__img img {
      width: 100%; } }

.flo-card-5 {
  width: 100%; }
  .flo-card-5__content {
    display: -ms-flexbox;
    display: flex; }
  .flo-card-5__img img {
    width: 100%; }
  .flo-card-5__text {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column; }
  .flo-card-5__img-date {
    font-size: 0.6875rem;
    font-family: "AmplitudeCond-Regular";
    letter-spacing: 0.375em;
    text-transform: uppercase; }
  .flo-card-5__title {
    font-size: 1.875rem;
    font-family: "Butler";
    max-width: 18.75rem;
    margin: 0 auto; }
  .flo-card-5--inverted .flo-card-5__text {
    text-align: right; }
  @media screen and (min-width: 48em) {
    .flo-card-5__tittle {
      font-size: 1.5rem;
      max-width: 16.25rem; }
    .flo-card-5__text {
      margin-left: 3.75rem; }
    .flo-card-5__img {
      width: 25rem; }
    .flo-card-5--img-medium .flo-card-5__img {
      width: 23.4375rem; }
    .flo-card-5--img-big .flo-card-5__img {
      width: 31.0625rem; }
    .flo-card-5--small .flo-card-5__img {
      width: 10.125rem; }
    .flo-card-5--inverted .flo-card-5__content {
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse; }
    .flo-card-5--inverted .flo-card-5__text {
      margin-right: 2.1875rem; }
    .flo-card-5__img {
      margin: 2.6875rem 0 0 0; } }
  @media screen and (max-width: 47.9375em) {
    .flo-card-5__content {
      -ms-flex-direction: column;
          flex-direction: column; }
    .flo-card-5__text {
      margin-top: 0.625rem; }
    .flo-card-5--inverted .flo-card-5__item {
      margin-left: auto; } }

.flo-card-side {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  width: 100%;
  margin-bottom: 1.75rem; }
  .flo-card-side:first-of-type {
    margin-top: 1.25rem; }
  .flo-card-side__content {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column; }
  .flo-card-side__img {
    width: 10.125rem;
    height: 6.75rem;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat; }
  .flo-card-side__img--hide img {
    display: none; }
  .flo-card-side__tittle {
    max-width: 14.375rem;
    text-decoration: none; }
  .flo-card-side--inverted .flo-card-side__item {
    text-align: right; }
  .flo-card-side--small .flo-card-side__img {
    width: 16.375rem;
    height: 10.8075rem; }
  @media screen and (min-width: 48em) {
    .flo-card-side__tittle {
      font-size: 1.5rem;
      max-width: 16.25rem; }
    .flo-card-side__content {
      -ms-flex-direction: row;
          flex-direction: row; }
    .flo-card-side__item--right {
      margin-left: 3.75rem; }
    .flo-card-side--inverted {
      -ms-flex-align: end;
          align-items: flex-end; }
      .flo-card-side--inverted .flo-card-side__content {
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
      .flo-card-side--inverted .flo-card-side__item--right {
        margin-right: 2.5rem; }
    .flo-card-side__img {
      width: 22.8125rem;
      height: 15.05625rem;
      margin: 2rem 0 0 0; } }
  @media screen and (max-width: 47.9375em) {
    .flo-card-side {
      width: 100%; }
      .flo-card-side__item {
        box-sizing: border-box;
        width: 100%; }
      .flo-card-side__tittle {
        max-width: 100% !important;
        text-align: center; }
      .flo-card-side__img {
        width: 100% !important;
        height: 12.5rem !important; }
      .flo-card-side__item--right {
        margin-top: 0.625rem; }
      .flo-card-side--inverted .flo-card-side__item {
        margin-left: auto; } }

.flo-divider {
  width: 100%;
  height: 1px;
  background-color: #959595; }
  @media screen and (min-width: 48em) {
    .flo-divider {
      margin-top: 2.5rem; } }
  @media screen and (max-width: 47.9375em) {
    .flo-divider {
      margin-top: 2.5rem; } }

@media screen and (min-width: 48em) {
  .flo-footer-sidebars {
    margin-bottom: 2.5rem; }
    .flo-footer-sidebars--three-columns .row .column, .flo-footer-sidebars--three-columns .row .columns {
      width: calc( (100% - 1.25rem * (3 - 1) ) / 3); }
      .flo-footer-sidebars--three-columns .row .column:first-child, .flo-footer-sidebars--three-columns .row .columns:first-child, .flo-footer-sidebars--three-columns .row .column:nth-child(2), .flo-footer-sidebars--three-columns .row .columns:nth-child(2) {
        margin-right: 1.25rem; } }

@media screen and (max-width: 47.9375em) {
  .flo-footer-sidebars .row .column, .flo-footer-sidebars .row .columns {
    margin-bottom: 2.5rem; } }

.flo-footer {
  position: relative;
  width: 100%;
  background-color: transparent; }
  .flo-footer__content {
    margin: 0 auto;
    width: calc(100% - 5rem);
    padding-top: 3.125rem;
    border-top: 1px solid #e5e5e5; }
  .flo-footer__decoration {
    position: absolute;
    top: 0;
    left: 0;
    background-position: right 0.625rem;
    background-repeat: no-repeat;
    width: 100%;
    height: 100%;
    z-index: -1; }
  .flo-footer--scrollable flo-footer {
    margin-top: 0; }
  .flo-footer__copyrights-wrap {
    width: 100%;
    text-align: center;
    padding-top: 2.8125rem; }
  .flo-footer__scroll-up {
    cursor: pointer;
    transition: color 0.4s, filter 0.4s;
    transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }
    .flo-footer__scroll-up:hover {
      color: #e5e5e5; }
    .flo-footer__scroll-up .flo-icon__arrow-up {
      font-size: 1.25rem;
      padding-left: 0.75rem; }
  .flo-footer__copyrights-flo a {
    font-size: 0.875rem; }
  @media screen and (min-width: 48em) {
    .flo-footer__instagram-feed {
      margin-top: 3.5rem; }
      .flo-footer__instagram-feed .flo-shcode-instgm-container {
        display: -ms-flexbox;
        display: flex;
        -ms-flex-pack: justify;
            justify-content: space-between; }
      .flo-footer__instagram-feed .img-block {
        width: calc(100% / 6 - 2.99479rem) !important; }
    .flo-footer__bottom {
      display: -ms-flexbox;
      display: flex;
      -ms-flex-direction: column;
          flex-direction: column;
      border-top: 1px solid #e5e5e5;
      padding: 1.75rem 0;
      margin: 4.25rem auto 0;
      width: calc(100% - 5rem); }
    .flo-footer__bottom-first {
      width: 100%;
      text-align: center;
      position: relative; }
    .flo-footer__subscribe, .flo-footer__scroll-up {
      width: 30%;
      position: absolute;
      top: 50%;
      transform: translateY(-50%); }
    .flo-footer__subscribe {
      left: 0;
      text-align: left; }
    .flo-footer__text {
      width: 40%;
      text-align: center; }
    .flo-footer__scroll-up {
      text-align: right;
      right: 0; } }
  @media screen and (max-width: 47.9375em) {
    .flo-footer__instagram-feed .img-block {
      margin-bottom: 1.25rem; }
    .flo-footer__content {
      width: calc(100% - 3.75rem); }
    .flo-footer__bottom {
      -ms-flex-direction: column;
          flex-direction: column;
      -ms-flex-pack: distribute;
          justify-content: space-around;
      padding: 1.875rem 0; }
    .flo-footer__bottom-first {
      display: -ms-flexbox;
      display: flex;
      -ms-flex-direction: column;
          flex-direction: column;
      -ms-flex-pack: center;
          justify-content: center;
      -ms-flex-align: center;
          align-items: center; }
    .flo-footer__text {
      margin: 1.875rem 0; } }

.flo-generic-categories-and-tags {
  width: 100%; }
  .flo-generic-categories-and-tags__list {
    text-align: center;
    margin-bottom: 0.875rem; }
  .flo-generic-categories-and-tags--simple {
    padding: 0 !important; }
    .flo-generic-categories-and-tags--simple .flo-generic-categories-and-tags__list {
      text-align: left; }
  @media screen and (min-width: 48em) {
    .flo-generic-categories-and-tags {
      padding-top: 4.625rem; } }
  @media screen and (max-width: 47.9375em) {
    .flo-generic-categories-and-tags {
      padding-top: 2.1875rem; } }

.flo-header-mobile {
  width: 100%;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: justify;
      justify-content: space-between;
  -ms-flex-align: center;
      align-items: center;
  background-color: #383838;
  color: white;
  padding: 0.625rem 1.875rem;
  box-sizing: border-box; }
  .flo-header-mobile__hamburger {
    font-size: 1.25rem;
    cursor: pointer; }
  .flo-header-mobile .flo-icon__sidebar {
    display: none;
    cursor: pointer; }
  .flo-header-mobile__menu {
    width: 20%; }
  .flo-header-mobile__menu--right {
    text-align: right; }
  .flo-header-mobile__logo {
    width: 60%;
    max-width: 150px;
    text-align: center;
    font-size: 1.875rem;
    font-family: "Malarkey";
    line-height: 1; }
    .flo-header-mobile__logo:visited {
      color: #fff; }
  @media screen and (min-width: 48em) {
    .flo-header-mobile {
      display: none; } }

.flo-header__menu-donor {
  display: none; }

.flo-header__menu > * {
  display: inline-block; }

.flo-header__menu li {
  padding: 1.25rem;
  position: relative;
  min-width: 7.5rem;
  text-align: center; }

.flo-header__menu .menu-item ul {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translate(-50%, 0);
  opacity: 0;
  visibility: hidden;
  z-index: 101;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-align: center;
      align-items: center;
  min-width: 18.75rem;
  padding: 2.5rem;
  border: 0;
  background: none;
  transition: opacity 0.4s, visibility 0.4s, filter 0.4s;
  transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }
  .flo-header__menu .menu-item ul:before {
    content: '';
    position: absolute;
    height: 100%;
    width: 100%;
    padding: 0 1000em;
    margin: 0 -1000em;
    background-color: #383838;
    opacity: 1;
    left: 0;
    top: 0; }
  .flo-header__menu .menu-item ul li {
    margin: 0 0 1rem 0;
    text-align: center;
    padding: 0;
    width: 100%; }
  .flo-header__menu .menu-item ul a {
    white-space: nowrap;
    transition: color 0.4s, opacity 0.4s, filter 0.4s;
    transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }
    .flo-header__menu .menu-item ul a:before {
      content: '─';
      display: block; }
    .flo-header__menu .menu-item ul a:hover {
      color: #e5e5e5; }
  .flo-header__menu .menu-item ul ul {
    top: 0;
    left: 100%;
    position: absolute;
    transform: translate(0%, 0);
    padding: 0.625rem 0;
    background-color: #383838;
    border: 0;
    min-width: 10rem; }
    .flo-header__menu .menu-item ul ul li {
      margin: 0;
      padding: 0.625rem 2.5rem; }
    .flo-header__menu .menu-item ul ul a {
      white-space: nowrap; }
      .flo-header__menu .menu-item ul ul a:before {
        display: none; }
    .flo-header__menu .menu-item ul ul:before {
      display: none; }

.flo-header__menu .menu-item:hover ul {
  visibility: visible;
  opacity: 1; }

.flo-header__menu .menu-item .is-dropdown-submenu-parent ul {
  visibility: hidden;
  opacity: 0; }

.flo-header__menu .menu-item .is-dropdown-submenu-parent:hover .js-dropdown-active {
  visibility: visible;
  opacity: 1; }

.flo-header__menu .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after,
.flo-header__menu .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {
  display: none; }

.flo-header__logo {
  font-size: 1.875rem;
  font-family: "Malarkey";
  color: white;
  box-sizing: content-box; }
  .flo-header__logo-image {
    width: 100%; }

.flo-header__addons {
  display: inline-block !important;
  box-sizing: border-box;
  list-style: none; }

@media screen and (min-width: 48em) {
  .flo-header {
    width: 100%;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
        justify-content: space-between;
    -ms-flex-align: center;
        align-items: center;
    background-color: #383838; }
    .flo-header--logo-center .flo-header__menu {
      width: 35%; }
    .flo-header--logo-center .flo-header__logo {
      padding: 1.25rem 0; }
    .flo-header--logo-left .flo-header__logo, .flo-header--logo-right .flo-header__logo {
      padding: 1.25rem 2.5rem; }
    .flo-header__menu ul {
      display: -ms-flexbox;
      display: flex;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
    .flo-header__menu--left ul {
      -ms-flex-pack: end;
          justify-content: flex-end; }
    .flo-header__menu--right ul {
      -ms-flex-pack: start;
          justify-content: flex-start; } }

@media screen and (min-width: 64.0625em) {
  .flo-header__logo {
    max-width: 200px; } }

@media screen and (min-width: 48em) and (max-width: 64em) {
  .flo-header__logo {
    max-width: 200px; } }

@media screen and (max-width: 47.9375em) {
  .flo-header {
    display: none; } }

.flo-header__search {
  position: relative;
  min-width: initial !important; }

.flo-header__search-trigger {
  position: relative; }
  .flo-header__search-trigger i {
    transition: opacity 0.4s, filter 0.4s;
    transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95);
    font-size: 0.9375rem; }

.flo-header__search-trigger-close-icon {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0; }

.flo-header__search-wrap {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 100%;
  width: 6.25rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s, filter 0.4s;
  transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }

.flo-header__search-input {
  color: #FFFFFF !important;
  margin-bottom: 0;
  width: 17.5rem; }

.flo-header__menu li:not(.flo-header__search), .flo-header__logo {
  transition: opacity 0.4s, filter 0.4s;
  transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }

.flo-header--search-expanded .flo-header__search-trigger-search-icon {
  opacity: 0; }

.flo-header--search-expanded .flo-header__search-trigger-close-icon {
  opacity: 1; }

.flo-header--search-expanded .flo-header__search-wrap {
  opacity: 1;
  pointer-events: initial; }

.flo-header--search-expanded .flo-header__menu li:not(.flo-header__search),
.flo-header--search-expanded .flo-header__logo {
  opacity: 0;
  pointer-events: none; }

/* START: STICKY STUFF */
#flo-header-sticky-wrapper .flo-header {
  bottom: auto; }

/* END: STICKY STUFF */
.flo-hero-2__slide-content {
  height: 36.25rem;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  display: block; }

.flo-hero-2__slide {
  position: relative;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-align: center;
      align-items: center; }

.flo-hero-2__text-block {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-align: end;
      align-items: flex-end;
  -ms-flex-pack: center;
      justify-content: center;
  position: absolute;
  top: 0;
  width: calc(100% - 12.75rem);
  right: 6.375rem;
  height: 100%; }

.flo-hero-2__text {
  color: white;
  max-width: 80%; }

.flo-hero-2__img-date {
  font-size: 0.6875rem;
  font-family: "AmplitudeCond-Regular";
  letter-spacing: 0.375em;
  text-transform: uppercase; }

.flo-hero-2__title {
  font-size: 1.5rem;
  font-family: "Butler"; }

.flo-hero-2__text--large .flo-hero-2__title {
  font-size: 2.25rem; }

@media screen and (max-width: 47.9375em) {
  .flo-hero-2__slide-content {
    height: 30rem; }
  .flo-hero-2__text-block {
    text-align: center;
    width: 100%;
    right: 0;
    -ms-flex-align: center;
        align-items: center; } }

.flo-section--hero-2:last-child {
  margin-bottom: 5rem; }

.flo-section--flo-hero-3 .flo-section__content {
  padding: 0; }

.flo-hero-3 {
  color: white; }
  .flo-hero-3__slider {
    opacity: 0;
    transition: opacity 0.4s, filter 0.4s;
    transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }
    .flo-hero-3__slider.slick-initialized {
      opacity: 1; }
  .flo-hero-3 .slider .slick-slide:not(:first-child) {
    opacity: 0; }
  .flo-hero-3 .slick-track .slick-slide:not(:first-child) {
    opacity: 1; }
  .flo-hero-3__slide {
    border-left: 2px solid #fff;
    overflow: hidden; }
  .flo-hero-3__slide-content {
    height: 36.6875rem;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    display: block;
    background-size: contain; }
  @media screen and (min-width: 48em) {
    .flo-hero-3 .flo-icon__arrow-left {
      left: 4.0625rem; }
    .flo-hero-3 .flo-icon__arrow-right {
      right: 4.0625rem; }
    .flo-hero-3 .slick-slide img {
      height: 36.6875rem; } }
  @media screen and (max-width: 47.9375em) {
    .flo-hero-3 .flo-icon__arrow-left,
    .flo-hero-3 .flo-icon__arrow-right {
      top: 0.625rem;
      transform: translate(0, 0);
      color: #383838; }
    .flo-hero-3 .flo-icon__arrow-left {
      left: 0.625rem; }
    .flo-hero-3 .flo-icon__arrow-right {
      right: 0.625rem; }
    .flo-hero-3__slide-content {
      display: none; }
    .flo-hero-3 .slick-slide img {
      display: block; }
    .flo-hero-3__slide-img {
      width: 100vw;
      display: block; } }

.flo-section--flo-hero-4 .flo-section__content {
  padding: 0; }

.flo-hero-4 {
  color: white; }
  .flo-hero-4__slider {
    opacity: 0;
    transition: opacity 0.4s, filter 0.4s;
    transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }
    .flo-hero-4__slider.slick-initialized {
      opacity: 1; }
  .flo-hero-4 .slider .slick-slide:not(:first-child) {
    opacity: 0; }
  .flo-hero-4 .slick-track .slick-slide:not(:first-child) {
    opacity: 1; }
  .flo-hero-4__slide {
    border-left: 2px solid #fff;
    overflow: hidden; }
  .flo-hero-4__slide-content {
    height: 36.6875rem;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    display: block;
    background-size: contain; }
  .flo-hero-4__slide {
    position: relative; }
    .flo-hero-4__slide:before {
      content: "...";
      display: block;
      color: black;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      font-size: 1.75rem; }
  .flo-hero-4 .slick-slide img {
    display: none; }
  .flo-hero-4__slide-img {
    position: relative;
    display: none; }
    .flo-hero-4__slide-img--bgi {
      background-size: contain;
      background-position: center center;
      background-repeat: no-repeat;
      width: 100vw;
      transition: opacity 0.4s, filter 0.4s;
      transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }
      .flo-hero-4__slide-img--bgi.flo-lazy-bgi {
        opacity: 0; }
  @media screen and (min-width: 48em) {
    .flo-hero-4 .flo-icon__arrow-left,
    .flo-hero-4 .flo-icon__arrow-right {
      color: black; }
    .flo-hero-4 .flo-icon__arrow-left {
      left: 4.0625rem; }
    .flo-hero-4 .flo-icon__arrow-right {
      right: 4.0625rem; }
    .flo-hero-4__slide-img {
      height: 36.6875rem; }
      .flo-hero-4__slide-img--bgi {
        display: block; } }
  @media screen and (max-width: 47.9375em) {
    .flo-hero-4 .flo-icon__arrow-left,
    .flo-hero-4 .flo-icon__arrow-right {
      top: 0.625rem;
      transform: translate(0, 0);
      color: #383838; }
    .flo-hero-4 .flo-icon__arrow-left {
      left: 0.625rem; }
    .flo-hero-4 .flo-icon__arrow-right {
      right: 0.625rem; }
    .flo-hero-4__slide-content {
      display: none; }
    .flo-hero-4 .slick-slide img {
      display: block; }
    .flo-hero-4__slide-img {
      width: 100vw; }
      .flo-hero-4__slide-img--img {
        display: block; } }

.flo-hero-popup .flo-icon__arrow-left {
  left: 4.0625rem; }

.flo-hero-popup .flo-icon__arrow-right {
  right: 4.0625rem; }

.flo-hero-popup__slide-content {
  height: 37.125rem;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  display: block; }

.flo-hero-popup__slide {
  border-left: 2px solid #fff; }

@media screen and (max-width: 47.9375em) {
  .flo-hero-popup__slide-content {
    height: 30rem; } }

.flo-instagram-images {
  box-sizing: border-box; }
  .flo-instagram-images__item {
    width: 11rem;
    height: 11rem;
    padding: 1rem; }
  .flo-instagram-images__img {
    width: 100%;
    height: 100%;
    background-size: contain;
    background-position: center center;
    background-repeat: no-repeat; }
  @media screen and (min-width: 48em) {
    .flo-instagram-images--grid:after {
      content: '';
      clear: both;
      display: block; }
    .flo-instagram-images--grid .flo-instagram-images__item {
      float: left;
      width: 33.33%; }
    .flo-instagram-images--inline {
      display: -ms-flexbox;
      display: flex; } }
  @media screen and (max-width: 47.9375em) {
    .flo-instagram-images--grid .flo-instagram-images__item {
      float: left;
      width: 50%; }
    .flo-instagram-images__item {
      padding: 0.5rem; }
    .flo-instagram-images--inline:after {
      content: '';
      clear: both;
      display: block; }
    .flo-instagram-images--inline .flo-instagram-images__item {
      float: left;
      width: 50%; }
    .flo-instagram-images .columns3 .img-block {
      width: calc(100% / 2) !important; } }

.flo-links-block-1 {
  text-align: center;
  width: 100%; }
  .flo-links-block-1__title {
    font-size: 2.8125rem;
    font-family: "Butler";
    text-align: center;
    margin-bottom: 1.25rem; }
  .flo-links-block-1__field {
    margin-bottom: 1.75rem; }
    .flo-links-block-1__field:last-child {
      margin-bottom: 0; }
  .flo-links-block-1__date {
    font-size: 0.5rem;
    font-family: "Butler";
    letter-spacing: 1em;
    text-transform: uppercase; }
  .flo-links-block-1__location {
    font-size: 1.125rem;
    font-family: "Butler"; }
  @media screen and (min-width: 48em) {
    .flo-links-block-1__row {
      display: -ms-flexbox;
      display: flex;
      -ms-flex-pack: center;
          justify-content: center;
      -ms-flex-align: center;
          align-items: center;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
    .flo-links-block-1__field {
      padding: 0 1.25rem;
      width: 33.33%; } }

.flo-links-block-2__title {
  font-family: "Adobe Caslon Pro";
  font-size: 0.625rem;
  letter-spacing: 0.6875em;
  text-transform: uppercase; }

.flo-links-block-2__item {
  font-family: "Adobe Caslon Pro";
  font-size: 1.125rem;
  line-height: 1.6;
  display: block; }

@media screen and (min-width: 48em) {
  .flo-links-block-2__title {
    margin-bottom: 5rem; }
  .flo-links-block-2__items {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    padding-right: 1.25rem; }
  .flo-links-block-2__item {
    width: 48%;
    margin-right: 2%; }
    .flo-links-block-2__item:nth-child(2n) {
      margin-right: 0; } }

@media screen and (max-width: 47.9375em) {
  .flo-links-block-2__title {
    margin-bottom: 1.875rem; }
  .flo-links-block-2__items {
    margin-bottom: 5rem;
    text-align: center; } }

.flo-mobile-menu {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
  width: 100%;
  color: #fff;
  background: #000000;
  padding-bottom: 2.5rem;
  position: fixed;
  z-index: 999;
  transition: all .5s ease; }
  .flo-mobile-menu__nav {
    padding: 1.875rem;
    overflow-y: auto;
    height: 100%; }
  .flo-mobile-menu__ul, .flo-mobile-menu > ul {
    text-align: center; }
  .flo-mobile-menu__logo {
    font-size: 3.125rem;
    font-family: "Malarkey";
    text-align: center;
    margin-bottom: 5rem;
    display: block;
    line-height: 1; }
    .flo-mobile-menu__logo:visited {
      color: #fff; }
  .flo-mobile-menu__hamburger {
    position: absolute;
    left: 1.875rem;
    bottom: 1.875rem;
    cursor: pointer; }
  .flo-mobile-menu__item, .flo-mobile-menu li {
    margin-bottom: 1.5rem; }
    .flo-mobile-menu__item:last-of-type, .flo-mobile-menu li:last-of-type {
      margin-bottom: 0; }
    .flo-mobile-menu__item a, .flo-mobile-menu li a {
      font-size: 1.125rem;
      font-family: "Butler";
      text-transform: uppercase;
      letter-spacing: 0.1em; }
    .flo-mobile-menu__item ul, .flo-mobile-menu li ul {
      margin-top: 1.5rem; }
    .flo-mobile-menu__item li, .flo-mobile-menu li li {
      margin-top: 0.625rem; }
      .flo-mobile-menu__item li:first-of-type, .flo-mobile-menu li li:first-of-type {
        margin-top: 0; }
      .flo-mobile-menu__item li a, .flo-mobile-menu li li a {
        font-size: 0.75rem;
        font-family: "AmplitudeCond-Regular";
        text-decoration: underline; }
  .flo-mobile-menu__close {
    display: none;
    position: absolute;
    bottom: 1.875rem;
    left: 50%;
    transform: translate(-50%, 0);
    font-size: 1.25rem;
    cursor: pointer; }
  .flo-mobile-menu--without-logo .flo-mobile-menu__logo {
    display: none; }
  .flo-mobile-menu--full-height {
    height: 100%; }
  .flo-mobile-menu--with-padding {
    padding: 1.875rem;
    margin: 0 auto;
    width: calc(100% - 3.75rem);
    height: calc(100% - 3.75rem); }
  .flo-mobile-menu--without-hamburger .flo-mobile-menu__hamburger {
    display: none; }
  .flo-mobile-menu--without-hamburger .flo-mobile-menu__close {
    display: block; }
  .flo-mobile-menu--top {
    top: -100%; }
  .flo-mobile-menu--bottom {
    bottom: -100%; }
  .flo-mobile-menu.mobile-display.flo-mobile-menu--top {
    top: 0; }
    .flo-mobile-menu.mobile-display.flo-mobile-menu--top.flo-mobile-menu--with-padding {
      top: 1.875rem;
      left: 1.875rem; }
  .flo-mobile-menu.mobile-display.flo-mobile-menu--bottom {
    top: 0; }
    .flo-mobile-menu.mobile-display.flo-mobile-menu--bottom.flo-mobile-menu--with-padding {
      bottom: 1.875rem;
      left: 1.875rem; }

.flo-page-hero {
  width: 100%;
  overflow: hidden; }
  .flo-page-hero__slide-content {
    display: block;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    height: 100vh; }
  .flo-page-hero__logo {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    padding: 0 1.875rem;
    box-sizing: border-box; }
  @media screen and (min-width: 48em) {
    .flo-page-hero__logo {
      padding: 0; } }
  @media screen and (max-width: 47.9375em) {
    .flo-page-hero .flo-icon__arrow-left,
    .flo-page-hero .flo-icon__arrow-right {
      top: 0.625rem;
      transform: translate(0, 0);
      color: #383838; }
    .flo-page-hero .flo-icon__arrow-left {
      left: 0.625rem; }
    .flo-page-hero .flo-icon__arrow-right {
      right: 0.625rem; } }

.flo-page-top-nav {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: justify;
      justify-content: space-between;
  -ms-flex-align: center;
      align-items: center;
  margin: 0 auto;
  padding: 1.25rem 0;
  width: calc(100% - 5rem);
  color: white; }
  .flo-page-top-nav--on-hero-page {
    left: 0;
    right: 0;
    position: absolute;
    z-index: 99; }
  @media screen and (max-width: 47.9375em) {
    .flo-page-top-nav {
      width: calc(100% - 3.75rem); } }

.flo_page_wrap {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .flo_page_wrap--padding-top-large {
    padding-top: 9.375rem; }

.flo_page {
  -ms-flex: 1;
      flex: 1;
  max-width: 100%; }

.flo-pagination {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center; }
  .flo-pagination--style-numbers .flo-pagination__prev, .flo-pagination--style-numbers .prev,
  .flo-pagination--style-numbers .flo-pagination__next, .flo-pagination--style-numbers .next {
    display: none; }
  .flo-pagination--style-numbers .flo-pagination__items:before, .flo-pagination--style-numbers .flo-pagination__items:after {
    display: none; }
  .flo-pagination--style-buttons .flo-pagination__prev:after {
    content: "/";
    display: inline-block;
    margin: 0 1.5rem; }
  .flo-pagination--style-buttons .page-numbers {
    display: none; }
    .flo-pagination--style-buttons .page-numbers.next, .flo-pagination--style-buttons .page-numbers.prev {
      display: inline-block; }
    .flo-pagination--style-buttons .page-numbers.prev:after {
      display: none; }
  .flo-pagination--gap-bottom {
    padding-bottom: 3.75rem; }
  .flo-pagination .flo-pagination__prev:after, .flo-pagination .prev:after, .flo-pagination .flo-pagination__next:before, .flo-pagination .next:before {
    content: '/';
    display: inline-block;
    vertical-align: middle; }
  .flo-pagination__prev, .flo-pagination__next, .flo-pagination__spacer {
    display: inline-block;
    width: 9.375rem; }
  .flo-pagination__prev, .flo-pagination .prev {
    text-align: right; }
    .flo-pagination__prev:after, .flo-pagination .prev:after {
      padding-left: 1.5rem; }
  .flo-pagination__next:before, .flo-pagination .next:before {
    padding-right: 1.5rem; }
  .flo-pagination a, .flo-pagination span {
    display: inline-block;
    vertical-align: middle;
    font-size: 0.625rem;
    font-family: "Butler";
    letter-spacing: .1875em;
    text-transform: uppercase;
    text-align: center; }
  .flo-pagination span {
    cursor: default; }
  .flo-pagination__items {
    display: -ms-flexbox;
    display: flex;
    position: relative;
    -ms-flex-align: center;
        align-items: center;
    margin: 0 0.75rem; }
    .flo-pagination__items a, .flo-pagination__items span {
      padding: 0 0.625rem;
      min-width: 3.25rem; }
  @media screen and (max-width: 47.9375em) {
    .flo-pagination {
      -ms-flex-pack: justify;
          justify-content: space-between; } }

.flo-portfolio-card {
  display: block;
  width: 100%;
  cursor: pointer;
  position: relative;
  outline: none; }
  .flo-portfolio-card:after {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    content: '+';
    font-size: 1.875rem;
    line-height: 1em;
    text-align: center;
    color: white;
    width: 2.5rem;
    height: 2.5rem;
    border: 2px solid white;
    border-radius: 50%;
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.4s, visibility 0.4s, filter 0.4s;
    transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }
  .flo-portfolio-card:hover:after {
    visibility: visible;
    opacity: 1; }
  @media screen and (min-width: 48em) {
    .flo-portfolio-card {
      height: 10.5rem;
      background-size: cover;
      background-position: center center;
      background-repeat: no-repeat; }
      .flo-portfolio-card img {
        display: none; } }
  @media screen and (max-width: 47.9375em) {
    .flo-portfolio-card {
      background-image: none !important; }
      .flo-portfolio-card img {
        width: 100%; } }

.flo-portfolio-category-grid__wrap {
  padding: 0.75rem 0;
  border-bottom: 1px solid #ddd;
  margin-bottom: 3.375rem; }

.flo-portfolio-category-grid__title {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-pack: justify;
      justify-content: space-between; }
  .flo-portfolio-category-grid__title:before {
    width: 100%; }

.flo-portfolio-category-grid__link-all {
  font-family: "AmplitudeCond-Regular";
  font-size: 0.75rem;
  letter-spacing: 0.4em;
  text-decoration: underline; }

.flo-portfolio-category-grid .column, .flo-portfolio-category-grid .columns {
  padding-bottom: 2.5625rem;
  display: inline-block; }

.flo-portfolio-category-grid .row:last-of-type {
  margin-bottom: -2.5625rem; }

@media screen and (min-width: 48em) {
  .flo-portfolio-category-grid__wrap {
    padding-right: 3.90625rem;
    padding-left: 3.90625rem; }
  .flo-portfolio-category-grid .column, .flo-portfolio-category-grid .columns {
    padding-left: 0.78125rem;
    padding-right: 0.78125rem; }
  .flo-portfolio-category-grid .row {
    padding: 0 3.90625rem;
    margin-left: -0.78125rem;
    margin-right: -0.78125rem; } }

.flo-portfolio-grid .row:last-of-type {
  margin-bottom: -20; }

.flo-portfolio-grid .column, .flo-portfolio-grid .columns {
  position: relative;
  box-sizing: border-box;
  margin-bottom: 20; }

.flo-portfolio-grid__thumbnail {
  box-sizing: border-box;
  cursor: pointer;
  outline: 0;
  overflow: hidden; }
  .flo-portfolio-grid__thumbnail img {
    width: 100%; }
    .flo-portfolio-grid__thumbnail img:not([src]) {
      height: 12.5rem; }
  .flo-portfolio-grid__thumbnail:after {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    content: '+';
    font-size: 1.875rem;
    line-height: 1em;
    text-align: center;
    color: white;
    width: 2.5rem;
    height: 2.5rem;
    border: 2px solid white;
    border-radius: 50%;
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.4s, visibility 0.4s, filter 0.4s;
    transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }

@media screen and (min-width: 48em) {
  .flo-portfolio-grid {
    padding: 0 3.90625rem; }
    .flo-portfolio-grid .column, .flo-portfolio-grid .columns {
      margin-left: calc(10);
      margin-right: calc(10); }
      .flo-portfolio-grid .column.medium-3, .flo-portfolio-grid .medium-3.columns {
        width: calc(100% / 4 - 10 * 2); }
    .flo-portfolio-grid__thumbnail:hover:after {
      visibility: visible;
      opacity: 1; } }

@media screen and (max-width: 47.9375em) {
  .flo-portfolio-grid .column, .flo-portfolio-grid .columns, .flo-portfolio-grid .columns {
    margin-bottom: 0.625rem; } }

.flo-portfolio-post {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column; }
  .flo-portfolio-post__subtitle {
    font-size: 0.6875rem;
    font-family: "AmplitudeCond-Regular";
    letter-spacing: 0.1875em;
    text-transform: uppercase; }
  .flo-portfolio-post__title {
    font-family: "Butler";
    font-size: 1.875rem; }
  .flo-portfolio-post__share-links {
    padding: 0.375rem 0; }
  .flo-portfolio-post__text {
    padding-top: 3.6875rem;
    font-size: 1.25rem;
    font-family: "Adobe Caslon Pro"; }
  @media screen and (min-width: 48em) {
    .flo-portfolio-post {
      -ms-flex-align: stretch;
          align-items: stretch;
      -ms-flex-direction: row;
          flex-direction: row;
      padding-bottom: 3.125rem; }
      .flo-portfolio-post__text {
        width: 31.25rem;
        padding-left: 2.5rem; }
      .flo-portfolio-post__left {
        width: 24.6875rem;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-direction: column;
            flex-direction: column; }
      .flo-portfolio-post__share-links {
        -ms-flex: 1;
            flex: 1;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-align: end;
            align-items: flex-end; } }

.flo-post-pagination {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: justify;
      justify-content: space-between;
  font-size: 0.6875rem;
  font-family: "AmplitudeCond-Regular";
  letter-spacing: 0.2185em;
  width: calc(100% - 5rem);
  margin: 0 auto;
  padding: 1.09375rem 0;
  border-top: 1px solid #ddd;
  border-bottom: 1px solid #ddd; }
  .flo-post-pagination--align-bottom {
    border-bottom: 0;
    padding: 1.96875rem 0; }
  .flo-post-pagination--margin-top {
    margin-top: 3.875rem; }
  .flo-post-pagination--border-bottom-0 {
    border-bottom: 0; }
  .flo-post-pagination__share-links {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center; }
  .flo-post-pagination__back-to-list {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center; }
  .flo-post-pagination__back-icon {
    font-size: 0.375rem;
    padding-right: 1.375rem; }
  .flo-post-pagination__pager {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center; }
  .flo-post-pagination__pager-item {
    padding-right: 1.59375rem; }
    .flo-post-pagination__pager-item:after {
      content: '/';
      padding-left: 1.59375rem; }
    .flo-post-pagination__pager-item:last-of-type {
      padding-right: 0; }
      .flo-post-pagination__pager-item:last-of-type:after {
        display: none; }
  .flo-post-pagination--bottom {
    margin-top: 4.375rem;
    border-bottom: 0; }
  @media screen and (min-width: 48em) {
    .flo-post-pagination__pager {
      width: 30%;
      -ms-flex-pack: end;
          justify-content: flex-end; }
    .flo-post-pagination__share-links {
      width: 40%; }
    .flo-post-pagination__back-to-list, .flo-post-pagination__spacer {
      width: 30%; }
    .flo-post-pagination--margin-bottom {
      margin-bottom: 5rem; } }
  @media screen and (max-width: 47.9375em) {
    .flo-post-pagination {
      padding-left: 1.875rem;
      padding-right: 1.875rem;
      -ms-flex-direction: column;
          flex-direction: column; }
      .flo-post-pagination__share-links {
        padding-top: 0.75rem; }
      .flo-post-pagination__pager {
        padding-top: 0.75rem; } }

.flo-post-title-wrap {
  text-align: center;
  padding-bottom: 2.8125rem; }
  .flo-post-title-wrap__date {
    font-size: 0.6875rem;
    font-family: "AmplitudeCond-Regular";
    letter-spacing: 0.375em;
    text-transform: uppercase; }
  .flo-post-title-wrap__title {
    font-size: 1.875rem;
    font-family: "Butler";
    max-width: 21.25rem;
    margin: 0 auto; }

body {
  background: transparent;
  background-color: transparent; }

.flo-post-wrap {
  margin: 0 auto;
  max-width: 750px; }

.flo-post, .flo-post__styles {
  font-size: 1.25rem;
  font-family: "Adobe Caslon Pro";
  /* spacing below image */
  /*--------------------------------------------------------------
  3.0 Alignments
  --------------------------------------------------------------*/
  /*--------------------------------------------------------------
  8.0 Lists
  --------------------------------------------------------------*/
  /*--------------------------------------------------------------
  16.0 Media
  --------------------------------------------------------------*/
  /* Make sure embeds and iframes fit their containers. */
  /* Media Elements */
  /* Audio Player */
  /*--------------------------------------------------------------
  16.1 Galleries
  --------------------------------------------------------------*/
  /* spacing below image */ }
  .flo-post img, .flo-post__styles img {
    margin-bottom: 0.15625rem;
    max-width: 100%; }
  .flo-post p:not(:empty), .flo-post__styles p:not(:empty) {
    text-align: justify;
    margin: 1.25rem 0; }
    .flo-post p:not(:empty):last-of-type, .flo-post__styles p:not(:empty):last-of-type {
      margin-bottom: 0; }
  .flo-post a img, .flo-post img, .flo-post img.alignleft, .flo-post img.alignright, .flo-post img.aligncenter, .flo-post__styles a img, .flo-post__styles img, .flo-post__styles img.alignleft, .flo-post__styles img.alignright, .flo-post__styles img.aligncenter {
    margin-bottom: 10px; }
  .flo-post .alignleft, .flo-post__styles .alignleft {
    display: inline;
    float: left;
    margin-right: 1.5em; }
  .flo-post .alignright, .flo-post__styles .alignright {
    display: inline;
    float: right;
    margin-left: 1.5em; }
  .flo-post .aligncenter, .flo-post__styles .aligncenter {
    clear: both;
    display: block;
    margin-left: auto;
    margin-right: auto; }
  .flo-post ul,
  .flo-post ol, .flo-post__styles ul,
  .flo-post__styles ol {
    margin: 0 0 1.5em;
    padding: 0; }
  .flo-post ul, .flo-post__styles ul {
    list-style: disc; }
  .flo-post ol, .flo-post__styles ol {
    list-style: decimal; }
  .flo-post li > ul,
  .flo-post li > ol, .flo-post__styles li > ul,
  .flo-post__styles li > ol {
    margin-bottom: 0;
    margin-left: 1.5em; }
  .flo-post dt, .flo-post__styles dt {
    font-weight: 700; }
  .flo-post dd, .flo-post__styles dd {
    margin: 0 1.5em 1.5em; }
  .flo-post img,
  .flo-post video, .flo-post__styles img,
  .flo-post__styles video {
    height: auto;
    /* Make sure images are scaled correctly. */
    max-width: 100%;
    /* Adhere to container width. */ }
  .flo-post .comment-content .wp-smiley, .flo-post__styles .comment-content .wp-smiley {
    border: none;
    margin-bottom: 0;
    margin-top: 0;
    padding: 0; }
  .flo-post embed,
  .flo-post iframe,
  .flo-post object, .flo-post__styles embed,
  .flo-post__styles iframe,
  .flo-post__styles object {
    margin-bottom: 1.5em;
    max-width: 100%; }
  .flo-post .wp-caption,
  .flo-post .wp-caption a,
  .flo-post .gallery-caption, .flo-post__styles .wp-caption,
  .flo-post__styles .wp-caption a,
  .flo-post__styles .gallery-caption {
    color: #666;
    font-size: 0.6125rem;
    font-style: italic;
    margin-bottom: 1.5em;
    max-width: 100%;
    line-height: 1em; }
  .flo-post .wp-caption img[class*="wp-image-"], .flo-post__styles .wp-caption img[class*="wp-image-"] {
    display: block;
    margin-left: auto;
    margin-right: auto; }
  .flo-post .wp-caption .wp-caption-text, .flo-post .wp-caption-text a, .flo-post__styles .wp-caption .wp-caption-text, .flo-post__styles .wp-caption-text a {
    margin: 0.8075em 0; }
  .flo-post .wp-caption p, .flo-post__styles .wp-caption p {
    margin-bottom: 0; }
  .flo-post .mejs-container, .flo-post__styles .mejs-container {
    margin-bottom: 1.5em; }
  .flo-post .mejs-controls a.mejs-horizontal-volume-slider,
  .flo-post .mejs-controls a.mejs-horizontal-volume-slider:focus,
  .flo-post .mejs-controls a.mejs-horizontal-volume-slider:hover, .flo-post__styles .mejs-controls a.mejs-horizontal-volume-slider,
  .flo-post__styles .mejs-controls a.mejs-horizontal-volume-slider:focus,
  .flo-post__styles .mejs-controls a.mejs-horizontal-volume-slider:hover {
    background: transparent;
    border: 0; }
  .flo-post .gallery-item, .flo-post__styles .gallery-item {
    display: inline-block;
    text-align: left;
    vertical-align: top;
    margin: 0 0 1.5em;
    padding: 0 1em 0 0;
    width: 50%; }
  .flo-post .gallery-columns-1 .gallery-item, .flo-post__styles .gallery-columns-1 .gallery-item {
    width: 100%; }
  .flo-post .gallery-columns-2 .gallery-item, .flo-post__styles .gallery-columns-2 .gallery-item {
    max-width: 50%; }
  .flo-post .gallery-item a,
  .flo-post .gallery-item a:hover,
  .flo-post .gallery-item a:focus, .flo-post__styles .gallery-item a,
  .flo-post__styles .gallery-item a:hover,
  .flo-post__styles .gallery-item a:focus {
    box-shadow: none;
    background: none;
    display: inline-block;
    max-width: 100%; }
  .flo-post .gallery-item a img, .flo-post__styles .gallery-item a img {
    display: block;
    transition: filter 0.2s ease-in;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden; }
  .flo-post .gallery-item a:hover img,
  .flo-post .gallery-item a:focus img, .flo-post__styles .gallery-item a:hover img,
  .flo-post__styles .gallery-item a:focus img {
    filter: opacity(60%); }
  .flo-post .gallery-caption, .flo-post__styles .gallery-caption {
    display: block;
    text-align: left;
    padding: 0 10px 0 0;
    margin-bottom: 0; }
  .flo-post a img, .flo-post img, .flo-post img.alignleft, .flo-post img.alignright, .flo-post img.aligncenter, .flo-post__styles a img, .flo-post__styles img, .flo-post__styles img.alignleft, .flo-post__styles img.alignright, .flo-post__styles img.aligncenter {
    margin-bottom: 10px; }
  @media screen and (min-width: 48em) {
    .flo-post, .flo-post__styles {
      /* Gallery Columns */ }
      .flo-post div.gallery, .flo-post__styles div.gallery {
        font-size: 0px; }
      .flo-post .gallery-item, .flo-post__styles .gallery-item {
        max-width: 25%; }
      .flo-post .gallery-columns-1 .gallery-item, .flo-post__styles .gallery-columns-1 .gallery-item {
        max-width: 100%; }
      .flo-post .gallery-columns-2 .gallery-item, .flo-post__styles .gallery-columns-2 .gallery-item {
        max-width: 50%; }
      .flo-post .gallery-columns-3 .gallery-item, .flo-post__styles .gallery-columns-3 .gallery-item {
        max-width: 33.33%; }
      .flo-post .gallery-columns-4 .gallery-item, .flo-post__styles .gallery-columns-4 .gallery-item {
        max-width: 25%; }
      .flo-post .gallery-columns-5 .gallery-item, .flo-post__styles .gallery-columns-5 .gallery-item {
        max-width: 20%; }
      .flo-post .gallery-columns-6 .gallery-item, .flo-post__styles .gallery-columns-6 .gallery-item {
        max-width: 16.66%; }
      .flo-post .gallery-columns-7 .gallery-item, .flo-post__styles .gallery-columns-7 .gallery-item {
        max-width: 14.285%; }
      .flo-post .gallery-columns-8 .gallery-item, .flo-post__styles .gallery-columns-8 .gallery-item {
        max-width: 12.5%; }
      .flo-post .gallery-columns-9 .gallery-item, .flo-post__styles .gallery-columns-9 .gallery-item {
        max-width: 11.111%; } }

.flo-section {
  box-sizing: border-box;
  width: 100%;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-pack: center;
      justify-content: center; }
  .flo-section__content {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
        justify-content: center;
    -ms-flex-direction: column;
        flex-direction: column;
    padding: 0 1.875rem;
    box-sizing: border-box;
    position: relative;
    overflow: hidden; }
  .flo-section__decoration {
    position: absolute;
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
    pointer-events: none;
    top: 0;
    left: 0;
    box-sizing: border-box;
    z-index: -1; }
  .flo-section__decoration--top-right {
    background-position: top right; }
  .flo-section__decoration--right {
    background-position: top right; }
  .flo-section__decoration--bottom-right {
    background-position: bottom right;
    left: initial;
    right: 1.875rem; }
  .flo-section__decoration--bottom-right-without-gap {
    background-position: bottom right; }
  .flo-section__title-wrap {
    position: relative;
    display: -ms-flexbox;
    display: flex;
    box-sizing: border-box;
    -ms-flex-pack: center;
        justify-content: center;
    -ms-flex-align: center;
        align-items: center;
    border-top: 1px solid #e5e5e5;
    padding: 2.5rem 0;
    width: calc(100% - 3.75rem);
    margin: 0 auto; }
    .flo-section__title-wrap__title-wrap--top {
      -ms-flex-order: -1;
          order: -1; }
  .flo-section__title-wrap--divider-hidden {
    border-top: 0; }
  .flo-section--title-wrap-top .flo-section__title-wrap {
    -ms-flex-order: -1;
        order: -1; }
  .flo-section__instruction {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    font-family: "Adobe Caslon Pro";
    font-size: 0.5rem;
    letter-spacing: 0.6em;
    color: white;
    width: 20%; }
  .flo-section__title {
    font-family: "Butler";
    font-size: 0.9375rem;
    letter-spacing: 1.5625em;
    text-transform: uppercase;
    width: 60%;
    text-align: center; }
  .flo-section__count {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    font-family: "Butler";
    font-size: 0.9375rem;
    width: 20%;
    text-align: right; }
  .flo-section__scroll-down {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    cursor: pointer;
    font-size: 1.25rem;
    transition: color 0.4s, filter 0.4s;
    transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95);
    width: 20%; }
    .flo-section__scroll-down:hover {
      color: #e5e5e5; }
  .flo-section__hamburger {
    width: 20%;
    font-size: 1rem;
    cursor: pointer;
    display: none; }
  .flo-section__title-wrap--count .flo-section__count {
    visibility: visible; }
  .flo-section__title-wrap--scrollable .flo-section__scroll-down {
    visibility: visible; }
  .flo-section__title-wrap--title-small .flo-section__title {
    font-size: 0.625rem;
    letter-spacing: 0.6875em; }
  .flo-section__title-wrap--divider {
    padding-bottom: 0; }
    .flo-section__title-wrap--divider .flo-section__title {
      visibility: hidden; }
  .flo-section__title-wrap-placeholder {
    height: 3.125rem; }
    .flo-section__title-wrap-placeholder--top {
      -ms-flex-order: -1;
          order: -1; }
  @media screen and (min-width: 48em) {
    .flo-section__content {
      padding-left: 9.375rem;
      padding-right: 9.375rem; }
    .flo-section--full-width .flo-section__content {
      padding-left: 0;
      padding-right: 0; }
    .flo-section--padding-large .flo-section__content {
      padding-left: 10.125rem;
      padding-right: 10.125rem; }
    .flo-section--padding-medium .flo-section__content {
      padding-left: 6.375rem;
      padding-right: 6.375rem; }
    .flo-section--padding-small .flo-section__content {
      padding-left: 2.5rem;
      padding-right: 2.5rem; }
    .flo-section--padding-vertical-small .flo-section__content {
      padding-top: 2.5rem;
      padding-bottom: 2.5rem; }
    .flo-section__decoration--bottom-right {
      right: 2.5rem; }
    .flo-section--full-height {
      margin: 0;
      height: 100vh; }
      .flo-section--full-height .flo-section__content {
        -ms-flex: 1;
            flex: 1; } }
  @media screen and (max-width: 47.9375em) {
    .flo-section {
      padding: 1.875rem 0; }
      .flo-section__decoration {
        display: none; }
      .flo-section__title-wrap {
        padding: 1.75rem 0;
        width: calc(100% - 5rem); }
        .flo-section__title-wrap--scrollable .flo-section__scroll-down {
          display: none; }
      .flo-section__title {
        letter-spacing: 0.5em;
        word-wrap: break-word;
        width: 100%; }
      .flo-section__instruction {
        display: none; }
      .flo-section__count {
        display: none; }
      .flo-section--full-height {
        height: auto; } }

@media screen and (min-width: 48em) {
  .layout-sections--scroll-normal .flo-section--full-height {
    height: auto; }
    .layout-sections--scroll-normal .flo-section--full-height .flo-section__content {
      padding-top: 5rem;
      padding-bottom: 5rem; } }

.flo-social-block {
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .flo-social-block__link {
    font-family: "Butler";
    font-size: 1.5rem;
    margin-right: 2.25rem; }
  @media screen and (max-width: 47.9375em) {
    .flo-social-block {
      margin-bottom: 2.5rem; } }

.flo-social-section .flo-instagram-images {
  margin-top: 2.5rem; }

@media screen and (min-width: 48em) {
  .flo-social-section .flo-social-block {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    padding-left: 3.875rem; }
    .flo-social-section .flo-social-block:last-of-type {
      padding-left: 0; } }

@media screen and (max-width: 47.9375em) {
  .flo-social-section {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column; }
    .flo-social-section--order-3 {
      -ms-flex-order: 3;
          order: 3; } }

.flo-splash {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: #ffffff;
  z-index: 100000;
  overflow: hidden; }
  .flo-splash__content {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    opacity: 0; }
  @media screen and (min-width: 48em) {
    .flo-splash__content--medium-up {
      opacity: 1; }
    .flo-splash__content--small-only {
      opacity: 0; } }
  @media screen and (max-width: 47.9375em) {
    .flo-splash__content--medium-up {
      opacity: 0; }
    .flo-splash__content--small-only {
      opacity: 1; } }

.flo-popup-gallery {
  outline: none;
  padding: 0 0 4.375rem; }
  .flo-popup-gallery__top-wrap {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
        justify-content: space-between;
    padding: 1.6875rem 2.5rem; }
  .flo-popup-gallery__top-right {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center; }
  .flo-popup-gallery__title {
    font-size: 2.28125rem;
    font-family: "Butler";
    text-align: center; }
    .flo-popup-gallery__title:before {
      padding-bottom: 0; }
  .flo-popup-gallery__categories {
    display: -ms-flexbox;
    display: flex; }
  .flo-popup-gallery__link {
    font-family: "Butler";
    font-size: 0.975rem;
    color: #959595;
    padding-left: 3.375rem;
    text-align: center; }
    .flo-popup-gallery__link:first-of-type {
      padding-left: 0; }
    .flo-popup-gallery__link:visited {
      color: #959595; }
  .flo-popup-gallery__close {
    -webkit-appearance: none !important;
       -moz-appearance: none !important;
            appearance: none !important;
    position: initial;
    font-size: 1.625rem;
    color: #959595;
    width: 3.90625rem;
    text-align: center;
    transition: color 0.4s, filter 0.4s;
    transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }
  .flo-popup-gallery .flo-hero-3 {
    width: 100vw; }
  @media screen and (min-width: 48em) {
    .flo-popup-gallery__title {
      width: 40%; }
    .flo-popup-gallery__top-left {
      width: 30%; }
    .flo-popup-gallery__top-right {
      width: 30%;
      -ms-flex-pack: end;
          justify-content: flex-end; }
    .flo-popup-gallery__close {
      padding-left: 2.375rem;
      padding-top: 1.25rem; } }
  @media screen and (max-width: 47.9375em) {
    .flo-popup-gallery__top-wrap {
      -ms-flex-direction: column;
          flex-direction: column;
      -ms-flex-pack: center;
          justify-content: center;
      padding-left: 1.875rem;
      padding-right: 1.875rem; }
    .flo-popup-gallery__top-right {
      -ms-flex-pack: center;
          justify-content: center;
      margin-top: 0.625rem; } }

.newsletter-popup {
  color: white;
  background: #383838;
  outline: none;
  padding: 3.75rem 2.5rem; }
  .newsletter-popup__main {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
        justify-content: center;
    -ms-flex-align: center;
        align-items: center;
    min-height: 100%;
    padding: 3.75rem; }
  .newsletter-popup__content {
    position: relative; }
  .newsletter-popup__close {
    -webkit-appearance: none !important;
       -moz-appearance: none !important;
            appearance: none !important;
    color: #FFFFFF;
    transition: color 0.4s, filter 0.4s;
    transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95);
    top: 4.375rem;
    right: 4rem;
    position: absolute; }
    .newsletter-popup__close:hover {
      color: #e5e5e5; }
  .newsletter-popup__decoration {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-position: top center;
    background-repeat: no-repeat;
    z-index: -1; }
  .newsletter-popup__title {
    text-align: center; }
    .newsletter-popup__title:after {
      content: '|';
      display: block;
      font-size: 1.625rem;
      padding-top: 1.75rem; }
  .newsletter-popup input[type] {
    color: white; }
    .newsletter-popup input[type]::-webkit-input-placeholder {
      color: white;
      opacity: 1; }
    .newsletter-popup input[type]::-moz-placeholder {
      color: white;
      opacity: 1; }
    .newsletter-popup input[type]:-ms-input-placeholder {
      color: white;
      opacity: 1; }
    .newsletter-popup input[type]:-moz-placeholder {
      color: white;
      opacity: 1; }
  @media screen and (min-width: 48em) {
    .newsletter-popup__content {
      max-width: 27.3125rem; } }
  @media screen and (max-width: 47.9375em) {
    .newsletter-popup {
      padding: 1.875rem; }
      .newsletter-popup__title {
        padding: 5rem 0 1.75rem 0; } }

.flo-portfolio-2--section {
  padding: 5.75rem 0; }
  .flo-portfolio-2--section .flo-section__content {
    -ms-flex: 1;
        flex: 1; }
  @media screen and (min-width: 48em) {
    .flo-portfolio-2--section {
      height: 100vh;
      max-height: 56.25rem;
      min-height: 46.875rem;
      margin-bottom: 5rem;
      padding-bottom: 0; } }

.flo-portfolio-2 {
  position: relative;
  -ms-flex: 1;
      flex: 1; }
  .flo-portfolio-2__categories {
    margin-top: 4.8125rem;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column; }
  .flo-portfolio-2__link-block {
    text-align: center;
    margin-bottom: 1.375rem; }
    .flo-portfolio-2__link-block:last-of-type {
      margin-bottom: 0; }
  .flo-portfolio-2__link {
    font-size: 2.28125rem;
    font-family: "Butler"; }
    .flo-portfolio-2__link:before {
      padding: 0;
      line-height: 0.5; }
  @media screen and (min-width: 48em) {
    .flo-portfolio-2__img-display-hover {
      background-size: cover;
      background-position: center center;
      background-repeat: no-repeat;
      width: 15.625rem;
      height: 10.125rem;
      position: absolute;
      z-index: -1;
      opacity: 0;
      visibility: hidden;
      transition: opacity 0.4s, visibility 0.4s, filter 0.4s;
      transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }
    .flo-portfolio-2__img-display-hover--top-left {
      top: 0;
      left: 0;
      transition-delay: 0.2s; }
    .flo-portfolio-2__img-display-hover--top-left-auto {
      top: 17%;
      left: 50%;
      margin-left: 0.8125rem;
      transition-delay: 0.6s; }
    .flo-portfolio-2__img-display-hover--top-right-auto {
      top: 55%;
      right: 50%;
      margin-right: 0.8125rem;
      transition-delay: 0.4s; }
    .flo-portfolio-2__img-display-hover--center-right {
      top: 40%;
      right: 0;
      transition-delay: 1s; }
    .flo-portfolio-2__img-display-hover--left-bottom {
      bottom: 7%;
      left: 0;
      transition-delay: 0.8s; }
    .flo-portfolio-2__img-display-hover--right-bottom {
      bottom: 0;
      left: 50%;
      margin-left: 0.8125rem;
      transition-delay: 1.2s; }
    .flo-portfolio-2__link-content {
      display: inline-block; }
      .flo-portfolio-2__link-content:hover .flo-portfolio-2__img-display-hover {
        opacity: 1;
        visibility: visible; } }

.flo_sidebar {
  width: 25%;
  padding-bottom: 3.75rem; }
  .flo_sidebar .column, .flo_sidebar .columns {
    margin-bottom: 2.5rem;
    padding: 0 2.5rem; }
    .flo_sidebar .column:last-child, .flo_sidebar .columns:last-child {
      margin-bottom: 0; }
  .flo_sidebar .figure-hide-img {
    background-image: none !important;
    height: auto; }
    .flo_sidebar .figure-hide-img img {
      display: block; }
  .flo_sidebar .widget {
    margin-bottom: 1.875rem; }
  @media screen and (min-width: 48em) {
    .flo_sidebar {
      padding-top: 1.09375rem; }
      .flo_sidebar--on-left {
        -ms-flex-order: -1;
            order: -1;
        padding-left: 2.5rem; } }
  @media screen and (max-width: 47.9375em) {
    .flo_sidebar {
      padding: 2.5rem 1.25rem;
      position: fixed;
      top: 3.125rem;
      right: -100%;
      background: white;
      overflow: auto;
      transition: right 0.4s, filter 0.4s;
      transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95);
      width: 100%;
      height: 100%; }
      .flo_sidebar--display {
        right: 0; } }

/* BOF WOOCOMMERCE SUPPORT */
.flo-woocommerce-wrap {
  max-width: 62.5rem;
  margin: 0 auto; }

.woocommerce .quantity .qty, .woocommerce .quantity input[type="number"] {
  width: 5em;
  height: 2.1875rem;
  padding: 0.2em;
  border-color: #e5e5e5;
  font-size: 1rem; }

.woocommerce .woocommerce-breadcrumb a {
  box-shadow: 0 1px 0; }
  .woocommerce .woocommerce-breadcrumb a:hover {
    box-shadow: 0 3px 0; }

.woocommerce .cart input.button:disabled {
  color: #ffffff; }

.woocommerce span.onsale {
  padding: 0; }

.woocommerce ul.products li.product .price del {
  display: inline-block; }

.woocommerce ul.products a.button {
  padding: 0.6em 1em; }

.woocommerce div.product .variations td.label {
  background-color: transparent;
  padding-top: 20px;
  vertical-align: middle; }

.woocommerce div.product .variations .value select {
  margin-bottom: 0; }

.woocommerce div.product .variations .reset_variations {
  box-shadow: 0 1px 0; }
  .woocommerce div.product .variations .reset_variations:hover {
    box-shadow: 0 3px 0; }

.woocommerce div.product .product_meta a {
  box-shadow: 0 1px 0; }
  .woocommerce div.product .product_meta a:hover {
    box-shadow: 0 3px 0; }

.woocommerce div.product .product_meta .tagged_as {
  clear: both;
  display: block; }

.woocommerce div.product .related h2 {
  margin-bottom: 0.9375rem; }

.woocommerce div.product .woocommerce-tabs li.active a, .woocommerce div.product .woocommerce-tabs a:hover {
  box-shadow: 0 3px 0; }

.woocommerce div.product .woocommerce-tabs a {
  box-shadow: 0 1px 0; }

.woocommerce div.product .woocommerce-tabs .panel {
  margin-bottom: 4em; }

.woocommerce div.product .woocommerce-tabs ul.tabs {
  border: 0px;
  overflow: visible;
  padding-left: 5px; }
  .woocommerce div.product .woocommerce-tabs ul.tabs:before {
    border: 0px; }
  .woocommerce div.product .woocommerce-tabs ul.tabs li {
    border: 0px;
    background-color: transparent; }
    .woocommerce div.product .woocommerce-tabs ul.tabs li.active {
      background-color: transparent; }
    .woocommerce div.product .woocommerce-tabs ul.tabs li:before, .woocommerce div.product .woocommerce-tabs ul.tabs li:after {
      border: 0px;
      box-shadow: none; }
    .woocommerce div.product .woocommerce-tabs ul.tabs li:first-child {
      padding-left: 0; }

.woocommerce .checkout #customer_details {
  margin-bottom: 1.875rem; }

.woocommerce p.woocommerce-thankyou-order-received {
  margin-bottom: 1.25rem !important; }

.woocommerce .woocommerce-thankyou-order-details {
  padding-left: 0;
  margin-bottom: 2.5rem; }
  .woocommerce .woocommerce-thankyou-order-details li {
    list-style: disc;
    border-right: 0px;
    clear: both; }
    .woocommerce .woocommerce-thankyou-order-details li strong {
      display: inline-block; }

.woocommerce .woocommerce-MyAccount-content .addresses {
  margin-top: 1.875rem; }

.woocommerce .woocommerce-MyAccount-content .woocommerce-Message br {
  display: none; }

.woocommerce .woocommerce-MyAccount-navigation .is-active a {
  box-shadow: 0 3px 0; }
  .woocommerce .woocommerce-MyAccount-navigation .is-active a:hover {
    box-shadow: 0 3px 0; }

.woocommerce .woocommerce-MyAccount-navigation a:hover {
  box-shadow: 0 1px 0; }

.woocommerce .woocommerce-Address-title .edit {
  clear: both;
  margin-top: 1.875rem;
  float: left !important;
  box-shadow: 0 1px 0; }
  .woocommerce .woocommerce-Address-title .edit:hover {
    box-shadow: 0 3px 0; }

.woocommerce .order_details .product-name a {
  box-shadow: 0 1px 0; }
  .woocommerce .order_details .product-name a:hover {
    box-shadow: 0 3px 0; }

.woocommerce .order_details li {
  border-right: 0px !important;
  margin-bottom: 10px; }

.woocommerce .actions .coupon input[type="submit"] {
  height: 2.625rem;
  text-decoration: none !important; }

.woocommerce .actions p {
  margin-bottom: 0px; }

.woocommerce .actions input.button[type="submit"] {
  height: 2.625rem;
  text-decoration: none !important;
  color: #515151; }

.woocommerce form p, .woocommerce table p {
  margin-bottom: 0px !important; }

.woocommerce .order-number a br {
  display: none; }

.woocommerce #coupon_code {
  min-width: 15em;
  height: 2.55rem; }

.woocommerce .button br {
  display: none; }

.woocommerce .single_add_to_cart_button.button, .woocommerce .single_add_to_cart_button.button.disabled {
  padding: 0.35em 0.5em; }

.woocommerce .wc-proceed-to-checkout p {
  margin-bottom: 0 !important; }

.woocommerce .wc-proceed-to-checkout .checkout-button {
  margin-bottom: 0 !important; }

.woocommerce input[type='submit'] {
  text-decoration: none !important; }

/* EOF WOOCOMMERCE SUPPORT */
.about-page--overview-section {
  padding-top: 5.75rem;
  padding-bottom: 5.75rem; }

.about-page--links-section {
  padding-bottom: 3.875rem; }

.about-page--links-with-img-section {
  padding-bottom: 5.5rem; }
  .about-page--links-with-img-section .flo-section__decoration {
    top: 5.5rem; }

.about-page--advertise-section {
  padding-bottom: 5.375rem; }
  .about-page--advertise-section .row {
    width: 100%; }

@media screen and (min-width: 48em) {
  .about-page--schedule-section {
    padding-bottom: 6.875rem; } }

@media screen and (max-width: 47.9375em) {
  .about-page--schedule-section {
    padding-bottom: 3.125rem; } }

.body_has_sidebar .flo-icon__sidebar {
  display: block; }

.flo_sidebar--active {
  overflow: hidden; }

@media screen and (min-width: 48em) {
  .flo-card-1-list .column, .flo-card-1-list .columns {
    padding: 0 3rem; }
  .flo-card-1-list .row {
    margin: 0 -3rem; } }

@media screen and (max-width: 47.9375em) {
  .flo-card-1-list {
    -ms-flex-direction: column;
        flex-direction: column; }
    .flo-card-1-list .column, .flo-card-1-list .columns {
      margin-top: 3.75rem; }
      .flo-card-1-list .column:first-of-type, .flo-card-1-list .columns:first-of-type {
        margin-top: 0; } }

@media screen and (min-width: 48em) {
  .flo-card-2-list .column, .flo-card-2-list .columns {
    padding: 0 1.3125rem; }
  .flo-card-2-list .row {
    margin: 0 -1.3125rem; } }

@media screen and (max-width: 47.9375em) {
  .flo-card-2-list {
    -ms-flex-direction: column;
        flex-direction: column; }
    .flo-card-2-list .column, .flo-card-2-list .columns {
      margin-top: 3.75rem; }
      .flo-card-2-list .column:first-of-type, .flo-card-2-list .columns:first-of-type {
        margin-top: 0; } }

.flo-grid-2 {
  width: 100%; }
  .flo-grid-2 .column, .flo-grid-2 .columns {
    padding: 0;
    margin-bottom: 8.46875rem; }
  @media screen and (min-width: 48em) {
    .flo-grid-2__row {
      max-width: 46.875rem;
      margin: 0 auto; } }

.flo-grid .column, .flo-grid .columns {
  margin-bottom: 6.15625rem; }

@media screen and (min-width: 48em) {
  .flo-grid .column, .flo-grid .columns {
    padding: 0 2.3125rem; }
  .flo-grid .row {
    margin: 0 -2.3125rem; } }

.flo-icon-mouse-scroll {
  position: relative;
  width: 1.5rem;
  height: 2.5rem;
  top: 50%;
  box-shadow: inset 0 0 0 1px #fff;
  border-radius: 1.5625rem; }
  .flo-icon-mouse-scroll:before {
    content: '';
    position: absolute;
    left: 50%;
    width: 0.25rem;
    height: 0.375rem;
    background: #fff;
    margin-left: -0.125rem;
    top: 0.5rem;
    border-radius: 100%;
    animation-duration: 1.5s;
    animation-iteration-count: infinite;
    animation-name: scroll; }

@keyframes scroll {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    transform: translateY(1rem); } }

.flo-header-and-flo-page-hero {
  height: 100vh;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column; }
  .flo-header-and-flo-page-hero--header-top .flo-header,
  .flo-header-and-flo-page-hero--header-top .sticky-wrapper {
    -ms-flex-order: -1;
        order: -1; }
  .flo-header-and-flo-page-hero:not(.flo-header-and-flo-page-hero--header-top) .flo-header__menu > ul > .menu-item > ul,
  .flo-header-and-flo-page-hero:not(.flo-header-and-flo-page-hero--header-top) .flo-header__menu > div > ul > .menu-item > ul {
    top: initial;
    bottom: 100%; }
  .flo-header-and-flo-page-hero .flo-page-hero {
    -ms-flex: 1;
        flex: 1;
    position: relative; }
  .flo-header-and-flo-page-hero .flo-section__title-wrap--page-hero {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    border-top: 0;
    color: white; }
  .flo-header-and-flo-page-hero .flo-section__hamburger {
    opacity: 0;
    pointer-events: none; }
  .flo-header-and-flo-page-hero .flo-section__scroll-down {
    position: absolute;
    top: 50%;
    left: 50%;
    text-align: center;
    display: block;
    animation: 4s scrolldown infinite; }

@keyframes scrolldown {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%); }
  50% {
    opacity: 1; }
  100% {
    opacity: 0;
    transform: translate(-50%, 50%); } }
  .flo-header-and-flo-page-hero__slider,
  .flo-header-and-flo-page-hero__slider .slick-list,
  .flo-header-and-flo-page-hero__slider .slick-track {
    height: 100%; }
  .flo-header-and-flo-page-hero__slide-content {
    height: 100%; }
  @media screen and (max-width: 47.9375em) {
    .flo-header-and-flo-page-hero .flo-section__title-wrap {
      padding: 2.5rem 0; } }

.flo-instagram-images__slider {
  padding: 0 1.875rem;
  margin: 0; }
  .flo-instagram-images__slider .flo-icon__arrow-left {
    left: 0; }
  .flo-instagram-images__slider .flo-icon__arrow-right {
    right: 0; }

.flo-instagram-with-form {
  width: 100%; }
  .flo-instagram-with-form .row {
    display: -ms-flexbox;
    display: flex; }
  @media screen and (min-width: 48em) {
    .flo-instagram-with-form .flo-form {
      margin-top: 1.375rem;
      padding: 0 3.875rem; }
    .flo-instagram-with-form .column, .flo-instagram-with-form .columns {
      margin-right: 2.5rem; }
      .flo-instagram-with-form .column:last-of-type, .flo-instagram-with-form .columns:last-of-type {
        margin-right: 0; } }
  @media screen and (max-width: 47.9375em) {
    .flo-instagram-with-form .row {
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse; }
    .flo-instagram-with-form .column, .flo-instagram-with-form .columns {
      margin-top: 3.4375rem; }
      .flo-instagram-with-form .column:last-of-type, .flo-instagram-with-form .columns:last-of-type {
        margin-top: 0; }
    .flo-instagram-with-form .flo-shcode-instgm-container a {
      display: block; } }

.flo-page-has-sidebar--margin-bottom {
  margin-bottom: 3.75rem; }

.flo-page-has-sidebar__column {
  margin-bottom: 2.5rem;
  padding: 0 2.5rem; }
  .flo-page-has-sidebar__column:last-child {
    margin-bottom: 0; }

.flo-page-has-sidebar .figure-hide-img {
  background-image: none !important;
  height: auto; }
  .flo-page-has-sidebar .figure-hide-img img {
    display: block; }

@media screen and (min-width: 48em) {
  .flo-page-has-sidebar {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -ms-flex-direction: row;
        flex-direction: row; }
    .flo-page-has-sidebar__main {
      width: 75%; }
    .flo-page-has-sidebar__sidebar {
      width: 25%; } }

@media screen and (max-width: 47.9375em) {
  .flo-page-has-sidebar__sidebar {
    padding: 3.75rem 0;
    position: fixed;
    top: 3.125rem;
    right: -100%;
    background: white;
    overflow: auto;
    transition: right 0.4s, filter 0.4s;
    transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95);
    width: 100%;
    height: 100%; }
  .flo-page-has-sidebar .sidebar-display {
    right: 0; } }

.flo-section--first-journal-3-card {
  padding-top: 7.125rem; }

.flo-section--journal-3-card {
  padding-bottom: 9.5rem; }

@media screen and (min-width: 48em) {
  .flo_post_page .flo-block-title-wrap,
  .flo_post_page .flo-post,
  .flo_post_page .comments-block {
    width: 46.875rem;
    margin: 0 auto; }
  .flo_post_page .flo-post-form {
    width: 31.25rem;
    margin: 0 auto; } }

.flo-section--post-comments {
  padding-top: 4.625rem; }

.flo-section--post-form {
  padding-top: 3.75rem; }

.flo-img-text .image-wrapper p {
  margin: 0px !important; }

.cosmo-box {
  padding: 8px 10px; }

.cosmo-tabs .cosmo-nav li a, .cosmo-tabs .ui-tabs-active a {
  height: auto !important; }

.flo-section--journal-grid-section {
  padding-top: 5.40625rem; }

.page-default body .flo-section__title-wrap {
  -ms-flex-order: -1;
      order: -1; }

.flo-section--portfolio-1-title {
  padding-top: 3.375rem; }

.flo-section--portfolio-1-first-category {
  padding-top: 2.28125rem; }

.flo-section--portfolio-2-category {
  padding-top: 5.5rem; }

.flo-section--portfolio-2-last-category {
  padding-bottom: 7.1875rem; }

.flo-section--portfolio-post {
  padding-top: 2.5rem; }

.flo-section--portfolio-cards {
  padding-top: 10.3125rem; }

.flo-section--portfolio-last-section {
  padding-bottom: 8.125rem; }

@media screen and (min-width: 48em) {
  .flo-section--portfolio-grid-images {
    padding-top: 4.0625rem; } }

@media screen and (max-width: 47.9375em) {
  .flo-section--portfolio-grid-images {
    padding-top: 1.875rem; } }

.flo-about-block {
  width: 100%;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: center;
      justify-content: center; }
  .flo-about-block__decoration {
    max-width: 3.5rem;
    display: block;
    margin: 0 auto 1.875rem; }
  .flo-about-block__img {
    width: 100%; }
  .flo-about-block__title {
    font-family: "Malarkey";
    line-height: 1.2;
    text-align: center; }
  .flo-about-block__content-text {
    font-family: "Adobe Caslon Pro";
    font-size: 1.125rem;
    line-height: 1.6;
    text-align: justify;
    margin: 0 auto; }
  @media screen and (min-width: 48em) {
    .flo-about-block {
      -ms-flex-direction: row;
          flex-direction: row; }
      .flo-about-block__text {
        padding: 0 1.875rem; }
      .flo-about-block__item-img {
        width: 34%; }
      .flo-about-block__item-text {
        width: 66%; }
      .flo-about-block__title {
        font-size: 6.8125rem; }
      .flo-about-block__content-text {
        margin-top: 3.75rem;
        max-width: 25rem; }
      .flo-about-block__img {
        height: 100%;
        min-height: 34.25rem;
        max-height: 41.25rem;
        background-size: cover;
        background-position: center center;
        background-repeat: no-repeat; }
        .flo-about-block__img img {
          display: none; } }
  @media screen and (max-width: 47.9375em) {
    .flo-about-block {
      -ms-flex-direction: column;
          flex-direction: column; }
      .flo-about-block__img {
        margin: 0 auto;
        position: initial;
        background: none; }
      .flo-about-block__title {
        font-size: 3.625rem; }
      .flo-about-block__content-text {
        margin-top: 1.875rem;
        text-align: center; }
      .flo-about-block__text {
        margin-top: 2.5rem; } }

.flo-section--contact-block .flo-footer__bottom {
  margin-top: 0; }

.flo-a-text-with-image {
  width: 100%;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: center;
      justify-content: center; }
  .flo-a-text-with-image__img {
    width: 100%;
    margin: 0;
    overflow: hidden; }
  .flo-a-text-with-image__tittle-offset {
    position: relative;
    z-index: 5; }
  .flo-a-text-with-image__content-title {
    display: block; }
  .flo-a-text-with-image__date {
    display: block; }
  .flo-a-text-with-image__text-line-left .flo-a-text-with-image__date {
    margin-bottom: 2rem; }
  .flo-a-text-with-image__text-line-left .flo-a-text-with-image__content-text {
    padding-left: 2.5rem;
    position: relative; }
    .flo-a-text-with-image__text-line-left .flo-a-text-with-image__content-text:before {
      content: '─';
      width: 2.5rem;
      position: absolute;
      top: 0;
      left: 0; }
  @media screen and (min-width: 48em) {
    .flo-a-text-with-image {
      -ms-flex-direction: row;
          flex-direction: row; }
      .flo-a-text-with-image__item {
        width: 50%; }
      .flo-a-text-with-image__date {
        max-width: 11.875rem; }
      .flo-a-text-with-image__text {
        padding: 0 2.5rem; }
      .flo-a-text-with-image__content-text {
        margin-top: 4.875rem;
        text-align: justify;
        max-width: 25rem; }
      .flo-a-text-with-image__tittle-offset {
        left: -5rem; }
      .flo-a-text-with-image__img {
        height: 26.75rem;
        background-size: cover;
        background-position: center center;
        background-repeat: no-repeat; }
        .flo-a-text-with-image__img img {
          display: none; }
      .flo-a-text-with-image__text-line-left .flo-a-text-with-image__date {
        padding-left: 3.75rem;
        margin-bottom: 4.0625rem; }
      .flo-a-text-with-image__text-line-left .flo-a-text-with-image__content-text {
        padding-left: 3.75rem; }
        .flo-a-text-with-image__text-line-left .flo-a-text-with-image__content-text:before {
          width: 3.75rem;
          text-align: center; }
      .flo-a-text-with-image__content-title {
        max-width: 98%; } }
  @media screen and (max-width: 47.9375em) {
    .flo-a-text-with-image {
      -ms-flex-direction: column;
          flex-direction: column;
      padding-top: 1.25rem; }
      .flo-a-text-with-image__item {
        margin-top: 1.875rem; }
        .flo-a-text-with-image__item:first-of-type {
          margin-top: 0; }
      .flo-a-text-with-image__content-title {
        text-align: center;
        margin-bottom: 1.5625rem; }
      .flo-a-text-with-image__date {
        text-align: center; }
      .flo-a-text-with-image .sticky {
        position: initial !important; } }

.flo-b-text-with-image {
  width: 100%;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: center;
      justify-content: center; }
  .flo-b-text-with-image__img {
    width: 100%; }
  .flo-b-text-with-image__tittle-offset {
    position: relative;
    z-index: 9; }
  .flo-b-text-with-image__content-text {
    text-align: justify; }
  @media screen and (min-width: 48em) {
    .flo-b-text-with-image {
      -ms-flex-direction: row;
          flex-direction: row; }
      .flo-b-text-with-image__text {
        padding: 0 1.875rem; }
      .flo-b-text-with-image__item {
        width: 50%; }
      .flo-b-text-with-image__item--img {
        padding-right: 6.25rem; }
      .flo-b-text-with-image__tittle-offset {
        left: -9.5rem; }
      .flo-b-text-with-image__tittle {
        white-space: nowrap; }
      .flo-b-text-with-image__btn {
        margin-top: 2.1875rem; }
      .flo-b-text-with-image__content-text {
        margin-top: 1.875rem;
        max-width: 25rem; }
      .flo-b-text-with-image__img {
        height: 100%;
        min-height: 31.5625rem;
        max-height: 47.5rem;
        background-size: cover;
        background-position: center center;
        background-repeat: no-repeat; }
        .flo-b-text-with-image__img img {
          display: none; } }
  @media screen and (max-width: 47.9375em) {
    .flo-b-text-with-image {
      -ms-flex-direction: column;
          flex-direction: column; }
      .flo-b-text-with-image__img {
        margin: 0 auto;
        position: initial !important; }
      .flo-b-text-with-image__tittle {
        text-align: center;
        font-size: 3.625rem; }
      .flo-b-text-with-image__tittle-offset {
        margin-top: -1.25rem; }
      .flo-b-text-with-image__btn {
        margin-bottom: 20px; }
      .flo-b-text-with-image__content-text {
        margin: 1.875rem auto 0;
        text-align: center; } }

.section-text-content {
  margin: 0 auto; }
  .section-text-content__title {
    text-align: center; }
  .section-text-content__content > *:first-child {
    margin-top: 0; }
  @media screen and (max-width: 47.9375em) {
    .section-text-content {
      width: 100% !important;
      margin-bottom: 2.5rem;
      padding-bottom: 1.25rem !important; }
      .section-text-content--no-margin-bottom {
        margin-bottom: 0;
        padding-bottom: 0 !important; } }

/* END: COMPONENTS (KEEP THIS ONE AT THE BOTTOM ALL THE TIME) */

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jc3MiLCJhcHAuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fbm9ybWFsaXplLW1peGluLnNjc3MiLCJnbG9iYWwvZ2xvYmFsLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplL192YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUvX3ZlcnRpY2FsLXJoeXRobS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3VuaXQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2NsYXNzZXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcm93LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2d1dHRlci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19icmVha3BvaW50LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3NpemUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fY29sdW1uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Bvc2l0aW9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2xheW91dC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2hlbHBlcnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX3ByaW50LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL190ZXh0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19jaGVja2JveC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fbGFiZWwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2hlbHAtdGV4dC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faW5wdXQtZ3JvdXAuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2ZpZWxkc2V0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19zZWxlY3Quc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2Vycm9yLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9uLW1lbnUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYmFkZ2Uuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnJlYWRjcnVtYnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLWdyb3VwLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2NhbGxvdXQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2FyZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jbG9zZS1idXR0b24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVudS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZW51LWljb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJpbGxkb3duLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Ryb3Bkb3duLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Ryb3Bkb3duLW1lbnUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcmVzcG9uc2l2ZS1lbWJlZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19tYXRoLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2xhYmVsLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lZGlhLW9iamVjdC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19vZmYtY2FudmFzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29yYml0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3BhZ2luYXRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcHJvZ3Jlc3MtYmFyLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19wcm9ncmVzcy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zbGlkZXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3JhbmdlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N0aWNreS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXZlYWwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc3dpdGNoLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYmxlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2NvbG9yLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGh1bWJuYWlsLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RpdGxlLWJhci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190b29sdGlwLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RvcC1iYXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbG9hdC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvX2NsYXNzZXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL19zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fa2V5ZnJhbWUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19zbGlkZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fdHJhbnNpdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX2ZhZGUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL2VmZmVjdHMvX2hpbmdlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9faGluZ2Uuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL196b29tLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fc3Bpbi5zY3NzIiwiZ2xvYmFsL3otaW5kZXgtbWFwLnNjc3MiLCIuLi9jb21wb25lbnRzLzAvZmxvLWJsb2NrLXRpdGxlL2Zsby1ibG9jay10aXRsZS5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzAvZmxvLWRyb3Bkb3duL2Zsby1kcm9wZG93bi5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzAvZmxvLWZvcm0tMS9mbG8tZm9ybS0xLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMC9mbG8tZm9ybS9mbG8tZm9ybS5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzAvZmxvLWxxaXAvZmxvLWxxaXAubWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8wL2Zsby1wYWdlLXdyYXAvZmxvLXBhZ2Utd3JhcC5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzAvZmxvLXNoYXJlLWxpbmtzL2Zsby1zaGFyZS13cmFwLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMC9mbG8tc2xpZGVyL2Zsby1zbGlkZXIubWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8wL3BvcnRvZm9saW8tdGl0dGxlL3BvcnRmb2xpby10aXRsZS5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzAvc2VhcmNoLWZvcm0vc2VhcmNoLWZvcm0ubWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8wL3NvY2lhbC1saW5rcy9zb2NpYWwtbGlua3MubWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8xL2NvbW1lbnRzLWJsb2NrL2NvbW1lbnRzLWJsb2NrLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMS9jb250YWN0LWJsb2NrLTEvY29udGFjdC1ibG9jay0xLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMS9mbG8tY2FyZC0xL2Zsby1jYXJkLTEubWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8xL2Zsby1jYXJkLTIvZmxvLWNhcmQtMi5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzEvZmxvLWNhcmQtMy9mbG8tY2FyZC0zLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMS9mbG8tY2FyZC00L2Zsby1jYXJkLTQubWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8xL2Zsby1jYXJkLTUvZmxvLWNhcmQtNS5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzEvZmxvLWNhcmQvZmxvLWNhcmQubWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8xL2Zsby1kaXZpZGVyL2Zsby1kaXZpZGVyLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMS9mbG8tZm9vdGVyL2Zsby1mb290ZXItc2lkZWJhcnMubWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8xL2Zsby1mb290ZXIvZmxvLWZvb3Rlci5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzEvZmxvLWdlbmVyaWMtY2F0ZWdvcmllcy1hbmQtdGFncy9mbG8tZ2VuZXJpYy1jYXRlZ29yaWVzLWFuZC10YWdzLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMS9mbG8taGVhZGVyLW1vYmlsZS9mbG8taGVhZGVyLW1vYmlsZS5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzEvZmxvLWhlYWRlci9mbG8taGVhZGVyLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMS9mbG8taGVhZGVyL2Zsby1oZWFkZXJfX3NlYXJjaC5zY3NzIiwiLi4vY29tcG9uZW50cy8xL2Zsby1oZXJvLTIvZmxvLWhlcm8tMi5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzEvZmxvLWhlcm8tMy9mbG8taGVyby0zLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMS9mbG8taGVyby00L2Zsby1oZXJvLTQubWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8xL2Zsby1oZXJvLXBvcHVwL2Zsby1oZXJvLXBvcHVwLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMS9mbG8taW5zdGFncmFtLWltYWdlcy9mbG8taW5zdGFncmFtLWltYWdlcy5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzEvZmxvLWxpbmtzLWJsb2NrLTEvZmxvLWxpbmtzLWJsb2NrLTEubWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8xL2Zsby1saW5rcy1ibG9jay0yL2Zsby1saW5rcy1ibG9jay0yLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMS9mbG8tbW9iaWxlLW1lbnUvZmxvLW1vYmlsZS1tZW51Lm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMS9mbG8tcGFnZS1oZXJvL2Zsby1wYWdlLWhlcm8ubWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8xL2Zsby1wYWdlLXRvcC1uYXYvZmxvLXBhZ2UtdG9wLW5hdi5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzEvZmxvLXBhZ2Utd3JhcC9mbG8tcGFnZS13cmFwLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMS9mbG8tcGFnaW5hdGlvbi9mbG8tcGFnaW5hdGlvbi5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzEvZmxvLXBvcnRmb2xpby1jYXJkL2Zsby1wb3J0Zm9saW8tY2FyZC5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzEvZmxvLXBvcnRmb2xpby1jYXRlZ29yeS1ncmlkL2Zsby1wb3J0Zm9saW8tY2F0ZWdvcnktZ3JpZC5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzEvZmxvLXBvcnRmb2xpby1ncmlkL2Zsby1wb3J0Zm9saW8tZ3JpZC5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzEvZmxvLXBvcnRmb2xpby1wb3N0L2Zsby1wb3J0Zm9saW8tcG9zdC5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzEvZmxvLXBvc3QtcGFnaW5hdGlvbi9mbG8tcG9zdC1wYWdpbmF0aW9uLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMS9mbG8tcG9zdC10aXRsZS9mbG8tcG9zdC10aXRsZS5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzEvZmxvLXBvc3QvZmxvLXBvc3QubWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8xL2Zsby1zZWN0aW9uL2Zsby1zZWN0aW9uLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMS9mbG8tc29jaWFsLWJsb2NrL2Zsby1zb2NpYWwtYmxvY2subWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8xL2Zsby1zb2NpYWwtc2VjdGlvbi9mbG8tc29jaWFsLXNlY3Rpb24ubWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8xL2Zsby1zcGxhc2gvZmxvLXNwbGFzaC5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzEvZ2FsbGVyeS1wb3B1cC9nYWxsZXJ5LXBvcHVwLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMS9uZXdzbGV0dGVyLXBvcHVwL25ld3NsZXR0ZXItcG9wdXAubWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8xL3BvcnRvZm9saW8tMi9wb3J0b2ZvbGlvLTIubWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8xL3NpZGViYXIvc2lkZXJiYXIubWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8xL3dvb2NvbW1lcmNlL3dvb2NvbW1lcmNlLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMi9hYm91dC1wYWdlL2Fib3V0LXBhZ2UubWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8yL2JvZHktaGFzLXNpZGViYXIvYm9keS1oYXMtc2lkZWJhci5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzIvZmxvLWNhcmQtMS1saXN0L2Zsby1jYXJkLWxpc3QtMS5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzIvZmxvLWNhcmQtMi1saXN0L2Zsby1jYXJkLWxpc3QtMi5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzIvZmxvLWdyaWQtMi9mbG8tZ3JpZC0yLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMi9mbG8tZ3JpZC9mbG8tZ3JpZC5tYWluLnNjc3MiLCIuLi9jb21wb25lbnRzLzIvZmxvLWhlYWRlci1hbmQtZmxvLXBhZ2UtaGVyby9mbG8taWNvbi1tb3VzZS1zY3JvbGwuc2NzcyIsIi4uL2NvbXBvbmVudHMvMi9mbG8taGVhZGVyLWFuZC1mbG8tcGFnZS1oZXJvL2Zsby1oZWFkZXItYW5kLWZsby1wYWdlLWhlcm8ubWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8yL2Zsby1pbnN0YWdyYW0taW1hZ2VzLXNsaWRlci9mbG8taW5zdGFncmFtLWltYWdlcy1zbGlkZXIubWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8yL2Zsby1pbnN0YWdyYW0td2l0aC1mb3JtL2Zsby1pbnN0YWdyYW0td2l0aC1mb3JtLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMi9mbG8tcGFnZS1oYXMtc2lkZXJiYXIvZmxvLXBhZ2UtaGFzLXNpZGVyYmFyLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMi9mbG8tcGFnZS1qb3VybmFsLTMvZmxvLXBhZ2Utam91cm5hbC0zLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMi9mbG8tcG9zdC1wYWdlL2Zsby1wb3N0LXBhZ2UubWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8yL2Zsby1zaG9ydGNvZGVzL2Zsby1zaG9ydGNvZGVzLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMi9qb3VybmFsLWdyaWQvam91cm5hbC1ncmlkLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMi9wYWdlLWRlZmF1bHQvcGFnZS1kZWZhdWx0Lm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMi9wb3J0b2ZvbGlvLXBhZ2UvcG9ydGZvbGlvLXBhZ2UubWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8yL3NlY3Rpb25fYWJvdXRfYXJ0aWNsZS9mbG8tYWJvdXQtYmxvY2subWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8yL3NlY3Rpb25fY29udGFjdF9ibG9jay9zZWN0aW9uX2NvbnRhY3RfYmxvY2subWFpbi5zY3NzIiwiLi4vY29tcG9uZW50cy8yL3NlY3Rpb25faW5mb3JtYXRpb25fYmxvY2tfMS9mbG8tYS1zZWN0aW9uLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMi9zZWN0aW9uX2luZm9ybWF0aW9uX2Jsb2NrXzIvZmxvLWItdGV4dC13aXRoLWltYWdlLm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvMi9zZWN0aW9uLXRleHQtY29udGVudC9zZWN0aW9uLXRleHQtY29udGVudC5tYWluLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FDQWpCLG1CQUFtQjtBQ0FuQjs7Ozs7R0FLRztBQ3dDRCxpRUFBaUU7QUFHL0Q7b0ZBQ2dGO0FBRWhGOzs7OztPQUtHO0FDcERMLG1EQUFZO0FBNkVaLHlDQUFZO0FEdkJWO0VBQ0Usd0JFMUN1QjtFRjBDUyxPQUFPO0VBUXJDLGtCQUFrQjtFQUFFLE9BQU87RUFFN0IsMkJBQTJCO0VBQUUsT0FBTztFQUNwQywrQkFB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RU05RUosdUJEYnNCLEVMNkZqQjs7QUFwQkQ7RUl4RkosaUJDZXNCLEVMMkVqQjs7QUFJQztFTTdGSixtQkFBbUI7RUFDbkIsZ0JBSG1CLEVOaUdkOztBQUVEO0VNakdKLG1CQUFtQjtFQUNuQixpQkFIbUIsRU5xR2Q7O0FBTUg7RU05RUosaUJEYnNCLEVMNkZqQjs7QUFwQkQ7RUl4RkosaUJDZXNCLEVMMkVqQjs7QUFJQztFTTdGSixtQkFBbUI7RUFDbkIsZ0JBSG1CLEVOaUdkOztBQUVEO0VNakdKLG1CQUFtQjtFQUNuQixpQkFIbUIsRU5xR2Q7O0FBTUg7RU05RUosdUJEYnNCLEVMNkZqQjs7QUFwQkQ7RUl4RkosV0Nlc0IsRUwyRWpCOztBQUlDO0VNN0ZKLG1CQUFtQjtFQUNuQixVQUhtQixFTmlHZDs7QUFFRDtFTWpHSixtQkFBbUI7RUFDbkIsV0FIbUIsRU5xR2Q7O0FBTUg7RU05RUosdUJEYnNCLEVMNkZqQjs7QUFwQkQ7RUl4RkosaUJDZXNCLEVMMkVqQjs7QUFJQztFTTdGSixtQkFBbUI7RUFDbkIsZ0JBSG1CLEVOaUdkOztBQUVEO0VNakdKLG1CQUFtQjtFQUNuQixpQkFIbUIsRU5xR2Q7O0FBTUg7RU05RUosaUJEYnNCLEVMNkZqQjs7QUFwQkQ7RUl4RkosaUJDZXNCLEVMMkVqQjs7QUFJQztFTTdGSixtQkFBbUI7RUFDbkIsZ0JBSG1CLEVOaUdkOztBQUVEO0VNakdKLG1CQUFtQjtFQUNuQixpQkFIbUIsRU5xR2Q7O0FBTUg7RU05RUosdUJEYnNCLEVMNkZqQjs7QUFwQkQ7RUl4RkosWUNlc0IsRUwyRWpCOztBQWdCRDtFTTlFSix1QkRic0IsRUw2RmpCOztBQUtEO0VPekdGLFlWK0V1RDtFVTlFdkQsWUFBaUIsRUFpQ2xCO0VQdUVHO0lPakZBLFlBQVksRUFDYjtFUGdGQztJTzdFQSxZQUFZLEVBQ2I7RVA0RUM7SU96RUEsWVYrQ3FELEVVOUN0RDs7QVB3RUM7RU96R0YsWVYrRXVEO0VVOUV2RCxXQUFpQixFQWlDbEI7RVB1RUc7SU9qRkEsWUFBWSxFQUNiO0VQZ0ZDO0lPN0VBLFlBQVksRUFDYjtFUDRFQztJT3pFQSxZVitDcUQsRVU5Q3REOztBUHdFQztFT3pHRixZVitFdUQ7RVU5RXZELGlCQUFpQixFQWlDbEI7RVB1RUc7SU9qRkEsWUFBWSxFQUNiO0VQZ0ZDO0lPN0VBLFlBQVksRUFDYjtFUDRFQztJT3pFQSxZVitDcUQsRVU5Q3REOztBUHdFQztFT3pHRixZVitFdUQ7RVU5RXZELFdBQWlCLEVBaUNsQjtFUHVFRztJT2pGQSxZQUFZLEVBQ2I7RVBnRkM7SU83RUEsWUFBWSxFQUNiO0VQNEVDO0lPekVBLFlWK0NxRCxFVTlDdEQ7O0FQd0VDO0VPekdGLFlWK0V1RDtFVTlFdkQsV0FBaUIsRUFpQ2xCO0VQdUVHO0lPakZBLFlBQVksRUFDYjtFUGdGQztJTzdFQSxZQUFZLEVBQ2I7RVA0RUM7SU96RUEsWVYrQ3FELEVVOUN0RDs7QVB3RUM7RU96R0YsWVYrRXVEO0VVOUV2RCxpQkFBaUIsRUFpQ2xCO0VQdUVHO0lPakZBLFlBQVksRUFDYjtFUGdGQztJTzdFQSxZQUFZLEVBQ2I7RVA0RUM7SU96RUEsWVYrQ3FELEVVOUN0RDs7QVB3RUM7RU96R0YsWVYrRXVEO0VVOUV2RCxpQkFBaUIsRUFpQ2xCO0VQdUVHO0lPakZBLFlBQVksRUFDYjtFUGdGQztJTzdFQSxZQUFZLEVBQ2I7RVA0RUM7SU96RUEsWVYrQ3FELEVVOUN0RDs7QVB3RUM7RU96R0YsWVYrRXVEO0VVOUV2RCxhQUFpQixFQWlDbEI7RVB1RUc7SU9qRkEsWUFBWSxFQUNiO0VQZ0ZDO0lPN0VBLFlBQVksRUFDYjtFUDRFQztJT3pFQSxZVitDcUQsRVU5Q3REOztBUDhFRDtFRS9HQSxpQkFGa0I7RUFHbEIsZ0JBSGtCLEVGa0hnQjs7QUFEbEM7RUFJSSxnQkFBZ0I7RUFDaEIsZUFBZSxFQUNoQjs7QUFHSDtFQUNFLGdCQUFnQjtFQUNoQixlQUFlLEVBQ2hCOztBQUVEO0VFN0hBLHdCQUZrQjtFQUdsQix1QkFIa0IsRUZnSXlCOztBQUkzQztFTWpJQSxtQkFBbUI7RUFDbkIsa0JBQWtCLEVOa0lqQjtFQUZEO0lNcElFLFlBQVk7SUFDWixZQUFZLEVBQ2I7O0FOdUlEOzs7RU01SEYsaUJBQWlCO0VBQ2pCLFlBQVk7RUFDWixnQkFBZ0I7RUFDaEIsZUFBZSxFTjJIWjs7QUdKQztFSHJEQTtJSXhGSixnQkNlc0IsRUwyRWpCO0VBSUM7SU03RkosbUJBQW1CO0lBQ25CLGVBSG1CLEVOaUdkO0VBRUQ7SU1qR0osbUJBQW1CO0lBQ25CLGdCQUhtQixFTnFHZDtFQU1IO0lNOUVKLGdCRGhCc0IsRUxnR2pCO0VBcEJEO0lJeEZKLGlCQ2VzQixFTDJFakI7RUFJQztJTTdGSixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVOaUdkO0VBRUQ7SU1qR0osbUJBQW1CO0lBQ25CLGlCQUhtQixFTnFHZDtFQU1IO0lNOUVKLHNCRGJzQixFTDZGakI7RUFwQkQ7SUl4RkosV0Nlc0IsRUwyRWpCO0VBSUM7SU03RkosbUJBQW1CO0lBQ25CLFVBSG1CLEVOaUdkO0VBRUQ7SU1qR0osbUJBQW1CO0lBQ25CLFdBSG1CLEVOcUdkO0VBTUg7SU05RUosdUJEYnNCLEVMNkZqQjtFQXBCRDtJSXhGSixpQkNlc0IsRUwyRWpCO0VBSUM7SU03RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFTmlHZDtFQUVEO0lNakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRU5xR2Q7RUFNSDtJTTlFSixpQkRic0IsRUw2RmpCO0VBcEJEO0lJeEZKLGlCQ2VzQixFTDJFakI7RUFJQztJTTdGSixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVOaUdkO0VBRUQ7SU1qR0osbUJBQW1CO0lBQ25CLGlCQUhtQixFTnFHZDtFQU1IO0lNOUVKLHVCRGJzQixFTDZGakI7RUFwQkQ7SUl4RkosV0Nlc0IsRUwyRWpCO0VBSUM7SU03RkosbUJBQW1CO0lBQ25CLFVBSG1CLEVOaUdkO0VBRUQ7SU1qR0osbUJBQW1CO0lBQ25CLFdBSG1CLEVOcUdkO0VBTUg7SU05RUosdUJEYnNCLEVMNkZqQjtFQXBCRDtJSXhGSixpQkNlc0IsRUwyRWpCO0VBSUM7SU03RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFTmlHZDtFQUVEO0lNakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRU5xR2Q7RUFNSDtJTTlFSixpQkRic0IsRUw2RmpCO0VBcEJEO0lJeEZKLGlCQ2VzQixFTDJFakI7RUFJQztJTTdGSixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVOaUdkO0VBRUQ7SU1qR0osbUJBQW1CO0lBQ25CLGlCQUhtQixFTnFHZDtFQU1IO0lNOUVKLHVCRGJzQixFTDZGakI7RUFwQkQ7SUl4RkosV0Nlc0IsRUwyRWpCO0VBSUM7SU03RkosbUJBQW1CO0lBQ25CLFVBSG1CLEVOaUdkO0VBRUQ7SU1qR0osbUJBQW1CO0lBQ25CLFdBSG1CLEVOcUdkO0VBTUg7SU05RUosdUJEYnNCLEVMNkZqQjtFQXBCRDtJSXhGSixpQkNlc0IsRUwyRWpCO0VBSUM7SU03RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFTmlHZDtFQUVEO0lNakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRU5xR2Q7RUFNSDtJTTlFSixpQkRic0IsRUw2RmpCO0VBcEJEO0lJeEZKLGlCQ2VzQixFTDJFakI7RUFJQztJTTdGSixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVOaUdkO0VBRUQ7SU1qR0osbUJBQW1CO0lBQ25CLGlCQUhtQixFTnFHZDtFQU1IO0lNOUVKLHVCRGJzQixFTDZGakI7RUFwQkQ7SUl4RkosWUNlc0IsRUwyRWpCO0VBZ0JEO0lNOUVKLHVCRGJzQixFTDZGakI7RUFLRDtJT3pHRixZVitFdUQ7SVU5RXZELFlBQWlCLEVBaUNsQjtJUHVFRztNT2pGQSxZQUFZLEVBQ2I7SVBnRkM7TU83RUEsWUFBWSxFQUNiO0lQNEVDO01PekVBLFlWK0NxRCxFVTlDdEQ7RVB3RUM7SU96R0YsWVYrRXVEO0lVOUV2RCxXQUFpQixFQWlDbEI7SVB1RUc7TU9qRkEsWUFBWSxFQUNiO0lQZ0ZDO01PN0VBLFlBQVksRUFDYjtJUDRFQztNT3pFQSxZVitDcUQsRVU5Q3REO0VQd0VDO0lPekdGLFlWK0V1RDtJVTlFdkQsaUJBQWlCLEVBaUNsQjtJUHVFRztNT2pGQSxZQUFZLEVBQ2I7SVBnRkM7TU83RUEsWUFBWSxFQUNiO0lQNEVDO01PekVBLFlWK0NxRCxFVTlDdEQ7RVB3RUM7SU96R0YsWVYrRXVEO0lVOUV2RCxXQUFpQixFQWlDbEI7SVB1RUc7TU9qRkEsWUFBWSxFQUNiO0lQZ0ZDO01PN0VBLFlBQVksRUFDYjtJUDRFQztNT3pFQSxZVitDcUQsRVU5Q3REO0VQd0VDO0lPekdGLFlWK0V1RDtJVTlFdkQsV0FBaUIsRUFpQ2xCO0lQdUVHO01PakZBLFlBQVksRUFDYjtJUGdGQztNTzdFQSxZQUFZLEVBQ2I7SVA0RUM7TU96RUEsWVYrQ3FELEVVOUN0RDtFUHdFQztJT3pHRixZVitFdUQ7SVU5RXZELGlCQUFpQixFQWlDbEI7SVB1RUc7TU9qRkEsWUFBWSxFQUNiO0lQZ0ZDO01PN0VBLFlBQVksRUFDYjtJUDRFQztNT3pFQSxZVitDcUQsRVU5Q3REO0VQd0VDO0lPekdGLFlWK0V1RDtJVTlFdkQsaUJBQWlCLEVBaUNsQjtJUHVFRztNT2pGQSxZQUFZLEVBQ2I7SVBnRkM7TU83RUEsWUFBWSxFQUNiO0lQNEVDO01PekVBLFlWK0NxRCxFVTlDdEQ7RVB3RUM7SU96R0YsWVYrRXVEO0lVOUV2RCxhQUFpQixFQWlDbEI7SVB1RUc7TU9qRkEsWUFBWSxFQUNiO0lQZ0ZDO01PN0VBLFlBQVksRUFDYjtJUDRFQztNT3pFQSxZVitDcUQsRVU5Q3REO0VQOEVEO0lFL0dBLGlCQUZrQjtJQUdsQixnQkFIa0IsRUZrSGdCO0VBRGxDO0lBSUksZ0JBQWdCO0lBQ2hCLGVBQWUsRUFDaEI7RUFHSDtJQUNFLGdCQUFnQjtJQUNoQixlQUFlLEVBQ2hCO0VBRUQ7SUU3SEEseUJBRmtCO0lBR2xCLHdCQUhrQixFRmdJeUI7RUFJM0M7SU1qSUEsbUJBQW1CO0lBQ25CLGtCQUFrQixFTmtJakI7SUFGRDtNTXBJRSxZQUFZO01BQ1osWUFBWSxFQUNiO0VOdUlEOzs7SU01SEYsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsZUFBZSxFTjJIWixFQUFBOztBR0pDO0VIckRBO0lJeEZKLGdCQ2VzQixFTDJFakI7RUFJQztJTTdGSixtQkFBbUI7SUFDbkIsZUFIbUIsRU5pR2Q7RUFFRDtJTWpHSixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVOcUdkO0VBTUg7SU05RUosZ0JEaEJzQixFTGdHakI7RUFwQkQ7SUl4RkosaUJDZXNCLEVMMkVqQjtFQUlDO0lNN0ZKLG1CQUFtQjtJQUNuQixnQkFIbUIsRU5pR2Q7RUFFRDtJTWpHSixtQkFBbUI7SUFDbkIsaUJBSG1CLEVOcUdkO0VBTUg7SU05RUosc0JEYnNCLEVMNkZqQjtFQXBCRDtJSXhGSixXQ2VzQixFTDJFakI7RUFJQztJTTdGSixtQkFBbUI7SUFDbkIsVUFIbUIsRU5pR2Q7RUFFRDtJTWpHSixtQkFBbUI7SUFDbkIsV0FIbUIsRU5xR2Q7RUFNSDtJTTlFSix1QkRic0IsRUw2RmpCO0VBcEJEO0lJeEZKLGlCQ2VzQixFTDJFakI7RUFJQztJTTdGSixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVOaUdkO0VBRUQ7SU1qR0osbUJBQW1CO0lBQ25CLGlCQUhtQixFTnFHZDtFQU1IO0lNOUVKLGlCRGJzQixFTDZGakI7RUFwQkQ7SUl4RkosaUJDZXNCLEVMMkVqQjtFQUlDO0lNN0ZKLG1CQUFtQjtJQUNuQixnQkFIbUIsRU5pR2Q7RUFFRDtJTWpHSixtQkFBbUI7SUFDbkIsaUJBSG1CLEVOcUdkO0VBTUg7SU05RUosdUJEYnNCLEVMNkZqQjtFQXBCRDtJSXhGSixXQ2VzQixFTDJFakI7RUFJQztJTTdGSixtQkFBbUI7SUFDbkIsVUFIbUIsRU5pR2Q7RUFFRDtJTWpHSixtQkFBbUI7SUFDbkIsV0FIbUIsRU5xR2Q7RUFNSDtJTTlFSix1QkRic0IsRUw2RmpCO0VBcEJEO0lJeEZKLGlCQ2VzQixFTDJFakI7RUFJQztJTTdGSixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVOaUdkO0VBRUQ7SU1qR0osbUJBQW1CO0lBQ25CLGlCQUhtQixFTnFHZDtFQU1IO0lNOUVKLGlCRGJzQixFTDZGakI7RUFwQkQ7SUl4RkosaUJDZXNCLEVMMkVqQjtFQUlDO0lNN0ZKLG1CQUFtQjtJQUNuQixnQkFIbUIsRU5pR2Q7RUFFRDtJTWpHSixtQkFBbUI7SUFDbkIsaUJBSG1CLEVOcUdkO0VBTUg7SU05RUosdUJEYnNCLEVMNkZqQjtFQXBCRDtJSXhGSixXQ2VzQixFTDJFakI7RUFJQztJTTdGSixtQkFBbUI7SUFDbkIsVUFIbUIsRU5pR2Q7RUFFRDtJTWpHSixtQkFBbUI7SUFDbkIsV0FIbUIsRU5xR2Q7RUFNSDtJTTlFSix1QkRic0IsRUw2RmpCO0VBcEJEO0lJeEZKLGlCQ2VzQixFTDJFakI7RUFJQztJTTdGSixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVOaUdkO0VBRUQ7SU1qR0osbUJBQW1CO0lBQ25CLGlCQUhtQixFTnFHZDtFQU1IO0lNOUVKLGlCRGJzQixFTDZGakI7RUFwQkQ7SUl4RkosaUJDZXNCLEVMMkVqQjtFQUlDO0lNN0ZKLG1CQUFtQjtJQUNuQixnQkFIbUIsRU5pR2Q7RUFFRDtJTWpHSixtQkFBbUI7SUFDbkIsaUJBSG1CLEVOcUdkO0VBTUg7SU05RUosdUJEYnNCLEVMNkZqQjtFQXBCRDtJSXhGSixZQ2VzQixFTDJFakI7RUFnQkQ7SU05RUosdUJEYnNCLEVMNkZqQjtFQUtEO0lPekdGLFlWK0V1RDtJVTlFdkQsWUFBaUIsRUFpQ2xCO0lQdUVHO01PakZBLFlBQVksRUFDYjtJUGdGQztNTzdFQSxZQUFZLEVBQ2I7SVA0RUM7TU96RUEsWVYrQ3FELEVVOUN0RDtFUHdFQztJT3pHRixZVitFdUQ7SVU5RXZELFdBQWlCLEVBaUNsQjtJUHVFRztNT2pGQSxZQUFZLEVBQ2I7SVBnRkM7TU83RUEsWUFBWSxFQUNiO0lQNEVDO01PekVBLFlWK0NxRCxFVTlDdEQ7RVB3RUM7SU96R0YsWVYrRXVEO0lVOUV2RCxpQkFBaUIsRUFpQ2xCO0lQdUVHO01PakZBLFlBQVksRUFDYjtJUGdGQztNTzdFQSxZQUFZLEVBQ2I7SVA0RUM7TU96RUEsWVYrQ3FELEVVOUN0RDtFUHdFQztJT3pHRixZVitFdUQ7SVU5RXZELFdBQWlCLEVBaUNsQjtJUHVFRztNT2pGQSxZQUFZLEVBQ2I7SVBnRkM7TU83RUEsWUFBWSxFQUNiO0lQNEVDO01PekVBLFlWK0NxRCxFVTlDdEQ7RVB3RUM7SU96R0YsWVYrRXVEO0lVOUV2RCxXQUFpQixFQWlDbEI7SVB1RUc7TU9qRkEsWUFBWSxFQUNiO0lQZ0ZDO01PN0VBLFlBQVksRUFDYjtJUDRFQztNT3pFQSxZVitDcUQsRVU5Q3REO0VQd0VDO0lPekdGLFlWK0V1RDtJVTlFdkQsaUJBQWlCLEVBaUNsQjtJUHVFRztNT2pGQSxZQUFZLEVBQ2I7SVBnRkM7TU83RUEsWUFBWSxFQUNiO0lQNEVDO01PekVBLFlWK0NxRCxFVTlDdEQ7RVB3RUM7SU96R0YsWVYrRXVEO0lVOUV2RCxpQkFBaUIsRUFpQ2xCO0lQdUVHO01PakZBLFlBQVksRUFDYjtJUGdGQztNTzdFQSxZQUFZLEVBQ2I7SVA0RUM7TU96RUEsWVYrQ3FELEVVOUN0RDtFUHdFQztJT3pHRixZVitFdUQ7SVU5RXZELGFBQWlCLEVBaUNsQjtJUHVFRztNT2pGQSxZQUFZLEVBQ2I7SVBnRkM7TU83RUEsWUFBWSxFQUNiO0lQNEVDO01PekVBLFlWK0NxRCxFVTlDdEQ7RVA4RUQ7SUUvR0EsaUJBRmtCO0lBR2xCLGdCQUhrQixFRmtIZ0I7RUFEbEM7SUFJSSxnQkFBZ0I7SUFDaEIsZUFBZSxFQUNoQjtFQUdIO0lBQ0UsZ0JBQWdCO0lBQ2hCLGVBQWUsRUFDaEI7RUFFRDtJRTdIQSx5QkFGa0I7SUFHbEIsd0JBSGtCLEVGZ0l5QjtFQUkzQztJTWpJQSxtQkFBbUI7SUFDbkIsa0JBQWtCLEVOa0lqQjtJQUZEO01NcElFLFlBQVk7TUFDWixZQUFZLEVBQ2I7RU51SUQ7OztJTTVIRixpQkFBaUI7SUFDakIsWUFBWTtJQUNaLGdCQUFnQjtJQUNoQixlQUFlLEVOMkhaLEVBQUE7O0FBSUg7RUV4RkUsdUJKYWtCLEVFNkVuQjtFRXhGRztJQUNBLGlCQUFpQixFQUNsQjtFQzRFQztJSFFKO01FeEZFLHdCSmFrQixFRTZFbkI7TUV4Rkc7UUFDQSxpQkFBaUIsRUFDbEIsRUFBQTs7QU1nTEg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFtQkUsVUFBVTtFQUNWLFdBQVcsRUFDWjs7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O0VFdUNFLHlCQUZpQixFRWhCaEI7O0FKcEJIO0VBWkEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYix5QkFGaUI7RUN2QmYsd0NBQXdDO0VBRzFDLG9DQUE0QjtVQUE1Qiw0QkFBNEIsRUNSM0I7O0FKUkg7RUVzQ0UsNEJBRmlCLEVFaEJoQjs7QUpuQkg7RUFiQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLHlCQUZpQjtFQ3ZCZix3Q0FBd0M7RUFHMUMsb0NBQTRCO1VBQTVCLDRCQUE0QixFQ1IzQjs7QUpQSDtFRXFDRSw0QkFGaUIsRUVoQmhCOztBSmxCSDtFQWRBLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIseUJBRmlCO0VDdkJmLHdDQUF3QztFQUcxQyxvQ0FBNEI7VUFBNUIsNEJBQTRCLEVDUjNCOztBSk5IO0VFb0NFLDZCQUZpQixFRWhCaEI7O0FKakJIO0VBZkEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYix5QkFGaUI7RUN2QmYsd0NBQXdDO0VBRzFDLG9DQUE0QjtVQUE1Qiw0QkFBNEIsRUNSM0I7O0FKTEg7RUVtQ0UsNkJBRmlCLEVFaEJoQjs7QUpkSDtFQWxCQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLFdGaENrQztFS0FsQyw2QkFBNkIsRURFNUI7O0FKRkg7RUVnQ0UsV0ZoQ3FDLEVJY3BDOztBSmJIO0VBbkJBLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsV0YvQmtDO0VLRGxDLDZCQUE2QixFREU1Qjs7QUpESDtFRStCRSxXRi9CcUMsRUlhcEM7O0FKVkg7RUF0QkEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiwrQ0lyQ1k7RUpxQ1osc0JBRmlCO0VLdkJmLHdDQUF3QztFQUN4QyxXQUEyQixFSE41Qjs7QUpFSDtFRTRCRSw0Q0lWc0M7RUNKcEMsV0FBMkIsRUhKNUI7O0FKVEg7RUF2QkEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiwrQ0lwQ2M7RUpvQ2Qsd0JBRmlCO0VLdkJmLHdDQUF3QztFQUN4QyxXQUEyQixFSE41Qjs7QUpHSDtFRTJCRSw0Q0lWc0M7RUNKcEMsV0FBMkIsRUhKNUI7O0FKUkg7RUF4QkEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiw4Q0luQ2U7RUptQ2YseUJBRmlCO0VLdkJmLHdDQUF3QztFQUN4QyxXQUEyQixFSE41Qjs7QUpJSDtFRTBCRSw0Q0lWc0M7RUNKcEMsV0FBMkIsRUhKNUI7O0FKUEg7RUF6QkEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiw4Q0lsQ2E7RUprQ2IsdUJBRmlCO0VLdkJmLHdDQUF3QztFQUN4QyxXQUEyQixFSE41Qjs7QUpLSDtFRXlCRSw0Q0lWc0M7RUNKcEMsV0FBMkIsRUhKNUI7O0FKTkg7RUExQkEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiwrQ0lyQ1k7RUpxQ1oseUJBRmlCO0VLdkJmLHdDQUF3QztFQUN4QyxXQUEyQixFSE41Qjs7QUpNSDtFRXdCRSw0Q0lWc0M7RUNKcEMsV0FBMkIsRUhKNUI7O0FKTEg7RUEzQkEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiwrQ0lwQ2M7RUpvQ2QseUJBRmlCO0VLdkJmLHdDQUF3QztFQUN4QyxXQUEyQixFSE41Qjs7QUpPSDtFRXVCRSw0Q0lWc0M7RUNKcEMsV0FBMkIsRUhKNUI7O0FKSkg7RUE1QkEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiw0Q0lSd0M7RUpReEMsc0JBRmlCO0VLdkJmLHdDQUF3QztFQUN4QyxXQUE4QixFSE4vQjs7QUpRSDtFRXNCRSwrQ0lyQ1k7RUN1QlYsV0FBOEIsRUhKL0I7O0FKSEg7RUE3QkEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiw0Q0lSd0M7RUpReEMsd0JBRmlCO0VLdkJmLHdDQUF3QztFQUN4QyxXQUE4QixFSE4vQjs7QUpTSDtFRXFCRSwrQ0lwQ2M7RUNzQlosV0FBOEIsRUhKL0I7O0FKRkg7RUE5QkEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiw0Q0lSd0M7RUpReEMseUJBRmlCO0VLdkJmLHdDQUF3QztFQUN4QyxXQUE4QixFSE4vQjs7QUpVSDtFRW9CRSw4Q0luQ2U7RUNxQmIsV0FBOEIsRUhKL0I7O0FKREg7RUEvQkEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiw0Q0lSd0M7RUpReEMsdUJBRmlCO0VLdkJmLHdDQUF3QztFQUN4QyxXQUE4QixFSE4vQjs7QUpXSDtFRW1CRSw4Q0lsQ2E7RUNvQlgsV0FBOEIsRUhKL0I7O0FKQUg7RUFoQ0EsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiw0Q0lSd0M7RUpReEMseUJBRmlCO0VLdkJmLHdDQUF3QztFQUN4QyxXQUE4QixFSE4vQjs7QUpZSDtFRWtCRSwrQ0lyQ1k7RUN1QlYsV0FBOEIsRUhKL0I7O0FKQ0g7RUFqQ0EsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiw0Q0lSd0M7RUpReEMseUJBRmlCO0VLdkJmLHdDQUF3QztFQUN4QyxXQUE4QixFSE4vQjs7QUphSDtFRWlCRSwrQ0lwQ2M7RUNzQlosV0FBOEIsRUhKL0I7O0FKSUg7RUFwQ0EsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYixzQkFGaUI7RU0zQmYsd0NBQXdDO0VBQ3hDLFdBQTJCLEVKRjVCOztBSmdCSDtFRWNFLG9CQUZpQjtFTWhCZixXQUEyQixFSkE1Qjs7QUpLSDtFQXJDQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLHNCQUZpQjtFTTNCZix3Q0FBd0M7RUFDeEMsV0FBMkIsRUpGNUI7O0FKaUJIO0VFYUUsb0JBRmlCO0VNaEJmLFdBQTJCLEVKQTVCOztBSk1IO0VBdENBLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsb0JBRmlCO0VNM0JmLHdDQUF3QztFQUN4QyxXQUE4QixFSkYvQjs7QUprQkg7RUVZRSxzQkFGaUI7RU1oQmYsV0FBOEIsRUpBL0I7O0FKT0g7RUF2Q0EsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYixvQkFGaUI7RU0zQmYsd0NBQXdDO0VBQ3hDLFdBQThCLEVKRi9COztBSm1CSDtFRVdFLHNCQUZpQjtFTWhCZixXQUE4QixFSkEvQjs7QUpVSDtFQTFDQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLDZCQUZpQjtFTzNCZix3Q0FBd0M7RUFDeEMsV0FBMkIsRUxG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NkJBQTZCLEVBQzlCO01BdkZMO1FBMEZNLG1CQUFtQjtRQUNuQixvQmhKSGdCLEVnSklqQjtNQTVGTDtRQThGUSxxQkFBNEIsRUFDN0I7TUEvRlA7UUFtR00sb0JBQW9CLEVBQ3JCO01BcEdMO1FBdUdNLHdCQUE2QjtRQUM3QixtQkFBbUIsRUFDcEIsRUFBQTs7QUN6R0w7RUFHRSxlQUFlLEVBb0NoQjtFQXZDRDtJQU1JLG1CQUFtQixFQUNwQjtFQVBIO0lBVU0sY0FBYyxFQUNmO0U1SXFKQztJNEloS047TUF3QkksdUJBQXFCO01BQ3JCLHNCakorRGtCO01pSjlEbEIsbUNBQXNDLEVBYXpDO01BdkNEO1FBa0NNLGlCQUFpQjtRQUNqQiw2QkFBNkIsRUFDOUIsRUFBQTs7QXhKcURMLGdFQUFnRSIsImZpbGUiOiJhcHAuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyogU1RBUlQ6IFZFTkRPUiAqL1xuLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4gKiBWZXJzaW9uIDYuMy4xXG4gKiBmb3VuZGF0aW9uLnp1cmIuY29tXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuLyohIG5vcm1hbGl6ZS1zY3NzIHwgTUlUL0dQTHYyIExpY2Vuc2UgfCBiaXQubHkvbm9ybWFsaXplLXNjc3MgKi9cbi8qIERvY3VtZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIDEuIENoYW5nZSB0aGUgZGVmYXVsdCBmb250IGZhbWlseSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMy4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxuICAgICAqICAgIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbiAgICAgKi9cbkBpbXBvcnQgdXJsKFwiLi4vZm9udHMvZm9udGVsbG8vY3NzL2Zsby1pY29ucy5jc3NcIik7XG5AaW1wb3J0IHVybChcIi4uL2ZvbnRzL2RlZmF1bHQvZm9udC5jc3NcIik7XG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDIgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDMgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAzICovIH1cblxuLyogU2VjdGlvbnNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZm9vdGVyLFxuaGVhZGVyLFxubmF2LFxuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICAgICAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAgICAgKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICAgICAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDsgfVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuZmlnY2FwdGlvbixcbmZpZ3VyZSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAgICAgKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7IH1cblxuLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAgICAgKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAgICAgKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDEgKi9cbiAgaGVpZ2h0OiAwO1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi8gfVxuXG4vKiBMaW5rc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gICAgICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICAgICAqL1xuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBSZW1vdmUgdGhlIG91dGxpbmUgb24gZm9jdXNlZCBsaW5rcyB3aGVuIHRoZXkgYXJlIGFsc28gYWN0aXZlIG9yIGhvdmVyZWRcbiAgICAgKiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmUtd2lkdGg6IDA7IH1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIEZpcmVmb3ggMzktLlxuICAgICAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gICAgICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXG4gICAgICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyOyB9XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gICAgICovXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGJhY2tncm91bmQgYW5kIGNvbG9yIGluIElFIDktLlxuICAgICAqL1xubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4vKipcbiAgICAgKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAgICAgKiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuYXVkaW8sXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICAgICAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICAgICAqL1xuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lOyB9XG5cbi8qKlxuICAgICAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIEZvcm1zXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICAgICAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlO1xuICAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIG1hcmdpbjogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gICAgICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICAgICAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4vKipcbiAgICAgKiAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2BcbiAgICAgKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKi9cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqLyB9XG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLyoqXG4gICAgICAgKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICAgICAgICovXG4gIC8qKlxuICAgICAgICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICAgICAgICovIH1cbiAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIGJ1dHRvbjotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7IH1cblxuLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAgICAgKi9cbmlucHV0IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gICAgICovXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAgICAgKi9cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gICAgICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAvKiAyICovXG4gIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAgICAgICAqLyB9XG4gIFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLCBbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICAgICAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBDaGFuZ2UgdGhlIGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtOyB9XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICAgICAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAgICAgKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogdGFibGU7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDMgKi9cbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgLyogMSAqLyB9XG5cbi8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqIDIuIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gICAgICovXG5wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICAgICAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFLCBhbmQgRmlyZWZveC5cbiAgICAgKi9cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07IH1cblxuLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbm1lbnUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKiBTY3JpcHRpbmdcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5jYW52YXMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogSGlkZGVuXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAgICAgKi9cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZm91bmRhdGlvbi1tcSB7XG4gIGZvbnQtZmFtaWx5OiBcInNtYWxsPTBlbSZtZWRpdW09NDhlbSZsYXJnZT02NC4wNjI1ZW0meGxhcmdlPTc1ZW0meHhsYXJnZT05MGVtXCI7IH1cblxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMTAwJTsgfVxuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbmltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7IH1cblxudGV4dGFyZWEge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDUwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuc2VsZWN0IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuLm1hcF9jYW52YXMgaW1nLFxuLm1hcF9jYW52YXMgZW1iZWQsXG4ubWFwX2NhbnZhcyBvYmplY3QsXG4ubXFhLWRpc3BsYXkgaW1nLFxuLm1xYS1kaXNwbGF5IGVtYmVkLFxuLm1xYS1kaXNwbGF5IG9iamVjdCB7XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50OyB9XG5cbmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSBidXR0b24ge1xuICAgIG91dGxpbmU6IDA7IH1cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLmlzLXZpc2libGUge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG5cbi5pcy1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLnJvdyB7XG4gIG1heC13aWR0aDogNzVyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgLnJvdzo6YmVmb3JlLCAucm93OjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnOyB9XG4gIC5yb3c6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAucm93LmNvbGxhcHNlID4gLmNvbHVtbiwgLnJvdy5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAucm93IC5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogLTAuNjI1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC42MjVyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLnJvdyAucm93IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTAuOTM3NXJlbTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgICAgLnJvdyAucm93IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTAuOTM3NXJlbTsgfSB9XG4gICAgLnJvdyAucm93LmNvbGxhcHNlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5yb3cuZXhwYW5kZWQge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuICAgIC5yb3cuZXhwYW5kZWQgLnJvdyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAucm93Om5vdCguZXhwYW5kZWQpIC5yb3cge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuICAucm93Lmd1dHRlci1zbWFsbCA+IC5jb2x1bW4sIC5yb3cuZ3V0dGVyLXNtYWxsID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07IH1cbiAgLnJvdy5ndXR0ZXItbWVkaXVtID4gLmNvbHVtbiwgLnJvdy5ndXR0ZXItbWVkaXVtID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfVxuXG4uY29sdW1uLCAuY29sdW1ucyB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY29sdW1uLCAuY29sdW1ucyB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIC5jb2x1bW46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLmNvbHVtbnM6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC5jb2x1bW4uZW5kOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCwgLmVuZC5jb2x1bW5zOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLmNvbHVtbi5yb3cucm93LCAucm93LnJvdy5jb2x1bW5zIHtcbiAgZmxvYXQ6IG5vbmU7IH1cblxuLnJvdyAuY29sdW1uLnJvdy5yb3csIC5yb3cgLnJvdy5yb3cuY29sdW1ucyB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuXG4uc21hbGwtMSB7XG4gIHdpZHRoOiA4LjMzMzMzJTsgfVxuXG4uc21hbGwtcHVzaC0xIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA4LjMzMzMzJTsgfVxuXG4uc21hbGwtcHVsbC0xIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtOC4zMzMzMyU7IH1cblxuLnNtYWxsLW9mZnNldC0wIHtcbiAgbWFyZ2luLWxlZnQ6IDAlOyB9XG5cbi5zbWFsbC0yIHtcbiAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuXG4uc21hbGwtcHVzaC0yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAxNi42NjY2NyU7IH1cblxuLnNtYWxsLXB1bGwtMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTE2LjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTEge1xuICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cblxuLnNtYWxsLTMge1xuICB3aWR0aDogMjUlOyB9XG5cbi5zbWFsbC1wdXNoLTMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDI1JTsgfVxuXG4uc21hbGwtcHVsbC0zIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtMjUlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMiB7XG4gIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cblxuLnNtYWxsLTQge1xuICB3aWR0aDogMzMuMzMzMzMlOyB9XG5cbi5zbWFsbC1wdXNoLTQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDMzLjMzMzMzJTsgfVxuXG4uc21hbGwtcHVsbC00IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtMzMuMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMyB7XG4gIG1hcmdpbi1sZWZ0OiAyNSU7IH1cblxuLnNtYWxsLTUge1xuICB3aWR0aDogNDEuNjY2NjclOyB9XG5cbi5zbWFsbC1wdXNoLTUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDQxLjY2NjY3JTsgfVxuXG4uc21hbGwtcHVsbC01IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNDEuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtNCB7XG4gIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cblxuLnNtYWxsLTYge1xuICB3aWR0aDogNTAlOyB9XG5cbi5zbWFsbC1wdXNoLTYge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDUwJTsgfVxuXG4uc21hbGwtcHVsbC02IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNTAlOyB9XG5cbi5zbWFsbC1vZmZzZXQtNSB7XG4gIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cblxuLnNtYWxsLTcge1xuICB3aWR0aDogNTguMzMzMzMlOyB9XG5cbi5zbWFsbC1wdXNoLTcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDU4LjMzMzMzJTsgfVxuXG4uc21hbGwtcHVsbC03IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNTguMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtNiB7XG4gIG1hcmdpbi1sZWZ0OiA1MCU7IH1cblxuLnNtYWxsLTgge1xuICB3aWR0aDogNjYuNjY2NjclOyB9XG5cbi5zbWFsbC1wdXNoLTgge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDY2LjY2NjY3JTsgfVxuXG4uc21hbGwtcHVsbC04IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNjYuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtNyB7XG4gIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cblxuLnNtYWxsLTkge1xuICB3aWR0aDogNzUlOyB9XG5cbi5zbWFsbC1wdXNoLTkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDc1JTsgfVxuXG4uc21hbGwtcHVsbC05IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNzUlOyB9XG5cbi5zbWFsbC1vZmZzZXQtOCB7XG4gIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cblxuLnNtYWxsLTEwIHtcbiAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuXG4uc21hbGwtcHVzaC0xMCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogODMuMzMzMzMlOyB9XG5cbi5zbWFsbC1wdWxsLTEwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtODMuMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtOSB7XG4gIG1hcmdpbi1sZWZ0OiA3NSU7IH1cblxuLnNtYWxsLTExIHtcbiAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuXG4uc21hbGwtcHVzaC0xMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogOTEuNjY2NjclOyB9XG5cbi5zbWFsbC1wdWxsLTExIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtOTEuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtMTAge1xuICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG5cbi5zbWFsbC0xMiB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMTEge1xuICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG5cbi5zbWFsbC11cC0xID4gLmNvbHVtbiwgLnNtYWxsLXVwLTEgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTAwJTsgfVxuICAuc21hbGwtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKzEpLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtMSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTEgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtMiA+IC5jb2x1bW4sIC5zbWFsbC11cC0yID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDUwJTsgfVxuICAuc21hbGwtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDJuKzEpLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDJuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtMiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTIgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtMyA+IC5jb2x1bW4sIC5zbWFsbC11cC0zID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuc21hbGwtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDNuKzEpLCAuc21hbGwtdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDNuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtMyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTMgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtNCA+IC5jb2x1bW4sIC5zbWFsbC11cC00ID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDI1JTsgfVxuICAuc21hbGwtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDRuKzEpLCAuc21hbGwtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDRuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtNCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTQgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtNSA+IC5jb2x1bW4sIC5zbWFsbC11cC01ID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDIwJTsgfVxuICAuc21hbGwtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDVuKzEpLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDVuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtNSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTUgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtNiA+IC5jb2x1bW4sIC5zbWFsbC11cC02ID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAuc21hbGwtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDZuKzEpLCAuc21hbGwtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDZuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtNiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTYgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtNyA+IC5jb2x1bW4sIC5zbWFsbC11cC03ID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDE0LjI4NTcxJTsgfVxuICAuc21hbGwtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDduKzEpLCAuc21hbGwtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDduKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtNyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTcgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtOCA+IC5jb2x1bW4sIC5zbWFsbC11cC04ID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEyLjUlOyB9XG4gIC5zbWFsbC11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoOG4rMSksIC5zbWFsbC11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoOG4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC04ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtOCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC1jb2xsYXBzZSA+IC5jb2x1bW4sIC5zbWFsbC1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi5zbWFsbC1jb2xsYXBzZSAucm93IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4uZXhwYW5kZWQucm93IC5zbWFsbC1jb2xsYXBzZS5yb3cge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5zbWFsbC11bmNvbGxhcHNlID4gLmNvbHVtbiwgLnNtYWxsLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtOyB9XG5cbi5zbWFsbC1jZW50ZXJlZCB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgLnNtYWxsLWNlbnRlcmVkLCAuc21hbGwtY2VudGVyZWQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLnNtYWxsLXVuY2VudGVyZWQsXG4uc21hbGwtcHVzaC0wLFxuLnNtYWxsLXB1bGwtMCB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5tZWRpdW0tMSB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVzaC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogOC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdWxsLTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlOyB9XG4gIC5tZWRpdW0tMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubWVkaXVtLXB1c2gtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDE2LjY2NjY3JTsgfVxuICAubWVkaXVtLXB1bGwtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0xNi42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAubWVkaXVtLXB1c2gtMyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDI1JTsgfVxuICAubWVkaXVtLXB1bGwtMyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0yNSU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuICAubWVkaXVtLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdXNoLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdWxsLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgLm1lZGl1bS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVzaC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVsbC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTQxLjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAubWVkaXVtLXB1c2gtNiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDUwJTsgfVxuICAubWVkaXVtLXB1bGwtNiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC01MCU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuICAubWVkaXVtLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdXNoLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdWxsLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLm1lZGl1bS04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVzaC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVsbC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTY2LjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAubWVkaXVtLXB1c2gtOSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDc1JTsgfVxuICAubWVkaXVtLXB1bGwtOSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC03NSU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuICAubWVkaXVtLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVzaC0xMCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDgzLjMzMzMzJTsgfVxuICAubWVkaXVtLXB1bGwtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtODMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cbiAgLm1lZGl1bS0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAubWVkaXVtLXB1c2gtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdWxsLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTkxLjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAubWVkaXVtLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAubWVkaXVtLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuICAubWVkaXVtLXVwLTEgPiAuY29sdW1uLCAubWVkaXVtLXVwLTEgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAubWVkaXVtLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbisxKSwgLm1lZGl1bS11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTEgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC0yID4gLmNvbHVtbiwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgICAubWVkaXVtLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgybisxKSwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTIgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC0zID4gLmNvbHVtbiwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgICAubWVkaXVtLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgzbisxKSwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoM24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTMgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC00ID4gLmNvbHVtbiwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgICAubWVkaXVtLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg0bisxKSwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNG4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTQgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC01ID4gLmNvbHVtbiwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgICAubWVkaXVtLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg1bisxKSwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTUgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC02ID4gLmNvbHVtbiwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgICAubWVkaXVtLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg2bisxKSwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTYgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC03ID4gLmNvbHVtbiwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNC4yODU3MSU7IH1cbiAgICAubWVkaXVtLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg3bisxKSwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoN24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTcgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC04ID4gLmNvbHVtbiwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMi41JTsgfVxuICAgIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDhuKzEpLCAubWVkaXVtLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSg4bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLWNvbGxhcHNlID4gLmNvbHVtbiwgLm1lZGl1bS1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAubWVkaXVtLWNvbGxhcHNlIC5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuZXhwYW5kZWQucm93IC5tZWRpdW0tY29sbGFwc2Uucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLm1lZGl1bS11bmNvbGxhcHNlID4gLmNvbHVtbiwgLm1lZGl1bS11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICAubWVkaXVtLWNlbnRlcmVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAubWVkaXVtLWNlbnRlcmVkLCAubWVkaXVtLWNlbnRlcmVkOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAubWVkaXVtLXVuY2VudGVyZWQsXG4gIC5tZWRpdW0tcHVzaC0wLFxuICAubWVkaXVtLXB1bGwtMCB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5sYXJnZS0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1c2gtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDguMzMzMzMlOyB9XG4gIC5sYXJnZS1wdWxsLTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOC4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7IH1cbiAgLmxhcmdlLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLXB1c2gtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2UtcHVsbC0yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTE2LjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAubGFyZ2UtMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAubGFyZ2UtcHVzaC0zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMjUlOyB9XG4gIC5sYXJnZS1wdWxsLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMjUlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2UtNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtcHVzaC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5sYXJnZS1wdWxsLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMzMuMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAubGFyZ2UtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAubGFyZ2UtcHVzaC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNDEuNjY2NjclOyB9XG4gIC5sYXJnZS1wdWxsLTUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNDEuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAubGFyZ2UtcHVzaC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTAlOyB9XG4gIC5sYXJnZS1wdWxsLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTAlOyB9XG4gIC5sYXJnZS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuICAubGFyZ2UtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2UtcHVzaC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTguMzMzMzMlOyB9XG4gIC5sYXJnZS1wdWxsLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTguMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAubGFyZ2UtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAubGFyZ2UtcHVzaC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNjYuNjY2NjclOyB9XG4gIC5sYXJnZS1wdWxsLTgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNjYuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2UtOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAubGFyZ2UtcHVzaC05IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNzUlOyB9XG4gIC5sYXJnZS1wdWxsLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNzUlOyB9XG4gIC5sYXJnZS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuICAubGFyZ2UtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1c2gtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4My4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1bGwtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAubGFyZ2UtMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLmxhcmdlLXB1c2gtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA5MS42NjY2NyU7IH1cbiAgLmxhcmdlLXB1bGwtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOTEuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLmxhcmdlLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC5sYXJnZS11cC0xID4gLmNvbHVtbiwgLmxhcmdlLXVwLTEgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAubGFyZ2UtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbisxKSwgLmxhcmdlLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC0xID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTIgPiAuY29sdW1uLCAubGFyZ2UtdXAtMiA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlOyB9XG4gICAgLmxhcmdlLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMm4rMSksIC5sYXJnZS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtMiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTIgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC0zID4gLmNvbHVtbiwgLmxhcmdlLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAgIC5sYXJnZS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDNuKzEpLCAubGFyZ2UtdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDNuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTMgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC0zID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtNCA+IC5jb2x1bW4sIC5sYXJnZS11cC00ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgICAubGFyZ2UtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg0bisxKSwgLmxhcmdlLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSg0bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC00ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtNCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTUgPiAuY29sdW1uLCAubGFyZ2UtdXAtNSA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjAlOyB9XG4gICAgLmxhcmdlLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNW4rMSksIC5sYXJnZS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtNSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTUgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC02ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAgIC5sYXJnZS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDZuKzEpLCAubGFyZ2UtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDZuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTYgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC02ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtNyA+IC5jb2x1bW4sIC5sYXJnZS11cC03ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNC4yODU3MSU7IH1cbiAgICAubGFyZ2UtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg3bisxKSwgLmxhcmdlLXVwLTcgPiAuY29sdW1uczpudGgtb2YtdHlwZSg3bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC03ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtNyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTggPiAuY29sdW1uLCAubGFyZ2UtdXAtOCA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTIuNSU7IH1cbiAgICAubGFyZ2UtdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg4bisxKSwgLmxhcmdlLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSg4bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC04ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtOCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbiwgLmxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5sYXJnZS1jb2xsYXBzZSAucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmV4cGFuZGVkLnJvdyAubGFyZ2UtY29sbGFwc2Uucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1uLCAubGFyZ2UtdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH1cbiAgLmxhcmdlLWNlbnRlcmVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAubGFyZ2UtY2VudGVyZWQsIC5sYXJnZS1jZW50ZXJlZDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgLmxhcmdlLXVuY2VudGVyZWQsXG4gIC5sYXJnZS1wdXNoLTAsXG4gIC5sYXJnZS1wdWxsLTAge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9IH1cblxuLmNvbHVtbi1ibG9jayB7XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07IH1cbiAgLmNvbHVtbi1ibG9jayA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNvbHVtbi1ibG9jayB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTsgfVxuICAgICAgLmNvbHVtbi1ibG9jayA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG5cbmRpdixcbmRsLFxuZHQsXG5kZCxcbnVsLFxub2wsXG5saSxcbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbnByZSxcbmZvcm0sXG5wLFxuYmxvY2txdW90ZSxcbnRoLFxudGQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxucCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsgfVxuXG5lbSxcbmkge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbnN0cm9uZyxcbmIge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OyB9XG4gIGgxIHNtYWxsLFxuICBoMiBzbWFsbCxcbiAgaDMgc21hbGwsXG4gIGg0IHNtYWxsLFxuICBoNSBzbWFsbCxcbiAgaDYgc21hbGwge1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGNvbG9yOiAjY2FjYWNhOyB9XG5cbmgxIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbmgzIHtcbiAgZm9udC1zaXplOiAxLjE4NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oNCB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oNSB7XG4gIGZvbnQtc2l6ZTogMS4wNjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuaDYge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICBoMSB7XG4gICAgZm9udC1zaXplOiAzcmVtOyB9XG4gIGgyIHtcbiAgICBmb250LXNpemU6IDIuNXJlbTsgfVxuICBoMyB7XG4gICAgZm9udC1zaXplOiAxLjkzNzVyZW07IH1cbiAgaDQge1xuICAgIGZvbnQtc2l6ZTogMS41NjI1cmVtOyB9XG4gIGg1IHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgaDYge1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfSB9XG5cbmEge1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6ICMxNzc5YmE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjMTQ2OGEwOyB9XG4gIGEgaW1nIHtcbiAgICBib3JkZXI6IDA7IH1cblxuaHIge1xuICBjbGVhcjogYm90aDtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46IDEuMjVyZW0gYXV0bztcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLWxlZnQ6IDA7IH1cblxudWwsXG5vbCxcbmRsIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiAgbGluZS1oZWlnaHQ6IDEuNjsgfVxuXG5saSB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDsgfVxuXG51bCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7IH1cblxub2wge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTsgfVxuXG51bCB1bCwgb2wgdWwsIHVsIG9sLCBvbCBvbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbmRsIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICBkbCBkdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbmJsb2NrcXVvdGUge1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjU2MjVyZW0gMS4yNXJlbSAwIDEuMTg3NXJlbTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2FjYWNhOyB9XG4gIGJsb2NrcXVvdGUsIGJsb2NrcXVvdGUgcCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBjb2xvcjogIzhhOGE4YTsgfVxuXG5jaXRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICBjb2xvcjogIzhhOGE4YTsgfVxuICBjaXRlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCLigJQgXCI7IH1cblxuYWJiciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzBhMGEwYTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGN1cnNvcjogaGVscDsgfVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7IH1cblxuY29kZSB7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMzEyNXJlbSAwLjA2MjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzBhMGEwYTsgfVxuXG5rYmQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMjVyZW0gMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG5cbi5zdWJoZWFkZXIge1xuICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICM4YThhOGE7IH1cblxuLmxlYWQge1xuICBmb250LXNpemU6IDEyNSU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7IH1cblxuLnN0YXQge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgcCArIC5zdGF0IHtcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTsgfVxuXG4ubm8tYnVsbGV0IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLnRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLnRleHQtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLm1lZGl1bS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLm1lZGl1bS10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAubWVkaXVtLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLm1lZGl1bS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5sYXJnZS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmxhcmdlLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5sYXJnZS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5sYXJnZS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH0gfVxuXG4uc2hvdy1mb3ItcHJpbnQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIHByaW50IHtcbiAgKiB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgLmhpZGUtZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgdGFibGUuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgdGhlYWQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRib2R5LnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICB0ci5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgdGQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICB0aC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIGEsXG4gIGE6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgYVtocmVmXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7IH1cbiAgLmlyIGE6YWZ0ZXIsXG4gIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gIGFbaHJlZl49JyMnXTphZnRlciB7XG4gICAgY29udGVudDogJyc7IH1cbiAgYWJiclt0aXRsZV06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjsgfVxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM4YThhOGE7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIHRoZWFkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgQHBhZ2Uge1xuICAgIG1hcmdpbjogMC41Y207IH1cbiAgcCxcbiAgaDIsXG4gIGgzIHtcbiAgICBvcnBoYW5zOiAzO1xuICAgIHdpZG93czogMzsgfVxuICBoMixcbiAgaDMge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9IH1cblxuW3R5cGU9J3RleHQnXSwgW3R5cGU9J3Bhc3N3b3JkJ10sIFt0eXBlPSdkYXRlJ10sIFt0eXBlPSdkYXRldGltZSddLCBbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXSwgW3R5cGU9J21vbnRoJ10sIFt0eXBlPSd3ZWVrJ10sIFt0eXBlPSdlbWFpbCddLCBbdHlwZT0nbnVtYmVyJ10sIFt0eXBlPSdzZWFyY2gnXSwgW3R5cGU9J3RlbCddLCBbdHlwZT0ndGltZSddLCBbdHlwZT0ndXJsJ10sIFt0eXBlPSdjb2xvciddLFxudGV4dGFyZWEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMi40Mzc1cmVtO1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDEwLCAxMCwgMTAsIDAuMSk7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiAgYXBwZWFyYW5jZTogbm9uZTsgfVxuICBbdHlwZT0ndGV4dCddOmZvY3VzLCBbdHlwZT0ncGFzc3dvcmQnXTpmb2N1cywgW3R5cGU9J2RhdGUnXTpmb2N1cywgW3R5cGU9J2RhdGV0aW1lJ106Zm9jdXMsIFt0eXBlPSdkYXRldGltZS1sb2NhbCddOmZvY3VzLCBbdHlwZT0nbW9udGgnXTpmb2N1cywgW3R5cGU9J3dlZWsnXTpmb2N1cywgW3R5cGU9J2VtYWlsJ106Zm9jdXMsIFt0eXBlPSdudW1iZXInXTpmb2N1cywgW3R5cGU9J3NlYXJjaCddOmZvY3VzLCBbdHlwZT0ndGVsJ106Zm9jdXMsIFt0eXBlPSd0aW1lJ106Zm9jdXMsIFt0eXBlPSd1cmwnXTpmb2N1cywgW3R5cGU9J2NvbG9yJ106Zm9jdXMsXG4gIHRleHRhcmVhOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM4YThhOGE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICNjYWNhY2E7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7IH1cblxudGV4dGFyZWEge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgdGV4dGFyZWFbcm93c10ge1xuICAgIGhlaWdodDogYXV0bzsgfVxuXG5pbnB1dDo6cGxhY2Vob2xkZXIsXG50ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2NhY2FjYTsgfVxuXG5pbnB1dDpkaXNhYmxlZCwgaW5wdXRbcmVhZG9ubHldLFxudGV4dGFyZWE6ZGlzYWJsZWQsXG50ZXh0YXJlYVtyZWFkb25seV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cblt0eXBlPSdzdWJtaXQnXSxcblt0eXBlPSdidXR0b24nXSB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cblt0eXBlPSdmaWxlJ10sXG5bdHlwZT0nY2hlY2tib3gnXSxcblt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTsgfVxuXG5bdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbFtmb3JdLFxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsW2Zvcl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuXG5sYWJlbCA+IFt0eXBlPSdjaGVja2JveCddLFxubGFiZWwgPiBbdHlwZT0ncmFkaW8nXSB7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtOyB9XG5cblt0eXBlPSdmaWxlJ10ge1xuICB3aWR0aDogMTAwJTsgfVxuXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjg7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG4gIGxhYmVsLm1pZGRsZSB7XG4gICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICBwYWRkaW5nOiAwLjU2MjVyZW0gMDsgfVxuXG4uaGVscC10ZXh0IHtcbiAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgY29sb3I6ICMwYTBhMGE7IH1cblxuLmlucHV0LWdyb3VwIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIC5pbnB1dC1ncm91cCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuICAuaW5wdXQtZ3JvdXAgPiA6bGFzdC1jaGlsZCA+ICoge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cblxuLmlucHV0LWdyb3VwLWxhYmVsLCAuaW5wdXQtZ3JvdXAtZmllbGQsIC5pbnB1dC1ncm91cC1idXR0b24sIC5pbnB1dC1ncm91cC1idXR0b24gYSxcbi5pbnB1dC1ncm91cC1idXR0b24gaW5wdXQsXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGJ1dHRvbixcbi5pbnB1dC1ncm91cC1idXR0b24gbGFiZWwge1xuICBtYXJnaW46IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLmlucHV0LWdyb3VwLWxhYmVsIHtcbiAgcGFkZGluZzogMCAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kOiAjZTZlNmU2O1xuICBjb2xvcjogIzBhMGEwYTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMSU7XG4gIGhlaWdodDogMTAwJTsgfVxuICAuaW5wdXQtZ3JvdXAtbGFiZWw6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yaWdodDogMDsgfVxuICAuaW5wdXQtZ3JvdXAtbGFiZWw6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWxlZnQ6IDA7IH1cblxuLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgaGVpZ2h0OiAyLjVyZW07IH1cblxuLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMSU7XG4gIGhlaWdodDogMTAwJTsgfVxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIGEsXG4gIC5pbnB1dC1ncm91cC1idXR0b24gaW5wdXQsXG4gIC5pbnB1dC1ncm91cC1idXR0b24gYnV0dG9uLFxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIGxhYmVsIHtcbiAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBmb250LXNpemU6IDFyZW07IH1cblxuLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsOyB9XG5cbmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7IH1cblxubGVnZW5kIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuLmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAxLjEyNXJlbSAwO1xuICBwYWRkaW5nOiAxLjI1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhOyB9XG4gIC5maWVsZHNldCBsZWdlbmQge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tbGVmdDogLTAuMTg3NXJlbTtcbiAgICBwYWRkaW5nOiAwIDAuMTg3NXJlbTtcbiAgICBiYWNrZ3JvdW5kOiAjZmVmZWZlOyB9XG5cbnNlbGVjdCB7XG4gIGhlaWdodDogMi40Mzc1cmVtO1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyB3aWR0aD0nMzInIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAzMiAyNCc+PHBvbHlnb24gcG9pbnRzPScwLDAgMzIsMCAxNiwyNCcgc3R5bGU9J2ZpbGw6IHJnYiUyODEzOCwgMTM4LCAxMzglMjknPjwvcG9seWdvbj48L3N2Zz5cIik7XG4gIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgLTFyZW0gY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMFxcMCkge1xuICAgIHNlbGVjdCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09XCIpOyB9IH1cbiAgc2VsZWN0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM4YThhOGE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICNjYWNhY2E7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7IH1cbiAgc2VsZWN0OmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgc2VsZWN0OjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIHNlbGVjdFttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyB9XG5cbi5pcy1pbnZhbGlkLWlucHV0Om5vdCg6Zm9jdXMpIHtcbiAgYm9yZGVyLWNvbG9yOiAjY2M0YjM3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjllY2VhOyB9XG4gIC5pcy1pbnZhbGlkLWlucHV0Om5vdCg6Zm9jdXMpOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICNjYzRiMzc7IH1cblxuLmlzLWludmFsaWQtbGFiZWwge1xuICBjb2xvcjogI2NjNGIzNzsgfVxuXG4uZm9ybS1lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjY2M0YjM3OyB9XG4gIC5mb3JtLWVycm9yLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgcGFkZGluZzogMC44NWVtIDFlbTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzc5YmE7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuYnV0dG9uIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5idXR0b246aG92ZXIsIC5idXR0b246Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxNDY3OWU7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi50aW55IHtcbiAgICBmb250LXNpemU6IDAuNnJlbTsgfVxuICAuYnV0dG9uLnNtYWxsIHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLmJ1dHRvbi5sYXJnZSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIC5idXR0b24uZXhwYW5kZWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuYnV0dG9uLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzc5YmE7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLnByaW1hcnk6aG92ZXIsIC5idXR0b24ucHJpbWFyeTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTI2MTk1O1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi5zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzY7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5zZWNvbmRhcnk6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVlNWU1ZTtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24uc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNhZGI3NjtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAgIC5idXR0b24uc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5zdWNjZXNzOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMmJiNWI7XG4gICAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuYnV0dG9uLndhcm5pbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmFlMDA7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgICAuYnV0dG9uLndhcm5pbmc6aG92ZXIsIC5idXR0b24ud2FybmluZzpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M4YjAwO1xuICAgICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJ1dHRvbi5hbGVydCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjNGIzNztcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIC5idXR0b24uYWxlcnQ6aG92ZXIsIC5idXR0b24uYWxlcnQ6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E1M2IyYTtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24uaG9sbG93IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMTc3OWJhO1xuICAgIGNvbG9yOiAjMTc3OWJhOyB9XG4gICAgLmJ1dHRvbi5ob2xsb3csIC5idXR0b24uaG9sbG93OmhvdmVyLCAuYnV0dG9uLmhvbGxvdzpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uaG9sbG93OmhvdmVyLCAuYnV0dG9uLmhvbGxvdzpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICMwYzNkNWQ7XG4gICAgICBjb2xvcjogIzBjM2Q1ZDsgfVxuICAgIC5idXR0b24uaG9sbG93LnByaW1hcnkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzE3NzliYTtcbiAgICAgIGNvbG9yOiAjMTc3OWJhOyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMGMzZDVkO1xuICAgICAgICBjb2xvcjogIzBjM2Q1ZDsgfVxuICAgIC5idXR0b24uaG9sbG93LnNlY29uZGFyeSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjNzY3Njc2O1xuICAgICAgY29sb3I6ICM3Njc2NzY7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjM2IzYjNiO1xuICAgICAgICBjb2xvcjogIzNiM2IzYjsgfVxuICAgIC5idXR0b24uaG9sbG93LnN1Y2Nlc3Mge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzNhZGI3NjtcbiAgICAgIGNvbG9yOiAjM2FkYjc2OyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMTU3NTM5O1xuICAgICAgICBjb2xvcjogIzE1NzUzOTsgfVxuICAgIC5idXR0b24uaG9sbG93Lndhcm5pbmcge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmYWUwMDtcbiAgICAgIGNvbG9yOiAjZmZhZTAwOyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjODA1NzAwO1xuICAgICAgICBjb2xvcjogIzgwNTcwMDsgfVxuICAgIC5idXR0b24uaG9sbG93LmFsZXJ0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjYzRiMzc7XG4gICAgICBjb2xvcjogI2NjNGIzNzsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6aG92ZXIsIC5idXR0b24uaG9sbG93LmFsZXJ0OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNjcyNTFhO1xuICAgICAgICBjb2xvcjogIzY3MjUxYTsgfVxuICAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgb3BhY2l0eTogMC4yNTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTc3OWJhO1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLnByaW1hcnksIC5idXR0b25bZGlzYWJsZWRdLnByaW1hcnkge1xuICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgIC5idXR0b24uZGlzYWJsZWQucHJpbWFyeSwgLmJ1dHRvbi5kaXNhYmxlZC5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLnByaW1hcnk6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLnByaW1hcnksIC5idXR0b25bZGlzYWJsZWRdLnByaW1hcnk6aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdLnByaW1hcnk6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTc3OWJhO1xuICAgICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIC5idXR0b24uZGlzYWJsZWQuc2Vjb25kYXJ5LCAuYnV0dG9uW2Rpc2FibGVkXS5zZWNvbmRhcnkge1xuICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgIC5idXR0b24uZGlzYWJsZWQuc2Vjb25kYXJ5LCAuYnV0dG9uLmRpc2FibGVkLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZC5zZWNvbmRhcnk6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLnNlY29uZGFyeSwgLmJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXS5zZWNvbmRhcnk6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2O1xuICAgICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIC5idXR0b24uZGlzYWJsZWQuc3VjY2VzcywgLmJ1dHRvbltkaXNhYmxlZF0uc3VjY2VzcyB7XG4gICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgICAgLmJ1dHRvbi5kaXNhYmxlZC5zdWNjZXNzLCAuYnV0dG9uLmRpc2FibGVkLnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQuc3VjY2Vzczpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0uc3VjY2VzcywgLmJ1dHRvbltkaXNhYmxlZF0uc3VjY2Vzczpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF0uc3VjY2Vzczpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzYWRiNzY7XG4gICAgICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgLmJ1dHRvbi5kaXNhYmxlZC53YXJuaW5nLCAuYnV0dG9uW2Rpc2FibGVkXS53YXJuaW5nIHtcbiAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgICAuYnV0dG9uLmRpc2FibGVkLndhcm5pbmcsIC5idXR0b24uZGlzYWJsZWQud2FybmluZzpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZC53YXJuaW5nOmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXS53YXJuaW5nLCAuYnV0dG9uW2Rpc2FibGVkXS53YXJuaW5nOmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXS53YXJuaW5nOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDtcbiAgICAgICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLmFsZXJ0LCAuYnV0dG9uW2Rpc2FibGVkXS5hbGVydCB7XG4gICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgICAgLmJ1dHRvbi5kaXNhYmxlZC5hbGVydCwgLmJ1dHRvbi5kaXNhYmxlZC5hbGVydDpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZC5hbGVydDpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0uYWxlcnQsIC5idXR0b25bZGlzYWJsZWRdLmFsZXJ0OmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXS5hbGVydDpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzRiMzc7XG4gICAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24uZHJvcGRvd246OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCAwLjRlbTtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogI2ZlZmVmZSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjRlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07IH1cbiAgLmJ1dHRvbi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgdG9wOiAtMC4xZW07XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmFjY29yZGlvbiB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cblxuLmFjY29yZGlvbi1pdGVtOmZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuXG4uYWNjb3JkaW9uLWl0ZW06bGFzdC1jaGlsZCA+IDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuXG4uYWNjb3JkaW9uLXRpdGxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMS4yNXJlbSAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItYm90dG9tOiAwO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzE3NzliYTsgfVxuICA6bGFzdC1jaGlsZDpub3QoLmlzLWFjdGl2ZSkgPiAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG4gIC5hY2NvcmRpb24tdGl0bGU6aG92ZXIsIC5hY2NvcmRpb24tdGl0bGU6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7IH1cbiAgLmFjY29yZGlvbi10aXRsZTo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgICBjb250ZW50OiAnKyc7IH1cbiAgLmlzLWFjdGl2ZSA+IC5hY2NvcmRpb24tdGl0bGU6OmJlZm9yZSB7XG4gICAgY29udGVudDogJ1xcMjAxMyc7IH1cblxuLmFjY29yZGlvbi1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgY29sb3I6ICMwYTBhMGE7IH1cbiAgOmxhc3QtY2hpbGQgPiAuYWNjb3JkaW9uLWNvbnRlbnQ6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNmU2ZTY7IH1cblxuLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICMxNzc5YmEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgcmlnaHQ6IDFyZW07IH1cblxuLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudFthcmlhLWV4cGFuZGVkPSd0cnVlJ10gPiBhOjphZnRlciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7IH1cblxuLmJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtaW4td2lkdGg6IDIuMWVtO1xuICBwYWRkaW5nOiAwLjNlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmb250LXNpemU6IDAuNnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiAjMTc3OWJhO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYmFkZ2UucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogIzE3NzliYTtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYmFkZ2Uuc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAjNzY3Njc2O1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5iYWRnZS5zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2FkYjc2O1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5iYWRnZS53YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZhZTAwO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5iYWRnZS5hbGVydCB7XG4gICAgYmFja2dyb3VuZDogI2NjNGIzNztcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuXG4uYnJlYWRjcnVtYnMge1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgLmJyZWFkY3J1bWJzOjpiZWZvcmUsIC5icmVhZGNydW1iczo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJzsgfVxuICAuYnJlYWRjcnVtYnM6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuYnJlYWRjcnVtYnMgbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMC42ODc1cmVtO1xuICAgIGNvbG9yOiAjMGEwYTBhO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgLmJyZWFkY3J1bWJzIGxpOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMXB4O1xuICAgICAgbWFyZ2luOiAwIDAuNzVyZW07XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgY29udGVudDogXCIvXCI7XG4gICAgICBjb2xvcjogI2NhY2FjYTsgfVxuICAuYnJlYWRjcnVtYnMgYSB7XG4gICAgY29sb3I6ICMxNzc5YmE7IH1cbiAgICAuYnJlYWRjcnVtYnMgYTpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAuYnJlYWRjcnVtYnMgLmRpc2FibGVkIHtcbiAgICBjb2xvcjogI2NhY2FjYTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cbi5idXR0b24tZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXNpemU6IDA7IH1cbiAgLmJ1dHRvbi1ncm91cDo6YmVmb3JlLCAuYnV0dG9uLWdyb3VwOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnOyB9XG4gIC5idXR0b24tZ3JvdXA6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuYnV0dG9uLWdyb3VwIC5idXR0b24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDFweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcHg7XG4gICAgZm9udC1zaXplOiAwLjlyZW07IH1cbiAgICAuYnV0dG9uLWdyb3VwIC5idXR0b246bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLmJ1dHRvbi1ncm91cC50aW55IC5idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMC42cmVtOyB9XG4gIC5idXR0b24tZ3JvdXAuc21hbGwgLmJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtOyB9XG4gIC5idXR0b24tZ3JvdXAubGFyZ2UgLmJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQge1xuICAgIG1hcmdpbi1yaWdodDogLTFweDsgfVxuICAgIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQ6OmJlZm9yZSwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZDo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDIpLCAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMik6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMikgfiAuYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDFweCk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFweDsgfVxuICAgICAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDIpOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKSB+IC5idXR0b246bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTZweDsgfVxuICAgIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgzKSwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDMpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDMpIH4gLmJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxcHgpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcHg7IH1cbiAgICAgIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgzKTpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMyk6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMykgfiAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC02cHg7IH1cbiAgICAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNCksIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg0KTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg0KSB+IC5idXR0b24ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMXB4KTtcbiAgICAgIG1hcmdpbi1yaWdodDogMXB4OyB9XG4gICAgICAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNCk6bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDQpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDQpIH4gLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNnB4OyB9XG4gICAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDUpLCAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNSk6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNSkgfiAuYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiBjYWxjKDIwJSAtIDFweCk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFweDsgfVxuICAgICAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDUpOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg1KTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg1KSB+IC5idXR0b246bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTZweDsgfVxuICAgIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg2KSwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDYpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDYpIH4gLmJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogY2FsYygxNi42NjY2NyUgLSAxcHgpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcHg7IH1cbiAgICAgIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg2KTpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNik6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNikgfiAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC02cHg7IH1cbiAgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzc5YmE7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b246Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzEyNjE5NTtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzY7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1ZTVlNWU7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNhZGI3NjtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAgIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjJiYjViO1xuICAgICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmFlMDA7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgICAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b246Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjOGIwMDtcbiAgICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjNGIzNztcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhNTNiMmE7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZCAuYnV0dG9uOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbjpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbiB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gLmJ1dHRvbiB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIC5idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxuLmNhbGxvdXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMCwgMTAsIDEwLCAwLjI1KTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5jYWxsb3V0ID4gOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIC5jYWxsb3V0ID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmNhbGxvdXQucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Q3ZWNmYTtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuY2FsbG91dC5zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlYWVhZWE7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmNhbGxvdXQuc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UxZmFlYTtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuY2FsbG91dC53YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmM2Q5O1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5jYWxsb3V0LmFsZXJ0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdlNGUxO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5jYWxsb3V0LnNtYWxsIHtcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC41cmVtOyB9XG4gIC5jYWxsb3V0LmxhcmdlIHtcbiAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICAgIHBhZGRpbmctbGVmdDogM3JlbTsgfVxuXG4uY2FyZCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5jYXJkID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmNhcmQtZGl2aWRlciB7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7IH1cbiAgLmNhcmQtZGl2aWRlciA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5jYXJkLXNlY3Rpb24ge1xuICBwYWRkaW5nOiAxcmVtOyB9XG4gIC5jYXJkLXNlY3Rpb24gPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uY2xvc2UtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogIzhhOGE4YTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuY2xvc2UtYnV0dG9uIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5jbG9zZS1idXR0b246aG92ZXIsIC5jbG9zZS1idXR0b246Zm9jdXMge1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5jbG9zZS1idXR0b24uc21hbGwge1xuICAgIHJpZ2h0OiAwLjY2cmVtO1xuICAgIHRvcDogMC4zM2VtO1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgLmNsb3NlLWJ1dHRvbiwgLmNsb3NlLWJ1dHRvbi5tZWRpdW0ge1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIHRvcDogMC41cmVtO1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbi5tZW51IHtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cbiAgLm1lbnUgPiBsaSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5tZW51ID4gbGkge1xuICAgICAgb3V0bGluZTogMDsgfVxuICAubWVudSA+IGxpID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMC43cmVtIDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgLm1lbnUgaW5wdXQsXG4gIC5tZW51IHNlbGVjdCxcbiAgLm1lbnUgYSxcbiAgLm1lbnUgYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5tZW51ID4gbGkgPiBhIGltZyxcbiAgLm1lbnUgPiBsaSA+IGEgaSxcbiAgLm1lbnUgPiBsaSA+IGEgc3ZnIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgLm1lbnUgPiBsaSA+IGEgaW1nICsgc3BhbixcbiAgICAubWVudSA+IGxpID4gYSBpICsgc3BhbixcbiAgICAubWVudSA+IGxpID4gYSBzdmcgKyBzcGFuIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgLm1lbnUgPiBsaSA+IGEgaW1nLFxuICAubWVudSA+IGxpID4gYSBpLFxuICAubWVudSA+IGxpID4gYSBzdmcge1xuICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLm1lbnUgPiBsaSwgLm1lbnUuaG9yaXpvbnRhbCA+IGxpIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOyB9XG4gIC5tZW51LmV4cGFuZGVkIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkOyB9XG4gICAgLm1lbnUuZXhwYW5kZWQgPiBsaTpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5tZW51LnZlcnRpY2FsID4gbGkge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOyB9XG4gICAgLm1lbnUubWVkaXVtLWV4cGFuZGVkIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkOyB9XG4gICAgICAubWVudS5tZWRpdW0tZXhwYW5kZWQgPiBsaTpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgICAubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsgfVxuICAgIC5tZW51LmxhcmdlLWV4cGFuZGVkIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkOyB9XG4gICAgICAubWVudS5sYXJnZS1leHBhbmRlZCA+IGxpOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICAubWVudS5zaW1wbGUgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIC5tZW51LnNpbXBsZSBhIHtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5tZW51LnNpbXBsZSBsaSB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gIC5tZW51LnNpbXBsZS5hbGlnbi1yaWdodCBsaSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG4gIC5tZW51LmFsaWduLXJpZ2h0OjpiZWZvcmUsIC5tZW51LmFsaWduLXJpZ2h0OjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnOyB9XG4gIC5tZW51LmFsaWduLXJpZ2h0OjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLm1lbnUuYWxpZ24tcmlnaHQgPiBsaSB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC5tZW51Lmljb24tdG9wID4gbGkgPiBhIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAubWVudS5pY29uLXRvcCA+IGxpID4gYSBpbWcsXG4gICAgLm1lbnUuaWNvbi10b3AgPiBsaSA+IGEgaSxcbiAgICAubWVudS5pY29uLXRvcCA+IGxpID4gYSBzdmcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDAgYXV0byAwLjI1cmVtOyB9XG4gIC5tZW51Lmljb24tdG9wLnZlcnRpY2FsIGEgPiBzcGFuIHtcbiAgICBtYXJnaW46IGF1dG87IH1cbiAgLm1lbnUubmVzdGVkIHtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAubWVudSAuYWN0aXZlID4gYSB7XG4gICAgYmFja2dyb3VuZDogIzE3NzliYTtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAubWVudS5tZW51LWJvcmRlcmVkIGxpIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2OyB9XG4gICAgLm1lbnUubWVudS1ib3JkZXJlZCBsaTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBib3JkZXItdG9wOiAwOyB9XG4gIC5tZW51Lm1lbnUtaG92ZXIgbGk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7IH1cblxuLm1lbnUtdGV4dCB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMC43cmVtIDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IGluaGVyaXQ7IH1cblxuLm1lbnUtY2VudGVyZWQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLm1lbnUtY2VudGVyZWQgPiAubWVudSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cblxuLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZW51LWljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMTZweDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5tZW51LWljb246OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICNmZWZlZmUsIDAgMTRweCAwICNmZWZlZmU7XG4gICAgY29udGVudDogJyc7IH1cbiAgLm1lbnUtaWNvbjpob3Zlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICNjYWNhY2E7XG4gICAgYm94LXNoYWRvdzogMCA3cHggMCAjY2FjYWNhLCAwIDE0cHggMCAjY2FjYWNhOyB9XG5cbi5tZW51LWljb24uZGFyayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLm1lbnUtaWNvbi5kYXJrOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQ6ICMwYTBhMGE7XG4gICAgYm94LXNoYWRvdzogMCA3cHggMCAjMGEwYTBhLCAwIDE0cHggMCAjMGEwYTBhO1xuICAgIGNvbnRlbnQ6ICcnOyB9XG4gIC5tZW51LWljb24uZGFyazpob3Zlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICM4YThhOGE7XG4gICAgYm94LXNoYWRvdzogMCA3cHggMCAjOGE4YThhLCAwIDE0cHggMCAjOGE4YThhOyB9XG5cbi5pcy1kcmlsbGRvd24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmlzLWRyaWxsZG93biBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmlzLWRyaWxsZG93bi5hbmltYXRlLWhlaWdodCB7XG4gICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuNXM7IH1cblxuLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDEwMCU7XG4gIHotaW5kZXg6IC0xO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhcjsgfVxuICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUuaXMtYWN0aXZlIHtcbiAgICB6LWluZGV4OiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cbiAgLmlzLWRyaWxsZG93bi1zdWJtZW51LmlzLWNsb3Npbmcge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuXG4uZHJpbGxkb3duLXN1Ym1lbnUtY292ZXItcHJldmlvdXMge1xuICBtaW4taGVpZ2h0OiAxMDAlOyB9XG5cbi5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMTc3OWJhO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtNnB4O1xuICAgIHJpZ2h0OiAxcmVtOyB9XG5cbi5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMxNzc5YmEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7IH1cblxuLmRyb3Bkb3duLXBhbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDMwMHB4O1xuICBwYWRkaW5nOiAxcmVtO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAuZHJvcGRvd24tcGFuZS5pcy1vcGVuIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG5cbi5kcm9wZG93bi1wYW5lLnRpbnkge1xuICB3aWR0aDogMTAwcHg7IH1cblxuLmRyb3Bkb3duLXBhbmUuc21hbGwge1xuICB3aWR0aDogMjAwcHg7IH1cblxuLmRyb3Bkb3duLXBhbmUubGFyZ2Uge1xuICB3aWR0aDogNDAwcHg7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDEwMCU7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi5kcm9wZG93bi5tZW51ID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICByaWdodDogNXB4O1xuICBtYXJnaW4tdG9wOiAtM3B4OyB9XG5cbltkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuZHJvcGRvd24ubWVudSBhIHtcbiAgb3V0bGluZTogMDsgfVxuXG4ubm8tanMgLmRyb3Bkb3duLm1lbnUgdWwge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICByaWdodDogMTAwJTtcbiAgbGVmdDogYXV0bzsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMTAwJTsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICByaWdodDogMTRweDsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMxNzc5YmEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNnB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzE3NzliYTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICByaWdodDogNXB4O1xuICAgIG1hcmdpbi10b3A6IC0zcHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaSA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogMTRweDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMxNzc5YmE7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLWhvcml6b250YWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLWhvcml6b250YWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICMxNzc5YmEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBtYXJnaW4tdG9wOiAtM3B4OyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogMTRweDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMTc3OWJhOyB9IH1cblxuLmRyb3Bkb3duLm1lbnUuYWxpZ24tcmlnaHQgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViIHtcbiAgdG9wOiAxMDAlO1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bzsgfVxuXG4uaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gIHdpZHRoOiAxMDBweDsgfVxuICAuaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbC5hbGlnbi1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgYTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogNXB4O1xuICAgIG1hcmdpbi10b3A6IC02cHg7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWlubmVyID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7IH1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMTAwJTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMxNzc5YmE7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIG1hcmdpbi10b3A6IC0xcHg7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgPiBsaSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4ucmVzcG9uc2l2ZS1lbWJlZCxcbi5mbGV4LXZpZGVvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiA3NSU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnJlc3BvbnNpdmUtZW1iZWQgaWZyYW1lLFxuICAucmVzcG9uc2l2ZS1lbWJlZCBvYmplY3QsXG4gIC5yZXNwb25zaXZlLWVtYmVkIGVtYmVkLFxuICAucmVzcG9uc2l2ZS1lbWJlZCB2aWRlbyxcbiAgLmZsZXgtdmlkZW8gaWZyYW1lLFxuICAuZmxleC12aWRlbyBvYmplY3QsXG4gIC5mbGV4LXZpZGVvIGVtYmVkLFxuICAuZmxleC12aWRlbyB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAucmVzcG9uc2l2ZS1lbWJlZC53aWRlc2NyZWVuLFxuICAuZmxleC12aWRlby53aWRlc2NyZWVuIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlOyB9XG5cbi5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBiYWNrZ3JvdW5kOiAjMTc3OWJhO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuICAubGFiZWwucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogIzE3NzliYTtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAubGFiZWwuc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAjNzY3Njc2O1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5sYWJlbC5zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2FkYjc2O1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5sYWJlbC53YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZhZTAwO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5sYWJlbC5hbGVydCB7XG4gICAgYmFja2dyb3VuZDogI2NjNGIzNztcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuXG4ubWVkaWEtb2JqZWN0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgLm1lZGlhLW9iamVjdCBpbWcge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgICAubWVkaWEtb2JqZWN0LnN0YWNrLWZvci1zbWFsbCAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIC5tZWRpYS1vYmplY3Quc3RhY2stZm9yLXNtYWxsIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbjpsYXN0LWNoaWxkOm5vdCg6bnRoLWNoaWxkKDIpKSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbi5taWRkbGUge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uLmJvdHRvbSB7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTsgfVxuXG4uaXMtb2ZmLWNhbnZhcy1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4uanMtb2ZmLWNhbnZhcy1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLCB2aXNpYmlsaXR5IDAuNXMgZWFzZTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTQsIDI1NCwgMjU0LCAwLjI1KTtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtdmlzaWJsZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtY2xvc2FibGUge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAuanMtb2ZmLWNhbnZhcy1vdmVybGF5LmlzLW92ZXJsYXktYWJzb2x1dGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAuanMtb2ZmLWNhbnZhcy1vdmVybGF5LmlzLW92ZXJsYXktZml4ZWQge1xuICAgIHBvc2l0aW9uOiBmaXhlZDsgfVxuXG4ub2ZmLWNhbnZhcy13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5vZmYtY2FudmFzIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vZmYtY2FudmFzIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5vZmYtY2FudmFzLmlzLXRyYW5zaXRpb24tb3ZlcmxhcCB7XG4gICAgei1pbmRleDogMTA7IH1cbiAgICAub2ZmLWNhbnZhcy5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDEwLCAxMCwgMTAsIDAuNyk7IH1cbiAgLm9mZi1jYW52YXMuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cblxuLm9mZi1jYW52YXMtYWJzb2x1dGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogI2U2ZTZlNjsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9mZi1jYW52YXMtYWJzb2x1dGUge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm9mZi1jYW52YXMtYWJzb2x1dGUuaXMtdHJhbnNpdGlvbi1vdmVybGFwIHtcbiAgICB6LWluZGV4OiAxMDsgfVxuICAgIC5vZmYtY2FudmFzLWFic29sdXRlLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMTAsIDEwLCAxMCwgMC43KTsgfVxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuXG4ucG9zaXRpb24tbGVmdCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDI1MHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjUwcHgpO1xuICBvdmVyZmxvdy15OiBhdXRvOyB9XG4gIC5wb3NpdGlvbi1sZWZ0LmlzLW9wZW4gfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjUwcHgpOyB9XG4gIC5wb3NpdGlvbi1sZWZ0LmlzLXRyYW5zaXRpb24tcHVzaDo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgxMCwgMTAsIDEwLCAwLjcpO1xuICAgIGNvbnRlbnQ6IFwiIFwiOyB9XG4gIC5wb3NpdGlvbi1sZWZ0LmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgdHJhbnNmb3JtOiBub25lOyB9XG5cbi5wb3NpdGlvbi1yaWdodCB7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAyNTBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjUwcHgpO1xuICBvdmVyZmxvdy15OiBhdXRvOyB9XG4gIC5wb3NpdGlvbi1yaWdodC5pcy1vcGVuIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yNTBweCk7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LmlzLXRyYW5zaXRpb24tcHVzaDo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDFweDtcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDEwLCAxMCwgMTAsIDAuNyk7XG4gICAgY29udGVudDogXCIgXCI7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgdHJhbnNmb3JtOiBub25lOyB9XG5cbi5wb3NpdGlvbi10b3Age1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDI1MHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1MHB4KTtcbiAgb3ZlcmZsb3cteDogYXV0bzsgfVxuICAucG9zaXRpb24tdG9wLmlzLW9wZW4gfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjUwcHgpOyB9XG4gIC5wb3NpdGlvbi10b3AuaXMtdHJhbnNpdGlvbi1wdXNoOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMXB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMTAsIDEwLCAxMCwgMC43KTtcbiAgICBjb250ZW50OiBcIiBcIjsgfVxuICAucG9zaXRpb24tdG9wLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgdHJhbnNmb3JtOiBub25lOyB9XG5cbi5wb3NpdGlvbi1ib3R0b20ge1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDI1MHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjUwcHgpO1xuICBvdmVyZmxvdy14OiBhdXRvOyB9XG4gIC5wb3NpdGlvbi1ib3R0b20uaXMtb3BlbiB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwcHgpOyB9XG4gIC5wb3NpdGlvbi1ib3R0b20uaXMtdHJhbnNpdGlvbi1wdXNoOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMXB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMTAsIDEwLCAxMCwgMC43KTtcbiAgICBjb250ZW50OiBcIiBcIjsgfVxuICAucG9zaXRpb24tYm90dG9tLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgdHJhbnNmb3JtOiBub25lOyB9XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxOyB9XG4gICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1tZWRpdW0gfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyNTBweDsgfVxuICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxOyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4OyB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxOyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLXRvcDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyNTBweDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tbGVmdDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxOyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTsgfVxuICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1sYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLXRvcDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjUwcHg7IH0gfVxuXG4ub3JiaXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLm9yYml0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLm9yYml0LXNsaWRlIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLm9yYml0LXNsaWRlLm5vLW1vdGlvbnVpLmlzLWFjdGl2ZSB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7IH1cblxuLm9yYml0LWZpZ3VyZSB7XG4gIG1hcmdpbjogMDsgfVxuXG4ub3JiaXQtaW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7IH1cblxuLm9yYml0LWNhcHRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAsIDEwLCAxMCwgMC41KTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cblxuLm9yYml0LXByZXZpb3VzLCAub3JiaXQtbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgei1pbmRleDogMTA7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub3JiaXQtcHJldmlvdXMsIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub3JiaXQtbmV4dCB7XG4gICAgb3V0bGluZTogMDsgfVxuICAub3JiaXQtcHJldmlvdXM6aG92ZXIsIC5vcmJpdC1uZXh0OmhvdmVyLCAub3JiaXQtcHJldmlvdXM6YWN0aXZlLCAub3JiaXQtbmV4dDphY3RpdmUsIC5vcmJpdC1wcmV2aW91czpmb2N1cywgLm9yYml0LW5leHQ6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAsIDEwLCAxMCwgMC41KTsgfVxuXG4ub3JiaXQtcHJldmlvdXMge1xuICBsZWZ0OiAwOyB9XG5cbi5vcmJpdC1uZXh0IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7IH1cblxuLm9yYml0LWJ1bGxldHMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6IDAuOHJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC44cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vcmJpdC1idWxsZXRzIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5vcmJpdC1idWxsZXRzIGJ1dHRvbiB7XG4gICAgd2lkdGg6IDEuMnJlbTtcbiAgICBoZWlnaHQ6IDEuMnJlbTtcbiAgICBtYXJnaW46IDAuMXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NhY2FjYTsgfVxuICAgIC5vcmJpdC1idWxsZXRzIGJ1dHRvbjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGE4YThhOyB9XG4gICAgLm9yYml0LWJ1bGxldHMgYnV0dG9uLmlzLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGE4YThhOyB9XG5cbi5wYWdpbmF0aW9uIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgLnBhZ2luYXRpb246OmJlZm9yZSwgLnBhZ2luYXRpb246OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7IH1cbiAgLnBhZ2luYXRpb246OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAucGFnaW5hdGlvbiBsaSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjA2MjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAucGFnaW5hdGlvbiBsaTpsYXN0LWNoaWxkLCAucGFnaW5hdGlvbiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLnBhZ2luYXRpb24gbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuICAucGFnaW5hdGlvbiBhLFxuICAucGFnaW5hdGlvbiBidXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgLnBhZ2luYXRpb24gYTpob3ZlcixcbiAgICAucGFnaW5hdGlvbiBidXR0b246aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2U2ZTZlNjsgfVxuICAucGFnaW5hdGlvbiAuY3VycmVudCB7XG4gICAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICAgIGJhY2tncm91bmQ6ICMxNzc5YmE7XG4gICAgY29sb3I6ICNmZWZlZmU7XG4gICAgY3Vyc29yOiBkZWZhdWx0OyB9XG4gIC5wYWdpbmF0aW9uIC5kaXNhYmxlZCB7XG4gICAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICAgIGNvbG9yOiAjY2FjYWNhO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAucGFnaW5hdGlvbiAuZGlzYWJsZWQ6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgLnBhZ2luYXRpb24gLmVsbGlwc2lzOjphZnRlciB7XG4gICAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICAgIGNvbnRlbnQ6ICdcXDIwMjYnO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG5cbi5wYWdpbmF0aW9uLXByZXZpb3VzIGE6OmJlZm9yZSxcbi5wYWdpbmF0aW9uLXByZXZpb3VzLmRpc2FibGVkOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICBjb250ZW50OiAnXFwwMGFiJzsgfVxuXG4ucGFnaW5hdGlvbi1uZXh0IGE6OmFmdGVyLFxuLnBhZ2luYXRpb24tbmV4dC5kaXNhYmxlZDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIGNvbnRlbnQ6ICdcXDAwYmInOyB9XG5cbi5wcm9ncmVzcyB7XG4gIGhlaWdodDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NhY2FjYTsgfVxuICAucHJvZ3Jlc3MucHJpbWFyeSAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzc5YmE7IH1cbiAgLnByb2dyZXNzLnNlY29uZGFyeSAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzY7IH1cbiAgLnByb2dyZXNzLnN1Y2Nlc3MgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2OyB9XG4gIC5wcm9ncmVzcy53YXJuaW5nIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDsgfVxuICAucHJvZ3Jlc3MuYWxlcnQgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YjM3OyB9XG5cbi5wcm9ncmVzcy1tZXRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTc3OWJhOyB9XG5cbi5wcm9ncmVzcy1tZXRlci10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5zbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMC41cmVtO1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7IH1cblxuLnNsaWRlci1maWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDAuNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NhY2FjYTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7IH1cbiAgLnNsaWRlci1maWxsLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyOyB9XG5cbi5zbGlkZXItaGFuZGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEuNHJlbTtcbiAgaGVpZ2h0OiAxLjRyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzc5YmE7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLnNsaWRlci1oYW5kbGUge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLnNsaWRlci1oYW5kbGU6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxNDY3OWU7IH1cbiAgLnNsaWRlci1oYW5kbGUuaXMtZHJhZ2dpbmcge1xuICAgIHRyYW5zaXRpb246IGFsbCAwcyBsaW5lYXI7IH1cblxuLnNsaWRlci5kaXNhYmxlZCxcbi5zbGlkZXJbZGlzYWJsZWRdIHtcbiAgb3BhY2l0eTogMC4yNTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuXG4uc2xpZGVyLnZlcnRpY2FsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMC41cmVtO1xuICBoZWlnaHQ6IDEyLjVyZW07XG4gIG1hcmdpbjogMCAxLjI1cmVtO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTsgfVxuICAuc2xpZGVyLnZlcnRpY2FsIC5zbGlkZXItZmlsbCB7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAwLjVyZW07XG4gICAgbWF4LWhlaWdodDogMTAwJTsgfVxuICAuc2xpZGVyLnZlcnRpY2FsIC5zbGlkZXItaGFuZGxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogMS40cmVtO1xuICAgIGhlaWdodDogMS40cmVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfVxuXG4uc3RpY2t5LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uc3RpY2t5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG5cbi5zdGlja3kuaXMtc3R1Y2sge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDU7IH1cbiAgLnN0aWNreS5pcy1zdHVjay5pcy1hdC10b3Age1xuICAgIHRvcDogMDsgfVxuICAuc3RpY2t5LmlzLXN0dWNrLmlzLWF0LWJvdHRvbSB7XG4gICAgYm90dG9tOiAwOyB9XG5cbi5zdGlja3kuaXMtYW5jaG9yZWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiBhdXRvOyB9XG4gIC5zdGlja3kuaXMtYW5jaG9yZWQuaXMtYXQtYm90dG9tIHtcbiAgICBib3R0b206IDA7IH1cblxuYm9keS5pcy1yZXZlYWwtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuaHRtbC5pcy1yZXZlYWwtb3Blbixcbmh0bWwuaXMtcmV2ZWFsLW9wZW4gYm9keSB7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG5cbi5yZXZlYWwtb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDA1O1xuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAxMCwgMTAsIDAuNDUpO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7IH1cblxuLnJldmVhbCB7XG4gIHotaW5kZXg6IDEwMDY7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDEwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBvdmVyZmxvdy15OiBhdXRvOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAucmV2ZWFsIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnJldmVhbCB7XG4gICAgICBtaW4taGVpZ2h0OiAwOyB9IH1cbiAgLnJldmVhbCAuY29sdW1uLCAucmV2ZWFsIC5jb2x1bW5zLFxuICAucmV2ZWFsIC5jb2x1bW5zIHtcbiAgICBtaW4td2lkdGg6IDA7IH1cbiAgLnJldmVhbCA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnJldmVhbCB7XG4gICAgICB3aWR0aDogNjAwcHg7XG4gICAgICBtYXgtd2lkdGg6IDc1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucmV2ZWFsIC5yZXZlYWwge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luOiAwIGF1dG87IH0gfVxuICAucmV2ZWFsLmNvbGxhcHNlIHtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnJldmVhbC50aW55IHtcbiAgICAgIHdpZHRoOiAzMCU7XG4gICAgICBtYXgtd2lkdGg6IDc1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucmV2ZWFsLnNtYWxsIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBtYXgtd2lkdGg6IDc1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucmV2ZWFsLmxhcmdlIHtcbiAgICAgIHdpZHRoOiA5MCU7XG4gICAgICBtYXgtd2lkdGg6IDc1cmVtOyB9IH1cbiAgLnJldmVhbC5mdWxsIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gICAgLnJldmVhbCB7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7IH0gfVxuICAucmV2ZWFsLndpdGhvdXQtb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGZpeGVkOyB9XG5cbi5zd2l0Y2gge1xuICBoZWlnaHQ6IDJyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgb3V0bGluZTogMDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuXG4uc3dpdGNoLWlucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zd2l0Y2gtcGFkZGxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDRyZW07XG4gIGhlaWdodDogMnJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogI2NhY2FjYTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICBpbnB1dCArIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwLjI1cmVtO1xuICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEuNXJlbTtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG4gICAgY29udGVudDogJyc7IH1cbiAgaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtcGFkZGxlIHtcbiAgICBiYWNrZ3JvdW5kOiAjMTc3OWJhOyB9XG4gICAgaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgICBsZWZ0OiAyLjI1cmVtOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSBpbnB1dDpmb2N1cyB+IC5zd2l0Y2gtcGFkZGxlIHtcbiAgICBvdXRsaW5lOiAwOyB9XG5cbi5zd2l0Y2gtYWN0aXZlLCAuc3dpdGNoLWluYWN0aXZlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG5cbi5zd2l0Y2gtYWN0aXZlIHtcbiAgbGVmdDogOCU7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gLnN3aXRjaC1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5zd2l0Y2gtaW5hY3RpdmUge1xuICByaWdodDogMTUlOyB9XG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCA+IC5zd2l0Y2gtaW5hY3RpdmUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLnN3aXRjaC50aW55IHtcbiAgaGVpZ2h0OiAxLjVyZW07IH1cbiAgLnN3aXRjaC50aW55IC5zd2l0Y2gtcGFkZGxlIHtcbiAgICB3aWR0aDogM3JlbTtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICBmb250LXNpemU6IDAuNjI1cmVtOyB9XG4gIC5zd2l0Y2gudGlueSAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIHRvcDogMC4yNXJlbTtcbiAgICBsZWZ0OiAwLjI1cmVtO1xuICAgIHdpZHRoOiAxcmVtO1xuICAgIGhlaWdodDogMXJlbTsgfVxuICAuc3dpdGNoLnRpbnkgaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgbGVmdDogMS43NXJlbTsgfVxuXG4uc3dpdGNoLnNtYWxsIHtcbiAgaGVpZ2h0OiAxLjc1cmVtOyB9XG4gIC5zd2l0Y2guc21hbGwgLnN3aXRjaC1wYWRkbGUge1xuICAgIHdpZHRoOiAzLjVyZW07XG4gICAgaGVpZ2h0OiAxLjc1cmVtO1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuICAuc3dpdGNoLnNtYWxsIC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgdG9wOiAwLjI1cmVtO1xuICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgd2lkdGg6IDEuMjVyZW07XG4gICAgaGVpZ2h0OiAxLjI1cmVtOyB9XG4gIC5zd2l0Y2guc21hbGwgaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgbGVmdDogMnJlbTsgfVxuXG4uc3dpdGNoLmxhcmdlIHtcbiAgaGVpZ2h0OiAyLjVyZW07IH1cbiAgLnN3aXRjaC5sYXJnZSAuc3dpdGNoLXBhZGRsZSB7XG4gICAgd2lkdGg6IDVyZW07XG4gICAgaGVpZ2h0OiAyLjVyZW07XG4gICAgZm9udC1zaXplOiAxcmVtOyB9XG4gIC5zd2l0Y2gubGFyZ2UgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICB0b3A6IDAuMjVyZW07XG4gICAgbGVmdDogMC4yNXJlbTtcbiAgICB3aWR0aDogMnJlbTtcbiAgICBoZWlnaHQ6IDJyZW07IH1cbiAgLnN3aXRjaC5sYXJnZSBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICBsZWZ0OiAyLjc1cmVtOyB9XG5cbnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgdGFibGUgdGhlYWQsXG4gIHRhYmxlIHRib2R5LFxuICB0YWJsZSB0Zm9vdCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2YxZjFmMTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlOyB9XG4gIHRhYmxlIGNhcHRpb24ge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjYyNXJlbSAwLjYyNXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICB0YWJsZSB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZjhmODtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICB0YWJsZSB0Zm9vdCB7XG4gICAgYmFja2dyb3VuZDogI2YxZjFmMTtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICB0YWJsZSB0aGVhZCB0cixcbiAgdGFibGUgdGZvb3QgdHIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gIHRhYmxlIHRoZWFkIHRoLFxuICB0YWJsZSB0aGVhZCB0ZCxcbiAgdGFibGUgdGZvb3QgdGgsXG4gIHRhYmxlIHRmb290IHRkIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC42MjVyZW0gMC42MjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICB0YWJsZSB0Ym9keSB0aCxcbiAgdGFibGUgdGJvZHkgdGQge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjYyNXJlbSAwLjYyNXJlbTsgfVxuICB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTsgfVxuICB0YWJsZS51bnN0cmlwZWQgdGJvZHkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7IH1cbiAgICB0YWJsZS51bnN0cmlwZWQgdGJvZHkgdHIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjFmMWYxO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NGVtKSB7XG4gIHRhYmxlLnN0YWNrIHRoZWFkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIHRhYmxlLnN0YWNrIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIHRhYmxlLnN0YWNrIHRyLFxuICB0YWJsZS5zdGFjayB0aCxcbiAgdGFibGUuc3RhY2sgdGQge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIHRhYmxlLnN0YWNrIHRkIHtcbiAgICBib3JkZXItdG9wOiAwOyB9IH1cblxudGFibGUuc2Nyb2xsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvOyB9XG5cbnRhYmxlLmhvdmVyIHRoZWFkIHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMzsgfVxuXG50YWJsZS5ob3ZlciB0Zm9vdCB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VjZWM7IH1cblxudGFibGUuaG92ZXIgdGJvZHkgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5OyB9XG5cbnRhYmxlLmhvdmVyOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VjZWM7IH1cblxuLnRhYmxlLXNjcm9sbCB7XG4gIG92ZXJmbG93LXg6IGF1dG87IH1cbiAgLnRhYmxlLXNjcm9sbCB0YWJsZSB7XG4gICAgd2lkdGg6IGF1dG87IH1cblxuLnRhYnMge1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuICAudGFiczo6YmVmb3JlLCAudGFiczo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJzsgfVxuICAudGFiczo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi50YWJzLnZlcnRpY2FsID4gbGkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiBhdXRvOyB9XG5cbi50YWJzLnNpbXBsZSA+IGxpID4gYSB7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLnRhYnMuc2ltcGxlID4gbGkgPiBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuXG4udGFicy5wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzE3NzliYTsgfVxuICAudGFicy5wcmltYXJ5ID4gbGkgPiBhIHtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIC50YWJzLnByaW1hcnkgPiBsaSA+IGE6aG92ZXIsIC50YWJzLnByaW1hcnkgPiBsaSA+IGE6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZDogIzE2NzNiMTsgfVxuXG4udGFicy10aXRsZSB7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC50YWJzLXRpdGxlID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMS4yNXJlbSAxLjVyZW07XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAjMTc3OWJhOyB9XG4gICAgLnRhYnMtdGl0bGUgPiBhOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gICAgICBjb2xvcjogIzE0NjhhMDsgfVxuICAgIC50YWJzLXRpdGxlID4gYTpmb2N1cywgLnRhYnMtdGl0bGUgPiBhW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZTZlNmU2O1xuICAgICAgY29sb3I6ICMxNzc5YmE7IH1cblxuLnRhYnMtY29udGVudCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlOyB9XG5cbi50YWJzLWNvbnRlbnQudmVydGljYWwge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItbGVmdDogMDsgfVxuXG4udGFicy1wYW5lbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDFyZW07IH1cbiAgLnRhYnMtcGFuZWxbYXJpYS1oaWRkZW49XCJmYWxzZVwiXSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBib3JkZXI6IHNvbGlkIDRweCAjZmVmZWZlO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgxMCwgMTAsIDEwLCAwLjIpO1xuICBsaW5lLWhlaWdodDogMDsgfVxuXG5hLnRodW1ibmFpbCB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQ7IH1cbiAgYS50aHVtYm5haWw6aG92ZXIsIGEudGh1bWJuYWlsOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAwIDAgNnB4IDFweCByZ2JhKDIzLCAxMjEsIDE4NiwgMC41KTsgfVxuICBhLnRodW1ibmFpbCBpbWFnZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTsgfVxuXG4udGl0bGUtYmFyIHtcbiAgcGFkZGluZzogMC41cmVtO1xuICBiYWNrZ3JvdW5kOiAjMGEwYTBhO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuICAudGl0bGUtYmFyOjpiZWZvcmUsIC50aXRsZS1iYXI6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7IH1cbiAgLnRpdGxlLWJhcjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC50aXRsZS1iYXIgLm1lbnUtaWNvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtOyB9XG5cbi50aXRsZS1iYXItbGVmdCB7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi50aXRsZS1iYXItcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi50aXRsZS1iYXItdGl0bGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5oYXMtdGlwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggIzhhOGE4YTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGN1cnNvcjogaGVscDsgfVxuXG4udG9vbHRpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgKyAwLjY0OTVyZW0pO1xuICB6LWluZGV4OiAxMjAwO1xuICBtYXgtd2lkdGg6IDEwcmVtO1xuICBwYWRkaW5nOiAwLjc1cmVtO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGEwYTBhO1xuICBmb250LXNpemU6IDgwJTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLnRvb2x0aXA6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC43NXJlbTtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzBhMGEwYTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAxMDAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cbiAgLnRvb2x0aXAudG9wOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDAuNzVyZW07XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICMwYTBhMGEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgdG9wOiAxMDAlO1xuICAgIGJvdHRvbTogYXV0bzsgfVxuICAudG9vbHRpcC5sZWZ0OjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDAuNzVyZW07XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwYTBhMGE7XG4gICAgdG9wOiA1MCU7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gIC50b29sdGlwLnJpZ2h0OjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDAuNzVyZW07XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMwYTBhMGEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG5cbi50b3AtYmFyIHtcbiAgcGFkZGluZzogMC41cmVtOyB9XG4gIC50b3AtYmFyOjpiZWZvcmUsIC50b3AtYmFyOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnOyB9XG4gIC50b3AtYmFyOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnRvcC1iYXIsXG4gIC50b3AtYmFyIHVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2OyB9XG4gIC50b3AtYmFyIGlucHV0IHtcbiAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAudG9wLWJhciAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAudG9wLWJhciBpbnB1dC5idXR0b24ge1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC50b3AtYmFyIC50b3AtYmFyLWxlZnQsXG4gIC50b3AtYmFyIC50b3AtYmFyLXJpZ2h0IHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC50b3AtYmFyIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXIgLnRvcC1iYXItcmlnaHQge1xuICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbWVkaXVtIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbWVkaXVtIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7XG4gICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbGFyZ2UgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci5zdGFja2VkLWZvci1sYXJnZSAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi50b3AtYmFyLXRpdGxlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZzogMC41cmVtIDFyZW0gMC41cmVtIDA7IH1cbiAgLnRvcC1iYXItdGl0bGUgLm1lbnUtaWNvbiB7XG4gICAgYm90dG9tOiAycHg7IH1cblxuLnRvcC1iYXItbGVmdCB7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi50b3AtYmFyLXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi5oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gIC5oaWRlLWZvci1zbWFsbC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAwZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnNob3ctZm9yLXNtYWxsLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5oaWRlLWZvci1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAuc2hvdy1mb3ItbWVkaXVtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjRlbSkge1xuICAuaGlkZS1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5zaG93LWZvci1tZWRpdW0tb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAuaGlkZS1mb3ItbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgLnNob3ctZm9yLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcbiAgLmhpZGUtZm9yLWxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0ZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLnNob3ctZm9yLWxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5zaG93LWZvci1zcixcbi5zaG93LW9uLWZvY3VzIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApOyB9XG5cbi5zaG93LW9uLWZvY3VzOmFjdGl2ZSwgLnNob3ctb24tZm9jdXM6Zm9jdXMge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvOyB9XG5cbi5zaG93LWZvci1sYW5kc2NhcGUsXG4uaGlkZS1mb3ItcG9ydHJhaXQge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4uaGlkZS1mb3ItbGFuZHNjYXBlLFxuLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuXG4uZmxvYXQtbGVmdCB7XG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7IH1cblxuLmZsb2F0LXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cblxuLmZsb2F0LWNlbnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG5cbi5jbGVhcmZpeDo6YmVmb3JlLCAuY2xlYXJmaXg6OmFmdGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6ICcgJzsgfVxuXG4uY2xlYXJmaXg6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLnNsaWRlLWluLWRvd24ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi1kb3duLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cbi5zbGlkZS1pbi1sZWZ0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tbGVmdC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuXG4uc2xpZGUtaW4tdXAubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLWluLXVwLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cbi5zbGlkZS1pbi1yaWdodC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tcmlnaHQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cblxuLnNsaWRlLW91dC1kb3duLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtZG93bi5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTsgfVxuXG4uc2xpZGUtb3V0LXJpZ2h0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtcmlnaHQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cblxuLnNsaWRlLW91dC11cC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtb3V0LXVwLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsgfVxuXG4uc2xpZGUtb3V0LWxlZnQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC1sZWZ0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuXG4uZmFkZS1pbi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTsgfVxuXG4uZmFkZS1pbi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmZhZGUtb3V0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5OyB9XG5cbi5mYWRlLW91dC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tdG9wLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS10b3AubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXJpZ2h0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXJpZ2h0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1ib3R0b20ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tYm90dG9tLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1sZWZ0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSg5MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1sZWZ0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXgubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLW1pZGRsZS15Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteS5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXRvcC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXRvcC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLXJpZ2h0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1yaWdodC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLWJvdHRvbS5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLWJvdHRvbS5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbGVmdC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1sZWZ0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS14Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXkubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteS5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNjYWxlLWluLXVwLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtaW4tdXAubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zY2FsZS1pbi1kb3duLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtaW4tZG93bi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLW91dC11cC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zY2FsZS1vdXQtdXAubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNjYWxlLW91dC1kb3duLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLW91dC1kb3duLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zcGluLWluLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMC43NXR1cm4pO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc3Bpbi1vdXQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMC43NXR1cm4pO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zcGluLWluLWNjdy5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMC43NXR1cm4pO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4tY2N3Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0LWNjdy5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc3Bpbi1vdXQtY2N3Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTAuNzV0dXJuKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2xvdyB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1MG1zICFpbXBvcnRhbnQ7IH1cblxuLmZhc3Qge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyNTBtcyAhaW1wb3J0YW50OyB9XG5cbi5saW5lYXIge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyICFpbXBvcnRhbnQ7IH1cblxuLmVhc2Uge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZSAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4gIWltcG9ydGFudDsgfVxuXG4uZWFzZS1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQgIWltcG9ydGFudDsgfVxuXG4uZWFzZS1pbi1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2Utb3V0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuNTE1LCAwLjg0NSkgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NiwgLTAuMjQ1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDsgfVxuXG4uc2hvcnQtZGVsYXkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAzMDBtcyAhaW1wb3J0YW50OyB9XG5cbi5sb25nLWRlbGF5IHtcbiAgdHJhbnNpdGlvbi1kZWxheTogNzAwbXMgIWltcG9ydGFudDsgfVxuXG4vKiBFTkQ6IFZFTkRPUiAqL1xuLyogU1RBUlQ6IEdMT0JBTCAqL1xuLyogU1RBUlQ6IFRFTVBPUkFSWSAqL1xuLyogRU5EOiBURU1QT1JBUlkgKi9cbi8qIFNUQVJUOiBGTE8gSUNPTlMgKi9cbi8qIEVORDogRkxPIElDT05TICovXG4vKiBTVEFSVDogTUlYSU5TICovXG4vKiBFbmQ6IFRyYW5zaXRpb25zICovXG4vKiBFbmQ6IFRyYW5zaXRpb25zICovXG4vKiBTdGFydDogQmFja2dyb3VuZCBpbWFnZSAqL1xuLyogRW5kOiBCYWNrZ3JvdW5kIGltYWdlICovXG4vKiBTdGFydDogQm94IFNpemluZyAqL1xuLyogRW5kOiBCb3ggc2l6aW5nICovXG4vKiBFTkQ6IE1JWElOUyAqL1xuLyogU1RBUlQ6IENPTE9SUyAqL1xuLyogRU5EOiBDT0xPUlMgKi9cbi8qIFNUQVJUOiBGT05UUyAqL1xuLyogRU5EOiBGT05UUyAqL1xuLyogU1RBUlQ6IEdMT0JBTCBTVFlMRVMgKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgaHRtbCB7XG4gICAgZm9udC1zaXplOiAxLjIxdnc7IH0gfVxuXG4qOm5vdCguZmxvLXBvc3QpIGEsICo6bm90KC5mbG8tcG9zdF9fc3R5bGVzKSBhIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC40cywgb3BhY2l0eSAwLjRzLCBmaWx0ZXIgMC40cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7IH1cblxuKjpub3QoLmZsby1wb3N0KSAuaG92ZXItYmxvY2ssICo6bm90KC5mbG8tcG9zdF9fc3R5bGVzKSAuaG92ZXItYmxvY2sge1xuICBkaXNwbGF5OiBibG9jazsgfVxuICAqOm5vdCguZmxvLXBvc3QpIC5ob3Zlci1ibG9jayBmaWd1cmUsICo6bm90KC5mbG8tcG9zdF9fc3R5bGVzKSAuaG92ZXItYmxvY2sgZmlndXJlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cywgZmlsdGVyIDAuNHM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7IH1cbiAgICAqOm5vdCguZmxvLXBvc3QpIC5ob3Zlci1ibG9jayBmaWd1cmU6aG92ZXIsICo6bm90KC5mbG8tcG9zdF9fc3R5bGVzKSAuaG92ZXItYmxvY2sgZmlndXJlOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDAuNjsgfVxuICAqOm5vdCguZmxvLXBvc3QpIC5ob3Zlci1ibG9jazpob3ZlciwgKjpub3QoLmZsby1wb3N0X19zdHlsZXMpIC5ob3Zlci1ibG9jazpob3ZlciB7XG4gICAgY29sb3I6IGluaGVyaXQ7IH1cblxuKjpub3QoLmZsby1wb3N0KSB1bCwgKjpub3QoLmZsby1wb3N0X19zdHlsZXMpIHVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi50ZXh0LXVuZGVybGluZTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzM4MzgzODtcbiAgb3BhY2l0eTogMDtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLnRleHQtdW5kZXJsaW5lOmhvdmVyOmFmdGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzLCBmaWx0ZXIgMC40cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7IH1cblxuYm9keSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgY29sb3I6ICMzODM4Mzg7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBtYXJnaW46IDA7IH1cblxuW2NsYXNzXj1cImZsby1pY29uLVwiXTpiZWZvcmUsXG5bY2xhc3MqPVwiIGZsby1pY29uLVwiXTpiZWZvcmUge1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbmltZyB7XG4gIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlcztcbiAgaW1hZ2UtcmVuZGVyaW5nOiAtby1jcmlzcC1lZGdlcztcbiAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xuICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBuZWFyZXN0LW5laWdoYm9yO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTk5KTsgfVxuXG5idXR0b24ge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbmEge1xuICBjb2xvcjogaW5oZXJpdDsgfVxuICBhOmhvdmVyIHtcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7IH1cblxuLnJvdyB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgd2lkdGg6IGluaXRpYWw7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAucm93LWZsZXgge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9IH1cblxuLmNvbHVtbiwgLmNvbHVtbnMge1xuICBwYWRkaW5nOiAwO1xuICBmbG9hdDogbm9uZTsgfVxuXG4uZmxvLWJ0biB7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogMDtcbiAgb3V0bGluZTogMDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogaW5oZXJpdDsgfVxuXG4uZmxvLWJ0bi0tbGluayB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC1mYW1pbHk6IFwiQW1wbGl0dWRlQ29uZC1SZWd1bGFyXCI7XG4gIGxldHRlci1zcGFjaW5nOiAuMzc1ZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdHJhbnNpdGlvbjogY29sb3IgMC40cywgZmlsdGVyIDAuNHM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40NDUsIDAuMDUsIDAuNTUsIDAuOTUpOyB9XG4gIC5mbG8tYnRuLS1saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogI2U1ZTVlNTsgfVxuXG4udGl0bGUtbGluZS11cDpiZWZvcmUge1xuICBjb250ZW50OiAn4pSAJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtOyB9XG5cbi50aXRsZS1saW5lLWJvdHRvbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ib3R0b206IDMuMTI1cmVtOyB9XG4gIC50aXRsZS1saW5lLWJvdHRvbTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxLjYyNXJlbTtcbiAgICB3aWR0aDogMnB4O1xuICAgIGJhY2tncm91bmQ6ICMzODM4Mzg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwOyB9XG4gIC50aXRsZS1saW5lLWJvdHRvbS0tY2VudGVyOmFmdGVyIHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gICAgLnRpdGxlLWxpbmUtYm90dG9tIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgLnRpdGxlLWxpbmUtYm90dG9tOmFmdGVyIHtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTsgfSB9XG5cbi5zbGljay1pbml0aWFsaXplZCAuc2xpY2stc2xpZGUge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbmlucHV0W3R5cGVdOm5vdChbdHlwZT1cInN1Ym1pdFwiXSksXG50ZXh0YXJlYSB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBmb250LXNpemU6IDAuNXJlbTtcbiAgZm9udC1mYW1pbHk6IFwiQWRvYmUgQ2FzbG9uIFByb1wiO1xuICBsZXR0ZXItc3BhY2luZzogMC43NWVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBib3gtc2hhZG93OiBub25lO1xuICBwYWRkaW5nOiAwO1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1pbWFnZSAwLjRzLCBib3JkZXItY29sb3IgMC40cywgbGluZS1oZWlnaHQgMC40cywgbGV0dGVyLXNwYWNpbmcgMC40cywgY29sb3IgMC40cywgcGFkZGluZyAwLjRzLCBmaWx0ZXIgMC40cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7IH1cbiAgaW5wdXRbdHlwZV06bm90KFt0eXBlPVwic3VibWl0XCJdKTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcbiAgdGV4dGFyZWE6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjMzgzODM4O1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgaW5wdXRbdHlwZV06bm90KFt0eXBlPVwic3VibWl0XCJdKTo6LW1vei1wbGFjZWhvbGRlcixcbiAgdGV4dGFyZWE6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjMzgzODM4O1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgaW5wdXRbdHlwZV06bm90KFt0eXBlPVwic3VibWl0XCJdKTotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXG4gIHRleHRhcmVhOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICMzODM4Mzg7XG4gICAgb3BhY2l0eTogMTsgfVxuICBpbnB1dFt0eXBlXTpub3QoW3R5cGU9XCJzdWJtaXRcIl0pOi1tb3otcGxhY2Vob2xkZXIsXG4gIHRleHRhcmVhOi1tb3otcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjMzgzODM4O1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgaW5wdXRbdHlwZV06bm90KFt0eXBlPVwic3VibWl0XCJdKTpob3ZlciwgaW5wdXRbdHlwZV06bm90KFt0eXBlPVwic3VibWl0XCJdKTpmb2N1cyxcbiAgdGV4dGFyZWE6aG92ZXIsXG4gIHRleHRhcmVhOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIGJvcmRlci1jb2xvcjogI2U2ZTZlNjtcbiAgICBwYWRkaW5nOiAxLjA2MjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuOGVtOyB9XG5cbmlucHV0W3R5cGVdOm5vdChbdHlwZT1cInN1Ym1pdFwiXSkge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBoZWlnaHQ6IDMuMTI1cmVtO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjZTVlNWU1OyB9XG4gIGlucHV0W3R5cGVdOm5vdChbdHlwZT1cInN1Ym1pdFwiXSk6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxuICBpbnB1dFt0eXBlXTpub3QoW3R5cGU9XCJzdWJtaXRcIl0pOmhvdmVyLCBpbnB1dFt0eXBlXTpub3QoW3R5cGU9XCJzdWJtaXRcIl0pOmZvY3VzIHtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4xZW07IH1cblxuaW5wdXRbdHlwZV06bm90KFt0eXBlPVwic3VibWl0XCJdKTpob3ZlciwgaW5wdXRbdHlwZV06bm90KFt0eXBlPVwic3VibWl0XCJdKTpmb2N1cyxcbnRleHRhcmVhOmhvdmVyLFxudGV4dGFyZWE6Zm9jdXMge1xuICBib3gtc2hhZG93OiBub25lO1xuICBvdXRsaW5lOiBub25lOyB9XG5cbmlucHV0W3R5cGU9J3N1Ym1pdCddIHtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiAwO1xuICBvdXRsaW5lOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3gtc2hhZG93OiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtZmFtaWx5OiBcIkFtcGxpdHVkZUNvbmQtUmVndWxhclwiO1xuICBsZXR0ZXItc3BhY2luZzogLjM3NWVtO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuNHMsIGZpbHRlciAwLjRzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1LCAwLjU1LCAwLjk1KTsgfVxuICBpbnB1dFt0eXBlPSdzdWJtaXQnXTpob3ZlciB7XG4gICAgY29sb3I6ICNlNWU1ZTU7IH1cblxudGV4dGFyZWEge1xuICByZXNpemU6IG5vbmU7XG4gIGhlaWdodDogMTYuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiBjYWxjKDEuMmVtICsgMi4xMjVyZW0pO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDApLCBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50IGNhbGMoMWVtICsgMi4xMjVyZW0pLCAjZTVlNWU1IGNhbGMoMWVtICsgMi4xMjVyZW0pLCAjZTVlNWU1LCB0cmFuc3BhcmVudCBjYWxjKDFlbSArIDIuMTI1cmVtICsgMC4wODc1cmVtKSk7IH1cblxuLyogRU5EOiBHTE9CQUwgU1RZTEVTICovXG4vKiBTVEFSVDogQVBQRUFSIEFOSU1BVElPTiAqL1xuYm9keTpub3QoLmZsby1hcHBlYXItZGlzYWJsZWQpIC5sYXlvdXQtc2VjdGlvbnMtLXNjcm9sbC1ub3JtYWwgLmZsby1zZWN0aW9uLFxuYm9keTpub3QoLmZsby1hcHBlYXItZGlzYWJsZWQpIC5mbG9fcGFnZSA+IC5mbG8tc2VjdGlvbjpub3QoOmZpcnN0LW9mLXR5cGUpOm5vdCguZGlzYWJsZS1hcHBlYXIpLFxuYm9keTpub3QoLmZsby1hcHBlYXItZGlzYWJsZWQpIC5mbG8tcG9zdCA+ICosXG5ib2R5Om5vdCguZmxvLWFwcGVhci1kaXNhYmxlZCkgLmZsby1mb290ZXIsXG5ib2R5Om5vdCguZmxvLWFwcGVhci1kaXNhYmxlZCkgLnRvLWFwcGVhcixcbmJvZHk6bm90KC5mbG8tYXBwZWFyLWRpc2FibGVkKSAud2lkZ2V0Om5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDVyZW0pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1LCAwLjU1LCAwLjk1KTsgfVxuICBib2R5Om5vdCguZmxvLWFwcGVhci1kaXNhYmxlZCkgLmxheW91dC1zZWN0aW9ucy0tc2Nyb2xsLW5vcm1hbCAuZmxvLXNlY3Rpb246bnRoLWNoaWxkKDFuKSxcbiAgYm9keTpub3QoLmZsby1hcHBlYXItZGlzYWJsZWQpIC5mbG9fcGFnZSA+IC5mbG8tc2VjdGlvbjpub3QoOmZpcnN0LW9mLXR5cGUpOm5vdCguZGlzYWJsZS1hcHBlYXIpOm50aC1jaGlsZCgxbiksXG4gIGJvZHk6bm90KC5mbG8tYXBwZWFyLWRpc2FibGVkKSAuZmxvLXBvc3QgPiAqOm50aC1jaGlsZCgxbiksXG4gIGJvZHk6bm90KC5mbG8tYXBwZWFyLWRpc2FibGVkKSAuZmxvLWZvb3RlcjpudGgtY2hpbGQoMW4pLFxuICBib2R5Om5vdCguZmxvLWFwcGVhci1kaXNhYmxlZCkgLnRvLWFwcGVhcjpudGgtY2hpbGQoMW4pLFxuICBib2R5Om5vdCguZmxvLWFwcGVhci1kaXNhYmxlZCkgLndpZGdldDpub3QoOmZpcnN0LWNoaWxkKTpudGgtY2hpbGQoMW4pIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMsIHRyYW5zZm9ybSAwLjRzLCBjb2xvciAwLjRzOyB9XG4gIGJvZHk6bm90KC5mbG8tYXBwZWFyLWRpc2FibGVkKSAubGF5b3V0LXNlY3Rpb25zLS1zY3JvbGwtbm9ybWFsIC5mbG8tc2VjdGlvbjpudGgtY2hpbGQoMm4pLFxuICBib2R5Om5vdCguZmxvLWFwcGVhci1kaXNhYmxlZCkgLmZsb19wYWdlID4gLmZsby1zZWN0aW9uOm5vdCg6Zmlyc3Qtb2YtdHlwZSk6bm90KC5kaXNhYmxlLWFwcGVhcik6bnRoLWNoaWxkKDJuKSxcbiAgYm9keTpub3QoLmZsby1hcHBlYXItZGlzYWJsZWQpIC5mbG8tcG9zdCA+ICo6bnRoLWNoaWxkKDJuKSxcbiAgYm9keTpub3QoLmZsby1hcHBlYXItZGlzYWJsZWQpIC5mbG8tZm9vdGVyOm50aC1jaGlsZCgybiksXG4gIGJvZHk6bm90KC5mbG8tYXBwZWFyLWRpc2FibGVkKSAudG8tYXBwZWFyOm50aC1jaGlsZCgybiksXG4gIGJvZHk6bm90KC5mbG8tYXBwZWFyLWRpc2FibGVkKSAud2lkZ2V0Om5vdCg6Zmlyc3QtY2hpbGQpOm50aC1jaGlsZCgybikge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyAwLjFzLCB0cmFuc2Zvcm0gMC40cyAwLjFzLCBjb2xvciAwLjRzOyB9XG4gIGJvZHk6bm90KC5mbG8tYXBwZWFyLWRpc2FibGVkKSAubGF5b3V0LXNlY3Rpb25zLS1zY3JvbGwtbm9ybWFsIC5mbG8tc2VjdGlvbi52aXNpYmxlLFxuICBib2R5Om5vdCguZmxvLWFwcGVhci1kaXNhYmxlZCkgLmZsb19wYWdlID4gLmZsby1zZWN0aW9uOm5vdCg6Zmlyc3Qtb2YtdHlwZSk6bm90KC5kaXNhYmxlLWFwcGVhcikudmlzaWJsZSxcbiAgYm9keTpub3QoLmZsby1hcHBlYXItZGlzYWJsZWQpIC5mbG8tcG9zdCA+ICoudmlzaWJsZSxcbiAgYm9keTpub3QoLmZsby1hcHBlYXItZGlzYWJsZWQpIC5mbG8tZm9vdGVyLnZpc2libGUsXG4gIGJvZHk6bm90KC5mbG8tYXBwZWFyLWRpc2FibGVkKSAudG8tYXBwZWFyLnZpc2libGUsXG4gIGJvZHk6bm90KC5mbG8tYXBwZWFyLWRpc2FibGVkKSAud2lkZ2V0Om5vdCg6Zmlyc3QtY2hpbGQpLnZpc2libGUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cbi8qIEVORDogQVBQRUFSIEFOSU1BVElPTiAqL1xuLyogU1RBUlQ6IFotSU5ERVggTUFQICovXG4uZmxvLXBhZ2UtaGFzLXNpZGViYXJfX3NpZGViYXIge1xuICB6LWluZGV4OiA5OyB9XG5cbi5mbG8tc2xpZGVyLWFycm93IHtcbiAgei1pbmRleDogOTsgfVxuXG4uZmxvLXBhZ2UtaGVyb19fbG9nbyB7XG4gIHotaW5kZXg6IDExOyB9XG5cbi8qIEVORDogWi1JTkRFWCBNQVAgKi9cbi8qIFNUQVJUOiBIVE1MIE9WRVJGTE9XIEZPUiBTQUZBUkkgRklYICovXG5odG1sIHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBvdmVyZmxvdy14OiBoaWRkZW47IH1cblxuYm9keSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBvdmVyZmxvdy15OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi8qIEVORDogSFRNTCBPVkVSRkxPVyBGT1IgU0FGQVJJIEZJWCAqL1xuLyogU1RBUlQ6IEZJWCBST1dTIElOIFNBRkFSSSAqL1xuLnJvdzpiZWZvcmUge1xuICB3aWR0aDogMDsgfVxuXG4vKiBFTkQ6IEZJWCBST1dTIElOIFNBRkFSSSAqL1xuLyogRU5EOiBHTE9CQUwgKi9cbi8qIFNUQVJUOiBDT01QT05FTlRTIChLRUVQIFRISVMgT05FIEFUIFRIRSBCT1RUT00gQUxMIFRIRSBUSU1FKSAqL1xuLmZsby1ibG9jay10aXRsZS13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICBwYWRkaW5nOiAxLjAzMTI1cmVtIDA7IH1cblxuLmZsby1kcm9wZG93bi1tZW51IC5mbG8taWNvbiB7XG4gIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDIuMzc1cmVtOyB9XG4gIC5mbG8tZHJvcGRvd24tbWVudSAuZmxvLWljb246YmVmb3JlLCAuZmxvLWRyb3Bkb3duLW1lbnUgLmZsby1pY29uOmFmdGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwLjRzLCBvcGFjaXR5IDAuNHMsIGZvbnQtc2l6ZSAwLjRzLCBmaWx0ZXIgMC40cztcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1LCAwLjU1LCAwLjk1KTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7IH1cbiAgLmZsby1kcm9wZG93bi1tZW51IC5mbG8taWNvbjphZnRlciB7XG4gICAgY29udGVudDogJ1xcZTgwNSc7XG4gICAgZm9udC1mYW1pbHk6ICdmbG8taWNvbnMnO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBvcGFjaXR5OiAwOyB9XG5cbi5mbG8tZHJvcGRvd24tbWVudSAuaG92ZXIgLmZsby1pY29uIHtcbiAgY29sb3I6ICM1YTVhNWE7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07IH1cbiAgLmZsby1kcm9wZG93bi1tZW51IC5ob3ZlciAuZmxvLWljb246YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAuZmxvLWRyb3Bkb3duLW1lbnUgLmhvdmVyIC5mbG8taWNvbjphZnRlciB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBvcGFjaXR5OiAxOyB9XG5cbi5mbG8tZHJvcGRvd24tbWVudV9fYnRuIHtcbiAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gIGZvbnQtZmFtaWx5OiBcIkFtcGxpdHVkZUNvbmQtUmVndWxhclwiO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4yMTg1ZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGhlaWdodDogMTAwJTsgfVxuXG4uZmxvLWRyb3Bkb3duLW1lbnVfX3BhbmUge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGJvcmRlcjogMDtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMC40cywgb3BhY2l0eSAwLjRzLCByaWdodCAwLjRzLCBmaWx0ZXIgMC40cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7XG4gIGxlZnQ6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgcmlnaHQ6IC0xMDAlOyB9XG4gIC5mbG8tZHJvcGRvd24tbWVudV9fcGFuZS5pcy1vcGVuIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHJpZ2h0OiAwOyB9XG5cbi5mbG8tZHJvcGRvd24tbWVudV9fbGluayB7XG4gIGZvbnQtZmFtaWx5OiBcIkJ1dGxlclwiO1xuICBmb250LXNpemU6IDIuODEyNXJlbTtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5mbG8tZHJvcGRvd24tbWVudV9fcGFuZSB7XG4gICAgcGFkZGluZzogOS41cmVtIDIuNXJlbTtcbiAgICBtaW4taGVpZ2h0OiAyNi4yNXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAuZmxvLWRyb3Bkb3duLW1lbnVfX3BhbmUge1xuICAgIHBhZGRpbmc6IDVyZW0gMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuXG4uZmxvLWZvcm0tMV9fZmllbGQge1xuICBtYXJnaW4tYm90dG9tOiAwLjU5Mzc1cmVtOyB9XG4gIC5mbG8tZm9ybS0xX19maWVsZDpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmZsby1mb3JtLTFfX3RleHRhcmVhIHtcbiAgcGFkZGluZy10b3A6IDAuOTM3NXJlbTsgfVxuXG4uZmxvLWZvcm0tMSBpbnB1dFt0eXBlXSxcbi5mbG8tZm9ybS0xIHRleHRhcmVhLFxuLmZsby1mb3JtLTEgLnBhcnNsZXktZXJyb3JzLWxpc3QgbGkge1xuICBmb250LWZhbWlseTogXCJBbXBsaXR1ZGVDb25kLVJlZ3VsYXJcIjtcbiAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gIGxldHRlci1zcGFjaW5nOiAwLjE4NzVlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDA7IH1cblxuLmZsby1mb3JtLTEgLnBhcnNsZXktZXJyb3JzLWxpc3Qge1xuICBtYXJnaW4tdG9wOiAwLjYyNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjRzLCBmaWx0ZXIgMC40cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7XG4gIGFuaW1hdGlvbjogMC40cyBwYXJzbGV5LWVycm9ycy1saXN0X19hcHBlYXI7IH1cblxuQGtleWZyYW1lcyBwYXJzbGV5LWVycm9ycy1saXN0X19hcHBlYXIge1xuICAwJSB7XG4gICAgbWF4LWhlaWdodDogMDsgfVxuICAxMDAlIHtcbiAgICBtYXgtaGVpZ2h0OiA2LjI1cmVtOyB9IH1cblxuLmZsby1mb3JtLTEgLnBhcnNsZXktcmVxdWlyZWQge1xuICBjb2xvcjogcmVkOyB9XG5cbi5mbG8tZm9ybS0xIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAyLjE4NzVyZW0gYXV0byAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uZmxvLWZvcm0gaW5wdXRbdHlwZV0ge1xuICBtYXJnaW46IDA7IH1cblxuLmZsby1mb3JtX19maWVsZCB7XG4gIG1hcmdpbi1ib3R0b206IDEuNDY4NzVyZW07IH1cbiAgLmZsby1mb3JtX19maWVsZDpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmZsby1mb3JtIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICBtYXJnaW4tdG9wOiAyLjVyZW07IH1cblxuLmZsby1tb2RhbCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogOTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICBkaXNwbGF5OiBub25lOyB9XG4gIC5mbG8tbW9kYWwgLnRoeC1tc2cge1xuICAgIHdpZHRoOiAzMDBweDtcbiAgICBoZWlnaHQ6IDIwMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTE4MHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0xNzBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLmNvbnRhY3QtcmVzcG9uc2UgcCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuNzgxMjVyZW07XG4gIGJvcmRlcjogMnB4IGRhc2hlZCAjZTVlNWU1O1xuICBwYWRkaW5nOiAwLjkzNzVyZW07XG4gIG1hcmdpbi10b3A6IDAuOTM3NXJlbTtcbiAgY29sb3I6ICMzODM4Mzg7IH1cblxuKltkYXRhLWxxaXAtc3JjXSB7XG4gIHRyYW5zaXRpb246IGZpbHRlciAwLjRzLCBiYWNrZ3JvdW5kLWltYWdlIDAuNHMsIGZpbHRlciAwLjRzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1LCAwLjU1LCAwLjk1KTsgfVxuICAqW2RhdGEtbHFpcC1zcmNdOm5vdCguZmxvLWxxaXAtLW9yaWdpbmFsLWxvYWRlZCkge1xuICAgIGZpbHRlcjogYmx1cig0MHB4KTsgfVxuXG4uZmxvLXBhZ2UtaGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA1cmVtKTtcbiAgbWFyZ2luOiAwIGF1dG87IH1cbiAgLmZsby1wYWdlLWhlYWQtLXdpdGgtYm9yZGVyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDsgfVxuICAuZmxvLXBhZ2UtaGVhZF9fZHJvcGRvd24ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgIC5mbG8tcGFnZS1oZWFkX19kcm9wZG93biAuZmxvLWRyb3Bkb3duLW1lbnUge1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5mbG8tcGFnZS1oZWFkLS1oYXMtZHJvcGRvd24tbWVudSAuZmxvLXBhZ2UtaGVhZF9fZHJvcGRvd24ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgLmZsby1wYWdlLWhlYWRfX2RlY29yYXRpb24taW1hZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXgtd2lkdGg6IDUuNTVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTsgfVxuICAuZmxvLXBhZ2UtaGVhZF9fdGl0bGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgIGZvbnQtZmFtaWx5OiBcIkJ1dGxlclwiO1xuICAgIGxldHRlci1zcGFjaW5nOiAxZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmZsby1wYWdlLWhlYWRfX3RpdGxlLWRlY29yYXRpdmUtaW1hZ2UgaW1nIHtcbiAgICBtYXgtaGVpZ2h0OiA1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNjI1cmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZmxvLXBhZ2UtaGVhZF9fdGl0bGUge1xuICAgICAgd2lkdGg6IDYwJTtcbiAgICAgIHBhZGRpbmc6IDIuNjg3NXJlbSAwOyB9XG4gICAgLmZsby1wYWdlLWhlYWRfX2xlZnQtc2lkZSB7XG4gICAgICB3aWR0aDogMjAlOyB9XG4gICAgLmZsby1wYWdlLWhlYWRfX2Ryb3Bkb3duIHtcbiAgICAgIHdpZHRoOiAyMCU7IH1cbiAgICAuZmxvLXBhZ2UtaGVhZCAuZmxvLWRyb3Bkb3duLW1lbnVfX2J0biB7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bzsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAgIC5mbG8tcGFnZS1oZWFkIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMuNzVyZW0pO1xuICAgICAgcGFkZGluZy10b3A6IDIuNjg3NXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTsgfVxuICAgICAgLmZsby1wYWdlLWhlYWQgLmZsby1kcm9wZG93bi1tZW51X19idG4ge1xuICAgICAgICBwYWRkaW5nOiAxLjQzNzVyZW0gMCAyLjY4NzVyZW07IH0gfVxuXG4ucG9zdC1wYXNzd29yZC1mb3JtIHtcbiAgbWF4LXdpZHRoOiA3MDBweDtcbiAgbWFyZ2luOiAwIGF1dG87IH1cbiAgLnBvc3QtcGFzc3dvcmQtZm9ybSBsYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAgIC5wb3N0LXBhc3N3b3JkLWZvcm0gbGFiZWwgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMxODE4MTg7IH1cbiAgLnBvc3QtcGFzc3dvcmQtZm9ybSBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAucG9zdC1wYXNzd29yZC1mb3JtIHAge1xuICAgIGZvbnQtc2l6ZTogMC44cmVtICFpbXBvcnRhbnQ7IH1cblxuLmZsby1zaGFyZS13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gIGZvbnQtZmFtaWx5OiBcIkFtcGxpdHVkZUNvbmQtUmVndWxhclwiO1xuICBsZXR0ZXItc3BhY2luZzogMC4yMTg1ZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5mbG8tc2hhcmUtd3JhcF9fbGluayB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNzE4NzVyZW07IH1cbiAgICAgIC5mbG8tc2hhcmUtd3JhcF9fbGluazphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcvJztcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjk2ODc1cmVtOyB9XG4gICAgICAuZmxvLXNoYXJlLXdyYXBfX2xpbms6bGFzdC1vZi10eXBlOmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAgIC5mbG8tc2hhcmUtd3JhcF9fbGluayB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtOyB9XG4gICAgICAuZmxvLXNoYXJlLXdyYXBfX2xpbms6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjYyNXJlbTsgfSB9XG5cbi5zbGljay1zbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnNsaWNrLXNsaWRlciAuZmxvLXNsaWRlci1hcnJvdyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICAgIGZvbnQtc2l6ZTogMy4xMjVyZW07XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgLnNsaWNrLXNsaWRlciAuZmxvLXNsaWRlci1hcnJvdzpob3ZlciB7XG4gICAgICBjb2xvcjogI2RkZDtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuNHMsIGZpbHRlciAwLjRzO1xuICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7IH1cbiAgLnNsaWNrLXNsaWRlciAuZmxvLWljb25fX2Fycm93LWxlZnQge1xuICAgIGxlZnQ6IDIuNXJlbTsgfVxuICAuc2xpY2stc2xpZGVyIC5mbG8taWNvbl9fYXJyb3ctcmlnaHQge1xuICAgIHJpZ2h0OiAyLjVyZW07IH1cblxuLmZsby1wb3J0Zm9saW8tdGl0bGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsZXg6IDE7IH1cbiAgLmZsby1wb3J0Zm9saW8tdGl0bGVfX2RlY29yYXRpb24ge1xuICAgIG1heC13aWR0aDogNXJlbTtcbiAgICBtYXJnaW46IDAgYXV0byAxLjM3NXJlbTsgfVxuICAuZmxvLXBvcnRmb2xpby10aXRsZV9fdGV4dCB7XG4gICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgZm9udC1mYW1pbHk6IFwiQnV0bGVyXCI7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG1hcmdpbi1yaWdodDogLTFlbTsgfVxuXG4uc2VhcmNoLWZvcm0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5zZWFyY2gtZm9ybSBpbnB1dFt0eXBlXSB7XG4gICAgbWluLXdpZHRoOiAxMy43NXJlbTtcbiAgICBoZWlnaHQ6IDEuNzVyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMzI1ZW07XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgIC5zZWFyY2gtZm9ybSBpbnB1dFt0eXBlXTpob3ZlciwgLnNlYXJjaC1mb3JtIGlucHV0W3R5cGVdOmZvY3VzIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgICAuc2VhcmNoLWZvcm0gaW5wdXRbdHlwZV06Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgIC5zZWFyY2gtZm9ybSBpbnB1dFt0eXBlXTo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLnNlYXJjaC1mb3JtIGlucHV0W3R5cGVdOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLnNlYXJjaC1mb3JtIGlucHV0W3R5cGVdOi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAuc2VhcmNoLWZvcm1fX2J0biB7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjRzLCBmaWx0ZXIgMC40cztcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1LCAwLjU1LCAwLjk1KTsgfVxuICAgIC5zZWFyY2gtZm9ybV9fYnRuOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZTVlNWU1OyB9XG5cbi5zb2NpYWwtbGlua3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5zb2NpYWwtbGlua3NfX2xhYmVsIHtcbiAgICBmb250LWZhbWlseTogXCJCdXRsZXJcIjtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07IH1cbiAgLnNvY2lhbC1saW5rc19fbGluayB7XG4gICAgd2lkdGg6IDEuODc1cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tbGVmdDogMC4zMTI1cmVtOyB9XG4gICAgLnNvY2lhbC1saW5rc19fbGluazpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuXG4uY29tbWVudHMtYmxvY2sge1xuICAvKiBTVEFSVDogQ09NTUVOVCAqL1xuICAvKiBFTkQ6IENPTU1FTlQgKi9cbiAgLyogU1RBUlQ6IFJFUExZIENPTU1FTlQgKi9cbiAgLyogRU5EOiBSRVBMWSBDT01NRU5UICovIH1cbiAgLmNvbW1lbnRzLWJsb2NrX19wb3N0IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMi40MDYyNXJlbSAwIDIuNzVyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7IH1cbiAgLmNvbW1lbnRzLWJsb2NrIC5jb21tZW50IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmNvbW1lbnRzLWJsb2NrIC5jb21tZW50LWJvZHkge1xuICAgIG1hcmdpbi1ib3R0b206IDIuNTYyNXJlbTsgfVxuICAuY29tbWVudHMtYmxvY2sgLmNvbW1lbnQtYXZhdGFyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMi44MTI1cmVtO1xuICAgIGhlaWdodDogMi44MTI1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDIuODEyNXJlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5jb21tZW50cy1ibG9jayAjY2FuY2VsLWNvbW1lbnQtcmVwbHktbGluayB7XG4gICAgZm9udC1zaXplOiAwOyB9XG4gICAgLmNvbW1lbnRzLWJsb2NrICNjYW5jZWwtY29tbWVudC1yZXBseS1saW5rOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlxcZTgwNVwiO1xuICAgICAgZm9udC1mYW1pbHk6IFwiZmxvLWljb25zXCI7XG4gICAgICBmb250LXNpemU6IDEuMzc1cmVtO1xuICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC40cywgZmlsdGVyIDAuNHM7XG4gICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1LCAwLjU1LCAwLjk1KTsgfVxuICAgIC5jb21tZW50cy1ibG9jayAjY2FuY2VsLWNvbW1lbnQtcmVwbHktbGluazpob3ZlcjpiZWZvcmUge1xuICAgICAgY29sb3I6ICNlNWU1ZTU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jb21tZW50cy1ibG9jayB7XG4gICAgICAvKiBTVEFSVDogQ09NTUVOVCAqL1xuICAgICAgLyogRU5EOiBDT01NRU5UICovXG4gICAgICAvKiBTVEFSVDogUkVQTFkgQ09NTUVOVCAqL1xuICAgICAgLyogRU5EOiBSRVBMWSBDT01NRU5UICovIH1cbiAgICAgIC5jb21tZW50cy1ibG9jayAuY29tbWVudC1oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuMzc1cmVtOyB9XG4gICAgICAuY29tbWVudHMtYmxvY2sgLmNvbW1lbnQtYXZhdGFyIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxLjUzMTI1cmVtOyB9XG4gICAgICAuY29tbWVudHMtYmxvY2sgLmNvbW1lbnQtbmFtZS1hbmQtZGF0ZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAgIC5jb21tZW50cy1ibG9jayAuY29tbWVudC1hdXRob3Ige1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjM3NXJlbTsgfVxuICAgICAgLmNvbW1lbnRzLWJsb2NrIC5yZXBseSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDsgfVxuICAgICAgLmNvbW1lbnRzLWJsb2NrIC5jb21tZW50LWNvbnRlbnQge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjQ2ODc1cmVtOyB9XG4gICAgICAuY29tbWVudHMtYmxvY2sgLmNvbW1lbnQgLmNvbW1lbnQgLmNvbW1lbnQtaGVhZGVyIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyLjU5Mzc1cmVtOyB9XG4gICAgICAgIC5jb21tZW50cy1ibG9jayAuY29tbWVudCAuY29tbWVudCAuY29tbWVudC1oZWFkZXI6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgaGVpZ2h0OiAxLjYyNXJlbTtcbiAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOyB9XG4gICAgICAuY29tbWVudHMtYmxvY2sgLmNvbW1lbnQgLmNvbW1lbnQgLmNvbW1lbnQtY29udGVudCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMi41OTM3NXJlbTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAgIC5jb21tZW50cy1ibG9jayB7XG4gICAgICAvKiBTVEFSVDogQ09NTUVOVCAqL1xuICAgICAgLyogRU5EOiBDT01NRU5UICovXG4gICAgICAvKiBTVEFSVDogUkVQTFkgQ09NTUVOVCAqL1xuICAgICAgLyogRU5EOiBSRVBMWSBDT01NRU5UICovIH1cbiAgICAgIC5jb21tZW50cy1ibG9jayAuY29tbWVudC1oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgICAgLmNvbW1lbnRzLWJsb2NrIC5jb21tZW50LWF2YXRhciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuOTM3NXJlbTsgfVxuICAgICAgLmNvbW1lbnRzLWJsb2NrIC5jb21tZW50LWF1dGhvciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNjI1cmVtOyB9XG4gICAgICAuY29tbWVudHMtYmxvY2sgLmNvbW1lbnQtbWV0YSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNTYyNXJlbTsgfVxuICAgICAgLmNvbW1lbnRzLWJsb2NrIC5yZXBseSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07IH1cbiAgICAgIC5jb21tZW50cy1ibG9jayAuY29tbWVudCAuY29tbWVudCAuY29tbWVudC1ib2R5IHtcbiAgICAgICAgcGFkZGluZzogMCAzLjEyNXJlbTsgfSB9XG5cbi5mbG8tY29udGFjdC1ibG9jay0xIHtcbiAgcGFkZGluZy10b3A6IDVyZW07XG4gIHBhZGRpbmctYm90dG9tOiA4Ljc1cmVtOyB9XG4gIC5mbG8tY29udGFjdC1ibG9jay0xLS1oYXMtbm8tZGVjb3JhdGlvbiAuZmxvLWNvbnRhY3QtYmxvY2stMV9fY29udGVudCB7XG4gICAgcGFkZGluZy10b3A6IDA7IH1cbiAgLmZsby1jb250YWN0LWJsb2NrLTFfX2NvbnRlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXRvcDogOS4zNzVyZW07IH1cbiAgLmZsby1jb250YWN0LWJsb2NrLTFfX2RlY29yYXRpb24ge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHotaW5kZXg6IC0xOyB9XG4gIC5mbG8tY29udGFjdC1ibG9jay0xX190aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5mbG8tY29udGFjdC1ibG9jay0xX190ZXh0IHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIGZvbnQtZmFtaWx5OiBcIkFkb2JlIENhc2xvbiBQcm9cIjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogMS44NzVyZW07IH1cbiAgICAuZmxvLWNvbnRhY3QtYmxvY2stMV9fdGV4dDpiZWZvcmUge1xuICAgICAgY29udGVudDogJ3wnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtOyB9XG4gIC5mbG8tY29udGFjdC1ibG9jay0xX19mb3JtIHtcbiAgICBtYXJnaW4tdG9wOiA2LjU2MjVyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5mbG8tY29udGFjdC1ibG9jay0xIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDIuNXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMi41cmVtOyB9XG4gICAgICAuZmxvLWNvbnRhY3QtYmxvY2stMV9fY29udGVudCB7XG4gICAgICAgIG1heC13aWR0aDogNDAlO1xuICAgICAgICBtYXJnaW46IDAgYXV0bzsgfVxuICAgICAgLmZsby1jb250YWN0LWJsb2NrLTFfX3RleHQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDMuNzVyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDMuNzVyZW07IH1cbiAgICAgIC5mbG8tY29udGFjdC1ibG9jay0xX19mb3JtIHtcbiAgICAgICAgcGFkZGluZzogMCAyLjEyNXJlbTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAgIC5mbG8tY29udGFjdC1ibG9jay0xIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEuODc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAxLjg3NXJlbTsgfVxuICAgICAgLmZsby1jb250YWN0LWJsb2NrLTFfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAyLjgxMjVyZW07IH0gfVxuXG4uZmxvLWNhcmQtMSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLmZsby1jYXJkLTFfX2RlY29yYXRpb24ge1xuICAgIG1heC13aWR0aDogNy44MTI1cmVtO1xuICAgIGhlaWdodDogMTByZW07XG4gICAgbWFyZ2luOiAwIGF1dG8gNC4zNzVyZW07XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuICAuZmxvLWNhcmQtMV9fdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICBmb250LWZhbWlseTogXCJBZG9iZSBDYXNsb24gUHJvXCI7IH1cbiAgLmZsby1jYXJkLTFfX2J0biB7XG4gICAgbWFyZ2luLXRvcDogMi42MjVyZW07IH1cblxuLmZsby1jYXJkLTIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmZsby1jYXJkLTJfX3RpdGxlIHtcbiAgICBmb250LWZhbWlseTogXCJCdXRsZXJcIjtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tdG9wOiAxLjc1cmVtOyB9XG4gICAgLmZsby1jYXJkLTJfX3RpdGxlOmFmdGVyIHtcbiAgICAgIGJvcmRlci13aWR0aDogM3B4OyB9XG4gICAgLmZsby1jYXJkLTJfX3RpdGxlIGE6aG92ZXIge1xuICAgICAgY29sb3I6IGluaGVyaXQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5mbG8tY2FyZC0yX19pbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDIxLjg3NXJlbTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuICAgICAgLmZsby1jYXJkLTJfX2ltZyBpbWcge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmZsby1jYXJkLTJfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMi44MTI1cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gICAgLmZsby1jYXJkLTJfX2ltZyB7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lOyB9IH1cblxuLmZsby1jYXJkLTNfX2ltZy13cmFwIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuZmxvLWNhcmQtM19faW1nLXdyYXAgaW1nIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG4uZmxvLWNhcmQtM19faW1nIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmZsby1jYXJkLTNfX3RleHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDIuNXJlbTsgfVxuXG4uZmxvLWNhcmQtM19faW1nLWRhdGUge1xuICBmb250LXNpemU6IDAuNjg3NXJlbTtcbiAgZm9udC1mYW1pbHk6IFwiQW1wbGl0dWRlQ29uZC1SZWd1bGFyXCI7XG4gIGxldHRlci1zcGFjaW5nOiAwLjM3NWVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi5mbG8tY2FyZC0zX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LWZhbWlseTogXCJCdXRsZXJcIjtcbiAgbWF4LXdpZHRoOiAxNC4xMjVyZW07XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmZsby1jYXJkLTNfX2ltZyB7XG4gICAgaGVpZ2h0OiAxNC42MjVyZW07XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH1cbiAgICAuZmxvLWNhcmQtM19faW1nIGltZyB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gIC5mbG8tY2FyZC0zX19pbWcge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgLmZsby1jYXJkLTNfX3RleHQge1xuICAgIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMy43NXJlbTsgfVxuICAgIC5mbG8tY2FyZC0zX190ZXh0IC50aXRsZS1saW5lLXVwOmJlZm9yZSB7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIG1hcmdpbi10b3A6IDEuMjVyZW07IH0gfVxuXG4uZmxvLWNhcmQtNF9faW1nIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmZsby1jYXJkLTRfX3RleHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDIuNXJlbTsgfVxuXG4uZmxvLWNhcmQtNF9faW1nLWRhdGUge1xuICBmb250LXNpemU6IDAuNjg3NXJlbTtcbiAgZm9udC1mYW1pbHk6IFwiQW1wbGl0dWRlQ29uZC1SZWd1bGFyXCI7XG4gIGxldHRlci1zcGFjaW5nOiAwLjM3NWVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi5mbG8tY2FyZC00X190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS44NzVyZW07XG4gIGZvbnQtZmFtaWx5OiBcIkJ1dGxlclwiO1xuICBtYXgtd2lkdGg6IDE4Ljc1cmVtO1xuICBtYXJnaW46IDAgYXV0bzsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5mbG8tY2FyZC00X19pbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMzEuMjVyZW07XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH1cbiAgICAuZmxvLWNhcmQtNF9faW1nIGltZyB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gIC5mbG8tY2FyZC00X19pbWcge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgIC5mbG8tY2FyZC00X19pbWcgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLmZsby1jYXJkLTUge1xuICB3aWR0aDogMTAwJTsgfVxuICAuZmxvLWNhcmQtNV9fY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAuZmxvLWNhcmQtNV9faW1nIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmZsby1jYXJkLTVfX3RleHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAuZmxvLWNhcmQtNV9faW1nLWRhdGUge1xuICAgIGZvbnQtc2l6ZTogMC42ODc1cmVtO1xuICAgIGZvbnQtZmFtaWx5OiBcIkFtcGxpdHVkZUNvbmQtUmVndWxhclwiO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjM3NWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLmZsby1jYXJkLTVfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuODc1cmVtO1xuICAgIGZvbnQtZmFtaWx5OiBcIkJ1dGxlclwiO1xuICAgIG1heC13aWR0aDogMTguNzVyZW07XG4gICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgLmZsby1jYXJkLTUtLWludmVydGVkIC5mbG8tY2FyZC01X190ZXh0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmZsby1jYXJkLTVfX3RpdHRsZSB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIG1heC13aWR0aDogMTYuMjVyZW07IH1cbiAgICAuZmxvLWNhcmQtNV9fdGV4dCB7XG4gICAgICBtYXJnaW4tbGVmdDogMy43NXJlbTsgfVxuICAgIC5mbG8tY2FyZC01X19pbWcge1xuICAgICAgd2lkdGg6IDI1cmVtOyB9XG4gICAgLmZsby1jYXJkLTUtLWltZy1tZWRpdW0gLmZsby1jYXJkLTVfX2ltZyB7XG4gICAgICB3aWR0aDogMjMuNDM3NXJlbTsgfVxuICAgIC5mbG8tY2FyZC01LS1pbWctYmlnIC5mbG8tY2FyZC01X19pbWcge1xuICAgICAgd2lkdGg6IDMxLjA2MjVyZW07IH1cbiAgICAuZmxvLWNhcmQtNS0tc21hbGwgLmZsby1jYXJkLTVfX2ltZyB7XG4gICAgICB3aWR0aDogMTAuMTI1cmVtOyB9XG4gICAgLmZsby1jYXJkLTUtLWludmVydGVkIC5mbG8tY2FyZC01X19jb250ZW50IHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAgIC5mbG8tY2FyZC01LS1pbnZlcnRlZCAuZmxvLWNhcmQtNV9fdGV4dCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIuMTg3NXJlbTsgfVxuICAgIC5mbG8tY2FyZC01X19pbWcge1xuICAgICAgbWFyZ2luOiAyLjY4NzVyZW0gMCAwIDA7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgICAuZmxvLWNhcmQtNV9fY29udGVudCB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgLmZsby1jYXJkLTVfX3RleHQge1xuICAgICAgbWFyZ2luLXRvcDogMC42MjVyZW07IH1cbiAgICAuZmxvLWNhcmQtNS0taW52ZXJ0ZWQgLmZsby1jYXJkLTVfX2l0ZW0ge1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IH0gfVxuXG4uZmxvLWNhcmQtc2lkZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxLjc1cmVtOyB9XG4gIC5mbG8tY2FyZC1zaWRlOmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi10b3A6IDEuMjVyZW07IH1cbiAgLmZsby1jYXJkLXNpZGVfX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAuZmxvLWNhcmQtc2lkZV9faW1nIHtcbiAgICB3aWR0aDogMTAuMTI1cmVtO1xuICAgIGhlaWdodDogNi43NXJlbTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuICAuZmxvLWNhcmQtc2lkZV9faW1nLS1oaWRlIGltZyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuZmxvLWNhcmQtc2lkZV9fdGl0dGxlIHtcbiAgICBtYXgtd2lkdGg6IDE0LjM3NXJlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmZsby1jYXJkLXNpZGUtLWludmVydGVkIC5mbG8tY2FyZC1zaWRlX19pdGVtIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAuZmxvLWNhcmQtc2lkZS0tc21hbGwgLmZsby1jYXJkLXNpZGVfX2ltZyB7XG4gICAgd2lkdGg6IDE2LjM3NXJlbTtcbiAgICBoZWlnaHQ6IDEwLjgwNzVyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5mbG8tY2FyZC1zaWRlX190aXR0bGUge1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBtYXgtd2lkdGg6IDE2LjI1cmVtOyB9XG4gICAgLmZsby1jYXJkLXNpZGVfX2NvbnRlbnQge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAgIC5mbG8tY2FyZC1zaWRlX19pdGVtLS1yaWdodCB7XG4gICAgICBtYXJnaW4tbGVmdDogMy43NXJlbTsgfVxuICAgIC5mbG8tY2FyZC1zaWRlLS1pbnZlcnRlZCB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbiAgICAgIC5mbG8tY2FyZC1zaWRlLS1pbnZlcnRlZCAuZmxvLWNhcmQtc2lkZV9fY29udGVudCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAgICAgLmZsby1jYXJkLXNpZGUtLWludmVydGVkIC5mbG8tY2FyZC1zaWRlX19pdGVtLS1yaWdodCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMi41cmVtOyB9XG4gICAgLmZsby1jYXJkLXNpZGVfX2ltZyB7XG4gICAgICB3aWR0aDogMjIuODEyNXJlbTtcbiAgICAgIGhlaWdodDogMTUuMDU2MjVyZW07XG4gICAgICBtYXJnaW46IDJyZW0gMCAwIDA7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgICAuZmxvLWNhcmQtc2lkZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLmZsby1jYXJkLXNpZGVfX2l0ZW0ge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLmZsby1jYXJkLXNpZGVfX3RpdHRsZSB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgIC5mbG8tY2FyZC1zaWRlX19pbWcge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDEyLjVyZW0gIWltcG9ydGFudDsgfVxuICAgICAgLmZsby1jYXJkLXNpZGVfX2l0ZW0tLXJpZ2h0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMC42MjVyZW07IH1cbiAgICAgIC5mbG8tY2FyZC1zaWRlLS1pbnZlcnRlZCAuZmxvLWNhcmQtc2lkZV9faXRlbSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9IH1cblxuLmZsby1kaXZpZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTU5NTk1OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZmxvLWRpdmlkZXIge1xuICAgICAgbWFyZ2luLXRvcDogMi41cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gICAgLmZsby1kaXZpZGVyIHtcbiAgICAgIG1hcmdpbi10b3A6IDIuNXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmZsby1mb290ZXItc2lkZWJhcnMge1xuICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTsgfVxuICAgIC5mbG8tZm9vdGVyLXNpZGViYXJzLS10aHJlZS1jb2x1bW5zIC5yb3cgLmNvbHVtbiwgLmZsby1mb290ZXItc2lkZWJhcnMtLXRocmVlLWNvbHVtbnMgLnJvdyAuY29sdW1ucyB7XG4gICAgICB3aWR0aDogY2FsYyggKDEwMCUgLSAxLjI1cmVtICogKDMgLSAxKSApIC8gMyk7IH1cbiAgICAgIC5mbG8tZm9vdGVyLXNpZGViYXJzLS10aHJlZS1jb2x1bW5zIC5yb3cgLmNvbHVtbjpmaXJzdC1jaGlsZCwgLmZsby1mb290ZXItc2lkZWJhcnMtLXRocmVlLWNvbHVtbnMgLnJvdyAuY29sdW1uczpmaXJzdC1jaGlsZCwgLmZsby1mb290ZXItc2lkZWJhcnMtLXRocmVlLWNvbHVtbnMgLnJvdyAuY29sdW1uOm50aC1jaGlsZCgyKSwgLmZsby1mb290ZXItc2lkZWJhcnMtLXRocmVlLWNvbHVtbnMgLnJvdyAuY29sdW1uczpudGgtY2hpbGQoMikge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuMjVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgLmZsby1mb290ZXItc2lkZWJhcnMgLnJvdyAuY29sdW1uLCAuZmxvLWZvb3Rlci1zaWRlYmFycyAucm93IC5jb2x1bW5zIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyLjVyZW07IH0gfVxuXG4uZmxvLWZvb3RlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5mbG8tZm9vdGVyX19jb250ZW50IHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gNXJlbSk7XG4gICAgcGFkZGluZy10b3A6IDMuMTI1cmVtO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTVlNWU1OyB9XG4gIC5mbG8tZm9vdGVyX19kZWNvcmF0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMC42MjVyZW07XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgei1pbmRleDogLTE7IH1cbiAgLmZsby1mb290ZXItLXNjcm9sbGFibGUgZmxvLWZvb3RlciB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAuZmxvLWZvb3Rlcl9fY29weXJpZ2h0cy13cmFwIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZy10b3A6IDIuODEyNXJlbTsgfVxuICAuZmxvLWZvb3Rlcl9fc2Nyb2xsLXVwIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC40cywgZmlsdGVyIDAuNHM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7IH1cbiAgICAuZmxvLWZvb3Rlcl9fc2Nyb2xsLXVwOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZTVlNWU1OyB9XG4gICAgLmZsby1mb290ZXJfX3Njcm9sbC11cCAuZmxvLWljb25fX2Fycm93LXVwIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC43NXJlbTsgfVxuICAuZmxvLWZvb3Rlcl9fY29weXJpZ2h0cy1mbG8gYSB7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmZsby1mb290ZXJfX2luc3RhZ3JhbS1mZWVkIHtcbiAgICAgIG1hcmdpbi10b3A6IDMuNXJlbTsgfVxuICAgICAgLmZsby1mb290ZXJfX2luc3RhZ3JhbS1mZWVkIC5mbG8tc2hjb2RlLWluc3RnbS1jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgICAgIC5mbG8tZm9vdGVyX19pbnN0YWdyYW0tZmVlZCAuaW1nLWJsb2NrIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDYgLSAyLjk5NDc5cmVtKSAhaW1wb3J0YW50OyB9XG4gICAgLmZsby1mb290ZXJfX2JvdHRvbSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgcGFkZGluZzogMS43NXJlbSAwO1xuICAgICAgbWFyZ2luOiA0LjI1cmVtIGF1dG8gMDtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA1cmVtKTsgfVxuICAgIC5mbG8tZm9vdGVyX19ib3R0b20tZmlyc3Qge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuZmxvLWZvb3Rlcl9fc3Vic2NyaWJlLCAuZmxvLWZvb3Rlcl9fc2Nyb2xsLXVwIHtcbiAgICAgIHdpZHRoOiAzMCU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAgIC5mbG8tZm9vdGVyX19zdWJzY3JpYmUge1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAuZmxvLWZvb3Rlcl9fdGV4dCB7XG4gICAgICB3aWR0aDogNDAlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLmZsby1mb290ZXJfX3Njcm9sbC11cCB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIHJpZ2h0OiAwOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gICAgLmZsby1mb290ZXJfX2luc3RhZ3JhbS1mZWVkIC5pbWctYmxvY2sge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTsgfVxuICAgIC5mbG8tZm9vdGVyX19jb250ZW50IHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzLjc1cmVtKTsgfVxuICAgIC5mbG8tZm9vdGVyX19ib3R0b20ge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgICAgcGFkZGluZzogMS44NzVyZW0gMDsgfVxuICAgIC5mbG8tZm9vdGVyX19ib3R0b20tZmlyc3Qge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAuZmxvLWZvb3Rlcl9fdGV4dCB7XG4gICAgICBtYXJnaW46IDEuODc1cmVtIDA7IH0gfVxuXG4uZmxvLWdlbmVyaWMtY2F0ZWdvcmllcy1hbmQtdGFncyB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5mbG8tZ2VuZXJpYy1jYXRlZ29yaWVzLWFuZC10YWdzX19saXN0IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMC44NzVyZW07IH1cbiAgLmZsby1nZW5lcmljLWNhdGVnb3JpZXMtYW5kLXRhZ3MtLXNpbXBsZSB7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50OyB9XG4gICAgLmZsby1nZW5lcmljLWNhdGVnb3JpZXMtYW5kLXRhZ3MtLXNpbXBsZSAuZmxvLWdlbmVyaWMtY2F0ZWdvcmllcy1hbmQtdGFnc19fbGlzdCB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZmxvLWdlbmVyaWMtY2F0ZWdvcmllcy1hbmQtdGFncyB7XG4gICAgICBwYWRkaW5nLXRvcDogNC42MjVyZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgICAuZmxvLWdlbmVyaWMtY2F0ZWdvcmllcy1hbmQtdGFncyB7XG4gICAgICBwYWRkaW5nLXRvcDogMi4xODc1cmVtOyB9IH1cblxuLmZsby1oZWFkZXItbW9iaWxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM4MzgzODtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAwLjYyNXJlbSAxLjg3NXJlbTtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgLmZsby1oZWFkZXItbW9iaWxlX19oYW1idXJnZXIge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmZsby1oZWFkZXItbW9iaWxlIC5mbG8taWNvbl9fc2lkZWJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmZsby1oZWFkZXItbW9iaWxlX19tZW51IHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC5mbG8taGVhZGVyLW1vYmlsZV9fbWVudS0tcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5mbG8taGVhZGVyLW1vYmlsZV9fbG9nbyB7XG4gICAgd2lkdGg6IDYwJTtcbiAgICBtYXgtd2lkdGg6IDE1MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEuODc1cmVtO1xuICAgIGZvbnQtZmFtaWx5OiBcIk1hbGFya2V5XCI7XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgICAuZmxvLWhlYWRlci1tb2JpbGVfX2xvZ286dmlzaXRlZCB7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmZsby1oZWFkZXItbW9iaWxlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uZmxvLWhlYWRlcl9fbWVudS1kb25vciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmZsby1oZWFkZXJfX21lbnUgPiAqIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi5mbG8taGVhZGVyX19tZW51IGxpIHtcbiAgcGFkZGluZzogMS4yNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4td2lkdGg6IDcuNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5mbG8taGVhZGVyX19tZW51IC5tZW51LWl0ZW0gdWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB6LWluZGV4OiAxMDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi13aWR0aDogMTguNzVyZW07XG4gIHBhZGRpbmc6IDIuNXJlbTtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMsIHZpc2liaWxpdHkgMC40cywgZmlsdGVyIDAuNHM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40NDUsIDAuMDUsIDAuNTUsIDAuOTUpOyB9XG4gIC5mbG8taGVhZGVyX19tZW51IC5tZW51LWl0ZW0gdWw6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDAgMTAwMGVtO1xuICAgIG1hcmdpbjogMCAtMTAwMGVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzODM4Mzg7XG4gICAgb3BhY2l0eTogMTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDsgfVxuICAuZmxvLWhlYWRlcl9fbWVudSAubWVudS1pdGVtIHVsIGxpIHtcbiAgICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmZsby1oZWFkZXJfX21lbnUgLm1lbnUtaXRlbSB1bCBhIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuNHMsIG9wYWNpdHkgMC40cywgZmlsdGVyIDAuNHM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7IH1cbiAgICAuZmxvLWhlYWRlcl9fbWVudSAubWVudS1pdGVtIHVsIGE6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICfilIAnO1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuZmxvLWhlYWRlcl9fbWVudSAubWVudS1pdGVtIHVsIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICNlNWU1ZTU7IH1cbiAgLmZsby1oZWFkZXJfX21lbnUgLm1lbnUtaXRlbSB1bCB1bCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAlLCAwKTtcbiAgICBwYWRkaW5nOiAwLjYyNXJlbSAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzODM4Mzg7XG4gICAgYm9yZGVyOiAwO1xuICAgIG1pbi13aWR0aDogMTByZW07IH1cbiAgICAuZmxvLWhlYWRlcl9fbWVudSAubWVudS1pdGVtIHVsIHVsIGxpIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDAuNjI1cmVtIDIuNXJlbTsgfVxuICAgIC5mbG8taGVhZGVyX19tZW51IC5tZW51LWl0ZW0gdWwgdWwgYSB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gICAgICAuZmxvLWhlYWRlcl9fbWVudSAubWVudS1pdGVtIHVsIHVsIGE6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5mbG8taGVhZGVyX19tZW51IC5tZW51LWl0ZW0gdWwgdWw6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLmZsby1oZWFkZXJfX21lbnUgLm1lbnUtaXRlbTpob3ZlciB1bCB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmZsby1oZWFkZXJfX21lbnUgLm1lbnUtaXRlbSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgdWwge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIG9wYWNpdHk6IDA7IH1cblxuLmZsby1oZWFkZXJfX21lbnUgLm1lbnUtaXRlbSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQ6aG92ZXIgLmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmZsby1oZWFkZXJfX21lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWxlZnQgPiBhOjphZnRlcixcbi5mbG8taGVhZGVyX19tZW51IC5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZmxvLWhlYWRlcl9fbG9nbyB7XG4gIGZvbnQtc2l6ZTogMS44NzVyZW07XG4gIGZvbnQtZmFtaWx5OiBcIk1hbGFya2V5XCI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IH1cbiAgLmZsby1oZWFkZXJfX2xvZ28taW1hZ2Uge1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi5mbG8taGVhZGVyX19hZGRvbnMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5mbG8taGVhZGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzODM4Mzg7IH1cbiAgICAuZmxvLWhlYWRlci0tbG9nby1jZW50ZXIgLmZsby1oZWFkZXJfX21lbnUge1xuICAgICAgd2lkdGg6IDM1JTsgfVxuICAgIC5mbG8taGVhZGVyLS1sb2dvLWNlbnRlciAuZmxvLWhlYWRlcl9fbG9nbyB7XG4gICAgICBwYWRkaW5nOiAxLjI1cmVtIDA7IH1cbiAgICAuZmxvLWhlYWRlci0tbG9nby1sZWZ0IC5mbG8taGVhZGVyX19sb2dvLCAuZmxvLWhlYWRlci0tbG9nby1yaWdodCAuZmxvLWhlYWRlcl9fbG9nbyB7XG4gICAgICBwYWRkaW5nOiAxLjI1cmVtIDIuNXJlbTsgfVxuICAgIC5mbG8taGVhZGVyX19tZW51IHVsIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAuZmxvLWhlYWRlcl9fbWVudS0tbGVmdCB1bCB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gICAgLmZsby1oZWFkZXJfX21lbnUtLXJpZ2h0IHVsIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAuZmxvLWhlYWRlcl9fbG9nbyB7XG4gICAgbWF4LXdpZHRoOiAyMDBweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2NGVtKSB7XG4gIC5mbG8taGVhZGVyX19sb2dvIHtcbiAgICBtYXgtd2lkdGg6IDIwMHB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gIC5mbG8taGVhZGVyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmZsby1oZWFkZXJfX3NlYXJjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLXdpZHRoOiBpbml0aWFsICFpbXBvcnRhbnQ7IH1cblxuLmZsby1oZWFkZXJfX3NlYXJjaC10cmlnZ2VyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5mbG8taGVhZGVyX19zZWFyY2gtdHJpZ2dlciBpIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMsIGZpbHRlciAwLjRzO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40NDUsIDAuMDUsIDAuNTUsIDAuOTUpO1xuICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtOyB9XG5cbi5mbG8taGVhZGVyX19zZWFyY2gtdHJpZ2dlci1jbG9zZS1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmZsby1oZWFkZXJfX3NlYXJjaC13cmFwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBsZWZ0OiAxMDAlO1xuICB3aWR0aDogNi4yNXJlbTtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cywgZmlsdGVyIDAuNHM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40NDUsIDAuMDUsIDAuNTUsIDAuOTUpOyB9XG5cbi5mbG8taGVhZGVyX19zZWFyY2gtaW5wdXQge1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB3aWR0aDogMTcuNXJlbTsgfVxuXG4uZmxvLWhlYWRlcl9fbWVudSBsaTpub3QoLmZsby1oZWFkZXJfX3NlYXJjaCksIC5mbG8taGVhZGVyX19sb2dvIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzLCBmaWx0ZXIgMC40cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7IH1cblxuLmZsby1oZWFkZXItLXNlYXJjaC1leHBhbmRlZCAuZmxvLWhlYWRlcl9fc2VhcmNoLXRyaWdnZXItc2VhcmNoLWljb24ge1xuICBvcGFjaXR5OiAwOyB9XG5cbi5mbG8taGVhZGVyLS1zZWFyY2gtZXhwYW5kZWQgLmZsby1oZWFkZXJfX3NlYXJjaC10cmlnZ2VyLWNsb3NlLWljb24ge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5mbG8taGVhZGVyLS1zZWFyY2gtZXhwYW5kZWQgLmZsby1oZWFkZXJfX3NlYXJjaC13cmFwIHtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7IH1cblxuLmZsby1oZWFkZXItLXNlYXJjaC1leHBhbmRlZCAuZmxvLWhlYWRlcl9fbWVudSBsaTpub3QoLmZsby1oZWFkZXJfX3NlYXJjaCksXG4uZmxvLWhlYWRlci0tc2VhcmNoLWV4cGFuZGVkIC5mbG8taGVhZGVyX19sb2dvIHtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLyogU1RBUlQ6IFNUSUNLWSBTVFVGRiAqL1xuI2Zsby1oZWFkZXItc3RpY2t5LXdyYXBwZXIgLmZsby1oZWFkZXIge1xuICBib3R0b206IGF1dG87IH1cblxuLyogRU5EOiBTVElDS1kgU1RVRkYgKi9cbi5mbG8taGVyby0yX19zbGlkZS1jb250ZW50IHtcbiAgaGVpZ2h0OiAzNi4yNXJlbTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLmZsby1oZXJvLTJfX3NsaWRlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi5mbG8taGVyby0yX190ZXh0LWJsb2NrIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxMi43NXJlbSk7XG4gIHJpZ2h0OiA2LjM3NXJlbTtcbiAgaGVpZ2h0OiAxMDAlOyB9XG5cbi5mbG8taGVyby0yX190ZXh0IHtcbiAgY29sb3I6IHdoaXRlO1xuICBtYXgtd2lkdGg6IDgwJTsgfVxuXG4uZmxvLWhlcm8tMl9faW1nLWRhdGUge1xuICBmb250LXNpemU6IDAuNjg3NXJlbTtcbiAgZm9udC1mYW1pbHk6IFwiQW1wbGl0dWRlQ29uZC1SZWd1bGFyXCI7XG4gIGxldHRlci1zcGFjaW5nOiAwLjM3NWVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi5mbG8taGVyby0yX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LWZhbWlseTogXCJCdXRsZXJcIjsgfVxuXG4uZmxvLWhlcm8tMl9fdGV4dC0tbGFyZ2UgLmZsby1oZXJvLTJfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAyLjI1cmVtOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAuZmxvLWhlcm8tMl9fc2xpZGUtY29udGVudCB7XG4gICAgaGVpZ2h0OiAzMHJlbTsgfVxuICAuZmxvLWhlcm8tMl9fdGV4dC1ibG9jayB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH0gfVxuXG4uZmxvLXNlY3Rpb24tLWhlcm8tMjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogNXJlbTsgfVxuXG4uZmxvLXNlY3Rpb24tLWZsby1oZXJvLTMgLmZsby1zZWN0aW9uX19jb250ZW50IHtcbiAgcGFkZGluZzogMDsgfVxuXG4uZmxvLWhlcm8tMyB7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuICAuZmxvLWhlcm8tM19fc2xpZGVyIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cywgZmlsdGVyIDAuNHM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7IH1cbiAgICAuZmxvLWhlcm8tM19fc2xpZGVyLnNsaWNrLWluaXRpYWxpemVkIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmZsby1oZXJvLTMgLnNsaWRlciAuc2xpY2stc2xpZGU6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLmZsby1oZXJvLTMgLnNsaWNrLXRyYWNrIC5zbGljay1zbGlkZTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAuZmxvLWhlcm8tM19fc2xpZGUge1xuICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgI2ZmZjtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5mbG8taGVyby0zX19zbGlkZS1jb250ZW50IHtcbiAgICBoZWlnaHQ6IDM2LjY4NzVyZW07XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZmxvLWhlcm8tMyAuZmxvLWljb25fX2Fycm93LWxlZnQge1xuICAgICAgbGVmdDogNC4wNjI1cmVtOyB9XG4gICAgLmZsby1oZXJvLTMgLmZsby1pY29uX19hcnJvdy1yaWdodCB7XG4gICAgICByaWdodDogNC4wNjI1cmVtOyB9XG4gICAgLmZsby1oZXJvLTMgLnNsaWNrLXNsaWRlIGltZyB7XG4gICAgICBoZWlnaHQ6IDM2LjY4NzVyZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgICAuZmxvLWhlcm8tMyAuZmxvLWljb25fX2Fycm93LWxlZnQsXG4gICAgLmZsby1oZXJvLTMgLmZsby1pY29uX19hcnJvdy1yaWdodCB7XG4gICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICBjb2xvcjogIzM4MzgzODsgfVxuICAgIC5mbG8taGVyby0zIC5mbG8taWNvbl9fYXJyb3ctbGVmdCB7XG4gICAgICBsZWZ0OiAwLjYyNXJlbTsgfVxuICAgIC5mbG8taGVyby0zIC5mbG8taWNvbl9fYXJyb3ctcmlnaHQge1xuICAgICAgcmlnaHQ6IDAuNjI1cmVtOyB9XG4gICAgLmZsby1oZXJvLTNfX3NsaWRlLWNvbnRlbnQge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5mbG8taGVyby0zIC5zbGljay1zbGlkZSBpbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuZmxvLWhlcm8tM19fc2xpZGUtaW1nIHtcbiAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuLmZsby1zZWN0aW9uLS1mbG8taGVyby00IC5mbG8tc2VjdGlvbl9fY29udGVudCB7XG4gIHBhZGRpbmc6IDA7IH1cblxuLmZsby1oZXJvLTQge1xuICBjb2xvcjogd2hpdGU7IH1cbiAgLmZsby1oZXJvLTRfX3NsaWRlciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMsIGZpbHRlciAwLjRzO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40NDUsIDAuMDUsIDAuNTUsIDAuOTUpOyB9XG4gICAgLmZsby1oZXJvLTRfX3NsaWRlci5zbGljay1pbml0aWFsaXplZCB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5mbG8taGVyby00IC5zbGlkZXIgLnNsaWNrLXNsaWRlOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5mbG8taGVyby00IC5zbGljay10cmFjayAuc2xpY2stc2xpZGU6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLmZsby1oZXJvLTRfX3NsaWRlIHtcbiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICNmZmY7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuZmxvLWhlcm8tNF9fc2xpZGUtY29udGVudCB7XG4gICAgaGVpZ2h0OiAzNi42ODc1cmVtO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjsgfVxuICAuZmxvLWhlcm8tNF9fc2xpZGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5mbG8taGVyby00X19zbGlkZTpiZWZvcmUge1xuICAgICAgY29udGVudDogXCIuLi5cIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgIGZvbnQtc2l6ZTogMS43NXJlbTsgfVxuICAuZmxvLWhlcm8tNCAuc2xpY2stc2xpZGUgaW1nIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5mbG8taGVyby00X19zbGlkZS1pbWcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmZsby1oZXJvLTRfX3NsaWRlLWltZy0tYmdpIHtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzLCBmaWx0ZXIgMC40cztcbiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40NDUsIDAuMDUsIDAuNTUsIDAuOTUpOyB9XG4gICAgICAuZmxvLWhlcm8tNF9fc2xpZGUtaW1nLS1iZ2kuZmxvLWxhenktYmdpIHtcbiAgICAgICAgb3BhY2l0eTogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmZsby1oZXJvLTQgLmZsby1pY29uX19hcnJvdy1sZWZ0LFxuICAgIC5mbG8taGVyby00IC5mbG8taWNvbl9fYXJyb3ctcmlnaHQge1xuICAgICAgY29sb3I6IGJsYWNrOyB9XG4gICAgLmZsby1oZXJvLTQgLmZsby1pY29uX19hcnJvdy1sZWZ0IHtcbiAgICAgIGxlZnQ6IDQuMDYyNXJlbTsgfVxuICAgIC5mbG8taGVyby00IC5mbG8taWNvbl9fYXJyb3ctcmlnaHQge1xuICAgICAgcmlnaHQ6IDQuMDYyNXJlbTsgfVxuICAgIC5mbG8taGVyby00X19zbGlkZS1pbWcge1xuICAgICAgaGVpZ2h0OiAzNi42ODc1cmVtOyB9XG4gICAgICAuZmxvLWhlcm8tNF9fc2xpZGUtaW1nLS1iZ2kge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAgIC5mbG8taGVyby00IC5mbG8taWNvbl9fYXJyb3ctbGVmdCxcbiAgICAuZmxvLWhlcm8tNCAuZmxvLWljb25fX2Fycm93LXJpZ2h0IHtcbiAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIGNvbG9yOiAjMzgzODM4OyB9XG4gICAgLmZsby1oZXJvLTQgLmZsby1pY29uX19hcnJvdy1sZWZ0IHtcbiAgICAgIGxlZnQ6IDAuNjI1cmVtOyB9XG4gICAgLmZsby1oZXJvLTQgLmZsby1pY29uX19hcnJvdy1yaWdodCB7XG4gICAgICByaWdodDogMC42MjVyZW07IH1cbiAgICAuZmxvLWhlcm8tNF9fc2xpZGUtY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmZsby1oZXJvLTQgLnNsaWNrLXNsaWRlIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5mbG8taGVyby00X19zbGlkZS1pbWcge1xuICAgICAgd2lkdGg6IDEwMHZ3OyB9XG4gICAgICAuZmxvLWhlcm8tNF9fc2xpZGUtaW1nLS1pbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbi5mbG8taGVyby1wb3B1cCAuZmxvLWljb25fX2Fycm93LWxlZnQge1xuICBsZWZ0OiA0LjA2MjVyZW07IH1cblxuLmZsby1oZXJvLXBvcHVwIC5mbG8taWNvbl9fYXJyb3ctcmlnaHQge1xuICByaWdodDogNC4wNjI1cmVtOyB9XG5cbi5mbG8taGVyby1wb3B1cF9fc2xpZGUtY29udGVudCB7XG4gIGhlaWdodDogMzcuMTI1cmVtO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uZmxvLWhlcm8tcG9wdXBfX3NsaWRlIHtcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjZmZmOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAuZmxvLWhlcm8tcG9wdXBfX3NsaWRlLWNvbnRlbnQge1xuICAgIGhlaWdodDogMzByZW07IH0gfVxuXG4uZmxvLWluc3RhZ3JhbS1pbWFnZXMge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC5mbG8taW5zdGFncmFtLWltYWdlc19faXRlbSB7XG4gICAgd2lkdGg6IDExcmVtO1xuICAgIGhlaWdodDogMTFyZW07XG4gICAgcGFkZGluZzogMXJlbTsgfVxuICAuZmxvLWluc3RhZ3JhbS1pbWFnZXNfX2ltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5mbG8taW5zdGFncmFtLWltYWdlcy0tZ3JpZDphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuZmxvLWluc3RhZ3JhbS1pbWFnZXMtLWdyaWQgLmZsby1pbnN0YWdyYW0taW1hZ2VzX19pdGVtIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6IDMzLjMzJTsgfVxuICAgIC5mbG8taW5zdGFncmFtLWltYWdlcy0taW5saW5lIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgICAuZmxvLWluc3RhZ3JhbS1pbWFnZXMtLWdyaWQgLmZsby1pbnN0YWdyYW0taW1hZ2VzX19pdGVtIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6IDUwJTsgfVxuICAgIC5mbG8taW5zdGFncmFtLWltYWdlc19faXRlbSB7XG4gICAgICBwYWRkaW5nOiAwLjVyZW07IH1cbiAgICAuZmxvLWluc3RhZ3JhbS1pbWFnZXMtLWlubGluZTphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuZmxvLWluc3RhZ3JhbS1pbWFnZXMtLWlubGluZSAuZmxvLWluc3RhZ3JhbS1pbWFnZXNfX2l0ZW0ge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogNTAlOyB9XG4gICAgLmZsby1pbnN0YWdyYW0taW1hZ2VzIC5jb2x1bW5zMyAuaW1nLWJsb2NrIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAyKSAhaW1wb3J0YW50OyB9IH1cblxuLmZsby1saW5rcy1ibG9jay0xIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTAwJTsgfVxuICAuZmxvLWxpbmtzLWJsb2NrLTFfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDIuODEyNXJlbTtcbiAgICBmb250LWZhbWlseTogXCJCdXRsZXJcIjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTsgfVxuICAuZmxvLWxpbmtzLWJsb2NrLTFfX2ZpZWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjc1cmVtOyB9XG4gICAgLmZsby1saW5rcy1ibG9jay0xX19maWVsZDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmZsby1saW5rcy1ibG9jay0xX19kYXRlIHtcbiAgICBmb250LXNpemU6IDAuNXJlbTtcbiAgICBmb250LWZhbWlseTogXCJCdXRsZXJcIjtcbiAgICBsZXR0ZXItc3BhY2luZzogMWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLmZsby1saW5rcy1ibG9jay0xX19sb2NhdGlvbiB7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICBmb250LWZhbWlseTogXCJCdXRsZXJcIjsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmZsby1saW5rcy1ibG9jay0xX19yb3cge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5mbG8tbGlua3MtYmxvY2stMV9fZmllbGQge1xuICAgICAgcGFkZGluZzogMCAxLjI1cmVtO1xuICAgICAgd2lkdGg6IDMzLjMzJTsgfSB9XG5cbi5mbG8tbGlua3MtYmxvY2stMl9fdGl0bGUge1xuICBmb250LWZhbWlseTogXCJBZG9iZSBDYXNsb24gUHJvXCI7XG4gIGZvbnQtc2l6ZTogMC42MjVyZW07XG4gIGxldHRlci1zcGFjaW5nOiAwLjY4NzVlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4uZmxvLWxpbmtzLWJsb2NrLTJfX2l0ZW0ge1xuICBmb250LWZhbWlseTogXCJBZG9iZSBDYXNsb24gUHJvXCI7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmZsby1saW5rcy1ibG9jay0yX190aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNXJlbTsgfVxuICAuZmxvLWxpbmtzLWJsb2NrLTJfX2l0ZW1zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtOyB9XG4gIC5mbG8tbGlua3MtYmxvY2stMl9faXRlbSB7XG4gICAgd2lkdGg6IDQ4JTtcbiAgICBtYXJnaW4tcmlnaHQ6IDIlOyB9XG4gICAgLmZsby1saW5rcy1ibG9jay0yX19pdGVtOm50aC1jaGlsZCgybikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gIC5mbG8tbGlua3MtYmxvY2stMl9fdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDEuODc1cmVtOyB9XG4gIC5mbG8tbGlua3MtYmxvY2stMl9faXRlbXMge1xuICAgIG1hcmdpbi1ib3R0b206IDVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cblxuLmZsby1tb2JpbGUtbWVudSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogOTk5O1xuICB0cmFuc2l0aW9uOiBhbGwgLjVzIGVhc2U7IH1cbiAgLmZsby1tb2JpbGUtbWVudV9fbmF2IHtcbiAgICBwYWRkaW5nOiAxLjg3NXJlbTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAuZmxvLW1vYmlsZS1tZW51X191bCwgLmZsby1tb2JpbGUtbWVudSA+IHVsIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmZsby1tb2JpbGUtbWVudV9fbG9nbyB7XG4gICAgZm9udC1zaXplOiAzLjEyNXJlbTtcbiAgICBmb250LWZhbWlseTogXCJNYWxhcmtleVwiO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiA1cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG4gICAgLmZsby1tb2JpbGUtbWVudV9fbG9nbzp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5mbG8tbW9iaWxlLW1lbnVfX2hhbWJ1cmdlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDEuODc1cmVtO1xuICAgIGJvdHRvbTogMS44NzVyZW07XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5mbG8tbW9iaWxlLW1lbnVfX2l0ZW0sIC5mbG8tbW9iaWxlLW1lbnUgbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsgfVxuICAgIC5mbG8tbW9iaWxlLW1lbnVfX2l0ZW06bGFzdC1vZi10eXBlLCAuZmxvLW1vYmlsZS1tZW51IGxpOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLmZsby1tb2JpbGUtbWVudV9faXRlbSBhLCAuZmxvLW1vYmlsZS1tZW51IGxpIGEge1xuICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkJ1dGxlclwiO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjFlbTsgfVxuICAgIC5mbG8tbW9iaWxlLW1lbnVfX2l0ZW0gdWwsIC5mbG8tbW9iaWxlLW1lbnUgbGkgdWwge1xuICAgICAgbWFyZ2luLXRvcDogMS41cmVtOyB9XG4gICAgLmZsby1tb2JpbGUtbWVudV9faXRlbSBsaSwgLmZsby1tb2JpbGUtbWVudSBsaSBsaSB7XG4gICAgICBtYXJnaW4tdG9wOiAwLjYyNXJlbTsgfVxuICAgICAgLmZsby1tb2JpbGUtbWVudV9faXRlbSBsaTpmaXJzdC1vZi10eXBlLCAuZmxvLW1vYmlsZS1tZW51IGxpIGxpOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAwOyB9XG4gICAgICAuZmxvLW1vYmlsZS1tZW51X19pdGVtIGxpIGEsIC5mbG8tbW9iaWxlLW1lbnUgbGkgbGkgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiQW1wbGl0dWRlQ29uZC1SZWd1bGFyXCI7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIC5mbG8tbW9iaWxlLW1lbnVfX2Nsb3NlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDEuODc1cmVtO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5mbG8tbW9iaWxlLW1lbnUtLXdpdGhvdXQtbG9nbyAuZmxvLW1vYmlsZS1tZW51X19sb2dvIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5mbG8tbW9iaWxlLW1lbnUtLWZ1bGwtaGVpZ2h0IHtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLmZsby1tb2JpbGUtbWVudS0td2l0aC1wYWRkaW5nIHtcbiAgICBwYWRkaW5nOiAxLjg3NXJlbTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMy43NXJlbSk7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAzLjc1cmVtKTsgfVxuICAuZmxvLW1vYmlsZS1tZW51LS13aXRob3V0LWhhbWJ1cmdlciAuZmxvLW1vYmlsZS1tZW51X19oYW1idXJnZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmZsby1tb2JpbGUtbWVudS0td2l0aG91dC1oYW1idXJnZXIgLmZsby1tb2JpbGUtbWVudV9fY2xvc2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5mbG8tbW9iaWxlLW1lbnUtLXRvcCB7XG4gICAgdG9wOiAtMTAwJTsgfVxuICAuZmxvLW1vYmlsZS1tZW51LS1ib3R0b20ge1xuICAgIGJvdHRvbTogLTEwMCU7IH1cbiAgLmZsby1tb2JpbGUtbWVudS5tb2JpbGUtZGlzcGxheS5mbG8tbW9iaWxlLW1lbnUtLXRvcCB7XG4gICAgdG9wOiAwOyB9XG4gICAgLmZsby1tb2JpbGUtbWVudS5tb2JpbGUtZGlzcGxheS5mbG8tbW9iaWxlLW1lbnUtLXRvcC5mbG8tbW9iaWxlLW1lbnUtLXdpdGgtcGFkZGluZyB7XG4gICAgICB0b3A6IDEuODc1cmVtO1xuICAgICAgbGVmdDogMS44NzVyZW07IH1cbiAgLmZsby1tb2JpbGUtbWVudS5tb2JpbGUtZGlzcGxheS5mbG8tbW9iaWxlLW1lbnUtLWJvdHRvbSB7XG4gICAgdG9wOiAwOyB9XG4gICAgLmZsby1tb2JpbGUtbWVudS5tb2JpbGUtZGlzcGxheS5mbG8tbW9iaWxlLW1lbnUtLWJvdHRvbS5mbG8tbW9iaWxlLW1lbnUtLXdpdGgtcGFkZGluZyB7XG4gICAgICBib3R0b206IDEuODc1cmVtO1xuICAgICAgbGVmdDogMS44NzVyZW07IH1cblxuLmZsby1wYWdlLWhlcm8ge1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuZmxvLXBhZ2UtaGVyb19fc2xpZGUtY29udGVudCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgaGVpZ2h0OiAxMDB2aDsgfVxuICAuZmxvLXBhZ2UtaGVyb19fbG9nbyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICBwYWRkaW5nOiAwIDEuODc1cmVtO1xuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmZsby1wYWdlLWhlcm9fX2xvZ28ge1xuICAgICAgcGFkZGluZzogMDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAgIC5mbG8tcGFnZS1oZXJvIC5mbG8taWNvbl9fYXJyb3ctbGVmdCxcbiAgICAuZmxvLXBhZ2UtaGVybyAuZmxvLWljb25fX2Fycm93LXJpZ2h0IHtcbiAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIGNvbG9yOiAjMzgzODM4OyB9XG4gICAgLmZsby1wYWdlLWhlcm8gLmZsby1pY29uX19hcnJvdy1sZWZ0IHtcbiAgICAgIGxlZnQ6IDAuNjI1cmVtOyB9XG4gICAgLmZsby1wYWdlLWhlcm8gLmZsby1pY29uX19hcnJvdy1yaWdodCB7XG4gICAgICByaWdodDogMC42MjVyZW07IH0gfVxuXG4uZmxvLXBhZ2UtdG9wLW5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDEuMjVyZW0gMDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDVyZW0pO1xuICBjb2xvcjogd2hpdGU7IH1cbiAgLmZsby1wYWdlLXRvcC1uYXYtLW9uLWhlcm8tcGFnZSB7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogOTk7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gICAgLmZsby1wYWdlLXRvcC1uYXYge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMuNzVyZW0pOyB9IH1cblxuLmZsb19wYWdlX3dyYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLmZsb19wYWdlX3dyYXAtLXBhZGRpbmctdG9wLWxhcmdlIHtcbiAgICBwYWRkaW5nLXRvcDogOS4zNzVyZW07IH1cblxuLmZsb19wYWdlIHtcbiAgZmxleDogMTtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5mbG8tcGFnaW5hdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5mbG8tcGFnaW5hdGlvbi0tc3R5bGUtbnVtYmVycyAuZmxvLXBhZ2luYXRpb25fX3ByZXYsIC5mbG8tcGFnaW5hdGlvbi0tc3R5bGUtbnVtYmVycyAucHJldixcbiAgLmZsby1wYWdpbmF0aW9uLS1zdHlsZS1udW1iZXJzIC5mbG8tcGFnaW5hdGlvbl9fbmV4dCwgLmZsby1wYWdpbmF0aW9uLS1zdHlsZS1udW1iZXJzIC5uZXh0IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5mbG8tcGFnaW5hdGlvbi0tc3R5bGUtbnVtYmVycyAuZmxvLXBhZ2luYXRpb25fX2l0ZW1zOmJlZm9yZSwgLmZsby1wYWdpbmF0aW9uLS1zdHlsZS1udW1iZXJzIC5mbG8tcGFnaW5hdGlvbl9faXRlbXM6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmZsby1wYWdpbmF0aW9uLS1zdHlsZS1idXR0b25zIC5mbG8tcGFnaW5hdGlvbl9fcHJldjphZnRlciB7XG4gICAgY29udGVudDogXCIvXCI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMCAxLjVyZW07IH1cbiAgLmZsby1wYWdpbmF0aW9uLS1zdHlsZS1idXR0b25zIC5wYWdlLW51bWJlcnMge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuZmxvLXBhZ2luYXRpb24tLXN0eWxlLWJ1dHRvbnMgLnBhZ2UtbnVtYmVycy5uZXh0LCAuZmxvLXBhZ2luYXRpb24tLXN0eWxlLWJ1dHRvbnMgLnBhZ2UtbnVtYmVycy5wcmV2IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIC5mbG8tcGFnaW5hdGlvbi0tc3R5bGUtYnV0dG9ucyAucGFnZS1udW1iZXJzLnByZXY6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuZmxvLXBhZ2luYXRpb24tLWdhcC1ib3R0b20ge1xuICAgIHBhZGRpbmctYm90dG9tOiAzLjc1cmVtOyB9XG4gIC5mbG8tcGFnaW5hdGlvbiAuZmxvLXBhZ2luYXRpb25fX3ByZXY6YWZ0ZXIsIC5mbG8tcGFnaW5hdGlvbiAucHJldjphZnRlciwgLmZsby1wYWdpbmF0aW9uIC5mbG8tcGFnaW5hdGlvbl9fbmV4dDpiZWZvcmUsIC5mbG8tcGFnaW5hdGlvbiAubmV4dDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcvJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAuZmxvLXBhZ2luYXRpb25fX3ByZXYsIC5mbG8tcGFnaW5hdGlvbl9fbmV4dCwgLmZsby1wYWdpbmF0aW9uX19zcGFjZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogOS4zNzVyZW07IH1cbiAgLmZsby1wYWdpbmF0aW9uX19wcmV2LCAuZmxvLXBhZ2luYXRpb24gLnByZXYge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgLmZsby1wYWdpbmF0aW9uX19wcmV2OmFmdGVyLCAuZmxvLXBhZ2luYXRpb24gLnByZXY6YWZ0ZXIge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07IH1cbiAgLmZsby1wYWdpbmF0aW9uX19uZXh0OmJlZm9yZSwgLmZsby1wYWdpbmF0aW9uIC5uZXh0OmJlZm9yZSB7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtOyB9XG4gIC5mbG8tcGFnaW5hdGlvbiBhLCAuZmxvLXBhZ2luYXRpb24gc3BhbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZm9udC1zaXplOiAwLjYyNXJlbTtcbiAgICBmb250LWZhbWlseTogXCJCdXRsZXJcIjtcbiAgICBsZXR0ZXItc3BhY2luZzogLjE4NzVlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuZmxvLXBhZ2luYXRpb24gc3BhbiB7XG4gICAgY3Vyc29yOiBkZWZhdWx0OyB9XG4gIC5mbG8tcGFnaW5hdGlvbl9faXRlbXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwIDAuNzVyZW07IH1cbiAgICAuZmxvLXBhZ2luYXRpb25fX2l0ZW1zIGEsIC5mbG8tcGFnaW5hdGlvbl9faXRlbXMgc3BhbiB7XG4gICAgICBwYWRkaW5nOiAwIDAuNjI1cmVtO1xuICAgICAgbWluLXdpZHRoOiAzLjI1cmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAgIC5mbG8tcGFnaW5hdGlvbiB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH0gfVxuXG4uZmxvLXBvcnRmb2xpby1jYXJkIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3V0bGluZTogbm9uZTsgfVxuICAuZmxvLXBvcnRmb2xpby1jYXJkOmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIGNvbnRlbnQ6ICcrJztcbiAgICBmb250LXNpemU6IDEuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB3aWR0aDogMi41cmVtO1xuICAgIGhlaWdodDogMi41cmVtO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMsIHZpc2liaWxpdHkgMC40cywgZmlsdGVyIDAuNHM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7IH1cbiAgLmZsby1wb3J0Zm9saW8tY2FyZDpob3ZlcjphZnRlciB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZmxvLXBvcnRmb2xpby1jYXJkIHtcbiAgICAgIGhlaWdodDogMTAuNXJlbTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuICAgICAgLmZsby1wb3J0Zm9saW8tY2FyZCBpbWcge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gICAgLmZsby1wb3J0Zm9saW8tY2FyZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5mbG8tcG9ydGZvbGlvLWNhcmQgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4uZmxvLXBvcnRmb2xpby1jYXRlZ29yeS1ncmlkX193cmFwIHtcbiAgcGFkZGluZzogMC43NXJlbSAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgbWFyZ2luLWJvdHRvbTogMy4zNzVyZW07IH1cblxuLmZsby1wb3J0Zm9saW8tY2F0ZWdvcnktZ3JpZF9fdGl0bGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAuZmxvLXBvcnRmb2xpby1jYXRlZ29yeS1ncmlkX190aXRsZTpiZWZvcmUge1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi5mbG8tcG9ydGZvbGlvLWNhdGVnb3J5LWdyaWRfX2xpbmstYWxsIHtcbiAgZm9udC1mYW1pbHk6IFwiQW1wbGl0dWRlQ29uZC1SZWd1bGFyXCI7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNGVtO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4uZmxvLXBvcnRmb2xpby1jYXRlZ29yeS1ncmlkIC5jb2x1bW4sIC5mbG8tcG9ydGZvbGlvLWNhdGVnb3J5LWdyaWQgLmNvbHVtbnMge1xuICBwYWRkaW5nLWJvdHRvbTogMi41NjI1cmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLmZsby1wb3J0Zm9saW8tY2F0ZWdvcnktZ3JpZCAucm93Omxhc3Qtb2YtdHlwZSB7XG4gIG1hcmdpbi1ib3R0b206IC0yLjU2MjVyZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuZmxvLXBvcnRmb2xpby1jYXRlZ29yeS1ncmlkX193cmFwIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzLjkwNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMy45MDYyNXJlbTsgfVxuICAuZmxvLXBvcnRmb2xpby1jYXRlZ29yeS1ncmlkIC5jb2x1bW4sIC5mbG8tcG9ydGZvbGlvLWNhdGVnb3J5LWdyaWQgLmNvbHVtbnMge1xuICAgIHBhZGRpbmctbGVmdDogMC43ODEyNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjc4MTI1cmVtOyB9XG4gIC5mbG8tcG9ydGZvbGlvLWNhdGVnb3J5LWdyaWQgLnJvdyB7XG4gICAgcGFkZGluZzogMCAzLjkwNjI1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC43ODEyNXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjc4MTI1cmVtOyB9IH1cblxuLmZsby1wb3J0Zm9saW8tZ3JpZCAucm93Omxhc3Qtb2YtdHlwZSB7XG4gIG1hcmdpbi1ib3R0b206IC0yMDsgfVxuXG4uZmxvLXBvcnRmb2xpby1ncmlkIC5jb2x1bW4sIC5mbG8tcG9ydGZvbGlvLWdyaWQgLmNvbHVtbnMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbi1ib3R0b206IDIwOyB9XG5cbi5mbG8tcG9ydGZvbGlvLWdyaWRfX3RodW1ibmFpbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3V0bGluZTogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuZmxvLXBvcnRmb2xpby1ncmlkX190aHVtYm5haWwgaW1nIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5mbG8tcG9ydGZvbGlvLWdyaWRfX3RodW1ibmFpbCBpbWc6bm90KFtzcmNdKSB7XG4gICAgICBoZWlnaHQ6IDEyLjVyZW07IH1cbiAgLmZsby1wb3J0Zm9saW8tZ3JpZF9fdGh1bWJuYWlsOmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIGNvbnRlbnQ6ICcrJztcbiAgICBmb250LXNpemU6IDEuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB3aWR0aDogMi41cmVtO1xuICAgIGhlaWdodDogMi41cmVtO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMsIHZpc2liaWxpdHkgMC40cywgZmlsdGVyIDAuNHM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuZmxvLXBvcnRmb2xpby1ncmlkIHtcbiAgICBwYWRkaW5nOiAwIDMuOTA2MjVyZW07IH1cbiAgICAuZmxvLXBvcnRmb2xpby1ncmlkIC5jb2x1bW4sIC5mbG8tcG9ydGZvbGlvLWdyaWQgLmNvbHVtbnMge1xuICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoMTApO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKDEwKTsgfVxuICAgICAgLmZsby1wb3J0Zm9saW8tZ3JpZCAuY29sdW1uLm1lZGl1bS0zLCAuZmxvLXBvcnRmb2xpby1ncmlkIC5tZWRpdW0tMy5jb2x1bW5zIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDQgLSAxMCAqIDIpOyB9XG4gICAgLmZsby1wb3J0Zm9saW8tZ3JpZF9fdGh1bWJuYWlsOmhvdmVyOmFmdGVyIHtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICBvcGFjaXR5OiAxOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gIC5mbG8tcG9ydGZvbGlvLWdyaWQgLmNvbHVtbiwgLmZsby1wb3J0Zm9saW8tZ3JpZCAuY29sdW1ucywgLmZsby1wb3J0Zm9saW8tZ3JpZCAuY29sdW1ucyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC42MjVyZW07IH0gfVxuXG4uZmxvLXBvcnRmb2xpby1wb3N0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAuZmxvLXBvcnRmb2xpby1wb3N0X19zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gICAgZm9udC1mYW1pbHk6IFwiQW1wbGl0dWRlQ29uZC1SZWd1bGFyXCI7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMTg3NWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLmZsby1wb3J0Zm9saW8tcG9zdF9fdGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiBcIkJ1dGxlclwiO1xuICAgIGZvbnQtc2l6ZTogMS44NzVyZW07IH1cbiAgLmZsby1wb3J0Zm9saW8tcG9zdF9fc2hhcmUtbGlua3Mge1xuICAgIHBhZGRpbmc6IDAuMzc1cmVtIDA7IH1cbiAgLmZsby1wb3J0Zm9saW8tcG9zdF9fdGV4dCB7XG4gICAgcGFkZGluZy10b3A6IDMuNjg3NXJlbTtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgZm9udC1mYW1pbHk6IFwiQWRvYmUgQ2FzbG9uIFByb1wiOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZmxvLXBvcnRmb2xpby1wb3N0IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzLjEyNXJlbTsgfVxuICAgICAgLmZsby1wb3J0Zm9saW8tcG9zdF9fdGV4dCB7XG4gICAgICAgIHdpZHRoOiAzMS4yNXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyLjVyZW07IH1cbiAgICAgIC5mbG8tcG9ydGZvbGlvLXBvc3RfX2xlZnQge1xuICAgICAgICB3aWR0aDogMjQuNjg3NXJlbTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgICAgLmZsby1wb3J0Zm9saW8tcG9zdF9fc2hhcmUtbGlua3Mge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH0gfVxuXG4uZmxvLXBvc3QtcGFnaW5hdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gIGZvbnQtZmFtaWx5OiBcIkFtcGxpdHVkZUNvbmQtUmVndWxhclwiO1xuICBsZXR0ZXItc3BhY2luZzogMC4yMTg1ZW07XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA1cmVtKTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDEuMDkzNzVyZW0gMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkOyB9XG4gIC5mbG8tcG9zdC1wYWdpbmF0aW9uLS1hbGlnbi1ib3R0b20ge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgcGFkZGluZzogMS45Njg3NXJlbSAwOyB9XG4gIC5mbG8tcG9zdC1wYWdpbmF0aW9uLS1tYXJnaW4tdG9wIHtcbiAgICBtYXJnaW4tdG9wOiAzLjg3NXJlbTsgfVxuICAuZmxvLXBvc3QtcGFnaW5hdGlvbi0tYm9yZGVyLWJvdHRvbS0wIHtcbiAgICBib3JkZXItYm90dG9tOiAwOyB9XG4gIC5mbG8tcG9zdC1wYWdpbmF0aW9uX19zaGFyZS1saW5rcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5mbG8tcG9zdC1wYWdpbmF0aW9uX19iYWNrLXRvLWxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuZmxvLXBvc3QtcGFnaW5hdGlvbl9fYmFjay1pY29uIHtcbiAgICBmb250LXNpemU6IDAuMzc1cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuMzc1cmVtOyB9XG4gIC5mbG8tcG9zdC1wYWdpbmF0aW9uX19wYWdlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5mbG8tcG9zdC1wYWdpbmF0aW9uX19wYWdlci1pdGVtIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjU5Mzc1cmVtOyB9XG4gICAgLmZsby1wb3N0LXBhZ2luYXRpb25fX3BhZ2VyLWl0ZW06YWZ0ZXIge1xuICAgICAgY29udGVudDogJy8nO1xuICAgICAgcGFkZGluZy1sZWZ0OiAxLjU5Mzc1cmVtOyB9XG4gICAgLmZsby1wb3N0LXBhZ2luYXRpb25fX3BhZ2VyLWl0ZW06bGFzdC1vZi10eXBlIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAgIC5mbG8tcG9zdC1wYWdpbmF0aW9uX19wYWdlci1pdGVtOmxhc3Qtb2YtdHlwZTphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmZsby1wb3N0LXBhZ2luYXRpb24tLWJvdHRvbSB7XG4gICAgbWFyZ2luLXRvcDogNC4zNzVyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmZsby1wb3N0LXBhZ2luYXRpb25fX3BhZ2VyIHtcbiAgICAgIHdpZHRoOiAzMCU7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gICAgLmZsby1wb3N0LXBhZ2luYXRpb25fX3NoYXJlLWxpbmtzIHtcbiAgICAgIHdpZHRoOiA0MCU7IH1cbiAgICAuZmxvLXBvc3QtcGFnaW5hdGlvbl9fYmFjay10by1saXN0LCAuZmxvLXBvc3QtcGFnaW5hdGlvbl9fc3BhY2VyIHtcbiAgICAgIHdpZHRoOiAzMCU7IH1cbiAgICAuZmxvLXBvc3QtcGFnaW5hdGlvbi0tbWFyZ2luLWJvdHRvbSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gICAgLmZsby1wb3N0LXBhZ2luYXRpb24ge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxLjg3NXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEuODc1cmVtO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgICAgLmZsby1wb3N0LXBhZ2luYXRpb25fX3NoYXJlLWxpbmtzIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDAuNzVyZW07IH1cbiAgICAgIC5mbG8tcG9zdC1wYWdpbmF0aW9uX19wYWdlciB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwLjc1cmVtOyB9IH1cblxuLmZsby1wb3N0LXRpdGxlLXdyYXAge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmctYm90dG9tOiAyLjgxMjVyZW07IH1cbiAgLmZsby1wb3N0LXRpdGxlLXdyYXBfX2RhdGUge1xuICAgIGZvbnQtc2l6ZTogMC42ODc1cmVtO1xuICAgIGZvbnQtZmFtaWx5OiBcIkFtcGxpdHVkZUNvbmQtUmVndWxhclwiO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjM3NWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLmZsby1wb3N0LXRpdGxlLXdyYXBfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuODc1cmVtO1xuICAgIGZvbnQtZmFtaWx5OiBcIkJ1dGxlclwiO1xuICAgIG1heC13aWR0aDogMjEuMjVyZW07XG4gICAgbWFyZ2luOiAwIGF1dG87IH1cblxuYm9keSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4uZmxvLXBvc3Qtd3JhcCB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6IDc1MHB4OyB9XG5cbi5mbG8tcG9zdCwgLmZsby1wb3N0X19zdHlsZXMge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZvbnQtZmFtaWx5OiBcIkFkb2JlIENhc2xvbiBQcm9cIjtcbiAgLyogc3BhY2luZyBiZWxvdyBpbWFnZSAqL1xuICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIDMuMCBBbGlnbm1lbnRzXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICA4LjAgTGlzdHNcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIDE2LjAgTWVkaWFcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICAvKiBNYWtlIHN1cmUgZW1iZWRzIGFuZCBpZnJhbWVzIGZpdCB0aGVpciBjb250YWluZXJzLiAqL1xuICAvKiBNZWRpYSBFbGVtZW50cyAqL1xuICAvKiBBdWRpbyBQbGF5ZXIgKi9cbiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAxNi4xIEdhbGxlcmllc1xuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIC8qIHNwYWNpbmcgYmVsb3cgaW1hZ2UgKi8gfVxuICAuZmxvLXBvc3QgaW1nLCAuZmxvLXBvc3RfX3N0eWxlcyBpbWcge1xuICAgIG1hcmdpbi1ib3R0b206IDAuMTU2MjVyZW07XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5mbG8tcG9zdCBwOm5vdCg6ZW1wdHkpLCAuZmxvLXBvc3RfX3N0eWxlcyBwOm5vdCg6ZW1wdHkpIHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgIG1hcmdpbjogMS4yNXJlbSAwOyB9XG4gICAgLmZsby1wb3N0IHA6bm90KDplbXB0eSk6bGFzdC1vZi10eXBlLCAuZmxvLXBvc3RfX3N0eWxlcyBwOm5vdCg6ZW1wdHkpOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5mbG8tcG9zdCBhIGltZywgLmZsby1wb3N0IGltZywgLmZsby1wb3N0IGltZy5hbGlnbmxlZnQsIC5mbG8tcG9zdCBpbWcuYWxpZ25yaWdodCwgLmZsby1wb3N0IGltZy5hbGlnbmNlbnRlciwgLmZsby1wb3N0X19zdHlsZXMgYSBpbWcsIC5mbG8tcG9zdF9fc3R5bGVzIGltZywgLmZsby1wb3N0X19zdHlsZXMgaW1nLmFsaWdubGVmdCwgLmZsby1wb3N0X19zdHlsZXMgaW1nLmFsaWducmlnaHQsIC5mbG8tcG9zdF9fc3R5bGVzIGltZy5hbGlnbmNlbnRlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAuZmxvLXBvc3QgLmFsaWdubGVmdCwgLmZsby1wb3N0X19zdHlsZXMgLmFsaWdubGVmdCB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMS41ZW07IH1cbiAgLmZsby1wb3N0IC5hbGlnbnJpZ2h0LCAuZmxvLXBvc3RfX3N0eWxlcyAuYWxpZ25yaWdodCB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogMS41ZW07IH1cbiAgLmZsby1wb3N0IC5hbGlnbmNlbnRlciwgLmZsby1wb3N0X19zdHlsZXMgLmFsaWduY2VudGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgLmZsby1wb3N0IHVsLFxuICAuZmxvLXBvc3Qgb2wsIC5mbG8tcG9zdF9fc3R5bGVzIHVsLFxuICAuZmxvLXBvc3RfX3N0eWxlcyBvbCB7XG4gICAgbWFyZ2luOiAwIDAgMS41ZW07XG4gICAgcGFkZGluZzogMDsgfVxuICAuZmxvLXBvc3QgdWwsIC5mbG8tcG9zdF9fc3R5bGVzIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBkaXNjOyB9XG4gIC5mbG8tcG9zdCBvbCwgLmZsby1wb3N0X19zdHlsZXMgb2wge1xuICAgIGxpc3Qtc3R5bGU6IGRlY2ltYWw7IH1cbiAgLmZsby1wb3N0IGxpID4gdWwsXG4gIC5mbG8tcG9zdCBsaSA+IG9sLCAuZmxvLXBvc3RfX3N0eWxlcyBsaSA+IHVsLFxuICAuZmxvLXBvc3RfX3N0eWxlcyBsaSA+IG9sIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAxLjVlbTsgfVxuICAuZmxvLXBvc3QgZHQsIC5mbG8tcG9zdF9fc3R5bGVzIGR0IHtcbiAgICBmb250LXdlaWdodDogNzAwOyB9XG4gIC5mbG8tcG9zdCBkZCwgLmZsby1wb3N0X19zdHlsZXMgZGQge1xuICAgIG1hcmdpbjogMCAxLjVlbSAxLjVlbTsgfVxuICAuZmxvLXBvc3QgaW1nLFxuICAuZmxvLXBvc3QgdmlkZW8sIC5mbG8tcG9zdF9fc3R5bGVzIGltZyxcbiAgLmZsby1wb3N0X19zdHlsZXMgdmlkZW8ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICAvKiBNYWtlIHN1cmUgaW1hZ2VzIGFyZSBzY2FsZWQgY29ycmVjdGx5LiAqL1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAvKiBBZGhlcmUgdG8gY29udGFpbmVyIHdpZHRoLiAqLyB9XG4gIC5mbG8tcG9zdCAuY29tbWVudC1jb250ZW50IC53cC1zbWlsZXksIC5mbG8tcG9zdF9fc3R5bGVzIC5jb21tZW50LWNvbnRlbnQgLndwLXNtaWxleSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5mbG8tcG9zdCBlbWJlZCxcbiAgLmZsby1wb3N0IGlmcmFtZSxcbiAgLmZsby1wb3N0IG9iamVjdCwgLmZsby1wb3N0X19zdHlsZXMgZW1iZWQsXG4gIC5mbG8tcG9zdF9fc3R5bGVzIGlmcmFtZSxcbiAgLmZsby1wb3N0X19zdHlsZXMgb2JqZWN0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLmZsby1wb3N0IC53cC1jYXB0aW9uLFxuICAuZmxvLXBvc3QgLndwLWNhcHRpb24gYSxcbiAgLmZsby1wb3N0IC5nYWxsZXJ5LWNhcHRpb24sIC5mbG8tcG9zdF9fc3R5bGVzIC53cC1jYXB0aW9uLFxuICAuZmxvLXBvc3RfX3N0eWxlcyAud3AtY2FwdGlvbiBhLFxuICAuZmxvLXBvc3RfX3N0eWxlcyAuZ2FsbGVyeS1jYXB0aW9uIHtcbiAgICBjb2xvcjogIzY2NjtcbiAgICBmb250LXNpemU6IDAuNjEyNXJlbTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGxpbmUtaGVpZ2h0OiAxZW07IH1cbiAgLmZsby1wb3N0IC53cC1jYXB0aW9uIGltZ1tjbGFzcyo9XCJ3cC1pbWFnZS1cIl0sIC5mbG8tcG9zdF9fc3R5bGVzIC53cC1jYXB0aW9uIGltZ1tjbGFzcyo9XCJ3cC1pbWFnZS1cIl0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAuZmxvLXBvc3QgLndwLWNhcHRpb24gLndwLWNhcHRpb24tdGV4dCwgLmZsby1wb3N0IC53cC1jYXB0aW9uLXRleHQgYSwgLmZsby1wb3N0X19zdHlsZXMgLndwLWNhcHRpb24gLndwLWNhcHRpb24tdGV4dCwgLmZsby1wb3N0X19zdHlsZXMgLndwLWNhcHRpb24tdGV4dCBhIHtcbiAgICBtYXJnaW46IDAuODA3NWVtIDA7IH1cbiAgLmZsby1wb3N0IC53cC1jYXB0aW9uIHAsIC5mbG8tcG9zdF9fc3R5bGVzIC53cC1jYXB0aW9uIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmZsby1wb3N0IC5tZWpzLWNvbnRhaW5lciwgLmZsby1wb3N0X19zdHlsZXMgLm1lanMtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTsgfVxuICAuZmxvLXBvc3QgLm1lanMtY29udHJvbHMgYS5tZWpzLWhvcml6b250YWwtdm9sdW1lLXNsaWRlcixcbiAgLmZsby1wb3N0IC5tZWpzLWNvbnRyb2xzIGEubWVqcy1ob3Jpem9udGFsLXZvbHVtZS1zbGlkZXI6Zm9jdXMsXG4gIC5mbG8tcG9zdCAubWVqcy1jb250cm9scyBhLm1lanMtaG9yaXpvbnRhbC12b2x1bWUtc2xpZGVyOmhvdmVyLCAuZmxvLXBvc3RfX3N0eWxlcyAubWVqcy1jb250cm9scyBhLm1lanMtaG9yaXpvbnRhbC12b2x1bWUtc2xpZGVyLFxuICAuZmxvLXBvc3RfX3N0eWxlcyAubWVqcy1jb250cm9scyBhLm1lanMtaG9yaXpvbnRhbC12b2x1bWUtc2xpZGVyOmZvY3VzLFxuICAuZmxvLXBvc3RfX3N0eWxlcyAubWVqcy1jb250cm9scyBhLm1lanMtaG9yaXpvbnRhbC12b2x1bWUtc2xpZGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDA7IH1cbiAgLmZsby1wb3N0IC5nYWxsZXJ5LWl0ZW0sIC5mbG8tcG9zdF9fc3R5bGVzIC5nYWxsZXJ5LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbWFyZ2luOiAwIDAgMS41ZW07XG4gICAgcGFkZGluZzogMCAxZW0gMCAwO1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLmZsby1wb3N0IC5nYWxsZXJ5LWNvbHVtbnMtMSAuZ2FsbGVyeS1pdGVtLCAuZmxvLXBvc3RfX3N0eWxlcyAuZ2FsbGVyeS1jb2x1bW5zLTEgLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmZsby1wb3N0IC5nYWxsZXJ5LWNvbHVtbnMtMiAuZ2FsbGVyeS1pdGVtLCAuZmxvLXBvc3RfX3N0eWxlcyAuZ2FsbGVyeS1jb2x1bW5zLTIgLmdhbGxlcnktaXRlbSB7XG4gICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLmZsby1wb3N0IC5nYWxsZXJ5LWl0ZW0gYSxcbiAgLmZsby1wb3N0IC5nYWxsZXJ5LWl0ZW0gYTpob3ZlcixcbiAgLmZsby1wb3N0IC5nYWxsZXJ5LWl0ZW0gYTpmb2N1cywgLmZsby1wb3N0X19zdHlsZXMgLmdhbGxlcnktaXRlbSBhLFxuICAuZmxvLXBvc3RfX3N0eWxlcyAuZ2FsbGVyeS1pdGVtIGE6aG92ZXIsXG4gIC5mbG8tcG9zdF9fc3R5bGVzIC5nYWxsZXJ5LWl0ZW0gYTpmb2N1cyB7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5mbG8tcG9zdCAuZ2FsbGVyeS1pdGVtIGEgaW1nLCAuZmxvLXBvc3RfX3N0eWxlcyAuZ2FsbGVyeS1pdGVtIGEgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtZmlsdGVyIDAuMnMgZWFzZS1pbjtcbiAgICB0cmFuc2l0aW9uOiAtd2Via2l0LWZpbHRlciAwLjJzIGVhc2UtaW47XG4gICAgdHJhbnNpdGlvbjogZmlsdGVyIDAuMnMgZWFzZS1pbjtcbiAgICB0cmFuc2l0aW9uOiBmaWx0ZXIgMC4ycyBlYXNlLWluLCAtd2Via2l0LWZpbHRlciAwLjJzIGVhc2UtaW47XG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5mbG8tcG9zdCAuZ2FsbGVyeS1pdGVtIGE6aG92ZXIgaW1nLFxuICAuZmxvLXBvc3QgLmdhbGxlcnktaXRlbSBhOmZvY3VzIGltZywgLmZsby1wb3N0X19zdHlsZXMgLmdhbGxlcnktaXRlbSBhOmhvdmVyIGltZyxcbiAgLmZsby1wb3N0X19zdHlsZXMgLmdhbGxlcnktaXRlbSBhOmZvY3VzIGltZyB7XG4gICAgLXdlYmtpdC1maWx0ZXI6IG9wYWNpdHkoNjAlKTtcbiAgICBmaWx0ZXI6IG9wYWNpdHkoNjAlKTsgfVxuICAuZmxvLXBvc3QgLmdhbGxlcnktY2FwdGlvbiwgLmZsby1wb3N0X19zdHlsZXMgLmdhbGxlcnktY2FwdGlvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nOiAwIDEwcHggMCAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmZsby1wb3N0IGEgaW1nLCAuZmxvLXBvc3QgaW1nLCAuZmxvLXBvc3QgaW1nLmFsaWdubGVmdCwgLmZsby1wb3N0IGltZy5hbGlnbnJpZ2h0LCAuZmxvLXBvc3QgaW1nLmFsaWduY2VudGVyLCAuZmxvLXBvc3RfX3N0eWxlcyBhIGltZywgLmZsby1wb3N0X19zdHlsZXMgaW1nLCAuZmxvLXBvc3RfX3N0eWxlcyBpbWcuYWxpZ25sZWZ0LCAuZmxvLXBvc3RfX3N0eWxlcyBpbWcuYWxpZ25yaWdodCwgLmZsby1wb3N0X19zdHlsZXMgaW1nLmFsaWduY2VudGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZmxvLXBvc3QsIC5mbG8tcG9zdF9fc3R5bGVzIHtcbiAgICAgIC8qIEdhbGxlcnkgQ29sdW1ucyAqLyB9XG4gICAgICAuZmxvLXBvc3QgZGl2LmdhbGxlcnksIC5mbG8tcG9zdF9fc3R5bGVzIGRpdi5nYWxsZXJ5IHtcbiAgICAgICAgZm9udC1zaXplOiAwcHg7IH1cbiAgICAgIC5mbG8tcG9zdCAuZ2FsbGVyeS1pdGVtLCAuZmxvLXBvc3RfX3N0eWxlcyAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyNSU7IH1cbiAgICAgIC5mbG8tcG9zdCAuZ2FsbGVyeS1jb2x1bW5zLTEgLmdhbGxlcnktaXRlbSwgLmZsby1wb3N0X19zdHlsZXMgLmdhbGxlcnktY29sdW1ucy0xIC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5mbG8tcG9zdCAuZ2FsbGVyeS1jb2x1bW5zLTIgLmdhbGxlcnktaXRlbSwgLmZsby1wb3N0X19zdHlsZXMgLmdhbGxlcnktY29sdW1ucy0yIC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAgICAgLmZsby1wb3N0IC5nYWxsZXJ5LWNvbHVtbnMtMyAuZ2FsbGVyeS1pdGVtLCAuZmxvLXBvc3RfX3N0eWxlcyAuZ2FsbGVyeS1jb2x1bW5zLTMgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIG1heC13aWR0aDogMzMuMzMlOyB9XG4gICAgICAuZmxvLXBvc3QgLmdhbGxlcnktY29sdW1ucy00IC5nYWxsZXJ5LWl0ZW0sIC5mbG8tcG9zdF9fc3R5bGVzIC5nYWxsZXJ5LWNvbHVtbnMtNCAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyNSU7IH1cbiAgICAgIC5mbG8tcG9zdCAuZ2FsbGVyeS1jb2x1bW5zLTUgLmdhbGxlcnktaXRlbSwgLmZsby1wb3N0X19zdHlsZXMgLmdhbGxlcnktY29sdW1ucy01IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgICBtYXgtd2lkdGg6IDIwJTsgfVxuICAgICAgLmZsby1wb3N0IC5nYWxsZXJ5LWNvbHVtbnMtNiAuZ2FsbGVyeS1pdGVtLCAuZmxvLXBvc3RfX3N0eWxlcyAuZ2FsbGVyeS1jb2x1bW5zLTYgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIG1heC13aWR0aDogMTYuNjYlOyB9XG4gICAgICAuZmxvLXBvc3QgLmdhbGxlcnktY29sdW1ucy03IC5nYWxsZXJ5LWl0ZW0sIC5mbG8tcG9zdF9fc3R5bGVzIC5nYWxsZXJ5LWNvbHVtbnMtNyAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxNC4yODUlOyB9XG4gICAgICAuZmxvLXBvc3QgLmdhbGxlcnktY29sdW1ucy04IC5nYWxsZXJ5LWl0ZW0sIC5mbG8tcG9zdF9fc3R5bGVzIC5nYWxsZXJ5LWNvbHVtbnMtOCAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMi41JTsgfVxuICAgICAgLmZsby1wb3N0IC5nYWxsZXJ5LWNvbHVtbnMtOSAuZ2FsbGVyeS1pdGVtLCAuZmxvLXBvc3RfX3N0eWxlcyAuZ2FsbGVyeS1jb2x1bW5zLTkgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIG1heC13aWR0aDogMTEuMTExJTsgfSB9XG5cbi5mbG8tc2VjdGlvbiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuZmxvLXNlY3Rpb25fX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nOiAwIDEuODc1cmVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmZsby1zZWN0aW9uX19kZWNvcmF0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHotaW5kZXg6IC0xOyB9XG4gIC5mbG8tc2VjdGlvbl9fZGVjb3JhdGlvbi0tdG9wLXJpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgcmlnaHQ7IH1cbiAgLmZsby1zZWN0aW9uX19kZWNvcmF0aW9uLS1yaWdodCB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIHJpZ2h0OyB9XG4gIC5mbG8tc2VjdGlvbl9fZGVjb3JhdGlvbi0tYm90dG9tLXJpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gcmlnaHQ7XG4gICAgbGVmdDogaW5pdGlhbDtcbiAgICByaWdodDogMS44NzVyZW07IH1cbiAgLmZsby1zZWN0aW9uX19kZWNvcmF0aW9uLS1ib3R0b20tcmlnaHQtd2l0aG91dC1nYXAge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgfVxuICAuZmxvLXNlY3Rpb25fX3RpdGxlLXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICBwYWRkaW5nOiAyLjVyZW0gMDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMy43NXJlbSk7XG4gICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgICAuZmxvLXNlY3Rpb25fX3RpdGxlLXdyYXBfX3RpdGxlLXdyYXAtLXRvcCB7XG4gICAgICBvcmRlcjogLTE7IH1cbiAgLmZsby1zZWN0aW9uX190aXRsZS13cmFwLS1kaXZpZGVyLWhpZGRlbiB7XG4gICAgYm9yZGVyLXRvcDogMDsgfVxuICAuZmxvLXNlY3Rpb24tLXRpdGxlLXdyYXAtdG9wIC5mbG8tc2VjdGlvbl9fdGl0bGUtd3JhcCB7XG4gICAgb3JkZXI6IC0xOyB9XG4gIC5mbG8tc2VjdGlvbl9faW5zdHJ1Y3Rpb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBmb250LWZhbWlseTogXCJBZG9iZSBDYXNsb24gUHJvXCI7XG4gICAgZm9udC1zaXplOiAwLjVyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNmVtO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC5mbG8tc2VjdGlvbl9fdGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiBcIkJ1dGxlclwiO1xuICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgIGxldHRlci1zcGFjaW5nOiAxLjU2MjVlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHdpZHRoOiA2MCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5mbG8tc2VjdGlvbl9fY291bnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgZm9udC1mYW1pbHk6IFwiQnV0bGVyXCI7XG4gICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgd2lkdGg6IDIwJTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAuZmxvLXNlY3Rpb25fX3Njcm9sbC1kb3duIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjRzLCBmaWx0ZXIgMC40cztcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1LCAwLjU1LCAwLjk1KTtcbiAgICB3aWR0aDogMjAlOyB9XG4gICAgLmZsby1zZWN0aW9uX19zY3JvbGwtZG93bjpob3ZlciB7XG4gICAgICBjb2xvcjogI2U1ZTVlNTsgfVxuICAuZmxvLXNlY3Rpb25fX2hhbWJ1cmdlciB7XG4gICAgd2lkdGg6IDIwJTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmZsby1zZWN0aW9uX190aXRsZS13cmFwLS1jb3VudCAuZmxvLXNlY3Rpb25fX2NvdW50IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gIC5mbG8tc2VjdGlvbl9fdGl0bGUtd3JhcC0tc2Nyb2xsYWJsZSAuZmxvLXNlY3Rpb25fX3Njcm9sbC1kb3duIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gIC5mbG8tc2VjdGlvbl9fdGl0bGUtd3JhcC0tdGl0bGUtc21hbGwgLmZsby1zZWN0aW9uX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAwLjYyNXJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC42ODc1ZW07IH1cbiAgLmZsby1zZWN0aW9uX190aXRsZS13cmFwLS1kaXZpZGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICAgIC5mbG8tc2VjdGlvbl9fdGl0bGUtd3JhcC0tZGl2aWRlciAuZmxvLXNlY3Rpb25fX3RpdGxlIHtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAuZmxvLXNlY3Rpb25fX3RpdGxlLXdyYXAtcGxhY2Vob2xkZXIge1xuICAgIGhlaWdodDogMy4xMjVyZW07IH1cbiAgICAuZmxvLXNlY3Rpb25fX3RpdGxlLXdyYXAtcGxhY2Vob2xkZXItLXRvcCB7XG4gICAgICBvcmRlcjogLTE7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5mbG8tc2VjdGlvbl9fY29udGVudCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDkuMzc1cmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogOS4zNzVyZW07IH1cbiAgICAuZmxvLXNlY3Rpb24tLWZ1bGwtd2lkdGggLmZsby1zZWN0aW9uX19jb250ZW50IHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAuZmxvLXNlY3Rpb24tLXBhZGRpbmctbGFyZ2UgLmZsby1zZWN0aW9uX19jb250ZW50IHtcbiAgICAgIHBhZGRpbmctbGVmdDogMTAuMTI1cmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMTAuMTI1cmVtOyB9XG4gICAgLmZsby1zZWN0aW9uLS1wYWRkaW5nLW1lZGl1bSAuZmxvLXNlY3Rpb25fX2NvbnRlbnQge1xuICAgICAgcGFkZGluZy1sZWZ0OiA2LjM3NXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDYuMzc1cmVtOyB9XG4gICAgLmZsby1zZWN0aW9uLS1wYWRkaW5nLXNtYWxsIC5mbG8tc2VjdGlvbl9fY29udGVudCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDIuNXJlbTsgfVxuICAgIC5mbG8tc2VjdGlvbi0tcGFkZGluZy12ZXJ0aWNhbC1zbWFsbCAuZmxvLXNlY3Rpb25fX2NvbnRlbnQge1xuICAgICAgcGFkZGluZy10b3A6IDIuNXJlbTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07IH1cbiAgICAuZmxvLXNlY3Rpb25fX2RlY29yYXRpb24tLWJvdHRvbS1yaWdodCB7XG4gICAgICByaWdodDogMi41cmVtOyB9XG4gICAgLmZsby1zZWN0aW9uLS1mdWxsLWhlaWdodCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBoZWlnaHQ6IDEwMHZoOyB9XG4gICAgICAuZmxvLXNlY3Rpb24tLWZ1bGwtaGVpZ2h0IC5mbG8tc2VjdGlvbl9fY29udGVudCB7XG4gICAgICAgIGZsZXg6IDE7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgICAuZmxvLXNlY3Rpb24ge1xuICAgICAgcGFkZGluZzogMS44NzVyZW0gMDsgfVxuICAgICAgLmZsby1zZWN0aW9uX19kZWNvcmF0aW9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLmZsby1zZWN0aW9uX190aXRsZS13cmFwIHtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSAwO1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNXJlbSk7IH1cbiAgICAgICAgLmZsby1zZWN0aW9uX190aXRsZS13cmFwLS1zY3JvbGxhYmxlIC5mbG8tc2VjdGlvbl9fc2Nyb2xsLWRvd24ge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIC5mbG8tc2VjdGlvbl9fdGl0bGUge1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41ZW07XG4gICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5mbG8tc2VjdGlvbl9faW5zdHJ1Y3Rpb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAuZmxvLXNlY3Rpb25fX2NvdW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLmZsby1zZWN0aW9uLS1mdWxsLWhlaWdodCB7XG4gICAgICAgIGhlaWdodDogYXV0bzsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmxheW91dC1zZWN0aW9ucy0tc2Nyb2xsLW5vcm1hbCAuZmxvLXNlY3Rpb24tLWZ1bGwtaGVpZ2h0IHtcbiAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAubGF5b3V0LXNlY3Rpb25zLS1zY3JvbGwtbm9ybWFsIC5mbG8tc2VjdGlvbi0tZnVsbC1oZWlnaHQgLmZsby1zZWN0aW9uX19jb250ZW50IHtcbiAgICAgIHBhZGRpbmctdG9wOiA1cmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDVyZW07IH0gfVxuXG4uZmxvLXNvY2lhbC1ibG9jayB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLmZsby1zb2NpYWwtYmxvY2tfX2xpbmsge1xuICAgIGZvbnQtZmFtaWx5OiBcIkJ1dGxlclwiO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMi4yNXJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgICAuZmxvLXNvY2lhbC1ibG9jayB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyLjVyZW07IH0gfVxuXG4uZmxvLXNvY2lhbC1zZWN0aW9uIC5mbG8taW5zdGFncmFtLWltYWdlcyB7XG4gIG1hcmdpbi10b3A6IDIuNXJlbTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5mbG8tc29jaWFsLXNlY3Rpb24gLmZsby1zb2NpYWwtYmxvY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmctbGVmdDogMy44NzVyZW07IH1cbiAgICAuZmxvLXNvY2lhbC1zZWN0aW9uIC5mbG8tc29jaWFsLWJsb2NrOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgLmZsby1zb2NpYWwtc2VjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgLmZsby1zb2NpYWwtc2VjdGlvbi0tb3JkZXItMyB7XG4gICAgICBvcmRlcjogMzsgfSB9XG5cbi5mbG8tc3BsYXNoIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgei1pbmRleDogMTAwMDAwO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5mbG8tc3BsYXNoX19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZmxvLXNwbGFzaF9fY29udGVudC0tbWVkaXVtLXVwIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAuZmxvLXNwbGFzaF9fY29udGVudC0tc21hbGwtb25seSB7XG4gICAgICBvcGFjaXR5OiAwOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gICAgLmZsby1zcGxhc2hfX2NvbnRlbnQtLW1lZGl1bS11cCB7XG4gICAgICBvcGFjaXR5OiAwOyB9XG4gICAgLmZsby1zcGxhc2hfX2NvbnRlbnQtLXNtYWxsLW9ubHkge1xuICAgICAgb3BhY2l0eTogMTsgfSB9XG5cbi5mbG8tcG9wdXAtZ2FsbGVyeSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBhZGRpbmc6IDAgMCA0LjM3NXJlbTsgfVxuICAuZmxvLXBvcHVwLWdhbGxlcnlfX3RvcC13cmFwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBwYWRkaW5nOiAxLjY4NzVyZW0gMi41cmVtOyB9XG4gIC5mbG8tcG9wdXAtZ2FsbGVyeV9fdG9wLXJpZ2h0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmZsby1wb3B1cC1nYWxsZXJ5X190aXRsZSB7XG4gICAgZm9udC1zaXplOiAyLjI4MTI1cmVtO1xuICAgIGZvbnQtZmFtaWx5OiBcIkJ1dGxlclwiO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5mbG8tcG9wdXAtZ2FsbGVyeV9fdGl0bGU6YmVmb3JlIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gIC5mbG8tcG9wdXAtZ2FsbGVyeV9fY2F0ZWdvcmllcyB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAuZmxvLXBvcHVwLWdhbGxlcnlfX2xpbmsge1xuICAgIGZvbnQtZmFtaWx5OiBcIkJ1dGxlclwiO1xuICAgIGZvbnQtc2l6ZTogMC45NzVyZW07XG4gICAgY29sb3I6ICM5NTk1OTU7XG4gICAgcGFkZGluZy1sZWZ0OiAzLjM3NXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuZmxvLXBvcHVwLWdhbGxlcnlfX2xpbms6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgICAuZmxvLXBvcHVwLWdhbGxlcnlfX2xpbms6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzk1OTU5NTsgfVxuICAuZmxvLXBvcHVwLWdhbGxlcnlfX2Nsb3NlIHtcbiAgICBhcHBlYXJhbmNlOiBub25lICFpbXBvcnRhbnQ7XG4gICAgcG9zaXRpb246IGluaXRpYWw7XG4gICAgZm9udC1zaXplOiAxLjYyNXJlbTtcbiAgICBjb2xvcjogIzk1OTU5NTtcbiAgICB3aWR0aDogMy45MDYyNXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC40cywgZmlsdGVyIDAuNHM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7IH1cbiAgLmZsby1wb3B1cC1nYWxsZXJ5IC5mbG8taGVyby0zIHtcbiAgICB3aWR0aDogMTAwdnc7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5mbG8tcG9wdXAtZ2FsbGVyeV9fdGl0bGUge1xuICAgICAgd2lkdGg6IDQwJTsgfVxuICAgIC5mbG8tcG9wdXAtZ2FsbGVyeV9fdG9wLWxlZnQge1xuICAgICAgd2lkdGg6IDMwJTsgfVxuICAgIC5mbG8tcG9wdXAtZ2FsbGVyeV9fdG9wLXJpZ2h0IHtcbiAgICAgIHdpZHRoOiAzMCU7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gICAgLmZsby1wb3B1cC1nYWxsZXJ5X19jbG9zZSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDIuMzc1cmVtO1xuICAgICAgcGFkZGluZy10b3A6IDEuMjVyZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgICAuZmxvLXBvcHVwLWdhbGxlcnlfX3RvcC13cmFwIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHBhZGRpbmctbGVmdDogMS44NzVyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxLjg3NXJlbTsgfVxuICAgIC5mbG8tcG9wdXAtZ2FsbGVyeV9fdG9wLXJpZ2h0IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgbWFyZ2luLXRvcDogMC42MjVyZW07IH0gfVxuXG4ubmV3c2xldHRlci1wb3B1cCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogIzM4MzgzODtcbiAgb3V0bGluZTogbm9uZTtcbiAgcGFkZGluZzogMy43NXJlbSAyLjVyZW07IH1cbiAgLm5ld3NsZXR0ZXItcG9wdXBfX21haW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDMuNzVyZW07IH1cbiAgLm5ld3NsZXR0ZXItcG9wdXBfX2NvbnRlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAubmV3c2xldHRlci1wb3B1cF9fY2xvc2Uge1xuICAgIGFwcGVhcmFuY2U6IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjRzLCBmaWx0ZXIgMC40cztcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1LCAwLjU1LCAwLjk1KTtcbiAgICB0b3A6IDQuMzc1cmVtO1xuICAgIHJpZ2h0OiA0cmVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAgIC5uZXdzbGV0dGVyLXBvcHVwX19jbG9zZTpob3ZlciB7XG4gICAgICBjb2xvcjogI2U1ZTVlNTsgfVxuICAubmV3c2xldHRlci1wb3B1cF9fZGVjb3JhdGlvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgei1pbmRleDogLTE7IH1cbiAgLm5ld3NsZXR0ZXItcG9wdXBfX3RpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAubmV3c2xldHRlci1wb3B1cF9fdGl0bGU6YWZ0ZXIge1xuICAgICAgY29udGVudDogJ3wnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IDEuNjI1cmVtO1xuICAgICAgcGFkZGluZy10b3A6IDEuNzVyZW07IH1cbiAgLm5ld3NsZXR0ZXItcG9wdXAgaW5wdXRbdHlwZV0ge1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgIC5uZXdzbGV0dGVyLXBvcHVwIGlucHV0W3R5cGVdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAubmV3c2xldHRlci1wb3B1cCBpbnB1dFt0eXBlXTo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLm5ld3NsZXR0ZXItcG9wdXAgaW5wdXRbdHlwZV06LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAubmV3c2xldHRlci1wb3B1cCBpbnB1dFt0eXBlXTotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5uZXdzbGV0dGVyLXBvcHVwX19jb250ZW50IHtcbiAgICAgIG1heC13aWR0aDogMjcuMzEyNXJlbTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAgIC5uZXdzbGV0dGVyLXBvcHVwIHtcbiAgICAgIHBhZGRpbmc6IDEuODc1cmVtOyB9XG4gICAgICAubmV3c2xldHRlci1wb3B1cF9fdGl0bGUge1xuICAgICAgICBwYWRkaW5nOiA1cmVtIDAgMS43NXJlbSAwOyB9IH1cblxuLmZsby1wb3J0Zm9saW8tMi0tc2VjdGlvbiB7XG4gIHBhZGRpbmc6IDUuNzVyZW0gMDsgfVxuICAuZmxvLXBvcnRmb2xpby0yLS1zZWN0aW9uIC5mbG8tc2VjdGlvbl9fY29udGVudCB7XG4gICAgZmxleDogMTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmZsby1wb3J0Zm9saW8tMi0tc2VjdGlvbiB7XG4gICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgbWF4LWhlaWdodDogNTYuMjVyZW07XG4gICAgICBtaW4taGVpZ2h0OiA0Ni44NzVyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7IH0gfVxuXG4uZmxvLXBvcnRmb2xpby0yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4OiAxOyB9XG4gIC5mbG8tcG9ydGZvbGlvLTJfX2NhdGVnb3JpZXMge1xuICAgIG1hcmdpbi10b3A6IDQuODEyNXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLmZsby1wb3J0Zm9saW8tMl9fbGluay1ibG9jayB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDEuMzc1cmVtOyB9XG4gICAgLmZsby1wb3J0Zm9saW8tMl9fbGluay1ibG9jazpsYXN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuZmxvLXBvcnRmb2xpby0yX19saW5rIHtcbiAgICBmb250LXNpemU6IDIuMjgxMjVyZW07XG4gICAgZm9udC1mYW1pbHk6IFwiQnV0bGVyXCI7IH1cbiAgICAuZmxvLXBvcnRmb2xpby0yX19saW5rOmJlZm9yZSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDAuNTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmZsby1wb3J0Zm9saW8tMl9faW1nLWRpc3BsYXktaG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgd2lkdGg6IDE1LjYyNXJlbTtcbiAgICAgIGhlaWdodDogMTAuMTI1cmVtO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgei1pbmRleDogLTE7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzLCB2aXNpYmlsaXR5IDAuNHMsIGZpbHRlciAwLjRzO1xuICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7IH1cbiAgICAuZmxvLXBvcnRmb2xpby0yX19pbWctZGlzcGxheS1ob3Zlci0tdG9wLWxlZnQge1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7IH1cbiAgICAuZmxvLXBvcnRmb2xpby0yX19pbWctZGlzcGxheS1ob3Zlci0tdG9wLWxlZnQtYXV0byB7XG4gICAgICB0b3A6IDE3JTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjgxMjVyZW07XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjZzOyB9XG4gICAgLmZsby1wb3J0Zm9saW8tMl9faW1nLWRpc3BsYXktaG92ZXItLXRvcC1yaWdodC1hdXRvIHtcbiAgICAgIHRvcDogNTUlO1xuICAgICAgcmlnaHQ6IDUwJTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC44MTI1cmVtO1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC40czsgfVxuICAgIC5mbG8tcG9ydGZvbGlvLTJfX2ltZy1kaXNwbGF5LWhvdmVyLS1jZW50ZXItcmlnaHQge1xuICAgICAgdG9wOiA0MCU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDFzOyB9XG4gICAgLmZsby1wb3J0Zm9saW8tMl9faW1nLWRpc3BsYXktaG92ZXItLWxlZnQtYm90dG9tIHtcbiAgICAgIGJvdHRvbTogNyU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC44czsgfVxuICAgIC5mbG8tcG9ydGZvbGlvLTJfX2ltZy1kaXNwbGF5LWhvdmVyLS1yaWdodC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuODEyNXJlbTtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDEuMnM7IH1cbiAgICAuZmxvLXBvcnRmb2xpby0yX19saW5rLWNvbnRlbnQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgICAuZmxvLXBvcnRmb2xpby0yX19saW5rLWNvbnRlbnQ6aG92ZXIgLmZsby1wb3J0Zm9saW8tMl9faW1nLWRpc3BsYXktaG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9IH1cblxuLmZsb19zaWRlYmFyIHtcbiAgd2lkdGg6IDI1JTtcbiAgcGFkZGluZy1ib3R0b206IDMuNzVyZW07IH1cbiAgLmZsb19zaWRlYmFyIC5jb2x1bW4sIC5mbG9fc2lkZWJhciAuY29sdW1ucyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMi41cmVtO1xuICAgIHBhZGRpbmc6IDAgMi41cmVtOyB9XG4gICAgLmZsb19zaWRlYmFyIC5jb2x1bW46bGFzdC1jaGlsZCwgLmZsb19zaWRlYmFyIC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuZmxvX3NpZGViYXIgLmZpZ3VyZS1oaWRlLWltZyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5mbG9fc2lkZWJhciAuZmlndXJlLWhpZGUtaW1nIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuZmxvX3NpZGViYXIgLndpZGdldCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5mbG9fc2lkZWJhciB7XG4gICAgICBwYWRkaW5nLXRvcDogMS4wOTM3NXJlbTsgfVxuICAgICAgLmZsb19zaWRlYmFyLS1vbi1sZWZ0IHtcbiAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAgIC5mbG9fc2lkZWJhciB7XG4gICAgICBwYWRkaW5nOiAyLjVyZW0gMS4yNXJlbTtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMy4xMjVyZW07XG4gICAgICByaWdodDogLTEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgdHJhbnNpdGlvbjogcmlnaHQgMC40cywgZmlsdGVyIDAuNHM7XG4gICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1LCAwLjU1LCAwLjk1KTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgICAuZmxvX3NpZGViYXItLWRpc3BsYXkge1xuICAgICAgICByaWdodDogMDsgfSB9XG5cbi8qIEJPRiBXT09DT01NRVJDRSBTVVBQT1JUICovXG4uZmxvLXdvb2NvbW1lcmNlLXdyYXAge1xuICBtYXgtd2lkdGg6IDYyLjVyZW07XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbi53b29jb21tZXJjZSAucXVhbnRpdHkgLnF0eSwgLndvb2NvbW1lcmNlIC5xdWFudGl0eSBpbnB1dFt0eXBlPVwibnVtYmVyXCJdIHtcbiAgd2lkdGg6IDVlbTtcbiAgaGVpZ2h0OiAyLjE4NzVyZW07XG4gIHBhZGRpbmc6IDAuMmVtO1xuICBib3JkZXItY29sb3I6ICNlNWU1ZTU7XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG4ud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLWJyZWFkY3J1bWIgYSB7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDA7IH1cbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1icmVhZGNydW1iIGE6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IDAgM3B4IDA7IH1cblxuLndvb2NvbW1lcmNlIC5jYXJ0IGlucHV0LmJ1dHRvbjpkaXNhYmxlZCB7XG4gIGNvbG9yOiAjZmZmZmZmOyB9XG5cbi53b29jb21tZXJjZSBzcGFuLm9uc2FsZSB7XG4gIHBhZGRpbmc6IDA7IH1cblxuLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgLnByaWNlIGRlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4ud29vY29tbWVyY2UgdWwucHJvZHVjdHMgYS5idXR0b24ge1xuICBwYWRkaW5nOiAwLjZlbSAxZW07IH1cblxuLndvb2NvbW1lcmNlIGRpdi5wcm9kdWN0IC52YXJpYXRpb25zIHRkLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi53b29jb21tZXJjZSBkaXYucHJvZHVjdCAudmFyaWF0aW9ucyAudmFsdWUgc2VsZWN0IHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4ud29vY29tbWVyY2UgZGl2LnByb2R1Y3QgLnZhcmlhdGlvbnMgLnJlc2V0X3ZhcmlhdGlvbnMge1xuICBib3gtc2hhZG93OiAwIDFweCAwOyB9XG4gIC53b29jb21tZXJjZSBkaXYucHJvZHVjdCAudmFyaWF0aW9ucyAucmVzZXRfdmFyaWF0aW9uczpob3ZlciB7XG4gICAgYm94LXNoYWRvdzogMCAzcHggMDsgfVxuXG4ud29vY29tbWVyY2UgZGl2LnByb2R1Y3QgLnByb2R1Y3RfbWV0YSBhIHtcbiAgYm94LXNoYWRvdzogMCAxcHggMDsgfVxuICAud29vY29tbWVyY2UgZGl2LnByb2R1Y3QgLnByb2R1Y3RfbWV0YSBhOmhvdmVyIHtcbiAgICBib3gtc2hhZG93OiAwIDNweCAwOyB9XG5cbi53b29jb21tZXJjZSBkaXYucHJvZHVjdCAucHJvZHVjdF9tZXRhIC50YWdnZWRfYXMge1xuICBjbGVhcjogYm90aDtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLndvb2NvbW1lcmNlIGRpdi5wcm9kdWN0IC5yZWxhdGVkIGgyIHtcbiAgbWFyZ2luLWJvdHRvbTogMC45Mzc1cmVtOyB9XG5cbi53b29jb21tZXJjZSBkaXYucHJvZHVjdCAud29vY29tbWVyY2UtdGFicyBsaS5hY3RpdmUgYSwgLndvb2NvbW1lcmNlIGRpdi5wcm9kdWN0IC53b29jb21tZXJjZS10YWJzIGE6aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDNweCAwOyB9XG5cbi53b29jb21tZXJjZSBkaXYucHJvZHVjdCAud29vY29tbWVyY2UtdGFicyBhIHtcbiAgYm94LXNoYWRvdzogMCAxcHggMDsgfVxuXG4ud29vY29tbWVyY2UgZGl2LnByb2R1Y3QgLndvb2NvbW1lcmNlLXRhYnMgLnBhbmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogNGVtOyB9XG5cbi53b29jb21tZXJjZSBkaXYucHJvZHVjdCAud29vY29tbWVyY2UtdGFicyB1bC50YWJzIHtcbiAgYm9yZGVyOiAwcHg7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBwYWRkaW5nLWxlZnQ6IDVweDsgfVxuICAud29vY29tbWVyY2UgZGl2LnByb2R1Y3QgLndvb2NvbW1lcmNlLXRhYnMgdWwudGFiczpiZWZvcmUge1xuICAgIGJvcmRlcjogMHB4OyB9XG4gIC53b29jb21tZXJjZSBkaXYucHJvZHVjdCAud29vY29tbWVyY2UtdGFicyB1bC50YWJzIGxpIHtcbiAgICBib3JkZXI6IDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC53b29jb21tZXJjZSBkaXYucHJvZHVjdCAud29vY29tbWVyY2UtdGFicyB1bC50YWJzIGxpLmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC53b29jb21tZXJjZSBkaXYucHJvZHVjdCAud29vY29tbWVyY2UtdGFicyB1bC50YWJzIGxpOmJlZm9yZSwgLndvb2NvbW1lcmNlIGRpdi5wcm9kdWN0IC53b29jb21tZXJjZS10YWJzIHVsLnRhYnMgbGk6YWZ0ZXIge1xuICAgICAgYm9yZGVyOiAwcHg7XG4gICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLndvb2NvbW1lcmNlIGRpdi5wcm9kdWN0IC53b29jb21tZXJjZS10YWJzIHVsLnRhYnMgbGk6Zmlyc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi53b29jb21tZXJjZSAuY2hlY2tvdXQgI2N1c3RvbWVyX2RldGFpbHMge1xuICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTsgfVxuXG4ud29vY29tbWVyY2UgcC53b29jb21tZXJjZS10aGFua3lvdS1vcmRlci1yZWNlaXZlZCB7XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW0gIWltcG9ydGFudDsgfVxuXG4ud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLXRoYW5reW91LW9yZGVyLWRldGFpbHMge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDIuNXJlbTsgfVxuICAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLXRoYW5reW91LW9yZGVyLWRldGFpbHMgbGkge1xuICAgIGxpc3Qtc3R5bGU6IGRpc2M7XG4gICAgYm9yZGVyLXJpZ2h0OiAwcHg7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgICAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLXRoYW5reW91LW9yZGVyLWRldGFpbHMgbGkgc3Ryb25nIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4ud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLU15QWNjb3VudC1jb250ZW50IC5hZGRyZXNzZXMge1xuICBtYXJnaW4tdG9wOiAxLjg3NXJlbTsgfVxuXG4ud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLU15QWNjb3VudC1jb250ZW50IC53b29jb21tZXJjZS1NZXNzYWdlIGJyIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIC5pcy1hY3RpdmUgYSB7XG4gIGJveC1zaGFkb3c6IDAgM3B4IDA7IH1cbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiAuaXMtYWN0aXZlIGE6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IDAgM3B4IDA7IH1cblxuLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiBhOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMCAxcHggMDsgfVxuXG4ud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLUFkZHJlc3MtdGl0bGUgLmVkaXQge1xuICBjbGVhcjogYm90aDtcbiAgbWFyZ2luLXRvcDogMS44NzVyZW07XG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDA7IH1cbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1BZGRyZXNzLXRpdGxlIC5lZGl0OmhvdmVyIHtcbiAgICBib3gtc2hhZG93OiAwIDNweCAwOyB9XG5cbi53b29jb21tZXJjZSAub3JkZXJfZGV0YWlscyAucHJvZHVjdC1uYW1lIGEge1xuICBib3gtc2hhZG93OiAwIDFweCAwOyB9XG4gIC53b29jb21tZXJjZSAub3JkZXJfZGV0YWlscyAucHJvZHVjdC1uYW1lIGE6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IDAgM3B4IDA7IH1cblxuLndvb2NvbW1lcmNlIC5vcmRlcl9kZXRhaWxzIGxpIHtcbiAgYm9yZGVyLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4ud29vY29tbWVyY2UgLmFjdGlvbnMgLmNvdXBvbiBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgaGVpZ2h0OiAyLjYyNXJlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7IH1cblxuLndvb2NvbW1lcmNlIC5hY3Rpb25zIHAge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7IH1cblxuLndvb2NvbW1lcmNlIC5hY3Rpb25zIGlucHV0LmJ1dHRvblt0eXBlPVwic3VibWl0XCJdIHtcbiAgaGVpZ2h0OiAyLjYyNXJlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTE1MTUxOyB9XG5cbi53b29jb21tZXJjZSBmb3JtIHAsIC53b29jb21tZXJjZSB0YWJsZSBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7IH1cblxuLndvb2NvbW1lcmNlIC5vcmRlci1udW1iZXIgYSBiciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLndvb2NvbW1lcmNlICNjb3Vwb25fY29kZSB7XG4gIG1pbi13aWR0aDogMTVlbTtcbiAgaGVpZ2h0OiAyLjU1cmVtOyB9XG5cbi53b29jb21tZXJjZSAuYnV0dG9uIGJyIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ud29vY29tbWVyY2UgLnNpbmdsZV9hZGRfdG9fY2FydF9idXR0b24uYnV0dG9uLCAud29vY29tbWVyY2UgLnNpbmdsZV9hZGRfdG9fY2FydF9idXR0b24uYnV0dG9uLmRpc2FibGVkIHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNWVtOyB9XG5cbi53b29jb21tZXJjZSAud2MtcHJvY2VlZC10by1jaGVja291dCBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG5cbi53b29jb21tZXJjZSAud2MtcHJvY2VlZC10by1jaGVja291dCAuY2hlY2tvdXQtYnV0dG9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG5cbi53b29jb21tZXJjZSBpbnB1dFt0eXBlPSdzdWJtaXQnXSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi8qIEVPRiBXT09DT01NRVJDRSBTVVBQT1JUICovXG4uYWJvdXQtcGFnZS0tb3ZlcnZpZXctc2VjdGlvbiB7XG4gIHBhZGRpbmctdG9wOiA1Ljc1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogNS43NXJlbTsgfVxuXG4uYWJvdXQtcGFnZS0tbGlua3Mtc2VjdGlvbiB7XG4gIHBhZGRpbmctYm90dG9tOiAzLjg3NXJlbTsgfVxuXG4uYWJvdXQtcGFnZS0tbGlua3Mtd2l0aC1pbWctc2VjdGlvbiB7XG4gIHBhZGRpbmctYm90dG9tOiA1LjVyZW07IH1cbiAgLmFib3V0LXBhZ2UtLWxpbmtzLXdpdGgtaW1nLXNlY3Rpb24gLmZsby1zZWN0aW9uX19kZWNvcmF0aW9uIHtcbiAgICB0b3A6IDUuNXJlbTsgfVxuXG4uYWJvdXQtcGFnZS0tYWR2ZXJ0aXNlLXNlY3Rpb24ge1xuICBwYWRkaW5nLWJvdHRvbTogNS4zNzVyZW07IH1cbiAgLmFib3V0LXBhZ2UtLWFkdmVydGlzZS1zZWN0aW9uIC5yb3cge1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmFib3V0LXBhZ2UtLXNjaGVkdWxlLXNlY3Rpb24ge1xuICAgIHBhZGRpbmctYm90dG9tOiA2Ljg3NXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAuYWJvdXQtcGFnZS0tc2NoZWR1bGUtc2VjdGlvbiB7XG4gICAgcGFkZGluZy1ib3R0b206IDMuMTI1cmVtOyB9IH1cblxuLmJvZHlfaGFzX3NpZGViYXIgLmZsby1pY29uX19zaWRlYmFyIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLmZsb19zaWRlYmFyLS1hY3RpdmUge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmZsby1jYXJkLTEtbGlzdCAuY29sdW1uLCAuZmxvLWNhcmQtMS1saXN0IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nOiAwIDNyZW07IH1cbiAgLmZsby1jYXJkLTEtbGlzdCAucm93IHtcbiAgICBtYXJnaW46IDAgLTNyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgLmZsby1jYXJkLTEtbGlzdCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIC5mbG8tY2FyZC0xLWxpc3QgLmNvbHVtbiwgLmZsby1jYXJkLTEtbGlzdCAuY29sdW1ucyB7XG4gICAgICBtYXJnaW4tdG9wOiAzLjc1cmVtOyB9XG4gICAgICAuZmxvLWNhcmQtMS1saXN0IC5jb2x1bW46Zmlyc3Qtb2YtdHlwZSwgLmZsby1jYXJkLTEtbGlzdCAuY29sdW1uczpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmZsby1jYXJkLTItbGlzdCAuY29sdW1uLCAuZmxvLWNhcmQtMi1saXN0IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nOiAwIDEuMzEyNXJlbTsgfVxuICAuZmxvLWNhcmQtMi1saXN0IC5yb3cge1xuICAgIG1hcmdpbjogMCAtMS4zMTI1cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gIC5mbG8tY2FyZC0yLWxpc3Qge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAuZmxvLWNhcmQtMi1saXN0IC5jb2x1bW4sIC5mbG8tY2FyZC0yLWxpc3QgLmNvbHVtbnMge1xuICAgICAgbWFyZ2luLXRvcDogMy43NXJlbTsgfVxuICAgICAgLmZsby1jYXJkLTItbGlzdCAuY29sdW1uOmZpcnN0LW9mLXR5cGUsIC5mbG8tY2FyZC0yLWxpc3QgLmNvbHVtbnM6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7IH0gfVxuXG4uZmxvLWdyaWQtMiB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5mbG8tZ3JpZC0yIC5jb2x1bW4sIC5mbG8tZ3JpZC0yIC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDguNDY4NzVyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5mbG8tZ3JpZC0yX19yb3cge1xuICAgICAgbWF4LXdpZHRoOiA0Ni44NzVyZW07XG4gICAgICBtYXJnaW46IDAgYXV0bzsgfSB9XG5cbi5mbG8tZ3JpZCAuY29sdW1uLCAuZmxvLWdyaWQgLmNvbHVtbnMge1xuICBtYXJnaW4tYm90dG9tOiA2LjE1NjI1cmVtOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmZsby1ncmlkIC5jb2x1bW4sIC5mbG8tZ3JpZCAuY29sdW1ucyB7XG4gICAgcGFkZGluZzogMCAyLjMxMjVyZW07IH1cbiAgLmZsby1ncmlkIC5yb3cge1xuICAgIG1hcmdpbjogMCAtMi4zMTI1cmVtOyB9IH1cblxuLmZsby1pY29uLW1vdXNlLXNjcm9sbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEuNXJlbTtcbiAgaGVpZ2h0OiAyLjVyZW07XG4gIHRvcDogNTAlO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMS41NjI1cmVtOyB9XG4gIC5mbG8taWNvbi1tb3VzZS1zY3JvbGw6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiAwLjI1cmVtO1xuICAgIGhlaWdodDogMC4zNzVyZW07XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBtYXJnaW4tbGVmdDogLTAuMTI1cmVtO1xuICAgIHRvcDogMC41cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjVzO1xuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBzY3JvbGw7IH1cblxuQGtleWZyYW1lcyBzY3JvbGwge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcmVtKTsgfSB9XG5cbi5mbG8taGVhZGVyLWFuZC1mbG8tcGFnZS1oZXJvIHtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAuZmxvLWhlYWRlci1hbmQtZmxvLXBhZ2UtaGVyby0taGVhZGVyLXRvcCAuZmxvLWhlYWRlcixcbiAgLmZsby1oZWFkZXItYW5kLWZsby1wYWdlLWhlcm8tLWhlYWRlci10b3AgLnN0aWNreS13cmFwcGVyIHtcbiAgICBvcmRlcjogLTE7IH1cbiAgLmZsby1oZWFkZXItYW5kLWZsby1wYWdlLWhlcm86bm90KC5mbG8taGVhZGVyLWFuZC1mbG8tcGFnZS1oZXJvLS1oZWFkZXItdG9wKSAuZmxvLWhlYWRlcl9fbWVudSA+IHVsID4gLm1lbnUtaXRlbSA+IHVsLFxuICAuZmxvLWhlYWRlci1hbmQtZmxvLXBhZ2UtaGVybzpub3QoLmZsby1oZWFkZXItYW5kLWZsby1wYWdlLWhlcm8tLWhlYWRlci10b3ApIC5mbG8taGVhZGVyX19tZW51ID4gZGl2ID4gdWwgPiAubWVudS1pdGVtID4gdWwge1xuICAgIHRvcDogaW5pdGlhbDtcbiAgICBib3R0b206IDEwMCU7IH1cbiAgLmZsby1oZWFkZXItYW5kLWZsby1wYWdlLWhlcm8gLmZsby1wYWdlLWhlcm8ge1xuICAgIGZsZXg6IDE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5mbG8taGVhZGVyLWFuZC1mbG8tcGFnZS1oZXJvIC5mbG8tc2VjdGlvbl9fdGl0bGUtd3JhcC0tcGFnZS1oZXJvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBjb2xvcjogd2hpdGU7IH1cbiAgLmZsby1oZWFkZXItYW5kLWZsby1wYWdlLWhlcm8gLmZsby1zZWN0aW9uX19oYW1idXJnZXIge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLmZsby1oZWFkZXItYW5kLWZsby1wYWdlLWhlcm8gLmZsby1zZWN0aW9uX19zY3JvbGwtZG93biB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYW5pbWF0aW9uOiA0cyBzY3JvbGxkb3duIGluZmluaXRlOyB9XG5cbkBrZXlmcmFtZXMgc2Nyb2xsZG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDUwJSk7IH0gfVxuICAuZmxvLWhlYWRlci1hbmQtZmxvLXBhZ2UtaGVyb19fc2xpZGVyLFxuICAuZmxvLWhlYWRlci1hbmQtZmxvLXBhZ2UtaGVyb19fc2xpZGVyIC5zbGljay1saXN0LFxuICAuZmxvLWhlYWRlci1hbmQtZmxvLXBhZ2UtaGVyb19fc2xpZGVyIC5zbGljay10cmFjayB7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5mbG8taGVhZGVyLWFuZC1mbG8tcGFnZS1oZXJvX19zbGlkZS1jb250ZW50IHtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gICAgLmZsby1oZWFkZXItYW5kLWZsby1wYWdlLWhlcm8gLmZsby1zZWN0aW9uX190aXRsZS13cmFwIHtcbiAgICAgIHBhZGRpbmc6IDIuNXJlbSAwOyB9IH1cblxuLmZsby1pbnN0YWdyYW0taW1hZ2VzX19zbGlkZXIge1xuICBwYWRkaW5nOiAwIDEuODc1cmVtO1xuICBtYXJnaW46IDA7IH1cbiAgLmZsby1pbnN0YWdyYW0taW1hZ2VzX19zbGlkZXIgLmZsby1pY29uX19hcnJvdy1sZWZ0IHtcbiAgICBsZWZ0OiAwOyB9XG4gIC5mbG8taW5zdGFncmFtLWltYWdlc19fc2xpZGVyIC5mbG8taWNvbl9fYXJyb3ctcmlnaHQge1xuICAgIHJpZ2h0OiAwOyB9XG5cbi5mbG8taW5zdGFncmFtLXdpdGgtZm9ybSB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5mbG8taW5zdGFncmFtLXdpdGgtZm9ybSAucm93IHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZmxvLWluc3RhZ3JhbS13aXRoLWZvcm0gLmZsby1mb3JtIHtcbiAgICAgIG1hcmdpbi10b3A6IDEuMzc1cmVtO1xuICAgICAgcGFkZGluZzogMCAzLjg3NXJlbTsgfVxuICAgIC5mbG8taW5zdGFncmFtLXdpdGgtZm9ybSAuY29sdW1uLCAuZmxvLWluc3RhZ3JhbS13aXRoLWZvcm0gLmNvbHVtbnMge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyLjVyZW07IH1cbiAgICAgIC5mbG8taW5zdGFncmFtLXdpdGgtZm9ybSAuY29sdW1uOmxhc3Qtb2YtdHlwZSwgLmZsby1pbnN0YWdyYW0td2l0aC1mb3JtIC5jb2x1bW5zOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAgIC5mbG8taW5zdGFncmFtLXdpdGgtZm9ybSAucm93IHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfVxuICAgIC5mbG8taW5zdGFncmFtLXdpdGgtZm9ybSAuY29sdW1uLCAuZmxvLWluc3RhZ3JhbS13aXRoLWZvcm0gLmNvbHVtbnMge1xuICAgICAgbWFyZ2luLXRvcDogMy40Mzc1cmVtOyB9XG4gICAgICAuZmxvLWluc3RhZ3JhbS13aXRoLWZvcm0gLmNvbHVtbjpsYXN0LW9mLXR5cGUsIC5mbG8taW5zdGFncmFtLXdpdGgtZm9ybSAuY29sdW1uczpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAwOyB9XG4gICAgLmZsby1pbnN0YWdyYW0td2l0aC1mb3JtIC5mbG8tc2hjb2RlLWluc3RnbS1jb250YWluZXIgYSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbi5mbG8tcGFnZS1oYXMtc2lkZWJhci0tbWFyZ2luLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IDMuNzVyZW07IH1cblxuLmZsby1wYWdlLWhhcy1zaWRlYmFyX19jb2x1bW4ge1xuICBtYXJnaW4tYm90dG9tOiAyLjVyZW07XG4gIHBhZGRpbmc6IDAgMi41cmVtOyB9XG4gIC5mbG8tcGFnZS1oYXMtc2lkZWJhcl9fY29sdW1uOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmZsby1wYWdlLWhhcy1zaWRlYmFyIC5maWd1cmUtaGlkZS1pbWcge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0bzsgfVxuICAuZmxvLXBhZ2UtaGFzLXNpZGViYXIgLmZpZ3VyZS1oaWRlLWltZyBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmZsby1wYWdlLWhhcy1zaWRlYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gICAgLmZsby1wYWdlLWhhcy1zaWRlYmFyX19tYWluIHtcbiAgICAgIHdpZHRoOiA3NSU7IH1cbiAgICAuZmxvLXBhZ2UtaGFzLXNpZGViYXJfX3NpZGViYXIge1xuICAgICAgd2lkdGg6IDI1JTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAuZmxvLXBhZ2UtaGFzLXNpZGViYXJfX3NpZGViYXIge1xuICAgIHBhZGRpbmc6IDMuNzVyZW0gMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAzLjEyNXJlbTtcbiAgICByaWdodDogLTEwMCU7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgdHJhbnNpdGlvbjogcmlnaHQgMC40cywgZmlsdGVyIDAuNHM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5mbG8tcGFnZS1oYXMtc2lkZWJhciAuc2lkZWJhci1kaXNwbGF5IHtcbiAgICByaWdodDogMDsgfSB9XG5cbi5mbG8tc2VjdGlvbi0tZmlyc3Qtam91cm5hbC0zLWNhcmQge1xuICBwYWRkaW5nLXRvcDogNy4xMjVyZW07IH1cblxuLmZsby1zZWN0aW9uLS1qb3VybmFsLTMtY2FyZCB7XG4gIHBhZGRpbmctYm90dG9tOiA5LjVyZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuZmxvX3Bvc3RfcGFnZSAuZmxvLWJsb2NrLXRpdGxlLXdyYXAsXG4gIC5mbG9fcG9zdF9wYWdlIC5mbG8tcG9zdCxcbiAgLmZsb19wb3N0X3BhZ2UgLmNvbW1lbnRzLWJsb2NrIHtcbiAgICB3aWR0aDogNDYuODc1cmVtO1xuICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gIC5mbG9fcG9zdF9wYWdlIC5mbG8tcG9zdC1mb3JtIHtcbiAgICB3aWR0aDogMzEuMjVyZW07XG4gICAgbWFyZ2luOiAwIGF1dG87IH0gfVxuXG4uZmxvLXNlY3Rpb24tLXBvc3QtY29tbWVudHMge1xuICBwYWRkaW5nLXRvcDogNC42MjVyZW07IH1cblxuLmZsby1zZWN0aW9uLS1wb3N0LWZvcm0ge1xuICBwYWRkaW5nLXRvcDogMy43NXJlbTsgfVxuXG4uZmxvLWltZy10ZXh0IC5pbWFnZS13cmFwcGVyIHAge1xuICBtYXJnaW46IDBweCAhaW1wb3J0YW50OyB9XG5cbi5jb3Ntby1ib3gge1xuICBwYWRkaW5nOiA4cHggMTBweDsgfVxuXG4uY29zbW8tdGFicyAuY29zbW8tbmF2IGxpIGEsIC5jb3Ntby10YWJzIC51aS10YWJzLWFjdGl2ZSBhIHtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cblxuLmZsby1zZWN0aW9uLS1qb3VybmFsLWdyaWQtc2VjdGlvbiB7XG4gIHBhZGRpbmctdG9wOiA1LjQwNjI1cmVtOyB9XG5cbi5wYWdlLWRlZmF1bHQgYm9keSAuZmxvLXNlY3Rpb25fX3RpdGxlLXdyYXAge1xuICBvcmRlcjogLTE7IH1cblxuLmZsby1zZWN0aW9uLS1wb3J0Zm9saW8tMS10aXRsZSB7XG4gIHBhZGRpbmctdG9wOiAzLjM3NXJlbTsgfVxuXG4uZmxvLXNlY3Rpb24tLXBvcnRmb2xpby0xLWZpcnN0LWNhdGVnb3J5IHtcbiAgcGFkZGluZy10b3A6IDIuMjgxMjVyZW07IH1cblxuLmZsby1zZWN0aW9uLS1wb3J0Zm9saW8tMi1jYXRlZ29yeSB7XG4gIHBhZGRpbmctdG9wOiA1LjVyZW07IH1cblxuLmZsby1zZWN0aW9uLS1wb3J0Zm9saW8tMi1sYXN0LWNhdGVnb3J5IHtcbiAgcGFkZGluZy1ib3R0b206IDcuMTg3NXJlbTsgfVxuXG4uZmxvLXNlY3Rpb24tLXBvcnRmb2xpby1wb3N0IHtcbiAgcGFkZGluZy10b3A6IDIuNXJlbTsgfVxuXG4uZmxvLXNlY3Rpb24tLXBvcnRmb2xpby1jYXJkcyB7XG4gIHBhZGRpbmctdG9wOiAxMC4zMTI1cmVtOyB9XG5cbi5mbG8tc2VjdGlvbi0tcG9ydGZvbGlvLWxhc3Qtc2VjdGlvbiB7XG4gIHBhZGRpbmctYm90dG9tOiA4LjEyNXJlbTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5mbG8tc2VjdGlvbi0tcG9ydGZvbGlvLWdyaWQtaW1hZ2VzIHtcbiAgICBwYWRkaW5nLXRvcDogNC4wNjI1cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gIC5mbG8tc2VjdGlvbi0tcG9ydGZvbGlvLWdyaWQtaW1hZ2VzIHtcbiAgICBwYWRkaW5nLXRvcDogMS44NzVyZW07IH0gfVxuXG4uZmxvLWFib3V0LWJsb2NrIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5mbG8tYWJvdXQtYmxvY2tfX2RlY29yYXRpb24ge1xuICAgIG1heC13aWR0aDogMy41cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvIDEuODc1cmVtOyB9XG4gIC5mbG8tYWJvdXQtYmxvY2tfX2ltZyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmZsby1hYm91dC1ibG9ja19fdGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiBcIk1hbGFya2V5XCI7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmZsby1hYm91dC1ibG9ja19fY29udGVudC10ZXh0IHtcbiAgICBmb250LWZhbWlseTogXCJBZG9iZSBDYXNsb24gUHJvXCI7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5mbG8tYWJvdXQtYmxvY2sge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAgICAgLmZsby1hYm91dC1ibG9ja19fdGV4dCB7XG4gICAgICAgIHBhZGRpbmc6IDAgMS44NzVyZW07IH1cbiAgICAgIC5mbG8tYWJvdXQtYmxvY2tfX2l0ZW0taW1nIHtcbiAgICAgICAgd2lkdGg6IDM0JTsgfVxuICAgICAgLmZsby1hYm91dC1ibG9ja19faXRlbS10ZXh0IHtcbiAgICAgICAgd2lkdGg6IDY2JTsgfVxuICAgICAgLmZsby1hYm91dC1ibG9ja19fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDYuODEyNXJlbTsgfVxuICAgICAgLmZsby1hYm91dC1ibG9ja19fY29udGVudC10ZXh0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMy43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiAyNXJlbTsgfVxuICAgICAgLmZsby1hYm91dC1ibG9ja19faW1nIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiAzNC4yNXJlbTtcbiAgICAgICAgbWF4LWhlaWdodDogNDEuMjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH1cbiAgICAgICAgLmZsby1hYm91dC1ibG9ja19faW1nIGltZyB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAgIC5mbG8tYWJvdXQtYmxvY2sge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgICAgLmZsby1hYm91dC1ibG9ja19faW1nIHtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gICAgICAuZmxvLWFib3V0LWJsb2NrX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMy42MjVyZW07IH1cbiAgICAgIC5mbG8tYWJvdXQtYmxvY2tfX2NvbnRlbnQtdGV4dCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEuODc1cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgIC5mbG8tYWJvdXQtYmxvY2tfX3RleHQge1xuICAgICAgICBtYXJnaW4tdG9wOiAyLjVyZW07IH0gfVxuXG4uZmxvLXNlY3Rpb24tLWNvbnRhY3QtYmxvY2sgLmZsby1mb290ZXJfX2JvdHRvbSB7XG4gIG1hcmdpbi10b3A6IDA7IH1cblxuLmZsby1hLXRleHQtd2l0aC1pbWFnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuZmxvLWEtdGV4dC13aXRoLWltYWdlX19pbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5mbG8tYS10ZXh0LXdpdGgtaW1hZ2VfX3RpdHRsZS1vZmZzZXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiA1OyB9XG4gIC5mbG8tYS10ZXh0LXdpdGgtaW1hZ2VfX2NvbnRlbnQtdGl0bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5mbG8tYS10ZXh0LXdpdGgtaW1hZ2VfX2RhdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5mbG8tYS10ZXh0LXdpdGgtaW1hZ2VfX3RleHQtbGluZS1sZWZ0IC5mbG8tYS10ZXh0LXdpdGgtaW1hZ2VfX2RhdGUge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgLmZsby1hLXRleHQtd2l0aC1pbWFnZV9fdGV4dC1saW5lLWxlZnQgLmZsby1hLXRleHQtd2l0aC1pbWFnZV9fY29udGVudC10ZXh0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuZmxvLWEtdGV4dC13aXRoLWltYWdlX190ZXh0LWxpbmUtbGVmdCAuZmxvLWEtdGV4dC13aXRoLWltYWdlX19jb250ZW50LXRleHQ6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICfilIAnO1xuICAgICAgd2lkdGg6IDIuNXJlbTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5mbG8tYS10ZXh0LXdpdGgtaW1hZ2Uge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAgICAgLmZsby1hLXRleHQtd2l0aC1pbWFnZV9faXRlbSB7XG4gICAgICAgIHdpZHRoOiA1MCU7IH1cbiAgICAgIC5mbG8tYS10ZXh0LXdpdGgtaW1hZ2VfX2RhdGUge1xuICAgICAgICBtYXgtd2lkdGg6IDExLjg3NXJlbTsgfVxuICAgICAgLmZsby1hLXRleHQtd2l0aC1pbWFnZV9fdGV4dCB7XG4gICAgICAgIHBhZGRpbmc6IDAgMi41cmVtOyB9XG4gICAgICAuZmxvLWEtdGV4dC13aXRoLWltYWdlX19jb250ZW50LXRleHQge1xuICAgICAgICBtYXJnaW4tdG9wOiA0Ljg3NXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgICAgICAgbWF4LXdpZHRoOiAyNXJlbTsgfVxuICAgICAgLmZsby1hLXRleHQtd2l0aC1pbWFnZV9fdGl0dGxlLW9mZnNldCB7XG4gICAgICAgIGxlZnQ6IC01cmVtOyB9XG4gICAgICAuZmxvLWEtdGV4dC13aXRoLWltYWdlX19pbWcge1xuICAgICAgICBoZWlnaHQ6IDI2Ljc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XG4gICAgICAgIC5mbG8tYS10ZXh0LXdpdGgtaW1hZ2VfX2ltZyBpbWcge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIC5mbG8tYS10ZXh0LXdpdGgtaW1hZ2VfX3RleHQtbGluZS1sZWZ0IC5mbG8tYS10ZXh0LXdpdGgtaW1hZ2VfX2RhdGUge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDMuNzVyZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQuMDYyNXJlbTsgfVxuICAgICAgLmZsby1hLXRleHQtd2l0aC1pbWFnZV9fdGV4dC1saW5lLWxlZnQgLmZsby1hLXRleHQtd2l0aC1pbWFnZV9fY29udGVudC10ZXh0IHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzLjc1cmVtOyB9XG4gICAgICAgIC5mbG8tYS10ZXh0LXdpdGgtaW1hZ2VfX3RleHQtbGluZS1sZWZ0IC5mbG8tYS10ZXh0LXdpdGgtaW1hZ2VfX2NvbnRlbnQtdGV4dDpiZWZvcmUge1xuICAgICAgICAgIHdpZHRoOiAzLjc1cmVtO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgLmZsby1hLXRleHQtd2l0aC1pbWFnZV9fY29udGVudC10aXRsZSB7XG4gICAgICAgIG1heC13aWR0aDogOTglOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gICAgLmZsby1hLXRleHQtd2l0aC1pbWFnZSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgcGFkZGluZy10b3A6IDEuMjVyZW07IH1cbiAgICAgIC5mbG8tYS10ZXh0LXdpdGgtaW1hZ2VfX2l0ZW0ge1xuICAgICAgICBtYXJnaW4tdG9wOiAxLjg3NXJlbTsgfVxuICAgICAgICAuZmxvLWEtdGV4dC13aXRoLWltYWdlX19pdGVtOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgICAgIC5mbG8tYS10ZXh0LXdpdGgtaW1hZ2VfX2NvbnRlbnQtdGl0bGUge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNTYyNXJlbTsgfVxuICAgICAgLmZsby1hLXRleHQtd2l0aC1pbWFnZV9fZGF0ZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgLmZsby1hLXRleHQtd2l0aC1pbWFnZSAuc3RpY2t5IHtcbiAgICAgICAgcG9zaXRpb246IGluaXRpYWwgIWltcG9ydGFudDsgfSB9XG5cbi5mbG8tYi10ZXh0LXdpdGgtaW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLmZsby1iLXRleHQtd2l0aC1pbWFnZV9faW1nIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuZmxvLWItdGV4dC13aXRoLWltYWdlX190aXR0bGUtb2Zmc2V0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogOTsgfVxuICAuZmxvLWItdGV4dC13aXRoLWltYWdlX19jb250ZW50LXRleHQge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5mbG8tYi10ZXh0LXdpdGgtaW1hZ2Uge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAgICAgLmZsby1iLXRleHQtd2l0aC1pbWFnZV9fdGV4dCB7XG4gICAgICAgIHBhZGRpbmc6IDAgMS44NzVyZW07IH1cbiAgICAgIC5mbG8tYi10ZXh0LXdpdGgtaW1hZ2VfX2l0ZW0ge1xuICAgICAgICB3aWR0aDogNTAlOyB9XG4gICAgICAuZmxvLWItdGV4dC13aXRoLWltYWdlX19pdGVtLS1pbWcge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2LjI1cmVtOyB9XG4gICAgICAuZmxvLWItdGV4dC13aXRoLWltYWdlX190aXR0bGUtb2Zmc2V0IHtcbiAgICAgICAgbGVmdDogLTkuNXJlbTsgfVxuICAgICAgLmZsby1iLXRleHQtd2l0aC1pbWFnZV9fdGl0dGxlIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAgICAgLmZsby1iLXRleHQtd2l0aC1pbWFnZV9fYnRuIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMi4xODc1cmVtOyB9XG4gICAgICAuZmxvLWItdGV4dC13aXRoLWltYWdlX19jb250ZW50LXRleHQge1xuICAgICAgICBtYXJnaW4tdG9wOiAxLjg3NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiAyNXJlbTsgfVxuICAgICAgLmZsby1iLXRleHQtd2l0aC1pbWFnZV9faW1nIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiAzMS41NjI1cmVtO1xuICAgICAgICBtYXgtaGVpZ2h0OiA0Ny41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XG4gICAgICAgIC5mbG8tYi10ZXh0LXdpdGgtaW1hZ2VfX2ltZyBpbWcge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgICAuZmxvLWItdGV4dC13aXRoLWltYWdlIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAgIC5mbG8tYi10ZXh0LXdpdGgtaW1hZ2VfX2ltZyB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogaW5pdGlhbCAhaW1wb3J0YW50OyB9XG4gICAgICAuZmxvLWItdGV4dC13aXRoLWltYWdlX190aXR0bGUge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMy42MjVyZW07IH1cbiAgICAgIC5mbG8tYi10ZXh0LXdpdGgtaW1hZ2VfX3RpdHRsZS1vZmZzZXQge1xuICAgICAgICBtYXJnaW4tdG9wOiAtMS4yNXJlbTsgfVxuICAgICAgLmZsby1iLXRleHQtd2l0aC1pbWFnZV9fYnRuIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICAgICAgLmZsby1iLXRleHQtd2l0aC1pbWFnZV9fY29udGVudC10ZXh0IHtcbiAgICAgICAgbWFyZ2luOiAxLjg3NXJlbSBhdXRvIDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG5cbi5zZWN0aW9uLXRleHQtY29udGVudCB7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG4gIC5zZWN0aW9uLXRleHQtY29udGVudF9fdGl0bGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuc2VjdGlvbi10ZXh0LWNvbnRlbnRfX2NvbnRlbnQgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAgIC5zZWN0aW9uLXRleHQtY29udGVudCB7XG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMi41cmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDEuMjVyZW0gIWltcG9ydGFudDsgfVxuICAgICAgLnNlY3Rpb24tdGV4dC1jb250ZW50LS1uby1tYXJnaW4tYm90dG9tIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsgfSB9XG5cbi8qIEVORDogQ09NUE9ORU5UUyAoS0VFUCBUSElTIE9ORSBBVCBUSEUgQk9UVE9NIEFMTCBUSEUgVElNRSkgKi9cbiIsIi8qIFNUQVJUOiBWRU5ET1IgKi9cbiAgQGltcG9ydCBcInZlbmRvci9mb3VuZGF0aW9uL19zZXR0aW5ncy5zY3NzXCI7XG4gIEBpbXBvcnQgXCJmb3VuZGF0aW9uLnNjc3NcIjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1ldmVyeXRoaW5nKCk7XG4gIEBpbXBvcnQgXCJtb3Rpb24tdWlcIjtcbiAgQGluY2x1ZGUgbW90aW9uLXVpLXRyYW5zaXRpb25zO1xuLyogRU5EOiBWRU5ET1IgKi9cblxuLyogU1RBUlQ6IEdMT0JBTCAqL1xuICBAaW1wb3J0IFwiZ2xvYmFsL2dsb2JhbC5zY3NzXCI7XG4vKiBFTkQ6IEdMT0JBTCAqL1xuXG4vKiBTVEFSVDogQ09NUE9ORU5UUyAoS0VFUCBUSElTIE9ORSBBVCBUSEUgQk9UVE9NIEFMTCBUSEUgVElNRSkgKi9cbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMC9mbG8tYmxvY2stdGl0bGUvZmxvLWJsb2NrLXRpdGxlLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8wL2Zsby1kcm9wZG93bi9mbG8tZHJvcGRvd24ubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzAvZmxvLWZvcm0tMS9mbG8tZm9ybS0xLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8wL2Zsby1mb3JtL2Zsby1mb3JtLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8wL2Zsby1scWlwL2Zsby1scWlwLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8wL2Zsby1wYWdlLXdyYXAvZmxvLXBhZ2Utd3JhcC5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMC9mbG8tc2hhcmUtbGlua3MvZmxvLXNoYXJlLXdyYXAubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzAvZmxvLXNsaWRlci9mbG8tc2xpZGVyLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8wL3BvcnRvZm9saW8tdGl0dGxlL3BvcnRmb2xpby10aXRsZS5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMC9zZWFyY2gtZm9ybS9zZWFyY2gtZm9ybS5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMC9zb2NpYWwtbGlua3Mvc29jaWFsLWxpbmtzLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8xL2NvbW1lbnRzLWJsb2NrL2NvbW1lbnRzLWJsb2NrLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8xL2NvbnRhY3QtYmxvY2stMS9jb250YWN0LWJsb2NrLTEubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzEvZmxvLWNhcmQtMS9mbG8tY2FyZC0xLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8xL2Zsby1jYXJkLTIvZmxvLWNhcmQtMi5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMS9mbG8tY2FyZC0zL2Zsby1jYXJkLTMubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzEvZmxvLWNhcmQtNC9mbG8tY2FyZC00Lm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8xL2Zsby1jYXJkLTUvZmxvLWNhcmQtNS5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMS9mbG8tY2FyZC9mbG8tY2FyZC5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMS9mbG8tZGl2aWRlci9mbG8tZGl2aWRlci5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMS9mbG8tZm9vdGVyL2Zsby1mb290ZXItc2lkZWJhcnMubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzEvZmxvLWZvb3Rlci9mbG8tZm9vdGVyLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8xL2Zsby1nZW5lcmljLWNhdGVnb3JpZXMtYW5kLXRhZ3MvZmxvLWdlbmVyaWMtY2F0ZWdvcmllcy1hbmQtdGFncy5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMS9mbG8taGVhZGVyLW1vYmlsZS9mbG8taGVhZGVyLW1vYmlsZS5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMS9mbG8taGVhZGVyL2Zsby1oZWFkZXIubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzEvZmxvLWhlcm8tMi9mbG8taGVyby0yLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8xL2Zsby1oZXJvLTMvZmxvLWhlcm8tMy5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMS9mbG8taGVyby00L2Zsby1oZXJvLTQubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzEvZmxvLWhlcm8tcG9wdXAvZmxvLWhlcm8tcG9wdXAubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzEvZmxvLWluc3RhZ3JhbS1pbWFnZXMvZmxvLWluc3RhZ3JhbS1pbWFnZXMubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzEvZmxvLWxpbmtzLWJsb2NrLTEvZmxvLWxpbmtzLWJsb2NrLTEubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzEvZmxvLWxpbmtzLWJsb2NrLTIvZmxvLWxpbmtzLWJsb2NrLTIubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzEvZmxvLW1vYmlsZS1tZW51L2Zsby1tb2JpbGUtbWVudS5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMS9mbG8tcGFnZS1oZXJvL2Zsby1wYWdlLWhlcm8ubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzEvZmxvLXBhZ2UtdG9wLW5hdi9mbG8tcGFnZS10b3AtbmF2Lm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8xL2Zsby1wYWdlLXdyYXAvZmxvLXBhZ2Utd3JhcC5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMS9mbG8tcGFnaW5hdGlvbi9mbG8tcGFnaW5hdGlvbi5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMS9mbG8tcG9ydGZvbGlvLWNhcmQvZmxvLXBvcnRmb2xpby1jYXJkLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8xL2Zsby1wb3J0Zm9saW8tY2F0ZWdvcnktZ3JpZC9mbG8tcG9ydGZvbGlvLWNhdGVnb3J5LWdyaWQubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzEvZmxvLXBvcnRmb2xpby1ncmlkL2Zsby1wb3J0Zm9saW8tZ3JpZC5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMS9mbG8tcG9ydGZvbGlvLXBvc3QvZmxvLXBvcnRmb2xpby1wb3N0Lm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8xL2Zsby1wb3N0LXBhZ2luYXRpb24vZmxvLXBvc3QtcGFnaW5hdGlvbi5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMS9mbG8tcG9zdC10aXRsZS9mbG8tcG9zdC10aXRsZS5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMS9mbG8tcG9zdC9mbG8tcG9zdC5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMS9mbG8tcHJlZm9vdGVyLXdpZGdldHMvZmxvLXByZWZvb3Rlci13aWRnZXRzLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8xL2Zsby1zZWN0aW9uL2Zsby1zZWN0aW9uLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8xL2Zsby1zb2NpYWwtYmxvY2svZmxvLXNvY2lhbC1ibG9jay5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMS9mbG8tc29jaWFsLXNlY3Rpb24vZmxvLXNvY2lhbC1zZWN0aW9uLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8xL2Zsby1zcGxhc2gvZmxvLXNwbGFzaC5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMS9nYWxsZXJ5LXBvcHVwL2dhbGxlcnktcG9wdXAubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzEvbmV3c2xldHRlci1wb3B1cC9uZXdzbGV0dGVyLXBvcHVwLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8xL3BvcnRmb2xpby0xL3BvcnRmb2xpby0xLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8xL3BvcnRvZm9saW8tMi9wb3J0b2ZvbGlvLTIubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzEvc2lkZWJhci9zaWRlcmJhci5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMS93b29jb21tZXJjZS93b29jb21tZXJjZS5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMi9hYm91dC1wYWdlL2Fib3V0LXBhZ2UubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzIvYm9keS1oYXMtc2lkZWJhci9ib2R5LWhhcy1zaWRlYmFyLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8yL2Zsby1jYXJkLTEtbGlzdC9mbG8tY2FyZC1saXN0LTEubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzIvZmxvLWNhcmQtMi1saXN0L2Zsby1jYXJkLWxpc3QtMi5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMi9mbG8tZ3JpZC0yL2Zsby1ncmlkLTIubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzIvZmxvLWdyaWQvZmxvLWdyaWQubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzIvZmxvLWhlYWRlci1hbmQtZmxvLXBhZ2UtaGVyby9mbG8taGVhZGVyLWFuZC1mbG8tcGFnZS1oZXJvLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8yL2Zsby1pbnN0YWdyYW0taW1hZ2VzLXNsaWRlci9mbG8taW5zdGFncmFtLWltYWdlcy1zbGlkZXIubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzIvZmxvLWluc3RhZ3JhbS13aXRoLWZvcm0vZmxvLWluc3RhZ3JhbS13aXRoLWZvcm0ubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzIvZmxvLXBhZ2UtaGFzLXNpZGVyYmFyL2Zsby1wYWdlLWhhcy1zaWRlcmJhci5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMi9mbG8tcGFnZS1qb3VybmFsLTMvZmxvLXBhZ2Utam91cm5hbC0zLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8yL2Zsby1wb3N0LXBhZ2UvZmxvLXBvc3QtcGFnZS5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMi9mbG8tc2hvcnRjb2Rlcy9mbG8tc2hvcnRjb2Rlcy5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMi9qb3VybmFsLWdyaWQvam91cm5hbC1ncmlkLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8yL3BhZ2UtZGVmYXVsdC9wYWdlLWRlZmF1bHQubWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzIvcG9ydG9mb2xpby1wYWdlL3BvcnRmb2xpby1wYWdlLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8yL3NlY3Rpb25fYWJvdXRfYXJ0aWNsZS9mbG8tYWJvdXQtYmxvY2subWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FsZXhnL0xvY2FsIFNpdGVzL2Zsby9hcHAvcHVibGljL3dwLWNvbnRlbnQvdGhlbWVzL21vbnRlL3RoZW1lLWZpbGVzL2Rldi9jb21wb25lbnRzLzIvc2VjdGlvbl9jb250YWN0X2Jsb2NrL3NlY3Rpb25fY29udGFjdF9ibG9jay5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMi9zZWN0aW9uX2luZm9ybWF0aW9uX2Jsb2NrXzEvZmxvLWEtc2VjdGlvbi5tYWluLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYWxleGcvTG9jYWwgU2l0ZXMvZmxvL2FwcC9wdWJsaWMvd3AtY29udGVudC90aGVtZXMvbW9udGUvdGhlbWUtZmlsZXMvZGV2L2NvbXBvbmVudHMvMi9zZWN0aW9uX2luZm9ybWF0aW9uX2Jsb2NrXzIvZmxvLWItdGV4dC13aXRoLWltYWdlLm1haW4uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbGV4Zy9Mb2NhbCBTaXRlcy9mbG8vYXBwL3B1YmxpYy93cC1jb250ZW50L3RoZW1lcy9tb250ZS90aGVtZS1maWxlcy9kZXYvY29tcG9uZW50cy8yL3NlY3Rpb24tdGV4dC1jb250ZW50L3NlY3Rpb24tdGV4dC1jb250ZW50Lm1haW4uc2Nzc1wiO1xuLyogRU5EOiBDT01QT05FTlRTIChLRUVQIFRISVMgT05FIEFUIFRIRSBCT1RUT00gQUxMIFRIRSBUSU1FKSAqL1xuIiwiLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4gKiBWZXJzaW9uIDYuMy4xXG4gKiBmb3VuZGF0aW9uLnp1cmIuY29tXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuXG4vLyBEZXBlbmRlbmNpZXNcbkBpbXBvcnQgJy4uL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL21pc3NpbmctZGVwZW5kZW5jaWVzJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy90cnVlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3B1cmdlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlbW92ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZXBsYWNlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3RvLWxpc3QnO1xuXG4vLyBTZXR0aW5nc1xuLy8gaW1wb3J0IHlvdXIgb3duIGBzZXR0aW5nc2AgaGVyZSBvclxuLy8gaW1wb3J0IGFuZCBtb2RpZnkgdGhlIGRlZmF1bHQgc2V0dGluZ3MgdGhyb3VnaFxuLy8gQGltcG9ydCAnc2V0dGluZ3Mvc2V0dGluZ3MnO1xuXG4vLyBTYXNzIHV0aWxpdGllc1xuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8gR2xvYmFsIHZhcmlhYmxlcyBhbmQgc3R5bGVzXG5AaW1wb3J0ICdnbG9iYWwnO1xuXG4vLyBDb21wb25lbnRzXG5AaW1wb3J0ICdncmlkL2dyaWQnO1xuQGltcG9ydCAndHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcbkBpbXBvcnQgJ2Zvcm1zL2Zvcm1zJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdmlzaWJpbGl0eSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Zsb2F0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FsbG91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhcmQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jbG9zZS1idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcmlsbGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbGV4JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmVzcG9uc2l2ZS1lbWJlZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xhYmVsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVkaWEtb2JqZWN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUtaWNvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL29mZi1jYW52YXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9vcmJpdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BhZ2luYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcm9ncmVzcy1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXZlYWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zbGlkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zdGlja3knO1xuQGltcG9ydCAnY29tcG9uZW50cy9zd2l0Y2gnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJsZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90aXRsZS1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90b3AtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGh1bWJuYWlsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbHRpcCc7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWV2ZXJ5dGhpbmcoJGZsZXg6IGZhbHNlKSB7XG4gIEBpZiAkZmxleCB7XG4gICAgJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXM7XG4gIEBpZiBub3QgJGZsZXgge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7XG4gIH1cbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYmFkZ2U7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnJlYWRjcnVtYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FyZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWxhYmVsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9yYml0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXBhZ2luYXRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXNsaWRlcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9vbHRpcDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b3AtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xuXG4gIEBpZiAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWNsYXNzZXM7XG4gIH1cbn1cbiIsIi8vIEhlbHBlciBmdW5jdGlvbiBmb3IgdGhlIG5vcm1hbGl6ZSgpIG1peGluLlxuQGZ1bmN0aW9uIF9ub3JtYWxpemUtaW5jbHVkZSgkc2VjdGlvbiwgJGV4Y2x1ZGU6IG51bGwpIHtcbiAgLy8gSW5pdGlhbGl6ZSB0aGUgZ2xvYmFsIHZhcmlhYmxlcyBuZWVkZWQgYnkgdGhpcyBmdW5jdGlvbi5cbiAgQGlmIG5vdCBnbG9iYWxfdmFyaWFibGVfZXhpc3RzKF9ub3JtYWxpemUtaW5jbHVkZSkge1xuICAgICRfbm9ybWFsaXplLWluY2x1ZGU6ICgpICFnbG9iYWw7XG4gICAgJF9ub3JtYWxpemUtZXhjbHVkZTogKCkgIWdsb2JhbDtcbiAgfVxuICAvLyBTaW5jZSB3ZSBhcmUgZ2l2ZW4gMiBwYXJhbWV0ZXJzLCBzZXQgdGhlIGdsb2JhbCB2YXJpYWJsZXMuXG4gIEBpZiAkZXhjbHVkZSAhPSBudWxsIHtcbiAgICAkaW5jbHVkZTogJHNlY3Rpb247XG4gICAgLy8gU2FzcyBkb2Vzbid0IGhhdmUgc3RhdGljIHZhcmlhYmxlcywgc28gdGhlIHdvcmstYXJvdW5kIGlzIHRvIHN0dWZmIHRoZXNlXG4gICAgLy8gdmFsdWVzIGludG8gZ2xvYmFsIHZhcmlhYmxlcyBzbyB3ZSBjYW4gYWNjZXNzIHRoZW0gaW4gZnV0dXJlIGNhbGxzLlxuICAgICRfbm9ybWFsaXplLWluY2x1ZGU6IGlmKHR5cGUtb2YoJGluY2x1ZGUpID09ICdsaXN0JywgJGluY2x1ZGUsICgkaW5jbHVkZSkpICFnbG9iYWw7XG4gICAgJF9ub3JtYWxpemUtZXhjbHVkZTogaWYodHlwZS1vZigkZXhjbHVkZSkgPT0gJ2xpc3QnLCAkZXhjbHVkZSwgKCRleGNsdWRlKSkgIWdsb2JhbDtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cblxuICAvLyBDaGVjayBpZiAkc2VjdGlvbiBpcyBpbiB0aGUgJGluY2x1ZGUgbGlzdC5cbiAgQGlmIGluZGV4KCRfbm9ybWFsaXplLWluY2x1ZGUsICRzZWN0aW9uKSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIC8vIElmICRpbmNsdWRlIGlzIHNldCB0byAoYWxsKSwgbWFrZSBzdXJlICRzZWN0aW9uIGlzIG5vdCBpbiAkZXhjbHVkZS5cbiAgQGVsc2UgaWYgbm90IGluZGV4KCRfbm9ybWFsaXplLWV4Y2x1ZGUsICRzZWN0aW9uKSBhbmQgaW5kZXgoJF9ub3JtYWxpemUtaW5jbHVkZSwgYWxsKSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbkBtaXhpbiBub3JtYWxpemUoJGluY2x1ZGU6IChhbGwpLCAkZXhjbHVkZTogKCkpIHtcbiAgLy8gSW5pdGlhbGl6ZSB0aGUgaGVscGVyIGZ1bmN0aW9uIGJ5IHBhc3NpbmcgaXQgdGhpcyBtaXhpbidzIHBhcmFtZXRlcnMuXG4gICRpbml0OiBfbm9ybWFsaXplLWluY2x1ZGUoJGluY2x1ZGUsICRleGNsdWRlKTtcblxuICAvLyBJZiB3ZSd2ZSBjdXN0b21pemVkIGFueSBmb250IHZhcmlhYmxlcywgd2UnbGwgbmVlZCBleHRyYSBwcm9wZXJ0aWVzLlxuICBAaWYgJGJhc2UtZm9udC1zaXplICE9IDE2cHhcbiAgICBvciAkYmFzZS1saW5lLWhlaWdodCAhPSAyNHB4XG4gICAgb3IgJGJhc2UtdW5pdCAhPSAnZW0nXG4gICAgb3IgJGgxLWZvbnQtc2l6ZSAhPSAyICAgICogJGJhc2UtZm9udC1zaXplXG4gICAgb3IgJGgyLWZvbnQtc2l6ZSAhPSAxLjUgICogJGJhc2UtZm9udC1zaXplXG4gICAgb3IgJGgzLWZvbnQtc2l6ZSAhPSAxLjE3ICogJGJhc2UtZm9udC1zaXplXG4gICAgb3IgJGg0LWZvbnQtc2l6ZSAhPSAxICAgICogJGJhc2UtZm9udC1zaXplXG4gICAgb3IgJGg1LWZvbnQtc2l6ZSAhPSAwLjgzICogJGJhc2UtZm9udC1zaXplXG4gICAgb3IgJGg2LWZvbnQtc2l6ZSAhPSAwLjY3ICogJGJhc2UtZm9udC1zaXplIHtcbiAgICAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobTogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgLyohIG5vcm1hbGl6ZS1zY3NzIHwgTUlUL0dQTHYyIExpY2Vuc2UgfCBiaXQubHkvbm9ybWFsaXplLXNjc3MgKi9cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGRvY3VtZW50KSB7XG4gICAgLyogRG9jdW1lbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5IGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAzLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gICAgICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuICAgICAqL1xuXG4gICAgaHRtbCB7XG4gICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7IC8qIDEgKi9cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIC8vIENvcnJlY3Qgb2xkIGJyb3dzZXIgYnVnIHRoYXQgcHJldmVudGVkIGFjY2Vzc2libGUgcmVzaXppbmcgb2YgdGV4dFxuICAgICAgICAvLyB3aGVuIHJvb3QgZm9udC1zaXplIGlzIHNldCB3aXRoIHB4IG9yIGVtLlxuICAgICAgICBmb250LXNpemU6ICgkYmFzZS1mb250LXNpemUgLyAxNnB4KSAqIDEwMCU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAoJGJhc2UtbGluZS1oZWlnaHQgLyAkYmFzZS1mb250LXNpemUpICogMWVtOyAvKiAyICovXG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAyICovXG4gICAgICB9XG4gICAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMyAqL1xuICAgICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAzICovXG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShzZWN0aW9ucykge1xuICAgIC8qIFNlY3Rpb25zXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuXG4gICAgYm9keSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBhcnRpY2xlLFxuICAgIGFzaWRlLFxuICAgIGZvb3RlcixcbiAgICBoZWFkZXIsXG4gICAgbmF2LFxuICAgIHNlY3Rpb24ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICAgICAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBoMSB7XG4gICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoMS1mb250LXNpemUpO1xuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMS1mb250LXNpemUpO1xuICAgICAgfVxuXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICAvKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2lucy4gKi9cbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoMS1mb250LXNpemUpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBtYXJnaW46IDAuNjdlbSAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICBoMiB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGgyLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDItZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoMi1mb250LXNpemUpO1xuICAgICAgfVxuXG4gICAgICBoMyB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGgzLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDMtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoMy1mb250LXNpemUpO1xuICAgICAgfVxuXG4gICAgICBoNCB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGg0LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDQtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoNC1mb250LXNpemUpO1xuICAgICAgfVxuXG4gICAgICBoNSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGg1LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDUtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoNS1mb250LXNpemUpO1xuICAgICAgfVxuXG4gICAgICBoNiB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGg2LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDYtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoNi1mb250LXNpemUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZ3JvdXBpbmcpIHtcbiAgICAvKiBHcm91cGluZyBjb250ZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAvKipcbiAgICAgICAqIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW4uXG4gICAgICAgKi9cblxuICAgICAgYmxvY2txdW90ZSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAkaW5kZW50LWFtb3VudCk7XG4gICAgICB9XG5cbiAgICAgIGRsLFxuICAgICAgb2wsXG4gICAgICB1bCB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwKTtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBUdXJuIG9mZiBtYXJnaW5zIG9uIG5lc3RlZCBsaXN0cy5cbiAgICAgICAqL1xuXG4gICAgICBvbCxcbiAgICAgIHVsIHtcbiAgICAgICAgb2wsXG4gICAgICAgIHVsIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZGQge1xuICAgICAgICBtYXJnaW46IDAgMCAwICRpbmRlbnQtYW1vdW50O1xuICAgICAgfVxuXG4gICAgICBvbCxcbiAgICAgIHVsIHtcbiAgICAgICAgcGFkZGluZzogMCAwIDAgJGluZGVudC1hbW91bnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBmaWdjYXB0aW9uLFxuICAgIGZpZ3VyZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgbWFyZ2luIGluIElFIDguXG4gICAgICovXG5cbiAgICBmaWd1cmUge1xuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxICRpbmRlbnQtYW1vdW50KTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbWFyZ2luOiAxZW0gJGluZGVudC1hbW91bnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAgICAgKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAgICAgKi9cblxuICAgIGhyIHtcbiAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gICAgICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG5cbiAgICBtYWluIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAvKipcbiAgICAgICAqIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW4uXG4gICAgICAgKi9cblxuICAgICAgcCxcbiAgICAgIHByZSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHByZSB7XG4gICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgICAgIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShsaW5rcykge1xuICAgIC8qIExpbmtzXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAgICAgKiAyLiBSZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG4gICAgICovXG5cbiAgICBhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiAxICovXG4gICAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBvdXRsaW5lIG9uIGZvY3VzZWQgbGlua3Mgd2hlbiB0aGV5IGFyZSBhbHNvIGFjdGl2ZSBvciBob3ZlcmVkXG4gICAgICogaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBhOmFjdGl2ZSxcbiAgICBhOmhvdmVyIHtcbiAgICAgIG91dGxpbmUtd2lkdGg6IDA7XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZSh0ZXh0KSB7XG4gICAgLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIEZpcmVmb3ggMzktLlxuICAgICAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBhYmJyW3RpdGxlXSB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXG4gICAgICovXG5cbiAgICBiLFxuICAgIHN0cm9uZyB7XG4gICAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYixcbiAgICBzdHJvbmcge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIGNvZGUsXG4gICAga2JkLFxuICAgIHNhbXAge1xuICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gICAgICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAgICAgKi9cblxuICAgIGRmbiB7XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGJhY2tncm91bmQgYW5kIGNvbG9yIGluIElFIDktLlxuICAgICAqL1xuXG4gICAgbWFyayB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICAgICAgY29sb3I6ICMwMDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBzbWFsbCB7XG4gICAgICBmb250LXNpemU6IDgwJTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAgICAgKiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBzdWIsXG4gICAgc3VwIHtcbiAgICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgfVxuXG4gICAgc3ViIHtcbiAgICAgIGJvdHRvbTogLTAuMjVlbTtcbiAgICB9XG5cbiAgICBzdXAge1xuICAgICAgdG9wOiAtMC41ZW07XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShlbWJlZGRlZCkge1xuICAgIC8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBhdWRpbyxcbiAgICB2aWRlbyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAgICAgKi9cblxuICAgIGF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICAgICAqL1xuXG4gICAgaW1nIHtcbiAgICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgICAgKi9cblxuICAgIHN2Zzpub3QoOnJvb3QpIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShmb3Jtcykge1xuICAgIC8qIEZvcm1zXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIGlucHV0LFxuICAgIG9wdGdyb3VwLFxuICAgIHNlbGVjdCxcbiAgICB0ZXh0YXJlYSB7XG4gICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7IC8qIDEgKi9cbiAgICAgIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICgkYmFzZS1saW5lLWhlaWdodCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07IC8qIDEgKi9cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgICAgIH1cbiAgICAgIG1hcmdpbjogMDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuXG4gICAgYnV0dG9uIHtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICAgICAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAgICAgKi9cblxuICAgIGJ1dHRvbixcbiAgICBzZWxlY3QgeyAvKiAxICovXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2BcbiAgICAgKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGJ1dHRvbixcbiAgICBodG1sIFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG4gICAgW3R5cGU9XCJyZXNldFwiXSxcbiAgICBbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICAgIH1cblxuICAgIGJ1dHRvbixcbiAgICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgICBbdHlwZT1cInJlc2V0XCJdLFxuICAgIFt0eXBlPVwic3VibWl0XCJdIHtcblxuICAgICAgLyoqXG4gICAgICAgKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICAgICAgICovXG5cbiAgICAgICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICAgICAgICovXG5cbiAgICAgICY6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAgICAgKi9cblxuICAgIGlucHV0IHtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICAgICAqL1xuXG4gICAgW3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICBbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gICAgICovXG5cbiAgICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gICAgICovXG5cbiAgICBbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cblxuICAgICAgLyoqXG4gICAgICAgKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICAgICAgICovXG5cbiAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICAgICAqL1xuXG4gICAgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICAgICAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoYW5nZSB0aGUgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuXG4gICAgZmllbGRzZXQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgICAgIG1hcmdpbjogMCAycHg7XG4gICAgICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gICAgICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICAgICAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgbGVnZW5kIHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICAgIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgICAgIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgICAgIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAgICAgKi9cblxuICAgIHByb2dyZXNzIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAgICAgKi9cblxuICAgIHRleHRhcmVhIHtcbiAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoaW50ZXJhY3RpdmUpIHtcbiAgICAvKiBJbnRlcmFjdGl2ZVxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFLCBhbmQgRmlyZWZveC5cbiAgICAgKi9cblxuICAgIGRldGFpbHMge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBzdW1tYXJ5IHtcbiAgICAgIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgbWVudSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgLypcbiAgICAgICAgICogMS4gU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAgICogMi4gU2V0IGNvbnNpc3RlbnQgc3BhY2UgZm9yIHRoZSBsaXN0IHN0eWxlIGltYWdlLlxuICAgICAgICAgKi9cblxuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCk7IC8qIDEgKi9cbiAgICAgICAgcGFkZGluZzogMCAwIDAgJGluZGVudC1hbW91bnQ7IC8qIDIgKi9cblxuICAgICAgICAvKipcbiAgICAgICAgICogVHVybiBvZmYgbWFyZ2lucyBvbiBuZXN0ZWQgbGlzdHMuXG4gICAgICAgICAqL1xuXG4gICAgICAgIG1lbnUgJixcbiAgICAgICAgb2wgJixcbiAgICAgICAgdWwgJiB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShzY3JpcHRpbmcpIHtcbiAgICAvKiBTY3JpcHRpbmdcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBjYW52YXMge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICAgICAqL1xuXG4gICAgdGVtcGxhdGUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGhpZGRlbikge1xuICAgIC8qIEhpZGRlblxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBbaGlkZGVuXSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLyogU1RBUlQ6IFRFTVBPUkFSWSAqL1xuLyogRU5EOiBURU1QT1JBUlkgKi9cblxuLyogU1RBUlQ6IEZMTyBJQ09OUyAqL1xuICBAaW1wb3J0IHVybChcIi4uL2ZvbnRzL2ZvbnRlbGxvL2Nzcy9mbG8taWNvbnMuY3NzXCIpOyAvLyByZWxhdGl2ZSB0byBwdWJsaWMvY3NzL1xuLyogRU5EOiBGTE8gSUNPTlMgKi9cblxuXG4vKiBTVEFSVDogTUlYSU5TICovXG5cbiAgLyogRW5kOiBUcmFuc2l0aW9ucyAqL1xuICAgICRnbG9iYWwtdHJhbnNpdGlvbi1zcGVlZDogMC40cztcbiAgICAkZ2xvYmFsLWVhc2luZzogY3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1MCwgMC41NTAsIDAuOTUwKTtcblxuICAgIEBtaXhpbiBnbG9iYWwtdHJhbnNpdGlvbigkdHJhbnNpdGlvbnMuLi4pIHtcbiAgICAgICR0cmFuc2l0aW9uczogYXBwZW5kKCR0cmFuc2l0aW9ucywgZmlsdGVyLCBjb21tYSk7XG4gICAgICAkczogJGdsb2JhbC10cmFuc2l0aW9uLXNwZWVkO1xuICAgICAgJHVuZm9sZGVkVHJhbnNpdGlvbnM6ICgpO1xuICAgICAgQGVhY2ggJHRyYW5zaXRpb24gaW4gJHRyYW5zaXRpb25zIHtcbiAgICAgICAgJHVuZm9sZGVkVHJhbnNpdGlvbnM6IGFwcGVuZCgkdW5mb2xkZWRUcmFuc2l0aW9ucywgJHRyYW5zaXRpb24gKyBcIiBcIiArICRzLCBjb21tYSlcbiAgICAgIH1cbiAgICAgIHRyYW5zaXRpb246ICR1bmZvbGRlZFRyYW5zaXRpb25zO1xuICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICRnbG9iYWwtZWFzaW5nO1xuICAgIH1cbiAgLyogRW5kOiBUcmFuc2l0aW9ucyAqL1xuXG5cbiAgIEBtaXhpbiBwbGFjZWhvbGRlcigkb3BhY2l0eSwgJGNvbG9yKXtcbiAgICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgICAgfVxuICAgICAmOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgIG9wYWNpdHk6ICRvcGFjaXR5O1xuICAgICB9XG4gICAgICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgIG9wYWNpdHk6ICRvcGFjaXR5O1xuICAgICB9XG4gICAgICY6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgICAgfVxuICAgfVxuXG4gIC8qIFN0YXJ0OiBCYWNrZ3JvdW5kIGltYWdlICovXG4gICAgQG1peGluIGdsb2JhbC1iZ2ktY29udGFpbiB7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICB9XG4gICAgQG1peGluIGdsb2JhbC1iZ2ktY292ZXIge1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIH1cbiAgLyogRW5kOiBCYWNrZ3JvdW5kIGltYWdlICovXG5cbiAgLyogU3RhcnQ6IEJveCBTaXppbmcgKi9cbiAgICBAbWl4aW4gYm94LXNpemluZygkZGF0YSkge1xuICAgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkZGF0YTtcbiAgICAgIC1tb3otYm94LXNpemluZzogJGRhdGE7XG4gICAgICBib3gtc2l6aW5nOiAkZGF0YTtcbiAgICB9XG5cbiAgLyogRW5kOiBCb3ggc2l6aW5nICovXG5cbi8qIEVORDogTUlYSU5TICovXG5cbi8qIFNUQVJUOiBDT0xPUlMgKi9cbiAgJGNvbG9yLWJsYWNrOiBibGFjaztcbiAgJGNvbG9yLWdyYXktZGFyazogIzM4MzgzODtcbiAgJGNvbG9yLWdyYXk6ICNlNWU1ZTU7XG4gICRjb2xvci1ncmF5LWxpZ2h0OiAjZGRkO1xuICAkY29sb3ItcmVkOiByZWQ7XG4gICRjb2xvci1ncmF5OTU6ICM5NTk1OTU7XG5cbi8qIEVORDogQ09MT1JTICovXG5cbi8qIFNUQVJUOiBGT05UUyAqL1xuICBAaW1wb3J0IHVybChcIi4uL2ZvbnRzL2RlZmF1bHQvZm9udC5jc3NcIik7IC8vIHJlbGF0aXZlIHRvIHB1YmxpYy9jc3MvXG5cbiAgJGZvbnQtYW1wbGl0dWRlOiBcIkFtcGxpdHVkZUNvbmQtUmVndWxhclwiO1xuICAkZm9udC1idXRsZXI6IFwiQnV0bGVyXCI7XG4gICRmb250LWNhc2xvbjogXCJBZG9iZSBDYXNsb24gUHJvXCI7IC8vIDQwMC4gNzAwXG4gICRmb250LW1hbGFya2V5OiBcIk1hbGFya2V5XCI7XG4vKiBFTkQ6IEZPTlRTICovXG5cbi8qIFNUQVJUOiBHTE9CQUwgU1RZTEVTICovXG4gIGh0bWwge1xuICAgIC8vIEVuc3VyZSBnb29kIGRlc2lnbiBwcm9wb3J0aW9uIGZyb20gdGFibGV0IHVwIHdoaWxlIHVzaW5nIHJlbXMgKHllcyBmb3JnZXQgYWJvdXQgem9vbSkuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yMXZ3O1xuICAgIH07XG4gIH1cbiAgLy8gU3R5bGVzIG91dHNpZGUgcG9zdFxuICAqOm5vdCguZmxvLXBvc3QpLCAqOm5vdCguZmxvLXBvc3RfX3N0eWxlcykge1xuICAgIGEge1xuICAgICAgLy8gdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgQGluY2x1ZGUgZ2xvYmFsLXRyYW5zaXRpb24oY29sb3IsIG9wYWNpdHkpO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIC8vY29sb3I6ICRjb2xvci1ncmF5O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5ob3Zlci1ibG9ja3tcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICBmaWd1cmV7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIEBpbmNsdWRlIGdsb2JhbC10cmFuc2l0aW9uKG9wYWNpdHkpO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgbGkge1xuXG4gICAgfVxuXG4gIH1cblxuICAudGV4dC11bmRlcmxpbmV7XG4gICAgJjphZnRlcntcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjb2xvci1ncmF5LWRhcms7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgJjphZnRlcntcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgQGluY2x1ZGUgZ2xvYmFsLXRyYW5zaXRpb24ob3BhY2l0eSlcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gU3R5bGVzIGluc2lkZSBwb3N0XG4gIC5mbG8tcG9zdCwgLmZsby1wb3N0X19zdHlsZXMge1xuXG4gIH1cblxuXG4gIC8vUmVzZXQgZGVmYXVsdCBzdHlsZXNcbiAgYm9keXtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgY29sb3I6ICRjb2xvci1ncmF5LWRhcms7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgaDEsaDIsaDMsaDQsaDUsaDZ7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgW2NsYXNzXj1cImZsby1pY29uLVwiXTpiZWZvcmUsXG4gIFtjbGFzcyo9XCIgZmxvLWljb24tXCJdOmJlZm9yZXtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgaW1ne1xuICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlcztcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBuZWFyZXN0LW5laWdoYm9yO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OTkpO1xuICB9XG4gIGJ1dHRvbntcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG4gIGF7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgJjpob3ZlcntcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbiAgICAmOnZpc2l0ZWR7XG4gICAgICAvL2NvbG9yOiAkY29sb3ItZ3JheS1kYXJrO1xuICAgIH1cblxuICB9XG5cbiAgZmlndXJle1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC5yb3d7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIHdpZHRoOiBpbml0aWFsO1xuICB9XG5cblxuICAucm93LWZsZXh7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApe1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB9XG4gIH1cblxuICAuY29sdW1ue1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cblxuICAvL0J1dHRvbnMgc3R5bGVzXG4gIC5mbG97XG4gICAgJi1idG57XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBiYWNrZ3JvdW5kOiAwO1xuICAgICAgb3V0bGluZTogMDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICAgICYtYnRuLS1saW5reyAvL0J1dHRvbiBsaW5rXG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1hbXBsaXR1ZGU7XG4gICAgICBsZXR0ZXItc3BhY2luZzogLjM3NWVtO1xuICAgICAgLy8gdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDsgLy9yZXNldCB0aGUgZGVmYXVsdCBjbGFzc1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgQGluY2x1ZGUgZ2xvYmFsLXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgJjpob3ZlcntcbiAgICAgICAgY29sb3I6ICRjb2xvci1ncmF5O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vVGV4dCBzdHlsZXMgbGluZSB1cFxuICAudGl0bGUtbGluZS11cHtcbiAgICAmOmJlZm9yZXtcbiAgICAgIGNvbnRlbnQ6ICfilIAnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYyg4KTtcbiAgICB9XG4gIH1cbiAgLnRpdGxlLWxpbmUtYm90dG9te1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoNTApO1xuICAgICY6YWZ0ZXJ7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiByZW0tY2FsYygyNik7XG4gICAgICB3aWR0aDogMnB4O1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWdyYXktZGFyaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICAgICYtLWNlbnRlcntcbiAgICAgICY6YWZ0ZXJ7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwwKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICY6YWZ0ZXJ7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gIC8vU2xpY2sgU2xpZGVyIHJlc2V0IGRlZmF1bHQgc3R5bGVzXG5cbiAgLnNsaWNrLWluaXRpYWxpemVkIHtcbiAgICAuc2xpY2stc2xpZGV7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vRm9ybSBpdGVtcyBnbG9iYWwgc3R5bGVzXG5cbiAgLy9JbnB1dHMgYW5kIFRleHRhcmVhIGRlZmF1bHQgc3R5bGVzXG4gIGlucHV0W3R5cGVdOm5vdChbdHlwZT1cInN1Ym1pdFwiXSksXG4gIHRleHRhcmVhe1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDgpO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1jYXNsb247XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNzVlbTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICAgIEBpbmNsdWRlIGdsb2JhbC10cmFuc2l0aW9uKGJhY2tncm91bmQtaW1hZ2UsIGJvcmRlci1jb2xvciwgbGluZS1oZWlnaHQsIGxldHRlci1zcGFjaW5nLCBjb2xvciwgcGFkZGluZyk7XG5cbiAgICBAaW5jbHVkZSBwbGFjZWhvbGRlcigxLCRjb2xvci1ncmF5LWRhcmspO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3Vze1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgIGJvcmRlci1jb2xvcjogJGxpZ2h0LWdyYXk7XG4gICAgICBwYWRkaW5nOiByZW0tY2FsYygxNyk7XG4gICAgICBsaW5lLWhlaWdodDogMS44ZW07XG4gICAgfVxuICB9XG5cbiAgLy9JbnB1dFxuICBpbnB1dFt0eXBlXTpub3QoW3R5cGU9XCJzdWJtaXRcIl0pe1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIGhlaWdodDogcmVtLWNhbGMoNTApO1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbG9yLWdyYXk7XG4gICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgfVxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4xZW07XG4gICAgICB9XG4gIH1cblxuICAvL1BsYWNlaG9sZGVyc1xuICBpbnB1dFt0eXBlXTpub3QoW3R5cGU9XCJzdWJtaXRcIl0pLFxuICB0ZXh0YXJlYXtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXN7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvL0lucHV0IHR5cGUgc3VibWl0XG4gIGlucHV0W3R5cGU9J3N1Ym1pdCdde1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiAwO1xuICAgIG91dGxpbmU6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICBmb250LWZhbWlseTogJGZvbnQtYW1wbGl0dWRlO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMzc1ZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDsgLy9yZXNldCB0aGUgZGVmYXVsdCBjbGFzc1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBAaW5jbHVkZSBnbG9iYWwtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgJjpob3ZlcntcbiAgICAgIGNvbG9yOiAkY29sb3ItZ3JheTtcbiAgICB9XG4gIH1cblxuICAvL1RleHRhcmVhXG4gIHRleHRhcmVhIHtcbiAgICAkcGFkZGluZzogcmVtLWNhbGMoMTcpO1xuICAgICRsaW5lLWhlaWdodDogY2FsYygxZW0gKyAjeyRwYWRkaW5nICogMn0pO1xuICAgIHJlc2l6ZTogbm9uZTtcbiAgICBoZWlnaHQ6IHJlbS1jYWxjKDI2MCk7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoMS4yZW0gKyAjeyRwYWRkaW5nICogMn0pO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgICBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDApLFxuICAgICAgbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQgY2FsYygxZW0gKyAjeyRwYWRkaW5nICogMn0pLCAkY29sb3ItZ3JheSBjYWxjKDFlbSArICN7JHBhZGRpbmcgKiAyfSksICRjb2xvci1ncmF5ICwgdHJhbnNwYXJlbnQgY2FsYygxZW0gKyAje3JlbS1jYWxjKCRwYWRkaW5nICogMil9ICsgMC4wODc1cmVtKSk7XG4gIH1cblxuXG4vKiBFTkQ6IEdMT0JBTCBTVFlMRVMgKi9cblxuXG4vKiBTVEFSVDogQVBQRUFSIEFOSU1BVElPTiAqL1xuICBib2R5Om5vdCguZmxvLWFwcGVhci1kaXNhYmxlZCkge1xuICAgIC5sYXlvdXQtc2VjdGlvbnMtLXNjcm9sbC1ub3JtYWwgLmZsby1zZWN0aW9uLFxuICAgIC5mbG9fcGFnZSA+IC5mbG8tc2VjdGlvbjpub3QoOmZpcnN0LW9mLXR5cGUpOm5vdCguZGlzYWJsZS1hcHBlYXIpLFxuICAgIC5mbG8tcG9zdCA+ICosXG4gICAgLmZsby1mb290ZXIsXG4gICAgLnRvLWFwcGVhcixcbiAgICAud2lkZ2V0Om5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkocmVtLWNhbGMoODApKTtcbiAgICAgIC8vIEBpbmNsdWRlIGdsb2JhbF90cmFuc2l0aW9uKG9wYWNpdHksIHRyYW5zZm9ybSk7XG4gICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJGdsb2JhbC1lYXNpbmc7XG4gICAgICAmOm50aC1jaGlsZCgxbikge1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRnbG9iYWwtdHJhbnNpdGlvbi1zcGVlZCwgdHJhbnNmb3JtICRnbG9iYWwtdHJhbnNpdGlvbi1zcGVlZCwgY29sb3IgJGdsb2JhbC10cmFuc2l0aW9uLXNwZWVkO1xuICAgICAgfVxuICAgICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkZ2xvYmFsLXRyYW5zaXRpb24tc3BlZWQgMC4xcywgdHJhbnNmb3JtICRnbG9iYWwtdHJhbnNpdGlvbi1zcGVlZCAwLjFzLCBjb2xvciAkZ2xvYmFsLXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgICB9XG4gICAgICAmLnZpc2libGUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4vKiBFTkQ6IEFQUEVBUiBBTklNQVRJT04gKi9cblxuXG4vKiBTVEFSVDogWi1JTkRFWCBNQVAgKi9cbiAgQGltcG9ydCBcInotaW5kZXgtbWFwLnNjc3NcIjtcbi8qIEVORDogWi1JTkRFWCBNQVAgKi9cblxuLyogU1RBUlQ6IEhUTUwgT1ZFUkZMT1cgRk9SIFNBRkFSSSBGSVggKi9cbiAgaHRtbCB7XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgfVxuICBib2R5IHtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbi8qIEVORDogSFRNTCBPVkVSRkxPVyBGT1IgU0FGQVJJIEZJWCAqL1xuXG4vKiBTVEFSVDogRklYIFJPV1MgSU4gU0FGQVJJICovXG4gIC5yb3cge1xuICAgICY6YmVmb3JlIHtcbiAgICAgIHdpZHRoOiAwO1xuICAgIH1cbiAgfVxuLyogRU5EOiBGSVggUk9XUyBJTiBTQUZBUkkgKi9cbiIsIi8vXG4vLyBWYXJpYWJsZXNcbi8vXG4vLyBZb3UgY2FuIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHZhbHVlcyBieSBzZXR0aW5nIHRoZSB2YXJpYWJsZXMgaW4geW91ciBTYXNzXG4vLyBiZWZvcmUgaW1wb3J0aW5nIHRoZSBub3JtYWxpemUtc2NzcyBsaWJyYXJ5LlxuXG4vLyBUaGUgZm9udCBzaXplIHNldCBvbiB0aGUgcm9vdCBodG1sIGVsZW1lbnQuXG4kYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBiYXNlIGxpbmUgaGVpZ2h0IGRldGVybWluZXMgdGhlIGJhc2ljIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtLlxuJGJhc2UtbGluZS1oZWlnaHQ6IDI0cHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBsZW5ndGggdW5pdCBpbiB3aGljaCB0byBvdXRwdXQgdmVydGljYWwgcmh5dGhtIHZhbHVlcy5cbi8vIFN1cHBvcnRlZCB2YWx1ZXM6IHB4LCBlbSwgcmVtLlxuJGJhc2UtdW5pdDogJ2VtJyAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgZm9udCBmYW1pbHkuXG4kYmFzZS1mb250LWZhbWlseTogc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8gVGhlIGZvbnQgc2l6ZXMgZm9yIGgxLWg2LlxuJGgxLWZvbnQtc2l6ZTogMiAgICAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoMi1mb250LXNpemU6IDEuNSAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDMtZm9udC1zaXplOiAxLjE3ICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGg0LWZvbnQtc2l6ZTogMSAgICAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoNS1mb250LXNpemU6IDAuODMgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDYtZm9udC1zaXplOiAwLjY3ICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuXG4vLyBUaGUgYW1vdW50IGxpc3RzIGFuZCBibG9ja3F1b3RlcyBhcmUgaW5kZW50ZWQuXG4kaW5kZW50LWFtb3VudDogNDBweCAhZGVmYXVsdDtcblxuLy8gVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBjb250cm9scyB3aGV0aGVyIG5vcm1hbGl6ZS1zY3NzIHdpbGwgb3V0cHV0XG4vLyBmb250LXNpemVzLCBsaW5lLWhlaWdodHMgYW5kIGJsb2NrLWxldmVsIHRvcC9ib3R0b20gbWFyZ2lucyB0aGF0IGZvcm0gYSBiYXNpY1xuLy8gdmVydGljYWwgcmh5dGhtIG9uIHRoZSBwYWdlLCB3aGljaCBkaWZmZXJzIGZyb20gdGhlIG9yaWdpbmFsIE5vcm1hbGl6ZS5jc3MuXG4vLyBIb3dldmVyLCBjaGFuZ2luZyBhbnkgb2YgdGhlIHZhcmlhYmxlcyBhYm92ZSB3aWxsIGNhdXNlXG4vLyAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB0byBiZSBhdXRvbWF0aWNhbGx5IHNldCB0byB0cnVlLlxuJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG06IGZhbHNlICFkZWZhdWx0O1xuIiwiLy9cbi8vIFZlcnRpY2FsIFJoeXRobVxuLy9cbi8vIFRoaXMgaXMgdGhlIG1pbmltYWwgYW1vdW50IG9mIGNvZGUgbmVlZGVkIHRvIGNyZWF0ZSB2ZXJ0aWNhbCByaHl0aG0gaW4gb3VyXG4vLyBDU1MuIElmIHlvdSBhcmUgbG9va2luZyBmb3IgYSByb2J1c3Qgc29sdXRpb24sIGxvb2sgYXQgdGhlIGV4Y2VsbGVudCBUeXBleVxuLy8gbGlicmFyeS4gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vanB0YXJhbnRvL3R5cGV5XG5cbkBmdW5jdGlvbiBub3JtYWxpemUtcmh5dGhtKCR2YWx1ZSwgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUsICR1bml0OiAkYmFzZS11bml0KSB7XG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gcHgge1xuICAgIEBlcnJvciBcIlRoZSBub3JtYWxpemUgdmVydGljYWwtcmh5dGhtIG1vZHVsZSBvbmx5IHN1cHBvcnRzIHB4IGlucHV0cy4gVGhlIHR5cGV5IGxpYnJhcnkgaXMgYmV0dGVyLlwiO1xuICB9XG4gIEBpZiAkdW5pdCA9PSByZW0ge1xuICAgIEByZXR1cm4gKCR2YWx1ZSAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxcmVtO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09IGVtIHtcbiAgICBAcmV0dXJuICgkdmFsdWUgLyAkcmVsYXRpdmUtdG8pICogMWVtO1xuICB9XG4gIEBlbHNlIHsgLy8gJHVuaXQgPT0gcHhcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxufVxuXG5AbWl4aW4gbm9ybWFsaXplLWZvbnQtc2l6ZSgkdmFsdWUsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplKSB7XG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ3B4JyB7XG4gICAgQGVycm9yIFwibm9ybWFsaXplLWZvbnQtc2l6ZSgpIG9ubHkgc3VwcG9ydHMgcHggaW5wdXRzLiBUaGUgdHlwZXkgbGlicmFyeSBpcyBiZXR0ZXIuXCI7XG4gIH1cbiAgZm9udC1zaXplOiBub3JtYWxpemUtcmh5dGhtKCR2YWx1ZSwgJHJlbGF0aXZlLXRvKTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZS1yaHl0aG0oJHByb3BlcnR5LCAkdmFsdWVzLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICAkdmFsdWUtbGlzdDogJHZhbHVlcztcbiAgJHNlcDogc3BhY2U7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZXMpID09ICdsaXN0JyB7XG4gICAgJHNlcDogbGlzdC1zZXBhcmF0b3IoJHZhbHVlcyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2YWx1ZS1saXN0OiBhcHBlbmQoKCksICR2YWx1ZXMpO1xuICB9XG5cbiAgJG5vcm1hbGl6ZWQtdmFsdWVzOiAoKTtcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZS1saXN0IHtcbiAgICBAaWYgdW5pdGxlc3MoJHZhbHVlKSBhbmQgJHZhbHVlICE9IDAge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgKiBub3JtYWxpemUtcmh5dGhtKCRiYXNlLWxpbmUtaGVpZ2h0LCAkcmVsYXRpdmUtdG8pO1xuICAgIH1cbiAgICAkbm9ybWFsaXplZC12YWx1ZXM6IGFwcGVuZCgkbm9ybWFsaXplZC12YWx1ZXMsICR2YWx1ZSwgJHNlcCk7XG4gIH1cbiAgI3skcHJvcGVydHl9OiAkbm9ybWFsaXplZC12YWx1ZXM7XG59XG5cbkBtaXhpbiBub3JtYWxpemUtbWFyZ2luKCR2YWx1ZXMsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplKSB7XG4gIEBpbmNsdWRlIG5vcm1hbGl6ZS1yaHl0aG0obWFyZ2luLCAkdmFsdWVzLCAkcmVsYXRpdmUtdG8pO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRmb250LXNpemUsICRtaW4tbGluZS1wYWRkaW5nOiAycHgpIHtcbiAgJGxpbmVzOiBjZWlsKCRmb250LXNpemUgLyAkYmFzZS1saW5lLWhlaWdodCk7XG4gIC8vIElmIGxpbmVzIGFyZSBjcmFtcGVkIGluY2x1ZGUgc29tZSBleHRyYSBsZWFkaW5nLlxuICBAaWYgKCRsaW5lcyAqICRiYXNlLWxpbmUtaGVpZ2h0IC0gJGZvbnQtc2l6ZSkgPCAoJG1pbi1saW5lLXBhZGRpbmcgKiAyKSB7XG4gICAgJGxpbmVzOiAkbGluZXMgKyAxO1xuICB9XG4gIEBpbmNsdWRlIG5vcm1hbGl6ZS1yaHl0aG0obGluZS1oZWlnaHQsICRsaW5lcywgJGZvbnQtc2l6ZSk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Fzcy1saW50OmRpc2FibGUgZm9yY2UtYXR0cmlidXRlLW5lc3RpbmcsIGZvcmNlLXBzZXVkby1uZXN0aW5nLCBuby1jb2xvci1saXRlcmFscywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIGdsb2JhbFxuLy8vL1xuXG4vLy8gRm9udCBzaXplIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIGA8aHRtbD5gIGFuZCBgPGJvZHk+YC4gV2UgdXNlIDEwMCUgYnkgZGVmYXVsdCBzbyB0aGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHVzZXIncyBicm93c2VyIHNldHRpbmdzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgd2lkdGggb2YgeW91ciBzaXRlLiBVc2VkIGJ5IHRoZSBncmlkIHRvIGRldGVybWluZSByb3cgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGFsbCB0eXBlLiBgJGdsb2JhbC1saW5laGVpZ2h0YCBpcyAyNHB4IHdoaWxlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgaXMgMTZweFxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcnMgdXNlZCBmb3IgYnV0dG9ucywgY2FsbG91dHMsIGxpbmtzLCBldGMuIFRoZXJlIG11c3QgYWx3YXlzIGJlIGEgY29sb3IgY2FsbGVkIGBwcmltYXJ5YC5cbi8vLyBAdHlwZSBNYXBcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogIzE3NzliYSxcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTGlzdFxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIGFudGlhbGlhc2VkIHR5cGUsIHVzaW5nIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgYW5kIGAtbW96LW9zeC1mb250LXNtb290aGluZ2AgQ1NTIHByb3BlcnRpZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJvZHktYW50aWFsaWFzZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgbWFyZ2luIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwYWRkaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3Igbm9ybWFsIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3IgYm9sZCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXJhZGl1czogMCAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHRleHQgZGlyZWN0aW9uIG9mIHRoZSBDU1MuIENhbiBiZSBlaXRoZXIgYGx0cmAgb3IgYHJ0bGAuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGZvciBjb21wb25lbnRzIHRoYXQgc3VwcG9ydCBpdC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLWZsZXhib3g6IGZhbHNlICFkZWZhdWx0O1xuXG5AaWYgbm90IG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgQGVycm9yICdJbiAkZm91bmRhdGlvbi1wYWxldHRlLCB5b3UgbXVzdCBoYXZlIGEgY29sb3IgbmFtZWQgXCJwcmltYXJ5XCIuJztcbn1cblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIHRleHQgZGlyZWN0aW9uXG4kZ2xvYmFsLWxlZnQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCByaWdodCwgbGVmdCk7XG4kZ2xvYmFsLXJpZ2h0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgbGVmdCwgcmlnaHQpO1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgY29sb3JzXG4kcHJpbWFyeS1jb2xvcjogZ2V0LWNvbG9yKHByaW1hcnkpO1xuJHNlY29uZGFyeS1jb2xvcjogZ2V0LWNvbG9yKHNlY29uZGFyeSk7XG4kc3VjY2Vzcy1jb2xvcjogZ2V0LWNvbG9yKHN1Y2Nlc3MpO1xuJHdhcm5pbmctY29sb3I6IGdldC1jb2xvcih3YXJuaW5nKTtcbiRhbGVydC1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KTtcblxuQG1peGluIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcyB7XG4gIEBpbmNsdWRlIC16Zi1ub3JtYWxpemU7XG5cbiAgLy8gVGhlc2Ugc3R5bGVzIGFyZSBhcHBsaWVkIHRvIGEgPG1ldGE+IHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0XG4gIC5mb3VuZGF0aW9uLW1xIHtcbiAgICBmb250LWZhbWlseTogJyN7LXpmLWJwLXNlcmlhbGl6ZSgkYnJlYWtwb2ludHMpfSc7XG4gIH1cblxuICBodG1sIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXG4gICAgQGlmICgkYm9keS1hbnRpYWxpYXNlZCkge1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgLy8gR3JpZCBkZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxuICB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyBhcmUgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gIHNlbGVjdCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIFN0eWxlcyBHb29nbGUgTWFwcyBhbmQgTWFwUXVlc3QgZW1iZWRzIHByb3Blcmx5XG4gIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8taWRzXG4gIC5tYXBfY2FudmFzLFxuICAubXFhLWRpc3BsYXkge1xuICAgIGltZyxcbiAgICBlbWJlZCxcbiAgICBvYmplY3Qge1xuICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgPGJ1dHRvbj4gc3R5bGVzIGNyZWF0ZWQgYnkgbW9zdCBicm93c2Vyc1xuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcblxuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG5cbiAgLy8gUHJldmVudCB0ZXh0IG92ZXJmbG93IG9uIHByZVxuICBwcmUge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgY2xhc3NlcyB0byBzaG93L2hpZGUgZWxlbWVudHMgaW4gSmF2YVNjcmlwdFxuICAuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gTG9hZHMgbm9ybWFsaXplLmNzcy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiAtemYtbm9ybWFsaXplIHtcbiAgQGluY2x1ZGUgbm9ybWFsaXplKCk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBSZW1vdmVzIHRoZSB1bml0IChlLmcuIHB4LCBlbSwgcmVtKSBmcm9tIGEgdmFsdWUsIHJldHVybmluZyB0aGUgbnVtYmVyIG9ubHkuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgc2FtZSBudW1iZXIsIHNhbnMgdW5pdC5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG59XG5cbi8vLyBDb252ZXJ0cyBvbmUgb3IgbW9yZSBwaXhlbCB2YWx1ZXMgaW50byBtYXRjaGluZyByZW0gdmFsdWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHZhbHVlcyAtIE9uZSBvciBtb3JlIHZhbHVlcyB0byBjb252ZXJ0LiBCZSBzdXJlIHRvIHNlcGFyYXRlIHRoZW0gd2l0aCBzcGFjZXMgYW5kIG5vdCBjb21tYXMuIElmIHlvdSBuZWVkIHRvIGNvbnZlcnQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgd3JhcCB0aGUgbGlzdCBpbiBwYXJlbnRoZXNlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gVGhlIGJhc2UgdmFsdWUgdG8gdXNlIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGByZW1gLiBJZiB5b3UncmUgdXNpbmcgRm91bmRhdGlvbiBvdXQgb2YgdGhlIGJveCwgdGhpcyBpcyAxNnB4LiBJZiB0aGlzIHBhcmFtZXRlciBpcyBgbnVsbGAsIHRoZSBmdW5jdGlvbiB3aWxsIHJlZmVyZW5jZSB0aGUgYCRiYXNlLWZvbnQtc2l6ZWAgdmFyaWFibGUgYXMgdGhlIGJhc2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gQSBsaXN0IG9mIGNvbnZlcnRlZCB2YWx1ZXMuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2U6IG51bGwpIHtcbiAgJHJlbS12YWx1ZXM6ICgpO1xuICAkY291bnQ6IGxlbmd0aCgkdmFsdWVzKTtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgLy8gVGhpcyBpcyBiZWNhdXNlIDEwMCUgZm9udCBzaXplID0gMTZweCBpbiBtb3N0IGFsbCBicm93c2Vyc1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gVXNpbmcgcmVtIGFzIGJhc2UgYWxsb3dzIGNvcnJlY3Qgc2NhbGluZ1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgJGNvdW50ID09IDEge1xuICAgIEByZXR1cm4gLXpmLXRvLXJlbSgkdmFsdWVzLCAkYmFzZSk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVtLXZhbHVlcztcbn1cblxuLy8gQ29udmVydHMgYSB1bml0bGVzcywgcGl4ZWwsIG9yIHJlbSB2YWx1ZSB0byBlbSwgZm9yIHVzZSBpbiBicmVha3BvaW50cy5cbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XG4gIC8vIFBpeGVsIGFuZCB1bml0bGVzcyB2YWx1ZXMgYXJlIGNvbnZlcnRlZCB0byByZW1zXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyBvciB1bml0bGVzcygkdmFsdWUpIHtcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xuICB9XG5cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9ICdudW1iZXInIHtcbiAgICBAd2FybiBpbnNwZWN0KCR2YWx1ZSkgKyAnIHdhcyBwYXNzZWQgdG8gcmVtLWNhbGMoKSwgd2hpY2ggaXMgbm90IGEgbnVtYmVyLic7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gZW0gaW50byByZW0gaWYgc29tZW9uZSBoYW5kcyBvdmVyICdlbSdzXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2VtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxcmVtO1xuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIHJlbSBpZiB1bml0cyBmb3IgJHZhbHVlIGlzIG5vdCByZW0gb3IgZW1cbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSAncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKSAqIDFyZW07XG4gIH1cblxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAkdmFsdWUgPT0gMHJlbSB7XG4gICAgJHZhbHVlOiAwO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsLCBwZXJjZW50YWdlLCByZW0gb3IgZW0gdmFsdWUgdG8gYSB1bml0bGVzcyB2YWx1ZSBiYXNlZCBvbiBhIGdpdmVuIGZvbnQgc2l6ZS4gSWRlYWwgZm9yIHdvcmtpbmcgb3V0IHVuaXRsZXNzIGxpbmUgaGVpZ2h0cy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBjb252ZXJ0IHRvIGEgdW5pdGxlc3MgbGluZSBoZWlnaHRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgZm9udCBzaXplIHRvIHVzZSB0byB3b3JrIG91dCB0aGUgbGluZSBoZWlnaHQgLSBkZWZhdWx0cyB0byAkZ2xvYmFsLWZvbnQtc2l6ZVxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIFVuaXRsZXNzIG51bWJlclxuQGZ1bmN0aW9uIHVuaXRsZXNzLWNhbGMoJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIEZpcnN0LCBsZXRzIGNvbnZlcnQgb3VyICRiYXNlIHRvIHBpeGVsc1xuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmIHVuaXQoJGJhc2UpID09ICdyZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmIHVuaXQoJGJhc2UpID09ICdlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBOb3cgbGV0cyBjb252ZXJ0IG91ciB2YWx1ZSB0byBwaXhlbHMgdG9vXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJyUnIHtcbiAgICAkdmFsdWU6ICgkdmFsdWUgLyAxMDAlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAkYmFzZTtcbiAgfVxuXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2VtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAkYmFzZTtcbiAgfVxuXG4gIC8vICdweCdcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIHtcbiAgICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpO1xuICB9XG5cbiAgLy8gYXNzdW1lIHRoYXQgbGluZS1oZWlnaHRzIGdyZWF0ZXJuIHRoZW4gMTAgYXJlIG1lYW50IHRvIGJlIGFic29sdXRlIGluICdweCdcbiAgQGlmIHVuaXRsZXNzKCR2YWx1ZSkgYW5kICgkdmFsdWUgPiAxMCkge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhIENTUyB0cmlhbmdsZSwgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGRyb3Bkb3duIGFycm93cywgZHJvcGRvd24gcGlwcywgYW5kIG1vcmUuIFVzZSB0aGlzIG1peGluIGluc2lkZSBhIGAmOjpiZWZvcmVgIG9yIGAmOjphZnRlcmAgc2VsZWN0b3IsIHRvIGF0dGFjaCB0aGUgdHJpYW5nbGUgdG8gYW4gZXhpc3RpbmcgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbkBtaXhpbiBjc3MtdHJpYW5nbGUoXG4gICR0cmlhbmdsZS1zaXplLFxuICAkdHJpYW5nbGUtY29sb3IsXG4gICR0cmlhbmdsZS1kaXJlY3Rpb25cbikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcblxuICBib3JkZXI6IGluc2V0ICR0cmlhbmdsZS1zaXplO1xuXG4gIGNvbnRlbnQ6ICcnO1xuXG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBkb3duKSB7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdXApIHtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgbWVudSBpY29uIHdpdGggYSBzZXQgd2lkdGgsIGhlaWdodCwgbnVtYmVyIG9mIGJhcnMsIGFuZCBjb2xvcnMuIFRoZSBtaXhpbiB1c2VzIHRoZSBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgdGhlIGJhcnMgdG8gZGV0ZXJtaW5lIHNwYWNpbmcuIDxkaXYgY2xhc3M9XCJkb2NzLWV4YW1wbGUtYnVyZ2VyXCI+PC9kaXY+XG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvci1ob3ZlciBbJGRhcmstZ3JheV0gLSBDb2xvciB0byB1c2Ugd2hlbiB0aGUgaWNvbiBpcyBob3ZlcmVkIG92ZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMjBweF0gLSBXaWR0aCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbMTZweF0gLSBIZWlnaHQgb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWzJweF0gLSBIZWlnaHQgb2YgaW5kaXZpZHVhbCBiYXJzIGluIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFycyBbM10gLSBOdW1iZXIgb2YgYmFycyBpbiB0aGUgaWNvbi5cbkBtaXhpbiBoYW1idXJnZXIoXG4gICRjb2xvcjogJGJsYWNrLFxuICAkY29sb3ItaG92ZXI6ICRkYXJrLWdyYXksXG4gICR3aWR0aDogMjBweCxcbiAgJGhlaWdodDogMTZweCxcbiAgJHdlaWdodDogMnB4LFxuICAkYmFyczogM1xuKSB7XG4gIC8vIGJveC1zaGFkb3cgQ1NTIG91dHB1dFxuICAkc2hhZG93OiAoKTtcbiAgJGhvdmVyLXNoYWRvdzogKCk7XG5cbiAgLy8gU3BhY2luZyBiZXR3ZWVuIGJhcnMgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIGVhY2ggYmFyXG4gICRzcGFjaW5nOiAoJGhlaWdodCAtICgkd2VpZ2h0ICogJGJhcnMpKSAvICgkYmFycyAtIDEpO1xuXG4gIEBpZiB1bml0KCRzcGFjaW5nKSA9PSAncHgnIHtcbiAgICAkc3BhY2luZzogZmxvb3IoJHNwYWNpbmcpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAkc2hhZG93OiBhcHBlbmQoJHNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLCBjb21tYSk7XG4gIH1cblxuICAvLyBJY29uIGNvbnRhaW5lclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLy8gSWNvbiBiYXJzXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdztcblxuICAgIGNvbnRlbnQ6ICcnOyAgICBcbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlXG4gIEBpZiAkY29sb3ItaG92ZXIge1xuICAgIC8vIEdlbmVyYXRlIENTU1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAgICRob3Zlci1zaGFkb3c6IGFwcGVuZCgkaG92ZXItc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3ItaG92ZXIsIGNvbW1hKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItaG92ZXI7XG4gICAgICBib3gtc2hhZG93OiAkaG92ZXItc2hhZG93O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRvd253YXJkLWZhY2luZyB0cmlhbmdsZSBhcyBhIGJhY2tncm91bmQgaW1hZ2UgdG8gYW4gZWxlbWVudC4gVGhlIGltYWdlIGlzIGZvcm1hdHRlZCBhcyBhbiBTVkcsIG1ha2luZyBpdCBlYXN5IHRvIGNoYW5nZSB0aGUgY29sb3IuIEJlY2F1c2UgSW50ZXJuZXQgRXhwbG9yZXIgZG9lc24ndCBzdXBwb3J0IGVuY29kZWQgU1ZHcyBhcyBiYWNrZ3JvdW5kIGltYWdlcywgYSBQTkcgZmFsbGJhY2sgaXMgYWxzbyBpbmNsdWRlZC5cbi8vLyBUaGVyZSBhcmUgdHdvIFBORyBmYWxsYmFja3M6IGEgYmxhY2sgdHJpYW5nbGUgYW5kIGEgd2hpdGUgdHJpYW5nbGUuIFRoZSBvbmUgdXNlZCBkZXBlbmRzIG9uIHRoZSBsaWdodG5lc3Mgb2YgdGhlIGlucHV0IGNvbG9yLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgdHJpYW5nbGUuXG5AbWl4aW4gYmFja2dyb3VuZC10cmlhbmdsZSgkY29sb3I6ICRibGFjaykge1xuICAkcmdiOiAncmdiJTI4I3tyb3VuZChyZWQoJGNvbG9yKSl9LCAje3JvdW5kKGdyZWVuKCRjb2xvcikpfSwgI3tyb3VuZChibHVlKCRjb2xvcikpfSUyOSc7XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzMyJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMzIgMjQnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDMyLDAgMTYsMjQnIHN0eWxlPSdmaWxsOiAjeyRyZ2J9Jz48L3BvbHlnb24+PC9zdmc+XCIpO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MFxcMCkge1xuICAgIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA8IDYwJSB7XG4gICAgICAvLyBXaGl0ZSB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIEJsYWNrIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBTUJKUkVGVWVOckVsbHNPaENBTVJWc3pDOUlselU3S0NtVkhUSnNvTVdZTVV0cHl2OUJnYnVYUUI1WlNkZ0JZWVk0eWNnQml2azhLWUZzUU1mTWlUVEJQNG8zblV6Q0t6T2FiTEpiTHkyL2czMWV2R2tBZ2luUjQvWmVnS0g1cVgzYkpDc2NBM3QweDNrZ081dFFGeWhoRmY1MHhScUZMYnlNVU5KUXpneWpHUy93Z0Nwdktxa1JCcHVXckU0VjlkKzFFNGRQVVhxSWcxMDdTUU9FLzJEUlF4TXdURHlnSUluVkRFVDlUM2xDb2ovNmovVkNtR2paT2wybEtwWjhBQXdEUVA3eklpbURHRlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFwcGxpZXMgdGhlIG1pY3JvIGNsZWFyZml4IGhhY2sgcG9wdWxhcml6ZWQgYnkgTmljb2xhcyBHYWxsYWdoZXIuIEluY2x1ZGUgdGhpcyBtaXhpbiBvbiBhIGNvbnRhaW5lciBpZiBpdHMgY2hpbGRyZW4gYXJlIGFsbCBmbG9hdGVkLCB0byBnaXZlIHRoZSBjb250YWluZXIgYSBwcm9wZXIgaGVpZ2h0LlxuLy8vIFRoZSBjbGVhcmZpeCBpcyBhdWdtZW50ZWQgd2l0aCBzcGVjaWZpYyBzdHlsZXMgdG8gcHJldmVudCBib3JkZXJzIGluIGZsZXhib3ggZW52aXJvbm1lbnRzXG4vLy8gQGxpbmsgaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svIE1pY3JvIENsZWFyZml4IEhhY2tcbi8vLyBAbGluayBodHRwOi8vZGFuaXNhZGVzaWduZXIuY29tL2Jsb2cvZmxleGJveC1jbGVhci1maXgtcHNldWRvLWVsZW1lbnRzLyBGbGV4Ym94IGZpeFxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbi8vLyBBZGRzIENTUyBmb3IgYSBcInF1YW50aXR5IHF1ZXJ5XCIgc2VsZWN0b3IgdGhhdCBhdXRvbWF0aWNhbGx5IHNpemVzIGVsZW1lbnRzIGJhc2VkIG9uIGhvdyBtYW55IHRoZXJlIGFyZSBpbnNpZGUgYSBjb250YWluZXIuXG4vLy8gQGxpbmsgaHR0cDovL2FsaXN0YXBhcnQuY29tL2FydGljbGUvcXVhbnRpdHktcXVlcmllcy1mb3ItY3NzIFF1YW50aXR5IFF1ZXJpZXMgZm9yIENTU1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXggLSBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byBkZXRlY3QuIFRoZSBoaWdoZXIgdGhpcyBudW1iZXIgaXMsIHRoZSBtb3JlIENTUyB0aGF0J3MgcmVxdWlyZWQgdG8gY292ZXIgZWFjaCBudW1iZXIgb2YgaXRlbXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZWxlbSBbbGldIC0gVGFnIHRvIHVzZSBmb3Igc2libGluZyBzZWxlY3RvcnMuXG5AbWl4aW4gYXV0by13aWR0aCgkbWF4LCAkZWxlbTogbGkpIHtcbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkbWF4IHtcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCxcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCB+ICN7JGVsZW19IHtcbiAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEgLyAkaSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBSZW1vdmVzIHRoZSBmb2N1cyByaW5nIGFyb3VuZCBhbiBlbGVtZW50IHdoZW4gYSBtb3VzZSBpbnB1dCBpcyBkZXRlY3RlZC5cbkBtaXhpbiBkaXNhYmxlLW1vdXNlLW91dGxpbmUge1xuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gJiB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXG4vLy8gQGxpbmsgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eVxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xufVxuXG4vLy8gUmV2ZXJzZXMgdGhlIENTUyBvdXRwdXQgY3JlYXRlZCBieSB0aGUgYGVsZW1lbnQtaW52aXNpYmxlKClgIG1peGluLlxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZiB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiB0cnVlKSB7XG4gICRsaXN0OiAkYnJlYWtwb2ludC1jbGFzc2VzO1xuXG4gIEBpZiBub3QgJHNtYWxsIHtcbiAgICAkbGlzdDogc2wtcmVtb3ZlKCRsaXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCk7XG4gIH1cblxuICBAZWFjaCAkbmFtZSBpbiAkbGlzdCB7XG4gICAgJC16Zi1zaXplOiAkbmFtZSAhZ2xvYmFsO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSB0aGUgYEBjb250ZW50YCBwYXNzZWQgdG8gdGhlIG1peGluIHdpdGggYSB2YWx1ZSBgJC16Zi1icC12YWx1ZWAgcmVsYXRlZCB0byBhIGJyZWFrcG9pbnQsIGRlcGVuZGluZyBvbiB0aGUgYCRuYW1lYCBwYXJhbWV0ZXI6XG4vLy8gLSBGb3IgYSBzaW5nbGUgdmFsdWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGlzIHZhbHVlLlxuLy8vIC0gRm9yIGEgYnJlYWtwb2ludCBuYW1lLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAuXG4vLy8gLSBGb3IgXCJhdXRvXCIsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYCBhbmQgaXMgcGFzc2VkIHRvIGBAY29udGVudGAsIHdoaWNoIGlzIG1hZGUgcmVzcG9uc2l2ZSBmb3IgZWFjaCBicmVha3BvaW50IG9mIGAkbWFwYC5cbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkbmFtZSBbYXV0b10gLSBTaW5nbGUgdmFsdWUgb3IgYnJlYWtwb2ludCBuYW1lIHRvIHVzZS4gXCJhdXRvXCIgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBNYXAgb2YgYnJlYWtwb2ludHMgYW5kIHZhbHVlcyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLlxuQG1peGluIC16Zi1icmVha3BvaW50LXZhbHVlKFxuICAkbmFtZTogYXV0byxcbiAgJG1hcDogbnVsbFxuKSB7XG4gIEBpZiAkbmFtZSA9PSBhdXRvIGFuZCB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAvLyBcImF1dG9cIlxuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGspIHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJHYsICRtYXApIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gYnJlYWtwb2ludCBuYW1lXG4gICAgQGlmIHR5cGUtb2YoJG5hbWUpID09ICdzdHJpbmcnIHtcbiAgICAgICRuYW1lOiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkbmFtZSk7XG4gICAgfVxuXG4gICAgLy8gYnJlYWtwb2ludCB2YWx1ZVxuICAgICQtemYtYnAtdmFsdWU6ICRuYW1lICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIE91dHB1dHMgQ1NTIGNsYXNzZXMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIGZvdW5kYXRpb24tZ3JpZChcbiAgJHJvdzogJ3JvdycsXG4gICRjb2x1bW46ICdjb2x1bW4nLFxuICAkY29sdW1uLXJvdzogJ2NvbHVtbi1yb3cnLFxuICAkZ3V0dGVyOiAnZ3V0dGVyJyxcbiAgJHB1c2g6ICdwdXNoJyxcbiAgJHB1bGw6ICdwdWxsJyxcbiAgJGNlbnRlcjogJ2NlbnRlcmVkJyxcbiAgJHVuY2VudGVyOiAndW5jZW50ZXJlZCcsXG4gICRjb2xsYXBzZTogJ2NvbGxhcHNlJyxcbiAgJHVuY29sbGFwc2U6ICd1bmNvbGxhcHNlJyxcbiAgJG9mZnNldDogJ29mZnNldCcsXG4gICRlbmQ6ICdlbmQnLFxuICAkZXhwYW5kZWQ6ICdleHBhbmRlZCcsXG4gICRibG9jazogJ2Jsb2NrJ1xuKSB7XG4gIC8vIFJvd1xuICAuI3skcm93fSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG5cbiAgICAvLyBDb2xsYXBzaW5nXG4gICAgJi4jeyRjb2xsYXBzZX0ge1xuICAgICAgPiAuI3skY29sdW1ufSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmIC4jeyRyb3d9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGdyaWQtY29sdW1uLWd1dHRlcik7XG5cbiAgICAgICYuI3skY29sbGFwc2V9IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFeHBhbmRlZCAoZnVsbC13aWR0aCkgcm93XG4gICAgJi4jeyRleHBhbmRlZH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuXG4gICAgICAuI3skcm93fSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLiN7JGV4cGFuZGVkfSkgLiN7JHJvd30ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuICAgIH1cblxuICAgIEBpZiB0eXBlLW9mKCRncmlkLWNvbHVtbi1ndXR0ZXIpID09ICdtYXAnIHtcbiAgICAgIC8vIFN0YXRpYyAodW5yZXNwb25zaXZlKSByb3cgZ3V0dGVyc1xuICAgICAgLy9cbiAgICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFsdWUgaW4gJGdyaWQtY29sdW1uLWd1dHRlciB7XG4gICAgICAgICYuI3skZ3V0dGVyfS0jeyRicmVha3BvaW50fSB7XG4gICAgICAgICAgPiAuI3skY29sdW1ufSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW5cbiAgLiN7JGNvbHVtbn0ge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sO1xuXG4gICAgQGlmICRncmlkLWNvbHVtbi1hbGlnbi1lZGdlIHtcbiAgICAgICYuI3skZW5kfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWVuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW4gcm93XG4gIC8vIFRoZSBkb3VibGUgLnJvdyBjbGFzcyBpcyBuZWVkZWQgdG8gYnVtcCB1cCB0aGUgc3BlY2lmaWNpdHlcbiAgLiN7JGNvbHVtbn0uI3skcm93fS4jeyRyb3d9IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIFRvIHByb3Blcmx5IG5lc3QgYSBjb2x1bW4gcm93LCBwYWRkaW5nIGFuZCBtYXJnaW4gaXMgcmVtb3ZlZFxuICAuI3skcm93fSAuI3skY29sdW1ufS4jeyRyb3d9LiN7JHJvd30ge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgIC8vIENvbHVtbiB3aWR0aFxuICAgICAgLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXNpemUoJGkpO1xuICAgICAgfVxuXG4gICAgICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgICAgIEBpZiAkaSA8ICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAgIC4jeyQtemYtc2l6ZX0tI3skcHVzaH0tI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXBvcygkaSk7XG4gICAgICAgIH1cblxuICAgICAgICAuI3skLXpmLXNpemV9LSN7JHB1bGx9LSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoLSRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LSN7JG9mZnNldH0tI3skb30ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1vZmYoJG8pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJsb2NrIGdyaWRcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRibG9jay1ncmlkLW1heCB7XG4gICAgICAuI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1sYXlvdXQoJGksICcuI3skY29sdW1ufScpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgY29sbGFwc2luZ1xuICAgIC4jeyQtemYtc2l6ZX0tI3skY29sbGFwc2V9IHtcbiAgICAgID4gLiN7JGNvbHVtbn0geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxuXG4gICAgICAuI3skcm93fSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLiN7JGV4cGFuZGVkfS4jeyRyb3d9IC4jeyQtemYtc2l6ZX0tI3skY29sbGFwc2V9LiN7JHJvd30ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS0jeyR1bmNvbGxhcHNlfSB7XG4gICAgICA+IC4jeyRjb2x1bW59IHsgQGluY2x1ZGUgZ3JpZC1jb2wtZ3V0dGVyKCQtemYtc2l6ZSk7IH1cbiAgICB9XG5cbiAgICAvLyBQb3NpdGlvbmluZ1xuICAgIC4jeyQtemYtc2l6ZX0tI3skY2VudGVyfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoY2VudGVyKTtcbiAgICB9XG5cbiAgICAvLyBHdXR0ZXIgYWRqdXN0bWVudFxuICAgIC4jeyQtemYtc2l6ZX0tI3skdW5jZW50ZXJ9LFxuICAgIC4jeyQtemYtc2l6ZX0tI3skcHVzaH0tMCxcbiAgICAuI3skLXpmLXNpemV9LSN7JHB1bGx9LTAge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtdW5wb3M7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2sgZ3JpZCBjb2x1bW5zXG4gIC4jeyRjb2x1bW59LSN7JGJsb2NrfSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tbWFyZ2luO1xuICB9XG5cbiAgQGlmICRjb2x1bW4gPT0gJ2NvbHVtbicge1xuICAgIC5jb2x1bW5zIHtcbiAgICAgIC8vIHNhc3MtbGludDpkaXNhYmxlLWJsb2NrIHBsYWNlaG9sZGVyLWluLWV4dGVuZFxuICAgICAgQGV4dGVuZCAuY29sdW1uO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2hhbmdlIHRoZSBiZWhhdmlvciBvZiBjb2x1bW5zIGRlZmluZWQgaW5zaWRlIHRoaXMgbWl4aW4gdG8gdXNlIGEgZGlmZmVyZW50IGNvbHVtbiBjb3VudC5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHJvb3QgW2ZhbHNlXVxuLy8vICAgSWYgYGZhbHNlYCwgc2VsZWN0b3JzIGluc2lkZSB0aGlzIG1peGluIHdpbGwgbmVzdCBpbnNpZGUgdGhlIHBhcmVudCBzZWxlY3Rvci5cbi8vLyAgIElmIGB0cnVlYCwgc2VsZWN0b3JzIHdpbGwgbm90IG5lc3QuXG5AbWl4aW4gZ3JpZC1jb250ZXh0KFxuICAkY29sdW1ucyxcbiAgJHJvb3Q6IGZhbHNlXG4pIHtcbiAgLy8gU3RvcmUgdGhlIGN1cnJlbnQgY29sdW1uIGNvdW50IHNvIGl0IGNhbiBiZSByZS1zZXQgbGF0ZXJcbiAgJG9sZC1ncmlkLWNvbHVtbi1jb3VudDogJGdyaWQtY29sdW1uLWNvdW50O1xuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRjb2x1bW5zICFnbG9iYWw7XG5cbiAgQGlmICRyb290IHtcbiAgICBAYXQtcm9vdCB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgb2xkIGNvbHVtbiBjb3VudFxuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRvbGQtZ3JpZC1jb2x1bW4tY291bnQgIWdsb2JhbDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIHJvdy5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIENvbHVtbiBjb3VudCBmb3IgdGhpcyByb3cuIGBudWxsYCB3aWxsIHVzZSB0aGUgZGVmYXVsdCBjb2x1bW4gY291bnQuXG4vLy8gQHBhcmFtIHtLZXl3b3Jkc30gJGJlaGF2aW9yIFtudWxsXVxuLy8vICAgTW9kaWZpY2F0aW9ucyB0byB0aGUgZGVmYXVsdCBncmlkIHN0eWxlcy4gYG5lc3RgIGluZGljYXRlcyB0aGUgcm93IHdpbGwgYmUgcGxhY2VkIGluc2lkZSBhbm90aGVyIHJvdy4gYGNvbGxhcHNlYCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29sdW1ucyBpbnNpZGUgdGhpcyByb3cgd2lsbCBub3QgaGF2ZSBwYWRkaW5nLiBgbmVzdCBjb2xsYXBzZWAgY29tYmluZXMgYm90aCBiZWhhdmlvcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgWyRncmlkLXJvdy13aWR0aF0gTWF4aW11bSBzaXplIG9mIHRoZSByb3cuIFNldCB0byBgZXhwYW5kYCB0byBtYWtlIHRoZSByb3cgdGFraW5nIHRoZSBmdWxsIHdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGNmIFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgYSBjbGVhcmZpeC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93KFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkc2l6ZTogJGdyaWQtcm93LXdpZHRoLFxuICAkY2Y6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXJzKTtcblxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZSgkc2l6ZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGlmICRjZiB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEludmVydHMgdGhlIG1hcmdpbnMgb2YgYSByb3cgdG8gbmVzdCBpdCBpbnNpZGUgb2YgYSBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93LW5lc3QoJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgJG1hcmdpbjogcmVtLWNhbGMoLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICQtemYtc2l6ZSkpIC8gMiAqIC0xO1xuXG4gICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luO1xuICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXQgYSBncmlkIHJvdyBzaXplXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG5AbWl4aW4gZ3JpZC1yb3ctc2l6ZSgkc2l6ZTogJGdyaWQtcm93LXdpZHRoKSB7XG4gIEBpZiAkc2l6ZSA9PSBleHBhbmQge1xuICAgICRzaXplOiBub25lO1xuICB9XG5cbiAgbWF4LXdpZHRoOiAkc2l6ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFNldCB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtblxuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRndXR0ZXIgW2F1dG9dXG4vLy8gICBTcGFjaW5nIGJldHdlZW4gY29sdW1ucywgYWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgc2luZ2xlIHZhbHVlIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBicmVha3BvaW50IG5hbWUgd2lsbCBtYWtlIHRoZSBndXR0ZXIgdGhlIGNvcnJlc3BvbmRpbmcgc2l6ZSBpbiB0aGUgJGd1dHRlcnMgbWFwLlxuLy8vICAgLSBcImF1dG9cIiB3aWxsIG1ha2UgdGhlIGd1dHRlciByZXNwb25zaXZlLCB1c2luZyB0aGUgJGd1dHRlcnMgbWFwIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLWNvbHVtbi1ndXR0ZXIoXG4gICRndXR0ZXI6IGF1dG8sXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJGd1dHRlciwgJGd1dHRlcnMpIHtcbiAgICAkcGFkZGluZzogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSkgLyAyO1xuXG4gICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgfVxufVxuXG4vLy8gQ29sbGFwc2UgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW4gYnkgcmVtb3ZpbmcgdGhlIHBhZGRpbmcuICoqTm90ZToqKiBvbmx5IHVzZSB0aGlzIG1peGluIHdpdGhpbiBhIGJyZWFrcG9pbnQuIFRvIGNvbGxhcHNlIGEgY29sdW1uJ3MgZ3V0dGVycyBvbiBhbGwgc2NyZWVuIHNpemVzLCB1c2UgdGhlIGAkZ3V0dGVyYCBwYXJhbWV0ZXIgb2YgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiBpbnN0ZWFkLlxuQG1peGluIGdyaWQtY29sdW1uLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKDApO1xufVxuXG4vLy8gVW4tY29sbGFwc2UgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW4gYnkgcmUtYWRkaW5nIHRoZSBwYWRkaW5nLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IGdyaWQtY29sdW1uLWd1dHRlcigpLiBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi40Lic7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyczogJGd1dHRlcik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWd1dHRlclxuQG1peGluIGdyaWQtY29sLWd1dHRlcihcbiAgJGd1dHRlcjogYXV0byxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlciwgJGd1dHRlcnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tY29sbGFwc2UoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWNvbGxhcHNlXG5AbWl4aW4gZ3JpZC1jb2wtY29sbGFwc2Uge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1jb2xsYXBzZTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVuY29sbGFwc2UoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVuY29sbGFwc2VcbkBtaXhpbiBncmlkLWNvbC11bmNvbGxhcHNlKCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZ3JpZC1jb2wtZ3V0dGVyKCkuIGdyaWQtY29sLXVuY29sbGFwc2UoKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjQuJztcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgkZ3V0dGVyKTtcbn1cblxuLy8vIFNldHMgYm90dG9tIG1hcmdpbiBvbiBncmlkIGNvbHVtbnMgdG8gbWF0Y2ggZ3V0dGVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRtYXJnaW4gW2F1dG9dXG4vLy8gICBUaGUgYm90dG9tIG1hcmdpbiBvbiBncmlkIGNvbHVtbnMsIGFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHNpbmdsZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIG1hcmdpbiB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgYnJlYWtwb2ludCBuYW1lIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHRoZSBjb3JyZXNwb25kaW5nIHNpemUgaW4gdGhlICRtYXJnaW5zIG1hcC5cbi8vLyAgIC0gXCJhdXRvXCIgd2lsbCBtYWtlIHRoZSBtYXJnaW4gcmVzcG9uc2l2ZSwgdXNpbmcgdGhlICRtYXJnaW5zIG1hcCB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFyZ2lucyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLWNvbHVtbi1tYXJnaW4gKFxuICAkbWFyZ2luOiBhdXRvLFxuICAkbWFyZ2luczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRtYXJnaW4sICRtYXJnaW5zKSB7XG4gICAgJG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpO1xuICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tYm90dG9tO1xuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWtwb2ludHNcbi8vLy9cblxuLy8vIEEgbGlzdCBvZiBuYW1lZCBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcy5cbi8vLyBAdHlwZSBNYXBcbiRicmVha3BvaW50czogKFxuICBzbWFsbDogMCxcbiAgbWVkaXVtOiA2NDBweCxcbiAgbGFyZ2U6IDEwMjRweCxcbiAgeGxhcmdlOiAxMjAwcHgsXG4gIHh4bGFyZ2U6IDE0NDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGFyZ2VzdCBuYW1lZCBicmVha3BvaW50IGluIHdoaWNoIHRvIGluY2x1ZGUgcHJpbnQgYXMgYSBtZWRpYSB0eXBlXG4vLy8gQHR5cGUgS2V5d29yZFxuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlICFkZWZhdWx0O1xuXG4kLXpmLXplcm8tYnJlYWtwb2ludDogc21hbGwgIWRlZmF1bHQ7XG5cbiQtemYtYnJlYWtwb2ludHMta2V5czogbWFwLXRvLWxpc3QoJGJyZWFrcG9pbnRzLCAna2V5cycpO1xuXG5AaWYgbnRoKG1hcC12YWx1ZXMoJGJyZWFrcG9pbnRzKSwgMSkgIT0gMCB7XG4gIEBlcnJvciAnWW91ciBzbWFsbGVzdCBicmVha3BvaW50IChkZWZpbmVkIGluICRicmVha3BvaW50cykgbXVzdCBiZSBzZXQgdG8gXCIwXCIuJztcbn1cbkBlbHNlIHtcbiAgJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IG50aChtYXAta2V5cygkYnJlYWtwb2ludHMpLCAxKTtcbn1cblxuLy8vIEFsbCBvZiB0aGUgbmFtZXMgaW4gdGhpcyBsaXN0IHdpbGwgYmUgb3V0cHV0IGFzIGNsYXNzZXMgaW4geW91ciBDU1MsIGxpa2UgYC5zbWFsbC0xMmAsIGAubWVkaXVtLTZgLCBhbmQgc28gb24uIEVhY2ggdmFsdWUgaW4gdGhpcyBsaXN0IG11c3QgYWxzbyBiZSBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLlxuLy8vIEB0eXBlIExpc3RcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgc3RyaW5nIG1hdGNoaW5nIHRoZSBpbnB1dCB2YWx1ZS4gUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBzZWUgd2hhdCB0aGUgcG9zc2libGUgaW5wdXRzIGFyZS5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWwgW3NtYWxsXSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbkBmdW5jdGlvbiBicmVha3BvaW50KCR2YWw6ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gIC8vIFNpemUgb3Iga2V5d29yZFxuICAkYnA6IG50aCgkdmFsLCAxKTtcbiAgLy8gVmFsdWUgZm9yIG1heC13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1tYXg6IDA7XG4gIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xuICAvLyBFdmVudHVhbCBvdXRwdXRcbiAgJHN0cjogJyc7XG4gIC8vIElzIGl0IGEgbmFtZWQgbWVkaWEgcXVlcnk/XG4gICRuYW1lZDogZmFsc2U7XG5cbiAgLy8gT3JpZW50YXRpb24gbWVkaWEgcXVlcmllcyBoYXZlIGEgdW5pcXVlIHN5bnRheFxuICBAaWYgJGJwID09ICdsYW5kc2NhcGUnIG9yICRicCA9PSAncG9ydHJhaXQnIHtcbiAgICBAcmV0dXJuICcob3JpZW50YXRpb246ICN7JGJwfSknO1xuICB9XG4gIEBlbHNlIGlmICRicCA9PSAncmV0aW5hJyB7XG4gICAgQHJldHVybiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSc7XG4gIH1cblxuICAvLyBUcnkgdG8gcHVsbCBhIG5hbWVkIGJyZWFrcG9pbnQgb3V0IG9mIHRoZSAkYnJlYWtwb2ludHMgbWFwXG4gIEBpZiB0eXBlLW9mKCRicCkgPT0gJ3N0cmluZycge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xuICAgICAgQGlmICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICAgJGJwLW1heDogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJGJwKTtcbiAgICAgIH1cblxuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGJwKTtcbiAgICAgICRuYW1lZDogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGJwOiAwO1xuICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogXCIjeyR2YWx9XCIgaXMgbm90IGRlZmluZWQgaW4geW91ciAkYnJlYWtwb2ludHMgc2V0dGluZy4nO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbnZlcnQgYW55IHBpeGVsLCByZW0sIG9yIHVuaXRsZXNzIHZhbHVlIHRvIGVtXG4gICRicDogLXpmLWJwLXRvLWVtKCRicCk7XG4gIEBpZiAkYnAtbWF4IHtcbiAgICAkYnAtbWF4OiAtemYtYnAtdG8tZW0oJGJwLW1heCkgLSAoMS8xNik7XG4gIH1cblxuICAvLyBDb25kaXRpb25zIHRvIHNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb25cbiAgLy8gLSBJdCdzIGEgbmFtZWQgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBkb3duXCIgb3IgXCIwIHVwXCJcbiAgLy8gLSBJdCdzIGEgbnVtZXJpYyBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIFwiICsgYW55dGhpbmdcbiAgQGlmICRicCA+IDBlbSBvciAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgLy8gYG9ubHlgIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1pbi13aWR0aDogbikgYW5kIChtYXgtd2lkdGg6IG4pYFxuICAgIEBpZiAkZGlyID09ICdvbmx5JyB7XG4gICAgICAvLyBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gXCJvbmx5XCIgcmFuZ2VcbiAgICAgIEBpZiAkbmFtZWQgPT0gdHJ1ZSB7XG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWluLXdpZHRoXCIgaWYgdGhlIGZsb29yIGlzIGdyZWF0ZXIgdGhhbiAwXG4gICAgICAgIEBpZiAkYnAgPiAwZW0ge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1pbi13aWR0aDogI3skYnB9KSc7XG5cbiAgICAgICAgICAvLyBPbmx5IGFkZCBcImFuZFwiIHRvIHRoZSBtZWRpYSBxdWVyeSBpZiB0aGVyZSdzIGEgY2VpbGluZ1xuICAgICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICAgJHN0cjogJHN0ciArICcgYW5kICc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gT25seSB1c2UgXCJtYXgtd2lkdGhcIiBpZiB0aGVyZSdzIGEgY2VpbGluZ1xuICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JGJwLW1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gYG9ubHlgIHJhbmdlLic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYGRvd25gIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1heC13aWR0aDogbilgXG4gICAgQGVsc2UgaWYgJGRpciA9PSAnZG93bicge1xuICAgICAgJG1heDogaWYoJG5hbWVkLCAkYnAtbWF4LCAkYnApO1xuXG4gICAgICAvLyBTa2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uIGlmIGlucHV0IHZhbHVlIGlzIGV4YWN0bHkgXCIwIGRvd25cIixcbiAgICAgIC8vIHVubGVzcyB0aGUgZnVuY3Rpb24gd2FzIGNhbGxlZCBhcyBcInNtYWxsIGRvd25cIiwgaW4gd2hpY2ggY2FzZSBpdCdzIGp1c3QgXCJzbWFsbCBvbmx5XCJcbiAgICAgIEBpZiAkbmFtZWQgb3IgJGJwID4gMGVtIHtcbiAgICAgICAgQGlmICRtYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRtYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgdXBgIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1pbi13aWR0aDogbilgXG4gICAgQGVsc2UgaWYgJGJwID4gMGVtIHtcbiAgICAgICRzdHI6ICRzdHIgKyAnKG1pbi13aWR0aDogI3skYnB9KSc7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gV3JhcHMgYSBtZWRpYSBxdWVyeSBhcm91bmQgdGhlIGNvbnRlbnQgeW91IHB1dCBpbnNpZGUgdGhlIG1peGluLiBUaGlzIG1peGluIGFjY2VwdHMgYSBudW1iZXIgb2YgdmFsdWVzOlxuLy8vICAtIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgbG9vayBmb3IgaXQgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcCwgYW5kIHVzZSBhIG1lZGlhIHF1ZXJ5IHRoZXJlLlxuLy8vICAtIElmIGEgcGl4ZWwgdmFsdWUgaXMgcGFzc2VkLCBpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhbiBlbSB2YWx1ZSB1c2luZyBgJGdsb2JhbC1mb250LXNpemVgIGFzIHRoZSBiYXNlLlxuLy8vICAtIElmIGEgcmVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHVuaXQgd2lsbCBiZSBjaGFuZ2VkIHRvIGVtLlxuLy8vICAtIElmIGFuIGVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHZhbHVlIHdpbGwgYmUgdXNlZCBhcy1pcy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbi8vL1xuLy8vIEBvdXRwdXQgSWYgdGhlIGJyZWFrcG9pbnQgaXMgXCIwcHggYW5kIGxhcmdlclwiLCBvdXRwdXRzIHRoZSBjb250ZW50IGFzLWlzLiBPdGhlcndpc2UsIG91dHB1dHMgdGhlIGNvbnRlbnQgd3JhcHBlZCBpbiBhIG1lZGlhIHF1ZXJ5LlxuQG1peGluIGJyZWFrcG9pbnQoJHZhbHVlKSB7XG4gICRzdHI6IGJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgJGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICR2YWx1ZSk7XG4gICRwYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHByaW50LWJyZWFrcG9pbnQpO1xuXG4gIC8vIElmICRzdHIgaXMgc3RpbGwgYW4gZW1wdHkgc3RyaW5nLCBubyBtZWRpYSBxdWVyeSBpcyBuZWVkZWRcbiAgQGlmICRzdHIgPT0gJycge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCB3cmFwIHRoZSBjb250ZW50IGluIGEgbWVkaWEgcXVlcnlcbiAgQGVsc2Uge1xuICAgIC8vIEZvciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHByaW50LWJyZWFrcG9pbnQsIGFkZCBwcmludCB0byB0aGUgbWVkaWEgdHlwZXNcbiAgICBAaWYgJGJwICE9IG51bGwgYW5kICRicCA8PSAkcGJwIHtcbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBDb252ZXJzIHRoZSBicmVha3BvaW50cyBtYXAgdG8gYSBVUkwtZW5jb2RlZCBzdHJpbmcsIGxpa2UgdGhpczogYGtleTE9dmFsdWUxJmtleTI9dmFsdWUyYC4gVGhlIHZhbHVlIGlzIHRoZW4gZHJvcHBlZCBpbnRvIHRoZSBDU1MgZm9yIGEgc3BlY2lhbCBgPG1ldGE+YCB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdC4gVGhpcyBpcyBob3cgd2UgdHJhbnNmZXIgdmFsdWVzIGZyb20gU2FzcyB0byBKYXZhU2NyaXB0LCBzbyB0aGV5IGNhbiBiZSBkZWZpbmVkIGluIG9uZSBwbGFjZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBtYXAncyBjb250ZW50cy5cbkBmdW5jdGlvbiAtemYtYnAtc2VyaWFsaXplKCRtYXApIHtcbiAgJHN0cjogJyc7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAkc3RyOiAkc3RyICsgJGtleSArICc9JyArIC16Zi1icC10by1lbSgkdmFsdWUpICsgJyYnO1xuICB9XG4gICRzdHI6IHN0ci1zbGljZSgkc3RyLCAxLCAtMik7XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xuXG4gIC8vIFN0b3JlIHRoZSBrZXlzIG9mIHRoZSBtYXAgYXMgYSBsaXN0XG4gICR2YWx1ZXM6IG1hcC1rZXlzKCRtYXApO1xuXG4gICRpOiAwO1xuXG4gIC8vIElmIHRoZSBLZXkgRXhpc3RzLCBHZXQgdGhlIGluZGV4IG9mIHRoZSBrZXkgd2l0aGluIHRoZSBtYXAgYW5kIGFkZCAxIHRvIGl0IGZvciB0aGUgbmV4dCBicmVha3BvaW50IGluIHRoZSBtYXBcbiAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICRpOiBpbmRleCgkdmFsdWVzLCAka2V5KSArIDE7XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAoJGkgPiBsZW5ndGgoJG1hcCkgb3IgJGkgPT0gMCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHZhbHVlcywgJGkpKTtcbiAgfVxuXG59XG5cbi8vLyBHZXQgYSB2YWx1ZSBmb3IgYSBicmVha3BvaW50IGZyb20gYSByZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0IHJlZ2FyZGxlc3Mgb2YgYCR2YWx1ZWAuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBoYXMgdGhlIGtleSBgJHZhbHVlYCwgdGhlIGV4YWN0IGJyZWFrcG9pbnQgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBkb2VzICpub3QqIGhhdmUgdGhlIGJyZWFrcG9pbnQsIHRoZSB2YWx1ZSBtYXRjaGluZyB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBpbiB0aGUgY29uZmlnIG1hcCBpcyByZXR1cm5lZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIFJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUgdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TWl4ZWR9IFRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUuXG5AZnVuY3Rpb24gLXpmLWdldC1icC12YWwoJG1hcCwgJHZhbHVlKSB7XG4gIC8vIElmIHRoZSBnaXZlbiBtYXAgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdFxuICBAaWYgdHlwZS1vZigkbWFwKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkbWFwO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgZ2xvYmFsbHlcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBpbiB0aGUgbG9jYWwgY29uZmlnIG1hcFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkbWFwLCAkdmFsdWUpIHtcbiAgICAvLyBJZiBpdCBkb2VzLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJHZhbHVlKTtcbiAgfVxuICAvLyBPdGhlcndpc2UsIGZpbmQgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgYW5kIHJldHVybiB0aGF0IHZhbHVlXG4gIEBlbHNlIHtcbiAgICAkYW5jaG9yOiBudWxsO1xuICAgICRmb3VuZDogZmFsc2U7XG5cbiAgICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICAgIEBpZiBtYXAtaGFzLWtleSgkbWFwLCAka2V5KSB7XG4gICAgICAgICAgJGFuY2hvcjogJGtleTtcbiAgICAgICAgfVxuICAgICAgICBAaWYgJGtleSA9PSAkdmFsdWUge1xuICAgICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkYW5jaG9yKTtcbiAgfVxufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBzbWFsbCkge1xuICAkc21hbGwtdXA6IHNjcmVlbjtcbiAgJHNtYWxsLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHNtYWxsIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBtZWRpdW0pIHtcbiAgJG1lZGl1bS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtKX0nKTtcbiAgJG1lZGl1bS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0gb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIGxhcmdlKSB7XG4gICRsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2UpfScpO1xuICAkbGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2Ugb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHhsYXJnZSkge1xuICAkeGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2UpfScpO1xuICAkeGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeHhsYXJnZSkge1xuICAkeHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeHhsYXJnZSl9Jyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTZXQgdGhlIHdpZHRoIG9mIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkd2lkdGggWyRncmlkLWNvbHVtbi1jb3VudF0gLSBXaWR0aCB0byBtYWtlIHRoZSBjb2x1bW4uIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1zaXplKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXNpemUoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXNpemVcbkBtaXhpbiBncmlkLWNvbC1zaXplKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tc2l6ZSgkY29sdW1ucyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiBhIGNvbHVtbiBiYXNlZCBvbiBhIG51bWJlciBvZiBmYWN0b3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGNvbHVtbnNcbi8vLyAgIFdpZHRoIG9mIHRoZSBjb2x1bW4uIEFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHBlcmNlbnRhZ2UgdmFsdWUgd2lsbCBtYWtlIHRoZSBjb2x1bW4gdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIHNpbmdsZSBkaWdpdCB3aWxsIG1ha2UgdGhlIGNvbHVtbiBzcGFuIHRoYXQgbnVtYmVyIG9mIGNvbHVtbnMgd2lkZSwgdGFraW5nIGludG8gYWNjb3VudCB0aGUgY29sdW1uIGNvdW50IG9mIHRoZSBwYXJlbnQgcm93LlxuLy8vICAgLSBBIGxpc3Qgb2YgdGhlIGZvcm1hdCBcInggb2YgeVwiICh3aXRob3V0IHF1b3Rlcykgd2lsbCBtYWtlIGEgY29sdW1uIHRoYXQgaXMgKngqIGNvbHVtbnMgd2lkZSwgYXNzdW1pbmcgKnkqIHRvdGFsIGNvbHVtbnMgZm9yIHRoZSBwYXJlbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIGNhbGN1bGF0ZWQgcGVyY2VudGFnZSB2YWx1ZS5cbkBmdW5jdGlvbiBncmlkLWNvbHVtbigkY29sdW1ucykge1xuICAkd2lkdGg6IDAlO1xuXG4gIC8vIFBhcnNpbmcgcGVyY2VudHMsIGRlY2ltYWxzLCBhbmQgY29sdW1uIGNvdW50c1xuICBAaWYgdHlwZS1vZigkY29sdW1ucykgPT0gJ251bWJlcicge1xuICAgIEBpZiB1bml0KCRjb2x1bW5zKSA9PSAnJScge1xuICAgICAgJHdpZHRoOiAkY29sdW1ucztcbiAgICB9XG4gICAgQGVsc2UgaWYgJGNvbHVtbnMgPCAxIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyAvICRncmlkLWNvbHVtbi1jb3VudCk7XG4gICAgfVxuICB9XG5cbiAgLy8gUGFyc2luZyBcIm4gb2YgblwiIGV4cHJlc3Npb25zXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGNvbHVtbnMpID09ICdsaXN0JyB7XG4gICAgQGlmIGxlbmd0aCgkY29sdW1ucykgIT0gMyB7XG4gICAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4oKS4gVXNlIHRoZSBmb3JtYXQgXCJuIG9mIG5cIi4nO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UobnRoKCRjb2x1bW5zLCAxKSAvIG50aCgkY29sdW1ucywgMykpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFueXRoaW5nIGVsc2UgaXMgaW5jb3JyZWN0XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4oKS4gVXNlIGEgbnVtYmVyLCBkZWNpbWFsLCBwZXJjZW50YWdlLCBvciBcIm4gb2YgblwiLic7XG4gIH1cblxuICBAcmV0dXJuICR3aWR0aDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICRjb2x1bW5zIFskZ3JpZC1jb2x1bW4tY291bnRdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uLWd1dHRlcigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuQG1peGluIGdyaWQtY29sdW1uKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50LFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXNpemUoJGNvbHVtbnMpO1xuICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuXG4gIC8vIEd1dHRlcnNcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXJzOiAkZ3V0dGVycyk7XG5cbiAgLy8gTGFzdCBjb2x1bW4gYWxpZ25tZW50XG4gIEBpZiAkZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZSB7XG4gICAgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLXJpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uIHJvdy4gVGhpcyBpcyB0aGUgZXF1aXZhbGVudCBvZiBhZGRpbmcgYC5yb3dgIGFuZCBgLmNvbHVtbmAgdG8gdGhlIHNhbWUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFdpZHRoIG9mIHRoZSBndXR0ZXJzIG9uIGVpdGhlciBzaWRlIG9mIHRoZSBjb2x1bW4gcm93LiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uLWd1dHRlcigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuQG1peGluIGdyaWQtY29sdW1uLXJvdyhcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLXJvdztcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGd1dHRlcnM6ICRndXR0ZXJzKTtcblxuICAmLFxuICAmOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBub25lO1xuICB9XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW5cbkBmdW5jdGlvbiBncmlkLWNvbChcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIEByZXR1cm4gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uXG5AbWl4aW4gZ3JpZC1jb2woXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnQsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnMsICRndXR0ZXJzKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXJvdygpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tcm93XG5AbWl4aW4gZ3JpZC1jb2wtcm93KFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXJvdygkZ3V0dGVycyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBSZXBvc2l0aW9uIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJHBvc2l0aW9uIC0gRGlyZWN0aW9uIGFuZCBhbW91bnQgdG8gbW92ZS4gVGhlIGNvbHVtbiB3aWxsIG1vdmUgZXF1YWwgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4gY291bnQgc3BlY2lmaWVkLiBBIHBvc2l0aXZlIG51bWJlciB3aWxsIHB1c2ggdGhlIGNvbHVtbiB0byB0aGUgcmlnaHQsIHdoaWxlIGEgbmVnYXRpdmUgbnVtYmVyIHdpbGwgcHVsbCBpdCB0byB0aGUgbGVmdC4gU2V0IHRvIGNlbnRlciB0byBjZW50ZXIgdGhlIGNvbHVtbi5cbkBtaXhpbiBncmlkLWNvbHVtbi1wb3NpdGlvbigkcG9zaXRpb24pIHtcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSAnbnVtYmVyJyB7XG4gICAgJG9mZnNldDogcGVyY2VudGFnZSgkcG9zaXRpb24gLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gY2VudGVyIHtcbiAgICAmLCAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbi1wb3NpdGlvbigpLiBFbnRlciBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIG51bWJlciwgb3IgY2VudGVyLic7XG4gIH1cbn1cblxuLy8vIFJlc2V0IGEgcG9zaXRpb24gZGVmaW5pdGlvbi5cbkBtaXhpbiBncmlkLWNvbHVtbi11bnBvc2l0aW9uIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi8vLyBPZmZzZXRzIGEgY29sdW1uIHRvIHRoZSByaWdodCBieSBgJG5gIGNvbHVtbnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJG4gLSBXaWR0aCB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1vZmZzZXQoJG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ3JpZC1jb2x1bW4oJG4pO1xufVxuXG4vLy8gRGlzYWJsZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgbGFzdCBjb2x1bW4gaW4gYSByb3cgYWxpZ25pbmcgdG8gdGhlIG9wcG9zaXRlIGVkZ2UuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZW5kIHtcbiAgLy8gVGhpcyBleHRyYSBzcGVjaWZpY2l0eSBpcyByZXF1aXJlZCBmb3IgdGhlIHByb3BlcnR5IHRvIGJlIGFwcGxpZWRcbiAgJjpsYXN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXBvcygkcG9zaXRpb24pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVucG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVucG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC11bnBvcyB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVucG9zaXRpb247XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1vZmZzZXQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLW9mZnNldFxuQG1peGluIGdyaWQtY29sLW9mZigkbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoJG4pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZW5kKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1lbmRcbkBtaXhpbiBncmlkLWNvbC1lbmQge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1lbmQ7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTaXplcyBjaGlsZCBlbGVtZW50cyBzbyB0aGF0IGAkbmAgbnVtYmVyIG9mIGl0ZW1zIGFwcGVhciBvbiBlYWNoIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBlbGVtZW50cyB0byBkaXNwbGF5IHBlciByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJy5jb2x1bW4nXSAtIFNlbGVjdG9yKHMpIHRvIHVzZSBmb3IgY2hpbGQgZWxlbWVudHMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGd1dHRlclxuLy8vICAgVGhlIGd1dHRlciB0byBhcHBseSB0byBjaGlsZCBlbGVtZW50cy4gQWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtICRncmlkLWNvbHVtbi1ndXR0ZXIgd2lsbCB1c2UgdGhlIHZhbHVlcyBpbiB0aGUgJGdyaWQtY29sdW1uLWd1dHRlciBtYXAsIGluY2x1ZGluZyBicmVha3BvaW50IHNpemVzLlxuLy8vICAgLSBBIGZpeGVkIG51bWVyaWMgdmFsdWUgd2lsbCBhcHBseSB0aGlzIGd1dHRlciB0byBhbGwgYnJlYWtwb2ludHMuXG5AbWl4aW4gZ3JpZC1sYXlvdXQoXG4gICRuLFxuICAkc2VsZWN0b3I6ICcuY29sdW1uJyxcbiAgJGd1dHRlcjogbnVsbFxuKSB7XG4gICYgPiAjeyRzZWxlY3Rvcn0ge1xuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoMS8kbik7XG5cbiAgICAvLyBJZiBhICRndXR0ZXIgdmFsdWUgaXMgcGFzc2VkXG4gICAgQGlmKCRndXR0ZXIpIHtcbiAgICAgIC8vIEd1dHRlcnNcbiAgICAgIEBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdtYXAnIHtcbiAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQsICR2YWx1ZSBpbiAkZ3V0dGVyIHtcbiAgICAgICAgICAkcGFkZGluZzogcmVtLWNhbGMoJHZhbHVlKSAvIDI7XG5cbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdudW1iZXInIGFuZCBzdHJpcC11bml0KCRndXR0ZXIpID4gMCB7XG4gICAgICAgICRwYWRkaW5nOiByZW0tY2FsYygkZ3V0dGVyKSAvIDI7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgIH1cblxuICAgICY6bnRoLW9mLXR5cGUoI3skbn1uKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBleHRyYSBDU1MgdG8gYmxvY2sgZ3JpZCBjaGlsZHJlbiBzbyB0aGUgbGFzdCBpdGVtcyBpbiB0aGUgcm93IGNlbnRlciBhdXRvbWF0aWNhbGx5LiBBcHBseSB0aGlzIHRvIHRoZSBjb2x1bW5zLCBub3QgdGhlIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBpdGVtcyB0aGF0IGFwcGVhciBpbiBlYWNoIHJvdy5cbkBtaXhpbiBncmlkLWxheW91dC1jZW50ZXItbGFzdCgkbikge1xuICBAZm9yICRpIGZyb20gMSB0byAkbiB7XG4gICAgQGlmICRpID09IDEge1xuICAgICAgJjpudGgtY2hpbGQoI3skbn1uKzEpOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tbGVmdDogKDEwMCAtIDEwMC8kbiAqICRpKSAvIDIgKiAxJTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJjpudGgtY2hpbGQoI3skbn1uKzEpOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAoMTAwIC0gMTAwLyRuICogJGkpIC8gMiAqIDElO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1iYXNlXG4vLy8vXG5cbi8vIEJhc2UgVHlwb2dyYXBoeVxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbi8vIFRoZXNlIGFyZSBzdHlsZXMgYXBwbGllZCB0byBiYXNpYyBIVE1MIHRhZ3MsIGluY2x1ZGluZzpcbi8vICAgLSBQYXJhZ3JhcGhzIDxwPlxuLy8gICAtIEJvbGQvaXRhbGljcyA8Yj4gPHN0cm9uZz4gPGk+IDxlbT5cbi8vICAgLSBTbWFsbCB0ZXh0IDxzbWFsbD5cbi8vICAgLSBIZWFkaW5ncyA8aDE+LTxoNj5cbi8vICAgLSBBbmNob3JzIDxhPlxuLy8gICAtIERpdmlkZXJzIDxocj5cbi8vICAgLSBMaXN0cyA8dWw+IDxvbD4gPGRsPlxuLy8gICAtIEJsb2NrcXVvdGVzIDxibG9ja3F1b3RlPlxuLy8gICAtIENvZGUgYmxvY2tzIDxjb2RlPlxuLy8gICAtIEFiYnJldmlhdGlvbnMgPGFiYnI+XG4vLyAgIC0gQ2l0YXRpb25zIDxjaXRlPlxuLy8gICAtIEtleXN0cm9rZXMgPGtiZD5cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBoZWFkZXIgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdHlsZSAoZS5nLiBpdGFsaWNpemVkKSBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIHVzZWQgZm9yIGVsZW1lbnRzIHRoYXQgdXNlIG1vbm9zcGFjZWQgdHlwZSwgc3VjaCBhcyBjb2RlIHNhbXBsZXNcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyBmb3IgaGVhZGluZ3MgYXQgdmFyaW91cyBzY3JlZW4gc2l6ZXMuIEVhY2gga2V5IGlzIGEgYnJlYWtwb2ludCwgYW5kIGVhY2ggdmFsdWUgaXMgYSBtYXAgb2YgaGVhZGluZyBzdHlsZXMuXG4vLy8gQHR5cGUgTWFwXG4kaGVhZGVyLXN0eWxlczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogMjQpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMTkpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMTgpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTcpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDQ4KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDMxKSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDI1KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbikgIWRlZmF1bHQ7XG5cbi8vICRoZWFkZXItc3R5bGVzIG1hcCBpcyBidWlsdCBmcm9tICRoZWFkZXItc2l6ZXMgaW4gb3JkZXIgdG8gZW5zdXJlIGRvd253YXJkIGNvbXBhdGliaWxpdHlcbi8vIHdoZW4gJGhlYWRlci1zaXplcyBpcyBkZXByZWNpYXRlZCwgJGhlYWRlci1zdHlsZXMgbmVlZHMgdG8gZ2V0ICFkZWZhdWx0IHZhbHVlcyBsaWtlIHNldHRpbmdzLnNjc3NcbkBmdW5jdGlvbiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKSB7XG4gIEB3YXJuICdOb3RlLCB0aGF0ICRoZWFkZXItc2l6ZXMgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCAkaGVhZGVyLXN0eWxlcy4gJGhlYWRlci1zaXplcyBzdGlsbCB3b3JrcywgYnV0IGl0IGlzIGdvaW5nIHRvIGJlIGRlcHJlY2lhdGVkLic7XG4gICRoZWFkZXItc3R5bGVzOiAoKTtcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc2l6ZXMge1xuICAgICRoZWFkZXItbWFwOiAoKTtcbiAgICBAZWFjaCAkaGVhZGVyLCAkZm9udC1zaXplIGluICRoZWFkZXJzIHtcbiAgICAgICRoZWFkZXItbWFwOiBtYXAtbWVyZ2UoJGhlYWRlci1tYXAsICgkaGVhZGVyOiAoJ2ZvbnQtc2l6ZSc6ICRmb250LXNpemUpKSk7ICBcbiAgICB9XG4gICAgJGhlYWRlci1zdHlsZXM6IG1hcC1tZXJnZSgkaGVhZGVyLXN0eWxlcywgKCRzaXplOiAkaGVhZGVyLW1hcCkpO1xuICB9XG4gIEByZXR1cm4gJGhlYWRlci1zdHlsZXM7XG59XG5cbi8vIElmIGl0IGV4aXN0cyAkaGVhZGVycy1zaXplcyBpcyB1c2VkIHRvIGJ1aWxkICRoZWFkZXItc3R5bGVzLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGhlYWRlci1zaXplcykge1xuICAkaGVhZGVyLXN0eWxlczogYnVpbGRfZnJvbV9oZWFkZXItc2l6ZXMoJGhlYWRlci1zaXplcyk7XG59XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2Qgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBgPHNtYWxsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc21hbGwtZm9udC1zaXplOiA4MCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBgPHNtYWxsPmAgZWxlbWVudHMgd2hlbiBwbGFjZWQgaW5zaWRlIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnNpZGUgYDxwPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBmb3IgcGFyYWdyYXBoIHRleHQuXG4vLy8gQHR5cGUgU3RyaW5nXG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW4gY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIExpc3RcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgYXJvdW5kIHRleHQgb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZW9jcmF0aW9uIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG8gIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuXG4vLy8gQnVsbGV0IHR5cGUgdG8gdXNlIGZvciB1bm9yZGVyZWQgbGlzdHMgKGUuZy4sIGBzcXVhcmVgLCBgY2lyY2xlYCwgYGRpc2NgKS5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2MgIWRlZmF1bHQ7XG5cbi8vLyBQb3NpdGlvbmluZyBmb3IgYnVsbGV0cyBvbiB1bm9yZGVyZWQgbGlzdCBpdGVtcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgbGlzdHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGEgbGlzdCBpbnNpZGUgYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgYDxkbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYDxkdD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGA8ZHQ+YCBhbmQgYDxkZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIGA8YmxvY2txdW90ZT5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KSAhZGVmYXVsdDtcblxuLy8vIFNpZGUgYm9yZGVyIGZvciBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQc2V1ZG8gY29udGVudCBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY2l0ZS1wc2V1ZG8tY29udGVudDogJ1xcMjAxNCBcXDAwMjAnICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBib3JkZXIgc3R5bGUgZm9yIGA8YWJicj5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2sgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktYmFzZSB7XG4gIC8vIFR5cG9ncmFwaHkgcmVzZXRzXG4gIGRpdixcbiAgZGwsXG4gIGR0LFxuICBkZCxcbiAgdWwsXG4gIG9sLFxuICBsaSxcbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNixcbiAgcHJlLFxuICBmb3JtLFxuICBwLFxuICBibG9ja3F1b3RlLFxuICB0aCxcbiAgdGQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gUGFyYWdyYXBoc1xuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcbiAgfVxuXG4gIC8vIEVtcGhhc2l6ZWQgdGV4dFxuICBlbSxcbiAgaSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU3Ryb25nIHRleHRcbiAgc3Ryb25nLFxuICBiIHtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFNtYWxsIHRleHRcbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEhlYWRpbmdzXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYge1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc3R5bGU6ICRoZWFkZXItZm9udC1zdHlsZTtcbiAgICBmb250LXdlaWdodDogJGhlYWRlci1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGhlYWRlci1jb2xvcjtcbiAgICB0ZXh0LXJlbmRlcmluZzogJGhlYWRlci10ZXh0LXJlbmRlcmluZztcblxuICAgIHNtYWxsIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgY29sb3I6ICRoZWFkZXItc21hbGwtZm9udC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBIZWFkaW5nIHN0eWxlc1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zdHlsZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRoZWFkZXIsICRoZWFkZXItZGVmcyBpbiAkaGVhZGVycyB7XG4gICAgICAgICRmb250LXNpemUtdGVtcDogMXJlbTtcbiAgICAgICAgI3skaGVhZGVyfSB7XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmb250LXNpemUpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZzKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmcykpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxoKSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGgpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMoJGhlYWRlci1saW5laGVpZ2h0LCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG10KSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbXQpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1iKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWIpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCRoZWFkZXItbWFyZ2luLWJvdHRvbSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTGlua3NcbiAgYSB7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgY29sb3I6ICRhbmNob3ItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbjtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGFuY2hvci1jb2xvci1ob3ZlcjtcbiAgICAgIEBpZiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlciAhPSAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cblxuICAvLyBIb3Jpem9udGFsIHJ1bGVcbiAgaHIge1xuICAgIGNsZWFyOiBib3RoO1xuXG4gICAgbWF4LXdpZHRoOiAkaHItd2lkdGg7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG1hcmdpbjogJGhyLW1hcmdpbjtcblxuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIGJvcmRlci1ib3R0b206ICRoci1ib3JkZXI7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gIH1cblxuICAvLyBMaXN0c1xuICB1bCxcbiAgb2wsXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246ICRsaXN0LXN0eWxlLXBvc2l0aW9uO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGlzdC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gTGlzdCBpdGVtc1xuICBsaSB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gVW5vcmRlcmVkIGxpc3RzXG4gIHVsIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgICBsaXN0LXN0eWxlLXR5cGU6ICRsaXN0LXN0eWxlLXR5cGU7XG4gIH1cblxuICAvLyBPcmRlcmVkIGxpc3RzXG4gIG9sIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgfVxuXG4gIC8vIE5lc3RlZCB1bm9yZGVyZWQvb3JkZXJlZCBsaXN0c1xuICB1bCwgb2wge1xuICAgICYgJiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW47XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmluaXRpb24gbGlzdHNcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZHQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZGVmbmxpc3QtdGVybS13ZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2txdW90ZXNcbiAgYmxvY2txdW90ZSB7XG4gICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIHBhZGRpbmc6ICRibG9ja3F1b3RlLXBhZGRpbmc7XG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGJsb2NrcXVvdGUtYm9yZGVyO1xuXG4gICAgJiwgcCB7XG4gICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIENpdGF0aW9uc1xuICBjaXRlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRjaXRlLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGNpdGUtY29sb3I7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAkY2l0ZS1wc2V1ZG8tY29udGVudDtcbiAgICB9XG4gIH1cblxuICAvLyBBYmJyZXZpYXRpb25zXG4gIGFiYnIge1xuICAgIGJvcmRlci1ib3R0b206ICRhYmJyLXVuZGVybGluZTtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICBjdXJzb3I6IGhlbHA7XG4gIH1cblxuICAvLyBGaWd1cmVzXG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIFxuICAvLyBDb2RlXG4gIGNvZGUge1xuICAgIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XG5cbiAgICBib3JkZXI6ICRjb2RlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkY29kZS1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGNvZGUtY29sb3I7XG4gIH1cblxuICAvLyBLZXlzdHJva2VzXG4gIGtiZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6ICRrZXlzdHJva2UtcGFkZGluZztcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRrZXlzdHJva2UtYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAka2V5c3Ryb2tlLWZvbnQ7XG4gICAgY29sb3I6ICRrZXlzdHJva2UtY29sb3I7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRrZXlzdHJva2UtcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAka2V5c3Ryb2tlLXJhZGl1cztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktaGVscGVyc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxlYWQtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIHN0YXRpc3RpYyBudW1iZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN0YXQtZm9udC1zaXplOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktaGVscGVycyB7XG4gIC8vIFVzZSB0byBjcmVhdGUgYSBzdWJoZWFkaW5nIHVuZGVyIGEgbWFpbiBoZWFkZXJcbiAgLy8gTWFrZSBzdXJlIHlvdSBwYWlyIHRoZSB0d28gZWxlbWVudHMgaW4gYSA8aGVhZGVyPiBlbGVtZW50LCBsaWtlIHRoaXM6XG4gIC8vIDxoZWFkZXI+XG4gIC8vICAgPGgxPkhlYWRpbmc8L2gxPlxuICAvLyAgIDxoMj5TdWJoZWFkaW5nPC9oMj5cbiAgLy8gPC9oZWFkZXI+XG4gIC5zdWJoZWFkZXIge1xuICAgIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItbWFyZ2luLXRvcDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJHN1YmhlYWRlci1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkc3ViaGVhZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGFuIGludHJvZHVjdG9yeSBsZWFkLCBkZWNrLCBibHVyYiwgZXRjLlxuICAubGVhZCB7XG4gICAgZm9udC1zaXplOiAkbGVhZC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRsZWFkLWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYSBsYXJnZSBudW1iZXIgdG8gZGlzcGxheSBhIHN0YXRpc3RpY1xuICAuc3RhdCB7XG4gICAgZm9udC1zaXplOiAkc3RhdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBwICsgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICB9XG4gIH1cblxuICAvLyBVc2UgdG8gcmVtb3ZlIHRoZSBidWxsZXRzIGZyb20gYW4gdW5vcmRlcmVkIGxpc3RcbiAgLm5vLWJ1bGxldCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tdGV4dC1hbGlnbm1lbnQge1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkYWxpZ24gaW4gKGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnkpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgLnRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSWYgYHRydWVgLCBhbGwgZWxlbWVudHMgd2lsbCBoYXZlIHRyYW5zcGFyZW50IGJhY2tncm91bmRzIHdoZW4gcHJpbnRlZCwgdG8gc2F2ZSBvbiBpbmsuXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBncm91cCBnbG9iYWxcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZSAhZGVmYXVsdDtcbiRwcmludC1ocmVmczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gc2Fzcy1saW50OmRpc2FibGUtYWxsXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByaW50LXN0eWxlcyB7XG4gIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgKiB7XG4gICAgICBAaWYgJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsgLy8gQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vc1xuICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICB0YWJsZS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdGJvZHkuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIHRoLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbiAgICAvLyBEaXNwbGF5IHRoZSBVUkwgb2YgYSBsaW5rIGFmdGVyIHRoZSB0ZXh0XG4gICAgYSxcbiAgICBhOnZpc2l0ZWQgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9XG4gICAgQGlmICRwcmludC1ocmVmcyB7XG4gICAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKGhyZWYpICcpJzsgfVxuICAgIH1cblxuICAgIC8vIERvbid0IGRpc3BsYXkgdGhlIFVSTCBmb3IgaW1hZ2VzIG9yIEphdmFTY3JpcHQvaW50ZXJuYWwgbGlua3NcbiAgICAuaXIgYTphZnRlcixcbiAgICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICAgIGFbaHJlZl49JyMnXTphZnRlciB7IGNvbnRlbnQ6ICcnOyB9XG5cbiAgICAvLyBEaXNwbGF5IHdoYXQgYW4gYWJicmV2aWF0aW9uIHN0YW5kcyBmb3IgYWZ0ZXIgdGhlIHRleHRcbiAgICBhYmJyW3RpdGxlXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cih0aXRsZSkgJyknOyB9XG5cbiAgICAvLyBQcmV2ZW50IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgYSBibG9ja3F1b3RlIG9yIHByZWZvcm1hdHRlZCB0ZXh0IGJsb2NrXG4gICAgcHJlLFxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvLyBoNWJwLmNvbS90XG4gICAgdGhlYWQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cblxuICAgIHRyLFxuICAgIGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuXG4gICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuICAgIEBwYWdlIHsgbWFyZ2luOiAwLjVjbTsgfVxuXG4gICAgcCxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICBvcnBoYW5zOiAzO1xuICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIC8vIEF2b2lkIHBhZ2UgYnJlYWtzIGFmdGVyIGEgaGVhZGluZ1xuICAgIGgyLFxuICAgIGgzIHsgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEZvbnQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBvZiBwbGFjZWhvbGRlciB0ZXh0IHdpdGhpbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBGb250XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGZvY3VzZWQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGRpc2FibGVkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgZm9jdXNlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IGluc2lkZSB0ZXh0IGlucHV0cyB3aGVuIG5vdCBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBvdXRzaWRlIHRleHQgaW5wdXRzIHdoZW4gZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ3Vyc29yIHRvIHVzZSB3aGVuIGhvdmVyaW5nIG92ZXIgYSBkaXNhYmxlZCB0ZXh0IGlucHV0LlxuLy8vIEB0eXBlIEN1cnNvclxuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQgIWRlZmF1bHQ7XG5cbi8vLyBQcm9wZXJ0aWVzIHRvIHRyYW5zaXRpb24gb24gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyB0aGUgdXAvZG93biBidXR0b25zIHRoYXQgQ2hyb21lIGFuZCBGaXJlZm94IGFkZCB0byBgPGlucHV0IHR5cGU9J251bWJlcic+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gUmFkaXVzIGZvciB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgZm9ybSBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1lbGVtZW50IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyO1xuXG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGlucHV0LXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3c7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS10ZXh0IHtcbiAgLy8gVGV4dCBpbnB1dHNcbiAgI3t0ZXh0LWlucHV0cygpfSxcbiAgdGV4dGFyZWEge1xuICAgIEBpbmNsdWRlIGZvcm0tZWxlbWVudDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLy8gVGV4dCBhcmVhc1xuICB0ZXh0YXJlYSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgJltyb3dzXSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgaW5wdXQsXG4gIHRleHRhcmVhIHtcbiAgICAvLyBQbGFjZWhvbGRlciB0ZXh0XG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZC9yZWFkb25seSBzdGF0ZVxuICAgICY6ZGlzYWJsZWQsXG4gICAgJltyZWFkb25seV0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9uIGJ1dHRvbi1saWtlIGlucHV0c1xuICBbdHlwZT0nc3VibWl0J10sXG4gIFt0eXBlPSdidXR0b24nXSB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAkZm9ybS1idXR0b24tcmFkaXVzO1xuICB9XG5cbiAgLy8gUmVzZXQgTm9ybWFsaXplIHNldHRpbmcgY29udGVudC1ib3ggdG8gc2VhcmNoIGVsZW1lbnRzXG4gIGlucHV0W3R5cGU9J3NlYXJjaCddIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIC8vIE51bWJlciBpbnB1dCBzdHlsZXNcbiAgW3R5cGU9J251bWJlciddIHtcbiAgICBAaWYgbm90ICRpbnB1dC1udW1iZXItc3Bpbm5lcnMge1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeFxuXG4gICAgICAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgICAgJjo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tY2hlY2tib3gge1xuICBbdHlwZT0nZmlsZSddLFxuICBbdHlwZT0nY2hlY2tib3gnXSxcbiAgW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0L2xhYmVsIHNpYmxpbmdzXG4gIFt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG4gIFt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG5cbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAmW2Zvcl0ge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXRzIGluc2lkZSBsYWJlbHNcbiAgbGFiZWwgPiBbdHlwZT0nY2hlY2tib3gnXSxcbiAgbGFiZWwgPiBbdHlwZT0ncmFkaW8nXSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAvLyBOb3JtYWxpemUgZmlsZSBpbnB1dCB3aWR0aFxuICBbdHlwZT0nZmlsZSddIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGZvcm0tbGFiZWwtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGZvcm0gbGFiZWxzLiBUaGUgaGlnaGVyIHRoZSBudW1iZXIsIHRoZSBtb3JlIHNwYWNlIGJldHdlZW4gdGhlIGxhYmVsIGFuZCBpdHMgaW5wdXQgZmllbGQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogMS44ICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG5cbiAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9ybS1sYWJlbC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3I7XG59XG5cbkBtaXhpbiBmb3JtLWxhYmVsLW1pZGRsZSB7XG4gICRpbnB1dC1ib3JkZXItd2lkdGg6IGdldC1ib3JkZXItdmFsdWUoJGlucHV0LWJvcmRlciwgd2lkdGgpO1xuXG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nIC8gMiArIHJlbS1jYWxjKCRpbnB1dC1ib3JkZXItd2lkdGgpKSAwO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWxhYmVsIHtcbiAgbGFiZWwge1xuICAgIEBpbmNsdWRlIGZvcm0tbGFiZWw7XG5cbiAgICAmLm1pZGRsZSB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWxhYmVsLW1pZGRsZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWxwdGV4dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzdHlsZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0taGVscHRleHQge1xuICAuaGVscC10ZXh0IHtcbiAgICAkbWFyZ2luLXRvcDogKCRmb3JtLXNwYWNpbmcgKiAwLjUpICogLTE7XG5cbiAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXRvcDtcbiAgICBmb250LXNpemU6ICRoZWxwdGV4dC1mb250LXNpemU7XG4gICAgZm9udC1zdHlsZTogJGhlbHB0ZXh0LWZvbnQtc3R5bGU7XG4gICAgY29sb3I6ICRoZWxwdGV4dC1jb2xvcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGVmdC9yaWdodCBwYWRkaW5nIG9mIGFuIHByZS9wb3N0Zml4ZWQgaW5wdXQgbGFiZWxcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1wcmVwb3N0Zml4IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAkZm9ybS1zcGFjaW5nICogMS41KTtcblxuICAuaW5wdXQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgdGFibGUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cblxuICAgID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAwICRpbnB1dC1yYWRpdXMgJGlucHV0LXJhZGl1cyAwLCAkaW5wdXQtcmFkaXVzIDAgMCAkaW5wdXQtcmFkaXVzKTtcbiAgICB9XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgID4gKiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAkaW5wdXQtcmFkaXVzIDAgMCAkaW5wdXQtcmFkaXVzLCAwICRpbnB1dC1yYWRpdXMgJGlucHV0LXJhZGl1cyAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAlaW5wdXQtZ3JvdXAtY2hpbGQge1xuICAgIG1hcmdpbjogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWxhYmVsIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nOiAwICRpbnB1dC1wcmVmaXgtcGFkZGluZztcbiAgICBib3JkZXI6ICRpbnB1dC1wcmVmaXgtYm9yZGVyO1xuICAgIGJhY2tncm91bmQ6ICRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDtcblxuICAgIGNvbG9yOiAkaW5wdXQtcHJlZml4LWNvbG9yO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtcHJlZml4LWJvcmRlcikge1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBhLFxuICAgIGlucHV0LFxuICAgIGJ1dHRvbixcbiAgICBsYWJlbCB7XG4gICAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgICAgIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cblxuICAvLyBTcGVjaWZpY2l0eSBidW1wIG5lZWRlZCB0byBwcmV2ZW50IG92ZXJyaWRlIGJ5IGJ1dHRvbnNcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBiZXR3ZWVuIHRoZSBsZWdlbmQgdGV4dCBhbmQgZmllbGRzZXQgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpICFkZWZhdWx0O1xuXG5AbWl4aW4gZmllbGRzZXQge1xuICBtYXJnaW46ICRmaWVsZHNldC1tYXJnaW47XG4gIHBhZGRpbmc6ICRmaWVsZHNldC1wYWRkaW5nO1xuICBib3JkZXI6ICRmaWVsZHNldC1ib3JkZXI7XG5cbiAgbGVnZW5kIHtcbiAgICAvLyBDb3ZlcnMgdXAgdGhlIGZpZWxkc2V0J3MgYm9yZGVyIHRvIGNyZWF0ZSBhcnRpZmljaWFsIHBhZGRpbmdcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogcmVtLWNhbGMoLTMpO1xuICAgIHBhZGRpbmc6ICRsZWdlbmQtcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZmllbGRzZXQge1xuICBmaWVsZHNldCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgbGVnZW5kIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC5maWVsZHNldCB7XG4gICAgQGluY2x1ZGUgZmllbGRzZXQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBzZWxlY3QgbWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGRyb3Bkb3duIHRyaWFuZ2xlIGluc2lkZSBzZWxlY3QgbWVudXMuIFNldCB0byBgdHJhbnNwYXJlbnRgIHRvIHJlbW92ZSBpdCBlbnRpcmVseS5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBzZWxlY3QgbWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tc2VsZWN0IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSk7XG5cbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAoJGZvcm0tc3BhY2luZyAvIDIpO1xuXG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHNlbGVjdC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZDtcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmICRzZWxlY3QtdHJpYW5nbGUtY29sb3IgIT0gdHJhbnNwYXJlbnQge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtdHJpYW5nbGUoJHNlbGVjdC10cmlhbmdsZS1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRnbG9iYWwtcmlnaHQgKC0kZm9ybS1zcGFjaW5nKSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG5cbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICgkZm9ybS1zcGFjaW5nICogMS41KTtcbiAgfVxuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJlttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0IHtcbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBmb3JtLXNlbGVjdDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWJpZGVcbi8vLy9cblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBpbnB1dHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWlucHV0czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBsYWJlbHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWxhYmVsczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgdG8gdXNlIGZvciBpbnZhbGlkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdG8gdXNlIGZvciBsYWJlbHMgb2YgaW52YWxpZCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBvZiBhbiBpbnB1dCBmaWVsZCB0byBoYXZlIGFuIGVycm9yIHN0YXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRhbGVydC1jb2xvcl0gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYWNrZ3JvdW5kLWxpZ2h0ZW4gWzEwJV0gLSBMaWdodG5lc3MgbGV2ZWwgb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gZm9ybS1pbnB1dC1lcnJvcihcbiAgJGJhY2tncm91bmQ6ICRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQsXG4gICRiYWNrZ3JvdW5kLWxpZ2h0ZW46IDEwJVxuKSB7XG4gICY6bm90KDpmb2N1cykge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWl4KCRiYWNrZ3JvdW5kLCAkd2hpdGUsICRiYWNrZ3JvdW5kLWxpZ2h0ZW4pO1xuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgZXJyb3Igc3R5bGVzIHRvIGEgZm9ybSBlbGVtZW50LCB1c2luZyB0aGUgdmFsdWVzIGluIHRoZSBzZXR0aW5ncyBmaWxlLlxuQG1peGluIGZvcm0tZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAkZm9ybS1zcGFjaW5nICogLTAuNTtcbiAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICBmb250LXNpemU6ICRpbnB1dC1lcnJvci1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtZXJyb3ItY29sb3I7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZXJyb3Ige1xuICBAaWYgJGFiaWRlLWlucHV0cyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGludmFsaWQgaW5wdXRzXG4gICAgLmlzLWludmFsaWQtaW5wdXQge1xuICAgICAgQGluY2x1ZGUgZm9ybS1pbnB1dC1lcnJvcjtcbiAgICB9XG4gIH1cblxuICBAaWYgJGFiaWRlLWxhYmVscyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGxhYmVscyBvZiBpbnZhbGlkIG91dHB1dHNcbiAgICAuaXMtaW52YWxpZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDtcbiAgICB9XG4gIH1cblxuICAvLyBGb3JtIGVycm9yIGVsZW1lbnRcbiAgLmZvcm0tZXJyb3Ige1xuICAgIEBpbmNsdWRlIGZvcm0tZXJyb3I7XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b25cbi8vLy9cblxuLy8vIFBhZGRpbmcgaW5zaWRlIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmlsbCBmb3IgYnV0dG9ucy4gQ2FuIGVpdGhlciBiZSBgc29saWRgIG9yIGBob2xsb3dgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRidXR0b24tZmlsbDogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0aXZlIGZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXNpemVzOiAoXG4gIHRpbnk6IDAuNnJlbSxcbiAgc21hbGw6IDAuNzVyZW0sXG4gIGRlZmF1bHQ6IDAuOXJlbSxcbiAgbGFyZ2U6IDEuMjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JpbmcgY2xhc3Nlcy4gQSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgaW4geW91ciBDU1MsIGxpa2UgYC5zZWNvbmRhcnlgLCBgLnN1Y2Nlc3NgLCBhbmQgc28gb24uXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBvcGFjaXR5IGZvciBhIGRpc2FibGVkIGJ1dHRvbi5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6IC0yMCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGhvbGxvdyBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzOiAtNTAlICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbDogZmxpcCBmcm9tIG1hcmdpbi1yaWdodCB0byBtYXJnaW4tbGVmdCBmb3IgZGVmYXVsdHNcbkBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbn1cblxuLy8vIHRyYW5zaXRpb25zIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vIFRPRE86IERvY3VtZW50IGJ1dHRvbi1iYXNlKCkgbWl4aW5cbkBtaXhpbiBidXR0b24tYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICBwYWRkaW5nOiAkYnV0dG9uLXBhZGRpbmc7XG5cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gIHRyYW5zaXRpb246ICRidXR0b24tdHJhbnNpdGlvbjtcblxuICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy8vIEV4cGFuZHMgYSBidXR0b24gdG8gbWFrZSBpdCBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSB0aGUgZXhwYW5kIGJlaGF2aW9yLiBTZXQgdG8gYGZhbHNlYCB0byByZXZlcnNlIHRoaXMgYmVoYXZpb3IuXG5AbWl4aW4gYnV0dG9uLWV4cGFuZCgkZXhwYW5kOiB0cnVlKSB7XG4gIEBpZiAkZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGUgb2YgYSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGJ1dHRvbi1zdHlsZShcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6ICRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3Ncbikge1xuICBAaWYgJGNvbG9yID09IGF1dG8ge1xuICAgICRjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRidXR0b24tY29sb3IsICRidXR0b24tY29sb3ItYWx0KSk7XG4gIH1cblxuICBAaWYgJGJhY2tncm91bmQtaG92ZXIgPT0gYXV0byB7XG4gICAgJGJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3MpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyBiYWNrZ3JvdW5kIGZpbGwgb24gaG92ZXIgYW5kIGZvY3VzIGZvciBob2xsb3cgYnV0dG9ucy5cbkBtaXhpbiBidXR0b24taG9sbG93IHtcbiAgJixcbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuQG1peGluIGJ1dHRvbi1ob2xsb3ctc3R5bGUoXG4gICRjb2xvcjogJHByaW1hcnktY29sb3IsXG4gICRob3Zlci1saWdodG5lc3M6ICRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkaG92ZXItbGlnaHRuZXNzKTtcblxuICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3I7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBkaXNhYmxlZCBzdHlsZXMgdG8gYSBidXR0b24gYnkgZmFkaW5nIHRoZSBlbGVtZW50LCByZXNldGluZyB0aGUgY3Vyc29yLCBhbmQgZGlzYWJsaW5nIHBvaW50ZXIgZXZlbnRzLlxuLy8vIEBwYXJhbSBbQ29sb3JdICRiYWNrZ3JvdW5kIFskcHJpbWFyeS1jb2xvcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHBhcmFtIFtDb2xvcl0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGRpc2FibGVkIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLWRpc2FibGVkKFxuICAkYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvclxuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgfVxuXG4gIG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBBZGRzIGEgZHJvcGRvd24gYXJyb3cgdG8gYSBidXR0b24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIFswLjRlbV0gLSBTaXplIG9mIHRoZSBhcnJvdy4gV2UgcmVjb21tZW5kIHVzaW5nIGFuIGBlbWAgdmFsdWUgc28gdGhlIHRyaWFuZ2xlIHNjYWxlcyB3aGVuIHVzZWQgaW5zaWRlIGRpZmZlcmVudCBzaXplcyBvZiBidXR0b25zLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbd2hpdGVdIC0gQ29sb3Igb2YgdGhlIGFycm93LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb2Zmc2V0IFskYnV0dG9uLXBhZGRpbmddIC0gRGlzdGFuY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0IG9mIHRoZSBidXR0b24uIERlZmF1bHRzIHRvIHdoYXRldmVyIHRoZSByaWdodCBwYWRkaW5nIG9mIGEgYnV0dG9uIGlzLlxuQG1peGluIGJ1dHRvbi1kcm9wZG93bihcbiAgJHNpemU6IDAuNGVtLFxuICAkY29sb3I6ICR3aGl0ZSxcbiAgJG9mZnNldDogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodClcbikge1xuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRzaXplLCAkY29sb3IsIGRvd24pO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuNGVtOyAvLyBBbGlnbnMgdGhlIGFycm93IHdpdGggdGhlIHRleHQgb2YgdGhlIGJ1dHRvblxuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtcmlnaHR9O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IGdldC1zaWRlKCRidXR0b24tcGFkZGluZywgcmlnaHQpO1xuICB9XG59XG5cbi8vLyBBZGRzIGFsbCBzdHlsZXMgZm9yIGEgYnV0dG9uLiBGb3IgbW9yZSBncmFudWxhciBjb250cm9sIG92ZXIgc3R5bGVzLCB1c2UgdGhlIGluZGl2aWR1YWwgYnV0dG9uIG1peGlucy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSB0aGUgYnV0dG9uIGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0eWxlIFtzb2xpZF0gLSBTZXQgdG8gYGhvbGxvd2AgdG8gY3JlYXRlIGEgaG9sbG93IGJ1dHRvbi4gVGhlIGNvbG9yIGRlZmluZWQgaW4gYCRiYWNrZ3JvdW5kYCB3aWxsIGJlIHVzZWQgYXMgdGhlIHByaW1hcnkgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24oXG4gICRleHBhbmQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRzdHlsZTogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG5cbiAgQGlmICRzdHlsZSA9PSBzb2xpZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcbiAgfVxuICBAZWxzZSBpZiAkc3R5bGUgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG5cbiAgQGlmICRleHBhbmQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uIHtcbiAgLmJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZXhwYW5kOyB9XG5cbiAgICAvLyBDb2xvcnNcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuI3skbmFtZX0uZHJvcGRvd246OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIb2xsb3cgc3R5bGVcbiAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAmLmhvbGxvdyB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGU7XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERpc2FibGVkIHN0eWxlXG4gICAgJi5kaXNhYmxlZCxcbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQ7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkKCRjb2xvciwgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEcm9wZG93biBhcnJvd1xuICAgICYuZHJvcGRvd24ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRyb3Bkb3duO1xuXG4gICAgICBAaWYgJGJ1dHRvbi1maWxsID09IGhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCdXR0b24gd2l0aCBkcm9wZG93biBhcnJvdyBvbmx5XG4gICAgJi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgICB0b3A6IC0wLjFlbTtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFjY29yZGlvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjY29yZGlvbiBncm91cC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFkZHMgcGx1cyBhbmQgbWludXMgaWNvbnMgdG8gdGhlIHNpZGUgb2YgZWFjaCBhY2NvcmRpb24gdGl0bGUuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFjY29yZGlvbi1wbHVzbWludXM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYWNjb3JkaW9uIHRpdGxlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gYWNjb3JkaW9uIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgc2FtZSBlbGVtZW50IHRoYXQgZ2V0cyBgZGF0YS1hY2NvcmRpb25gLlxuQG1peGluIGFjY29yZGlvbi1jb250YWluZXIgKFxuICAkYmFja2dyb3VuZDogJGFjY29yZGlvbi1iYWNrZ3JvdW5kXG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpc3QgaXRlbSB3aXRoaW4gYW4gYWNjb3JkaW9uIHVsLlxuQG1peGluIGFjY29yZGlvbi1pdGVtIHtcbiAgJjpmaXJzdC1jaGlsZCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXMgMCAwO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkID4gOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSB0aXRsZSBvZiBhbiBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGluayB3aXRoaW4gYW4gYWNjb3JkaW9uIGl0ZW0uXG5AbWl4aW4gYWNjb3JkaW9uLXRpdGxlIChcbiAgJHBhZGRpbmc6ICRhY2NvcmRpb24taXRlbS1wYWRkaW5nLFxuICAkZm9udC1zaXplOiAkYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZSxcbiAgJGNvbG9yOiAkYWNjb3JkaW9uLWl0ZW0tY29sb3IsXG4gICRib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXIsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlclxuKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcblxuICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gIDpsYXN0LWNoaWxkOm5vdCguaXMtYWN0aXZlKSA+ICYge1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtaG92ZXI7XG4gIH1cblxuICBAaWYgJGFjY29yZGlvbi1wbHVzbWludXMge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICAgICAgY29udGVudDogJysnO1xuICAgIH1cblxuICAgIC5pcy1hY3RpdmUgPiAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ1xcMjAxMyc7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYWNjb3JkaW9uIGNvbnRlbnQuIEFwcGx5IHRoaXMgdG8gdGhlIGNvbnRlbnQgcGFuZSBiZWxvdyBhbiBhY2NvcmRpb24gaXRlbSdzIHRpdGxlLlxuQG1peGluIGFjY29yZGlvbi1jb250ZW50IChcbiAgJHBhZGRpbmc6ICRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nLFxuICAkYm9yZGVyOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyLFxuICAkYmFja2dyb3VuZDogJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQsXG4gICRjb2xvcjogJGFjY29yZGlvbi1jb250ZW50LWNvbG9yXG4pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICBjb2xvcjogJGNvbG9yO1xuXG4gIDpsYXN0LWNoaWxkID4gJjpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWFjY29yZGlvbiB7XG4gIC5hY2NvcmRpb24ge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250YWluZXI7XG4gIH1cblxuICAuYWNjb3JkaW9uLWl0ZW0ge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1pdGVtO1xuICB9XG5cbiAgLmFjY29yZGlvbi10aXRsZSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLXRpdGxlO1xuICB9XG5cbiAgLmFjY29yZGlvbi1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tY29udGVudDtcbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCBhY2NvcmRpb24tbWVudVxuLy8vL1xuXG4vLy8gU2V0cyBpZiBhY2NvcmRpb24gbWVudXMgaGF2ZSB0aGUgZGVmYXVsdCBhcnJvdyBzdHlsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFjY29yZGlvbm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRhY2NvcmRpb25tZW51LWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnUge1xuICBAaWYgJGFjY29yZGlvbm1lbnUtYXJyb3dzIHtcbiAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRhY2NvcmRpb25tZW51LWFycm93LXNpemUsICRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEgKiAoJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZSAvIDIpO1xuICAgICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnRbYXJpYS1leHBhbmRlZD0ndHJ1ZSddID4gYTo6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBiYWRnZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0ZSB0ZXh0IGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGJhZGdlLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGJhZGdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1wYWRkaW5nOiAwLjNlbSAhZGVmYXVsdDtcblxuLy8vIE1pbmltdW0gd2lkdGggb2YgYSBiYWRnZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1taW53aWR0aDogMi4xZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBiYWRnZS5cbkBtaXhpbiBiYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiAkYmFkZ2UtbWlud2lkdGg7XG4gIHBhZGRpbmc6ICRiYWRnZS1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICBmb250LXNpemU6ICRiYWRnZS1mb250LXNpemU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tYmFkZ2Uge1xuICAuYmFkZ2Uge1xuICAgIEBpbmNsdWRlIGJhZGdlO1xuXG4gICAgYmFja2dyb3VuZDogJGJhZGdlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRiYWRnZS1jb2xvcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJhZGdlLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGNvbG9yLCAoJGJhZGdlLWNvbG9yLCAkYmFkZ2UtY29sb3ItYWx0KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVhZGNydW1ic1xuLy8vL1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBhY3RpdmUgYnJlYWRjcnVtYiBsaW5rLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBPcGFjaXR5IG9mIGRpc2FibGVkIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnJlYWRjcnVtYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgbWFrZXMgYnJlYWRjcnVtYiBsaW5rcyB1cHBlcmNhc2UuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIGEgc2xhc2ggYmV0d2VlbiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRicmVhZGNydW1icy1pdGVtLXNsYXNoOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgYnJlYWRjcnVtYnMgY29udGFpbmVyLCBhbG9uZyB3aXRoIHRoZSBzdHlsZXMgZm9yIHRoZSBgPGxpPmAgYW5kIGA8YT5gIGVsZW1lbnRzIGluc2lkZSBvZiBpdC5cbkBtaXhpbiBicmVhZGNydW1icy1jb250YWluZXIge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luOiAkYnJlYWRjcnVtYnMtbWFyZ2luO1xuICBsaXN0LXN0eWxlOiBub25lO1xuXG4gIC8vIEl0ZW0gd3JhcHBlclxuICBsaSB7XG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1sZWZ0fTtcblxuICAgIGZvbnQtc2l6ZTogJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplO1xuICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50O1xuICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgIEBpZiAkYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2Uge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gge1xuICAgICAgLy8gTmVlZCB0byBlc2NhcGUgdGhlIGJhY2tzbGFzaFxuICAgICAgJHNsYXNoOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdsdHInLCAnLycsICdcXFxcJyk7XG5cbiAgICAgICY6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogMXB4O1xuICAgICAgICBtYXJnaW46IDAgJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuXG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbnRlbnQ6ICRzbGFzaDtcbiAgICAgICAgY29sb3I6ICRtZWRpdW0tZ3JheTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcbiAgICB9XG4gIH1cblxuICAvLyBQYWdlIGxpbmtzXG4gIGEge1xuICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzIHtcbiAgLmJyZWFkY3J1bWJzIHtcbiAgICBAaW5jbHVkZSBicmVhZGNydW1icy1jb250YWluZXI7XG5cbiAgICAuZGlzYWJsZWQge1xuICAgICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkO1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvbi1ncm91cFxuLy8vL1xuXG4vLy8gTWFyZ2luIGZvciBidXR0b24gZ3JvdXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgQm9yZGVyXG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4ICFkZWZhdWx0O1xuXG4vLy8gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSBudW1iZXIgb2YgYnV0dG9ucyB0aGF0IGNhbiBiZSBpbiBhbiBldmVuLXdpZHRoIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1leHBhbmQtbWF4OiA2ICFkZWZhdWx0O1xuXG4vLy8gRGV0ZXJtaW5lcyBpZiAkYnV0dG9uLXJhZGl1cyBpcyBhcHBsaWVkIHRvIGVhY2ggYnV0dG9uIG9yIHRoZSBidXR0b24gZ3JvdXAgYXMgYSB3aG9sZS4gVXNlICRnbG9iYWwtcmFkaXVzIGluIF9zZXR0aW5ncy5zY3NzIHRvIGNoYW5nZSByYWRpdXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQWRkIHN0eWxlcyBmb3IgYSBidXR0b24gZ3JvdXAgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkY2hpbGQtc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cChcbiAgJGNoaWxkLXNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luLWJvdHRvbTogJGJ1dHRvbmdyb3VwLW1hcmdpbjtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB9XG4gIEBlbHNlIHtcbiAgICBmb250LXNpemU6IDA7XG4gIH1cblxuICAjeyRjaGlsZC1zZWxlY3Rvcn0ge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJ1dHRvbmdyb3VwLXNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogJGJ1dHRvbmdyb3VwLXNwYWNpbmc7XG4gICAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgfVxuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGZ1bGwtd2lkdGggYnV0dG9uIGdyb3VwLCBtYWtpbmcgZWFjaCBidXR0b24gZXF1YWwgd2lkdGguXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLWV4cGFuZChcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRjb3VudDogbnVsbFxuKSB7XG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogLSRidXR0b25ncm91cC1zcGFjaW5nO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIE9uZSBjaGlsZFxuICAgICAgJjpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IDEwMCVcbiAgICAgIH1cblxuICAgICAgLy8gVHdvIG9yIG1vcmUgY2hpbGRyZWVuXG4gICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRidXR0b25ncm91cC1leHBhbmQtbWF4IHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICYsICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIH4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7cGVyY2VudGFnZSgxIC8gJGkpfSAtICN7JGJ1dHRvbmdyb3VwLXNwYWNpbmd9KTtcbiAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYnV0dG9uZ3JvdXAtc3BhY2luZztcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRidXR0b25ncm91cC1zcGFjaW5nICogLSRidXR0b25ncm91cC1leHBhbmQtbWF4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU3RhY2tzIHRoZSBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAmOmZpcnN0LWNoaWxke1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuLy8vIFVuLXN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC11bnN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24tZ3JvdXAge1xuICAuYnV0dG9uLWdyb3VwIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXA7XG5cbiAgICAvLyBTaXplc1xuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGggR3JvdXBcbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLWV4cGFuZDsgfVxuXG4gICAgLy8gQ29sb3JzXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICYuI3skbmFtZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZCxcbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsLFxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdGFjaztcbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXVuc3RhY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgZm9yY2UtZWxlbWVudC1uZXN0aW5nXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2FsbG91dFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZhZGUgdmFsdWUgZm9yIGNhbGxvdXQgYmFja2dyb3VuZHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBpbm5lciBwYWRkaW5nIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYWxsb3V0cywgaWYgdGhlIGNhbGxvdXQgaGFzIGEgZGFyayBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHJhZGl1cyBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBBbW91bnQgdG8gdGludCBsaW5rcyB1c2VkIHdpdGhpbiBjb2xvcmVkIHBhbmVscy4gU2V0IHRvIGBmYWxzZWAgdG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUuXG4vLy8gQHR5cGUgTnVtYmVyIHwgQm9vbGVhblxuJGNhbGxvdXQtbGluay10aW50OiAzMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYSBjYWxsb3V0LCBpbmNsdWRpbmcgcGFkZGluZyBhbmQgbWFyZ2luLlxuQG1peGluIGNhbGxvdXQtYmFzZSgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46ICRjYWxsb3V0LW1hcmdpbjtcbiAgcGFkZGluZzogJGNhbGxvdXQtcGFkZGluZztcblxuICBib3JkZXI6ICRjYWxsb3V0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGNhbGxvdXQtcmFkaXVzO1xuXG4gIC8vIFJlc3BlY3QgdGhlIHBhZGRpbmcsIGZvb2wuXG4gID4gOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgcXVpY2sgc3R5bGVzIGZvciBhIGNhbGxvdXQgdXNpbmcgYSBzaW5nbGUgY29sb3IgYXMgYSBiYXNlbGluZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRjYWxsb3V0LWJhY2tncm91bmRdIC0gQ29sb3IgdG8gdXNlLlxuQG1peGluIGNhbGxvdXQtc3R5bGUoJGNvbG9yOiAkY2FsbG91dC1iYWNrZ3JvdW5kKSB7XG4gICRiYWNrZ3JvdW5kOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRjYWxsb3V0LWJhY2tncm91bmQtZmFkZSk7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGNhbGxvdXQtZm9udC1jb2xvciwgJGNhbGxvdXQtZm9udC1jb2xvci1hbHQpKTtcbn1cblxuQG1peGluIGNhbGxvdXQtc2l6ZSgkcGFkZGluZykge1xuICBwYWRkaW5nLXRvcDogJHBhZGRpbmc7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmc7XG4gIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG59XG5cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhbGxvdXQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskY2FsbG91dC1iYWNrZ3JvdW5kXSAtIENvbG9yIHRvIHVzZS5cbkBtaXhpbiBjYWxsb3V0KCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xuICBAaW5jbHVkZSBjYWxsb3V0LWJhc2U7XG4gIEBpbmNsdWRlIGNhbGxvdXQtc3R5bGUoJGNvbG9yKTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FsbG91dCB7XG4gIC5jYWxsb3V0IHtcbiAgICBAaW5jbHVkZSBjYWxsb3V0O1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBjYWxsb3V0LXN0eWxlKCRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBjYWxsb3V0LXNpemUoMC41cmVtKTtcbiAgICB9XG5cbiAgICAmLmxhcmdlIHtcbiAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc2l6ZSgzcmVtKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNhcmRcbi8vLy9cblxuLy8vIERlZnVhbHQgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYXJkcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlLlxuLy8vIEB0eXBlIExpc3RcbiRjYXJkLWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjYXJkIHNoYWRvdy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FyZC1zaGFkb3c6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTGlzdFxuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4uXG4vLy8gQHR5cGUgbnVtYmVyXG4kY2FyZC1tYXJnaW46ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FyZCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIGZvbnQgY29sb3Igb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXJnaW4gLSBCb3R0b20gbWFyZ2luIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGJvcmRlciAtIEJvcmRlciBhcm91bmQgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmFkaXVzIC0gYm9yZGVyIHJhZGl1cyBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaGFkb3cgLSBib3ggc2hhZG93IG9mIHRoZSBjYXJkLlxuQG1peGluIGNhcmQtY29udGFpbmVyKFxuICAkYmFja2dyb3VuZDogJGNhcmQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkY2FyZC1mb250LWNvbG9yLFxuICAkbWFyZ2luOiAkY2FyZC1tYXJnaW4sXG4gICRib3JkZXI6ICRjYXJkLWJvcmRlcixcbiAgJHJhZGl1czogJGNhcmQtYm9yZGVyLXJhZGl1cyxcbiAgJHNoYWRvdzogJGNhcmQtc2hhZG93XG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cbiAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbjtcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG5cbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6ICRjYXJkLWZvbnQtY29sb3I7XG5cbiAgJiA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYXJkIGRpdmlkZXIuXG5AbWl4aW4gY2FyZC1kaXZpZGVyKFxuICAkYmFja2dyb3VuZDogJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kLFxuICAkcGFkZGluZzogJGNhcmQtcGFkZGluZ1xuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG5cbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuXG4gICYgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FyZCBzZWN0aW9uLlxuQG1peGluIGNhcmQtc2VjdGlvbihcbiAgJHBhZGRpbmc6ICRjYXJkLXBhZGRpbmdcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxuXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gICYgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jYXJkIHtcbiAgLmNhcmQge1xuICAgIEBpbmNsdWRlIGNhcmQtY29udGFpbmVyO1xuICB9XG5cbiAgLmNhcmQtZGl2aWRlciB7XG4gICAgQGluY2x1ZGUgY2FyZC1kaXZpZGVyO1xuICB9XG5cbiAgLmNhcmQtc2VjdGlvbiB7XG4gICAgQGluY2x1ZGUgY2FyZC1zZWN0aW9uO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjbG9zZS1idXR0b25cbi8vLy9cblxuLy8vIERlZmF1bHQgcG9zaXRpb24gb2YgdGhlIGNsb3NlIGJ1dHRvbi4gVGhlIGZpcnN0IHZhbHVlIHNob3VsZCBiZSBgcmlnaHRgIG9yIGBsZWZ0YCwgYW5kIHRoZSBzZWNvbmQgdmFsdWUgc2hvdWxkIGJlIGB0b3BgIG9yIGBib3R0b21gLlxuLy8vIEB0eXBlIExpc3RcbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogcmlnaHQgdG9wICFkZWZhdWx0O1xuXG4vLy8gUmlnaHQgKG9yIGxlZnQpIG9mZnNldChzKSBmb3IgYSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgTnVtYmVyfE1hcFxuJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsOiAoXG4gIHNtYWxsOiAwLjY2cmVtLFxuICBtZWRpdW06IDFyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gVG9wIChvciBib3R0b20pIG9mZnNldChzKSBmb3IgYSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgTnVtYmVyfE1hcFxuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogKFxuICBzbWFsbDogMC4zM2VtLFxuICBtZWRpdW06IDAuNXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZShzKSBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1zaXplOiAoXG4gIHNtYWxsOiAxLjVlbSxcbiAgbWVkaXVtOiAyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBjbG9zZSBidXR0b24uIEl0IGFmZmVjdHMgdGhlIHNwYWNpbmcgb2YgdGhlIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uIHdoZW4gYmVpbmcgaG92ZXJlZCBvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2sgIWRlZmF1bHQ7XG5cblxuLy8vIEdldCB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gZm9yIGEgY2xvc2UgYnV0dG9uLiBJZiB0aGUgaW5wdXQgdmFsdWUgaXMgYSBudW1iZXIsIHRoZSBudW1iZXIgaXMgcmV0dXJuZWQuIElmIHRoZSBpbnB1dCB2YWx1ZSBpcyBhIGNvbmZpZyBtYXAgYW5kIHRoZSBtYXAgaGFzIHRoZSBrZXkgYCRzaXplYCwgdGhlIHZhbHVlIGlzIHJldHVybmVkLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkdmFsdWUgLSBBIG51bWJlciBvciBtYXAgdGhhdCByZXByZXNlbnRzIHRoZSBzaXplIG9yIHBvc2l0aW9uIHZhbHVlKHMpIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIFRoZSBzaXplIG9mIHRoZSBjbG9zZSBidXR0b24gdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSBUaGUgZ2l2ZW4gbnVtYmVyIG9yIHRoZSB2YWx1ZSBmb3VuZCBpbiB0aGUgbWFwLlxuQGZ1bmN0aW9uIC16Zi1nZXQtc2l6ZS12YWwoJHZhbHVlLCAkc2l6ZSkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgLy8gSWYgaXQgaXMsIGp1c3QgcmV0dXJuIHRoZSBudW1iZXJcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBzaXplIG5hbWUgZXhpc3RzIGluIHRoZSB2YWx1ZSBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJHZhbHVlLCAkc2l6ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIHJldHVybiB0aGUgdmFsdWVcbiAgICBAcmV0dXJuIG1hcC1nZXQoJHZhbHVlLCAkc2l6ZSk7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHNpemUgYW5kIHBvc2l0aW9uIG9mIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgW21lZGl1bV0gLSBUaGUgc2l6ZSB0byB1c2UuIFNldCB0byBgc21hbGxgIHRvIGNyZWF0ZSBhIHNtYWxsIGNsb3NlIGJ1dHRvbi4gVGhlICdtZWRpdW0nIHZhbHVlcyBkZWZpbmVkIGluIGAkY2xvc2VidXR0b24tKmAgdmFyaWFibGVzIHdpbGwgYmUgdXNlZCBhcyB0aGUgZGVmYXVsdCBzaXplIGFuZCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuQG1peGluIGNsb3NlLWJ1dHRvbi1zaXplKCRzaXplKSB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gICN7JHh9OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbCwgJHNpemUpO1xuICAjeyR5fTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsLCAkc2l6ZSk7XG4gIGZvbnQtc2l6ZTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tc2l6ZSwgJHNpemUpO1xuICBsaW5lLWhlaWdodDogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tbGluZWhlaWdodCwgJHNpemUpO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2xvc2UgYnV0dG9uLCB1c2luZyB0aGUgc3R5bGVzIGluIHRoZSBzZXR0aW5ncyB2YXJpYWJsZXMuXG5AbWl4aW4gY2xvc2UtYnV0dG9uIHtcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xuICAkeTogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMik7XG5cbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbG9yOiAkY2xvc2VidXR0b24tY29sb3I7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbiB7XG4gIC5jbG9zZS1idXR0b24ge1xuICAgIEBpbmNsdWRlIGNsb3NlLWJ1dHRvbjtcblxuICAgICYuc21hbGwgeyBAaW5jbHVkZSBjbG9zZS1idXR0b24tc2l6ZShzbWFsbCkgfVxuICAgICYsICYubWVkaXVtIHsgQGluY2x1ZGUgY2xvc2UtYnV0dG9uLXNpemUobWVkaXVtKSB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lbnVcbi8vLy9cblxuLy8vIE1hcmdpbiBvZiBhIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0LWhhbmQgbWFyZ2luIG9mIGEgbmVzdGVkIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW4tbmVzdGVkOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgaXRlbXMgaW4gYSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaXRlbS1wYWRkaW5nOiAwLjdyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGFuIGljb24gYW5kIHRleHQgaW4gYSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBhbiBob3ZlcmVkIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIGZvciBib3JkZXJlZCBtZW51XG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWJvcmRlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBNZW51LlxuQG1peGluIG1lbnUtYmFzZSB7XG4gIG1hcmdpbjogJG1lbnUtbWFyZ2luO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gTGlzdCBpdGVtcyBhcmUgdGFibGUgY2VsbCB0byBhbGxvdyBmb3IgdmVydGljYWwgYWxpZ25tZW50XG4gID4gbGkge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IGxpbmUgaGVpZ2h0IHRvIG1ha2UgdGhlIGhlaWdodCBvZiB0aGUgb3ZlcmFsbCBpdGVtIGVhc2llciB0byBjYWxjdWxhdGVcbiAgPiBsaSA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRtZW51LWl0ZW0tcGFkZGluZztcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvZiBpbm5lciBlbGVtZW50c1xuICBpbnB1dCxcbiAgc2VsZWN0LFxuICBhLFxuICBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEV4cGFuZHMgdGhlIGl0ZW1zIG9mIGEgTWVudSwgc28gZWFjaCBpdGVtIGlzIHRoZSBzYW1lIHdpZHRoLlxuQG1peGluIG1lbnUtZXhwYW5kIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgPiBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgfVxuXG4gID4gbGk6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGRpcmVjdGlvbiBvZiBhIE1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFtob3Jpem9udGFsXSAtIERpcmVjdGlvbiBvZiB0aGUgTWVudS4gQ2FuIGJlIGBob3Jpem9udGFsYCBvciBgdmVydGljYWxgLlxuQG1peGluIG1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICAgICAgPiBsaSB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICA+IGxpIHtcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgID4gbGkge1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICA+IGxpICA+IGEge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICA+IGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBtZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc2ltcGxlIE1lbnUsIHdoaWNoIGhhcyBubyBwYWRkaW5nIG9yIGhvdmVyIHN0YXRlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbJGdsb2JhbC1sZWZ0XSAtIERpcmVjdGlvbiBvZiB0aGUgbWVudS4gU2V0IHRvIGBudWxsYCB0byBkbyBub3QgZ2VuZXJhdGUgc3R5bGVzIGZvciBkaXJlY3Rpb24uXG5AbWl4aW4gbWVudS1zaW1wbGUoJGRpcjogJGdsb2JhbC1sZWZ0KSB7XG4gIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gIGEge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICBAaWYgJGRpciAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZW51LXNpbXBsZS1kaXJlY3Rpb24oJGRpcik7XG4gIH1cbn1cblxuLy8vIERpcmVjdGlvbiBtb2RpZmllciBmb3IgYSBzaW1wbGUgTWVudVxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbJGdsb2JhbC1sZWZ0XSAtIERpcmVjdGlvbiBvZiB0aGUgbWVudVxuQG1peGluIG1lbnUtc2ltcGxlLWRpcmVjdGlvbigkZGlyOiAkZ2xvYmFsLWxlZnQpIHtcbiAgJG5vLW1hcmdpbi1kaXI6ICRkaXI7XG4gICRtYXJnaW4tZGlyOiBkaXJlY3Rpb24tb3Bwb3NpdGUoJGRpcik7XG5cbiAgbGkge1xuICAgIG1hcmdpbi0jeyRuby1tYXJnaW4tZGlyfTogMDtcbiAgICBtYXJnaW4tI3skbWFyZ2luLWRpcn06IGdldC1zaWRlKCRtZW51LWl0ZW0tcGFkZGluZywgJG1hcmdpbi1kaXIpO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBuZXN0ZWQgTWVudSwgYnkgYWRkaW5nIGBtYXJnaW4tbGVmdGAgdG8gdGhlIG1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHBhZGRpbmcgW2F1dG9dIC0gTGVuZ3RoIG9mIHRoZSBtYXJnaW4uXG5AbWl4aW4gbWVudS1uZXN0ZWQoJG1hcmdpbjogJG1lbnUtbWFyZ2luLW5lc3RlZCkge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbWFyZ2luO1xufVxuXG4vLy8gQWRkcyBzdXBwb3J0IGZvciBpY29ucyB0byBNZW51IGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHBvc2l0aW9uIFtzaWRlXSAtIFBvc2l0aW9uaW5nIGZvciBpY29ucy4gQ2FuIGJlIGBzaWRlYCAobGVmdCwgb3IgcmlnaHQgb24gUlRMKSBvciBgdG9wYC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRiYXNlIFt0cnVlXSAtIFNldCB0byBgZmFsc2VgIHRvIHByZXZlbnQgdGhlIHNoYXJlZCBDU1MgYmV0d2VlbiBzaWRlLSBhbmQgdG9wLWFsaWduZWQgaWNvbnMgZnJvbSBiZWluZyBwcmludGVkLiBTZXQgdGhpcyB0byBgZmFsc2VgIGlmIHlvdSdyZSBjYWxsaW5nIHRoZSBtaXhpbiBtdWx0aXBsZSB0aW1lcyBvbiB0aGUgc2FtZSBlbGVtZW50LlxuQG1peGluIG1lbnUtaWNvbnMoJHBvc2l0aW9uOiBzaWRlLCAkYmFzZTogdHJ1ZSkge1xuICBAaWYgJGJhc2Uge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgPiBsaSA+IGEge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICA+IGxpID4gYSB7XG4gICAgICAgIGltZyxcbiAgICAgICAgaSxcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgKyBzcGFuIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRwb3NpdGlvbiA9PSBzaWRlIHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRtZW51LWljb24tc3BhY2luZztcblxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgID4gbGkgPiBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46IDAgYXV0byAkbWVudS1pY29uLXNwYWNpbmc7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJG1lbnUtaWNvbi1zcGFjaW5nO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWVudS10ZXh0IHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBwYWRkaW5nOiAkbWVudS1pdGVtLXBhZGRpbmc7XG5cbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVudSB7XG4gIC5tZW51IHtcbiAgICBAaW5jbHVkZSBtZW51LWJhc2U7XG4gICAgQGluY2x1ZGUgbWVudS1pY29ucztcblxuICAgIC8vIERlZmF1bHQgb3JpZW50YXRpb246IGhvcml6b250YWxcbiAgICAmLCAmLmhvcml6b250YWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBtb2RpZmllciBmb3IgaG9yaXpvbnRhbCBvcmllbnRhdGlvblxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgfVxuXG4gICAgLy8gVmVydGljYWwgb3JpZW50YXRpb24gbW9kaWZpZXJcbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogZmFsc2UpIHtcbiAgICAgICYuI3skLXpmLXNpemV9LWhvcml6b250YWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tZXhwYW5kZWQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tdmVydGljYWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2ltcGxlXG4gICAgJi5zaW1wbGUge1xuICAgICAgQGluY2x1ZGUgbWVudS1zaW1wbGU7XG5cbiAgICAgICYuYWxpZ24tI3skZ2xvYmFsLXJpZ2h0fSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtc2ltcGxlLWRpcmVjdGlvbigkZ2xvYmFsLXJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiByaWdodFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLXJpZ2h0fSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICAgICAgPiBsaSB7XG4gICAgICAgICAgZmxvYXQ6ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBWZXJ0aWNhbCBpY29uc1xuICAgICYuaWNvbi10b3Age1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29ucyh0b3AsICRiYXNlOiBmYWxzZSk7XG4gICAgICAvLyBNYWtlIHZlcnRpY2FsIG1lbnUgd2l0aCBpY29ucyBvbiB0b3Agd29ya1xuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgIGEgPiBzcGFuIHtcbiAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOZXN0aW5nXG4gICAgJi5uZXN0ZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQ7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgLmFjdGl2ZSA+IGEge1xuICAgICAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgIGNvbG9yOiAkbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAvLyBNZW51IHdpdGggYm9yZGVyXG4gICAgJi5tZW51LWJvcmRlcmVkIHtcbiAgICAgIGxpIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJG1lbnUtYm9yZGVyO1xuICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWVudSB3aXRoIGJhY2tncm91bmQgaG92ZXJcbiAgICAmLm1lbnUtaG92ZXIge1xuICAgICAgbGk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVudS1pdGVtLWJhY2tncm91bmQtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1lbnUtdGV4dCB7XG4gICAgQGluY2x1ZGUgbWVudS10ZXh0O1xuICB9XG5cbiAgLy8gQWxpZ24gY2VudGVyXG4gIC5tZW51LWNlbnRlcmVkIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICA+IC5tZW51IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgfVxuICB9XG5cbiAgLy8gUHJldmVudCBGT1VDIHdoZW4gdXNpbmcgdGhlIFJlc3BvbnNpdmUgTWVudSBwbHVnaW5cbiAgLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIkBtaXhpbiBmb3VuZGF0aW9uLW1lbnUtaWNvbiB7XG4gIC5tZW51LWljb24ge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcigkY29sb3I6ICR0aXRsZWJhci1pY29uLWNvbG9yLCAkY29sb3ItaG92ZXI6ICR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyKTtcbiAgfVxuXG4gIC5tZW51LWljb24uZGFyayB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcmlsbGRvd25cbi8vLy9cblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydHkgdG8gdXNlIGZvciBhbmltYXRpbmcgbWVudXMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBhcnJvd3MgdG8gZHJpbGxkb3duIGl0ZW1zIHdpdGggc3VibWVudXMsIGFzIHdlbGwgYXMgdGhlIGJhY2sgYnV0dG9uLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJpbGxkb3duLWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyaWxsZG93biBzdWJtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51IHtcbiAgLy8gQXBwbGllZCB0byB0aGUgTWVudSBjb250YWluZXJcbiAgLmlzLWRyaWxsZG93biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLmFuaW1hdGUtaGVpZ2h0IHtcbiAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjVzO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFwcGxpZWQgdG8gbmVzdGVkIDx1bD5zXG4gIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgei1pbmRleDogLTE7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAkZHJpbGxkb3duLWJhY2tncm91bmQ7XG4gICAgdHJhbnNpdGlvbjogJGRyaWxsZG93bi10cmFuc2l0aW9uO1xuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gbHRyLCAtMTAwJSwgMTAwJSkpO1xuICAgIH1cblxuICAgICYuaXMtY2xvc2luZyB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIDEwMCUsIC0xMDAlKSk7XG4gICAgfVxuICB9XG5cbiAgLmRyaWxsZG93bi1zdWJtZW51LWNvdmVyLXByZXZpb3VzIHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgQGlmICRkcmlsbGRvd24tYXJyb3dzIHtcbiAgICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcmlsbGRvd24tYXJyb3ctc2l6ZSwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1yaWdodCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyaWxsZG93bi1hcnJvdy1zaXplO1xuICAgICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyaWxsZG93bi1hcnJvdy1zaXplLCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLWxlZnQpO1xuICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fS13aWR0aDogMDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC43NXJlbTsgLy8gQ3JlYXRlcyBzcGFjZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHRcblxuICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fS13aWR0aDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bi13aWR0aDogMzAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgZHJvcGRvd24gcGFuZXMuIEVhY2ggc2l6ZSBpcyBhIENTUyBjbGFzcyB5b3UgY2FuIGFwcGx5LlxuLy8vIEB0eXBlIE1hcFxuJGRyb3Bkb3duLXNpemVzOiAoXG4gIHRpbnk6IDEwMHB4LFxuICBzbWFsbDogMjAwcHgsXG4gIGxhcmdlOiA0MDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBcHBsaWVzIHN0eWxlcyBmb3IgYSBiYXNpYyBkcm9wZG93bi5cbkBtaXhpbiBkcm9wZG93bi1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogJGRyb3Bkb3duLXdpZHRoO1xuICBwYWRkaW5nOiAkZHJvcGRvd24tcGFkZGluZztcblxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJvcmRlcjogJGRyb3Bkb3duLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGRyb3Bkb3duLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRyb3Bkb3duLWJhY2tncm91bmQ7XG5cbiAgZm9udC1zaXplOiAkZHJvcGRvd24tZm9udC1zaXplO1xuXG4gICYuaXMtb3BlbiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93biB7XG4gIC5kcm9wZG93bi1wYW5lIHtcbiAgICBAaW5jbHVkZSBkcm9wZG93bi1jb250YWluZXI7XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJGRyb3Bkb3duLXNpemVzIHtcbiAgICAuZHJvcGRvd24tcGFuZS4jeyRuYW1lfSB7XG4gICAgICB3aWR0aDogJHNpemU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcm9wZG93bi1tZW51XG4vLy8vXG5cbi8vLyBFbmFibGVzIGFycm93cyBmb3IgaXRlbXMgd2l0aCBkcm9wZG93biBtZW51cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LWFycm93LWNvbG9yOiAkYW5jaG9yLWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG4vLy8gTWluaW11bSB3aWR0aCBvZiBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcm9wZG93bnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vIEJvcmRlciB3aWR0aCBmb3IgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8gVXNlZCB0byBhZGp1c3QgdG9wIG1hcmdpbiBvZiBhIHN1Yi1tZW51IGlmIGEgYm9yZGVyIGlzIHVzZWQuXG4vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoOiBudGgoJGRyb3Bkb3dubWVudS1ib3JkZXIsIDEpO1xuXG5AbWl4aW4gbGVmdC1yaWdodC1hcnJvd3Mge1xuICA+IGE6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAxNHB4O1xuICB9XG5cbiAgJi5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGxlZnQpO1xuICB9XG5cbiAgJi5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCByaWdodCk7XG4gIH1cbn1cblxuQG1peGluIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XG4gICAgPiBsaS5vcGVucy1sZWZ0IHtcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkub3BlbnMtcmlnaHQge1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06IDEuNXJlbTtcbiAgICAgIH1cblxuICAgICAgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG4gICAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEgKiAoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplIC8gMik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgID4gbGkge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtbGVmdCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1yaWdodCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnUge1xuICAuZHJvcGRvd24ubWVudSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICB9XG5cbiAgICAubm8tanMgJiB1bCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAgICYuI3skc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLiN7JHNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LmZpcnN0LXN1YiB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwge1xuICAgIHdpZHRoOiAxMDBweDtcblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgYTo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICBtYXJnaW4tdG9wOiAtMSAqICRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTtcbiAgICB9XG5cbiAgICAmLm9wZW5zLWlubmVyID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuXG4gICAgICB0b3A6IDEwMCU7XG4gICAgICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICYub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAmLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtaW4td2lkdGg6ICRkcm9wZG93bm1lbnUtbWluLXdpZHRoO1xuXG4gICAgYm9yZGVyOiAkZHJvcGRvd25tZW51LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LWJhY2tncm91bmQ7XG5cbiAgICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICh0eXBlLW9mKCRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKSA9PSAnbnVtYmVyJykge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICBtYXJnaW4tdG9wOiAoLSRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC8vIFtUT0RPXSBDdXQgYmFjayBzcGVjaWZpY2l0eVxuICAgIC8vJjpub3QoLmpzLWRyb3Bkb3duLW5vaG92ZXIpID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50OmhvdmVyID4gJiwgLy8gd2h5IGlzIHRoaXMgbGluZSBuZWVkZWQ/IE9wZW5pbmcgaXMgaGFuZGxlZCBieSBKUyBhbmQgdGhpcyBjYXVzZXMgc29tZSB1Z2x5IGZsaWNrZXJpbmcgd2hlbiB0aGUgc3ViIGlzIHJlLXBvc2l0aW9uZWQgYXV0b21hdGljYWxseS4uLlxuICAgICYuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcmVzcG9uc2l2ZS1lbWJlZFxuLy8vL1xuXG4vLy8gTWFyZ2luIGJlbG93IGEgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBBc3BlY3QgcmF0aW9zIHVzZWQgdG8gZGV0ZXJtaW5lIHBhZGRpbmctYm90dG9tIG9mIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVycy5cbi8vLyBAdHlwZSBNYXBcbiRyZXNwb25zaXZlLWVtYmVkLXJhdGlvczogKFxuICBkZWZhdWx0OiA0IGJ5IDMsXG4gIHdpZGVzY3JlZW46IDE2IGJ5IDksXG4pICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyBhIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7U3RyaW5nfExpc3R9ICRyYXRpbyBbZGVmYXVsdF0gLSBSYXRpbyBvZiB0aGUgY29udGFpbmVyLiBDYW4gYmUgYSBrZXkgZnJvbSB0aGUgYCRyZXNwb25zaXZlLWVtYmVkLXJhdGlvc2AgbWFwIG9yIGEgbGlzdCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG5AbWl4aW4gcmVzcG9uc2l2ZS1lbWJlZCgkcmF0aW86IGRlZmF1bHQpIHtcbiAgQGlmIHR5cGUtb2YoJHJhdGlvKSA9PSAnc3RyaW5nJyB7XG4gICAgJHJhdGlvOiBtYXAtZ2V0KCRyZXNwb25zaXZlLWVtYmVkLXJhdGlvcywgJHJhdGlvKTtcbiAgfVxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLWJvdHRvbTogJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTtcbiAgcGFkZGluZy1ib3R0b206IHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBpZnJhbWUsXG4gIG9iamVjdCxcbiAgZW1iZWQsXG4gIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZCB7XG4gIC5yZXNwb25zaXZlLWVtYmVkLFxuICAuZmxleC12aWRlbyB7XG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1lbWJlZCgkcmF0aW86IGRlZmF1bHQpO1xuXG4gICAgJHJhdGlvczogbWFwLXJlbW92ZSgkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3MsZGVmYXVsdCk7XG5cbiAgICBAZWFjaCAkbmFtZSwgJHJhdGlvIGluICRyYXRpb3Mge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtdmlkZW8ge1xuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQoKS4gZm91bmRhdGlvbi1mbGV4LXZpZGVvKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi40Lic7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZDtcbn1cblxuQG1peGluIGZsZXgtdmlkZW8oJHJhdGlvOiAkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpbykge1xuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSByZXNwb25zaXZlLWVtYmVkKCkuIGZsZXgtdmlkZW8oKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjQuJztcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1lbWJlZDtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gRmluZHMgdGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yIG9mIHR3byBpbnRlZ2Vycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYSAtIEZpcnN0IG51bWJlciB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYiAtIFNlY29uZCBudW1iZXIgdG8gY29tcGFyZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvci5cbkBmdW5jdGlvbiBnY2QoJGEsICRiKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9HcmVhdGVzdF9jb21tb25fZGl2aXNvciNKYXZhU2NyaXB0XG4gIEBpZiAoJGIgIT0gMCkge1xuICAgIEByZXR1cm4gZ2NkKCRiLCAkYSAlICRiKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBhYnMoJGEpO1xuICB9XG59XG5cbi8vLyBIYW5kbGVzIGRlY2ltYWwgZXhwb25lbnRzIGJ5IHRyeWluZyB0byBjb252ZXJ0IHRoZW0gaW50byBhIGZyYWN0aW9uIGFuZCB0aGVuIHVzZSBhIG50aC1yb290LWFsZ29yaXRobSBmb3IgcGFydHMgb2YgdGhlIGNhbGN1bGF0aW9uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgYmFzZSBudW1iZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRleHBvbmVudCAtIFRoZSBleHBvbmVudC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBwcm9kdWN0IG9mIHRoZSBleHBvbmVudGlhdGlvbi5cbkBmdW5jdGlvbiBwb3coJGJhc2UsICRleHBvbmVudCwgJHByZWM6IDEyKSB7XG4gIEBpZiAoZmxvb3IoJGV4cG9uZW50KSAhPSAkZXhwb25lbnQpIHtcbiAgICAkcHJlYzIgOiBwb3coMTAsICRwcmVjKTtcbiAgICAkZXhwb25lbnQ6IHJvdW5kKCRleHBvbmVudCAqICRwcmVjMik7XG4gICAgJGRlbm9taW5hdG9yOiBnY2QoJGV4cG9uZW50LCAkcHJlYzIpO1xuICAgIEByZXR1cm4gbnRoLXJvb3QocG93KCRiYXNlLCAkZXhwb25lbnQgLyAkZGVub21pbmF0b3IpLCAkcHJlYzIgLyAkZGVub21pbmF0b3IsICRwcmVjKTtcbiAgfVxuXG4gICR2YWx1ZTogJGJhc2U7XG4gIEBpZiAkZXhwb25lbnQgPiAxIHtcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRleHBvbmVudCB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAqICRiYXNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZXhwb25lbnQgPCAxIHtcbiAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoIC0kZXhwb25lbnQge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgLyAkYmFzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuQGZ1bmN0aW9uIG50aC1yb290KCRudW0sICRuOiAyLCAkcHJlYzogMTIpIHtcbiAgLy8gRnJvbTogaHR0cDovL3Jvc2V0dGFjb2RlLm9yZy93aWtpL050aF9yb290I0phdmFTY3JpcHRcbiAgJHg6IDE7XG5cbiAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkcHJlYyB7XG4gICAgJHg6IDEgLyAkbiAqICgoJG4gLSAxKSAqICR4ICsgKCRudW0gLyBwb3coJHgsICRuIC0gMSkpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHg7XG59XG5cbi8vLyBDYWxjdWxhdGVzIHRoZSBoZWlnaHQgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSB3aWR0aCBmb3IgYSBnaXZlbiByYXRpby5cbi8vLyBAcGFyYW0ge0xpc3R9ICRyYXRpbyAtIFJhdGlvIHRvIHVzZSB0byBjYWxjdWxhdGUgdGhlIGhlaWdodCwgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuLy8vIEByZXR1cm4ge051bWJlcn0gQSBwZXJjZW50YWdlIHZhbHVlIGZvciB0aGUgaGVpZ2h0IHJlbGF0aXZlIHRvIHRoZSB3aWR0aCBvZiBhIHJlc3BvbnNpdmUgY29udGFpbmVyLlxuQGZ1bmN0aW9uIHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKSB7XG4gICR3OiBudGgoJHJhdGlvLCAxKTtcbiAgJGg6IG50aCgkcmF0aW8sIDMpO1xuICBAcmV0dXJuICRoIC8gJHcgKiAxMDAlO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbGFiZWxcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGUgdGV4dCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRsYWJlbC1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1mb250LXNpemU6IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgb2YgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYmFzZSBzdHlsZXMgZm9yIGEgbGFiZWwuXG5AbWl4aW4gbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6ICRsYWJlbC1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6ICRsYWJlbC1yYWRpdXM7XG5cbiAgZm9udC1zaXplOiAkbGFiZWwtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1sYWJlbCB7XG4gIC5sYWJlbCB7XG4gICAgQGluY2x1ZGUgbGFiZWw7XG5cbiAgICBiYWNrZ3JvdW5kOiAkbGFiZWwtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkbGFiZWwtcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkY29sb3IsICgkbGFiZWwtY29sb3IsICRsYWJlbC1jb2xvci1hbHQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lZGlhLW9iamVjdFxuLy8vL1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIExlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb24gc2VjdGlvbnMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggb2YgaW1hZ2VzIHdpdGhpbiBhIG1lZGlhIG9iamVjdCwgd2hlbiB0aGUgb2JqZWN0IGlzIHN0YWNrZWQgdmVydGljYWxseS4gU2V0IHRvICdhdXRvJyB0byB1c2UgdGhlIGltYWdlJ3MgbmF0dXJhbCB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbWVkaWEgb2JqZWN0IGNvbnRhaW5lci5cbkBtaXhpbiBtZWRpYS1vYmplY3QtY29udGFpbmVyIHtcbiAgZGlzcGxheTogaWYoJGdsb2JhbC1mbGV4Ym94LCBmbGV4LCBibG9jayk7XG4gIG1hcmdpbi1ib3R0b206ICRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3Igc2VjdGlvbnMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGluZyBbJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZ10gLSBQYWRkaW5nIGJldHdlZW4gc2VjdGlvbnMuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LXNlY3Rpb24oJHBhZGRpbmc6ICRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmcpIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgfVxuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogJHBhZGRpbmc7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQ6bm90KDpudGgtY2hpbGQoMikpIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1sZWZ0fTogJHBhZGRpbmc7XG4gIH1cblxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0byBzdGFjayBzZWN0aW9ucyBvZiBhIG1lZGlhIG9iamVjdC4gQXBwbHkgdGhpcyB0byB0aGUgc2VjdGlvbiBlbGVtZW50cywgbm90IHRoZSBjb250YWluZXIuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LXN0YWNrIHtcbiAgcGFkZGluZzogMDtcbiAgcGFkZGluZy1ib3R0b206ICRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc7XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgaW1nIHtcbiAgICB3aWR0aDogJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0IHtcbiAgLm1lZGlhLW9iamVjdCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LWNvbnRhaW5lcjtcblxuICAgIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAmLnN0YWNrLWZvci0jeyQtemYtemVyby1icmVha3BvaW50fSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2stZm9yLSN7JC16Zi16ZXJvLWJyZWFrcG9pbnR9IC5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LXN0YWNrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LXNlY3Rpb247XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICYubWFpbi1zZWN0aW9uIHtcbiAgICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJi5taWRkbGUge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuXG4gICAgICAmLmJvdHRvbSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvZmYtY2FudmFzXG4vLy8vXG5cbi8vLyBXaWR0aCBvZiBhIGxlZnQvcmlnaHQgb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtc2l6ZTogMjUwcHggIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSB0b3AvYm90dG9tIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXZlcnRpY2FsLXNpemU6IDI1MHB4ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBmb3IgdGhlIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgU2hhZG93XG4kb2ZmY2FudmFzLXNoYWRvdzogMCAwIDEwcHggcmdiYSgkYmxhY2ssIDAuNykgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgd2l0aCB0aGUgYHB1c2hgIHRyYW5zaXRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXB1c2gtemluZGV4OiAxICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHdpdGggdGhlIGBvdmVybGFwYCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogMTAgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgdXNpbmcgdGhlIGByZXZlYWwtZm9yLSpgIGNsYXNzZXMgb3IgbWl4aW4uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXJldmVhbC16aW5kZXg6IDEgIWRlZmF1bHQ7XG5cbi8vLyBMZW5ndGggb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cyAhZGVmYXVsdDtcblxuLy8vIFRpbWluZyBmdW5jdGlvbiBvZiB0aGUgYW5pbWF0aW9uIG9uIGFuIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgS2V5d29yZFxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYSByZXZlYWxlZCBvZmYtY2FudmFzIHdpbGwgYmUgZml4ZWQtcG9zaXRpb24sIGFuZCBzY3JvbGwgd2l0aCB0aGUgc2NyZWVuLlxuLy8vIEB0eXBlIEJvb2xcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIG92ZXJsYXkgdGhhdCBhcHBlYXJzIHdoZW4gYW4gb2ZmLWNhbnZhcyBwYW5lbCBpcyBvcGVuLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gQ1NTIGNsYXNzIHVzZWQgZm9yIHRoZSBtYWluIGNvbnRlbnQgYXJlYS4gVGhlIG9mZi1jYW52YXMgbWl4aW5zIHVzZSB0aGlzIHRvIHRhcmdldCB0aGUgcGFnZSBjb250ZW50LlxuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYmFzZWxpbmUgc3R5bGVzIGZvciBvZmYtY2FudmFzLiBUaGlzIENTUyBpcyByZXF1aXJlZCB0byBtYWtlIHRoZSBvdGhlciBwaWVjZXMgd29yay5cbkBtaXhpbiBvZmYtY2FudmFzLWJhc2ljcyB7XG4gIC8vIEhpZGVzIG92ZXJmbG93IG9uIGJvZHkgd2hlbiBhbiBvZmYtY2FudmFzIHBhbmVsIGlzIG9wZW4uXG4gIC5pcy1vZmYtY2FudmFzLW9wZW4ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIG92ZXJsYXkgKGdlbmVyYXRlZCBieSBKYXZhU2NyaXB0KVxuICAuanMtb2ZmLWNhbnZhcy1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZywgdmlzaWJpbGl0eSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc7XG5cbiAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDtcblxuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAmLmlzLWNsb3NhYmxlIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmLmlzLW92ZXJsYXktYWJzb2x1dGUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbiAgICBcbiAgICAmLmlzLW92ZXJsYXktZml4ZWQge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgIH1cbiAgfVxufVxuXG4vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYW4gb2ZmLWNhbnZhcyB3cmFwcGVyLlxuQG1peGluIG9mZi1jYW52YXMtd3JhcHBlcigpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGFuIG9mZi1jYW52YXMgcGFuZWwuXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNlKFxuICAkYmFja2dyb3VuZDogJG9mZmNhbnZhcy1iYWNrZ3JvdW5kLFxuICAkdHJhbnNpdGlvbjogJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nLFxuICAkZml4ZWQ6IHRydWVcbikge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG5cbiAgQGlmICRmaXhlZCA9PSB0cnVlIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIHotaW5kZXg6ICRvZmZjYW52YXMtcHVzaC16aW5kZXg7XG5cbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICR0cmFuc2l0aW9uO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG5cbiAgLy8gT3ZlcmxhcCBvbmx5IHN0eWxlcy5cbiAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAge1xuICAgIHotaW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg7XG5cbiAgICAmLmlzLW9wZW4ge1xuICAgICAgYm94LXNoYWRvdzogJG9mZmNhbnZhcy1zaGFkb3c7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0cyB0cmFuc2Zvcm0gdG8gMCB0byBzaG93IGFuIG9mZi1jYW52YXMgcGFuZWwuXG4gICYuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRvIHBvc2l0aW9uIGFuIG9mZi1jYW52YXMgcGFuZWwgdG8gdGhlIGxlZnQvcmlnaHQvdG9wL2JvdHRvbS5cbkBtaXhpbiBvZmYtY2FudmFzLXBvc2l0aW9uKFxuICAkcG9zaXRpb246IGxlZnQsXG4gICRvcmllbnRhdGlvbjogaG9yaXpvbnRhbCxcbiAgJHNpemU6IGlmKCRvcmllbnRhdGlvbiA9PSBob3Jpem9udGFsLCAkb2ZmY2FudmFzLXNpemUsICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZSlcbikge1xuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAkc2l6ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICAmLmlzLW9wZW4gfiAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAkc2l6ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgICYuaXMtb3BlbiB+IC4jeyRtYWluY29udGVudC1jbGFzc30ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcblxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUpO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgICYuaXMtb3BlbiB+IC4jeyRtYWluY29udGVudC1jbGFzc30ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRzaXplO1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICAmLmlzLW9wZW4gfiAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIElmICRvZmZjYW52YXMtc2hhZG93IGlzIHNldCwgYWRkIGl0IGFzIGEgcHNldWRvLWVsZW1lbnQuXG4gIC8vIFRoaXMgbWltaWNzIHRoZSBvZmYtY2FudmFzIHBhbmVsIGhhdmluZyBhIGxvd2VyIHotaW5kZXgsIHdpdGhvdXQgaGF2aW5nIHRvIGhhdmUgb25lLlxuICBAaWYgJG9mZmNhbnZhcy1zaGFkb3cge1xuICAgICYuaXMtdHJhbnNpdGlvbi1wdXNoOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG5cbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuXG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcblxuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIGJveC1zaGFkb3c6ICRvZmZjYW52YXMtc2hhZG93O1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgfVxuICB9XG5cbiAgLy8gTm8gdHJhbnNmb3JtIG9uIG92ZXJsYXAgdHJhbnNpdGlvblxuICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIH4gLiN7JG1haW5jb250ZW50LWNsYXNzfSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBzdHlsZXMgZm9yIHRoZSBjb250ZW50IGNvbnRhaW5lci5cbkBtaXhpbiBvZmYtY2FudmFzLWNvbnRlbnQoKSB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRoYXQgcmV2ZWFsIGFuIG9mZi1jYW52YXMgcGFuZWwuXG5AbWl4aW4gb2ZmLWNhbnZhcy1yZXZlYWwoXG4kcG9zaXRpb246IGxlZnQsXG4kemluZGV4OiAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsXG4kY29udGVudDogJG1haW5jb250ZW50LWNsYXNzXG4pIHtcbiAgdHJhbnNmb3JtOiBub25lO1xuICB6LWluZGV4OiAkemluZGV4O1xuXG4gIEBpZiBub3QgJG9mZmNhbnZhcy1maXhlZC1yZXZlYWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gICYgfiAuI3skY29udGVudH0ge1xuICAgIG1hcmdpbi0jeyRwb3NpdGlvbn06ICRvZmZjYW52YXMtc2l6ZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1vZmYtY2FudmFzIHtcbiAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNpY3M7XG5cbiAgLy8gT2ZmLWNhbnZhcyB3cmFwcGVyXG4gIC5vZmYtY2FudmFzLXdyYXBwZXIge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtd3JhcHBlcjtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgY29udGFpbmVyXG4gIC5vZmYtY2FudmFzIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2U7XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIGNvbnRhaW5lciB3aXRoIGFic29sdXRlIHBvc2l0aW9uXG4gIC5vZmYtY2FudmFzLWFic29sdXRlIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2UoJGZpeGVkOiBmYWxzZSk7XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIHBvc2l0aW9uIGNsYXNzZXNcbiAgLnBvc2l0aW9uLWxlZnQgICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKGxlZnQsICAgaG9yaXpvbnRhbCk7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0ICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKHJpZ2h0LCAgaG9yaXpvbnRhbCk7IH1cbiAgLnBvc2l0aW9uLXRvcCAgICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKHRvcCwgICAgdmVydGljYWwpOyB9XG4gIC5wb3NpdGlvbi1ib3R0b20gIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihib3R0b20sIHZlcnRpY2FsKTsgfVxuXG4gIC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtY29udGVudDtcbiAgfVxuXG4gIC8vIFJldmVhbCBvZmYtY2FudmFzIHBhbmVsIG9uIGxhcmdlciBzY3JlZW5zXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRuYW1lICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwobGVmdCk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwocmlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbCh0b3ApO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChib3R0b20pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG9yYml0XG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBhY3RpdmUgY29sb3IgZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZGlhbWV0ZXIgZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtZGlhbWV0ZXI6IDEuMnJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGJldHdlZW4gT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW46IDAuMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZGlzdGFuY2UgZnJvbSBzbGlkZSByZWdpb24gZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZyb20gT3JiaXQncyBidWxsZXRzIHRvIHdoYXRldmVyIGNvbnRlbnQgbWF5IGx1cmsgYmVsb3cgaXQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b206IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgT3JiaXQncyBjYXB0aW9uLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgT3JiaXQncyBjYXB0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWNhcHRpb24tcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgT3JiaXQncyBjb250cm9scyB3aGVuIGhvdmVyZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciBPcmJpdCdzIGNvbnRyb2xzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgei1pbmRleCBmb3IgT3JiaXQncyBjb250cm9scy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jb250cm9sLXppbmRleDogMTAgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIG91dGVyIE9yYml0IHdyYXBwZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdGAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5uZXIgT3JiaXQgc2xpZGUgY29udGFpbmVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtY29udGFpbmVyYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDsgLy8gUHJldmVudCBGT1VDIGJ5IG5vdCBzaG93aW5nIHVudGlsIEpTIHNldHMgaGVpZ2h0XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5kaXZpZHVhbCBzbGlkZXMgb2YgYW4gT3JiaXQgc2xpZGVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtc2xpZGVgIGNsYXNzLlxuQG1peGluIG9yYml0LXNsaWRlIHtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgJi5uby1tb3Rpb251aSB7XG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG9yYml0LWZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHNsaWRlIGNvbnRhaW5pbmcgYW4gaW1hZ2UuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1pbWFnZWAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtaW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gb3JiaXQgc2xpZGUgY2FwdGlvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWNhcHRpb25gIGNsYXNzLlxuQG1peGluIG9yYml0LWNhcHRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmc6ICRvcmJpdC1jYXB0aW9uLXBhZGRpbmc7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDtcbiAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZCk7XG59XG5cbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciB0aGUgbmV4dC9wcmV2aW91cyBidXR0b25zIGluIGFuIE9yYml0IHNsaWRlci4gVGhlc2Ugc3R5bGVzIGFyZSBzaGFyZWQgYmV0d2VlbiB0aGUgYC5vcmJpdC1uZXh0YCBhbmQgYC5vcmJpdC1wcmV2aW91c2AgY2xhc3NlcyBpbiB0aGUgZGVmYXVsdCBDU1MuXG5AbWl4aW4gb3JiaXQtY29udHJvbCB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgQGluY2x1ZGUgdmVydGljYWwtY2VudGVyO1xuICB6LWluZGV4OiAkb3JiaXQtY29udHJvbC16aW5kZXg7XG4gIHBhZGRpbmc6ICRvcmJpdC1jb250cm9sLXBhZGRpbmc7XG4gIGNvbG9yOiAkd2hpdGU7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgcHJldmlvdXMgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtcHJldmlvdXNgIGNsYXNzLlxuQG1peGluIG9yYml0LXByZXZpb3VzIHtcbiAgI3skZ2xvYmFsLWxlZnR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBuZXh0IGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LW5leHRgIGNsYXNzLlxuQG1peGluIG9yYml0LW5leHQge1xuICAjeyRnbG9iYWwtbGVmdH06IGF1dG87XG4gICN7JGdsb2JhbC1yaWdodH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjb250YWluZXIgb2YgT3JiaXQgYnVsbGV0cy4gLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgcHJldmlvdXMgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtYnVsbGV0c2AgY2xhc3MuXG5AbWl4aW4gb3JiaXQtYnVsbGV0cyB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAkb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A7XG4gIG1hcmdpbi1ib3R0b206ICRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGJ1dHRvbiB7XG4gICAgd2lkdGg6ICRvcmJpdC1idWxsZXQtZGlhbWV0ZXI7XG4gICAgaGVpZ2h0OiAkb3JiaXQtYnVsbGV0LWRpYW1ldGVyO1xuICAgIG1hcmdpbjogJG9yYml0LWJ1bGxldC1tYXJnaW47XG5cbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9yYml0IHtcbiAgLm9yYml0IHtcbiAgICBAaW5jbHVkZSBvcmJpdC13cmFwcGVyO1xuICB9XG5cbiAgLm9yYml0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY29udGFpbmVyO1xuICB9XG5cbiAgLm9yYml0LXNsaWRlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1zbGlkZTtcbiAgfVxuXG4gIC5vcmJpdC1maWd1cmUge1xuICAgIEBpbmNsdWRlIG9yYml0LWZpZ3VyZTtcbiAgfVxuXG4gIC5vcmJpdC1pbWFnZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtaW1hZ2U7XG4gIH1cblxuICAub3JiaXQtY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY2FwdGlvbjtcbiAgfVxuXG4gICVvcmJpdC1jb250cm9sIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jb250cm9sO1xuICB9XG5cbiAgLm9yYml0LXByZXZpb3VzIHtcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xuICAgIEBpbmNsdWRlIG9yYml0LXByZXZpb3VzO1xuICB9XG5cbiAgLm9yYml0LW5leHQge1xuICAgIEBleHRlbmQgJW9yYml0LWNvbnRyb2w7XG4gICAgQGluY2x1ZGUgb3JiaXQtbmV4dDtcbiAgfVxuXG4gIC5vcmJpdC1idWxsZXRzIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1idWxsZXRzO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwYWdpbmF0aW9uXG4vLy8vXG5cbi8vLyBGb250IHNpemUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIG9mIHRoZSBwYWdpbmF0aW9uIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKSAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IG1hcmdpbiB0byBzZXBhcmF0ZSBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBwYWdpbmF0aW9uIGl0ZW0gZm9yIHRoZSBjdXJyZW50IHBhZ2UuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhIGRpc2FibGVkIHBhZ2luYXRpb24gaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGVsbGlwc2lzIGluIGEgcGFnaW5hdGlvbiBtZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gSWYgYGZhbHNlYCwgZG9uJ3QgZGlzcGxheSBwYWdlIG51bWJlciBsaW5rcyBvbiBtb2JpbGUsIG9ubHkgbmV4dC9wcmV2aW91cyBsaW5rc1xuLy8vIGFuZCBvcHRpb25hbGx5IGN1cnJlbnQgcGFnZSBudW1iZXIuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgZGlzcGxheSB0aGUgY3VycmVudCBwYWdlIG51bWJlciBvbiBtb2JpbGUgZXZlbiBpZiBgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zYCBpcyBzZXQgdG8gYGZhbHNlYC5cbi8vLyBUaGlzIHBhcmFtZXRlciB3aWxsIG9ubHkgb3ZlcnJpZGUgdGhlIHZpc2liaWxpdHkgc2V0dGluZyBvZiB0aGUgY3VycmVudCBpdGVtIGZvciBgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZTtgLFxuLy8vIGl0IHdpbGwgbm90IGFmZmVjdCB0aGUgY3VycmVudCBwYWdlIG51bWJlciB2aXNpYmlsaXR5IHdoZW4gYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtc2AgaXMgc2V0IHRvIGB0cnVlYC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYXJyb3dzIGFyZSBhZGRlZCB0byB0aGUgbmV4dCBhbmQgcHJldmlvdXMgbGlua3Mgb2YgcGFnaW5hdGlvbi5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBwYWdpbmF0aW9uIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWNvbnRhaW5lciAoXG4gICRtYXJnaW4tYm90dG9tOiAkcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tLFxuICAkZm9udC1zaXplOiAkcGFnaW5hdGlvbi1mb250LXNpemUsXG4gICRzcGFjaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmcsXG4gICRyYWRpdXM6ICRwYWdpbmF0aW9uLXJhZGl1cyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tYm90dG9tO1xuXG4gIC8vIExpc3QgaXRlbVxuICBsaSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuXG4gICAgQGlmICRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICY6bGFzdC1jaGlsZCxcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtIHtcbiAgICAgICAgJi5jdXJyZW50IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgY3VycmVudCBwYWdpbmF0aW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gYW4gYDxhPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtLWN1cnJlbnQgKFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkYmFja2dyb3VuZC1jdXJyZW50OiAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudCxcbiAgJGNvbG9yLWN1cnJlbnQ6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudFxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1jdXJyZW50O1xuICBjb2xvcjogJGNvbG9yLWN1cnJlbnQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGRpc2FibGVkIHBhZ2luYXRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byBhbiBgPGE+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQgKFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWRcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgY29sb3I6ICRjb2xvcjtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGVsbGlwc2lzIGZvciB1c2UgaW4gYSBwYWdpbmF0aW9uIGxpc3QuXG5AbWl4aW4gcGFnaW5hdGlvbi1lbGxpcHNpcyAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRjb2xvcjogJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3Jcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgY29udGVudDogJ1xcMjAyNic7XG4gIGNvbG9yOiAkY29sb3I7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXBhZ2luYXRpb24ge1xuICAucGFnaW5hdGlvbiB7XG4gICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1jb250YWluZXI7XG5cbiAgICAuY3VycmVudCB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0tY3VycmVudDtcbiAgICB9XG5cbiAgICAuZGlzYWJsZWQge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkO1xuICAgIH1cblxuICAgIC5lbGxpcHNpczo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1lbGxpcHNpcztcbiAgICB9XG4gIH1cblxuICBAaWYgJHBhZ2luYXRpb24tYXJyb3dzIHtcbiAgICAucGFnaW5hdGlvbi1wcmV2aW91cyBhOjpiZWZvcmUsXG4gICAgLnBhZ2luYXRpb24tcHJldmlvdXMuZGlzYWJsZWQ6OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC41cmVtO1xuICAgICAgY29udGVudDogJ1xcMDBhYic7XG4gICAgfVxuXG4gICAgLnBhZ2luYXRpb24tbmV4dCBhOjphZnRlcixcbiAgICAucGFnaW5hdGlvbi1uZXh0LmRpc2FibGVkOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwLjVyZW07XG4gICAgICBjb250ZW50OiAnXFwwMGJiJztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgcHJvZ3Jlc3MgYmFyIGNvbnRhaW5lci5cbkBtaXhpbiBwcm9ncmVzcy1jb250YWluZXIge1xuICBoZWlnaHQ6ICRwcm9ncmVzcy1oZWlnaHQ7XG4gIG1hcmdpbi1ib3R0b206ICRwcm9ncmVzcy1tYXJnaW4tYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtYmFja2dyb3VuZDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5uZXIgbWV0ZXIgb2YgYSBwcm9ncmVzcyBiYXIuXG5AbWl4aW4gcHJvZ3Jlc3MtbWV0ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ7XG5cbiAgQGlmIGhhcy12YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0ZXh0IGluIHRoZSBwcm9ncmVzcyBtZXRlci5cbkBtaXhpbiBwcm9ncmVzcy1tZXRlci10ZXh0IHtcbiAgQGluY2x1ZGUgYWJzb2x1dGUtY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBAaWYgaGFzLXZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb2dyZXNzLWJhciB7XG4gIC8vIFByb2dyZXNzIGJhclxuICAucHJvZ3Jlc3Mge1xuICAgIEBpbmNsdWRlIHByb2dyZXNzLWNvbnRhaW5lcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgLnByb2dyZXNzLW1ldGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJbm5lciBtZXRlclxuICAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIEBpbmNsdWRlIHByb2dyZXNzLW1ldGVyO1xuICB9XG5cbiAgLy8gSW5uZXIgbWV0ZXIgdGV4dFxuICAucHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtbWV0ZXItdGV4dDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvZ3Jlc3MtYmFyXG4vLy8vXG5cbi8vLyBIZWlnaHQgb2YgYSBwcm9ncmVzcyBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHByb2dyZXNzIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHByb2dyZXNzLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgYSBwcm9ncmVzcyBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGEgcHJvZ3Jlc3MgYmFyJ3MgbWV0ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIG9mIGEgcHJvZ3Jlc3MgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHByb2dyZXNzLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb2dyZXNzLWVsZW1lbnQge1xuICBwcm9ncmVzcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkcHJvZ3Jlc3MtaGVpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206ICRwcm9ncmVzcy1tYXJnaW4tYm90dG9tO1xuXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgIEBpZiBoYXN2YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICAgIH1cblxuICAgIC8vIEZvciBGaXJlZm94XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6ICRwcm9ncmVzcy1iYWNrZ3JvdW5kO1xuXG4gICAgJjo6LXdlYmtpdC1wcm9ncmVzcy1iYXIge1xuICAgICAgYmFja2dyb3VuZDogJHByb2dyZXNzLWJhY2tncm91bmQ7XG5cbiAgICAgIEBpZiBoYXN2YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDtcblxuICAgICAgQGlmIGhhc3ZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjotbW96LXByb2dyZXNzLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDtcblxuICAgICAgQGlmIGhhc3ZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIC8vIEludGVybmV0IEV4cGxvcmVyIHNldHMgdGhlIGZpbGwgd2l0aCBjb2xvclxuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICY6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Oi1tb3otcHJvZ3Jlc3MtYmFyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGb3IgSUUgYW5kIEVkZ2VcbiAgICAmOjotbXMtZmlsbCB7XG4gICAgICBAaWYgaGFzdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gW1RPRE9dIENoZWNrIGhvdyBwbHVnaW4gY29uZmlybXMgZGlzYWJsZWQgb3IgdmVydGljYWwgc3RhdHVzXG4vLyBbVE9ET10gQ2hlY2sgaWYgdHJhbnNpdGlvbjogYWxsOyBpcyBuZWNlc3NhcnlcblxuLy8vL1xuLy8vIEBncm91cCBzbGlkZXJcbi8vLy9cblxuLy8vIERlZmF1bHQgc2xpZGVyIHdpZHRoIG9mIGEgdmVydGljYWwgc2xpZGVyLiAoRG9lc24ndCBhcHBseSB0byB0aGUgbmF0aXZlIHNsaWRlci4pXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUcmFuc2l0aW9uIHByb3BlcnRpZXMgdG8gYXBwbHkgdG8gdGhlIHNsaWRlciBoYW5kbGUgYW5kIGZpbGwuIChEb2Vzbid0IGFwcGx5IHRvIHRoZSBuYXRpdmUgc2xpZGVyLilcbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kc2xpZGVyLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHNsaWRlcnMuXG5AbWl4aW4gc2xpZGVyLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciBhY3RpdmUgZmlsbCBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItZmlsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc2xpZGVyLXRyYW5zaXRpb247XG5cbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHRoZSBzbGlkZXIgaGFuZGxlcy5cbkBtaXhpbiBzbGlkZXItaGFuZGxlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG5cbiAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogc2NhbGUtY29sb3IoJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSk7XG4gIH1cblxuICAmLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xuICB9XG59XG5cbkBtaXhpbiBzbGlkZXItZGlzYWJsZWQge1xuICBvcGFjaXR5OiAkc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbkBtaXhpbiBzbGlkZXItdmVydGljYWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAkc2xpZGVyLXdpZHRoLXZlcnRpY2FsO1xuICBoZWlnaHQ6IDEyLjVyZW07XG4gIG1hcmdpbjogMCAxLjI1cmVtO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcblxuICAuc2xpZGVyLWZpbGwge1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogJHNsaWRlci13aWR0aC12ZXJ0aWNhbDtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLnNsaWRlci1oYW5kbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gICAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tc2xpZGVyIHtcbiAgLy8gQ29udGFpbmVyXG4gIC5zbGlkZXIge1xuICAgIEBpbmNsdWRlIHNsaWRlci1jb250YWluZXI7XG4gIH1cblxuICAvLyBGaWxsIGFyZWFcbiAgLnNsaWRlci1maWxsIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItZmlsbDtcbiAgfVxuXG4gIC8vIERyYWdnYWJsZSBoYW5kbGVcbiAgLnNsaWRlci1oYW5kbGUge1xuICAgIEBpbmNsdWRlIHNsaWRlci1oYW5kbGU7XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAuc2xpZGVyLmRpc2FibGVkLFxuICAuc2xpZGVyW2Rpc2FibGVkXSB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWRpc2FibGVkO1xuICB9XG5cbiAgLy8gVmVydGljYWwgc2xpZGVyXG4gIC5zbGlkZXIudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHNsaWRlci12ZXJ0aWNhbDtcbiAgfVxuXG4gIC8vIFJUTCBzdXBwb3J0XG4gIEBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCB7XG4gICAgLnNsaWRlcjpub3QoLnZlcnRpY2FsKSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHNsaWRlclxuLy8vL1xuXG4vLy8gRGVmYXVsdCBoZWlnaHQgb2YgdGhlIHNsaWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItaGVpZ2h0OiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHNsaWRlcidzIHRyYWNrLlxuLy8vIEB0eXBlIENvbG9yXG4kc2xpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgYWN0aXZlIGZpbGwgY29sb3Igb2YgdGhlIHNsaWRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHNsaWRlci1maWxsLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgaGVpZ2h0IG9mIHRoZSBoYW5kbGUgb2YgdGhlIHNsaWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItaGFuZGxlLWhlaWdodDogMS40cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB3aWR0aCBvZiB0aGUgaGFuZGxlIG9mIHRoZSBzbGlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLWhhbmRsZS13aWR0aDogMS40cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgaGFuZGxlIGZvciB0aGUgc2xpZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmFkZSBhbW91bnQgb2YgYSBkaXNhYmxlZCBzbGlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2xpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHNsaWRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1yYW5nZS1pbnB1dCB7XG4gIGlucHV0W3R5cGU9XCJyYW5nZVwiXSB7ICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAkbWFyZ2luOiAoJHNsaWRlci1oYW5kbGUtaGVpZ2h0IC0gJHNsaWRlci1oZWlnaHQpIC8gMjtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAkbWFyZ2luO1xuICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW47XG5cbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRzbGlkZXItcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkO1xuICAgIH1cblxuICAgIC8vIHNhc3MtbGludDpkaXNhYmxlIG5vLXZlbmRvci1wcmVmaXhcblxuICAgIC8vIENocm9tZS9TYWZhcmlcbiAgICAmOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gICAgICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICY6Oi13ZWJraXQtc2xpZGVyLWhhbmRsZSB7XG4gICAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gICAgICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcbiAgICAgIG1hcmdpbi10b3A6IC0kbWFyZ2luO1xuXG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRzbGlkZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpcmVmb3hcbiAgICAmOjotbW96LXJhbmdlLXRyYWNrIHtcbiAgICAgIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gICAgICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcbiAgICAgIG1hcmdpbi10b3A6IC0kbWFyZ2luO1xuXG4gICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRzbGlkZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEludGVybmV0IEV4cGxvcmVyXG4gICAgJjo6LW1zLXRyYWNrIHtcbiAgICAgIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG5cbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJvcmRlci10b3A6ICRtYXJnaW4gc29saWQgJGJvZHktYmFja2dyb3VuZDtcbiAgICAgIGJvcmRlci1ib3R0b206ICRtYXJnaW4gc29saWQgJGJvZHktYmFja2dyb3VuZDtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItYmFja2dyb3VuZDtcblxuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgJjo6LW1zLXRodW1iIHtcbiAgICAgIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkc2xpZGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjotbXMtZmlsbC1sb3dlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWZpbGwtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAmOjotbXMtZmlsbC11cHBlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgQGF0LXJvb3Qge1xuICAgICAgb3V0cHV0IHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXN0aWNreSB7XG4gIC5zdGlja3ktY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAuc3RpY2t5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgLnN0aWNreS5pcy1zdHVjayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDU7XG5cbiAgICAmLmlzLWF0LXRvcCB7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgJi5pcy1hdC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5zdGlja3kuaXMtYW5jaG9yZWQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuXG4gICAgJi5pcy1hdC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcmV2ZWFsXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSBtb2RhbC5cbi8vLyBAdHlwZSBDb2xvclxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHdpZHRoIG9mIGEgbW9kYWwsIHdpdGggbm8gY2xhc3MgYXBwbGllZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtd2lkdGg6IDYwMHB4ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXhpbXVtIHdpZHRoIG9mIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIHotaW5kZXggZm9yIG1vZGFscy4gVGhlIG92ZXJsYXkgdXNlcyB0aGlzIHZhbHVlLCB3aGlsZSB0aGUgbW9kYWwgaXRzZWxmIHVzZXMgdGhpcyB2YWx1ZSBwbHVzIG9uZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtemluZGV4OiAxMDA1ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBtb2RhbCBvdmVybGF5cy5cbi8vLyBAdHlwZSBDb2xvclxuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjQ1KSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG1vZGFsIG92ZXJsYXkuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIG92ZXJsYXkuXG5AbWl4aW4gcmV2ZWFsLW92ZXJsYXkoJGJhY2tncm91bmQ6ICRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kKSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAkcmV2ZWFsLXppbmRleDtcblxuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgYSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXggKyAxO1xuICAvLyBXb3JrYXJvdW5kIGFuZHJvaWQgYnJvd3NlciB6LWluZGV4IGJ1Z1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHJldmVhbC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJHJldmVhbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRyZXZlYWwtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmV2ZWFsLWJhY2tncm91bmQ7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHJvd3MgZG9uJ3QgaGF2ZSBhIG1pbi13aWR0aCBvbiB0aGVtXG4gIC5jb2x1bW4sXG4gIC5jb2x1bW5zIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAvLyBTdHJpcCBtYXJnaW5zIGZyb20gdGhlIGxhc3QgaXRlbSBpbiB0aGUgbW9kYWxcbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRqdXN0cyB0aGUgd2lkdGggb2YgYSBtb2RhbC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIC0gV2lkdGggb2YgdGhlIG1vZGFsLiBHZW5lcmFsbHkgYSBwZXJjZW50YWdlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4LXdpZHRoIFskcmV2ZWFsLW1heC13aWR0aF0gLSBNYXhpbXVtIHdpZHRoIG9mIHRoZSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtd2lkdGgoXG4gICR3aWR0aDogJHJldmVhbC13aWR0aCxcbiAgJG1heC13aWR0aDogJHJldmVhbC1tYXgtd2lkdGhcbikge1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIEBleHRlbmQgJXJldmVhbC1jZW50ZXJlZDtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIG1heC13aWR0aDogJHJldmVhbC1tYXgtd2lkdGg7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXNjcmVlbiBtb2RhbCwgd2hpY2ggc3RyZXRjaGVzIHRoZSBmdWxsIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHdpbmRvdy5cbkBtaXhpbiByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbiB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcblxuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGhlaWdodDogMTAwdmg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tZHVwbGljYXRlLXByb3BlcnRpZXNcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcmV2ZWFsIHtcbiAgLy8gW1RPRE9dIElzIHRoaXMgbmVjZXNzYXJ5P1xuICBib2R5LmlzLXJldmVhbC1vcGVuIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIGh0bWwgZ2V0cyB0aGlzIGNsYXNzIG9ubHkgaW4gaU9TXG4gIGh0bWwuaXMtcmV2ZWFsLW9wZW4sXG4gIGh0bWwuaXMtcmV2ZWFsLW9wZW4gYm9keSB7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICB9XG5cbiAgLy8gT3ZlcmxheVxuICAucmV2ZWFsLW92ZXJsYXkge1xuICAgIEBpbmNsdWRlIHJldmVhbC1vdmVybGF5O1xuICB9XG5cbiAgLy8gTW9kYWwgY29udGFpbmVyXG4gIC5yZXZlYWwge1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlO1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCgkcmV2ZWFsLXdpZHRoKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxMDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIC8vIFBsYWNlaG9sZGVyIHNlbGVjdG9yIGZvciBtZWRpdW0tYW5kLXVwIG1vZGFsc1xuICAgIC8vIFByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgd2hlbiBkZWZpbmluZyBtdWx0aXBsZSBSZXZlYWwgc2l6ZXNcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgJXJldmVhbC1jZW50ZXJlZCB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgcGFkZGluZ1xuICAgICYuY29sbGFwc2Uge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAvLyBTaXppbmcgY2xhc3Nlc1xuICAgICYudGlueSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoMzAlKTsgfVxuICAgICYuc21hbGwgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoNTAlKTsgfVxuICAgICYubGFyZ2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoOTAlKTsgfVxuXG4gICAgLy8gRnVsbC1zY3JlZW4gbW9kZVxuICAgICYuZnVsbCB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuO1xuICAgIH1cblxuICAgICYud2l0aG91dC1vdmVybGF5IHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHN3aXRjaFxuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHN3aXRjaC5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGFjdGl2ZSBjb2xvciBvZiBhIHN3aXRjaC5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2gsIHdpdGggbm8gY2xhc3MgYXBwbGllZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0OiAycmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLnRpbnkgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC10aW55OiAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAuc21hbGwgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC1zbWFsbDogMS43NXJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC5sYXJnZSBjbGFzcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0LWxhcmdlOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIG9mIHRoZSBzd2l0Y2hcbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIGJvcmRlciBhcm91bmQgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBzd2l0Y2ggY29udGFpbmVyIGFuZCBwYWRkbGUuXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhIHN3aXRjaCBwYWRkbGUgYW5kIHRoZSBlZGdlIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gYm9yZGVyIHJhZGl1cyBvZiB0aGUgc3dpdGNoIHBhZGRsZVxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIHN3aXRjaCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLyBtYWtlIHRoZW0gdmFyaWFibGVzXG4vLyBhc2sgYWJvdXQgYWNjZXNzaWJpbGl0eSBvbiBsYWJlbFxuLy8gY2hhbmdlIGNsYXNzIG5hbWUgZm9yIHRleHRcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN3aXRjaCBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBjb250YWluZXIgY2xhc3MuXG5AbWl4aW4gc3dpdGNoLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogJHN3aXRjaC1tYXJnaW47XG4gIG91dGxpbmU6IDA7XG5cbiAgLy8gVGhlc2UgcHJvcGVydGllcyBjYXNjYWRlIGRvd24gdG8gdGhlIHN3aXRjaCB0ZXh0XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICR3aGl0ZTtcblxuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN3aXRjaCBpbnB1dC4gQXBwbHkgdGhpcyB0byBhbiBgPGlucHV0PmAgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC1pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgb3BhY2l0eTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgcGFkZGxlIG9mIGEgc3dpdGNoLiBBcHBseSB0aGlzIHRvIGEgYDxsYWJlbD5gIHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtcGFkZGxlIHtcbiAgJHN3aXRjaC13aWR0aDogJHN3aXRjaC1oZWlnaHQgKiAyO1xuICAkcGFkZGxlLWhlaWdodDogJHN3aXRjaC1oZWlnaHQgLSAoJHN3aXRjaC1wYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRzd2l0Y2gtcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q6ICRzd2l0Y2gtd2lkdGggLSAkcGFkZGxlLXdpZHRoIC0gJHN3aXRjaC1wYWRkbGUtb2Zmc2V0O1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAkc3dpdGNoLXdpZHRoO1xuICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuXG4gIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtcmFkaXVzO1xuICBiYWNrZ3JvdW5kOiAkc3dpdGNoLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb247XG5cbiAgLy8gUmVzZXR0aW5nIHRoZXNlIDxsYWJlbD4gcHJlc2V0cyBzbyB0eXBlIHN0eWxlcyBjYXNjYWRlIGRvd25cbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuXG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBOZWVkZWQgdG8gb3ZlcnJpZGUgc3BlY2lmaWNpdHlcbiAgaW5wdXQgKyAmIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBUaGUgcGFkZGxlIGl0c2VsZlxuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogJHN3aXRjaC1wYWRkbGUtb2Zmc2V0O1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJHN3aXRjaC1wYWRkbGUtb2Zmc2V0O1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6ICRwYWRkbGUtd2lkdGg7XG4gICAgaGVpZ2h0OiAkcGFkZGxlLWhlaWdodDtcblxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgYm9yZGVyLXJhZGl1czogJHN3aXRjaC1wYWRkbGUtcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ7XG4gICAgdHJhbnNpdGlvbjogJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjtcbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gIC8vIENoYW5nZSB0aGUgdmlzdWFsIHN0eWxlIHdoZW4gdGhlIHN3aXRjaCBpcyBhY3RpdmVcbiAgaW5wdXQ6Y2hlY2tlZCB+ICYge1xuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtYWN0aXZlLW9mZmVzdDtcbiAgICB9XG4gIH1cblxuICBpbnB1dDpmb2N1cyB+ICYge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgfVxufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgYWN0aXZlL2luYWN0aXZlIHRleHQgaW5zaWRlIGEgc3dpdGNoLiBBcHBseSB0aGlzIHRvIHRleHQgZWxlbWVudHMgaW5zaWRlIHRoZSBzd2l0Y2ggYDxsYWJlbD5gLlxuQG1peGluIHN3aXRjaC10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBhY3RpdmUgc3RhdGUgdGV4dCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXRleHQtYWN0aXZlIHtcbiAgI3skZ2xvYmFsLWxlZnR9OiA4JTtcbiAgZGlzcGxheTogbm9uZTtcblxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAmIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbmFjdGl2ZSBzdGF0ZSB0ZXh0IHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtdGV4dC1pbmFjdGl2ZSB7XG4gICN7JGdsb2JhbC1yaWdodH06IDE1JTtcblxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAmIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzaXplIG9mIGEgc3dpdGNoIGJ5IG1vZGlmeWluZyB0aGUgc2l6ZSBvZiB0aGUgYm9keSBhbmQgcGFkZGxlLiBBcHBseSB0aGlzIHRvIGEgc3dpdGNoIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZvbnQtc2l6ZSBbMXJlbV0gLSBGb250IHNpemUgb2YgbGFiZWwgdGV4dCB3aXRoaW4gdGhlIHN3aXRjaC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHN3aXRjaC1oZWlnaHQgWzJyZW1dIC0gSGVpZ2h0IG9mIHRoZSBzd2l0Y2ggYm9keS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRsZS1vZmZzZXQgWzAuMjVyZW1dIC0gU3BhY2luZyBiZXR3ZWVuIHRoZSBzd2l0Y2ggcGFkZGxlIGFuZCB0aGUgZWRnZSBvZiB0aGUgc3dpdGNoIGJvZHkuXG5AbWl4aW4gc3dpdGNoLXNpemUoXG4gICRmb250LXNpemU6IDFyZW0sXG4gICRzd2l0Y2gtaGVpZ2h0OiAycmVtLFxuICAkcGFkZGxlLW9mZnNldDogMC4yNXJlbVxuKSB7XG5cbiAgJHN3aXRjaC13aWR0aDogJHN3aXRjaC1oZWlnaHQgKiAyO1xuICAkcGFkZGxlLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAtICgkcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLWhlaWdodDogJHN3aXRjaC1oZWlnaHQgLSAoJHBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1hY3RpdmUtb2ZmZXN0OiAkc3dpdGNoLXdpZHRoIC0gJHBhZGRsZS13aWR0aCAtICRwYWRkbGUtb2Zmc2V0O1xuXG4gIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG5cbiAgLnN3aXRjaC1wYWRkbGUge1xuICAgIHdpZHRoOiAkc3dpdGNoLXdpZHRoO1xuICAgIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICB9XG5cbiAgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICB0b3A6ICRwYWRkbGUtb2Zmc2V0O1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJHBhZGRsZS1vZmZzZXQ7XG4gICAgd2lkdGg6ICRwYWRkbGUtd2lkdGg7XG4gICAgaGVpZ2h0OiAkcGFkZGxlLWhlaWdodDtcbiAgfVxuXG4gIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJHBhZGRsZS1hY3RpdmUtb2ZmZXN0O1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXN3aXRjaCB7XG4gIC8vIENvbnRhaW5lciBjbGFzc1xuICAuc3dpdGNoIHtcbiAgICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC1jb250YWluZXI7XG4gIH1cblxuICAvLyA8aW5wdXQ+IGVsZW1lbnRcbiAgLnN3aXRjaC1pbnB1dCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLWlucHV0O1xuICB9XG5cbiAgLy8gPGxhYmVsPiBlbGVtZW50XG4gIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtcGFkZGxlO1xuICB9XG5cbiAgLy8gQmFzZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAlc3dpdGNoLXRleHQge1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0O1xuICB9XG5cbiAgLy8gQWN0aXZlIGxhYmVsIHRleHQgc3R5bGVzXG4gIC5zd2l0Y2gtYWN0aXZlIHtcbiAgICBAZXh0ZW5kICVzd2l0Y2gtdGV4dDtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dC1hY3RpdmU7XG4gIH1cblxuICAvLyBJbmFjdGl2ZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAuc3dpdGNoLWluYWN0aXZlIHtcbiAgICBAZXh0ZW5kICVzd2l0Y2gtdGV4dDtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dC1pbmFjdGl2ZTtcbiAgfVxuXG4gIC8vIFN3aXRjaCBzaXplc1xuICAuc3dpdGNoLnRpbnkge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDEwKSwgJHN3aXRjaC1oZWlnaHQtdGlueSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxuXG4gIC5zd2l0Y2guc21hbGwge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDEyKSwgJHN3aXRjaC1oZWlnaHQtc21hbGwsICRzd2l0Y2gtcGFkZGxlLW9mZnNldCk7XG4gIH1cblxuICAuc3dpdGNoLmxhcmdlIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxNiksICRzd2l0Y2gtaGVpZ2h0LWxhcmdlLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Fzcy1saW50OmRpc2FibGUgZm9yY2UtZWxlbWVudC1uZXN0aW5nLCBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGFibGVcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIHRhYmxlIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGUgICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSBzdHJpcGVkIHRhYmxlIHJvd3MgYW5kIHRoZSB0YWJsZSBib3JkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtY29sb3Itc2NhbGU6IDUlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzdHlsZSBmb3IgdGFibGUgYm9yZGVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1ib3JkZXI6IDFweCBzb2xpZCBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFibGUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtaG92ZXItc2NhbGU6IDIlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdGFuZGFyZCByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2Ygc3RyaXBlZCByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIHRhYmxlcyBhcmUgc3RyaXBlZCBieSBkZWZhdWx0IGFuZCBhbiAudW5zdHJpcGVkIGNsYXNzIGlzIGNyZWF0ZWQuIElmIGBmYWxzZWAsIGEgLnN0cmlwZWQgY2xhc3MgaXMgY3JlYXRlZC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3Igc3RyaXBlZCByb3dzLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIHNob3dpbmcgdGhlIHN0cmlwZSBvbiByb3dzIG9mIHRoZSB0YWJsZXMsIGV4Y2x1ZGluZyB0aGUgaGVhZGVyIGFuZCBmb290ZXIuIElmIGV2ZW4sIHRoZSBldmVuIHJvd3Mgd2lsbCBoYXZlIGEgYmFja2dyb3VuZCBjb2xvci4gSWYgb2RkLCB0aGUgb2RkIHJvd3Mgd2lsbCBoYXZlIGEgYmFja2dyb3VuZCBjb2xvci4gSWYgZW1wdHksIG9yIGFueSBvdGhlciB2YWx1ZSwgdGhlIHRhYmxlIHJvd3Mgd2lsbCBoYXZlIG5vIHN0cmlwaW5nLlxuLy8vIEB0eXBlIEtleXdvcmRcbiR0YWJsZS1zdHJpcGU6IGV2ZW4gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWFkZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSAvIDIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBoZWFkZXIgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtaGVhZC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtaGVhZC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgZm9vdGVyIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBmb290ZXIgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtZm9vdC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtZm9vdC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBoZWFkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvb3Rlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIHNob3dpbmcgdGhlIGhlYWRlciB3aGVuIHVzaW5nIHN0YWNrZWQgdGFibGVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2UgIWRlZmF1bHQ7XG5cbkBtaXhpbiAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGU6ICR0YWJsZS1zdHJpcGUpIHtcbiAgdHIge1xuICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gZXZlbiwgZGFya2VuIHRoZSBldmVuIHJvd3MuXG4gICAgQGlmICRzdHJpcGUgPT0gZXZlbiB7XG4gICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBvZGQsIGRhcmtlbiB0aGUgb2RkIHJvd3MuXG4gICAgQGVsc2UgaWYgJHN0cmlwZSA9PSBvZGQge1xuICAgICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiAtemYtdGFibGUtdW5zdHJpcGUoKSB7XG4gIHRyIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIGJvcmRlci1ib3R0b206ICR0YWJsZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gIH1cbn1cblxuQG1peGluIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZTogJHRhYmxlLXN0cmlwZSwgJGlzLXN0cmlwZWQ6ICR0YWJsZS1pcy1zdHJpcGVkKSB7XG4gIHRoZWFkLFxuICB0Ym9keSxcbiAgdGZvb3Qge1xuICAgIGJvcmRlcjogJHRhYmxlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIENhcHRpb25cbiAgY2FwdGlvbiB7XG4gICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gIH1cblxuICAvLyBUYWJsZSBoZWFkXG4gIHRoZWFkIHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtaGVhZC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGFibGUtaGVhZC1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gVGFibGUgZm9vdFxuICB0Zm9vdCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWZvb3QtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRhYmxlLWZvb3QtZm9udC1jb2xvcjtcbiAgfVxuXG4gIC8vIFRhYmxlIGhlYWQgYW5kIGZvb3RcbiAgdGhlYWQsXG4gIHRmb290IHtcbiAgICAvLyBSb3dzIHdpdGhpbiBoZWFkIGFuZCBmb290XG4gICAgdHIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLy8gQ2VsbHMgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgICAgdGV4dC1hbGlnbjogI3skZ2xvYmFsLWxlZnR9O1xuICAgIH1cbiAgfVxuXG4gIC8vIFRhYmxlIHJvd3NcbiAgdGJvZHkge1xuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRhYmxlcyBhcmUgc3RyaXBlZFxuICBAaWYgJGlzLXN0cmlwZWQgPT0gdHJ1ZSB7XG4gICAgdGJvZHkge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlKTtcbiAgICB9XG5cbiAgICAmLnVuc3RyaXBlZCB7XG4gICAgICB0Ym9keSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS11bnN0cmlwZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiB0YWJsZXMgYXJlIG5vdCBzdHJpcGVkXG4gIEBlbHNlIGlmICRpcy1zdHJpcGVkID09IGZhbHNlIHtcbiAgICB0Ym9keSB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtdW5zdHJpcGUoKTtcbiAgICB9XG5cbiAgICAmLnN0cmlwZWQge1xuICAgICAgdGJvZHkge1xuICAgICAgICBAaW5jbHVkZSAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHRhYmxlcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHJpcGUgWyR0YWJsZS1zdHJpcGVdIC0gVXNlcyBrZXl3b3JkcyBldmVuLCBvZGQsIG9yIG5vbmUgdG8gZGFya2VuIHJvd3Mgb2YgdGhlIHRhYmxlLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBldmVuLlxuQG1peGluIHRhYmxlKFxuICAkc3RyaXBlOiAkdGFibGUtc3RyaXBlLFxuICAkbmVzdDogZmFsc2Vcbikge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4gIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4gIEBpZiAkbmVzdCB7XG4gICAgQGluY2x1ZGUgLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGF0LXJvb3Qge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGFiaWxpdHkgdG8gaG9yaXpvbnRhbGx5IHNjcm9sbCB0aGUgdGFibGUgd2hlbiB0aGUgY29udGVudCBvdmVyZmxvd3MgaG9yaXpvbnRhbGx5LlxuQG1peGluIHRhYmxlLXNjcm9sbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbn1cblxuLy8vIFNsaWdodGx5IGRhcmtlbnMgdGhlIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG5AbWl4aW4gdGFibGUtaG92ZXIge1xuICB0aGVhZCB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSB0YWJsZSBoZWFkZXIgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1oZWFkLXJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICB0Zm9vdCB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSB0YWJsZSBmb290ZXIgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1mb290LXJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICB0Ym9keSB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSBub24tc3RyaXBlZCB0YWJsZSByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICBAaWYgJHRhYmxlLWlzLXN0cmlwZWQgPT0gdHJ1ZSB7XG4gICAgLy8gRGFya2VucyB0aGUgZXZlbiBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGlmKCR0YWJsZS1zdHJpcGUgPT0gZXZlbikge1xuICAgICAgJjpub3QoLnVuc3RyaXBlZCkgdHI6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEYXJrZW5zIHRoZSBvZGQgc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBlbHNlaWYoJHRhYmxlLXN0cmlwZSA9PSBvZGQpIHtcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSBmYWxzZSB7XG4gICAgLy8gRGFya2VucyB0aGUgZXZlbiBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGlmKCR0YWJsZS1zdHJpcGUgPT0gZXZlbikge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGFya2VucyB0aGUgb2RkIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAZWxzZWlmKCR0YWJsZS1zdHJpcGUgPT0gb2RkKSB7XG4gICAgICAmLnN0cmlwZWQgdHI6bnRoLW9mLXR5cGUob2RkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3RhY2tlZCB0YWJsZS4gVXNlZnVsIGZvciBzbWFsbC1zY3JlZW4gbGF5b3V0cy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRoZWFkZXIgWyRzaG93LWhlYWRlci1mb3Itc3RhY2tlZF0gLSBTaG93IHRoZSBmaXJzdCB0aCBvZiBoZWFkZXIgd2hlbiBzdGFja2VkLlxuQG1peGluIHRhYmxlLXN0YWNrKCRoZWFkZXI6ICRzaG93LWhlYWRlci1mb3Itc3RhY2tlZCkge1xuICBAaWYgJGhlYWRlciB7XG4gICAgdGhlYWQge1xuICAgICAgdGg6Zmlyc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgdGgge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgdGhlYWQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICB0Zm9vdCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIHRyLFxuICB0aCxcbiAgdGQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgdGQge1xuICAgIGJvcmRlci10b3A6IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGFibGUoJG5lc3Q6IGZhbHNlKSB7XG4gIHRhYmxlIHtcbiAgICBAaW5jbHVkZSB0YWJsZSgkbmVzdDogJG5lc3QpO1xuICB9XG5cbiAgdGFibGUuc3RhY2sge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAgIEBpbmNsdWRlIHRhYmxlLXN0YWNrO1xuICAgIH1cbiAgfVxuXG4gIHRhYmxlLnNjcm9sbCB7XG4gICAgQGluY2x1ZGUgdGFibGUtc2Nyb2xsO1xuICB9XG5cbiAgdGFibGUuaG92ZXIge1xuICAgIEBpbmNsdWRlIHRhYmxlLWhvdmVyO1xuICB9XG5cbiAgLnRhYmxlLXNjcm9sbCB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIHRhYmxlIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgJ21hdGgnO1xuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ2hlY2tzIHRoZSBsdW1pbmFuY2Ugb2YgYCRjb2xvcmAuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBjaGVjayB0aGUgbHVtaW5hbmNlIG9mLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGx1bWluYW5jZSBvZiBgJGNvbG9yYC5cbkBmdW5jdGlvbiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yKSB7XG4gIC8vIEFkYXB0ZWQgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL0xlYVZlcm91L2NvbnRyYXN0LXJhdGlvL2Jsb2IvZ2gtcGFnZXMvY29sb3IuanNcbiAgLy8gRm9ybXVsYTogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNyZWxhdGl2ZWx1bWluYW5jZWRlZlxuICAkcmdiYTogcmVkKCRjb2xvciksIGdyZWVuKCRjb2xvciksIGJsdWUoJGNvbG9yKTtcbiAgJHJnYmEyOiAoKTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDMge1xuICAgICRyZ2I6IG50aCgkcmdiYSwgJGkpO1xuICAgICRyZ2I6ICRyZ2IgLyAyNTU7XG5cbiAgICAkcmdiOiBpZigkcmdiIDwgMC4wMzkyOCwgJHJnYiAvIDEyLjkyLCBwb3coKCRyZ2IgKyAwLjA1NSkgLyAxLjA1NSwgMi40KSk7XG5cbiAgICAkcmdiYTI6IGFwcGVuZCgkcmdiYTIsICRyZ2IpO1xuICB9XG5cbiAgQHJldHVybiAwLjIxMjYgKiBudGgoJHJnYmEyLCAxKSArIDAuNzE1MiAqIG50aCgkcmdiYTIsIDIpICsgMC4wNzIyICogbnRoKCRyZ2JhMiwgMyk7XG59XG5cbi8vLyBDaGVja3MgdGhlIGNvbnRyYXN0IHJhdGlvIG9mIHR3byBjb2xvcnMuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IxIC0gRmlyc3QgY29sb3IgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IyIC0gU2Vjb25kIGNvbG9yIHRvIGNvbXBhcmUuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgY29udHJhc3QgcmF0aW8gb2YgdGhlIGNvbXBhcmVkIGNvbG9ycy5cbkBmdW5jdGlvbiBjb2xvci1jb250cmFzdCgkY29sb3IxLCAkY29sb3IyKSB7XG4gIC8vIEFkYXB0ZWQgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL0xlYVZlcm91L2NvbnRyYXN0LXJhdGlvL2Jsb2IvZ2gtcGFnZXMvY29sb3IuanNcbiAgLy8gRm9ybXVsYTogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNjb250cmFzdC1yYXRpb2RlZlxuICAkbHVtaW5hbmNlMTogY29sb3ItbHVtaW5hbmNlKCRjb2xvcjEpICsgMC4wNTtcbiAgJGx1bWluYW5jZTI6IGNvbG9yLWx1bWluYW5jZSgkY29sb3IyKSArIDAuMDU7XG4gICRyYXRpbzogJGx1bWluYW5jZTEgLyAkbHVtaW5hbmNlMjtcblxuICBAaWYgJGx1bWluYW5jZTIgPiAkbHVtaW5hbmNlMSB7XG4gICAgJHJhdGlvOiAxIC8gJHJhdGlvO1xuICB9XG5cbiAgJHJhdGlvOiByb3VuZCgkcmF0aW8gKiAxMCkgLyAxMDtcblxuICBAcmV0dXJuICRyYXRpbztcbn1cblxuLy8vIENoZWNrcyB0aGUgbHVtaW5hbmNlIG9mIGAkYmFzZWAsIGFuZCByZXR1cm5zIHRoZSBjb2xvciBmcm9tIGAkY29sb3JzYCAobGlzdCBvZiBjb2xvcnMpIHRoYXQgaGFzIHRoZSBtb3N0IGNvbnRyYXN0LlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMSAtIEZpcnN0IGNvbG9yIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMiAtIFNlY29uZCBjb2xvciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGNvbnRyYXN0IHJhdGlvIG9mIHRoZSBjb21wYXJlZCBjb2xvcnMuXG5AZnVuY3Rpb24gY29sb3ItcGljay1jb250cmFzdCgkYmFzZSwgJGNvbG9yczogKCR3aGl0ZSwgJGJsYWNrKSwgJHRvbGVyYW5jZTogMCkge1xuICAkY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgMSkpO1xuICAkYmVzdDogbnRoKCRjb2xvcnMsIDEpO1xuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggbGVuZ3RoKCRjb2xvcnMpIHtcbiAgICAkY3VycmVudC1jb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAkaSkpO1xuICAgIEBpZiAoJGN1cnJlbnQtY29udHJhc3QgLSAkY29udHJhc3QgPiAkdG9sZXJhbmNlKSB7XG4gICAgICAkY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgJGkpKTtcbiAgICAgICRiZXN0OiBudGgoJGNvbG9ycywgJGkpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJGNvbnRyYXN0IDwgMykge1xuICAgIEB3YXJuIFwiQ29udHJhc3QgcmF0aW8gb2YgI3skYmVzdH0gb24gI3skYmFzZX0gaXMgcHJldHR5IGJhZCwganVzdCAjeyRjb250cmFzdH1cIjtcbiAgfVxuXG4gIEByZXR1cm4gJGJlc3Q7XG59XG5cbi8vLyBTY2FsZXMgYSBjb2xvciB0byBiZSBkYXJrZXIgaWYgaXQncyBsaWdodCwgb3IgbGlnaHRlciBpZiBpdCdzIGRhcmsuIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHRpbnQgYSBjb2xvciBhcHByb3ByaWF0ZSB0byBpdHMgbGlnaHRuZXNzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gc2NhbGUuXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkc2NhbGUgWzUlXSAtIEFtb3VudCB0byBzY2FsZSB1cCBvciBkb3duLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHRocmVzaG9sZCBbNDAlXSAtIFRocmVzaG9sZCBvZiBsaWdodG5lc3MgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gQSBzY2FsZWQgY29sb3IuXG5AZnVuY3Rpb24gc21hcnQtc2NhbGUoJGNvbG9yLCAkc2NhbGU6IDUlLCAkdGhyZXNob2xkOiA0MCUpIHtcbiAgQGlmIGxpZ2h0bmVzcygkY29sb3IpID4gJHRocmVzaG9sZCB7XG4gICAgJHNjYWxlOiAtJHNjYWxlO1xuICB9XG4gIEByZXR1cm4gc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkc2NhbGUpO1xufVxuXG4vLy8gR2V0IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcGFyYW0ge2tleX0gY29sb3Iga2V5IGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG5AZnVuY3Rpb24gZ2V0LWNvbG9yKCRrZXkpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJGtleSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnZ2l2ZW4gJGtleSBpcyBub3QgYXZhaWxhYmxlIGluICRmb3VuZGF0aW9uLXBhbGV0dGUnO1xuICB9XG59XG5cbi8vLyBUcmFuc2ZlcnMgdGhlIGNvbG9ycyBpbiB0aGUgYCRmb3VuZGF0aW9uLXBhbGV0dGVgbWFwIGludG8gdmFyaWFibGVzLCBzdWNoIGFzIGAkcHJpbWFyeS1jb2xvcmAgYW5kIGAkc2Vjb25kYXJ5LWNvbG9yYC4gQ2FsbCB0aGlzIG1peGluIGJlbG93IHRoZSBHbG9iYWwgc2VjdGlvbiBvZiB5b3VyIHNldHRpbmdzIGZpbGUgdG8gcHJvcGVybHkgbWlncmF0ZSB5b3VyIGNvZGViYXNlLlxuQG1peGluIGFkZC1mb3VuZGF0aW9uLWNvbG9ycygpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgICAkcHJpbWFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpIHtcbiAgICAkc2Vjb25kYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2Vzcykge1xuICAgICRzdWNjZXNzLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpIHtcbiAgICAkd2FybmluZy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkge1xuICAgICRhbGVydC1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkgIWdsb2JhbDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGFic1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gb2YgdGhlIHRhYiBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhIHRhYiBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBvZiB0YWIgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBBY3RpdmUgYmFja2dyb3VuZCBjb2xvciBvZiBhIHRhYiBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItYmFja2dyb3VuZC1hY3RpdmU6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQWN0aXZlIGZvbnQgY29sb3Igb2YgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItYWN0aXZlLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiB0YWIgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGl0ZW1zIGluIGEgTWVudS5cbiR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgb2YgYSB0YWIgaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItaXRlbS1wYWRkaW5nOiAxLjI1cmVtIDEuNXJlbSAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gbnVtYmVyIG9mIGBleHBhbmQtbmAgY2xhc3NlcyB0byBpbmNsdWRlIGluIHRoZSBDU1MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWV4cGFuZC1tYXg6IDYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb250ZW50LWJvcmRlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSB0YWIgY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgYDx1bD5gLlxuQG1peGluIHRhYnMtY29udGFpbmVyIChcbiAgJG1hcmdpbjogJHRhYi1tYXJnaW4sXG4gICRiYWNrZ3JvdW5kOiAkdGFiLWJhY2tncm91bmQsXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luOiAkbWFyZ2luO1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGFpbmVyIHRvIGhhdmUgdmVydGljYWwgdGFicy4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250YWluZXIoKWAuXG5AbWl4aW4gdGFicy1jb250YWluZXItdmVydGljYWwge1xuICA+IGxpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBsaW5rcyB3aXRoaW4gYSB0YWIgY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIHRoZSBgPGxpPmAgZWxlbWVudHMgaW5zaWRlIGEgdGFiIGNvbnRhaW5lci5cbkBtaXhpbiB0YWJzLXRpdGxlIChcbiAgJHBhZGRpbmc6ICR0YWItaXRlbS1wYWRkaW5nLFxuICAkZm9udC1zaXplOiAkdGFiLWl0ZW0tZm9udC1zaXplLFxuICAkY29sb3I6ICR0YWItY29sb3IsXG4gICRjb2xvci1hY3RpdmU6ICR0YWItYWN0aXZlLWNvbG9yLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXIsXG4gICRiYWNrZ3JvdW5kLWFjdGl2ZTogJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZVxuKSB7XG4gIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XG5cbiAgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgICBjb2xvcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICZbYXJpYS1zZWxlY3RlZD0ndHJ1ZSddIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgIGNvbG9yOiAkY29sb3ItYWN0aXZlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSB3cmFwcGVyIHRoYXQgc3Vycm91bmRzIGEgdGFiIGdyb3VwJ3MgY29udGVudCBwYW5lcy5cbkBtaXhpbiB0YWJzLWNvbnRlbnQgKFxuICAkYmFja2dyb3VuZDogJHRhYi1jb250ZW50LWJhY2tncm91bmQsXG4gICRjb2xvcjogJHRhYi1jb250ZW50LWNvbG9yLFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiAkY29sb3I7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7XG59XG5cbi8vLyBBdWdtZW50cyBhIHRhYiBjb250ZW50IGNvbnRhaW5lciB0byBoYXZlIGEgdmVydGljYWwgc3R5bGUsIGJ5IHNoaWZ0aW5nIHRoZSBib3JkZXIgYXJvdW5kLiBVc2UgdGhpcyBpbiBjb25qdW5jdGlvbiB3aXRoIGB0YWJzLWNvbnRlbnQoKWAuXG5AbWl4aW4gdGFicy1jb250ZW50LXZlcnRpY2FsIChcbiAgJGJvcmRlci1jb2xvcjogJHRhYi1jb250ZW50LWJvcmRlclxuKSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gaW5kaXZpZHVhbCB0YWIgY29udGVudCBwYW5lbCB3aXRoaW4gdGhlIHRhYiBjb250ZW50IGNvbnRhaW5lci5cbkBtaXhpbiB0YWJzLXBhbmVsIChcbiAgJHBhZGRpbmc6ICR0YWItY29udGVudC1wYWRkaW5nXG4pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgJlthcmlhLWhpZGRlbj1cImZhbHNlXCJdIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJzIHtcbiAgLnRhYnMge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyO1xuICB9XG5cbiAgLy8gVmVydGljYWxcbiAgLnRhYnMudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsO1xuICB9XG5cbiAgLy8gU2ltcGxlXG4gIC50YWJzLnNpbXBsZSB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgcGFkZGluZzogMDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFByaW1hcnkgY29sb3JcbiAgLnRhYnMucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cbiAgICA+IGxpID4gYSB7XG4gICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkcHJpbWFyeS1jb2xvcik7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHByaW1hcnktY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50YWJzLXRpdGxlIHtcbiAgICBAaW5jbHVkZSB0YWJzLXRpdGxlO1xuICB9XG5cbiAgLnRhYnMtY29udGVudCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50O1xuICB9XG5cbiAgLnRhYnMtY29udGVudC52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50LXZlcnRpY2FsO1xuICB9XG5cbiAgLnRhYnMtcGFuZWwge1xuICAgIEBpbmNsdWRlIHRhYnMtcGFuZWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRodW1ibmFpbFxuLy8vL1xuXG4vLy8gQm9yZGVyIGFyb3VuZCB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIEJvcmRlclxuJHRodW1ibmFpbC1ib3JkZXI6IHNvbGlkIDRweCAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgdW5kZXIgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBTaGFkb3dcbiR0aHVtYm5haWwtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssIDAuMikgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwgMC41KSAhZGVmYXVsdDtcblxuLy8vIFRyYW5zaXRpb24gcHJvcHJ0aWVzIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiR0aHVtYm5haWwtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQWRkcyB0aHVtYm5haWwgc3R5bGVzIHRvIGFuIGVsZW1lbnQuXG5AbWl4aW4gdGh1bWJuYWlsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206ICR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTtcblxuICBib3JkZXI6ICR0aHVtYm5haWwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkdGh1bWJuYWlsLXJhZGl1cztcbiAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3c7XG5cbiAgbGluZS1oZWlnaHQ6IDA7XG59XG5cbkBtaXhpbiB0aHVtYm5haWwtbGluayB7XG4gIHRyYW5zaXRpb246ICR0aHVtYm5haWwtdHJhbnNpdGlvbjtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAkdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjtcbiAgfVxuXG4gIGltYWdlIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRodW1ibmFpbCB7XG4gIC50aHVtYm5haWwge1xuICAgIEBpbmNsdWRlIHRodW1ibmFpbDtcbiAgfVxuXG4gIGEudGh1bWJuYWlsIHtcbiAgICBAaW5jbHVkZSB0aHVtYm5haWwtbGluaztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGl0bGUtYmFyXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItYmFja2dyb3VuZDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgV2VpZ2h0XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIG1lbnUgaWNvbnMgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgbWVudSBpY29ucyBpbnNpZGUgYSB0aXRsZSBiYXIgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gdGhlIG1lbnUgaWNvbiBhbmQgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10aXRsZS1iYXIge1xuICAudGl0bGUtYmFyIHtcbiAgICBwYWRkaW5nOiAkdGl0bGViYXItcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiAkdGl0bGViYXItYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRpdGxlYmFyLWNvbG9yO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxuXG4gICAgLm1lbnUtaWNvbiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkdGl0bGViYXItaWNvbi1zcGFjaW5nO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICR0aXRsZWJhci1pY29uLXNwYWNpbmc7XG4gICAgfVxuICB9XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLnRpdGxlLWJhci1sZWZ0LFxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG5cbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRpdGxlLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLnRpdGxlLWJhci10aXRsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZm9udC13ZWlnaHQ6ICR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0b29sdGlwXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGhhcy10aXAtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBib3R0b20gb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBMaXN0XG4kaGFzLXRpcC1ib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSB0b29sdGlwIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIHRvb2x0aXAgZm9udC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiB0aGUgdG9vbHRpcCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIG9mIHRoZSB0b29sdGlwIHRleHQuIEJ5IGRlZmF1bHQsIHdlIHJlY29tbWVuZCBhIHNtYWxsZXIgZm9udCBzaXplIHRoYW4gdGhlIGJvZHkgY29weS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLWZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGlwIHdpZHRoIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBpcC13aWR0aDogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGlwIGhlaWdodCBmb3IgdG9vbHRpcHMuIFRoaXMgaXMgaGVscGZ1bCBmb3IgY2FsY3VsYXRpbmcgdGhlIGRpc3RhbmNlIG9mIHRoZSB0b29sdGlwIGZyb20gdGhlIHRvb2x0aXAgd29yZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHRvb2x0aXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGhhcy10aXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBib3JkZXItYm90dG9tOiAkaGFzLXRpcC1ib3JkZXItYm90dG9tO1xuICBmb250LXdlaWdodDogJGhhcy10aXAtZm9udC13ZWlnaHQ7XG4gIGN1cnNvcjogaGVscDtcbn1cblxuQG1peGluIHRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgI3skdG9vbHRpcC1waXAtaGVpZ2h0fSk7XG4gIHotaW5kZXg6IDEyMDA7XG5cbiAgbWF4LXdpZHRoOiAxMHJlbTtcbiAgcGFkZGluZzogJHRvb2x0aXAtcGFkZGluZztcblxuICBib3JkZXItcmFkaXVzOiAkdG9vbHRpcC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICR0b29sdGlwLWJhY2tncm91bmQtY29sb3I7XG4gIGZvbnQtc2l6ZTogJHRvb2x0aXAtZm9udC1zaXplO1xuICBjb2xvcjogJHRvb2x0aXAtY29sb3I7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCB1cCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG5cbiAgJi50b3A6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgZG93bik7XG4gICAgdG9wOiAxMDAlO1xuICAgIGJvdHRvbTogYXV0bztcbiAgfVxuXG4gICYubGVmdDo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCByaWdodCk7XG4gICAgdG9wOiA1MCU7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB9XG5cbiAgJi5yaWdodDo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBsZWZ0KTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMTAwJTtcbiAgICBib3R0b206IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9vbHRpcCB7XG4gIC5oYXMtdGlwIHtcbiAgICBAaW5jbHVkZSBoYXMtdGlwO1xuICB9XG5cbiAgLnRvb2x0aXAge1xuICAgIEBpbmNsdWRlIHRvb2x0aXA7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRvcC1iYXJcbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgdG9wIGJhci4gVGhpcyBjb2xvciBhbHNvIGNhc2NhZGVzIHRvIG1lbnVzIHdpdGhpbiB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRvcGJhci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igc3VibWVudXMgd2l0aGluIHRoZSB0b3AgYmFyLiBVc2VmdWxsIGlmICR0b3BiYXItYmFja2dyb3VuZCBpcyB0cmFuc3BhcmVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgZm9yIHRoZSB0b3AgYmFyIHRpdGxlLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci10aXRsZS1zcGFjaW5nOiAwLjVyZW0gMXJlbSAwLjVyZW0gMCAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYDxpbnB1dD5gIGVsZW1lbnRzIGluc2lkZSB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItaW5wdXQtd2lkdGg6IDIwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBhdCB3aGljaCB0b3AgYmFyIHN3aXRjaGVzIGZyb20gbW9iaWxlIHRvIGRlc2t0b3Agdmlldy5cbi8vLyBAdHlwZSBCcmVha3BvaW50XG4kdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludDogbWVkaXVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdG9wIGJhciBjb250YWluZXIuXG5AbWl4aW4gdG9wLWJhci1jb250YWluZXIge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuXG4gIHBhZGRpbmc6ICR0b3BiYXItcGFkZGluZztcblxuICAmLFxuICB1bCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgJHRvcGJhci1iYWNrZ3JvdW5kIGlzIGRpZmZlcm50IGZyb20gJHRvcGJhci1iYWNrZ3JvdW5kLXN1Ym1lbnVcbiAgQGlmICgkdG9wYmFyLWJhY2tncm91bmQgIT0gJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQpIHtcbiAgICB1bCB1bCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXN0cmFpbiB3aWR0aCBvZiBpbnB1dHMgYnkgZGVmYXVsdCB0byBtYWtlIHRoZW0gZWFzaWVyIHRvIGFycmFuZ2VcbiAgaW5wdXQge1xuICAgIG1heC13aWR0aDogJHRvcGJhci1pbnB1dC13aWR0aDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgfVxuXG4gIC8vIFRoZSBhYm92ZSBzdHlsZXMgc2hvdWxkbid0IGFwcGx5IHRvIGlucHV0IGdyb3VwIGZpZWxkc1xuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICB9XG5cbiAgaW5wdXQuYnV0dG9uIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIE1ha2VzIHNlY3Rpb25zIG9mIGEgdG9wIGJhciBzdGFjayBvbiB0b3Agb2YgZWFjaCBvdGhlci5cbkBtaXhpbiB0b3AtYmFyLXN0YWNrZWQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAvLyBTdWItc2VjdGlvbnNcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gU3ViLXNlY3Rpb25zXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFVuZG9lcyB0aGUgQ1NTIGFwcGxpZWQgYnkgdGhlIGB0b3AtYmFyLXN0YWNrZWQoKWAgbWl4aW4uXG5AbWl4aW4gdG9wLWJhci11bnN0YWNrIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIH1cblxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9wLWJhciB7XG4gIC8vIFRvcCBiYXIgY29udGFpbmVyXG4gIC50b3AtYmFyIHtcbiAgICBAaW5jbHVkZSB0b3AtYmFyLWNvbnRhaW5lcjtcblxuICAgIC8vIFN0YWNrIG9uIHNtYWxsIHNjcmVlbnMgYnkgZGVmYXVsdFxuICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQpIHtcbiAgICAgIEBpbmNsdWRlIHRvcC1iYXItdW5zdGFjaztcbiAgICB9XG5cbiAgICAvLyBHZW5lcmF0ZSBjbGFzc2VzIGZvciBzdGFja2luZyBvbiBlYWNoIHNjcmVlbiBzaXplIChkZWZpbmVkIGluICRicmVha3BvaW50LWNsYXNzZXMpXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAmLnN0YWNrZWQtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTdWItc2VjdGlvbnNcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLnRvcC1iYXItdGl0bGUge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBtYXJnaW46ICR0b3BiYXItdGl0bGUtc3BhY2luZztcbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRvcC1iYXItdGl0bGUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nOiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG5cbiAgICAgIC5tZW51LWljb24ge1xuICAgICAgICBib3R0b206IDJweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvcigkc2l6ZSkge1xuICAkc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHNpemU6IC16Zi1icC10by1lbSgkc2l6ZSkgLSAoMSAvIDE2KTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgd2l0aGluIGEgY2VydGFpbiBicmVha3BvaW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3Itb25seSgkc2l6ZSkge1xuICAkbG93ZXItYm91bmQtc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHVwcGVyLWJvdW5kLXNpemU6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRzaXplKTtcblxuICAvLyBtb3JlIG9mdGVuIHRoYW4gbm90IHRoaXMgd2lsbCBiZSBjb3JyZWN0LCBqdXN0IG9uZSB0aW1lIHJvdW5kIHRoZSBsb29wIGl0IHdvbid0IHNvIHNldCBpbiBzY29wZSBoZXJlXG4gICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKSAtICgxIC8gMTYpO1xuICAvLyB0ZXN0IGFjdHVhbCBsb3dlci1ib3VuZC1zaXplLCBpZiAwIHNldCBpdCB0byAwZW1cbiAgQGlmIHN0cmlwLXVuaXQoJGxvd2VyLWJvdW5kLXNpemUpID09IDAge1xuICAgICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKTtcbiAgfVxuXG4gIEBpZiAkdXBwZXItYm91bmQtc2l6ZSA9PSBudWxsIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICR1cHBlci1ib3VuZDogLXpmLWJwLXRvLWVtKCR1cHBlci1ib3VuZC1zaXplKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHVwcGVyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvcigkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3Itb25seSgkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzIHtcbiAgLy8gQmFzaWMgaGlkaW5nIGNsYXNzZXNcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5zaG93LWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3ctZm9yKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBzaG93LWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBTY3JlZW4gcmVhZGVyIHZpc2liaWxpdHkgY2xhc3Nlc1xuICAvLyBOZWVkIGEgXCJoaWRlLWZvci1zclwiIGNsYXNzPyBBZGQgYXJpYS1oaWRkZW49J3RydWUnIHRvIHRoZSBlbGVtZW50XG4gIC5zaG93LWZvci1zcixcbiAgLnNob3ctb24tZm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG5cbiAgLy8gT25seSBkaXNwbGF5IHRoZSBlbGVtZW50IHdoZW4gaXQncyBmb2N1c2VkXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICB9XG4gIH1cblxuICAvLyBMYW5kc2NhcGUgYW5kIHBvcnRyYWl0IHZpc2liaWxpdHlcbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZmxvYXRcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcyB7XG4gIC5mbG9hdC1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZsb2F0LXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIC5jbGVhcmZpeCB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cbn1cbiIsIi8vIHNjc3MtbGludDpkaXNhYmxlIEltcG9ydGFudFJ1bGUsIFNwYWNlQWZ0ZXJDb21tYSwgU2luZ2xlTGluZVBlclByb3BlcnR5XG5cbkBtaXhpbiAtbW90aW9uLXVpLWRlZmF1bHRzIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogbWFwLWdldCgkbW90aW9uLXVpLXNwZWVkcywgZGVmYXVsdCk7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdWktZWFzaW5ncywgZGVmYXVsdCk7XG59XG5cbi8vIFRyYW5zaXRpb25zXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuQG1peGluIG1vdGlvbi11aS10cmFuc2l0aW9ucyB7XG4gIC8vIFNsaWRlXG4gIC5zbGlkZS1pbi1kb3duICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgZG93bik7IH1cbiAgLnNsaWRlLWluLWxlZnQgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICByaWdodCk7IH1cbiAgLnNsaWRlLWluLXVwICAgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICB1cCk7IH1cbiAgLnNsaWRlLWluLXJpZ2h0ICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICBsZWZ0KTsgfVxuICAuc2xpZGUtb3V0LWRvd24gICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIGRvd24pOyB9XG4gIC5zbGlkZS1vdXQtcmlnaHQgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgcmlnaHQpOyB9XG4gIC5zbGlkZS1vdXQtdXAgICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgdXApOyB9XG4gIC5zbGlkZS1vdXQtbGVmdCAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgbGVmdCk7IH1cblxuICAvLyBGYWRlXG4gIC5mYWRlLWluICB7IEBpbmNsdWRlIG11aS1mYWRlKGluLCAgMCwgMSk7IH1cbiAgLmZhZGUtb3V0IHsgQGluY2x1ZGUgbXVpLWZhZGUob3V0LCAxLCAwKTsgfVxuXG4gIC8vIEhpbmdlXG4gIC5oaW5nZS1pbi1mcm9tLXRvcCAgICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgdG9wKTsgfVxuICAuaGluZ2UtaW4tZnJvbS1yaWdodCAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHJpZ2h0KTsgfVxuICAuaGluZ2UtaW4tZnJvbS1ib3R0b20gICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIGJvdHRvbSk7IH1cbiAgLmhpbmdlLWluLWZyb20tbGVmdCAgICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICBsZWZ0KTsgfVxuICAuaGluZ2UtaW4tZnJvbS1taWRkbGUteCAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICB0b3AsICAgY2VudGVyKTsgfVxuICAuaGluZ2UtaW4tZnJvbS1taWRkbGUteSAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICByaWdodCwgY2VudGVyKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tdG9wICAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHRvcCk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLXJpZ2h0ICAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCByaWdodCk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLWJvdHRvbSAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCBib3R0b20pOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1sZWZ0ICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgbGVmdCk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLW1pZGRsZS14IHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgdG9wLCAgIGNlbnRlcik7IH1cbiAgLmhpbmdlLW91dC1mcm9tLW1pZGRsZS15IHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgcmlnaHQsIGNlbnRlcik7IH1cblxuICAvLyBTY2FsZVxuICAuc2NhbGUtaW4tdXAgICAgeyBAaW5jbHVkZSBtdWktem9vbShpbiwgIDAuNSwgMSk7IH1cbiAgLnNjYWxlLWluLWRvd24gIHsgQGluY2x1ZGUgbXVpLXpvb20oaW4sICAxLjUsIDEpOyB9XG4gIC5zY2FsZS1vdXQtdXAgICB7IEBpbmNsdWRlIG11aS16b29tKG91dCwgMSwgMS41KTsgfVxuICAuc2NhbGUtb3V0LWRvd24geyBAaW5jbHVkZSBtdWktem9vbShvdXQsIDEsIDAuNSk7IH1cblxuICAvLyBTcGluXG4gIC5zcGluLWluICAgICB7IEBpbmNsdWRlIG11aS1zcGluKGluLCAgY3cpOyB9XG4gIC5zcGluLW91dCAgICB7IEBpbmNsdWRlIG11aS1zcGluKG91dCwgY3cpOyB9XG4gIC5zcGluLWluLWNjdyAgeyBAaW5jbHVkZSBtdWktc3BpbihpbiwgIGNjdyk7IH1cbiAgLnNwaW4tb3V0LWNjdyB7IEBpbmNsdWRlIG11aS1zcGluKG91dCwgY2N3KTsgfVxuXG4gIC8vIFRyYW5zaXRpb24gTW9kaWZpZXJzXG4gIC8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLXNwZWVkcyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgdHJhbnNpdGlvbi1kdXJhdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZWFzaW5ncyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWRlbGF5cyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9LWRlbGF5IHsgdHJhbnNpdGlvbi1kZWxheTogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQW5pbWF0aW9uc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbkBtaXhpbiBtb3Rpb24tdWktYW5pbWF0aW9ucyB7XG4gIC5zaGFrZSAgICB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24oc2hha2UpOyB9XG4gIC5zcGluLWN3ICB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24oc3Bpbik7IH1cbiAgLnNwaW4tY2N3IHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihzcGluKGNjdykpOyB9XG4gIC53aWdnbGUgICB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24od2lnZ2xlKTsgfVxuXG4gIC5zaGFrZSxcbiAgLnNwaW4tY3csXG4gIC5zcGluLWNjdyxcbiAgLndpZ2dsZSB7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdWktc3BlZWRzLCBkZWZhdWx0KTtcbiAgfVxuXG4gIC8vIEFuaW1hdGlvbiBNb2RpZmllcnNcbiAgLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbiAgLmluZmluaXRlIHsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktc3BlZWRzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyBhbmltYXRpb24tZHVyYXRpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWVhc2luZ3Mge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWRlbGF5cyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9LWRlbGF5IHsgYW5pbWF0aW9uLWRlbGF5OiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8vIEZvcm1hdCBmb3IgQ1NTIGNsYXNzZXMgY3JlYXRlZCB3aXRoIE1vdGlvbiBVSS5cbi8vLyBAdHlwZSBNYXBcbi8vLyBAcHJvcCB7Qm9vbGVhbn0gYXBwZW5kIFt0cnVlXSAtIERlZmluZXMgaWYgc2VsZWN0b3JzIGFyZSBjaGFpbmVkIHRvIHRoZSBzZWxlY3RvciAoYC5jbGFzcy5lbnRlcmApLCBvciBhcHBlbmRlZCBhcyBhIG5ldyBjbGFzcyAoYC5jbGFzcy1lbnRlcmApLlxuLy8vIEBwcm9wIHtTdHJpbmd9IHByZWZpeCBbJ211aS0nXSAtIFByZWZpeCB0byBhZGQgYmVmb3JlIHRoZSBzdGF0ZSBvZiBhIGNsYXNzLiBFbnRlciBhbiBlbXB0eSBzdHJpbmcgdG8gdXNlIG5vIHByZWZpeC5cbi8vLyBAcHJvcCB7U3RyaW5nfSBwcmVmaXggWyctYWN0aXZlJ10gLSBTdWZmaXggdG8gYWRkIHRvIHRoZSBhY3RpdmUgc3RhdGUgY2xhc3MuXG4kbW90aW9uLXVpLWNsYXNzZXM6IChcbiAgY2hhaW46IHRydWUsXG4gIHByZWZpeDogJ211aS0nLFxuICBhY3RpdmU6ICctYWN0aXZlJyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBTdGF0ZSBuYW1lcyB0byByZWZlcmVuY2Ugd2hlbiB3cml0aW5nIG1vdGlvbiBjbGFzc2VzLiBUbyB1c2UgbXVsdGlwbGUgY2xhc3MgbmFtZXMgZm9yIG9uZSBzdGF0ZSwgZW50ZXIgYSBsaXN0IG9mIHN0cmluZ3MgaW5zdGVhZCBvZiBvbmUgc3RyaW5nLlxuLy8vIEB0eXBlIE1hcFxuJG1vdGlvbi11aS1zdGF0ZXM6IChcbiAgaW46ICdlbnRlcicsXG4gIG91dDogJ2xlYXZlJyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNwZWVkIHRoYXQgdHJhbnNpdGlvbnMgYW5kIGFuaW1hdGlvbnMgcGxheSBhdCwgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBzcGVlZC5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktc3BlZWRzOiAoXG4gIGRlZmF1bHQ6IDUwMG1zLFxuICBzbG93OiA3NTBtcyxcbiAgZmFzdDogMjUwbXMsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkZWxheSB0byBhZGQgYmVmb3JlIG1vdGlvbiwgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBkZWxheS5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktZGVsYXlzOiAoXG4gIGRlZmF1bHQ6IDAsXG4gIHNob3J0OiAzMDBtcyxcbiAgbG9uZzogNzAwbXMsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBlYXNpbmcgZm9yIHRyYW5zaXRpb25zIGFuZCBhbmltYXRpb25zLCBhbG9uZyB3aXRoIHZhbHVlcyBmb3IgbW9kaWZpZXIgY2xhc3NlcyB0byBjaGFuZ2UgdGhlIGVhc2luZy5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktZWFzaW5nczogKFxuICBkZWZhdWx0OiBsaW5lYXIsXG4gIGxpbmVhcjogbGluZWFyLFxuICBlYXNlOiBlYXNlLFxuICBlYXNlLWluOiBlYXNlLWluLFxuICBlYXNlLW91dDogZWFzZS1vdXQsXG4gIGVhc2UtaW4tb3V0OiBlYXNlLWluLW91dCxcbiAgYm91bmNlLWluOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjI0LCAxLjI0NSksXG4gIGJvdW5jZS1vdXQ6IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuNTE1LCAwLjg0NSksXG4gIGJvdW5jZS1pbi1vdXQ6IGN1YmljLWJlemllcigwLjc2LCAtMC4yNDUsIDAuMjQsIDEuMjQ1KSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBNaXNjZWxsYW5lb3VzIHNldHRpbmdzIHJlbGF0ZWQgdG8gTW90aW9uIFVJLlxuLy8vIEB0eXBlIE1hcFxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbZmFsc2VdIC0gRGVmaW5lcyBpZiBzbGlkZSBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbdHJ1ZV0gLSBEZWZpbmVzIGlmIGhpbmdlIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4vLy8gQHByb3Age0Jvb2xlYW59IHNsaWRlLWFuZC1mYWRlIFt0cnVlXSAtIERlZmluZXMgaWYgc2NhbGUgbW90aW9ucyBzaG91bGQgYWxzbyBmYWRlIGluL291dC5cbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW3RydWVdIC0gRGVmaW5lcyBpZiBzcGluIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4kbW90aW9uLXVpLXNldHRpbmdzOiAoXG4gIHNsaWRlLWFuZC1mYWRlOiBmYWxzZSxcbiAgaGluZ2UtYW5kLWZhZGU6IHRydWUsXG4gIHNjYWxlLWFuZC1mYWRlOiB0cnVlLFxuICBzcGluLWFuZC1mYWRlOiB0cnVlLFxuICBhY3RpdmF0ZS1xdWV1ZS1jbGFzczogJ2lzLWFuaW1hdGluZycsXG4pICFkZWZhdWx0O1xuIiwiLy8gSW50ZXJuYWwgY291bnRlciBmb3IgY3JlYXRpbmcgdW5pcXVlIGtleWZyYW1lIG5hbWVzXG4kLW11aS1jdXN0b206IDA7XG5cbi8vLyBDcmVhdGVzIGEga2V5ZnJhbWUgZnJvbSBvbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zLiBVc2UgdGhpcyBmdW5jdGlvbiBpbnN0ZWFkIG9mIGBtdWktYW5pbWF0aW9uYCBpZiB5b3Ugd2FudCB0byBjcmVhdGUgYSBrZXlmcmFtZSBhbmltYXRpb24gKndpdGhvdXQqIGF1dG9tYXRpY2FsbHkgYXNzaWduaW5nIGl0IHRvIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGtleWZyYW1lLlxuLy8vIEBwYXJhbSB7RnVuY3Rpb259ICRlZmZlY3RzLi4uIC0gT25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucyB0byBidWlsZCB0aGUga2V5ZnJhbWUgd2l0aC5cbkBtaXhpbiBtdWkta2V5ZnJhbWVzKCRuYW1lLCAkZWZmZWN0cy4uLikge1xuICAkb2JqOiAtbXVpLXByb2Nlc3MtYXJncygkZWZmZWN0cy4uLik7XG4gICRvYmo6IG1hcC1yZW1vdmUoJG9iaiwgbmFtZSk7XG5cbiAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgLy8gTm93IGl0ZXJhdGUgdGhyb3VnaCBlYWNoIGtleWZyYW1lIHBlcmNlbnRhZ2VcbiAgICBAZWFjaCAkcGN0LCAkcHJvcHMgaW4gJG9iaiB7XG4gICAgICAjey1tdWkta2V5ZnJhbWUtcGN0KCRwY3QpfSB7XG4gICAgICAgIC8vIExhc3RseSwgaXRlcmF0ZSB0aHJvdWdoIGVhY2ggQ1NTIHByb3BlcnR5IHdpdGhpbiBhIHBlcmNlbnRhZ2UgYW5kIHByaW50IGl0IG91dFxuICAgICAgICBAZWFjaCAkcHJvcCwgJHZhbHVlIGluICRwcm9wcyB7XG4gICAgICAgICAgI3skcHJvcH06ICN7JHZhbHVlfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHN0cmluZyBmb3IgYSBDU1Mga2V5ZnJhbWUsIGJ5IGNvbnZlcnRpbmcgYSBsaXN0IG9mIG51bWJlcnMgdG8gYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBwZXJjZW50YWdlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkaW5wdXQgLSBMaXN0IG9mIG51bWJlcnMgdG8gdXNlLlxuLy8vIEByZXR1cm4ge1N0cmluZ30gQSBzZXQgb2YgY29tbWEtc2VwYXJhdGVkIHBlcmNlbnRhZ2UgdmFsdWVzLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtcGN0KCRpbnB1dCkge1xuICAkb3V0cHV0OiAoKTtcblxuICBAaWYgdHlwZS1vZigkaW5wdXQpID09ICdudW1iZXInIHtcbiAgICAkb3V0cHV0OiAoJGlucHV0ICogMSUpO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJGlucHV0KSA9PSAnbGlzdCcge1xuICAgIEBlYWNoICRpIGluICRpbnB1dCB7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgKCRpICogMSUpLCBjb21tYSk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuXG4vLy8gUHJpbnRzIHRoZSBDU1MgcHJvcGVydGllcyBmcm9tIGEgc3BlY2lmaWMga2V5IGluIGEga2V5ZnJhbWVzIG1hcC4gVXNlZCB0byBib3Jyb3cgQ1NTIGZyb20ga2V5ZnJhbWUgZnVuY3Rpb25zIGZvciB1c2UgaW4gdHJhbnNpdGlvbnMuXG4vLy8gQHBhcmFtIHtNYXB9ICRrZiAtIEtleWZyYW1lIG1hcCB0byBleHRyYWN0IGZyb20uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRrZXkgLSBLZXkgaW4gdGhlIG1hcCB0byBwcmludCB0aGUgQ1NTIG9mLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIC1tdWkta2V5ZnJhbWUtZ2V0KCRrZiwgJGtleSkge1xuICAkbWFwOiBtYXAtZ2V0KCRrZiwgJGtleSk7XG5cbiAgQGVhY2ggJHByb3AsICR2YWx1ZSBpbiAkbWFwIG9yICgpIHtcbiAgICAvLyBTb21lIGtleWZyYW1lIG1hcHMgc3RvcmUgdHJhbnNmb3JtcyBhcyBxdW90ZWQgc3RyaW5nc1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ3N0cmluZycge1xuICAgICAgJHZhbHVlOiB1bnF1b3RlKCR2YWx1ZSk7XG4gICAgfVxuICAgICN7JHByb3B9OiAkdmFsdWU7XG4gIH1cbn1cblxuLy8vIFJlZm9ybWF0cyBhIG1hcCBjb250YWluaW5nIGtleXMgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzLCBzbyB0aGF0IGVhY2gga2V5IGlzIGEgc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHNwbGl0IHVwLlxuLy8vIEByZXR1cm4ge01hcH0gQSByZWZvcm1hdHRlZCBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1rZXlmcmFtZS1zcGxpdCgkbWFwKSB7XG4gICRuZXctbWFwOiAoKTtcblxuICAvLyBTcGxpdCBrZXlzIHdpdGggbXVsdGlwbGUgdmFsdWVzIGludG8gaW5kaXZpZHVhbCBrZXlzXG4gIEBlYWNoICRrZXksICRpdGVtIGluICRtYXAge1xuICAgICRrZXktdHlwZTogdHlwZS1vZigka2V5KTtcblxuICAgIEBpZiAka2V5LXR5cGUgPT0gJ251bWJlcicge1xuICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrZXk6ICRpdGVtKSk7XG4gICAgfSBAZWxzZSBpZiAka2V5LXR5cGUgPT0gJ2xpc3QnIHtcbiAgICAgIEBlYWNoICRrIGluICRrZXkge1xuICAgICAgICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAoJGs6ICRpdGVtKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbmV3LW1hcDtcbn1cblxuLy8vIENvbWJpbmVzIGEgc2VyaWVzIG9mIGtleWZyYW1lIG9iamVjdHMgaW50byBvbmUuXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXBzLi4uIC0gQSBzZXJpZXMgb2YgbWFwcyB0byBtZXJnZSwgYXMgaW5kaXZpZHVhbCBwYXJhbWV0ZXJzLlxuLy8vIEByZXR1cm4ge01hcH0gQSBjb21iaW5lZCBrZXlmcmFtZSBvYmplY3QuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1rZXlmcmFtZS1jb21iaW5lKCRtYXBzLi4uKSB7XG4gICRuZXctbWFwOiAoKTtcblxuICAvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCBtYXAgcGFzc2VkIGluXG4gIEBlYWNoICRtYXAgaW4gJG1hcHMge1xuICAgIEBpZiB0eXBlLW9mKCRtYXApID09ICdzdHJpbmcnIHtcbiAgICAgICRtYXA6IGNhbGwoJG1hcCk7XG4gICAgfVxuXG4gICAgJG1hcDogLW11aS1rZXlmcmFtZS1zcGxpdCgkbWFwKTtcblxuICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIGtleWZyYW1lIGluIHRoZSBtYXBcbiAgICAvLyAka2V5IGlzIHRoZSBrZXlmcmFtZSBwZXJjZW50YWdlXG4gICAgLy8gJHZhbHVlIGlzIGEgbWFwIG9mIENTUyBwcm9wZXJ0aWVzXG4gICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICAgJG5ldy12YWx1ZTogKCk7XG5cbiAgICAgIEBpZiBtYXAtaGFzLWtleSgkbmV3LW1hcCwgJGtleSkge1xuICAgICAgICAvLyBJZiB0aGUgbWFwIGFscmVhZHkgaGFzIHRoZSBrZXlmcmFtZSAlLCBhcHBlbmQgdGhlIG5ldyBwcm9wZXJ0eVxuICAgICAgICAkbmV3LXZhbHVlOiAtbXVpLW1lcmdlLXByb3BlcnRpZXMobWFwLWdldCgkbmV3LW1hcCwgJGtleSksICR2YWx1ZSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gT3RoZXJ3aXNlLCBjcmVhdGUgYSBuZXcgbWFwIHdpdGggdGhlIG5ldyBwcm9wZXJ0eVxuICAgICAgICAkbmV3LXZhbHVlOiAkdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIC8vIEZpbmFsbHksIG1lcmdlIHRoZSBtb2RpZmllZCBrZXlmcmFtZSB2YWx1ZSBpbnRvIHRoZSBvdXRwdXQgbWFwXG4gICAgICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAoJGtleTogJG5ldy12YWx1ZSkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIE1ha2UgYSBuYW1lIGZvciB0aGUga2V5ZnJhbWVzXG4gICQtbXVpLWN1c3RvbTogJC1tdWktY3VzdG9tICsgMSAhZ2xvYmFsO1xuICAkbWFwLW5hbWU6IChuYW1lOiAnY3VzdG9tLSN7JC1tdWktY3VzdG9tfScpO1xuICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAkbWFwLW5hbWUpO1xuXG4gIEByZXR1cm4gJG5ldy1tYXA7XG59XG5cbi8vLyBDb21iaW5lcyB0d28gbWFwcyBvZiBDU1MgcHJvcGVydGllcyBpbnRvIG9uZSBtYXAuIElmIGJvdGggbWFwcyBoYXZlIGEgdHJhbnNmb3JtIHByb3BlcnR5LCB0aGUgdmFsdWVzIGZyb20gZWFjaCB3aWxsIGJlIGNvbWJpbmVkIGludG8gb25lIHByb3BlcnR5LlxuLy8vIEBwYXJhbSB7TWFwfSAkb25lIC0gRmlyc3QgbWFwIHRvIG1lcmdlLlxuLy8vIEBwYXJhbSB7TWFwfSAkdHdvIC0gU2Vjb25kIG1hcCB0byBtZXJnZS5cbi8vLyBAcmV0dXJuIHtNYXB9IEEgY29tYmluZWQgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWktbWVyZ2UtcHJvcGVydGllcygkb25lLCAkdHdvKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkb25lLCB0cmFuc2Zvcm0pIGFuZCBtYXAtaGFzLWtleSgkdHdvLCB0cmFuc2Zvcm0pIHtcbiAgICAkdHJhbnNmb3JtOiBqb2luKG1hcC1nZXQoJG9uZSwgdHJhbnNmb3JtKSwgbWFwLWdldCgkdHdvLCB0cmFuc2Zvcm0pKTtcbiAgICAkb25lOiBtYXAtbWVyZ2UoJG9uZSwgKHRyYW5zZm9ybTogJHRyYW5zZm9ybSkpO1xuICAgICR0d286IG1hcC1yZW1vdmUoJHR3bywgdHJhbnNmb3JtKTtcbiAgfVxuXG4gIEByZXR1cm4gbWFwLW1lcmdlKCRvbmUsICR0d28pO1xufVxuIiwiLy8vIENyZWF0ZXMgYSBzbGlkaW5nIHRyYW5zaXRpb24gYnkgdHJhbnNsYXRpbmcgdGhlIGVsZW1lbnQgaG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtsZWZ0XSAtIERpcmVjdGlvbiB0byBzbGlkZSB0by4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuLy8vIEBwYXJhbSB7TGVuZ3RofSAkYW1vdW50IFsxMDAlXSAtIExlbmd0aCBvZiB0aGUgc2xpZGUgYXMgYSBwZXJjZW50YWdlIHZhbHVlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLXNsaWRlIChcbiAgJHN0YXRlOiBpbixcbiAgJGRpcmVjdGlvbjogbGVmdCxcbiAgJGFtb3VudDogMTAwJSxcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc2xpZGUtYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRzbGlkZTogc2xpZGUoJHN0YXRlLCAkZGlyZWN0aW9uLCAkYW1vdW50KTtcblxuICAvLyBDU1MgT3V0cHV0XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzbGlkZSwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG5cbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2xpZGUsIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBBcHBsaWVzIGJhc2ljIHRyYW5zaXRpb24gc2V0dGluZ3MgdG8gYW4gZWxlbWVudC5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiB0cmFuc2l0aW9uLWJhc2ljcyhcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICBAaW5jbHVkZSAtbW90aW9uLXVpLWRlZmF1bHRzO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdGltaW5nO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAkZGVsYXk7XG59XG5cbi8vLyBXcmFwcyB0aGUgY29udGVudCBpbiB0aGUgc2V0dXAgY2xhc3MgZm9yIGEgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgLSBTdGF0ZSB0byBzZXR1cCBmb3IgdHJhbnNpdGlvbi5cbkBtaXhpbiB0cmFuc2l0aW9uLXN0YXJ0KCRkaXIpIHtcbiAgJHNlbGVjdG9yOiAtbXVpLWJ1aWxkLXNlbGVjdG9yKG1hcC1nZXQoJG1vdGlvbi11aS1zdGF0ZXMsICRkaXIpKTtcblxuICBAYXQtcm9vdCB7XG4gICAgI3skc2VsZWN0b3J9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gV3JhcHMgdGhlIGNvbnRlbnQgaW4gdGhlIGFjdGl2ZSBjbGFzcyBmb3IgYSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciAtIFN0YXRlIHRvIGFjdGl2YXRlIGEgdHJhbnNpdGlvbiBvbi5cbkBtaXhpbiB0cmFuc2l0aW9uLWVuZCgkZGlyKSB7XG4gICRzZWxlY3RvcjogLW11aS1idWlsZC1zZWxlY3RvcihtYXAtZ2V0KCRtb3Rpb24tdWktc3RhdGVzLCAkZGlyKSwgdHJ1ZSk7XG5cbiAgQGF0LXJvb3Qge1xuICAgICN7JHNlbGVjdG9yfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWdnZXIgYW5pbWF0aW9uLCB3aGljaCBjYW4gYmUgdXNlZCB3aXRoIEFuZ3VsYXIncyBgbmctcmVwZWF0YC5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXktYW1vdW50IC0gQW1vdW50IG9mIHRpbWUgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgdG8gYWRkIGJldHdlZW4gZWFjaCBpdGVtJ3MgYW5pbWF0aW9uLlxuQG1peGluIHN0YWdnZXIoJGRlbGF5LWFtb3VudCkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAkZGVsYXktYW1vdW50O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwOyAvLyBQcmV2ZW50IGFjY2lkZW50YWwgQ1NTIGluaGVyaXRhbmNlXG59XG4iLCIvLy8gQ3JlYXRlcyBhIGZhZGUgdHJhbnNpdGlvbiBieSBhZGp1c3RpbmcgdGhlIG9wYWNpdHkgb2YgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFswXSAtIE9wYWNpdHkgdG8gc3RhcnQgYXQuIE11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG8gWzFdIC0gT3BhY2l0eSB0byBlbmQgb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktZmFkZShcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IDAsXG4gICR0bzogMSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkZmFkZTogZmFkZSgkZnJvbSwgJHRvKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkZmFkZSwgMCk7XG5cbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGZhZGUsIDEwMCk7XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgaGluZ2UgZWZmZWN0IGJ5IHJvdGF0aW5nIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZyb20gW2xlZnRdIC0gRWRnZSBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgZnJvbS4gQ2FuIGJlIGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgb3IgYGxlZnRgLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGF4aXMgW2VkZ2VdIC0gQXhpcyBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgb24uIENhbiBiZSBgZWRnZWAgb3IgYGNlbnRlcmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwZXJzcGVjdGl2ZSBbMjAwMHB4XSAtIFBlcmNlaXZlZCBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB2aWV3ZXIgYW5kIHRoZSBlbGVtZW50LiBBIGhpZ2hlciBudW1iZXIgd2lsbCBtYWtlIHRoZSByb3RhdGlvbiBlZmZlY3QgbW9yZSBwcm9ub3VuY2VkLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHR1cm4tb3JpZ2luIFtmcm9tLWJhY2tdIC0gU2lkZSBvZiB0aGUgZWxlbWVudCB0byBzdGFydCB0aGUgcm90YXRpb24gZnJvbS4gQ2FuIGJlIGBmcm9tLWJhY2tgIG9yIGBmcm9tLWZyb250YC5cbkBmdW5jdGlvbiBoaW5nZSAoXG4gICRzdGF0ZTogaW4sXG4gICRmcm9tOiBsZWZ0LFxuICAkYXhpczogZWRnZSxcbiAgJHBlcnNwZWN0aXZlOiAyMDAwcHgsXG4gICR0dXJuLW9yaWdpbjogZnJvbS1iYWNrXG4pIHtcbiAgLy8gUm90YXRpb24gZGlyZWN0aW9ucyB3aGVuIGhpbmdpbmcgZnJvbSBiYWNrIHZzLiBmcm9udFxuICAkcm90YXRpb24tYW1vdW50OiA5MGRlZztcbiAgJHJvdGF0aW9ucy1iYWNrOiAoXG4gICAgdG9wOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICAgcmlnaHQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgICBib3R0b206IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCksXG4gICAgbGVmdDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50KSxcbiAgKTtcbiAgJHJvdGF0aW9ucy1mcm9tOiAoXG4gICAgdG9wOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQpLFxuICAgIHJpZ2h0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQpLFxuICAgIGJvdHRvbTogcm90YXRlWCgkcm90YXRpb24tYW1vdW50ICogLTEpLFxuICAgIGxlZnQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgKTtcblxuICAvLyBSb3RhdGlvbiBvcmlnaW5cbiAgJHJvdGF0aW9uOiAnJztcbiAgQGlmICR0dXJuLW9yaWdpbiA9PSBmcm9tLWZyb250IHtcbiAgICAkcm90YXRpb246IG1hcC1nZXQoJHJvdGF0aW9ucy1mcm9tLCAkZnJvbSk7XG4gIH0gQGVsc2UgaWYgJHR1cm4tb3JpZ2luID09IGZyb20tYmFjayB7XG4gICAgJHJvdGF0aW9uOiBtYXAtZ2V0KCRyb3RhdGlvbnMtYmFjaywgJGZyb20pO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAnJHR1cm4tb3JpZ2luIG11c3QgYmUgZWl0aGVyIFwiZnJvbS1iYWNrXCIgb3IgXCJmcm9tLWZyb250XCInO1xuICB9XG5cbiAgLy8gU3RhcnQgYW5kIGVuZCBzdGF0ZVxuICAkc3RhcnQ6ICcnO1xuICAkZW5kOiAnJztcbiAgQGlmICRzdGF0ZSA9PSBpbiB7XG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcbiAgICAkZW5kOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHJvdGF0ZSgwZGVnKTtcbiAgfSBAZWxzZSB7XG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHJvdGF0ZSgwZGVnKTtcbiAgICAkZW5kOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcbiAgfVxuXG4gIC8vIFR1cm4gYXhpc1xuICAkb3JpZ2luOiAnJztcbiAgQGlmICRheGlzID09IGVkZ2Uge1xuICAgICRvcmlnaW46ICRmcm9tO1xuICB9IEBlbHNlIHtcbiAgICAkb3JpZ2luOiBjZW50ZXI7XG4gIH1cblxuICAka2V5ZnJhbWVzOiAoXG4gICAgbmFtZTogJ2hpbmdlLSN7JHN0YXRlfS0jeyRmcm9tfS0jeyRheGlzfS0jeyR0dXJuLW9yaWdpbn0nLFxuICAgIDA6ICh0cmFuc2Zvcm06ICRzdGFydCwgdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbiksXG4gICAgMTAwOiAodHJhbnNmb3JtOiAkZW5kKSxcbiAgKTtcblxuICBAcmV0dXJuICRrZXlmcmFtZXM7XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGhpbmdlIHRyYW5zaXRpb24gYnkgcm90YXRpbmcgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZnJvbSBbbGVmdF0gLSBFZGdlIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBmcm9tLiBDYW4gYmUgYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBvciBgbGVmdGAuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkYXhpcyBbZWRnZV0gLSBBeGlzIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBvbi4gQ2FuIGJlIGBlZGdlYCBvciBgY2VudGVyYC5cbi8vLyBAcGFyYW0ge0xlbmd0aH0gJHBlcnNwZWN0aXZlIFsyMDAwcHhdIC0gUGVyY2VpdmVkIGRpc3RhbmNlIGJldHdlZW4gdGhlIHZpZXdlciBhbmQgdGhlIGVsZW1lbnQuIEEgaGlnaGVyIG51bWJlciB3aWxsIG1ha2UgdGhlIHJvdGF0aW9uIGVmZmVjdCBtb3JlIHByb25vdW5jZWQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHVybi1vcmlnaW4gW2Zyb20tYmFja10gLSBTaWRlIG9mIHRoZSBlbGVtZW50IHRvIHN0YXJ0IHRoZSByb3RhdGlvbiBmcm9tLiBDYW4gYmUgYGZyb20tYmFja2Agb3IgYGZyb20tZnJvbnRgLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktaGluZ2UgKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogbGVmdCxcbiAgJGF4aXM6IGVkZ2UsXG4gICRwZXJzcGVjdGl2ZTogMjAwMHB4LFxuICAkdHVybi1vcmlnaW46IGZyb20tYmFjayxcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgaGluZ2UtYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRoaW5nZTogaGluZ2UoJHN0YXRlLCAkZnJvbSwgJGF4aXMsICRwZXJzcGVjdGl2ZSwgJHR1cm4tb3JpZ2luKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkaGluZ2UsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGhpbmdlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNjYWxpbmcgdHJhbnNpdGlvbi4gQSBzY2FsZSBvZiBgMWAgbWVhbnMgdGhlIGVsZW1lbnQgaXMgdGhlIHNhbWUgc2l6ZS4gTGFyZ2VyIG51bWJlcnMgbWFrZSB0aGUgZWxlbWVudCBiaWdnZXIsIHdoaWxlIG51bWJlcnMgbGVzcyB0aGFuIDEgbWFrZSB0aGUgZWxlbWVudCBzbWFsbGVyLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZnJvbSBbMS41XSAtIFNpemUgdG8gc3RhcnQgYXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFsxXSAtIFNpemUgdG8gZW5kIGF0LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktem9vbShcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IDEuNSxcbiAgJHRvOiAxLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzY2FsZS1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJHNjYWxlOiB6b29tKCRmcm9tLCAkdG8pO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzY2FsZSwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2NhbGUsIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgc3Bpbm5pbmcgdHJhbnNpdGlvbiBieSByb3RhdGluZyB0aGUgZWxlbWVudC4gVGhlIGB0dXJuYCB1bml0IGlzIHVzZWQgdG8gc3BlY2lmeSBob3cgZmFyIHRvIHJvdGF0ZS4gYDF0dXJuYCBpcyBlcXVhbCB0byBhIDM2MC1kZWdyZWUgc3Bpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRkaXJlY3Rpb24gW2N3XSAtIERpcmVjdGlvbiB0byBzcGluLiBTaG91bGQgYmUgYGN3YCAoY2xvY2t3aXNlKSBvciBgY2N3YCAoY291bnRlcmNsb2Nrd2lzZSkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhbW91bnQgWzAuNzV0dXJuXSAtIEFtb3VudCB0byBlbGVtZW50IHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLXNwaW4oXG4gICRzdGF0ZTogaW4sXG4gICRkaXJlY3Rpb246IGN3LFxuICAkYW1vdW50OiAwLjc1dHVybixcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc3Bpbi1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJHNwaW46IHNwaW4oJHN0YXRlLCAkZGlyZWN0aW9uLCAkYW1vdW50KTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc3BpbiwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc3BpbiwgMTAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xuICAgIH1cbiAgfVxufVxuIiwiLmZsby1wYWdlLWhhcy1zaWRlYmFyX19zaWRlYmFye1xuICB6LWluZGV4OiA5O1xufVxuXG4uZmxvLXNsaWRlci1hcnJvd3tcbiB6LWluZGV4OiA5O1xufVxuXG4uZmxvLXBhZ2UtaGVyb19fbG9nbyB7XG4gIHotaW5kZXg6IDExO1xufVxuIiwiLmZsby1ibG9jay10aXRsZS13cmFwe1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1ncmF5LWxpZ2h0O1xuICBwYWRkaW5nOiByZW0tY2FsYygxNi41KSAwO1xufSIsIi5mbG8tZHJvcGRvd24tbWVudXtcbiAgJGdhcC1zaWRlOiByZW0tY2FsYyg0MCk7XG5cbiAgLmZsby1pY29ue1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjIpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogcmVtLWNhbGMoMzgpO1xuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXJ7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBAaW5jbHVkZSBnbG9iYWwtdHJhbnNpdGlvbih2aXNpYmlsaXR5LCBvcGFjaXR5LCBmb250LXNpemUpO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLC01MCUpO1xuICAgIH1cblxuICAgICY6YWZ0ZXJ7XG4gICAgICBjb250ZW50OidcXGU4MDUnO1xuICAgICAgZm9udC1mYW1pbHk6ICdmbG8taWNvbnMnO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cbiAgLmhvdmVye1xuXG4gICAgLmZsby1pY29ue1xuICAgICAgY29sb3I6ICM1YTVhNWE7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICY6YmVmb3Jle1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICAgIH1cbiAgICAgICY6YWZ0ZXJ7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICZfX2J0bntcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDExKTtcbiAgICBmb250LWZhbWlseTogJGZvbnQtYW1wbGl0dWRlO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMjE4NWVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG5cbiAgJl9fcGFuZXtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBib3JkZXI6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGNvbnRlbnQtYm94KTtcbiAgICBAaW5jbHVkZSBnbG9iYWwtdHJhbnNpdGlvbih2aXNpYmlsaXR5LCBvcGFjaXR5LCByaWdodCk7XG5cbiAgICBsZWZ0OiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IC0xMDAlO1xuICAgICYuaXMtb3BlbntcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICByaWdodDogMDtcblxuICAgIH1cbiAgfVxuXG4gICZfX2xpbmt7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWJ1dGxlcjtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDQ1KTtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcblxuICAgICZfX3BhbmUge1xuICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTUyKSAkZ2FwLXNpZGU7XG4gICAgICBtaW4taGVpZ2h0OiByZW0tY2FsYyg0MjApO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICRnYXAtc2lkZTogcmVtLWNhbGMoNDApO1xuXG4gICAgJl9fcGFuZXtcbiAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDgwKSAwO1xuICAgICAgLy8gcGFkZGluZy1sZWZ0OiAkZ2FwLXNpZGU7XG4gICAgICAvLyBwYWRkaW5nLXJpZ2h0OiAkZ2FwLXNpZGU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICB9XG59XG4iLCIuZmxvLWZvcm0tMXtcblxuICAmX19maWVsZHtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg5LjUpO1xuICAgICY6bGFzdC1vZi10eXBle1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbiAgJl9fdGV4dGFyZWF7XG4gICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDE1KTtcbiAgfVxuXG4gIGlucHV0W3R5cGVdLFxuICB0ZXh0YXJlYSxcbiAgLnBhcnNsZXktZXJyb3JzLWxpc3QgbGkge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1hbXBsaXR1ZGU7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxMSk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMTg3NWVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgLnBhcnNsZXktZXJyb3JzLWxpc3Qge1xuICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDEwKTtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XG4gICAgQGluY2x1ZGUgZ2xvYmFsLXRyYW5zaXRpb24obWF4LWhlaWdodCk7XG4gICAgYW5pbWF0aW9uOiAwLjRzIHBhcnNsZXktZXJyb3JzLWxpc3RfX2FwcGVhcjtcbiAgICBAYXQtcm9vdCB7XG4gICAgICBAa2V5ZnJhbWVzIHBhcnNsZXktZXJyb3JzLWxpc3RfX2FwcGVhciB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIG1heC1oZWlnaHQ6IHJlbS1jYWxjKDEwMCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgICAucGFyc2xleS1yZXF1aXJlZCB7XG4gICAgICBjb2xvcjogcmVkO1xuICAgIH1cblxuICBpbnB1dFt0eXBlPVwic3VibWl0XCJde1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogcmVtLWNhbGMoMzUpIGF1dG8gMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG59XG4iLCIuZmxvLWZvcm17XHJcblxyXG4gIGlucHV0W3R5cGVde1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxuXHJcbiAgJl9fZmllbGR7XHJcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMy41KTtcclxuICAgICY6bGFzdC1vZi10eXBle1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl17XHJcbiAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoNDApO1xyXG4gICB9XHJcbn1cclxuXHJcbi5mbG8tbW9kYWx7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB6LWluZGV4OiA5O1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB0b3A6IDBweDtcclxuICAgIGxlZnQ6IDBweDtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAudGh4LW1zZyB7XHJcbiAgICAgIHdpZHRoOiAzMDBweDtcclxuICAgICAgaGVpZ2h0OiAyMDBweDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgdG9wOiA1MCU7XHJcbiAgICAgIG1hcmdpbi10b3A6IC0xODBweDtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMTcwcHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNlNWU1ZTU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5jb250YWN0LXJlc3BvbnNlIHtcclxuICBwIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDEyLjUpO1xyXG4gICAgYm9yZGVyOiAycHggZGFzaGVkICRjb2xvci1ncmF5O1xyXG4gICAgcGFkZGluZzogcmVtLWNhbGMoMTUpO1xyXG4gICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMTUpO1xyXG4gICAgY29sb3I6ICRjb2xvci1ncmF5LWRhcms7XHJcbiAgfVxyXG59XHJcbiIsIipbZGF0YS1scWlwLXNyY11cbntcbiAgQGluY2x1ZGUgZ2xvYmFsLXRyYW5zaXRpb24oZmlsdGVyLCBiYWNrZ3JvdW5kLWltYWdlKTtcbiAgLy8gdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICAvLyB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICAmOm5vdCguZmxvLWxxaXAtLW9yaWdpbmFsLWxvYWRlZCkge1xuICAgIGZpbHRlcjogYmx1cig0MHB4KTtcbiAgICAvLyBvcGFjaXR5OiAwO1xuICB9XG59XG4iLCIuZmxvLXBhZ2UtaGVhZHtcbiAgJGI6ICcuZmxvLXBhZ2UtaGVhZCc7XG4gICRnYXAtc2lkZTogcmVtLWNhbGMoNDApO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRnYXAtc2lkZSoyfSk7XG4gIG1hcmdpbjogMCBhdXRvO1xuXG4gICYtLXdpdGgtYm9yZGVye1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItZ3JheS1saWdodDtcbiAgfVxuXG4gICZfX2Ryb3Bkb3due1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgIC5mbG8tZHJvcGRvd24tbWVudXtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAmLS1oYXMtZHJvcGRvd24tbWVudXtcbiAgICAjeyRifV9fZHJvcGRvd257XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxuXG4gICZfX2RlY29yYXRpb24taW1hZ2V7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1heC13aWR0aDogcmVtLWNhbGMoODguOCk7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApO1xuICB9XG4gICZfX3RpdGxle1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTUpO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1idXRsZXI7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICZfX3RpdGxlLWRlY29yYXRpdmUtaW1hZ2V7XG4gICAgaW1ne1xuICAgICAgbWF4LWhlaWdodDogcmVtLWNhbGMoODApO1xuICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTApO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKXtcblxuICAgICZfX3RpdGxle1xuICAgICAgd2lkdGg6IDYwJTtcbiAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDQzKSAwO1xuICAgIH1cblxuICAgICZfX2xlZnQtc2lkZXtcbiAgICAgIHdpZHRoOiAyMCU7XG4gICAgfVxuICAgICZfX2Ryb3Bkb3due1xuICAgICAgd2lkdGg6IDIwJTtcbiAgICB9XG4gICAgLmZsby1kcm9wZG93bi1tZW51X19idG57XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG5cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XG4gICAgJGdhcC1zaWRlOiByZW0tY2FsYygzMCk7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRnYXAtc2lkZSoyfSk7XG4gICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDQzKTtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg0MCk7XG5cbiAgICAuZmxvLWRyb3Bkb3duLW1lbnVfX2J0bntcbiAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDIzKSAwIHJlbS1jYWxjKDQzKTtcbiAgICB9XG4gIH1cblxuXG59XG5cbi5wb3N0LXBhc3N3b3JkLWZvcm17XG4gIG1heC13aWR0aDogNzAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBsYWJlbHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXXtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMxODE4MTg7XG4gICAgfVxuICB9XG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl17XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgcHtcbiAgICBmb250LXNpemU6IDAuOHJlbSAhaW1wb3J0YW50O1xuICB9XG59XG4iLCIuZmxvLXNoYXJlLXdyYXB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xuICBmb250LWZhbWlseTogJGZvbnQtYW1wbGl0dWRlO1xuICAvLyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4yMTg1ZW07XG4gICZfX2xpbmt7XG5cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgJl9fbGluayB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDExLjUpO1xuICAgICAgJjphZnRlcntcbiAgICAgICAgY29udGVudDogJy8nO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDE1LjUpO1xuICAgICAgfVxuICAgICAgJjpsYXN0LW9mLXR5cGV7XG4gICAgICAgICY6YWZ0ZXJ7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAvLyBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIC8vIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDEwKTtcbiAgICAmX19saW5rIHtcbiAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoMTApO1xuICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDEwKTtcbiAgICAgIH1cbiAgICAgIC8vIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDEwKTtcbiAgICB9XG5cbiAgfVxufVxuIiwiLnNsaWNrLXNsaWRlcntcbiAgJGdhcC1zaWRlOiByZW0tY2FsYyg0MCk7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC5mbG8tc2xpZGVyLWFycm93e1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLC01MCUpO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoNTApO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAmOmhvdmVye1xuICAgICAgY29sb3I6ICRjb2xvci1ncmF5LWxpZ2h0O1xuICAgICAgQGluY2x1ZGUgZ2xvYmFsLXRyYW5zaXRpb24oY29sb3IpXG4gICAgfVxuICB9XG4gIC5mbG8taWNvbl9fYXJyb3ctbGVmdHtcbiAgICBsZWZ0OiAkZ2FwLXNpZGU7XG4gIH1cbiAgLmZsby1pY29uX19hcnJvdy1yaWdodHtcbiAgICByaWdodDogJGdhcC1zaWRlO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XG5cbiAgfVxuXG59XG4iLCIuZmxvLXBvcnRmb2xpby10aXRsZXtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmbGV4OiAxO1xuICAmX19kZWNvcmF0aW9ue1xuICAgIG1heC13aWR0aDogcmVtLWNhbGMoODApO1xuICAgIG1hcmdpbjogMCBhdXRvIHJlbS1jYWxjKDIyKTtcbiAgfVxuICAmX190ZXh0e1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTUpO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1idXRsZXI7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG1hcmdpbi1yaWdodDogLTFlbTtcbiAgfVxufSIsIi5zZWFyY2gtZm9ybXtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBpbnB1dFt0eXBlXXtcbiAgICBtaW4td2lkdGg6IHJlbS1jYWxjKDIyMCk7XG4gICAgaGVpZ2h0OiByZW0tY2FsYygyOCk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMzI1ZW07XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXN7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIH1cblxuICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIoMSx3aGl0ZSk7XG4gIH1cblxuICAmX19idG57XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDIwKTtcbiAgICBAaW5jbHVkZSBnbG9iYWwtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgJjpob3ZlcntcbiAgICAgIGNvbG9yOiAkY29sb3ItZ3JheTtcbiAgICB9XG4gIH1cbn0iLCIuc29jaWFsLWxpbmtze1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICZfX2xhYmVse1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1idXRsZXI7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgbWFyZ2luLXJpZ2h0OiByZW0tY2FsYyg1KTtcbiAgfVxuXG4gICZfX2xpbmt7XG4gICAgd2lkdGg6IHJlbS1jYWxjKDMwKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDUpO1xuICAgICY6Zmlyc3QtY2hpbGR7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cbn0iLCIuY29tbWVudHMtYmxvY2sge1xuICAkYjogXCIuY29tbWVudHMtYmxvY2tcIjtcbiAgJGF2YXRhci1zaXplOiByZW0tY2FsYyg0NSk7XG5cbiAgJl9fcG9zdCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDM4LjUpIDAgcmVtLWNhbGMoNDQpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItZ3JheS1saWdodDtcbiAgfVxuICAgIC8qIFNUQVJUOiBDT01NRU5UICovXG4gICAgICAuY29tbWVudCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG4gICAgICAgIC5jb21tZW50LWJvZHkge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDQxKTtcbiAgICAgICAgfVxuICAgICAgICAgIC5jb21tZW50LWhlYWRlciB7XG4gICAgICAgICAgfVxuICAgICAgICAgICAgLmNvbW1lbnQtYXZhdGFyIHtcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgIHdpZHRoOiAkYXZhdGFyLXNpemU7XG4gICAgICAgICAgICAgIGhlaWdodDogJGF2YXRhci1zaXplO1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYXZhdGFyLXNpemU7XG4gICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuY29tbWVudC1uYW1lLWFuZC1kYXRlIHtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLmNvbW1lbnQtYXV0aG9yIHtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAuY29tbWVudC1tZXRhIHtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnJlcGx5IHtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAuY29tbWVudC1jb250ZW50IHtcbiAgICAgICAgICB9XG4gICAgICAgICAgLnJlcGx5IHtcbiAgICAgICAgICB9XG4gICAgLyogRU5EOiBDT01NRU5UICovXG5cbiAgICAvKiBTVEFSVDogUkVQTFkgQ09NTUVOVCAqL1xuICAgICAgLmNvbWVudCAuY29tbWVudCB7XG5cbiAgICAgICAgLmNvbW1lbnQtYm9keSB7XG4gICAgICAgIH1cbiAgICAgICAgICAuY29tbWVudC1oZWFkZXIge1xuICAgICAgICAgIH1cbiAgICAgICAgICAgIC5jb21tZW50LWF2YXRhciB7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb21tZW50LW5hbWUtYW5kLWRhdGUge1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAuY29tbWVudC1hdXRob3Ige1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC5jb21tZW50LW1ldGEge1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAucmVwbHkge1xuICAgICAgICAgICAgfVxuICAgICAgICAgIC5jb21tZW50LWNvbnRlbnQge1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICAvKiBFTkQ6IFJFUExZIENPTU1FTlQgKi9cblxuICAgICNjYW5jZWwtY29tbWVudC1yZXBseS1saW5rIHtcbiAgICAgIGZvbnQtc2l6ZTogMDtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcXGU4MDVcIjtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiZmxvLWljb25zXCI7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjIpO1xuICAgICAgICBjb2xvcjogJGNvbG9yLWJsYWNrO1xuICAgICAgICBAaW5jbHVkZSBnbG9iYWwtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICB9XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGNvbG9yOiAkY29sb3ItZ3JheTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICZfX3Bvc3Qge1xuICAgIH1cbiAgICAgIC8qIFNUQVJUOiBDT01NRU5UICovXG4gICAgICAgIC5jb21tZW50IHtcbiAgICAgICAgfVxuICAgICAgICAgIC5jb21tZW50LWJvZHkge1xuICAgICAgICAgIH1cbiAgICAgICAgICAgIC5jb21tZW50LWhlYWRlciB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAuY29tbWVudC1hdmF0YXIge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoMjQuNSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLmNvbW1lbnQtbmFtZS1hbmQtZGF0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5jb21tZW50LWF1dGhvciB7XG4gICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg2KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmNvbW1lbnQtbWV0YSB7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAucmVwbHkge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5jb21tZW50LWNvbnRlbnQge1xuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygyMy41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5yZXBseSB7XG4gICAgICAgICAgICB9XG4gICAgICAvKiBFTkQ6IENPTU1FTlQgKi9cblxuICAgICAgLyogU1RBUlQ6IFJFUExZIENPTU1FTlQgKi9cbiAgICAgICAgLmNvbW1lbnQgLmNvbW1lbnQge1xuICAgICAgICAgICRwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDQxLjUpO1xuICAgICAgICAgIC5jb21tZW50LWJvZHkge1xuICAgICAgICAgIH1cbiAgICAgICAgICAgIC5jb21tZW50LWhlYWRlciB7XG4gICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmctbGVmdDtcbiAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDI2KTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ibGFjaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAuY29tbWVudC1hdmF0YXIge1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgLmNvbW1lbnQtbmFtZS1hbmQtZGF0ZSB7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuY29tbWVudC1hdXRob3Ige1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuY29tbWVudC1tZXRhIHtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC5yZXBseSB7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5jb21tZW50LWNvbnRlbnQge1xuICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nLWxlZnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIC8qIEVORDogUkVQTFkgQ09NTUVOVCAqL1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgJl9fcG9zdCB7XG4gICAgfVxuICAgICAgLyogU1RBUlQ6IENPTU1FTlQgKi9cbiAgICAgICAgLmNvbW1lbnQge1xuICAgICAgICB9XG4gICAgICAgICAgLmNvbW1lbnQtYm9keSB7XG4gICAgICAgICAgfVxuICAgICAgICAgICAgLmNvbW1lbnQtaGVhZGVyIHtcbiAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC5jb21tZW50LWF2YXRhciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC5jb21tZW50LW5hbWUtYW5kLWRhdGUge1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmNvbW1lbnQtYXV0aG9yIHtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDEwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmNvbW1lbnQtbWV0YSB7XG4gICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyNSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAucmVwbHkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmNvbW1lbnQtY29udGVudCB7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAucmVwbHkge1xuICAgICAgICAgICAgfVxuICAgICAgLyogRU5EOiBDT01NRU5UICovXG5cbiAgICAgIC8qIFNUQVJUOiBSRVBMWSBDT01NRU5UICovXG4gICAgICAgIC5jb21tZW50IC5jb21tZW50IHtcblxuICAgICAgICAgIC5jb21tZW50LWJvZHkge1xuICAgICAgICAgICAgcGFkZGluZzogMCByZW0tY2FsYyg1MCk7XG4gICAgICAgICAgfVxuICAgICAgICAgICAgLmNvbW1lbnQtaGVhZGVyIHtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLmNvbW1lbnQtYXZhdGFyIHtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIC5jb21tZW50LW5hbWUtYW5kLWRhdGUge1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmNvbW1lbnQtYXV0aG9yIHtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmNvbW1lbnQtbWV0YSB7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAucmVwbHkge1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAuY29tbWVudC1jb250ZW50IHtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgLyogRU5EOiBSRVBMWSBDT01NRU5UICovXG4gIH1cbn1cbiIsIi5mbG8tY29udGFjdC1ibG9jay0xe1xuICAkYjogXCIuZmxvLWNvbnRhY3QtYmxvY2stMVwiO1xuXG4gIHBhZGRpbmctdG9wOiByZW0tY2FsYyg4MCk7XG4gIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygxNDApO1xuICAmLS1oYXMtbm8tZGVjb3JhdGlvbiB7XG4gICAgI3skYn1fX2NvbnRlbnQge1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fY29udGVudHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDE1MCk7XG4gIH1cblxuICAmX19kZWNvcmF0aW9ue1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG5cbiAgJl9fdGl0bGV7XG4gICAgLy8gZm9udC1zaXplOiByZW0tY2FsYyg1NSk7XG4gICAgLy8gZm9udC1mYW1pbHk6ICRmb250LWJ1dGxlcjtcbiAgICAvLyBsaW5lLWhlaWdodDogMS4yO1xuXG4gICAgLy8gZm9udC1zdHlsZTogY29udGFjdC1wYWdlX190aXRsZVxuXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgJl9fdGV4dHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbiAgICBmb250LWZhbWlseTogJGZvbnQtY2FzbG9uO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygzMCk7XG4gICAgJjpiZWZvcmV7XG4gICAgICBjb250ZW50OiAnfCc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcbiAgICB9XG4gIH1cblxuICAmX19mb3Jte1xuICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDEwNSk7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCl7XG4gICAgJGdhcC1zaWRlOiByZW0tY2FsYyg0MCk7XG4gICAgcGFkZGluZy1yaWdodDogJGdhcC1zaWRlO1xuICAgIHBhZGRpbmctbGVmdDogJGdhcC1zaWRlO1xuXG4gICAgJl9fY29udGVudHtcbiAgICAgIG1heC13aWR0aDogNDAlO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuICAgICZfX3RleHR7XG4gICAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDYwKTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDYwKTtcbiAgICB9XG4gICAgJl9fZm9ybXtcbiAgICAgIHBhZGRpbmc6IDAgcmVtLWNhbGMoMzQpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XG4gICAgJGdhcC1zaWRlOiByZW0tY2FsYygzMCk7XG4gICAgcGFkZGluZy1yaWdodDogJGdhcC1zaWRlO1xuICAgIHBhZGRpbmctbGVmdDogJGdhcC1zaWRlO1xuICAgICZfX3RpdGxle1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYyg0NSk7XG4gICAgfVxuICB9XG5cblxufVxuIiwiLmZsby1jYXJkLTF7XG4gICRiOiAnZmxvLWNhcmQtMSc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgJl9fZGVjb3JhdGlvbntcbiAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDEyNSk7XG4gICAgaGVpZ2h0OiByZW0tY2FsYygxNjApO1xuICAgIG1hcmdpbjogMCBhdXRvIHJlbS1jYWxjKDcwKTtcbiAgICBAaW5jbHVkZSBnbG9iYWwtYmdpLWNvbnRhaW47XG4gIH1cblxuICAmX190ZXh0e1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1jYXNsb247XG4gIH1cblxuICAmX19idG57XG4gICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoNDIpO1xuICB9XG59IiwiLmZsby1jYXJkLTJ7XG4gdGV4dC1hbGlnbjogY2VudGVyO1xuICAmX190aXRsZXtcbiAgICBmb250LWZhbWlseTogJGZvbnQtYnV0bGVyO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoNDApO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDI4KTtcbiAgICAmOmFmdGVye1xuICAgICAgYm9yZGVyLXdpZHRoOiAzcHg7XG4gICAgfVxuICAgIGF7XG4gICAgICAmOmhvdmVye1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCl7XG4gICAgJl9faW1ne1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IHJlbS1jYWxjKDM1MCk7XG4gICAgICBAaW5jbHVkZSBnbG9iYWwtYmdpLWNvdmVyO1xuXG4gICAgICBpbWd7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICAgICZfX3RpdGxle1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYyg0NSk7XG4gICAgfVxuXG4gICAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xuICAgICZfX2ltZ3tcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuICB9XG59IiwiLmZsby1jYXJkLTN7XG4gICZfX2ltZy13cmFwIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGltZ3tcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gICZfX2ltZ3tcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICZfX3RleHR7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg0MCk7XG4gIH1cblxuICAmX19pbWctZGF0ZXtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDExKTtcbiAgICBmb250LWZhbWlseTogJGZvbnQtYW1wbGl0dWRlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjM3NWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAmX190aXRsZXtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDI0KTtcbiAgICBmb250LWZhbWlseTogJGZvbnQtYnV0bGVyO1xuICAgIG1heC13aWR0aDogcmVtLWNhbGMoMjI2KTtcbiAgICBtYXJnaW46IDAgYXV0bztcblxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApe1xuICAgICZfX2ltZ3tcbiAgICAgIGhlaWdodDogcmVtLWNhbGMoMjM0KTtcbiAgICAgIEBpbmNsdWRlIGdsb2JhbC1iZ2ktY292ZXI7XG5cbiAgICAgIGltZ3tcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xuICAgICZfX2ltZ3tcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuICAgICZfX3RleHR7XG4gICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygyMCk7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg2MCk7XG4gICAgICAudGl0bGUtbGluZS11cHtcbiAgICAgICAgJjpiZWZvcmV7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMjApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cbiIsIi5mbG8tY2FyZC00e1xuXG4gICZfX2ltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAmX190ZXh0e1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoNDApO1xuICB9XG5cbiAgJl9faW1nLWRhdGV7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxMSk7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWFtcGxpdHVkZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4zNzVlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgJl9fdGl0bGV7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygzMCk7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWJ1dGxlcjtcbiAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDMwMCk7XG4gICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKXtcbiAgICAmX19pbWd7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogcmVtLWNhbGMoNTAwKTtcbiAgICAgIEBpbmNsdWRlIGdsb2JhbC1iZ2ktY292ZXI7XG4gICAgICBpbWd7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XG4gICAgJl9faW1ne1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgaW1ne1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5mbG8tY2FyZC01e1xuICAkYjogJy5mbG8tY2FyZC01JztcblxuICB3aWR0aDogMTAwJTtcblxuICAmX19jb250ZW50e1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbiAgJl9faW1ne1xuICAgIGltZ3tcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gICZfX3RleHR7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cbiAgJl9faW1nLWRhdGV7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxMSk7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWFtcGxpdHVkZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4zNzVlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgJl9fdGl0bGV7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygzMCk7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWJ1dGxlcjtcbiAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDMwMCk7XG4gICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgfVxuXG4gICYtLWludmVydGVke1xuICAgICN7JGJ9X190ZXh0e1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCl7XG5cbiAgICAmX190aXR0bGV7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDI0KTtcbiAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoMjYwKTtcbiAgICB9XG5cbiAgICAmX190ZXh0e1xuICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDYwKTtcbiAgICB9XG5cbiAgICAmX19pbWd7XG4gICAgICB3aWR0aDogcmVtLWNhbGMoNDAwKTtcbiAgICB9XG4gICAgJi0taW1nLW1lZGl1bXtcbiAgICAgICN7JGJ9X19pbWd7XG4gICAgICAgIHdpZHRoOiByZW0tY2FsYygzNzUpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtLWltZy1iaWd7XG4gICAgICAjeyRifV9faW1ne1xuICAgICAgICB3aWR0aDogcmVtLWNhbGMoNDk3KTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi0tc21hbGx7XG4gICAgICAjeyRifV9faW1ne1xuICAgICAgICB3aWR0aDogcmVtLWNhbGMoMTYyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1pbnZlcnRlZHtcbiAgICAgICN7JGJ9X19jb250ZW50IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgfVxuICAgICAgI3skYn1fX3RleHR7XG4gICAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoMzUpO1xuICAgICAgfVxuICAgIH1cblxuICAgICZfX2ltZ3tcbiAgICAgIG1hcmdpbjogcmVtLWNhbGMoNDMpIDAgMCAwO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XG5cbiAgICAmX19jb250ZW50e1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG4gICAgJl9fdGV4dHtcbiAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDEwKTtcbiAgICB9XG4gICAgJi0taW52ZXJ0ZWR7XG4gICAgICAjeyRifV9faXRlbXtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuZmxvLWNhcmQtc2lkZSB7XG4gICRiOiAnLmZsby1jYXJkLXNpZGUnO1xuICAkY2FyZC1nYXA6IHJlbS1jYWxjKDYwKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjgpO1xuXG4gICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMjApO1xuICB9XG4gICY6bGFzdC1vZi10eXBle1xuICAgIC8vIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbiAgJl9fY29udGVudHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cblxuICAmX19pbWd7XG4gICAgd2lkdGg6IHJlbS1jYWxjKDE2Mik7XG4gICAgaGVpZ2h0OiByZW0tY2FsYygxMDgpO1xuICAgIEBpbmNsdWRlIGdsb2JhbC1iZ2ktY292ZXI7XG4gIH1cblxuICAmX19pbWctLWhpZGV7XG4gICAgaW1ne1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX190aXR0bGV7XG4gICAgLy8gZm9udC1zaXplOiByZW0tY2FsYygyMSk7XG4gICAgLy8gZm9udC1mYW1pbHk6ICRmb250LWJ1dGxlcjtcbiAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDIzMCk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgJi0taW52ZXJ0ZWR7XG4gICAgI3skYn1fX2l0ZW17XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cblxuICAmLS1zbWFsbHtcbiAgICAjeyRifV9faW1ne1xuICAgICAgJHdpZHRoOiByZW0tY2FsYygyNjIpO1xuICAgICAgd2lkdGg6ICR3aWR0aDtcbiAgICAgIGhlaWdodDogJHdpZHRoICogMC42NjtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCl7XG5cbiAgICAmX190aXR0bGV7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDI0KTtcbiAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoMjYwKTtcbiAgICB9XG5cbiAgICAmX19jb250ZW50e1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG5cbiAgICAmX19pdGVtLS1yaWdodHtcbiAgICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYyg2MCk7XG4gICAgfVxuXG4gICAgJi0taW52ZXJ0ZWR7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAjeyRifV9fY29udGVudHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgfVxuICAgICAgI3skYn1fX2l0ZW0tLXJpZ2h0e1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDQwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbWd7XG4gICAgICAkd2lkdGg6IHJlbS1jYWxjKDM2NSk7XG4gICAgICB3aWR0aDogJHdpZHRoO1xuICAgICAgaGVpZ2h0OiAkd2lkdGggKiAwLjY2O1xuICAgICAgbWFyZ2luOiByZW0tY2FsYygzMikgMCAwIDA7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAmX19pdGVtIHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgICAmX190aXR0bGUge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCUhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG4gICAgICAmX19pbWcge1xuICAgICAgICB3aWR0aDogMTAwJSFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoMjAwKSFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgJl9faXRlbS0tcmlnaHR7XG4gICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygxMCk7XG4gICAgfVxuICAgICYtLWludmVydGVke1xuICAgICAgI3skYn1fX2l0ZW17XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmZsby1kaXZpZGVyIHtcbiAgJGI6IFwiLmZsby1kaXZpZGVyXCI7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheTk1O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoNDApO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDQwKTtcbiAgfVxuXG59XG4iLCIuZmxvLWZvb3Rlci1zaWRlYmFycyB7XG4gICRiOiBcIi5mbG8tZm9vdGVyLXNpZGViYXJzXCI7XG5cbiAgJi0tZnVsbC13aWR0aCB7XG4gICAgLnJvdyB7XG4gICAgICAuY29sdW1uIHtcblxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtLXRocmVlLWNvbHVtbnMge1xuICAgIC5yb3cge1xuICAgICAgLmNvbHVtbiB7XG5cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAucm93IHtcbiAgICAuY29sdW1uIHtcblxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNDApO1xuXG4gICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAucm93IHtcbiAgICAgICAgLmNvbHVtbiB7XG5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYtLXRocmVlLWNvbHVtbnMge1xuICAgICAgJGNvbHVtbnMtY291bnQ6IDM7XG4gICAgICAkZ2FwOiByZW0tY2FsYygyMCk7XG4gICAgICAkY29sdW1uLXdpZHRoOiBjYWxjKCAoMTAwJSAtICN7JGdhcH0gKiAoI3skY29sdW1ucy1jb3VudH0gLSAxKSApIC8gI3skY29sdW1ucy1jb3VudH0gKTtcbiAgICAgIC5yb3cge1xuICAgICAgICAuY29sdW1uIHtcbiAgICAgICAgICB3aWR0aDogJGNvbHVtbi13aWR0aDtcbiAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGdhcDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAucm93IHtcbiAgICAgIC5jb2x1bW4ge1xuXG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblxuICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgLnJvdyB7XG4gICAgICAgIC5jb2x1bW4ge1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tdGhyZWUtY29sdW1ucyB7XG4gICAgICAucm93IHtcbiAgICAgICAgLmNvbHVtbiB7XG5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5yb3cge1xuICAgICAgLmNvbHVtbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDQwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG59XG4iLCIuZmxvLWZvb3RlcntcclxuICAkYjogJ2Zsby1mb290ZXInO1xyXG4gICRnYXAtc2lkZTogcmVtLWNhbGMoNDApO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogMTAwJTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHJcbiAgJl9fY29udGVudHtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7JGdhcC1zaWRlICogMn0pO1xyXG4gICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDUwKTtcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3ItZ3JheTtcclxuICB9XHJcblxyXG4gICZfX2RlY29yYXRpb257XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgcmVtLWNhbGMoMTApO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgfVxyXG5cclxuICAmX19ib3R0b217XHJcblxyXG4gIH1cclxuXHJcbiAgICAmLS1zY3JvbGxhYmxle1xyXG4gICAgICAjeyRifXtcclxuICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJl9fY29weXJpZ2h0cy13cmFwIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDQ1KTtcclxuICAgIH1cclxuXHJcbiAgICAmX190ZXh0e1xyXG4gICAgICAvLyBmb250LXNpemU6IHJlbS1jYWxjKDQ4KTtcclxuICAgICAgLy8gZm9udC1mYW1pbHk6ICRmb250LW1hbGFya2V5O1xyXG4gICAgICAvLyBsaW5lLWhlaWdodDogMTtcclxuXHJcbiAgICAgIC8vIGZvbnQtc3R5bGU6IGZsby1mb290ZXJfX2xpbmtcclxuICAgIH1cclxuXHJcbiAgICAmX19zdWJzY3JpYmV7XHJcbiAgICAgIC8vIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xyXG4gICAgICAvLyBmb250LWZhbWlseTogJGZvbnQtYW1wbGl0dWRlO1xyXG4gICAgICAvLyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAvLyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xyXG4gICAgICAvLyBsZXR0ZXItc3BhY2luZzogMC4zMjVlbTtcclxuXHJcbiAgICAgIC8vIGZvbnQtc3R5bGU6IGZsby1mb290ZXJfX25ld3NsZXR0ZXItbGFiZWxcclxuICAgIH1cclxuXHJcbiAgICAmX19zY3JvbGwtdXB7XHJcbiAgICAgIC8vIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTUpO1xyXG4gICAgICAvLyBmb250LWZhbWlseTogJGZvbnQtYnV0bGVyO1xyXG4gICAgICAvLyBmb250LXN0eWxlOiBmbG8tZm9vdGVyX19iYWNrLXRvLXRvcFxyXG5cclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBAaW5jbHVkZSBnbG9iYWwtdHJhbnNpdGlvbihjb2xvcik7XHJcblxyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLWdyYXk7XHJcbiAgICAgIH1cclxuICAgICAgLmZsby1pY29uX19hcnJvdy11cHtcclxuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDEyKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAmX19pbnN0YWdyYW0tZmVlZCB7XHJcbiAgfVxyXG5cclxuICAmX19jb3B5cmlnaHRzLWZsbyBhIHtcclxuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcclxuXHJcbiAgICAmX19pbnN0YWdyYW0tZmVlZCB7XHJcbiAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDU2KTtcclxuXHJcbiAgICAgICRpdGVtcy1jb3VudDogNjtcclxuICAgICAgJGdhcDogcmVtLWNhbGMoNTcuNSk7XHJcbiAgICAgICRnYXAtcGVyLWl0ZW06ICRnYXAgKiAoJGl0ZW1zLWNvdW50IC0gMSkgLyAkaXRlbXMtY291bnQ7XHJcbiAgICAgIC5mbG8tc2hjb2RlLWluc3RnbS1jb250YWluZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICB9XHJcbiAgICAgIC5pbWctYmxvY2sge1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyA2IC0gI3skZ2FwLXBlci1pdGVtfSkhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJl9fYm90dG9tIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjb2xvci1ncmF5O1xyXG4gICAgICBwYWRkaW5nOiByZW0tY2FsYygyOCkgMDtcclxuICAgICAgbWFyZ2luOiByZW0tY2FsYyg2OCkgYXV0byAwO1xyXG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gI3skZ2FwLXNpZGUgKiAyfSk7XHJcbiAgICB9XHJcbiAgICAgICZfX2JvdHRvbS1maXJzdCB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgfVxyXG4gICAgICAgICZfX3N1YnNjcmliZSxcclxuICAgICAgICAmX19zY3JvbGwtdXAge1xyXG4gICAgICAgICAgd2lkdGg6IDMwJTtcclxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJl9fc3Vic2NyaWJlIHtcclxuICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgIH1cclxuICAgICAgICAmX190ZXh0IHtcclxuICAgICAgICAgIHdpZHRoOiA0MCU7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICZfX3Njcm9sbC11cCB7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XHJcbiAgICAmX19pbnN0YWdyYW0tZmVlZCB7XHJcblxyXG4gICAgICAuaW1nLWJsb2NrIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICRnYXAtc2lkZTogcmVtLWNhbGMoMzApO1xyXG4gICAgJl9fY29udGVudHtcclxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7JGdhcC1zaWRlICogMn0pO1xyXG4gICAgfVxyXG4gICAgJl9fYm90dG9te1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuICAgICAgcGFkZGluZzogcmVtLWNhbGMoMzApIDA7XHJcbiAgICAgIC8vIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRnYXAtc2lkZSAqIDJ9KTtcclxuICAgIH1cclxuICAgICAgJl9fYm90dG9tLWZpcnN0IHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgfVxyXG4gICAgJl9fdGV4dHtcclxuICAgICAgbWFyZ2luOiByZW0tY2FsYygzMCkgMDtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIi5mbG8tZ2VuZXJpYy1jYXRlZ29yaWVzLWFuZC10YWdzIHtcbiAgJGI6IFwiLmZsby1nZW5lcmljLWNhdGVnb3JpZXMtYW5kLXRhZ3NcIjtcblxuICB3aWR0aDogMTAwJTtcblxuICAmX19saXN0IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTQpO1xuICB9XG4gICAgJl9fbGlzdC1sYWJlbCB7XG5cbiAgICB9XG4gICAgJl9fbGlzdC1saW5rcyB7XG5cbiAgICB9XG4gICAgICAmX19saXN0LWxpbmtzIGEge1xuXG4gICAgICB9XG5cbiAgJi0tc2ltcGxlIHtcbiAgICBwYWRkaW5nOiAwIWltcG9ydGFudDtcbiAgICAjeyRifV9fbGlzdCB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgICAvLyB0ZXh0LWFsaWduOiBsZWZ0IWltcG9ydGFudDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDc0KTtcblxuICAgICZfX2xpc3Qge1xuXG4gICAgfVxuICAgICAgJl9fbGlzdC1sYWJlbCB7XG5cbiAgICAgIH1cbiAgICAgICZfX2xpc3QtbGlua3Mge1xuXG4gICAgICB9XG4gICAgICAgICZfX2xpc3QtbGlua3MgYSB7XG5cbiAgICAgICAgfVxuXG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMzUpO1xuICAgIC8vIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygyMCk7XG5cbiAgICAmX19saXN0IHtcblxuICAgIH1cbiAgICAgICZfX2xpc3QtbGFiZWwge1xuXG4gICAgICB9XG4gICAgICAmX19saXN0LWxpbmtzIHtcblxuICAgICAgfVxuICAgICAgICAmX19saXN0LWxpbmtzIGEge1xuXG4gICAgICAgIH1cblxuICB9XG5cbn1cbiIsIi5mbG8taGVhZGVyLW1vYmlsZXtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM4MzgzODtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiByZW0tY2FsYygxMCkgcmVtLWNhbGMoMzApO1xuICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuXG4gICZfX2hhbWJ1cmdlcntcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAuZmxvLWljb25fX3NpZGViYXJ7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgJl9fbWVudXtcbiAgICB3aWR0aDogMjAlO1xuICB9XG4gICAgJl9fbWVudS0tbGVmdHtcbiAgICB9XG4gICAgJl9fbWVudS0tcmlnaHR7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG5cbiAgJl9fbG9nb3tcbiAgICB3aWR0aDogNjAlO1xuICAgIG1heC13aWR0aDogMTUwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzApO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1tYWxhcmtleTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICAmOnZpc2l0ZWR7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCl7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG59XG4iLCIuZmxvLWhlYWRlciB7XG4gICRiOiBcIi5mbG8taGVhZGVyXCI7XG4gICRnYXAtYmV0d2Vlbi1pdGVtczogcmVtLWNhbGMoNjUpO1xuXG4gICYtLWxvZ28tY2VudGVyIHtcbiAgfVxuICAmLS1sb2dvLWxlZnQge1xuXG4gIH1cbiAgJi0tbG9nby1yaWdodCB7XG5cbiAgfVxuXG4gICZfX21lbnUtZG9ub3Ige1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgJl9fbWVudSB7XG4gICAgJiA+ICoge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICBsaXtcbiAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDIwKTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1pbi13aWR0aDogcmVtLWNhbGMoMTIwKTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgLm1lbnUtaXRlbXtcbiAgICAgIHVse1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLDApO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIHotaW5kZXg6IDEwMTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLXdpZHRoOiByZW0tY2FsYygzMDApO1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYyg0MCk7XG4gICAgICAgIGJvcmRlcjogMDsgLy9Gb3VuZGF0aW9uIHJlbW92ZSBib3JkZXJcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTsgLy9Gb3VuZGF0aW9uIHJlbW92ZSBiZztcbiAgICAgICAgQGluY2x1ZGUgZ2xvYmFsLXRyYW5zaXRpb24ob3BhY2l0eSwgdmlzaWJpbGl0eSk7XG4gICAgICAgICY6YmVmb3Jle1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgcGFkZGluZzogMCAxMDAwZW07XG4gICAgICAgICAgbWFyZ2luOiAwIC0xMDAwZW07XG4gICAgICAgICAgLy8gYmFja2dyb3VuZDogcmdiYSg1NiwgNTYsIDU2LCAwLjkpO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzODM4Mzg7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgfVxuICAgICAgICBsaXtcbiAgICAgICAgICBtYXJnaW46IDAgMCByZW0tY2FsYygxNikgMDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICBhe1xuICAgICAgICAgIC8vIGZvbnQtZmFtaWx5OiAkZm9udC1idXRsZXI7XG4gICAgICAgICAgLy8gZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG5cbiAgICAgICAgICAvLyBGb250IFN0eWxlOiBmbG8taGVhZGVyX19kcm9wZG93bi1tZW51LWl0ZW1cbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgIEBpbmNsdWRlIGdsb2JhbC10cmFuc2l0aW9uKGNvbG9yLCBvcGFjaXR5KTtcbiAgICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICfilIAnO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLWdyYXk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHVse1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwJSwwKTtcbiAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygxMCkgMDtcbiAgICAgICAgICAvLyBiYWNrZ3JvdW5kOiByZ2JhKDU2LCA1NiwgNTYsIDEpO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzODM4Mzg7XG4gICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgIG1pbi13aWR0aDogcmVtLWNhbGMoMTYwKTtcbiAgICAgICAgICBsaXtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDEwKSByZW0tY2FsYyg0MCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGF7XG4gICAgICAgICAgICAvLyBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgICAgIC8vIGZvbnQtZmFtaWx5OiAkZm9udC1hbXBsaXR1ZGU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgICAgICAvLyBGb250IFN0eWxlOiBmbG8taGVhZGVyX19kcm9wZG93bi1tZW51LTJuZC1sZXZlbC1pdGVtXG5cbiAgICAgICAgICAgICY6YmVmb3Jle1xuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmOmhvdmVyIHVse1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAvL0ZvdW5kYXRpb24gbWVudSBob3ZlclxuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHVse1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9IC8vU3VibWVudSBkaXNwbGF5IG5vbmUgb24gaG92ZXJcblxuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50OmhvdmVyIC5qcy1kcm9wZG93bi1hY3RpdmV7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9IC8vIFN1Ym1lbnVzIGRpc3BsYXkgb24gaG92ZXJcbiAgICB9XG5cbiAgICAvL1JlbW92ZSBmb251bmRhdGlvbiBzdW1iZW11IGFycm93c1xuICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIsXG4gICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXJ7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICB9XG4gICZfX21lbnUge1xuXG4gIH1cbiAgICAmX19tZW51LS1sZWZ0IHtcblxuICAgIH1cbiAgICAmX19tZW51LS1yaWdodCB7XG5cbiAgICB9XG5cbiAgICAmX19tZW51IC5tZW51LWl0ZW0ge1xuXG4gICAgfVxuICAgICAgJl9fbWVudSAubWVudS1pdGVtOmhvdmVyIHtcblxuICAgICAgfVxuICAgICAgJl9fbWVudSAubWVudS1pdGVtIGEge1xuICAgICAgICAvLyBmb250LWZhbWlseTogJGZvbnQtYW1wbGl0dWRlO1xuICAgICAgICAvLyBjb2xvcjogd2hpdGU7XG4gICAgICAgIC8vIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICAvLyBsZXR0ZXItc3BhY2luZzogMC40ZW07XG4gICAgICAgIC8vIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICAgLy8gRm9udCBTdHlsZTogZmxvLWhlYWRlcl9fbWVudS1pdGVtXG4gICAgICB9XG5cbiAgJl9fbG9nbyB7XG4gICAgLy8gTWFueSBwZW9wbGUgdXNlIHRoZSB0ZXh0IGxvZ28gaW5zdGVhZCBvZiB0aGUgaW1hZ2UgLSBzbyBpdCBzaG91bGQgYmUgc3R5bGVkIGFzIHdlbGwuXG4gICAgZm9udC1zaXplOiByZW0tY2FsYygzMCk7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LW1hbGFya2V5O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAvLyAmOnZpc2l0ZWR7XG4gICAgLy8gICBjb2xvcjogd2hpdGU7XG4gICAgLy8gfVxuICAgICYtaW1hZ2Uge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG4gICZfX2FkZG9ucyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrIWltcG9ydGFudDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgLy8gYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyYXktZGFyaztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzgzODM4O1xuXG4gICAgJi0tbG9nby1jZW50ZXIge1xuICAgICAgLy8ganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAjeyRifV9fbWVudSB7XG4gICAgICAgIHdpZHRoOiAzNSU7XG4gICAgICB9XG4gICAgICAjeyRifV9fbG9nbyB7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDIwKSByZW0tY2FsYygwKTtcbiAgICAgICAgLy8gbWFyZ2luOiByZW0tY2FsYygwKSByZW0tY2FsYyg2MCk7XG4gICAgICB9XG4gICAgfVxuICAgICYtLWxvZ28tbGVmdCxcbiAgICAmLS1sb2dvLXJpZ2h0IHtcbiAgICAgICN7JGJ9X19sb2dvIHtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMjApIHJlbS1jYWxjKDQwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tZW51IHtcbiAgICAgIHVsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgfVxuICAgIH1cbiAgICAgICZfX21lbnUtLWxlZnQge1xuICAgICAgICB1bCB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICBsaSB7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmX19tZW51LS1yaWdodCB7XG4gICAgICAgIHVsIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgbGkge1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJl9fbWVudSAubWVudS1pdGVtIHtcblxuICAgICAgfVxuICAgICAgICAmX19tZW51IC5tZW51LWl0ZW0gYSB7XG5cbiAgICAgICAgfVxuXG4gICAgJl9fbG9nbyB7XG5cbiAgICB9XG5cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAmX19sb2dvIHtcbiAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuICAgICZfX2xvZ28ge1xuICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJl9fbWVudSB7XG5cbiAgICB9XG4gICAgICAmX19tZW51LS1sZWZ0IHtcblxuICAgICAgfVxuICAgICAgJl9fbWVudS0tcmlnaHQge1xuXG4gICAgICB9XG4gICAgICAmX19tZW51IC5tZW51LWl0ZW0ge1xuXG4gICAgICB9XG4gICAgICAgICZfX21lbnUgLm1lbnUtaXRlbSBhIHtcblxuICAgICAgICB9XG5cbiAgICAmX19sb2dvIHtcblxuICAgIH1cblxuICB9XG5cbiAgQGltcG9ydCBcImZsby1oZWFkZXJfX3NlYXJjaC5zY3NzXCI7XG5cbn1cblxuXG4vKiBTVEFSVDogU1RJQ0tZIFNUVUZGICovXG4gICNmbG8taGVhZGVyLXN0aWNreS13cmFwcGVyIHtcbiAgICAuZmxvLWhlYWRlciB7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgfVxuICB9XG4vKiBFTkQ6IFNUSUNLWSBTVFVGRiAqL1xuIiwiJl9fc2VhcmNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4td2lkdGg6IGluaXRpYWwhaW1wb3J0YW50O1xufVxuICAmX19zZWFyY2gtdHJpZ2dlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgaSB7XG4gICAgICBAaW5jbHVkZSBnbG9iYWwtdHJhbnNpdGlvbihvcGFjaXR5KTtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTUpO1xuICAgIH1cbiAgfVxuICAgICZfX3NlYXJjaC10cmlnZ2VyLXNlYXJjaC1pY29uIHtcblxuICAgIH1cbiAgICAmX19zZWFyY2gtdHJpZ2dlci1jbG9zZS1pY29uIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgJl9fc2VhcmNoLXdyYXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgbGVmdDogMTAwJTtcbiAgICB3aWR0aDogcmVtLWNhbGMoMTAwKTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIEBpbmNsdWRlIGdsb2JhbC10cmFuc2l0aW9uKG9wYWNpdHkpO1xuICB9XG4gICAgJl9fc2VhcmNoLWZvcm0ge1xuXG4gICAgfVxuICAgICAgJl9fc2VhcmNoLWlucHV0IHtcbiAgICAgICAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDI4MCk7XG4gICAgICB9XG4gICAgJl9fc2VhcmNoLWNsb3NlIHtcblxuICAgIH1cblxuJl9fbWVudSBsaTpub3QoI3skYn1fX3NlYXJjaCksXG4mX19sb2dvXG57XG4gIEBpbmNsdWRlIGdsb2JhbC10cmFuc2l0aW9uKG9wYWNpdHkpO1xufVxuXG4mLS1zZWFyY2gtZXhwYW5kZWQge1xuICAjeyRifV9fc2VhcmNoLXRyaWdnZXIge1xuICB9XG4gICAgI3skYn1fX3NlYXJjaC10cmlnZ2VyLXNlYXJjaC1pY29uIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgICN7JGJ9X19zZWFyY2gtdHJpZ2dlci1jbG9zZS1pY29uIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICN7JGJ9X19zZWFyY2gtd3JhcCB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtcbiAgfVxuXG4gICN7JGJ9X19tZW51IGxpOm5vdCgjeyRifV9fc2VhcmNoKSxcbiAgI3skYn1fX2xvZ28ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbn1cbiIsIi5mbG8taGVyby0ye1xuICAkYjogJy5mbG8taGVyby0yJztcbiAgJGhlcm8tdGV4dC1nYXA6IHJlbS1jYWxjKDEwMik7XG5cbiAgJl9fc2xpZGUtY29udGVudHtcbiAgICBoZWlnaHQ6IHJlbS1jYWxjKDU4MCk7XG4gICAgQGluY2x1ZGUgZ2xvYmFsLWJnaS1jb3ZlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gICZfX3NsaWRle1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gICZfX3RleHQtYmxvY2t7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiAgZmxleC1lbmQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gI3skaGVyby10ZXh0LWdhcCAqIDJ9KTtcbiAgICByaWdodDogJGhlcm8tdGV4dC1nYXA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cblxuICAmX190ZXh0e1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAvLyBtYXgtd2lkdGg6IHJlbS1jYWxjKDIyNik7XG4gICAgbWF4LXdpZHRoOiA4MCU7XG4gIH1cblxuXG5cbiAgJl9faW1nLWRhdGV7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxMSk7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWFtcGxpdHVkZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4zNzVlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgJl9fdGl0bGV7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyNCk7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWJ1dGxlcjtcbiAgfVxuXG4gICZfX3RleHQtLWxhcmdle1xuICAgICN7JGJ9X190aXRsZXtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzYpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XG4gICAkaGVyby10ZXh0LWdhcDogcmVtLWNhbGMoMzApO1xuXG4gICAgJl9fc2xpZGUtY29udGVudHtcbiAgICAgIGhlaWdodDogcmVtLWNhbGMoNDgwKTtcbiAgICB9XG4gICAgJl9fdGV4dC1ibG9ja3tcbiAgICAgIC8vIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRoZXJvLXRleHQtZ2FwICogMn0pO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICByaWdodDogMDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICB9XG59XG5cbi5mbG8tc2VjdGlvbi0taGVyby0yOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg4MCk7XG59XG4iLCIuZmxvLXNlY3Rpb24tLWZsby1oZXJvLTMge1xuICAuZmxvLXNlY3Rpb25fX2NvbnRlbnQge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLmZsby1oZXJvLTN7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgJl9fc2xpZGVyIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIEBpbmNsdWRlIGdsb2JhbC10cmFuc2l0aW9uKG9wYWNpdHkpO1xuICAgICYuc2xpY2staW5pdGlhbGl6ZWQge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cbiAgLy8gJl9fc2xpZGVyOm5vdCguc2xpY2staW5pdGlhbGl6ZWQpIGltZyB7XG4gIC8vICAgb3BhY2l0eTogMCFpbXBvcnRhbnQ7XG4gIC8vIH1cblxuICAvLyBIaWRlIGltYWdlcyB3aGlsZSBSZXZlYWwgZmlyZXNcbiAgLnNsaWRlciAuc2xpY2stc2xpZGU6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAvLyBEaXNwbGF5IGltYWdlcyBhZnRlciBSZXZlYWwgZmlyZXNcbiAgLnNsaWNrLXRyYWNrIC5zbGljay1zbGlkZTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG5cbiAgJl9fc2xpZGV7XG4gICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjZmZmO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmX19zbGlkZS1jb250ZW50e1xuICAgIGhlaWdodDogcmVtLWNhbGMoNTg3KTtcbiAgICBAaW5jbHVkZSBnbG9iYWwtYmdpLWNvdmVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgfVxuICAuc2xpY2stc2xpZGUgaW1nIHtcbiAgICAvLyBkaXNwbGF5OiBub25lIWltcG9ydGFudDtcbiAgICAvLyBtYXgtd2lkdGg6IDEwMHZ3O1xuICAgIC8vIG1heC1oZWlnaHQ6IDUwdmg7XG4gIH1cbiAgJl9fc2xpZGUtaW1nIHtcbiAgICAvLyBkaXNwbGF5OiBub25lO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgLmZsby1pY29uX19hcnJvdy1sZWZ0e1xuICAgICAgbGVmdDogcmVtLWNhbGMoNjUpO1xuICAgIH1cbiAgICAuZmxvLWljb25fX2Fycm93LXJpZ2h0e1xuICAgICAgcmlnaHQ6IHJlbS1jYWxjKDY1KTtcbiAgICB9XG4gICAgLnNsaWNrLXNsaWRlIGltZyB7XG4gICAgICBoZWlnaHQ6IHJlbS1jYWxjKDU4Nyk7XG4gICAgfVxuXG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xuICAgICRoZXJvLXRleHQtZ2FwOiByZW0tY2FsYygzMCk7XG5cbiAgICAuZmxvLWljb25fX2Fycm93LWxlZnQsXG4gICAgLmZsby1pY29uX19hcnJvdy1yaWdodCB7XG4gICAgICB0b3A6IHJlbS1jYWxjKDEwKTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgY29sb3I6ICRjb2xvci1ncmF5LWRhcms7XG4gICAgfVxuXG4gICAgLmZsby1pY29uX19hcnJvdy1sZWZ0e1xuICAgICAgbGVmdDogcmVtLWNhbGMoMTApO1xuICAgIH1cbiAgICAuZmxvLWljb25fX2Fycm93LXJpZ2h0e1xuICAgICAgcmlnaHQ6IHJlbS1jYWxjKDEwKTtcbiAgICB9XG5cbiAgICAmX19zbGlkZS1jb250ZW50e1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLnNsaWNrLXNsaWRlIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgJl9fc2xpZGUge1xuICAgICAgLy8gd2lkdGg6IDEwMHZ3IWltcG9ydGFudDtcbiAgICB9XG4gICAgJl9fc2xpZGUtaW1nIHtcbiAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLmZsby1zZWN0aW9uLS1mbG8taGVyby00IHtcbiAgLmZsby1zZWN0aW9uX19jb250ZW50IHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi5mbG8taGVyby00e1xuICBjb2xvcjogd2hpdGU7XG4gICZfX3NsaWRlciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBAaW5jbHVkZSBnbG9iYWwtdHJhbnNpdGlvbihvcGFjaXR5KTtcbiAgICAmLnNsaWNrLWluaXRpYWxpemVkIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG4gICAgLy8gJl9fc2xpZGVyOm5vdCguc2xpY2staW5pdGlhbGl6ZWQpIGltZyB7XG4gICAgLy8gICBvcGFjaXR5OiAwIWltcG9ydGFudDtcbiAgICAvLyB9XG5cbiAgLy8gSGlkZSBpbWFnZXMgd2hpbGUgUmV2ZWFsIGZpcmVzXG4gIC5zbGlkZXIgLnNsaWNrLXNsaWRlOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgLy8gRGlzcGxheSBpbWFnZXMgYWZ0ZXIgUmV2ZWFsIGZpcmVzXG4gIC5zbGljay10cmFjayAuc2xpY2stc2xpZGU6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuXG4gICZfX3NsaWRle1xuICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgI2ZmZjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJl9fc2xpZGUtY29udGVudHtcbiAgICBoZWlnaHQ6IHJlbS1jYWxjKDU4Nyk7XG4gICAgQGluY2x1ZGUgZ2xvYmFsLWJnaS1jb3ZlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIH1cbiAgJl9fc2xpZGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIi4uLlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjb2xvcjogYmxhY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyOCk7XG4gICAgfVxuICB9XG4gICAgLnNsaWNrLXNsaWRlIGltZyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAmX19zbGlkZS1pbWcge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICYtLWJnaSB7XG4gICAgICAgIEBpbmNsdWRlIGdsb2JhbC1iZ2ktY29udGFpbjtcbiAgICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgICAgICBAaW5jbHVkZSBnbG9iYWwtdHJhbnNpdGlvbihvcGFjaXR5KTtcbiAgICAgICAgJi5mbG8tbGF6eS1iZ2kge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgLmZsby1pY29uX19hcnJvdy1sZWZ0LFxuICAgIC5mbG8taWNvbl9fYXJyb3ctcmlnaHQge1xuICAgICAgY29sb3I6ICRjb2xvci1ibGFjaztcbiAgICB9XG4gICAgLmZsby1pY29uX19hcnJvdy1sZWZ0e1xuICAgICAgbGVmdDogcmVtLWNhbGMoNjUpO1xuICAgIH1cbiAgICAuZmxvLWljb25fX2Fycm93LXJpZ2h0e1xuICAgICAgcmlnaHQ6IHJlbS1jYWxjKDY1KTtcbiAgICB9XG4gICAgJl9fc2xpZGUtaW1nIHtcbiAgICAgIGhlaWdodDogcmVtLWNhbGMoNTg3KTtcbiAgICAgICYtLWJnaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XG4gICAgJGhlcm8tdGV4dC1nYXA6IHJlbS1jYWxjKDMwKTtcblxuICAgIC5mbG8taWNvbl9fYXJyb3ctbGVmdCxcbiAgICAuZmxvLWljb25fX2Fycm93LXJpZ2h0IHtcbiAgICAgIHRvcDogcmVtLWNhbGMoMTApO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICBjb2xvcjogJGNvbG9yLWdyYXktZGFyaztcbiAgICB9XG5cbiAgICAuZmxvLWljb25fX2Fycm93LWxlZnR7XG4gICAgICBsZWZ0OiByZW0tY2FsYygxMCk7XG4gICAgfVxuICAgIC5mbG8taWNvbl9fYXJyb3ctcmlnaHR7XG4gICAgICByaWdodDogcmVtLWNhbGMoMTApO1xuICAgIH1cblxuICAgICZfX3NsaWRlLWNvbnRlbnR7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAuc2xpY2stc2xpZGUgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICAmX19zbGlkZSB7XG4gICAgICAvLyB3aWR0aDogMTAwdnchaW1wb3J0YW50O1xuICAgIH1cbiAgICAgICZfX3NsaWRlLWltZyB7XG4gICAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgICAgJi0taW1nIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICB9XG59XG4iLCIuZmxvLWhlcm8tcG9wdXB7XG5cbiAgLmZsby1pY29uX19hcnJvdy1sZWZ0e1xuICAgIGxlZnQ6IHJlbS1jYWxjKDY1KTtcbiAgfVxuICAuZmxvLWljb25fX2Fycm93LXJpZ2h0e1xuICAgIHJpZ2h0OiByZW0tY2FsYyg2NSk7XG4gIH1cblxuICAmX19zbGlkZS1jb250ZW50e1xuICAgIGhlaWdodDogcmVtLWNhbGMoNTk0KTtcbiAgICBAaW5jbHVkZSBnbG9iYWwtYmdpLWNvdmVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgJl9fc2xpZGV7XG4gICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjZmZmO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcbiAgICAkaGVyby10ZXh0LWdhcDogcmVtLWNhbGMoMzApO1xuXG4gICAgJl9fc2xpZGUtY29udGVudHtcbiAgICAgIGhlaWdodDogcmVtLWNhbGMoNDgwKTtcbiAgICB9XG4gIH1cbn0iLCIuZmxvLWluc3RhZ3JhbS1pbWFnZXN7XG4gICRiOiAnLmZsby1pbnN0YWdyYW0taW1hZ2VzJztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgXG5cbiAgJl9faXRlbXtcbiAgICB3aWR0aDogcmVtLWNhbGMoMTc2KTtcbiAgICBoZWlnaHQ6IHJlbS1jYWxjKDE3Nik7XG4gICAgcGFkZGluZzogcmVtLWNhbGMoMTYpO1xuICB9XG4gICZfX2ltZ3tcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgQGluY2x1ZGUgZ2xvYmFsLWJnaS1jb250YWluO1xuICB9XG5cblxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKXtcbiAgICAmLS1ncmlke1xuICAgICAgJjphZnRlcntcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICAgICN7JGJ9X19pdGVte1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDMzLjMzJTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi0taW5saW5le1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICN7JGJ9X19pdGVte1xuICAgICAgfVxuICAgIH1cblxuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XG4gICAgJi0tZ3JpZHtcbiAgICAgICN7JGJ9X19pdGVte1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIH1cbiAgICB9XG4gICAgJl9faXRlbXtcbiAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDgpO1xuICAgIH1cbiAgICAmLS1pbmxpbmV7XG4gICAgICAmOmFmdGVye1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgI3skYn1fX2l0ZW17XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgfVxuICAgIH1cbiAgICAuY29sdW1uczMge1xuICAgICAgLmltZy1ibG9jayB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAyKSFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuZmxvLWxpbmtzLWJsb2NrLTF7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gICZfX3RpdGxle1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoNDUpO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1idXRsZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcbiAgfVxuXG4gICZfX2ZpZWxke1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDI4KTtcbiAgICAmOmxhc3QtY2hpbGR7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG5cbiAgJl9fZGF0ZXtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDgpO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1idXRsZXI7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgJl9fbG9jYXRpb257XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWJ1dGxlcjtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKXtcbiAgICAmX19yb3d7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cblxuICAgICZfX2ZpZWxke1xuICAgICAgcGFkZGluZzogMCByZW0tY2FsYygyMCk7XG4gICAgICB3aWR0aDogMzMuMzMlO1xuICAgIH1cbiAgfVxufVxuIiwiLmZsby1saW5rcy1ibG9jay0ye1xuICAmX190aXRsZXtcbiAgICBmb250LWZhbWlseTogJGZvbnQtY2FzbG9uO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTApO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjY4NzVlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgJl9faXRlbXtcbiAgICBmb250LWZhbWlseTogJGZvbnQtY2FzbG9uO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCl7XG5cbiAgICAmX190aXRsZXtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDgwKTtcbiAgICB9XG5cbiAgICAmX19pdGVtc3tcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygyMCk7XG4gICAgfVxuXG4gICAgICAmX19pdGVte1xuICAgICAgICB3aWR0aDogNDglO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIlO1xuICAgICAgICAmOm50aC1jaGlsZCgybil7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XG5cbiAgICAmX190aXRsZXtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDMwKTtcbiAgICB9XG5cbiAgICAmX19pdGVtc3tcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDgwKTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cbn1cbiIsIi5mbG8tbW9iaWxlLW1lbnV7XHJcbiAgJGI6ICcuZmxvLW1vYmlsZS1tZW51JztcclxuICAkZ2FwLXNpZGU6IHJlbS1jYWxjKDMwKTtcclxuXHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgYmFja2dyb3VuZDogIzAwMDAwMDtcclxuXHJcbiAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDQwKTtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgei1pbmRleDogOTk5O1xyXG4gIHRyYW5zaXRpb246IGFsbCAuNXMgZWFzZTtcclxuXHJcbiAgJl9fbmF2e1xyXG4gICAgcGFkZGluZzogJGdhcC1zaWRlO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgIGhlaWdodDogMTAwJTtcclxuICB9XHJcbiAgJl9fdWwsICYgPiB1bCB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAmX19zdWJtZW51LCBsaSB1bHtcclxuICAgIC8vIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gICZfX2xvZ297XHJcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDUwKTtcclxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1tYWxhcmtleTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDgwKTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAmOnZpc2l0ZWR7XHJcbiAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9faGFtYnVyZ2Vye1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogJGdhcC1zaWRlO1xyXG4gICAgYm90dG9tOiAkZ2FwLXNpZGU7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuICAmX19pdGVtLCBsaXtcclxuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDI0KTtcclxuICAgICY6bGFzdC1vZi10eXBle1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gICAgYXtcclxuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1idXRsZXI7XHJcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcclxuICAgICAgJjp2aXNpdGVke1xyXG4gICAgICAgIC8vY29sb3I6ICNmZmY7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1bHtcclxuICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMjQpO1xyXG4gICAgfVxyXG4gICAgbGl7XHJcbiAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDEwKTtcclxuICAgICAgJjpmaXJzdC1vZi10eXBle1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgIH1cclxuICAgICAgYXtcclxuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcclxuICAgICAgICBmb250LWZhbWlseTogJGZvbnQtYW1wbGl0dWRlO1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG5cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAmX19jbG9zZXtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206ICRnYXAtc2lkZTtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xyXG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gIH1cclxuICAmLS13aXRob3V0LWxvZ297XHJcbiAgICAjeyRifV9fbG9nb3tcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWZ1bGwtaGVpZ2h0e1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxuICAmLS13aXRoLXBhZGRpbmd7XHJcbiAgICBwYWRkaW5nOiAkZ2FwLXNpZGU7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRnYXAtc2lkZSoyfSk7XHJcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtICN7JGdhcC1zaWRlKjJ9KTtcclxuICB9XHJcblxyXG4gICYtLXdpdGhvdXQtaGFtYnVyZ2Vye1xyXG4gICAgI3skYn1fX2hhbWJ1cmdlcntcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICAgICN7JGJ9X19jbG9zZXtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgfVxyXG4gICYtLXRvcHtcclxuICAgIHRvcDogLTEwMCU7XHJcbiAgfVxyXG4gICYtLWJvdHRvbXtcclxuICAgIGJvdHRvbTogLTEwMCU7XHJcbiAgfVxyXG4gICYubW9iaWxlLWRpc3BsYXl7XHJcbiAgICAmI3skYn0tLXRvcHtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICAmI3skYn0tLXdpdGgtcGFkZGluZ3tcclxuICAgICAgICB0b3A6ICRnYXAtc2lkZTtcclxuICAgICAgICBsZWZ0OiAkZ2FwLXNpZGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICYjeyRifS0tYm90dG9te1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgICYjeyRifS0td2l0aC1wYWRkaW5ne1xyXG4gICAgICAgIGJvdHRvbTogJGdhcC1zaWRlO1xyXG4gICAgICAgIGxlZnQ6ICRnYXAtc2lkZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG59XHJcbiIsIi5mbG8tcGFnZS1oZXJvIHtcbiAgJGI6IFwiLmZsby1wYWdlLWhlcm9cIjtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cblxuICAmX19zbGlkZXIge1xuICB9XG4gICAgJl9fc2xpZGUge1xuICAgIH1cbiAgICAgICZfX3NsaWRlLWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgQGluY2x1ZGUgZ2xvYmFsLWJnaS1jb3ZlcjtcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgIH1cbiAgJl9fbG9nbyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAvLyB3aWR0aDogcmVtLWNhbGMoMzIwKTtcbiAgICBwYWRkaW5nOiAwIHJlbS1jYWxjKDMwKTtcbiAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAmX19zbGlkZXIge1xuICAgIH1cbiAgICAgICZfX3NsaWRlIHtcbiAgICAgIH1cbiAgICAgICAgJl9fc2xpZGUtY29udGVudCB7XG4gICAgICAgIH1cblxuICAgICZfX2xvZ28ge1xuICAgICAgLy8gd2lkdGg6IHJlbS1jYWxjKDM2Mik7XG4gICAgICBwYWRkaW5nOiAwO1xuXG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgLmZsby1pY29uX19hcnJvdy1sZWZ0LFxuICAgIC5mbG8taWNvbl9fYXJyb3ctcmlnaHQge1xuICAgICAgdG9wOiByZW0tY2FsYygxMCk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIGNvbG9yOiAkY29sb3ItZ3JheS1kYXJrO1xuICAgIH1cblxuICAgIC5mbG8taWNvbl9fYXJyb3ctbGVmdHtcbiAgICAgIGxlZnQ6IHJlbS1jYWxjKDEwKTtcbiAgICB9XG4gICAgLmZsby1pY29uX19hcnJvdy1yaWdodHtcbiAgICAgIHJpZ2h0OiByZW0tY2FsYygxMCk7XG4gICAgfVxuXG4gICAgJl9fc2xpZGVyIHtcblxuICAgIH1cbiAgICAgICZfX3NsaWRlIHtcbiAgICAgIH1cbiAgICAgICAgLy8mX19zbGlkZS1jb250ZW50IHtcbiAgICAgICAgLy8gIGhlaWdodDogcmVtLWNhbGMoNDAwKTtcbiAgICAgICAgLy99XG4gICAgJl9fbG9nbyB7XG5cbiAgICB9XG4gIH1cbn1cbiIsIi5mbG8tcGFnZS10b3AtbmF2e1xuICAkZ2FwLXNpZGU6IHJlbS1jYWxjKDQwKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiByZW0tY2FsYygyMCkgMDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtICN7JGdhcC1zaWRlICogMn0pO1xuICBjb2xvcjogd2hpdGU7XG4gICYtLW9uLWhlcm8tcGFnZXtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiA5OTtcbiAgfVxuXG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcbiAgICAkZ2FwLXNpZGU6IHJlbS1jYWxjKDMwKTtcblxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRnYXAtc2lkZSAqIDJ9KTtcblxuICB9XG59IiwiLmZsb19wYWdlX3dyYXB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgJi0tcGFkZGluZy10b3AtbGFyZ2V7XG4gICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDE1MCk7XG4gIH1cbn1cblxuLmZsb19wYWdle1xuICBmbGV4OiAxO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59IiwiLmZsby1wYWdpbmF0aW9ue1xuICAkYjogXCIuZmxvLXBhZ2luYXRpb25cIjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgJi0tc3R5bGUtYWxsIHtcblxuICB9XG4gICYtLXN0eWxlLW51bWJlcnMge1xuICAgICN7JGJ9X19wcmV2LCAucHJldixcbiAgICAjeyRifV9fbmV4dCwgLm5leHQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgI3skYn1fX2l0ZW1zIHtcbiAgICAgICY6YmVmb3JlLFxuICAgICAgJjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICYtLXN0eWxlLWJ1dHRvbnMge1xuICAgICN7JGJ9X19wcmV2IHtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIi9cIjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgcmVtLWNhbGMoMjQpO1xuICAgICAgfVxuICAgIH1cbiAgICAucGFnZS1udW1iZXJzIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICYubmV4dCwgJi5wcmV2e1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgICAmLnByZXY6YWZ0ZXJ7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICAmLS1nYXAtYm90dG9te1xuICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYyg2MCk7XG4gIH1cbiAgJXNsYXNoIHtcbiAgICBjb250ZW50OiAnLyc7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgJl9fcHJldixcbiAgJl9fbmV4dCxcbiAgJl9fc3BhY2VyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IHJlbS1jYWxjKDE1MCk7XG4gIH1cbiAgJl9fcHJldiwgLnByZXYge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICY6YWZ0ZXJ7XG4gICAgICBAZXh0ZW5kICVzbGFzaDtcbiAgICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMjQpO1xuICAgIH1cbiAgfVxuICAmX19uZXh0LCAubmV4dCB7XG4gICAgJjpiZWZvcmV7XG4gICAgICBAZXh0ZW5kICVzbGFzaDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDI0KTtcbiAgICB9XG4gIH1cbiAgYSwgc3BhbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxMCk7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWJ1dGxlcjtcbiAgICBsZXR0ZXItc3BhY2luZzogLjE4NzVlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICBzcGFuIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cbiAgJl9faXRlbXN7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW46IDAgcmVtLWNhbGMoMTIpO1xuICAgIGEsIHNwYW57XG4gICAgICBwYWRkaW5nOiAwIHJlbS1jYWxjKDEwKTtcbiAgICAgIG1pbi13aWR0aDogcmVtLWNhbGMoNTIpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gIH1cbn1cbiIsIi5mbG8tcG9ydGZvbGlvLWNhcmQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vICZbZGF0YS1vcGVuPVwicG9wdXAtZ2FsbGVyeVwiXXtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgICY6YWZ0ZXJ7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuXG4gICAgICBjb250ZW50OiAnKyc7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDMwKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjb2xvcjogd2hpdGU7XG5cblxuICAgICAgd2lkdGg6IHJlbS1jYWxjKDQwKTtcbiAgICAgIGhlaWdodDogcmVtLWNhbGMoNDApO1xuICAgICAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBAaW5jbHVkZSBnbG9iYWwtdHJhbnNpdGlvbihvcGFjaXR5LCB2aXNpYmlsaXR5KTtcblxuICAgIH1cbiAgICAmOmhvdmVye1xuICAgICAgJjphZnRlcntcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG4gIC8vIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgIGhlaWdodDogcmVtLWNhbGMoMTY4KTtcbiAgICBAaW5jbHVkZSBnbG9iYWwtYmdpLWNvdmVyO1xuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcblxuICAgIGltZ3tcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG59XG4iLCIuZmxvLXBvcnRmb2xpby1jYXRlZ29yeS1ncmlkIHtcbiAgJl9fd3JhcCB7XG4gICAgcGFkZGluZzogcmVtLWNhbGMoMTIpIDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1ncmF5LWxpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDU0KTtcbiAgfVxuICAmX190aXRsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgLy8gZm9udC1zaXplOiByZW0tY2FsYygyNCk7XG4gICAgLy8gZm9udC1mYW1pbHk6ICRmb250LWJ1dGxlcjtcbiAgICBcbiAgICAmOmJlZm9yZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbiAgICAmX19saW5rLWFsbCB7XG4gICAgICBmb250LWZhbWlseTogJGZvbnQtYW1wbGl0dWRlO1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMC40ZW07XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgLmNvbHVtbiB7XG4gICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDQxKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbiAgLnJvdyB7XG4gICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogLSN7cmVtLWNhbGMoNDEpfTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCl7XG5cbiAgICAmX193cmFwe1xuICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoNjIuNSk7XG4gICAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDYyLjUpO1xuICAgIH1cbiAgICAuY29sdW1ue1xuICAgICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYygxMi41KTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDEyLjUpO1xuICAgIH1cblxuICAgIC5yb3d7XG4gICAgICBwYWRkaW5nOiAwIHJlbS1jYWxjKDYyLjUpO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0je3JlbS1jYWxjKDEyLjUpfTtcbiAgICAgIG1hcmdpbi1yaWdodDogLSN7cmVtLWNhbGMoMTIuNSl9O1xuICAgIH1cbiAgfVxuXG59XG4iLCIuZmxvLXBvcnRmb2xpby1ncmlke1xuICAkZ3V0dGVyLWhvcml6b250YWw6IHJlbS1jYWxjKDEyLjUpO1xuICAkZ3V0dGVyLXZlcnRpY2FsOiByZW0tY2FsYyg1NSk7XG4gICRndXR0ZXItaG9yaXpvbnRhbDogMjAgLyAyO1xuICAkZ3V0dGVyLXZlcnRpY2FsOiAyMDtcblxuICAucm93IHtcbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAtJGd1dHRlci12ZXJ0aWNhbDtcbiAgICB9XG4gIH1cblxuICAuY29sdW1uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtYXJnaW4tYm90dG9tOiAkZ3V0dGVyLXZlcnRpY2FsO1xuICB9XG5cbiAgJl9fdGh1bWJuYWlsIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvdXRsaW5lOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgaW1ne1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAmOm5vdChbc3JjXSkge1xuICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDIwMCk7XG4gICAgICB9XG4gICAgfVxuICAgICY6YWZ0ZXJ7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuXG4gICAgICBjb250ZW50OiAnKyc7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDMwKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjb2xvcjogd2hpdGU7XG5cblxuICAgICAgd2lkdGg6IHJlbS1jYWxjKDQwKTtcbiAgICAgIGhlaWdodDogcmVtLWNhbGMoNDApO1xuICAgICAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBAaW5jbHVkZSBnbG9iYWwtdHJhbnNpdGlvbihvcGFjaXR5LCB2aXNpYmlsaXR5KTtcbiAgICB9XG5cbiAgICBpbWcge1xuXG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApe1xuICAgIC5jb2x1bW57XG4gICAgICBtYXJnaW4tbGVmdDogY2FsYygjeyRndXR0ZXItaG9yaXpvbnRhbH0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7JGd1dHRlci1ob3Jpem9udGFsfSk7XG4gICAgICAmLm1lZGl1bS0zIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDQgLSAjeyRndXR0ZXItaG9yaXpvbnRhbH0gKiAyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aHVtYm5haWwge1xuICAgICAgJjpob3ZlcntcbiAgICAgICAgJjphZnRlcntcbiAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cblxuICAgICAgcGFkZGluZzogMCByZW0tY2FsYyg2Mi41KTtcbiAgICAvLyAucm93e1xuICAgIC8vICAgbWFyZ2luLWxlZnQ6IC0kZ3V0dGVyLWhvcml6b250YWw7XG4gICAgLy8gICBtYXJnaW4tcmlnaHQ6IC0kZ3V0dGVyLWhvcml6b250YWw7XG4gICAgLy8gfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgLmNvbHVtbiwgLmNvbHVtbnN7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjYyNXJlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi5mbG8tcG9ydGZvbGlvLXBvc3R7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICZfX3N1YnRpdGxle1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1hbXBsaXR1ZGU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMTg3NWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAmX190aXRsZXtcbiAgICBmb250LWZhbWlseTogJGZvbnQtYnV0bGVyO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzApO1xuICB9XG4gICZfX3NoYXJlLWxpbmtze1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDYpIDA7XG4gIH1cbiAgJl9fdGV4dHtcbiAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoNTkpO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1jYXNsb247XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApe1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDUwKTtcblxuICAgICZfX3RleHR7XG4gICAgICB3aWR0aDogcmVtLWNhbGMoNTAwKTtcbiAgICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoNDApO1xuICAgIH1cbiAgICAmX19sZWZ0e1xuICAgICAgd2lkdGg6IHJlbS1jYWxjKDM5NSk7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAmX19zaGFyZS1saW5rc3tcbiAgICAgIGZsZXg6IDE7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKXtcblxuXG4gIH1cbn1cbiIsIi5mbG8tcG9zdC1wYWdpbmF0aW9ue1xuICAkZ2FwLXNpZGU6IHJlbS1jYWxjKDQwKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmb250LXNpemU6IHJlbS1jYWxjKDExKTtcbiAgZm9udC1mYW1pbHk6ICRmb250LWFtcGxpdHVkZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMjE4NWVtO1xuICB3aWR0aDogY2FsYygxMDAlIC0gI3skZ2FwLXNpZGUqMn0pO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogcmVtLWNhbGMoMTcuNSkgMCA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3ItZ3JheS1saWdodDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1ncmF5LWxpZ2h0O1xuXG5cbiAgJi0tYWxpZ24tYm90dG9te1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgcGFkZGluZzogcmVtLWNhbGMoMzEuNSkgMDtcbiAgfVxuXG4gICYtLW1hcmdpbi10b3B7XG4gICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoNjIpO1xuXG4gIH1cblxuXG4gICYtLWJvcmRlci1ib3R0b20tMHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICB9XG5cbiAgJl9fc2hhcmUtbGlua3N7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgJl9fYmFjay10by1saXN0e1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gICZfX2JhY2staWNvbntcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDYpO1xuICAgIHBhZGRpbmctcmlnaHQ6ICByZW0tY2FsYygyMik7XG4gIH1cblxuICAmX19wYWdlcntcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICAmX19wYWdlci1pdGVte1xuICAgIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDI1LjUpO1xuICAgICY6YWZ0ZXJ7XG4gICAgICBjb250ZW50OiAnLyc7XG4gICAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDI1LjUpO1xuICAgIH1cbiAgICAmOmxhc3Qtb2YtdHlwZXtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAmOmFmdGVye1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgJi0tYm90dG9tIHtcbiAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg3MCk7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKXtcbiAgICAmX19wYWdlcntcbiAgICAgIHdpZHRoOiAzMCU7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cblxuICAgICZfX3NoYXJlLWxpbmtze1xuICAgICAgd2lkdGg6IDQwJTtcbiAgICB9XG5cbiAgICAmX19iYWNrLXRvLWxpc3QsXG4gICAgJl9fc3BhY2VyIHtcbiAgICAgIHdpZHRoOiAzMCU7XG4gICAgfVxuICAgIFxuICAgICYtLW1hcmdpbi1ib3R0b217XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg4MCk7XG5cbiAgICB9XG5cblxuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XG4gICAgJGdhcC1zaWRlOiByZW0tY2FsYygzMCk7XG4gICAgcGFkZGluZy1sZWZ0OiAkZ2FwLXNpZGU7XG4gICAgcGFkZGluZy1yaWdodDogJGdhcC1zaWRlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAmX19zaGFyZS1saW5rc3tcbiAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygxMik7XG4gICAgfVxuICAgICZfX3BhZ2Vye1xuICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDEyKTtcbiAgICB9XG4gIH1cblxuXG59XG4iLCIuZmxvLXBvc3QtdGl0bGUtd3JhcHtcbiAgJGdhcC1zaWRlOiByZW0tY2FsYyg0MCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDQ1KTtcblxuICAmX19kYXRle1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1hbXBsaXR1ZGU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMzc1ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuXG5cbiAgJl9fdGl0bGV7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygzMCk7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWJ1dGxlcjtcbiAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDM0MCk7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cblxufSIsImJvZHl7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5mbG8tcG9zdC13cmFwIHtcbiAgLy8gd2lkdGg6IDQ2Ljg3NXJlbTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1heC13aWR0aDogNzUwcHg7XG59XG5cbi5mbG8tcG9zdCwgLmZsby1wb3N0X19zdHlsZXMge1xuICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgZm9udC1mYW1pbHk6ICRmb250LWNhc2xvbjtcbiAgaW1nIHtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyLjUpO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIHA6bm90KDplbXB0eSkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICAgbWFyZ2luOiByZW0tY2FsYygyMCkgMDtcbiAgICAmOmxhc3Qtb2YtdHlwZXtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLyogc3BhY2luZyBiZWxvdyBpbWFnZSAqL1xuICBhIGltZywgaW1nLCBpbWcuYWxpZ25sZWZ0LCBpbWcuYWxpZ25yaWdodCwgaW1nLmFsaWduY2VudGVyeyBcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG5cbiAgICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgMy4wIEFsaWdubWVudHNcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gIC5hbGlnbmxlZnQge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNWVtO1xuICB9XG5cbiAgLmFsaWducmlnaHQge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IDEuNWVtO1xuICB9XG5cbiAgLmFsaWduY2VudGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIDguMCBMaXN0c1xuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgdWwsXG4gIG9sIHtcbiAgICBtYXJnaW46IDAgMCAxLjVlbTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgdWwge1xuICAgIGxpc3Qtc3R5bGU6IGRpc2M7XG4gIH1cblxuICBvbCB7XG4gICAgbGlzdC1zdHlsZTogZGVjaW1hbDtcbiAgfVxuXG4gIGxpID4gdWwsXG4gIGxpID4gb2wge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDEuNWVtO1xuICB9XG5cbiAgZHQge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIH1cblxuICBkZCB7XG4gICAgbWFyZ2luOiAwIDEuNWVtIDEuNWVtO1xuICB9XG5cbiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAxNi4wIE1lZGlhXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICBpbWcsXG4gIHZpZGVvIHtcbiAgICBoZWlnaHQ6IGF1dG87IC8qIE1ha2Ugc3VyZSBpbWFnZXMgYXJlIHNjYWxlZCBjb3JyZWN0bHkuICovXG4gICAgbWF4LXdpZHRoOiAxMDAlOyAvKiBBZGhlcmUgdG8gY29udGFpbmVyIHdpZHRoLiAqL1xuICB9XG5cblxuICAuY29tbWVudC1jb250ZW50IC53cC1zbWlsZXkge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8qIE1ha2Ugc3VyZSBlbWJlZHMgYW5kIGlmcmFtZXMgZml0IHRoZWlyIGNvbnRhaW5lcnMuICovXG5cbiAgZW1iZWQsXG4gIGlmcmFtZSxcbiAgb2JqZWN0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICAud3AtY2FwdGlvbixcbiAgLndwLWNhcHRpb24gYSxcbiAgLmdhbGxlcnktY2FwdGlvbiB7XG4gICAgY29sb3I6ICM2NjY7XG4gICAgZm9udC1zaXplOiAwLjYxMjVyZW07XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBsaW5lLWhlaWdodDogMWVtO1xuICB9XG5cbiAgLndwLWNhcHRpb24gaW1nW2NsYXNzKj1cIndwLWltYWdlLVwiXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgLndwLWNhcHRpb24gLndwLWNhcHRpb24tdGV4dCwgLndwLWNhcHRpb24tdGV4dCBhIHtcbiAgICBtYXJnaW46IDAuODA3NWVtIDA7XG4gIH1cbiAgLndwLWNhcHRpb24gcHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLyogTWVkaWEgRWxlbWVudHMgKi9cblxuICAubWVqcy1jb250YWluZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICB9XG5cbiAgLyogQXVkaW8gUGxheWVyICovXG5cbiAgLm1lanMtY29udHJvbHMgYS5tZWpzLWhvcml6b250YWwtdm9sdW1lLXNsaWRlcixcbiAgLm1lanMtY29udHJvbHMgYS5tZWpzLWhvcml6b250YWwtdm9sdW1lLXNsaWRlcjpmb2N1cyxcbiAgLm1lanMtY29udHJvbHMgYS5tZWpzLWhvcml6b250YWwtdm9sdW1lLXNsaWRlcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAxNi4xIEdhbGxlcmllc1xuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgLmdhbGxlcnktaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBtYXJnaW46IDAgMCAxLjVlbTtcbiAgICBwYWRkaW5nOiAwIDFlbSAwIDA7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuXG4gIC5nYWxsZXJ5LWNvbHVtbnMtMSAuZ2FsbGVyeS1pdGVtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5nYWxsZXJ5LWNvbHVtbnMtMiAuZ2FsbGVyeS1pdGVtIHtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgfVxuXG4gIC5nYWxsZXJ5LWl0ZW0gYSxcbiAgLmdhbGxlcnktaXRlbSBhOmhvdmVyLFxuICAuZ2FsbGVyeS1pdGVtIGE6Zm9jdXMge1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5nYWxsZXJ5LWl0ZW0gYSBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC1maWx0ZXIgMC4ycyBlYXNlLWluO1xuICAgIHRyYW5zaXRpb246IC13ZWJraXQtZmlsdGVyIDAuMnMgZWFzZS1pbjtcbiAgICB0cmFuc2l0aW9uOiBmaWx0ZXIgMC4ycyBlYXNlLWluO1xuICAgIHRyYW5zaXRpb246IGZpbHRlciAwLjJzIGVhc2UtaW4sIC13ZWJraXQtZmlsdGVyIDAuMnMgZWFzZS1pbjtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAuZ2FsbGVyeS1pdGVtIGE6aG92ZXIgaW1nLFxuICAuZ2FsbGVyeS1pdGVtIGE6Zm9jdXMgaW1nIHtcbiAgICAtd2Via2l0LWZpbHRlcjogb3BhY2l0eSg2MCUpO1xuICAgIGZpbHRlcjogb3BhY2l0eSg2MCUpO1xuICB9XG5cbiAgLmdhbGxlcnktY2FwdGlvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nOiAwIDEwcHggMCAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAvKiBzcGFjaW5nIGJlbG93IGltYWdlICovXG4gIGEgaW1nLCBpbWcsIGltZy5hbGlnbmxlZnQsIGltZy5hbGlnbnJpZ2h0LCBpbWcuYWxpZ25jZW50ZXJ7IFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgIC8qIEdhbGxlcnkgQ29sdW1ucyAqL1xuXG4gICAgICAvLyBmaWdodGluZyB0aGUgc3BhY2UgYmV0d2VlbiBkaXNwbGF5IGlubGluZSBlbGVtZW50c1xuICAgICAgZGl2LmdhbGxlcnl7XG4gICAgICAgIGZvbnQtc2l6ZTogMHB4O1xuICAgICAgfVxuICAgICAgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIG1heC13aWR0aDogMjUlO1xuICAgICAgfVxuXG4gICAgICAuZ2FsbGVyeS1jb2x1bW5zLTEgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLmdhbGxlcnktY29sdW1ucy0yIC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICAgIH1cblxuICAgICAgLmdhbGxlcnktY29sdW1ucy0zIC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgICBtYXgtd2lkdGg6IDMzLjMzJTtcbiAgICAgIH1cblxuICAgICAgLmdhbGxlcnktY29sdW1ucy00IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgICBtYXgtd2lkdGg6IDI1JTtcbiAgICAgIH1cbiAgICAgIC5nYWxsZXJ5LWNvbHVtbnMtNSAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyMCU7XG4gICAgICB9XG4gICAgICAuZ2FsbGVyeS1jb2x1bW5zLTYgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIG1heC13aWR0aDogMTYuNjYlO1xuICAgICAgfVxuICAgICAgLmdhbGxlcnktY29sdW1ucy03IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgICBtYXgtd2lkdGg6IDE0LjI4NSU7XG4gICAgICB9XG4gICAgICAuZ2FsbGVyeS1jb2x1bW5zLTggLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIG1heC13aWR0aDogMTIuNSU7XG4gICAgICB9XG4gICAgICAuZ2FsbGVyeS1jb2x1bW5zLTkgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIG1heC13aWR0aDogMTEuMTExJTtcbiAgICAgIH1cbiAgfVxufVxuIiwiLmZsby1zZWN0aW9uIHtcbiAgJGI6IFwiLmZsby1zZWN0aW9uXCI7XG4gICRnYXAtc2lkZTogcmVtLWNhbGMoMzApO1xuXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAmX19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogMCAkZ2FwLXNpZGU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gICZfX2RlY29yYXRpb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG5cbiAgICAmX19kZWNvcmF0aW9uLS10b3AtcmlnaHQge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIHJpZ2h0O1xuICAgIH1cbiAgICAmX19kZWNvcmF0aW9uLS1yaWdodCB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgcmlnaHQ7XG4gICAgfVxuXG4gICAgJl9fZGVjb3JhdGlvbi0tYm90dG9tLXJpZ2h0IHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDtcbiAgICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgICByaWdodDogJGdhcC1zaWRlO1xuICAgIH1cbiAgJl9fZGVjb3JhdGlvbi0tYm90dG9tLXJpZ2h0LXdpdGhvdXQtZ2Fwe1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIHJpZ2h0O1xuICB9XG5cbiAgJl9fdGl0bGUtd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3ItZ3JheTtcblxuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDQwKSAwO1xuXG4gICAgLy8gJHBhZGRpbmctLXZlcnRpY2FsOiByZW0tY2FsYyg0MCk7XG4gICAgLy8gaGVpZ2h0OiBjYWxjKDEuNWVtICsgI3skcGFkZGluZy0tdmVydGljYWwgKiAyfSk7XG5cbiAgICB3aWR0aDogY2FsYygxMDAlIC0gI3skZ2FwLXNpZGUgKiAyfSk7XG4gICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICAmX190aXRsZS13cmFwLS10b3B7XG4gICAgICBvcmRlcjogLTE7XG4gICAgfVxuICB9XG4gICAgJl9fdGl0bGUtd3JhcC0tZGl2aWRlci1oaWRkZW4ge1xuICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICB9XG4gICAgJi0tdGl0bGUtd3JhcC10b3Age1xuICAgICAgI3skYn1fX3RpdGxlLXdyYXAge1xuICAgICAgICBvcmRlcjogLTE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJl9faW5zdHJ1Y3Rpb24ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWNhc2xvbjtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoOCk7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMC42ZW07XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB3aWR0aDogMjAlO1xuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1idXRsZXI7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE1KTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxLjU2MjVlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB3aWR0aDogNjAlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgICAmX19jb3VudCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG4gICAgICBmb250LWZhbWlseTogJGZvbnQtYnV0bGVyO1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNSk7XG4gICAgICB3aWR0aDogMjAlO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICAgICZfX3Njcm9sbC1kb3duIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4gICAgICBAaW5jbHVkZSBnbG9iYWwtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICB3aWR0aDogMjAlO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItZ3JheTtcbiAgICAgIH1cbiAgICB9XG5cbiAgJl9faGFtYnVyZ2Vye1xuICAgIHdpZHRoOiAyMCU7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmX190aXRsZS13cmFwe1xuICAgICYtLWNvdW50e1xuICAgICAgI3skYn1fX2NvdW50e1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtLXNjcm9sbGFibGV7XG4gICAgICAjeyRifV9fc2Nyb2xsLWRvd257XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tdGl0bGUtc21hbGx7XG4gICAgICAjeyRifV9fdGl0bGV7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTApO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC42ODc1ZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tZGl2aWRlcntcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgI3skYn1fX3RpdGxle1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICB9XG5cbiAgfVxuXG4gICZfX3RpdGxlLXdyYXAtcGxhY2Vob2xkZXIge1xuICAgIGhlaWdodDogcmVtLWNhbGMoNTApO1xuICAgICYtLXRvcCB7XG4gICAgICBvcmRlcjogLTE7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApe1xuICAgICRnYXAtc2lkZTogcmVtLWNhbGMoNDApO1xuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAvLyBmbGV4OiAxO1xuICAgICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYygxNTApO1xuICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoMTUwKTtcbiAgICB9XG5cblxuICAgICYtLWZ1bGwtd2lkdGh7XG4gICAgICAjeyRifV9fY29udGVudHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgICAmLS1wYWRkaW5nLWxhcmdle1xuICAgICAgI3skYn1fX2NvbnRlbnR7XG4gICAgICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMTYyKTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoMTYyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1wYWRkaW5nLW1lZGl1bXtcbiAgICAgICN7JGJ9X19jb250ZW50e1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDEwMik7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDEwMik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tcGFkZGluZy1zbWFsbHtcbiAgICAgICN7JGJ9X19jb250ZW50e1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDQwKTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoNDApO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtLXBhZGRpbmctdmVydGljYWwtc21hbGwge1xuICAgICAgI3skYn1fX2NvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoNDApO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoNDApO1xuICAgICAgfVxuICAgIH1cblxuXG4gICAgICAmX19kZWNvcmF0aW9uLS1ib3R0b20tcmlnaHQge1xuICAgICAgICByaWdodDogJGdhcC1zaWRlO1xuICAgICAgfVxuXG4gICAgJi0tZnVsbC1oZWlnaHR7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBoZWlnaHQ6IDEwMHZoO1xuXG4gICAgICAjeyRifV9fY29udGVudHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgLy8gcGFkZGluZy10b3A6IHJlbS1jYWxjKDYwKTtcbiAgICAgICAgLy8gcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDYwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XG4gICAgcGFkZGluZzogcmVtLWNhbGMoMzApIDA7XG5cbiAgICAmX19kZWNvcmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fdGl0bGUtd3JhcCB7XG4gICAgICBwYWRkaW5nOiByZW0tY2FsYygyOCkgMDtcblxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7JGdhcC1zaWRlICogMn0pO1xuICAgICAgJi0tc2Nyb2xsYWJsZXtcbiAgICAgICAgI3skYn1fX3Njcm9sbC1kb3due1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgI3skYn1fX2hhbWJ1cmdlcntcbiAgICAgICAgICAvLyBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuXG4gICAgICAmX190aXRsZXtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNWVtO1xuICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAmX19pbnN0cnVjdGlvbntcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgJl9fY291bnQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAmLS1mdWxsLWhlaWdodCB7XG4gICAgICAgIC8vIGhlaWdodDogMTAwdmg7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIH1cblxuICB9XG5cbn1cblxuLmxheW91dC1zZWN0aW9ucy0tc2Nyb2xsLW5vcm1hbCB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKXtcbiAgICAuZmxvLXNlY3Rpb24tLWZ1bGwtaGVpZ2h0IHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIC8vIG1hcmdpbjogcmVtLWNhbGMoNjApIDA7XG4gICAgICAuZmxvLXNlY3Rpb25fX2NvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoODApO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoODApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmZsby1zb2NpYWwtYmxvY2t7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgJl9fbGlua3tcbiAgICBmb250LWZhbWlseTogJGZvbnQtYnV0bGVyO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjQpO1xuICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoMzYpO1xuXG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg0MCk7XG4gIH1cbn1cbiIsIi5mbG8tc29jaWFsLXNlY3Rpb257XG4gICRnYXAtc2lkZTogcmVtLWNhbGMoNDApO1xuICAgLmZsby1pbnN0YWdyYW0taW1hZ2Vze1xuICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg0MCk7XG4gICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApe1xuICAgIC5mbG8tc29jaWFsLWJsb2Nre1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoNjIpO1xuICAgICAgJjpsYXN0LW9mLXR5cGV7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAmLS1vcmRlci0ze1xuICAgICAgb3JkZXI6IDM7XG4gICAgfVxuXG5cbiAgfVxufVxuIiwiLmZsby1zcGxhc2gge1xuICAkYjogXCIuZmxvLXNwbGFzaFwiO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcblxuICB3aWR0aDogMTAwdnc7XG4gIGhlaWdodDogMTAwdmg7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcblxuICB6LWluZGV4OiAxMDAwMDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgJl9fY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCl7XG4gICAgJl9fY29udGVudCB7XG4gICAgICAmLS1tZWRpdW0tdXAge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgICAgJi0tc21hbGwtb25seSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XG4gICAgJl9fY29udGVudCB7XG4gICAgICAmLS1tZWRpdW0tdXAge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgICAgJi0tc21hbGwtb25seSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuZmxvLXBvcHVwLWdhbGxlcnl7XG4gICRnYXBzLXNpZGU6IHJlbS1jYWxjKDQwKTtcbiAgb3V0bGluZTogbm9uZTtcbiAgcGFkZGluZzogMCAwIHJlbS1jYWxjKDcwKTtcblxuICAmX190b3Atd3JhcHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBwYWRkaW5nOiByZW0tY2FsYygyNykgJGdhcHMtc2lkZTtcbiAgfVxuXG4gICZfX3RvcC1yaWdodHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICAmX190aXRsZXtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDM2LjUpO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1idXRsZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICY6YmVmb3Jle1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cblxuICAmX19jYXRlZ29yaWVze1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAmX19saW5re1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1idXRsZXI7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNS42KTtcbiAgICBjb2xvcjogJGNvbG9yLWdyYXk5NTtcbiAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDU0KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgJjpmaXJzdC1vZi10eXBle1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cbiAgICAmOnZpc2l0ZWR7XG4gICAgICBjb2xvcjogJGNvbG9yLWdyYXk5NTtcblxuICAgIH1cbiAgfVxuICAmX19jbG9zZXtcbiAgICBhcHBlYXJhbmNlOiBub25lIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDI2KTtcbiAgICBjb2xvcjogJGNvbG9yLWdyYXk5NTtcbiAgICB3aWR0aDogcmVtLWNhbGMoNjIuNSk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIEBpbmNsdWRlIGdsb2JhbC10cmFuc2l0aW9uKGNvbG9yKVxuICB9XG4gIC5mbG8taGVyby0zIHtcbiAgICB3aWR0aDogMTAwdnc7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApe1xuXG4gICAgJl9fdGl0bGV7XG4gICAgICB3aWR0aDogNDAlO1xuICAgIH1cbiAgICAmX190b3AtbGVmdHtcbiAgICAgIHdpZHRoOiAzMCU7XG4gICAgfVxuXG4gICAgJl9fdG9wLXJpZ2h0e1xuICAgICAgd2lkdGg6IDMwJTtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgfVxuICAgICZfX2Nsb3NlIHtcbiAgICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMzgpO1xuICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDIwKTtcbiAgICB9XG5cbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xuICAgICRnYXBzLXNpZGU6IHJlbS1jYWxjKDMwKTtcblxuICAgICZfX3RvcC13cmFwe1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgcGFkZGluZy1sZWZ0OiAkZ2Fwcy1zaWRlO1xuICAgICAgcGFkZGluZy1yaWdodDogJGdhcHMtc2lkZTtcbiAgICB9XG4gICAgJl9fdG9wLXJpZ2h0e1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygxMCk7XG4gICAgfVxuICB9XG59XG4iLCIubmV3c2xldHRlci1wb3B1cHtcbiAgJGdhcC1zaWRlOiByZW0tY2FsYyg0MCk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgLy8gYmFja2dyb3VuZDogJGNvbG9yLWdyYXktZGFyaztcbiAgYmFja2dyb3VuZDogIzM4MzgzODtcbiAgb3V0bGluZTogbm9uZTtcbiAgcGFkZGluZzogcmVtLWNhbGMoNjApICRnYXAtc2lkZTtcblxuXG4gICZfX21haW57XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogcmVtLWNhbGMoNjApO1xuICB9XG5cbiAgJl9fY29udGVudHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgfVxuXG4gICZfX2Nsb3Nle1xuICAgIGFwcGVhcmFuY2U6IG5vbmUhaW1wb3J0YW50O1xuICAgIC8vIGNvbG9yOiAjZmZmO1xuICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgIEBpbmNsdWRlIGdsb2JhbC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICB0b3A6IHJlbS1jYWxjKDcwKTtcbiAgICByaWdodDogcmVtLWNhbGMoNjQpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAmOmhvdmVye1xuICAgICAgY29sb3I6ICRjb2xvci1ncmF5O1xuICAgIH1cbiAgfVxuICAmX19kZWNvcmF0aW9ue1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG5cbiAgJl9fdGl0bGV7XG4gICAgLy8gZm9udC1zaXplOiByZW0tY2FsYyg1NSk7XG4gICAgLy8gZm9udC1mYW1pbHk6ICRmb250LWJ1dGxlcjtcbiAgICAvLyB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICAvLyBsaW5lLWhlaWdodDogMS4yO1xuXG4gICAgLy8gZm9udC1zdHlsZTogZmxvLWZvb3Rlcl9fbmV3c2xldHRlci1wb3B1cC10aXRsZVxuXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8vIHBhZGRpbmc6IHJlbS1jYWxjKDE2MCkgMCByZW0tY2FsYygyOCkgMDtcbiAgICAmOmFmdGVye1xuICAgICAgY29udGVudDogJ3wnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDI2KTtcbiAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygyOCk7XG4gICAgfVxuICB9XG5cbiAgaW5wdXRbdHlwZV17XG4gICAgY29sb3I6IHdoaXRlO1xuXG4gICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIoMSx3aGl0ZSk7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCl7XG4gICAgJl9fY29udGVudHtcbiAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoNDM3KTtcblxuICAgIH1cbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xuICAgICRnYXAtc2lkZTogcmVtLWNhbGMoMzApO1xuICAgIHBhZGRpbmc6ICRnYXAtc2lkZTtcblxuICAgICZfX3RpdGxlIHtcbiAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDgwKSAwIHJlbS1jYWxjKDI4KSAwO1xuICAgIH1cbiAgfVxufVxuIiwiLmZsby1wb3J0Zm9saW8tMi0tc2VjdGlvbntcblxuICBwYWRkaW5nOiByZW0tY2FsYyg5MikgMDtcblxuICAuZmxvLXNlY3Rpb25fX2NvbnRlbnQge1xuICAgIGZsZXg6IDE7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCl7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBtYXgtaGVpZ2h0OiByZW0tY2FsYyg5MDApO1xuICAgIG1pbi1oZWlnaHQ6IHJlbS1jYWxjKDc1MCk7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoODApO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG5cbn1cblxuLmZsby1wb3J0Zm9saW8tMntcbiAgJGI6ICcuZmxvLXBvcnRmb2xpby0yJztcbiAgJGM6ICdfX2ltZy1kaXNwbGF5LWhvdmVyJztcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXg6IDE7XG5cbiAgJl9fY2F0ZWdvcmllc3tcbiAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg3Nyk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cbiAgJl9fbGluay1ibG9ja3tcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjIpO1xuICAgICY6bGFzdC1vZi10eXBle1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbiAgJl9fbGlua3tcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDM2LjUpO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1idXRsZXI7XG4gICAgJjpiZWZvcmV7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDAuNTtcbiAgICB9XG4gIH1cblxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKXtcbiAgICAmX19pbWctZGlzcGxheS1ob3ZlcntcbiAgICAgIEBpbmNsdWRlIGdsb2JhbC1iZ2ktY292ZXI7XG4gICAgICB3aWR0aDogcmVtLWNhbGMoMjUwKTtcbiAgICAgIGhlaWdodDogcmVtLWNhbGMoMTYyKTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIEBpbmNsdWRlIGdsb2JhbC10cmFuc2l0aW9uKG9wYWNpdHksIHZpc2liaWxpdHkpO1xuICAgIH1cblxuICAgICYjeyRjfS0tdG9wLWxlZnR7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4ycztcbiAgICB9XG4gICAgJiN7JGN9LS10b3AtbGVmdC1hdXRve1xuICAgICAgdG9wOiAxNyU7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICBtYXJnaW4tbGVmdDogcmVtLWNhbGMoMTMpO1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC42cztcblxuICAgIH1cblxuICAgICYjeyRjfS0tdG9wLXJpZ2h0LWF1dG97XG4gICAgICB0b3A6IDU1JTtcbiAgICAgIHJpZ2h0OiA1MCU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDEzKTtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuNHM7XG4gICAgfVxuICAgICYjeyRjfS0tY2VudGVyLXJpZ2h0e1xuICAgICAgdG9wOiA0MCU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDFzO1xuXG4gICAgfVxuICAgICYjeyRjfS0tbGVmdC1ib3R0b217XG4gICAgICBib3R0b206IDclO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuOHM7XG4gICAgfVxuICAgICYjeyRjfS0tcmlnaHQtYm90dG9te1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDEzKTtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDEuMnM7XG4gICAgfVxuXG4gICAgJl9fbGluay1jb250ZW50e1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgJjpob3ZlciAjeyRifV9faW1nLWRpc3BsYXktaG92ZXJ7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuZmxvX3NpZGViYXJ7XG4gIHdpZHRoOiAyNSU7XG4gIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYyg2MCk7XG4gIC5jb2x1bW57XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNDApO1xuICAgIHBhZGRpbmc6IDAgcmVtLWNhbGMoNDApO1xuICAgICY6bGFzdC1jaGlsZHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLmZpZ3VyZS1oaWRlLWltZ3tcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGltZ3tcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC53aWRnZXQge1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDMwKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKXtcbiAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMTcuNSk7XG4gICAgJi0tb24tbGVmdCB7XG4gICAgICBvcmRlcjogLTE7XG4gICAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDQwKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDQwKSByZW0tY2FsYygyMCk7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogcmVtLWNhbGMoNTApO1xuICAgIHJpZ2h0OiAtMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBAaW5jbHVkZSBnbG9iYWwtdHJhbnNpdGlvbihyaWdodCk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgJi0tZGlzcGxheXtcbiAgICAgIHJpZ2h0OiAwO1xuICAgIH1cblxuICB9XG5cbn1cbiIsIi8qIEJPRiBXT09DT01NRVJDRSBTVVBQT1JUICovXG4gIC5mbG8td29vY29tbWVyY2Utd3JhcHtcbiAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDEwMDApO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG5cbiAgLndvb2NvbW1lcmNle1xuICAgIC5xdWFudGl0eXtcbiAgICAgIC5xdHksIGlucHV0W3R5cGU9XCJudW1iZXJcIl17XG4gICAgICAgIHdpZHRoOiA1ZW07XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoMzUpO1xuICAgICAgICBwYWRkaW5nOiAwLjJlbTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZTVlNWU1O1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLndvb2NvbW1lcmNlLWJyZWFkY3J1bWJ7XG4gICAgICBhe1xuICAgICAgICBib3gtc2hhZG93OiAwIDFweCAwO1xuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY2FydHtcbiAgICAgIGlucHV0LmJ1dHRvbjpkaXNhYmxlZHtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3Bhbi5vbnNhbGV7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIHVsLnByb2R1Y3Rze1xuICAgICAgbGkucHJvZHVjdHtcbiAgICAgICAgLnByaWNlIGRlbHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGEuYnV0dG9ue1xuICAgICAgICBwYWRkaW5nOiAwLjZlbSAxZW07XG4gICAgICB9XG4gICAgfVxuICAgIGRpdi5wcm9kdWN0e1xuICAgICAgLnZhcmlhdGlvbnN7XG4gICAgICAgIHRkLmxhYmVse1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cbiAgICAgICAgLnZhbHVle1xuICAgICAgICAgIHNlbGVjdHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5yZXNldF92YXJpYXRpb25ze1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDA7XG4gICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAucHJvZHVjdF9tZXRhe1xuICAgICAgICBhe1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDA7XG4gICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC50YWdnZWRfYXN7XG4gICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5yZWxhdGVke1xuICAgICAgICBoMntcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC53b29jb21tZXJjZS10YWJze1xuICAgICAgICBsaS5hY3RpdmUgYSwgYTpob3ZlciB7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAzcHggMDtcbiAgICAgICAgfVxuICAgICAgICBhe1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDA7XG4gICAgICAgIH1cblxuICAgICAgICAucGFuZWx7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogNGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgdWwudGFic3tcbiAgICAgICAgICBib3JkZXI6IDBweDtcbiAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgIGJvcmRlcjogMHB4O1xuICAgICAgICAgIH1cbiAgICAgICAgICBsaXtcbiAgICAgICAgICAgIGJvcmRlcjogMHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAmLmFjdGl2ZXtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmJlZm9yZSwgJjphZnRlcntcbiAgICAgICAgICAgICAgYm9yZGVyOiAwcHg7XG4gICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxke1xuICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICAuY2hlY2tvdXR7XG4gICAgICAjY3VzdG9tZXJfZGV0YWlsc3tcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuICAgICAgfVxuICAgIH1cbiAgICBwLndvb2NvbW1lcmNlLXRoYW5reW91LW9yZGVyLXJlY2VpdmVke1xuICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLndvb2NvbW1lcmNlLXRoYW5reW91LW9yZGVyLWRldGFpbHN7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg0MCk7XG4gICAgICBsaXtcbiAgICAgICAgbGlzdC1zdHlsZTogZGlzYztcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwcHg7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuXG4gICAgICAgIHN0cm9uZ3tcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFxuICAgIH1cblxuICAgIC53b29jb21tZXJjZS1NeUFjY291bnQtY29udGVudHtcbiAgICAgIC5hZGRyZXNzZXN7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDMwKTtcbiAgICAgIH1cbiAgICAgIC53b29jb21tZXJjZS1NZXNzYWdle1xuICAgICAgICBicntcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbntcbiAgICAgIC5pcy1hY3RpdmV7XG4gICAgICAgIGF7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAzcHggMDtcbiAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAzcHggMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGE6aG92ZXJ7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDA7XG4gICAgICB9XG4gICAgfVxuICAgIC53b29jb21tZXJjZS1BZGRyZXNzLXRpdGxle1xuICAgICAgLmVkaXR7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygzMCk7XG4gICAgICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDA7XG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAzcHggMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gXG5cbiAgICAub3JkZXJfZGV0YWlsc3tcbiAgICAgIC5wcm9kdWN0LW5hbWV7XG4gICAgICAgIGF7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMDtcbiAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAzcHggMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxpIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIH1cbiAgICB9XG4gICAgLmFjdGlvbnN7XG4gICAgICAuY291cG9ue1xuICAgICAgICBpbnB1dFt0eXBlPVwic3VibWl0XCJde1xuICAgICAgICAgIGhlaWdodDogMi42MjVyZW07XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBcbiAgICAgIH1cbiAgICAgIHB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgIH1cbiAgICAgIGlucHV0LmJ1dHRvblt0eXBlPVwic3VibWl0XCJde1xuICAgICAgICAgIGhlaWdodDogMi42MjVyZW07XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgY29sb3I6ICM1MTUxNTE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9ybSwgdGFibGV7XG4gICAgICBwe1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHggIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gICAgLm9yZGVyLW51bWJlcntcbiAgICAgIGF7XG4gICAgICAgIGJye1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgI2NvdXBvbl9jb2Rle1xuICAgICAgbWluLXdpZHRoOiAxNWVtO1xuICAgICAgaGVpZ2h0OiAyLjU1cmVtO1xuICAgIH1cbiAgICAuYnV0dG9ue1xuICAgICAgYnJ7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICAgIC5zaW5nbGVfYWRkX3RvX2NhcnRfYnV0dG9uLmJ1dHRvbiwgLnNpbmdsZV9hZGRfdG9fY2FydF9idXR0b24uYnV0dG9uLmRpc2FibGVke1xuICAgICAgcGFkZGluZzogMC4zNWVtIDAuNWVtO1xuICAgIH1cbiAgICAud2MtcHJvY2VlZC10by1jaGVja291dHtcbiAgICAgIHB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIC5jaGVja291dC1idXR0b257XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gICAgaW5wdXRbdHlwZT0nc3VibWl0J117XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgfVxuXG4vKiBFT0YgV09PQ09NTUVSQ0UgU1VQUE9SVCAqL1xuIiwiLmFib3V0LXBhZ2V7XG4gICRiOiAnLmZsby1zZWN0aW9uJztcblxuICAmLS1vdmVydmlldy1zZWN0aW9ue1xuICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYyg5Mik7XG4gICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDkyKTtcblxuICB9XG4gICYtLWxpbmtzLXNlY3Rpb257XG4gICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDYyKTtcbiAgfVxuXG4gICYtLWxpbmtzLXdpdGgtaW1nLXNlY3Rpb257XG4gICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDg4KTtcbiAgICAjeyRifV9fZGVjb3JhdGlvbntcbiAgICAgIHRvcDogcmVtLWNhbGMoODgpO1xuICAgIH1cbiAgfVxuXG5cbiAgJi0tYWR2ZXJ0aXNlLXNlY3Rpb257XG4gICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDg2KTtcbiAgICAucm93IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgJi0tc2NoZWR1bGUtc2VjdGlvbntcbiAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygxMTApO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICYtLXNjaGVkdWxlLXNlY3Rpb257XG4gICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoNTApO1xuICAgIH1cbiAgfVxuXG59XG4iLCIuYm9keV9oYXNfc2lkZWJhcntcblxuICAuZmxvLWljb25fX3NpZGViYXJ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLmZsb19zaWRlYmFyLS1hY3RpdmUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuIiwiLmZsby1jYXJkLTEtbGlzdHtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCl7XG4gICAgLmNvbHVtbntcbiAgICAgIHBhZGRpbmc6IDAgcmVtLWNhbGMoNDgpO1xuICAgIH1cbiAgICAucm93e1xuICAgICAgbWFyZ2luOiAwIC0je3JlbS1jYWxjKDQ4KX07XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIC5jb2x1bW57XG4gICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg2MCk7XG4gICAgICAmOmZpcnN0LW9mLXR5cGV7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLmZsby1jYXJkLTItbGlzdHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApe1xuICAgIC5jb2x1bW57XG4gICAgICBwYWRkaW5nOiAwICN7cmVtLWNhbGMoMjEpfTtcbiAgICB9XG4gICAgLnJvd3tcbiAgICAgIG1hcmdpbjogMCAtI3tyZW0tY2FsYygyMSl9O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAuY29sdW1ue1xuICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoNjApO1xuICAgICAgJjpmaXJzdC1vZi10eXBle1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi5mbG8tZ3JpZC0ye1xuICAkYjogXCIuZmxvLWdyaWQtMlwiO1xuXG4gIHdpZHRoOiAxMDAlO1xuICAuY29sdW1ue1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTM1LjUpO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApe1xuXG4gICAgJl9fcm93e1xuICAgICAgbWF4LXdpZHRoOiByZW0tY2FsYyg3NTApO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuICB9XG59XG4iLCIuZmxvLWdyaWR7XG4gICRnYXAtc2lkZTogcmVtLWNhbGMoMzcpO1xuXG4gIC5jb2x1bW57XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoOTguNSk7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCl7XG4gICAgLmNvbHVtbntcbiAgICAgIHBhZGRpbmc6IDAgJGdhcC1zaWRlO1xuICAgIH1cbiAgICAucm93e1xuICAgICAgbWFyZ2luOiAwIC0jeyRnYXAtc2lkZX07XG4gICAgfVxuICB9XG5cbn1cbiIsIi5mbG8taWNvbi1tb3VzZS1zY3JvbGwge1xuICAkYjogXCIuZmxvLWljb24tbW91c2Utc2Nyb2xsXCI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IHJlbS1jYWxjKDI0KTtcbiAgaGVpZ2h0OiByZW0tY2FsYyg0MCk7XG4gIHRvcDogNTAlO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoMjUpO1xuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiByZW0tY2FsYyg0KTtcbiAgICBoZWlnaHQ6IHJlbS1jYWxjKDYpO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKC0yKTtcbiAgICB0b3A6IHJlbS1jYWxjKDgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjVzO1xuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBzY3JvbGw7XG4gIH1cblxuICBAYXQtcm9vdCB7XG5cbiAgICBAa2V5ZnJhbWVzIHNjcm9sbCB7XG4gICAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCN7cmVtLWNhbGMoMTYpfSk7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxufVxuIiwiLy8gSU5URVJBQ1RJT04gQkVUV0VFTiBGTE8gSEVBREVSIEFORCBGTE8gUEFHRSBIRVJPXG5cbkBpbXBvcnQgXCJmbG8taWNvbi1tb3VzZS1zY3JvbGxcIjtcblxuLmZsby1oZWFkZXItYW5kLWZsby1wYWdlLWhlcm8ge1xuICAkYjogXCIuZmxvLWhlYWRlci1hbmQtZmxvLXBhZ2UtaGVyb1wiO1xuXG4gIGhlaWdodDogMTAwdmg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgJi0taGVhZGVyLXRvcCB7XG4gICAgLmZsby1oZWFkZXIsXG4gICAgLnN0aWNreS13cmFwcGVye1xuICAgICAgb3JkZXI6IC0xO1xuICAgIH1cbiAgfVxuICAmOm5vdCgjeyRifS0taGVhZGVyLXRvcCkge1xuICAgIC5mbG8taGVhZGVyIHtcblxuICAgICAgJl9fbWVudSB7XG4gICAgICAgICYgPiB1bCA+IC5tZW51LWl0ZW0sXG4gICAgICAgICYgPiBkaXYgPiB1bCA+IC5tZW51LWl0ZW0ge1xuICAgICAgICAgICYgPiB1bHtcbiAgICAgICAgICAgIHRvcDogaW5pdGlhbDtcbiAgICAgICAgICAgIGJvdHRvbTogMTAwJTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cbiAgfVxuXG4gIC5mbG8tcGFnZS1oZXJvIHtcblxuICB9XG4gIC5mbG8taGVhZGVyIHtcblxuICB9XG5cbiAgLmZsby1wYWdlLWhlcm8ge1xuICAgIGZsZXg6IDE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG4gIC5mbG8tc2VjdGlvbl9fdGl0bGUtd3JhcC0tcGFnZS1oZXJvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cbiAgLmZsby1zZWN0aW9uX19oYW1idXJnZXIge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbiAgLmZsby1zZWN0aW9uX19zY3JvbGwtZG93bntcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBhbmltYXRpb246IDRzIHNjcm9sbGRvd24gaW5maW5pdGU7XG4gIH1cbiAgQGF0LXJvb3Qge1xuICAgIEBrZXlmcmFtZXMgc2Nyb2xsZG93biB7XG4gICAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgfVxuICAgICAgNTAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCA1MCUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAgICZfX3NsaWRlciB7XG4gICAgICAmLFxuICAgICAgLnNsaWNrLWxpc3QsXG4gICAgICAuc2xpY2stdHJhY2sge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICAgICAgJl9fc2xpZGUtY29udGVudCB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuXG5cbiAgICAuZmxvLWhlYWRlciB7XG5cbiAgICB9XG4gIH1cblxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgIC5mbG8tcGFnZS1oZXJvIHtcblxuICAgIH1cbiAgICAuZmxvLWhlYWRlciB7XG4gICAgfVxuICAgIC5mbG8tc2VjdGlvbiB7XG4gICAgICAmX190aXRsZS13cmFwIHtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoNDApIDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuZmxvLWluc3RhZ3JhbS1pbWFnZXNfX3NsaWRlcntcbiAgcGFkZGluZzogMCByZW0tY2FsYygzMCk7XG4gIG1hcmdpbjogMDtcblxuICAuZmxvLWljb25fX2Fycm93LWxlZnR7XG4gICAgbGVmdDogMDtcbiAgfVxuICAuZmxvLWljb25fX2Fycm93LXJpZ2h0e1xuICAgIHJpZ2h0OiAwO1xuICB9XG59IiwiLmZsby1pbnN0YWdyYW0td2l0aC1mb3Jte1xuICB3aWR0aDogMTAwJTtcblxuICAucm93e1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApe1xuXG4gICAgLmZsby1mb3Jte1xuICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMjIpO1xuICAgICAgcGFkZGluZzogMCByZW0tY2FsYyg2Mik7XG4gICAgfVxuXG4gICAgLmNvbHVtbntcbiAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoNDApO1xuICAgICAgJjpsYXN0LW9mLXR5cGV7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcbiAgICAucm93e1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgIH1cbiAgICAuY29sdW1ue1xuICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoNTUpO1xuICAgICAgJjpsYXN0LW9mLXR5cGV7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZsby1zaGNvZGUtaW5zdGdtLWNvbnRhaW5lciB7XG4gICAgICBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cbiIsIi5mbG8tcGFnZS1oYXMtc2lkZWJhcntcblxuICAmLS1tYXJnaW4tYm90dG9te1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDYwKTtcbiAgfVxuICAmX19jb2x1bW57XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNDApO1xuICAgIHBhZGRpbmc6IDAgcmVtLWNhbGMoNDApO1xuICAgICY6bGFzdC1jaGlsZHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLmZpZ3VyZS1oaWRlLWltZ3tcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGltZ3tcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKXtcbiAgICAgZGlzcGxheTogZmxleDtcbiAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAmX19tYWlue1xuICAgICAgIHdpZHRoOiA3NSU7XG4gICAgIH1cbiAgICAgJl9fc2lkZWJhcntcbiAgICAgICB3aWR0aDogMjUlO1xuICAgICB9XG4gICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XG5cbiAgICAmX19zaWRlYmFye1xuICAgICAgcGFkZGluZzogcmVtLWNhbGMoNjApIDA7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB0b3A6IHJlbS1jYWxjKDUwKTtcbiAgICAgIHJpZ2h0OiAtMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICBAaW5jbHVkZSBnbG9iYWwtdHJhbnNpdGlvbihyaWdodCk7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAuc2lkZWJhci1kaXNwbGF5e1xuICAgICAgcmlnaHQ6IDA7XG4gICAgfVxuXG4gIH1cblxufSIsIi8vU2V0IFBhZGRpbmdzXG4uZmxvLXNlY3Rpb257XG4gICYtLWZpcnN0LWpvdXJuYWwtMy1jYXJke1xuICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygxMTQpO1xuICB9XG4gICYtLWpvdXJuYWwtMy1jYXJke1xuICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygxNTIpO1xuICB9XG59IiwiLmZsb19wb3N0X3BhZ2V7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcblxuICAgIC5mbG8tYmxvY2stdGl0bGUtd3JhcCxcbiAgICAuZmxvLXBvc3QsXG4gICAgLmNvbW1lbnRzLWJsb2Nre1xuICAgICAgd2lkdGg6IHJlbS1jYWxjKDc1MCk7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG5cbiAgICAuZmxvLXBvc3QtZm9ybXtcbiAgICAgIHdpZHRoOiByZW0tY2FsYyg1MDApO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuXG4gIH1cblxuICB9XG5cbi8vU2V0IE1hcmdpbnNcbi5mbG8tc2VjdGlvbntcblxuICAgJi0tcG9zdC1jb21tZW50c3tcbiAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoNzQpO1xuICB9XG5cbiAgJi0tcG9zdC1mb3JtIHtcbiAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoNjApO1xuICB9XG5cbn0iLCIuZmxvLWltZy10ZXh0e1xuXHQuaW1hZ2Utd3JhcHBlcntcblx0XHRwe1xuXHRcdFx0bWFyZ2luOiAwcHggIWltcG9ydGFudDtcblx0XHR9XG5cdH1cbn1cbi5jb3Ntby1ib3h7XG5cdHBhZGRpbmc6IDhweCAxMHB4O1xufVxuXG4uY29zbW8tdGFic3tcblx0LmNvc21vLW5hdiBsaSwgLnVpLXRhYnMtYWN0aXZle1xuXHRcdFxuXHRcdGF7XG5cdFx0XHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0XHR9XG5cdH1cbn1cbiIsIi5mbG8tc2VjdGlvbntcbiAgJi0tam91cm5hbC1ncmlkLXNlY3Rpb257XG4gICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDg2LjUpO1xuICB9XG59IiwiLnBhZ2UtZGVmYXVsdCB7XG4gIGJvZHkgLmZsby1zZWN0aW9uIHtcbiAgICAmX190aXRsZS13cmFwIHtcbiAgICAgIG9yZGVyOiAtMTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vU2V0IE1hcmdpbnNcbi5mbG8tc2VjdGlvbntcblxuICAvL0ZsbyBQb3J0Zm9saW8gMVxuICAmLS1wb3J0Zm9saW8tMS10aXRsZXtcbiAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoNTQpO1xuICB9XG5cbiAgJi0tcG9ydGZvbGlvLTEtZmlyc3QtY2F0ZWdvcnl7XG4gICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDM2LjUpO1xuICB9XG4gICYtLXBvcnRmb2xpby0yLWNhdGVnb3J5e1xuICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYyg4OCk7XG4gIH1cblxuICAmLS1wb3J0Zm9saW8tMi1sYXN0LWNhdGVnb3J5e1xuICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygxMTUpO1xuICB9XG5cblxuICAmLS1wb3J0Zm9saW8tcG9zdHtcbiAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoNDApO1xuICB9XG4gICYtLXBvcnRmb2xpby1jYXJkc3tcbiAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMTY1KTtcbiAgfVxuXG4gICYtLXBvcnRmb2xpby1sYXN0LXNlY3Rpb257XG4gICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDEzMCk7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICYtLXBvcnRmb2xpby1ncmlkLWltYWdlc3tcbiAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYyg2NSk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcbiAgICAmLS1wb3J0Zm9saW8tZ3JpZC1pbWFnZXN7XG4gICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMzApO1xuICAgIH1cbiAgfVxufVxuIiwiLmZsby1hYm91dC1ibG9ja3tcbiAgJGI6IFwiLmZsby1hYm91dC1ibG9ja1wiO1xuICAkZ2FwLXNpZGU6IHJlbS1jYWxjKDMwKTtcblxuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgJl9fZGVjb3JhdGlvbntcbiAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDU2KTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0byByZW0tY2FsYygzMCk7XG4gIH1cbiAgJl9faW1ne1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJl9fdGl0bGV7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LW1hbGFya2V5O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgJl9fY29udGVudC10ZXh0e1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1jYXNsb247XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApe1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAmX190ZXh0e1xuICAgICAgcGFkZGluZzogMCAkZ2FwLXNpZGU7XG4gICAgfVxuXG4gICAgJl9faXRlbS1pbWd7XG4gICAgICB3aWR0aDogMzQlO1xuICAgIH1cbiAgICAmX19pdGVtLXRleHR7XG4gICAgICB3aWR0aDogNjYlO1xuICAgIH1cblxuICAgICZfX3RpdGxle1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMDkpO1xuICAgIH1cblxuICAgICZfX2NvbnRlbnQtdGV4dHtcbiAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDYwKTtcbiAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoNDAwKTtcbiAgICB9XG5cbiAgICAmX19pbWd7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBtaW4taGVpZ2h0OiByZW0tY2FsYyg1NDgpO1xuICAgICAgbWF4LWhlaWdodDogcmVtLWNhbGMoNjYwKTtcbiAgICAgIEBpbmNsdWRlIGdsb2JhbC1iZ2ktY292ZXI7XG4gICAgICBpbWd7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgJl9faW1ne1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fdGl0bGV7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDU4KTtcbiAgICB9XG5cbiAgICAmX19jb250ZW50LXRleHR7XG4gICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg2MC8yKTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgJl9fdGV4dHtcbiAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDQwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi5mbG8tc2VjdGlvbi0tY29udGFjdC1ibG9ja3tcbiAgJGI6IFwiLmZsby1zZWN0aW9uXCI7XG4gIC5mbG8tZm9vdGVyX19ib3R0b20ge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cbiIsIi5mbG8tYS10ZXh0LXdpdGgtaW1hZ2V7XG4gICRiOiBcIi5mbG8tYS10ZXh0LXdpdGgtaW1hZ2VcIjtcbiAgJGdhcC1zaWRlOiByZW0tY2FsYygzMCk7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICZfX2ltZ3tcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gICZfX3RpdHRsZS1vZmZzZXR7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDU7XG4gIH1cblxuXG4gICZfX2NvbnRlbnQtdGl0bGV7XG4gICAgLy8gZm9udC1zaXplOiByZW0tY2FsYygyNCk7XG4gICAgLy8gZm9udC1mYW1pbHk6ICRmb250LWJ1dGxlcjtcbiAgICAvLyBsaW5lLWhlaWdodDogMS4yO1xuXG4gICAgLy8gZm9udC1zdHlsZTogZmxvLWEtdGV4dC13aXRoLWltYWdlX190aXRsZVxuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmX19kYXRle1xuICAgIC8vIGZvbnQtZmFtaWx5OiAkZm9udC1jYXNsb247XG4gICAgLy8gZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAvLyBmb250LXNpemU6IHJlbS1jYWxjKDgpO1xuICAgIC8vIGxldHRlci1zcGFjaW5nOiAwLjY3NWVtO1xuICAgIC8vIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAvLyBmb250LXN0eWxlOiBmbG8tYS10ZXh0LXdpdGgtaW1hZ2VfX3ByZXRpdGxlXG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gICZfX2NvbnRlbnQtdGV4dHtcbiAgICAvLyBmb250LWZhbWlseTogJGZvbnQtY2FzbG9uO1xuICAgIC8vIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuICAgIC8vIGxpbmUtaGVpZ2h0OiAxLjY7XG5cbiAgICAvLyBmb250LXN0eWxlOiBmbG8tYS10ZXh0LXdpdGgtaW1hZ2VfX2NvbnRlbnRcblxuICB9XG5cbiAgJl9fdGV4dC1saW5lLWxlZnR7XG4gICAgI3skYn1fX2RhdGV7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzMik7XG4gICAgfVxuICAgICN7JGJ9X19jb250ZW50LXRleHR7XG4gICAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDQwKTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICY6YmVmb3Jle1xuICAgICAgICBjb250ZW50OiAn4pSAJztcbiAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDQwKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fbGluayB7XG5cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKXtcbiAgICAkZ2FwLXNpZGU6IHJlbS1jYWxjKDQwKTtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgJl9faXRlbXtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgfVxuXG4gICAgJl9fZGF0ZSB7XG4gICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDE5MCk7XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICBwYWRkaW5nOiAwICRnYXAtc2lkZTtcbiAgICB9XG5cbiAgICAmX19jb250ZW50LXRleHR7XG4gICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg3OCk7XG4gICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgICAgbWF4LXdpZHRoOiByZW0tY2FsYyg0MDApO1xuICAgIH1cblxuICAgICZfX3RpdHRsZS1vZmZzZXR7XG4gICAgICBsZWZ0OiAtI3tyZW0tY2FsYyg4MCl9O1xuICAgIH1cblxuICAgICZfX2ltZyB7XG4gICAgICBoZWlnaHQ6IHJlbS1jYWxjKDQyOCk7XG4gICAgICBAaW5jbHVkZSBnbG9iYWwtYmdpLWNvdmVyO1xuICAgICAgaW1ne1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQtbGluZS1sZWZ0IHtcbiAgICAgICN7JGJ9X19kYXRlIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYyg2MCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDY1KTtcbiAgICAgIH1cbiAgICAgICN7JGJ9X19jb250ZW50LXRleHQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDYwKTtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIHdpZHRoOiByZW0tY2FsYyg2MCk7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICZfX2NvbnRlbnQtdGl0bGV7XG4gICAgICBtYXgtd2lkdGg6IDk4JTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDIwKTtcblxuICAgICZfX2ltZ3tcbiAgICB9XG5cbiAgICAmX19pdGVte1xuICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMzApO1xuICAgICAgJjpmaXJzdC1vZi10eXBle1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQtdGl0bGUge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjUpO1xuICAgIH1cbiAgICAmX19jb250ZW50LXRleHQge1xuXG4gICAgfVxuXG4gICAgJl9fZGF0ZXtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgLnN0aWNreXtcbiAgICAgIHBvc2l0aW9uOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCIuZmxvLWItdGV4dC13aXRoLWltYWdle1xuICAkYjogXCIuZmxvLWItdGV4dC13aXRoLWltYWdlXCI7XG4gICRnYXAtc2lkZTogcmVtLWNhbGMoMzApO1xuICAkaW1nLWdhcDogcmVtLWNhbGMoMTAwKTtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cblxuICAmX19pbWd7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuXG4gICZfX3RpdHRsZXtcbiAgICAvLyBmb250LWZhbWlseTogJGZvbnQtbWFsYXJrZXk7XG4gICAgLy8gbGluZS1oZWlnaHQ6IDEuMjtcblxuICAgIC8vIGZvbnQtc3R5bGU6IGZsby1iLXRleHQtd2l0aC1pbWFnZV9fdGl0bGVcbiAgfVxuICAgICZfX3RpdHRsZS1vZmZzZXR7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiA5O1xuICAgIH1cblxuICAmX19jb250ZW50LXRleHR7XG4gICAgLy8gZm9udC1mYW1pbHk6ICRmb250LWNhc2xvbjtcbiAgICAvLyBmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbiAgICAvLyBsaW5lLWhlaWdodDogMS42O1xuXG4gICAgLy8gZm9udC1zdHlsZTogZmxvLWItdGV4dC13aXRoLWltYWdlX19jb250ZW50XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgfVxuXG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApe1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICZfX3RleHR7XG4gICAgICBwYWRkaW5nOiAwICRnYXAtc2lkZTtcbiAgICB9XG5cbiAgICAmX19pdGVte1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG4gICAgJl9faXRlbS0taW1ne1xuICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoMTAwKTtcbiAgICB9XG5cbiAgICAmX190aXR0bGUtb2Zmc2V0e1xuICAgICAgbGVmdDogLSN7cmVtLWNhbGMoMTUyKX07XG4gICAgfVxuXG4gICAgJl9fdGl0dGxle1xuICAgICAgLy8gZm9udC1zaXplOiByZW0tY2FsYygxMDkpO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAmX19idG57XG4gICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygzNSk7XG4gICAgfVxuXG4gICAgJl9fY29udGVudC10ZXh0e1xuICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMzApO1xuICAgICAgbWF4LXdpZHRoOiByZW0tY2FsYyg0MDApO1xuICAgIH1cblxuXG4gICAgJl9faW1ne1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbWluLWhlaWdodDogcmVtLWNhbGMoNTA1KTtcbiAgICAgIG1heC1oZWlnaHQ6IHJlbS1jYWxjKDc2MCk7XG4gICAgICBAaW5jbHVkZSBnbG9iYWwtYmdpLWNvdmVyO1xuICAgICAgaW1ne1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICZfX2ltZ3tcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgLy8gd2lkdGg6IGNhbGMoMTAwJSAtICN7cmVtLWNhbGMoNTApKjJ9KTtcbiAgICAgIHBvc2l0aW9uOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJl9fdGl0dGxle1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYyg1OCk7XG4gICAgfVxuICAgICAgJl9fdGl0dGxlLW9mZnNldHtcbiAgICAgICAgbWFyZ2luLXRvcDogLSN7cmVtLWNhbGMoMjApfTtcbiAgICAgIH1cblxuICAgICZfX2J0bntcbiAgICAgIC8vZGlzcGxheTogbm9uZTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuXG4gICAgJl9fY29udGVudC10ZXh0e1xuICAgICAgbWFyZ2luOiByZW0tY2FsYyg2MC8yKSBhdXRvIDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICB9XG59XG4iLCIuc2VjdGlvbi10ZXh0LWNvbnRlbnQge1xuICAkYjogXCIuc2VjdGlvbi10ZXh0LWNvbnRlbnRcIjtcblxuICBtYXJnaW46IDAgYXV0bztcblxuICAmX190aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gICZfX2NvbnRlbnQge1xuICAgICYgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApe1xuICAgICZfX3RpdGxlIHtcblxuICAgIH1cbiAgICAmX19jb250ZW50IHtcblxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XG4gICAgd2lkdGg6IDEwMCUhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDQwKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMjApIWltcG9ydGFudDtcbiAgICAmX190aXRsZSB7XG5cbiAgICB9XG4gICAgJl9fY29udGVudCB7XG5cbiAgICB9XG4gICAgJi0tbm8tbWFyZ2luLWJvdHRvbXtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG59XG4iXX0= */
