@charset "UTF-8";
/**
 * 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.
 */
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 */
  -webkit-text-decoration: underline dotted;
          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=40em&large=64em&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: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: normal;
  line-height: 1.6;
  color: #333333;
  -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: 3px;
}

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

.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: 3px;
  background: transparent;
  line-height: 1;
}
[data-whatinput=mouse] button {
  outline: 0;
}

pre {
  overflow: auto;
}

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
}

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

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

.row {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  display: flex;
  flex-flow: row wrap;
}
.row .row {
  margin-right: -0.625rem;
  margin-left: -0.625rem;
}
@media print, screen and (min-width: 40em) {
  .row .row {
    margin-right: -0.9375rem;
    margin-left: -0.9375rem;
  }
}
@media print, screen and (min-width: 64em) {
  .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.collapse > .column, .row.collapse > .columns {
  padding-right: 0;
  padding-left: 0;
}
.row.is-collapse-child, .row.collapse > .column > .row, .row.collapse > .columns > .row {
  margin-right: 0;
  margin-left: 0;
}

.column, .columns {
  flex: 1 1 0px;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  min-width: 0;
}
@media print, screen and (min-width: 40em) {
  .column, .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

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

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

.flex-container {
  display: flex;
}

.flex-child-auto {
  flex: 1 1 auto;
}

.flex-child-grow {
  flex: 1 0 auto;
}

.flex-child-shrink {
  flex: 0 1 auto;
}

.flex-dir-row {
  flex-direction: row;
}

.flex-dir-row-reverse {
  flex-direction: row-reverse;
}

.flex-dir-column {
  flex-direction: column;
}

.flex-dir-column-reverse {
  flex-direction: column-reverse;
}

.small-1 {
  flex: 0 0 8.3333333333%;
  max-width: 8.3333333333%;
}

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

.small-2 {
  flex: 0 0 16.6666666667%;
  max-width: 16.6666666667%;
}

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

.small-3 {
  flex: 0 0 25%;
  max-width: 25%;
}

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

.small-4 {
  flex: 0 0 33.3333333333%;
  max-width: 33.3333333333%;
}

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

.small-5 {
  flex: 0 0 41.6666666667%;
  max-width: 41.6666666667%;
}

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

.small-6 {
  flex: 0 0 50%;
  max-width: 50%;
}

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

.small-7 {
  flex: 0 0 58.3333333333%;
  max-width: 58.3333333333%;
}

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

.small-8 {
  flex: 0 0 66.6666666667%;
  max-width: 66.6666666667%;
}

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

.small-9 {
  flex: 0 0 75%;
  max-width: 75%;
}

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

.small-10 {
  flex: 0 0 83.3333333333%;
  max-width: 83.3333333333%;
}

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

.small-11 {
  flex: 0 0 91.6666666667%;
  max-width: 91.6666666667%;
}

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

.small-12 {
  flex: 0 0 100%;
  max-width: 100%;
}

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

.small-order-1 {
  order: 1;
}

.small-order-2 {
  order: 2;
}

.small-order-3 {
  order: 3;
}

.small-order-4 {
  order: 4;
}

.small-order-5 {
  order: 5;
}

.small-order-6 {
  order: 6;
}

.small-up-1 {
  flex-wrap: wrap;
}
.small-up-1 > .column, .small-up-1 > .columns {
  flex: 0 0 100%;
  max-width: 100%;
}

.small-up-2 {
  flex-wrap: wrap;
}
.small-up-2 > .column, .small-up-2 > .columns {
  flex: 0 0 50%;
  max-width: 50%;
}

.small-up-3 {
  flex-wrap: wrap;
}
.small-up-3 > .column, .small-up-3 > .columns {
  flex: 0 0 33.3333333333%;
  max-width: 33.3333333333%;
}

.small-up-4 {
  flex-wrap: wrap;
}
.small-up-4 > .column, .small-up-4 > .columns {
  flex: 0 0 25%;
  max-width: 25%;
}

.small-up-5 {
  flex-wrap: wrap;
}
.small-up-5 > .column, .small-up-5 > .columns {
  flex: 0 0 20%;
  max-width: 20%;
}

.small-up-6 {
  flex-wrap: wrap;
}
.small-up-6 > .column, .small-up-6 > .columns {
  flex: 0 0 16.6666666667%;
  max-width: 16.6666666667%;
}

.small-up-7 {
  flex-wrap: wrap;
}
.small-up-7 > .column, .small-up-7 > .columns {
  flex: 0 0 14.2857142857%;
  max-width: 14.2857142857%;
}

.small-up-8 {
  flex-wrap: wrap;
}
.small-up-8 > .column, .small-up-8 > .columns {
  flex: 0 0 12.5%;
  max-width: 12.5%;
}

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

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

@media print, screen and (min-width: 40em) {
  .medium-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%;
  }

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

  .medium-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

  .medium-offset-1 {
    margin-left: 8.3333333333%;
  }

  .medium-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .medium-offset-2 {
    margin-left: 16.6666666667%;
  }

  .medium-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

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

  .medium-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%;
  }

  .medium-offset-4 {
    margin-left: 33.3333333333%;
  }

  .medium-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .medium-offset-5 {
    margin-left: 41.6666666667%;
  }

  .medium-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%;
  }

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

  .medium-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%;
  }

  .medium-offset-7 {
    margin-left: 58.3333333333%;
  }

  .medium-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }

  .medium-offset-8 {
    margin-left: 66.6666666667%;
  }

  .medium-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%;
  }

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

  .medium-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%;
  }

  .medium-offset-10 {
    margin-left: 83.3333333333%;
  }

  .medium-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .medium-offset-11 {
    margin-left: 91.6666666667%;
  }

  .medium-order-1 {
    order: 1;
  }

  .medium-order-2 {
    order: 2;
  }

  .medium-order-3 {
    order: 3;
  }

  .medium-order-4 {
    order: 4;
  }

  .medium-order-5 {
    order: 5;
  }

  .medium-order-6 {
    order: 6;
  }

  .medium-up-1 {
    flex-wrap: wrap;
  }
  .medium-up-1 > .column, .medium-up-1 > .columns {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .medium-up-2 {
    flex-wrap: wrap;
  }
  .medium-up-2 > .column, .medium-up-2 > .columns {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .medium-up-3 {
    flex-wrap: wrap;
  }
  .medium-up-3 > .column, .medium-up-3 > .columns {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

  .medium-up-4 {
    flex-wrap: wrap;
  }
  .medium-up-4 > .column, .medium-up-4 > .columns {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .medium-up-5 {
    flex-wrap: wrap;
  }
  .medium-up-5 > .column, .medium-up-5 > .columns {
    flex: 0 0 20%;
    max-width: 20%;
  }

  .medium-up-6 {
    flex-wrap: wrap;
  }
  .medium-up-6 > .column, .medium-up-6 > .columns {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

  .medium-up-7 {
    flex-wrap: wrap;
  }
  .medium-up-7 > .column, .medium-up-7 > .columns {
    flex: 0 0 14.2857142857%;
    max-width: 14.2857142857%;
  }

  .medium-up-8 {
    flex-wrap: wrap;
  }
  .medium-up-8 > .column, .medium-up-8 > .columns {
    flex: 0 0 12.5%;
    max-width: 12.5%;
  }
}
@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .medium-expand {
    flex: 1 1 0px;
  }
}
@media print, screen and (min-width: 40em) {
  .medium-flex-dir-row {
    flex-direction: row;
  }
}
@media print, screen and (min-width: 40em) {
  .medium-flex-dir-row-reverse {
    flex-direction: row-reverse;
  }
}
@media print, screen and (min-width: 40em) {
  .medium-flex-dir-column {
    flex-direction: column;
  }
}
@media print, screen and (min-width: 40em) {
  .medium-flex-dir-column-reverse {
    flex-direction: column-reverse;
  }
}
@media print, screen and (min-width: 40em) {
  .medium-flex-child-auto {
    flex: 1 1 auto;
  }
}
@media print, screen and (min-width: 40em) {
  .medium-flex-child-grow {
    flex: 1 0 auto;
  }
}
@media print, screen and (min-width: 40em) {
  .medium-flex-child-shrink {
    flex: 0 1 auto;
  }
}
.row.medium-unstack > .column, .row.medium-unstack > .columns {
  flex: 0 0 100%;
}
@media print, screen and (min-width: 40em) {
  .row.medium-unstack > .column, .row.medium-unstack > .columns {
    flex: 1 1 0px;
  }
}

@media print, screen and (min-width: 40em) {
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-right: 0;
    padding-left: 0;
  }
}
@media print, screen and (min-width: 40em) {
  .medium-uncollapse > .column, .medium-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}
@media print, screen and (min-width: 64em) {
  .large-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%;
  }

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

  .large-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

  .large-offset-1 {
    margin-left: 8.3333333333%;
  }

  .large-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .large-offset-2 {
    margin-left: 16.6666666667%;
  }

  .large-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

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

  .large-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%;
  }

  .large-offset-4 {
    margin-left: 33.3333333333%;
  }

  .large-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .large-offset-5 {
    margin-left: 41.6666666667%;
  }

  .large-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%;
  }

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

  .large-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%;
  }

  .large-offset-7 {
    margin-left: 58.3333333333%;
  }

  .large-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }

  .large-offset-8 {
    margin-left: 66.6666666667%;
  }

  .large-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%;
  }

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

  .large-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%;
  }

  .large-offset-10 {
    margin-left: 83.3333333333%;
  }

  .large-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .large-offset-11 {
    margin-left: 91.6666666667%;
  }

  .large-order-1 {
    order: 1;
  }

  .large-order-2 {
    order: 2;
  }

  .large-order-3 {
    order: 3;
  }

  .large-order-4 {
    order: 4;
  }

  .large-order-5 {
    order: 5;
  }

  .large-order-6 {
    order: 6;
  }

  .large-up-1 {
    flex-wrap: wrap;
  }
  .large-up-1 > .column, .large-up-1 > .columns {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .large-up-2 {
    flex-wrap: wrap;
  }
  .large-up-2 > .column, .large-up-2 > .columns {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .large-up-3 {
    flex-wrap: wrap;
  }
  .large-up-3 > .column, .large-up-3 > .columns {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

  .large-up-4 {
    flex-wrap: wrap;
  }
  .large-up-4 > .column, .large-up-4 > .columns {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .large-up-5 {
    flex-wrap: wrap;
  }
  .large-up-5 > .column, .large-up-5 > .columns {
    flex: 0 0 20%;
    max-width: 20%;
  }

  .large-up-6 {
    flex-wrap: wrap;
  }
  .large-up-6 > .column, .large-up-6 > .columns {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

  .large-up-7 {
    flex-wrap: wrap;
  }
  .large-up-7 > .column, .large-up-7 > .columns {
    flex: 0 0 14.2857142857%;
    max-width: 14.2857142857%;
  }

  .large-up-8 {
    flex-wrap: wrap;
  }
  .large-up-8 > .column, .large-up-8 > .columns {
    flex: 0 0 12.5%;
    max-width: 12.5%;
  }
}
@media print, screen and (min-width: 64em) and (min-width: 64em) {
  .large-expand {
    flex: 1 1 0px;
  }
}
@media print, screen and (min-width: 64em) {
  .large-flex-dir-row {
    flex-direction: row;
  }
}
@media print, screen and (min-width: 64em) {
  .large-flex-dir-row-reverse {
    flex-direction: row-reverse;
  }
}
@media print, screen and (min-width: 64em) {
  .large-flex-dir-column {
    flex-direction: column;
  }
}
@media print, screen and (min-width: 64em) {
  .large-flex-dir-column-reverse {
    flex-direction: column-reverse;
  }
}
@media print, screen and (min-width: 64em) {
  .large-flex-child-auto {
    flex: 1 1 auto;
  }
}
@media print, screen and (min-width: 64em) {
  .large-flex-child-grow {
    flex: 1 0 auto;
  }
}
@media print, screen and (min-width: 64em) {
  .large-flex-child-shrink {
    flex: 0 1 auto;
  }
}
.row.large-unstack > .column, .row.large-unstack > .columns {
  flex: 0 0 100%;
}
@media print, screen and (min-width: 64em) {
  .row.large-unstack > .column, .row.large-unstack > .columns {
    flex: 1 1 0px;
  }
}

@media print, screen and (min-width: 64em) {
  .large-collapse > .column, .large-collapse > .columns {
    padding-right: 0;
    padding-left: 0;
  }
}
@media print, screen and (min-width: 64em) {
  .large-uncollapse > .column, .large-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}
.shrink {
  flex: 0 0 auto;
  max-width: 100%;
}

.column-block {
  margin-bottom: 1.25rem;
}
.column-block > :last-child {
  margin-bottom: 0;
}
@media print, screen and (min-width: 40em) {
  .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: "Source Sans Pro", "Helvetica Neue", Helvetica, 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: 40em) {
  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: #1A5099;
  text-decoration: none;
  cursor: pointer;
}
a:hover, a:focus {
  color: #164584;
}
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, ul ol, ol ul, 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, abbr[title] {
  border-bottom: 1px dotted #333333;
  cursor: help;
  text-decoration: none;
}

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: #333333;
}

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

.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;
}

ul.no-bullet, ol.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: 40em) {
  .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: 64em) {
  .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;
  }

  .print-break-inside {
    page-break-inside: auto;
  }
}
[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.5375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  border: 1px solid #cacaca;
  border-radius: 3px;
  background-color: #fefefe;
  box-shadow: inset 0 1px 2px rgba(51, 51, 51, 0.1);
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.6;
  color: #333333;
  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::-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: 3px;
}

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: #333333;
}
label.middle {
  margin: 0 0 1rem;
  padding: 0.5625rem 0;
}

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

.input-group {
  display: flex;
  width: 100%;
  margin-bottom: 1rem;
  align-items: stretch;
}
.input-group > :first-child {
  border-radius: 3px 0 0 3px;
}
.input-group > :last-child > * {
  border-radius: 0 3px 3px 0;
}

.input-group-button a,
.input-group-button input,
.input-group-button button,
.input-group-button label, .input-group-button, .input-group-field, .input-group-label {
  margin: 0;
  white-space: nowrap;
}

.input-group-label {
  padding: 0 1rem;
  border: 1px solid #cacaca;
  background: #e6e6e6;
  color: #333333;
  text-align: center;
  white-space: nowrap;
  display: flex;
  flex: 0 0 auto;
  align-items: center;
}
.input-group-label:first-child {
  border-right: 0;
}
.input-group-label:last-child {
  border-left: 0;
}

.input-group-field {
  border-radius: 0;
  flex: 1 1 0px;
  height: auto;
  min-width: 0;
}

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  flex: 0 0 auto;
}
.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;
}

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.5375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 1px solid #cacaca;
  border-radius: 3px;
  background-color: #fefefe;
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.6;
  color: #333333;
  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: #ec5840;
  background-color: #fcedeb;
}
.is-invalid-input:not(:focus)::-moz-placeholder {
  color: #ec5840;
}
.is-invalid-input:not(:focus):-ms-input-placeholder {
  color: #ec5840;
}
.is-invalid-input:not(:focus)::placeholder {
  color: #ec5840;
}

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

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

.button {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 1rem 0;
  font-family: inherit;
  padding: 0.85em 1em;
  -webkit-appearance: none;
  border: 1px solid transparent;
  border-radius: 3px;
  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: #1A5099;
  color: #fefefe;
}
[data-whatinput=mouse] .button {
  outline: 0;
}
.button:hover, .button:focus {
  background-color: #164482;
  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: #1A5099;
  color: #fefefe;
}
.button.primary:hover, .button.primary:focus {
  background-color: #15407a;
  color: #fefefe;
}
.button.secondary {
  background-color: #777;
  color: #fefefe;
}
.button.secondary:hover, .button.secondary:focus {
  background-color: #5f5f5f;
  color: #fefefe;
}
.button.success {
  background-color: #3adb76;
  color: #333333;
}
.button.success:hover, .button.success:focus {
  background-color: #22bb5b;
  color: #333333;
}
.button.warning {
  background-color: #ffae00;
  color: #333333;
}
.button.warning:hover, .button.warning:focus {
  background-color: #cc8b00;
  color: #333333;
}
.button.alert {
  background-color: #ec5840;
  color: #333333;
}
.button.alert:hover, .button.alert:focus {
  background-color: #da3116;
  color: #333333;
}
.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: #1A5099;
  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: #1A5099;
  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: #777;
  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: #333333;
}
.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: #333333;
}
.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: #ec5840;
  color: #333333;
}
.button.hollow {
  border: 1px solid #1A5099;
  color: #1A5099;
}
.button.hollow, .button.hollow:hover, .button.hollow:focus {
  background-color: transparent;
}
.button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {
  background-color: transparent;
}
.button.hollow:hover, .button.hollow:focus {
  border-color: #0d284d;
  color: #0d284d;
}
.button.hollow:hover.disabled, .button.hollow:hover[disabled], .button.hollow:focus.disabled, .button.hollow:focus[disabled] {
  border: 1px solid #1A5099;
  color: #1A5099;
}
.button.hollow.primary {
  border: 1px solid #1A5099;
  color: #1A5099;
}
.button.hollow.primary:hover, .button.hollow.primary:focus {
  border-color: #0d284d;
  color: #0d284d;
}
.button.hollow.primary:hover.disabled, .button.hollow.primary:hover[disabled], .button.hollow.primary:focus.disabled, .button.hollow.primary:focus[disabled] {
  border: 1px solid #1A5099;
  color: #1A5099;
}
.button.hollow.secondary {
  border: 1px solid #777;
  color: #777;
}
.button.hollow.secondary:hover, .button.hollow.secondary:focus {
  border-color: #3c3c3c;
  color: #3c3c3c;
}
.button.hollow.secondary:hover.disabled, .button.hollow.secondary:hover[disabled], .button.hollow.secondary:focus.disabled, .button.hollow.secondary:focus[disabled] {
  border: 1px solid #777;
  color: #777;
}
.button.hollow.success {
  border: 1px solid #3adb76;
  color: #3adb76;
}
.button.hollow.success:hover, .button.hollow.success:focus {
  border-color: #157539;
  color: #157539;
}
.button.hollow.success:hover.disabled, .button.hollow.success:hover[disabled], .button.hollow.success:focus.disabled, .button.hollow.success:focus[disabled] {
  border: 1px solid #3adb76;
  color: #3adb76;
}
.button.hollow.warning {
  border: 1px solid #ffae00;
  color: #ffae00;
}
.button.hollow.warning:hover, .button.hollow.warning:focus {
  border-color: #805700;
  color: #805700;
}
.button.hollow.warning:hover.disabled, .button.hollow.warning:hover[disabled], .button.hollow.warning:focus.disabled, .button.hollow.warning:focus[disabled] {
  border: 1px solid #ffae00;
  color: #ffae00;
}
.button.hollow.alert {
  border: 1px solid #ec5840;
  color: #ec5840;
}
.button.hollow.alert:hover, .button.hollow.alert:focus {
  border-color: #881f0e;
  color: #881f0e;
}
.button.hollow.alert:hover.disabled, .button.hollow.alert:hover[disabled], .button.hollow.alert:focus.disabled, .button.hollow.alert:focus[disabled] {
  border: 1px solid #ec5840;
  color: #ec5840;
}
.button.clear {
  border: 1px solid #1A5099;
  color: #1A5099;
}
.button.clear, .button.clear:hover, .button.clear:focus {
  background-color: transparent;
}
.button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {
  background-color: transparent;
}
.button.clear:hover, .button.clear:focus {
  border-color: #0d284d;
  color: #0d284d;
}
.button.clear:hover.disabled, .button.clear:hover[disabled], .button.clear:focus.disabled, .button.clear:focus[disabled] {
  border: 1px solid #1A5099;
  color: #1A5099;
}
.button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear:hover, .button.clear:hover.disabled, .button.clear:hover[disabled], .button.clear:focus, .button.clear:focus.disabled, .button.clear:focus[disabled] {
  border-color: transparent;
}
.button.clear.primary {
  border: 1px solid #1A5099;
  color: #1A5099;
}
.button.clear.primary:hover, .button.clear.primary:focus {
  border-color: #0d284d;
  color: #0d284d;
}
.button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled] {
  border: 1px solid #1A5099;
  color: #1A5099;
}
.button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary:hover, .button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .button.clear.primary:focus, .button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled] {
  border-color: transparent;
}
.button.clear.secondary {
  border: 1px solid #777;
  color: #777;
}
.button.clear.secondary:hover, .button.clear.secondary:focus {
  border-color: #3c3c3c;
  color: #3c3c3c;
}
.button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled] {
  border: 1px solid #777;
  color: #777;
}
.button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary:hover, .button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .button.clear.secondary:focus, .button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled] {
  border-color: transparent;
}
.button.clear.success {
  border: 1px solid #3adb76;
  color: #3adb76;
}
.button.clear.success:hover, .button.clear.success:focus {
  border-color: #157539;
  color: #157539;
}
.button.clear.success:hover.disabled, .button.clear.success:hover[disabled], .button.clear.success:focus.disabled, .button.clear.success:focus[disabled] {
  border: 1px solid #3adb76;
  color: #3adb76;
}
.button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success:hover, .button.clear.success:hover.disabled, .button.clear.success:hover[disabled], .button.clear.success:focus, .button.clear.success:focus.disabled, .button.clear.success:focus[disabled] {
  border-color: transparent;
}
.button.clear.warning {
  border: 1px solid #ffae00;
  color: #ffae00;
}
.button.clear.warning:hover, .button.clear.warning:focus {
  border-color: #805700;
  color: #805700;
}
.button.clear.warning:hover.disabled, .button.clear.warning:hover[disabled], .button.clear.warning:focus.disabled, .button.clear.warning:focus[disabled] {
  border: 1px solid #ffae00;
  color: #ffae00;
}
.button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning:hover, .button.clear.warning:hover.disabled, .button.clear.warning:hover[disabled], .button.clear.warning:focus, .button.clear.warning:focus.disabled, .button.clear.warning:focus[disabled] {
  border-color: transparent;
}
.button.clear.alert {
  border: 1px solid #ec5840;
  color: #ec5840;
}
.button.clear.alert:hover, .button.clear.alert:focus {
  border-color: #881f0e;
  color: #881f0e;
}
.button.clear.alert:hover.disabled, .button.clear.alert:hover[disabled], .button.clear.alert:focus.disabled, .button.clear.alert:focus[disabled] {
  border: 1px solid #ec5840;
  color: #ec5840;
}
.button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert:hover, .button.clear.alert:hover.disabled, .button.clear.alert:hover[disabled], .button.clear.alert:focus, .button.clear.alert:focus.disabled, .button.clear.alert:focus[disabled] {
  border-color: transparent;
}
.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.dropdown.hollow::after {
  border-top-color: #1A5099;
}
.button.dropdown.hollow.primary::after {
  border-top-color: #1A5099;
}
.button.dropdown.hollow.secondary::after {
  border-top-color: #777;
}
.button.dropdown.hollow.success::after {
  border-top-color: #3adb76;
}
.button.dropdown.hollow.warning::after {
  border-top-color: #ffae00;
}
.button.dropdown.hollow.alert::after {
  border-top-color: #ec5840;
}
.button.arrow-only::after {
  top: -0.1em;
  float: none;
  margin-left: 0;
}

.accordion {
  margin-left: 0;
  background: #fefefe;
  list-style-type: none;
}
.accordion[disabled] .accordion-title {
  cursor: not-allowed;
}

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

.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: #1A5099;
}
:last-child:not(.is-active) > .accordion-title {
  border-bottom: 1px solid #e6e6e6;
  border-radius: 0 0 3px 3px;
}
.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: "–";
}

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

.accordion-menu {
  border-bottom: 1px solid #e6e6e6;
}
.accordion-menu li {
  border-top: 1px solid #e6e6e6;
  border-right: 1px solid #e6e6e6;
  border-left: 1px solid #e6e6e6;
}
.accordion-menu .is-accordion-submenu li {
  border-right: 0;
  border-left: 0;
}
.accordion-menu .is-accordion-submenu-parent {
  position: relative;
}
.accordion-menu .is-accordion-submenu-parent > a {
  margin-right: 40px;
}
.accordion-menu .submenu-toggle {
  position: absolute;
  top: 0;
  right: 0;
  width: 40px;
  height: 40px;
  border-left: 1px solid #e6e6e6;
}
.accordion-menu .submenu-toggle::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: "";
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #1A5099 transparent transparent;
  top: 0;
  bottom: 0;
  margin: auto;
}
.accordion-menu .submenu-toggle[aria-expanded=true]::after {
  transform: scaleY(-1);
  transform-origin: 50% 50%;
}
.accordion-menu .submenu-toggle-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  border: 0;
}

.is-accordion-submenu-parent:not(.has-submenu-toggle) > a {
  position: relative;
}
.is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: "";
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #1A5099 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: #1A5099;
  color: #fefefe;
}
.badge.primary {
  background: #1A5099;
  color: #fefefe;
}
.badge.secondary {
  background: #777;
  color: #fefefe;
}
.badge.success {
  background: #3adb76;
  color: #333333;
}
.badge.warning {
  background: #ffae00;
  color: #333333;
}
.badge.alert {
  background: #ec5840;
  color: #333333;
}

.breadcrumbs {
  margin: 0 0 1rem 0;
  list-style: none;
}
.breadcrumbs::before, .breadcrumbs::after {
  display: table;
  content: " ";
  flex-basis: 0;
  order: 1;
}
.breadcrumbs::after {
  clear: both;
}
.breadcrumbs li {
  float: left;
  font-size: 0.6875rem;
  color: #333333;
  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: #1A5099;
}
.breadcrumbs a:hover {
  text-decoration: underline;
}
.breadcrumbs .disabled {
  color: #cacaca;
  cursor: not-allowed;
}

.button-group {
  margin-bottom: 1rem;
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
}
.button-group::before, .button-group::after {
  display: table;
  content: " ";
  flex-basis: 0;
  order: 1;
}
.button-group::after {
  clear: both;
}
.button-group .button {
  margin: 0;
  margin-right: 1px;
  margin-bottom: 1px;
  font-size: 0.9rem;
  flex: 0 0 auto;
}
.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 .button {
  flex: 1 1 0px;
}
.button-group.primary .button {
  background-color: #1A5099;
  color: #fefefe;
}
.button-group.primary .button:hover, .button-group.primary .button:focus {
  background-color: #15407a;
  color: #fefefe;
}
.button-group.secondary .button {
  background-color: #777;
  color: #fefefe;
}
.button-group.secondary .button:hover, .button-group.secondary .button:focus {
  background-color: #5f5f5f;
  color: #fefefe;
}
.button-group.success .button {
  background-color: #3adb76;
  color: #333333;
}
.button-group.success .button:hover, .button-group.success .button:focus {
  background-color: #22bb5b;
  color: #333333;
}
.button-group.warning .button {
  background-color: #ffae00;
  color: #333333;
}
.button-group.warning .button:hover, .button-group.warning .button:focus {
  background-color: #cc8b00;
  color: #333333;
}
.button-group.alert .button {
  background-color: #ec5840;
  color: #333333;
}
.button-group.alert .button:hover, .button-group.alert .button:focus {
  background-color: #da3116;
  color: #333333;
}
.button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {
  flex-wrap: wrap;
}
.button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {
  flex: 0 0 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: 40em) {
  .button-group.stacked-for-small .button {
    flex: 1 1 0px;
    margin-bottom: 0;
  }
}
@media print, screen and (min-width: 64em) {
  .button-group.stacked-for-medium .button {
    flex: 1 1 0px;
    margin-bottom: 0;
  }
}
@media screen and (max-width: 39.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(51, 51, 51, 0.25);
  border-radius: 3px;
  background-color: white;
  color: #333333;
}
.callout > :first-child {
  margin-top: 0;
}
.callout > :last-child {
  margin-bottom: 0;
}
.callout.primary {
  background-color: #d5e4f8;
  color: #333333;
}
.callout.secondary {
  background-color: #ebebeb;
  color: #333333;
}
.callout.success {
  background-color: #e1faea;
  color: #333333;
}
.callout.warning {
  background-color: #fff3d9;
  color: #333333;
}
.callout.alert {
  background-color: #fce6e2;
  color: #333333;
}
.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 {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  margin-bottom: 1rem;
  border: 1px solid #e6e6e6;
  border-radius: 3px;
  background: #fefefe;
  box-shadow: none;
  overflow: hidden;
  color: #333333;
}
.card > :last-child {
  margin-bottom: 0;
}

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

.card-section {
  flex: 1 0 auto;
  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: #333333;
}
.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;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  width: 100%;
}
.menu > li {
  flex: 0 0 auto;
}
[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 {
  display: flex;
}
.menu > li > a {
  flex-flow: row nowrap;
}
.menu > li > a img,
.menu > li > a i,
.menu > li > a svg {
  margin-right: 0.25rem;
}
.menu, .menu.horizontal {
  flex-wrap: nowrap;
}
.menu > li, .menu.horizontal > li {
  flex: 0 0 auto;
}
.menu.expanded > li {
  flex: 1 1 0px;
}
.menu.expanded > li:first-child:last-child {
  width: 100%;
}
.menu.vertical {
  flex-wrap: wrap;
}
.menu.vertical > li {
  flex: 0 0 100%;
  max-width: 100%;
}
.menu.vertical > li > a {
  justify-content: flex-start;
  align-items: flex-start;
}
@media print, screen and (min-width: 40em) {
  .menu.medium-horizontal {
    flex-wrap: nowrap;
  }
  .menu.medium-horizontal > li {
    flex: 0 0 auto;
  }
  .menu.medium-expanded > li {
    flex: 1 1 0px;
  }
  .menu.medium-expanded > li:first-child:last-child {
    width: 100%;
  }
  .menu.medium-vertical {
    flex-wrap: wrap;
  }
  .menu.medium-vertical > li {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .menu.medium-vertical > li > a {
    justify-content: flex-start;
    align-items: flex-start;
  }
}
@media print, screen and (min-width: 64em) {
  .menu.large-horizontal {
    flex-wrap: nowrap;
  }
  .menu.large-horizontal > li {
    flex: 0 0 auto;
  }
  .menu.large-expanded > li {
    flex: 1 1 0px;
  }
  .menu.large-expanded > li:first-child:last-child {
    width: 100%;
  }
  .menu.large-vertical {
    flex-wrap: wrap;
  }
  .menu.large-vertical > li {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .menu.large-vertical > li > a {
    justify-content: flex-start;
    align-items: flex-start;
  }
}
.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 {
  justify-content: flex-end;
}
.menu.icon-top > li > a {
  flex-flow: column nowrap;
}
.menu.icon-top > li > a img,
.menu.icon-top > li > a i,
.menu.icon-top > li > a svg {
  align-self: stretch;
  margin-bottom: 0.25rem;
  text-align: center;
}
.menu.icon-top.vertical a > span {
  margin: auto;
}
.menu.nested {
  margin-left: 1rem;
}
.menu .is-active > a {
  background: #1A5099;
  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: 0.7rem 1rem;
  font-weight: bold;
  line-height: 1;
  color: inherit;
}

.menu-centered {
  text-align: center;
}
.menu-centered > .menu {
  justify-content: center;
  align-items: flex-start;
}
.menu-centered > .menu.vertical > li > a {
  justify-content: center;
}

.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: #333333;
  box-shadow: 0 7px 0 #333333, 0 14px 0 #333333;
  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 #1A5099;
  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 #1A5099 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;
  width: 300px;
  padding: 1rem;
  visibility: hidden;
  display: none;
  border: 1px solid #cacaca;
  border-radius: 3px;
  background-color: #fefefe;
  font-size: 1rem;
}
.dropdown-pane.is-opening {
  display: block;
}
.dropdown-pane.is-open {
  visibility: visible;
  display: block;
}

.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: #1A5099 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 #1A5099 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 #1A5099;
}
@media print, screen and (min-width: 40em) {
  .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: #1A5099 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 #1A5099 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 #1A5099;
  }
}
@media print, screen and (min-width: 64em) {
  .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: #1A5099 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 #1A5099 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 #1A5099;
  }
}
.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 #1A5099 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 #1A5099;
}
.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: 3px;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  background: #1A5099;
  color: #fefefe;
}
.label.primary {
  background: #1A5099;
  color: #fefefe;
}
.label.secondary {
  background: #777;
  color: #fefefe;
}
.label.success {
  background: #3adb76;
  color: #333333;
}
.label.warning {
  background: #ffae00;
  color: #333333;
}
.label.alert {
  background: #ec5840;
  color: #333333;
}

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

.media-object-section {
  flex: 0 1 auto;
}
.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.main-section {
  flex: 1 1 0px;
}

.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(51, 51, 51, 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(51, 51, 51, 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(51, 51, 51, 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(51, 51, 51, 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(51, 51, 51, 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(51, 51, 51, 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: 40em) {
  .position-left.reveal-for-medium {
    transform: none;
    z-index: 1;
    transition: none;
  }
  .position-left.reveal-for-medium ~ .off-canvas-content {
    margin-left: 250px;
  }

  .position-right.reveal-for-medium {
    transform: none;
    z-index: 1;
    transition: none;
  }
  .position-right.reveal-for-medium ~ .off-canvas-content {
    margin-right: 250px;
  }

  .position-top.reveal-for-medium {
    transform: none;
    z-index: 1;
    transition: none;
  }
  .position-top.reveal-for-medium ~ .off-canvas-content {
    margin-top: 250px;
  }

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

  .position-right.reveal-for-large {
    transform: none;
    z-index: 1;
    transition: none;
  }
  .position-right.reveal-for-large ~ .off-canvas-content {
    margin-right: 250px;
  }

  .position-top.reveal-for-large {
    transform: none;
    z-index: 1;
    transition: none;
  }
  .position-top.reveal-for-large ~ .off-canvas-content {
    margin-top: 250px;
  }

  .position-bottom.reveal-for-large {
    transform: none;
    z-index: 1;
    transition: none;
  }
  .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(51, 51, 51, 0.5);
  color: #fefefe;
}

.orbit-next, .orbit-previous {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  padding: 1rem;
  color: #fefefe;
}
[data-whatinput=mouse] .orbit-next, [data-whatinput=mouse] .orbit-previous {
  outline: 0;
}
.orbit-next:hover, .orbit-previous:hover, .orbit-next:active, .orbit-previous:active, .orbit-next:focus, .orbit-previous:focus {
  background-color: rgba(51, 51, 51, 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: " ";
  flex-basis: 0;
  order: 1;
}
.pagination::after {
  clear: both;
}
.pagination li {
  margin-right: 0.0625rem;
  border-radius: 3px;
  font-size: 0.875rem;
  display: none;
}
.pagination li:last-child, .pagination li:first-child {
  display: inline-block;
}
@media print, screen and (min-width: 40em) {
  .pagination li {
    display: inline-block;
  }
}
.pagination a,
.pagination button {
  display: block;
  padding: 0.1875rem 0.625rem;
  border-radius: 3px;
  color: #333333;
}
.pagination a:hover,
.pagination button:hover {
  background: #e6e6e6;
}
.pagination .current {
  padding: 0.1875rem 0.625rem;
  background: #1A5099;
  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: "…";
  color: #333333;
}

.pagination-previous a::before,
.pagination-previous.disabled::before {
  display: inline-block;
  margin-right: 0.5rem;
  content: "«";
}

.pagination-next a::after,
.pagination-next.disabled::after {
  display: inline-block;
  margin-left: 0.5rem;
  content: "»";
}

.progress {
  height: 1rem;
  margin-bottom: 1rem;
  border-radius: 3px;
  background-color: #cacaca;
}
.progress.primary .progress-meter {
  background-color: #1A5099;
}
.progress.secondary .progress-meter {
  background-color: #777;
}
.progress.success .progress-meter {
  background-color: #3adb76;
}
.progress.warning .progress-meter {
  background-color: #ffae00;
}
.progress.alert .progress-meter {
  background-color: #ec5840;
}

.progress-meter {
  position: relative;
  display: block;
  width: 0%;
  height: 100%;
  background-color: #1A5099;
  border-radius: 3px;
}

.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;
  border-radius: 3px;
}

.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;
  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: 3px;
  background-color: #1A5099;
  transition: all 0.2s ease-in-out;
  touch-action: manipulation;
}
[data-whatinput=mouse] .slider-handle {
  outline: 0;
}
.slider-handle:hover {
  background-color: #164482;
}
.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;
  width: 100%;
}
.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;
  position: fixed;
  -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(51, 51, 51, 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: 3px;
  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: 40em) {
  .reveal {
    min-height: 0;
  }
}
.reveal .column, .reveal .columns {
  min-width: 0;
}
.reveal > :last-child {
  margin-bottom: 0;
}
@media print, screen and (min-width: 40em) {
  .reveal {
    width: 600px;
    max-width: 75rem;
  }
}
@media print, screen and (min-width: 40em) {
  .reveal .reveal {
    right: auto;
    left: auto;
    margin: 0 auto;
  }
}
.reveal.collapse {
  padding: 0;
}
@media print, screen and (min-width: 40em) {
  .reveal.tiny {
    width: 30%;
    max-width: 75rem;
  }
}
@media print, screen and (min-width: 40em) {
  .reveal.small {
    width: 50%;
    max-width: 75rem;
  }
}
@media print, screen and (min-width: 40em) {
  .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: 39.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: 3px;
  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: 3px;
  background: #fefefe;
  transition: all 0.25s ease-out;
  content: "";
}
input:checked ~ .switch-paddle {
  background: #1A5099;
}
input:checked ~ .switch-paddle::after {
  left: 2.25rem;
}
[data-whatinput=mouse] input:focus ~ .switch-paddle {
  outline: 0;
}

.switch-inactive, .switch-active {
  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 {
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 3px;
}
thead,
tbody,
tfoot {
  border: 1px solid #f1f1f1;
  background-color: #fefefe;
}

caption {
  padding: 0.5rem 0.625rem 0.625rem;
  font-weight: bold;
}

thead {
  background: #f8f8f8;
  color: #333333;
}

tfoot {
  background: #f1f1f1;
  color: #333333;
}

thead tr,
tfoot tr {
  background: transparent;
}
thead th,
thead td,
tfoot th,
tfoot td {
  padding: 0.5rem 0.625rem 0.625rem;
  font-weight: bold;
  text-align: left;
}

tbody th,
tbody td {
  padding: 0.5rem 0.625rem 0.625rem;
}

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: 63.9375em) {
  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: " ";
  flex-basis: 0;
  order: 1;
}
.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: #1A5099;
}
.tabs.primary > li > a {
  color: #fefefe;
}
.tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
  background: #1c57a7;
}

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

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

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

.tabs-panel {
  display: none;
  padding: 1rem;
}
.tabs-panel.is-active {
  display: block;
}

.thumbnail {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 1rem;
  border: solid 4px #fefefe;
  border-radius: 3px;
  box-shadow: 0 0 0 1px rgba(51, 51, 51, 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(26, 80, 153, 0.5);
}
a.thumbnail image {
  box-shadow: none;
}

.title-bar {
  padding: 0.5rem;
  background: #333333;
  color: #fefefe;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.title-bar .menu-icon {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}

.title-bar-left,
.title-bar-right {
  flex: 1 1 0px;
}

.title-bar-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: 3px;
  background-color: #333333;
  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 #333333;
  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: #333333 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 #333333;
  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 #333333 transparent transparent;
  top: 50%;
  right: 100%;
  bottom: auto;
  left: auto;
  transform: translateY(-50%);
}

.top-bar {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: center;
  padding: 0.5rem;
  flex-wrap: wrap;
}
.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 {
  flex: 0 0 100%;
  max-width: 100%;
}
@media print, screen and (min-width: 40em) {
  .top-bar {
    flex-wrap: nowrap;
  }
  .top-bar .top-bar-left {
    flex: 1 1 auto;
    margin-right: auto;
  }
  .top-bar .top-bar-right {
    flex: 0 1 auto;
    margin-left: auto;
  }
}
@media screen and (max-width: 63.9375em) {
  .top-bar.stacked-for-medium {
    flex-wrap: wrap;
  }
  .top-bar.stacked-for-medium .top-bar-left,
.top-bar.stacked-for-medium .top-bar-right {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 74.9375em) {
  .top-bar.stacked-for-large {
    flex-wrap: wrap;
  }
  .top-bar.stacked-for-large .top-bar-left,
.top-bar.stacked-for-large .top-bar-right {
    flex: 0 0 100%;
    max-width: 100%;
  }
}

.top-bar-title {
  flex: 0 0 auto;
  margin: 0.5rem 1rem 0.5rem 0;
}

.top-bar-left,
.top-bar-right {
  flex: 0 0 auto;
}

.hide {
  display: none !important;
}

.invisible {
  visibility: hidden;
}

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

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

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

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

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

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

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

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

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

@media screen and (max-width: 63.9375em), 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;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  border: 0;
}

.show-on-focus:active, .show-on-focus:focus {
  position: static !important;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
  white-space: normal;
  -webkit-clip-path: none;
          clip-path: none;
}

.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: " ";
  flex-basis: 0;
  order: 1;
}
.clearfix::after {
  clear: both;
}

.align-right {
  justify-content: flex-end;
}

.align-center {
  justify-content: center;
}

.align-justify {
  justify-content: space-between;
}

.align-spaced {
  justify-content: space-around;
}

.align-right.vertical.menu > li > a {
  justify-content: flex-end;
}

.align-center.vertical.menu > li > a {
  justify-content: center;
}

.align-top {
  align-items: flex-start;
}

.align-self-top {
  align-self: flex-start;
}

.align-bottom {
  align-items: flex-end;
}

.align-self-bottom {
  align-self: flex-end;
}

.align-middle {
  align-items: center;
}

.align-self-middle {
  align-self: center;
}

.align-stretch {
  align-items: stretch;
}

.align-self-stretch {
  align-self: stretch;
}

.align-center-middle {
  justify-content: center;
  align-items: center;
  align-content: center;
}

.small-order-1 {
  order: 1;
}

.small-order-2 {
  order: 2;
}

.small-order-3 {
  order: 3;
}

.small-order-4 {
  order: 4;
}

.small-order-5 {
  order: 5;
}

.small-order-6 {
  order: 6;
}

@media print, screen and (min-width: 40em) {
  .medium-order-1 {
    order: 1;
  }

  .medium-order-2 {
    order: 2;
  }

  .medium-order-3 {
    order: 3;
  }

  .medium-order-4 {
    order: 4;
  }

  .medium-order-5 {
    order: 5;
  }

  .medium-order-6 {
    order: 6;
  }
}
@media print, screen and (min-width: 64em) {
  .large-order-1 {
    order: 1;
  }

  .large-order-2 {
    order: 2;
  }

  .large-order-3 {
    order: 3;
  }

  .large-order-4 {
    order: 4;
  }

  .large-order-5 {
    order: 5;
  }

  .large-order-6 {
    order: 6;
  }
}
.show-for-mq-large {
  display: none;
}
@media only screen and (min-width: 75em) {
  .show-for-mq-large {
    display: inline;
  }
}

.hide-for-mq-large {
  display: inline;
}
@media only screen and (min-width: 75em) {
  .hide-for-mq-large {
    display: none;
  }
}

.hide-for-mq-medium {
  display: inline;
}
@media only screen and (min-width: 47.5em) {
  .hide-for-mq-medium {
    display: none;
  }
}

.show-for-mq-medium {
  display: none;
}
@media only screen and (min-width: 47.5em) {
  .show-for-mq-medium {
    display: inline;
  }
}

/*
 * Implementation of themes
 */
.theme-original {
  background-color: #fefefe;
  color: #333;
}
@media only screen and (min-width: 47.5em) {
  .theme-original {
    background-color: #f8f8ff;
  }
}

.theme-light {
  background-color: #f8f8ff;
  color: #333;
}
@media only screen and (min-width: 47.5em) {
  .theme-light {
    background-color: #f8f8ff;
  }
}

.theme-dark {
  background-color: #212529;
  color: #fcfcfc;
}

.link, .articles__resteem .username,
.articles__crosspost .username, .user__name a, .user__link, .articles__tag-link a, .articles__summary-footer a, .c-sidebar__more-link, .c-sidebar__link, .Header__buttons > .Header__user-signup > a.Header__login-link, .Notices__title-link, .Notices__author-link, li.nav__block-list-item a, .ReplyEditor .button.hollow.no-border, .PostFull__body a, .PostFull__header a, .Comment .Comment__block .Comment__footer a, .Comment__header-user a, .PlainLink, .Markdown a {
  text-decoration: none;
  transition: 0.2s all ease-in-out;
}
.theme-original .link--primary, .theme-original .user__name a, .user__name .theme-original a, .theme-original .articles__summary-footer a, .articles__summary-footer .theme-original a, .theme-original .c-sidebar__link, .theme-original .Header__buttons > .Header__user-signup > a.Header__login-link, .theme-original .Notices__title-link, .theme-original li.nav__block-list-item a, li.nav__block-list-item .theme-original a, .theme-original .Comment .Comment__block .Comment__footer a, .Comment .Comment__block .Comment__footer .theme-original a, .theme-original .Comment__header-user a, .Comment__header-user .theme-original a {
  color: #333;
}
.theme-light .link--primary, .theme-light .user__name a, .user__name .theme-light a, .theme-light .articles__summary-footer a, .articles__summary-footer .theme-light a, .theme-light .c-sidebar__link, .theme-light .Header__buttons > .Header__user-signup > a.Header__login-link, .theme-light .Notices__title-link, .theme-light li.nav__block-list-item a, li.nav__block-list-item .theme-light a, .theme-light .Comment .Comment__block .Comment__footer a, .Comment .Comment__block .Comment__footer .theme-light a, .theme-light .Comment__header-user a, .Comment__header-user .theme-light a {
  color: #333;
}
.theme-dark .link--primary, .theme-dark .user__name a, .user__name .theme-dark a, .theme-dark .articles__summary-footer a, .articles__summary-footer .theme-dark a, .theme-dark .c-sidebar__link, .theme-dark .Header__buttons > .Header__user-signup > a.Header__login-link, .theme-dark .Notices__title-link, .theme-dark li.nav__block-list-item a, li.nav__block-list-item .theme-dark a, .theme-dark .Comment .Comment__block .Comment__footer a, .Comment .Comment__block .Comment__footer .theme-dark a, .theme-dark .Comment__header-user a, .Comment__header-user .theme-dark a {
  color: #fcfcfc;
}
.theme-original .link--primary:visited, .theme-original .user__name a:visited, .user__name .theme-original a:visited, .theme-original .articles__summary-footer a:visited, .articles__summary-footer .theme-original a:visited, .theme-original .c-sidebar__link:visited, .theme-original .Header__buttons > .Header__user-signup > a.Header__login-link:visited, .theme-original .Notices__title-link:visited, .theme-original li.nav__block-list-item a:visited, li.nav__block-list-item .theme-original a:visited, .theme-original .Comment .Comment__block .Comment__footer a:visited, .Comment .Comment__block .Comment__footer .theme-original a:visited, .theme-original .Comment__header-user a:visited, .Comment__header-user .theme-original a:visited, .theme-original .link--primary:active, .theme-original .user__name a:active, .user__name .theme-original a:active, .theme-original .articles__summary-footer a:active, .articles__summary-footer .theme-original a:active, .theme-original .c-sidebar__link:active, .theme-original .Header__buttons > .Header__user-signup > a.Header__login-link:active, .theme-original .Notices__title-link:active, .theme-original li.nav__block-list-item a:active, li.nav__block-list-item .theme-original a:active, .theme-original .Comment .Comment__block .Comment__footer a:active, .Comment .Comment__block .Comment__footer .theme-original a:active, .theme-original .Comment__header-user a:active, .Comment__header-user .theme-original a:active {
  color: #333;
}
.theme-light .link--primary:visited, .theme-light .user__name a:visited, .user__name .theme-light a:visited, .theme-light .articles__summary-footer a:visited, .articles__summary-footer .theme-light a:visited, .theme-light .c-sidebar__link:visited, .theme-light .Header__buttons > .Header__user-signup > a.Header__login-link:visited, .theme-light .Notices__title-link:visited, .theme-light li.nav__block-list-item a:visited, li.nav__block-list-item .theme-light a:visited, .theme-light .Comment .Comment__block .Comment__footer a:visited, .Comment .Comment__block .Comment__footer .theme-light a:visited, .theme-light .Comment__header-user a:visited, .Comment__header-user .theme-light a:visited, .theme-light .link--primary:active, .theme-light .user__name a:active, .user__name .theme-light a:active, .theme-light .articles__summary-footer a:active, .articles__summary-footer .theme-light a:active, .theme-light .c-sidebar__link:active, .theme-light .Header__buttons > .Header__user-signup > a.Header__login-link:active, .theme-light .Notices__title-link:active, .theme-light li.nav__block-list-item a:active, li.nav__block-list-item .theme-light a:active, .theme-light .Comment .Comment__block .Comment__footer a:active, .Comment .Comment__block .Comment__footer .theme-light a:active, .theme-light .Comment__header-user a:active, .Comment__header-user .theme-light a:active {
  color: #333;
}
.theme-dark .link--primary:visited, .theme-dark .user__name a:visited, .user__name .theme-dark a:visited, .theme-dark .articles__summary-footer a:visited, .articles__summary-footer .theme-dark a:visited, .theme-dark .c-sidebar__link:visited, .theme-dark .Header__buttons > .Header__user-signup > a.Header__login-link:visited, .theme-dark .Notices__title-link:visited, .theme-dark li.nav__block-list-item a:visited, li.nav__block-list-item .theme-dark a:visited, .theme-dark .Comment .Comment__block .Comment__footer a:visited, .Comment .Comment__block .Comment__footer .theme-dark a:visited, .theme-dark .Comment__header-user a:visited, .Comment__header-user .theme-dark a:visited, .theme-dark .link--primary:active, .theme-dark .user__name a:active, .user__name .theme-dark a:active, .theme-dark .articles__summary-footer a:active, .articles__summary-footer .theme-dark a:active, .theme-dark .c-sidebar__link:active, .theme-dark .Header__buttons > .Header__user-signup > a.Header__login-link:active, .theme-dark .Notices__title-link:active, .theme-dark li.nav__block-list-item a:active, li.nav__block-list-item .theme-dark a:active, .theme-dark .Comment .Comment__block .Comment__footer a:active, .Comment .Comment__block .Comment__footer .theme-dark a:active, .theme-dark .Comment__header-user a:active, .Comment__header-user .theme-dark a:active {
  color: #fcfcfc;
}
.theme-original .link--primary:hover, .theme-original .user__name a:hover, .user__name .theme-original a:hover, .theme-original .articles__summary-footer a:hover, .articles__summary-footer .theme-original a:hover, .theme-original .c-sidebar__link:hover, .theme-original .Header__buttons > .Header__user-signup > a.Header__login-link:hover, .theme-original .Notices__title-link:hover, .theme-original li.nav__block-list-item a:hover, li.nav__block-list-item .theme-original a:hover, .theme-original .Comment .Comment__block .Comment__footer a:hover, .Comment .Comment__block .Comment__footer .theme-original a:hover, .theme-original .Comment__header-user a:hover, .Comment__header-user .theme-original a:hover, .theme-original .link--primary:focus, .theme-original .user__name a:focus, .user__name .theme-original a:focus, .theme-original .articles__summary-footer a:focus, .articles__summary-footer .theme-original a:focus, .theme-original .c-sidebar__link:focus, .theme-original .Header__buttons > .Header__user-signup > a.Header__login-link:focus, .theme-original .Notices__title-link:focus, .theme-original li.nav__block-list-item a:focus, li.nav__block-list-item .theme-original a:focus, .theme-original .Comment .Comment__block .Comment__footer a:focus, .Comment .Comment__block .Comment__footer .theme-original a:focus, .theme-original .Comment__header-user a:focus, .Comment__header-user .theme-original a:focus {
  color: #004EFF;
}
.theme-light .link--primary:hover, .theme-light .user__name a:hover, .user__name .theme-light a:hover, .theme-light .articles__summary-footer a:hover, .articles__summary-footer .theme-light a:hover, .theme-light .c-sidebar__link:hover, .theme-light .Header__buttons > .Header__user-signup > a.Header__login-link:hover, .theme-light .Notices__title-link:hover, .theme-light li.nav__block-list-item a:hover, li.nav__block-list-item .theme-light a:hover, .theme-light .Comment .Comment__block .Comment__footer a:hover, .Comment .Comment__block .Comment__footer .theme-light a:hover, .theme-light .Comment__header-user a:hover, .Comment__header-user .theme-light a:hover, .theme-light .link--primary:focus, .theme-light .user__name a:focus, .user__name .theme-light a:focus, .theme-light .articles__summary-footer a:focus, .articles__summary-footer .theme-light a:focus, .theme-light .c-sidebar__link:focus, .theme-light .Header__buttons > .Header__user-signup > a.Header__login-link:focus, .theme-light .Notices__title-link:focus, .theme-light li.nav__block-list-item a:focus, li.nav__block-list-item .theme-light a:focus, .theme-light .Comment .Comment__block .Comment__footer a:focus, .Comment .Comment__block .Comment__footer .theme-light a:focus, .theme-light .Comment__header-user a:focus, .Comment__header-user .theme-light a:focus {
  color: #E31337;
}
.theme-dark .link--primary:hover, .theme-dark .user__name a:hover, .user__name .theme-dark a:hover, .theme-dark .articles__summary-footer a:hover, .articles__summary-footer .theme-dark a:hover, .theme-dark .c-sidebar__link:hover, .theme-dark .Header__buttons > .Header__user-signup > a.Header__login-link:hover, .theme-dark .Notices__title-link:hover, .theme-dark li.nav__block-list-item a:hover, li.nav__block-list-item .theme-dark a:hover, .theme-dark .Comment .Comment__block .Comment__footer a:hover, .Comment .Comment__block .Comment__footer .theme-dark a:hover, .theme-dark .Comment__header-user a:hover, .Comment__header-user .theme-dark a:hover, .theme-dark .link--primary:focus, .theme-dark .user__name a:focus, .user__name .theme-dark a:focus, .theme-dark .articles__summary-footer a:focus, .articles__summary-footer .theme-dark a:focus, .theme-dark .c-sidebar__link:focus, .theme-dark .Header__buttons > .Header__user-signup > a.Header__login-link:focus, .theme-dark .Notices__title-link:focus, .theme-dark li.nav__block-list-item a:focus, li.nav__block-list-item .theme-dark a:focus, .theme-dark .Comment .Comment__block .Comment__footer a:focus, .Comment .Comment__block .Comment__footer .theme-dark a:focus, .theme-dark .Comment__header-user a:focus, .Comment__header-user .theme-dark a:focus {
  color: #E31337;
}
.theme-original .link--secondary, .theme-original .articles__resteem .username, .articles__resteem .theme-original .username,
.theme-original .articles__crosspost .username,
.articles__crosspost .theme-original .username, .theme-original .timestamp__time, .theme-original .user__username, .theme-original .user__reputation, .theme-original .articles__tag-link a, .articles__tag-link .theme-original a, .theme-original .articles__resteem-username, .theme-original .Notices__author-link, .theme-original .ReplyEditor .button.hollow.no-border, .ReplyEditor .theme-original .button.hollow.no-border, .theme-original .PostFull__header a, .PostFull__header .theme-original a, .theme-original .PlainLink {
  color: #788187;
}
.theme-light .link--secondary, .theme-light .articles__resteem .username, .articles__resteem .theme-light .username,
.theme-light .articles__crosspost .username,
.articles__crosspost .theme-light .username, .theme-light .timestamp__time, .theme-light .user__username, .theme-light .user__reputation, .theme-light .articles__tag-link a, .articles__tag-link .theme-light a, .theme-light .articles__resteem-username, .theme-light .Notices__author-link, .theme-light .ReplyEditor .button.hollow.no-border, .ReplyEditor .theme-light .button.hollow.no-border, .theme-light .PostFull__header a, .PostFull__header .theme-light a, .theme-light .PlainLink {
  color: #788187;
}
.theme-dark .link--secondary, .theme-dark .articles__resteem .username, .articles__resteem .theme-dark .username,
.theme-dark .articles__crosspost .username,
.articles__crosspost .theme-dark .username, .theme-dark .timestamp__time, .theme-dark .user__username, .theme-dark .user__reputation, .theme-dark .articles__tag-link a, .articles__tag-link .theme-dark a, .theme-dark .articles__resteem-username, .theme-dark .Notices__author-link, .theme-dark .ReplyEditor .button.hollow.no-border, .ReplyEditor .theme-dark .button.hollow.no-border, .theme-dark .PostFull__header a, .PostFull__header .theme-dark a, .theme-dark .PlainLink {
  color: #A6B2BA;
}
.theme-original .link--secondary:visited, .theme-original .articles__resteem .username:visited, .articles__resteem .theme-original .username:visited,
.theme-original .articles__crosspost .username:visited,
.articles__crosspost .theme-original .username:visited, .theme-original .timestamp__time:visited, .theme-original .user__username:visited, .theme-original .user__reputation:visited, .theme-original .articles__tag-link a:visited, .articles__tag-link .theme-original a:visited, .theme-original .articles__resteem-username:visited, .theme-original .Notices__author-link:visited, .theme-original .ReplyEditor .button.hollow.no-border:visited, .ReplyEditor .theme-original .button.hollow.no-border:visited, .theme-original .PostFull__header a:visited, .PostFull__header .theme-original a:visited, .theme-original .PlainLink:visited, .theme-original .link--secondary:active, .theme-original .articles__resteem .username:active, .articles__resteem .theme-original .username:active,
.theme-original .articles__crosspost .username:active,
.articles__crosspost .theme-original .username:active, .theme-original .timestamp__time:active, .theme-original .user__username:active, .theme-original .user__reputation:active, .theme-original .articles__tag-link a:active, .articles__tag-link .theme-original a:active, .theme-original .articles__resteem-username:active, .theme-original .Notices__author-link:active, .theme-original .ReplyEditor .button.hollow.no-border:active, .ReplyEditor .theme-original .button.hollow.no-border:active, .theme-original .PostFull__header a:active, .PostFull__header .theme-original a:active, .theme-original .PlainLink:active {
  color: #788187;
}
.theme-light .link--secondary:visited, .theme-light .articles__resteem .username:visited, .articles__resteem .theme-light .username:visited,
.theme-light .articles__crosspost .username:visited,
.articles__crosspost .theme-light .username:visited, .theme-light .timestamp__time:visited, .theme-light .user__username:visited, .theme-light .user__reputation:visited, .theme-light .articles__tag-link a:visited, .articles__tag-link .theme-light a:visited, .theme-light .articles__resteem-username:visited, .theme-light .Notices__author-link:visited, .theme-light .ReplyEditor .button.hollow.no-border:visited, .ReplyEditor .theme-light .button.hollow.no-border:visited, .theme-light .PostFull__header a:visited, .PostFull__header .theme-light a:visited, .theme-light .PlainLink:visited, .theme-light .link--secondary:active, .theme-light .articles__resteem .username:active, .articles__resteem .theme-light .username:active,
.theme-light .articles__crosspost .username:active,
.articles__crosspost .theme-light .username:active, .theme-light .timestamp__time:active, .theme-light .user__username:active, .theme-light .user__reputation:active, .theme-light .articles__tag-link a:active, .articles__tag-link .theme-light a:active, .theme-light .articles__resteem-username:active, .theme-light .Notices__author-link:active, .theme-light .ReplyEditor .button.hollow.no-border:active, .ReplyEditor .theme-light .button.hollow.no-border:active, .theme-light .PostFull__header a:active, .PostFull__header .theme-light a:active, .theme-light .PlainLink:active {
  color: #788187;
}
.theme-dark .link--secondary:visited, .theme-dark .articles__resteem .username:visited, .articles__resteem .theme-dark .username:visited,
.theme-dark .articles__crosspost .username:visited,
.articles__crosspost .theme-dark .username:visited, .theme-dark .timestamp__time:visited, .theme-dark .user__username:visited, .theme-dark .user__reputation:visited, .theme-dark .articles__tag-link a:visited, .articles__tag-link .theme-dark a:visited, .theme-dark .articles__resteem-username:visited, .theme-dark .Notices__author-link:visited, .theme-dark .ReplyEditor .button.hollow.no-border:visited, .ReplyEditor .theme-dark .button.hollow.no-border:visited, .theme-dark .PostFull__header a:visited, .PostFull__header .theme-dark a:visited, .theme-dark .PlainLink:visited, .theme-dark .link--secondary:active, .theme-dark .articles__resteem .username:active, .articles__resteem .theme-dark .username:active,
.theme-dark .articles__crosspost .username:active,
.articles__crosspost .theme-dark .username:active, .theme-dark .timestamp__time:active, .theme-dark .user__username:active, .theme-dark .user__reputation:active, .theme-dark .articles__tag-link a:active, .articles__tag-link .theme-dark a:active, .theme-dark .articles__resteem-username:active, .theme-dark .Notices__author-link:active, .theme-dark .ReplyEditor .button.hollow.no-border:active, .ReplyEditor .theme-dark .button.hollow.no-border:active, .theme-dark .PostFull__header a:active, .PostFull__header .theme-dark a:active, .theme-dark .PlainLink:active {
  color: #A6B2BA;
}
.theme-original .link--secondary:hover, .theme-original .articles__resteem .username:hover, .articles__resteem .theme-original .username:hover,
.theme-original .articles__crosspost .username:hover,
.articles__crosspost .theme-original .username:hover, .theme-original .timestamp__time:hover, .theme-original .user__username:hover, .theme-original .user__reputation:hover, .theme-original .articles__tag-link a:hover, .articles__tag-link .theme-original a:hover, .theme-original .articles__resteem-username:hover, .theme-original .Notices__author-link:hover, .theme-original .ReplyEditor .button.hollow.no-border:hover, .ReplyEditor .theme-original .button.hollow.no-border:hover, .theme-original .PostFull__header a:hover, .PostFull__header .theme-original a:hover, .theme-original .PlainLink:hover, .theme-original .link--secondary:focus, .theme-original .articles__resteem .username:focus, .articles__resteem .theme-original .username:focus,
.theme-original .articles__crosspost .username:focus,
.articles__crosspost .theme-original .username:focus, .theme-original .timestamp__time:focus, .theme-original .user__username:focus, .theme-original .user__reputation:focus, .theme-original .articles__tag-link a:focus, .articles__tag-link .theme-original a:focus, .theme-original .articles__resteem-username:focus, .theme-original .Notices__author-link:focus, .theme-original .ReplyEditor .button.hollow.no-border:focus, .ReplyEditor .theme-original .button.hollow.no-border:focus, .theme-original .PostFull__header a:focus, .PostFull__header .theme-original a:focus, .theme-original .PlainLink:focus {
  color: #004EFF;
}
.theme-light .link--secondary:hover, .theme-light .articles__resteem .username:hover, .articles__resteem .theme-light .username:hover,
.theme-light .articles__crosspost .username:hover,
.articles__crosspost .theme-light .username:hover, .theme-light .timestamp__time:hover, .theme-light .user__username:hover, .theme-light .user__reputation:hover, .theme-light .articles__tag-link a:hover, .articles__tag-link .theme-light a:hover, .theme-light .articles__resteem-username:hover, .theme-light .Notices__author-link:hover, .theme-light .ReplyEditor .button.hollow.no-border:hover, .ReplyEditor .theme-light .button.hollow.no-border:hover, .theme-light .PostFull__header a:hover, .PostFull__header .theme-light a:hover, .theme-light .PlainLink:hover, .theme-light .link--secondary:focus, .theme-light .articles__resteem .username:focus, .articles__resteem .theme-light .username:focus,
.theme-light .articles__crosspost .username:focus,
.articles__crosspost .theme-light .username:focus, .theme-light .timestamp__time:focus, .theme-light .user__username:focus, .theme-light .user__reputation:focus, .theme-light .articles__tag-link a:focus, .articles__tag-link .theme-light a:focus, .theme-light .articles__resteem-username:focus, .theme-light .Notices__author-link:focus, .theme-light .ReplyEditor .button.hollow.no-border:focus, .ReplyEditor .theme-light .button.hollow.no-border:focus, .theme-light .PostFull__header a:focus, .PostFull__header .theme-light a:focus, .theme-light .PlainLink:focus {
  color: #E31337;
}
.theme-dark .link--secondary:hover, .theme-dark .articles__resteem .username:hover, .articles__resteem .theme-dark .username:hover,
.theme-dark .articles__crosspost .username:hover,
.articles__crosspost .theme-dark .username:hover, .theme-dark .timestamp__time:hover, .theme-dark .user__username:hover, .theme-dark .user__reputation:hover, .theme-dark .articles__tag-link a:hover, .articles__tag-link .theme-dark a:hover, .theme-dark .articles__resteem-username:hover, .theme-dark .Notices__author-link:hover, .theme-dark .ReplyEditor .button.hollow.no-border:hover, .ReplyEditor .theme-dark .button.hollow.no-border:hover, .theme-dark .PostFull__header a:hover, .PostFull__header .theme-dark a:hover, .theme-dark .PlainLink:hover, .theme-dark .link--secondary:focus, .theme-dark .articles__resteem .username:focus, .articles__resteem .theme-dark .username:focus,
.theme-dark .articles__crosspost .username:focus,
.articles__crosspost .theme-dark .username:focus, .theme-dark .timestamp__time:focus, .theme-dark .user__username:focus, .theme-dark .user__reputation:focus, .theme-dark .articles__tag-link a:focus, .articles__tag-link .theme-dark a:focus, .theme-dark .articles__resteem-username:focus, .theme-dark .Notices__author-link:focus, .theme-dark .ReplyEditor .button.hollow.no-border:focus, .ReplyEditor .theme-dark .button.hollow.no-border:focus, .theme-dark .PostFull__header a:focus, .PostFull__header .theme-dark a:focus, .theme-dark .PlainLink:focus {
  color: #E31337;
}
.theme-original .link--accent, .theme-original .c-sidebar__more-link, .theme-original .PostFull__body a, .PostFull__body .theme-original a, .theme-original .Markdown a, .Markdown .theme-original a {
  color: #004EFF;
}
.theme-light .link--accent, .theme-light .c-sidebar__more-link, .theme-light .PostFull__body a, .PostFull__body .theme-light a, .theme-light .Markdown a, .Markdown .theme-light a {
  color: #E31337;
}
.theme-dark .link--accent, .theme-dark .c-sidebar__more-link, .theme-dark .PostFull__body a, .PostFull__body .theme-dark a, .theme-dark .Markdown a, .Markdown .theme-dark a {
  color: #E31337;
}
.theme-original .link--accent:visited, .theme-original .c-sidebar__more-link:visited, .theme-original .PostFull__body a:visited, .PostFull__body .theme-original a:visited, .theme-original .Markdown a:visited, .Markdown .theme-original a:visited, .theme-original .link--accent:active, .theme-original .c-sidebar__more-link:active, .theme-original .PostFull__body a:active, .PostFull__body .theme-original a:active, .theme-original .Markdown a:active, .Markdown .theme-original a:active {
  color: #004EFF;
}
.theme-light .link--accent:visited, .theme-light .c-sidebar__more-link:visited, .theme-light .PostFull__body a:visited, .PostFull__body .theme-light a:visited, .theme-light .Markdown a:visited, .Markdown .theme-light a:visited, .theme-light .link--accent:active, .theme-light .c-sidebar__more-link:active, .theme-light .PostFull__body a:active, .PostFull__body .theme-light a:active, .theme-light .Markdown a:active, .Markdown .theme-light a:active {
  color: #E31337;
}
.theme-dark .link--accent:visited, .theme-dark .c-sidebar__more-link:visited, .theme-dark .PostFull__body a:visited, .PostFull__body .theme-dark a:visited, .theme-dark .Markdown a:visited, .Markdown .theme-dark a:visited, .theme-dark .link--accent:active, .theme-dark .c-sidebar__more-link:active, .theme-dark .PostFull__body a:active, .PostFull__body .theme-dark a:active, .theme-dark .Markdown a:active, .Markdown .theme-dark a:active {
  color: #E31337;
}
.theme-original .link--accent:hover, .theme-original .c-sidebar__more-link:hover, .theme-original .PostFull__body a:hover, .PostFull__body .theme-original a:hover, .theme-original .Markdown a:hover, .Markdown .theme-original a:hover, .theme-original .link--accent:focus, .theme-original .c-sidebar__more-link:focus, .theme-original .PostFull__body a:focus, .PostFull__body .theme-original a:focus, .theme-original .Markdown a:focus, .Markdown .theme-original a:focus {
  color: #1A5099;
}
.theme-light .link--accent:hover, .theme-light .c-sidebar__more-link:hover, .theme-light .PostFull__body a:hover, .PostFull__body .theme-light a:hover, .theme-light .Markdown a:hover, .Markdown .theme-light a:hover, .theme-light .link--accent:focus, .theme-light .c-sidebar__more-link:focus, .theme-light .PostFull__body a:focus, .PostFull__body .theme-light a:focus, .theme-light .Markdown a:focus, .Markdown .theme-light a:focus {
  color: #E31337;
}
.theme-dark .link--accent:hover, .theme-dark .c-sidebar__more-link:hover, .theme-dark .PostFull__body a:hover, .PostFull__body .theme-dark a:hover, .theme-dark .Markdown a:hover, .Markdown .theme-dark a:hover, .theme-dark .link--accent:focus, .theme-dark .c-sidebar__more-link:focus, .theme-dark .PostFull__body a:focus, .PostFull__body .theme-dark a:focus, .theme-dark .Markdown a:focus, .Markdown .theme-dark a:focus {
  color: #e61336;
}

.e-btn-hollow {
  background-color: transparent;
  transition: 0.2s all ease-in-out;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
}
.theme-original .e-btn-hollow {
  border: 1px solid #004EFF;
  color: #004EFF;
}
.theme-light .e-btn-hollow {
  border: 1px solid #E31337;
  color: #E31337;
}
.theme-dark .e-btn-hollow {
  border: 1px solid #E31337;
  color: #E31337;
}
.theme-original .e-btn-hollow:hover {
  border: 1px solid #788187;
  color: #333;
}
.theme-light .e-btn-hollow:hover {
  border: 1px solid #788187;
  color: #333;
}
.theme-dark .e-btn-hollow:hover {
  border: 1px solid #A6B2BA;
  color: #fcfcfc;
}

.e-btn, .UserWallet__claimbox .button, .Header__buttons > .Header__user-signup > a.Header__signup-link, .ReplyEditor .button, .PostFull__footer .PostFull__crosspost-footer .button, .reveal .button {
  text-decoration: none;
  font-weight: bold;
  transition: 0.2s all ease-in-out;
  text-transform: capitalize;
  border-radius: 0;
  text-decoration: none;
  font-size: 18px;
  font-size: 1.125rem;
}
.theme-original .e-btn, .theme-original .UserWallet__claimbox .button, .UserWallet__claimbox .theme-original .button, .theme-original .Header__buttons > .Header__user-signup > a.Header__signup-link, .theme-original .ReplyEditor .button, .ReplyEditor .theme-original .button, .theme-original .PostFull__footer .PostFull__crosspost-footer .button, .PostFull__footer .PostFull__crosspost-footer .theme-original .button, .theme-original .reveal .button, .reveal .theme-original .button {
  background-color: #1A5099;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 2px 2px 0px 0px transparent;
  color: #fcfcfc;
}
.theme-light .e-btn, .theme-light .UserWallet__claimbox .button, .UserWallet__claimbox .theme-light .button, .theme-light .Header__buttons > .Header__user-signup > a.Header__signup-link, .theme-light .ReplyEditor .button, .ReplyEditor .theme-light .button, .theme-light .PostFull__footer .PostFull__crosspost-footer .button, .PostFull__footer .PostFull__crosspost-footer .theme-light .button, .theme-light .reveal .button, .reveal .theme-light .button {
  background-color: #212529;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 2px 2px 0px 0px #E31337;
  color: #fcfcfc;
}
.theme-dark .e-btn, .theme-dark .UserWallet__claimbox .button, .UserWallet__claimbox .theme-dark .button, .theme-dark .Header__buttons > .Header__user-signup > a.Header__signup-link, .theme-dark .ReplyEditor .button, .ReplyEditor .theme-dark .button, .theme-dark .PostFull__footer .PostFull__crosspost-footer .button, .PostFull__footer .PostFull__crosspost-footer .theme-dark .button, .theme-dark .reveal .button, .reveal .theme-dark .button {
  background-color: #fff;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 2px 2px 0px 0px #E31337;
  color: #2C3A45;
}
.theme-original .e-btn:hover, .theme-original .UserWallet__claimbox .button:hover, .UserWallet__claimbox .theme-original .button:hover, .theme-original .Header__buttons > .Header__user-signup > a.Header__signup-link:hover, .theme-original .ReplyEditor .button:hover, .ReplyEditor .theme-original .button:hover, .theme-original .PostFull__footer .PostFull__crosspost-footer .button:hover, .PostFull__footer .PostFull__crosspost-footer .theme-original .button:hover, .theme-original .reveal .button:hover, .reveal .theme-original .button:hover, .theme-original .e-btn:focus, .theme-original .UserWallet__claimbox .button:focus, .UserWallet__claimbox .theme-original .button:focus, .theme-original .Header__buttons > .Header__user-signup > a.Header__signup-link:focus, .theme-original .ReplyEditor .button:focus, .ReplyEditor .theme-original .button:focus, .theme-original .PostFull__footer .PostFull__crosspost-footer .button:focus, .PostFull__footer .PostFull__crosspost-footer .theme-original .button:focus, .theme-original .reveal .button:focus, .reveal .theme-original .button:focus {
  background-color: #4BA2F2;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 4px 4px 0 0;
  color: #fcfcfc;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
}
.theme-light .e-btn:hover, .theme-light .UserWallet__claimbox .button:hover, .UserWallet__claimbox .theme-light .button:hover, .theme-light .Header__buttons > .Header__user-signup > a.Header__signup-link:hover, .theme-light .ReplyEditor .button:hover, .ReplyEditor .theme-light .button:hover, .theme-light .PostFull__footer .PostFull__crosspost-footer .button:hover, .PostFull__footer .PostFull__crosspost-footer .theme-light .button:hover, .theme-light .reveal .button:hover, .reveal .theme-light .button:hover, .theme-light .e-btn:focus, .theme-light .UserWallet__claimbox .button:focus, .UserWallet__claimbox .theme-light .button:focus, .theme-light .Header__buttons > .Header__user-signup > a.Header__signup-link:focus, .theme-light .ReplyEditor .button:focus, .ReplyEditor .theme-light .button:focus, .theme-light .PostFull__footer .PostFull__crosspost-footer .button:focus, .PostFull__footer .PostFull__crosspost-footer .theme-light .button:focus, .theme-light .reveal .button:focus, .reveal .theme-light .button:focus {
  background-color: #E31337;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 4px 4px 0 0 #212529;
  color: #fff;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
}
.theme-dark .e-btn:hover, .theme-dark .UserWallet__claimbox .button:hover, .UserWallet__claimbox .theme-dark .button:hover, .theme-dark .Header__buttons > .Header__user-signup > a.Header__signup-link:hover, .theme-dark .ReplyEditor .button:hover, .ReplyEditor .theme-dark .button:hover, .theme-dark .PostFull__footer .PostFull__crosspost-footer .button:hover, .PostFull__footer .PostFull__crosspost-footer .theme-dark .button:hover, .theme-dark .reveal .button:hover, .reveal .theme-dark .button:hover, .theme-dark .e-btn:focus, .theme-dark .UserWallet__claimbox .button:focus, .UserWallet__claimbox .theme-dark .button:focus, .theme-dark .Header__buttons > .Header__user-signup > a.Header__signup-link:focus, .theme-dark .ReplyEditor .button:focus, .ReplyEditor .theme-dark .button:focus, .theme-dark .PostFull__footer .PostFull__crosspost-footer .button:focus, .PostFull__footer .PostFull__crosspost-footer .theme-dark .button:focus, .theme-dark .reveal .button:focus, .reveal .theme-dark .button:focus {
  background-color: #E31337;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 4px 4px 0 0 #fff;
  color: #fff;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0);
}
.theme-original .e-btn:visited, .theme-original .UserWallet__claimbox .button:visited, .UserWallet__claimbox .theme-original .button:visited, .theme-original .Header__buttons > .Header__user-signup > a.Header__signup-link:visited, .theme-original .ReplyEditor .button:visited, .ReplyEditor .theme-original .button:visited, .theme-original .PostFull__footer .PostFull__crosspost-footer .button:visited, .PostFull__footer .PostFull__crosspost-footer .theme-original .button:visited, .theme-original .reveal .button:visited, .reveal .theme-original .button:visited, .theme-original .e-btn:active, .theme-original .UserWallet__claimbox .button:active, .UserWallet__claimbox .theme-original .button:active, .theme-original .Header__buttons > .Header__user-signup > a.Header__signup-link:active, .theme-original .ReplyEditor .button:active, .ReplyEditor .theme-original .button:active, .theme-original .PostFull__footer .PostFull__crosspost-footer .button:active, .PostFull__footer .PostFull__crosspost-footer .theme-original .button:active, .theme-original .reveal .button:active, .reveal .theme-original .button:active {
  color: #fcfcfc;
}
.theme-light .e-btn:visited, .theme-light .UserWallet__claimbox .button:visited, .UserWallet__claimbox .theme-light .button:visited, .theme-light .Header__buttons > .Header__user-signup > a.Header__signup-link:visited, .theme-light .ReplyEditor .button:visited, .ReplyEditor .theme-light .button:visited, .theme-light .PostFull__footer .PostFull__crosspost-footer .button:visited, .PostFull__footer .PostFull__crosspost-footer .theme-light .button:visited, .theme-light .reveal .button:visited, .reveal .theme-light .button:visited, .theme-light .e-btn:active, .theme-light .UserWallet__claimbox .button:active, .UserWallet__claimbox .theme-light .button:active, .theme-light .Header__buttons > .Header__user-signup > a.Header__signup-link:active, .theme-light .ReplyEditor .button:active, .ReplyEditor .theme-light .button:active, .theme-light .PostFull__footer .PostFull__crosspost-footer .button:active, .PostFull__footer .PostFull__crosspost-footer .theme-light .button:active, .theme-light .reveal .button:active, .reveal .theme-light .button:active {
  color: #fcfcfc;
}
.theme-dark .e-btn:visited, .theme-dark .UserWallet__claimbox .button:visited, .UserWallet__claimbox .theme-dark .button:visited, .theme-dark .Header__buttons > .Header__user-signup > a.Header__signup-link:visited, .theme-dark .ReplyEditor .button:visited, .ReplyEditor .theme-dark .button:visited, .theme-dark .PostFull__footer .PostFull__crosspost-footer .button:visited, .PostFull__footer .PostFull__crosspost-footer .theme-dark .button:visited, .theme-dark .reveal .button:visited, .reveal .theme-dark .button:visited, .theme-dark .e-btn:active, .theme-dark .UserWallet__claimbox .button:active, .UserWallet__claimbox .theme-dark .button:active, .theme-dark .Header__buttons > .Header__user-signup > a.Header__signup-link:active, .theme-dark .ReplyEditor .button:active, .ReplyEditor .theme-dark .button:active, .theme-dark .PostFull__footer .PostFull__crosspost-footer .button:active, .PostFull__footer .PostFull__crosspost-footer .theme-dark .button:active, .theme-dark .reveal .button:active, .reveal .theme-dark .button:active {
  color: #2C3A45;
}
.theme-original .e-btn:visited:hover, .theme-original .UserWallet__claimbox .button:visited:hover, .UserWallet__claimbox .theme-original .button:visited:hover, .theme-original .Header__buttons > .Header__user-signup > a.Header__signup-link:visited:hover, .theme-original .ReplyEditor .button:visited:hover, .ReplyEditor .theme-original .button:visited:hover, .theme-original .PostFull__footer .PostFull__crosspost-footer .button:visited:hover, .PostFull__footer .PostFull__crosspost-footer .theme-original .button:visited:hover, .theme-original .reveal .button:visited:hover, .reveal .theme-original .button:visited:hover, .theme-original .e-btn:visited:focus, .theme-original .UserWallet__claimbox .button:visited:focus, .UserWallet__claimbox .theme-original .button:visited:focus, .theme-original .Header__buttons > .Header__user-signup > a.Header__signup-link:visited:focus, .theme-original .ReplyEditor .button:visited:focus, .ReplyEditor .theme-original .button:visited:focus, .theme-original .PostFull__footer .PostFull__crosspost-footer .button:visited:focus, .PostFull__footer .PostFull__crosspost-footer .theme-original .button:visited:focus, .theme-original .reveal .button:visited:focus, .reveal .theme-original .button:visited:focus, .theme-original .e-btn:active:hover, .theme-original .UserWallet__claimbox .button:active:hover, .UserWallet__claimbox .theme-original .button:active:hover, .theme-original .Header__buttons > .Header__user-signup > a.Header__signup-link:active:hover, .theme-original .ReplyEditor .button:active:hover, .ReplyEditor .theme-original .button:active:hover, .theme-original .PostFull__footer .PostFull__crosspost-footer .button:active:hover, .PostFull__footer .PostFull__crosspost-footer .theme-original .button:active:hover, .theme-original .reveal .button:active:hover, .reveal .theme-original .button:active:hover, .theme-original .e-btn:active:focus, .theme-original .UserWallet__claimbox .button:active:focus, .UserWallet__claimbox .theme-original .button:active:focus, .theme-original .Header__buttons > .Header__user-signup > a.Header__signup-link:active:focus, .theme-original .ReplyEditor .button:active:focus, .ReplyEditor .theme-original .button:active:focus, .theme-original .PostFull__footer .PostFull__crosspost-footer .button:active:focus, .PostFull__footer .PostFull__crosspost-footer .theme-original .button:active:focus, .theme-original .reveal .button:active:focus, .reveal .theme-original .button:active:focus {
  color: #fcfcfc;
}
.theme-light .e-btn:visited:hover, .theme-light .UserWallet__claimbox .button:visited:hover, .UserWallet__claimbox .theme-light .button:visited:hover, .theme-light .Header__buttons > .Header__user-signup > a.Header__signup-link:visited:hover, .theme-light .ReplyEditor .button:visited:hover, .ReplyEditor .theme-light .button:visited:hover, .theme-light .PostFull__footer .PostFull__crosspost-footer .button:visited:hover, .PostFull__footer .PostFull__crosspost-footer .theme-light .button:visited:hover, .theme-light .reveal .button:visited:hover, .reveal .theme-light .button:visited:hover, .theme-light .e-btn:visited:focus, .theme-light .UserWallet__claimbox .button:visited:focus, .UserWallet__claimbox .theme-light .button:visited:focus, .theme-light .Header__buttons > .Header__user-signup > a.Header__signup-link:visited:focus, .theme-light .ReplyEditor .button:visited:focus, .ReplyEditor .theme-light .button:visited:focus, .theme-light .PostFull__footer .PostFull__crosspost-footer .button:visited:focus, .PostFull__footer .PostFull__crosspost-footer .theme-light .button:visited:focus, .theme-light .reveal .button:visited:focus, .reveal .theme-light .button:visited:focus, .theme-light .e-btn:active:hover, .theme-light .UserWallet__claimbox .button:active:hover, .UserWallet__claimbox .theme-light .button:active:hover, .theme-light .Header__buttons > .Header__user-signup > a.Header__signup-link:active:hover, .theme-light .ReplyEditor .button:active:hover, .ReplyEditor .theme-light .button:active:hover, .theme-light .PostFull__footer .PostFull__crosspost-footer .button:active:hover, .PostFull__footer .PostFull__crosspost-footer .theme-light .button:active:hover, .theme-light .reveal .button:active:hover, .reveal .theme-light .button:active:hover, .theme-light .e-btn:active:focus, .theme-light .UserWallet__claimbox .button:active:focus, .UserWallet__claimbox .theme-light .button:active:focus, .theme-light .Header__buttons > .Header__user-signup > a.Header__signup-link:active:focus, .theme-light .ReplyEditor .button:active:focus, .ReplyEditor .theme-light .button:active:focus, .theme-light .PostFull__footer .PostFull__crosspost-footer .button:active:focus, .PostFull__footer .PostFull__crosspost-footer .theme-light .button:active:focus, .theme-light .reveal .button:active:focus, .reveal .theme-light .button:active:focus {
  color: #fff;
}
.theme-dark .e-btn:visited:hover, .theme-dark .UserWallet__claimbox .button:visited:hover, .UserWallet__claimbox .theme-dark .button:visited:hover, .theme-dark .Header__buttons > .Header__user-signup > a.Header__signup-link:visited:hover, .theme-dark .ReplyEditor .button:visited:hover, .ReplyEditor .theme-dark .button:visited:hover, .theme-dark .PostFull__footer .PostFull__crosspost-footer .button:visited:hover, .PostFull__footer .PostFull__crosspost-footer .theme-dark .button:visited:hover, .theme-dark .reveal .button:visited:hover, .reveal .theme-dark .button:visited:hover, .theme-dark .e-btn:visited:focus, .theme-dark .UserWallet__claimbox .button:visited:focus, .UserWallet__claimbox .theme-dark .button:visited:focus, .theme-dark .Header__buttons > .Header__user-signup > a.Header__signup-link:visited:focus, .theme-dark .ReplyEditor .button:visited:focus, .ReplyEditor .theme-dark .button:visited:focus, .theme-dark .PostFull__footer .PostFull__crosspost-footer .button:visited:focus, .PostFull__footer .PostFull__crosspost-footer .theme-dark .button:visited:focus, .theme-dark .reveal .button:visited:focus, .reveal .theme-dark .button:visited:focus, .theme-dark .e-btn:active:hover, .theme-dark .UserWallet__claimbox .button:active:hover, .UserWallet__claimbox .theme-dark .button:active:hover, .theme-dark .Header__buttons > .Header__user-signup > a.Header__signup-link:active:hover, .theme-dark .ReplyEditor .button:active:hover, .ReplyEditor .theme-dark .button:active:hover, .theme-dark .PostFull__footer .PostFull__crosspost-footer .button:active:hover, .PostFull__footer .PostFull__crosspost-footer .theme-dark .button:active:hover, .theme-dark .reveal .button:active:hover, .reveal .theme-dark .button:active:hover, .theme-dark .e-btn:active:focus, .theme-dark .UserWallet__claimbox .button:active:focus, .UserWallet__claimbox .theme-dark .button:active:focus, .theme-dark .Header__buttons > .Header__user-signup > a.Header__signup-link:active:focus, .theme-dark .ReplyEditor .button:active:focus, .ReplyEditor .theme-dark .button:active:focus, .theme-dark .PostFull__footer .PostFull__crosspost-footer .button:active:focus, .PostFull__footer .PostFull__crosspost-footer .theme-dark .button:active:focus, .theme-dark .reveal .button:active:focus, .reveal .theme-dark .button:active:focus {
  color: #fff;
}

.button.disabled, .button[disabled] {
  opacity: 0.25;
  cursor: not-allowed;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
}
.theme-original .button.disabled, .theme-original .button[disabled] {
  background-color: #1A5099;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #fcfcfc;
}
.theme-light .button.disabled, .theme-light .button[disabled] {
  background-color: #212529;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #fcfcfc;
}
.theme-dark .button.disabled, .theme-dark .button[disabled] {
  background-color: #fff;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #2C3A45;
}
.theme-original .button.disabled:hover, .theme-original .button[disabled]:hover {
  background-color: #1A5099;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #fcfcfc;
}
.theme-light .button.disabled:hover, .theme-light .button[disabled]:hover {
  background-color: #212529;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #fcfcfc;
}
.theme-dark .button.disabled:hover, .theme-dark .button[disabled]:hover {
  background-color: #fff;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #2C3A45;
}

.e-btn--black, .PostFull__footer .PostFull__crosspost-footer .button, .reveal .button {
  background-color: #212529;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 5px 5px 0 0 #E31337;
  color: #fff;
}
.e-btn--black:hover, .PostFull__footer .PostFull__crosspost-footer .button:hover, .reveal .button:hover, .e-btn--black:focus, .PostFull__footer .PostFull__crosspost-footer .button:focus, .reveal .button:focus {
  background-color: #E31337;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 7px 7px 0 0 #212529;
  color: #fff;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
}
.e-btn--black:visited, .PostFull__footer .PostFull__crosspost-footer .button:visited, .reveal .button:visited, .e-btn--black:active, .PostFull__footer .PostFull__crosspost-footer .button:active, .reveal .button:active {
  background-color: #212529;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 5px 5px 0 0 #E31337;
  color: #fff;
}
.e-btn--black.disabled, .PostFull__footer .PostFull__crosspost-footer .disabled.button, .reveal .disabled.button, .e-btn--black[disabled], .PostFull__footer .PostFull__crosspost-footer [disabled].button, .reveal [disabled].button {
  opacity: 0.25;
  cursor: not-allowed;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
}
.e-btn--black.disabled:hover, .PostFull__footer .PostFull__crosspost-footer .disabled.button:hover, .reveal .disabled.button:hover, .e-btn--black.disabled:focus, .PostFull__footer .PostFull__crosspost-footer .disabled.button:focus, .reveal .disabled.button:focus, .e-btn--black[disabled]:hover, .PostFull__footer .PostFull__crosspost-footer [disabled].button:hover, .reveal [disabled].button:hover, .e-btn--black[disabled]:focus, .PostFull__footer .PostFull__crosspost-footer [disabled].button:focus, .reveal [disabled].button:focus {
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  background-color: #212529;
  color: #fff;
}
.e-btn--black.hollow, .PostFull__footer .PostFull__crosspost-footer .hollow.button, .reveal .hollow.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #788187;
  font-weight: normal;
  transition: 0.2s all ease-in-out;
  border: transparent;
}
.e-btn--black.hollow:hover, .PostFull__footer .PostFull__crosspost-footer .hollow.button:hover, .reveal .hollow.button:hover, .e-btn--black.hollow:focus, .PostFull__footer .PostFull__crosspost-footer .hollow.button:focus, .reveal .hollow.button:focus {
  background-color: transparent;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #2C3A45;
  font-weight: normal;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0);
}
.e-btn--black.hollow:visited, .PostFull__footer .PostFull__crosspost-footer .hollow.button:visited, .reveal .hollow.button:visited, .e-btn--black.hollow:active, .PostFull__footer .PostFull__crosspost-footer .hollow.button:active, .reveal .hollow.button:active {
  background-color: transparent;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #788187;
  font-weight: normal;
}

.theme-dark .button.hollow:hover, .theme-dark .button.hollow:focus,
.theme-light .button.hollow:hover,
.theme-light .button.hollow:focus {
  border-color: #E31337;
  color: #E31337;
  outline-color: #E31337;
}

.menu > li > a {
  line-height: 1.5rem;
}

.tooltip {
  margin-top: -1rem;
}

.dropdown-pane {
  width: auto;
  padding: 0;
  box-shadow: 1px 1px 5px 0px rgba(50, 50, 50, 0.75);
  z-index: 1000;
  font-size: inherit;
  background-color: #fff;
}
.dropdown-pane .VerticalMenu a:hover {
  background-color: #f6f6f6;
  color: #d81233;
}

a {
  transition: 0.2s all ease-in-out;
}
.theme-original a {
  color: #004EFF;
}
.theme-light a {
  color: #E31337;
}
.theme-dark a {
  color: #E31337;
}
.theme-original a:hover, .theme-original a:focus {
  color: #1A5099;
}
.theme-light a:hover, .theme-light a:focus {
  color: #E31337;
}
.theme-dark a:hover, .theme-dark a:focus {
  color: #e61336;
}

div[role=dialog] {
  z-index: 500;
}

input[type=submit].disabled, input[type=submit].disabled:focus {
  opacity: 1;
  cursor: inherit;
  background-color: #cacaca;
}

button, .button {
  text-transform: uppercase;
}

.column, .columns {
  min-width: 0;
}

.callout {
  margin-top: 1rem;
}
.theme-original .callout {
  color: #333;
  background-color: #f3faf0;
  border: 1px solid #eee;
}
.theme-light .callout {
  color: #333;
  background-color: #f3faf0;
  border: 1px solid #eee;
}
.theme-dark .callout {
  color: #fcfcfc;
  background-color: #11161A;
  border: 1px solid #2c3136;
}
.theme-original .callout.alert {
  color: #333;
  background-color: #ffa6a6;
  border: 1px solid #eee;
}
.theme-light .callout.alert {
  color: #333;
  background-color: #ffa6a6;
  border: 1px solid #eee;
}
.theme-dark .callout.alert {
  color: #fcfcfc;
  background-color: #ffa6a6;
  border: 1px solid #2c3136;
}

.close-button {
  position: absolute;
  z-index: 999;
  cursor: pointer;
  transition: color 0.2s ease-in-out;
  top: 0.5rem;
  font-size: 2em;
  line-height: 1;
}
.theme-original .close-button {
  color: #788187;
}
.theme-light .close-button {
  color: #788187;
}
.theme-dark .close-button {
  color: #A6B2BA;
}
.theme-original .close-button:hover, .theme-original .close-button:focus {
  color: #004EFF;
}
.theme-light .close-button:hover, .theme-light .close-button:focus {
  color: #E31337;
}
.theme-dark .close-button:hover, .theme-dark .close-button:focus {
  color: #E31337;
}

.theme-original hr {
  border-bottom: 1px solid #eee;
}
.theme-light hr {
  border-bottom: 1px solid #eee;
}
.theme-dark hr {
  border-bottom: 1px solid #2c3136;
}

table {
  box-shadow: inset 0 0 0 -1px red;
}

.theme-original thead, .theme-original tbody, .theme-original tfoot {
  background-color: #f8f8ff;
}
.theme-light thead, .theme-light tbody, .theme-light tfoot {
  background-color: #f4f4fd;
}
.theme-dark thead, .theme-dark tbody, .theme-dark tfoot {
  background-color: #212529;
}

.theme-original thead {
  background-color: #f4f4f4;
  color: #333;
}
.theme-light thead {
  background-color: #f4f4f4;
  color: #333;
}
.theme-dark thead {
  background-color: #212C33;
  color: #fcfcfc;
}

.theme-original tbody tr:nth-child(even) {
  background-color: #f4f4f4;
}
.theme-light tbody tr:nth-child(even) {
  background-color: #f4f4f4;
}
.theme-dark tbody tr:nth-child(even) {
  background-color: #212C33;
}

.reveal-overlay {
  background-color: rgba(0, 0, 0, 0.88);
  transition: 0.2s all ease-in-out;
}

.reveal {
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 7px 7px 0 0 #E31337;
  border-radius: 0 30px;
  border: transparent;
  transition: 0.2s all ease-in-out;
  outline: none;
}
.theme-original .reveal {
  background-color: #fafaff;
  color: #333;
}
.theme-light .reveal {
  background-color: #fff;
  color: #333;
}
.theme-dark .reveal {
  background-color: #212529;
  color: #fcfcfc;
}
.theme-original .reveal label {
  color: #333;
}
.theme-light .reveal label {
  color: #333;
}
.theme-dark .reveal label {
  color: #fcfcfc;
}
.reveal .button {
  min-width: 100px;
}
.reveal h4 {
  font-weight: bold;
}

.progress {
  border: none;
  width: 100%;
  height: 8px;
  border-radius: 3px;
  background-color: #eee;
}
.progress div {
  background-color: #E31337;
  border-radius: 3px;
  border: none;
  height: 8px;
}

.fade-in {
  opacity: 0;
  filter: alpha(opacity=0);
}
.fade-in--1 {
  -webkit-animation: fade-in 1s ease-in-out 0.03s both;
          animation: fade-in 1s ease-in-out 0.03s both;
}
.fade-in--2 {
  -webkit-animation: fade-in 1s ease-in-out 0.06s both;
          animation: fade-in 1s ease-in-out 0.06s both;
}
.fade-in--3 {
  -webkit-animation: fade-in 1s ease-in-out 0.09s both;
          animation: fade-in 1s ease-in-out 0.09s both;
}
.fade-in--4 {
  -webkit-animation: fade-in 1s ease-in-out 0.12s both;
          animation: fade-in 1s ease-in-out 0.12s both;
}
.fade-in--5 {
  -webkit-animation: fade-in 1s ease-in-out 0.15s both;
          animation: fade-in 1s ease-in-out 0.15s both;
}
.fade-in--6 {
  -webkit-animation: fade-in 1s ease-in-out 0.18s both;
          animation: fade-in 1s ease-in-out 0.18s both;
}
.fade-in--7 {
  -webkit-animation: fade-in 1s ease-in-out 0.21s both;
          animation: fade-in 1s ease-in-out 0.21s both;
}
.fade-in--8 {
  -webkit-animation: fade-in 1s ease-in-out 0.24s both;
          animation: fade-in 1s ease-in-out 0.24s both;
}
.fade-in--9 {
  -webkit-animation: fade-in 1s ease-in-out 0.27s both;
          animation: fade-in 1s ease-in-out 0.27s both;
}
.fade-in--10 {
  -webkit-animation: fade-in 1s ease-in-out 0.3s both;
          animation: fade-in 1s ease-in-out 0.3s both;
}

@-webkit-keyframes fade-in {
  0% {
    opacity: 0;
    filter: alpha(opacity=0);
  }
  100% {
    opacity: 1;
    filter: alpha(opacity=100);
  }
}

@keyframes fade-in {
  0% {
    opacity: 0;
    filter: alpha(opacity=0);
  }
  100% {
    opacity: 1;
    filter: alpha(opacity=100);
  }
}
@-webkit-keyframes fade-in-up {
  0% {
    opacity: 0;
    filter: alpha(opacity=0);
    transform: translate(-24px, 24px);
  }
  100% {
    opacity: 1;
    filter: alpha(opacity=100);
    transform: translate(0px, 0px);
  }
}
@keyframes fade-in-up {
  0% {
    opacity: 0;
    filter: alpha(opacity=0);
    transform: translate(-24px, 24px);
  }
  100% {
    opacity: 1;
    filter: alpha(opacity=100);
    transform: translate(0px, 0px);
  }
}
form .error input, form .error input:active, form .error input:focus {
  border-color: #ff0264;
}
form .error label, form .error .help-text {
  color: #ff0264;
}
form .error .help-text {
  margin-top: 0.4rem;
}
form .success {
  color: #3adb76;
  transition: 0.3s all ease-in-out;
}

button {
  margin-right: 15px !important;
}

input, textarea, select {
  margin-bottom: 0px !important;
}

.error {
  color: #ff0264;
  margin-bottom: 10px;
  transition: 0.3s all ease-in-out;
}

p.error {
  padding-top: 6px;
  line-height: 1.1;
}

.warning {
  color: darkgoldenrod;
  margin-bottom: 10px;
  transition: 0.3s all ease-in-out;
}

.darkred {
  color: darkred;
  margin-bottom: 10px;
}

.info {
  color: dimgrey;
  margin-bottom: 10px;
}

.hoverBackground:hover {
  background-color: antiquewhite;
}

.de-emphasize {
  color: #8a8a8a;
}

.overflow-ellipsis {
  overflow: hidden;
  text-overflow: ellipsis;
}

.darkbtn {
  padding: 12px;
  background-color: #eeeeee;
}

.theme-original label {
  color: #333;
}
.theme-light label {
  color: #333;
}
.theme-dark label {
  color: #fcfcfc;
}

.Markdown {
  font-family: "Source Serif Pro", serif;
  font-size: 120%;
  line-height: 150%;
}

.Markdown.MarkdownViewer--small {
  font-family: inherit;
  font-size: 110%;
}
.Markdown.MarkdownViewer--small img {
  max-width: 400px;
  max-height: 400px;
}
.Markdown.MarkdownViewer--small div.videoWrapper {
  max-width: 480px;
  padding-bottom: 270px;
}

.Markdown {
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
  -webkit-hyphens: none;
      -ms-hyphens: none;
          hyphens: none;
}
.Markdown h1, .Markdown h2, .Markdown h3, .Markdown h4, .Markdown h5, .Markdown h6 {
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 600;
}
.Markdown h1 {
  margin: 2.5rem 0 0.3rem;
  font-size: 160%;
}
.Markdown h2 {
  margin: 2.5rem 0 0.3rem;
  font-size: 140%;
}
.Markdown h3 {
  margin: 2rem 0 0.3rem;
  font-size: 120%;
}
.Markdown h4 {
  margin: 1.5rem 0 0.2rem;
  font-size: 110%;
}
.Markdown h5 {
  margin: 1rem 0 0.2rem;
  font-size: 100%;
}
.Markdown h6 {
  margin: 1rem 0 0.2rem;
  font-size: 90%;
}
.Markdown code {
  padding: 0.2rem;
  font-size: 85%;
  border-radius: 3px;
  border: none;
  background-color: #F4F4F4;
  font-weight: inherit;
  overflow: scroll;
}
.Markdown pre > code {
  display: block;
}
.Markdown strong {
  font-weight: 600;
}
.Markdown ol, .Markdown ul {
  margin-left: 2rem;
}
.Markdown table td {
  word-break: normal;
}
.Markdown table thead th {
  word-break: normal;
}
.Markdown p {
  font-size: 100%;
  line-height: 150%;
  margin: 0 0 1.5rem 0;
}
.Markdown img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: none;
  margin-bottom: 10px;
}
.Markdown iframe {
  max-width: 100%;
  max-height: 75vw;
}
.Markdown iframe.truvvl-iframe {
  max-height: initial;
}
.Markdown .tweetWrapper iframe {
  max-height: inherit;
}
.Markdown div.pull-right {
  float: right;
  padding-left: 1rem;
  max-width: 50%;
}
.Markdown div.pull-left {
  float: left;
  padding-right: 1rem;
  max-width: 50%;
}
.Markdown div.text-justify {
  text-align: justify;
}
.Markdown div.text-right {
  text-align: right;
}
.Markdown div.text-center {
  text-align: center;
}
.Markdown div.text-rtl {
  direction: rtl;
}
.Markdown div.videoWrapper {
  position: relative;
  text-align: center;
}
.Markdown div.videoWrapper iframe {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}
.Markdown div.videoWrapper blockquote {
  border-left: none;
}
.Markdown div.iframeWrapper blockquote {
  border-left: none;
}
.Markdown div.tweetWrapper {
  padding-bottom: 0;
}
.Markdown div.tweetWrapper blockquote {
  border-left: none;
}
.theme-original .Markdown blockquote {
  border-left: 1px solid #788187;
}
.theme-light .Markdown blockquote {
  border-left: 1px solid #788187;
}
.theme-dark .Markdown blockquote {
  border-left: 1px solid #A6B2BA;
}
.theme-original .Markdown blockquote > p {
  color: #788187;
}
.theme-light .Markdown blockquote > p {
  color: #788187;
}
.theme-dark .Markdown blockquote > p {
  color: #A6B2BA;
}

.App {
  min-height: 100vh;
  padding-top: 0px;
}

.App__content {
  margin-top: 1rem;
}

.welcomeWrapper {
  padding-bottom: 1rem;
}

.RightMenu {
  background-color: #555;
  height: 100vh;
  color: #fff;
  padding-top: 3rem;
}
.RightMenu .close-button {
  color: #fff;
}
.RightMenu .menu > li > a {
  color: #fff;
  border-top: 1px solid #777;
}
.RightMenu .menu > li > a:hover {
  background-color: #666;
}
.RightMenu .menu > li.last {
  border-bottom: 1px solid #777;
}
.RightMenu .button.hollow {
  color: #fff;
  border: none;
}

.theme-original .text-muted {
  color: #788187;
}
.theme-original .text-muted svg {
  fill: #788187;
  opacity: 0.7;
}
.theme-light .text-muted {
  color: #788187;
}
.theme-light .text-muted svg {
  fill: #788187;
  opacity: 0.7;
}
.theme-dark .text-muted {
  color: #A6B2BA;
}
.theme-dark .text-muted svg {
  fill: #A6B2BA;
  opacity: 0.7;
}

.welcomeBanner {
  margin-top: -1rem;
  padding: 0;
  background-color: #212529;
  color: #fff;
  position: relative;
  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.05);
}
.welcomeBanner h2 {
  font-weight: bold;
  margin-bottom: 16px;
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 1;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  opacity: 0;
  filter: alpha(opacity=0);
}
@media only screen and (min-width: 47.5em) {
  .welcomeBanner h2 {
    font-size: 34px;
    font-size: 2.125rem;
    max-width: 280px;
  }
}
.welcomeBanner h4 {
  color: #fff;
  font-weight: normal;
  margin-bottom: 1rem;
  width: 85%;
  max-width: 360px;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  line-height: 1.3 !important;
  font-size: 16px;
  font-size: 1rem;
  opacity: 0;
  filter: alpha(opacity=0);
}
@media only screen and (min-width: 47.5em) {
  .welcomeBanner h4 {
    font-size: 17px;
    font-size: 1.0625rem;
  }
}
.welcomeBanner .row {
  align-items: center;
}
.welcomeBanner .button {
  min-width: 120px;
  white-space: nowrap;
  text-decoration: none;
  font-weight: bold;
  transition: 0.2s all ease-in-out;
  text-transform: initial;
  border-radius: 0;
  background-color: #fff;
  color: #212529;
  border: none;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 2px 2px 0 0 #E31337;
  padding: 16px;
  margin-right: 18px;
  font-size: 16px;
  font-size: 1rem;
  cursor: pointer;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.welcomeBanner .button:hover, .welcomeBanner .button:focus {
  background-color: #E31337;
  color: #fff;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0.1), 4px 4px 0 0 #fff;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
}
@media only screen and (min-width: 47.5em) {
  .welcomeBanner .button {
    font-size: 18px;
    font-size: 1.125rem;
    min-width: 132px;
  }
}
.welcomeBanner .button--primary {
  opacity: 0;
  filter: alpha(opacity=0);
}
.welcomeBanner .close-button {
  top: 0.8rem;
  right: 0;
}
@media only screen and (min-width: 47.5em) {
  .welcomeBanner .close-button {
    top: 0.5rem;
  }
}
.welcomeBanner .button.ghost {
  background: transparent;
  color: #fff;
  border: 1px solid #30414A;
  box-shadow: 0px 0px 0px 0 #30414A, 2px 2px 0 0 #30414A;
  opacity: 0;
  filter: alpha(opacity=0);
}
.welcomeBanner .button.ghost:hover, .welcomeBanner .button.ghost:focus {
  box-shadow: 0px 0px 0px 0 #30414A, 4px 4px 0 0 #E31337;
}
.welcomeBanner .heroImage {
  max-height: 360px;
  opacity: 0;
  filter: alpha(opacity=0);
  -webkit-animation: fade-in-up 0.6s ease-out both;
          animation: fade-in-up 0.6s ease-out both;
}
@media screen and (prefers-reduced-motion) {
  .welcomeBanner .heroImage {
    -webkit-animation: none;
            animation: none;
    opacity: 1;
    filter: alpha(opacity=100);
  }
}
.welcomeBanner .welcomeImage {
  padding: 1em 0;
}
@media only screen and (min-width: 75em) {
  .welcomeBanner .welcomeImage {
    padding: 2em 0;
  }
}
.welcomeBanner .welcomePitch {
  padding: 20px;
}
@media only screen and (min-width: 47.5em) {
  .welcomeBanner .welcomePitch {
    padding: 0;
  }
}

.downvoted {
  opacity: 0.5;
  transition: 0.2s all ease-in-out;
  color: #848282;
}
.theme-original .downvoted {
  color: #333;
}
.theme-light .downvoted {
  color: #333;
}
.theme-dark .downvoted {
  color: #fcfcfc;
}
.downvoted .Comment__header-user {
  color: #848282;
}
.theme-original .downvoted .Comment__header-user {
  color: #333;
}
.theme-light .downvoted .Comment__header-user {
  color: #333;
}
.theme-dark .downvoted .Comment__header-user {
  color: #fcfcfc;
}

.downvoted:hover {
  opacity: 1;
  filter: none;
  -webkit-filter: none;
}

.App__announcement {
  padding-right: 40px;
  padding-top: 40px;
}
.App__announcement .close-button {
  right: 0;
}

.theme-original .beta-disclaimer {
  padding: 8px 24px;
  font-size: 0.8em;
  color: #333;
  background: repeating-linear-gradient(45deg, #f8f8ff, #f8f8ff 10px, #fff 10px, #fff 20px);
}
.theme-light .beta-disclaimer {
  padding: 8px 24px;
  font-size: 0.8em;
  color: #333;
  background: repeating-linear-gradient(45deg, #f4f4fd, #f4f4fd 10px, #fff 10px, #fff 20px);
}
.theme-dark .beta-disclaimer {
  padding: 8px 24px;
  font-size: 0.8em;
  color: #fcfcfc;
  background: repeating-linear-gradient(45deg, #212529, #212529 10px, #2c3136 10px, #2c3136 20px);
}

.react-tooltip-lite {
  background: #333;
  color: white;
}

.react-tooltip-lite-arrow {
  border-color: #333;
}

.BeneficiarySelector__percentbox {
  min-width: 2.2rem;
  max-width: 2.6rem;
}

.BeneficiarySelector__percentrow {
  padding-top: 5px;
  padding-left: 2px;
}

.BeneficiarySelector .input-group {
  margin-bottom: 1.25rem;
}

.react-autocomplete-input {
  overflow-y: scroll;
  max-height: 16em;
  background-clip: padding-box;
  background-color: #fff;
  border: 1px solid rgba(0, 0, 0, 0.15);
  bottom: auto;
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  display: block;
  font-size: 14px;
  list-style: none;
  padding: 1px;
  position: absolute;
  text-align: left;
  z-index: 20000;
}

.react-autocomplete-input > div {
  cursor: pointer;
  padding: 10px;
  min-width: 100px;
}

.react-autocomplete-input > .active {
  background-color: #06D6A9;
  color: #333;
}
.theme-original .react-autocomplete-input > .active {
  color: theme("textColorPrimary");
  background-color: #1A5099;
}
.theme-light .react-autocomplete-input > .active {
  color: theme("textColorPrimary");
  background-color: #E31337;
}
.theme-dark .react-autocomplete-input > .active {
  color: theme("textColorPrimary");
  background-color: #e61336;
}

.Comment {
  position: relative;
  clear: both;
  margin-bottom: 1.2rem;
}
.Comment .Markdown p {
  margin: 0.1rem 0 0.6rem 0;
}
.Comment .Markdown p:last-child {
  margin-bottom: 0.2rem;
}
.Comment .ReplyEditor .column.large-6, .Comment .ReplyEditor .large-6.columns {
  max-width: 100%;
  flex: 0 0 100%;
}
.Comment .ReplyEditor .side-by-side {
  height: auto;
}

.Comment__Userpic {
  float: left;
  position: relative;
  top: 0.4rem;
  padding-right: 0.6rem;
}
@media only screen and (min-width: 47.5em) {
  .Comment__Userpic {
    top: 0.2rem;
  }
}
.Comment__Userpic .Userpic {
  margin-left: 7px;
}

@media print, screen and (min-width: 40em) {
  .Comment__Userpic-small {
    display: none !important;
  }
}
.Comment__Userpic-small .Userpic {
  float: left;
  position: relative;
  top: 3px;
  margin-right: 0.2rem;
  width: 16px !important;
  height: 16px !important;
}

.Comment .highlighted {
  padding: 14px;
}
.theme-original .Comment .highlighted {
  border: 1px solid #004EFF;
  background-color: #f3faf0;
}
.theme-light .Comment .highlighted {
  border: 1px solid #E31337;
  background-color: #f3faf0;
}
.theme-dark .Comment .highlighted {
  border: 1px solid #E31337;
  background-color: #11161A;
}

.Comment.collapsed .Comment__block > .Comment__Userpic,
.Comment .Comment__block.downvoted:not(.revealed) > .Comment__Userpic {
  top: 0;
  left: 26px;
}
.Comment.collapsed .Comment__block > .Comment__Userpic .Userpic,
.Comment .Comment__block.downvoted:not(.revealed) > .Comment__Userpic .Userpic {
  width: 24px !important;
  height: 24px !important;
}
.Comment.collapsed .Comment__block .Comment__header .Voting,
.Comment .Comment__block.downvoted:not(.revealed) .Comment__header .Voting {
  margin-left: 1rem;
  border-right: none;
}
.theme-original .Comment.collapsed .Comment__block .Comment__header a,
.theme-original .Comment .Comment__block.downvoted:not(.revealed) .Comment__header a {
  color: #788187;
}
.theme-light .Comment.collapsed .Comment__block .Comment__header a,
.theme-light .Comment .Comment__block.downvoted:not(.revealed) .Comment__header a {
  color: #788187;
}
.theme-dark .Comment.collapsed .Comment__block .Comment__header a,
.theme-dark .Comment .Comment__block.downvoted:not(.revealed) .Comment__header a {
  color: #A6B2BA;
}
.theme-original .Comment.collapsed .Comment__block .Comment__body,
.theme-original .Comment .Comment__block.downvoted:not(.revealed) .Comment__body {
  padding: 0;
  border: none;
}
.theme-light .Comment.collapsed .Comment__block .Comment__body,
.theme-light .Comment .Comment__block.downvoted:not(.revealed) .Comment__body {
  padding: 0;
  border: none;
}
.theme-dark .Comment.collapsed .Comment__block .Comment__body,
.theme-dark .Comment .Comment__block.downvoted:not(.revealed) .Comment__body {
  padding: 0;
  border: none;
}
.theme-original .Comment.collapsed .Comment__block .Comment__footer,
.theme-original .Comment .Comment__block.downvoted:not(.revealed) .Comment__footer {
  padding: 0;
  border: none;
}
.theme-light .Comment.collapsed .Comment__block .Comment__footer,
.theme-light .Comment .Comment__block.downvoted:not(.revealed) .Comment__footer {
  padding: 0;
  border: none;
}
.theme-dark .Comment.collapsed .Comment__block .Comment__footer,
.theme-dark .Comment .Comment__block.downvoted:not(.revealed) .Comment__footer {
  padding: 0;
  border: none;
}

.theme-original .Comment__header {
  margin-left: 62px;
  border-radius: 5px 5px 0 0;
  border: 1px solid #eee;
  background: #fff;
  padding: 3px 5px;
}
.theme-light .Comment__header {
  margin-left: 62px;
  border-radius: 5px 5px 0 0;
  border: 1px solid #eee;
  background: #fff;
  padding: 3px 5px;
}
.theme-dark .Comment__header {
  margin-left: 62px;
  border-radius: 5px 5px 0 0;
  border: 1px solid #2c3136;
  background: #2c3136;
  padding: 3px 5px;
}
.theme-original .Comment__header svg {
  fill: #788187;
}
.theme-light .Comment__header svg {
  fill: #788187;
}
.theme-dark .Comment__header svg {
  fill: #A6B2BA;
}

.Comment__header-user {
  color: #333333;
  font-size: 100%;
}
.Comment__header_collapse {
  float: right;
}
.Comment__header_collapse > a {
  color: #cacaca;
  letter-spacing: 0.1rem;
  padding: 0 0.5rem;
}
.Comment__header_collapse .Icon {
  top: 5px;
}

.theme-original .Comment .Comment__block .Comment__body {
  margin-left: 62px;
  border: 1px solid #eee;
  padding: 0 5px;
  border-top: none;
  border-bottom: none;
  font-size: 90%;
  background: #fff;
}
.theme-light .Comment .Comment__block .Comment__body {
  margin-left: 62px;
  border: 1px solid #eee;
  padding: 0 5px;
  border-top: none;
  border-bottom: none;
  font-size: 90%;
  background: #fff;
}
.theme-dark .Comment .Comment__block .Comment__body {
  margin-left: 62px;
  border: 1px solid #2c3136;
  padding: 0 5px;
  border-top: none;
  border-bottom: none;
  font-size: 90%;
  background: #2c3136;
}

.theme-original .Comment .Comment__block .Comment__body:hover {
  background-color: #eaeaef;
}
.theme-light .Comment .Comment__block .Comment__body:hover {
  background-color: #eaeaef;
}
.theme-dark .Comment .Comment__block .Comment__body:hover {
  background-color: #313539;
}

.theme-original .Comment .Comment__block .Comment__footer {
  margin-left: 62px;
  border: 1px solid #eee;
  border-radius: 0px 0px 5px 5px;
  padding: 3px 10px 5px 10px;
  background: #fff;
}
.theme-light .Comment .Comment__block .Comment__footer {
  margin-left: 62px;
  border: 1px solid #eee;
  border-radius: 0px 0px 5px 5px;
  padding: 3px 10px 5px 10px;
  background: #fff;
}
.theme-dark .Comment .Comment__block .Comment__footer {
  margin-left: 62px;
  border: 1px solid #2c3136;
  border-radius: 0px 0px 5px 5px;
  padding: 3px 10px 5px 10px;
  background: #2c3136;
}
.theme-original .Comment .Comment__block .Comment__footer {
  color: #333;
}
.theme-light .Comment .Comment__block .Comment__footer {
  color: #333;
}
.theme-dark .Comment .Comment__block .Comment__footer {
  color: #fcfcfc;
}
.Comment .Comment__block .Comment__footer .Voting__voters_list {
  padding-right: 0.4rem;
  margin-right: 0.4rem;
  transition: 0.3s all ease-in-out;
}
.theme-original .Comment .Comment__block .Comment__footer .Voting__voters_list {
  border-right: 1px solid #eee;
}
.theme-light .Comment .Comment__block .Comment__footer .Voting__voters_list {
  border-right: 1px solid #eee;
}
.theme-dark .Comment .Comment__block .Comment__footer .Voting__voters_list {
  border-right: 1px solid #2c3136;
}
.Comment .Comment__block .Comment__footer .Voting__voters_list .dropdown-arrow {
  position: relative;
  top: 3px;
  left: -2px;
}
.theme-original .Comment .Comment__block .Comment__footer .Voting__voters_list:hover .Icon.dropdown-arrow polygon {
  fill: #004EFF;
}
.theme-light .Comment .Comment__block .Comment__footer .Voting__voters_list:hover .Icon.dropdown-arrow polygon {
  fill: #E31337;
}
.theme-dark .Comment .Comment__block .Comment__footer .Voting__voters_list:hover .Icon.dropdown-arrow polygon {
  fill: #E31337;
}
.Comment .Comment__block .Comment__footer .Comment__footer__controls a {
  margin: 0 0.2rem;
}

.Comment__replies {
  margin-top: 1.4rem;
  margin-left: 62px;
}
.theme-original .Comment__replies {
  border-left: 1px dotted #eee;
}
.theme-light .Comment__replies {
  border-left: 1px dotted #e5e5e5;
}
.theme-dark .Comment__replies {
  border-left: 1px dotted #212529;
}
.Comment__replies .Comment {
  margin-bottom: 1.4rem;
}

.Comment__negative_group {
  color: #cacaca;
  border-top: 1px solid #e6e6e6;
  padding-top: 1rem;
  clear: none;
}
.Comment__negative_group button {
  opacity: 0.35;
}
.Comment__negative_group button:hover {
  opacity: 0.5;
}

@media screen and (max-width: 39.9375em) {
  .theme-original .root .Comment__block .Comment__header,
.theme-original .root .Comment__block .Comment__footer,
.theme-original .root .Comment__block .Comment__body,
.theme-original .root .Comment__replies {
    margin-left: 0;
  }
  .theme-light .root .Comment__block .Comment__header,
.theme-light .root .Comment__block .Comment__footer,
.theme-light .root .Comment__block .Comment__body,
.theme-light .root .Comment__replies {
    margin-left: 0;
  }
  .theme-dark .root .Comment__block .Comment__header,
.theme-dark .root .Comment__block .Comment__footer,
.theme-dark .root .Comment__block .Comment__body,
.theme-dark .root .Comment__replies {
    margin-left: 0;
  }

  .theme-original .reply .Comment__block .Comment__header,
.theme-original .reply .Comment__block .Comment__footer,
.theme-original .reply .Comment__block .Comment__body,
.theme-original .reply .Comment__replies {
    margin-left: 10px;
  }
  .theme-light .reply .Comment__block .Comment__header,
.theme-light .reply .Comment__block .Comment__footer,
.theme-light .reply .Comment__block .Comment__body,
.theme-light .reply .Comment__replies {
    margin-left: 10px;
  }
  .theme-dark .reply .Comment__block .Comment__header,
.theme-dark .reply .Comment__block .Comment__footer,
.theme-dark .reply .Comment__block .Comment__body,
.theme-dark .reply .Comment__replies {
    margin-left: 10px;
  }

  .theme-original .Comment .Comment__block .highlighted {
    padding-left: 0;
  }
  .theme-light .Comment .Comment__block .highlighted {
    padding-left: 0;
  }
  .theme-dark .Comment .Comment__block .highlighted {
    padding-left: 0;
  }
}
.MarkdownViewer__negative_group {
  color: crimson;
  border-top: 1px solid #cacaca;
  padding-top: 1rem;
}

.MarkdownViewer {
  max-width: 48rem;
  height: 100%;
  overflow-y: auto;
}

.vote_weights {
  opacity: 0.75;
  position: absolute;
  right: 0.5rem;
  color: green;
}
.vote_weights span {
  color: red;
}

ul.PostsList__summaries {
  margin-left: 0;
}

ul.PostsList__summaries > li {
  padding: 0.1em 0.5em 0 0.5em;
  margin-bottom: 0.8em;
  /* &:hover {
    @include MQ(L) {
      @include themify($themes) {
        box-shadow: 2px 2px 3px 0 themed('contentBorderAccent');
      }
    }
  }*/
}
.theme-original ul.PostsList__summaries > li {
  border-radius: 5px;
  border: 1px solid #eee;
  background-color: #fff;
}
.theme-light ul.PostsList__summaries > li {
  border-radius: 5px;
  border: 1px solid #eee;
  background-color: #fff;
}
.theme-dark ul.PostsList__summaries > li {
  border-radius: 5px;
  border: 1px solid #2c3136;
  background-color: #2c3136;
}

.PostSummary {
  margin: 0 0 1.25vw;
  clear: left;
}
.PostSummary::before, .PostSummary::after {
  display: table;
  content: " ";
  flex-basis: 0;
  order: 1;
}
.PostSummary::after {
  clear: both;
}
.PostSummary .PostSummary__nsfw-warning {
  border: 1px solid #eee;
  padding: 0.75rem 2rem;
  min-height: 80px;
}
.PostSummary .PostSummary__nsfw-warning .PostSummary__footer {
  margin-top: 0.2rem;
}
.PostSummary .PostSummary__nsfw-warning .PostSummary__footer .Reblog__button {
  display: none;
}
.PostSummary .PostSummary__nsfw-warning .PostSummary__footer .Voting__button {
  display: none;
}
.PostSummary .PostSummary__nsfw-warning .PostSummary__time_author_category_small {
  margin-bottom: 0.2rem;
}
.PostSummary .nsfw-flag {
  color: #ff0264;
  border: 1px solid #ff0264;
  font-size: 75%;
  border-radius: 3px;
  font-weight: normal;
  font-family: Arial;
  margin: 0 0.1rem;
  padding: 2px 5px;
}

.PostSummary__image {
  cursor: pointer;
  float: left;
  width: 130px;
  height: 4.5rem;
  background-color: #EEE;
  background-size: 100%;
  background-repeat: no-repeat;
  background-position: 50% 20%;
  border: 1px solid #EEE;
}

.PostSummary__image-mobile {
  display: block;
  background: #F8F8F8;
}
.PostSummary__image-mobile img {
  margin: 0 auto;
  display: block;
  max-width: 100%;
  max-height: 80vw;
  background: white;
  transform: translate3d(0, 0, 0);
}

.PostSummary.with-image .PostSummary__reblogged_by,
.PostSummary.with-image .PostSummary__content {
  margin-left: 8.25rem;
}

.PostSummary__header > h3 {
  font: 600 100% "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Arial, sans-serif;
  margin: 0;
  overflow: hidden;
}
.PostSummary__header > h3 > a {
  color: #333;
}
.PostSummary__header > h3 > a:visited {
  color: #777;
}
.PostSummary__header > h3 .Icon {
  margin: 0 0.25rem;
}
.PostSummary__header > h3 .Icon svg {
  width: 0.85rem;
  height: 0.85rem;
  vertical-align: 5%;
}
.PostSummary__header .nsfw-flag {
  margin-right: 0.25rem;
}

.PostSummary__body {
  width: auto;
  padding: 0 0 0.15rem;
  font-size: 0.9rem;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  overflow: hidden;
  line-height: 1.4;
  text-overflow: ellipsis;
}
.theme-original .PostSummary__body {
  color: #333;
}
.theme-light .PostSummary__body {
  color: #333;
}
.theme-dark .PostSummary__body {
  color: #fcfcfc;
}
.PostSummary__body a {
  display: inline;
}
.theme-original .PostSummary__body a {
  color: #333;
}
.theme-light .PostSummary__body a {
  color: #333;
}
.theme-dark .PostSummary__body a {
  color: #fcfcfc;
}

@media only screen and (min-width: 47.5em) {
  .layout-list .PostSummary__body {
    white-space: nowrap;
  }
}

.PostSummary__footer {
  color: #8a8a8a;
  font-weight: 400;
}
.PostSummary__footer path {
  fill: #8a8a8a;
}
.PostSummary__footer a {
  color: #8a8a8a;
}
.PostSummary__footer .Icon {
  position: relative;
  top: -1px;
}

.PostSummary__time_author_category {
  color: #8a8a8a;
  padding-left: 1rem;
}
.PostSummary__time_author_category a {
  color: #8a8a8a;
  font-weight: bold;
}
.PostSummary__time_author_category a:hover {
  text-decoration: underline;
}
.theme-original .PostSummary__time_author_category {
  border-left: 1px solid #f6f6f6;
}
.theme-light .PostSummary__time_author_category {
  border-left: 1px solid #f6f6f6;
}
.theme-dark .PostSummary__time_author_category {
  border-left: 1px solid #2c3136;
}
.PostSummary__time_author_category .Reblog__button {
  margin-right: 1rem;
  padding-right: 1rem;
  border-right: transparent;
}

.PostSummary__time_author_category_small a {
  color: #8a8a8a;
}

@media screen and (min-width: 39.9375em) {
  .PostSummary.with-image .PostSummary__reblogged_by .Icon.reblog {
    margin-left: -22px;
  }
}
.PostSummary__reblogged_by {
  color: #8a8a8a;
  font-size: 90%;
  margin-top: -0.5rem;
}
.PostSummary__reblogged_by .Icon path {
  fill: #cacaca;
}
.PostSummary__reblogged_by a {
  color: inherit;
  font-weight: bold;
}
.PostSummary__reblogged_by a:hover {
  text-decoration: underline;
}

/* Small only */
@media screen and (max-width: 39.9375em) {
  .PostSummary {
    margin-bottom: 0;
    border: none;
  }

  .PostSummary__image {
    float: none;
    margin-top: 0.5rem;
    display: block;
    width: 100%;
    height: 40vw;
  }

  .PostSummary__body {
    overflow-wrap: break-word;
    word-wrap: break-word;
    word-break: break-word;
    -webkit-hyphens: auto;
        -ms-hyphens: auto;
            hyphens: auto;
    white-space: normal;
    text-overflow: initial;
    padding-bottom: 0.3rem;
  }
  .PostSummary__body a {
    display: block;
  }

  .PostSummary.with-image .PostSummary__reblogged_by,
.PostSummary.with-image .PostSummary__content {
    margin-left: 0;
  }

  .PostSummary__footer .Voting, .PostSummary__footer .Voting__inner {
    border-right: none;
  }

  .PostSummary__time_author_category {
    margin-left: 0;
    border-left: 1px solid #eee;
  }
  .PostSummary__time_author_category .Reblog__button {
    margin-right: 1rem;
    padding-right: 1rem;
    border-right: none;
  }
}
.articles__summary .nsfw-flag {
  color: #ff0264;
  border: 1px solid #ff0264;
  font-size: 75%;
  border-radius: 3px;
  font-weight: normal;
  font-family: Arial;
  margin: 0 0.1rem;
  padding: 2px 5px;
  margin-right: 5px;
}
.articles__summary .articles__resteem,
.articles__summary .articles__crosspost {
  padding-top: 0;
  margin-top: 0;
}
.articles__summary .articles__crosspost {
  padding: 5px 10px 5px 10px;
  margin: 5px 0;
  font-size: 0.85rem;
  border-radius: 3px;
}
.theme-original .articles__summary .articles__crosspost {
  background-color: #f8f8ff;
}
.theme-light .articles__summary .articles__crosspost {
  background-color: #f4f4fd;
}
.theme-dark .articles__summary .articles__crosspost {
  background-color: #212529;
}
.articles__summary .articles__crosspost-icon {
  margin-right: 5px;
}
.articles__summary .articles__crosspost-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.articles__summary .articles__feature-img img {
  width: 100%;
  max-height: 56.25vw;
  -o-object-fit: cover;
     object-fit: cover;
}
.articles__summary .articles__content-block--text {
  width: 100%;
}

.Post .row.comment-editor {
  max-width: 55.9rem;
  margin-top: 15px;
  margin-left: auto;
  margin-right: auto;
}

.PostFull {
  padding: 2rem 1rem 1rem 1rem;
  margin: 0 auto;
  max-width: 54rem;
  position: relative;
}
.theme-original .PostFull {
  border-radius: 5px;
  border: 1px solid #eee;
  background-color: #fff;
}
.theme-light .PostFull {
  border-radius: 5px;
  border: 1px solid #eee;
  background-color: #fff;
}
.theme-dark .PostFull {
  border-radius: 5px;
  border: 1px solid #2c3136;
  background-color: #2c3136;
}
@media screen and (max-width: 63.9375em) {
  .PostFull {
    padding-top: 1rem;
  }
}
.theme-original .PostFull .button.hollow {
  border: 1px solid #004EFF;
  color: #004EFF;
}
.theme-light .PostFull .button.hollow {
  border: 1px solid #E31337;
  color: #E31337;
}
.theme-dark .PostFull .button.hollow {
  border: 1px solid #E31337;
  color: #E31337;
}
.PostFull .ReplyEditor {
  margin-top: 1rem;
}
.PostFull .articles__crosspost {
  padding: 20px 20px 0 20px;
}
.theme-original .PostFull .articles__crosspost {
  background-color: #f8f8ff;
}
.theme-light .PostFull .articles__crosspost {
  background-color: #f4f4fd;
}
.theme-dark .PostFull .articles__crosspost {
  background-color: #212529;
}
.PostFull .articles__crosspost-icon {
  margin-right: 5px;
}
.PostFull .ReplyEditor .column.large-6, .PostFull .ReplyEditor .large-6.columns {
  max-width: 100%;
  flex: 0 0 100%;
}
.PostFull .ReplyEditor .side-by-side {
  height: auto;
}
.PostFull .PostFull__authored_by {
  font-size: 0.8rem;
}

.PostFull__time_author_category {
  font-weight: 400;
  border-right: none !important;
  padding-right: 0.6rem;
  margin-right: 0.6rem;
}
.theme-original .PostFull__time_author_category {
  border-right: 1px solid #eee;
  color: #788187;
}
.theme-light .PostFull__time_author_category {
  border-right: 1px solid #eee;
  color: #788187;
}
.theme-dark .PostFull__time_author_category {
  border-right: 1px solid #2c3136;
  color: #A6B2BA;
}
.PostFull__time_author_category > span {
  white-space: nowrap;
}

.PostFull__time_author_category_large {
  margin: 1rem 0 1rem 0;
  line-height: 1.2;
  font-size: 120%;
  display: flex;
  align-items: center;
}
.theme-original .PostFull__time_author_category_large {
  color: #788187;
}
.theme-light .PostFull__time_author_category_large {
  color: #788187;
}
.theme-dark .PostFull__time_author_category_large {
  color: #A6B2BA;
}
.theme-original .PostFull__time_author_category_large strong, .theme-original .PostFull__time_author_category_large a {
  color: #788187;
}
.theme-light .PostFull__time_author_category_large strong, .theme-light .PostFull__time_author_category_large a {
  color: #788187;
}
.theme-dark .PostFull__time_author_category_large strong, .theme-dark .PostFull__time_author_category_large a {
  color: #A6B2BA;
}
.PostFull__time_author_category_large > .Userpic {
  margin-top: -4px;
  float: left;
}
.PostFull__time_author_category_large > .right-side {
  margin-left: 12px;
  position: relative;
  top: -2px;
}

.PostFull__header, .PostFull__body {
  max-width: 48rem;
  margin: 0 auto;
}

.theme-original .PostFull__header {
  border-bottom: 1px solid #eee;
}
.theme-light .PostFull__header {
  border-bottom: 1px solid #eee;
}
.theme-dark .PostFull__header {
  border-bottom: 1px solid #2c3136;
}
.PostFull__header h1 {
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1.1;
  word-break: break-word;
}
@media screen and (max-width: 39.9375em) {
  .PostFull__header h1 {
    font-size: 1.3rem;
  }
}
.PostFull__header h1 .Icon {
  margin: 0 0 0 0.5rem;
  vertical-align: -30%;
}
.PostFull__header a {
  font-weight: 600;
}
.PostFull__header .PostFull__time_author_category {
  border-right: none;
}
.PostFull__header .PostFull__time_author_category .Icon.clock {
  top: 5px;
}
.theme-original .PostFull__header .PostFull__time_author_category .Icon.clock svg {
  fill: #788187;
}
.theme-light .PostFull__header .PostFull__time_author_category .Icon.clock svg {
  fill: #788187;
}
.theme-dark .PostFull__header .PostFull__time_author_category .Icon.clock svg {
  fill: #A6B2BA;
}

.PostFull__body {
  padding: 1rem 0 1rem 0;
  clear: left;
}
.isMuted .PostFull__body a {
  pointer-events: none;
}

.PostFull__footer {
  clear: right;
  line-height: 2rem;
  font-size: 94%;
}
.theme-original .PostFull__footer svg {
  fill: #788187;
}
.theme-light .PostFull__footer svg {
  fill: #788187;
}
.theme-dark .PostFull__footer svg {
  fill: #A6B2BA;
}
@media only screen and (min-width: 64em) {
  .PostFull__footer .RightShare__Menu {
    text-align: right;
  }
}
.PostFull__footer span {
  white-space: normal;
}
.PostFull__footer .Reblog__button {
  padding-right: 0.4rem;
  margin-right: 0.4rem;
}
.theme-original .PostFull__footer .Reblog__button {
  border-right: 1px solid #eee;
}
.theme-light .PostFull__footer .Reblog__button {
  border-right: 1px solid #eee;
}
.theme-dark .PostFull__footer .Reblog__button {
  border-right: 1px solid #2c3136;
}
.PostFull__footer .PostFull__crosspost-footer {
  padding-top: 15px;
  text-align: center;
}
.PostFull__footer .PostFull__crosspost-footer .button {
  min-width: 100px;
}

.PostFull__responses {
  padding-right: 0.4rem;
}

.PostFull__views {
  padding-right: 0.4rem;
  margin-right: 0.4rem;
  font-size: 94%;
  font-weight: 600;
}
.theme-original .PostFull__views {
  border-right: 1px solid #eee;
  fill: #788187;
}
.theme-light .PostFull__views {
  border-right: 1px solid #eee;
  fill: #788187;
}
.theme-dark .PostFull__views {
  border-right: 1px solid #2c3136;
  fill: #A6B2BA;
}

.PostFull__reply {
  padding-right: 0.4rem;
  margin-right: 0.4rem;
}
.theme-original .PostFull__reply {
  border-right: 1px solid #eee;
}
.theme-light .PostFull__reply {
  border-right: 1px solid #eee;
}
.theme-dark .PostFull__reply {
  border-right: 1px solid #2c3136;
}
.PostFull__reply a {
  margin: 0 0.15rem;
}

.PostFull__lifetime {
  font-size: 80%;
}
.theme-original .PostFull__lifetime {
  fill: #788187;
}
.theme-light .PostFull__lifetime {
  fill: #788187;
}
.theme-dark .PostFull__lifetime {
  fill: #A6B2BA;
}

.Author__dropdown {
  padding: 1rem;
}
.Author__dropdown > a:hover {
  text-decoration: underline;
}

.explore-post {
  margin-right: 0px !important;
  cursor: pointer;
}
.explore-post:hover svg {
  fill: #E31337;
}

input.share-box {
  width: 75% !important;
  display: inline;
}

.ExplorePost span.extlink {
  vertical-align: text-bottom;
}
.ExplorePost h5 {
  margin-top: 1em;
}
.ExplorePost .ExplorePost__copy-button {
  cursor: pointer;
}

.chain-rotated {
  transform: rotate(120deg);
}

/* Small only */
@media screen and (max-width: 39.9375em) {
  .Post {
    width: 100%;
  }

  .PostFull__footer > .column, .PostFull__footer > .columns {
    flex: 0 0 100%;
  }

  input.share-box {
    height: 2.8em;
    font-size: 0.8em;
  }
}
/* Medium only */
@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  input.share-box {
    height: 2.8em;
    font-size: 0.8em;
  }
}
.PostsList__summaries .articles__summary {
  position: relative;
}
.PostsList__summaries .FeaturedTag, .PostsList__summaries .PromotedTag {
  font-weight: 400;
  display: inline;
  padding: 0.1rem 0.2rem;
  margin: 0 1rem 0 0.5rem;
  border-radius: 0.3rem;
  font-size: 0.75rem;
}
.theme-original .PostsList__summaries .FeaturedTag, .theme-original .PostsList__summaries .PromotedTag {
  background-color: #004EFF;
  color: #fcfcfc;
}
.theme-light .PostsList__summaries .FeaturedTag, .theme-light .PostsList__summaries .PromotedTag {
  background-color: #E31337;
  color: #fcfcfc;
}
.theme-dark .PostsList__summaries .FeaturedTag, .theme-dark .PostsList__summaries .PromotedTag {
  background-color: #E31337;
  color: #2C3A45;
}
.theme-original .PostsList__summaries .PromotedTag {
  background-color: #cacaca;
}
.theme-light .PostsList__summaries .PromotedTag {
  background-color: #cacaca;
}
.theme-dark .PostsList__summaries .PromotedTag {
  background-color: #A6B2BA;
}
.PostsList__summaries A.PostDismiss {
  position: absolute;
  right: 0.15rem;
}
.theme-original .PostsList__summaries A.PostDismiss svg {
  width: 0.6rem;
  height: 0.6rem;
  opacity: 0.3;
  fill: #788187;
}
.theme-light .PostsList__summaries A.PostDismiss svg {
  width: 0.6rem;
  height: 0.6rem;
  opacity: 0.3;
  fill: #788187;
}
.theme-dark .PostsList__summaries A.PostDismiss svg {
  width: 0.6rem;
  height: 0.6rem;
  opacity: 0.3;
  fill: #A6B2BA;
}
.PostsList__summaries A.PostDismiss:hover svg {
  opacity: 1;
}

.flex-row {
  flex-direction: row;
  display: flex;
}

.flex-column {
  flex-direction: column;
  display: flex;
}

.flex-body {
  display: flex;
}

.notification__filter {
  padding: 0 5px 0 5px;
  border-right: 1px solid #ababab;
}

.notification__filter:last-child {
  border-right: 0;
}

.notification__filter.hide {
  display: none;
}

.notification__filter.selected {
  font-weight: bold;
}

.theme-original .notification__item.even {
  background-color: #f4f4f4;
}
.theme-light .notification__item.even {
  background-color: #f4f4f4;
}
.theme-dark .notification__item.even {
  background-color: #212C33;
}

.notification__item {
  align-items: center;
  padding: 0.5em 1rem;
  margin-bottom: 2px;
  position: relative;
}
.theme-light .notification__item {
  background-color: #e5e5e5;
}
.theme-dark .notification__item {
  background-color: #283239;
}
.notification__item .notification__unread {
  position: absolute;
  left: 0.4em;
  top: 0.75em;
  font-size: 2em;
}
.theme-original .notification__item .notification__unread {
  color: #004EFF;
}
.theme-light .notification__item .notification__unread {
  color: #E31337;
}
.theme-dark .notification__item .notification__unread {
  color: #E31337;
}
.notification__item .Userpic {
  margin: 0 1em;
}
.notification__item .Icon {
  margin-right: 0.25em;
}
.theme-original .notification__item .Icon {
  fill: #788187;
}
.theme-original .notification__item .Icon path {
  fill: #788187;
}
.theme-original .notification__item .Icon circle {
  stroke: #788187;
}
.theme-light .notification__item .Icon {
  fill: #788187;
}
.theme-light .notification__item .Icon path {
  fill: #788187;
}
.theme-light .notification__item .Icon circle {
  stroke: #788187;
}
.theme-dark .notification__item .Icon {
  fill: #A6B2BA;
}
.theme-dark .notification__item .Icon path {
  fill: #A6B2BA;
}
.theme-dark .notification__item .Icon circle {
  stroke: #A6B2BA;
}
.notification__item .notification__date {
  font-size: 0.9em;
  opacity: 0.8;
}
.theme-original .notification__item .notification__date {
  color: #788187;
}
.theme-light .notification__item .notification__date {
  color: #788187;
}
.theme-dark .notification__item .notification__date {
  color: #A6B2BA;
}
.notification__item .notification__message {
  padding-bottom: 0.5em;
  padding-right: 0.5em;
}
.theme-original .notification__item .notification__message a {
  color: #333;
}
.theme-light .notification__item .notification__message a {
  color: #333;
}
.theme-dark .notification__item .notification__message a {
  color: #fcfcfc;
}
.theme-original .notification__item .notification__message a:visited {
  color: #788187;
}
.theme-light .notification__item .notification__message a:visited {
  color: #788187;
}
.theme-dark .notification__item .notification__message a:visited {
  color: #A6B2BA;
}
.notification__item .notification__score {
  position: absolute;
  top: 5px;
  right: 5px;
  height: 4px;
  width: 35px;
  background-color: lightgray;
}
.notification__item .notification__score_bar {
  height: 100%;
  position: relative;
  background-color: #E31337;
}

.Icon {
  vertical-align: middle;
}
.Icon > svg, .Icon span.icon {
  width: 1.12rem;
  height: 1.12rem;
  vertical-align: top;
}
.Icon.fill-black > svg > path {
  fill: black;
}

.Icon_0_8x > svg, span.Icon_0_8x {
  width: 0.8rem;
  height: 0.8rem;
}

.Icon_1_5x > svg, span.Icon_1_5x {
  width: 1.5rem;
  height: 1.5rem;
}

.Icon_2x > svg, span.Icon_2x {
  width: 2rem;
  height: 2rem;
}

.Icon_3x > svg, span.Icon_3x {
  width: 3rem;
  height: 3rem;
}

.Icon_4x > svg, span.Icon_4x {
  width: 4.6rem;
  height: 4.6rem;
}

.Icon_5x > svg, span.Icon_5x {
  width: 5.75rem;
  height: 5.75rem;
  margin: 24px 0 24px 0;
}

.Icon_10x > svg, span.Icon_10x {
  width: 10rem;
  height: 10rem;
  margin: 24px 0 24px 0;
}

.Icon.dropdown-arrow polygon {
  fill: #8a8a8a;
}

.loading-panel {
  z-index: 1000;
  position: absolute;
  top: 20rem;
  left: 0;
  right: 0;
  margin: auto;
  height: 100px;
  max-height: 110px;
  width: 10rem;
  background-color: #999;
  opacity: 0.4;
  border-radius: 5px;
}

.progress-indicator {
  height: 50px;
  vertical-align: middle;
  margin: 46px 20px 20px 20px;
  text-align: center;
  color: #000;
  display: none;
}

.progress-indicator > span {
  vertical-align: middle;
  display: table-cell;
}

.with-progress .progress-indicator {
  display: table;
}

.spinner {
  width: 64px;
  height: 18px;
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
}

.with-progress .spinner {
  margin: 20px auto 0 auto;
}

.spinner > div {
  width: 18px;
  height: 18px;
  background-color: #333;
  border-radius: 100%;
  display: inline-block;
  -webkit-animation: bouncedelay 1.4s infinite ease-in-out;
  animation: bouncedelay 1.4s infinite ease-in-out;
  /* Prevent first frame from flickering when animation starts */
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

.spinner .bounce1 {
  -webkit-animation-delay: -0.32s;
          animation-delay: -0.32s;
}

.spinner .bounce2 {
  -webkit-animation-delay: -0.16s;
          animation-delay: -0.16s;
}

@keyframes bouncedelay {
  0%, 80%, 100% {
    transform: scale(0);
  }
  40% {
    transform: scale(1);
  }
}
.three-bounce > div {
  width: 16px;
  height: 16px;
  background-color: #777;
  border-radius: 100%;
  display: inline-block;
  -webkit-animation: bouncedelay 1.4s infinite ease-in-out;
          animation: bouncedelay 1.4s infinite ease-in-out;
  /* Prevent first frame from flickering when animation starts */
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
}

.three-bounce .bounce1 {
  -webkit-animation-delay: -0.32s;
          animation-delay: -0.32s;
}

.three-bounce .bounce2 {
  -webkit-animation-delay: -0.16s;
          animation-delay: -0.16s;
}

@-webkit-keyframes bouncedelay {
  0%, 80%, 100% {
    -webkit-transform: scale(0);
  }
  40% {
    -webkit-transform: scale(1);
  }
}
@keyframes bouncedelay {
  0%, 80%, 100% {
    transform: scale(0);
  }
  40% {
    transform: scale(1);
  }
}
.LoadingIndicator.circle.inline {
  display: inline-block;
  position: relative;
  top: 6px;
}
.LoadingIndicator.circle.circle-strong {
  padding-top: 2em;
  padding-bottom: 2em;
}
.LoadingIndicator.circle.circle-strong div {
  border-width: 1px;
  border-color: #E31337;
  border-right-color: transparent;
  border-top-color: transparent;
}
.LoadingIndicator.circle div {
  width: 16px;
  height: 16px;
  margin: 4px;
  border: 1px solid #E31337;
  border-radius: 50%;
  border-right-color: transparent;
  border-top-color: transparent;
  -webkit-animation: loading 500ms infinite linear;
          animation: loading 500ms infinite linear;
}

.Userpic {
  display: inline-block;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  border-radius: 50%;
  width: 48px;
  height: 48px;
}

.Userpic__infowrapper .UserInfo__rc_innercircle {
  position: absolute;
  z-index: 6;
  top: 50%;
  left: 50%;
  width: 40px;
  height: 40px;
  margin: -20px 0 0 -20px;
  background: red;
  border-radius: 100%;
}

.Header__userpic .Userpic__infowrapper .Userpic {
  width: 34px;
  height: 34px;
  margin-top: 5px;
  margin-left: 0;
}

/* https://www.cssscript.com/circular-progress-bar-plain-html-css/ */
.progress-circle {
  font-size: 8px;
  margin: -2px 0 0 0;
  position: relative;
  /* so that children can be absolutely positioned */
  padding: 0;
  width: 5em;
  height: 5em;
  background-color: #F2E9E1;
  border-radius: 50%;
  line-height: 5em;
}

.progress-circle:after {
  border: none;
  position: absolute;
  top: 0.35em;
  left: 0.35em;
  text-align: center;
  display: block;
  border-radius: 50%;
  width: 4.3em;
  height: 4.3em;
  background-color: white;
  content: " ";
}

/* Text inside the control */
.progress-circle span {
  position: absolute;
  line-height: 5em;
  width: 5em;
  text-align: center;
  display: block;
  z-index: 2;
  color: seagreen;
}

.left-half-clipper {
  /* a round circle */
  border-radius: 50%;
  width: 5em;
  height: 5em;
  position: absolute;
  /* needed for clipping */
  clip: rect(0, 5em, 5em, 2.5em);
  /* clips the whole left half*/
}

/* when p>50, don't clip left half*/
.progress-circle.over50 .left-half-clipper {
  clip: rect(auto, auto, auto, auto);
}

.value-bar {
  /*This is an overlayed square, that is made round with the border radius,
  then it is cut to display only the left half, then rotated clockwise
  to escape the outer clipping path.*/
  position: absolute;
  /*needed for clipping*/
  clip: rect(0, 2.5em, 5em, 0);
  width: 5em;
  height: 5em;
  border-radius: 50%;
  border: 0.45em solid seagreen;
  /*The border is 0.35 but making it larger removes visual artifacts */
  /*background-color: #4D642D;*/
  /* for debug */
  box-sizing: border-box;
}

/* Progress bar filling the whole right half for values above 50% */
.progress-circle.over50 .first50-bar {
  /*Progress bar for the first 50%, filling the whole right half*/
  position: absolute;
  /*needed for clipping*/
  clip: rect(0, 5em, 5em, 2.5em);
  background-color: seagreen;
  border-radius: 50%;
  width: 5em;
  height: 5em;
}

.progress-circle:not(.over50) .first50-bar {
  display: none;
}

/* Progress bar rotation position */
.progress-circle.p0 .value-bar {
  display: none;
}

.progress-circle.p1 .value-bar {
  transform: rotate(4deg);
}

.progress-circle.p2 .value-bar {
  transform: rotate(7deg);
}

.progress-circle.p3 .value-bar {
  transform: rotate(11deg);
}

.progress-circle.p4 .value-bar {
  transform: rotate(14deg);
}

.progress-circle.p5 .value-bar {
  transform: rotate(18deg);
}

.progress-circle.p6 .value-bar {
  transform: rotate(22deg);
}

.progress-circle.p7 .value-bar {
  transform: rotate(25deg);
}

.progress-circle.p8 .value-bar {
  transform: rotate(29deg);
}

.progress-circle.p9 .value-bar {
  transform: rotate(32deg);
}

.progress-circle.p10 .value-bar {
  transform: rotate(36deg);
}

.progress-circle.p11 .value-bar {
  transform: rotate(40deg);
}

.progress-circle.p12 .value-bar {
  transform: rotate(43deg);
}

.progress-circle.p13 .value-bar {
  transform: rotate(47deg);
}

.progress-circle.p14 .value-bar {
  transform: rotate(50deg);
}

.progress-circle.p15 .value-bar {
  transform: rotate(54deg);
}

.progress-circle.p16 .value-bar {
  transform: rotate(58deg);
}

.progress-circle.p17 .value-bar {
  transform: rotate(61deg);
}

.progress-circle.p18 .value-bar {
  transform: rotate(65deg);
}

.progress-circle.p19 .value-bar {
  transform: rotate(68deg);
}

.progress-circle.p20 .value-bar {
  transform: rotate(72deg);
}

.progress-circle.p21 .value-bar {
  transform: rotate(76deg);
}

.progress-circle.p22 .value-bar {
  transform: rotate(79deg);
}

.progress-circle.p23 .value-bar {
  transform: rotate(83deg);
}

.progress-circle.p24 .value-bar {
  transform: rotate(86deg);
}

.progress-circle.p25 .value-bar {
  transform: rotate(90deg);
}

.progress-circle.p26 .value-bar {
  transform: rotate(94deg);
}

.progress-circle.p27 .value-bar {
  transform: rotate(97deg);
}

.progress-circle.p28 .value-bar {
  transform: rotate(101deg);
}

.progress-circle.p29 .value-bar {
  transform: rotate(104deg);
}

.progress-circle.p30 .value-bar {
  transform: rotate(108deg);
}

.progress-circle.p31 .value-bar {
  transform: rotate(112deg);
}

.progress-circle.p32 .value-bar {
  transform: rotate(115deg);
}

.progress-circle.p33 .value-bar {
  transform: rotate(119deg);
}

.progress-circle.p34 .value-bar {
  transform: rotate(122deg);
}

.progress-circle.p35 .value-bar {
  transform: rotate(126deg);
}

.progress-circle.p36 .value-bar {
  transform: rotate(130deg);
}

.progress-circle.p37 .value-bar {
  transform: rotate(133deg);
}

.progress-circle.p38 .value-bar {
  transform: rotate(137deg);
}

.progress-circle.p39 .value-bar {
  transform: rotate(140deg);
}

.progress-circle.p40 .value-bar {
  transform: rotate(144deg);
}

.progress-circle.p41 .value-bar {
  transform: rotate(148deg);
}

.progress-circle.p42 .value-bar {
  transform: rotate(151deg);
}

.progress-circle.p43 .value-bar {
  transform: rotate(155deg);
}

.progress-circle.p44 .value-bar {
  transform: rotate(158deg);
}

.progress-circle.p45 .value-bar {
  transform: rotate(162deg);
}

.progress-circle.p46 .value-bar {
  transform: rotate(166deg);
}

.progress-circle.p47 .value-bar {
  transform: rotate(169deg);
}

.progress-circle.p48 .value-bar {
  transform: rotate(173deg);
}

.progress-circle.p49 .value-bar {
  transform: rotate(176deg);
}

.progress-circle.p50 .value-bar {
  transform: rotate(180deg);
}

.progress-circle.p51 .value-bar {
  transform: rotate(184deg);
}

.progress-circle.p52 .value-bar {
  transform: rotate(187deg);
}

.progress-circle.p53 .value-bar {
  transform: rotate(191deg);
}

.progress-circle.p54 .value-bar {
  transform: rotate(194deg);
}

.progress-circle.p55 .value-bar {
  transform: rotate(198deg);
}

.progress-circle.p56 .value-bar {
  transform: rotate(202deg);
}

.progress-circle.p57 .value-bar {
  transform: rotate(205deg);
}

.progress-circle.p58 .value-bar {
  transform: rotate(209deg);
}

.progress-circle.p59 .value-bar {
  transform: rotate(212deg);
}

.progress-circle.p60 .value-bar {
  transform: rotate(216deg);
}

.progress-circle.p61 .value-bar {
  transform: rotate(220deg);
}

.progress-circle.p62 .value-bar {
  transform: rotate(223deg);
}

.progress-circle.p63 .value-bar {
  transform: rotate(227deg);
}

.progress-circle.p64 .value-bar {
  transform: rotate(230deg);
}

.progress-circle.p65 .value-bar {
  transform: rotate(234deg);
}

.progress-circle.p66 .value-bar {
  transform: rotate(238deg);
}

.progress-circle.p67 .value-bar {
  transform: rotate(241deg);
}

.progress-circle.p68 .value-bar {
  transform: rotate(245deg);
}

.progress-circle.p69 .value-bar {
  transform: rotate(248deg);
}

.progress-circle.p70 .value-bar {
  transform: rotate(252deg);
}

.progress-circle.p71 .value-bar {
  transform: rotate(256deg);
}

.progress-circle.p72 .value-bar {
  transform: rotate(259deg);
}

.progress-circle.p73 .value-bar {
  transform: rotate(263deg);
}

.progress-circle.p74 .value-bar {
  transform: rotate(266deg);
}

.progress-circle.p75 .value-bar {
  transform: rotate(270deg);
}

.progress-circle.p76 .value-bar {
  transform: rotate(274deg);
}

.progress-circle.p77 .value-bar {
  transform: rotate(277deg);
}

.progress-circle.p78 .value-bar {
  transform: rotate(281deg);
}

.progress-circle.p79 .value-bar {
  transform: rotate(284deg);
}

.progress-circle.p80 .value-bar {
  transform: rotate(288deg);
}

.progress-circle.p81 .value-bar {
  transform: rotate(292deg);
}

.progress-circle.p82 .value-bar {
  transform: rotate(295deg);
}

.progress-circle.p83 .value-bar {
  transform: rotate(299deg);
}

.progress-circle.p84 .value-bar {
  transform: rotate(302deg);
}

.progress-circle.p85 .value-bar {
  transform: rotate(306deg);
}

.progress-circle.p86 .value-bar {
  transform: rotate(310deg);
}

.progress-circle.p87 .value-bar {
  transform: rotate(313deg);
}

.progress-circle.p88 .value-bar {
  transform: rotate(317deg);
}

.progress-circle.p89 .value-bar {
  transform: rotate(320deg);
}

.progress-circle.p90 .value-bar {
  transform: rotate(324deg);
}

.progress-circle.p91 .value-bar {
  transform: rotate(328deg);
}

.progress-circle.p92 .value-bar {
  transform: rotate(331deg);
}

.progress-circle.p93 .value-bar {
  transform: rotate(335deg);
}

.progress-circle.p94 .value-bar {
  transform: rotate(338deg);
}

.progress-circle.p95 .value-bar {
  transform: rotate(342deg);
}

.progress-circle.p96 .value-bar {
  transform: rotate(346deg);
}

.progress-circle.p97 .value-bar {
  transform: rotate(349deg);
}

.progress-circle.p98 .value-bar {
  transform: rotate(353deg);
}

.progress-circle.p99 .value-bar {
  transform: rotate(356deg);
}

.progress-circle.p100 .value-bar {
  transform: rotate(360deg);
}

.Voting {
  white-space: nowrap !important;
}
.Voting span {
  white-space: nowrap !important;
}
.theme-original .Voting .dropdown-pane {
  border: 1px solid #788187;
}
.theme-light .Voting .dropdown-pane {
  border: 1px solid #788187;
}
.theme-dark .Voting .dropdown-pane {
  border: 1px solid #A6B2BA;
}

.Voting__button .Icon {
  transform: translate3d(0, 0, 0);
}
.Voting__button path {
  fill: #8a8a8a;
}
.Voting__button circle {
  stroke: #8a8a8a;
}
.Voting__button > a:hover path {
  fill: #333333;
}

.Voting__about-flag {
  margin-right: 30px;
}
.Voting__about-flag .button {
  text-decoration: none;
  font-weight: bold;
  transition: 0.2s all ease-in-out;
  text-transform: capitalize;
  border-radius: 0;
  font-size: 18px;
  font-size: 1.125rem;
}
.theme-original .Voting__about-flag .button {
  background-color: #1A5099;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 5px 5px 0 0 transparent;
  color: #fcfcfc;
}
.theme-light .Voting__about-flag .button {
  background-color: #212529;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 5px 5px 0 0 #E31337;
  color: #fcfcfc;
}
.theme-dark .Voting__about-flag .button {
  background-color: #fff;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 5px 5px 0 0 #E31337;
  color: #2C3A45;
}
.theme-original .Voting__about-flag .button:hover, .theme-original .Voting__about-flag .button:focus {
  background-color: #4BA2F2;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 7px 7px 0 0;
  color: #fcfcfc;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
}
.theme-light .Voting__about-flag .button:hover, .theme-light .Voting__about-flag .button:focus {
  background-color: #E31337;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 7px 7px 0 0 #212529;
  color: #fff;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
}
.theme-dark .Voting__about-flag .button:hover, .theme-dark .Voting__about-flag .button:focus {
  background-color: #E31337;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 7px 7px 0 0 #fff;
  color: #fff;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
}
.theme-original .Voting__about-flag .button:visited, .theme-original .Voting__about-flag .button:active {
  color: #fcfcfc;
}
.theme-light .Voting__about-flag .button:visited, .theme-light .Voting__about-flag .button:active {
  color: #fcfcfc;
}
.theme-dark .Voting__about-flag .button:visited, .theme-dark .Voting__about-flag .button:active {
  color: #2C3A45;
}

.Voting__button-up .Icon {
  margin-left: 0;
  border-radius: 50%;
}
.Voting__button-up div > a {
  padding-right: 0.5rem;
}
.Voting__button-up > a {
  padding-right: 0.4rem;
}
.theme-original .Voting__button-up path {
  fill: #004EFF;
}
.theme-light .Voting__button-up path {
  fill: #E31337;
}
.theme-dark .Voting__button-up path {
  fill: #E31337;
}
.theme-original .Voting__button-up circle {
  stroke: #004EFF;
}
.theme-light .Voting__button-up circle {
  stroke: #E31337;
}
.theme-dark .Voting__button-up circle {
  stroke: #E31337;
}
@media screen and (min-width: 39.9375em) {
  .Voting__button-up .Icon:hover {
    box-shadow: 0 0 0 #4ba2f2;
    -webkit-animation: pulse 2s infinite;
            animation: pulse 2s infinite;
  }
}
.Voting__button-up .close-button {
  position: relative;
  margin-left: 1em;
}
.Voting__button-up > .dropdown-comp > .dropdown__content {
  position: absolute;
  top: -30px;
  left: -26px;
}

.Voting__button-up > a:hover path, a.confirm_weight:hover path {
  fill: #fff;
}
.theme-original .Voting__button-up > a:hover circle, .theme-original a.confirm_weight:hover circle {
  fill: #004EFF;
  stroke: #004EFF;
}
.theme-light .Voting__button-up > a:hover circle, .theme-light a.confirm_weight:hover circle {
  fill: #E31337;
  stroke: #E31337;
}
.theme-dark .Voting__button-up > a:hover circle, .theme-dark a.confirm_weight:hover circle {
  fill: #E31337;
  stroke: #E31337;
}
.Voting__button-up > a:hover svg, a.confirm_weight:hover svg {
  background-size: contain;
  border-radius: 50%;
}

.Voting__button-up.votingUp {
  padding-right: 0.5rem;
}
.Voting__button-up.votingUp svg {
  border: 1px solid #E31337;
  border-radius: 50%;
  border-right-color: transparent;
  border-top-color: transparent;
  -webkit-animation: loading 500ms infinite linear;
          animation: loading 500ms infinite linear;
}

.Voting__button-down.votingDown svg {
  border: 1px solid #ff0264;
  border-radius: 50%;
  border-right-color: transparent;
  border-top-color: transparent;
  -webkit-animation: loading 500ms infinite linear;
          animation: loading 500ms infinite linear;
}

.Voting__button-down {
  margin-right: 0.5rem;
}
.Voting__button-down .Voting__button-downvotes {
  color: #aaa;
  font-size: 80%;
  vertical-align: 15%;
  padding-right: 0.1rem;
  cursor: default;
}
.Voting__button-down a path {
  fill: #000;
}
.Voting__button-down a circle {
  stroke: #000;
}
.Voting__button-down a:hover circle {
  fill: #555;
}
.Voting__button-down a:hover path {
  fill: #fff;
}
.Voting__button-down.Voting__button--downvoted a path {
  fill: #fff;
}
.Voting__button-down.Voting__button--downvoted a circle {
  fill: #f99;
}
.Voting__button-down.Voting__button--downvoted a:hover circle {
  fill: #f66;
}

.Voting__button--upvoted .Icon:hover {
  -webkit-animation: none !important;
          animation: none !important;
}
.Voting__button--upvoted path {
  fill: #fff !important;
}

.theme-original .Voting__button--upvoted circle {
  fill: #004EFF;
  stroke: #004EFF;
}
.theme-light .Voting__button--upvoted circle {
  fill: #E31337;
  stroke: #E31337;
}
.theme-dark .Voting__button--upvoted circle {
  fill: #E31337;
  stroke: #E31337;
}

.Voting__button--upvoted a:hover path {
  fill: #fff !important;
}

.theme-original .Voting__button--upvoted a:hover circle {
  fill: #4BA2F2;
  stroke: #4BA2F2;
}
.theme-light .Voting__button--upvoted a:hover circle {
  fill: #d81233;
  stroke: #d81233;
}
.theme-dark .Voting__button--upvoted a:hover circle {
  fill: #E31337;
  stroke: #E31337;
}

.Voting__button--downvoted path {
  fill: #ff0264;
}

.PostFull .Voting .DropdownMenu.Voting__voters_list {
  /* reserve enough space for dropdown (otherwise overflow) */
  min-width: 140px;
}

.Voting .DropdownMenu.Voting__pane ul {
  width: auto;
  min-width: 260px;
}

.Voting .DropdownMenu ul {
  width: auto;
  min-width: 140px;
  max-width: 360px;
}
.Voting .DropdownMenu ul li > a {
  padding: 0 0.5rem;
  line-height: 1.25;
}
.Voting .DropdownMenu ul li > span {
  padding: 0 0.5rem;
  line-height: 1.25;
}

.DropdownMenu.Voting__voters_list ul {
  min-width: 140px;
}
.DropdownMenu.Voting__voters_list ul li > span {
  padding: 0.25rem 0.5rem;
  font-size: 82.5%;
  display: block;
}
.theme-original .DropdownMenu.Voting__voters_list ul li > span {
  color: #788187;
}
.theme-light .DropdownMenu.Voting__voters_list ul li > span {
  color: #788187;
}
.theme-dark .DropdownMenu.Voting__voters_list ul li > span {
  color: #A6B2BA;
}

.Voting__inner {
  padding-right: 0.8rem;
  margin-right: 0.6rem;
}
.theme-original .Voting__inner {
  border-right: 1px solid #f6f6f6;
}
.theme-light .Voting__inner {
  border-right: 1px solid #f6f6f6;
}
.theme-dark .Voting__inner {
  border-right: 1px solid #2c3136;
}
.Voting__inner .DropdownMenu .Icon.dropdown-arrow {
  margin-right: -0.5rem;
  position: relative;
  top: 2px;
}
.Voting__inner .cancel {
  font-size: 80%;
  padding: 0 0.4em;
  margin-left: 0.5rem;
  margin-right: 2px;
  background-color: #f8f8f8;
  border-radius: 50%;
  border: 1px solid #dadada;
  color: #8a8a8a;
}

.Voting__adjust_weight_down {
  right: 0;
  width: auto !important;
  max-width: 500px;
}
.theme-original .Voting__adjust_weight_down {
  background-color: #f8f8ff;
}
.theme-light .Voting__adjust_weight_down {
  background-color: #f4f4fd;
}
.theme-dark .Voting__adjust_weight_down {
  background-color: #212529;
}
.Voting__adjust_weight_down div.clear {
  clear: both;
}
.Voting__adjust_weight_down p, .Voting__adjust_weight_down span {
  white-space: normal !important;
}
.Voting__adjust_weight_down .weight-display {
  color: #ff0264 !important;
}
.Voting__adjust_weight_down .rangeslider {
  margin-right: 2rem;
}

.Voting__adjust_weight, .Voting__adjust_weight_down {
  padding: 20px 20px 20px;
  margin-right: 10px;
  width: 350px;
  min-width: 320px;
  overflow: hidden;
}
.Voting__adjust_weight .Icon:hover, .Voting__adjust_weight_down .Icon:hover {
  -webkit-animation: none !important;
          animation: none !important;
}
.Voting__adjust_weight .weight-display, .Voting__adjust_weight_down .weight-display {
  width: 3rem;
  float: left;
  margin-right: 0.5rem;
  text-align: right;
  color: #8a8a8a;
  line-height: 2.6rem;
}
.Voting__adjust_weight a.confirm_weight, .Voting__adjust_weight_down a.confirm_weight {
  float: left;
  width: 2rem;
  height: 2rem;
  line-height: 2.6rem;
}
.Voting__adjust_weight .rangeslider, .Voting__adjust_weight_down .rangeslider {
  position: relative;
  float: left;
  background: #e6e6e6;
}
.Voting__adjust_weight .rangeslider .rangeslider__fill, .Voting__adjust_weight_down .rangeslider .rangeslider__fill, .Voting__adjust_weight .rangeslider .rangeslider__handle, .Voting__adjust_weight_down .rangeslider .rangeslider__handle {
  position: absolute;
}
.Voting__adjust_weight .rangeslider, .Voting__adjust_weight_down .rangeslider, .Voting__adjust_weight .rangeslider .rangeslider__fill, .Voting__adjust_weight_down .rangeslider .rangeslider__fill {
  display: block;
  box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.3);
  border-radius: 10px;
}
.Voting__adjust_weight .rangeslider .rangeslider__handle, .Voting__adjust_weight_down .rangeslider .rangeslider__handle {
  background: #fff;
  border: 1px solid #ccc;
  cursor: pointer;
  width: 30px;
  height: 30px;
  border-radius: 30px;
  top: 50%;
  transform: translate3d(-50%, -50%, 0);
}
.Voting__adjust_weight .rangeslider .rangeslider__handle:active, .Voting__adjust_weight_down .rangeslider .rangeslider__handle:active {
  background: #E31337;
  box-shadow: none;
}
.Voting__adjust_weight .rangeslider-horizontal, .Voting__adjust_weight_down .rangeslider-horizontal {
  height: 10px;
  width: 200px;
  background: none;
  float: left;
  margin-top: 18px;
}
.Voting__adjust_weight .rangeslider-horizontal .rangeslider__fill, .Voting__adjust_weight_down .rangeslider-horizontal .rangeslider__fill {
  height: 100%;
  background: #E31337;
  box-shadow: none;
  left: 0;
}
.Voting__adjust_weight .Voting__adjust_weight_close, .Voting__adjust_weight_down .Voting__adjust_weight_close {
  position: static;
  line-height: 2.6rem;
  font-size: 2rem;
  margin-left: 1rem;
}

@media screen and (max-width: 39.9375em) {
  .Voting__button-up .dropdown-pane {
    margin-top: -36px;
    position: absolute;
    left: 1rem;
  }
}
/* Medium and bigger */
@media screen and (min-width: 39.9375em) {
  .Voting__button-up {
    display: inline-block;
    position: relative;
  }
  .Voting__button-up .dropdown-pane {
    top: -18px;
    left: -28px;
  }
}
/* Pulse for upvote action */
@-webkit-keyframes pulse {
  0% {
    -webkit-box-shadow: 0 0 0 0 #06d6a9;
  }
  70% {
    -webkit-box-shadow: 0 0 0 10px #06d6a9;
  }
  100% {
    -webkit-box-shadow: 0 0 0 0 #06d6a9;
  }
}
@keyframes pulse {
  0% {
    box-shadow: 0 0 0 0 #06d6a9;
  }
  70% {
    box-shadow: 0 0 0 10px rgba(6, 214, 169, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(6, 214, 169, 0);
  }
}
.weight-container {
  min-width: 300px;
  width: 90%;
  margin: 0 auto;
  padding-bottom: 2px;
}

.FormattedAsset .prefix {
  padding-right: 0.1rem;
}

.ReplyEditor {
  max-width: 60rem;
  padding: 10px;
  margin-bottom: 15px;
  overflow-y: auto;
}
.theme-original .ReplyEditor {
  border-radius: 5px;
  border: 1px solid #eee;
  background-color: #fff;
}
.theme-light .ReplyEditor {
  border-radius: 5px;
  border: 1px solid #eee;
  background-color: #fff;
}
.theme-dark .ReplyEditor {
  border-radius: 5px;
  border: 1px solid #2c3136;
  background-color: #2c3136;
}
.ReplyEditor.side-by-side {
  max-width: 100%;
}
.ReplyEditor .preview-container {
  max-width: 48rem;
  margin-left: 5rem;
}
.ReplyEditor .preview-container.side-by-side {
  max-width: 100%;
  margin-left: 0;
}
.ReplyEditor .vframe {
  display: block;
}
.ReplyEditor .vframe .public-DraftEditor-content {
  height: 20em;
  resize: vertical;
  color: #333;
}
.ReplyEditor .button {
  margin-bottom: 2em;
}
.ReplyEditor .button.hollow.no-border {
  background-color: transparent;
  box-shadow: 0 0 0 rgba(0, 0, 0, 0);
  text-decoration: none;
  font-weight: normal;
  font-size: 14px;
  font-size: 0.875rem;
  outline: none;
  text-shadow: 0 0 0 rgba(0, 0, 0, 0);
  border: transparent;
}
.ReplyEditor .side-by-side {
  height: calc(100vh - 140px);
}
.ReplyEditor .Preview-info {
  display: flex;
  justify-content: space-between;
  margin: 0.4em 0 1em;
}

input.ReplyEditor__altAuthor {
  width: 300px;
}

@media screen and (max-width: 63.9375em) {
  .ReplyEditor .side-by-side {
    height: auto;
  }
}
.comment-editor .ReplyEditor .column, .comment-editor .ReplyEditor .columns {
  flex: 100%;
  max-width: 100%;
}

.comment-editor .ReplyEditor .side-by-side {
  height: auto;
}

.upload-enabled {
  border-bottom: 1px dashed #ddd;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}

.drag-and-drop {
  font-size: 85%;
  padding: 3px 8px;
  margin: 0;
  color: #767676;
  background-color: #fafafa;
  border-left: 1px solid #ccc;
  border-right: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  border-bottom-right-radius: 3;
  border-bottom-left-radius: 3;
}

.PostFull .ReplyEditor__body {
  margin: 1rem 0 0;
}

.ReplyEditor__title {
  font-size: 1rem;
  font-weight: bold;
  padding: 0.5rem;
  height: auto;
}

.ReplyEditor__draft {
  position: fixed;
  bottom: 0;
  left: 0;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 5px;
  color: #BBB;
  font-size: 1.2em;
  text-align: center;
  z-index: 1;
  padding: 0.5rem 1rem;
}

.ReplyEditor__draft-hide {
  opacity: 0;
}

.ReplyEditor__draft-saved {
  transition: opacity 3s ease-in-out;
  opacity: 0;
}

.ReplyEditor .Preview {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.ReplyEditor .Preview .Markdown {
  border: 1px solid #e6e6e6;
  padding: 0 0.5rem;
}

.ReplyEditor__body {
  margin-top: 1rem;
  clear: both;
}

.ReplyEditor__options {
  font-size: 85%;
}
.ReplyEditor__options select {
  font-size: 100%;
  width: 10rem;
  height: auto;
  padding: 0.25rem 0.5rem;
  margin-left: 0.25rem;
}
.ReplyEditor__options label {
  font-size: 100%;
  text-transform: none;
}

.Dropdown__root___1B9ta {
  color: black !important;
}

.ReplyEditor__options__cover_image_selector {
  margin-top: 10px;
}

.ReplyEditor__options__image_selector .ReplyEditor__options__image_selector__image_container {
  width: 60px;
  height: 60px;
  margin-right: 5px;
  margin-bottom: 5px;
  border: 1px solid grey;
  background-size: cover;
  display: inline-block;
  transition: width 0.5s, height 0.5s;
  vertical-align: top;
  opacity: 0.5;
}
.ReplyEditor__options__image_selector .ReplyEditor__options__image_selector__image_container.selected {
  opacity: 1;
}
.theme-original .ReplyEditor__options__image_selector .ReplyEditor__options__image_selector__image_container.selected {
  border: 3px solid #E31337;
}
.theme-light .ReplyEditor__options__image_selector .ReplyEditor__options__image_selector__image_container.selected {
  border: 3px solid #E31337;
}
.theme-dark .ReplyEditor__options__image_selector .ReplyEditor__options__image_selector__image_container.selected {
  border: 3px solid #E31337;
}
.ReplyEditor__options__image_selector .ReplyEditor__options__image_selector__image_container:hover {
  opacity: 1;
  width: 120px;
  height: 120px;
}

.ReplyEditor--submit-buttons-container {
  display: flex;
  flex-direction: row;
}
@media screen and (max-width: 63.9375em) {
  .ReplyEditor--submit-buttons-container {
    flex-direction: column;
  }
}

.SlateEditor > div[contenteditable=true] {
  min-height: 12rem;
  color: #000;
  background-color: #ffffff;
  border-radius: 3px;
  border: 1px solid #cacaca;
  padding: 0.5rem;
}

.SlateEditor.Markdown a {
  border-bottom: 1px dotted #00f;
  position: relative;
}
.SlateEditor.Markdown a img {
  border: 1px dotted #00f;
}
.SlateEditor.Markdown div.active {
  box-shadow: 0 0 4px 2px #48C;
}
.SlateEditor.Markdown img.active {
  box-shadow: 0 0 2px 1px #48C;
}
.SlateEditor.Markdown hr.active {
  box-shadow: 0 0 2px 1px #48C;
}
.SlateEditor.Markdown a:hover:after {
  font-family: Arial;
  border-radius: 3px;
  padding: 1px 3px;
  background: #eee;
  content: attr(href);
  display: block;
  position: absolute;
  left: 0;
  top: 110%;
  line-height: 1;
  white-space: nowrap;
  font-size: 9pt;
  font-weight: normal;
  z-index: 99999;
  padding: 4px 8px;
  color: #ddd;
  transition: opacity 0.75s;
  background-image: linear-gradient(180deg, #464646, #151515);
}

.SlateEditor__sidebar {
  opacity: 0.25;
  font-size: 110%;
  padding: 1px;
  position: absolute;
  z-index: 1;
  top: -10000px;
  left: -10000px;
  margin-left: -10px;
  background-color: #222;
  border-radius: 4px;
  transition: opacity 0.75s;
  background-image: linear-gradient(180deg, #464646, #151515);
}
.SlateEditor__sidebar:hover {
  opacity: 1;
}
.SlateEditor__sidebar:after {
  top: 0.6rem;
  left: 100%;
  border: transparent solid;
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
  border-left-color: #464646;
  border-width: 5px;
  margin-left: 0px;
}

.SlateEditor__sidebar-button {
  display: block;
  color: white;
  padding: 1px 2px;
  min-width: 1.75rem;
  text-align: center;
}
.SlateEditor__sidebar-button svg {
  fill: white;
}
.SlateEditor__sidebar-button:hover svg {
  fill: #32cd32;
}

.SlateEditor__menu {
  font-size: 110%;
  padding: 1px;
  position: absolute;
  z-index: 1;
  top: -10000px;
  left: -10000px;
  margin-top: -6px;
  opacity: 0.9;
  background-color: #222;
  border-radius: 4px;
  transition: opacity 0.75s;
  background-image: linear-gradient(180deg, #464646, #151515);
}
.SlateEditor__menu:hover {
  opacity: 1;
}
.SlateEditor__menu:after {
  top: 100%;
  left: 50%;
  border: solid transparent;
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
  border-top-color: #151515;
  border-width: 5px;
  margin-left: -5px;
}
.SlateEditor__menu > * {
  display: inline-block;
}

.SlateEditor__menu-button {
  font-family: "Georgia", serif;
  color: #FFF;
  cursor: pointer;
  display: inline-block;
  width: 2rem;
  height: 1.75rem;
  text-align: center;
  background: rgba(0, 0, 0, 0.1);
  border-radius: 2px;
}
.SlateEditor__menu-button > span path {
  fill: white;
}

.SlateEditor__menu-button[data-active=false]:hover,
.SlateEditor__menu-button[data-active=true] {
  color: #32cd32;
  background: rgba(0, 0, 0, 0.5);
}
.SlateEditor__menu-button[data-active=false]:hover > span path,
.SlateEditor__menu-button[data-active=true] > span path {
  fill: #32cd32;
}

.SlateEditor__menu-button-code > span > code {
  border: none;
  background: transparent;
  color: inherit;
  padding: 0;
  font-size: 90%;
  vertical-align: top;
}

.SlateEditor__menu-button-sup > span > span,
.SlateEditor__menu-button-sub > span > span {
  font-family: Arial;
  font-size: 80%;
  vertical-align: 4%;
}

.SlateEditor__menu-button-link .Icon,
.SlateEditor__menu-button-link .Icon > svg {
  width: 1rem;
  height: 1rem;
}

.SlateEditor__menu-button-block-quote > span > span {
  font-size: 220%;
  vertical-align: -45%;
  line-height: 1;
}

.DropdownMenu {
  position: relative;
  display: inline-block;
}
.DropdownMenu .Icon.dropdown-arrow {
  top: 2px;
  margin-right: 0;
}
.DropdownMenu > .VerticalMenu {
  visibility: hidden;
  min-width: 145px;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  z-index: 1000;
  display: block;
  border-radius: 3px;
  opacity: 0;
  position: absolute;
  top: 100%;
  padding: 2px;
  transform: translateY(10%);
  transition: all 0.3s ease 0s, visibility 0s linear 0.3s;
  box-shadow: 1px 1px 5px 0px rgba(50, 50, 50, 0.75);
}
.theme-original .DropdownMenu > .VerticalMenu {
  background-color: #f8f8ff;
  border: 1px solid #788187;
}
.theme-light .DropdownMenu > .VerticalMenu {
  background-color: #f4f4fd;
  border: 1px solid #788187;
}
.theme-dark .DropdownMenu > .VerticalMenu {
  background-color: #212529;
  border: 1px solid #A6B2BA;
}
.DropdownMenu.show > .VerticalMenu {
  visibility: visible;
  opacity: 1;
  transform: translateX(0%);
  transition-delay: 0s;
}
.DropdownMenu.show > .VerticalMenu a {
  transition: 0.2s all ease-in-out;
}
.theme-original .DropdownMenu.show > .VerticalMenu a {
  color: #333;
}
.theme-light .DropdownMenu.show > .VerticalMenu a {
  color: #333;
}
.theme-dark .DropdownMenu.show > .VerticalMenu a {
  color: #fcfcfc;
}
.theme-original .DropdownMenu.show > .VerticalMenu a:hover {
  color: #004EFF;
}
.theme-light .DropdownMenu.show > .VerticalMenu a:hover {
  color: #E31337;
}
.theme-dark .DropdownMenu.show > .VerticalMenu a:hover {
  color: #E31337;
}
.DropdownMenu.left > .VerticalMenu {
  position: absolute;
  right: 0%;
}
.DropdownMenu.right > .VerticalMenu {
  position: absolute;
  left: 0%;
}
.DropdownMenu .DropdownMenu.move-left .VerticalMenu {
  left: -50%;
}

.VerticalMenu {
  width: 200px;
}
.VerticalMenu .Icon {
  padding-left: 0.1rem;
  margin-right: 14px;
  top: 0;
}
.theme-original .VerticalMenu svg path, .theme-original .VerticalMenu svg polygon {
  fill: #788187;
}
.theme-light .VerticalMenu svg path, .theme-light .VerticalMenu svg polygon {
  fill: #788187;
}
.theme-dark .VerticalMenu svg path, .theme-dark .VerticalMenu svg polygon {
  fill: #A6B2BA;
}
.VerticalMenu > li > a {
  color: #333333;
  line-height: 1rem;
  position: relative;
  transition: 0.2s all ease-in-out;
}
.VerticalMenu > li > a:hover {
  text-decoration: none;
}
.theme-original .VerticalMenu > li > a:hover {
  background-color: #f8f8ff;
}
.theme-light .VerticalMenu > li > a:hover {
  background-color: #f8f8ff;
}
.theme-dark .VerticalMenu > li > a:hover {
  background-color: #2C3A45;
}
.VerticalMenu > li.title {
  padding: 0.4rem;
  font-weight: bold;
  text-align: left;
  padding-left: 16px;
}
.theme-original .VerticalMenu > li.title {
  border-bottom: 1px solid #eee;
}
.theme-light .VerticalMenu > li.title {
  border-bottom: 1px solid #eee;
}
.theme-dark .VerticalMenu > li.title {
  border-bottom: 1px solid #2c3136;
}

.VotesAndComments {
  white-space: nowrap;
}
.VotesAndComments path {
  transition: 0.2s all ease-in-out;
}
.theme-original .VotesAndComments path {
  fill: #cacaca;
}
.theme-light .VotesAndComments path {
  fill: #cacaca;
}
.theme-dark .VotesAndComments path {
  fill: #A6B2BA;
}
.VotesAndComments circle {
  stroke: none;
}
.VotesAndComments a {
  font-weight: normal;
}

.VotesAndComments__votes {
  padding-right: 1rem;
}
.theme-original .VotesAndComments__votes {
  border-right: 1px solid #f6f6f6;
}
.theme-light .VotesAndComments__votes {
  border-right: 1px solid #f6f6f6;
}
.theme-dark .VotesAndComments__votes {
  border-right: 1px solid #2c3136;
}

.VotesAndComments__comments {
  padding: 0 1rem;
}

/* Small only */
@media screen and (max-width: 39.9375em) {
  .VotesAndComments {
    display: block;
    width: auto;
    float: right;
  }
}
.TagList__horizontal {
  max-width: 48rem;
  margin: 0 auto 0.5rem;
}
.TagList__horizontal a {
  font-size: 95%;
  display: inline-block;
  margin: 0.1rem 0.4rem 0.1rem 0;
  padding: 0.1rem 0.3rem;
  border-radius: 0.3rem;
  transition: 0.2s all ease-in-out;
}
.theme-original .TagList__horizontal a {
  background: #f8f8ff;
  color: #333;
  border: 1px solid #eee;
}
.theme-light .TagList__horizontal a {
  background: #f8f8ff;
  color: #333;
  border: 1px solid #eee;
}
.theme-dark .TagList__horizontal a {
  background: #2C3A45;
  color: #fcfcfc;
  border: 1px solid #2c3136;
}
.theme-original .TagList__horizontal a:hover {
  background: #f8f8ff;
  color: #333;
  border: 1px solid #788187;
}
.theme-light .TagList__horizontal a:hover {
  background: #f4f4fd;
  color: #333;
  border: 1px solid #788187;
}
.theme-dark .TagList__horizontal a:hover {
  background: #212529;
  color: #fcfcfc;
  border: 1px solid #A6B2BA;
}

.Reputation {
  font-size: 13px;
  font-size: 0.8125rem;
  line-height: 1;
  padding: 0;
  margin-left: -1px;
  font-weight: normal;
  transition: 0.3s all ease-in-out;
}
.theme-original .Reputation {
  color: #333;
}
.theme-light .Reputation {
  color: #333;
}
.theme-dark .Reputation {
  color: #fcfcfc;
}
@media only screen and (min-width: 47.5em) {
  .Reputation {
    font-size: 14px;
    font-size: 0.875rem;
  }
}

.theme-original .Reblog__button path {
  fill: #cacaca;
}
.theme-light .Reblog__button path {
  fill: #cacaca;
}
.theme-dark .Reblog__button path {
  fill: #A6B2BA;
}

.theme-original .Reblog__button-active path {
  fill: #004EFF;
}
.theme-light .Reblog__button-active path {
  fill: #E31337;
}
.theme-dark .Reblog__button-active path {
  fill: #E31337;
}

.Reblog__button.loading {
  padding-right: 0.5rem;
}
.Reblog__button.loading svg {
  border: 1px solid #E31337;
  border-radius: 100%;
  border-right-color: transparent;
  border-top-color: transparent;
  -webkit-animation: loading 500ms infinite linear;
          animation: loading 500ms infinite linear;
}
.Reblog__button.loading svg path {
  opacity: 0;
}

.shareMenu {
  display: inline-block;
  vertical-align: middle;
  height: 2em;
}
.shareMenu > ul {
  list-style: none;
  display: inline;
  margin: 0;
}
.shareMenu > ul li {
  float: left;
  padding: 2px;
}
.theme-original .shareMenu > ul li > a:hover svg {
  fill: #004EFF;
}
.theme-light .shareMenu > ul li > a:hover svg {
  fill: #E31337;
}
.theme-dark .shareMenu > ul li > a:hover svg {
  fill: #E31337;
}

.Author {
  display: inline-block;
  /* coax footer link to behave similarly */
}
.Author .dropdown-arrow {
  position: relative;
  top: 3px;
  left: -2px;
}
.Author > span > strong > a {
  transition: 0.2s all ease-in-out;
}
.theme-original .Author > span > strong > a {
  color: #333;
}
.theme-light .Author > span > strong > a {
  color: #333;
}
.theme-dark .Author > span > strong > a {
  color: #fcfcfc;
}
.theme-original .Author > span > strong > a:hover, .theme-original .Author > span > strong > a:focus {
  color: #004EFF;
}
.theme-light .Author > span > strong > a:hover, .theme-light .Author > span > strong > a:focus {
  color: #E31337;
}
.theme-dark .Author > span > strong > a:hover, .theme-dark .Author > span > strong > a:focus {
  color: #E31337;
}

.Author__container {
  width: auto;
  padding: 0;
  box-shadow: 1px 1px 5px 0px rgba(50, 50, 50, 0.75);
  z-index: 10;
  font-size: inherit;
  position: absolute;
  width: 300px;
  border: 1px solid #cacaca;
  border-radius: 3px;
  font-size: 1rem;
}
.theme-original .Author__container {
  background-color: #fafaff;
  color: #333;
}
.theme-light .Author__container {
  background-color: #fafaff;
  color: #333;
}
.theme-dark .Author__container {
  background-color: #191c1f;
  color: #fcfcfc;
}
.Author__container .Author__dropdown {
  width: 290px;
  min-height: 108px;
}
.Author__container .Author__dropdown .Userpic {
  margin-right: 1rem;
  float: left;
  width: 75px;
  height: 75px;
}
.Author__container .Author__dropdown .Author__name {
  text-decoration: none;
  display: block;
  font-size: 110%;
  font-weight: 600;
  line-height: 1;
}
.theme-original .Author__container .Author__dropdown .Author__name {
  color: #333;
}
.theme-light .Author__container .Author__dropdown .Author__name {
  color: #333;
}
.theme-dark .Author__container .Author__dropdown .Author__name {
  color: #fcfcfc;
}
.Author__container .Author__dropdown .Author__username {
  text-decoration: none;
  font-size: 90%;
  font-weight: 400;
}
.theme-original .Author__container .Author__dropdown .Author__username {
  color: #788187;
}
.theme-light .Author__container .Author__dropdown .Author__username {
  color: #788187;
}
.theme-dark .Author__container .Author__dropdown .Author__username {
  color: #A6B2BA;
}
.Author__container .Author__dropdown .Author__bio {
  clear: both;
  font-size: 90%;
  padding: 10px 10px 0;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2em;
  margin-bottom: 8px;
}
.theme-original .Author__container .Author__dropdown .Author__bio {
  color: #788187;
}
.theme-light .Author__container .Author__dropdown .Author__bio {
  color: #788187;
}
.theme-dark .Author__container .Author__dropdown .Author__bio {
  color: #A6B2BA;
}

.UserNames .VerticalMenu li > a {
  padding: 0.25rem 0.5rem;
  line-height: 1.25;
}

.nav__block-list {
  margin: 0px;
  display: flex;
}

li.nav__block-list-item {
  margin: 0 10px;
  list-style: none;
  padding: 1.125rem 0.25rem;
  transition: 0.3s all ease-in-out;
  font-size: 1.125rem;
}
li.nav__block-list-item a {
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
li.nav__block-list-item--active {
  box-shadow: 0px 5px 0px -2px #E31337;
}
li.nav__block-list-item--active a {
  color: #E31337;
}
li.nav__block-list-item:hover, li.nav__block-list-item:focus {
  box-shadow: 0px 5px 0px -2px #E31337;
}
li.nav__block-list-item:hover a, li.nav__block-list-item:focus a {
  color: #E31337;
}

form.search-input {
  height: 42px;
  /* small */
}
form.search-input svg.search-input__icon {
  position: absolute;
  pointer-events: none;
  stroke-width: 1.2;
  fill: none;
}
.theme-original form.search-input svg.search-input__icon {
  stroke: #4BA2F2;
}
.theme-light form.search-input svg.search-input__icon {
  stroke: #212529;
}
.theme-dark form.search-input svg.search-input__icon {
  stroke: #fff;
}
form.search-input input.search-input__inner {
  outline: none;
  padding: 9px 10px 11px 32px;
  border-radius: 25pc;
  transition: all 0.3s ease-in-out;
  font-size: 16px;
  background: transparent;
  box-shadow: none;
  width: 42px;
  height: 42px;
  color: transparent;
  cursor: pointer;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  border: 1px solid rgba(202, 202, 202, 0.6);
}
form.search-input input.search-input__inner::-moz-placeholder {
  color: transparent;
}
form.search-input input.search-input__inner:-ms-input-placeholder {
  color: transparent;
}
form.search-input input.search-input__inner::placeholder {
  color: transparent;
}
form.search-input input.search-input__inner:hover {
  background-color: #E31337;
}
form.search-input input.search-input__inner:focus {
  width: 180px;
  border-color: #E31337;
  padding-left: 2.5rem;
  background-color: transparent;
  cursor: auto;
}
.theme-original form.search-input input.search-input__inner:focus {
  border: #fff;
}
.theme-light form.search-input input.search-input__inner:focus {
  border: #fff;
}
.theme-dark form.search-input input.search-input__inner:focus {
  border: #2c3136;
}
.theme-original form.search-input input.search-input__inner:focus {
  color: #333;
}
.theme-light form.search-input input.search-input__inner:focus {
  color: #333;
}
.theme-dark form.search-input input.search-input__inner:focus {
  color: #fcfcfc;
}
form.search-input input.search-input__inner:focus::-moz-placeholder {
  color: #2C3A45;
}
form.search-input input.search-input__inner:focus:-ms-input-placeholder {
  color: #2C3A45;
}
form.search-input input.search-input__inner:focus::placeholder {
  color: #2C3A45;
}
form.search-input--expanded {
  height: 42px;
  /* small */
}
form.search-input--expanded svg.search-input__icon {
  position: absolute;
  pointer-events: none;
  stroke-width: 1.2;
  fill: none;
}
.theme-original form.search-input--expanded svg.search-input__icon {
  stroke: #4BA2F2;
}
.theme-light form.search-input--expanded svg.search-input__icon {
  stroke: #212529;
}
.theme-dark form.search-input--expanded svg.search-input__icon {
  stroke: #fff;
}
form.search-input--expanded input.search-input__inner {
  outline: none;
  padding: 9px 10px 11px 32px;
  border-radius: 25pc;
  transition: all 0.3s ease-in-out;
  font-size: 16px;
  background: transparent;
  height: 42px;
  color: transparent;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  width: 100%;
  border-color: #E31337;
  padding-left: 2.5rem;
  cursor: auto;
  border: 1px solid rgba(202, 202, 202, 0.6);
}
.theme-original form.search-input--expanded input.search-input__inner {
  color: #333;
}
.theme-light form.search-input--expanded input.search-input__inner {
  color: #333;
}
.theme-dark form.search-input--expanded input.search-input__inner {
  color: #fcfcfc;
}
.theme-original form.search-input--expanded input.search-input__inner::-moz-placeholder {
  color: #788187;
}
.theme-original form.search-input--expanded input.search-input__inner:-ms-input-placeholder {
  color: #788187;
}
.theme-original form.search-input--expanded input.search-input__inner::placeholder {
  color: #788187;
}
.theme-light form.search-input--expanded input.search-input__inner::-moz-placeholder {
  color: #788187;
}
.theme-light form.search-input--expanded input.search-input__inner:-ms-input-placeholder {
  color: #788187;
}
.theme-light form.search-input--expanded input.search-input__inner::placeholder {
  color: #788187;
}
.theme-dark form.search-input--expanded input.search-input__inner::-moz-placeholder {
  color: #A6B2BA;
}
.theme-dark form.search-input--expanded input.search-input__inner:-ms-input-placeholder {
  color: #A6B2BA;
}
.theme-dark form.search-input--expanded input.search-input__inner::placeholder {
  color: #A6B2BA;
}
.search-sort-order {
  margin-top: 10px;
}

.search-sort-order--title {
  margin-bottom: 3px;
}

.search-sort-order--select select {
  width: 200px;
}

.icon-button__svg {
  display: block;
  transition: all 0.3s ease-in-out;
}
.icon-button__svg.icon-button__svg--small {
  width: 32px;
  height: 32px;
}
@media only screen and (min-width: 47.5em) {
  .icon-button__svg.icon-button__svg--small {
    width: 32px;
    height: 32px;
  }
}
.icon-button__svg.icon-button__svg--medium {
  width: 36px;
  height: 36px;
}
@media only screen and (min-width: 47.5em) {
  .icon-button__svg.icon-button__svg--medium {
    width: 42px;
    height: 42px;
  }
}
.icon-button__svg.icon-button__svg--large {
  width: 42px;
  height: 42px;
}
@media only screen and (min-width: 47.5em) {
  .icon-button__svg.icon-button__svg--large {
    width: 48px;
    height: 48px;
  }
}
.icon-button__svg.icon-button__svg--green {
  fill: #E31337;
}
.icon-button__svg.icon-button__svg--transparent {
  fill: transparent;
}
.icon-button__svg .icon-button {
  transition: all 0.3s ease-in-out;
  stroke-width: 0.5;
}
.theme-original .icon-button__svg .icon-button.icon-button__border--transparent {
  stroke: #cacaca;
}
.theme-light .icon-button__svg .icon-button.icon-button__border--transparent {
  stroke: #cacaca;
}
.theme-dark .icon-button__svg .icon-button.icon-button__border--transparent {
  stroke: #A6B2BA;
}
.theme-original .icon-button__svg .icon-button.icon-button__border--green {
  stroke: #E31337;
}
.theme-light .icon-button__svg .icon-button.icon-button__border--green {
  stroke: #E31337;
}
.theme-dark .icon-button__svg .icon-button.icon-button__border--green {
  stroke: #E31337;
}
.icon-button__svg .icon-button.icon-button--transparent {
  fill-rule: evenodd;
}
.theme-original .icon-button__svg .icon-button.icon-button--transparent {
  fill: #4BA2F2;
}
.theme-light .icon-button__svg .icon-button.icon-button--transparent {
  fill: #212529;
}
.theme-dark .icon-button__svg .icon-button.icon-button--transparent {
  fill: #fff;
}
.icon-button__svg .icon-button.icon-button--transparent.icon-button__magnifyingGlass {
  fill: transparent;
  stroke-width: 1;
}
.theme-original .icon-button__svg .icon-button.icon-button--transparent.icon-button__magnifyingGlass {
  stroke: #4BA2F2;
}
.theme-light .icon-button__svg .icon-button.icon-button--transparent.icon-button__magnifyingGlass {
  stroke: #212529;
}
.theme-dark .icon-button__svg .icon-button.icon-button--transparent.icon-button__magnifyingGlass {
  stroke: #fff;
}
.icon-button__svg .icon-button.icon-button--green {
  fill-rule: evenodd;
}
.theme-original .icon-button__svg .icon-button.icon-button--green {
  fill: #fff;
}
.theme-light .icon-button__svg .icon-button.icon-button--green {
  fill: #fff;
}
.theme-dark .icon-button__svg .icon-button.icon-button--green {
  fill: #fff;
}
.icon-button__svg :hover {
  stroke: #eee;
  stroke-width: 0.5;
  cursor: pointer;
}
.theme-original .icon-button__svg :hover {
  fill: #1A5099;
}
.theme-light .icon-button__svg :hover {
  fill: #212529;
}
.theme-dark .icon-button__svg :hover {
  fill: #fff;
}
.icon-button__svg :hover .icon-button.icon-button__border {
  stroke-width: 2;
}
.theme-original .icon-button__svg :hover .icon-button.icon-button__border {
  stroke: #1A5099;
}
.theme-light .icon-button__svg :hover .icon-button.icon-button__border {
  stroke: #212529;
}
.theme-dark .icon-button__svg :hover .icon-button.icon-button__border {
  stroke: #fff;
}
.theme-original .icon-button__svg :hover .icon-button.icon-button__svg {
  fill: #1A5099;
}
.theme-light .icon-button__svg :hover .icon-button.icon-button__svg {
  fill: #212529;
}
.theme-dark .icon-button__svg :hover .icon-button.icon-button__svg {
  fill: #fff;
}
.theme-original .icon-button__svg :hover .icon-button.icon-button--transparent {
  fill: #fcfcfc;
}
.theme-light .icon-button__svg :hover .icon-button.icon-button--transparent {
  fill: #fcfcfc;
}
.theme-dark .icon-button__svg :hover .icon-button.icon-button--transparent {
  fill: #2C3A45;
}
.icon-button__svg :hover .icon-button.icon-button--transparent.icon-button__magnifyingGlass {
  fill: transparent;
  stroke-width: 1;
}
.theme-original .icon-button__svg :hover .icon-button.icon-button--transparent.icon-button__magnifyingGlass {
  stroke: #fcfcfc;
}
.theme-light .icon-button__svg :hover .icon-button.icon-button--transparent.icon-button__magnifyingGlass {
  stroke: #fcfcfc;
}
.theme-dark .icon-button__svg :hover .icon-button.icon-button--transparent.icon-button__magnifyingGlass {
  stroke: #2C3A45;
}
.theme-original .icon-button__svg :hover .icon-button.icon-button--green {
  fill: #fcfcfc;
}
.theme-light .icon-button__svg :hover .icon-button.icon-button--green {
  fill: #fcfcfc;
}
.theme-dark .icon-button__svg :hover .icon-button.icon-button--green {
  fill: #2C3A45;
}

.logo {
  cursor: pointer;
  transition: all 0.3s ease-in-out;
}
.logo .logo__steemit {
  fill: #E31337;
  transition: 0.25s all ease-in-out;
}
@media (hover: hover) {
  .theme-original .logo:hover .logo__steemit, .theme-original .logo:active .logo__steemit {
    fill: #4BA2F2;
  }
  .theme-light .logo:hover .logo__steemit, .theme-light .logo:active .logo__steemit {
    fill: #212529;
  }
  .theme-dark .logo:hover .logo__steemit, .theme-dark .logo:active .logo__steemit {
    fill: #fff;
  }
}

.steem-market h4 {
  font-size: 1.125rem;
}
.steem-market .coin {
  margin-bottom: 1em;
}
.steem-market .chart {
  position: relative;
}
.steem-market .chart .caption {
  position: absolute;
  bottom: 0;
  margin-bottom: 10px;
  padding-left: 2px;
  padding-right: 2px;
  pointer-events: none;
  background-color: rgba(51, 51, 51, 0.1);
  color: #333333;
  font-size: 0.5em;
  font-weight: bold;
  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
}
.steem-market .coin-label {
  margin-top: -0.5em;
  font-size: 0.875rem;
}
.steem-market .coin-label .symbol {
  color: #788187;
}
.steem-market .coin-label .price {
  color: #09d6a8;
}
.steem-market .brought {
  font-size: 0.675em;
  color: #788187;
}

.theme-dark .steem-market .chart .caption {
  background-color: rgba(255, 255, 255, 0.2);
  color: white;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
}

.SanitizedLink--phishyLink {
  color: #ce0050;
  font-size: 75%;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.SanitizedLink--phishyLink .phishylink-reveal-link {
  padding-left: 0.5em;
  opacity: 0.5;
  font-size: 75%;
  text-decoration: underline;
}

.dropdown {
  position: relative;
  display: inline-block;
}
.dropdown .Icon.dropdown-arrow {
  top: 2px;
  margin-right: 0;
}
.dropdown > .dropdown__content {
  visibility: hidden;
  min-width: 145px;
  z-index: 1000;
  display: block;
  border-radius: 3px;
  opacity: 0;
  position: absolute;
  top: 100%;
  padding: 2px;
  transform: translateY(10%);
  transition: all 0.3s ease 0s, visibility 0s linear 0.3s;
  box-shadow: 1px 1px 5px 0px rgba(50, 50, 50, 0.75);
}
.theme-original .dropdown > .dropdown__content {
  background-color: #f8f8ff;
  border: 1px solid #788187;
}
.theme-light .dropdown > .dropdown__content {
  background-color: #f4f4fd;
  border: 1px solid #788187;
}
.theme-dark .dropdown > .dropdown__content {
  background-color: #212529;
  border: 1px solid #A6B2BA;
}
.dropdown.show > .dropdown__content {
  visibility: visible;
  opacity: 1;
  transform: translateX(0%);
  transition-delay: 0s;
}
.dropdown.show > .dropdown__content a {
  transition: 0.2s all ease-in-out;
}
.theme-original .dropdown.show > .dropdown__content a:hover {
  color: #004EFF;
}
.theme-light .dropdown.show > .dropdown__content a:hover {
  color: #E31337;
}
.theme-dark .dropdown.show > .dropdown__content a:hover {
  color: #E31337;
}
.dropdown.left > .dropdown__content {
  position: absolute;
  right: 0%;
}
.dropdown.right > .dropdown__content {
  position: absolute;
  left: 0%;
}

.Notices {
  margin: 0;
  padding: 0;
}
.Notices__notice {
  list-style: none;
  margin-bottom: 0rem;
  line-height: 1.1;
}
.Notices__featured {
  background: #F76900;
  padding: 3px 4px;
  text-transform: uppercase;
  color: white;
  line-height: 1;
  display: inline-block;
  margin: 0;
  border-radius: 4px;
  letter-spacing: 1px;
  letter-spacing: 0.4px;
  font-weight: bold;
  font-size: 11px;
  font-size: 0.6875rem;
  margin-right: 6px;
}
.Notices__featured + .Notices__title {
  line-height: 1.4;
}
.Notices__featured + .Notices__title + .Notices__metadata {
  margin-top: 1px;
}
.Notices__title {
  margin: 0;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.3;
  display: inline;
}
.Notices__metadata {
  font-size: 12px;
  font-size: 0.75rem;
  margin-top: 4px;
  line-height: 1.4;
}
.theme-original .Notices__metadata {
  color: #788187;
}
.theme-light .Notices__metadata {
  color: #788187;
}
.theme-dark .Notices__metadata {
  color: #A6B2BA;
}
.Notices__by {
  text-transform: capitalize;
}

.PostCategoryBanner {
  margin: 0.5em 1em 1em 0;
  display: inline;
}
.PostCategoryBanner .postTo small {
  font-size: 100%;
  color: #666;
}
.PostCategoryBanner .postTo small .smallLabel {
  color: #333;
  font-weight: bold;
}
.PostCategoryBanner .categoryName {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.PostCategoryBanner h3 {
  line-height: normal !important;
  padding: 0 0 0 0.5em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.PostCategoryBanner--community-selector {
  display: inline;
  width: 200px;
}

.flag__button {
  cursor: pointer;
}
.flag__button .flag2 {
  display: none !important;
  visibility: hidden;
}
.flag__button:hover .flag1 {
  display: none !important;
  visibility: hidden;
}
.flag__button:hover .flag2 {
  visibility: visible;
  display: inline-block !important;
}
.flag__button:hover svg {
  fill: red;
}

.flag__button--post {
  position: absolute;
  right: 1em;
}

.visual-editor button {
  margin-right: 0 !important;
}
.visual-editor .DraftEditor-editorContainer > div {
  min-height: 200px;
}

/*! GitHub: One Dark */
/* adapted from: https://github.com/atom/one-dark-syntax & https://github.com/Aerobird98/codemirror-one-dark-theme */
/* by https://github.com/sparcut */
:root {
  --ghd-code-background: hsl(0, 0%, 8%);
  --ghd-code-color: hsl(220,14%,71%);
}

/* comment, punctuation.definition.comment, string.comment */
.theme-dark .gist .pl-c, .pl-c span {
  color: #5c6370;
  font-style: italic;
}

/* constant, entity.name.constant, variable.other.constant, variable.language,
support, meta.property-name, support.constant, support.variable,
 meta.module-reference, markup.raw, meta.diff.header */
.theme-dark .gist .pl-c1 {
  color: #d19a66;
}

/* string.regexp constant.character.escape */
.theme-dark .gist .pl-sr .pl-cce {
  color: #56b6c2;
  font-weight: normal;
}

.theme-dark .gist .pl-cn {
  color: #d19a66;
}

.theme-dark .gist .pl-e {
  color: #d19a66;
}

/* entity */
.theme-dark .gist .pl-ef {
  color: #61afef;
}

/* entity.function */
.theme-dark .gist .pl-en {
  color: #d19a66;
}

/* entity.name */
.theme-dark .gist .pl-enc {
  color: #e5c07b;
}

/* entity.name.class */
.theme-dark .gist .pl-enf {
  color: #61afef;
}

/* entity.name.function */
.theme-dark .gist .pl-enm {
  color: #abb2bf;
}

/* entity.name.method-name */
.theme-dark .gist .pl-ens {
  color: #be5046;
}

/* entity.name.section */
.theme-dark .gist .pl-ent {
  color: #e06c75;
}

/* entity.name.tag */
.theme-dark .gist .pl-entc {
  color: #e5c07b;
}

/* entity.name.type.class */
.theme-dark .gist .pl-enti {
  color: #56b6c2;
}

/* entity.name.type.instance */
.theme-dark .gist .pl-entm {
  color: #e06c75;
}

/* entity.name.type.module */
.theme-dark .gist .pl-eoa {
  color: #d19a66;
}

/* entity.other.attribute-name */
.theme-dark .gist .pl-eoac {
  color: #d19a66;
}

/* entity.other.attribute-name.class */
.theme-dark .gist .pl-eoac .pl-pde {
  color: #d19a66;
}

/* punctuation.definition.entity */
.theme-dark .gist .pl-eoai {
  color: #61afef;
}

/* entity.other.attribute-name.id */
.theme-dark .gist .pl-eoi {
  color: #98c379;
}

/* entity.other.inherited-class */
.theme-dark .gist .pl-k {
  color: #c678dd;
}

/* keyword, storage, storage.type */
.theme-dark .gist .pl-ko {
  color: #abb2bf;
}

/* keyword.operator */
.theme-dark .gist .pl-kolp {
  color: #c678dd;
}

/* keyword.operator.logical.python */
.theme-dark .gist .pl-kos {
  color: #61afef;
}

/* keyword.other.special-method */
.theme-dark .gist .pl-kou {
  color: #d19a66;
}

/* keyword.other.unit */
.theme-dark .gist .pl-mai .pl-sf {
  color: #56b6c2;
}

/* support.function */
.theme-dark .gist .pl-mb {
  color: #d19a66;
  font-weight: bold;
}

/* markup.bold */
.theme-dark .gist .pl-mc {
  color: #c678dd;
}

/* markup.changed, punctuation.definition.changed */
.theme-dark .gist .pl-mh {
  color: #e06c75;
}

/* markup.heading */
/* markup.heading punctuation.definition.heading */
.theme-dark .gist .pl-mh .pl-pdh {
  color: #61afef;
}

.theme-dark .gist .pl-mi {
  color: #c678dd;
  font-style: italic;
}

/* markup.italic */
.theme-dark .gist .pl-ml {
  color: #56b6c2;
}

/* markup.list */
.theme-dark .gist .pl-mm {
  color: #d19a66;
}

/* meta.module-reference */
.theme-dark .gist .pl-mp {
  color: #828997;
}

/* meta.property-name */
.theme-dark .gist .pl-mp1 .pl-sf {
  color: #abb2bf;
}

/* meta.property-value support.function */
.theme-dark .gist .pl-mq {
  color: #d19a66;
}

/* markup.quote */
.theme-dark .gist .pl-mr {
  color: #61afef;
}

/* meta.require */
.theme-dark .gist .pl-ms {
  color: #abb2bf;
}

/* meta.separator */
/* punctuation.definition.bold */
.theme-dark .gist .pl-pdb {
  color: #e5c07b;
  font-weight: bold;
}

/* punctuation.definition.comment */
.theme-dark .gist .pl-pdc {
  color: #5c6370;
  font-style: italic;
}

.theme-dark .gist .pl-pdc1 {
  color: #abb2bf;
}

/* punctuation.definition.constant */
.theme-dark .gist .pl-pde {
  color: #c678dd;
}

/* punctuation.definition.entity */
/* punctuation.definition.italic */
.theme-dark .gist .pl-pdi {
  color: #c678dd;
  font-style: italic;
}

/* punctuation.definition.string, source.regexp, string.regexp.character-class */
.theme-dark .gist .pl-pds {
  color: #98c379;
}

.theme-dark .gist .pl-pdv {
  color: #e06c75;
}

/* punctuation.definition.variable */
/* string punctuation.section.embedded source */
.theme-dark .gist .pl-pse .pl-s1 {
  color: #98c379;
}

.theme-dark .gist .pl-pse .pl-s2 {
  color: #e5c07b;
}

/* punctuation.section.embedded source */
.theme-dark .gist .pl-s {
  color: #98c379;
}

/* string */
.theme-dark .gist .pl-s1 {
  color: #98c379;
}

/* string */
.theme-dark .gist .pl-s2 {
  color: #e5c07b;
}

/* source */
.theme-dark .gist .pl-mp .pl-s3 {
  color: #d19a66;
}

/* support */
.theme-dark .gist .pl-s3 {
  color: #d19a66;
}

/* support */
.theme-dark .gist .pl-sc {
  color: #e5c07b;
}

/* support.class */
.theme-dark .gist .pl-scp {
  color: #abb2bf;
}

/* support.constant.property-value */
.theme-dark .gist .pl-sf {
  color: #56b6c2;
}

/* support.function */
.theme-dark .gist .pl-smc {
  color: #abb2bf;
}

/* storage.modifier.c */
/* variable.parameter.function, storage.modifier.package,
 storage.modifier.import, storage.type.java, variable.other */
.theme-dark .gist .pl-smi {
  color: #e06c75;
}

.theme-dark .gist .pl-smp {
  color: #e5c07b;
}

/* storage.modifier.package */
.theme-dark .gist .pl-sok {
  color: #d19a66;
}

/* support.other.keyword */
.theme-dark .gist .pl-sol {
  color: #e06c75;
}

/* string.other.link */
.theme-dark .gist .pl-som {
  color: #abb2bf;
}

/* support.other.module */
.theme-dark .gist .pl-sr {
  color: #56b6c2;
}

/* string.regexp */
/* string.regexp string.regexp.arbitrary-repitition */
.theme-dark .gist .pl-sr .pl-sra {
  color: #56b6c2;
}

.theme-dark .gist .pl-src {
  color: #56b6c2;
}

/* string.regexp.character-class */
.theme-dark .gist .pl-sr .pl-sre {
  color: #e5c07b;
}

/* string.regexp source.ruby.embedded */
.theme-dark .gist .pl-st {
  color: #56b6c2;
}

/* support.type */
.theme-dark .gist .pl-stj {
  color: #e5c07b;
}

/* storage.type.java */
.theme-dark .gist .pl-stp {
  color: #828997;
}

/* support.type.property-name */
.theme-dark .gist .pl-sv {
  color: #d19a66;
}

/* support.variable */
.theme-dark .gist .pl-v {
  color: #e5c07b;
}

/* variable */
.theme-dark .gist .pl-vi {
  color: #be5046;
}

/* variable.interpolation */
.theme-dark .gist .pl-vo {
  color: #56b6c2;
}

/* variable.other */
.theme-dark .gist .pl-vpf {
  color: #abb2bf;
}

/* variable.parameter.function */
/* markup.inserted, meta.diff.header.to-file, punctuation.definition.inserted */
.theme-dark .gist .pl-mi1 {
  color: #98c379;
  background: #020;
}

/* meta.diff.header.to-file */
.theme-dark .gist .pl-mdht {
  color: #98c379;
  background: #020;
}

/* markup.deleted, meta.diff.header.from-file, punctuation.definition.deleted */
.theme-dark .gist .pl-md {
  color: #e06c75;
  background: #200;
}

/* meta.diff.header.from-file */
.theme-dark .gist .pl-mdhf {
  color: #e06c75;
  background: #200;
}

/* meta.diff.range */
.theme-dark .gist .pl-mdr {
  color: #abb2bf;
  font-weight: normal;
}

.theme-dark .gist .pl-mdh {
  color: #e06c75;
  font-weight: normal;
}

/* meta.diff.header */
.theme-dark .gist .pl-mdi {
  color: #e06c75;
  font-weight: normal;
}

/* meta.diff.index */
/* constant.other.reference.link, string.other.link */
.theme-dark .gist .pl-corl {
  color: #e06c75;
  text-decoration: underline;
}

.theme-dark .gist .pl-ib {
  background-color: #e06c75;
}

/* invalid.broken */
.theme-dark .gist .pl-bu,
.theme-dark .gist .pl-ii {
  background-color: #e05252;
}

/* invalid.illegal */
.theme-dark .gist .pl-mo {
  color: #abb2bf;
}

/* meta.output */
.theme-dark .gist .pl-mri {
  color: #98c379;
}

/* markup.raw.inline */
.theme-dark .gist .pl-ms1 {
  color: #abb2bf;
  background-color: #373b41;
}

/* meta.separator */
.theme-dark .gist .pl-va {
  color: #abb2bf;
}

/* variable.assignment */
.theme-dark .gist .pl-vpu {
  color: #abb2bf;
}

/* variable.parameter.url */
.theme-dark .gist .pl-entl {
  color: #e06c75;
}

/* entity.name.tag.label */
.theme-dark .gist .pl-token.active, .pl-token:hover {
  background: #61afef;
  color: #141414;
}

.theme-dark .gist .blob-code, .theme-dark .gist .blob-code-inner {
  color: #abb2bf;
}

.Header {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.05);
}
.theme-original .Header {
  background-color: #fff;
  border-bottom: 1px solid #eee;
}
.theme-light .Header {
  background-color: #fff;
  border-bottom: 1px solid #eee;
}
.theme-dark .Header {
  background-color: #2c3136;
  border-bottom: 1px solid #2c3136;
}

.Header__nav {
  display: flex;
  align-items: center;
  height: 4rem;
  max-width: none;
}

.ConnectionError {
  margin-right: 4rem;
  color: #ec5840;
}

.Header__logotype {
  transition: 0.2s all ease-in-out;
  height: 37px;
  display: flex;
  align-items: baseline;
}
.theme-original .Header__logotype .icon-svg {
  fill: #004EFF;
}
.theme-light .Header__logotype .icon-svg {
  fill: #E31337;
}
.theme-dark .Header__logotype .icon-svg {
  fill: #E31337;
}
.Header__logotype-beta {
  position: absolute;
  top: 38px;
  left: 136px;
}

.Header__sort {
  display: flex;
  justify-content: center;
}

@media only screen and (min-width: 75em) {
  .Header__search {
    display: none;
  }
}
.Header__search--desktop {
  display: none;
}
@media only screen and (min-width: 75em) {
  .Header__search--desktop {
    display: block;
  }
}

.Header__buttons {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  height: 4rem;
}
.Header__buttons > .Header__user-signup > a {
  padding-right: 0.25rem;
  font-size: 1.125rem;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.Header__buttons > .Header__user-signup > a.Header__signup-link {
  padding: 0.6rem;
  text-transform: none;
  margin: 0 0.75rem 0 0.5rem;
  white-space: nowrap;
}
.Header__buttons > a {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}
@media only screen and (min-width: 20em) {
  .Header__buttons > a {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }
}
.Header__buttons div.LoadingIndicator {
  padding-right: 0.75rem;
}

.Header__userpic {
  display: block;
  width: 36px;
  height: 36px;
  position: relative;
}
.Header__userpic .Userpic {
  width: 36px;
  height: 36px;
}
@media only screen and (min-width: 47.5em) {
  .Header__userpic .Userpic {
    width: 40px;
    height: 40px;
    position: relative;
    top: -2px;
  }
}

.Header__notification {
  position: absolute;
  width: 20px;
  height: 20px;
  top: -10px;
  right: -10px;
  border-radius: 50%;
  background: red;
  line-height: 20px;
  font-size: 11px;
  text-align: center;
  z-index: 2;
}
.Header__notification > span {
  color: white;
}
.Header__notification--loading {
  background: transparent;
}

span.Header__hamburger.toggle-menu {
  width: 1rem;
  height: 1rem;
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer;
  margin-left: 0.25rem;
  cursor: pointer;
}
span.Header__hamburger.toggle-menu::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  background: #333333;
  box-shadow: 0 7px 0 #333333, 0 14px 0 #333333;
  content: "";
}
span.Header__hamburger.toggle-menu:hover::after {
  background: #8a8a8a;
  box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a;
}
@media only screen and (min-width: 20em) {
  span.Header__hamburger.toggle-menu {
    margin-left: 0.5rem;
  }
}
@media only screen and (min-width: 47.5em) {
  span.Header__hamburger.toggle-menu {
    margin-left: 0.75rem;
  }
}
span.Header__hamburger.toggle-menu::after {
  transition: 0.2s all ease-in-out;
}
.theme-original span.Header__hamburger.toggle-menu::after {
  background: #333;
  box-shadow: 0 7px 0 #333, 0 14px 0 #333;
}
.theme-light span.Header__hamburger.toggle-menu::after {
  background: #333;
  box-shadow: 0 7px 0 #333, 0 14px 0 #333;
}
.theme-dark span.Header__hamburger.toggle-menu::after {
  background: #fcfcfc;
  box-shadow: 0 7px 0 #fcfcfc, 0 14px 0 #fcfcfc;
}
.theme-original span.Header__hamburger.toggle-menu:hover::after {
  background: #004EFF;
  box-shadow: 0 7px 0 #004EFF, 0 14px 0 #004EFF;
}
.theme-light span.Header__hamburger.toggle-menu:hover::after {
  background: #E31337;
  box-shadow: 0 7px 0 #E31337, 0 14px 0 #E31337;
}
.theme-dark span.Header__hamburger.toggle-menu:hover::after {
  background: #E31337;
  box-shadow: 0 7px 0 #E31337, 0 14px 0 #E31337;
}

.annoucement-banner {
  text-align: left;
  position: relative;
  background: #171FC9;
  color: #fff;
}
.theme-original .annoucement-banner {
  border-bottom: 1px solid #f6f6f6;
}
.theme-light .annoucement-banner {
  border-bottom: 1px solid #f6f6f6;
}
.theme-dark .annoucement-banner {
  border-bottom: 1px solid #2c3136;
}
@media only screen and (min-width: 47.5em) {
  .annoucement-banner {
    text-align: center;
  }
}
.annoucement-banner .close-button {
  position: absolute;
  top: 2px;
  right: 0px;
  transform: scale(0.85);
  color: #fff;
}
.annoucement-banner .close-button:hover, .annoucement-banner .close-button:focus {
  color: #ccc;
}

.announcement-banner__text {
  margin: 0;
  padding: 10px 44px 10px 10px;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.3;
}

.announcement-banner__link {
  color: #fafafa !important;
  text-decoration: underline;
}

.Header__usermenu .login-provider-tooltip {
  display: inline;
  margin-left: 5px;
}

.LoginForm {
  max-width: 28rem;
  margin: 1rem auto 0.5rem auto;
}
.LoginForm label {
  text-transform: none;
}
.LoginForm form {
  margin-top: 1.5rem;
}
.LoginForm .buttons {
  text-align: center;
}

.pdf-download {
  margin-top: 1em;
  margin-bottom: 1em;
}
.pdf-download button {
  color: #1A5099;
  text-transform: initial;
  cursor: pointer;
}

.sign-up .button {
  background-color: transparent;
  padding-top: 1rem;
  padding-bottom: 1rem;
  font-size: 1.2rem;
  text-transform: none;
}
.sign-up .button.hollow {
  border: 1px solid #ddd;
  color: #212529;
  transition: 0.2s all ease-in-out;
  font-size: 16px;
  font-size: 1rem;
}
.sign-up .button.hollow:hover {
  border: 1px solid #d81233;
  color: #d81233;
  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.05);
}
.sign-up em {
  font-weight: bold;
  font-style: normal;
}
.sign-up hr {
  margin: 1.75rem auto 2rem auto;
}
.sign-up p {
  margin-bottom: 1rem;
}

.LoginForm__save-login {
  margin-top: 0.5rem;
}

.divider {
  display: flex;
  align-items: center;
  font-size: 14px;
}

.divider::before, .divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #ccc;
}

.divider::before {
  margin-right: 10px;
}

.divider::after {
  margin-left: 10px;
}

#btn-hivesigner {
  color: #fff;
  border-color: #d1d5da;
  background: #d1d5da;
}
#btn-hivesigner:hover {
  background: #A6A6A6;
}
#btn-hivesigner img {
  width: 140px;
}

.reveal .login-alternative-methods a.button {
  font-size: 15px;
}

.reveal .login-alternative-methods a.button img {
  height: 28px;
}

.hiveauth_info {
  margin-bottom: 10px;
}

.hiveauth_instructions,
.hiveauth_qr {
  display: none;
}
.hiveauth_instructions.show,
.hiveauth_qr.show {
  display: block;
}

.SidePanel {
  display: block;
}
.SidePanel__hide-signup {
  display: none;
}
.SidePanel .menu > li.last {
  border-bottom: 1px solid #212529;
  color: #A6B2BA;
}
.SidePanel > div {
  background-color: #11161A;
  color: #fff;
  padding-top: 3rem;
  position: fixed;
  z-index: 1000;
  top: 0;
  width: 250px;
  height: 100%;
  min-height: 100vh;
  box-sizing: border-box;
  transition: visibility 250ms, transform ease 250ms;
}
.SidePanel > div .close-button {
  color: #fff;
}
.SidePanel > div .menu > li > a {
  transition: 0.2s all ease-in-out;
  border-top: 1px solid #212529;
  color: #fff;
  border-bottom: 1px solid #11161A;
}
.SidePanel > div .menu > li > a:hover, .SidePanel > div .menu > li:focus {
  background-color: #212529;
  border-bottom: 1px solid #E31337;
}
.SidePanel > div .menu > li > a:hover path, .SidePanel > div .menu > li:focus path {
  fill: #E31337;
}
.SidePanel > div .menu > li path {
  fill: #A6B2BA;
}
.SidePanel > div .menu > li a.menu-section {
  color: #A6B2BA;
}
.SidePanel > div .menu > li a.menu-section:hover, .SidePanel > div .menu > li a.menu-section:focus {
  cursor: default;
  background-color: inherit;
  border-bottom: 1px solid #11161A;
}
.SidePanel > div ul:nth-of-type(n+3) {
  margin-top: 2rem;
}
.SidePanel > div.left {
  left: -250px;
}
.SidePanel > div.visible.left {
  transform: translate3d(250px, 0, 0);
}
.SidePanel > div.right {
  right: -250px;
  visibility: hidden;
  overflow-y: auto;
}
.SidePanel > div.visible.right {
  transform: translate3d(-250px, 0, 0);
  visibility: visible;
}
.SidePanel .Icon.extlink {
  position: relative;
  top: 3px;
  left: 2px;
}

/* Small only */
@media screen and (max-width: 39.9375em) {
  .SidePanel div ul:nth-of-type(n+2) {
    margin-top: 2rem;
  }
  .SidePanel > div > .menu > li > a {
    padding: 0.3rem 1rem;
  }
}
.Settings .button {
  text-decoration: none;
  font-weight: bold;
  transition: 0.2s all ease-in-out;
  text-transform: capitalize;
  border-radius: 0;
  font-size: 18px;
  font-size: 1.125rem;
}
.theme-original .Settings .button {
  background-color: #1A5099;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 5px 5px 0 0 transparent;
  color: #fcfcfc;
}
.theme-light .Settings .button {
  background-color: #212529;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 5px 5px 0 0 #E31337;
  color: #fcfcfc;
}
.theme-dark .Settings .button {
  background-color: #fff;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 5px 5px 0 0 #E31337;
  color: #2C3A45;
}
.theme-original .Settings .button:hover, .theme-original .Settings .button:focus {
  background-color: #4BA2F2;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 7px 7px 0 0;
  color: #fcfcfc;
}
.theme-light .Settings .button:hover, .theme-light .Settings .button:focus {
  background-color: #E31337;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 7px 7px 0 0 #212529;
  color: #fff;
}
.theme-dark .Settings .button:hover, .theme-dark .Settings .button:focus {
  background-color: #E31337;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 7px 7px 0 0 #fff;
  color: #fff;
}
.Settings .button.disabled, .Settings .button[disabled] {
  opacity: 0.25;
  cursor: not-allowed;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
}
.theme-original .Settings .button.disabled:hover, .theme-original .Settings .button[disabled]:hover {
  background-color: #1A5099;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #fcfcfc;
}
.theme-light .Settings .button.disabled:hover, .theme-light .Settings .button[disabled]:hover {
  background-color: #212529;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #fcfcfc;
}
.theme-dark .Settings .button.disabled:hover, .theme-dark .Settings .button[disabled]:hover {
  background-color: #fff;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #2C3A45;
}
.Settings .success, .Settings .error {
  text-transform: capitalize;
  padding-left: 8px;
}
.theme-original .Settings .success {
  color: #004EFF;
}
.theme-light .Settings .success {
  color: #E31337;
}
.theme-dark .Settings .success {
  color: #E31337;
}
.Settings p.error {
  position: relative;
  top: 4px;
  line-height: 1.2;
}
.Settings div.error {
  padding-left: 0;
}
.Settings label {
  text-transform: none !important;
}
.Settings h4 {
  font-weight: bold;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 1.125rem !important;
}
.Settings form .form__field {
  margin: 0;
}
.Settings .form__field {
  margin-bottom: 10px;
}

.UserWallet__claimbox {
  margin: 1rem 0;
  padding: 0.5rem 1rem;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}
.theme-original .UserWallet__claimbox {
  border: 1px solid #eee;
  background-color: #f3faf0;
  color: #333;
}
.theme-light .UserWallet__claimbox {
  border: 1px solid #eee;
  background-color: #f3faf0;
  color: #333;
}
.theme-dark .UserWallet__claimbox {
  border: 1px solid #2c3136;
  background-color: #11161A;
  color: #fcfcfc;
}
.UserWallet__claimbox .button {
  font-size: 14px;
  font-size: 0.875rem;
  margin: 0;
}

@media print, screen and (min-width: 40em) {
  .post_advanced_settings h4 {
    font-size: 1.25rem;
  }
}

.reveal .hiveauth-banner {
  margin-bottom: 15px;
}

.reveal .hiveauth-instructions {
  padding: 15px;
}

.ExternalLinkWarning a.button.hollow.open-external-link {
  border: 1px solid #ddd;
  color: #E31337;
  transition: 0.2s all ease-in-out;
  font-size: 16px;
  font-size: 1rem;
}
.ExternalLinkWarning a.button.hollow.open-external-link:hover {
  border: 1px solid purple;
  color: #d81233;
  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.05);
}

.PostsList {
  clear: right;
}

.c-sidebar__module.CommunityPaneMobile {
  padding: 0.75em 1em 0em;
}

.PostsList__summaries {
  list-style-type: none;
  margin-left: 0;
}

.PostsIndex .articles__h1--no-wrap {
  white-space: nowrap;
}

.PostsIndex__topics {
  border-left: 1px solid #e6e6e6;
}

.PostsIndex__topics_compact {
  float: right;
  width: 15rem;
  position: relative;
  top: -0.8rem;
}
.PostsIndex__topics_compact > select {
  border: none;
  border-bottom: 1px solid #cacaca;
  border-radius: 0;
}

/* Small only */
@media screen and (max-width: 39.9375em) {
  .PostsIndex__left {
    padding: 0;
  }

  .PostsIndex__topics_compact {
    padding: 0 0.5rem;
    float: none;
    width: auto;
  }
}
/* Medium and up */
@media screen and (min-width: 39.94em) {
  .PostsIndex__summaries > li:first-child .PostSummary {
    margin-top: 0;
    padding-top: 0;
  }
}
.content-container {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}
@media only screen and (min-width: 47.5em) {
  .content-container {
    flex-wrap: nowrap;
    align-items: flex-start;
  }
}

@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.c-sidebar {
  width: 100%;
  flex: 0 0 320px;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.c-sidebar__module {
  padding: 1.5em 2em;
  margin-bottom: 1em;
  box-shadow: 0px 5px 10px 0 rgba(0, 0, 0, 0);
  transition: 0.2s box-shadow ease-in-out;
  -webkit-animation: 1s ease-out 0s 1 fadeIn;
          animation: 1s ease-out 0s 1 fadeIn;
}
.theme-original .c-sidebar__module {
  border-radius: 5px;
  background-color: #fff;
  border: 1px solid #eee;
}
.theme-light .c-sidebar__module {
  border-radius: 5px;
  background-color: #fff;
  border: 1px solid #eee;
}
.theme-dark .c-sidebar__module {
  border-radius: 5px;
  background-color: #2c3136;
  border: 1px solid #2c3136;
}
@media only screen and (min-width: 47.5em) {
  .c-sidebar__module:hover {
    box-shadow: 0px 5px 10px 0 rgba(0, 0, 0, 0.03);
  }
}
.c-sidebar--left {
  display: none;
  order: 1;
}
@media only screen and (min-width: 47.5em) {
  .c-sidebar--left {
    display: block;
    margin-left: 1em;
  }
}
.c-sidebar--right {
  display: none;
  order: 3;
}
@media only screen and (min-width: 75em) {
  .c-sidebar--right {
    display: block;
    margin-right: 1em;
  }
}
.c-sidebar__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.c-sidebar .li:last-child {
  margin-bottom: 0;
}
.c-sidebar__h3 {
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: bold;
  font-size: 18px;
  font-size: 1.125rem;
  margin: 0 0 16px 0;
}
.c-sidebar__h3--inline {
  display: inline;
}
.c-sidebar__link {
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.c-sidebar__link--emphasis {
  font-size: 1rem;
  margin: 1rem 0 0;
  font-weight: bold;
}
.c-sidebar__more-link {
  display: inline-block;
  margin-bottom: 1.3em;
}
.c-sidebar__label {
  display: block;
  font-size: 14px;
  font-size: 0.875rem;
  margin-bottom: 2px;
}
.c-sidebar__score {
  font-weight: bold;
  font-size: 17px;
  font-size: 1.0625rem;
  margin-bottom: 24px;
}

.PostsIndex.row {
  max-width: 860px;
  display: flex;
  flex-wrap: nowrap;
  margin: 0 auto;
}
@media only screen and (min-width: 75em) {
  .PostsIndex.row {
    max-width: 1240px;
  }
}

.PostsIndex.row.layout-list {
  max-width: none;
}
@media only screen and (min-width: 75em) {
  .PostsIndex.row.layout-list {
    max-width: 1600px;
  }
}

.articles {
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  padding: 0em 1em;
  transition: all 0.2s ease-out;
  border: transparent;
  min-width: 300px;
  width: 100%;
  margin: 0 auto;
  background-color: transparent;
  box-shadow: none;
}
.articles h2 {
  font-family: sans-serif;
}
@media only screen and (min-width: 47.5em) {
  .articles {
    padding: 0em 1em;
    min-width: 500px;
    max-width: 664px;
    order: 2;
  }
}
@media only screen and (min-width: 75em) {
  .articles {
    min-width: 550px;
    max-width: 664px;
  }
  .theme-original .articles {
    border: transparent;
  }
  .theme-light .articles {
    border: transparent;
  }
  .theme-dark .articles {
    border: transparent;
  }
}
.articles__hr {
  margin-bottom: 20px;
  margin-top: 0px;
}
.theme-original .articles__hr {
  border-bottom: 1px solid #eee;
}
.theme-light .articles__hr {
  border-bottom: 1px solid #eee;
}
.theme-dark .articles__hr {
  border-bottom: 1px solid #2c3136;
}
@media only screen and (min-width: 47.5em) {
  .articles__hr {
    display: none;
  }
}
.articles__layout-selector {
  display: none;
  cursor: pointer;
}
@media only screen and (min-width: 64em) {
  .articles__layout-selector {
    display: flex;
    float: right;
  }
}
@media only screen and (min-width: 40em) {
  .articles__layout-selector {
    display: flex;
    justify-content: flex-end;
  }
}
.articles__icon--layout {
  width: 24px;
  height: 24px;
  position: relative;
}
.articles__summary {
  margin: 0;
  transition: 0.2s all ease-in-out;
  border: transparent;
  padding-bottom: 0;
}
.theme-original .articles__summary {
  background-color: #fff;
}
.theme-light .articles__summary {
  background-color: #fff;
}
.theme-dark .articles__summary {
  background-color: #2c3136;
}
@media only screen and (min-width: 47.5em) {
  .articles__summary {
    margin: 0 0 40px;
    box-shadow: 0px 5px 10px 0 rgba(0, 0, 0, 0);
    padding-bottom: 0;
  }
  .theme-original .articles__summary {
    border: 1px solid #eee;
  }
  .theme-light .articles__summary {
    border: 1px solid #eee;
  }
  .theme-dark .articles__summary {
    border: 1px solid #2c3136;
  }
}
@media only screen and (min-width: 47.5em) {
  .articles__summary:hover {
    box-shadow: 0px 5px 10px 0 rgba(0, 0, 0, 0.03);
  }
}
.articles__resteem-icon {
  position: relative;
  top: -1px;
  padding-right: 2px;
}
.articles__summary-header {
  display: flex;
  align-items: center;
  padding: 6px 0 8px;
  position: relative;
}
@media only screen and (min-width: 47.5em) {
  .articles__summary-header {
    padding: 10px 16px 5px;
  }
  .theme-original .articles__summary-header {
    border-bottom: 1px solid #eee;
  }
  .theme-light .articles__summary-header {
    border-bottom: 1px solid #eee;
  }
  .theme-dark .articles__summary-header {
    border-bottom: 1px solid #2c3136;
  }
}
.theme-original .articles__summary-header--footer {
  border-top: 1px solid #eee;
  border-bottom: 1px solid #eee;
}
.theme-light .articles__summary-header--footer {
  border-top: 1px solid #eee;
  border-bottom: 1px solid #eee;
}
.theme-dark .articles__summary-header--footer {
  border-top: 1px solid #2c3136;
  border-bottom: 1px solid #2c3136;
}
@media only screen and (min-width: 47.5em) {
  .theme-original .articles__summary-header--footer {
    border-bottom: transparent;
  }
  .theme-light .articles__summary-header--footer {
    border-bottom: transparent;
  }
  .theme-dark .articles__summary-header--footer {
    border-bottom: transparent;
  }
}
.articles__summary-footer {
  display: flex;
  align-items: center;
  position: relative;
  width: 100%;
  font-size: 15px;
  font-size: 0.9375rem;
}
@media only screen and (min-width: 47.5em) {
  .articles__summary-footer {
    padding: 16px;
  }
  .theme-original .articles__summary-footer {
    border-top: 1px solid #eee;
  }
  .theme-light .articles__summary-footer {
    border-top: 1px solid #eee;
  }
  .theme-dark .articles__summary-footer {
    border-top: 1px solid #2c3136;
  }
}
.articles__summary-footer a {
  font-size: 15px;
  font-size: 0.9375rem;
}
.articles__header {
  padding-top: 5px;
  padding-bottom: 10px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  line-height: 1;
  min-height: 50px;
}
@media only screen and (min-width: 47.5em) {
  .articles__header {
    padding-top: 0;
  }
}
.articles__header-select select {
  max-width: 300px;
}
.articles__header-col--right {
  order: 1;
  width: 100%;
}
@media only screen and (min-width: 370px) {
  .articles__header-col--right {
    width: auto;
    order: 2;
  }
}
.articles__resteem {
  padding-bottom: 0px;
  margin-top: 6px;
}
@media only screen and (min-width: 47.5em) {
  .articles__resteem {
    padding-bottom: 5px;
  }
  .theme-original .articles__resteem {
    border-bottom: 1px solid #eee;
  }
  .theme-light .articles__resteem {
    border-bottom: 1px solid #eee;
  }
  .theme-dark .articles__resteem {
    border-bottom: 1px solid #2c3136;
  }
}
.articles__resteem-text {
  font-size: 13px;
  font-size: 0.8125rem;
  margin-bottom: 0px;
}
.theme-original .articles__resteem-text {
  color: #788187;
}
.theme-light .articles__resteem-text {
  color: #788187;
}
.theme-dark .articles__resteem-text {
  color: #A6B2BA;
}
@media only screen and (min-width: 47.5em) {
  .articles__resteem-text {
    margin-bottom: 2px;
    font-size: 14px;
    font-size: 0.875rem;
  }
}
.articles__resteem-username {
  text-decoration: none;
}
.articles__icon-100 {
  padding-left: 8px;
  display: inline-block;
  position: relative;
  top: -1px;
  transform: scale(0.9);
  transform-origin: center;
}
.articles__h1 {
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: bold;
  font-size: 18px;
  font-size: 1.125rem;
  margin: 0;
}
@media only screen and (min-width: 47.5em) {
  .articles__h1 {
    font-size: 18px;
    font-size: 1.125rem;
  }
}
.articles__h2 {
  margin: 0;
  font-size: 16px;
  font-size: 1rem;
  overflow: hidden;
  text-overflow: ellipsis;
  display: flex;
  -webkit-line-clamp: 3;
  flex-direction: column;
}
.articles__h2 a {
  font-weight: bold;
}
.theme-original .articles__h2 a {
  color: #333;
}
.theme-light .articles__h2 a {
  color: #333;
}
.theme-dark .articles__h2 a {
  color: #fcfcfc;
}
.theme-original .articles__h2 a:visited {
  color: #788187;
}
.theme-light .articles__h2 a:visited {
  color: #788187;
}
.theme-dark .articles__h2 a:visited {
  color: #A6B2BA;
}
@media only screen and (min-width: 47.5em) {
  .articles__h2 {
    font-size: 18px;
    font-size: 1.125rem;
  }
}
.articles__h3 {
  display: inline;
}
.articles__tag-selector {
  display: inline-block;
}
.articles__tag-selector select.Topics {
  margin-bottom: 0 !important;
  border: transparent;
  background-color: transparent;
  border-bottom: 1px solid #999;
  border-radius: 0;
  position: relative;
  top: -4px;
  margin-top: 12px;
}
.theme-original .articles__tag-selector select.Topics {
  color: #788187;
}
.theme-light .articles__tag-selector select.Topics {
  color: #788187;
}
.theme-dark .articles__tag-selector select.Topics {
  color: #A6B2BA;
}
@media only screen and (min-width: 370px) {
  .articles__tag-selector select.Topics {
    margin-top: 0;
  }
}
@media only screen and (min-width: 75em) {
  .articles__tag-selector {
    display: none;
  }
}
.articles__p {
  margin: 0;
  padding-top: 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  display: flex;
  -webkit-line-clamp: 3;
  flex-direction: column;
}
.articles__link {
  text-decoration: none;
}
.theme-original .articles__link {
  color: #333;
}
.theme-light .articles__link {
  color: #333;
}
.theme-dark .articles__link {
  color: #fcfcfc;
}
@media only screen and (min-width: 47.5em) {
  .articles__text-content {
    padding: 0 1.2em;
  }
}
.articles__tags {
  font-size: 14px;
  font-size: 0.875rem;
  margin-bottom: 18px;
}
.theme-original .articles__tags {
  color: #788187;
}
.theme-light .articles__tags {
  color: #788187;
}
.theme-dark .articles__tags {
  color: #A6B2BA;
}
.articles__tag-link {
  font-size: 14px;
  font-size: 0.875rem;
}
.theme-original .articles__tag-link {
  color: #788187;
}
.theme-light .articles__tag-link {
  color: #788187;
}
.theme-dark .articles__tag-link {
  color: #A6B2BA;
}
.articles__flag {
  width: 24px;
  height: auto;
  position: absolute;
  right: -4px;
  top: 0px;
  padding: 2px;
}
@media only screen and (min-width: 47.5em) {
  .articles__flag {
    right: 10px;
    top: 12px;
  }
}
.articles__flag .icon-flag-svg {
  transition: 0.2s all ease-in-out;
}
.theme-original .articles__flag .icon-flag-svg {
  fill: #788187;
}
.theme-light .articles__flag .icon-flag-svg {
  fill: #788187;
}
.theme-dark .articles__flag .icon-flag-svg {
  fill: #A6B2BA;
}
.articles__flag:hover {
  cursor: pointer;
}
.theme-original .articles__flag:hover .icon-flag-svg {
  fill: #ff0264;
}
.theme-light .articles__flag:hover .icon-flag-svg {
  fill: #ff0264;
}
.theme-dark .articles__flag:hover .icon-flag-svg {
  fill: #ff0264;
}
.articles__content-block {
  margin-bottom: 16px;
}
@media only screen and (min-width: 47.5em) {
  .articles__content-block--text {
    margin-top: 1em;
  }
}
.articles__content-block--img + .articles__content-block--text {
  margin-top: 0;
}
@media only screen and (min-width: 47.5em) {
  .articles__resteem, .articles__content-block--text, .articles__metadata {
    padding-left: 1.1em;
    padding-right: 1.1em;
  }
}

.user {
  display: flex;
  align-items: center;
  margin-right: 8px;
}
.user__col {
  line-height: 1;
}
.user__col--right {
  position: relative;
  top: -2px;
}
.user__link:hover .user__username {
  transition: 0.2s all ease-in-out;
}
.theme-original .user__link:hover .user__username {
  color: #004EFF;
}
.theme-light .user__link:hover .user__username {
  color: #E31337;
}
.theme-dark .user__link:hover .user__username {
  color: #E31337;
}
.user__profile-img {
  width: 40px !important;
  height: 40px !important;
  margin-right: 8px;
  transition: width 0.2s ease-out;
}
@media only screen and (min-width: 47.5em) {
  .user__profile-img {
    width: 48px !important;
    height: 48px !important;
    margin-right: 10px;
  }
}
.user__name {
  display: inline;
  font-weight: bold;
  padding-right: 2px;
  margin: 0;
  line-height: 1.2;
}
.user__name a {
  font-weight: bold;
  font-size: 14px;
  font-size: 0.875rem;
}
@media only screen and (min-width: 47.5em) {
  .user__name a {
    font-size: 16px;
    font-size: 1rem;
  }
}
.user__username, .user__reputation {
  font-weight: normal;
  font-size: 14px;
  font-size: 0.875rem;
}

.timestamp__link {
  text-decoration: none;
}
.timestamp__time {
  font-weight: normal;
  font-size: 14px;
  font-size: 0.875rem;
}

.icon-svg {
  transition: 0.2s all 0.05s ease-in-out;
}
.theme-original .icon-svg {
  fill: #788187;
}
.theme-light .icon-svg {
  fill: #788187;
}
.theme-dark .icon-svg {
  fill: #A6B2BA;
}
.theme-original .icon-svg--accent {
  fill: #004EFF;
}
.theme-light .icon-svg--accent {
  fill: #E31337;
}
.theme-dark .icon-svg--accent {
  fill: #E31337;
}
.icon-svg--layout-line1, .icon-svg--layout-line2, .icon-svg--layout-line3 {
  height: 2px;
  opacity: 1;
  filter: alpha(opacity=100);
  transition: 0.3s all ease-in-out;
}
.icon-svg--layout-line2 {
  y: 11px;
}
.icon-svg--layout-line1 {
  y: 6px;
}
.icon-svg--layout-line3 {
  y: 16px;
}

.articles__layout-selector {
  display: inline-block;
}
.theme-original .articles__layout-selector .icon-svg--accent {
  fill: #788187;
}
.theme-light .articles__layout-selector .icon-svg--accent {
  fill: #788187;
}
.theme-dark .articles__layout-selector .icon-svg--accent {
  fill: #A6B2BA;
}

.theme-original .articles__layout-selector:hover .icon-svg--accent {
  fill: #333;
}
.theme-light .articles__layout-selector:hover .icon-svg--accent {
  fill: #333;
}
.theme-dark .articles__layout-selector:hover .icon-svg--accent {
  fill: #fcfcfc;
}

a#changeLayout:focus {
  outline: none;
}

@media only screen and (min-width: 47.5em) {
  .layout-list {
    transition: 0.3s all ease-in-out;
  }
  .layout-list .icon-svg--layout-line3 {
    y: 22px;
    opacity: 0;
    filter: alpha(opacity=0);
  }
  .layout-list .icon-svg--layout-line1, .layout-list .icon-svg--layout-line2 {
    height: 4px;
  }
  .layout-list .icon-svg--layout-line2 {
    y: 14px;
  }
  .layout-list .icon-svg--layout-line1 {
    y: 6px;
  }
  .layout-list .c-sidebar--right {
    display: none;
    max-width: 320px;
    order: 3;
  }
}
@media only screen and (min-width: 47.5em) and (min-width: 75em) {
  .layout-list .c-sidebar--right {
    display: block;
    margin-right: 1em;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles {
    max-width: none;
    max-width: 1056px;
  }
}
@media only screen and (min-width: 47.5em) and (min-width: 100em) {
  .layout-list .articles {
    min-width: 850px;
  }
}
@media only screen and (min-width: 47.5em) {
  .theme-original .layout-list .articles {
    background-color: transparent;
    border: transparent;
  }
}
@media only screen and (min-width: 47.5em) {
  .theme-light .layout-list .articles {
    background-color: transparent;
    border: transparent;
  }
}
@media only screen and (min-width: 47.5em) {
  .theme-dark .layout-list .articles {
    background-color: transparent;
    border: transparent;
  }
}
@media only screen and (min-width: 47.5em) and (min-width: 47.5em) {
  .layout-list .articles__hr {
    display: block;
  }
  .theme-original .layout-list .articles__hr {
    border-bottom: 1px solid #eee;
  }
  .theme-light .layout-list .articles__hr {
    border-bottom: 1px solid #eee;
  }
  .theme-dark .layout-list .articles__hr {
    border-bottom: 1px solid #2c3136;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__summary {
    border: transparent;
    box-shadow: none;
    padding-bottom: 0px;
    margin: 0;
  }
}
@media only screen and (min-width: 47.5em) and (min-width: 47.5em) {
  .layout-list .articles__summary {
    padding-bottom: 0;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__h2 {
    font-size: 15px;
    font-size: 0.9375rem;
  }
}
@media only screen and (min-width: 47.5em) and (min-width: 47.5em) {
  .layout-list .articles__h2 {
    -webkit-line-clamp: 1;
  }
}
@media only screen and (min-width: 47.5em) and (min-width: 100em) {
  .layout-list .articles__h2 {
    -webkit-line-clamp: 1;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__feature-img-container {
    overflow: hidden;
    width: 130px;
    height: 77px;
    position: relative;
    display: inline-block;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__feature-img {
    position: absolute;
    width: 100% !important;
    top: 50%;
    transform: translateY(-50%);
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__summary-header {
    padding: 2px 0;
    border: transparent;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__summary-footer {
    padding: 2px 0 5px;
    border: transparent;
    padding: 4px;
    padding-top: 3px;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__p {
    font-size: 15px;
    font-size: 0.9375rem;
    -webkit-line-clamp: 1;
    padding-right: 6px;
    margin-top: 2px;
    padding-top: 0px;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__content {
    display: flex;
    align-items: top;
  }
}
@media only screen and (min-width: 47.5em) {
  .theme-original .layout-list .articles__footer {
    border-top: 1px solid #f6f6f6;
    margin-top: 0.25em;
  }
  .theme-light .layout-list .articles__footer {
    border-top: 1px solid #f6f6f6;
    margin-top: 0.25em;
  }
  .theme-dark .layout-list .articles__footer {
    border-top: 1px solid #2c3136;
    margin-top: 0.25em;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__content-block {
    margin-bottom: 0;
  }
  .layout-list .articles__content-block--img {
    margin-right: 14px;
  }
  .layout-list .articles__content-block--text {
    margin-top: 0;
    min-width: 300px;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__tags {
    margin: 4px 0 0;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__flag {
    top: 0;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__resteem {
    padding-bottom: 0;
    border-bottom: transparent;
  }
}
@media only screen and (min-width: 47.5em) and (min-width: 47.5em) {
  .layout-list .articles__resteem, .layout-list .articles__content-block--text, .layout-list .articles__metadata {
    padding-left: 0;
    padding-right: 0;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles .articles__hr {
    margin-bottom: 0.3em;
    display: none;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .user__name {
    font-size: 15px;
    font-size: 0.9375rem;
    font-weight: normal;
  }
  .layout-list .user__name a {
    font-size: 14px;
    font-size: 0.875rem;
  }
}

.layout-list .user > .user__col > .user__link > .Userpic {
  width: 24px !important;
  height: 24px !important;
  margin-right: 8px;
}

.layout-block .Userpic {
  margin-right: 8px;
}
@media only screen and (min-width: 47.5em) {
  .layout-block .Userpic {
    margin-right: 12px;
  }
}

.icon-svg {
  transition: 0.2s all ease-in-out;
}
.theme-original .icon-svg {
  fill: #788187;
}
.theme-light .icon-svg {
  fill: #788187;
}
.theme-dark .icon-svg {
  fill: #A6B2BA;
}
.theme-original .icon-svg--accent {
  fill: #004EFF;
}
.theme-light .icon-svg--accent {
  fill: #E31337;
}
.theme-dark .icon-svg--accent {
  fill: #E31337;
}
.icon-svg--layout-line1, .icon-svg--layout-line2, .icon-svg--layout-line3 {
  height: 2px;
  opacity: 1;
  filter: alpha(opacity=100);
  transition: 0.3s all ease-in-out;
}
.icon-svg--layout-line2 {
  y: 11px;
}
.icon-svg--layout-line1 {
  y: 6px;
}
.icon-svg--layout-line3 {
  y: 16px;
}

.PostsIndex .Voting {
  float: right;
}

.articles__resteem .username,
.articles__crosspost .username {
  text-decoration: none;
}

.articles__resteem-icon path,
.articles__crosspost-icon path {
  fill: #cacaca;
}

ul.Topics {
  max-width: 10rem;
}
ul.Topics > li {
  list-style-type: none;
}
ul.Topics > li > a.active {
  font-weight: bold;
  overflow: hidden;
}
ul.Topics .show-more {
  font-size: 0.9rem;
  font-weight: bold;
  color: #8a8a8a;
}

.c-sidebar__header {
  font-weight: bold;
  font-size: 1.125rem;
  margin: 0 0 1rem 0;
}

.Post__comments_sort_order {
  margin: 0.5rem 0;
  font-size: 94%;
}
.theme-original .Post__comments_sort_order {
  color: #788187;
}
.theme-light .Post__comments_sort_order {
  color: #788187;
}
.theme-dark .Post__comments_sort_order {
  color: #A6B2BA;
}
.Post__comments_sort_order svg polygon {
  fill: #8a8a8a;
}
.theme-original .Post__comments_sort_order svg polygon {
  fill: #788187;
}
.theme-light .Post__comments_sort_order svg polygon {
  fill: #788187;
}
.theme-dark .Post__comments_sort_order svg polygon {
  fill: #A6B2BA;
}
.Post__comments_sort_order > span {
  font-weight: bold;
}

.Post__promo {
  text-align: center;
  font-style: italic;
  font-weight: bold;
  max-width: 50rem;
  margin: 0 auto;
  padding: 1rem 0;
}
.theme-original .Post__promo {
  border-bottom: 1px solid #eee;
}
.theme-light .Post__promo {
  border-bottom: 1px solid #eee;
}
.theme-dark .Post__promo {
  border-bottom: 1px solid #2c3136;
}
.Post__promo .button {
  margin-top: 1rem;
  text-transform: none;
}

.Post_comments__content {
  max-width: 54rem;
  margin: 0 auto 3.5rem;
  font-size: 92%;
}

.Post__reply_pagination {
  width: 100%;
  text-align: center;
  margin-top: 25px;
  margin-bottom: 10px;
}

.Post__reply_pagelink {
  cursor: pointer;
  padding: 2px 4px;
  border-radius: 2px 4px;
}
.theme-original .Post__reply_pagelink {
  color: #fcfcfc;
  background-color: #1A5099;
}
.theme-original .Post__reply_pagelink:hover {
  color: #fcfcfc;
  background-color: #4BA2F2;
}
.theme-original .Post__reply_pagelink.current_page {
  font-weight: bold;
  background-color: #ffa6a6;
}
.theme-light .Post__reply_pagelink {
  color: #fcfcfc;
  background-color: #212529;
}
.theme-light .Post__reply_pagelink:hover {
  color: #fff;
  background-color: #E31337;
}
.theme-light .Post__reply_pagelink.current_page {
  font-weight: bold;
  background-color: #ffa6a6;
}
.theme-dark .Post__reply_pagelink {
  color: #2C3A45;
  background-color: #fff;
}
.theme-dark .Post__reply_pagelink:hover {
  color: #fff;
  background-color: #E31337;
}
.theme-dark .Post__reply_pagelink.current_page {
  font-weight: bold;
  background-color: #ffa6a6;
}

.Post_reply_pagelink_separator {
  margin-right: 15px;
}

.Post__reply_label {
  margin-right: 15px;
}

.Privacy {
  max-width: 800px;
  padding: 1.5em 0 3em;
}
.Privacy .section {
  font-size: 100%;
  padding-right: 0.5rem;
}
.theme-original .Privacy .section {
  fill: #333;
}
.theme-light .Privacy .section {
  fill: #333;
}
.theme-dark .Privacy .section {
  fill: #fcfcfc;
}

.Tos {
  max-width: 800px;
  padding: 1.5em 0 3em;
}
.Tos .c1.h {
  font-weight: 600;
}

.UserProfile {
  margin-top: -1.5rem;
}
@media only screen and (min-width: 47.5em) {
  .UserProfile .articles {
    margin: 0 auto;
  }
}

.UserProfile__blacklists .account_warn {
  font-size: 0.8em;
}
.UserProfile__blacklists .VerticalMenu {
  font-size: 1rem;
  text-shadow: none;
}
.theme-original .UserProfile__blacklists .VerticalMenu {
  background-color: #f8f8ff;
  color: #333;
}
.theme-light .UserProfile__blacklists .VerticalMenu {
  background-color: #f4f4fd;
  color: #333;
}
.theme-dark .UserProfile__blacklists .VerticalMenu {
  background-color: #212529;
  color: #fcfcfc;
}

.UserProfile__postmenu {
  margin: -0.5rem 0 1rem;
  padding-bottom: 0.5rem;
}
.theme-original .UserProfile__postmenu {
  border-bottom: 1px solid #eee;
}
.theme-light .UserProfile__postmenu {
  border-bottom: 1px solid #eee;
}
.theme-dark .UserProfile__postmenu {
  border-bottom: 1px solid #2c3136;
}
.UserProfile__postmenu div {
  display: inline-block;
  padding: 0 0.5rem;
  margin: 0 0.5rem;
}

.UserProfile__tab_content {
  margin-top: 1.5rem;
}

.UserProfile__top-nav {
  background-color: #2C3A45;
  padding: 0;
}
.UserProfile__top-nav .menu {
  background-color: transparent;
}
.UserProfile__top-nav .menu > li > a {
  transition: all 200ms ease-in;
  transform: translate3d(0, 0, 0);
  padding-left: 0.7rem;
  padding-right: 0.7rem;
  background-color: transparent;
  color: #fff;
}
.UserProfile__top-nav .menu > li > a:hover, .UserProfile__top-nav .menu > li > a:focus {
  background-color: #212529;
}
.UserProfile__top-nav .menu > li > a.active {
  z-index: 2;
  font-weight: bold;
}
.theme-original .UserProfile__top-nav .menu > li > a.active {
  background-color: #f8f8ff;
  color: #333;
}
.theme-light .UserProfile__top-nav .menu > li > a.active {
  background-color: #f4f4fd;
  color: #333;
}
.theme-dark .UserProfile__top-nav .menu > li > a.active {
  background-color: #212529;
  color: #fcfcfc;
}
@media screen and (max-width: 39.9375em) {
  .UserProfile__top-nav .menu > li > a {
    font-size: 0.85rem;
  }
}
.UserProfile__top-nav div.UserProfile__top-menu {
  max-width: 71.42857rem;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  flex-flow: row wrap;
  width: 100%;
}
.UserProfile__top-nav div.UserProfile__top-menu .Icon > svg, .UserProfile__top-nav div.UserProfile__top-menu .Icon span.icon {
  vertical-align: middle !important;
}
.UserProfile__top-nav div.UserProfile__top-menu .columns.small-9 {
  flex: 1 1 0px;
  max-width: 100%;
}

.UserProfile__section-title {
  margin-bottom: 1.5rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid #EEE;
}

.UserProfile__banner {
  text-align: center;
  color: #fefefe;
}
.UserProfile__banner a {
  color: #fefefe;
}
.UserProfile__banner > div.column, .UserProfile__banner > div.columns {
  background: #2c3136;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  text-shadow: 1px 1px 2px black;
  min-height: 155px;
}
.UserProfile__banner > div.column .button, .UserProfile__banner > div.columns .button {
  text-shadow: none;
}
.UserProfile__banner h1 {
  padding-top: 20px;
  font-weight: 600;
  font-size: 1.84524rem !important;
}
@media screen and (max-width: 39.9375em) {
  .UserProfile__banner h1 {
    font-size: 1.13095rem !important;
  }
}
.UserProfile__banner .Icon {
  margin-left: 1rem;
}
.UserProfile__banner .Icon svg {
  fill: #def;
}
.UserProfile__banner .UserProfile__rep {
  font-size: 80%;
  font-weight: 200;
}
.UserProfile__banner .UserProfile__buttons {
  position: absolute;
  top: 15px;
  right: 5px;
}
.UserProfile__banner .UserProfile__buttons label.button {
  color: black;
  border-radius: 3px;
  background-color: white;
}
.UserProfile__banner .UserProfile__bio {
  margin: -0.4rem auto 0.5rem;
  font-size: 95%;
  max-width: 420px;
  line-height: 1.4;
}
.UserProfile__banner .UserProfile__info {
  font-size: 90%;
}
.UserProfile__banner .UserProfile__stats {
  margin-bottom: 5px;
  padding-bottom: 5px;
  font-size: 90%;
}
.UserProfile__banner .UserProfile__stats a {
  vertical-align: middle;
}
.UserProfile__banner .UserProfile__stats a:hover {
  text-decoration: underline;
}
.UserProfile__banner .UserProfile__stats > span {
  padding: 0px 10px;
  border-left: 1px solid #CCC;
}
.UserProfile__banner .UserProfile__stats > span:first-child {
  border-left: none;
}
.UserProfile__banner .UserProfile__stats > span:nth-child(5) {
  border-left: none;
  border-right: 1px solid #CCC;
}

@media screen and (max-width: 39.9375em) {
  div.UserProfile__top-nav .menu li > a {
    padding: 8px;
  }

  .UserProfile__top-menu > div.columns {
    padding-left: 0;
    padding-right: 0;
  }

  .UserProfile__banner .Userpic {
    width: 36px !important;
    height: 36px !important;
  }

  .UserProfile__banner .UserProfile__buttons {
    text-align: right;
  }
  .UserProfile__banner .UserProfile__buttons label.button {
    display: block;
  }

  .UserProfile__banner .UserProfile__buttons_mobile {
    position: inherit;
    margin-bottom: 0.5rem;
  }
  .UserProfile__banner .UserProfile__buttons_mobile .button {
    background-color: #fefefe;
    color: #333333;
  }
}
.UserProfile .articles {
  margin-bottom: 4em;
}
.UserProfile .articles__h1 {
  text-transform: none;
}
@media only screen and (min-width: 47.5em) {
  .UserProfile .articles__h1 {
    font-size: 20px;
    font-size: 1.25rem;
  }
}
.UserProfile__tab_content.layout-block.settings .articles, .UserProfile__tab_content.layout-block.curation-rewards .articles, .UserProfile__tab_content.layout-block.author-rewards .articles {
  padding: 1.5em 1.5em;
  max-width: 1056px;
}
@media only screen and (min-width: 100em) {
  .UserProfile__tab_content.layout-block.settings .articles, .UserProfile__tab_content.layout-block.curation-rewards .articles, .UserProfile__tab_content.layout-block.author-rewards .articles {
    min-width: 1050px;
  }
}
.UserProfile .settings .articles__layout-selector, .UserProfile .curation-rewards .articles__layout-selector, .UserProfile .author-rewards .articles__layout-selector {
  display: none;
}

.UserProfile__Userpic {
  position: relative;
  display: inline-block;
  width: 48px;
  height: 48px;
  margin-right: 0.75rem;
  vertical-align: middle;
}

.UserProfile__badge_image_hivebuzzlevel {
  width: 25px;
  height: 25px;
  top: 30px;
  left: 30px;
  transition: width 0.25s, height 0.25s, top 0.25s, left 0.25s;
  margin-left: 7px;
}
.UserProfile__badge_image_hivebuzzlevel:hover {
  width: 40px;
  height: 40px;
  top: 26px;
  left: 26px;
}

.TagsIndex input {
  margin-bottom: 0.5rem !important;
}
.TagsIndex table tr th a {
  position: relative;
  transition: 0.3s all ease-in-out;
  font-size: 17px;
  font-size: 1.0625rem;
}
.TagsIndex table tr th a:hover::after {
  content: "↓";
  position: absolute;
  left: 100%;
  padding-left: 4px;
}
.TagsIndex table tr td, .TagsIndex table tr th {
  padding-right: 20px;
  text-align: right;
}
.TagsIndex table tr td:first-child, .TagsIndex table tr th:first-child {
  text-align: left;
}

.Welcome__banner {
  position: relative;
}
.Welcome__banner .Welcome__welcome {
  position: absolute;
  width: 100%;
  bottom: 70%;
  color: white;
  font-size: 160%;
  padding-left: 38%;
}
.Welcome__banner .Welcome__caption {
  position: absolute;
  width: 100%;
  top: 65%;
  color: white;
  font-size: 115%;
  padding-left: 44%;
  padding-right: 2%;
}

.HelpContent {
  height: inherit;
}
.HelpContent p {
  position: relative;
}
.HelpContent h2 {
  margin-top: 8px;
}
.HelpContent h3 {
  margin-top: 0;
}

.About {
  position: relative;
  z-index: 1;
}
.About .h2, .About .AboutMission__heading {
  margin: 0 0 12px 0;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 24px;
  font-size: 1.5rem;
}
.About h3 {
  font-size: 1.17em;
  font-weight: 600;
  margin: 1em 0;
}
.About ul {
  padding-left: 40px;
  line-height: 1.4em;
}
@media only screen and (min-width: 50em) {
  .About .h2, .About .AboutMission__heading {
    letter-spacing: 4px;
    font-size: 42px;
    font-size: 2.625rem;
    margin-bottom: 12px;
  }
}
.About .AboutMission {
  width: 100%;
  padding: 2em 0;
}
.About .AboutMission__section {
  max-width: 1600px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  margin-bottom: 2em;
  padding: 0 24px;
}
@media only screen and (min-width: 50em) {
  .About .AboutMission__section {
    flex-direction: row;
  }
}
.About .AboutMission__section--vision .AboutMission__section__text-container {
  color: blue;
  order: 2;
}
.About .AboutMission__text-container, .About .AboutMission__image-container {
  width: 100%;
  margin-bottom: 24px;
}
@media only screen and (min-width: 50em) {
  .About .AboutMission__text-container, .About .AboutMission__image-container {
    padding: 2em 0 2em 4%;
    width: 46%;
  }
}
@media only screen and (min-width: 75em) {
  .About .AboutMission__text-container, .About .AboutMission__image-container {
    padding: 2em 0 2em 8%;
    width: 42%;
  }
}
.About .AboutMission__text-container {
  max-width: 600px;
}
.About .AboutMission__square {
  width: 8px;
  height: 8px;
  background: #06D6A9;
  margin-bottom: 1.5rem;
}
.About .AboutMission__square::before {
  content: "";
  width: 8px;
  height: 8px;
  background: #06D6A9;
  margin-left: 12px;
  display: flex;
}
.About .AboutMission__text {
  margin: 0;
}
.About .AboutMission__subheading {
  margin-bottom: 4px;
  font-size: 20px;
  font-size: 1.25rem;
}
@media only screen and (min-width: 50em) {
  .About .AboutMission__subheading {
    margin-bottom: 6px;
  }
}
.About .AboutMission__text {
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.4;
}
.About .AboutMission__list {
  margin: 6px 0;
}
.About .AboutMission__list-item {
  margin-bottom: 6px;
}
.About .AboutMission__img {
  box-shadow: 10px 12px 14px 0 rgba(0, 0, 0, 0.05);
  margin-bottom: 24px;
}
@media only screen and (min-width: 50em) {
  .About .AboutMission__section:nth-child(even) .AboutMission__text-container {
    order: 2;
  }
}
.About .About-content-container, .About .AboutTeam__container {
  max-width: 1200px;
  margin: 0 auto;
}
.About .AboutMission__heading-container {
  padding-left: 14px;
  padding-right: 14px;
  max-width: 1200px;
  margin: 0.83em auto;
}
.About .AboutMission__heading-container .AboutMission__heading {
  letter-spacing: 0;
  text-transform: initial;
}
.About .AboutMission__square--2 {
  margin-top: 6rem;
}

.CommunitiesIndex table {
  margin-top: 1em;
}
.CommunitiesIndex table tbody {
  background: transparent;
}
.CommunitiesIndex table tbody tr {
  background: transparent !important;
}
.CommunitiesIndex table th {
  text-align: left;
  font-weight: normal;
}
.CommunitiesIndex table th a.title {
  font-weight: 400;
  font-size: 1.3em;
}
.CommunitiesIndex table td {
  vertical-align: middle;
  color: #666;
  text-align: center;
}
.CommunitiesIndex table small {
  color: #999;
  display: block;
}
.CommunitiesIndex table .button {
  margin: 0;
}
.CommunitiesIndex.c-sidebar__module {
  /* Larger than Medium */
}
@media screen and (min-width: 64.0625em) {
  .CommunitiesIndex.c-sidebar__module {
    padding: 1.5em 4em;
  }
}
.CommunitiesIndex table tbody {
  border: none;
}
.theme-original .CommunitiesIndex table tr {
  border: 1px solid #eee;
}
.theme-light .CommunitiesIndex table tr {
  border: 1px solid #eee;
}
.theme-dark .CommunitiesIndex table tr {
  border: 1px solid #2c3136;
}
.CommunitiesIndex table th {
  width: 600px;
  /* Larger than Small */
}
@media screen and (min-width: 40.0625em) {
  .CommunitiesIndex table th {
    padding-right: 6%;
  }
}
.CommunitiesIndex table td {
  width: 40px;
}

.BadgesAchievements .BadgesAchievements_tabs_container {
  padding: 5px 15px;
}
@media screen and (max-width: 39.9375em) {
  .BadgesAchievements {
    margin: 0;
  }
}
.BadgesAchievements a {
  display: inline-block;
}
.BadgesAchievements .BadgesAchievements__badge_image {
  margin: 5px;
}
.BadgesAchievements .BadgesAchievements__badge_image img {
  vertical-align: top;
  width: 64px;
}
@media screen and (max-width: 39.9375em) {
  .BadgesAchievements .BadgesAchievements__badge_image img {
    width: 48px;
  }
}
.BadgesAchievements .react-tabs__tab-list {
  background-color: #f8f8ff;
}
.BadgesAchievements .react-tabs__tab {
  color: #333;
  font-weight: bold;
}
.BadgesAchievements .react-tabs__tab--selected {
  background-color: #2C3A45;
  border-color: transparent;
  border-radius: 0;
  color: white;
}
.BadgesAchievements .react-tabs__tab-panel {
  min-height: 58px;
}

.article_section {
  margin-bottom: 40px;
}

.CommunityRoles table tbody {
  background: transparent;
}
.CommunityRoles table tbody tr {
  background: transparent !important;
}

.community-user--role {
  cursor: pointer;
}

a.community--subscribe:hover.hollow span {
  display: none;
}
a.community--subscribe:hover.hollow::after {
  content: "Leave";
}

.Rewards__chart .head {
  font-size: 0.8em;
  margin: -6px 0 8px;
}
.Rewards__chart #reward_chart {
  background: white;
  position: relative;
  font-size: 10px;
  line-height: 1em;
}
.Rewards__chart #reward_chart .box {
  position: absolute;
  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.25);
}
.Rewards__chart #reward_chart .box:hover {
  box-shadow: inset 0 0 3px black;
}
.Rewards__chart #reward_chart .box.box-a .title {
  font-style: italic;
}
.Rewards__chart #reward_chart .box a.box-inner {
  display: block;
  padding: 2px;
  color: black;
  height: 100%;
}
.Rewards__chart #reward_chart .box a.box-inner .title {
  height: 100%;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
}
.Rewards__chart #reward_chart .box a.box-inner .detail {
  display: none;
  position: fixed;
  bottom: 10px;
  right: 10px;
  width: 120px;
  padding: 4px;
  font-size: 12px;
  line-height: 1.2em;
  background: white;
  border: 1px solid black;
  z-index: 10;
}
.Rewards__chart #reward_chart .box a.box-inner:hover .detail {
  display: block;
}

.UserProfile {
  margin-top: -1.5rem;
}
@media only screen and (min-width: 47.5em) {
  .UserProfile .articles {
    margin: 0 auto;
  }
}

.UserProfile__blacklists .account_warn {
  font-size: 0.8em;
}
.UserProfile__blacklists .VerticalMenu {
  font-size: 1rem;
  text-shadow: none;
}
.theme-original .UserProfile__blacklists .VerticalMenu {
  background-color: #f8f8ff;
  color: #333;
}
.theme-light .UserProfile__blacklists .VerticalMenu {
  background-color: #f4f4fd;
  color: #333;
}
.theme-dark .UserProfile__blacklists .VerticalMenu {
  background-color: #212529;
  color: #fcfcfc;
}

.UserProfile__postmenu {
  margin: -0.5rem 0 1rem;
  padding-bottom: 0.5rem;
}
.theme-original .UserProfile__postmenu {
  border-bottom: 1px solid #eee;
}
.theme-light .UserProfile__postmenu {
  border-bottom: 1px solid #eee;
}
.theme-dark .UserProfile__postmenu {
  border-bottom: 1px solid #2c3136;
}
.UserProfile__postmenu div {
  display: inline-block;
  padding: 0 0.5rem;
  margin: 0 0.5rem;
}

.UserProfile__tab_content {
  margin-top: 1.5rem;
}

.UserProfile__top-nav {
  background-color: #2C3A45;
  padding: 0;
}
.UserProfile__top-nav .menu {
  background-color: transparent;
}
.UserProfile__top-nav .menu > li > a {
  transition: all 200ms ease-in;
  transform: translate3d(0, 0, 0);
  padding-left: 0.7rem;
  padding-right: 0.7rem;
  background-color: transparent;
  color: #fff;
}
.UserProfile__top-nav .menu > li > a:hover, .UserProfile__top-nav .menu > li > a:focus {
  background-color: #212529;
}
.UserProfile__top-nav .menu > li > a.active {
  z-index: 2;
  font-weight: bold;
}
.theme-original .UserProfile__top-nav .menu > li > a.active {
  background-color: #f8f8ff;
  color: #333;
}
.theme-light .UserProfile__top-nav .menu > li > a.active {
  background-color: #f4f4fd;
  color: #333;
}
.theme-dark .UserProfile__top-nav .menu > li > a.active {
  background-color: #212529;
  color: #fcfcfc;
}
.UserProfile__top-nav div.UserProfile__top-menu {
  max-width: 71.42857rem;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  flex-flow: row wrap;
  width: 100%;
}
.UserProfile__top-nav div.UserProfile__top-menu .Icon > svg, .UserProfile__top-nav div.UserProfile__top-menu .Icon span.icon {
  vertical-align: middle !important;
}

.UserProfile__section-title {
  margin-bottom: 1.5rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid #EEE;
}

.UserProfile__banner {
  text-align: center;
  color: #fefefe;
}
.UserProfile__banner a {
  color: #fefefe;
}
.UserProfile__banner > div.column, .UserProfile__banner > div.columns {
  background: #2c3136;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  text-shadow: 1px 1px 2px black;
  min-height: 155px;
}
.UserProfile__banner > div.column .button, .UserProfile__banner > div.columns .button {
  text-shadow: none;
}
.UserProfile__banner h1 {
  padding-top: 20px;
  font-weight: 600;
  font-size: 1.84524rem !important;
}
@media screen and (max-width: 39.9375em) {
  .UserProfile__banner h1 {
    font-size: 1.13095rem !important;
  }
}
.UserProfile__banner .Icon {
  margin-left: 1rem;
}
.UserProfile__banner .Icon svg {
  fill: #def;
}
.UserProfile__banner .Userpic {
  margin-right: 0.75rem;
  vertical-align: middle;
}
.UserProfile__banner .UserProfile__rep {
  font-size: 80%;
  font-weight: 200;
}
.UserProfile__banner .UserProfile__buttons {
  position: absolute;
  top: 15px;
  right: 5px;
}
.UserProfile__banner .UserProfile__buttons label.button {
  color: black;
  border-radius: 3px;
  background-color: white;
}
.UserProfile__banner .UserProfile__bio {
  margin: -0.4rem auto 0.5rem;
  font-size: 95%;
  max-width: 420px;
  line-height: 1.4;
}
.UserProfile__banner .UserProfile__info {
  font-size: 90%;
}
.UserProfile__banner .UserProfile__stats {
  margin-bottom: 5px;
  padding-bottom: 5px;
  font-size: 90%;
}
.UserProfile__banner .UserProfile__stats a {
  vertical-align: middle;
}
.UserProfile__banner .UserProfile__stats a:hover {
  text-decoration: underline;
}
.UserProfile__banner .UserProfile__stats > span {
  padding: 0px 10px;
  border-left: 1px solid #CCC;
}
.UserProfile__banner .UserProfile__stats > span:first-child {
  border-left: none;
}
.UserProfile__banner .UserProfile__stats > span:nth-child(6) {
  border-left: none;
}

@media screen and (max-width: 39.9375em) {
  div.UserProfile__top-nav .menu li > a {
    padding: 8px;
  }

  .UserProfile__top-menu > div.columns {
    padding-left: 0;
    padding-right: 0;
  }

  .UserProfile__banner .Userpic {
    width: 36px !important;
    height: 36px !important;
  }

  .UserProfile__banner .UserProfile__buttons {
    text-align: right;
  }
  .UserProfile__banner .UserProfile__buttons label.button {
    display: block;
  }

  .UserProfile__banner .UserProfile__buttons_mobile {
    position: inherit;
    margin-bottom: 0.5rem;
  }
  .UserProfile__banner .UserProfile__buttons_mobile .button {
    background-color: #fefefe;
    color: #333333;
  }
}
.UserProfile .articles {
  margin-bottom: 4em;
}
.UserProfile .articles__h1 {
  text-transform: none;
}
@media only screen and (min-width: 47.5em) {
  .UserProfile .articles__h1 {
    font-size: 20px;
    font-size: 1.25rem;
  }
}
.UserProfile__tab_content.layout-block.settings .articles, .UserProfile__tab_content.layout-block.curation-rewards .articles, .UserProfile__tab_content.layout-block.author-rewards .articles {
  padding: 1.5em 1.5em;
  max-width: 1056px;
}
@media only screen and (min-width: 100em) {
  .UserProfile__tab_content.layout-block.settings .articles, .UserProfile__tab_content.layout-block.curation-rewards .articles, .UserProfile__tab_content.layout-block.author-rewards .articles {
    min-width: 1050px;
  }
}
.UserProfile .settings .articles__layout-selector, .UserProfile .curation-rewards .articles__layout-selector, .UserProfile .author-rewards .articles__layout-selector {
  display: none;
}

/* Small only */
@media screen and (max-width: 39.9375em) {
  body {
    font-size: 86%;
  }
}
/* Medium only */
@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  body {
    font-size: 92%;
  }
}
a, path, circle {
  transition: opacity, fill, stroke 0.3s ease 0s;
}

.space-right {
  margin-right: 0.4rem;
}

.clear-right {
  clear: right;
}

.clear-left {
  clear: left;
}

.clear-both {
  clear: both;
}

.strikethrough {
  text-decoration: line-through;
}

.uppercase, label {
  text-transform: uppercase;
}

.whistle-view .whistle-hidden {
  display: none !important;
}

.secondary {
  font-size: 90%;
}
.theme-original .secondary {
  color: #788187;
}
.theme-light .secondary {
  color: #788187;
}
.theme-dark .secondary {
  color: #A6B2BA;
}
.secondary a {
  transition: 0.2s all ease-in-out;
  color: #8a8a8a;
}
.theme-original .secondary a {
  color: #788187;
}
.theme-light .secondary a {
  color: #788187;
}
.theme-dark .secondary a {
  color: #A6B2BA;
}
.theme-original .secondary a :hover {
  color: #004EFF;
}
.theme-light .secondary a :hover {
  color: #E31337;
}
.theme-dark .secondary a :hover {
  color: #E31337;
}

.button.hollow.no-border {
  border: none;
  text-decoration: underline;
}

.button.slim {
  padding: 5px;
  margin: 5px;
}

@-webkit-keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.marginLeft1rem {
  margin-left: 1rem;
}

.NotFound {
  width: 640px;
  margin-top: 2em;
  text-align: center;
}
@media screen and (max-width: 39.9375em) {
  .NotFound {
    width: 340px;
  }
}

.NotFound__menu {
  text-align: center;
}
.NotFound__menu li {
  float: none;
  display: inline-block;
  text-align: center;
  margin-right: 1%;
  list-style: none;
  font-weight: 400;
}
.NotFound__menu li:after {
  content: " |";
}
.NotFound__menu li:last-child:after {
  content: "";
}

.NotFound__header {
  margin-top: 1em;
}

@media print {
  .noPrint {
    display: none;
  }
}
h1, h2, h3, h4, h5, h6 {
  line-height: 1.2 !important;
}

.c-sidebar {
  width: 100%;
  max-width: 240px;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.c-sidebar__module {
  padding: 1.5em 2em;
}
.theme-original .c-sidebar__module {
  background-color: #fff;
  border: 1px solid #eee;
}
.theme-light .c-sidebar__module {
  background-color: #fff;
  border: 1px solid #eee;
}
.theme-dark .c-sidebar__module {
  background-color: #2c3136;
  border: 1px solid #2c3136;
}

.theme-dark .c-sidebar__item a {
  color: white;
}
.theme-dark .c-sidebar__item a svg {
  fill: white;
}

.phishy {
  display: inline;
  color: red;
}

.pager {
  list-style: none;
}

a[rel="noreferrer noopener"]:after,
a[rel="nofollow noreferrer noopener"]:after {
  content: "";
  background: url('data:image/svg+xml; utf8, <svg height="1024" width="768" xmlns="http://www.w3.org/2000/svg"><path d="M640 768H128V257.90599999999995L256 256V128H0v768h768V576H640V768zM384 128l128 128L320 448l128 128 192-192 128 128V128H384z"/></svg>');
  background-size: cover;
  display: inline-block;
  width: 0.6em;
  height: 0.75em;
  top: 0.05em;
  position: relative;
  left: 0.2em;
  margin-right: 0.2em;
  opacity: 0.5;
}

.PostFull__body a[rel="noreferrer noopener"]:after,
.PostFull__body a[rel="nofollow noreferrer noopener"]:after {
  background-image: url('data:image/svg+xml; utf8, <svg height="1024" width="768" xmlns="http://www.w3.org/2000/svg"><path d="M640 768H128V257.90599999999995L256 256V128H0v768h768V576H640V768zM384 128l128 128L320 448l128 128 192-192 128 128V128H384z" fill="%23788187"/></svg>');
}

.affiliation {
  font-weight: 400;
  display: inline;
  margin: 0 0.2rem;
  padding: 0 0.2rem 0.05rem;
  border-radius: 0.3rem;
  text-shadow: none;
  font-size: 0.75rem;
}
.theme-original .affiliation {
  border: 1px solid #004EFF;
  color: #788187;
}
.theme-light .affiliation {
  border: 1px solid #E31337;
  color: #788187;
}
.theme-dark .affiliation {
  border: 1px solid #E31337;
  color: #A6B2BA;
}
.affiliation .affiliation-edit .Icon {
  margin-right: 0;
}

.affiliation-edit .Icon {
  margin: 0 0.25em;
}
.theme-original .affiliation-edit .Icon {
  fill: #788187;
}
.theme-light .affiliation-edit .Icon {
  fill: #788187;
}
.theme-dark .affiliation-edit .Icon {
  fill: #A6B2BA;
}

.user_role {
  font-size: 0.8em;
  text-transform: uppercase;
  color: gray;
  margin: 0 0.2em;
}

.account_warn {
  font-weight: bold;
  color: red;
}

.pointer {
  cursor: pointer;
}
.react-tabs {
  -webkit-tap-highlight-color: transparent;
}

.react-tabs__tab-list {
  border-bottom: 1px solid #aaa;
  margin: 0 0 10px;
  padding: 0;
}

.react-tabs__tab {
  display: inline-block;
  border: 1px solid transparent;
  border-bottom: none;
  bottom: -1px;
  position: relative;
  list-style: none;
  padding: 6px 12px;
  cursor: pointer;
}

.react-tabs__tab--selected {
  background: #fff;
  border-color: #aaa;
  color: black;
  border-radius: 5px 5px 0 0;
}

.react-tabs__tab--disabled {
  color: GrayText;
  cursor: default;
}

.react-tabs__tab:focus {
  box-shadow: 0 0 5px hsl(208, 99%, 50%);
  border-color: hsl(208, 99%, 50%);
  outline: none;
}

.react-tabs__tab:focus:after {
  content: "";
  position: absolute;
  height: 5px;
  left: -4px;
  right: -4px;
  bottom: -5px;
  background: #fff;
}

.react-tabs__tab-panel {
  display: none;
}

.react-tabs__tab-panel--selected {
  display: block;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmIxNzc2YzdjMjhjOTkwZDFlNWMwLmNzcyIsInNvdXJjZXMiOlsiLi9zcmMvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hcHAuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fbm9ybWFsaXplLW1peGluLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplL192ZXJ0aWNhbC1yaHl0aG0uc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Jvdy5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19icmVha3BvaW50LnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2d1dHRlci5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19mbGV4LnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Bvc2l0aW9uLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9faGVscGVycy5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3RleHQuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2NoZWNrYm94LnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19sYWJlbC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faGVscC10ZXh0LnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19pbnB1dC1ncm91cC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZmllbGRzZXQuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3NlbGVjdC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZXJyb3Iuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24tbWVudS5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19iYWRnZS5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19idXR0b24tZ3JvdXAuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2FsbG91dC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jYXJkLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Nsb3NlLWJ1dHRvbi5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZW51LnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUtaWNvbi5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcmlsbGRvd24uc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24uc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24tbWVudS5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXNwb25zaXZlLWVtYmVkLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2xhYmVsLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lZGlhLW9iamVjdC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19vZmYtY2FudmFzLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29yYml0LnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3BhZ2luYXRpb24uc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcHJvZ3Jlc3MtYmFyLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3NsaWRlci5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zdGlja3kuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcmV2ZWFsLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N3aXRjaC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190YWJsZS5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190YWJzLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RodW1ibmFpbC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190aXRsZS1iYXIuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9vbHRpcC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190b3AtYmFyLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxvYXQuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2xheW91dC5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX3RoZW1lcy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvbWl4aW5zLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mb3VuZGF0aW9uLW92ZXJyaWRlcy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2FuaW1hdGlvbi5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZm9ybXMuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL21hcmtkb3duLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvQXBwLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvY2FyZHMvQmVuZWZpY2lhcnlTZWxlY3Rvci5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2NhcmRzL0NvbW1lbnQuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9jYXJkcy9NYXJrZG93blZpZXdlci5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2NhcmRzL1Bvc3RTdW1tYXJ5LnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvY2FyZHMvUG9zdEZ1bGwuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9jYXJkcy9Qb3N0c0xpc3Quc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9jYXJkcy9Ob3RpZmljYXRpb25zTGlzdC5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL0ljb24uc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9Mb2FkaW5nSW5kaWNhdG9yLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvZWxlbWVudHMvVXNlcnBpYy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1VzZXJwaWNJbmZvV3JhcHBlci5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1ZvdGluZy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL0Zvcm1hdHRlZEFzc2V0LnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvZWxlbWVudHMvUmVwbHlFZGl0b3Iuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9TbGF0ZUVkaXRvci5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL0Ryb3Bkb3duTWVudS5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1ZlcnRpY2FsTWVudS5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1ZvdGVzQW5kQ29tbWVudHMuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9UYWdMaXN0LnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvZWxlbWVudHMvUmVwdXRhdGlvbi5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1JlYmxvZy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1NoYXJlTWVudS5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL0F1dGhvci9zdHlsZXMuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9BdXRob3JEcm9wZG93bi5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1VzZXJOYW1lcy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1NvcnRPcmRlci9zdHlsZXMuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9FbGFzdGljU2VhcmNoSW5wdXQvc3R5bGVzLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvZWxlbWVudHMvSWNvbkJ1dHRvbi9zdHlsZXMuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9TdGVlbUxvZ28vc3R5bGVzLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvZWxlbWVudHMvU3RlZW1NYXJrZXQuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9TYW5pdGl6ZWRMaW5rL3N0eWxlcy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL0Ryb3Bkb3duLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvZWxlbWVudHMvTm90aWNlcy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1Bvc3RDYXRlZ29yeUJhbm5lci5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL0ZsYWdCdXR0b24uc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9WaXN1YWxFZGl0b3Iuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9FbWJlZGRlZFBsYXllcnMvZ2lzdC1kYXJrLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvbW9kdWxlcy9IZWFkZXIvc3R5bGVzLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvbW9kdWxlcy9Mb2dpbkZvcm0uc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9tb2R1bGVzL1NpZGVQYW5lbC9zdHlsZXMuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9tb2R1bGVzL1NldHRpbmdzLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvbW9kdWxlcy9Vc2VyV2FsbGV0LnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvbW9kdWxlcy9Qb3N0QWR2YW5jZWRTZXR0aW5ncy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL21vZHVsZXMvTW9kYWxzLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvbW9kdWxlcy9FeHRlcm5hbExpbmtXYXJuaW5nLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvcGFnZXMvUG9zdHNJbmRleC5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL3BhZ2VzL1RvcGljcy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL3BhZ2VzL1Bvc3Quc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9wYWdlcy9Qcml2YWN5LnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvcGFnZXMvVG9zLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvcGFnZXMvVXNlclByb2ZpbGUuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9wYWdlcy9UYWdzSW5kZXguc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9wYWdlcy9XZWxjb21lLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvcGFnZXMvQWJvdXQuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9wYWdlcy9Db21tdW5pdGllc0luZGV4LnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvcGFnZXMvQ29tbXVuaXR5Um9sZXMuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9wYWdlcy9SZXdhcmRzLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvcGFnZXMvTGlzdE1hbmFnZW1lbnQuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9yZWFjdC10YWJzL3N0eWxlL3JlYWN0LXRhYnMuY3NzP3VuZGVmaW5lZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcbkBpbXBvcnQgXCIuL2ZvdW5kYXRpb24tc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJ+Zm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb25cIjtcblxuQGluY2x1ZGUgZm91bmRhdGlvbi1ldmVyeXRoaW5nKHRydWUpO1xuXG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuL21peGluc1wiO1xuQGltcG9ydCBcIi4vbGF5b3V0XCI7XG5AaW1wb3J0IFwiLi90aGVtZXNcIjtcblxuQGltcG9ydCBcIi4vZm91bmRhdGlvbi1vdmVycmlkZXNcIjtcblxuQGltcG9ydCAnLi9hbmltYXRpb24nO1xuXG5AaW1wb3J0IFwiLi9mb250c1wiO1xuQGltcG9ydCBcIi4vZm9ybXNcIjtcblxuQGltcG9ydCBcIi4vbWFya2Rvd25cIjtcbkBpbXBvcnQgXCJzcmMvYXBwL2NvbXBvbmVudHMvYWxsXCI7XG5cbi8qIFNtYWxsIG9ubHkgKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICBib2R5IHtcbiAgICBmb250LXNpemU6IDg2JTtcbiAgfVxufVxuXG4vKiBNZWRpdW0gb25seSAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICBib2R5IHtcbiAgICBmb250LXNpemU6IDkyJTtcbiAgfVxufVxuXG5hLCBwYXRoLCBjaXJjbGUge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5LCBmaWxsLCBzdHJva2UgLjNzIGVhc2UgMHM7XG59XG5cbi5zcGFjZS1yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogMC40cmVtO1xufVxuXG4uY2xlYXItcmlnaHQge1xuICBjbGVhcjogcmlnaHQ7XG59XG5cbi5jbGVhci1sZWZ0IHtcbiAgY2xlYXI6IGxlZnQ7XG59XG5cbi5jbGVhci1ib3RoIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5zdHJpa2V0aHJvdWdoIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG59XG5cbi51cHBlcmNhc2UsIGxhYmVsIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLndoaXN0bGUtdmlldyB7XG4gICAgLndoaXN0bGUtaGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG5cblxuLnNlY29uZGFyeSB7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICB9XG4gIGZvbnQtc2l6ZTogOTAlO1xuICBhIHtcbiAgICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgICBjb2xvcjogJGRhcmstZ3JheTtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgIH1cbiAgICA6aG92ZXIge1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbi5idXR0b24uaG9sbG93Lm5vLWJvcmRlciB7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5idXR0b24uc2xpbSB7XG4gIHBhZGRpbmc6IDVweDtcbiAgbWFyZ2luOiA1cHg7XG59XG5cbkBrZXlmcmFtZXMgbG9hZGluZyB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5cbi5tYXJnaW5MZWZ0MXJlbSB7XG4gIG1hcmdpbi1sZWZ0OiAxcmVtO1xufVxuXG4uTm90Rm91bmQge1xuICB3aWR0aDogNjQwcHg7XG4gIG1hcmdpbi10b3A6IDJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvLyBzbWFsbCBvbmx5XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgd2lkdGg6IDM0MHB4O1xuICB9XG59XG5cbi5Ob3RGb3VuZF9fbWVudSB7XG4gdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxpIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDElO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgIH1cbiAgICBsaTphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiIHxcIjtcbiAgICB9XG4gICAgbGk6bGFzdC1jaGlsZDphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxufVxuXG4uTm90Rm91bmRfX2hlYWRlciB7XG4gIG1hcmdpbi10b3A6IDFlbTtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgLm5vUHJpbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIGxpbmUtaGVpZ2h0OiAxLjIgIWltcG9ydGFudDtcbn1cblxuLmMtc2lkZWJhciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDI0MHB4O1xuICBmb250LWZhbWlseTogXCJTb3VyY2UgU2FucyBQcm9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAmX19tb2R1bGUge1xuICAgICAgcGFkZGluZzogMS41ZW0gMmVtO1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ21vZHVsZUJhY2tncm91bmRDb2xvcicpO1xuICAgICAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgfVxuICB9XG59XG5cbi50aGVtZS1kYXJrIC5jLXNpZGViYXJfX2l0ZW0ge1xuICBhIHtcbiAgICBjb2xvcjogd2hpdGU7XG5cbiAgICBzdmcge1xuICAgICAgZmlsbDogd2hpdGU7XG4gICAgfVxuICB9XG59XG5cblxuXG4ucGhpc2h5IHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBjb2xvcjogcmVkO1xufVxuXG4ucGFnZXIge2xpc3Qtc3R5bGU6IG5vbmV9XG5cbmFbcmVsPVwibm9yZWZlcnJlciBub29wZW5lclwiXTphZnRlcixcbmFbcmVsPVwibm9mb2xsb3cgbm9yZWZlcnJlciBub29wZW5lclwiXTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDsgdXRmOCwgPHN2ZyBoZWlnaHQ9XCIxMDI0XCIgd2lkdGg9XCI3NjhcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk02NDAgNzY4SDEyOFYyNTcuOTA1OTk5OTk5OTk5OTVMMjU2IDI1NlYxMjhIMHY3NjhoNzY4VjU3Nkg2NDBWNzY4ek0zODQgMTI4bDEyOCAxMjhMMzIwIDQ0OGwxMjggMTI4IDE5Mi0xOTIgMTI4IDEyOFYxMjhIMzg0elwiLz48L3N2Zz4nKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMC42ZW07XG4gIGhlaWdodDogMC43NWVtO1xuICB0b3A6IDAuMDVlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAwLjJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjJlbTtcbiAgb3BhY2l0eTogLjU7XG59XG5cbi5Qb3N0RnVsbF9fYm9keSBhW3JlbD1cIm5vcmVmZXJyZXIgbm9vcGVuZXJcIl06YWZ0ZXIsXG4uUG9zdEZ1bGxfX2JvZHkgYVtyZWw9XCJub2ZvbGxvdyBub3JlZmVycmVyIG5vb3BlbmVyXCJdOmFmdGVyIHtcbiAgLy8gJGNvbG9yLXRleHQtZ3JheVxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDsgdXRmOCwgPHN2ZyBoZWlnaHQ9XCIxMDI0XCIgd2lkdGg9XCI3NjhcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk02NDAgNzY4SDEyOFYyNTcuOTA1OTk5OTk5OTk5OTVMMjU2IDI1NlYxMjhIMHY3NjhoNzY4VjU3Nkg2NDBWNzY4ek0zODQgMTI4bDEyOCAxMjhMMzIwIDQ0OGwxMjggMTI4IDE5Mi0xOTIgMTI4IDEyOFYxMjhIMzg0elwiIGZpbGw9XCIlMjM3ODgxODdcIi8+PC9zdmc+Jyk7XG59XG5cbi5hZmZpbGlhdGlvbiB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWFyZ2luOiAwIDAuMnJlbTtcbiAgcGFkZGluZzogMCAwLjJyZW0gMC4wNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4zcmVtO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0aGVtZWQoJ2NvbG9yQWNjZW50Jyk7XG4gICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gIH1cbiAgLmFmZmlsaWF0aW9uLWVkaXQge1xuICAgIC5JY29uIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cbn1cblxuLmFmZmlsaWF0aW9uLWVkaXQge1xuICAuSWNvbiB7XG4gICAgbWFyZ2luOiAwIDAuMjVlbTtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgfVxuICB9XG59XG5cbi51c2VyX3JvbGUge1xuICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogZ3JheTtcbiAgICBtYXJnaW46IDAgMC4yZW07XG59XG5cbi5hY2NvdW50X3dhcm4ge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiByZWQ7XG59XG5cbi5wb2ludGVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4iLCIvKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbiAqIFZlcnNpb24gNi4zLjFcbiAqIGZvdW5kYXRpb24uenVyYi5jb21cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG5cbi8vIERlcGVuZGVuY2llc1xuQGltcG9ydCAnLi4vX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvbWlzc2luZy1kZXBlbmRlbmNpZXMnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL3RydWUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcHVyZ2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVtb3ZlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlcGxhY2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvdG8tbGlzdCc7XG5cbi8vIFNldHRpbmdzXG4vLyBpbXBvcnQgeW91ciBvd24gYHNldHRpbmdzYCBoZXJlIG9yXG4vLyBpbXBvcnQgYW5kIG1vZGlmeSB0aGUgZGVmYXVsdCBzZXR0aW5ncyB0aHJvdWdoXG4vLyBAaW1wb3J0ICdzZXR0aW5ncy9zZXR0aW5ncyc7XG5cbi8vIFNhc3MgdXRpbGl0aWVzXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLyBHbG9iYWwgdmFyaWFibGVzIGFuZCBzdHlsZXNcbkBpbXBvcnQgJ2dsb2JhbCc7XG5cbi8vIENvbXBvbmVudHNcbkBpbXBvcnQgJ2dyaWQvZ3JpZCc7XG5AaW1wb3J0ICd0eXBvZ3JhcGh5L3R5cG9ncmFwaHknO1xuQGltcG9ydCAnZm9ybXMvZm9ybXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy92aXNpYmlsaXR5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxvYXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24tZ3JvdXAnO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JhZGdlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYWxsb3V0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FyZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Nsb3NlLWJ1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2RyaWxsZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZsZXgnO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXNwb25zaXZlLWVtYmVkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbGFiZWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZWRpYS1vYmplY3QnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudS1pY29uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb2ZmLWNhbnZhcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL29yYml0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcGFnaW5hdGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Byb2dyZXNzLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3JldmVhbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NsaWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N0aWNreSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N3aXRjaCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYmxlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFicyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RpdGxlLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RvcC1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90aHVtYm5haWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sdGlwJztcbkBpbXBvcnQgJ3Byb3RvdHlwZS9wcm90b3R5cGUnO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1ldmVyeXRoaW5nKFxuICAkZmxleDogZmFsc2UsXG4gICRwcm90b3R5cGU6IGZhbHNlXG4pIHtcbiAgQGlmICRmbGV4IHtcbiAgICAkZ2xvYmFsLWZsZXhib3g6IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcbiAgQGlmIG5vdCAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcbiAgfVxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXR5cG9ncmFwaHk7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b24tZ3JvdXA7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FsbG91dDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYXJkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXZlYWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3dpdGNoO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGh1bWJuYWlsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRpdGxlLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG5cbiAgQGlmICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcztcbiAgfVxuXG4gIEBpZiAkcHJvdG90eXBlIHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1jbGFzc2VzO1xuICB9XG59XG4iLCIvLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHRoZSBub3JtYWxpemUoKSBtaXhpbi5cbkBmdW5jdGlvbiBfbm9ybWFsaXplLWluY2x1ZGUoJHNlY3Rpb24sICRleGNsdWRlOiBudWxsKSB7XG4gIC8vIEluaXRpYWxpemUgdGhlIGdsb2JhbCB2YXJpYWJsZXMgbmVlZGVkIGJ5IHRoaXMgZnVuY3Rpb24uXG4gIEBpZiBub3QgZ2xvYmFsX3ZhcmlhYmxlX2V4aXN0cyhfbm9ybWFsaXplLWluY2x1ZGUpIHtcbiAgICAkX25vcm1hbGl6ZS1pbmNsdWRlOiAoKSAhZ2xvYmFsO1xuICAgICRfbm9ybWFsaXplLWV4Y2x1ZGU6ICgpICFnbG9iYWw7XG4gIH1cbiAgLy8gU2luY2Ugd2UgYXJlIGdpdmVuIDIgcGFyYW1ldGVycywgc2V0IHRoZSBnbG9iYWwgdmFyaWFibGVzLlxuICBAaWYgJGV4Y2x1ZGUgIT0gbnVsbCB7XG4gICAgJGluY2x1ZGU6ICRzZWN0aW9uO1xuICAgIC8vIFNhc3MgZG9lc24ndCBoYXZlIHN0YXRpYyB2YXJpYWJsZXMsIHNvIHRoZSB3b3JrLWFyb3VuZCBpcyB0byBzdHVmZiB0aGVzZVxuICAgIC8vIHZhbHVlcyBpbnRvIGdsb2JhbCB2YXJpYWJsZXMgc28gd2UgY2FuIGFjY2VzcyB0aGVtIGluIGZ1dHVyZSBjYWxscy5cbiAgICAkX25vcm1hbGl6ZS1pbmNsdWRlOiBpZih0eXBlLW9mKCRpbmNsdWRlKSA9PSAnbGlzdCcsICRpbmNsdWRlLCAoJGluY2x1ZGUpKSAhZ2xvYmFsO1xuICAgICRfbm9ybWFsaXplLWV4Y2x1ZGU6IGlmKHR5cGUtb2YoJGV4Y2x1ZGUpID09ICdsaXN0JywgJGV4Y2x1ZGUsICgkZXhjbHVkZSkpICFnbG9iYWw7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgJHNlY3Rpb24gaXMgaW4gdGhlICRpbmNsdWRlIGxpc3QuXG4gIEBpZiBpbmRleCgkX25vcm1hbGl6ZS1pbmNsdWRlLCAkc2VjdGlvbikge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICAvLyBJZiAkaW5jbHVkZSBpcyBzZXQgdG8gKGFsbCksIG1ha2Ugc3VyZSAkc2VjdGlvbiBpcyBub3QgaW4gJGV4Y2x1ZGUuXG4gIEBlbHNlIGlmIG5vdCBpbmRleCgkX25vcm1hbGl6ZS1leGNsdWRlLCAkc2VjdGlvbikgYW5kIGluZGV4KCRfbm9ybWFsaXplLWluY2x1ZGUsIGFsbCkge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplKCRpbmNsdWRlOiAoYWxsKSwgJGV4Y2x1ZGU6ICgpKSB7XG4gIC8vIEluaXRpYWxpemUgdGhlIGhlbHBlciBmdW5jdGlvbiBieSBwYXNzaW5nIGl0IHRoaXMgbWl4aW4ncyBwYXJhbWV0ZXJzLlxuICAkaW5pdDogX25vcm1hbGl6ZS1pbmNsdWRlKCRpbmNsdWRlLCAkZXhjbHVkZSk7XG5cbiAgLy8gSWYgd2UndmUgY3VzdG9taXplZCBhbnkgZm9udCB2YXJpYWJsZXMsIHdlJ2xsIG5lZWQgZXh0cmEgcHJvcGVydGllcy5cbiAgQGlmICRiYXNlLWZvbnQtc2l6ZSAhPSAxNnB4XG4gICAgb3IgJGJhc2UtbGluZS1oZWlnaHQgIT0gMjRweFxuICAgIG9yICRiYXNlLXVuaXQgIT0gJ2VtJ1xuICAgIG9yICRoMS1mb250LXNpemUgIT0gMiAgICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoMi1mb250LXNpemUgIT0gMS41ICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoMy1mb250LXNpemUgIT0gMS4xNyAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNC1mb250LXNpemUgIT0gMSAgICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNS1mb250LXNpemUgIT0gMC44MyAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNi1mb250LXNpemUgIT0gMC42NyAqICRiYXNlLWZvbnQtc2l6ZSB7XG4gICAgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG06IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIC8qISBub3JtYWxpemUtc2NzcyB8IE1JVC9HUEx2MiBMaWNlbnNlIHwgYml0Lmx5L25vcm1hbGl6ZS1zY3NzICovXG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShkb2N1bWVudCkge1xuICAgIC8qIERvY3VtZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIENoYW5nZSB0aGUgZGVmYXVsdCBmb250IGZhbWlseSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMy4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxuICAgICAqICAgIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbiAgICAgKi9cblxuICAgIGh0bWwge1xuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5OyAvKiAxICovXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICAvLyBDb3JyZWN0IG9sZCBicm93c2VyIGJ1ZyB0aGF0IHByZXZlbnRlZCBhY2Nlc3NpYmxlIHJlc2l6aW5nIG9mIHRleHRcbiAgICAgICAgLy8gd2hlbiByb290IGZvbnQtc2l6ZSBpcyBzZXQgd2l0aCBweCBvciBlbS5cbiAgICAgICAgZm9udC1zaXplOiAoJGJhc2UtZm9udC1zaXplIC8gMTZweCkgKiAxMDAlO1xuICAgICAgICBsaW5lLWhlaWdodDogKCRiYXNlLWxpbmUtaGVpZ2h0IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTsgLyogMiAqL1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMiAqL1xuICAgICAgfVxuICAgICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDMgKi9cbiAgICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMyAqL1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoc2VjdGlvbnMpIHtcbiAgICAvKiBTZWN0aW9uc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGJvZHkge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgYXJ0aWNsZSxcbiAgICBhc2lkZSxcbiAgICBmb290ZXIsXG4gICAgaGVhZGVyLFxuICAgIG5hdixcbiAgICBzZWN0aW9uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAgICAgKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgaDEge1xuICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDEtZm9udC1zaXplKTtcbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDEtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgLyogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMuICovXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDEtZm9udC1zaXplKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbWFyZ2luOiAwLjY3ZW0gMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgaDIge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoMi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgyLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDItZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDMge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoMy1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgzLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDMtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDQge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNC1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg0LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDQtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNS1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg1LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDUtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDYge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg2LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDYtZm9udC1zaXplKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGdyb3VwaW5nKSB7XG4gICAgLyogR3JvdXBpbmcgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgLyoqXG4gICAgICAgKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICovXG5cbiAgICAgIGJsb2NrcXVvdGUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgJGluZGVudC1hbW91bnQpO1xuICAgICAgfVxuXG4gICAgICBkbCxcbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCk7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogVHVybiBvZmYgbWFyZ2lucyBvbiBuZXN0ZWQgbGlzdHMuXG4gICAgICAgKi9cblxuICAgICAgb2wsXG4gICAgICB1bCB7XG4gICAgICAgIG9sLFxuICAgICAgICB1bCB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGRkIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cblxuICAgICAgb2wsXG4gICAgICB1bCB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwICRpbmRlbnQtYW1vdW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgZmlnY2FwdGlvbixcbiAgICBmaWd1cmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxuICAgICAqL1xuXG4gICAgZmlndXJlIHtcbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAkaW5kZW50LWFtb3VudCk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIG1hcmdpbjogMWVtICRpbmRlbnQtYW1vdW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gICAgICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gICAgICovXG5cbiAgICBociB7XG4gICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICAgICAgaGVpZ2h0OiAwOyAvKiAxICovXG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICAgICAqL1xuXG4gICAgbWFpbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgLyoqXG4gICAgICAgKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICovXG5cbiAgICAgIHAsXG4gICAgICBwcmUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBwcmUge1xuICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gICAgICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUobGlua3MpIHtcbiAgICAvKiBMaW5rc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gICAgICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICAgICAqL1xuXG4gICAgYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogMSAqL1xuICAgICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0czsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICAgICAqIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuXG4gICAgYTphY3RpdmUsXG4gICAgYTpob3ZlciB7XG4gICAgICBvdXRsaW5lLXdpZHRoOiAwO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUodGV4dCkge1xuICAgIC8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBGaXJlZm94IDM5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYWJiclt0aXRsZV0ge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICAgICAqL1xuXG4gICAgYixcbiAgICBzdHJvbmcge1xuICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGIsXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBjb2RlLFxuICAgIGtiZCxcbiAgICBzYW1wIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gICAgICovXG5cbiAgICBkZm4ge1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIG1hcmsge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc21hbGwge1xuICAgICAgZm9udC1zaXplOiA4MCU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gICAgICogYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc3ViLFxuICAgIHN1cCB7XG4gICAgICBmb250LXNpemU6IDc1JTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIH1cblxuICAgIHN1YiB7XG4gICAgICBib3R0b206IC0wLjI1ZW07XG4gICAgfVxuXG4gICAgc3VwIHtcbiAgICAgIHRvcDogLTAuNWVtO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZW1iZWRkZWQpIHtcbiAgICAvKiBFbWJlZGRlZCBjb250ZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgYXVkaW8sXG4gICAgdmlkZW8ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gICAgICovXG5cbiAgICBhdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGhlaWdodDogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIGltZyB7XG4gICAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5cbiAgICBzdmc6bm90KDpyb290KSB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZm9ybXMpIHtcbiAgICAvKiBGb3Jtc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGJ1dHRvbixcbiAgICBpbnB1dCxcbiAgICBvcHRncm91cCxcbiAgICBzZWxlY3QsXG4gICAgdGV4dGFyZWEge1xuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5OyAvKiAxICovXG4gICAgICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAoJGJhc2UtbGluZS1oZWlnaHQgLyAkYmFzZS1mb250LXNpemUpICogMWVtOyAvKiAxICovXG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gICAgICB9XG4gICAgICBtYXJnaW46IDA7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgICAgKi9cblxuICAgIGJ1dHRvbiB7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAgICAgKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgc2VsZWN0IHsgLyogMSAqL1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gICAgICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgaHRtbCBbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuICAgIFt0eXBlPVwicmVzZXRcIl0sXG4gICAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgICB9XG5cbiAgICBidXR0b24sXG4gICAgW3R5cGU9XCJidXR0b25cIl0sXG4gICAgW3R5cGU9XCJyZXNldFwiXSxcbiAgICBbdHlwZT1cInN1Ym1pdFwiXSB7XG5cbiAgICAgIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAgICAgICAqL1xuXG4gICAgICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAgICAgICAqL1xuXG4gICAgICAmOi1tb3otZm9jdXNyaW5nIHtcbiAgICAgICAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gICAgICovXG5cbiAgICBpbnB1dCB7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gICAgICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gICAgW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgICBwYWRkaW5nOiAwOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICAgICAqL1xuXG4gICAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICAgICAqL1xuXG4gICAgW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG5cbiAgICAgIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAgICAgICAqL1xuXG4gICAgICAmOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgICAgIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2UgdGhlIGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGZpZWxkc2V0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgICBtYXJnaW46IDAgMnB4O1xuICAgICAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICAgICAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAgICAgKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIGxlZ2VuZCB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gICAgICBwYWRkaW5nOiAwOyAvKiAzICovXG4gICAgICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqIDIuIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gICAgICovXG5cbiAgICBwcm9ncmVzcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gICAgICovXG5cbiAgICB0ZXh0YXJlYSB7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGludGVyYWN0aXZlKSB7XG4gICAgLyogSW50ZXJhY3RpdmVcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gICAgICovXG5cbiAgICBkZXRhaWxzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc3VtbWFyeSB7XG4gICAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIG1lbnUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIC8qXG4gICAgICAgICAqIDEuIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW4uXG4gICAgICAgICAqIDIuIFNldCBjb25zaXN0ZW50IHNwYWNlIGZvciB0aGUgbGlzdCBzdHlsZSBpbWFnZS5cbiAgICAgICAgICovXG5cbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApOyAvKiAxICovXG4gICAgICAgIHBhZGRpbmc6IDAgMCAwICRpbmRlbnQtYW1vdW50OyAvKiAyICovXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFR1cm4gb2ZmIG1hcmdpbnMgb24gbmVzdGVkIGxpc3RzLlxuICAgICAgICAgKi9cblxuICAgICAgICBtZW51ICYsXG4gICAgICAgIG9sICYsXG4gICAgICAgIHVsICYge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoc2NyaXB0aW5nKSB7XG4gICAgLyogU2NyaXB0aW5nXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgY2FudmFzIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cblxuICAgIHRlbXBsYXRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShoaWRkZW4pIHtcbiAgICAvKiBIaWRkZW5cbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICAgICAqL1xuXG4gICAgW2hpZGRlbl0ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBWZXJ0aWNhbCBSaHl0aG1cbi8vXG4vLyBUaGlzIGlzIHRoZSBtaW5pbWFsIGFtb3VudCBvZiBjb2RlIG5lZWRlZCB0byBjcmVhdGUgdmVydGljYWwgcmh5dGhtIGluIG91clxuLy8gQ1NTLiBJZiB5b3UgYXJlIGxvb2tpbmcgZm9yIGEgcm9idXN0IHNvbHV0aW9uLCBsb29rIGF0IHRoZSBleGNlbGxlbnQgVHlwZXlcbi8vIGxpYnJhcnkuIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pwdGFyYW50by90eXBleVxuXG5AZnVuY3Rpb24gbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplLCAkdW5pdDogJGJhc2UtdW5pdCkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9IHB4IHtcbiAgICBAZXJyb3IgXCJUaGUgbm9ybWFsaXplIHZlcnRpY2FsLXJoeXRobSBtb2R1bGUgb25seSBzdXBwb3J0cyBweCBpbnB1dHMuIFRoZSB0eXBleSBsaWJyYXJ5IGlzIGJldHRlci5cIjtcbiAgfVxuICBAaWYgJHVuaXQgPT0gcmVtIHtcbiAgICBAcmV0dXJuICgkdmFsdWUgLyAkYmFzZS1mb250LXNpemUpICogMXJlbTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSBlbSB7XG4gICAgQHJldHVybiAoJHZhbHVlIC8gJHJlbGF0aXZlLXRvKSAqIDFlbTtcbiAgfVxuICBAZWxzZSB7IC8vICR1bml0ID09IHB4XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbn1cblxuQG1peGluIG5vcm1hbGl6ZS1mb250LXNpemUoJHZhbHVlLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdweCcge1xuICAgIEBlcnJvciBcIm5vcm1hbGl6ZS1mb250LXNpemUoKSBvbmx5IHN1cHBvcnRzIHB4IGlucHV0cy4gVGhlIHR5cGV5IGxpYnJhcnkgaXMgYmV0dGVyLlwiO1xuICB9XG4gIGZvbnQtc2l6ZTogbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10byk7XG59XG5cbkBtaXhpbiBub3JtYWxpemUtcmh5dGhtKCRwcm9wZXJ0eSwgJHZhbHVlcywgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUpIHtcbiAgJHZhbHVlLWxpc3Q6ICR2YWx1ZXM7XG4gICRzZXA6IHNwYWNlO1xuICBAaWYgdHlwZS1vZigkdmFsdWVzKSA9PSAnbGlzdCcge1xuICAgICRzZXA6IGxpc3Qtc2VwYXJhdG9yKCR2YWx1ZXMpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkdmFsdWUtbGlzdDogYXBwZW5kKCgpLCAkdmFsdWVzKTtcbiAgfVxuXG4gICRub3JtYWxpemVkLXZhbHVlczogKCk7XG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWUtbGlzdCB7XG4gICAgQGlmIHVuaXRsZXNzKCR2YWx1ZSkgYW5kICR2YWx1ZSAhPSAwIHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogbm9ybWFsaXplLXJoeXRobSgkYmFzZS1saW5lLWhlaWdodCwgJHJlbGF0aXZlLXRvKTtcbiAgICB9XG4gICAgJG5vcm1hbGl6ZWQtdmFsdWVzOiBhcHBlbmQoJG5vcm1hbGl6ZWQtdmFsdWVzLCAkdmFsdWUsICRzZXApO1xuICB9XG4gICN7JHByb3BlcnR5fTogJG5vcm1hbGl6ZWQtdmFsdWVzO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplLW1hcmdpbigkdmFsdWVzLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKG1hcmdpbiwgJHZhbHVlcywgJHJlbGF0aXZlLXRvKTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkZm9udC1zaXplLCAkbWluLWxpbmUtcGFkZGluZzogMnB4KSB7XG4gICRsaW5lczogY2VpbCgkZm9udC1zaXplIC8gJGJhc2UtbGluZS1oZWlnaHQpO1xuICAvLyBJZiBsaW5lcyBhcmUgY3JhbXBlZCBpbmNsdWRlIHNvbWUgZXh0cmEgbGVhZGluZy5cbiAgQGlmICgkbGluZXMgKiAkYmFzZS1saW5lLWhlaWdodCAtICRmb250LXNpemUpIDwgKCRtaW4tbGluZS1wYWRkaW5nICogMikge1xuICAgICRsaW5lczogJGxpbmVzICsgMTtcbiAgfVxuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKGxpbmUtaGVpZ2h0LCAkbGluZXMsICRmb250LXNpemUpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIGZvcmNlLWF0dHJpYnV0ZS1uZXN0aW5nLCBmb3JjZS1wc2V1ZG8tbmVzdGluZywgbm8tY29sb3ItbGl0ZXJhbHMsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCBnbG9iYWxcbi8vLy9cblxuLy8vIEZvbnQgc2l6ZSBhdHRyaWJ1dGUgYXBwbGllZCB0byBgPGh0bWw+YCBhbmQgYDxib2R5PmAuIFdlIHVzZSAxMDAlIGJ5IGRlZmF1bHQgc28gdGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSB1c2VyJ3MgYnJvd3NlciBzZXR0aW5ncy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHdpZHRoIG9mIHlvdXIgc2l0ZS4gVXNlZCBieSB0aGUgZ3JpZCB0byBkZXRlcm1pbmUgcm93IHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBhbGwgdHlwZS4gYCRnbG9iYWwtbGluZWhlaWdodGAgaXMgMjRweCB3aGlsZSBgJGdsb2JhbC1mb250LXNpemVgIGlzIDE2cHhcbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbGluZWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JzIHVzZWQgZm9yIGJ1dHRvbnMsIGNhbGxvdXRzLCBsaW5rcywgZXRjLiBUaGVyZSBtdXN0IGFsd2F5cyBiZSBhIGNvbG9yIGNhbGxlZCBgcHJpbWFyeWAuXG4vLy8gQHR5cGUgTWFwXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIHByaW1hcnk6ICMxNzc5YmEsXG4gIHNlY29uZGFyeTogIzc2NzY3NixcbiAgc3VjY2VzczogIzNhZGI3NixcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNjYzRiMzcsXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbGlnaHQgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGxpZ2h0LWdyYXk6ICNlNmU2ZTYgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBtZWRpdW0gZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJG1lZGl1bS1ncmF5OiAjY2FjYWNhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgZGFyayBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZGFyay1ncmF5OiAjOGE4YThhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgYmxhY2sgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibGFjazogIzBhMGEwYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIHdoaXRlIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kd2hpdGU6ICNmZWZlZmUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIExpc3RcbiRib2R5LWZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vLyBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBhbnRpYWxpYXNlZCB0eXBlLCB1c2luZyB0aGUgYC13ZWJraXQtZm9udC1zbW9vdGhpbmdgIGFuZCBgLW1vei1vc3gtZm9udC1zbW9vdGhpbmdgIENTUyBwcm9wZXJ0aWVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIG1hcmdpbiBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcGFkZGluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBvc2l0aW9uaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIG5vcm1hbCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIGJvbGQgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgYSBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0ZXh0IGRpcmVjdGlvbiBvZiB0aGUgQ1NTLiBDYW4gYmUgZWl0aGVyIGBsdHJgIG9yIGBydGxgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0ciAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBmb3IgY29tcG9uZW50cyB0aGF0IHN1cHBvcnQgaXQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1mbGV4Ym94OiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZWQgcmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgcHJvdG90eXBlcyBpZiBhcHBsaWNhYmxlXG4vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50czogZmFsc2UgIWRlZmF1bHQ7XG5cbkBpZiBub3QgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICBAZXJyb3IgJ0luICRmb3VuZGF0aW9uLXBhbGV0dGUsIHlvdSBtdXN0IGhhdmUgYSBjb2xvciBuYW1lZCBcInByaW1hcnlcIi4nO1xufVxuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgdGV4dCBkaXJlY3Rpb25cbiRnbG9iYWwtbGVmdDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIHJpZ2h0LCBsZWZ0KTtcbiRnbG9iYWwtcmlnaHQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBsZWZ0LCByaWdodCk7XG5cbi8vLyBHbG9iYWwgdG9sZXJhbmNlIGZvciBjb2xvciBwaWNrIGNvbnRyYXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMCAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIGNvbG9yc1xuJHByaW1hcnktY29sb3I6IGdldC1jb2xvcihwcmltYXJ5KTtcbiRzZWNvbmRhcnktY29sb3I6IGdldC1jb2xvcihzZWNvbmRhcnkpO1xuJHN1Y2Nlc3MtY29sb3I6IGdldC1jb2xvcihzdWNjZXNzKTtcbiR3YXJuaW5nLWNvbG9yOiBnZXQtY29sb3Iod2FybmluZyk7XG4kYWxlcnQtY29sb3I6IGdldC1jb2xvcihhbGVydCk7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXMge1xuICBAaW5jbHVkZSAtemYtbm9ybWFsaXplO1xuXG4gIC8vIFRoZXNlIHN0eWxlcyBhcmUgYXBwbGllZCB0byBhIDxtZXRhPiB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdFxuICAuZm91bmRhdGlvbi1tcSB7XG4gICAgZm9udC1mYW1pbHk6ICcjey16Zi1icC1zZXJpYWxpemUoJGJyZWFrcG9pbnRzKX0nO1xuICB9XG5cbiAgaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gU2V0IGJveC1zaXppbmcgZ2xvYmFsbHkgdG8gaGFuZGxlIHBhZGRpbmcgYW5kIGJvcmRlciB3aWR0aHNcbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgIEBpZiAoJGJvZHktYW50aWFsaWFzZWQpIHtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgYXJlIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICBzZWxlY3Qge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWlkc1xuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG5cbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gIC8vIFByZXZlbnQgdGV4dCBvdmVyZmxvdyBvbiBwcmVcbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIE1ha2UgcmVzZXQgaW5oZXJpdCBmb250LWZhbWlseSBpbnN0ZWFkIG9mIHNldHRpbmdzIHNhbnMtc2VyaWZcbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgY2xhc3NlcyB0byBzaG93L2hpZGUgZWxlbWVudHMgaW4gSmF2YVNjcmlwdFxuICAuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gTG9hZHMgbm9ybWFsaXplLmNzcy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiAtemYtbm9ybWFsaXplIHtcbiAgQGluY2x1ZGUgbm9ybWFsaXplKCk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBDU1MgdHJpYW5nbGUsIHdoaWNoIGNhbiBiZSB1c2VkIGZvciBkcm9wZG93biBhcnJvd3MsIGRyb3Bkb3duIHBpcHMsIGFuZCBtb3JlLiBVc2UgdGhpcyBtaXhpbiBpbnNpZGUgYSBgJjo6YmVmb3JlYCBvciBgJjo6YWZ0ZXJgIHNlbGVjdG9yLCB0byBhdHRhY2ggdGhlIHRyaWFuZ2xlIHRvIGFuIGV4aXN0aW5nIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRyaWFuZ2xlLXNpemUgLSBXaWR0aCBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHRyaWFuZ2xlLWNvbG9yIC0gQ29sb3Igb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHRyaWFuZ2xlLWRpcmVjdGlvbiAtIERpcmVjdGlvbiB0aGUgdHJpYW5nbGUgcG9pbnRzLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuXG5AbWl4aW4gY3NzLXRyaWFuZ2xlKFxuICAkdHJpYW5nbGUtc2l6ZSxcbiAgJHRyaWFuZ2xlLWNvbG9yLFxuICAkdHJpYW5nbGUtZGlyZWN0aW9uXG4pIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG5cbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcblxuICBjb250ZW50OiAnJztcblxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gZG93bikge1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHVwKSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIG1lbnUgaWNvbiB3aXRoIGEgc2V0IHdpZHRoLCBoZWlnaHQsIG51bWJlciBvZiBiYXJzLCBhbmQgY29sb3JzLiBUaGUgbWl4aW4gdXNlcyB0aGUgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIHRoZSBiYXJzIHRvIGRldGVybWluZSBzcGFjaW5nLiA8ZGl2IGNsYXNzPVwiZG9jcy1leGFtcGxlLWJ1cmdlclwiPjwvZGl2PlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3ItaG92ZXIgWyRkYXJrLWdyYXldIC0gQ29sb3IgdG8gdXNlIHdoZW4gdGhlIGljb24gaXMgaG92ZXJlZCBvdmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzIwcHhdIC0gV2lkdGggb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWzE2cHhdIC0gSGVpZ2h0IG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2VpZ2h0IFsycHhdIC0gSGVpZ2h0IG9mIGluZGl2aWR1YWwgYmFycyBpbiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhcnMgWzNdIC0gTnVtYmVyIG9mIGJhcnMgaW4gdGhlIGljb24uXG5AbWl4aW4gaGFtYnVyZ2VyKFxuICAkY29sb3I6ICRibGFjayxcbiAgJGNvbG9yLWhvdmVyOiAkZGFyay1ncmF5LFxuICAkd2lkdGg6IDIwcHgsXG4gICRoZWlnaHQ6IDE2cHgsXG4gICR3ZWlnaHQ6IDJweCxcbiAgJGJhcnM6IDNcbikge1xuICAvLyBib3gtc2hhZG93IENTUyBvdXRwdXRcbiAgJHNoYWRvdzogKCk7XG4gICRob3Zlci1zaGFkb3c6ICgpO1xuXG4gIC8vIFNwYWNpbmcgYmV0d2VlbiBiYXJzIGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIHRvdGFsIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiBlYWNoIGJhclxuICAkc3BhY2luZzogKCRoZWlnaHQgLSAoJHdlaWdodCAqICRiYXJzKSkgLyAoJGJhcnMgLSAxKTtcblxuICBAaWYgdW5pdCgkc3BhY2luZykgPT0gJ3B4JyB7XG4gICAgJHNwYWNpbmc6IGZsb29yKCRzcGFjaW5nKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgJHNoYWRvdzogYXBwZW5kKCRzaGFkb3csIDAgJG9mZnNldCAwICRjb2xvciwgY29tbWEpO1xuICB9XG5cbiAgLy8gSWNvbiBjb250YWluZXJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC8vIEljb24gYmFyc1xuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgICBjb250ZW50OiAnJzsgICAgXG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcbiAgJHJnYjogJ3JnYiUyOCN7cm91bmQocmVkKCRjb2xvcikpfSwgI3tyb3VuZChncmVlbigkY29sb3IpKX0sICN7cm91bmQoYmx1ZSgkY29sb3IpKX0lMjknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHdpZHRoPSczMicgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDMyIDI0Jz48cG9seWdvbiBwb2ludHM9JzAsMCAzMiwwIDE2LDI0JyBzdHlsZT0nZmlsbDogI3skcmdifSc+PC9wb2x5Z29uPjwvc3ZnPlwiKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjBcXDApIHtcbiAgICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA2MCUge1xuICAgICAgLy8gV2hpdGUgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBCbGFjayB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU1CSlJFRlVlTnJFbGxzT2hDQU1SVnN6QzlJbHpVN0tDbVZIVEpzb01XWU1VdHB5djlCZ2J1WFFCNVpTZGdCWVlZNHljZ0Jpdms4S1lGc1FNZk1pVFRCUDRvM25VekNLek9hYkxKYkx5Mi9nMzFldkdrQWdpblI0L1plZ0tINXFYM2JKQ3NjQTN0MHgza2dPNXRRRnloaEZmNTB4UnFGTGJ5TVVOSlF6Z3lqR1Mvd2dDcHZLcWtSQnB1V3JFNFY5ZCsxRTRkUFVYcUlnMTA3U1FPRS8yRFJReE13VER5Z0lJblZERVQ5VDNsQ29qLzZqL1ZDbUdqWk9sMmxLcFo4QUF3RFFQN3pJaW1ER0ZRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIHRoZSBtaWNybyBjbGVhcmZpeCBoYWNrIHBvcHVsYXJpemVkIGJ5IE5pY29sYXMgR2FsbGFnaGVyLiBJbmNsdWRlIHRoaXMgbWl4aW4gb24gYSBjb250YWluZXIgaWYgaXRzIGNoaWxkcmVuIGFyZSBhbGwgZmxvYXRlZCwgdG8gZ2l2ZSB0aGUgY29udGFpbmVyIGEgcHJvcGVyIGhlaWdodC5cbi8vLyBUaGUgY2xlYXJmaXggaXMgYXVnbWVudGVkIHdpdGggc3BlY2lmaWMgc3R5bGVzIHRvIHByZXZlbnQgYm9yZGVycyBpbiBmbGV4Ym94IGVudmlyb25tZW50c1xuLy8vIEBsaW5rIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrLyBNaWNybyBDbGVhcmZpeCBIYWNrXG4vLy8gQGxpbmsgaHR0cDovL2RhbmlzYWRlc2lnbmVyLmNvbS9ibG9nL2ZsZXhib3gtY2xlYXItZml4LXBzZXVkby1lbGVtZW50cy8gRmxleGJveCBmaXhcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vLy8gQWRkcyBDU1MgZm9yIGEgXCJxdWFudGl0eSBxdWVyeVwiIHNlbGVjdG9yIHRoYXQgYXV0b21hdGljYWxseSBzaXplcyBlbGVtZW50cyBiYXNlZCBvbiBob3cgbWFueSB0aGVyZSBhcmUgaW5zaWRlIGEgY29udGFpbmVyLlxuLy8vIEBsaW5rIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWNzcyBRdWFudGl0eSBRdWVyaWVzIGZvciBDU1Ncbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IC0gTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGV0ZWN0LiBUaGUgaGlnaGVyIHRoaXMgbnVtYmVyIGlzLCB0aGUgbW9yZSBDU1MgdGhhdCdzIHJlcXVpcmVkIHRvIGNvdmVyIGVhY2ggbnVtYmVyIG9mIGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gW2xpXSAtIFRhZyB0byB1c2UgZm9yIHNpYmxpbmcgc2VsZWN0b3JzLlxuQG1peGluIGF1dG8td2lkdGgoJG1heCwgJGVsZW06IGxpKSB7XG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJG1heCB7XG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQsXG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQgfiAjeyRlbGVtfSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgxIC8gJGkpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyB0aGUgZm9jdXMgcmluZyBhcm91bmQgYW4gZWxlbWVudCB3aGVuIGEgbW91c2UgaW5wdXQgaXMgZGV0ZWN0ZWQuXG5AbWl4aW4gZGlzYWJsZS1tb3VzZS1vdXRsaW5lIHtcbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddICYge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgc3RpbGwgYWNjZXNzaWJsZSB0byBrZXlib2FyZHMgYW5kIGFzc2lzdGl2ZSBkZXZpY2VzLlxuLy8vIEBsaW5rIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHkgSGlkaW5nIENvbnRlbnQgZm9yIEFjY2Vzc2liaWxpdHlcbi8vLyBAbGluayBodHRwOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDE2LzEwLzEzL2Nzcy1oaWRlLWFuZC1zZWVrL1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsMCwwLDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8vIFJldmVyc2VzIHRoZSBDU1Mgb3V0cHV0IGNyZWF0ZWQgYnkgdGhlIGBlbGVtZW50LWludmlzaWJsZSgpYCBtaXhpbi5cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBjbGlwLXBhdGg6IG5vbmU7XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiB0cnVlKSB7XG4gICRsaXN0OiAkYnJlYWtwb2ludC1jbGFzc2VzO1xuXG4gIEBpZiBub3QgJHNtYWxsIHtcbiAgICAkbGlzdDogc2wtcmVtb3ZlKCRsaXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCk7XG4gIH1cblxuICBAZWFjaCAkbmFtZSBpbiAkbGlzdCB7XG4gICAgJC16Zi1zaXplOiAkbmFtZSAhZ2xvYmFsO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSB0aGUgYEBjb250ZW50YCBwYXNzZWQgdG8gdGhlIG1peGluIHdpdGggYSB2YWx1ZSBgJC16Zi1icC12YWx1ZWAgcmVsYXRlZCB0byBhIGJyZWFrcG9pbnQsIGRlcGVuZGluZyBvbiB0aGUgYCRuYW1lYCBwYXJhbWV0ZXI6XG4vLy8gLSBGb3IgYSBzaW5nbGUgdmFsdWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGlzIHZhbHVlLlxuLy8vIC0gRm9yIGEgYnJlYWtwb2ludCBuYW1lLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAuXG4vLy8gLSBGb3IgXCJhdXRvXCIsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYCBhbmQgaXMgcGFzc2VkIHRvIGBAY29udGVudGAsIHdoaWNoIGlzIG1hZGUgcmVzcG9uc2l2ZSBmb3IgZWFjaCBicmVha3BvaW50IG9mIGAkbWFwYC5cbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkbmFtZSBbYXV0b10gLSBTaW5nbGUgdmFsdWUgb3IgYnJlYWtwb2ludCBuYW1lIHRvIHVzZS4gXCJhdXRvXCIgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBNYXAgb2YgYnJlYWtwb2ludHMgYW5kIHZhbHVlcyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLlxuQG1peGluIC16Zi1icmVha3BvaW50LXZhbHVlKFxuICAkbmFtZTogYXV0byxcbiAgJG1hcDogbnVsbFxuKSB7XG4gIEBpZiAkbmFtZSA9PSBhdXRvIGFuZCB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAvLyBcImF1dG9cIlxuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGspIHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJHYsICRtYXApIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gYnJlYWtwb2ludCBuYW1lXG4gICAgQGlmIHR5cGUtb2YoJG5hbWUpID09ICdzdHJpbmcnIHtcbiAgICAgICRuYW1lOiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkbmFtZSk7XG4gICAgfVxuXG4gICAgLy8gYnJlYWtwb2ludCB2YWx1ZVxuICAgICQtemYtYnAtdmFsdWU6ICRuYW1lICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsZXgtZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBmb3IgYSBmbGV4IGdyaWQgcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfExpc3R9ICRiZWhhdmlvciBbbnVsbF1cbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGZvciB0aGlzIHJvdy4gSWYgc2V0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpLCB0aGUgZ2xvYmFsIGNvbHVtbiBjb3VudCB3aWxsIGJlIHVzZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYmFzZSBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBwcmV2ZW50IGJhc2ljIHN0eWxlcyBmcm9tIGJlaW5nIG91dHB1dC4gVXNlZnVsIGlmIHlvdSdyZSBjYWxsaW5nIHRoaXMgbWl4aW4gb24gdGhlIHNhbWUgZWxlbWVudCB0d2ljZSwgYXMgaXQgcHJldmVudHMgZHVwbGljYXRlIENTUyBvdXRwdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucywgaW4gY2FzZSB0aGUgcm93IGlzIG5lc3RlZC4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBmbGV4LWdyaWQtcm93KFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICRzaXplOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmFzZTogdHJ1ZSxcbiAgJHdyYXA6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcbiAgJHdyYXA6IGlmKCR3cmFwLCB3cmFwLCBub3dyYXApO1xuXG4gIEBpZiBpbmRleCgkYmVoYXZpb3IsIG5lc3QpICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcnMpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKCRzaXplKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGJhc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgJHdyYXA7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zLCAkYmFzZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDYWxjdWxhdGVzIHRoZSBgZmxleGAgcHJvcGVydHkgZm9yIGEgZmxleCBncmlkIGNvbHVtbi4gSXQgYWNjZXB0cyBhbGwgb2YgdGhlIHNhbWUgdmFsdWVzIGFzIHRoZSBiYXNpYyBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIGFsb25nIHdpdGggdHdvIGV4dHJhczpcbi8vLyAgIC0gYGV4cGFuZGAgKHRoZSBkZWZhdWx0KSB3aWxsIG1ha2UgdGhlIGNvbHVtbiBleHBhbmQgdG8gZmlsbCBzcGFjZS5cbi8vLyAgIC0gYHNocmlua2Agd2lsbCBtYWtlIHRoZSBjb2x1bW4gY29udHJhY3QsIHNvIGl0IG9ubHkgdGFrZXMgdXAgdGhlIGhvcml6b250YWwgc3BhY2UgaXQgbmVlZHMuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uXG5AZnVuY3Rpb24gZmxleC1ncmlkLWNvbHVtbigkY29sdW1uczogZXhwYW5kKSB7XG4gICRmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuXG4gIEBpZiAkY29sdW1ucyA9PSBzaHJpbmsge1xuICAgICRmbGV4OiAwIDAgYXV0bztcbiAgfVxuICBAZWxzZSBpZiAkY29sdW1ucyAhPSBleHBhbmQge1xuICAgICRmbGV4OiAwIDAgZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG5cbiAgQHJldHVybiAkZmxleDtcbn1cblxuLy8vIENyZWF0ZXMgYSBjb2x1bW4gZm9yIGEgZmxleCBncmlkLiBCeSBkZWZhdWx0LCB0aGUgY29sdW1uIHdpbGwgc3RyZXRjaCB0byB0aGUgZnVsbCB3aWR0aCBvZiBpdHMgY29udGFpbmVyLCBidXQgdGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIHNpemluZyBjbGFzc2VzLCBvciBieSB1c2luZyB0aGUgYHVuc3RhY2tgIGNsYXNzIG9uIHRoZSBwYXJlbnQgZmxleCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZmxleC1ncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycyB3aWR0aC4gU2VlIHRoZSBgZ3JpZC1jb2x1bW4tZ3V0dGVyYCBtaXhpbi5cbkBtaXhpbiBmbGV4LWdyaWQtY29sdW1uKFxuICAkY29sdW1uczogZXhwYW5kLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIC8vIEJhc2UgcHJvcGVydGllc1xuICBAaW5jbHVkZSBmbGV4LWdyaWQtc2l6ZSgkY29sdW1ucyk7XG5cbiAgLy8gR3V0dGVyc1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlcnM6ICRndXR0ZXJzKTtcblxuICAvLyBmaXhlcyByZWNlbnQgQ2hyb21lIHZlcnNpb24gbm90IGxpbWl0aW5nIGNoaWxkIHdpZHRoXG4gIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM0OTM0NTg2L3doaXRlLXNwYWNlLW5vd3JhcC1hbmQtZmxleGJveC1kaWQtbm90LXdvcmstaW4tY2hyb21lXG4gIEBpZiAkY29sdW1ucyA9PSBleHBhbmQge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuICAvLyBtYXgtd2lkdGggZml4ZXMgSUUgMTAvMTEgbm90IHJlc3BlY3RpbmcgdGhlIGZsZXgtYmFzaXMgcHJvcGVydHlcbiAgQGlmICRjb2x1bW5zICE9IGV4cGFuZCBhbmQgJGNvbHVtbnMgIT0gc2hyaW5rIHtcbiAgICBtYXgtd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGJsb2NrIGdyaWQgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBjb2x1bW5zIHRvIGRpc3BsYXkgb24gZWFjaCByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciAtIFNlbGVjdG9yIHRvIHVzZSB0byB0YXJnZXQgY29sdW1ucyB3aXRoaW4gdGhlIHJvdy5cbkBtaXhpbiBmbGV4LWdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbidcbikge1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgPiAjeyRzZWxlY3Rvcn0ge1xuICAgICRwY3Q6IHBlcmNlbnRhZ2UoMS8kbik7XG5cbiAgICBmbGV4OiAwIDAgJHBjdDtcbiAgICBtYXgtd2lkdGg6ICRwY3Q7XG4gIH1cbn1cblxuLy8vIENoYW5nZXMgdGhlIHdpZHRoIGZsZXggZ3JpZCBjb2x1bW4uXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGZsZXgtZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBmbGV4LWdyaWQtc2l6ZSgkY29sdW1uczogbnVsbCkge1xuICAkY29sdW1uczogJGNvbHVtbnMgb3IgZXhwYW5kO1xuXG4gIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuXG4gIC8vIG1heC13aWR0aCBmaXhlcyBJRSAxMC8xMSBub3QgcmVzcGVjdGluZyB0aGUgZmxleC1iYXNpcyBwcm9wZXJ0eVxuICBAaWYgJGNvbHVtbnMgIT0gZXhwYW5kIGFuZCAkY29sdW1ucyAhPSBzaHJpbmsge1xuICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG59XG5cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC1ncmlkIHtcbiAgLy8gUm93XG4gIC5yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3c7XG5cbiAgICAvLyBOZXN0aW5nIGJlaGF2aW9yXG4gICAgJiAucm93IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3cobmVzdCwgJGJhc2U6IGZhbHNlKTtcblxuICAgICAgJi5jb2xsYXBzZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhwYW5kZWQgcm93XG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7IFxuICAgICAgXG4gICAgICAucm93IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCguZXhwYW5kZWQpIC5yb3cge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuICAgIH1cblxuICAgICYuY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVW5kbyBuZWdhdGl2ZSBtYXJnaW5zXG4gICAgLy8gRnJvbSBjb2xsYXBzZWQgY2hpbGRcbiAgICAmLmlzLWNvbGxhcHNlLWNoaWxkLFxuICAgICYuY29sbGFwc2UgPiAuY29sdW1uID4gLnJvdyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW5cbiAgLmNvbHVtbiB7XG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbjtcbiAgfVxuXG4gIC8vIENvbHVtbiByb3dcbiAgLy8gVGhlIGRvdWJsZSAucm93IGNsYXNzIGlzIG5lZWRlZCB0byBidW1wIHVwIHRoZSBzcGVjaWZpY2l0eVxuICAuY29sdW1uLnJvdy5yb3cge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLy8gVG8gcHJvcGVybHkgbmVzdCBhIGNvbHVtbiByb3csIHBhZGRpbmcgYW5kIG1hcmdpbiBpcyByZW1vdmVkXG4gIC5yb3cgLmNvbHVtbi5yb3cucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cblxuXG4gIC5mbGV4LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZmxleDtcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICAuZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG5cbiAgQGVhY2ggJGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWRpcmVjdGlvbiB7XG4gICAgLmZsZXgtZGlyLSN7JGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgIC4jeyQtemYtc2l6ZX0tI3skaX0ge1xuICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCRpKTtcbiAgICAgICAgbWF4LXdpZHRoOiBncmlkLWNvbHVtbigkaSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE9mZnNldHNcbiAgICAgICRvOiAkaSAtIDE7XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tb2Zmc2V0LSN7JG99IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tb2Zmc2V0KCRvKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDYge1xuICAgICAgLiN7JC16Zi1zaXplfS1vcmRlci0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtb3JkZXIoJGkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJsb2NrIGdyaWRcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRibG9jay1ncmlkLW1heCB7XG4gICAgICAuI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWxheW91dCgkaSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICQtemYtc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAvLyBTaXppbmcgKGV4cGFuZClcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi1zaXplKSB7XG4gICAgICAgIC4jeyQtemYtc2l6ZX0tZXhwYW5kIHtcbiAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gZGlyZWN0aW9uIGhlbHBlciBjbGFzc2VzXG4gICAgICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcbiAgICAgICAgLiN7JC16Zi1zaXplfS1mbGV4LWRpci0jeyRkaXJ9IHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbigkcHJvcCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIGNoaWxkIGhlbHBlciBjbGFzc2VzXG4gICAgICAuI3skLXpmLXNpemV9LWZsZXgtY2hpbGQtYXV0byB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgfVxuXG4gICAgICAuI3skLXpmLXNpemV9LWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgfVxuXG4gICAgICAuI3skLXpmLXNpemV9LWZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICB9XG5cbiAgICAgIC8vIEF1dG8tc3RhY2tpbmcvdW5zdGFja2luZ1xuICAgICAgQGF0LXJvb3QgKHdpdGhvdXQ6IG1lZGlhKSB7XG4gICAgICAgIC5yb3cuI3skLXpmLXNpemV9LXVuc3RhY2sge1xuICAgICAgICAgID4gLmNvbHVtbiB7XG4gICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKDEwMCUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBjb2xsYXBzaW5nXG4gICAgLiN7JC16Zi1zaXplfS1jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tdW5jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJC16Zi1zaXplKTsgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNpemluZyAoc2hyaW5rKVxuICAuc2hyaW5rIHtcbiAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKHNocmluayk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gQmxvY2sgZ3JpZCBjb2x1bW5zXG4gIC5jb2x1bW4tYmxvY2sge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW1hcmdpbjtcbiAgfVxuXG4gIC5jb2x1bW5zIHtcbiAgICBAZXh0ZW5kIC5jb2x1bW47IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgcGxhY2Vob2xkZXItaW4tZXh0ZW5kXG5cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2hhbmdlIHRoZSBiZWhhdmlvciBvZiBjb2x1bW5zIGRlZmluZWQgaW5zaWRlIHRoaXMgbWl4aW4gdG8gdXNlIGEgZGlmZmVyZW50IGNvbHVtbiBjb3VudC5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHJvb3QgW2ZhbHNlXVxuLy8vICAgSWYgYGZhbHNlYCwgc2VsZWN0b3JzIGluc2lkZSB0aGlzIG1peGluIHdpbGwgbmVzdCBpbnNpZGUgdGhlIHBhcmVudCBzZWxlY3Rvci5cbi8vLyAgIElmIGB0cnVlYCwgc2VsZWN0b3JzIHdpbGwgbm90IG5lc3QuXG5AbWl4aW4gZ3JpZC1jb250ZXh0KFxuICAkY29sdW1ucyxcbiAgJHJvb3Q6IGZhbHNlXG4pIHtcbiAgLy8gU3RvcmUgdGhlIGN1cnJlbnQgY29sdW1uIGNvdW50IHNvIGl0IGNhbiBiZSByZS1zZXQgbGF0ZXJcbiAgJG9sZC1ncmlkLWNvbHVtbi1jb3VudDogJGdyaWQtY29sdW1uLWNvdW50O1xuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRjb2x1bW5zICFnbG9iYWw7XG5cbiAgQGlmICRyb290IHtcbiAgICBAYXQtcm9vdCB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgb2xkIGNvbHVtbiBjb3VudFxuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRvbGQtZ3JpZC1jb2x1bW4tY291bnQgIWdsb2JhbDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIHJvdy5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIENvbHVtbiBjb3VudCBmb3IgdGhpcyByb3cuIGBudWxsYCB3aWxsIHVzZSB0aGUgZGVmYXVsdCBjb2x1bW4gY291bnQuXG4vLy8gQHBhcmFtIHtLZXl3b3Jkc30gJGJlaGF2aW9yIFtudWxsXVxuLy8vICAgTW9kaWZpY2F0aW9ucyB0byB0aGUgZGVmYXVsdCBncmlkIHN0eWxlcy4gYG5lc3RgIGluZGljYXRlcyB0aGUgcm93IHdpbGwgYmUgcGxhY2VkIGluc2lkZSBhbm90aGVyIHJvdy4gYGNvbGxhcHNlYCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29sdW1ucyBpbnNpZGUgdGhpcyByb3cgd2lsbCBub3QgaGF2ZSBwYWRkaW5nLiBgbmVzdCBjb2xsYXBzZWAgY29tYmluZXMgYm90aCBiZWhhdmlvcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgWyRncmlkLXJvdy13aWR0aF0gTWF4aW11bSBzaXplIG9mIHRoZSByb3cuIFNldCB0byBgZXhwYW5kYCB0byBtYWtlIHRoZSByb3cgdGFraW5nIHRoZSBmdWxsIHdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGNmIFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgYSBjbGVhcmZpeC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93KFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkc2l6ZTogJGdyaWQtcm93LXdpZHRoLFxuICAkY2Y6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXJzKTtcblxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZSgkc2l6ZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGlmICRjZiB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEludmVydHMgdGhlIG1hcmdpbnMgb2YgYSByb3cgdG8gbmVzdCBpdCBpbnNpZGUgb2YgYSBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93LW5lc3QoJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgJG1hcmdpbjogcmVtLWNhbGMoLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICQtemYtc2l6ZSkpIC8gMiAqIC0xO1xuXG4gICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luO1xuICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXQgYSBncmlkIHJvdyBzaXplXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG5AbWl4aW4gZ3JpZC1yb3ctc2l6ZSgkc2l6ZTogJGdyaWQtcm93LXdpZHRoKSB7XG4gIEBpZiAkc2l6ZSA9PSBleHBhbmQge1xuICAgICRzaXplOiBub25lO1xuICB9XG5cbiAgbWF4LXdpZHRoOiAkc2l6ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxhcmdlc3QgbmFtZWQgYnJlYWtwb2ludCBpbiB3aGljaCB0byBpbmNsdWRlIHByaW50IGFzIGEgbWVkaWEgdHlwZVxuLy8vIEB0eXBlIEtleXdvcmRcbiRwcmludC1icmVha3BvaW50OiBsYXJnZSAhZGVmYXVsdDtcblxuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHNtYWxsICFkZWZhdWx0O1xuXG4kLXpmLWJyZWFrcG9pbnRzLWtleXM6IG1hcC10by1saXN0KCRicmVha3BvaW50cywgJ2tleXMnKTtcblxuQGlmIG50aChtYXAtdmFsdWVzKCRicmVha3BvaW50cyksIDEpICE9IDAge1xuICBAZXJyb3IgJ1lvdXIgc21hbGxlc3QgYnJlYWtwb2ludCAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludHMpIG11c3QgYmUgc2V0IHRvIFwiMFwiLic7XG59XG5AZWxzZSB7XG4gICQtemYtemVyby1icmVha3BvaW50OiBudGgobWFwLWtleXMoJGJyZWFrcG9pbnRzKSwgMSk7XG59XG5cbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cbi8vLyBAdHlwZSBMaXN0XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsOiAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWF4OiAwO1xuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAkZGlyOiBpZihsZW5ndGgoJHZhbCkgPiAxLCBudGgoJHZhbCwgMiksIHVwKTtcbiAgLy8gRXZlbnR1YWwgb3V0cHV0XG4gICRzdHI6ICcnO1xuICAvLyBJcyBpdCBhIG5hbWVkIG1lZGlhIHF1ZXJ5P1xuICAkbmFtZWQ6IGZhbHNlO1xuXG4gIC8vIE9yaWVudGF0aW9uIG1lZGlhIHF1ZXJpZXMgaGF2ZSBhIHVuaXF1ZSBzeW50YXhcbiAgQGlmICRicCA9PSAnbGFuZHNjYXBlJyBvciAkYnAgPT0gJ3BvcnRyYWl0JyB7XG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcbiAgfVxuICBAZWxzZSBpZiAkYnAgPT0gJ3JldGluYScge1xuICAgIEByZXR1cm4gJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknO1xuICB9XG5cbiAgLy8gVHJ5IHRvIHB1bGwgYSBuYW1lZCBicmVha3BvaW50IG91dCBvZiB0aGUgJGJyZWFrcG9pbnRzIG1hcFxuICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnApIHtcbiAgICAgIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgICAgICRicC1tYXg6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICB9XG5cbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICAkbmFtZWQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicDogMDtcbiAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IFwiI3skdmFsfVwiIGlzIG5vdCBkZWZpbmVkIGluIHlvdXIgJGJyZWFrcG9pbnRzIHNldHRpbmcuJztcbiAgICB9XG4gIH1cblxuICAvLyBDb252ZXJ0IGFueSBwaXhlbCwgcmVtLCBvciB1bml0bGVzcyB2YWx1ZSB0byBlbVxuICAkYnA6IC16Zi1icC10by1lbSgkYnApO1xuICBAaWYgJGJwLW1heCB7XG4gICAgJGJwLW1heDogLXpmLWJwLXRvLWVtKCRicC1tYXgpIC0gKDEvMTYpO1xuICB9XG5cbiAgLy8gQ29uZGl0aW9ucyB0byBza2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uXG4gIC8vIC0gSXQncyBhIG5hbWVkIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgZG93blwiIG9yIFwiMCB1cFwiXG4gIC8vIC0gSXQncyBhIG51bWVyaWMgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBcIiArIGFueXRoaW5nXG4gIEBpZiAkYnAgPiAwZW0gb3IgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgIC8vIGBvbmx5YCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pIGFuZCAobWF4LXdpZHRoOiBuKWBcbiAgICBAaWYgJGRpciA9PSAnb25seScge1xuICAgICAgLy8gT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIFwib25seVwiIHJhbmdlXG4gICAgICBAaWYgJG5hbWVkID09IHRydWUge1xuICAgICAgICAvLyBPbmx5IHVzZSBcIm1pbi13aWR0aFwiIGlmIHRoZSBmbG9vciBpcyBncmVhdGVyIHRoYW4gMFxuICAgICAgICBAaWYgJGJwID4gMGVtIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuXG4gICAgICAgICAgLy8gT25seSBhZGQgXCJhbmRcIiB0byB0aGUgbWVkaWEgcXVlcnkgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAgICRzdHI6ICRzdHIgKyAnIGFuZCAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWF4LXdpZHRoXCIgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRicC1tYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGBkb3duYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtYXgtd2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICRtYXg6IGlmKCRuYW1lZCwgJGJwLW1heCwgJGJwKTtcblxuICAgICAgLy8gU2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvbiBpZiBpbnB1dCB2YWx1ZSBpcyBleGFjdGx5IFwiMCBkb3duXCIsXG4gICAgICAvLyB1bmxlc3MgdGhlIGZ1bmN0aW9uIHdhcyBjYWxsZWQgYXMgXCJzbWFsbCBkb3duXCIsIGluIHdoaWNoIGNhc2UgaXQncyBqdXN0IFwic21hbGwgb25seVwiXG4gICAgICBAaWYgJG5hbWVkIG9yICRicCA+IDBlbSB7XG4gICAgICAgIEBpZiAkbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYHVwYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRicCA+IDBlbSB7XG4gICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcbi8vLyAgLSBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGxvb2sgZm9yIGl0IGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG4vLy9cbi8vLyBAb3V0cHV0IElmIHRoZSBicmVha3BvaW50IGlzIFwiMHB4IGFuZCBsYXJnZXJcIiwgb3V0cHV0cyB0aGUgY29udGVudCBhcy1pcy4gT3RoZXJ3aXNlLCBvdXRwdXRzIHRoZSBjb250ZW50IHdyYXBwZWQgaW4gYSBtZWRpYSBxdWVyeS5cbkBtaXhpbiBicmVha3BvaW50KCR2YWx1ZSkge1xuICAkc3RyOiBicmVha3BvaW50KCR2YWx1ZSk7XG4gICRicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkdmFsdWUpO1xuICAkcGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICRwcmludC1icmVha3BvaW50KTtcblxuICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gIEBpZiAkc3RyID09ICcnIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gIEBlbHNlIHtcbiAgICAvLyBGb3IgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICRwcmludC1icmVha3BvaW50LCBhZGQgcHJpbnQgdG8gdGhlIG1lZGlhIHR5cGVzXG4gICAgQGlmICRicCAhPSBudWxsIGFuZCAkYnAgPD0gJHBicCB7XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQ29udmVycyB0aGUgYnJlYWtwb2ludHMgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFRoZSB2YWx1ZSBpcyB0aGVuIGRyb3BwZWQgaW50byB0aGUgQ1NTIGZvciBhIHNwZWNpYWwgYDxtZXRhPmAgdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHQuIFRoaXMgaXMgaG93IHdlIHRyYW5zZmVyIHZhbHVlcyBmcm9tIFNhc3MgdG8gSmF2YVNjcmlwdCwgc28gdGhleSBjYW4gYmUgZGVmaW5lZCBpbiBvbmUgcGxhY2UuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBjb252ZXJ0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWFwJ3MgY29udGVudHMuXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XG4gICRzdHI6ICcnO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcbiAgfVxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIEZpbmQgdGhlIG5leHQga2V5IGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGtleSAtIEtleSB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCwgaWYgYCRrZXlgIHdhcyBmb3VuZC4gSWYgYCRrZXlgIHdhcyBub3QgZm91bmQsIG9yIGAka2V5YCB3YXMgdGhlIGxhc3QgdmFsdWUgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0KCRtYXAsICRrZXkpIHtcblxuICAvLyBTdG9yZSB0aGUga2V5cyBvZiB0aGUgbWFwIGFzIGEgbGlzdFxuICAkdmFsdWVzOiBtYXAta2V5cygkbWFwKTtcblxuICAkaTogMDtcblxuICAvLyBJZiB0aGUgS2V5IEV4aXN0cywgR2V0IHRoZSBpbmRleCBvZiB0aGUga2V5IHdpdGhpbiB0aGUgbWFwIGFuZCBhZGQgMSB0byBpdCBmb3IgdGhlIG5leHQgYnJlYWtwb2ludCBpbiB0aGUgbWFwXG4gIEBpZiAobWFwLWhhcy1rZXkoJG1hcCwgJGtleSkpIHtcbiAgICAkaTogaW5kZXgoJHZhbHVlcywgJGtleSkgKyAxO1xuICB9XG5cbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxuICBAaWYgKCRpID4gbGVuZ3RoKCRtYXApIG9yICRpID09IDApIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHZhbHVlXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgbnRoKCR2YWx1ZXMsICRpKSk7XG4gIH1cblxufVxuXG4vLy8gR2V0IGEgdmFsdWUgZm9yIGEgYnJlYWtwb2ludCBmcm9tIGEgcmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdCByZWdhcmRsZXNzIG9mIGAkdmFsdWVgLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgaGFzIHRoZSBrZXkgYCR2YWx1ZWAsIHRoZSBleGFjdCBicmVha3BvaW50IHZhbHVlIGlzIHJldHVybmVkLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBSZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge01peGVkfSBUaGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlLlxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xuICAvLyBJZiB0aGUgZ2l2ZW4gbWFwIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXRcbiAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJG1hcDtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGdsb2JhbGx5XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJG1hcCwgJHZhbHVlKSB7XG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGFuZCByZXR1cm4gdGhhdCB2YWx1ZVxuICBAZWxzZSB7XG4gICAgJGFuY2hvcjogbnVsbDtcbiAgICAkZm91bmQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgICAgICRhbmNob3I6ICRrZXk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcbiAgICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XG4gIH1cbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gICRtZWRpdW0tdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9Jyk7XG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcbiAgJGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4bGFyZ2UpIHtcbiAgJHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlKX0nKTtcbiAgJHhsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2Ugb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcbiAgJHh4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2UpfScpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2V0IHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJGd1dHRlciBbYXV0b11cbi8vLyAgIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLCBhY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBzaW5nbGUgdmFsdWUgd2lsbCBtYWtlIHRoZSBndXR0ZXIgdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIGJyZWFrcG9pbnQgbmFtZSB3aWxsIG1ha2UgdGhlIGd1dHRlciB0aGUgY29ycmVzcG9uZGluZyBzaXplIGluIHRoZSAkZ3V0dGVycyBtYXAuXG4vLy8gICAtIFwiYXV0b1wiIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHJlc3BvbnNpdmUsIHVzaW5nIHRoZSAkZ3V0dGVycyBtYXAgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtY29sdW1uLWd1dHRlcihcbiAgJGd1dHRlcjogYXV0byxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkZ3V0dGVyLCAkZ3V0dGVycykge1xuICAgICRwYWRkaW5nOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKSAvIDI7XG5cbiAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICB9XG59XG5cbi8vLyBDb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZW1vdmluZyB0aGUgcGFkZGluZy4gKipOb3RlOioqIG9ubHkgdXNlIHRoaXMgbWl4aW4gd2l0aGluIGEgYnJlYWtwb2ludC4gVG8gY29sbGFwc2UgYSBjb2x1bW4ncyBndXR0ZXJzIG9uIGFsbCBzY3JlZW4gc2l6ZXMsIHVzZSB0aGUgYCRndXR0ZXJgIHBhcmFtZXRlciBvZiB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluIGluc3RlYWQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tY29sbGFwc2Uge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoMCk7XG59XG5cbi8vLyBVbi1jb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZS1hZGRpbmcgdGhlIHBhZGRpbmcuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy5cbkBtaXhpbiBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZ3JpZC1jb2x1bW4tZ3V0dGVyKCkuIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjQuJztcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXJzOiAkZ3V0dGVyKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWd1dHRlcigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tZ3V0dGVyXG5AbWl4aW4gZ3JpZC1jb2wtZ3V0dGVyKFxuICAkZ3V0dGVyOiBhdXRvLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyLCAkZ3V0dGVycyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tY29sbGFwc2VcbkBtaXhpbiBncmlkLWNvbC1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWNvbGxhcHNlO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLXVuY29sbGFwc2UoJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBncmlkLWNvbC1ndXR0ZXIoKS4gZ3JpZC1jb2wtdW5jb2xsYXBzZSgpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXIpO1xufVxuXG4vLy8gU2V0cyBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucyB0byBtYXRjaCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJG1hcmdpbiBbYXV0b11cbi8vLyAgIFRoZSBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucywgYWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgc2luZ2xlIHZhbHVlIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBicmVha3BvaW50IG5hbWUgd2lsbCBtYWtlIHRoZSBtYXJnaW4gdGhlIGNvcnJlc3BvbmRpbmcgc2l6ZSBpbiB0aGUgJG1hcmdpbnMgbWFwLlxuLy8vICAgLSBcImF1dG9cIiB3aWxsIG1ha2UgdGhlIG1hcmdpbiByZXNwb25zaXZlLCB1c2luZyB0aGUgJG1hcmdpbnMgbWFwIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXJnaW5zIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtY29sdW1uLW1hcmdpbiAoXG4gICRtYXJnaW46IGF1dG8sXG4gICRtYXJnaW5zOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJG1hcmdpbiwgJG1hcmdpbnMpIHtcbiAgICAkbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSk7XG4gICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1ib3R0b207XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIkLXpmLWZsZXgtanVzdGlmeTogKFxuICAnbGVmdCc6IGZsZXgtc3RhcnQsXG4gICdyaWdodCc6IGZsZXgtZW5kLFxuICAnY2VudGVyJzogY2VudGVyLFxuICAnanVzdGlmeSc6IHNwYWNlLWJldHdlZW4sXG4gICdzcGFjZWQnOiBzcGFjZS1hcm91bmQsXG4pO1xuXG4kLXpmLWZsZXgtYWxpZ246IChcbiAgJ3RvcCc6IGZsZXgtc3RhcnQsXG4gICdib3R0b20nOiBmbGV4LWVuZCxcbiAgJ21pZGRsZSc6IGNlbnRlcixcbiAgJ3N0cmV0Y2gnOiBzdHJldGNoLFxuKTtcblxuJC16Zi1mbGV4LWRpcmVjdGlvbjogKFxuICAncm93Jzogcm93LFxuICAncm93LXJldmVyc2UnOiByb3ctcmV2ZXJzZSxcbiAgJ2NvbHVtbic6IGNvbHVtbixcbiAgJ2NvbHVtbi1yZXZlcnNlJzogY29sdW1uLXJldmVyc2UsXG4pO1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGJ5IGFkZGluZyBgZGlzcGxheTogZmxleGAgdG8gdGhlIGVsZW1lbnQuXG5AbWl4aW4gZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBhbGlnbnMgdGhlIGl0ZW1zIHdpdGhpbiBhIGZsZXggY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeCBbbnVsbF0gLSBIb3Jpem9udGFsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgbGVmdGAsIGByaWdodGAsIGBjZW50ZXJgLCBganVzdGlmeWAsIG9yIGBzcGFjZWRgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XG4gIEBpZiAkeCB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1qdXN0aWZ5LCAkeCkge1xuICAgICAgJHg6IG1hcC1nZXQoJC16Zi1mbGV4LWp1c3RpZnksICR4KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeH0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGhvcml6b250YWwgYWxpZ25tZW50LiBVc2UgbGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSwgb3Igc3BhY2VkLic7XG4gICAgfVxuICB9XG5cbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAganVzdGlmeS1jb250ZW50OiAkeDtcbiAgYWxpZ24taXRlbXM6ICR5O1xufVxuXG4vLy8gVmVydGljYWxseSBhbGlnbiBhIHNpbmdsZSBjb2x1bW4gd2l0aGluIGEgZmxleCByb3cuIEFwcGx5IHRoaXMgbWl4aW4gdG8gYSBmbGV4IGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHk6IG51bGwpIHtcbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtY29sdW1uLWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAgYWxpZ24tc2VsZjogJHk7XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBmbGV4IGNoaWxkLiBDaGlsZHJlbiB3aXRoIGxvd2VyIG51bWJlcnMgYXBwZWFyIGZpcnN0IGluIHRoZSBsYXlvdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcmRlciBbMF0gLSBPcmRlciBudW1iZXIgdG8gYXBwbHkuXG5AbWl4aW4gZmxleC1vcmRlcigkb3JkZXI6IDApIHtcbiAgb3JkZXI6ICRvcmRlcjtcbn1cblxuLy8vIENoYW5nZSBmbGV4LWRpcmVjdGlvblxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbcm93XSAtIEZsZXggZGlyZWN0aW9uIHRvIHVzZS4gQ2FuIGJlXG4vLy8gICAtIHJvdyAoZGVmYXVsdCk6IHNhbWUgYXMgdGV4dCBkaXJlY3Rpb25cbi8vLyAgIC0gcm93LXJldmVyc2U6IG9wcG9zaXRlIHRvIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIGNvbHVtbjogc2FtZSBhcyByb3cgYnV0IHRvcCB0byBib3R0b21cbi8vLyAgIC0gY29sdW1uLXJldmVyc2U6IHNhbWUgYXMgcm93LXJldmVyc2UgdG9wIHRvIGJvdHRvbVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCRkaXJlY3Rpb246IHJvdykge1xuICBmbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFJlcG9zaXRpb24gYSBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkcG9zaXRpb24gLSBEaXJlY3Rpb24gYW5kIGFtb3VudCB0byBtb3ZlLiBUaGUgY29sdW1uIHdpbGwgbW92ZSBlcXVhbCB0byB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbiBjb3VudCBzcGVjaWZpZWQuIEEgcG9zaXRpdmUgbnVtYmVyIHdpbGwgcHVzaCB0aGUgY29sdW1uIHRvIHRoZSByaWdodCwgd2hpbGUgYSBuZWdhdGl2ZSBudW1iZXIgd2lsbCBwdWxsIGl0IHRvIHRoZSBsZWZ0LiBTZXQgdG8gY2VudGVyIHRvIGNlbnRlciB0aGUgY29sdW1uLlxuQG1peGluIGdyaWQtY29sdW1uLXBvc2l0aW9uKCRwb3NpdGlvbikge1xuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09ICdudW1iZXInIHtcbiAgICAkb2Zmc2V0OiBwZXJjZW50YWdlKCRwb3NpdGlvbiAvICRncmlkLWNvbHVtbi1jb3VudCk7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBjZW50ZXIge1xuICAgICYsICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uLXBvc2l0aW9uKCkuIEVudGVyIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgbnVtYmVyLCBvciBjZW50ZXIuJztcbiAgfVxufVxuXG4vLy8gUmVzZXQgYSBwb3NpdGlvbiBkZWZpbml0aW9uLlxuQG1peGluIGdyaWQtY29sdW1uLXVucG9zaXRpb24ge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLy8vIE9mZnNldHMgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0IGJ5IGAkbmAgY29sdW1ucy5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFdpZHRoIHRvIG9mZnNldCBieS4gWW91IGNhbiBwYXNzIGluIGFueSB2YWx1ZSBhY2NlcHRlZCBieSB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuQG1peGluIGdyaWQtY29sdW1uLW9mZnNldCgkbikge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiBncmlkLWNvbHVtbigkbik7XG59XG5cbi8vLyBEaXNhYmxlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBsYXN0IGNvbHVtbiBpbiBhIHJvdyBhbGlnbmluZyB0byB0aGUgb3Bwb3NpdGUgZWRnZS5cbkBtaXhpbiBncmlkLWNvbHVtbi1lbmQge1xuICAvLyBUaGlzIGV4dHJhIHNwZWNpZmljaXR5IGlzIHJlcXVpcmVkIGZvciB0aGUgcHJvcGVydHkgdG8gYmUgYXBwbGllZFxuICAmOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgfVxufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXBvc2l0aW9uXG5AbWl4aW4gZ3JpZC1jb2wtcG9zKCRwb3NpdGlvbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbigkcG9zaXRpb24pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXVucG9zIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbjtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLW9mZnNldCgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tb2Zmc2V0XG5AbWl4aW4gZ3JpZC1jb2wtb2ZmKCRuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1lbmQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWVuZFxuQG1peGluIGdyaWQtY29sLWVuZCB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWVuZDtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktYmFzZVxuLy8vL1xuXG4vLyBCYXNlIFR5cG9ncmFwaHlcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4vLyBUaGVzZSBhcmUgc3R5bGVzIGFwcGxpZWQgdG8gYmFzaWMgSFRNTCB0YWdzLCBpbmNsdWRpbmc6XG4vLyAgIC0gUGFyYWdyYXBocyA8cD5cbi8vICAgLSBCb2xkL2l0YWxpY3MgPGI+IDxzdHJvbmc+IDxpPiA8ZW0+XG4vLyAgIC0gU21hbGwgdGV4dCA8c21hbGw+XG4vLyAgIC0gSGVhZGluZ3MgPGgxPi08aDY+XG4vLyAgIC0gQW5jaG9ycyA8YT5cbi8vICAgLSBEaXZpZGVycyA8aHI+XG4vLyAgIC0gTGlzdHMgPHVsPiA8b2w+IDxkbD5cbi8vICAgLSBCbG9ja3F1b3RlcyA8YmxvY2txdW90ZT5cbi8vICAgLSBDb2RlIGJsb2NrcyA8Y29kZT5cbi8vICAgLSBBYmJyZXZpYXRpb25zIDxhYmJyPlxuLy8gICAtIENpdGF0aW9ucyA8Y2l0ZT5cbi8vICAgLSBLZXlzdHJva2VzIDxrYmQ+XG5cbi8vLyBGb250IGZhbWlseSBmb3IgaGVhZGVyIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3R5bGUgKGUuZy4gaXRhbGljaXplZCkgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayB1c2VkIGZvciBlbGVtZW50cyB0aGF0IHVzZSBtb25vc3BhY2VkIHR5cGUsIHN1Y2ggYXMgY29kZSBzYW1wbGVzXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBDb3VyaWVyLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgZm9yIGhlYWRpbmdzIGF0IHZhcmlvdXMgc2NyZWVuIHNpemVzLiBFYWNoIGtleSBpcyBhIGJyZWFrcG9pbnQsIGFuZCBlYWNoIHZhbHVlIGlzIGEgbWFwIG9mIGhlYWRpbmcgc3R5bGVzLlxuLy8vIEB0eXBlIE1hcFxuJGhlYWRlci1zdHlsZXM6IChcbiAgc21hbGw6IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDI0KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDE5KSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDE4KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE3KSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA0OCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiA0MCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAzMSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAyNSksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4pICFkZWZhdWx0O1xuXG4vLyAkaGVhZGVyLXN0eWxlcyBtYXAgaXMgYnVpbHQgZnJvbSAkaGVhZGVyLXNpemVzIGluIG9yZGVyIHRvIGVuc3VyZSBkb3dud2FyZCBjb21wYXRpYmlsaXR5XG4vLyB3aGVuICRoZWFkZXItc2l6ZXMgaXMgZGVwcmVjaWF0ZWQsICRoZWFkZXItc3R5bGVzIG5lZWRzIHRvIGdldCAhZGVmYXVsdCB2YWx1ZXMgbGlrZSBzZXR0aW5ncy5zY3NzXG5AZnVuY3Rpb24gYnVpbGRfZnJvbV9oZWFkZXItc2l6ZXMoJGhlYWRlci1zaXplcykge1xuICBAd2FybiAnTm90ZSwgdGhhdCAkaGVhZGVyLXNpemVzIGhhcyBiZWVuIHJlcGxhY2VkIHdpdGggJGhlYWRlci1zdHlsZXMuICRoZWFkZXItc2l6ZXMgc3RpbGwgd29ya3MsIGJ1dCBpdCBpcyBnb2luZyB0byBiZSBkZXByZWNpYXRlZC4nO1xuICAkaGVhZGVyLXN0eWxlczogKCk7XG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXNpemVzIHtcbiAgICAkaGVhZGVyLW1hcDogKCk7XG4gICAgQGVhY2ggJGhlYWRlciwgJGZvbnQtc2l6ZSBpbiAkaGVhZGVycyB7XG4gICAgICAkaGVhZGVyLW1hcDogbWFwLW1lcmdlKCRoZWFkZXItbWFwLCAoJGhlYWRlcjogKCdmb250LXNpemUnOiAkZm9udC1zaXplKSkpOyAgXG4gICAgfVxuICAgICRoZWFkZXItc3R5bGVzOiBtYXAtbWVyZ2UoJGhlYWRlci1zdHlsZXMsICgkc2l6ZTogJGhlYWRlci1tYXApKTtcbiAgfVxuICBAcmV0dXJuICRoZWFkZXItc3R5bGVzO1xufVxuXG4vLyBJZiBpdCBleGlzdHMgJGhlYWRlcnMtc2l6ZXMgaXMgdXNlZCB0byBidWlsZCAkaGVhZGVyLXN0eWxlcy4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhoZWFkZXItc2l6ZXMpIHtcbiAgJGhlYWRlci1zdHlsZXM6IGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpO1xufVxuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYDxzbWFsbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHNtYWxsLWZvbnQtc2l6ZTogODAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYDxzbWFsbD5gIGVsZW1lbnRzIHdoZW4gcGxhY2VkIGluc2lkZSBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5zaWRlIGA8cD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2QgZm9yIHBhcmFncmFwaCB0ZXh0LlxuLy8vIEB0eXBlIFN0cmluZ1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBMaXN0XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGFyb3VuZCB0ZXh0IG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVvY3JhdGlvbiBmb3IgbGlua3MuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIExpc3RcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAhZGVmYXVsdDtcblxuLy8vIEJ1bGxldCB0eXBlIHRvIHVzZSBmb3IgdW5vcmRlcmVkIGxpc3RzIChlLmcuLCBgc3F1YXJlYCwgYGNpcmNsZWAsIGBkaXNjYCkuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS10eXBlOiBkaXNjICFkZWZhdWx0O1xuXG4vLy8gUG9zaXRpb25pbmcgZm9yIGJ1bGxldHMgb24gdW5vcmRlcmVkIGxpc3QgaXRlbXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGxpc3RzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBhIGxpc3QgaW5zaWRlIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGA8ZGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGA8ZHQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBgPGR0PmAgYW5kIGA8ZGQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSBgPGJsb2NrcXVvdGU+YCBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSkgIWRlZmF1bHQ7XG5cbi8vLyBTaWRlIGJvcmRlciBmb3IgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUHNldWRvIGNvbnRlbnQgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNpdGUtcHNldWRvLWNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJyAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gYm9yZGVyIHN0eWxlIGZvciBgPGFiYnI+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2Uge1xuICAvLyBUeXBvZ3JhcGh5IHJlc2V0c1xuICBkaXYsXG4gIGRsLFxuICBkdCxcbiAgZGQsXG4gIHVsLFxuICBvbCxcbiAgbGksXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIHByZSxcbiAgZm9ybSxcbiAgcCxcbiAgYmxvY2txdW90ZSxcbiAgdGgsXG4gIHRkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFBhcmFncmFwaHNcbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc7XG4gIH1cblxuICAvLyBFbXBoYXNpemVkIHRleHRcbiAgZW0sXG4gIGkge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFN0cm9uZyB0ZXh0XG4gIHN0cm9uZyxcbiAgYiB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTbWFsbCB0ZXh0XG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBIZWFkaW5nc1xuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2IHtcbiAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRoZWFkZXItY29sb3I7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XG5cbiAgICBzbWFsbCB7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIGNvbG9yOiAkaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVhZGluZyBzdHlsZXNcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc3R5bGVzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkaGVhZGVyLCAkaGVhZGVyLWRlZnMgaW4gJGhlYWRlcnMge1xuICAgICAgICAkZm9udC1zaXplLXRlbXA6IDFyZW07XG4gICAgICAgICN7JGhlYWRlcn0ge1xuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmb250LXNpemUpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmcykge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZnMpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxoKSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKCRoZWFkZXItbGluZWhlaWdodCwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtdCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG10KSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYikge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1iKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkaGVhZGVyLW1hcmdpbi1ib3R0b20pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIExpbmtzXG4gIGEge1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb247XG5cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRhbmNob3ItY29sb3ItaG92ZXI7XG4gICAgICBAaWYgJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGFuY2hvci10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSG9yaXpvbnRhbCBydWxlXG4gIGhyIHtcbiAgICBjbGVhcjogYm90aDtcblxuICAgIG1heC13aWR0aDogJGhyLXdpZHRoO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW46ICRoci1tYXJnaW47XG5cbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBib3JkZXItYm90dG9tOiAkaHItYm9yZGVyO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICB9XG5cbiAgLy8gTGlzdHNcbiAgdWwsXG4gIG9sLFxuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGxpc3QtbWFyZ2luLWJvdHRvbTtcbiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiAkbGlzdC1zdHlsZS1wb3NpdGlvbjtcbiAgICBsaW5lLWhlaWdodDogJGxpc3QtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIExpc3QgaXRlbXNcbiAgbGkge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFVub3JkZXJlZCBsaXN0c1xuICB1bCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gICAgbGlzdC1zdHlsZS10eXBlOiAkbGlzdC1zdHlsZS10eXBlO1xuICB9XG5cbiAgLy8gT3JkZXJlZCBsaXN0c1xuICBvbCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gIH1cblxuICAvLyBOZXN0ZWQgdW5vcmRlcmVkL29yZGVyZWQgbGlzdHNcbiAgdWwsIG9sIHtcbiAgICAmICYge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBEZWZpbml0aW9uIGxpc3RzXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTtcblxuICAgIGR0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b207XG4gICAgICBmb250LXdlaWdodDogJGRlZm5saXN0LXRlcm0td2VpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC8vIEJsb2NrcXVvdGVzXG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICBwYWRkaW5nOiAkYmxvY2txdW90ZS1wYWRkaW5nO1xuICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRibG9ja3F1b3RlLWJvcmRlcjtcblxuICAgICYsIHAge1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBDaXRhdGlvbnNcbiAgY2l0ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAkY2l0ZS1mb250LXNpemU7XG4gICAgY29sb3I6ICRjaXRlLWNvbG9yO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJGNpdGUtcHNldWRvLWNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQWJicmV2aWF0aW9uc1xuICBhYmJyLCBhYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFiYnItdW5kZXJsaW5lO1xuICAgIGN1cnNvcjogaGVscDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAvLyBGaWd1cmVzXG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIFxuICAvLyBDb2RlXG4gIGNvZGUge1xuICAgIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XG5cbiAgICBib3JkZXI6ICRjb2RlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkY29kZS1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGNvZGUtY29sb3I7XG4gIH1cblxuICAvLyBLZXlzdHJva2VzXG4gIGtiZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6ICRrZXlzdHJva2UtcGFkZGluZztcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRrZXlzdHJva2UtYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAka2V5c3Ryb2tlLWZvbnQ7XG4gICAgY29sb3I6ICRrZXlzdHJva2UtY29sb3I7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRrZXlzdHJva2UtcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAka2V5c3Ryb2tlLXJhZGl1cztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktaGVscGVyc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxlYWQtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIHN0YXRpc3RpYyBudW1iZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN0YXQtZm9udC1zaXplOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktaGVscGVycyB7XG4gIC8vIFVzZSB0byBjcmVhdGUgYSBzdWJoZWFkaW5nIHVuZGVyIGEgbWFpbiBoZWFkZXJcbiAgLy8gTWFrZSBzdXJlIHlvdSBwYWlyIHRoZSB0d28gZWxlbWVudHMgaW4gYSA8aGVhZGVyPiBlbGVtZW50LCBsaWtlIHRoaXM6XG4gIC8vIDxoZWFkZXI+XG4gIC8vICAgPGgxPkhlYWRpbmc8L2gxPlxuICAvLyAgIDxoMj5TdWJoZWFkaW5nPC9oMj5cbiAgLy8gPC9oZWFkZXI+XG4gIC5zdWJoZWFkZXIge1xuICAgIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItbWFyZ2luLXRvcDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJHN1YmhlYWRlci1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkc3ViaGVhZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGFuIGludHJvZHVjdG9yeSBsZWFkLCBkZWNrLCBibHVyYiwgZXRjLlxuICAubGVhZCB7XG4gICAgZm9udC1zaXplOiAkbGVhZC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRsZWFkLWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYSBsYXJnZSBudW1iZXIgdG8gZGlzcGxheSBhIHN0YXRpc3RpY1xuICAuc3RhdCB7XG4gICAgZm9udC1zaXplOiAkc3RhdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBwICsgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICB9XG4gIH1cblxuICB1bCwgb2wge1xuICAgIC8vIFVzZSB0byByZW1vdmUgbnVtYmVycyBmcm9tIG9yZGVyZWQgbGlzdCAmIGJ1bGxldHMgZnJvbSB1bm9yZGVyZWQgbGlzdFxuICAgICYubm8tYnVsbGV0IHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50IHtcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGFsaWduIGluIChsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5KSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC50ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIElmIGB0cnVlYCwgYWxsIGVsZW1lbnRzIHdpbGwgaGF2ZSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcyB3aGVuIHByaW50ZWQsIHRvIHNhdmUgb24gaW5rLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWUgIWRlZmF1bHQ7XG4kcHJpbnQtaHJlZnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIHNhc3MtbGludDpkaXNhYmxlLWFsbFxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcmludC1zdHlsZXMge1xuICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICBAbWVkaWEgcHJpbnQge1xuICAgICoge1xuICAgICAgQGlmICRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kcyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcblxuICAgICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7IC8vIEJsYWNrIHByaW50cyBmYXN0ZXI6IGg1YnAuY29tL3NcbiAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgdGhlYWQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgdGQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4gICAgLy8gRGlzcGxheSB0aGUgVVJMIG9mIGEgbGluayBhZnRlciB0aGUgdGV4dFxuICAgIGEsXG4gICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuICAgIEBpZiAkcHJpbnQtaHJlZnMge1xuICAgICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cihocmVmKSAnKSc7IH1cbiAgICB9XG5cbiAgICAvLyBEb24ndCBkaXNwbGF5IHRoZSBVUkwgZm9yIGltYWdlcyBvciBKYXZhU2NyaXB0L2ludGVybmFsIGxpbmtzXG4gICAgLmlyIGE6YWZ0ZXIsXG4gICAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgICBhW2hyZWZePScjJ106YWZ0ZXIgeyBjb250ZW50OiAnJzsgfVxuXG4gICAgLy8gRGlzcGxheSB3aGF0IGFuIGFiYnJldmlhdGlvbiBzdGFuZHMgZm9yIGFmdGVyIHRoZSB0ZXh0XG4gICAgYWJiclt0aXRsZV06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIodGl0bGUpICcpJzsgfVxuXG4gICAgLy8gUHJldmVudCBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGEgYmxvY2txdW90ZSBvciBwcmVmb3JtYXR0ZWQgdGV4dCBibG9ja1xuICAgIHByZSxcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLy8gaDVicC5jb20vdFxuICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG5cbiAgICB0cixcbiAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICBAcGFnZSB7IG1hcmdpbjogMC41Y207IH1cblxuICAgIHAsXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgb3JwaGFuczogMztcbiAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICAvLyBBdm9pZCBwYWdlIGJyZWFrcyBhZnRlciBhIGhlYWRpbmdcbiAgICBoMixcbiAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG5cbiAgICAvLyBIZWxwZXIgdG8gcmUtYWxsb3cgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBjZXJ0YWluIGVsZW1lbnRzIChlLmcuIHByZSwgYmxvY2txdW90ZSwgdHIpXG4gICAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBGb250IGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgcGxhY2Vob2xkZXIgdGV4dCB3aXRoaW4gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgRm9udFxuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGZvY3VzZWQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGRpc2FibGVkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgZm9jdXNlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDIgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IGluc2lkZSB0ZXh0IGlucHV0cyB3aGVuIG5vdCBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBvdXRzaWRlIHRleHQgaW5wdXRzIHdoZW4gZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ3Vyc29yIHRvIHVzZSB3aGVuIGhvdmVyaW5nIG92ZXIgYSBkaXNhYmxlZCB0ZXh0IGlucHV0LlxuLy8vIEB0eXBlIEN1cnNvclxuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQgIWRlZmF1bHQ7XG5cbi8vLyBQcm9wZXJ0aWVzIHRvIHRyYW5zaXRpb24gb24gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyB0aGUgdXAvZG93biBidXR0b25zIHRoYXQgQ2hyb21lIGFuZCBGaXJlZm94IGFkZCB0byBgPGlucHV0IHR5cGU9J251bWJlcic+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gUmFkaXVzIGZvciB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgZm9ybSBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1lbGVtZW50IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKiAkaW5wdXQtbGluZS1oZWlnaHQpICsgKGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAndG9wJykgKyBnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ2JvdHRvbScpKSAtIHJlbS1jYWxjKDEpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZztcblxuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93O1xuXG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tdGV4dCB7XG4gIC8vIFRleHQgaW5wdXRzXG4gICN7dGV4dC1pbnB1dHMoKX0sXG4gIHRleHRhcmVhIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVsZW1lbnQ7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRleHQgYXJlYXNcbiAgdGV4dGFyZWEge1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICZbcm93c10ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0LFxuICB0ZXh0YXJlYSB7XG4gICAgLy8gUGxhY2Vob2xkZXIgdGV4dFxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkaW5wdXQtcGxhY2Vob2xkZXItY29sb3I7XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQvcmVhZG9ubHkgc3RhdGVcbiAgICAmOmRpc2FibGVkLFxuICAgICZbcmVhZG9ubHldIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvbiBidXR0b24tbGlrZSBpbnB1dHNcbiAgW3R5cGU9J3N1Ym1pdCddLFxuICBbdHlwZT0nYnV0dG9uJ10ge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogJGZvcm0tYnV0dG9uLXJhZGl1cztcbiAgfVxuXG4gIC8vIFJlc2V0IE5vcm1hbGl6ZSBzZXR0aW5nIGNvbnRlbnQtYm94IHRvIHNlYXJjaCBlbGVtZW50c1xuICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAvLyBOdW1iZXIgaW5wdXQgc3R5bGVzXG4gIFt0eXBlPSdudW1iZXInXSB7XG4gICAgQGlmIG5vdCAkaW5wdXQtbnVtYmVyLXNwaW5uZXJzIHtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhcblxuICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeFxuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWNoZWNrYm94IHtcbiAgW3R5cGU9J2ZpbGUnXSxcbiAgW3R5cGU9J2NoZWNrYm94J10sXG4gIFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dC9sYWJlbCBzaWJsaW5nc1xuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgJltmb3JdIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0cyBpbnNpZGUgbGFiZWxzXG4gIGxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG4gIGxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLy8gTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGhcbiAgW3R5cGU9J2ZpbGUnXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBmb3JtIGxhYmVscy4gVGhlIGhpZ2hlciB0aGUgbnVtYmVyLCB0aGUgbW9yZSBzcGFjZSBiZXR3ZWVuIHRoZSBsYWJlbCBhbmQgaXRzIGlucHV0IGZpZWxkLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuOCAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkZm9ybS1sYWJlbC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yO1xufVxuXG5AbWl4aW4gZm9ybS1sYWJlbC1taWRkbGUge1xuICAkaW5wdXQtYm9yZGVyLXdpZHRoOiBnZXQtYm9yZGVyLXZhbHVlKCRpbnB1dC1ib3JkZXIsIHdpZHRoKTtcblxuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAoJGZvcm0tc3BhY2luZyAvIDIgKyByZW0tY2FsYygkaW5wdXQtYm9yZGVyLXdpZHRoKSkgMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1sYWJlbCB7XG4gIGxhYmVsIHtcbiAgICBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuXG4gICAgJi5taWRkbGUge1xuICAgICAgQGluY2x1ZGUgZm9ybS1sYWJlbC1taWRkbGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaGVscHRleHQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc3R5bGUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWhlbHB0ZXh0IHtcbiAgLmhlbHAtdGV4dCB7XG4gICAgJG1hcmdpbi10b3A6ICgkZm9ybS1zcGFjaW5nICogMC41KSAqIC0xO1xuXG4gICAgbWFyZ2luLXRvcDogJG1hcmdpbi10b3A7XG4gICAgZm9udC1zaXplOiAkaGVscHRleHQtZm9udC1zaXplO1xuICAgIGZvbnQtc3R5bGU6ICRoZWxwdGV4dC1mb250LXN0eWxlO1xuICAgIGNvbG9yOiAkaGVscHRleHQtY29sb3I7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExlZnQvcmlnaHQgcGFkZGluZyBvZiBhbiBwcmUvcG9zdGZpeGVkIGlucHV0IGxhYmVsXG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tcHJlcG9zdGZpeCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgJGZvcm0tc3BhY2luZyAqIDEuNSk7XG5cbiAgLmlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIHRhYmxlKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB9XG5cbiAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cyk7XG4gICAgfVxuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICA+ICoge1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cywgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJWlucHV0LWdyb3VwLWNoaWxkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1sYWJlbCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZzogMCAkaW5wdXQtcHJlZml4LXBhZGRpbmc7XG4gICAgYm9yZGVyOiAkaW5wdXQtcHJlZml4LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtcHJlZml4LWJhY2tncm91bmQ7XG5cbiAgICBjb2xvcjogJGlucHV0LXByZWZpeC1jb2xvcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXByZWZpeC1ib3JkZXIpIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgYSxcbiAgICBpbnB1dCxcbiAgICBidXR0b24sXG4gICAgbGFiZWwge1xuICAgICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuXG4gICAgICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gICAgfVxuICB9XG5cbiAgLy8gU3BlY2lmaWNpdHkgYnVtcCBuZWVkZWQgdG8gcHJldmVudCBvdmVycmlkZSBieSBidXR0b25zXG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgYmV0d2VlbiB0aGUgbGVnZW5kIHRleHQgYW5kIGZpZWxkc2V0IGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKSAhZGVmYXVsdDtcblxuQG1peGluIGZpZWxkc2V0IHtcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xuICBwYWRkaW5nOiAkZmllbGRzZXQtcGFkZGluZztcbiAgYm9yZGVyOiAkZmllbGRzZXQtYm9yZGVyO1xuXG4gIGxlZ2VuZCB7XG4gICAgLy8gQ292ZXJzIHVwIHRoZSBmaWVsZHNldCdzIGJvcmRlciB0byBjcmVhdGUgYXJ0aWZpY2lhbCBwYWRkaW5nXG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IHJlbS1jYWxjKC0zKTtcbiAgICBwYWRkaW5nOiAkbGVnZW5kLXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0IHtcbiAgZmllbGRzZXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAuZmllbGRzZXQge1xuICAgIEBpbmNsdWRlIGZpZWxkc2V0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogJGlucHV0LWxpbmUtaGVpZ2h0KSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHNlbGVjdC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZDtcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmICRzZWxlY3QtdHJpYW5nbGUtY29sb3IgIT0gdHJhbnNwYXJlbnQge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtdHJpYW5nbGUoJHNlbGVjdC10cmlhbmdsZS1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRnbG9iYWwtcmlnaHQgKC0kZm9ybS1zcGFjaW5nKSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG5cbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICgkZm9ybS1zcGFjaW5nICogMS41KTtcbiAgfVxuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJlttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0IHtcbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBmb3JtLXNlbGVjdDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWJpZGVcbi8vLy9cblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBpbnB1dHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWlucHV0czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBsYWJlbHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWxhYmVsczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgdG8gdXNlIGZvciBpbnZhbGlkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdG8gdXNlIGZvciBsYWJlbHMgb2YgaW52YWxpZCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBvZiBhbiBpbnB1dCBmaWVsZCB0byBoYXZlIGFuIGVycm9yIHN0YXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRhbGVydC1jb2xvcl0gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYWNrZ3JvdW5kLWxpZ2h0ZW4gWzEwJV0gLSBMaWdodG5lc3MgbGV2ZWwgb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gZm9ybS1pbnB1dC1lcnJvcihcbiAgJGJhY2tncm91bmQ6ICRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQsXG4gICRiYWNrZ3JvdW5kLWxpZ2h0ZW46IDEwJVxuKSB7XG4gICY6bm90KDpmb2N1cykge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWl4KCRiYWNrZ3JvdW5kLCAkd2hpdGUsICRiYWNrZ3JvdW5kLWxpZ2h0ZW4pO1xuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgZXJyb3Igc3R5bGVzIHRvIGEgZm9ybSBlbGVtZW50LCB1c2luZyB0aGUgdmFsdWVzIGluIHRoZSBzZXR0aW5ncyBmaWxlLlxuQG1peGluIGZvcm0tZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAkZm9ybS1zcGFjaW5nICogLTAuNTtcbiAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICBmb250LXNpemU6ICRpbnB1dC1lcnJvci1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtZXJyb3ItY29sb3I7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZXJyb3Ige1xuICBAaWYgJGFiaWRlLWlucHV0cyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGludmFsaWQgaW5wdXRzXG4gICAgLmlzLWludmFsaWQtaW5wdXQge1xuICAgICAgQGluY2x1ZGUgZm9ybS1pbnB1dC1lcnJvcjtcbiAgICB9XG4gIH1cblxuICBAaWYgJGFiaWRlLWxhYmVscyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGxhYmVscyBvZiBpbnZhbGlkIG91dHB1dHNcbiAgICAuaXMtaW52YWxpZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDtcbiAgICB9XG4gIH1cblxuICAvLyBGb3JtIGVycm9yIGVsZW1lbnRcbiAgLmZvcm0tZXJyb3Ige1xuICAgIEBpbmNsdWRlIGZvcm0tZXJyb3I7XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b25cbi8vLy9cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBidXR0b24gZWxlbWVudHMuXG4vLy8gQHR5cGUgRm9udFxuJGJ1dHRvbi1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmlsbCBmb3IgYnV0dG9ucy4gQ2FuIGVpdGhlciBiZSBgc29saWRgIG9yIGBob2xsb3dgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRidXR0b24tZmlsbDogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0aXZlIGZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHdpZHRoIGZvciBob2xsb3cgb3V0bGluZSBidXR0b25zXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAwLjlyZW0sXG4gIGxhcmdlOiAxLjI1cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gb3BhY2l0eSBmb3IgYSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAtMjAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBob2xsb3cgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzczogLTUwJSAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWw6IGZsaXAgZnJvbSBtYXJnaW4tcmlnaHQgdG8gbWFyZ2luLWxlZnQgZm9yIGRlZmF1bHRzXG5AaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG59XG5cbi8vLyB0cmFuc2l0aW9ucyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLyBUT0RPOiBEb2N1bWVudCBidXR0b24tYmFzZSgpIG1peGluXG5AbWl4aW4gYnV0dG9uLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcbiAgZm9udC1mYW1pbHk6ICRidXR0b24tZm9udC1mYW1pbHk7XG5cbiAgQGlmICh0eXBlLW9mKCRidXR0b24tcGFkZGluZykgPT0gJ21hcCcpIHtcbiAgICBAZWFjaCAkc2l6ZSwgJHBhZGRpbmcgaW4gJGJ1dHRvbi1wYWRkaW5nIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBwYWRkaW5nOiAkYnV0dG9uLXBhZGRpbmc7XG4gIH1cblxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgdHJhbnNpdGlvbjogJGJ1dHRvbi10cmFuc2l0aW9uO1xuXG4gIGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vLy8gRXhwYW5kcyBhIGJ1dHRvbiB0byBtYWtlIGl0IGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHRoZSBleHBhbmQgYmVoYXZpb3IuIFNldCB0byBgZmFsc2VgIHRvIHJldmVyc2UgdGhpcyBiZWhhdmlvci5cbkBtaXhpbiBidXR0b24tZXhwYW5kKCRleHBhbmQ6IHRydWUpIHtcbiAgQGlmICRleHBhbmQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLXN0eWxlKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgfVxuXG4gIEBpZiAkYmFja2dyb3VuZC1ob3ZlciA9PSBhdXRvIHtcbiAgICAkYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJhY2tncm91bmQsICRsaWdodG5lc3M6ICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzcyk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBSZW1vdmVzIGJhY2tncm91bmQgZmlsbCBvbiBob3ZlciBhbmQgZm9jdXMgZm9yIGhvbGxvdyBidXR0b25zLlxuQG1peGluIGJ1dHRvbi1ob2xsb3cge1xuICAmLFxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gICYuZGlzYWJsZWQsXG4gICZbZGlzYWJsZWRdIHtcbiAgICAmLFxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBidXR0b24taG9sbG93LXN0eWxlKFxuICAkY29sb3I6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzLFxuICAkYm9yZGVyLXdpZHRoOiAkYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGhcbikge1xuICAkY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGhvdmVyLWxpZ2h0bmVzcyk7XG5cbiAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRjb2xvcjtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgICYuZGlzYWJsZWQsXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRjb2xvcjtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGRpc2FibGVkIHN0eWxlcyB0byBhIGJ1dHRvbiBieSBmYWRpbmcgdGhlIGVsZW1lbnQsIHJlc2V0aW5nIHRoZSBjdXJzb3IsIGFuZCBkaXNhYmxpbmcgcG9pbnRlciBldmVudHMuXG4vLy8gQHBhcmFtIFtDb2xvcl0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHBhcmFtIFtDb2xvcl0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGRpc2FibGVkIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLWRpc2FibGVkKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRidXR0b24tY29sb3Jcbikge1xuICBAaWYgJGNvbG9yID09IGF1dG8ge1xuICAgICRjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRidXR0b24tY29sb3IsICRidXR0b24tY29sb3ItYWx0KSk7XG4gIH1cblxuICBvcGFjaXR5OiAkYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgJiwgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRyb3Bkb3duIGFycm93IHRvIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSBbMC40ZW1dIC0gU2l6ZSBvZiB0aGUgYXJyb3cuIFdlIHJlY29tbWVuZCB1c2luZyBhbiBgZW1gIHZhbHVlIHNvIHRoZSB0cmlhbmdsZSBzY2FsZXMgd2hlbiB1c2VkIGluc2lkZSBkaWZmZXJlbnQgc2l6ZXMgb2YgYnV0dG9ucy5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgW3doaXRlXSAtIENvbG9yIG9mIHRoZSBhcnJvdy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9mZnNldCBbJGJ1dHRvbi1wYWRkaW5nXSAtIERpc3RhbmNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uLiBEZWZhdWx0cyB0byB3aGF0ZXZlciB0aGUgcmlnaHQgcGFkZGluZyBvZiBhIGJ1dHRvbiBpcy5cbkBtaXhpbiBidXR0b24tZHJvcGRvd24oXG4gICRzaXplOiAwLjRlbSxcbiAgJGNvbG9yOiAkd2hpdGUsXG4gICRvZmZzZXQ6IGdldC1zaWRlKCRidXR0b24tcGFkZGluZywgcmlnaHQpXG4pIHtcbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCBkb3duKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjRlbTsgLy8gQWxpZ25zIHRoZSBhcnJvdyB3aXRoIHRoZSB0ZXh0IG9mIHRoZSBidXR0b25cblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogI3skZ2xvYmFsLXJpZ2h0fTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xuICB9XG59XG5cbi8vLyBBZGRzIGFsbCBzdHlsZXMgZm9yIGEgYnV0dG9uLiBGb3IgbW9yZSBncmFudWxhciBjb250cm9sIG92ZXIgc3R5bGVzLCB1c2UgdGhlIGluZGl2aWR1YWwgYnV0dG9uIG1peGlucy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSB0aGUgYnV0dG9uIGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0eWxlIFtzb2xpZF0gLSBTZXQgdG8gYGhvbGxvd2AgdG8gY3JlYXRlIGEgaG9sbG93IGJ1dHRvbi4gVGhlIGNvbG9yIGRlZmluZWQgaW4gYCRiYWNrZ3JvdW5kYCB3aWxsIGJlIHVzZWQgYXMgdGhlIHByaW1hcnkgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24oXG4gICRleHBhbmQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRzdHlsZTogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG5cbiAgQGlmICRzdHlsZSA9PSBzb2xpZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcbiAgfVxuICBAZWxzZSBpZiAkc3R5bGUgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG5cbiAgQGlmICRleHBhbmQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uIHtcbiAgLmJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZXhwYW5kOyB9XG5cbiAgICAvLyBDb2xvcnNcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuI3skbmFtZX0uZHJvcGRvd246OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZCBzdHlsZVxuICAgICYuZGlzYWJsZWQsXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkO1xuXG4gICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZCgkY29sb3IsIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSG9sbG93IHN0eWxlXG4gICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgJi5ob2xsb3cge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlO1xuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGVhciBzdHlsZVxuICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gY2xlYXIge1xuICAgICAgJi5jbGVhciB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGU7XG5cbiAgICAgICAgJiwgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgJiwgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG5cbiAgICAgICAgICAgICYsICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgJixcbiAgICAgICAgICAgICAgJi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEcm9wZG93biBhcnJvd1xuICAgICYuZHJvcGRvd24ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRyb3Bkb3duO1xuXG4gICAgICBAaWYgJGJ1dHRvbi1maWxsID09IGhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5ob2xsb3cge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQnV0dG9uIHdpdGggZHJvcGRvd24gYXJyb3cgb25seVxuICAgICYuYXJyb3ctb25seTo6YWZ0ZXIge1xuICAgICAgdG9wOiAtMC4xZW07XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhY2NvcmRpb25cbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY2NvcmRpb24gZ3JvdXAuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIHBsdXMgYW5kIG1pbnVzIGljb25zIHRvIHRoZSBzaWRlIG9mIGVhY2ggYWNjb3JkaW9uIHRpdGxlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGFjY29yZGlvbiB0aXRsZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGFuIGFjY29yZGlvbiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24taXRlbS1wYWRkaW5nOiAxLjI1cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGFjY29yZGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gdGhlIHNhbWUgZWxlbWVudCB0aGF0IGdldHMgYGRhdGEtYWNjb3JkaW9uYC5cbkBtaXhpbiBhY2NvcmRpb24tY29udGFpbmVyIChcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tYmFja2dyb3VuZFxuKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICZbZGlzYWJsZWRdIHtcbiAgICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGFjY29yZGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIHRoZSBsaXN0IGl0ZW0gd2l0aGluIGFuIGFjY29yZGlvbiB1bC5cbkBtaXhpbiBhY2NvcmRpb24taXRlbSB7XG4gICY6Zmlyc3QtY2hpbGQgPiA6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzIDAgMDtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCA+IDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgdGl0bGUgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpbmsgd2l0aGluIGFuIGFjY29yZGlvbiBpdGVtLlxuQG1peGluIGFjY29yZGlvbi10aXRsZSAoXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJGFjY29yZGlvbi10aXRsZS1mb250LXNpemUsXG4gICRjb2xvcjogJGFjY29yZGlvbi1pdGVtLWNvbG9yLFxuICAkYm9yZGVyOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXJcbikge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG5cbiAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICRjb2xvcjtcblxuICA6bGFzdC1jaGlsZDpub3QoLmlzLWFjdGl2ZSkgPiAmIHtcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG5cbiAgQGlmICRhY2NvcmRpb24tcGx1c21pbnVzIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICB9XG5cbiAgICAuaXMtYWN0aXZlID4gJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMTMnO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFjY29yZGlvbiBjb250ZW50LiBBcHBseSB0aGlzIHRvIHRoZSBjb250ZW50IHBhbmUgYmVsb3cgYW4gYWNjb3JkaW9uIGl0ZW0ncyB0aXRsZS5cbkBtaXhpbiBhY2NvcmRpb24tY29udGVudCAoXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZyxcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRhY2NvcmRpb24tY29udGVudC1jb2xvclxuKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG5cbiAgY29sb3I6ICRjb2xvcjtcblxuICA6bGFzdC1jaGlsZCA+ICY6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24ge1xuICAuYWNjb3JkaW9uIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tY29udGFpbmVyO1xuICB9XG5cbiAgLmFjY29yZGlvbi1pdGVtIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24taXRlbTtcbiAgfVxuXG4gIC5hY2NvcmRpb24tdGl0bGUge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi10aXRsZTtcbiAgfVxuXG4gIC5hY2NvcmRpb24tY29udGVudCB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uLW1lbnVcbi8vLy9cblxuLy8vIFNldHMgaWYgYWNjb3JkaW9uIG1lbnVzIGhhdmUgdGhlIGRlZmF1bHQgYXJyb3cgc3R5bGVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZDogbnVsbCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBib3JkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQ6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBMaXN0XG4kYWNjb3JkaW9uLXN1Ym1lbnUtdG9nZ2xlLWJvcmRlcjogJGFjY29yZGlvbm1lbnUtYm9yZGVyICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBzdWJtZW51IHRvZ2dsZSBiYWNrZ3JvdW5kIHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg6IDQwcHggIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHN1Ym1lbnUgdG9nZ2xlIGJhY2tncm91bmQgaGVpZ2h0LlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudSB7XG4gIC5hY2NvcmRpb24tbWVudSB7XG4gICAgQGlmICRhY2NvcmRpb25tZW51LWJvcmRlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgQGlmICRhY2NvcmRpb25tZW51LWJvcmRlciB7XG4gICAgICAgIGJvcmRlci10b3A6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmlzLWFjY29yZGlvbi1zdWJtZW51IGxpIHtcbiAgICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgQGlmICRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTdWJtZW51IGxpIHN0eWxpbmdcbiAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgJiA+IGEge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU3VibWVudSB0b2dnbGVcbiAgICAuc3VibWVudS10b2dnbGUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMDtcblxuICAgICAgd2lkdGg6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoO1xuICAgICAgaGVpZ2h0OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1oZWlnaHQ7XG5cbiAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRhY2NvcmRpb24tc3VibWVudS10b2dnbGUtYm9yZGVyO1xuXG4gICAgICBAaWYgJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQ7XG4gICAgICB9XG5cbiAgICAgIC8vIEFkZCB0aGUgYXJyb3cgdG8gdGhlIHRvZ2dsZVxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNnB4LCAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG5cbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSb3RhdGUgdGhlIGFycm93IHdoZW4gbWVudSBpcyBvcGVuXG4gICAgLnN1Ym1lbnUtdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9J3RydWUnXTo6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZVkoLTEpO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB9XG5cbiAgICAuc3VibWVudS10b2dnbGUtdGV4dCB7XG4gICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgICB9XG4gIH1cblxuICAvLyBJZiBhcnJvd3MgYXJlIGVuYWJsZWQsIGRpc3BsYXkgdGhlbVxuICBAaWYgJGFjY29yZGlvbm1lbnUtYXJyb3dzIHtcbiAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50Om5vdCguaGFzLXN1Ym1lbnUtdG9nZ2xlKSA+IGEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplLCAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG5cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEgKiAoJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZSAvIDIpO1xuICAgICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnRbYXJpYS1leHBhbmRlZD0ndHJ1ZSddID4gYTo6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBiYWRnZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0ZSB0ZXh0IGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGJhZGdlLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGJhZGdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1wYWRkaW5nOiAwLjNlbSAhZGVmYXVsdDtcblxuLy8vIE1pbmltdW0gd2lkdGggb2YgYSBiYWRnZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1taW53aWR0aDogMi4xZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBiYWRnZS5cbkBtaXhpbiBiYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiAkYmFkZ2UtbWlud2lkdGg7XG4gIHBhZGRpbmc6ICRiYWRnZS1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICBmb250LXNpemU6ICRiYWRnZS1mb250LXNpemU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tYmFkZ2Uge1xuICAuYmFkZ2Uge1xuICAgIEBpbmNsdWRlIGJhZGdlO1xuXG4gICAgYmFja2dyb3VuZDogJGJhZGdlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRiYWRnZS1jb2xvcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJhZGdlLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGNvbG9yLCAoJGJhZGdlLWNvbG9yLCAkYmFkZ2UtY29sb3ItYWx0KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVhZGNydW1ic1xuLy8vL1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBhY3RpdmUgYnJlYWRjcnVtYiBsaW5rLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBPcGFjaXR5IG9mIGRpc2FibGVkIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnJlYWRjcnVtYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgbWFrZXMgYnJlYWRjcnVtYiBsaW5rcyB1cHBlcmNhc2UuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIGEgc2xhc2ggYmV0d2VlbiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRicmVhZGNydW1icy1pdGVtLXNsYXNoOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYnJlYWRjcnVtYiBzbGFzaC5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lciwgYWxvbmcgd2l0aCB0aGUgc3R5bGVzIGZvciB0aGUgYDxsaT5gIGFuZCBgPGE+YCBlbGVtZW50cyBpbnNpZGUgb2YgaXQuXG5AbWl4aW4gYnJlYWRjcnVtYnMtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJGJyZWFkY3J1bWJzLW1hcmdpbjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAvLyBJdGVtIHdyYXBwZXJcbiAgbGkge1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XG5cbiAgICBmb250LXNpemU6ICRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXNsYXNoIHtcbiAgICAgIC8vIE5lZWQgdG8gZXNjYXBlIHRoZSBiYWNrc2xhc2hcbiAgICAgICRzbGFzaDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAnbHRyJywgJy8nLCAnXFxcXCcpO1xuXG4gICAgICAmOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IDFweDtcbiAgICAgICAgbWFyZ2luOiAwICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgY29udGVudDogJHNsYXNoO1xuICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW47XG4gICAgfVxuICB9XG5cbiAgLy8gUGFnZSBsaW5rc1xuICBhIHtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1icmVhZGNydW1icyB7XG4gIC5icmVhZGNydW1icyB7XG4gICAgQGluY2x1ZGUgYnJlYWRjcnVtYnMtY29udGFpbmVyO1xuXG4gICAgLmRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b24tZ3JvdXBcbi8vLy9cblxuLy8vIE1hcmdpbiBmb3IgYnV0dG9uIGdyb3Vwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweCAhZGVmYXVsdDtcblxuLy8vIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3I6ICcuYnV0dG9uJyAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gbnVtYmVyIG9mIGJ1dHRvbnMgdGhhdCBjYW4gYmUgaW4gYW4gZXZlbi13aWR0aCBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNiAhZGVmYXVsdDtcblxuLy8vIERldGVybWluZXMgaWYgJGJ1dHRvbi1yYWRpdXMgaXMgYXBwbGllZCB0byBlYWNoIGJ1dHRvbiBvciB0aGUgYnV0dG9uIGdyb3VwIGFzIGEgd2hvbGUuIFVzZSAkZ2xvYmFsLXJhZGl1cyBpbiBfc2V0dGluZ3Muc2NzcyB0byBjaGFuZ2UgcmFkaXVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEFkZCBzdHlsZXMgZm9yIGEgYnV0dG9uIGdyb3VwIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGNoaWxkLXNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmcgWyRidXR0b25ncm91cC1zcGFjaW5nXSAtIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cChcbiAgJGNoaWxkLXNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRzcGFjaW5nOiAkYnV0dG9uZ3JvdXAtc3BhY2luZ1xuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tYm90dG9tOiAkYnV0dG9uZ3JvdXAtbWFyZ2luO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgfVxuXG4gICN7JGNoaWxkLXNlbGVjdG9yfSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICB9XG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC13aWR0aCBidXR0b24gZ3JvdXAsIG1ha2luZyBlYWNoIGJ1dHRvbiBlcXVhbCB3aWR0aC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmcgWyRidXR0b25ncm91cC1zcGFjaW5nXSAtIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1leHBhbmQoXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxuICAkc3BhY2luZzogJGJ1dHRvbmdyb3VwLXNwYWNpbmcsXG4gICRjb3VudDogbnVsbFxuKSB7XG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogLSRzcGFjaW5nO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIE9uZSBjaGlsZFxuICAgICAgJjpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IDEwMCVcbiAgICAgIH1cblxuICAgICAgLy8gVHdvIG9yIG1vcmUgY2hpbGRyZWVuXG4gICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRidXR0b25ncm91cC1leHBhbmQtbWF4IHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICYsICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIH4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7cGVyY2VudGFnZSgxIC8gJGkpfSAtICN7JHNwYWNpbmd9KTtcbiAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nICogLSRidXR0b25ncm91cC1leHBhbmQtbWF4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU3RhY2tzIHRoZSBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAmOmZpcnN0LWNoaWxke1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuLy8vIFVuLXN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC11bnN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24tZ3JvdXAge1xuICAuYnV0dG9uLWdyb3VwIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXA7XG5cbiAgICAvLyBTaXplc1xuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGggR3JvdXBcbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLWV4cGFuZDsgfVxuXG4gICAgLy8gQ29sb3JzXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICYuI3skbmFtZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZCxcbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsLFxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdGFjaztcbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXVuc3RhY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgZm9yY2UtZWxlbWVudC1uZXN0aW5nXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2FsbG91dFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZhZGUgdmFsdWUgZm9yIGNhbGxvdXQgYmFja2dyb3VuZHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBpbm5lciBwYWRkaW5nIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYWxsb3V0cywgaWYgdGhlIGNhbGxvdXQgaGFzIGEgZGFyayBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHJhZGl1cyBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBBbW91bnQgdG8gdGludCBsaW5rcyB1c2VkIHdpdGhpbiBjb2xvcmVkIHBhbmVscy4gU2V0IHRvIGBmYWxzZWAgdG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUuXG4vLy8gQHR5cGUgTnVtYmVyIHwgQm9vbGVhblxuJGNhbGxvdXQtbGluay10aW50OiAzMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYSBjYWxsb3V0LCBpbmNsdWRpbmcgcGFkZGluZyBhbmQgbWFyZ2luLlxuQG1peGluIGNhbGxvdXQtYmFzZSgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46ICRjYWxsb3V0LW1hcmdpbjtcbiAgcGFkZGluZzogJGNhbGxvdXQtcGFkZGluZztcblxuICBib3JkZXI6ICRjYWxsb3V0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGNhbGxvdXQtcmFkaXVzO1xuXG4gIC8vIFJlc3BlY3QgdGhlIHBhZGRpbmcsIGZvb2wuXG4gID4gOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgcXVpY2sgc3R5bGVzIGZvciBhIGNhbGxvdXQgdXNpbmcgYSBzaW5nbGUgY29sb3IgYXMgYSBiYXNlbGluZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRjYWxsb3V0LWJhY2tncm91bmRdIC0gQ29sb3IgdG8gdXNlLlxuQG1peGluIGNhbGxvdXQtc3R5bGUoJGNvbG9yOiAkY2FsbG91dC1iYWNrZ3JvdW5kKSB7XG4gICRiYWNrZ3JvdW5kOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRjYWxsb3V0LWJhY2tncm91bmQtZmFkZSk7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGNhbGxvdXQtZm9udC1jb2xvciwgJGNhbGxvdXQtZm9udC1jb2xvci1hbHQpKTtcbn1cblxuQG1peGluIGNhbGxvdXQtc2l6ZSgkcGFkZGluZykge1xuICBwYWRkaW5nLXRvcDogJHBhZGRpbmc7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmc7XG4gIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG59XG5cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhbGxvdXQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskY2FsbG91dC1iYWNrZ3JvdW5kXSAtIENvbG9yIHRvIHVzZS5cbkBtaXhpbiBjYWxsb3V0KCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xuICBAaW5jbHVkZSBjYWxsb3V0LWJhc2U7XG4gIEBpbmNsdWRlIGNhbGxvdXQtc3R5bGUoJGNvbG9yKTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FsbG91dCB7XG4gIC5jYWxsb3V0IHtcbiAgICBAaW5jbHVkZSBjYWxsb3V0O1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBjYWxsb3V0LXN0eWxlKCRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBjYWxsb3V0LXNpemUoMC41cmVtKTtcbiAgICB9XG5cbiAgICAmLmxhcmdlIHtcbiAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc2l6ZSgzcmVtKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNhcmRcbi8vLy9cblxuLy8vIERlZnVhbHQgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYXJkcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlLlxuLy8vIEB0eXBlIExpc3RcbiRjYXJkLWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjYXJkIHNoYWRvdy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FyZC1zaGFkb3c6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTGlzdFxuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4uXG4vLy8gQHR5cGUgbnVtYmVyXG4kY2FyZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBmb250IGNvbG9yIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWFyZ2luIC0gQm90dG9tIG1hcmdpbiBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRib3JkZXIgLSBCb3JkZXIgYXJvdW5kIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhZGl1cyAtIGJvcmRlciByYWRpdXMgb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hhZG93IC0gYm94IHNoYWRvdyBvZiB0aGUgY2FyZC5cbkBtaXhpbiBjYXJkLWNvbnRhaW5lcihcbiAgJGJhY2tncm91bmQ6ICRjYXJkLWJhY2tncm91bmQsXG4gICRjb2xvcjogJGNhcmQtZm9udC1jb2xvcixcbiAgJG1hcmdpbjogJGNhcmQtbWFyZ2luLWJvdHRvbSxcbiAgJGJvcmRlcjogJGNhcmQtYm9yZGVyLFxuICAkcmFkaXVzOiAkY2FyZC1ib3JkZXItcmFkaXVzLFxuICAkc2hhZG93OiAkY2FyZC1zaGFkb3dcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG5cbiAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbjtcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG5cbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgZGl2aWRlci5cbkBtaXhpbiBjYXJkLWRpdmlkZXIoXG4gICRiYWNrZ3JvdW5kOiAkY2FyZC1kaXZpZGVyLWJhY2tncm91bmQsXG4gICRwYWRkaW5nOiAkY2FyZC1wYWRkaW5nXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgc2VjdGlvbi5cbkBtaXhpbiBjYXJkLXNlY3Rpb24oXG4gICRwYWRkaW5nOiAkY2FyZC1wYWRkaW5nXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FyZCB7XG4gIC5jYXJkIHtcbiAgICBAaW5jbHVkZSBjYXJkLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5jYXJkLWRpdmlkZXIge1xuICAgIEBpbmNsdWRlIGNhcmQtZGl2aWRlcjtcbiAgfVxuXG4gIC5jYXJkLXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIGNhcmQtc2VjdGlvbjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2xvc2UtYnV0dG9uXG4vLy8vXG5cbi8vLyBEZWZhdWx0IHBvc2l0aW9uIG9mIHRoZSBjbG9zZSBidXR0b24uIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgYHJpZ2h0YCBvciBgbGVmdGAsIGFuZCB0aGUgc2Vjb25kIHZhbHVlIHNob3VsZCBiZSBgdG9wYCBvciBgYm90dG9tYC5cbi8vLyBAdHlwZSBMaXN0XG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcCAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IChvciBsZWZ0KSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxuICBzbWFsbDogMC42NnJlbSxcbiAgbWVkaXVtOiAxcmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRvcCAob3IgYm90dG9tKSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IChcbiAgc21hbGw6IDAuMzNlbSxcbiAgbWVkaXVtOiAwLjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tc2l6ZTogKFxuICBzbWFsbDogMS41ZW0sXG4gIG1lZGl1bTogMmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsaW5lLWhlaWdodCBvZiB0aGUgY2xvc2UgYnV0dG9uLiBJdCBhZmZlY3RzIHRoZSBzcGFjaW5nIG9mIHRoZSBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlclxuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDEgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgQ29sb3JcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbiB3aGVuIGJlaW5nIGhvdmVyZWQgb24uXG4vLy8gQHR5cGUgQ29sb3JcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrICFkZWZhdWx0O1xuXG5cbi8vLyBHZXQgdGhlIHNpemUgYW5kIHBvc2l0aW9uIGZvciBhIGNsb3NlIGJ1dHRvbi4gSWYgdGhlIGlucHV0IHZhbHVlIGlzIGEgbnVtYmVyLCB0aGUgbnVtYmVyIGlzIHJldHVybmVkLiBJZiB0aGUgaW5wdXQgdmFsdWUgaXMgYSBjb25maWcgbWFwIGFuZCB0aGUgbWFwIGhhcyB0aGUga2V5IGAkc2l6ZWAsIHRoZSB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJHZhbHVlIC0gQSBudW1iZXIgb3IgbWFwIHRoYXQgcmVwcmVzZW50cyB0aGUgc2l6ZSBvciBwb3NpdGlvbiB2YWx1ZShzKSBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBUaGUgc2l6ZSBvZiB0aGUgY2xvc2UgYnV0dG9uIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gVGhlIGdpdmVuIG51bWJlciBvciB0aGUgdmFsdWUgZm91bmQgaW4gdGhlIG1hcC5cbkBmdW5jdGlvbiAtemYtZ2V0LXNpemUtdmFsKCR2YWx1ZSwgJHNpemUpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIC8vIElmIGl0IGlzLCBqdXN0IHJldHVybiB0aGUgbnVtYmVyXG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgc2l6ZSBuYW1lIGV4aXN0cyBpbiB0aGUgdmFsdWUgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCR2YWx1ZSwgJHNpemUpIHtcbiAgICAvLyBJZiBpdCBkb2VzLCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCR2YWx1ZSwgJHNpemUpO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBzaXplIGFuZCBwb3NpdGlvbiBvZiBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIFttZWRpdW1dIC0gVGhlIHNpemUgdG8gdXNlLiBTZXQgdG8gYHNtYWxsYCB0byBjcmVhdGUgYSBzbWFsbCBjbG9zZSBidXR0b24uIFRoZSAnbWVkaXVtJyB2YWx1ZXMgZGVmaW5lZCBpbiBgJGNsb3NlYnV0dG9uLSpgIHZhcmlhYmxlcyB3aWxsIGJlIHVzZWQgYXMgdGhlIGRlZmF1bHQgc2l6ZSBhbmQgcG9zaXRpb24gb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbkBtaXhpbiBjbG9zZS1idXR0b24tc2l6ZSgkc2l6ZSkge1xuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcblxuICAjeyR4fTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWwsICRzaXplKTtcbiAgI3skeX06IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbCwgJHNpemUpO1xuICBmb250LXNpemU6IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLXNpemUsICRzaXplKTtcbiAgbGluZS1oZWlnaHQ6IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQsICRzaXplKTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNsb3NlIGJ1dHRvbiwgdXNpbmcgdGhlIHN0eWxlcyBpbiB0aGUgc2V0dGluZ3MgdmFyaWFibGVzLlxuQG1peGluIGNsb3NlLWJ1dHRvbiB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jbG9zZS1idXR0b24ge1xuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBjbG9zZS1idXR0b247XG5cbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgY2xvc2UtYnV0dG9uLXNpemUoc21hbGwpIH1cbiAgICAmLCAmLm1lZGl1bSB7IEBpbmNsdWRlIGNsb3NlLWJ1dHRvbi1zaXplKG1lZGl1bSkgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZW51XG4vLy8vXG5cbi8vLyBNYXJnaW4gb2YgYSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gTGVmdC1oYW5kIG1hcmdpbiBvZiBhIG5lc3RlZCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbWFyZ2luLW5lc3RlZDogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGl0ZW1zIGluIGEgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWl0ZW0tcGFkZGluZzogMC43cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhbiBpY29uIGFuZCB0ZXh0IGluIGEgbWVudSBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYW4gaG92ZXJlZCBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBmb3IgYm9yZGVyZWQgbWVudVxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1ib3JkZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgTWVudS5cbkBtaXhpbiBtZW51LWJhc2Uge1xuICBtYXJnaW46ICRtZW51LW1hcmdpbjtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIExpc3QgaXRlbXMgYXJlIHRhYmxlIGNlbGwgdG8gYWxsb3cgZm9yIHZlcnRpY2FsIGFsaWdubWVudFxuICA+IGxpIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCBsaW5lIGhlaWdodCB0byBtYWtlIHRoZSBoZWlnaHQgb2YgdGhlIG92ZXJhbGwgaXRlbSBlYXNpZXIgdG8gY2FsY3VsYXRlXG4gID4gbGkgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkbWVudS1pdGVtLXBhZGRpbmc7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb2YgaW5uZXIgZWxlbWVudHNcbiAgaW5wdXQsXG4gIHNlbGVjdCxcbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBFeHBhbmRzIHRoZSBpdGVtcyBvZiBhIE1lbnUsIHNvIGVhY2ggaXRlbSBpcyB0aGUgc2FtZSB3aWR0aC5cbkBtaXhpbiBtZW51LWV4cGFuZCB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgID4gbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIH1cblxuICA+IGxpOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgYSBNZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbaG9yaXpvbnRhbF0gLSBEaXJlY3Rpb24gb2YgdGhlIE1lbnUuIENhbiBiZSBgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYC5cbkBtaXhpbiBtZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAgID4gbGkge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgPiBsaSB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICA+IGxpIHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgPiBsaSAgPiBhIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgPiBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbXBsZSBNZW51LCB3aGljaCBoYXMgbm8gcGFkZGluZyBvciBob3ZlciBzdGF0ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgWyRnbG9iYWwtbGVmdF0gLSBEaXJlY3Rpb24gb2YgdGhlIG1lbnUuIFNldCB0byBgbnVsbGAgdG8gZG8gbm90IGdlbmVyYXRlIHN0eWxlcyBmb3IgZGlyZWN0aW9uLlxuQG1peGluIG1lbnUtc2ltcGxlKCRkaXI6ICRnbG9iYWwtbGVmdCkge1xuICBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgQGlmICRkaXIgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVudS1zaW1wbGUtZGlyZWN0aW9uKCRkaXIpO1xuICB9XG59XG5cbi8vLyBEaXJlY3Rpb24gbW9kaWZpZXIgZm9yIGEgc2ltcGxlIE1lbnVcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgWyRnbG9iYWwtbGVmdF0gLSBEaXJlY3Rpb24gb2YgdGhlIG1lbnVcbkBtaXhpbiBtZW51LXNpbXBsZS1kaXJlY3Rpb24oJGRpcjogJGdsb2JhbC1sZWZ0KSB7XG4gICRuby1tYXJnaW4tZGlyOiAkZGlyO1xuICAkbWFyZ2luLWRpcjogZGlyZWN0aW9uLW9wcG9zaXRlKCRkaXIpO1xuXG4gIGxpIHtcbiAgICBtYXJnaW4tI3skbm8tbWFyZ2luLWRpcn06IDA7XG4gICAgbWFyZ2luLSN7JG1hcmdpbi1kaXJ9OiBnZXQtc2lkZSgkbWVudS1pdGVtLXBhZGRpbmcsICRtYXJnaW4tZGlyKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbmVzdGVkIE1lbnUsIGJ5IGFkZGluZyBgbWFyZ2luLWxlZnRgIHRvIHRoZSBtZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRwYWRkaW5nIFthdXRvXSAtIExlbmd0aCBvZiB0aGUgbWFyZ2luLlxuQG1peGluIG1lbnUtbmVzdGVkKCRtYXJnaW46ICRtZW51LW1hcmdpbi1uZXN0ZWQpIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG1hcmdpbjtcbn1cblxuLy8vIEFkZHMgc3VwcG9ydCBmb3IgaWNvbnMgdG8gTWVudSBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRwb3NpdGlvbiBbc2lkZV0gLSBQb3NpdGlvbmluZyBmb3IgaWNvbnMuIENhbiBiZSBgc2lkZWAgKGxlZnQsIG9yIHJpZ2h0IG9uIFJUTCkgb3IgYHRvcGAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYmFzZSBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBwcmV2ZW50IHRoZSBzaGFyZWQgQ1NTIGJldHdlZW4gc2lkZS0gYW5kIHRvcC1hbGlnbmVkIGljb25zIGZyb20gYmVpbmcgcHJpbnRlZC4gU2V0IHRoaXMgdG8gYGZhbHNlYCBpZiB5b3UncmUgY2FsbGluZyB0aGUgbWl4aW4gbXVsdGlwbGUgdGltZXMgb24gdGhlIHNhbWUgZWxlbWVudC5cbkBtaXhpbiBtZW51LWljb25zKCRwb3NpdGlvbjogc2lkZSwgJGJhc2U6IHRydWUpIHtcbiAgQGlmICRiYXNlIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgID4gbGkgPiBhIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgPiBsaSA+IGEge1xuICAgICAgICBpbWcsXG4gICAgICAgIGksXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICsgc3BhbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkcG9zaXRpb24gPT0gc2lkZSB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkbWVudS1pY29uLXNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG8gJG1lbnUtaWNvbi1zcGFjaW5nO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRtZW51LWljb24tc3BhY2luZztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1lbnUtdGV4dCB7XG4gIHBhZGRpbmc6ICRtZW51LWl0ZW0tcGFkZGluZztcblxuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZW51IHtcbiAgLm1lbnUge1xuICAgIEBpbmNsdWRlIG1lbnUtYmFzZTtcbiAgICBAaW5jbHVkZSBtZW51LWljb25zO1xuXG4gICAgLy8gRGVmYXVsdCBvcmllbnRhdGlvbjogaG9yaXpvbnRhbFxuICAgICYsICYuaG9yaXpvbnRhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICB9XG5cbiAgICAvLyBFdmVuLXdpZHRoIG1vZGlmaWVyIGZvciBob3Jpem9udGFsIG9yaWVudGF0aW9uXG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICB9XG5cbiAgICAvLyBWZXJ0aWNhbCBvcmllbnRhdGlvbiBtb2RpZmllclxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiBmYWxzZSkge1xuICAgICAgJi4jeyQtemYtc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS1leHBhbmRlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTaW1wbGVcbiAgICAmLnNpbXBsZSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXNpbXBsZTtcblxuICAgICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1zaW1wbGUtZGlyZWN0aW9uKCRnbG9iYWwtcmlnaHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsaWduIHJpZ2h0XG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICAgICAgICA+IGxpIHtcbiAgICAgICAgICBmbG9hdDogJGdsb2JhbC1yaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIGljb25zXG4gICAgJi5pY29uLXRvcCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb25zKHRvcCwgJGJhc2U6IGZhbHNlKTtcbiAgICAgIC8vIE1ha2UgdmVydGljYWwgbWVudSB3aXRoIGljb25zIG9uIHRvcCB3b3JrXG4gICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgYSA+IHNwYW4ge1xuICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmLm5lc3RlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZDtcbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgc3RhdGVcbiAgICAuaXMtYWN0aXZlID4gYSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgY29sb3I6ICRtZW51LWl0ZW0tY29sb3ItYWN0aXZlO1xuICAgIH1cblxuICAgIC8vIE1lbnUgd2l0aCBib3JkZXJcbiAgICAmLm1lbnUtYm9yZGVyZWQge1xuICAgICAgbGkge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkbWVudS1ib3JkZXI7XG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNZW51IHdpdGggYmFja2dyb3VuZCBob3ZlclxuICAgICYubWVudS1ob3ZlciB7XG4gICAgICBsaTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtZW51LWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWVudS10ZXh0IHtcbiAgICBAaW5jbHVkZSBtZW51LXRleHQ7XG4gIH1cblxuICAvLyBBbGlnbiBjZW50ZXJcbiAgLm1lbnUtY2VudGVyZWQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgID4gLm1lbnUge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6IGNlbnRlciwgJHk6IHRvcCk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIH1cbiAgICAgICYudmVydGljYWwgPiBsaSA+IGEge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmV2ZW50IEZPVUMgd2hlbiB1c2luZyB0aGUgUmVzcG9uc2l2ZSBNZW51IHBsdWdpblxuICAubm8tanMgW2RhdGEtcmVzcG9uc2l2ZS1tZW51XSB1bCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiQG1peGluIGZvdW5kYXRpb24tbWVudS1pY29uIHtcbiAgLm1lbnUtaWNvbiB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyKCRjb2xvcjogJHRpdGxlYmFyLWljb24tY29sb3IsICRjb2xvci1ob3ZlcjogJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXIpO1xuICB9XG5cbiAgLm1lbnUtaWNvbi5kYXJrIHtcbiAgICBAaW5jbHVkZSBoYW1idXJnZXI7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyaWxsZG93blxuLy8vL1xuXG4vLy8gVHJhbnNpdGlvbiBwcm9wZXJ0eSB0byB1c2UgZm9yIGFuaW1hdGluZyBtZW51cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kZHJpbGxkb3duLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXIgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGFycm93cyB0byBkcmlsbGRvd24gaXRlbXMgd2l0aCBzdWJtZW51cywgYXMgd2VsbCBhcyB0aGUgYmFjayBidXR0b24uXG4vLy8gQHR5cGUgQm9vbGVhblxuJGRyaWxsZG93bi1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJpbGxkb3duIHN1Ym1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnUge1xuICAvLyBBcHBsaWVkIHRvIHRoZSBNZW51IGNvbnRhaW5lclxuICAuaXMtZHJpbGxkb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICYuYW5pbWF0ZS1oZWlnaHQge1xuICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuNXM7XG4gICAgfVxuICB9XG5cbiAgLy8gQXBwbGllZCB0byBuZXN0ZWQgPHVsPnNcbiAgLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICB6LWluZGV4OiAtMTtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICRkcmlsbGRvd24tYmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uOiAkZHJpbGxkb3duLXRyYW5zaXRpb247XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIC0xMDAlLCAxMDAlKSk7XG4gICAgfVxuXG4gICAgJi5pcy1jbG9zaW5nIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgMTAwJSwgLTEwMCUpKTtcbiAgICB9XG4gIH1cblxuICAuZHJpbGxkb3duLXN1Ym1lbnUtY292ZXItcHJldmlvdXMge1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIH1cblxuICBAaWYgJGRyaWxsZG93bi1hcnJvd3Mge1xuICAgIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyaWxsZG93bi1hcnJvdy1zaXplLCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLXJpZ2h0KTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEgKiAkZHJpbGxkb3duLWFycm93LXNpemU7XG4gICAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmpzLWRyaWxsZG93bi1iYWNrID4gYTo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJpbGxkb3duLWFycm93LXNpemUsICRkcmlsbGRvd24tYXJyb3ctY29sb3IsICRnbG9iYWwtbGVmdCk7XG4gICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9LXdpZHRoOiAwO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwLjc1cmVtOyAvLyBDcmVhdGVzIHNwYWNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dFxuXG4gICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9LXdpZHRoOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd25cbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXdpZHRoOiAzMDBweCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBkcm9wZG93biBwYW5lcy4gRWFjaCBzaXplIGlzIGEgQ1NTIGNsYXNzIHlvdSBjYW4gYXBwbHkuXG4vLy8gQHR5cGUgTWFwXG4kZHJvcGRvd24tc2l6ZXM6IChcbiAgdGlueTogMTAwcHgsXG4gIHNtYWxsOiAyMDBweCxcbiAgbGFyZ2U6IDQwMHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEFwcGxpZXMgc3R5bGVzIGZvciBhIGJhc2ljIGRyb3Bkb3duLlxuQG1peGluIGRyb3Bkb3duLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTA7XG5cbiAgd2lkdGg6ICRkcm9wZG93bi13aWR0aDtcbiAgcGFkZGluZzogJGRyb3Bkb3duLXBhZGRpbmc7XG5cbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBkaXNwbGF5OiBub25lO1xuICBib3JkZXI6ICRkcm9wZG93bi1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRkcm9wZG93bi1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRkcm9wZG93bi1iYWNrZ3JvdW5kO1xuXG4gIGZvbnQtc2l6ZTogJGRyb3Bkb3duLWZvbnQtc2l6ZTtcblxuXG4gIC8vIEFsbG93IGFuIGludGVybWl0dGVudCBzdGF0ZSB0byBkbyBwb3NpdGlvbmluZyBiZWZvcmUgbWFraW5nIHZpc2libGUuXG4gICYuaXMtb3BlbmluZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmLmlzLW9wZW4ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJvcGRvd24ge1xuICAuZHJvcGRvd24tcGFuZSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tY29udGFpbmVyO1xuICB9XG5cbiAgQGVhY2ggJG5hbWUsICRzaXplIGluICRkcm9wZG93bi1zaXplcyB7XG4gICAgLmRyb3Bkb3duLXBhbmUuI3skbmFtZX0ge1xuICAgICAgd2lkdGg6ICRzaXplO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd24tbWVudVxuLy8vL1xuXG4vLy8gRW5hYmxlcyBhcnJvd3MgZm9yIGl0ZW1zIHdpdGggZHJvcGRvd24gbWVudXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuLy8vIE1pbmltdW0gd2lkdGggb2YgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1taW4td2lkdGg6IDIwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJvcGRvd25zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLyBCb3JkZXIgd2lkdGggZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vIFVzZWQgdG8gYWRqdXN0IHRvcCBtYXJnaW4gb2YgYSBzdWItbWVudSBpZiBhIGJvcmRlciBpcyB1c2VkLlxuLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aDogbnRoKCRkcm9wZG93bm1lbnUtYm9yZGVyLCAxKTtcblxuQG1peGluIGxlZnQtcmlnaHQtYXJyb3dzIHtcbiAgPiBhOjphZnRlciB7XG4gICAgI3skZ2xvYmFsLXJpZ2h0fTogMTRweDtcbiAgfVxuXG4gICYub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcbiAgfVxuXG4gICYub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICB9XG59XG5cbkBtaXhpbiBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgID4gbGkub3BlbnMtbGVmdCB7XG4gICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpLm9wZW5zLXJpZ2h0IHtcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAxLjVyZW07XG4gICAgICB9XG5cbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuICAgICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xICogKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSAvIDIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICA+IGxpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgfVxuXG4gICAgICAmLm9wZW5zLWxlZnQge1xuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICByaWdodDogMTAwJTtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtcmlnaHQge1xuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIGxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93bi1tZW51IHtcbiAgLmRyb3Bkb3duLm1lbnUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgfVxuXG4gICAgLm5vLWpzICYgdWwge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICAmLiN7JHNpemV9LWhvcml6b250YWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi4jeyRzaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsIHtcbiAgICB3aWR0aDogMTAwcHg7XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGE6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgbWFyZ2luLXRvcDogLTEgKiAkZHJvcGRvd25tZW51LWFycm93LXNpemU7XG4gICAgfVxuXG4gICAgJi5vcGVucy1pbm5lciA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcblxuICAgICAgdG9wOiAxMDAlO1xuICAgICAgQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICByaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgfVxuXG4gICAgJi5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgei1pbmRleDogMTtcblxuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWluLXdpZHRoOiAkZHJvcGRvd25tZW51LW1pbi13aWR0aDtcblxuICAgIGJvcmRlcjogJGRyb3Bkb3dubWVudS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kO1xuXG4gICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIGxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAodHlwZS1vZigkZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCkgPT0gJ251bWJlcicpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgbWFyZ2luLXRvcDogKC0kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBbVE9ET10gQ3V0IGJhY2sgc3BlY2lmaWNpdHlcbiAgICAvLyY6bm90KC5qcy1kcm9wZG93bi1ub2hvdmVyKSA+IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudDpob3ZlciA+ICYsIC8vIHdoeSBpcyB0aGlzIGxpbmUgbmVlZGVkPyBPcGVuaW5nIGlzIGhhbmRsZWQgYnkgSlMgYW5kIHRoaXMgY2F1c2VzIHNvbWUgdWdseSBmbGlja2VyaW5nIHdoZW4gdGhlIHN1YiBpcyByZS1wb3NpdGlvbmVkIGF1dG9tYXRpY2FsbHkuLi5cbiAgICAmLmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJlc3BvbnNpdmUtZW1iZWRcbi8vLy9cblxuLy8vIE1hcmdpbiBiZWxvdyBhIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gQXNwZWN0IHJhdGlvcyB1c2VkIHRvIGRldGVybWluZSBwYWRkaW5nLWJvdHRvbSBvZiByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lcnMuXG4vLy8gQHR5cGUgTWFwXG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3M6IChcbiAgZGVmYXVsdDogNCBieSAzLFxuICB3aWRlc2NyZWVuOiAxNiBieSA5LFxuKSAhZGVmYXVsdDtcblxuLy8gV0FSTklORzogV2lsbCBiZSByZW1vdmVkIGluIHZlcnNpb24gNi40XG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpbzogZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ3xMaXN0fSAkcmF0aW8gW2RlZmF1bHRdIC0gUmF0aW8gb2YgdGhlIGNvbnRhaW5lci4gQ2FuIGJlIGEga2V5IGZyb20gdGhlIGAkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3NgIG1hcCBvciBhIGxpc3QgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuQG1peGluIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KSB7XG4gIEBpZiB0eXBlLW9mKCRyYXRpbykgPT0gJ3N0cmluZycge1xuICAgICRyYXRpbzogbWFwLWdldCgkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3MsICRyYXRpbyk7XG4gIH1cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206ICRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b207XG4gIHBhZGRpbmctYm90dG9tOiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgaWZyYW1lLFxuICBvYmplY3QsXG4gIGVtYmVkLFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQge1xuICAucmVzcG9uc2l2ZS1lbWJlZCxcbiAgLmZsZXgtdmlkZW8ge1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KTtcblxuICAgICRyYXRpb3M6IG1hcC1yZW1vdmUoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLGRlZmF1bHQpO1xuXG4gICAgQGVhY2ggJG5hbWUsICRyYXRpbyBpbiAkcmF0aW9zIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LXZpZGVvIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkKCkuIGZvdW5kYXRpb24tZmxleC12aWRlbygpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG59XG5cbkBtaXhpbiBmbGV4LXZpZGVvKCRyYXRpbzogJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW8pIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgcmVzcG9uc2l2ZS1lbWJlZCgpLiBmbGV4LXZpZGVvKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi40Lic7XG4gIEBpbmNsdWRlIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGxhYmVsXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRlIHRleHQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWNvbG9yLWFsdDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JpbmcgY2xhc3Nlcy4gQSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgaW4geW91ciBDU1MsIGxpa2UgYC5zZWNvbmRhcnlgLCBgLnN1Y2Nlc3NgLCBhbmQgc28gb24uXG4vLy8gQHR5cGUgTWFwXG4kbGFiZWwtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtZm9udC1zaXplOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1wYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIG9mIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGJhc2Ugc3R5bGVzIGZvciBhIGxhYmVsLlxuQG1peGluIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAkbGFiZWwtcGFkZGluZztcblxuICBib3JkZXItcmFkaXVzOiAkbGFiZWwtcmFkaXVzO1xuXG4gIGZvbnQtc2l6ZTogJGxhYmVsLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbGFiZWwge1xuICAubGFiZWwge1xuICAgIEBpbmNsdWRlIGxhYmVsO1xuXG4gICAgYmFja2dyb3VuZDogJGxhYmVsLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGxhYmVsLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGNvbG9yLCAoJGxhYmVsLWNvbG9yLCAkbGFiZWwtY29sb3ItYWx0KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZWRpYS1vYmplY3Rcbi8vLy9cblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgYSBtZWRpYSBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IGFuZCByaWdodCBwYWRkaW5nIG9uIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIG9mIGltYWdlcyB3aXRoaW4gYSBtZWRpYSBvYmplY3QsIHdoZW4gdGhlIG9iamVjdCBpcyBzdGFja2VkIHZlcnRpY2FsbHkuIFNldCB0byAnYXV0bycgdG8gdXNlIHRoZSBpbWFnZSdzIG5hdHVyYWwgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDogMTAwJSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG1lZGlhIG9iamVjdCBjb250YWluZXIuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgYmxvY2spO1xuICBtYXJnaW4tYm90dG9tOiAkbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRpbmcgWyRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmddIC0gUGFkZGluZyBiZXR3ZWVuIHNlY3Rpb25zLlxuQG1peGluIG1lZGlhLW9iamVjdC1zZWN0aW9uKCRwYWRkaW5nOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICRwYWRkaW5nO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkOm5vdCg6bnRoLWNoaWxkKDIpKSB7XG4gICAgcGFkZGluZy0jeyRnbG9iYWwtbGVmdH06ICRwYWRkaW5nO1xuICB9XG5cbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gc3RhY2sgc2VjdGlvbnMgb2YgYSBtZWRpYSBvYmplY3QuIEFwcGx5IHRoaXMgdG8gdGhlIHNlY3Rpb24gZWxlbWVudHMsIG5vdCB0aGUgY29udGFpbmVyLlxuQG1peGluIG1lZGlhLW9iamVjdC1zdGFjayB7XG4gIHBhZGRpbmc6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGltZyB7XG4gICAgd2lkdGg6ICRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdCB7XG4gIC5tZWRpYS1vYmplY3Qge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1jb250YWluZXI7XG5cbiAgICBpbWcge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgJi5zdGFjay1mb3ItI3skLXpmLXplcm8tYnJlYWtwb2ludH0ge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrLWZvci0jeyQtemYtemVyby1icmVha3BvaW50fSAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zdGFjaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zZWN0aW9uO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAmLm1haW4tc2VjdGlvbiB7XG4gICAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICYubWlkZGxlIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cblxuICAgICAgJi5ib3R0b20ge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgb2ZmLWNhbnZhc1xuLy8vL1xuXG4vLy8gV2lkdGggb2YgYSBsZWZ0L3JpZ2h0IG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXNpemU6IDI1MHB4ICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgdG9wL2JvdHRvbSBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplOiAyNTBweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgZm9yIHRoZSBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIFNoYWRvd1xuJG9mZmNhbnZhcy1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjcpICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHdpdGggdGhlIGBwdXNoYCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMSAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB3aXRoIHRoZSBgb3ZlcmxhcGAgdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6IDEwICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHVzaW5nIHRoZSBgcmV2ZWFsLWZvci0qYCBjbGFzc2VzIG9yIG1peGluLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4OiAxICFkZWZhdWx0O1xuXG4vLy8gTGVuZ3RoIG9mIHRoZSBhbmltYXRpb24gb24gYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXMgIWRlZmF1bHQ7XG5cbi8vLyBUaW1pbmcgZnVuY3Rpb24gb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGEgcmV2ZWFsZWQgb2ZmLWNhbnZhcyB3aWxsIGJlIGZpeGVkLXBvc2l0aW9uLCBhbmQgc2Nyb2xsIHdpdGggdGhlIHNjcmVlbi5cbi8vLyBAdHlwZSBCb29sXG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBvdmVybGF5IHRoYXQgYXBwZWFycyB3aGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3Blbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIENTUyBjbGFzcyB1c2VkIGZvciB0aGUgbWFpbiBjb250ZW50IGFyZWEuIFRoZSBvZmYtY2FudmFzIG1peGlucyB1c2UgdGhpcyB0byB0YXJnZXQgdGhlIHBhZ2UgY29udGVudC5cbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCcgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2VsaW5lIHN0eWxlcyBmb3Igb2ZmLWNhbnZhcy4gVGhpcyBDU1MgaXMgcmVxdWlyZWQgdG8gbWFrZSB0aGUgb3RoZXIgcGllY2VzIHdvcmsuXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNpY3Mge1xuICAvLyBIaWRlcyBvdmVyZmxvdyBvbiBib2R5IHdoZW4gYW4gb2ZmLWNhbnZhcyBwYW5lbCBpcyBvcGVuLlxuICAuaXMtb2ZmLWNhbnZhcy1vcGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBvdmVybGF5IChnZW5lcmF0ZWQgYnkgSmF2YVNjcmlwdClcbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmcsIHZpc2liaWxpdHkgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuXG4gICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ7XG5cbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgJi5pcy1jbG9zYWJsZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJi5pcy1vdmVybGF5LWFic29sdXRlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gICAgXG4gICAgJi5pcy1vdmVybGF5LWZpeGVkIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGFuIG9mZi1jYW52YXMgd3JhcHBlci5cbkBtaXhpbiBvZmYtY2FudmFzLXdyYXBwZXIoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhbiBvZmYtY2FudmFzIHBhbmVsLlxuQG1peGluIG9mZi1jYW52YXMtYmFzZShcbiAgJGJhY2tncm91bmQ6ICRvZmZjYW52YXMtYmFja2dyb3VuZCxcbiAgJHRyYW5zaXRpb246ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZyxcbiAgJGZpeGVkOiB0cnVlXG4pIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuXG4gIEBpZiAkZml4ZWQgPT0gdHJ1ZSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICB6LWluZGV4OiAkb2ZmY2FudmFzLXB1c2gtemluZGV4O1xuXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuXG4gIC8vIE92ZXJsYXAgb25seSBzdHlsZXMuXG4gICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwIHtcbiAgICB6LWluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4O1xuXG4gICAgJi5pcy1vcGVuIHtcbiAgICAgIGJveC1zaGFkb3c6ICRvZmZjYW52YXMtc2hhZG93O1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldHMgdHJhbnNmb3JtIHRvIDAgdG8gc2hvdyBhbiBvZmYtY2FudmFzIHBhbmVsLlxuICAmLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0byBwb3NpdGlvbiBhbiBvZmYtY2FudmFzIHBhbmVsIHRvIHRoZSBsZWZ0L3JpZ2h0L3RvcC9ib3R0b20uXG5AbWl4aW4gb2ZmLWNhbnZhcy1wb3NpdGlvbihcbiAgJHBvc2l0aW9uOiBsZWZ0LFxuICAkb3JpZW50YXRpb246IGhvcml6b250YWwsXG4gICRzaXplOiBpZigkb3JpZW50YXRpb24gPT0gaG9yaXpvbnRhbCwgJG9mZmNhbnZhcy1zaXplLCAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUpXG4pIHtcbiAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgJi5pcy1vcGVuIH4gLiN7JG1haW5jb250ZW50LWNsYXNzfSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICAmLmlzLW9wZW4gfiAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHNpemUpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHNpemU7XG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICAmLmlzLW9wZW4gfiAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkc2l6ZSk7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcblxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkc2l6ZSk7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgJi5pcy1vcGVuIH4gLiN7JG1haW5jb250ZW50LWNsYXNzfSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBJZiAkb2ZmY2FudmFzLXNoYWRvdyBpcyBzZXQsIGFkZCBpdCBhcyBhIHBzZXVkby1lbGVtZW50LlxuICAvLyBUaGlzIG1pbWljcyB0aGUgb2ZmLWNhbnZhcyBwYW5lbCBoYXZpbmcgYSBsb3dlciB6LWluZGV4LCB3aXRob3V0IGhhdmluZyB0byBoYXZlIG9uZS5cbiAgQGlmICRvZmZjYW52YXMtc2hhZG93IHtcbiAgICAmLmlzLXRyYW5zaXRpb24tcHVzaDo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuXG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcblxuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuXG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICBib3gtc2hhZG93OiAkb2ZmY2FudmFzLXNoYWRvdztcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIH1cbiAgfVxuXG4gIC8vIE5vIHRyYW5zZm9ybSBvbiBvdmVybGFwIHRyYW5zaXRpb25cbiAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB+IC4jeyRtYWluY29udGVudC1jbGFzc30ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgc3R5bGVzIGZvciB0aGUgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gb2ZmLWNhbnZhcy1jb250ZW50KCkge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0aGF0IHJldmVhbCBhbiBvZmYtY2FudmFzIHBhbmVsLlxuQG1peGluIG9mZi1jYW52YXMtcmV2ZWFsKFxuJHBvc2l0aW9uOiBsZWZ0LFxuJHppbmRleDogJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LFxuJGNvbnRlbnQ6ICRtYWluY29udGVudC1jbGFzc1xuKSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgei1pbmRleDogJHppbmRleDtcbiAgdHJhbnNpdGlvbjogbm9uZTtcblxuICBAaWYgbm90ICRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAmIH4gLiN7JGNvbnRlbnR9IHtcbiAgICBtYXJnaW4tI3skcG9zaXRpb259OiAkb2ZmY2FudmFzLXNpemU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tb2ZmLWNhbnZhcyB7XG4gIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzaWNzO1xuXG4gIC8vIE9mZi1jYW52YXMgd3JhcHBlclxuICAub2ZmLWNhbnZhcy13cmFwcGVyIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXdyYXBwZXI7XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIGNvbnRhaW5lclxuICAub2ZmLWNhbnZhcyB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBjb250YWluZXIgd2l0aCBhYnNvbHV0ZSBwb3NpdGlvblxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZSB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlKCRmaXhlZDogZmFsc2UpO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBwb3NpdGlvbiBjbGFzc2VzXG4gIC5wb3NpdGlvbi1sZWZ0ICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihsZWZ0LCAgIGhvcml6b250YWwpOyB9XG4gIC5wb3NpdGlvbi1yaWdodCAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihyaWdodCwgIGhvcml6b250YWwpOyB9XG4gIC5wb3NpdGlvbi10b3AgICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbih0b3AsICAgIHZlcnRpY2FsKTsgfVxuICAucG9zaXRpb24tYm90dG9tICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24oYm90dG9tLCB2ZXJ0aWNhbCk7IH1cblxuICAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXZlYWwgb2ZmLWNhbnZhcyBwYW5lbCBvbiBsYXJnZXIgc2NyZWVuc1xuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbmFtZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGxlZnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKHJpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwodG9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwoYm90dG9tKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvcmJpdFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYWN0aXZlIGNvbG9yIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpYW1ldGVyIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBiZXR3ZWVuIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luOiAwLjFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpc3RhbmNlIGZyb20gc2xpZGUgcmVnaW9uIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmcm9tIE9yYml0J3MgYnVsbGV0cyB0byB3aGF0ZXZlciBjb250ZW50IG1heSBsdXJrIGJlbG93IGl0LlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY29udHJvbHMgd2hlbiBob3ZlcmVkLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgT3JiaXQncyBjb250cm9scy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHotaW5kZXggZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBvdXRlciBPcmJpdCB3cmFwcGVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXRgIGNsYXNzLlxuQG1peGluIG9yYml0LXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGlubmVyIE9yYml0IHNsaWRlIGNvbnRhaW5lci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWNvbnRhaW5lcmAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7IC8vIFByZXZlbnQgRk9VQyBieSBub3Qgc2hvd2luZyB1bnRpbCBKUyBzZXRzIGhlaWdodFxuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGluZGl2aWR1YWwgc2xpZGVzIG9mIGFuIE9yYml0IHNsaWRlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXNsaWRlYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1zbGlkZSB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICYubm8tbW90aW9udWkge1xuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBvcmJpdC1maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzbGlkZSBjb250YWluaW5nIGFuIGltYWdlLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtaW1hZ2VgIGNsYXNzLlxuQG1peGluIG9yYml0LWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIG9yYml0IHNsaWRlIGNhcHRpb24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jYXB0aW9uYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nOiAkb3JiaXQtY2FwdGlvbi1wYWRkaW5nO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ7XG4gIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQpO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgdGhlIG5leHQvcHJldmlvdXMgYnV0dG9ucyBpbiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlIGAub3JiaXQtbmV4dGAgYW5kIGAub3JiaXQtcHJldmlvdXNgIGNsYXNzZXMgaW4gdGhlIGRlZmF1bHQgQ1NTLlxuQG1peGluIG9yYml0LWNvbnRyb2wge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgei1pbmRleDogJG9yYml0LWNvbnRyb2wtemluZGV4O1xuICBwYWRkaW5nOiAkb3JiaXQtY29udHJvbC1wYWRkaW5nO1xuICBjb2xvcjogJHdoaXRlO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXByZXZpb3VzYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1wcmV2aW91cyB7XG4gICN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgbmV4dCBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1uZXh0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1uZXh0IHtcbiAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAjeyRnbG9iYWwtcmlnaHR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY29udGFpbmVyIG9mIE9yYml0IGJ1bGxldHMuIC8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWJ1bGxldHNgIGNsYXNzLlxuQG1peGluIG9yYml0LWJ1bGxldHMge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wO1xuICBtYXJnaW4tYm90dG9tOiAkb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b207XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBidXR0b24ge1xuICAgIHdpZHRoOiAkb3JiaXQtYnVsbGV0LWRpYW1ldGVyO1xuICAgIGhlaWdodDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcbiAgICBtYXJnaW46ICRvcmJpdC1idWxsZXQtbWFyZ2luO1xuXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1vcmJpdCB7XG4gIC5vcmJpdCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtd3JhcHBlcjtcbiAgfVxuXG4gIC5vcmJpdC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG9yYml0LWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5vcmJpdC1zbGlkZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtc2xpZGU7XG4gIH1cblxuICAub3JiaXQtZmlndXJlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1maWd1cmU7XG4gIH1cblxuICAub3JiaXQtaW1hZ2Uge1xuICAgIEBpbmNsdWRlIG9yYml0LWltYWdlO1xuICB9XG5cbiAgLm9yYml0LWNhcHRpb24ge1xuICAgIEBpbmNsdWRlIG9yYml0LWNhcHRpb247XG4gIH1cblxuICAlb3JiaXQtY29udHJvbCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY29udHJvbDtcbiAgfVxuXG4gIC5vcmJpdC1wcmV2aW91cyB7XG4gICAgQGV4dGVuZCAlb3JiaXQtY29udHJvbDtcbiAgICBAaW5jbHVkZSBvcmJpdC1wcmV2aW91cztcbiAgfVxuXG4gIC5vcmJpdC1uZXh0IHtcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xuICAgIEBpbmNsdWRlIG9yYml0LW5leHQ7XG4gIH1cblxuICAub3JiaXQtYnVsbGV0cyB7XG4gICAgQGluY2x1ZGUgb3JiaXQtYnVsbGV0cztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcGFnaW5hdGlvblxuLy8vL1xuXG4vLy8gRm9udCBzaXplIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBvZiB0aGUgcGFnaW5hdGlvbiBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCkgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCBtYXJnaW4gdG8gc2VwYXJhdGUgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbXMgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbSBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYSBkaXNhYmxlZCBwYWdpbmF0aW9uIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBlbGxpcHNpcyBpbiBhIHBhZ2luYXRpb24gbWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIElmIGBmYWxzZWAsIGRvbid0IGRpc3BsYXkgcGFnZSBudW1iZXIgbGlua3Mgb24gbW9iaWxlLCBvbmx5IG5leHQvcHJldmlvdXMgbGlua3Ncbi8vLyBhbmQgb3B0aW9uYWxseSBjdXJyZW50IHBhZ2UgbnVtYmVyLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGRpc3BsYXkgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgb24gbW9iaWxlIGV2ZW4gaWYgYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtc2AgaXMgc2V0IHRvIGBmYWxzZWAuXG4vLy8gVGhpcyBwYXJhbWV0ZXIgd2lsbCBvbmx5IG92ZXJyaWRlIHRoZSB2aXNpYmlsaXR5IHNldHRpbmcgb2YgdGhlIGN1cnJlbnQgaXRlbSBmb3IgYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7YCxcbi8vLyBpdCB3aWxsIG5vdCBhZmZlY3QgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgdmlzaWJpbGl0eSB3aGVuIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXNgIGlzIHNldCB0byBgdHJ1ZWAuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFycm93cyBhcmUgYWRkZWQgdG8gdGhlIG5leHQgYW5kIHByZXZpb3VzIGxpbmtzIG9mIHBhZ2luYXRpb24uXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgcGFnaW5hdGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBgPHVsPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1jb250YWluZXIgKFxuICAkbWFyZ2luLWJvdHRvbTogJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbSxcbiAgJGZvbnQtc2l6ZTogJHBhZ2luYXRpb24tZm9udC1zaXplLFxuICAkc3BhY2luZzogJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nLFxuICAkcmFkaXVzOiAkcGFnaW5hdGlvbi1yYWRpdXMsXG4gICRjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvcixcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlclxuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcblxuICAvLyBMaXN0IGl0ZW1cbiAgbGkge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcblxuICAgIEBpZiAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXMge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuXG4gICAgICBAaWYgJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbSB7XG4gICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQYWdlIGxpbmtzXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGN1cnJlbnQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxuQG1peGluIHBhZ2luYXRpb24taXRlbS1jdXJyZW50IChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGJhY2tncm91bmQtY3VycmVudDogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQsXG4gICRjb2xvci1jdXJyZW50OiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnRcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtY3VycmVudDtcbiAgY29sb3I6ICRjb2xvci1jdXJyZW50O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBkaXNhYmxlZCBwYWdpbmF0aW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gYW4gYDxhPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkIChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkXG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBlbGxpcHNpcyBmb3IgdXNlIGluIGEgcGFnaW5hdGlvbiBsaXN0LlxuQG1peGluIHBhZ2luYXRpb24tZWxsaXBzaXMgKFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yXG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGNvbnRlbnQ6ICdcXDIwMjYnO1xuICBjb2xvcjogJGNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wYWdpbmF0aW9uIHtcbiAgLnBhZ2luYXRpb24ge1xuICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tY29udGFpbmVyO1xuXG4gICAgLmN1cnJlbnQge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWN1cnJlbnQ7XG4gICAgfVxuXG4gICAgLmRpc2FibGVkIHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAuZWxsaXBzaXM6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tZWxsaXBzaXM7XG4gICAgfVxuICB9XG5cbiAgQGlmICRwYWdpbmF0aW9uLWFycm93cyB7XG4gICAgLnBhZ2luYXRpb24tcHJldmlvdXMgYTo6YmVmb3JlLFxuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzLmRpc2FibGVkOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICdcXDAwYWInO1xuICAgIH1cblxuICAgIC5wYWdpbmF0aW9uLW5leHQgYTo6YWZ0ZXIsXG4gICAgLnBhZ2luYXRpb24tbmV4dC5kaXNhYmxlZDo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMC41cmVtO1xuICAgICAgY29udGVudDogJ1xcMDBiYic7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHByb2dyZXNzIGJhciBjb250YWluZXIuXG5AbWl4aW4gcHJvZ3Jlc3MtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAkcHJvZ3Jlc3MtaGVpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAkcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLWJhY2tncm91bmQ7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGlubmVyIG1ldGVyIG9mIGEgcHJvZ3Jlc3MgYmFyLlxuQG1peGluIHByb2dyZXNzLW1ldGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kO1xuXG4gIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGV4dCBpbiB0aGUgcHJvZ3Jlc3MgbWV0ZXIuXG5AbWl4aW4gcHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XG4gIEBpbmNsdWRlIGFic29sdXRlLWNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgQGlmIGhhcy12YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm9ncmVzcy1iYXIge1xuICAvLyBQcm9ncmVzcyBiYXJcbiAgLnByb2dyZXNzIHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1jb250YWluZXI7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSW5uZXIgbWV0ZXJcbiAgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlcjtcbiAgfVxuXG4gIC8vIElubmVyIG1ldGVyIHRleHRcbiAgLnByb2dyZXNzLW1ldGVyLXRleHQge1xuICAgIEBpbmNsdWRlIHByb2dyZXNzLW1ldGVyLXRleHQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBbVE9ET10gQ2hlY2sgaG93IHBsdWdpbiBjb25maXJtcyBkaXNhYmxlZCBvciB2ZXJ0aWNhbCBzdGF0dXNcbi8vIFtUT0RPXSBDaGVjayBpZiB0cmFuc2l0aW9uOiBhbGw7IGlzIG5lY2Vzc2FyeVxuXG4vLy8vXG4vLy8gQGdyb3VwIHNsaWRlclxuLy8vL1xuXG4vLy8gRGVmYXVsdCBzbGlkZXIgd2lkdGggb2YgYSB2ZXJ0aWNhbCBzbGlkZXIuIChEb2Vzbid0IGFwcGx5IHRvIHRoZSBuYXRpdmUgc2xpZGVyLilcbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItd2lkdGgtdmVydGljYWw6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydGllcyB0byBhcHBseSB0byB0aGUgc2xpZGVyIGhhbmRsZSBhbmQgZmlsbC4gKERvZXNuJ3QgYXBwbHkgdG8gdGhlIG5hdGl2ZSBzbGlkZXIuKVxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRzbGlkZXItdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItYmFja2dyb3VuZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIGFjdGl2ZSBmaWxsIGZvciBzbGlkZXJzLlxuQG1peGluIHNsaWRlci1maWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1maWxsLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcblxuICAmLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGhlIHNsaWRlciBoYW5kbGVzLlxuQG1peGluIHNsaWRlci1oYW5kbGUge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLXdpZHRoO1xuICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcblxuICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDtcbiAgdHJhbnNpdGlvbjogJHNsaWRlci10cmFuc2l0aW9uO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzY2FsZS1jb2xvcigkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiAgfVxuXG4gICYuaXMtZHJhZ2dpbmcge1xuICAgIHRyYW5zaXRpb246IGFsbCAwcyBsaW5lYXI7XG4gIH1cbn1cblxuQG1peGluIHNsaWRlci1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6ICRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuQG1peGluIHNsaWRlci12ZXJ0aWNhbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6ICRzbGlkZXItd2lkdGgtdmVydGljYWw7XG4gIGhlaWdodDogMTIuNXJlbTtcbiAgbWFyZ2luOiAwIDEuMjVyZW07XG4gIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xuXG4gIC5zbGlkZXItZmlsbCB7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAkc2xpZGVyLXdpZHRoLXZlcnRpY2FsO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAuc2xpZGVyLWhhbmRsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcbiAgICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLXdpZHRoO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zbGlkZXIge1xuICAvLyBDb250YWluZXJcbiAgLnNsaWRlciB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIEZpbGwgYXJlYVxuICAuc2xpZGVyLWZpbGwge1xuICAgIEBpbmNsdWRlIHNsaWRlci1maWxsO1xuICB9XG5cbiAgLy8gRHJhZ2dhYmxlIGhhbmRsZVxuICAuc2xpZGVyLWhhbmRsZSB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWhhbmRsZTtcbiAgfVxuXG4gIC8vIERpc2FibGVkIHN0YXRlXG4gIC5zbGlkZXIuZGlzYWJsZWQsXG4gIC5zbGlkZXJbZGlzYWJsZWRdIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBWZXJ0aWNhbCBzbGlkZXJcbiAgLnNsaWRlci52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLXZlcnRpY2FsO1xuICB9XG5cbiAgLy8gUlRMIHN1cHBvcnRcbiAgQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsIHtcbiAgICAuc2xpZGVyOm5vdCgudmVydGljYWwpIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXN0aWNreSB7XG4gIC5zdGlja3ktY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAuc3RpY2t5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgLnN0aWNreS5pcy1zdHVjayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmLmlzLWF0LXRvcCB7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgJi5pcy1hdC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5zdGlja3kuaXMtYW5jaG9yZWQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuXG4gICAgJi5pcy1hdC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcmV2ZWFsXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSBtb2RhbC5cbi8vLyBAdHlwZSBDb2xvclxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHdpZHRoIG9mIGEgbW9kYWwsIHdpdGggbm8gY2xhc3MgYXBwbGllZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtd2lkdGg6IDYwMHB4ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXhpbXVtIHdpZHRoIG9mIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIHotaW5kZXggZm9yIG1vZGFscy4gVGhlIG92ZXJsYXkgdXNlcyB0aGlzIHZhbHVlLCB3aGlsZSB0aGUgbW9kYWwgaXRzZWxmIHVzZXMgdGhpcyB2YWx1ZSBwbHVzIG9uZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtemluZGV4OiAxMDA1ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBtb2RhbCBvdmVybGF5cy5cbi8vLyBAdHlwZSBDb2xvclxuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjQ1KSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG1vZGFsIG92ZXJsYXkuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIG92ZXJsYXkuXG5AbWl4aW4gcmV2ZWFsLW92ZXJsYXkoJGJhY2tncm91bmQ6ICRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kKSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAkcmV2ZWFsLXppbmRleDtcblxuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgYSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXggKyAxO1xuICAvLyBXb3JrYXJvdW5kIGFuZHJvaWQgYnJvd3NlciB6LWluZGV4IGJ1Z1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHJldmVhbC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJHJldmVhbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRyZXZlYWwtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmV2ZWFsLWJhY2tncm91bmQ7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHJvd3MgZG9uJ3QgaGF2ZSBhIG1pbi13aWR0aCBvbiB0aGVtXG4gIC5jb2x1bW4ge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gIC8vIFN0cmlwIG1hcmdpbnMgZnJvbSB0aGUgbGFzdCBpdGVtIGluIHRoZSBtb2RhbFxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGp1c3RzIHRoZSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgbW9kYWwuIEdlbmVyYWxseSBhIHBlcmNlbnRhZ2UuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXgtd2lkdGggWyRyZXZlYWwtbWF4LXdpZHRoXSAtIE1heGltdW0gd2lkdGggb2YgdGhlIG1vZGFsLlxuQG1peGluIHJldmVhbC1tb2RhbC13aWR0aChcbiAgJHdpZHRoOiAkcmV2ZWFsLXdpZHRoLFxuICAkbWF4LXdpZHRoOiAkcmV2ZWFsLW1heC13aWR0aFxuKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgQGV4dGVuZCAlcmV2ZWFsLWNlbnRlcmVkO1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC1zY3JlZW4gbW9kYWwsIHdoaWNoIHN0cmV0Y2hlcyB0aGUgZnVsbCB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSB3aW5kb3cuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW4ge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBoZWlnaHQ6IDEwMHZoOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWR1cGxpY2F0ZS1wcm9wZXJ0aWVzXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBtYXJnaW4tbGVmdDogMDtcblxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJldmVhbCB7XG4gIC8vIFtUT0RPXSBJcyB0aGlzIG5lY2Vzc2FyeT9cbiAgYm9keS5pcy1yZXZlYWwtb3BlbiB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyBodG1sIGdldHMgdGhpcyBjbGFzcyBvbmx5IGluIGlPU1xuICBodG1sLmlzLXJldmVhbC1vcGVuLFxuICBodG1sLmlzLXJldmVhbC1vcGVuIGJvZHkge1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIH1cblxuICAvLyBPdmVybGF5XG4gIC5yZXZlYWwtb3ZlcmxheSB7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW92ZXJsYXk7XG4gIH1cblxuICAvLyBNb2RhbCBjb250YWluZXJcbiAgLnJldmVhbCB7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2U7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKCRyZXZlYWwtd2lkdGgpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDEwMHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgLy8gUGxhY2Vob2xkZXIgc2VsZWN0b3IgZm9yIG1lZGl1bS1hbmQtdXAgbW9kYWxzXG4gICAgLy8gUHJldmVudHMgZHVwbGljYXRlIENTUyB3aGVuIGRlZmluaW5nIG11bHRpcGxlIFJldmVhbCBzaXplc1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAlcmV2ZWFsLWNlbnRlcmVkIHtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlbW92ZSBwYWRkaW5nXG4gICAgJi5jb2xsYXBzZSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC8vIFNpemluZyBjbGFzc2VzXG4gICAgJi50aW55ICB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCgzMCUpOyB9XG4gICAgJi5zbWFsbCB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCg1MCUpOyB9XG4gICAgJi5sYXJnZSB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCg5MCUpOyB9XG5cbiAgICAvLyBGdWxsLXNjcmVlbiBtb2RlXG4gICAgJi5mdWxsIHtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW47XG4gICAgfVxuXG4gICAgJi53aXRob3V0LW92ZXJsYXkge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgc3dpdGNoXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGEgc3dpdGNoLlxuLy8vIEB0eXBlIENvbG9yXG4kc3dpdGNoLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgYWN0aXZlIGNvbG9yIG9mIGEgc3dpdGNoLlxuLy8vIEB0eXBlIENvbG9yXG4kc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCwgd2l0aCBubyBjbGFzcyBhcHBsaWVkLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQ6IDJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAudGlueSBjbGFzcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0LXRpbnk6IDEuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC5zbWFsbCBjbGFzcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0LXNtYWxsOiAxLjc1cmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLmxhcmdlIGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgb2YgdGhlIHN3aXRjaFxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gYm9yZGVyIGFyb3VuZCBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1tYXJnaW46ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHN3aXRjaCBjb250YWluZXIgYW5kIHBhZGRsZS5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGEgc3dpdGNoIHBhZGRsZSBhbmQgdGhlIGVkZ2Ugb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXBhZGRsZS1vZmZzZXQ6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBib3JkZXIgcmFkaXVzIG9mIHRoZSBzd2l0Y2ggcGFkZGxlXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXBhZGRsZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gc3dpdGNoIHRyYW5zaXRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vIG1ha2UgdGhlbSB2YXJpYWJsZXNcbi8vIGFzayBhYm91dCBhY2Nlc3NpYmlsaXR5IG9uIGxhYmVsXG4vLyBjaGFuZ2UgY2xhc3MgbmFtZSBmb3IgdGV4dFxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3dpdGNoIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGNvbnRhaW5lciBjbGFzcy5cbkBtaXhpbiBzd2l0Y2gtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAkc3dpdGNoLW1hcmdpbjtcbiAgb3V0bGluZTogMDtcblxuICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhc2NhZGUgZG93biB0byB0aGUgc3dpdGNoIHRleHRcbiAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogJHdoaXRlO1xuXG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3dpdGNoIGlucHV0LiBBcHBseSB0aGlzIHRvIGFuIGA8aW5wdXQ+YCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLWlucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBvcGFjaXR5OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBwYWRkbGUgb2YgYSBzd2l0Y2guIEFwcGx5IHRoaXMgdG8gYSBgPGxhYmVsPmAgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC1wYWRkbGUge1xuICAkc3dpdGNoLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAqIDI7XG4gICRwYWRkbGUtaGVpZ2h0OiAkc3dpdGNoLWhlaWdodCAtICgkc3dpdGNoLXBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS13aWR0aDogJHN3aXRjaC1oZWlnaHQgLSAoJHN3aXRjaC1wYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtYWN0aXZlLW9mZmVzdDogJHN3aXRjaC13aWR0aCAtICRwYWRkbGUtd2lkdGggLSAkc3dpdGNoLXBhZGRsZS1vZmZzZXQ7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6ICRzd2l0Y2gtd2lkdGg7XG4gIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG5cbiAgYm9yZGVyLXJhZGl1czogJHN3aXRjaC1yYWRpdXM7XG4gIGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZDtcbiAgdHJhbnNpdGlvbjogJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjtcblxuICAvLyBSZXNldHRpbmcgdGhlc2UgPGxhYmVsPiBwcmVzZXRzIHNvIHR5cGUgc3R5bGVzIGNhc2NhZGUgZG93blxuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG5cbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC8vIE5lZWRlZCB0byBvdmVycmlkZSBzcGVjaWZpY2l0eVxuICBpbnB1dCArICYge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIFRoZSBwYWRkbGUgaXRzZWxmXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAkc3dpdGNoLXBhZGRsZS1vZmZzZXQ7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkc3dpdGNoLXBhZGRsZS1vZmZzZXQ7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogJHBhZGRsZS13aWR0aDtcbiAgICBoZWlnaHQ6ICRwYWRkbGUtaGVpZ2h0O1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICBib3JkZXItcmFkaXVzOiAkc3dpdGNoLXBhZGRsZS1yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uOiAkc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uO1xuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG5cbiAgLy8gQ2hhbmdlIHRoZSB2aXN1YWwgc3R5bGUgd2hlbiB0aGUgc3dpdGNoIGlzIGFjdGl2ZVxuICBpbnB1dDpjaGVja2VkIH4gJiB7XG4gICAgYmFja2dyb3VuZDogJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICN7JGdsb2JhbC1sZWZ0fTogJHBhZGRsZS1hY3RpdmUtb2ZmZXN0O1xuICAgIH1cbiAgfVxuXG4gIGlucHV0OmZvY3VzIH4gJiB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICB9XG59XG5cbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciBhY3RpdmUvaW5hY3RpdmUgdGV4dCBpbnNpZGUgYSBzd2l0Y2guIEFwcGx5IHRoaXMgdG8gdGV4dCBlbGVtZW50cyBpbnNpZGUgdGhlIHN3aXRjaCBgPGxhYmVsPmAuXG5AbWl4aW4gc3dpdGNoLXRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGFjdGl2ZSBzdGF0ZSB0ZXh0IHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtdGV4dC1hY3RpdmUge1xuICAjeyRnbG9iYWwtbGVmdH06IDglO1xuICBkaXNwbGF5OiBub25lO1xuXG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCA+ICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGluYWN0aXZlIHN0YXRlIHRleHQgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC10ZXh0LWluYWN0aXZlIHtcbiAgI3skZ2xvYmFsLXJpZ2h0fTogMTUlO1xuXG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCA+ICYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLy8vIENoYW5nZXMgdGhlIHNpemUgb2YgYSBzd2l0Y2ggYnkgbW9kaWZ5aW5nIHRoZSBzaXplIG9mIHRoZSBib2R5IGFuZCBwYWRkbGUuIEFwcGx5IHRoaXMgdG8gYSBzd2l0Y2ggY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZm9udC1zaXplIFsxcmVtXSAtIEZvbnQgc2l6ZSBvZiBsYWJlbCB0ZXh0IHdpdGhpbiB0aGUgc3dpdGNoLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3dpdGNoLWhlaWdodCBbMnJlbV0gLSBIZWlnaHQgb2YgdGhlIHN3aXRjaCBib2R5LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGxlLW9mZnNldCBbMC4yNXJlbV0gLSBTcGFjaW5nIGJldHdlZW4gdGhlIHN3aXRjaCBwYWRkbGUgYW5kIHRoZSBlZGdlIG9mIHRoZSBzd2l0Y2ggYm9keS5cbkBtaXhpbiBzd2l0Y2gtc2l6ZShcbiAgJGZvbnQtc2l6ZTogMXJlbSxcbiAgJHN3aXRjaC1oZWlnaHQ6IDJyZW0sXG4gICRwYWRkbGUtb2Zmc2V0OiAwLjI1cmVtXG4pIHtcblxuICAkc3dpdGNoLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAqIDI7XG4gICRwYWRkbGUtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRwYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtaGVpZ2h0OiAkc3dpdGNoLWhlaWdodCAtICgkcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q6ICRzd2l0Y2gtd2lkdGggLSAkcGFkZGxlLXdpZHRoIC0gJHBhZGRsZS1vZmZzZXQ7XG5cbiAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcblxuICAuc3dpdGNoLXBhZGRsZSB7XG4gICAgd2lkdGg6ICRzd2l0Y2gtd2lkdGg7XG4gICAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIH1cblxuICAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIHRvcDogJHBhZGRsZS1vZmZzZXQ7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGxlLW9mZnNldDtcbiAgICB3aWR0aDogJHBhZGRsZS13aWR0aDtcbiAgICBoZWlnaHQ6ICRwYWRkbGUtaGVpZ2h0O1xuICB9XG5cbiAgaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tc3dpdGNoIHtcbiAgLy8gQ29udGFpbmVyIGNsYXNzXG4gIC5zd2l0Y2gge1xuICAgIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG4gICAgQGluY2x1ZGUgc3dpdGNoLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIDxpbnB1dD4gZWxlbWVudFxuICAuc3dpdGNoLWlucHV0IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtaW5wdXQ7XG4gIH1cblxuICAvLyA8bGFiZWw+IGVsZW1lbnRcbiAgLnN3aXRjaC1wYWRkbGUge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1wYWRkbGU7XG4gIH1cblxuICAvLyBCYXNlIGxhYmVsIHRleHQgc3R5bGVzXG4gICVzd2l0Y2gtdGV4dCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQ7XG4gIH1cblxuICAvLyBBY3RpdmUgbGFiZWwgdGV4dCBzdHlsZXNcbiAgLnN3aXRjaC1hY3RpdmUge1xuICAgIEBleHRlbmQgJXN3aXRjaC10ZXh0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0LWFjdGl2ZTtcbiAgfVxuXG4gIC8vIEluYWN0aXZlIGxhYmVsIHRleHQgc3R5bGVzXG4gIC5zd2l0Y2gtaW5hY3RpdmUge1xuICAgIEBleHRlbmQgJXN3aXRjaC10ZXh0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0LWluYWN0aXZlO1xuICB9XG5cbiAgLy8gU3dpdGNoIHNpemVzXG4gIC5zd2l0Y2gudGlueSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTApLCAkc3dpdGNoLWhlaWdodC10aW55LCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG5cbiAgLnN3aXRjaC5zbWFsbCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTIpLCAkc3dpdGNoLWhlaWdodC1zbWFsbCwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxuXG4gIC5zd2l0Y2gubGFyZ2Uge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDE2KSwgJHN3aXRjaC1oZWlnaHQtbGFyZ2UsICRzd2l0Y2gtcGFkZGxlLW9mZnNldCk7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBmb3JjZS1lbGVtZW50LW5lc3RpbmcsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCB0YWJsZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgdGFibGUgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZSAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHN0cmlwZWQgdGFibGUgcm93cyBhbmQgdGhlIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1jb2xvci1zY2FsZTogNSUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHN0eWxlIGZvciB0YWJsZSBib3JkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWJsZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0YW5kYXJkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdHJpcGVkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgdGFibGVzIGFyZSBzdHJpcGVkIGJ5IGRlZmF1bHQgYW5kIGFuIC51bnN0cmlwZWQgY2xhc3MgaXMgY3JlYXRlZC4gSWYgYGZhbHNlYCwgYSAuc3RyaXBlZCBjbGFzcyBpcyBjcmVhdGVkLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiR0YWJsZS1pcy1zdHJpcGVkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBzdHJpcGVkIHJvd3MuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgc3RyaXBlIG9uIHJvd3Mgb2YgdGhlIHRhYmxlcywgZXhjbHVkaW5nIHRoZSBoZWFkZXIgYW5kIGZvb3Rlci4gSWYgZXZlbiwgdGhlIGV2ZW4gcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBvZGQsIHRoZSBvZGQgcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBlbXB0eSwgb3IgYW55IG90aGVyIHZhbHVlLCB0aGUgdGFibGUgcm93cyB3aWxsIGhhdmUgbm8gc3RyaXBpbmcuXG4vLy8gQHR5cGUgS2V5d29yZFxuJHRhYmxlLXN0cmlwZTogZXZlbiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlYWRlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlIC8gMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBmb290ZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWZvb3QtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGhlYWRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9vdGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgaGVhZGVyIHdoZW4gdXNpbmcgc3RhY2tlZCB0YWJsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgYXQgd2hpY2ggc3RhY2tlZCB0YWJsZSBzd2l0Y2hlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wIHZpZXcuXG4vLy8gQHR5cGUgQnJlYWtwb2ludFxuJHRhYmxlLXN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bSAhZGVmYXVsdDtcblxuQG1peGluIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZTogJHRhYmxlLXN0cmlwZSkge1xuICB0ciB7XG4gICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBldmVuLCBkYXJrZW4gdGhlIGV2ZW4gcm93cy5cbiAgICBAaWYgJHN0cmlwZSA9PSBldmVuIHtcbiAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIG9kZCwgZGFya2VuIHRoZSBvZGQgcm93cy5cbiAgICBAZWxzZSBpZiAkc3RyaXBlID09IG9kZCB7XG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIC16Zi10YWJsZS11bnN0cmlwZSgpIHtcbiAgdHIge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJHRhYmxlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgfVxufVxuXG5AbWl4aW4gLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlOiAkdGFibGUtc3RyaXBlLCAkaXMtc3RyaXBlZDogJHRhYmxlLWlzLXN0cmlwZWQpIHtcbiAgdGhlYWQsXG4gIHRib2R5LFxuICB0Zm9vdCB7XG4gICAgYm9yZGVyOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQ2FwdGlvblxuICBjYXB0aW9uIHtcbiAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgfVxuXG4gIC8vIFRhYmxlIGhlYWRcbiAgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1oZWFkLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBmb290XG4gIHRmb290IHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtZm9vdC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGFibGUtZm9vdC1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZCBhbmQgZm9vdFxuICB0aGVhZCxcbiAgdGZvb3Qge1xuICAgIC8vIFJvd3Mgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICB0ciB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAvLyBDZWxscyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgICB0ZXh0LWFsaWduOiAjeyRnbG9iYWwtbGVmdH07XG4gICAgfVxuICB9XG5cbiAgLy8gVGFibGUgcm93c1xuICB0Ym9keSB7XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGFibGVzIGFyZSBzdHJpcGVkXG4gIEBpZiAkaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICB0Ym9keSB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGUpO1xuICAgIH1cblxuICAgICYudW5zdHJpcGVkIHtcbiAgICAgIHRib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXVuc3RyaXBlKCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRhYmxlcyBhcmUgbm90IHN0cmlwZWRcbiAgQGVsc2UgaWYgJGlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIHRib2R5IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS11bnN0cmlwZSgpO1xuICAgIH1cblxuICAgICYuc3RyaXBlZCB7XG4gICAgICB0Ym9keSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGFibGVzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0cmlwZSBbJHRhYmxlLXN0cmlwZV0gLSBVc2VzIGtleXdvcmRzIGV2ZW4sIG9kZCwgb3Igbm9uZSB0byBkYXJrZW4gcm93cyBvZiB0aGUgdGFibGUuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGV2ZW4uXG5AbWl4aW4gdGFibGUoXG4gICRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsXG4gICRuZXN0OiBmYWxzZVxuKSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbiAgQGlmICRuZXN0IHtcbiAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgYWJpbGl0eSB0byBob3Jpem9udGFsbHkgc2Nyb2xsIHRoZSB0YWJsZSB3aGVuIHRoZSBjb250ZW50IG92ZXJmbG93cyBob3Jpem9udGFsbHkuXG5AbWl4aW4gdGFibGUtc2Nyb2xsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuXG4vLy8gU2xpZ2h0bHkgZGFya2VucyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbkBtaXhpbiB0YWJsZS1ob3ZlciB7XG4gIHRoZWFkIHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWhlYWQtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWZvb3Qtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRib2R5IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIG5vbi1zdHJpcGVkIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICAvLyBEYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XG4gICAgICAmOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2UgaWYoJHRhYmxlLXN0cmlwZSA9PSBvZGQpIHtcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSBmYWxzZSB7XG4gICAgLy8gRGFya2VucyB0aGUgZXZlbiBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGlmKCR0YWJsZS1zdHJpcGUgPT0gZXZlbikge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGFya2VucyB0aGUgb2RkIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAZWxzZSBpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWNrZWQgdGFibGUuIFVzZWZ1bCBmb3Igc21hbGwtc2NyZWVuIGxheW91dHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaGVhZGVyIFskc2hvdy1oZWFkZXItZm9yLXN0YWNrZWRdIC0gU2hvdyB0aGUgZmlyc3QgdGggb2YgaGVhZGVyIHdoZW4gc3RhY2tlZC5cbkBtaXhpbiB0YWJsZS1zdGFjaygkaGVhZGVyOiAkc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQpIHtcbiAgQGlmICRoZWFkZXIge1xuICAgIHRoZWFkIHtcbiAgICAgIHRoIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgdHIsXG4gIHRoLFxuICB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJsZSgkbmVzdDogZmFsc2UpIHtcbiAgdGFibGUge1xuICAgIEBpbmNsdWRlIHRhYmxlKCRuZXN0OiAkbmVzdCk7XG4gIH1cblxuICB0YWJsZS5zdGFjayB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdGFibGUtc3RhY2stYnJlYWtwb2ludCBkb3duKSB7XG4gICAgICBAaW5jbHVkZSB0YWJsZS1zdGFjaztcbiAgICB9XG4gIH1cblxuICB0YWJsZS5zY3JvbGwge1xuICAgIEBpbmNsdWRlIHRhYmxlLXNjcm9sbDtcbiAgfVxuXG4gIHRhYmxlLmhvdmVyIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1ob3ZlcjtcbiAgfVxuXG4gIC50YWJsZS1zY3JvbGwge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICB0YWJsZSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYnNcbi8vLy9cblxuLy8vIERlZmF1bHQgbWFyZ2luIG9mIHRoZSB0YWIgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQWN0aXZlIGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEFjdGl2ZSBmb250IGNvbG9yIG9mIHRhYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGFiIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGEgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIG51bWJlciBvZiBgZXhwYW5kLW5gIGNsYXNzZXMgdG8gaW5jbHVkZSBpbiB0aGUgQ1NTLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1leHBhbmQtbWF4OiA2ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiB0YWJzLWNvbnRhaW5lciAoXG4gICRtYXJnaW46ICR0YWItbWFyZ2luLFxuICAkYmFja2dyb3VuZDogJHRhYi1iYWNrZ3JvdW5kLFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJG1hcmdpbjtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRhaW5lciB0byBoYXZlIHZlcnRpY2FsIHRhYnMuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGFpbmVyKClgLlxuQG1peGluIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsIHtcbiAgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgbGlua3Mgd2l0aGluIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgYDxsaT5gIGVsZW1lbnRzIGluc2lkZSBhIHRhYiBjb250YWluZXIuXG5AbWl4aW4gdGFicy10aXRsZSAoXG4gICRwYWRkaW5nOiAkdGFiLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJHRhYi1pdGVtLWZvbnQtc2l6ZSxcbiAgJGNvbG9yOiAkdGFiLWNvbG9yLFxuICAkY29sb3ItYWN0aXZlOiAkdGFiLWFjdGl2ZS1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkYmFja2dyb3VuZC1hY3RpdmU6ICR0YWItYmFja2dyb3VuZC1hY3RpdmVcbikge1xuICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICBjb2xvcjogJGNvbG9yLWFjdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgd3JhcHBlciB0aGF0IHN1cnJvdW5kcyBhIHRhYiBncm91cCdzIGNvbnRlbnQgcGFuZXMuXG5AbWl4aW4gdGFicy1jb250ZW50IChcbiAgJGJhY2tncm91bmQ6ICR0YWItY29udGVudC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICR0YWItY29udGVudC1jb2xvcixcbiAgJGJvcmRlci1jb2xvcjogJHRhYi1jb250ZW50LWJvcmRlclxuKSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xufVxuXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGVudCBjb250YWluZXIgdG8gaGF2ZSBhIHZlcnRpY2FsIHN0eWxlLCBieSBzaGlmdGluZyB0aGUgYm9yZGVyIGFyb3VuZC4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250ZW50KClgLlxuQG1peGluIHRhYnMtY29udGVudC12ZXJ0aWNhbCAoXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGluZGl2aWR1YWwgdGFiIGNvbnRlbnQgcGFuZWwgd2l0aGluIHRoZSB0YWIgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gdGFicy1wYW5lbCAoXG4gICRwYWRkaW5nOiAkdGFiLWNvbnRlbnQtcGFkZGluZ1xuKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gICYuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJzIHtcbiAgLnRhYnMge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyO1xuICB9XG5cbiAgLy8gVmVydGljYWxcbiAgLnRhYnMudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsO1xuICB9XG5cbiAgLy8gU2ltcGxlXG4gIC50YWJzLnNpbXBsZSB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgcGFkZGluZzogMDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFByaW1hcnkgY29sb3JcbiAgLnRhYnMucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cbiAgICA+IGxpID4gYSB7XG4gICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkcHJpbWFyeS1jb2xvcik7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHByaW1hcnktY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50YWJzLXRpdGxlIHtcbiAgICBAaW5jbHVkZSB0YWJzLXRpdGxlO1xuICB9XG5cbiAgLnRhYnMtY29udGVudCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50O1xuICB9XG5cbiAgLnRhYnMtY29udGVudC52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50LXZlcnRpY2FsO1xuICB9XG5cbiAgLnRhYnMtcGFuZWwge1xuICAgIEBpbmNsdWRlIHRhYnMtcGFuZWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRodW1ibmFpbFxuLy8vL1xuXG4vLy8gQm9yZGVyIGFyb3VuZCB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIEJvcmRlclxuJHRodW1ibmFpbC1ib3JkZXI6IHNvbGlkIDRweCAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgdW5kZXIgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBTaGFkb3dcbiR0aHVtYm5haWwtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssIDAuMikgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwgMC41KSAhZGVmYXVsdDtcblxuLy8vIFRyYW5zaXRpb24gcHJvcHJ0aWVzIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiR0aHVtYm5haWwtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQWRkcyB0aHVtYm5haWwgc3R5bGVzIHRvIGFuIGVsZW1lbnQuXG5AbWl4aW4gdGh1bWJuYWlsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206ICR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTtcblxuICBib3JkZXI6ICR0aHVtYm5haWwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkdGh1bWJuYWlsLXJhZGl1cztcbiAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3c7XG5cbiAgbGluZS1oZWlnaHQ6IDA7XG59XG5cbkBtaXhpbiB0aHVtYm5haWwtbGluayB7XG4gIHRyYW5zaXRpb246ICR0aHVtYm5haWwtdHJhbnNpdGlvbjtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAkdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjtcbiAgfVxuXG4gIGltYWdlIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRodW1ibmFpbCB7XG4gIC50aHVtYm5haWwge1xuICAgIEBpbmNsdWRlIHRodW1ibmFpbDtcbiAgfVxuXG4gIGEudGh1bWJuYWlsIHtcbiAgICBAaW5jbHVkZSB0aHVtYm5haWwtbGluaztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGl0bGUtYmFyXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItYmFja2dyb3VuZDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgV2VpZ2h0XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIG1lbnUgaWNvbnMgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgbWVudSBpY29ucyBpbnNpZGUgYSB0aXRsZSBiYXIgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gdGhlIG1lbnUgaWNvbiBhbmQgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10aXRsZS1iYXIge1xuICAudGl0bGUtYmFyIHtcbiAgICBwYWRkaW5nOiAkdGl0bGViYXItcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiAkdGl0bGViYXItYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRpdGxlYmFyLWNvbG9yO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxuXG4gICAgLm1lbnUtaWNvbiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkdGl0bGViYXItaWNvbi1zcGFjaW5nO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICR0aXRsZWJhci1pY29uLXNwYWNpbmc7XG4gICAgfVxuICB9XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLnRpdGxlLWJhci1sZWZ0LFxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG5cbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRpdGxlLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLnRpdGxlLWJhci10aXRsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZm9udC13ZWlnaHQ6ICR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0b29sdGlwXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGN1cnNvciBvZiB0aGUgZGVmaW5lZCB0ZXJtLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRoYXMtdGlwLWN1cnNvcjogaGVscCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kaGFzLXRpcC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGJvdHRvbSBvZiB0aGUgZGVmaW5lZCB0ZXJtLlxuLy8vIEB0eXBlIExpc3RcbiRoYXMtdGlwLWJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIHRvb2x0aXAgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgdG9vbHRpcCBmb250LlxuLy8vIEB0eXBlIENvbG9yXG4kdG9vbHRpcC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIHRoZSB0b29sdGlwIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1wYWRkaW5nOiAwLjc1cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXggd2lkdGggZm9yIHRvb2x0aXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtbWF4LXdpZHRoOiAxMHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIG9mIHRoZSB0b29sdGlwIHRleHQuIEJ5IGRlZmF1bHQsIHdlIHJlY29tbWVuZCBhIHNtYWxsZXIgZm9udCBzaXplIHRoYW4gdGhlIGJvZHkgY29weS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLWZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGlwIHdpZHRoIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBpcC13aWR0aDogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGlwIGhlaWdodCBmb3IgdG9vbHRpcHMuIFRoaXMgaXMgaGVscGZ1bCBmb3IgY2FsY3VsYXRpbmcgdGhlIGRpc3RhbmNlIG9mIHRoZSB0b29sdGlwIGZyb20gdGhlIHRvb2x0aXAgd29yZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHRvb2x0aXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGhhcy10aXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBib3JkZXItYm90dG9tOiAkaGFzLXRpcC1ib3JkZXItYm90dG9tO1xuICBmb250LXdlaWdodDogJGhhcy10aXAtZm9udC13ZWlnaHQ7XG4gIGN1cnNvcjogJGhhcy10aXAtY3Vyc29yO1xufVxuXG5AbWl4aW4gdG9vbHRpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgKyAjeyR0b29sdGlwLXBpcC1oZWlnaHR9KTtcbiAgei1pbmRleDogMTIwMDtcblxuICBtYXgtd2lkdGg6ICR0b29sdGlwLW1heC13aWR0aDtcbiAgcGFkZGluZzogJHRvb2x0aXAtcGFkZGluZztcblxuICBib3JkZXItcmFkaXVzOiAkdG9vbHRpcC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICR0b29sdGlwLWJhY2tncm91bmQtY29sb3I7XG4gIGZvbnQtc2l6ZTogJHRvb2x0aXAtZm9udC1zaXplO1xuICBjb2xvcjogJHRvb2x0aXAtY29sb3I7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCB1cCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG5cbiAgJi50b3A6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgZG93bik7XG4gICAgdG9wOiAxMDAlO1xuICAgIGJvdHRvbTogYXV0bztcbiAgfVxuXG4gICYubGVmdDo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCByaWdodCk7XG4gICAgdG9wOiA1MCU7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB9XG5cbiAgJi5yaWdodDo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBsZWZ0KTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMTAwJTtcbiAgICBib3R0b206IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9vbHRpcCB7XG4gIC5oYXMtdGlwIHtcbiAgICBAaW5jbHVkZSBoYXMtdGlwO1xuICB9XG5cbiAgLnRvb2x0aXAge1xuICAgIEBpbmNsdWRlIHRvb2x0aXA7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRvcC1iYXJcbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgdG9wIGJhci4gVGhpcyBjb2xvciBhbHNvIGNhc2NhZGVzIHRvIG1lbnVzIHdpdGhpbiB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRvcGJhci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igc3VibWVudXMgd2l0aGluIHRoZSB0b3AgYmFyLiBVc2VmdWxsIGlmICR0b3BiYXItYmFja2dyb3VuZCBpcyB0cmFuc3BhcmVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgZm9yIHRoZSB0b3AgYmFyIHRpdGxlLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci10aXRsZS1zcGFjaW5nOiAwLjVyZW0gMXJlbSAwLjVyZW0gMCAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYDxpbnB1dD5gIGVsZW1lbnRzIGluc2lkZSB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItaW5wdXQtd2lkdGg6IDIwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBhdCB3aGljaCB0b3AgYmFyIHN3aXRjaGVzIGZyb20gbW9iaWxlIHRvIGRlc2t0b3Agdmlldy5cbi8vLyBAdHlwZSBCcmVha3BvaW50XG4kdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludDogbWVkaXVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdG9wIGJhciBjb250YWluZXIuXG5AbWl4aW4gdG9wLWJhci1jb250YWluZXIge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuXG4gIHBhZGRpbmc6ICR0b3BiYXItcGFkZGluZztcblxuICAmLFxuICB1bCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgJHRvcGJhci1iYWNrZ3JvdW5kIGlzIGRpZmZlcm50IGZyb20gJHRvcGJhci1iYWNrZ3JvdW5kLXN1Ym1lbnVcbiAgQGlmICgkdG9wYmFyLWJhY2tncm91bmQgIT0gJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQpIHtcbiAgICB1bCB1bCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXN0cmFpbiB3aWR0aCBvZiBpbnB1dHMgYnkgZGVmYXVsdCB0byBtYWtlIHRoZW0gZWFzaWVyIHRvIGFycmFuZ2VcbiAgaW5wdXQge1xuICAgIG1heC13aWR0aDogJHRvcGJhci1pbnB1dC13aWR0aDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgfVxuXG4gIC8vIFRoZSBhYm92ZSBzdHlsZXMgc2hvdWxkbid0IGFwcGx5IHRvIGlucHV0IGdyb3VwIGZpZWxkc1xuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICB9XG5cbiAgaW5wdXQuYnV0dG9uIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIE1ha2VzIHNlY3Rpb25zIG9mIGEgdG9wIGJhciBzdGFjayBvbiB0b3Agb2YgZWFjaCBvdGhlci5cbkBtaXhpbiB0b3AtYmFyLXN0YWNrZWQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAvLyBTdWItc2VjdGlvbnNcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gU3ViLXNlY3Rpb25zXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFVuZG9lcyB0aGUgQ1NTIGFwcGxpZWQgYnkgdGhlIGB0b3AtYmFyLXN0YWNrZWQoKWAgbWl4aW4uXG5AbWl4aW4gdG9wLWJhci11bnN0YWNrIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10b3AtYmFyIHtcbiAgLy8gVG9wIGJhciBjb250YWluZXJcbiAgLnRvcC1iYXIge1xuICAgIEBpbmNsdWRlIHRvcC1iYXItY29udGFpbmVyO1xuXG4gICAgLy8gU3RhY2sgb24gc21hbGwgc2NyZWVucyBieSBkZWZhdWx0XG4gICAgQGluY2x1ZGUgdG9wLWJhci1zdGFja2VkO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludCkge1xuICAgICAgQGluY2x1ZGUgdG9wLWJhci11bnN0YWNrO1xuICAgIH1cblxuICAgIC8vIEdlbmVyYXRlIGNsYXNzZXMgZm9yIHN0YWNraW5nIG9uIGVhY2ggc2NyZWVuIHNpemUgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcylcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICYuc3RhY2tlZC1mb3ItI3skc2l6ZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgICAgICAgICAgQGluY2x1ZGUgdG9wLWJhci1zdGFja2VkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFN1Yi1zZWN0aW9uc1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAudG9wLWJhci10aXRsZSB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIG1hcmdpbjogJHRvcGJhci10aXRsZS1zcGFjaW5nO1xuICAgIH1cblxuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAudG9wLWJhci10aXRsZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmc6ICR0b3BiYXItdGl0bGUtc3BhY2luZztcblxuICAgICAgLm1lbnUtaWNvbiB7XG4gICAgICAgIGJvdHRvbTogMnB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC50b3AtYmFyLWxlZnQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yKCRzaXplKSB7XG4gICRzaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkc2l6ZTogLXpmLWJwLXRvLWVtKCRzaXplKSAtICgxIC8gMTYpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCB3aXRoaW4gYSBjZXJ0YWluIGJyZWFrcG9pbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvci1vbmx5KCRzaXplKSB7XG4gICRsb3dlci1ib3VuZC1zaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkdXBwZXItYm91bmQtc2l6ZTogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJHNpemUpO1xuXG4gIC8vIG1vcmUgb2Z0ZW4gdGhhbiBub3QgdGhpcyB3aWxsIGJlIGNvcnJlY3QsIGp1c3Qgb25lIHRpbWUgcm91bmQgdGhlIGxvb3AgaXQgd29uJ3Qgc28gc2V0IGluIHNjb3BlIGhlcmVcbiAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpIC0gKDEgLyAxNik7XG4gIC8vIHRlc3QgYWN0dWFsIGxvd2VyLWJvdW5kLXNpemUsIGlmIDAgc2V0IGl0IHRvIDBlbVxuICBAaWYgc3RyaXAtdW5pdCgkbG93ZXItYm91bmQtc2l6ZSkgPT0gMCB7XG4gICAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpO1xuICB9XG5cbiAgQGlmICR1cHBlci1ib3VuZC1zaXplID09IG51bGwge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJHVwcGVyLWJvdW5kOiAtemYtYnAtdG8tZW0oJHVwcGVyLWJvdW5kLXNpemUpO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdXBwZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yKCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvci1vbmx5KCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgb25seSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXMge1xuICAvLyBCYXNpYyBoaWRpbmcgY2xhc3Nlc1xuICAuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmludmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gUmVzcG9uc2l2ZSB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIC5oaWRlLWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIGhpZGUtZm9yKCRzaXplKTtcbiAgICAgIH1cblxuICAgICAgLnNob3ctZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvdy1mb3IoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5oaWRlLWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIGhpZGUtZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cblxuICAgIC5zaG93LWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIHNob3ctZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNjcmVlbiByZWFkZXIgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIC8vIE5lZWQgYSBcImhpZGUtZm9yLXNyXCIgY2xhc3M/IEFkZCBhcmlhLWhpZGRlbj0ndHJ1ZScgdG8gdGhlIGVsZW1lbnRcbiAgLnNob3ctZm9yLXNyLFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gIH1cblxuICAvLyBPbmx5IGRpc3BsYXkgdGhlIGVsZW1lbnQgd2hlbiBpdCdzIGZvY3VzZWRcbiAgLnNob3ctb24tZm9jdXMge1xuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmO1xuICAgIH1cbiAgfVxuXG4gIC8vIExhbmRzY2FwZSBhbmQgcG9ydHJhaXQgdmlzaWJpbGl0eVxuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmbG9hdFxuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzIHtcbiAgLmZsb2F0LWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmxvYXQtcmlnaHQge1xuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZsb2F0LWNlbnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgLmNsZWFyZml4IHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxufVxuIiwiQG1peGluIGZvdW5kYXRpb24tZmxleC1jbGFzc2VzIHtcbiAgLy8gSG9yaXpvbnRhbCBhbGlnbm1lbnQgdXNpbmcganVzdGlmeS1jb250ZW50XG4gIEBlYWNoICRoZGlyLCAkcHJvcCBpbiBtYXAtcmVtb3ZlKCQtemYtZmxleC1qdXN0aWZ5LCAnbGVmdCcpIHtcbiAgICAuYWxpZ24tI3skaGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xuICAgIH1cbiAgfVxuICBcbiAgLy8gSG9yaXpvbnRhbCBhbGlnbm1lbnQgU3BlY2lmaWNhbGx5IGZvciBWZXJ0aWNhbCBNZW51XG4gIEBlYWNoICRoZGlyLCAkcHJvcCBpbiBtYXAtcmVtb3ZlKCQtemYtZmxleC1qdXN0aWZ5LCAnbGVmdCcsICdqdXN0aWZ5JywgJ3NwYWNlZCcpIHtcbiAgICAuYWxpZ24tI3skaGRpcn0ge1xuICAgICAgJi52ZXJ0aWNhbC5tZW51ID4gbGkgPiBhIHsgXG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6ICRoZGlyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBWZXJ0aWNhbCBhbGlnbm1lbnQgdXNpbmcgYWxpZ24taXRlbXMgYW5kIGFsaWduLXNlbGZcbiAgQGVhY2ggJHZkaXIsICRwcm9wIGluICQtemYtZmxleC1hbGlnbiB7XG4gICAgLmFsaWduLSN7JHZkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHk6ICR2ZGlyKTtcbiAgICB9XG5cbiAgICAuYWxpZ24tc2VsZi0jeyR2ZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoJHk6ICR2ZGlyKTtcbiAgICB9XG4gIH1cblxuICAvLyBDZW50cmFsIGFsaWdubWVudCBvZiBjb250ZW50XG4gIC5hbGlnbi1jZW50ZXItbWlkZGxlIHtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiBjZW50ZXIsICR5OiBtaWRkbGUpO1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuXG4gIC8vIFNvdXJjZSBvcmRlcmluZ1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDYge1xuICAgICAgLiN7JC16Zi1zaXplfS1vcmRlci0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtb3JkZXIoJGkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gYnJlYWtwb2ludHNcbiAgIFxuJFM6IDIwZW07ICAvLyAzMjBweCAvIDE2XG4kRk06IDQwZW07IC8vIENvbmZvcm0gdG8gZm91bmRhdGlvbiAnbWVkaXVtJyBjc3MgYnJlYWtwb2ludFxuJE06IDQ3LjVlbTsgIC8vIDc2MHB4IC8gMTZcbiRGTDogNjRlbTsgLy8gQ29uZm9ybSB0byBmb3VuZGF0aW9uICdsYXJnZScgY3NzIGJyZWFrcG9pbnRcbiRMOiA3NWVtOyAvLyAxMjAwcHggLyAxNlxuXG4kWEw6IDEwMGVtOyAvLyAgMTYwMHB4IC8gMTZcblxuLy8gbWVkaWEgcXVlcmllc1xuXG5AbWl4aW4gTVEoJGNhbnZhcykge1xuICBAaWYgJGNhbnZhcyA9PSBTIHtcbiAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJFMpIHsgQGNvbnRlbnQ7IH0gXG4gIH1cbiAgQGlmICRjYW52YXMgPT0gRk0ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJEZNKSB7IEBjb250ZW50OyB9IFxuICB9XG4gIEBlbHNlIGlmICRjYW52YXMgPT0gTSB7XG4gICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRNKSB7IEBjb250ZW50OyB9IFxuICB9XG4gIEBlbHNlIGlmICRjYW52YXMgPT0gRkwge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJEZMKSB7IEBjb250ZW50OyB9IFxuICB9XG4gIEBlbHNlIGlmICRjYW52YXMgPT0gTCB7XG4gICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRMKSB7IEBjb250ZW50OyB9IFxuICB9XG4gIEBlbHNlIGlmICRjYW52YXMgPT0gWEwge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJFhMKSB7IEBjb250ZW50OyB9IFxuICB9XG59XG5cbi8vIEZvdW5kYXRpb24tbGlrZSBDbGFzc2VzXG4uc2hvdy1mb3ItbXEtbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgQGluY2x1ZGUgTVEoTCkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxufVxuXG4uaGlkZS1mb3ItbXEtbGFyZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBAaW5jbHVkZSBNUShMKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmhpZGUtZm9yLW1xLW1lZGl1bSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5zaG93LWZvci1tcS1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxufSIsIiR0aGVtZS1tYXA6IG51bGw7XG4kdGhlbWVzOiAoXG4gIG9yaWdpbmFsOiAoXG4gICAgY29sb3JBY2NlbnQ6ICRjb2xvci1ibHVlLFxuICAgIGNvbG9yQWNjZW50SG92ZXI6ICRjb2xvci1ibHVlLW9yaWdpbmFsLWxpZ2h0LFxuICAgIGNvbG9yQWNjZW50UmV2ZXJzZTogJGNvbG9yLWJsdWUtb3JpZ2luYWwtbGlnaHQsXG4gICAgY29sb3JXaGl0ZTogJGNvbG9yLXdoaXRlLFxuICAgIGJhY2tncm91bmRDb2xvcjogJGNvbG9yLWJhY2tncm91bmQtb2ZmLXdoaXRlLFxuICAgIGJhY2tncm91bmRDb2xvckVtcGhhc2lzOiAkY29sb3ItYmFja2dyb3VuZC1hbG1vc3Qtd2hpdGUsXG4gICAgYmFja2dyb3VuZENvbG9yT3BhcXVlOiAkY29sb3ItYmFja2dyb3VuZC1vZmYtd2hpdGUsXG4gICAgYmFja2dyb3VuZFRyYW5zcGFyZW50OiB0cmFuc3BhcmVudCxcbiAgICBtb2R1bGVCYWNrZ3JvdW5kQ29sb3I6ICRjb2xvci13aGl0ZSxcbiAgICBtZW51QmFja2dyb3VuZENvbG9yOiAkY29sb3ItYmFja2dyb3VuZC1kYXJrLFxuICAgIG1vZHVsZU1lZGl1bUJhY2tncm91bmRDb2xvcjogJGNvbG9yLXdoaXRlLFxuICAgIG5hdkJhY2tncm91bmRDb2xvcjogJGNvbG9yLXdoaXRlLFxuICAgIGhpZ2hsaWdodEJhY2tncm91bmRDb2xvcjogI2YzZmFmMCxcbiAgICBhbGVydEJhY2tncm91bmRDb2xvcjogI2ZmYTZhNixcbiAgICB0YWJsZVJvd0V2ZW5CYWNrZ3JvdW5kQ29sb3I6ICNmNGY0ZjQsXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJvcmRlci1saWdodCxcbiAgICBib3JkZXJMaWdodDogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItbGlnaHQtbGlnaHRlc3QsXG4gICAgYm9yZGVyRGFyazogMXB4IHNvbGlkICRjb2xvci10ZXh0LWdyYXksXG4gICAgYm9yZGVyQWNjZW50OiAxcHggc29saWQgJGNvbG9yLWJsdWUsXG4gICAgYm9yZGVyRG90dGVkOiAxcHggZG90dGVkICRjb2xvci1ib3JkZXItbGlnaHQsXG4gICAgYm9yZGVyVHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50LFxuICAgIHJvdW5kZWRDb3JuZXJzOiA1cHgsXG4gICAgcm91bmRlZENvcm5lcnNUb3A6IDVweCA1cHggMCAwLFxuICAgIHJvdW5kZWRDb3JuZXJzQm90dG9tOiAwcHggMHB4IDVweCA1cHgsXG4gICAgaWNvbkNvbG9yU2Vjb25kYXJ5OiAjY2FjYWNhLFxuICAgIHRleHRDb2xvclByaW1hcnk6ICRjb2xvci10ZXh0LWRhcmssXG4gICAgdGV4dENvbG9yU2Vjb25kYXJ5OiAkY29sb3ItdGV4dC1ncmF5LFxuICAgIHRleHRDb2xvckFjY2VudDogJGNvbG9yLXRleHQtYmx1ZSxcbiAgICB0ZXh0Q29sb3JBY2NlbnRIb3ZlcjogJGNvbG9yLWJsdWUtb3JpZ2luYWwtZGFyayxcbiAgICB0ZXh0Q29sb3JFcnJvcjogJGNvbG9yLXRleHQtcmVkLFxuICAgIGNvbnRlbnRCb3JkZXJBY2NlbnQ6ICRjb2xvci10cmFuc3BhcmVudCxcbiAgICBidXR0b25CYWNrZ3JvdW5kOiAkY29sb3ItYmx1ZS1vcmlnaW5hbC1kYXJrLFxuICAgIGJ1dHRvbkJhY2tncm91bmRIb3ZlcjogJGNvbG9yLWJsdWUtb3JpZ2luYWwtbGlnaHQsXG4gICAgYnV0dG9uVGV4dDogJGNvbG9yLXRleHQtd2hpdGUsXG4gICAgYnV0dG9uVGV4dFNoYWRvdzogMCAxcHggMCByZ2JhKDAsMCwwLDAuMjApLFxuICAgIGJ1dHRvblRleHRIb3ZlcjogJGNvbG9yLXRleHQtd2hpdGUsXG4gICAgYnV0dG9uQm94U2hhZG93OiAkY29sb3ItdHJhbnNwYXJlbnQsXG4gICAgbW9kYWxCYWNrZ3JvdW5kQ29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLWFsbW9zdC13aGl0ZSxcbiAgICBtb2RhbFRleHRDb2xvclByaW1hcnk6ICRjb2xvci10ZXh0LWRhcmssXG4gICAgY29tbWVudEJvZHlIaWdobGlnaHRCYWNrZ3JvdW5kQ29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLWFsbW9zdC13aGl0ZS1kYXJrZXIsXG4gICksXG4gIGxpZ2h0OiAoXG4gICAgY29sb3JBY2NlbnQ6ICRjb2xvci1oaXZlLXJlZCxcbiAgICBjb2xvckFjY2VudEhvdmVyOiAkY29sb3ItaGl2ZS1yZWQtZGFyayxcbiAgICBjb2xvckFjY2VudFJldmVyc2U6ICRjb2xvci1oaXZlLWJsYWNrLFxuICAgIGNvbG9yV2hpdGU6ICRjb2xvci13aGl0ZSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLW9mZi13aGl0ZS1kYXJrLFxuICAgIGJhY2tncm91bmRDb2xvckVtcGhhc2lzOiAkY29sb3ItYmFja2dyb3VuZC1hbG1vc3Qtd2hpdGUsXG4gICAgYmFja2dyb3VuZENvbG9yT3BhcXVlOiAkY29sb3ItYmFja2dyb3VuZC1vZmYtd2hpdGUsXG4gICAgYmFja2dyb3VuZFRyYW5zcGFyZW50OiB0cmFuc3BhcmVudCxcbiAgICBtb2R1bGVCYWNrZ3JvdW5kQ29sb3I6ICRjb2xvci13aGl0ZSxcbiAgICBtZW51QmFja2dyb3VuZENvbG9yOiAkY29sb3ItYmFja2dyb3VuZC1kYXJrLFxuICAgIG1vZHVsZU1lZGl1bUJhY2tncm91bmRDb2xvcjogJGNvbG9yLXRyYW5zcGFyZW50LFxuICAgIG5hdkJhY2tncm91bmRDb2xvcjogJGNvbG9yLXdoaXRlLFxuICAgIGhpZ2hsaWdodEJhY2tncm91bmRDb2xvcjogI2YzZmFmMCxcbiAgICBhbGVydEJhY2tncm91bmRDb2xvcjogI2ZmYTZhNixcbiAgICB0YWJsZVJvd09kZEJhY2tncm91bmRDb2xvcjogI2U1ZTVlNSxcbiAgICB0YWJsZVJvd0V2ZW5CYWNrZ3JvdW5kQ29sb3I6ICNmNGY0ZjQsXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJvcmRlci1saWdodCxcbiAgICBib3JkZXJMaWdodDogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItbGlnaHQtbGlnaHRlc3QsXG4gICAgYm9yZGVyRGFyazogMXB4IHNvbGlkICRjb2xvci10ZXh0LWdyYXksXG4gICAgYm9yZGVyQWNjZW50OiAxcHggc29saWQgJGNvbG9yLWhpdmUtcmVkLFxuICAgIGJvcmRlckRvdHRlZDogMXB4IGRvdHRlZCAkY29sb3ItYm9yZGVyLWxlc3MtbGlnaHQsXG4gICAgYm9yZGVyVHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50LFxuICAgIHJvdW5kZWRDb3JuZXJzOiA1cHgsXG4gICAgcm91bmRlZENvcm5lcnNUb3A6IDVweCA1cHggMCAwLFxuICAgIHJvdW5kZWRDb3JuZXJzQm90dG9tOiAwcHggMHB4IDVweCA1cHgsXG4gICAgaWNvbkNvbG9yU2Vjb25kYXJ5OiAjY2FjYWNhLFxuICAgIHRleHRDb2xvclByaW1hcnk6ICRjb2xvci10ZXh0LWRhcmssXG4gICAgdGV4dENvbG9yU2Vjb25kYXJ5OiAkY29sb3ItdGV4dC1ncmF5LFxuICAgIHRleHRDb2xvckFjY2VudDogJGNvbG9yLXRleHQtaGl2ZS1yZWQsXG4gICAgdGV4dENvbG9yQWNjZW50SG92ZXI6ICRjb2xvci1oaXZlLXJlZCxcbiAgICB0ZXh0Q29sb3JFcnJvcjogJGNvbG9yLXRleHQtcmVkLFxuICAgIGNvbnRlbnRCb3JkZXJBY2NlbnQ6ICRjb2xvci1oaXZlLXJlZCxcbiAgICBidXR0b25CYWNrZ3JvdW5kOiAkY29sb3ItaGl2ZS1ibGFjayxcbiAgICBidXR0b25CYWNrZ3JvdW5kSG92ZXI6ICRjb2xvci1oaXZlLXJlZCxcbiAgICBidXR0b25UZXh0OiAkY29sb3ItdGV4dC13aGl0ZSxcbiAgICBidXR0b25UZXh0U2hhZG93OiAwIDFweCAwIHJnYmEoMCwwLDAsMC4yMCksXG4gICAgYnV0dG9uVGV4dEhvdmVyOiAkY29sb3Itd2hpdGUsXG4gICAgYnV0dG9uQm94U2hhZG93OiAkY29sb3ItaGl2ZS1yZWQsXG4gICAgYnV0dG9uQm94U2hhZG93SG92ZXI6ICRjb2xvci1oaXZlLWJsYWNrLFxuICAgIG1vZGFsQmFja2dyb3VuZENvbG9yOiAkY29sb3Itd2hpdGUsXG4gICAgbW9kYWxUZXh0Q29sb3JQcmltYXJ5OiAkY29sb3ItdGV4dC1kYXJrLFxuICAgIGNvbW1lbnRCb2R5SGlnaGxpZ2h0QmFja2dyb3VuZENvbG9yOiAkY29sb3ItYmFja2dyb3VuZC1hbG1vc3Qtd2hpdGUtZGFya2VyLFxuICApLFxuICBkYXJrOiAoXG4gICAgY29sb3JBY2NlbnQ6ICRjb2xvci1oaXZlLXJlZCxcbiAgICBjb2xvckFjY2VudEhvdmVyOiAkY29sb3ItaGl2ZS1yZWQsXG4gICAgY29sb3JBY2NlbnRSZXZlcnNlOiAkY29sb3Itd2hpdGUsXG4gICAgY29sb3JXaGl0ZTogJGNvbG9yLXdoaXRlLFxuICAgIGJhY2tncm91bmRDb2xvcjogJGNvbG9yLWJhY2tncm91bmQtZGFyayxcbiAgICBiYWNrZ3JvdW5kQ29sb3JFbXBoYXNpczogJGNvbG9yLWJhY2tncm91bmQtc3VwZXItZGFyayxcbiAgICBiYWNrZ3JvdW5kQ29sb3JPcGFxdWU6ICRjb2xvci1ibHVlLWRhcmssXG4gICAgbW9kdWxlQmFja2dyb3VuZENvbG9yOiAkY29sb3ItYmFja2dyb3VuZC1sZXNzLWRhcmssXG4gICAgYmFja2dyb3VuZFRyYW5zcGFyZW50OiB0cmFuc3BhcmVudCxcbiAgICBtZW51QmFja2dyb3VuZENvbG9yOiAkY29sb3ItYmx1ZS1kYXJrLFxuICAgIG1vZHVsZU1lZGl1bUJhY2tncm91bmRDb2xvcjogJGNvbG9yLWJhY2tncm91bmQtZGFyayxcbiAgICBuYXZCYWNrZ3JvdW5kQ29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLWxlc3MtZGFyayxcbiAgICBoaWdobGlnaHRCYWNrZ3JvdW5kQ29sb3I6ICRjb2xvci1oaXZlLWJsYWNrLWRhcmtlc3QsXG4gICAgYWxlcnRCYWNrZ3JvdW5kQ29sb3I6ICNmZmE2YTYsXG4gICAgdGFibGVSb3dPZGRCYWNrZ3JvdW5kQ29sb3I6ICMyODMyMzksXG4gICAgdGFibGVSb3dFdmVuQmFja2dyb3VuZENvbG9yOiAjMjEyQzMzLFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItZGFyay1saWdodGVzdCxcbiAgICBib3JkZXJMaWdodDogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItZGFyay1saWdodGVzdCxcbiAgICBib3JkZXJEYXJrOiAxcHggc29saWQgJGNvbG9yLXRleHQtZ3JheS1saWdodCxcbiAgICBib3JkZXJBY2NlbnQ6IDFweCBzb2xpZCAkY29sb3ItaGl2ZS1yZWQsXG4gICAgYm9yZGVyRG90dGVkOiAxcHggZG90dGVkICRjb2xvci1ib3JkZXItZGFyayxcbiAgICBib3JkZXJUcmFuc3BhcmVudDogdHJhbnNwYXJlbnQsXG4gICAgcm91bmRlZENvcm5lcnM6IDVweCxcbiAgICByb3VuZGVkQ29ybmVyc1RvcDogNXB4IDVweCAwIDAsXG4gICAgcm91bmRlZENvcm5lcnNCb3R0b206IDBweCAwcHggNXB4IDVweCxcbiAgICBpY29uQ29sb3JTZWNvbmRhcnk6ICRjb2xvci10ZXh0LWdyYXktbGlnaHQsXG4gICAgdGV4dENvbG9yUHJpbWFyeTogJGNvbG9yLXRleHQtd2hpdGUsXG4gICAgdGV4dENvbG9yU2Vjb25kYXJ5OiAkY29sb3ItdGV4dC1ncmF5LWxpZ2h0LFxuICAgIHRleHRDb2xvckFjY2VudDogJGNvbG9yLWhpdmUtcmVkLFxuICAgIHRleHRDb2xvckFjY2VudEhvdmVyOiAkY29sb3ItaGl2ZS1yZWQtbGlnaHQsXG4gICAgdGV4dENvbG9yRXJyb3I6ICRjb2xvci10ZXh0LXJlZCxcbiAgICBjb250ZW50Qm9yZGVyQWNjZW50OiAkY29sb3ItaGl2ZS1yZWQsXG4gICAgYnV0dG9uQmFja2dyb3VuZDogJGNvbG9yLXdoaXRlLFxuICAgIGJ1dHRvbkJhY2tncm91bmRIb3ZlcjogJGNvbG9yLWhpdmUtcmVkLFxuICAgIGJ1dHRvblRleHQ6ICRjb2xvci1ibHVlLWRhcmssXG4gICAgYnV0dG9uVGV4dFNoYWRvdzogMCAxcHggMCByZ2JhKDAsMCwwLDApLFxuICAgIGJ1dHRvblRleHRIb3ZlcjogJGNvbG9yLXdoaXRlLFxuICAgIGJ1dHRvbkJveFNoYWRvdzogJGNvbG9yLWhpdmUtcmVkLFxuICAgIGJ1dHRvbkJveFNoYWRvd0hvdmVyOiAkY29sb3Itd2hpdGUsXG4gICAgaW5wdXRQcmljZVdhcm5pbmc6IHJnYmEoMjU1LCAxNTMsIDAsIDAuODMpLFxuICAgIG1vZGFsQmFja2dyb3VuZENvbG9yOiAkY29sb3ItYmFja2dyb3VuZC1kYXJrLFxuICAgIG1vZGFsVGV4dENvbG9yUHJpbWFyeTogJGNvbG9yLXRleHQtd2hpdGUsXG4gICAgY29tbWVudEJvZHlIaWdobGlnaHRCYWNrZ3JvdW5kQ29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLWRhcmstbGlnaHRlcixcbiAgKSxcbik7XG5cbi8qXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGVtZXNcbiAqL1xuQG1peGluIHRoZW1pZnkoJHRoZW1lcykge1xuICBAZWFjaCAkdGhlbWUsICRtYXAgaW4gJHRoZW1lcyB7XG4gICAgLnRoZW1lLSN7JHRoZW1lfSAmIHtcbiAgICAgICR0aGVtZS1tYXA6ICgpICFnbG9iYWw7XG4gICAgICBAZWFjaCAka2V5LCAkc3VibWFwIGluICRtYXAge1xuICAgICAgICAkdmFsdWU6IG1hcC1nZXQobWFwLWdldCgkdGhlbWVzLCAkdGhlbWUpLCAnI3ska2V5fScpO1xuICAgICAgICAkdGhlbWUtbWFwOiBtYXAtbWVyZ2UoJHRoZW1lLW1hcCwgKCRrZXk6ICR2YWx1ZSkpICFnbG9iYWw7XG4gICAgICB9XG4gICAgICBAY29udGVudDtcbiAgICAgICR0aGVtZS1tYXA6IG51bGwgIWdsb2JhbDtcbiAgICB9XG4gIH1cbn1cblxuQGZ1bmN0aW9uIHRoZW1lZCgka2V5KSB7XG4gIEByZXR1cm4gbWFwLWdldCgkdGhlbWUtbWFwLCAka2V5KTtcbn1cblxuXG4udGhlbWUtb3JpZ2luYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIGNvbG9yOiAkY29sb3ItdGV4dC1kYXJrO1xuICBAaW5jbHVkZSBNUShNKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJhY2tncm91bmQtb2ZmLXdoaXRlO1xuICB9XG59XG4udGhlbWUtbGlnaHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmFja2dyb3VuZC1vZmYtd2hpdGU7XG4gIGNvbG9yOiAkY29sb3ItdGV4dC1kYXJrO1xuICBAaW5jbHVkZSBNUShNKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJhY2tncm91bmQtb2ZmLXdoaXRlO1xuICB9XG59XG4udGhlbWUtZGFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLWRhcms7XG4gIGNvbG9yOiAkY29sb3ItdGV4dC13aGl0ZTtcbn1cblxuXG4vLyBVdGlsaXR5IGNsYXNzZXMgdG8gYmUgdXNlZCB3aXRoIEBleHRlbmRcblxuLmxpbmsge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICAmLS1wcmltYXJ5IHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICB9XG4gICAgJjp2aXNpdGVkLCAmOmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgICAgfVxuICAgIH1cbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi0tc2Vjb25kYXJ5IHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgIH1cbiAgICAmOnZpc2l0ZWQsICY6YWN0aXZlIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICYtLWFjY2VudCB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTtcbiAgICB9XG4gICAgJjp2aXNpdGVkLCAmOmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50Jyk7XG4gICAgICB9XG4gICAgfVxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudEhvdmVyJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5lLWJ0bi1ob2xsb3cge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDAgcmdiYSgwLDAsMCwwKTtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlckFjY2VudCcpO1xuICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpO1xuICB9XG4gICY6aG92ZXIge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlckRhcmsnKTtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICB9XG4gIH1cbn1cblxuLmUtYnRuIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgxOHB4KTtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdidXR0b25CYWNrZ3JvdW5kJyk7XG4gICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMCByZ2JhKDAsMCwwLDApLCAycHggMnB4IDBweCAwcHggdGhlbWVkKCdidXR0b25Cb3hTaGFkb3cnKTtcbiAgICBjb2xvcjogdGhlbWVkKCdidXR0b25UZXh0Jyk7XG4gIH1cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2J1dHRvbkJhY2tncm91bmRIb3ZlcicpO1xuICAgICAgYm94LXNoYWRvdzogMnB4IDJweCAycHggMCByZ2JhKDAsMCwwLDAuMSksIDRweCA0cHggMCAwIHRoZW1lZCgnYnV0dG9uQm94U2hhZG93SG92ZXInKTtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ2J1dHRvblRleHRIb3ZlcicpO1xuICAgICAgdGV4dC1zaGFkb3c6IHRoZW1lZCgnYnV0dG9uVGV4dFNoYWRvdycpO1xuICAgIH1cbiAgfVxuICAmOnZpc2l0ZWQsICY6YWN0aXZlIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ2J1dHRvblRleHQnKTtcbiAgICB9XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgY29sb3I6IHRoZW1lZCgnYnV0dG9uVGV4dEhvdmVyJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5idXR0b24uZGlzYWJsZWQsIC5idXR0b25bZGlzYWJsZWRdIHtcbiAgb3BhY2l0eTogMC4yNTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMCByZ2JhKDAsMCwwLDApO1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2J1dHRvbkJhY2tncm91bmQnKTtcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwIHJnYmEoMCwwLDAsMCk7XG4gICAgY29sb3I6IHRoZW1lZCgnYnV0dG9uVGV4dCcpO1xuICB9XG4gICY6aG92ZXIge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdidXR0b25CYWNrZ3JvdW5kJyk7XG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwIHJnYmEoMCwwLDAsMCk7XG4gICAgICBjb2xvcjogdGhlbWVkKCdidXR0b25UZXh0Jyk7XG4gICAgfVxuICB9XG59XG5cbi8vIFRoaXMgYnV0dG9uIGNsYXNzIGRvZXNuJ3QgYXBwbHlpbmcgdGhlbWluZyAoanVzdCBzdHJhaWdodCBzdHlsZXMpLiBUbyBiZSB1c2VkIHdoZW4gdGhlcmUgYXJlIG5vIHRoZW1pbmcgY2xhc3NlcyBhdmFpbGFibGUgKGUuZy4gaW4gbW9kYWxzIGFuZCBzdGF0aWMgc2VydmVyIHBhZ2VzIGluIHNpZ251cClcblxuLmUtYnRuIHtcbiAgJi0tYmxhY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1oaXZlLWJsYWNrO1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDAgcmdiYSgwLDAsMCwwKSwgNXB4IDVweCAwIDAgJGNvbG9yLWhpdmUtcmVkO1xuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgICBib3gtc2hhZG93OiAycHggMnB4IDJweCAwIHJnYmEoMCwwLDAsMC4xKSwgN3B4IDdweCAwIDAgJGNvbG9yLWhpdmUtYmxhY2s7XG4gICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgwLDAsMCwwLjIwKTtcbiAgICB9XG4gICAgJjp2aXNpdGVkLCAmOmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItaGl2ZS1ibGFjaztcbiAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDAgcmdiYSgwLDAsMCwwKSwgNXB4IDVweCAwIDAgJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICB9XG4gICAgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwIHJnYmEoMCwwLDAsMCk7XG4gICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMCByZ2JhKDAsMCwwLDApO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItaGl2ZS1ibGFjaztcbiAgICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5ob2xsb3cge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwIHJnYmEoMCwwLDAsMCk7XG4gICAgICBjb2xvcjogJGNvbG9yLXRleHQtZ3JheTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgICAgIGJvcmRlcjogdHJhbnNwYXJlbnQ7XG4gICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDAgcmdiYSgwLDAsMCwwKTtcbiAgICAgICAgY29sb3I6ICRjb2xvci1ibHVlLWRhcms7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAwIHJnYmEoMCwwLDAsMC4wKTtcbiAgICAgIH1cbiAgICAgICY6dmlzaXRlZCwgJjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMCByZ2JhKDAsMCwwLDApO1xuICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQtZ3JheTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG4udGhlbWUtZGFyayxcbi50aGVtZS1saWdodCB7XG4gIC5idXR0b24uaG9sbG93IHtcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgY29sb3I6ICRjb2xvci1oaXZlLXJlZDtcbiAgICAgIG91dGxpbmUtY29sb3I6ICRjb2xvci1oaXZlLXJlZDtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBob3ZlclVuZGVybGluZSgpIHtcbiAgJjpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbn1cblxuLy8gcmVtIGZhbGxiYWNrIC0gY3JlZGl0czogaHR0cDovL3plcm9zaXh0aHJlZS5zZS9cblxuQGZ1bmN0aW9uIGNhbGN1bGF0ZVJlbSgkc2l6ZSkge1xuICAkcmVtU2l6ZTogJHNpemUgLyAxNnB4O1xuICBAcmV0dXJuICRyZW1TaXplICogMXJlbTtcbn1cblxuQG1peGluIGZvbnQtc2l6ZSgkc2l6ZSkge1xuICBmb250LXNpemU6ICRzaXplO1xuICBmb250LXNpemU6IGNhbGN1bGF0ZVJlbSgkc2l6ZSk7XG59XG5cbi8vIEVuYWJsZXMgb3BhY2l0eSB0byBiZSBzYWZlbHkgdXNlZCB3aXRoIG9sZGVyIGJyb3dzZXJzXG5cbkBtaXhpbiBvcGFjaXR5KCRvcGFjaXR5KSB7XG4gIG9wYWNpdHk6ICRvcGFjaXR5O1xuICAkb3BhY2l0eS1pZTogJG9wYWNpdHkgKiAxMDA7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0kb3BhY2l0eS1pZSk7IC8vSUU4XG59XG5cbiIsIi5tZW51ID4gbGkgPiBhIHtcbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbn1cblxuLnRvb2x0aXAge1xuICBtYXJnaW4tdG9wOiAtMXJlbTtcbn1cblxuLmRyb3Bkb3duLXBhbmUge1xuICB3aWR0aDogYXV0bztcbiAgcGFkZGluZzogMDtcbiAgYm94LXNoYWRvdzogMXB4IDFweCA1cHggMHB4IHJnYmEoNTAsIDUwLCA1MCwgMC43NSk7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlO1xuXG4gIC5WZXJ0aWNhbE1lbnUge1xuICAgIGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjZmNjtcbiAgICAgIGNvbG9yOiAkY29sb3ItaGl2ZS1yZWQtZGFyaztcbiAgICB9XG4gIH1cbn1cblxuYSB7XG4gIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTtcbiAgfVxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudEhvdmVyJyk7XG4gICAgfVxuICB9XG59XG5cbmRpdltyb2xlPWRpYWxvZ10ge1xuICB6LWluZGV4OiA1MDA7XG59XG5cbmlucHV0W3R5cGU9c3VibWl0XS5kaXNhYmxlZCwgaW5wdXRbdHlwZT1zdWJtaXRdLmRpc2FibGVkOmZvY3VzIHtcbiAgb3BhY2l0eTogMTtcbiAgY3Vyc29yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG59XG5cbmJ1dHRvbiwgLmJ1dHRvbiB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5jb2x1bW4sIC5jb2x1bW5zIHtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5jYWxsb3V0IHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnaGlnaGxpZ2h0QmFja2dyb3VuZENvbG9yJyk7XG4gICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlcicpO1xuICB9XG4gICYuYWxlcnQge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdhbGVydEJhY2tncm91bmRDb2xvcicpO1xuICAgICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgIH1cbiAgfVxufVxuXG4uY2xvc2UtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA5OTk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlLWluLW91dDtcbiAgdG9wOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gIH1cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTtcbiAgICB9XG4gIH1cbn1cblxuaHIge1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBib3JkZXItYm90dG9tOiB0aGVtZWQoJ2JvcmRlcicpO1xuICB9XG59XG5cbnRhYmxlIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgLTFweCByZWQ7XG59XG5cblxudGhlYWQsIHRib2R5LCB0Zm9vdCB7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYmFja2dyb3VuZENvbG9yJyk7XG4gIH1cbn1cblxudGhlYWQge1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ3RhYmxlUm93RXZlbkJhY2tncm91bmRDb2xvcicpO1xuICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgfVxufVxuXG50Ym9keSB0cjpudGgtY2hpbGQoZXZlbikge1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ3RhYmxlUm93RXZlbkJhY2tncm91bmRDb2xvcicpO1xuICB9XG59XG5cbi5yZXZlYWwtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44OCk7XG4gIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xufVxuXG4ucmV2ZWFsIHtcbiAgYm94LXNoYWRvdzogMnB4IDJweCAycHggMCByZ2JhKDAsMCwwLDAuMSksIDdweCA3cHggMCAwICRjb2xvci1oaXZlLXJlZDtcbiAgYm9yZGVyLXJhZGl1czogMCAzMHB4O1xuICBib3JkZXI6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgb3V0bGluZTogbm9uZTtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdtb2RhbEJhY2tncm91bmRDb2xvcicpO1xuICAgIGNvbG9yOiB0aGVtZWQoJ21vZGFsVGV4dENvbG9yUHJpbWFyeScpO1xuICB9XG4gIGxhYmVsIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ21vZGFsVGV4dENvbG9yUHJpbWFyeScpO1xuICAgIH1cbiAgfVxuICAuYnV0dG9uIHtcbiAgICBAZXh0ZW5kIC5lLWJ0bjtcbiAgICBAZXh0ZW5kIC5lLWJ0bi0tYmxhY2s7XG4gICAgbWluLXdpZHRoOiAxMDBweDtcbiAgfVxuICBoNCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbn1cblxuLnByb2dyZXNzIHtcbiAgYm9yZGVyOiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjokY29sb3ItYm9yZGVyLWxpZ2h0O1xuICBkaXYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1oaXZlLXJlZDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGhlaWdodDogOHB4O1xuICB9XG59XG4iLCIvLyBBbmltYXRpb24gaGVscGVyc1xuXG4kZmFkZS1pbi1hbmltYXRpb24tbGVuZ3RoOiAxcztcbiRmYWRlLWluLWFuaW1hdGlvbi1kZWxheTogMC4wM3M7XG5cblxuLmZhZGUtaW4ge1xuICBAaW5jbHVkZSBvcGFjaXR5KDApO1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDEwIHtcbiAgICAmLS0jeyRpfSB7IFxuICAgICAgYW5pbWF0aW9uOiBmYWRlLWluXG4gICAgICAgJGZhZGUtaW4tYW5pbWF0aW9uLWxlbmd0aCBlYXNlLWluLW91dCAkZmFkZS1pbi1hbmltYXRpb24tZGVsYXkqJGkgYm90aDtcbiAgICB9XG4gIH0gXG59XG5cbkBrZXlmcmFtZXMgZmFkZS1pbiB7XG5cdDAlIHtcblx0XHRAaW5jbHVkZSBvcGFjaXR5KDApO1xuXHR9XG5cdDEwMCUge1xuXHRcdEBpbmNsdWRlIG9wYWNpdHkoMSk7XG5cdH1cbn1cblxuXG5Aa2V5ZnJhbWVzIGZhZGUtaW4tdXAge1xuICAwJSB7XG4gICAgQGluY2x1ZGUgb3BhY2l0eSgwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjRweCwgMjRweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgQGluY2x1ZGUgb3BhY2l0eSgxKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIDBweCk7XG4gIH1cbn0iLCJmb3JtIHtcbiAgLmVycm9yIHtcbiAgICBpbnB1dCwgaW5wdXQ6YWN0aXZlLCBpbnB1dDpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICRhbGVydC1jb2xvcjtcbiAgICB9XG4gICAgbGFiZWwsIC5oZWxwLXRleHQge1xuICAgICAgY29sb3I6ICRhbGVydC1jb2xvcjtcbiAgICB9XG4gICAgLmhlbHAtdGV4dCB7XG4gICAgICBtYXJnaW4tdG9wOiAwLjRyZW07XG4gICAgfVxuICB9XG4gIC5zdWNjZXNzIHtcbiAgICBjb2xvcjogJHN1Y2Nlc3MtY29sb3I7XG4gICAgdHJhbnNpdGlvbjogMC4zcyBhbGwgZWFzZS1pbi1vdXQ7XG4gIH1cbn1cbmJ1dHRvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNXB4ICFpbXBvcnRhbnQ7XG59XG5pbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCB7XG4gICAgLy8gT3ZlcndyaXRlIDE2cHggbWFyZ2luLWJvdHRvbSwgaXQgd2FzIHB1c2hpbmcgZXJyb3IgbWVzc2FnZXMgZG93biBhd2F5IGZyb20gdGhlIGZvcm0gZWxlbWVudFxuICAgIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xufVxuLmVycm9yIHtcbiAgICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgdHJhbnNpdGlvbjogMC4zcyBhbGwgZWFzZS1pbi1vdXQ7XG59XG5wLmVycm9yIHtcbiAgcGFkZGluZy10b3A6IDZweDtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbn1cbi53YXJuaW5nIHtcbiAgICBjb2xvcjogZGFya2dvbGRlbnJvZDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIHRyYW5zaXRpb246IDAuM3MgYWxsIGVhc2UtaW4tb3V0O1xufVxuLmRhcmtyZWQge1xuICAgIGNvbG9yOiBkYXJrcmVkO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4uaW5mbyB7XG4gICAgY29sb3I6IGRpbWdyZXk7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5ob3ZlckJhY2tncm91bmQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGFudGlxdWV3aGl0ZTtcbn1cbi5kZS1lbXBoYXNpemUge1xuICBjb2xvcjogJGRhcmstZ3JheTtcbn1cbi5vdmVyZmxvdy1lbGxpcHNpcyB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi5kYXJrYnRuIHtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG59XG5cbi8vIC8vIHdoYXQgYWJvdXQgdG91Y2gtc2NyZWVuIG9ubHk/XG4vLyAuaG92ZXJTaG93IHtcbi8vICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4vLyB9XG4vLyAvLyB3aGF0IGFib3V0IHRvdWNoLXNjcmVlbiBvbmx5P1xuLy8gLmhvdmVyU2hvd1RyaWdnZXI6aG92ZXIgPiAuaG92ZXJTaG93IHtcbi8vICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuLy8gfVxuXG5sYWJlbCB7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTsgIFxuICB9ICAgIFxufVxuXG4kaW5wdXQtZm9udC1mYW1pbHk6IFwiU291cmNlIFNhbnMgUHJvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRpbnB1dC1mb250LXNpemU6IDE2cHg7IiwiLk1hcmtkb3duIHtcbiAgZm9udC1mYW1pbHk6ICdTb3VyY2UgU2VyaWYgUHJvJywgc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTIwJTtcblxuICBsaW5lLWhlaWdodDogMTUwJTtcbn1cblxuLy8gdXNlZCBmb3IgY29tbWVudHNcbi5NYXJrZG93bi5NYXJrZG93blZpZXdlci0tc21hbGwge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMTAlO1xuXG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICBtYXgtaGVpZ2h0OiA0MDBweDtcbiAgfVxuXG4gIGRpdi52aWRlb1dyYXBwZXIge1xuICAgIG1heC13aWR0aDogNDgwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDI3MHB4O1xuICB9XG59XG5cbi5NYXJrZG93biB7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgaHlwaGVuczogbm9uZTtcblxuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuXG4gIGgxIHtcbiAgICBtYXJnaW46IDIuNXJlbSAwIC4zcmVtO1xuICAgIGZvbnQtc2l6ZTogMTYwJVxuICB9XG4gIGgyIHtcbiAgICBtYXJnaW46IDIuNXJlbSAwIC4zcmVtO1xuICAgIGZvbnQtc2l6ZTogMTQwJTtcbiAgfVxuICBoMyB7XG4gICAgbWFyZ2luOiAycmVtIDAgMC4zcmVtO1xuICAgIGZvbnQtc2l6ZTogMTIwJTtcbiAgfVxuICBoNCB7XG4gICAgbWFyZ2luOiAxLjVyZW0gMCAwLjJyZW07XG4gICAgZm9udC1zaXplOiAxMTAlO1xuICB9XG4gIGg1IHtcbiAgICBtYXJnaW46IDFyZW0gMCAwLjJyZW07XG4gICAgZm9udC1zaXplOiAxMDAlO1xuICB9XG4gIGg2IHtcbiAgICBtYXJnaW46IDFyZW0gMCAwLjJyZW07XG4gICAgZm9udC1zaXplOiA5MCU7XG4gIH1cblxuICBjb2RlIHtcbiAgICBwYWRkaW5nOiAwLjJyZW07XG4gICAgZm9udC1zaXplOiA4NSU7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0O1xuICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIG92ZXJmbG93OiBzY3JvbGw7XG4gIH1cblxuICBwcmUgPiBjb2RlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuXG4gIG9sLCB1bCB7XG4gICAgbWFyZ2luLWxlZnQ6IDJyZW07XG4gIH1cblxuICB0YWJsZSB0ZCB7XG4gICAgd29yZC1icmVhazogbm9ybWFsOyAvLyBpc3N1ZSAjMTQ2XG4gIH1cblxuICB0YWJsZSB0aGVhZCB0aCB7XG4gICAgd29yZC1icmVhazogbm9ybWFsO1xuICB9XG5cbiAgcCB7XG4gICAgZm9udC1zaXplOiAxMDAlO1xuICAgIGxpbmUtaGVpZ2h0OiAxNTAlO1xuICAgIG1hcmdpbjogMCAwIDEuNXJlbSAwO1xuICB9XG4gIGEge1xuICAgIEBleHRlbmQgLmxpbms7XG4gICAgQGV4dGVuZCAubGluay0tYWNjZW50O1xuICB9XG5cbiAgaW1nIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgfVxuXG4gIGlmcmFtZSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDc1dnc7XG4gIH1cblxuICBpZnJhbWUudHJ1dnZsLWlmcmFtZSB7XG4gICAgbWF4LWhlaWdodDogaW5pdGlhbDtcbiAgfVxuXG4gIC50d2VldFdyYXBwZXIgaWZyYW1lIHtcbiAgICAgIG1heC1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICBkaXYucHVsbC1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgfVxuXG4gIGRpdi5wdWxsLWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cblxuICBkaXYudGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICB9XG5cbiAgZGl2LnRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG5cbiAgZGl2LnRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICBkaXYudGV4dC1ydGwge1xuICAgIGRpcmVjdGlvbjogcnRsO1xuICB9XG5cbiAgZGl2LnZpZGVvV3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGlmcmFtZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICB9XG4gIH1cbiAgZGl2LmlmcmFtZVdyYXBwZXIge1xuICAgIGJsb2NrcXVvdGUge1xuICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgfVxuICB9XG4gIGRpdi50d2VldFdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICB9XG4gIH1cbiAgYmxvY2txdW90ZSB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBib3JkZXItbGVmdDogdGhlbWVkKCdib3JkZXJEYXJrJyk7XG4gICAgfVxuICB9XG4gIGJsb2NrcXVvdGUgPiBwIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgIH1cbiAgfVxufVxuXG5cbiIsIi5BcHAge1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgcGFkZGluZy10b3A6IDBweDtcbn1cblxuLkFwcF9fY29udGVudCB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi53ZWxjb21lV3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xufVxuXG4uUmlnaHRNZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmctdG9wOiAzcmVtO1xuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuICAubWVudSA+IGxpIHtcbiAgICA+IGEge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzc3NztcbiAgICB9XG4gICAgPiBhOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjY7XG4gICAgfVxuICB9XG4gIC5tZW51ID4gbGkubGFzdCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM3Nzc7XG4gIH1cbiAgLmJ1dHRvbi5ob2xsb3cge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxufVxuXG4uUGxhaW5MaW5rIHtcbiAgICBAZXh0ZW5kIC5saW5rO1xuICAgIEBleHRlbmQgLmxpbmstLXNlY29uZGFyeTtcbn1cblxuLnRleHQtbXV0ZWQge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi53ZWxjb21lQmFubmVyIHtcbiAgbWFyZ2luLXRvcDogLTFyZW07XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1oaXZlLWJsYWNrO1xuICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7XG5cbiAgaDIge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDI4cHgpO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtZmFtaWx5OiBcIlNvdXJjZSBTYW5zIFByb1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgQGluY2x1ZGUgb3BhY2l0eSgwKTtcbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMzRweCk7XG4gICAgICBtYXgtd2lkdGg6IDI4MHB4O1xuICAgIH1cbiAgfVxuXG4gIGg0IHtcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB3aWR0aDogODUlO1xuICAgIG1heC13aWR0aDogMzYwcHg7XG4gICAgZm9udC1mYW1pbHk6IFwiU291cmNlIFNhbnMgUHJvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBsaW5lLWhlaWdodDogMS4zICFpbXBvcnRhbnQ7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE2cHgpO1xuICAgIEBpbmNsdWRlIG9wYWNpdHkoMCk7XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE3cHgpO1xuICAgIH1cbiAgfVxuXG4gIC5yb3cge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICAuYnV0dG9uIHtcbiAgICBtaW4td2lkdGg6IDEyMHB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICAgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgIGNvbG9yOiAkY29sb3ItaGl2ZS1ibGFjaztcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMCByZ2JhKDAsMCwwLDApLCAycHggMnB4IDAgMCAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE4cHg7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE2cHgpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LWZhbWlseTogJGZvbnQtcHJpbWFyeTtcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1oaXZlLXJlZDtcbiAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwIHJnYmEoMCwwLDAsMC4xKSwgNHB4IDRweCAwIDAgJGNvbG9yLXdoaXRlO1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgwLDAsMCwwLjIwKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE4cHgpO1xuICAgICAgbWluLXdpZHRoOiAxMzJweDtcbiAgICB9XG4gIH1cblxuICAuYnV0dG9uLS1wcmltYXJ5IHtcbiAgICBAaW5jbHVkZSBvcGFjaXR5KDApO1xuICB9XG4gIC5jbG9zZS1idXR0b24ge1xuICAgIHRvcDogMC44cmVtO1xuICAgIHJpZ2h0OiAwO1xuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgIHRvcDogMC41cmVtO1xuICAgIH1cbiAgfVxuXG4gIC5idXR0b24uZ2hvc3Qge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzMwNDE0QTtcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwICMzMDQxNEEsIDJweCAycHggMCAwICMzMDQxNEE7XG4gICAgQGluY2x1ZGUgb3BhY2l0eSgwKTtcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDAgIzMwNDE0QSwgNHB4IDRweCAwIDAgJGNvbG9yLWhpdmUtcmVkO1xuICAgIH1cbiAgfVxuXG4gIC5oZXJvSW1hZ2Uge1xuICAgIG1heC1oZWlnaHQ6IDM2MHB4O1xuICAgIEBpbmNsdWRlIG9wYWNpdHkoMCk7XG4gICAgYW5pbWF0aW9uOiBmYWRlLWluLXVwIDAuNnMgZWFzZS1vdXQgYm90aDtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbikge1xuICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgICAgQGluY2x1ZGUgb3BhY2l0eSgxKTtcbiAgICB9XG4gIH1cblxuICAud2VsY29tZUltYWdlIHtcbiAgICBwYWRkaW5nOiAxZW0gMDtcbiAgICBAaW5jbHVkZSBNUShMKSB7XG4gICAgICBwYWRkaW5nOiAyZW0gMDtcbiAgICB9XG4gIH1cblxuICAud2VsY29tZVBpdGNoIHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG59XG5cbi5kb3dudm90ZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICAvLy13ZWJraXQtZmlsdGVyOiBncmF5c2NhbGUoMSk7IC8vIGltYWdlXG4gICAgLy9maWx0ZXI6IGdyYXk7IC8vIGltYWdlIGdyYXlzY2FsZVxuICAgIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICAgIGNvbG9yOiAjODQ4MjgyO1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgfVxuICAgIC5Db21tZW50X19oZWFkZXItdXNlciB7XG4gICAgICBjb2xvcjogIzg0ODI4MjtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICAgIH1cbiAgICB9XG59XG4uZG93bnZvdGVkOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGZpbHRlcjogbm9uZTtcbiAgICAtd2Via2l0LWZpbHRlcjogbm9uZTtcbn1cblxuLkFwcF9fYW5ub3VuY2VtZW50IHtcbiAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgcGFkZGluZy10b3A6IDQwcHg7XG4gIC5jbG9zZS1idXR0b24ge1xuICAgIHJpZ2h0OiAwO1xuICB9XG59XG5cblxuLmJldGEtZGlzY2xhaW1lciB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIHBhZGRpbmc6IDhweCAyNHB4O1xuICAgICAgICBmb250LXNpemU6IDAuOGVtO1xuICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgNDVkZWcsXG4gICAgICAgICAgdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3InKSxcbiAgICAgICAgICB0aGVtZWQoJ2JhY2tncm91bmRDb2xvcicpIDEwcHgsXG4gICAgICAgICAgdGhlbWVkKCdtb2R1bGVCYWNrZ3JvdW5kQ29sb3InKSAxMHB4LFxuICAgICAgICAgIHRoZW1lZCgnbW9kdWxlQmFja2dyb3VuZENvbG9yJykgMjBweFxuICAgICAgICApO1xuICAgIH1cbn1cblxuLnJlYWN0LXRvb2x0aXAtbGl0ZSB7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBjb2xvcjogd2hpdGU7XG59XG5cbi5yZWFjdC10b29sdGlwLWxpdGUtYXJyb3cge1xuICAgIGJvcmRlci1jb2xvcjogIzMzMztcbn1cbiIsIi5CZW5lZmljaWFyeVNlbGVjdG9yX19wZXJjZW50Ym94IHtcbiAgbWluLXdpZHRoOiAyLjJyZW07XG4gIG1heC13aWR0aDogMi42cmVtO1xufVxuLkJlbmVmaWNpYXJ5U2VsZWN0b3JfX3BlcmNlbnRyb3cge1xuICBwYWRkaW5nLXRvcDogNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDJweDtcbn1cblxuLkJlbmVmaWNpYXJ5U2VsZWN0b3IgLmlucHV0LWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbn1cblxuLnJlYWN0LWF1dG9jb21wbGV0ZS1pbnB1dCB7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgbWF4LWhlaWdodDogMTZlbTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLDAsMCwwLjE1KTtcbiAgYm90dG9tOiBhdXRvO1xuICBib3gtc2hhZG93OiAwIDZweCAxMnB4IHJnYmEoMCwwLDAsMC4xNzUpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAxcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgei1pbmRleDogMjAwMDA7XG59XG5cbi5yZWFjdC1hdXRvY29tcGxldGUtaW5wdXQgPiBkaXYge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1pbi13aWR0aDogMTAwcHg7XG59XG5cbi5yZWFjdC1hdXRvY29tcGxldGUtaW5wdXQgPiAuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA2RDZBOTtcbiAgY29sb3I6ICMzMzM7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGNvbG9yOiB0aGVtZSgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50SG92ZXInKTtcbiAgfVxufVxuIiwiLkNvbW1lbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGNsZWFyOiBib3RoO1xuICBtYXJnaW4tYm90dG9tOiAxLjJyZW07XG4gIC5NYXJrZG93biB7XG4gICAgcCB7XG4gICAgICBtYXJnaW46IDAuMXJlbSAwIDAuNnJlbSAwO1xuICAgIH1cblxuICAgIHA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjJyZW07XG4gICAgfVxuICB9XG5cbiAgLlJlcGx5RWRpdG9yIC5jb2x1bW4ubGFyZ2UtNiB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgfVxuXG4gIC5SZXBseUVkaXRvciAuc2lkZS1ieS1zaWRlIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuXG4uQ29tbWVudF9fVXNlcnBpYyB7XG4gIGZsb2F0OiBsZWZ0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMC40cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjZyZW07XG4gIEBpbmNsdWRlIE1RKE0pIHtcbiAgICB0b3A6IDAuMnJlbTtcbiAgfVxuXG4gIC5Vc2VycGljIHtcbiAgICBtYXJnaW4tbGVmdDogN3B4O1xuICB9XG59XG5cbi5Db21tZW50X19Vc2VycGljLXNtYWxsIHtcbiAgQGluY2x1ZGUgaGlkZS1mb3IobWVkaXVtKTtcbiAgLlVzZXJwaWMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDNweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMnJlbTtcbiAgICB3aWR0aDogMTZweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5Db21tZW50IC5oaWdobGlnaHRlZCB7XG4gIHBhZGRpbmc6IDE0cHg7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXJBY2NlbnQnKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2hpZ2hsaWdodEJhY2tncm91bmRDb2xvcicpO1xuICB9XG59XG5cbi5Db21tZW50LmNvbGxhcHNlZCAuQ29tbWVudF9fYmxvY2ssXG4uQ29tbWVudCAuQ29tbWVudF9fYmxvY2suZG93bnZvdGVkOm5vdCgucmV2ZWFsZWQpIHtcbiAgPiAuQ29tbWVudF9fVXNlcnBpYyB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDI2cHg7XG4gICAgLlVzZXJwaWMge1xuICAgICAgd2lkdGg6IDI0cHggIWltcG9ydGFudDtcbiAgICAgIGhlaWdodDogMjRweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICAuQ29tbWVudF9faGVhZGVyIHtcbiAgICAuVm90aW5nIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgIH1cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLkNvbW1lbnRfX2JvZHkge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG4gIH1cbiAgLkNvbW1lbnRfX2Zvb3RlciB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4uQ29tbWVudF9faGVhZGVyIHtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgbWFyZ2luLWxlZnQ6IDYycHg7XG4gICAgYm9yZGVyLXJhZGl1czogdGhlbWVkKCdyb3VuZGVkQ29ybmVyc1RvcCcpO1xuICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXInKTtcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZWQoJ21vZHVsZUJhY2tncm91bmRDb2xvcicpO1xuICAgIHBhZGRpbmc6IDNweCA1cHg7XG4gIH1cbiAgc3ZnIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgfVxuICB9XG59XG5cbi5Db21tZW50X19oZWFkZXItdXNlciB7XG4gIGNvbG9yOiAkYmxhY2s7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgYSB7XG4gICAgQGV4dGVuZCAubGluaztcbiAgICBAZXh0ZW5kIC5saW5rLS1wcmltYXJ5O1xuICB9XG59XG5cbi5Db21tZW50X19oZWFkZXJfY29sbGFwc2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gID4gYSB7XG4gICAgY29sb3I6ICRtZWRpdW0tZ3JheTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4xcmVtO1xuICAgIHBhZGRpbmc6IDAgMC41cmVtO1xuICB9XG4gIC5JY29uIHtcbiAgICB0b3A6IDVweDtcbiAgfVxufVxuXG4uQ29tbWVudCAuQ29tbWVudF9fYmxvY2sgLkNvbW1lbnRfX2JvZHkge1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBtYXJnaW4tbGVmdDogNjJweDtcbiAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIGZvbnQtc2l6ZTogOTAlO1xuICAgIGJhY2tncm91bmQ6IHRoZW1lZCgnbW9kdWxlQmFja2dyb3VuZENvbG9yJyk7XG4gIH1cbn1cblxuLkNvbW1lbnQgLkNvbW1lbnRfX2Jsb2NrIC5Db21tZW50X19ib2R5OmhvdmVyIHtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdjb21tZW50Qm9keUhpZ2hsaWdodEJhY2tncm91bmRDb2xvcicpO1xuICB9XG59XG5cbi5Db21tZW50IC5Db21tZW50X19ibG9jayAuQ29tbWVudF9fZm9vdGVyIHtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgbWFyZ2luLWxlZnQ6IDYycHg7XG4gICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgIGJvcmRlci1yYWRpdXM6IHRoZW1lZCgncm91bmRlZENvcm5lcnNCb3R0b20nKTtcbiAgICBwYWRkaW5nOiAzcHggMTBweCA1cHggMTBweDtcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZWQoJ21vZHVsZUJhY2tncm91bmRDb2xvcicpO1xuICB9XG5cbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICB9XG4gIGEge1xuICAgQGV4dGVuZCAubGluaztcbiAgIEBleHRlbmQgLmxpbmstLXByaW1hcnk7XG4gIH1cbiAgLlZvdGluZ19fdm90ZXJzX2xpc3Qge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYm9yZGVyLXJpZ2h0OiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgIH1cbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjRyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjRyZW07XG4gICAgdHJhbnNpdGlvbjogMC4zcyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgLmRyb3Bkb3duLWFycm93IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogM3B4O1xuICAgICAgbGVmdDogLTJweDtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICAuSWNvbi5kcm9wZG93bi1hcnJvdyBwb2x5Z29uIHtcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50Jyk7XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5Db21tZW50X19mb290ZXJfX2NvbnRyb2xzIHtcbiAgICBhIHttYXJnaW46IDAgMC4ycmVtO31cbiAgfVxufVxuXG4uQ29tbWVudF9fcmVwbGllcyB7XG4gIG1hcmdpbi10b3A6IDEuNHJlbTtcbiAgbWFyZ2luLWxlZnQ6IDYycHg7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJvcmRlci1sZWZ0OiB0aGVtZWQoJ2JvcmRlckRvdHRlZCcpO1xuICB9XG4gIC5Db21tZW50IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjRyZW07XG4gIH1cbn1cblxuLkNvbW1lbnRfX25lZ2F0aXZlX2dyb3VwIHtcbiAgICBjb2xvcjogJG1lZGl1bS1ncmF5O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICBjbGVhcjogbm9uZTtcbiAgICBidXR0b24ge1xuICAgICAgb3BhY2l0eTogMC4zNTtcbiAgICAgICY6aG92ZXIge29wYWNpdHk6IDAuNTt9XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLnJvb3Qge1xuICAgIC5Db21tZW50X19ibG9jayAuQ29tbWVudF9faGVhZGVyLFxuICAgIC5Db21tZW50X19ibG9jayAuQ29tbWVudF9fZm9vdGVyLFxuICAgIC5Db21tZW50X19ibG9jayAuQ29tbWVudF9fYm9keSxcbiAgICAuQ29tbWVudF9fcmVwbGllcyB7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5yZXBseSB7XG4gICAgLkNvbW1lbnRfX2Jsb2NrIC5Db21tZW50X19oZWFkZXIsXG4gICAgLkNvbW1lbnRfX2Jsb2NrIC5Db21tZW50X19mb290ZXIsXG4gICAgLkNvbW1lbnRfX2Jsb2NrIC5Db21tZW50X19ib2R5LFxuICAgIC5Db21tZW50X19yZXBsaWVzIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuQ29tbWVudCAuQ29tbWVudF9fYmxvY2sgLmhpZ2hsaWdodGVkIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi5NYXJrZG93blZpZXdlcl9fbmVnYXRpdmVfZ3JvdXAge1xuICAgIGNvbG9yOiBjcmltc29uO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4gICAgcGFkZGluZy10b3A6IDFyZW07XG59XG5cbi5NYXJrZG93blZpZXdlciB7XG4gIG1heC13aWR0aDogNDhyZW07XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbiIsIi52b3RlX3dlaWdodHMge1xuICAgIG9wYWNpdHk6IDAuNzU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgY29sb3I6IGdyZWVuO1xuICAgIHNwYW4ge2NvbG9yOiByZWQ7fVxufVxuXG51bC5Qb3N0c0xpc3RfX3N1bW1hcmllcyB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG51bC5Qb3N0c0xpc3RfX3N1bW1hcmllcyA+IGxpIHtcbiAgcGFkZGluZzogMC4xZW0gMC41ZW0gMCAwLjVlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC44ZW07XG5cbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYm9yZGVyLXJhZGl1czogdGhlbWVkKCdyb3VuZGVkQ29ybmVycycpO1xuICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXInKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ21vZHVsZUJhY2tncm91bmRDb2xvcicpO1xuICB9XG5cbiAgLyogJjpob3ZlciB7XG4gICAgQGluY2x1ZGUgTVEoTCkge1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDJweCAycHggM3B4IDAgdGhlbWVkKCdjb250ZW50Qm9yZGVyQWNjZW50Jyk7XG4gICAgICB9XG4gICAgfVxuICB9Ki9cbn1cblxuLlBvc3RTdW1tYXJ5IHtcbiAgLy8gcGFkZGluZzogMCAwIDAuNXJlbTtcbiAgbWFyZ2luOiAwIDAgMS4yNXZ3O1xuICBjbGVhcjogbGVmdDtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgLlBvc3RTdW1tYXJ5X19uc2Z3LXdhcm5pbmcge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItbGlnaHQ7XG4gICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgLlBvc3RTdW1tYXJ5X19mb290ZXIge1xuICAgICAgbWFyZ2luLXRvcDogMC4ycmVtO1xuICAgICAgLlJlYmxvZ19fYnV0dG9uIHtkaXNwbGF5OiBub25lO31cbiAgICAgIC5Wb3RpbmdfX2J1dHRvbiB7ZGlzcGxheTogbm9uZTt9XG4gICAgfVxuICAgIC5Qb3N0U3VtbWFyeV9fdGltZV9hdXRob3JfY2F0ZWdvcnlfc21hbGwge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC4ycmVtO1xuICAgIH1cbiAgfVxuXG4gIC5uc2Z3LWZsYWcge1xuICAgIGNvbG9yOiAkY29sb3ItcmVkO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1yZWQ7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1mYW1pbHk6IEFyaWFsO1xuICAgIG1hcmdpbjogMCAwLjFyZW07XG4gICAgcGFkZGluZzogMnB4IDVweDtcbiAgfVxufVxuXG4uUG9zdFN1bW1hcnlfX2ltYWdlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEzMHB4O1xuICBoZWlnaHQ6IDQuNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFRTtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMjAlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRUVFO1xufVxuXG4uUG9zdFN1bW1hcnlfX2ltYWdlLW1vYmlsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kOiAjRjhGOEY4O1xuXG4gIGltZyB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDgwdnc7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG4uUG9zdFN1bW1hcnkud2l0aC1pbWFnZSAuUG9zdFN1bW1hcnlfX3JlYmxvZ2dlZF9ieSxcbi5Qb3N0U3VtbWFyeS53aXRoLWltYWdlIC5Qb3N0U3VtbWFyeV9fY29udGVudCB7XG4gIG1hcmdpbi1sZWZ0OiA4LjI1cmVtO1xufVxuXG4uUG9zdFN1bW1hcnlfX2hlYWRlciB7XG4gID4gaDMge1xuICAgIGZvbnQ6IDYwMCAxMDAlIFwiTHVjaWRhIEdyYW5kZVwiLCBcIkx1Y2lkYSBTYW5zIFVuaWNvZGVcIiwgXCJMdWNpZGEgU2Fuc1wiLCBHZW5ldmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgID4gYSB7XG4gICAgICBjb2xvcjogIzMzMztcbiAgICB9XG4gICAgPiBhOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICM3Nzc7XG4gICAgfVxuICAgIC5JY29uIHtcbiAgICAgIG1hcmdpbjogMCAwLjI1cmVtO1xuICAgICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDAuODVyZW07XG4gICAgICAgIGhlaWdodDogMC44NXJlbTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IDUlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAubnNmdy1mbGFnIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gIH1cbn1cblxuLlBvc3RTdW1tYXJ5X19ib2R5IHtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmc6IDAgMCAwLjE1cmVtO1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgZm9udC1mYW1pbHk6IFwiU291cmNlIFNhbnMgUHJvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICB9XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4gIGEge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICB9XG4gIH1cbn1cblxuLmxheW91dC1saXN0IC5Qb3N0U3VtbWFyeV9fYm9keSB7XG4gIEBpbmNsdWRlIE1RKE0pIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG59XG5cbi5Qb3N0U3VtbWFyeV9fZm9vdGVyIHtcbiAgY29sb3I6ICRkYXJrLWdyYXk7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBhdGgge1xuICAgIGZpbGw6ICRkYXJrLWdyYXk7XG4gIH1cbiAgYSB7XG4gICAgY29sb3I6ICRkYXJrLWdyYXk7XG4gIH1cbiAgLkljb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xcHg7XG4gIH1cbn1cblxuLlBvc3RTdW1tYXJ5X190aW1lX2F1dGhvcl9jYXRlZ29yeSB7XG4gIGNvbG9yOiAkZGFyay1ncmF5O1xuICBhIHtcbiAgICBjb2xvcjogJGRhcmstZ3JheTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBAaW5jbHVkZSBob3ZlclVuZGVybGluZTtcbiAgfVxuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJvcmRlci1sZWZ0OiB0aGVtZWQoJ2JvcmRlckxpZ2h0Jyk7XG4gIH1cblxuICAuUmVibG9nX19idXR0b24ge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgIGJvcmRlci1yaWdodDogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLlBvc3RTdW1tYXJ5X190aW1lX2F1dGhvcl9jYXRlZ29yeV9zbWFsbCBhIHtcbiAgY29sb3I6ICRkYXJrLWdyYXk7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM5LjkzNzVlbSkge1xuICAuUG9zdFN1bW1hcnkud2l0aC1pbWFnZSAuUG9zdFN1bW1hcnlfX3JlYmxvZ2dlZF9ieSAuSWNvbi5yZWJsb2cge1xuICAgIG1hcmdpbi1sZWZ0OiAtMjJweDtcbiAgfVxufVxuXG4uUG9zdFN1bW1hcnlfX3JlYmxvZ2dlZF9ieSB7XG4gIC5JY29uIHBhdGgge1xuICAgIGZpbGw6ICNjYWNhY2E7XG4gIH1cbiAgY29sb3I6ICRkYXJrLWdyYXk7XG4gIGZvbnQtc2l6ZTogOTAlO1xuICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBAaW5jbHVkZSBob3ZlclVuZGVybGluZTtcbiAgfVxufVxuXG4vKiBTbWFsbCBvbmx5ICovXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLlBvc3RTdW1tYXJ5IHtcbiAgICAvLyBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICAvLyBib3JkZXItdG9wOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XG4gIH1cbiAgLlBvc3RTdW1tYXJ5X19pbWFnZSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgIC8vIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQwdnc7XG4gIH1cbiAgLlBvc3RTdW1tYXJ5X19ib2R5IHtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIGh5cGhlbnM6IGF1dG87XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB0ZXh0LW92ZXJmbG93OiBpbml0aWFsO1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjNyZW07XG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbiAgLlBvc3RTdW1tYXJ5LndpdGgtaW1hZ2UgLlBvc3RTdW1tYXJ5X19yZWJsb2dnZWRfYnksXG4gIC5Qb3N0U3VtbWFyeS53aXRoLWltYWdlIC5Qb3N0U3VtbWFyeV9fY29udGVudCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgLlBvc3RTdW1tYXJ5X19mb290ZXIgLlZvdGluZywgLlBvc3RTdW1tYXJ5X19mb290ZXIgLlZvdGluZ19faW5uZXIge1xuICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgfVxuICAuUG9zdFN1bW1hcnlfX3RpbWVfYXV0aG9yX2NhdGVnb3J5IHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItbGlnaHQ7XG4gICAgLlJlYmxvZ19fYnV0dG9uIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi5hcnRpY2xlc19fc3VtbWFyeSB7XG4gIC5uc2Z3LWZsYWcge1xuICAgIGNvbG9yOiAkY29sb3ItcmVkO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1yZWQ7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1mYW1pbHk6IEFyaWFsO1xuICAgIG1hcmdpbjogMCAwLjFyZW07XG4gICAgcGFkZGluZzogMnB4IDVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgfVxuXG4gIC5hcnRpY2xlc19fcmVzdGVlbSxcbiAgLmFydGljbGVzX19jcm9zc3Bvc3Qge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICAuYXJ0aWNsZXNfX2Nyb3NzcG9zdCB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggNXB4IDEwcHg7XG4gICAgbWFyZ2luOiA1cHggMDtcbiAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2JhY2tncm91bmRDb2xvcicpO1xuICAgIH1cbiAgfVxuXG4gIC5hcnRpY2xlc19fY3Jvc3Nwb3N0LWljb24ge1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICB9XG5cbiAgLmFydGljbGVzX19jcm9zc3Bvc3QtdGV4dCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgLmFydGljbGVzX19mZWF0dXJlLWltZyBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtaGVpZ2h0OiA1Ni4yNXZ3O1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gIH1cblxuICAuYXJ0aWNsZXNfX2NvbnRlbnQtYmxvY2stLXRleHQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi5Qb3N0IHtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCd0cmFuc3BhcmVudCcpO1xuICB9XG4gIC5yb3cuY29tbWVudC1lZGl0b3Ige1xuICAgICAgbWF4LXdpZHRoOiA1NS45cmVtO1xuICAgICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG59XG5cbi5Qb3N0RnVsbCB7XG4gIHBhZGRpbmc6IDJyZW0gMXJlbSAxcmVtIDFyZW07XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6IDU0cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJvcmRlci1yYWRpdXM6IHRoZW1lZCgncm91bmRlZENvcm5lcnMnKTtcbiAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdtb2R1bGVCYWNrZ3JvdW5kQ29sb3InKTtcbiAgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICB9XG4gIC5idXR0b24uaG9sbG93IHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXJBY2NlbnQnKTtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpO1xuICAgIH1cbiAgfVxuXG4gIC5SZXBseUVkaXRvciB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgfVxuXG4gIC5hcnRpY2xlc19fY3Jvc3Nwb3N0IHtcbiAgICBwYWRkaW5nOiAyMHB4IDIwcHggMCAyMHB4O1xuXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2JhY2tncm91bmRDb2xvcicpO1xuICAgIH1cbiAgfVxuXG4gIC5hcnRpY2xlc19fY3Jvc3Nwb3N0LWljb24ge1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICB9XG5cbiAgLlJlcGx5RWRpdG9yIC5jb2x1bW4ubGFyZ2UtNiB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgfVxuXG4gIC5SZXBseUVkaXRvciAuc2lkZS1ieS1zaWRlIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIC5Qb3N0RnVsbF9fYXV0aG9yZWRfYnkge1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICB9XG59XG5cbi5Qb3N0RnVsbF9fdGltZV9hdXRob3JfY2F0ZWdvcnkge1xuICBmb250LXdlaWdodDogNDAwO1xuICBib3JkZXItcmlnaHQ6IG5vbmUhaW1wb3J0YW50O1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBib3JkZXItcmlnaHQ6IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gIH1cblxuICBwYWRkaW5nLXJpZ2h0OiAuNnJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAuNnJlbTtcbiAgPiBzcGFuIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG59XG5cbi5Qb3N0RnVsbF9fdGltZV9hdXRob3JfY2F0ZWdvcnlfbGFyZ2Uge1xuICBtYXJnaW46IDFyZW0gMCAxcmVtIDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICB9XG4gIHN0cm9uZywgYSB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICB9XG4gIH1cbiAgZm9udC1zaXplOiAxMjAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICA+IC5Vc2VycGljIHtcbiAgICBtYXJnaW4tdG9wOiAtNHB4O1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gID4gLnJpZ2h0LXNpZGUge1xuICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0ycHg7XG4gIH1cbn1cblxuLlBvc3RGdWxsX19oZWFkZXIsIC5Qb3N0RnVsbF9fYm9keSB7XG4gIG1heC13aWR0aDogNDhyZW07XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4uUG9zdEZ1bGxfX2hlYWRlciB7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJvcmRlci1ib3R0b206IHRoZW1lZCgnYm9yZGVyJyk7XG4gIH1cbiAgaDEge1xuICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBmb250LXdlaWdodDogODAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIH1cbiAgICAuSWNvbiB7XG4gICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiAtMzAlO1xuICAgIH1cbiAgfVxuICBhIHtcbiAgICBAZXh0ZW5kIC5saW5rO1xuICAgIEBleHRlbmQgLmxpbmstLXNlY29uZGFyeTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuXG4gIH1cbiAgLlBvc3RGdWxsX190aW1lX2F1dGhvcl9jYXRlZ29yeSB7XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgIC5JY29uLmNsb2NrIHtcbiAgICAgIHRvcDogNXB4O1xuICAgICAgc3ZnIHtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uUG9zdEZ1bGxfX2JvZHkge1xuICBwYWRkaW5nOiAxcmVtIDAgMXJlbSAwO1xuICBjbGVhcjogbGVmdDtcbiAgYSB7XG4gICAgQGV4dGVuZCAubGluaztcbiAgICBAZXh0ZW5kIC5saW5rLS1hY2NlbnQ7XG4gIH1cbiAgLmlzTXV0ZWQgJiBhIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG59XG5cbi5Qb3N0RnVsbF9fZm9vdGVyIHtcbiAgY2xlYXI6IHJpZ2h0O1xuICBsaW5lLWhlaWdodDogMnJlbTtcbiAgZm9udC1zaXplOiA5NCU7XG4gIHN2ZyB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBmaWxsOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgIH1cbiAgfVxuICAuUmlnaHRTaGFyZV9fTWVudSB7XG4gICAgQGluY2x1ZGUgTVEoRkwpIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuICBzcGFuIHtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB9XG5cbiAgLlJlYmxvZ19fYnV0dG9uIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuNHJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC40cmVtO1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYm9yZGVyLXJpZ2h0OiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgIH1cbiAgfVxuICAuUG9zdEZ1bGxfX2Nyb3NzcG9zdC1mb290ZXIge1xuICAgIHBhZGRpbmctdG9wOiAxNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5Qb3N0RnVsbF9fY3Jvc3Nwb3N0LWZvb3RlciAuYnV0dG9uIHtcbiAgICBAZXh0ZW5kIC5lLWJ0bjtcbiAgICBAZXh0ZW5kIC5lLWJ0bi0tYmxhY2s7XG4gICAgbWluLXdpZHRoOiAxMDBweDtcbiAgfVxufVxuXG4uUG9zdEZ1bGxfX3Jlc3BvbnNlcyB7XG4gIHBhZGRpbmctcmlnaHQ6IC40cmVtO1xufVxuXG4uUG9zdEZ1bGxfX3ZpZXdzIHtcbiAgcGFkZGluZy1yaWdodDogLjRyZW07XG4gIG1hcmdpbi1yaWdodDogLjRyZW07XG4gIGZvbnQtc2l6ZTogOTQlO1xuICBmb250LXdlaWdodDogNjAwO1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBib3JkZXItcmlnaHQ6IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgfVxufVxuXG4uUG9zdEZ1bGxfX3JlcGx5IHtcbiAgcGFkZGluZy1yaWdodDogLjRyZW07XG4gIG1hcmdpbi1yaWdodDogLjRyZW07XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJvcmRlci1yaWdodDogdGhlbWVkKCdib3JkZXInKTtcbiAgfVxuICBhIHttYXJnaW46IDAgMC4xNXJlbTt9XG59XG5cbi5Qb3N0RnVsbF9fbGlmZXRpbWUge1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBmaWxsOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICB9XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4uQXV0aG9yX19kcm9wZG93biB7XG4gIHBhZGRpbmc6IDFyZW07XG4gID4gYSB7XG4gICAgQGluY2x1ZGUgaG92ZXJVbmRlcmxpbmU7XG4gIH1cbn1cblxuLmV4cGxvcmUtcG9zdCB7XG4gIG1hcmdpbi1yaWdodDogMHB4IWltcG9ydGFudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAmOmhvdmVyIHtcbiAgICBzdmcge1xuICAgICAgZmlsbDogJGNvbG9yLWhpdmUtcmVkO1xuICAgIH1cbiAgfVxufVxuXG5pbnB1dC5zaGFyZS1ib3gge1xuICB3aWR0aDogNzUlIWltcG9ydGFudDtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG4uRXhwbG9yZVBvc3Qge1xuICBzcGFuLmV4dGxpbmsge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgfVxuICBoNSB7XG4gICAgbWFyZ2luLXRvcDogMWVtO1xuICB9XG4gIC5FeHBsb3JlUG9zdF9fY29weS1idXR0b24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4uY2hhaW4tcm90YXRlZCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTIwZGVnKTtcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgxMjBkZWcpO1xuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMTIwZGVnKTtcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMTIwZGVnKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTIwZGVnKTtcbn1cblxuLyogU21hbGwgb25seSAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5Qb3N0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuUG9zdEZ1bGxfX2Zvb3RlciA+IC5jb2x1bW4ge1xuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XG4gICAgLW1zLWZsZXg6IDAgMCAxMDAlO1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICB9XG4gIGlucHV0LnNoYXJlLWJveCB7XG4gICAgaGVpZ2h0OiAyLjhlbTtcbiAgICBmb250LXNpemU6IC44ZW07XG4gIH1cbn1cblxuLyogTWVkaXVtIG9ubHkgKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgaW5wdXQuc2hhcmUtYm94IHtcbiAgICBoZWlnaHQ6IDIuOGVtO1xuICAgIGZvbnQtc2l6ZTogLjhlbTtcbiAgfVxufVxuIiwiLlBvc3RzTGlzdF9fc3VtbWFyaWVzIHtcbiAgICAuYXJ0aWNsZXNfX3N1bW1hcnkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLkZlYXR1cmVkVGFnLCAuUHJvbW90ZWRUYWcge1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjJyZW07XG4gICAgICAgIG1hcmdpbjogMCAxcmVtIDAgMC41cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjNyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2NvbG9yQWNjZW50Jyk7XG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKCdidXR0b25UZXh0Jyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLlByb21vdGVkVGFnIHtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2ljb25Db2xvclNlY29uZGFyeScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQS5Qb3N0RGlzbWlzcyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDAuMTVyZW07XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjZyZW07XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC4zO1xuICAgICAgICAgICAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5mbGV4LXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uZmxleC1jb2x1bW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLmZsZXgtYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLm5vdGlmaWNhdGlvbl9fZmlsdGVyIHtcbiAgICBwYWRkaW5nOiAwIDVweCAwIDVweDtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYWJhYmFiO1xufVxuXG4ubm90aWZpY2F0aW9uX19maWx0ZXI6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xufVxuXG4ubm90aWZpY2F0aW9uX19maWx0ZXIuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLm5vdGlmaWNhdGlvbl9fZmlsdGVyLnNlbGVjdGVkIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm5vdGlmaWNhdGlvbl9faXRlbS5ldmVuIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCd0YWJsZVJvd0V2ZW5CYWNrZ3JvdW5kQ29sb3InKTtcbiAgICB9XG59XG5cbi5ub3RpZmljYXRpb25fX2l0ZW0ge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ3RhYmxlUm93T2RkQmFja2dyb3VuZENvbG9yJyk7XG4gICAgfVxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMC41ZW0gMXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLm5vdGlmaWNhdGlvbl9fdW5yZWFkIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwLjRlbTtcbiAgICAgICAgdG9wOiAwLjc1ZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLlVzZXJwaWMge1xuICAgICAgICBtYXJnaW46IDAgMWVtO1xuICAgIH1cblxuICAgIC5JY29uIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1ZW07XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjaXJjbGUge1xuICAgICAgICAgICAgICAgIHN0cm9rZTogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ub3RpZmljYXRpb25fX2RhdGUge1xuICAgICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubm90aWZpY2F0aW9uX19tZXNzYWdlIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNWVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbiAgICB9XG5cbiAgICAubm90aWZpY2F0aW9uX19tZXNzYWdlIGEge1xuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ub3RpZmljYXRpb25fX21lc3NhZ2UgYTp2aXNpdGVkIHtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ub3RpZmljYXRpb25fX3Njb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDVweDtcbiAgICAgICAgcmlnaHQ6IDVweDtcbiAgICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICAgIHdpZHRoOiAzNXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXk7XG4gICAgfVxuXG4gICAgLm5vdGlmaWNhdGlvbl9fc2NvcmVfYmFyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci10ZXh0LWhpdmUtcmVkO1xuICAgIH1cbn1cblxuIiwiLkljb24ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gID4gc3ZnLCBzcGFuLmljb24ge1xuICAgIHdpZHRoOiAxLjEycmVtO1xuICAgIGhlaWdodDogMS4xMnJlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgJi5maWxsLWJsYWNrID4gc3ZnID4gcGF0aCB7XG4gICAgZmlsbDpibGFjaztcbiAgfVxufVxuXG4uSWNvbl8wXzh4ID4gc3ZnLCBzcGFuLkljb25fMF84eCB7XG4gIHdpZHRoOiAwLjhyZW07XG4gIGhlaWdodDogMC44cmVtO1xufVxuXG4uSWNvbl8xXzV4ID4gc3ZnLCBzcGFuLkljb25fMV81eCB7XG4gIHdpZHRoOiAxLjVyZW07XG4gIGhlaWdodDogMS41cmVtO1xufVxuXG4uSWNvbl8yeCA+IHN2Zywgc3Bhbi5JY29uXzJ4IHtcbiAgd2lkdGg6IDJyZW07XG4gIGhlaWdodDogMnJlbTtcbn1cblxuLkljb25fM3ggPiBzdmcsIHNwYW4uSWNvbl8zeCB7XG4gIHdpZHRoOiAzcmVtO1xuICBoZWlnaHQ6IDNyZW07XG59XG5cbi5JY29uXzR4ID4gc3ZnLCBzcGFuLkljb25fNHgge1xuICB3aWR0aDogNC42MHJlbTtcbiAgaGVpZ2h0OiA0LjYwcmVtO1xufVxuXG4uSWNvbl81eCA+IHN2Zywgc3Bhbi5JY29uXzV4IHtcbiAgd2lkdGg6IDUuNzVyZW07XG4gIGhlaWdodDogNS43NXJlbTtcbiAgbWFyZ2luOiAyNHB4IDAgMjRweCAwO1xufVxuXG4uSWNvbl8xMHggPiBzdmcsIHNwYW4uSWNvbl8xMHgge1xuICB3aWR0aDogMTByZW07XG4gIGhlaWdodDogMTByZW07XG4gIG1hcmdpbjogMjRweCAwIDI0cHggMDtcbn1cblxuLkljb24uZHJvcGRvd24tYXJyb3cgcG9seWdvbiB7XG4gIGZpbGw6ICRkYXJrLWdyYXk7XG59XG4iLCIvLy5sb2FkaW5nLW92ZXJsYXkge1xuLy8gIGhlaWdodDogMTAwJTtcbi8vICB3aWR0aDogMTAwJTtcbi8vICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgdG9wOiAwOyBsZWZ0OiA5NXB4OyBib3R0b206IDA7IHJpZ2h0OiAwO1xuLy8gIHotaW5kZXg6IDEgIWltcG9ydGFudDtcbi8vICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgbGluZWFyIDAuNXM7XG4vLyAgdHJhbnNpdGlvbjogb3BhY2l0eSBsaW5lYXIgMC41cztcbi8vfVxuXG4vLy5sb2FkaW5nLW92ZXJsYXkubmctaGlkZSB7XG4vLyAgb3BhY2l0eTogMDtcbi8vfVxuXG4ubG9hZGluZy1wYW5lbCB7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyMHJlbTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIG1hcmdpbjogYXV0bztcbiAgaGVpZ2h0OiAxMDBweDtcbiAgbWF4LWhlaWdodDogMTEwcHg7XG4gIHdpZHRoOiAxMHJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTtcbiAgb3BhY2l0eTogMC40O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi8vLnNwbGFzaCAubG9hZGluZy1wYW5lbCB7XG4vLyAgbGVmdDogLTM4MHB4O1xuLy99XG5cbi5wcm9ncmVzcy1pbmRpY2F0b3Ige1xuICBoZWlnaHQ6IDUwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogNDZweCAyMHB4IDIwcHggMjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzAwMDtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnByb2dyZXNzLWluZGljYXRvciA+IHNwYW4ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuXG4ud2l0aC1wcm9ncmVzcyAucHJvZ3Jlc3MtaW5kaWNhdG9yIHtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5zcGlubmVyIHtcbiAgd2lkdGg6IDY0cHg7XG4gIGhlaWdodDogMThweDtcbiAgbWFyZ2luOiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDsgbGVmdDogMDsgYm90dG9tOiAwOyByaWdodDogMDtcbn1cblxuLndpdGgtcHJvZ3Jlc3MgLnNwaW5uZXIge1xuICBtYXJnaW46IDIwcHggYXV0byAwIGF1dG87XG59XG5cbi5zcGlubmVyID4gZGl2IHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAtd2Via2l0LWFuaW1hdGlvbjogYm91bmNlZGVsYXkgMS40cyBpbmZpbml0ZSBlYXNlLWluLW91dDtcbiAgYW5pbWF0aW9uOiBib3VuY2VkZWxheSAxLjRzIGluZmluaXRlIGVhc2UtaW4tb3V0O1xuICAvKiBQcmV2ZW50IGZpcnN0IGZyYW1lIGZyb20gZmxpY2tlcmluZyB3aGVuIGFuaW1hdGlvbiBzdGFydHMgKi9cbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xufVxuXG4uc3Bpbm5lciAuYm91bmNlMSB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuMzJzO1xufVxuXG4uc3Bpbm5lciAuYm91bmNlMiB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuMTZzO1xufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZWRlbGF5IHtcbiAgMCUsIDgwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjApO1xuICB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjApO1xuICB9XG59XG5cbi8vIHRocmVlIGJvdW5jZVxuXG4udGhyZWUtYm91bmNlID4gZGl2IHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc3NztcblxuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGFuaW1hdGlvbjogYm91bmNlZGVsYXkgMS40cyBpbmZpbml0ZSBlYXNlLWluLW91dDtcbiAgLyogUHJldmVudCBmaXJzdCBmcmFtZSBmcm9tIGZsaWNrZXJpbmcgd2hlbiBhbmltYXRpb24gc3RhcnRzICovXG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG5cbi50aHJlZS1ib3VuY2UgLmJvdW5jZTEge1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjMycztcbn1cblxuLnRocmVlLWJvdW5jZSAuYm91bmNlMiB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuMTZzO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlZGVsYXkge1xuICAwJSwgODAlLCAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMCkgfVxuICA0MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wKSB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlZGVsYXkge1xuICAwJSwgODAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMCk7XG4gIH0gNDAlIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wKTtcbiAgICB9XG59XG5cbi5Mb2FkaW5nSW5kaWNhdG9yLmNpcmNsZSB7XG4gICAgJGNpcmNsZS1yYWRpdXM6IDE2cHg7XG4gICAgJi5pbmxpbmUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiA2cHg7XG4gICAgfVxuICAgICYuY2lyY2xlLXN0cm9uZyB7XG4gICAgICAgIHBhZGRpbmctdG9wOjJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206MmVtO1xuICAgICAgICBkaXYge1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOjFweDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGl2IHtcbiAgICAgICAgd2lkdGg6ICRjaXJjbGUtcmFkaXVzO1xuICAgICAgICBoZWlnaHQ6ICRjaXJjbGUtcmFkaXVzO1xuICAgICAgICBtYXJnaW46IDRweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBhbmltYXRpb246IGxvYWRpbmcgNTAwbXMgaW5maW5pdGUgbGluZWFyO1xuICAgIH1cbn1cblxuXG4iLCIuVXNlcnBpYyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogNDhweDtcbn1cbiIsIi5Vc2VycGljX19pbmZvd3JhcHBlciB7XG4gICAgLlVzZXJJbmZvX19yY19pbm5lcmNpcmNsZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogNjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgbWFyZ2luOiAtMjBweCAwIDAgLTIwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJlZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICB9XG59XG5cbi5IZWFkZXJfX3VzZXJwaWMgLlVzZXJwaWNfX2luZm93cmFwcGVyIC5Vc2VycGljIHtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4vKiBodHRwczovL3d3dy5jc3NzY3JpcHQuY29tL2NpcmN1bGFyLXByb2dyZXNzLWJhci1wbGFpbi1odG1sLWNzcy8gKi9cbi5wcm9ncmVzcy1jaXJjbGUge1xuICAgIGZvbnQtc2l6ZTogOHB4O1xuICAgIG1hcmdpbjogLTJweCAwIDAgMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIHNvIHRoYXQgY2hpbGRyZW4gY2FuIGJlIGFic29sdXRlbHkgcG9zaXRpb25lZCAqL1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDVlbTtcbiAgICBoZWlnaHQ6IDVlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJFOUUxO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBsaW5lLWhlaWdodDogNWVtO1xufVxuXG4ucHJvZ3Jlc3MtY2lyY2xlOmFmdGVye1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwLjM1ZW07XG4gICAgbGVmdDogMC4zNWVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgd2lkdGg6IDQuM2VtO1xuICAgIGhlaWdodDogNC4zZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgY29udGVudDogXCIgXCI7XG59XG4vKiBUZXh0IGluc2lkZSB0aGUgY29udHJvbCAqL1xuLnByb2dyZXNzLWNpcmNsZSBzcGFuIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGluZS1oZWlnaHQ6IDVlbTtcbiAgICB3aWR0aDogNWVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB6LWluZGV4OiAyO1xuICAgIGNvbG9yOiBzZWFncmVlbjtcbn1cbi5sZWZ0LWhhbGYtY2xpcHBlciB7XG4gICAgLyogYSByb3VuZCBjaXJjbGUgKi9cbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgd2lkdGg6IDVlbTtcbiAgICBoZWlnaHQ6IDVlbTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qIG5lZWRlZCBmb3IgY2xpcHBpbmcgKi9cbiAgICBjbGlwOiByZWN0KDAsIDVlbSwgNWVtLCAyLjVlbSk7IC8qIGNsaXBzIHRoZSB3aG9sZSBsZWZ0IGhhbGYqL1xufVxuLyogd2hlbiBwPjUwLCBkb24ndCBjbGlwIGxlZnQgaGFsZiovXG4ucHJvZ3Jlc3MtY2lyY2xlLm92ZXI1MCAubGVmdC1oYWxmLWNsaXBwZXIge1xuICAgIGNsaXA6IHJlY3QoYXV0byxhdXRvLGF1dG8sYXV0byk7XG59XG4udmFsdWUtYmFyIHtcbiAgICAvKlRoaXMgaXMgYW4gb3ZlcmxheWVkIHNxdWFyZSwgdGhhdCBpcyBtYWRlIHJvdW5kIHdpdGggdGhlIGJvcmRlciByYWRpdXMsXG4gICAgdGhlbiBpdCBpcyBjdXQgdG8gZGlzcGxheSBvbmx5IHRoZSBsZWZ0IGhhbGYsIHRoZW4gcm90YXRlZCBjbG9ja3dpc2VcbiAgICB0byBlc2NhcGUgdGhlIG91dGVyIGNsaXBwaW5nIHBhdGguKi9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qbmVlZGVkIGZvciBjbGlwcGluZyovXG4gICAgY2xpcDogcmVjdCgwLCAyLjVlbSwgNWVtLCAwKTtcbiAgICB3aWR0aDogNWVtO1xuICAgIGhlaWdodDogNWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDAuNDVlbSBzb2xpZCBzZWFncmVlbjsgLypUaGUgYm9yZGVyIGlzIDAuMzUgYnV0IG1ha2luZyBpdCBsYXJnZXIgcmVtb3ZlcyB2aXN1YWwgYXJ0aWZhY3RzICovXG4gICAgLypiYWNrZ3JvdW5kLWNvbG9yOiAjNEQ2NDJEOyovIC8qIGZvciBkZWJ1ZyAqL1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbn1cbi8qIFByb2dyZXNzIGJhciBmaWxsaW5nIHRoZSB3aG9sZSByaWdodCBoYWxmIGZvciB2YWx1ZXMgYWJvdmUgNTAlICovXG4ucHJvZ3Jlc3MtY2lyY2xlLm92ZXI1MCAuZmlyc3Q1MC1iYXIge1xuICAgIC8qUHJvZ3Jlc3MgYmFyIGZvciB0aGUgZmlyc3QgNTAlLCBmaWxsaW5nIHRoZSB3aG9sZSByaWdodCBoYWxmKi9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qbmVlZGVkIGZvciBjbGlwcGluZyovXG4gICAgY2xpcDogcmVjdCgwLCA1ZW0sIDVlbSwgMi41ZW0pO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHNlYWdyZWVuO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB3aWR0aDogNWVtO1xuICAgIGhlaWdodDogNWVtO1xufVxuLnByb2dyZXNzLWNpcmNsZTpub3QoLm92ZXI1MCkgLmZpcnN0NTAtYmFyeyBkaXNwbGF5OiBub25lOyB9XG5cblxuLyogUHJvZ3Jlc3MgYmFyIHJvdGF0aW9uIHBvc2l0aW9uICovXG4ucHJvZ3Jlc3MtY2lyY2xlLnAwIC52YWx1ZS1iYXIgeyBkaXNwbGF5OiBub25lOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnAxIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSg0ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMiAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoN2RlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDMgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDExZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNCAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMTRkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA1IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxOGRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDYgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDIyZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNyAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMjVkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA4IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyOWRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDkgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDMyZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTAgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDM2ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTEgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDQwZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTIgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDQzZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTMgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDQ3ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTQgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDUwZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTUgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDU0ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTYgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDU4ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTcgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDYxZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTggLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDY1ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTkgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDY4ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMjAgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDcyZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMjEgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDc2ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMjIgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDc5ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMjMgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDgzZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMjQgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDg2ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMjUgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMjYgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDk0ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMjcgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDk3ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMjggLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDEwMWRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDI5IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxMDRkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnAzMCAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMTA4ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMzEgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDExMmRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDMyIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxMTVkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnAzMyAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMTE5ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMzQgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDEyMmRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDM1IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxMjZkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnAzNiAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMzcgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDEzM2RlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDM4IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxMzdkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnAzOSAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMTQwZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNDAgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDE0NGRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDQxIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxNDhkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA0MiAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMTUxZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNDMgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDE1NWRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDQ0IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxNThkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA0NSAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMTYyZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNDYgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDE2NmRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDQ3IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxNjlkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA0OCAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMTczZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNDkgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDE3NmRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDUwIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA1MSAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMTg0ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNTIgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDE4N2RlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDUzIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxOTFkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA1NCAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMTk0ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNTUgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDE5OGRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDU2IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyMDJkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA1NyAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMjA1ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNTggLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDIwOWRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDU5IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyMTJkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA2MCAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMjE2ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNjEgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDIyMGRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDYyIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyMjNkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA2MyAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMjI3ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNjQgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDIzMGRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDY1IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyMzRkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA2NiAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMjM4ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNjcgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDI0MWRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDY4IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyNDVkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA2OSAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMjQ4ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNzAgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDI1MmRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDcxIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyNTZkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA3MiAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMjU5ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNzMgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDI2M2RlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDc0IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyNjZkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA3NSAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNzYgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDI3NGRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDc3IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyNzdkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA3OCAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMjgxZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNzkgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDI4NGRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDgwIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyODhkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA4MSAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMjkyZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wODIgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDI5NWRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDgzIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyOTlkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA4NCAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMzAyZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wODUgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDMwNmRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDg2IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzMTBkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA4NyAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMzEzZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wODggLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDMxN2RlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDg5IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzMjBkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA5MCAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMzI0ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wOTEgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDMyOGRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDkyIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzMzFkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA5MyAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMzM1ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wOTQgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDMzOGRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDk1IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNDJkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA5NiAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMzQ2ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wOTcgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDM0OWRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDk4IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNTNkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA5OSAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMzU2ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTAwIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG4iLCIuVm90aW5nIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xuICBzcGFuIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmRyb3Bkb3duLXBhbmUge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlckRhcmsnKTtcbiAgICB9XG4gIH1cbn1cblxuLlZvdGluZ19fYnV0dG9uIHtcbiAgLkljb24ge1xuICAgIC8vIFB1dCB0aGUgaWNvbiBpbiBhIGxheWVyIHRvIGltcHJvdmUgcmVuZGVyaW5nIHBlcmZvcm1hbmNlIChzY3JvbGxpbmcgZXNwZWNpYWxseSlcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcbiAgfVxuICBwYXRoIHtcbiAgICBmaWxsOiAkZGFyay1ncmF5O1xuICB9XG4gIGNpcmNsZSB7XG4gICAgc3Ryb2tlOiAkZGFyay1ncmF5O1xuICB9XG4gID4gYTpob3ZlciBwYXRoIHtcbiAgICBmaWxsOiAkYmxhY2s7XG4gIH1cbn1cblxuLlZvdGluZ19fYWJvdXQtZmxhZyB7XG4gIG1hcmdpbi1yaWdodDogMzBweDtcbiAgLmJ1dHRvbiB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE4cHgpO1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdidXR0b25CYWNrZ3JvdW5kJyk7XG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwIHJnYmEoMCwwLDAsMCksIDVweCA1cHggMCAwIHRoZW1lZCgnYnV0dG9uQm94U2hhZG93Jyk7XG4gICAgICBjb2xvcjogdGhlbWVkKCdidXR0b25UZXh0Jyk7XG4gICAgfVxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYnV0dG9uQmFja2dyb3VuZEhvdmVyJyk7XG4gICAgICAgIGJveC1zaGFkb3c6IDJweCAycHggMnB4IDAgcmdiYSgwLDAsMCwwLjEpLCA3cHggN3B4IDAgMCB0aGVtZWQoJ2J1dHRvbkJveFNoYWRvd0hvdmVyJyk7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ2J1dHRvblRleHRIb3ZlcicpO1xuICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggMCByZ2JhKDAsMCwwLDAuMjApO1xuICAgICAgfVxuICAgIH1cbiAgICAmOnZpc2l0ZWQsICY6YWN0aXZlIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBjb2xvcjogdGhlbWVkKCdidXR0b25UZXh0Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5Wb3RpbmdfX2J1dHRvbi11cCB7XG4gIC5JY29uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIH1cbiAgZGl2ID4gYSB7XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICB9XG4gID4gYSB7XG4gICAgcGFkZGluZy1yaWdodDogMC40cmVtO1xuICB9XG4gIHBhdGgge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTtcbiAgICB9XG4gIH1cbiAgY2lyY2xlIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBzdHJva2U6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50Jyk7XG4gICAgICB9XG4gIH1cbiAgLy8gZXhjbHVkZSBzbWFsbCBkZXZpY2VzXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgLkljb246aG92ZXIge1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIHJnYmEoNzUsIDE2MiwgMjQyLCAxKTtcbiAgICAgICAgICBhbmltYXRpb246IHB1bHNlIDJzIGluZmluaXRlO1xuICAgICAgfVxuICB9XG4gIC5jbG9zZS1idXR0b24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICB9XG4gID4gLmRyb3Bkb3duLWNvbXAgPiAuZHJvcGRvd25fX2NvbnRlbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0zMHB4O1xuICAgIGxlZnQ6IC0yNnB4O1xuICB9XG59XG5cbi5Wb3RpbmdfX2J1dHRvbi11cCA+IGE6aG92ZXIsIGEuY29uZmlybV93ZWlnaHQ6aG92ZXIge1xuICAgIHBhdGgge1xuICAgICAgICBmaWxsOiAjZmZmO1xuICAgIH1cbiAgICBjaXJjbGUge1xuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICBmaWxsOiB0aGVtZWQoJ2NvbG9yQWNjZW50Jyk7XG4gICAgICAgICAgc3Ryb2tlOiB0aGVtZWQoJ2NvbG9yQWNjZW50Jyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3ZnIHtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgfVxufVxuXG4uVm90aW5nX19idXR0b24tdXAudm90aW5nVXAge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gIHN2ZyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWhpdmUtcmVkO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGFuaW1hdGlvbjogbG9hZGluZyA1MDBtcyBpbmZpbml0ZSBsaW5lYXI7XG4gIH1cbn1cblxuLlZvdGluZ19fYnV0dG9uLWRvd24udm90aW5nRG93biBzdmcge1xuICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItcmVkO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICBhbmltYXRpb246IGxvYWRpbmcgNTAwbXMgaW5maW5pdGUgbGluZWFyO1xufVxuXG4uVm90aW5nX19idXR0b24tZG93biB7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAuVm90aW5nX19idXR0b24tZG93bnZvdGVzIHtcbiAgICBjb2xvcjogI2FhYTtcbiAgICBmb250LXNpemU6IDgwJTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogMTUlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuMXJlbTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cblxuICBhIHBhdGgge1xuICAgIGZpbGw6ICMwMDA7XG4gIH1cbiAgYSBjaXJjbGUge1xuICAgIHN0cm9rZTogIzAwMDtcbiAgfVxuICBhOmhvdmVyIGNpcmNsZSB7XG4gICAgZmlsbDogIzU1NTtcbiAgfVxuICBhOmhvdmVyIHBhdGgge1xuICAgIGZpbGw6ICNmZmY7XG4gIH1cblxuICAmLlZvdGluZ19fYnV0dG9uLS1kb3dudm90ZWQge1xuICAgIGEgcGF0aCB7XG4gICAgICBmaWxsOiAjZmZmO1xuICAgIH1cbiAgICBhIGNpcmNsZSB7XG4gICAgICBmaWxsOiAjZjk5O1xuICAgIH1cbiAgICBhOmhvdmVyIGNpcmNsZSB7XG4gICAgICBmaWxsOiAjZjY2O1xuICAgIH1cbiAgfVxufVxuXG4uVm90aW5nX19idXR0b24tLXVwdm90ZWQge1xuICAuSWNvbjpob3ZlciB7XG4gICAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgcGF0aCB7XG4gICAgZmlsbDogI2ZmZiAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5Wb3RpbmdfX2J1dHRvbi0tdXB2b3RlZCBjaXJjbGUge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgZmlsbDogdGhlbWVkKCdjb2xvckFjY2VudCcpO1xuICAgICAgc3Ryb2tlOiB0aGVtZWQoJ2NvbG9yQWNjZW50Jyk7XG4gICAgfVxufVxuXG4uVm90aW5nX19idXR0b24tLXVwdm90ZWQgYTpob3ZlciBwYXRoIHtcbiAgZmlsbDogI2ZmZiAhaW1wb3J0YW50O1xufVxuXG4uVm90aW5nX19idXR0b24tLXVwdm90ZWQgYTpob3ZlciBjaXJjbGUge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgZmlsbDogdGhlbWVkKCdjb2xvckFjY2VudEhvdmVyJyk7XG4gICAgICBzdHJva2U6IHRoZW1lZCgnY29sb3JBY2NlbnRIb3ZlcicpO1xuICAgIH1cbn1cblxuLlZvdGluZ19fYnV0dG9uLS1kb3dudm90ZWQgcGF0aCB7XG4gIGZpbGw6ICRjb2xvci1yZWQ7XG59XG5cblxuLlBvc3RGdWxsIC5Wb3RpbmcgLkRyb3Bkb3duTWVudS5Wb3RpbmdfX3ZvdGVyc19saXN0IHtcbiAgICAvKiByZXNlcnZlIGVub3VnaCBzcGFjZSBmb3IgZHJvcGRvd24gKG90aGVyd2lzZSBvdmVyZmxvdykgKi9cbiAgICBtaW4td2lkdGg6IDE0MHB4O1xufVxuXG4uVm90aW5nIC5Ecm9wZG93bk1lbnUuVm90aW5nX19wYW5lIHVsIHtcbiAgd2lkdGg6IGF1dG87XG4gIG1pbi13aWR0aDogMjYwcHg7XG59XG5cbi5Wb3RpbmcgLkRyb3Bkb3duTWVudSB1bCB7XG4gIHdpZHRoOiBhdXRvO1xuICBtaW4td2lkdGg6IDE0MHB4O1xuICBtYXgtd2lkdGg6IDM2MHB4O1xuXG4gIGxpID4gYSB7XG4gICAgcGFkZGluZzogMCAwLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gIH1cblxuICBsaSA+IHNwYW4ge1xuICAgIHBhZGRpbmc6IDAgMC41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICB9XG59XG5cbi5Ecm9wZG93bk1lbnUuVm90aW5nX192b3RlcnNfbGlzdCB1bCB7XG4gIG1pbi13aWR0aDogMTQwcHg7XG5cbiAgbGkgPiBzcGFuIHtcbiAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICBmb250LXNpemU6IDgyLjUlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgfVxuICB9XG59XG5cbi5Wb3RpbmdfX2lubmVyIHtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYm9yZGVyLXJpZ2h0OiB0aGVtZWQoJ2JvcmRlckxpZ2h0Jyk7XG4gIH1cbiAgcGFkZGluZy1yaWdodDogLjhyZW07XG4gIG1hcmdpbi1yaWdodDogLjZyZW07XG4gIC5Ecm9wZG93bk1lbnUgLkljb24uZHJvcGRvd24tYXJyb3cge1xuICAgIG1hcmdpbi1yaWdodDogLTAuNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAycHg7XG4gIH1cbiAgLmNhbmNlbCB7XG4gICAgZm9udC1zaXplOiA4MCU7XG4gICAgcGFkZGluZzogMCAwLjRlbTtcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkYWRhZGE7XG4gICAgY29sb3I6ICM4YThhOGE7XG4gIH1cbn1cblxuLlZvdGluZ19fYWRqdXN0X3dlaWdodF9kb3duIHtcbiAgICBAZXh0ZW5kIC5Wb3RpbmdfX2FkanVzdF93ZWlnaHQ7XG5cbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYmFja2dyb3VuZENvbG9yJyk7XG4gICAgfVxuXG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDUwMHB4O1xuXG4gICAgZGl2LmNsZWFyIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgICBwLCBzcGFuIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLndlaWdodC1kaXNwbGF5IHtcbiAgICAgIGNvbG9yOiAkY29sb3ItcmVkICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5yYW5nZXNsaWRlciB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDJyZW07XG4gICAgfVxufVxuXG4uVm90aW5nX19hZGp1c3Rfd2VpZ2h0IHtcbiAgcGFkZGluZzogMjBweCAyMHB4IDIwcHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgd2lkdGg6IDM1MHB4O1xuICBtaW4td2lkdGg6IDMyMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAuSWNvbjpob3ZlciB7XG4gICAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLndlaWdodC1kaXNwbGF5IHtcbiAgICB3aWR0aDogM3JlbTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBjb2xvcjogJGRhcmstZ3JheTtcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICB9XG4gIGEuY29uZmlybV93ZWlnaHQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAycmVtO1xuICAgIGhlaWdodDogMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICB9XG4gIC5yYW5nZXNsaWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG4gICAgLnJhbmdlc2xpZGVyX19maWxsLCAucmFuZ2VzbGlkZXJfX2hhbmRsZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuICAgICYsIC5yYW5nZXNsaWRlcl9fZmlsbCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDBweCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgfVxuICAgIC5yYW5nZXNsaWRlcl9faGFuZGxlIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsLTUwJSwwKTtcbiAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAucmFuZ2VzbGlkZXItaG9yaXpvbnRhbCB7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi10b3A6IDE4cHg7XG4gICAgLnJhbmdlc2xpZGVyX19maWxsIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1oaXZlLXJlZDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cbiAgfVxuICAuVm90aW5nX19hZGp1c3Rfd2VpZ2h0X2Nsb3NlIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICB9XG59XG5cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5Wb3RpbmdfX2J1dHRvbi11cCB7XG4gICAgLmRyb3Bkb3duLXBhbmUge1xuICAgICAgbWFyZ2luLXRvcDogLTM2cHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAxcmVtO1xuICAgIH1cbiAgfVxufVxuXG4vKiBNZWRpdW0gYW5kIGJpZ2dlciAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5Wb3RpbmdfX2J1dHRvbi11cCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAuZHJvcGRvd24tcGFuZSB7XG4gICAgICB0b3A6IC0xOHB4O1xuICAgICAgbGVmdDogLTI4cHg7XG4gICAgfVxuICB9XG59XG5cbi8qIFB1bHNlIGZvciB1cHZvdGUgYWN0aW9uICovXG5ALXdlYmtpdC1rZXlmcmFtZXMgcHVsc2Uge1xuICAgIDAlIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoNiwgMjE0LCAxNjksIDIpO1xuICAgIH1cbiAgICA3MCUge1xuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSg2LCAyMTQsIDE2OSwgMSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSg2LCAyMTQsIDE2OSwgMSk7XG4gICAgfVxufVxuQGtleWZyYW1lcyBwdWxzZSB7XG4gICAgMCUge1xuICAgICAgICAtbW96LWJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSg2LCAyMTQsIDE2OSwgMik7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSg2LCAyMTQsIDE2OSwgMik7XG4gICAgfVxuICAgIDcwJSB7XG4gICAgICAgIC1tb3otYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDYsIDIxNCwgMTY5LCAwKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDYsIDIxNCwgMTY5LCAwKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIC1tb3otYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDYsIDIxNCwgMTY5LCAwKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDYsIDIxNCwgMTY5LCAwKTtcbiAgICB9XG59XG5cbi53ZWlnaHQtY29udGFpbmVyIHtcbiAgbWluLXdpZHRoOiAzMDBweDtcbiAgd2lkdGg6IDkwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmctYm90dG9tOiAycHg7XG59XG4iLCIuRm9ybWF0dGVkQXNzZXQge1xuICAucHJlZml4IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjFyZW07XG4gIH1cbn1cbiIsIi5SZXBseUVkaXRvciB7XG4gIG1heC13aWR0aDogNjByZW07XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJvcmRlci1yYWRpdXM6IHRoZW1lZCgncm91bmRlZENvcm5lcnMnKTtcbiAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdtb2R1bGVCYWNrZ3JvdW5kQ29sb3InKTtcbiAgfVxuICAmLnNpZGUtYnktc2lkZSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIC5wcmV2aWV3LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA0OHJlbTtcbiAgICBtYXJnaW4tbGVmdDogNXJlbTtcbiAgICAmLnNpZGUtYnktc2lkZSB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIC52ZnJhbWUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIC5wdWJsaWMtRHJhZnRFZGl0b3ItY29udGVudCB7XG4gICAgICBoZWlnaHQ6IDIwZW07XG4gICAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgICAgY29sb3I6ICMzMzM7XG4gICAgfVxuICB9XG4gIC5idXR0b24ge1xuICAgIEBleHRlbmQgLmUtYnRuO1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgfVxuICAuYnV0dG9uLmhvbGxvdy5uby1ib3JkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIHJnYmEoMCwwLDAsMC4wKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgQGV4dGVuZCAubGluaztcbiAgICBAZXh0ZW5kIC5saW5rLS1zZWNvbmRhcnk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTRweCk7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDAgcmdiYSgwLDAsMCwwLjApO1xuICAgIGJvcmRlcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgLnNpZGUtYnktc2lkZSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxNDBweCk7XG4gIH1cbiAgLlByZXZpZXctaW5mbyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWFyZ2luOiAwLjRlbSAwIDFlbTtcbiAgfVxufVxuXG5pbnB1dC5SZXBseUVkaXRvcl9fYWx0QXV0aG9yIHtcbiAgICB3aWR0aDogMzAwcHg7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAuUmVwbHlFZGl0b3IgLnNpZGUtYnktc2lkZSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbi5jb21tZW50LWVkaXRvciAuUmVwbHlFZGl0b3IgLmNvbHVtbiB7XG4gIGZsZXg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLmNvbW1lbnQtZWRpdG9yIC5SZXBseUVkaXRvciAuc2lkZS1ieS1zaWRlIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4udXBsb2FkLWVuYWJsZWQge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgI2RkZDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuXG4uZHJhZy1hbmQtZHJvcCB7XG4gICAgZm9udC1zaXplOiA4NSU7XG4gICAgcGFkZGluZzogM3B4IDhweDtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICM3Njc2NzY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMztcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzO1xufVxuXG4uUG9zdEZ1bGwgLlJlcGx5RWRpdG9yX19ib2R5IHtcbiAgbWFyZ2luOiAxcmVtIDAgMDtcbn1cblxuLlJlcGx5RWRpdG9yX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uUmVwbHlFZGl0b3JfX2RyYWZ0IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC45KTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBjb2xvcjogI0JCQjtcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB6LWluZGV4OiAxO1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbn1cbi5SZXBseUVkaXRvcl9fZHJhZnQtaGlkZSB7XG4gIG9wYWNpdHk6IDA7XG59XG4uUmVwbHlFZGl0b3JfX2RyYWZ0LXNhdmVkIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDNzIGVhc2UtaW4tb3V0O1xuICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgM3MgZWFzZS1pbi1vdXQ7XG4gIC1tcy10cmFuc2l0aW9uOiBvcGFjaXR5IDNzIGVhc2UtaW4tb3V0O1xuICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDNzIGVhc2UtaW4tb3V0O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDNzIGVhc2UtaW4tb3V0O1xuICBvcGFjaXR5OiAwO1xufVxuXG4uUmVwbHlFZGl0b3IgLlByZXZpZXcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5SZXBseUVkaXRvciAuUHJldmlldyAuTWFya2Rvd24ge1xuICBib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiAgcGFkZGluZzogMCAwLjVyZW07XG59XG5cbi5SZXBseUVkaXRvcl9fYm9keSB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIGNsZWFyOiBib3RoO1xufVxuXG4uUmVwbHlFZGl0b3JfX29wdGlvbnMge1xuICBmb250LXNpemU6IDg1JTtcbiAgc2VsZWN0IHtcbiAgICBmb250LXNpemU6IDEwMCU7XG4gICAgd2lkdGg6IDEwcmVtO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgfVxuICBsYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMDAlO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5Ecm9wZG93bl9fcm9vdF9fXzFCOXRhIHtcbiAgY29sb3I6IGJsYWNrIWltcG9ydGFudDtcbn1cblxuLlJlcGx5RWRpdG9yX19vcHRpb25zX19jb3Zlcl9pbWFnZV9zZWxlY3RvciB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLlJlcGx5RWRpdG9yX19vcHRpb25zX19pbWFnZV9zZWxlY3RvciB7XG4gICAgLlJlcGx5RWRpdG9yX19vcHRpb25zX19pbWFnZV9zZWxlY3Rvcl9faW1hZ2VfY29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICAgIGhlaWdodDogNjBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgZ3JleTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjVzLCBoZWlnaHQgMC41cztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICYuc2VsZWN0ZWQge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICRjb2xvci1oaXZlLXJlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgICAgICAgIGhlaWdodDogMTIwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5SZXBseUVkaXRvci0tc3VibWl0LWJ1dHRvbnMtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG59XG4iLCIuU2xhdGVFZGl0b3IgPiBkaXZbY29udGVudGVkaXRhYmxlPVwidHJ1ZVwiXSB7XG4gIG1pbi1oZWlnaHQ6IDEycmVtO1xuXG4gIC8vQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gIC8vICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ21vZHVsZUJhY2tncm91bmRDb2xvcicpO1xuICAvL31cblxuICBjb2xvcjogIzAwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBwYWRkaW5nOiAwLjVyZW07XG59XG5cbi5TbGF0ZUVkaXRvci5NYXJrZG93biB7XG4gIGEge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzAwZjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaW1nIHtib3JkZXI6IDFweCBkb3R0ZWQgIzAwZn1cbiAgfVxuICBkaXYuYWN0aXZlIHtib3gtc2hhZG93OiAwIDAgNHB4IDJweCAjNDhDO31cbiAgaW1nLmFjdGl2ZSB7Ym94LXNoYWRvdzogMCAwIDJweCAxcHggIzQ4Qzt9XG4gIGhyLmFjdGl2ZSAge2JveC1zaGFkb3c6IDAgMCAycHggMXB4ICM0OEM7fVxuXG4gIGE6aG92ZXI6YWZ0ZXJ7XG4gICAgZm9udC1mYW1pbHk6IEFyaWFsO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBwYWRkaW5nOiAxcHggM3B4O1xuICAgIGJhY2tncm91bmQ6ICNlZWU7XG4gICAgY29udGVudDogYXR0cihocmVmKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDExMCU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmb250LXNpemU6IDlwdDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHotaW5kZXg6IDk5OTk5O1xuICAgIHBhZGRpbmc6IDRweCA4cHg7XG4gICAgY29sb3I6ICNkZGQ7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNzVzO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIzQ2NDY0NiwjMTUxNTE1KTtcbiAgfVxufVxuXG5cbi5TbGF0ZUVkaXRvcl9fc2lkZWJhciB7XG4gIG9wYWNpdHk6IDAuMjU7XG4gIGZvbnQtc2l6ZTogMTEwJTtcbiAgcGFkZGluZzogMXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIHRvcDogLTEwMDAwcHg7XG4gIGxlZnQ6IC0xMDAwMHB4O1xuICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNzVzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCM0NjQ2NDYsIzE1MTUxNSk7XG5cbiAgJjpob3ZlciB7b3BhY2l0eTogMTt9XG4gICY6YWZ0ZXIge1xuICAgIHRvcDogMC42cmVtO1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgYm9yZGVyOiB0cmFuc3BhcmVudCBzb2xpZDtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBoZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjNDY0NjQ2O1xuICAgIGJvcmRlci13aWR0aDogNXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gIH1cbn1cblxuLlNsYXRlRWRpdG9yX19zaWRlYmFyLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDFweCAycHg7XG4gIG1pbi13aWR0aDogMS43NXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBzdmcge2ZpbGw6IHdoaXRlfVxuICAmOmhvdmVyIHtzdmcge2ZpbGw6ICMzMmNkMzI7fX1cbn1cblxuXG4uU2xhdGVFZGl0b3JfX21lbnUge1xuICBmb250LXNpemU6IDExMCU7XG4gIHBhZGRpbmc6IDFweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IC0xMDAwMHB4O1xuICBsZWZ0OiAtMTAwMDBweDtcbiAgbWFyZ2luLXRvcDogLTZweDtcbiAgb3BhY2l0eTogMC45O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjc1cztcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDE4MGRlZywjNDY0NjQ2LCMxNTE1MTUpO1xuXG4gICY6aG92ZXIge29wYWNpdHk6IDF9XG4gICY6YWZ0ZXIge1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgYm9yZGVyOiBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBoZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMxNTE1MTU7XG4gICAgYm9yZGVyLXdpZHRoOiA1cHg7XG4gICAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gIH1cbiAgPiAqIHtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7fVxufVxuXG4uU2xhdGVFZGl0b3JfX21lbnUtYnV0dG9uIHtcbiAgZm9udC1mYW1pbHk6ICdHZW9yZ2lhJywgc2VyaWY7XG4gIGNvbG9yOiAjRkZGO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDJyZW07XG4gIGhlaWdodDogMS43NXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMSk7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgPiBzcGFuIHtcbiAgICBwYXRoIHtmaWxsOiB3aGl0ZX1cbiAgfVxufVxuXG4uU2xhdGVFZGl0b3JfX21lbnUtYnV0dG9uW2RhdGEtYWN0aXZlPVwiZmFsc2VcIl06aG92ZXIsXG4uU2xhdGVFZGl0b3JfX21lbnUtYnV0dG9uW2RhdGEtYWN0aXZlPVwidHJ1ZVwiXSB7XG4gIGNvbG9yOiAjMzJjZDMyO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNSk7XG4gID4gc3BhbiB7XG4gICAgcGF0aCB7ZmlsbDogIzMyY2QzMjt9XG4gIH1cbn1cblxuLlNsYXRlRWRpdG9yX19tZW51LWJ1dHRvbi1jb2RlID4gc3BhbiA+IGNvZGUge1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiA5MCU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi5TbGF0ZUVkaXRvcl9fbWVudS1idXR0b24tc3VwID4gc3BhbiA+IHNwYW4gLFxuLlNsYXRlRWRpdG9yX19tZW51LWJ1dHRvbi1zdWIgPiBzcGFuID4gc3BhbiB7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbDtcbiAgZm9udC1zaXplOiA4MCU7XG4gIHZlcnRpY2FsLWFsaWduOiA0JTtcbn1cblxuLlNsYXRlRWRpdG9yX19tZW51LWJ1dHRvbi1saW5rIHtcbiAgLkljb24sXG4gIC5JY29uID4gc3ZnIHt3aWR0aDogMXJlbTsgaGVpZ2h0OiAxcmVtO31cbn1cblxuLlNsYXRlRWRpdG9yX19tZW51LWJ1dHRvbi1ibG9jay1xdW90ZSA+IHNwYW4gPiBzcGFuIHtcbiAgZm9udC1zaXplOiAyMjAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogLTQ1JTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbiIsIi5Ecm9wZG93bk1lbnUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAuSWNvbi5kcm9wZG93bi1hcnJvdyB7XG4gICAgdG9wOiAycHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG5cbiAgPiAuVmVydGljYWxNZW51IHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgbWluLXdpZHRoOiAxNDVweDtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMCU7XG4gICAgcGFkZGluZzogMnB4O1xuXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2JhY2tncm91bmRDb2xvcicpO1xuICAgICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlckRhcmsnKTsgICAgXG4gICAgfVxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMCUpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UgMHMsIHZpc2liaWxpdHkgMHMgbGluZWFyIDAuM3M7XG4gICAgYm94LXNoYWRvdzogMXB4IDFweCA1cHggMHB4IHJnYmEoNTAsIDUwLCA1MCwgMC43NSk7XG5cbiAgfVxuXG4gICYuc2hvdyA+IC5WZXJ0aWNhbE1lbnUge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuXG4gICAgYSB7XG4gICAgICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7ICBcbiAgICAgIH0gICAgICAgXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50Jyk7ICBcbiAgICAgICAgfSBcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmxlZnQgPiAuVmVydGljYWxNZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDAlO1xuICB9XG4gICYucmlnaHQgPiAuVmVydGljYWxNZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMCU7XG4gIH1cbiAgLkRyb3Bkb3duTWVudS5tb3ZlLWxlZnQge1xuICAgIC5WZXJ0aWNhbE1lbnUge1xuICAgICAgbGVmdDogLTUwJTtcbiAgICB9XG4gIH1cbn1cbiIsIi5WZXJ0aWNhbE1lbnUge1xuXG4gIHdpZHRoOiAyMDBweDtcblxuICAuSWNvbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjFyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxNHB4O1xuICAgIHRvcDogMDtcbiAgfVxuXG4gIHN2ZyBwYXRoLCBzdmcgcG9seWdvbiB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7ICBcbiAgICB9ICAgICAgXG4gIH1cblxuICA+IGxpID4gYSB7XG4gICAgY29sb3I6ICRibGFjaztcbiAgICBsaW5lLWhlaWdodDogMXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gIH1cblxuICA+IGxpID4gYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3JPcGFxdWUnKTtcbiAgICB9XG4gIH1cblxuICA+IGxpLnRpdGxlIHtcbiAgICBwYWRkaW5nOiAwLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1hbGlnbjpsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGJvcmRlci1ib3R0b206IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgfSAgICBcbiAgfVxufVxuXG4iLCIuVm90ZXNBbmRDb21tZW50cyB7XG4gIHBhdGgge1xuICAgIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICBmaWxsOiB0aGVtZWQoJ2ljb25Db2xvclNlY29uZGFyeScpOyBcbiAgICB9ICAgICAgIFxuICB9XG4gIGNpcmNsZSB7XG4gICAgc3Ryb2tlOiBub25lO1xuICB9XG4gIGEge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIH1cbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLlZvdGVzQW5kQ29tbWVudHNfX3ZvdGVzIHtcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYm9yZGVyLXJpZ2h0OiB0aGVtZWQoJ2JvcmRlckxpZ2h0Jyk7IFxuICB9ICAgXG59XG5cbi5Wb3Rlc0FuZENvbW1lbnRzX19jb21tZW50cyB7XG4gIHBhZGRpbmc6IDAgMXJlbTtcbn1cblxuLyogU21hbGwgb25seSAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5Wb3Rlc0FuZENvbW1lbnRzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbn1cbiIsIi5UYWdMaXN0X19ob3Jpem9udGFsIHtcbiAgbWF4LXdpZHRoOiA0OHJlbTtcbiAgbWFyZ2luOiAwIGF1dG8gMC41cmVtO1xuICBhIHtcbiAgICBmb250LXNpemU6IDk1JTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwLjFyZW0gMC40cmVtIDAuMXJlbSAwO1xuICAgIHBhZGRpbmc6IDAuMXJlbSAwLjNyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMC4zcmVtO1xuICAgIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYmFja2dyb3VuZDogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3JPcGFxdWUnKTtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXInKTtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgYmFja2dyb3VuZDogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3InKTtcbiAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgICAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyRGFyaycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLlJlcHV0YXRpb24ge1xuICBAaW5jbHVkZSBmb250LXNpemUoMTNweCk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdHJhbnNpdGlvbjogMC4zcyBhbGwgZWFzZS1pbi1vdXQ7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgfSAgXG4gIEBpbmNsdWRlIE1RKE0pIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTRweCk7XG4gIH1cbn1cbiIsIi5SZWJsb2dfX2J1dHRvbiB7XG4gIHBhdGgge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgZmlsbDogdGhlbWVkKCdpY29uQ29sb3JTZWNvbmRhcnknKTtcbiAgICB9XG4gIH1cbn1cblxuLlJlYmxvZ19fYnV0dG9uLWFjdGl2ZSB7XG4gIHBhdGgge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgZmlsbDogdGhlbWVkKCdjb2xvckFjY2VudCcpO1xuICAgIH1cbiAgfVxufVxuXG4uUmVibG9nX19idXR0b24ubG9hZGluZyB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgc3ZnIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGFuaW1hdGlvbjogbG9hZGluZyA1MDBtcyBpbmZpbml0ZSBsaW5lYXI7XG4gICAgcGF0aCB7b3BhY2l0eTogMH1cbiAgfVxufVxuIiwiLnNoYXJlTWVudSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgaGVpZ2h0OiAyZW07XG5cbiAgICA+IHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgcGFkZGluZzogMnB4O1xuICAgICAgICB9XG4gICAgICAgIGxpID4gYTpob3ZlciBzdmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICAgIGZpbGw6IHRoZW1lZCgnY29sb3JBY2NlbnQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5BdXRob3Ige1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgLmRyb3Bkb3duLWFycm93IHtcbiAgXHRwb3NpdGlvbjogcmVsYXRpdmU7XG4gIFx0dG9wOiAzcHg7XG4gIFx0bGVmdDogLTJweDtcbiAgfVxuXG4gIC8qIGNvYXggZm9vdGVyIGxpbmsgdG8gYmVoYXZlIHNpbWlsYXJseSAqL1xuICA+IHNwYW4gPiBzdHJvbmcgPiBhIHtcbiAgICAgIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50Jyk7XG4gICAgICAgIH1cbiAgICAgfVxuICB9XG59XG4iLCIuQXV0aG9yX19jb250YWluZXIge1xuICB3aWR0aDogYXV0bztcbiAgcGFkZGluZzogMDtcbiAgYm94LXNoYWRvdzogMXB4IDFweCA1cHggMHB4IHJnYmEoNTAsIDUwLCA1MCwgMC43NSk7XG4gIHotaW5kZXg6IDEwO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDMwMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3JFbXBoYXNpcycpO1xuICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgfVxuXG4gIC5BdXRob3JfX2Ryb3Bkb3duIHtcbiAgICB3aWR0aDogMjkwcHg7XG4gICAgbWluLWhlaWdodDogMTA4cHg7XG5cblxuICAgIC5Vc2VycGljIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6NzVweDtcbiAgICAgICAgaGVpZ2h0Ojc1cHg7XG4gICAgfVxuXG4gICAgLkF1dGhvcl9fbmFtZSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMTEwJTtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgICAgIH1cbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG5cbiAgICAuQXV0aG9yX191c2VybmFtZSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBmb250LXNpemU6IDkwJTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuQXV0aG9yX19iaW8ge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBmb250LXNpemU6IDkwJTtcbiAgICAgIHBhZGRpbmc6IDEwcHggMTBweCAwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLlVzZXJOYW1lcyAuVmVydGljYWxNZW51IHtcbiAgbGkgPiBhIHtcbiAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgfVxufVxuIiwiLm5hdl9fYmxvY2stbGlzdCB7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxubGkubmF2X19ibG9jay1saXN0LWl0ZW0ge1xuICAgIG1hcmdpbjogMCAxMHB4O1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMS4xMjVyZW0gMC4yNXJlbTtcbiAgICB0cmFuc2l0aW9uOiAwLjNzIGFsbCBlYXNlLWluLW91dDtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIGEge1xuICAgICAgICBAZXh0ZW5kIC5saW5rO1xuICAgICAgICBAZXh0ZW5kIC5saW5rLS1wcmltYXJ5O1xuICAgICAgICBmb250LWZhbWlseTogXCJTb3VyY2UgU2FucyBQcm9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIH1cbiAgICAmLS1hY3RpdmUge1xuICAgICAgICBib3gtc2hhZG93OiAwcHggNXB4IDBweCAtMnB4ICRjb2xvci1oaXZlLXJlZDtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgICB9XG4gICAgfVxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICBib3gtc2hhZG93OiAwcHggNXB4IDBweCAtMnB4ICRjb2xvci1oaXZlLXJlZDtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgICB9XG4gICAgfVxufSIsImZvcm0uc2VhcmNoLWlucHV0IHtcblxuICAgIGhlaWdodDogNDJweDtcblxuICAgIHN2Zy5zZWFyY2gtaW5wdXRfX2ljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgIHN0cm9rZTogdGhlbWVkKCdjb2xvckFjY2VudFJldmVyc2UnKTtcbiAgICAgICAgfVxuICAgICAgICBzdHJva2Utd2lkdGg6IDEuMjtcbiAgICAgICAgZmlsbDogbm9uZTtcbiAgICB9XG5cbiAgICBpbnB1dC5zZWFyY2gtaW5wdXRfX2lubmVyIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogOXB4IDEwcHggMTFweCAzMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNXBjO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgd2lkdGg6IDQycHg7XG4gICAgICAgIGhlaWdodDogNDJweDtcbiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1wcmltYXJ5O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIwMiwgMjAyLCAyMDIsIDAuNik7XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICB3aWR0aDogMTgwcHg7XG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IHRoZW1lZCgnbW9kdWxlQmFja2dyb3VuZENvbG9yJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvci1oaXZlLXJlZDtcbiAgICAgICAgICAgIC8vIGJveC1zaGFkb3c6IDAgMCA1cHggcmdiYSgxMDksMjA3LDI0NiwuNSk7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItYmx1ZS1kYXJrO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgICAgICAvLyBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBzbWFsbCAqL1xuICAgIGlucHV0LnNlYXJjaC1pbnB1dF9faW5uZXIuc2VhcmNoLWlucHV0X19pbm5lci0tc21hbGwge1xuXG4gICAgfVxufVxuXG5mb3JtLnNlYXJjaC1pbnB1dC0tZXhwYW5kZWQge1xuXG4gICAgaGVpZ2h0OiA0MnB4O1xuXG4gICAgc3ZnLnNlYXJjaC1pbnB1dF9faWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgc3Ryb2tlOiB0aGVtZWQoJ2NvbG9yQWNjZW50UmV2ZXJzZScpO1xuICAgICAgICB9XG4gICAgICAgIHN0cm9rZS13aWR0aDogMS4yO1xuICAgICAgICBmaWxsOiBub25lO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBzdmcuc2VhcmNoLWlucHV0X19pY29uIHtcbiAgICAgICAgICAgIC8vIHN0cm9rZTogJGNvbG9yLXdoaXRlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXQuc2VhcmNoLWlucHV0X19pbm5lciB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDlweCAxMHB4IDExcHggMzJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjVwYztcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGhlaWdodDogNDJweDtcbiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBmb250LWZhbWlseTogJGZvbnQtcHJpbWFyeTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgICAgIC8vIGJveC1zaGFkb3c6IDAgMCA1cHggcmdiYSgxMDksMjA3LDI0NiwuNSk7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMi41cmVtO1xuICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjAyLCAyMDIsIDIwMiwgMC42KTtcblxuXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgICAgICAgLy8gY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICAgICAgfVxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAvLyBjb2xvcjogJGNvbG9yLXRleHQtd2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBzbWFsbCAqL1xuICAgIGlucHV0LnNlYXJjaC1pbnB1dF9faW5uZXIuc2VhcmNoLWlucHV0X19pbm5lci0tc21hbGwge1xuXG4gICAgfVxufVxuXG4uc2VhcmNoLXNvcnQtb3JkZXIge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5zZWFyY2gtc29ydC1vcmRlci0tdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDNweDtcbn1cblxuLnNlYXJjaC1zb3J0LW9yZGVyLS1zZWxlY3Qgc2VsZWN0IHtcbiAgICB3aWR0aDogMjAwcHg7XG59XG4iLCJcbi5pY29uLWJ1dHRvbl9fc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAmLmljb24tYnV0dG9uX19zdmctLXNtYWxsIHtcbiAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5pY29uLWJ1dHRvbl9fc3ZnLS1tZWRpdW0ge1xuICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICAgICAgd2lkdGg6IDQycHg7XG4gICAgICAgICAgaGVpZ2h0OiA0MnB4O1xuICAgICAgfVxuICAgIH1cbiAgICAmLmljb24tYnV0dG9uX19zdmctLWxhcmdlIHtcbiAgICAgIHdpZHRoOiA0MnB4O1xuICAgICAgaGVpZ2h0OiA0MnB4O1xuICAgICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5pY29uLWJ1dHRvbl9fc3ZnLS1ncmVlbiB7XG4gICAgICBmaWxsOiAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgfVxuICAgICYuaWNvbi1idXR0b25fX3N2Zy0tdHJhbnNwYXJlbnQge1xuICAgICAgZmlsbDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICAgIC5pY29uLWJ1dHRvbntcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICAgIHN0cm9rZS13aWR0aDogMC41O1xuICAgICAgICAmLmljb24tYnV0dG9uX19ib3JkZXItLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgIHN0cm9rZTogdGhlbWVkKCdpY29uQ29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmljb24tYnV0dG9uX19ib3JkZXItLWdyZWVue1xuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlOiAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5pY29uLWJ1dHRvbi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgZmlsbC1ydWxlOiBldmVub2RkO1xuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICAgICAgZmlsbDogdGhlbWVkKCdjb2xvckFjY2VudFJldmVyc2UnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuaWNvbi1idXR0b25fX21hZ25pZnlpbmdHbGFzc3tcbiAgICAgICAgICAgICAgZmlsbDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgIHN0cm9rZS13aWR0aDogMTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiB0aGVtZWQoJ2NvbG9yQWNjZW50UmV2ZXJzZScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmljb24tYnV0dG9uLS1ncmVlbiB7XG4gICAgICAgICAgICBmaWxsLXJ1bGU6IGV2ZW5vZGQ7XG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgICAgICBmaWxsOiB0aGVtZWQoJ2NvbG9yV2hpdGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICA6aG92ZXIge1xuICAgICAgICBzdHJva2U6ICRjb2xvci1ib3JkZXItbGlnaHQ7XG4gICAgICAgIHN0cm9rZS13aWR0aDogMC41O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgIGZpbGw6IHRoZW1lZCgnYnV0dG9uQmFja2dyb3VuZCcpO1xuICAgICAgICB9XG4gICAgICAgIC5pY29uLWJ1dHRvbiB7XG4gICAgICAgICAgICAmLmljb24tYnV0dG9uX19ib3JkZXIge1xuICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aDogMjtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiB0aGVtZWQoJ2J1dHRvbkJhY2tncm91bmQnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmljb24tYnV0dG9uX19zdmcge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgICAgZmlsbDogdGhlbWVkKCdidXR0b25CYWNrZ3JvdW5kJyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuaWNvbi1idXR0b24tLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogdGhlbWVkKCdidXR0b25UZXh0Jyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYuaWNvbi1idXR0b25fX21hZ25pZnlpbmdHbGFzc3tcbiAgICAgICAgICAgICAgICAgIGZpbGw6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoOiAxO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogdGhlbWVkKCdidXR0b25UZXh0Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmljb24tYnV0dG9uLS1ncmVlbntcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgIGZpbGw6IHRoZW1lZCgnYnV0dG9uVGV4dCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLmxvZ28ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAubG9nb19fc3RlZW1pdHtcbiAgICAgICAgZmlsbDogJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjI1cyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgfVxuICAgIC8vIEZpeGVzICMyNjM5IC0gRG9uJ3QgYXBwbHkgaG92ZXIgc3R5bGVzIG9uIGRldmljZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBpdC5cbiAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICAgICAmOmhvdmVyLCAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAubG9nb19fc3RlZW1pdHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogdGhlbWVkKCdjb2xvckFjY2VudFJldmVyc2UnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuc3RlZW0tbWFya2V0IHtcbiAgaDQge1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIH1cbiAgLmNvaW4ge1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgfVxuICAuY2hhcnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAuY2FwdGlvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAycHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAycHg7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTEsIDUxLCA1MSwgMC4xKTtcbiAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgZm9udC1zaXplOiAwLjVlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgfVxuICB9XG4gIC5jb2luLWxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiAtMC41ZW07XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAuc3ltYm9sIHtcbiAgICAgIGNvbG9yOiAjNzg4MTg3O1xuICAgIH1cbiAgICAucHJpY2Uge1xuICAgICAgY29sb3I6ICMwOWQ2YTg7XG4gICAgfVxuICB9XG4gIC5icm91Z2h0IHtcbiAgICBmb250LXNpemU6IDAuNjc1ZW07XG4gICAgY29sb3I6ICM3ODgxODc7XG4gIH1cbn1cblxuLnRoZW1lLWRhcmsge1xuICAuc3RlZW0tbWFya2V0IHtcbiAgICAuY2hhcnQge1xuICAgICAgLmNhcHRpb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuU2FuaXRpemVkTGluay0tcGhpc2h5TGluayB7XG4gIGNvbG9yOiBkYXJrZW4oJGNvbG9yLXJlZCwgMTAlKTtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAucGhpc2h5bGluay1yZXZlYWwtbGluayB7XG4gICAgcGFkZGluZy1sZWZ0OiAuNWVtO1xuICAgIG9wYWNpdHk6IC41O1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG59XG4iLCIuZHJvcGRvd24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIFxuICAgIC5JY29uLmRyb3Bkb3duLWFycm93IHtcbiAgICAgIHRvcDogMnB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgXG4gICAgPiAuZHJvcGRvd25fX2NvbnRlbnQge1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgbWluLXdpZHRoOiAxNDVweDtcbiAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDJweDtcbiAgXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3InKTtcbiAgICAgICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlckRhcmsnKTtcbiAgICAgIH1cbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMCUpO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZSAwcywgdmlzaWJpbGl0eSAwcyBsaW5lYXIgMC4zcztcbiAgICAgIGJveC1zaGFkb3c6IDFweCAxcHggNXB4IDBweCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpO1xuICBcbiAgICB9XG4gIFxuICAgICYuc2hvdyA+IC5kcm9wZG93bl9fY29udGVudCB7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgICAgIGEge1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTsgIFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgXG4gICAgJi5sZWZ0ID4gLmRyb3Bkb3duX19jb250ZW50IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwJTtcbiAgICB9XG4gICAgJi5yaWdodCA+IC5kcm9wZG93bl9fY29udGVudCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwJTtcbiAgICB9XG4gIH1cbiAgIiwiLk5vdGljZXMge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgICZfX25vdGljZSB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDByZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG5cbiAgICB9XG4gICAgJl9fZmVhdHVyZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Itb3JhbmdlO1xuICAgICAgICBwYWRkaW5nOiAzcHggNHB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC40cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTFweCk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgIH1cbiAgICAmX19mZWF0dXJlZCArICZfX3RpdGxlIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICB9XG4gICAgJl9fZmVhdHVyZWQgKyAmX190aXRsZSArICZfX21ldGFkYXRhIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXB4O1xuICAgIH0gICAgXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNHB4KTsgICAgXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG4gICAgJl9fbWV0YWRhdGEge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTJweCk7ICAgIFxuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICAgIH0gICAgICAgICAgICAgICAgICBcbiAgICB9XG4gICAgJl9fYXV0aG9yLWxpbmsge1xuICAgICAgICBAZXh0ZW5kIC5saW5rO1xuICAgICAgICBAZXh0ZW5kIC5saW5rLS1zZWNvbmRhcnk7XG4gICAgfSAgICBcbiAgICAmX190aXRsZS1saW5rIHtcbiAgICAgICAgQGV4dGVuZCAubGluaztcbiAgICAgICAgQGV4dGVuZCAubGluay0tcHJpbWFyeTtcbiAgICB9ICAgICAgICBcbiAgICAmX19ieSB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgIH1cbn0iLCIuUG9zdENhdGVnb3J5QmFubmVyIHtcbiAgbWFyZ2luOiAuNWVtIDFlbSAxZW0gMDtcbiAgZGlzcGxheTogaW5saW5lO1xuXG4gIC5wb3N0VG8ge1xuICAgIHNtYWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICAgIGNvbG9yOiAjNjY2O1xuICAgICAgLnNtYWxsTGFiZWwge1xuICAgICAgICBjb2xvcjogIzMzMztcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmNhdGVnb3J5TmFtZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIGgzIHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAwIDAgLjVlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cblxuLlBvc3RDYXRlZ29yeUJhbm5lci0tY29tbXVuaXR5LXNlbGVjdG9yIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgd2lkdGg6IDIwMHB4O1xufVxuIiwiICAuZmxhZ19fYnV0dG9uIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLmZsYWcyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICAuZmxhZzEge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIH1cbiAgICAgIC5mbGFnMiB7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgc3ZnIHtcbiAgICAgICAgZmlsbDogcmVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5mbGFnX19idXR0b24tLXBvc3Qge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMWVtO1xuICB9XG4iLCIudmlzdWFsLWVkaXRvciB7XG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLkRyYWZ0RWRpdG9yLWVkaXRvckNvbnRhaW5lciB7XG4gICAgPiBkaXYge1xuICAgICAgbWluLWhlaWdodDogMjAwcHg7XG4gICAgfVxuICB9XG59XG4iLCIvKiEgR2l0SHViOiBPbmUgRGFyayAqL1xuLyogYWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vYXRvbS9vbmUtZGFyay1zeW50YXggJiBodHRwczovL2dpdGh1Yi5jb20vQWVyb2JpcmQ5OC9jb2RlbWlycm9yLW9uZS1kYXJrLXRoZW1lICovXG4vKiBieSBodHRwczovL2dpdGh1Yi5jb20vc3BhcmN1dCAqL1xuOnJvb3Qge1xuICAgIC0tZ2hkLWNvZGUtYmFja2dyb3VuZDogaHNsKDAsIDAlLCA4JSk7XG4gICAgLS1naGQtY29kZS1jb2xvcjogaHNsKDIyMCwxNCUsNzElKTtcbn1cbi8qIGNvbW1lbnQsIHB1bmN0dWF0aW9uLmRlZmluaXRpb24uY29tbWVudCwgc3RyaW5nLmNvbW1lbnQgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1jLCAucGwtYyBzcGFuIHsgY29sb3I6IGhzbCgyMjAsMTAlLDQwJSk7IGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuLyogY29uc3RhbnQsIGVudGl0eS5uYW1lLmNvbnN0YW50LCB2YXJpYWJsZS5vdGhlci5jb25zdGFudCwgdmFyaWFibGUubGFuZ3VhZ2UsXG5zdXBwb3J0LCBtZXRhLnByb3BlcnR5LW5hbWUsIHN1cHBvcnQuY29uc3RhbnQsIHN1cHBvcnQudmFyaWFibGUsXG4gbWV0YS5tb2R1bGUtcmVmZXJlbmNlLCBtYXJrdXAucmF3LCBtZXRhLmRpZmYuaGVhZGVyICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtYzEgeyBjb2xvcjogaHNsKDI5LDU0JSw2MSUpOyB9XG4vKiBzdHJpbmcucmVnZXhwIGNvbnN0YW50LmNoYXJhY3Rlci5lc2NhcGUgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1zciAucGwtY2NlIHsgY29sb3I6IGhzbCgxODcsNDclLDU1JSk7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1jbiB7IGNvbG9yOiBoc2woMjksNTQlLDYxJSk7IH1cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1lIHsgY29sb3I6IGhzbCgyOSw1NCUsNjElKTsgfSAvKiBlbnRpdHkgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1lZiB7IGNvbG9yOiBoc2woMjA3LDgyJSw2NiUpOyB9IC8qIGVudGl0eS5mdW5jdGlvbiAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLWVuIHsgY29sb3I6IGhzbCgyOSw1NCUsNjElKTsgfSAvKiBlbnRpdHkubmFtZSAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLWVuYyB7IGNvbG9yOiBoc2woMzksNjclLDY5JSk7IH0gLyogZW50aXR5Lm5hbWUuY2xhc3MgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1lbmYgeyBjb2xvcjogaHNsKDIwNyw4MiUsNjYlKTsgfSAvKiBlbnRpdHkubmFtZS5mdW5jdGlvbiAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLWVubSB7IGNvbG9yOiBoc2woMjIwLDE0JSw3MSUpOyB9IC8qIGVudGl0eS5uYW1lLm1ldGhvZC1uYW1lICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtZW5zIHsgY29sb3I6IGhzbCg1LDQ4JSw1MSUpOyB9IC8qIGVudGl0eS5uYW1lLnNlY3Rpb24gKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1lbnQgeyBjb2xvcjogaHNsKDM1NSw2NSUsNjUlKTsgfSAvKiBlbnRpdHkubmFtZS50YWcgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1lbnRjIHsgY29sb3I6IGhzbCgzOSw2NyUsNjklKTsgfSAvKiBlbnRpdHkubmFtZS50eXBlLmNsYXNzICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtZW50aSB7IGNvbG9yOiBoc2woMTg3LDQ3JSw1NSUpOyB9IC8qIGVudGl0eS5uYW1lLnR5cGUuaW5zdGFuY2UgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1lbnRtIHsgY29sb3I6IGhzbCgzNTUsNjUlLDY1JSk7IH0gLyogZW50aXR5Lm5hbWUudHlwZS5tb2R1bGUgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1lb2EgeyBjb2xvcjogaHNsKDI5LDU0JSw2MSUpOyB9IC8qIGVudGl0eS5vdGhlci5hdHRyaWJ1dGUtbmFtZSAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLWVvYWMgeyBjb2xvcjogaHNsKDI5LDU0JSw2MSUpOyB9IC8qIGVudGl0eS5vdGhlci5hdHRyaWJ1dGUtbmFtZS5jbGFzcyAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLWVvYWMgLnBsLXBkZSB7IGNvbG9yOiBoc2woMjksNTQlLDYxJSk7IH0gLyogcHVuY3R1YXRpb24uZGVmaW5pdGlvbi5lbnRpdHkgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1lb2FpIHsgY29sb3I6IGhzbCgyMDcsODIlLDY2JSk7IH0gLyogZW50aXR5Lm90aGVyLmF0dHJpYnV0ZS1uYW1lLmlkICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtZW9pIHsgY29sb3I6IGhzbCg5NSwzOCUsNjIlKTsgfSAvKiBlbnRpdHkub3RoZXIuaW5oZXJpdGVkLWNsYXNzICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtayB7IGNvbG9yOiBoc2woMjg2LDYwJSw2NyUpOyB9IC8qIGtleXdvcmQsIHN0b3JhZ2UsIHN0b3JhZ2UudHlwZSAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLWtvIHsgY29sb3I6IGhzbCgyMjAsMTQlLDcxJSk7IH0gLyoga2V5d29yZC5vcGVyYXRvciAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLWtvbHAgeyBjb2xvcjogaHNsKDI4Niw2MCUsNjclKTsgfSAvKiBrZXl3b3JkLm9wZXJhdG9yLmxvZ2ljYWwucHl0aG9uICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwta29zIHsgY29sb3I6IGhzbCgyMDcsODIlLDY2JSk7IH0gLyoga2V5d29yZC5vdGhlci5zcGVjaWFsLW1ldGhvZCAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLWtvdSB7IGNvbG9yOiBoc2woMjksNTQlLDYxJSk7IH0gLyoga2V5d29yZC5vdGhlci51bml0ICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtbWFpIC5wbC1zZiB7IGNvbG9yOiBoc2woMTg3LDQ3JSw1NSUpOyB9IC8qIHN1cHBvcnQuZnVuY3Rpb24gKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1tYiB7IGNvbG9yOiBoc2woMjksNTQlLDYxJSk7IGZvbnQtd2VpZ2h0OiBib2xkOyB9IC8qIG1hcmt1cC5ib2xkICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtbWMgeyBjb2xvcjogaHNsKDI4Niw2MCUsNjclKTsgfSAvKiBtYXJrdXAuY2hhbmdlZCwgcHVuY3R1YXRpb24uZGVmaW5pdGlvbi5jaGFuZ2VkICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtbWggeyBjb2xvcjogaHNsKDM1NSw2NSUsNjUlKTsgfSAvKiBtYXJrdXAuaGVhZGluZyAqL1xuLyogbWFya3VwLmhlYWRpbmcgcHVuY3R1YXRpb24uZGVmaW5pdGlvbi5oZWFkaW5nICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtbWggLnBsLXBkaCB7IGNvbG9yOiBoc2woMjA3LDgyJSw2NiUpOyB9XG4udGhlbWUtZGFyayAuZ2lzdCAucGwtbWkgeyBjb2xvcjogaHNsKDI4Niw2MCUsNjclKTsgZm9udC1zdHlsZTogaXRhbGljOyB9IC8qIG1hcmt1cC5pdGFsaWMgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1tbCB7IGNvbG9yOiBoc2woMTg3LDQ3JSw1NSUpOyB9IC8qIG1hcmt1cC5saXN0ICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtbW0geyBjb2xvcjogaHNsKDI5LDU0JSw2MSUpOyB9IC8qIG1ldGEubW9kdWxlLXJlZmVyZW5jZSAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLW1wIHsgY29sb3I6IGhzbCgyMjAsOSUsNTUlKTsgfSAvKiBtZXRhLnByb3BlcnR5LW5hbWUgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1tcDEgLnBsLXNmIHsgY29sb3I6IGhzbCgyMjAsMTQlLDcxJSk7IH0gLyogbWV0YS5wcm9wZXJ0eS12YWx1ZSBzdXBwb3J0LmZ1bmN0aW9uICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtbXEgeyBjb2xvcjogaHNsKDI5LDU0JSw2MSUpOyB9IC8qIG1hcmt1cC5xdW90ZSAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLW1yIHsgY29sb3I6IGhzbCgyMDcsODIlLDY2JSk7IH0gLyogbWV0YS5yZXF1aXJlICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtbXMgeyBjb2xvcjogaHNsKDIyMCwxNCUsNzElKTsgfSAvKiBtZXRhLnNlcGFyYXRvciAqL1xuLyogcHVuY3R1YXRpb24uZGVmaW5pdGlvbi5ib2xkICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtcGRiIHsgY29sb3I6IGhzbCgzOSw2NyUsNjklKTsgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbi8qIHB1bmN0dWF0aW9uLmRlZmluaXRpb24uY29tbWVudCAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLXBkYyB7IGNvbG9yOiBoc2woMjIwLDEwJSw0MCUpOyBmb250LXN0eWxlOiBpdGFsaWM7IH1cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1wZGMxIHsgY29sb3I6IGhzbCgyMjAsMTQlLDcxJSk7IH0gLyogcHVuY3R1YXRpb24uZGVmaW5pdGlvbi5jb25zdGFudCAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLXBkZSB7IGNvbG9yOiBoc2woMjg2LDYwJSw2NyUpOyB9IC8qIHB1bmN0dWF0aW9uLmRlZmluaXRpb24uZW50aXR5ICovXG4vKiBwdW5jdHVhdGlvbi5kZWZpbml0aW9uLml0YWxpYyAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLXBkaSB7IGNvbG9yOiBoc2woMjg2LDYwJSw2NyUpOyBmb250LXN0eWxlOiBpdGFsaWM7IH1cbi8qIHB1bmN0dWF0aW9uLmRlZmluaXRpb24uc3RyaW5nLCBzb3VyY2UucmVnZXhwLCBzdHJpbmcucmVnZXhwLmNoYXJhY3Rlci1jbGFzcyAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLXBkcyB7IGNvbG9yOiBoc2woOTUsMzglLDYyJSk7IH1cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1wZHYgeyBjb2xvcjogaHNsKDM1NSw2NSUsNjUlKTsgfSAvKiBwdW5jdHVhdGlvbi5kZWZpbml0aW9uLnZhcmlhYmxlICovXG4vKiBzdHJpbmcgcHVuY3R1YXRpb24uc2VjdGlvbi5lbWJlZGRlZCBzb3VyY2UgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1wc2UgLnBsLXMxIHsgY29sb3I6IGhzbCg5NSwzOCUsNjIlKTsgfVxuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLXBzZSAucGwtczIgeyBjb2xvcjogaHNsKDM5LDY3JSw2OSUpOyB9IC8qIHB1bmN0dWF0aW9uLnNlY3Rpb24uZW1iZWRkZWQgc291cmNlICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtcyB7IGNvbG9yOiBoc2woOTUsMzglLDYyJSk7IH0gLyogc3RyaW5nICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtczEgeyBjb2xvcjogaHNsKDk1LDM4JSw2MiUpOyB9IC8qIHN0cmluZyAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLXMyIHsgY29sb3I6IGhzbCgzOSw2NyUsNjklKSA7IH0gLyogc291cmNlICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtbXAgLnBsLXMzIHsgY29sb3I6IGhzbCgyOSw1NCUsNjElKTsgfSAvKiBzdXBwb3J0ICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtczMgeyBjb2xvcjogaHNsKDI5LDU0JSw2MSUpOyB9IC8qIHN1cHBvcnQgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1zYyB7IGNvbG9yOiBoc2woMzksNjclLDY5JSk7IH0gLyogc3VwcG9ydC5jbGFzcyAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLXNjcCB7IGNvbG9yOiBoc2woMjIwLDE0JSw3MSUpOyB9IC8qIHN1cHBvcnQuY29uc3RhbnQucHJvcGVydHktdmFsdWUgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1zZiB7IGNvbG9yOiBoc2woMTg3LDQ3JSw1NSUpOyB9IC8qIHN1cHBvcnQuZnVuY3Rpb24gKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1zbWMgeyBjb2xvcjogaHNsKDIyMCwxNCUsNzElKTsgfSAvKiBzdG9yYWdlLm1vZGlmaWVyLmMgKi9cbi8qIHZhcmlhYmxlLnBhcmFtZXRlci5mdW5jdGlvbiwgc3RvcmFnZS5tb2RpZmllci5wYWNrYWdlLFxuIHN0b3JhZ2UubW9kaWZpZXIuaW1wb3J0LCBzdG9yYWdlLnR5cGUuamF2YSwgdmFyaWFibGUub3RoZXIgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1zbWkgeyBjb2xvcjogaHNsKDM1NSw2NSUsNjUlKTsgfVxuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLXNtcCB7IGNvbG9yOiBoc2woMzksNjclLDY5JSk7IH0gLyogc3RvcmFnZS5tb2RpZmllci5wYWNrYWdlICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtc29rIHsgY29sb3I6IGhzbCgyOSw1NCUsNjElKTsgfSAvKiBzdXBwb3J0Lm90aGVyLmtleXdvcmQgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1zb2wgeyBjb2xvcjogaHNsKDM1NSw2NSUsNjUlKTsgfSAvKiBzdHJpbmcub3RoZXIubGluayAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLXNvbSB7IGNvbG9yOiBoc2woMjIwLDE0JSw3MSUpOyB9IC8qIHN1cHBvcnQub3RoZXIubW9kdWxlICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtc3IgeyBjb2xvcjogaHNsKDE4Nyw0NyUsNTUlKTsgfSAvKiBzdHJpbmcucmVnZXhwICovXG4vKiBzdHJpbmcucmVnZXhwIHN0cmluZy5yZWdleHAuYXJiaXRyYXJ5LXJlcGl0aXRpb24gKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1zciAucGwtc3JhIHsgY29sb3I6IGhzbCgxODcsNDclLDU1JSk7IH1cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1zcmMgeyBjb2xvcjogaHNsKDE4Nyw0NyUsNTUlKTsgfSAvKiBzdHJpbmcucmVnZXhwLmNoYXJhY3Rlci1jbGFzcyAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLXNyIC5wbC1zcmUgeyBjb2xvcjogaHNsKDM5LDY3JSw2OSUpOyB9IC8qIHN0cmluZy5yZWdleHAgc291cmNlLnJ1YnkuZW1iZWRkZWQgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1zdCB7IGNvbG9yOiBoc2woMTg3LDQ3JSw1NSUpOyB9IC8qIHN1cHBvcnQudHlwZSAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLXN0aiB7IGNvbG9yOiBoc2woMzksNjclLDY5JSk7IH0gLyogc3RvcmFnZS50eXBlLmphdmEgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1zdHAgeyBjb2xvcjogaHNsKDIyMCw5JSw1NSUpOyB9IC8qIHN1cHBvcnQudHlwZS5wcm9wZXJ0eS1uYW1lICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtc3YgeyBjb2xvcjogaHNsKDI5LDU0JSw2MSUpOyB9IC8qIHN1cHBvcnQudmFyaWFibGUgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC12IHsgY29sb3I6IGhzbCgzOSw2NyUsNjklKTsgfSAvKiB2YXJpYWJsZSAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLXZpIHsgY29sb3I6IGhzbCg1LDQ4JSw1MSUpOyB9IC8qIHZhcmlhYmxlLmludGVycG9sYXRpb24gKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC12byB7IGNvbG9yOiBoc2woMTg3LDQ3JSw1NSUpOyB9IC8qIHZhcmlhYmxlLm90aGVyICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtdnBmIHsgY29sb3I6IGhzbCgyMjAsMTQlLDcxJSk7IH0gLyogdmFyaWFibGUucGFyYW1ldGVyLmZ1bmN0aW9uICovXG4vKiBtYXJrdXAuaW5zZXJ0ZWQsIG1ldGEuZGlmZi5oZWFkZXIudG8tZmlsZSwgcHVuY3R1YXRpb24uZGVmaW5pdGlvbi5pbnNlcnRlZCAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLW1pMSB7IGNvbG9yOiBoc2woOTUsMzglLDYyJSk7IGJhY2tncm91bmQ6ICMwMjA7IH1cbi8qIG1ldGEuZGlmZi5oZWFkZXIudG8tZmlsZSAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLW1kaHQgeyBjb2xvcjogaHNsKDk1LDM4JSw2MiUpOyBiYWNrZ3JvdW5kOiAjMDIwOyB9XG4vKiBtYXJrdXAuZGVsZXRlZCwgbWV0YS5kaWZmLmhlYWRlci5mcm9tLWZpbGUsIHB1bmN0dWF0aW9uLmRlZmluaXRpb24uZGVsZXRlZCAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLW1kIHsgY29sb3I6IGhzbCgzNTUsNjUlLDY1JSk7IGJhY2tncm91bmQ6ICMyMDA7IH1cbi8qIG1ldGEuZGlmZi5oZWFkZXIuZnJvbS1maWxlICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtbWRoZiB7IGNvbG9yOiBoc2woMzU1LDY1JSw2NSUpOyBiYWNrZ3JvdW5kOiAjMjAwOyB9XG4vKiBtZXRhLmRpZmYucmFuZ2UgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1tZHIgeyBjb2xvcjogaHNsKDIyMCwxNCUsNzElKTsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLW1kaCB7IGNvbG9yOiBoc2woMzU1LDY1JSw2NSUpOyBmb250LXdlaWdodDogbm9ybWFsOyB9IC8qIG1ldGEuZGlmZi5oZWFkZXIgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1tZGkgeyBjb2xvcjogaHNsKDM1NSw2NSUsNjUlKTsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfSAvKiBtZXRhLmRpZmYuaW5kZXggKi9cbi8qIGNvbnN0YW50Lm90aGVyLnJlZmVyZW5jZS5saW5rLCBzdHJpbmcub3RoZXIubGluayAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLWNvcmwgeyBjb2xvcjogaHNsKDM1NSw2NSUsNjUlKTsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1pYiB7IGJhY2tncm91bmQtY29sb3I6IGhzbCgzNTUsNjUlLDY1JSk7IH0gLyogaW52YWxpZC5icm9rZW4gKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1idSwgLyogaW52YWxpZC5icm9rZW4sIGludmFsaWQuZGVwcmVjYXRlZCwgaW52YWxpZC51bmltcGxlbWVudGVkLCBtZXNzYWdlLmVycm9yLCBicmFja2V0aGlnaGxpZ2h0ZXIudW5tYXRjaGVkLCBzdWJsaW1lbGludGVyLm1hcmsuZXJyb3IgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1paSB7IGJhY2tncm91bmQtY29sb3I6IGhzbCgwLDcwJSw2MCUpOyB9IC8qIGludmFsaWQuaWxsZWdhbCAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLW1vIHsgY29sb3I6IGhzbCgyMjAsMTQlLDcxJSk7IH0gLyogbWV0YS5vdXRwdXQgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC1tcmkgeyBjb2xvcjogaHNsKDk1LDM4JSw2MiUpOyB9IC8qIG1hcmt1cC5yYXcuaW5saW5lICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtbXMxIHsgY29sb3I6IGhzbCgyMjAsMTQlLDcxJSk7IGJhY2tncm91bmQtY29sb3I6ICMzNzNiNDE7IH0gLyogbWV0YS5zZXBhcmF0b3IgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC12YSB7IGNvbG9yOiBoc2woMjIwLDE0JSw3MSUpOyB9IC8qIHZhcmlhYmxlLmFzc2lnbm1lbnQgKi9cbi50aGVtZS1kYXJrIC5naXN0IC5wbC12cHUgeyBjb2xvcjogaHNsKDIyMCwxNCUsNzElKTsgfSAvKiB2YXJpYWJsZS5wYXJhbWV0ZXIudXJsICovXG4udGhlbWUtZGFyayAuZ2lzdCAucGwtZW50bCB7IGNvbG9yOiBoc2woMzU1LDY1JSw2NSUpOyB9IC8qIGVudGl0eS5uYW1lLnRhZy5sYWJlbCAqL1xuLnRoZW1lLWRhcmsgLmdpc3QgLnBsLXRva2VuLmFjdGl2ZSwgLnBsLXRva2VuOmhvdmVyIHsgYmFja2dyb3VuZDogaHNsKDIwNyw4MiUsNjYlKTsgY29sb3I6IGhzbCgwLCAwJSwgOCUpOyB9XG4udGhlbWUtZGFyayAuZ2lzdCAuYmxvYi1jb2RlLCAudGhlbWUtZGFyayAuZ2lzdCAuYmxvYi1jb2RlLWlubmVyIHsgY29sb3I6IGhzbCgyMjAsMTQlLDcxJSkgfVxuIiwiLkhlYWRlciB7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgICBib3gtc2hhZG93OiAwIDJweCA0cHggMCByZ2JhKDAsMCwwLDAuMDUpO1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ25hdkJhY2tncm91bmRDb2xvcicpO1xuICAgICAgICBib3JkZXItYm90dG9tOiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgIH1cbn1cblxuLkhlYWRlcl9fbmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiA0cmVtO1xuICAgIG1heC13aWR0aDogbm9uZTtcbn1cblxuLkNvbm5lY3Rpb25FcnJvciB7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cmVtO1xuICAgIGNvbG9yOiAjZWM1ODQwO1xufVxuXG4uSGVhZGVyX19sb2dvdHlwZSB7XG4gICAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgaGVpZ2h0OiAzN3B4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIC5pY29uLXN2ZyB7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgZmlsbDogdGhlbWVkKCdjb2xvckFjY2VudCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi1iZXRhe1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMzhweDtcbiAgICAgICAgbGVmdDogMTM2cHg7XG4gICAgfVxufVxuXG4uSGVhZGVyX19zb3J0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uSGVhZGVyX19zZWFyY2gge1xuICAgIEBpbmNsdWRlIE1RKEwpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgJi0tZGVza3RvcCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIEBpbmNsdWRlIE1RKEwpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uSGVhZGVyX19idXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBoZWlnaHQ6IDRyZW07XG4gICAgPiAuSGVhZGVyX191c2VyLXNpZ251cCB7XG4gICAgICAgID4gYSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1wcmltYXJ5O1xuICAgICAgICAgICAgJi5IZWFkZXJfX3NpZ251cC1saW5rIHtcbiAgICAgICAgICAgICAgICBAZXh0ZW5kIC5lLWJ0bjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNzVyZW0gMCAuNXJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5IZWFkZXJfX2xvZ2luLWxpbmsge1xuICAgICAgICAgICAgICAgIEBleHRlbmQgLmxpbms7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCAubGluay0tcHJpbWFyeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICA+IGEge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIEBpbmNsdWRlIE1RKFMpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIGRpdi5Mb2FkaW5nSW5kaWNhdG9yIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC43NXJlbTtcbiAgICB9XG59XG5cbi5IZWFkZXJfX3VzZXJwaWMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLlVzZXJwaWMge1xuICAgICAgICB3aWR0aDogMzZweDtcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xuXG4gICAgICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgdG9wOiAtMnB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uSGVhZGVyX19ub3RpZmljYXRpb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgdG9wOiAtMTBweDtcbiAgICByaWdodDogLTEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHJlZDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHotaW5kZXg6IDI7XG4gICAgPiBzcGFuIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cbiAgICAmLS1sb2FkaW5nIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuXG5zcGFuLkhlYWRlcl9faGFtYnVyZ2VyLnRvZ2dsZS1tZW51IHtcbiAgICB3aWR0aDogMXJlbTtcbiAgICBoZWlnaHQ6IDFyZW07XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyKCk7XG4gICAgLy8gVGhpcyBtYXJnaW4gaXMgdG8gcHJldmVudCB1c2VyIGF2YXRhciBvdmVybGFwcGluZyB0aGUgaGFtYnVyZ2VyIGluIHRoZSBoZWFkZXIuXG4gICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgQGluY2x1ZGUgTVEoUykge1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgIH1cbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjc1cmVtO1xuICAgIH1cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgN3B4IDAgdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5JyksIDAgMTRweCAwIHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgICAgICB9XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgN3B4IDAgdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKSwgMCAxNHB4IDAgdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmFubm91Y2VtZW50LWJhbm5lciB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogIzE3MUZDOTsgLy9Ob3RpY2UgQmx1ZVxuICAgIC8vIGJhY2tncm91bmQ6ICNmZmYzY2Q7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgLy8gY29sb3I6ICM4NTY0MDQ7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHRoZW1lZCgnYm9yZGVyTGlnaHQnKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICAgIC5jbG9zZS1idXR0b24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMnB4O1xuICAgICAgICByaWdodDogMHB4O1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuODUpO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogI2NjYztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmFubm91bmNlbWVudC1iYW5uZXJfX3RleHQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDQ0cHggMTBweCAxMHB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIlNvdXJjZSBTYW5zIFByb1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5cbi5hbm5vdW5jZW1lbnQtYmFubmVyX19saW5rIHtcbiAgICBjb2xvcjogI2ZhZmFmYSAhaW1wb3J0YW50O1xuICAgIC8vIGNvbG9yOiAjODU2NDA0ICFpbXBvcnRhbnQ7O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uSGVhZGVyX191c2VybWVudSAubG9naW4tcHJvdmlkZXItdG9vbHRpcCB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG4iLCIuTG9naW5Gb3JtIHtcbiAgbWF4LXdpZHRoOiAyOHJlbTtcbiAgbWFyZ2luOiAxcmVtIGF1dG8gMC41cmVtIGF1dG87XG4gIGxhYmVsIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICBmb3JtIHtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gIH1cbiAgLmJ1dHRvbnMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuLnBkZi1kb3dubG9hZCB7XG4gIG1hcmdpbi10b3A6IDFlbTtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICBidXR0b24ge1xuICAgIGNvbG9yOiAjMUE1MDk5O1xuICAgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuLnNpZ24tdXAge1xuICAuYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICAuYnV0dG9uLmhvbGxvdyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICBjb2xvcjogJGNvbG9yLWhpdmUtYmxhY2s7XG4gICAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE2cHgpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItaGl2ZS1yZWQtZGFyaztcbiAgICAgIGNvbG9yOiAkY29sb3ItaGl2ZS1yZWQtZGFyaztcbiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCAwIHJnYmEoMCwwLDAsMC4wNSk7XG4gICAgfVxuICB9XG4gIGVtIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cbiAgaHIge1xuICAgICAgbWFyZ2luOiAxLjc1cmVtIGF1dG8gMnJlbSBhdXRvO1xuICB9XG4gIHAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxufVxuXG4uTG9naW5Gb3JtX19zYXZlLWxvZ2luIHtcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xufVxuXG4uZGl2aWRlcntcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmRpdmlkZXI6OmJlZm9yZSwuZGl2aWRlcjo6YWZ0ZXJ7XG4gIGNvbnRlbnQ6ICcnO1xuICBmbGV4OiAxO1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogI2NjYztcbn1cbi5kaXZpZGVyOjpiZWZvcmV7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cbi5kaXZpZGVyOjphZnRlcntcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbiNidG4taGl2ZXNpZ25lciB7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNkMWQ1ZGE7XG4gIGJhY2tncm91bmQ6ICNkMWQ1ZGE7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI0E2QTZBNjtcbiAgfVxuXG4gIGltZyB7XG4gICAgd2lkdGg6IDE0MHB4O1xuICB9XG59XG4ucmV2ZWFsIC5sb2dpbi1hbHRlcm5hdGl2ZS1tZXRob2RzIGEuYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG59XG4ucmV2ZWFsIC5sb2dpbi1hbHRlcm5hdGl2ZS1tZXRob2RzIGEuYnV0dG9uIGltZyB7XG4gICAgaGVpZ2h0OiAyOHB4O1xufVxuLmhpdmVhdXRoX2luZm8ge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4uaGl2ZWF1dGhfaW5zdHJ1Y3Rpb25zLFxuLmhpdmVhdXRoX3FyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgICYuc2hvdyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cbiIsIiRtZW51LXdpZHRoOiAyNTBweDtcblxuLlNpZGVQYW5lbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gICZfX2hpZGUtc2lnbnVwIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAubWVudSA+IGxpLmxhc3Qge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLWRhcms7XG4gICAgY29sb3I6ICRjb2xvci10ZXh0LWdyYXktbGlnaHQ7XG4gIH1cblxuICA+IGRpdiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWhpdmUtYmxhY2stZGFya2VzdDtcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgIC5jbG9zZS1idXR0b24ge1xuICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICB9XG4gICAgLm1lbnUgPiBsaSB7XG4gICAgICA+IGEge1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjb2xvci1oaXZlLWJsYWNrO1xuICAgICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yLWhpdmUtYmxhY2stZGFya2VzdDtcbiAgICAgIH1cbiAgICAgID4gYTpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICAkY29sb3ItaGl2ZS1ibGFjaztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1oaXZlLXJlZDtcblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICBmaWxsOiAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHBhdGgge1xuICAgICAgICBmaWxsOiAkY29sb3ItdGV4dC1ncmF5LWxpZ2h0O1xuICAgICAgfVxuICAgICAgYS5tZW51LXNlY3Rpb24ge1xuICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQtZ3JheS1saWdodDtcbiAgICAgIH1cbiAgICAgIGEubWVudS1zZWN0aW9uOmhvdmVyLCBhLm1lbnUtc2VjdGlvbjpmb2N1cyB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1oaXZlLWJsYWNrLWRhcmtlc3Q7XG4gICAgICB9XG4gICAgfVxuICAgIHVsOm50aC1vZi10eXBlKG4rMykge1xuICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICB9XG5cbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6ICRtZW51LXdpZHRoO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMjUwbXMsIHRyYW5zZm9ybSBlYXNlIDI1MG1zO1xuXG4gICAgJi5sZWZ0IHtcbiAgICAgIGxlZnQ6IC0kbWVudS13aWR0aDtcbiAgICB9XG5cbiAgICAmLnZpc2libGUubGVmdCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCRtZW51LXdpZHRoLCAwLCAwKTtcbiAgICB9XG5cbiAgICAmLnJpZ2h0IHtcbiAgICAgIHJpZ2h0OiAtJG1lbnUtd2lkdGg7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIH1cblxuICAgICYudmlzaWJsZS5yaWdodCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0kbWVudS13aWR0aCwgMCwgMCk7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxuICAuSWNvbi5leHRsaW5rIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAzcHg7XG4gICAgbGVmdDogMnB4O1xuICB9XG59XG5cbi8qIFNtYWxsIG9ubHkgKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAuU2lkZVBhbmVsIHtcbiAgICBkaXYgdWw6bnRoLW9mLXR5cGUobisyKSB7XG4gICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgIH1cbiAgICA+IGRpdiA+IC5tZW51ID4gbGkgPiBhIHtcbiAgICAgIHBhZGRpbmc6IDAuM3JlbSAxcmVtO1xuICAgIH1cbn1cbn1cbiIsIi5TZXR0aW5ncyB7XG5cdC5idXR0b24ge1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHR0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSgxOHB4KTtcblx0XHRAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYnV0dG9uQmFja2dyb3VuZCcpO1xuXHRcdFx0Ym94LXNoYWRvdzogMHB4IDBweCAwcHggMCByZ2JhKDAsMCwwLDApLCA1cHggNXB4IDAgMCB0aGVtZWQoJ2J1dHRvbkJveFNoYWRvdycpO1xuXHRcdFx0Y29sb3I6IHRoZW1lZCgnYnV0dG9uVGV4dCcpO1xuXHRcdH1cblx0XHQmOmhvdmVyLCAmOmZvY3VzIHtcblx0XHRcdEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2J1dHRvbkJhY2tncm91bmRIb3ZlcicpO1xuXHRcdFx0XHRib3gtc2hhZG93OiAycHggMnB4IDJweCAwIHJnYmEoMCwwLDAsMC4xKSwgN3B4IDdweCAwIDAgdGhlbWVkKCdidXR0b25Cb3hTaGFkb3dIb3ZlcicpO1xuXHRcdFx0XHRjb2xvcjogdGhlbWVkKCdidXR0b25UZXh0SG92ZXInKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0Jjp2aXNpdGVkLCAmOmFjdGl2ZSB7XG5cdFx0XHRAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcblx0XHRcdFx0Y29sb3I6IHRoZW1lZCgnQnV0dG9uVGV4dCcpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uW2Rpc2FibGVkXSB7XG5cdCAgICBvcGFjaXR5OiAwLjI1O1xuXHQgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblx0ICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDAgcmdiYSgwLDAsMCwwKTtcblx0ICAgICY6aG92ZXIge1xuXHRcdFx0QGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYnV0dG9uQmFja2dyb3VuZCcpO1xuXHRcdFx0XHRib3gtc2hhZG93OiAwcHggMHB4IDBweCAwIHJnYmEoMCwwLDAsMCk7XG5cdFx0XHRcdGNvbG9yOiB0aGVtZWQoJ2J1dHRvblRleHQnKTtcblx0XHRcdH1cblx0ICAgIH1cblx0fVxuXHQuc3VjY2VzcywgLmVycm9yIHtcblx0XHR0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcblx0XHRwYWRkaW5nLWxlZnQ6IDhweDtcblx0fVxuXHQuc3VjY2VzcyB7XG5cdFx0QGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG5cdFx0XHRjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTtcblx0XHR9XG5cdH1cblx0cC5lcnJvciB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHRvcDogNHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjI7XG5cdH1cblx0ZGl2LmVycm9yIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdH1cbiAgICBsYWJlbCB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lIWltcG9ydGFudDtcbiAgICB9XG4gICAgaDQge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LXByaW1hcnk7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW0haW1wb3J0YW50O1xuICAgIH1cbiAgICBmb3JtIC5mb3JtX19maWVsZCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gICAgLmZvcm1fX2ZpZWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweFxuICAgIH1cbn1cbiIsIi5Vc2VyV2FsbGV0X19jbGFpbWJveCB7XG4gIG1hcmdpbjogMXJlbSAwO1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZsZXgtd3JhcDogd3JhcDtcblxuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdoaWdobGlnaHRCYWNrZ3JvdW5kQ29sb3InKTtcbiAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gIH1cblxuICAuYnV0dG9uIHtcbiAgICBAZXh0ZW5kIC5lLWJ0bjtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTRweCk7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG4iLCIucG9zdF9hZHZhbmNlZF9zZXR0aW5ncyB7XG4gICAgaDQge1xuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjI1MHJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5yZXZlYWwgLmhpdmVhdXRoLWJhbm5lciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxuLnJldmVhbCAuaGl2ZWF1dGgtaW5zdHJ1Y3Rpb25zIHtcbiAgICBwYWRkaW5nOiAxNXB4O1xufVxuIiwiLkV4dGVybmFsTGlua1dhcm5pbmcge1xuICBhLmJ1dHRvbi5ob2xsb3cub3Blbi1leHRlcm5hbC1saW5rIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGNvbG9yOiAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE2cHgpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCBwdXJwbGU7XG4gICAgICBjb2xvcjogJGNvbG9yLWhpdmUtcmVkLWRhcms7XG4gICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggMCByZ2JhKDAsMCwwLDAuMDUpO1xuICAgIH1cbiAgfVxufVxuIiwiLlBvc3RzTGlzdCB7XG4gIGNsZWFyOiByaWdodDtcbn1cblxuLmMtc2lkZWJhcl9fbW9kdWxlLkNvbW11bml0eVBhbmVNb2JpbGUge1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW0gMGVtO1xufVxuXG4uUG9zdHNMaXN0X19zdW1tYXJpZXMge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4uUG9zdHNJbmRleCB7XG4gIC5hcnRpY2xlc19faDEtLW5vLXdyYXAge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cblxuLlBvc3RzSW5kZXhfX3RvcGljcyB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XG59XG5cbi5Qb3N0c0luZGV4X190b3BpY3NfY29tcGFjdCB7XG4gIGZsb2F0OiByaWdodDtcbiAgd2lkdGg6IDE1cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTAuOHJlbTtcbiAgPiBzZWxlY3Qge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cblxuLyogU21hbGwgb25seSAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5Qb3N0c0luZGV4X19sZWZ0IHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG4gIC5Qb3N0c0luZGV4X190b3BpY3NfY29tcGFjdCB7XG4gICAgcGFkZGluZzogMCAwLjVyZW07XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLyogTWVkaXVtIGFuZCB1cCAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzkuOTRlbSkge1xuICAuUG9zdHNJbmRleF9fc3VtbWFyaWVzIHtcbiAgICA+IGxpOmZpcnN0LWNoaWxkIHtcbiAgICAgIC5Qb3N0U3VtbWFyeSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIC5jb250YWluZXIge1xuLy8gICB3aWR0aDogMTAwJTtcbi8vICAgcGFkZGluZy1ib3R0b206IDRlbTtcbi8vICAgbWluLWhlaWdodDogMTAwJTtcbi8vICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4vLyAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2JhY2tncm91bmRDb2xvcicpO1xuLy8gICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yJyk7XG4vLyAgICAgfVxuLy8gfVxuXG5cbi5jb250ZW50LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTIwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgLy8gcGFkZGluZy10b3A6IDY1cHg7XG4gIEBpbmNsdWRlIE1RKE0pIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAvLyBwYWRkaW5nLXRvcDogODlweDtcbiAgfVxufVxuXG4vLyBTaWRlYmFyIGNvbXBvbmVudHMgb24gdGhlIGhvbWVwYWdlXG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmMtc2lkZWJhciB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbGV4OiAwIDAgMzIwcHg7XG4gIGZvbnQtZmFtaWx5OiBcIlNvdXJjZSBTYW5zIFByb1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICZfX21vZHVsZSB7XG4gICAgcGFkZGluZzogMS41ZW0gMmVtO1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYm9yZGVyLXJhZGl1czogdGhlbWVkKCdyb3VuZGVkQ29ybmVycycpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdtb2R1bGVCYWNrZ3JvdW5kQ29sb3InKTtcbiAgICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXInKTtcbiAgICB9XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIGJveC1zaGFkb3c6IDBweCA1cHggMTBweCAwIHJnYmEoMCwwLDAsMCk7XG4gICAgdHJhbnNpdGlvbjogMC4ycyBib3gtc2hhZG93IGVhc2UtaW4tb3V0O1xuICAgIGFuaW1hdGlvbjogMXMgZWFzZS1vdXQgMHMgMSBmYWRlSW47XG4gICAgJjpob3ZlciB7XG4gICAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCA1cHggMTBweCAwIHJnYmEoMCwwLDAsMC4wMyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi0tbGVmdCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBvcmRlcjogMTtcbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgfVxuICB9XG4gICYtLXJpZ2h0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG9yZGVyOiAzO1xuICAgIEBpbmNsdWRlIE1RKEwpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gICAgfVxuICB9XG4gICZfX2xpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAubGkge1xuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuICAmX19oMyB7XG4gICAgLy8gQGV4dGVuZCAuaDM7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LXByaW1hcnk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE4cHgpO1xuICAgIG1hcmdpbjogMCAwIDE2cHggMDtcbiAgICAmLS1pbmxpbmUge1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbiAgfVxuICAmX19saW5rIHtcbiAgICBAZXh0ZW5kIC5saW5rO1xuICAgIEBleHRlbmQgLmxpbmstLXByaW1hcnk7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LXByaW1hcnk7XG4gICAgJi0tZW1waGFzaXMge1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgbWFyZ2luOiAxcmVtIDAgMDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbiAgfVxuICAmX19tb3JlLWxpbmsge1xuICAgIEBleHRlbmQgLmxpbms7XG4gICAgQGV4dGVuZCAubGluay0tYWNjZW50O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxLjNlbTtcbiAgfVxuICAmX19sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE0cHgpO1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgfVxuICAmX19zY29yZSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE3cHgpO1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gIH1cbn1cblxuLlBvc3RzSW5kZXgucm93IHtcbiAgbWF4LXdpZHRoOiA4NjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBAaW5jbHVkZSBNUShMKSB7XG4gICAgbWF4LXdpZHRoOiAxMjQwcHg7XG4gIH1cbn1cblxuLlBvc3RzSW5kZXgucm93LmxheW91dC1saXN0IHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBAaW5jbHVkZSBNUShMKSB7XG4gICAgbWF4LXdpZHRoOiAxNjAwcHg7XG4gIH1cbn1cblxuLmFydGljbGVzIHtcbiAgZm9udC1mYW1pbHk6IFwiU291cmNlIFNhbnMgUHJvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgcGFkZGluZzogMGVtIDFlbTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1vdXQ7XG4gIGJvcmRlcjogdHJhbnNwYXJlbnQ7XG4gIG1pbi13aWR0aDogMzAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgaDIge1xuICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICB9XG4gIEBpbmNsdWRlIE1RKE0pIHtcbiAgICBwYWRkaW5nOiAwZW0gMWVtO1xuICAgIG1pbi13aWR0aDogNTAwcHg7XG4gICAgbWF4LXdpZHRoOiA2NjRweDtcbiAgICBvcmRlcjogMjtcblxuICB9XG4gIEBpbmNsdWRlIE1RKEwpIHtcbiAgICBtaW4td2lkdGg6IDU1MHB4O1xuICAgIG1heC13aWR0aDogNjY0cHg7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyVHJhbnNwYXJlbnQnKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgndHJhbnNwYXJlbnQnKTtcbiAgICB9XG4gIH1cblxuICAmX19ociB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBib3JkZXItYm90dG9tOiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZfX2xheW91dC1zZWxlY3RvciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgQGluY2x1ZGUgTVEoRkwpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICAgIEBpbmNsdWRlIE1RKEZNKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICB9XG4gIH1cbiAgJl9faWNvbi0tbGF5b3V0IHtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG4gICZfX3N1bW1hcnkge1xuICAgIG1hcmdpbjogMDtcbiAgICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgICBib3JkZXI6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdtb2R1bGVCYWNrZ3JvdW5kQ29sb3InKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgbWFyZ2luOiAwIDAgNDBweDtcbiAgICAgIGJveC1zaGFkb3c6IDBweCA1cHggMTBweCAwIHJnYmEoMCwwLDAsMC4wKTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXInKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCA1cHggMTBweCAwIHJnYmEoMCwwLDAsMC4wMyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICZfX3Jlc3RlZW0taWNvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTFweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAycHg7XG4gIH1cbiAgJl9fc3VtbWFyeS1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiA2cHggMCA4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgIHBhZGRpbmc6IDEwcHggMTZweCA1cHg7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogdGhlbWVkKCdib3JkZXInKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi0tZm9vdGVyIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBib3JkZXItdG9wOiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgICAgICBib3JkZXItYm90dG9tOiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAmX19zdW1tYXJ5LWZvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTVweCk7XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBib3JkZXItdG9wOiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgICAgfVxuICAgIH1cbiAgICBhIHtcbiAgICAgIEBleHRlbmQgLmxpbms7XG4gICAgICBAZXh0ZW5kIC5saW5rLS1wcmltYXJ5O1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE1cHgpO1xuICAgIH1cbiAgfVxuICAmX19oZWFkZXIge1xuICAgIHBhZGRpbmctdG9wOjVweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbWluLWhlaWdodDogNTBweDtcbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG4gICAgJi1zZWxlY3Qge1xuICAgICAgc2VsZWN0IHtcbiAgICAgICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJl9faGVhZGVyLWNvbCB7XG4gICAgJi0tcmlnaHQge1xuICAgICAgb3JkZXI6IDE7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzcwcHgpIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG9yZGVyOiAyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmX19yZXN0ZWVtIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICAgIG1hcmdpbi10b3A6IDZweDtcblxuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogdGhlbWVkKCdib3JkZXInKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJl9fcmVzdGVlbS10ZXh0IHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTNweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgfVxuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNHB4KTtcbiAgICB9XG4gIH1cbiAgJl9fcmVzdGVlbS11c2VybmFtZSB7XG4gICAgQGV4dGVuZCAubGluay0tc2Vjb25kYXJ5O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuICAmX19pY29uLTEwMCB7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xcHg7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcblxuICB9XG4gICZfX2gxIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtcHJpbWFyeTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMThweCk7XG4gICAgbWFyZ2luOiAwO1xuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxOHB4KTtcbiAgICB9XG4gIH1cbiAgJl9faDIge1xuICAgIC8vIEBleHRlbmQgLmgyO1xuICAgIG1hcmdpbjogMDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTZweCk7XG4gICAgb3ZlcmZsb3cgOiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICAgIH1cbiAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxOHB4KTtcbiAgICB9XG4gIH1cbiAgJl9faDMge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgfVxuXG4gICZfX3RhZy1zZWxlY3RvciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHNlbGVjdC5Ub3BpY3Mge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgYm9yZGVyOiB0cmFuc3BhcmVudDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM5OTk7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAtNHB4O1xuICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgIH1cbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzcwcHgpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgTVEoTCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiAgJl9fcCB7XG4gICAgLy8gQGV4dGVuZCAucDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZy10b3A6IDRweDtcbiAgICBvdmVyZmxvdyA6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogMztcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gICZfX2xpbmsge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICB9XG4gIH1cbiAgLy8gJl9fcHJvZmlsZS1pbWcge1xuICAvLyAgIGRpc3BsYXk6IG5vbmU7XG4gIC8vICAgd2lkdGg6IDU0cHg7XG4gIC8vICAgaGVpZ2h0OiBhdXRvO1xuICAvLyB9XG4gICZfX3RleHQtY29udGVudCB7XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgcGFkZGluZzogMCAxLjJlbTtcbiAgICB9XG4gIH1cbiAgJl9fdGFncyB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE0cHgpO1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gIH1cbiAgJl9fdGFnLWxpbmsge1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNHB4KTtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgIH1cbiAgICBhIHtcbiAgICAgIEBleHRlbmQgLmxpbms7XG4gICAgICBAZXh0ZW5kIC5saW5rLS1zZWNvbmRhcnk7XG4gICAgfVxuICB9XG4gICZfX2ZsYWcge1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IC00cHg7XG4gICAgdG9wOiAwcHg7XG4gICAgcGFkZGluZzogMnB4O1xuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgdG9wOiAxMnB4O1xuICAgIH1cblxuICAgIC5pY29uLWZsYWctc3ZnIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBmaWxsOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgICAgfVxuICAgICAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgLmljb24tZmxhZy1zdmcge1xuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICBmaWxsOiB0aGVtZWQoJ3RleHRDb2xvckVycm9yJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJl9fY29udGVudC1ibG9jayB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICAmLS10ZXh0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMWVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2NvbnRlbnQtYmxvY2stLWltZyArICZfX2NvbnRlbnQtYmxvY2stLXRleHQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbiAgJl9fcmVzdGVlbSwgJl9fY29udGVudC1ibG9jay0tdGV4dCwgJl9fbWV0YWRhdGEge1xuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMS4xZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxLjFlbTtcbiAgICB9XG4gIH1cbn1cblxuLy8gLHVzZXIgbGF5b3V0LWJsb2NrXG5cbi51c2VyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICZfX2NvbCB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgJi0tcmlnaHQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAtMnB4O1xuICAgIH1cbiAgfVxuICAmX19saW5rIHtcbiAgICBAZXh0ZW5kIC5saW5rO1xuICAgICY6aG92ZXIge1xuICAgICAgLnVzZXJfX3VzZXJuYW1lIHtcbiAgICAgICAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gICZfX3Byb2ZpbGUtaW1nIHtcbiAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMnMgZWFzZS1vdXQ7XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgd2lkdGg6IDQ4cHggIWltcG9ydGFudDtcbiAgICAgIGhlaWdodDogNDhweCAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIH1cbiAgfVxuICAmX19uYW1lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgcGFkZGluZy1yaWdodDogMnB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuXG4gICAgYSB7XG4gICAgICBAZXh0ZW5kIC5saW5rO1xuICAgICAgQGV4dGVuZCAubGluay0tcHJpbWFyeTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE0cHgpO1xuICAgICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTZweCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICZfX3VzZXJuYW1lLCAmX19yZXB1dGF0aW9uIHtcbiAgICBAZXh0ZW5kIC5saW5rLS1zZWNvbmRhcnk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTRweCk7XG4gIH1cbn1cblxuXG5cbi50aW1lc3RhbXAge1xuICAmX19saW5rIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbiAgJl9fdGltZSB7XG4gICAgQGV4dGVuZCAubGluay0tc2Vjb25kYXJ5O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE0cHgpO1xuICB9XG59XG5cblxuXG4uaWNvbi1zdmcge1xuICB0cmFuc2l0aW9uOiAwLjJzIGFsbCAwLjA1cyBlYXNlLWluLW91dDtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgfVxuICAmLS1hY2NlbnQge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTtcbiAgICB9XG4gIH1cbiAgJi0tbGF5b3V0LWxpbmUxLCAmLS1sYXlvdXQtbGluZTIsICYtLWxheW91dC1saW5lMyB7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgQGluY2x1ZGUgb3BhY2l0eSgxKTtcbiAgICB0cmFuc2l0aW9uOiAwLjNzIGFsbCBlYXNlLWluLW91dDtcbiAgfVxuICAmLS1sYXlvdXQtbGluZTIge1xuICAgIHk6IDExcHg7XG4gIH1cbiAgJi0tbGF5b3V0LWxpbmUxIHtcbiAgICB5OiA2cHg7XG4gIH1cbiAgJi0tbGF5b3V0LWxpbmUzIHtcbiAgICB5OiAxNnB4O1xuICB9XG59XG5cblxuLmFydGljbGVzX19sYXlvdXQtc2VsZWN0b3Ige1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC5pY29uLXN2ZyB7XG4gICAgJi0tYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBmaWxsOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uYXJ0aWNsZXNfX2xheW91dC1zZWxlY3Rvcjpob3ZlciAuaWNvbi1zdmcge1xuICAmLS1hY2NlbnQge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgfVxuICB9XG59XG5cbi8vIENvbXByZXNzZWQgbGlzdCB2aWV3IENTU1xuXG5hI2NoYW5nZUxheW91dDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5sYXlvdXQtbGlzdCB7XG4gIEBpbmNsdWRlIE1RKE0pIHtcbiAgICB0cmFuc2l0aW9uOiAwLjNzIGFsbCBlYXNlLWluLW91dDtcblxuICAgIC5pY29uLXN2ZyB7XG4gICAgICAmLS1sYXlvdXQtbGluZTMge1xuICAgICAgICB5OiAyMnB4O1xuICAgICAgICBAaW5jbHVkZSBvcGFjaXR5KDApO1xuICAgICAgfVxuICAgICAgJi0tbGF5b3V0LWxpbmUxLCAmLS1sYXlvdXQtbGluZTIge1xuXG4gICAgICAgIGhlaWdodDogNHB4O1xuICAgICAgfVxuICAgICAgJi0tbGF5b3V0LWxpbmUyIHtcbiAgICAgICAgeTogMTRweDtcbiAgICAgIH1cbiAgICAgICYtLWxheW91dC1saW5lMSB7XG4gICAgICAgIHk6IDZweDtcbiAgICAgIH1cbiAgICB9XG4gICAgLmMtc2lkZWJhciB7XG4gICAgICAmLS1yaWdodCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIG1heC13aWR0aDogMzIwcHg7XG4gICAgICAgIG9yZGVyOiAzO1xuICAgICAgICBAaW5jbHVkZSBNUShMKSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLmFydGljbGVzIHtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIG1heC13aWR0aDogMTA1NnB4O1xuICAgICAgQGluY2x1ZGUgTVEoWEwpIHtcbiAgICAgICAgbWluLXdpZHRoOiA4NTBweDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlclRyYW5zcGFyZW50Jyk7XG4gICAgICB9XG4gICAgICAmX19ociB7XG4gICAgICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmX19zdW1tYXJ5IHtcbiAgICAgICAgYm9yZGVyOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICZfX2gyIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE1cHgpO1xuXG4gICAgICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDE7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgTVEoWEwpIHtcbiAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDE7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgICAgJl9fZmVhdHVyZS1pbWctY29udGFpbmVyIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgd2lkdGg6IDEzMHB4O1xuICAgICAgICBoZWlnaHQ6IDc3cHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgICAgJl9fZmVhdHVyZS1pbWcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOjEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpXG4gICAgICB9XG4gICAgICAmX19zdW1tYXJ5LWhlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDJweCAwO1xuICAgICAgICBib3JkZXI6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgICAgJl9fc3VtbWFyeS1mb290ZXIge1xuICAgICAgICBwYWRkaW5nOiAycHggMCA1cHg7XG4gICAgICAgIGJvcmRlcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDNweDtcbiAgICAgICAgLy8gQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIC8vICAgICBib3JkZXItYm90dG9tOiB0aGVtZWQoJ2JvcmRlckxpZ2h0Jyk7XG4gICAgICAgIC8vICAgfVxuICAgICAgfVxuICAgICAgJl9fcCB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNXB4KTtcbiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAxO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDBweDtcbiAgICAgIH1cbiAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogdG9wO1xuICAgICAgfVxuICAgICAgJl9fZm9vdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogdGhlbWVkKCdib3JkZXJMaWdodCcpO1xuICAgICAgICAgIG1hcmdpbi10b3A6IDAuMjVlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJl9fY29udGVudC1ibG9jayB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICYtLWltZyB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNHB4O1xuICAgICAgICB9XG4gICAgICAgICYtLXRleHQge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgbWluLXdpZHRoOiAzMDBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJl9fdGFncyB7XG4gICAgICAgIG1hcmdpbjogNHB4IDAgMDtcbiAgICAgIH1cbiAgICAgICZfX2ZsYWcge1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG4gICAgICAmX19yZXN0ZWVtIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgICAgJl9fcmVzdGVlbSwgJl9fY29udGVudC1ibG9jay0tdGV4dCwgJl9fbWV0YWRhdGEge1xuICAgICAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5hcnRpY2xlc19faHIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjNlbTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gLHVzZXIgbGF5b3V0LWxpc3RcbiAgICAudXNlciB7XG4gICAgICAmX19uYW1lIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE1cHgpO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBhIHtcbiAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTRweCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmxheW91dC1saXN0IC51c2VyID4gLnVzZXJfX2NvbCA+IC51c2VyX19saW5rID4gLlVzZXJwaWMge1xuICB3aWR0aDogMjRweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDI0cHggIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG59XG5cbi5sYXlvdXQtYmxvY2sgLlVzZXJwaWMge1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgQGluY2x1ZGUgTVEoTSkge1xuICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgfVxufVxuXG4uaWNvbi1zdmcge1xuICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgfVxuICAmLS1hY2NlbnQge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTtcbiAgICB9XG4gIH1cbiAgJi0tbGF5b3V0LWxpbmUxLCAmLS1sYXlvdXQtbGluZTIsICYtLWxheW91dC1saW5lMyB7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgQGluY2x1ZGUgb3BhY2l0eSgxKTtcbiAgICB0cmFuc2l0aW9uOiAwLjNzIGFsbCBlYXNlLWluLW91dDtcbiAgfVxuICAmLS1sYXlvdXQtbGluZTIge1xuICAgIHk6IDExcHg7XG4gIH1cbiAgJi0tbGF5b3V0LWxpbmUxIHtcbiAgICB5OiA2cHg7XG4gIH1cbiAgJi0tbGF5b3V0LWxpbmUzIHtcbiAgICB5OiAxNnB4O1xuICB9XG59XG5cbi5Qb3N0c0luZGV4IC5Wb3Rpbmcge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cblxuLmFydGljbGVzX19yZXN0ZWVtIC51c2VybmFtZSxcbi5hcnRpY2xlc19fY3Jvc3Nwb3N0IC51c2VybmFtZSxcbntcbiAgQGV4dGVuZCAubGluaztcbiAgQGV4dGVuZCAubGluay0tc2Vjb25kYXJ5O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cblxuLmFydGljbGVzX19yZXN0ZWVtLWljb24gcGF0aCxcbi5hcnRpY2xlc19fY3Jvc3Nwb3N0LWljb24gcGF0aCB7XG4gIGZpbGw6ICNjYWNhY2E7XG59XG4iLCJ1bC5Ub3BpY3Mge1xuICBtYXgtd2lkdGg6IDEwcmVtO1xuICA+IGxpIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIH1cbiAgPiBsaSA+IGEuYWN0aXZlIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG4gIC5zaG93LW1vcmUge1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiAkZGFyay1ncmF5O1xuICB9XG59XG5cbi5jLXNpZGViYXJfX2hlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG59XG4iLCIuUG9zdF9fY29tbWVudHNfc29ydF9vcmRlciB7XG4gIG1hcmdpbjogMC41cmVtIDA7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICB9XG4gIGZvbnQtc2l6ZTogOTQlO1xuICBzdmcgcG9seWdvbiB7XG4gICAgZmlsbDogJGRhcmstZ3JheTtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICB9XG4gIH1cbiAgPiBzcGFuIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxufVxuXG4uUG9zdF9fcHJvbW8ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1heC13aWR0aDogNTByZW07XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAxcmVtIDA7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJvcmRlci1ib3R0b206IHRoZW1lZCgnYm9yZGVyJyk7XG4gIH1cbiAgLmJ1dHRvbiB7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLlBvc3RfY29tbWVudHNfX2NvbnRlbnQge1xuICBtYXgtd2lkdGg6IDU0cmVtO1xuICBtYXJnaW46IDAgYXV0byAzLjVyZW07XG4gIGZvbnQtc2l6ZTogOTIlO1xufVxuXG4uUG9zdF9fcmVwbHlfcGFnaW5hdGlvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLlBvc3RfX3JlcGx5X3BhZ2VsaW5rIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcGFkZGluZzogMnB4IDRweDtcbiAgICBib3JkZXItcmFkaXVzOiAycHggNHB4O1xuXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ2J1dHRvblRleHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdidXR0b25CYWNrZ3JvdW5kJyk7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKCdidXR0b25UZXh0SG92ZXInKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYnV0dG9uQmFja2dyb3VuZEhvdmVyJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLmN1cnJlbnRfcGFnZSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYWxlcnRCYWNrZ3JvdW5kQ29sb3InKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLlBvc3RfcmVwbHlfcGFnZWxpbmtfc2VwYXJhdG9yIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG59XG5cbi5Qb3N0X19yZXBseV9sYWJlbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xufVxuIiwiLlByaXZhY3kge1xuXHRtYXgtd2lkdGg6IDgwMHB4O1xuXHRwYWRkaW5nOiAxLjVlbSAwIDNlbTtcbiAgLnNlY3Rpb24ge1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgIH0gICAgICBcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gIH1cbn1cbiIsIi8vIEZJWE1FIHRoaXMgbmVlZHMgZGVzaWduIHJldmlld1xuXG4uVG9zIHtcblx0bWF4LXdpZHRoOiA4MDBweDtcblx0cGFkZGluZzogMS41ZW0gMCAzZW07XG4gIC5jMS5oIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG59XG4iLCIuVXNlclByb2ZpbGUge1xuICAgIG1hcmdpbi10b3A6IC0xLjVyZW07XG5cbiAgICAuYXJ0aWNsZXMge1xuICAgICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICB9XG59XG5cbi5Vc2VyUHJvZmlsZV9fYmxhY2tsaXN0cyB7XG4gICAgLmFjY291bnRfd2FybiB7Zm9udC1zaXplOiAwLjhlbTt9XG4gICAgLlZlcnRpY2FsTWVudSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2JhY2tncm91bmRDb2xvcicpO1xuICAgICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgICAgICAgIH1cbiAgICB9XG59XG5cbi5Vc2VyUHJvZmlsZV9fcG9zdG1lbnUge1xuICAgIG1hcmdpbjogLTAuNXJlbSAwIDFyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogdGhlbWVkKCdib3JkZXInKTtcbiAgICB9XG4gICAgZGl2IHtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6IDAgMC41cmVtOyBtYXJnaW46IDAgMC41cmVtO31cbn1cblxuLlVzZXJQcm9maWxlX190YWJfY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xufVxuXG4uVXNlclByb2ZpbGVfX3RvcC1uYXYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmx1ZS1kYXJrO1xuICBwYWRkaW5nOiAwO1xuICAubWVudSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgLm1lbnUgPiBsaSA+IGEge1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2UtaW47XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCAwLCAwLCAwKTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC43cmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMC43cmVtO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1oaXZlLWJsYWNrO1xuICAgICAgfVxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3InKTtcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICAgIH1cbiAgfVxuXG4gIGRpdi5Vc2VyUHJvZmlsZV9fdG9wLW1lbnUge1xuICAgICAgbWF4LXdpZHRoOiA3MS40Mjg1N3JlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIC8vIE92ZXJyaWRlIGRlZmF1bHQgc3ZnIHZlcnRpY2FsIGFsaWdubWVudFxuICAgICAgLkljb24gPiBzdmcsIC5JY29uIHNwYW4uaWNvbiB7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZSFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIC5jb2x1bW5zLnNtYWxsLTkge1xuICAgICAgICAgIGZsZXg6IDEgMSAwcHg7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuICB9XG59XG5cbi5Vc2VyUHJvZmlsZV9fc2VjdGlvbi10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFRUU7XG59XG5cbi5Vc2VyUHJvZmlsZV9fYmFubmVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG4gICAgPiBkaXYuY29sdW1uIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWJhY2tncm91bmQtbGVzcy1kYXJrO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICAgICAgICB0ZXh0LXNoYWRvdzogMXB4IDFweCAycHggYmxhY2s7XG4gICAgICAgIC5idXR0b24ge3RleHQtc2hhZG93OiBub25lO31cblxuICAgICAgICBtaW4taGVpZ2h0OiAxNTVweDtcbiAgICB9XG4gICAgaDEge1xuICAgICAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiAxLjg0NTI0cmVtIWltcG9ydGFudDtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMTMwOTVyZW0haW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5JY29uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICAgIHN2ZyB7ZmlsbDogI2RlZjt9XG4gICAgfVxuXG4gICAgLlVzZXJQcm9maWxlX19yZXAge1xuICAgICAgICBmb250LXNpemU6IDgwJTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICB9XG5cbiAgICAuVXNlclByb2ZpbGVfX2J1dHRvbnMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTVweDtcbiAgICAgICAgcmlnaHQ6IDVweDtcblxuICAgICAgICBsYWJlbC5idXR0b24ge1xuICAgICAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuVXNlclByb2ZpbGVfX2JpbyB7XG4gICAgICAgIG1hcmdpbjogLTAuNHJlbSBhdXRvIDAuNXJlbTtcbiAgICAgICAgZm9udC1zaXplOiA5NSU7XG4gICAgICAgIG1heC13aWR0aDogNDIwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgfVxuICAgIC5Vc2VyUHJvZmlsZV9faW5mbyB7XG4gICAgICAgIGZvbnQtc2l6ZTogOTAlO1xuICAgIH1cblxuICAgIC5Vc2VyUHJvZmlsZV9fc3RhdHMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogOTAlO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXJVbmRlcmxpbmU7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHQgICAgfVxuXG4gICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwcHggMTBweDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0NDQztcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge2JvcmRlci1sZWZ0OiBub25lO31cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDUpIHtib3JkZXItbGVmdDogbm9uZTsgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0NDQ31cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG5cbiAgICBkaXYuVXNlclByb2ZpbGVfX3RvcC1uYXYgLm1lbnUgbGk+YSB7XG4gICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICB9XG5cbiAgICAuVXNlclByb2ZpbGVfX3RvcC1tZW51ID4gZGl2LmNvbHVtbnMge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLlVzZXJQcm9maWxlX19iYW5uZXIgLlVzZXJwaWMge1xuICAgICAgICB3aWR0aDogMzZweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDM2cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuVXNlclByb2ZpbGVfX2Jhbm5lciAuVXNlclByb2ZpbGVfX2J1dHRvbnMge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICAgICBsYWJlbC5idXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuVXNlclByb2ZpbGVfX2Jhbm5lciAuVXNlclByb2ZpbGVfX2J1dHRvbnNfbW9iaWxlIHtcbiAgICAgICAgcG9zaXRpb246IGluaGVyaXQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIFRlbXBvcmFyeSBmaXggdG8gcHJldmVudCBhbHRlcm5hdGUgVXNlciBQcm9maWxlIHBhZ2VzIG91dHNpZGUgdGhlIGJsb2cgZnJvbSB0YWtpbmcgdGhlIG5hcnJvdyBsYXlvdXQuXG5cbi5Vc2VyUHJvZmlsZSB7XG4gIC5hcnRpY2xlcyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0ZW07XG4gICAgJl9faDEge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMHB4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJl9fdGFiX2NvbnRlbnQubGF5b3V0LWJsb2NrLnNldHRpbmdzLCAmX190YWJfY29udGVudC5sYXlvdXQtYmxvY2suY3VyYXRpb24tcmV3YXJkcywgJl9fdGFiX2NvbnRlbnQubGF5b3V0LWJsb2NrLmF1dGhvci1yZXdhcmRzIHtcbiAgICAuYXJ0aWNsZXMge1xuICAgICAgICBwYWRkaW5nOiAxLjVlbSAxLjVlbTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDU2cHg7XG4gICAgICAgIEBpbmNsdWRlIE1RKFhMKSB7XG4gICAgICAgICAgbWluLXdpZHRoOiAxMDUwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gIH1cbiAgLnNldHRpbmdzIC5hcnRpY2xlc19fbGF5b3V0LXNlbGVjdG9yLCAuY3VyYXRpb24tcmV3YXJkcyAuYXJ0aWNsZXNfX2xheW91dC1zZWxlY3RvciwgLmF1dGhvci1yZXdhcmRzIC5hcnRpY2xlc19fbGF5b3V0LXNlbGVjdG9yICB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLlVzZXJQcm9maWxlX19Vc2VycGljIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLlVzZXJQcm9maWxlX19iYWRnZV9pbWFnZV9oaXZlYnV6emxldmVsIHtcbiAgICB3aWR0aDogMjVweDtcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgdG9wOiAzMHB4O1xuICAgIGxlZnQ6IDMwcHg7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMsIGhlaWdodCAwLjI1cywgdG9wIDAuMjVzLCBsZWZ0IDAuMjVzO1xuICAgIG1hcmdpbi1sZWZ0OiA3cHg7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgdG9wOiAyNnB4O1xuICAgICAgICBsZWZ0OiAyNnB4O1xuICAgIH1cbn1cbiIsIi5UYWdzSW5kZXgge1xuICBpbnB1dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtIWltcG9ydGFudDtcbiAgfVxuXG4gIHRhYmxlIHRyIHtcbiAgICB0aCBhIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRyYW5zaXRpb246IDAuM3MgYWxsIGVhc2UtaW4tb3V0O1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE3cHgpO1xuICAgIH1cbiAgICB0aCBhOmhvdmVyOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnXFwyMTkzJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgICB9XG5cbiAgICB0ZCwgdGgge1xuICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgJjpmaXJzdC1jaGlsZCB7dGV4dC1hbGlnbjogbGVmdDt9XG4gICAgfVxuICB9XG59XG5cbiIsIi5XZWxjb21lX19iYW5uZXIge1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAuV2VsY29tZV9fd2VsY29tZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvdHRvbTogNzAlO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBmb250LXNpemU6IDE2MCU7XG4gICAgcGFkZGluZy1sZWZ0OiAzOCU7XG4gIH1cblxuICAuV2VsY29tZV9fY2FwdGlvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRvcDogNjUlO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBmb250LXNpemU6IDExNSU7XG4gICAgcGFkZGluZy1sZWZ0OiA0NCU7XG4gICAgcGFkZGluZy1yaWdodDogMiU7XG4gIH1cblxufVxuXG4uSGVscENvbnRlbnQge1xuXG4gIGhlaWdodDogaW5oZXJpdDtcblxuICBwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgaDIge1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgfVxuICBoMyB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfSAgXG59XG4iLCIuQWJvdXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG5cbiAgLmgyLCAuQWJvdXRNaXNzaW9uX19oZWFkaW5nIHtcbiAgICBtYXJnaW46IDAgMCAxMnB4IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxuXG4gIGgzIHtcbiAgICBmb250LXNpemU6IDEuMTdlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gIH1cblxuICB1bCB7XG4gICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTtcbiAgfVxuXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIC5oMiwgLkFib3V0TWlzc2lvbl9faGVhZGluZyB7XG4gICAgICBsZXR0ZXItc3BhY2luZzogNHB4O1xuICAgICAgZm9udC1zaXplOiA0MnB4O1xuICAgICAgZm9udC1zaXplOiAyLjYyNXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgfVxuICB9XG5cbiAgLkFib3V0TWlzc2lvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMmVtIDA7XG4gIH1cblxuICAuQWJvdXRNaXNzaW9uX19zZWN0aW9uIHtcbiAgICBtYXgtd2lkdGg6IDE2MDBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWFyZ2luLWJvdHRvbTogMmVtO1xuICAgIHBhZGRpbmc6IDAgMjRweDtcbiAgfVxuXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIC5BYm91dE1pc3Npb25fX3NlY3Rpb24ge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG4gIH1cblxuICAuQWJvdXRNaXNzaW9uX19zZWN0aW9uLS12aXNpb24gLkFib3V0TWlzc2lvbl9fc2VjdGlvbl9fdGV4dC1jb250YWluZXIge1xuICAgIGNvbG9yOiBibHVlO1xuICAgIG9yZGVyOiAyO1xuICB9XG5cbiAgLkFib3V0TWlzc2lvbl9fdGV4dC1jb250YWluZXIsIC5BYm91dE1pc3Npb25fX2ltYWdlLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgfVxuXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIC5BYm91dE1pc3Npb25fX3RleHQtY29udGFpbmVyLCAuQWJvdXRNaXNzaW9uX19pbWFnZS1jb250YWluZXIge1xuICAgICAgcGFkZGluZzogMmVtIDAgMmVtIDQlO1xuICAgICAgd2lkdGg6IDQ2JTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAuQWJvdXRNaXNzaW9uX190ZXh0LWNvbnRhaW5lciwgLkFib3V0TWlzc2lvbl9faW1hZ2UtY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmc6IDJlbSAwIDJlbSA4JTtcbiAgICAgIHdpZHRoOiA0MiU7XG4gICAgfVxuICB9XG5cbiAgLkFib3V0TWlzc2lvbl9fdGV4dC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNjAwcHg7XG4gIH1cblxuICAuQWJvdXRNaXNzaW9uX19zcXVhcmUge1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgYmFja2dyb3VuZDogIzA2RDZBOTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgd2lkdGg6IDhweDtcbiAgICAgIGhlaWdodDogOHB4O1xuICAgICAgYmFja2dyb3VuZDogIzA2RDZBOTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gIH1cblxuICAuQWJvdXRNaXNzaW9uX190ZXh0IHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAuQWJvdXRNaXNzaW9uX19zdWJoZWFkaW5nIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgfVxuXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIC5BYm91dE1pc3Npb25fX3N1YmhlYWRpbmcge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgIH1cbiAgfVxuXG4gIC5BYm91dE1pc3Npb25fX3RleHQge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgfVxuXG4gIC5BYm91dE1pc3Npb25fX2xpc3Qge1xuICAgIG1hcmdpbjogNnB4IDA7XG4gIH1cblxuICAuQWJvdXRNaXNzaW9uX19saXN0LWl0ZW0ge1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgfVxuXG4gIC5BYm91dE1pc3Npb25fX2ltZyB7XG4gICAgYm94LXNoYWRvdzogMTBweCAxMnB4IDE0cHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gIH1cblxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAuQWJvdXRNaXNzaW9uX19zZWN0aW9uOm50aC1jaGlsZChldmVuKSAuQWJvdXRNaXNzaW9uX190ZXh0LWNvbnRhaW5lciB7XG4gICAgICBvcmRlcjogMjtcbiAgICB9XG4gIH1cblxuICAuQWJvdXQtY29udGVudC1jb250YWluZXIsIC5BYm91dFRlYW1fX2NvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cblxuICAuQWJvdXRNaXNzaW9uX19oZWFkaW5nLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE0cHg7XG4gICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgbWFyZ2luOiAwLjgzZW0gYXV0bztcbiAgICAuQWJvdXRNaXNzaW9uX19oZWFkaW5nIHtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG4gICAgfVxuICB9XG5cbiAgLkFib3V0TWlzc2lvbl9fc3F1YXJlLS0yIHtcbiAgICBtYXJnaW4tdG9wOiA2cmVtO1xuICB9XG59XG4iLCIuQ29tbXVuaXRpZXNJbmRleCB7XG4gICAgdGFibGUge21hcmdpbi10b3A6IDFlbTt9XG4gICAgdGFibGUgdGJvZHkge2JhY2tncm91bmQ6IHRyYW5zcGFyZW50O31cbiAgICB0YWJsZSB0Ym9keSB0ciB7YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDt9XG4gICAgdGFibGUgdGgge3RleHQtYWxpZ246IGxlZnQ7IGZvbnQtd2VpZ2h0OiBub3JtYWx9XG4gICAgdGFibGUgdGggYS50aXRsZSB7Zm9udC13ZWlnaHQ6IDQwMDsgZm9udC1zaXplOiAxLjNlbTt9XG4gICAgdGFibGUgdGQge3ZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IGNvbG9yOiAjNjY2OyB0ZXh0LWFsaWduOiBjZW50ZXI7fVxuICAgIHRhYmxlIHNtYWxsIHtjb2xvcjogIzk5OTsgZGlzcGxheTogYmxvY2s7fVxuICAgIHRhYmxlIC5idXR0b24ge21hcmdpbjogMH1cblxuICAgICYuYy1zaWRlYmFyX19tb2R1bGUge1xuICAgICAgICAvKiBMYXJnZXIgdGhhbiBNZWRpdW0gKi9cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxLjVlbSA0ZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0YWJsZSB0Ym9keSB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG5cbiAgICB0YWJsZSB0ciB7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGFibGUgdGgge1xuICAgICAgICB3aWR0aDogNjAwcHg7XG5cbiAgICAgICAgLyogTGFyZ2VyIHRoYW4gU21hbGwgKi9cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDAuMDYyNWVtKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2JTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRhYmxlIHRkIHtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgfVxufVxuXG4uQmFkZ2VzQWNoaWV2ZW1lbnRzIHtcbiAgICAuQmFkZ2VzQWNoaWV2ZW1lbnRzX3RhYnNfY29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZzogNXB4IDE1cHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC5CYWRnZXNBY2hpZXZlbWVudHNfX2JhZGdlX2ltYWdlIHtcbiAgICAgICAgbWFyZ2luOiA1cHg7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgd2lkdGg6IDY0cHg7XG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNDhweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yZWFjdC10YWJzX190YWItbGlzdCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLW9mZi13aGl0ZTtcbiAgICB9XG5cbiAgICAucmVhY3QtdGFic19fdGFiIHtcbiAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0LWRhcms7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cblxuICAgIC5yZWFjdC10YWJzX190YWItLXNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJsdWUtZGFyaztcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cblxuICAgIC5yZWFjdC10YWJzX190YWItcGFuZWwge1xuICAgICAgICBtaW4taGVpZ2h0OiA1OHB4O1xuICAgIH1cbn1cblxuLmFydGljbGVfc2VjdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbn1cbiIsIi5Db21tdW5pdHlSb2xlcyB7XG4gICAgdGFibGUgdGJvZHkge2JhY2tncm91bmQ6IHRyYW5zcGFyZW50O31cbiAgICB0YWJsZSB0Ym9keSB0ciB7YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDt9XG59XG5cbi5jb21tdW5pdHktdXNlci0tcm9sZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuYS5jb21tdW5pdHktLXN1YnNjcmliZTpob3ZlciB7XG4gICAgJi5ob2xsb3cge1xuICAgICAgICBzcGFuIHtkaXNwbGF5OiBub25lfVxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnTGVhdmUnO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLlJld2FyZHNfX2NoYXJ0IHtcblxuICAgIC5oZWFkIHtmb250LXNpemU6IDAuOGVtOyBtYXJnaW46IC02cHggMCA4cHg7fVxuXG4gICAgI3Jld2FyZF9jaGFydCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcblxuICAgICAgICAuYm94IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA1cHggcmdiYSgwLDAsMCwwLjI1KTtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAzcHggcmdiYSgwLDAsMCwxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuYm94LWEgLnRpdGxlIHtmb250LXN0eWxlOiBpdGFsaWN9XG4gICAgICAgICAgICBhLmJveC1pbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMnB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAudGl0bGUge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmRldGFpbCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEyMHB4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOmhvdmVyIC5kZXRhaWwge2Rpc3BsYXk6IGJsb2NrfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cbn1cbiIsIi5Vc2VyUHJvZmlsZSB7XG4gIG1hcmdpbi10b3A6IC0xLjVyZW07XG5cbiAgLmFydGljbGVzIHtcbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLlVzZXJQcm9maWxlX19ibGFja2xpc3RzIHtcbiAgLmFjY291bnRfd2FybiB7Zm9udC1zaXplOiAwLjhlbTt9XG4gIC5WZXJ0aWNhbE1lbnUge1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYmFja2dyb3VuZENvbG9yJyk7XG4gICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgICAgICB9XG4gIH1cbn1cblxuLlVzZXJQcm9maWxlX19wb3N0bWVudSB7XG4gIG1hcmdpbjogLTAuNXJlbSAwIDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYm9yZGVyLWJvdHRvbTogdGhlbWVkKCdib3JkZXInKTtcbiAgfVxuICBkaXYge2Rpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZzogMCAwLjVyZW07IG1hcmdpbjogMCAwLjVyZW07fVxufVxuXG4uVXNlclByb2ZpbGVfX3RhYl9jb250ZW50IHtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xufVxuXG4uVXNlclByb2ZpbGVfX3RvcC1uYXYge1xuYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJsdWUtZGFyaztcbnBhZGRpbmc6IDA7XG4ubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLm1lbnUgPiBsaSA+IGEge1xuICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlLWluO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoIDAsIDAsIDApO1xuICAgIHBhZGRpbmctbGVmdDogMC43cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuN3JlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWhpdmUtYmxhY2s7XG4gICAgfVxuICAgICYuYWN0aXZlIHtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3InKTtcbiAgICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG59XG5cbmRpdi5Vc2VyUHJvZmlsZV9fdG9wLW1lbnUge1xuICAgIG1heC13aWR0aDogNzEuNDI4NTdyZW07XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAvLyBPdmVycmlkZSBkZWZhdWx0IHN2ZyB2ZXJ0aWNhbCBhbGlnbm1lbnRcbiAgICAuSWNvbiA+IHN2ZywgLkljb24gc3Bhbi5pY29uIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZSFpbXBvcnRhbnQ7XG4gICAgfVxufVxufVxuXG4uVXNlclByb2ZpbGVfX3NlY3Rpb24tdGl0bGUge1xubWFyZ2luLWJvdHRvbTogMS41cmVtO1xucGFkZGluZy1ib3R0b206IDAuNXJlbTtcbmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRUVFO1xufVxuXG4uVXNlclByb2ZpbGVfX2Jhbm5lciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgYSB7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICB9XG4gID4gZGl2LmNvbHVtbiB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItYmFja2dyb3VuZC1sZXNzLWRhcms7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgICB0ZXh0LXNoYWRvdzogMXB4IDFweCAycHggYmxhY2s7XG4gICAgICAuYnV0dG9uIHt0ZXh0LXNoYWRvdzogbm9uZTt9XG5cbiAgICAgIG1pbi1oZWlnaHQ6IDE1NXB4O1xuICB9XG4gIGgxIHtcbiAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGZvbnQtc2l6ZTogMS44NDUyNHJlbSFpbXBvcnRhbnQ7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMTMwOTVyZW0haW1wb3J0YW50O1xuICAgICAgfVxuICB9XG4gIC5JY29uIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgICAgc3ZnIHtmaWxsOiAjZGVmO31cbiAgfVxuXG4gIC5Vc2VycGljIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICAuVXNlclByb2ZpbGVfX3JlcCB7XG4gICAgICBmb250LXNpemU6IDgwJTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gIH1cblxuICAuVXNlclByb2ZpbGVfX2J1dHRvbnMge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxNXB4O1xuICAgICAgcmlnaHQ6IDVweDtcblxuICAgICAgbGFiZWwuYnV0dG9uIHtcbiAgICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgfVxuICB9XG5cbiAgLlVzZXJQcm9maWxlX19iaW8ge1xuICAgICAgbWFyZ2luOiAtMC40cmVtIGF1dG8gMC41cmVtO1xuICAgICAgZm9udC1zaXplOiA5NSU7XG4gICAgICBtYXgtd2lkdGg6IDQyMHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgfVxuICAuVXNlclByb2ZpbGVfX2luZm8ge1xuICAgICAgZm9udC1zaXplOiA5MCU7XG4gIH1cblxuICAuVXNlclByb2ZpbGVfX3N0YXRzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgICBmb250LXNpemU6IDkwJTtcblxuICAgICAgYSB7XG4gICAgICAgICAgQGluY2x1ZGUgaG92ZXJVbmRlcmxpbmU7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAgID4gc3BhbiB7XG4gICAgICAgICAgcGFkZGluZzogMHB4IDEwcHg7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjQ0NDO1xuICAgICAgICAgICY6Zmlyc3QtY2hpbGQge2JvcmRlci1sZWZ0OiBub25lO31cbiAgICAgICAgICAmOm50aC1jaGlsZCg2KSB7Ym9yZGVyLWxlZnQ6IG5vbmU7fVxuICAgICAgfVxuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuXG4gIGRpdi5Vc2VyUHJvZmlsZV9fdG9wLW5hdiAubWVudSBsaT5hIHtcbiAgICAgIHBhZGRpbmc6IDhweDtcbiAgfVxuXG4gIC5Vc2VyUHJvZmlsZV9fdG9wLW1lbnUgPiBkaXYuY29sdW1ucyB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgLlVzZXJQcm9maWxlX19iYW5uZXIgLlVzZXJwaWMge1xuICAgICAgd2lkdGg6IDM2cHggIWltcG9ydGFudDtcbiAgICAgIGhlaWdodDogMzZweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLlVzZXJQcm9maWxlX19iYW5uZXIgLlVzZXJQcm9maWxlX19idXR0b25zIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgICBsYWJlbC5idXR0b24ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICB9XG5cbiAgLlVzZXJQcm9maWxlX19iYW5uZXIgLlVzZXJQcm9maWxlX19idXR0b25zX21vYmlsZSB7XG4gICAgICBwb3NpdGlvbjogaW5oZXJpdDtcbiAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICB9XG4gIH1cbn1cblxuLy8gVGVtcG9yYXJ5IGZpeCB0byBwcmV2ZW50IGFsdGVybmF0ZSBVc2VyIFByb2ZpbGUgcGFnZXMgb3V0c2lkZSB0aGUgYmxvZyBmcm9tIHRha2luZyB0aGUgbmFycm93IGxheW91dC5cblxuLlVzZXJQcm9maWxlIHtcbi5hcnRpY2xlcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogNGVtO1xuICAmX19oMSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDIwcHgpO1xuICAgIH1cbiAgfVxufVxuJl9fdGFiX2NvbnRlbnQubGF5b3V0LWJsb2NrLnNldHRpbmdzLCAmX190YWJfY29udGVudC5sYXlvdXQtYmxvY2suY3VyYXRpb24tcmV3YXJkcywgJl9fdGFiX2NvbnRlbnQubGF5b3V0LWJsb2NrLmF1dGhvci1yZXdhcmRzIHtcbiAgLmFydGljbGVzIHtcbiAgICAgIHBhZGRpbmc6IDEuNWVtIDEuNWVtO1xuICAgICAgbWF4LXdpZHRoOiAxMDU2cHg7XG4gICAgICBAaW5jbHVkZSBNUShYTCkge1xuICAgICAgICBtaW4td2lkdGg6IDEwNTBweDtcbiAgICAgIH1cbiAgfVxufVxuLnNldHRpbmdzIC5hcnRpY2xlc19fbGF5b3V0LXNlbGVjdG9yLCAuY3VyYXRpb24tcmV3YXJkcyAuYXJ0aWNsZXNfX2xheW91dC1zZWxlY3RvciwgLmF1dGhvci1yZXdhcmRzIC5hcnRpY2xlc19fbGF5b3V0LXNlbGVjdG9yICB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5cbiIsIi5yZWFjdC10YWJzIHtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnJlYWN0LXRhYnNfX3RhYi1saXN0IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhYWE7XG4gIG1hcmdpbjogMCAwIDEwcHg7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5yZWFjdC10YWJzX190YWIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3R0b206IC0xcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnJlYWN0LXRhYnNfX3RhYi0tc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNhYWE7XG4gIGNvbG9yOiBibGFjaztcbiAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7XG59XG5cbi5yZWFjdC10YWJzX190YWItLWRpc2FibGVkIHtcbiAgY29sb3I6IEdyYXlUZXh0O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5yZWFjdC10YWJzX190YWI6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgNXB4IGhzbCgyMDgsIDk5JSwgNTAlKTtcbiAgYm9yZGVyLWNvbG9yOiBoc2woMjA4LCA5OSUsIDUwJSk7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5yZWFjdC10YWJzX190YWI6Zm9jdXM6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogNXB4O1xuICBsZWZ0OiAtNHB4O1xuICByaWdodDogLTRweDtcbiAgYm90dG9tOiAtNXB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuXG4ucmVhY3QtdGFic19fdGFiLXBhbmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnJlYWN0LXRhYnNfX3RhYi1wYW5lbC0tc2VsZWN0ZWQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUNBQTs7Ozs7QUFBQTtBQzZDQTtBQUdBO0FBQUE7QUFHQTs7Ozs7QUFBQTtBQU9BO0FBQ0E7QUFBQTtBQVFBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBRjdDQTtBQUNBO0FFaURBO0FBQUE7QUFHQTs7QUFBQTtBQUlBO0FBQ0E7QUZqREE7QUFDQTtBRW1EQTs7QUFBQTtBQUlBOzs7Ozs7QUFNQTtBRmxEQTtBQUNBO0FFb0RBOzs7QUFBQTtBQUtBO0FDOUVBO0FEeUZBO0FGNURBO0FBQ0E7QUVpR0E7QUFBQTtBQXdDQTs7QUFBQTtBQUlBOztBQUVBO0FGdElBO0FBQ0E7QUV3SUE7O0FBQUE7QUFJQTtBQUtBO0FGM0lBO0FBQ0E7QUU4SUE7OztBQUFBO0FBS0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUYxSUE7QUFDQTtBRTRJQTs7QUFBQTtBQUlBO0FBQ0E7QUYzSUE7QUFDQTtBRXdKQTs7O0FBQUE7QUFLQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FGckpBO0FBQ0E7QUV5SkE7QUFBQTtBQUdBOzs7QUFBQTtBQUtBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUZ2SkE7QUFDQTtBRXlKQTs7O0FBQUE7QUFLQTs7QUFFQTtBRnhKQTtBQUNBO0FFNEpBO0FBQUE7QUFHQTs7O0FBQUE7QUFLQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FGekpBO0FBQ0E7QUUySkE7O0FBQUE7QUFJQTs7QUFFQTtBRjFKQTtBQUNBO0FFNEpBOztBQUFBO0FBSUE7O0FBRUE7QUYzSkE7QUFDQTtBRTZKQTs7O0FBQUE7QUFLQTs7O0FBR0E7QUFBQTtBQUNBO0FBQUE7QUYxSkE7QUFDQTtBRTRKQTs7QUFBQTtBQUlBO0FBQ0E7QUYzSkE7QUFDQTtBRTZKQTs7QUFBQTtBQUlBO0FBQ0E7QUFDQTtBRjVKQTtBQUNBO0FFOEpBOztBQUFBO0FBSUE7QUFDQTtBRjdKQTtBQUNBO0FFK0pBOzs7QUFBQTtBQUtBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FGOUpBO0FBQ0E7QUVnS0E7QUFDQTtBRjlKQTtBQUNBO0FFZ0tBO0FBQ0E7QUY5SkE7QUFDQTtBRWtLQTtBQUFBO0FBR0E7O0FBQUE7QUFJQTs7QUFFQTtBRmxLQTtBQUNBO0FFb0tBOztBQUFBO0FBSUE7QUFDQTtBQUNBO0FGbktBO0FBQ0E7QUVxS0E7O0FBQUE7QUFJQTtBQUNBO0FGcEtBO0FBQ0E7QUVzS0E7O0FBQUE7QUFJQTtBQUNBO0FGcktBO0FBQ0E7QUV5S0E7QUFBQTtBQUdBOzs7QUFBQTtBQUtBOzs7OztBQUtBO0FBQUE7QUFDQTtBQUFBO0FBS0E7QUFBQTtBQUVBO0FBQUE7QUYxS0E7QUFDQTtBRTRLQTs7QUFBQTtBQUlBO0FBQ0E7QUYzS0E7QUFDQTtBRTZLQTs7O0FBQUE7QUFLQTs7QUFDQTtBQUNBO0FGM0tBO0FBQ0E7QUU2S0E7Ozs7QUFBQTtBQU1BOzs7O0FBSUE7QUFBQTtBRjNLQTtBQUNBO0FFNktBOzs7O0FBS0E7O0FBQUE7QUFTQTs7QUFBQTtBRmhMQTtBRTJLQTs7OztBQUNBO0FBQ0E7QUZ0S0E7QUU2S0E7Ozs7QUFDQTtBRnhLQTtBQUNBO0FFMktBOztBQUFBO0FBSUE7QUFDQTtBRjFLQTtBQUNBO0FFNEtBOzs7QUFBQTtBQUtBOztBQUVBO0FBQUE7QUFDQTtBQUFBO0FGektBO0FBQ0E7QUUyS0E7O0FBQUE7QUFJQTs7QUFFQTtBRjFLQTtBQUNBO0FFNEtBOzs7QUFBQTtBQUtBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFFQTs7QUFBQTtBRnhLQTtBRTRLQTtBQUVBO0FGM0tBO0FBQ0E7QUU4S0E7OztBQUFBO0FBS0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBRjNLQTtBQUNBO0FFNktBOztBQUFBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUY1S0E7QUFDQTtBRThLQTs7Ozs7QUFBQTtBQU9BO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FGdktBO0FBQ0E7QUV5S0E7OztBQUFBO0FBS0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBRnRLQTtBQUNBO0FFd0tBOztBQUFBO0FBSUE7QUFDQTtBRnZLQTtBQUNBO0FFMktBO0FBQUE7QUFHQTs7QUFBQTtBQUlBO0FBQ0E7QUYzS0E7QUFDQTtBRTZLQTs7QUFBQTtBQUlBO0FBQ0E7QUY1S0E7QUFDQTtBRThLQTs7QUFBQTtBQUlBO0FBQ0E7QUY3S0E7QUFDQTtBRXFNQTtBQUFBO0FBR0E7O0FBQUE7QUFJQTtBQUNBO0FGck1BO0FBQ0E7QUV1TUE7O0FBQUE7QUFJQTtBQUNBO0FGdE1BO0FBQ0E7QUUwTUE7QUFBQTtBQUdBOztBQUFBO0FBSUE7QUFDQTtBRjFNQTtBQUNBO0FJeFZBO0FBQ0E7QUowVkE7QUFDQTtBSXhWQTtBQUNBO0FBQ0E7QUowVkE7QUFDQTtBSXZWQTs7O0FBR0E7QUp5VkE7QUFDQTtBSXRWQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBSm9WQTtBQUNBO0FJalZBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBSmdWQTtBQUNBO0FJN1VBO0FBQ0E7QUFDQTtBQUNBO0FKK1VBO0FBQ0E7QUk1VUE7QUFDQTtBQUNBO0FBQ0E7QUo4VUE7QUFDQTtBSXhVQTs7Ozs7O0FBR0E7QUo2VUE7QUFDQTtBSXpVQTtBQUdBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUp1VUE7QUt0V0E7QUFDQTtBTHdXQTtBQUNBO0FJdlVBO0FBQ0E7QUp5VUE7QUFDQTtBSXRVQTs7Ozs7QUFLQTtBSndVQTtBQUNBO0FJclVBO0FBQ0E7QUp1VUE7QUFDQTtBSXJVQTtBQUNBO0FKdVVBO0FBQ0E7QU03YUE7QUNqQ0E7QUQ1REE7QUFDQTtBQUlBO0FBQ0E7QU4yZ0JBO0FNaGJBO0FDbERBO0FBQ0E7QVBxZUE7QVEvWkE7QUZyQkE7QUNsREE7QUFDQTtBUDBlQTtBQUNBO0FRcmFBO0FGckJBO0FDbERBO0FBQ0E7QVBnZkE7QUFDQTtBTTdiQTtBQUNBO0FBQ0E7QU4rYkE7QU0xYkE7QUMvQ0E7QVA0ZUE7QU0xYkE7QUFDQTtBQUNBO0FONGJBO0FNeGJBO0FDeERBO0FQbWZBO0FNdGJBO0FHeElBO0FBQ0E7QVRpa0JBO0FNbmJBO0FBRUE7QUFDQTtBTm9iQTtBQUNBO0FNaGJBO0FBdERBO0FHakdBO0FBQ0E7QUhpRUE7QU4yZ0JBO0FReGNBO0FGa0JBO0FHdkpBO0FBQ0E7QVRpbEJBO0FBQ0E7QUFDQTtBTXZiQTtBQUNBO0FBQ0E7QU55YkE7QUFDQTtBTXRiQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FOd2JBO0FBQ0E7QU1yYkE7QUl6S0E7QVZpbUJBO0FBQ0E7QU1yYkE7QUFDQTtBTnViQTtBQUNBO0FNcmJBO0FBQ0E7QU51YkE7QUFDQTtBTXJiQTtBQUNBO0FOdWJBO0FBQ0E7QU1wYkE7QUkvSEE7QVZzakJBO0FBQ0E7QU14YkE7QUkvSEE7QVYwakJBO0FBQ0E7QU01YkE7QUkvSEE7QVY4akJBO0FBQ0E7QU1oY0E7QUkvSEE7QVZra0JBO0FBQ0E7QU01YkE7QUFDQTtBQUNBO0FOOGJBO0FBQ0E7QU16YkE7QUt4TEE7QVhvbkJBO0FBQ0E7QU1yY0E7QUFDQTtBQUNBO0FOdWNBO0FBQ0E7QU1sY0E7QUt4TEE7QVg2bkJBO0FBQ0E7QU05Y0E7QUFDQTtBQUNBO0FOZ2RBO0FBQ0E7QU0zY0E7QUt4TEE7QVhzb0JBO0FBQ0E7QU12ZEE7QUFDQTtBQUNBO0FOeWRBO0FBQ0E7QU1wZEE7QUt4TEE7QVgrb0JBO0FBQ0E7QU1oZUE7QUFDQTtBQUNBO0FOa2VBO0FBQ0E7QU03ZEE7QUt4TEE7QVh3cEJBO0FBQ0E7QU16ZUE7QUFDQTtBQUNBO0FOMmVBO0FBQ0E7QU10ZUE7QUt4TEE7QVhpcUJBO0FBQ0E7QU1sZkE7QUFDQTtBQUNBO0FOb2ZBO0FBQ0E7QU0vZUE7QUt4TEE7QVgwcUJBO0FBQ0E7QU0zZkE7QUFDQTtBQUNBO0FONmZBO0FBQ0E7QU14ZkE7QUt4TEE7QVhtckJBO0FBQ0E7QU1wZ0JBO0FBQ0E7QUFDQTtBTnNnQkE7QUFDQTtBTWpnQkE7QUt4TEE7QVg0ckJBO0FBQ0E7QU03Z0JBO0FBQ0E7QUFDQTtBTitnQkE7QUFDQTtBTTFnQkE7QUt4TEE7QVhxc0JBO0FBQ0E7QU10aEJBO0FBQ0E7QUFDQTtBTndoQkE7QUFDQTtBTW5oQkE7QUt4TEE7QVg4c0JBO0FBQ0E7QU0vaEJBO0FBQ0E7QUFDQTtBTmlpQkE7QUFDQTtBTTVoQkE7QUt4TEE7QVh1dEJBO0FBQ0E7QU16aEJBO0FJaEtBO0FWNHJCQTtBQUNBO0FNN2hCQTtBSWhLQTtBVmdzQkE7QUFDQTtBTWppQkE7QUloS0E7QVZvc0JBO0FBQ0E7QU1yaUJBO0FJaEtBO0FWd3NCQTtBQUNBO0FNemlCQTtBSWhLQTtBVjRzQkE7QUFDQTtBTTdpQkE7QUloS0E7QVZndEJBO0FBQ0E7QU0xaUJBO0FBeElBO0FOcXJCQTtBTW5yQkE7QUFHQTtBQUNBO0FObXJCQTtBQUNBO0FNbGpCQTtBQXhJQTtBTjZyQkE7QU0zckJBO0FBR0E7QUFDQTtBTjJyQkE7QUFDQTtBTTFqQkE7QUF4SUE7QU5xc0JBO0FNbnNCQTtBQUdBO0FBQ0E7QU5tc0JBO0FBQ0E7QU1sa0JBO0FBeElBO0FONnNCQTtBTTNzQkE7QUFHQTtBQUNBO0FOMnNCQTtBQUNBO0FNMWtCQTtBQXhJQTtBTnF0QkE7QU1udEJBO0FBR0E7QUFDQTtBTm10QkE7QUFDQTtBTWxsQkE7QUF4SUE7QU42dEJBO0FNM3RCQTtBQUdBO0FBQ0E7QU4ydEJBO0FBQ0E7QU0xbEJBO0FBeElBO0FOcXVCQTtBTW51QkE7QUFHQTtBQUNBO0FObXVCQTtBQUNBO0FNbG1CQTtBQXhJQTtBTjZ1QkE7QU0zdUJBO0FBR0E7QUFDQTtBTjJ1QkE7QUFDQTtBTTFqQkE7QUcxUUE7QUFDQTtBVHUwQkE7QUFDQTtBTTNqQkE7QUc5UUE7QUFDQTtBVDQwQkE7QUFDQTtBUXpzQkE7QUYrREE7QUFDQTtBQUNBO0FONm9CQTtBQUNBO0FNeG9CQTtBS3hMQTtBWG0wQkE7QUFDQTtBTXBwQkE7QUFDQTtBQUNBO0FOc3BCQTtBQUNBO0FNanBCQTtBS3hMQTtBWDQwQkE7QUFDQTtBTTdwQkE7QUFDQTtBQUNBO0FOK3BCQTtBQUNBO0FNMXBCQTtBS3hMQTtBWHExQkE7QUFDQTtBTXRxQkE7QUFDQTtBQUNBO0FOd3FCQTtBQUNBO0FNbnFCQTtBS3hMQTtBWDgxQkE7QUFDQTtBTS9xQkE7QUFDQTtBQUNBO0FOaXJCQTtBQUNBO0FNNXFCQTtBS3hMQTtBWHUyQkE7QUFDQTtBTXhyQkE7QUFDQTtBQUNBO0FOMHJCQTtBQUNBO0FNcnJCQTtBS3hMQTtBWGczQkE7QUFDQTtBTWpzQkE7QUFDQTtBQUNBO0FObXNCQTtBQUNBO0FNOXJCQTtBS3hMQTtBWHkzQkE7QUFDQTtBTTFzQkE7QUFDQTtBQUNBO0FONHNCQTtBQUNBO0FNdnNCQTtBS3hMQTtBWGs0QkE7QUFDQTtBTW50QkE7QUFDQTtBQUNBO0FOcXRCQTtBQUNBO0FNaHRCQTtBS3hMQTtBWDI0QkE7QUFDQTtBTTV0QkE7QUFDQTtBQUNBO0FOOHRCQTtBQUNBO0FNenRCQTtBS3hMQTtBWG81QkE7QUFDQTtBTXJ1QkE7QUFDQTtBQUNBO0FOdXVCQTtBQUNBO0FNbHVCQTtBS3hMQTtBWDY1QkE7QUFDQTtBTTl1QkE7QUFDQTtBQUNBO0FOZ3ZCQTtBQUNBO0FNM3VCQTtBS3hMQTtBWHM2QkE7QUFDQTtBTXh1QkE7QUloS0E7QVYyNEJBO0FBQ0E7QU01dUJBO0FJaEtBO0FWKzRCQTtBQUNBO0FNaHZCQTtBSWhLQTtBVm01QkE7QUFDQTtBTXB2QkE7QUloS0E7QVZ1NUJBO0FBQ0E7QU14dkJBO0FJaEtBO0FWMjVCQTtBQUNBO0FNNXZCQTtBSWhLQTtBVis1QkE7QUFDQTtBTXp2QkE7QUF4SUE7QU5vNEJBO0FNbDRCQTtBQUdBO0FBQ0E7QU5rNEJBO0FBQ0E7QU1qd0JBO0FBeElBO0FONDRCQTtBTTE0QkE7QUFHQTtBQUNBO0FOMDRCQTtBQUNBO0FNendCQTtBQXhJQTtBTm81QkE7QU1sNUJBO0FBR0E7QUFDQTtBTms1QkE7QUFDQTtBTWp4QkE7QUF4SUE7QU40NUJBO0FNMTVCQTtBQUdBO0FBQ0E7QU4wNUJBO0FBQ0E7QU16eEJBO0FBeElBO0FObzZCQTtBTWw2QkE7QUFHQTtBQUNBO0FOazZCQTtBQUNBO0FNanlCQTtBQXhJQTtBTjQ2QkE7QU0xNkJBO0FBR0E7QUFDQTtBTjA2QkE7QUFDQTtBTXp5QkE7QUF4SUE7QU5vN0JBO0FNbDdCQTtBQUdBO0FBQ0E7QU5rN0JBO0FBQ0E7QU1qekJBO0FBeElBO0FONDdCQTtBTTE3QkE7QUFHQTtBQUNBO0FOMDdCQTtBQUNBO0FROTRCQTtBRjZGQTtBQUNBO0FOb3pCQTtBQUNBO0FRbjVCQTtBRm9HQTtBSTVLQTtBVis5QkE7QUFDQTtBUXg1QkE7QUZvR0E7QUk1S0E7QVZvK0JBO0FBQ0E7QVE3NUJBO0FGb0dBO0FJNUtBO0FWeStCQTtBQUNBO0FRbDZCQTtBRm9HQTtBSTVLQTtBVjgrQkE7QUFDQTtBUXY2QkE7QUZ5R0E7QUFDQTtBTmkwQkE7QUFDQTtBUTU2QkE7QUY2R0E7QUFDQTtBTmswQkE7QUFDQTtBUWo3QkE7QUZpSEE7QUFDQTtBTm0wQkE7QUFDQTtBTTl6QkE7QUFDQTtBTmcwQkE7QVF6N0JBO0FGd0hBO0FBSUE7QU5pMEJBO0FBQ0E7QUFDQTtBUS83QkE7QUZxSUE7QUcxUUE7QUFDQTtBVHdrQ0E7QUFDQTtBUXI4QkE7QUZ5SUE7QUc5UUE7QUFDQTtBVDhrQ0E7QUFDQTtBUTM4QkE7QUYrREE7QUFDQTtBQUNBO0FOKzRCQTtBQUNBO0FNMTRCQTtBS3hMQTtBWHFrQ0E7QUFDQTtBTXQ1QkE7QUFDQTtBQUNBO0FOdzVCQTtBQUNBO0FNbjVCQTtBS3hMQTtBWDhrQ0E7QUFDQTtBTS81QkE7QUFDQTtBQUNBO0FOaTZCQTtBQUNBO0FNNTVCQTtBS3hMQTtBWHVsQ0E7QUFDQTtBTXg2QkE7QUFDQTtBQUNBO0FOMDZCQTtBQUNBO0FNcjZCQTtBS3hMQTtBWGdtQ0E7QUFDQTtBTWo3QkE7QUFDQTtBQUNBO0FObTdCQTtBQUNBO0FNOTZCQTtBS3hMQTtBWHltQ0E7QUFDQTtBTTE3QkE7QUFDQTtBQUNBO0FONDdCQTtBQUNBO0FNdjdCQTtBS3hMQTtBWGtuQ0E7QUFDQTtBTW44QkE7QUFDQTtBQUNBO0FOcThCQTtBQUNBO0FNaDhCQTtBS3hMQTtBWDJuQ0E7QUFDQTtBTTU4QkE7QUFDQTtBQUNBO0FOODhCQTtBQUNBO0FNejhCQTtBS3hMQTtBWG9vQ0E7QUFDQTtBTXI5QkE7QUFDQTtBQUNBO0FOdTlCQTtBQUNBO0FNbDlCQTtBS3hMQTtBWDZvQ0E7QUFDQTtBTTk5QkE7QUFDQTtBQUNBO0FOZytCQTtBQUNBO0FNMzlCQTtBS3hMQTtBWHNwQ0E7QUFDQTtBTXYrQkE7QUFDQTtBQUNBO0FOeStCQTtBQUNBO0FNcCtCQTtBS3hMQTtBWCtwQ0E7QUFDQTtBTWgvQkE7QUFDQTtBQUNBO0FOay9CQTtBQUNBO0FNNytCQTtBS3hMQTtBWHdxQ0E7QUFDQTtBTTErQkE7QUloS0E7QVY2b0NBO0FBQ0E7QU05K0JBO0FJaEtBO0FWaXBDQTtBQUNBO0FNbC9CQTtBSWhLQTtBVnFwQ0E7QUFDQTtBTXQvQkE7QUloS0E7QVZ5cENBO0FBQ0E7QU0xL0JBO0FJaEtBO0FWNnBDQTtBQUNBO0FNOS9CQTtBSWhLQTtBVmlxQ0E7QUFDQTtBTTMvQkE7QUF4SUE7QU5zb0NBO0FNcG9DQTtBQUdBO0FBQ0E7QU5vb0NBO0FBQ0E7QU1uZ0NBO0FBeElBO0FOOG9DQTtBTTVvQ0E7QUFHQTtBQUNBO0FONG9DQTtBQUNBO0FNM2dDQTtBQXhJQTtBTnNwQ0E7QU1wcENBO0FBR0E7QUFDQTtBTm9wQ0E7QUFDQTtBTW5oQ0E7QUF4SUE7QU44cENBO0FNNXBDQTtBQUdBO0FBQ0E7QU40cENBO0FBQ0E7QU0zaENBO0FBeElBO0FOc3FDQTtBTXBxQ0E7QUFHQTtBQUNBO0FOb3FDQTtBQUNBO0FNbmlDQTtBQXhJQTtBTjhxQ0E7QU01cUNBO0FBR0E7QUFDQTtBTjRxQ0E7QUFDQTtBTTNpQ0E7QUF4SUE7QU5zckNBO0FNcHJDQTtBQUdBO0FBQ0E7QU5vckNBO0FBQ0E7QU1uakNBO0FBeElBO0FOOHJDQTtBTTVyQ0E7QUFHQTtBQUNBO0FONHJDQTtBQUNBO0FRaHBDQTtBRjZGQTtBQUNBO0FOc2pDQTtBQUNBO0FRcnBDQTtBRm9HQTtBSTVLQTtBVml1Q0E7QUFDQTtBUTFwQ0E7QUZvR0E7QUk1S0E7QVZzdUNBO0FBQ0E7QVEvcENBO0FGb0dBO0FJNUtBO0FWMnVDQTtBQUNBO0FRcHFDQTtBRm9HQTtBSTVLQTtBVmd2Q0E7QUFDQTtBUXpxQ0E7QUZ5R0E7QUFDQTtBTm1rQ0E7QUFDQTtBUTlxQ0E7QUY2R0E7QUFDQTtBTm9rQ0E7QUFDQTtBUW5yQ0E7QUZpSEE7QUFDQTtBTnFrQ0E7QUFDQTtBTWhrQ0E7QUFDQTtBTmtrQ0E7QVEzckNBO0FGd0hBO0FBSUE7QU5ta0NBO0FBQ0E7QUFDQTtBUWpzQ0E7QUZxSUE7QUcxUUE7QUFDQTtBVDAwQ0E7QUFDQTtBUXZzQ0E7QUZ5SUE7QUc5UUE7QUFDQTtBVGcxQ0E7QUFDQTtBTS9qQ0E7QUFDQTtBQUNBO0FOaWtDQTtBQUNBO0FNOWpDQTtBR3BPQTtBVHF5Q0E7QVNueUNBO0FBQ0E7QVRxeUNBO0FReHRDQTtBRm9KQTtBR3BPQTtBVDR5Q0E7QVMxeUNBO0FBQ0E7QVQ0eUNBO0FBQ0E7QUFDQTtBWTduQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQkE7QUFDQTtBWituQ0E7QUFDQTtBWTVuQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBWjZuQ0E7QUFDQTtBWTFuQ0E7O0FBRUE7QUFDQTtBWjRuQ0E7QUFDQTtBWXpuQ0E7O0FBRUE7QUFDQTtBWjJuQ0E7QUFDQTtBWXhuQ0E7QUFDQTtBQUNBO0FaMG5DQTtBQUNBO0FZdm5DQTs7Ozs7O0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBWnluQ0E7QVl2bkNBOzs7Ozs7QUFDQTtBQUNBO0FaOG5DQTtBQUNBO0FZdG5DQTtBQUlBO0FBWUE7QUFRQTtBQU9BO0FaNmxDQTtBQUNBO0FZN25DQTtBQUlBO0FBWUE7QUFRQTtBQU9BO0Fab21DQTtBQUNBO0FZcG9DQTtBQUlBO0FBWUE7QUFRQTtBQU9BO0FaMm1DQTtBQUNBO0FZM29DQTtBQUlBO0FBWUE7QUFRQTtBQU9BO0Faa25DQTtBQUNBO0FZbHBDQTtBQUlBO0FBWUE7QUFRQTtBQU9BO0FaeW5DQTtBQUNBO0FZenBDQTtBQUlBO0FBWUE7QUFRQTtBQU9BO0FaZ29DQTtBQUNBO0FRaDFDQTtBSWdMQTtBQUlBO0FaZ3FDQTtBQUNBO0FZcnFDQTtBQUlBO0Fab3FDQTtBQUNBO0FZenFDQTtBQUlBO0Fad3FDQTtBQUNBO0FZN3FDQTtBQUlBO0FaNHFDQTtBQUNBO0FZanJDQTtBQUlBO0FaZ3JDQTtBQUNBO0FZcnJDQTtBQUlBO0Fab3JDQTtBQUNBO0FZbHBDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FabXBDQTtBWWpwQ0E7QUFFQTtBWmtwQ0E7QVk1b0NBO0FBQ0E7QVo4b0NBO0FBQ0E7QVkxb0NBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBWjBvQ0E7QUFDQTtBWXZvQ0E7OztBQUdBO0FBQ0E7QUFDQTtBWnlvQ0E7QUFDQTtBWXRvQ0E7QUFDQTtBWndvQ0E7QUFDQTtBWXJvQ0E7QUFDQTtBQUNBO0FadW9DQTtBQUNBO0FZcG9DQTtBQUNBO0Fac29DQTtBQUNBO0FZbG9DQTtBQUNBO0FBQ0E7QVpvb0NBO0FBQ0E7QVlob0NBO0FBQ0E7QVprb0NBO0FZaG9DQTtBQUNBO0FBQ0E7QVprb0NBO0FBQ0E7QVk5bkNBO0FBQ0E7QUFDQTtBQUNBO0FaZ29DQTtBWTluQ0E7QUFDQTtBQUNBO0FaZ29DQTtBQUNBO0FZNW5DQTtBQUNBO0FBQ0E7QUFDQTtBWjhuQ0E7QVk1bkNBO0FBQ0E7QVo4bkNBO0FBQ0E7QVkxbkNBO0FBQ0E7QUFDQTtBQUNBO0FaNG5DQTtBQUNBO0FZem5DQTtBQUNBO0FaMm5DQTtBQUNBO0FZeG5DQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBWnduQ0E7QUFDQTtBWXJuQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBR0E7QVptbkNBO0FBQ0E7QWE5akRBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBYitqREE7QUFDQTtBYTVqREE7QUFDQTtBQUNBO0FiOGpEQTtBQUNBO0FhM2pEQTtBQUNBO0FBQ0E7QWI2akRBO0FhM2pEQTtBQUNBO0FiNmpEQTtBQUNBO0FheGpEQTtBQUNBO0FBQ0E7QWIwakRBO0FBQ0E7QWN6bkRBO0FBQ0E7QWQybkRBO0FBQ0E7QWM3bkRBO0FBQ0E7QWQrbkRBO0FBQ0E7QWNqb0RBO0FBQ0E7QWRtb0RBO0FBQ0E7QWNyb0RBO0FBQ0E7QWR1b0RBO0FBQ0E7QVE1L0NBO0FNbEpBO0FBQ0E7QWRpcERBO0FBQ0E7QWNucERBO0FBQ0E7QWRxcERBO0FBQ0E7QWN2cERBO0FBQ0E7QWR5cERBO0FBQ0E7QWMzcERBO0FBQ0E7QWQ2cERBO0FBQ0E7QVE3Z0RBO0FNbEpBO0FBQ0E7QWRrcURBO0FBQ0E7QWNwcURBO0FBQ0E7QWRzcURBO0FBQ0E7QWN4cURBO0FBQ0E7QWQwcURBO0FBQ0E7QWM1cURBO0FBQ0E7QWQ4cURBO0FBQ0E7QWU1cURBO0FBQUE7QWYrcURBO0FBQ0E7QWU5cURBO0FBQ0E7QUFFQTtBQUdBO0FBRUE7QUFDQTtBZjRxREE7QUFDQTtBZTFxREE7QUFBQTtBZjZxREE7QUFDQTtBZTdxREE7QUFBQTtBZmdyREE7QUFDQTtBZS9xREE7QUFBQTtBZmtyREE7QUFDQTtBZWxyREE7QUFBQTtBZnFyREE7QUFDQTtBZXJyREE7QUFBQTtBZndyREE7QUFDQTtBZXhyREE7QUFBQTtBZjJyREE7QUFDQTtBZTNyREE7QUFBQTtBZjhyREE7QUFDQTtBZTlyREE7QUFBQTtBZmlzREE7QUFDQTtBZS9yREE7O0FBQ0E7QWZrc0RBO0FBQ0E7QWVqc0RBO0FBQUE7QWZvc0RBO0FBQ0E7QWVqc0RBOzs7QUFFQTtBZm9zREE7QUFDQTtBZWxzREE7QUFBQTtBZnFzREE7QUFDQTtBZW5zREE7O0FBRUE7QUFDQTtBZnFzREE7QUFDQTtBZWxzREE7QUFBQTtBZnFzREE7QUFDQTtBZXBzREE7O0FBQ0E7QWZ1c0RBO0FBQ0E7QWV0c0RBO0FBQUE7QWZ5c0RBO0FBQ0E7QWV4c0RBO0FBQUE7QWYyc0RBO0FlenNEQTs7O0FBR0E7QUFDQTtBZjJzREE7QUFDQTtBZXhzREE7O0FBQ0E7QWYyc0RBO0FBQ0E7QWV6c0RBO0FBQ0E7QWYyc0RBO0FBQ0E7QWdCbHFEQTs7QUFyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFxQkE7QUFBQTtBQUFBO0FoQm1yREE7QWdCcHNEQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FoQnFzREE7QUFDQTtBZ0J4ckRBO0FBQ0E7QWhCMHJEQTtBZ0J4ckRBO0FBQ0E7QWhCMHJEQTtBQUNBO0FnQnByREE7QUFDQTtBaEJ1ckRBO0FBQ0E7QWdCenJEQTtBQUNBO0FoQnVyREE7QUFDQTtBZ0J6ckRBOztBQUNBO0FoQnVyREE7QWdCbnJEQTs7O0FBRUE7QUFDQTtBaEJzckRBO0FBQ0E7QWdCbHJEQTs7QUFFQTtBQUFBO0FBQUE7QUFDQTtBaEJvckRBO0FBQ0E7QWdCanJEQTtBQUNBO0FoQm1yREE7QUFDQTtBaUI5MERBOzs7QUFHQTtBakJnMURBO0FBQ0E7QWlCNzBEQTs7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FqQjgwREE7QWlCNTBEQTs7QUFDQTtBakIrMERBO0FBQ0E7QWlCMzBEQTs7QUFFQTtBakI2MERBO0FBQ0E7QWlCMTBEQTtBQUNBO0FqQjQwREE7QUFDQTtBa0J6MERBO0FBakJBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBbEI0MURBO0FrQjkwREE7QUFSQTtBQUNBO0FsQnkxREE7QUFDQTtBbUIzMkRBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QW5CMjJEQTtBQUNBO0FvQjcyREE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBcEI2MkRBO0FvQjEyREE7QUFDQTtBcEI0MkRBO0FvQngyREE7QUFDQTtBcEIwMkRBO0FBQ0E7QW9CdDJEQTs7OztBQUNBO0FBQ0E7QXBCMjJEQTtBQUNBO0FvQnAyREE7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QXBCazJEQTtBb0IxMURBO0FBQ0E7QXBCNDFEQTtBb0J6MURBO0FBQ0E7QXBCMjFEQTtBQUNBO0FvQnYxREE7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBcEJzMURBO0FBQ0E7QW9CaDFEQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FwQiswREE7QW9CeDBEQTs7OztBQUtBO0FBQ0E7QUFDQTtBQUVBO0FwQncwREE7QUFDQTtBcUI5NURBO0FBQ0E7QUFDQTtBQUNBO0FyQmc2REE7QUFDQTtBcUI5NURBO0FBQ0E7QUFDQTtBckJnNkRBO0FBQ0E7QXFCOTVEQTtBQXpCQTtBQUNBO0FBQ0E7QXJCMDdEQTtBcUJ4N0RBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QXJCeTdEQTtBQUNBO0FzQjE0REE7QUEzREE7QUFDQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBakIwRkE7QWlCdEZBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFJQTtBdEJnOERBO0FLajNEQTtBaUI5Q0E7QWpCaURBO0FMazNEQTtBQUNBO0FzQmo4REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0F0Qmk4REE7QXNCNTdEQTtBQUNBO0FBQ0E7QXRCODdEQTtBc0IxN0RBO0FBQ0E7QXRCNDdEQTtBc0J6N0RBO0FBQ0E7QUFDQTtBdEIyN0RBO0FBQ0E7QXVCNzlEQTtBQUNBO0FBQ0E7QXZCKzlEQTtBdUI5OURBO0FBQ0E7QXZCZytEQTtBdUJqK0RBO0FBQ0E7QXZCZytEQTtBdUJqK0RBO0FBQ0E7QXZCZytEQTtBQUNBO0F1QnY4REE7QUFDQTtBdkJ5OERBO0FBQ0E7QXVCcjhEQTtBQXpCQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QXZCZytEQTtBdUIxOERBO0FBQ0E7QXZCNDhEQTtBQUNBO0F3QjV4REE7QUFoTEE7QUFDQTtBQUNBO0FBQ0E7QUFVQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFxQ0E7QUFDQTtBeEIrNURBO0FLajREQTtBQUNBO0FMbTREQTtBd0JoNkRBO0FBQ0E7QUFDQTtBeEJrNkRBO0F3Qi95REE7QUFDQTtBeEJpekRBO0F3Qmx6REE7QUFDQTtBeEJvekRBO0F3QnJ6REE7QUFDQTtBeEJ1ekRBO0F3Qm56REE7QUEzSkE7QUFDQTtBQUNBO0FBQ0E7QXhCaTlEQTtBd0JwekRBO0FBbElBO0FBQ0E7QXhCeTdEQTtBd0J2N0RBO0FBQ0E7QUFDQTtBeEJ5N0RBO0F3QjV6REE7QUFsSUE7QUFDQTtBeEJpOERBO0F3Qi83REE7QUFDQTtBQUNBO0F4Qmk4REE7QXdCcDBEQTtBQWxJQTtBQUNBO0F4Qnk4REE7QXdCdjhEQTtBQUNBO0FBQ0E7QXhCeThEQTtBd0I1MERBO0FBbElBO0FBQ0E7QXhCaTlEQTtBd0IvOERBO0FBQ0E7QUFDQTtBeEJpOURBO0F3QnAxREE7QUFsSUE7QUFDQTtBeEJ5OURBO0F3QnY5REE7QUFDQTtBQUNBO0F4Qnk5REE7QXdCNTBEQTtBQXpGQTtBQUNBO0F4Qnc2REE7QXdCdDZEQTtBQUNBO0FBQ0E7QXhCdzZEQTtBd0IvMERBO0FBOUZBO0FBQ0E7QXhCZzdEQTtBd0I5NkRBO0FBQ0E7QUFDQTtBeEJnN0RBO0F3QnYxREE7QUE5RkE7QUFDQTtBeEJ3N0RBO0F3QnQ3REE7QUFDQTtBQUNBO0F4Qnc3REE7QXdCLzFEQTtBQTlGQTtBQUNBO0F4Qmc4REE7QXdCOTdEQTtBQUNBO0FBQ0E7QXhCZzhEQTtBd0J2MkRBO0FBOUZBO0FBQ0E7QXhCdzhEQTtBd0J0OERBO0FBQ0E7QUFDQTtBeEJ3OERBO0F3Qi8yREE7QUE5RkE7QUFDQTtBeEJnOURBO0F3Qjk4REE7QUFDQTtBQUNBO0F4Qmc5REE7QXdCLzJEQTtBQS9IQTtBQUNBO0F4QmkvREE7QXdCdmdFQTtBQUVBO0F4QndnRUE7QXdCbmdFQTtBQUVBO0F4Qm9nRUE7QXdCci9EQTtBQUNBO0FBQ0E7QXhCdS9EQTtBd0J0L0RBO0FBRUE7QUFDQTtBeEJ1L0RBO0F3QjUzREE7QUFwSUE7QUFDQTtBeEJtZ0VBO0F3QmpnRUE7QUFDQTtBQUNBO0F4Qm1nRUE7QXdCbGdFQTtBQUVBO0FBQ0E7QXhCbWdFQTtBd0J4NERBO0FBcElBO0FBQ0E7QXhCK2dFQTtBd0I3Z0VBO0FBQ0E7QUFDQTtBeEIrZ0VBO0F3QjlnRUE7QUFFQTtBQUNBO0F4QitnRUE7QXdCcDVEQTtBQXBJQTtBQUNBO0F4QjJoRUE7QXdCemhFQTtBQUNBO0FBQ0E7QXhCMmhFQTtBd0IxaEVBO0FBRUE7QUFDQTtBeEIyaEVBO0F3Qmg2REE7QUFwSUE7QUFDQTtBeEJ1aUVBO0F3QnJpRUE7QUFDQTtBQUNBO0F4QnVpRUE7QXdCdGlFQTtBQUVBO0FBQ0E7QXhCdWlFQTtBd0I1NkRBO0FBcElBO0FBQ0E7QXhCbWpFQTtBd0JqakVBO0FBQ0E7QUFDQTtBeEJtakVBO0F3QmxqRUE7QUFFQTtBQUNBO0F4Qm1qRUE7QXdCLzZEQTtBQTdJQTtBQUNBO0F4QitqRUE7QXdCcmxFQTtBQUVBO0F4QnNsRUE7QXdCamxFQTtBQUVBO0F4QmtsRUE7QXdCbmtFQTtBQUNBO0FBQ0E7QXhCcWtFQTtBd0Jwa0VBO0FBRUE7QUFDQTtBeEJxa0VBO0F3QjU3REE7QUFDQTtBeEI4N0RBO0F3Qno3REE7QUF4SkE7QUFDQTtBeEJvbEVBO0F3QmxsRUE7QUFDQTtBQUNBO0F4Qm9sRUE7QXdCbmxFQTtBQUVBO0FBQ0E7QXhCb2xFQTtBd0JoOERBO0FBR0E7QXhCZzhEQTtBd0J4OERBO0FBeEpBO0FBQ0E7QXhCbW1FQTtBd0JqbUVBO0FBQ0E7QUFDQTtBeEJtbUVBO0F3QmxtRUE7QUFFQTtBQUNBO0F4Qm1tRUE7QXdCLzhEQTtBQUdBO0F4Qis4REE7QXdCdjlEQTtBQXhKQTtBQUNBO0F4QmtuRUE7QXdCaG5FQTtBQUNBO0FBQ0E7QXhCa25FQTtBd0JqbkVBO0FBRUE7QUFDQTtBeEJrbkVBO0F3Qjk5REE7QUFHQTtBeEI4OURBO0F3QnQrREE7QUF4SkE7QUFDQTtBeEJpb0VBO0F3Qi9uRUE7QUFDQTtBQUNBO0F4QmlvRUE7QXdCaG9FQTtBQUVBO0FBQ0E7QXhCaW9FQTtBd0I3K0RBO0FBR0E7QXhCNitEQTtBd0JyL0RBO0FBeEpBO0FBQ0E7QXhCZ3BFQTtBd0I5b0VBO0FBQ0E7QUFDQTtBeEJncEVBO0F3Qi9vRUE7QUFFQTtBQUNBO0F4QmdwRUE7QXdCNS9EQTtBQUdBO0F4QjQvREE7QXdCam5FQTtBbkIzTUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBbUJrTUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBeEJ5bkVBO0F3QngvREE7QUFDQTtBeEIwL0RBO0F3QnIvREE7QUFDQTtBeEJ1L0RBO0F3QngvREE7QUFDQTtBeEIwL0RBO0F3QjMvREE7QUFDQTtBeEI2L0RBO0F3QjkvREE7QUFDQTtBeEJnZ0VBO0F3QmpnRUE7QUFDQTtBeEJtZ0VBO0F3QjMvREE7QUFDQTtBQUNBO0FBQ0E7QXhCNi9EQTtBQUNBO0F5QjF1RUE7QUF2RkE7QUFDQTtBQUNBO0F6Qm8wRUE7QXlCbDBFQTtBQUNBO0F6Qm8wRUE7QUFDQTtBeUI5ekVBO0FBQ0E7QXpCZzBFQTtBeUI3ekVBO0FBQ0E7QXpCK3pFQTtBQUNBO0F5Qmx2RUE7QUFsRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBekJxekVBO0F5Qm56RUE7QUFDQTtBQUNBO0F6QnF6RUE7QXlCbHpFQTtBQUVBO0F6Qm16RUE7QXlCL3lFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXpCaXpFQTtBeUI5eUVBO0FBQ0E7QXpCZ3pFQTtBQUNBO0F5QjF3RUE7QUEzQkE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0F6QnN5RUE7QXlCcHlFQTtBQUNBO0F6QnN5RUE7QUFDQTtBMEJwNEVBO0FBRUE7QTFCcTRFQTtBMEJsNEVBO0FBRUE7QUFDQTtBQUNBO0ExQm00RUE7QTBCLzNFQTtBQUVBO0FBQ0E7QTFCZzRFQTtBMEJyM0VBO0FBQ0E7QTFCdTNFQTtBMEJyM0VBO0FBQ0E7QTFCdTNFQTtBMEJsM0VBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0ExQmszRUE7QTBCMzJFQTtBckIxRUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBcUJrRUE7QUFDQTtBQUNBO0ExQm0zRUE7QTBCOTJFQTtBQUNBO0FBQ0E7QTFCZzNFQTtBMEI3MkVBO0FyQitFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBTGl5RUE7QUFDQTtBMEJsM0VBO0FBQ0E7QTFCbzNFQTtBMEJsM0VBO0FyQm5HQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FxQjJGQTtBQUNBO0FBQ0E7QUFDQTtBMUIwM0VBO0FBQ0E7QTBCdjNFQTtBQUNBO0FBQ0E7QTFCeTNFQTtBQUNBO0EyQjE4RUE7QUFYQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFPQTtBQUNBO0EzQmc5RUE7QTJCNzhFQTtBQUNBO0FBQ0E7QTNCKzhFQTtBMkJqOUVBO0FBQ0E7QUFDQTtBM0JtOUVBO0EyQnI5RUE7QUFDQTtBQUNBO0EzQnU5RUE7QTJCejlFQTtBQUNBO0FBQ0E7QTNCMjlFQTtBMkI3OUVBO0FBQ0E7QUFDQTtBM0IrOUVBO0FBQ0E7QTRCLzdFQTtBQTVDQTtBQUNBO0E1QjgrRUE7QUs3NEVBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUw0NEVBO0FLeDRFQTtBQUNBO0FMMDRFQTtBNEJwL0VBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBNUJtL0VBO0E0QjUrRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTVCOCtFQTtBNEJyK0VBO0FBQ0E7QTVCdStFQTtBNEJyK0VBO0FBQ0E7QTVCdStFQTtBNEI5OUVBO0FBQ0E7QUFDQTtBNUJnK0VBO0FBQ0E7QTZCOTNFQTtBQS9KQTtBQUdBO0FBQ0E7QUFDQTtBN0I4aEZBO0FLdDdFQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FMcTdFQTtBS2o3RUE7QUFDQTtBTG03RUE7QTZCamlGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QTdCaWlGQTtBNkI5aEZBO0FBQ0E7QTdCZ2lGQTtBNkJsNUVBO0FBQ0E7QTdCbzVFQTtBNkJyNUVBO0FBQ0E7QTdCdTVFQTtBNkJ4NUVBO0FBQ0E7QTdCMDVFQTtBNkJwZ0ZBO0FBRUE7QTdCcWdGQTtBNkJuNUVBO0FMakVBO0FBQ0E7QXhCdTlFQTtBd0JyOUVBO0FBQ0E7QUFDQTtBeEJ1OUVBO0E2QjM1RUE7QUxqRUE7QUFDQTtBeEIrOUVBO0F3Qjc5RUE7QUFDQTtBQUNBO0F4Qis5RUE7QTZCbjZFQTtBTGpFQTtBQUNBO0F4QnUrRUE7QXdCcitFQTtBQUNBO0FBQ0E7QXhCdStFQTtBNkIzNkVBO0FMakVBO0FBQ0E7QXhCKytFQTtBd0I3K0VBO0FBQ0E7QUFDQTtBeEIrK0VBO0E2Qm43RUE7QUxqRUE7QUFDQTtBeEJ1L0VBO0F3QnIvRUE7QUFDQTtBQUNBO0F4QnUvRUE7QTZCLzZFQTtBQTlGQTtBN0JnaEZBO0E2QjdnRkE7QUFFQTtBN0I4Z0ZBO0E2QnhnRkE7QUFDQTtBN0IwZ0ZBO0FRNS9FQTtBcUJhQTtBQUVBO0FBS0E7QTdCNitFQTtBQUNBO0FRbGdGQTtBcUJhQTtBQUVBO0FBS0E7QTdCbS9FQTtBQUNBO0FRbmdGQTtBcUJpRkE7QUFFQTtBN0JvN0VBO0E2Qmw3RUE7QUFDQTtBQUNBO0E3Qm83RUE7QUFDQTtBQUNBO0E4QnJsRkE7QUExQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQWlCQTtBQUNBO0E5QmluRkE7QThCaG9GQTtBQUNBO0E5QmtvRkE7QThCL25GQTtBQUNBO0E5QmlvRkE7QThCaG1GQTtBQXhCQTtBQUNBO0E5QjJuRkE7QThCcG1GQTtBQXhCQTtBQUNBO0E5QituRkE7QThCeG1GQTtBQXhCQTtBQUNBO0E5Qm1vRkE7QThCNW1GQTtBQXhCQTtBQUNBO0E5QnVvRkE7QThCaG5GQTtBQXhCQTtBQUNBO0E5QjJvRkE7QThCL21GQTtBQXhCQTtBQUNBO0FBQ0E7QUFDQTtBOUIwb0ZBO0E4QmpuRkE7QUE1QkE7QUFDQTtBQUNBO0FBQ0E7QTlCZ3BGQTtBQUNBO0ErQjltRkE7QUF2REE7QUFDQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QS9CbXFGQTtBK0JqcUZBO0FBQ0E7QS9CbXFGQTtBQUNBO0ErQjFuRkE7QUFoQ0E7QUFDQTtBQUdBO0FBQ0E7QS9CMnBGQTtBK0J6cEZBO0FBQ0E7QS9CMnBGQTtBQUNBO0ErQmhvRkE7QUFuQkE7QUFHQTtBL0JvcEZBO0ErQmxwRkE7QUFDQTtBL0JvcEZBO0FBQ0E7QWdDaHFGQTtBQVhBO0FBQ0E7QUFDQTtBaEM4cUZBO0FLbmxGQTtBQUNBO0FMcWxGQTtBZ0MvcUZBO0FBRUE7QWhDZ3JGQTtBZ0N4cUZBO0FBMUJBO0FBQ0E7QUFDQTtBQUNBO0FoQ3FzRkE7QWdDN3FGQTtBQTNCQTtBQUNBO0FBQ0E7QUFDQTtBaEMyc0ZBO0FBQ0E7QWlDemhGQTtBQXBOQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QWpDOHVGQTtBaUMxdUZBO0FBSUE7QWpDeXVGQTtBS2puRkE7QUFDQTtBTG1uRkE7QWlDbnVGQTtBQUNBO0FBQ0E7QUFDQTtBakNxdUZBO0FpQ2p1RkE7Ozs7QUFJQTtBakNtdUZBO0FpQ3puRkE7QUFDQTtBakMybkZBO0FpQ3htRkE7QUFFQTtBakN5bUZBO0FpQ3RtRkE7OztBQUdBO0FqQ3dtRkE7QWlDeGpGQTtBQTNKQTtBakNzdEZBO0FpQ3B0RkE7QUFDQTtBakNzdEZBO0FpQzd1RkE7QUFDQTtBakMrdUZBO0FpQ3R1RkE7QUFDQTtBakN3dUZBO0FpQzFqRkE7QUF2SkE7QWpDb3RGQTtBaUNsdEZBO0FBQ0E7QUFDQTtBakNvdEZBO0FpQ2p0RkE7QUFDQTtBQUNBO0FqQ210RkE7QVF2ckZBO0F5QnVIQTtBQTFLQTtBakM4dUZBO0FpQzV1RkE7QUFDQTtBakM4dUZBO0FpQ3J3RkE7QUFDQTtBakN1d0ZBO0FpQzl2RkE7QUFDQTtBakNnd0ZBO0FpQ3JrRkE7QUFwS0E7QWpDNHVGQTtBaUMxdUZBO0FBQ0E7QUFDQTtBakM0dUZBO0FpQ3p1RkE7QUFDQTtBQUNBO0FqQzJ1RkE7QUFDQTtBUWh0RkE7QXlCdUhBO0FBMUtBO0FqQ3V3RkE7QWlDcndGQTtBQUNBO0FqQ3V3RkE7QWlDOXhGQTtBQUNBO0FqQ2d5RkE7QWlDdnhGQTtBQUNBO0FqQ3l4RkE7QWlDOWxGQTtBQXBLQTtBakNxd0ZBO0FpQ253RkE7QUFDQTtBQUNBO0FqQ3F3RkE7QWlDbHdGQTtBQUNBO0FBQ0E7QWpDb3dGQTtBQUNBO0FpQ3B2RkE7QUFDQTtBQUNBO0FBQ0E7QWpDc3ZGQTtBaUNudkZBO0FBQ0E7QWpDcXZGQTtBaUN2dUZBO0FBQ0E7QUFDQTtBakN5dUZBO0FpQzN1RkE7QUFDQTtBQUNBO0FqQzZ1RkE7QWlDM21GQTtBQUVBO0FqQzRtRkE7QWlDM3JGQTtBQUVBO0FqQzRyRkE7QWlDdHJGQTs7O0FBUUE7QUFDQTtBQUNBO0FqQ21yRkE7QWlDdG1GQTtBQUNBO0FqQ3dtRkE7QWlDbG1GQTtBQXBKQTtBakN5dkZBO0FpQ2htRkE7QUFDQTtBQUNBO0FqQ2ttRkE7QWlDN2xGQTtBQUNBO0FqQytsRkE7QWlDOWxGQTtBQUNBO0FqQ2dtRkE7QWlDemxGQTtBQUNBO0FqQzJsRkE7QUFDQTtBaUN2bEZBO0FBeEdBO0FBRUE7QUFDQTtBQUNBO0FqQ2lzRkE7QUFDQTtBaUN6bEZBO0FBQ0E7QWpDMmxGQTtBaUN6bEZBO0F2QnBUQTtBQUNBO0FWZzVGQTtBaUNybEZBO0FBQ0E7QWpDdWxGQTtBQUNBO0FpQ2xsRkE7QUFDQTtBakNvbEZBO0FBQ0E7QWtDMThGQTtBN0JnRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FMNjNGQTtBSzEzRkE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUx5M0ZBO0FLOTJGQTtBQUNBO0FBQ0E7QUxnM0ZBO0FBQ0E7QWtDOTlGQTtBN0I0RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FMcTVGQTtBS2w1RkE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUxpNUZBO0FLdDRGQTtBQUNBO0FBQ0E7QUx3NEZBO0FBQ0E7QW1DNzlGQTtBQUNBO0FBQ0E7QW5DKzlGQTtBbUM3OUZBO0FBQ0E7QW5DKzlGQTtBbUM1OUZBO0FBQ0E7QW5DODlGQTtBQUNBO0FtQzE5RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBbkMyOUZBO0FtQ3o5RkE7QUFDQTtBQUNBO0FBQ0E7QW5DMjlGQTtBbUN4OUZBO0FBQ0E7QW5DMDlGQTtBQUNBO0FtQ3Y5RkE7QUFDQTtBbkN5OUZBO0FBQ0E7QW1DdDlGQTtBQUNBO0FuQ3c5RkE7QW1DdDlGQTtBOUJ2REE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQWFBO0FBQ0E7QUFDQTtBOEJvQ0E7QUFDQTtBQUNBO0FBQ0E7QW5DKzlGQTtBQUNBO0FtQzU5RkE7QTlCaEVBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFrQkE7QUFDQTtBQUNBO0E4QndDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FuQ28rRkE7QUFDQTtBb0N6L0ZBO0FBM0JBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FwQ29oR0E7QW9DaGhHQTtBQUNBO0FwQ2toR0E7QW9DL2dHQTtBQUNBO0FBQ0E7QXBDaWhHQTtBQUNBO0FvQ3hnR0E7QUFDQTtBcEMwZ0dBO0FBQ0E7QW9DNWdHQTtBQUNBO0FwQzhnR0E7QUFDQTtBb0NoaEdBO0FBQ0E7QXBDa2hHQTtBQUNBO0FxQ3hpR0E7QUFDQTtBQUNBO0FBQ0E7QXJDMGlHQTtBcUNyaUdBO0FBQ0E7QUFDQTtBQUNBO0FyQ3VpR0E7QXFDbGlHQTtBQUNBO0FBQ0E7QXJDb2lHQTtBcUNqaUdBO0FoQ3pEQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FnQ2dEQTtBQUNBO0FyQzBpR0E7QUt2OEZBO0FBQ0E7QUx5OEZBO0FxQ25nR0E7QUFDQTtBckNxZ0dBO0FxQzFpR0E7QUFDQTtBckM0aUdBO0FxQ3hpR0E7QUFDQTtBQUNBO0FyQzBpR0E7QXFDcmlHQTtBQUNBO0FBQ0E7QXJDdWlHQTtBcUNubUdBO0FBQ0E7QXJDcW1HQTtBcUNsbUdBO0FoQ3hCQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBa0JBO0FBQ0E7QUFDQTtBTDBtR0E7QXFDeG1HQTtBaEM1QkE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQWFBO0FBQ0E7QUFDQTtBTHluR0E7QVFyZ0dBO0E2QnJHQTtBQUNBO0FBQ0E7QUFDQTtBckM2bUdBO0FxQ3htR0E7QUFDQTtBQUNBO0FBQ0E7QXJDMG1HQTtBcUNybUdBO0FBQ0E7QUFDQTtBckN1bUdBO0FxQ3BtR0E7QWhDekRBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QWdDZ0RBO0FBQ0E7QXJDNm1HQTtBcUN2bUdBO0FBQ0E7QXJDeW1HQTtBcUNybUdBO0FBQ0E7QUFDQTtBckN1bUdBO0FxQ2xtR0E7QUFDQTtBQUNBO0FyQ29tR0E7QXFDaHFHQTtBQUNBO0FyQ2txR0E7QXFDL3BHQTtBaEN4QkE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQWtCQTtBQUNBO0FBQ0E7QUx1cUdBO0FxQ3JxR0E7QWhDNUJBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFhQTtBQUNBO0FBQ0E7QUxzckdBO0FBQ0E7QVFua0dBO0E2QnJHQTtBQUNBO0FBQ0E7QUFDQTtBckMycUdBO0FxQ3RxR0E7QUFDQTtBQUNBO0FBQ0E7QXJDd3FHQTtBcUNucUdBO0FBQ0E7QUFDQTtBckNxcUdBO0FxQ2xxR0E7QWhDekRBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QWdDZ0RBO0FBQ0E7QXJDMnFHQTtBcUNycUdBO0FBQ0E7QXJDdXFHQTtBcUNucUdBO0FBQ0E7QUFDQTtBckNxcUdBO0FxQ2hxR0E7QUFDQTtBQUNBO0FyQ2txR0E7QXFDOXRHQTtBQUNBO0FyQ2d1R0E7QXFDN3RHQTtBaEN4QkE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQWtCQTtBQUNBO0FBQ0E7QUxxdUdBO0FxQ251R0E7QWhDNUJBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFhQTtBQUNBO0FBQ0E7QUxvdkdBO0FBQ0E7QXFDN29HQTtBQUNBO0FBQ0E7QUFDQTtBckMrb0dBO0FBQ0E7QXFDM29HQTtBQUNBO0FyQzZvR0E7QXFDM29HQTtBQUNBO0FyQzZvR0E7QUFDQTtBcUMxb0dBO0FBQ0E7QXJDNG9HQTtBcUMxb0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJDNG9HQTtBcUN6b0dBO0FBRUE7QUFLQTtBckNzb0dBO0FxQ2xvR0E7QUFDQTtBQUNBO0FyQ29vR0E7QXFDam9HQTtBQUNBO0FBQ0E7QXJDbW9HQTtBQUNBO0FxQ2hvR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FyQ2dvR0E7QXFDbnlHQTtBQUNBO0FyQ3F5R0E7QXFDbHlHQTtBaEN4QkE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQWtCQTtBQUNBO0FBQ0E7QUwweUdBO0FxQ3h5R0E7QWhDNUJBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFhQTtBQUNBO0FBQ0E7QUx5ekdBO0FxQzlvR0E7QUFDQTtBckNncEdBO0FxQzVvR0E7QUFDQTtBckM4b0dBO0FxQ3pvR0E7QUFDQTtBckMyb0dBO0FBQ0E7QXNDM3pHQTs7QUFuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdENrMUdBO0FzQ2gxR0E7Ozs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdENzMUdBO0FzQzEwR0E7O0FBQ0E7QXRDNjBHQTtBQUNBO0F1Q24xR0E7QUFaQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQU9BO0FBQ0E7QXZDMDFHQTtBdUN2MUdBO0FBQ0E7QUFDQTtBdkN5MUdBO0F1QzMxR0E7QUFDQTtBQUNBO0F2QzYxR0E7QXVDLzFHQTtBQUNBO0FBQ0E7QXZDaTJHQTtBdUNuMkdBO0FBQ0E7QUFDQTtBdkNxMkdBO0F1Q3YyR0E7QUFDQTtBQUNBO0F2Q3kyR0E7QUFDQTtBd0M1MUdBO0FBbkRBO0FBQ0E7QUFHQTtBeENnNUdBO0F3QzkxR0E7QUFDQTtBeENnMkdBO0FRN3dHQTtBZ0MvRUE7QUFFQTtBeEM4MUdBO0FBQ0E7QVFseEdBO0FnQ3hFQTtBQWhDQTtBQUNBO0FBR0E7QUFDQTtBeEM0M0dBO0F3Q3QzR0E7QUFDQTtBeEN3M0dBO0FBQ0E7QUFDQTtBd0MvMUdBO0FBN0RBO0F4Qys1R0E7QXdDeDVHQTtBQUNBO0F4QzA1R0E7QXdDdjVHQTtBQUNBO0F4Q3k1R0E7QXdDdDVHQTtBQUNBO0F4Q3c1R0E7QXdDdjJHQTtBQUNBO0F4Q3kyR0E7QUFDQTtBeUNwNUdBO0FBQ0E7QXpDczVHQTtBQUNBO0F5Q241R0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFFQTtBQUVBO0FBQ0E7QUFFQTtBekNnNUdBO0F5Qzk0R0E7QUFDQTtBQUNBO0F6Q2c1R0E7QXlDNzRHQTtBQUNBO0F6Qys0R0E7QXlDNTRHQTtBQUNBO0F6Qzg0R0E7QXlDMzRHQTtBQUNBO0F6QzY0R0E7QUFDQTtBeUNsdEdBO0FBckxBO0FBQ0E7QXpDMDRHQTtBQUNBO0F5Q2x0R0E7QUE3S0E7QUFNQTtBQUVBO0FBQ0E7QUFBQTtBQUVBO0F6QzIzR0E7QUt2MEdBO0FBQ0E7QUx5MEdBO0F5QzMzR0E7QUFDQTtBekM2M0dBO0F5QzMzR0E7QUFDQTtBekM2M0dBO0F5Q3gzR0E7QUFDQTtBekMwM0dBO0FBQ0E7QXlDanVHQTtBQS9LQTtBQUdBO0FBRUE7QUFDQTtBQUFBO0FBRUE7QXpDKzRHQTtBSzMxR0E7QUFDQTtBTDYxR0E7QXlDLzRHQTtBQUNBO0F6Q2k1R0E7QXlDLzRHQTtBQUNBO0F6Q2k1R0E7QXlDNTRHQTtBQUNBO0F6Qzg0R0E7QUFDQTtBeUNodkdBO0FBcEpBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBekNzNEdBO0F5Q240R0E7QUFDQTtBekNxNEdBO0F5Q2wxR0E7QUFDQTtBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBd0JBO0FBQ0E7QXpDMHpHQTtBeUNyekdBO0FBQ0E7QXpDdXpHQTtBQUNBO0F5Q3Z3R0E7QUF2SUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0F6Q2c1R0E7QXlDNzRHQTtBQUNBO0F6Qys0R0E7QXlDMTJHQTtBQUNBO0FBVUE7QUFDQTtBQUVBO0FBQ0E7QUFpQkE7QUFDQTtBekNrMUdBO0F5QzcwR0E7QUFDQTtBekMrMEdBO0FBQ0E7QXlDOXhHQTtBQTFIQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QXpDeTVHQTtBeUN0NUdBO0FBQ0E7QXpDdzVHQTtBeUNsNEdBO0FBQ0E7QUFpQkE7QUFDQTtBQUVBO0FBQ0E7QUFVQTtBQUNBO0F6QzAyR0E7QXlDcjJHQTtBQUNBO0F6Q3UyR0E7QUFDQTtBeUNyekdBO0FBNUdBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBekNrNkdBO0F5Qy81R0E7QUFDQTtBekNpNkdBO0F5QzE1R0E7QUFDQTtBQXdCQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QXpDazRHQTtBeUM3M0dBO0FBQ0E7QXpDKzNHQTtBQUNBO0F5QzMwR0E7QUEvQ0E7QUFDQTtBQUFBO0F6QzYzR0E7QUFDQTtBUW4rR0E7QWlDMkpBO0FBN0NBO0FBQ0E7QUFDQTtBekN5M0dBO0F5Q24zR0E7QUFDQTtBekNxM0dBO0FBQ0E7QXlDOTBHQTtBQWpEQTtBQUNBO0FBQ0E7QXpDazRHQTtBeUM1M0dBO0FBQ0E7QXpDODNHQTtBQUNBO0F5Q24xR0E7QUFyREE7QUFDQTtBQUNBO0F6QzI0R0E7QXlDcjRHQTtBQUNBO0F6Q3U0R0E7QUFDQTtBeUN4MUdBO0FBekRBO0FBQ0E7QUFDQTtBekNvNUdBO0F5Qzk0R0E7QUFDQTtBekNnNUdBO0FBQ0E7QVF4Z0hBO0FpQzJKQTtBQTdDQTtBQUNBO0FBQ0E7QXpDODVHQTtBeUN4NUdBO0FBQ0E7QXpDMDVHQTtBQUNBO0F5Q24zR0E7QUFqREE7QUFDQTtBQUNBO0F6Q3U2R0E7QXlDajZHQTtBQUNBO0F6Q202R0E7QUFDQTtBeUN4M0dBO0FBckRBO0FBQ0E7QUFDQTtBekNnN0dBO0F5QzE2R0E7QUFDQTtBekM0NkdBO0FBQ0E7QXlDNzNHQTtBQXpEQTtBQUNBO0FBQ0E7QXpDeTdHQTtBeUNuN0dBO0FBQ0E7QXpDcTdHQTtBQUNBO0EwQzlpSEE7QUFwR0E7QTFDcXBIQTtBQUNBO0EwQzlpSEE7QUFuR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBMUNvcEhBO0FBQ0E7QTBDbGpIQTtBQTlGQTtBMUNtcEhBO0EwQ2hwSEE7QUFDQTtBQUNBO0ExQ2twSEE7QUFDQTtBMEN0akhBO0FBdkZBO0ExQ2dwSEE7QUFDQTtBMEN0akhBO0FBdEZBO0FBQ0E7QUFDQTtBMUMrb0hBO0FBQ0E7QTBDeGpIQTtBQW5GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBMUM2b0hBO0FBQ0E7QTBDOWpIQTtBckNpQ0E7QUFDQTtBQUNBO0FxQzVHQTtBQUNBO0FBQ0E7QTFDNm9IQTtBS3ZrSEE7QUFDQTtBTHlrSEE7QTBDOW9IQTtBQUdBO0ExQzhvSEE7QUFDQTtBMEN6a0hBO0FBaEVBO0ExQzRvSEE7QUFDQTtBMEN4a0hBO0FBaEVBO0FBQ0E7QTFDMm9IQTtBQUNBO0EwQ3hrSEE7QUE5REE7QUFDQTtBQUNBO0FBQ0E7QTFDeW9IQTtBSzdsSEE7QUFDQTtBTCtsSEE7QTBDMW9IQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QTFDMm9IQTtBMEN6b0hBO0FBQ0E7QTFDMm9IQTtBMEN4b0hBO0FBQ0E7QTFDMG9IQTtBQUNBO0EyQzluSEE7QUFuRkE7QUFDQTtBM0NvdEhBO0FLbHBIQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FMaXBIQTtBSzdvSEE7QUFDQTtBTCtvSEE7QTJDMXRIQTtBQUNBO0FBQ0E7QUFDQTtBQU1BO0EzQ3V0SEE7QTJDcnRIQTtBQUVBO0EzQ3N0SEE7QVExcEhBO0FtQ3pFQTtBQXVCQTtBM0NndEhBO0FBQ0E7QTJDM3NIQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBM0M2c0hBO0EyQzNzSEE7O0FBQ0E7QTNDOHNIQTtBMkNqcUhBO0FBbENBO0FBQ0E7QUFDQTtBQUNBO0EzQ3NzSEE7QTJDbnFIQTtBQTNCQTtBQUNBO0FBQ0E7QTNDaXNIQTtBMkMvckhBO0FBQ0E7QTNDaXNIQTtBMkN2cUhBO0FBakJBO0FBQ0E7QUFDQTtBM0MyckhBO0FBQ0E7QTJDdnFIQTs7QUFFQTtBQUNBO0FBQ0E7QTNDeXFIQTtBQUNBO0EyQ3ZxSEE7O0FBRUE7QUFDQTtBQUNBO0EzQ3lxSEE7QUFDQTtBNEM3ekhBO0FBcENBO0FBQ0E7QUFDQTtBQUNBO0E1Q28ySEE7QTRDOXpIQTtBQUNBO0E1Q2cwSEE7QTRDajBIQTtBQUNBO0E1Q20wSEE7QTRDcDBIQTtBQUNBO0E1Q3MwSEE7QTRDdjBIQTtBQUNBO0E1Q3kwSEE7QTRDMTBIQTtBQUNBO0E1QzQwSEE7QUFDQTtBNEN0MEhBO0FBekNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBNUNnM0hBO0FBQ0E7QTRDMTBIQTtBdkN1S0E7QUFDQTtBQUNBO0FBQ0E7QXVDMU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0E1QysySEE7QUFDQTtBNkMxeUhBO0FBckZBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QTdDaTRIQTtBQUNBO0E2Q2h6SEE7QUE3RUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBN0M4M0hBO0E2QzUzSEE7QUFDQTtBN0M4M0hBO0FBQ0E7QTZDenpIQTtBeEMrRkE7QUFDQTtBQUNBO0F3Qy9KQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBN0MyM0hBO0FLM3dIQTtBQUNBO0FMNndIQTtBNkM1M0hBO0FBQ0E7QTdDODNIQTtBNkMzM0hBO0FBQ0E7QTdDNjNIQTtBQUNBO0E2QzcwSEE7O0FBNUNBO0FBQ0E7QTdDNjNIQTtBQUNBO0E2QzcwSEE7QUE3Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0M2M0hBO0E2QzMzSEE7QUFDQTtBQUNBO0FBQ0E7QTdDNjNIQTtBNkMxM0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3QzQzSEE7QUFDQTtBOEM1OUhBO0FBQ0E7QTlDODlIQTtBQUNBO0E4QzU5SEE7QUFDQTtBQUNBO0FBQ0E7QTlDODlIQTtBQUNBO0E4QzU5SEE7QUFDQTtBQUNBO0FBQ0E7QTlDODlIQTtBOEM1OUhBO0FBQ0E7QTlDODlIQTtBOEMzOUhBO0FBQ0E7QTlDNjlIQTtBQUNBO0E4QzE5SEE7QUFDQTtBQUNBO0FBQ0E7QTlDNDlIQTtBOEMxOUhBO0FBQ0E7QTlDNDlIQTtBQUNBO0ErQzU0SEE7QUFDQTtBL0M4NEhBO0FBQ0E7QStDMzRIQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBL0M2NEhBO0FBQ0E7QStDMTRIQTtBQXZGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QS9DbStIQTtBQUNBO0ErQ2o1SEE7QUE3RUE7QUFFQTtBQUFBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQXVFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvQ3c1SEE7QUtyM0hBO0FBQ0E7QUx1M0hBO0FROTRIQTtBdUNwQkE7QUFqRUE7QS9DdStIQTtBQUNBO0ErQ3ArSEE7QUFDQTtBL0NzK0hBO0ErQ2wrSEE7QUFDQTtBL0NvK0hBO0FRejVIQTtBdUNwQkE7QUExQ0E7QUFDQTtBL0MyOUhBO0FBQ0E7QVEvNUhBO0F1Q1JBO0FBQ0E7QUFDQTtBQUNBO0EvQzA2SEE7QUFDQTtBK0N0NkhBO0FBQ0E7QS9DdzZIQTtBUXo2SEE7QXVDS0E7QUFuRUE7QUFDQTtBL0MyK0hBO0FBQ0E7QVEvNkhBO0F1Q01BO0FBcEVBO0FBQ0E7QS9DaS9IQTtBQUNBO0FRcjdIQTtBdUNPQTtBQXJFQTtBQUNBO0EvQ3UvSEE7QUFDQTtBK0NqN0hBO0FBakVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0EvQ20vSEE7QVFsOEhBO0F1Q3pCQTtBQW5DQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBL0NnZ0lBO0FBQ0E7QStDbjhIQTtBQUNBO0EvQ3E4SEE7QUFDQTtBZ0QxNkhBO0FBQ0E7QUE3SUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QWhEdWpJQTtBQUNBO0FnRC82SEE7QUFwSUE7QUFDQTtBQUNBO0FoRHNqSUE7QUFDQTtBZ0RoN0hBO0FBN0hBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUVBO0FoRDRpSUE7QWdEemlJQTtBQUNBO0FoRDJpSUE7QWdEdmlJQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWhEdWlJQTtBZ0RuaUlBO0FBQ0E7QWhEcWlJQTtBZ0RuaUlBO0FBQ0E7QWhEcWlJQTtBS3QvSEE7QUFDQTtBTHcvSEE7QUFDQTtBZ0RqOUhBO0FBN0VBO0FBQ0E7QUFDQTtBaERpaUlBO0FBQ0E7QWdEbDlIQTtBQTNFQTtBQUNBO0FoRGdpSUE7QWdEOWhJQTtBQUNBO0FoRGdpSUE7QUFDQTtBZ0RwOUhBO0FBdkVBO0FoRDhoSUE7QWdENWhJQTtBQUNBO0FoRDhoSUE7QUFDQTtBZ0RyOUhBO0FBdkRBO0FoRCtnSUE7QWdEN2dJQTtBQUNBO0FBQ0E7QUFDQTtBaEQrZ0lBO0FnRDVnSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEQ4Z0lBO0FnRDNnSUE7QUFDQTtBaEQ2Z0lBO0FBQ0E7QWdEbitIQTtBQTNEQTtBaERpaUlBO0FnRC9oSUE7QUFDQTtBQUNBO0FBQ0E7QWhEaWlJQTtBZ0Q5aElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWhEZ2lJQTtBZ0Q3aElBO0FBQ0E7QWhEK2hJQTtBQUNBO0FnRGovSEE7QUEvREE7QWhEbWpJQTtBZ0RqaklBO0FBQ0E7QUFDQTtBQUNBO0FoRG1qSUE7QWdEaGpJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FoRGtqSUE7QWdEL2lJQTtBQUNBO0FoRGlqSUE7QUFDQTtBaUR0OEhBO0FBOUdBO0FBQ0E7QUFDQTtBQUNBO0FqRHVqSUE7QWlEOW9JQTs7O0FBR0E7QUFDQTtBakRncElBO0FBQ0E7QWlEN29JQTtBQUNBO0FBQ0E7QWpEK29JQTtBQUNBO0FpRDVvSUE7QUFDQTtBQUNBO0FqRDhvSUE7QUFDQTtBaUQzb0lBO0FBQ0E7QUFDQTtBakQ2b0lBO0FBQ0E7QWlEdm9JQTs7QUFDQTtBakQwb0lBO0FpRHRvSUE7Ozs7QUFFQTtBQUNBO0FBQ0E7QWpEMG9JQTtBQUNBO0FpRHJvSUE7O0FBRUE7QWpEdW9JQTtBQUNBO0FpRDlzSUE7QUFDQTtBQUNBO0FqRGd0SUE7QUFDQTtBaURsb0lBO0FBRUE7QWpEbW9JQTtBaUR0c0lBO0FBQ0E7QUFDQTtBQUNBO0FqRHdzSUE7QUFDQTtBUWxwSUE7QXlDMkhBO0FBQ0E7QWpEMGhJQTtBaUR0aElBO0FBQ0E7QWpEd2hJQTtBaURyaElBOzs7QUFHQTtBakR1aElBO0FpRHBoSUE7QUFDQTtBakRzaElBO0FBQ0E7QUFDQTtBaUR6Z0lBO0FBdkdBO0FBQ0E7QUFDQTtBakRtbklBO0FBQ0E7QWlEN21JQTtBQUNBO0FqRCttSUE7QWlEem1JQTtBQUNBO0FqRDJtSUE7QWlEcm1JQTtBQUNBO0FqRHVtSUE7QWlEaG1JQTtBQUNBO0FqRGttSUE7QUFDQTtBaURwaElBO0FBQ0E7QWpEc2hJQTtBaURwaElBO0FBQ0E7QWpEc2hJQTtBQUNBO0FrRDNzSUE7QUFoRkE7QUFDQTtBQUNBO0FBQ0E7QWxEOHhJQTtBS2x0SUE7QUFFQTtBQUNBO0FBR0E7QUFDQTtBTGl0SUE7QUs3c0lBO0FBQ0E7QUwrc0lBO0FBQ0E7QWtEbnlJQTtBQUNBO0FBQ0E7QUFDQTtBbERxeUlBO0FBQ0E7QWtEdHRJQTtBQUNBO0FsRHd0SUE7QWtEdHRJQTtBQUNBO0FsRHd0SUE7QUFDQTtBa0RudElBO0FBQ0E7QWxEcXRJQTtBa0RudElBO0FBQ0E7QWxEcXRJQTtBa0RudElBO0FBRUE7QWxEb3RJQTtBQUNBO0FrRGh0SUE7QUExRkE7QWxENnlJQTtBa0QzeUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbEQ2eUlBO0FrRDN5SUE7QUFDQTtBQUNBO0FsRDZ5SUE7QWtEMXlJQTtBQUVBO0FBQ0E7QWxEMnlJQTtBQUNBO0FrRC90SUE7QUFsRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbERveUlBO0FBQ0E7QWtEbnVJQTtBQTNEQTtBQUNBO0FsRGl5SUE7QUFDQTtBa0RwdUlBO0FBdkRBO0FBQ0E7QWxEOHhJQTtBa0Q1eElBO0FBQ0E7QWxEOHhJQTtBQUNBO0FtRGozSUE7QUF6QkE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QW5EMjRJQTtBQUNBO0FtRHYzSUE7QUFqQkE7QW5EMjRJQTtBbUR6NElBO0FBRUE7QW5EMDRJQTtBbUR2NElBO0FBQ0E7QW5EeTRJQTtBQUNBO0FvRDM1SUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QXBEMjVJQTtBb0RyNUlBO0FBQ0E7QUFDQTtBcER1NUlBO0FBQ0E7QW9EbjVJQTs7QUFFQTtBcERxNUlBO0FBQ0E7QW9EbjVJQTtBQUNBO0FwRHE1SUE7QUFDQTtBb0R4NElBO0FBQ0E7QUFDQTtBQUNBO0FwRDA0SUE7QUFDQTtBcURqM0lBO0FBdERBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QXJEeTZJQTtBQUNBO0FxRHIzSUE7QUFqREE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FyRHU2SUE7QXFEcjZJQTtBaER4REE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQVFBO0FBQ0E7QUFDQTtBZ0QwQ0E7QUFDQTtBQUNBO0FBQ0E7QXJEODZJQTtBcUQzNklBO0FoRGhFQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FnRHVEQTtBQUNBO0FyRG83SUE7QXFEajdJQTtBaER0RUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQWFBO0FBQ0E7QUFDQTtBZ0RtREE7QUFDQTtBQUNBO0FBQ0E7QXJEMDdJQTtBcUR2N0lBO0FoRDlFQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBa0JBO0FBQ0E7QUFDQTtBZ0RzREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBckRnOElBO0FBQ0E7QXNEOTZJQTtBQXRGQTtBQUNBO0FBQ0E7QUFDQTtBQU1BO0FBa0NBO0F0RGkrSUE7QXNEamdKQTs7QUFFQTtBdERtZ0pBO0FzRHgvSUE7QUFDQTtBQUNBO0F0RDAvSUE7QXNEdC9JQTtBQUNBO0FBQ0E7QXREdy9JQTtBc0RyL0lBO0FBQ0E7QXREdS9JQTtBc0Q3K0lBOztBQUVBO0FBQ0E7QXREKytJQTtBUXg2SUE7QThDbENBO0FBdEJBO0F0RG8rSUE7QXNEbCtJQTtBQUNBO0FBQ0E7QXREbytJQTtBc0RqK0lBO0FBQ0E7QUFDQTtBdERtK0lBO0FBQ0E7QVFoN0lBO0E4QzFCQTtBQXhEQTtBdERzZ0pBO0FzRG5nSkE7O0FBRUE7QUFDQTtBdERxZ0pBO0FBQ0E7QVExN0lBO0E4QzFCQTtBQXhEQTtBdERnaEpBO0FzRDdnSkE7O0FBRUE7QUFDQTtBdEQrZ0pBO0FBQ0E7QUFDQTtBc0RwOUlBO0FBQ0E7QUFDQTtBdERzOUlBO0FBQ0E7QXNEcDlJQTs7QUFFQTtBdERzOUlBO0FBQ0E7QXVEbGpKQTtBQUNBO0F2RG9qSkE7QUFDQTtBdURsakpBO0FBQ0E7QXZEb2pKQTtBQUNBO0FRdjlJQTtBK0MvRUE7QUExQkE7QXZEb2tKQTtBQUNBO0FBQ0E7QXVEemxKQTtBQWlEQTtBQWhEQTtBdkQ0bEpBO0FBQ0E7QUFDQTtBUXgrSUE7QStDbkZBO0FBekJBO0F2RHdsSkE7QUFDQTtBQUNBO0FReitJQTtBK0NwRkE7QUFqRUE7QXZEa29KQTtBQUNBO0FBQ0E7QVEvK0lBO0ErQy9FQTtBQTFCQTtBdkQ0bEpBO0FBQ0E7QUFDQTtBdURqbkpBO0FBaURBO0FBaERBO0F2RG9uSkE7QUFDQTtBQUNBO0FRaGdKQTtBK0NuRkE7QUF6QkE7QXZEZ25KQTtBQUNBO0FBQ0E7QVFqZ0pBO0ErQ3BGQTtBQWpFQTtBdkQwcEpBO0FBQ0E7QUFDQTtBUXZnSkE7QStDL0VBO0FBMUJBO0F2RG9uSkE7QUFDQTtBQUNBO0F1RHpvSkE7QUFpREE7QUFoREE7QXZENG9KQTtBQUNBO0FBQ0E7QXVEdmxKQTs7QWxEOEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FMNi9JQTtBQUNBO0F1RDdsSkE7QWxEb0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUw0L0lBO0FBQ0E7QXVEaG1KQTs7QUFFQTtBdkRrbUpBO0FROWlKQTtBK0N0REE7O0FBS0E7QXZEb21KQTtBQUNBO0FRcGpKQTtBK0N0REE7O0FBU0E7QXZEc21KQTtBQUNBO0FBQ0E7QXVEcG1KQTs7QUFFQTtBdkRzbUpBO0FRL2pKQTtBK0N6Q0E7O0FBS0E7QXZEd21KQTtBQUNBO0FRcmtKQTtBK0N6Q0E7O0FBU0E7QXZEMG1KQTtBQUNBO0FBQ0E7QXdEbnVKQTtBQUNBO0F4RHF1SkE7QUFDQTtBd0RudUpBO0FBQ0E7QXhEcXVKQTtBQUNBO0F3RG51SkE7QUFDQTtBQUNBO0FBQ0E7QXhEcXVKQTtBQUNBO0FLem1KQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FMd21KQTtBS3BtSkE7QUFDQTtBTHNtSkE7QUFDQTtBeURqd0pBO0EvQytDQTtBVnF0SkE7QUFDQTtBeURyd0pBO0EvQytDQTtBVnl0SkE7QUFDQTtBeUR6d0pBO0EvQytDQTtBVjZ0SkE7QUFDQTtBeUQ3d0pBO0EvQytDQTtBVml1SkE7QUFDQTtBeUR6d0pBO0EvQ3VDQTtBVnF1SkE7QUFDQTtBeUQ3d0pBO0EvQ3VDQTtBVnl1SkE7QUFDQTtBeUR6d0pBO0EvQ2dDQTtBVjR1SkE7QUFDQTtBeUR6d0pBO0EvQzRDQTtBVmd1SkE7QUFDQTtBeURqeEpBO0EvQ2dDQTtBVm92SkE7QUFDQTtBeURqeEpBO0EvQzRDQTtBVnd1SkE7QUFDQTtBeUR6eEpBO0EvQ2dDQTtBVjR2SkE7QUFDQTtBeUR6eEpBO0EvQzRDQTtBVmd2SkE7QUFDQTtBeURqeUpBO0EvQ2dDQTtBVm93SkE7QUFDQTtBeURqeUpBO0EvQzRDQTtBVnd2SkE7QUFDQTtBeUQveEpBO0EvQ3FCQTtBQUNBO0ErQ3BCQTtBekRreUpBO0FBQ0E7QXlEN3hKQTtBL0NvQ0E7QVY0dkpBO0FBQ0E7QXlEanlKQTtBL0NvQ0E7QVZnd0pBO0FBQ0E7QXlEcnlKQTtBL0NvQ0E7QVZvd0pBO0FBQ0E7QXlEenlKQTtBL0NvQ0E7QVZ3d0pBO0FBQ0E7QXlEN3lKQTtBL0NvQ0E7QVY0d0pBO0FBQ0E7QXlEanpKQTtBL0NvQ0E7QVZneEpBO0FBQ0E7QVEvckpBO0FpRHRIQTtBL0NvQ0E7QVZxeEpBO0FBQ0E7QXlEMXpKQTtBL0NvQ0E7QVZ5eEpBO0FBQ0E7QXlEOXpKQTtBL0NvQ0E7QVY2eEpBO0FBQ0E7QXlEbDBKQTtBL0NvQ0E7QVZpeUpBO0FBQ0E7QXlEdDBKQTtBL0NvQ0E7QVZxeUpBO0FBQ0E7QXlEMTBKQTtBL0NvQ0E7QVZ5eUpBO0FBQ0E7QVF4dEpBO0FpRHRIQTtBL0NvQ0E7QVY4eUpBO0FBQ0E7QXlEbjFKQTtBL0NvQ0E7QVZrekpBO0FBQ0E7QXlEdjFKQTtBL0NvQ0E7QVZzekpBO0FBQ0E7QXlEMzFKQTtBL0NvQ0E7QVYwekpBO0FBQ0E7QXlELzFKQTtBL0NvQ0E7QVY4ekpBO0FBQ0E7QXlEbjJKQTtBL0NvQ0E7QVZrMEpBO0FBQ0E7QTBEMTJKQTtBQUNBO0ExRDQySkE7QTBEcjNKQTtBQVFBO0FBR0E7QTFEODJKQTtBQUNBO0FBQ0E7QTBENTJKQTtBQUNBO0ExRDgySkE7QTBEOTNKQTtBQWVBO0FBR0E7QTFEZzNKQTtBQUNBO0FBQ0E7QTBEOTJKQTtBQUNBO0ExRGczSkE7QTBENzRKQTtBQTRCQTtBQUdBO0ExRGszSkE7QUFDQTtBQUNBO0EwRGgzSkE7QUFDQTtBMURrM0pBO0EwRHQ1SkE7QUFtQ0E7QUFHQTtBMURvM0pBO0FBQ0E7QUFDQTtBMkR6eUpBOztBQUFBO0FBc0JBO0FBQ0E7QUFDQTtBM0R3eEpBO0EwRG42SkE7QUN5SUE7QUFJQTtBM0QweEpBO0FBQ0E7QUFDQTtBMkR6eEpBO0FBQ0E7QUFDQTtBM0QyeEpBO0EwRDc2SkE7QUNnSkE7QUFJQTtBM0Q2eEpBO0FBQ0E7QUFDQTtBMkQ1eEpBO0FBQ0E7QUFDQTtBM0Q4eEpBO0FBQ0E7QTJEenhKQTs7QUFDQTtBQUNBO0EzRDR4SkE7QTJEcjBKQTtBQTRDQTtBM0Q0eEpBO0EyRHgwSkE7QUE0Q0E7QTNEK3hKQTtBMkQzMEpBO0FBNENBO0EzRGt5SkE7QTJEOTBKQTtBQWdEQTtBM0RpeUpBO0EyRGoxSkE7QUFnREE7QTNEb3lKQTtBMkRwMUpBO0FBZ0RBO0EzRHV5SkE7QTJEdjFKQTtBQXFEQTtBM0RxeUpBO0EyRDExSkE7QUFxREE7QTNEd3lKQTtBMkQ3MUpBO0FBcURBO0EzRDJ5SkE7QTJEaDJKQTs7O0FBMkRBO0EzRDB5SkE7QTJEcjJKQTs7O0FBMkRBO0EzRCt5SkE7QTJEMTJKQTs7O0FBMkRBO0EzRG96SkE7QTJELzJKQTs7Ozs7QUErREE7QTNEdXpKQTtBMkR0M0pBOzs7OztBQStEQTtBM0Q4ekpBO0EyRDczSkE7Ozs7O0FBK0RBO0EzRHEwSkE7QTJEcDRKQTs7Ozs7QUFvRUE7QTNEdTBKQTtBMkQzNEpBOzs7OztBQW9FQTtBM0Q4MEpBO0EyRGw1SkE7Ozs7O0FBb0VBO0EzRHExSkE7QTJEejVKQTtBQTBFQTtBM0RrMUpBO0EyRDU1SkE7QUEwRUE7QTNEcTFKQTtBMkQvNUpBO0FBMEVBO0EzRHcxSkE7QTJEbDZKQTtBQThFQTtBM0R1MUpBO0EyRHI2SkE7QUE4RUE7QTNEMDFKQTtBMkR4NkpBO0FBOEVBO0EzRDYxSkE7QTJEMzZKQTtBQW1GQTtBM0QyMUpBO0EyRDk2SkE7QUFtRkE7QTNEODFKQTtBMkRqN0pBO0FBbUZBO0EzRGkySkE7QUFDQTtBMkQ1MUpBO0FBQ0E7QUFDQTtBQUNBO0EzRDgxSkE7QTJEMTdKQTtBQThGQTtBQUNBO0EzRCsxSkE7QTJEOTdKQTtBQThGQTtBQUNBO0EzRG0ySkE7QTJEbDhKQTtBQThGQTtBQUNBO0EzRHUySkE7QTJEdDhKQTtBQW1HQTtBQUNBO0EzRHMySkE7QTJEMThKQTtBQW1HQTtBQUNBO0EzRDAySkE7QTJEOThKQTtBQW1HQTtBQUNBO0EzRDgySkE7QUFDQTtBMkQxMkpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDN09BO0FBQ0E7QTVEMGxLQTtBMkQ3OUpBO0FBa0hBO0FBQ0E7QUFDQTtBM0Q4MkpBO0EyRGwrSkE7QUFrSEE7QUFDQTtBQUNBO0EzRG0zSkE7QTJEditKQTtBQWtIQTtBQUNBO0FBQ0E7QTNEdzNKQTtBMkQ1K0pBO0FBd0hBO0FBQ0E7QUFDQTtBQUNBO0EzRHUzSkE7QTJEbC9KQTtBQXdIQTtBQUNBO0FBQ0E7QUFDQTtBM0Q2M0pBO0EyRHgvSkE7QUF3SEE7QUFDQTtBQUNBO0FBQ0E7QTNEbTRKQTtBMkQ5L0pBO0FBZ0lBO0EzRGk0SkE7QTJEamdLQTtBQWdJQTtBM0RvNEpBO0EyRHBnS0E7QUFnSUE7QTNEdTRKQTtBMkR2Z0tBO0FBb0lBO0EzRHM0SkE7QTJEMWdLQTtBQW9JQTtBM0R5NEpBO0EyRDdnS0E7QUFvSUE7QTNENDRKQTtBQUNBO0EyRHY0SkE7QUFDQTtBQUNBO0FBQ0E7QTNEeTRKQTtBMkR0aEtBO0FBK0lBO0FBQ0E7QUFDQTtBM0QwNEpBO0EyRDNoS0E7QUErSUE7QUFDQTtBQUNBO0EzRCs0SkE7QTJEaGlLQTtBQStJQTtBQUNBO0FBQ0E7QTNEbzVKQTtBMkRyaUtBO0FBcUpBO0FBQ0E7QUFDQTtBM0RtNUpBO0EyRDFpS0E7QUFxSkE7QUFDQTtBQUNBO0EzRHc1SkE7QTJEL2lLQTtBQXFKQTtBQUNBO0FBQ0E7QTNENjVKQTtBQUNBO0EyRHQ1SkE7QUFDQTtBQUNBO0FBQ0E7QTNEdzVKQTtBMkR2NUpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTNEeTVKQTtBMkR2NUpBO0FBQ0E7QUFDQTtBQUNBO0EzRHk1SkE7QTJEdjVKQTtBQUNBO0FBQ0E7QUFDQTtBM0R5NUpBO0EyRHg1SkE7QUFDQTtBQUNBO0FBQ0E7QTNEMDVKQTtBMkR2NUpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EzRHk1SkE7QTJEeDVKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTNEMDVKQTtBMkR4NUpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTNEMDVKQTtBQUNBO0EyRGo1SkE7OztBQUNBO0FBQ0E7QUFDQTtBM0RxNUpBO0FBQ0E7QTZEenZLQTtBQUNBO0E3RDJ2S0E7QUFDQTtBNkR6dktBO0FBQ0E7QTdEMnZLQTtBQUNBO0E2RHp2S0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdEMnZLQTtBNkR4dktBO0FBQ0E7QUFDQTtBN0QwdktBO0FBQ0E7QTZEdHZLQTtBQUNBO0E3RHd2S0E7QTJEcm9LQTtBRWpIQTtBN0R5dktBO0EyRHhvS0E7QUVqSEE7QTdENHZLQTtBMkQzb0tBO0FFakhBO0E3RCt2S0E7QTJEOW9LQTtBRTdHQTtBN0Q4dktBO0EyRGpwS0E7QUU3R0E7QTdEaXdLQTtBMkRwcEtBO0FFN0dBO0E3RG93S0E7QUFDQTtBNkRod0tBO0FBQ0E7QTdEa3dLQTtBQUNBO0E2RGh3S0E7QUFDQTtBQUNBO0FBQ0E7QTdEa3dLQTtBQUNBO0E2RGh3S0E7QUFDQTtBN0Rrd0tBO0FBQ0E7QTZEaHdLQTtBQUNBO0E3RGt3S0E7QUFDQTtBNkRod0tBO0FBQ0E7QTdEa3dLQTtBMkQ3cUtBO0FFbkZBO0FBQ0E7QUFDQTtBN0Rtd0tBO0EyRGxyS0E7QUVuRkE7QUFDQTtBQUNBO0E3RHd3S0E7QTJEdnJLQTtBRW5GQTtBQUNBO0FBQ0E7QTdENndLQTtBMkQ1cktBO0FFN0VBO0FBQ0E7QUFDQTtBN0Q0d0tBO0EyRGpzS0E7QUU3RUE7QUFDQTtBQUNBO0E3RGl4S0E7QTJEdHNLQTtBRTdFQTtBQUNBO0FBQ0E7QTdEc3hLQTtBQUNBO0E2RGx4S0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0RveEtBO0EyRHJ0S0E7QUU3REE7QTdEcXhLQTtBMkR4dEtBO0FFN0RBO0E3RHd4S0E7QTJEM3RLQTtBRTdEQTtBN0QyeEtBO0EyRDl0S0E7QUV6REE7QTdEMHhLQTtBMkRqdUtBO0FFekRBO0E3RDZ4S0E7QTJEcHVLQTtBRXpEQTtBN0RneUtBO0FBQ0E7QTJEeHVLQTtBRWxEQTtBN0Q2eEtBO0EyRDN1S0E7QUVsREE7QTdEZ3lLQTtBMkQ5dUtBO0FFbERBO0E3RG15S0E7QUFDQTtBNkRoeUtBO0FBQ0E7QTdEa3lLQTtBQUNBO0EyRHR2S0E7QUV2Q0E7QTdEZ3lLQTtBMkR6dktBO0FFdkNBO0E3RG15S0E7QTJENXZLQTtBRXZDQTtBN0RzeUtBO0FBQ0E7QTJEaHdLQTtBRWpDQTtBQUNBO0E3RG95S0E7QTJEcHdLQTtBRWpDQTtBQUNBO0E3RHd5S0E7QTJEeHdLQTtBRWpDQTtBQUNBO0E3RDR5S0E7QUFDQTtBMkQ3d0tBO0FFMUJBO0E3RDB5S0E7QTJEaHhLQTtBRTFCQTtBN0Q2eUtBO0EyRG54S0E7QUUxQkE7QTdEZ3pLQTtBQUNBO0E2RDd5S0E7QUFDQTtBQUNBO0E3RCt5S0E7QUFDQTtBNkQ3eUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0QreUtBO0EyRG55S0E7QUVWQTtBQUNBO0E3RGd6S0E7QTJEdnlLQTtBRVZBO0FBQ0E7QTdEb3pLQTtBMkQzeUtBO0FFVkE7QUFDQTtBN0R3ektBO0EyRC95S0E7QUVMQTtBN0R1ektBO0EyRGx6S0E7QUVMQTtBN0QwektBO0EyRHJ6S0E7QUVMQTtBN0Q2ektBO0E2RDF6S0E7QUFHQTtBN0QwektBO0E2RHh6S0E7QUFDQTtBN0QwektBO0FBQ0E7QTZEdnpLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdEeXpLQTtBNkR4ektBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdEMHpLQTtBQUNBO0E4RG45S0E7QUZlQTtBQUVBO0E1RHM4S0E7QThEcDlLQTtBQUNBO0FBQUE7QTlEczlLQTtBOER2OUtBO0FBQ0E7QUFBQTtBOUR5OUtBO0E4RDE5S0E7QUFDQTtBQUFBO0E5RDQ5S0E7QThENzlLQTtBQUNBO0FBQUE7QTlEKzlLQTtBOERoK0tBO0FBQ0E7QUFBQTtBOURrK0tBO0E4RG4rS0E7QUFDQTtBQUFBO0E5RHErS0E7QThEdCtLQTtBQUNBO0FBQUE7QTlEdytLQTtBOER6K0tBO0FBQ0E7QUFBQTtBOUQyK0tBO0E4RDUrS0E7QUFDQTtBQUFBO0E5RDgrS0E7QThELytLQTtBQUNBO0FBQUE7QTlEaS9LQTtBQUNBO0E4RDUrS0E7QUFDQTtBRklBO0FBRUE7QTVEMCtLQTtBOEQ3K0tBO0FGQ0E7QUFFQTtBNUQ4K0tBO0FBQ0E7QUFDQTtBOER2L0tBO0FBQ0E7QUZJQTtBQUVBO0E1RDArS0E7QThENytLQTtBRkNBO0FBRUE7QTVEOCtLQTtBQUNBO0E4RDUrS0E7QUFDQTtBRk5BO0FBRUE7QUVNQTtBOUQrK0tBO0E4RDcrS0E7QUZWQTtBQUVBO0FFVUE7QTlEZy9LQTtBQUNBO0E4RHgvS0E7QUFDQTtBRk5BO0FBRUE7QUVNQTtBOUQrK0tBO0E4RDcrS0E7QUZWQTtBQUVBO0FFVUE7QTlEZy9LQTtBQUNBO0ErRGhoTEE7QUFDQTtBL0RraExBO0ErRGhoTEE7QUFDQTtBL0RraExBO0ErRGhoTEE7QUFDQTtBL0RraExBO0ErRC9nTEE7QUFDQTtBQUNBO0EvRGloTEE7QUFDQTtBK0QvZ0xBO0FBQ0E7QS9EaWhMQTtBQUNBO0ErRGhoTEE7QUFFQTtBL0RpaExBO0FBQ0E7QStEaGhMQTtBQUNBO0FBQ0E7QUFDQTtBL0RraExBO0FBQ0E7QStEamhMQTtBQUNBO0FBQ0E7QS9EbWhMQTtBQUNBO0ErRGxoTEE7QUFDQTtBQUNBO0FBQ0E7QS9Eb2hMQTtBQUNBO0ErRG5oTEE7QUFDQTtBQUNBO0EvRHFoTEE7QUFDQTtBK0RwaExBO0FBQ0E7QUFDQTtBL0RzaExBO0FBQ0E7QStEcmhMQTtBQUNBO0EvRHVoTEE7QUFDQTtBK0R0aExBO0FBQ0E7QS9Ed2hMQTtBQUNBO0ErRHZoTEE7QUFDQTtBQUNBO0EvRHloTEE7QUFDQTtBK0R4aExBO0FBQ0E7QUFDQTtBL0QwaExBO0FBQ0E7QTJEejhLQTtBSXBFQTtBL0RnaExBO0EyRDU4S0E7QUlwRUE7QS9EbWhMQTtBMkQvOEtBO0FJcEVBO0EvRHNoTEE7QUFDQTtBZ0UvbExBO0FBQ0E7QUFDQTtBQUVBO0FoRWdtTEE7QUFDQTtBZ0U3bExBO0FBQ0E7QUFDQTtBaEUrbExBO0FnRTdsTEE7QUFDQTtBQUNBO0FoRStsTEE7QWdFNWxMQTtBQUNBO0FBQ0E7QWhFOGxMQTtBQUNBO0FnRTNsTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QWhFNmxMQTtBZ0UzbExBO0FBQ0E7QUFDQTtBaEU2bExBO0FnRTFsTEE7QUFDQTtBQUNBO0FoRTRsTEE7QWdFMWxMQTtBQUNBO0FBQ0E7QWhFNGxMQTtBZ0UxbExBO0FBQ0E7QUFDQTtBaEU0bExBO0FnRTFsTEE7QUFDQTtBQUNBO0FoRTRsTEE7QWdFMWxMQTtBQUNBO0FBQ0E7QWhFNGxMQTtBZ0UxbExBO0FBQ0E7QUFDQTtBaEU0bExBO0FnRXpsTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEUybExBO0FnRXhsTEE7QUFDQTtBaEUwbExBO0FnRXZsTEE7QUFDQTtBaEV5bExBO0FnRXRsTEE7QUFDQTtBaEV3bExBO0FnRXJsTEE7QUFDQTtBaEV1bExBO0FnRXBsTEE7QUFDQTtBaEVzbExBO0FnRW5sTEE7QUFDQTtBQUNBO0FBQ0E7QWhFcWxMQTtBZ0U5a0xBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEVnbExBO0FnRTdrTEE7QUFDQTtBQUNBO0FoRStrTEE7QWdFNWtMQTtBQUNBO0FoRThrTEE7QWdFM2tMQTtBQUNBO0FoRTZrTEE7QWdFMWtMQTtBQUNBO0FBQ0E7QUFDQTtBaEU0a0xBO0FnRXprTEE7QUFDQTtBQUNBO0FBQ0E7QWhFMmtMQTtBZ0V4a0xBO0FBQ0E7QWhFMGtMQTtBZ0V2a0xBO0FBQ0E7QWhFeWtMQTtBZ0V0a0xBO0FBQ0E7QWhFd2tMQTtBZ0Vya0xBO0FBQ0E7QWhFdWtMQTtBZ0Vwa0xBO0FBQ0E7QUFDQTtBaEVza0xBO0FnRXBrTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FoRXNrTEE7QWdFbmtMQTtBQUNBO0FoRXFrTEE7QWdFamtMQTtBQUNBO0FoRW1rTEE7QWdFaGtMQTtBQUNBO0FoRWtrTEE7QWdFaGtMQTtBQUNBO0FoRWtrTEE7QTJEbm1MQTtBS3NDQTtBaEVna0xBO0EyRHRtTEE7QUtzQ0E7QWhFbWtMQTtBMkR6bUxBO0FLc0NBO0FoRXNrTEE7QTJENW1MQTtBSzJDQTtBaEVva0xBO0EyRC9tTEE7QUsyQ0E7QWhFdWtMQTtBMkRsbkxBO0FLMkNBO0FoRTBrTEE7QUFDQTtBaUVsd0xBO0FBQ0E7QUFDQTtBakVvd0xBO0FBQ0E7QWlFbHdMQTtBQUNBO0FqRW93TEE7QUFDQTtBaUVsd0xBO0FBQ0E7QWpFb3dMQTtBQUNBO0FpRWx3TEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBakVvd0xBO0FpRW53TEE7QUFDQTtBakVxd0xBO0FpRWx3TEE7QUFDQTtBQUNBO0FqRW93TEE7QWlFbHdMQTtBQUNBO0FqRW93TEE7QWlFandMQTtBQUNBO0FqRW13TEE7QWlFandMQTtBQUNBO0FBQ0E7QWpFbXdMQTtBQUNBO0EyRDNwTEE7QU05RkE7QWpFNHZMQTtBaUUzdkxBO0FBQ0E7QUFDQTtBakU2dkxBO0EyRGxxTEE7QU05RkE7QWpFbXdMQTtBaUVsd0xBO0FBQ0E7QUFDQTtBakVvd0xBO0EyRHpxTEE7QU05RkE7QWpFMHdMQTtBaUV6d0xBO0FBQ0E7QUFDQTtBakUyd0xBO0FBQ0E7QWlFdndMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBakV5d0xBO0FpRXZ3TEE7QUFDQTtBQUNBO0FMbERBO0FBQ0E7QUttREE7QUFDQTtBTDlDQTtBQUVBO0E1RHd6TEE7QTBEM3pMQTtBTzBDQTtBTGhEQTtBQUNBO0FLd0RBO0FqRTh3TEE7QUFDQTtBaUUzd0xBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUxwRUE7QUFDQTtBQU1BO0FBRUE7QTVENDBMQTtBMEQvMExBO0FPdURBO0FMN0RBO0FBQ0E7QTVEeTFMQTtBQUNBO0FpRS93TEE7QUFDQTtBakVpeExBO0FpRTl3TEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBTDdGQTtBQUNBO0FLOEZBO0FBQ0E7QWpFaXhMQTtBaUVoeExBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWpFa3hMQTtBMERqM0xBO0FPMEVBO0FMaEZBO0FBQ0E7QUt3R0E7QWpFb3hMQTtBQUNBO0FpRWp4TEE7QUx0R0E7QUFFQTtBNUR5M0xBO0FpRWx4TEE7QUFDQTtBQUNBO0FqRW94TEE7QTBEaDRMQTtBTzBHQTtBQUlBO0FqRXN4TEE7QUFDQTtBaUVueExBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUxySEE7QUFFQTtBNUQwNExBO0FpRXJ4TEE7QUFDQTtBakV1eExBO0FpRW54TEE7QUFDQTtBTDdIQTtBQUVBO0FLNkhBO0FBQUE7QWpFc3hMQTtBaUVyeExBO0FBSkE7QUFLQTtBQUFBO0FMaklBO0FBRUE7QTVEeTVMQTtBQUNBO0FpRXR4TEE7QUFDQTtBakV3eExBO0EwRDE1TEE7QU9pSUE7QUFHQTtBakUweExBO0FBQ0E7QWlFdnhMQTtBQUNBO0FqRXl4TEE7QTBEeDZMQTtBTzhJQTtBQUdBO0FqRTJ4TEE7QUFDQTtBQUNBO0FpRXh4TEE7QUFDQTtBQUdBO0FBQ0E7QWpFd3hMQTtBMkQzekxBO0FNcUNBO0FqRXl4TEE7QTJEOXpMQTtBTXFDQTtBakU0eExBO0EyRGowTEE7QU1xQ0E7QWpFK3hMQTtBaUU3eExBO0FBQ0E7QWpFK3hMQTtBMkR2MExBO0FNMENBO0FqRWd5TEE7QTJEMTBMQTtBTTBDQTtBakVteUxBO0EyRDcwTEE7QU0wQ0E7QWpFc3lMQTtBQUNBO0FpRW55TEE7QUFDQTtBQUNBO0FBQ0E7QWpFcXlMQTtBQUNBO0FpRW55TEE7QUFDQTtBQUNBO0FqRXF5TEE7QWlFcHlMQTtBQUNBO0FqRXN5TEE7QUFDQTtBMkQvMUxBO0FNK0RBO0FBQ0E7QUFDQTtBQUNBO0FqRW15TEE7QTJEcjJMQTtBTStEQTtBQUNBO0FBQ0E7QUFDQTtBakV5eUxBO0EyRDMyTEE7QU0rREE7QUFDQTtBQUNBO0FBQ0E7QWpFK3lMQTtBQUNBO0FpRXR5TEE7QUFDQTtBQUNBO0FqRXd5TEE7QUFDQTtBaUV0eUxBO0FBQ0E7QWpFd3lMQTtBQUNBO0FrRXZnTUE7QUFDQTtBQUNBO0FsRXlnTUE7QUFDQTtBa0V4Z01BO0FBQ0E7QUFDQTtBbEUwZ01BO0FBQ0E7QWtFeGdNQTtBQUNBO0FsRTBnTUE7QUFDQTtBa0V4Z01BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbEUwZ01BO0FBQ0E7QWtFeGdNQTtBQUNBO0FBQ0E7QUFDQTtBbEUwZ01BO0FBQ0E7QWtFeGdNQTtBQUNBO0FBQ0E7QWxFMGdNQTtBMkRwNkxBO0FPcEdBO0FBQ0E7QWxFMmdNQTtBMkR4NkxBO0FPcEdBO0FBQ0E7QWxFK2dNQTtBMkQ1NkxBO0FPcEdBO0FBQ0E7QWxFbWhNQTtBQUNBO0FtRTdqTUE7QUFDQTtBQUNBO0FBQ0E7QW5FK2pNQTtBbUU3ak1BO0FBQ0E7QW5FK2pNQTtBbUU1ak1BO0FBQ0E7QW5FOGpNQTtBbUUxak1BO0FBQ0E7QUFDQTtBbkU0ak1BO0FtRXpqTUE7QUFDQTtBbkUyak1BO0FBQ0E7QW1FeGpNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FuRTBqTUE7QTBEbGtNQTtBU0lBO0FBTUE7QW5FNGpNQTtBQUNBO0FtRTFqTUE7QUFDQTtBbkU0ak1BO0FBQ0E7QVFwOExBO0EyRHJIQTtBWlNBO0F2RG9qTUE7QUFDQTtBbUU1ak1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FuRThqTUE7QUFDQTtBbUUzak1BO0FBQ0E7QW5FNmpNQTtBMkRwK0xBO0FRdkZBO0FBQ0E7QW5FOGpNQTtBMkR4K0xBO0FRdkZBO0FBQ0E7QW5Fa2tNQTtBMkQ1K0xBO0FRdkZBO0FBQ0E7QW5Fc2tNQTtBQUNBO0FtRWprTUE7O0FBQ0E7QUFDQTtBbkVva01BO0FtRW5rTUE7O0FBQ0E7QUFDQTtBbkVza01BO0FtRWxrTUE7O0FBQ0E7QUFDQTtBbkVxa01BO0EyRGhnTUE7O0FRakVBO0FuRXFrTUE7QTJEcGdNQTs7QVFqRUE7QW5FeWtNQTtBMkR4Z01BOztBUWpFQTtBbkU2a01BO0EyRDVnTUE7O0FRM0RBO0FBQ0E7QW5FMmtNQTtBMkRqaE1BOztBUTNEQTtBQUNBO0FuRWdsTUE7QTJEdGhNQTs7QVEzREE7QUFDQTtBbkVxbE1BO0EyRDNoTUE7O0FRckRBO0FBQ0E7QW5Fb2xNQTtBMkRoaU1BOztBUXJEQTtBQUNBO0FuRXlsTUE7QTJEcmlNQTs7QVFyREE7QUFDQTtBbkU4bE1BO0FBQ0E7QTJEM2lNQTtBUTdDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FuRTJsTUE7QTJEbGpNQTtBUTdDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FuRWttTUE7QTJEempNQTtBUTdDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FuRXltTUE7QTJEaGtNQTtBUXJDQTtBbkV3bU1BO0EyRG5rTUE7QVFyQ0E7QW5FMm1NQTtBMkR0a01BO0FRckNBO0FuRThtTUE7QUFDQTtBbUUxbU1BO0FBQ0E7QUFDQTtBbkU0bU1BO0FtRXJtTUE7QUFDQTtBbkV1bU1BO0FtRXRtTUE7QUFDQTtBQUNBO0FBQ0E7QW5Fd21NQTtBbUV0bU1BO0FBQ0E7QW5Fd21NQTtBQUNBO0EyRDFsTUE7QVFUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkVzbU1BO0EyRG5tTUE7QVFUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkUrbU1BO0EyRDVtTUE7QVFUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkV3bk1BO0FBQ0E7QTJEdG5NQTtBUUdBO0FuRXNuTUE7QTJEem5NQTtBUUdBO0FuRXluTUE7QTJENW5NQTtBUUdBO0FuRTRuTUE7QUFDQTtBMkRob01BO0FRU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkUwbk1BO0EyRHZvTUE7QVFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FuRWlvTUE7QTJEOW9NQTtBUVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW5Fd29NQTtBMkRycE1BO0FRaUJBO0FuRXVvTUE7QTJEeHBNQTtBUWlCQTtBbkUwb01BO0EyRDNwTUE7QVFpQkE7QW5FNm9NQTtBbUV2b01BO0FBSUE7QUFDQTtBQUNBO0FuRXNvTUE7QTJEbnFNQTtBUXlCQTtBbkU2b01BO0EyRHRxTUE7QVF5QkE7QW5FZ3BNQTtBMkR6cU1BO0FReUJBO0FuRW1wTUE7QW1FOW9NQTtBQUNBO0FBQ0E7QUFDQTtBbkVncE1BO0EyRGpyTUE7QVFzQ0E7QW5FOG9NQTtBMkRwck1BO0FRc0NBO0FuRWlwTUE7QTJEdnJNQTtBUXNDQTtBbkVvcE1BO0FtRTdvTUE7QUFBQTtBbkVncE1BO0FBQ0E7QW1FN29NQTtBQUNBO0FBQ0E7QW5FK29NQTtBMkRsc01BO0FRcURBO0FuRWdwTUE7QTJEcnNNQTtBUXFEQTtBbkVtcE1BO0EyRHhzTUE7QVFxREE7QW5Fc3BNQTtBbUVwcE1BO0FBQ0E7QW5Fc3BNQTtBQUNBO0FtRW5wTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkVxcE1BO0FtRXBwTUE7QUFDQTtBbkVzcE1BO0FtRXJwTUE7QUFBQTtBbkV3cE1BO0FBQ0E7QW1FcnBNQTtBUnZFQTs7OztBUThFQTtBbkVxcE1BO0EyRG51TUE7Ozs7QVE4RUE7QW5FMnBNQTtBMkR6dU1BOzs7O0FROEVBO0FuRWlxTUE7QUFDQTtBMkRodk1BOzs7O0FRd0ZBO0FuRThwTUE7QTJEdHZNQTs7OztBUXdGQTtBbkVvcU1BO0EyRDV2TUE7Ozs7QVF3RkE7QW5FMHFNQTtBQUNBO0EyRG53TUE7QVErRkE7QW5FdXFNQTtBMkR0d01BO0FRK0ZBO0FuRTBxTUE7QTJEendNQTtBUStGQTtBbkU2cU1BO0FBQ0E7QW9FejVNQTtBQUNBO0FBQ0E7QUFDQTtBcEUyNU1BO0FBQ0E7QW9FejVNQTtBQUNBO0FBQ0E7QUFDQTtBcEUyNU1BO0FBQ0E7QXFFcjZNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FyRXU2TUE7QXFFdDZNQTtBQUFBO0FyRXk2TUE7QUFDQTtBcUV2Nk1BO0FBQ0E7QXJFeTZNQTtBQUNBO0FxRXY2TUE7QUFDQTtBQUNBO0FBUUE7Ozs7OztBQUFBO0FyRXc2TUE7QTJEbHpNQTtBVTNIQTtBQUNBO0FBQ0E7QXJFZzdNQTtBMkR2ek1BO0FVM0hBO0FBQ0E7QUFDQTtBckVxN01BO0EyRDV6TUE7QVUzSEE7QUFDQTtBQUNBO0FyRTA3TUE7QUFDQTtBcUUvNk1BO0FBRUE7QUFDQTtBckVnN01BO0FLajBNQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FMZzBNQTtBSzV6TUE7QUFDQTtBTDh6TUE7QXFFdDdNQTtBQUNBO0FBQ0E7QUFDQTtBckV3N01BO0FxRXY3TUE7QUFDQTtBckV5N01BO0FxRXg3TUE7QUFBQTtBckUyN01BO0FxRTE3TUE7QUFBQTtBckU2N01BO0FxRTM3TUE7QUFDQTtBckU2N01BO0FxRXo3TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FyRTI3TUE7QUFDQTtBcUV4N01BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FyRTA3TUE7QUFDQTtBcUV4N01BO0FBQ0E7QUFDQTtBckUwN01BO0FxRXg3TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJFMDdNQTtBQUNBO0FxRXY3TUE7O0FBRUE7QXJFeTdNQTtBQUNBO0FxRXQ3TUE7QUFDQTtBQUNBO0FBQ0E7QXJFdzdNQTtBcUV2N01BO0FBQ0E7QXJFeTdNQTtBcUV2N01BO0FBQ0E7QXJFeTdNQTtBcUV2N01BO0FBQ0E7QXJFeTdNQTtBcUV4N01BO0FBQ0E7QUFDQTtBQUNBO0FyRTA3TUE7QXFFdDdNQTtBQUNBO0FyRXc3TUE7QUFDQTtBcUVyN01BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QXJFbzdNQTtBMkR6Nk1BO0FVZkE7QXJFMjdNQTtBMkQ1Nk1BO0FVZkE7QXJFODdNQTtBMkQvNk1BO0FVZkE7QXJFaThNQTtBcUUzN01BO0FBQ0E7QXJFNjdNQTtBMkRyN01BO0FVTkE7QXJFODdNQTtBMkR4N01BO0FVTkE7QXJFaThNQTtBMkQzN01BO0FVTkE7QXJFbzhNQTtBQUNBO0EwRHZqTkE7QVd1SEE7QUFFQTtBckVrOE1BO0FBQ0E7QUFDQTtBcUVoOE1BO0FBQ0E7QUFDQTtBckVrOE1BO0FxRWo4TUE7QUFDQTtBckVtOE1BO0FxRWo4TUE7QUFDQTtBckVtOE1BO0FxRWo4TUE7QUFDQTtBQUNBO0FyRW04TUE7QUFDQTtBcUVoOE1BO0FBQ0E7QUFNQTtBckU2N01BO0FxRWw4TUE7QUFDQTtBQUNBO0FyRW84TUE7QTREdm1OQTtBQUNBO0E1RHltTkE7QTJELzlNQTtBVTZCQTtBckVxOE1BO0EyRGwrTUE7QVU2QkE7QXJFdzhNQTtBMkRyK01BO0FVNkJBO0FyRTI4TUE7QXFFeDhNQTtBQUNBO0FBQ0E7QUFDQTtBckUwOE1BO0FBQ0E7QXFFdjhNQTtBQUNBO0FyRXk4TUE7QUFDQTtBcUV2OE1BO0FBQ0E7QUFDQTtBckV5OE1BO0FBQ0E7QXFFdDhNQTtBQUlBO0FBQ0E7QUFDQTtBckVxOE1BO0FxRTE4TUE7QUFDQTtBckU0OE1BO0FxRXY4TUE7QUFDQTtBQUNBO0FyRXk4TUE7QTREOW9OQTtBQUNBO0E1RGdwTkE7QUFDQTtBcUV4OE1BO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QXJFeThNQTtBQUNBO0FxRXY4TUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FyRXc4TUE7QUFDQTtBcUV2OE1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FyRXk4TUE7QXFFeDhNQTtBQUNBO0FyRTA4TUE7QUFDQTtBcUV4OE1BOztBQUVBO0FyRTA4TUE7QUFDQTtBcUV6OE1BO0FBQ0E7QXJFMjhNQTtBQUNBO0FxRTE4TUE7QUFDQTtBQUNBO0FyRTQ4TUE7QXFFMzhNQTtBQUNBO0FBQ0E7QUFDQTtBckU2OE1BO0FBQ0E7QXFFeDhNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBckUwOE1BO0FxRXY4TUE7O0FBRUE7QUFDQTtBckV5OE1BO0FxRXQ4TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBckV3OE1BO0EyRDVrTkE7QVV1SUE7QXJFdzhNQTtBMkQva05BO0FVdUlBO0FyRTI4TUE7QTJEbGxOQTtBVXVJQTtBckU4OE1BO0FxRTE4TUE7QUFDQTtBckU0OE1BO0FxRXo4TUE7QUFDQTtBQUNBO0FBQ0E7QXJFMjhNQTtBcUV4OE1BO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QXJFMDhNQTtBcUV2OE1BO0FBQ0E7QXJFeThNQTtBQUNBO0FzRTl1TkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdEVndk5BO0FBQ0E7QXNFN3VOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F0RSt1TkE7QTJEbm5OQTtBVzFIQTtBQUNBO0FBQ0E7QXRFZ3ZOQTtBMkR4bk5BO0FXMUhBO0FBQ0E7QUFDQTtBdEVxdk5BO0EyRDduTkE7QVcxSEE7QUFDQTtBQUNBO0F0RTB2TkE7QXNFeHZOQTtBQVZBO0FBV0E7QXRFMnZOQTtBQUNBO0EyRHZvTkE7QVdqSEE7QUFDQTtBdEUydk5BO0EyRDNvTkE7QVdqSEE7QUFDQTtBdEUrdk5BO0EyRC9vTkE7QVdqSEE7QUFDQTtBdEVtd05BO0FzRS92TkE7QUFDQTtBdEVpd05BO0FzRTl2TkE7QUFDQTtBdEVnd05BO0EyRHpwTkE7QVdwR0E7QXRFZ3dOQTtBMkQ1cE5BO0FXcEdBO0F0RW13TkE7QTJEL3BOQTtBV3BHQTtBdEVzd05BO0FzRWx3TkE7QUFDQTtBdEVvd05BO0FzRWp3TkE7QUFDQTtBQUNBO0F0RW13TkE7QXNFaHdOQTtBQUNBO0F0RWt3TkE7QXNFL3ZOQTtBQUNBO0F0RWl3TkE7QUFDQTtBc0U5dk5BO0FBQ0E7QUFDQTtBQU1BO0FBQ0E7QXRFMnZOQTtBMkR0ck5BO0FXMUVBO0FBQ0E7QXRFbXdOQTtBMkQxck5BO0FXMUVBO0FBQ0E7QXRFdXdOQTtBMkQ5ck5BO0FXMUVBO0FBQ0E7QXRFMndOQTtBc0V0d05BO0FBQ0E7QXRFd3dOQTtBQUNBO0FzRXJ3TkE7QUFDQTtBQUNBO0FBU0E7QUFDQTtBQUNBO0F0RSt2TkE7QTJEN3NOQTtBVzNEQTtBdEUyd05BO0EyRGh0TkE7QVczREE7QXRFOHdOQTtBMkRudE5BO0FXM0RBO0F0RWl4TkE7QTJEdHROQTtBV3ZEQTtBdEVneE5BO0EyRHp0TkE7QVd2REE7QXRFbXhOQTtBMkQ1dE5BO0FXdkRBO0F0RXN4TkE7QXNFaHhOQTtBQUNBO0FBQ0E7QXRFa3hOQTtBc0VoeE5BO0FBQ0E7QUFDQTtBQUNBO0F0RWt4TkE7QUFDQTtBc0Uvd05BO0FBQ0E7QUFDQTtBdEVpeE5BO0FBQ0E7QTJEOXVOQTtBVy9CQTtBdEVneE5BO0EyRGp2TkE7QVcvQkE7QXRFbXhOQTtBMkRwdk5BO0FXL0JBO0F0RXN4TkE7QXNFcHhOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRFc3hOQTtBc0VyeE5BO0FBTkE7QUFPQTtBdEV3eE5BO0FBQ0E7QXNFdnhOQTtBQUNBO0FBQ0E7QXRFeXhOQTtBc0V0eE5BO0FBR0E7QXRFc3hOQTtBc0VueE5BO0FBQ0E7QXRFcXhOQTtBc0VweE5BO0FBQ0E7QXRFc3hOQTtBMkRoeE5BO0FXSEE7QXRFc3hOQTtBMkRueE5BO0FXSEE7QXRFeXhOQTtBMkR0eE5BO0FXSEE7QXRFNHhOQTtBQUNBO0FzRXR4TkE7QUFDQTtBQUNBO0F0RXd4TkE7QXNFbnhOQTtBQUNBO0F0RXF4TkE7QUFDQTtBc0VseE5BO0FBQ0E7QUFDQTtBQUNBO0F0RW94TkE7QTJEdnlOQTtBV3NCQTtBdEVveE5BO0EyRDF5TkE7QVdzQkE7QXRFdXhOQTtBMkQ3eU5BO0FXc0JBO0F0RTB4TkE7QTBEcjZOQTtBWThJQTtBQUVBO0F0RXl4TkE7QUFDQTtBc0V2eE5BO0FBQ0E7QXRFeXhOQTtBc0V0eE5BO0FBQ0E7QUFDQTtBdEV3eE5BO0EyRDV6TkE7QVdzQ0E7QXRFeXhOQTtBMkQvek5BO0FXc0NBO0F0RTR4TkE7QTJEbDBOQTtBV3NDQTtBdEUreE5BO0FzRTV4TkE7QUFDQTtBQUNBO0F0RTh4TkE7QXNFM3hOQTtBQUdBO0F0RTJ4TkE7QUFDQTtBc0V4eE5BO0FBQ0E7QXRFMHhOQTtBQUNBO0FzRXh4TkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdEUweE5BO0EyRHYxTkE7QVcrREE7QUFDQTtBdEUyeE5BO0EyRDMxTkE7QVcrREE7QUFDQTtBdEUreE5BO0EyRC8xTkE7QVcrREE7QUFDQTtBdEVteU5BO0FBQ0E7QXNFaHlOQTtBQUNBO0FBQ0E7QXRFa3lOQTtBMkR4Mk5BO0FXd0VBO0F0RW15TkE7QTJEMzJOQTtBV3dFQTtBdEVzeU5BO0EyRDkyTkE7QVd3RUE7QXRFeXlOQTtBc0V2eU5BO0FBQUE7QXRFMHlOQTtBQUNBO0FzRXh5TkE7QUFJQTtBdEV1eU5BO0EyRHgzTkE7QVcrRUE7QXRFNHlOQTtBMkQzM05BO0FXK0VBO0F0RSt5TkE7QTJEOTNOQTtBVytFQTtBdEVrek5BO0FBQ0E7QXNFOXlOQTtBQUNBO0F0RWd6TkE7QTREaGhPQTtBQUNBO0E1RGtoT0E7QUFDQTtBc0U5eU5BO0FBQ0E7QUFDQTtBdEVnek5BO0FzRTl5TkE7QUFDQTtBdEVnek5BO0FBQ0E7QXNFNXlOQTtBQUNBO0FBQ0E7QXRFOHlOQTtBQUNBO0FzRTN5TkE7QUFDQTtBdEU2eU5BO0FzRTN5TkE7QUFDQTtBdEU2eU5BO0FzRTN5TkE7QUFDQTtBdEU2eU5BO0FBQ0E7QXNFMXlOQTtBQUtBO0F0RTR5TkE7QUFDQTtBc0UxeU5BO0FBQ0E7QUFDQTtBQUNBO0F0RTR5TkE7QUFDQTtBc0UzeU5BO0FBR0E7QXRFNnlOQTtBQUNBO0FzRTV5TkE7QUFDQTtBQUNBO0F0RTh5TkE7QUFDQTtBc0UzeU5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRFNnlOQTtBQUNBO0F1RTNrT0E7QUFDQTtBdkU2a09BO0F1RTFrT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZFNGtPQTtBMkQzOE5BO0FZL0hBO0FBQ0E7QXZFNmtPQTtBMkQvOE5BO0FZL0hBO0FBQ0E7QXZFaWxPQTtBMkRuOU5BO0FZL0hBO0FBQ0E7QXZFcWxPQTtBMkR2OU5BO0FZekhBO0F2RW1sT0E7QTJEMTlOQTtBWXpIQTtBdkVzbE9BO0EyRDc5TkE7QVl6SEE7QXZFeWxPQTtBdUVybE9BO0FBQ0E7QUFDQTtBdkV1bE9BO0EyRHArTkE7QVkvR0E7QUFDQTtBQUNBO0FBQ0E7QXZFc2xPQTtBMkQxK05BO0FZL0dBO0FBQ0E7QUFDQTtBQUNBO0F2RTRsT0E7QTJEaC9OQTtBWS9HQTtBQUNBO0FBQ0E7QUFDQTtBdkVrbU9BO0F1RTdsT0E7QUFDQTtBdkUrbE9BO0FBQ0E7QXdFdG9PQTtBQUNBO0FBQ0E7QXhFd29PQTtBQUNBO0F3RXRvT0E7QUFDQTtBQUNBO0F4RXdvT0E7QUFDQTtBd0V0b09BO0FBQ0E7QXhFd29PQTtBQUNBO0F3RXRvT0E7QUFDQTtBQUNBO0F4RXdvT0E7QUFDQTtBd0V0b09BO0FBQ0E7QXhFd29PQTtBQUNBO0F3RXRvT0E7QUFDQTtBeEV3b09BO0FBQ0E7QXdFdG9PQTtBQUNBO0F4RXdvT0E7QUFDQTtBMkR6aE9BO0FhM0dBO0F4RXVvT0E7QTJENWhPQTtBYTNHQTtBeEUwb09BO0EyRC9oT0E7QWEzR0E7QXhFNm9PQTtBQUNBO0F3RTFvT0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBeEV5b09BO0EyRHppT0E7QWFyR0E7QXhFaXBPQTtBMkQ1aU9BO0FhckdBO0F4RW9wT0E7QXdFN29PQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F4RStvT0E7QTJEcmpPQTtBYXhGQTtBeEVncE9BO0EyRHhqT0E7QWF4RkE7QXhFbXBPQTtBMkQzak9BO0FheEZBO0F4RXNwT0E7QXdFbHBPQTtBQUNBO0F4RW9wT0E7QXdFanBPQTtBQUNBO0F4RW1wT0E7QTJEcGtPQTtBYTdFQTtBeEVvcE9BO0F3RW5wT0E7QUFDQTtBeEVxcE9BO0F3RW5wT0E7QUFDQTtBeEVxcE9BO0EyRDdrT0E7QWE3RUE7QXhFNnBPQTtBd0U1cE9BO0FBQ0E7QXhFOHBPQTtBd0U1cE9BO0FBQ0E7QXhFOHBPQTtBMkR0bE9BO0FhN0VBO0F4RXNxT0E7QXdFcnFPQTtBQUNBO0F4RXVxT0E7QXdFcnFPQTtBQUNBO0F4RXVxT0E7QXdFbHFPQTtBQUNBO0FBQ0E7QXhFb3FPQTtBMkRubU9BO0FhL0RBO0F4RXFxT0E7QTJEdG1PQTtBYS9EQTtBeEV3cU9BO0EyRHptT0E7QWEvREE7QXhFMnFPQTtBd0V2cU9BO0FBQ0E7QUFDQTtBeEV5cU9BO0EyRGhuT0E7QWFwREE7QXhFdXFPQTtBMkRubk9BO0FhcERBO0F4RTBxT0E7QTJEdG5PQTtBYXBEQTtBeEU2cU9BO0EyRHpuT0E7QWE5Q0E7QXhFMHFPQTtBMkQ1bk9BO0FhOUNBO0F4RTZxT0E7QTJEL25PQTtBYTlDQTtBeEVnck9BO0F3RTVxT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXhFOHFPQTtBd0UzcU9BO0FBQ0E7QUFDQTtBQUNBO0F4RTZxT0E7QUFDQTtBeUU1eE9BO0FBQ0E7QXpFOHhPQTtBeUU1eE9BO0FBQ0E7QUFDQTtBQUNBO0F6RTh4T0E7QXlFM3hPQTtBQUNBO0F6RTZ4T0E7QUFDQTtBeUUxeE9BO0FBQ0E7QUFDQTtBekU0eE9BO0FBQ0E7QXlFMXhPQTtBQUNBO0FBQ0E7QXpFNHhPQTtBQUNBO0F5RTF4T0E7QUFDQTtBQUNBO0F6RTR4T0E7QUFDQTtBeUUxeE9BO0FBQ0E7QUFDQTtBekU0eE9BO0FBQ0E7QXlFMXhPQTtBQUNBO0FBQ0E7QXpFNHhPQTtBQUNBO0F5RTF4T0E7QUFDQTtBQUNBO0FBQ0E7QXpFNHhPQTtBQUNBO0F5RTF4T0E7QUFDQTtBQUNBO0FBQ0E7QXpFNHhPQTtBQUNBO0F5RTF4T0E7QUFDQTtBekU0eE9BO0FBQ0E7QTBFbjBPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBMUVxME9BO0FBQ0E7QTBFL3pPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBMUVpME9BO0FBQ0E7QTBFL3pPQTtBQUNBO0FBQ0E7QTFFaTBPQTtBQUNBO0EwRS96T0E7QUFDQTtBMUVpME9BO0FBQ0E7QTBFL3pPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QTFFbzBPQTtBQUNBO0EwRWwwT0E7QUFDQTtBMUVvME9BO0FBQ0E7QTBFbDBPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0ExRW8wT0E7QUFDQTtBMEVsME9BO0FBQ0E7QUFBQTtBMUVvME9BO0FBQ0E7QTBFbDBPQTtBQUNBO0FBQUE7QTFFbzBPQTtBQUNBO0EwRWwwT0E7QUFDQTtBQUNBO0ExRW8wT0E7QTBFbDBPQTtBQUNBO0ExRW8wT0E7QUFDQTtBMEUvek9BO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QTFFZzBPQTtBQUNBO0EwRTl6T0E7QUFDQTtBQUFBO0ExRWcwT0E7QUFDQTtBMEU5ek9BO0FBQ0E7QUFBQTtBMUVnME9BO0FBQ0E7QTBFOXpPQTtBQUNBO0FBQUE7QTFFaTBPQTtBMEVoME9BO0FBQUE7QTFFbTBPQTtBQUNBO0EwRWowT0E7QUFDQTtBQUNBO0ExRW0wT0E7QTBFbDBPQTtBQUNBO0ExRW8wT0E7QUFDQTtBMEUvek9BO0FBQ0E7QUFDQTtBQUNBO0ExRWkwT0E7QTBFL3pPQTtBQUNBO0FBQ0E7QTFFaTBPQTtBMEVoME9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTFFazBPQTtBMEU5ek9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0ExRWcwT0E7QUFDQTtBMkUzOU9BO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QTNFMjlPQTtBQUNBO0E0RXArT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTVFcytPQTtBQUNBO0E0RW4rT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNUVxK09BO0FBQ0E7QTRFbitPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTVFcytPQTtBQUNBO0E0RXArT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E1RXMrT0E7QUFDQTtBNEVyK09BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNUV1K09BO0FBQ0E7QTRFdCtPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QTVFMCtPQTtBQUNBO0E0RXorT0E7QUFDQTtBQUNBO0E1RTIrT0E7QUFDQTtBNEUxK09BO0FBQ0E7O0FBQUE7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0E1RSsrT0E7QUFDQTtBNEU3K09BO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E1RWcvT0E7QUFDQTtBNEUvK09BO0FBQUE7QTVFay9PQTtBQUNBO0E0RWgvT0E7QUFDQTtBQUFBO0E1RW0vT0E7QUFDQTtBNEVuL09BO0FBQUE7QTVFcy9PQTtBQUNBO0E0RXQvT0E7QUFBQTtBNUV5L09BO0FBQ0E7QTRFei9PQTtBQUFBO0E1RTQvT0E7QUFDQTtBNEU1L09BO0FBQUE7QTVFKy9PQTtBQUNBO0E0RS8vT0E7QUFBQTtBNUVrZ1BBO0FBQ0E7QTRFbGdQQTtBQUFBO0E1RXFnUEE7QUFDQTtBNEVyZ1BBO0FBQUE7QTVFd2dQQTtBQUNBO0E0RXhnUEE7QUFBQTtBNUUyZ1BBO0FBQ0E7QTRFM2dQQTtBQUFBO0E1RThnUEE7QUFDQTtBNEU5Z1BBO0FBQUE7QTVFaWhQQTtBQUNBO0E0RWpoUEE7QUFBQTtBNUVvaFBBO0FBQ0E7QTRFcGhQQTtBQUFBO0E1RXVoUEE7QUFDQTtBNEV2aFBBO0FBQUE7QTVFMGhQQTtBQUNBO0E0RTFoUEE7QUFBQTtBNUU2aFBBO0FBQ0E7QTRFN2hQQTtBQUFBO0E1RWdpUEE7QUFDQTtBNEVoaVBBO0FBQUE7QTVFbWlQQTtBQUNBO0E0RW5pUEE7QUFBQTtBNUVzaVBBO0FBQ0E7QTRFdGlQQTtBQUFBO0E1RXlpUEE7QUFDQTtBNEV6aVBBO0FBQUE7QTVFNGlQQTtBQUNBO0E0RTVpUEE7QUFBQTtBNUUraVBBO0FBQ0E7QTRFL2lQQTtBQUFBO0E1RWtqUEE7QUFDQTtBNEVsalBBO0FBQUE7QTVFcWpQQTtBQUNBO0E0RXJqUEE7QUFBQTtBNUV3alBBO0FBQ0E7QTRFeGpQQTtBQUFBO0E1RTJqUEE7QUFDQTtBNEUzalBBO0FBQUE7QTVFOGpQQTtBQUNBO0E0RTlqUEE7QUFBQTtBNUVpa1BBO0FBQ0E7QTRFamtQQTtBQUFBO0E1RW9rUEE7QUFDQTtBNEVwa1BBO0FBQUE7QTVFdWtQQTtBQUNBO0E0RXZrUEE7QUFBQTtBNUUwa1BBO0FBQ0E7QTRFMWtQQTtBQUFBO0E1RTZrUEE7QUFDQTtBNEU3a1BBO0FBQUE7QTVFZ2xQQTtBQUNBO0E0RWhsUEE7QUFBQTtBNUVtbFBBO0FBQ0E7QTRFbmxQQTtBQUFBO0E1RXNsUEE7QUFDQTtBNEV0bFBBO0FBQUE7QTVFeWxQQTtBQUNBO0E0RXpsUEE7QUFBQTtBNUU0bFBBO0FBQ0E7QTRFNWxQQTtBQUFBO0E1RStsUEE7QUFDQTtBNEUvbFBBO0FBQUE7QTVFa21QQTtBQUNBO0E0RWxtUEE7QUFBQTtBNUVxbVBBO0FBQ0E7QTRFcm1QQTtBQUFBO0E1RXdtUEE7QUFDQTtBNEV4bVBBO0FBQUE7QTVFMm1QQTtBQUNBO0E0RTNtUEE7QUFBQTtBNUU4bVBBO0FBQ0E7QTRFOW1QQTtBQUFBO0E1RWluUEE7QUFDQTtBNEVqblBBO0FBQUE7QTVFb25QQTtBQUNBO0E0RXBuUEE7QUFBQTtBNUV1blBBO0FBQ0E7QTRFdm5QQTtBQUFBO0E1RTBuUEE7QUFDQTtBNEUxblBBO0FBQUE7QTVFNm5QQTtBQUNBO0E0RTduUEE7QUFBQTtBNUVnb1BBO0FBQ0E7QTRFaG9QQTtBQUFBO0E1RW1vUEE7QUFDQTtBNEVub1BBO0FBQUE7QTVFc29QQTtBQUNBO0E0RXRvUEE7QUFBQTtBNUV5b1BBO0FBQ0E7QTRFem9QQTtBQUFBO0E1RTRvUEE7QUFDQTtBNEU1b1BBO0FBQUE7QTVFK29QQTtBQUNBO0E0RS9vUEE7QUFBQTtBNUVrcFBBO0FBQ0E7QTRFbHBQQTtBQUFBO0E1RXFwUEE7QUFDQTtBNEVycFBBO0FBQUE7QTVFd3BQQTtBQUNBO0E0RXhwUEE7QUFBQTtBNUUycFBBO0FBQ0E7QTRFM3BQQTtBQUFBO0E1RThwUEE7QUFDQTtBNEU5cFBBO0FBQUE7QTVFaXFQQTtBQUNBO0E0RWpxUEE7QUFBQTtBNUVvcVBBO0FBQ0E7QTRFcHFQQTtBQUFBO0E1RXVxUEE7QUFDQTtBNEV2cVBBO0FBQUE7QTVFMHFQQTtBQUNBO0E0RTFxUEE7QUFBQTtBNUU2cVBBO0FBQ0E7QTRFN3FQQTtBQUFBO0E1RWdyUEE7QUFDQTtBNEVoclBBO0FBQUE7QTVFbXJQQTtBQUNBO0E0RW5yUEE7QUFBQTtBNUVzclBBO0FBQ0E7QTRFdHJQQTtBQUFBO0E1RXlyUEE7QUFDQTtBNEV6clBBO0FBQUE7QTVFNHJQQTtBQUNBO0E0RTVyUEE7QUFBQTtBNUUrclBBO0FBQ0E7QTRFL3JQQTtBQUFBO0E1RWtzUEE7QUFDQTtBNEVsc1BBO0FBQUE7QTVFcXNQQTtBQUNBO0E0RXJzUEE7QUFBQTtBNUV3c1BBO0FBQ0E7QTRFeHNQQTtBQUFBO0E1RTJzUEE7QUFDQTtBNEUzc1BBO0FBQUE7QTVFOHNQQTtBQUNBO0E0RTlzUEE7QUFBQTtBNUVpdFBBO0FBQ0E7QTRFanRQQTtBQUFBO0E1RW90UEE7QUFDQTtBNEVwdFBBO0FBQUE7QTVFdXRQQTtBQUNBO0E0RXZ0UEE7QUFBQTtBNUUwdFBBO0FBQ0E7QTRFMXRQQTtBQUFBO0E1RTZ0UEE7QUFDQTtBNEU3dFBBO0FBQUE7QTVFZ3VQQTtBQUNBO0E0RWh1UEE7QUFBQTtBNUVtdVBBO0FBQ0E7QTRFbnVQQTtBQUFBO0E1RXN1UEE7QUFDQTtBNEV0dVBBO0FBQUE7QTVFeXVQQTtBQUNBO0E0RXp1UEE7QUFBQTtBNUU0dVBBO0FBQ0E7QTRFNXVQQTtBQUFBO0E1RSt1UEE7QUFDQTtBNEUvdVBBO0FBQUE7QTVFa3ZQQTtBQUNBO0E0RWx2UEE7QUFBQTtBNUVxdlBBO0FBQ0E7QTRFcnZQQTtBQUFBO0E1RXd2UEE7QUFDQTtBNEV4dlBBO0FBQUE7QTVFMnZQQTtBQUNBO0E0RTN2UEE7QUFBQTtBNUU4dlBBO0FBQ0E7QTRFOXZQQTtBQUFBO0E1RWl3UEE7QUFDQTtBNEVqd1BBO0FBQUE7QTVFb3dQQTtBQUNBO0E0RXB3UEE7QUFBQTtBNUV1d1BBO0FBQ0E7QTRFdndQQTtBQUFBO0E1RTB3UEE7QUFDQTtBNEUxd1BBO0FBQUE7QTVFNndQQTtBQUNBO0E0RTd3UEE7QUFBQTtBNUVneFBBO0FBQ0E7QTRFaHhQQTtBQUFBO0E1RW14UEE7QUFDQTtBNEVueFBBO0FBQUE7QTVFc3hQQTtBQUNBO0E0RXR4UEE7QUFBQTtBNUV5eFBBO0FBQ0E7QTRFenhQQTtBQUFBO0E1RTR4UEE7QUFDQTtBNEU1eFBBO0FBQUE7QTVFK3hQQTtBQUNBO0E2RXIrUEE7QUFDQTtBN0V1K1BBO0E2RXQrUEE7QUFDQTtBN0V3K1BBO0EyRC8xUEE7QWtCcklBO0E3RXUrUEE7QTJEbDJQQTtBa0JySUE7QTdFMCtQQTtBMkRyMlBBO0FrQnJJQTtBN0U2K1BBO0FBQ0E7QTZFeCtQQTtBQUVBO0E3RXkrUEE7QTZFditQQTtBQUNBO0E3RXkrUEE7QTZFditQQTtBQUNBO0E3RXkrUEE7QTZFditQQTtBQUNBO0E3RXkrUEE7QUFDQTtBNkV0K1BBO0FBQ0E7QTdFdytQQTtBNkV2K1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBakJyQkE7QUFDQTtBNUQrL1BBO0EyRGw0UEE7QWtCdEdBO0FBQ0E7QUFDQTtBN0UyK1BBO0EyRHY0UEE7QWtCdEdBO0FBQ0E7QUFDQTtBN0VnL1BBO0EyRDU0UEE7QWtCdEdBO0FBQ0E7QUFDQTtBN0VxL1BBO0EyRGo1UEE7QWtCaEdBO0FBQ0E7QUFDQTtBQUNBO0E3RW8vUEE7QTJEdjVQQTtBa0JoR0E7QUFDQTtBQUNBO0FBQ0E7QTdFMC9QQTtBMkQ3NVBBO0FrQmhHQTtBQUNBO0FBQ0E7QUFDQTtBN0VnZ1FBO0EyRG42UEE7QWtCeEZBO0E3RTgvUEE7QTJEdDZQQTtBa0J4RkE7QTdFaWdRQTtBMkR6NlBBO0FrQnhGQTtBN0VvZ1FBO0FBQ0E7QTZFOS9QQTtBQUNBO0FBQ0E7QTdFZ2dRQTtBNkU5L1BBO0FBQ0E7QTdFZ2dRQTtBNkU5L1BBO0FBQ0E7QTdFZ2dRQTtBMkR2N1BBO0FrQnJFQTtBN0UrL1BBO0EyRDE3UEE7QWtCckVBO0E3RWtnUUE7QTJENzdQQTtBa0JyRUE7QTdFcWdRQTtBMkRoOFBBO0FrQmhFQTtBN0VtZ1FBO0EyRG44UEE7QWtCaEVBO0E3RXNnUUE7QTJEdDhQQTtBa0JoRUE7QTdFeWdRQTtBNkVyZ1FBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QTdFdWdRQTtBQUNBO0E2RXJnUUE7QUFDQTtBQUNBO0E3RXVnUUE7QTZFcmdRQTtBQUNBO0FBQ0E7QUFDQTtBN0V1Z1FBO0FBQ0E7QTZFbmdRQTtBQUNBO0E3RXFnUUE7QTJENTlQQTtBa0JyQ0E7QUFDQTtBN0VvZ1FBO0EyRGgrUEE7QWtCckNBO0FBQ0E7QTdFd2dRQTtBMkRwK1BBO0FrQnJDQTtBQUNBO0E3RTRnUUE7QTZFemdRQTtBQUNBO0FBQ0E7QTdFMmdRQTtBQUNBO0E2RXhnUUE7QUFDQTtBN0UwZ1FBO0E2RXpnUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QTdFMmdRQTtBQUNBO0E2RXhnUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QTdFMGdRQTtBQUNBO0E2RXhnUUE7QUFDQTtBN0UwZ1FBO0E2RXpnUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3RTJnUUE7QTZFeGdRQTtBQUNBO0E3RTBnUUE7QTZFeGdRQTtBQUNBO0E3RTBnUUE7QTZFeGdRQTtBQUNBO0E3RTBnUUE7QTZFeGdRQTtBQUNBO0E3RTBnUUE7QTZFdGdRQTtBQUNBO0E3RXdnUUE7QTZFdGdRQTtBQUNBO0E3RXdnUUE7QTZFdGdRQTtBQUNBO0E3RXdnUUE7QUFDQTtBNkVuZ1FBO0FBQ0E7QUFBQTtBN0VxZ1FBO0E2RW5nUUE7QUFDQTtBN0VxZ1FBO0FBQ0E7QTJEdmlRQTtBa0J1Q0E7QUFDQTtBN0VtZ1FBO0EyRDNpUUE7QWtCdUNBO0FBQ0E7QTdFdWdRQTtBMkQvaVFBO0FrQnVDQTtBQUNBO0E3RTJnUUE7QUFDQTtBNkV4Z1FBO0FBQ0E7QTdFMGdRQTtBQUNBO0EyRHhqUUE7QWtCa0RBO0FBQ0E7QTdFeWdRQTtBMkQ1alFBO0FrQmtEQTtBQUNBO0E3RTZnUUE7QTJEaGtRQTtBa0JrREE7QUFDQTtBN0VpaFFBO0FBQ0E7QTZFOWdRQTtBQUNBO0E3RWdoUUE7QUFDQTtBNkU3Z1FBO0FBQ0E7QUFDQTtBN0UrZ1FBO0FBQ0E7QTZFN2dRQTtBQUNBO0FBQ0E7QTdFK2dRQTtBQUNBO0E2RTdnUUE7QUFDQTtBQUNBO0FBQ0E7QTdFK2dRQTtBNkU3Z1FBO0FBQ0E7QUFDQTtBN0UrZ1FBO0E2RTVnUUE7QUFDQTtBQUNBO0E3RThnUUE7QUFDQTtBNkUzZ1FBO0FBQ0E7QTdFNmdRQTtBNkUzZ1FBO0FBQ0E7QUFDQTtBQUNBO0E3RTZnUUE7QTJEem1RQTtBa0I4RkE7QTdFOGdRQTtBMkQ1bVFBO0FrQjhGQTtBN0VpaFFBO0EyRC9tUUE7QWtCOEZBO0E3RW9oUUE7QUFDQTtBNkVoaFFBO0FBSUE7QUFDQTtBN0UrZ1FBO0EyRHZuUUE7QWtCcUdBO0E3RXFoUUE7QTJEMW5RQTtBa0JxR0E7QTdFd2hRQTtBMkQ3blFBO0FrQnFHQTtBN0UyaFFBO0E2RXZoUUE7QUFDQTtBQUNBO0FBQ0E7QTdFeWhRQTtBNkV2aFFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0V5aFFBO0FBQ0E7QTZFdGhRQTtBQU9BO0FBQ0E7QUFDQTtBN0VraFFBO0EyRHJwUUE7QWtCOEhBO0E3RTBoUUE7QTJEeHBRQTtBa0I4SEE7QTdFNmhRQTtBMkQzcFFBO0FrQjhIQTtBN0VnaVFBO0E2RXpoUUE7QUFDQTtBN0UyaFFBO0E2RXpoUUE7QUFDQTtBN0UyaFFBO0E2RXpoUUE7QUFDQTtBN0UyaFFBO0E2RXpoUUE7QUFDQTtBN0UyaFFBO0FBQ0E7QTZFeGhRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdFMGhRQTtBNkV6aFFBO0FBQ0E7QUFBQTtBN0UyaFFBO0E2RXpoUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdFMmhRQTtBNkV6aFFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdFMmhRQTtBNkV6aFFBO0FBQ0E7QUFDQTtBQUNBO0E3RTJoUUE7QTZFMWhRQTtBQUNBO0E3RTRoUUE7QTZFMWhRQTtBQUNBO0FBQ0E7QUFDQTtBN0U0aFFBO0E2RTFoUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3RTRoUUE7QTZFM2hRQTtBQUNBO0FBQ0E7QTdFNmhRQTtBNkV6aFFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0UyaFFBO0E2RTFoUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0U0aFFBO0E2RXpoUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0UyaFFBO0FBQ0E7QTZFdmhRQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0E3RXdoUUE7QUFDQTtBNkVwaFFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdFc2hRQTtBNkVyaFFBO0FBQ0E7QUFDQTtBN0V1aFFBO0FBQ0E7QTZFbmhRQTtBQUNBO0FBQ0E7QUFDQTtBN0VxaFFBO0E2RW5oUUE7QUFDQTtBN0VxaFFBO0E2RW5oUUE7QUFDQTtBN0VxaFFBO0FBQ0E7QTZFbmhRQTtBQUNBO0FBRUE7QTdFcWhRQTtBNkVuaFFBO0FBRUE7QTdFcWhRQTtBNkVuaFFBO0FBRUE7QTdFcWhRQTtBQUNBO0E2RWxoUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0VvaFFBO0FBQ0E7QThFaDdRQTtBQUNBO0E5RWs3UUE7QUFDQTtBK0VyN1FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QS9FdTdRQTtBMkQveVFBO0FvQnRJQTtBQUNBO0FBQ0E7QS9FdzdRQTtBMkRwelFBO0FvQnRJQTtBQUNBO0FBQ0E7QS9FNjdRQTtBMkR6elFBO0FvQnRJQTtBQUNBO0FBQ0E7QS9FazhRQTtBK0VoOFFBO0FBQ0E7QS9FazhRQTtBK0VoOFFBO0FBQ0E7QUFDQTtBL0VrOFFBO0ErRWo4UUE7QUFDQTtBQUNBO0EvRW04UUE7QStFaDhRQTtBQUNBO0EvRWs4UUE7QStFajhRQTtBQUNBO0FBQ0E7QUFDQTtBL0VtOFFBO0ErRWg4UUE7QUFFQTtBL0VpOFFBO0ErRS83UUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBbkJ6QkE7QUFDQTtBbUIwQkE7QUFDQTtBQUNBO0EvRWc4UUE7QStFOTdRQTtBQUNBO0EvRWc4UUE7QStFOTdRQTtBQUNBO0FBQ0E7QUFDQTtBL0VnOFFBO0FBQ0E7QStFNzdRQTtBQUNBO0EvRSs3UUE7QUFDQTtBK0U3N1FBO0FBQ0E7QUFDQTtBL0UrN1FBO0FBQ0E7QStFNTdRQTtBQUNBO0FBQ0E7QS9FODdRQTtBQUNBO0ErRTU3UUE7QUFDQTtBL0U4N1FBO0FBQ0E7QStFNTdRQTtBQUNBO0FBQ0E7QUFDQTtBL0U4N1FBO0FBQ0E7QStFNTdRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvRTg3UUE7QUFDQTtBK0U1N1FBO0FBQ0E7QS9FODdRQTtBQUNBO0ErRTU3UUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBL0U4N1FBO0FBQ0E7QStFNTdRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvRTg3UUE7QUFDQTtBK0U3N1FBO0FBQ0E7QS9FKzdRQTtBQUNBO0ErRTk3UUE7QUFLQTtBQUNBO0EvRWc4UUE7QUFDQTtBK0U5N1FBO0FBQ0E7QUFDQTtBQUNBO0EvRWc4UUE7QUFDQTtBK0U5N1FBO0FBQ0E7QUFDQTtBL0VnOFFBO0FBQ0E7QStFOTdRQTtBQUNBO0FBQ0E7QS9FZzhRQTtBQUNBO0ErRTk3UUE7QUFDQTtBL0VnOFFBO0ErRS83UUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvRWk4UUE7QStFLzdRQTtBQUNBO0FBQ0E7QS9FaThRQTtBQUNBO0ErRTk3UUE7QUFDQTtBL0VnOFFBO0FBQ0E7QStFOTdRQTtBQUNBO0EvRWc4UUE7QUFDQTtBK0U3N1FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QS9FKzdRQTtBK0U3N1FBO0FBQ0E7QS9FKzdRQTtBMkR4K1FBO0FvQjJDQTtBL0VnOFFBO0EyRDMrUUE7QW9CMkNBO0EvRW04UUE7QTJEOStRQTtBb0IyQ0E7QS9FczhRQTtBK0VsOFFBO0FBQ0E7QUFDQTtBQUNBO0EvRW84UUE7QUFDQTtBK0VoOFFBO0FBQ0E7QUFDQTtBL0VrOFFBO0ErRWg4UUE7QUFKQTtBQUtBO0EvRW04UUE7QUFDQTtBQUNBO0FnRjdvUkE7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWhGMG9SQTtBQUNBO0FnRnZvUkE7QUFDQTtBQUNBO0FoRnlvUkE7QWdGeG9SQTtBQUFBO0FoRjJvUkE7QWdGem9SQTtBQUFBO0FoRjRvUkE7QWdGM29SQTtBQUFBO0FoRjhvUkE7QWdGN29SQTtBQUFBO0FoRmdwUkE7QWdGOW9SQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEZncFJBO0FBQ0E7QWdGNW9SQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEY4b1JBO0FnRjVvUkE7QUFBQTtBaEYrb1JBO0FnRjlvUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FoRmdwUkE7QUFDQTtBZ0Y3b1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEYrb1JBO0FnRjlvUkE7QUFBQTtBaEZpcFJBO0FnRmhwUkE7QUFBQTtBaEZtcFJBO0FBQ0E7QWdGaHBSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEZrcFJBO0FnRmhwUkE7QUFBQTtBaEZtcFJBO0FnRmxwUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FoRm9wUkE7QWdGbHBSQTtBQUFBO0FoRnFwUkE7QUFDQTtBZ0ZucFJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FoRnFwUkE7QWdGbnBSQTtBQUFBO0FoRnNwUkE7QUFDQTtBZ0ZucFJBOztBQUVBO0FBQ0E7QWhGcXBSQTtBZ0ZucFJBOztBQUFBO0FoRnVwUkE7QUFDQTtBZ0ZwcFJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FoRnNwUkE7QUFDQTtBZ0ZwcFJBOztBQUVBO0FBQ0E7QUFDQTtBaEZzcFJBO0FBQ0E7QWdGbnBSQTs7QUFDQTtBQUFBO0FoRnVwUkE7QUFDQTtBZ0ZycFJBO0FBQ0E7QUFDQTtBQUNBO0FoRnVwUkE7QUFDQTtBaUYvelJBO0FBQ0E7QUFDQTtBakZpMFJBO0FpRi96UkE7QUFDQTtBQUNBO0FqRmkwUkE7QWlGOXpSQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBakYyelJBO0EyRDFzUkE7QXNCdEhBO0FBQ0E7QWpGbTBSQTtBMkQ5c1JBO0FzQnRIQTtBQUNBO0FqRnUwUkE7QTJEbHRSQTtBc0J0SEE7QUFDQTtBakYyMFJBO0FpRm4wUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBakZxMFJBO0FpRm4wUkE7QUFDQTtBakZxMFJBO0EyRC90UkE7QXNCcEdBO0FqRnMwUkE7QTJEbHVSQTtBc0JwR0E7QWpGeTBSQTtBMkRydVJBO0FzQnBHQTtBakY0MFJBO0EyRHh1UkE7QXNCaEdBO0FqRjIwUkE7QTJEM3VSQTtBc0JoR0E7QWpGODBSQTtBMkQ5dVJBO0FzQmhHQTtBakZpMVJBO0FpRjMwUkE7QUFDQTtBQUNBO0FqRjYwUkE7QWlGMzBSQTtBQUNBO0FBQ0E7QWpGNjBSQTtBaUYxMFJBO0FBQ0E7QWpGNDBSQTtBQUNBO0FrRno0UkE7QUFFQTtBbEYwNFJBO0FrRng0UkE7QUFDQTtBQUNBO0FBQ0E7QWxGMDRSQTtBMkRyd1JBO0F1QmhJQTtBbEZ3NFJBO0EyRHh3UkE7QXVCaElBO0FsRjI0UkE7QTJEM3dSQTtBdUJoSUE7QWxGODRSQTtBa0YxNFJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWxGNDRSQTtBa0Z6NFJBO0FBQ0E7QWxGMjRSQTtBMkR2eFJBO0F1QmxIQTtBbEY0NFJBO0EyRDF4UkE7QXVCbEhBO0FsRis0UkE7QTJEN3hSQTtBdUJsSEE7QWxGazVSQTtBa0Y5NFJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWxGZzVSQTtBMkR0eVJBO0F1QnhHQTtBbEZpNVJBO0EyRHp5UkE7QXVCeEdBO0FsRm81UkE7QTJENXlSQTtBdUJ4R0E7QWxGdTVSQTtBQUNBO0FtRjU3UkE7QUFhQTtBbkZrN1JBO0FtRjk3UkE7QUFDQTtBbkZnOFJBO0EyRHR6UkE7QXdCeElBO0FuRmk4UkE7QTJEenpSQTtBd0J4SUE7QW5GbzhSQTtBMkQ1elJBO0F3QnhJQTtBbkZ1OFJBO0FtRnA4UkE7QUFDQTtBbkZzOFJBO0FtRnA4UkE7QUFDQTtBbkZzOFJBO0FBQ0E7QW1GbDhSQTtBQUNBO0FuRm84UkE7QTJEejBSQTtBd0J6SEE7QW5GcThSQTtBMkQ1MFJBO0F3QnpIQTtBbkZ3OFJBO0EyRC8wUkE7QXdCekhBO0FuRjI4UkE7QUFDQTtBbUZ4OFJBO0FBQ0E7QW5GMDhSQTtBQUNBO0FtRng4UkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FuRjA4UkE7QUFDQTtBb0YzK1JBO0FBQ0E7QUFDQTtBcEY2K1JBO0FvRjUrUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXBGOCtSQTtBMkQzMlJBO0F5QmpJQTtBQUNBO0FBQ0E7QXBGKytSQTtBMkRoM1JBO0F5QmpJQTtBQUNBO0FBQ0E7QXBGby9SQTtBMkRyM1JBO0F5QmpJQTtBQUNBO0FBQ0E7QXBGeS9SQTtBMkQxM1JBO0F5QjNIQTtBQUNBO0FBQ0E7QXBGdy9SQTtBMkQvM1JBO0F5QjNIQTtBQUNBO0FBQ0E7QXBGNi9SQTtBMkRwNFJBO0F5QjNIQTtBQUNBO0FBQ0E7QXBGa2dTQTtBQUNBO0FxRnRoU0E7QXpCY0E7QUFDQTtBeUJiQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FyRnloU0E7QTJEbjVSQTtBMEJwSUE7QXJGMGhTQTtBMkR0NVJBO0EwQnBJQTtBckY2aFNBO0EyRHo1UkE7QTBCcElBO0FyRmdpU0E7QTBEcGhTQTtBMkJwQkE7QXpCY0E7QUFDQTtBNUQ4aFNBO0FBQ0E7QUFDQTtBMkRuNlJBO0EyQnpJQTtBdEYraVNBO0EyRHQ2UkE7QTJCeklBO0F0RmtqU0E7QTJEejZSQTtBMkJ6SUE7QXRGcWpTQTtBQUNBO0EyRDc2UkE7QTJCaklBO0F0RmlqU0E7QTJEaDdSQTtBMkJqSUE7QXRGb2pTQTtBMkRuN1JBO0EyQmpJQTtBdEZ1alNBO0FBQ0E7QXNGbmpTQTtBQUNBO0F0RnFqU0E7QXNGcGpTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBdEZzalNBO0FzRnJqU0E7QUFBQTtBdEZ3alNBO0FBQ0E7QXVGamxTQTtBQUNBO0FBQ0E7QUFDQTtBdkZtbFNBO0F1RmpsU0E7QUFDQTtBQUNBO0FBQ0E7QXZGbWxTQTtBdUZsbFNBO0FBQ0E7QUFDQTtBdkZvbFNBO0EyRG45UkE7QTRCN0hBO0F2Rm1sU0E7QTJEdDlSQTtBNEI3SEE7QXZGc2xTQTtBMkR6OVJBO0E0QjdIQTtBdkZ5bFNBO0FBQ0E7QXdGem1TQTtBQUNBO0FBUUE7QXhGb21TQTtBd0YxbVNBO0FBQ0E7QUFDQTtBQUNBO0F4RjRtU0E7QXdGeG1TQTtBQUNBO0F4RjBtU0E7QTJEeitSQTtBNkIvSEE7QXhGMm1TQTtBMkQ1K1JBO0E2Qi9IQTtBeEY4bVNBO0EyRC8rUkE7QTZCL0hBO0F4RmluU0E7QTJEbC9SQTtBNkIxSEE7QXhGK21TQTtBMkRyL1JBO0E2QjFIQTtBeEZrblNBO0EyRHgvUkE7QTZCMUhBO0F4RnFuU0E7QUFDQTtBeUZ4b1NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXpGMG9TQTtBMkR4Z1NBO0E4QmhJQTtBQUNBO0F6RjJvU0E7QTJENWdTQTtBOEJoSUE7QUFDQTtBekYrb1NBO0EyRGhoU0E7QThCaElBO0FBQ0E7QXpGbXBTQTtBeUZocFNBO0FBQ0E7QUFDQTtBekZrcFNBO0F5Ri9vU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBekZpcFNBO0F5RjlvU0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0F6RjZvU0E7QTJEcmlTQTtBOEIzR0E7QXpGbXBTQTtBMkR4aVNBO0E4QjNHQTtBekZzcFNBO0EyRDNpU0E7QThCM0dBO0F6RnlwU0E7QXlGbnBTQTtBQUNBO0FBQ0E7QUFDQTtBekZxcFNBO0EyRG5qU0E7QThCaEdBO0F6RnNwU0E7QTJEdGpTQTtBOEJoR0E7QXpGeXBTQTtBMkR6alNBO0E4QmhHQTtBekY0cFNBO0F5RnhwU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBekYwcFNBO0EyRHJrU0E7QThCbkZBO0F6RjJwU0E7QTJEeGtTQTtBOEJuRkE7QXpGOHBTQTtBMkQza1NBO0E4Qm5GQTtBekZpcVNBO0FBQ0E7QTBGMXRTQTtBQUNBO0FBQ0E7QTFGNHRTQTtBQUNBO0EyRmh1U0E7QUFDQTtBQUNBO0EzRmt1U0E7QUFDQTtBMkZodVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBM0ZrdVNBO0EyRmp1U0E7QUFHQTtBM0ZpdVNBO0EyRi90U0E7QUFDQTtBM0ZpdVNBO0EyRmh1U0E7QUFDQTtBM0ZrdVNBO0EyRi90U0E7QUFDQTtBM0ZpdVNBO0EyRmh1U0E7QUFDQTtBM0ZrdVNBO0FBQ0E7QTRGNXZTQTtBQUVBO0FBdURBO0E1RnVzU0E7QTRGNXZTQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0E1RjJ2U0E7QTJEMW5TQTtBaUNwSUE7QTVGaXdTQTtBMkQ3blNBO0FpQ3BJQTtBNUZvd1NBO0EyRGhvU0E7QWlDcElBO0E1RnV3U0E7QTRGandTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E1Rm13U0E7QTRGandTQTtBQUNBO0E1Rm13U0E7QTRGcHdTQTtBQUNBO0E1Rm13U0E7QTRGcHdTQTtBQUNBO0E1Rm13U0E7QTRGandTQTtBQUNBO0E1Rm13U0E7QTRGandTQTtBQUNBO0FBSUE7QUFFQTtBQUlBO0FBQ0E7QTVGNHZTQTtBMkQvcFNBO0FpQ3RHQTtBNUZ3d1NBO0EyRGxxU0E7QWlDdEdBO0E1RjJ3U0E7QTJEcnFTQTtBaUN0R0E7QTVGOHdTQTtBMkR4cVNBO0FpQ2hHQTtBNUYyd1NBO0EyRDNxU0E7QWlDaEdBO0E1Rjh3U0E7QTJEOXFTQTtBaUNoR0E7QTVGaXhTQTtBNEY3d1NBO0FBQ0E7QTVGK3dTQTtBNEZoeFNBO0FBQ0E7QTVGK3dTQTtBNEZoeFNBO0FBQ0E7QTVGK3dTQTtBNEZqd1NBO0FBRUE7QUFzREE7QTVGNnNTQTtBNEZqd1NBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QTVGZ3dTQTtBMkQ5clNBO0FpQ3JFQTtBNUZzd1NBO0EyRGpzU0E7QWlDckVBO0E1Rnl3U0E7QTJEcHNTQTtBaUNyRUE7QTVGNHdTQTtBNEZod1NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBNUZnd1NBO0EyRHZ0U0E7QWlDckNBO0E1Rit2U0E7QTJEMXRTQTtBaUNyQ0E7QTVGa3dTQTtBMkQ3dFNBO0FpQ3JDQTtBNUZxd1NBO0EyRGh1U0E7QWlDN0JBO0E1Rmd3U0E7QTJEbnVTQTtBaUM3QkE7QTVGZ3dTQTtBMkRudVNBO0FpQzdCQTtBNUZnd1NBO0EyRG51U0E7QWlDN0JBO0E1Rm13U0E7QTJEdHVTQTtBaUM3QkE7QTVGbXdTQTtBMkR0dVNBO0FpQzdCQTtBNUZtd1NBO0EyRHR1U0E7QWlDN0JBO0E1RnN3U0E7QTJEenVTQTtBaUM3QkE7QTVGc3dTQTtBMkR6dVNBO0FpQzdCQTtBNUZzd1NBO0E0Rnh2U0E7QUFDQTtBNUYwdlNBO0FBQ0E7QTRGeHZTQTtBQUNBO0E1RjB2U0E7QUFDQTtBNEZ4dlNBO0FBQ0E7QTVGMHZTQTtBQUNBO0E2Rmg0U0E7QUFDQTtBQUNBO0E3Rms0U0E7QTZGajRTQTtBQUNBO0FBQ0E7QTdGbTRTQTtBMERyM1NBO0FtQ2hCQTtBQUlBO0FBQ0E7QTdGcTRTQTtBQUNBO0E2Rm40U0E7QUFDQTtBQUNBO0E3RnE0U0E7QTBELzNTQTtBbUNSQTtBQUlBO0FBQ0E7QTdGdTRTQTtBQUNBO0E2RnI0U0E7QUFDQTtBQUNBO0E3RnU0U0E7QTBEejRTQTtBbUNBQTtBQUlBO0FBQ0E7QTdGeTRTQTtBQUNBO0E2RnY0U0E7QUFDQTtBN0Z5NFNBO0E2RnY0U0E7QUFDQTtBN0Z5NFNBO0E2RnY0U0E7QUFDQTtBQUNBO0E3Rnk0U0E7QTJEanlTQTtBa0NyR0E7QTdGeTRTQTtBMkRweVNBO0FrQ3JHQTtBN0Y0NFNBO0EyRHZ5U0E7QWtDckdBO0E3Ris0U0E7QTJEMXlTQTtBa0NoR0E7QTdGNjRTQTtBMkQ3eVNBO0FrQ2hHQTtBN0ZnNVNBO0EyRGh6U0E7QWtDaEdBO0E3Rm01U0E7QTZGaDVTQTtBQUNBO0E3Rms1U0E7QTJEdHpTQTtBa0MxRkE7QTdGbTVTQTtBMkR6elNBO0FrQzFGQTtBN0ZzNVNBO0EyRDV6U0E7QWtDMUZBO0E3Rnk1U0E7QTZGdjVTQTtBQUNBO0FBQ0E7QTdGeTVTQTtBMkRuMFNBO0FrQ3BGQTtBN0YwNVNBO0EyRHQwU0E7QWtDcEZBO0E3RjY1U0E7QTJEejBTQTtBa0NwRkE7QTdGZzZTQTtBNkY1NVNBO0FBQ0E7QTdGODVTQTtBMkQvMFNBO0FrQzdFQTtBN0YrNVNBO0EyRGwxU0E7QWtDN0VBO0E3Rms2U0E7QTJEcjFTQTtBa0M3RUE7QTdGcTZTQTtBNkZqNlNBO0FBQ0E7QUFDQTtBQUNBO0E3Rm02U0E7QTJENzFTQTtBa0NwRUE7QTdGbzZTQTtBMkRoMlNBO0FrQ3BFQTtBN0Z1NlNBO0EyRG4yU0E7QWtDcEVBO0E3RjA2U0E7QTZGdjZTQTtBQUNBO0E3Rnk2U0E7QTJEejJTQTtBa0M5REE7QTdGMDZTQTtBMkQ1MlNBO0FrQzlEQTtBN0Y2NlNBO0EyRC8yU0E7QWtDOURBO0E3Rmc3U0E7QTJEbDNTQTtBa0N6REE7QTdGODZTQTtBMkRyM1NBO0FrQ3pEQTtBN0ZpN1NBO0EyRHgzU0E7QWtDekRBO0E3Rm83U0E7QTJEMzNTQTtBa0NwREE7QTdGazdTQTtBMkQ5M1NBO0FrQ3BEQTtBN0ZxN1NBO0EyRGo0U0E7QWtDcERBO0E3Rnc3U0E7QTZGdDdTQTtBQUNBO0FBQ0E7QTdGdzdTQTtBMkR4NFNBO0FrQzlDQTtBN0Z5N1NBO0EyRDM0U0E7QWtDOUNBO0E3RjQ3U0E7QTJEOTRTQTtBa0M5Q0E7QTdGKzdTQTtBMkRqNVNBO0FrQ3hDQTtBN0Y0N1NBO0EyRHA1U0E7QWtDeENBO0E3Ris3U0E7QTJEdjVTQTtBa0N4Q0E7QTdGazhTQTtBQUNBO0E4RnZpVEE7QUFDQTtBQUNBO0E5RnlpVEE7QThGeGlUQTtBQUNBO0FBQ0E7QTlGMGlUQTtBOEZ2aVRBO0FuQ29JQTtBbUNoSUE7QTlGdWlUQTtBMkR2NlNBO0FtQ2hJQTtBOUYwaVRBO0EyRDE2U0E7QW1DaElBO0E5RjZpVEE7QUFDQTtBQUNBO0ErRjFqVEE7QUFDQTtBL0Y0alRBO0ErRjFqVEE7QUFDQTtBL0Y0alRBO0ErRjFqVEE7QUFDQTtBL0Y0alRBO0ErRjNqVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvRjZqVEE7QStGMWpUQTtBQUNBO0FBQ0E7QS9GNGpUQTtBK0YzalRBO0FBQ0E7QS9GNmpUQTtBK0YzalRBO0FBQ0E7QS9GNmpUQTtBK0YxalRBO0FBQ0E7QUFDQTtBL0Y0alRBO0FBQ0E7QStGdGpUQTtBQUNBO0FBQ0E7QUFDQTtBL0Z3alRBO0FBQ0E7QWdHdG1UQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWhHd21UQTtBZ0d2bVRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWhHeW1UQTtBQUNBO0FpR3BuVEE7QUFDQTtBQUNBO0FqR3NuVEE7QWlHcG5UQTtBQUNBO0FBQ0E7QWpHc25UQTtBaUdublRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FqR2duVEE7QTJEOS9TQTtBc0N2SEE7QUFDQTtBakd3blRBO0EyRGxnVEE7QXNDdkhBO0FBQ0E7QWpHNG5UQTtBMkR0Z1RBO0FzQ3ZIQTtBQUNBO0FqR2dvVEE7QWlHeG5UQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FqRzBuVEE7QWlHem5UQTtBQUNBO0FqRzJuVEE7QTJEbmhUQTtBc0NyR0E7QWpHMm5UQTtBMkR0aFRBO0FzQ3JHQTtBakc4blRBO0EyRHpoVEE7QXNDckdBO0FqR2lvVEE7QWlHM25UQTtBQUNBO0FBQ0E7QWpHNm5UQTtBaUczblRBO0FBQ0E7QUFDQTtBakc2blRBO0FBQ0E7QWtHanJUQTtBQUNBO0FBQ0E7QWxHbXJUQTtBa0dsclRBO0FBQ0E7QUFDQTtBQUNBO0FsR29yVEE7QWtHanJUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRDTkE7QUFDQTtBc0NPQTtBbEdvclRBO0FrR2xyVEE7QUFDQTtBbEdvclRBO0FrR2xyVEE7QUFDQTtBbEdvclRBO0FrR2xyVEE7QUFDQTtBdENqQkE7QUFDQTtBc0NrQkE7QUFDQTtBbEdxclRBO0FrR25yVEE7QXRDdEJBO0FBQ0E7QXNDdUJBO0FBQ0E7QWxHc3JUQTtBMkRqbFRBO0F1Q25HQTtBbEd1clRBO0EyRHBsVEE7QXVDbkdBO0FsRzByVEE7QTJEdmxUQTtBdUNuR0E7QWxHNnJUQTtBa0dsclRBO0FBQ0E7QWxHb3JUQTtBQUNBO0FtRzF1VEE7QUFDQTtBQUNBO0FuRzR1VEE7QW1HenVUQTtBQUNBO0FBQ0E7QW5HMnVUQTtBbUcxdVRBO0FBQ0E7QUFDQTtBbkc0dVRBO0FtR3Z1VEE7QUFDQTtBQUNBO0FBQ0E7QW5HeXVUQTtBbUd0dVRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkd3dVRBO0FBQ0E7QW1HcnVUQTtBQUNBO0FBQ0E7QW5HdXVUQTtBQUNBO0FvR3h3VEE7QUFDQTtBcEcwd1RBO0FvR3p3VEE7QUFDQTtBQUNBO0FwRzJ3VEE7QW9HeHdUQTtBQUNBO0FBQ0E7QXBHMHdUQTtBb0d4d1RBO0FBQ0E7QUFDQTtBcEcwd1RBO0FvR3h3VEE7QUFDQTtBcEcwd1RBO0FBQ0E7QW9HdHdUQTtBQUNBO0FBQ0E7QXBHd3dUQTtBQUNBO0FxRy94VEE7QUFDQTtBckdpeVRBO0FxRzl4VEE7QUFDQTtBckdneVRBO0FBQ0E7QXNHdnlUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRHeXlUQTtBQUNBO0FzR3h5VEE7QUFDQTtBQUFBO0FBQUE7QXRHNHlUQTtBQUNBO0FzRzV5VEE7O0FBQUE7QUFHQTtBQUFBO0F0Ryt5VEE7QUFDQTtBc0cveVRBO0FBQ0E7QUFBQTtBQUFBO0F0R216VEE7QUFDQTtBc0duelRBO0FBQUE7QXRHc3pUQTtBQUNBO0FzR3R6VEE7QUFBQTtBdEd5elRBO0FBQ0E7QXNHMXpUQTtBQUNBO0FBQUE7QXRHNnpUQTtBQUNBO0FzRzl6VEE7QUFDQTtBQUFBO0F0R2kwVEE7QUFDQTtBc0dsMFRBO0FBQ0E7QUFBQTtBdEdxMFRBO0FBQ0E7QXNHdDBUQTtBQUNBO0FBQUE7QXRHeTBUQTtBQUNBO0FzRzEwVEE7QUFDQTtBQUFBO0F0RzYwVEE7QUFDQTtBc0c5MFRBO0FBQ0E7QUFBQTtBdEdpMVRBO0FBQ0E7QXNHbDFUQTtBQUNBO0FBQUE7QXRHcTFUQTtBQUNBO0FzR3QxVEE7QUFDQTtBQUFBO0F0R3kxVEE7QUFDQTtBc0cxMVRBO0FBQ0E7QUFBQTtBdEc2MVRBO0FBQ0E7QXNHOTFUQTtBQUNBO0FBQUE7QXRHaTJUQTtBQUNBO0FzR2wyVEE7QUFDQTtBQUFBO0F0R3EyVEE7QUFDQTtBc0d0MlRBO0FBQ0E7QUFBQTtBdEd5MlRBO0FBQ0E7QXNHMTJUQTtBQUNBO0FBQUE7QXRHNjJUQTtBQUNBO0FzRzkyVEE7QUFDQTtBQUFBO0F0R2kzVEE7QUFDQTtBc0dsM1RBO0FBQ0E7QUFBQTtBdEdxM1RBO0FBQ0E7QXNHdDNUQTtBQUNBO0FBQUE7QXRHeTNUQTtBQUNBO0FzRzEzVEE7QUFDQTtBQUFBO0F0RzYzVEE7QUFDQTtBc0c5M1RBO0FBQ0E7QUFBQTtBdEdpNFRBO0FBQ0E7QXNHbDRUQTtBQUNBO0FBQUE7QXRHcTRUQTtBQUNBO0FzR3Q0VEE7QUFDQTtBQUFBO0F0R3k0VEE7QUFDQTtBc0cxNFRBO0FBQ0E7QUFBQTtBdEc2NFRBO0FBQ0E7QXNHOTRUQTtBQUNBO0FBQUE7QUFBQTtBdEdrNVRBO0FBQ0E7QXNHbjVUQTtBQUNBO0FBQUE7QXRHczVUQTtBQUNBO0FzR3Y1VEE7QUFDQTtBQUFBO0F0RzA1VEE7QUFDQTtBc0czNVRBO0FBQ0E7QUFDQTtBQUFBO0F0Rzg1VEE7QUFDQTtBc0c5NVRBO0FBQUE7QUFBQTtBdEdrNlRBO0FBQ0E7QXNHbjZUQTtBQUNBO0FBQUE7QXRHczZUQTtBQUNBO0FzR3Y2VEE7QUFDQTtBQUFBO0F0RzA2VEE7QUFDQTtBc0czNlRBO0FBQ0E7QUFBQTtBdEc4NlRBO0FBQ0E7QXNHLzZUQTtBQUNBO0FBQUE7QXRHazdUQTtBQUNBO0FzR243VEE7QUFDQTtBQUFBO0F0R3M3VEE7QUFDQTtBc0d2N1RBO0FBQ0E7QUFBQTtBdEcwN1RBO0FBQ0E7QXNHMzdUQTtBQUNBO0FBQUE7QXRHODdUQTtBQUNBO0FzRy83VEE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBdEdtOFRBO0FBQ0E7QXNHbjhUQTtBQUNBO0FBQUE7QUFBQTtBdEd1OFRBO0FBQ0E7QXNHdjhUQTtBQUFBO0F0RzA4VEE7QUFDQTtBc0czOFRBO0FBQ0E7QUFBQTtBdEc4OFRBO0FBQ0E7QXNHLzhUQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0F0R205VEE7QUFDQTtBc0duOVRBO0FBQ0E7QUFBQTtBdEdzOVRBO0FBQ0E7QXNHdDlUQTtBQUFBO0F0R3k5VEE7QUFDQTtBc0cxOVRBO0FBQ0E7QUFDQTtBQUFBO0F0RzY5VEE7QUFDQTtBc0c3OVRBO0FBQUE7QXRHZytUQTtBQUNBO0FzR2orVEE7QUFDQTtBQUFBO0F0R28rVEE7QUFDQTtBc0dyK1RBO0FBQ0E7QUFBQTtBdEd3K1RBO0FBQ0E7QXNHeitUQTtBQUNBO0FBQUE7QXRHNCtUQTtBQUNBO0FzRzcrVEE7QUFDQTtBQUFBO0F0R2cvVEE7QUFDQTtBc0dqL1RBO0FBQ0E7QUFBQTtBdEdvL1RBO0FBQ0E7QXNHci9UQTtBQUNBO0FBQUE7QXRHdy9UQTtBQUNBO0FzR3ovVEE7QUFDQTtBQUFBO0F0RzQvVEE7QUFDQTtBc0c3L1RBO0FBQ0E7QUFBQTtBdEdnZ1VBO0FBQ0E7QXNHamdVQTtBQUNBO0FBQUE7QXRHb2dVQTtBQUNBO0FzR3JnVUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBdEd3Z1VBO0FBQ0E7QXNHeGdVQTtBQUFBO0F0RzJnVUE7QUFDQTtBc0c1Z1VBO0FBQ0E7QUFBQTtBdEcrZ1VBO0FBQ0E7QXNHaGhVQTtBQUNBO0FBQUE7QXRHbWhVQTtBQUNBO0FzR3BoVUE7QUFDQTtBQUFBO0F0R3VoVUE7QUFDQTtBc0d4aFVBO0FBQ0E7QUFBQTtBdEcyaFVBO0FBQ0E7QXNHNWhVQTtBQUNBO0FBQ0E7QUFBQTtBdEcraFVBO0FBQ0E7QXNHL2hVQTtBQUFBO0F0R2tpVUE7QUFDQTtBc0duaVVBO0FBQ0E7QUFBQTtBdEdzaVVBO0FBQ0E7QXNHdmlVQTtBQUNBO0FBQUE7QXRHMGlVQTtBQUNBO0FzRzNpVUE7QUFDQTtBQUFBO0F0RzhpVUE7QUFDQTtBc0cvaVVBO0FBQ0E7QUFBQTtBdEdralVBO0FBQ0E7QXNHbmpVQTtBQUNBO0FBQUE7QXRHc2pVQTtBQUNBO0FzR3ZqVUE7QUFDQTtBQUFBO0F0RzBqVUE7QUFDQTtBc0czalVBO0FBQ0E7QUFBQTtBdEc4alVBO0FBQ0E7QXNHL2pVQTtBQUNBO0FBQUE7QXRHa2tVQTtBQUNBO0FzR25rVUE7QUFDQTtBQUFBO0F0R3NrVUE7QUFDQTtBc0d2a1VBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QXRHMmtVQTtBQUNBO0FzRzNrVUE7QUFDQTtBQUFBO0FBQUE7QXRHK2tVQTtBQUNBO0FzRy9rVUE7QUFDQTtBQUFBO0FBQUE7QXRHbWxVQTtBQUNBO0FzR25sVUE7QUFDQTtBQUFBO0FBQUE7QXRHdWxVQTtBQUNBO0FzR3ZsVUE7QUFDQTtBQUFBO0FBQUE7QXRHMmxVQTtBQUNBO0FzRzNsVUE7QUFBQTtBQUFBO0F0RytsVUE7QUFDQTtBc0dobVVBO0FBQ0E7QUFBQTtBQUFBO0F0R29tVUE7QUFDQTtBc0dybVVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QXRHeW1VQTtBQUNBO0FzR3ptVUE7QUFBQTtBdEc0bVVBO0FBQ0E7QXNHN21VQTtBQUNBOztBQUNBO0F0R2duVUE7QUFDQTtBc0dqblVBO0FBQ0E7QUFBQTtBdEdvblVBO0FBQ0E7QXNHcm5VQTtBQUNBO0FBQUE7QXRHd25VQTtBQUNBO0FzR3puVUE7QUFDQTtBQUFBO0FBQUE7QXRHNm5VQTtBQUNBO0FzRzluVUE7QUFDQTtBQUFBO0F0R2lvVUE7QUFDQTtBc0dsb1VBO0FBQ0E7QUFBQTtBdEdxb1VBO0FBQ0E7QXNHdG9VQTtBQUNBO0FBQUE7QXRHeW9VQTtBQUNBO0FzRzFvVUE7QUFDQTtBQUFBO0FBQUE7QXRHOG9VQTtBQUNBO0FzRzlvVUE7QUFBQTtBdEdpcFVBO0FBQ0E7QXVHeHdVQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F2RzB3VUE7QTJEcG9VQTtBNENwSUE7QUFDQTtBdkcyd1VBO0EyRHhvVUE7QTRDcElBO0FBQ0E7QXZHK3dVQTtBMkQ1b1VBO0E0Q3BJQTtBQUNBO0F2R214VUE7QUFDQTtBdUdoeFVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZHa3hVQTtBQUNBO0F1R2h4VUE7QUFDQTtBQUNBO0F2R2t4VUE7QUFDQTtBdUdoeFVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZHa3hVQTtBMkRucVVBO0E0QzVHQTtBdkdreFVBO0EyRHRxVUE7QTRDNUdBO0F2R3F4VUE7QTJEenFVQTtBNEM1R0E7QXZHd3hVQTtBdUdweFVBO0FBQ0E7QUFDQTtBQUNBO0F2R3N4VUE7QUFDQTtBdUdueFVBO0FBQ0E7QUFDQTtBdkdxeFVBO0FBQ0E7QTBEenlVQTtBNkNzQkE7QUFFQTtBdkdxeFVBO0FBQ0E7QXVHcHhVQTtBQUNBO0F2R3N4VUE7QTBEanpVQTtBNkMwQkE7QUFHQTtBdkd3eFVBO0FBQ0E7QUFDQTtBdUdyeFVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZHdXhVQTtBdUdyeFVBO0FBQ0E7QUFDQTtBQUNBO0F2R3V4VUE7QXVHdHhVQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0F2R3V4VUE7QXVHL3dVQTtBQUNBO0FBQ0E7QXZHaXhVQTtBMER4MVVBO0E2Q3FFQTtBQUlBO0FBQ0E7QXZHbXhVQTtBQUNBO0F1R2p4VUE7QUFDQTtBdkdteFVBO0FBQ0E7QXVHaHhVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F2R2t4VUE7QXVHanhVQTtBQUNBO0FBQ0E7QXZHbXhVQTtBMER0MlVBO0E2Q2lGQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0F2R294VUE7QUFDQTtBQUNBO0F1R2p4VUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F2R214VUE7QXVHbHhVQTtBQUNBO0F2R294VUE7QXVHbHhVQTtBQUNBO0F2R294VUE7QUFDQTtBdUdqeFVBO0FBQ0E7QUFDQTtBbEd2REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FrR3FEQTtBQU9BO0F2R2l4VUE7QUsxMFVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FMeTBVQTtBSzl6VUE7QUFDQTtBQUNBO0FMZzBVQTtBMERwNlVBO0E2Q3dIQTtBQU9BO0F2R3l5VUE7QUFDQTtBMERuNlVBO0E2Q2tIQTtBQVVBO0F2RzJ5VUE7QUFDQTtBdUd6eVVBO0FBQ0E7QXZHMnlVQTtBMkRuelVBO0E0Q1VBO0FBQ0E7QXZHNHlVQTtBMkR2elVBO0E0Q1VBO0FBQ0E7QXZHZ3pVQTtBMkQzelVBO0E0Q1VBO0FBQ0E7QXZHb3pVQTtBMkQvelVBO0E0Q2lCQTtBQUNBO0F2R2l6VUE7QTJEbjBVQTtBNENpQkE7QUFDQTtBdkdxelVBO0EyRHYwVUE7QTRDaUJBO0FBQ0E7QXZHeXpVQTtBQUNBO0F1R3B6VUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBdkdxelVBO0EyRGwxVUE7QTRDZ0NBO0F2R3F6VUE7QTJEcjFVQTtBNENnQ0E7QXZHd3pVQTtBMkR4MVVBO0E0Q2dDQTtBdkcyelVBO0EwRG45VUE7QTZDZ0pBO0FBV0E7QXZHNHpVQTtBQUNBO0F1RzN6VUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F2RzZ6VUE7QXVHNXpVQTtBQUNBO0F2Rzh6VUE7QUFDQTtBdUcxelVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdkc0elVBO0FBQ0E7QXVHMXpVQTtBQUNBO0FBRUE7QXZHMnpVQTtBQUNBO0F1R3p6VUE7QUFDQTtBQUNBO0F2RzJ6VUE7QUFDQTtBd0d6Z1ZBO0FBQ0E7QUFDQTtBeEcyZ1ZBO0F3RzFnVkE7QUFDQTtBeEc0Z1ZBO0F3RzFnVkE7QUFDQTtBeEc0Z1ZBO0F3RzFnVkE7QUFDQTtBeEc0Z1ZBO0FBQ0E7QXdHMWdWQTtBQUNBO0FBQ0E7QXhHNGdWQTtBd0czZ1ZBO0FBQ0E7QUFDQTtBQUNBO0F4RzZnVkE7QUFDQTtBd0cxZ1ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBeEc0Z1ZBO0F3RzFnVkE7QUFDQTtBQUNBO0FBQ0E7QTVDbkJBO0FBQ0E7QTVEZ2lWQTtBd0czZ1ZBO0FBQ0E7QUFDQTtBQUNBO0F4RzZnVkE7QXdHMWdWQTtBQUNBO0FBQ0E7QXhHNGdWQTtBd0cxZ1ZBO0FBQ0E7QXhHNGdWQTtBd0cxZ1ZBO0FBQ0E7QXhHNGdWQTtBQUNBO0F3R3pnVkE7QUFDQTtBeEcyZ1ZBO0FBQ0E7QXdHemdWQTtBQUNBO0FBQ0E7QUFDQTtBeEcyZ1ZBO0FBQ0E7QXdHMWdWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F4RzRnVkE7QUFDQTtBd0czZ1ZBO0FBQ0E7QXhHNmdWQTtBQUNBO0F3RzVnVkE7QUFDQTtBeEc4Z1ZBO0FBQ0E7QXdHNWdWQTtBQUNBO0FBQ0E7QUFDQTtBeEc4Z1ZBO0F3RzVnVkE7QUFDQTtBeEc4Z1ZBO0F3RzNnVkE7QUFDQTtBeEc2Z1ZBO0FBQ0E7QXdHM2dWQTtBQUNBO0F4RzZnVkE7QUFDQTtBd0c1Z1ZBO0FBQ0E7QXhHOGdWQTtBQUNBO0F3RzdnVkE7QUFDQTtBeEcrZ1ZBO0FBQ0E7QXdHOWdWQTs7QUFFQTtBeEdnaFZBO0F3Ry9nVkE7O0FBQ0E7QXhHa2hWQTtBQUNBO0F5R3ZuVkE7QUFDQTtBekd5blZBO0F5R3ZuVkE7QUFDQTtBekd5blZBO0F5R3RuVkE7QUFDQTtBQUNBO0F6R3duVkE7QXlHcm5WQTtBQUNBO0FBQ0E7QUFDQTtBQW1DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F6R3FsVkE7QXlHOW5WQTtBQUNBO0F6R2dvVkE7QXlHN25WQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F6RytuVkE7QXlHN25WQTtBQUNBO0FBQ0E7QXpHK25WQTtBeUc3blZBO0FBQ0E7QXpHK25WQTtBeUc1blZBO0FBQ0E7QXpHOG5WQTtBeUc1blZBO0FBQ0E7QXpHOG5WQTtBeUc1blZBO0FBQ0E7QUFDQTtBQUNBO0F6RzhuVkE7QXlHM25WQTtBQUNBO0F6RzZuVkE7QXlHam5WQTtBQUNBO0F6R21uVkE7QXlHaG5WQTtBQUNBO0F6R2tuVkE7QXlHL21WQTtBQUNBO0FBQ0E7QUFDQTtBekdpblZBO0F5RzltVkE7QUFDQTtBQUNBO0F6R2duVkE7QXlHN21WQTtBQUNBO0FBQ0E7QUFDQTtBekcrbVZBO0FBQ0E7QXlHNW1WQTtBQUNBO0FBRUE7QUFDQTtBekc2bVZBO0F5RzNtVkE7QUFDQTtBekc2bVZBO0FBQ0E7QTBHM3NWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTlDUUE7QUFDQTtBNURzc1ZBO0EyRHprVkE7QStDbklBO0FBQ0E7QUFDQTtBMUcrc1ZBO0EyRDlrVkE7QStDbklBO0FBQ0E7QUFDQTtBMUdvdFZBO0EyRG5sVkE7QStDbklBO0FBQ0E7QUFDQTtBMUd5dFZBO0EyRHhsVkE7QStDN0hBO0FBQ0E7QUFDQTtBMUd3dFZBO0EyRDdsVkE7QStDN0hBO0FBQ0E7QUFDQTtBMUc2dFZBO0EyRGxtVkE7QStDN0hBO0FBQ0E7QUFDQTtBMUdrdVZBO0EwR3p0VkE7QUFDQTtBQUNBO0FBQ0E7QTFHMnRWQTtBMkQ1bVZBO0ErQzVHQTtBQUNBO0FBQ0E7QTFHMnRWQTtBMkRqblZBO0ErQzVHQTtBQUNBO0FBQ0E7QTFHZ3VWQTtBMkR0blZBO0ErQzVHQTtBQUNBO0FBQ0E7QTFHcXVWQTtBMEdqdVZBO0FBQ0E7QUFDQTtBMUdtdVZBO0EyRC9uVkE7QStDaEdBO0ExR2t1VkE7QTJEbG9WQTtBK0NoR0E7QTFHcXVWQTtBMkRyb1ZBO0ErQ2hHQTtBMUd3dVZBO0EwR3J1VkE7QUFDQTtBQUNBO0FBQ0E7QTFHdXVWQTtBMEdydVZBO0FBQ0E7QTFHdXVWQTtBMEdydVZBO0FBQ0E7QTFHdXVWQTtBMEdydVZBO0FBQ0E7QUFDQTtBQUNBO0ExR3V1VkE7QTBHcnVWQTtBQUNBO0ExR3V1VkE7QTBHcnVWQTtBQUNBO0ExR3V1VkE7QUFDQTtBMkczeVZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTNHNnlWQTtBMkR4cVZBO0FnRGxJQTtBQUNBO0FBQ0E7QTNHNnlWQTtBMkQ3cVZBO0FnRGxJQTtBQUNBO0FBQ0E7QTNHa3pWQTtBMkRsclZBO0FnRGxJQTtBQUNBO0FBQ0E7QTNHdXpWQTtBMkdwelZBO0EvQ0RBO0FBQ0E7QStDR0E7QTNHc3pWQTtBQUNBO0E0R3YwVkE7QUFEQTtBQUVBO0E1RzAwVkE7QUFDQTtBQUNBO0E2Ry8wVkE7QUFDQTtBN0dpMVZBO0FBQ0E7QTZHLzBWQTtBQUNBO0E3R2kxVkE7QUFDQTtBOEd0MVZBO0FBQ0E7QUFDQTtBQUNBO0FsRFVBO0FBQ0E7QTVEKzBWQTtBOEd2MVZBO0FBQ0E7QUFDQTtBQUNBO0E5R3kxVkE7QUFDQTtBK0dwMlZBO0FBQ0E7QS9HczJWQTtBQUNBO0ErR3AyVkE7QUFDQTtBL0dzMlZBO0FBQ0E7QStHcDJWQTtBQUNBO0FBQ0E7QS9HczJWQTtBQUNBO0ErR24yVkE7QUFDQTtBL0dxMlZBO0FBQ0E7QStHbDJWQTtBQUNBO0EvR28yVkE7QUFDQTtBK0dsMlZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QS9HbzJWQTtBK0duMlZBO0FBQ0E7QUFDQTtBQUNBO0EvR3EyVkE7QUFDQTtBK0dsMlZBO0FBQ0E7QUFDQTtBQUNBO0EvR28yVkE7QUFDQTtBK0duMlZBO0FBQ0E7QUFDQTtBQUNBO0EvR3EyVkE7QUFDQTtBK0dsMlZBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QS9HazJWQTtBQUNBO0ErR2oxVkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvR20xVkE7QTBEMzRWQTtBcURtREE7QUFRQTtBQUNBO0EvR28xVkE7QUFDQTtBQUNBO0ErR2gxVkE7QUFDQTtBQUNBO0EvR2sxVkE7QStHaDFWQTtBQUNBO0EvR2sxVkE7QUFDQTtBQUNBO0ErR3oxVkE7QUFDQTtBQUNBO0EvR2sxVkE7QStHaDFWQTtBQUNBO0EvR2sxVkE7QUFDQTtBK0cvMFZBO0FBQ0E7QUFDQTtBQUNBO0EvR2kxVkE7QStHaDFWQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBL0c2MFZBO0EyRDl5VkE7QW9EdENBO0FBQ0E7QUFDQTtBL0d1MVZBO0EyRG56VkE7QW9EdENBO0FBQ0E7QUFDQTtBL0c0MVZBO0EyRHh6VkE7QW9EdENBO0FBQ0E7QUFDQTtBL0dpMlZBO0EwRHI3VkE7QXFEMEZBO0FBRUE7QS9HNjFWQTtBQUNBO0ErR3oxVkE7QUFDQTtBQUNBO0EvRzIxVkE7QTBEOTdWQTtBcURpR0E7QUFJQTtBQUNBO0EvRzYxVkE7QUFDQTtBK0czMVZBO0FBQ0E7QUFDQTtBL0c2MVZBO0EwRGw4VkE7QXFEbUdBO0FBSUE7QUFDQTtBL0crMVZBO0FBQ0E7QStHNzFWQTtBQUNBO0FBQ0E7QUFDQTtBL0crMVZBO0ErRzMxVkE7QUFDQTtBL0c2MVZBO0ErRzExVkE7QUFFQTtBQUNBO0FuRHJJQTtBQUNBO0FtRHNJQTtBL0c0MVZBO0ErRzMxVkE7QUFDQTtBL0c2MVZBO0ErRzExVkE7QUFHQTtBL0cwMVZBO0ErR3oxVkE7QUFDQTtBQUNBO0FBQ0E7QS9HMjFWQTtBK0d4MVZBO0FBR0E7QUFDQTtBL0d3MVZBO0ErR3QxVkE7QUFDQTtBbkQ3SkE7QUFDQTtBbUQ4SkE7QS9HeTFWQTtBK0d2MVZBO0FBQ0E7QW5EbEtBO0FBQ0E7QW1EbUtBO0EvRzAxVkE7QUFDQTtBK0d2MVZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QS9HeTFWQTtBMER6L1ZBO0FxRDRKQTtBQU1BO0EvRzIxVkE7QUFDQTtBQUNBO0ErR3oxVkE7QUFDQTtBL0cyMVZBO0EwRGxnV0E7QXFEc0tBO0FBR0E7QS9HNjFWQTtBQUNBO0FBQ0E7QStHMzFWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBL0c2MVZBO0ErRzMxVkE7QUFDQTtBL0c2MVZBO0EwRDVoV0E7QXFEbUxBO0FBZUE7QUFDQTtBQUNBO0FBQ0E7QS9HODFWQTtBQUNBO0EwRDloV0E7QXFENktBO0FBc0JBO0FBQ0E7QS9HKzFWQTtBMkRqN1ZBO0FvRG9GQTtBL0dnMlZBO0EyRHA3VkE7QW9Eb0ZBO0EvR20yVkE7QTJEdjdWQTtBb0RvRkE7QS9HczJWQTtBQUNBO0ErR2wyVkE7QUFDQTtBQUNBO0EvR28yVkE7QTJELzdWQTtBb0Q2RkE7QS9HcTJWQTtBMkRsOFZBO0FvRDZGQTtBL0d3MlZBO0EyRHI4VkE7QW9ENkZBO0EvRzIyVkE7QTBEaGtXQTtBcURpTkE7QUFPQTtBL0c0MlZBO0FBQ0E7QStHejJWQTtBQUNBO0FBQ0E7QS9HMjJWQTtBMER0a1dBO0FxRHlOQTtBQUlBO0FBQ0E7QS9HNjJWQTtBQUNBO0EwRGxsV0E7QXFEK05BO0FBUUE7QUFDQTtBL0crMlZBO0FBQ0E7QStHNzJWQTtBQUNBO0FBQ0E7QUFDQTtBL0crMlZBO0ErRzcyVkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBL0crMlZBO0EyRHgrVkE7QW9EMkhBO0EvR2czVkE7QTJEMytWQTtBb0QySEE7QS9HbTNWQTtBMkQ5K1ZBO0FvRDJIQTtBL0dzM1ZBO0EwRHptV0E7QXFENk9BO0FBU0E7QUFDQTtBQUNBO0EvR3UzVkE7QTJEdi9WQTtBb0RrSUE7QS9HdzNWQTtBMkQxL1ZBO0FvRGtJQTtBL0cyM1ZBO0EyRDcvVkE7QW9Ea0lBO0EvRzgzVkE7QUFDQTtBMER6bldBO0FxRDZQQTtBQUVBO0EvRzgzVkE7QUFDQTtBK0czM1ZBO0FBQ0E7QUFDQTtBQUNBO0EvRzYzVkE7QStHMzNWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvRzYzVkE7QTBEem9XQTtBcUR3UUE7QUFNQTtBL0crM1ZBO0EyRHJoV0E7QW9Ed0pBO0EvR2c0VkE7QTJEeGhXQTtBb0R3SkE7QS9HbTRWQTtBMkQzaFdBO0FvRHdKQTtBL0dzNFZBO0FBQ0E7QTJEL2hXQTtBb0Q2SkE7QUFDQTtBL0dxNFZBO0EyRG5pV0E7QW9ENkpBO0FBQ0E7QS9HeTRWQTtBMkR2aVdBO0FvRDZKQTtBQUNBO0EvRzY0VkE7QTBEbnFXQTtBQ3dIQTtBb0RrS0E7QS9HNjRWQTtBMkQvaVdBO0FvRGtLQTtBL0dnNVZBO0EyRGxqV0E7QW9Ea0tBO0EvR201VkE7QUFDQTtBK0cvNFZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW5EelNBO0FBQ0E7QTVEMnJXQTtBMER0cldBO0FxRCtSQTtBQU9BO0EvR281VkE7QTJEbGtXQTtBb0RnTEE7QS9HcTVWQTtBMkRya1dBO0FvRGdMQTtBL0d3NVZBO0EyRHhrV0E7QW9EZ0xBO0EvRzI1VkE7QUFDQTtBK0d6NVZBO0FuRGpUQTtBQUNBO0E1RDZzV0E7QStHdjVWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBL0d5NVZBO0EwRG50V0E7QXFEaVRBO0FBV0E7QS9HMjVWQTtBQUNBO0ErR3o1VkE7QUFDQTtBL0cyNVZBO0ErR3Q1VkE7QUFDQTtBQUNBO0EvR3c1VkE7QStHdjVWQTtBQUhBO0FBSUE7QUFDQTtBL0cwNVZBO0FBQ0E7QStHdjVWQTtBQUNBO0FBQ0E7QS9HeTVWQTtBMER6dVdBO0FxRDhVQTtBQUtBO0EvRzA1VkE7QTJEcm5XQTtBb0Q2TkE7QS9HMjVWQTtBMkR4bldBO0FvRDZOQTtBL0c4NVZBO0EyRDNuV0E7QW9ENk5BO0EvR2k2VkE7QUFDQTtBK0c5NVZBO0FuRC9WQTtBQUNBO0FtRGdXQTtBL0dpNlZBO0EyRHBvV0E7QW9EcU9BO0EvR2s2VkE7QTJEdm9XQTtBb0RxT0E7QS9HcTZWQTtBMkQxb1dBO0FvRHFPQTtBL0d3NlZBO0EwRHJ3V0E7QXFEeVZBO0FBT0E7QW5EdFdBO0FBQ0E7QTVEZ3hXQTtBQUNBO0ErR3g2VkE7QUFFQTtBL0d5NlZBO0ErR3Y2VkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QS9HeTZWQTtBK0d0NlZBO0FBQ0E7QUFDQTtBbkR6WEE7QUFDQTtBbUQwWEE7QS9HeTZWQTtBMEQ5eFdBO0FxRGlYQTtBbkR2WEE7QUFDQTtBNUR3eVdBO0FBQ0E7QStHMTZWQTtBQUVBO0FuRGxZQTtBQUNBO0FtRG1ZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvRzQ2VkE7QStHMzZWQTtBQUNBO0EvRzY2VkE7QTJEenJXQTtBb0Q4UUE7QS9HODZWQTtBMkQ1cldBO0FvRDhRQTtBL0dpN1ZBO0EyRC9yV0E7QW9EOFFBO0EvR283VkE7QTJEbHNXQTtBb0RrUkE7QS9HbTdWQTtBMkRyc1dBO0FvRGtSQTtBL0dzN1ZBO0EyRHhzV0E7QW9Ea1JBO0EvR3k3VkE7QTBEbjBXQTtBcUQwWEE7QW5EaFlBO0FBQ0E7QTVENjBXQTtBQUNBO0ErR3Y3VkE7QUFDQTtBL0d5N1ZBO0ErR3Q3VkE7QUFDQTtBL0d3N1ZBO0ErR3Y3VkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvR3k3VkE7QTJEanVXQTtBb0QwU0E7QS9HMDdWQTtBMkRwdVdBO0FvRDBTQTtBL0c2N1ZBO0EyRHZ1V0E7QW9EMFNBO0EvR2c4VkE7QStHOTdWQTtBQVpBO0FBYUE7QS9HaThWQTtBQUNBO0EwRGoyV0E7QXFEZ1pBO0FBbUJBO0EvR2s4VkE7QUFDQTtBK0doOFZBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QS9HaThWQTtBK0cvN1ZBO0FBQ0E7QS9HaThWQTtBMkRod1dBO0FvRGlVQTtBL0drOFZBO0EyRG53V0E7QW9EaVVBO0EvR3E4VkE7QTJEdHdXQTtBb0RpVUE7QS9HdzhWQTtBMERqNFdBO0FxRGljQTtBQUVBO0EvR2s4VkE7QUFDQTtBK0doOFZBO0FuRDVjQTtBQUNBO0FtRGdkQTtBL0dnOFZBO0EyRG54V0E7QW9EZ1ZBO0EvR3M4VkE7QTJEdHhXQTtBb0RnVkE7QS9HeThWQTtBMkR6eFdBO0FvRGdWQTtBL0c0OFZBO0ErR3Y4VkE7QW5EbmRBO0FBQ0E7QTVENjVXQTtBMkRoeVdBO0FvRHdWQTtBL0cyOFZBO0EyRG55V0E7QW9Ed1ZBO0EvRzg4VkE7QTJEdHlXQTtBb0R3VkE7QS9HaTlWQTtBK0cxOFZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvRzQ4VkE7QTBEejZXQTtBcUR1ZEE7QUFRQTtBQUNBO0EvRzg4VkE7QUFDQTtBK0c1OFZBO0FBSUE7QS9HMjhWQTtBMkQxeldBO0FvRDZXQTtBL0dnOVZBO0EyRDd6V0E7QW9ENldBO0EvR205VkE7QTJEaDBXQTtBb0Q2V0E7QS9HczlWQTtBK0dsOVZBO0FBQ0E7QS9HbzlWQTtBMkR0MFdBO0FvRHFYQTtBL0dvOVZBO0EyRHowV0E7QW9EcVhBO0EvR3U5VkE7QTJENTBXQTtBb0RxWEE7QS9HMDlWQTtBK0dyOVZBO0FBQ0E7QS9HdTlWQTtBMEQxOFdBO0FxRHFmQTtBQUNBO0EvR3c5VkE7QUFDQTtBK0dwOVZBO0FBQ0E7QS9HczlWQTtBMERsOVdBO0FxRDhmQTtBQUVBO0FBQ0E7QS9HczlWQTtBQUNBO0FBQ0E7QStHajlWQTtBQUNBO0FBQ0E7QUFDQTtBL0dtOVZBO0ErR2w5VkE7QUFDQTtBL0dvOVZBO0ErR245VkE7QUFDQTtBQUNBO0EvR3E5VkE7QStHLzhWQTtBQUNBO0EvR2k5VkE7QTJEaDNXQTtBb0RpYUE7QS9HazlWQTtBMkRuM1dBO0FvRGlhQTtBL0dxOVZBO0EyRHQzV0E7QW9EaWFBO0EvR3c5VkE7QStHbjlWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvR3E5VkE7QTBEdi9XQTtBcUQ4aEJBO0FBTUE7QUFDQTtBQUNBO0EvR3U5VkE7QUFDQTtBK0dyOVZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBL0d1OVZBO0ErR3I5VkE7QUFHQTtBbkR6akJBO0FBQ0E7QTVEK2dYQTtBMEQxZ1hBO0FxRGdqQkE7QW5EdGpCQTtBQUNBO0E1RG9oWEE7QUFDQTtBK0d0OVZBO0FBRUE7QW5EbGtCQTtBQUNBO0E1RDBoWEE7QUFDQTtBK0dsOVZBO0FBQ0E7QS9HbzlWQTtBK0dsOVZBO0FBRUE7QW5EL2tCQTtBQUNBO0E1RG1pWEE7QUFDQTtBK0cvOFZBO0FBQ0E7QS9HaTlWQTtBMkQxNldBO0FvRDJkQTtBL0drOVZBO0EyRDc2V0E7QW9EMmRBO0EvR3E5VkE7QTJEaDdXQTtBb0QyZEE7QS9HdzlWQTtBMkRuN1dBO0FvRCtkQTtBL0d1OVZBO0EyRHQ3V0E7QW9EK2RBO0EvRzA5VkE7QTJEejdXQTtBb0QrZEE7QS9HNjlWQTtBK0cxOVZBO0FBQ0E7QW5EMWxCQTtBQUVBO0FtRDBsQkE7QS9HNjlWQTtBK0czOVZBO0FBQ0E7QS9HNjlWQTtBK0czOVZBO0FBQ0E7QS9HNjlWQTtBK0czOVZBO0FBQ0E7QS9HNjlWQTtBQUNBO0ErR3o5VkE7QUFDQTtBL0cyOVZBO0EyRC84V0E7QW9Ed2ZBO0EvRzA5VkE7QTJEbDlXQTtBb0R3ZkE7QS9HNjlWQTtBMkRyOVdBO0FvRHdmQTtBL0dnK1ZBO0FBQ0E7QTJEejlXQTtBb0RpZ0JBO0EvRzI5VkE7QTJENTlXQTtBb0RpZ0JBO0EvRzg5VkE7QTJELzlXQTtBb0RpZ0JBO0EvR2krVkE7QUFDQTtBK0czOVZBO0FBQ0E7QS9HNjlWQTtBQUNBO0EwRC9sWEE7QXFEb29CQTtBQUVBO0EvRzY5VkE7QStHMTlWQTtBQUNBO0FuRHpvQkE7QUFFQTtBNURxbVhBO0ErRzM5VkE7QUFFQTtBL0c0OVZBO0ErRzE5VkE7QUFDQTtBL0c0OVZBO0ErRzE5VkE7QUFDQTtBL0c0OVZBO0ErR3g5VkE7QUFDQTtBQUNBO0FBQ0E7QS9HMDlWQTtBQUNBO0EwRGpuWEE7QXFEbXBCQTtBQUtBO0FBQ0E7QS9HNjlWQTtBQUNBO0EwRDduWEE7QXFEbXFCQTtBQUNBO0FBQ0E7QS9HNjlWQTtBQUNBO0EwRDFuWEE7QXFEMHBCQTtBQUlBO0EvR2crVkE7QUFDQTtBMER4b1hBO0FDd0hBO0FvRGtqQkE7QUFDQTtBL0drK1ZBO0FBQ0E7QTBEOW9YQTtBQ3dIQTtBb0RrakJBO0FBQ0E7QS9HdytWQTtBQUNBO0EwRHBwWEE7QUN3SEE7QW9Ea2pCQTtBQUNBO0EvRzgrVkE7QUFDQTtBMEQxcFhBO0FxRDZxQkE7QUFFQTtBL0crK1ZBO0EyRHRpWEE7QW9EeWpCQTtBL0dnL1ZBO0EyRHppWEE7QW9EeWpCQTtBL0dtL1ZBO0EyRDVpWEE7QW9EeWpCQTtBL0dzL1ZBO0FBQ0E7QTBEeHFYQTtBcURxckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QS9Hcy9WQTtBQUNBO0EwRGhyWEE7QXFEcXJCQTtBQU1BO0EvR3kvVkE7QUFDQTtBMERyclhBO0FxRDhyQkE7QW5EcHNCQTtBQUNBO0E1RCtyWEE7QUFDQTtBMEQzclhBO0FxRDhyQkE7QUFJQTtBL0c2L1ZBO0FBQ0E7QTBEdnJYQTtBcURxckJBO0FBT0E7QS9HKy9WQTtBQUNBO0EwRHJzWEE7QXFEeXNCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QS9HKy9WQTtBQUNBO0EwRDlzWEE7QXFEZ3RCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvR2lnV0E7QUFDQTtBMER0dFhBO0FxRHN0QkE7QUFDQTtBQUNBO0EvR21nV0E7QUFDQTtBMEQ1dFhBO0FxRDB0QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBL0dxZ1dBO0FBQ0E7QTBEcHVYQTtBcURtdUJBO0FuRHp1QkE7QUFDQTtBbUQwdUJBO0FBQ0E7QUFDQTtBQUNBO0EvR3FnV0E7QUFDQTtBMEQ5dVhBO0FxRDB1QkE7QUFDQTtBQUNBO0EvR3VnV0E7QUFDQTtBMERwdlhBO0FDd0hBO0FvRHduQkE7QUFDQTtBL0d3Z1dBO0EyRGpvWEE7QW9Ed25CQTtBQUNBO0EvRzRnV0E7QTJEcm9YQTtBb0R3bkJBO0FBQ0E7QS9HZ2hXQTtBQUNBO0EwRGx3WEE7QXFEb3ZCQTtBQUNBO0EvR2loV0E7QStHaGhXQTtBQUNBO0EvR2toV0E7QStHaGhXQTtBQUNBO0FBQ0E7QS9Ha2hXQTtBQUNBO0EwRDl3WEE7QXFEOHZCQTtBQUNBO0EvR21oV0E7QUFDQTtBMERueFhBO0FxRGl3QkE7QUFDQTtBL0dxaFdBO0FBQ0E7QTBEeHhYQTtBcURvd0JBO0FBQ0E7QUFDQTtBL0d1aFdBO0FBQ0E7QTBEOXhYQTtBcUR3d0JBO0FBRUE7QUFDQTtBL0d3aFdBO0FBQ0E7QTBEcHlYQTtBcUQ4d0JBO0FBQ0E7QUFDQTtBL0d5aFdBO0FBQ0E7QTBEMXlYQTtBcURxeEJBO0FuRDN4QkE7QUFDQTtBbUQ0eEJBO0EvR3loV0E7QStHeGhXQTtBbkQ5eEJBO0FBQ0E7QTVEeXpYQTtBQUNBO0FBQ0E7QStHdGhXQTtBQUNBO0FBQ0E7QUFDQTtBL0d3aFdBO0FBQ0E7QStHdGhXQTtBQUNBO0EvR3doV0E7QTBEL3pYQTtBcURzeUJBO0FBR0E7QS9HMGhXQTtBQUNBO0FBQ0E7QStHeGhXQTtBQUNBO0EvRzBoV0E7QTJEaHRYQTtBb0R3ckJBO0EvRzJoV0E7QTJEbnRYQTtBb0R3ckJBO0EvRzhoV0E7QTJEdHRYQTtBb0R3ckJBO0EvR2lpV0E7QTJEenRYQTtBb0Q0ckJBO0EvR2dpV0E7QTJENXRYQTtBb0Q0ckJBO0EvR21pV0E7QTJEL3RYQTtBb0Q0ckJBO0EvR3NpV0E7QStHbmlXQTtBQUNBO0FuRHZ6QkE7QUFFQTtBbUR1ekJBO0EvR3NpV0E7QStHcGlXQTtBQUNBO0EvR3NpV0E7QStHcGlXQTtBQUNBO0EvR3NpV0E7QStHcGlXQTtBQUNBO0EvR3NpV0E7QUFDQTtBK0duaVdBO0FBQ0E7QS9HcWlXQTtBQUNBO0ErR2xpV0E7O0FBS0E7QS9HaWlXQTtBQUNBO0ErRzloV0E7O0FBRUE7QS9HZ2lXQTtBQUNBO0FnSDU0WEE7QUFDQTtBaEg4NFhBO0FnSDc0WEE7QUFDQTtBaEgrNFhBO0FnSDc0WEE7QUFDQTtBQUNBO0FoSCs0WEE7QWdINzRYQTtBQUNBO0FBQ0E7QUFDQTtBaEgrNFhBO0FBQ0E7QWdINTRYQTtBQUNBO0FBQ0E7QUFDQTtBaEg4NFhBO0FBQ0E7QWlIbDZYQTtBQUNBO0FBSUE7QWpIaTZYQTtBMkQxeFhBO0FzRHpJQTtBakhzNlhBO0EyRDd4WEE7QXNEeklBO0FqSHk2WEE7QTJEaHlYQTtBc0R6SUE7QWpINDZYQTtBaUh6NlhBO0FBQ0E7QWpIMjZYQTtBMkR0eVhBO0FzRG5JQTtBakg0NlhBO0EyRHp5WEE7QXNEbklBO0FqSCs2WEE7QTJENXlYQTtBc0RuSUE7QWpIazdYQTtBaUgvNlhBO0FBQ0E7QWpIaTdYQTtBQUNBO0FpSDk2WEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWpIZzdYQTtBMkQzelhBO0FzRG5IQTtBakhpN1hBO0EyRDl6WEE7QXNEbkhBO0FqSG83WEE7QTJEajBYQTtBc0RuSEE7QWpIdTdYQTtBaUhyN1hBO0FBQ0E7QUFDQTtBakh1N1hBO0FBQ0E7QWlIcDdYQTtBQUNBO0FBQ0E7QUFDQTtBakhzN1hBO0FBQ0E7QWlIcDdYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FqSHM3WEE7QUFDQTtBaUhwN1hBO0FBQ0E7QUFDQTtBQUNBO0FqSHM3WEE7QTJEMzFYQTtBc0R4RkE7QUFDQTtBakhzN1hBO0FpSHA3WEE7QUFDQTtBQUNBO0FqSHM3WEE7QWlIbjdYQTtBQUNBO0FBQ0E7QWpIcTdYQTtBMkR2MlhBO0FzRHhGQTtBQUNBO0FqSGs4WEE7QWlIaDhYQTtBQUNBO0FBQ0E7QWpIazhYQTtBaUgvN1hBO0FBQ0E7QUFDQTtBakhpOFhBO0EyRG4zWEE7QXNEeEZBO0FBQ0E7QWpIODhYQTtBaUg1OFhBO0FBQ0E7QUFDQTtBakg4OFhBO0FpSDM4WEE7QUFDQTtBQUNBO0FqSDY4WEE7QUFDQTtBaUh6OFhBO0FBQ0E7QWpIMjhYQTtBQUNBO0FpSHo4WEE7QUFDQTtBakgyOFhBO0FBQ0E7QWtIcGhZQTtBQUNBO0FBQ0E7QWxIc2hZQTtBa0hyaFlBO0FBQ0E7QUFJQTtBbEhvaFlBO0EyRGg1WEE7QXVEdElBO0FsSHloWUE7QTJEbjVYQTtBdUR0SUE7QWxINGhZQTtBMkR0NVhBO0F1RHRJQTtBbEgraFlBO0FBQ0E7QW1IcGlZQTtBQUNBO0FBQ0E7QW5Ic2lZQTtBbUhyaVlBO0FBQ0E7QW5IdWlZQTtBQUNBO0FvSDlpWUE7QUFDQTtBcEhnallBO0EwRDdoWUE7QTBEakJBO0FBRUE7QXBIZ2pZQTtBQUNBO0FBQ0E7QW9INWlZQTtBQUFBO0FwSCtpWUE7QW9IOWlZQTtBQUNBO0FBQ0E7QXBIZ2pZQTtBMkRsN1hBO0F5RDVIQTtBQUNBO0FwSGlqWUE7QTJEdDdYQTtBeUQ1SEE7QUFDQTtBcEhxallBO0EyRDE3WEE7QXlENUhBO0FBQ0E7QXBIeWpZQTtBQUNBO0FvSHJqWUE7QUFDQTtBQUNBO0FwSHVqWUE7QTJEbjhYQTtBeURsSEE7QXBId2pZQTtBMkR0OFhBO0F5RGxIQTtBcEgyallBO0EyRHo4WEE7QXlEbEhBO0FwSDhqWUE7QW9INWpZQTtBQUFBO0FBQUE7QUFBQTtBcEhpa1lBO0FBQ0E7QW9IL2pZQTtBQUNBO0FwSGlrWUE7QUFDQTtBb0gvallBO0FBQ0E7QUFDQTtBcEhpa1lBO0FvSGhrWUE7QUFDQTtBcEhra1lBO0FvSGhrWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXBIa2tZQTtBb0hqa1lBO0FBQ0E7QXBIbWtZQTtBb0hqa1lBO0FBS0E7QUFDQTtBcEgrallBO0EyRDUrWEE7QXlEdkZBO0FBQ0E7QXBIc2tZQTtBMkRoL1hBO0F5RHZGQTtBQUNBO0FwSDBrWUE7QTJEcC9YQTtBeUR2RkE7QUFDQTtBcEg4a1lBO0FvSHprWUE7QUFsQkE7QUFtQkE7QXBINGtZQTtBQUNBO0FvSHprWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXBIMmtZQTtBb0h6a1lBO0FBQ0E7QXBIMmtZQTtBb0h4a1lBO0FBQ0E7QUFDQTtBcEgwa1lBO0FBQ0E7QW9IdGtZQTtBQUNBO0FBQ0E7QUFDQTtBcEh3a1lBO0FBQ0E7QW9IdGtZQTtBQUNBO0FBQ0E7QXBId2tZQTtBb0h2a1lBO0FBQ0E7QXBIeWtZQTtBb0h2a1lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FwSHVrWUE7QW9IemtZQTtBQUFBO0FwSDRrWUE7QW9IeGtZQTtBQUNBO0FBQ0E7QUFDQTtBcEgwa1lBO0FvSHprWUE7QUFKQTtBQUtBO0FwSDRrWUE7QUFDQTtBb0gxa1lBO0FBQ0E7QXBINGtZQTtBb0gza1lBO0FBQUE7QXBIOGtZQTtBb0gza1lBO0FBQ0E7QUFDQTtBcEg2a1lBO0FvSDFrWUE7QUFDQTtBQUNBO0FBQ0E7QXBINGtZQTtBb0gxa1lBO0FBQ0E7QUFDQTtBQUNBO0FwSDRrWUE7QW9IeGtZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FwSDBrWUE7QW9IeGtZQTtBQUNBO0FwSDBrWUE7QW9IdmtZQTtBQUNBO0FBQ0E7QUFDQTtBcEh5a1lBO0FvSHZrWUE7QUFFQTtBcEh3a1lBO0E0RC90WUE7QUFDQTtBNURpdVlBO0FvSHhrWUE7QUFDQTtBQUNBO0FwSDBrWUE7QW9IemtZQTtBQUFBO0FwSDRrWUE7QW9IM2tZQTtBQUFBO0FBQUE7QXBIK2tZQTtBQUNBO0FvSDNrWUE7QUFFQTtBQUNBO0FwSDRrWUE7QUFDQTtBb0gxa1lBO0FBQ0E7QUFDQTtBcEg0a1lBO0FBQ0E7QW9IMWtZQTtBQUNBO0FBQ0E7QXBINGtZQTtBQUNBO0FvSDFrWUE7QUFDQTtBcEg0a1lBO0FvSDFrWUE7QUFDQTtBcEg0a1lBO0FBQ0E7QW9IemtZQTtBQUNBO0FBQ0E7QXBIMmtZQTtBb0gxa1lBO0FBQ0E7QUFDQTtBcEg0a1lBO0FBQ0E7QW9IcmtZQTtBQUNBO0FwSHVrWUE7QW9IdGtZQTtBQUNBO0FwSHdrWUE7QTBEaHdZQTtBMER1TEE7QXhEN0xBO0FBQ0E7QTVEMHdZQTtBQUNBO0FvSHZrWUE7QUFDQTtBQUNBO0FwSHlrWUE7QTBEandZQTtBMERzTEE7QUFJQTtBcEgya1lBO0FBQ0E7QW9IeGtZQTtBQUNBO0FwSDBrWUE7QUFDQTtBb0h2a1lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FwSHlrWUE7QUFDQTtBb0h2a1lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FwSHlrWUE7QW9IdmtZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FwSHlrWUE7QUFDQTtBcUg5ellBO0FBQ0E7QXJIZzBZQTtBcUg1ellBO0FBQ0E7QUFDQTtBekRNQTtBQUNBO0E1RHl6WUE7QXFIN3pZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FySCt6WUE7QXFINXpZQTtBQUNBO0FBQ0E7QXJIOHpZQTtBcUg3ellBO0FBQUE7QXJIZzBZQTtBQUNBO0FzSHQxWUE7QUFFQTtBdEh1MVlBO0FzSHIxWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRIdTFZQTtBc0hwMVlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRIczFZQTtBQUNBO0FzSGwxWUE7QUFFQTtBdEhtMVlBO0FzSGoxWUE7QUFDQTtBdEhtMVlBO0FzSGoxWUE7QUFDQTtBdEhtMVlBO0FzSGoxWUE7QUFDQTtBdEhtMVlBO0FBQ0E7QXVIeDNZQTtBQUNBO0FBQ0E7QXZIMDNZQTtBdUh4M1lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdkgwM1lBO0F1SHYzWUE7QUFDQTtBQUNBO0FBQ0E7QXZIeTNZQTtBdUh0M1lBO0FBQ0E7QUFDQTtBdkh3M1lBO0F1SHIzWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F2SHUzWUE7QUFDQTtBdUhwM1lBO0FBQ0E7QUFDQTtBdkhzM1lBO0F1SG4zWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZIcTNZQTtBdUhsM1lBO0FBQ0E7QUFDQTtBdkhvM1lBO0FBQ0E7QXVIajNZQTtBQUNBO0FBQ0E7QXZIbTNZQTtBdUhoM1lBO0FBQ0E7QUFDQTtBdkhrM1lBO0F1SC8yWUE7QUFDQTtBQUNBO0FBQ0E7QXZIaTNZQTtBQUNBO0F1SDkyWUE7QUFDQTtBQUNBO0FBQ0E7QXZIZzNZQTtBQUNBO0F1SDcyWUE7QUFDQTtBdkgrMllBO0F1SDUyWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdkg4MllBO0F1SDcyWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZIKzJZQTtBdUgzMllBO0FBQ0E7QXZINjJZQTtBdUgxMllBO0FBQ0E7QUFDQTtBQUNBO0F2SDQyWUE7QXVIejJZQTtBQUNBO0FBQ0E7QXZIMjJZQTtBQUNBO0F1SHgyWUE7QUFDQTtBQUNBO0FBQ0E7QXZIMDJZQTtBdUh2MllBO0FBQ0E7QXZIeTJZQTtBdUh0MllBO0FBQ0E7QXZIdzJZQTtBdUhyMllBO0FBQ0E7QUFDQTtBdkh1MllBO0F1SHAyWUE7QUFDQTtBQUNBO0F2SHMyWUE7QUFDQTtBdUhuMllBO0FBQ0E7QUFDQTtBdkhxMllBO0F1SGwyWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdkhvMllBO0F1SG4yWUE7QUFDQTtBQUNBO0F2SHEyWUE7QXVIajJZQTtBQUNBO0F2SG0yWUE7QUFDQTtBd0g1L1lBO0FBQUE7QXhIKy9ZQTtBd0g5L1lBO0FBQUE7QXhIaWdaQTtBd0hoZ1pBO0FBQUE7QXhIbWdaQTtBd0hsZ1pBO0FBQUE7QUFBQTtBeEhzZ1pBO0F3SHJnWkE7QUFBQTtBQUFBO0F4SHlnWkE7QXdIeGdaQTtBQUFBO0FBQUE7QUFBQTtBeEg2Z1pBO0F3SDVnWkE7QUFBQTtBQUFBO0F4SGdoWkE7QXdIL2daQTtBQUFBO0F4SGtoWkE7QXdIaGhaQTtBQUNBO0F4SGtoWkE7QXdIamhaQTtBQUZBO0FBR0E7QXhIb2haQTtBQUNBO0F3SGpoWkE7QUFDQTtBeEhtaFpBO0EyRHo1WUE7QTZEckhBO0F4SGloWkE7QTJENTVZQTtBNkRySEE7QXhIb2haQTtBMkQvNVlBO0E2RHJIQTtBeEh1aFpBO0F3SG5oWkE7QUFDQTtBQUVBO0F4SG9oWkE7QXdIbmhaQTtBQUpBO0FBS0E7QXhIc2haQTtBQUNBO0F3SG5oWkE7QUFDQTtBeEhxaFpBO0FBQ0E7QXdIamhaQTtBQUNBO0F4SG1oWkE7QXdIaGhaQTtBQUxBO0FBTUE7QXhIbWhaQTtBQUNBO0F3SGpoWkE7QUFDQTtBeEhtaFpBO0F3SGhoWkE7QUFDQTtBeEhraFpBO0F3SGpoWkE7QUFDQTtBQUNBO0F4SG1oWkE7QXdIbGhaQTtBQUhBO0FBSUE7QXhIcWhaQTtBQUNBO0F3SGpoWkE7QUFDQTtBeEhtaFpBO0F3SGhoWkE7QUFDQTtBQUNBO0F4SGtoWkE7QXdIL2daQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F4SGloWkE7QXdIOWdaQTtBQUNBO0F4SGdoWkE7QUFDQTtBd0g3Z1pBO0FBQ0E7QXhIK2daQTtBQUNBO0F5SHRtWkE7QUFBQTtBekh5bVpBO0F5SHhtWkE7QUFBQTtBekgybVpBO0FBQ0E7QXlIem1aQTtBQUNBO0F6SDJtWkE7QUFDQTtBeUh2bVpBO0FBQUE7QXpIMG1aQTtBeUh6bVpBO0FBQ0E7QXpIMm1aQTtBQUNBO0EwSHZuWkE7QUFBQTtBQUFBO0ExSDJuWkE7QTBIem5aQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0ExSDJuWkE7QTBIem5aQTtBQUNBO0FBQ0E7QTFIMm5aQTtBMEgxblpBO0FBQ0E7QTFING5aQTtBMEgxblpBO0FBQUE7QTFINm5aQTtBMEg1blpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTFIOG5aQTtBMEg1blpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTFIOG5aQTtBMEg1blpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBMUg4blpBO0EwSDVuWkE7QUFBQTtBMUgrblpBO0FBQ0E7QTJIMXFaQTtBQUNBO0EzSDRxWkE7QTBEenBaQTtBaUVqQkE7QUFFQTtBM0g0cVpBO0FBQ0E7QUFDQTtBMkh4cVpBO0FBQUE7QTNIMnFaQTtBMkgxcVpBO0FBQ0E7QUFDQTtBM0g0cVpBO0EyRDlpWkE7QWdFNUhBO0FBQ0E7QTNINnFaQTtBMkRsalpBO0FnRTVIQTtBQUNBO0EzSGlyWkE7QTJEdGpaQTtBZ0U1SEE7QUFDQTtBM0hxclpBO0FBQ0E7QTJIanJaQTtBQUNBO0FBQ0E7QTNIbXJaQTtBMkQvalpBO0FnRWxIQTtBM0hvclpBO0EyRGxrWkE7QWdFbEhBO0EzSHVyWkE7QTJEcmtaQTtBZ0VsSEE7QTNIMHJaQTtBMkh4clpBO0FBQUE7QUFBQTtBQUFBO0EzSDZyWkE7QUFDQTtBMkgzclpBO0FBQ0E7QTNINnJaQTtBQUNBO0EySDNyWkE7QUFDQTtBQUNBO0EzSDZyWkE7QTJINXJaQTtBQUNBO0EzSDhyWkE7QTJINXJaQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBM0g4clpBO0EySDdyWkE7QUFDQTtBM0grclpBO0EySDdyWkE7QUFLQTtBQUNBO0EzSDJyWkE7QTJEeG1aQTtBZ0V2RkE7QUFDQTtBM0hrc1pBO0EyRDVtWkE7QWdFdkZBO0FBQ0E7QTNIc3NaQTtBMkRoblpBO0FnRXZGQTtBQUNBO0EzSDBzWkE7QTJIbnNaQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBM0hxc1pBO0EySG5zWkE7QUFDQTtBM0hxc1pBO0FBQ0E7QTJIanNaQTtBQUNBO0FBQ0E7QUFDQTtBM0htc1pBO0FBQ0E7QTJIanNaQTtBQUNBO0FBQ0E7QTNIbXNaQTtBMkhsc1pBO0FBQ0E7QTNIb3NaQTtBMkhsc1pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0EzSGtzWkE7QTJIcHNaQTtBQUFBO0EzSHVzWkE7QTJIbnNaQTtBQUNBO0FBQ0E7QUFDQTtBM0hxc1pBO0EySHBzWkE7QUFKQTtBQUtBO0EzSHVzWkE7QUFDQTtBMkhyc1pBO0FBQ0E7QTNIdXNaQTtBMkh0c1pBO0FBQUE7QTNIeXNaQTtBMkh0c1pBO0FBQ0E7QUFDQTtBM0h3c1pBO0EySHJzWkE7QUFDQTtBQUNBO0EzSHVzWkE7QTJIcHNaQTtBQUNBO0FBQ0E7QUFDQTtBM0hzc1pBO0EySHBzWkE7QUFDQTtBQUNBO0FBQ0E7QTNIc3NaQTtBMkhsc1pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTNIb3NaQTtBMkhsc1pBO0FBQ0E7QTNIb3NaQTtBMkhqc1pBO0FBQ0E7QUFDQTtBQUNBO0EzSG1zWkE7QTJIanNaQTtBQUVBO0EzSGtzWkE7QTREdDFaQTtBQUNBO0E1RHcxWkE7QTJIbHNaQTtBQUNBO0FBQ0E7QTNIb3NaQTtBMkhuc1pBO0FBQUE7QTNIc3NaQTtBMkhyc1pBO0FBQUE7QTNId3NaQTtBQUNBO0EySHBzWkE7QUFFQTtBQUNBO0EzSHFzWkE7QUFDQTtBMkhuc1pBO0FBQ0E7QUFDQTtBM0hxc1pBO0FBQ0E7QTJIbnNaQTtBQUNBO0FBQ0E7QTNIcXNaQTtBQUNBO0EySG5zWkE7QUFDQTtBM0hxc1pBO0EySG5zWkE7QUFDQTtBM0hxc1pBO0FBQ0E7QTJIbHNaQTtBQUNBO0FBQ0E7QTNIb3NaQTtBMkhuc1pBO0FBQ0E7QUFDQTtBM0hxc1pBO0FBQ0E7QTJIOXJaQTtBQUNBO0EzSGdzWkE7QTJIL3JaQTtBQUNBO0EzSGlzWkE7QTBEdDNaQTtBaUVvTEE7QS9EMUxBO0FBQ0E7QTVEZzRaQTtBQUNBO0EySGhzWkE7QUFDQTtBQUNBO0EzSGtzWkE7QTBEdjNaQTtBaUVtTEE7QUFJQTtBM0hvc1pBO0FBQ0E7QTJIanNaQTtBQUNBO0EzSG1zWkE7QUFDQTtBQXg0WkE7QUFDQTtBQUNBO0FBQ0E7QUEwNFpBO0FBQ0E7QUF2NFpBO0FBQ0E7QUFDQTtBQUNBO0FBeTRaQTtBQUNBO0FBdDRaQTtBQUNBO0FBdzRaQTtBQUNBO0FBdDRaQTtBQUNBO0FBdzRaQTtBQUNBO0FBdDRaQTtBQUNBO0FBdzRaQTtBQUNBO0FBdDRaQTtBQUNBO0FBdzRaQTtBQUNBO0FBdDRaQTtBQUNBO0FBdzRaQTtBQUNBO0FBdDRaQTtBQUNBO0FBdzRaQTtBQUNBO0FBdDRaQTtBQUNBO0FBdzRaQTtBQUNBO0FBcjRaQTtBQUNBO0FBdTRaQTtBQUNBO0FBbDRaQTtBQUlBO0FBaTRaQTtBMkRoMFpBO0EzRG5FQTtBQXM0WkE7QTJEbjBaQTtBM0RuRUE7QUF5NFpBO0EyRHQwWkE7QTNEbkVBO0FBNDRaQTtBQXo0WkE7QUFDQTtBQUNBO0FBMjRaQTtBMkQ3MFpBO0EzRDVEQTtBQTQ0WkE7QTJEaDFaQTtBM0Q1REE7QUErNFpBO0EyRG4xWkE7QTNENURBO0FBazVaQTtBMkR0MVpBO0EzRHhEQTtBQWk1WkE7QTJEejFaQTtBM0R4REE7QUFvNVpBO0EyRDUxWkE7QTNEeERBO0FBdTVaQTtBQUNBO0FBajVaQTtBQUNBO0FBQ0E7QUFtNVpBO0FBQ0E7QUFqNVpBO0FBQ0E7QUFDQTtBQW01WkE7QUFDQTtBQWo1WkE7QUFDQTtBQUNBO0FBbTVaQTtBQWo1WkE7QUFDQTtBQW01WkE7QUFDQTtBQUNBO0FBMTVaQTtBQUNBO0FBQ0E7QUFtNVpBO0FBajVaQTtBQUNBO0FBbTVaQTtBQUNBO0FBaDVaQTtBQUNBO0FBazVaQTtBQUNBO0FBaDVaQTtBQUNBO0FBQ0E7QUFDQTtBQWs1WkE7QUFoNVpBO0FBTEE7QUFNQTtBQW01WkE7QUFDQTtBQUNBO0FBajVaQTtBQUNBO0FBbTVaQTtBQWw1WkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFvNVpBO0FBbDVaQTtBQUNBO0FBbzVaQTtBQWw1WkE7QUFDQTtBQW81WkE7QUFDQTtBQWo1WkE7QUFDQTtBQW01WkE7QUFDQTtBQWo1WkE7QUFDQTtBQUNBO0FBbTVaQTtBQUNBO0FBaDVaQTtBQUNBO0FBazVaQTtBQUNBO0FBaDVaQTtBQUNBO0FBQ0E7QUFDQTtBQWs1WkE7QUFqNVpBO0FBQ0E7QUFtNVpBO0EyRHg2WkE7QTNEdUJBO0FBQ0E7QUFvNVpBO0EyRDU2WkE7QTNEdUJBO0FBQ0E7QUF3NVpBO0EyRGg3WkE7QTNEdUJBO0FBQ0E7QUE0NVpBO0FBQ0E7QUF2NVpBO0FBQ0E7QUF5NVpBO0FBdjVaQTtBQUNBO0FBeTVaQTtBQUNBO0FBbjVaQTtBQUNBO0FBQ0E7QUFxNVpBO0FBQ0E7QUFuNVpBO0FBQUE7QUFzNVpBO0FBQ0E7QUFyNVpBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF1NVpBO0FBQ0E7QUFyNVpBOztBQUdBO0FBczVaQTtBQUNBO0FBcDVaQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBczVaQTtBMkRsK1pBO0EzRDhFQTtBQUNBO0FBdTVaQTtBMkR0K1pBO0EzRDhFQTtBQUNBO0FBMjVaQTtBMkQxK1pBO0EzRDhFQTtBQUNBO0FBKzVaQTtBQTU1WkE7QUFDQTtBQTg1WkE7QUFDQTtBQXo1WkE7QUFDQTtBQTI1WkE7QTJEci9aQTtBM0Q0RkE7QUE0NVpBO0EyRHgvWkE7QTNENEZBO0FBKzVaQTtBMkQzL1pBO0EzRDRGQTtBQWs2WkE7QUFDQTtBQTk1WkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWc2WkE7QUFDQTtBQTk1WkE7QUFDQTtBQUNBO0FBZzZaQTtBQUNBO0FBOTVaQTtBQUNBO0FBZzZaQTtBNEgxcGFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OyIsInNvdXJjZVJvb3QiOiIifQ==*/