@charset "UTF-8";
/*
Sets up the theme's styling properties and makes some variables already set in Foundation available for easy use
throughout this theme's SASS files.

@since 0.1.0
*/
/*
Extra functions.

@since 0.1.0
*/
/**
 * Foundation for Sites by ZURB
 * Version 6.4.3
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
@font-face {
  font-family: 'dzs-icons';
  src: url("../icons/dzs-icons.eot?");
  src: url("../icons/dzs-icons.eot?#iefix") format("embedded-opentype"), url("../icons/dzs-icons.woff?") format("woff"), url("../icons/dzs-icons.ttf?") format("truetype"), url("../icons/dzs-icons.svg?#dzs-icons") format("svg");
  font-weight: normal;
  font-style: normal; }

/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
/*
@media screen and (-webkit-min-device-pixel-ratio:0) {
  @font-face {
    font-family: 'dzs-icons';
    src: url('../font/dzs-icons.svg?64409047#dzs-icons') format('svg');
  }
}
*/
[class^="dzs-icon-"]:before, [class*=" dzs-icon-"]:before {
  font-family: "dzs-icons";
  display: block;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.dzs-icon-blog:before {
  content: '\e800'; }

/* '' */
.dzs-icon-menu:before {
  content: '\e801'; }

/* '' */
.dzs-icon-close:before {
  content: '\e802'; }

/* '' */
.dzs-icon-arrow-right:before {
  content: '\e803'; }

/* '' */
.dzs-icon-calendar:before {
  content: '\e804'; }

/* '' */
.dzs-icon-circle-star:before {
  content: '\e805'; }

/* '' */
.dzs-icon-document:before {
  content: '\e806'; }

/* '' */
.dzs-icon-compass-star:before {
  content: '\e807'; }

/* '' */
.dzs-icon-clock:before {
  content: '\e808'; }

/* '' */
.dzs-icon-facebook:before {
  content: '\e809'; }

/* '' */
.dzs-icon-instagram:before {
  content: '\e80a'; }

/* '' */
.dzs-icon-pawprint-button:before {
  content: '\e80b'; }

/* '' */
.dzs-icon-pawprint-circle:before {
  content: '\e80c'; }

/* '' */
.dzs-icon-pawprint:before {
  content: '\e80d'; }

/* '' */
.dzs-icon-ticket:before {
  content: '\e80e'; }

/* '' */
.dzs-icon-twitter:before {
  content: '\e80f'; }

/* '' */
.dzs-icon-van:before {
  content: '\e810'; }

/* '' */
.dzs-icon-arrow-left:before {
  content: '\e811'; }

/* '' */
.dzs-icon-penguin:before {
  content: '\e812'; }

/* '' */
.dzs-icon-deer1-outline:before {
  content: '\e826'; }

/* '' */
.dzs-icon-deer1-solid:before {
  content: '\e827'; }

/* '' */
.dzs-icon-deer2-jump-outline:before {
  content: '\e828'; }

/* '' */
.dzs-icon-deer2-jump-solid:before {
  content: '\e829'; }

/* '' */
.dzs-icon-deer3-face-outline:before {
  content: '\e82a'; }

/* '' */
.dzs-icon-deer3-face-solid:before {
  content: '\e82b'; }

/* '' */
.dzs-icon-frog1-outline:before {
  content: '\e82c'; }

/* '' */
.dzs-icon-frog1-solid:before {
  content: '\e82d'; }

/* '' */
.dzs-icon-turtle1-outline:before {
  content: '\e82e'; }

/* '' */
.dzs-icon-turtle1-solid:before {
  content: '\e82f'; }

/* '' */
.dzs-icon-turtle2-outline:before {
  content: '\e830'; }

/* '' */
.dzs-icon-turtle2-solid:before {
  content: '\e831'; }

/* '' */
.dzs-icon-turtle3-detailed:before {
  content: '\e832'; }

/* '' */
.dzs-icon-frog:before {
  content: '\e900'; }

/* '' */
.dzs-icon-binoculars:before {
  content: '\e901'; }

/* '' */
/*
Extra functions.

@since 0.1.0
*/
/*! 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 */
  font-size: 87.5%;
  line-height: 1.71429em;
  /* 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;
  line-height: 1.71429em;
  /* Set 1 unit of vertical rhythm on the top and bottom margins. */
  margin: 0.85714em 0; }

h2 {
  font-size: 1.5em;
  line-height: 2.28571em;
  margin: 1.14286em 0; }

h3, body.single-event .event-faq .faq-title {
  font-size: 1.17em;
  line-height: 1.4652em;
  margin: 1.4652em 0; }

h4, .press-release-subheading {
  font-size: 1em;
  line-height: 1.71429em;
  margin: 1.71429em 0; }

h5 {
  font-size: 0.83em;
  line-height: 2.0654em;
  margin: 2.0654em 0; }

h6 {
  font-size: 0.67em;
  line-height: 2.55864em;
  margin: 2.55864em 0; }

/* Grouping content
       ========================================================================== */
/**
       * Set 1 unit of vertical rhythm on the top and bottom margin.
       */
blockquote {
  margin: 1.71429em 40px; }

dl,
ol,
ul {
  margin: 1.71429em 0; }

/**
       * Turn off margins on nested lists.
       */
ol ol,
ol ul,
ul ol,
ul ul {
  margin: 0; }

dd {
  margin: 0 0 0 40px; }

ol,
ul {
  padding: 0 0 0 40px; }

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

/**
     * Add the correct margin in IE 8.
     */
figure {
  margin: 1.71429em 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; }

/**
       * Set 1 unit of vertical rhythm on the top and bottom margin.
       */
p,
pre {
  margin: 1.71429em 0; }

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

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

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

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

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

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

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

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

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

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

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

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

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

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

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

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

/* Forms
       ========================================================================== */
/**
     * 1. Change the font styles in all browsers (opinionated).
     * 2. Remove the margin in Firefox and Safari.
     */
button,
input,
optgroup,
select,
textarea {
  font-family: sans-serif;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.71429em;
  /* 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;
  /*
         * 1. Set 1 unit of vertical rhythm on the top and bottom margin.
         * 2. Set consistent space for the list style image.
         */
  margin: 1.71429em 0;
  /* 1 */
  padding: 0 0 0 40px;
  /* 2 */
  /**
         * Turn off margins on nested lists.
         */ }
  menu menu,
  ol menu,
  ul menu {
    margin: 0; }

/* 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: 14px; }

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

body {
  margin: 0;
  padding: 0;
  background: #fefefe;
  font-family: "Myriad Pro", "Trebuchet MS", sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #222;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

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

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

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

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

button {
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  line-height: 1;
  cursor: auto; }
  [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; }

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

.row {
  max-width: 78.57143rem;
  margin-right: auto;
  margin-left: auto; }
  .row::before, .row::after {
    display: table;
    content: ' ';
    -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
            flex-basis: 0;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .row::after {
    clear: both; }
  .row.collapse > .column, .row.collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .row .row {
    margin-right: -0.71429rem;
    margin-left: -0.71429rem; }
    @media print, screen and (min-width: 40em) {
      .row .row {
        margin-right: -1.07143rem;
        margin-left: -1.07143rem; } }
    @media screen and (min-width: 64em) {
      .row .row {
        margin-right: -1.07143rem;
        margin-left: -1.07143rem; } }
    .row .row.collapse {
      margin-right: 0;
      margin-left: 0; }
  .row.expanded {
    max-width: none; }
    .row.expanded .row {
      margin-right: auto;
      margin-left: auto; }
  .row:not(.expanded) .row {
    max-width: none; }
  .row.gutter-small > .column, .row.gutter-small > .columns {
    padding-right: 0.71429rem;
    padding-left: 0.71429rem; }
  .row.gutter-medium > .column, .row.gutter-medium > .columns {
    padding-right: 1.07143rem;
    padding-left: 1.07143rem; }

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

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

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

.small-1 {
  width: 8.33333%; }

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

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

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

.small-2 {
  width: 16.66667%; }

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

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

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

.small-3 {
  width: 25%; }

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

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

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

.small-4 {
  width: 33.33333%; }

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

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

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

.small-5 {
  width: 41.66667%; }

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

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

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

.small-6 {
  width: 50%; }

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

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

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

.small-7 {
  width: 58.33333%; }

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

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

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

.small-8 {
  width: 66.66667%; }

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

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

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

.small-9 {
  width: 75%; }

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

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

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

.small-10 {
  width: 83.33333%; }

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

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

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

.small-11 {
  width: 91.66667%; }

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

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

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

.small-12 {
  width: 100%; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.column-block {
  margin-bottom: 1.42857rem; }
  .column-block > :last-child {
    margin-bottom: 0; }
  @media print, screen and (min-width: 40em) {
    .column-block {
      margin-bottom: 2.14286rem; }
      .column-block > :last-child {
        margin-bottom: 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: 0 0 0 0; }

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

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

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

.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: 0;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-size: 1.14286rem;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  background-color: #782788;
  color: #fefefe; }
  [data-whatinput='mouse'] .button {
    outline: 0; }
  .button:hover, .button:focus {
    background-color: #662174;
    color: #fefefe; }
  .button.tiny {
    font-size: 0.78571rem; }
  .button.small {
    font-size: 0.92857rem; }
  .button.large {
    font-size: 1.42857rem; }
  .button.expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0; }
  .button.primary {
    background-color: #1779ba;
    color: #fefefe; }
    .button.primary:hover, .button.primary:focus {
      background-color: #126195;
      color: #fefefe; }
  .button.secondary {
    background-color: #767676;
    color: #fefefe; }
    .button.secondary:hover, .button.secondary:focus {
      background-color: #5e5e5e;
      color: #fefefe; }
  .button.success {
    background-color: #3adb76;
    color: #0a0a0a; }
    .button.success:hover, .button.success:focus {
      background-color: #22bb5b;
      color: #0a0a0a; }
  .button.warning {
    background-color: #ffae00;
    color: #0a0a0a; }
    .button.warning:hover, .button.warning:focus {
      background-color: #cc8b00;
      color: #0a0a0a; }
  .button.alert {
    background-color: #cc4b37;
    color: #fefefe; }
    .button.alert:hover, .button.alert:focus {
      background-color: #a53b2a;
      color: #fefefe; }
  .button.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: #782788;
      color: #fefefe; }
    .button.disabled.primary, .button[disabled].primary {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.primary, .button.disabled.primary:hover, .button.disabled.primary:focus, .button[disabled].primary, .button[disabled].primary:hover, .button[disabled].primary:focus {
        background-color: #1779ba;
        color: #fefefe; }
    .button.disabled.secondary, .button[disabled].secondary {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.secondary, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        background-color: #767676;
        color: #fefefe; }
    .button.disabled.success, .button[disabled].success {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.success, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success, .button[disabled].success:hover, .button[disabled].success:focus {
        background-color: #3adb76;
        color: #0a0a0a; }
    .button.disabled.warning, .button[disabled].warning {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.warning, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning, .button[disabled].warning:hover, .button[disabled].warning:focus {
        background-color: #ffae00;
        color: #0a0a0a; }
    .button.disabled.alert, .button[disabled].alert {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.alert, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert, .button[disabled].alert:hover, .button[disabled].alert:focus {
        background-color: #cc4b37;
        color: #fefefe; }
  .button.hollow {
    border: 1px solid #782788;
    color: #782788; }
    .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: #3c1444;
      color: #3c1444; }
      .button.hollow:hover.disabled, .button.hollow:hover[disabled], .button.hollow:focus.disabled, .button.hollow:focus[disabled] {
        border: 1px solid #782788;
        color: #782788; }
    .button.hollow.primary {
      border: 1px solid #1779ba;
      color: #1779ba; }
      .button.hollow.primary:hover, .button.hollow.primary:focus {
        border-color: #0c3d5d;
        color: #0c3d5d; }
        .button.hollow.primary:hover.disabled, .button.hollow.primary:hover[disabled], .button.hollow.primary:focus.disabled, .button.hollow.primary:focus[disabled] {
          border: 1px solid #1779ba;
          color: #1779ba; }
    .button.hollow.secondary {
      border: 1px solid #767676;
      color: #767676; }
      .button.hollow.secondary:hover, .button.hollow.secondary:focus {
        border-color: #3b3b3b;
        color: #3b3b3b; }
        .button.hollow.secondary:hover.disabled, .button.hollow.secondary:hover[disabled], .button.hollow.secondary:focus.disabled, .button.hollow.secondary:focus[disabled] {
          border: 1px solid #767676;
          color: #767676; }
    .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 #cc4b37;
      color: #cc4b37; }
      .button.hollow.alert:hover, .button.hollow.alert:focus {
        border-color: #67251a;
        color: #67251a; }
        .button.hollow.alert:hover.disabled, .button.hollow.alert:hover[disabled], .button.hollow.alert:focus.disabled, .button.hollow.alert:focus[disabled] {
          border: 1px solid #cc4b37;
          color: #cc4b37; }
  .button.clear {
    border: 1px solid #782788;
    color: #782788; }
    .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: #3c1444;
      color: #3c1444; }
      .button.clear:hover.disabled, .button.clear:hover[disabled], .button.clear:focus.disabled, .button.clear:focus[disabled] {
        border: 1px solid #782788;
        color: #782788; }
    .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 #1779ba;
      color: #1779ba; }
      .button.clear.primary:hover, .button.clear.primary:focus {
        border-color: #0c3d5d;
        color: #0c3d5d; }
        .button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled] {
          border: 1px solid #1779ba;
          color: #1779ba; }
      .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 #767676;
      color: #767676; }
      .button.clear.secondary:hover, .button.clear.secondary:focus {
        border-color: #3b3b3b;
        color: #3b3b3b; }
        .button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled] {
          border: 1px solid #767676;
          color: #767676; }
      .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 #cc4b37;
      color: #cc4b37; }
      .button.clear.alert:hover, .button.clear.alert:focus {
        border-color: #67251a;
        color: #67251a; }
        .button.clear.alert:hover.disabled, .button.clear.alert:hover[disabled], .button.clear.alert:focus.disabled, .button.clear.alert:focus[disabled] {
          border: 1px solid #cc4b37;
          color: #cc4b37; }
      .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: #782788; }
  .button.dropdown.hollow.primary::after {
    border-top-color: #1779ba; }
  .button.dropdown.hollow.secondary::after {
    border-top-color: #767676; }
  .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: #cc4b37; }
  .button.arrow-only::after {
    top: -0.1em;
    float: none;
    margin-left: 0; }

a.button:hover, a.button:focus {
  text-decoration: none; }

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2, h3, body.single-event .event-faq .faq-title, h4, .press-release-subheading,
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, .h1,
h2, .h2, h3, body.single-event .event-faq .faq-title, .h3, h4, .press-release-subheading, .h4,
h5, .h5,
h6, .h6 {
  font-family: "Myriad Pro", "Trebuchet MS", sans-serif;
  font-style: normal;
  font-weight: normal;
  color: inherit;
  text-rendering: optimizeLegibility; }
  h1 small, .h1 small,
  h2 small, .h2 small,
  h3 small,
  body.single-event .event-faq .faq-title small, .h3 small,
  h4 small,
  .press-release-subheading small, .h4 small,
  h5 small, .h5 small,
  h6 small, .h6 small {
    line-height: 0;
    color: #cacaca; }

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

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

h3, body.single-event .event-faq .faq-title, .h3 {
  font-size: 1.35714rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h4, .press-release-subheading, .h4 {
  font-size: 1.14286rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

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

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

@media print, screen and (min-width: 40em) {
  h1, .h1 {
    font-size: 2.15rem; }
  h2, .h2 {
    font-size: 1.5rem; }
  h3, body.single-event .event-faq .faq-title, .h3 {
    font-size: 1.4rem; }
  h4, .press-release-subheading, .h4 {
    font-size: 1.2rem; }
  h5, .h5 {
    font-size: 1.21429rem; }
  h6, .h6 {
    font-size: 1.14286rem; } }

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

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

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

li {
  font-size: inherit; }

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

ol {
  margin-left: 1.25rem; }

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

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

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

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

abbr, abbr[title] {
  border-bottom: 1px dotted #0a0a0a;
  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: #0a0a0a; }

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

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

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

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

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 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, body.single-event .event-faq .faq-title {
    orphans: 3;
    widows: 3; }
  h2, h3, body.single-event .event-faq .faq-title {
    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.42857rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }
  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
  textarea:focus {
    outline: none;
    border: 1px solid #8a8a8a;
    background-color: #fefefe;
    box-shadow: 0 0 5px #cacaca;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.input-group-label {
  padding: 0 1rem;
  border: 1px solid #cacaca;
  background: #e6e6e6;
  color: #0a0a0a;
  text-align: center;
  white-space: nowrap;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  -webkit-align-items: center;
      -ms-flex-align: center;
          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;
  -webkit-flex: 1 1 0px;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
  height: auto;
  min-width: 0; }

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto; }
  .input-group-button a,
  .input-group-button input,
  .input-group-button button,
  .input-group-button label {
    height: auto;
    -webkit-align-self: stretch;
        -ms-flex-item-align: stretch;
                -ms-grid-row-align: stretch;
            align-self: stretch;
    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.21429rem;
    padding: 0 0.1875rem; }

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

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

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

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

table {
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 0; }
  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: #0a0a0a; }
  tfoot {
    background: #f1f1f1;
    color: #0a0a0a; }
  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; }

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

.dropdown-pane {
  position: absolute;
  z-index: 10;
  width: 300px;
  padding: 1rem;
  visibility: hidden;
  display: none;
  border: 1px solid #cacaca;
  border-radius: 0;
  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: #fff transparent transparent;
  right: 5px;
  left: auto;
  margin-top: -3px; }

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

.dropdown.menu .is-active > a {
  background: transparent;
  color: #e6e6e6; }

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

.dropdown.menu .nested.is-dropdown-submenu {
  margin-right: 0;
  margin-left: 0; }

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

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

.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 {
  right: auto;
  left: 5px;
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #fff 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 #fff; }

@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: #fff transparent transparent;
    right: 5px;
    left: auto;
    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;
    top: 0; }
  .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 {
    right: auto;
    left: 5px;
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #fff 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 #fff; } }

@media 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: #fff transparent transparent;
    right: 5px;
    left: auto;
    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;
    top: 0; }
  .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 {
    right: auto;
    left: 5px;
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #fff 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 #fff; } }

.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;
    left: auto;
    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; }
  .dropdown .is-dropdown-submenu a {
    padding: 0.7rem 1rem; }
  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {
    right: 14px; }
  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {
    right: auto;
    left: 5px;
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #fff 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 #fff; }
  .is-dropdown-submenu .is-dropdown-submenu {
    margin-top: -1px; }
  .is-dropdown-submenu > li {
    width: 100%; }
  .is-dropdown-submenu.js-dropdown-active {
    display: block; }

/*
Adds some functionality to foundation.

@since 0.1.0
*/
.collapse-left {
  padding-left: 0; }

.collapse-right {
  padding-right: 0; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.shake {
  -webkit-animation-name: shake-7;
          animation-name: shake-7; }

@-webkit-keyframes shake-7 {
  0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
    -webkit-transform: translateX(7%);
            transform: translateX(7%); }
  5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% {
    -webkit-transform: translateX(-7%);
            transform: translateX(-7%); } }

@keyframes shake-7 {
  0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
    -webkit-transform: translateX(7%);
            transform: translateX(7%); }
  5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% {
    -webkit-transform: translateX(-7%);
            transform: translateX(-7%); } }

.spin-cw {
  -webkit-animation-name: spin-cw-1turn;
          animation-name: spin-cw-1turn; }

@-webkit-keyframes spin-cw-1turn {
  0% {
    -webkit-transform: rotate(-1turn);
            transform: rotate(-1turn); }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

@keyframes spin-cw-1turn {
  0% {
    -webkit-transform: rotate(-1turn);
            transform: rotate(-1turn); }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

.spin-ccw {
  -webkit-animation-name: spin-ccw-1turn;
          animation-name: spin-ccw-1turn; }

@-webkit-keyframes spin-ccw-1turn {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0); }
  100% {
    -webkit-transform: rotate(-1turn);
            transform: rotate(-1turn); } }

@keyframes spin-ccw-1turn {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0); }
  100% {
    -webkit-transform: rotate(-1turn);
            transform: rotate(-1turn); } }

.wiggle {
  -webkit-animation-name: wiggle-7deg;
          animation-name: wiggle-7deg; }

@-webkit-keyframes wiggle-7deg {
  40%, 50%, 60% {
    -webkit-transform: rotate(7deg);
            transform: rotate(7deg); }
  35%, 45%, 55%, 65% {
    -webkit-transform: rotate(-7deg);
            transform: rotate(-7deg); }
  0%, 30%, 70%, 100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

@keyframes wiggle-7deg {
  40%, 50%, 60% {
    -webkit-transform: rotate(7deg);
            transform: rotate(7deg); }
  35%, 45%, 55%, 65% {
    -webkit-transform: rotate(-7deg);
            transform: rotate(-7deg); }
  0%, 30%, 70%, 100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

.shake,
.spin-cw,
.spin-ccw,
.wiggle {
  -webkit-animation-duration: 500ms;
          animation-duration: 500ms; }

.infinite {
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite; }

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

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

.linear {
  -webkit-animation-timing-function: linear !important;
          animation-timing-function: linear !important; }

.ease {
  -webkit-animation-timing-function: ease !important;
          animation-timing-function: ease !important; }

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

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

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

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

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

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

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

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

/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

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

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

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

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

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

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

/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */
a:active,
a:hover {
  outline: 0; }

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

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

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

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

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

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

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

td,
th {
  padding: 0; }

@font-face {
  font-family: 'Myriad Pro';
  src: url("../vendor/fonts/myriad-pro/MyriadPro-Regular.otf");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: 'Myriad Pro';
  src: url("../vendor/fonts/myriad-pro/MyriadPro-It.otf");
  font-weight: normal;
  font-style: italic; }

@font-face {
  font-family: 'Myriad Pro';
  src: url("../vendor/fonts/myriad-pro/MyriadPro-Semibold.otf");
  font-weight: bold;
  font-style: normal; }

@font-face {
  font-family: 'Myriad Pro';
  src: url("../vendor/fonts/myriad-pro/MyriadPro-SemiboldIt.otf");
  font-weight: bold;
  font-style: italic; }

@font-face {
  font-family: 'Myriad Pro Heavy';
  src: url("../vendor/fonts/myriad-pro/MyriadPro-Bold.otf");
  font-weight: normal;
  font-style: normal; }

/*
Base element settings (no classes or id's).

@since 0.1.0
*/
body, #wrapper {
  width: 100%;
  overflow-x: hidden;
  overflow-y: auto; }

a.color-invert {
  color: inherit; }
  a.color-invert:hover {
    color: #672275; }

h1, h2, h3, body.single-event .event-faq .faq-title, h4, .press-release-subheading, h5, h6 {
  color: inherit;
  letter-spacing: 0.06em; }

h1 {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem; }

h2, h4, .press-release-subheading {
  color: #3b8ede; }

h3, body.single-event .event-faq .faq-title {
  color: #782788; }

ul {
  margin: 0;
  list-style: none;
  font-size: inherit; }

iframe {
  max-width: 100%; }

[data-link] {
  cursor: pointer; }

::-moz-selection {
  background: #782788;
  color: #fff; }

::selection {
  background: #782788;
  color: #fff; }

::-moz-selection {
  background: #782788;
  color: #fff; }

.text-heavy {
  font-family: "Myriad Pro Heavy", sans-serif; }

.screen-reader-text, .show-on-focus {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important; }

.show-on-focus:focus, .show-on-focus:active {
  left: auto;
  top: auto;
  width: auto;
  height: auto;
  overflow: auto; }

.row.expand {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  max-width: none; }

.alignleft {
  float: left;
  margin-right: 30px; }

.alignright {
  float: right;
  margin-left: 30px; }

.aligncenter {
  display: block;
  margin: 30px auto; }

#site-content a:not(.button) {
  text-decoration: underline; }
  #site-content a:not(.button):hover {
    text-decoration: none; }

/*
The static site header.

@since 0.1.0
*/
#site-header {
  position: relative;
  font-size: 1.2em;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 3px;
  z-index: 10; }
  #site-header #skip-to-content:focus, #site-header #skip-to-content:active {
    width: 100%; }
  #site-header .header-container {
    background: url("../images/header-back.jpg");
    background-size: auto 180px;
    background-position-y: top;
    background-repeat: repeat-x;
    background-color: #211E1F;
    height: 190px;
    border-bottom: 3px solid #7e66ad; }
    @media screen and (max-width: 39.9375em) {
      #site-header .header-container {
        height: 160px;
        background-size: auto 140px;
        background-image: url("../images/header-back-mobile.jpg"); } }
    #site-header .header-container > .row {
      height: 100%;
      position: relative; }
  #site-header .site-logo {
    margin-top: 10px;
    display: block; }
    @media print, screen and (min-width: 40em) {
      #site-header .site-logo {
        margin-left: 1.07143rem; } }
    @media screen and (max-width: 39.9375em) {
      #site-header .site-logo {
        width: 80%;
        margin-left: 1em; } }
    @media screen and (max-width: 39.9375em) {
      #site-header .site-logo img {
        margin-left: -5px; } }
  #site-header .header-bottom {
    position: absolute;
    background-color: #211E1F;
    bottom: 0;
    left: 0;
    right: 0;
    padding-left: 1.07143rem;
    padding-right: 1.07143rem;
    width: auto; }
    @media screen and (max-width: 39.9375em) {
      #site-header .header-bottom {
        font-size: 1.5em;
        margin-left: -1.07143rem;
        margin-right: -1.07143rem; } }
  #site-header .header-button {
    height: 45px;
    line-height: 45px;
    cursor: pointer; }
    @media screen and (max-width: 39.9375em) {
      #site-header .header-button {
        background-color: #3c3638;
        text-align: center; }
        #site-header .header-button:hover {
          background-color: #494245; } }
  #site-header .header-button-container {
    float: left;
    padding: 0 1.07143rem; }
    @media screen and (max-width: 39.9375em) {
      #site-header .header-button-container {
        width: 33.333333% !important; } }
  @media screen and (max-width: 39.9375em) {
    #site-header .toggle-nav {
      position: relative; } }
  @media print, screen and (min-width: 40em) {
    #site-header .toggle-nav {
      position: absolute;
      display: none;
      left: 0;
      top: 0;
      z-index: 1;
      padding-left: 0; } }
  #site-header .toggle-nav [class*="dzs-icon"] {
    vertical-align: middle; }
  @media print, screen and (min-width: 40em) {
    #site-header .toggle-nav .open, #site-header .toggle-nav .close {
      display: none !important; } }
  #site-header .toggle-nav .open [class^="dzs-icon"], #site-header .toggle-nav .close [class^="dzs-icon"] {
    display: inline-block; }
  #site-header .toggle-nav .open:hover, #site-header .toggle-nav .close:hover {
    cursor: pointer; }
  @media print, screen and (min-width: 40em) {
    #site-header .dzs-qib-toggle-container {
      position: absolute;
      left: 1.07143rem;
      top: 0;
      padding-left: 0;
      padding-right: 0;
      z-index: 1010; } }
  #site-header #dzs-qib-toggle {
    vertical-align: middle; }
  #site-header .primary-nav {
    position: relative;
    padding-left: 3em;
    padding-right: 3em;
    z-index: 1000; }
    @media screen and (max-width: 39.9375em) {
      #site-header .primary-nav {
        position: absolute;
        display: none;
        left: 0;
        top: 100%;
        width: 100%; } }
    #site-header .primary-nav.show {
      display: block; }
    #site-header .primary-nav .menu {
      color: #fff;
      font-size: inherit;
      z-index: 110;
      margin-left: 0;
      border: 0;
      position: absolute;
      background: #782788;
      left: 0;
      width: 100%;
      text-align: center; }
      @media print, screen and (min-width: 40em) {
        #site-header .primary-nav .menu {
          left: auto;
          width: auto;
          text-align: inherit;
          padding: 0; } }
      #site-header .primary-nav .menu .submenu {
        margin: 0;
        box-shadow: 5px 5px 50px rgba(0, 0, 0, 0.5);
        z-index: 100; }
      #site-header .primary-nav .menu .menu-item {
        display: inline-block; }
        @media screen and (max-width: 39.9375em) {
          #site-header .primary-nav .menu .menu-item {
            display: block; } }
        #site-header .primary-nav .menu .menu-item a {
          color: inherit;
          z-index: 115;
          width: 100%;
          display: block; }
          #site-header .primary-nav .menu .menu-item a:hover {
            box-shadow: 0px 0px 0px 3px #e2e2e2 inset; }
          #site-header .primary-nav .menu .menu-item a:focus {
            box-shadow: 0px 0px 0px 3px #fefefe inset; }
        @media screen and (max-width: 39.9375em) {
          #site-header .primary-nav .menu .menu-item.menu-item-has-children > a:after {
            display: none; } }
        @media print, screen and (min-width: 40em) {
          #site-header .primary-nav .menu .menu-item.menu-item-has-children > a {
            padding-right: 1.5rem; }
            #site-header .primary-nav .menu .menu-item.menu-item-has-children > a:after {
              right: 7.5px; } }
      #site-header .primary-nav .menu > .menu-item {
        font-weight: bold; }
        @media print, screen and (min-width: 40em) {
          #site-header .primary-nav .menu > .menu-item:hover {
            background: #782788; } }
        #site-header .primary-nav .menu > .menu-item:hover > .submenu {
          display: block; }
        #site-header .primary-nav .menu > .menu-item > .submenu {
          top: 100%;
          left: 0;
          background: #782788;
          font-size: 0.9em;
          font-weight: normal;
          width: 250px; }
          @media screen and (max-width: 39.9375em) {
            #site-header .primary-nav .menu > .menu-item > .submenu {
              display: block;
              position: static;
              margin: 0 auto 2em;
              top: auto;
              left: auto;
              height: auto !important;
              width: auto;
              box-shadow: none;
              font-size: 0.8em;
              background: #892d9c; } }
          #site-header .primary-nav .menu > .menu-item > .submenu > .menu-item {
            width: 100%;
            white-space: normal;
            line-height: normal; }
            #site-header .primary-nav .menu > .menu-item > .submenu > .menu-item:hover {
              background: #662174; }
            #site-header .primary-nav .menu > .menu-item > .submenu > .menu-item > .submenu {
              text-transform: none;
              color: #91D8F5; }
              #site-header .primary-nav .menu > .menu-item > .submenu > .menu-item > .submenu > .menu-item:hover a {
                color: #62c7f1; }
    @media print, screen and (min-width: 40em) {
      #site-header .primary-nav > .menu {
        position: relative;
        background: none; } }
  @media print, screen and (min-width: 40em) {
    #site-header .search-toggle {
      position: absolute;
      right: 1.07143rem;
      top: 0;
      padding-right: 0;
      height: 45px;
      line-height: 45px;
      text-align: right;
      z-index: 1010; } }
  #site-header .search-toggle button {
    width: 100%;
    line-height: 1; }
  #site-header .search-toggle .fa {
    font-size: 1.25em;
    transition: -webkit-transform 300ms;
    transition: transform 300ms;
    transition: transform 300ms, -webkit-transform 300ms; }
    #site-header .search-toggle .fa:hover {
      -webkit-transform: scale(1.2);
          -ms-transform: scale(1.2);
              transform: scale(1.2); }

/*
The static site body.

@since 0.1.0
*/
#site-content {
  position: relative;
  background: #fff;
  padding: 20px 1em; }
  @media print, screen and (min-width: 64em) {
    #site-content {
      padding-left: 0;
      padding-right: 0; } }
  #site-content .print-button {
    position: absolute;
    top: 0;
    right: 0;
    font-size: 1.2rem;
    color: #aaa;
    text-transform: uppercase;
    z-index: 999; }
    #site-content .print-button .text {
      display: none; }
      @media print, screen and (min-width: 40em) {
        #site-content .print-button .text {
          display: inline; } }
    #site-content .print-button .icon {
      margin-left: 0.5rem;
      font-size: 2.2rem;
      vertical-align: sub; }

/*
Main site sidebar.

@since 0.1.0
*/
.site-sidebar {
  text-transform: uppercase; }
  @media screen and (max-width: 39.9375em) {
    .site-sidebar {
      padding: 0; } }
  @media print, screen and (min-width: 40em) {
    .site-sidebar {
      padding-right: 1em;
      padding-left: 0; } }
  .site-sidebar hr {
    border-color: #782788; }
  .site-sidebar h3.widget-title, .site-sidebar body.single-event .event-faq .widget-title.faq-title, body.single-event .event-faq .site-sidebar .widget-title.faq-title {
    background: #782788;
    color: #fff;
    font-size: 1.5em;
    letter-spacing: 0.1em;
    padding: 0.3em 0.1em 0.1em 8px;
    margin: 0; }
  .site-sidebar ul {
    font-size: inherit;
    margin: 0;
    letter-spacing: 0.06em; }
    .site-sidebar ul li.widget {
      margin-bottom: 1rem; }
      .site-sidebar ul li.widget:first-of-type {
        margin-top: 0; }
  .site-sidebar a {
    color: #3b8ede; }
  .site-sidebar li.current-page {
    font-weight: bold;
    color: #782788; }
    .site-sidebar li.current-page a {
      color: inherit; }
  .site-sidebar .widget-post-children, .site-sidebar .shuffle-filter, .site-sidebar .widget_nav_menu, .site-sidebar .attractions-list-widget {
    font-size: 1.3em;
    padding-left: 8px; }
    .site-sidebar .widget-post-children li, .site-sidebar .shuffle-filter li, .site-sidebar .widget_nav_menu li, .site-sidebar .attractions-list-widget li {
      margin: 0; }
      .site-sidebar .widget-post-children li a, .site-sidebar .shuffle-filter li a, .site-sidebar .widget_nav_menu li a, .site-sidebar .attractions-list-widget li a {
        display: block;
        padding: 0.2em 0;
        text-decoration: none !important; }
        .site-sidebar .widget-post-children li a:hover, .site-sidebar .shuffle-filter li a:hover, .site-sidebar .widget_nav_menu li a:hover, .site-sidebar .attractions-list-widget li a:hover {
          color: #782788; }

/*
The static site footer.

@since 0.1.0
*/
#site-footer {
  background: #5e94cd;
  color: #fff;
  border-top: 2px solid #407AB1; }
  #site-footer > *:first-child {
    padding-top: 30px; }
  #site-footer > *:last-child {
    padding-bottom: 30px; }
  #site-footer p {
    font-size: inherit;
    margin: 1.5em 0; }
  #site-footer .footer-nav {
    position: relative; }
    #site-footer .footer-nav .menu-item {
      margin-bottom: 0.47619rem; }
      #site-footer .footer-nav .menu-item > :last-child {
        margin-bottom: 0; }
      @media print, screen and (min-width: 40em) {
        #site-footer .footer-nav .menu-item {
          margin-bottom: 0.71429rem; }
          #site-footer .footer-nav .menu-item > :last-child {
            margin-bottom: 0; } }
      #site-footer .footer-nav .menu-item a {
        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: 0;
        transition: background-color 0.25s ease-out, color 0.25s ease-out;
        font-size: 0.9rem;
        line-height: 1;
        text-align: center;
        cursor: pointer;
        background-color: #782788;
        color: #fefefe;
        display: block;
        width: 100%;
        margin-right: 0;
        margin-left: 0;
        display: table;
        padding: 0 0.2em;
        margin-bottom: 0;
        height: 50px;
        text-transform: uppercase;
        letter-spacing: 1.3px;
        font-size: 14px;
        height: 6.5em; }
        [data-whatinput='mouse'] #site-footer .footer-nav .menu-item a {
          outline: 0; }
        #site-footer .footer-nav .menu-item a:hover, #site-footer .footer-nav .menu-item a:focus {
          background-color: #662174;
          color: #fefefe; }
        #site-footer .footer-nav .menu-item a:hover {
          border: 3px solid #e2e2e2; }
        #site-footer .footer-nav .menu-item a:focus {
          border: 3px solid #fefefe; }
        #site-footer .footer-nav .menu-item a .text {
          display: table-cell;
          vertical-align: middle; }
    #site-footer .footer-nav .menu-item {
      padding-right: .7142857143rem;
      padding-bottom: 1.4285714286rem;
      padding-left: .7142857143rem;
      clear: none !important; }
      @media print, screen and (min-width: 40em) {
        #site-footer .footer-nav .menu-item:first-of-type {
          padding-left: 0.35714285715rem; }
        #site-footer .footer-nav .menu-item:last-of-type {
          padding-right: 0.35714285715rem; } }
  #site-footer .footer-top {
    padding-bottom: 50px;
    padding-top: 1.42857rem; }
    @media print, screen and (min-width: 40em) {
      #site-footer .footer-top {
        padding-top: 2.14286rem; } }
    #site-footer .footer-top .footer-center {
      font-size: 0.8em; }
      #site-footer .footer-top .footer-center .footer-meta {
        letter-spacing: 1px;
        margin-top: 0; }
      #site-footer .footer-top .footer-center .footer-blurb {
        font-style: italic;
        margin-bottom: 3em; }
      #site-footer .footer-top .footer-center .footer-sub-menu {
        text-align: center; }
        #site-footer .footer-top .footer-center .footer-sub-menu a {
          color: inherit; }
        #site-footer .footer-top .footer-center .footer-sub-menu .menu-item {
          display: inline-block;
          border-right: 1px solid;
          padding: 0 1em; }
          #site-footer .footer-top .footer-center .footer-sub-menu .menu-item:last-of-type {
            border: none; }
    #site-footer .footer-top .footer-right {
      font-style: italic; }
  #site-footer .footer-nav {
    background: #5e94cd; }
  #site-footer .footer-top, #site-footer .footer-bottom {
    background: #00288f; }
  #site-footer .footer-logos {
    text-align: center; }
    #site-footer .footer-logos li {
      display: inline-block;
      max-width: 100%;
      width: 150px;
      margin: 2em; }

.satisfi_chat-button {
  left: auto !important;
  right: 7% !important;
  bottom: 5% !important; }
  @media screen and (max-width: 39.9375em) {
    .satisfi_chat-button {
      left: auto !important;
      right: 17% !important;
      bottom: 5% !important; } }
  @media only screen and (max-width: 568px) and (orientation: landscape) {
    .satisfi_chat-button {
      left: auto !important;
      right: 13% !important;
      bottom: 5% !important; } }
  @media print, screen and (min-width: 40em) {
    .satisfi_chat-button {
      left: auto !important;
      right: 10% !important;
      bottom: 6% !important; } }
  @media print, screen and (min-width: 64em) {
    .satisfi_chat-button {
      left: auto !important;
      right: 7% !important;
      bottom: 5% !important; } }
  @media only screen and (min-width: 640px) and (max-width: 768px) and (orientation: portrait) {
    .satisfi_chat-button {
      left: auto !important;
      right: 11% !important;
      bottom: 5% !important; } }
  @media only screen and (min-width: 1024px) and (max-width: 1024px) and (orientation: landscape) {
    .satisfi_chat-button {
      left: auto !important;
      right: 10% !important;
      bottom: 5% !important; } }

.satisfi_chat {
  left: auto !important;
  right: 7% !important; }
  @media screen and (max-width: 39.9375em) {
    .satisfi_chat {
      left: 0 !important;
      right: 0 !important; } }
  @media print, screen and (min-width: 40em) {
    .satisfi_chat {
      left: 0 !important;
      right: 0 !important; } }
  @media print, screen and (min-width: 64em) {
    .satisfi_chat {
      left: auto !important;
      right: 7% !important; } }
  @media only screen and (min-width: 640px) and (max-width: 768px) and (orientation: portrait) {
    .satisfi_chat {
      left: 0 !important;
      right: 0 !important; } }
  @media only screen and (min-width: 1024px) and (max-width: 1024px) and (orientation: landscape) {
    .satisfi_chat {
      left: auto !important;
      right: 10% !important; } }

/*
Single press release.

@since 0.1.0
*/
.press-release-location {
  margin: 0;
  font-weight: bold; }

.press-release-title {
  color: #3b8ede; }
  .press-release-title a {
    color: inherit; }
    .press-release-title a:hover, .press-release-title a:hover * {
      color: #782788; }

.press-release-subheading {
  color: #5f5f5f; }

.press-release-date {
  color: #3b8ede; }

.press-release-contact {
  color: #777; }
  .press-release-contact p {
    margin: 0; }
  .press-release-contact .press-release-contact-heading {
    color: #555;
    text-transform: uppercase; }

#archive-press-release .press-release-list .press-release {
  border-bottom: 2px solid #E7E8EA; }
  #archive-press-release .press-release-list .press-release:first-of-type {
    margin-top: 1em; }
  #archive-press-release .press-release-list .press-release:last-of-type {
    border: none; }

#single-press-release.archived .press-release-title, #single-press-release.archived .press-release-date, #single-press-release.archived .press-release-subheading, #single-press-release.archived .press-release-excerpt, #single-press-release.archived .page-copy, #single-press-release.archived .post-title a, #single-press-release.archived .post-excerpt, #archive-press-release .press-release.archived .press-release-title, #archive-press-release .press-release.archived .press-release-date, #archive-press-release .press-release.archived .press-release-subheading, #archive-press-release .press-release.archived .press-release-excerpt, #archive-press-release .press-release.archived .page-copy, #archive-press-release .press-release.archived .post-title a, #archive-press-release .press-release.archived .post-excerpt, .search-results .press-release.archived .press-release-title, .search-results .press-release.archived .press-release-date, .search-results .press-release.archived .press-release-subheading, .search-results .press-release.archived .press-release-excerpt, .search-results .press-release.archived .page-copy, .search-results .press-release.archived .post-title a, .search-results .press-release.archived .post-excerpt {
  color: #424d52; }

#single-press-release.archived .post-title:hover, #single-press-release.archived .post-title:hover *, #archive-press-release .press-release.archived .post-title:hover, #archive-press-release .press-release.archived .post-title:hover *, .search-results .press-release.archived .post-title:hover, .search-results .press-release.archived .post-title:hover * {
  color: #782788; }

/*
Single vendor.

@since 0.1.0
*/
.vendor-title {
  color: #782788;
  margin-bottom: 0; }

.vendor-hours-information {
  color: #3b8ede;
  font-size: 1.5em;
  margin-top: 0; }

.vendor-list .vendor {
  border-bottom: 2px solid #E7E8EA;
  margin: 2em 0; }
  .vendor-list .vendor:last-of-type {
    border: none; }

#archive-vendor .vendor-description {
  padding: 0; }

@media screen and (max-width: 39.9375em) {
  #archive-vendor .vendor-image {
    background: #1c75bc;
    background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JmMWUyZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNTk0NzciIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
    background: linear-gradient(to right, #1c75bc 0%, #66acde 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bf1e2d', endColorstr='#f59477',GradientType=1 );
    padding-left: 0;
    margin-bottom: 1rem; } }

#archive-vendor .vendor-image .vendor-title {
  color: #fff;
  font-size: 1.2em; }

#archive-vendor .vendor-image .vendor-hours-information {
  color: #ACD6F8;
  margin: 0;
  font-size: 1em; }

@media screen and (max-width: 39.9375em) {
  #archive-vendor .vendor-image img {
    float: left;
    max-width: 40%;
    padding-right: 0.5em; } }

/*
Styles single.php.

@since 0.1.0
*/
/*
Single animal post.

@since 0.1.0
*/
@media print, screen and (min-width: 40em) {
  body.single-animal .post-content {
    padding-right: 1.07143rem; } }

body.single-animal .animal-page-gradient {
  background: #C4D7EE;
  background: linear-gradient(to bottom, #C4D7EE 0%, #fff 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#258dc8', endColorstr='#2239b7',GradientType=0 );
  padding: 1em 1em 0; }

body.single-animal .featured-image {
  width: 100%; }
  body.single-animal .featured-image img {
    width: 100%; }

body.single-animal .animal-title {
  color: #0033a0;
  margin-bottom: 0;
  margin-top: 0;
  font-weight: bold; }

body.single-animal .scientific-name {
  color: #3b8ede;
  font-style: italic;
  font-size: 1.5em; }

@media print, screen and (min-width: 40em) {
  body.single-animal .animal-right-sidebar {
    padding-right: 0; } }

body.single-animal .animal-facts {
  background: #66acde;
  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JmMWUyZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNTk0NzciIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
  background: linear-gradient(to right, #66acde 0%, #1c75bc 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bf1e2d', endColorstr='#f59477',GradientType=1 );
  margin-top: 0.5em;
  padding: 0.5em; }
  body.single-animal .animal-facts h3, body.single-animal .animal-facts body.single-event .event-faq .faq-title, body.single-event .event-faq body.single-animal .animal-facts .faq-title {
    color: #782788;
    font-weight: bold;
    text-transform: uppercase; }
  body.single-animal .animal-facts .fact-title {
    color: #782788;
    font-weight: bold;
    margin-bottom: 0; }
  body.single-animal .animal-facts .fact-content {
    color: #fff;
    font-weight: normal; }
  body.single-animal .animal-facts .animal-habitat .fact-content {
    text-decoration: underline;
    margin-left: -3px;
    padding-left: 3px;
    background: #0C73BC;
    background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JmMWUyZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNTk0NzciIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
    background: linear-gradient(to right, #0C73BC 0%, rgba(25, 118, 187, 0) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bf1e2d', endColorstr='#f59477',GradientType=1 ); }
    body.single-animal .animal-facts .animal-habitat .fact-content a {
      color: inherit; }
      body.single-animal .animal-facts .animal-habitat .fact-content a:hover {
        color: #e6e6e6; }

body.single-animal .more-info {
  background: #66acde;
  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JmMWUyZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNTk0NzciIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
  background: linear-gradient(to right, #66acde 0%, #1c75bc 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bf1e2d', endColorstr='#f59477',GradientType=1 );
  padding: 0.5em;
  margin-top: 1.07143rem; }
  body.single-animal .more-info h3, body.single-animal .more-info body.single-event .event-faq .faq-title, body.single-event .event-faq body.single-animal .more-info .faq-title {
    color: #782788;
    font-weight: bold;
    text-transform: uppercase; }

body.single-animal .fun-facts {
  border-top: 1px solid #782788;
  padding-top: 1em;
  margin-top: 1em; }
  body.single-animal .fun-facts h3, body.single-animal .fun-facts body.single-event .event-faq .faq-title, body.single-event .event-faq body.single-animal .fun-facts .faq-title {
    text-transform: uppercase;
    color: #782788; }
  body.single-animal .fun-facts ul {
    margin-left: 3em; }
    body.single-animal .fun-facts ul li:before {
      content: "";
      border-color: transparent #782788;
      border-style: solid;
      border-width: 0.35em 0 0.35em 0.45em;
      display: block;
      height: 0;
      width: 0;
      left: -1em;
      top: 0.9em;
      position: relative; }

/*
Single attraction post.

@since 0.1.0
*/
body.single-attraction .sub-title {
  color: #3b8ede;
  font-size: 1.5em;
  font-weight: bold;
  margin-top: 1em; }

body.single-attraction .content-blocks-list .content-block-sub-title {
  color: #3b8ede;
  font-weight: bold; }

body.single-attraction .content-blocks-list .content-block-image {
  padding-right: 0.5em; }

/*
Single event post.

@since 0.1.0
*/
body.single-event .event-title {
  color: #0033a0;
  margin-bottom: 0; }

body.single-event .event-meta {
  margin-top: 0;
  margin-bottom: 0;
  color: #3b8ede;
  font-size: 1.5em;
  font-style: italic; }

body.single-event .event-field-seperator {
  border-left: 2px solid #3b8ede;
  margin: 0 1em;
  display: block; }
  @media print, screen and (min-width: 40em) {
    body.single-event .event-field-seperator {
      display: inline; } }

body.single-event .page-banner, body.single-event .page-banner-mobile {
  margin-bottom: 2em; }

body.single-event .page-banner-mobile {
  margin-left: -1em;
  margin-right: -1em;
  width: auto; }
  body.single-event .page-banner-mobile img {
    width: 100%;
    height: auto; }

body.single-event .page-copy:first-child {
  margin-top: 0; }

body.single-event .full-width-banner .page-copy {
  max-width: none !important;
  margin: 0; }

body.single-event .full-width-banner .page-banner {
  margin: 0; }
  body.single-event .full-width-banner .page-banner img {
    margin-bottom: 0 !important; }

body.single-event .event-ticket-link {
  margin: 2rem 0 0.2rem 0;
  display: table; }
  @media screen and (max-width: 63.9375em) {
    body.single-event .event-ticket-link {
      display: block; }
      body.single-event .event-ticket-link:not(:first-of-type) {
        margin-top: 0; }
      body.single-event .event-ticket-link:last-of-type {
        margin-bottom: 2rem; } }
  @media only screen and (min-width: 801px) {
    body.single-event .event-ticket-link.event-ticket-link-right {
      padding: 0.4rem 2.5rem 0.4rem 0.75rem;
      border-top-right-radius: 100px;
      border-bottom-right-radius: 100px;
      border-top-left-radius: 0;
      border-bottom-left-radius: 0; } }
  @media only screen and (min-width: 801px) {
    body.single-event .event-ticket-link {
      margin: 2rem 0;
      display: inline-block; } }

body.single-event .button-group:nth-of-type(2n+1) .event-ticket-link {
  margin-top: 0; }

body.single-event .button-group.last:not(.first) .event-ticket-link {
  margin-top: 0;
  margin-bottom: 2rem; }

@media screen and (max-width: 63.9375em) {
  body.single-event .button-group .event-ticket-link {
    margin-bottom: 0.4rem !important; }
  body.single-event .button-group.last a:last-of-type {
    margin-bottom: 2rem !important; } }

@media print, screen and (min-width: 64em) {
  body.single-event .button-group.first:not(.last) .event-ticket-link {
    margin-bottom: 0.2rem; }
  body.single-event .button-group:not(.first) .event-ticket-link {
    margin-bottom: 0.2rem; } }

body.single-event #event-details {
  padding: 0; }

body.single-event .details-table {
  width: 100%;
  background: #81bfe8;
  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMTAwJSI+CiAgICA8c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjODFiZmU4IiBzdG9wLW9wYWNpdHk9IjEiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=);
  background: linear-gradient(135deg, #81bfe8 0%, #ffffff 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#81bfe8', endColorstr='#ffffff', GradientType=1);
  color: #0033a0; }
  body.single-event .details-table tr {
    background: none;
    border-bottom: 2px solid #BCDBF0; }
    body.single-event .details-table tr:last-of-type {
      border: none; }
  body.single-event .details-table th {
    padding-right: 1em; }
  @media screen and (max-width: 39.9375em) {
    body.single-event .details-table {
      table-layout: fixed; }
      body.single-event .details-table th {
        width: 35%; }
      body.single-event .details-table ul {
        margin-left: 0; }
      body.single-event .details-table div[id^="crDonateWidget_"], body.single-event .details-table div[id^="crDonateWidget_"] .crImageAndTitleOuter, body.single-event .details-table div[id^="crDonateWidget_"] .crImageAndTitle, body.single-event .details-table div[id^="crDonateWidget_"] .gradientButton {
        width: auto !important; } }

body.single-event .event-faq .faq-title {
  color: #782788;
  font-weight: bold; }

body.single-event .event-sponsors .content {
  overflow-x: hidden; }

body.single-event .event-sponsors .sponsors-header {
  color: #fff;
  font-size: 1.5em;
  padding-left: 0.5em;
  padding-top: 0.1em;
  padding-bottom: 0.1em;
  letter-spacing: 0.06em;
  background: #782788;
  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JmMWUyZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNTk0NzciIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
  background: linear-gradient(to right, #782788 0%, #5C6DB4 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bf1e2d', endColorstr='#f59477',GradientType=1 ); }

body.single-event .event-sponsors.no-accordion, body.single-event .event-sponsors .sponsors-header {
  margin-bottom: 1.0714285714rem; }

body.single-event .event-sponsors .sponsor {
  transition: opacity 300ms;
  color: #0033a0;
  text-align: center;
  font-size: 2em; }
  body.single-event .event-sponsors .sponsor:hover {
    opacity: 0.8; }
  body.single-event .event-sponsors .sponsor a {
    color: inherit; }
  body.single-event .event-sponsors .sponsor .sponsor-level {
    display: block;
    font-size: 0.8em;
    color: #888;
    font-style: italic; }

/*
Single rental post.

@since 0.1.0
*/
body.single-rental .rental-title {
  color: #3b8ede;
  text-transform: uppercase; }

body.single-rental .content-blocks-list:not(.accordion) > li {
  border-top: 3px solid #E8E8E8; }

body.single-rental .content-blocks-list:not(.accordion) .content-block-title {
  color: #782788;
  font-weight: bold; }

body.single-rental .content-blocks-list .content-block-sub-title {
  color: #3b8ede;
  font-weight: bold; }

/*
Templates: purchasing and contracts

@since 0.1.0
*/
body.page-template-purchasing-contracts .page-content table {
  width: 100%; }

/*
Template TLL.

@since 1.11.0
*/
body.page-template-top-level-landing .child {
  margin-bottom: 30px !important; }
  body.page-template-top-level-landing .child .child-title {
    background: #782788;
    background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JmMWUyZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNTk0NzciIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
    background: linear-gradient(to right, #782788 0%, #5C6DB4 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bf1e2d', endColorstr='#f59477',GradientType=1 );
    font-size: 1.8em;
    letter-spacing: 0.09em;
    text-transform: uppercase; }
    body.page-template-top-level-landing .child .child-title::before, body.page-template-top-level-landing .child .child-title::after {
      display: table;
      content: ' ';
      -webkit-flex-basis: 0;
          -ms-flex-preferred-size: 0;
              flex-basis: 0;
      -webkit-order: 1;
          -ms-flex-order: 1;
              order: 1; }
    body.page-template-top-level-landing .child .child-title::after {
      clear: both; }
    body.page-template-top-level-landing .child .child-title:hover {
      background: #9b32b0;
      background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JmMWUyZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNTk0NzciIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
      background: linear-gradient(to right, #9b32b0 0%, #7f8cc4 100%);
      filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bf1e2d', endColorstr='#f59477',GradientType=1 ); }
    body.page-template-top-level-landing .child .child-title a {
      display: block;
      color: #fff;
      padding: 0.2em 0.5em !important; }
      @media screen and (max-width: 39.9375em) {
        body.page-template-top-level-landing .child .child-title a {
          padding: 0 0.5em 0 0 !important; } }
    body.page-template-top-level-landing .child .child-title .child-title-image {
      float: left;
      width: 30%;
      margin-right: 10px; }
  body.page-template-top-level-landing .child .child-content {
    padding-left: 1em !important; }
    body.page-template-top-level-landing .child .child-content a {
      position: relative; }

/*
Template: Website Map

@since 1.26.2
*/
body.page-template-website-map #site-content .page-copy, body.hidden-page-template-map #site-content .page-copy {
  max-width: none; }

body.page-template-dztv .site-page-content {
  background-color: #d6d6d6;
  color: #333; }
  body.page-template-dztv .site-page-content .title-banner {
    background-color: #782788;
    padding: 1.07143rem;
    color: #fff; }
    body.page-template-dztv .site-page-content .title-banner h1, body.page-template-dztv .site-page-content .title-banner h2, body.page-template-dztv .site-page-content .title-banner h3, body.page-template-dztv .site-page-content .title-banner body.single-event .event-faq .faq-title, body.single-event .event-faq body.page-template-dztv .site-page-content .title-banner .faq-title, body.page-template-dztv .site-page-content .title-banner h4, body.page-template-dztv .site-page-content .title-banner .press-release-subheading, body.page-template-dztv .site-page-content .title-banner h5, body.page-template-dztv .site-page-content .title-banner h6 {
      color: #fff;
      margin-bottom: 0;
      font-weight: 600;
      display: inline-block; }
  body.page-template-dztv .site-page-content .content-container {
    padding: 2.14286rem 0; }
    @media print, screen and (min-width: 40em) {
      body.page-template-dztv .site-page-content .content-container {
        padding: 2.14286rem; } }
    @media all and (min-width: lower-bound(40em, 64em)) and (max-width: upper-bound(40em, 64em)) and (orientation: portrait) {
      body.page-template-dztv .site-page-content .content-container > .columns {
        width: 100%;
        left: auto; } }
    body.page-template-dztv .site-page-content .content-container .now-playing {
      margin-bottom: 2.14286rem; }
      body.page-template-dztv .site-page-content .content-container .now-playing .video {
        border: solid 3px #3b8ede; }
        body.page-template-dztv .site-page-content .content-container .now-playing .video iframe {
          display: block; }
      body.page-template-dztv .site-page-content .content-container .now-playing .button {
        margin: 0; }
      @media screen and (max-width: 39.9375em) {
        body.page-template-dztv .site-page-content .content-container .now-playing .title-bar .alignleft, body.page-template-dztv .site-page-content .content-container .now-playing .title-bar .alignright {
          float: none; } }
      @media print, screen and (min-width: 40em) {
        body.page-template-dztv .site-page-content .content-container .now-playing .video.has-link .title-bar h1, body.page-template-dztv .site-page-content .content-container .now-playing .video.has-link .title-bar h2, body.page-template-dztv .site-page-content .content-container .now-playing .video.has-link .title-bar h3, body.page-template-dztv .site-page-content .content-container .now-playing .video.has-link .title-bar body.single-event .event-faq .faq-title, body.single-event .event-faq body.page-template-dztv .site-page-content .content-container .now-playing .video.has-link .title-bar .faq-title, body.page-template-dztv .site-page-content .content-container .now-playing .video.has-link .title-bar h4, body.page-template-dztv .site-page-content .content-container .now-playing .video.has-link .title-bar .press-release-subheading, body.page-template-dztv .site-page-content .content-container .now-playing .video.has-link .title-bar h5, body.page-template-dztv .site-page-content .content-container .now-playing .video.has-link .title-bar h6 {
          margin-top: 0.7em; } }
    body.page-template-dztv .site-page-content .content-container .sponsor {
      text-align: center;
      color: #333; }
      @media screen and (max-width: 39.9375em) {
        body.page-template-dztv .site-page-content .content-container .sponsor {
          margin-bottom: 2.14286rem; } }
      body.page-template-dztv .site-page-content .content-container .sponsor > * {
        display: block; }
      body.page-template-dztv .site-page-content .content-container .sponsor a {
        margin: 0.53571rem 0; }
    @media screen and (max-width: 39.9375em) {
      body.page-template-dztv .site-page-content .content-container .no-sponsor {
        display: none; } }
    body.page-template-dztv .site-page-content .content-container .video-thumbnails .row {
      margin-bottom: 2.14286rem; }
      @media screen and (max-width: 39.9375em) {
        body.page-template-dztv .site-page-content .content-container .video-thumbnails .row {
          margin-bottom: 0; } }
      @media all and (min-width: lower-bound(40em, 64em)) and (max-width: upper-bound(40em, 64em)) and (orientation: portrait) {
        body.page-template-dztv .site-page-content .content-container .video-thumbnails .row {
          margin-bottom: 0; } }
      body.page-template-dztv .site-page-content .content-container .video-thumbnails .row:last-of-type {
        margin-bottom: 0; }
        @media screen and (max-width: 39.9375em) {
          body.page-template-dztv .site-page-content .content-container .video-thumbnails .row:last-of-type .video-thumbnail {
            margin-bottom: 0; } }
        @media all and (min-width: lower-bound(40em, 64em)) and (max-width: upper-bound(40em, 64em)) and (orientation: portrait) {
          body.page-template-dztv .site-page-content .content-container .video-thumbnails .row:last-of-type .video-thumbnail {
            margin-bottom: 0; } }
    body.page-template-dztv .site-page-content .content-container .video-thumbnails .video-thumbnail {
      padding: 0; }
      @media screen and (max-width: 39.9375em) {
        body.page-template-dztv .site-page-content .content-container .video-thumbnails .video-thumbnail {
          margin-bottom: 2.14286rem;
          width: 100%; } }
      @media all and (min-width: lower-bound(40em, 64em)) and (max-width: upper-bound(40em, 64em)) and (orientation: portrait) {
        body.page-template-dztv .site-page-content .content-container .video-thumbnails .video-thumbnail {
          margin-bottom: 2.14286rem;
          width: 100%; } }
      @media print, screen and (min-width: 40em) {
        body.page-template-dztv .site-page-content .content-container .video-thumbnails .video-thumbnail {
          padding-left: 2.14286rem;
          padding-right: 0; } }
      body.page-template-dztv .site-page-content .content-container .video-thumbnails .video-thumbnail img {
        width: 100%;
        height: auto;
        padding: 0.21429rem 0.21429rem 0 0.21429rem;
        background-color: #3b8ede; }
      body.page-template-dztv .site-page-content .content-container .video-thumbnails .video-thumbnail .title-bar {
        text-align: center;
        padding: 0.53571rem;
        left: 1.07143rem;
        right: 1.07143rem; }
      body.page-template-dztv .site-page-content .content-container .video-thumbnails .video-thumbnail a.active .color-overlay, body.page-template-dztv .site-page-content .content-container .video-thumbnails .video-thumbnail a:hover .color-overlay {
        position: relative; }
        body.page-template-dztv .site-page-content .content-container .video-thumbnails .video-thumbnail a.active .color-overlay:after, body.page-template-dztv .site-page-content .content-container .video-thumbnails .video-thumbnail a:hover .color-overlay:after {
          content: '';
          position: absolute;
          top: 0.21429rem;
          left: 0.21429rem;
          right: 0.21429rem;
          bottom: 0;
          background: rgba(0, 0, 0, 0.4);
          transition: all 1s; }
      body.page-template-dztv .site-page-content .content-container .video-thumbnails .video-thumbnail a.active *, body.page-template-dztv .site-page-content .content-container .video-thumbnails .video-thumbnail a:hover * {
        text-decoration: underline; }
      body.page-template-dztv .site-page-content .content-container .video-thumbnails .video-thumbnail a.active {
        cursor: default; }
    body.page-template-dztv .site-page-content .content-container .title-bar {
      background-color: #3b8ede;
      padding: 1.07143rem;
      color: #fff;
      word-break: break-all;
      -webkit-hyphens: auto;
          -ms-hyphens: auto;
              hyphens: auto; }
      body.page-template-dztv .site-page-content .content-container .title-bar h1, body.page-template-dztv .site-page-content .content-container .title-bar h2, body.page-template-dztv .site-page-content .content-container .title-bar h3, body.page-template-dztv .site-page-content .content-container .title-bar body.single-event .event-faq .faq-title, body.single-event .event-faq body.page-template-dztv .site-page-content .content-container .title-bar .faq-title, body.page-template-dztv .site-page-content .content-container .title-bar h4, body.page-template-dztv .site-page-content .content-container .title-bar .press-release-subheading, body.page-template-dztv .site-page-content .content-container .title-bar h5, body.page-template-dztv .site-page-content .content-container .title-bar h6 {
        color: #fff;
        margin-bottom: 0;
        font-weight: 600;
        display: inline-block; }

body.page-template-shuffle-grid .page-banner {
  padding-right: 0.71429rem;
  padding-left: 0.71429rem; }

/*
Styles page.php.

@since 0.1.0
*/
body.page-template-today-at-the-zoo .today-section {
  color: #0033a0; }
  body.page-template-today-at-the-zoo .today-section .today-section-image {
    padding: 0; }
    body.page-template-today-at-the-zoo .today-section .today-section-image img {
      width: 100%;
      height: auto; }
  body.page-template-today-at-the-zoo .today-section .today-section-hours, body.page-template-today-at-the-zoo .today-section .today-section-pricing, body.page-template-today-at-the-zoo .today-section .today-section-total-experience-pricing {
    position: relative;
    padding-bottom: 30px; }
    @media screen and (max-width: 39.9375em) {
      body.page-template-today-at-the-zoo .today-section .today-section-hours, body.page-template-today-at-the-zoo .today-section .today-section-pricing, body.page-template-today-at-the-zoo .today-section .today-section-total-experience-pricing {
        height: auto !important; } }
  body.page-template-today-at-the-zoo .today-section .today-section-hours {
    background: #81bfe8;
    background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMTAwJSI+CiAgICA8c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjODFiZmU4IiBzdG9wLW9wYWNpdHk9IjEiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=);
    background: linear-gradient(135deg, #81bfe8 0%, #ffffff 100%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#81bfe8', endColorstr='#ffffff', GradientType=1); }
  body.page-template-today-at-the-zoo .today-section .today-section-pricing {
    background: #dce2f2;
    background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2RjZTJmMiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmY2ZkZmUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
    background: linear-gradient(to bottom, #dce2f2 0%, #fcfdfe 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dce2f2', endColorstr='#fcfdfe',GradientType=0 ); }
  body.page-template-today-at-the-zoo .today-section .today-section-total-experience-pricing {
    background: #5196DD;
    background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2RjZTJmMiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmY2ZkZmUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
    background: linear-gradient(to bottom, #5196DD 0%, #fcfdfe 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dce2f2', endColorstr='#fcfdfe',GradientType=0 ); }
    body.page-template-today-at-the-zoo .today-section .today-section-total-experience-pricing .pricing-table .pricing-table-text {
      color: #0033a0; }
  body.page-template-today-at-the-zoo .today-section .today-section-pricing-title, body.page-template-today-at-the-zoo .today-section .today-section-hours-title, body.page-template-today-at-the-zoo .today-section .today-section-total-experience-pricing-title {
    font-size: 1.5em;
    text-transform: uppercase; }
  body.page-template-today-at-the-zoo .today-section .today-section-total-experience-pricing-title {
    color: #eadc56; }
  body.page-template-today-at-the-zoo .today-section .today-section-hours-string {
    font-weight: bold;
    font-size: 1.5em; }
    body.page-template-today-at-the-zoo .today-section .today-section-hours-string .hour {
      font-size: 1.8em; }
    body.page-template-today-at-the-zoo .today-section .today-section-hours-string .meridiem {
      vertical-align: super; }
    body.page-template-today-at-the-zoo .today-section .today-section-hours-string .time-range-sep {
      vertical-align: super; }
  body.page-template-today-at-the-zoo .today-section p {
    margin: 0; }
  body.page-template-today-at-the-zoo .today-section .button {
    position: absolute;
    bottom: 0;
    right: 0;
    margin: 0; }
  body.page-template-today-at-the-zoo .today-section table {
    background: none; }
    body.page-template-today-at-the-zoo .today-section table tr {
      background: none; }

/*
Styles page.php.

@since 0.1.0
*/
body.page-template-prices table, body.page-template-wild-lights table, body.event-template-wild-lights table {
  background: none; }
  body.page-template-prices table tr, body.page-template-wild-lights table tr, body.event-template-wild-lights table tr {
    background: none; }
    body.page-template-prices table tr td, body.page-template-wild-lights table tr td, body.event-template-wild-lights table tr td {
      color: inherit; }

body.page-template-prices .pricing-table .pricing-table-price, body.page-template-wild-lights .pricing-table .pricing-table-price, body.event-template-wild-lights .pricing-table .pricing-table-price {
  white-space: nowrap; }

body.page-template-prices .prices-general, body.page-template-wild-lights .prices-general, body.event-template-wild-lights .prices-general {
  /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#dce2f2+0,fcfdfe+100 */
  background: #dce2f2;
  /* Old browsers */
  /* IE9 SVG, needs conditional override of 'filter' to 'none' */
  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2RjZTJmMiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmY2ZkZmUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
  /* FF3.6+ */
  /* Chrome,Safari4+ */
  /* Chrome10+,Safari5.1+ */
  /* Opera 11.10+ */
  /* IE10+ */
  background: linear-gradient(to bottom, #dce2f2 0%, #fcfdfe 100%);
  /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dce2f2', endColorstr='#fcfdfe',GradientType=0 );
  /* IE6-8 */
  color: #0033a0; }
  body.page-template-prices .prices-general h3, body.page-template-prices .prices-general body.single-event .event-faq .faq-title, body.single-event .event-faq body.page-template-prices .prices-general .faq-title, body.page-template-wild-lights .prices-general h3, body.page-template-wild-lights .prices-general body.single-event .event-faq .faq-title, body.single-event .event-faq body.page-template-wild-lights .prices-general .faq-title, body.event-template-wild-lights .prices-general h3, body.event-template-wild-lights .prices-general body.single-event .event-faq .faq-title, body.single-event .event-faq body.event-template-wild-lights .prices-general .faq-title {
    line-height: 65px;
    margin: 0; }
  body.page-template-prices .prices-general .prices-general-attractions, body.page-template-wild-lights .prices-general .prices-general-attractions, body.event-template-wild-lights .prices-general .prices-general-attractions {
    font-size: inherit; }
    body.page-template-prices .prices-general .prices-general-attractions .pricing-table-price, body.page-template-wild-lights .prices-general .prices-general-attractions .pricing-table-price, body.event-template-wild-lights .prices-general .prices-general-attractions .pricing-table-price {
      padding-left: 10px;
      font-weight: inherit;
      font-size: inherit; }

body.page-template-prices .prices-value, body.page-template-wild-lights .prices-value, body.event-template-wild-lights .prices-value {
  /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#dce2f2+0,fcfdfe+100 */
  background: #5196DD;
  /* Old browsers */
  /* IE9 SVG, needs conditional override of 'filter' to 'none' */
  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2RjZTJmMiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmY2ZkZmUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
  /* FF3.6+ */
  /* Chrome,Safari4+ */
  /* Chrome10+,Safari5.1+ */
  /* Opera 11.10+ */
  /* IE10+ */
  background: linear-gradient(to bottom, #5196DD 0%, #fcfdfe 100%);
  /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dce2f2', endColorstr='#fcfdfe',GradientType=0 );
  /* IE6-8 */
  color: #0033a0; }
  body.page-template-prices .prices-value h3, body.page-template-prices .prices-value body.single-event .event-faq .faq-title, body.single-event .event-faq body.page-template-prices .prices-value .faq-title, body.page-template-wild-lights .prices-value h3, body.page-template-wild-lights .prices-value body.single-event .event-faq .faq-title, body.single-event .event-faq body.page-template-wild-lights .prices-value .faq-title, body.event-template-wild-lights .prices-value h3, body.event-template-wild-lights .prices-value body.single-event .event-faq .faq-title, body.single-event .event-faq body.event-template-wild-lights .prices-value .faq-title {
    line-height: 65px;
    margin: 0; }
  body.page-template-prices .prices-value .prices-value-banner, body.page-template-wild-lights .prices-value .prices-value-banner, body.event-template-wild-lights .prices-value .prices-value-banner {
    height: 65px; }
  body.page-template-prices .prices-value .prices-value-best-value, body.page-template-wild-lights .prices-value .prices-value-best-value, body.event-template-wild-lights .prices-value .prices-value-best-value {
    color: #fff;
    margin: 0; }
  body.page-template-prices .prices-value .pricing-table, body.page-template-wild-lights .prices-value .pricing-table, body.event-template-wild-lights .prices-value .pricing-table {
    color: #fff; }
  body.page-template-prices .prices-value .prices-value-attractions, body.page-template-wild-lights .prices-value .prices-value-attractions, body.event-template-wild-lights .prices-value .prices-value-attractions {
    font-size: inherit;
    color: inherit; }
    body.page-template-prices .prices-value .prices-value-attractions .pricing-table-price, body.page-template-wild-lights .prices-value .prices-value-attractions .pricing-table-price, body.event-template-wild-lights .prices-value .prices-value-attractions .pricing-table-price {
      padding-left: 10px;
      font-weight: inherit;
      font-size: inherit; }

.event-template-wild-lights .prices, .event-template-wild-lights .prices h1, .event-template-wild-lights .prices h2, .event-template-wild-lights .prices h3, .event-template-wild-lights .prices body.single-event .event-faq .faq-title, body.single-event .event-faq .event-template-wild-lights .prices .faq-title, .event-template-wild-lights .prices h4, .event-template-wild-lights .prices .press-release-subheading, .event-template-wild-lights .prices h5, .event-template-wild-lights .prices h6, .page-template-wild-lights .prices, .page-template-wild-lights .prices h1, .page-template-wild-lights .prices h2, .page-template-wild-lights .prices h3, .page-template-wild-lights .prices body.single-event .event-faq .faq-title, body.single-event .event-faq .page-template-wild-lights .prices .faq-title, .page-template-wild-lights .prices h4, .page-template-wild-lights .prices .press-release-subheading, .page-template-wild-lights .prices h5, .page-template-wild-lights .prices h6 {
  font-weight: 800; }

.event-template-wild-lights .prices .button, .page-template-wild-lights .prices .button {
  font-weight: normal; }

.event-template-wild-lights .prices .prices-general > h3, .event-template-wild-lights .prices body.single-event .event-faq .prices-general > .faq-title, body.single-event .event-faq .event-template-wild-lights .prices .prices-general > .faq-title, .event-template-wild-lights .prices .prices-value > h3, .event-template-wild-lights .prices body.single-event .event-faq .prices-value > .faq-title, body.single-event .event-faq .event-template-wild-lights .prices .prices-value > .faq-title, .page-template-wild-lights .prices .prices-general > h3, .page-template-wild-lights .prices body.single-event .event-faq .prices-general > .faq-title, body.single-event .event-faq .page-template-wild-lights .prices .prices-general > .faq-title, .page-template-wild-lights .prices .prices-value > h3, .page-template-wild-lights .prices body.single-event .event-faq .prices-value > .faq-title, body.single-event .event-faq .page-template-wild-lights .prices .prices-value > .faq-title {
  line-height: 2;
  margin-top: 1rem; }

.event-template-wild-lights .prices .prices-general > h3 + hr, .event-template-wild-lights .prices body.single-event .event-faq .prices-general > .faq-title + hr, body.single-event .event-faq .event-template-wild-lights .prices .prices-general > .faq-title + hr, .event-template-wild-lights .prices .prices-value > h3 + hr, .event-template-wild-lights .prices body.single-event .event-faq .prices-value > .faq-title + hr, body.single-event .event-faq .event-template-wild-lights .prices .prices-value > .faq-title + hr, .page-template-wild-lights .prices .prices-general > h3 + hr, .page-template-wild-lights .prices body.single-event .event-faq .prices-general > .faq-title + hr, body.single-event .event-faq .page-template-wild-lights .prices .prices-general > .faq-title + hr, .page-template-wild-lights .prices .prices-value > h3 + hr, .page-template-wild-lights .prices body.single-event .event-faq .prices-value > .faq-title + hr, body.single-event .event-faq .page-template-wild-lights .prices .prices-value > .faq-title + hr {
  margin-top: 0; }

.event-template-wild-lights .prices .pricing-general-description, .event-template-wild-lights .prices .pricing-value-description, .page-template-wild-lights .prices .pricing-general-description, .page-template-wild-lights .prices .pricing-value-description {
  text-align: center; }

.event-template-wild-lights .prices .pricing-table, .page-template-wild-lights .prices .pricing-table {
  font-size: 1.08em; }
  .event-template-wild-lights .prices .pricing-table .pricing-table-text p, .page-template-wild-lights .prices .pricing-table .pricing-table-text p {
    line-height: normal; }

.event-template-wild-lights .event-meta, .page-template-wild-lights .event-meta {
  padding-top: 1.6rem; }

/*
Habitat archive page.

@since 0.1.0
*/
.habitat-page-title {
  color: #3b8ede; }

.habitat {
  margin-bottom: 30px !important; }
  .habitat .habitat-title {
    font-size: 1.8em; }
    .habitat .habitat-title .habitat-image {
      float: left;
      width: 40%;
      padding-right: 10px; }
    .habitat .habitat-title a {
      display: block;
      color: #fff;
      padding: 0.2em 0.5em !important; }
      @media screen and (max-width: 39.9375em) {
        .habitat .habitat-title a {
          padding: 0 0.5em 0 0 !important; } }
  .habitat .habitat-content {
    padding-left: 1em !important; }
    .habitat .habitat-content .habitat-copy {
      margin-bottom: 1rem; }
    .habitat .habitat-content .habitat-animals .column, .habitat .habitat-content .habitat-animals .columns {
      font-size: 1.25em;
      margin-bottom: 0; }
      .habitat .habitat-content .habitat-animals .column a, .habitat .habitat-content .habitat-animals .columns a {
        color: #3b8ede; }

/*
Search index.

@since 0.1.0
*/
body.dzs-campaign #site-content .page-copy {
  max-width: none; }

/*
Event archive page.

@since 0.1.0
*/
#archive-event .shuffle-item:hover .shuffle-item-date {
  color: #FFDA6E; }

#archive-event .shuffle-title {
  text-align: left;
  padding-left: 0.5em;
  padding-right: 0.5em; }

#archive-event .shuffle-item-date {
  color: #1a5b99;
  font-style: italic;
  font-size: 0.8em; }

/*
Animal archive page.

@since 0.1.0
*/
#archive-animal .shuffle-title {
  display: block;
  padding: 0.2em 0.5em; }

/*
Home page.

@since 0.1.0
*/
body.home #site-content {
  padding-top: 0;
  padding-bottom: 0;
  background: #0033a0; }
  @media print, screen and (min-width: 64em) {
    body.home #site-content {
      background: url("../images/main-back.jpg") #3b8ede center top no-repeat; } }
  body.home #site-content > .row {
    background: #0033a0; }

body.home #home-banner {
  position: relative;
  height: 450px;
  margin-left: -1.07143rem;
  margin-right: -1.07143rem; }
  @media screen and (max-width: 39.9375em) {
    body.home #home-banner {
      height: auto; } }
  @media print, screen and (min-width: 64em) {
    body.home #home-banner {
      margin-left: 0;
      margin-right: 0; } }
  body.home #home-banner .dzs-slider {
    width: 100%; }
    body.home #home-banner .dzs-slider .dzs-slider-prev {
      left: 0; }
    body.home #home-banner .dzs-slider .dzs-slider-next {
      right: 0; }
    body.home #home-banner .dzs-slider .slick-slide {
      height: 450px;
      overflow: hidden; }
      @media screen and (max-width: 39.9375em) {
        body.home #home-banner .dzs-slider .slick-slide {
          height: auto; } }
      body.home #home-banner .dzs-slider .slick-slide img {
        height: 450px;
        float: right; }
        @media screen and (max-width: 39.9375em) {
          body.home #home-banner .dzs-slider .slick-slide img {
            height: auto; } }
        @media print, screen and (min-width: 40em) {
          body.home #home-banner .dzs-slider .slick-slide img {
            width: 1100px;
            max-width: none; } }

body.home #big-buttons, body.home #donation {
  margin-top: 1.42857rem; }
  @media print, screen and (min-width: 40em) {
    body.home #big-buttons, body.home #donation {
      margin-top: 2.14286rem; } }

body.home #donation {
  color: #fff;
  margin-bottom: 1.42857rem; }
  @media print, screen and (min-width: 40em) {
    body.home #donation {
      margin-bottom: 2.14286rem; } }

body.home #home-z-feed {
  margin-top: 30px;
  margin-bottom: 30px; }
  body.home #home-z-feed .title-section {
    position: relative;
    color: #fff;
    height: 50px;
    margin: 30px 0; }
    body.home #home-z-feed .title-section h2 {
      color: inherit; }
    body.home #home-z-feed .title-section hr {
      position: absolute;
      top: 50%;
      left: 0;
      right: 0;
      margin: -2px 0 0 0;
      border: 3px solid #7e66ad;
      border-bottom: none; }
    body.home #home-z-feed .title-section .title, body.home #home-z-feed .title-section .sub-title {
      position: relative;
      line-height: 50px;
      margin: 0 20px;
      padding: 0 10px;
      left: 10%;
      float: left;
      background: #0033a0;
      text-transform: uppercase;
      letter-spacing: 2px; }
      @media screen and (max-width: 39.9375em) {
        body.home #home-z-feed .title-section .title, body.home #home-z-feed .title-section .sub-title {
          left: auto; } }
    body.home #home-z-feed .title-section .z {
      font-weight: bold; }
    body.home #home-z-feed .title-section .title {
      font-size: 3em; }
      @media screen and (max-width: 39.9375em) {
        body.home #home-z-feed .title-section .title {
          font-size: 2em; } }
    body.home #home-z-feed .title-section .sub-title {
      font-size: 1.2em; }
      @media screen and (max-width: 39.9375em) {
        body.home #home-z-feed .title-section .sub-title {
          line-height: normal; } }
  body.home #home-z-feed .feed {
    margin: 0; }
    body.home #home-z-feed .feed li {
      padding-bottom: 50px; }
    body.home #home-z-feed .feed .feed-item-container {
      position: relative;
      height: 260px;
      color: #fff;
      background: #1F70B6; }
      body.home #home-z-feed .feed .feed-item-container h3, body.home #home-z-feed .feed .feed-item-container body.single-event .event-faq .faq-title, body.single-event .event-faq body.home #home-z-feed .feed .feed-item-container .faq-title {
        font-size: 1.5em;
        font-weight: bold;
        color: #fff;
        margin: 0.5em 0 0 0; }
      body.home #home-z-feed .feed .feed-item-container > .row {
        height: 100%; }
      body.home #home-z-feed .feed .feed-item-container .content {
        font-size: 0.8em;
        background: #1F70B6; }
        @media screen and (max-width: 39.9375em) {
          body.home #home-z-feed .feed .feed-item-container .content {
            padding-top: 35px; } }
        @media print, screen and (min-width: 40em) {
          body.home #home-z-feed .feed .feed-item-container .content {
            position: absolute;
            opacity: 0;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(120, 39, 136, 0.7);
            transition: opacity 300ms; }
            body.home #home-z-feed .feed .feed-item-container .content:hover {
              opacity: 1; } }
        @media print, screen and (min-width: 40em) {
          body.home #home-z-feed .feed .feed-item-container .content {
            font-size: 1em; } }
        body.home #home-z-feed .feed .feed-item-container .content p {
          font-size: inherit; }
        body.home #home-z-feed .feed .feed-item-container .content > p {
          display: block;
          text-overflow: ellipsis; }
          @media print, screen and (min-width: 64em) {
            body.home #home-z-feed .feed .feed-item-container .content > p {
              overflow: visible; } }
        body.home #home-z-feed .feed .feed-item-container .content .read-more {
          display: inline-block;
          background: #3b8ede;
          color: #fff;
          font-family: "Myriad Pro Heavy";
          text-transform: uppercase;
          font-size: 1.3em;
          padding: 0.5em 1em; }
          body.home #home-z-feed .feed .feed-item-container .content .read-more:hover {
            background: #67a7e5; }
      body.home #home-z-feed .feed .feed-item-container .image {
        height: 100%;
        background-size: cover; }
      body.home #home-z-feed .feed .feed-item-container .icon {
        display: block;
        position: absolute;
        bottom: 0;
        left: 50%;
        margin-left: -32px;
        color: #438FDB;
        border-radius: 50%;
        font-size: 4em;
        transition: color 300ms;
        text-decoration: none; }
        body.home #home-z-feed .feed .feed-item-container .icon:hover {
          color: #2e82d7; }
        body.home #home-z-feed .feed .feed-item-container .icon [class*="dzs-icon"] {
          display: block;
          position: relative; }
        body.home #home-z-feed .feed .feed-item-container .icon .background {
          display: block;
          position: absolute;
          top: 2px;
          right: 2px;
          bottom: 2px;
          left: 2px;
          border-radius: 50%;
          background: #fff; }
  body.home #home-z-feed .z-feed-twitter .twitter-avatar {
    margin-right: 0.5em; }
  body.home #home-z-feed .z-feed-twitter .twitter-actions, body.home #home-z-feed .z-feed-twitter .twitter-user-info, body.home #home-z-feed .z-feed-twitter .twitter-time {
    color: #244096; }
    @media print, screen and (min-width: 64em) {
      body.home #home-z-feed .z-feed-twitter .twitter-actions, body.home #home-z-feed .z-feed-twitter .twitter-user-info, body.home #home-z-feed .z-feed-twitter .twitter-time {
        color: inherit; } }
    body.home #home-z-feed .z-feed-twitter .twitter-actions a, body.home #home-z-feed .z-feed-twitter .twitter-user-info a, body.home #home-z-feed .z-feed-twitter .twitter-time a {
      color: inherit; }
  body.home #home-z-feed .z-feed-twitter .twitter-user-info {
    margin-bottom: 0; }
  @media screen and (min-width: 40em) and (max-width: 63.9375em) {
    body.home #home-z-feed .z-feed-twitter .twitter-header {
      margin-left: -55px; }
      body.home #home-z-feed .z-feed-twitter .twitter-header img {
        box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); } }
  body.home #home-z-feed .z-feed-twitter .twitter-actions {
    position: relative;
    padding: 2px;
    text-align: center;
    background: #568FCA;
    margin-bottom: 2px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
    z-index: 9; }
    body.home #home-z-feed .z-feed-twitter .twitter-actions .twitter-action .twitter-icon {
      width: 16px;
      height: 16px;
      display: inline-block; }
    body.home #home-z-feed .z-feed-twitter .twitter-actions .twitter-action.favorite .twitter-icon {
      background: url("https://g.twimg.com/dev/documentation/image/favorite.png"); }
    body.home #home-z-feed .z-feed-twitter .twitter-actions .twitter-action.reply .twitter-icon {
      background: url("https://g.twimg.com/dev/documentation/image/reply.png"); }
    body.home #home-z-feed .z-feed-twitter .twitter-actions .twitter-action.retweet .twitter-icon {
      background: url("https://g.twimg.com/dev/documentation/image/retweet.png"); }
    body.home #home-z-feed .z-feed-twitter .twitter-actions .twitter-action:hover.favorite .twitter-icon {
      background: url("https://g.twimg.com/dev/documentation/image/favorite_hover.png"); }
    body.home #home-z-feed .z-feed-twitter .twitter-actions .twitter-action:hover.reply .twitter-icon {
      background: url("https://g.twimg.com/dev/documentation/image/reply_hover.png"); }
    body.home #home-z-feed .z-feed-twitter .twitter-actions .twitter-action:hover.retweet .twitter-icon {
      background: url("https://g.twimg.com/dev/documentation/image/retweet_hover.png"); }

body.home .dzs-alert {
  top: auto; }

/*
Search index.

@since 0.1.0
*/
body.search .search-results-count {
  font-size: 1.5em;
  color: #3b8ede; }

/*
Styles page.php.

@since 0.1.0
*/
@media screen and (max-width: 39.9375em) {
  .page-template-map #site-header .header-container, .hidden-page-template-map #site-header .header-container {
    height: 100px; }
  .page-template-map #site-header .header-bottom, .hidden-page-template-map #site-header .header-bottom {
    display: none; }
  .page-template-map #site-header #dzs-qib, .hidden-page-template-map #site-header #dzs-qib {
    display: none; }
  .page-template-map #site-header #google-translate, .hidden-page-template-map #site-header #google-translate {
    display: none; }
  .page-template-map #site-footer, .hidden-page-template-map #site-footer {
    display: none; } }

.page-template-map #site-content, .hidden-page-template-map #site-content {
  padding: 0; }
  .page-template-map #site-content [class*="-copy"], .hidden-page-template-map #site-content [class*="-copy"] {
    max-width: none; }
  .page-template-map #site-content .page-copy, .hidden-page-template-map #site-content .page-copy {
    margin-top: 0;
    margin-bottom: 0; }
    .page-template-map #site-content .page-copy > p, .hidden-page-template-map #site-content .page-copy > p {
      margin-bottom: 0; }

.page-template-map .map-accordion .accordion-navigation, .hidden-page-template-map .map-accordion .accordion-navigation {
  margin-bottom: 0 !important; }

.page-template-map #zoo-map, .hidden-page-template-map #zoo-map {
  width: 100% !important;
  height: 435px !important; }

@media only screen and (min-width: 340px) and (max-width: 359px) {
  .page-template-map #zoo-map, .hidden-page-template-map #zoo-map {
    height: 475px !important; } }

@media only screen and (min-width: 360px) and (max-width: 366px) {
  .page-template-map #zoo-map, .hidden-page-template-map #zoo-map {
    height: 575px !important; } }

@media only screen and (min-width: 367px) and (max-width: 375px) {
  .page-template-map #zoo-map, .hidden-page-template-map #zoo-map {
    height: 535px !important; } }

@media only screen and (min-width: 376px) and (max-width: 414px) {
  .page-template-map #zoo-map, .hidden-page-template-map #zoo-map {
    height: 605px !important; } }

@media only screen and (min-width: 768px) and (max-width: 1023) and (orientation: portrait) {
  .page-template-map #zoo-map, .hidden-page-template-map #zoo-map {
    height: 610px !important; } }

@media only screen and (min-width: 1024px) and (max-width: 1370px) {
  .page-template-map #zoo-map, .hidden-page-template-map #zoo-map {
    height: 555px !important; } }

@media only screen and (min-width: 1371px) and (max-width: 1919px) {
  .page-template-map #zoo-map, .hidden-page-template-map #zoo-map {
    height: 575px !important; } }

@media only screen and (min-width: 1920px) {
  .page-template-map #zoo-map, .hidden-page-template-map #zoo-map {
    height: 580px !important; } }

/*
Styles shared among all templates.

@since 0.1.0
*/
.site-page-content .page-content, .site-page-content .post-content {
  padding-left: 0;
  padding-right: 0; }
  @media print, screen and (min-width: 40em) {
    .site-page-content .page-content, .site-page-content .post-content {
      padding-left: 1em; } }

.site-page-content h1 {
  margin-top: 0; }

[class*="up-"].text-center {
  font-size: 0; }
  [class*="up-"].text-center > li {
    float: none;
    display: inline-block; }

#site-content [class*="-copy"]::before, #site-content [class*="-copy"]::after {
  display: table;
  content: ' ';
  -webkit-flex-basis: 0;
      -ms-flex-preferred-size: 0;
          flex-basis: 0;
  -webkit-order: 1;
      -ms-flex-order: 1;
          order: 1; }

#site-content [class*="-copy"]::after {
  clear: both; }

@media print, screen and (min-width: 40em) {
  #site-content [class*="-copy"] {
    max-width: 640px; } }

#site-content [class*="-copy"] .button {
  margin-bottom: 0; }

#site-content [class*="-copy"] ul {
  list-style: disc;
  padding-left: 3em;
  overflow: hidden;
  margin-bottom: 1rem; }

#site-content [class*="-copy"] ol {
  padding-left: 3em;
  overflow: hidden; }

#site-content [class*="-copy"] hr {
  margin: 1em 0; }

#site-content [class*="-copy"] img {
  margin-bottom: 1rem;
  background: #606060;
  color: #e2e2e2;
  min-height: 100px; }

#site-content [class*="-copy"] a.image-link {
  position: relative;
  display: inline-block;
  margin-bottom: 1rem; }
  #site-content [class*="-copy"] a.image-link:after {
    transition: all 300ms;
    position: absolute;
    content: '';
    top: 0;
    right: 0;
    bottom: 0;
    left: 0; }
  #site-content [class*="-copy"] a.image-link:hover:after {
    background: #782788;
    /* The fallback for ancient things */
    background: rgba(120, 39, 136, 0.5); }
  #site-content [class*="-copy"] a.image-link img {
    margin-bottom: 0; }

.page-copy {
  margin-top: 1em;
  margin-bottom: 1em; }

.page-title {
  color: #0033a0;
  text-transform: uppercase;
  margin-top: 0; }

.vertical-center {
  position: absolute; }

.right-arrow {
  position: relative;
  vertical-align: middle;
  margin-left: 0.3em; }
  .right-arrow:before {
    content: "";
    border-color: transparent #fff;
    border-style: solid;
    border-width: 0.5em 0 0.5em 0.7em;
    display: block;
    height: 0;
    width: 0;
    top: 50%; }

.left-arrow {
  position: relative;
  vertical-align: middle;
  margin-right: 0.3em; }
  .left-arrow:before {
    content: "";
    border-color: transparent #fff;
    border-style: solid;
    border-width: 0.5em 0.7em 0.5em 0;
    display: block;
    height: 0;
    width: 0;
    top: 50%; }

.widget-title a {
  color: inherit; }

@media screen and (max-width: 39.9375em) {
  .dzs-extra-field-table-container {
    max-width: 100%;
    overflow-x: scroll; } }

body.page-template-archive-lessons .site-sidebar .widgets .facetwp-facet {
  margin-top: 1rem; }
  body.page-template-archive-lessons .site-sidebar .widgets .facetwp-facet .facetwp-search-wrap .facetwp-btn {
    display: none; }

body.page-template-archive-lessons .shuffle-title .shuffle-title-text {
  top: auto !important;
  -webkit-transform: none !important;
      -ms-transform: none !important;
          transform: none !important; }

/*
Accordions overrides.

@since 0.1.0
*/
.accordion {
  padding-left: 0 !important;
  background: transparent; }
  .accordion.simple .accordion-navigation > a {
    background: none !important;
    color: #782788; }
    .accordion.simple .accordion-navigation > a:before {
      border-color: rgba(255, 255, 255, 0) #782788; }
  .accordion .content {
    -ms-overflow-style: none;
    overflow: auto;
    border: none;
    background: transparent; }
    .accordion .content.collapse {
      padding-left: 0;
      padding-right: 0; }
  .accordion .accordion-navigation {
    margin-bottom: 1em !important; }
    .accordion .accordion-navigation:last-of-type {
      margin-bottom: 0; }
    .accordion .accordion-navigation > a {
      background: #3b8ede;
      background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JmMWUyZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNTk0NzciIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
      background: linear-gradient(to right, #3b8ede 0%, #66ACDF 100%);
      filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bf1e2d', endColorstr='#f59477',GradientType=1 );
      display: inline-block;
      position: relative;
      width: 100%;
      color: #fff;
      font-size: 1.5em;
      padding-left: 1.8em;
      padding-top: 0.1em;
      padding-bottom: 0.1em;
      letter-spacing: 0.06em;
      text-decoration: none !important; }
      .accordion .accordion-navigation > a:before {
        content: "";
        position: absolute;
        border-color: rgba(255, 255, 255, 0) #fff;
        border-style: solid;
        border-width: 0.5em 0 0.5em 0.7em;
        display: block;
        height: 0;
        width: 0;
        top: 50%;
        left: 10px;
        -webkit-transform: scale(0.9999) translateY(-50%);
            -ms-transform: scale(0.9999) translateY(-50%);
                transform: scale(0.9999) translateY(-50%);
        transition: -webkit-transform 300ms;
        transition: transform 300ms;
        transition: transform 300ms, -webkit-transform 300ms; }
      .accordion .accordion-navigation > a:hover {
        background: #2581da;
        background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JmMWUyZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNTk0NzciIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
        background: linear-gradient(to right, #2581da 0%, #51a1db 100%);
        filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bf1e2d', endColorstr='#f59477',GradientType=1 ); }
    .accordion .accordion-navigation.is-active > a {
      background: #782788;
      background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JmMWUyZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNTk0NzciIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
      background: linear-gradient(to right, #782788 0%, #5C6DB4 100%);
      filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bf1e2d', endColorstr='#f59477',GradientType=1 ); }
      .accordion .accordion-navigation.is-active > a:before {
        -webkit-transform: scale(0.9999) translateY(-50%) rotate(90deg);
            -ms-transform: scale(0.9999) translateY(-50%) rotate(90deg);
                transform: scale(0.9999) translateY(-50%) rotate(90deg); }
      .accordion .accordion-navigation.is-active > a:hover {
        background: #672174;
        background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JmMWUyZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNTk0NzciIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
        background: linear-gradient(to right, #672174 0%, #4e5fa9 100%);
        filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bf1e2d', endColorstr='#f59477',GradientType=1 ); }
  .accordion:not(.map-accordion) .accordion-navigation > .content {
    padding-left: 0;
    padding-right: 0;
    left: 0; }

/*
Button extra styling.

@since 0.1.0
*/
.button {
  padding: 1.14286rem 2.28571rem; }
  .button.primary.hollow {
    color: #782788;
    background: transparent;
    border-width: 1px;
    border-color: #782788;
    font-weight: 600; }
    .button.primary.hollow:hover, .button.primary.hollow:focus {
      background-color: #782788;
      color: #fff; }
  .button.secondary.hollow {
    color: #0033a0;
    background: transparent;
    border-width: 1px;
    border-color: #0033a0;
    font-weight: 600; }
    .button.secondary.hollow:hover, .button.secondary.hollow:focus {
      background-color: #0033a0;
      color: #fff; }
  .button.light-sky-blue.hollow {
    color: #d7f0f9;
    background: transparent;
    border-width: 1px;
    border-color: #d7f0f9;
    font-weight: 600; }
    .button.light-sky-blue.hollow:hover, .button.light-sky-blue.hollow:focus {
      background-color: #d7f0f9;
      color: #333; }
  .button.cold-purple.hollow {
    color: #9488bf;
    background: transparent;
    border-width: 1px;
    border-color: #9488bf;
    font-weight: 600; }
    .button.cold-purple.hollow:hover, .button.cold-purple.hollow:focus {
      background-color: #9488bf;
      color: #333; }
  .button.medium-purple.hollow {
    color: #7e66ad;
    background: transparent;
    border-width: 1px;
    border-color: #7e66ad;
    font-weight: 600; }
    .button.medium-purple.hollow:hover, .button.medium-purple.hollow:focus {
      background-color: #7e66ad;
      color: #333; }
  .button.vivid-violet.hollow {
    color: #782788;
    background: transparent;
    border-width: 1px;
    border-color: #782788;
    font-weight: 600; }
    .button.vivid-violet.hollow:hover, .button.vivid-violet.hollow:focus {
      background-color: #782788;
      color: #fff; }
  .button.dark-purple.hollow {
    color: #31348c;
    background: transparent;
    border-width: 1px;
    border-color: #31348c;
    font-weight: 600; }
    .button.dark-purple.hollow:hover, .button.dark-purple.hollow:focus {
      background-color: #31348c;
      color: #fff; }
  .button.smalt.hollow {
    color: #0033a0;
    background: transparent;
    border-width: 1px;
    border-color: #0033a0;
    font-weight: 600; }
    .button.smalt.hollow:hover, .button.smalt.hollow:focus {
      background-color: #0033a0;
      color: #fff; }
  .button.summer-sky-blue.hollow {
    color: #3b8ede;
    background: transparent;
    border-width: 1px;
    border-color: #3b8ede;
    font-weight: 600; }
    .button.summer-sky-blue.hollow:hover, .button.summer-sky-blue.hollow:focus {
      background-color: #3b8ede;
      color: #333; }
  .button.info.hollow {
    color: #a0d3e8;
    background: transparent;
    border-width: 1px;
    border-color: #a0d3e8;
    font-weight: 600; }
    .button.info.hollow:hover, .button.info.hollow:focus {
      background-color: #a0d3e8;
      color: #333; }
  .button.success.hollow {
    color: #43AC6A;
    background: transparent;
    border-width: 1px;
    border-color: #43AC6A;
    font-weight: 600; }
    .button.success.hollow:hover, .button.success.hollow:focus {
      background-color: #43AC6A;
      color: #fff; }
  .button.warning.hollow {
    color: #f08a24;
    background: transparent;
    border-width: 1px;
    border-color: #f08a24;
    font-weight: 600; }
    .button.warning.hollow:hover, .button.warning.hollow:focus {
      background-color: #f08a24;
      color: #333; }
  .button.alert.hollow {
    color: #f04124;
    background: transparent;
    border-width: 1px;
    border-color: #f04124;
    font-weight: 600; }
    .button.alert.hollow:hover, .button.alert.hollow:focus {
      background-color: #f04124;
      color: #333; }
  .button.white {
    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: 0;
    transition: background-color 0.25s ease-out, color 0.25s ease-out;
    font-size: 0.9rem;
    line-height: 1;
    text-align: center;
    cursor: pointer;
    background-color: #782788;
    color: #fefefe;
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0; }
    [data-whatinput='mouse'] .button.white {
      outline: 0; }
    .button.white:hover, .button.white:focus {
      background-color: #662174;
      color: #fefefe; }
  .button.white.hollow {
    color: #fff;
    background: transparent;
    border-width: 1px;
    border-color: #fff;
    font-weight: 600; }
    .button.white.hollow:hover, .button.white.hollow:focus {
      background-color: #fff;
      color: #333; }
  .button.summer-sky-blue {
    background: #3b8ede; }
    .button.summer-sky-blue:hover {
      background: #67a7e5; }
  .button.light-gray {
    background: #e6e6e6; }
    .button.light-gray:hover {
      background: white; }
  .button.archive-press-release {
    background: #595959; }
    .button.archive-press-release:hover {
      background: #737373; }
  .button.button-icon {
    position: relative;
    background: #0033a0;
    padding: 0.4rem 0.75rem 0.4rem 2.5rem;
    border-top-left-radius: 100px;
    border-bottom-left-radius: 100px;
    text-transform: uppercase;
    font-size: 1.2em;
    letter-spacing: 0.1em; }
    .button.button-icon:hover {
      background: #0043d3; }
      .button.button-icon:hover .main-icon {
        -webkit-transform: scale(1.1);
            -ms-transform: scale(1.1);
                transform: scale(1.1); }
    .button.button-icon .main-icon {
      position: absolute;
      display: block;
      left: 0.15rem;
      top: 0.175rem;
      font-size: 1.4em;
      color: #7e66ad;
      border-radius: 50%;
      transition: -webkit-transform 300ms;
      transition: transform 300ms;
      transition: transform 300ms, -webkit-transform 300ms; }
      .button.button-icon .main-icon .background {
        position: absolute;
        display: block;
        background: #fff;
        border-radius: 50%;
        top: 2px;
        right: 3px;
        bottom: 2px;
        left: 2px; }
      .button.button-icon .main-icon [class*="icon"] {
        display: block;
        position: relative; }
    .button.button-icon.back-to-archive {
      font-size: 1.5rem;
      color: #fff;
      letter-spacing: 0.07143rem;
      padding: 1rem 0.75rem 1rem 3.5rem; }
      .button.button-icon.back-to-archive .main-icon {
        left: -.3rem;
        top: -.3rem; }
        .button.button-icon.back-to-archive .main-icon .fa-circle {
          font-size: 2.5rem; }
        .button.button-icon.back-to-archive .main-icon .fa-caret-left {
          margin-left: -.125rem;
          font-size: 1.9rem; }
  .button.tiny {
    padding: 0.71429rem 1.42857rem; }
  .button.small {
    padding: 1rem 2rem; }
  .button.default {
    padding: 1.14286rem 2.28571rem; }
  .button.large {
    padding: 1.28571rem 2.57143rem; }

/*
Alert styling.

@since 0.1.0
*/
@media print, screen and (min-width: 40em) {
  body.home .dzs-alert.inset-banner .dzs-alert-content {
    margin-left: 0; }
  body.home .dzs-alerts-container {
    position: relative;
    max-width: 78.57143rem;
    margin-right: auto;
    margin-left: auto; }
    body.home .dzs-alerts-container::before, body.home .dzs-alerts-container::after {
      display: table;
      content: ' ';
      -webkit-flex-basis: 0;
          -ms-flex-preferred-size: 0;
              flex-basis: 0;
      -webkit-order: 1;
          -ms-flex-order: 1;
              order: 1; }
    body.home .dzs-alerts-container::after {
      clear: both; }
    body.home .dzs-alerts-container .dzs-alert.inset-banner {
      position: absolute;
      z-index: 9;
      left: 25%;
      max-width: 75%; }
      body.home .dzs-alerts-container .dzs-alert.inset-banner .dzs-alert-content {
        padding: 0.08rem 0 0.08rem 12.5%; } }

.dzs-alert {
  position: relative;
  width: 78.57143rem;
  max-width: 100%;
  margin: 0 auto;
  color: #fff;
  font-size: 1.2em;
  top: -20px; }
  @media screen and (max-width: 39.9375em) {
    .dzs-alert {
      padding: 0.3em 0 1.8em 0; } }
  .dzs-alert.inset-banner.default, .dzs-alert.pop-up.default {
    background: #293b8d;
    background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JmMWUyZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNTk0NzciIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
    background: linear-gradient(to right, #293b8d 0%, #00aef1 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bf1e2d', endColorstr='#f59477',GradientType=1 ); }
    .dzs-alert.inset-banner.default .dzs-alert-button, .dzs-alert.pop-up.default .dzs-alert-button {
      background: #344cb5; }
  .dzs-alert.inset-banner.red, .dzs-alert.pop-up.red {
    background: #bf1e2d;
    background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JmMWUyZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNTk0NzciIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
    background: linear-gradient(to right, #bf1e2d 0%, #f59477 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bf1e2d', endColorstr='#f59477',GradientType=1 ); }
    .dzs-alert.inset-banner.red .dzs-alert-button, .dzs-alert.pop-up.red .dzs-alert-button {
      background: #df3141; }
  .dzs-alert.inset-banner.green, .dzs-alert.pop-up.green {
    background: #005E60;
    background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JmMWUyZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNTk0NzciIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
    background: linear-gradient(to right, #005E60 0%, #3EB54D 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bf1e2d', endColorstr='#f59477',GradientType=1 ); }
    .dzs-alert.inset-banner.green .dzs-alert-button, .dzs-alert.pop-up.green .dzs-alert-button {
      background: #009093; }
  .dzs-alert.inset-banner .dzs-alert-content, .dzs-alert.pop-up .dzs-alert-content {
    padding-left: 1.07143rem;
    line-height: 35px; }
    @media print, screen and (min-width: 40em) {
      .dzs-alert.inset-banner .dzs-alert-content, .dzs-alert.pop-up .dzs-alert-content {
        margin-left: grid-calc(4, 12); } }
  .dzs-alert.inset-banner .dzs-alert-icon, .dzs-alert.pop-up .dzs-alert-icon {
    font-size: 1.3em;
    margin-right: 0.3em;
    vertical-align: middle; }
  .dzs-alert.inset-banner .dzs-alert-button, .dzs-alert.pop-up .dzs-alert-button {
    text-transform: uppercase;
    margin-left: 0.3em;
    text-decoration: none !important; }
    @media screen and (max-width: 39.9375em) {
      .dzs-alert.inset-banner .dzs-alert-button, .dzs-alert.pop-up .dzs-alert-button {
        position: absolute;
        bottom: 0;
        right: 0; } }
  .dzs-alert.inset-banner .dzs-alert-button {
    display: inline-block;
    opacity: 0.6;
    color: #fff;
    padding: 0.3em 0.5em;
    background: #782788; }
    .dzs-alert.inset-banner .dzs-alert-button:hover {
      opacity: 0.8; }
  .dzs-alert.inset-banner .close-button {
    right: auto;
    top: auto;
    font-size: inherit;
    position: relative; }
  .dzs-alert.pop-up {
    margin: 0;
    width: 100%;
    overflow: auto; }
    @media screen and (max-width: 39.9375em) {
      .dzs-alert.pop-up h1, .dzs-alert.pop-up h2, .dzs-alert.pop-up h3, .dzs-alert.pop-up body.single-event .event-faq .faq-title, body.single-event .event-faq .dzs-alert.pop-up .faq-title, .dzs-alert.pop-up h4, .dzs-alert.pop-up .press-release-subheading, .dzs-alert.pop-up h5, .dzs-alert.pop-up h6 {
        color: #fff; } }
    .dzs-alert.pop-up .dzs-alert-content {
      margin: 0 auto;
      padding: 0; }
      .dzs-alert.pop-up .dzs-alert-content .row {
        padding: 15px; }
      .dzs-alert.pop-up .dzs-alert-content .dzs-alert-icon {
        margin-top: 0.35em;
        vertical-align: top; }
        @media print, screen and (min-width: 40em) {
          .dzs-alert.pop-up .dzs-alert-content .dzs-alert-icon.show-for-medium {
            display: inline-block !important; } }
      .dzs-alert.pop-up .dzs-alert-content .dzs-alert-image, .dzs-alert.pop-up .dzs-alert-content .text-content, .dzs-alert.pop-up .dzs-alert-content .text-content > * {
        display: inline-block; }
      .dzs-alert.pop-up .dzs-alert-content .dzs-alert-text > p:first-of-type {
        display: inline-block; }
      @media only screen and (max-width: 389px) {
        .dzs-alert.pop-up .dzs-alert-content .small-icon-container {
          padding: 0; } }
      @media screen and (max-width: 39.9375em) {
        .dzs-alert.pop-up .dzs-alert-content .text-content {
          padding-left: 1rem; } }
    @media screen and (max-width: 39.9375em) {
      .dzs-alert.pop-up .dzs-alert-button.close-button {
        top: 0;
        bottom: auto; } }
    .dzs-alert.pop-up .dzs-alert-button.call-to-action {
      position: relative;
      margin-bottom: 0;
      margin-left: 0; }
    @media screen and (max-width: 39.9375em) {
      .dzs-alert.pop-up {
        padding: 0; } }
    .dzs-alert.pop-up .dzs-alert-button:not(.call-to-action) {
      display: inline-block;
      opacity: 0.6;
      color: #fff;
      background: #782788; }
      .dzs-alert.pop-up .dzs-alert-button:not(.call-to-action):hover {
        opacity: 0.8; }
    .dzs-alert.pop-up .dzs-alert-button {
      padding: 0.3em 0.5em; }
    @media screen and (max-width: 39.9375em) {
      .dzs-alert.pop-up.default .call-to-action, .dzs-alert.pop-up.red .call-to-action, .dzs-alert.pop-up.green .call-to-action {
        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: 0;
        transition: background-color 0.25s ease-out, color 0.25s ease-out;
        font-size: 0.9rem;
        line-height: 1;
        text-align: center;
        cursor: pointer;
        background-color: #fff;
        color: #fefefe;
        color: #fff;
        background: transparent;
        border-width: 1px;
        border-color: #fff;
        font-weight: 600;
        margin-bottom: 0; }
        [data-whatinput='mouse'] .dzs-alert.pop-up.default .call-to-action, [data-whatinput='mouse'] .dzs-alert.pop-up.red .call-to-action, [data-whatinput='mouse'] .dzs-alert.pop-up.green .call-to-action {
          outline: 0; }
        .dzs-alert.pop-up.default .call-to-action:hover, .dzs-alert.pop-up.default .call-to-action:focus, .dzs-alert.pop-up.red .call-to-action:hover, .dzs-alert.pop-up.red .call-to-action:focus, .dzs-alert.pop-up.green .call-to-action:hover, .dzs-alert.pop-up.green .call-to-action:focus {
          background-color: #662174;
          color: #fefefe; }
        .dzs-alert.pop-up.default .call-to-action:hover, .dzs-alert.pop-up.default .call-to-action:focus, .dzs-alert.pop-up.red .call-to-action:hover, .dzs-alert.pop-up.red .call-to-action:focus, .dzs-alert.pop-up.green .call-to-action:hover, .dzs-alert.pop-up.green .call-to-action:focus {
          background-color: #fff;
          color: #333; } }
    @media print, screen and (min-width: 40em) {
      .dzs-alert.pop-up .call-to-action {
        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: 0;
        transition: background-color 0.25s ease-out, color 0.25s ease-out;
        font-size: 0.9rem;
        line-height: 1;
        text-align: center;
        cursor: pointer;
        background-color: #344cb5;
        color: #fefefe;
        bottom: -0.202rem; }
        [data-whatinput='mouse'] .dzs-alert.pop-up .call-to-action {
          outline: 0; }
        .dzs-alert.pop-up .call-to-action:hover, .dzs-alert.pop-up .call-to-action:focus {
          background-color: #662174;
          color: #fefefe; }
        .dzs-alert.pop-up .call-to-action.show-for-medium-up {
          display: inline-block !important; } }
    @media print, screen and (min-width: 40em) {
      .dzs-alert.pop-up .dzs-alert-close {
        right: -4.3rem !important; } }
  @media print, screen and (min-width: 40em) {
    .dzs-alert.pop-up {
      position: fixed;
      display: table;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      width: 100%;
      height: 100%;
      max-width: none;
      background: rgba(0, 0, 0, 0.5) !important;
      z-index: 500; }
      .dzs-alert.pop-up .dzs-alert-container {
        margin: 0;
        padding: 0;
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        top: 50%;
        -webkit-transform: translateY(-50%);
            -ms-transform: translateY(-50%);
                transform: translateY(-50%);
        text-align: center; }
      .dzs-alert.pop-up .dzs-alert-content {
        position: relative;
        max-width: 100%;
        margin: auto;
        background: #fff;
        color: #0033a0;
        text-align: left;
        width: 500px; }
        .dzs-alert.pop-up .dzs-alert-content .dzs-alert-text {
          display: block; }
        .dzs-alert.pop-up .dzs-alert-content .dzs-alert-icon {
          display: none; }
      .dzs-alert.pop-up .dzs-alert-close {
        position: absolute;
        top: 0;
        right: 0; }
        .dzs-alert.pop-up .dzs-alert-close:hover {
          opacity: 1; } }

.accordion-navigation .dzs-alert {
  top: auto; }

@media print, screen and (min-width: 40em) {
  body.single-animal .dzs-alert.inset-banner .dzs-alert-content {
    margin-left: grid-calc(3, 12); } }

.site-page-content .dzs-alert.inset-banner .dzs-alert-content {
  margin-left: 0; }

body:not(.home) .dzs-alert.pop-up {
  top: 0; }

/*
Gallery.

@since 1.21.3
*/
.gallery {
  margin-bottom: 1rem;
  background-color: #e5e5e5;
  padding: 0.5em; }
  .gallery .gallery-items {
    margin-bottom: 5px; }
    .gallery .gallery-items .gallery-icon {
      margin: 0;
      text-align: center; }
      .gallery .gallery-items .gallery-icon a {
        display: block; }
    .gallery .gallery-items .gallery-caption {
      text-align: center; }
  .gallery .gallery-thumbnails {
    position: relative; }
    .gallery .gallery-thumbnails .slick-list {
      padding: 0 40px;
      overflow: hidden; }
    .gallery .gallery-thumbnails .slick-prev {
      position: absolute;
      top: 0;
      bottom: 0;
      width: 40px;
      background-color: #C8C8C8;
      text-align: center;
      cursor: pointer;
      z-index: 100;
      left: 0; }
      .gallery .gallery-thumbnails .slick-prev:hover {
        background-color: #afafaf; }
      .gallery .gallery-thumbnails .slick-prev .fa {
        position: absolute;
        color: #fff;
        font-size: 40px;
        height: 40px;
        margin-top: -20px;
        width: 100%;
        top: 50%;
        left: 0; }
    .gallery .gallery-thumbnails .slick-next {
      position: absolute;
      top: 0;
      bottom: 0;
      width: 40px;
      background-color: #C8C8C8;
      text-align: center;
      cursor: pointer;
      z-index: 100;
      right: 0; }
      .gallery .gallery-thumbnails .slick-next:hover {
        background-color: #afafaf; }
      .gallery .gallery-thumbnails .slick-next .fa {
        position: absolute;
        color: #fff;
        font-size: 40px;
        height: 40px;
        margin-top: -20px;
        width: 100%;
        top: 50%;
        left: 0; }
    .gallery .gallery-thumbnails .gallery-thumbnail {
      padding: 0 5px; }
      .gallery .gallery-thumbnails .gallery-thumbnail img {
        width: 100%;
        height: auto; }

#gallery-lightbox {
  position: fixed;
  display: table;
  opacity: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.9);
  z-index: 1001; }
  #gallery-lightbox .container {
    display: table-cell;
    vertical-align: middle;
    text-align: center; }
    #gallery-lightbox .container img {
      max-width: 90%;
      max-height: 100%; }
  #gallery-lightbox .close {
    position: absolute;
    top: 2%;
    right: 2%;
    font-size: 30px;
    cursor: pointer;
    color: #fff; }

body.admin-bar #gallery-lightbox .close {
  margin-top: 32px; }
  @media screen and (max-width: 782px) {
    body.admin-bar #gallery-lightbox .close {
      margin-top: 46px !important; } }

#flags {
  display: none; }

#google-translate {
  position: absolute;
  top: 0;
  right: 0;
  opacity: 0.7;
  color: #fff;
  height: 40px;
  line-height: 40px;
  background: #7e66ad;
  cursor: pointer;
  transition: opacity 300ms;
  z-index: 100; }
  #google-translate #google_language_translator, #google-translate #language {
    width: 11.25em; }

@-moz-document url-prefix() {
  #google-translate #google_language_translator, #google-translate #language {
    width: 14em; } }
  @media screen and (max-width: 39.9375em) {
    #google-translate, #google-translate #google_language_translator {
      height: 80px;
      right: 1em;
      opacity: 0.5;
      width: 40px;
      padding: 0; } }
  #google-translate:hover {
    opacity: 1;
    transition: opacity 100ms; }
  #google-translate .google-translate-icon-language {
    position: absolute;
    top: 0;
    left: 0;
    height: 40px;
    line-height: 40px;
    width: 40px;
    text-align: center;
    font-size: 1.2em;
    pointer-events: none;
    z-index: 105; }
    @media screen and (max-width: 39.9375em) {
      #google-translate .google-translate-icon-language {
        font-size: 1.5em; } }
  #google-translate .google-translate-icon-arrow {
    position: absolute;
    top: 0;
    right: 0;
    height: 40px;
    line-height: 40px;
    width: 40px;
    text-align: center;
    font-size: 1.2em;
    pointer-events: none;
    z-index: 105; }
    @media screen and (max-width: 39.9375em) {
      #google-translate .google-translate-icon-arrow {
        top: 40px;
        font-size: 1.5em; } }
  #google-translate select.goog-te-combo {
    position: relative;
    background: transparent;
    border: none !important;
    width: auto;
    margin: 0;
    color: #fff;
    background: #7e66ad;
    height: 40px !important;
    outline: none;
    cursor: pointer;
    padding: 0 40px !important;
    z-index: 100;
    -moz-appearance: none;
    text-indent: 0.01px;
    text-overflow: '';
    -webkit-appearance: none;
    -o-appearance: none;
    appearance: none; }
    @media screen and (max-width: 39.9375em) {
      #google-translate select.goog-te-combo {
        width: 40px;
        height: 80px !important;
        text-indent: 40px;
        padding: 0; } }
  #google-translate .goog-te-gadget {
    height: 40px;
    overflow: hidden; }
    @media screen and (max-width: 39.9375em) {
      #google-translate .goog-te-gadget {
        height: 80px; } }
    #google-translate .goog-te-gadget span {
      display: none; }

/*
Gravity Form overrides, enhancements.

@since 0.1.0
*/
#site-content .gform_wrapper input[type="text"], #site-content .gform_wrapper textarea, #site-content .gform_wrapper select {
  background-color: #d7f0f9; }

#site-content .gform_wrapper .gform_fields {
  padding-left: 0; }

#site-content .gform_wrapper ul.gform_fields li.gfield input[type="radio"] {
  margin-left: 1px !important; }

#site-content .gform_wrapper .field_sublabel_below input {
  margin-bottom: 0.2em; }

/*
Lazy load.

@since 1.26.2
*/
img[data-img-src] {
  opacity: 0; }

/*
Pagination.

@since 0.1.0
*/
.dzs-pagination {
  background: #94c6ee;
  color: #0033a0;
  text-transform: uppercase;
  font-size: 1.5em;
  padding: 0.5em; }
  .dzs-pagination .next:before {
    content: '| '; }
  .dzs-pagination .prev:after {
    content: ' |'; }
  .dzs-pagination a, .dzs-pagination span {
    display: inline-block;
    color: inherit; }
  .dzs-pagination a {
    padding: 0 0.2em; }
    .dzs-pagination a:hover {
      background: #782788;
      color: #fff; }
  .dzs-pagination .page-numbers.current {
    background: #0033a0;
    color: #fff;
    padding: 0 0.2em; }
  .dzs-pagination form {
    margin: 0;
    display: inline-block; }
  .dzs-pagination select {
    display: inline-block;
    background: none;
    outline: none;
    border: none;
    color: inherit;
    font-size: inherit;
    text-transform: uppercase;
    margin: 0;
    padding: 0;
    height: auto; }
  .dzs-pagination .right-arrow:before {
    border-color: transparent #0033a0; }

/*
Post navigation links.

@since 1.26.2
*/
.post-navigation-links {
  font-size: 1.5em; }

/*
Accordions overrides.

@since 0.1.0
*/
.pricing-table {
  font-size: 1em;
  color: #0033a0; }
  .pricing-table tbody {
    background-color: transparent;
    border: none; }
  .pricing-table tr {
    vertical-align: top; }
  .pricing-table td {
    line-height: normal;
    font-size: inherit;
    padding: 0;
    color: inherit; }
  .pricing-table .pricing-table-price {
    text-align: right;
    font-size: 1.5em;
    font-weight: bold;
    width: 1px;
    padding-right: 15px; }
  .pricing-table .pricing-table-text {
    color: #782788; }

/*
Custom QIB styling.

@since 0.1.0
*/
.dzs-qib-container > .columns {
  position: relative; }

#dzs-qib .dzoo-qib-todays-hours {
  background: #0033a0; }
  #dzs-qib .dzoo-qib-todays-hours .dzoo-qib-times {
    font-size: 1.5em; }

#dzs-qib .dzoo-qib-tickets {
  background: #7E77B6;
  background: linear-gradient(to bottom, #7E77B6 0%, #5D5BA6 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#258dc8', endColorstr='#2239b7',GradientType=0 ); }
  #dzs-qib .dzoo-qib-tickets .section-icon {
    font-weight: bold; }
  #dzs-qib .dzoo-qib-tickets .tickets {
    font-weight: normal;
    width: 100%;
    margin: 0;
    background: transparent;
    border: none; }
    #dzs-qib .dzoo-qib-tickets .tickets tr {
      background: transparent; }
      #dzs-qib .dzoo-qib-tickets .tickets tr td {
        color: inherit;
        line-height: inherit;
        padding: 0;
        font-size: inherit; }
    #dzs-qib .dzoo-qib-tickets .tickets .price {
      font-weight: bold; }

#dzs-qib .qib-section.dzoo-qib-today-at-the-zoo {
  background: #91AFCE;
  background: linear-gradient(to bottom, #91AFCE 0%, #75A0CD 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#258dc8', endColorstr='#2239b7',GradientType=0 );
  color: #0033a0; }
  #dzs-qib .qib-section.dzoo-qib-today-at-the-zoo h3.qib-section-title, #dzs-qib .qib-section.dzoo-qib-today-at-the-zoo body.single-event .event-faq .qib-section-title.faq-title, body.single-event .event-faq #dzs-qib .qib-section.dzoo-qib-today-at-the-zoo .qib-section-title.faq-title {
    color: inherit; }

#dzs-qib .qib-section.dzoo-qib-upcoming-events {
  background: #75A0CD;
  background: linear-gradient(to bottom, #75A0CD 0%, #5790C8 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#258dc8', endColorstr='#2239b7',GradientType=0 );
  color: #0033a0; }
  #dzs-qib .qib-section.dzoo-qib-upcoming-events h3.qib-section-title, #dzs-qib .qib-section.dzoo-qib-upcoming-events body.single-event .event-faq .qib-section-title.faq-title, body.single-event .event-faq #dzs-qib .qib-section.dzoo-qib-upcoming-events .qib-section-title.faq-title {
    color: inherit; }

/*
Shuffle grid.

@since 0.1.0
*/
.shuffle-loading {
  font-size: 3em;
  text-align: center; }

.shuffle-grid {
  height: auto !important; }

.shuffle-items .shuffle-item {
  margin-bottom: 0 !important;
  padding-right: 0.71429rem;
  padding-left: 0.71429rem;
  padding-bottom: 1.4285714286rem; }
  @media screen and (max-width: 39.9375em) {
    .shuffle-items .shuffle-item {
      padding-left: 0;
      padding-right: 0; } }
  .shuffle-items .shuffle-item:hover .shuffle-title {
    background: #782788; }
  .shuffle-items .shuffle-item:hover > a {
    border-color: #782788; }
  .shuffle-items .shuffle-item > a {
    border: 3px solid #3b8ede; }
  .shuffle-items .shuffle-item .shuffle-image img {
    width: 100%;
    height: auto; }
  .shuffle-items .shuffle-item .shuffle-link {
    display: block;
    text-decoration: none !important; }
  .shuffle-items .shuffle-item .shuffle-title {
    display: block;
    background: #3b8ede;
    color: #fff;
    text-align: center;
    line-height: 1.2em;
    font-size: 1.5em;
    letter-spacing: 0.06em;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
    margin: 0; }

.shuffle-filter .past-events a {
  color: #888; }

.shuffle-filter a {
  display: block; }
  .shuffle-filter a .shuffle-grid-deselect-icon {
    visibility: hidden;
    opacity: 0;
    float: right;
    background: #782788;
    color: #fff;
    -webkit-transform: rotate(0deg);
        -ms-transform: rotate(0deg);
            transform: rotate(0deg);
    transition: opacity 300ms, visibility 300ms, -webkit-transform 300ms;
    transition: opacity 300ms, transform 300ms, visibility 300ms;
    transition: opacity 300ms, transform 300ms, visibility 300ms, -webkit-transform 300ms;
    border-radius: 50%;
    line-height: 12px;
    font-size: 15px;
    padding: 3px; }
  .shuffle-filter a.active .shuffle-grid-deselect-icon {
    visibility: visible;
    opacity: 1;
    -webkit-transform: rotate(360deg);
        -ms-transform: rotate(360deg);
            transform: rotate(360deg); }

.shuffle-filter-secondary {
  position: relative;
  text-transform: uppercase;
  font-size: 1.3em;
  margin: 1em 0 !important; }
  .shuffle-filter-secondary a .shuffle-grid-deselect-icon {
    display: none; }
  .shuffle-filter-secondary .columns:nth-child(1) {
    color: #B3C8E7;
    font-weight: bold;
    padding-right: 1em; }
  .shuffle-filter-secondary .columns:nth-child(2) {
    padding-left: 1em;
    border-left: 3px solid #B3C8E7; }
    .shuffle-filter-secondary .columns:nth-child(2) .past-events a {
      color: #888; }
    .shuffle-filter-secondary .columns:nth-child(2) .shuffle-filter-button {
      color: #3b8ede; }
      .shuffle-filter-secondary .columns:nth-child(2) .shuffle-filter-button.active {
        color: #782788;
        font-weight: bold; }

.site-sidebar .shuffle-filter-button.active {
  color: #782788;
  font-weight: bold; }

.site-sidebar .shuffle-filter .past-events a {
  color: #888; }

html.csstransforms .shuffle-title .shuffle-title-text {
  display: block;
  position: relative;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%); }

@-moz-document url-prefix() {
  html.csstransforms .shuffle-title .shuffle-title-text {
    top: inherit;
    transform: none; } }

/*
Site search.

@since 1.29.16
*/
#site-search {
  position: fixed;
  display: none;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  padding: 0 1em;
  font-size: 1.5em;
  background-color: rgba(120, 39, 136, 0.9);
  color: #fff;
  z-index: 1000000; }
  #site-search .close-button {
    position: absolute;
    color: #8a8a8a;
    cursor: pointer;
    color: #fff;
    background: transparent;
    transition: -webkit-transform 300ms;
    transition: transform 300ms;
    transition: transform 300ms, -webkit-transform 300ms; }
    [data-whatinput='mouse'] #site-search .close-button {
      outline: 0; }
    #site-search .close-button:hover, #site-search .close-button:focus {
      color: #0a0a0a; }
    #site-search .close-button:hover {
      -webkit-transform: scale(1.2);
          -ms-transform: scale(1.2);
              transform: scale(1.2); }
  #site-search .search-form {
    position: relative;
    top: 50%;
    text-align: center;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%); }
    #site-search .search-form .search-field-label {
      color: inherit;
      font-size: inherit;
      font-weight: normal;
      margin-bottom: 0.5em; }
    #site-search .search-form .search-submitting {
      margin-bottom: 0.5em; }
    #site-search .search-form input[type="search"], #site-search .search-form input[type="text"] {
      background: transparent;
      border: none;
      outline: none;
      margin: 0;
      padding: 0;
      box-shadow: none;
      color: inherit;
      font-weight: bold;
      font-size: 1.5em;
      text-align: center; }

/*
@since {{VERSION
*/
.sub-page-accordion .accordion-navigation {
  position: relative; }
  .sub-page-accordion .accordion-navigation .show-alerts-button {
    position: absolute;
    top: 2.5em;
    left: 1em;
    z-index: 100;
    -webkit-transform: translateY(-40%);
        -ms-transform: translateY(-40%);
            transform: translateY(-40%); }
    .sub-page-accordion .accordion-navigation .show-alerts-button .fa {
      color: #fff;
      background: #f04124;
      font-size: 1.5em;
      width: 1.1em;
      height: 1.1em;
      line-height: 1.1em;
      text-align: center;
      border-radius: 50%;
      box-shadow: 2px 2px 20px rgba(0, 0, 0, 0.4);
      cursor: pointer;
      transition: background-color 150ms; }
      .sub-page-accordion .accordion-navigation .show-alerts-button .fa:hover {
        background: #f36a54; }

.sub-page-accordion .content {
  -ms-overflow-style: none;
  overflow: auto; }

/*
To Top button

@since 1.12.0
*/
@-webkit-keyframes bounceOutRight {
  0% {
    opacity: 1;
    visibility: visible;
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  20% {
    opacity: 1;
    visibility: visible;
    -webkit-transform: translateX(-20px);
            transform: translateX(-20px); }
  100% {
    opacity: 0;
    visibility: hidden;
    -webkit-transform: translateX(2000px);
            transform: translateX(2000px); } }
@keyframes bounceOutRight {
  0% {
    opacity: 1;
    visibility: visible;
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  20% {
    opacity: 1;
    visibility: visible;
    -webkit-transform: translateX(-20px);
            transform: translateX(-20px); }
  100% {
    opacity: 0;
    visibility: hidden;
    -webkit-transform: translateX(2000px);
            transform: translateX(2000px); } }

@-webkit-keyframes bounceInRight {
  0% {
    opacity: 0;
    visibility: hidden;
    -webkit-transform: translateX(2000px);
            transform: translateX(2000px); }
  60% {
    opacity: 1;
    visibility: visible;
    -webkit-transform: translateX(-30px);
            transform: translateX(-30px); }
  80% {
    -webkit-transform: translateX(10px);
            transform: translateX(10px); }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

@keyframes bounceInRight {
  0% {
    opacity: 0;
    visibility: hidden;
    -webkit-transform: translateX(2000px);
            transform: translateX(2000px); }
  60% {
    opacity: 1;
    visibility: visible;
    -webkit-transform: translateX(-30px);
            transform: translateX(-30px); }
  80% {
    -webkit-transform: translateX(10px);
            transform: translateX(10px); }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

#to-top {
  display: table;
  visibility: hidden;
  opacity: 0;
  position: fixed;
  right: 2%;
  bottom: 5%;
  background: #782788;
  color: #fff;
  text-align: center;
  width: 45px;
  height: 45px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 1.5em;
  box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.3); }
  #to-top .container {
    display: table-cell;
    vertical-align: middle; }
  #to-top:hover {
    background: #9b32b0; }
  #to-top.loaded {
    -webkit-animation: bounceOutRight 1s;
            animation: bounceOutRight 1s; }
  #to-top.in {
    visibility: visible;
    opacity: 1;
    -webkit-animation: bounceInRight 1s;
            animation: bounceInRight 1s; }

.bottom-sticky-wrapper {
  height: 0 !important; }

.sticky {
  z-index: 9001 !important; }
  .sticky.bottom {
    top: auto !important;
    bottom: 0; }
    .sticky.bottom.is-stuck {
      top: auto !important;
      bottom: 0; }

/*
Attraction archive partial.

@since 0.1.0
*/
.vendor-sc .vendor-title {
  margin: 0; }

.vendor-sc .vendor-sub-title {
  font-size: 1.2em;
  margin-top: 0;
  font-weight: bold;
  color: #3b8ede; }

.vendor-sc .vendor-content {
  padding-left: 1em !important; }

/*
Attraction archive partial.

@since 0.1.0
*/
.attraction-sc .attraction-title {
  margin: 0; }

.attraction-sc .attraction-sub-title {
  font-size: 1.2em;
  margin-top: 0;
  font-weight: bold;
  color: #3b8ede; }

.attraction-sc .attraction-content {
  padding-left: 1em !important; }

/*
Textbox shortcode.

@since 1.21.4
*/
.dzs-sc-textbox {
  padding: 1em;
  margin-bottom: 1rem; }
  .dzs-sc-textbox.color-primary {
    background: #782788;
    color: #fff; }
  .dzs-sc-textbox.color-secondary {
    background: #0033a0;
    color: #fff; }
  .dzs-sc-textbox *:last-child {
    margin-bottom: 0; }

/*
Social shortcodes.

@since 0.1.0
*/
[class*="social-icon-"] {
  display: inline-block;
  padding: 0;
  text-align: center;
  color: #fff;
  width: 1.7em;
  height: 1.7em;
  line-height: 1.7em;
  margin-left: 0.1em;
  margin-right: 0.1em; }
  [class*="social-icon-"][class*="small"] {
    font-size: 1.1em; }
  [class*="social-icon-"][class*="medium"] {
    font-size: 1.6em; }
  [class*="social-icon-"][class*="large"] {
    font-size: 3em; }
  [class*="social-icon-"][class*="facebook"] {
    background: #3B579D; }
  [class*="social-icon-"][class*="twitter"] {
    background: #2AA9E0; }
  [class*="social-icon-"][class*="googleplus"] {
    background: #DC4A38; }
  [class*="social-icon-"][class*="youtube"] {
    background: #DD2C28; }

.accordion .dzs-sc-side-image .content {
  -ms-overflow-style: none;
  overflow: auto; }

/* Date Picker Default Styles from RBM FH */
.ui-datepicker {
  padding: 0;
  margin: 0;
  border-radius: 0;
  background-color: #fff;
  border: 1px solid #dfdfdf;
  border-top: none;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.075);
  min-width: 17em;
  width: auto !important; }

.ui-datepicker * {
  padding: 0;
  font-family: "Open Sans", sans-serif;
  border-radius: 0; }

.ui-datepicker table {
  font-size: 13px;
  margin: 0;
  border: none;
  border-collapse: collapse; }

.ui-datepicker .ui-widget-header,
.ui-datepicker .ui-datepicker-header {
  background-image: none;
  border: none;
  color: #fff;
  font-weight: normal; }

.ui-datepicker .ui-datepicker-header .ui-state-hover {
  background: transparent;
  border-color: transparent;
  cursor: pointer; }

.ui-datepicker .ui-datepicker-title {
  margin: 0;
  padding: 10px 0;
  color: #fff;
  font-size: 14px;
  line-height: 14px;
  text-align: center; }

.ui-datepicker .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-next {
  position: relative;
  top: 0;
  height: 34px;
  width: 34px; }

.ui-datepicker .ui-state-hover.ui-datepicker-prev,
.ui-datepicker .ui-state-hover.ui-datepicker-next {
  border: none; }

.ui-datepicker .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-prev-hover {
  left: 0; }

.ui-datepicker .ui-datepicker-next,
.ui-datepicker .ui-datepicker-next-hover {
  right: 0; }

.ui-datepicker .ui-datepicker-next span,
.ui-datepicker .ui-datepicker-prev span {
  display: none !important; }

.ui-datepicker .ui-datepicker-prev {
  float: left; }

.ui-datepicker .ui-datepicker-next {
  float: right; }

.ui-datepicker .ui-datepicker-prev:before,
.ui-datepicker .ui-datepicker-next:before {
  font: normal 20px/34px 'dashicons';
  padding-left: 7px;
  color: #fff;
  speak: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 34px;
  height: 34px; }

.ui-datepicker .ui-datepicker-prev:before {
  content: '\f341'; }

.ui-datepicker .ui-datepicker-next:before {
  content: '\f345'; }

.ui-datepicker .ui-datepicker-prev-hover:before,
.ui-datepicker .ui-datepicker-next-hover:before {
  opacity: 0.7; }

.ui-datepicker select.ui-datepicker-month,
.ui-datepicker select.ui-datepicker-year {
  width: 33%; }

.ui-datepicker thead {
  color: #fff;
  font-weight: 600; }

.ui-datepicker th {
  padding: 10px; }

.ui-datepicker td {
  padding: 0;
  border: 1px solid #f4f4f4; }

.ui-datepicker td.ui-datepicker-other-month {
  border: transparent; }

.ui-datepicker td .ui-state-default {
  background: transparent;
  border: none;
  text-align: center;
  text-decoration: none;
  width: auto;
  display: block;
  padding: 5px 10px;
  font-weight: normal;
  color: #444; }

.ui-datepicker td.ui-state-disabled .ui-state-default {
  opacity: 0.5; }

.ui-datepicker .ui-widget-header,
.ui-datepicker .ui-datepicker-header {
  background: #52accc; }

.ui-datepicker thead {
  background: #096484; }

.ui-datepicker td.ui-datepicker-week-end {
  background-color: #f4f4f4;
  border: 1px solid #f4f4f4; }

.ui-datepicker td.ui-datepicker-today {
  background-color: #4796b3; }

.ui-datepicker td.ui-datepicker-current-day {
  background: #4796b3;
  color: #fff; }

.ui-datepicker td a.ui-state-default {
  color: inherit; }

.ui-datepicker td a.ui-state-hover {
  background: #096484;
  color: #fff; }

.ui-datepicker .ui-widget-header,
.ui-datepicker .ui-datepicker-header {
  color: #fff; }

.ui-datepicker thead th {
  color: #fff; }

.dzs-field-trip-datepicker > .ui-datepicker-trigger {
  display: none !important; }

/*
Styles the admin datepicker from RBM field helpers.

@since 1.26.2
*/
.ui-datepicker .ui-widget-header,
.ui-datepicker .ui-datepicker-header {
  background: #0033a0; }

.ui-datepicker thead {
  background: #782788; }

.ui-datepicker td.ui-datepicker-today {
  background-color: #7e66ad; }

.ui-datepicker td.ui-datepicker-current-day {
  background: #7e66ad; }

.ui-datepicker td a.ui-state-hover {
  background: #782788; }

/*
This provides overrides for some WP stuff (not much at all).

@since 0.1.0
*/
#wpadminbar {
  position: fixed !important; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jc3MiLCJfc2V0dGluZ3Mtb3ZlcnJpZGVzLnNjc3MiLCJfZnVuY3Rpb25zLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb24uc2NzcyIsIl9pY29ucy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fbm9ybWFsaXplLW1peGluLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplL192YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUvX3ZlcnRpY2FsLXJoeXRobS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCJfc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19jbGFzc2VzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Jvdy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191bml0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2d1dHRlci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19zaXplLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2NvbHVtbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19sYXlvdXQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2hlbHBlcnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX3ByaW50LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL190ZXh0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19jaGVja2JveC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fbGFiZWwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2hlbHAtdGV4dC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faW5wdXQtZ3JvdXAuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2ZpZWxkc2V0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19zZWxlY3Quc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2Vycm9yLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYmxlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2NvbG9yLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Nsb3NlLWJ1dHRvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi1tZW51LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUuc2NzcyIsIl9mb3VuZGF0aW9uLWV4dGVuZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fdHJhbnNpdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvX2NsYXNzZXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL19zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fa2V5ZnJhbWUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19zbGlkZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX2ZhZGUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL2VmZmVjdHMvX2hpbmdlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9faGluZ2Uuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL196b29tLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fc3Bpbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fYW5pbWF0aW9uLnNjc3MiLCIuLi92ZW5kb3IvY3NzL19ub3JtYWxpemUuc2NzcyIsIi4uL3ZlbmRvci9jc3MvX215cmlhZC1wcm8uc2NzcyIsIl9iYXNlLnNjc3MiLCJzdGF0aWMvX2hlYWRlci5zY3NzIiwic3RhdGljL19ib2R5LnNjc3MiLCJzdGF0aWMvX3NpZGViYXIuc2NzcyIsInN0YXRpYy9fZm9vdGVyLnNjc3MiLCJzdGF0aWMvX3NhdGlzZmktY2hhdC5zY3NzIiwidGVtcGxhdGVzL19wcmVzcy1yZWxlYXNlLnNjc3MiLCJ0ZW1wbGF0ZXMvX3ZlbmRvci5zY3NzIiwidGVtcGxhdGVzL19zaW5nbGUtcG9zdC5zY3NzIiwidGVtcGxhdGVzL19zaW5nbGUtYW5pbWFsLnNjc3MiLCJ0ZW1wbGF0ZXMvX3NpbmdsZS1hdHRyYWN0aW9uLnNjc3MiLCJ0ZW1wbGF0ZXMvX3NpbmdsZS1ldmVudC5zY3NzIiwidGVtcGxhdGVzL19zaW5nbGUtcmVudGFsLnNjc3MiLCJ0ZW1wbGF0ZXMvX3RlbXBsYXRlLXB1cmNoYXNpbmctY29udHJhY3RzLnNjc3MiLCJ0ZW1wbGF0ZXMvX3RlbXBsYXRlLXRsbC5zY3NzIiwidGVtcGxhdGVzL190ZW1wbGF0ZS13ZWJzaXRlLW1hcC5zY3NzIiwidGVtcGxhdGVzL190ZW1wbGF0ZS1kenR2LnNjc3MiLCJ0ZW1wbGF0ZXMvX3RlbXBsYXRlLXNodWZmbGUtZ3JpZC5zY3NzIiwidGVtcGxhdGVzL190b2RheS1hdC10aGUtem9vLnNjc3MiLCJ0ZW1wbGF0ZXMvX3ByaWNlcy5zY3NzIiwidGVtcGxhdGVzL190ZW1wbGF0ZS13aWxkLWxpZ2h0cy5zY3NzIiwidGVtcGxhdGVzL19oYWJpdGF0cy5zY3NzIiwidGVtcGxhdGVzL19jYW1wYWlnbi5zY3NzIiwidGVtcGxhdGVzL19hcmNoaXZlLWV2ZW50LnNjc3MiLCJ0ZW1wbGF0ZXMvX2FyY2hpdmUtYW5pbWFsLnNjc3MiLCJ0ZW1wbGF0ZXMvX2hvbWUuc2NzcyIsInRlbXBsYXRlcy9fc2VhcmNoLnNjc3MiLCJ0ZW1wbGF0ZXMvX3BhZ2Uuc2NzcyIsInRlbXBsYXRlcy9fbWFwLnNjc3MiLCJ0ZW1wbGF0ZXMvX2NvbW1vbi5zY3NzIiwidGVtcGxhdGVzL19hcmNoaXZlLWxlc3Nvbi5zY3NzIiwicGFydGlhbHMvX2FjY29yZGlvbnMuc2NzcyIsInBhcnRpYWxzL19idXR0b25zLnNjc3MiLCJwYXJ0aWFscy9fYWxlcnQuc2NzcyIsInBhcnRpYWxzL19nYWxsZXJ5LnNjc3MiLCJwYXJ0aWFscy9fZ29vZ2xlLXRyYW5zbGF0ZS5zY3NzIiwicGFydGlhbHMvX2dyYXZpdHktZm9ybXMuc2NzcyIsInBhcnRpYWxzL19sYXp5LWxvYWQuc2NzcyIsInBhcnRpYWxzL19wYWdpbmF0aW9uLnNjc3MiLCJwYXJ0aWFscy9fcG9zdC1uYXZpZ2F0aW9uLWxpbmtzLnNjc3MiLCJwYXJ0aWFscy9fcHJpY2luZy10YWJsZS5zY3NzIiwicGFydGlhbHMvX3FpYi1jdXN0b21pemF0aW9ucy5zY3NzIiwicGFydGlhbHMvX3NodWZmbGUtZ3JpZC5zY3NzIiwicGFydGlhbHMvX3NpdGUtc2VhcmNoLnNjc3MiLCJwYXJ0aWFscy9fc3ViLXBhZ2UtYWNjb3JkaW9ucy5zY3NzIiwicGFydGlhbHMvX3RvLXRvcC5zY3NzIiwicGFydGlhbHMvX3N0aWNreS5zY3NzIiwic2hvcnRjb2Rlcy9fYXJjaGl2ZS12ZW5kb3Iuc2NzcyIsInNob3J0Y29kZXMvX2FyY2hpdmUtYXR0cmFjdGlvbi5zY3NzIiwic2hvcnRjb2Rlcy9fdGV4dGJveC5zY3NzIiwic2hvcnRjb2Rlcy9fc29jaWFsLnNjc3MiLCJzaG9ydGNvZGVzL19zaWRlLWltYWdlLnNjc3MiLCJfZGF0ZXBpY2tlci5zY3NzIiwiYWRtaW4vX2RhdGVwaWNrZXIuc2NzcyIsIl93cC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQ0FqQjs7Ozs7RUFLRTtBQ0xGOzs7O0VBSUU7QUNKRjs7Ozs7R0FLRztBQ0xIO0VBQ0UseUJBQXdCO0VBQ3hCLG9DQUFtQztFQUNuQyxpT0FHc0Q7RUFDdEQsb0JBQW1CO0VBQ25CLG1CQUFrQixFQUFBOztBQUVwQixpR0FBaUc7QUFDakcsNEZBQTRGO0FBQzVGOzs7Ozs7O0VBT0U7QUpnQkY7RUliRSx5QkFBd0I7RUFDeEIsZUFBYztFQUNkLFlBQVc7RUFDWCxtQkFBa0I7RUFDbEIsb0JBQW1CO0VBQ25CLHFCQUFvQjtFQUNwQixxQkFBb0I7RUFDcEIsZUFBYztFQUVkLHVDQUF1QztFQUN2QyxvQ0FBbUM7RUFDbkMsbUNBQWtDLEVBQ25DOztBQUVEO0VBQXdCLGlCQUFnQixFQUFJOztBQUFBLFNBQUE7QUFDNUM7RUFBd0IsaUJBQWdCLEVBQUk7O0FBQUEsU0FBQTtBQUM1QztFQUF5QixpQkFBZ0IsRUFBSTs7QUFBQSxTQUFBO0FBQzdDO0VBQStC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QUlDO0VNN0ZKLG1CQUFrQjtFQUNsQixVQUhtRCxFTmlHOUM7O0FBRUQ7RU1qR0osbUJBQWtCO0VBQ2xCLFdBSG1ELEVOcUc5Qzs7QUFNSDtFTTlFSix1QkRicUQsRUw2RmhEOztBQXBCRDtFSXhGSixpQkNlcUQsRUwyRWhEOztBQUlDO0VNN0ZKLG1CQUFrQjtFQUNsQixnQkFIbUQsRU5pRzlDOztBQUVEO0VNakdKLG1CQUFrQjtFQUNsQixpQkFIbUQsRU5xRzlDOztBQU1IO0VNOUVKLGlCRGJxRCxFTDZGaEQ7O0FBcEJEO0VJeEZKLGlCQ2VxRCxFTDJFaEQ7O0FBSUM7RU03RkosbUJBQWtCO0VBQ2xCLGdCQUhtRCxFTmlHOUM7O0FBRUQ7RU1qR0osbUJBQWtCO0VBQ2xCLGlCQUhtRCxFTnFHOUM7O0FBTUg7RU05RUosdUJEYnFELEVMNkZoRDs7QUFwQkQ7RUl4RkosV0NlcUQsRUwyRWhEOztBQUlDO0VNN0ZKLG1CQUFrQjtFQUNsQixVQUhtRCxFTmlHOUM7O0FBRUQ7RU1qR0osbUJBQWtCO0VBQ2xCLFdBSG1ELEVOcUc5Qzs7QUFNSDtFTTlFSix1QkRicUQsRUw2RmhEOztBQXBCRDtFSXhGSixpQkNlcUQsRUwyRWhEOztBQUlDO0VNN0ZKLG1CQUFrQjtFQUNsQixnQkFIbUQsRU5pRzlDOztBQUVEO0VNakdKLG1CQUFrQjtFQUNsQixpQkFIbUQsRU5xRzlDOztBQU1IO0VNOUVKLGlCRGJxRCxFTDZGaEQ7O0FBcEJEO0VJeEZKLGlCQ2VxRCxFTDJFaEQ7O0FBSUM7RU03RkosbUJBQWtCO0VBQ2xCLGdCQUhtRCxFTmlHOUM7O0FBRUQ7RU1qR0osbUJBQWtCO0VBQ2xCLGlCQUhtRCxFTnFHOUM7O0FBTUg7RU05RUosdUJEYnFELEVMNkZoRDs7QUFwQkQ7RUl4RkosWUNlcUQsRUwyRWhEOztBQWdCRDtFTTlFSix1QkRicUQsRUw2RmhEOztBQUtEO0VPekdGLFlaa0d1RDtFWWpHdkQsWUFBdUIsRUFpQ3hCO0VQdUVHO0lPakZBLFlBQVcsRUFDWjtFUGdGQztJTzdFQSxZQUFXLEVBQ1o7RVA0RUM7SU96RUEsWVprRXFELEVZakV0RDs7QVB3RUM7RU96R0YsWVprR3VEO0VZakd2RCxXQUF1QixFQWlDeEI7RVB1RUc7SU9qRkEsWUFBVyxFQUNaO0VQZ0ZDO0lPN0VBLFlBQVcsRUFDWjtFUDRFQztJT3pFQSxZWmtFcUQsRVlqRXREOztBUHdFQztFT3pHRixZWmtHdUQ7RVlqR3ZELGlCQUF1QixFQWlDeEI7RVB1RUc7SU9qRkEsWUFBVyxFQUNaO0VQZ0ZDO0lPN0VBLFlBQVcsRUFDWjtFUDRFQztJT3pFQSxZWmtFcUQsRVlqRXREOztBUHdFQztFT3pHRixZWmtHdUQ7RVlqR3ZELFdBQXVCLEVBaUN4QjtFUHVFRztJT2pGQSxZQUFXLEVBQ1o7RVBnRkM7SU83RUEsWUFBVyxFQUNaO0VQNEVDO0lPekVBLFlaa0VxRCxFWWpFdEQ7O0FQd0VDO0VPekdGLFlaa0d1RDtFWWpHdkQsV0FBdUIsRUFpQ3hCO0VQdUVHO0lPakZBLFlBQVcsRUFDWjtFUGdGQztJTzdFQSxZQUFXLEVBQ1o7RVA0RUM7SU96RUEsWVprRXFELEVZakV0RDs7QVB3RUM7RU96R0YsWVprR3VEO0VZakd2RCxpQkFBdUIsRUFpQ3hCO0VQdUVHO0lPakZBLFlBQVcsRUFDWjtFUGdGQztJTzdFQSxZQUFXLEVBQ1o7RVA0RUM7SU96RUEsWVprRXFELEVZakV0RDs7QVB3RUM7RU96R0YsWVprR3VEO0VZakd2RCxpQkFBdUIsRUFpQ3hCO0VQdUVHO0lPakZBLFlBQVcsRUFDWjtFUGdGQztJTzdFQSxZQUFXLEVBQ1o7RVA0RUM7SU96RUEsWVprRXFELEVZakV0RDs7QVB3RUM7RU96R0YsWVprR3VEO0VZakd2RCxhQUF1QixFQWlDeEI7RVB1RUc7SU9qRkEsWUFBVyxFQUNaO0VQZ0ZDO0lPN0VBLFlBQVcsRUFDWjtFUDRFQztJT3pFQSxZWmtFcUQsRVlqRXREOztBUDhFRDtFRy9HQSxpQkR1RVM7RUN0RVQsZ0JEc0VTLEVGeUN1Qzs7QUFEaEQ7RUFJSSxnQkFBZTtFQUNmLGVBQWMsRUFDZjs7QUFHSDtFQUNFLGdCQUFlO0VBQ2YsZUFBYyxFQUNmOztBQUVEO0VHN0hBLDBCQUZxQztFQUdyQyx5QkFIcUMsRUhnSW9COztBQUl6RDtFTWpJQSxtQkFBa0I7RUFDbEIsa0JBQWlCLEVOa0loQjtFTXZJRDtJQUNFLFlBQVc7SUFDWCxZQUFXLEVBQ1o7O0FOdUlEOzs7RU01SEYsaUJBQWdCO0VBQ2hCLFlYc0Z5RDtFV3JGekQsZ0JBQWU7RUFDZixlQUFjLEVONkhYOztBREVDO0VDN0RBO0lJeEZKLGdCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZUFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLGdCQUhtRCxFTnFHOUM7RUFNSDtJTTlFSixnQkRoQmdDLEVMZ0czQjtFQXBCRDtJSXhGSixpQkNlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLGdCQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsaUJBSG1ELEVOcUc5QztFQU1IO0lNOUVKLHNCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosV0NlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLFVBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixXQUhtRCxFTnFHOUM7RUFNSDtJTTlFSix1QkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLGlCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosaUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixpQkNlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLGdCQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsaUJBSG1ELEVOcUc5QztFQU1IO0lNOUVKLHVCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosV0NlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLFVBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixXQUhtRCxFTnFHOUM7RUFNSDtJTTlFSix1QkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLGlCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosaUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixpQkNlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLGdCQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsaUJBSG1ELEVOcUc5QztFQU1IO0lNOUVKLHVCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosV0NlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLFVBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixXQUhtRCxFTnFHOUM7RUFNSDtJTTlFSix1QkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLGlCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosaUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixpQkNlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLGdCQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsaUJBSG1ELEVOcUc5QztFQU1IO0lNOUVKLHVCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosWUNlcUQsRUwyRWhEO0VBZ0JEO0lNOUVKLHVCRGJxRCxFTDZGaEQ7RUFLRDtJT3pHRixZWmtHdUQ7SVlqR3ZELFlBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlaa0VxRCxFWWpFdEQ7RVB3RUM7SU96R0YsWVprR3VEO0lZakd2RCxXQUF1QixFQWlDeEI7SVB1RUc7TU9qRkEsWUFBVyxFQUNaO0lQZ0ZDO01PN0VBLFlBQVcsRUFDWjtJUDRFQztNT3pFQSxZWmtFcUQsRVlqRXREO0VQd0VDO0lPekdGLFlaa0d1RDtJWWpHdkQsaUJBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlaa0VxRCxFWWpFdEQ7RVB3RUM7SU96R0YsWVprR3VEO0lZakd2RCxXQUF1QixFQWlDeEI7SVB1RUc7TU9qRkEsWUFBVyxFQUNaO0lQZ0ZDO01PN0VBLFlBQVcsRUFDWjtJUDRFQztNT3pFQSxZWmtFcUQsRVlqRXREO0VQd0VDO0lPekdGLFlaa0d1RDtJWWpHdkQsV0FBdUIsRUFpQ3hCO0lQdUVHO01PakZBLFlBQVcsRUFDWjtJUGdGQztNTzdFQSxZQUFXLEVBQ1o7SVA0RUM7TU96RUEsWVprRXFELEVZakV0RDtFUHdFQztJT3pHRixZWmtHdUQ7SVlqR3ZELGlCQUF1QixFQWlDeEI7SVB1RUc7TU9qRkEsWUFBVyxFQUNaO0lQZ0ZDO01PN0VBLFlBQVcsRUFDWjtJUDRFQztNT3pFQSxZWmtFcUQsRVlqRXREO0VQd0VDO0lPekdGLFlaa0d1RDtJWWpHdkQsaUJBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlaa0VxRCxFWWpFdEQ7RVB3RUM7SU96R0YsWVprR3VEO0lZakd2RCxhQUF1QixFQWlDeEI7SVB1RUc7TU9qRkEsWUFBVyxFQUNaO0lQZ0ZDO01PN0VBLFlBQVcsRUFDWjtJUDRFQztNT3pFQSxZWmtFcUQsRVlqRXREO0VQOEVEO0lHL0dBLGlCRHVFUztJQ3RFVCxnQkRzRVMsRUZ5Q3VDO0VBRGhEO0lBSUksZ0JBQWU7SUFDZixlQUFjLEVBQ2Y7RUFHSDtJQUNFLGdCQUFlO0lBQ2YsZUFBYyxFQUNmO0VBRUQ7SUc3SEEsMEJBRnFDO0lBR3JDLHlCQUhxQyxFSGdJb0I7RUFJekQ7SU1qSUEsbUJBQWtCO0lBQ2xCLGtCQUFpQixFTmtJaEI7SU12SUQ7TUFDRSxZQUFXO01BQ1gsWUFBVyxFQUNaO0VOdUlEOzs7SU01SEYsaUJBQWdCO0lBQ2hCLFlYc0Z5RDtJV3JGekQsZ0JBQWU7SUFDZixlQUFjLEVONkhYLEVBQUE7O0FET0M7RUNsRUE7SUl4RkosZ0JDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixlQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOcUc5QztFQU1IO0lNOUVKLGdCRGhCZ0MsRUxnRzNCO0VBcEJEO0lJeEZKLGlCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosc0JEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixXQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsVUFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLFdBSG1ELEVOcUc5QztFQU1IO0lNOUVKLHVCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosaUJDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFTnFHOUM7RUFNSDtJTTlFSixpQkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLGlCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosdUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixXQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsVUFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLFdBSG1ELEVOcUc5QztFQU1IO0lNOUVKLHVCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosaUJDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFTnFHOUM7RUFNSDtJTTlFSixpQkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLGlCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosdUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixXQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsVUFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLFdBSG1ELEVOcUc5QztFQU1IO0lNOUVKLHVCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosaUJDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFTnFHOUM7RUFNSDtJTTlFSixpQkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLGlCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosdUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixZQ2VxRCxFTDJFaEQ7RUFnQkQ7SU05RUosdUJEYnFELEVMNkZoRDtFQUtEO0lPekdGLFlaa0d1RDtJWWpHdkQsWUFBdUIsRUFpQ3hCO0lQdUVHO01PakZBLFlBQVcsRUFDWjtJUGdGQztNTzdFQSxZQUFXLEVBQ1o7SVA0RUM7TU96RUEsWVprRXFELEVZakV0RDtFUHdFQztJT3pHRixZWmtHdUQ7SVlqR3ZELFdBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlaa0VxRCxFWWpFdEQ7RVB3RUM7SU96R0YsWVprR3VEO0lZakd2RCxpQkFBdUIsRUFpQ3hCO0lQdUVHO01PakZBLFlBQVcsRUFDWjtJUGdGQztNTzdFQSxZQUFXLEVBQ1o7SVA0RUM7TU96RUEsWVprRXFELEVZakV0RDtFUHdFQztJT3pHRixZWmtHdUQ7SVlqR3ZELFdBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlaa0VxRCxFWWpFdEQ7RVB3RUM7SU96R0YsWVprR3VEO0lZakd2RCxXQUF1QixFQWlDeEI7SVB1RUc7TU9qRkEsWUFBVyxFQUNaO0lQZ0ZDO01PN0VBLFlBQVcsRUFDWjtJUDRFQztNT3pFQSxZWmtFcUQsRVlqRXREO0VQd0VDO0lPekdGLFlaa0d1RDtJWWpHdkQsaUJBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlaa0VxRCxFWWpFdEQ7RVB3RUM7SU96R0YsWVprR3VEO0lZakd2RCxpQkFBdUIsRUFpQ3hCO0lQdUVHO01PakZBLFlBQVcsRUFDWjtJUGdGQztNTzdFQSxZQUFXLEVBQ1o7SVA0RUM7TU96RUEsWVprRXFELEVZakV0RDtFUHdFQztJT3pHRixZWmtHdUQ7SVlqR3ZELGFBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlaa0VxRCxFWWpFdEQ7RVA4RUQ7SUcvR0EsaUJEdUVTO0lDdEVULGdCRHNFUyxFRnlDdUM7RUFEaEQ7SUFJSSxnQkFBZTtJQUNmLGVBQWMsRUFDZjtFQUdIO0lBQ0UsZ0JBQWU7SUFDZixlQUFjLEVBQ2Y7RUFFRDtJRzdIQSwwQkFGcUM7SUFHckMseUJBSHFDLEVIZ0lvQjtFQUl6RDtJTWpJQSxtQkFBa0I7SUFDbEIsa0JBQWlCLEVOa0loQjtJTXZJRDtNQUNFLFlBQVc7TUFDWCxZQUFXLEVBQ1o7RU51SUQ7OztJTTVIRixpQkFBZ0I7SUFDaEIsWVhzRnlEO0lXckZ6RCxnQkFBZTtJQUNmLGVBQWMsRU42SFgsRUFBQTs7QUFJSDtFRzFGRSwwQkRhcUQsRUYrRXREO0VHMUZDO0lBQ0UsaUJB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RUFsR1A7SUF1R1ksMEJicFNJLEVhcVNMO0VBeEdYO0lBdUdZLDBCYm5TTSxFYW9TUDtFQXhHWDtJQXVHWSwwQmJsU0ksRWFtU0w7RUF4R1g7SUF1R1ksMEJialNJLEVha1NMO0VBeEdYO0lBdUdZLDBCYmhTRSxFYWlTSDtFQXhHWDtJQWdISSxZQUFXO0lBQ1gsWUFBVztJQUNYLGVBQWdDLEVBQ2pDOztBQUVIO0VBR0ksc0JBQXFCLEVBQ3RCOztBQy9ISDs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFtQkUsVUFBUztFQUNULFdBQVUsRUFDWDs7QUFHRDtFQUNFLG9CZHRIMEI7RWN3SDFCLG1CQUFrQjtFQUNsQixpQmQxSHNCO0VjMkh0QixtQ2R6SHlDLEVjMEgxQzs7QUFHRDs7RUFFRSxtQkFBa0I7RUFDbEIscUJBQW9CLEVBQ3JCOztBQUdEOztFQUVFLGtCZDlNcUI7RWMrTXJCLHFCQUFvQixFQUNyQjs7QWxCZ0RDO0VrQjVDQSxlZGhKaUI7RWNpSmpCLHFCQUFvQixFQUNyQjs7QUFHRDs7OztFQU1FLHNEdEJoUTZEO0VzQmlRN0QsbUJkcExzQjtFY3FMdEIsb0JkbE95QjtFY21PekIsZWRwTGtCO0VjcUxsQixtQ2RoS3NDLEVjc0t2QztFQWhCRDs7Ozs7Ozs7SUFhSSxlQUFjO0lBQ2QsZWRuUGUsRWNvUGhCOztBQVFHO0VBSUksc0JSdlA2QztFUW1RN0MsaUJkak5XO0VjeU5YLGNBQWE7RUFPYixzQmQvTmlCLEVjaU9wQjs7QUFqQ0Q7RUFJSSxzQlJ2UDZDO0VRbVE3QyxpQmRqTlc7RWN5TlgsY0FBYTtFQU9iLHNCZC9OaUIsRWNpT3BCOztBbEI5T0g7RWtCaU5NLHNCUnZQNkM7RVFtUTdDLGlCZGpOVztFY3lOWCxjQUFhO0VBT2Isc0JkL05pQixFY2lPcEI7O0FsQnhPSDtFa0IyTU0sc0JSdlA2QztFUW1RN0MsaUJkak5XO0VjeU5YLGNBQWE7RUFPYixzQmQvTmlCLEVjaU9wQjs7QUFqQ0Q7RUFJSSxzQlJ2UDZDO0VRbVE3QyxpQmRqTlc7RWN5TlgsY0FBYTtFQU9iLHNCZC9OaUIsRWNpT3BCOztBQWpDRDtFQUlJLHNCUnZQNkM7RVFtUTdDLGlCZGpOVztFY3lOWCxjQUFhO0VBT2Isc0JkL05pQixFY2lPcEI7O0FYek1IO0VXd0tFO0lBSUksbUJSdlA2QyxFUW9SaEQ7RUFqQ0Q7SUFJSSxrQlJ2UDZDLEVRb1JoRDtFbEI5T0g7SWtCaU5NLGtCUnZQNkMsRVFvUmhEO0VsQnhPSDtJa0IyTU0sa0JSdlA2QyxFUW9SaEQ7RUFqQ0Q7SUFJSSxzQlJ2UDZDLEVRb1JoRDtFQWpDRDtJQUlJLHNCUnZQNkMsRVFvUmhELEVBQUE7O0FsQm5HTDtFa0IwR0EscUJBQW9CO0VBQ3BCLGVkNVNjO0VjNlNkLHNCdEIvUHlCO0VzQmlRekIsZ0JBQWUsRUFhaEI7RUFsQkQ7SUFTSSxlZGhOMkQsRWNvTjVEO0VBYkg7SUFnQkksVUFBUyxFQUNWOztBbEJ2S0Q7RWtCNEtBLFlBQVc7RUFFWCxpQlJsVHFEO0VRbVRyRCxVQUFTO0VBQ1QscUJkNU55QjtFYzhOekIsY0FBYTtFQUNiLGdCQUFlO0VBQ2YsaUNkalVpQjtFY2tVakIsZUFBYyxFQUNmOztBQUdEOzs7RUFHRSxvQmR0UDBCO0VjdVAxQiw2QmRyT3lCO0Vjc096QixpQmR6UHNCLEVjMFB2Qjs7QUFHRDtFQUNFLG1CQUFrQixFQUNuQjs7QUFHRDtFQUNFLHFCZC9Pc0I7RWNnUHRCLHNCZGxQa0IsRWNtUG5COztBQUdEO0VBQ0UscUJkclBzQixFY3NQdkI7O0FBR0Q7RUFFSSxxQmQxUDJCO0VjMlAzQixpQkFBZ0IsRUFDakI7O0FBSUg7RUFDRSxvQmRoUXlCLEVjc1ExQjtFQVBEO0lBSUksc0JkalE4QjtJY2tROUIsa0JkaFdtQixFY2lXcEI7O0FsQjNSQztFa0JnU0YsaUJkL1IwQjtFY2dTMUIsdUNSMVdxRDtFUTJXckQsK0JkcFhpQixFYzBYbEI7RUFURDtJQU1JLGlCZHJTb0I7SWNzU3BCLGVkdlhhLEVjd1hkOztBQUlIO0VBQ0UsZUFBYztFQUNkLHFCUnRYcUQ7RVF1WHJELGVkL1hlLEVjb1loQjtFQVJEO0lBTUksY2RuUjZCLEVBQUE7O0Fjd1JqQztFQUNFLGtDZHZZVztF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Q2dCYixXRmhDa0M7RUlFbEMsNkJBQTRCLEVMQTNCOztBQVVEO0VHb0JBLFdGaENxQyxFRGNwQzs7QUFkRDtFQ2xCRiwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLFdGL0JrQztFSUNsQyw2QkFBNEIsRUxBM0I7O0FBVUQ7RUdvQkEsV0YvQnFDLEVEYXBDOztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsdURHckNtQztVSHFDbkMsK0NHckNtQztFSHFDbkMsOEJGNUJtRDtNRTRCbkQsMEJGNUJtRDtVRTRCbkQsc0JGNUJtRDtFTUlqRCxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUEyQixFUFA1Qjs7QUFVRDtFR29CQSxvREdUNEM7VUhTNUMsNENHVDRDO0VDSjFDLFdBQTJCLEVQTDVCOztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsdURHcENxQztVSG9DckMsK0NHcENxQztFSG9DckMsZ0NGM0JxRDtNRTJCckQsNEJGM0JxRDtVRTJCckQsd0JGM0JxRDtFTUduRCxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUEyQixFUFA1Qjs7QUFVRDtFR29CQSxvREdUNEM7VUhTNUMsNENHVDRDO0VDSjFDLFdBQTJCLEVQTDVCOztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsc0RHbkNpQztVSG1DakMsOENHbkNpQztFSG1DakMsaUNGMUJzRDtNRTBCdEQsNkJGMUJzRDtVRTBCdEQseUJGMUJzRDtFTUVwRCxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUEyQixFUFA1Qjs7QUFVRDtFR29CQSxvREdUNEM7VUhTNUMsNENHVDRDO0VDSjFDLFdBQTJCLEVQTDVCOztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsc0RHbEMrQjtVSGtDL0IsOENHbEMrQjtFSGtDL0IsK0JGekJvRDtNRXlCcEQsMkJGekJvRDtVRXlCcEQsdUJGekJvRDtFTUNsRCxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUEyQixFUFA1Qjs7QUFVRDtFR29CQSxvREdUNEM7VUhTNUMsNENHVDRDO0VDSjFDLFdBQTJCLEVQTDVCOztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsdURHckNtQztVSHFDbkMsK0NHckNtQztFSHFDbkMsaUNHRWU7TUhGZiw2QkdFZTtVSEZmLHlCR0VlO0VDMUJiLGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQTJCLEVQUDVCOztBQVVEO0VHb0JBLG9ER1Q0QztVSFM1Qyw0Q0dUNEM7RUNKMUMsV0FBMkIsRVBMNUI7O0FBZEQ7RUNsQkYsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYix1REdwQ3FDO1VIb0NyQywrQ0dwQ3FDO0VIb0NyQyxpQ0dFZTtNSEZmLDZCR0VlO1VIRmYseUJHRWU7RUMxQmIsZ0RBQXVDO0VBQXZDLHdDQUF1QztFQUF2QywyREFBdUM7RUFDdkMsV0FBMkIsRVBQNUI7O0FBVUQ7RUdvQkEsb0RHVDRDO1VIUzVDLDRDR1Q0QztFQ0oxQyxXQUEyQixFUEw1Qjs7QUFkRDtFQ2xCRiwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLG9ER1A4QztVSE85Qyw0Q0dQOEM7RUhPOUMsOEJGdEJtRDtNRXNCbkQsMEJGdEJtRDtVRXNCbkQsc0JGdEJtRDtFTUZqRCxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUE4QixFUFAvQjs7QUFVRDtFR29CQSxzREcvQjhCO1VIK0I5Qiw4Q0cvQjhCO0VDa0I1QixXQUE4QixFUEwvQjs7QUFkRDtFQ2xCRiwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLG9ER1A4QztVSE85Qyw0Q0dQOEM7RUhPOUMsZ0NGckJxRDtNRXFCckQsNEJGckJxRDtVRXFCckQsd0JGckJxRDtFTUhuRCxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUE4QixFUFAvQjs7QUFVRDtFR29CQSxzREc5QmdDO1VIOEJoQyw4Q0c5QmdDO0VDaUI5QixXQUE4QixFUEwvQjs7QUFkRDtFQ2xCRiwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLG9ER1A4QztVSE85Qyw0Q0dQOEM7RUhPOUMsaUNGcEJzRDtNRW9CdEQsNkJGcEJzRDtVRW9CdEQseUJGcEJzRDtFTUpwRCxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUE4QixFUFAvQjs7QUFVRDtFR29CQSx1REc3QnNDO1VINkJ0QywrQ0c3QnNDO0VDZ0JwQyxXQUE4QixFUEwvQjs7QUFkRDtFQ2xCRiwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLG9ER1A4QztVSE85Qyw0Q0dQOEM7RUhPOUMsK0JGbkJvRDtNRW1CcEQsMkJGbkJvRDtVRW1CcEQsdUJGbkJvRDtFTUxsRCxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUE4QixFUFAvQjs7QUFVRDtFR29CQSx1REc1Qm9DO1VINEJwQywrQ0c1Qm9DO0VDZWxDLFdBQThCLEVQTC9COztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsb0RHUDhDO1VITzlDLDRDR1A4QztFSE85QyxpQ0dFZTtNSEZmLDZCR0VlO1VIRmYseUJHRWU7RUMxQmIsZ0RBQXVDO0VBQXZDLHdDQUF1QztFQUF2QywyREFBdUM7RUFDdkMsV0FBOEIsRVBQL0I7O0FBVUQ7RUdvQkEsc0RHL0I4QjtVSCtCOUIsOENHL0I4QjtFQ2tCNUIsV0FBOEIsRVBML0I7O0FBZEQ7RUNsQkYsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYixvREdQOEM7VUhPOUMsNENHUDhDO0VITzlDLGlDR0VlO01IRmYsNkJHRWU7VUhGZix5QkdFZTtFQzFCYixnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUE4QixFUFAvQjs7QUFVRDtFR29CQSxzREc5QmdDO1VIOEJoQyw4Q0c5QmdDO0VDaUI5QixXQUE4QixFUEwvQjs7QUFkRDtFQ2xCRiwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLDhC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aUJBQWdCLEVBQ2hCOztBQUVEO0VBQ0MsY0FBYSxFQUNiOztBQUVEO0VBQ0MsV0FBVTtFQUNWLDBCQUF5QixFQUN6Qjs7QUFFRDtFQUNDLG9CQUFtQixFQUNuQjs7QUFFRDtFQUNDLHdCQUF1QjtFQUN2QixhQUFZO0VBQ1osbUJBQWtCO0VBQ2xCLHNCQUFxQjtFQUNyQixZQUFXO0VBQ1gsZUFBYztFQUNkLGtCQUFpQjtFQUNqQixvQkFBbUI7RUFDbkIsWUFBVyxFQUNYOztBQUVEO0VBQ0MsYUFBWSxFQUNaOztBQXpIRDs7RUE4SEUsb0JBQW1CLEVBQ25COztBQXRDRjtFQXlDRSxvQkFBbUIsRUFDbkI7O0FBUEY7RUFXRywwQkFBeUI7RUFDekIsMEJBQXlCLEVBQ3pCOztBQWJIO0VBZ0JHLDBCQUF5QixFQUN6Qjs7QUFqQkg7RUFvQkcsb0JBQW1CO0VBQ25CLFlBQVcsRUFDWDs7QUF0Qkg7RUF5QkcsZUFBYyxFQUNkOztBQTFCSDtFQTZCRyxvQkFBbUI7RUFDbkIsWUFBVyxFQUNYOztBQTNKSDs7RXpHdEJJLFlER2MsRTBHdUxoQjs7QUFKRjtFekd0TEksWURHYyxFMEcyTGhCOztBQUtGO0VBQ0MseUJBQXdCLEVBQ3hCOztBQzlNRDs7OztFQUlFO0FEMkJGOztFQ3ZCSSxvQjNHV1csRTJHVlo7O0FEK0dIO0VDNUdJLG9CM0dLa0IsRTJHSm5COztBRDhJSDtFQzFJTSwwQjNHRGlCLEUyR0VsQjs7QUR5SUw7RUN0SU0sb0IzR0xpQixFMkdNbEI7O0FEcUlMO0VDbElNLG9CM0dSZ0IsRTJHU2pCOztBQzFCTDs7OztFQUlFO0FBRUY7RUFDRSwyQkFBMEIsRUFDM0IiLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qXG5TZXRzIHVwIHRoZSB0aGVtZSdzIHN0eWxpbmcgcHJvcGVydGllcyBhbmQgbWFrZXMgc29tZSB2YXJpYWJsZXMgYWxyZWFkeSBzZXQgaW4gRm91bmRhdGlvbiBhdmFpbGFibGUgZm9yIGVhc3kgdXNlXG50aHJvdWdob3V0IHRoaXMgdGhlbWUncyBTQVNTIGZpbGVzLlxuXG5Ac2luY2UgMC4xLjBcbiovXG4vKlxuRXh0cmEgZnVuY3Rpb25zLlxuXG5Ac2luY2UgMC4xLjBcbiovXG4vKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbiAqIFZlcnNpb24gNi40LjNcbiAqIGZvdW5kYXRpb24uenVyYi5jb21cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdkenMtaWNvbnMnO1xuICBzcmM6IHVybChcIi4uL2ljb25zL2R6cy1pY29ucy5lb3Q/XCIpO1xuICBzcmM6IHVybChcIi4uL2ljb25zL2R6cy1pY29ucy5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9pY29ucy9kenMtaWNvbnMud29mZj9cIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vaWNvbnMvZHpzLWljb25zLnR0Zj9cIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcIi4uL2ljb25zL2R6cy1pY29ucy5zdmc/I2R6cy1pY29uc1wiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG4vKiBDaHJvbWUgaGFjazogU1ZHIGlzIHJlbmRlcmVkIG1vcmUgc21vb3RoIGluIFdpbmRvenplLiAxMDAlIG1hZ2ljLCB1bmNvbW1lbnQgaWYgeW91IG5lZWQgaXQuICovXG4vKiBOb3RlLCB0aGF0IHdpbGwgYnJlYWsgaGludGluZyEgSW4gb3RoZXIgT1MtZXMgZm9udCB3aWxsIGJlIG5vdCBhcyBzaGFycCBhcyBpdCBjb3VsZCBiZSAqL1xuLypcbkBtZWRpYSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MCkge1xuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ2R6cy1pY29ucyc7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnQvZHpzLWljb25zLnN2Zz82NDQwOTA0NyNkenMtaWNvbnMnKSBmb3JtYXQoJ3N2ZycpO1xuICB9XG59XG4qL1xuW2NsYXNzXj1cImR6cy1pY29uLVwiXTpiZWZvcmUsIFtjbGFzcyo9XCIgZHpzLWljb24tXCJdOmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBcImR6cy1pY29uc1wiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbi5kenMtaWNvbi1ibG9nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MDAnOyB9XG5cbi8qICfuoIAnICovXG4uZHpzLWljb24tbWVudTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODAxJzsgfVxuXG4vKiAn7qCBJyAqL1xuLmR6cy1pY29uLWNsb3NlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MDInOyB9XG5cbi8qICfuoIInICovXG4uZHpzLWljb24tYXJyb3ctcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgwMyc7IH1cblxuLyogJ+6ggycgKi9cbi5kenMtaWNvbi1jYWxlbmRhcjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODA0JzsgfVxuXG4vKiAn7qCEJyAqL1xuLmR6cy1pY29uLWNpcmNsZS1zdGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MDUnOyB9XG5cbi8qICfuoIUnICovXG4uZHpzLWljb24tZG9jdW1lbnQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgwNic7IH1cblxuLyogJ+6ghicgKi9cbi5kenMtaWNvbi1jb21wYXNzLXN0YXI6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgwNyc7IH1cblxuLyogJ+6ghycgKi9cbi5kenMtaWNvbi1jbG9jazpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODA4JzsgfVxuXG4vKiAn7qCIJyAqL1xuLmR6cy1pY29uLWZhY2Vib29rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MDknOyB9XG5cbi8qICfuoIknICovXG4uZHpzLWljb24taW5zdGFncmFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MGEnOyB9XG5cbi8qICfuoIonICovXG4uZHpzLWljb24tcGF3cHJpbnQtYnV0dG9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MGInOyB9XG5cbi8qICfuoIsnICovXG4uZHpzLWljb24tcGF3cHJpbnQtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MGMnOyB9XG5cbi8qICfuoIwnICovXG4uZHpzLWljb24tcGF3cHJpbnQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgwZCc7IH1cblxuLyogJ+6gjScgKi9cbi5kenMtaWNvbi10aWNrZXQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgwZSc7IH1cblxuLyogJ+6gjicgKi9cbi5kenMtaWNvbi10d2l0dGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MGYnOyB9XG5cbi8qICfuoI8nICovXG4uZHpzLWljb24tdmFuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MTAnOyB9XG5cbi8qICfuoJAnICovXG4uZHpzLWljb24tYXJyb3ctbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODExJzsgfVxuXG4vKiAn7qCRJyAqL1xuLmR6cy1pY29uLXBlbmd1aW46YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgxMic7IH1cblxuLyogJ+6gkicgKi9cbi5kenMtaWNvbi1kZWVyMS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MjYnOyB9XG5cbi8qICfuoKYnICovXG4uZHpzLWljb24tZGVlcjEtc29saWQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgyNyc7IH1cblxuLyogJ+6gpycgKi9cbi5kenMtaWNvbi1kZWVyMi1qdW1wLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgyOCc7IH1cblxuLyogJ+6gqCcgKi9cbi5kenMtaWNvbi1kZWVyMi1qdW1wLXNvbGlkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MjknOyB9XG5cbi8qICfuoKknICovXG4uZHpzLWljb24tZGVlcjMtZmFjZS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MmEnOyB9XG5cbi8qICfuoKonICovXG4uZHpzLWljb24tZGVlcjMtZmFjZS1zb2xpZDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODJiJzsgfVxuXG4vKiAn7qCrJyAqL1xuLmR6cy1pY29uLWZyb2cxLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgyYyc7IH1cblxuLyogJ+6grCcgKi9cbi5kenMtaWNvbi1mcm9nMS1zb2xpZDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODJkJzsgfVxuXG4vKiAn7qCtJyAqL1xuLmR6cy1pY29uLXR1cnRsZTEtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODJlJzsgfVxuXG4vKiAn7qCuJyAqL1xuLmR6cy1pY29uLXR1cnRsZTEtc29saWQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgyZic7IH1cblxuLyogJ+6grycgKi9cbi5kenMtaWNvbi10dXJ0bGUyLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgzMCc7IH1cblxuLyogJ+6gsCcgKi9cbi5kenMtaWNvbi10dXJ0bGUyLXNvbGlkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MzEnOyB9XG5cbi8qICfuoLEnICovXG4uZHpzLWljb24tdHVydGxlMy1kZXRhaWxlZDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODMyJzsgfVxuXG4vKiAn7qCyJyAqL1xuLmR6cy1pY29uLWZyb2c6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTkwMCc7IH1cblxuLyogJ+6gsicgKi9cbi5kenMtaWNvbi1iaW5vY3VsYXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU5MDEnOyB9XG5cbi8qICfuoLInICovXG4vKlxuRXh0cmEgZnVuY3Rpb25zLlxuXG5Ac2luY2UgMC4xLjBcbiovXG4vKiEgbm9ybWFsaXplLXNjc3MgfCBNSVQvR1BMdjIgTGljZW5zZSB8IGJpdC5seS9ub3JtYWxpemUtc2NzcyAqL1xuLyogRG9jdW1lbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5IGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAzLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gICAgICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuICAgICAqL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogODcuNSU7XG4gIGxpbmUtaGVpZ2h0OiAxLjcxNDI5ZW07XG4gIC8qIDIgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDMgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAzICovIH1cblxuLyogU2VjdGlvbnNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZm9vdGVyLFxuaGVhZGVyLFxubmF2LFxuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICAgICAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAgICAgKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICAgICAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzE0MjllbTtcbiAgLyogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMuICovXG4gIG1hcmdpbjogMC44NTcxNGVtIDA7IH1cblxuaDIge1xuICBmb250LXNpemU6IDEuNWVtO1xuICBsaW5lLWhlaWdodDogMi4yODU3MWVtO1xuICBtYXJnaW46IDEuMTQyODZlbSAwOyB9XG5cbmgzLCBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmFxIC5mYXEtdGl0bGUge1xuICBmb250LXNpemU6IDEuMTdlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDY1MmVtO1xuICBtYXJnaW46IDEuNDY1MmVtIDA7IH1cblxuaDQsIC5wcmVzcy1yZWxlYXNlLXN1YmhlYWRpbmcge1xuICBmb250LXNpemU6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzE0MjllbTtcbiAgbWFyZ2luOiAxLjcxNDI5ZW0gMDsgfVxuXG5oNSB7XG4gIGZvbnQtc2l6ZTogMC44M2VtO1xuICBsaW5lLWhlaWdodDogMi4wNjU0ZW07XG4gIG1hcmdpbjogMi4wNjU0ZW0gMDsgfVxuXG5oNiB7XG4gIGZvbnQtc2l6ZTogMC42N2VtO1xuICBsaW5lLWhlaWdodDogMi41NTg2NGVtO1xuICBtYXJnaW46IDIuNTU4NjRlbSAwOyB9XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICAgKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICovXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAxLjcxNDI5ZW0gNDBweDsgfVxuXG5kbCxcbm9sLFxudWwge1xuICBtYXJnaW46IDEuNzE0MjllbSAwOyB9XG5cbi8qKlxuICAgICAgICogVHVybiBvZmYgbWFyZ2lucyBvbiBuZXN0ZWQgbGlzdHMuXG4gICAgICAgKi9cbm9sIG9sLFxub2wgdWwsXG51bCBvbCxcbnVsIHVsIHtcbiAgbWFyZ2luOiAwOyB9XG5cbmRkIHtcbiAgbWFyZ2luOiAwIDAgMCA0MHB4OyB9XG5cbm9sLFxudWwge1xuICBwYWRkaW5nOiAwIDAgMCA0MHB4OyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuZmlnY2FwdGlvbixcbmZpZ3VyZSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAgICAgKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMS43MTQyOWVtIDQwcHg7IH1cblxuLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAgICAgKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAgICAgKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDEgKi9cbiAgaGVpZ2h0OiAwO1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gICAgICAgKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICovXG5wLFxucHJlIHtcbiAgbWFyZ2luOiAxLjcxNDI5ZW0gMDsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqLyB9XG5cbi8qIExpbmtzXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAgICAgKiAyLiBSZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG4gICAgICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0cztcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICAgICAqIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZS13aWR0aDogMDsgfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAgICAgKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogaW5oZXJpdDsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7IH1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAgICAgKi9cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gICAgICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgY29sb3I6ICMwMDA7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbi8qKlxuICAgICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAgICAqIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5hdWRpbyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gICAgICovXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7IH1cblxuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gICAgICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7IH1cblxuLyoqXG4gICAgICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogRm9ybXNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gICAgICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7XG4gIC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuNzE0MjllbTtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgICAgKi9cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICAgICAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAgICAgKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXG4gICAgICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gICAgICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICovXG5idXR0b24sXG5odG1sIFt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi8gfVxuXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAgICAgICAqL1xuICAvKipcbiAgICAgICAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAgICAgICAqLyB9XG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDsgfVxuICBidXR0b246LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gICAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0OyB9XG5cbi8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gICAgICovXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICAgICAqL1xuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gICAgICovXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICAgICAqL1xuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgLyogMiAqL1xuICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gICAgICAgKi8gfVxuICBbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiwgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAgICAgKi9cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgICAgKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gICAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIGRpc3BsYXk6IHRhYmxlO1xuICAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAzICovXG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAyICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIC8qIDEgKi8gfVxuXG4vKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICAgICAqL1xucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAgICAgKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyogSW50ZXJhY3RpdmVcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gICAgICovXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtOyB9XG5cbi8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIC8qXG4gICAgICAgICAqIDEuIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW4uXG4gICAgICAgICAqIDIuIFNldCBjb25zaXN0ZW50IHNwYWNlIGZvciB0aGUgbGlzdCBzdHlsZSBpbWFnZS5cbiAgICAgICAgICovXG4gIG1hcmdpbjogMS43MTQyOWVtIDA7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMCAwIDAgNDBweDtcbiAgLyogMiAqL1xuICAvKipcbiAgICAgICAgICogVHVybiBvZmYgbWFyZ2lucyBvbiBuZXN0ZWQgbGlzdHMuXG4gICAgICAgICAqLyB9XG4gIG1lbnUgbWVudSxcbiAgb2wgbWVudSxcbiAgdWwgbWVudSB7XG4gICAgbWFyZ2luOiAwOyB9XG5cbi8qIFNjcmlwdGluZ1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmNhbnZhcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBIaWRkZW5cbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICAgICAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5mb3VuZGF0aW9uLW1xIHtcbiAgZm9udC1mYW1pbHk6IFwic21hbGw9MGVtJm1lZGl1bT00MGVtJmxhcmdlPTY0ZW0meGxhcmdlPTc1ZW0meHhsYXJnZT05MGVtXCI7IH1cblxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMTRweDsgfVxuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGZvbnQtZmFtaWx5OiBcIk15cmlhZCBQcm9cIiwgXCJUcmVidWNoZXQgTVNcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMyMjI7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbmltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7IH1cblxudGV4dGFyZWEge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDUwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuc2VsZWN0IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuLm1hcF9jYW52YXMgaW1nLFxuLm1hcF9jYW52YXMgZW1iZWQsXG4ubWFwX2NhbnZhcyBvYmplY3QsXG4ubXFhLWRpc3BsYXkgaW1nLFxuLm1xYS1kaXNwbGF5IGVtYmVkLFxuLm1xYS1kaXNwbGF5IG9iamVjdCB7XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50OyB9XG5cbmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IGF1dG87IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGJ1dHRvbiB7XG4gICAgb3V0bGluZTogMDsgfVxuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuXG4uaXMtdmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cblxuLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAuaGlkZS1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMGVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5zaG93LWZvci1zbWFsbC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuaGlkZS1mb3ItbWVkaXVtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAuaGlkZS1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuc2hvdy1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmhpZGUtZm9yLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgLnNob3ctZm9yLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLnNob3ctZm9yLWxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5zaG93LWZvci1zcixcbi5zaG93LW9uLWZvY3VzIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGJvcmRlcjogMDsgfVxuXG4uc2hvdy1vbi1mb2N1czphY3RpdmUsIC5zaG93LW9uLWZvY3VzOmZvY3VzIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bztcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgY2xpcC1wYXRoOiBub25lOyB9XG5cbi5zaG93LWZvci1sYW5kc2NhcGUsXG4uaGlkZS1mb3ItcG9ydHJhaXQge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4uaGlkZS1mb3ItbGFuZHNjYXBlLFxuLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuXG4ucm93IHtcbiAgbWF4LXdpZHRoOiA3OC41NzE0M3JlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAucm93OjpiZWZvcmUsIC5yb3c6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAucm93OjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnJvdy5jb2xsYXBzZSA+IC5jb2x1bW4sIC5yb3cuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLnJvdyAucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjcxNDI5cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC43MTQyOXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAucm93IC5yb3cge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xLjA3MTQzcmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTEuMDcxNDNyZW07IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5yb3cgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTEuMDcxNDNyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMS4wNzE0M3JlbTsgfSB9XG4gICAgLnJvdyAucm93LmNvbGxhcHNlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5yb3cuZXhwYW5kZWQge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuICAgIC5yb3cuZXhwYW5kZWQgLnJvdyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAucm93Om5vdCguZXhwYW5kZWQpIC5yb3cge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuICAucm93Lmd1dHRlci1zbWFsbCA+IC5jb2x1bW4sIC5yb3cuZ3V0dGVyLXNtYWxsID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNzE0MjlyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjcxNDI5cmVtOyB9XG4gIC5yb3cuZ3V0dGVyLW1lZGl1bSA+IC5jb2x1bW4sIC5yb3cuZ3V0dGVyLW1lZGl1bSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjA3MTQzcmVtO1xuICAgIHBhZGRpbmctbGVmdDogMS4wNzE0M3JlbTsgfVxuXG4uY29sdW1uLCAuY29sdW1ucyB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMC43MTQyOXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjcxNDI5cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmNvbHVtbiwgLmNvbHVtbnMge1xuICAgICAgcGFkZGluZy1yaWdodDogMS4wNzE0M3JlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMS4wNzE0M3JlbTsgfSB9XG4gIC5jb2x1bW46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLmNvbHVtbnM6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC5jb2x1bW4uZW5kOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCwgLmVuZC5jb2x1bW5zOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLmNvbHVtbi5yb3cucm93LCAucm93LnJvdy5jb2x1bW5zIHtcbiAgZmxvYXQ6IG5vbmU7IH1cblxuLnJvdyAuY29sdW1uLnJvdy5yb3csIC5yb3cgLnJvdy5yb3cuY29sdW1ucyB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuXG4uc21hbGwtMSB7XG4gIHdpZHRoOiA4LjMzMzMzJTsgfVxuXG4uc21hbGwtcHVzaC0xIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA4LjMzMzMzJTsgfVxuXG4uc21hbGwtcHVsbC0xIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtOC4zMzMzMyU7IH1cblxuLnNtYWxsLW9mZnNldC0wIHtcbiAgbWFyZ2luLWxlZnQ6IDAlOyB9XG5cbi5zbWFsbC0yIHtcbiAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuXG4uc21hbGwtcHVzaC0yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAxNi42NjY2NyU7IH1cblxuLnNtYWxsLXB1bGwtMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTE2LjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTEge1xuICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cblxuLnNtYWxsLTMge1xuICB3aWR0aDogMjUlOyB9XG5cbi5zbWFsbC1wdXNoLTMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDI1JTsgfVxuXG4uc21hbGwtcHVsbC0zIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtMjUlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMiB7XG4gIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cblxuLnNtYWxsLTQge1xuICB3aWR0aDogMzMuMzMzMzMlOyB9XG5cbi5zbWFsbC1wdXNoLTQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDMzLjMzMzMzJTsgfVxuXG4uc21hbGwtcHVsbC00IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtMzMuMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMyB7XG4gIG1hcmdpbi1sZWZ0OiAyNSU7IH1cblxuLnNtYWxsLTUge1xuICB3aWR0aDogNDEuNjY2NjclOyB9XG5cbi5zbWFsbC1wdXNoLTUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDQxLjY2NjY3JTsgfVxuXG4uc21hbGwtcHVsbC01IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNDEuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtNCB7XG4gIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cblxuLnNtYWxsLTYge1xuICB3aWR0aDogNTAlOyB9XG5cbi5zbWFsbC1wdXNoLTYge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDUwJTsgfVxuXG4uc21hbGwtcHVsbC02IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNTAlOyB9XG5cbi5zbWFsbC1vZmZzZXQtNSB7XG4gIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cblxuLnNtYWxsLTcge1xuICB3aWR0aDogNTguMzMzMzMlOyB9XG5cbi5zbWFsbC1wdXNoLTcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDU4LjMzMzMzJTsgfVxuXG4uc21hbGwtcHVsbC03IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNTguMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtNiB7XG4gIG1hcmdpbi1sZWZ0OiA1MCU7IH1cblxuLnNtYWxsLTgge1xuICB3aWR0aDogNjYuNjY2NjclOyB9XG5cbi5zbWFsbC1wdXNoLTgge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDY2LjY2NjY3JTsgfVxuXG4uc21hbGwtcHVsbC04IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNjYuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtNyB7XG4gIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cblxuLnNtYWxsLTkge1xuICB3aWR0aDogNzUlOyB9XG5cbi5zbWFsbC1wdXNoLTkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDc1JTsgfVxuXG4uc21hbGwtcHVsbC05IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNzUlOyB9XG5cbi5zbWFsbC1vZmZzZXQtOCB7XG4gIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cblxuLnNtYWxsLTEwIHtcbiAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuXG4uc21hbGwtcHVzaC0xMCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogODMuMzMzMzMlOyB9XG5cbi5zbWFsbC1wdWxsLTEwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtODMuMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtOSB7XG4gIG1hcmdpbi1sZWZ0OiA3NSU7IH1cblxuLnNtYWxsLTExIHtcbiAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuXG4uc21hbGwtcHVzaC0xMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogOTEuNjY2NjclOyB9XG5cbi5zbWFsbC1wdWxsLTExIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtOTEuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtMTAge1xuICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG5cbi5zbWFsbC0xMiB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMTEge1xuICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG5cbi5zbWFsbC11cC0xID4gLmNvbHVtbiwgLnNtYWxsLXVwLTEgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTAwJTsgfVxuICAuc21hbGwtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKzEpLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtMSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTEgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtMiA+IC5jb2x1bW4sIC5zbWFsbC11cC0yID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDUwJTsgfVxuICAuc21hbGwtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDJuKzEpLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDJuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtMiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTIgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtMyA+IC5jb2x1bW4sIC5zbWFsbC11cC0zID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuc21hbGwtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDNuKzEpLCAuc21hbGwtdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDNuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtMyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTMgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtNCA+IC5jb2x1bW4sIC5zbWFsbC11cC00ID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDI1JTsgfVxuICAuc21hbGwtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDRuKzEpLCAuc21hbGwtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDRuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtNCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTQgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtNSA+IC5jb2x1bW4sIC5zbWFsbC11cC01ID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDIwJTsgfVxuICAuc21hbGwtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDVuKzEpLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDVuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtNSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTUgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtNiA+IC5jb2x1bW4sIC5zbWFsbC11cC02ID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAuc21hbGwtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDZuKzEpLCAuc21hbGwtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDZuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtNiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTYgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtNyA+IC5jb2x1bW4sIC5zbWFsbC11cC03ID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDE0LjI4NTcxJTsgfVxuICAuc21hbGwtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDduKzEpLCAuc21hbGwtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDduKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtNyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTcgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtOCA+IC5jb2x1bW4sIC5zbWFsbC11cC04ID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEyLjUlOyB9XG4gIC5zbWFsbC11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoOG4rMSksIC5zbWFsbC11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoOG4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC04ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtOCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC1jb2xsYXBzZSA+IC5jb2x1bW4sIC5zbWFsbC1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi5zbWFsbC1jb2xsYXBzZSAucm93IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4uZXhwYW5kZWQucm93IC5zbWFsbC1jb2xsYXBzZS5yb3cge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5zbWFsbC11bmNvbGxhcHNlID4gLmNvbHVtbiwgLnNtYWxsLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNzE0MjlyZW07XG4gIHBhZGRpbmctbGVmdDogMC43MTQyOXJlbTsgfVxuXG4uc21hbGwtY2VudGVyZWQge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gIC5zbWFsbC1jZW50ZXJlZCwgLnNtYWxsLWNlbnRlcmVkOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi5zbWFsbC11bmNlbnRlcmVkLFxuLnNtYWxsLXB1c2gtMCxcbi5zbWFsbC1wdWxsLTAge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAubWVkaXVtLXB1c2gtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVsbC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAubWVkaXVtLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdXNoLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdWxsLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAubWVkaXVtLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLm1lZGl1bS1wdXNoLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAyNSU7IH1cbiAgLm1lZGl1bS1wdWxsLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMjUlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVzaC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVsbC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTMzLjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5tZWRpdW0tNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAubWVkaXVtLXB1c2gtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDQxLjY2NjY3JTsgfVxuICAubWVkaXVtLXB1bGwtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC00MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubWVkaXVtLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLm1lZGl1bS1wdXNoLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1MCU7IH1cbiAgLm1lZGl1bS1wdWxsLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTAlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLm1lZGl1bS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVzaC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVsbC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTU4LjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC5tZWRpdW0tOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAubWVkaXVtLXB1c2gtOCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDY2LjY2NjY3JTsgfVxuICAubWVkaXVtLXB1bGwtOCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC02Ni42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubWVkaXVtLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLm1lZGl1bS1wdXNoLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA3NSU7IH1cbiAgLm1lZGl1bS1wdWxsLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNzUlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLm1lZGl1bS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAubWVkaXVtLXB1c2gtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4My4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdWxsLTEwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTgzLjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XG4gIC5tZWRpdW0tMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdXNoLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogOTEuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVsbC0xMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC05MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLm1lZGl1bS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS11cC0xID4gLmNvbHVtbiwgLm1lZGl1bS11cC0xID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLm1lZGl1bS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4rMSksIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC0xID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTEgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlOyB9XG4gICAgLm1lZGl1bS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMm4rMSksIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDJuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC0yID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTIgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gICAgLm1lZGl1bS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoM24rMSksIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDNuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC0zID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTMgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjUlOyB9XG4gICAgLm1lZGl1bS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNG4rMSksIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDRuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC00ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTQgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjAlOyB9XG4gICAgLm1lZGl1bS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNW4rMSksIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDVuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC01ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTUgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gICAgLm1lZGl1bS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNm4rMSksIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDZuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC02ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTYgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTQuMjg1NzElOyB9XG4gICAgLm1lZGl1bS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoN24rMSksIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDduKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC03ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTcgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTIuNSU7IH1cbiAgICAubWVkaXVtLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg4bisxKSwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoOG4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTggPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS1jb2xsYXBzZSA+IC5jb2x1bW4sIC5tZWRpdW0tY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLm1lZGl1bS1jb2xsYXBzZSAucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmV4cGFuZGVkLnJvdyAubWVkaXVtLWNvbGxhcHNlLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5tZWRpdW0tdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5tZWRpdW0tdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjA3MTQzcmVtO1xuICAgIHBhZGRpbmctbGVmdDogMS4wNzE0M3JlbTsgfVxuICAubWVkaXVtLWNlbnRlcmVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAubWVkaXVtLWNlbnRlcmVkLCAubWVkaXVtLWNlbnRlcmVkOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAubWVkaXVtLXVuY2VudGVyZWQsXG4gIC5tZWRpdW0tcHVzaC0wLFxuICAubWVkaXVtLXB1bGwtMCB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1c2gtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDguMzMzMzMlOyB9XG4gIC5sYXJnZS1wdWxsLTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOC4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7IH1cbiAgLmxhcmdlLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLXB1c2gtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2UtcHVsbC0yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTE2LjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAubGFyZ2UtMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAubGFyZ2UtcHVzaC0zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMjUlOyB9XG4gIC5sYXJnZS1wdWxsLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMjUlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2UtNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtcHVzaC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5sYXJnZS1wdWxsLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMzMuMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAubGFyZ2UtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAubGFyZ2UtcHVzaC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNDEuNjY2NjclOyB9XG4gIC5sYXJnZS1wdWxsLTUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNDEuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAubGFyZ2UtcHVzaC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTAlOyB9XG4gIC5sYXJnZS1wdWxsLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTAlOyB9XG4gIC5sYXJnZS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuICAubGFyZ2UtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2UtcHVzaC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTguMzMzMzMlOyB9XG4gIC5sYXJnZS1wdWxsLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTguMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAubGFyZ2UtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAubGFyZ2UtcHVzaC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNjYuNjY2NjclOyB9XG4gIC5sYXJnZS1wdWxsLTgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNjYuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2UtOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAubGFyZ2UtcHVzaC05IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNzUlOyB9XG4gIC5sYXJnZS1wdWxsLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNzUlOyB9XG4gIC5sYXJnZS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuICAubGFyZ2UtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1c2gtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4My4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1bGwtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAubGFyZ2UtMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLmxhcmdlLXB1c2gtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA5MS42NjY2NyU7IH1cbiAgLmxhcmdlLXB1bGwtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOTEuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLmxhcmdlLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC5sYXJnZS11cC0xID4gLmNvbHVtbiwgLmxhcmdlLXVwLTEgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAubGFyZ2UtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbisxKSwgLmxhcmdlLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC0xID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTIgPiAuY29sdW1uLCAubGFyZ2UtdXAtMiA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlOyB9XG4gICAgLmxhcmdlLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMm4rMSksIC5sYXJnZS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtMiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTIgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC0zID4gLmNvbHVtbiwgLmxhcmdlLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAgIC5sYXJnZS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDNuKzEpLCAubGFyZ2UtdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDNuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTMgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC0zID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtNCA+IC5jb2x1bW4sIC5sYXJnZS11cC00ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgICAubGFyZ2UtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg0bisxKSwgLmxhcmdlLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSg0bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC00ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtNCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTUgPiAuY29sdW1uLCAubGFyZ2UtdXAtNSA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjAlOyB9XG4gICAgLmxhcmdlLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNW4rMSksIC5sYXJnZS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtNSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTUgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC02ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAgIC5sYXJnZS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDZuKzEpLCAubGFyZ2UtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDZuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTYgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC02ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtNyA+IC5jb2x1bW4sIC5sYXJnZS11cC03ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNC4yODU3MSU7IH1cbiAgICAubGFyZ2UtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg3bisxKSwgLmxhcmdlLXVwLTcgPiAuY29sdW1uczpudGgtb2YtdHlwZSg3bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC03ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtNyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTggPiAuY29sdW1uLCAubGFyZ2UtdXAtOCA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTIuNSU7IH1cbiAgICAubGFyZ2UtdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg4bisxKSwgLmxhcmdlLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSg4bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC04ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtOCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbiwgLmxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5sYXJnZS1jb2xsYXBzZSAucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmV4cGFuZGVkLnJvdyAubGFyZ2UtY29sbGFwc2Uucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1uLCAubGFyZ2UtdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjA3MTQzcmVtO1xuICAgIHBhZGRpbmctbGVmdDogMS4wNzE0M3JlbTsgfVxuICAubGFyZ2UtY2VudGVyZWQge1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAgIC5sYXJnZS1jZW50ZXJlZCwgLmxhcmdlLWNlbnRlcmVkOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAubGFyZ2UtdW5jZW50ZXJlZCxcbiAgLmxhcmdlLXB1c2gtMCxcbiAgLmxhcmdlLXB1bGwtMCB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuXG4uY29sdW1uLWJsb2NrIHtcbiAgbWFyZ2luLWJvdHRvbTogMS40Mjg1N3JlbTsgfVxuICAuY29sdW1uLWJsb2NrID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuY29sdW1uLWJsb2NrIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIuMTQyODZyZW07IH1cbiAgICAgIC5jb2x1bW4tYmxvY2sgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuXG4uYWNjb3JkaW9uIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuICAuYWNjb3JkaW9uW2Rpc2FibGVkXSAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cbi5hY2NvcmRpb24taXRlbTpmaXJzdC1jaGlsZCA+IDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cblxuLmFjY29yZGlvbi1pdGVtOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cblxuLmFjY29yZGlvbi10aXRsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEuMjVyZW0gMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICMxNzc5YmE7IH1cbiAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gLmFjY29yZGlvbi10aXRsZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNmU2ZTY7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuICAuYWNjb3JkaW9uLXRpdGxlOmhvdmVyLCAuYWNjb3JkaW9uLXRpdGxlOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2OyB9XG4gIC5hY2NvcmRpb24tdGl0bGU6OmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgY29udGVudDogJysnOyB9XG4gIC5pcy1hY3RpdmUgPiAuYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdcXDIwMTMnOyB9XG5cbi5hY2NvcmRpb24tY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG4gIDpsYXN0LWNoaWxkID4gLmFjY29yZGlvbi1jb250ZW50Omxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTZlNmU2OyB9XG5cbi5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIHBhZGRpbmc6IDAuODVlbSAxZW07XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xuICBmb250LXNpemU6IDEuMTQyODZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc4Mjc4ODtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5idXR0b24ge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzY2MjE3NDtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLnRpbnkge1xuICAgIGZvbnQtc2l6ZTogMC43ODU3MXJlbTsgfVxuICAuYnV0dG9uLnNtYWxsIHtcbiAgICBmb250LXNpemU6IDAuOTI4NTdyZW07IH1cbiAgLmJ1dHRvbi5sYXJnZSB7XG4gICAgZm9udC1zaXplOiAxLjQyODU3cmVtOyB9XG4gIC5idXR0b24uZXhwYW5kZWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuYnV0dG9uLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzc5YmE7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLnByaW1hcnk6aG92ZXIsIC5idXR0b24ucHJpbWFyeTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTI2MTk1O1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi5zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzY7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5zZWNvbmRhcnk6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVlNWU1ZTtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24uc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNhZGI3NjtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAgIC5idXR0b24uc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5zdWNjZXNzOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMmJiNWI7XG4gICAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuYnV0dG9uLndhcm5pbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmFlMDA7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgICAuYnV0dG9uLndhcm5pbmc6aG92ZXIsIC5idXR0b24ud2FybmluZzpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M4YjAwO1xuICAgICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJ1dHRvbi5hbGVydCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjNGIzNztcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIC5idXR0b24uYWxlcnQ6aG92ZXIsIC5idXR0b24uYWxlcnQ6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E1M2IyYTtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b25bZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAwLjI1O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ODI3ODg7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIC5idXR0b24uZGlzYWJsZWQucHJpbWFyeSwgLmJ1dHRvbltkaXNhYmxlZF0ucHJpbWFyeSB7XG4gICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgICAgLmJ1dHRvbi5kaXNhYmxlZC5wcmltYXJ5LCAuYnV0dG9uLmRpc2FibGVkLnByaW1hcnk6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQucHJpbWFyeTpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0ucHJpbWFyeSwgLmJ1dHRvbltkaXNhYmxlZF0ucHJpbWFyeTpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF0ucHJpbWFyeTpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzc5YmE7XG4gICAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgLmJ1dHRvbi5kaXNhYmxlZC5zZWNvbmRhcnksIC5idXR0b25bZGlzYWJsZWRdLnNlY29uZGFyeSB7XG4gICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgICAgLmJ1dHRvbi5kaXNhYmxlZC5zZWNvbmRhcnksIC5idXR0b24uZGlzYWJsZWQuc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLnNlY29uZGFyeTpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5LCAuYnV0dG9uW2Rpc2FibGVkXS5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdLnNlY29uZGFyeTpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzY7XG4gICAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgLmJ1dHRvbi5kaXNhYmxlZC5zdWNjZXNzLCAuYnV0dG9uW2Rpc2FibGVkXS5zdWNjZXNzIHtcbiAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgICAuYnV0dG9uLmRpc2FibGVkLnN1Y2Nlc3MsIC5idXR0b24uZGlzYWJsZWQuc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZC5zdWNjZXNzOmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXS5zdWNjZXNzLCAuYnV0dG9uW2Rpc2FibGVkXS5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXS5zdWNjZXNzOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNhZGI3NjtcbiAgICAgICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLndhcm5pbmcsIC5idXR0b25bZGlzYWJsZWRdLndhcm5pbmcge1xuICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgIC5idXR0b24uZGlzYWJsZWQud2FybmluZywgLmJ1dHRvbi5kaXNhYmxlZC53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLndhcm5pbmc6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLndhcm5pbmcsIC5idXR0b25bZGlzYWJsZWRdLndhcm5pbmc6aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdLndhcm5pbmc6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwO1xuICAgICAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAgIC5idXR0b24uZGlzYWJsZWQuYWxlcnQsIC5idXR0b25bZGlzYWJsZWRdLmFsZXJ0IHtcbiAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgICAuYnV0dG9uLmRpc2FibGVkLmFsZXJ0LCAuYnV0dG9uLmRpc2FibGVkLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLmFsZXJ0OmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXS5hbGVydCwgLmJ1dHRvbltkaXNhYmxlZF0uYWxlcnQ6aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdLmFsZXJ0OmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjNGIzNztcbiAgICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi5ob2xsb3cge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM3ODI3ODg7XG4gICAgY29sb3I6ICM3ODI3ODg7IH1cbiAgICAuYnV0dG9uLmhvbGxvdywgLmJ1dHRvbi5ob2xsb3c6aG92ZXIsIC5idXR0b24uaG9sbG93OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvd1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uaG9sbG93W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uaG9sbG93OmhvdmVyLCAuYnV0dG9uLmhvbGxvdzpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICMzYzE0NDQ7XG4gICAgICBjb2xvcjogIzNjMTQ0NDsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3c6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93OmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3c6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3ODI3ODg7XG4gICAgICAgIGNvbG9yOiAjNzgyNzg4OyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMTc3OWJhO1xuICAgICAgY29sb3I6ICMxNzc5YmE7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LnByaW1hcnk6aG92ZXIsIC5idXR0b24uaG9sbG93LnByaW1hcnk6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICMwYzNkNWQ7XG4gICAgICAgIGNvbG9yOiAjMGMzZDVkOyB9XG4gICAgICAgIC5idXR0b24uaG9sbG93LnByaW1hcnk6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LnByaW1hcnk6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzE3NzliYTtcbiAgICAgICAgICBjb2xvcjogIzE3NzliYTsgfVxuICAgIC5idXR0b24uaG9sbG93LnNlY29uZGFyeSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjNzY3Njc2O1xuICAgICAgY29sb3I6ICM3Njc2NzY7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjM2IzYjNiO1xuICAgICAgICBjb2xvcjogIzNiM2IzYjsgfVxuICAgICAgICAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzc2NzY3NjtcbiAgICAgICAgICBjb2xvcjogIzc2NzY3NjsgfVxuICAgIC5idXR0b24uaG9sbG93LnN1Y2Nlc3Mge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzNhZGI3NjtcbiAgICAgIGNvbG9yOiAjM2FkYjc2OyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMTU3NTM5O1xuICAgICAgICBjb2xvcjogIzE1NzUzOTsgfVxuICAgICAgICAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzYWRiNzY7XG4gICAgICAgICAgY29sb3I6ICMzYWRiNzY7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy53YXJuaW5nIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmFlMDA7XG4gICAgICBjb2xvcjogI2ZmYWUwMDsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpob3ZlciwgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzgwNTcwMDtcbiAgICAgICAgY29sb3I6ICM4MDU3MDA7IH1cbiAgICAgICAgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93Lndhcm5pbmc6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93Lndhcm5pbmc6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZhZTAwO1xuICAgICAgICAgIGNvbG9yOiAjZmZhZTAwOyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cuYWxlcnQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjNGIzNztcbiAgICAgIGNvbG9yOiAjY2M0YjM3OyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5hbGVydDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICM2NzI1MWE7XG4gICAgICAgIGNvbG9yOiAjNjcyNTFhOyB9XG4gICAgICAgIC5idXR0b24uaG9sbG93LmFsZXJ0OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5hbGVydDpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93LmFsZXJ0OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5hbGVydDpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjYzRiMzc7XG4gICAgICAgICAgY29sb3I6ICNjYzRiMzc7IH1cbiAgLmJ1dHRvbi5jbGVhciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzc4Mjc4ODtcbiAgICBjb2xvcjogIzc4Mjc4ODsgfVxuICAgIC5idXR0b24uY2xlYXIsIC5idXR0b24uY2xlYXI6aG92ZXIsIC5idXR0b24uY2xlYXI6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmNsZWFyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmNsZWFyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhcltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmJ1dHRvbi5jbGVhcjpob3ZlciwgLmJ1dHRvbi5jbGVhcjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICMzYzE0NDQ7XG4gICAgICBjb2xvcjogIzNjMTQ0NDsgfVxuICAgICAgLmJ1dHRvbi5jbGVhcjpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhcjpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXI6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXI6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzc4Mjc4ODtcbiAgICAgICAgY29sb3I6ICM3ODI3ODg7IH1cbiAgICAuYnV0dG9uLmNsZWFyLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhcjpob3ZlciwgLmJ1dHRvbi5jbGVhcjpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhcjpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXI6Zm9jdXMsIC5idXR0b24uY2xlYXI6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXI6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmNsZWFyLnByaW1hcnkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzE3NzliYTtcbiAgICAgIGNvbG9yOiAjMTc3OWJhOyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLnByaW1hcnk6aG92ZXIsIC5idXR0b24uY2xlYXIucHJpbWFyeTpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzBjM2Q1ZDtcbiAgICAgICAgY29sb3I6ICMwYzNkNWQ7IH1cbiAgICAgICAgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIucHJpbWFyeTpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMxNzc5YmE7XG4gICAgICAgICAgY29sb3I6ICMxNzc5YmE7IH1cbiAgICAgIC5idXR0b24uY2xlYXIucHJpbWFyeSwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5LmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnByaW1hcnlbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6aG92ZXIsIC5idXR0b24uY2xlYXIucHJpbWFyeTpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmZvY3VzLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIucHJpbWFyeTpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzc2NzY3NjtcbiAgICAgIGNvbG9yOiAjNzY3Njc2OyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICMzYjNiM2I7XG4gICAgICAgIGNvbG9yOiAjM2IzYjNiOyB9XG4gICAgICAgIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3Njc2NzY7XG4gICAgICAgICAgY29sb3I6ICM3Njc2NzY7IH1cbiAgICAgIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5LCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeS5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnlbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6Zm9jdXMsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmJ1dHRvbi5jbGVhci5zdWNjZXNzIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzYWRiNzY7XG4gICAgICBjb2xvcjogIzNhZGI3NjsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICMxNTc1Mzk7XG4gICAgICAgIGNvbG9yOiAjMTU3NTM5OyB9XG4gICAgICAgIC5idXR0b24uY2xlYXIuc3VjY2Vzczpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjM2FkYjc2O1xuICAgICAgICAgIGNvbG9yOiAjM2FkYjc2OyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3MsIC5idXR0b24uY2xlYXIuc3VjY2Vzcy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc3VjY2Vzczpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuc3VjY2Vzczpmb2N1cywgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uY2xlYXIud2FybmluZyB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZhZTAwO1xuICAgICAgY29sb3I6ICNmZmFlMDA7IH1cbiAgICAgIC5idXR0b24uY2xlYXIud2FybmluZzpob3ZlciwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjODA1NzAwO1xuICAgICAgICBjb2xvcjogIzgwNTcwMDsgfVxuICAgICAgICAuYnV0dG9uLmNsZWFyLndhcm5pbmc6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIud2FybmluZzpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIud2FybmluZzpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmYWUwMDtcbiAgICAgICAgICBjb2xvcjogI2ZmYWUwMDsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci53YXJuaW5nLCAuYnV0dG9uLmNsZWFyLndhcm5pbmcuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIud2FybmluZ1tkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIud2FybmluZzpob3ZlciwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6Zm9jdXMsIC5idXR0b24uY2xlYXIud2FybmluZzpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmNsZWFyLmFsZXJ0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjYzRiMzc7XG4gICAgICBjb2xvcjogI2NjNGIzNzsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci5hbGVydDpob3ZlciwgLmJ1dHRvbi5jbGVhci5hbGVydDpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzY3MjUxYTtcbiAgICAgICAgY29sb3I6ICM2NzI1MWE7IH1cbiAgICAgICAgLmJ1dHRvbi5jbGVhci5hbGVydDpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5hbGVydDpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2M0YjM3O1xuICAgICAgICAgIGNvbG9yOiAjY2M0YjM3OyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLmFsZXJ0LCAuYnV0dG9uLmNsZWFyLmFsZXJ0LmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLmFsZXJ0W2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5hbGVydDpob3ZlciwgLmJ1dHRvbi5jbGVhci5hbGVydDpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5hbGVydDpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXMsIC5idXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAuYnV0dG9uLmRyb3Bkb3duOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC40ZW07XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICNmZWZlZmUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogMWVtOyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93OjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzc4Mjc4ODsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5wcmltYXJ5OjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzE3NzliYTsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5zZWNvbmRhcnk6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjNzY3Njc2OyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93LnN1Y2Nlc3M6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjM2FkYjc2OyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93Lndhcm5pbmc6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjZmZhZTAwOyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93LmFsZXJ0OjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2NjNGIzNzsgfVxuICAuYnV0dG9uLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgICB0b3A6IC0wLjFlbTtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuXG5hLmJ1dHRvbjpob3ZlciwgYS5idXR0b246Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuZGl2LFxuZGwsXG5kdCxcbmRkLFxudWwsXG5vbCxcbmxpLFxuaDEsXG5oMiwgaDMsIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgLmZhcS10aXRsZSwgaDQsIC5wcmVzcy1yZWxlYXNlLXN1YmhlYWRpbmcsXG5oNSxcbmg2LFxucHJlLFxuZm9ybSxcbnAsXG5ibG9ja3F1b3RlLFxudGgsXG50ZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG5wIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMS42O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OyB9XG5cbmVtLFxuaSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuc3Ryb25nLFxuYiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5oMSwgLmgxLFxuaDIsIC5oMiwgaDMsIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgLmZhcS10aXRsZSwgLmgzLCBoNCwgLnByZXNzLXJlbGVhc2Utc3ViaGVhZGluZywgLmg0LFxuaDUsIC5oNSxcbmg2LCAuaDYge1xuICBmb250LWZhbWlseTogXCJNeXJpYWQgUHJvXCIsIFwiVHJlYnVjaGV0IE1TXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7IH1cbiAgaDEgc21hbGwsIC5oMSBzbWFsbCxcbiAgaDIgc21hbGwsIC5oMiBzbWFsbCxcbiAgaDMgc21hbGwsXG4gIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgLmZhcS10aXRsZSBzbWFsbCwgLmgzIHNtYWxsLFxuICBoNCBzbWFsbCxcbiAgLnByZXNzLXJlbGVhc2Utc3ViaGVhZGluZyBzbWFsbCwgLmg0IHNtYWxsLFxuICBoNSBzbWFsbCwgLmg1IHNtYWxsLFxuICBoNiBzbWFsbCwgLmg2IHNtYWxsIHtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBjb2xvcjogI2NhY2FjYTsgfVxuXG5oMSwgLmgxIHtcbiAgZm9udC1zaXplOiAyLjE0Mjg2cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuaDIsIC5oMiB7XG4gIGZvbnQtc2l6ZTogMS4zNTcxNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbmgzLCBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmFxIC5mYXEtdGl0bGUsIC5oMyB7XG4gIGZvbnQtc2l6ZTogMS4zNTcxNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbmg0LCAucHJlc3MtcmVsZWFzZS1zdWJoZWFkaW5nLCAuaDQge1xuICBmb250LXNpemU6IDEuMTQyODZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oNSwgLmg1IHtcbiAgZm9udC1zaXplOiAxLjE0Mjg2cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuaDYsIC5oNiB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIGgxLCAuaDEge1xuICAgIGZvbnQtc2l6ZTogMi4xNXJlbTsgfVxuICBoMiwgLmgyIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTsgfVxuICBoMywgYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LWZhcSAuZmFxLXRpdGxlLCAuaDMge1xuICAgIGZvbnQtc2l6ZTogMS40cmVtOyB9XG4gIGg0LCAucHJlc3MtcmVsZWFzZS1zdWJoZWFkaW5nLCAuaDQge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtOyB9XG4gIGg1LCAuaDUge1xuICAgIGZvbnQtc2l6ZTogMS4yMTQyOXJlbTsgfVxuICBoNiwgLmg2IHtcbiAgICBmb250LXNpemU6IDEuMTQyODZyZW07IH0gfVxuXG5hIHtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiAjMTc3OWJhO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICBhOmhvdmVyLCBhOmZvY3VzIHtcbiAgICBjb2xvcjogIzE0NjhhMDsgfVxuICBhIGltZyB7XG4gICAgYm9yZGVyOiAwOyB9XG5cbmhyIHtcbiAgY2xlYXI6IGJvdGg7XG4gIG1heC13aWR0aDogNzVyZW07XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAxLjI1cmVtIGF1dG87XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1yaWdodDogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1sZWZ0OiAwOyB9XG5cbnVsLFxub2wsXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7IH1cblxubGkge1xuICBmb250LXNpemU6IGluaGVyaXQ7IH1cblxudWwge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyB9XG5cbm9sIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07IH1cblxudWwgdWwsIG9sIHVsLCB1bCBvbCwgb2wgb2wge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgZGwgZHQge1xuICAgIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgcGFkZGluZzogMC41NjI1cmVtIDEuMjVyZW0gMCAxLjE4NzVyZW07XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NhY2FjYTsgfVxuICBibG9ja3F1b3RlLCBibG9ja3F1b3RlIHAge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgY29sb3I6ICM4YThhOGE7IH1cblxuY2l0ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgY29sb3I6ICM4YThhOGE7IH1cbiAgY2l0ZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi4oCUIFwiOyB9XG5cbmFiYnIsIGFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMGEwYTBhO1xuICBjdXJzb3I6IGhlbHA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7IH1cblxuY29kZSB7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMzEyNXJlbSAwLjA2MjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzBhMGEwYTsgfVxuXG5rYmQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMjVyZW0gMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG5cbi5zdWJoZWFkZXIge1xuICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICM4YThhOGE7IH1cblxuLmxlYWQge1xuICBmb250LXNpemU6IDEyNSU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7IH1cblxuLnN0YXQge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgcCArIC5zdGF0IHtcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTsgfVxuXG51bC5uby1idWxsZXQsIG9sLm5vLWJ1bGxldCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi50ZXh0LWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLnRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi50ZXh0LWp1c3RpZnkge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5tZWRpdW0tdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLm1lZGl1bS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5tZWRpdW0tdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5sYXJnZS10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAubGFyZ2UtdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubGFyZ2UtdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9IH1cblxuLnNob3ctZm9yLXByaW50IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbkBtZWRpYSBwcmludCB7XG4gICoge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xuICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIC5oaWRlLWZvci1wcmludCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIHRhYmxlLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gIHRoZWFkLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICB0Ym9keS5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgdHIuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIHRkLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgdGguc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICBhLFxuICBhOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIGFbaHJlZl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiOyB9XG4gIC5pciBhOmFmdGVyLFxuICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICBhW2hyZWZePScjJ106YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnOyB9XG4gIGFiYnJbdGl0bGVdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7IH1cbiAgcHJlLFxuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOGE4YThhO1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICB0aGVhZCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG4gIHRyLFxuICBpbWcge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIEBwYWdlIHtcbiAgICBtYXJnaW46IDAuNWNtOyB9XG4gIHAsXG4gIGgyLCBoMywgYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LWZhcSAuZmFxLXRpdGxlIHtcbiAgICBvcnBoYW5zOiAzO1xuICAgIHdpZG93czogMzsgfVxuICBoMiwgaDMsIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgLmZhcS10aXRsZSB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cbiAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF1dG87IH0gfVxuXG5bdHlwZT0ndGV4dCddLCBbdHlwZT0ncGFzc3dvcmQnXSwgW3R5cGU9J2RhdGUnXSwgW3R5cGU9J2RhdGV0aW1lJ10sIFt0eXBlPSdkYXRldGltZS1sb2NhbCddLCBbdHlwZT0nbW9udGgnXSwgW3R5cGU9J3dlZWsnXSwgW3R5cGU9J2VtYWlsJ10sIFt0eXBlPSdudW1iZXInXSwgW3R5cGU9J3NlYXJjaCddLCBbdHlwZT0ndGVsJ10sIFt0eXBlPSd0aW1lJ10sIFt0eXBlPSd1cmwnXSwgW3R5cGU9J2NvbG9yJ10sXG50ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyLjQyODU3cmVtO1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDEwLCAxMCwgMTAsIDAuMSk7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiAgYXBwZWFyYW5jZTogbm9uZTsgfVxuICBbdHlwZT0ndGV4dCddOmZvY3VzLCBbdHlwZT0ncGFzc3dvcmQnXTpmb2N1cywgW3R5cGU9J2RhdGUnXTpmb2N1cywgW3R5cGU9J2RhdGV0aW1lJ106Zm9jdXMsIFt0eXBlPSdkYXRldGltZS1sb2NhbCddOmZvY3VzLCBbdHlwZT0nbW9udGgnXTpmb2N1cywgW3R5cGU9J3dlZWsnXTpmb2N1cywgW3R5cGU9J2VtYWlsJ106Zm9jdXMsIFt0eXBlPSdudW1iZXInXTpmb2N1cywgW3R5cGU9J3NlYXJjaCddOmZvY3VzLCBbdHlwZT0ndGVsJ106Zm9jdXMsIFt0eXBlPSd0aW1lJ106Zm9jdXMsIFt0eXBlPSd1cmwnXTpmb2N1cywgW3R5cGU9J2NvbG9yJ106Zm9jdXMsXG4gIHRleHRhcmVhOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM4YThhOGE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICNjYWNhY2E7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7IH1cblxudGV4dGFyZWEge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgdGV4dGFyZWFbcm93c10ge1xuICAgIGhlaWdodDogYXV0bzsgfVxuXG5pbnB1dDo6cGxhY2Vob2xkZXIsXG50ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2NhY2FjYTsgfVxuXG5pbnB1dDpkaXNhYmxlZCwgaW5wdXRbcmVhZG9ubHldLFxudGV4dGFyZWE6ZGlzYWJsZWQsXG50ZXh0YXJlYVtyZWFkb25seV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cblt0eXBlPSdzdWJtaXQnXSxcblt0eXBlPSdidXR0b24nXSB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cblt0eXBlPSdmaWxlJ10sXG5bdHlwZT0nY2hlY2tib3gnXSxcblt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTsgfVxuXG5bdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbFtmb3JdLFxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsW2Zvcl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuXG5sYWJlbCA+IFt0eXBlPSdjaGVja2JveCddLFxubGFiZWwgPiBbdHlwZT0ncmFkaW8nXSB7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtOyB9XG5cblt0eXBlPSdmaWxlJ10ge1xuICB3aWR0aDogMTAwJTsgfVxuXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjg7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG4gIGxhYmVsLm1pZGRsZSB7XG4gICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICBwYWRkaW5nOiAwLjU3MTQzcmVtIDA7IH1cblxuLmhlbHAtdGV4dCB7XG4gIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG5cbi5pbnB1dC1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAuaW5wdXQtZ3JvdXAgPiA6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cbiAgLmlucHV0LWdyb3VwID4gOmxhc3QtY2hpbGQgPiAqIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG5cbi5pbnB1dC1ncm91cC1sYWJlbCwgLmlucHV0LWdyb3VwLWZpZWxkLCAuaW5wdXQtZ3JvdXAtYnV0dG9uLCAuaW5wdXQtZ3JvdXAtYnV0dG9uIGEsXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGlucHV0LFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBidXR0b24sXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGxhYmVsIHtcbiAgbWFyZ2luOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5pbnB1dC1ncm91cC1sYWJlbCB7XG4gIHBhZGRpbmc6IDAgMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYmFja2dyb3VuZDogI2U2ZTZlNjtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMCAwIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmlucHV0LWdyb3VwLWxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmlnaHQ6IDA7IH1cbiAgLmlucHV0LWdyb3VwLWxhYmVsOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1sZWZ0OiAwOyB9XG5cbi5pbnB1dC1ncm91cC1maWVsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZsZXg6IDEgMSAwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLXdpZHRoOiAwOyB9XG5cbi5pbnB1dC1ncm91cC1idXR0b24ge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMCAwIGF1dG87IH1cbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBhLFxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIGlucHV0LFxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIGJ1dHRvbixcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBsYWJlbCB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9XG5cbmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7IH1cblxubGVnZW5kIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuLmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAxLjEyNXJlbSAwO1xuICBwYWRkaW5nOiAxLjI1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhOyB9XG4gIC5maWVsZHNldCBsZWdlbmQge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tbGVmdDogLTAuMjE0MjlyZW07XG4gICAgcGFkZGluZzogMCAwLjE4NzVyZW07IH1cblxuc2VsZWN0IHtcbiAgaGVpZ2h0OiAyLjQyODU3cmVtO1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyB3aWR0aD0nMzInIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAzMiAyNCc+PHBvbHlnb24gcG9pbnRzPScwLDAgMzIsMCAxNiwyNCcgc3R5bGU9J2ZpbGw6IHJnYiUyODEzOCwgMTM4LCAxMzglMjknPjwvcG9seWdvbj48L3N2Zz5cIik7XG4gIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgLTFyZW0gY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMFxcMCkge1xuICAgIHNlbGVjdCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09XCIpOyB9IH1cbiAgc2VsZWN0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM4YThhOGE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICNjYWNhY2E7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7IH1cbiAgc2VsZWN0OmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgc2VsZWN0OjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIHNlbGVjdFttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyB9XG5cbi5pcy1pbnZhbGlkLWlucHV0Om5vdCg6Zm9jdXMpIHtcbiAgYm9yZGVyLWNvbG9yOiAjY2M0YjM3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjllY2VhOyB9XG4gIC5pcy1pbnZhbGlkLWlucHV0Om5vdCg6Zm9jdXMpOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICNjYzRiMzc7IH1cblxuLmlzLWludmFsaWQtbGFiZWwge1xuICBjb2xvcjogI2NjNGIzNzsgfVxuXG4uZm9ybS1lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjY2M0YjM3OyB9XG4gIC5mb3JtLWVycm9yLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgdGhlYWQsXG4gIHRib2R5LFxuICB0Zm9vdCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2YxZjFmMTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlOyB9XG4gIGNhcHRpb24ge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjYyNXJlbSAwLjYyNXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZjhmODtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICB0Zm9vdCB7XG4gICAgYmFja2dyb3VuZDogI2YxZjFmMTtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICB0aGVhZCB0cixcbiAgdGZvb3QgdHIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gIHRoZWFkIHRoLFxuICB0aGVhZCB0ZCxcbiAgdGZvb3QgdGgsXG4gIHRmb290IHRkIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC42MjVyZW0gMC42MjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICB0Ym9keSB0aCxcbiAgdGJvZHkgdGQge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjYyNXJlbSAwLjYyNXJlbTsgfVxuICB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTsgfVxuICB0YWJsZS51bnN0cmlwZWQgdGJvZHkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7IH1cbiAgICB0YWJsZS51bnN0cmlwZWQgdGJvZHkgdHIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjFmMWYxO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgdGFibGUuc3RhY2sgdGhlYWQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgdGFibGUuc3RhY2sgdGZvb3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgdGFibGUuc3RhY2sgdHIsXG4gIHRhYmxlLnN0YWNrIHRoLFxuICB0YWJsZS5zdGFjayB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgdGFibGUuc3RhY2sgdGQge1xuICAgIGJvcmRlci10b3A6IDA7IH0gfVxuXG50YWJsZS5zY3JvbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87IH1cblxudGFibGUuaG92ZXIgdGhlYWQgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmM2YzOyB9XG5cbnRhYmxlLmhvdmVyIHRmb290IHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWNlYzsgfVxuXG50YWJsZS5ob3ZlciB0Ym9keSB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7IH1cblxudGFibGUuaG92ZXI6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWNlYzsgfVxuXG4udGFibGUtc2Nyb2xsIHtcbiAgb3ZlcmZsb3cteDogYXV0bzsgfVxuICAudGFibGUtc2Nyb2xsIHRhYmxlIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuXG4uY2xvc2UtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogIzhhOGE4YTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuY2xvc2UtYnV0dG9uIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5jbG9zZS1idXR0b246aG92ZXIsIC5jbG9zZS1idXR0b246Zm9jdXMge1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5jbG9zZS1idXR0b24uc21hbGwge1xuICAgIHJpZ2h0OiAwLjY2cmVtO1xuICAgIHRvcDogMC4zM2VtO1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgLmNsb3NlLWJ1dHRvbiwgLmNsb3NlLWJ1dHRvbi5tZWRpdW0ge1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIHRvcDogMC41cmVtO1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbi5kcm9wZG93bi1wYW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcbiAgd2lkdGg6IDMwMHB4O1xuICBwYWRkaW5nOiAxcmVtO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAuZHJvcGRvd24tcGFuZS5pcy1vcGVuaW5nIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuZHJvcGRvd24tcGFuZS5pcy1vcGVuIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5kcm9wZG93bi1wYW5lLnRpbnkge1xuICB3aWR0aDogMTAwcHg7IH1cblxuLmRyb3Bkb3duLXBhbmUuc21hbGwge1xuICB3aWR0aDogMjAwcHg7IH1cblxuLmRyb3Bkb3duLXBhbmUubGFyZ2Uge1xuICB3aWR0aDogNDAwcHg7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDEwMCU7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi5kcm9wZG93bi5tZW51ID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjZmZmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICByaWdodDogNXB4O1xuICBsZWZ0OiBhdXRvO1xuICBtYXJnaW4tdG9wOiAtM3B4OyB9XG5cbi5kcm9wZG93bi5tZW51IGEge1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmRyb3Bkb3duLm1lbnUgYSB7XG4gICAgb3V0bGluZTogMDsgfVxuXG4uZHJvcGRvd24ubWVudSAuaXMtYWN0aXZlID4gYSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI2U2ZTZlNjsgfVxuXG4ubm8tanMgLmRyb3Bkb3duLm1lbnUgdWwge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5kcm9wZG93bi5tZW51IC5uZXN0ZWQuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMDsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHJpZ2h0OiAxMDAlO1xuICBsZWZ0OiBhdXRvO1xuICB0b3A6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDEwMCU7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaSA+IGE6OmFmdGVyIHtcbiAgcmlnaHQ6IDE0cHg7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogNXB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZmZmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmY7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICNmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IC0zcHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgdG9wOiAwOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiA1cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZmZmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZmZjsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogI2ZmZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICByaWdodDogNXB4O1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogLTNweDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgdG9wOiAwOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4OyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiA1cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZmZmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmOyB9IH1cblxuLmRyb3Bkb3duLm1lbnUuYWxpZ24tcmlnaHQgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViIHtcbiAgdG9wOiAxMDAlO1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bzsgfVxuXG4uaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gIHdpZHRoOiAxMDBweDsgfVxuICAuaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbC5hbGlnbi1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgYTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogNXB4O1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogLTZweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtaW5uZXIgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTsgfVxuXG4uaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAxMDAlO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBub25lO1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlOyB9XG4gIC5kcm9wZG93biAuaXMtZHJvcGRvd24tc3VibWVudSBhIHtcbiAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogNXB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI2ZmZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBtYXJnaW4tdG9wOiAtMXB4OyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51ID4gbGkge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbkFkZHMgc29tZSBmdW5jdGlvbmFsaXR5IHRvIGZvdW5kYXRpb24uXG5cbkBzaW5jZSAwLjEuMFxuKi9cbi5jb2xsYXBzZS1sZWZ0IHtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi5jb2xsYXBzZS1yaWdodCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLnNsaWRlLWluLWRvd24ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi1kb3duLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cbi5zbGlkZS1pbi1sZWZ0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tbGVmdC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuXG4uc2xpZGUtaW4tdXAubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLWluLXVwLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cbi5zbGlkZS1pbi1yaWdodC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tcmlnaHQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cblxuLnNsaWRlLW91dC1kb3duLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtZG93bi5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTsgfVxuXG4uc2xpZGUtb3V0LXJpZ2h0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtcmlnaHQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cblxuLnNsaWRlLW91dC11cC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtb3V0LXVwLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsgfVxuXG4uc2xpZGUtb3V0LWxlZnQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC1sZWZ0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuXG4uZmFkZS1pbi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTsgfVxuXG4uZmFkZS1pbi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmZhZGUtb3V0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5OyB9XG5cbi5mYWRlLW91dC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tdG9wLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS10b3AubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXJpZ2h0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXJpZ2h0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1ib3R0b20ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tYm90dG9tLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1sZWZ0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSg5MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1sZWZ0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXgubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLW1pZGRsZS15Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteS5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXRvcC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXRvcC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tcmlnaHQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXJpZ2h0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1ib3R0b20ubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1ib3R0b20ubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1sZWZ0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLWxlZnQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS14Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteS5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS15Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zY2FsZS1pbi11cC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNjYWxlLWluLXVwLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc2NhbGUtaW4tZG93bi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNjYWxlLWluLWRvd24ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zY2FsZS1vdXQtdXAubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc2NhbGUtb3V0LXVwLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zY2FsZS1vdXQtZG93bi5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zY2FsZS1vdXQtZG93bi5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC41KTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3Bpbi1pbi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTAuNzV0dXJuKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zcGluLWluLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zcGluLW91dC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDAuNzV0dXJuKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3Bpbi1pbi1jY3cubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKDAuNzV0dXJuKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zcGluLWluLWNjdy5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zcGluLW91dC1jY3cubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0LWNjdy5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0wLjc1dHVybik7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNsb3cge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NTBtcyAhaW1wb3J0YW50OyB9XG5cbi5mYXN0IHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjUwbXMgIWltcG9ydGFudDsgfVxuXG4ubGluZWFyIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhaW1wb3J0YW50OyB9XG5cbi5lYXNlIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UgIWltcG9ydGFudDsgfVxuXG4uZWFzZS1pbiB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluICFpbXBvcnRhbnQ7IH1cblxuLmVhc2Utb3V0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0ICFpbXBvcnRhbnQ7IH1cblxuLmVhc2UtaW4tb3V0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0ICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1pbiB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjUxNSwgMC44NDUpICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1pbi1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzYsIC0wLjI0NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7IH1cblxuLnNob3J0LWRlbGF5IHtcbiAgdHJhbnNpdGlvbi1kZWxheTogMzAwbXMgIWltcG9ydGFudDsgfVxuXG4ubG9uZy1kZWxheSB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDcwMG1zICFpbXBvcnRhbnQ7IH1cblxuLnNoYWtlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNoYWtlLTc7IH1cblxuQGtleWZyYW1lcyBzaGFrZS03IHtcbiAgMCUsIDEwJSwgMjAlLCAzMCUsIDQwJSwgNTAlLCA2MCUsIDcwJSwgODAlLCA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg3JSk7IH1cbiAgNSUsIDE1JSwgMjUlLCAzNSUsIDQ1JSwgNTUlLCA2NSUsIDc1JSwgODUlLCA5NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNyUpOyB9IH1cblxuLnNwaW4tY3cge1xuICBhbmltYXRpb24tbmFtZTogc3Bpbi1jdy0xdHVybjsgfVxuXG5Aa2V5ZnJhbWVzIHNwaW4tY3ctMXR1cm4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTF0dXJuKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfSB9XG5cbi5zcGluLWNjdyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzcGluLWNjdy0xdHVybjsgfVxuXG5Aa2V5ZnJhbWVzIHNwaW4tY2N3LTF0dXJuIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xdHVybik7IH0gfVxuXG4ud2lnZ2xlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHdpZ2dsZS03ZGVnOyB9XG5cbkBrZXlmcmFtZXMgd2lnZ2xlLTdkZWcge1xuICA0MCUsIDUwJSwgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg3ZGVnKTsgfVxuICAzNSUsIDQ1JSwgNTUlLCA2NSUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC03ZGVnKTsgfVxuICAwJSwgMzAlLCA3MCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9IH1cblxuLnNoYWtlLFxuLnNwaW4tY3csXG4uc3Bpbi1jY3csXG4ud2lnZ2xlIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtczsgfVxuXG4uaW5maW5pdGUge1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgfVxuXG4uc2xvdyB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNzUwbXMgIWltcG9ydGFudDsgfVxuXG4uZmFzdCB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMjUwbXMgIWltcG9ydGFudDsgfVxuXG4ubGluZWFyIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyICFpbXBvcnRhbnQ7IH1cblxuLmVhc2Uge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlICFpbXBvcnRhbnQ7IH1cblxuLmVhc2UtaW4ge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluICFpbXBvcnRhbnQ7IH1cblxuLmVhc2Utb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQgIWltcG9ydGFudDsgfVxuXG4uZWFzZS1pbi1vdXQge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dCAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4ge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLW91dCB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuNTE1LCAwLjg0NSkgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluLW91dCB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc2LCAtMC4yNDUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5zaG9ydC1kZWxheSB7XG4gIGFuaW1hdGlvbi1kZWxheTogMzAwbXMgIWltcG9ydGFudDsgfVxuXG4ubG9uZy1kZWxheSB7XG4gIGFuaW1hdGlvbi1kZWxheTogNzAwbXMgIWltcG9ydGFudDsgfVxuXG4vKiEgbm9ybWFsaXplLmNzcyB2My4wLjIgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemUgKi9cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuICogICAgdXNlciB6b29tLlxuICovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDsgfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7IH1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwOyB9XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5pbWcge1xuICBib3JkZXI6IDA7IH1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4OyB9XG5cbi8qKlxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5ociB7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7IH1cblxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTsgfVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDMgKi8gfVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8qIDMgKi8gfVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG5cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWVcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxuICovXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDIgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IH1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5sZWdlbmQge1xuICBib3JkZXI6IDA7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwOyB9XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ015cmlhZCBQcm8nO1xuICBzcmM6IHVybChcIi4uL3ZlbmRvci9mb250cy9teXJpYWQtcHJvL015cmlhZFByby1SZWd1bGFyLm90ZlwiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ015cmlhZCBQcm8nO1xuICBzcmM6IHVybChcIi4uL3ZlbmRvci9mb250cy9teXJpYWQtcHJvL015cmlhZFByby1JdC5vdGZcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdNeXJpYWQgUHJvJztcbiAgc3JjOiB1cmwoXCIuLi92ZW5kb3IvZm9udHMvbXlyaWFkLXByby9NeXJpYWRQcm8tU2VtaWJvbGQub3RmXCIpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ015cmlhZCBQcm8nO1xuICBzcmM6IHVybChcIi4uL3ZlbmRvci9mb250cy9teXJpYWQtcHJvL015cmlhZFByby1TZW1pYm9sZEl0Lm90ZlwiKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdNeXJpYWQgUHJvIEhlYXZ5JztcbiAgc3JjOiB1cmwoXCIuLi92ZW5kb3IvZm9udHMvbXlyaWFkLXByby9NeXJpYWRQcm8tQm9sZC5vdGZcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG4vKlxuQmFzZSBlbGVtZW50IHNldHRpbmdzIChubyBjbGFzc2VzIG9yIGlkJ3MpLlxuXG5Ac2luY2UgMC4xLjBcbiovXG5ib2R5LCAjd3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87IH1cblxuYS5jb2xvci1pbnZlcnQge1xuICBjb2xvcjogaW5oZXJpdDsgfVxuICBhLmNvbG9yLWludmVydDpob3ZlciB7XG4gICAgY29sb3I6ICM2NzIyNzU7IH1cblxuaDEsIGgyLCBoMywgYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LWZhcSAuZmFxLXRpdGxlLCBoNCwgLnByZXNzLXJlbGVhc2Utc3ViaGVhZGluZywgaDUsIGg2IHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07IH1cblxuaDEge1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oMiwgaDQsIC5wcmVzcy1yZWxlYXNlLXN1YmhlYWRpbmcge1xuICBjb2xvcjogIzNiOGVkZTsgfVxuXG5oMywgYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LWZhcSAuZmFxLXRpdGxlIHtcbiAgY29sb3I6ICM3ODI3ODg7IH1cblxudWwge1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDsgfVxuXG5pZnJhbWUge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuW2RhdGEtbGlua10ge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuOjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiAjNzgyNzg4O1xuICBjb2xvcjogI2ZmZjsgfVxuXG46Oi1tb3otc2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogIzc4Mjc4ODtcbiAgY29sb3I6ICNmZmY7IH1cblxuLnRleHQtaGVhdnkge1xuICBmb250LWZhbWlseTogXCJNeXJpYWQgUHJvIEhlYXZ5XCIsIHNhbnMtc2VyaWY7IH1cblxuLnNjcmVlbi1yZWFkZXItdGV4dCwgLnNob3ctb24tZm9jdXMge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweDtcbiAgd29yZC13cmFwOiBub3JtYWwgIWltcG9ydGFudDsgfVxuXG4uc2hvdy1vbi1mb2N1czpmb2N1cywgLnNob3ctb24tZm9jdXM6YWN0aXZlIHtcbiAgbGVmdDogYXV0bztcbiAgdG9wOiBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4ucm93LmV4cGFuZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXgtd2lkdGg6IG5vbmU7IH1cblxuLmFsaWdubGVmdCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDMwcHg7IH1cblxuLmFsaWducmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1sZWZ0OiAzMHB4OyB9XG5cbi5hbGlnbmNlbnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDMwcHggYXV0bzsgfVxuXG4jc2l0ZS1jb250ZW50IGE6bm90KC5idXR0b24pIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgI3NpdGUtY29udGVudCBhOm5vdCguYnV0dG9uKTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qXG5UaGUgc3RhdGljIHNpdGUgaGVhZGVyLlxuXG5Ac2luY2UgMC4xLjBcbiovXG4jc2l0ZS1oZWFkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogM3B4O1xuICB6LWluZGV4OiAxMDsgfVxuICAjc2l0ZS1oZWFkZXIgI3NraXAtdG8tY29udGVudDpmb2N1cywgI3NpdGUtaGVhZGVyICNza2lwLXRvLWNvbnRlbnQ6YWN0aXZlIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAjc2l0ZS1oZWFkZXIgLmhlYWRlci1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9oZWFkZXItYmFjay5qcGdcIik7XG4gICAgYmFja2dyb3VuZC1zaXplOiBhdXRvIDE4MHB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogdG9wO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjExRTFGO1xuICAgIGhlaWdodDogMTkwcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICM3ZTY2YWQ7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgICNzaXRlLWhlYWRlciAuaGVhZGVyLWNvbnRhaW5lciB7XG4gICAgICAgIGhlaWdodDogMTYwcHg7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogYXV0byAxNDBweDtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2hlYWRlci1iYWNrLW1vYmlsZS5qcGdcIik7IH0gfVxuICAgICNzaXRlLWhlYWRlciAuaGVhZGVyLWNvbnRhaW5lciA+IC5yb3cge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICNzaXRlLWhlYWRlciAuc2l0ZS1sb2dvIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICNzaXRlLWhlYWRlciAuc2l0ZS1sb2dvIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMDcxNDNyZW07IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgI3NpdGUtaGVhZGVyIC5zaXRlLWxvZ28ge1xuICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMWVtOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgICNzaXRlLWhlYWRlciAuc2l0ZS1sb2dvIGltZyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtNXB4OyB9IH1cbiAgI3NpdGUtaGVhZGVyIC5oZWFkZXItYm90dG9tIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzIxMUUxRjtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuMDcxNDNyZW07XG4gICAgcGFkZGluZy1yaWdodDogMS4wNzE0M3JlbTtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgI3NpdGUtaGVhZGVyIC5oZWFkZXItYm90dG9tIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xLjA3MTQzcmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xLjA3MTQzcmVtOyB9IH1cbiAgI3NpdGUtaGVhZGVyIC5oZWFkZXItYnV0dG9uIHtcbiAgICBoZWlnaHQ6IDQ1cHg7XG4gICAgbGluZS1oZWlnaHQ6IDQ1cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAjc2l0ZS1oZWFkZXIgLmhlYWRlci1idXR0b24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2MzNjM4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgICAgI3NpdGUtaGVhZGVyIC5oZWFkZXItYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDk0MjQ1OyB9IH1cbiAgI3NpdGUtaGVhZGVyIC5oZWFkZXItYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZzogMCAxLjA3MTQzcmVtOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAjc2l0ZS1oZWFkZXIgLmhlYWRlci1idXR0b24tY29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IDMzLjMzMzMzMyUgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICNzaXRlLWhlYWRlciAudG9nZ2xlLW5hdiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICNzaXRlLWhlYWRlciAudG9nZ2xlLW5hdiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxuICAjc2l0ZS1oZWFkZXIgLnRvZ2dsZS1uYXYgW2NsYXNzKj1cImR6cy1pY29uXCJdIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgI3NpdGUtaGVhZGVyIC50b2dnbGUtbmF2IC5vcGVuLCAjc2l0ZS1oZWFkZXIgLnRvZ2dsZS1uYXYgLmNsb3NlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gICNzaXRlLWhlYWRlciAudG9nZ2xlLW5hdiAub3BlbiBbY2xhc3NePVwiZHpzLWljb25cIl0sICNzaXRlLWhlYWRlciAudG9nZ2xlLW5hdiAuY2xvc2UgW2NsYXNzXj1cImR6cy1pY29uXCJdIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgI3NpdGUtaGVhZGVyIC50b2dnbGUtbmF2IC5vcGVuOmhvdmVyLCAjc2l0ZS1oZWFkZXIgLnRvZ2dsZS1uYXYgLmNsb3NlOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAjc2l0ZS1oZWFkZXIgLmR6cy1xaWItdG9nZ2xlLWNvbnRhaW5lciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAxLjA3MTQzcmVtO1xuICAgICAgdG9wOiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIHotaW5kZXg6IDEwMTA7IH0gfVxuICAjc2l0ZS1oZWFkZXIgI2R6cy1xaWItdG9nZ2xlIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICNzaXRlLWhlYWRlciAucHJpbWFyeS1uYXYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDNlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzZW07XG4gICAgei1pbmRleDogMTAwMDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgI3NpdGUtaGVhZGVyIC5wcmltYXJ5LW5hdiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gICAgI3NpdGUtaGVhZGVyIC5wcmltYXJ5LW5hdi5zaG93IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgI3NpdGUtaGVhZGVyIC5wcmltYXJ5LW5hdiAubWVudSB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgIHotaW5kZXg6IDExMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYmFja2dyb3VuZDogIzc4Mjc4ODtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgI3NpdGUtaGVhZGVyIC5wcmltYXJ5LW5hdiAubWVudSB7XG4gICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgICAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAgICAgI3NpdGUtaGVhZGVyIC5wcmltYXJ5LW5hdiAubWVudSAuc3VibWVudSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYm94LXNoYWRvdzogNXB4IDVweCA1MHB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAgICAgei1pbmRleDogMTAwOyB9XG4gICAgICAjc2l0ZS1oZWFkZXIgLnByaW1hcnktbmF2IC5tZW51IC5tZW51LWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAgICAgI3NpdGUtaGVhZGVyIC5wcmltYXJ5LW5hdiAubWVudSAubWVudS1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgICAgICAgI3NpdGUtaGVhZGVyIC5wcmltYXJ5LW5hdiAubWVudSAubWVudS1pdGVtIGEge1xuICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgIHotaW5kZXg6IDExNTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAgICNzaXRlLWhlYWRlciAucHJpbWFyeS1uYXYgLm1lbnUgLm1lbnUtaXRlbSBhOmhvdmVyIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDNweCAjZTJlMmUyIGluc2V0OyB9XG4gICAgICAgICAgI3NpdGUtaGVhZGVyIC5wcmltYXJ5LW5hdiAubWVudSAubWVudS1pdGVtIGE6Zm9jdXMge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggM3B4ICNmZWZlZmUgaW5zZXQ7IH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAgICAgI3NpdGUtaGVhZGVyIC5wcmltYXJ5LW5hdiAubWVudSAubWVudS1pdGVtLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhOmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAgICNzaXRlLWhlYWRlciAucHJpbWFyeS1uYXYgLm1lbnUgLm1lbnUtaXRlbS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH1cbiAgICAgICAgICAgICNzaXRlLWhlYWRlciAucHJpbWFyeS1uYXYgLm1lbnUgLm1lbnUtaXRlbS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYTphZnRlciB7XG4gICAgICAgICAgICAgIHJpZ2h0OiA3LjVweDsgfSB9XG4gICAgICAjc2l0ZS1oZWFkZXIgLnByaW1hcnktbmF2IC5tZW51ID4gLm1lbnUtaXRlbSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAgICAgI3NpdGUtaGVhZGVyIC5wcmltYXJ5LW5hdiAubWVudSA+IC5tZW51LWl0ZW06aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzc4Mjc4ODsgfSB9XG4gICAgICAgICNzaXRlLWhlYWRlciAucHJpbWFyeS1uYXYgLm1lbnUgPiAubWVudS1pdGVtOmhvdmVyID4gLnN1Ym1lbnUge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAgICNzaXRlLWhlYWRlciAucHJpbWFyeS1uYXYgLm1lbnUgPiAubWVudS1pdGVtID4gLnN1Ym1lbnUge1xuICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIGJhY2tncm91bmQ6ICM3ODI3ODg7XG4gICAgICAgICAgZm9udC1zaXplOiAwLjllbTtcbiAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgIHdpZHRoOiAyNTBweDsgfVxuICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgICAgICAgI3NpdGUtaGVhZGVyIC5wcmltYXJ5LW5hdiAubWVudSA+IC5tZW51LWl0ZW0gPiAuc3VibWVudSB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0byAyZW07XG4gICAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgICBmb250LXNpemU6IDAuOGVtO1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjODkyZDljOyB9IH1cbiAgICAgICAgICAjc2l0ZS1oZWFkZXIgLnByaW1hcnktbmF2IC5tZW51ID4gLm1lbnUtaXRlbSA+IC5zdWJtZW51ID4gLm1lbnUtaXRlbSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgICAgICAgICAjc2l0ZS1oZWFkZXIgLnByaW1hcnktbmF2IC5tZW51ID4gLm1lbnUtaXRlbSA+IC5zdWJtZW51ID4gLm1lbnUtaXRlbTpob3ZlciB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICM2NjIxNzQ7IH1cbiAgICAgICAgICAgICNzaXRlLWhlYWRlciAucHJpbWFyeS1uYXYgLm1lbnUgPiAubWVudS1pdGVtID4gLnN1Ym1lbnUgPiAubWVudS1pdGVtID4gLnN1Ym1lbnUge1xuICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgY29sb3I6ICM5MUQ4RjU7IH1cbiAgICAgICAgICAgICAgI3NpdGUtaGVhZGVyIC5wcmltYXJ5LW5hdiAubWVudSA+IC5tZW51LWl0ZW0gPiAuc3VibWVudSA+IC5tZW51LWl0ZW0gPiAuc3VibWVudSA+IC5tZW51LWl0ZW06aG92ZXIgYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM2MmM3ZjE7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgI3NpdGUtaGVhZGVyIC5wcmltYXJ5LW5hdiA+IC5tZW51IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAjc2l0ZS1oZWFkZXIgLnNlYXJjaC10b2dnbGUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDEuMDcxNDNyZW07XG4gICAgICB0b3A6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgaGVpZ2h0OiA0NXB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDQ1cHg7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIHotaW5kZXg6IDEwMTA7IH0gfVxuICAjc2l0ZS1oZWFkZXIgLnNlYXJjaC10b2dnbGUgYnV0dG9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBsaW5lLWhlaWdodDogMTsgfVxuICAjc2l0ZS1oZWFkZXIgLnNlYXJjaC10b2dnbGUgLmZhIHtcbiAgICBmb250LXNpemU6IDEuMjVlbTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMzAwbXM7IH1cbiAgICAjc2l0ZS1oZWFkZXIgLnNlYXJjaC10b2dnbGUgLmZhOmhvdmVyIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTsgfVxuXG4vKlxuVGhlIHN0YXRpYyBzaXRlIGJvZHkuXG5cbkBzaW5jZSAwLjEuMFxuKi9cbiNzaXRlLWNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHBhZGRpbmc6IDIwcHggMWVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgI3NpdGUtY29udGVudCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cbiAgI3NpdGUtY29udGVudCAucHJpbnQtYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjYWFhO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgei1pbmRleDogOTk5OyB9XG4gICAgI3NpdGUtY29udGVudCAucHJpbnQtYnV0dG9uIC50ZXh0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAgICNzaXRlLWNvbnRlbnQgLnByaW50LWJ1dHRvbiAudGV4dCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lOyB9IH1cbiAgICAjc2l0ZS1jb250ZW50IC5wcmludC1idXR0b24gLmljb24ge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xuICAgICAgdmVydGljYWwtYWxpZ246IHN1YjsgfVxuXG4vKlxuTWFpbiBzaXRlIHNpZGViYXIuXG5cbkBzaW5jZSAwLjEuMFxuKi9cbi5zaXRlLXNpZGViYXIge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5zaXRlLXNpZGViYXIge1xuICAgICAgcGFkZGluZzogMDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnNpdGUtc2lkZWJhciB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxuICAuc2l0ZS1zaWRlYmFyIGhyIHtcbiAgICBib3JkZXItY29sb3I6ICM3ODI3ODg7IH1cbiAgLnNpdGUtc2lkZWJhciBoMy53aWRnZXQtdGl0bGUsIC5zaXRlLXNpZGViYXIgYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LWZhcSAud2lkZ2V0LXRpdGxlLmZhcS10aXRsZSwgYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LWZhcSAuc2l0ZS1zaWRlYmFyIC53aWRnZXQtdGl0bGUuZmFxLXRpdGxlIHtcbiAgICBiYWNrZ3JvdW5kOiAjNzgyNzg4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuICAgIHBhZGRpbmc6IDAuM2VtIDAuMWVtIDAuMWVtIDhweDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLnNpdGUtc2lkZWJhciB1bCB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIG1hcmdpbjogMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNmVtOyB9XG4gICAgLnNpdGUtc2lkZWJhciB1bCBsaS53aWRnZXQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAgICAgLnNpdGUtc2lkZWJhciB1bCBsaS53aWRnZXQ6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLnNpdGUtc2lkZWJhciBhIHtcbiAgICBjb2xvcjogIzNiOGVkZTsgfVxuICAuc2l0ZS1zaWRlYmFyIGxpLmN1cnJlbnQtcGFnZSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6ICM3ODI3ODg7IH1cbiAgICAuc2l0ZS1zaWRlYmFyIGxpLmN1cnJlbnQtcGFnZSBhIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0OyB9XG4gIC5zaXRlLXNpZGViYXIgLndpZGdldC1wb3N0LWNoaWxkcmVuLCAuc2l0ZS1zaWRlYmFyIC5zaHVmZmxlLWZpbHRlciwgLnNpdGUtc2lkZWJhciAud2lkZ2V0X25hdl9tZW51LCAuc2l0ZS1zaWRlYmFyIC5hdHRyYWN0aW9ucy1saXN0LXdpZGdldCB7XG4gICAgZm9udC1zaXplOiAxLjNlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDsgfVxuICAgIC5zaXRlLXNpZGViYXIgLndpZGdldC1wb3N0LWNoaWxkcmVuIGxpLCAuc2l0ZS1zaWRlYmFyIC5zaHVmZmxlLWZpbHRlciBsaSwgLnNpdGUtc2lkZWJhciAud2lkZ2V0X25hdl9tZW51IGxpLCAuc2l0ZS1zaWRlYmFyIC5hdHRyYWN0aW9ucy1saXN0LXdpZGdldCBsaSB7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAgIC5zaXRlLXNpZGViYXIgLndpZGdldC1wb3N0LWNoaWxkcmVuIGxpIGEsIC5zaXRlLXNpZGViYXIgLnNodWZmbGUtZmlsdGVyIGxpIGEsIC5zaXRlLXNpZGViYXIgLndpZGdldF9uYXZfbWVudSBsaSBhLCAuc2l0ZS1zaWRlYmFyIC5hdHRyYWN0aW9ucy1saXN0LXdpZGdldCBsaSBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMmVtIDA7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5zaXRlLXNpZGViYXIgLndpZGdldC1wb3N0LWNoaWxkcmVuIGxpIGE6aG92ZXIsIC5zaXRlLXNpZGViYXIgLnNodWZmbGUtZmlsdGVyIGxpIGE6aG92ZXIsIC5zaXRlLXNpZGViYXIgLndpZGdldF9uYXZfbWVudSBsaSBhOmhvdmVyLCAuc2l0ZS1zaWRlYmFyIC5hdHRyYWN0aW9ucy1saXN0LXdpZGdldCBsaSBhOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogIzc4Mjc4ODsgfVxuXG4vKlxuVGhlIHN0YXRpYyBzaXRlIGZvb3Rlci5cblxuQHNpbmNlIDAuMS4wXG4qL1xuI3NpdGUtZm9vdGVyIHtcbiAgYmFja2dyb3VuZDogIzVlOTRjZDtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjNDA3QUIxOyB9XG4gICNzaXRlLWZvb3RlciA+ICo6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctdG9wOiAzMHB4OyB9XG4gICNzaXRlLWZvb3RlciA+ICo6bGFzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1ib3R0b206IDMwcHg7IH1cbiAgI3NpdGUtZm9vdGVyIHAge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBtYXJnaW46IDEuNWVtIDA7IH1cbiAgI3NpdGUtZm9vdGVyIC5mb290ZXItbmF2IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAjc2l0ZS1mb290ZXIgLmZvb3Rlci1uYXYgLm1lbnUtaXRlbSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjQ3NjE5cmVtOyB9XG4gICAgICAjc2l0ZS1mb290ZXIgLmZvb3Rlci1uYXYgLm1lbnUtaXRlbSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgI3NpdGUtZm9vdGVyIC5mb290ZXItbmF2IC5tZW51LWl0ZW0ge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNzE0MjlyZW07IH1cbiAgICAgICAgICAjc2l0ZS1mb290ZXIgLmZvb3Rlci1uYXYgLm1lbnUtaXRlbSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICAgICAgI3NpdGUtZm9vdGVyIC5mb290ZXItbmF2IC5tZW51LWl0ZW0gYSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgcGFkZGluZzogMC44NWVtIDFlbTtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ODI3ODg7XG4gICAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBwYWRkaW5nOiAwIDAuMmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxLjNweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBoZWlnaHQ6IDYuNWVtOyB9XG4gICAgICAgIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAjc2l0ZS1mb290ZXIgLmZvb3Rlci1uYXYgLm1lbnUtaXRlbSBhIHtcbiAgICAgICAgICBvdXRsaW5lOiAwOyB9XG4gICAgICAgICNzaXRlLWZvb3RlciAuZm9vdGVyLW5hdiAubWVudS1pdGVtIGE6aG92ZXIsICNzaXRlLWZvb3RlciAuZm9vdGVyLW5hdiAubWVudS1pdGVtIGE6Zm9jdXMge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjIxNzQ7XG4gICAgICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAgICAgI3NpdGUtZm9vdGVyIC5mb290ZXItbmF2IC5tZW51LWl0ZW0gYTpob3ZlciB7XG4gICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgI2UyZTJlMjsgfVxuICAgICAgICAjc2l0ZS1mb290ZXIgLmZvb3Rlci1uYXYgLm1lbnUtaXRlbSBhOmZvY3VzIHtcbiAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAjZmVmZWZlOyB9XG4gICAgICAgICNzaXRlLWZvb3RlciAuZm9vdGVyLW5hdiAubWVudS1pdGVtIGEgLnRleHQge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAgICNzaXRlLWZvb3RlciAuZm9vdGVyLW5hdiAubWVudS1pdGVtIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IC43MTQyODU3MTQzcmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDEuNDI4NTcxNDI4NnJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogLjcxNDI4NTcxNDNyZW07XG4gICAgICBjbGVhcjogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAjc2l0ZS1mb290ZXIgLmZvb3Rlci1uYXYgLm1lbnUtaXRlbTpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMzU3MTQyODU3MTVyZW07IH1cbiAgICAgICAgI3NpdGUtZm9vdGVyIC5mb290ZXItbmF2IC5tZW51LWl0ZW06bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjM1NzE0Mjg1NzE1cmVtOyB9IH1cbiAgI3NpdGUtZm9vdGVyIC5mb290ZXItdG9wIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTBweDtcbiAgICBwYWRkaW5nLXRvcDogMS40Mjg1N3JlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAjc2l0ZS1mb290ZXIgLmZvb3Rlci10b3Age1xuICAgICAgICBwYWRkaW5nLXRvcDogMi4xNDI4NnJlbTsgfSB9XG4gICAgI3NpdGUtZm9vdGVyIC5mb290ZXItdG9wIC5mb290ZXItY2VudGVyIHtcbiAgICAgIGZvbnQtc2l6ZTogMC44ZW07IH1cbiAgICAgICNzaXRlLWZvb3RlciAuZm9vdGVyLXRvcCAuZm9vdGVyLWNlbnRlciAuZm9vdGVyLW1ldGEge1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAwOyB9XG4gICAgICAjc2l0ZS1mb290ZXIgLmZvb3Rlci10b3AgLmZvb3Rlci1jZW50ZXIgLmZvb3Rlci1ibHVyYiB7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogM2VtOyB9XG4gICAgICAjc2l0ZS1mb290ZXIgLmZvb3Rlci10b3AgLmZvb3Rlci1jZW50ZXIgLmZvb3Rlci1zdWItbWVudSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgICAjc2l0ZS1mb290ZXIgLmZvb3Rlci10b3AgLmZvb3Rlci1jZW50ZXIgLmZvb3Rlci1zdWItbWVudSBhIHtcbiAgICAgICAgICBjb2xvcjogaW5oZXJpdDsgfVxuICAgICAgICAjc2l0ZS1mb290ZXIgLmZvb3Rlci10b3AgLmZvb3Rlci1jZW50ZXIgLmZvb3Rlci1zdWItbWVudSAubWVudS1pdGVtIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQ7XG4gICAgICAgICAgcGFkZGluZzogMCAxZW07IH1cbiAgICAgICAgICAjc2l0ZS1mb290ZXIgLmZvb3Rlci10b3AgLmZvb3Rlci1jZW50ZXIgLmZvb3Rlci1zdWItbWVudSAubWVudS1pdGVtOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7IH1cbiAgICAjc2l0ZS1mb290ZXIgLmZvb3Rlci10b3AgLmZvb3Rlci1yaWdodCB7XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7IH1cbiAgI3NpdGUtZm9vdGVyIC5mb290ZXItbmF2IHtcbiAgICBiYWNrZ3JvdW5kOiAjNWU5NGNkOyB9XG4gICNzaXRlLWZvb3RlciAuZm9vdGVyLXRvcCwgI3NpdGUtZm9vdGVyIC5mb290ZXItYm90dG9tIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDAyODhmOyB9XG4gICNzaXRlLWZvb3RlciAuZm9vdGVyLWxvZ29zIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAjc2l0ZS1mb290ZXIgLmZvb3Rlci1sb2dvcyBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB3aWR0aDogMTUwcHg7XG4gICAgICBtYXJnaW46IDJlbTsgfVxuXG4uc2F0aXNmaV9jaGF0LWJ1dHRvbiB7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgcmlnaHQ6IDclICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogNSUgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuc2F0aXNmaV9jaGF0LWJ1dHRvbiB7XG4gICAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICByaWdodDogMTclICFpbXBvcnRhbnQ7XG4gICAgICBib3R0b206IDUlICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2OHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAuc2F0aXNmaV9jaGF0LWJ1dHRvbiB7XG4gICAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICByaWdodDogMTMlICFpbXBvcnRhbnQ7XG4gICAgICBib3R0b206IDUlICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5zYXRpc2ZpX2NoYXQtYnV0dG9uIHtcbiAgICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgIHJpZ2h0OiAxMCUgIWltcG9ydGFudDtcbiAgICAgIGJvdHRvbTogNiUgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnNhdGlzZmlfY2hhdC1idXR0b24ge1xuICAgICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgcmlnaHQ6IDclICFpbXBvcnRhbnQ7XG4gICAgICBib3R0b206IDUlICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSBhbmQgKG1heC13aWR0aDogNzY4cHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgLnNhdGlzZmlfY2hhdC1idXR0b24ge1xuICAgICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgcmlnaHQ6IDExJSAhaW1wb3J0YW50O1xuICAgICAgYm90dG9tOiA1JSAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5zYXRpc2ZpX2NoYXQtYnV0dG9uIHtcbiAgICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgIHJpZ2h0OiAxMCUgIWltcG9ydGFudDtcbiAgICAgIGJvdHRvbTogNSUgIWltcG9ydGFudDsgfSB9XG5cbi5zYXRpc2ZpX2NoYXQge1xuICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiA3JSAhaW1wb3J0YW50OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5zYXRpc2ZpX2NoYXQge1xuICAgICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgcmlnaHQ6IDAgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnNhdGlzZmlfY2hhdCB7XG4gICAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICByaWdodDogMCAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuc2F0aXNmaV9jaGF0IHtcbiAgICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgIHJpZ2h0OiA3JSAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkgYW5kIChtYXgtd2lkdGg6IDc2OHB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgIC5zYXRpc2ZpX2NoYXQge1xuICAgICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgcmlnaHQ6IDAgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSBhbmQgKG1heC13aWR0aDogMTAyNHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAuc2F0aXNmaV9jaGF0IHtcbiAgICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgIHJpZ2h0OiAxMCUgIWltcG9ydGFudDsgfSB9XG5cbi8qXG5TaW5nbGUgcHJlc3MgcmVsZWFzZS5cblxuQHNpbmNlIDAuMS4wXG4qL1xuLnByZXNzLXJlbGVhc2UtbG9jYXRpb24ge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5wcmVzcy1yZWxlYXNlLXRpdGxlIHtcbiAgY29sb3I6ICMzYjhlZGU7IH1cbiAgLnByZXNzLXJlbGVhc2UtdGl0bGUgYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7IH1cbiAgICAucHJlc3MtcmVsZWFzZS10aXRsZSBhOmhvdmVyLCAucHJlc3MtcmVsZWFzZS10aXRsZSBhOmhvdmVyICoge1xuICAgICAgY29sb3I6ICM3ODI3ODg7IH1cblxuLnByZXNzLXJlbGVhc2Utc3ViaGVhZGluZyB7XG4gIGNvbG9yOiAjNWY1ZjVmOyB9XG5cbi5wcmVzcy1yZWxlYXNlLWRhdGUge1xuICBjb2xvcjogIzNiOGVkZTsgfVxuXG4ucHJlc3MtcmVsZWFzZS1jb250YWN0IHtcbiAgY29sb3I6ICM3Nzc7IH1cbiAgLnByZXNzLXJlbGVhc2UtY29udGFjdCBwIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLnByZXNzLXJlbGVhc2UtY29udGFjdCAucHJlc3MtcmVsZWFzZS1jb250YWN0LWhlYWRpbmcge1xuICAgIGNvbG9yOiAjNTU1O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuI2FyY2hpdmUtcHJlc3MtcmVsZWFzZSAucHJlc3MtcmVsZWFzZS1saXN0IC5wcmVzcy1yZWxlYXNlIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNFN0U4RUE7IH1cbiAgI2FyY2hpdmUtcHJlc3MtcmVsZWFzZSAucHJlc3MtcmVsZWFzZS1saXN0IC5wcmVzcy1yZWxlYXNlOmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi10b3A6IDFlbTsgfVxuICAjYXJjaGl2ZS1wcmVzcy1yZWxlYXNlIC5wcmVzcy1yZWxlYXNlLWxpc3QgLnByZXNzLXJlbGVhc2U6bGFzdC1vZi10eXBlIHtcbiAgICBib3JkZXI6IG5vbmU7IH1cblxuI3NpbmdsZS1wcmVzcy1yZWxlYXNlLmFyY2hpdmVkIC5wcmVzcy1yZWxlYXNlLXRpdGxlLCAjc2luZ2xlLXByZXNzLXJlbGVhc2UuYXJjaGl2ZWQgLnByZXNzLXJlbGVhc2UtZGF0ZSwgI3NpbmdsZS1wcmVzcy1yZWxlYXNlLmFyY2hpdmVkIC5wcmVzcy1yZWxlYXNlLXN1YmhlYWRpbmcsICNzaW5nbGUtcHJlc3MtcmVsZWFzZS5hcmNoaXZlZCAucHJlc3MtcmVsZWFzZS1leGNlcnB0LCAjc2luZ2xlLXByZXNzLXJlbGVhc2UuYXJjaGl2ZWQgLnBhZ2UtY29weSwgI3NpbmdsZS1wcmVzcy1yZWxlYXNlLmFyY2hpdmVkIC5wb3N0LXRpdGxlIGEsICNzaW5nbGUtcHJlc3MtcmVsZWFzZS5hcmNoaXZlZCAucG9zdC1leGNlcnB0LCAjYXJjaGl2ZS1wcmVzcy1yZWxlYXNlIC5wcmVzcy1yZWxlYXNlLmFyY2hpdmVkIC5wcmVzcy1yZWxlYXNlLXRpdGxlLCAjYXJjaGl2ZS1wcmVzcy1yZWxlYXNlIC5wcmVzcy1yZWxlYXNlLmFyY2hpdmVkIC5wcmVzcy1yZWxlYXNlLWRhdGUsICNhcmNoaXZlLXByZXNzLXJlbGVhc2UgLnByZXNzLXJlbGVhc2UuYXJjaGl2ZWQgLnByZXNzLXJlbGVhc2Utc3ViaGVhZGluZywgI2FyY2hpdmUtcHJlc3MtcmVsZWFzZSAucHJlc3MtcmVsZWFzZS5hcmNoaXZlZCAucHJlc3MtcmVsZWFzZS1leGNlcnB0LCAjYXJjaGl2ZS1wcmVzcy1yZWxlYXNlIC5wcmVzcy1yZWxlYXNlLmFyY2hpdmVkIC5wYWdlLWNvcHksICNhcmNoaXZlLXByZXNzLXJlbGVhc2UgLnByZXNzLXJlbGVhc2UuYXJjaGl2ZWQgLnBvc3QtdGl0bGUgYSwgI2FyY2hpdmUtcHJlc3MtcmVsZWFzZSAucHJlc3MtcmVsZWFzZS5hcmNoaXZlZCAucG9zdC1leGNlcnB0LCAuc2VhcmNoLXJlc3VsdHMgLnByZXNzLXJlbGVhc2UuYXJjaGl2ZWQgLnByZXNzLXJlbGVhc2UtdGl0bGUsIC5zZWFyY2gtcmVzdWx0cyAucHJlc3MtcmVsZWFzZS5hcmNoaXZlZCAucHJlc3MtcmVsZWFzZS1kYXRlLCAuc2VhcmNoLXJlc3VsdHMgLnByZXNzLXJlbGVhc2UuYXJjaGl2ZWQgLnByZXNzLXJlbGVhc2Utc3ViaGVhZGluZywgLnNlYXJjaC1yZXN1bHRzIC5wcmVzcy1yZWxlYXNlLmFyY2hpdmVkIC5wcmVzcy1yZWxlYXNlLWV4Y2VycHQsIC5zZWFyY2gtcmVzdWx0cyAucHJlc3MtcmVsZWFzZS5hcmNoaXZlZCAucGFnZS1jb3B5LCAuc2VhcmNoLXJlc3VsdHMgLnByZXNzLXJlbGVhc2UuYXJjaGl2ZWQgLnBvc3QtdGl0bGUgYSwgLnNlYXJjaC1yZXN1bHRzIC5wcmVzcy1yZWxlYXNlLmFyY2hpdmVkIC5wb3N0LWV4Y2VycHQge1xuICBjb2xvcjogIzQyNGQ1MjsgfVxuXG4jc2luZ2xlLXByZXNzLXJlbGVhc2UuYXJjaGl2ZWQgLnBvc3QtdGl0bGU6aG92ZXIsICNzaW5nbGUtcHJlc3MtcmVsZWFzZS5hcmNoaXZlZCAucG9zdC10aXRsZTpob3ZlciAqLCAjYXJjaGl2ZS1wcmVzcy1yZWxlYXNlIC5wcmVzcy1yZWxlYXNlLmFyY2hpdmVkIC5wb3N0LXRpdGxlOmhvdmVyLCAjYXJjaGl2ZS1wcmVzcy1yZWxlYXNlIC5wcmVzcy1yZWxlYXNlLmFyY2hpdmVkIC5wb3N0LXRpdGxlOmhvdmVyICosIC5zZWFyY2gtcmVzdWx0cyAucHJlc3MtcmVsZWFzZS5hcmNoaXZlZCAucG9zdC10aXRsZTpob3ZlciwgLnNlYXJjaC1yZXN1bHRzIC5wcmVzcy1yZWxlYXNlLmFyY2hpdmVkIC5wb3N0LXRpdGxlOmhvdmVyICoge1xuICBjb2xvcjogIzc4Mjc4ODsgfVxuXG4vKlxuU2luZ2xlIHZlbmRvci5cblxuQHNpbmNlIDAuMS4wXG4qL1xuLnZlbmRvci10aXRsZSB7XG4gIGNvbG9yOiAjNzgyNzg4O1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi52ZW5kb3ItaG91cnMtaW5mb3JtYXRpb24ge1xuICBjb2xvcjogIzNiOGVkZTtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgbWFyZ2luLXRvcDogMDsgfVxuXG4udmVuZG9yLWxpc3QgLnZlbmRvciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjRTdFOEVBO1xuICBtYXJnaW46IDJlbSAwOyB9XG4gIC52ZW5kb3ItbGlzdCAudmVuZG9yOmxhc3Qtb2YtdHlwZSB7XG4gICAgYm9yZGVyOiBub25lOyB9XG5cbiNhcmNoaXZlLXZlbmRvciAudmVuZG9yLWRlc2NyaXB0aW9uIHtcbiAgcGFkZGluZzogMDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgI2FyY2hpdmUtdmVuZG9yIC52ZW5kb3ItaW1hZ2Uge1xuICAgIGJhY2tncm91bmQ6ICMxYzc1YmM7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BnbzhjM1puSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZDJsa2RHZzlJakV3TUNVaUlHaGxhV2RvZEQwaU1UQXdKU0lnZG1sbGQwSnZlRDBpTUNBd0lERWdNU0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWJtOXVaU0krQ2lBZ1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTSm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJZ2VERTlJakFsSWlCNU1UMGlNQ1VpSUhneVBTSXhNREFsSWlCNU1qMGlNQ1VpUGdvZ0lDQWdQSE4wYjNBZ2IyWm1jMlYwUFNJd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJKbU1XVXlaQ0lnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlObU5UazBOemNpSUhOMGIzQXRiM0JoWTJsMGVUMGlNU0l2UGdvZ0lEd3ZiR2x1WldGeVIzSmhaR2xsYm5RK0NpQWdQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRWlJR2hsYVdkb2REMGlNU0lnWm1sc2JEMGlkWEpzS0NObmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0tTSWdMejRLUEM5emRtYyspO1xuICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICMxYzc1YmMgMCUsICM2NmFjZGUgMTAwJSk7XG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGNvbG9yLXN0b3AoMCUsICMxYzc1YmMpLCBjb2xvci1zdG9wKDEwMCUsICM2NmFjZGUpKTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjMWM3NWJjIDAlLCAjNjZhY2RlIDEwMCUpO1xuICAgIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCAjMWM3NWJjIDAlLCAjNjZhY2RlIDEwMCUpO1xuICAgIGJhY2tncm91bmQ6IC1tcy1saW5lYXItZ3JhZGllbnQobGVmdCwgIzFjNzViYyAwJSwgIzY2YWNkZSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMxYzc1YmMgMCUsICM2NmFjZGUgMTAwJSk7XG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNiZjFlMmQnLCBlbmRDb2xvcnN0cj0nI2Y1OTQ3NycsR3JhZGllbnRUeXBlPTEgKTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfSB9XG5cbiNhcmNoaXZlLXZlbmRvciAudmVuZG9yLWltYWdlIC52ZW5kb3ItdGl0bGUge1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxLjJlbTsgfVxuXG4jYXJjaGl2ZS12ZW5kb3IgLnZlbmRvci1pbWFnZSAudmVuZG9yLWhvdXJzLWluZm9ybWF0aW9uIHtcbiAgY29sb3I6ICNBQ0Q2Rjg7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAxZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICNhcmNoaXZlLXZlbmRvciAudmVuZG9yLWltYWdlIGltZyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWF4LXdpZHRoOiA0MCU7XG4gICAgcGFkZGluZy1yaWdodDogMC41ZW07IH0gfVxuXG4vKlxuU3R5bGVzIHNpbmdsZS5waHAuXG5cbkBzaW5jZSAwLjEuMFxuKi9cbi8qXG5TaW5nbGUgYW5pbWFsIHBvc3QuXG5cbkBzaW5jZSAwLjEuMFxuKi9cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIGJvZHkuc2luZ2xlLWFuaW1hbCAucG9zdC1jb250ZW50IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjA3MTQzcmVtOyB9IH1cblxuYm9keS5zaW5nbGUtYW5pbWFsIC5hbmltYWwtcGFnZS1ncmFkaWVudCB7XG4gIGJhY2tncm91bmQ6ICNDNEQ3RUU7XG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI0M0RDdFRSAwJSwgI2ZmZiAxMDAlKTtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwJSwgI0M0RDdFRSksIGNvbG9yLXN0b3AoMTAwJSwgI2ZmZikpO1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNDNEQ3RUUgMCUsICNmZmYgMTAwJSk7XG4gIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICNDNEQ3RUUgMCUsICNmZmYgMTAwJSk7XG4gIGJhY2tncm91bmQ6IC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjQzREN0VFIDAlLCAjZmZmIDEwMCUpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjQzREN0VFIDAlLCAjZmZmIDEwMCUpO1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nIzI1OGRjOCcsIGVuZENvbG9yc3RyPScjMjIzOWI3JyxHcmFkaWVudFR5cGU9MCApO1xuICBwYWRkaW5nOiAxZW0gMWVtIDA7IH1cblxuYm9keS5zaW5nbGUtYW5pbWFsIC5mZWF0dXJlZC1pbWFnZSB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIGJvZHkuc2luZ2xlLWFuaW1hbCAuZmVhdHVyZWQtaW1hZ2UgaW1nIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG5ib2R5LnNpbmdsZS1hbmltYWwgLmFuaW1hbC10aXRsZSB7XG4gIGNvbG9yOiAjMDAzM2EwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBtYXJnaW4tdG9wOiAwO1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5ib2R5LnNpbmdsZS1hbmltYWwgLnNjaWVudGlmaWMtbmFtZSB7XG4gIGNvbG9yOiAjM2I4ZWRlO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogMS41ZW07IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgYm9keS5zaW5nbGUtYW5pbWFsIC5hbmltYWwtcmlnaHQtc2lkZWJhciB7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG5cbmJvZHkuc2luZ2xlLWFuaW1hbCAuYW5pbWFsLWZhY3RzIHtcbiAgYmFja2dyb3VuZDogIzY2YWNkZTtcbiAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BnbzhjM1puSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZDJsa2RHZzlJakV3TUNVaUlHaGxhV2RvZEQwaU1UQXdKU0lnZG1sbGQwSnZlRDBpTUNBd0lERWdNU0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWJtOXVaU0krQ2lBZ1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTSm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJZ2VERTlJakFsSWlCNU1UMGlNQ1VpSUhneVBTSXhNREFsSWlCNU1qMGlNQ1VpUGdvZ0lDQWdQSE4wYjNBZ2IyWm1jMlYwUFNJd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJKbU1XVXlaQ0lnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlObU5UazBOemNpSUhOMGIzQXRiM0JoWTJsMGVUMGlNU0l2UGdvZ0lEd3ZiR2x1WldGeVIzSmhaR2xsYm5RK0NpQWdQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRWlJR2hsYVdkb2REMGlNU0lnWm1sc2JEMGlkWEpzS0NObmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0tTSWdMejRLUEM5emRtYyspO1xuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjNjZhY2RlIDAlLCAjMWM3NWJjIDEwMCUpO1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgY29sb3Itc3RvcCgwJSwgIzY2YWNkZSksIGNvbG9yLXN0b3AoMTAwJSwgIzFjNzViYykpO1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjNjZhY2RlIDAlLCAjMWM3NWJjIDEwMCUpO1xuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgIzY2YWNkZSAwJSwgIzFjNzViYyAxMDAlKTtcbiAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LCAjNjZhY2RlIDAlLCAjMWM3NWJjIDEwMCUpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICM2NmFjZGUgMCUsICMxYzc1YmMgMTAwJSk7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjYmYxZTJkJywgZW5kQ29sb3JzdHI9JyNmNTk0NzcnLEdyYWRpZW50VHlwZT0xICk7XG4gIG1hcmdpbi10b3A6IDAuNWVtO1xuICBwYWRkaW5nOiAwLjVlbTsgfVxuICBib2R5LnNpbmdsZS1hbmltYWwgLmFuaW1hbC1mYWN0cyBoMywgYm9keS5zaW5nbGUtYW5pbWFsIC5hbmltYWwtZmFjdHMgYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LWZhcSAuZmFxLXRpdGxlLCBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmFxIGJvZHkuc2luZ2xlLWFuaW1hbCAuYW5pbWFsLWZhY3RzIC5mYXEtdGl0bGUge1xuICAgIGNvbG9yOiAjNzgyNzg4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgYm9keS5zaW5nbGUtYW5pbWFsIC5hbmltYWwtZmFjdHMgLmZhY3QtdGl0bGUge1xuICAgIGNvbG9yOiAjNzgyNzg4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgYm9keS5zaW5nbGUtYW5pbWFsIC5hbmltYWwtZmFjdHMgLmZhY3QtY29udGVudCB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuICBib2R5LnNpbmdsZS1hbmltYWwgLmFuaW1hbC1mYWN0cyAuYW5pbWFsLWhhYml0YXQgLmZhY3QtY29udGVudCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgbWFyZ2luLWxlZnQ6IC0zcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gICAgYmFja2dyb3VuZDogIzBDNzNCQztcbiAgICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUEvUGdvOGMzWm5JSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdkMmxrZEdnOUlqRXdNQ1VpSUdobGFXZG9kRDBpTVRBd0pTSWdkbWxsZDBKdmVEMGlNQ0F3SURFZ01TSWdjSEpsYzJWeWRtVkJjM0JsWTNSU1lYUnBiejBpYm05dVpTSStDaUFnUEd4cGJtVmhja2R5WVdScFpXNTBJR2xrUFNKbmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0lpQm5jbUZrYVdWdWRGVnVhWFJ6UFNKMWMyVnlVM0JoWTJWUGJsVnpaU0lnZURFOUlqQWxJaUI1TVQwaU1DVWlJSGd5UFNJeE1EQWxJaUI1TWowaU1DVWlQZ29nSUNBZ1BITjBiM0FnYjJabWMyVjBQU0l3SlNJZ2MzUnZjQzFqYjJ4dmNqMGlJMkptTVdVeVpDSWdjM1J2Y0MxdmNHRmphWFI1UFNJeElpOCtDaUFnSUNBOGMzUnZjQ0J2Wm1aelpYUTlJakV3TUNVaUlITjBiM0F0WTI5c2IzSTlJaU5tTlRrME56Y2lJSE4wYjNBdGIzQmhZMmwwZVQwaU1TSXZQZ29nSUR3dmJHbHVaV0Z5UjNKaFpHbGxiblErQ2lBZ1BISmxZM1FnZUQwaU1DSWdlVDBpTUNJZ2QybGtkR2c5SWpFaUlHaGxhV2RvZEQwaU1TSWdabWxzYkQwaWRYSnNLQ05uY21Ga0xYVmpaMmN0WjJWdVpYSmhkR1ZrS1NJZ0x6NEtQQzl6ZG1jKyk7XG4gICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgIzBDNzNCQyAwJSwgcmdiYSgyNSwgMTE4LCAxODcsIDApIDEwMCUpO1xuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBjb2xvci1zdG9wKDAlLCAjMEM3M0JDKSwgY29sb3Itc3RvcCgxMDAlLCByZ2JhKDI1LCAxMTgsIDE4NywgMCkpKTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjMEM3M0JDIDAlLCByZ2JhKDI1LCAxMTgsIDE4NywgMCkgMTAwJSk7XG4gICAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICMwQzczQkMgMCUsIHJnYmEoMjUsIDExOCwgMTg3LCAwKSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KGxlZnQsICMwQzczQkMgMCUsIHJnYmEoMjUsIDExOCwgMTg3LCAwKSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMwQzczQkMgMCUsIHJnYmEoMjUsIDExOCwgMTg3LCAwKSAxMDAlKTtcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI2JmMWUyZCcsIGVuZENvbG9yc3RyPScjZjU5NDc3JyxHcmFkaWVudFR5cGU9MSApOyB9XG4gICAgYm9keS5zaW5nbGUtYW5pbWFsIC5hbmltYWwtZmFjdHMgLmFuaW1hbC1oYWJpdGF0IC5mYWN0LWNvbnRlbnQgYSB7XG4gICAgICBjb2xvcjogaW5oZXJpdDsgfVxuICAgICAgYm9keS5zaW5nbGUtYW5pbWFsIC5hbmltYWwtZmFjdHMgLmFuaW1hbC1oYWJpdGF0IC5mYWN0LWNvbnRlbnQgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjZTZlNmU2OyB9XG5cbmJvZHkuc2luZ2xlLWFuaW1hbCAubW9yZS1pbmZvIHtcbiAgYmFja2dyb3VuZDogIzY2YWNkZTtcbiAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BnbzhjM1puSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZDJsa2RHZzlJakV3TUNVaUlHaGxhV2RvZEQwaU1UQXdKU0lnZG1sbGQwSnZlRDBpTUNBd0lERWdNU0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWJtOXVaU0krQ2lBZ1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTSm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJZ2VERTlJakFsSWlCNU1UMGlNQ1VpSUhneVBTSXhNREFsSWlCNU1qMGlNQ1VpUGdvZ0lDQWdQSE4wYjNBZ2IyWm1jMlYwUFNJd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJKbU1XVXlaQ0lnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlObU5UazBOemNpSUhOMGIzQXRiM0JoWTJsMGVUMGlNU0l2UGdvZ0lEd3ZiR2x1WldGeVIzSmhaR2xsYm5RK0NpQWdQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRWlJR2hsYVdkb2REMGlNU0lnWm1sc2JEMGlkWEpzS0NObmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0tTSWdMejRLUEM5emRtYyspO1xuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjNjZhY2RlIDAlLCAjMWM3NWJjIDEwMCUpO1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgY29sb3Itc3RvcCgwJSwgIzY2YWNkZSksIGNvbG9yLXN0b3AoMTAwJSwgIzFjNzViYykpO1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjNjZhY2RlIDAlLCAjMWM3NWJjIDEwMCUpO1xuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgIzY2YWNkZSAwJSwgIzFjNzViYyAxMDAlKTtcbiAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LCAjNjZhY2RlIDAlLCAjMWM3NWJjIDEwMCUpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICM2NmFjZGUgMCUsICMxYzc1YmMgMTAwJSk7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjYmYxZTJkJywgZW5kQ29sb3JzdHI9JyNmNTk0NzcnLEdyYWRpZW50VHlwZT0xICk7XG4gIHBhZGRpbmc6IDAuNWVtO1xuICBtYXJnaW4tdG9wOiAxLjA3MTQzcmVtOyB9XG4gIGJvZHkuc2luZ2xlLWFuaW1hbCAubW9yZS1pbmZvIGgzLCBib2R5LnNpbmdsZS1hbmltYWwgLm1vcmUtaW5mbyBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmFxIC5mYXEtdGl0bGUsIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgYm9keS5zaW5nbGUtYW5pbWFsIC5tb3JlLWluZm8gLmZhcS10aXRsZSB7XG4gICAgY29sb3I6ICM3ODI3ODg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG5ib2R5LnNpbmdsZS1hbmltYWwgLmZ1bi1mYWN0cyB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjNzgyNzg4O1xuICBwYWRkaW5nLXRvcDogMWVtO1xuICBtYXJnaW4tdG9wOiAxZW07IH1cbiAgYm9keS5zaW5nbGUtYW5pbWFsIC5mdW4tZmFjdHMgaDMsIGJvZHkuc2luZ2xlLWFuaW1hbCAuZnVuLWZhY3RzIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgLmZhcS10aXRsZSwgYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LWZhcSBib2R5LnNpbmdsZS1hbmltYWwgLmZ1bi1mYWN0cyAuZmFxLXRpdGxlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjNzgyNzg4OyB9XG4gIGJvZHkuc2luZ2xlLWFuaW1hbCAuZnVuLWZhY3RzIHVsIHtcbiAgICBtYXJnaW4tbGVmdDogM2VtOyB9XG4gICAgYm9keS5zaW5nbGUtYW5pbWFsIC5mdW4tZmFjdHMgdWwgbGk6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICM3ODI3ODg7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwLjM1ZW0gMCAwLjM1ZW0gMC40NWVtO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIGxlZnQ6IC0xZW07XG4gICAgICB0b3A6IDAuOWVtO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi8qXG5TaW5nbGUgYXR0cmFjdGlvbiBwb3N0LlxuXG5Ac2luY2UgMC4xLjBcbiovXG5ib2R5LnNpbmdsZS1hdHRyYWN0aW9uIC5zdWItdGl0bGUge1xuICBjb2xvcjogIzNiOGVkZTtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbi10b3A6IDFlbTsgfVxuXG5ib2R5LnNpbmdsZS1hdHRyYWN0aW9uIC5jb250ZW50LWJsb2Nrcy1saXN0IC5jb250ZW50LWJsb2NrLXN1Yi10aXRsZSB7XG4gIGNvbG9yOiAjM2I4ZWRlO1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5ib2R5LnNpbmdsZS1hdHRyYWN0aW9uIC5jb250ZW50LWJsb2Nrcy1saXN0IC5jb250ZW50LWJsb2NrLWltYWdlIHtcbiAgcGFkZGluZy1yaWdodDogMC41ZW07IH1cblxuLypcblNpbmdsZSBldmVudCBwb3N0LlxuXG5Ac2luY2UgMC4xLjBcbiovXG5ib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtdGl0bGUge1xuICBjb2xvcjogIzAwMzNhMDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5ib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtbWV0YSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGNvbG9yOiAjM2I4ZWRlO1xuICBmb250LXNpemU6IDEuNWVtO1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LWZpZWxkLXNlcGVyYXRvciB7XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgIzNiOGVkZTtcbiAgbWFyZ2luOiAwIDFlbTtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmllbGQtc2VwZXJhdG9yIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTsgfSB9XG5cbmJvZHkuc2luZ2xlLWV2ZW50IC5wYWdlLWJhbm5lciwgYm9keS5zaW5nbGUtZXZlbnQgLnBhZ2UtYmFubmVyLW1vYmlsZSB7XG4gIG1hcmdpbi1ib3R0b206IDJlbTsgfVxuXG5ib2R5LnNpbmdsZS1ldmVudCAucGFnZS1iYW5uZXItbW9iaWxlIHtcbiAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gIG1hcmdpbi1yaWdodDogLTFlbTtcbiAgd2lkdGg6IGF1dG87IH1cbiAgYm9keS5zaW5nbGUtZXZlbnQgLnBhZ2UtYmFubmVyLW1vYmlsZSBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bzsgfVxuXG5ib2R5LnNpbmdsZS1ldmVudCAucGFnZS1jb3B5OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDsgfVxuXG5ib2R5LnNpbmdsZS1ldmVudCAuZnVsbC13aWR0aC1iYW5uZXIgLnBhZ2UtY29weSB7XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDA7IH1cblxuYm9keS5zaW5nbGUtZXZlbnQgLmZ1bGwtd2lkdGgtYmFubmVyIC5wYWdlLWJhbm5lciB7XG4gIG1hcmdpbjogMDsgfVxuICBib2R5LnNpbmdsZS1ldmVudCAuZnVsbC13aWR0aC1iYW5uZXIgLnBhZ2UtYmFubmVyIGltZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG5cbmJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC10aWNrZXQtbGluayB7XG4gIG1hcmdpbjogMnJlbSAwIDAuMnJlbSAwO1xuICBkaXNwbGF5OiB0YWJsZTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtdGlja2V0LWxpbmsge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC10aWNrZXQtbGluazpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDsgfVxuICAgICAgYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LXRpY2tldC1saW5rOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgwMXB4KSB7XG4gICAgYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LXRpY2tldC1saW5rLmV2ZW50LXRpY2tldC1saW5rLXJpZ2h0IHtcbiAgICAgIHBhZGRpbmc6IDAuNHJlbSAyLjVyZW0gMC40cmVtIDAuNzVyZW07XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMTAwcHg7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTAwcHg7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODAxcHgpIHtcbiAgICBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtdGlja2V0LWxpbmsge1xuICAgICAgbWFyZ2luOiAycmVtIDA7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuXG5ib2R5LnNpbmdsZS1ldmVudCAuYnV0dG9uLWdyb3VwOm50aC1vZi10eXBlKDJuKzEpIC5ldmVudC10aWNrZXQtbGluayB7XG4gIG1hcmdpbi10b3A6IDA7IH1cblxuYm9keS5zaW5nbGUtZXZlbnQgLmJ1dHRvbi1ncm91cC5sYXN0Om5vdCguZmlyc3QpIC5ldmVudC10aWNrZXQtbGluayB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gIGJvZHkuc2luZ2xlLWV2ZW50IC5idXR0b24tZ3JvdXAgLmV2ZW50LXRpY2tldC1saW5rIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjRyZW0gIWltcG9ydGFudDsgfVxuICBib2R5LnNpbmdsZS1ldmVudCAuYnV0dG9uLWdyb3VwLmxhc3QgYTpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW0gIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIGJvZHkuc2luZ2xlLWV2ZW50IC5idXR0b24tZ3JvdXAuZmlyc3Q6bm90KC5sYXN0KSAuZXZlbnQtdGlja2V0LWxpbmsge1xuICAgIG1hcmdpbi1ib3R0b206IDAuMnJlbTsgfVxuICBib2R5LnNpbmdsZS1ldmVudCAuYnV0dG9uLWdyb3VwOm5vdCguZmlyc3QpIC5ldmVudC10aWNrZXQtbGluayB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4ycmVtOyB9IH1cblxuYm9keS5zaW5nbGUtZXZlbnQgI2V2ZW50LWRldGFpbHMge1xuICBwYWRkaW5nOiAwOyB9XG5cbmJvZHkuc2luZ2xlLWV2ZW50IC5kZXRhaWxzLXRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICM4MWJmZTg7XG4gIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQS9QZ284YzNabklIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2QybGtkR2c5SWpFd01DVWlJR2hsYVdkb2REMGlNVEF3SlNJZ2RtbGxkMEp2ZUQwaU1DQXdJREVnTVNJZ2NISmxjMlZ5ZG1WQmMzQmxZM1JTWVhScGJ6MGlibTl1WlNJK0NpQWdQR3hwYm1WaGNrZHlZV1JwWlc1MElHbGtQU0puY21Ga0xYVmpaMmN0WjJWdVpYSmhkR1ZrSWlCbmNtRmthV1Z1ZEZWdWFYUnpQU0oxYzJWeVUzQmhZMlZQYmxWelpTSWdlREU5SWpBbElpQjVNVDBpTUNVaUlIZ3lQU0l4TURBbElpQjVNajBpTVRBd0pTSStDaUFnSUNBOGMzUnZjQ0J2Wm1aelpYUTlJakFsSWlCemRHOXdMV052Ykc5eVBTSWpPREZpWm1VNElpQnpkRzl3TFc5d1lXTnBkSGs5SWpFaUx6NEtJQ0FnSUR4emRHOXdJRzltWm5ObGREMGlNVEF3SlNJZ2MzUnZjQzFqYjJ4dmNqMGlJMlptWm1abVppSWdjM1J2Y0MxdmNHRmphWFI1UFNJeElpOCtDaUFnUEM5c2FXNWxZWEpIY21Ga2FXVnVkRDRLSUNBOGNtVmpkQ0I0UFNJd0lpQjVQU0l3SWlCM2FXUjBhRDBpTVNJZ2FHVnBaMmgwUFNJeElpQm1hV3hzUFNKMWNtd29JMmR5WVdRdGRXTm5aeTFuWlc1bGNtRjBaV1FwSWlBdlBnbzhMM04yWno0PSk7XG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KC00NWRlZywgIzgxYmZlOCAwJSwgI2ZmZmZmZiAxMDAlKTtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCBib3R0b20sIGNvbG9yLXN0b3AoMCUsICM4MWJmZTgpLCBjb2xvci1zdG9wKDEwMCUsICNmZmZmZmYpKTtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCAjODFiZmU4IDAlLCAjZmZmZmZmIDEwMCUpO1xuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCAjODFiZmU4IDAlLCAjZmZmZmZmIDEwMCUpO1xuICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KC00NWRlZywgIzgxYmZlOCAwJSwgI2ZmZmZmZiAxMDAlKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzgxYmZlOCAwJSwgI2ZmZmZmZiAxMDAlKTtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzgxYmZlOCcsIGVuZENvbG9yc3RyPScjZmZmZmZmJywgR3JhZGllbnRUeXBlPTEpO1xuICBjb2xvcjogIzAwMzNhMDsgfVxuICBib2R5LnNpbmdsZS1ldmVudCAuZGV0YWlscy10YWJsZSB0ciB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI0JDREJGMDsgfVxuICAgIGJvZHkuc2luZ2xlLWV2ZW50IC5kZXRhaWxzLXRhYmxlIHRyOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBib3JkZXI6IG5vbmU7IH1cbiAgYm9keS5zaW5nbGUtZXZlbnQgLmRldGFpbHMtdGFibGUgdGgge1xuICAgIHBhZGRpbmctcmlnaHQ6IDFlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICBib2R5LnNpbmdsZS1ldmVudCAuZGV0YWlscy10YWJsZSB7XG4gICAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkOyB9XG4gICAgICBib2R5LnNpbmdsZS1ldmVudCAuZGV0YWlscy10YWJsZSB0aCB7XG4gICAgICAgIHdpZHRoOiAzNSU7IH1cbiAgICAgIGJvZHkuc2luZ2xlLWV2ZW50IC5kZXRhaWxzLXRhYmxlIHVsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAgIGJvZHkuc2luZ2xlLWV2ZW50IC5kZXRhaWxzLXRhYmxlIGRpdltpZF49XCJjckRvbmF0ZVdpZGdldF9cIl0sIGJvZHkuc2luZ2xlLWV2ZW50IC5kZXRhaWxzLXRhYmxlIGRpdltpZF49XCJjckRvbmF0ZVdpZGdldF9cIl0gLmNySW1hZ2VBbmRUaXRsZU91dGVyLCBib2R5LnNpbmdsZS1ldmVudCAuZGV0YWlscy10YWJsZSBkaXZbaWRePVwiY3JEb25hdGVXaWRnZXRfXCJdIC5jckltYWdlQW5kVGl0bGUsIGJvZHkuc2luZ2xlLWV2ZW50IC5kZXRhaWxzLXRhYmxlIGRpdltpZF49XCJjckRvbmF0ZVdpZGdldF9cIl0gLmdyYWRpZW50QnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsgfSB9XG5cbmJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgLmZhcS10aXRsZSB7XG4gIGNvbG9yOiAjNzgyNzg4O1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5ib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtc3BvbnNvcnMgLmNvbnRlbnQge1xuICBvdmVyZmxvdy14OiBoaWRkZW47IH1cblxuYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LXNwb25zb3JzIC5zcG9uc29ycy1oZWFkZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgcGFkZGluZy10b3A6IDAuMWVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC4xZW07XG4gIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG4gIGJhY2tncm91bmQ6ICM3ODI3ODg7XG4gIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQS9QZ284YzNabklIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2QybGtkR2c5SWpFd01DVWlJR2hsYVdkb2REMGlNVEF3SlNJZ2RtbGxkMEp2ZUQwaU1DQXdJREVnTVNJZ2NISmxjMlZ5ZG1WQmMzQmxZM1JTWVhScGJ6MGlibTl1WlNJK0NpQWdQR3hwYm1WaGNrZHlZV1JwWlc1MElHbGtQU0puY21Ga0xYVmpaMmN0WjJWdVpYSmhkR1ZrSWlCbmNtRmthV1Z1ZEZWdWFYUnpQU0oxYzJWeVUzQmhZMlZQYmxWelpTSWdlREU5SWpBbElpQjVNVDBpTUNVaUlIZ3lQU0l4TURBbElpQjVNajBpTUNVaVBnb2dJQ0FnUEhOMGIzQWdiMlptYzJWMFBTSXdKU0lnYzNSdmNDMWpiMnh2Y2owaUkySm1NV1V5WkNJZ2MzUnZjQzF2Y0dGamFYUjVQU0l4SWk4K0NpQWdJQ0E4YzNSdmNDQnZabVp6WlhROUlqRXdNQ1VpSUhOMGIzQXRZMjlzYjNJOUlpTm1OVGswTnpjaUlITjBiM0F0YjNCaFkybDBlVDBpTVNJdlBnb2dJRHd2YkdsdVpXRnlSM0poWkdsbGJuUStDaUFnUEhKbFkzUWdlRDBpTUNJZ2VUMGlNQ0lnZDJsa2RHZzlJakVpSUdobGFXZG9kRDBpTVNJZ1ptbHNiRDBpZFhKc0tDTm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtLU0lnTHo0S1BDOXpkbWMrKTtcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgIzc4Mjc4OCAwJSwgIzVDNkRCNCAxMDAlKTtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGNvbG9yLXN0b3AoMCUsICM3ODI3ODgpLCBjb2xvci1zdG9wKDEwMCUsICM1QzZEQjQpKTtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgIzc4Mjc4OCAwJSwgIzVDNkRCNCAxMDAlKTtcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICM3ODI3ODggMCUsICM1QzZEQjQgMTAwJSk7XG4gIGJhY2tncm91bmQ6IC1tcy1saW5lYXItZ3JhZGllbnQobGVmdCwgIzc4Mjc4OCAwJSwgIzVDNkRCNCAxMDAlKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjNzgyNzg4IDAlLCAjNUM2REI0IDEwMCUpO1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI2JmMWUyZCcsIGVuZENvbG9yc3RyPScjZjU5NDc3JyxHcmFkaWVudFR5cGU9MSApOyB9XG5cbmJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1zcG9uc29ycy5uby1hY2NvcmRpb24sIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1zcG9uc29ycyAuc3BvbnNvcnMtaGVhZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMS4wNzE0Mjg1NzE0cmVtOyB9XG5cbmJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1zcG9uc29ycyAuc3BvbnNvciB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXM7XG4gIGNvbG9yOiAjMDAzM2EwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMmVtOyB9XG4gIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1zcG9uc29ycyAuc3BvbnNvcjpob3ZlciB7XG4gICAgb3BhY2l0eTogMC44OyB9XG4gIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1zcG9uc29ycyAuc3BvbnNvciBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxuICBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtc3BvbnNvcnMgLnNwb25zb3IgLnNwb25zb3ItbGV2ZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgY29sb3I6ICM4ODg7XG4gICAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qXG5TaW5nbGUgcmVudGFsIHBvc3QuXG5cbkBzaW5jZSAwLjEuMFxuKi9cbmJvZHkuc2luZ2xlLXJlbnRhbCAucmVudGFsLXRpdGxlIHtcbiAgY29sb3I6ICMzYjhlZGU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuYm9keS5zaW5nbGUtcmVudGFsIC5jb250ZW50LWJsb2Nrcy1saXN0Om5vdCguYWNjb3JkaW9uKSA+IGxpIHtcbiAgYm9yZGVyLXRvcDogM3B4IHNvbGlkICNFOEU4RTg7IH1cblxuYm9keS5zaW5nbGUtcmVudGFsIC5jb250ZW50LWJsb2Nrcy1saXN0Om5vdCguYWNjb3JkaW9uKSAuY29udGVudC1ibG9jay10aXRsZSB7XG4gIGNvbG9yOiAjNzgyNzg4O1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5ib2R5LnNpbmdsZS1yZW50YWwgLmNvbnRlbnQtYmxvY2tzLWxpc3QgLmNvbnRlbnQtYmxvY2stc3ViLXRpdGxlIHtcbiAgY29sb3I6ICMzYjhlZGU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qXG5UZW1wbGF0ZXM6IHB1cmNoYXNpbmcgYW5kIGNvbnRyYWN0c1xuXG5Ac2luY2UgMC4xLjBcbiovXG5ib2R5LnBhZ2UtdGVtcGxhdGUtcHVyY2hhc2luZy1jb250cmFjdHMgLnBhZ2UtY29udGVudCB0YWJsZSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi8qXG5UZW1wbGF0ZSBUTEwuXG5cbkBzaW5jZSAxLjExLjBcbiovXG5ib2R5LnBhZ2UtdGVtcGxhdGUtdG9wLWxldmVsLWxhbmRpbmcgLmNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweCAhaW1wb3J0YW50OyB9XG4gIGJvZHkucGFnZS10ZW1wbGF0ZS10b3AtbGV2ZWwtbGFuZGluZyAuY2hpbGQgLmNoaWxkLXRpdGxlIHtcbiAgICBiYWNrZ3JvdW5kOiAjNzgyNzg4O1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQS9QZ284YzNabklIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2QybGtkR2c5SWpFd01DVWlJR2hsYVdkb2REMGlNVEF3SlNJZ2RtbGxkMEp2ZUQwaU1DQXdJREVnTVNJZ2NISmxjMlZ5ZG1WQmMzQmxZM1JTWVhScGJ6MGlibTl1WlNJK0NpQWdQR3hwYm1WaGNrZHlZV1JwWlc1MElHbGtQU0puY21Ga0xYVmpaMmN0WjJWdVpYSmhkR1ZrSWlCbmNtRmthV1Z1ZEZWdWFYUnpQU0oxYzJWeVUzQmhZMlZQYmxWelpTSWdlREU5SWpBbElpQjVNVDBpTUNVaUlIZ3lQU0l4TURBbElpQjVNajBpTUNVaVBnb2dJQ0FnUEhOMGIzQWdiMlptYzJWMFBTSXdKU0lnYzNSdmNDMWpiMnh2Y2owaUkySm1NV1V5WkNJZ2MzUnZjQzF2Y0dGamFYUjVQU0l4SWk4K0NpQWdJQ0E4YzNSdmNDQnZabVp6WlhROUlqRXdNQ1VpSUhOMGIzQXRZMjlzYjNJOUlpTm1OVGswTnpjaUlITjBiM0F0YjNCaFkybDBlVDBpTVNJdlBnb2dJRHd2YkdsdVpXRnlSM0poWkdsbGJuUStDaUFnUEhKbFkzUWdlRDBpTUNJZ2VUMGlNQ0lnZDJsa2RHZzlJakVpSUdobGFXZG9kRDBpTVNJZ1ptbHNiRDBpZFhKc0tDTm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtLU0lnTHo0S1BDOXpkbWMrKTtcbiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjNzgyNzg4IDAlLCAjNUM2REI0IDEwMCUpO1xuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBjb2xvci1zdG9wKDAlLCAjNzgyNzg4KSwgY29sb3Itc3RvcCgxMDAlLCAjNUM2REI0KSk7XG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgIzc4Mjc4OCAwJSwgIzVDNkRCNCAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgIzc4Mjc4OCAwJSwgIzVDNkRCNCAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KGxlZnQsICM3ODI3ODggMCUsICM1QzZEQjQgMTAwJSk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjNzgyNzg4IDAlLCAjNUM2REI0IDEwMCUpO1xuICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjYmYxZTJkJywgZW5kQ29sb3JzdHI9JyNmNTk0NzcnLEdyYWRpZW50VHlwZT0xICk7XG4gICAgZm9udC1zaXplOiAxLjhlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICBib2R5LnBhZ2UtdGVtcGxhdGUtdG9wLWxldmVsLWxhbmRpbmcgLmNoaWxkIC5jaGlsZC10aXRsZTo6YmVmb3JlLCBib2R5LnBhZ2UtdGVtcGxhdGUtdG9wLWxldmVsLWxhbmRpbmcgLmNoaWxkIC5jaGlsZC10aXRsZTo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjb250ZW50OiAnICc7XG4gICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgb3JkZXI6IDE7IH1cbiAgICBib2R5LnBhZ2UtdGVtcGxhdGUtdG9wLWxldmVsLWxhbmRpbmcgLmNoaWxkIC5jaGlsZC10aXRsZTo6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICBib2R5LnBhZ2UtdGVtcGxhdGUtdG9wLWxldmVsLWxhbmRpbmcgLmNoaWxkIC5jaGlsZC10aXRsZTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjOWIzMmIwO1xuICAgICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BnbzhjM1puSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZDJsa2RHZzlJakV3TUNVaUlHaGxhV2RvZEQwaU1UQXdKU0lnZG1sbGQwSnZlRDBpTUNBd0lERWdNU0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWJtOXVaU0krQ2lBZ1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTSm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJZ2VERTlJakFsSWlCNU1UMGlNQ1VpSUhneVBTSXhNREFsSWlCNU1qMGlNQ1VpUGdvZ0lDQWdQSE4wYjNBZ2IyWm1jMlYwUFNJd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJKbU1XVXlaQ0lnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlObU5UazBOemNpSUhOMGIzQXRiM0JoWTJsMGVUMGlNU0l2UGdvZ0lEd3ZiR2x1WldGeVIzSmhaR2xsYm5RK0NpQWdQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRWlJR2hsYVdkb2REMGlNU0lnWm1sc2JEMGlkWEpzS0NObmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0tTSWdMejRLUEM5emRtYyspO1xuICAgICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgIzliMzJiMCAwJSwgIzdmOGNjNCAxMDAlKTtcbiAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBjb2xvci1zdG9wKDAlLCAjOWIzMmIwKSwgY29sb3Itc3RvcCgxMDAlLCAjN2Y4Y2M0KSk7XG4gICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjOWIzMmIwIDAlLCAjN2Y4Y2M0IDEwMCUpO1xuICAgICAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICM5YjMyYjAgMCUsICM3ZjhjYzQgMTAwJSk7XG4gICAgICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KGxlZnQsICM5YjMyYjAgMCUsICM3ZjhjYzQgMTAwJSk7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICM5YjMyYjAgMCUsICM3ZjhjYzQgMTAwJSk7XG4gICAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI2JmMWUyZCcsIGVuZENvbG9yc3RyPScjZjU5NDc3JyxHcmFkaWVudFR5cGU9MSApOyB9XG4gICAgYm9keS5wYWdlLXRlbXBsYXRlLXRvcC1sZXZlbC1sYW5kaW5nIC5jaGlsZCAuY2hpbGQtdGl0bGUgYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgcGFkZGluZzogMC4yZW0gMC41ZW0gIWltcG9ydGFudDsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAgIGJvZHkucGFnZS10ZW1wbGF0ZS10b3AtbGV2ZWwtbGFuZGluZyAuY2hpbGQgLmNoaWxkLXRpdGxlIGEge1xuICAgICAgICAgIHBhZGRpbmc6IDAgMC41ZW0gMCAwICFpbXBvcnRhbnQ7IH0gfVxuICAgIGJvZHkucGFnZS10ZW1wbGF0ZS10b3AtbGV2ZWwtbGFuZGluZyAuY2hpbGQgLmNoaWxkLXRpdGxlIC5jaGlsZC10aXRsZS1pbWFnZSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiAzMCU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cbiAgYm9keS5wYWdlLXRlbXBsYXRlLXRvcC1sZXZlbC1sYW5kaW5nIC5jaGlsZCAuY2hpbGQtY29udGVudCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxZW0gIWltcG9ydGFudDsgfVxuICAgIGJvZHkucGFnZS10ZW1wbGF0ZS10b3AtbGV2ZWwtbGFuZGluZyAuY2hpbGQgLmNoaWxkLWNvbnRlbnQgYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLypcblRlbXBsYXRlOiBXZWJzaXRlIE1hcFxuXG5Ac2luY2UgMS4yNi4yXG4qL1xuYm9keS5wYWdlLXRlbXBsYXRlLXdlYnNpdGUtbWFwICNzaXRlLWNvbnRlbnQgLnBhZ2UtY29weSwgYm9keS5oaWRkZW4tcGFnZS10ZW1wbGF0ZS1tYXAgI3NpdGUtY29udGVudCAucGFnZS1jb3B5IHtcbiAgbWF4LXdpZHRoOiBub25lOyB9XG5cbmJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkNmQ2ZDY7XG4gIGNvbG9yOiAjMzMzOyB9XG4gIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAudGl0bGUtYmFubmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzgyNzg4O1xuICAgIHBhZGRpbmc6IDEuMDcxNDNyZW07XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgICBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLnRpdGxlLWJhbm5lciBoMSwgYm9keS5wYWdlLXRlbXBsYXRlLWR6dHYgLnNpdGUtcGFnZS1jb250ZW50IC50aXRsZS1iYW5uZXIgaDIsIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAudGl0bGUtYmFubmVyIGgzLCBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLnRpdGxlLWJhbm5lciBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmFxIC5mYXEtdGl0bGUsIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgYm9keS5wYWdlLXRlbXBsYXRlLWR6dHYgLnNpdGUtcGFnZS1jb250ZW50IC50aXRsZS1iYW5uZXIgLmZhcS10aXRsZSwgYm9keS5wYWdlLXRlbXBsYXRlLWR6dHYgLnNpdGUtcGFnZS1jb250ZW50IC50aXRsZS1iYW5uZXIgaDQsIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAudGl0bGUtYmFubmVyIC5wcmVzcy1yZWxlYXNlLXN1YmhlYWRpbmcsIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAudGl0bGUtYmFubmVyIGg1LCBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLnRpdGxlLWJhbm5lciBoNiB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAuY29udGVudC1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDIuMTQyODZyZW0gMDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLmNvbnRlbnQtY29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZzogMi4xNDI4NnJlbTsgfSB9XG4gICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogbG93ZXItYm91bmQoNDBlbSwgNjRlbSkpIGFuZCAobWF4LXdpZHRoOiB1cHBlci1ib3VuZCg0MGVtLCA2NGVtKSkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAuY29udGVudC1jb250YWluZXIgPiAuY29sdW1ucyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBsZWZ0OiBhdXRvOyB9IH1cbiAgICBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLmNvbnRlbnQtY29udGFpbmVyIC5ub3ctcGxheWluZyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyLjE0Mjg2cmVtOyB9XG4gICAgICBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLmNvbnRlbnQtY29udGFpbmVyIC5ub3ctcGxheWluZyAudmlkZW8ge1xuICAgICAgICBib3JkZXI6IHNvbGlkIDNweCAjM2I4ZWRlOyB9XG4gICAgICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAuY29udGVudC1jb250YWluZXIgLm5vdy1wbGF5aW5nIC52aWRlbyBpZnJhbWUge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLmNvbnRlbnQtY29udGFpbmVyIC5ub3ctcGxheWluZyAuYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgICAgYm9keS5wYWdlLXRlbXBsYXRlLWR6dHYgLnNpdGUtcGFnZS1jb250ZW50IC5jb250ZW50LWNvbnRhaW5lciAubm93LXBsYXlpbmcgLnRpdGxlLWJhciAuYWxpZ25sZWZ0LCBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLmNvbnRlbnQtY29udGFpbmVyIC5ub3ctcGxheWluZyAudGl0bGUtYmFyIC5hbGlnbnJpZ2h0IHtcbiAgICAgICAgICBmbG9hdDogbm9uZTsgfSB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLmNvbnRlbnQtY29udGFpbmVyIC5ub3ctcGxheWluZyAudmlkZW8uaGFzLWxpbmsgLnRpdGxlLWJhciBoMSwgYm9keS5wYWdlLXRlbXBsYXRlLWR6dHYgLnNpdGUtcGFnZS1jb250ZW50IC5jb250ZW50LWNvbnRhaW5lciAubm93LXBsYXlpbmcgLnZpZGVvLmhhcy1saW5rIC50aXRsZS1iYXIgaDIsIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAuY29udGVudC1jb250YWluZXIgLm5vdy1wbGF5aW5nIC52aWRlby5oYXMtbGluayAudGl0bGUtYmFyIGgzLCBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLmNvbnRlbnQtY29udGFpbmVyIC5ub3ctcGxheWluZyAudmlkZW8uaGFzLWxpbmsgLnRpdGxlLWJhciBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmFxIC5mYXEtdGl0bGUsIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgYm9keS5wYWdlLXRlbXBsYXRlLWR6dHYgLnNpdGUtcGFnZS1jb250ZW50IC5jb250ZW50LWNvbnRhaW5lciAubm93LXBsYXlpbmcgLnZpZGVvLmhhcy1saW5rIC50aXRsZS1iYXIgLmZhcS10aXRsZSwgYm9keS5wYWdlLXRlbXBsYXRlLWR6dHYgLnNpdGUtcGFnZS1jb250ZW50IC5jb250ZW50LWNvbnRhaW5lciAubm93LXBsYXlpbmcgLnZpZGVvLmhhcy1saW5rIC50aXRsZS1iYXIgaDQsIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAuY29udGVudC1jb250YWluZXIgLm5vdy1wbGF5aW5nIC52aWRlby5oYXMtbGluayAudGl0bGUtYmFyIC5wcmVzcy1yZWxlYXNlLXN1YmhlYWRpbmcsIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAuY29udGVudC1jb250YWluZXIgLm5vdy1wbGF5aW5nIC52aWRlby5oYXMtbGluayAudGl0bGUtYmFyIGg1LCBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLmNvbnRlbnQtY29udGFpbmVyIC5ub3ctcGxheWluZyAudmlkZW8uaGFzLWxpbmsgLnRpdGxlLWJhciBoNiB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMC43ZW07IH0gfVxuICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAuY29udGVudC1jb250YWluZXIgLnNwb25zb3Ige1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY29sb3I6ICMzMzM7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgICBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLmNvbnRlbnQtY29udGFpbmVyIC5zcG9uc29yIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyLjE0Mjg2cmVtOyB9IH1cbiAgICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAuY29udGVudC1jb250YWluZXIgLnNwb25zb3IgPiAqIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAuY29udGVudC1jb250YWluZXIgLnNwb25zb3IgYSB7XG4gICAgICAgIG1hcmdpbjogMC41MzU3MXJlbSAwOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLmNvbnRlbnQtY29udGFpbmVyIC5uby1zcG9uc29yIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgYm9keS5wYWdlLXRlbXBsYXRlLWR6dHYgLnNpdGUtcGFnZS1jb250ZW50IC5jb250ZW50LWNvbnRhaW5lciAudmlkZW8tdGh1bWJuYWlscyAucm93IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIuMTQyODZyZW07IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgICBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLmNvbnRlbnQtY29udGFpbmVyIC52aWRlby10aHVtYm5haWxzIC5yb3cge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogbG93ZXItYm91bmQoNDBlbSwgNjRlbSkpIGFuZCAobWF4LXdpZHRoOiB1cHBlci1ib3VuZCg0MGVtLCA2NGVtKSkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAgICAgYm9keS5wYWdlLXRlbXBsYXRlLWR6dHYgLnNpdGUtcGFnZS1jb250ZW50IC5jb250ZW50LWNvbnRhaW5lciAudmlkZW8tdGh1bWJuYWlscyAucm93IHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAuY29udGVudC1jb250YWluZXIgLnZpZGVvLXRodW1ibmFpbHMgLnJvdzpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAuY29udGVudC1jb250YWluZXIgLnZpZGVvLXRodW1ibmFpbHMgLnJvdzpsYXN0LW9mLXR5cGUgLnZpZGVvLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogbG93ZXItYm91bmQoNDBlbSwgNjRlbSkpIGFuZCAobWF4LXdpZHRoOiB1cHBlci1ib3VuZCg0MGVtLCA2NGVtKSkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAgICAgICBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLmNvbnRlbnQtY29udGFpbmVyIC52aWRlby10aHVtYm5haWxzIC5yb3c6bGFzdC1vZi10eXBlIC52aWRlby10aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gICAgYm9keS5wYWdlLXRlbXBsYXRlLWR6dHYgLnNpdGUtcGFnZS1jb250ZW50IC5jb250ZW50LWNvbnRhaW5lciAudmlkZW8tdGh1bWJuYWlscyAudmlkZW8tdGh1bWJuYWlsIHtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgICBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLmNvbnRlbnQtY29udGFpbmVyIC52aWRlby10aHVtYm5haWxzIC52aWRlby10aHVtYm5haWwge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIuMTQyODZyZW07XG4gICAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogbG93ZXItYm91bmQoNDBlbSwgNjRlbSkpIGFuZCAobWF4LXdpZHRoOiB1cHBlci1ib3VuZCg0MGVtLCA2NGVtKSkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAgICAgYm9keS5wYWdlLXRlbXBsYXRlLWR6dHYgLnNpdGUtcGFnZS1jb250ZW50IC5jb250ZW50LWNvbnRhaW5lciAudmlkZW8tdGh1bWJuYWlscyAudmlkZW8tdGh1bWJuYWlsIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyLjE0Mjg2cmVtO1xuICAgICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAuY29udGVudC1jb250YWluZXIgLnZpZGVvLXRodW1ibmFpbHMgLnZpZGVvLXRodW1ibmFpbCB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAyLjE0Mjg2cmVtO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH0gfVxuICAgICAgYm9keS5wYWdlLXRlbXBsYXRlLWR6dHYgLnNpdGUtcGFnZS1jb250ZW50IC5jb250ZW50LWNvbnRhaW5lciAudmlkZW8tdGh1bWJuYWlscyAudmlkZW8tdGh1bWJuYWlsIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDAuMjE0MjlyZW0gMC4yMTQyOXJlbSAwIDAuMjE0MjlyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzYjhlZGU7IH1cbiAgICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAuY29udGVudC1jb250YWluZXIgLnZpZGVvLXRodW1ibmFpbHMgLnZpZGVvLXRodW1ibmFpbCAudGl0bGUtYmFyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAwLjUzNTcxcmVtO1xuICAgICAgICBsZWZ0OiAxLjA3MTQzcmVtO1xuICAgICAgICByaWdodDogMS4wNzE0M3JlbTsgfVxuICAgICAgYm9keS5wYWdlLXRlbXBsYXRlLWR6dHYgLnNpdGUtcGFnZS1jb250ZW50IC5jb250ZW50LWNvbnRhaW5lciAudmlkZW8tdGh1bWJuYWlscyAudmlkZW8tdGh1bWJuYWlsIGEuYWN0aXZlIC5jb2xvci1vdmVybGF5LCBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLmNvbnRlbnQtY29udGFpbmVyIC52aWRlby10aHVtYm5haWxzIC52aWRlby10aHVtYm5haWwgYTpob3ZlciAuY29sb3Itb3ZlcmxheSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgICBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLmNvbnRlbnQtY29udGFpbmVyIC52aWRlby10aHVtYm5haWxzIC52aWRlby10aHVtYm5haWwgYS5hY3RpdmUgLmNvbG9yLW92ZXJsYXk6YWZ0ZXIsIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAuY29udGVudC1jb250YWluZXIgLnZpZGVvLXRodW1ibmFpbHMgLnZpZGVvLXRodW1ibmFpbCBhOmhvdmVyIC5jb2xvci1vdmVybGF5OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiAwLjIxNDI5cmVtO1xuICAgICAgICAgIGxlZnQ6IDAuMjE0MjlyZW07XG4gICAgICAgICAgcmlnaHQ6IDAuMjE0MjlyZW07XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMXM7IH1cbiAgICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAuY29udGVudC1jb250YWluZXIgLnZpZGVvLXRodW1ibmFpbHMgLnZpZGVvLXRodW1ibmFpbCBhLmFjdGl2ZSAqLCBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLmNvbnRlbnQtY29udGFpbmVyIC52aWRlby10aHVtYm5haWxzIC52aWRlby10aHVtYm5haWwgYTpob3ZlciAqIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAuY29udGVudC1jb250YWluZXIgLnZpZGVvLXRodW1ibmFpbHMgLnZpZGVvLXRodW1ibmFpbCBhLmFjdGl2ZSB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAuY29udGVudC1jb250YWluZXIgLnRpdGxlLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2I4ZWRlO1xuICAgICAgcGFkZGluZzogMS4wNzE0M3JlbTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgaHlwaGVuczogYXV0bzsgfVxuICAgICAgYm9keS5wYWdlLXRlbXBsYXRlLWR6dHYgLnNpdGUtcGFnZS1jb250ZW50IC5jb250ZW50LWNvbnRhaW5lciAudGl0bGUtYmFyIGgxLCBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLmNvbnRlbnQtY29udGFpbmVyIC50aXRsZS1iYXIgaDIsIGJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IC5zaXRlLXBhZ2UtY29udGVudCAuY29udGVudC1jb250YWluZXIgLnRpdGxlLWJhciBoMywgYm9keS5wYWdlLXRlbXBsYXRlLWR6dHYgLnNpdGUtcGFnZS1jb250ZW50IC5jb250ZW50LWNvbnRhaW5lciAudGl0bGUtYmFyIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgLmZhcS10aXRsZSwgYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LWZhcSBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLmNvbnRlbnQtY29udGFpbmVyIC50aXRsZS1iYXIgLmZhcS10aXRsZSwgYm9keS5wYWdlLXRlbXBsYXRlLWR6dHYgLnNpdGUtcGFnZS1jb250ZW50IC5jb250ZW50LWNvbnRhaW5lciAudGl0bGUtYmFyIGg0LCBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLmNvbnRlbnQtY29udGFpbmVyIC50aXRsZS1iYXIgLnByZXNzLXJlbGVhc2Utc3ViaGVhZGluZywgYm9keS5wYWdlLXRlbXBsYXRlLWR6dHYgLnNpdGUtcGFnZS1jb250ZW50IC5jb250ZW50LWNvbnRhaW5lciAudGl0bGUtYmFyIGg1LCBib2R5LnBhZ2UtdGVtcGxhdGUtZHp0diAuc2l0ZS1wYWdlLWNvbnRlbnQgLmNvbnRlbnQtY29udGFpbmVyIC50aXRsZS1iYXIgaDYge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbmJvZHkucGFnZS10ZW1wbGF0ZS1zaHVmZmxlLWdyaWQgLnBhZ2UtYmFubmVyIHtcbiAgcGFkZGluZy1yaWdodDogMC43MTQyOXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjcxNDI5cmVtOyB9XG5cbi8qXG5TdHlsZXMgcGFnZS5waHAuXG5cbkBzaW5jZSAwLjEuMFxuKi9cbmJvZHkucGFnZS10ZW1wbGF0ZS10b2RheS1hdC10aGUtem9vIC50b2RheS1zZWN0aW9uIHtcbiAgY29sb3I6ICMwMDMzYTA7IH1cbiAgYm9keS5wYWdlLXRlbXBsYXRlLXRvZGF5LWF0LXRoZS16b28gLnRvZGF5LXNlY3Rpb24gLnRvZGF5LXNlY3Rpb24taW1hZ2Uge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICBib2R5LnBhZ2UtdGVtcGxhdGUtdG9kYXktYXQtdGhlLXpvbyAudG9kYXktc2VjdGlvbiAudG9kYXktc2VjdGlvbi1pbWFnZSBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgYm9keS5wYWdlLXRlbXBsYXRlLXRvZGF5LWF0LXRoZS16b28gLnRvZGF5LXNlY3Rpb24gLnRvZGF5LXNlY3Rpb24taG91cnMsIGJvZHkucGFnZS10ZW1wbGF0ZS10b2RheS1hdC10aGUtem9vIC50b2RheS1zZWN0aW9uIC50b2RheS1zZWN0aW9uLXByaWNpbmcsIGJvZHkucGFnZS10ZW1wbGF0ZS10b2RheS1hdC10aGUtem9vIC50b2RheS1zZWN0aW9uIC50b2RheS1zZWN0aW9uLXRvdGFsLWV4cGVyaWVuY2UtcHJpY2luZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICBib2R5LnBhZ2UtdGVtcGxhdGUtdG9kYXktYXQtdGhlLXpvbyAudG9kYXktc2VjdGlvbiAudG9kYXktc2VjdGlvbi1ob3VycywgYm9keS5wYWdlLXRlbXBsYXRlLXRvZGF5LWF0LXRoZS16b28gLnRvZGF5LXNlY3Rpb24gLnRvZGF5LXNlY3Rpb24tcHJpY2luZywgYm9keS5wYWdlLXRlbXBsYXRlLXRvZGF5LWF0LXRoZS16b28gLnRvZGF5LXNlY3Rpb24gLnRvZGF5LXNlY3Rpb24tdG90YWwtZXhwZXJpZW5jZS1wcmljaW5nIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH0gfVxuICBib2R5LnBhZ2UtdGVtcGxhdGUtdG9kYXktYXQtdGhlLXpvbyAudG9kYXktc2VjdGlvbiAudG9kYXktc2VjdGlvbi1ob3VycyB7XG4gICAgYmFja2dyb3VuZDogIzgxYmZlODtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUEvUGdvOGMzWm5JSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdkMmxrZEdnOUlqRXdNQ1VpSUdobGFXZG9kRDBpTVRBd0pTSWdkbWxsZDBKdmVEMGlNQ0F3SURFZ01TSWdjSEpsYzJWeWRtVkJjM0JsWTNSU1lYUnBiejBpYm05dVpTSStDaUFnUEd4cGJtVmhja2R5WVdScFpXNTBJR2xrUFNKbmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0lpQm5jbUZrYVdWdWRGVnVhWFJ6UFNKMWMyVnlVM0JoWTJWUGJsVnpaU0lnZURFOUlqQWxJaUI1TVQwaU1DVWlJSGd5UFNJeE1EQWxJaUI1TWowaU1UQXdKU0krQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpBbElpQnpkRzl3TFdOdmJHOXlQU0lqT0RGaVptVTRJaUJ6ZEc5d0xXOXdZV05wZEhrOUlqRWlMejRLSUNBZ0lEeHpkRzl3SUc5bVpuTmxkRDBpTVRBd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJabVptWm1aaUlnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ1BDOXNhVzVsWVhKSGNtRmthV1Z1ZEQ0S0lDQThjbVZqZENCNFBTSXdJaUI1UFNJd0lpQjNhV1IwYUQwaU1TSWdhR1ZwWjJoMFBTSXhJaUJtYVd4c1BTSjFjbXdvSTJkeVlXUXRkV05uWnkxblpXNWxjbUYwWldRcElpQXZQZ284TDNOMlp6ND0pO1xuICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KC00NWRlZywgIzgxYmZlOCAwJSwgI2ZmZmZmZiAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IGJvdHRvbSwgY29sb3Itc3RvcCgwJSwgIzgxYmZlOCksIGNvbG9yLXN0b3AoMTAwJSwgI2ZmZmZmZikpO1xuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KC00NWRlZywgIzgxYmZlOCAwJSwgI2ZmZmZmZiAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCAjODFiZmU4IDAlLCAjZmZmZmZmIDEwMCUpO1xuICAgIGJhY2tncm91bmQ6IC1tcy1saW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCAjODFiZmU4IDAlLCAjZmZmZmZmIDEwMCUpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM4MWJmZTggMCUsICNmZmZmZmYgMTAwJSk7XG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzgxYmZlOCcsIGVuZENvbG9yc3RyPScjZmZmZmZmJywgR3JhZGllbnRUeXBlPTEpOyB9XG4gIGJvZHkucGFnZS10ZW1wbGF0ZS10b2RheS1hdC10aGUtem9vIC50b2RheS1zZWN0aW9uIC50b2RheS1zZWN0aW9uLXByaWNpbmcge1xuICAgIGJhY2tncm91bmQ6ICNkY2UyZjI7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BnbzhjM1puSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZDJsa2RHZzlJakV3TUNVaUlHaGxhV2RvZEQwaU1UQXdKU0lnZG1sbGQwSnZlRDBpTUNBd0lERWdNU0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWJtOXVaU0krQ2lBZ1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTSm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJZ2VERTlJakFsSWlCNU1UMGlNQ1VpSUhneVBTSXdKU0lnZVRJOUlqRXdNQ1VpUGdvZ0lDQWdQSE4wYjNBZ2IyWm1jMlYwUFNJd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJSalpUSm1NaUlnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlObVkyWmtabVVpSUhOMGIzQXRiM0JoWTJsMGVUMGlNU0l2UGdvZ0lEd3ZiR2x1WldGeVIzSmhaR2xsYm5RK0NpQWdQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRWlJR2hsYVdkb2REMGlNU0lnWm1sc2JEMGlkWEpzS0NObmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0tTSWdMejRLUEM5emRtYyspO1xuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMCUsICNkY2UyZjIpLCBjb2xvci1zdG9wKDEwMCUsICNmY2ZkZmUpKTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNkY2UyZjIgMCUsICNmY2ZkZmUgMTAwJSk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2RjZTJmMiAwJSwgI2ZjZmRmZSAxMDAlKTtcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI2RjZTJmMicsIGVuZENvbG9yc3RyPScjZmNmZGZlJyxHcmFkaWVudFR5cGU9MCApOyB9XG4gIGJvZHkucGFnZS10ZW1wbGF0ZS10b2RheS1hdC10aGUtem9vIC50b2RheS1zZWN0aW9uIC50b2RheS1zZWN0aW9uLXRvdGFsLWV4cGVyaWVuY2UtcHJpY2luZyB7XG4gICAgYmFja2dyb3VuZDogIzUxOTZERDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUEvUGdvOGMzWm5JSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdkMmxrZEdnOUlqRXdNQ1VpSUdobGFXZG9kRDBpTVRBd0pTSWdkbWxsZDBKdmVEMGlNQ0F3SURFZ01TSWdjSEpsYzJWeWRtVkJjM0JsWTNSU1lYUnBiejBpYm05dVpTSStDaUFnUEd4cGJtVmhja2R5WVdScFpXNTBJR2xrUFNKbmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0lpQm5jbUZrYVdWdWRGVnVhWFJ6UFNKMWMyVnlVM0JoWTJWUGJsVnpaU0lnZURFOUlqQWxJaUI1TVQwaU1DVWlJSGd5UFNJd0pTSWdlVEk5SWpFd01DVWlQZ29nSUNBZ1BITjBiM0FnYjJabWMyVjBQU0l3SlNJZ2MzUnZjQzFqYjJ4dmNqMGlJMlJqWlRKbU1pSWdjM1J2Y0MxdmNHRmphWFI1UFNJeElpOCtDaUFnSUNBOGMzUnZjQ0J2Wm1aelpYUTlJakV3TUNVaUlITjBiM0F0WTI5c2IzSTlJaU5tWTJaa1ptVWlJSE4wYjNBdGIzQmhZMmwwZVQwaU1TSXZQZ29nSUR3dmJHbHVaV0Z5UjNKaFpHbGxiblErQ2lBZ1BISmxZM1FnZUQwaU1DSWdlVDBpTUNJZ2QybGtkR2c5SWpFaUlHaGxhV2RvZEQwaU1TSWdabWxzYkQwaWRYSnNLQ05uY21Ga0xYVmpaMmN0WjJWdVpYSmhkR1ZrS1NJZ0x6NEtQQzl6ZG1jKyk7XG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwJSwgIzUxOTZERCksIGNvbG9yLXN0b3AoMTAwJSwgI2ZjZmRmZSkpO1xuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgIzUxOTZERCAwJSwgI2ZjZmRmZSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjNTE5NkREIDAlLCAjZmNmZGZlIDEwMCUpO1xuICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjZGNlMmYyJywgZW5kQ29sb3JzdHI9JyNmY2ZkZmUnLEdyYWRpZW50VHlwZT0wICk7IH1cbiAgICBib2R5LnBhZ2UtdGVtcGxhdGUtdG9kYXktYXQtdGhlLXpvbyAudG9kYXktc2VjdGlvbiAudG9kYXktc2VjdGlvbi10b3RhbC1leHBlcmllbmNlLXByaWNpbmcgLnByaWNpbmctdGFibGUgLnByaWNpbmctdGFibGUtdGV4dCB7XG4gICAgICBjb2xvcjogIzAwMzNhMDsgfVxuICBib2R5LnBhZ2UtdGVtcGxhdGUtdG9kYXktYXQtdGhlLXpvbyAudG9kYXktc2VjdGlvbiAudG9kYXktc2VjdGlvbi1wcmljaW5nLXRpdGxlLCBib2R5LnBhZ2UtdGVtcGxhdGUtdG9kYXktYXQtdGhlLXpvbyAudG9kYXktc2VjdGlvbiAudG9kYXktc2VjdGlvbi1ob3Vycy10aXRsZSwgYm9keS5wYWdlLXRlbXBsYXRlLXRvZGF5LWF0LXRoZS16b28gLnRvZGF5LXNlY3Rpb24gLnRvZGF5LXNlY3Rpb24tdG90YWwtZXhwZXJpZW5jZS1wcmljaW5nLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuNWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgYm9keS5wYWdlLXRlbXBsYXRlLXRvZGF5LWF0LXRoZS16b28gLnRvZGF5LXNlY3Rpb24gLnRvZGF5LXNlY3Rpb24tdG90YWwtZXhwZXJpZW5jZS1wcmljaW5nLXRpdGxlIHtcbiAgICBjb2xvcjogI2VhZGM1NjsgfVxuICBib2R5LnBhZ2UtdGVtcGxhdGUtdG9kYXktYXQtdGhlLXpvbyAudG9kYXktc2VjdGlvbiAudG9kYXktc2VjdGlvbi1ob3Vycy1zdHJpbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc2l6ZTogMS41ZW07IH1cbiAgICBib2R5LnBhZ2UtdGVtcGxhdGUtdG9kYXktYXQtdGhlLXpvbyAudG9kYXktc2VjdGlvbiAudG9kYXktc2VjdGlvbi1ob3Vycy1zdHJpbmcgLmhvdXIge1xuICAgICAgZm9udC1zaXplOiAxLjhlbTsgfVxuICAgIGJvZHkucGFnZS10ZW1wbGF0ZS10b2RheS1hdC10aGUtem9vIC50b2RheS1zZWN0aW9uIC50b2RheS1zZWN0aW9uLWhvdXJzLXN0cmluZyAubWVyaWRpZW0ge1xuICAgICAgdmVydGljYWwtYWxpZ246IHN1cGVyOyB9XG4gICAgYm9keS5wYWdlLXRlbXBsYXRlLXRvZGF5LWF0LXRoZS16b28gLnRvZGF5LXNlY3Rpb24gLnRvZGF5LXNlY3Rpb24taG91cnMtc3RyaW5nIC50aW1lLXJhbmdlLXNlcCB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7IH1cbiAgYm9keS5wYWdlLXRlbXBsYXRlLXRvZGF5LWF0LXRoZS16b28gLnRvZGF5LXNlY3Rpb24gcCB7XG4gICAgbWFyZ2luOiAwOyB9XG4gIGJvZHkucGFnZS10ZW1wbGF0ZS10b2RheS1hdC10aGUtem9vIC50b2RheS1zZWN0aW9uIC5idXR0b24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gIGJvZHkucGFnZS10ZW1wbGF0ZS10b2RheS1hdC10aGUtem9vIC50b2RheS1zZWN0aW9uIHRhYmxlIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gICAgYm9keS5wYWdlLXRlbXBsYXRlLXRvZGF5LWF0LXRoZS16b28gLnRvZGF5LXNlY3Rpb24gdGFibGUgdHIge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTsgfVxuXG4vKlxuU3R5bGVzIHBhZ2UucGhwLlxuXG5Ac2luY2UgMC4xLjBcbiovXG5ib2R5LnBhZ2UtdGVtcGxhdGUtcHJpY2VzIHRhYmxlLCBib2R5LnBhZ2UtdGVtcGxhdGUtd2lsZC1saWdodHMgdGFibGUsIGJvZHkuZXZlbnQtdGVtcGxhdGUtd2lsZC1saWdodHMgdGFibGUge1xuICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gIGJvZHkucGFnZS10ZW1wbGF0ZS1wcmljZXMgdGFibGUgdHIsIGJvZHkucGFnZS10ZW1wbGF0ZS13aWxkLWxpZ2h0cyB0YWJsZSB0ciwgYm9keS5ldmVudC10ZW1wbGF0ZS13aWxkLWxpZ2h0cyB0YWJsZSB0ciB7XG4gICAgYmFja2dyb3VuZDogbm9uZTsgfVxuICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1wcmljZXMgdGFibGUgdHIgdGQsIGJvZHkucGFnZS10ZW1wbGF0ZS13aWxkLWxpZ2h0cyB0YWJsZSB0ciB0ZCwgYm9keS5ldmVudC10ZW1wbGF0ZS13aWxkLWxpZ2h0cyB0YWJsZSB0ciB0ZCB7XG4gICAgICBjb2xvcjogaW5oZXJpdDsgfVxuXG5ib2R5LnBhZ2UtdGVtcGxhdGUtcHJpY2VzIC5wcmljaW5nLXRhYmxlIC5wcmljaW5nLXRhYmxlLXByaWNlLCBib2R5LnBhZ2UtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNpbmctdGFibGUgLnByaWNpbmctdGFibGUtcHJpY2UsIGJvZHkuZXZlbnQtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNpbmctdGFibGUgLnByaWNpbmctdGFibGUtcHJpY2Uge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbmJvZHkucGFnZS10ZW1wbGF0ZS1wcmljZXMgLnByaWNlcy1nZW5lcmFsLCBib2R5LnBhZ2UtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcy1nZW5lcmFsLCBib2R5LmV2ZW50LXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMtZ2VuZXJhbCB7XG4gIC8qIFBlcm1hbGluayAtIHVzZSB0byBlZGl0IGFuZCBzaGFyZSB0aGlzIGdyYWRpZW50OiBodHRwOi8vY29sb3J6aWxsYS5jb20vZ3JhZGllbnQtZWRpdG9yLyNkY2UyZjIrMCxmY2ZkZmUrMTAwICovXG4gIGJhY2tncm91bmQ6ICNkY2UyZjI7XG4gIC8qIE9sZCBicm93c2VycyAqL1xuICAvKiBJRTkgU1ZHLCBuZWVkcyBjb25kaXRpb25hbCBvdmVycmlkZSBvZiAnZmlsdGVyJyB0byAnbm9uZScgKi9cbiAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BnbzhjM1puSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZDJsa2RHZzlJakV3TUNVaUlHaGxhV2RvZEQwaU1UQXdKU0lnZG1sbGQwSnZlRDBpTUNBd0lERWdNU0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWJtOXVaU0krQ2lBZ1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTSm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJZ2VERTlJakFsSWlCNU1UMGlNQ1VpSUhneVBTSXdKU0lnZVRJOUlqRXdNQ1VpUGdvZ0lDQWdQSE4wYjNBZ2IyWm1jMlYwUFNJd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJSalpUSm1NaUlnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlObVkyWmtabVVpSUhOMGIzQXRiM0JoWTJsMGVUMGlNU0l2UGdvZ0lEd3ZiR2x1WldGeVIzSmhaR2xsYm5RK0NpQWdQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRWlJR2hsYVdkb2REMGlNU0lnWm1sc2JEMGlkWEpzS0NObmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0tTSWdMejRLUEM5emRtYyspO1xuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNkY2UyZjIgMCUsICNmY2ZkZmUgMTAwJSk7XG4gIC8qIEZGMy42KyAqL1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAlLCAjZGNlMmYyKSwgY29sb3Itc3RvcCgxMDAlLCAjZmNmZGZlKSk7XG4gIC8qIENocm9tZSxTYWZhcmk0KyAqL1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNkY2UyZjIgMCUsICNmY2ZkZmUgMTAwJSk7XG4gIC8qIENocm9tZTEwKyxTYWZhcmk1LjErICovXG4gIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICNkY2UyZjIgMCUsICNmY2ZkZmUgMTAwJSk7XG4gIC8qIE9wZXJhIDExLjEwKyAqL1xuICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgI2RjZTJmMiAwJSwgI2ZjZmRmZSAxMDAlKTtcbiAgLyogSUUxMCsgKi9cbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2RjZTJmMiAwJSwgI2ZjZmRmZSAxMDAlKTtcbiAgLyogVzNDICovXG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjZGNlMmYyJywgZW5kQ29sb3JzdHI9JyNmY2ZkZmUnLEdyYWRpZW50VHlwZT0wICk7XG4gIC8qIElFNi04ICovXG4gIGNvbG9yOiAjMDAzM2EwOyB9XG4gIGJvZHkucGFnZS10ZW1wbGF0ZS1wcmljZXMgLnByaWNlcy1nZW5lcmFsIGgzLCBib2R5LnBhZ2UtdGVtcGxhdGUtcHJpY2VzIC5wcmljZXMtZ2VuZXJhbCBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmFxIC5mYXEtdGl0bGUsIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgYm9keS5wYWdlLXRlbXBsYXRlLXByaWNlcyAucHJpY2VzLWdlbmVyYWwgLmZhcS10aXRsZSwgYm9keS5wYWdlLXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMtZ2VuZXJhbCBoMywgYm9keS5wYWdlLXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMtZ2VuZXJhbCBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmFxIC5mYXEtdGl0bGUsIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgYm9keS5wYWdlLXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMtZ2VuZXJhbCAuZmFxLXRpdGxlLCBib2R5LmV2ZW50LXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMtZ2VuZXJhbCBoMywgYm9keS5ldmVudC10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzLWdlbmVyYWwgYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LWZhcSAuZmFxLXRpdGxlLCBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmFxIGJvZHkuZXZlbnQtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcy1nZW5lcmFsIC5mYXEtdGl0bGUge1xuICAgIGxpbmUtaGVpZ2h0OiA2NXB4O1xuICAgIG1hcmdpbjogMDsgfVxuICBib2R5LnBhZ2UtdGVtcGxhdGUtcHJpY2VzIC5wcmljZXMtZ2VuZXJhbCAucHJpY2VzLWdlbmVyYWwtYXR0cmFjdGlvbnMsIGJvZHkucGFnZS10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzLWdlbmVyYWwgLnByaWNlcy1nZW5lcmFsLWF0dHJhY3Rpb25zLCBib2R5LmV2ZW50LXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMtZ2VuZXJhbCAucHJpY2VzLWdlbmVyYWwtYXR0cmFjdGlvbnMge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsgfVxuICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1wcmljZXMgLnByaWNlcy1nZW5lcmFsIC5wcmljZXMtZ2VuZXJhbC1hdHRyYWN0aW9ucyAucHJpY2luZy10YWJsZS1wcmljZSwgYm9keS5wYWdlLXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMtZ2VuZXJhbCAucHJpY2VzLWdlbmVyYWwtYXR0cmFjdGlvbnMgLnByaWNpbmctdGFibGUtcHJpY2UsIGJvZHkuZXZlbnQtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcy1nZW5lcmFsIC5wcmljZXMtZ2VuZXJhbC1hdHRyYWN0aW9ucyAucHJpY2luZy10YWJsZS1wcmljZSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsgfVxuXG5ib2R5LnBhZ2UtdGVtcGxhdGUtcHJpY2VzIC5wcmljZXMtdmFsdWUsIGJvZHkucGFnZS10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzLXZhbHVlLCBib2R5LmV2ZW50LXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMtdmFsdWUge1xuICAvKiBQZXJtYWxpbmsgLSB1c2UgdG8gZWRpdCBhbmQgc2hhcmUgdGhpcyBncmFkaWVudDogaHR0cDovL2NvbG9yemlsbGEuY29tL2dyYWRpZW50LWVkaXRvci8jZGNlMmYyKzAsZmNmZGZlKzEwMCAqL1xuICBiYWNrZ3JvdW5kOiAjNTE5NkREO1xuICAvKiBPbGQgYnJvd3NlcnMgKi9cbiAgLyogSUU5IFNWRywgbmVlZHMgY29uZGl0aW9uYWwgb3ZlcnJpZGUgb2YgJ2ZpbHRlcicgdG8gJ25vbmUnICovXG4gIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQS9QZ284YzNabklIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2QybGtkR2c5SWpFd01DVWlJR2hsYVdkb2REMGlNVEF3SlNJZ2RtbGxkMEp2ZUQwaU1DQXdJREVnTVNJZ2NISmxjMlZ5ZG1WQmMzQmxZM1JTWVhScGJ6MGlibTl1WlNJK0NpQWdQR3hwYm1WaGNrZHlZV1JwWlc1MElHbGtQU0puY21Ga0xYVmpaMmN0WjJWdVpYSmhkR1ZrSWlCbmNtRmthV1Z1ZEZWdWFYUnpQU0oxYzJWeVUzQmhZMlZQYmxWelpTSWdlREU5SWpBbElpQjVNVDBpTUNVaUlIZ3lQU0l3SlNJZ2VUSTlJakV3TUNVaVBnb2dJQ0FnUEhOMGIzQWdiMlptYzJWMFBTSXdKU0lnYzNSdmNDMWpiMnh2Y2owaUkyUmpaVEptTWlJZ2MzUnZjQzF2Y0dGamFYUjVQU0l4SWk4K0NpQWdJQ0E4YzNSdmNDQnZabVp6WlhROUlqRXdNQ1VpSUhOMGIzQXRZMjlzYjNJOUlpTm1ZMlprWm1VaUlITjBiM0F0YjNCaFkybDBlVDBpTVNJdlBnb2dJRHd2YkdsdVpXRnlSM0poWkdsbGJuUStDaUFnUEhKbFkzUWdlRDBpTUNJZ2VUMGlNQ0lnZDJsa2RHZzlJakVpSUdobGFXZG9kRDBpTVNJZ1ptbHNiRDBpZFhKc0tDTm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtLU0lnTHo0S1BDOXpkbWMrKTtcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjNTE5NkREIDAlLCAjZmNmZGZlIDEwMCUpO1xuICAvKiBGRjMuNisgKi9cbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwJSwgIzUxOTZERCksIGNvbG9yLXN0b3AoMTAwJSwgI2ZjZmRmZSkpO1xuICAvKiBDaHJvbWUsU2FmYXJpNCsgKi9cbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjNTE5NkREIDAlLCAjZmNmZGZlIDEwMCUpO1xuICAvKiBDaHJvbWUxMCssU2FmYXJpNS4xKyAqL1xuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCAjNTE5NkREIDAlLCAjZmNmZGZlIDEwMCUpO1xuICAvKiBPcGVyYSAxMS4xMCsgKi9cbiAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICM1MTk2REQgMCUsICNmY2ZkZmUgMTAwJSk7XG4gIC8qIElFMTArICovXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM1MTk2REQgMCUsICNmY2ZkZmUgMTAwJSk7XG4gIC8qIFczQyAqL1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI2RjZTJmMicsIGVuZENvbG9yc3RyPScjZmNmZGZlJyxHcmFkaWVudFR5cGU9MCApO1xuICAvKiBJRTYtOCAqL1xuICBjb2xvcjogIzAwMzNhMDsgfVxuICBib2R5LnBhZ2UtdGVtcGxhdGUtcHJpY2VzIC5wcmljZXMtdmFsdWUgaDMsIGJvZHkucGFnZS10ZW1wbGF0ZS1wcmljZXMgLnByaWNlcy12YWx1ZSBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmFxIC5mYXEtdGl0bGUsIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgYm9keS5wYWdlLXRlbXBsYXRlLXByaWNlcyAucHJpY2VzLXZhbHVlIC5mYXEtdGl0bGUsIGJvZHkucGFnZS10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzLXZhbHVlIGgzLCBib2R5LnBhZ2UtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcy12YWx1ZSBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmFxIC5mYXEtdGl0bGUsIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgYm9keS5wYWdlLXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMtdmFsdWUgLmZhcS10aXRsZSwgYm9keS5ldmVudC10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzLXZhbHVlIGgzLCBib2R5LmV2ZW50LXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMtdmFsdWUgYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LWZhcSAuZmFxLXRpdGxlLCBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmFxIGJvZHkuZXZlbnQtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcy12YWx1ZSAuZmFxLXRpdGxlIHtcbiAgICBsaW5lLWhlaWdodDogNjVweDtcbiAgICBtYXJnaW46IDA7IH1cbiAgYm9keS5wYWdlLXRlbXBsYXRlLXByaWNlcyAucHJpY2VzLXZhbHVlIC5wcmljZXMtdmFsdWUtYmFubmVyLCBib2R5LnBhZ2UtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcy12YWx1ZSAucHJpY2VzLXZhbHVlLWJhbm5lciwgYm9keS5ldmVudC10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzLXZhbHVlIC5wcmljZXMtdmFsdWUtYmFubmVyIHtcbiAgICBoZWlnaHQ6IDY1cHg7IH1cbiAgYm9keS5wYWdlLXRlbXBsYXRlLXByaWNlcyAucHJpY2VzLXZhbHVlIC5wcmljZXMtdmFsdWUtYmVzdC12YWx1ZSwgYm9keS5wYWdlLXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMtdmFsdWUgLnByaWNlcy12YWx1ZS1iZXN0LXZhbHVlLCBib2R5LmV2ZW50LXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMtdmFsdWUgLnByaWNlcy12YWx1ZS1iZXN0LXZhbHVlIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBtYXJnaW46IDA7IH1cbiAgYm9keS5wYWdlLXRlbXBsYXRlLXByaWNlcyAucHJpY2VzLXZhbHVlIC5wcmljaW5nLXRhYmxlLCBib2R5LnBhZ2UtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcy12YWx1ZSAucHJpY2luZy10YWJsZSwgYm9keS5ldmVudC10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzLXZhbHVlIC5wcmljaW5nLXRhYmxlIHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICBib2R5LnBhZ2UtdGVtcGxhdGUtcHJpY2VzIC5wcmljZXMtdmFsdWUgLnByaWNlcy12YWx1ZS1hdHRyYWN0aW9ucywgYm9keS5wYWdlLXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMtdmFsdWUgLnByaWNlcy12YWx1ZS1hdHRyYWN0aW9ucywgYm9keS5ldmVudC10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzLXZhbHVlIC5wcmljZXMtdmFsdWUtYXR0cmFjdGlvbnMge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxuICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1wcmljZXMgLnByaWNlcy12YWx1ZSAucHJpY2VzLXZhbHVlLWF0dHJhY3Rpb25zIC5wcmljaW5nLXRhYmxlLXByaWNlLCBib2R5LnBhZ2UtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcy12YWx1ZSAucHJpY2VzLXZhbHVlLWF0dHJhY3Rpb25zIC5wcmljaW5nLXRhYmxlLXByaWNlLCBib2R5LmV2ZW50LXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMtdmFsdWUgLnByaWNlcy12YWx1ZS1hdHRyYWN0aW9ucyAucHJpY2luZy10YWJsZS1wcmljZSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsgfVxuXG4uZXZlbnQtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcywgLmV2ZW50LXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMgaDEsIC5ldmVudC10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzIGgyLCAuZXZlbnQtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcyBoMywgLmV2ZW50LXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMgYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LWZhcSAuZmFxLXRpdGxlLCBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmFxIC5ldmVudC10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzIC5mYXEtdGl0bGUsIC5ldmVudC10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzIGg0LCAuZXZlbnQtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcyAucHJlc3MtcmVsZWFzZS1zdWJoZWFkaW5nLCAuZXZlbnQtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcyBoNSwgLmV2ZW50LXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMgaDYsIC5wYWdlLXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMsIC5wYWdlLXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMgaDEsIC5wYWdlLXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMgaDIsIC5wYWdlLXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMgaDMsIC5wYWdlLXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMgYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LWZhcSAuZmFxLXRpdGxlLCBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmFxIC5wYWdlLXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMgLmZhcS10aXRsZSwgLnBhZ2UtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcyBoNCwgLnBhZ2UtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcyAucHJlc3MtcmVsZWFzZS1zdWJoZWFkaW5nLCAucGFnZS10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzIGg1LCAucGFnZS10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzIGg2IHtcbiAgZm9udC13ZWlnaHQ6IDgwMDsgfVxuXG4uZXZlbnQtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcyAuYnV0dG9uLCAucGFnZS10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzIC5idXR0b24ge1xuICBmb250LXdlaWdodDogbm9ybWFsOyB9XG5cbi5ldmVudC10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzIC5wcmljZXMtZ2VuZXJhbCA+IGgzLCAuZXZlbnQtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcyBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmFxIC5wcmljZXMtZ2VuZXJhbCA+IC5mYXEtdGl0bGUsIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgLmV2ZW50LXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMgLnByaWNlcy1nZW5lcmFsID4gLmZhcS10aXRsZSwgLmV2ZW50LXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMgLnByaWNlcy12YWx1ZSA+IGgzLCAuZXZlbnQtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcyBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmFxIC5wcmljZXMtdmFsdWUgPiAuZmFxLXRpdGxlLCBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmFxIC5ldmVudC10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzIC5wcmljZXMtdmFsdWUgPiAuZmFxLXRpdGxlLCAucGFnZS10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzIC5wcmljZXMtZ2VuZXJhbCA+IGgzLCAucGFnZS10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgLnByaWNlcy1nZW5lcmFsID4gLmZhcS10aXRsZSwgYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LWZhcSAucGFnZS10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzIC5wcmljZXMtZ2VuZXJhbCA+IC5mYXEtdGl0bGUsIC5wYWdlLXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMgLnByaWNlcy12YWx1ZSA+IGgzLCAucGFnZS10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgLnByaWNlcy12YWx1ZSA+IC5mYXEtdGl0bGUsIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgLnBhZ2UtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcyAucHJpY2VzLXZhbHVlID4gLmZhcS10aXRsZSB7XG4gIGxpbmUtaGVpZ2h0OiAyO1xuICBtYXJnaW4tdG9wOiAxcmVtOyB9XG5cbi5ldmVudC10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzIC5wcmljZXMtZ2VuZXJhbCA+IGgzICsgaHIsIC5ldmVudC10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgLnByaWNlcy1nZW5lcmFsID4gLmZhcS10aXRsZSArIGhyLCBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmFxIC5ldmVudC10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzIC5wcmljZXMtZ2VuZXJhbCA+IC5mYXEtdGl0bGUgKyBociwgLmV2ZW50LXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMgLnByaWNlcy12YWx1ZSA+IGgzICsgaHIsIC5ldmVudC10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgLnByaWNlcy12YWx1ZSA+IC5mYXEtdGl0bGUgKyBociwgYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LWZhcSAuZXZlbnQtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcyAucHJpY2VzLXZhbHVlID4gLmZhcS10aXRsZSArIGhyLCAucGFnZS10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzIC5wcmljZXMtZ2VuZXJhbCA+IGgzICsgaHIsIC5wYWdlLXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMgYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LWZhcSAucHJpY2VzLWdlbmVyYWwgPiAuZmFxLXRpdGxlICsgaHIsIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgLnBhZ2UtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcyAucHJpY2VzLWdlbmVyYWwgPiAuZmFxLXRpdGxlICsgaHIsIC5wYWdlLXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMgLnByaWNlcy12YWx1ZSA+IGgzICsgaHIsIC5wYWdlLXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMgYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LWZhcSAucHJpY2VzLXZhbHVlID4gLmZhcS10aXRsZSArIGhyLCBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmFxIC5wYWdlLXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMgLnByaWNlcy12YWx1ZSA+IC5mYXEtdGl0bGUgKyBociB7XG4gIG1hcmdpbi10b3A6IDA7IH1cblxuLmV2ZW50LXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMgLnByaWNpbmctZ2VuZXJhbC1kZXNjcmlwdGlvbiwgLmV2ZW50LXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMgLnByaWNpbmctdmFsdWUtZGVzY3JpcHRpb24sIC5wYWdlLXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5wcmljZXMgLnByaWNpbmctZ2VuZXJhbC1kZXNjcmlwdGlvbiwgLnBhZ2UtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcyAucHJpY2luZy12YWx1ZS1kZXNjcmlwdGlvbiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uZXZlbnQtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcyAucHJpY2luZy10YWJsZSwgLnBhZ2UtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcyAucHJpY2luZy10YWJsZSB7XG4gIGZvbnQtc2l6ZTogMS4wOGVtOyB9XG4gIC5ldmVudC10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAucHJpY2VzIC5wcmljaW5nLXRhYmxlIC5wcmljaW5nLXRhYmxlLXRleHQgcCwgLnBhZ2UtdGVtcGxhdGUtd2lsZC1saWdodHMgLnByaWNlcyAucHJpY2luZy10YWJsZSAucHJpY2luZy10YWJsZS10ZXh0IHAge1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cblxuLmV2ZW50LXRlbXBsYXRlLXdpbGQtbGlnaHRzIC5ldmVudC1tZXRhLCAucGFnZS10ZW1wbGF0ZS13aWxkLWxpZ2h0cyAuZXZlbnQtbWV0YSB7XG4gIHBhZGRpbmctdG9wOiAxLjZyZW07IH1cblxuLypcbkhhYml0YXQgYXJjaGl2ZSBwYWdlLlxuXG5Ac2luY2UgMC4xLjBcbiovXG4uaGFiaXRhdC1wYWdlLXRpdGxlIHtcbiAgY29sb3I6ICMzYjhlZGU7IH1cblxuLmhhYml0YXQge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4ICFpbXBvcnRhbnQ7IH1cbiAgLmhhYml0YXQgLmhhYml0YXQtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS44ZW07IH1cbiAgICAuaGFiaXRhdCAuaGFiaXRhdC10aXRsZSAuaGFiaXRhdC1pbWFnZSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiA0MCU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB9XG4gICAgLmhhYml0YXQgLmhhYml0YXQtdGl0bGUgYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgcGFkZGluZzogMC4yZW0gMC41ZW0gIWltcG9ydGFudDsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAgIC5oYWJpdGF0IC5oYWJpdGF0LXRpdGxlIGEge1xuICAgICAgICAgIHBhZGRpbmc6IDAgMC41ZW0gMCAwICFpbXBvcnRhbnQ7IH0gfVxuICAuaGFiaXRhdCAuaGFiaXRhdC1jb250ZW50IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFlbSAhaW1wb3J0YW50OyB9XG4gICAgLmhhYml0YXQgLmhhYml0YXQtY29udGVudCAuaGFiaXRhdC1jb3B5IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgICAuaGFiaXRhdCAuaGFiaXRhdC1jb250ZW50IC5oYWJpdGF0LWFuaW1hbHMgLmNvbHVtbiwgLmhhYml0YXQgLmhhYml0YXQtY29udGVudCAuaGFiaXRhdC1hbmltYWxzIC5jb2x1bW5zIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yNWVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgICAgLmhhYml0YXQgLmhhYml0YXQtY29udGVudCAuaGFiaXRhdC1hbmltYWxzIC5jb2x1bW4gYSwgLmhhYml0YXQgLmhhYml0YXQtY29udGVudCAuaGFiaXRhdC1hbmltYWxzIC5jb2x1bW5zIGEge1xuICAgICAgICBjb2xvcjogIzNiOGVkZTsgfVxuXG4vKlxuU2VhcmNoIGluZGV4LlxuXG5Ac2luY2UgMC4xLjBcbiovXG5ib2R5LmR6cy1jYW1wYWlnbiAjc2l0ZS1jb250ZW50IC5wYWdlLWNvcHkge1xuICBtYXgtd2lkdGg6IG5vbmU7IH1cblxuLypcbkV2ZW50IGFyY2hpdmUgcGFnZS5cblxuQHNpbmNlIDAuMS4wXG4qL1xuI2FyY2hpdmUtZXZlbnQgLnNodWZmbGUtaXRlbTpob3ZlciAuc2h1ZmZsZS1pdGVtLWRhdGUge1xuICBjb2xvcjogI0ZGREE2RTsgfVxuXG4jYXJjaGl2ZS1ldmVudCAuc2h1ZmZsZS10aXRsZSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmctbGVmdDogMC41ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNWVtOyB9XG5cbiNhcmNoaXZlLWV2ZW50IC5zaHVmZmxlLWl0ZW0tZGF0ZSB7XG4gIGNvbG9yOiAjMWE1Yjk5O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogMC44ZW07IH1cblxuLypcbkFuaW1hbCBhcmNoaXZlIHBhZ2UuXG5cbkBzaW5jZSAwLjEuMFxuKi9cbiNhcmNoaXZlLWFuaW1hbCAuc2h1ZmZsZS10aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwLjJlbSAwLjVlbTsgfVxuXG4vKlxuSG9tZSBwYWdlLlxuXG5Ac2luY2UgMC4xLjBcbiovXG5ib2R5LmhvbWUgI3NpdGUtY29udGVudCB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZDogIzAwMzNhMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIGJvZHkuaG9tZSAjc2l0ZS1jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9tYWluLWJhY2suanBnXCIpICMzYjhlZGUgY2VudGVyIHRvcCBuby1yZXBlYXQ7IH0gfVxuICBib2R5LmhvbWUgI3NpdGUtY29udGVudCA+IC5yb3cge1xuICAgIGJhY2tncm91bmQ6ICMwMDMzYTA7IH1cblxuYm9keS5ob21lICNob21lLWJhbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiA0NTBweDtcbiAgbWFyZ2luLWxlZnQ6IC0xLjA3MTQzcmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0xLjA3MTQzcmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIGJvZHkuaG9tZSAjaG9tZS1iYW5uZXIge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICBib2R5LmhvbWUgI2hvbWUtYmFubmVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgYm9keS5ob21lICNob21lLWJhbm5lciAuZHpzLXNsaWRlciB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBib2R5LmhvbWUgI2hvbWUtYmFubmVyIC5kenMtc2xpZGVyIC5kenMtc2xpZGVyLXByZXYge1xuICAgICAgbGVmdDogMDsgfVxuICAgIGJvZHkuaG9tZSAjaG9tZS1iYW5uZXIgLmR6cy1zbGlkZXIgLmR6cy1zbGlkZXItbmV4dCB7XG4gICAgICByaWdodDogMDsgfVxuICAgIGJvZHkuaG9tZSAjaG9tZS1iYW5uZXIgLmR6cy1zbGlkZXIgLnNsaWNrLXNsaWRlIHtcbiAgICAgIGhlaWdodDogNDUwcHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgICAgYm9keS5ob21lICNob21lLWJhbm5lciAuZHpzLXNsaWRlciAuc2xpY2stc2xpZGUge1xuICAgICAgICAgIGhlaWdodDogYXV0bzsgfSB9XG4gICAgICBib2R5LmhvbWUgI2hvbWUtYmFubmVyIC5kenMtc2xpZGVyIC5zbGljay1zbGlkZSBpbWcge1xuICAgICAgICBoZWlnaHQ6IDQ1MHB4O1xuICAgICAgICBmbG9hdDogcmlnaHQ7IH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAgICAgYm9keS5ob21lICNob21lLWJhbm5lciAuZHpzLXNsaWRlciAuc2xpY2stc2xpZGUgaW1nIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bzsgfSB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAgICAgYm9keS5ob21lICNob21lLWJhbm5lciAuZHpzLXNsaWRlciAuc2xpY2stc2xpZGUgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMTAwcHg7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7IH0gfVxuXG5ib2R5LmhvbWUgI2JpZy1idXR0b25zLCBib2R5LmhvbWUgI2RvbmF0aW9uIHtcbiAgbWFyZ2luLXRvcDogMS40Mjg1N3JlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIGJvZHkuaG9tZSAjYmlnLWJ1dHRvbnMsIGJvZHkuaG9tZSAjZG9uYXRpb24ge1xuICAgICAgbWFyZ2luLXRvcDogMi4xNDI4NnJlbTsgfSB9XG5cbmJvZHkuaG9tZSAjZG9uYXRpb24ge1xuICBjb2xvcjogI2ZmZjtcbiAgbWFyZ2luLWJvdHRvbTogMS40Mjg1N3JlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIGJvZHkuaG9tZSAjZG9uYXRpb24ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMi4xNDI4NnJlbTsgfSB9XG5cbmJvZHkuaG9tZSAjaG9tZS16LWZlZWQge1xuICBtYXJnaW4tdG9wOiAzMHB4O1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG4gIGJvZHkuaG9tZSAjaG9tZS16LWZlZWQgLnRpdGxlLXNlY3Rpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgbWFyZ2luOiAzMHB4IDA7IH1cbiAgICBib2R5LmhvbWUgI2hvbWUtei1mZWVkIC50aXRsZS1zZWN0aW9uIGgyIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0OyB9XG4gICAgYm9keS5ob21lICNob21lLXotZmVlZCAudGl0bGUtc2VjdGlvbiBociB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIG1hcmdpbjogLTJweCAwIDAgMDtcbiAgICAgIGJvcmRlcjogM3B4IHNvbGlkICM3ZTY2YWQ7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG4gICAgYm9keS5ob21lICNob21lLXotZmVlZCAudGl0bGUtc2VjdGlvbiAudGl0bGUsIGJvZHkuaG9tZSAjaG9tZS16LWZlZWQgLnRpdGxlLXNlY3Rpb24gLnN1Yi10aXRsZSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgICAgIG1hcmdpbjogMCAyMHB4O1xuICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgbGVmdDogMTAlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBiYWNrZ3JvdW5kOiAjMDAzM2EwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgICBib2R5LmhvbWUgI2hvbWUtei1mZWVkIC50aXRsZS1zZWN0aW9uIC50aXRsZSwgYm9keS5ob21lICNob21lLXotZmVlZCAudGl0bGUtc2VjdGlvbiAuc3ViLXRpdGxlIHtcbiAgICAgICAgICBsZWZ0OiBhdXRvOyB9IH1cbiAgICBib2R5LmhvbWUgI2hvbWUtei1mZWVkIC50aXRsZS1zZWN0aW9uIC56IHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gICAgYm9keS5ob21lICNob21lLXotZmVlZCAudGl0bGUtc2VjdGlvbiAudGl0bGUge1xuICAgICAgZm9udC1zaXplOiAzZW07IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgICBib2R5LmhvbWUgI2hvbWUtei1mZWVkIC50aXRsZS1zZWN0aW9uIC50aXRsZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAyZW07IH0gfVxuICAgIGJvZHkuaG9tZSAjaG9tZS16LWZlZWQgLnRpdGxlLXNlY3Rpb24gLnN1Yi10aXRsZSB7XG4gICAgICBmb250LXNpemU6IDEuMmVtOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgICAgYm9keS5ob21lICNob21lLXotZmVlZCAudGl0bGUtc2VjdGlvbiAuc3ViLXRpdGxlIHtcbiAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9IH1cbiAgYm9keS5ob21lICNob21lLXotZmVlZCAuZmVlZCB7XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgYm9keS5ob21lICNob21lLXotZmVlZCAuZmVlZCBsaSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNTBweDsgfVxuICAgIGJvZHkuaG9tZSAjaG9tZS16LWZlZWQgLmZlZWQgLmZlZWQtaXRlbS1jb250YWluZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgaGVpZ2h0OiAyNjBweDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZDogIzFGNzBCNjsgfVxuICAgICAgYm9keS5ob21lICNob21lLXotZmVlZCAuZmVlZCAuZmVlZC1pdGVtLWNvbnRhaW5lciBoMywgYm9keS5ob21lICNob21lLXotZmVlZCAuZmVlZCAuZmVlZC1pdGVtLWNvbnRhaW5lciBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmFxIC5mYXEtdGl0bGUsIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgYm9keS5ob21lICNob21lLXotZmVlZCAuZmVlZCAuZmVlZC1pdGVtLWNvbnRhaW5lciAuZmFxLXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBtYXJnaW46IDAuNWVtIDAgMCAwOyB9XG4gICAgICBib2R5LmhvbWUgI2hvbWUtei1mZWVkIC5mZWVkIC5mZWVkLWl0ZW0tY29udGFpbmVyID4gLnJvdyB7XG4gICAgICAgIGhlaWdodDogMTAwJTsgfVxuICAgICAgYm9keS5ob21lICNob21lLXotZmVlZCAuZmVlZCAuZmVlZC1pdGVtLWNvbnRhaW5lciAuY29udGVudCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICMxRjcwQjY7IH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAgICAgYm9keS5ob21lICNob21lLXotZmVlZCAuZmVlZCAuZmVlZC1pdGVtLWNvbnRhaW5lciAuY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMzVweDsgfSB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAgICAgYm9keS5ob21lICNob21lLXotZmVlZCAuZmVlZCAuZmVlZC1pdGVtLWNvbnRhaW5lciAuY29udGVudCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMjAsIDM5LCAxMzYsIDAuNyk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zOyB9XG4gICAgICAgICAgICBib2R5LmhvbWUgI2hvbWUtei1mZWVkIC5mZWVkIC5mZWVkLWl0ZW0tY29udGFpbmVyIC5jb250ZW50OmhvdmVyIHtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMTsgfSB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAgICAgYm9keS5ob21lICNob21lLXotZmVlZCAuZmVlZCAuZmVlZC1pdGVtLWNvbnRhaW5lciAuY29udGVudCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDFlbTsgfSB9XG4gICAgICAgIGJvZHkuaG9tZSAjaG9tZS16LWZlZWQgLmZlZWQgLmZlZWQtaXRlbS1jb250YWluZXIgLmNvbnRlbnQgcCB7XG4gICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0OyB9XG4gICAgICAgIGJvZHkuaG9tZSAjaG9tZS16LWZlZWQgLmZlZWQgLmZlZWQtaXRlbS1jb250YWluZXIgLmNvbnRlbnQgPiBwIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgfVxuICAgICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgICBib2R5LmhvbWUgI2hvbWUtei1mZWVkIC5mZWVkIC5mZWVkLWl0ZW0tY29udGFpbmVyIC5jb250ZW50ID4gcCB7XG4gICAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlOyB9IH1cbiAgICAgICAgYm9keS5ob21lICNob21lLXotZmVlZCAuZmVlZCAuZmVlZC1pdGVtLWNvbnRhaW5lciAuY29udGVudCAucmVhZC1tb3JlIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgYmFja2dyb3VuZDogIzNiOGVkZTtcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICBmb250LWZhbWlseTogXCJNeXJpYWQgUHJvIEhlYXZ5XCI7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICBmb250LXNpemU6IDEuM2VtO1xuICAgICAgICAgIHBhZGRpbmc6IDAuNWVtIDFlbTsgfVxuICAgICAgICAgIGJvZHkuaG9tZSAjaG9tZS16LWZlZWQgLmZlZWQgLmZlZWQtaXRlbS1jb250YWluZXIgLmNvbnRlbnQgLnJlYWQtbW9yZTpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjNjdhN2U1OyB9XG4gICAgICBib2R5LmhvbWUgI2hvbWUtei1mZWVkIC5mZWVkIC5mZWVkLWl0ZW0tY29udGFpbmVyIC5pbWFnZSB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuICAgICAgYm9keS5ob21lICNob21lLXotZmVlZCAuZmVlZCAuZmVlZC1pdGVtLWNvbnRhaW5lciAuaWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTMycHg7XG4gICAgICAgIGNvbG9yOiAjNDM4RkRCO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGZvbnQtc2l6ZTogNGVtO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAzMDBtcztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAgIGJvZHkuaG9tZSAjaG9tZS16LWZlZWQgLmZlZWQgLmZlZWQtaXRlbS1jb250YWluZXIgLmljb246aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAjMmU4MmQ3OyB9XG4gICAgICAgIGJvZHkuaG9tZSAjaG9tZS16LWZlZWQgLmZlZWQgLmZlZWQtaXRlbS1jb250YWluZXIgLmljb24gW2NsYXNzKj1cImR6cy1pY29uXCJdIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgICAgYm9keS5ob21lICNob21lLXotZmVlZCAuZmVlZCAuZmVlZC1pdGVtLWNvbnRhaW5lciAuaWNvbiAuYmFja2dyb3VuZCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMnB4O1xuICAgICAgICAgIHJpZ2h0OiAycHg7XG4gICAgICAgICAgYm90dG9tOiAycHg7XG4gICAgICAgICAgbGVmdDogMnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gIGJvZHkuaG9tZSAjaG9tZS16LWZlZWQgLnotZmVlZC10d2l0dGVyIC50d2l0dGVyLWF2YXRhciB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVlbTsgfVxuICBib2R5LmhvbWUgI2hvbWUtei1mZWVkIC56LWZlZWQtdHdpdHRlciAudHdpdHRlci1hY3Rpb25zLCBib2R5LmhvbWUgI2hvbWUtei1mZWVkIC56LWZlZWQtdHdpdHRlciAudHdpdHRlci11c2VyLWluZm8sIGJvZHkuaG9tZSAjaG9tZS16LWZlZWQgLnotZmVlZC10d2l0dGVyIC50d2l0dGVyLXRpbWUge1xuICAgIGNvbG9yOiAjMjQ0MDk2OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIGJvZHkuaG9tZSAjaG9tZS16LWZlZWQgLnotZmVlZC10d2l0dGVyIC50d2l0dGVyLWFjdGlvbnMsIGJvZHkuaG9tZSAjaG9tZS16LWZlZWQgLnotZmVlZC10d2l0dGVyIC50d2l0dGVyLXVzZXItaW5mbywgYm9keS5ob21lICNob21lLXotZmVlZCAuei1mZWVkLXR3aXR0ZXIgLnR3aXR0ZXItdGltZSB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0OyB9IH1cbiAgICBib2R5LmhvbWUgI2hvbWUtei1mZWVkIC56LWZlZWQtdHdpdHRlciAudHdpdHRlci1hY3Rpb25zIGEsIGJvZHkuaG9tZSAjaG9tZS16LWZlZWQgLnotZmVlZC10d2l0dGVyIC50d2l0dGVyLXVzZXItaW5mbyBhLCBib2R5LmhvbWUgI2hvbWUtei1mZWVkIC56LWZlZWQtdHdpdHRlciAudHdpdHRlci10aW1lIGEge1xuICAgICAgY29sb3I6IGluaGVyaXQ7IH1cbiAgYm9keS5ob21lICNob21lLXotZmVlZCAuei1mZWVkLXR3aXR0ZXIgLnR3aXR0ZXItdXNlci1pbmZvIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICBib2R5LmhvbWUgI2hvbWUtei1mZWVkIC56LWZlZWQtdHdpdHRlciAudHdpdHRlci1oZWFkZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IC01NXB4OyB9XG4gICAgICBib2R5LmhvbWUgI2hvbWUtei1mZWVkIC56LWZlZWQtdHdpdHRlciAudHdpdHRlci1oZWFkZXIgaW1nIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjUpOyB9IH1cbiAgYm9keS5ob21lICNob21lLXotZmVlZCAuei1mZWVkLXR3aXR0ZXIgLnR3aXR0ZXItYWN0aW9ucyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDJweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogIzU2OEZDQTtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgIHotaW5kZXg6IDk7IH1cbiAgICBib2R5LmhvbWUgI2hvbWUtei1mZWVkIC56LWZlZWQtdHdpdHRlciAudHdpdHRlci1hY3Rpb25zIC50d2l0dGVyLWFjdGlvbiAudHdpdHRlci1pY29uIHtcbiAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgYm9keS5ob21lICNob21lLXotZmVlZCAuei1mZWVkLXR3aXR0ZXIgLnR3aXR0ZXItYWN0aW9ucyAudHdpdHRlci1hY3Rpb24uZmF2b3JpdGUgLnR3aXR0ZXItaWNvbiB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoXCJodHRwczovL2cudHdpbWcuY29tL2Rldi9kb2N1bWVudGF0aW9uL2ltYWdlL2Zhdm9yaXRlLnBuZ1wiKTsgfVxuICAgIGJvZHkuaG9tZSAjaG9tZS16LWZlZWQgLnotZmVlZC10d2l0dGVyIC50d2l0dGVyLWFjdGlvbnMgLnR3aXR0ZXItYWN0aW9uLnJlcGx5IC50d2l0dGVyLWljb24ge1xuICAgICAgYmFja2dyb3VuZDogdXJsKFwiaHR0cHM6Ly9nLnR3aW1nLmNvbS9kZXYvZG9jdW1lbnRhdGlvbi9pbWFnZS9yZXBseS5wbmdcIik7IH1cbiAgICBib2R5LmhvbWUgI2hvbWUtei1mZWVkIC56LWZlZWQtdHdpdHRlciAudHdpdHRlci1hY3Rpb25zIC50d2l0dGVyLWFjdGlvbi5yZXR3ZWV0IC50d2l0dGVyLWljb24ge1xuICAgICAgYmFja2dyb3VuZDogdXJsKFwiaHR0cHM6Ly9nLnR3aW1nLmNvbS9kZXYvZG9jdW1lbnRhdGlvbi9pbWFnZS9yZXR3ZWV0LnBuZ1wiKTsgfVxuICAgIGJvZHkuaG9tZSAjaG9tZS16LWZlZWQgLnotZmVlZC10d2l0dGVyIC50d2l0dGVyLWFjdGlvbnMgLnR3aXR0ZXItYWN0aW9uOmhvdmVyLmZhdm9yaXRlIC50d2l0dGVyLWljb24ge1xuICAgICAgYmFja2dyb3VuZDogdXJsKFwiaHR0cHM6Ly9nLnR3aW1nLmNvbS9kZXYvZG9jdW1lbnRhdGlvbi9pbWFnZS9mYXZvcml0ZV9ob3Zlci5wbmdcIik7IH1cbiAgICBib2R5LmhvbWUgI2hvbWUtei1mZWVkIC56LWZlZWQtdHdpdHRlciAudHdpdHRlci1hY3Rpb25zIC50d2l0dGVyLWFjdGlvbjpob3Zlci5yZXBseSAudHdpdHRlci1pY29uIHtcbiAgICAgIGJhY2tncm91bmQ6IHVybChcImh0dHBzOi8vZy50d2ltZy5jb20vZGV2L2RvY3VtZW50YXRpb24vaW1hZ2UvcmVwbHlfaG92ZXIucG5nXCIpOyB9XG4gICAgYm9keS5ob21lICNob21lLXotZmVlZCAuei1mZWVkLXR3aXR0ZXIgLnR3aXR0ZXItYWN0aW9ucyAudHdpdHRlci1hY3Rpb246aG92ZXIucmV0d2VldCAudHdpdHRlci1pY29uIHtcbiAgICAgIGJhY2tncm91bmQ6IHVybChcImh0dHBzOi8vZy50d2ltZy5jb20vZGV2L2RvY3VtZW50YXRpb24vaW1hZ2UvcmV0d2VldF9ob3Zlci5wbmdcIik7IH1cblxuYm9keS5ob21lIC5kenMtYWxlcnQge1xuICB0b3A6IGF1dG87IH1cblxuLypcblNlYXJjaCBpbmRleC5cblxuQHNpbmNlIDAuMS4wXG4qL1xuYm9keS5zZWFyY2ggLnNlYXJjaC1yZXN1bHRzLWNvdW50IHtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgY29sb3I6ICMzYjhlZGU7IH1cblxuLypcblN0eWxlcyBwYWdlLnBocC5cblxuQHNpbmNlIDAuMS4wXG4qL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5wYWdlLXRlbXBsYXRlLW1hcCAjc2l0ZS1oZWFkZXIgLmhlYWRlci1jb250YWluZXIsIC5oaWRkZW4tcGFnZS10ZW1wbGF0ZS1tYXAgI3NpdGUtaGVhZGVyIC5oZWFkZXItY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDEwMHB4OyB9XG4gIC5wYWdlLXRlbXBsYXRlLW1hcCAjc2l0ZS1oZWFkZXIgLmhlYWRlci1ib3R0b20sIC5oaWRkZW4tcGFnZS10ZW1wbGF0ZS1tYXAgI3NpdGUtaGVhZGVyIC5oZWFkZXItYm90dG9tIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5wYWdlLXRlbXBsYXRlLW1hcCAjc2l0ZS1oZWFkZXIgI2R6cy1xaWIsIC5oaWRkZW4tcGFnZS10ZW1wbGF0ZS1tYXAgI3NpdGUtaGVhZGVyICNkenMtcWliIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5wYWdlLXRlbXBsYXRlLW1hcCAjc2l0ZS1oZWFkZXIgI2dvb2dsZS10cmFuc2xhdGUsIC5oaWRkZW4tcGFnZS10ZW1wbGF0ZS1tYXAgI3NpdGUtaGVhZGVyICNnb29nbGUtdHJhbnNsYXRlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5wYWdlLXRlbXBsYXRlLW1hcCAjc2l0ZS1mb290ZXIsIC5oaWRkZW4tcGFnZS10ZW1wbGF0ZS1tYXAgI3NpdGUtZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLnBhZ2UtdGVtcGxhdGUtbWFwICNzaXRlLWNvbnRlbnQsIC5oaWRkZW4tcGFnZS10ZW1wbGF0ZS1tYXAgI3NpdGUtY29udGVudCB7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLnBhZ2UtdGVtcGxhdGUtbWFwICNzaXRlLWNvbnRlbnQgW2NsYXNzKj1cIi1jb3B5XCJdLCAuaGlkZGVuLXBhZ2UtdGVtcGxhdGUtbWFwICNzaXRlLWNvbnRlbnQgW2NsYXNzKj1cIi1jb3B5XCJdIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cbiAgLnBhZ2UtdGVtcGxhdGUtbWFwICNzaXRlLWNvbnRlbnQgLnBhZ2UtY29weSwgLmhpZGRlbi1wYWdlLXRlbXBsYXRlLW1hcCAjc2l0ZS1jb250ZW50IC5wYWdlLWNvcHkge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5wYWdlLXRlbXBsYXRlLW1hcCAjc2l0ZS1jb250ZW50IC5wYWdlLWNvcHkgPiBwLCAuaGlkZGVuLXBhZ2UtdGVtcGxhdGUtbWFwICNzaXRlLWNvbnRlbnQgLnBhZ2UtY29weSA+IHAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1tYXAgLm1hcC1hY2NvcmRpb24gLmFjY29yZGlvbi1uYXZpZ2F0aW9uLCAuaGlkZGVuLXBhZ2UtdGVtcGxhdGUtbWFwIC5tYXAtYWNjb3JkaW9uIC5hY2NvcmRpb24tbmF2aWdhdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1tYXAgI3pvby1tYXAsIC5oaWRkZW4tcGFnZS10ZW1wbGF0ZS1tYXAgI3pvby1tYXAge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDQzNXB4ICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzNDBweCkgYW5kIChtYXgtd2lkdGg6IDM1OXB4KSB7XG4gIC5wYWdlLXRlbXBsYXRlLW1hcCAjem9vLW1hcCwgLmhpZGRlbi1wYWdlLXRlbXBsYXRlLW1hcCAjem9vLW1hcCB7XG4gICAgaGVpZ2h0OiA0NzVweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzNjBweCkgYW5kIChtYXgtd2lkdGg6IDM2NnB4KSB7XG4gIC5wYWdlLXRlbXBsYXRlLW1hcCAjem9vLW1hcCwgLmhpZGRlbi1wYWdlLXRlbXBsYXRlLW1hcCAjem9vLW1hcCB7XG4gICAgaGVpZ2h0OiA1NzVweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzNjdweCkgYW5kIChtYXgtd2lkdGg6IDM3NXB4KSB7XG4gIC5wYWdlLXRlbXBsYXRlLW1hcCAjem9vLW1hcCwgLmhpZGRlbi1wYWdlLXRlbXBsYXRlLW1hcCAjem9vLW1hcCB7XG4gICAgaGVpZ2h0OiA1MzVweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzNzZweCkgYW5kIChtYXgtd2lkdGg6IDQxNHB4KSB7XG4gIC5wYWdlLXRlbXBsYXRlLW1hcCAjem9vLW1hcCwgLmhpZGRlbi1wYWdlLXRlbXBsYXRlLW1hcCAjem9vLW1hcCB7XG4gICAgaGVpZ2h0OiA2MDVweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjMpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gIC5wYWdlLXRlbXBsYXRlLW1hcCAjem9vLW1hcCwgLmhpZGRlbi1wYWdlLXRlbXBsYXRlLW1hcCAjem9vLW1hcCB7XG4gICAgaGVpZ2h0OiA2MTBweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIGFuZCAobWF4LXdpZHRoOiAxMzcwcHgpIHtcbiAgLnBhZ2UtdGVtcGxhdGUtbWFwICN6b28tbWFwLCAuaGlkZGVuLXBhZ2UtdGVtcGxhdGUtbWFwICN6b28tbWFwIHtcbiAgICBoZWlnaHQ6IDU1NXB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEzNzFweCkgYW5kIChtYXgtd2lkdGg6IDE5MTlweCkge1xuICAucGFnZS10ZW1wbGF0ZS1tYXAgI3pvby1tYXAsIC5oaWRkZW4tcGFnZS10ZW1wbGF0ZS1tYXAgI3pvby1tYXAge1xuICAgIGhlaWdodDogNTc1cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC5wYWdlLXRlbXBsYXRlLW1hcCAjem9vLW1hcCwgLmhpZGRlbi1wYWdlLXRlbXBsYXRlLW1hcCAjem9vLW1hcCB7XG4gICAgaGVpZ2h0OiA1ODBweCAhaW1wb3J0YW50OyB9IH1cblxuLypcblN0eWxlcyBzaGFyZWQgYW1vbmcgYWxsIHRlbXBsYXRlcy5cblxuQHNpbmNlIDAuMS4wXG4qL1xuLnNpdGUtcGFnZS1jb250ZW50IC5wYWdlLWNvbnRlbnQsIC5zaXRlLXBhZ2UtY29udGVudCAucG9zdC1jb250ZW50IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnNpdGUtcGFnZS1jb250ZW50IC5wYWdlLWNvbnRlbnQsIC5zaXRlLXBhZ2UtY29udGVudCAucG9zdC1jb250ZW50IHtcbiAgICAgIHBhZGRpbmctbGVmdDogMWVtOyB9IH1cblxuLnNpdGUtcGFnZS1jb250ZW50IGgxIHtcbiAgbWFyZ2luLXRvcDogMDsgfVxuXG5bY2xhc3MqPVwidXAtXCJdLnRleHQtY2VudGVyIHtcbiAgZm9udC1zaXplOiAwOyB9XG4gIFtjbGFzcyo9XCJ1cC1cIl0udGV4dC1jZW50ZXIgPiBsaSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbiNzaXRlLWNvbnRlbnQgW2NsYXNzKj1cIi1jb3B5XCJdOjpiZWZvcmUsICNzaXRlLWNvbnRlbnQgW2NsYXNzKj1cIi1jb3B5XCJdOjphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiAnICc7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIG9yZGVyOiAxOyB9XG5cbiNzaXRlLWNvbnRlbnQgW2NsYXNzKj1cIi1jb3B5XCJdOjphZnRlciB7XG4gIGNsZWFyOiBib3RoOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICNzaXRlLWNvbnRlbnQgW2NsYXNzKj1cIi1jb3B5XCJdIHtcbiAgICBtYXgtd2lkdGg6IDY0MHB4OyB9IH1cblxuI3NpdGUtY29udGVudCBbY2xhc3MqPVwiLWNvcHlcIl0gLmJ1dHRvbiB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuI3NpdGUtY29udGVudCBbY2xhc3MqPVwiLWNvcHlcIl0gdWwge1xuICBsaXN0LXN0eWxlOiBkaXNjO1xuICBwYWRkaW5nLWxlZnQ6IDNlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuXG4jc2l0ZS1jb250ZW50IFtjbGFzcyo9XCItY29weVwiXSBvbCB7XG4gIHBhZGRpbmctbGVmdDogM2VtO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbiNzaXRlLWNvbnRlbnQgW2NsYXNzKj1cIi1jb3B5XCJdIGhyIHtcbiAgbWFyZ2luOiAxZW0gMDsgfVxuXG4jc2l0ZS1jb250ZW50IFtjbGFzcyo9XCItY29weVwiXSBpbWcge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBiYWNrZ3JvdW5kOiAjNjA2MDYwO1xuICBjb2xvcjogI2UyZTJlMjtcbiAgbWluLWhlaWdodDogMTAwcHg7IH1cblxuI3NpdGUtY29udGVudCBbY2xhc3MqPVwiLWNvcHlcIl0gYS5pbWFnZS1saW5rIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgI3NpdGUtY29udGVudCBbY2xhc3MqPVwiLWNvcHlcIl0gYS5pbWFnZS1saW5rOmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMzAwbXM7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDsgfVxuICAjc2l0ZS1jb250ZW50IFtjbGFzcyo9XCItY29weVwiXSBhLmltYWdlLWxpbms6aG92ZXI6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICM3ODI3ODg7XG4gICAgLyogVGhlIGZhbGxiYWNrIGZvciBhbmNpZW50IHRoaW5ncyAqL1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTIwLCAzOSwgMTM2LCAwLjUpOyB9XG4gICNzaXRlLWNvbnRlbnQgW2NsYXNzKj1cIi1jb3B5XCJdIGEuaW1hZ2UtbGluayBpbWcge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLnBhZ2UtY29weSB7XG4gIG1hcmdpbi10b3A6IDFlbTtcbiAgbWFyZ2luLWJvdHRvbTogMWVtOyB9XG5cbi5wYWdlLXRpdGxlIHtcbiAgY29sb3I6ICMwMDMzYTA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1hcmdpbi10b3A6IDA7IH1cblxuLnZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuXG4ucmlnaHQtYXJyb3cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1sZWZ0OiAwLjNlbTsgfVxuICAucmlnaHQtYXJyb3c6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI2ZmZjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMC41ZW0gMCAwLjVlbSAwLjdlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDA7XG4gICAgdG9wOiA1MCU7IH1cblxuLmxlZnQtYXJyb3cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogMC4zZW07IH1cbiAgLmxlZnQtYXJyb3c6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI2ZmZjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMC41ZW0gMC43ZW0gMC41ZW0gMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDA7XG4gICAgdG9wOiA1MCU7IH1cblxuLndpZGdldC10aXRsZSBhIHtcbiAgY29sb3I6IGluaGVyaXQ7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5kenMtZXh0cmEtZmllbGQtdGFibGUtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogc2Nyb2xsOyB9IH1cblxuYm9keS5wYWdlLXRlbXBsYXRlLWFyY2hpdmUtbGVzc29ucyAuc2l0ZS1zaWRlYmFyIC53aWRnZXRzIC5mYWNldHdwLWZhY2V0IHtcbiAgbWFyZ2luLXRvcDogMXJlbTsgfVxuICBib2R5LnBhZ2UtdGVtcGxhdGUtYXJjaGl2ZS1sZXNzb25zIC5zaXRlLXNpZGViYXIgLndpZGdldHMgLmZhY2V0d3AtZmFjZXQgLmZhY2V0d3Atc2VhcmNoLXdyYXAgLmZhY2V0d3AtYnRuIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbmJvZHkucGFnZS10ZW1wbGF0ZS1hcmNoaXZlLWxlc3NvbnMgLnNodWZmbGUtdGl0bGUgLnNodWZmbGUtdGl0bGUtdGV4dCB7XG4gIHRvcDogYXV0byAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsgfVxuXG4vKlxuQWNjb3JkaW9ucyBvdmVycmlkZXMuXG5cbkBzaW5jZSAwLjEuMFxuKi9cbi5hY2NvcmRpb24ge1xuICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgLmFjY29yZGlvbi5zaW1wbGUgLmFjY29yZGlvbi1uYXZpZ2F0aW9uID4gYSB7XG4gICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjNzgyNzg4OyB9XG4gICAgLmFjY29yZGlvbi5zaW1wbGUgLmFjY29yZGlvbi1uYXZpZ2F0aW9uID4gYTpiZWZvcmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApICM3ODI3ODg7IH1cbiAgLmFjY29yZGlvbiAuY29udGVudCB7XG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC5hY2NvcmRpb24gLmNvbnRlbnQuY29sbGFwc2Uge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAuYWNjb3JkaW9uIC5hY2NvcmRpb24tbmF2aWdhdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtICFpbXBvcnRhbnQ7IH1cbiAgICAuYWNjb3JkaW9uIC5hY2NvcmRpb24tbmF2aWdhdGlvbjpsYXN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5hY2NvcmRpb24gLmFjY29yZGlvbi1uYXZpZ2F0aW9uID4gYSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjM2I4ZWRlO1xuICAgICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BnbzhjM1puSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZDJsa2RHZzlJakV3TUNVaUlHaGxhV2RvZEQwaU1UQXdKU0lnZG1sbGQwSnZlRDBpTUNBd0lERWdNU0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWJtOXVaU0krQ2lBZ1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTSm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJZ2VERTlJakFsSWlCNU1UMGlNQ1VpSUhneVBTSXhNREFsSWlCNU1qMGlNQ1VpUGdvZ0lDQWdQSE4wYjNBZ2IyWm1jMlYwUFNJd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJKbU1XVXlaQ0lnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlObU5UazBOemNpSUhOMGIzQXRiM0JoWTJsMGVUMGlNU0l2UGdvZ0lEd3ZiR2x1WldGeVIzSmhaR2xsYm5RK0NpQWdQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRWlJR2hsYVdkb2REMGlNU0lnWm1sc2JEMGlkWEpzS0NObmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0tTSWdMejRLUEM5emRtYyspO1xuICAgICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgIzNiOGVkZSAwJSwgIzY2QUNERiAxMDAlKTtcbiAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBjb2xvci1zdG9wKDAlLCAjM2I4ZWRlKSwgY29sb3Itc3RvcCgxMDAlLCAjNjZBQ0RGKSk7XG4gICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjM2I4ZWRlIDAlLCAjNjZBQ0RGIDEwMCUpO1xuICAgICAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICMzYjhlZGUgMCUsICM2NkFDREYgMTAwJSk7XG4gICAgICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KGxlZnQsICMzYjhlZGUgMCUsICM2NkFDREYgMTAwJSk7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMzYjhlZGUgMCUsICM2NkFDREYgMTAwJSk7XG4gICAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI2JmMWUyZCcsIGVuZENvbG9yc3RyPScjZjU5NDc3JyxHcmFkaWVudFR5cGU9MSApO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEuOGVtO1xuICAgICAgcGFkZGluZy10b3A6IDAuMWVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDAuMWVtO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgICAuYWNjb3JkaW9uIC5hY2NvcmRpb24tbmF2aWdhdGlvbiA+IGE6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgI2ZmZjtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwLjVlbSAwIDAuNWVtIDAuN2VtO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDEwcHg7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OTk5KSB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMzAwbXM7IH1cbiAgICAgIC5hY2NvcmRpb24gLmFjY29yZGlvbi1uYXZpZ2F0aW9uID4gYTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMyNTgxZGE7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQS9QZ284YzNabklIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2QybGtkR2c5SWpFd01DVWlJR2hsYVdkb2REMGlNVEF3SlNJZ2RtbGxkMEp2ZUQwaU1DQXdJREVnTVNJZ2NISmxjMlZ5ZG1WQmMzQmxZM1JTWVhScGJ6MGlibTl1WlNJK0NpQWdQR3hwYm1WaGNrZHlZV1JwWlc1MElHbGtQU0puY21Ga0xYVmpaMmN0WjJWdVpYSmhkR1ZrSWlCbmNtRmthV1Z1ZEZWdWFYUnpQU0oxYzJWeVUzQmhZMlZQYmxWelpTSWdlREU5SWpBbElpQjVNVDBpTUNVaUlIZ3lQU0l4TURBbElpQjVNajBpTUNVaVBnb2dJQ0FnUEhOMGIzQWdiMlptYzJWMFBTSXdKU0lnYzNSdmNDMWpiMnh2Y2owaUkySm1NV1V5WkNJZ2MzUnZjQzF2Y0dGamFYUjVQU0l4SWk4K0NpQWdJQ0E4YzNSdmNDQnZabVp6WlhROUlqRXdNQ1VpSUhOMGIzQXRZMjlzYjNJOUlpTm1OVGswTnpjaUlITjBiM0F0YjNCaFkybDBlVDBpTVNJdlBnb2dJRHd2YkdsdVpXRnlSM0poWkdsbGJuUStDaUFnUEhKbFkzUWdlRDBpTUNJZ2VUMGlNQ0lnZDJsa2RHZzlJakVpSUdobGFXZG9kRDBpTVNJZ1ptbHNiRDBpZFhKc0tDTm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtLU0lnTHo0S1BDOXpkbWMrKTtcbiAgICAgICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgIzI1ODFkYSAwJSwgIzUxYTFkYiAxMDAlKTtcbiAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGNvbG9yLXN0b3AoMCUsICMyNTgxZGEpLCBjb2xvci1zdG9wKDEwMCUsICM1MWExZGIpKTtcbiAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgIzI1ODFkYSAwJSwgIzUxYTFkYiAxMDAlKTtcbiAgICAgICAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICMyNTgxZGEgMCUsICM1MWExZGIgMTAwJSk7XG4gICAgICAgIGJhY2tncm91bmQ6IC1tcy1saW5lYXItZ3JhZGllbnQobGVmdCwgIzI1ODFkYSAwJSwgIzUxYTFkYiAxMDAlKTtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMjU4MWRhIDAlLCAjNTFhMWRiIDEwMCUpO1xuICAgICAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI2JmMWUyZCcsIGVuZENvbG9yc3RyPScjZjU5NDc3JyxHcmFkaWVudFR5cGU9MSApOyB9XG4gICAgLmFjY29yZGlvbiAuYWNjb3JkaW9uLW5hdmlnYXRpb24uaXMtYWN0aXZlID4gYSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjNzgyNzg4O1xuICAgICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BnbzhjM1puSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZDJsa2RHZzlJakV3TUNVaUlHaGxhV2RvZEQwaU1UQXdKU0lnZG1sbGQwSnZlRDBpTUNBd0lERWdNU0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWJtOXVaU0krQ2lBZ1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTSm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJZ2VERTlJakFsSWlCNU1UMGlNQ1VpSUhneVBTSXhNREFsSWlCNU1qMGlNQ1VpUGdvZ0lDQWdQSE4wYjNBZ2IyWm1jMlYwUFNJd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJKbU1XVXlaQ0lnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlObU5UazBOemNpSUhOMGIzQXRiM0JoWTJsMGVUMGlNU0l2UGdvZ0lEd3ZiR2x1WldGeVIzSmhaR2xsYm5RK0NpQWdQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRWlJR2hsYVdkb2REMGlNU0lnWm1sc2JEMGlkWEpzS0NObmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0tTSWdMejRLUEM5emRtYyspO1xuICAgICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgIzc4Mjc4OCAwJSwgIzVDNkRCNCAxMDAlKTtcbiAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBjb2xvci1zdG9wKDAlLCAjNzgyNzg4KSwgY29sb3Itc3RvcCgxMDAlLCAjNUM2REI0KSk7XG4gICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjNzgyNzg4IDAlLCAjNUM2REI0IDEwMCUpO1xuICAgICAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICM3ODI3ODggMCUsICM1QzZEQjQgMTAwJSk7XG4gICAgICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KGxlZnQsICM3ODI3ODggMCUsICM1QzZEQjQgMTAwJSk7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICM3ODI3ODggMCUsICM1QzZEQjQgMTAwJSk7XG4gICAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI2JmMWUyZCcsIGVuZENvbG9yc3RyPScjZjU5NDc3JyxHcmFkaWVudFR5cGU9MSApOyB9XG4gICAgICAuYWNjb3JkaW9uIC5hY2NvcmRpb24tbmF2aWdhdGlvbi5pcy1hY3RpdmUgPiBhOmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OTk5KSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg5MGRlZyk7IH1cbiAgICAgIC5hY2NvcmRpb24gLmFjY29yZGlvbi1uYXZpZ2F0aW9uLmlzLWFjdGl2ZSA+IGE6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjNjcyMTc0O1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUEvUGdvOGMzWm5JSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdkMmxrZEdnOUlqRXdNQ1VpSUdobGFXZG9kRDBpTVRBd0pTSWdkbWxsZDBKdmVEMGlNQ0F3SURFZ01TSWdjSEpsYzJWeWRtVkJjM0JsWTNSU1lYUnBiejBpYm05dVpTSStDaUFnUEd4cGJtVmhja2R5WVdScFpXNTBJR2xrUFNKbmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0lpQm5jbUZrYVdWdWRGVnVhWFJ6UFNKMWMyVnlVM0JoWTJWUGJsVnpaU0lnZURFOUlqQWxJaUI1TVQwaU1DVWlJSGd5UFNJeE1EQWxJaUI1TWowaU1DVWlQZ29nSUNBZ1BITjBiM0FnYjJabWMyVjBQU0l3SlNJZ2MzUnZjQzFqYjJ4dmNqMGlJMkptTVdVeVpDSWdjM1J2Y0MxdmNHRmphWFI1UFNJeElpOCtDaUFnSUNBOGMzUnZjQ0J2Wm1aelpYUTlJakV3TUNVaUlITjBiM0F0WTI5c2IzSTlJaU5tTlRrME56Y2lJSE4wYjNBdGIzQmhZMmwwZVQwaU1TSXZQZ29nSUR3dmJHbHVaV0Z5UjNKaFpHbGxiblErQ2lBZ1BISmxZM1FnZUQwaU1DSWdlVDBpTUNJZ2QybGtkR2c5SWpFaUlHaGxhV2RvZEQwaU1TSWdabWxzYkQwaWRYSnNLQ05uY21Ga0xYVmpaMmN0WjJWdVpYSmhkR1ZrS1NJZ0x6NEtQQzl6ZG1jKyk7XG4gICAgICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICM2NzIxNzQgMCUsICM0ZTVmYTkgMTAwJSk7XG4gICAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBjb2xvci1zdG9wKDAlLCAjNjcyMTc0KSwgY29sb3Itc3RvcCgxMDAlLCAjNGU1ZmE5KSk7XG4gICAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICM2NzIxNzQgMCUsICM0ZTVmYTkgMTAwJSk7XG4gICAgICAgIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCAjNjcyMTc0IDAlLCAjNGU1ZmE5IDEwMCUpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KGxlZnQsICM2NzIxNzQgMCUsICM0ZTVmYTkgMTAwJSk7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzY3MjE3NCAwJSwgIzRlNWZhOSAxMDAlKTtcbiAgICAgICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNiZjFlMmQnLCBlbmRDb2xvcnN0cj0nI2Y1OTQ3NycsR3JhZGllbnRUeXBlPTEgKTsgfVxuICAuYWNjb3JkaW9uOm5vdCgubWFwLWFjY29yZGlvbikgLmFjY29yZGlvbi1uYXZpZ2F0aW9uID4gLmNvbnRlbnQge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIGxlZnQ6IDA7IH1cblxuLypcbkJ1dHRvbiBleHRyYSBzdHlsaW5nLlxuXG5Ac2luY2UgMC4xLjBcbiovXG4uYnV0dG9uIHtcbiAgcGFkZGluZzogMS4xNDI4NnJlbSAyLjI4NTcxcmVtOyB9XG4gIC5idXR0b24ucHJpbWFyeS5ob2xsb3cge1xuICAgIGNvbG9yOiAjNzgyNzg4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1jb2xvcjogIzc4Mjc4ODtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gICAgLmJ1dHRvbi5wcmltYXJ5LmhvbGxvdzpob3ZlciwgLmJ1dHRvbi5wcmltYXJ5LmhvbGxvdzpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzgyNzg4O1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgLmJ1dHRvbi5zZWNvbmRhcnkuaG9sbG93IHtcbiAgICBjb2xvcjogIzAwMzNhMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItY29sb3I6ICMwMDMzYTA7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgIC5idXR0b24uc2Vjb25kYXJ5LmhvbGxvdzpob3ZlciwgLmJ1dHRvbi5zZWNvbmRhcnkuaG9sbG93OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDMzYTA7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAuYnV0dG9uLmxpZ2h0LXNreS1ibHVlLmhvbGxvdyB7XG4gICAgY29sb3I6ICNkN2YwZjk7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLWNvbG9yOiAjZDdmMGY5O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAuYnV0dG9uLmxpZ2h0LXNreS1ibHVlLmhvbGxvdzpob3ZlciwgLmJ1dHRvbi5saWdodC1za3ktYmx1ZS5ob2xsb3c6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q3ZjBmOTtcbiAgICAgIGNvbG9yOiAjMzMzOyB9XG4gIC5idXR0b24uY29sZC1wdXJwbGUuaG9sbG93IHtcbiAgICBjb2xvcjogIzk0ODhiZjtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItY29sb3I6ICM5NDg4YmY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgIC5idXR0b24uY29sZC1wdXJwbGUuaG9sbG93OmhvdmVyLCAuYnV0dG9uLmNvbGQtcHVycGxlLmhvbGxvdzpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTQ4OGJmO1xuICAgICAgY29sb3I6ICMzMzM7IH1cbiAgLmJ1dHRvbi5tZWRpdW0tcHVycGxlLmhvbGxvdyB7XG4gICAgY29sb3I6ICM3ZTY2YWQ7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLWNvbG9yOiAjN2U2NmFkO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAuYnV0dG9uLm1lZGl1bS1wdXJwbGUuaG9sbG93OmhvdmVyLCAuYnV0dG9uLm1lZGl1bS1wdXJwbGUuaG9sbG93OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTY2YWQ7XG4gICAgICBjb2xvcjogIzMzMzsgfVxuICAuYnV0dG9uLnZpdmlkLXZpb2xldC5ob2xsb3cge1xuICAgIGNvbG9yOiAjNzgyNzg4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1jb2xvcjogIzc4Mjc4ODtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gICAgLmJ1dHRvbi52aXZpZC12aW9sZXQuaG9sbG93OmhvdmVyLCAuYnV0dG9uLnZpdmlkLXZpb2xldC5ob2xsb3c6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc4Mjc4ODtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5idXR0b24uZGFyay1wdXJwbGUuaG9sbG93IHtcbiAgICBjb2xvcjogIzMxMzQ4YztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItY29sb3I6ICMzMTM0OGM7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgIC5idXR0b24uZGFyay1wdXJwbGUuaG9sbG93OmhvdmVyLCAuYnV0dG9uLmRhcmstcHVycGxlLmhvbGxvdzpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzEzNDhjO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgLmJ1dHRvbi5zbWFsdC5ob2xsb3cge1xuICAgIGNvbG9yOiAjMDAzM2EwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1jb2xvcjogIzAwMzNhMDtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gICAgLmJ1dHRvbi5zbWFsdC5ob2xsb3c6aG92ZXIsIC5idXR0b24uc21hbHQuaG9sbG93OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDMzYTA7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAuYnV0dG9uLnN1bW1lci1za3ktYmx1ZS5ob2xsb3cge1xuICAgIGNvbG9yOiAjM2I4ZWRlO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1jb2xvcjogIzNiOGVkZTtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gICAgLmJ1dHRvbi5zdW1tZXItc2t5LWJsdWUuaG9sbG93OmhvdmVyLCAuYnV0dG9uLnN1bW1lci1za3ktYmx1ZS5ob2xsb3c6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNiOGVkZTtcbiAgICAgIGNvbG9yOiAjMzMzOyB9XG4gIC5idXR0b24uaW5mby5ob2xsb3cge1xuICAgIGNvbG9yOiAjYTBkM2U4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1jb2xvcjogI2EwZDNlODtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gICAgLmJ1dHRvbi5pbmZvLmhvbGxvdzpob3ZlciwgLmJ1dHRvbi5pbmZvLmhvbGxvdzpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTBkM2U4O1xuICAgICAgY29sb3I6ICMzMzM7IH1cbiAgLmJ1dHRvbi5zdWNjZXNzLmhvbGxvdyB7XG4gICAgY29sb3I6ICM0M0FDNkE7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLWNvbG9yOiAjNDNBQzZBO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAuYnV0dG9uLnN1Y2Nlc3MuaG9sbG93OmhvdmVyLCAuYnV0dG9uLnN1Y2Nlc3MuaG9sbG93OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0M0FDNkE7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAuYnV0dG9uLndhcm5pbmcuaG9sbG93IHtcbiAgICBjb2xvcjogI2YwOGEyNDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItY29sb3I6ICNmMDhhMjQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgIC5idXR0b24ud2FybmluZy5ob2xsb3c6aG92ZXIsIC5idXR0b24ud2FybmluZy5ob2xsb3c6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwOGEyNDtcbiAgICAgIGNvbG9yOiAjMzMzOyB9XG4gIC5idXR0b24uYWxlcnQuaG9sbG93IHtcbiAgICBjb2xvcjogI2YwNDEyNDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItY29sb3I6ICNmMDQxMjQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgIC5idXR0b24uYWxlcnQuaG9sbG93OmhvdmVyLCAuYnV0dG9uLmFsZXJ0LmhvbGxvdzpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjA0MTI0O1xuICAgICAgY29sb3I6ICMzMzM7IH1cbiAgLmJ1dHRvbi53aGl0ZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIHBhZGRpbmc6IDAuODVlbSAxZW07XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzgyNzg4O1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuYnV0dG9uLndoaXRlIHtcbiAgICAgIG91dGxpbmU6IDA7IH1cbiAgICAuYnV0dG9uLndoaXRlOmhvdmVyLCAuYnV0dG9uLndoaXRlOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjIxNzQ7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLndoaXRlLmhvbGxvdyB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAuYnV0dG9uLndoaXRlLmhvbGxvdzpob3ZlciwgLmJ1dHRvbi53aGl0ZS5ob2xsb3c6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIGNvbG9yOiAjMzMzOyB9XG4gIC5idXR0b24uc3VtbWVyLXNreS1ibHVlIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2I4ZWRlOyB9XG4gICAgLmJ1dHRvbi5zdW1tZXItc2t5LWJsdWU6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogIzY3YTdlNTsgfVxuICAuYnV0dG9uLmxpZ2h0LWdyYXkge1xuICAgIGJhY2tncm91bmQ6ICNlNmU2ZTY7IH1cbiAgICAuYnV0dG9uLmxpZ2h0LWdyYXk6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogd2hpdGU7IH1cbiAgLmJ1dHRvbi5hcmNoaXZlLXByZXNzLXJlbGVhc2Uge1xuICAgIGJhY2tncm91bmQ6ICM1OTU5NTk7IH1cbiAgICAuYnV0dG9uLmFyY2hpdmUtcHJlc3MtcmVsZWFzZTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjNzM3MzczOyB9XG4gIC5idXR0b24uYnV0dG9uLWljb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiAjMDAzM2EwO1xuICAgIHBhZGRpbmc6IDAuNHJlbSAwLjc1cmVtIDAuNHJlbSAyLjVyZW07XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMTAwcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTAwcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjFlbTsgfVxuICAgIC5idXR0b24uYnV0dG9uLWljb246aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogIzAwNDNkMzsgfVxuICAgICAgLmJ1dHRvbi5idXR0b24taWNvbjpob3ZlciAubWFpbi1pY29uIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB9XG4gICAgLmJ1dHRvbi5idXR0b24taWNvbiAubWFpbi1pY29uIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbGVmdDogMC4xNXJlbTtcbiAgICAgIHRvcDogMC4xNzVyZW07XG4gICAgICBmb250LXNpemU6IDEuNGVtO1xuICAgICAgY29sb3I6ICM3ZTY2YWQ7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMzAwbXM7IH1cbiAgICAgIC5idXR0b24uYnV0dG9uLWljb24gLm1haW4taWNvbiAuYmFja2dyb3VuZCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgdG9wOiAycHg7XG4gICAgICAgIHJpZ2h0OiAzcHg7XG4gICAgICAgIGJvdHRvbTogMnB4O1xuICAgICAgICBsZWZ0OiAycHg7IH1cbiAgICAgIC5idXR0b24uYnV0dG9uLWljb24gLm1haW4taWNvbiBbY2xhc3MqPVwiaWNvblwiXSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuYnV0dG9uLmJ1dHRvbi1pY29uLmJhY2stdG8tYXJjaGl2ZSB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDcxNDNyZW07XG4gICAgICBwYWRkaW5nOiAxcmVtIDAuNzVyZW0gMXJlbSAzLjVyZW07IH1cbiAgICAgIC5idXR0b24uYnV0dG9uLWljb24uYmFjay10by1hcmNoaXZlIC5tYWluLWljb24ge1xuICAgICAgICBsZWZ0OiAtLjNyZW07XG4gICAgICAgIHRvcDogLS4zcmVtOyB9XG4gICAgICAgIC5idXR0b24uYnV0dG9uLWljb24uYmFjay10by1hcmNoaXZlIC5tYWluLWljb24gLmZhLWNpcmNsZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAyLjVyZW07IH1cbiAgICAgICAgLmJ1dHRvbi5idXR0b24taWNvbi5iYWNrLXRvLWFyY2hpdmUgLm1haW4taWNvbiAuZmEtY2FyZXQtbGVmdCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IC0uMTI1cmVtO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS45cmVtOyB9XG4gIC5idXR0b24udGlueSB7XG4gICAgcGFkZGluZzogMC43MTQyOXJlbSAxLjQyODU3cmVtOyB9XG4gIC5idXR0b24uc21hbGwge1xuICAgIHBhZGRpbmc6IDFyZW0gMnJlbTsgfVxuICAuYnV0dG9uLmRlZmF1bHQge1xuICAgIHBhZGRpbmc6IDEuMTQyODZyZW0gMi4yODU3MXJlbTsgfVxuICAuYnV0dG9uLmxhcmdlIHtcbiAgICBwYWRkaW5nOiAxLjI4NTcxcmVtIDIuNTcxNDNyZW07IH1cblxuLypcbkFsZXJ0IHN0eWxpbmcuXG5cbkBzaW5jZSAwLjEuMFxuKi9cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIGJvZHkuaG9tZSAuZHpzLWFsZXJ0Lmluc2V0LWJhbm5lciAuZHpzLWFsZXJ0LWNvbnRlbnQge1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIGJvZHkuaG9tZSAuZHpzLWFsZXJ0cy1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtd2lkdGg6IDc4LjU3MTQzcmVtO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAgIGJvZHkuaG9tZSAuZHpzLWFsZXJ0cy1jb250YWluZXI6OmJlZm9yZSwgYm9keS5ob21lIC5kenMtYWxlcnRzLWNvbnRhaW5lcjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjb250ZW50OiAnICc7XG4gICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgb3JkZXI6IDE7IH1cbiAgICBib2R5LmhvbWUgLmR6cy1hbGVydHMtY29udGFpbmVyOjphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIGJvZHkuaG9tZSAuZHpzLWFsZXJ0cy1jb250YWluZXIgLmR6cy1hbGVydC5pbnNldC1iYW5uZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgei1pbmRleDogOTtcbiAgICAgIGxlZnQ6IDI1JTtcbiAgICAgIG1heC13aWR0aDogNzUlOyB9XG4gICAgICBib2R5LmhvbWUgLmR6cy1hbGVydHMtY29udGFpbmVyIC5kenMtYWxlcnQuaW5zZXQtYmFubmVyIC5kenMtYWxlcnQtY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDAuMDhyZW0gMCAwLjA4cmVtIDEyLjUlOyB9IH1cblxuLmR6cy1hbGVydCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDc4LjU3MTQzcmVtO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgdG9wOiAtMjBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuZHpzLWFsZXJ0IHtcbiAgICAgIHBhZGRpbmc6IDAuM2VtIDAgMS44ZW0gMDsgfSB9XG4gIC5kenMtYWxlcnQuaW5zZXQtYmFubmVyLmRlZmF1bHQsIC5kenMtYWxlcnQucG9wLXVwLmRlZmF1bHQge1xuICAgIGJhY2tncm91bmQ6ICMyOTNiOGQ7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BnbzhjM1puSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZDJsa2RHZzlJakV3TUNVaUlHaGxhV2RvZEQwaU1UQXdKU0lnZG1sbGQwSnZlRDBpTUNBd0lERWdNU0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWJtOXVaU0krQ2lBZ1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTSm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJZ2VERTlJakFsSWlCNU1UMGlNQ1VpSUhneVBTSXhNREFsSWlCNU1qMGlNQ1VpUGdvZ0lDQWdQSE4wYjNBZ2IyWm1jMlYwUFNJd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJKbU1XVXlaQ0lnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlObU5UazBOemNpSUhOMGIzQXRiM0JoWTJsMGVUMGlNU0l2UGdvZ0lEd3ZiR2x1WldGeVIzSmhaR2xsYm5RK0NpQWdQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRWlJR2hsYVdkb2REMGlNU0lnWm1sc2JEMGlkWEpzS0NObmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0tTSWdMejRLUEM5emRtYyspO1xuICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICMyOTNiOGQgMCUsICMwMGFlZjEgMTAwJSk7XG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGNvbG9yLXN0b3AoMCUsICMyOTNiOGQpLCBjb2xvci1zdG9wKDEwMCUsICMwMGFlZjEpKTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjMjkzYjhkIDAlLCAjMDBhZWYxIDEwMCUpO1xuICAgIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCAjMjkzYjhkIDAlLCAjMDBhZWYxIDEwMCUpO1xuICAgIGJhY2tncm91bmQ6IC1tcy1saW5lYXItZ3JhZGllbnQobGVmdCwgIzI5M2I4ZCAwJSwgIzAwYWVmMSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMyOTNiOGQgMCUsICMwMGFlZjEgMTAwJSk7XG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNiZjFlMmQnLCBlbmRDb2xvcnN0cj0nI2Y1OTQ3NycsR3JhZGllbnRUeXBlPTEgKTsgfVxuICAgIC5kenMtYWxlcnQuaW5zZXQtYmFubmVyLmRlZmF1bHQgLmR6cy1hbGVydC1idXR0b24sIC5kenMtYWxlcnQucG9wLXVwLmRlZmF1bHQgLmR6cy1hbGVydC1idXR0b24ge1xuICAgICAgYmFja2dyb3VuZDogIzM0NGNiNTsgfVxuICAuZHpzLWFsZXJ0Lmluc2V0LWJhbm5lci5yZWQsIC5kenMtYWxlcnQucG9wLXVwLnJlZCB7XG4gICAgYmFja2dyb3VuZDogI2JmMWUyZDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUEvUGdvOGMzWm5JSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdkMmxrZEdnOUlqRXdNQ1VpSUdobGFXZG9kRDBpTVRBd0pTSWdkbWxsZDBKdmVEMGlNQ0F3SURFZ01TSWdjSEpsYzJWeWRtVkJjM0JsWTNSU1lYUnBiejBpYm05dVpTSStDaUFnUEd4cGJtVmhja2R5WVdScFpXNTBJR2xrUFNKbmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0lpQm5jbUZrYVdWdWRGVnVhWFJ6UFNKMWMyVnlVM0JoWTJWUGJsVnpaU0lnZURFOUlqQWxJaUI1TVQwaU1DVWlJSGd5UFNJeE1EQWxJaUI1TWowaU1DVWlQZ29nSUNBZ1BITjBiM0FnYjJabWMyVjBQU0l3SlNJZ2MzUnZjQzFqYjJ4dmNqMGlJMkptTVdVeVpDSWdjM1J2Y0MxdmNHRmphWFI1UFNJeElpOCtDaUFnSUNBOGMzUnZjQ0J2Wm1aelpYUTlJakV3TUNVaUlITjBiM0F0WTI5c2IzSTlJaU5tTlRrME56Y2lJSE4wYjNBdGIzQmhZMmwwZVQwaU1TSXZQZ29nSUR3dmJHbHVaV0Z5UjNKaFpHbGxiblErQ2lBZ1BISmxZM1FnZUQwaU1DSWdlVDBpTUNJZ2QybGtkR2c5SWpFaUlHaGxhV2RvZEQwaU1TSWdabWxzYkQwaWRYSnNLQ05uY21Ga0xYVmpaMmN0WjJWdVpYSmhkR1ZrS1NJZ0x6NEtQQzl6ZG1jKyk7XG4gICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgI2JmMWUyZCAwJSwgI2Y1OTQ3NyAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgY29sb3Itc3RvcCgwJSwgI2JmMWUyZCksIGNvbG9yLXN0b3AoMTAwJSwgI2Y1OTQ3NykpO1xuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICNiZjFlMmQgMCUsICNmNTk0NzcgMTAwJSk7XG4gICAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICNiZjFlMmQgMCUsICNmNTk0NzcgMTAwJSk7XG4gICAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LCAjYmYxZTJkIDAlLCAjZjU5NDc3IDEwMCUpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2JmMWUyZCAwJSwgI2Y1OTQ3NyAxMDAlKTtcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI2JmMWUyZCcsIGVuZENvbG9yc3RyPScjZjU5NDc3JyxHcmFkaWVudFR5cGU9MSApOyB9XG4gICAgLmR6cy1hbGVydC5pbnNldC1iYW5uZXIucmVkIC5kenMtYWxlcnQtYnV0dG9uLCAuZHpzLWFsZXJ0LnBvcC11cC5yZWQgLmR6cy1hbGVydC1idXR0b24ge1xuICAgICAgYmFja2dyb3VuZDogI2RmMzE0MTsgfVxuICAuZHpzLWFsZXJ0Lmluc2V0LWJhbm5lci5ncmVlbiwgLmR6cy1hbGVydC5wb3AtdXAuZ3JlZW4ge1xuICAgIGJhY2tncm91bmQ6ICMwMDVFNjA7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BnbzhjM1puSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZDJsa2RHZzlJakV3TUNVaUlHaGxhV2RvZEQwaU1UQXdKU0lnZG1sbGQwSnZlRDBpTUNBd0lERWdNU0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWJtOXVaU0krQ2lBZ1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTSm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJZ2VERTlJakFsSWlCNU1UMGlNQ1VpSUhneVBTSXhNREFsSWlCNU1qMGlNQ1VpUGdvZ0lDQWdQSE4wYjNBZ2IyWm1jMlYwUFNJd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJKbU1XVXlaQ0lnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlObU5UazBOemNpSUhOMGIzQXRiM0JoWTJsMGVUMGlNU0l2UGdvZ0lEd3ZiR2x1WldGeVIzSmhaR2xsYm5RK0NpQWdQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRWlJR2hsYVdkb2REMGlNU0lnWm1sc2JEMGlkWEpzS0NObmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0tTSWdMejRLUEM5emRtYyspO1xuICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICMwMDVFNjAgMCUsICMzRUI1NEQgMTAwJSk7XG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGNvbG9yLXN0b3AoMCUsICMwMDVFNjApLCBjb2xvci1zdG9wKDEwMCUsICMzRUI1NEQpKTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjMDA1RTYwIDAlLCAjM0VCNTREIDEwMCUpO1xuICAgIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCAjMDA1RTYwIDAlLCAjM0VCNTREIDEwMCUpO1xuICAgIGJhY2tncm91bmQ6IC1tcy1saW5lYXItZ3JhZGllbnQobGVmdCwgIzAwNUU2MCAwJSwgIzNFQjU0RCAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMwMDVFNjAgMCUsICMzRUI1NEQgMTAwJSk7XG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNiZjFlMmQnLCBlbmRDb2xvcnN0cj0nI2Y1OTQ3NycsR3JhZGllbnRUeXBlPTEgKTsgfVxuICAgIC5kenMtYWxlcnQuaW5zZXQtYmFubmVyLmdyZWVuIC5kenMtYWxlcnQtYnV0dG9uLCAuZHpzLWFsZXJ0LnBvcC11cC5ncmVlbiAuZHpzLWFsZXJ0LWJ1dHRvbiB7XG4gICAgICBiYWNrZ3JvdW5kOiAjMDA5MDkzOyB9XG4gIC5kenMtYWxlcnQuaW5zZXQtYmFubmVyIC5kenMtYWxlcnQtY29udGVudCwgLmR6cy1hbGVydC5wb3AtdXAgLmR6cy1hbGVydC1jb250ZW50IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuMDcxNDNyZW07XG4gICAgbGluZS1oZWlnaHQ6IDM1cHg7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmR6cy1hbGVydC5pbnNldC1iYW5uZXIgLmR6cy1hbGVydC1jb250ZW50LCAuZHpzLWFsZXJ0LnBvcC11cCAuZHpzLWFsZXJ0LWNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tbGVmdDogZ3JpZC1jYWxjKDQsIDEyKTsgfSB9XG4gIC5kenMtYWxlcnQuaW5zZXQtYmFubmVyIC5kenMtYWxlcnQtaWNvbiwgLmR6cy1hbGVydC5wb3AtdXAgLmR6cy1hbGVydC1pY29uIHtcbiAgICBmb250LXNpemU6IDEuM2VtO1xuICAgIG1hcmdpbi1yaWdodDogMC4zZW07XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAuZHpzLWFsZXJ0Lmluc2V0LWJhbm5lciAuZHpzLWFsZXJ0LWJ1dHRvbiwgLmR6cy1hbGVydC5wb3AtdXAgLmR6cy1hbGVydC1idXR0b24ge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAuZHpzLWFsZXJ0Lmluc2V0LWJhbm5lciAuZHpzLWFsZXJ0LWJ1dHRvbiwgLmR6cy1hbGVydC5wb3AtdXAgLmR6cy1hbGVydC1idXR0b24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7IH0gfVxuICAuZHpzLWFsZXJ0Lmluc2V0LWJhbm5lciAuZHpzLWFsZXJ0LWJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiAwLjNlbSAwLjVlbTtcbiAgICBiYWNrZ3JvdW5kOiAjNzgyNzg4OyB9XG4gICAgLmR6cy1hbGVydC5pbnNldC1iYW5uZXIgLmR6cy1hbGVydC1idXR0b246aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC44OyB9XG4gIC5kenMtYWxlcnQuaW5zZXQtYmFubmVyIC5jbG9zZS1idXR0b24ge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIHRvcDogYXV0bztcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5kenMtYWxlcnQucG9wLXVwIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGF1dG87IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgIC5kenMtYWxlcnQucG9wLXVwIGgxLCAuZHpzLWFsZXJ0LnBvcC11cCBoMiwgLmR6cy1hbGVydC5wb3AtdXAgaDMsIC5kenMtYWxlcnQucG9wLXVwIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgLmZhcS10aXRsZSwgYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LWZhcSAuZHpzLWFsZXJ0LnBvcC11cCAuZmFxLXRpdGxlLCAuZHpzLWFsZXJ0LnBvcC11cCBoNCwgLmR6cy1hbGVydC5wb3AtdXAgLnByZXNzLXJlbGVhc2Utc3ViaGVhZGluZywgLmR6cy1hbGVydC5wb3AtdXAgaDUsIC5kenMtYWxlcnQucG9wLXVwIGg2IHtcbiAgICAgICAgY29sb3I6ICNmZmY7IH0gfVxuICAgIC5kenMtYWxlcnQucG9wLXVwIC5kenMtYWxlcnQtY29udGVudCB7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgIC5kenMtYWxlcnQucG9wLXVwIC5kenMtYWxlcnQtY29udGVudCAucm93IHtcbiAgICAgICAgcGFkZGluZzogMTVweDsgfVxuICAgICAgLmR6cy1hbGVydC5wb3AtdXAgLmR6cy1hbGVydC1jb250ZW50IC5kenMtYWxlcnQtaWNvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuMzVlbTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAgIC5kenMtYWxlcnQucG9wLXVwIC5kenMtYWxlcnQtY29udGVudCAuZHpzLWFsZXJ0LWljb24uc2hvdy1mb3ItbWVkaXVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OyB9IH1cbiAgICAgIC5kenMtYWxlcnQucG9wLXVwIC5kenMtYWxlcnQtY29udGVudCAuZHpzLWFsZXJ0LWltYWdlLCAuZHpzLWFsZXJ0LnBvcC11cCAuZHpzLWFsZXJ0LWNvbnRlbnQgLnRleHQtY29udGVudCwgLmR6cy1hbGVydC5wb3AtdXAgLmR6cy1hbGVydC1jb250ZW50IC50ZXh0LWNvbnRlbnQgPiAqIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgICAuZHpzLWFsZXJ0LnBvcC11cCAuZHpzLWFsZXJ0LWNvbnRlbnQgLmR6cy1hbGVydC10ZXh0ID4gcDpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM4OXB4KSB7XG4gICAgICAgIC5kenMtYWxlcnQucG9wLXVwIC5kenMtYWxlcnQtY29udGVudCAuc21hbGwtaWNvbi1jb250YWluZXIge1xuICAgICAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAgIC5kenMtYWxlcnQucG9wLXVwIC5kenMtYWxlcnQtY29udGVudCAudGV4dC1jb250ZW50IHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgLmR6cy1hbGVydC5wb3AtdXAgLmR6cy1hbGVydC1idXR0b24uY2xvc2UtYnV0dG9uIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IGF1dG87IH0gfVxuICAgIC5kenMtYWxlcnQucG9wLXVwIC5kenMtYWxlcnQtYnV0dG9uLmNhbGwtdG8tYWN0aW9uIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgLmR6cy1hbGVydC5wb3AtdXAge1xuICAgICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgICAuZHpzLWFsZXJ0LnBvcC11cCAuZHpzLWFsZXJ0LWJ1dHRvbjpub3QoLmNhbGwtdG8tYWN0aW9uKSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQ6ICM3ODI3ODg7IH1cbiAgICAgIC5kenMtYWxlcnQucG9wLXVwIC5kenMtYWxlcnQtYnV0dG9uOm5vdCguY2FsbC10by1hY3Rpb24pOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMC44OyB9XG4gICAgLmR6cy1hbGVydC5wb3AtdXAgLmR6cy1hbGVydC1idXR0b24ge1xuICAgICAgcGFkZGluZzogMC4zZW0gMC41ZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgIC5kenMtYWxlcnQucG9wLXVwLmRlZmF1bHQgLmNhbGwtdG8tYWN0aW9uLCAuZHpzLWFsZXJ0LnBvcC11cC5yZWQgLmNhbGwtdG8tYWN0aW9uLCAuZHpzLWFsZXJ0LnBvcC11cC5ncmVlbiAuY2FsbC10by1hY3Rpb24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgIHBhZGRpbmc6IDAuODVlbSAxZW07XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xuICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgICAgIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuZHpzLWFsZXJ0LnBvcC11cC5kZWZhdWx0IC5jYWxsLXRvLWFjdGlvbiwgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5kenMtYWxlcnQucG9wLXVwLnJlZCAuY2FsbC10by1hY3Rpb24sIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuZHpzLWFsZXJ0LnBvcC11cC5ncmVlbiAuY2FsbC10by1hY3Rpb24ge1xuICAgICAgICAgIG91dGxpbmU6IDA7IH1cbiAgICAgICAgLmR6cy1hbGVydC5wb3AtdXAuZGVmYXVsdCAuY2FsbC10by1hY3Rpb246aG92ZXIsIC5kenMtYWxlcnQucG9wLXVwLmRlZmF1bHQgLmNhbGwtdG8tYWN0aW9uOmZvY3VzLCAuZHpzLWFsZXJ0LnBvcC11cC5yZWQgLmNhbGwtdG8tYWN0aW9uOmhvdmVyLCAuZHpzLWFsZXJ0LnBvcC11cC5yZWQgLmNhbGwtdG8tYWN0aW9uOmZvY3VzLCAuZHpzLWFsZXJ0LnBvcC11cC5ncmVlbiAuY2FsbC10by1hY3Rpb246aG92ZXIsIC5kenMtYWxlcnQucG9wLXVwLmdyZWVuIC5jYWxsLXRvLWFjdGlvbjpmb2N1cyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY2MjE3NDtcbiAgICAgICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgICAgICAuZHpzLWFsZXJ0LnBvcC11cC5kZWZhdWx0IC5jYWxsLXRvLWFjdGlvbjpob3ZlciwgLmR6cy1hbGVydC5wb3AtdXAuZGVmYXVsdCAuY2FsbC10by1hY3Rpb246Zm9jdXMsIC5kenMtYWxlcnQucG9wLXVwLnJlZCAuY2FsbC10by1hY3Rpb246aG92ZXIsIC5kenMtYWxlcnQucG9wLXVwLnJlZCAuY2FsbC10by1hY3Rpb246Zm9jdXMsIC5kenMtYWxlcnQucG9wLXVwLmdyZWVuIC5jYWxsLXRvLWFjdGlvbjpob3ZlciwgLmR6cy1hbGVydC5wb3AtdXAuZ3JlZW4gLmNhbGwtdG8tYWN0aW9uOmZvY3VzIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICAgIGNvbG9yOiAjMzMzOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmR6cy1hbGVydC5wb3AtdXAgLmNhbGwtdG8tYWN0aW9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICBwYWRkaW5nOiAwLjg1ZW0gMWVtO1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcbiAgICAgICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM0NGNiNTtcbiAgICAgICAgY29sb3I6ICNmZWZlZmU7XG4gICAgICAgIGJvdHRvbTogLTAuMjAycmVtOyB9XG4gICAgICAgIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuZHpzLWFsZXJ0LnBvcC11cCAuY2FsbC10by1hY3Rpb24ge1xuICAgICAgICAgIG91dGxpbmU6IDA7IH1cbiAgICAgICAgLmR6cy1hbGVydC5wb3AtdXAgLmNhbGwtdG8tYWN0aW9uOmhvdmVyLCAuZHpzLWFsZXJ0LnBvcC11cCAuY2FsbC10by1hY3Rpb246Zm9jdXMge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjIxNzQ7XG4gICAgICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAgICAgLmR6cy1hbGVydC5wb3AtdXAgLmNhbGwtdG8tYWN0aW9uLnNob3ctZm9yLW1lZGl1bS11cCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuZHpzLWFsZXJ0LnBvcC11cCAuZHpzLWFsZXJ0LWNsb3NlIHtcbiAgICAgICAgcmlnaHQ6IC00LjNyZW0gIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmR6cy1hbGVydC5wb3AtdXAge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KSAhaW1wb3J0YW50O1xuICAgICAgei1pbmRleDogNTAwOyB9XG4gICAgICAuZHpzLWFsZXJ0LnBvcC11cCAuZHpzLWFsZXJ0LWNvbnRhaW5lciB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgLmR6cy1hbGVydC5wb3AtdXAgLmR6cy1hbGVydC1jb250ZW50IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgY29sb3I6ICMwMDMzYTA7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHdpZHRoOiA1MDBweDsgfVxuICAgICAgICAuZHpzLWFsZXJ0LnBvcC11cCAuZHpzLWFsZXJ0LWNvbnRlbnQgLmR6cy1hbGVydC10ZXh0IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAuZHpzLWFsZXJ0LnBvcC11cCAuZHpzLWFsZXJ0LWNvbnRlbnQgLmR6cy1hbGVydC1pY29uIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAuZHpzLWFsZXJ0LnBvcC11cCAuZHpzLWFsZXJ0LWNsb3NlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwOyB9XG4gICAgICAgIC5kenMtYWxlcnQucG9wLXVwIC5kenMtYWxlcnQtY2xvc2U6aG92ZXIge1xuICAgICAgICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4uYWNjb3JkaW9uLW5hdmlnYXRpb24gLmR6cy1hbGVydCB7XG4gIHRvcDogYXV0bzsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBib2R5LnNpbmdsZS1hbmltYWwgLmR6cy1hbGVydC5pbnNldC1iYW5uZXIgLmR6cy1hbGVydC1jb250ZW50IHtcbiAgICBtYXJnaW4tbGVmdDogZ3JpZC1jYWxjKDMsIDEyKTsgfSB9XG5cbi5zaXRlLXBhZ2UtY29udGVudCAuZHpzLWFsZXJ0Lmluc2V0LWJhbm5lciAuZHpzLWFsZXJ0LWNvbnRlbnQge1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG5ib2R5Om5vdCguaG9tZSkgLmR6cy1hbGVydC5wb3AtdXAge1xuICB0b3A6IDA7IH1cblxuLypcbkdhbGxlcnkuXG5cbkBzaW5jZSAxLjIxLjNcbiovXG4uZ2FsbGVyeSB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7XG4gIHBhZGRpbmc6IDAuNWVtOyB9XG4gIC5nYWxsZXJ5IC5nYWxsZXJ5LWl0ZW1zIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cbiAgICAuZ2FsbGVyeSAuZ2FsbGVyeS1pdGVtcyAuZ2FsbGVyeS1pY29uIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgLmdhbGxlcnkgLmdhbGxlcnktaXRlbXMgLmdhbGxlcnktaWNvbiBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuZ2FsbGVyeSAuZ2FsbGVyeS1pdGVtcyAuZ2FsbGVyeS1jYXB0aW9uIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuZ2FsbGVyeSAuZ2FsbGVyeS10aHVtYm5haWxzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuZ2FsbGVyeSAuZ2FsbGVyeS10aHVtYm5haWxzIC5zbGljay1saXN0IHtcbiAgICAgIHBhZGRpbmc6IDAgNDBweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAuZ2FsbGVyeSAuZ2FsbGVyeS10aHVtYm5haWxzIC5zbGljay1wcmV2IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0M4QzhDODtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgIGxlZnQ6IDA7IH1cbiAgICAgIC5nYWxsZXJ5IC5nYWxsZXJ5LXRodW1ibmFpbHMgLnNsaWNrLXByZXY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWZhZmFmOyB9XG4gICAgICAuZ2FsbGVyeSAuZ2FsbGVyeS10aHVtYm5haWxzIC5zbGljay1wcmV2IC5mYSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAtMjBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiAwOyB9XG4gICAgLmdhbGxlcnkgLmdhbGxlcnktdGh1bWJuYWlscyAuc2xpY2stbmV4dCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICB3aWR0aDogNDBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNDOEM4Qzg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB6LWluZGV4OiAxMDA7XG4gICAgICByaWdodDogMDsgfVxuICAgICAgLmdhbGxlcnkgLmdhbGxlcnktdGh1bWJuYWlscyAuc2xpY2stbmV4dDpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhZmFmYWY7IH1cbiAgICAgIC5nYWxsZXJ5IC5nYWxsZXJ5LXRodW1ibmFpbHMgLnNsaWNrLW5leHQgLmZhIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC1zaXplOiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC0yMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDA7IH1cbiAgICAuZ2FsbGVyeSAuZ2FsbGVyeS10aHVtYm5haWxzIC5nYWxsZXJ5LXRodW1ibmFpbCB7XG4gICAgICBwYWRkaW5nOiAwIDVweDsgfVxuICAgICAgLmdhbGxlcnkgLmdhbGxlcnktdGh1bWJuYWlscyAuZ2FsbGVyeS10aHVtYm5haWwgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogYXV0bzsgfVxuXG4jZ2FsbGVyeS1saWdodGJveCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgZGlzcGxheTogdGFibGU7XG4gIG9wYWNpdHk6IDA7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjkpO1xuICB6LWluZGV4OiAxMDAxOyB9XG4gICNnYWxsZXJ5LWxpZ2h0Ym94IC5jb250YWluZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAjZ2FsbGVyeS1saWdodGJveCAuY29udGFpbmVyIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IDkwJTtcbiAgICAgIG1heC1oZWlnaHQ6IDEwMCU7IH1cbiAgI2dhbGxlcnktbGlnaHRib3ggLmNsb3NlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyJTtcbiAgICByaWdodDogMiU7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogI2ZmZjsgfVxuXG5ib2R5LmFkbWluLWJhciAjZ2FsbGVyeS1saWdodGJveCAuY2xvc2Uge1xuICBtYXJnaW4tdG9wOiAzMnB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc4MnB4KSB7XG4gICAgYm9keS5hZG1pbi1iYXIgI2dhbGxlcnktbGlnaHRib3ggLmNsb3NlIHtcbiAgICAgIG1hcmdpbi10b3A6IDQ2cHggIWltcG9ydGFudDsgfSB9XG5cbiNmbGFncyB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuI2dvb2dsZS10cmFuc2xhdGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIG9wYWNpdHk6IDAuNztcbiAgY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNDBweDtcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gIGJhY2tncm91bmQ6ICM3ZTY2YWQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcztcbiAgei1pbmRleDogMTAwOyB9XG4gICNnb29nbGUtdHJhbnNsYXRlICNnb29nbGVfbGFuZ3VhZ2VfdHJhbnNsYXRvciwgI2dvb2dsZS10cmFuc2xhdGUgI2xhbmd1YWdlIHtcbiAgICB3aWR0aDogMTEuMjVlbTsgfVxuXG5ALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCkge1xuICAjZ29vZ2xlLXRyYW5zbGF0ZSAjZ29vZ2xlX2xhbmd1YWdlX3RyYW5zbGF0b3IsICNnb29nbGUtdHJhbnNsYXRlICNsYW5ndWFnZSB7XG4gICAgd2lkdGg6IDE0ZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAjZ29vZ2xlLXRyYW5zbGF0ZSwgI2dvb2dsZS10cmFuc2xhdGUgI2dvb2dsZV9sYW5ndWFnZV90cmFuc2xhdG9yIHtcbiAgICAgIGhlaWdodDogODBweDtcbiAgICAgIHJpZ2h0OiAxZW07XG4gICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICB3aWR0aDogNDBweDtcbiAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAjZ29vZ2xlLXRyYW5zbGF0ZTpob3ZlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEwMG1zOyB9XG4gICNnb29nbGUtdHJhbnNsYXRlIC5nb29nbGUtdHJhbnNsYXRlLWljb24tbGFuZ3VhZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogMTA1OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAjZ29vZ2xlLXRyYW5zbGF0ZSAuZ29vZ2xlLXRyYW5zbGF0ZS1pY29uLWxhbmd1YWdlIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjVlbTsgfSB9XG4gICNnb29nbGUtdHJhbnNsYXRlIC5nb29nbGUtdHJhbnNsYXRlLWljb24tYXJyb3cge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDEwNTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgI2dvb2dsZS10cmFuc2xhdGUgLmdvb2dsZS10cmFuc2xhdGUtaWNvbi1hcnJvdyB7XG4gICAgICAgIHRvcDogNDBweDtcbiAgICAgICAgZm9udC1zaXplOiAxLjVlbTsgfSB9XG4gICNnb29nbGUtdHJhbnNsYXRlIHNlbGVjdC5nb29nLXRlLWNvbWJvIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQ6ICM3ZTY2YWQ7XG4gICAgaGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcGFkZGluZzogMCA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDogMTAwO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICB0ZXh0LWluZGVudDogMC4wMXB4O1xuICAgIHRleHQtb3ZlcmZsb3c6ICcnO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtby1hcHBlYXJhbmNlOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgICNnb29nbGUtdHJhbnNsYXRlIHNlbGVjdC5nb29nLXRlLWNvbWJvIHtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogODBweCAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LWluZGVudDogNDBweDtcbiAgICAgICAgcGFkZGluZzogMDsgfSB9XG4gICNnb29nbGUtdHJhbnNsYXRlIC5nb29nLXRlLWdhZGdldCB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgICNnb29nbGUtdHJhbnNsYXRlIC5nb29nLXRlLWdhZGdldCB7XG4gICAgICAgIGhlaWdodDogODBweDsgfSB9XG4gICAgI2dvb2dsZS10cmFuc2xhdGUgLmdvb2ctdGUtZ2FkZ2V0IHNwYW4ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuXG4vKlxuR3Jhdml0eSBGb3JtIG92ZXJyaWRlcywgZW5oYW5jZW1lbnRzLlxuXG5Ac2luY2UgMC4xLjBcbiovXG4jc2l0ZS1jb250ZW50IC5nZm9ybV93cmFwcGVyIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLCAjc2l0ZS1jb250ZW50IC5nZm9ybV93cmFwcGVyIHRleHRhcmVhLCAjc2l0ZS1jb250ZW50IC5nZm9ybV93cmFwcGVyIHNlbGVjdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkN2YwZjk7IH1cblxuI3NpdGUtY29udGVudCAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZmllbGRzIHtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbiNzaXRlLWNvbnRlbnQgLmdmb3JtX3dyYXBwZXIgdWwuZ2Zvcm1fZmllbGRzIGxpLmdmaWVsZCBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBtYXJnaW4tbGVmdDogMXB4ICFpbXBvcnRhbnQ7IH1cblxuI3NpdGUtY29udGVudCAuZ2Zvcm1fd3JhcHBlciAuZmllbGRfc3VibGFiZWxfYmVsb3cgaW5wdXQge1xuICBtYXJnaW4tYm90dG9tOiAwLjJlbTsgfVxuXG4vKlxuTGF6eSBsb2FkLlxuXG5Ac2luY2UgMS4yNi4yXG4qL1xuaW1nW2RhdGEtaW1nLXNyY10ge1xuICBvcGFjaXR5OiAwOyB9XG5cbi8qXG5QYWdpbmF0aW9uLlxuXG5Ac2luY2UgMC4xLjBcbiovXG4uZHpzLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kOiAjOTRjNmVlO1xuICBjb2xvcjogIzAwMzNhMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgcGFkZGluZzogMC41ZW07IH1cbiAgLmR6cy1wYWdpbmF0aW9uIC5uZXh0OmJlZm9yZSB7XG4gICAgY29udGVudDogJ3wgJzsgfVxuICAuZHpzLXBhZ2luYXRpb24gLnByZXY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgfCc7IH1cbiAgLmR6cy1wYWdpbmF0aW9uIGEsIC5kenMtcGFnaW5hdGlvbiBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6IGluaGVyaXQ7IH1cbiAgLmR6cy1wYWdpbmF0aW9uIGEge1xuICAgIHBhZGRpbmc6IDAgMC4yZW07IH1cbiAgICAuZHpzLXBhZ2luYXRpb24gYTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjNzgyNzg4O1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgLmR6cy1wYWdpbmF0aW9uIC5wYWdlLW51bWJlcnMuY3VycmVudCB7XG4gICAgYmFja2dyb3VuZDogIzAwMzNhMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiAwIDAuMmVtOyB9XG4gIC5kenMtcGFnaW5hdGlvbiBmb3JtIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5kenMtcGFnaW5hdGlvbiBzZWxlY3Qge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAuZHpzLXBhZ2luYXRpb24gLnJpZ2h0LWFycm93OmJlZm9yZSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMDAzM2EwOyB9XG5cbi8qXG5Qb3N0IG5hdmlnYXRpb24gbGlua3MuXG5cbkBzaW5jZSAxLjI2LjJcbiovXG4ucG9zdC1uYXZpZ2F0aW9uLWxpbmtzIHtcbiAgZm9udC1zaXplOiAxLjVlbTsgfVxuXG4vKlxuQWNjb3JkaW9ucyBvdmVycmlkZXMuXG5cbkBzaW5jZSAwLjEuMFxuKi9cbi5wcmljaW5nLXRhYmxlIHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGNvbG9yOiAjMDAzM2EwOyB9XG4gIC5wcmljaW5nLXRhYmxlIHRib2R5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7IH1cbiAgLnByaWNpbmctdGFibGUgdHIge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgLnByaWNpbmctdGFibGUgdGQge1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6IGluaGVyaXQ7IH1cbiAgLnByaWNpbmctdGFibGUgLnByaWNpbmctdGFibGUtcHJpY2Uge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2lkdGg6IDFweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4OyB9XG4gIC5wcmljaW5nLXRhYmxlIC5wcmljaW5nLXRhYmxlLXRleHQge1xuICAgIGNvbG9yOiAjNzgyNzg4OyB9XG5cbi8qXG5DdXN0b20gUUlCIHN0eWxpbmcuXG5cbkBzaW5jZSAwLjEuMFxuKi9cbi5kenMtcWliLWNvbnRhaW5lciA+IC5jb2x1bW5zIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbiNkenMtcWliIC5kem9vLXFpYi10b2RheXMtaG91cnMge1xuICBiYWNrZ3JvdW5kOiAjMDAzM2EwOyB9XG4gICNkenMtcWliIC5kem9vLXFpYi10b2RheXMtaG91cnMgLmR6b28tcWliLXRpbWVzIHtcbiAgICBmb250LXNpemU6IDEuNWVtOyB9XG5cbiNkenMtcWliIC5kem9vLXFpYi10aWNrZXRzIHtcbiAgYmFja2dyb3VuZDogIzdFNzdCNjtcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjN0U3N0I2IDAlLCAjNUQ1QkE2IDEwMCUpO1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAlLCAjN0U3N0I2KSwgY29sb3Itc3RvcCgxMDAlLCAjNUQ1QkE2KSk7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgIzdFNzdCNiAwJSwgIzVENUJBNiAxMDAlKTtcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgIzdFNzdCNiAwJSwgIzVENUJBNiAxMDAlKTtcbiAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICM3RTc3QjYgMCUsICM1RDVCQTYgMTAwJSk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM3RTc3QjYgMCUsICM1RDVCQTYgMTAwJSk7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjMjU4ZGM4JywgZW5kQ29sb3JzdHI9JyMyMjM5YjcnLEdyYWRpZW50VHlwZT0wICk7IH1cbiAgI2R6cy1xaWIgLmR6b28tcWliLXRpY2tldHMgLnNlY3Rpb24taWNvbiB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgI2R6cy1xaWIgLmR6b28tcWliLXRpY2tldHMgLnRpY2tldHMge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTsgfVxuICAgICNkenMtcWliIC5kem9vLXFpYi10aWNrZXRzIC50aWNrZXRzIHRyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgICAjZHpzLXFpYiAuZHpvby1xaWItdGlja2V0cyAudGlja2V0cyB0ciB0ZCB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0OyB9XG4gICAgI2R6cy1xaWIgLmR6b28tcWliLXRpY2tldHMgLnRpY2tldHMgLnByaWNlIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbiNkenMtcWliIC5xaWItc2VjdGlvbi5kem9vLXFpYi10b2RheS1hdC10aGUtem9vIHtcbiAgYmFja2dyb3VuZDogIzkxQUZDRTtcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjOTFBRkNFIDAlLCAjNzVBMENEIDEwMCUpO1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAlLCAjOTFBRkNFKSwgY29sb3Itc3RvcCgxMDAlLCAjNzVBMENEKSk7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgIzkxQUZDRSAwJSwgIzc1QTBDRCAxMDAlKTtcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgIzkxQUZDRSAwJSwgIzc1QTBDRCAxMDAlKTtcbiAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICM5MUFGQ0UgMCUsICM3NUEwQ0QgMTAwJSk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM5MUFGQ0UgMCUsICM3NUEwQ0QgMTAwJSk7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjMjU4ZGM4JywgZW5kQ29sb3JzdHI9JyMyMjM5YjcnLEdyYWRpZW50VHlwZT0wICk7XG4gIGNvbG9yOiAjMDAzM2EwOyB9XG4gICNkenMtcWliIC5xaWItc2VjdGlvbi5kem9vLXFpYi10b2RheS1hdC10aGUtem9vIGgzLnFpYi1zZWN0aW9uLXRpdGxlLCAjZHpzLXFpYiAucWliLXNlY3Rpb24uZHpvby1xaWItdG9kYXktYXQtdGhlLXpvbyBib2R5LnNpbmdsZS1ldmVudCAuZXZlbnQtZmFxIC5xaWItc2VjdGlvbi10aXRsZS5mYXEtdGl0bGUsIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgI2R6cy1xaWIgLnFpYi1zZWN0aW9uLmR6b28tcWliLXRvZGF5LWF0LXRoZS16b28gLnFpYi1zZWN0aW9uLXRpdGxlLmZhcS10aXRsZSB7XG4gICAgY29sb3I6IGluaGVyaXQ7IH1cblxuI2R6cy1xaWIgLnFpYi1zZWN0aW9uLmR6b28tcWliLXVwY29taW5nLWV2ZW50cyB7XG4gIGJhY2tncm91bmQ6ICM3NUEwQ0Q7XG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgIzc1QTBDRCAwJSwgIzU3OTBDOCAxMDAlKTtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwJSwgIzc1QTBDRCksIGNvbG9yLXN0b3AoMTAwJSwgIzU3OTBDOCkpO1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICM3NUEwQ0QgMCUsICM1NzkwQzggMTAwJSk7XG4gIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICM3NUEwQ0QgMCUsICM1NzkwQzggMTAwJSk7XG4gIGJhY2tncm91bmQ6IC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjNzVBMENEIDAlLCAjNTc5MEM4IDEwMCUpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjNzVBMENEIDAlLCAjNTc5MEM4IDEwMCUpO1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nIzI1OGRjOCcsIGVuZENvbG9yc3RyPScjMjIzOWI3JyxHcmFkaWVudFR5cGU9MCApO1xuICBjb2xvcjogIzAwMzNhMDsgfVxuICAjZHpzLXFpYiAucWliLXNlY3Rpb24uZHpvby1xaWItdXBjb21pbmctZXZlbnRzIGgzLnFpYi1zZWN0aW9uLXRpdGxlLCAjZHpzLXFpYiAucWliLXNlY3Rpb24uZHpvby1xaWItdXBjb21pbmctZXZlbnRzIGJvZHkuc2luZ2xlLWV2ZW50IC5ldmVudC1mYXEgLnFpYi1zZWN0aW9uLXRpdGxlLmZhcS10aXRsZSwgYm9keS5zaW5nbGUtZXZlbnQgLmV2ZW50LWZhcSAjZHpzLXFpYiAucWliLXNlY3Rpb24uZHpvby1xaWItdXBjb21pbmctZXZlbnRzIC5xaWItc2VjdGlvbi10aXRsZS5mYXEtdGl0bGUge1xuICAgIGNvbG9yOiBpbmhlcml0OyB9XG5cbi8qXG5TaHVmZmxlIGdyaWQuXG5cbkBzaW5jZSAwLjEuMFxuKi9cbi5zaHVmZmxlLWxvYWRpbmcge1xuICBmb250LXNpemU6IDNlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5zaHVmZmxlLWdyaWQge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsgfVxuXG4uc2h1ZmZsZS1pdGVtcyAuc2h1ZmZsZS1pdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjcxNDI5cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNzE0MjlyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxLjQyODU3MTQyODZyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLnNodWZmbGUtaXRlbXMgLnNodWZmbGUtaXRlbSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cbiAgLnNodWZmbGUtaXRlbXMgLnNodWZmbGUtaXRlbTpob3ZlciAuc2h1ZmZsZS10aXRsZSB7XG4gICAgYmFja2dyb3VuZDogIzc4Mjc4ODsgfVxuICAuc2h1ZmZsZS1pdGVtcyAuc2h1ZmZsZS1pdGVtOmhvdmVyID4gYSB7XG4gICAgYm9yZGVyLWNvbG9yOiAjNzgyNzg4OyB9XG4gIC5zaHVmZmxlLWl0ZW1zIC5zaHVmZmxlLWl0ZW0gPiBhIHtcbiAgICBib3JkZXI6IDNweCBzb2xpZCAjM2I4ZWRlOyB9XG4gIC5zaHVmZmxlLWl0ZW1zIC5zaHVmZmxlLWl0ZW0gLnNodWZmbGUtaW1hZ2UgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87IH1cbiAgLnNodWZmbGUtaXRlbXMgLnNodWZmbGUtaXRlbSAuc2h1ZmZsZS1saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsgfVxuICAuc2h1ZmZsZS1pdGVtcyAuc2h1ZmZsZS1pdGVtIC5zaHVmZmxlLXRpdGxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAjM2I4ZWRlO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMS4yZW07XG4gICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xuICAgIHBhZGRpbmctdG9wOiAwLjVlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41ZW07XG4gICAgbWFyZ2luOiAwOyB9XG5cbi5zaHVmZmxlLWZpbHRlciAucGFzdC1ldmVudHMgYSB7XG4gIGNvbG9yOiAjODg4OyB9XG5cbi5zaHVmZmxlLWZpbHRlciBhIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnNodWZmbGUtZmlsdGVyIGEgLnNodWZmbGUtZ3JpZC1kZXNlbGVjdC1pY29uIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgb3BhY2l0eTogMDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgYmFja2dyb3VuZDogIzc4Mjc4ODtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zLCB0cmFuc2Zvcm0gMzAwbXMsIHZpc2liaWxpdHkgMzAwbXM7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGxpbmUtaGVpZ2h0OiAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBwYWRkaW5nOiAzcHg7IH1cbiAgLnNodWZmbGUtZmlsdGVyIGEuYWN0aXZlIC5zaHVmZmxlLWdyaWQtZGVzZWxlY3QtaWNvbiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cblxuLnNodWZmbGUtZmlsdGVyLXNlY29uZGFyeSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxLjNlbTtcbiAgbWFyZ2luOiAxZW0gMCAhaW1wb3J0YW50OyB9XG4gIC5zaHVmZmxlLWZpbHRlci1zZWNvbmRhcnkgYSAuc2h1ZmZsZS1ncmlkLWRlc2VsZWN0LWljb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnNodWZmbGUtZmlsdGVyLXNlY29uZGFyeSAuY29sdW1uczpudGgtY2hpbGQoMSkge1xuICAgIGNvbG9yOiAjQjNDOEU3O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmctcmlnaHQ6IDFlbTsgfVxuICAuc2h1ZmZsZS1maWx0ZXItc2Vjb25kYXJ5IC5jb2x1bW5zOm50aC1jaGlsZCgyKSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxZW07XG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjQjNDOEU3OyB9XG4gICAgLnNodWZmbGUtZmlsdGVyLXNlY29uZGFyeSAuY29sdW1uczpudGgtY2hpbGQoMikgLnBhc3QtZXZlbnRzIGEge1xuICAgICAgY29sb3I6ICM4ODg7IH1cbiAgICAuc2h1ZmZsZS1maWx0ZXItc2Vjb25kYXJ5IC5jb2x1bW5zOm50aC1jaGlsZCgyKSAuc2h1ZmZsZS1maWx0ZXItYnV0dG9uIHtcbiAgICAgIGNvbG9yOiAjM2I4ZWRlOyB9XG4gICAgICAuc2h1ZmZsZS1maWx0ZXItc2Vjb25kYXJ5IC5jb2x1bW5zOm50aC1jaGlsZCgyKSAuc2h1ZmZsZS1maWx0ZXItYnV0dG9uLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAjNzgyNzg4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4uc2l0ZS1zaWRlYmFyIC5zaHVmZmxlLWZpbHRlci1idXR0b24uYWN0aXZlIHtcbiAgY29sb3I6ICM3ODI3ODg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5zaXRlLXNpZGViYXIgLnNodWZmbGUtZmlsdGVyIC5wYXN0LWV2ZW50cyBhIHtcbiAgY29sb3I6ICM4ODg7IH1cblxuaHRtbC5jc3N0cmFuc2Zvcm1zIC5zaHVmZmxlLXRpdGxlIC5zaHVmZmxlLXRpdGxlLXRleHQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG5cbkAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKSB7XG4gIGh0bWwuY3NzdHJhbnNmb3JtcyAuc2h1ZmZsZS10aXRsZSAuc2h1ZmZsZS10aXRsZS10ZXh0IHtcbiAgICB0b3A6IGluaGVyaXQ7XG4gICAgdHJhbnNmb3JtOiBub25lOyB9IH1cblxuLypcblNpdGUgc2VhcmNoLlxuXG5Ac2luY2UgMS4yOS4xNlxuKi9cbiNzaXRlLXNlYXJjaCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgZGlzcGxheTogbm9uZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwIDFlbTtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMjAsIDM5LCAxMzYsIDAuOSk7XG4gIGNvbG9yOiAjZmZmO1xuICB6LWluZGV4OiAxMDAwMDAwOyB9XG4gICNzaXRlLXNlYXJjaCAuY2xvc2UtYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY29sb3I6ICM4YThhOGE7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAzMDBtczsgfVxuICAgIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAjc2l0ZS1zZWFyY2ggLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBvdXRsaW5lOiAwOyB9XG4gICAgI3NpdGUtc2VhcmNoIC5jbG9zZS1idXR0b246aG92ZXIsICNzaXRlLXNlYXJjaCAuY2xvc2UtYnV0dG9uOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgI3NpdGUtc2VhcmNoIC5jbG9zZS1idXR0b246aG92ZXIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpOyB9XG4gICNzaXRlLXNlYXJjaCAuc2VhcmNoLWZvcm0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gICAgI3NpdGUtc2VhcmNoIC5zZWFyY2gtZm9ybSAuc2VhcmNoLWZpZWxkLWxhYmVsIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOyB9XG4gICAgI3NpdGUtc2VhcmNoIC5zZWFyY2gtZm9ybSAuc2VhcmNoLXN1Ym1pdHRpbmcge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07IH1cbiAgICAjc2l0ZS1zZWFyY2ggLnNlYXJjaC1mb3JtIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sICNzaXRlLXNlYXJjaCAuc2VhcmNoLWZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4vKlxuQHNpbmNlIHt7VkVSU0lPTlxuKi9cbi5zdWItcGFnZS1hY2NvcmRpb24gLmFjY29yZGlvbi1uYXZpZ2F0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5zdWItcGFnZS1hY2NvcmRpb24gLmFjY29yZGlvbi1uYXZpZ2F0aW9uIC5zaG93LWFsZXJ0cy1idXR0b24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDIuNWVtO1xuICAgIGxlZnQ6IDFlbTtcbiAgICB6LWluZGV4OiAxMDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MCUpOyB9XG4gICAgLnN1Yi1wYWdlLWFjY29yZGlvbiAuYWNjb3JkaW9uLW5hdmlnYXRpb24gLnNob3ctYWxlcnRzLWJ1dHRvbiAuZmEge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjA0MTI0O1xuICAgICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICAgIHdpZHRoOiAxLjFlbTtcbiAgICAgIGhlaWdodDogMS4xZW07XG4gICAgICBsaW5lLWhlaWdodDogMS4xZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBib3gtc2hhZG93OiAycHggMnB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNTBtczsgfVxuICAgICAgLnN1Yi1wYWdlLWFjY29yZGlvbiAuYWNjb3JkaW9uLW5hdmlnYXRpb24gLnNob3ctYWxlcnRzLWJ1dHRvbiAuZmE6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjM2YTU0OyB9XG5cbi5zdWItcGFnZS1hY2NvcmRpb24gLmNvbnRlbnQge1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qXG5UbyBUb3AgYnV0dG9uXG5cbkBzaW5jZSAxLjEyLjBcbiovXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dFJpZ2h0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwMHB4KTsgfSB9XG5cbkBrZXlmcmFtZXMgYm91bmNlSW5SaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwMHB4KTsgfVxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMwcHgpOyB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbiN0by10b3Age1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAyJTtcbiAgYm90dG9tOiA1JTtcbiAgYmFja2dyb3VuZDogIzc4Mjc4ODtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDQ1cHg7XG4gIGhlaWdodDogNDVweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIGJveC1zaGFkb3c6IDJweCAycHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMyk7IH1cbiAgI3RvLXRvcCAuY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgI3RvLXRvcDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzliMzJiMDsgfVxuICAjdG8tdG9wLmxvYWRlZCB7XG4gICAgYW5pbWF0aW9uOiBib3VuY2VPdXRSaWdodCAxczsgfVxuICAjdG8tdG9wLmluIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYW5pbWF0aW9uOiBib3VuY2VJblJpZ2h0IDFzOyB9XG5cbi5ib3R0b20tc3RpY2t5LXdyYXBwZXIge1xuICBoZWlnaHQ6IDAgIWltcG9ydGFudDsgfVxuXG4uc3RpY2t5IHtcbiAgei1pbmRleDogOTAwMSAhaW1wb3J0YW50OyB9XG4gIC5zdGlja3kuYm90dG9tIHtcbiAgICB0b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgICBib3R0b206IDA7IH1cbiAgICAuc3RpY2t5LmJvdHRvbS5pcy1zdHVjayB7XG4gICAgICB0b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgIGJvdHRvbTogMDsgfVxuXG4vKlxuQXR0cmFjdGlvbiBhcmNoaXZlIHBhcnRpYWwuXG5cbkBzaW5jZSAwLjEuMFxuKi9cbi52ZW5kb3Itc2MgLnZlbmRvci10aXRsZSB7XG4gIG1hcmdpbjogMDsgfVxuXG4udmVuZG9yLXNjIC52ZW5kb3Itc3ViLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjM2I4ZWRlOyB9XG5cbi52ZW5kb3Itc2MgLnZlbmRvci1jb250ZW50IHtcbiAgcGFkZGluZy1sZWZ0OiAxZW0gIWltcG9ydGFudDsgfVxuXG4vKlxuQXR0cmFjdGlvbiBhcmNoaXZlIHBhcnRpYWwuXG5cbkBzaW5jZSAwLjEuMFxuKi9cbi5hdHRyYWN0aW9uLXNjIC5hdHRyYWN0aW9uLXRpdGxlIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5hdHRyYWN0aW9uLXNjIC5hdHRyYWN0aW9uLXN1Yi10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIG1hcmdpbi10b3A6IDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzNiOGVkZTsgfVxuXG4uYXR0cmFjdGlvbi1zYyAuYXR0cmFjdGlvbi1jb250ZW50IHtcbiAgcGFkZGluZy1sZWZ0OiAxZW0gIWltcG9ydGFudDsgfVxuXG4vKlxuVGV4dGJveCBzaG9ydGNvZGUuXG5cbkBzaW5jZSAxLjIxLjRcbiovXG4uZHpzLXNjLXRleHRib3gge1xuICBwYWRkaW5nOiAxZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgLmR6cy1zYy10ZXh0Ym94LmNvbG9yLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICM3ODI3ODg7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLmR6cy1zYy10ZXh0Ym94LmNvbG9yLXNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZDogIzAwMzNhMDtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAuZHpzLXNjLXRleHRib3ggKjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qXG5Tb2NpYWwgc2hvcnRjb2Rlcy5cblxuQHNpbmNlIDAuMS4wXG4qL1xuW2NsYXNzKj1cInNvY2lhbC1pY29uLVwiXSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogI2ZmZjtcbiAgd2lkdGg6IDEuN2VtO1xuICBoZWlnaHQ6IDEuN2VtO1xuICBsaW5lLWhlaWdodDogMS43ZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjFlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjFlbTsgfVxuICBbY2xhc3MqPVwic29jaWFsLWljb24tXCJdW2NsYXNzKj1cInNtYWxsXCJdIHtcbiAgICBmb250LXNpemU6IDEuMWVtOyB9XG4gIFtjbGFzcyo9XCJzb2NpYWwtaWNvbi1cIl1bY2xhc3MqPVwibWVkaXVtXCJdIHtcbiAgICBmb250LXNpemU6IDEuNmVtOyB9XG4gIFtjbGFzcyo9XCJzb2NpYWwtaWNvbi1cIl1bY2xhc3MqPVwibGFyZ2VcIl0ge1xuICAgIGZvbnQtc2l6ZTogM2VtOyB9XG4gIFtjbGFzcyo9XCJzb2NpYWwtaWNvbi1cIl1bY2xhc3MqPVwiZmFjZWJvb2tcIl0ge1xuICAgIGJhY2tncm91bmQ6ICMzQjU3OUQ7IH1cbiAgW2NsYXNzKj1cInNvY2lhbC1pY29uLVwiXVtjbGFzcyo9XCJ0d2l0dGVyXCJdIHtcbiAgICBiYWNrZ3JvdW5kOiAjMkFBOUUwOyB9XG4gIFtjbGFzcyo9XCJzb2NpYWwtaWNvbi1cIl1bY2xhc3MqPVwiZ29vZ2xlcGx1c1wiXSB7XG4gICAgYmFja2dyb3VuZDogI0RDNEEzODsgfVxuICBbY2xhc3MqPVwic29jaWFsLWljb24tXCJdW2NsYXNzKj1cInlvdXR1YmVcIl0ge1xuICAgIGJhY2tncm91bmQ6ICNERDJDMjg7IH1cblxuLmFjY29yZGlvbiAuZHpzLXNjLXNpZGUtaW1hZ2UgLmNvbnRlbnQge1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qIERhdGUgUGlja2VyIERlZmF1bHQgU3R5bGVzIGZyb20gUkJNIEZIICovXG4udWktZGF0ZXBpY2tlciB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwO1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZmRmZGY7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAzcHggNnB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBib3gtc2hhZG93OiAwIDNweCA2cHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG4gIG1pbi13aWR0aDogMTdlbTtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsgfVxuXG4udWktZGF0ZXBpY2tlciAqIHtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1mYW1pbHk6IFwiT3BlbiBTYW5zXCIsIHNhbnMtc2VyaWY7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbi51aS1kYXRlcGlja2VyIHRhYmxlIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgfVxuXG4udWktZGF0ZXBpY2tlciAudWktd2lkZ2V0LWhlYWRlcixcbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWhlYWRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItaGVhZGVyIC51aS1zdGF0ZS1ob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItdGl0bGUge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2LFxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IDM0cHg7XG4gIHdpZHRoOiAzNHB4OyB9XG5cbi51aS1kYXRlcGlja2VyIC51aS1zdGF0ZS1ob3Zlci51aS1kYXRlcGlja2VyLXByZXYsXG4udWktZGF0ZXBpY2tlciAudWktc3RhdGUtaG92ZXIudWktZGF0ZXBpY2tlci1uZXh0IHtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYsXG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2LWhvdmVyIHtcbiAgbGVmdDogMDsgfVxuXG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0LFxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dC1ob3ZlciB7XG4gIHJpZ2h0OiAwOyB9XG5cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5leHQgc3Bhbixcbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYgc3BhbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2IHtcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dCB7XG4gIGZsb2F0OiByaWdodDsgfVxuXG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2OmJlZm9yZSxcbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5leHQ6YmVmb3JlIHtcbiAgZm9udDogbm9ybWFsIDIwcHgvMzRweCAnZGFzaGljb25zJztcbiAgcGFkZGluZy1sZWZ0OiA3cHg7XG4gIGNvbG9yOiAjZmZmO1xuICBzcGVhazogbm9uZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIHdpZHRoOiAzNHB4O1xuICBoZWlnaHQ6IDM0cHg7IH1cblxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMzQxJzsgfVxuXG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYzNDUnOyB9XG5cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYtaG92ZXI6YmVmb3JlLFxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dC1ob3ZlcjpiZWZvcmUge1xuICBvcGFjaXR5OiAwLjc7IH1cblxuLnVpLWRhdGVwaWNrZXIgc2VsZWN0LnVpLWRhdGVwaWNrZXItbW9udGgsXG4udWktZGF0ZXBpY2tlciBzZWxlY3QudWktZGF0ZXBpY2tlci15ZWFyIHtcbiAgd2lkdGg6IDMzJTsgfVxuXG4udWktZGF0ZXBpY2tlciB0aGVhZCB7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXdlaWdodDogNjAwOyB9XG5cbi51aS1kYXRlcGlja2VyIHRoIHtcbiAgcGFkZGluZzogMTBweDsgfVxuXG4udWktZGF0ZXBpY2tlciB0ZCB7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmNGY0ZjQ7IH1cblxuLnVpLWRhdGVwaWNrZXIgdGQudWktZGF0ZXBpY2tlci1vdGhlci1tb250aCB7XG4gIGJvcmRlcjogdHJhbnNwYXJlbnQ7IH1cblxuLnVpLWRhdGVwaWNrZXIgdGQgLnVpLXN0YXRlLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgd2lkdGg6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICM0NDQ7IH1cblxuLnVpLWRhdGVwaWNrZXIgdGQudWktc3RhdGUtZGlzYWJsZWQgLnVpLXN0YXRlLWRlZmF1bHQge1xuICBvcGFjaXR5OiAwLjU7IH1cblxuLnVpLWRhdGVwaWNrZXIgLnVpLXdpZGdldC1oZWFkZXIsXG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiAjNTJhY2NjOyB9XG5cbi51aS1kYXRlcGlja2VyIHRoZWFkIHtcbiAgYmFja2dyb3VuZDogIzA5NjQ4NDsgfVxuXG4udWktZGF0ZXBpY2tlciB0ZC51aS1kYXRlcGlja2VyLXdlZWstZW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2Y0ZjRmNDsgfVxuXG4udWktZGF0ZXBpY2tlciB0ZC51aS1kYXRlcGlja2VyLXRvZGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ3OTZiMzsgfVxuXG4udWktZGF0ZXBpY2tlciB0ZC51aS1kYXRlcGlja2VyLWN1cnJlbnQtZGF5IHtcbiAgYmFja2dyb3VuZDogIzQ3OTZiMztcbiAgY29sb3I6ICNmZmY7IH1cblxuLnVpLWRhdGVwaWNrZXIgdGQgYS51aS1zdGF0ZS1kZWZhdWx0IHtcbiAgY29sb3I6IGluaGVyaXQ7IH1cblxuLnVpLWRhdGVwaWNrZXIgdGQgYS51aS1zdGF0ZS1ob3ZlciB7XG4gIGJhY2tncm91bmQ6ICMwOTY0ODQ7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi51aS1kYXRlcGlja2VyIC51aS13aWRnZXQtaGVhZGVyLFxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItaGVhZGVyIHtcbiAgY29sb3I6ICNmZmY7IH1cblxuLnVpLWRhdGVwaWNrZXIgdGhlYWQgdGgge1xuICBjb2xvcjogI2ZmZjsgfVxuXG4uZHpzLWZpZWxkLXRyaXAtZGF0ZXBpY2tlciA+IC51aS1kYXRlcGlja2VyLXRyaWdnZXIge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLypcblN0eWxlcyB0aGUgYWRtaW4gZGF0ZXBpY2tlciBmcm9tIFJCTSBmaWVsZCBoZWxwZXJzLlxuXG5Ac2luY2UgMS4yNi4yXG4qL1xuLnVpLWRhdGVwaWNrZXIgLnVpLXdpZGdldC1oZWFkZXIsXG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiAjMDAzM2EwOyB9XG5cbi51aS1kYXRlcGlja2VyIHRoZWFkIHtcbiAgYmFja2dyb3VuZDogIzc4Mjc4ODsgfVxuXG4udWktZGF0ZXBpY2tlciB0ZC51aS1kYXRlcGlja2VyLXRvZGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzdlNjZhZDsgfVxuXG4udWktZGF0ZXBpY2tlciB0ZC51aS1kYXRlcGlja2VyLWN1cnJlbnQtZGF5IHtcbiAgYmFja2dyb3VuZDogIzdlNjZhZDsgfVxuXG4udWktZGF0ZXBpY2tlciB0ZCBhLnVpLXN0YXRlLWhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzc4Mjc4ODsgfVxuXG4vKlxuVGhpcyBwcm92aWRlcyBvdmVycmlkZXMgZm9yIHNvbWUgV1Agc3R1ZmYgKG5vdCBtdWNoIGF0IGFsbCkuXG5cbkBzaW5jZSAwLjEuMFxuKi9cbiN3cGFkbWluYmFyIHtcbiAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7IH1cbiIsIi8qXG5TZXRzIHVwIHRoZSB0aGVtZSdzIHN0eWxpbmcgcHJvcGVydGllcyBhbmQgbWFrZXMgc29tZSB2YXJpYWJsZXMgYWxyZWFkeSBzZXQgaW4gRm91bmRhdGlvbiBhdmFpbGFibGUgZm9yIGVhc3kgdXNlXG50aHJvdWdob3V0IHRoaXMgdGhlbWUncyBTQVNTIGZpbGVzLlxuXG5Ac2luY2UgMC4xLjBcbiovXG5cbkBpbXBvcnQgXCJmdW5jdGlvbnNcIjtcblxuLy8gRXh0cmEgY29sb3JzXG4kZGFyay1jb2xvcjogIzMzMztcbiRtZWRpdW0tY29sb3I6ICNhYWE7XG4kbGlnaHQtY29sb3I6ICNmZmY7XG4kbGlnaHQtc2t5LWJsdWU6ICNkN2YwZjk7XG4kZ3JheS13aGl0ZS1saWdodC1wdXJwbGU6ICNjZmNkZTU7XG4kY29sZC1wdXJwbGU6ICM5NDg4YmY7XG4kbWVkaXVtLXB1cnBsZTogIzdlNjZhZDtcbiR2aXZpZC12aW9sZXQ6ICM3ODI3ODg7XG4kZGFyay1wdXJwbGU6ICMzMTM0OGM7XG4kc21hbHQ6ICMwMDMzYTA7IC8vIFpvbyBCbHVlXG4kc3VtbWVyLXNreS1ibHVlOiAjM2I4ZWRlO1xuJGxpZ2h0LWdyYXk6ICNhZWFlYWU7IC8vIEFyY2hpdmUgKGdyYXllZCBvdXQpIGZvciBQcmVzcyBSZWxlYXNlXG5cbi8vIFdlIHVzZSB0aGVzZSBhcyBkZWZhdWx0IGNvbG9ycyB0aHJvdWdob3V0XG4kcHJpbWFyeS1jb2xvcjogJHZpdmlkLXZpb2xldDtcbiRzZWNvbmRhcnktY29sb3I6ICRzbWFsdDtcbiRhbGVydC1jb2xvcjogI2YwNDEyNDtcbiRzdWNjZXNzLWNvbG9yOiAjNDNBQzZBO1xuJHdhcm5pbmctY29sb3I6ICNmMDhhMjQ7XG4kaW5mby1jb2xvcjogI2EwZDNlODtcblxuJGdsb2JhbF9mb250X3NpemU6IDE0cHg7XG5cbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeS1jb2xvcixcbiAgICBzZWNvbmRhcnk6ICRzZWNvbmRhcnktY29sb3IsXG5cdGxpZ2h0LXNreS1ibHVlOiAkbGlnaHQtc2t5LWJsdWUsXG5cdGNvbGQtcHVycGxlOiAkY29sZC1wdXJwbGUsXG5cdG1lZGl1bS1wdXJwbGU6ICRtZWRpdW0tcHVycGxlLFxuXHR2aXZpZC12aW9sZXQ6ICR2aXZpZC12aW9sZXQsXG5cdGRhcmstcHVycGxlOiAkZGFyay1wdXJwbGUsXG5cdHNtYWx0OiAkc21hbHQsXG5cdHN1bW1lci1za3ktYmx1ZTogJHN1bW1lci1za3ktYmx1ZSxcbiAgICBpbmZvOiAkaW5mby1jb2xvcixcbiAgICBzdWNjZXNzOiAkc3VjY2Vzcy1jb2xvcixcbiAgICB3YXJuaW5nOiAkd2FybmluZy1jb2xvcixcbiAgICBhbGVydDogJGFsZXJ0LWNvbG9yLFxuKTtcblxuQGluY2x1ZGUgYWRkLWZvdW5kYXRpb24tY29sb3JzO1xuXG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpO1xuXG4kYm9keS1iZzogI2ZmZjtcblxuIC8vIFdlIHVzZSB0aGVzZSB0byBkZWZpbmUgZGVmYXVsdCBmb250IHN0YWNrc1xuLy8kZm9udC1mYW1pbHktc2Fucy1zZXJpZjogXCJIZWx2ZXRpY2FcIiwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS1zYW5zLXNlcmlmOiBcIk15cmlhZCBQcm9cIiwgXCJUcmVidWNoZXQgTVNcIiwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS1zZXJpZjogR2VvcmdpYSwgQ2FtYnJpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgVGltZXMsIHNlcmlmO1xuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiRib2R5LWZvbnQtY29sb3I6ICMyMjI7XG5cbiRib2R5LWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Fucy1zZXJpZjtcblxuLy8gRm9ybXNcbiRpbnB1dC1ib3JkZXItd2lkdGg6IDA7XG5cbi8vIFNpemVzXG4kZ3V0dGVyOiAzMHB4O1xuJGJhc2UtZm9udC1zaXplOiAxNHB4O1xuJGNvbHVtbi1ndXR0ZXI6IHJlbS1jYWxjKDMwKTtcblxuLy8gQ29udmVydGVkIHRvIEZvdW5kYXRpb24gNiBmb3JtYXRcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAzMCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAxOSksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAxOSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxNiksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNiksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogMzAuMSksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyMSksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAxOS42KSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDE2LjgpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTcpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuKTtcblxuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiByZW0tY2FsYygxMSksXG4gIHNtYWxsOiByZW0tY2FsYygxMyksXG4gIGRlZmF1bHQ6IHJlbS1jYWxjKDE2KSxcbiAgbGFyZ2U6IHJlbS1jYWxjKDIwKSxcbik7XG5cbi8vIFNpbWlsYXIgdG8gaG93IEZvdW5kYXRpb24gNSBkaWQgaXRcbiRidXR0b24tc2l6ZS1wYWRkaW5nOiAoXG5cdHRpbnk6IC43MTQyODU3MTQzcmVtIDEuNDI4NTcxNDI4NnJlbSxcblx0c21hbGw6IDFyZW0gMnJlbSxcblx0ZGVmYXVsdDogMS4xNDI4NTcxNDI5cmVtIDIuMjg1NzE0Mjg1N3JlbSxcblx0bGFyZ2U6IDEuMjg1NzE0Mjg1N3JlbSAyLjU3MTQyODU3MTRyZW0sXG4pO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBoZWFkZXIgZm9udCBzdHlsZXNcbiRoZWFkZXItZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmO1xuJGhlYWRlci1saW5lLWhlaWdodDogMS40O1xuJGhlYWRlci10b3AtbWFyZ2luOiAwLjJyZW07XG4kaGVhZGVyLWJvdHRvbS1tYXJnaW46IDAuNXJlbTtcblxuLy8gVGFibGVzXG4kdGFibGUtYm9yZGVyLXNpemU6IDA7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBhbmNob3JzXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lO1xuJGFuY2hvci1mb250LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRhbmNob3ItZm9udC1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKTtcblxuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogI2ZmZjtcblxuLy8gR3JpZFxuJGdyaWQtcm93LXdpZHRoOiByZW0tY2FsYygxMTAwKTtcbiR0b3RhbC1jb2x1bW5zOiAxMjtcblxuLy8gTWVkaWEgcXVlcnkgcmFuZ2VzXG4kbWVkaXVtLXJhbmdlOiAoNDBlbSwgNjRlbSk7XG5cbiRzY3JlZW46IFwiYWxsXCI7XG4kbWVkaXVtLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0pXCI7XG5cbi8vIEFkZGVkL0N1c3RvbVxuJHBoYWJsZXQtbGFuZHNjYXBlOiBcIiN7JHNjcmVlbn0gYW5kIChtYXgtd2lkdGg6IDczM3B4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpXCIgIWRlZmF1bHQ7XG4kaXBhZC1wb3J0cmFpdDogXCIjeyRtZWRpdW0tb25seX0gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpXCIgIWRlZmF1bHQ7IC8vIFRoaXMgaW5jbHVkZXMgdXAgdGhyb3VnaCBNZWRpdW0gdGVjaG5pY2FsbHksIGJ1dCBpdCBzaG91bGRuJ3QgY2F1c2UgcHJvYmxlbXMgZm9yIGRlc2t0b3AgdXNlcnMgdW5sZXNzIHRoZXkgaGF2ZSBhIGxvdyByZXNvbHV0aW9uIHBvcnRyYWl0IG1vbml0b3IgZm9yIHNvbWUgcmVhc29uXG4kaXBhZC1sYW5kc2NhcGU6IFwiI3skc2NyZWVufSBhbmQgKG1pbi1kZXZpY2Utd2lkdGggOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjRweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKVwiICFkZWZhdWx0O1xuXG4kcHJpbnQtYnJlYWtwb2ludDogbWVkaXVtO1xuXG5AbWl4aW4gaXBhZC1wb3J0cmFpdCgpIHtcbiAgICBcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAje21hcC1nZXQoICRicmVha3BvaW50cywgJ21lZGl1bScgKX0pIGFuZCAobWF4LXdpZHRoOiA3NjhweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAgIFxuICAgICAgQGNvbnRlbnQ7XG4gICAgICBcbiAgfVxuICBcbn1cblxuQG1peGluIGlwYWQtbGFuZHNjYXBlKCkge1xuICAgIFxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkgYW5kIChtYXgtd2lkdGg6IDEwMjRweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgICBcbiAgICAgIEBjb250ZW50O1xuICAgICAgXG4gIH1cbiAgXG59XG5cbi8vIFRoaXMgaXMgc3R1ZmYgbGlrZSB0aGUgaVBob25lIDUgd2hpY2ggYXJlIGxhdWdoYWJseSBzbWFsbCBjb21wYXJlZCB0byBtb3JlIG1vZGVybiBwaG9uZXNcbkBtaXhpbiBpcGhvbmUtZml2ZS1wb3J0cmFpdCgpIHtcblxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDMyMHB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgICAgXG4gICAgQGNvbnRlbnQ7XG4gICAgXG4gIH1cblxufVxuXG4vLyBUaGlzIGlzIHN0dWZmIGxpa2UgdGhlIGlQaG9uZSA1IHdoaWNoIGFyZSBsYXVnaGFibHkgc21hbGwgY29tcGFyZWQgdG8gbW9yZSBtb2Rlcm4gcGhvbmVzXG5AbWl4aW4gaXBob25lLWZpdmUtbGFuZHNjYXBlKCkge1xuXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTY4cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgICAgXG4gICAgQGNvbnRlbnQ7XG4gICAgXG4gIH1cblxufVxuXG4vLyBUaGlzIGlzIHN0dWZmIGxpa2UgdGhlIGlQaG9uZSA2LzcvOCB3aGljaCBhcmUgbGF1Z2hhYmx5IHNtYWxsIGNvbXBhcmVkIHRvIG1vcmUgbW9kZXJuIHBob25lc1xuQG1peGluIGlwaG9uZS1zaXgtc2V2ZW4tZWlnaHQtcG9ydHJhaXQoKSB7XG5cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMjFweCkgYW5kIChtYXgtd2lkdGg6IDM3NXB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgICAgXG4gICAgQGNvbnRlbnQ7XG4gICAgXG4gIH1cblxufVxuXG4vLyBUaGlzIGlzIHN0dWZmIGxpa2UgdGhlIGlQaG9uZSA2LzcvOCB3aGljaCBhcmUgbGF1Z2hhYmx5IHNtYWxsIGNvbXBhcmVkIHRvIG1vcmUgbW9kZXJuIHBob25lc1xuQG1peGluIGlwaG9uZS1zaXgtc2V2ZW4tZWlnaHQtbGFuZHNjYXBlKCkge1xuXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTY5cHgpIGFuZCAobWF4LXdpZHRoOiA2NjdweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgICBcbiAgICBAY29udGVudDtcbiAgICBcbiAgfVxuXG59IiwiLypcbkV4dHJhIGZ1bmN0aW9ucy5cblxuQHNpbmNlIDAuMS4wXG4qL1xuXG5AbWl4aW4gbGlnaHQtb3ItZGFyay10ZXh0KCRjb2xvcikge1xuXG4gIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA8IDUwJSB7XG4gICAgY29sb3I6ICRsaWdodC1jb2xvcjtcbiAgfSBAZWxzZSB7XG4gICAgY29sb3I6ICRkYXJrLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBob3Jpem9udGFsLWdyYWRpZW50KCRjb2xvcjEsICRjb2xvcjIsICRzdG9wMTogMCUsICRzdG9wMjogMTAwJSkge1xuICBiYWNrZ3JvdW5kOiAkY29sb3IxO1xuICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUEvUGdvOGMzWm5JSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdkMmxrZEdnOUlqRXdNQ1VpSUdobGFXZG9kRDBpTVRBd0pTSWdkbWxsZDBKdmVEMGlNQ0F3SURFZ01TSWdjSEpsYzJWeWRtVkJjM0JsWTNSU1lYUnBiejBpYm05dVpTSStDaUFnUEd4cGJtVmhja2R5WVdScFpXNTBJR2xrUFNKbmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0lpQm5jbUZrYVdWdWRGVnVhWFJ6UFNKMWMyVnlVM0JoWTJWUGJsVnpaU0lnZURFOUlqQWxJaUI1TVQwaU1DVWlJSGd5UFNJeE1EQWxJaUI1TWowaU1DVWlQZ29nSUNBZ1BITjBiM0FnYjJabWMyVjBQU0l3SlNJZ2MzUnZjQzFqYjJ4dmNqMGlJMkptTVdVeVpDSWdjM1J2Y0MxdmNHRmphWFI1UFNJeElpOCtDaUFnSUNBOGMzUnZjQ0J2Wm1aelpYUTlJakV3TUNVaUlITjBiM0F0WTI5c2IzSTlJaU5tTlRrME56Y2lJSE4wYjNBdGIzQmhZMmwwZVQwaU1TSXZQZ29nSUR3dmJHbHVaV0Z5UjNKaFpHbGxiblErQ2lBZ1BISmxZM1FnZUQwaU1DSWdlVDBpTUNJZ2QybGtkR2c5SWpFaUlHaGxhV2RvZEQwaU1TSWdabWxzYkQwaWRYSnNLQ05uY21Ga0xYVmpaMmN0WjJWdVpYSmhkR1ZrS1NJZ0x6NEtQQzl6ZG1jKyk7XG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICAkY29sb3IxICRzdG9wMSwgJGNvbG9yMiAkc3RvcDIpO1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgY29sb3Itc3RvcCgkc3RvcDEsJGNvbG9yMSksIGNvbG9yLXN0b3AoJHN0b3AyLCRjb2xvcjIpKTtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgICRjb2xvcjEgJHN0b3AxLCRjb2xvcjIgJHN0b3AyKTtcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICAkY29sb3IxICRzdG9wMSwkY29sb3IyICRzdG9wMik7XG4gIGJhY2tncm91bmQ6IC1tcy1saW5lYXItZ3JhZGllbnQobGVmdCwgICRjb2xvcjEgJHN0b3AxLCRjb2xvcjIgJHN0b3AyKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAgJGNvbG9yMSAkc3RvcDEsJGNvbG9yMiAkc3RvcDIpO1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI2JmMWUyZCcsIGVuZENvbG9yc3RyPScjZjU5NDc3JyxHcmFkaWVudFR5cGU9MSApO1xufVxuXG5AbWl4aW4gdmVydGljYWwtZ3JhZGllbnQoJGNvbG9yMSwgJGNvbG9yMiwgJHN0b3AxOiAwJSwgJHN0b3AyOiAxMDAlKSB7XG4gIGJhY2tncm91bmQ6ICRjb2xvcjE7XG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgICRjb2xvcjEgJHN0b3AxLCAkY29sb3IyICRzdG9wMik7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoJHN0b3AxLCRjb2xvcjEpLCBjb2xvci1zdG9wKCRzdG9wMiwkY29sb3IyKSk7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgICRjb2xvcjEgJHN0b3AxLCRjb2xvcjIgJHN0b3AyKTtcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgICRjb2xvcjEgJHN0b3AxLCRjb2xvcjIgJHN0b3AyKTtcbiAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICAkY29sb3IxICRzdG9wMSwkY29sb3IyICRzdG9wMik7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICAkY29sb3IxICRzdG9wMSwkY29sb3IyICRzdG9wMik7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjMjU4ZGM4JywgZW5kQ29sb3JzdHI9JyMyMjM5YjcnLEdyYWRpZW50VHlwZT0wICk7XG59XG5cbkBmdW5jdGlvbiBzdHItc3BsaXQoICRzdHJpbmcsICRzZXBhcmF0b3IgKSB7XG5cblx0Ly8gZW1wdHkgYXJyYXkvbGlzdFxuXHQkc3BsaXQtYXJyOiAoKTtcblxuXHQvLyBmaXJzdCBpbmRleCBvZiBzZXBhcmF0b3IgaW4gc3RyaW5nXG5cdCRpbmRleDogc3RyLWluZGV4KCAkc3RyaW5nLCAkc2VwYXJhdG9yICk7XG5cblx0Ly8gbG9vcCB0aHJvdWdoIHN0cmluZ1xuXHRAd2hpbGUgJGluZGV4ICE9IG51bGwge1xuXG5cdFx0Ly8gZ2V0IHRoZSBzdWJzdHJpbmcgZnJvbSB0aGUgZmlyc3QgY2hhcmFjdGVyIHRvIHRoZSBzZXBhcmF0b3Jcblx0XHQkaXRlbTogc3RyLXNsaWNlKCAkc3RyaW5nLCAxLCAkaW5kZXggLSAxICk7XG5cblx0XHQvLyBwdXNoIGl0ZW0gdG8gYXJyYXlcblx0XHQkc3BsaXQtYXJyOiBhcHBlbmQoICRzcGxpdC1hcnIsICRpdGVtICk7XG5cblx0XHQvLyByZW1vdmUgaXRlbSBhbmQgc2VwYXJhdG9yIGZyb20gc3RyaW5nXG5cdFx0JHN0cmluZzogc3RyLXNsaWNlKCAkc3RyaW5nLCAkaW5kZXggKyAxICk7XG5cblx0XHQvLyBmaW5kIG5ldyBpbmRleCBvZiBzZXBhcmF0b3Jcblx0XHQkaW5kZXg6IHN0ci1pbmRleCggJHN0cmluZywgJHNlcGFyYXRvciApO1xuXG5cdH1cblxuXHQvLyBhZGQgdGhlIHJlbWFpbmluZyBzdHJpbmcgdG8gbGlzdCAodGhlIGxhc3QgaXRlbSlcblx0JHNwbGl0LWFycjogYXBwZW5kKCAkc3BsaXQtYXJyLCAkc3RyaW5nICk7XG5cblx0QHJldHVybiAkc3BsaXQtYXJyO1xuXG59XG5cbi8vIFNhc3MgaGFzIGEgd2F5IHRvIGNhc3QgZnJvbSBOdW1iZXIgdG8gU3RyaW5nIHZpYSBpbnNwZWN0KCksIGJ1dCBub3QgdGhlIG90aGVyIHdheSBhcm91bmRcbkBmdW5jdGlvbiB0by1udW1iZXIoICR2YWx1ZSApIHtcblxuXHRAaWYgdHlwZS1vZiggJHZhbHVlICkgPT0gJ251bWJlcicge1xuXHRcdEByZXR1cm4gJHZhbHVlO1xuXHR9IEBlbHNlIGlmIHR5cGUtb2YoICR2YWx1ZSApICE9ICdzdHJpbmcnIHtcblx0XHQkXzogbG9nKCAnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nICk7XG5cdH1cblxuXHQkcmVzdWx0OiAwO1xuXHQkZGlnaXRzOiAwO1xuXHQkbWludXM6IHN0ci1zbGljZSggJHZhbHVlLCAxLCAxICkgPT0gJy0nO1xuXHQkbnVtYmVyczogKCAnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkgKTtcblxuXHRAZm9yICRpIGZyb20gaWYoICRtaW51cywgMiwgMSApIHRocm91Z2ggc3RyLWxlbmd0aCggJHZhbHVlICkge1xuXHRcdCRjaGFyYWN0ZXI6IHN0ci1zbGljZSggJHZhbHVlLCAkaSwgJGkgKTtcblxuXHRcdEBpZiBub3QgKCBpbmRleCggbWFwLWtleXMoICRudW1iZXJzICksICRjaGFyYWN0ZXIgKSBvciAkY2hhcmFjdGVyID09ICcuJyApIHtcblx0XHRcdEByZXR1cm4gdG8tbGVuZ3RoKCBpZiggJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSggJHZhbHVlLCAkaSApICk7XG5cdFx0fVxuXG5cdFx0QGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcblx0XHRcdCRkaWdpdHM6IDE7IFxuXHRcdH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcblx0XHRcdCRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoICRudW1iZXJzLCAkY2hhcmFjdGVyICk7XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHQkZGlnaXRzOiAkZGlnaXRzICogMTA7XG5cdFx0XHQkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCggJG51bWJlcnMsICRjaGFyYWN0ZXIgKSAvICRkaWdpdHM7XG5cdFx0fVxuXG5cdH1cblxuXHRAcmV0dXJuIGlmKCAkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0ICk7XG5cbn1cblxuLy8gUmUtYWRkcyB0aGUgYXBwcm9wcmlhdGUgVW5pdCB3aGVuIGNvbnZlcnRpbmcgYSBTdHJpbmcgdG8gYSBOdW1iZXJcbi8vIFNvbWVob3cgTnVtYmVycyBjYW4gaGF2ZSBTdHJpbmcgVW5pdHMgaW4gU2Fzcy4gTWFrZXMgbm8gc2Vuc2UgdG8gbWUgZWl0aGVyLiBBbHdheXMgZmlndXJlZCB0aGluZ3MgbGlrZSBcInBhZGRpbmc6IDFyZW1cIiB3ZXJlIFN0cmluZ3NcbkBmdW5jdGlvbiB0by1sZW5ndGgoICR2YWx1ZSwgJHVuaXQgKSB7XG5cblx0JHVuaXRzOiAoICdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCApO1xuXG5cdEBpZiBub3QgaW5kZXgoIG1hcC1rZXlzKCAkdW5pdHMgKSwgJHVuaXQgKSB7XG5cdFx0JF86IGxvZyggJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicgKTtcblx0fVxuXG5cdEByZXR1cm4gJHZhbHVlICogbWFwLWdldCggJHVuaXRzLCAkdW5pdCApO1xuXG59XG5cbi8vIENvbnZlcnQgSGV4IHRvIFJHQkFcbkBtaXhpbiBiYWNrZ3JvdW5kLW9wYWNpdHkoICRjb2xvciwgJG9wYWNpdHk6IDAuMyApIHtcblx0YmFja2dyb3VuZDogJGNvbG9yOyAvKiBUaGUgZmFsbGJhY2sgZm9yIGFuY2llbnQgdGhpbmdzICovXG5cdGJhY2tncm91bmQ6IHJnYmEoICRjb2xvciwgJG9wYWNpdHkgKTtcbn0iLCIvKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbiAqIFZlcnNpb24gNi40LjNcbiAqIGZvdW5kYXRpb24uenVyYi5jb21cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG5cbi8vIERlcGVuZGVuY2llc1xuQGltcG9ydCAnLi4vX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvbWlzc2luZy1kZXBlbmRlbmNpZXMnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL3RydWUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvY29udGFpbic7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9wdXJnZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZW1vdmUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVwbGFjZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy90by1saXN0JztcblxuLy8gU2V0dGluZ3Ncbi8vIGltcG9ydCB5b3VyIG93biBgc2V0dGluZ3NgIGhlcmUgb3Jcbi8vIGltcG9ydCBhbmQgbW9kaWZ5IHRoZSBkZWZhdWx0IHNldHRpbmdzIHRocm91Z2hcbi8vIEBpbXBvcnQgJ3NldHRpbmdzL3NldHRpbmdzJztcblxuLy8gU2FzcyB1dGlsaXRpZXNcbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG5cbi8vIEdsb2JhbCB2YXJpYWJsZXMgYW5kIHN0eWxlc1xuQGltcG9ydCAnZ2xvYmFsJztcblxuLy8gQ29tcG9uZW50c1xuQGltcG9ydCAnZ3JpZC9ncmlkJztcbkBpbXBvcnQgJ3h5LWdyaWQveHktZ3JpZCc7XG5AaW1wb3J0ICd0eXBvZ3JhcGh5L3R5cG9ncmFwaHknO1xuQGltcG9ydCAnZm9ybXMvZm9ybXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy92aXNpYmlsaXR5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxvYXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24tZ3JvdXAnO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JhZGdlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYWxsb3V0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FyZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Nsb3NlLWJ1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2RyaWxsZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZsZXgnO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXNwb25zaXZlLWVtYmVkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbGFiZWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZWRpYS1vYmplY3QnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudS1pY29uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb2ZmLWNhbnZhcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL29yYml0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcGFnaW5hdGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Byb2dyZXNzLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3JldmVhbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NsaWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N0aWNreSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N3aXRjaCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYmxlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFicyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RpdGxlLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RvcC1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90aHVtYm5haWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sdGlwJztcbkBpbXBvcnQgJ3Byb3RvdHlwZS9wcm90b3R5cGUnO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1ldmVyeXRoaW5nKFxuICAkZmxleDogdHJ1ZSxcbiAgJHByb3RvdHlwZTogZmFsc2Vcbikge1xuICBAaWYgJGZsZXgge1xuICAgICRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xuICBAaWYgbm90ICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdyaWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkeHktZ3JpZCB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLXh5LWdyaWQtY2xhc3NlcztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhcmQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudS1pY29uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1sYWJlbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZWRpYS1vYmplY3Q7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb2ZmLWNhbnZhcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vcmJpdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wYWdpbmF0aW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb2dyZXNzLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zbGlkZXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3RpY2t5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJldmVhbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFibGU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFicztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGl0bGUtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvb2x0aXA7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcztcblxuICBAaWYgJGZsZXgge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1jbGFzc2VzO1xuICB9XG5cbiAgQGlmICRwcm90b3R5cGUge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWNsYXNzZXM7XG4gIH1cbn1cbiIsIkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ2R6cy1pY29ucyc7XG4gIHNyYzogdXJsKCcuLi9pY29ucy9kenMtaWNvbnMuZW90PycpO1xuICBzcmM6IHVybCgnLi4vaWNvbnMvZHpzLWljb25zLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIHVybCgnLi4vaWNvbnMvZHpzLWljb25zLndvZmY/JykgZm9ybWF0KCd3b2ZmJyksXG4gIHVybCgnLi4vaWNvbnMvZHpzLWljb25zLnR0Zj8nKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIHVybCgnLi4vaWNvbnMvZHpzLWljb25zLnN2Zz8jZHpzLWljb25zJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLyogQ2hyb21lIGhhY2s6IFNWRyBpcyByZW5kZXJlZCBtb3JlIHNtb290aCBpbiBXaW5kb3p6ZS4gMTAwJSBtYWdpYywgdW5jb21tZW50IGlmIHlvdSBuZWVkIGl0LiAqL1xuLyogTm90ZSwgdGhhdCB3aWxsIGJyZWFrIGhpbnRpbmchIEluIG90aGVyIE9TLWVzIGZvbnQgd2lsbCBiZSBub3QgYXMgc2hhcnAgYXMgaXQgY291bGQgYmUgKi9cbi8qXG5AbWVkaWEgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOjApIHtcbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdkenMtaWNvbnMnO1xuICAgIHNyYzogdXJsKCcuLi9mb250L2R6cy1pY29ucy5zdmc/NjQ0MDkwNDcjZHpzLWljb25zJykgZm9ybWF0KCdzdmcnKTtcbiAgfVxufVxuKi9cblxuW2NsYXNzXj1cImR6cy1pY29uLVwiXTpiZWZvcmUsIFtjbGFzcyo9XCIgZHpzLWljb24tXCJdOmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBcImR6cy1pY29uc1wiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcblxuICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi5kenMtaWNvbi1ibG9nOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDAnOyB9IC8qICfuoIAnICovXG4uZHpzLWljb24tbWVudTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODAxJzsgfSAvKiAn7qCBJyAqL1xuLmR6cy1pY29uLWNsb3NlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDInOyB9IC8qICfuoIInICovXG4uZHpzLWljb24tYXJyb3ctcmlnaHQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwMyc7IH0gLyogJ+6ggycgKi9cbi5kenMtaWNvbi1jYWxlbmRhcjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODA0JzsgfSAvKiAn7qCEJyAqL1xuLmR6cy1pY29uLWNpcmNsZS1zdGFyOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDUnOyB9IC8qICfuoIUnICovXG4uZHpzLWljb24tZG9jdW1lbnQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwNic7IH0gLyogJ+6ghicgKi9cbi5kenMtaWNvbi1jb21wYXNzLXN0YXI6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwNyc7IH0gLyogJ+6ghycgKi9cbi5kenMtaWNvbi1jbG9jazpiZWZvcmUgeyBjb250ZW50OiAnXFxlODA4JzsgfSAvKiAn7qCIJyAqL1xuLmR6cy1pY29uLWZhY2Vib29rOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDknOyB9IC8qICfuoIknICovXG4uZHpzLWljb24taW5zdGFncmFtOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGEnOyB9IC8qICfuoIonICovXG4uZHpzLWljb24tcGF3cHJpbnQtYnV0dG9uOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGInOyB9IC8qICfuoIsnICovXG4uZHpzLWljb24tcGF3cHJpbnQtY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGMnOyB9IC8qICfuoIwnICovXG4uZHpzLWljb24tcGF3cHJpbnQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwZCc7IH0gLyogJ+6gjScgKi9cbi5kenMtaWNvbi10aWNrZXQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwZSc7IH0gLyogJ+6gjicgKi9cbi5kenMtaWNvbi10d2l0dGVyOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGYnOyB9IC8qICfuoI8nICovXG4uZHpzLWljb24tdmFuOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTAnOyB9IC8qICfuoJAnICovXG4uZHpzLWljb24tYXJyb3ctbGVmdDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODExJzsgfSAvKiAn7qCRJyAqL1xuLmR6cy1pY29uLXBlbmd1aW46YmVmb3JlIHsgY29udGVudDogJ1xcZTgxMic7IH0gLyogJ+6gkicgKi9cbi5kenMtaWNvbi1kZWVyMS1vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MjYnOyB9IC8qICfuoKYnICovXG4uZHpzLWljb24tZGVlcjEtc29saWQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyNyc7IH0gLyogJ+6gpycgKi9cbi5kenMtaWNvbi1kZWVyMi1qdW1wLW91dGxpbmU6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyOCc7IH0gLyogJ+6gqCcgKi9cbi5kenMtaWNvbi1kZWVyMi1qdW1wLXNvbGlkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MjknOyB9IC8qICfuoKknICovXG4uZHpzLWljb24tZGVlcjMtZmFjZS1vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MmEnOyB9IC8qICfuoKonICovXG4uZHpzLWljb24tZGVlcjMtZmFjZS1zb2xpZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODJiJzsgfSAvKiAn7qCrJyAqL1xuLmR6cy1pY29uLWZyb2cxLW91dGxpbmU6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyYyc7IH0gLyogJ+6grCcgKi9cbi5kenMtaWNvbi1mcm9nMS1zb2xpZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODJkJzsgfSAvKiAn7qCtJyAqL1xuLmR6cy1pY29uLXR1cnRsZTEtb3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODJlJzsgfSAvKiAn7qCuJyAqL1xuLmR6cy1pY29uLXR1cnRsZTEtc29saWQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyZic7IH0gLyogJ+6grycgKi9cbi5kenMtaWNvbi10dXJ0bGUyLW91dGxpbmU6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzMCc7IH0gLyogJ+6gsCcgKi9cbi5kenMtaWNvbi10dXJ0bGUyLXNvbGlkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MzEnOyB9IC8qICfuoLEnICovXG4uZHpzLWljb24tdHVydGxlMy1kZXRhaWxlZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODMyJzsgfSAvKiAn7qCyJyAqL1xuLmR6cy1pY29uLWZyb2c6YmVmb3JlIHsgY29udGVudDogJ1xcZTkwMCc7IH0gLyogJ+6gsicgKi9cbi5kenMtaWNvbi1iaW5vY3VsYXJzOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU5MDEnOyB9IC8qICfuoLInICovIiwiLy8gSGVscGVyIGZ1bmN0aW9uIGZvciB0aGUgbm9ybWFsaXplKCkgbWl4aW4uXG5AZnVuY3Rpb24gX25vcm1hbGl6ZS1pbmNsdWRlKCRzZWN0aW9uLCAkZXhjbHVkZTogbnVsbCkge1xuICAvLyBJbml0aWFsaXplIHRoZSBnbG9iYWwgdmFyaWFibGVzIG5lZWRlZCBieSB0aGlzIGZ1bmN0aW9uLlxuICBAaWYgbm90IGdsb2JhbF92YXJpYWJsZV9leGlzdHMoX25vcm1hbGl6ZS1pbmNsdWRlKSB7XG4gICAgJF9ub3JtYWxpemUtaW5jbHVkZTogKCkgIWdsb2JhbDtcbiAgICAkX25vcm1hbGl6ZS1leGNsdWRlOiAoKSAhZ2xvYmFsO1xuICB9XG4gIC8vIFNpbmNlIHdlIGFyZSBnaXZlbiAyIHBhcmFtZXRlcnMsIHNldCB0aGUgZ2xvYmFsIHZhcmlhYmxlcy5cbiAgQGlmICRleGNsdWRlICE9IG51bGwge1xuICAgICRpbmNsdWRlOiAkc2VjdGlvbjtcbiAgICAvLyBTYXNzIGRvZXNuJ3QgaGF2ZSBzdGF0aWMgdmFyaWFibGVzLCBzbyB0aGUgd29yay1hcm91bmQgaXMgdG8gc3R1ZmYgdGhlc2VcbiAgICAvLyB2YWx1ZXMgaW50byBnbG9iYWwgdmFyaWFibGVzIHNvIHdlIGNhbiBhY2Nlc3MgdGhlbSBpbiBmdXR1cmUgY2FsbHMuXG4gICAgJF9ub3JtYWxpemUtaW5jbHVkZTogaWYodHlwZS1vZigkaW5jbHVkZSkgPT0gJ2xpc3QnLCAkaW5jbHVkZSwgKCRpbmNsdWRlKSkgIWdsb2JhbDtcbiAgICAkX25vcm1hbGl6ZS1leGNsdWRlOiBpZih0eXBlLW9mKCRleGNsdWRlKSA9PSAnbGlzdCcsICRleGNsdWRlLCAoJGV4Y2x1ZGUpKSAhZ2xvYmFsO1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmICRzZWN0aW9uIGlzIGluIHRoZSAkaW5jbHVkZSBsaXN0LlxuICBAaWYgaW5kZXgoJF9ub3JtYWxpemUtaW5jbHVkZSwgJHNlY3Rpb24pIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgLy8gSWYgJGluY2x1ZGUgaXMgc2V0IHRvIChhbGwpLCBtYWtlIHN1cmUgJHNlY3Rpb24gaXMgbm90IGluICRleGNsdWRlLlxuICBAZWxzZSBpZiBub3QgaW5kZXgoJF9ub3JtYWxpemUtZXhjbHVkZSwgJHNlY3Rpb24pIGFuZCBpbmRleCgkX25vcm1hbGl6ZS1pbmNsdWRlLCBhbGwpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZSgkaW5jbHVkZTogKGFsbCksICRleGNsdWRlOiAoKSkge1xuICAvLyBJbml0aWFsaXplIHRoZSBoZWxwZXIgZnVuY3Rpb24gYnkgcGFzc2luZyBpdCB0aGlzIG1peGluJ3MgcGFyYW1ldGVycy5cbiAgJGluaXQ6IF9ub3JtYWxpemUtaW5jbHVkZSgkaW5jbHVkZSwgJGV4Y2x1ZGUpO1xuXG4gIC8vIElmIHdlJ3ZlIGN1c3RvbWl6ZWQgYW55IGZvbnQgdmFyaWFibGVzLCB3ZSdsbCBuZWVkIGV4dHJhIHByb3BlcnRpZXMuXG4gIEBpZiAkYmFzZS1mb250LXNpemUgIT0gMTZweFxuICAgIG9yICRiYXNlLWxpbmUtaGVpZ2h0ICE9IDI0cHhcbiAgICBvciAkYmFzZS11bml0ICE9ICdlbSdcbiAgICBvciAkaDEtZm9udC1zaXplICE9IDIgICAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDItZm9udC1zaXplICE9IDEuNSAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDMtZm9udC1zaXplICE9IDEuMTcgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDQtZm9udC1zaXplICE9IDEgICAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDUtZm9udC1zaXplICE9IDAuODMgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDYtZm9udC1zaXplICE9IDAuNjcgKiAkYmFzZS1mb250LXNpemUge1xuICAgICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtOiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICAvKiEgbm9ybWFsaXplLXNjc3MgfCBNSVQvR1BMdjIgTGljZW5zZSB8IGJpdC5seS9ub3JtYWxpemUtc2NzcyAqL1xuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZG9jdW1lbnQpIHtcbiAgICAvKiBEb2N1bWVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGRlZmF1bHQgZm9udCBmYW1pbHkgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDMuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cbiAgICAgKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gICAgICovXG5cbiAgICBodG1sIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTsgLyogMSAqL1xuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgLy8gQ29ycmVjdCBvbGQgYnJvd3NlciBidWcgdGhhdCBwcmV2ZW50ZWQgYWNjZXNzaWJsZSByZXNpemluZyBvZiB0ZXh0XG4gICAgICAgIC8vIHdoZW4gcm9vdCBmb250LXNpemUgaXMgc2V0IHdpdGggcHggb3IgZW0uXG4gICAgICAgIGZvbnQtc2l6ZTogKCRiYXNlLWZvbnQtc2l6ZSAvIDE2cHgpICogMTAwJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICgkYmFzZS1saW5lLWhlaWdodCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07IC8qIDIgKi9cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDIgKi9cbiAgICAgIH1cbiAgICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAzICovXG4gICAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDMgKi9cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHNlY3Rpb25zKSB7XG4gICAgLyogU2VjdGlvbnNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBib2R5IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGFydGljbGUsXG4gICAgYXNpZGUsXG4gICAgZm9vdGVyLFxuICAgIGhlYWRlcixcbiAgICBuYXYsXG4gICAgc2VjdGlvbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gICAgICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGgxIHtcbiAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGgxLWZvbnQtc2l6ZSk7XG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgxLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIC8qIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zLiAqL1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgxLWZvbnQtc2l6ZSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIG1hcmdpbjogMC42N2VtIDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIGgyIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDItZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgyLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGgzIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDMtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMy1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgzLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg0IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDQtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNC1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg0LWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg1IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDUtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNS1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg1LWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg2IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDYtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg2LWZvbnQtc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShncm91cGluZykge1xuICAgIC8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAqL1xuXG4gICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxICRpbmRlbnQtYW1vdW50KTtcbiAgICAgIH1cblxuICAgICAgZGwsXG4gICAgICBvbCxcbiAgICAgIHVsIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFR1cm4gb2ZmIG1hcmdpbnMgb24gbmVzdGVkIGxpc3RzLlxuICAgICAgICovXG5cbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBvbCxcbiAgICAgICAgdWwge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBkZCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgJGluZGVudC1hbW91bnQ7XG4gICAgICB9XG5cbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGZpZ2NhcHRpb24sXG4gICAgZmlndXJlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAgICAgKi9cblxuICAgIGZpZ3VyZSB7XG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgJGluZGVudC1hbW91bnQpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBtYXJnaW46IDFlbSAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAgICAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICAgICAqL1xuXG4gICAgaHIge1xuICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgICAgIGhlaWdodDogMDsgLyogMSAqL1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cblxuICAgIG1haW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAqL1xuXG4gICAgICBwLFxuICAgICAgcHJlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgcHJlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGxpbmtzKSB7XG4gICAgLyogTGlua3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgICAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAgICAgKi9cblxuICAgIGEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDEgKi9cbiAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIG91dGxpbmUgb24gZm9jdXNlZCBsaW5rcyB3aGVuIHRoZXkgYXJlIGFsc28gYWN0aXZlIG9yIGhvdmVyZWRcbiAgICAgKiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGE6YWN0aXZlLFxuICAgIGE6aG92ZXIge1xuICAgICAgb3V0bGluZS13aWR0aDogMDtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHRleHQpIHtcbiAgICAvKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGFiYnJbdGl0bGVdIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAgICAgKi9cblxuICAgIGIsXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBiLFxuICAgIHN0cm9uZyB7XG4gICAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgY29kZSxcbiAgICBrYmQsXG4gICAgc2FtcCB7XG4gICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgICAgIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICAgICAqL1xuXG4gICAgZGZuIHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBtYXJrIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHNtYWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogODAlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAgICAqIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHN1YixcbiAgICBzdXAge1xuICAgICAgZm9udC1zaXplOiA3NSU7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICB9XG5cbiAgICBzdWIge1xuICAgICAgYm90dG9tOiAtMC4yNWVtO1xuICAgIH1cblxuICAgIHN1cCB7XG4gICAgICB0b3A6IC0wLjVlbTtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGVtYmVkZGVkKSB7XG4gICAgLyogRW1iZWRkZWQgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGF1ZGlvLFxuICAgIHZpZGVvIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICAgICAqL1xuXG4gICAgYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuXG4gICAgc3ZnOm5vdCg6cm9vdCkge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGZvcm1zKSB7XG4gICAgLyogRm9ybXNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgaW5wdXQsXG4gICAgb3B0Z3JvdXAsXG4gICAgc2VsZWN0LFxuICAgIHRleHRhcmVhIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBsaW5lLWhlaWdodDogKCRiYXNlLWxpbmUtaGVpZ2h0IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgbWFyZ2luOiAwOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5cbiAgICBidXR0b24ge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gICAgICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIHNlbGVjdCB7IC8qIDEgKi9cbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICAgICAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIGh0bWwgW3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbiAgICBbdHlwZT1cInJlc2V0XCJdLFxuICAgIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gICAgfVxuXG4gICAgYnV0dG9uLFxuICAgIFt0eXBlPVwiYnV0dG9uXCJdLFxuICAgIFt0eXBlPVwicmVzZXRcIl0sXG4gICAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuXG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gICAgICAgKi9cblxuICAgICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gICAgICAgKi9cblxuICAgICAgJjotbW96LWZvY3VzcmluZyB7XG4gICAgICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICAgICAqL1xuXG4gICAgaW5wdXQge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgIFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgICAgcGFkZGluZzogMDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xuXG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gICAgICAgKi9cblxuICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gICAgICovXG5cbiAgICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gICAgICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBmaWVsZHNldCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgICAgKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gICAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBsZWdlbmQge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgICAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgICAgIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICAgICAgcGFkZGluZzogMDsgLyogMyAqL1xuICAgICAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICAgICAqL1xuXG4gICAgcHJvZ3Jlc3Mge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICAgICAqL1xuXG4gICAgdGV4dGFyZWEge1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShpbnRlcmFjdGl2ZSkge1xuICAgIC8qIEludGVyYWN0aXZlXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICAgICAqL1xuXG4gICAgZGV0YWlscyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHN1bW1hcnkge1xuICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBtZW51IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICAvKlxuICAgICAgICAgKiAxLiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICAgKiAyLiBTZXQgY29uc2lzdGVudCBzcGFjZSBmb3IgdGhlIGxpc3Qgc3R5bGUgaW1hZ2UuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwKTsgLyogMSAqL1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkaW5kZW50LWFtb3VudDsgLyogMiAqL1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUdXJuIG9mZiBtYXJnaW5zIG9uIG5lc3RlZCBsaXN0cy5cbiAgICAgICAgICovXG5cbiAgICAgICAgbWVudSAmLFxuICAgICAgICBvbCAmLFxuICAgICAgICB1bCAmIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHNjcmlwdGluZykge1xuICAgIC8qIFNjcmlwdGluZ1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGNhbnZhcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG5cbiAgICB0ZW1wbGF0ZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoaGlkZGVuKSB7XG4gICAgLyogSGlkZGVuXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIFtoaWRkZW5dIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gVmFyaWFibGVzXG4vL1xuLy8gWW91IGNhbiBvdmVycmlkZSB0aGUgZGVmYXVsdCB2YWx1ZXMgYnkgc2V0dGluZyB0aGUgdmFyaWFibGVzIGluIHlvdXIgU2Fzc1xuLy8gYmVmb3JlIGltcG9ydGluZyB0aGUgbm9ybWFsaXplLXNjc3MgbGlicmFyeS5cblxuLy8gVGhlIGZvbnQgc2l6ZSBzZXQgb24gdGhlIHJvb3QgaHRtbCBlbGVtZW50LlxuJGJhc2UtZm9udC1zaXplOiAxNnB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgYmFzZSBsaW5lIGhlaWdodCBkZXRlcm1pbmVzIHRoZSBiYXNpYyB1bml0IG9mIHZlcnRpY2FsIHJoeXRobS5cbiRiYXNlLWxpbmUtaGVpZ2h0OiAyNHB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgbGVuZ3RoIHVuaXQgaW4gd2hpY2ggdG8gb3V0cHV0IHZlcnRpY2FsIHJoeXRobSB2YWx1ZXMuXG4vLyBTdXBwb3J0ZWQgdmFsdWVzOiBweCwgZW0sIHJlbS5cbiRiYXNlLXVuaXQ6ICdlbScgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5LlxuJGJhc2UtZm9udC1mYW1pbHk6IHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vIFRoZSBmb250IHNpemVzIGZvciBoMS1oNi5cbiRoMS1mb250LXNpemU6IDIgICAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDItZm9udC1zaXplOiAxLjUgICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGgzLWZvbnQtc2l6ZTogMS4xNyAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoNC1mb250LXNpemU6IDEgICAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDUtZm9udC1zaXplOiAwLjgzICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGg2LWZvbnQtc2l6ZTogMC42NyAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuLy8gVGhlIGFtb3VudCBsaXN0cyBhbmQgYmxvY2txdW90ZXMgYXJlIGluZGVudGVkLlxuJGluZGVudC1hbW91bnQ6IDQwcHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgY29udHJvbHMgd2hldGhlciBub3JtYWxpemUtc2NzcyB3aWxsIG91dHB1dFxuLy8gZm9udC1zaXplcywgbGluZS1oZWlnaHRzIGFuZCBibG9jay1sZXZlbCB0b3AvYm90dG9tIG1hcmdpbnMgdGhhdCBmb3JtIGEgYmFzaWNcbi8vIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgcGFnZSwgd2hpY2ggZGlmZmVycyBmcm9tIHRoZSBvcmlnaW5hbCBOb3JtYWxpemUuY3NzLlxuLy8gSG93ZXZlciwgY2hhbmdpbmcgYW55IG9mIHRoZSB2YXJpYWJsZXMgYWJvdmUgd2lsbCBjYXVzZVxuLy8gJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0gdG8gYmUgYXV0b21hdGljYWxseSBzZXQgdG8gdHJ1ZS5cbiRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtOiBmYWxzZSAhZGVmYXVsdDtcbiIsIi8vXG4vLyBWZXJ0aWNhbCBSaHl0aG1cbi8vXG4vLyBUaGlzIGlzIHRoZSBtaW5pbWFsIGFtb3VudCBvZiBjb2RlIG5lZWRlZCB0byBjcmVhdGUgdmVydGljYWwgcmh5dGhtIGluIG91clxuLy8gQ1NTLiBJZiB5b3UgYXJlIGxvb2tpbmcgZm9yIGEgcm9idXN0IHNvbHV0aW9uLCBsb29rIGF0IHRoZSBleGNlbGxlbnQgVHlwZXlcbi8vIGxpYnJhcnkuIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pwdGFyYW50by90eXBleVxuXG5AZnVuY3Rpb24gbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplLCAkdW5pdDogJGJhc2UtdW5pdCkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9IHB4IHtcbiAgICBAZXJyb3IgXCJUaGUgbm9ybWFsaXplIHZlcnRpY2FsLXJoeXRobSBtb2R1bGUgb25seSBzdXBwb3J0cyBweCBpbnB1dHMuIFRoZSB0eXBleSBsaWJyYXJ5IGlzIGJldHRlci5cIjtcbiAgfVxuICBAaWYgJHVuaXQgPT0gcmVtIHtcbiAgICBAcmV0dXJuICgkdmFsdWUgLyAkYmFzZS1mb250LXNpemUpICogMXJlbTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSBlbSB7XG4gICAgQHJldHVybiAoJHZhbHVlIC8gJHJlbGF0aXZlLXRvKSAqIDFlbTtcbiAgfVxuICBAZWxzZSB7IC8vICR1bml0ID09IHB4XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbn1cblxuQG1peGluIG5vcm1hbGl6ZS1mb250LXNpemUoJHZhbHVlLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdweCcge1xuICAgIEBlcnJvciBcIm5vcm1hbGl6ZS1mb250LXNpemUoKSBvbmx5IHN1cHBvcnRzIHB4IGlucHV0cy4gVGhlIHR5cGV5IGxpYnJhcnkgaXMgYmV0dGVyLlwiO1xuICB9XG4gIGZvbnQtc2l6ZTogbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10byk7XG59XG5cbkBtaXhpbiBub3JtYWxpemUtcmh5dGhtKCRwcm9wZXJ0eSwgJHZhbHVlcywgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUpIHtcbiAgJHZhbHVlLWxpc3Q6ICR2YWx1ZXM7XG4gICRzZXA6IHNwYWNlO1xuICBAaWYgdHlwZS1vZigkdmFsdWVzKSA9PSAnbGlzdCcge1xuICAgICRzZXA6IGxpc3Qtc2VwYXJhdG9yKCR2YWx1ZXMpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkdmFsdWUtbGlzdDogYXBwZW5kKCgpLCAkdmFsdWVzKTtcbiAgfVxuXG4gICRub3JtYWxpemVkLXZhbHVlczogKCk7XG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWUtbGlzdCB7XG4gICAgQGlmIHVuaXRsZXNzKCR2YWx1ZSkgYW5kICR2YWx1ZSAhPSAwIHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogbm9ybWFsaXplLXJoeXRobSgkYmFzZS1saW5lLWhlaWdodCwgJHJlbGF0aXZlLXRvKTtcbiAgICB9XG4gICAgJG5vcm1hbGl6ZWQtdmFsdWVzOiBhcHBlbmQoJG5vcm1hbGl6ZWQtdmFsdWVzLCAkdmFsdWUsICRzZXApO1xuICB9XG4gICN7JHByb3BlcnR5fTogJG5vcm1hbGl6ZWQtdmFsdWVzO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplLW1hcmdpbigkdmFsdWVzLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKG1hcmdpbiwgJHZhbHVlcywgJHJlbGF0aXZlLXRvKTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkZm9udC1zaXplLCAkbWluLWxpbmUtcGFkZGluZzogMnB4KSB7XG4gICRsaW5lczogY2VpbCgkZm9udC1zaXplIC8gJGJhc2UtbGluZS1oZWlnaHQpO1xuICAvLyBJZiBsaW5lcyBhcmUgY3JhbXBlZCBpbmNsdWRlIHNvbWUgZXh0cmEgbGVhZGluZy5cbiAgQGlmICgkbGluZXMgKiAkYmFzZS1saW5lLWhlaWdodCAtICRmb250LXNpemUpIDwgKCRtaW4tbGluZS1wYWRkaW5nICogMikge1xuICAgICRsaW5lczogJGxpbmVzICsgMTtcbiAgfVxuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKGxpbmUtaGVpZ2h0LCAkbGluZXMsICRmb250LXNpemUpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIGZvcmNlLWF0dHJpYnV0ZS1uZXN0aW5nLCBmb3JjZS1wc2V1ZG8tbmVzdGluZywgbm8tY29sb3ItbGl0ZXJhbHMsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCBnbG9iYWxcbi8vLy9cblxuLy8vIEZvbnQgc2l6ZSBhdHRyaWJ1dGUgYXBwbGllZCB0byBgPGh0bWw+YCBhbmQgYDxib2R5PmAuIFdlIHVzZSAxMDAlIGJ5IGRlZmF1bHQgc28gdGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSB1c2VyJ3MgYnJvd3NlciBzZXR0aW5ncy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHdpZHRoIG9mIHlvdXIgc2l0ZS4gVXNlZCBieSB0aGUgZ3JpZCB0byBkZXRlcm1pbmUgcm93IHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBhbGwgdHlwZS4gYCRnbG9iYWwtbGluZWhlaWdodGAgaXMgMjRweCB3aGlsZSBgJGdsb2JhbC1mb250LXNpemVgIGlzIDE2cHhcbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbGluZWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JzIHVzZWQgZm9yIGJ1dHRvbnMsIGNhbGxvdXRzLCBsaW5rcywgZXRjLiBUaGVyZSBtdXN0IGFsd2F5cyBiZSBhIGNvbG9yIGNhbGxlZCBgcHJpbWFyeWAuXG4vLy8gQHR5cGUgTWFwXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIHByaW1hcnk6ICMxNzc5YmEsXG4gIHNlY29uZGFyeTogIzc2NzY3NixcbiAgc3VjY2VzczogIzNhZGI3NixcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNjYzRiMzcsXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbGlnaHQgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGxpZ2h0LWdyYXk6ICNlNmU2ZTYgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBtZWRpdW0gZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJG1lZGl1bS1ncmF5OiAjY2FjYWNhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgZGFyayBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZGFyay1ncmF5OiAjOGE4YThhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgYmxhY2sgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibGFjazogIzBhMGEwYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIHdoaXRlIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kd2hpdGU6ICNmZWZlZmUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIExpc3RcbiRib2R5LWZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vLyBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBhbnRpYWxpYXNlZCB0eXBlLCB1c2luZyB0aGUgYC13ZWJraXQtZm9udC1zbW9vdGhpbmdgIGFuZCBgLW1vei1vc3gtZm9udC1zbW9vdGhpbmdgIENTUyBwcm9wZXJ0aWVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIG1hcmdpbiBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcGFkZGluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBvc2l0aW9uaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIG5vcm1hbCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIGJvbGQgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgYSBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBDYW4gYmUgb3ZlcndyaXR0ZW4gYXQgaW5kaXZpZHVhbCBtZW51IGNvbXBvbmVudCBsZXZlbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWVudS1wYWRkaW5nOiAwLjdyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIE5lc3RlZCBtYXJnaW4gZm9yIHN1Ym1lbnUuXG4kZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHRleHQgZGlyZWN0aW9uIG9mIHRoZSBDU1MuIENhbiBiZSBlaXRoZXIgYGx0cmAgb3IgYHJ0bGAuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGZvciBjb21wb25lbnRzIHRoYXQgc3VwcG9ydCBpdC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLWZsZXhib3g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVkIHJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHByb3RvdHlwZXMgaWYgYXBwbGljYWJsZVxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEJ1dHRvbiBjdXJzb3IncyB2YWx1ZSwgYGF1dG9gIGJ5IGRlZmF1bHRcbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLWJ1dHRvbi1jdXJzb3I6IGF1dG8gIWRlZmF1bHQ7XG5cbkBpZiBub3QgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICBAZXJyb3IgJ0luICRmb3VuZGF0aW9uLXBhbGV0dGUsIHlvdSBtdXN0IGhhdmUgYSBjb2xvciBuYW1lZCBcInByaW1hcnlcIi4nO1xufVxuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgdGV4dCBkaXJlY3Rpb25cbiRnbG9iYWwtbGVmdDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIHJpZ2h0LCBsZWZ0KTtcbiRnbG9iYWwtcmlnaHQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBsZWZ0LCByaWdodCk7XG5cbi8vLyBHbG9iYWwgdG9sZXJhbmNlIGZvciBjb2xvciBwaWNrIGNvbnRyYXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMCAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIGNvbG9yc1xuJHByaW1hcnktY29sb3I6IGdldC1jb2xvcihwcmltYXJ5KTtcbiRzZWNvbmRhcnktY29sb3I6IGdldC1jb2xvcihzZWNvbmRhcnkpO1xuJHN1Y2Nlc3MtY29sb3I6IGdldC1jb2xvcihzdWNjZXNzKTtcbiR3YXJuaW5nLWNvbG9yOiBnZXQtY29sb3Iod2FybmluZyk7XG4kYWxlcnQtY29sb3I6IGdldC1jb2xvcihhbGVydCk7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXMge1xuICBAaW5jbHVkZSAtemYtbm9ybWFsaXplO1xuXG4gIC8vIFRoZXNlIHN0eWxlcyBhcmUgYXBwbGllZCB0byBhIDxtZXRhPiB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdFxuICAuZm91bmRhdGlvbi1tcSB7XG4gICAgZm9udC1mYW1pbHk6ICcjey16Zi1icC1zZXJpYWxpemUoJGJyZWFrcG9pbnRzKX0nO1xuICB9XG5cbiAgaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gU2V0IGJveC1zaXppbmcgZ2xvYmFsbHkgdG8gaGFuZGxlIHBhZGRpbmcgYW5kIGJvcmRlciB3aWR0aHNcbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgIEBpZiAoJGJvZHktYW50aWFsaWFzZWQpIHtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgYXJlIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICBzZWxlY3Qge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWlkc1xuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6ICRnbG9iYWwtYnV0dG9uLWN1cnNvcjtcbiAgfVxuXG4gIC8vIFByZXZlbnQgdGV4dCBvdmVyZmxvdyBvbiBwcmVcbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIE1ha2UgcmVzZXQgaW5oZXJpdCBmb250LWZhbWlseSBpbnN0ZWFkIG9mIHNldHRpbmdzIHNhbnMtc2VyaWZcbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgY2xhc3NlcyB0byBzaG93L2hpZGUgZWxlbWVudHMgaW4gSmF2YVNjcmlwdFxuICAuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gTG9hZHMgbm9ybWFsaXplLmNzcy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiAtemYtbm9ybWFsaXplIHtcbiAgQGluY2x1ZGUgbm9ybWFsaXplKCk7XG59XG4iLCIvLyAgRm91bmRhdGlvblByZXNzIHNldHRpbmdzLlxuLy8gIEJhc2VkIG9uIEZvdW5kYXRpb24gZm9yIFNpdGVzIHY2LjQuM1xuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1xuLy8gIFRhYmxlIG9mIENvbnRlbnRzOlxuLy9cbi8vICAgMS4gR2xvYmFsXG4vLyAgIDIuIEJyZWFrcG9pbnRzXG4vLyAgIDMuIFRoZSBHcmlkXG4vLyAgIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gICA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcbi8vICAgNi4gQWJpZGVcbi8vICAgNy4gQWNjb3JkaW9uXG4vLyAgIDguIEFjY29yZGlvbiBNZW51XG4vLyAgIDkuIEJhZGdlXG4vLyAgMTAuIEJyZWFkY3J1bWJzXG4vLyAgMTEuIEJ1dHRvblxuLy8gIDEyLiBCdXR0b24gR3JvdXBcbi8vICAxMy4gQ2FsbG91dFxuLy8gIDE0LiBDYXJkXG4vLyAgMTUuIENsb3NlIEJ1dHRvblxuLy8gIDE2LiBEcmlsbGRvd25cbi8vICAxNy4gRHJvcGRvd25cbi8vICAxOC4gRHJvcGRvd24gTWVudVxuLy8gIDE5LiBGbGV4Ym94IFV0aWxpdGllc1xuLy8gIDIwLiBGb3Jtc1xuLy8gIDIxLiBMYWJlbFxuLy8gIDIyLiBNZWRpYSBPYmplY3Rcbi8vICAyMy4gTWVudVxuLy8gIDI0LiBNZXRlclxuLy8gIDI1LiBPZmYtY2FudmFzXG4vLyAgMjYuIE9yYml0XG4vLyAgMjcuIFBhZ2luYXRpb25cbi8vICAyOC4gUHJvZ3Jlc3MgQmFyXG4vLyAgMjkuIFByb3RvdHlwZSBBcnJvd1xuLy8gIDMwLiBQcm90b3R5cGUgQm9yZGVyLUJveFxuLy8gIDMxLiBQcm90b3R5cGUgQm9yZGVyLU5vbmVcbi8vICAzMi4gUHJvdG90eXBlIEJvcmRlcmVkXG4vLyAgMzMuIFByb3RvdHlwZSBEaXNwbGF5XG4vLyAgMzQuIFByb3RvdHlwZSBGb250LVN0eWxpbmdcbi8vICAzNS4gUHJvdG90eXBlIExpc3QtU3R5bGUtVHlwZVxuLy8gIDM2LiBQcm90b3R5cGUgT3ZlcmZsb3dcbi8vICAzNy4gUHJvdG90eXBlIFBvc2l0aW9uXG4vLyAgMzguIFByb3RvdHlwZSBSb3VuZGVkXG4vLyAgMzkuIFByb3RvdHlwZSBTZXBhcmF0b3Jcbi8vICA0MC4gUHJvdG90eXBlIFNoYWRvd1xuLy8gIDQxLiBQcm90b3R5cGUgU2l6aW5nXG4vLyAgNDIuIFByb3RvdHlwZSBTcGFjaW5nXG4vLyAgNDMuIFByb3RvdHlwZSBUZXh0LURlY29yYXRpb25cbi8vICA0NC4gUHJvdG90eXBlIFRleHQtVHJhbnNmb3JtYXRpb25cbi8vICA0NS4gUHJvdG90eXBlIFRleHQtVXRpbGl0aWVzXG4vLyAgNDYuIFJlc3BvbnNpdmUgRW1iZWRcbi8vICA0Ny4gUmV2ZWFsXG4vLyAgNDguIFNsaWRlclxuLy8gIDQ5LiBTd2l0Y2hcbi8vICA1MC4gVGFibGVcbi8vICA1MS4gVGFic1xuLy8gIDUyLiBUaHVtYm5haWxcbi8vICA1My4gVGl0bGUgQmFyXG4vLyAgNTQuIFRvb2x0aXBcbi8vICA1NS4gVG9wIEJhclxuLy8gIDU2LiBYeSBHcmlkXG5cbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG5cbi8vIDEuIEdsb2JhbFxuLy8gLS0tLS0tLS0tXG5cbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNTtcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogIzE3NzliYSxcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbikgIWRlZmF1bHQ7XG4kbGlnaHQtZ3JheTogI2U2ZTZlNjtcbiRtZWRpdW0tZ3JheTogI2NhY2FjYTtcbiRkYXJrLWdyYXk6ICM4YThhOGE7XG4kYmxhY2s6ICMwYTBhMGE7XG4kd2hpdGU6ICNmZWZlZmU7XG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2s7XG4kYm9keS1mb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFwiUm9ib3RvXCIsIFwiT3h5Z2VuXCIsIFwiVWJ1bnR1XCIsIFwiQ2FudGFyZWxsXCIsIFwiRmlyYSBTYW5zXCIsIFwiRHJvaWQgU2Fuc1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZTtcbiRnbG9iYWwtbWFyZ2luOiAxcmVtO1xuJGdsb2JhbC1wYWRkaW5nOiAxcmVtO1xuJGdsb2JhbC1wb3NpdGlvbjogMXJlbTtcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsO1xuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZDtcbiRnbG9iYWwtcmFkaXVzOiAwO1xuJGdsb2JhbC1tZW51LXBhZGRpbmc6IDAuN3JlbSAxcmVtO1xuJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW46IDFyZW07XG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHI7XG4kZ2xvYmFsLWZsZXhib3g6IHRydWU7XG4kZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50czogZmFsc2U7XG4kZ2xvYmFsLWJ1dHRvbi1jdXJzb3I6IGF1dG87XG4kZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlOiAwO1xuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlO1xuXG5AaW5jbHVkZSBhZGQtZm91bmRhdGlvbi1jb2xvcnM7XG5cbi8vIDIuIEJyZWFrcG9pbnRzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pO1xuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlO1xuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSk7XG5cbi8vIDMuIFRoZSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4kZ3JpZC1yb3ctd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG4kZ3JpZC1jb2x1bW4tY291bnQ6IDEyO1xuJGdyaWQtY29sdW1uLWd1dHRlcjogKFxuICBzbWFsbDogMjBweCxcbiAgbWVkaXVtOiAzMHB4LFxuKTtcbiRncmlkLWNvbHVtbi1hbGlnbi1lZGdlOiB0cnVlO1xuJGdyaWQtY29sdW1uLWFsaWFzOiAnY29sdW1ucyc7XG4kYmxvY2stZ3JpZC1tYXg6IDg7XG5cbi8vIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWw7XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiRoZWFkZXItY29sb3I6IGluaGVyaXQ7XG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuJGhlYWRlci1zdHlsZXM6IChcbiAgc21hbGw6IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDI0KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDE5KSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDE4KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE3KSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA0OCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiA0MCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAzMSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAyNSksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4pICFkZWZhdWx0O1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuJHNtYWxsLWZvbnQtc2l6ZTogODAlO1xuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNjtcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbTtcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRjb2RlLWNvbG9yOiAkYmxhY2s7XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKTtcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSk7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lO1xuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvO1xuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW07XG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW07XG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbTtcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KTtcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXk7XG4kY2l0ZS1wc2V1ZG8tY29udGVudDogJ1xcMjAxNCBcXDAwMjAnO1xuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrO1xuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApO1xuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjaztcblxuLy8gNS4gVHlwb2dyYXBoeSBIZWxwZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjU7XG4kbGVhZC1saW5laGVpZ2h0OiAxLjY7XG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXk7XG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbTtcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuJHN0YXQtZm9udC1zaXplOiAyLjVyZW07XG5cbi8vIDYuIEFiaWRlXG4vLyAtLS0tLS0tLVxuXG4kYWJpZGUtaW5wdXRzOiB0cnVlO1xuJGFiaWRlLWxhYmVsczogdHJ1ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCk7XG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpO1xuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpO1xuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuXG4vLyA3LiBBY2NvcmRpb25cbi8vIC0tLS0tLS0tLS0tLVxuXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlO1xuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtO1xuJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiRhY2NvcmRpb24tY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtO1xuXG4vLyA4LiBBY2NvcmRpb24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGFjY29yZGlvbm1lbnUtcGFkZGluZztcbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZTtcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkd2hpdGU7XG4kYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQ6IG51bGw7XG4kYWNjb3JkaW9ubWVudS1ib3JkZXI6IG51bGw7XG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kOiBudWxsO1xuJGFjY29yZGlvbi1zdWJtZW51LXRvZ2dsZS1ib3JkZXI6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoOiA0MHB4O1xuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiRhY2NvcmRpb25tZW51LWFycm93LXNpemU6IDZweDtcblxuLy8gOS4gQmFkZ2Vcbi8vIC0tLS0tLS0tXG5cbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRiYWRnZS1jb2xvcjogJHdoaXRlO1xuJGJhZGdlLWNvbG9yLWFsdDogJGJsYWNrO1xuJGJhZGdlLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kYmFkZ2UtcGFkZGluZzogMC4zZW07XG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtO1xuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtO1xuXG4vLyAxMC4gQnJlYWRjcnVtYnNcbi8vIC0tLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMDtcbiRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheTtcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbTtcbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZTtcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvcjogdHJ1ZTtcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtOiAnLyc7XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbS1ydGw6ICdcXFxcJztcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuXG4vLyAxMS4gQnV0dG9uXG4vLyAtLS0tLS0tLS0tXG5cbiRidXR0b24tZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW07XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XG4kYnV0dG9uLWZpbGw6IHNvbGlkO1xuJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKSAhZGVmYXVsdDtcbiRidXR0b24tY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2s7XG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGg6IDFweDtcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbik7XG4kYnV0dG9uLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAtMjAlO1xuJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzOiAtNTAlO1xuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcblxuLy8gMTIuIEJ1dHRvbiBHcm91cFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kYnV0dG9uZ3JvdXAtbWFyZ2luOiAxcmVtO1xuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweDtcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nO1xuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDY7XG4kYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2g6IHRydWU7XG5cbi8vIDEzLiBDYWxsb3V0XG4vLyAtLS0tLS0tLS0tLVxuXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JTtcbiRjYWxsb3V0LWJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGJsYWNrLCAwLjI1KTtcbiRjYWxsb3V0LW1hcmdpbjogMCAwIDFyZW0gMDtcbiRjYWxsb3V0LXBhZGRpbmc6IDFyZW07XG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQ6ICRib2R5LWJhY2tncm91bmQ7XG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGNhbGxvdXQtbGluay10aW50OiAzMCU7XG5cbi8vIDE0LiBDYXJkXG4vLyAtLS0tLS0tLVxuXG4kY2FyZC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kY2FyZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRjYXJkLWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuJGNhcmQtc2hhZG93OiBub25lO1xuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kY2FyZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcblxuLy8gMTUuIENsb3NlIEJ1dHRvblxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcDtcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxuICBzbWFsbDogMC42NnJlbSxcbiAgbWVkaXVtOiAxcmVtLFxuKTtcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IChcbiAgc21hbGw6IDAuMzNlbSxcbiAgbWVkaXVtOiAwLjVyZW0sXG4pO1xuJGNsb3NlYnV0dG9uLXNpemU6IChcbiAgc21hbGw6IDEuNWVtLFxuICBtZWRpdW06IDJlbSxcbik7XG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMTtcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheTtcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrO1xuXG4vLyAxNi4gRHJpbGxkb3duXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhcjtcbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlO1xuJGRyaWxsZG93bi1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcbiRkcmlsbGRvd24tbmVzdGVkLW1hcmdpbjogMDtcbiRkcmlsbGRvd24tYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZztcbiRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4O1xuXG4vLyAxNy4gRHJvcGRvd25cbi8vIC0tLS0tLS0tLS0tLVxuXG4kZHJvcGRvd24tcGFkZGluZzogMXJlbTtcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRkcm9wZG93bi1mb250LXNpemU6IDFyZW07XG4kZHJvcGRvd24td2lkdGg6IDMwMHB4O1xuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kZHJvcGRvd24tc2l6ZXM6IChcbiAgdGlueTogMTAwcHgsXG4gIHNtYWxsOiAyMDBweCxcbiAgbGFyZ2U6IDQwMHB4LFxuKTtcblxuLy8gMTguIERyb3Bkb3duIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlO1xuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvciAhZGVmYXVsdDtcbiRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTogNnB4O1xuJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nOiAxLjVyZW07XG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHg7XG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LWJhY2tncm91bmQ7XG4kZHJvcGRvd25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luOiAwO1xuJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc6ICRkcm9wZG93bm1lbnUtcGFkZGluZztcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGRyb3Bkb3duLW1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICRsaWdodC1ncmF5O1xuJGRyb3Bkb3duLW1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogdHJhbnNwYXJlbnQ7XG5cbi8vIDE5LiBGbGV4Ym94IFV0aWxpdGllc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRmbGV4LXNvdXJjZS1vcmRlcmluZy1jb3VudDogNjtcbiRmbGV4Ym94LXJlc3BvbnNpdmUtYnJlYWtwb2ludHM6IHRydWU7XG5cbi8vIDIwLiBGb3Jtc1xuLy8gLS0tLS0tLS0tXG5cbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApO1xuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCk7XG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMyk7XG4kZm9ybS1zcGFjaW5nOiByZW0tY2FsYygxNik7XG4kaGVscHRleHQtY29sb3I6ICRibGFjaztcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWM7XG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2s7XG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW07XG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrO1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuODtcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlO1xuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheTtcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRpbnB1dC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRpbnB1dC1saW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGU7XG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXk7XG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4kaW5wdXQtcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDI7XG4kaW5wdXQtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIDAuMSk7XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkO1xuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZTtcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGZvcm0tYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDIxLiBMYWJlbFxuLy8gLS0tLS0tLS0tXG5cbiRsYWJlbC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRsYWJlbC1jb2xvcjogJHdoaXRlO1xuJGxhYmVsLWNvbG9yLWFsdDogJGJsYWNrO1xuJGxhYmVsLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kbGFiZWwtZm9udC1zaXplOiAwLjhyZW07XG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW07XG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjIuIE1lZGlhIE9iamVjdFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDogMTAwJTtcblxuLy8gMjMuIE1lbnVcbi8vIC0tLS0tLS0tXG5cbiRtZW51LW1hcmdpbjogMDtcbiRtZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luO1xuJG1lbnUtaXRlbXMtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kbWVudS1zaW1wbGUtbWFyZ2luOiAxcmVtO1xuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICR3aGl0ZTtcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KTtcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbTtcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XG4kbWVudS1zdGF0ZS1iYWNrLWNvbXBhdDogdHJ1ZTtcbiRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0OiB0cnVlO1xuJG1lbnUtaWNvbnMtYmFjay1jb21wYXQ6IHRydWU7XG5cbi8vIDI0LiBNZXRlclxuLy8gLS0tLS0tLS0tXG5cbiRtZXRlci1oZWlnaHQ6IDFyZW07XG4kbWV0ZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRtZXRlci1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kbWV0ZXItZmlsbC1nb29kOiAkc3VjY2Vzcy1jb2xvcjtcbiRtZXRlci1maWxsLW1lZGl1bTogJHdhcm5pbmctY29sb3I7XG4kbWV0ZXItZmlsbC1iYWQ6ICRhbGVydC1jb2xvcjtcblxuLy8gMjUuIE9mZi1jYW52YXNcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRvZmZjYW52YXMtc2l6ZXM6IChcbiAgc21hbGw6IDI1MHB4LFxuKTtcbiRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXM6IChcbiAgc21hbGw6IDI1MHB4LFxuKTtcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogJGRhcmstbmF2LWNvbG9yO1xuJG9mZmNhbnZhcy1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjcpO1xuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZTogMjBweDtcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSk7XG4kb2ZmY2FudmFzLW92ZXJsYXktemluZGV4OiAxMTtcbiRvZmZjYW52YXMtcHVzaC16aW5kZXg6IDEyO1xuJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogMTM7XG4kb2ZmY2FudmFzLXJldmVhbC16aW5kZXg6IDEyO1xuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cztcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2U7XG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZTtcbiRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kOiByZ2JhKCR3aGl0ZSwgMC4yNSk7XG4kbWFpbmNvbnRlbnQtY2xhc3M6ICdvZmYtY2FudmFzLWNvbnRlbnQnO1xuXG4vLyAyNi4gT3JiaXRcbi8vIC0tLS0tLS0tLVxuXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b206IDAuOHJlbTtcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNhcHRpb24tcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLXppbmRleDogMTA7XG5cbi8vIDI3LiBQYWdpbmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrO1xuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKTtcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSk7XG4kcGFnaW5hdGlvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50OiAkcHJpbWFyeS1jb2xvcjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogJHdoaXRlO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7XG4kcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtOiBmYWxzZTtcbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZTtcblxuLy8gMjguIFByb2dyZXNzIEJhclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxcmVtO1xuJHByb2dyZXNzLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRwcm9ncmVzcy1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRwcm9ncmVzcy1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyOS4gUHJvdG90eXBlIEFycm93XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9uczogKFxuICBkb3duLFxuICB1cCxcbiAgcmlnaHQsXG4gIGxlZnRcbik7XG4kcHJvdG90eXBlLWFycm93LXNpemU6IDAuNDM3NXJlbTtcbiRwcm90b3R5cGUtYXJyb3ctY29sb3I6ICRibGFjaztcblxuLy8gMzAuIFByb3RvdHlwZSBCb3JkZXItQm94XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1ib3JkZXItYm94LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcblxuLy8gMzEuIFByb3RvdHlwZSBCb3JkZXItTm9uZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWJvcmRlci1ub25lLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcblxuLy8gMzIuIFByb3RvdHlwZSBCb3JkZXJlZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWJvcmRlcmVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtYm9yZGVyLXdpZHRoOiByZW0tY2FsYygxKTtcbiRwcm90b3R5cGUtYm9yZGVyLXR5cGU6IHNvbGlkO1xuJHByb3RvdHlwZS1ib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcblxuLy8gMzMuIFByb3RvdHlwZSBEaXNwbGF5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1kaXNwbGF5LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtZGlzcGxheTogKFxuICBpbmxpbmUsXG4gIGlubGluZS1ibG9jayxcbiAgYmxvY2ssXG4gIHRhYmxlLFxuICB0YWJsZS1jZWxsXG4pO1xuXG4vLyAzNC4gUHJvdG90eXBlIEZvbnQtU3R5bGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1mb250LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtd2lkZS1sZXR0ZXItc3BhY2luZzogcmVtLWNhbGMoNCk7XG4kcHJvdG90eXBlLWZvbnQtbm9ybWFsOiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kcHJvdG90eXBlLWZvbnQtYm9sZDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuLy8gMzUuIFByb3RvdHlwZSBMaXN0LVN0eWxlLVR5cGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtbGlzdC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkOiAoXG4gIGRpc2MsXG4gIGNpcmNsZSxcbiAgc3F1YXJlXG4pO1xuJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWQ6IChcbiAgZGVjaW1hbCxcbiAgbG93ZXItYWxwaGEsXG4gIGxvd2VyLWxhdGluLFxuICBsb3dlci1yb21hbixcbiAgdXBwZXItYWxwaGEsXG4gIHVwcGVyLWxhdGluLFxuICB1cHBlci1yb21hblxuKTtcblxuLy8gMzYuIFByb3RvdHlwZSBPdmVyZmxvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLW92ZXJmbG93LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtb3ZlcmZsb3c6IChcbiAgdmlzaWJsZSxcbiAgaGlkZGVuLFxuICBzY3JvbGxcbik7XG5cbi8vIDM3LiBQcm90b3R5cGUgUG9zaXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1wb3NpdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXBvc2l0aW9uOiAoXG4gIHN0YXRpYyxcbiAgcmVsYXRpdmUsXG4gIGFic29sdXRlLFxuICBmaXhlZFxuKTtcbiRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleDogOTc1O1xuXG4vLyAzOC4gUHJvdG90eXBlIFJvdW5kZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXJvdW5kZWQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzOiByZW0tY2FsYygzKTtcblxuLy8gMzkuIFByb3RvdHlwZSBTZXBhcmF0b3Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc2VwYXJhdG9yLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWFsaWduOiBjZW50ZXI7XG4kcHJvdG90eXBlLXNlcGFyYXRvci1oZWlnaHQ6IHJlbS1jYWxjKDIpO1xuJHByb3RvdHlwZS1zZXBhcmF0b3Itd2lkdGg6IDNyZW07XG4kcHJvdG90eXBlLXNlcGFyYXRvci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRwcm90b3R5cGUtc2VwYXJhdG9yLW1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luO1xuXG4vLyA0MC4gUHJvdG90eXBlIFNoYWRvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1zaGFkb3ctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1ib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsMCwwLC4xNiksXG4gICAgICAgICAgICAgICAgICAgICAgIDAgMnB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMik7XG5cbi8vIDQxLiBQcm90b3R5cGUgU2l6aW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXNpemluZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXNpemluZzogKFxuICB3aWR0aCxcbiAgaGVpZ2h0XG4pO1xuJHByb3RvdHlwZS1zaXplczogKFxuICAyNTogMjUlLFxuICA1MDogNTAlLFxuICA3NTogNzUlLFxuICAxMDA6IDEwMCVcbik7XG5cbi8vIDQyLiBQcm90b3R5cGUgU3BhY2luZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc3BhY2luZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXNwYWNlcnMtY291bnQ6IDM7XG5cbi8vIDQzLiBQcm90b3R5cGUgVGV4dC1EZWNvcmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWRlY29yYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS10ZXh0LWRlY29yYXRpb246IChcbiAgb3ZlcmxpbmUsXG4gIHVuZGVybGluZSxcbiAgbGluZS10aHJvdWdoLFxuKTtcblxuLy8gNDQuIFByb3RvdHlwZSBUZXh0LVRyYW5zZm9ybWF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS10cmFuc2Zvcm1hdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb246IChcbiAgbG93ZXJjYXNlLFxuICB1cHBlcmNhc2UsXG4gIGNhcGl0YWxpemVcbik7XG5cbi8vIDQ1LiBQcm90b3R5cGUgVGV4dC1VdGlsaXRpZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS11dGlsaXRpZXMtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS10ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuLy8gNDYuIFJlc3BvbnNpdmUgRW1iZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KTtcbiRyZXNwb25zaXZlLWVtYmVkLXJhdGlvczogKFxuICBkZWZhdWx0OiA0IGJ5IDMsXG4gIHdpZGVzY3JlZW46IDE2IGJ5IDksXG4pO1xuXG4vLyA0Ny4gUmV2ZWFsXG4vLyAtLS0tLS0tLS0tXG5cbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlO1xuJHJldmVhbC13aWR0aDogNjAwcHg7XG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRyZXZlYWwtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kcmV2ZWFsLXppbmRleDogMTAwNTtcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSk7XG5cbi8vIDQ4LiBTbGlkZXJcbi8vIC0tLS0tLS0tLS1cblxuJHNsaWRlci13aWR0aC12ZXJ0aWNhbDogMC41cmVtO1xuJHNsaWRlci10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiRzbGlkZXItaGVpZ2h0OiAwLjVyZW07XG4kc2xpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJHNsaWRlci1maWxsLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRzbGlkZXItaGFuZGxlLWhlaWdodDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtd2lkdGg6IDEuNHJlbTtcbiRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xuJHNsaWRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA0OS4gU3dpdGNoXG4vLyAtLS0tLS0tLS0tXG5cbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3I7XG4kc3dpdGNoLWhlaWdodDogMnJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXRpbnk6IDEuNXJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXNtYWxsOiAxLjc1cmVtO1xuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbTtcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbjtcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbTtcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG5cbi8vIDUwLiBUYWJsZVxuLy8gLS0tLS0tLS0tXG5cbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFibGUtY29sb3Itc2NhbGU6IDUlO1xuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApO1xuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJTtcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZTtcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXN0cmlwZTogZXZlbjtcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKTtcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2U7XG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xuXG4vLyA1MS4gVGFic1xuLy8gLS0tLS0tLS1cblxuJHRhYi1tYXJnaW46IDA7XG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXk7XG4kdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kdGFiLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlO1xuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xuJHRhYi1leHBhbmQtbWF4OiA2O1xuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5O1xuJHRhYi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW07XG5cbi8vIDUyLiBUaHVtYm5haWxcbi8vIC0tLS0tLS0tLS0tLS1cblxuJHRodW1ibmFpbC1ib3JkZXI6IHNvbGlkIDRweCAkd2hpdGU7XG4kdGh1bWJuYWlsLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHRodW1ibmFpbC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4yKTtcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpO1xuJHRodW1ibmFpbC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0O1xuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1My4gVGl0bGUgQmFyXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAkZGFyay1uYXYtY29sb3I7XG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZTtcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW07XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZDtcbiR0aXRsZWJhci1pY29uLWNvbG9yOiAkd2hpdGU7XG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5O1xuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbTtcblxuLy8gNTQuIFRvb2x0aXBcbi8vIC0tLS0tLS0tLS0tXG5cbiRoYXMtdGlwLWN1cnNvcjogaGVscDtcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkZGFyay1ncmF5O1xuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZTtcbiR0b29sdGlwLXBhZGRpbmc6IDAuNzVyZW07XG4kdG9vbHRpcC1tYXgtd2lkdGg6IDEwcmVtO1xuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuJHRvb2x0aXAtcGlwLXdpZHRoOiAwLjc1cmVtO1xuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjY7XG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1NS4gVG9wIEJhclxuLy8gLS0tLS0tLS0tLS1cblxuJHRvcGJhci1wYWRkaW5nOiAwO1xuJHRvcGJhci1iYWNrZ3JvdW5kOiAkZGFyay1uYXYtY29sb3I7XG4kdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDogJHRvcGJhci1iYWNrZ3JvdW5kO1xuJHRvcGJhci10aXRsZS1zcGFjaW5nOiAwLjVyZW0gMXJlbSAwLjVyZW0gMDtcbiR0b3BiYXItaW5wdXQtd2lkdGg6IDIwMHB4O1xuJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bTtcblxuLy8gNTYuIFh5IEdyaWRcbi8vIC0tLS0tLS0tLS0tXG5cbiR4eS1ncmlkOiB0cnVlO1xuJGdyaWQtY29udGFpbmVyOiAkZ2xvYmFsLXdpZHRoO1xuJGdyaWQtY29sdW1uczogMTI7XG4kZ3JpZC1tYXJnaW4tZ3V0dGVyczogKFxuICBzbWFsbDogMjBweCxcbiAgbWVkaXVtOiAzMHB4XG4pO1xuJGdyaWQtcGFkZGluZy1ndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycztcbiRncmlkLWNvbnRhaW5lci1wYWRkaW5nOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnM7XG4kZ3JpZC1jb250YWluZXItbWF4OiAkZ2xvYmFsLXdpZHRoO1xuJHh5LWJsb2NrLWdyaWQtbWF4OiA4OyIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhbiBpbm5lciBib3gtc2hhZG93IGZvciBvbmx5IG9uZSBzaWRlXG4vLy8gXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2lkZSAtIFNpZGUgdGhlIHNoYWRvdyBpcyBzdXBwb3NlZCB0byBhcHBlYXIuIENhbiBiZSBgdG9wYCwgYGxlZnRgLCBgcmlnaHRgIG9yIGBib3R0b21gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSAtIFdpZHRoIGZvciB0aGUgdGFyZ2V0IHNpZGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3Igb2YgdGhlIHNoYWRvdy5cbkBtaXhpbiBpbm5lci1zaWRlLXNoYWRvdyhcbiAgJHNpZGU6IGJvdHRvbSxcbiAgJHNpemU6IDIwcHgsXG4gICRjb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpXG4pIHtcblxuICAkaGVscGVyOiByb3VuZCgkc2l6ZSAqIDAuNjUpO1xuXG4gIEBpZiAoJHNpZGUgPT0gdG9wKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAkaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGxlZnQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAkaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gcmlnaHQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAoLTEpKiRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBib3R0b20pIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICgtMSkqJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cmlhbmdsZS1zaXplIC0gV2lkdGggb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICR0cmlhbmdsZS1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBEaXJlY3Rpb24gdGhlIHRyaWFuZ2xlIHBvaW50cy4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuQG1peGluIGNzcy10cmlhbmdsZShcbiAgJHRyaWFuZ2xlLXNpemUsXG4gICR0cmlhbmdsZS1jb2xvcixcbiAgJHRyaWFuZ2xlLWRpcmVjdGlvblxuKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuXG4gIGJvcmRlcjogaW5zZXQgJHRyaWFuZ2xlLXNpemU7XG5cbiAgY29udGVudDogJyc7XG5cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB1cCkge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsyMHB4XSAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsxNnB4XSAtIEhlaWdodCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXJzIFszXSAtIE51bWJlciBvZiBiYXJzIGluIHRoZSBpY29uLlxuQG1peGluIGhhbWJ1cmdlcihcbiAgJGNvbG9yOiAkYmxhY2ssXG4gICRjb2xvci1ob3ZlcjogJGRhcmstZ3JheSxcbiAgJHdpZHRoOiAyMHB4LFxuICAkaGVpZ2h0OiAxNnB4LFxuICAkd2VpZ2h0OiAycHgsXG4gICRiYXJzOiAzXG4pIHtcbiAgLy8gYm94LXNoYWRvdyBDU1Mgb3V0cHV0XG4gICRzaGFkb3c6ICgpO1xuICAkaG92ZXItc2hhZG93OiAoKTtcblxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcbiAgJHNwYWNpbmc6ICgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycykpIC8gKCRiYXJzIC0gMSk7XG5cbiAgQGlmIHVuaXQoJHNwYWNpbmcpID09ICdweCcge1xuICAgICRzcGFjaW5nOiBmbG9vcigkc3BhY2luZyk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICRzaGFkb3c6IGFwcGVuZCgkc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3IsIGNvbW1hKTtcbiAgfVxuXG4gIC8vIEljb24gY29udGFpbmVyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBJY29uIGJhcnNcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHdlaWdodDtcblxuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuXG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcbiAgJHJnYjogJ3JnYiUyOCN7cm91bmQocmVkKCRjb2xvcikpfSwgI3tyb3VuZChncmVlbigkY29sb3IpKX0sICN7cm91bmQoYmx1ZSgkY29sb3IpKX0lMjknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHdpZHRoPSczMicgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDMyIDI0Jz48cG9seWdvbiBwb2ludHM9JzAsMCAzMiwwIDE2LDI0JyBzdHlsZT0nZmlsbDogI3skcmdifSc+PC9wb2x5Z29uPjwvc3ZnPlwiKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjBcXDApIHtcbiAgICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA2MCUge1xuICAgICAgLy8gV2hpdGUgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBCbGFjayB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU1CSlJFRlVlTnJFbGxzT2hDQU1SVnN6QzlJbHpVN0tDbVZIVEpzb01XWU1VdHB5djlCZ2J1WFFCNVpTZGdCWVlZNHljZ0Jpdms4S1lGc1FNZk1pVFRCUDRvM25VekNLek9hYkxKYkx5Mi9nMzFldkdrQWdpblI0L1plZ0tINXFYM2JKQ3NjQTN0MHgza2dPNXRRRnloaEZmNTB4UnFGTGJ5TVVOSlF6Z3lqR1Mvd2dDcHZLcWtSQnB1V3JFNFY5ZCsxRTRkUFVYcUlnMTA3U1FPRS8yRFJReE13VER5Z0lJblZERVQ5VDNsQ29qLzZqL1ZDbUdqWk9sMmxLcFo4QUF3RFFQN3pJaW1ER0ZRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIHRoZSBtaWNybyBjbGVhcmZpeCBoYWNrIHBvcHVsYXJpemVkIGJ5IE5pY29sYXMgR2FsbGFnaGVyLiBJbmNsdWRlIHRoaXMgbWl4aW4gb24gYSBjb250YWluZXIgaWYgaXRzIGNoaWxkcmVuIGFyZSBhbGwgZmxvYXRlZCwgdG8gZ2l2ZSB0aGUgY29udGFpbmVyIGEgcHJvcGVyIGhlaWdodC5cbi8vLyBUaGUgY2xlYXJmaXggaXMgYXVnbWVudGVkIHdpdGggc3BlY2lmaWMgc3R5bGVzIHRvIHByZXZlbnQgYm9yZGVycyBpbiBmbGV4Ym94IGVudmlyb25tZW50c1xuLy8vIEBsaW5rIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrLyBNaWNybyBDbGVhcmZpeCBIYWNrXG4vLy8gQGxpbmsgaHR0cDovL2RhbmlzYWRlc2lnbmVyLmNvbS9ibG9nL2ZsZXhib3gtY2xlYXItZml4LXBzZXVkby1lbGVtZW50cy8gRmxleGJveCBmaXhcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vLy8gQWRkcyBDU1MgZm9yIGEgXCJxdWFudGl0eSBxdWVyeVwiIHNlbGVjdG9yIHRoYXQgYXV0b21hdGljYWxseSBzaXplcyBlbGVtZW50cyBiYXNlZCBvbiBob3cgbWFueSB0aGVyZSBhcmUgaW5zaWRlIGEgY29udGFpbmVyLlxuLy8vIEBsaW5rIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWNzcyBRdWFudGl0eSBRdWVyaWVzIGZvciBDU1Ncbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IC0gTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGV0ZWN0LiBUaGUgaGlnaGVyIHRoaXMgbnVtYmVyIGlzLCB0aGUgbW9yZSBDU1MgdGhhdCdzIHJlcXVpcmVkIHRvIGNvdmVyIGVhY2ggbnVtYmVyIG9mIGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gW2xpXSAtIFRhZyB0byB1c2UgZm9yIHNpYmxpbmcgc2VsZWN0b3JzLlxuQG1peGluIGF1dG8td2lkdGgoJG1heCwgJGVsZW06IGxpKSB7XG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJG1heCB7XG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQsXG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQgfiAjeyRlbGVtfSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgxIC8gJGkpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyB0aGUgZm9jdXMgcmluZyBhcm91bmQgYW4gZWxlbWVudCB3aGVuIGEgbW91c2UgaW5wdXQgaXMgZGV0ZWN0ZWQuXG5AbWl4aW4gZGlzYWJsZS1tb3VzZS1vdXRsaW5lIHtcbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddICYge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgc3RpbGwgYWNjZXNzaWJsZSB0byBrZXlib2FyZHMgYW5kIGFzc2lzdGl2ZSBkZXZpY2VzLlxuLy8vIEBsaW5rIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHkgSGlkaW5nIENvbnRlbnQgZm9yIEFjY2Vzc2liaWxpdHlcbi8vLyBAbGluayBodHRwOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDE2LzEwLzEzL2Nzcy1oaWRlLWFuZC1zZWVrL1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsMCwwLDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8vIFJldmVyc2VzIHRoZSBDU1Mgb3V0cHV0IGNyZWF0ZWQgYnkgdGhlIGBlbGVtZW50LWludmlzaWJsZSgpYCBtaXhpbi5cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBjbGlwLXBhdGg6IG5vbmU7XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIGl0ZXJhdGUgb3ZlciBicmVha3BvaW50cyB3aXRob3V0IGRvaW5nIHRoZSBtZWRpYSBxdWVyeSBpdHNlbGYuIFVzZWZ1bCBmb3IgbW9yZSBjb21wbGV4IG1lZGlhIHF1ZXJ5IGdlbmVyYXRpb24gYXMgaW4gdGhlIG1hcmdpbiBncmlkLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiB0cnVlLCAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHM6IHRydWUpIHtcbiAgJGxpc3Q6ICRicmVha3BvaW50LWNsYXNzZXM7XG5cbiAgQGlmIG5vdCAkc21hbGwge1xuICAgICRsaXN0OiBzbC1yZW1vdmUoJGxpc3QsICQtemYtemVyby1icmVha3BvaW50KTtcbiAgfVxuXG4gIEBlYWNoICRuYW1lIGluICRsaXN0IHtcbiAgICAkLXpmLXNpemU6ICRuYW1lICFnbG9iYWw7XG5cbiAgICBAaWYgJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgdGhlIGBAY29udGVudGAgcGFzc2VkIHRvIHRoZSBtaXhpbiB3aXRoIGEgdmFsdWUgYCQtemYtYnAtdmFsdWVgIHJlbGF0ZWQgdG8gYSBicmVha3BvaW50LCBkZXBlbmRpbmcgb24gdGhlIGAkbmFtZWAgcGFyYW1ldGVyOlxuLy8vIC0gRm9yIGEgc2luZ2xlIHZhbHVlLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhpcyB2YWx1ZS5cbi8vLyAtIEZvciBhIGJyZWFrcG9pbnQgbmFtZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgLlxuLy8vIC0gRm9yIFwiYXV0b1wiLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAgYW5kIGlzIHBhc3NlZCB0byBgQGNvbnRlbnRgLCB3aGljaCBpcyBtYWRlIHJlc3BvbnNpdmUgZm9yIGVhY2ggYnJlYWtwb2ludCBvZiBgJG1hcGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8QXJyYXl8S2V5d29yZH0gJG5hbWUgW2F1dG9dIC0gU2luZ2xlIHZhbHVlLCBicmVha3BvaW50IG5hbWUsIG9yIGxpc3Qgb2YgYnJlYWtwb2ludCBuYW1lcyB0byB1c2UuIFwiYXV0b1wiIGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gTWFwIG9mIGJyZWFrcG9pbnRzIGFuZCB2YWx1ZXMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS5cbkBtaXhpbiAtemYtYnJlYWtwb2ludC12YWx1ZShcbiAgJG5hbWU6IGF1dG8sXG4gICRtYXA6IG51bGxcbikge1xuICBAaWYgJG5hbWUgPT0gYXV0byBhbmQgdHlwZS1vZigkbWFwKSA9PSAnbWFwJyB7XG4gICAgLy8gXCJhdXRvXCJcbiAgICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRrKSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCR2LCAkbWFwKSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIGJyZWFrcG9pbnQgbmFtZVxuICAgIEBpZiB0eXBlLW9mKCRuYW1lKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkbmFtZTogLXpmLWdldC1icC12YWwoJG1hcCwgJG5hbWUpO1xuICAgIH1cblxuICAgIC8vIGJyZWFrcG9pbnQgdmFsdWVcbiAgICAkLXpmLWJwLXZhbHVlOiAkbmFtZSAhZ2xvYmFsO1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3IoJHNpemUpIHtcbiAgJHNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICRzaXplOiAtemYtYnAtdG8tZW0oJHNpemUpIC0gKDEgLyAxNik7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IHdpdGhpbiBhIGNlcnRhaW4gYnJlYWtwb2ludC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yLW9ubHkoJHNpemUpIHtcbiAgJGxvd2VyLWJvdW5kLXNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICR1cHBlci1ib3VuZC1zaXplOiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG5cbiAgLy8gbW9yZSBvZnRlbiB0aGFuIG5vdCB0aGlzIHdpbGwgYmUgY29ycmVjdCwganVzdCBvbmUgdGltZSByb3VuZCB0aGUgbG9vcCBpdCB3b24ndCBzbyBzZXQgaW4gc2NvcGUgaGVyZVxuICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSkgLSAoMSAvIDE2KTtcbiAgLy8gdGVzdCBhY3R1YWwgbG93ZXItYm91bmQtc2l6ZSwgaWYgMCBzZXQgaXQgdG8gMGVtXG4gIEBpZiBzdHJpcC11bml0KCRsb3dlci1ib3VuZC1zaXplKSA9PSAwIHtcbiAgICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSk7XG4gIH1cblxuICBAaWYgJHVwcGVyLWJvdW5kLXNpemUgPT0gbnVsbCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAkdXBwZXItYm91bmQ6IC16Zi1icC10by1lbSgkdXBwZXItYm91bmQtc2l6ZSk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR1cHBlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3IoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yLW9ubHkoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBvbmx5KSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcyB7XG4gIC8vIEJhc2ljIGhpZGluZyBjbGFzc2VzXG4gIC5oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaW52aXNpYmxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvLyBSZXNwb25zaXZlIHZpc2liaWxpdHkgY2xhc3Nlc1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLmhpZGUtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGlkZS1mb3IoJHNpemUpO1xuICAgICAgfVxuXG4gICAgICAuc2hvdy1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG93LWZvcigkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhpZGUtZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgaGlkZS1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgc2hvdy1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2NyZWVuIHJlYWRlciB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgLy8gTmVlZCBhIFwiaGlkZS1mb3Itc3JcIiBjbGFzcz8gQWRkIGFyaWEtaGlkZGVuPSd0cnVlJyB0byB0aGUgZWxlbWVudFxuICAuc2hvdy1mb3Itc3IsXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgfVxuXG4gIC8vIE9ubHkgZGlzcGxheSB0aGUgZWxlbWVudCB3aGVuIGl0J3MgZm9jdXNlZFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZS1vZmY7XG4gICAgfVxuICB9XG5cbiAgLy8gTGFuZHNjYXBlIGFuZCBwb3J0cmFpdCB2aXNpYmlsaXR5XG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxhcmdlc3QgbmFtZWQgYnJlYWtwb2ludCBpbiB3aGljaCB0byBpbmNsdWRlIHByaW50IGFzIGEgbWVkaWEgdHlwZVxuLy8vIEB0eXBlIEtleXdvcmRcbiRwcmludC1icmVha3BvaW50OiBsYXJnZSAhZGVmYXVsdDtcblxuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHNtYWxsICFkZWZhdWx0O1xuXG4kLXpmLWJyZWFrcG9pbnRzLWtleXM6IG1hcC10by1saXN0KCRicmVha3BvaW50cywgJ2tleXMnKTtcblxuQGlmIG50aChtYXAtdmFsdWVzKCRicmVha3BvaW50cyksIDEpICE9IDAge1xuICBAZXJyb3IgJ1lvdXIgc21hbGxlc3QgYnJlYWtwb2ludCAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludHMpIG11c3QgYmUgc2V0IHRvIFwiMFwiLic7XG59XG5AZWxzZSB7XG4gICQtemYtemVyby1icmVha3BvaW50OiBudGgobWFwLWtleXMoJGJyZWFrcG9pbnRzKSwgMSk7XG59XG5cbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cbi8vLyBAdHlwZSBMaXN0XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsOiAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWF4OiAwO1xuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAkZGlyOiBpZihsZW5ndGgoJHZhbCkgPiAxLCBudGgoJHZhbCwgMiksIHVwKTtcbiAgLy8gRXZlbnR1YWwgb3V0cHV0XG4gICRzdHI6ICcnO1xuICAvLyBJcyBpdCBhIG5hbWVkIG1lZGlhIHF1ZXJ5P1xuICAkbmFtZWQ6IGZhbHNlO1xuXG4gIC8vIE9yaWVudGF0aW9uIG1lZGlhIHF1ZXJpZXMgaGF2ZSBhIHVuaXF1ZSBzeW50YXhcbiAgQGlmICRicCA9PSAnbGFuZHNjYXBlJyBvciAkYnAgPT0gJ3BvcnRyYWl0JyB7XG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcbiAgfVxuICBAZWxzZSBpZiAkYnAgPT0gJ3JldGluYScge1xuICAgIEByZXR1cm4gJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknO1xuICB9XG5cbiAgLy8gVHJ5IHRvIHB1bGwgYSBuYW1lZCBicmVha3BvaW50IG91dCBvZiB0aGUgJGJyZWFrcG9pbnRzIG1hcFxuICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnApIHtcbiAgICAgIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgICAgICRicC1tYXg6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICB9XG5cbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICAkbmFtZWQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicDogMDtcbiAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IFwiI3skdmFsfVwiIGlzIG5vdCBkZWZpbmVkIGluIHlvdXIgJGJyZWFrcG9pbnRzIHNldHRpbmcuJztcbiAgICB9XG4gIH1cblxuICAvLyBDb252ZXJ0IGFueSBwaXhlbCwgcmVtLCBvciB1bml0bGVzcyB2YWx1ZSB0byBlbVxuICAkYnA6IC16Zi1icC10by1lbSgkYnApO1xuICBAaWYgJGJwLW1heCB7XG4gICAgJGJwLW1heDogLXpmLWJwLXRvLWVtKCRicC1tYXgpIC0gKDEvMTYpO1xuICB9XG5cbiAgLy8gQ29uZGl0aW9ucyB0byBza2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uXG4gIC8vIC0gSXQncyBhIG5hbWVkIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgZG93blwiIG9yIFwiMCB1cFwiXG4gIC8vIC0gSXQncyBhIG51bWVyaWMgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBcIiArIGFueXRoaW5nXG4gIEBpZiAkYnAgPiAwZW0gb3IgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgIC8vIGBvbmx5YCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pIGFuZCAobWF4LXdpZHRoOiBuKWBcbiAgICBAaWYgJGRpciA9PSAnb25seScge1xuICAgICAgLy8gT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIFwib25seVwiIHJhbmdlXG4gICAgICBAaWYgJG5hbWVkID09IHRydWUge1xuICAgICAgICAvLyBPbmx5IHVzZSBcIm1pbi13aWR0aFwiIGlmIHRoZSBmbG9vciBpcyBncmVhdGVyIHRoYW4gMFxuICAgICAgICBAaWYgJGJwID4gMGVtIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuXG4gICAgICAgICAgLy8gT25seSBhZGQgXCJhbmRcIiB0byB0aGUgbWVkaWEgcXVlcnkgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAgICRzdHI6ICRzdHIgKyAnIGFuZCAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWF4LXdpZHRoXCIgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRicC1tYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGBkb3duYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtYXgtd2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICRtYXg6IGlmKCRuYW1lZCwgJGJwLW1heCwgJGJwKTtcblxuICAgICAgLy8gU2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvbiBpZiBpbnB1dCB2YWx1ZSBpcyBleGFjdGx5IFwiMCBkb3duXCIsXG4gICAgICAvLyB1bmxlc3MgdGhlIGZ1bmN0aW9uIHdhcyBjYWxsZWQgYXMgXCJzbWFsbCBkb3duXCIsIGluIHdoaWNoIGNhc2UgaXQncyBqdXN0IFwic21hbGwgb25seVwiXG4gICAgICBAaWYgJG5hbWVkIG9yICRicCA+IDBlbSB7XG4gICAgICAgIEBpZiAkbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYHVwYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRicCA+IDBlbSB7XG4gICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcbi8vLyAgLSBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGxvb2sgZm9yIGl0IGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG4vLy9cbi8vLyBAb3V0cHV0IElmIHRoZSBicmVha3BvaW50IGlzIFwiMHB4IGFuZCBsYXJnZXJcIiwgb3V0cHV0cyB0aGUgY29udGVudCBhcy1pcy4gT3RoZXJ3aXNlLCBvdXRwdXRzIHRoZSBjb250ZW50IHdyYXBwZWQgaW4gYSBtZWRpYSBxdWVyeS5cbkBtaXhpbiBicmVha3BvaW50KCR2YWx1ZSkge1xuICAkc3RyOiBicmVha3BvaW50KCR2YWx1ZSk7XG4gICRicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkdmFsdWUpO1xuICAkcGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICRwcmludC1icmVha3BvaW50KTtcblxuICAkb2xkLXpmLXNpemU6IG51bGw7XG5cbiAgLy8gTWFrZSBicmVha3BvaW50IHNpemUgYXZhaWxhYmxlIGFzIGEgdmFyaWFibGVcbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIHtcbiAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgfVxuICAkLXpmLXNpemU6IG50aCgkdmFsdWUsIDEpICFnbG9iYWw7IC8vIGdldCB0aGUgZmlyc3QgdmFsdWUgdG8gYWNjb3VudCBmb3IgYG9ubHlgIGFuZCBgZG93bmAga2V5d29yZHNcblxuICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gIEBpZiAkc3RyID09ICcnIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gIEBlbHNlIHtcbiAgICAvLyBGb3IgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICRwcmludC1icmVha3BvaW50LCBhZGQgcHJpbnQgdG8gdGhlIG1lZGlhIHR5cGVzXG4gICAgQGlmICRicCAhPSBudWxsIGFuZCAkYnAgPD0gJHBicCB7XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkb2xkLXpmLXNpemUgIT0gbnVsbCB7XG4gICAgLy8gUmVzdG9yZSB0aGUgb2xkIGJyZWFrcG9pbnQgc2l6ZVxuICAgICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICQtemYtc2l6ZTogbnVsbCAhZ2xvYmFsO1xuICB9XG59XG5cbi8vLyBDb252ZXJzIHRoZSBicmVha3BvaW50cyBtYXAgdG8gYSBVUkwtZW5jb2RlZCBzdHJpbmcsIGxpa2UgdGhpczogYGtleTE9dmFsdWUxJmtleTI9dmFsdWUyYC4gVGhlIHZhbHVlIGlzIHRoZW4gZHJvcHBlZCBpbnRvIHRoZSBDU1MgZm9yIGEgc3BlY2lhbCBgPG1ldGE+YCB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdC4gVGhpcyBpcyBob3cgd2UgdHJhbnNmZXIgdmFsdWVzIGZyb20gU2FzcyB0byBKYXZhU2NyaXB0LCBzbyB0aGV5IGNhbiBiZSBkZWZpbmVkIGluIG9uZSBwbGFjZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBtYXAncyBjb250ZW50cy5cbkBmdW5jdGlvbiAtemYtYnAtc2VyaWFsaXplKCRtYXApIHtcbiAgJHN0cjogJyc7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAkc3RyOiAkc3RyICsgJGtleSArICc9JyArIC16Zi1icC10by1lbSgkdmFsdWUpICsgJyYnO1xuICB9XG4gICRzdHI6IHN0ci1zbGljZSgkc3RyLCAxLCAtMik7XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xuXG4gIC8vIFN0b3JlIHRoZSBrZXlzIG9mIHRoZSBtYXAgYXMgYSBsaXN0XG4gICR2YWx1ZXM6IG1hcC1rZXlzKCRtYXApO1xuXG4gICRpOiAwO1xuXG4gIC8vIElmIHRoZSBLZXkgRXhpc3RzLCBHZXQgdGhlIGluZGV4IG9mIHRoZSBrZXkgd2l0aGluIHRoZSBtYXAgYW5kIGFkZCAxIHRvIGl0IGZvciB0aGUgbmV4dCBicmVha3BvaW50IGluIHRoZSBtYXBcbiAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICRpOiBpbmRleCgkdmFsdWVzLCAka2V5KSArIDE7XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAoJGkgPiBsZW5ndGgoJG1hcCkgb3IgJGkgPT0gMCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHZhbHVlcywgJGkpKTtcbiAgfVxuXG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGxhc3QgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCRrZXkpIHtcbiAgJGxpc3Q6ICgpO1xuICAkZm91bmRfa2V5OiBmYWxzZTtcblxuICBAZWFjaCAkbmFtZSBpbiAkLXpmLWJyZWFrcG9pbnRzLWtleXMge1xuICAgIEBpZiAoJG5hbWUgPT0gJGtleSkge1xuICAgICAgJGZvdW5kX2tleTogdHJ1ZTtcbiAgICB9XG4gICAgQGlmIG5vdCAkZm91bmRfa2V5IHtcbiAgICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRuYW1lKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkbGlzdDtcbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbmcgLSBhIG5hbWVkIG9yIG5vbi1uYW1lZCBicmVha3BvaW5nLlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgJGxhc3Q6ICQtemYtemVyby1icmVha3BvaW50O1xuICAkZm91bmQ6IGZhbHNlO1xuXG4gICR2YWx1ZTogdW5pdGxlc3MtY2FsYygkYnJlYWtwb2ludCwgMXB4KTtcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgIEBpZiB1bml0bGVzcy1jYWxjKCR2YWwpID4gJHZhbHVlIHtcbiAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRsYXN0OiAka2V5O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGxhc3Q7XG59XG5cbi8vLyBHZXQgYSB2YWx1ZSBmb3IgYSBicmVha3BvaW50IGZyb20gYSByZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0IHJlZ2FyZGxlc3Mgb2YgYCR2YWx1ZWAuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBoYXMgdGhlIGtleSBgJHZhbHVlYCwgdGhlIGV4YWN0IGJyZWFrcG9pbnQgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBkb2VzICpub3QqIGhhdmUgdGhlIGJyZWFrcG9pbnQsIHRoZSB2YWx1ZSBtYXRjaGluZyB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBpbiB0aGUgY29uZmlnIG1hcCBpcyByZXR1cm5lZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIFJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUgdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TWl4ZWR9IFRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUuXG5AZnVuY3Rpb24gLXpmLWdldC1icC12YWwoJG1hcCwgJHZhbHVlKSB7XG4gIC8vIElmIHRoZSBnaXZlbiBtYXAgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdFxuICBAaWYgdHlwZS1vZigkbWFwKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkbWFwO1xuICB9XG5cblxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgICAkdmFsdWU6IC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJG1hcCwgJHZhbHVlKSB7XG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGFuZCByZXR1cm4gdGhhdCB2YWx1ZVxuICBAZWxzZSB7XG4gICAgJGFuY2hvcjogbnVsbDtcbiAgICAkZm91bmQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgICAgICRhbmNob3I6ICRrZXk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcbiAgICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XG4gIH1cbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gICRtZWRpdW0tdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9Jyk7XG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcbiAgJGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4bGFyZ2UpIHtcbiAgJHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlKX0nKTtcbiAgJHhsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2Ugb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcbiAgJHh4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2UpfScpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gT3V0cHV0cyBDU1MgY2xhc3NlcyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AbWl4aW4gZm91bmRhdGlvbi1ncmlkKFxuICAkcm93OiAncm93JyxcbiAgJGNvbHVtbjogJ2NvbHVtbicsXG4gICRjb2x1bW4tcm93OiAnY29sdW1uLXJvdycsXG4gICRndXR0ZXI6ICdndXR0ZXInLFxuICAkcHVzaDogJ3B1c2gnLFxuICAkcHVsbDogJ3B1bGwnLFxuICAkY2VudGVyOiAnY2VudGVyZWQnLFxuICAkdW5jZW50ZXI6ICd1bmNlbnRlcmVkJyxcbiAgJGNvbGxhcHNlOiAnY29sbGFwc2UnLFxuICAkdW5jb2xsYXBzZTogJ3VuY29sbGFwc2UnLFxuICAkb2Zmc2V0OiAnb2Zmc2V0JyxcbiAgJGVuZDogJ2VuZCcsXG4gICRleHBhbmRlZDogJ2V4cGFuZGVkJyxcbiAgJGJsb2NrOiAnYmxvY2snXG4pIHtcbiAgLy8gUm93XG4gIC4jeyRyb3d9IHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdztcblxuICAgIC8vIENvbGxhcHNpbmdcbiAgICAmLiN7JGNvbGxhcHNlfSB7XG4gICAgICA+IC4jeyRjb2x1bW59IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTmVzdGluZ1xuICAgICYgLiN7JHJvd30ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctbmVzdCgkZ3JpZC1jb2x1bW4tZ3V0dGVyKTtcblxuICAgICAgJi4jeyRjb2xsYXBzZX0ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV4cGFuZGVkIChmdWxsLXdpZHRoKSByb3dcbiAgICAmLiN7JGV4cGFuZGVkfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG5cbiAgICAgIC4jeyRyb3d9IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCguI3skZXhwYW5kZWR9KSAuI3skcm93fSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG4gICAgfVxuXG4gICAgQGlmIHR5cGUtb2YoJGdyaWQtY29sdW1uLWd1dHRlcikgPT0gJ21hcCcge1xuICAgICAgLy8gU3RhdGljICh1bnJlc3BvbnNpdmUpIHJvdyBndXR0ZXJzXG4gICAgICAvL1xuICAgICAgQGVhY2ggJGJyZWFrcG9pbnQsICR2YWx1ZSBpbiAkZ3JpZC1jb2x1bW4tZ3V0dGVyIHtcbiAgICAgICAgJi4jeyRndXR0ZXJ9LSN7JGJyZWFrcG9pbnR9IHtcbiAgICAgICAgICA+IC4jeyRjb2x1bW59IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWd1dHRlcigkdmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENvbHVtblxuICAuI3skY29sdW1ufSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2w7XG5cbiAgICBAaWYgJGdyaWQtY29sdW1uLWFsaWduLWVkZ2Uge1xuICAgICAgJi4jeyRlbmR9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtZW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENvbHVtbiByb3dcbiAgLy8gVGhlIGRvdWJsZSAucm93IGNsYXNzIGlzIG5lZWRlZCB0byBidW1wIHVwIHRoZSBzcGVjaWZpY2l0eVxuICAuI3skY29sdW1ufS4jeyRyb3d9LiN7JHJvd30ge1xuICAgIGZsb2F0OiBub25lO1xuICB9XG5cbiAgLy8gVG8gcHJvcGVybHkgbmVzdCBhIGNvbHVtbiByb3csIHBhZGRpbmcgYW5kIG1hcmdpbiBpcyByZW1vdmVkXG4gIC4jeyRyb3d9IC4jeyRjb2x1bW59LiN7JHJvd30uI3skcm93fSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW4tY291bnQge1xuICAgICAgLy8gQ29sdW1uIHdpZHRoXG4gICAgICAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtc2l6ZSgkaSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNvdXJjZSBvcmRlcmluZ1xuICAgICAgQGlmICRpIDwgJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgICAgLiN7JC16Zi1zaXplfS0jeyRwdXNofS0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtcG9zKCRpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC4jeyQtemYtc2l6ZX0tI3skcHVsbH0tI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXBvcygtJGkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE9mZnNldHNcbiAgICAgICRvOiAkaSAtIDE7XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tI3skb2Zmc2V0fS0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLW9mZigkbyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQmxvY2sgZ3JpZFxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGJsb2NrLWdyaWQtbWF4IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWxheW91dCgkaSwgJy4jeyRjb2x1bW59Jyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBjb2xsYXBzaW5nXG4gICAgLiN7JC16Zi1zaXplfS0jeyRjb2xsYXBzZX0ge1xuICAgICAgPiAuI3skY29sdW1ufSB7IEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlOyB9XG5cbiAgICAgIC4jeyRyb3d9IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuI3skZXhwYW5kZWR9LiN7JHJvd30gLiN7JC16Zi1zaXplfS0jeyRjb2xsYXBzZX0uI3skcm93fSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LSN7JHVuY29sbGFwc2V9IHtcbiAgICAgID4gLiN7JGNvbHVtbn0geyBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJC16Zi1zaXplKTsgfVxuICAgIH1cblxuICAgIC8vIFBvc2l0aW9uaW5nXG4gICAgLiN7JC16Zi1zaXplfS0jeyRjZW50ZXJ9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXBvcyhjZW50ZXIpO1xuICAgIH1cblxuICAgIC8vIEd1dHRlciBhZGp1c3RtZW50XG4gICAgLiN7JC16Zi1zaXplfS0jeyR1bmNlbnRlcn0sXG4gICAgLiN7JC16Zi1zaXplfS0jeyRwdXNofS0wLFxuICAgIC4jeyQtemYtc2l6ZX0tI3skcHVsbH0tMCB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbC11bnBvcztcbiAgICB9XG4gIH1cblxuICAvLyBCbG9jayBncmlkIGNvbHVtbnNcbiAgLiN7JGNvbHVtbn0tI3skYmxvY2t9IHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1tYXJnaW47XG4gIH1cblxuICBAaWYgJGNvbHVtbiA9PSAnY29sdW1uJyBhbmQgaGFzLXZhbHVlKCRncmlkLWNvbHVtbi1hbGlhcykge1xuICAgIC4jeyRncmlkLWNvbHVtbi1hbGlhc30ge1xuICAgICAgLy8gc2Fzcy1saW50OmRpc2FibGUtYmxvY2sgcGxhY2Vob2xkZXItaW4tZXh0ZW5kXG4gICAgICBAZXh0ZW5kIC5jb2x1bW47XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGNvbHVtbnMgZGVmaW5lZCBpbnNpZGUgdGhpcyBtaXhpbiB0byB1c2UgYSBkaWZmZXJlbnQgY29sdW1uIGNvdW50LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkcm9vdCBbZmFsc2VdXG4vLy8gICBJZiBgZmFsc2VgLCBzZWxlY3RvcnMgaW5zaWRlIHRoaXMgbWl4aW4gd2lsbCBuZXN0IGluc2lkZSB0aGUgcGFyZW50IHNlbGVjdG9yLlxuLy8vICAgSWYgYHRydWVgLCBzZWxlY3RvcnMgd2lsbCBub3QgbmVzdC5cbkBtaXhpbiBncmlkLWNvbnRleHQoXG4gICRjb2x1bW5zLFxuICAkcm9vdDogZmFsc2Vcbikge1xuICAvLyBTdG9yZSB0aGUgY3VycmVudCBjb2x1bW4gY291bnQgc28gaXQgY2FuIGJlIHJlLXNldCBsYXRlclxuICAkb2xkLWdyaWQtY29sdW1uLWNvdW50OiAkZ3JpZC1jb2x1bW4tY291bnQ7XG4gICRncmlkLWNvbHVtbi1jb3VudDogJGNvbHVtbnMgIWdsb2JhbDtcblxuICBAaWYgJHJvb3Qge1xuICAgIEBhdC1yb290IHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBvbGQgY29sdW1uIGNvdW50XG4gICRncmlkLWNvbHVtbi1jb3VudDogJG9sZC1ncmlkLWNvbHVtbi1jb3VudCAhZ2xvYmFsO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgcm93LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gQ29sdW1uIGNvdW50IGZvciB0aGlzIHJvdy4gYG51bGxgIHdpbGwgdXNlIHRoZSBkZWZhdWx0IGNvbHVtbiBjb3VudC5cbi8vLyBAcGFyYW0ge0tleXdvcmRzfSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkY2YgW3RydWVdIC0gV2hldGhlciBvciBub3QgdG8gaW5jbHVkZSBhIGNsZWFyZml4LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1yb3coXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICRzaXplOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjZjogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAkbWFyZ2luOiBhdXRvO1xuXG4gIEBpZiBpbmRleCgkYmVoYXZpb3IsIG5lc3QpICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcnMpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKCRzaXplKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGNmIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuXG4gIEBpZiAkY29sdW1ucyAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gSW52ZXJ0cyB0aGUgbWFyZ2lucyBvZiBhIHJvdyB0byBuZXN0IGl0IGluc2lkZSBvZiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1yb3ctbmVzdCgkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICAkbWFyZ2luOiByZW0tY2FsYygtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJC16Zi1zaXplKSkgLyAyICogLTE7XG5cbiAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW47XG4gICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldCBhIGdyaWQgcm93IHNpemVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbkBtaXhpbiBncmlkLXJvdy1zaXplKCRzaXplOiAkZ3JpZC1yb3ctd2lkdGgpIHtcblx0XG4gIEBpZiAkc2l6ZSA9PSBleHBhbmQge1xuICAgICRzaXplOiBub25lO1xuICB9XG5cbiAgbWF4LXdpZHRoOiAkc2l6ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBVc2luZyByZW0gYXMgYmFzZSBhbGxvd3MgY29ycmVjdCBzY2FsaW5nXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiAkY291bnQgPT0gMSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCAtemYtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cblxuICAvLyBUaGVuIHRoZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gZW1zXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBCYXNlIGZvciBwaXhlbCBjb252ZXJzaW9uLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cbkBmdW5jdGlvbiAtemYtdG8tcmVtKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ251bWJlcicge1xuICAgIEB3YXJuIGluc3BlY3QoJHZhbHVlKSArICcgd2FzIHBhc3NlZCB0byByZW0tY2FsYygpLCB3aGljaCBpcyBub3QgYSBudW1iZXIuJztcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBlbSBpbnRvIHJlbSBpZiBzb21lb25lIGhhbmRzIG92ZXIgJ2VtJ3NcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFyZW07XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbSBvciBlbVxuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuXG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQGlmICR2YWx1ZSA9PSAwcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwsIHBlcmNlbnRhZ2UsIHJlbSBvciBlbSB2YWx1ZSB0byBhIHVuaXRsZXNzIHZhbHVlIGJhc2VkIG9uIGEgZ2l2ZW4gZm9udCBzaXplLiBJZGVhbCBmb3Igd29ya2luZyBvdXQgdW5pdGxlc3MgbGluZSBoZWlnaHRzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGNvbnZlcnQgdG8gYSB1bml0bGVzcyBsaW5lIGhlaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBmb250IHNpemUgdG8gdXNlIHRvIHdvcmsgb3V0IHRoZSBsaW5lIGhlaWdodCAtIGRlZmF1bHRzIHRvICRnbG9iYWwtZm9udC1zaXplXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gVW5pdGxlc3MgbnVtYmVyXG5AZnVuY3Rpb24gdW5pdGxlc3MtY2FsYygkdmFsdWUsICRiYXNlOiBudWxsKSB7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gRmlyc3QsIGxldHMgY29udmVydCBvdXIgJGJhc2UgdG8gcGl4ZWxzXG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ2VtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIC8vIE5vdyBsZXRzIGNvbnZlcnQgb3VyIHZhbHVlIHRvIHBpeGVscyB0b29cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnJScge1xuICAgICR2YWx1ZTogKCR2YWx1ZSAvIDEwMCUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgLy8gJ3B4J1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcge1xuICAgIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICAvLyBhc3N1bWUgdGhhdCBsaW5lLWhlaWdodHMgZ3JlYXRlcm4gdGhlbiAxMCBhcmUgbWVhbnQgdG8gYmUgYWJzb2x1dGUgaW4gJ3B4J1xuICBAaWYgdW5pdGxlc3MoJHZhbHVlKSBhbmQgKCR2YWx1ZSA+IDEwKSB7XG4gICAgQHJldHVybiAkdmFsdWUgLyBzdHJpcC11bml0KCRiYXNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2V0IHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJGd1dHRlciBbYXV0b11cbi8vLyAgIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLCBhY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBzaW5nbGUgdmFsdWUgd2lsbCBtYWtlIHRoZSBndXR0ZXIgdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIGJyZWFrcG9pbnQgbmFtZSB3aWxsIG1ha2UgdGhlIGd1dHRlciB0aGUgY29ycmVzcG9uZGluZyBzaXplIGluIHRoZSAkZ3V0dGVycyBtYXAuXG4vLy8gICAtIFwiYXV0b1wiIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHJlc3BvbnNpdmUsIHVzaW5nIHRoZSAkZ3V0dGVycyBtYXAgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtY29sdW1uLWd1dHRlcihcbiAgJGd1dHRlcjogYXV0byxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkZ3V0dGVyLCAkZ3V0dGVycykge1xuICAgICRwYWRkaW5nOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKSAvIDI7XG5cbiAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICB9XG59XG5cbi8vLyBDb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZW1vdmluZyB0aGUgcGFkZGluZy4gKipOb3RlOioqIG9ubHkgdXNlIHRoaXMgbWl4aW4gd2l0aGluIGEgYnJlYWtwb2ludC4gVG8gY29sbGFwc2UgYSBjb2x1bW4ncyBndXR0ZXJzIG9uIGFsbCBzY3JlZW4gc2l6ZXMsIHVzZSB0aGUgYCRndXR0ZXJgIHBhcmFtZXRlciBvZiB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluIGluc3RlYWQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tY29sbGFwc2Uge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoMCk7XG59XG5cbi8vLyBVbi1jb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZS1hZGRpbmcgdGhlIHBhZGRpbmcuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy5cbkBtaXhpbiBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZ3JpZC1jb2x1bW4tZ3V0dGVyKCkuIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjQuJztcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXJzOiAkZ3V0dGVyKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWd1dHRlcigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tZ3V0dGVyXG5AbWl4aW4gZ3JpZC1jb2wtZ3V0dGVyKFxuICAkZ3V0dGVyOiBhdXRvLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyLCAkZ3V0dGVycyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tY29sbGFwc2VcbkBtaXhpbiBncmlkLWNvbC1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWNvbGxhcHNlO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLXVuY29sbGFwc2UoJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBncmlkLWNvbC1ndXR0ZXIoKS4gZ3JpZC1jb2wtdW5jb2xsYXBzZSgpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXIpO1xufVxuXG4vLy8gU2V0cyBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucyB0byBtYXRjaCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJG1hcmdpbiBbYXV0b11cbi8vLyAgIFRoZSBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucywgYWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgc2luZ2xlIHZhbHVlIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBicmVha3BvaW50IG5hbWUgd2lsbCBtYWtlIHRoZSBtYXJnaW4gdGhlIGNvcnJlc3BvbmRpbmcgc2l6ZSBpbiB0aGUgJG1hcmdpbnMgbWFwLlxuLy8vICAgLSBcImF1dG9cIiB3aWxsIG1ha2UgdGhlIG1hcmdpbiByZXNwb25zaXZlLCB1c2luZyB0aGUgJG1hcmdpbnMgbWFwIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXJnaW5zIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtY29sdW1uLW1hcmdpbiAoXG4gICRtYXJnaW46IGF1dG8sXG4gICRtYXJnaW5zOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJG1hcmdpbiwgJG1hcmdpbnMpIHtcbiAgICAkbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSk7XG4gICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1ib3R0b207XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTZXQgdGhlIHdpZHRoIG9mIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkd2lkdGggWyRncmlkLWNvbHVtbi1jb3VudF0gLSBXaWR0aCB0byBtYWtlIHRoZSBjb2x1bW4uIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1zaXplKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXNpemUoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXNpemVcbkBtaXhpbiBncmlkLWNvbC1zaXplKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tc2l6ZSgkY29sdW1ucyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiBhIGNvbHVtbiBiYXNlZCBvbiBhIG51bWJlciBvZiBmYWN0b3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGNvbHVtbnNcbi8vLyAgIFdpZHRoIG9mIHRoZSBjb2x1bW4uIEFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHBlcmNlbnRhZ2UgdmFsdWUgd2lsbCBtYWtlIHRoZSBjb2x1bW4gdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIHNpbmdsZSBkaWdpdCB3aWxsIG1ha2UgdGhlIGNvbHVtbiBzcGFuIHRoYXQgbnVtYmVyIG9mIGNvbHVtbnMgd2lkZSwgdGFraW5nIGludG8gYWNjb3VudCB0aGUgY29sdW1uIGNvdW50IG9mIHRoZSBwYXJlbnQgcm93LlxuLy8vICAgLSBBIGxpc3Qgb2YgdGhlIGZvcm1hdCBcInggb2YgeVwiICh3aXRob3V0IHF1b3Rlcykgd2lsbCBtYWtlIGEgY29sdW1uIHRoYXQgaXMgKngqIGNvbHVtbnMgd2lkZSwgYXNzdW1pbmcgKnkqIHRvdGFsIGNvbHVtbnMgZm9yIHRoZSBwYXJlbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIGNhbGN1bGF0ZWQgcGVyY2VudGFnZSB2YWx1ZS5cbkBmdW5jdGlvbiBncmlkLWNvbHVtbigkY29sdW1ucykge1xuICAkd2lkdGg6IDAlO1xuXG4gIC8vIFBhcnNpbmcgcGVyY2VudHMsIGRlY2ltYWxzLCBhbmQgY29sdW1uIGNvdW50c1xuICBAaWYgdHlwZS1vZigkY29sdW1ucykgPT0gJ251bWJlcicge1xuICAgIEBpZiB1bml0KCRjb2x1bW5zKSA9PSAnJScge1xuICAgICAgJHdpZHRoOiAkY29sdW1ucztcbiAgICB9XG4gICAgQGVsc2UgaWYgJGNvbHVtbnMgPCAxIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyAvICRncmlkLWNvbHVtbi1jb3VudCk7XG4gICAgfVxuICB9XG5cbiAgLy8gUGFyc2luZyBcIm4gb2YgblwiIGV4cHJlc3Npb25zXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGNvbHVtbnMpID09ICdsaXN0JyB7XG4gICAgQGlmIGxlbmd0aCgkY29sdW1ucykgIT0gMyB7XG4gICAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4oKS4gVXNlIHRoZSBmb3JtYXQgXCJuIG9mIG5cIi4nO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UobnRoKCRjb2x1bW5zLCAxKSAvIG50aCgkY29sdW1ucywgMykpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFueXRoaW5nIGVsc2UgaXMgaW5jb3JyZWN0XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4oKS4gVXNlIGEgbnVtYmVyLCBkZWNpbWFsLCBwZXJjZW50YWdlLCBvciBcIm4gb2YgblwiLic7XG4gIH1cblxuICBAcmV0dXJuICR3aWR0aDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICRjb2x1bW5zIFskZ3JpZC1jb2x1bW4tY291bnRdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uLWd1dHRlcigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuQG1peGluIGdyaWQtY29sdW1uKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50LFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXNpemUoJGNvbHVtbnMpO1xuICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuXG4gIC8vIEd1dHRlcnNcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXJzOiAkZ3V0dGVycyk7XG5cbiAgLy8gTGFzdCBjb2x1bW4gYWxpZ25tZW50XG4gIEBpZiAkZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZSB7XG4gICAgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLXJpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uIHJvdy4gVGhpcyBpcyB0aGUgZXF1aXZhbGVudCBvZiBhZGRpbmcgYC5yb3dgIGFuZCBgLmNvbHVtbmAgdG8gdGhlIHNhbWUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFdpZHRoIG9mIHRoZSBndXR0ZXJzIG9uIGVpdGhlciBzaWRlIG9mIHRoZSBjb2x1bW4gcm93LiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uLWd1dHRlcigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuQG1peGluIGdyaWQtY29sdW1uLXJvdyhcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLXJvdztcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGd1dHRlcnM6ICRndXR0ZXJzKTtcblxuICAmLFxuICAmOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBub25lO1xuICB9XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW5cbkBmdW5jdGlvbiBncmlkLWNvbChcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIEByZXR1cm4gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uXG5AbWl4aW4gZ3JpZC1jb2woXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnQsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnMsICRndXR0ZXJzKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXJvdygpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tcm93XG5AbWl4aW4gZ3JpZC1jb2wtcm93KFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXJvdygkZ3V0dGVycyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBSZXBvc2l0aW9uIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJHBvc2l0aW9uIC0gRGlyZWN0aW9uIGFuZCBhbW91bnQgdG8gbW92ZS4gVGhlIGNvbHVtbiB3aWxsIG1vdmUgZXF1YWwgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4gY291bnQgc3BlY2lmaWVkLiBBIHBvc2l0aXZlIG51bWJlciB3aWxsIHB1c2ggdGhlIGNvbHVtbiB0byB0aGUgcmlnaHQsIHdoaWxlIGEgbmVnYXRpdmUgbnVtYmVyIHdpbGwgcHVsbCBpdCB0byB0aGUgbGVmdC4gU2V0IHRvIGNlbnRlciB0byBjZW50ZXIgdGhlIGNvbHVtbi5cbkBtaXhpbiBncmlkLWNvbHVtbi1wb3NpdGlvbigkcG9zaXRpb24pIHtcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSAnbnVtYmVyJyB7XG4gICAgJG9mZnNldDogcGVyY2VudGFnZSgkcG9zaXRpb24gLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gY2VudGVyIHtcbiAgICAmLCAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbi1wb3NpdGlvbigpLiBFbnRlciBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIG51bWJlciwgb3IgY2VudGVyLic7XG4gIH1cbn1cblxuLy8vIFJlc2V0IGEgcG9zaXRpb24gZGVmaW5pdGlvbi5cbkBtaXhpbiBncmlkLWNvbHVtbi11bnBvc2l0aW9uIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLy8vIE9mZnNldHMgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0IGJ5IGAkbmAgY29sdW1ucy5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFdpZHRoIHRvIG9mZnNldCBieS4gWW91IGNhbiBwYXNzIGluIGFueSB2YWx1ZSBhY2NlcHRlZCBieSB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuQG1peGluIGdyaWQtY29sdW1uLW9mZnNldCgkbikge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiBncmlkLWNvbHVtbigkbik7XG59XG5cbi8vLyBEaXNhYmxlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBsYXN0IGNvbHVtbiBpbiBhIHJvdyBhbGlnbmluZyB0byB0aGUgb3Bwb3NpdGUgZWRnZS5cbkBtaXhpbiBncmlkLWNvbHVtbi1lbmQge1xuICAvLyBUaGlzIGV4dHJhIHNwZWNpZmljaXR5IGlzIHJlcXVpcmVkIGZvciB0aGUgcHJvcGVydHkgdG8gYmUgYXBwbGllZFxuICAmOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgfVxufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXBvc2l0aW9uXG5AbWl4aW4gZ3JpZC1jb2wtcG9zKCRwb3NpdGlvbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbigkcG9zaXRpb24pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXVucG9zIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbjtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLW9mZnNldCgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tb2Zmc2V0XG5AbWl4aW4gZ3JpZC1jb2wtb2ZmKCRuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1lbmQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWVuZFxuQG1peGluIGdyaWQtY29sLWVuZCB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWVuZDtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFNpemVzIGNoaWxkIGVsZW1lbnRzIHNvIHRoYXQgYCRuYCBudW1iZXIgb2YgaXRlbXMgYXBwZWFyIG9uIGVhY2ggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGVsZW1lbnRzIHRvIGRpc3BsYXkgcGVyIHJvdy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFsnLmNvbHVtbiddIC0gU2VsZWN0b3IocykgdG8gdXNlIGZvciBjaGlsZCBlbGVtZW50cy5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkZ3V0dGVyXG4vLy8gICBUaGUgZ3V0dGVyIHRvIGFwcGx5IHRvIGNoaWxkIGVsZW1lbnRzLiBBY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gJGdyaWQtY29sdW1uLWd1dHRlciB3aWxsIHVzZSB0aGUgdmFsdWVzIGluIHRoZSAkZ3JpZC1jb2x1bW4tZ3V0dGVyIG1hcCwgaW5jbHVkaW5nIGJyZWFrcG9pbnQgc2l6ZXMuXG4vLy8gICAtIEEgZml4ZWQgbnVtZXJpYyB2YWx1ZSB3aWxsIGFwcGx5IHRoaXMgZ3V0dGVyIHRvIGFsbCBicmVha3BvaW50cy5cbkBtaXhpbiBncmlkLWxheW91dChcbiAgJG4sXG4gICRzZWxlY3RvcjogJy5jb2x1bW4nLFxuICAkZ3V0dGVyOiBudWxsXG4pIHtcbiAgJiA+ICN7JHNlbGVjdG9yfSB7XG4gICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgxLyRuKTtcblxuICAgIC8vIElmIGEgJGd1dHRlciB2YWx1ZSBpcyBwYXNzZWRcbiAgICBAaWYoJGd1dHRlcikge1xuICAgICAgLy8gR3V0dGVyc1xuICAgICAgQGlmIHR5cGUtb2YoJGd1dHRlcikgPT0gJ21hcCcge1xuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbHVlIGluICRndXR0ZXIge1xuICAgICAgICAgICRwYWRkaW5nOiByZW0tY2FsYygkdmFsdWUpIC8gMjtcblxuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmIHR5cGUtb2YoJGd1dHRlcikgPT0gJ251bWJlcicgYW5kIHN0cmlwLXVuaXQoJGd1dHRlcikgPiAwIHtcbiAgICAgICAgJHBhZGRpbmc6IHJlbS1jYWxjKCRndXR0ZXIpIC8gMjtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpudGgtb2YtdHlwZSgjeyRufW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGV4dHJhIENTUyB0byBibG9jayBncmlkIGNoaWxkcmVuIHNvIHRoZSBsYXN0IGl0ZW1zIGluIHRoZSByb3cgY2VudGVyIGF1dG9tYXRpY2FsbHkuIEFwcGx5IHRoaXMgdG8gdGhlIGNvbHVtbnMsIG5vdCB0aGUgcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGl0ZW1zIHRoYXQgYXBwZWFyIGluIGVhY2ggcm93LlxuQG1peGluIGdyaWQtbGF5b3V0LWNlbnRlci1sYXN0KCRuKSB7XG4gIEBmb3IgJGkgZnJvbSAxIHRvICRuIHtcbiAgICBAaWYgJGkgPT0gMSB7XG4gICAgICAmOm50aC1jaGlsZCgjeyRufW4rMSk6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAoMTAwIC0gMTAwLyRuICogJGkpIC8gMiAqIDElO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAmOm50aC1jaGlsZCgjeyRufW4rMSk6bnRoLWxhc3QtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICgxMDAgLSAxMDAvJG4gKiAkaSkgLyAyICogMSU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhY2NvcmRpb25cbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY2NvcmRpb24gZ3JvdXAuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIHBsdXMgYW5kIG1pbnVzIGljb25zIHRvIHRoZSBzaWRlIG9mIGVhY2ggYWNjb3JkaW9uIHRpdGxlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGFjY29yZGlvbiB0aXRsZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGFuIGFjY29yZGlvbiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24taXRlbS1wYWRkaW5nOiAxLjI1cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGFjY29yZGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gdGhlIHNhbWUgZWxlbWVudCB0aGF0IGdldHMgYGRhdGEtYWNjb3JkaW9uYC5cbkBtaXhpbiBhY2NvcmRpb24tY29udGFpbmVyIChcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tYmFja2dyb3VuZFxuKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICZbZGlzYWJsZWRdIHtcbiAgICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGFjY29yZGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIHRoZSBsaXN0IGl0ZW0gd2l0aGluIGFuIGFjY29yZGlvbiB1bC5cbkBtaXhpbiBhY2NvcmRpb24taXRlbSB7XG4gICY6Zmlyc3QtY2hpbGQgPiA6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzIDAgMDtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCA+IDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgdGl0bGUgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpbmsgd2l0aGluIGFuIGFjY29yZGlvbiBpdGVtLlxuQG1peGluIGFjY29yZGlvbi10aXRsZSAoXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJGFjY29yZGlvbi10aXRsZS1mb250LXNpemUsXG4gICRjb2xvcjogJGFjY29yZGlvbi1pdGVtLWNvbG9yLFxuICAkYm9yZGVyOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXJcbikge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG5cbiAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICRjb2xvcjtcblxuICA6bGFzdC1jaGlsZDpub3QoLmlzLWFjdGl2ZSkgPiAmIHtcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG5cbiAgQGlmICRhY2NvcmRpb24tcGx1c21pbnVzIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICB9XG5cbiAgICAuaXMtYWN0aXZlID4gJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMTMnO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFjY29yZGlvbiBjb250ZW50LiBBcHBseSB0aGlzIHRvIHRoZSBjb250ZW50IHBhbmUgYmVsb3cgYW4gYWNjb3JkaW9uIGl0ZW0ncyB0aXRsZS5cbkBtaXhpbiBhY2NvcmRpb24tY29udGVudCAoXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZyxcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRhY2NvcmRpb24tY29udGVudC1jb2xvclxuKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG5cbiAgY29sb3I6ICRjb2xvcjtcblxuICA6bGFzdC1jaGlsZCA+ICY6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24ge1xuICAuYWNjb3JkaW9uIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tY29udGFpbmVyO1xuICB9XG5cbiAgLmFjY29yZGlvbi1pdGVtIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24taXRlbTtcbiAgfVxuXG4gIC5hY2NvcmRpb24tdGl0bGUge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi10aXRsZTtcbiAgfVxuXG4gIC5hY2NvcmRpb24tY29udGVudCB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvblxuLy8vL1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGJ1dHRvbiBlbGVtZW50cy5cbi8vLyBAdHlwZSBGb250XG4kYnV0dG9uLWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYXJvdW5kIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmaWxsIGZvciBidXR0b25zLiBDYW4gZWl0aGVyIGJlIGBzb2xpZGAgb3IgYGhvbGxvd2AuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGJ1dHRvbi1maWxsOiBzb2xpZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRpdmUgZm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yLWFsdDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgd2lkdGggZm9yIGhvbGxvdyBvdXRsaW5lIGJ1dHRvbnNcbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24taG9sbG93LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXNpemVzOiAoXG4gIHRpbnk6IDAuNnJlbSxcbiAgc21hbGw6IDAuNzVyZW0sXG4gIGRlZmF1bHQ6IDAuOXJlbSxcbiAgbGFyZ2U6IDEuMjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JpbmcgY2xhc3Nlcy4gQSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgaW4geW91ciBDU1MsIGxpa2UgYC5zZWNvbmRhcnlgLCBgLnN1Y2Nlc3NgLCBhbmQgc28gb24uXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBvcGFjaXR5IGZvciBhIGRpc2FibGVkIGJ1dHRvbi5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6IC0yMCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGhvbGxvdyBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzOiAtNTAlICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbDogZmxpcCBmcm9tIG1hcmdpbi1yaWdodCB0byBtYXJnaW4tbGVmdCBmb3IgZGVmYXVsdHNcbkBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbn1cblxuLy8vIHRyYW5zaXRpb25zIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vIFRPRE86IERvY3VtZW50IGJ1dHRvbi1iYXNlKCkgbWl4aW5cbkBtaXhpbiBidXR0b24tYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICBmb250LWZhbWlseTogJGJ1dHRvbi1mb250LWZhbWlseTtcblxuICBAaWYgKHR5cGUtb2YoJGJ1dHRvbi1wYWRkaW5nKSA9PSAnbWFwJykge1xuICAgIEBlYWNoICRzaXplLCAkcGFkZGluZyBpbiAkYnV0dG9uLXBhZGRpbmcge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBhZGRpbmc6ICRidXR0b24tcGFkZGluZztcbiAgfVxuXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICB0cmFuc2l0aW9uOiAkYnV0dG9uLXRyYW5zaXRpb247XG5cbiAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8vLyBFeHBhbmRzIGEgYnV0dG9uIHRvIG1ha2UgaXQgZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgdGhlIGV4cGFuZCBiZWhhdmlvci4gU2V0IHRvIGBmYWxzZWAgdG8gcmV2ZXJzZSB0aGlzIGJlaGF2aW9yLlxuQG1peGluIGJ1dHRvbi1leHBhbmQoJGV4cGFuZDogdHJ1ZSkge1xuICBAaWYgJGV4cGFuZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBidXR0b24tc3R5bGUoXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzXG4pIHtcbiAgQGlmICRjb2xvciA9PSBhdXRvIHtcbiAgICAkY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkYnV0dG9uLWNvbG9yLCAkYnV0dG9uLWNvbG9yLWFsdCkpO1xuICB9XG5cbiAgQGlmICRiYWNrZ3JvdW5kLWhvdmVyID09IGF1dG8ge1xuICAgICRiYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogJGJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgYmFja2dyb3VuZCBmaWxsIG9uIGhvdmVyIGFuZCBmb2N1cyBmb3IgaG9sbG93IGJ1dHRvbnMuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdyB7XG4gICYsXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJi5kaXNhYmxlZCxcbiAgJltkaXNhYmxlZF0ge1xuICAgICYsXG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJ1dHRvbi1ob2xsb3ctc3R5bGUoXG4gICRjb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3MsXG4gICRib3JkZXItd2lkdGg6ICRidXR0b24taG9sbG93LWJvcmRlci13aWR0aFxuKSB7XG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkaG92ZXItbGlnaHRuZXNzKTtcblxuICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGNvbG9yO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgJi5kaXNhYmxlZCxcbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGNvbG9yO1xuICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgZGlzYWJsZWQgc3R5bGVzIHRvIGEgYnV0dG9uIGJ5IGZhZGluZyB0aGUgZWxlbWVudCwgcmVzZXRpbmcgdGhlIGN1cnNvciwgYW5kIGRpc2FibGluZyBwb2ludGVyIGV2ZW50cy5cbi8vLyBAcGFyYW0gW0NvbG9yXSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGRpc2FibGVkIGJ1dHRvbi5cbi8vLyBAcGFyYW0gW0NvbG9yXSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgZGlzYWJsZWQgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBidXR0b24tZGlzYWJsZWQoXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvclxuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgfVxuXG4gIG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBBZGRzIGEgZHJvcGRvd24gYXJyb3cgdG8gYSBidXR0b24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIFswLjRlbV0gLSBTaXplIG9mIHRoZSBhcnJvdy4gV2UgcmVjb21tZW5kIHVzaW5nIGFuIGBlbWAgdmFsdWUgc28gdGhlIHRyaWFuZ2xlIHNjYWxlcyB3aGVuIHVzZWQgaW5zaWRlIGRpZmZlcmVudCBzaXplcyBvZiBidXR0b25zLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbd2hpdGVdIC0gQ29sb3Igb2YgdGhlIGFycm93LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb2Zmc2V0IFskYnV0dG9uLXBhZGRpbmddIC0gRGlzdGFuY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0IG9mIHRoZSBidXR0b24uIERlZmF1bHRzIHRvIHdoYXRldmVyIHRoZSByaWdodCBwYWRkaW5nIG9mIGEgYnV0dG9uIGlzLlxuQG1peGluIGJ1dHRvbi1kcm9wZG93bihcbiAgJHNpemU6IDAuNGVtLFxuICAkY29sb3I6ICR3aGl0ZSxcbiAgJG9mZnNldDogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodClcbikge1xuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRzaXplLCAkY29sb3IsIGRvd24pO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuNGVtOyAvLyBBbGlnbnMgdGhlIGFycm93IHdpdGggdGhlIHRleHQgb2YgdGhlIGJ1dHRvblxuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtcmlnaHR9O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRvZmZzZXQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgYWxsIHN0eWxlcyBmb3IgYSBidXR0b24uIEZvciBtb3JlIGdyYW51bGFyIGNvbnRyb2wgb3ZlciBzdHlsZXMsIHVzZSB0aGUgaW5kaXZpZHVhbCBidXR0b24gbWl4aW5zLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBtYWtlIHRoZSBidXR0b24gZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3R5bGUgW3NvbGlkXSAtIFNldCB0byBgaG9sbG93YCB0byBjcmVhdGUgYSBob2xsb3cgYnV0dG9uLiBUaGUgY29sb3IgZGVmaW5lZCBpbiBgJGJhY2tncm91bmRgIHdpbGwgYmUgdXNlZCBhcyB0aGUgcHJpbWFyeSBjb2xvciBvZiB0aGUgYnV0dG9uLlxuQG1peGluIGJ1dHRvbihcbiAgJGV4cGFuZDogZmFsc2UsXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJHN0eWxlOiAkYnV0dG9uLWZpbGxcbikge1xuICBAaW5jbHVkZSBidXR0b24tYmFzZTtcblxuICBAaWYgJHN0eWxlID09IHNvbGlkIHtcbiAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJhY2tncm91bmQsICRiYWNrZ3JvdW5kLWhvdmVyLCAkY29sb3IpO1xuICB9XG4gIEBlbHNlIGlmICRzdHlsZSA9PSBob2xsb3cge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkYmFja2dyb3VuZCk7XG4gIH1cblxuICBAaWYgJGV4cGFuZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24ge1xuICAuYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBidXR0b247XG5cbiAgICAvLyBTaXplc1xuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9IHtcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5leHBhbmRlZCB7IEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7IH1cblxuICAgIC8vIENvbG9yc1xuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRjb2xvciwgYXV0bywgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi4jeyRuYW1lfS5kcm9wZG93bjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERpc2FibGVkIHN0eWxlXG4gICAgJi5kaXNhYmxlZCxcbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQ7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkKCRjb2xvciwgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIb2xsb3cgc3R5bGVcbiAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAmLmhvbGxvdyB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGU7XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENsZWFyIHN0eWxlXG4gICAgQGlmICRidXR0b24tZmlsbCAhPSBjbGVhciB7XG4gICAgICAmLmNsZWFyIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZTtcblxuICAgICAgICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAmLCAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcblxuICAgICAgICAgICAgJiwgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAmLFxuICAgICAgICAgICAgICAmLmRpc2FibGVkLFxuICAgICAgICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERyb3Bkb3duIGFycm93XG4gICAgJi5kcm9wZG93biB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZHJvcGRvd247XG5cbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgPT0gaG9sbG93IHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCdXR0b24gd2l0aCBkcm9wZG93biBhcnJvdyBvbmx5XG4gICAgJi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgICB0b3A6IC0wLjFlbTtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB9XG4gIH1cbiAgYS5idXR0b24ge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWJhc2Vcbi8vLy9cblxuLy8gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuLy8gVGhlc2UgYXJlIHN0eWxlcyBhcHBsaWVkIHRvIGJhc2ljIEhUTUwgdGFncywgaW5jbHVkaW5nOlxuLy8gICAtIFBhcmFncmFwaHMgPHA+XG4vLyAgIC0gQm9sZC9pdGFsaWNzIDxiPiA8c3Ryb25nPiA8aT4gPGVtPlxuLy8gICAtIFNtYWxsIHRleHQgPHNtYWxsPlxuLy8gICAtIEhlYWRpbmdzIDxoMT4tPGg2PlxuLy8gICAtIEFuY2hvcnMgPGE+XG4vLyAgIC0gRGl2aWRlcnMgPGhyPlxuLy8gICAtIExpc3RzIDx1bD4gPG9sPiA8ZGw+XG4vLyAgIC0gQmxvY2txdW90ZXMgPGJsb2NrcXVvdGU+XG4vLyAgIC0gQ29kZSBibG9ja3MgPGNvZGU+XG4vLyAgIC0gQWJicmV2aWF0aW9ucyA8YWJicj5cbi8vICAgLSBDaXRhdGlvbnMgPGNpdGU+XG4vLyAgIC0gS2V5c3Ryb2tlcyA8a2JkPlxuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGhlYWRlciBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0eWxlIChlLmcuIGl0YWxpY2l6ZWQpIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgdXNlZCBmb3IgZWxlbWVudHMgdGhhdCB1c2UgbW9ub3NwYWNlZCB0eXBlLCBzdWNoIGFzIGNvZGUgc2FtcGxlc1xuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgQ291cmllciwgbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIGZvciBoZWFkaW5ncyBhdCB2YXJpb3VzIHNjcmVlbiBzaXplcy4gRWFjaCBrZXkgaXMgYSBicmVha3BvaW50LCBhbmQgZWFjaCB2YWx1ZSBpcyBhIG1hcCBvZiBoZWFkaW5nIHN0eWxlcy5cbi8vLyBAdHlwZSBNYXBcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAyNCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAxOSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNyksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDgpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogNDApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMzEpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjUpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuKSAhZGVmYXVsdDtcblxuLy8gJGhlYWRlci1zdHlsZXMgbWFwIGlzIGJ1aWx0IGZyb20gJGhlYWRlci1zaXplcyBpbiBvcmRlciB0byBlbnN1cmUgZG93bndhcmQgY29tcGF0aWJpbGl0eVxuLy8gd2hlbiAkaGVhZGVyLXNpemVzIGlzIGRlcHJlY2lhdGVkLCAkaGVhZGVyLXN0eWxlcyBuZWVkcyB0byBnZXQgIWRlZmF1bHQgdmFsdWVzIGxpa2Ugc2V0dGluZ3Muc2Nzc1xuQGZ1bmN0aW9uIGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpIHtcbiAgQHdhcm4gJ05vdGUsIHRoYXQgJGhlYWRlci1zaXplcyBoYXMgYmVlbiByZXBsYWNlZCB3aXRoICRoZWFkZXItc3R5bGVzLiAkaGVhZGVyLXNpemVzIHN0aWxsIHdvcmtzLCBidXQgaXQgaXMgZ29pbmcgdG8gYmUgZGVwcmVjaWF0ZWQuJztcbiAgJGhlYWRlci1zdHlsZXM6ICgpO1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zaXplcyB7XG4gICAgJGhlYWRlci1tYXA6ICgpO1xuICAgIEBlYWNoICRoZWFkZXIsICRmb250LXNpemUgaW4gJGhlYWRlcnMge1xuICAgICAgJGhlYWRlci1tYXA6IG1hcC1tZXJnZSgkaGVhZGVyLW1hcCwgKCRoZWFkZXI6ICgnZm9udC1zaXplJzogJGZvbnQtc2l6ZSkpKTsgIFxuICAgIH1cbiAgICAkaGVhZGVyLXN0eWxlczogbWFwLW1lcmdlKCRoZWFkZXItc3R5bGVzLCAoJHNpemU6ICRoZWFkZXItbWFwKSk7XG4gIH1cbiAgQHJldHVybiAkaGVhZGVyLXN0eWxlcztcbn1cblxuLy8gSWYgaXQgZXhpc3RzICRoZWFkZXJzLXNpemVzIGlzIHVzZWQgdG8gYnVpbGQgJGhlYWRlci1zdHlsZXMuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoaGVhZGVyLXNpemVzKSB7XG4gICRoZWFkZXItc3R5bGVzOiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKTtcbn1cblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGA8c21hbGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbWFsbC1mb250LXNpemU6IDgwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGA8c21hbGw+YCBlbGVtZW50cyB3aGVuIHBsYWNlZCBpbnNpZGUgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGluc2lkZSBgPHA+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIGZvciBwYXJhZ3JhcGggdGV4dC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBMaXN0XG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0byAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gIWRlZmF1bHQ7XG5cbi8vLyBCdWxsZXQgdHlwZSB0byB1c2UgZm9yIHVub3JkZXJlZCBsaXN0cyAoZS5nLiwgYHNxdWFyZWAsIGBjaXJjbGVgLCBgZGlzY2ApLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYyAhZGVmYXVsdDtcblxuLy8vIFBvc2l0aW9uaW5nIGZvciBidWxsZXRzIG9uIHVub3JkZXJlZCBsaXN0IGl0ZW1zLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBsaXN0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgYSBsaXN0IGluc2lkZSBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBgPGRsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBgPGR0PmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYDxkdD5gIGFuZCBgPGRkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgYDxibG9ja3F1b3RlPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpICFkZWZhdWx0O1xuXG4vLy8gU2lkZSBib3JkZXIgZm9yIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBzZXVkbyBjb250ZW50IGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjaXRlLXBzZXVkby1jb250ZW50OiAnXFwyMDE0IFxcMDAyMCcgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIGJvcmRlciBzdHlsZSBmb3IgYDxhYmJyPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjayAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1iYXNlIHtcbiAgLy8gVHlwb2dyYXBoeSByZXNldHNcbiAgZGl2LFxuICBkbCxcbiAgZHQsXG4gIGRkLFxuICB1bCxcbiAgb2wsXG4gIGxpLFxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2LFxuICBwcmUsXG4gIGZvcm0sXG4gIHAsXG4gIGJsb2NrcXVvdGUsXG4gIHRoLFxuICB0ZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBQYXJhZ3JhcGhzXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgIHRleHQtcmVuZGVyaW5nOiAkcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nO1xuICB9XG5cbiAgLy8gRW1waGFzaXplZCB0ZXh0XG4gIGVtLFxuICBpIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTdHJvbmcgdGV4dFxuICBzdHJvbmcsXG4gIGIge1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU21hbGwgdGV4dFxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSGVhZGluZ3NcbiAgaDEsIC5oMSxcbiAgaDIsIC5oMixcbiAgaDMsIC5oMyxcbiAgaDQsIC5oNCxcbiAgaDUsIC5oNSxcbiAgaDYsIC5oNiB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJGhlYWRlci1mb250LXN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkaGVhZGVyLWNvbG9yO1xuICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xuXG4gICAgc21hbGwge1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICBjb2xvcjogJGhlYWRlci1zbWFsbC1mb250LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhlYWRpbmcgc3R5bGVzXG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXN0eWxlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGhlYWRlciwgJGhlYWRlci1kZWZzIGluICRoZWFkZXJzIHtcbiAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiAxcmVtO1xuICAgICAgICAjeyRoZWFkZXJ9LCAuI3skaGVhZGVyfSB7XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmb250LXNpemUpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZzKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmcykpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxoKSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGgpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMoJGhlYWRlci1saW5laGVpZ2h0LCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG10KSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbXQpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1iKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWIpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCRoZWFkZXItbWFyZ2luLWJvdHRvbSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTGlua3NcbiAgYSB7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgY29sb3I6ICRhbmNob3ItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbjtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGFuY2hvci1jb2xvci1ob3ZlcjtcbiAgICAgIEBpZiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlciAhPSAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cblxuICAvLyBIb3Jpem9udGFsIHJ1bGVcbiAgaHIge1xuICAgIGNsZWFyOiBib3RoO1xuXG4gICAgbWF4LXdpZHRoOiAkaHItd2lkdGg7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG1hcmdpbjogJGhyLW1hcmdpbjtcblxuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIGJvcmRlci1ib3R0b206ICRoci1ib3JkZXI7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gIH1cblxuICAvLyBMaXN0c1xuICB1bCxcbiAgb2wsXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246ICRsaXN0LXN0eWxlLXBvc2l0aW9uO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGlzdC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gTGlzdCBpdGVtc1xuICBsaSB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gVW5vcmRlcmVkIGxpc3RzXG4gIHVsIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgICBsaXN0LXN0eWxlLXR5cGU6ICRsaXN0LXN0eWxlLXR5cGU7XG4gIH1cblxuICAvLyBPcmRlcmVkIGxpc3RzXG4gIG9sIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgfVxuXG4gIC8vIE5lc3RlZCB1bm9yZGVyZWQvb3JkZXJlZCBsaXN0c1xuICB1bCwgb2wge1xuICAgICYgJiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW47XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmluaXRpb24gbGlzdHNcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZHQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZGVmbmxpc3QtdGVybS13ZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2txdW90ZXNcbiAgYmxvY2txdW90ZSB7XG4gICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIHBhZGRpbmc6ICRibG9ja3F1b3RlLXBhZGRpbmc7XG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGJsb2NrcXVvdGUtYm9yZGVyO1xuXG4gICAgJiwgcCB7XG4gICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIENpdGF0aW9uc1xuICBjaXRlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRjaXRlLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGNpdGUtY29sb3I7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAkY2l0ZS1wc2V1ZG8tY29udGVudDtcbiAgICB9XG4gIH1cblxuICAvLyBBYmJyZXZpYXRpb25zXG4gIGFiYnIsIGFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiAkYWJici11bmRlcmxpbmU7XG4gICAgY3Vyc29yOiBoZWxwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIEZpZ3VyZXNcbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgXG4gIC8vIENvZGVcbiAgY29kZSB7XG4gICAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcblxuICAgIGJvcmRlcjogJGNvZGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkY29kZS1jb2xvcjtcbiAgfVxuXG4gIC8vIEtleXN0cm9rZXNcbiAga2JkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGtleXN0cm9rZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcbiAgICBjb2xvcjogJGtleXN0cm9rZS1jb2xvcjtcblxuICAgIEBpZiBoYXMtdmFsdWUoJGtleXN0cm9rZS1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRrZXlzdHJva2UtcmFkaXVzO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1oZWxwZXJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGVhZC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0b3AgbWFyZ2luIGZvciBzdWJoaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3Igc3RhdGlzdGljIG51bWJlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3RhdC1mb250LXNpemU6IDIuNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzIHtcbiAgLy8gVXNlIHRvIGNyZWF0ZSBhIHN1YmhlYWRpbmcgdW5kZXIgYSBtYWluIGhlYWRlclxuICAvLyBNYWtlIHN1cmUgeW91IHBhaXIgdGhlIHR3byBlbGVtZW50cyBpbiBhIDxoZWFkZXI+IGVsZW1lbnQsIGxpa2UgdGhpczpcbiAgLy8gPGhlYWRlcj5cbiAgLy8gICA8aDE+SGVhZGluZzwvaDE+XG4gIC8vICAgPGgyPlN1YmhlYWRpbmc8L2gyPlxuICAvLyA8L2hlYWRlcj5cbiAgLnN1YmhlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci1tYXJnaW4tdG9wO1xuICAgIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtd2VpZ2h0OiAkc3ViaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRzdWJoZWFkZXItY29sb3I7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYW4gaW50cm9kdWN0b3J5IGxlYWQsIGRlY2ssIGJsdXJiLCBldGMuXG4gIC5sZWFkIHtcbiAgICBmb250LXNpemU6ICRsZWFkLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGxlYWQtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhIGxhcmdlIG51bWJlciB0byBkaXNwbGF5IGEgc3RhdGlzdGljXG4gIC5zdGF0IHtcbiAgICBmb250LXNpemU6ICRzdGF0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIHAgKyAmIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgIH1cbiAgfVxuXG4gIHVsLCBvbCB7XG4gICAgLy8gVXNlIHRvIHJlbW92ZSBudW1iZXJzIGZyb20gb3JkZXJlZCBsaXN0ICYgYnVsbGV0cyBmcm9tIHVub3JkZXJlZCBsaXN0XG4gICAgJi5uby1idWxsZXQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tdGV4dC1hbGlnbm1lbnQge1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkYWxpZ24gaW4gKGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnkpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgLnRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSWYgYHRydWVgLCBhbGwgZWxlbWVudHMgd2lsbCBoYXZlIHRyYW5zcGFyZW50IGJhY2tncm91bmRzIHdoZW4gcHJpbnRlZCwgdG8gc2F2ZSBvbiBpbmsuXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBncm91cCBnbG9iYWxcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZSAhZGVmYXVsdDtcbiRwcmludC1ocmVmczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gc2Fzcy1saW50OmRpc2FibGUtYWxsXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByaW50LXN0eWxlcyB7XG4gIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgKiB7XG4gICAgICBAaWYgJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsgLy8gQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vc1xuICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICB0YWJsZS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdGJvZHkuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIHRoLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbiAgICAvLyBEaXNwbGF5IHRoZSBVUkwgb2YgYSBsaW5rIGFmdGVyIHRoZSB0ZXh0XG4gICAgYSxcbiAgICBhOnZpc2l0ZWQgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9XG4gICAgQGlmICRwcmludC1ocmVmcyB7XG4gICAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKGhyZWYpICcpJzsgfVxuICAgIH1cblxuICAgIC8vIERvbid0IGRpc3BsYXkgdGhlIFVSTCBmb3IgaW1hZ2VzIG9yIEphdmFTY3JpcHQvaW50ZXJuYWwgbGlua3NcbiAgICAuaXIgYTphZnRlcixcbiAgICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICAgIGFbaHJlZl49JyMnXTphZnRlciB7IGNvbnRlbnQ6ICcnOyB9XG5cbiAgICAvLyBEaXNwbGF5IHdoYXQgYW4gYWJicmV2aWF0aW9uIHN0YW5kcyBmb3IgYWZ0ZXIgdGhlIHRleHRcbiAgICBhYmJyW3RpdGxlXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cih0aXRsZSkgJyknOyB9XG5cbiAgICAvLyBQcmV2ZW50IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgYSBibG9ja3F1b3RlIG9yIHByZWZvcm1hdHRlZCB0ZXh0IGJsb2NrXG4gICAgcHJlLFxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvLyBoNWJwLmNvbS90XG4gICAgdGhlYWQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cblxuICAgIHRyLFxuICAgIGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuXG4gICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuICAgIEBwYWdlIHsgbWFyZ2luOiAwLjVjbTsgfVxuXG4gICAgcCxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICBvcnBoYW5zOiAzO1xuICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIC8vIEF2b2lkIHBhZ2UgYnJlYWtzIGFmdGVyIGEgaGVhZGluZ1xuICAgIGgyLFxuICAgIGgzIHsgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cblxuICAgIC8vIEhlbHBlciB0byByZS1hbGxvdyBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGNlcnRhaW4gZWxlbWVudHMgKGUuZy4gcHJlLCBibG9ja3F1b3RlLCB0cilcbiAgICAucHJpbnQtYnJlYWstaW5zaWRlIHtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEZvbnQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBvZiBwbGFjZWhvbGRlciB0ZXh0IHdpdGhpbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBGb250XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1saW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgZm9jdXNlZCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZm9jdXM6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgZGlzYWJsZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBmb2N1c2VkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMiAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgaW5zaWRlIHRleHQgaW5wdXRzIHdoZW4gbm90IGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIDAuMSkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IG91dHNpZGUgdGV4dCBpbnB1dHMgd2hlbiBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDdXJzb3IgdG8gdXNlIHdoZW4gaG92ZXJpbmcgb3ZlciBhIGRpc2FibGVkIHRleHQgaW5wdXQuXG4vLy8gQHR5cGUgQ3Vyc29yXG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZCAhZGVmYXVsdDtcblxuLy8vIFByb3BlcnRpZXMgdG8gdHJhbnNpdGlvbiBvbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kaW5wdXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIHRoZSB1cC9kb3duIGJ1dHRvbnMgdGhhdCBDaHJvbWUgYW5kIEZpcmVmb3ggYWRkIHRvIGA8aW5wdXQgdHlwZT0nbnVtYmVyJz5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBSYWRpdXMgZm9yIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBmb3JtIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWVsZW1lbnQge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSAqIHVuaXRsZXNzLWNhbGMoJGlucHV0LWxpbmUtaGVpZ2h0KSkgKyAoZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICd0b3AnKSArIGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAnYm90dG9tJykpIC0gcmVtLWNhbGMoMSk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGlucHV0LXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3c7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS10ZXh0IHtcbiAgLy8gVGV4dCBpbnB1dHNcbiAgI3t0ZXh0LWlucHV0cygpfSxcbiAgdGV4dGFyZWEge1xuICAgIEBpbmNsdWRlIGZvcm0tZWxlbWVudDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLy8gVGV4dCBhcmVhc1xuICB0ZXh0YXJlYSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgJltyb3dzXSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgaW5wdXQsXG4gIHRleHRhcmVhIHtcbiAgICAvLyBQbGFjZWhvbGRlciB0ZXh0XG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZC9yZWFkb25seSBzdGF0ZVxuICAgICY6ZGlzYWJsZWQsXG4gICAgJltyZWFkb25seV0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9uIGJ1dHRvbi1saWtlIGlucHV0c1xuICBbdHlwZT0nc3VibWl0J10sXG4gIFt0eXBlPSdidXR0b24nXSB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAkZm9ybS1idXR0b24tcmFkaXVzO1xuICB9XG5cbiAgLy8gUmVzZXQgTm9ybWFsaXplIHNldHRpbmcgY29udGVudC1ib3ggdG8gc2VhcmNoIGVsZW1lbnRzXG4gIGlucHV0W3R5cGU9J3NlYXJjaCddIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIC8vIE51bWJlciBpbnB1dCBzdHlsZXNcbiAgW3R5cGU9J251bWJlciddIHtcbiAgICBAaWYgbm90ICRpbnB1dC1udW1iZXItc3Bpbm5lcnMge1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeFxuXG4gICAgICAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgICAgJjo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tY2hlY2tib3gge1xuICBbdHlwZT0nZmlsZSddLFxuICBbdHlwZT0nY2hlY2tib3gnXSxcbiAgW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0L2xhYmVsIHNpYmxpbmdzXG4gIFt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG4gIFt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG5cbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAmW2Zvcl0ge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXRzIGluc2lkZSBsYWJlbHNcbiAgbGFiZWwgPiBbdHlwZT0nY2hlY2tib3gnXSxcbiAgbGFiZWwgPiBbdHlwZT0ncmFkaW8nXSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAvLyBOb3JtYWxpemUgZmlsZSBpbnB1dCB3aWR0aFxuICBbdHlwZT0nZmlsZSddIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGZvcm0tbGFiZWwtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGZvcm0gbGFiZWxzLiBUaGUgaGlnaGVyIHRoZSBudW1iZXIsIHRoZSBtb3JlIHNwYWNlIGJldHdlZW4gdGhlIGxhYmVsIGFuZCBpdHMgaW5wdXQgZmllbGQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogMS44ICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG5cbiAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9ybS1sYWJlbC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3I7XG59XG5cbkBtaXhpbiBmb3JtLWxhYmVsLW1pZGRsZSB7XG4gICRpbnB1dC1ib3JkZXItd2lkdGg6IGdldC1ib3JkZXItdmFsdWUoJGlucHV0LWJvcmRlciwgd2lkdGgpO1xuXG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nIC8gMiArIHJlbS1jYWxjKCRpbnB1dC1ib3JkZXItd2lkdGgpKSAwO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWxhYmVsIHtcbiAgbGFiZWwge1xuICAgIEBpbmNsdWRlIGZvcm0tbGFiZWw7XG5cbiAgICAmLm1pZGRsZSB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWxhYmVsLW1pZGRsZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWxwdGV4dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzdHlsZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0taGVscHRleHQge1xuICAuaGVscC10ZXh0IHtcbiAgICAkbWFyZ2luLXRvcDogKCRmb3JtLXNwYWNpbmcgKiAwLjUpICogLTE7XG5cbiAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXRvcDtcbiAgICBmb250LXNpemU6ICRoZWxwdGV4dC1mb250LXNpemU7XG4gICAgZm9udC1zdHlsZTogJGhlbHB0ZXh0LWZvbnQtc3R5bGU7XG4gICAgY29sb3I6ICRoZWxwdGV4dC1jb2xvcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGVmdC9yaWdodCBwYWRkaW5nIG9mIGFuIHByZS9wb3N0Zml4ZWQgaW5wdXQgbGFiZWxcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1wcmVwb3N0Zml4IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAkZm9ybS1zcGFjaW5nICogMS41KTtcblxuICAuaW5wdXQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgdGFibGUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cblxuICAgID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAwICRpbnB1dC1yYWRpdXMgJGlucHV0LXJhZGl1cyAwLCAkaW5wdXQtcmFkaXVzIDAgMCAkaW5wdXQtcmFkaXVzKTtcbiAgICB9XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgID4gKiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAkaW5wdXQtcmFkaXVzIDAgMCAkaW5wdXQtcmFkaXVzLCAwICRpbnB1dC1yYWRpdXMgJGlucHV0LXJhZGl1cyAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAlaW5wdXQtZ3JvdXAtY2hpbGQge1xuICAgIG1hcmdpbjogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWxhYmVsIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nOiAwICRpbnB1dC1wcmVmaXgtcGFkZGluZztcbiAgICBib3JkZXI6ICRpbnB1dC1wcmVmaXgtYm9yZGVyO1xuICAgIGJhY2tncm91bmQ6ICRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDtcblxuICAgIGNvbG9yOiAkaW5wdXQtcHJlZml4LWNvbG9yO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtcHJlZml4LWJvcmRlcikge1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgYSxcbiAgICBpbnB1dCxcbiAgICBidXR0b24sXG4gICAgbGFiZWwge1xuICAgICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG5cbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICAgIH1cbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gICAgfVxuICB9XG5cbiAgLy8gU3BlY2lmaWNpdHkgYnVtcCBuZWVkZWQgdG8gcHJldmVudCBvdmVycmlkZSBieSBidXR0b25zXG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgYmV0d2VlbiB0aGUgbGVnZW5kIHRleHQgYW5kIGZpZWxkc2V0IGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKSAhZGVmYXVsdDtcblxuQG1peGluIGZpZWxkc2V0IHtcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xuICBwYWRkaW5nOiAkZmllbGRzZXQtcGFkZGluZztcbiAgYm9yZGVyOiAkZmllbGRzZXQtYm9yZGVyO1xuXG4gIGxlZ2VuZCB7XG4gICAgLy8gQ292ZXJzIHVwIHRoZSBmaWVsZHNldCdzIGJvcmRlciB0byBjcmVhdGUgYXJ0aWZpY2lhbCBwYWRkaW5nXG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IHJlbS1jYWxjKC0zKTtcbiAgICBwYWRkaW5nOiAkbGVnZW5kLXBhZGRpbmc7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1maWVsZHNldCB7XG4gIGZpZWxkc2V0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICBsZWdlbmQge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLmZpZWxkc2V0IHtcbiAgICBAaW5jbHVkZSBmaWVsZHNldDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgZHJvcGRvd24gdHJpYW5nbGUgaW5zaWRlIHNlbGVjdCBtZW51cy4gU2V0IHRvIGB0cmFuc3BhcmVudGAgdG8gcmVtb3ZlIGl0IGVudGlyZWx5LlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXRyaWFuZ2xlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1zZWxlY3Qge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSAqIHVuaXRsZXNzLWNhbGMoJGlucHV0LWxpbmUtaGVpZ2h0KSkgKyAoZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICd0b3AnKSArIGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAnYm90dG9tJykpIC0gcmVtLWNhbGMoMSk7XG5cbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZztcblxuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWJhY2tncm91bmQ7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuXG4gIEBpZiAkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yICE9IHRyYW5zcGFyZW50IHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRzZWxlY3QtdHJpYW5nbGUtY29sb3IpO1xuICAgIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkZ2xvYmFsLXJpZ2h0ICgtJGZvcm0tc3BhY2luZykgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuXG4gICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAoJGZvcm0tc3BhY2luZyAqIDEuNSk7XG4gIH1cblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICB9XG5cbiAgLy8gSGlkZSB0aGUgZHJvcGRvd24gYXJyb3cgc2hvd24gaW4gbmV3ZXIgSUUgdmVyc2lvbnNcbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICZbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXNlbGVjdCB7XG4gIHNlbGVjdCB7XG4gICAgQGluY2x1ZGUgZm9ybS1zZWxlY3Q7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFiaWRlXG4vLy8vXG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gaW5wdXRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1pbnB1dHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gbGFiZWxzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1sYWJlbHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHRvIHVzZSBmb3IgaW52YWxpZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHRvIHVzZSBmb3IgbGFiZWxzIG9mIGludmFsaWQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1lcnJvci1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgb2YgYW4gaW5wdXQgZmllbGQgdG8gaGF2ZSBhbiBlcnJvciBzdGF0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYWxlcnQtY29sb3JdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFja2dyb3VuZC1saWdodGVuIFsxMCVdIC0gTGlnaHRuZXNzIGxldmVsIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGZvcm0taW5wdXQtZXJyb3IoXG4gICRiYWNrZ3JvdW5kOiAkaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkLFxuICAkYmFja2dyb3VuZC1saWdodGVuOiAxMCVcbikge1xuICAmOm5vdCg6Zm9jdXMpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1peCgkYmFja2dyb3VuZCwgJHdoaXRlLCAkYmFja2dyb3VuZC1saWdodGVuKTtcbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGVycm9yIHN0eWxlcyB0byBhIGZvcm0gZWxlbWVudCwgdXNpbmcgdGhlIHZhbHVlcyBpbiB0aGUgc2V0dGluZ3MgZmlsZS5cbkBtaXhpbiBmb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogJGZvcm0tc3BhY2luZyAqIC0wLjU7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgZm9udC1zaXplOiAkaW5wdXQtZXJyb3ItZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGlucHV0LWVycm9yLWNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWVycm9yIHtcbiAgQGlmICRhYmlkZS1pbnB1dHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBpbnZhbGlkIGlucHV0c1xuICAgIC5pcy1pbnZhbGlkLWlucHV0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0taW5wdXQtZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgQGlmICRhYmlkZS1sYWJlbHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBsYWJlbHMgb2YgaW52YWxpZCBvdXRwdXRzXG4gICAgLmlzLWludmFsaWQtbGFiZWwge1xuICAgICAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9ybSBlcnJvciBlbGVtZW50XG4gIC5mb3JtLWVycm9yIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVycm9yO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIGZvcmNlLWVsZW1lbnQtbmVzdGluZywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYmxlXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciB0YWJsZSBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtYmFja2dyb3VuZDogJHdoaXRlICAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgc3RyaXBlZCB0YWJsZSByb3dzIGFuZCB0aGUgdGFibGUgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWNvbG9yLXNjYWxlOiA1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc3R5bGUgZm9yIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYmxlLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2Ygc3RhbmRhcmQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0cmlwZWQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKyAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCB0YWJsZXMgYXJlIHN0cmlwZWQgYnkgZGVmYXVsdCBhbmQgYW4gLnVuc3RyaXBlZCBjbGFzcyBpcyBjcmVhdGVkLiBJZiBgZmFsc2VgLCBhIC5zdHJpcGVkIGNsYXNzIGlzIGNyZWF0ZWQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHRhYmxlLWlzLXN0cmlwZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIHN0cmlwZWQgcm93cy5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBzdHJpcGUgb24gcm93cyBvZiB0aGUgdGFibGVzLCBleGNsdWRpbmcgdGhlIGhlYWRlciBhbmQgZm9vdGVyLiBJZiBldmVuLCB0aGUgZXZlbiByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIG9kZCwgdGhlIG9kZCByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIGVtcHR5LCBvciBhbnkgb3RoZXIgdmFsdWUsIHRoZSB0YWJsZSByb3dzIHdpbGwgaGF2ZSBubyBzdHJpcGluZy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kdGFibGUtc3RyaXBlOiBldmVuICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVhZGVyIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgaGVhZGVyIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWhlYWQtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWhlYWQtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGZvb3RlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgZm9vdGVyIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWZvb3Qtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWZvb3QtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgaGVhZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb290ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1mb290LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBoZWFkZXIgd2hlbiB1c2luZyBzdGFja2VkIHRhYmxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBhdCB3aGljaCBzdGFja2VkIHRhYmxlIHN3aXRjaGVzIGZyb20gbW9iaWxlIHRvIGRlc2t0b3Agdmlldy5cbi8vLyBAdHlwZSBCcmVha3BvaW50XG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtICFkZWZhdWx0O1xuXG5AbWl4aW4gLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlOiAkdGFibGUtc3RyaXBlKSB7XG4gIHRyIHtcbiAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIGV2ZW4sIGRhcmtlbiB0aGUgZXZlbiByb3dzLlxuICAgIEBpZiAkc3RyaXBlID09IGV2ZW4ge1xuICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gb2RkLCBkYXJrZW4gdGhlIG9kZCByb3dzLlxuICAgIEBlbHNlIGlmICRzdHJpcGUgPT0gb2RkIHtcbiAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gLXpmLXRhYmxlLXVuc3RyaXBlKCkge1xuICB0ciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBib3JkZXItYm90dG9tOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG59XG5cbkBtaXhpbiAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsICRpcy1zdHJpcGVkOiAkdGFibGUtaXMtc3RyaXBlZCkge1xuICB0aGVhZCxcbiAgdGJvZHksXG4gIHRmb290IHtcbiAgICBib3JkZXI6ICR0YWJsZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gIH1cblxuICAvLyBDYXB0aW9uXG4gIGNhcHRpb24ge1xuICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZFxuICB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWhlYWQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRhYmxlLWhlYWQtZm9udC1jb2xvcjtcbiAgfVxuXG4gIC8vIFRhYmxlIGZvb3RcbiAgdGZvb3Qge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1mb290LWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1mb290LWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBoZWFkIGFuZCBmb290XG4gIHRoZWFkLFxuICB0Zm9vdCB7XG4gICAgLy8gUm93cyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8vIENlbGxzIHdpdGhpbiBoZWFkIGFuZCBmb290XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICAgIHRleHQtYWxpZ246ICN7JGdsb2JhbC1sZWZ0fTtcbiAgICB9XG4gIH1cblxuICAvLyBUYWJsZSByb3dzXG4gIHRib2R5IHtcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICB9XG4gIH1cblxuICAvLyBJZiB0YWJsZXMgYXJlIHN0cmlwZWRcbiAgQGlmICRpcy1zdHJpcGVkID09IHRydWUge1xuICAgIHRib2R5IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZSk7XG4gICAgfVxuXG4gICAgJi51bnN0cmlwZWQge1xuICAgICAgdGJvZHkge1xuICAgICAgICBAaW5jbHVkZSAtemYtdGFibGUtdW5zdHJpcGUoKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGFibGVzIGFyZSBub3Qgc3RyaXBlZFxuICBAZWxzZSBpZiAkaXMtc3RyaXBlZCA9PSBmYWxzZSB7XG4gICAgdGJvZHkge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXVuc3RyaXBlKCk7XG4gICAgfVxuXG4gICAgJi5zdHJpcGVkIHtcbiAgICAgIHRib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciB0YWJsZXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RyaXBlIFskdGFibGUtc3RyaXBlXSAtIFVzZXMga2V5d29yZHMgZXZlbiwgb2RkLCBvciBub25lIHRvIGRhcmtlbiByb3dzIG9mIHRoZSB0YWJsZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZXZlbi5cbkBtaXhpbiB0YWJsZShcbiAgJHN0cmlwZTogJHRhYmxlLXN0cmlwZSxcbiAgJG5lc3Q6IGZhbHNlXG4pIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuICBAaWYgJG5lc3Qge1xuICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBhdC1yb290IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBhYmlsaXR5IHRvIGhvcml6b250YWxseSBzY3JvbGwgdGhlIHRhYmxlIHdoZW4gdGhlIGNvbnRlbnQgb3ZlcmZsb3dzIGhvcml6b250YWxseS5cbkBtaXhpbiB0YWJsZS1zY3JvbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi8vLyBTbGlnaHRseSBkYXJrZW5zIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuQG1peGluIHRhYmxlLWhvdmVyIHtcbiAgdGhlYWQgdHIge1xuICAgIC8vRGFya2VucyB0aGUgdGFibGUgaGVhZGVyIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtaGVhZC1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgdGZvb3QgdHIge1xuICAgIC8vRGFya2VucyB0aGUgdGFibGUgZm9vdGVyIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtZm9vdC1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgdGJvZHkgdHIge1xuICAgIC8vRGFya2VucyB0aGUgbm9uLXN0cmlwZWQgdGFibGUgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgQGlmICR0YWJsZS1pcy1zdHJpcGVkID09IHRydWUge1xuICAgIC8vIERhcmtlbnMgdGhlIGV2ZW4gc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGFya2VucyB0aGUgb2RkIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAZWxzZWlmKCR0YWJsZS1zdHJpcGUgPT0gb2RkKSB7XG4gICAgICAmOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShvZGQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgJHRhYmxlLWlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIC8vIERhcmtlbnMgdGhlIGV2ZW4gc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcbiAgICAgICYuc3RyaXBlZCB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2VpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWNrZWQgdGFibGUuIFVzZWZ1bCBmb3Igc21hbGwtc2NyZWVuIGxheW91dHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaGVhZGVyIFskc2hvdy1oZWFkZXItZm9yLXN0YWNrZWRdIC0gU2hvdyB0aGUgZmlyc3QgdGggb2YgaGVhZGVyIHdoZW4gc3RhY2tlZC5cbkBtaXhpbiB0YWJsZS1zdGFjaygkaGVhZGVyOiAkc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQpIHtcbiAgQGlmICRoZWFkZXIge1xuICAgIHRoZWFkIHtcbiAgICAgIHRoIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgdHIsXG4gIHRoLFxuICB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJsZSgkbmVzdDogZmFsc2UpIHtcbiAgdGFibGUge1xuICAgIEBpbmNsdWRlIHRhYmxlKCRuZXN0OiAkbmVzdCk7XG4gIH1cblxuICB0YWJsZS5zdGFjayB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdGFibGUtc3RhY2stYnJlYWtwb2ludCBkb3duKSB7XG4gICAgICBAaW5jbHVkZSB0YWJsZS1zdGFjaztcbiAgICB9XG4gIH1cblxuICB0YWJsZS5zY3JvbGwge1xuICAgIEBpbmNsdWRlIHRhYmxlLXNjcm9sbDtcbiAgfVxuXG4gIHRhYmxlLmhvdmVyIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1ob3ZlcjtcbiAgfVxuXG4gIC50YWJsZS1zY3JvbGwge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICB0YWJsZSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdtYXRoJztcblxuJGNvbnRyYXN0LXdhcm5pbmdzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ2hlY2tzIHRoZSBsdW1pbmFuY2Ugb2YgYCRjb2xvcmAuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBjaGVjayB0aGUgbHVtaW5hbmNlIG9mLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGx1bWluYW5jZSBvZiBgJGNvbG9yYC5cbkBmdW5jdGlvbiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yKSB7XG4gIC8vIEFkYXB0ZWQgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL0xlYVZlcm91L2NvbnRyYXN0LXJhdGlvL2Jsb2IvZ2gtcGFnZXMvY29sb3IuanNcbiAgLy8gRm9ybXVsYTogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNyZWxhdGl2ZWx1bWluYW5jZWRlZlxuICAkcmdiYTogcmVkKCRjb2xvciksIGdyZWVuKCRjb2xvciksIGJsdWUoJGNvbG9yKTtcbiAgJHJnYmEyOiAoKTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDMge1xuICAgICRyZ2I6IG50aCgkcmdiYSwgJGkpO1xuICAgICRyZ2I6ICRyZ2IgLyAyNTU7XG5cbiAgICAkcmdiOiBpZigkcmdiIDwgMC4wMzkyOCwgJHJnYiAvIDEyLjkyLCBwb3coKCRyZ2IgKyAwLjA1NSkgLyAxLjA1NSwgMi40KSk7XG5cbiAgICAkcmdiYTI6IGFwcGVuZCgkcmdiYTIsICRyZ2IpO1xuICB9XG5cbiAgQHJldHVybiAwLjIxMjYgKiBudGgoJHJnYmEyLCAxKSArIDAuNzE1MiAqIG50aCgkcmdiYTIsIDIpICsgMC4wNzIyICogbnRoKCRyZ2JhMiwgMyk7XG59XG5cbi8vLyBDaGVja3MgdGhlIGNvbnRyYXN0IHJhdGlvIG9mIHR3byBjb2xvcnMuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IxIC0gRmlyc3QgY29sb3IgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IyIC0gU2Vjb25kIGNvbG9yIHRvIGNvbXBhcmUuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgY29udHJhc3QgcmF0aW8gb2YgdGhlIGNvbXBhcmVkIGNvbG9ycy5cbkBmdW5jdGlvbiBjb2xvci1jb250cmFzdCgkY29sb3IxLCAkY29sb3IyKSB7XG4gIC8vIEFkYXB0ZWQgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL0xlYVZlcm91L2NvbnRyYXN0LXJhdGlvL2Jsb2IvZ2gtcGFnZXMvY29sb3IuanNcbiAgLy8gRm9ybXVsYTogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNjb250cmFzdC1yYXRpb2RlZlxuICAkbHVtaW5hbmNlMTogY29sb3ItbHVtaW5hbmNlKCRjb2xvcjEpICsgMC4wNTtcbiAgJGx1bWluYW5jZTI6IGNvbG9yLWx1bWluYW5jZSgkY29sb3IyKSArIDAuMDU7XG4gICRyYXRpbzogJGx1bWluYW5jZTEgLyAkbHVtaW5hbmNlMjtcblxuICBAaWYgJGx1bWluYW5jZTIgPiAkbHVtaW5hbmNlMSB7XG4gICAgJHJhdGlvOiAxIC8gJHJhdGlvO1xuICB9XG5cbiAgJHJhdGlvOiByb3VuZCgkcmF0aW8gKiAxMCkgLyAxMDtcblxuICBAcmV0dXJuICRyYXRpbztcbn1cblxuLy8vIENoZWNrcyB0aGUgbHVtaW5hbmNlIG9mIGAkYmFzZWAsIGFuZCByZXR1cm5zIHRoZSBjb2xvciBmcm9tIGAkY29sb3JzYCAobGlzdCBvZiBjb2xvcnMpIHRoYXQgaGFzIHRoZSBtb3N0IGNvbnRyYXN0LlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhc2UgLSBDb2xvciB0byBjaGVjayBsdW1pbmFuY2UuXG4vLy8gQHBhcmFtIHtMaXN0fSAkY29sb3JzIFsoJHdoaXRlLCAkYmxhY2spXSAtIENvbG9ycyB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG9sZXJhbmNlIFskZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlXSAtIENvbnRyYXN0IHRvbGVyYW5jZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gdGhlIGNvbG9yIGZyb20gYCRjb2xvcnNgIChsaXN0IG9mIGNvbG9ycykgdGhhdCBoYXMgdGhlIG1vc3QgY29udHJhc3QuXG5AZnVuY3Rpb24gY29sb3ItcGljay1jb250cmFzdCgkYmFzZSwgJGNvbG9yczogKCR3aGl0ZSwgJGJsYWNrKSwgJHRvbGVyYW5jZTogJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZSkge1xuICAkY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgMSkpO1xuICAkYmVzdDogbnRoKCRjb2xvcnMsIDEpO1xuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggbGVuZ3RoKCRjb2xvcnMpIHtcbiAgICAkY3VycmVudC1jb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAkaSkpO1xuICAgIEBpZiAoJGN1cnJlbnQtY29udHJhc3QgLSAkY29udHJhc3QgPiAkdG9sZXJhbmNlKSB7XG4gICAgICAkY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgJGkpKTtcbiAgICAgICRiZXN0OiBudGgoJGNvbG9ycywgJGkpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJGNvbnRyYXN0LXdhcm5pbmdzIGFuZCAkY29udHJhc3QgPCAzKSB7XG4gICAgQHdhcm4gXCJDb250cmFzdCByYXRpbyBvZiAjeyRiZXN0fSBvbiAjeyRiYXNlfSBpcyBwcmV0dHkgYmFkLCBqdXN0ICN7JGNvbnRyYXN0fVwiO1xuICB9XG5cbiAgQHJldHVybiAkYmVzdDtcbn1cblxuLy8vIFNjYWxlcyBhIGNvbG9yIHRvIGJlIGRhcmtlciBpZiBpdCdzIGxpZ2h0LCBvciBsaWdodGVyIGlmIGl0J3MgZGFyay4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gdGludCBhIGNvbG9yIGFwcHJvcHJpYXRlIHRvIGl0cyBsaWdodG5lc3MuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBzY2FsZS5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICRzY2FsZSBbNSVdIC0gQW1vdW50IHRvIHNjYWxlIHVwIG9yIGRvd24uXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkdGhyZXNob2xkIFs0MCVdIC0gVGhyZXNob2xkIG9mIGxpZ2h0bmVzcyB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBBIHNjYWxlZCBjb2xvci5cbkBmdW5jdGlvbiBzbWFydC1zY2FsZSgkY29sb3IsICRzY2FsZTogNSUsICR0aHJlc2hvbGQ6IDQwJSkge1xuICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkIHtcbiAgICAkc2NhbGU6IC0kc2NhbGU7XG4gIH1cbiAgQHJldHVybiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRzY2FsZSk7XG59XG5cbi8vLyBHZXQgY29sb3IgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbi8vL1xuLy8vIEBwYXJhbSB7a2V5fSBjb2xvciBrZXkgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gY29sb3IgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbkBmdW5jdGlvbiBnZXQtY29sb3IoJGtleSkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJGtleSkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCAka2V5KTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGVycm9yICdnaXZlbiAka2V5IGlzIG5vdCBhdmFpbGFibGUgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSc7XG4gIH1cbn1cblxuLy8vIFRyYW5zZmVycyB0aGUgY29sb3JzIGluIHRoZSBgJGZvdW5kYXRpb24tcGFsZXR0ZWBtYXAgaW50byB2YXJpYWJsZXMsIHN1Y2ggYXMgYCRwcmltYXJ5LWNvbG9yYCBhbmQgYCRzZWNvbmRhcnktY29sb3JgLiBDYWxsIHRoaXMgbWl4aW4gYmVsb3cgdGhlIEdsb2JhbCBzZWN0aW9uIG9mIHlvdXIgc2V0dGluZ3MgZmlsZSB0byBwcm9wZXJseSBtaWdyYXRlIHlvdXIgY29kZWJhc2UuXG5AbWl4aW4gYWRkLWZvdW5kYXRpb24tY29sb3JzKCkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICAgICRwcmltYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkge1xuICAgICRzZWNvbmRhcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSB7XG4gICAgJHN1Y2Nlc3MtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2VzcykgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykge1xuICAgICR3YXJuaW5nLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSB7XG4gICAgJGFsZXJ0LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSAhZ2xvYmFsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjbG9zZS1idXR0b25cbi8vLy9cblxuLy8vIERlZmF1bHQgcG9zaXRpb24gb2YgdGhlIGNsb3NlIGJ1dHRvbi4gVGhlIGZpcnN0IHZhbHVlIHNob3VsZCBiZSBgcmlnaHRgIG9yIGBsZWZ0YCwgYW5kIHRoZSBzZWNvbmQgdmFsdWUgc2hvdWxkIGJlIGB0b3BgIG9yIGBib3R0b21gLlxuLy8vIEB0eXBlIExpc3RcbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogcmlnaHQgdG9wICFkZWZhdWx0O1xuXG4vLy8gUmlnaHQgKG9yIGxlZnQpIG9mZnNldChzKSBmb3IgYSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgTnVtYmVyfE1hcFxuJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsOiAoXG4gIHNtYWxsOiAwLjY2cmVtLFxuICBtZWRpdW06IDFyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gVG9wIChvciBib3R0b20pIG9mZnNldChzKSBmb3IgYSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgTnVtYmVyfE1hcFxuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogKFxuICBzbWFsbDogMC4zM2VtLFxuICBtZWRpdW06IDAuNXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZShzKSBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1zaXplOiAoXG4gIHNtYWxsOiAxLjVlbSxcbiAgbWVkaXVtOiAyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBjbG9zZSBidXR0b24uIEl0IGFmZmVjdHMgdGhlIHNwYWNpbmcgb2YgdGhlIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uIHdoZW4gYmVpbmcgaG92ZXJlZCBvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2sgIWRlZmF1bHQ7XG5cblxuLy8vIEdldCB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gZm9yIGEgY2xvc2UgYnV0dG9uLiBJZiB0aGUgaW5wdXQgdmFsdWUgaXMgYSBudW1iZXIsIHRoZSBudW1iZXIgaXMgcmV0dXJuZWQuIElmIHRoZSBpbnB1dCB2YWx1ZSBpcyBhIGNvbmZpZyBtYXAgYW5kIHRoZSBtYXAgaGFzIHRoZSBrZXkgYCRzaXplYCwgdGhlIHZhbHVlIGlzIHJldHVybmVkLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkdmFsdWUgLSBBIG51bWJlciBvciBtYXAgdGhhdCByZXByZXNlbnRzIHRoZSBzaXplIG9yIHBvc2l0aW9uIHZhbHVlKHMpIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIFRoZSBzaXplIG9mIHRoZSBjbG9zZSBidXR0b24gdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSBUaGUgZ2l2ZW4gbnVtYmVyIG9yIHRoZSB2YWx1ZSBmb3VuZCBpbiB0aGUgbWFwLlxuQGZ1bmN0aW9uIC16Zi1nZXQtc2l6ZS12YWwoJHZhbHVlLCAkc2l6ZSkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgLy8gSWYgaXQgaXMsIGp1c3QgcmV0dXJuIHRoZSBudW1iZXJcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBzaXplIG5hbWUgZXhpc3RzIGluIHRoZSB2YWx1ZSBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJHZhbHVlLCAkc2l6ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIHJldHVybiB0aGUgdmFsdWVcbiAgICBAcmV0dXJuIG1hcC1nZXQoJHZhbHVlLCAkc2l6ZSk7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHNpemUgYW5kIHBvc2l0aW9uIG9mIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgW21lZGl1bV0gLSBUaGUgc2l6ZSB0byB1c2UuIFNldCB0byBgc21hbGxgIHRvIGNyZWF0ZSBhIHNtYWxsIGNsb3NlIGJ1dHRvbi4gVGhlICdtZWRpdW0nIHZhbHVlcyBkZWZpbmVkIGluIGAkY2xvc2VidXR0b24tKmAgdmFyaWFibGVzIHdpbGwgYmUgdXNlZCBhcyB0aGUgZGVmYXVsdCBzaXplIGFuZCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuQG1peGluIGNsb3NlLWJ1dHRvbi1zaXplKCRzaXplKSB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gICN7JHh9OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbCwgJHNpemUpO1xuICAjeyR5fTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsLCAkc2l6ZSk7XG4gIGZvbnQtc2l6ZTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tc2l6ZSwgJHNpemUpO1xuICBsaW5lLWhlaWdodDogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tbGluZWhlaWdodCwgJHNpemUpO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2xvc2UgYnV0dG9uLCB1c2luZyB0aGUgc3R5bGVzIGluIHRoZSBzZXR0aW5ncyB2YXJpYWJsZXMuXG5AbWl4aW4gY2xvc2UtYnV0dG9uIHtcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xuICAkeTogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMik7XG5cbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbG9yOiAkY2xvc2VidXR0b24tY29sb3I7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbiB7XG4gIC5jbG9zZS1idXR0b24ge1xuICAgIEBpbmNsdWRlIGNsb3NlLWJ1dHRvbjtcblxuICAgICYuc21hbGwgeyBAaW5jbHVkZSBjbG9zZS1idXR0b24tc2l6ZShzbWFsbCkgfVxuICAgICYsICYubWVkaXVtIHsgQGluY2x1ZGUgY2xvc2UtYnV0dG9uLXNpemUobWVkaXVtKSB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bi13aWR0aDogMzAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgZHJvcGRvd24gcGFuZXMuIEVhY2ggc2l6ZSBpcyBhIENTUyBjbGFzcyB5b3UgY2FuIGFwcGx5LlxuLy8vIEB0eXBlIE1hcFxuJGRyb3Bkb3duLXNpemVzOiAoXG4gIHRpbnk6IDEwMHB4LFxuICBzbWFsbDogMjAwcHgsXG4gIGxhcmdlOiA0MDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBcHBsaWVzIHN0eWxlcyBmb3IgYSBiYXNpYyBkcm9wZG93bi5cbkBtaXhpbiBkcm9wZG93bi1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuXG4gIHdpZHRoOiAkZHJvcGRvd24td2lkdGg7XG4gIHBhZGRpbmc6ICRkcm9wZG93bi1wYWRkaW5nO1xuXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyOiAkZHJvcGRvd24tYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkZHJvcGRvd24tcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJvcGRvd24tYmFja2dyb3VuZDtcblxuICBmb250LXNpemU6ICRkcm9wZG93bi1mb250LXNpemU7XG5cblxuICAvLyBBbGxvdyBhbiBpbnRlcm1pdHRlbnQgc3RhdGUgdG8gZG8gcG9zaXRpb25pbmcgYmVmb3JlIG1ha2luZyB2aXNpYmxlLlxuICAmLmlzLW9wZW5pbmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgJi5pcy1vcGVuIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duIHtcbiAgLmRyb3Bkb3duLXBhbmUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcjtcbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkZHJvcGRvd24tc2l6ZXMge1xuICAgIC5kcm9wZG93bi1wYW5lLiN7JG5hbWV9IHtcbiAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duLW1lbnVcbi8vLy9cblxuLy8vIEVuYWJsZXMgYXJyb3dzIGZvciBpdGVtcyB3aXRoIGRyb3Bkb3duIG1lbnVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgcGFkZGluZyBmb3IgYWxpZ25pbmcgdGhlIGFycm93IGNvcnJlY3RseS5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYXJyb3ctcGFkZGluZzogMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gTWluaW11bSB3aWR0aCBvZiBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0b3AgbGV2ZWwgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJvcGRvd25zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgdG9wIGxldmVsIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3dubWVudS1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBzdWItbWVudSBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bm1lbnUtc3VibWVudS1wYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd25tZW51LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gQm9yZGVyIHdpZHRoIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLyBVc2VkIHRvIGFkanVzdCB0b3AgbWFyZ2luIG9mIGEgc3ViLW1lbnUgaWYgYSBib3JkZXIgaXMgdXNlZC5cbi8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGg6IG50aCgkZHJvcGRvd25tZW51LWJvcmRlciwgMSk7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBkcm9wZG93biBtZW51IGl0ZW0uIEV4cGxpY2l0IG92ZXJyaWRlIGZvciBtZW51IGRlZmF1bHRzXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1tZW51LWl0ZW0tY29sb3ItYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBkcm9wZG93biBtZW51IGl0ZW0uIEV4cGxpY2l0IG92ZXJyaWRlIGZvciBtZW51IGRlZmF1bHRzXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtZHJvcGRvd24tbGVmdC1yaWdodC1hcnJvd3Mge1xuICA+IGE6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAxNHB4O1xuICB9XG5cbiAgJi5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDVweDtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcbiAgfVxuXG4gICYub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICB9XG59XG5cbkBtaXhpbiBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgID4gbGkub3BlbnMtbGVmdCB7XG4gICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpLm9wZW5zLXJpZ2h0IHtcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAkZHJvcGRvd25tZW51LWFycm93LXBhZGRpbmc7XG4gICAgICB9XG5cbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuICAgICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICAgICN7JGdsb2JhbC1sZWZ0fTogYXV0bztcbiAgICAgICAgbWFyZ2luLXRvcDogLTEgKiAoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplIC8gMik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgID4gbGkge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtbGVmdCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtcmlnaHQge1xuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIHpmLWRyb3Bkb3duLWxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93bi1tZW51IHtcbiAgLmRyb3Bkb3duLm1lbnUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgICBwYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgLmlzLWFjdGl2ZSA+IGEge1xuICAgICAgYmFja2dyb3VuZDogJGRyb3Bkb3duLW1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgIGNvbG9yOiAkZHJvcGRvd24tbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAubm8tanMgJiB1bCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5uZXN0ZWQuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW4pO1xuICAgIH1cblxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAgICYuI3skc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLiN7JHNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LmZpcnN0LXN1YiB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwge1xuICAgIHdpZHRoOiAxMDBweDtcblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgYTo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06IGF1dG87XG4gICAgICBtYXJnaW4tdG9wOiAtMSAqICRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTtcbiAgICB9XG5cbiAgICAmLm9wZW5zLWlubmVyID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuXG4gICAgICB0b3A6IDEwMCU7XG4gICAgICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICYub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAmLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtaW4td2lkdGg6ICRkcm9wZG93bm1lbnUtbWluLXdpZHRoO1xuXG4gICAgYm9yZGVyOiAkZHJvcGRvd25tZW51LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LXN1Ym1lbnUtYmFja2dyb3VuZDtcblxuICAgIC5kcm9wZG93biAmIGEge1xuICAgICAgcGFkZGluZzogJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIHpmLWRyb3Bkb3duLWxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAodHlwZS1vZigkZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCkgPT0gJ251bWJlcicpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgbWFyZ2luLXRvcDogKC0kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBbVE9ET10gQ3V0IGJhY2sgc3BlY2lmaWNpdHlcbiAgICAvLyY6bm90KC5qcy1kcm9wZG93bi1ub2hvdmVyKSA+IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudDpob3ZlciA+ICYsIC8vIHdoeSBpcyB0aGlzIGxpbmUgbmVlZGVkPyBPcGVuaW5nIGlzIGhhbmRsZWQgYnkgSlMgYW5kIHRoaXMgY2F1c2VzIHNvbWUgdWdseSBmbGlja2VyaW5nIHdoZW4gdGhlIHN1YiBpcyByZS1wb3NpdGlvbmVkIGF1dG9tYXRpY2FsbHkuLi5cbiAgICAmLmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lbnVcbi8vLy9cblxuLy8vIE1hcmdpbiBvZiBhIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0LWhhbmQgbWFyZ2luIG9mIGEgbmVzdGVkIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGl0ZW1zIGluIGEgcGlsbCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaXRlbXMtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgc2ltcGxlIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1zaW1wbGUtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYW4gaWNvbiBhbmQgdGV4dCBpbiBhIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGFuIGhvdmVyZWQgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgbWVudSBzdGF0ZS4gSWYgdHJ1ZSwgdGhpcyBkdXBsaWNhdGUgYGFjdGl2ZWAgd2l0aCBgaXMtYWN0aXZlYC4gXG4vLy8gQnV0IHBsZWFzZSBub3RlIHRoYXQgYGFjdGl2ZWAgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LXN0YXRlLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgbWVudSBjZW50ZXJlZC4gSWYgdHJ1ZSwgdGhpcyBkdXBsaWNhdGUgYC5tZW51LWNlbnRlcmVkID4gLm1lbnVgIHdpdGggYC5tZW51LmFsaWduLWNlbnRlcmAuIFxuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IGBtZW51LWNlbnRlcmVkYCB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciB1c2luZyBgaWNvbi0qYCBjbGFzc2VzIHdpdGhvdXQgYC5pY29uc2AgY2xhc3Nlc1xuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IHRoaXMgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtaWNvbnMtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBNZW51LlxuQG1peGluIG1lbnUtYmFzZSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cbiAgbGkge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgfVxuXG4gIGEsXG4gIC5idXR0b24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkbWVudS1pdGVtcy1wYWRkaW5nO1xuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9mIGlubmVyIGVsZW1lbnRzXG4gIGlucHV0LFxuICBzZWxlY3QsXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cblxuLy8vIEV4cGFuZHMgdGhlIGl0ZW1zIG9mIGEgTWVudSwgc28gZWFjaCBpdGVtIGlzIHRoZSBzYW1lIHdpZHRoLlxuQG1peGluIG1lbnUtZXhwYW5kIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgPiBsaSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFsaWduIG1lbnUgaXRlbXMuXG5AbWl4aW4gbWVudS1hbGlnbigkYWxpZ25tZW50KSB7XG4gIEBpZiAkYWxpZ25tZW50ID09IGxlZnQge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi52ZXJ0aWNhbCBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG5cbiAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgICAgfVxuXG4gICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSBjZW50ZXIge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgYSBNZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbaG9yaXpvbnRhbF0gLSBEaXJlY3Rpb24gb2YgdGhlIE1lbnUuIENhbiBiZSBgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYC5cbkBtaXhpbiBtZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbXBsZSBNZW51LCB3aGljaCBoYXMgbm8gcGFkZGluZyBvciBob3ZlciBzdGF0ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgWyRnbG9iYWwtbGVmdF0gLSBEaXJlY3Rpb24gb2YgdGhlIG1lbnUuIFRoaXMgZWZmZWN0cyB0aGUgc2lkZSBvZiB0aGUgYDxsaT5gIHRoYXQgcmVjZWl2ZXMgdGhlIG1hcmdpbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1hcmdpbiBbJG1lbnUtc2ltcGxlLW1hcmdpbl0gLSBUaGUgbWFyZ2luIHRvIGFwcGx5IHRvIGVhY2ggYDxsaT5gLlxuQG1peGluIG1lbnUtc2ltcGxlKCRkaXI6ICRnbG9iYWwtbGVmdCwgJG1hcmdpbjogJG1lbnUtc2ltcGxlLW1hcmdpbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgbGkgKyBsaSB7XG4gICAgbWFyZ2luLSN7JGRpcn06ICRtYXJnaW47XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBuZXN0ZWQgTWVudSwgYnkgYWRkaW5nIGBtYXJnaW4tbGVmdGAgdG8gdGhlIG1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJG1hcmdpbiBbJG1lbnUtbmVzdGVkLW1hcmdpbl0gLSBMZW5ndGggb2YgdGhlIG1hcmdpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRuZXN0ZWQtYWxpZ25tZW50IFtsZWZ0XSAtIEFsaWdubWVudCBvZiB0aGUgbmVzdGVkIGNsYXNzXG5AbWl4aW4gbWVudS1uZXN0ZWQoXG4gICRtYXJnaW46ICRtZW51LW5lc3RlZC1tYXJnaW4sXG4gICRuZXN0ZWQtYWxpZ25tZW50OiBsZWZ0XG4pIHtcbiAgQGlmICRuZXN0ZWQtYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJG1hcmdpbjtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbWFyZ2luO1xuICB9XG5cbn1cblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBpY29ucyBpbiBtZW51cy5cbkBtaXhpbiBtZW51LWljb25zKCkge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBhIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBpbWcsXG4gICAgaSxcbiAgICBzdmcge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgKyBzcGFuIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgcG9zaXRpb24gY2xhc3NlcyBmb3IgaWNvbnMgd2l0aGluIGEgbWVudS5cbkBtaXhpbiBtZW51LWljb24tcG9zaXRpb24oJHBvc2l0aW9uOiBsZWZ0LCAkc3BhY2luZzogJG1lbnUtaWNvbi1zcGFjaW5nKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkc3BhY2luZztcblxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvICRzcGFjaW5nO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46ICRzcGFjaW5nIGF1dG8gMDtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1lbnUtdGV4dCB7XG4gIHBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbkBtaXhpbiBtZW51LXN0YXRlLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU7XG4gIGNvbG9yOiAkbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVudSB7XG4gIC5tZW51IHtcbiAgICBAaW5jbHVkZSBtZW51LWJhc2U7XG5cbiAgICAvLyBEZWZhdWx0IG9yaWVudGF0aW9uOiBob3Jpem9udGFsXG4gICAgJiwgJi5ob3Jpem9udGFsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIG9yaWVudGF0aW9uIG1vZGlmaWVyXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBtb2RpZmllciBmb3IgaG9yaXpvbnRhbCBvcmllbnRhdGlvblxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgfVxuXG4gICAgLy8gU2ltcGxlXG4gICAgJi5zaW1wbGUge1xuICAgICAgQGluY2x1ZGUgbWVudS1zaW1wbGU7XG4gICAgfVxuXG4gICAgLy8gQnJlYWtwb2ludCBzcGVjaWZpYyB2ZXJzaW9uc1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiBmYWxzZSkge1xuICAgICAgJi4jeyQtemYtc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tZXhwYW5kZWQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tc2ltcGxlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTmVzdGluZ1xuICAgICYubmVzdGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkO1xuICAgIH1cblxuICAgIC8vIEljb24gQmFzZSBTdHlsZXNcbiAgICAmLmljb25zIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbnM7XG4gICAgfVxuXG4gICAgLy8gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSBmb3IgYWN0aXZlIHN0YXRlXG4gICAgQGlmICRtZW51LWljb25zLWJhY2stY29tcGF0IHtcbiAgICAgICYuaWNvbi10b3AsXG4gICAgICAmLmljb24tcmlnaHQsXG4gICAgICAmLmljb24tYm90dG9tLFxuICAgICAgJi5pY29uLWxlZnQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWljb25zO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEljb24gTGVmdFxuICAgICYuaWNvbi1sZWZ0IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihsZWZ0KTtcbiAgICB9XG5cbiAgICAvLyBJY29uIFJpZ2h0XG4gICAgJi5pY29uLXJpZ2h0IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihyaWdodCk7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBUb3BcbiAgICAmLmljb24tdG9wIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbih0b3ApO1xuICAgIH1cblxuICAgIC8vIEljb24gQm90dG9tXG4gICAgJi5pY29uLWJvdHRvbSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24oYm90dG9tKTtcbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgc3RhdGVcbiAgICAuaXMtYWN0aXZlID4gYSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXN0YXRlLWFjdGl2ZTtcbiAgICB9XG4gICAgXG4gICAgLy8gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSBmb3IgYWN0aXZlIHN0YXRlXG4gICAgQGlmICRtZW51LXN0YXRlLWJhY2stY29tcGF0IHtcbiAgICAgIC5hY3RpdmUgPiBhIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1zdGF0ZS1hY3RpdmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gbGVmdFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLWxlZnR9IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24obGVmdCk7XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gcmlnaHRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihyaWdodCk7XG5cbiAgICAgIC5uZXN0ZWQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkbmVzdGVkLWFsaWdubWVudDogcmlnaHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsaWduIGNlbnRlclxuICAgICYuYWxpZ24tY2VudGVyIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24oY2VudGVyKTtcbiAgICB9XG5cbiAgICAubWVudS10ZXh0IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtdGV4dDtcbiAgICB9XG4gIH1cblxuICBAaWYgJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQge1xuICAgIC5tZW51LWNlbnRlcmVkIHtcbiAgICAgID4gLm1lbnUge1xuICAgICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihjZW50ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFByZXZlbnQgRk9VQyB3aGVuIHVzaW5nIHRoZSBSZXNwb25zaXZlIE1lbnUgcGx1Z2luXG4gIC5uby1qcyBbZGF0YS1yZXNwb25zaXZlLW1lbnVdIHVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIvKlxuQWRkcyBzb21lIGZ1bmN0aW9uYWxpdHkgdG8gZm91bmRhdGlvbi5cblxuQHNpbmNlIDAuMS4wXG4qL1xuXG4uY29sbGFwc2UtbGVmdCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmNvbGxhcHNlLXJpZ2h0IHtcbiAgcGFkZGluZy1yaWdodDogMDtcbn0iLCIvLy8gQXBwbGllcyBiYXNpYyB0cmFuc2l0aW9uIHNldHRpbmdzIHRvIGFuIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gdHJhbnNpdGlvbi1iYXNpY3MoXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgQGluY2x1ZGUgLW1vdGlvbi11aS1kZWZhdWx0cztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJHRpbWluZztcbiAgdHJhbnNpdGlvbi1kZWxheTogJGRlbGF5O1xufVxuXG4vLy8gV3JhcHMgdGhlIGNvbnRlbnQgaW4gdGhlIHNldHVwIGNsYXNzIGZvciBhIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIC0gU3RhdGUgdG8gc2V0dXAgZm9yIHRyYW5zaXRpb24uXG5AbWl4aW4gdHJhbnNpdGlvbi1zdGFydCgkZGlyKSB7XG4gICRzZWxlY3RvcjogLW11aS1idWlsZC1zZWxlY3RvcihtYXAtZ2V0KCRtb3Rpb24tdWktc3RhdGVzLCAkZGlyKSk7XG5cbiAgQGF0LXJvb3Qge1xuICAgICN7JHNlbGVjdG9yfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFdyYXBzIHRoZSBjb250ZW50IGluIHRoZSBhY3RpdmUgY2xhc3MgZm9yIGEgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgLSBTdGF0ZSB0byBhY3RpdmF0ZSBhIHRyYW5zaXRpb24gb24uXG5AbWl4aW4gdHJhbnNpdGlvbi1lbmQoJGRpcikge1xuICAkc2VsZWN0b3I6IC1tdWktYnVpbGQtc2VsZWN0b3IobWFwLWdldCgkbW90aW9uLXVpLXN0YXRlcywgJGRpciksIHRydWUpO1xuXG4gIEBhdC1yb290IHtcbiAgICAjeyRzZWxlY3Rvcn0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzdGFnZ2VyIGFuaW1hdGlvbiwgd2hpY2ggY2FuIGJlIHVzZWQgd2l0aCBBbmd1bGFyJ3MgYG5nLXJlcGVhdGAuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5LWFtb3VudCAtIEFtb3VudCBvZiB0aW1lIGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIHRvIGFkZCBiZXR3ZWVuIGVhY2ggaXRlbSdzIGFuaW1hdGlvbi5cbkBtaXhpbiBzdGFnZ2VyKCRkZWxheS1hbW91bnQpIHtcbiAgdHJhbnNpdGlvbi1kZWxheTogJGRlbGF5LWFtb3VudDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMDsgLy8gUHJldmVudCBhY2NpZGVudGFsIENTUyBpbmhlcml0YW5jZVxufVxuIiwiLy8gc2Nzcy1saW50OmRpc2FibGUgSW1wb3J0YW50UnVsZSwgU3BhY2VBZnRlckNvbW1hLCBTaW5nbGVMaW5lUGVyUHJvcGVydHlcblxuQG1peGluIC1tb3Rpb24tdWktZGVmYXVsdHMge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdWktc3BlZWRzLCBkZWZhdWx0KTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IG1hcC1nZXQoJG1vdGlvbi11aS1lYXNpbmdzLCBkZWZhdWx0KTtcbn1cblxuLy8gVHJhbnNpdGlvbnNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5AbWl4aW4gbW90aW9uLXVpLXRyYW5zaXRpb25zIHtcbiAgLy8gU2xpZGVcbiAgLnNsaWRlLWluLWRvd24gICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICBkb3duKTsgfVxuICAuc2xpZGUtaW4tbGVmdCAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIHJpZ2h0KTsgfVxuICAuc2xpZGUtaW4tdXAgICAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIHVwKTsgfVxuICAuc2xpZGUtaW4tcmlnaHQgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIGxlZnQpOyB9XG4gIC5zbGlkZS1vdXQtZG93biAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgZG93bik7IH1cbiAgLnNsaWRlLW91dC1yaWdodCAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCByaWdodCk7IH1cbiAgLnNsaWRlLW91dC11cCAgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCB1cCk7IH1cbiAgLnNsaWRlLW91dC1sZWZ0ICAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCBsZWZ0KTsgfVxuXG4gIC8vIEZhZGVcbiAgLmZhZGUtaW4gIHsgQGluY2x1ZGUgbXVpLWZhZGUoaW4sICAwLCAxKTsgfVxuICAuZmFkZS1vdXQgeyBAaW5jbHVkZSBtdWktZmFkZShvdXQsIDEsIDApOyB9XG5cbiAgLy8gSGluZ2VcbiAgLmhpbmdlLWluLWZyb20tdG9wICAgICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICB0b3ApOyB9XG4gIC5oaW5nZS1pbi1mcm9tLXJpZ2h0ICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgcmlnaHQpOyB9XG4gIC5oaW5nZS1pbi1mcm9tLWJvdHRvbSAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgYm90dG9tKTsgfVxuICAuaGluZ2UtaW4tZnJvbS1sZWZ0ICAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIGxlZnQpOyB9XG4gIC5oaW5nZS1pbi1mcm9tLW1pZGRsZS14ICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHRvcCwgICBjZW50ZXIpOyB9XG4gIC5oaW5nZS1pbi1mcm9tLW1pZGRsZS15ICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHJpZ2h0LCBjZW50ZXIpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS10b3AgICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgdG9wKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tcmlnaHQgICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHJpZ2h0KTsgfVxuICAuaGluZ2Utb3V0LWZyb20tYm90dG9tICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIGJvdHRvbSk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLWxlZnQgICAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCBsZWZ0KTsgfVxuICAuaGluZ2Utb3V0LWZyb20tbWlkZGxlLXggeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCB0b3AsICAgY2VudGVyKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tbWlkZGxlLXkgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCByaWdodCwgY2VudGVyKTsgfVxuXG4gIC8vIFNjYWxlXG4gIC5zY2FsZS1pbi11cCAgICB7IEBpbmNsdWRlIG11aS16b29tKGluLCAgMC41LCAxKTsgfVxuICAuc2NhbGUtaW4tZG93biAgeyBAaW5jbHVkZSBtdWktem9vbShpbiwgIDEuNSwgMSk7IH1cbiAgLnNjYWxlLW91dC11cCAgIHsgQGluY2x1ZGUgbXVpLXpvb20ob3V0LCAxLCAxLjUpOyB9XG4gIC5zY2FsZS1vdXQtZG93biB7IEBpbmNsdWRlIG11aS16b29tKG91dCwgMSwgMC41KTsgfVxuXG4gIC8vIFNwaW5cbiAgLnNwaW4taW4gICAgIHsgQGluY2x1ZGUgbXVpLXNwaW4oaW4sICBjdyk7IH1cbiAgLnNwaW4tb3V0ICAgIHsgQGluY2x1ZGUgbXVpLXNwaW4ob3V0LCBjdyk7IH1cbiAgLnNwaW4taW4tY2N3ICB7IEBpbmNsdWRlIG11aS1zcGluKGluLCAgY2N3KTsgfVxuICAuc3Bpbi1vdXQtY2N3IHsgQGluY2x1ZGUgbXVpLXNwaW4ob3V0LCBjY3cpOyB9XG5cbiAgLy8gVHJhbnNpdGlvbiBNb2RpZmllcnNcbiAgLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktc3BlZWRzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1lYXNpbmdzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZGVsYXlzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0tZGVsYXkgeyB0cmFuc2l0aW9uLWRlbGF5OiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBBbmltYXRpb25zXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuQG1peGluIG1vdGlvbi11aS1hbmltYXRpb25zIHtcbiAgLnNoYWtlICAgIHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihzaGFrZSk7IH1cbiAgLnNwaW4tY3cgIHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihzcGluKTsgfVxuICAuc3Bpbi1jY3cgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNwaW4oY2N3KSk7IH1cbiAgLndpZ2dsZSAgIHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbih3aWdnbGUpOyB9XG5cbiAgLnNoYWtlLFxuICAuc3Bpbi1jdyxcbiAgLnNwaW4tY2N3LFxuICAud2lnZ2xlIHtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IG1hcC1nZXQoJG1vdGlvbi11aS1zcGVlZHMsIGRlZmF1bHQpO1xuICB9XG5cbiAgLy8gQW5pbWF0aW9uIE1vZGlmaWVyc1xuICAvLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuICAuaW5maW5pdGUgeyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1zcGVlZHMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IGFuaW1hdGlvbi1kdXJhdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZWFzaW5ncyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZGVsYXlzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0tZGVsYXkgeyBhbmltYXRpb24tZGVsYXk6ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG59XG4iLCIvLy8gRm9ybWF0IGZvciBDU1MgY2xhc3NlcyBjcmVhdGVkIHdpdGggTW90aW9uIFVJLlxuLy8vIEB0eXBlIE1hcFxuLy8vIEBwcm9wIHtCb29sZWFufSBhcHBlbmQgW3RydWVdIC0gRGVmaW5lcyBpZiBzZWxlY3RvcnMgYXJlIGNoYWluZWQgdG8gdGhlIHNlbGVjdG9yIChgLmNsYXNzLmVudGVyYCksIG9yIGFwcGVuZGVkIGFzIGEgbmV3IGNsYXNzIChgLmNsYXNzLWVudGVyYCkuXG4vLy8gQHByb3Age1N0cmluZ30gcHJlZml4IFsnbXVpLSddIC0gUHJlZml4IHRvIGFkZCBiZWZvcmUgdGhlIHN0YXRlIG9mIGEgY2xhc3MuIEVudGVyIGFuIGVtcHR5IHN0cmluZyB0byB1c2Ugbm8gcHJlZml4LlxuLy8vIEBwcm9wIHtTdHJpbmd9IHByZWZpeCBbJy1hY3RpdmUnXSAtIFN1ZmZpeCB0byBhZGQgdG8gdGhlIGFjdGl2ZSBzdGF0ZSBjbGFzcy5cbiRtb3Rpb24tdWktY2xhc3NlczogKFxuICBjaGFpbjogdHJ1ZSxcbiAgcHJlZml4OiAnbXVpLScsXG4gIGFjdGl2ZTogJy1hY3RpdmUnLFxuKSAhZGVmYXVsdDtcblxuLy8vIFN0YXRlIG5hbWVzIHRvIHJlZmVyZW5jZSB3aGVuIHdyaXRpbmcgbW90aW9uIGNsYXNzZXMuIFRvIHVzZSBtdWx0aXBsZSBjbGFzcyBuYW1lcyBmb3Igb25lIHN0YXRlLCBlbnRlciBhIGxpc3Qgb2Ygc3RyaW5ncyBpbnN0ZWFkIG9mIG9uZSBzdHJpbmcuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLXN0YXRlczogKFxuICBpbjogJ2VudGVyJyxcbiAgb3V0OiAnbGVhdmUnLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc3BlZWQgdGhhdCB0cmFuc2l0aW9ucyBhbmQgYW5pbWF0aW9ucyBwbGF5IGF0LCBhbG9uZyB3aXRoIHZhbHVlcyBmb3IgbW9kaWZpZXIgY2xhc3NlcyB0byBjaGFuZ2UgdGhlIHNwZWVkLlxuLy8vIEB0eXBlIE1hcFxuJG1vdGlvbi11aS1zcGVlZHM6IChcbiAgZGVmYXVsdDogNTAwbXMsXG4gIHNsb3c6IDc1MG1zLFxuICBmYXN0OiAyNTBtcyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRlbGF5IHRvIGFkZCBiZWZvcmUgbW90aW9uLCBhbG9uZyB3aXRoIHZhbHVlcyBmb3IgbW9kaWZpZXIgY2xhc3NlcyB0byBjaGFuZ2UgdGhlIGRlbGF5LlxuLy8vIEB0eXBlIE1hcFxuJG1vdGlvbi11aS1kZWxheXM6IChcbiAgZGVmYXVsdDogMCxcbiAgc2hvcnQ6IDMwMG1zLFxuICBsb25nOiA3MDBtcyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGVhc2luZyBmb3IgdHJhbnNpdGlvbnMgYW5kIGFuaW1hdGlvbnMsIGFsb25nIHdpdGggdmFsdWVzIGZvciBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0aGUgZWFzaW5nLlxuLy8vIEB0eXBlIE1hcFxuJG1vdGlvbi11aS1lYXNpbmdzOiAoXG4gIGRlZmF1bHQ6IGxpbmVhcixcbiAgbGluZWFyOiBsaW5lYXIsXG4gIGVhc2U6IGVhc2UsXG4gIGVhc2UtaW46IGVhc2UtaW4sXG4gIGVhc2Utb3V0OiBlYXNlLW91dCxcbiAgZWFzZS1pbi1vdXQ6IGVhc2UtaW4tb3V0LFxuICBib3VuY2UtaW46IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQsIDEuMjQ1KSxcbiAgYm91bmNlLW91dDogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC41MTUsIDAuODQ1KSxcbiAgYm91bmNlLWluLW91dDogY3ViaWMtYmV6aWVyKDAuNzYsIC0wLjI0NSwgMC4yNCwgMS4yNDUpLFxuKSAhZGVmYXVsdDtcblxuLy8vIE1pc2NlbGxhbmVvdXMgc2V0dGluZ3MgcmVsYXRlZCB0byBNb3Rpb24gVUkuXG4vLy8gQHR5cGUgTWFwXG4vLy8gQHByb3Age0Jvb2xlYW59IHNsaWRlLWFuZC1mYWRlIFtmYWxzZV0gLSBEZWZpbmVzIGlmIHNsaWRlIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4vLy8gQHByb3Age0Jvb2xlYW59IHNsaWRlLWFuZC1mYWRlIFt0cnVlXSAtIERlZmluZXMgaWYgaGluZ2UgbW90aW9ucyBzaG91bGQgYWxzbyBmYWRlIGluL291dC5cbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW3RydWVdIC0gRGVmaW5lcyBpZiBzY2FsZSBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbdHJ1ZV0gLSBEZWZpbmVzIGlmIHNwaW4gbW90aW9ucyBzaG91bGQgYWxzbyBmYWRlIGluL291dC5cbiRtb3Rpb24tdWktc2V0dGluZ3M6IChcbiAgc2xpZGUtYW5kLWZhZGU6IGZhbHNlLFxuICBoaW5nZS1hbmQtZmFkZTogdHJ1ZSxcbiAgc2NhbGUtYW5kLWZhZGU6IHRydWUsXG4gIHNwaW4tYW5kLWZhZGU6IHRydWUsXG4gIHBhdXNlLXF1ZXVlLWNsYXNzOiAnaXMtcGF1c2VkJyxcbiAgYWN0aXZhdGUtcXVldWUtY2xhc3M6ICdpcy1hbmltYXRpbmcnLFxuKSAhZGVmYXVsdDtcbiIsIi8vIEludGVybmFsIGNvdW50ZXIgZm9yIGNyZWF0aW5nIHVuaXF1ZSBrZXlmcmFtZSBuYW1lc1xuJC1tdWktY3VzdG9tOiAwO1xuXG4vLy8gQ3JlYXRlcyBhIGtleWZyYW1lIGZyb20gb25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucy4gVXNlIHRoaXMgZnVuY3Rpb24gaW5zdGVhZCBvZiBgbXVpLWFuaW1hdGlvbmAgaWYgeW91IHdhbnQgdG8gY3JlYXRlIGEga2V5ZnJhbWUgYW5pbWF0aW9uICp3aXRob3V0KiBhdXRvbWF0aWNhbGx5IGFzc2lnbmluZyBpdCB0byB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWUgLSBOYW1lIG9mIHRoZSBrZXlmcmFtZS5cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICRlZmZlY3RzLi4uIC0gT25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucyB0byBidWlsZCB0aGUga2V5ZnJhbWUgd2l0aC5cbkBtaXhpbiBtdWkta2V5ZnJhbWVzKCRuYW1lLCAkZWZmZWN0cy4uLikge1xuICAkb2JqOiAtbXVpLXByb2Nlc3MtYXJncygkZWZmZWN0cy4uLik7XG4gICRvYmo6IG1hcC1yZW1vdmUoJG9iaiwgbmFtZSk7XG5cbiAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgLy8gTm93IGl0ZXJhdGUgdGhyb3VnaCBlYWNoIGtleWZyYW1lIHBlcmNlbnRhZ2VcbiAgICBAZWFjaCAkcGN0LCAkcHJvcHMgaW4gJG9iaiB7XG4gICAgICAjey1tdWkta2V5ZnJhbWUtcGN0KCRwY3QpfSB7XG4gICAgICAgIC8vIExhc3RseSwgaXRlcmF0ZSB0aHJvdWdoIGVhY2ggQ1NTIHByb3BlcnR5IHdpdGhpbiBhIHBlcmNlbnRhZ2UgYW5kIHByaW50IGl0IG91dFxuICAgICAgICBAZWFjaCAkcHJvcCwgJHZhbHVlIGluICRwcm9wcyB7XG4gICAgICAgICAgI3skcHJvcH06ICN7JHZhbHVlfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHN0cmluZyBmb3IgYSBDU1Mga2V5ZnJhbWUsIGJ5IGNvbnZlcnRpbmcgYSBsaXN0IG9mIG51bWJlcnMgdG8gYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBwZXJjZW50YWdlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkaW5wdXQgLSBMaXN0IG9mIG51bWJlcnMgdG8gdXNlLlxuLy8vIEByZXR1cm4ge1N0cmluZ30gQSBzZXQgb2YgY29tbWEtc2VwYXJhdGVkIHBlcmNlbnRhZ2UgdmFsdWVzLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtcGN0KCRpbnB1dCkge1xuICAkb3V0cHV0OiAoKTtcblxuICBAaWYgdHlwZS1vZigkaW5wdXQpID09ICdudW1iZXInIHtcbiAgICAkb3V0cHV0OiAoJGlucHV0ICogMSUpO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJGlucHV0KSA9PSAnbGlzdCcge1xuICAgIEBlYWNoICRpIGluICRpbnB1dCB7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgKCRpICogMSUpLCBjb21tYSk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBcIiN7JG91dHB1dH1cIjtcbn1cblxuLy8vIFByaW50cyB0aGUgQ1NTIHByb3BlcnRpZXMgZnJvbSBhIHNwZWNpZmljIGtleSBpbiBhIGtleWZyYW1lcyBtYXAuIFVzZWQgdG8gYm9ycm93IENTUyBmcm9tIGtleWZyYW1lIGZ1bmN0aW9ucyBmb3IgdXNlIGluIHRyYW5zaXRpb25zLlxuLy8vIEBwYXJhbSB7TWFwfSAka2YgLSBLZXlmcmFtZSBtYXAgdG8gZXh0cmFjdCBmcm9tLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAka2V5IC0gS2V5IGluIHRoZSBtYXAgdG8gcHJpbnQgdGhlIENTUyBvZi5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiAtbXVpLWtleWZyYW1lLWdldCgka2YsICRrZXkpIHtcbiAgJG1hcDogbWFwLWdldCgka2YsICRrZXkpO1xuXG4gIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJG1hcCBvciAoKSB7XG4gICAgLy8gU29tZSBrZXlmcmFtZSBtYXBzIHN0b3JlIHRyYW5zZm9ybXMgYXMgcXVvdGVkIHN0cmluZ3NcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdzdHJpbmcnIHtcbiAgICAgICR2YWx1ZTogdW5xdW90ZSgkdmFsdWUpO1xuICAgIH1cbiAgICAjeyRwcm9wfTogJHZhbHVlO1xuICB9XG59XG5cbi8vLyBSZWZvcm1hdHMgYSBtYXAgY29udGFpbmluZyBrZXlzIHdpdGggYSBsaXN0IG9mIHZhbHVlcywgc28gdGhhdCBlYWNoIGtleSBpcyBhIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBzcGxpdCB1cC5cbi8vLyBAcmV0dXJuIHtNYXB9IEEgcmVmb3JtYXR0ZWQgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtc3BsaXQoJG1hcCkge1xuICAkbmV3LW1hcDogKCk7XG5cbiAgLy8gU3BsaXQga2V5cyB3aXRoIG11bHRpcGxlIHZhbHVlcyBpbnRvIGluZGl2aWR1YWwga2V5c1xuICBAZWFjaCAka2V5LCAkaXRlbSBpbiAkbWFwIHtcbiAgICAka2V5LXR5cGU6IHR5cGUtb2YoJGtleSk7XG5cbiAgICBAaWYgJGtleS10eXBlID09ICdudW1iZXInIHtcbiAgICAgICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICgka2V5OiAkaXRlbSkpO1xuICAgIH0gQGVsc2UgaWYgJGtleS10eXBlID09ICdsaXN0JyB7XG4gICAgICBAZWFjaCAkayBpbiAka2V5IHtcbiAgICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrOiAkaXRlbSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG5ldy1tYXA7XG59XG5cbi8vLyBDb21iaW5lcyBhIHNlcmllcyBvZiBrZXlmcmFtZSBvYmplY3RzIGludG8gb25lLlxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJG1hcHMuLi4gLSBBIHNlcmllcyBvZiBtYXBzIHRvIG1lcmdlLCBhcyBpbmRpdmlkdWFsIHBhcmFtZXRlcnMuXG4vLy8gQHJldHVybiB7TWFwfSBBIGNvbWJpbmVkIGtleWZyYW1lIG9iamVjdC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLWtleWZyYW1lLWNvbWJpbmUoJG1hcHMuLi4pIHtcbiAgJG5ldy1tYXA6ICgpO1xuXG4gIC8vIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIG1hcCBwYXNzZWQgaW5cbiAgQGVhY2ggJG1hcCBpbiAkbWFwcyB7XG4gICAgQGlmIC1tdWktaXMtZnVuY3Rpb24oJG1hcCkge1xuICAgICAgJG1hcDogLW11aS1zYWZlLWNhbGwoJG1hcCk7XG4gICAgfVxuXG4gICAgJG1hcDogLW11aS1rZXlmcmFtZS1zcGxpdCgkbWFwKTtcblxuICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIGtleWZyYW1lIGluIHRoZSBtYXBcbiAgICAvLyAka2V5IGlzIHRoZSBrZXlmcmFtZSBwZXJjZW50YWdlXG4gICAgLy8gJHZhbHVlIGlzIGEgbWFwIG9mIENTUyBwcm9wZXJ0aWVzXG4gICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICAgJG5ldy12YWx1ZTogKCk7XG5cbiAgICAgIEBpZiBtYXAtaGFzLWtleSgkbmV3LW1hcCwgJGtleSkge1xuICAgICAgICAvLyBJZiB0aGUgbWFwIGFscmVhZHkgaGFzIHRoZSBrZXlmcmFtZSAlLCBhcHBlbmQgdGhlIG5ldyBwcm9wZXJ0eVxuICAgICAgICAkbmV3LXZhbHVlOiAtbXVpLW1lcmdlLXByb3BlcnRpZXMobWFwLWdldCgkbmV3LW1hcCwgJGtleSksICR2YWx1ZSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gT3RoZXJ3aXNlLCBjcmVhdGUgYSBuZXcgbWFwIHdpdGggdGhlIG5ldyBwcm9wZXJ0eVxuICAgICAgICAkbmV3LXZhbHVlOiAkdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIC8vIEZpbmFsbHksIG1lcmdlIHRoZSBtb2RpZmllZCBrZXlmcmFtZSB2YWx1ZSBpbnRvIHRoZSBvdXRwdXQgbWFwXG4gICAgICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAoJGtleTogJG5ldy12YWx1ZSkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIE1ha2UgYSBuYW1lIGZvciB0aGUga2V5ZnJhbWVzXG4gICQtbXVpLWN1c3RvbTogJC1tdWktY3VzdG9tICsgMSAhZ2xvYmFsO1xuICAkbWFwLW5hbWU6IChuYW1lOiAnY3VzdG9tLSN7JC1tdWktY3VzdG9tfScpO1xuICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAkbWFwLW5hbWUpO1xuXG4gIEByZXR1cm4gJG5ldy1tYXA7XG59XG5cbi8vLyBDb21iaW5lcyB0d28gbWFwcyBvZiBDU1MgcHJvcGVydGllcyBpbnRvIG9uZSBtYXAuIElmIGJvdGggbWFwcyBoYXZlIGEgdHJhbnNmb3JtIHByb3BlcnR5LCB0aGUgdmFsdWVzIGZyb20gZWFjaCB3aWxsIGJlIGNvbWJpbmVkIGludG8gb25lIHByb3BlcnR5LlxuLy8vIEBwYXJhbSB7TWFwfSAkb25lIC0gRmlyc3QgbWFwIHRvIG1lcmdlLlxuLy8vIEBwYXJhbSB7TWFwfSAkdHdvIC0gU2Vjb25kIG1hcCB0byBtZXJnZS5cbi8vLyBAcmV0dXJuIHtNYXB9IEEgY29tYmluZWQgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWktbWVyZ2UtcHJvcGVydGllcygkb25lLCAkdHdvKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkb25lLCB0cmFuc2Zvcm0pIGFuZCBtYXAtaGFzLWtleSgkdHdvLCB0cmFuc2Zvcm0pIHtcbiAgICAkdHJhbnNmb3JtOiBqb2luKG1hcC1nZXQoJG9uZSwgdHJhbnNmb3JtKSwgbWFwLWdldCgkdHdvLCB0cmFuc2Zvcm0pKTtcbiAgICAkb25lOiBtYXAtbWVyZ2UoJG9uZSwgKHRyYW5zZm9ybTogJHRyYW5zZm9ybSkpO1xuICAgICR0d286IG1hcC1yZW1vdmUoJHR3bywgdHJhbnNmb3JtKTtcbiAgfVxuXG4gIEByZXR1cm4gbWFwLW1lcmdlKCRvbmUsICR0d28pO1xufVxuIiwiLy8vIENyZWF0ZXMgYSBzbGlkaW5nIHRyYW5zaXRpb24gYnkgdHJhbnNsYXRpbmcgdGhlIGVsZW1lbnQgaG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtudWxsXSAtIERpcmVjdGlvbiB0byBzbGlkZSB0by4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLiBCeSBkZWZhdWx0IGBsZWZ0YCBhbmQgYHJpZ2h0YCBmb3IgYGluYCBhbmQgYG91dGAgc3RhdGVzIHJlc3BlY3RpdmVseS5cbi8vLyBAcGFyYW0ge0xlbmd0aH0gJGFtb3VudCBbMTAwJV0gLSBMZW5ndGggb2YgdGhlIHNsaWRlIGFzIGEgcGVyY2VudGFnZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRmYWRlIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIGZhZGUgdGhlIGVsZW1lbnQgaW4gb3Igb3V0IHNpbXVsdGFuZW91c2x5LlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS1zbGlkZSAoXG4gICRzdGF0ZTogaW4sXG4gICRkaXJlY3Rpb246IG51bGwsXG4gICRhbW91bnQ6IDEwMCUsXG4gICRmYWRlOiBtYXAtZ2V0KCRtb3Rpb24tdWktc2V0dGluZ3MsIHNsaWRlLWFuZC1mYWRlKSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkZGlyZWN0aW9uOiBpZigkZGlyZWN0aW9uICE9IG51bGwsICRkaXJlY3Rpb24sIGlmKCRzdGF0ZSA9PSBpbiwgbGVmdCwgcmlnaHQpKTtcbiAgJHNsaWRlOiBzbGlkZSgkc3RhdGUsICRkaXJlY3Rpb24sICRhbW91bnQpO1xuXG4gIC8vIENTUyBPdXRwdXRcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNsaWRlLCAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDAsIDEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIH1cblxuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzbGlkZSwgMTAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBmYWRlIHRyYW5zaXRpb24gYnkgYWRqdXN0aW5nIHRoZSBvcGFjaXR5IG9mIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZnJvbSBbbnVsbF0gLSBPcGFjaXR5IHRvIHN0YXJ0IGF0LiBNdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMS4gQnkgZGVmYXVsdCBgMGAgYW5kIGAxYCBmb3IgYGluYCBhbmQgYG91dGAgc3RhdGVzIHJlc3BlY3RpdmVseS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvIFtudWxsXSAtIE9wYWNpdHkgdG8gZW5kIG9uLiBCeSBkZWZhdWx0IGAxYCBhbmQgYDBgIGZvciBgaW5gIGFuZCBgb3V0YCBzdGF0ZXMgcmVzcGVjdGl2ZWx5LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLWZhZGUoXG4gICRzdGF0ZTogaW4sXG4gICRmcm9tOiBudWxsLFxuICAkdG86IG51bGwsXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJGZyb206IGlmKCRmcm9tICE9IG51bGwsICRmcm9tLCBpZigkc3RhdGUgPT0gaW4sIDAsIDEpKTtcbiAgJHRvOiBpZigkdG8gIT0gbnVsbCwgJHRvLCBpZigkc3RhdGUgPT0gaW4sIDEsIDApKTtcbiAgJGZhZGU6IGZhZGUoJGZyb20sICR0byk7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGZhZGUsIDApO1xuXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRmYWRlLCAxMDApO1xuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGhpbmdlIGVmZmVjdCBieSByb3RhdGluZyB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRmcm9tIFtsZWZ0XSAtIEVkZ2Ugb2YgdGhlIGVsZW1lbnQgdG8gcm90YXRlIGZyb20uIENhbiBiZSBgdG9wYCwgYHJpZ2h0YCwgYGJvdHRvbWAsIG9yIGBsZWZ0YC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRheGlzIFtlZGdlXSAtIEF4aXMgb2YgdGhlIGVsZW1lbnQgdG8gcm90YXRlIG9uLiBDYW4gYmUgYGVkZ2VgIG9yIGBjZW50ZXJgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGVyc3BlY3RpdmUgWzIwMDBweF0gLSBQZXJjZWl2ZWQgZGlzdGFuY2UgYmV0d2VlbiB0aGUgdmlld2VyIGFuZCB0aGUgZWxlbWVudC4gQSBoaWdoZXIgbnVtYmVyIHdpbGwgbWFrZSB0aGUgcm90YXRpb24gZWZmZWN0IG1vcmUgcHJvbm91bmNlZC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0dXJuLW9yaWdpbiBbbnVsbF0gLSBTaWRlIG9mIHRoZSBlbGVtZW50IHRvIHN0YXJ0IHRoZSByb3RhdGlvbiBmcm9tLiBDYW4gYmUgYGZyb20tYmFja2Agb3IgYGZyb20tZnJvbnRgLiBCeSBkZWZhdWx0IGBmcm9tLWJhY2tgIGFuZCBgZnJvbS1mcm9udGAgZm9yIGBpbmAgYW5kIGBvdXRgIHN0YXRlcyByZXNwZWN0aXZlbHkuXG5AZnVuY3Rpb24gaGluZ2UgKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogbGVmdCxcbiAgJGF4aXM6IGVkZ2UsXG4gICRwZXJzcGVjdGl2ZTogMjAwMHB4LFxuICAkdHVybi1vcmlnaW46IG51bGxcbikge1xuICAvLyBSb3RhdGlvbiBkaXJlY3Rpb25zIHdoZW4gaGluZ2luZyBmcm9tIGJhY2sgdnMuIGZyb250XG4gICRyb3RhdGlvbi1hbW91bnQ6IDkwZGVnO1xuICAkcm90YXRpb25zLWJhY2s6IChcbiAgICB0b3A6IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgICByaWdodDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50ICogLTEpLFxuICAgIGJvdHRvbTogcm90YXRlWCgkcm90YXRpb24tYW1vdW50KSxcbiAgICBsZWZ0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQpLFxuICApO1xuICAkcm90YXRpb25zLWZyb206IChcbiAgICB0b3A6IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCksXG4gICAgcmlnaHQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCksXG4gICAgYm90dG9tOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICAgbGVmdDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50ICogLTEpLFxuICApO1xuXG4gIC8vIFJvdGF0aW9uIG9yaWdpblxuICAkdHVybi1vcmlnaW46IGlmKCR0dXJuLW9yaWdpbiAhPSBudWxsLCAkdHVybi1vcmlnaW4sIGlmKCRzdGF0ZSA9PSBpbiwgZnJvbS1iYWNrLCBmcm9tLWZyb250KSk7XG4gICRyb3RhdGlvbjogJyc7XG4gIEBpZiAkdHVybi1vcmlnaW4gPT0gZnJvbS1mcm9udCB7XG4gICAgJHJvdGF0aW9uOiBtYXAtZ2V0KCRyb3RhdGlvbnMtZnJvbSwgJGZyb20pO1xuICB9IEBlbHNlIGlmICR0dXJuLW9yaWdpbiA9PSBmcm9tLWJhY2sge1xuICAgICRyb3RhdGlvbjogbWFwLWdldCgkcm90YXRpb25zLWJhY2ssICRmcm9tKTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJyR0dXJuLW9yaWdpbiBtdXN0IGJlIGVpdGhlciBcImZyb20tYmFja1wiIG9yIFwiZnJvbS1mcm9udFwiJztcbiAgfVxuXG4gIC8vIFN0YXJ0IGFuZCBlbmQgc3RhdGVcbiAgJHN0YXJ0OiAnJztcbiAgJGVuZDogJyc7XG4gIEBpZiAkc3RhdGUgPT0gaW4ge1xuICAgICRzdGFydDogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkcm90YXRpb247XG4gICAgJGVuZDogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSByb3RhdGUoMGRlZyk7XG4gIH0gQGVsc2Uge1xuICAgICRzdGFydDogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSByb3RhdGUoMGRlZyk7XG4gICAgJGVuZDogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkcm90YXRpb247XG4gIH1cblxuICAvLyBUdXJuIGF4aXNcbiAgJG9yaWdpbjogJyc7XG4gIEBpZiAkYXhpcyA9PSBlZGdlIHtcbiAgICAkb3JpZ2luOiAkZnJvbTtcbiAgfSBAZWxzZSB7XG4gICAgJG9yaWdpbjogY2VudGVyO1xuICB9XG5cbiAgJGtleWZyYW1lczogKFxuICAgIG5hbWU6IC1tdWktc3RyaW5nLXNhZmUoJ2hpbmdlLSN7JHN0YXRlfS0jeyRmcm9tfS0jeyRheGlzfS0jeyR0dXJuLW9yaWdpbn0nKSxcbiAgICAwOiAodHJhbnNmb3JtOiAkc3RhcnQsIHRyYW5zZm9ybS1vcmlnaW46ICRvcmlnaW4pLFxuICAgIDEwMDogKHRyYW5zZm9ybTogJGVuZCksXG4gICk7XG5cbiAgQHJldHVybiAka2V5ZnJhbWVzO1xufVxuIiwiLy8vIENyZWF0ZXMgYSBoaW5nZSB0cmFuc2l0aW9uIGJ5IHJvdGF0aW5nIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZyb20gW2xlZnRdIC0gRWRnZSBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgZnJvbS4gQ2FuIGJlIGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgb3IgYGxlZnRgLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGF4aXMgW2VkZ2VdIC0gQXhpcyBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgb24uIENhbiBiZSBgZWRnZWAgb3IgYGNlbnRlcmAuXG4vLy8gQHBhcmFtIHtMZW5ndGh9ICRwZXJzcGVjdGl2ZSBbMjAwMHB4XSAtIFBlcmNlaXZlZCBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB2aWV3ZXIgYW5kIHRoZSBlbGVtZW50LiBBIGhpZ2hlciBudW1iZXIgd2lsbCBtYWtlIHRoZSByb3RhdGlvbiBlZmZlY3QgbW9yZSBwcm9ub3VuY2VkLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHR1cm4tb3JpZ2luIFtudWxsXSAtIFNpZGUgb2YgdGhlIGVsZW1lbnQgdG8gc3RhcnQgdGhlIHJvdGF0aW9uIGZyb20uIENhbiBiZSBgZnJvbS1iYWNrYCBvciBgZnJvbS1mcm9udGAuIEJ5IGRlZmF1bHQgYGZyb20tYmFja2AgYW5kIGBmcm9tLWZyb250YCBmb3IgYGluYCBhbmQgYG91dGAgc3RhdGVzIHJlc3BlY3RpdmVseS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRmYWRlIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLWhpbmdlIChcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IGxlZnQsXG4gICRheGlzOiBlZGdlLFxuICAkcGVyc3BlY3RpdmU6IDIwMDBweCxcbiAgJHR1cm4tb3JpZ2luOiBudWxsLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBoaW5nZS1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJHR1cm4tb3JpZ2luOiBpZigkdHVybi1vcmlnaW4gIT0gbnVsbCwgJHR1cm4tb3JpZ2luLCBpZigkc3RhdGUgPT0gaW4sIGZyb20tYmFjaywgZnJvbS1mcm9udCkpO1xuICAkaGluZ2U6IGhpbmdlKCRzdGF0ZSwgJGZyb20sICRheGlzLCAkcGVyc3BlY3RpdmUsICR0dXJuLW9yaWdpbik7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGhpbmdlLCAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDAsIDEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRoaW5nZSwgMTAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBzY2FsaW5nIHRyYW5zaXRpb24uIEEgc2NhbGUgb2YgYDFgIG1lYW5zIHRoZSBlbGVtZW50IGlzIHRoZSBzYW1lIHNpemUuIExhcmdlciBudW1iZXJzIG1ha2UgdGhlIGVsZW1lbnQgYmlnZ2VyLCB3aGlsZSBudW1iZXJzIGxlc3MgdGhhbiAxIG1ha2UgdGhlIGVsZW1lbnQgc21hbGxlci5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZyb20gW251bGxdIC0gU2l6ZSB0byBzdGFydCBhdC4gQnkgZGVmYXVsdCBgMGAgYW5kIGAxYCBmb3IgYGluYCBhbmQgYG91dGAgc3RhdGVzIHJlc3BlY3RpdmVseS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvIFtudWxsXSAtIFNpemUgdG8gZW5kIGF0LiBCeSBkZWZhdWx0IGAxYCBhbmQgYDBgIGZvciBgaW5gIGFuZCBgb3V0YCBzdGF0ZXMgcmVzcGVjdGl2ZWx5LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktem9vbShcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IG51bGwsXG4gICR0bzogbnVsbCxcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc2NhbGUtYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRmcm9tOiBpZigkZnJvbSAhPSBudWxsLCAkZnJvbSwgaWYoJHN0YXRlID09IGluLCAwLCAxKSk7XG4gICR0bzogaWYoJHRvICE9IG51bGwsICR0bywgaWYoJHN0YXRlID09IGluLCAxLCAwKSk7XG4gICRzY2FsZTogem9vbSgkZnJvbSwgJHRvKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2NhbGUsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNjYWxlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNwaW5uaW5nIHRyYW5zaXRpb24gYnkgcm90YXRpbmcgdGhlIGVsZW1lbnQuIFRoZSBgdHVybmAgdW5pdCBpcyB1c2VkIHRvIHNwZWNpZnkgaG93IGZhciB0byByb3RhdGUuIGAxdHVybmAgaXMgZXF1YWwgdG8gYSAzNjAtZGVncmVlIHNwaW4uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtudWxsXSAtIERpcmVjdGlvbiB0byBzcGluLiBTaG91bGQgYmUgYGN3YCAoY2xvY2t3aXNlKSBvciBgY2N3YCAoY291bnRlcmNsb2Nrd2lzZSkuIEJ5IGRlZmF1bHQgYGN3YCBhbmQgYGNjd2AgZm9yIGBpbmAgYW5kIGBvdXRgIHN0YXRlcyByZXNwZWN0aXZlbHkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhbW91bnQgWzAuNzV0dXJuXSAtIEFtb3VudCB0byBlbGVtZW50IHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLXNwaW4oXG4gICRzdGF0ZTogaW4sXG4gICRkaXJlY3Rpb246IGN3LFxuICAkYW1vdW50OiAwLjc1dHVybixcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc3Bpbi1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJGRpcmVjdGlvbjogaWYoJGRpcmVjdGlvbiAhPSBudWxsLCAkZGlyZWN0aW9uLCBpZigkc3RhdGUgPT0gaW4sIGN3LCBjY3cpKTtcbiAgJHNwaW46IHNwaW4oJHN0YXRlLCAkZGlyZWN0aW9uLCAkYW1vdW50KTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc3BpbiwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc3BpbiwgMTAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBrZXlmcmFtZSBmcm9tIG9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgYW5kIGFzc2lnbnMgaXQgdG8gdGhlIGVsZW1lbnQgYnkgYWRkaW5nIHRoZSBgYW5pbWF0aW9uLW5hbWVgIHByb3BlcnR5LlxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJGVmZmVjdHMuLi4gLSBPbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zIHRvIGJ1aWxkIHRoZSBrZXlmcmFtZSB3aXRoLlxuQG1peGluIG11aS1hbmltYXRpb24oJGFyZ3MuLi4pIHtcbiAgJG5hbWU6IG1hcC1nZXQoLW11aS1wcm9jZXNzLWFyZ3MoJGFyZ3MuLi4pLCBuYW1lKTtcbiAgQGluY2x1ZGUgbXVpLWtleWZyYW1lcygkbmFtZSwgJGFyZ3MuLi4pO1xuICBhbmltYXRpb24tbmFtZTogdW5xdW90ZSgkbmFtZSk7XG59XG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2My4wLjIgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemUgKi9cblxuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXG4gKiAgICB1c2VyIHpvb20uXG4gKi9cblxuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICogYW5kIEZpcmVmb3guXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gKi9cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cblxuaHIge1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIG1hcmdpbjogMDsgLyogMyAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG59XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZVxuICogICAgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xuXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xufVxuIiwiQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnTXlyaWFkIFBybyc7XG4gIHNyYzogdXJsKCcuLi92ZW5kb3IvZm9udHMvbXlyaWFkLXByby9NeXJpYWRQcm8tUmVndWxhci5vdGYnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdNeXJpYWQgUHJvJztcbiAgc3JjOiB1cmwoJy4uL3ZlbmRvci9mb250cy9teXJpYWQtcHJvL015cmlhZFByby1JdC5vdGYnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdNeXJpYWQgUHJvJztcbiAgc3JjOiB1cmwoJy4uL3ZlbmRvci9mb250cy9teXJpYWQtcHJvL015cmlhZFByby1TZW1pYm9sZC5vdGYnKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnTXlyaWFkIFBybyc7XG4gIHNyYzogdXJsKCcuLi92ZW5kb3IvZm9udHMvbXlyaWFkLXByby9NeXJpYWRQcm8tU2VtaWJvbGRJdC5vdGYnKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnTXlyaWFkIFBybyBIZWF2eSc7XG4gIHNyYzogdXJsKCcuLi92ZW5kb3IvZm9udHMvbXlyaWFkLXByby9NeXJpYWRQcm8tQm9sZC5vdGYnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufSIsIi8qXG5CYXNlIGVsZW1lbnQgc2V0dGluZ3MgKG5vIGNsYXNzZXMgb3IgaWQncykuXG5cbkBzaW5jZSAwLjEuMFxuKi9cblxuQGltcG9ydCBcInNldHRpbmdzXCI7XG5cbmJvZHksICN3cmFwcGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuYSB7XG4gICYuY29sb3ItaW52ZXJ0IHtcbiAgICBjb2xvcjogaW5oZXJpdDtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRhbmNob3ItZm9udC1jb2xvci1ob3ZlcjtcbiAgICB9XG4gIH1cbn1cblxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG59XG5cbmgxIHtcbiAgbWFyZ2luLXRvcDogJGhlYWRlci1ib3R0b20tbWFyZ2luO1xuICBtYXJnaW4tYm90dG9tOiAkaGVhZGVyLWJvdHRvbS1tYXJnaW47XG59XG5cbmgyLCBoNCB7XG4gIGNvbG9yOiAkc3VtbWVyLXNreS1ibHVlO1xufVxuXG5oMyB7XG4gIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbn1cblxudWwge1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cblxuaWZyYW1lIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5bZGF0YS1saW5rXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy8gU2VsZWN0IGNvbG9yXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICBAaW5jbHVkZSBsaWdodC1vci1kYXJrLXRleHQoJHByaW1hcnktY29sb3IpO1xuIH1cbjo6LW1vei1zZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiAgQGluY2x1ZGUgbGlnaHQtb3ItZGFyay10ZXh0KCRwcmltYXJ5LWNvbG9yKTtcbn1cblxuLy8gQ2xhc3Nlc1xuLnRleHQtaGVhdnkge1xuICBmb250LWZhbWlseTogXCJNeXJpYWQgUHJvIEhlYXZ5XCIsIHNhbnMtc2VyaWY7XG59XG5cbi5zY3JlZW4tcmVhZGVyLXRleHQge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweDtcbiAgd29yZC13cmFwOiBub3JtYWwgIWltcG9ydGFudDtcbn1cblxuLnNob3ctb24tZm9jdXMge1xuXHRcblx0QGV4dGVuZCAuc2NyZWVuLXJlYWRlci10ZXh0O1xuXHRcblx0Jjpmb2N1cywgJjphY3RpdmUge1xuXHRcdFxuXHRcdGxlZnQ6IGF1dG87XG5cdFx0dG9wOiBhdXRvO1xuXHRcdHdpZHRoOiBhdXRvO1xuXHRcdGhlaWdodDogYXV0bztcblx0XHRvdmVyZmxvdzphdXRvO1xuXHRcdFxuXHR9XG5cdFxufVxuXG4ucm93LmV4cGFuZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG4uYWxpZ25sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogJGd1dHRlcjtcbn1cblxuLmFsaWducmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1sZWZ0OiAkZ3V0dGVyO1xufVxuXG4uYWxpZ25jZW50ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAkZ3V0dGVyIGF1dG87XG59XG5cbiNzaXRlLWNvbnRlbnQge1xuXHRcblx0YTpub3QoLmJ1dHRvbikge1xuXG5cdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHR9XG5cblx0fVxuXHRcbn0iLCIvKlxuVGhlIHN0YXRpYyBzaXRlIGhlYWRlci5cblxuQHNpbmNlIDAuMS4wXG4qL1xuXG4kaGVhZGVyLWxpbmUtaGVpZ2h0OiA0NXB4O1xuXG4jc2l0ZS1oZWFkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIGNvbG9yOiAkbGlnaHQtY29sb3I7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAzcHg7XG4gIHotaW5kZXg6IDEwO1xuXHRcblx0I3NraXAtdG8tY29udGVudCB7XG5cdFx0XG5cdFx0Jjpmb2N1cywgJjphY3RpdmUge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHRcdFxuXHR9XG5cbiAgLmhlYWRlci1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL2hlYWRlci1iYWNrLmpwZycpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogYXV0byAxODBweDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IHRvcDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzIxMUUxRjtcbiAgICBoZWlnaHQ6IDE5MHB4O1xuICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkbWVkaXVtLXB1cnBsZTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgaGVpZ2h0OiAxNjBweDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogYXV0byAxNDBweDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2hlYWRlci1iYWNrLW1vYmlsZS5qcGcnKTtcbiAgICB9XG5cbiAgICA+IC5yb3cge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbiAgfVxuXG4gIC5zaXRlLWxvZ28ge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgbWFyZ2luLWxlZnQ6ICRjb2x1bW4tZ3V0dGVyIC8gMjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgIHdpZHRoOiA4MCU7XG4gICAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci1ib3R0b20ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjExRTFGO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogKCRjb2x1bW4tZ3V0dGVyIC8gMik7XG4gICAgcGFkZGluZy1yaWdodDogKCRjb2x1bW4tZ3V0dGVyIC8gMik7XG4gICAgd2lkdGg6IGF1dG87XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgICBtYXJnaW4tbGVmdDogLSgkY29sdW1uLWd1dHRlciAvIDIpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtKCRjb2x1bW4tZ3V0dGVyIC8gMik7XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci1idXR0b24ge1xuICAgIGhlaWdodDogJGhlYWRlci1saW5lLWhlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJGhlYWRlci1saW5lLWhlaWdodDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oIzIxMUUxRiwgMTAlKTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oIzIxMUUxRiwgMTUlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaGVhZGVyLWJ1dHRvbi1jb250YWluZXIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDAgKCRjb2x1bW4tZ3V0dGVyIC8gMik7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgIHdpZHRoOiAzMy4zMzMzMzMlICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLnRvZ2dsZS1uYXYge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgW2NsYXNzKj1cImR6cy1pY29uXCJdIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLm9wZW4sIC5jbG9zZSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIFtjbGFzc149XCJkenMtaWNvblwiXSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZHpzLXFpYi10b2dnbGUtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogKCRjb2x1bW4tZ3V0dGVyIC8gMik7XG4gICAgICB0b3A6IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgei1pbmRleDogMTAxMDtcbiAgICB9XG4gIH1cblxuICAjZHpzLXFpYi10b2dnbGUge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICAucHJpbWFyeS1uYXYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDNlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzZW07XG4gICAgei1pbmRleDogMTAwMDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDEwMCU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmLnNob3cge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLm1lbnUge1xuICAgICAgY29sb3I6ICRsaWdodC1jb2xvcjtcbiAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgIHotaW5kZXg6IDExMDtcblx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRib3JkZXI6IDA7XG5cbiAgICAgIC8vIFNtYWxsXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG5cbiAgICAgIC5zdWJtZW51IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3gtc2hhZG93OiA1cHggNXB4IDUwcHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAxMDA7XG4gICAgICB9XG5cbiAgICAgIC5tZW51LWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcblx0XHRcdFxuICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgIHotaW5kZXg6IDExNTtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRib3gtc2hhZG93OiAwcHggMHB4IDBweCAzcHggI2UyZTJlMiBpbnNldDtcblx0XHRcdH1cblxuXHRcdFx0Jjpmb2N1cyB7XG5cdFx0XHRcdGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDNweCAkd2hpdGUgaW5zZXQ7XG5cdFx0XHR9XG5cdFx0XHRcbiAgICAgICAgfVxuXHRcdCAgXG5cdFx0ICAmLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4ge1xuXHRcdFx0ICBcblx0XHRcdCAgJiA+IGEge1xuXHRcdFx0XHQgIFxuXHRcdFx0XHQgIEBpbmNsdWRlIGJyZWFrcG9pbnQoIHNtYWxsIG9ubHkgKSB7XG5cdFx0XHRcdFx0ICBcblx0XHRcdFx0XHQgICY6YWZ0ZXIge1xuXHRcdFx0XHRcdFx0ICBkaXNwbGF5OiBub25lO1xuXHRcdFx0XHRcdCAgfVxuXHRcdFx0XHRcdCAgXG5cdFx0XHRcdCAgfVxuXHRcdFx0XHQgIFxuXHRcdFx0XHQgIEBpbmNsdWRlIGJyZWFrcG9pbnQoIG1lZGl1bSApIHtcblx0XHRcdFx0XHQgIFxuXHRcdFx0XHRcdCAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuXHRcdFx0XHRcdCAgXG5cdFx0XHRcdFx0ICAmOmFmdGVyIHtcblx0XHRcdFx0XHRcdCAgcmlnaHQ6IDcuNXB4O1xuXHRcdFx0XHRcdCAgfVxuXHRcdFx0XHRcdCAgXG5cdFx0XHRcdCAgfVxuXHRcdFx0XHQgIFxuXHRcdFx0ICB9XG5cdFx0XHQgIFxuXHRcdCAgfVxuXHRcdCAgXG4gICAgICB9XG5cbiAgICAgIC8vIEZpcnN0IGxldmVsXG4gICAgICA+IC5tZW51LWl0ZW0ge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPiAuc3VibWVudSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZWNvbmQgbGV2ZWxcbiAgICAgICAgPiAuc3VibWVudSB7XG4gICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gICAgICAgICAgZm9udC1zaXplOiAwLjllbTtcbiAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgIHdpZHRoOiAyNTBweDtcblxuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG8gMmVtO1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OyAvLyBPdmVycmlkZSBqcyBzZXQgaGVpZ2h0XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOGVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGlnaHRlbigkcHJpbWFyeS1jb2xvciwgNSUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgID4gLm1lbnUtaXRlbSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBUaGlyZCBMZXZlbFxuICAgICAgICAgICAgPiAuc3VibWVudSB7XG4gICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICBjb2xvcjogIzkxRDhGNTtcblxuICAgICAgICAgICAgICA+IC5tZW51LWl0ZW0ge1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBkYXJrZW4oIzkxRDhGNSwgMTAlKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cdCAgXG5cdCAgLy8gVG9wIExldmVsXG5cdCAgJiA+IC5tZW51IHtcblx0XHQgIFxuXHRcdCAgQGluY2x1ZGUgYnJlYWtwb2ludCggbWVkaXVtICkge1xuXHRcdFx0ICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHQgIGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0ICB9XG5cdFx0ICBcblx0ICB9XG5cdCAgXG4gIH1cblxuICAuc2VhcmNoLXRvZ2dsZSB7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6ICgkY29sdW1uLWd1dHRlciAvIDIpO1xuICAgICAgdG9wOiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIGhlaWdodDogJGhlYWRlci1saW5lLWhlaWdodDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGVyLWxpbmUtaGVpZ2h0O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB6LWluZGV4OiAxMDEwO1xuICAgIH1cblx0ICBcblx0ICBidXR0b24ge1xuXHRcdCAgd2lkdGg6IDEwMCU7XG5cdFx0ICBsaW5lLWhlaWdodDogMTtcblx0ICB9XG5cbiAgICAuZmEge1xuICAgICAgZm9udC1zaXplOiAxLjI1ZW07XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMzAwbXM7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLypcblRoZSBzdGF0aWMgc2l0ZSBib2R5LlxuXG5Ac2luY2UgMC4xLjBcbiovXG5cbiNzaXRlLWNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICRsaWdodC1jb2xvcjtcbiAgcGFkZGluZzogMjBweCAxZW07XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgLnByaW50LWJ1dHRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBjb2xvcjogJG1lZGl1bS1jb2xvcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHotaW5kZXg6IDk5OTtcblxuICAgIC50ZXh0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaWNvbiB7XG4gICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgZm9udC1zaXplOiAyLjJyZW07XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogc3ViO1xuICAgIH1cbiAgfVxufSIsIi8qXG5NYWluIHNpdGUgc2lkZWJhci5cblxuQHNpbmNlIDAuMS4wXG4qL1xuXG4uc2l0ZS1zaWRlYmFyIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG5cbiAgaHIge1xuICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gIH1cblxuICBoMy53aWRnZXQtdGl0bGUge1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgIGNvbG9yOiAkbGlnaHQtY29sb3I7XG4gICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4xZW07XG4gICAgcGFkZGluZzogMC4zZW0gMC4xZW0gMC4xZW0gOHB4O1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIHVsIHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG5cbiAgICBsaS53aWRnZXQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuXG4gICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGEge1xuICAgIGNvbG9yOiAkc3VtbWVyLXNreS1ibHVlO1xuICB9XG5cbiAgbGkuY3VycmVudC1wYWdlIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbiAgfVxuXG4gIC53aWRnZXQtcG9zdC1jaGlsZHJlbiwgLnNodWZmbGUtZmlsdGVyLCAud2lkZ2V0X25hdl9tZW51LCAuYXR0cmFjdGlvbnMtbGlzdC13aWRnZXQge1xuICAgIGZvbnQtc2l6ZTogMS4zZW07XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG5cbiAgICBsaSB7XG4gICAgICBtYXJnaW46IDA7XG5cbiAgICAgIGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yZW0gMDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLypcblRoZSBzdGF0aWMgc2l0ZSBmb290ZXIuXG5cbkBzaW5jZSAwLjEuMFxuKi9cblxuI3NpdGUtZm9vdGVyIHtcbiAgYmFja2dyb3VuZDogIzVlOTRjZDtcbiAgY29sb3I6ICRsaWdodC1jb2xvcjtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICM0MDdBQjE7XG5cdFxuXHQmID4gKjpmaXJzdC1jaGlsZCB7XG5cdFx0cGFkZGluZy10b3A6IDMwcHg7XG5cdH1cblx0XG5cdCYgPiAqOmxhc3QtY2hpbGQge1xuXHRcdHBhZGRpbmctYm90dG9tOiAzMHB4O1xuXHR9XG5cbiAgcCB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIG1hcmdpbjogMS41ZW0gMDtcbiAgfVxuXG4gIC5mb290ZXItbmF2IHtcblx0ICBcblx0ICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAubWVudS1pdGVtIHtcblx0XHRcblx0XHQkbWFyZ2luOiBhdXRvO1xuXHRcdCRtYXJnaW5zOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyO1xuXG5cdFx0Ly8gU2FtZSBhcyB3aGF0IGlzIG5vcm1hbGx5IHVzZWQgZm9yIHRoZSBib3R0b20gbWFyZ2luIG9uIEJsb2NrIEdyaWQgaXRlbXMsIGJ1dCByZWR1Y2VkXG5cdFx0QGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoICRtYXJnaW4sICRtYXJnaW5zICkge1xuXG5cdFx0XHQkbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoICQtemYtYnAtdmFsdWUgKTtcblx0XHRcdG1hcmdpbi1ib3R0b206ICRtYXJnaW4tYm90dG9tIC8gMztcblx0XHRcdFx0XG5cdFx0XHQmID4gOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0fVxuXG5cdFx0fVxuXG4gICAgICBhIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKCAkZXhwYW5kOiB0cnVlICk7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBwYWRkaW5nOiAwIDAuMmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxLjNweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBoZWlnaHQ6IDYuNWVtO1xuXHRcdCAgXG5cdFx0ICAmOmhvdmVyIHtcblx0XHRcdCAgYm9yZGVyOiAzcHggc29saWQgI2UyZTJlMjtcblx0XHQgIH1cblx0XHQgIFxuXHRcdCAgJjpmb2N1cyB7XG5cdFx0XHQgIGJvcmRlcjogM3B4IHNvbGlkICR3aGl0ZTtcblx0XHQgIH1cblxuICAgICAgICAudGV4dCB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cdFx0ICBcbiAgICAgIH1cbiAgICB9XG5cdCAgXG5cdCAgLm1lbnUtaXRlbSB7XG5cdFx0ICBcblx0XHRwYWRkaW5nLXJpZ2h0OiAuNzE0Mjg1NzE0M3JlbTtcblx0XHRwYWRkaW5nLWJvdHRvbTogMS40Mjg1NzE0Mjg2cmVtO1xuXHRcdHBhZGRpbmctbGVmdDogLjcxNDI4NTcxNDNyZW07XG5cdFx0ICBjbGVhcjogbm9uZSAhaW1wb3J0YW50OyAvLyBGaXhlcyB1c2luZyB2aXNpYmxpdHkgY2xhc3NlcyBvbiBNZW51IEl0ZW1zXG5cdFx0ICBcblx0XHQgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0ICBcblx0XHRcdCAgJjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0ICBwYWRkaW5nLWxlZnQ6IDAuMzU3MTQyODU3MTVyZW07XG5cdFx0XHQgIH1cblxuXHRcdFx0ICAmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdCAgcGFkZGluZy1yaWdodDogMC4zNTcxNDI4NTcxNXJlbTtcblx0XHRcdCAgfVxuXHRcdFx0ICBcblx0XHQgIH1cblx0XHQgIFxuXHQgIH1cblx0ICBcbiAgfVxuXG4gIC5mb290ZXItdG9wIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTBweDtcblx0ICBcblx0ICAkbWFyZ2luOiBhdXRvO1xuXHQgICRtYXJnaW5zOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyO1xuXHQgIFxuXHQgIC8vIFNhbWUgYXMgd2hhdCBpcyBub3JtYWxseSB1c2VkIGZvciB0aGUgYm90dG9tIG1hcmdpbiBvbiBCbG9jayBHcmlkIGl0ZW1zXG5cdCAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoICRtYXJnaW4sICRtYXJnaW5zICkge1xuXHRcdCAgXG5cdFx0JG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCAkLXpmLWJwLXZhbHVlICk7XG5cdFx0cGFkZGluZy10b3A6ICRtYXJnaW4tYm90dG9tO1xuXHRcdCAgXG5cdCAgfVxuXG4gICAgLmZvb3Rlci1jZW50ZXIge1xuICAgICAgZm9udC1zaXplOiAwLjhlbTtcblxuICAgICAgLmZvb3Rlci1tZXRhIHtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cblxuICAgICAgLmZvb3Rlci1ibHVyYiB7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogM2VtO1xuICAgICAgfVxuXG4gICAgICAuZm9vdGVyLXN1Yi1tZW51IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB9XG5cbiAgICAgICAgLm1lbnUtaXRlbSB7XG5cdFx0XHRcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQ7XG4gICAgICAgICAgcGFkZGluZzogMCAxZW07XG5cbiAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZvb3Rlci1yaWdodCB7XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgfVxuICB9XG5cdFxuXHQuZm9vdGVyLW5hdiB7XG5cdFx0YmFja2dyb3VuZDogIzVlOTRjZDtcblx0fVxuXHRcblx0LmZvb3Rlci10b3AsIC5mb290ZXItYm90dG9tIHtcblx0XHRiYWNrZ3JvdW5kOiAjMDAyODhmO1xuXHR9XG5cbiAgLmZvb3Rlci1sb2dvcyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgbGkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgd2lkdGg6IDE1MHB4O1xuICAgICAgbWFyZ2luOiAyZW07XG4gICAgfVxuICB9XG59IiwiLnNhdGlzZmlfY2hhdC1idXR0b24ge1xuXG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiA3JSAhaW1wb3J0YW50O1xuICAgIGJvdHRvbTogNSUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoIHNtYWxsIG9ubHkgKSB7XG5cbiAgICAgICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICByaWdodDogMTclICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvdHRvbTogNSUgIWltcG9ydGFudDtcblxuICAgIH1cblxuICAgIEBpbmNsdWRlIGlwaG9uZS1maXZlLWxhbmRzY2FwZSgpIHtcblxuICAgICAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIHJpZ2h0OiAxMyUgIWltcG9ydGFudDtcbiAgICAgICAgYm90dG9tOiA1JSAhaW1wb3J0YW50O1xuXG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCggbWVkaXVtICkge1xuXG4gICAgICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgcmlnaHQ6IDEwJSAhaW1wb3J0YW50O1xuICAgICAgICBib3R0b206IDYlICFpbXBvcnRhbnQ7XG5cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCBsYXJnZSApIHtcblxuICAgICAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIHJpZ2h0OiA3JSAhaW1wb3J0YW50O1xuICAgICAgICBib3R0b206IDUlICFpbXBvcnRhbnQ7XG5cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBpcGFkLXBvcnRyYWl0KCkge1xuXG4gICAgICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgcmlnaHQ6IDExJSAhaW1wb3J0YW50O1xuICAgICAgICBib3R0b206IDUlICFpbXBvcnRhbnQ7XG5cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBpcGFkLWxhbmRzY2FwZSgpIHtcblxuICAgICAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIHJpZ2h0OiAxMCUgIWltcG9ydGFudDtcbiAgICAgICAgYm90dG9tOiA1JSAhaW1wb3J0YW50O1xuXG4gICAgfVxuXG59XG5cbi5zYXRpc2ZpX2NoYXQge1xuXG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiA3JSAhaW1wb3J0YW50O1xuICAgIFxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoIHNtYWxsIG9ubHkgKSB7XG5cbiAgICAgICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICByaWdodDogMCAhaW1wb3J0YW50O1xuXG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCggbWVkaXVtICkge1xuXG4gICAgICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgcmlnaHQ6IDAgIWltcG9ydGFudDtcblxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoIGxhcmdlICkge1xuXG4gICAgICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgcmlnaHQ6IDclICFpbXBvcnRhbnQ7XG5cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBpcGFkLXBvcnRyYWl0KCkge1xuXG4gICAgICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgcmlnaHQ6IDAgIWltcG9ydGFudDtcblxuICAgIH1cblxuICAgIEBpbmNsdWRlIGlwYWQtbGFuZHNjYXBlKCkge1xuXG4gICAgICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgcmlnaHQ6IDEwJSAhaW1wb3J0YW50O1xuXG4gICAgfVxuXG59IiwiLypcblNpbmdsZSBwcmVzcyByZWxlYXNlLlxuXG5Ac2luY2UgMC4xLjBcbiovXG5cbi5wcmVzcy1yZWxlYXNlLWxvY2F0aW9uIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnByZXNzLXJlbGVhc2UtdGl0bGUge1xuICBjb2xvcjogJHN1bW1lci1za3ktYmx1ZTtcblxuICBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcblxuICAgICY6aG92ZXIsICY6aG92ZXIgKiB7XG4gICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgfVxuICB9XG59XG5cbi5wcmVzcy1yZWxlYXNlLXN1YmhlYWRpbmcge1xuICBAZXh0ZW5kIGg0O1xuICBjb2xvcjogIzVmNWY1Zjtcbn1cblxuLnByZXNzLXJlbGVhc2UtZGF0ZSB7XG4gIGNvbG9yOiAkc3VtbWVyLXNreS1ibHVlO1xufVxuXG4ucHJlc3MtcmVsZWFzZS1jb250YWN0IHtcbiAgY29sb3I6ICM3Nzc7XG5cbiAgcCB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLnByZXNzLXJlbGVhc2UtY29udGFjdC1oZWFkaW5nIHtcbiAgICBjb2xvcjogIzU1NTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG59XG5cbiNhcmNoaXZlLXByZXNzLXJlbGVhc2Uge1xuICAucHJlc3MtcmVsZWFzZS1saXN0IHtcbiAgICAucHJlc3MtcmVsZWFzZSB7XG5cdFx0XG5cdFx0JjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdG1hcmdpbi10b3A6IDFlbTtcblx0XHR9XG5cdFx0XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI0U3RThFQTtcblxuICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiNzaW5nbGUtcHJlc3MtcmVsZWFzZS5hcmNoaXZlZCwgI2FyY2hpdmUtcHJlc3MtcmVsZWFzZSAucHJlc3MtcmVsZWFzZS5hcmNoaXZlZCwgLnNlYXJjaC1yZXN1bHRzIC5wcmVzcy1yZWxlYXNlLmFyY2hpdmVkIHtcblx0XG5cdC5wcmVzcy1yZWxlYXNlLXRpdGxlLCAucHJlc3MtcmVsZWFzZS1kYXRlLCAucHJlc3MtcmVsZWFzZS1zdWJoZWFkaW5nLCAucHJlc3MtcmVsZWFzZS1leGNlcnB0LCAucGFnZS1jb3B5LCAucG9zdC10aXRsZSBhLCAucG9zdC1leGNlcnB0IHtcbiAgXHRcdGNvbG9yOiAjNDI0ZDUyO1xuXHR9XG5cdFxuXHQucG9zdC10aXRsZTpob3ZlciwgLnBvc3QtdGl0bGU6aG92ZXIgKiB7XG4gICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgfVxuXHRcbn0iLCIvKlxuU2luZ2xlIHZlbmRvci5cblxuQHNpbmNlIDAuMS4wXG4qL1xuXG4udmVuZG9yLXRpdGxlIHtcbiAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4udmVuZG9yLWhvdXJzLWluZm9ybWF0aW9uIHtcbiAgY29sb3I6ICRzdW1tZXItc2t5LWJsdWU7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi52ZW5kb3ItbGlzdCB7XG4gIC52ZW5kb3Ige1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjRTdFOEVBO1xuICAgIG1hcmdpbjogMmVtIDA7XG5cbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbiNhcmNoaXZlLXZlbmRvciB7XG4gIC52ZW5kb3ItZGVzY3JpcHRpb24ge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAudmVuZG9yLWltYWdlIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgIEBpbmNsdWRlIGhvcml6b250YWwtZ3JhZGllbnQoIzFjNzViYywgIzY2YWNkZSk7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgfVxuXG4gICAgLnZlbmRvci10aXRsZSB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgfVxuXG4gICAgLnZlbmRvci1ob3Vycy1pbmZvcm1hdGlvbiB7XG4gICAgICBjb2xvcjogI0FDRDZGODtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1heC13aWR0aDogNDAlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIvKlxuU3R5bGVzIHNpbmdsZS5waHAuXG5cbkBzaW5jZSAwLjEuMFxuKi9cblxuYm9keS5zaW5nbGUtcG9zdCB7XG59IiwiLypcblNpbmdsZSBhbmltYWwgcG9zdC5cblxuQHNpbmNlIDAuMS4wXG4qL1xuXG5ib2R5LnNpbmdsZS1hbmltYWwge1xuXG4gIC5wb3N0LWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkY29sdW1uLWd1dHRlciAvIDI7XG4gICAgfVxuICB9XG5cbiAgLmFuaW1hbC1wYWdlLWdyYWRpZW50IHtcbiAgICBAaW5jbHVkZSB2ZXJ0aWNhbC1ncmFkaWVudCgjQzREN0VFLCAjZmZmKTtcbiAgICBwYWRkaW5nOiAxZW0gMWVtIDA7XG4gIH1cblxuICAuZmVhdHVyZWQtaW1hZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5hbmltYWwtdGl0bGUge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIC5zY2llbnRpZmljLW5hbWUge1xuICAgIGNvbG9yOiAkc3VtbWVyLXNreS1ibHVlO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXNpemU6IDEuNWVtO1xuICB9XG5cbiAgLmFuaW1hbC1yaWdodC1zaWRlYmFyIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAuYW5pbWFsLWZhY3RzIHtcbiAgICBAaW5jbHVkZSBob3Jpem9udGFsLWdyYWRpZW50KCM2NmFjZGUsICMxYzc1YmMpO1xuICAgIG1hcmdpbi10b3A6IDAuNWVtO1xuICAgIHBhZGRpbmc6IDAuNWVtO1xuXG4gICAgaDMge1xuICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIC5mYWN0LXRpdGxlIHtcbiAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuZmFjdC1jb250ZW50IHtcbiAgICAgIGNvbG9yOiAkbGlnaHQtY29sb3I7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIH1cblxuICAgIC5hbmltYWwtaGFiaXRhdCB7XG4gICAgICAuZmFjdC1jb250ZW50IHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtM3B4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDNweDtcbiAgICAgICAgQGluY2x1ZGUgaG9yaXpvbnRhbC1ncmFkaWVudCgjMEM3M0JDLCByZ2JhKCMxOTc2QkIsIDApKTtcblxuICAgICAgICBhIHtcbiAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcblxuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IGRhcmtlbigjZmZmLCAxMCUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tb3JlLWluZm8ge1xuICAgIEBpbmNsdWRlIGhvcml6b250YWwtZ3JhZGllbnQoIzY2YWNkZSwgIzFjNzViYyk7XG4gICAgcGFkZGluZzogMC41ZW07XG4gICAgbWFyZ2luLXRvcDogJGNvbHVtbi1ndXR0ZXIgLyAyO1xuXG4gICAgaDMge1xuICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgfVxuXG4gIC5mdW4tZmFjdHMge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkcHJpbWFyeS1jb2xvcjtcbiAgICBwYWRkaW5nLXRvcDogMWVtO1xuICAgIG1hcmdpbi10b3A6IDFlbTtcblxuICAgIGgzIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgbWFyZ2luLWxlZnQ6IDNlbTtcblxuICAgICAgbGk6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwLjM1ZW0gMCAwLjM1ZW0gMC40NWVtO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgbGVmdDogLTFlbTtcbiAgICAgICAgdG9wOiAwLjllbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi8qXG5TaW5nbGUgYXR0cmFjdGlvbiBwb3N0LlxuXG5Ac2luY2UgMC4xLjBcbiovXG5cbmJvZHkuc2luZ2xlLWF0dHJhY3Rpb24ge1xuXG4gIC5zdWItdGl0bGUge1xuICAgIGNvbG9yOiAkc3VtbWVyLXNreS1ibHVlO1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWFyZ2luLXRvcDogMWVtO1xuICB9XG5cbiAgLmNvbnRlbnQtYmxvY2tzLWxpc3Qge1xuICAgIC5jb250ZW50LWJsb2NrLXN1Yi10aXRsZSB7XG4gICAgICBjb2xvcjogJHN1bW1lci1za3ktYmx1ZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cblxuICAgIC5jb250ZW50LWJsb2NrLWltYWdlIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xuICAgIH1cbiAgfVxufSIsIi8qXG5TaW5nbGUgZXZlbnQgcG9zdC5cblxuQHNpbmNlIDAuMS4wXG4qL1xuXG5ib2R5LnNpbmdsZS1ldmVudCB7XG5cbiAgLmV2ZW50LXRpdGxlIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmV2ZW50LW1ldGEge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBjb2xvcjogJHN1bW1lci1za3ktYmx1ZTtcbiAgICBmb250LXNpemU6IDEuNWVtO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuXG4gIC5ldmVudC1maWVsZC1zZXBlcmF0b3Ige1xuICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgJHN1bW1lci1za3ktYmx1ZTtcbiAgICBtYXJnaW46IDAgMWVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG4gIH1cblxuICAucGFnZS1iYW5uZXIsIC5wYWdlLWJhbm5lci1tb2JpbGUge1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgfVxuXG4gIC5wYWdlLWJhbm5lci1tb2JpbGUge1xuICAgIG1hcmdpbi1sZWZ0OiAtMWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFlbTtcbiAgICB3aWR0aDogYXV0bztcblxuICAgIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gIH1cblx0XG5cdC5wYWdlLWNvcHk6Zmlyc3QtY2hpbGQge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdH1cblx0XG5cdC5mdWxsLXdpZHRoLWJhbm5lciB7XG5cdFx0XG5cdFx0LnBhZ2UtY29weSB7XG5cdFx0XHRtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cdFx0XG5cdFx0LnBhZ2UtYmFubmVyIHtcblx0XHRcdFxuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XG5cdFx0XHRpbWcge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHR9XG5cdFx0XG5cdH1cblxuICAuZXZlbnQtdGlja2V0LWxpbmsge1xuXHQgIFxuXHQgIG1hcmdpbjogMnJlbSAwIDAuMnJlbSAwO1xuICAgIGRpc3BsYXk6IHRhYmxlOyAvLyBJdCBpcyBkdW1iLCBidXQgdGhpcyBsZXRzIHVzIGJyZWFrIHRoZW0gb250byB0d28gbGluZXMgd2l0aG91dCBtYWtpbmcgdGhlbSBmdWxsLXdpZHRoXG4gICAgXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCggbWVkaXVtIGRvd24gKSB7XG5cbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAmOm5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICB9XG5cbiAgICB9XG5cdCAgXG5cdCAgJi5ldmVudC10aWNrZXQtbGluay1yaWdodCB7XG5cdFx0ICBcblx0XHQgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODAxcHgpIHtcbiAgICAgICAgcGFkZGluZzogMC40cmVtIDIuNXJlbSAwLjRyZW0gMC43NXJlbTtcblx0XHRcdCAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDEwMHB4O1xuXHRcdFx0ICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTAwcHg7XG5cdFx0XHQgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHQgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0ICB9XG5cdFx0ICBcblx0ICB9XG5cdCAgXG5cdCAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MDFweCkge1xuXHRcdCAgXG5cdFx0ICBtYXJnaW46IDJyZW0gMDtcblx0XHQgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBcbiAgICB9XG5cbiAgfVxuXG4gIC5idXR0b24tZ3JvdXA6bnRoLW9mLXR5cGUoMm4rMSkge1xuXG4gICAgLmV2ZW50LXRpY2tldC1saW5rIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gIH1cblxuICAuYnV0dG9uLWdyb3VwLmxhc3Q6bm90KC5maXJzdCkge1xuXG4gICAgLmV2ZW50LXRpY2tldC1saW5rIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIH1cblxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCggbWVkaXVtIGRvd24gKSB7XG5cbiAgICAuYnV0dG9uLWdyb3VwIHtcblxuICAgICAgLmV2ZW50LXRpY2tldC1saW5rIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC40cmVtICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgICYubGFzdCB7XG5cbiAgICAgICAgYTpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW0gIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICB9XG5cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoIGxhcmdlICkge1xuXG4gICAgLmJ1dHRvbi1ncm91cC5maXJzdDpub3QoLmxhc3QpIHtcblxuICAgICAgLmV2ZW50LXRpY2tldC1saW5rIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4ycmVtO1xuICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmJ1dHRvbi1ncm91cDpub3QoLmZpcnN0KSB7XG5cbiAgICAgIC5ldmVudC10aWNrZXQtbGluayB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbiAgICAgIH1cblxuICAgIH1cblxuICB9XG5cbiAgI2V2ZW50LWRldGFpbHMge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAuZGV0YWlscy10YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogIzgxYmZlODtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUEvUGdvOGMzWm5JSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdkMmxrZEdnOUlqRXdNQ1VpSUdobGFXZG9kRDBpTVRBd0pTSWdkbWxsZDBKdmVEMGlNQ0F3SURFZ01TSWdjSEpsYzJWeWRtVkJjM0JsWTNSU1lYUnBiejBpYm05dVpTSStDaUFnUEd4cGJtVmhja2R5WVdScFpXNTBJR2xrUFNKbmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0lpQm5jbUZrYVdWdWRGVnVhWFJ6UFNKMWMyVnlVM0JoWTJWUGJsVnpaU0lnZURFOUlqQWxJaUI1TVQwaU1DVWlJSGd5UFNJeE1EQWxJaUI1TWowaU1UQXdKU0krQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpBbElpQnpkRzl3TFdOdmJHOXlQU0lqT0RGaVptVTRJaUJ6ZEc5d0xXOXdZV05wZEhrOUlqRWlMejRLSUNBZ0lEeHpkRzl3SUc5bVpuTmxkRDBpTVRBd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJabVptWm1aaUlnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ1BDOXNhVzVsWVhKSGNtRmthV1Z1ZEQ0S0lDQThjbVZqZENCNFBTSXdJaUI1UFNJd0lpQjNhV1IwYUQwaU1TSWdhR1ZwWjJoMFBTSXhJaUJtYVd4c1BTSjFjbXdvSTJkeVlXUXRkV05uWnkxblpXNWxjbUYwWldRcElpQXZQZ284TDNOMlp6ND0pO1xuICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KC00NWRlZywgIzgxYmZlOCAwJSwgI2ZmZmZmZiAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IGJvdHRvbSwgY29sb3Itc3RvcCgwJSwgIzgxYmZlOCksIGNvbG9yLXN0b3AoMTAwJSwgI2ZmZmZmZikpO1xuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KC00NWRlZywgIzgxYmZlOCAwJSwgI2ZmZmZmZiAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCAjODFiZmU4IDAlLCAjZmZmZmZmIDEwMCUpO1xuICAgIGJhY2tncm91bmQ6IC1tcy1saW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCAjODFiZmU4IDAlLCAjZmZmZmZmIDEwMCUpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM4MWJmZTggMCUsICNmZmZmZmYgMTAwJSk7XG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzgxYmZlOCcsIGVuZENvbG9yc3RyPScjZmZmZmZmJywgR3JhZGllbnRUeXBlPTEpO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuXG4gICAgdHIge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjQkNEQkYwO1xuXG4gICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxZW07XG4gICAgfVxuXHQgXG5cdCAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdFx0ICBcblx0XHQgIHRhYmxlLWxheW91dDogZml4ZWQ7XG5cdFx0ICBcblx0XHQgIHRoIHtcblx0XHRcdCAgd2lkdGg6IDM1JTtcblx0XHQgIH1cblx0XHQgIFxuXHRcdCAgdWwge1xuXHRcdFx0ICBtYXJnaW4tbGVmdDogMDtcblx0XHQgIH1cblx0XHQgIFxuXHRcdCAgLy8gQ3Jvd2R3aXNlIGxpa2VzIHRvIGhhcmRjb2RlIHdpZHRocyBvbiBzdHVmZlxuXHRcdCAgZGl2W2lkXj1cImNyRG9uYXRlV2lkZ2V0X1wiXSwgZGl2W2lkXj1cImNyRG9uYXRlV2lkZ2V0X1wiXSAuY3JJbWFnZUFuZFRpdGxlT3V0ZXIsIGRpdltpZF49XCJjckRvbmF0ZVdpZGdldF9cIl0gLmNySW1hZ2VBbmRUaXRsZSwgZGl2W2lkXj1cImNyRG9uYXRlV2lkZ2V0X1wiXSAuZ3JhZGllbnRCdXR0b24ge1xuXHRcdFx0ICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuXHRcdCAgfVxuXHRcdCAgXG5cdCAgfVxuXHQgIFxuICB9XG5cbiAgLmV2ZW50LWZhcSB7XG4gICAgLmZhcS10aXRsZSB7XG4gICAgICBAZXh0ZW5kIGgzO1xuICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuICB9XG5cbiAgLmV2ZW50LXNwb25zb3JzIHtcblx0ICBcblx0ICAuY29udGVudCB7XG5cdFx0ICBvdmVyZmxvdy14OiBoaWRkZW47XG5cdCAgfVxuXHQgIFxuXHQgIC5zcG9uc29ycy1oZWFkZXIge1xuXHRcdCAgXG5cdFx0ICAvLyBSZXBsaWNhdGluZyBFeHBhbmRlZCBBY2NvcmRpb24gSGVhZGVyXG5cdFx0ICBjb2xvcjogJGxpZ2h0LWNvbG9yO1xuXHRcdCAgZm9udC1zaXplOiAxLjVlbTtcblx0XHQgIHBhZGRpbmctbGVmdDogMC41ZW07XG5cdFx0ICBwYWRkaW5nLXRvcDogMC4xZW07XG5cdFx0ICBwYWRkaW5nLWJvdHRvbTogMC4xZW07XG5cdFx0ICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xuXHRcdCAgQGluY2x1ZGUgaG9yaXpvbnRhbC1ncmFkaWVudCgkcHJpbWFyeS1jb2xvciwgIzVDNkRCNCk7XG5cdFx0ICBcblx0ICB9XG5cdCAgXG5cdCAgJi5uby1hY2NvcmRpb24sIC5zcG9uc29ycy1oZWFkZXIge1xuXHRcdCAgXG5cdFx0ICBtYXJnaW4tYm90dG9tOiAxLjA3MTQyODU3MTRyZW07XG5cdFx0ICBcblx0ICB9XG5cdCAgXG4gICAgLnNwb25zb3Ige1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcztcbiAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZm9udC1zaXplOiAyZW07XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICB9XG5cbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIH1cblxuICAgICAgLnNwb25zb3ItbGV2ZWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICAgICAgY29sb3I6ICM4ODg7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIvKlxuU2luZ2xlIHJlbnRhbCBwb3N0LlxuXG5Ac2luY2UgMC4xLjBcbiovXG5cbmJvZHkuc2luZ2xlLXJlbnRhbCB7XG4gIC5yZW50YWwtdGl0bGUge1xuICAgIGNvbG9yOiAkc3VtbWVyLXNreS1ibHVlO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAuY29udGVudC1ibG9ja3MtbGlzdCB7XG4gICAgJjpub3QoLmFjY29yZGlvbikge1xuICAgICAgPiBsaSB7XG4gICAgICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCAjRThFOEU4O1xuICAgICAgfVxuXG4gICAgICAuY29udGVudC1ibG9jay10aXRsZSB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNvbnRlbnQtYmxvY2stc3ViLXRpdGxlIHtcbiAgICAgIGNvbG9yOiAkc3VtbWVyLXNreS1ibHVlO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuICB9XG59IiwiLypcblRlbXBsYXRlczogcHVyY2hhc2luZyBhbmQgY29udHJhY3RzXG5cbkBzaW5jZSAwLjEuMFxuKi9cblxuYm9keS5wYWdlLXRlbXBsYXRlLXB1cmNoYXNpbmctY29udHJhY3RzIHtcblxuICAudGFibGUtdGl0bGUge1xuXG4gIH1cblxuICAucGFnZS1jb250ZW50IHtcbiAgICB0YWJsZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn0iLCIvKlxuVGVtcGxhdGUgVExMLlxuXG5Ac2luY2UgMS4xMS4wXG4qL1xuXG5ib2R5LnBhZ2UtdGVtcGxhdGUtdG9wLWxldmVsLWxhbmRpbmcge1xuICAuY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHggIWltcG9ydGFudDtcblxuICAgIC5jaGlsZC10aXRsZSB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgIEBpbmNsdWRlIGhvcml6b250YWwtZ3JhZGllbnQoJHByaW1hcnktY29sb3IsICM1QzZEQjQpO1xuICAgICAgZm9udC1zaXplOiAxLjhlbTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA5ZW07XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgQGluY2x1ZGUgaG9yaXpvbnRhbC1ncmFkaWVudChsaWdodGVuKCRwcmltYXJ5LWNvbG9yLCAxMCUpLCBsaWdodGVuKCM1QzZEQjQsIDEwJSkpO1xuICAgICAgfVxuXG4gICAgICBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBwYWRkaW5nOiAwLjJlbSAwLjVlbSAhaW1wb3J0YW50O1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgIHBhZGRpbmc6IDAgMC41ZW0gMCAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNoaWxkLXRpdGxlLWltYWdlIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHdpZHRoOiAzMCU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY2hpbGQtY29udGVudCB7XG5cdFx0XG4gICAgICBwYWRkaW5nLWxlZnQ6IDFlbSAhaW1wb3J0YW50O1xuXHRcdFxuXHRcdGEge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlOyAvLyBGaXhlcyBwYXdwcmludCBpY29uXG5cdFx0fVxuXHRcdFxuICAgIH1cbiAgfVxufSIsIi8qXG5UZW1wbGF0ZTogV2Vic2l0ZSBNYXBcblxuQHNpbmNlIDEuMjYuMlxuKi9cblxuYm9keS5wYWdlLXRlbXBsYXRlLXdlYnNpdGUtbWFwLCBib2R5LmhpZGRlbi1wYWdlLXRlbXBsYXRlLW1hcCB7XG4gICNzaXRlLWNvbnRlbnQge1xuICAgIC5wYWdlLWNvcHkge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cbiAgfVxufSIsImJvZHkucGFnZS10ZW1wbGF0ZS1kenR2IHtcblxuXHQuc2l0ZS1wYWdlLWNvbnRlbnQge1xuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2Q2ZDZkNjtcblx0XHRAaW5jbHVkZSBsaWdodC1vci1kYXJrLXRleHQoICNkNmQ2ZDYgKTtcblxuXHRcdC50aXRsZS1iYW5uZXIge1xuXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkdml2aWQtdmlvbGV0O1xuXHRcdFx0cGFkZGluZzogJGNvbHVtbi1ndXR0ZXIgLyAyO1xuXG5cdFx0XHRjb2xvcjogI2ZmZjtcblxuXHRcdFx0aDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG5cdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHQuY29udGVudC1jb250YWluZXIge1xuXHRcdFx0XG5cdFx0XHRwYWRkaW5nOiAkY29sdW1uLWd1dHRlciAwO1xuXHRcdFx0XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0XHRwYWRkaW5nOiAkY29sdW1uLWd1dHRlcjtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0QG1lZGlhICN7JGlwYWQtcG9ydHJhaXR9IHtcblx0XHRcdFx0XG5cdFx0XHRcdCYgPiAuY29sdW1ucyB7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0bGVmdDogYXV0bztcblx0XHRcdFx0XHRcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdH1cblxuXHRcdFx0Lm5vdy1wbGF5aW5nIHtcblxuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAkY29sdW1uLWd1dHRlcjtcblxuXHRcdFx0XHQudmlkZW8ge1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGJvcmRlcjogc29saWQgM3B4ICRzdW1tZXItc2t5LWJsdWU7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0aWZyYW1lIHtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHRcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC5idXR0b24ge1xuXHRcdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC50aXRsZS1iYXIge1xuXG5cdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cblx0XHRcdFx0XHRcdC5hbGlnbmxlZnQsIC5hbGlnbnJpZ2h0IHtcblx0XHRcdFx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0LnZpZGVvLmhhcy1saW5rIHtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHQudGl0bGUtYmFyIHtcblxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblxuXHRcdFx0XHRcdFx0XHRoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcblxuXHRcdFx0XHRcdFx0XHRcdG1hcmdpbi10b3A6IDAuN2VtO1xuXG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHR9XG5cblx0XHRcdH1cblxuXHRcdFx0LnNwb25zb3Ige1xuXG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0Y29sb3I6ICRkYXJrLWNvbG9yO1xuXHRcdFx0XHRcblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXI7XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdCYgPiAqIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0bWFyZ2luOiAoICRjb2x1bW4tZ3V0dGVyIC8gNCApIDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHRcdFx0XG5cdFx0XHRcdC5uby1zcG9uc29yIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQudmlkZW8tdGh1bWJuYWlscyB7XG5cdFx0XHRcdFxuXHRcdFx0XHQucm93IHtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAkY29sdW1uLWd1dHRlcjtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdEBtZWRpYSAjeyRpcGFkLXBvcnRyYWl0fSB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0LnZpZGVvLXRodW1ibmFpbCB7XG5cdFx0XHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0QG1lZGlhICN7JGlwYWQtcG9ydHJhaXR9IHtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdC52aWRlby10aHVtYm5haWwge1xuXHRcdFx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQudmlkZW8tdGh1bWJuYWlsIHtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXI7XG5cdFx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHRAbWVkaWEgI3skaXBhZC1wb3J0cmFpdH0ge1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAkY29sdW1uLWd1dHRlcjtcblx0XHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDogJGNvbHVtbi1ndXR0ZXI7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdCRib3JkZXI6IDAuMjE0Mjg1NzE0Mjg1NzE0cmVtOyAvLyAzcHggLyAxNHB4ICgxcmVtKVxuXHRcdFx0XHRcdCR3aWR0aDogJGNvbHVtbi1ndXR0ZXIgKyAkYm9yZGVyO1xuXG5cdFx0XHRcdFx0aW1nIHtcblx0XHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0XHRcdFx0cGFkZGluZzogJGJvcmRlciAkYm9yZGVyIDAgJGJvcmRlcjtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRzdW1tZXItc2t5LWJsdWU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0LnRpdGxlLWJhciB7XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHRcdHBhZGRpbmc6ICRjb2x1bW4tZ3V0dGVyIC8gNDtcblx0XHRcdFx0XHRcdGxlZnQ6ICRjb2x1bW4tZ3V0dGVyIC8gMjtcblx0XHRcdFx0XHRcdHJpZ2h0OiAkY29sdW1uLWd1dHRlciAvIDI7XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRhLmFjdGl2ZSwgYTpob3ZlciB7XG5cblx0XHRcdFx0XHRcdC5jb2xvci1vdmVybGF5IHtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHQmOmFmdGVyIHtcblxuXHRcdFx0XHRcdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHRcdFx0XHR0b3A6ICRib3JkZXI7XG5cdFx0XHRcdFx0XHRcdFx0bGVmdDogJGJvcmRlcjtcblx0XHRcdFx0XHRcdFx0XHRyaWdodDogJGJvcmRlcjtcblx0XHRcdFx0XHRcdFx0XHRib3R0b206IDA7XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZDogcmdiYSggMCwgMCwgMCwgMC40ICk7XG5cdFx0XHRcdFx0XHRcdFx0dHJhbnNpdGlvbjogYWxsIDFzO1xuXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdCoge1xuXHRcdFx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHRhLmFjdGl2ZSB7XG5cdFx0XHRcdFx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHR9XG5cblx0XHRcdC50aXRsZS1iYXIge1xuXG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRzdW1tZXItc2t5LWJsdWU7XG5cdFx0XHRcdHBhZGRpbmc6ICRjb2x1bW4tZ3V0dGVyIC8gMjtcblxuXHRcdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdFx0XG5cdFx0XHRcdHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcblx0XHRcdFx0aHlwaGVuczogYXV0bztcblxuXHRcdFx0XHRoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcblx0XHRcdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHR9XG5cblx0XHRcdH1cblxuXHRcdH1cblxuXHR9XG5cbn0iLCJib2R5LnBhZ2UtdGVtcGxhdGUtc2h1ZmZsZS1ncmlkIHtcbiAgXG4gIC5wYWdlLWJhbm5lciB7XG4gICAgXG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCAkZ3V0dGVyOiBhdXRvLCAkZ3V0dGVyczogMS40Mjg1NzE0Mjg2cmVtICk7XG4gICAgXG4gIH1cbiAgXG59IiwiLypcblN0eWxlcyBwYWdlLnBocC5cblxuQHNpbmNlIDAuMS4wXG4qL1xuXG5ib2R5LnBhZ2UtdGVtcGxhdGUtdG9kYXktYXQtdGhlLXpvbyB7XG4gIC50b2RheS1zZWN0aW9uIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcblxuICAgIC50b2RheS1zZWN0aW9uLWltYWdlIHtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRvZGF5LXNlY3Rpb24taG91cnMsIC50b2RheS1zZWN0aW9uLXByaWNpbmcsIC50b2RheS1zZWN0aW9uLXRvdGFsLWV4cGVyaWVuY2UtcHJpY2luZyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMzBweDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblx0ICBcblx0ICAudG9kYXktc2VjdGlvbi1ob3VycyB7XG5cdFx0ICBiYWNrZ3JvdW5kOiAjODFiZmU4O1xuXHRcdCAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BnbzhjM1puSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZDJsa2RHZzlJakV3TUNVaUlHaGxhV2RvZEQwaU1UQXdKU0lnZG1sbGQwSnZlRDBpTUNBd0lERWdNU0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWJtOXVaU0krQ2lBZ1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTSm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJZ2VERTlJakFsSWlCNU1UMGlNQ1VpSUhneVBTSXhNREFsSWlCNU1qMGlNVEF3SlNJK0NpQWdJQ0E4YzNSdmNDQnZabVp6WlhROUlqQWxJaUJ6ZEc5d0xXTnZiRzl5UFNJak9ERmlabVU0SWlCemRHOXdMVzl3WVdOcGRIazlJakVpTHo0S0lDQWdJRHh6ZEc5d0lHOW1abk5sZEQwaU1UQXdKU0lnYzNSdmNDMWpiMnh2Y2owaUkyWm1abVptWmlJZ2MzUnZjQzF2Y0dGamFYUjVQU0l4SWk4K0NpQWdQQzlzYVc1bFlYSkhjbUZrYVdWdWRENEtJQ0E4Y21WamRDQjRQU0l3SWlCNVBTSXdJaUIzYVdSMGFEMGlNU0lnYUdWcFoyaDBQU0l4SWlCbWFXeHNQU0oxY213b0kyZHlZV1F0ZFdOblp5MW5aVzVsY21GMFpXUXBJaUF2UGdvOEwzTjJaejQ9KTtcblx0XHQgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KC00NWRlZywgIzgxYmZlOCAwJSwgI2ZmZmZmZiAxMDAlKTtcblx0XHQgIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgYm90dG9tLCBjb2xvci1zdG9wKDAlLCAjODFiZmU4KSwgY29sb3Itc3RvcCgxMDAlLCAjZmZmZmZmKSk7XG5cdFx0ICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgtNDVkZWcsICM4MWJmZTggMCUsICNmZmZmZmYgMTAwJSk7XG5cdFx0ICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCAjODFiZmU4IDAlLCAjZmZmZmZmIDEwMCUpO1xuXHRcdCAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudCgtNDVkZWcsICM4MWJmZTggMCUsICNmZmZmZmYgMTAwJSk7XG5cdFx0ICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjODFiZmU4IDAlLCAjZmZmZmZmIDEwMCUpO1xuXHRcdCAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzgxYmZlOCcsIGVuZENvbG9yc3RyPScjZmZmZmZmJywgR3JhZGllbnRUeXBlPTEpO1xuXHQgIH1cblx0ICBcblx0ICAudG9kYXktc2VjdGlvbi1wcmljaW5nIHtcblx0XHRiYWNrZ3JvdW5kOiAjZGNlMmYyO1xuXHRcdGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQS9QZ284YzNabklIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2QybGtkR2c5SWpFd01DVWlJR2hsYVdkb2REMGlNVEF3SlNJZ2RtbGxkMEp2ZUQwaU1DQXdJREVnTVNJZ2NISmxjMlZ5ZG1WQmMzQmxZM1JTWVhScGJ6MGlibTl1WlNJK0NpQWdQR3hwYm1WaGNrZHlZV1JwWlc1MElHbGtQU0puY21Ga0xYVmpaMmN0WjJWdVpYSmhkR1ZrSWlCbmNtRmthV1Z1ZEZWdWFYUnpQU0oxYzJWeVUzQmhZMlZQYmxWelpTSWdlREU5SWpBbElpQjVNVDBpTUNVaUlIZ3lQU0l3SlNJZ2VUSTlJakV3TUNVaVBnb2dJQ0FnUEhOMGIzQWdiMlptYzJWMFBTSXdKU0lnYzNSdmNDMWpiMnh2Y2owaUkyUmpaVEptTWlJZ2MzUnZjQzF2Y0dGamFYUjVQU0l4SWk4K0NpQWdJQ0E4YzNSdmNDQnZabVp6WlhROUlqRXdNQ1VpSUhOMGIzQXRZMjlzYjNJOUlpTm1ZMlprWm1VaUlITjBiM0F0YjNCaFkybDBlVDBpTVNJdlBnb2dJRHd2YkdsdVpXRnlSM0poWkdsbGJuUStDaUFnUEhKbFkzUWdlRDBpTUNJZ2VUMGlNQ0lnZDJsa2RHZzlJakVpSUdobGFXZG9kRDBpTVNJZ1ptbHNiRDBpZFhKc0tDTm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtLU0lnTHo0S1BDOXpkbWMrKTtcblx0XHRiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAlLCAjZGNlMmYyKSwgY29sb3Itc3RvcCgxMDAlLCAjZmNmZGZlKSk7XG5cdFx0YmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZGNlMmYyIDAlLCAjZmNmZGZlIDEwMCUpO1xuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNkY2UyZjIgMCUsICNmY2ZkZmUgMTAwJSk7XG5cdFx0ZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNkY2UyZjInLCBlbmRDb2xvcnN0cj0nI2ZjZmRmZScsR3JhZGllbnRUeXBlPTAgKTtcblx0ICB9XG5cdCAgXG5cdCAgLnRvZGF5LXNlY3Rpb24tdG90YWwtZXhwZXJpZW5jZS1wcmljaW5nIHtcblx0XHQgIFxuXHRcdCAgLnByaWNpbmctdGFibGUgLnByaWNpbmctdGFibGUtdGV4dCB7XG5cdFx0IFx0Y29sb3I6ICRzbWFsdDtcblx0XHQgIH1cblx0XHQgIFxuXHRcdGJhY2tncm91bmQ6ICM1MTk2REQ7XG5cdFx0YmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BnbzhjM1puSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZDJsa2RHZzlJakV3TUNVaUlHaGxhV2RvZEQwaU1UQXdKU0lnZG1sbGQwSnZlRDBpTUNBd0lERWdNU0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWJtOXVaU0krQ2lBZ1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTSm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJZ2VERTlJakFsSWlCNU1UMGlNQ1VpSUhneVBTSXdKU0lnZVRJOUlqRXdNQ1VpUGdvZ0lDQWdQSE4wYjNBZ2IyWm1jMlYwUFNJd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJSalpUSm1NaUlnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlObVkyWmtabVVpSUhOMGIzQXRiM0JoWTJsMGVUMGlNU0l2UGdvZ0lEd3ZiR2x1WldGeVIzSmhaR2xsYm5RK0NpQWdQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRWlJR2hsYVdkb2REMGlNU0lnWm1sc2JEMGlkWEpzS0NObmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0tTSWdMejRLUEM5emRtYyspO1xuXHRcdGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMCUsICM1MTk2REQpLCBjb2xvci1zdG9wKDEwMCUsICNmY2ZkZmUpKTtcblx0XHRiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICM1MTk2REQgMCUsICNmY2ZkZmUgMTAwJSk7XG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzUxOTZERCAwJSwgI2ZjZmRmZSAxMDAlKTtcblx0XHRmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI2RjZTJmMicsIGVuZENvbG9yc3RyPScjZmNmZGZlJyxHcmFkaWVudFR5cGU9MCApO1xuXHQgIH1cblxuICAgIC50b2RheS1zZWN0aW9uLXByaWNpbmctdGl0bGUsIC50b2RheS1zZWN0aW9uLWhvdXJzLXRpdGxlLCAudG9kYXktc2VjdGlvbi10b3RhbC1leHBlcmllbmNlLXByaWNpbmctdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXHQgIFxuXHQgIC50b2RheS1zZWN0aW9uLXRvdGFsLWV4cGVyaWVuY2UtcHJpY2luZy10aXRsZSB7XG5cdFx0ICBjb2xvcjogI2VhZGM1Njtcblx0ICB9XG5cbiAgICAudG9kYXktc2VjdGlvbi1ob3Vycy1zdHJpbmcge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXNpemU6IDEuNWVtO1xuXG4gICAgICAuaG91ciB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS44ZW07XG4gICAgICB9XG5cbiAgICAgIC5tZXJpZGllbSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBzdXBlcjtcbiAgICAgIH1cblxuICAgICAgLnRpbWUtcmFuZ2Utc2VwIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHN1cGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIHAge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5idXR0b24ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgdGFibGUge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgdHIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi8qXG5TdHlsZXMgcGFnZS5waHAuXG5cbkBzaW5jZSAwLjEuMFxuKi9cblxuYm9keS5wYWdlLXRlbXBsYXRlLXByaWNlcywgYm9keS5wYWdlLXRlbXBsYXRlLXdpbGQtbGlnaHRzLCBib2R5LmV2ZW50LXRlbXBsYXRlLXdpbGQtbGlnaHRzIHtcblxuICB0YWJsZSB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgIHRyIHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgIHRkIHtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnByaWNpbmctdGFibGUge1xuICAgIC5wcmljaW5nLXRhYmxlLXByaWNlIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICB9XG5cbiAgLnByaWNlcy1nZW5lcmFsIHtcbiAgICAvKiBQZXJtYWxpbmsgLSB1c2UgdG8gZWRpdCBhbmQgc2hhcmUgdGhpcyBncmFkaWVudDogaHR0cDovL2NvbG9yemlsbGEuY29tL2dyYWRpZW50LWVkaXRvci8jZGNlMmYyKzAsZmNmZGZlKzEwMCAqL1xuICAgIGJhY2tncm91bmQ6ICNkY2UyZjI7IC8qIE9sZCBicm93c2VycyAqL1xuICAgIC8qIElFOSBTVkcsIG5lZWRzIGNvbmRpdGlvbmFsIG92ZXJyaWRlIG9mICdmaWx0ZXInIHRvICdub25lJyAqL1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQS9QZ284YzNabklIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2QybGtkR2c5SWpFd01DVWlJR2hsYVdkb2REMGlNVEF3SlNJZ2RtbGxkMEp2ZUQwaU1DQXdJREVnTVNJZ2NISmxjMlZ5ZG1WQmMzQmxZM1JTWVhScGJ6MGlibTl1WlNJK0NpQWdQR3hwYm1WaGNrZHlZV1JwWlc1MElHbGtQU0puY21Ga0xYVmpaMmN0WjJWdVpYSmhkR1ZrSWlCbmNtRmthV1Z1ZEZWdWFYUnpQU0oxYzJWeVUzQmhZMlZQYmxWelpTSWdlREU5SWpBbElpQjVNVDBpTUNVaUlIZ3lQU0l3SlNJZ2VUSTlJakV3TUNVaVBnb2dJQ0FnUEhOMGIzQWdiMlptYzJWMFBTSXdKU0lnYzNSdmNDMWpiMnh2Y2owaUkyUmpaVEptTWlJZ2MzUnZjQzF2Y0dGamFYUjVQU0l4SWk4K0NpQWdJQ0E4YzNSdmNDQnZabVp6WlhROUlqRXdNQ1VpSUhOMGIzQXRZMjlzYjNJOUlpTm1ZMlprWm1VaUlITjBiM0F0YjNCaFkybDBlVDBpTVNJdlBnb2dJRHd2YkdsdVpXRnlSM0poWkdsbGJuUStDaUFnUEhKbFkzUWdlRDBpTUNJZ2VUMGlNQ0lnZDJsa2RHZzlJakVpSUdobGFXZG9kRDBpTVNJZ1ptbHNiRDBpZFhKc0tDTm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtLU0lnTHo0S1BDOXpkbWMrKTtcbiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICAjZGNlMmYyIDAlLCAjZmNmZGZlIDEwMCUpOyAvKiBGRjMuNisgKi9cbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAlLCNkY2UyZjIpLCBjb2xvci1zdG9wKDEwMCUsI2ZjZmRmZSkpOyAvKiBDaHJvbWUsU2FmYXJpNCsgKi9cbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICAjZGNlMmYyIDAlLCNmY2ZkZmUgMTAwJSk7IC8qIENocm9tZTEwKyxTYWZhcmk1LjErICovXG4gICAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgICNkY2UyZjIgMCUsI2ZjZmRmZSAxMDAlKTsgLyogT3BlcmEgMTEuMTArICovXG4gICAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICAjZGNlMmYyIDAlLCNmY2ZkZmUgMTAwJSk7IC8qIElFMTArICovXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgICNkY2UyZjIgMCUsI2ZjZmRmZSAxMDAlKTsgLyogVzNDICovXG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNkY2UyZjInLCBlbmRDb2xvcnN0cj0nI2ZjZmRmZScsR3JhZGllbnRUeXBlPTAgKTsgLyogSUU2LTggKi9cbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcblxuICAgIGgzIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiA2NXB4O1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5wcmljZXMtZ2VuZXJhbC1hdHRyYWN0aW9ucyB7XG4gICAgICBmb250LXNpemU6IGluaGVyaXQ7XG5cbiAgICAgIC5wcmljaW5nLXRhYmxlLXByaWNlIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5wcmljZXMtdmFsdWUge1xuICAgIC8qIFBlcm1hbGluayAtIHVzZSB0byBlZGl0IGFuZCBzaGFyZSB0aGlzIGdyYWRpZW50OiBodHRwOi8vY29sb3J6aWxsYS5jb20vZ3JhZGllbnQtZWRpdG9yLyNkY2UyZjIrMCxmY2ZkZmUrMTAwICovXG4gICAgYmFja2dyb3VuZDogIzUxOTZERDsgLyogT2xkIGJyb3dzZXJzICovXG4gICAgLyogSUU5IFNWRywgbmVlZHMgY29uZGl0aW9uYWwgb3ZlcnJpZGUgb2YgJ2ZpbHRlcicgdG8gJ25vbmUnICovXG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BnbzhjM1puSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZDJsa2RHZzlJakV3TUNVaUlHaGxhV2RvZEQwaU1UQXdKU0lnZG1sbGQwSnZlRDBpTUNBd0lERWdNU0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWJtOXVaU0krQ2lBZ1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTSm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJZ2VERTlJakFsSWlCNU1UMGlNQ1VpSUhneVBTSXdKU0lnZVRJOUlqRXdNQ1VpUGdvZ0lDQWdQSE4wYjNBZ2IyWm1jMlYwUFNJd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJSalpUSm1NaUlnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlObVkyWmtabVVpSUhOMGIzQXRiM0JoWTJsMGVUMGlNU0l2UGdvZ0lEd3ZiR2x1WldGeVIzSmhaR2xsYm5RK0NpQWdQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRWlJR2hsYVdkb2REMGlNU0lnWm1sc2JEMGlkWEpzS0NObmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0tTSWdMejRLUEM5emRtYyspO1xuICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgICM1MTk2REQgMCUsICNmY2ZkZmUgMTAwJSk7IC8qIEZGMy42KyAqL1xuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMCUsIzUxOTZERCksIGNvbG9yLXN0b3AoMTAwJSwjZmNmZGZlKSk7IC8qIENocm9tZSxTYWZhcmk0KyAqL1xuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgICM1MTk2REQgMCUsI2ZjZmRmZSAxMDAlKTsgLyogQ2hyb21lMTArLFNhZmFyaTUuMSsgKi9cbiAgICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCAgIzUxOTZERCAwJSwjZmNmZGZlIDEwMCUpOyAvKiBPcGVyYSAxMS4xMCsgKi9cbiAgICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgICM1MTk2REQgMCUsI2ZjZmRmZSAxMDAlKTsgLyogSUUxMCsgKi9cbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAgIzUxOTZERCAwJSwjZmNmZGZlIDEwMCUpOyAvKiBXM0MgKi9cbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI2RjZTJmMicsIGVuZENvbG9yc3RyPScjZmNmZGZlJyxHcmFkaWVudFR5cGU9MCApOyAvKiBJRTYtOCAqL1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuXHQgIFxuXHQgIGgzIHtcblx0XHQgIGxpbmUtaGVpZ2h0OiA2NXB4O1xuXHRcdCAgbWFyZ2luOiAwO1xuXHQgIH1cblxuICAgIC5wcmljZXMtdmFsdWUtYmFubmVyIHtcbiAgICAgIGhlaWdodDogNjVweDtcbiAgICB9XG5cbiAgICAucHJpY2VzLXZhbHVlLWJlc3QtdmFsdWUge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLnByaWNpbmctdGFibGUge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuXG4gICAgLnByaWNlcy12YWx1ZS1hdHRyYWN0aW9ucyB7XG4gICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcblxuICAgICAgLnByaWNpbmctdGFibGUtcHJpY2Uge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLmV2ZW50LXRlbXBsYXRlLXdpbGQtbGlnaHRzLCAucGFnZS10ZW1wbGF0ZS13aWxkLWxpZ2h0cyB7XG5cblx0LnByaWNlcyB7XG5cblx0XHQmLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcblx0XHRcdGZvbnQtd2VpZ2h0OiA4MDA7XG5cdFx0fVxuXG5cdFx0LmJ1dHRvbiB7XG5cdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdH1cblxuXHRcdC5wcmljZXMtZ2VuZXJhbCwgLnByaWNlcy12YWx1ZSB7XG5cblx0XHRcdCYgPiBoMyB7XG5cblx0XHRcdFx0bGluZS1oZWlnaHQ6IDI7XG5cblx0XHRcdFx0bWFyZ2luLXRvcDogMXJlbTtcblxuXHRcdFx0fVxuXG5cdFx0XHQmID4gaDMgKyBociB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHQucHJpY2luZy1nZW5lcmFsLWRlc2NyaXB0aW9uLCAucHJpY2luZy12YWx1ZS1kZXNjcmlwdGlvbiB7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0fVxuXG5cdFx0LnByaWNpbmctdGFibGUge1xuXG5cdFx0XHRmb250LXNpemU6IDEuMDhlbTtcblxuXHRcdFx0LnByaWNpbmctdGFibGUtdGV4dCB7XG5cdFx0XHRcdHAge1xuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdH1cblxuXHR9XG5cdFxuXHQuZXZlbnQtbWV0YSB7XG5cdFx0XG5cdFx0cGFkZGluZy10b3A6IDEuNnJlbTtcblx0XHRcblx0fVxuXHRcbn0iLCIvKlxuSGFiaXRhdCBhcmNoaXZlIHBhZ2UuXG5cbkBzaW5jZSAwLjEuMFxuKi9cblxuLmhhYml0YXQtcGFnZS10aXRsZSB7XG4gIGNvbG9yOiAkc3VtbWVyLXNreS1ibHVlO1xufVxuXG4uaGFiaXRhdCB7XG4gIG1hcmdpbi1ib3R0b206IDMwcHggIWltcG9ydGFudDtcblxuICAuaGFiaXRhdC10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjhlbTtcblxuICAgIC5oYWJpdGF0LWltYWdlIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6IDQwJTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgcGFkZGluZzogMC4yZW0gMC41ZW0gIWltcG9ydGFudDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMC41ZW0gMCAwICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmhhYml0YXQtY29udGVudCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxZW0gIWltcG9ydGFudDtcblxuICAgIC5oYWJpdGF0LWNvcHkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIH1cblxuICAgIC5oYWJpdGF0LWFuaW1hbHMge1xuICAgICAgLmNvbHVtbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNWVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgIGNvbG9yOiAkc3VtbWVyLXNreS1ibHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLypcblNlYXJjaCBpbmRleC5cblxuQHNpbmNlIDAuMS4wXG4qL1xuXG5ib2R5LmR6cy1jYW1wYWlnbiB7XG4gICNzaXRlLWNvbnRlbnQge1xuICAgIC5wYWdlLWNvcHkge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cbiAgfVxufSIsIi8qXG5FdmVudCBhcmNoaXZlIHBhZ2UuXG5cbkBzaW5jZSAwLjEuMFxuKi9cblxuI2FyY2hpdmUtZXZlbnQge1xuXG4gIC5zaHVmZmxlLWl0ZW0ge1xuICAgICY6aG92ZXIge1xuICAgICAgLnNodWZmbGUtaXRlbS1kYXRlIHtcbiAgICAgICAgY29sb3I6ICNGRkRBNkU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnNodWZmbGUtdGl0bGUge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbiAgfVxuXG4gIC5zaHVmZmxlLWl0ZW0tZGF0ZSB7XG4gICAgY29sb3I6IGRhcmtlbigkc3VtbWVyLXNreS1ibHVlLCAyMCUpO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXNpemU6IDAuOGVtO1xuICB9XG59IiwiLypcbkFuaW1hbCBhcmNoaXZlIHBhZ2UuXG5cbkBzaW5jZSAwLjEuMFxuKi9cblxuI2FyY2hpdmUtYW5pbWFsIHtcbiAgLnNodWZmbGUtdGl0bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDAuMmVtIDAuNWVtO1xuICB9XG59IiwiLypcbkhvbWUgcGFnZS5cblxuQHNpbmNlIDAuMS4wXG4qL1xuXG4kYmFubmVyLWhlaWdodDogNDUwcHg7XG5cbmJvZHkuaG9tZSB7XG4gICNzaXRlLWNvbnRlbnQge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvbWFpbi1iYWNrLmpwZ1wiKSAkc3VtbWVyLXNreS1ibHVlIGNlbnRlciB0b3Agbm8tcmVwZWF0O1xuICAgIH1cblxuICAgID4gLnJvdyB7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gICNob21lLWJhbm5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogJGJhbm5lci1oZWlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IC0oJGNvbHVtbi1ndXR0ZXIgLyAyKTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0oJGNvbHVtbi1ndXR0ZXIgLyAyKTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgIC5kenMtc2xpZGVyIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAuZHpzLXNsaWRlci1wcmV2IHtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cblxuICAgICAgLmR6cy1zbGlkZXItbmV4dCB7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgfVxuXG4gICAgICAuc2xpY2stc2xpZGUge1xuICAgICAgICAvL3Bvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiAkYmFubmVyLWhlaWdodDtcbiAgICAgICAgLy96LWluZGV4OiAxMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLnNsaWNrLWFjdGl2ZSB7XG4gICAgICAgICAgLy96LWluZGV4OiAxMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgIC8vd2lkdGg6IDEwMCU7XG4gICAgICAgICAgLy9mbG9hdDogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICBpbWcge1xuICAgICAgICAgIGhlaWdodDogJGJhbm5lci1oZWlnaHQ7XG4gICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuXG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMTAwcHg7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2JpZy1idXR0b25zLCAjZG9uYXRpb24ge1xuXG4gICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoIGF1dG8sICRncmlkLWNvbHVtbi1ndXR0ZXIgKSB7XG5cbiAgICAgICRwYWRkaW5nOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKTtcbiAgICBcbiAgICAgIG1hcmdpbi10b3A6ICRwYWRkaW5nO1xuXG4gICAgfVxuXG4gIH1cblxuICAjZG9uYXRpb24ge1xuXG4gICAgQGluY2x1ZGUgbGlnaHQtb3ItZGFyay10ZXh0KCAkc21hbHQgKTtcblxuICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCBhdXRvLCAkZ3JpZC1jb2x1bW4tZ3V0dGVyICkge1xuXG4gICAgICAkcGFkZGluZzogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSk7XG4gICAgXG4gICAgICBtYXJnaW4tYm90dG9tOiAkcGFkZGluZztcblxuICAgIH1cblxuICB9XG5cbiAgI2hvbWUtei1mZWVkIHtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG5cbiAgICAudGl0bGUtc2VjdGlvbiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBjb2xvcjogJGxpZ2h0LWNvbG9yO1xuICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgbWFyZ2luOiAzMHB4IDA7XG5cbiAgICAgIGgyIHtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICB9XG5cbiAgICAgIGhyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbjogLTJweCAwIDAgMDtcbiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJG1lZGl1bS1wdXJwbGU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC50aXRsZSwgLnN1Yi10aXRsZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gICAgICAgIG1hcmdpbjogMCAyMHB4O1xuICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgIGxlZnQ6IDEwJTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAueiB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgfVxuXG4gICAgICAudGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDNlbTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgICBmb250LXNpemU6IDJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuc3ViLXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjJlbTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZlZWQge1xuICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICBsaSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1MHB4O1xuICAgICAgfVxuXG4gICAgICAuZmVlZC1pdGVtLWNvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiAyNjBweDtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQ6ICMxRjcwQjY7XG5cbiAgICAgICAgaDMge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgbWFyZ2luOiAwLjVlbSAwIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLnJvdyB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgICAgICAgYmFja2dyb3VuZDogIzFGNzBCNjtcblxuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDM1cHg7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCR2aXZpZC12aW9sZXQsIDAuNyk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcCB7XG4gICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPiBwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLnJlYWQtbW9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc3VtbWVyLXNreS1ibHVlO1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBmb250LWZhbWlseTogXCJNeXJpYWQgUHJvIEhlYXZ5XCI7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjNlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNWVtIDFlbTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpZ2h0ZW4oJHN1bW1lci1za3ktYmx1ZSwgMTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaW1hZ2Uge1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmljb24ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMzJweDtcbiAgICAgICAgICBjb2xvcjogIzQzOEZEQjtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgZm9udC1zaXplOiA0ZW07XG4gICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMzAwbXM7XG5cdFx0ICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiBkYXJrZW4oIzQzOEZEQiwgNSUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIFtjbGFzcyo9XCJkenMtaWNvblwiXSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMnB4O1xuICAgICAgICAgICAgcmlnaHQ6IDJweDtcbiAgICAgICAgICAgIGJvdHRvbTogMnB4O1xuICAgICAgICAgICAgbGVmdDogMnB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUd2l0dGVyXG4gICAgLnotZmVlZC10d2l0dGVyIHtcblxuICAgICAgLnR3aXR0ZXItYXZhdGFyIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgICAgIH1cblxuICAgICAgLnR3aXR0ZXItYWN0aW9ucywgLnR3aXR0ZXItdXNlci1pbmZvLCAudHdpdHRlci10aW1lIHtcbiAgICAgICAgY29sb3I6ICMyNDQwOTY7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnR3aXR0ZXItdXNlci1pbmZvIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cblxuICAgICAgLnR3aXR0ZXItaGVhZGVyIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtNTVweDtcblxuICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKCMwMDAsIDAuNSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC50d2l0dGVyLWFjdGlvbnMge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjNTY4RkNBO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoIzAwMCwgMC4zKTtcbiAgICAgICAgei1pbmRleDogOTtcblxuICAgICAgICAudHdpdHRlci1hY3Rpb24ge1xuICAgICAgICAgIC50d2l0dGVyLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi5mYXZvcml0ZSAudHdpdHRlci1pY29uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnaHR0cHM6Ly9nLnR3aW1nLmNvbS9kZXYvZG9jdW1lbnRhdGlvbi9pbWFnZS9mYXZvcml0ZS5wbmcnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLnJlcGx5IC50d2l0dGVyLWljb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCdodHRwczovL2cudHdpbWcuY29tL2Rldi9kb2N1bWVudGF0aW9uL2ltYWdlL3JlcGx5LnBuZycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYucmV0d2VldCAudHdpdHRlci1pY29uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnaHR0cHM6Ly9nLnR3aW1nLmNvbS9kZXYvZG9jdW1lbnRhdGlvbi9pbWFnZS9yZXR3ZWV0LnBuZycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgJi5mYXZvcml0ZSAudHdpdHRlci1pY29uIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCdodHRwczovL2cudHdpbWcuY29tL2Rldi9kb2N1bWVudGF0aW9uL2ltYWdlL2Zhdm9yaXRlX2hvdmVyLnBuZycpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnJlcGx5IC50d2l0dGVyLWljb24ge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJ2h0dHBzOi8vZy50d2ltZy5jb20vZGV2L2RvY3VtZW50YXRpb24vaW1hZ2UvcmVwbHlfaG92ZXIucG5nJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucmV0d2VldCAudHdpdHRlci1pY29uIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCdodHRwczovL2cudHdpbWcuY29tL2Rldi9kb2N1bWVudGF0aW9uL2ltYWdlL3JldHdlZXRfaG92ZXIucG5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmR6cy1hbGVydCB7XG4gICAgdG9wOiBhdXRvO1xuICB9XG59IiwiLypcblNlYXJjaCBpbmRleC5cblxuQHNpbmNlIDAuMS4wXG4qL1xuXG5ib2R5LnNlYXJjaCB7XG4gIC5zZWFyY2gtcmVzdWx0cy1jb3VudCB7XG4gICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICBjb2xvcjogJHN1bW1lci1za3ktYmx1ZTtcbiAgfVxufSIsIi8qXG5TdHlsZXMgcGFnZS5waHAuXG5cbkBzaW5jZSAwLjEuMFxuKi9cblxuYm9keS5wYWdlIHtcbn0iLCIucGFnZS10ZW1wbGF0ZS1tYXAsIC5oaWRkZW4tcGFnZS10ZW1wbGF0ZS1tYXAge1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuXG5cdFx0I3NpdGUtaGVhZGVyIHtcblxuXHRcdFx0LmhlYWRlci1jb250YWluZXIge1xuXHRcdFx0XHRoZWlnaHQ6IDEwMHB4O1xuXHRcdFx0fVxuXG5cdFx0XHQuaGVhZGVyLWJvdHRvbSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cblx0XHRcdCNkenMtcWliIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblxuXHRcdFx0I2dvb2dsZS10cmFuc2xhdGUge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0I3NpdGUtZm9vdGVyIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG5cdH1cblxuXHQjc2l0ZS1jb250ZW50IHsgXG5cblx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0W2NsYXNzKj1cIi1jb3B5XCJdIHtcblx0XHRcdG1heC13aWR0aDogbm9uZTtcblx0XHR9XG5cblx0XHQucGFnZS1jb3B5IHtcblxuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cblx0XHRcdCYgPiBwIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdH1cblxuXHRcdH1cblxuXHR9XG5cdFxuXHQubWFwLWFjY29yZGlvbiB7XG5cblx0XHQuYWNjb3JkaW9uLW5hdmlnYXRpb24ge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuXHRcdH1cblx0XHRcblx0fVxuXHRcblx0Ly8gaHR0cHM6Ly9naXRodWIuY29tL1RoZURldHJvaXRab28vRGV0cm9pdFpvby1UaGVtZS9pc3N1ZXMvNDAyI2lzc3VlY29tbWVudC0zODE2Nzc0NzRcblx0XG5cdC8vIChpUGhvbmUgU0UgYW5kIHNtYWxsIHN0dWZmKVxuXHQjem9vLW1hcCB7XG5cdFx0d2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblx0XHRoZWlnaHQ6IDQzNXB4ICFpbXBvcnRhbnQ7XG5cdH1cblx0XG5cdC8vIChqdXN0IGFuIGluLWJldHdlZW4gZ3Vlc3MpXG5cdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzQwcHgpIGFuZCAobWF4LXdpZHRoOiAzNTlweCkge1xuXHRcdFxuXHRcdCN6b28tbWFwIHtcblx0XHRcdGhlaWdodDogNDc1cHggIWltcG9ydGFudDtcblx0XHR9XG5cdFx0XG5cdH1cblx0XG5cdC8vIHRoaXMgaXMgYSB0cmlja3kgb25lIGEgY29tcHJvbWlzZSBmb3IgYWxsIEdhbGF4eSBTJ3Ncblx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzNjBweCkgYW5kIChtYXgtd2lkdGg6IDM2NnB4KSB7XG5cdFx0XG5cdFx0I3pvby1tYXAge1xuXHRcdFx0aGVpZ2h0OiA1NzVweCAhaW1wb3J0YW50O1xuXHRcdH1cblx0XHRcblx0fVxuXHRcblx0Ly8gKGlQaG9uZSA2LDcsOCBhbmQgWCwgYnV0IGNvbXByb21pc2UgbGVhbnMgdG93YXJkcyA2LDcsOCBmb3Igbm93KVxuXHRAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM2N3B4KSBhbmQgKG1heC13aWR0aDogMzc1cHgpIHtcblx0XHRcblx0XHQjem9vLW1hcCB7XG5cdFx0XHRoZWlnaHQ6IDUzNXB4ICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHRcdFxuXHR9XG5cdFxuXHQvLyAoaVBob25lIDZzLCA3cywgOHMpXG5cdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzc2cHgpIGFuZCAobWF4LXdpZHRoOiA0MTRweCkge1xuXHRcdFxuXHRcdCN6b28tbWFwIHtcblx0XHRcdGhlaWdodDogNjA1cHggIWltcG9ydGFudDtcblx0XHR9XG5cdFx0XG5cdH1cblx0XG5cdC8vIChtb3N0IGlQYWRzIGluIHBvcnRyYWl0LCBrZWVwIGl0IHNlcGFyYXRlIGluIGNhc2UpXG5cdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzKSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuXHRcdFxuXHRcdCN6b28tbWFwIHtcblx0XHRcdGhlaWdodDogNjEwcHggIWltcG9ydGFudDtcblx0XHR9XG5cdFx0XG5cdH1cblx0XG5cdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSBhbmQgKG1heC13aWR0aDogMTM3MHB4KSB7XG5cdFx0XG5cdFx0I3pvby1tYXAge1xuXHRcdFx0aGVpZ2h0OiA1NTVweCAhaW1wb3J0YW50O1xuXHRcdH1cblx0XHRcblx0fVxuXHRcblx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMzcxcHgpIGFuZCAobWF4LXdpZHRoOiAxOTE5cHgpIHtcblx0XHRcblx0XHQjem9vLW1hcCB7XG5cdFx0XHRoZWlnaHQ6IDU3NXB4ICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHRcdFxuXHR9XG5cdFxuXHRAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MjBweCkge1xuXHRcdFxuXHRcdCN6b28tbWFwIHtcblx0XHRcdGhlaWdodDogNTgwcHggIWltcG9ydGFudDtcblx0XHR9XG5cdFx0XG5cdH1cblxufSIsIi8qXG5TdHlsZXMgc2hhcmVkIGFtb25nIGFsbCB0ZW1wbGF0ZXMuXG5cbkBzaW5jZSAwLjEuMFxuKi9cblxuLnNpdGUtcGFnZS1jb250ZW50IHtcbiAgLnBhZ2UtY29udGVudCwgLnBvc3QtY29udGVudCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxZW07XG4gICAgfVxuICB9XG5cbiAgaDEge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cblxuW2NsYXNzKj1cInVwLVwiXSB7XG5cbiAgJi50ZXh0LWNlbnRlciB7XG4gICAgZm9udC1zaXplOiAwO1xuXG4gICAgPiBsaSB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gIH1cbn1cblxuI3NpdGUtY29udGVudCB7XG4gIFtjbGFzcyo9XCItY29weVwiXSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgbWF4LXdpZHRoOiA2NDBweDtcbiAgICB9XG5cbiAgICAuYnV0dG9uIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgbGlzdC1zdHlsZTogZGlzYztcbiAgICAgIHBhZGRpbmctbGVmdDogM2VtO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICB9XG5cbiAgICBvbCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDNlbTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgaHIge1xuICAgICAgbWFyZ2luOiAxZW0gMDtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuXHQgIGJhY2tncm91bmQ6ICM2MDYwNjA7XG5cdCAgY29sb3I6ICNlMmUyZTI7XG5cdCAgbWluLWhlaWdodDogMTAwcHg7XG4gICAgfVxuXHQgIFxuXHQgIGEuaW1hZ2UtbGluayB7XG5cdFx0ICBcblx0XHQgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHQgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHQgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcblx0XHQgIFxuXHRcdCAgJjphZnRlciB7XG5cdFx0XHQgIHRyYW5zaXRpb246IGFsbCAzMDBtcztcblx0XHRcdCAgcG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0ICBjb250ZW50OiAnJztcblx0XHRcdCAgdG9wOiAwO1xuXHRcdFx0ICByaWdodDogMDtcblx0XHRcdCAgYm90dG9tOiAwO1xuXHRcdFx0ICBsZWZ0OiAwO1xuXHRcdCAgfVxuXHRcdCAgXG5cdFx0ICAmOmhvdmVyIHtcblx0XHRcdCAgXG5cdFx0XHQgICY6YWZ0ZXIge1xuXHRcdFx0XHQgIFxuXHRcdFx0XHQgIEBpbmNsdWRlIGJhY2tncm91bmQtb3BhY2l0eSggJHByaW1hcnktY29sb3IsIDAuNSApO1xuXHRcdFx0XHQgIFxuXHRcdFx0ICB9XG5cdFx0XHQgIFxuXHRcdCAgfVxuXHRcdCAgXG5cdFx0ICBpbWcge1xuXHRcdFx0ICBtYXJnaW4tYm90dG9tOiAwO1xuXHRcdCAgfVxuXHRcdCAgXG5cdCAgfVxuXHQgIFxuICB9XG59XG5cbi5wYWdlLWNvcHkge1xuICBtYXJnaW4tdG9wOiAxZW07XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cblxuLnBhZ2UtdGl0bGUge1xuICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLnZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLnJpZ2h0LWFycm93IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tbGVmdDogMC4zZW07XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkbGlnaHQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDAuNWVtIDAgMC41ZW0gMC43ZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHdpZHRoOiAwO1xuICAgIHRvcDogNTAlO1xuICB9XG59XG5cbi5sZWZ0LWFycm93IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6IDAuM2VtO1xuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJGxpZ2h0LWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAwLjVlbSAwLjdlbSAwLjVlbSAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICB3aWR0aDogMDtcbiAgICB0b3A6IDUwJTtcbiAgfVxufVxuXG4ud2lkZ2V0LXRpdGxlIHtcbiAgYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cbn1cblxuLmR6cy1leHRyYS1maWVsZC10YWJsZS1jb250YWluZXIge1xuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICB9XG59IiwiYm9keS5wYWdlLXRlbXBsYXRlLWFyY2hpdmUtbGVzc29ucyB7XG5cbiAgICAuc2l0ZS1zaWRlYmFyIHtcblxuICAgICAgICAud2lkZ2V0cyB7XG5cbiAgICAgICAgICAgIC5mYWNldHdwLWZhY2V0IHtcblxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG5cbiAgICAgICAgICAgICAgICAuZmFjZXR3cC1zZWFyY2gtd3JhcCB7XG4gICAgICAgICAgICAgICAgICAgIC5mYWNldHdwLWJ0biB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLnNodWZmbGUtdGl0bGUge1xuXG4gICAgICAgIC5zaHVmZmxlLXRpdGxlLXRleHQge1xuXG4gICAgICAgICAgICB0b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgICAgIH1cblxuICAgIH1cblxufSIsIi8qXG5BY2NvcmRpb25zIG92ZXJyaWRlcy5cblxuQHNpbmNlIDAuMS4wXG4qL1xuXG4uYWNjb3JkaW9uIHtcblxuXHRwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cblx0Ji5zaW1wbGUge1xuXHRcdC5hY2NvcmRpb24tbmF2aWdhdGlvbiB7XG5cdFx0XHQ+IGEge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblxuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApICRwcmltYXJ5LWNvbG9yO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LmNvbnRlbnQge1xuXHRcdC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcblx0XHRvdmVyZmxvdzogYXV0bztcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cblx0XHQmLmNvbGxhcHNlIHtcblx0XHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cdFx0fVxuXHR9XG5cblx0LmFjY29yZGlvbi1uYXZpZ2F0aW9uIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxZW0gIWltcG9ydGFudDtcblxuXHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0fVxuXG5cdFx0PiBhIHtcblx0XHRcdEBpbmNsdWRlIGhvcml6b250YWwtZ3JhZGllbnQoJHN1bW1lci1za3ktYmx1ZSwgIzY2QUNERik7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGNvbG9yOiAkbGlnaHQtY29sb3I7XG5cdFx0XHRmb250LXNpemU6IDEuNWVtO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAxLjhlbTtcblx0XHRcdHBhZGRpbmctdG9wOiAwLjFlbTtcblx0XHRcdHBhZGRpbmctYm90dG9tOiAwLjFlbTtcblx0XHRcdGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcblxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAkbGlnaHQtY29sb3I7XG5cdFx0XHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0XHRcdGJvcmRlci13aWR0aDogMC41ZW0gMCAwLjVlbSAwLjdlbTtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdGhlaWdodDogMDtcblx0XHRcdFx0d2lkdGg6IDA7XG5cdFx0XHRcdHRvcDogNTAlO1xuXHRcdFx0XHRsZWZ0OiAxMHB4O1xuXHRcdFx0XHR0cmFuc2Zvcm06IHNjYWxlKDAuOTk5OSkgdHJhbnNsYXRlWSgtNTAlKTtcblx0XHRcdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDMwMG1zO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0QGluY2x1ZGUgaG9yaXpvbnRhbC1ncmFkaWVudChkYXJrZW4oJHN1bW1lci1za3ktYmx1ZSwgNSUpLCBkYXJrZW4oIzY2QUNERiwgNSUpKTtcblx0XHRcdH1cblx0XHRcdFxuXHRcdH1cblxuXHRcdCYuaXMtYWN0aXZlIHtcblx0XHRcdFxuXHRcdFx0JiA+IGEge1xuXHRcdFx0XHRcblx0XHRcdFx0QGluY2x1ZGUgaG9yaXpvbnRhbC1ncmFkaWVudCgkcHJpbWFyeS1jb2xvciwgIzVDNkRCNCk7XG5cblx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdHRyYW5zZm9ybTogc2NhbGUoMC45OTk5KSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg5MGRlZyk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBob3Jpem9udGFsLWdyYWRpZW50KGRhcmtlbigkcHJpbWFyeS1jb2xvciwgNSUpLCBkYXJrZW4oIzVDNkRCNCwgNSUpKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdH1cblx0XHRcdFxuXHRcdH1cblxuXHR9XG5cblx0Jjpub3QoIC5tYXAtYWNjb3JkaW9uICkge1xuXG5cdFx0LmFjY29yZGlvbi1uYXZpZ2F0aW9uID4gLmNvbnRlbnQge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0fVxuXG5cdH1cblxufSIsIi8qXG5CdXR0b24gZXh0cmEgc3R5bGluZy5cblxuQHNpbmNlIDAuMS4wXG4qL1xuXG5AbWl4aW4gaG9sbG93LWJ1dHRvbiggJGNvbG9yICkge1xuXHRcblx0Y29sb3I6ICRjb2xvcjtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci13aWR0aDogMXB4O1xuXHRib3JkZXItY29sb3I6ICRjb2xvcjtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcblxuXHQmOmhvdmVyLCAmOmZvY3VzIHtcblxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcblx0XHRAaW5jbHVkZSBsaWdodC1vci1kYXJrLXRleHQoICRjb2xvciApO1xuXG5cdH1cblx0XG59XG5cbi5idXR0b24ge1xuXHRcbiAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcblxuXHRcdCYuI3skbmFtZX0uaG9sbG93IHtcblxuXHRcdFx0QGluY2x1ZGUgaG9sbG93LWJ1dHRvbiggJGNvbG9yICk7XG5cblx0XHR9XG5cblx0fVxuXHRcblx0Ly8gUHV0dGluZyB3aGl0ZSBpbiBGb3VuZGF0aW9uIFBhbGxldGUgYnJva2UgYSBsb3Qgb2Ygd2VpcmQgdGhpbmdzXG5cdC8vIFBlcmhhcHMgXCJ3aGl0ZVwiIGlzIGEgcHJvdGVjdGVkIHdvcmQ/XG5cdCYud2hpdGUge1xuXHRcdCAgXG5cdFx0ICBAaW5jbHVkZSBidXR0b24oICNmZmYgKTtcblx0XHRcblx0fVxuXG5cdCYud2hpdGUuaG9sbG93IHtcblxuXHRcdEBpbmNsdWRlIGhvbGxvdy1idXR0b24oICNmZmYgKTtcblxuXHR9XG5cdFxuICAmLnN1bW1lci1za3ktYmx1ZSB7XG4gICAgYmFja2dyb3VuZDogJHN1bW1lci1za3ktYmx1ZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogbGlnaHRlbigkc3VtbWVyLXNreS1ibHVlLCAxMCUpO1xuICAgIH1cbiAgfVxuXHRcbiAgJi5saWdodC1ncmF5IHtcbiAgICBiYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogbGlnaHRlbigkbGlnaHQtZ3JheSwgMTAlKTtcbiAgICB9XG4gIH1cblx0XG4gICYuYXJjaGl2ZS1wcmVzcy1yZWxlYXNlIHtcbiAgICBiYWNrZ3JvdW5kOiAjNTk1OTU5O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKCM1OTU5NTksIDEwJSk7XG4gICAgfVxuICB9XG5cbiAgJi5idXR0b24taWNvbiB7XG5cdCAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgcGFkZGluZzogMC40cmVtIDAuNzVyZW0gMC40cmVtIDIuNXJlbTtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMDBweDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAxMDBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKCRzZWNvbmRhcnktY29sb3IsIDEwJSk7XG5cbiAgICAgIC5tYWluLWljb24ge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1haW4taWNvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGxlZnQ6IDAuMTVyZW07XG4gICAgICB0b3A6IDAuMTc1cmVtO1xuICAgICAgZm9udC1zaXplOiAxLjRlbTtcbiAgICAgIGNvbG9yOiAkbWVkaXVtLXB1cnBsZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAzMDBtcztcblxuICAgICAgLmJhY2tncm91bmQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIHRvcDogMnB4O1xuICAgICAgICByaWdodDogM3B4O1xuICAgICAgICBib3R0b206IDJweDtcbiAgICAgICAgbGVmdDogMnB4O1xuICAgICAgfVxuXG4gICAgICBbY2xhc3MqPVwiaWNvblwiXSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5iYWNrLXRvLWFyY2hpdmUge1xuXG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIEBpbmNsdWRlIGxpZ2h0LW9yLWRhcmstdGV4dCggJHNlY29uZGFyeS1jb2xvciApO1xuXG4gICAgICBsZXR0ZXItc3BhY2luZzogcmVtLWNhbGMoIDEgKTtcbiAgXG4gICAgICAubWFpbi1pY29uIHtcbiAgXG4gICAgICAgIGxlZnQ6IC0uM3JlbTtcbiAgICAgICAgdG9wOiAtLjNyZW07XG4gIFxuICAgICAgICAuZmEtY2lyY2xlIHtcbiAgICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgICAgfVxuICBcbiAgICAgICAgLmZhLWNhcmV0LWxlZnQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtLjEyNXJlbTtcbiAgICAgICAgICBmb250LXNpemU6IDEuOXJlbTtcbiAgICAgICAgfVxuICBcbiAgICAgIH1cblxuICAgICAgcGFkZGluZzogMXJlbSAwLjc1cmVtIDFyZW0gMy41cmVtO1xuICBcbiAgICB9XG5cbiAgfVxuXHRcblx0cGFkZGluZzogbWFwLWdldCggJGJ1dHRvbi1zaXplLXBhZGRpbmcsICdkZWZhdWx0JyApO1xuXHRcblx0QGVhY2ggJHNpemUsICRwYWRkaW5nIGluICRidXR0b24tc2l6ZS1wYWRkaW5nIHsgXG5cdFxuXHRcdCYuI3skc2l6ZX0ge1xuXHRcdFx0cGFkZGluZzogJHBhZGRpbmc7XG5cdFx0fVxuXHRcdFxuXHR9XG5cdFxufSIsIi8qXG5BbGVydCBzdHlsaW5nLlxuXG5Ac2luY2UgMC4xLjBcbiovXG5cbmJvZHkuaG9tZSB7XG5cdFxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFxuXHRcdC5kenMtYWxlcnQuaW5zZXQtYmFubmVyIC5kenMtYWxlcnQtY29udGVudCB7XG5cdFx0XHRcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0XG5cdFx0fVxuXHRcdFxuXHRcdC5kenMtYWxlcnRzLWNvbnRhaW5lciB7XG5cdFx0XHRcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdEBpbmNsdWRlIGdyaWQtcm93KCk7XG5cdFx0XHRcblx0XHRcdC5kenMtYWxlcnQuaW5zZXQtYmFubmVyIHtcblx0XHRcdFx0XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0ei1pbmRleDogOTtcblx0XHRcdFx0bGVmdDogMjUlO1xuXHRcdFx0XHRtYXgtd2lkdGg6IDc1JTtcblx0XHRcdFx0XG5cdFx0XHRcdC5kenMtYWxlcnQtY29udGVudCB7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0cGFkZGluZzogMC4wOHJlbSAwIDAuMDhyZW0gMTIuNSU7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHR9XG5cdFx0XHRcblx0XHR9XG5cdFx0XG5cdH1cblx0XG59XG5cbi5kenMtYWxlcnQge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHdpZHRoOiAkZ3JpZC1yb3ctd2lkdGg7XG5cdG1heC13aWR0aDogMTAwJTtcblx0bWFyZ2luOiAwIGF1dG87XG5cdGNvbG9yOiAkbGlnaHQtY29sb3I7XG5cdGZvbnQtc2l6ZTogMS4yZW07XG5cdHRvcDogLTIwcHg7XG5cblx0Ly8gQ29tcGVuc2F0ZSBmb3IgYnV0dG9uXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuXHRcdHBhZGRpbmc6IDAuM2VtIDAgMS44ZW0gMDtcblx0fVxuXG5cdCYuaW5zZXQtYmFubmVyLCAmLnBvcC11cCB7XG5cblx0XHQmLmRlZmF1bHQge1xuXHRcdFx0QGluY2x1ZGUgaG9yaXpvbnRhbC1ncmFkaWVudCgjMjkzYjhkLCAjMDBhZWYxKTtcblxuXHRcdFx0LmR6cy1hbGVydC1idXR0b24ge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBsaWdodGVuKCMyOTNiOGQsIDEwJSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji5yZWQge1xuXHRcdFx0QGluY2x1ZGUgaG9yaXpvbnRhbC1ncmFkaWVudCgjYmYxZTJkLCAjZjU5NDc3KTtcblxuXHRcdFx0LmR6cy1hbGVydC1idXR0b24ge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBsaWdodGVuKCNiZjFlMmQsIDEwJSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji5ncmVlbiB7XG5cdFx0XHRAaW5jbHVkZSBob3Jpem9udGFsLWdyYWRpZW50KCMwMDVFNjAsICMzRUI1NEQpO1xuXG5cdFx0XHQuZHpzLWFsZXJ0LWJ1dHRvbiB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IGxpZ2h0ZW4oIzAwNUU2MCwgMTAlKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuZHpzLWFsZXJ0LWNvbnRlbnQge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAkY29sdW1uLWd1dHRlciAvIDI7XG5cdFx0XHRsaW5lLWhlaWdodDogMzVweDtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IGdyaWQtY2FsYyg0LCAkdG90YWwtY29sdW1ucyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmR6cy1hbGVydC1pY29uIHtcblx0XHRcdGZvbnQtc2l6ZTogMS4zZW07XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDAuM2VtO1xuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHR9XG5cblx0XHQuZHpzLWFsZXJ0LWJ1dHRvbiB7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDAuM2VtO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGJvdHRvbTogMDtcblx0XHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdH1cblxuXHQmLmluc2V0LWJhbm5lciB7XG5cblx0XHQuZHpzLWFsZXJ0LWJ1dHRvbiB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRvcGFjaXR5OiAwLjY7XG5cdFx0XHRjb2xvcjogJGxpZ2h0LWNvbG9yO1xuXHRcdFx0cGFkZGluZzogMC4zZW0gMC41ZW07XG5cdFx0XHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdG9wYWNpdHk6IDAuODtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0LmNsb3NlLWJ1dHRvbiB7XG5cdFx0XHRcblx0XHRcdHJpZ2h0OiBhdXRvO1xuXHRcdFx0dG9wOiBhdXRvO1xuXHRcdFx0Zm9udC1zaXplOiBpbmhlcml0O1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XG5cdFx0fVxuXG5cdH1cblxuXHQmLnBvcC11cCB7XG5cblx0XHRtYXJnaW46IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0b3ZlcmZsb3c6IGF1dG87XG5cdFx0XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdFx0XHRcblx0XHRcdGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuXHRcdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdH1cblx0XHRcdFxuXHRcdH1cblxuXHRcdC5kenMtYWxlcnQtY29udGVudCB7XG5cblx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdFx0XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XG5cdFx0XHQucm93IHtcblxuXHRcdFx0XHRwYWRkaW5nOiAxNXB4O1xuXHRcdFx0XHRcblx0XHRcdH1cblxuXHRcdFx0LmR6cy1hbGVydC1pY29uIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogMC4zNWVtO1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cblx0XHRcdFx0XHQmLnNob3ctZm9yLW1lZGl1bSB7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0fVxuXG5cdFx0XHR9XG5cblx0XHRcdC5kenMtYWxlcnQtaW1hZ2UsIC50ZXh0LWNvbnRlbnQsIC50ZXh0LWNvbnRlbnQgPiAqIHtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0fVxuXG5cdFx0XHQuZHpzLWFsZXJ0LXRleHQgPiBwOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHR9XG5cblx0XHRcdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzg5cHgpIHtcblxuXHRcdFx0XHQuc21hbGwtaWNvbi1jb250YWluZXIge1xuXHRcdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQudGV4dC1jb250ZW50IHtcblx0XHRcdFxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDFyZW07XG5cdFx0XHRcdH1cblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0LmR6cy1hbGVydC1idXR0b24ge1xuXG5cdFx0XHQmLmNsb3NlLWJ1dHRvbiB7XG5cblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdFx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRcdGJvdHRvbTogYXV0bztcblx0XHRcdFx0fVxuXG5cdFx0XHR9XG5cblx0XHRcdCYuY2FsbC10by1hY3Rpb24ge1xuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cblx0XHRcdH1cblxuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG5cblx0XHQuZHpzLWFsZXJ0LWJ1dHRvbjpub3QoLmNhbGwtdG8tYWN0aW9uKSB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRvcGFjaXR5OiAwLjY7XG5cdFx0XHRjb2xvcjogJGxpZ2h0LWNvbG9yO1xuXHRcdFx0YmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRvcGFjaXR5OiAwLjg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmR6cy1hbGVydC1idXR0b24ge1xuXHRcdFx0cGFkZGluZzogMC4zZW0gMC41ZW07XG5cdFx0fVxuXHRcdFxuXHRcdCYuZGVmYXVsdCwgJi5yZWQsICYuZ3JlZW4ge1xuXHRcdFx0XG5cdFx0XHQuY2FsbC10by1hY3Rpb24ge1xuXHRcdFx0XHRcblx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRAaW5jbHVkZSBidXR0b24oIGZhbHNlLCAjZmZmICk7XG5cdFx0XHRcdFx0QGluY2x1ZGUgaG9sbG93LWJ1dHRvbiggI2ZmZiApO1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHR9XG5cdFx0XHRcblx0XHR9XG5cdFx0XG5cdFx0LmNhbGwtdG8tYWN0aW9uIHtcblx0XHRcdFxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdFx0XG5cdFx0XHRcdEBpbmNsdWRlIGJ1dHRvbiggZmFsc2UsICMzNDRjYjUgKTtcblx0XHRcdFx0Ym90dG9tOiAtMC4yMDJyZW07XG5cdFx0XHRcdFxuXHRcdFx0XHQmLnNob3ctZm9yLW1lZGl1bS11cCB7XG5cdFx0XHRcdFxuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFxuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0fVxuXHRcdFxuXHRcdC5kenMtYWxlcnQtY2xvc2Uge1xuXHRcdFx0XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0XG5cdFx0XHRcdHJpZ2h0OiAtNC4zcmVtICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0fVxuXG5cdH1cblx0XG5cdC8vIFRoZXNlIGFyZSB0aGUgb2xkIHN0eWxlc1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFxuXHRcdCYucG9wLXVwIHtcblx0XHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRcdGRpc3BsYXk6IHRhYmxlO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRtYXgtd2lkdGg6IG5vbmU7XG5cdFx0XHRiYWNrZ3JvdW5kOiByZ2JhKCMwMDAsIDAuNSkgIWltcG9ydGFudDtcblx0XHRcdHotaW5kZXg6IDUwMDtcblxuXHRcdFx0LmR6cy1hbGVydC1jb250YWluZXIge1xuXHRcdFx0ICBtYXJnaW46IDA7XG5cdFx0XHQgIHBhZGRpbmc6IDA7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRyaWdodDogMDtcblx0XHRcdFx0Ym90dG9tOiAwO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0ICB0b3A6IDUwJTtcblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdFx0ICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdFxuXHRcdFx0fVxuXG5cdFx0XHQuZHpzLWFsZXJ0LWNvbnRlbnQge1xuXHRcdFx0ICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHQgIG1heC13aWR0aDogMTAwJTtcblx0XHRcdCAgbWFyZ2luOiBhdXRvO1xuXHRcdFx0ICBiYWNrZ3JvdW5kOiAkbGlnaHQtY29sb3I7XG5cdFx0XHQgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuXHRcdFx0ICB0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0XHR3aWR0aDogNTAwcHg7XG5cblx0XHRcdCAgLmR6cy1hbGVydC10ZXh0IHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHQgIH1cblxuXHRcdFx0ICAuZHpzLWFsZXJ0LWljb24ge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0ICB9XG5cdFx0XHR9XG5cblx0XHRcdC5kenMtYWxlcnQtY2xvc2Uge1xuXHRcdFx0ICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHQgIHRvcDogMDtcblx0XHRcdCAgcmlnaHQ6IDA7XG5cblx0XHRcdCAgJjpob3ZlciB7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHQgIH1cblx0XHRcdH1cblx0XHQgIH1cblx0XHRcblx0fVxuXG59XG5cbi5hY2NvcmRpb24tbmF2aWdhdGlvbiB7XG5cdC5kenMtYWxlcnQge1xuXHRcdHRvcDogYXV0bztcblx0fVxufVxuXG4vLyBWYXJpb3VzIHBhZ2UgbGF5b3V0cyBhZmZlY3QgdGhlIGFsZXJ0IGxlZnQgbWFyZ2luXG5ib2R5IHtcblx0Ji5zaW5nbGUtYW5pbWFsIHtcblx0XHQuZHpzLWFsZXJ0Lmluc2V0LWJhbm5lciB7XG5cdFx0XHQuZHpzLWFsZXJ0LWNvbnRlbnQge1xuXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IGdyaWQtY2FsYygzLCAkdG90YWwtY29sdW1ucyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLnNpdGUtcGFnZS1jb250ZW50IHtcblx0LmR6cy1hbGVydC5pbnNldC1iYW5uZXIge1xuXHRcdC5kenMtYWxlcnQtY29udGVudCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHR9XG5cdH1cbn1cblxuYm9keTpub3QoLmhvbWUpIHtcblxuXHQuZHpzLWFsZXJ0LnBvcC11cCB7XG5cdFx0dG9wOiAwO1xuXHR9XG5cbn0iLCIvKlxuR2FsbGVyeS5cblxuQHNpbmNlIDEuMjEuM1xuKi9cblxuQG1peGluIGdhbGxlcnktYXJyb3dzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDQwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDOEM4Qzg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB6LWluZGV4OiAxMDA7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCNDOEM4QzgsIDEwJSk7XG4gIH1cblxuICAuZmEge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIG1hcmdpbi10b3A6IC0yMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDA7XG4gIH1cbn1cblxuLmdhbGxlcnkge1xuICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7XG4gIHBhZGRpbmc6IDAuNWVtO1xuXG4gIC5nYWxsZXJ5LWl0ZW1zIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG5cbiAgICAuZ2FsbGVyeS1pY29uIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5nYWxsZXJ5LWNhcHRpb24ge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gIC5nYWxsZXJ5LXRodW1ibmFpbHMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5zbGljay1saXN0IHtcbiAgICAgIHBhZGRpbmc6IDAgNDBweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLnNsaWNrLXByZXYge1xuICAgICAgQGluY2x1ZGUgZ2FsbGVyeS1hcnJvd3M7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgIC5zbGljay1uZXh0IHtcbiAgICAgIEBpbmNsdWRlIGdhbGxlcnktYXJyb3dzO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLmdhbGxlcnktdGh1bWJuYWlsIHtcbiAgICAgIHBhZGRpbmc6IDAgNXB4O1xuXG4gICAgICBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4jZ2FsbGVyeS1saWdodGJveCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgZGlzcGxheTogdGFibGU7XG4gIG9wYWNpdHk6IDA7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgjMDAwLCAwLjkpO1xuICB6LWluZGV4OiAxMDAxO1xuXG4gIC5jb250YWluZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBpbWcge1xuICAgICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMiU7XG4gICAgcmlnaHQ6IDIlO1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cbn1cblxuYm9keS5hZG1pbi1iYXIge1xuICAjZ2FsbGVyeS1saWdodGJveCB7XG4gICAgLmNsb3NlIHtcbiAgICAgIG1hcmdpbi10b3A6IDMycHg7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc4MnB4KSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDQ2cHggIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIjZmxhZ3Mge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyBTZWxlY3QgYm94XG4jZ29vZ2xlLXRyYW5zbGF0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgb3BhY2l0eTogMC43O1xuICBjb2xvcjogI2ZmZjtcbiAgaGVpZ2h0OiA0MHB4O1xuICBsaW5lLWhlaWdodDogNDBweDtcbiAgYmFja2dyb3VuZDogJG1lZGl1bS1wdXJwbGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcztcbiAgei1pbmRleDogMTAwO1xuXHRcblx0I2dvb2dsZV9sYW5ndWFnZV90cmFuc2xhdG9yLCAjbGFuZ3VhZ2Uge1xuXHRcdHdpZHRoOiAxMS4yNWVtO1xuXHR9XG5cdFxuXHRALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCkgeyBcblx0XHQjZ29vZ2xlX2xhbmd1YWdlX3RyYW5zbGF0b3IsICNsYW5ndWFnZSB7XG5cdFx0XHR3aWR0aDogMTRlbTtcblx0XHR9XG5cdH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0ICAmLCAjZ29vZ2xlX2xhbmd1YWdlX3RyYW5zbGF0b3Ige1xuXHRcdGhlaWdodDogODBweDtcblx0XHRyaWdodDogMWVtO1xuXHRcdG9wYWNpdHk6IDAuNTtcblx0XHR3aWR0aDogNDBweDtcblx0XHRwYWRkaW5nOiAwO1xuXHQgIH1cbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxMDBtcztcbiAgfVxuXG4gIC5nb29nbGUtdHJhbnNsYXRlLWljb24tbGFuZ3VhZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogMTA1O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICBmb250LXNpemU6IDEuNWVtO1xuICAgIH1cbiAgfVxuXG4gIC5nb29nbGUtdHJhbnNsYXRlLWljb24tYXJyb3cge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDEwNTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgdG9wOiA0MHB4O1xuICAgICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3QuZ29vZy10ZS1jb21ibyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kOiAkbWVkaXVtLXB1cnBsZTtcbiAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nOiAwIDQwcHggIWltcG9ydGFudDtcbiAgICB6LWluZGV4OiAxMDA7XG5cbiAgICAvLyBGaXJlZm94IGFycm93IGZpeFxuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICB0ZXh0LWluZGVudDogMC4wMXB4O1xuICAgIHRleHQtb3ZlcmZsb3c6ICcnO1xuXG4gICAgLy8gT3RoZXIgcG90ZW50aWFsIGFycm93IGZpeGVzXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1vLWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICBoZWlnaHQ6IDgwcHggIWltcG9ydGFudDtcbiAgICAgIHRleHQtaW5kZW50OiA0MHB4O1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cblxuICAuZ29vZy10ZS1nYWRnZXQge1xuICAgIGhlaWdodDogNDBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdFx0aGVpZ2h0OiA4MHB4O1xuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblx0XG59IiwiLypcbkdyYXZpdHkgRm9ybSBvdmVycmlkZXMsIGVuaGFuY2VtZW50cy5cblxuQHNpbmNlIDAuMS4wXG4qL1xuXG4jc2l0ZS1jb250ZW50IC5nZm9ybV93cmFwcGVyIHtcbiAgaW5wdXRbdHlwZT1cInRleHRcIl0sIHRleHRhcmVhLCBzZWxlY3Qge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1za3ktYmx1ZTtcbiAgfVxuXG4gIC5nZm9ybV9maWVsZHMge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gIHVsLmdmb3JtX2ZpZWxkcyBsaS5nZmllbGQgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBtYXJnaW4tbGVmdDogMXB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmllbGRfc3VibGFiZWxfYmVsb3cge1xuICAgIGlucHV0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuMmVtO1xuICAgIH1cbiAgfVxufSIsIi8qXG5MYXp5IGxvYWQuXG5cbkBzaW5jZSAxLjI2LjJcbiovXG5cbmltZ1tkYXRhLWltZy1zcmNdIHtcbiAgb3BhY2l0eTogMDtcbn0iLCIvKlxuUGFnaW5hdGlvbi5cblxuQHNpbmNlIDAuMS4wXG4qL1xuXG4uZHpzLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kOiAjOTRjNmVlO1xuICBjb2xvcjogIzAwMzNhMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgcGFkZGluZzogMC41ZW07XG5cbiAgLm5leHQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICd8ICc7XG4gICAgfVxuICB9XG5cbiAgLnByZXYge1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyB8JztcbiAgICB9XG4gIH1cblxuICBhLCBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cblx0XG5cdGEge1xuXHRcdHBhZGRpbmc6IDAgMC4yZW07XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAjNzgyNzg4O1xuXHRcdCAgY29sb3I6ICNmZmY7XG5cdCAgfVxuXHR9XG5cbiAgLnBhZ2UtbnVtYmVycyB7XG4gICAgJi5jdXJyZW50IHtcbiAgICAgIGJhY2tncm91bmQ6ICMwMDMzYTA7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIHBhZGRpbmc6IDAgMC4yZW07XG4gICAgfVxuICB9XG5cbiAgZm9ybSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuXG4gIHNlbGVjdCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG5cdFxuXHQucmlnaHQtYXJyb3c6YmVmb3JlIHtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMwMDMzYTA7XG5cdH1cblx0XG59IiwiLypcblBvc3QgbmF2aWdhdGlvbiBsaW5rcy5cblxuQHNpbmNlIDEuMjYuMlxuKi9cblxuLnBvc3QtbmF2aWdhdGlvbi1saW5rcyB7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG59IiwiLypcbkFjY29yZGlvbnMgb3ZlcnJpZGVzLlxuXG5Ac2luY2UgMC4xLjBcbiovXG5cbi5wcmljaW5nLXRhYmxlIHtcblx0Zm9udC1zaXplOiAxZW07XG5cdGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuXG5cdHRib2R5IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRib3JkZXI6IG5vbmU7XG5cdH1cblxuXHR0ciB7XG5cdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0fVxuXG5cdHRkIHtcblx0XHRsaW5lLWhlaWdodDogbm9ybWFsO1xuXHRcdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXHR9XG5cblx0LnByaWNpbmctdGFibGUtcHJpY2Uge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdGZvbnQtc2l6ZTogMS41ZW07XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0d2lkdGg6IDFweDtcblx0XHRwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuXHR9XG5cblx0LnByaWNpbmctdGFibGUtdGV4dCB7XG5cdFx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXHR9XG59IiwiLypcbkN1c3RvbSBRSUIgc3R5bGluZy5cblxuQHNpbmNlIDAuMS4wXG4qL1xuXG4vLyBGaXggRm91bmRhdGlvbiA2XG4uZHpzLXFpYi1jb250YWluZXIge1xuXHRcblx0JiA+IC5jb2x1bW5zIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdH1cblx0XG59XG5cbiNkenMtcWliIHtcbiAgLmR6b28tcWliLXRvZGF5cy1ob3VycyB7XG4gICAgYmFja2dyb3VuZDogJHNlY29uZGFyeS1jb2xvcjtcblxuICAgIC5kem9vLXFpYi10aW1lcyB7XG4gICAgICBmb250LXNpemU6IDEuNWVtO1xuICAgIH1cbiAgfVxuXG4gIC5kem9vLXFpYi10aWNrZXRzIHtcbiAgICBAaW5jbHVkZSB2ZXJ0aWNhbC1ncmFkaWVudCgjN0U3N0I2LCAjNUQ1QkE2KTtcblxuICAgIC5zZWN0aW9uLWljb24ge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuXG4gICAgLnRpY2tldHMge1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAgIHRyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgdGQge1xuICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5wcmljZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5xaWItc2VjdGlvbi5kem9vLXFpYi10b2RheS1hdC10aGUtem9vIHtcbiAgICBAaW5jbHVkZSB2ZXJ0aWNhbC1ncmFkaWVudCgjOTFBRkNFLCAjNzVBMENEKTtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcblxuICAgIGgzLnFpYi1zZWN0aW9uLXRpdGxlIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbiAgfVxuXG4gIC5xaWItc2VjdGlvbi5kem9vLXFpYi11cGNvbWluZy1ldmVudHMge1xuICAgIEBpbmNsdWRlIHZlcnRpY2FsLWdyYWRpZW50KCM3NUEwQ0QsICM1NzkwQzgpO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuXG4gICAgaDMucWliLXNlY3Rpb24tdGl0bGUge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59IiwiLypcblNodWZmbGUgZ3JpZC5cblxuQHNpbmNlIDAuMS4wXG4qL1xuXG4vLyBMb2FkZXJcbi5zaHVmZmxlLWxvYWRpbmcge1xuICBmb250LXNpemU6IDNlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uc2h1ZmZsZS1ncmlkIHtcblx0aGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi8vIE1haW4gbGlzdFxuLnNodWZmbGUtaXRlbXMge1xuXHRcbiAgLnNodWZmbGUtaXRlbSB7XG5cdCAgXG5cdG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcblx0ICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoICRndXR0ZXI6IGF1dG8sICRndXR0ZXJzOiAxLjQyODU3MTQyODZyZW0gKTtcblx0ICBwYWRkaW5nLWJvdHRvbTogMS40Mjg1NzE0Mjg2cmVtO1xuICAgIFxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG5cdCAgXG4gICAgJjpob3ZlciB7XG4gICAgICAuc2h1ZmZsZS10aXRsZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgfVxuXG4gICAgICA+IGEge1xuICAgICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gYSB7XG4gICAgICBib3JkZXI6IDNweCBzb2xpZCAkc3VtbWVyLXNreS1ibHVlO1xuICAgIH1cblxuICAgIC5zaHVmZmxlLWltYWdlIHtcbiAgICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNodWZmbGUtbGluayB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2h1ZmZsZS10aXRsZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJhY2tncm91bmQ6ICRzdW1tZXItc2t5LWJsdWU7XG4gICAgICBjb2xvcjogJGxpZ2h0LWNvbG9yO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG4gICAgICBwYWRkaW5nLXRvcDogMC41ZW07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMC41ZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG59XG5cbi5zaHVmZmxlLWZpbHRlciB7XG4gIC5wYXN0LWV2ZW50cyB7XG4gICAgYSB7XG4gICAgICBjb2xvcjogIzg4ODtcbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIC5zaHVmZmxlLWdyaWQtZGVzZWxlY3QtaWNvbiB7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcywgdHJhbnNmb3JtIDMwMG1zLCB2aXNpYmlsaXR5IDMwMG1zO1xuXG4gICAgICAvLyBNYWtlIGNpcmNsZVxuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgbGluZS1oZWlnaHQ6IDEycHg7XG4gICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICBwYWRkaW5nOiAzcHg7XG4gICAgfVxuXG4gICAgJi5hY3RpdmUge1xuICAgICAgLnNodWZmbGUtZ3JpZC1kZXNlbGVjdC1pY29uIHtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gU2Vjb25kYXJ5IGZpbHRlciBsaXN0XG4uc2h1ZmZsZS1maWx0ZXItc2Vjb25kYXJ5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDEuM2VtO1xuICBtYXJnaW46IDFlbSAwICFpbXBvcnRhbnQ7XG5cbiAgYSB7XG4gICAgLnNodWZmbGUtZ3JpZC1kZXNlbGVjdC1pY29uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmNvbHVtbnMge1xuICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgIGNvbG9yOiAjQjNDOEU3O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxZW07XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxZW07XG4gICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNCM0M4RTc7XG5cbiAgICAgIC5wYXN0LWV2ZW50cyB7XG4gICAgICAgIGEge1xuICAgICAgICAgIGNvbG9yOiAjODg4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5zaHVmZmxlLWZpbHRlci1idXR0b24ge1xuICAgICAgICBjb2xvcjogJHN1bW1lci1za3ktYmx1ZTtcblxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFNpZGViYXJcbi5zaXRlLXNpZGViYXIge1xuICAuc2h1ZmZsZS1maWx0ZXItYnV0dG9uIHtcbiAgICAmLmFjdGl2ZSB7XG4gICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gIH1cbiAgLnNodWZmbGUtZmlsdGVyIHtcblx0ICAucGFzdC1ldmVudHMge1xuXHRcdGEge1xuXHRcdCAgY29sb3I6ICM4ODg7XG5cdFx0fVxuXHQgIH1cbiAgfVxufVxuXG5odG1sLmNzc3RyYW5zZm9ybXMge1xuICAuc2h1ZmZsZS10aXRsZSB7XG5cdCAgXG4gICAgLnNodWZmbGUtdGl0bGUtdGV4dCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cblx0ICBcblx0IC8vIEkgY2Fubm90IGJlbGlldmUgaW4gMjAxNyB0aGlzIGtpbmQgb2YgdGhpbmcgc3RpbGwgd29ya3MgXG5cdCBALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCkgeyBcblx0ICAuc2h1ZmZsZS10aXRsZS10ZXh0IHtcblx0XHQgIHRvcDogaW5oZXJpdDtcblx0XHQgIHRyYW5zZm9ybTogbm9uZVxuXHQgIH1cblx0fVxuXHQgIFxuXHQgIFxuICB9XG59IiwiLypcblNpdGUgc2VhcmNoLlxuXG5Ac2luY2UgMS4yOS4xNlxuKi9cblxuI3NpdGUtc2VhcmNoIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBkaXNwbGF5OiBub25lO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAgMWVtO1xuICBmb250LXNpemU6IDEuNWVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjkpO1xuICBjb2xvcjogI2ZmZjtcbiAgei1pbmRleDogMTAwMDAwMDtcblx0XG5cdC5jbG9zZS1idXR0b24ge1xuXHRcdFxuXHRcdC8vIFBvc2l0aW9uaW5nL3NpemUgaW4gdGhlIHNhbWUgd2F5IEZvdW5kYXRpb24gZG9lcyB0aGUgQ2xvc2UgQnV0dG9uIGZvciBSZXZlYWwgTW9kYWxzXG5cdFx0QGluY2x1ZGUgY2xvc2UtYnV0dG9uO1xuXHRcdGNvbG9yOiAjZmZmO1xuXHRcdFxuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAzMDBtcztcblx0XHRcblx0XHQmOmhvdmVyIHtcblx0XHRcdHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcblx0XHR9XG5cdFx0XG5cdH1cblxuICAuc2VhcmNoLWZvcm0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG4gICAgLnNlYXJjaC1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgICB9XG5cbiAgICAuc2VhcmNoLXN1Ym1pdHRpbmcge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSwgaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cbn0iLCIvKlxuQHNpbmNlIHt7VkVSU0lPTlxuKi9cblxuLnN1Yi1wYWdlLWFjY29yZGlvbiB7XG4gIC5hY2NvcmRpb24tbmF2aWdhdGlvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLnNob3ctYWxlcnRzLWJ1dHRvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDIuNWVtO1xuICAgICAgbGVmdDogMWVtO1xuICAgICAgei1pbmRleDogMTAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MCUpO1xuXG4gICAgICAuZmEge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZDogJGFsZXJ0LWNvbG9yO1xuICAgICAgICBmb250LXNpemU6IDEuNWVtO1xuICAgICAgICB3aWR0aDogMS4xZW07XG4gICAgICAgIGhlaWdodDogMS4xZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjFlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJveC1zaGFkb3c6IDJweCAycHggMjBweCByZ2JhKCMwMDAsIDAuNCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNTBtcztcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKCRhbGVydC1jb2xvciwgMTAlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXHQuY29udGVudCB7XG5cdFx0LW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xuXHRcdG92ZXJmbG93OiBhdXRvO1xuXHR9XG59IiwiLypcblRvIFRvcCBidXR0b25cblxuQHNpbmNlIDEuMTIuMFxuKi9cblxuQGtleWZyYW1lcyBib3VuY2VPdXRSaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMDBweCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VJblJpZ2h0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMDAwcHgpO1xuICB9XG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzBweCk7XG4gIH1cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5cbiN0by10b3Age1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAyJTtcbiAgYm90dG9tOiA1JTtcbiAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiA0NXB4O1xuICBoZWlnaHQ6IDQ1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDEuNWVtO1xuICBib3gtc2hhZG93OiAycHggMnB4IDEwcHggcmdiYSgjMDAwLCAwLjMpO1xuXG4gIC5jb250YWluZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IGxpZ2h0ZW4oJHByaW1hcnktY29sb3IsIDEwJSk7XG4gIH1cblxuICAmLmxvYWRlZCB7XG4gICAgYW5pbWF0aW9uOiBib3VuY2VPdXRSaWdodCAxcztcbiAgfVxuXG4gICYuaW4ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMTtcbiAgICBhbmltYXRpb246IGJvdW5jZUluUmlnaHQgMXM7XG4gIH1cbn0iLCIuYm90dG9tLXN0aWNreS13cmFwcGVyIHtcblx0aGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5zdGlja3kge1xuXHRcblx0ei1pbmRleDogOTAwMSAhaW1wb3J0YW50OyAvLyBUaGlzIGlzIGFuIG9wdGlvbiB0aGF0IGNhbiBiZSBvdmVycmlkZW4sIGJ1dCBpdCBsZXR0aW5nIGl0IGF1dG8tY2FsY3VsYXRlIHNlZW1zIGxpa2UgYSBiYWQgaWRlYVxuXHRcblx0Ji5ib3R0b20ge1xuXHRcdFxuXHRcdHRvcDogYXV0byAhaW1wb3J0YW50O1xuXHRcdGJvdHRvbTogMDtcblx0XHRcblx0XHQmLmlzLXN0dWNrIHtcblx0XHRcdHRvcDogYXV0byAhaW1wb3J0YW50O1xuXHRcdFx0Ym90dG9tOiAwO1xuXHRcdH1cblx0XHRcblx0fVxuXHRcbn0iLCIvKlxuQXR0cmFjdGlvbiBhcmNoaXZlIHBhcnRpYWwuXG5cbkBzaW5jZSAwLjEuMFxuKi9cblxuLnZlbmRvci1zYyB7XG4gIC52ZW5kb3ItdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC52ZW5kb3Itc3ViLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6ICRzdW1tZXItc2t5LWJsdWU7XG4gIH1cblxuICAudmVuZG9yLWNvbnRlbnQge1xuICAgIHBhZGRpbmctbGVmdDogMWVtICFpbXBvcnRhbnQ7XG4gIH1cbn0iLCIvKlxuQXR0cmFjdGlvbiBhcmNoaXZlIHBhcnRpYWwuXG5cbkBzaW5jZSAwLjEuMFxuKi9cblxuLmF0dHJhY3Rpb24tc2Mge1xuICAuYXR0cmFjdGlvbi10aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLmF0dHJhY3Rpb24tc3ViLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6ICRzdW1tZXItc2t5LWJsdWU7XG4gIH1cblxuICAuYXR0cmFjdGlvbi1jb250ZW50IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFlbSAhaW1wb3J0YW50O1xuICB9XG59IiwiLypcblRleHRib3ggc2hvcnRjb2RlLlxuXG5Ac2luY2UgMS4yMS40XG4qL1xuXG4uZHpzLXNjLXRleHRib3gge1xuICBwYWRkaW5nOiAxZW07XG4gIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcblxuICAmLmNvbG9yLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG5cbiAgJi5jb2xvci1zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cblxuICAqOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn0iLCIvKlxuU29jaWFsIHNob3J0Y29kZXMuXG5cbkBzaW5jZSAwLjEuMFxuKi9cblxuJHNvY2lhbC1pY29uLXNtYWxsLWJhc2U6IDEuMWVtO1xuJHNvY2lhbC1pY29uLW1lZGl1bS1iYXNlOiAxLjZlbTtcbiRzb2NpYWwtaWNvbi1sYXJnZS1iYXNlOiAzZW07XG5cbltjbGFzcyo9XCJzb2NpYWwtaWNvbi1cIl0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNmZmY7XG4gIHdpZHRoOiAxLjdlbTtcbiAgaGVpZ2h0OiAxLjdlbTtcbiAgbGluZS1oZWlnaHQ6IDEuN2VtO1xuICBtYXJnaW4tbGVmdDogMC4xZW07XG4gIG1hcmdpbi1yaWdodDogMC4xZW07XG5cbiAgJltjbGFzcyo9XCJzbWFsbFwiXSB7XG4gICAgZm9udC1zaXplOiAkc29jaWFsLWljb24tc21hbGwtYmFzZTtcbiAgfVxuXG4gICZbY2xhc3MqPVwibWVkaXVtXCJdIHtcbiAgICBmb250LXNpemU6ICRzb2NpYWwtaWNvbi1tZWRpdW0tYmFzZTtcbiAgfVxuXG4gICZbY2xhc3MqPVwibGFyZ2VcIl0ge1xuICAgIGZvbnQtc2l6ZTogJHNvY2lhbC1pY29uLWxhcmdlLWJhc2U7XG4gIH1cblxuICAmW2NsYXNzKj1cImZhY2Vib29rXCJdIHtcbiAgICBiYWNrZ3JvdW5kOiAjM0I1NzlEO1xuICB9XG5cbiAgJltjbGFzcyo9XCJ0d2l0dGVyXCJdIHtcbiAgICBiYWNrZ3JvdW5kOiAjMkFBOUUwO1xuICB9XG5cbiAgJltjbGFzcyo9XCJnb29nbGVwbHVzXCJdIHtcbiAgICBiYWNrZ3JvdW5kOiAjREM0QTM4O1xuICB9XG5cbiAgJltjbGFzcyo9XCJ5b3V0dWJlXCJdIHtcbiAgICBiYWNrZ3JvdW5kOiAjREQyQzI4O1xuICB9XG59IiwiLmFjY29yZGlvbiB7XG5cblx0LmR6cy1zYy1zaWRlLWltYWdlIHtcblxuXHRcdC5jb250ZW50IHtcblx0XHRcdC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcblx0XHRcdG92ZXJmbG93OiBhdXRvO1xuXHRcdH1cblxuXHR9XG5cbn0iLCIvKiBEYXRlIFBpY2tlciBEZWZhdWx0IFN0eWxlcyBmcm9tIFJCTSBGSCAqL1xuLnVpLWRhdGVwaWNrZXIge1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDA7XG5cdC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcblx0LW1vei1ib3JkZXItcmFkaXVzOiAwO1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRib3JkZXI6IDFweCBzb2xpZCAjZGZkZmRmO1xuXHRib3JkZXItdG9wOiBub25lO1xuXHQtd2Via2l0LWJveC1zaGFkb3c6IDAgM3B4IDZweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcblx0Ym94LXNoYWRvdzogMCAzcHggNnB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuXHRtaW4td2lkdGg6IDE3ZW07XG5cdHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi51aS1kYXRlcGlja2VyICoge1xuXHRwYWRkaW5nOiAwO1xuXHRmb250LWZhbWlseTogXCJPcGVuIFNhbnNcIiwgc2Fucy1zZXJpZjtcblx0LXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwO1xuXHQtbW96LWJvcmRlci1yYWRpdXM6IDA7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi51aS1kYXRlcGlja2VyIHRhYmxlIHtcblx0Zm9udC1zaXplOiAxM3B4O1xuXHRtYXJnaW46IDA7XG5cdGJvcmRlcjogbm9uZTtcblx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cblxuLnVpLWRhdGVwaWNrZXIgLnVpLXdpZGdldC1oZWFkZXIsXG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1oZWFkZXIge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuXHRib3JkZXI6IG5vbmU7XG5cdGNvbG9yOiAjZmZmO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1oZWFkZXIgLnVpLXN0YXRlLWhvdmVyIHtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItdGl0bGUge1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDEwcHggMDtcblx0Y29sb3I6ICNmZmY7XG5cdGZvbnQtc2l6ZTogMTRweDtcblx0bGluZS1oZWlnaHQ6IDE0cHg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldixcbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5leHQge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRvcDogMDtcblx0aGVpZ2h0OiAzNHB4O1xuXHR3aWR0aDogMzRweDtcbn1cblxuLnVpLWRhdGVwaWNrZXIgLnVpLXN0YXRlLWhvdmVyLnVpLWRhdGVwaWNrZXItcHJldixcbi51aS1kYXRlcGlja2VyIC51aS1zdGF0ZS1ob3Zlci51aS1kYXRlcGlja2VyLW5leHQge1xuXHRib3JkZXI6IG5vbmU7XG59XG5cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYsXG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2LWhvdmVyIHtcblx0bGVmdDogMDtcbn1cblxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dCxcbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5leHQtaG92ZXIge1xuXHRyaWdodDogMDtcbn1cblxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dCBzcGFuLFxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldiBzcGFuIHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2IHtcblx0ZmxvYXQ6IGxlZnQ7XG59XG5cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5leHQge1xuXHRmbG9hdDogcmlnaHQ7XG59XG5cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXY6YmVmb3JlLFxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dDpiZWZvcmUge1xuXHRmb250OiBub3JtYWwgMjBweC8zNHB4ICdkYXNoaWNvbnMnO1xuXHRwYWRkaW5nLWxlZnQ6IDdweDtcblx0Y29sb3I6ICNmZmY7XG5cdHNwZWFrOiBub25lO1xuXHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcblx0LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblx0d2lkdGg6IDM0cHg7XG5cdGhlaWdodDogMzRweDtcbn1cblxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldjpiZWZvcmUge1xuXHRjb250ZW50OiAnXFxmMzQxJztcbn1cblxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dDpiZWZvcmUge1xuXHRjb250ZW50OiAnXFxmMzQ1Jztcbn1cblxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldi1ob3ZlcjpiZWZvcmUsXG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0LWhvdmVyOmJlZm9yZSB7XG5cdG9wYWNpdHk6IDAuNztcbn1cblxuLnVpLWRhdGVwaWNrZXIgc2VsZWN0LnVpLWRhdGVwaWNrZXItbW9udGgsXG4udWktZGF0ZXBpY2tlciBzZWxlY3QudWktZGF0ZXBpY2tlci15ZWFyIHtcblx0d2lkdGg6IDMzJTtcbn1cblxuLnVpLWRhdGVwaWNrZXIgdGhlYWQge1xuXHRjb2xvcjogI2ZmZjtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnVpLWRhdGVwaWNrZXIgdGgge1xuXHRwYWRkaW5nOiAxMHB4O1xufVxuXG4udWktZGF0ZXBpY2tlciB0ZCB7XG5cdHBhZGRpbmc6IDA7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNmNGY0ZjQ7XG59XG5cbi51aS1kYXRlcGlja2VyIHRkLnVpLWRhdGVwaWNrZXItb3RoZXItbW9udGgge1xuXHRib3JkZXI6IHRyYW5zcGFyZW50O1xufVxuXG4udWktZGF0ZXBpY2tlciB0ZCAudWktc3RhdGUtZGVmYXVsdCB7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRib3JkZXI6IG5vbmU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR3aWR0aDogYXV0bztcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBhZGRpbmc6IDVweCAxMHB4O1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRjb2xvcjogIzQ0NDtcbn1cblxuLnVpLWRhdGVwaWNrZXIgdGQudWktc3RhdGUtZGlzYWJsZWQgLnVpLXN0YXRlLWRlZmF1bHQge1xuXHRvcGFjaXR5OiAwLjU7XG59XG5cbi8vIERlZmF1bHQgQ29sb3IgU2NoZW1lXG4udWktZGF0ZXBpY2tlciB7XG5cdC51aS13aWRnZXQtaGVhZGVyLCAudWktZGF0ZXBpY2tlci1oZWFkZXIge1xuXHRcdGJhY2tncm91bmQ6ICM1MmFjY2M7XG5cdH1cblxuXHR0aGVhZCB7XG5cdFx0YmFja2dyb3VuZDogIzA5NjQ4NDtcblx0fVxuXG5cdHRkIHtcblx0XHQmLnVpLWRhdGVwaWNrZXItd2Vlay1lbmQge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNmNGY0ZjQ7XG5cdFx0fVxuXG5cdFx0Ji51aS1kYXRlcGlja2VyLXRvZGF5IHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICM0Nzk2YjM7XG5cdFx0fVxuXG5cdFx0Ji51aS1kYXRlcGlja2VyLWN1cnJlbnQtZGF5IHtcblx0XHRcdGJhY2tncm91bmQ6ICM0Nzk2YjM7XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHR9XG5cblx0XHRhLnVpLXN0YXRlLWRlZmF1bHQge1xuXHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0fVxuXG5cdFx0YS51aS1zdGF0ZS1ob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAjMDk2NDg0O1xuXHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0fVxuXHR9XG59XG5cbi8vIEZyb250ZW5kLXNwZWNpZmljIGFkanVzdG1lbnRzIGZvciB0aGUgRGF0ZXBpY2tlclxuLnVpLWRhdGVwaWNrZXIge1xuXG5cdC51aS13aWRnZXQtaGVhZGVyLCAudWktZGF0ZXBpY2tlci1oZWFkZXIge1xuXHRcdEBpbmNsdWRlIGxpZ2h0LW9yLWRhcmstdGV4dCggJHNlY29uZGFyeS1jb2xvciApO1xuXHR9XG5cblx0dGhlYWQgdGgge1xuXHRcdEBpbmNsdWRlIGxpZ2h0LW9yLWRhcmstdGV4dCggJHByaW1hcnktY29sb3IgKTtcblx0fVxuXG59XG5cbi8vIEhpZGUgc2Vjb25kYXJ5IGNhbGVuZGFyIGljb24gd2hpY2ggZ2V0cyBhZGRlZCBwcmV0dHkgbXVjaCBubyBtYXR0ZXIgd2hhdCBJIGRvXG4uZHpzLWZpZWxkLXRyaXAtZGF0ZXBpY2tlciA+IC51aS1kYXRlcGlja2VyLXRyaWdnZXIge1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59IiwiLypcblN0eWxlcyB0aGUgYWRtaW4gZGF0ZXBpY2tlciBmcm9tIFJCTSBmaWVsZCBoZWxwZXJzLlxuXG5Ac2luY2UgMS4yNi4yXG4qL1xuXG4udWktZGF0ZXBpY2tlciB7XG4gIC51aS13aWRnZXQtaGVhZGVyLCAudWktZGF0ZXBpY2tlci1oZWFkZXIge1xuICAgIGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XG4gIH1cblxuICB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gIH1cblxuICB0ZCB7XG4gICAgJi51aS1kYXRlcGlja2VyLXRvZGF5IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtZWRpdW0tcHVycGxlO1xuICAgIH1cblxuICAgICYudWktZGF0ZXBpY2tlci1jdXJyZW50LWRheSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbWVkaXVtLXB1cnBsZTtcbiAgICB9XG5cbiAgICBhLnVpLXN0YXRlLWhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgIH1cbiAgfVxufSIsIi8qXG5UaGlzIHByb3ZpZGVzIG92ZXJyaWRlcyBmb3Igc29tZSBXUCBzdHVmZiAobm90IG11Y2ggYXQgYWxsKS5cblxuQHNpbmNlIDAuMS4wXG4qL1xuXG4jd3BhZG1pbmJhciB7XG4gIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xufSJdfQ== */
