@charset "UTF-8";
/* FONTS
--------------------------------------------------------------------------------------------*/
@import url(https://fonts.googleapis.com/css?family=Merriweather:300,400,600,700|Montserrat:200,300,400,600);
/* VARIABLES
--------------------------------------------------------------------------------------------*/
/*
    BRAND COLORS
*/
/*
    DEFAULTS
*/
/*
    OTHER VARIABLES
*/
/*
    LIST FOR DEFAULT BG COLOR GENERATION
*/
/*
    LIST FOR DEFAULT FONT COLOR GENERATION
*/
/*
    LIST FOR DEFAULT FILL COLOR GENERATION
*/
/* FUNCTIONS
--------------------------------------------------------------------------------------------*/
/* MIXINS
--------------------------------------------------------------------------------------------*/
/* MIXIN - BOTTOM ITEMS NO BORDER 
----------------------------------------------------------------------------------------------------

    Removes border bottom from last items in a grid

*/
/* MIXIN - BORDER RESPONSIVENESS
----------------------------------------------------------------------------------------------------

    This mixin calculates the tranparent borders on grids, so you have borders between items, but not on the left side. 
    It accepts a pattern, (S1-MP2), which means on small 1 item per row, on medium-portrait 2, etc. 
    The first item can be set as large and therefore 100% width of parent container size.

*/
/*------------------------
mixin that calculates if text needs to be light or dark
depending on the background color passed.

From this W3C document: http://www.webmasterworld.com/r.cgi?f=88&d=9769&url=http://www.w3.org/TR/AERT#color-contrast
			
Color brightness is determined by the following formula: 
((Red value X 299) + (Green value X 587) + (Blue value X 114)) / 1000
------------------------*/
/**
 * Foundation for Sites by ZURB
 * Version 6.3.1
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */
/* Document
       ========================================================================== */
/**
     * 1. Change the default font family in all browsers (opinionated).
     * 2. Correct the line height in all browsers.
     * 3. Prevent adjustments of font size after orientation changes in
     *    IE on Windows Phone and in iOS.
     */
html {
  font-family: sans-serif;
  /* 1 */
  line-height: 1.15;
  /* 2 */
  -ms-text-size-adjust: 100%;
  /* 3 */
  -webkit-text-size-adjust: 100%;
  /* 3 */ }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

body {
  margin: 0;
  padding: 0;
  background: #ffffff;
  font-family: "Merriweather", Arial, sans-serif;
  font-weight: 400;
  line-height: 1.5;
  color: #000000;
  -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;
          appearance: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  line-height: 1; }
  [data-whatinput='mouse'] button {
    outline: 0; }

pre {
  overflow: auto; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@media print, screen and (min-width: 50em) {
  h1 {
    font-size: 2.36842rem; }
  h2 {
    font-size: 2.10526rem; }
  h3 {
    font-size: 1.84211rem; }
  h4 {
    font-size: 1.57895rem; }
  h5 {
    font-size: 1.31579rem; }
  h6 {
    font-size: 1.05263rem; } }

a {
  line-height: inherit;
  color: #000000;
  text-decoration: none;
  cursor: pointer; }
  a:hover, a:focus {
    color: black; }
  a img {
    border: 0; }

hr {
  clear: both;
  max-width: 78.94737rem;
  height: 0;
  margin: 1.31579rem 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.8; }

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: 700; }

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

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

abbr {
  border-bottom: 1px dotted #222222;
  color: #000000;
  cursor: help; }

figure {
  margin: 0; }

code {
  padding: 0.13158rem 0.32895rem 0.06579rem;
  border: 1px solid #cacaca;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: 400;
  color: #222222; }

kbd {
  margin: 0;
  padding: 0.13158rem 0.26316rem 0;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  color: #222222; }

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

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

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

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

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

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

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

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

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

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

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

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

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

.button {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 1rem 0;
  padding: 0.85em 1em;
  -webkit-appearance: none;
  border: 1px solid transparent;
  border-radius: 0;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-size: 0.9rem;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  background-color: #000000;
  color: #ffffff; }
  [data-whatinput='mouse'] .button {
    outline: 0; }
  .button:hover, .button:focus {
    background-color: black;
    color: #ffffff; }
  .button.tiny {
    font-size: 0.6rem; }
  .button.small {
    font-size: 0.75rem; }
  .button.large {
    font-size: 1.25rem; }
  .button.expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0; }
  .button.primary {
    background-color: #000000;
    color: #ffffff; }
    .button.primary:hover, .button.primary:focus {
      background-color: black;
      color: #ffffff; }
  .button.secondary {
    background-color: #777;
    color: #ffffff; }
    .button.secondary:hover, .button.secondary:focus {
      background-color: #5f5f5f;
      color: #ffffff; }
  .button.success {
    background-color: #3adb76;
    color: #222222; }
    .button.success:hover, .button.success:focus {
      background-color: #22bb5b;
      color: #222222; }
  .button.warning {
    background-color: #ffae00;
    color: #222222; }
    .button.warning:hover, .button.warning:focus {
      background-color: #cc8b00;
      color: #222222; }
  .button.alert {
    background-color: #ec5840;
    color: #222222; }
    .button.alert:hover, .button.alert:focus {
      background-color: #da3116;
      color: #222222; }
  .button.hollow {
    border: 1px solid #000000;
    color: #000000; }
    .button.hollow, .button.hollow:hover, .button.hollow:focus {
      background-color: transparent; }
    .button.hollow:hover, .button.hollow:focus {
      border-color: black;
      color: black; }
    .button.hollow.primary {
      border: 1px solid #000000;
      color: #000000; }
      .button.hollow.primary:hover, .button.hollow.primary:focus {
        border-color: black;
        color: black; }
    .button.hollow.secondary {
      border: 1px solid #777;
      color: #777; }
      .button.hollow.secondary:hover, .button.hollow.secondary:focus {
        border-color: #3c3c3c;
        color: #3c3c3c; }
    .button.hollow.success {
      border: 1px solid #3adb76;
      color: #3adb76; }
      .button.hollow.success:hover, .button.hollow.success:focus {
        border-color: #157539;
        color: #157539; }
    .button.hollow.warning {
      border: 1px solid #ffae00;
      color: #ffae00; }
      .button.hollow.warning:hover, .button.hollow.warning:focus {
        border-color: #805700;
        color: #805700; }
    .button.hollow.alert {
      border: 1px solid #ec5840;
      color: #ec5840; }
      .button.hollow.alert:hover, .button.hollow.alert:focus {
        border-color: #881f0e;
        color: #881f0e; }
  .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: #000000;
      color: #ffffff; }
    .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: #000000;
        color: #ffffff; }
    .button.disabled.secondary, .button[disabled].secondary {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.secondary, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        background-color: #777;
        color: #ffffff; }
    .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: #222222; }
    .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: #222222; }
    .button.disabled.alert, .button[disabled].alert {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.alert, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert, .button[disabled].alert:hover, .button[disabled].alert:focus {
        background-color: #ec5840;
        color: #222222; }
  .button.dropdown::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.4em;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #ffffff transparent transparent;
    position: relative;
    top: 0.4em;
    display: inline-block;
    float: right;
    margin-left: 1em; }
  .button.dropdown.hollow::after {
    border-top-color: #000000; }
  .button.dropdown.hollow.primary::after {
    border-top-color: #000000; }
  .button.dropdown.hollow.secondary::after {
    border-top-color: #777; }
  .button.dropdown.hollow.success::after {
    border-top-color: #3adb76; }
  .button.dropdown.hollow.warning::after {
    border-top-color: #ffae00; }
  .button.dropdown.hollow.alert::after {
    border-top-color: #ec5840; }
  .button.arrow-only::after {
    top: -0.1em;
    float: none;
    margin-left: 0; }

[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.56579rem;
  margin: 0 0 1.05263rem;
  padding: 0.52632rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #ffffff;
  box-shadow: inset 0 1px 2px rgba(34, 34, 34, 0.1);
  font-family: inherit;
  font-size: 1.05263rem;
  font-weight: 400;
  color: #222222;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  -webkit-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: #ffffff;
    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: default; }

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

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

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

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

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

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

label {
  display: block;
  margin: 0;
  font-size: 0.92105rem;
  font-weight: 400;
  line-height: 1.8;
  color: #222222; }
  label.middle {
    margin: 0 0 1.05263rem;
    padding: 0.59211rem 0; }

.help-text {
  margin-top: -0.52632rem;
  font-size: 0.85526rem;
  font-style: italic;
  color: #222222; }

.input-group {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  margin-bottom: 1.05263rem;
  -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: #222222;
  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;
  -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: 2.63158rem;
    padding-top: 0;
    padding-bottom: 0;
    font-size: 1.05263rem; }

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

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

.fieldset {
  margin: 1.18421rem 0;
  padding: 1.31579rem;
  border: 1px solid #cacaca; }
  .fieldset legend {
    margin: 0;
    margin-left: -0.19737rem;
    padding: 0 0.19737rem;
    background: #ffffff; }

select {
  height: 2.56579rem;
  margin: 0 0 1.05263rem;
  padding: 0.52632rem;
  -webkit-appearance: none;
          appearance: none;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #ffffff;
  font-family: inherit;
  font-size: 1.05263rem;
  line-height: normal;
  color: #222222;
  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 -1.05263rem center;
  background-repeat: no-repeat;
  background-size: 9px 6px;
  padding-right: 1.57895rem;
  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: #ffffff;
    box-shadow: 0 0 5px #cacaca;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }
  select:disabled {
    background-color: #e6e6e6;
    cursor: default; }
  select::-ms-expand {
    display: none; }
  select[multiple] {
    height: auto;
    background-image: none; }

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

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

.form-error {
  display: none;
  margin-top: -0.52632rem;
  margin-bottom: 1.05263rem;
  font-size: 0.78947rem;
  font-weight: 700;
  color: #ec5840; }
  .form-error.is-visible {
    display: block; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.dropdown.menu.vertical > li.opens-left > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #000000 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 #000000; }

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

@media print, screen and (min-width: 50em) {
  .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: #000000 transparent transparent;
    right: 5px;
    margin-top: -3px; }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto; }
  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.medium-vertical > li > a::after {
    right: 14px; }
  .dropdown.menu.medium-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #000000 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 #000000; } }

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

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

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

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

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

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

.sticky-container {
  position: relative; }

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

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

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

.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-portrait {
    display: none !important; } }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.clearfix::before, .clearfix::after {
  display: table;
  content: ' ';
  -webkit-flex-basis: 0;
      -ms-flex-preferred-size: 0;
          flex-basis: 0;
  -webkit-order: 1;
      -ms-flex-order: 1;
          order: 1; }

.clearfix::after {
  clear: both; }

/* SLICK */
/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent; }

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0; }
  .slick-list:focus {
    outline: none; }
  .slick-list.dragging {
    cursor: pointer;
    cursor: hand; }

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto; }
  .slick-track:before, .slick-track:after {
    content: "";
    display: table; }
  .slick-track:after {
    clear: both; }
  .slick-loading .slick-track {
    visibility: hidden; }

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none; }
  [dir="rtl"] .slick-slide {
    float: right; }
  .slick-slide img {
    display: block; }
  .slick-slide.slick-loading img {
    display: none; }
  .slick-slide.dragging img {
    pointer-events: none; }
  .slick-initialized .slick-slide {
    display: block; }
  .slick-loading .slick-slide {
    visibility: hidden; }
  .slick-vertical .slick-slide {
    display: block;
    height: auto;
    border: 1px solid transparent; }

.slick-arrow.slick-hidden {
  display: none; }

/* PHOTOSWIPE */
/* STUCTURE
--------------------------------------------------------------------------------------------*/
figure {
  margin: 0; }

[data-anime-type="none"] [data-anime-elem] {
  opacity: 1; }

/* GENERICS
--------------------------------------------------------------------------------------------*/
/* GENERICS - ANCHORS
--------------------------------------------------------------------------------------------*/
@media print, screen and (min-width: 64.0625em) {
  a[href^="tel"] {
    pointer-events: none; } }

/* GENERICS - BUTTON GROUP
--------------------------------------------------------------------------------------------*/
button:active, .button:active {
  -webkit-transform: translateY(1px);
      -ms-transform: translateY(1px);
          transform: translateY(1px); }

button:focus, .button:focus {
  outline: none; }

.button {
  text-transform: uppercase;
  font-weight: 700;
  padding: 1.2em;
  text-align: left;
  border-radius: 6px;
  border: solid 3px;
  border-color: #ffffff;
  position: relative;
  transition: opacity .3s ease;
  will-change: opacity;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  background: #e30613;
  background: linear-gradient(-90deg, #670309, #e30613);
  color: #ffffff; }
  .button .svg-container {
    display: none;
    width: 2em;
    height: 2em; }
  .button svg {
    width: 2em;
    height: 2em;
    fill: currentColor; }
  .button.v_expanded {
    display: block;
    width: 100%; }
  .button.v_brand_primary {
    background: #e30613;
    color: #ffffff; }
  .button.v_brand_primary-darker {
    background: #670309;
    color: #ffffff; }
  .button.v_brand_secondary {
    background: #f2f2f2;
    color: #000000; }
  .button.v_brand_secondary-darker {
    background: #cccccc;
    color: #000000; }
  .button.v_brand_tertiary {
    background: #000000;
    color: #ffffff; }
  .button.v_brand_tertiary-darker {
    background: #000000;
    color: #ffffff; }
  .button.v_brand_black {
    background: #222222;
    color: #ffffff; }
  .button.v_brand_white {
    background: #ffffff;
    color: #000000; }
  .button.v_brand_light-gray {
    background: #f0f0f0;
    color: #000000; }
  .button.v_brand_lightest-gray {
    background: #fafafd;
    color: #000000; }
  .button.v_ghost {
    background: none; }
  .button.v_ghost_brand_primary {
    background: none;
    color: #e30613;
    border-color: #e30613; }
  .button.v_ghost_brand_primary-darker {
    background: none;
    color: #670309;
    border-color: #670309; }
  .button.v_ghost_brand_secondary {
    background: none;
    color: #f2f2f2;
    border-color: #f2f2f2; }
  .button.v_ghost_brand_secondary-darker {
    background: none;
    color: #cccccc;
    border-color: #cccccc; }
  .button.v_ghost_brand_tertiary {
    background: none;
    color: #000000;
    border-color: #000000; }
  .button.v_ghost_brand_tertiary-darker {
    background: none;
    color: #000000;
    border-color: #000000; }
  .button.v_ghost_brand_black {
    background: none;
    color: #222222;
    border-color: #222222; }
  .button.v_ghost_brand_white {
    background: none;
    color: #ffffff;
    border-color: #ffffff; }
  .button.v_ghost_brand_light-gray {
    background: none;
    color: #f0f0f0;
    border-color: #f0f0f0; }
  .button.v_ghost_brand_lightest-gray {
    background: none;
    color: #fafafd;
    border-color: #fafafd; }
  .button.v_transparent {
    padding-top: 0;
    padding-bottom: 0;
    padding-left: 0;
    background: none;
    border: none;
    color: #000000; }
    .button.v_transparent:hover {
      color: #000000;
      opacity: 1; }
  .button.v_transparent_body {
    padding-top: 0;
    padding-bottom: 0;
    padding-left: 0;
    background: none;
    border: none;
    text-transform: none;
    color: #000000;
    font-family: "Merriweather", Arial, sans-serif;
    font-weight: 400;
    font-style: normal; }
    .button.v_transparent_body .svg-container {
      width: 1.4em;
      height: 1.4em; }
    .button.v_transparent_body svg {
      width: 1.4em;
      height: 1.4em; }
    .button.v_transparent_body:hover {
      color: #000000;
      opacity: 1; }
  .button.v_has-icon-left {
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    padding: 0.84em; }
    .button.v_has-icon-left .svg-container {
      display: inline-block;
      margin-right: 1em; }
  .button.v_has-icon-right {
    padding: 0.84em; }
    .button.v_has-icon-right .svg-container {
      display: inline-block;
      margin-left: 1em; }
  .button:hover {
    opacity: .8; }

/* GENERICS - FORM
--------------------------------------------------------------------------------------------*/
input,
textarea,
select {
  border-color: rgba(0, 0, 0, 0.3) !important;
  border-radius: 3px !important;
  padding: 0rem 2rem .2rem 1rem !important;
  height: 3rem !important; }
  input:disabled,
  textarea:disabled,
  select:disabled {
    background-color: transparent;
    border-color: rgba(0, 0, 0, 0.15) !important;
    color: #000000 !important;
    opacity: 1 !important; }
  input::-webkit-input-placeholder,
  textarea::-webkit-input-placeholder,
  select::-webkit-input-placeholder {
    font-style: italic;
    color: rgba(0, 0, 0, 0.6) !important; }
  input:-ms-input-placeholder,
  textarea:-ms-input-placeholder,
  select:-ms-input-placeholder {
    font-style: italic;
    color: rgba(0, 0, 0, 0.6) !important; }
  input::placeholder,
  textarea::placeholder,
  select::placeholder {
    font-style: italic;
    color: rgba(0, 0, 0, 0.6) !important; }
  input:focus,
  textarea:focus,
  select:focus {
    border-color: black !important; }

select {
  padding: 0rem 2.5rem 0 1rem !important;
  background-position: right -18px center; }

textarea {
  min-height: 100px; }

input[type="submit"],
input[type="button"] {
  padding: 1rem 1rem 1rem 1rem !important;
  border: solid 3px #f0f0f0 !important; }

input::-webkit-contacts-auto-fill-button {
  visibility: hidden;
  display: none !important;
  pointer-events: none;
  position: absolute;
  right: 0; }

.input-group-button a,
.input-group-button input,
.input-group-button button,
.input-group-button label {
  font-size: 0.9rem; }

/* GENERICS - HR
--------------------------------------------------------------------------------------------*/
hr {
  border-bottom: solid 1px rgba(34, 34, 34, 0.15);
  margin: 30px 0;
  max-width: 100%; }

/* LIST SEARCH
--------------------------------------------------------------------------------------------*/
.ac_list-search {
  list-style: none;
  margin: 0;
  border-top: solid 1px rgba(102, 102, 102, 0.2); }

.ac_list-search_item {
  border-bottom: solid 1px rgba(102, 102, 102, 0.2); }

.ac_list-search_item_link {
  padding: 2em 0;
  display: block;
  text-decoration: none !important; }

/* GENERICS - MAPS
--------------------------------------------------------------------------------------------*/
.gm-style {
  font-family: "Merriweather", Arial, sans-serif !important; }

/* GENERICS - SLICK SLIDER
--------------------------------------------------------------------------------------------*/
.slick-dots {
  position: absolute;
  z-index: 222;
  left: 50%;
  bottom: -2em;
  list-style: none;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin: 0;
  -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
          transform: translateX(-50%); }
  @media print, screen and (min-width: 50em) {
    .slick-dots {
      bottom: -4em; } }
  .slick-dots button {
    border: solid 2px rgba(0, 0, 0, 0.1);
    width: 1em;
    height: 1em;
    border-radius: 100%;
    margin: 0 .15em;
    text-indent: -99999px; }
    .slick-dots button:hover {
      cursor: pointer; }
    .slick-dots button:focus {
      outline: none; }
  .slick-dots .slick-active button {
    background: #000000; }

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

button.slick-prev,
button.slick-next {
  position: absolute;
  z-index: 222;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 3em;
  height: 3em;
  padding: .5em;
  background: #ffffff;
  border-radius: 3px;
  box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1); }
  button.slick-prev svg,
  button.slick-next svg {
    width: 2em;
    height: 2em; }
  button.slick-prev:hover,
  button.slick-next:hover {
    cursor: pointer; }
  button.slick-prev:focus,
  button.slick-next:focus {
    outline: none; }

button.slick-prev {
  left: 0; }

button.slick-next {
  right: 0; }

/* GENERICS - SVG
--------------------------------------------------------------------------------------------*/
/* PARTS
--------------------------------------------------------------------------------------------*/
/* PART - CONTENT
--------------------------------------------------------------------------------------------*/
.ac_content {
  position: relative; }

.ac_content_container {
  position: relative;
  z-index: 1;
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 20px; }
  .ac_content_container.a_collapsed {
    padding: 0; }

.ac_content_flex {
  padding: 0 10px; }
  @media print, screen and (min-width: 50em) {
    .ac_content_flex {
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      padding: 0 10px; } }

.ac_content_full,
.ac_content_fullwidth {
  padding: 0 10px;
  width: 100%; }

.ac_content_half,
.ac_content_1-2 {
  padding: 0 10px;
  width: 100%; }
  @media print, screen and (min-width: 50em) {
    .ac_content_half,
    .ac_content_1-2 {
      -webkit-flex: 0 1 50%;
          -ms-flex: 0 1 50%;
              flex: 0 1 50%;
      max-width: 50%; } }

.ac_content_1-3 {
  padding: 0 10px;
  width: 100%; }
  @media print, screen and (min-width: 50em) {
    .ac_content_1-3 {
      -webkit-flex: 0 1 33.33333%;
          -ms-flex: 0 1 33.33333%;
              flex: 0 1 33.33333%;
      max-width: 33.33333%; } }

.ac_content_2-3 {
  padding: 0 10px;
  width: 100%; }
  @media print, screen and (min-width: 50em) {
    .ac_content_2-3 {
      -webkit-flex: 0 1 66.66667%;
          -ms-flex: 0 1 66.66667%;
              flex: 0 1 66.66667%;
      max-width: 66.66667%; } }

.ac_content_1-4 {
  padding: 0 10px;
  width: 100%; }
  @media print, screen and (min-width: 50em) {
    .ac_content_1-4 {
      -webkit-flex: 0 1 25%;
          -ms-flex: 0 1 25%;
              flex: 0 1 25%;
      max-width: 25%; } }

.ac_content_3-4 {
  padding: 0 10px;
  width: 100%; }
  @media print, screen and (min-width: 50em) {
    .ac_content_3-4 {
      -webkit-flex: 0 1 75%;
          -ms-flex: 0 1 75%;
              flex: 0 1 75%;
      max-width: 75%; } }

.ac_content_1-5 {
  padding: 0 10px;
  width: 100%; }
  @media print, screen and (min-width: 50em) {
    .ac_content_1-5 {
      -webkit-flex: 0 1 20%;
          -ms-flex: 0 1 20%;
              flex: 0 1 20%;
      max-width: 40%; } }

.ac_content_2-5 {
  padding: 0 10px;
  width: 100%; }
  @media print, screen and (min-width: 50em) {
    .ac_content_2-5 {
      -webkit-flex: 0 1 40%;
          -ms-flex: 0 1 40%;
              flex: 0 1 40%;
      max-width: 40%; } }

.ac_content_3-5 {
  padding: 0 10px;
  width: 100%; }
  @media print, screen and (min-width: 50em) {
    .ac_content_3-5 {
      -webkit-flex: 0 1 60%;
          -ms-flex: 0 1 60%;
              flex: 0 1 60%;
      max-width: 60%; } }

.ac_content_4-5 {
  padding: 0 10px;
  width: 100%; }
  @media print, screen and (min-width: 50em) {
    .ac_content_4-5 {
      -webkit-flex: 0 1 80%;
          -ms-flex: 0 1 80%;
              flex: 0 1 80%;
      max-width: 80%; } }

/* GRID - BASED ON DATA ATTRIBUTES
--------------------------------------------------------------------------------------------*/
[data-s-amount="1"] [data-s-amount-item] {
  width: 100%; }

@media print, screen and (min-width: 40em) {
  [data-s-amount="2"] [data-s-amount-item] {
    width: 50%;
    max-width: 50%; } }

@media print, screen and (min-width: 40em) {
  [data-s-amount="3"] [data-s-amount-item] {
    width: 50%;
    max-width: 50%; } }

@media print, screen and (min-width: 50em) {
  [data-s-amount="3"] [data-s-amount-item] {
    width: 33.33333%;
    max-width: 33.33333%; } }

@media print, screen and (min-width: 40em) {
  [data-s-amount="4"] [data-s-amount-item] {
    width: 50%;
    max-width: 50%; } }

@media print, screen and (min-width: 64.0625em) {
  [data-s-amount="4"] [data-s-amount-item] {
    width: 25%;
    max-width: 25%; } }

@media print, screen and (min-width: 40em) {
  [data-s-amount="5"] [data-s-amount-item] {
    width: 50%;
    max-width: 50%; } }

@media print, screen and (min-width: 64.0625em) {
  [data-s-amount="5"] [data-s-amount-item] {
    width: 20%;
    max-width: 20%; } }

/* BACKDROP 
--------------------------------------------------------------------------------------------*/
.ac_backdrop {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  overflow: hidden; }

.ac_backdrop_image-container {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0; }

.ac_backdrop_image {
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: 1;
  top: 0;
  left: 0;
  opacity: 1; }

.ac_backdrop_video-container {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 2; }
  .ac_backdrop_video-container video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    -webkit-transform: translateX(-50%) translateY(-50%);
        -ms-transform: translateX(-50%) translateY(-50%);
            transform: translateX(-50%) translateY(-50%); }

/* SECTION - DIVIDER 
--------------------------------------------------------------------------------------------*/
.ac_section_divider {
  pointer-events: none;
  /* SECTION - DIVIDER - ANGLED SVG
--------------------------------------------------------------------------------------------*/
  /* SECTION - DIVIDER - ANGLED SVG
--------------------------------------------------------------------------------------------*/
  /* SECTION - DIVIDER - ANGLED SVG
--------------------------------------------------------------------------------------------*/
  /* SECTION - DIVIDER - DOTTED
--------------------------------------------------------------------------------------------*/
  /* SECTION - DIVIDER - DOTTED
--------------------------------------------------------------------------------------------*/
  /* SECTION - DIVIDER - ANGLED SVG
--------------------------------------------------------------------------------------------*/
  /* SECTION - DIVIDER - SPIKED
--------------------------------------------------------------------------------------------*/
  /* SECTION - DIVIDER - SPIKED - SMALL
--------------------------------------------------------------------------------------------*/ }
  .ac_section_divider[data-s-divider-type="angled-svg"] .ac_section_divider_top {
    top: -3vw;
    position: absolute;
    z-index: 11;
    width: 100%; }
    .ac_section_divider[data-s-divider-type="angled-svg"] .ac_section_divider_top svg {
      position: absolute;
      width: 100%;
      height: 3vw;
      -webkit-transform: translateY(1px);
          -ms-transform: translateY(1px);
              transform: translateY(1px); }
  .ac_section_divider[data-s-divider-type="angled-svg"] .ac_section_divider_bottom {
    bottom: -3vw;
    position: absolute;
    z-index: 11;
    width: 100%;
    -webkit-transform: rotate(180deg);
        -ms-transform: rotate(180deg);
            transform: rotate(180deg); }
    .ac_section_divider[data-s-divider-type="angled-svg"] .ac_section_divider_bottom svg {
      position: absolute;
      width: 100%;
      height: 3vw;
      -webkit-transform: translateY(1px);
          -ms-transform: translateY(1px);
              transform: translateY(1px); }
  .ac_section_divider[data-s-divider-type="butt-cheeks"] .ac_section_divider_top {
    top: -50px;
    position: absolute;
    z-index: 11;
    width: 100%;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .ac_section_divider[data-s-divider-type="butt-cheeks"] .ac_section_divider_bottom {
    bottom: -50px;
    position: absolute;
    z-index: 11;
    width: 100%;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-transform: rotate(180deg);
        -ms-transform: rotate(180deg);
            transform: rotate(180deg); }
  .ac_section_divider[data-s-divider-type="butt-cheeks"] .ac_section_divider_cheek_left {
    width: 50%;
    height: 50px;
    border-top-right-radius: 50px; }
  .ac_section_divider[data-s-divider-type="butt-cheeks"] .ac_section_divider_cheek_right {
    width: 50%;
    height: 50px;
    border-top-left-radius: 50px; }
  .ac_section_divider[data-s-divider-type="curved-cheeks"] .ac_section_divider_top {
    top: -10vw;
    position: absolute;
    z-index: 11;
    width: 100%; }
    .ac_section_divider[data-s-divider-type="curved-cheeks"] .ac_section_divider_top svg {
      position: absolute;
      width: 100%;
      height: 10vw;
      -webkit-transform: translateY(1px);
          -ms-transform: translateY(1px);
              transform: translateY(1px); }
  .ac_section_divider[data-s-divider-type="curved-cheeks"] .ac_section_divider_bottom {
    bottom: -10vw;
    position: absolute;
    z-index: 11;
    width: 100%;
    -webkit-transform: rotate(180deg);
        -ms-transform: rotate(180deg);
            transform: rotate(180deg); }
    .ac_section_divider[data-s-divider-type="curved-cheeks"] .ac_section_divider_bottom svg {
      position: absolute;
      width: 100%;
      height: 10vw;
      -webkit-transform: translateY(1px);
          -ms-transform: translateY(1px);
              transform: translateY(1px); }
  .ac_section_divider[data-s-divider-type="dotted"] .ac_section_divider_top {
    top: -19px;
    position: absolute;
    z-index: 11;
    width: 100%; }
  .ac_section_divider[data-s-divider-type="dotted"] .ac_section_divider_bottom {
    position: absolute;
    z-index: 11;
    width: 100%;
    bottom: -19.53px; }
    .ac_section_divider[data-s-divider-type="dotted"] .ac_section_divider_bottom svg {
      -webkit-transform: rotate(180deg);
          -ms-transform: rotate(180deg);
              transform: rotate(180deg); }
  .ac_section_divider[data-s-divider-type="dotted"] svg {
    height: 20px;
    width: 100%; }
  .ac_section_divider[data-s-divider-type="semi-transparent"] .ac_section_divider_top {
    position: absolute;
    z-index: 11;
    width: 100%; }
    .ac_section_divider[data-s-divider-type="semi-transparent"] .ac_section_divider_top svg {
      position: absolute;
      width: 100%; }
    .ac_section_divider[data-s-divider-type="semi-transparent"] .ac_section_divider_top.p_polygon-1 {
      top: -3.9vw;
      z-index: 11; }
      .ac_section_divider[data-s-divider-type="semi-transparent"] .ac_section_divider_top.p_polygon-1 svg {
        height: 4vw; }
    .ac_section_divider[data-s-divider-type="semi-transparent"] .ac_section_divider_top.p_polygon-2 {
      top: -7vw;
      z-index: 10;
      opacity: .3; }
      .ac_section_divider[data-s-divider-type="semi-transparent"] .ac_section_divider_top.p_polygon-2 svg {
        height: 7vw; }
  .ac_section_divider[data-s-divider-type="smile"] .ac_section_divider_top {
    top: -10vw;
    position: absolute;
    z-index: 11;
    width: 100%; }
    .ac_section_divider[data-s-divider-type="smile"] .ac_section_divider_top svg {
      position: absolute;
      width: 100%;
      height: 10vw;
      -webkit-transform: translateY(1px);
          -ms-transform: translateY(1px);
              transform: translateY(1px); }
  .ac_section_divider[data-s-divider-type="smile"] .ac_section_divider_bottom {
    bottom: -10vw;
    position: absolute;
    z-index: 11;
    width: 100%;
    -webkit-transform: rotate(180deg);
        -ms-transform: rotate(180deg);
            transform: rotate(180deg); }
    .ac_section_divider[data-s-divider-type="smile"] .ac_section_divider_bottom svg {
      position: absolute;
      width: 100%;
      height: 10vw;
      -webkit-transform: translateY(1px);
          -ms-transform: translateY(1px);
              transform: translateY(1px); }
  .ac_section_divider[data-s-divider-type="spiked"] .ac_section_divider_top {
    top: -19px;
    position: absolute;
    z-index: 11;
    width: 100%; }
  .ac_section_divider[data-s-divider-type="spiked"] .ac_section_divider_bottom {
    position: absolute;
    z-index: 11;
    width: 100%;
    bottom: -25px; }
    .ac_section_divider[data-s-divider-type="spiked"] .ac_section_divider_bottom svg {
      -webkit-transform: rotate(180deg);
          -ms-transform: rotate(180deg);
              transform: rotate(180deg); }
  .ac_section_divider[data-s-divider-type="spiked"] svg {
    height: 20px;
    width: 100%; }
  .ac_section_divider[data-s-divider-type="spiked-small"] .ac_section_divider_top {
    top: -16px;
    position: absolute;
    z-index: 11;
    width: 100%; }
  .ac_section_divider[data-s-divider-type="spiked-small"] .ac_section_divider_bottom {
    position: absolute;
    z-index: 11;
    width: 100%;
    bottom: -20px; }
    .ac_section_divider[data-s-divider-type="spiked-small"] .ac_section_divider_bottom svg {
      -webkit-transform: rotate(180deg);
          -ms-transform: rotate(180deg);
              transform: rotate(180deg); }
  .ac_section_divider[data-s-divider-type="spiked-small"] svg {
    height: 16px;
    width: 100%; }

/* PART - SECTION HEADING
--------------------------------------------------------------------------------------------*/
.ac_heading {
  margin: 0 auto; }
  @media print, screen and (min-width: 50em) {
    .ac_heading.v_title-centered_button-right .ac_heading_title {
      text-align: center; } }
  @media print, screen and (min-width: 50em) {
    .ac_heading.v_title-centered_button-right .ac_heading_link {
      position: absolute;
      right: 0;
      top: 1em; } }
  .ac_heading.v_title-centered_button-centered .ac_heading_link,
  .ac_heading.v_title-centered_button-centered .ac_heading_title {
    text-align: center; }
  .ac_heading.v_title-left_button-right .ac_heading_container {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center; }

.ac_heading_container {
  padding: 0 20px;
  position: relative; }

.ac_heading_title {
  margin-bottom: 1em; }

.ac_heading_link {
  white-space: nowrap; }

/* PART - SOCIALS
--------------------------------------------------------------------------------------------*/
.ac_socials {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex; }
  @media screen and (max-width: 39.9375em) {
    .ac_socials {
      -webkit-justify-content: center;
          -ms-flex-pack: center;
              justify-content: center; } }
  .ac_socials.v_smaller .ac_socials_link_icon {
    width: 3em;
    height: 3em;
    padding: 0.375em; }
    .ac_socials.v_smaller .ac_socials_link_icon svg {
      width: 2.25em;
      height: 2.25em; }
  .ac_socials.v_smallest .ac_socials_link_icon {
    width: 2em;
    height: 2em;
    padding: 0.25em; }
    .ac_socials.v_smallest .ac_socials_link_icon svg {
      width: 1.5em;
      height: 1.5em; }
  .ac_socials.v_hide_text .ac_socials_link_text {
    display: none; }
  @media screen and (max-width: 39.9375em) {
    .ac_socials.v_collapse-on-small {
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column; }
      .ac_socials.v_collapse-on-small .ac_socials_link {
        margin-bottom: 0.6em; } }

.ac_socials_link {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  margin-right: 0.3em;
  margin-left: 0.3em; }

.ac_socials_link_icon {
  width: 4em;
  height: 4em;
  padding: 0.5em;
  background: #222222;
  border-radius: 100%;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  transition: all 0.3s ease; }
  .ac_socials_link_icon svg {
    width: 3em;
    height: 3em;
    fill: #ffffff;
    transition: all 0.3s ease; }

.ac_socials_link_text {
  margin-left: 0.6em; }

/* FOOTERS
--------------------------------------------------------------------------------------------*/
/* FOOTER 1 - 1
--------------------------------------------------------------------------------------------*/
[data-f-type="footer-1"] {
  /*  FOOTER 1 - GLOBALS
--------------------------------------------------------------------------------------------*/
  /*--------------------------------------------------------------------------------------------*/
  background: #000000;
  font-size: 90%; }
  [data-f-type="footer-1"] .ac_footer_primary {
    background: #000000; }
    [data-f-type="footer-1"] .ac_footer_primary * {
      color: #ffffff; }
  [data-f-type="footer-1"] .ac_footer_primary_container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 40px 10px;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    @media screen and (max-width: 64em) {
      [data-f-type="footer-1"] .ac_footer_primary_container {
        padding-bottom: 0; } }
  [data-f-type="footer-1"] .ac_footer_primary_column {
    padding: 0 10px;
    width: 100%; }
    @media screen and (max-width: 64em) {
      [data-f-type="footer-1"] .ac_footer_primary_column {
        margin-bottom: 40px; } }
    @media print, screen and (min-width: 50em) {
      [data-f-type="footer-1"] .ac_footer_primary_column:nth-child(1) {
        -webkit-flex: 0 1 20%;
            -ms-flex: 0 1 20%;
                flex: 0 1 20%;
        max-width: 20%; }
      [data-f-type="footer-1"] .ac_footer_primary_column:nth-child(2) {
        -webkit-flex: 0 1 40%;
            -ms-flex: 0 1 40%;
                flex: 0 1 40%;
        max-width: 40%; }
      [data-f-type="footer-1"] .ac_footer_primary_column:nth-child(3) {
        -webkit-flex: 0 1 20%;
            -ms-flex: 0 1 20%;
                flex: 0 1 20%;
        max-width: 20%; }
      [data-f-type="footer-1"] .ac_footer_primary_column:nth-child(4) {
        -webkit-flex: 0 1 20%;
            -ms-flex: 0 1 20%;
                flex: 0 1 20%;
        max-width: 20%; } }
    @media screen and (max-width: 49.9375em) {
      [data-f-type="footer-1"] .ac_footer_primary_column {
        text-align: center; } }
    @media screen and (max-width: 49.9375em) {
      [data-f-type="footer-1"] .ac_footer_primary_column:nth-child(1) {
        display: none; }
      [data-f-type="footer-1"] .ac_footer_primary_column:nth-child(3) {
        display: none; } }
  [data-f-type="footer-1"] .ac_footer_primary_link {
    color: white; }
    [data-f-type="footer-1"] .ac_footer_primary_link:hover {
      color: rgba(255, 255, 255, 0.7); }
  [data-f-type="footer-1"] .ac_footer_secondary {
    background: rgba(255, 255, 255, 0.1); }
    [data-f-type="footer-1"] .ac_footer_secondary * {
      color: rgba(255, 255, 255, 0.5); }
  [data-f-type="footer-1"] .ac_footer_secondary_container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 10px 10px;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center; }
  [data-f-type="footer-1"] .ac_footer_secondary_column {
    padding: 0 10px;
    width: 100%; }
    @media print, screen and (min-width: 50em) {
      [data-f-type="footer-1"] .ac_footer_secondary_column:nth-child(1) {
        -webkit-flex: 0 1 50%;
            -ms-flex: 0 1 50%;
                flex: 0 1 50%;
        max-width: 50%; }
      [data-f-type="footer-1"] .ac_footer_secondary_column:nth-child(2) {
        -webkit-flex: 0 1 50%;
            -ms-flex: 0 1 50%;
                flex: 0 1 50%;
        max-width: 50%; } }
    @media screen and (max-width: 49.9375em) {
      [data-f-type="footer-1"] .ac_footer_secondary_column {
        text-align: center;
        margin-bottom: 20px; }
        [data-f-type="footer-1"] .ac_footer_secondary_column .ac_footer_secondary_link,
        [data-f-type="footer-1"] .ac_footer_secondary_column .ac_footer_secondary_text {
          display: block; } }
    @media print, screen and (min-width: 50em) {
      [data-f-type="footer-1"] .ac_footer_secondary_column {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-align-items: center;
            -ms-flex-align: center;
                align-items: center; }
        [data-f-type="footer-1"] .ac_footer_secondary_column .ac_footer_secondary_link,
        [data-f-type="footer-1"] .ac_footer_secondary_column .ac_footer_secondary_text {
          margin-right: 10px; }
        [data-f-type="footer-1"] .ac_footer_secondary_column:nth-child(1) {
          -webkit-justify-content: flex-start;
              -ms-flex-pack: start;
                  justify-content: flex-start; }
        [data-f-type="footer-1"] .ac_footer_secondary_column:nth-child(2) {
          -webkit-justify-content: flex-end;
              -ms-flex-pack: end;
                  justify-content: flex-end; }
          [data-f-type="footer-1"] .ac_footer_secondary_column:nth-child(2) .ac_footer_secondary_link,
          [data-f-type="footer-1"] .ac_footer_secondary_column:nth-child(2) .ac_footer_secondary_text {
            margin-left: 10px; } }
  [data-f-type="footer-1"] .ac_footer_secondary_text {
    white-space: nowrap; }
  [data-f-type="footer-1"] .ac_footer_secondary_link {
    color: rgba(255, 255, 255, 0.5);
    white-space: nowrap; }
    [data-f-type="footer-1"] .ac_footer_secondary_link:hover {
      color: rgba(255, 255, 255, 0.9); }
  [data-f-type="footer-1"] .ac_socials {
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
  @media screen and (max-width: 49.9375em) {
    [data-f-type="footer-1"] .ac_socials {
      margin: 20px 0; } }
  [data-f-type="footer-1"] .ac_socials_link_icon {
    background: #000000; }
    [data-f-type="footer-1"] .ac_socials_link_icon svg {
      fill: #ffffff; }
    @media print, screen and (min-width: 64.0625em) {
      [data-f-type="footer-1"] .ac_socials_link_icon:hover {
        background: #ffffff; }
        [data-f-type="footer-1"] .ac_socials_link_icon:hover svg {
          fill: #000000; } }
  @media screen and (max-width: 49.9375em) {
    [data-f-type="footer-1"] {
      padding-bottom: 60px; } }
  @media screen and (min-width: 50em) and (max-width: 64em) {
    [data-f-type="footer-1"] {
      padding-bottom: 80px; } }
  [data-f-type="footer-1"] h2 {
    font-size: 160%;
    margin-bottom: 20px;
    opacity: .5; }
  [data-f-type="footer-1"] ul {
    list-style: none;
    margin: 0; }
  [data-f-type="footer-1"] .ac_footer_column:nth-child(2) .ac_footer_link {
    line-height: 1.3;
    margin-bottom: 20px; }
  [data-f-type="footer-1"] .ac_footer_primary_link {
    display: block; }
  [data-f-type="footer-1"] .ac_footer_primary_link_copy_above {
    text-transform: uppercase;
    display: block;
    opacity: .5;
    font-size: 80%; }
  [data-f-type="footer-1"] .ac_footer_secondary {
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 90%; }
  [data-f-type="footer-1"] .ac_footer_secondary_link {
    display: block; }

/* MENUS
--------------------------------------------------------------------------------------------*/
/* SECTION - MENU 2
--------------------------------------------------------------------------------------------

// for menus we use a global scope, so we can address the body aswell

*/
/* MENU 2
--------------------------------------------------------------------------------------------*/
[data-m-type="menu-2"] {
  position: relative;
  background: #ffffff; }
  @media screen and (max-width: 49.9375em) {
    [data-m-type="menu-2"] {
      width: 100%;
      z-index: 2222;
      position: fixed;
      box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1); } }
  [data-m-type="menu-2"] ul.menu.dropdown {
    list-style: none;
    margin: 0;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
    [data-m-type="menu-2"] ul.menu.dropdown a {
      margin-right: 20px; }
    [data-m-type="menu-2"] ul.menu.dropdown.v_has-items-right a {
      margin-right: inherit;
      margin-left: 20px; }
  [data-m-type="menu-2"] ul.is-dropdown-submenu {
    list-style: none;
    margin: 0;
    padding: .4em 0; }
    [data-m-type="menu-2"] ul.is-dropdown-submenu li.is-submenu-item {
      line-height: 2; }
    [data-m-type="menu-2"] ul.is-dropdown-submenu a {
      width: 100%;
      display: inline-block;
      padding: 0 1em; }
  [data-m-type="menu-2"] a {
    white-space: nowrap; }
  @media screen and (max-width: 49.9375em) {
    [data-m-type="menu-2"] + .main-container {
      padding-top: 70px; } }
  [data-m-type="menu-2"] .search-form {
    padding-right: 10px; }

.ac_menu-2_cta {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }

.ac_menu-2_cta_link {
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }
  .ac_menu-2_cta_link svg {
    width: 1.6em;
    height: 1.6em; }

.ac_menu-2_divider_after {
  position: relative;
  padding-right: 1em; }
  .ac_menu-2_divider_after:after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    width: 2px;
    border-right: solid 1px rgba(0, 0, 0, 0.1); }

.ac_menu-2_divider_before {
  position: relative;
  padding-left: 1em; }
  .ac_menu-2_divider_before:after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 2px;
    border-left: solid 1px rgba(0, 0, 0, 0.1); }

.ac_menu-2_sticky_container {
  margin: 0 auto;
  transition: height .3s ease; }

.ac_menu-2_sticky {
  width: 100%;
  z-index: 2221;
  transition: background-color .3s ease; }
  .ac_menu-2_sticky.is-stuck {
    background-color: #ffffff;
    z-index: 2222;
    box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1); }
    .ac_menu-2_sticky.is-stuck .ac_menu-2_logo_img {
      width: 98px; }
  @media screen and (max-width: 49.9375em) {
    .ac_menu-2_sticky {
      display: none; } }

.ac_menu-2_logo_container {
  padding: 20px 0; }
  @media screen and (max-width: 49.9375em) {
    .ac_menu-2_logo_container {
      padding: 0; } }
  @media print, screen and (min-width: 50em) {
    .ac_menu-2_logo_container {
      -webkit-flex: 0 0 140px;
          -ms-flex: 0 0 140px;
              flex: 0 0 140px;
      margin-right: 20px; } }

a.ac_menu-2_logo_link {
  will-change: contents;
  transition: opacity .3s ease;
  margin: 0; }
  a.ac_menu-2_logo_link:hover {
    opacity: .8; }

.ac_menu-2_logo_img {
  width: 140px;
  transition: width .3s ease; }
  @media screen and (max-width: 49.9375em) {
    .ac_menu-2_logo_img {
      height: 50px;
      width: initial; } }

@media screen and (max-width: 49.9375em) {
  .ac_menu-2_bar_top {
    display: none; } }

.ac_menu-2_bar_top {
  width: 100%;
  padding: 10px 20px;
  position: relative;
  z-index: 2223;
  background: #f0f0f0; }

.ac_menu-2_bar_top_container {
  padding: 0 20px;
  max-width: 1000px;
  margin: 0 auto;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between; }

.ac_menu-2_bar_top_content {
  line-height: 2; }

.ac_menu-2_main {
  position: relative;
  margin: 0 auto;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  z-index: 2222;
  padding: 0 20px;
  max-width: 1000px;
  background: #ffffff; }
  @media screen and (max-width: 49.9375em) {
    .ac_menu-2_main {
      padding: 10px; } }

@media print, screen and (min-width: 50em) {
  .ac_menu-2_main_container {
    width: 100%;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    transition: opacity .3s ease, visibility 0s .6s; } }

.ac_menu-2_main_content {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-align-items: baseline;
      -ms-flex-align: baseline;
          align-items: baseline; }
  @media screen and (max-width: 49.9375em) {
    .ac_menu-2_main_content {
      display: none; } }

@media screen and (max-width: 49.9375em) {
  .ac_menu-2_bar_bottom {
    display: none; } }

.ac_menu-2_bar_bottom {
  width: 100%;
  padding: 10px 20px;
  position: relative;
  z-index: 2223;
  background: #f0f0f0; }

.ac_menu-2_bar_bottom_container {
  padding: 0 20px;
  max-width: 1000px;
  margin: 0 auto;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between; }

.ac_menu-2_bar_bottom_content {
  line-height: 2; }

.ac_menu-2_btn-search {
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }
  .ac_menu-2_btn-search svg {
    width: 1.6em;
    height: 1.6em; }

.ac_menu-2_mobile_content {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-flex-grow: 1;
      -ms-flex-positive: 1;
          flex-grow: 1; }
  @media print, screen and (min-width: 50em) {
    .ac_menu-2_mobile_content {
      display: none; } }

.ac_menu-2_mobile_content_divider {
  width: 1px;
  margin: 0 1em;
  background: rgba(0, 0, 0, 0.1); }

.ac_menu-2_mobile_btn {
  height: 50px;
  width: 50px;
  padding: 12.5px 12.5px; }
  .ac_menu-2_mobile_btn svg {
    width: 25px !important;
    height: 25px !important;
    fill: #000000; }

.ac_menu-2_mobile_btn-hamburger {
  height: 50px;
  width: 50px;
  padding: 12px 10px; }
  .ac_menu-2_mobile_btn-hamburger .burger-icon {
    position: relative;
    margin-top: 6px;
    margin-bottom: 6px;
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none; }
    .ac_menu-2_mobile_btn-hamburger .burger-icon, .ac_menu-2_mobile_btn-hamburger .burger-icon::before, .ac_menu-2_mobile_btn-hamburger .burger-icon::after {
      display: block;
      width: 25px;
      height: 2px;
      background-color: #000000;
      transition-property: background-color, -webkit-transform;
      transition-property: background-color, transform;
      transition-property: background-color, transform, -webkit-transform;
      transition-duration: 0.3s; }
    .ac_menu-2_mobile_btn-hamburger .burger-icon::before, .ac_menu-2_mobile_btn-hamburger .burger-icon::after {
      position: absolute;
      content: ""; }
    .ac_menu-2_mobile_btn-hamburger .burger-icon::before {
      top: -6px; }
    .ac_menu-2_mobile_btn-hamburger .burger-icon::after {
      top: 6px; }
  @media print, screen and (min-width: 50em) {
    .ac_menu-2_mobile_btn-hamburger {
      display: none; } }

body.s_is-open_menu-mobile .burger-icon {
  background-color: transparent; }

body.s_is-open_menu-mobile .burger-icon::before {
  -webkit-transform: translateY(6px) rotate(45deg);
  -ms-transform: translateY(6px) rotate(45deg);
  transform: translateY(6px) rotate(45deg); }

body.s_is-open_menu-mobile .burger-icon::after {
  -webkit-transform: translateY(-6px) rotate(-45deg);
  -ms-transform: translateY(-6px) rotate(-45deg);
  transform: translateY(-6px) rotate(-45deg); }

.ac_menu-2_overlay_container {
  position: fixed;
  z-index: 2221;
  width: 400px;
  height: 100%;
  top: 0;
  right: 0;
  background: #fafafd;
  -webkit-transform: translateX(400px);
      -ms-transform: translateX(400px);
          transform: translateX(400px);
  transition: -webkit-transform .3s ease;
  transition: transform .3s ease;
  transition: transform .3s ease, -webkit-transform .3s ease;
  padding-top: 70px; }
  @media screen and (max-width: 39.9375em) {
    .ac_menu-2_overlay_container {
      width: 90vw;
      -webkit-transform: translateX(100%);
          -ms-transform: translateX(100%);
              transform: translateX(100%); } }
  @media print, screen and (min-width: 50em) {
    .ac_menu-2_overlay_container {
      display: none; } }

.ac_menu-2_overlay_scroll_container {
  overflow: scroll;
  -webkit-overflow-scrolling: touch;
  width: 100%;
  height: 100%; }

.ac_menu-2_overlay_scroll_container_inner {
  min-height: 100vh; }

.ac_menu-2_overlay_menu_container {
  padding: 20px; }

ul.ac_menu-2_overlay_menu_primary {
  list-style: none;
  margin: 0;
  border-top: solid 1px rgba(102, 102, 102, 0.2);
  padding-bottom: 2em; }
  ul.ac_menu-2_overlay_menu_primary a {
    display: block;
    text-align: center; }
  ul.ac_menu-2_overlay_menu_primary > li {
    border-bottom: solid 1px rgba(102, 102, 102, 0.2); }
    ul.ac_menu-2_overlay_menu_primary > li > a {
      padding: 10px 0; }
  ul.ac_menu-2_overlay_menu_primary ul.is-accordion-submenu {
    list-style: none;
    margin-left: 1em;
    margin-bottom: 1em; }
    ul.ac_menu-2_overlay_menu_primary ul.is-accordion-submenu a {
      padding: 5px 0; }

ul.ac_menu-2_overlay_menu_secondary {
  list-style: none;
  margin: 0; }
  ul.ac_menu-2_overlay_menu_secondary a {
    display: block;
    text-align: center;
    padding: 5px 0; }

body.s_is-open_menu-mobile {
  overflow: hidden; }
  body.s_is-open_menu-mobile .ac_menu-2_overlay_container {
    -webkit-transform: translateX(0);
        -ms-transform: translateX(0);
            transform: translateX(0); }

.ac_menu-2_overlay_backdrop {
  position: fixed;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.8);
  z-index: 2220;
  height: 0;
  opacity: 0;
  transition: opacity .3s ease .3s, height 0s .6s; }
  @media print, screen and (min-width: 50em) {
    .ac_menu-2_overlay_backdrop {
      display: none; } }

body.s_is-open_menu-mobile .ac_menu-2_overlay_backdrop {
  height: 100%;
  opacity: 1;
  transition: height 0s, opacity .3s ease; }

.ac_menu-2_search_container {
  position: absolute;
  top: 50%;
  right: 0;
  width: 50%;
  -webkit-transform: translateY(-50%) translateX(-2em);
      -ms-transform: translateY(-50%) translateX(-2em);
          transform: translateY(-50%) translateX(-2em);
  opacity: 0;
  pointer-events: none;
  transition: all .3s ease; }
  @media screen and (max-width: 49.9375em) {
    .ac_menu-2_search_container {
      top: 50%;
      right: 1em; } }

body.IE10 .ac_menu-2_search_container {
  display: none; }

.ac_menu-2_search_input {
  margin: 0; }

.ac_menu-2_search_close {
  position: absolute;
  right: .7em;
  top: 0;
  width: 3em;
  height: 3em;
  padding: .7em; }
  .ac_menu-2_search_close svg {
    width: 1.6em;
    height: 1.6em;
    fill: #000000; }

body.s_is-open_menu-search.IE10 .ac_menu-2_search_container {
  display: block; }

body.s_is-open_menu-search .ac_menu-2_search_container {
  -webkit-transform: translateX(0) translateY(-50%);
      -ms-transform: translateX(0) translateY(-50%);
          transform: translateX(0) translateY(-50%);
  opacity: 1;
  pointer-events: auto; }
  @media screen and (max-width: 49.9375em) {
    body.s_is-open_menu-search .ac_menu-2_search_container {
      -webkit-transform: translateX(0) translateY(-50%);
          -ms-transform: translateX(0) translateY(-50%);
              transform: translateX(0) translateY(-50%); } }

.ac_socials_link_icon {
  background: #ffffff; }
  .ac_socials_link_icon svg {
    fill: #000000; }
  @media print, screen and (min-width: 64.0625em) {
    .ac_socials_link_icon:hover {
      background: #000000; }
      .ac_socials_link_icon:hover svg {
        fill: #ffffff; } }

/*--------------------------------------------------------------------------------------------*/
/* MENU-101_1
--------------------------------------------------------------------------------------------*/
/* AC_menu-101
--------------------------------------------------------------------------------------------*/
[data-m-type="menu-101"] {
  width: 180px;
  z-index: 111;
  background: #ffffff; }
  @media screen and (max-width: 49.9375em) {
    [data-m-type="menu-101"] {
      width: 100%;
      position: fixed; } }
  @media print, screen and (min-width: 50em) {
    [data-m-type="menu-101"] {
      position: fixed; } }
  [data-m-type="menu-101"] ul.menu.vertical,
  [data-m-type="menu-101"] ul.menu.dropdown {
    list-style: none;
    margin-left: 0; }
    [data-m-type="menu-101"] ul.menu.vertical a,
    [data-m-type="menu-101"] ul.menu.dropdown a {
      display: block; }
  [data-m-type="menu-101"] ul.menu.is-dropdown-submenu {
    margin-left: 1em;
    padding: .4em 0;
    box-shadow: 5px 5px 10px rgba(34, 34, 34, 0.1); }
    [data-m-type="menu-101"] ul.menu.is-dropdown-submenu a {
      padding: .1em 1.2em; }
  [data-m-type="menu-101"] ul.is-accordion-submenu {
    list-style: none; }
  [data-m-type="menu-101"] a:hover {
    color: #670309; }
  @media screen and (max-width: 49.9375em) {
    [data-m-type="menu-101"] + .main-container {
      padding-top: 70px; } }
  @media print, screen and (min-width: 50em) {
    [data-m-type="menu-101"] + .main-container {
      padding-left: 180px; } }

@media screen and (max-width: 49.9375em) {
  .ac_menu-101_container {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    padding: 10px;
    position: relative;
    z-index: 111;
    background: #ffffff; } }

.ac_menu-101_logo_container {
  padding: 0; }

a.ac_menu-101_logo_link {
  will-change: contents;
  transition: opacity .3s ease; }
  a.ac_menu-101_logo_link:hover {
    opacity: .8; }

@media print, screen and (min-width: 50em) {
  .ac_menu-101_logo_mobile_container {
    display: none; } }

@media screen and (max-width: 49.9375em) {
  .ac_menu-101_logo_mobile_img {
    max-height: 50px;
    width: initial; } }

.ac_menu-101_main {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  width: 180px;
  box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1); }
  @media print, screen and (min-width: 50em) {
    .ac_menu-101_main {
      position: absolute;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column;
      height: 100vh;
      padding: 20px;
      -webkit-justify-content: space-between;
          -ms-flex-pack: justify;
              justify-content: space-between; } }
  @media screen and (min-width: 50em) and (max-width: 64em) {
    .ac_menu-101_main {
      padding-bottom: 110px; } }
  @media screen and (max-width: 49.9375em) {
    .ac_menu-101_main {
      display: none; } }

.ac_menu-101_main_menu {
  margin-top: 2em; }

.ac_menu-101_mobile_content {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-flex-grow: 1;
      -ms-flex-positive: 1;
          flex-grow: 1; }
  @media print, screen and (min-width: 50em) {
    .ac_menu-101_mobile_content {
      display: none; } }

.ac_menu-101_mobile_content_divider {
  width: 1px;
  margin: 0 1em;
  background: #f0f0f0; }

.ac_menu-101_mobile_btn {
  height: 50px;
  width: 50px;
  padding: 12.5px 12.5px; }
  .ac_menu-101_mobile_btn svg {
    width: 25px !important;
    height: 25px !important; }

.ac_menu-101_mobile_btn-hamburger {
  height: 50px;
  width: 50px;
  padding: 12px 10px; }
  .ac_menu-101_mobile_btn-hamburger .burger-icon {
    position: relative;
    margin-top: 6px;
    margin-bottom: 6px;
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none; }
    .ac_menu-101_mobile_btn-hamburger .burger-icon, .ac_menu-101_mobile_btn-hamburger .burger-icon::before, .ac_menu-101_mobile_btn-hamburger .burger-icon::after {
      display: block;
      width: 25px;
      height: 2px;
      background-color: #222222;
      transition-property: background-color, -webkit-transform;
      transition-property: background-color, transform;
      transition-property: background-color, transform, -webkit-transform;
      transition-duration: 0.3s; }
    .ac_menu-101_mobile_btn-hamburger .burger-icon::before, .ac_menu-101_mobile_btn-hamburger .burger-icon::after {
      position: absolute;
      content: ""; }
    .ac_menu-101_mobile_btn-hamburger .burger-icon::before {
      top: -6px; }
    .ac_menu-101_mobile_btn-hamburger .burger-icon::after {
      top: 6px; }
  @media print, screen and (min-width: 50em) {
    .ac_menu-101_mobile_btn-hamburger {
      display: none; } }

body.s_is-open_menu-mobile .burger-icon {
  background-color: transparent; }

body.s_is-open_menu-mobile .burger-icon::before {
  -webkit-transform: translateY(6px) rotate(45deg);
  -ms-transform: translateY(6px) rotate(45deg);
  transform: translateY(6px) rotate(45deg); }

body.s_is-open_menu-mobile .burger-icon::after {
  -webkit-transform: translateY(-6px) rotate(-45deg);
  -ms-transform: translateY(-6px) rotate(-45deg);
  transform: translateY(-6px) rotate(-45deg); }

.ac_menu-101_overlay_container {
  position: fixed;
  z-index: 110;
  width: 400px;
  height: 100%;
  top: 0;
  right: 0;
  background: #fafafd;
  -webkit-transform: translateX(400px);
      -ms-transform: translateX(400px);
          transform: translateX(400px);
  transition: -webkit-transform .3s ease;
  transition: transform .3s ease;
  transition: transform .3s ease, -webkit-transform .3s ease;
  padding-top: 70px; }
  @media screen and (max-width: 39.9375em) {
    .ac_menu-101_overlay_container {
      width: 90vw;
      -webkit-transform: translateX(100%);
          -ms-transform: translateX(100%);
              transform: translateX(100%); } }
  @media print, screen and (min-width: 50em) {
    .ac_menu-101_overlay_container {
      display: none; } }

.ac_menu-101_overlay_scroll_container {
  overflow: scroll;
  -webkit-overflow-scrolling: touch;
  width: 100%;
  height: 100%; }

.ac_menu-101_overlay_scroll_container_inner {
  min-height: 100vh; }

.ac_menu-101_overlay_menu_container {
  padding: 20px; }

ul.ac_menu-101_overlay_menu_primary {
  list-style: none;
  margin: 0;
  border-top: solid 1px rgba(102, 102, 102, 0.2);
  padding-bottom: 2em; }
  ul.ac_menu-101_overlay_menu_primary a {
    display: block;
    text-align: center; }
  ul.ac_menu-101_overlay_menu_primary > li {
    border-bottom: solid 1px rgba(102, 102, 102, 0.2); }
    ul.ac_menu-101_overlay_menu_primary > li > a {
      padding: 10px 0; }
  ul.ac_menu-101_overlay_menu_primary ul.is-accordion-submenu {
    list-style: none;
    margin-left: 1em;
    margin-bottom: 1em; }
    ul.ac_menu-101_overlay_menu_primary ul.is-accordion-submenu a {
      padding: 5px 0; }

ul.ac_menu-101_overlay_menu_secondary {
  list-style: none;
  margin: 0; }
  ul.ac_menu-101_overlay_menu_secondary a {
    display: block;
    text-align: center;
    padding: 5px 0; }

body.s_is-open_menu-mobile {
  overflow: hidden; }
  body.s_is-open_menu-mobile .ac_menu-101_overlay_container {
    -webkit-transform: translateX(0);
        -ms-transform: translateX(0);
            transform: translateX(0); }

.ac_menu-101_overlay_backdrop {
  position: fixed;
  width: 100%;
  height: 100%;
  background: rgba(204, 204, 204, 0.8);
  z-index: 109;
  height: 0;
  opacity: 0;
  transition: opacity .3s ease .3s, height 0s .6s; }
  @media print, screen and (min-width: 50em) {
    .ac_menu-101_overlay_backdrop {
      display: none; } }

body.s_is-open_menu-mobile .ac_menu-101_overlay_backdrop {
  height: 100%;
  opacity: 1;
  transition: height 0s, opacity .3s ease; }

.ac_menu-101_search_container {
  position: absolute;
  top: 0;
  right: 0;
  width: 50%;
  -webkit-transform: translateX(2em);
      -ms-transform: translateX(2em);
          transform: translateX(2em);
  opacity: 0;
  pointer-events: none;
  transition: all .3s ease; }
  @media screen and (max-width: 49.9375em) {
    .ac_menu-101_search_container {
      top: 50%;
      right: 1em;
      -webkit-transform: translateY(-50%) translateX(-2em);
          -ms-transform: translateY(-50%) translateX(-2em);
              transform: translateY(-50%) translateX(-2em); } }

body.IE10 .ac_menu-101_search_container {
  display: none; }

.ac_menu-101_search_input {
  margin: 0; }

.ac_menu-101_search_close {
  position: absolute;
  right: .7em;
  top: 0;
  width: 3em;
  height: 3em;
  padding: .7em; }
  .ac_menu-101_search_close svg {
    width: 1.6em;
    height: 1.6em;
    fill: #000000; }

body.s_is-open_menu-search.IE10 .ac_menu-101_search_container {
  display: block; }

body.s_is-open_menu-search .ac_menu-101_search_container {
  -webkit-transform: translateX(0) translateY(0);
      -ms-transform: translateX(0) translateY(0);
          transform: translateX(0) translateY(0);
  opacity: 1;
  pointer-events: auto; }
  @media screen and (max-width: 49.9375em) {
    body.s_is-open_menu-search .ac_menu-101_search_container {
      -webkit-transform: translateX(0) translateY(-50%);
          -ms-transform: translateX(0) translateY(-50%);
              transform: translateX(0) translateY(-50%); } }

.ac_socials_link_icon {
  background: #000000; }
  .ac_socials_link_icon svg {
    fill: #ffffff; }
  @media print, screen and (min-width: 64.0625em) {
    .ac_socials_link_icon:hover {
      background: rgba(0, 0, 0, 0.1); }
      .ac_socials_link_icon:hover svg {
        fill: #000000; } }

/* SECTIONS
--------------------------------------------------------------------------------------------*/
/* BRANDS - 4
--------------------------------------------------------------------------------------------*/
/* AC_S_BRANDS - GLOBALS
--------------------------------------------------------------------------------------------*/
[data-s-type="brands"] {
  position: relative;
  padding: 20px 0; }
  @media print, screen and (min-width: 50em) {
    [data-s-type="brands"] {
      padding: 0 0 10px 0; } }

.ac_brands_container {
  position: relative;
  z-index: 2;
  margin: 2em auto;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  padding: 0 10px; }

.ac_brands_item {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  margin-bottom: 1.4em;
  width: 50%;
  max-width: 50%;
  padding: 0 20px;
  padding: 0 10px; }
  .ac_brands_item.v_smaller-logo .ac_brands_item_logo {
    -webkit-transform: scale(0.8);
        -ms-transform: scale(0.8);
            transform: scale(0.8); }
  .ac_brands_item.v_larger-logo .ac_brands_item_logo {
    -webkit-transform: scale(1.2);
        -ms-transform: scale(1.2);
            transform: scale(1.2); }
  @media print, screen and (min-width: 64.0625em) {
    .ac_brands_item:hover .ac_brands_item_logo {
      opacity: 0.6; }
    .ac_brands_item:hover .ac_brands_item_description {
      color: #000000; } }

.ac_brands_item_container {
  height: 100%;
  position: relative;
  background: rgba(0, 0, 0, 0.02);
  padding: 20px 0;
  box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1); }

.ac_brands_item_description {
  display: none; }

.ac_brands_item_logo_container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center; }
  @media print, screen and (min-width: 40em) {
    .ac_brands_item_logo_container {
      padding: 0; } }

.ac_brands_item_logo {
  -webkit-filter: brightness(50%) hue-rotate(30deg);
          filter: brightness(50%) hue-rotate(30deg);
  width: 60%;
  height: 100px;
  max-width: 200px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center center;
  transition: opacity 0.3s ease;
  opacity: 1; }

/*--------------------------------------------------------------------------------------------*/
/* CTA
--------------------------------------------------------------------------------------------*/
[data-s-type="cta"] {
  /* AC_S_CTA - GLOBALS
--------------------------------------------------------------------------------------------*/
  /*--------------------------------------------------------------------------------------------*/
  /*--------------------------------------------------------------------------------------------*/ }
  [data-s-type="cta"] .ac_cta_container {
    max-width: 1000px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
    padding: 0 20px; }
    [data-s-type="cta"] .ac_cta_container p {
      line-height: 1.5; }
  [data-s-type="cta"] .ac_cta_column {
    width: 100%; }
    @media print, screen and (min-width: 50em) {
      [data-s-type="cta"] .ac_cta_column .button {
        margin-right: 10px;
        margin-bottom: 0px; } }
    [data-s-type="cta"] .ac_cta_column img {
      border-bottom: solid 1px #ffffff;
      max-width: 220px; }
  [data-s-type="cta"] h2 {
    margin-bottom: 20px; }
  [data-s-type="cta"] .ac_cta_column {
    padding: 20px 0;
    width: 100%;
    text-align: center; }

/* CTA TEXT-BUTTON
--------------------------------------------------------------------------------------------*/
[data-s-type="cta-text-button"] {
  /* AC_S_CTA - GLOBALS
--------------------------------------------------------------------------------------------*/
  /*--------------------------------------------------------------------------------------------*/
  /*--------------------------------------------------------------------------------------------*/ }
  [data-s-type="cta-text-button"] .ac_cta_container {
    max-width: 1000px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
    padding: 0 20px; }
    [data-s-type="cta-text-button"] .ac_cta_container p {
      line-height: 1.5; }
  [data-s-type="cta-text-button"] .ac_cta_column {
    width: 100%; }
    @media print, screen and (min-width: 50em) {
      [data-s-type="cta-text-button"] .ac_cta_column .button {
        margin-right: 10px;
        margin-bottom: 0px; } }
    [data-s-type="cta-text-button"] .ac_cta_column img {
      border-bottom: solid 1px #ffffff;
      max-width: 220px; }
  [data-s-type="cta-text-button"] h2 {
    margin-bottom: 0; }
  @media print, screen and (min-width: 50em) {
    [data-s-type="cta-text-button"] .ac_cta_container {
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-align-items: center;
          -ms-flex-align: center;
              align-items: center; } }
  [data-s-type="cta-text-button"] .ac_cta_column {
    width: 100%;
    text-align: center; }
    [data-s-type="cta-text-button"] .ac_cta_column:nth-child(1) {
      padding-bottom: 20px;
      border-bottom: solid 1px rgba(255, 255, 255, 0.2);
      margin-bottom: 40px; }
    @media print, screen and (min-width: 50em) {
      [data-s-type="cta-text-button"] .ac_cta_column:nth-child(1) {
        width: 50%;
        max-width: 50%;
        padding-right: 20px;
        padding-bottom: inherit;
        border-bottom: inherit;
        margin-bottom: inherit;
        border-right: solid 1px rgba(255, 255, 255, 0.2);
        margin-right: 20px;
        text-align: left;
        text-align: right; }
      [data-s-type="cta-text-button"] .ac_cta_column:nth-child(2) {
        width: 50%;
        max-width: 50%;
        text-align: left; } }
  [data-s-type="cta-text-button"] .ac_socials {
    -webkit-justify-content: flex-end;
        -ms-flex-pack: end;
            justify-content: flex-end; }

/* CTA TEXT-IMAGE
--------------------------------------------------------------------------------------------*/
[data-s-type="cta-text-image"] {
  /* AC_S_CTA - GLOBALS
--------------------------------------------------------------------------------------------*/
  /*--------------------------------------------------------------------------------------------*/ }
  [data-s-type="cta-text-image"] .ac_cta_container {
    max-width: 1000px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
    padding: 0 20px; }
    [data-s-type="cta-text-image"] .ac_cta_container p {
      line-height: 1.5; }
  [data-s-type="cta-text-image"] .ac_cta_column {
    width: 100%; }
    @media print, screen and (min-width: 50em) {
      [data-s-type="cta-text-image"] .ac_cta_column .button {
        margin-right: 10px;
        margin-bottom: 0px; } }
    [data-s-type="cta-text-image"] .ac_cta_column img {
      border-bottom: solid 1px rgba(255, 255, 255, 0.3);
      max-width: 220px; }
  @media print, screen and (min-width: 50em) {
    [data-s-type="cta-text-image"] .ac_cta_container {
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-align-items: center;
          -ms-flex-align: center;
              align-items: center; } }
  [data-s-type="cta-text-image"] .ac_cta_column {
    width: 100%;
    text-align: center; }
    @media print, screen and (min-width: 50em) {
      [data-s-type="cta-text-image"] .ac_cta_column:nth-child(1) {
        width: 60%;
        max-width: 60%;
        padding-right: 20px;
        padding-bottom: inherit;
        text-align: left;
        text-align: right; }
      [data-s-type="cta-text-image"] .ac_cta_column:nth-child(2) {
        width: 40%;
        max-width: 40%;
        text-align: left; } }
  [data-s-type="cta-text-image"] .ac_socials {
    -webkit-justify-content: flex-end;
        -ms-flex-pack: end;
            justify-content: flex-end; }

/* CTA TEXT-BUTTON
--------------------------------------------------------------------------------------------*/
[data-s-type="cta-text-socials"] {
  /* AC_S_CTA - GLOBALS
--------------------------------------------------------------------------------------------*/
  /*--------------------------------------------------------------------------------------------*/
  /*--------------------------------------------------------------------------------------------*/ }
  [data-s-type="cta-text-socials"] .ac_cta_container {
    max-width: 800px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
    padding: 0 20px; }
    [data-s-type="cta-text-socials"] .ac_cta_container p {
      line-height: 1.5; }
  [data-s-type="cta-text-socials"] .ac_cta_column {
    width: 100%; }
    @media print, screen and (min-width: 50em) {
      [data-s-type="cta-text-socials"] .ac_cta_column .button {
        margin-right: 10px;
        margin-bottom: 0px; } }
    [data-s-type="cta-text-socials"] .ac_cta_column img {
      border-bottom: solid 1px #ffffff;
      max-width: 220px; }
  [data-s-type="cta-text-socials"] h2 {
    margin-bottom: 20px; }
  [data-s-type="cta-text-socials"] .ac_cta_column {
    width: 100%;
    text-align: center; }
    [data-s-type="cta-text-socials"] .ac_cta_column:nth-child(1) {
      display: none; }
  [data-s-type="cta-text-socials"] .ac_socials {
    -webkit-justify-content: space-around;
        -ms-flex-pack: distribute;
            justify-content: space-around;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
  [data-s-type="cta-text-socials"] .ac_socials_link {
    padding: 10px 20px; }
    @media screen and (max-width: 39.9375em) {
      [data-s-type="cta-text-socials"] .ac_socials_link {
        width: 100%; } }

/* HERO - 2
--------------------------------------------------------------------------------------------*/
[data-s-type="hero"] {
  /* AC_S_HERO - GLOBALS
--------------------------------------------------------------------------------------------*/
  /*--------------------------------------------------------------------------------------------*/ }
  [data-s-type="hero"] .ac_hero_container {
    margin: 0 auto;
    height: 80vh;
    min-height: 500px;
    position: relative;
    display: block; }
    [data-s-type="hero"] .ac_hero_container:before {
      content: '';
      position: absolute;
      width: 100%;
      height: 25vh;
      background: linear-gradient(0deg, rgba(0, 0, 0, 0), black);
      z-index: 1; }
  [data-s-type="hero"] .ac_hero_slides {
    position: relative;
    z-index: 3;
    height: 100%;
    display: block;
    margin: 0 auto;
    max-height: 100%;
    overflow: hidden;
    opacity: 0;
    transition: opacity 0.3s ease; }
    [data-s-type="hero"] .ac_hero_slides.slick-initialized {
      max-height: inherit;
      opacity: 1; }
  [data-s-type="hero"] .ac_hero_slide {
    will-change: contents;
    position: relative; }
  [data-s-type="hero"] .ac_hero_slide_inner {
    max-width: 800px;
    margin: 0 auto;
    height: 100%;
    position: relative;
    z-index: 2;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    will-change: contents;
    padding: 0 20px; }
    @media screen and (min-width: 1150px) {
      [data-s-type="hero"] .ac_hero_slide_inner {
        padding: 0 20px; } }
  [data-s-type="hero"] .ac_hero_slide_content_container {
    -webkit-transform: translateY(-3em);
        -ms-transform: translateY(-3em);
            transform: translateY(-3em);
    will-change: contents; }
  [data-s-type="hero"] .ac_hero_slide_content {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  [data-s-type="hero"] .ac_hero_slide_content_inner {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    width: 100%;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
  [data-s-type="hero"] .ac_hero_slide_content_text {
    -webkit-flex: 0 1 100%;
        -ms-flex: 0 1 100%;
            flex: 0 1 100%;
    max-width: 100%; }
    @media print, screen and (min-width: 40em) {
      [data-s-type="hero"] .ac_hero_slide_content_text {
        -webkit-flex: 0 1 70%;
            -ms-flex: 0 1 70%;
                flex: 0 1 70%;
        max-width: 70%; } }
  [data-s-type="hero"] .ac_hero_slide_content_image {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-flex: 0 1 30%;
        -ms-flex: 0 1 30%;
            flex: 0 1 30%;
    max-width: 30%; }
    [data-s-type="hero"] .ac_hero_slide_content_image img {
      max-width: initial; }
    @media screen and (max-width: 39.9375em) {
      [data-s-type="hero"] .ac_hero_slide_content_image {
        position: absolute;
        right: 0;
        bottom: 0;
        z-index: -1;
        opacity: 0.4;
        max-width: initial; } }
  [data-s-type="hero"] .slick-dots button {
    border: solid 2px rgba(255, 255, 255, 0.5);
    background: transparent; }
  [data-s-type="hero"] .slick-dots .slick-active button {
    border: solid 2px rgba(255, 255, 255, 0.5);
    background: #ffffff; }
  [data-s-type="hero"] .slick-list {
    height: 100%; }
  [data-s-type="hero"] .slick-track {
    height: 100%; }
  [data-s-type="hero"] .slick-prev,
  [data-s-type="hero"] .slick-next {
    display: none !important;
    background: none;
    padding: 0;
    box-shadow: none;
    width: 1.5em;
    height: 1.5em; }
    @media screen and (min-width: 1150px) {
      [data-s-type="hero"] .slick-prev,
      [data-s-type="hero"] .slick-next {
        width: 2em;
        height: 2em; } }
    [data-s-type="hero"] .slick-prev svg,
    [data-s-type="hero"] .slick-next svg {
      fill: #ffffff;
      width: 1.5em;
      height: 1.5em;
      transition: all 0.3s ease; }
      @media screen and (min-width: 1150px) {
        [data-s-type="hero"] .slick-prev svg,
        [data-s-type="hero"] .slick-next svg {
          width: 2em;
          height: 2em; } }
    @media print, screen and (min-width: 64.0625em) {
      [data-s-type="hero"] .slick-prev:hover svg,
      [data-s-type="hero"] .slick-next:hover svg {
        fill: rgba(255, 255, 255, 0.5); } }
    @media screen and (min-width: 700px) {
      [data-s-type="hero"] .slick-prev,
      [data-s-type="hero"] .slick-next {
        display: block !important; } }
  [data-s-type="hero"] .slick-prev {
    top: initial;
    bottom: 10em;
    left: 50%;
    -webkit-transform: translateX(-10.5em);
        -ms-transform: translateX(-10.5em);
            transform: translateX(-10.5em); }
  [data-s-type="hero"] .slick-next {
    top: initial;
    bottom: 10em;
    left: 50%;
    -webkit-transform: translateX(9em);
        -ms-transform: translateX(9em);
            transform: translateX(9em); }
  [data-s-type="hero"] .slick-dots {
    bottom: 10em; }
  [data-s-type="hero"] .ac_hero_link_to-content {
    position: absolute;
    z-index: 1111;
    bottom: 4em;
    left: 50%;
    -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
            transform: translateX(-50%);
    display: none; }
    @media print, screen and (min-width: 50em) {
      [data-s-type="hero"] .ac_hero_link_to-content {
        display: block; } }
    @media print, screen and (min-width: 64.0625em) {
      [data-s-type="hero"] .ac_hero_link_to-content:hover {
        cursor: pointer; } }
    [data-s-type="hero"] .ac_hero_link_to-content .svg-container {
      width: 4em;
      height: 4em; }
    [data-s-type="hero"] .ac_hero_link_to-content svg {
      width: 4em;
      height: 4em;
      fill: #ffffff;
      transition: all 0.3s ease; }
    [data-s-type="hero"] .ac_hero_link_to-content:active {
      -webkit-transform: translateX(-50%) translateY(2px);
          -ms-transform: translateX(-50%) translateY(2px);
              transform: translateX(-50%) translateY(2px); }
    [data-s-type="hero"] .ac_hero_link_to-content:hover svg {
      fill: rgba(255, 255, 255, 0.5); }
  [data-s-type="hero"] h1, [data-s-type="hero"] h2, [data-s-type="hero"] h3 {
    line-height: 1; }
  [data-s-type="hero"] p {
    line-height: 1.5; }
  [data-s-type="hero"] *:focus {
    outline: none; }
  @media screen and (max-width: 49.9375em) {
    [data-s-type="hero"] .ac_hero_container {
      height: 50vh;
      min-height: 400px; } }
  @media screen and (max-width: 39.9375em) {
    [data-s-type="hero"] .ac_hero_slide_content_container {
      -webkit-transform: translateY(-1.5em);
          -ms-transform: translateY(-1.5em);
              transform: translateY(-1.5em); } }
  [data-s-type="hero"] .ac_hero_slide_content_text {
    color: #ffffff; }
  [data-s-type="hero"] .ac_hero_slide_content_text_title * {
    font-size: 140%;
    color: #ffffff; }
    @media print, screen and (min-width: 50em) {
      [data-s-type="hero"] .ac_hero_slide_content_text_title * {
        font-size: 180%; } }
  @media screen and (max-width: 39.9375em) {
    [data-s-type="hero"] .slick-dots {
      bottom: 2em; } }

/* AC_S_HERO_ALT - 1
--------------------------------------------------------------------------------------------*/
[data-s-type="hero-alt"] {
  /* AC_S_HERO - GLOBALS
--------------------------------------------------------------------------------------------*/
  /*--------------------------------------------------------------------------------------------*/
  position: relative; }
  [data-s-type="hero-alt"] .ac_hero_alt_container {
    margin: 0 auto;
    height: 150px;
    min-height: 200px;
    position: relative;
    display: block; }
    @media print, screen and (min-width: 50em) {
      [data-s-type="hero-alt"] .ac_hero_alt_container {
        height: 300px; } }
  [data-s-type="hero-alt"] .ac_hero_alt_slides {
    position: relative;
    z-index: 3;
    height: 100%;
    display: block;
    margin: 0 auto;
    max-height: 100%;
    overflow: hidden;
    opacity: 0;
    transition: opacity 0.3s ease; }
    [data-s-type="hero-alt"] .ac_hero_alt_slides.slick-initialized {
      max-height: inherit;
      opacity: 1; }
  [data-s-type="hero-alt"] .ac_hero_alt_slide {
    will-change: contents;
    position: relative; }
  [data-s-type="hero-alt"] .ac_hero_alt_slide_inner {
    max-width: 1000px;
    margin: 0 auto;
    height: 100%;
    position: relative;
    z-index: 2;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    will-change: contents;
    padding: 0 20px; }
    @media screen and (min-width: 0px) {
      [data-s-type="hero-alt"] .ac_hero_alt_slide_inner {
        padding: 0 80px; } }
  [data-s-type="hero-alt"] .ac_hero_alt_slide_content_container {
    will-change: contents; }
    @media print, screen and (min-width: 50em) {
      [data-s-type="hero-alt"] .ac_hero_alt_slide_content_container {
        -webkit-transform: translateY(-1em);
            -ms-transform: translateY(-1em);
                transform: translateY(-1em); } }
  [data-s-type="hero-alt"] .ac_hero_alt_slide_content {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  [data-s-type="hero-alt"] .ac_hero_alt_slide_content_inner {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    width: 100%;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
  [data-s-type="hero-alt"] .ac_hero_alt_slide_content_text {
    -webkit-flex: 0 1 100%;
        -ms-flex: 0 1 100%;
            flex: 0 1 100%;
    max-width: 100%;
    text-align: center; }
    @media print, screen and (min-width: 40em) {
      [data-s-type="hero-alt"] .ac_hero_alt_slide_content_text {
        -webkit-flex: 0 1 80%;
            -ms-flex: 0 1 80%;
                flex: 0 1 80%;
        max-width: 80%; } }
  [data-s-type="hero-alt"] .ac_hero_alt_slide_content_image {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    display: none; }
  [data-s-type="hero-alt"] .slick-list {
    height: 100%; }
  [data-s-type="hero-alt"] .slick-track {
    height: 100%; }
  [data-s-type="hero-alt"] .slick-prev,
  [data-s-type="hero-alt"] .slick-next {
    display: none !important;
    background: none;
    padding: 0;
    box-shadow: none;
    width: 1em;
    height: 1em; }
    @media screen and (min-width: 1150px) {
      [data-s-type="hero-alt"] .slick-prev,
      [data-s-type="hero-alt"] .slick-next {
        display: block !important; } }
    @media screen and (min-width: 1150px) {
      [data-s-type="hero-alt"] .slick-prev,
      [data-s-type="hero-alt"] .slick-next {
        width: 2em;
        height: 2em; } }
    [data-s-type="hero-alt"] .slick-prev svg,
    [data-s-type="hero-alt"] .slick-next svg {
      fill: white;
      width: 1em;
      height: 1em; }
      @media screen and (min-width: 1150px) {
        [data-s-type="hero-alt"] .slick-prev svg,
        [data-s-type="hero-alt"] .slick-next svg {
          width: 2em;
          height: 2em; } }
  [data-s-type="hero-alt"] .slick-prev {
    top: initial;
    bottom: 4em;
    left: 50%;
    -webkit-transform: translateX(6em);
        -ms-transform: translateX(6em);
            transform: translateX(6em); }
  [data-s-type="hero-alt"] .slick-next {
    top: initial;
    bottom: 4em;
    right: 50%;
    -webkit-transform: translateX(-6em);
        -ms-transform: translateX(-6em);
            transform: translateX(-6em); }
  [data-s-type="hero-alt"] .slick-dots {
    bottom: 4em; }
  [data-s-type="hero-alt"] .ac_hero_alt_backdrop {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 1;
    overflow: hidden; }
  [data-s-type="hero-alt"] .ac_hero_alt_backdrop_image-container {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0; }
  [data-s-type="hero-alt"] .ac_hero_alt_backdrop_image {
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 1;
    top: 0;
    left: 0;
    opacity: 0.4;
    mix-blend-mode: multiply; }
    @media print, screen and (min-width: 50em) {
      [data-s-type="hero-alt"] .ac_hero_alt_backdrop_image {
        opacity: 1;
        mix-blend-mode: normal;
        -webkit-filter: grayscale(0%);
                filter: grayscale(0%); } }
  [data-s-type="hero-alt"] .ac_hero_alt_backdrop_video-container {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 2; }
    [data-s-type="hero-alt"] .ac_hero_alt_backdrop_video-container video {
      position: absolute;
      top: 50%;
      left: 50%;
      min-width: 100%;
      min-height: 100%;
      width: auto;
      height: auto;
      -webkit-transform: translateX(-50%) translateY(-50%);
          -ms-transform: translateX(-50%) translateY(-50%);
              transform: translateX(-50%) translateY(-50%); }
  [data-s-type="hero-alt"] .ac_hero_alt_link_to-content {
    display: none; }
  [data-s-type="hero-alt"] h1, [data-s-type="hero-alt"] h2, [data-s-type="hero-alt"] h3 {
    line-height: 1; }
  [data-s-type="hero-alt"] p {
    line-height: 1.5; }
  [data-s-type="hero-alt"] *:focus {
    outline: none; }

/* IMAGE - 1
--------------------------------------------------------------------------------------------*/
[data-s-type="image"] {
  /* IMAGE - GLOBALS
--------------------------------------------------------------------------------------------*/
  position: relative;
  /*--------------------------------------------------------------------------------------------*/ }
  @media print, screen and (min-width: 64.0625em) {
    [data-s-type="image"] .ac_image {
      display: none; } }
  @media print, screen and (min-width: 64.0625em) {
    [data-s-type="image"] {
      min-height: 300px; } }

/* IMAGE - 1
--------------------------------------------------------------------------------------------*/
[data-s-type="image-bg-fixed"] {
  /* IMAGE - GLOBALS
--------------------------------------------------------------------------------------------*/
  position: relative;
  background: linear-gradient(135deg, #670309, #e30613);
  /*--------------------------------------------------------------------------------------------*/ }
  [data-s-type="image-bg-fixed"] .ac_image {
    position: absolute;
    width: 100%;
    height: 100%; }
    [data-s-type="image-bg-fixed"] .ac_image figure {
      position: absolute;
      width: 100%;
      height: 100%;
      opacity: .2;
      background-attachment: fixed; }
  @media print, screen and (min-width: 64.0625em) {
    [data-s-type="image-bg-fixed"] {
      height: 300px; } }

/* AC_S_IMAGE-GALLERY_FULL-SCREEN - 1
--------------------------------------------------------------------------------------------*/
/* AC_S_IMAGE-GALLERY_FULL-SCREEN - GLOBALS
--------------------------------------------------------------------------------------------*/
.ac_image-gallery_full-screen {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 4444;
  width: 100%;
  height: 0;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s ease, height 0s linear 0.3s, visibility 0s linear 0.3s; }
  .ac_image-gallery_full-screen.s_active {
    height: 100%;
    visibility: visible;
    opacity: 1;
    transition: visibility 0s linear, height 0s linear, opacity 0.3s ease 0.3s; }

.ac_image-gallery_full-screen_container {
  position: relative;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0; }

.image-gallery_full-screen_item_container {
  position: relative; }

.image-gallery_full-screen_item_content {
  position: absolute;
  bottom: 0;
  text-align: center;
  width: 100%;
  background: rgba(0, 0, 0, 0.9); }

.image-gallery_full-screen_item_content_inner {
  margin: 0 auto;
  max-width: 1000px;
  padding: 20px;
  color: #ffffff; }

.image-gallery_full-screen_item_image_container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 100vh; }

.ac_image-gallery_full-screen_close {
  position: fixed;
  width: 40px;
  height: 40px;
  z-index: 4445;
  top: 20px;
  right: 20px;
  display: none;
  padding: 12px;
  background: #ffffff;
  border-radius: 3px;
  transition: all 0.3s ease; }
  @media print, screen and (min-width: 50em) {
    .ac_image-gallery_full-screen_close {
      top: 40px;
      right: 40px; } }
  .ac_image-gallery_full-screen_close svg {
    width: 16px;
    height: 16px;
    fill: #000000;
    transition: all 0.3s ease; }
  .ac_image-gallery_full-screen_close:hover {
    cursor: pointer; }
    @media print, screen and (min-width: 64.0625em) {
      .ac_image-gallery_full-screen_close:hover {
        background: #000000; }
        .ac_image-gallery_full-screen_close:hover svg {
          fill: #ffffff; } }
  .ac_image-gallery_full-screen_close.s_active {
    display: block; }

.ac_image-gallery_full-screen_background {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 4443;
  width: 100%;
  height: 0;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s ease, height 0s linear 0.3s, visibility 0s linear 0.3s;
  background: rgba(0, 0, 0, 0.9); }
  .ac_image-gallery_full-screen_background.s_active {
    height: 100%;
    visibility: visible;
    opacity: 1;
    transition: visibility 0s linear, height 0s linear,  opacity .2s ease .2s; }

/* AC_S_IMAGE-GALLERY-GRID - 1
--------------------------------------------------------------------------------------------*/
/* AC_S_IMAGE-GALLERY - GLOBALS
--------------------------------------------------------------------------------------------*/
[data-s-type="image-gallery-grid"] .ac_image-gallery_grid_container:nth-child(even) {
  -webkit-flex-direction: row-reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse; }
  [data-s-type="image-gallery-grid"] .ac_image-gallery_grid_container:nth-child(even) .ac_image-gallery_grid_outer-column:nth-child(1) {
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  [data-s-type="image-gallery-grid"] .ac_image-gallery_grid_container:nth-child(even) .ac_image-gallery_grid_outer-column:nth-child(2) .ac_image-gallery_grid_column {
    -webkit-justify-content: flex-end;
        -ms-flex-pack: end;
            justify-content: flex-end; }

.ac_image-gallery_grid_container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  max-width: 1200px;
  margin: 0 auto; }

.ac_image-gallery_grid_outer-column {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  width: 100%; }
  @media screen and (min-width: 800px) {
    .ac_image-gallery_grid_outer-column:nth-child(1) {
      width: 60%;
      max-width: 60%; } }
  .ac_image-gallery_grid_outer-column:nth-child(1) .ac_image-gallery_grid_column:nth-child(1) {
    height: 200px; }
    .ac_image-gallery_grid_outer-column:nth-child(1) .ac_image-gallery_grid_column:nth-child(1) .ac_image-gallery_grid_item {
      width: 50%;
      max-width: 50%; }
      @media screen and (min-width: 800px) {
        .ac_image-gallery_grid_outer-column:nth-child(1) .ac_image-gallery_grid_column:nth-child(1) .ac_image-gallery_grid_item {
          max-height: 50%; } }
    @media screen and (min-width: 800px) {
      .ac_image-gallery_grid_outer-column:nth-child(1) .ac_image-gallery_grid_column:nth-child(1) {
        height: 400px;
        width: 33.33333%;
        max-width: 33.33333%; }
        .ac_image-gallery_grid_outer-column:nth-child(1) .ac_image-gallery_grid_column:nth-child(1) .ac_image-gallery_grid_item {
          width: 100%;
          max-width: 100%;
          height: 180px; } }
  @media screen and (max-width: 799px) {
    .ac_image-gallery_grid_outer-column:nth-child(1) .ac_image-gallery_grid_column:nth-child(2) {
      height: 280px; } }
  @media screen and (min-width: 800px) {
    .ac_image-gallery_grid_outer-column:nth-child(1) .ac_image-gallery_grid_column:nth-child(2) {
      width: 66.66667%;
      max-width: 66.66667%; } }
  @media screen and (min-width: 800px) {
    .ac_image-gallery_grid_outer-column:nth-child(2) {
      width: 40%;
      max-width: 40%; } }
  .ac_image-gallery_grid_outer-column:nth-child(2) .ac_image-gallery_grid_item {
    width: 50%;
    max-width: 50%; }

.ac_image-gallery_grid_column {
  height: 400px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  width: 100%; }

.ac_image-gallery_grid_item {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  width: 100%;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  margin-bottom: 20px;
  padding: 0 20px;
  padding: 0 10px; }
  @media print, screen and (min-width: 64.0625em) {
    .ac_image-gallery_grid_item:hover .ac_image-gallery_grid_item_image {
      -webkit-transform: scale(1.02);
          -ms-transform: scale(1.02);
              transform: scale(1.02);
      opacity: 0.5; }
    .ac_image-gallery_grid_item:hover .ac_image-gallery_grid_item_content {
      opacity: 1;
      visibility: visible; } }

.ac_image-gallery_grid_item_container {
  height: 100%;
  position: relative;
  -webkit-flex-grow: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  background: #000000;
  border-radius: 3px;
  overflow: hidden; }

.ac_image-gallery_grid_item_image-container {
  height: 160px;
  width: 100%;
  border-radius: 3px;
  position: relative;
  overflow: hidden; }

.ac_image-gallery_grid_item_image {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  opacity: 1;
  border-radius: 3px;
  transition: all 0.3s ease;
  will-change: contents; }

.ac_image-gallery_grid_item_content {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-flex: 1 1 auto;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  padding: 20px; }

.ac_image-gallery_grid_item_image-container {
  border-radius: 3px;
  height: 100%;
  position: absolute; }

.ac_image-gallery_grid_item_content {
  position: absolute;
  z-index: 2;
  top: 0;
  border: none;
  height: 100%;
  width: 100%;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  opacity: 0;
  visibility: hidden;
  left: 0;
  color: #ffffff;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center; }

/*--------------------------------------------------------------------------------------------*/
.ac_image-gallery_grid_container {
  position: relative;
  z-index: 22; }

@media print, screen and (min-width: 50em) {
  .ac_image-gallery_grid_outer-column:nth-child(2) {
    padding-top: 100px; }
  .ac_image-gallery_grid_container:nth-child(even) .ac_image-gallery_grid_outer-column:nth-child(2) {
    padding-top: initial;
    margin-top: -100px; } }

/* AC_S_IMAGE-GALLERY-SLIDER - 1
--------------------------------------------------------------------------------------------*/
/* AC_S_IMAGE-GALLERY - GLOBALS
--------------------------------------------------------------------------------------------*/
.ac_image-gallery_container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  max-width: 1200px;
  margin: 0 auto; }

.ac_image-gallery_item {
  padding: 0 10px;
  margin-bottom: 20px;
  -webkit-flex: 0 1 50%;
      -ms-flex: 0 1 50%;
          flex: 0 1 50%;
  max-width: 50%; }

a.ac_image-gallery_item:hover .ac_image-gallery_item_container {
  background: rgba(0, 0, 0, 0.1); }

a.ac_image-gallery_item:hover .ac_image-gallery_item_image {
  opacity: 0.5; }

a.ac_image-gallery_item:hover .ac_image-gallery_item_content_inner {
  color: #000000; }

.ac_image-gallery_item_container {
  position: relative;
  background: #ffffff;
  height: 100%;
  transition: all 0.3s ease;
  border-radius: 6px; }

.ac_image-gallery_item_image_container {
  position: relative;
  width: 100%;
  height: 200px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  background: #000000;
  border-radius: 6px; }

.ac_image-gallery_item_image {
  position: relative;
  width: 100%;
  height: 100%;
  opacity: 1;
  transition: all 0.3s ease;
  border-radius: 6px;
  background-size: cover; }

.ac_image-gallery_item_content {
  position: relative;
  padding: 20px;
  border-top: solid 1px rgba(102, 102, 102, 0.2);
  display: none; }

.ac_image-gallery_item_content_inner {
  transition: opacity 0.3s ease;
  font-size: 90%;
  color: #000000; }
  @media print, screen and (min-width: 50em) {
    .ac_image-gallery_item_content_inner {
      font-size: 100%; } }

/*--------------------------------------------------------------------------------------------*/
/* CTA
--------------------------------------------------------------------------------------------*/
[data-s-type="maps"] {
  /*--------------------------------------------------------------------------------------------*/ }
  [data-s-type="maps"] .ac_maps_container {
    width: 100%;
    height: 400px; }

/* AC_S_NEWS - 1
--------------------------------------------------------------------------------------------*/
[data-s-type="news"] {
  /* ITEM  GLOBALS
--------------------------------------------------------------------------------------------*/
  /*--------------------------------------------------------------------------------------------*/ }
  [data-s-type="news"] .ac_container {
    max-width: 1000px;
    position: relative;
    z-index: 2;
    margin: 2em auto;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
  [data-s-type="news"] .ac_item {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    position: relative;
    margin-bottom: 1.4em;
    padding: 0 20px;
    padding: 0 20px;
    border-left: solid 1px rgba(102, 102, 102, 0.2); }
    @media screen and (max-width: 39.9375em) {
      [data-s-type="news"] .ac_item {
        width: 100%;
        max-width: 100%; } }
  [data-s-type="news"] .ac_item_container {
    min-height: 100%;
    width: 100%;
    position: relative;
    transition: all 0.3s ease;
    border-bottom: solid 1px rgba(102, 102, 102, 0.2);
    background: none; }
  @media print, screen and (min-width: 64.0625em) {
    [data-s-type="news"] a.ac_item:hover .ac_item_image {
      -webkit-transform: scale(1.02);
          -ms-transform: scale(1.02);
              transform: scale(1.02);
      opacity: 0.8; }
    [data-s-type="news"] a.ac_item:hover .ac_item_image-container {
      background: #000000; }
    [data-s-type="news"] a.ac_item:hover .ac_item_content {
      background: none; }
    [data-s-type="news"] a.ac_item:hover .ac_item_content_title {
      color: rgba(0, 0, 0, 0.6); }
    [data-s-type="news"] a.ac_item:hover .ac_item_content_copy-above {
      color: rgba(0, 0, 0, 0.4); }
    [data-s-type="news"] a.ac_item:hover .ac_item_content_copy-below {
      color: rgba(0, 0, 0, 0.4); } }
  @media screen and (max-width: 39.9375em) {
    [data-s-type="news"] .ac_item .ac_item_container {
      display: block;
      overflow: inherit;
      min-height: inherit; }
    [data-s-type="news"] .ac_item .ac_item_image-container {
      width: 80px;
      height: 80px;
      position: absolute;
      left: 0;
      top: 0;
      -webkit-flex-shrink: 0;
          -ms-flex-negative: 0;
              flex-shrink: 0; }
    [data-s-type="news"] .ac_item .ac_item_content {
      position: relative;
      background: transparent;
      -webkit-justify-content: flex-start;
          -ms-flex-pack: start;
              justify-content: flex-start;
      text-align: left;
      min-height: 100px; }
    [data-s-type="news"] .ac_item .ac_item_content_copy {
      padding: 0 0 0 100px;
      margin-bottom: 20px; }
    [data-s-type="news"] .ac_item .ac_item_content_title {
      color: black;
      -webkit-flex: 1;
          -ms-flex: 1;
              flex: 1; }
    [data-s-type="news"] .ac_item .ac_item_content_copy-above {
      color: black;
      -webkit-flex: 1;
          -ms-flex: 1;
              flex: 1; }
    [data-s-type="news"] .ac_item .ac_item_content_copy-below {
      color: black;
      -webkit-flex: 1;
          -ms-flex: 1;
              flex: 1; }
    [data-s-type="news"] .ac_item [data-border-bottom] {
      border-bottom: solid 1px rgba(102, 102, 102, 0.2) !important; } }
  [data-s-type="news"][data-s-amount="2"] [data-s-amount-item]:nth-child(2n+1) {
    border-left: transparent; }
  [data-s-type="news"][data-s-amount="2"] [data-s-amount-item]:nth-child(2n+1) {
    border-left: transparent; }
  @media screen and (max-width: 49.9375em) {
    [data-s-type="news"][data-s-amount="3"] [data-s-amount-item]:nth-child(2n+1) {
      border-left: transparent; } }
  @media print, screen and (min-width: 50em) {
    [data-s-type="news"][data-s-amount="3"] [data-s-amount-item]:nth-child(3n+1) {
      border-left: transparent; } }
  @media screen and (max-width: 64em) {
    [data-s-type="news"][data-s-amount="4"] [data-s-amount-item]:nth-child(2n+1) {
      border-left: transparent; } }
  @media print, screen and (min-width: 64.0625em) {
    [data-s-type="news"][data-s-amount="4"] [data-s-amount-item]:nth-child(4n+1) {
      border-left: transparent; } }
  [data-s-type="news"] .ac_item_image-container {
    height: 160px;
    width: 100%;
    overflow: hidden;
    position: relative;
    transition: all 0.3s ease;
    background: #000000;
    border-radius: 6px; }
  [data-s-type="news"] .ac_item_image {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    opacity: 1;
    transition: all 0.3s ease;
    will-change: contents;
    border-radius: 6px; }
  [data-s-type="news"] .ac_item_icon {
    position: absolute;
    z-index: 2;
    width: 1.2em;
    height: 1.2em;
    right: 0;
    bottom: 20px; }
    [data-s-type="news"] .ac_item_icon svg {
      width: 1.2em;
      height: 1.2em;
      fill: rgba(0, 0, 0, 0.6);
      transition: fill 0.3s ease; }
  [data-s-type="news"] .ac_item_content {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    padding: 0;
    transition: all 0.3s ease;
    background: none; }
  [data-s-type="news"] .ac_item_content_copy {
    padding: 20px 0;
    width: 100%;
    transition: all 0.3s ease; }
    [data-s-type="news"] .ac_item_content_copy * {
      transition: all 0.3s ease; }
  [data-s-type="news"] .ac_item_content_icon_container {
    display: none; }
  [data-s-type="news"] .ac_item_content_title {
    color: #000000; }
  [data-s-type="news"] .ac_item_content_copy-above {
    color: rgba(0, 0, 0, 0.6); }
  [data-s-type="news"] .ac_item_content_copy-below {
    color: rgba(0, 0, 0, 0.6); }
  [data-s-type="news"] .ac_item_icon {
    position: absolute;
    z-index: 2;
    width: 1.2em;
    height: 1.2em;
    right: 0;
    bottom: 20px; }
    [data-s-type="news"] .ac_item_icon svg {
      width: 1.2em;
      height: 1.2em;
      fill: rgba(0, 0, 0, 0.6);
      transition: fill 0.3s ease; }
  @media screen and (max-width: 39.9375em) {
    [data-s-type="news"] .ac_item_content_copy {
      padding: 0; } }
  [data-s-type="news"] .ac_item_content_copy-above {
    text-transform: uppercase;
    font-size: 85%;
    letter-spacing: 1px; }
  [data-s-type="news"] .ac_item_content_title {
    padding: 10px 0;
    font-family: "Montserrat", Arial, sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 110%; }
    @media print, screen and (min-width: 40em) {
      [data-s-type="news"] .ac_item_content_title {
        min-height: 100px;
        padding-bottom: 40px; } }
  [data-s-type="news"] .ac_item_content_copy-below {
    text-transform: uppercase;
    font-size: 85%;
    letter-spacing: 1px; }
    @media print, screen and (min-width: 40em) {
      [data-s-type="news"] .ac_item_content_copy-below {
        position: absolute;
        bottom: 20px; } }
  [data-s-type="news"] .ac_item {
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
    @media print, screen and (min-width: 40em) {
      [data-s-type="news"] .ac_item:first-child {
        overflow: hidden;
        height: 320px; }
        [data-s-type="news"] .ac_item:first-child .ac_item {
          height: 160px;
          -webkit-flex-direction: column;
              -ms-flex-direction: column;
                  flex-direction: column; } }
    @media print, screen and (min-width: 40em) and (min-width: 40em) {
      [data-s-type="news"] .ac_item:first-child .ac_item {
        height: 160px; } }
    @media print, screen and (min-width: 40em) {
        [data-s-type="news"] .ac_item:first-child .ac_item_image-container {
          height: 100%;
          background: #000000;
          position: absolute; }
          [data-s-type="news"] .ac_item:first-child .ac_item_image-container:before {
            content: '';
            position: absolute;
            width: 100%;
            height: 100%;
            background: linear-gradient(180deg, rgba(0, 0, 0, 0), black);
            z-index: 1;
            bottom: 0; }
        [data-s-type="news"] .ac_item:first-child .ac_item_content {
          position: absolute;
          z-index: 2;
          top: 0;
          border: none;
          height: 100%;
          width: 100%;
          display: -webkit-inline-flex;
          display: -ms-inline-flexbox;
          display: inline-flex;
          left: 0;
          -webkit-flex-direction: column;
              -ms-flex-direction: column;
                  flex-direction: column;
          -webkit-justify-content: flex-end;
              -ms-flex-pack: end;
                  justify-content: flex-end;
          -webkit-align-items: flex-start;
              -ms-flex-align: start;
                  align-items: flex-start; }
        [data-s-type="news"] .ac_item:first-child .ac_item_container {
          overflow: hidden; }
        [data-s-type="news"] .ac_item:first-child .ac_item_content_copy {
          padding: 20px; }
        [data-s-type="news"] .ac_item:first-child .ac_item_content_copy-above {
          color: rgba(255, 255, 255, 0.7); }
        [data-s-type="news"] .ac_item:first-child .ac_item_content_title {
          color: white; }
        [data-s-type="news"] .ac_item:first-child .ac_item_content_copy-below {
          color: rgba(255, 255, 255, 0.7); }
        [data-s-type="news"] .ac_item:first-child .ac_item_icon {
          right: 20px; }
          [data-s-type="news"] .ac_item:first-child .ac_item_icon svg {
            fill: #ffffff; } }
    @media print, screen and (min-width: 64.0625em) {
      [data-s-type="news"] .ac_item:first-child {
        border: none !important; } }
  [data-s-type="news"][data-s-amount="2"] .ac_item {
    display: none; }
    [data-s-type="news"][data-s-amount="2"] .ac_item:nth-child(-n + 2) {
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex; }
    @media print, screen and (min-width: 64.0625em) {
      [data-s-type="news"][data-s-amount="2"] .ac_item {
        width: 40%;
        max-width: 40%; }
        [data-s-type="news"][data-s-amount="2"] .ac_item:nth-child(1) {
          width: 60%;
          max-width: 60%; } }
  [data-s-type="news"][data-s-amount="3"] .ac_item {
    display: none; }
    [data-s-type="news"][data-s-amount="3"] .ac_item:nth-child(-n + 3) {
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex; }
    @media screen and (min-width: 40em) and (max-width: 49.9375em) {
      [data-s-type="news"][data-s-amount="3"] .ac_item:nth-child(1) {
        width: 100%;
        max-width: 100%;
        height: 240px; } }
    @media print, screen and (min-width: 64.0625em) {
      [data-s-type="news"][data-s-amount="3"] .ac_item {
        width: 30%;
        max-width: 30%; }
        [data-s-type="news"][data-s-amount="3"] .ac_item:nth-child(1) {
          width: 40%;
          max-width: 40%; } }
  [data-s-type="news"][data-s-amount="4"] .ac_item {
    display: none; }
    [data-s-type="news"][data-s-amount="4"] .ac_item:nth-child(-n + 4) {
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex; }
    @media print, screen and (min-width: 64.0625em) {
      [data-s-type="news"][data-s-amount="4"] .ac_item {
        width: 20%;
        max-width: 20%; }
        [data-s-type="news"][data-s-amount="4"] .ac_item:nth-child(1) {
          width: 30%;
          max-width: 30%; } }

/* AC_S_SERVICES - 1
--------------------------------------------------------------------------------------------*/
[data-s-type="products"] {
  /* ITEM  GLOBALS
--------------------------------------------------------------------------------------------*/
  /*--------------------------------------------------------------------------------------------*/ }
  [data-s-type="products"] .ac_container {
    max-width: 1200px;
    position: relative;
    z-index: 2;
    margin: 2em auto;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
  [data-s-type="products"] .ac_item {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    position: relative;
    margin-bottom: 1.4em;
    padding: 0 20px;
    padding: 0 20px;
    border-left: solid 1px rgba(102, 102, 102, 0.2); }
    @media screen and (max-width: 39.9375em) {
      [data-s-type="products"] .ac_item {
        width: 50%;
        max-width: 50%; } }
  [data-s-type="products"] .ac_item_container {
    min-height: 100%;
    width: 100%;
    position: relative;
    transition: all 0.3s ease;
    border-bottom: solid 1px rgba(102, 102, 102, 0.2);
    background: none; }
  @media print, screen and (min-width: 64.0625em) {
    [data-s-type="products"] a.ac_item:hover .ac_item_image {
      -webkit-transform: scale(1.02);
          -ms-transform: scale(1.02);
              transform: scale(1.02);
      opacity: 0.8; }
    [data-s-type="products"] a.ac_item:hover .ac_item_image-container {
      background: #ffffff; }
    [data-s-type="products"] a.ac_item:hover .ac_item_content {
      background: none; }
    [data-s-type="products"] a.ac_item:hover .ac_item_content_icon {
      background: rgba(0, 0, 0, 0.6); }
      [data-s-type="products"] a.ac_item:hover .ac_item_content_icon svg {
        fill: rgba(255, 255, 255, 0.4); }
    [data-s-type="products"] a.ac_item:hover .ac_item_content_title {
      color: rgba(0, 0, 0, 0.6); }
    [data-s-type="products"] a.ac_item:hover .ac_item_content_copy-above {
      color: rgba(0, 0, 0, 0.4); }
    [data-s-type="products"] a.ac_item:hover .ac_item_content_copy-below {
      color: rgba(0, 0, 0, 0.4); }
    [data-s-type="products"] a.ac_item:hover .ac_item_icon svg {
      fill: rgba(0, 0, 0, 0.4); } }
  [data-s-type="products"][data-s-amount="2"] [data-s-amount-item]:nth-child(2n+1) {
    border-left: transparent; }
  [data-s-type="products"][data-s-amount="2"] [data-s-amount-item]:nth-child(2n+1) {
    border-left: transparent; }
  @media screen and (max-width: 49.9375em) {
    [data-s-type="products"][data-s-amount="3"] [data-s-amount-item]:nth-child(2n+1) {
      border-left: transparent; } }
  @media print, screen and (min-width: 50em) {
    [data-s-type="products"][data-s-amount="3"] [data-s-amount-item]:nth-child(3n+1) {
      border-left: transparent; } }
  @media screen and (max-width: 64em) {
    [data-s-type="products"][data-s-amount="4"] [data-s-amount-item]:nth-child(2n+1) {
      border-left: transparent; } }
  @media print, screen and (min-width: 64.0625em) {
    [data-s-type="products"][data-s-amount="4"] [data-s-amount-item]:nth-child(4n+1) {
      border-left: transparent; } }
  [data-s-type="products"][data-s-amount="2"] [data-s-amount-item]:nth-last-child(-n + 2) [data-border-bottom] {
    border-bottom-color: transparent; }
  @media screen and (max-width: 49.9375em) {
    [data-s-type="products"][data-s-amount="3"] [data-s-amount-item]:nth-last-child(-n + 2) [data-border-bottom] {
      border-bottom-color: transparent; } }
  @media print, screen and (min-width: 50em) {
    [data-s-type="products"][data-s-amount="3"] [data-s-amount-item]:nth-last-child(-n + 3) [data-border-bottom] {
      border-bottom-color: transparent; } }
  @media screen and (max-width: 64em) {
    [data-s-type="products"][data-s-amount="4"] [data-s-amount-item]:nth-last-child(-n + 2) [data-border-bottom] {
      border-bottom-color: transparent; } }
  @media print, screen and (min-width: 64.0625em) {
    [data-s-type="products"][data-s-amount="4"] [data-s-amount-item]:nth-last-child(-n + 4) [data-border-bottom] {
      border-bottom-color: transparent; } }
  [data-s-type="products"] .ac_item_image-container {
    height: 20vw;
    width: 100%;
    overflow: hidden;
    position: relative;
    transition: all 0.3s ease;
    background: #ffffff;
    border-radius: 6px; }
  [data-s-type="products"] .ac_item_image {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    opacity: 1;
    transition: all 0.3s ease;
    will-change: contents;
    border-radius: 6px; }
  [data-s-type="products"] .ac_item_icon {
    position: absolute;
    z-index: 2;
    width: 1.6em;
    height: 1.6em;
    right: 0;
    bottom: 20px; }
    [data-s-type="products"] .ac_item_icon svg {
      width: 1.6em;
      height: 1.6em;
      fill: rgba(0, 0, 0, 0.6);
      transition: fill 0.3s ease; }
  [data-s-type="products"] .ac_item_content {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    padding: 0;
    transition: all 0.3s ease;
    background: none; }
  [data-s-type="products"] .ac_item_content_copy {
    padding: 20px 0;
    width: 100%;
    transition: all 0.3s ease; }
    [data-s-type="products"] .ac_item_content_copy * {
      transition: all 0.3s ease; }
  [data-s-type="products"] .ac_item_content_icon_container {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
  [data-s-type="products"] .ac_item_content_icon {
    width: 80px;
    height: 80px;
    background: #000000;
    padding: 10px;
    margin: 0 0 20px 0;
    border-radius: 100%; }
    [data-s-type="products"] .ac_item_content_icon svg {
      width: 60px;
      height: 60px;
      fill: white; }
  [data-s-type="products"] .ac_item_content_title {
    color: #000000; }
  [data-s-type="products"] .ac_item_content_copy-above {
    color: rgba(0, 0, 0, 0.6); }
  [data-s-type="products"] .ac_item_content_copy-below {
    color: rgba(0, 0, 0, 0.6); }
  [data-s-type="products"] .ac_item_icon {
    position: absolute;
    z-index: 2;
    width: 1.6em;
    height: 1.6em;
    right: 0;
    bottom: 20px; }
    [data-s-type="products"] .ac_item_icon svg {
      width: 1.6em;
      height: 1.6em;
      fill: rgba(0, 0, 0, 0.6);
      transition: fill 0.3s ease; }
  [data-s-type="products"] .ac_item_image-container {
    border: solid 1px rgba(102, 102, 102, 0.2); }
  [data-s-type="products"] .ac_item_content_price {
    margin-bottom: 1em;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: flex-end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  [data-s-type="products"] .ac_item_content_price_before {
    text-decoration: line-through;
    opacity: .6; }
  [data-s-type="products"] .ac_item_content_price_current {
    font-size: 120%; }
  [data-s-type="products"] .ac_item_content_label {
    position: absolute;
    top: 12%;
    left: 0;
    z-index: 11;
    background: #670309;
    color: #ffffff;
    padding: 6.66667px 10px;
    text-transform: uppercase;
    font-family: "Montserrat", Arial, sans-serif;
    font-weight: 600;
    font-style: normal; }

/* QUOTES - 1
--------------------------------------------------------------------------------------------*/
[data-s-type="quotes"] {
  /* ITEM  GLOBALS
--------------------------------------------------------------------------------------------*/
  /*--------------------------------------------------------------------------------------------*/ }
  [data-s-type="quotes"] .ac_container {
    max-width: 1200px;
    position: relative;
    z-index: 2;
    margin: 2em auto;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
  [data-s-type="quotes"] .ac_item {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    position: relative;
    margin-bottom: 1.4em;
    padding: 0; }
    @media screen and (max-width: 39.9375em) {
      [data-s-type="quotes"] .ac_item {
        width: 100%;
        max-width: 100%; } }
  [data-s-type="quotes"] .ac_item_container {
    min-height: 100%;
    width: 100%;
    position: relative;
    transition: all 0.3s ease;
    background: none; }
  @media print, screen and (min-width: 64.0625em) {
    [data-s-type="quotes"] a.ac_item:hover .ac_item_image {
      -webkit-transform: scale(1.02);
          -ms-transform: scale(1.02);
              transform: scale(1.02);
      opacity: 0.8; }
    [data-s-type="quotes"] a.ac_item:hover .ac_item_content {
      background: none; }
    [data-s-type="quotes"] a.ac_item:hover .ac_item_content_title {
      color: rgba(0, 0, 0, 0.6); }
    [data-s-type="quotes"] a.ac_item:hover .ac_item_content_copy-above {
      color: rgba(0, 0, 0, 0.4); }
    [data-s-type="quotes"] a.ac_item:hover .ac_item_content_copy-below {
      color: rgba(0, 0, 0, 0.4); } }
  [data-s-type="quotes"] .ac_item_image-container {
    display: none; }
  [data-s-type="quotes"] .ac_item_image {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    opacity: 1;
    transition: all 0.3s ease;
    will-change: contents;
    border-radius: 6px; }
  [data-s-type="quotes"] .ac_item_icon {
    position: absolute;
    z-index: 2;
    width: 1.6em;
    height: 1.6em;
    right: 0;
    bottom: 20px; }
    [data-s-type="quotes"] .ac_item_icon svg {
      width: 1.6em;
      height: 1.6em;
      fill: rgba(0, 0, 0, 0.6);
      transition: fill 0.3s ease; }
  [data-s-type="quotes"] .ac_item_content {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    padding: 0;
    transition: all 0.3s ease;
    background: none; }
  [data-s-type="quotes"] .ac_item_content_copy {
    padding: 20px 0;
    width: 100%;
    transition: all 0.3s ease; }
    [data-s-type="quotes"] .ac_item_content_copy * {
      transition: all 0.3s ease; }
  [data-s-type="quotes"] .ac_item_content_icon_container {
    display: none; }
  [data-s-type="quotes"] .ac_item_content_title {
    color: #000000; }
  [data-s-type="quotes"] .ac_item_content_copy-above {
    color: rgba(0, 0, 0, 0.6); }
  [data-s-type="quotes"] .ac_item_content_copy-below {
    color: rgba(0, 0, 0, 0.6); }
  [data-s-type="quotes"] .ac_item_icon {
    position: absolute;
    z-index: 2;
    width: 1.6em;
    height: 1.6em;
    right: 0;
    bottom: 20px; }
    [data-s-type="quotes"] .ac_item_icon svg {
      width: 1.6em;
      height: 1.6em;
      fill: rgba(0, 0, 0, 0.6);
      transition: fill 0.3s ease; }
  [data-s-type="quotes"] .ac_container {
    display: block;
    z-index: inherit;
    max-height: 200px;
    overflow: hidden;
    opacity: 0;
    transition: opacity 0.3s ease; }
    [data-s-type="quotes"] .ac_container.slick-initialized {
      max-height: inherit;
      overflow: visible;
      opacity: 1; }
  [data-s-type="quotes"] [data-s-amount-item] {
    margin-bottom: 0; }
  @media screen and (max-width: 39.9375em) {
    [data-s-type="quotes"] [data-s-amount-item] {
      border-left-color: transparent; } }
  [data-s-type="quotes"] .ac_item {
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    padding: 1.5em 80px; }
  [data-s-type="quotes"] .ac_item_container {
    max-width: 600px; }
  @media screen and (max-width: 39.9375em) {
    [data-s-type="quotes"] .ac_item_content_copy {
      padding: 0; } }
  [data-s-type="quotes"] .ac_item_content_title_quote-left,
  [data-s-type="quotes"] .ac_item_content_title_quote-right {
    position: absolute; }
    [data-s-type="quotes"] .ac_item_content_title_quote-left svg,
    [data-s-type="quotes"] .ac_item_content_title_quote-right svg {
      width: 3em;
      height: 3em;
      fill: rgba(0, 0, 0, 0.2); }
  [data-s-type="quotes"] .ac_item_content_title_quote-left {
    top: -1.5em;
    left: -1.5em; }
  [data-s-type="quotes"] .ac_item_content_title_quote-right {
    bottom: -1.5em;
    right: -1.5em; }
  [data-s-type="quotes"] .ac_item_author {
    display: -webkit-inline-flex;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    margin-top: 1em; }
  [data-s-type="quotes"] .ac_item_avatar_container {
    width: 4em;
    height: 4em;
    position: relative;
    border: 4px solid #ffffff;
    box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
    border-radius: 100%;
    margin-right: 1em;
    -webkit-flex-shrink: 0;
        -ms-flex-negative: 0;
            flex-shrink: 0; }
  [data-s-type="quotes"] .ac_item_avatar_image {
    position: absolute;
    width: 100%;
    height: 100%;
    border-radius: 100%; }
  [data-s-type="quotes"] .ac_item_content_copy-above {
    text-transform: uppercase;
    font-size: 85%;
    letter-spacing: 1px; }
  [data-s-type="quotes"] .ac_item_content_title {
    position: relative;
    padding: 10px 0;
    font-family: "Montserrat", Arial, sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 110%; }
    @media print, screen and (min-width: 50em) {
      [data-s-type="quotes"] .ac_item_content_title {
        font-size: 140%; } }
  [data-s-type="quotes"] .ac_item_content_copy-below {
    text-transform: uppercase;
    font-size: 85%;
    letter-spacing: 1px; }
  [data-s-type="quotes"] .slick-dots {
    bottom: 0;
    -webkit-transform: translateX(-50%) translateY(100%);
        -ms-transform: translateX(-50%) translateY(100%);
            transform: translateX(-50%) translateY(100%); }

/* REFERENCES - 2
--------------------------------------------------------------------------------------------*/
[data-s-type="references"] {
  /* ITEM  GLOBALS
--------------------------------------------------------------------------------------------*/
  /*--------------------------------------------------------------------------------------------*/ }
  [data-s-type="references"] .ac_container {
    max-width: 1000px;
    position: relative;
    z-index: 2;
    margin: 2em auto;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    padding: 0 10px; }
  [data-s-type="references"] .ac_item {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    position: relative;
    margin-bottom: 1.4em;
    padding: 0 20px;
    padding: 0 10px; }
    @media screen and (max-width: 39.9375em) {
      [data-s-type="references"] .ac_item {
        width: 100%;
        max-width: 100%; } }
  [data-s-type="references"] .ac_item_container {
    min-height: 100%;
    width: 100%;
    position: relative;
    transition: all 0.3s ease;
    background: none; }
  @media print, screen and (min-width: 64.0625em) {
    [data-s-type="references"] a.ac_item:hover .ac_item_image {
      -webkit-transform: scale(1.02);
          -ms-transform: scale(1.02);
              transform: scale(1.02);
      opacity: 0.4; }
    [data-s-type="references"] a.ac_item:hover .ac_item_image-container {
      background: #000000; }
    [data-s-type="references"] a.ac_item:hover .ac_item_content {
      background: none; }
    [data-s-type="references"] a.ac_item:hover .ac_item_content_icon {
      background: white; }
      [data-s-type="references"] a.ac_item:hover .ac_item_content_icon svg {
        fill: black; }
    [data-s-type="references"] a.ac_item:hover .ac_item_content_title {
      color: rgba(255, 255, 255, 0.6); }
    [data-s-type="references"] a.ac_item:hover .ac_item_content_copy-above {
      color: rgba(255, 255, 255, 0.4); }
    [data-s-type="references"] a.ac_item:hover .ac_item_icon svg {
      fill: white; } }
  [data-s-type="references"] .ac_item_image-container {
    height: 240px;
    width: 100%;
    overflow: hidden;
    position: relative;
    transition: all 0.3s ease;
    background: #000000;
    border-radius: 6px; }
  [data-s-type="references"] .ac_item_image {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    opacity: 0.6;
    transition: all 0.3s ease;
    will-change: contents;
    border-radius: 6px; }
  [data-s-type="references"] .ac_item_icon {
    position: absolute;
    z-index: 2;
    width: 1.6em;
    height: 1.6em;
    right: 20px;
    bottom: 20px; }
    [data-s-type="references"] .ac_item_icon svg {
      width: 1.6em;
      height: 1.6em;
      fill: rgba(255, 255, 255, 0.4);
      transition: fill 0.3s ease; }
  [data-s-type="references"] .ac_item_content {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    padding: 20px;
    transition: all 0.3s ease;
    background: none; }
  [data-s-type="references"] .ac_item_content_copy {
    padding: 20px 0;
    width: 100%;
    transition: all 0.3s ease; }
    [data-s-type="references"] .ac_item_content_copy * {
      transition: all 0.3s ease; }
  [data-s-type="references"] .ac_item_content_icon_container {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
  [data-s-type="references"] .ac_item_content_icon {
    width: 80px;
    height: 80px;
    background: rgba(255, 255, 255, 0.5);
    padding: 10px;
    margin: 0 0 20px 0;
    border-radius: 100%; }
    [data-s-type="references"] .ac_item_content_icon svg {
      width: 60px;
      height: 60px;
      fill: white; }
  [data-s-type="references"] .ac_item_content_title {
    color: #ffffff; }
  [data-s-type="references"] .ac_item_content_copy-above {
    color: rgba(255, 255, 255, 0.6); }
  [data-s-type="references"] .ac_item_content_copy-below {
    display: none; }
  [data-s-type="references"] .ac_item_icon {
    position: absolute;
    z-index: 2;
    width: 1.6em;
    height: 1.6em;
    right: 20px;
    bottom: 20px; }
    [data-s-type="references"] .ac_item_icon svg {
      width: 1.6em;
      height: 1.6em;
      fill: rgba(255, 255, 255, 0.4);
      transition: fill 0.3s ease; }
  [data-s-type="references"] .ac_item {
    height: 240px;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
    @media print, screen and (min-width: 40em) {
      [data-s-type="references"] .ac_item {
        height: 240px; } }
  [data-s-type="references"] .ac_item_image-container {
    height: 100%;
    background: #000000;
    position: absolute; }
    [data-s-type="references"] .ac_item_image-container:before {
      content: '';
      position: absolute;
      width: 100%;
      height: 100%;
      background: linear-gradient(180deg, rgba(0, 0, 0, 0), black);
      z-index: 1;
      bottom: 0; }
  [data-s-type="references"] .ac_item_content {
    position: absolute;
    z-index: 2;
    top: 0;
    border: none;
    height: 100%;
    width: 100%;
    display: -webkit-inline-flex;
    display: -ms-inline-flexbox;
    display: inline-flex;
    left: 0;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    text-align: center; }
  [data-s-type="references"] .ac_item_container {
    overflow: hidden; }
  [data-s-type="references"] .ac_item_image-container {
    border: solid 3px #ffffff; }
  [data-s-type="references"] .ac_item_image {
    border-radius: 0; }
  [data-s-type="references"] .ac_item_content_title {
    font-family: "Montserrat", Arial, sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 150%;
    line-height: 1; }

/* REFERENCES-GRID - 1
--------------------------------------------------------------------------------------------*/
[data-s-type="references-grid"] {
  /* ITEM  GLOBALS
--------------------------------------------------------------------------------------------*/
  /*--------------------------------------------------------------------------------------------*/ }
  [data-s-type="references-grid"] .ac_container {
    max-width: 1000px;
    position: relative;
    z-index: 2;
    margin: 2em auto;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    padding: 0 10px; }
  [data-s-type="references-grid"] .ac_item {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    position: relative;
    margin-bottom: 20px;
    padding: 0 20px;
    padding: 0 10px; }
    @media screen and (max-width: 39.9375em) {
      [data-s-type="references-grid"] .ac_item {
        width: 100%;
        max-width: 100%; } }
  [data-s-type="references-grid"] .ac_item_container {
    min-height: 100%;
    width: 100%;
    position: relative;
    transition: all 0.3s ease;
    background: none; }
  @media print, screen and (min-width: 64.0625em) {
    [data-s-type="references-grid"] a.ac_item:hover .ac_item_image {
      -webkit-transform: scale(1.02);
          -ms-transform: scale(1.02);
              transform: scale(1.02);
      opacity: 0.4; }
    [data-s-type="references-grid"] a.ac_item:hover .ac_item_image-container {
      background: #000000; }
    [data-s-type="references-grid"] a.ac_item:hover .ac_item_content {
      background: none; }
    [data-s-type="references-grid"] a.ac_item:hover .ac_item_content_icon {
      background: white; }
      [data-s-type="references-grid"] a.ac_item:hover .ac_item_content_icon svg {
        fill: black; }
    [data-s-type="references-grid"] a.ac_item:hover .ac_item_content_title {
      color: rgba(255, 255, 255, 0.6); }
    [data-s-type="references-grid"] a.ac_item:hover .ac_item_content_copy-above {
      color: rgba(255, 255, 255, 0.4); }
    [data-s-type="references-grid"] a.ac_item:hover .ac_item_icon svg {
      fill: white; } }
  [data-s-type="references-grid"] .ac_item_image-container {
    height: 240px;
    width: 100%;
    overflow: hidden;
    position: relative;
    transition: all 0.3s ease;
    background: #000000;
    border-radius: 6px; }
  [data-s-type="references-grid"] .ac_item_image {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    opacity: 0.2;
    transition: all 0.3s ease;
    will-change: contents;
    border-radius: 6px; }
  [data-s-type="references-grid"] .ac_item_icon {
    display: none; }
  [data-s-type="references-grid"] .ac_item_content {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    padding: 0;
    transition: all 0.3s ease;
    background: none; }
  [data-s-type="references-grid"] .ac_item_content_copy {
    padding: 10px;
    width: 100%;
    transition: all 0.3s ease; }
    [data-s-type="references-grid"] .ac_item_content_copy * {
      transition: all 0.3s ease; }
  [data-s-type="references-grid"] .ac_item_content_icon_container {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
  [data-s-type="references-grid"] .ac_item_content_icon {
    width: 80px;
    height: 80px;
    background: rgba(255, 255, 255, 0.5);
    padding: 10px;
    margin: 0 0 20px 0;
    border-radius: 100%; }
    [data-s-type="references-grid"] .ac_item_content_icon svg {
      width: 60px;
      height: 60px;
      fill: white; }
  [data-s-type="references-grid"] .ac_item_content_title {
    color: #ffffff; }
  [data-s-type="references-grid"] .ac_item_content_copy-above {
    color: rgba(255, 255, 255, 0.6); }
  [data-s-type="references-grid"] .ac_item_content_copy-below {
    display: none; }
  [data-s-type="references-grid"] .ac_item_icon {
    display: none; }
  [data-s-type="references-grid"] .ac_item {
    height: 240px;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
    @media print, screen and (min-width: 40em) {
      [data-s-type="references-grid"] .ac_item {
        height: 240px; } }
  [data-s-type="references-grid"] .ac_item_image-container {
    height: 100%;
    background: #000000;
    position: absolute; }
    [data-s-type="references-grid"] .ac_item_image-container:before {
      content: '';
      position: absolute;
      width: 100%;
      height: 100%;
      background: linear-gradient(180deg, rgba(0, 0, 0, 0), black);
      z-index: 1;
      bottom: 0; }
  [data-s-type="references-grid"] .ac_item_content {
    position: absolute;
    z-index: 2;
    top: 0;
    border: none;
    height: 100%;
    width: 100%;
    display: -webkit-inline-flex;
    display: -ms-inline-flexbox;
    display: inline-flex;
    left: 0;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    text-align: center; }
  [data-s-type="references-grid"] .ac_item_container {
    overflow: hidden; }
  [data-s-type="references-grid"] .ac_grid_container {
    max-width: 1000px;
    position: relative;
    z-index: 2;
    margin: 0 auto;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: space-around;
        -ms-flex-pack: distribute;
            justify-content: space-around;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    padding: 10px; }
    [data-s-type="references-grid"] .ac_grid_container .ac_item_image {
      display: none; }
  [data-s-type="references-grid"] .ac_grid_outer-column {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    -webkit-align-content: flex-start;
        -ms-flex-line-pack: start;
            align-content: flex-start;
    width: 100%; }
    @media screen and (min-width: 800px) {
      [data-s-type="references-grid"] .ac_grid_outer-column:nth-child(1) {
        width: 60%;
        max-width: 60%; } }
    @media screen and (max-width: 799px) {
      [data-s-type="references-grid"] .ac_grid_outer-column:nth-child(2) {
        display: none; } }
    [data-s-type="references-grid"] .ac_grid_outer-column:nth-child(2) .ac_item {
      height: 200px;
      margin-bottom: 20px; }
      @media screen and (min-width: 800px) {
        [data-s-type="references-grid"] .ac_grid_outer-column:nth-child(2) .ac_item {
          height: 180px;
          margin-bottom: inherit; } }
    @media screen and (min-width: 800px) {
      [data-s-type="references-grid"] .ac_grid_outer-column:nth-child(2) {
        width: 40%;
        max-width: 40%; } }
    [data-s-type="references-grid"] .ac_grid_outer-column:nth-child(2) .ac_item {
      width: 50%;
      max-width: 50%;
      margin-bottom: 20px; }
      [data-s-type="references-grid"] .ac_grid_outer-column:nth-child(2) .ac_item:nth-child(1) .ac_item_image, [data-s-type="references-grid"] .ac_grid_outer-column:nth-child(2) .ac_item:nth-child(4) .ac_item_image {
        display: block; }
  [data-s-type="references-grid"] .ac_grid_column {
    height: 400px;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    width: 100%; }
    [data-s-type="references-grid"] .ac_grid_column .ac_item {
      width: 100%;
      height: calc(100% - 20px); }
    [data-s-type="references-grid"] .ac_grid_column:nth-child(1) {
      height: 200px; }
      [data-s-type="references-grid"] .ac_grid_column:nth-child(1) .ac_item {
        width: 50%;
        max-width: 50%; }
        [data-s-type="references-grid"] .ac_grid_column:nth-child(1) .ac_item:nth-child(1) .ac_item_image {
          display: block; }
      @media screen and (min-width: 800px) {
        [data-s-type="references-grid"] .ac_grid_column:nth-child(1) {
          height: 400px;
          width: 33.33333%;
          max-width: 33.33333%; }
          [data-s-type="references-grid"] .ac_grid_column:nth-child(1) .ac_item {
            width: 100%;
            max-width: 100%;
            height: 180px; } }
    @media screen and (max-width: 799px) {
      [data-s-type="references-grid"] .ac_grid_column:nth-child(2) {
        height: 280px; } }
    @media screen and (min-width: 800px) {
      [data-s-type="references-grid"] .ac_grid_column:nth-child(2) {
        width: 66.66667%;
        max-width: 66.66667%; } }
    [data-s-type="references-grid"] .ac_grid_column:nth-child(2) .ac_item_image {
      display: block; }
  [data-s-type="references-grid"] .ac_item_content_title {
    font-family: "Montserrat", Arial, sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 120%;
    line-height: 1; }

/* SERVICES-GRID - 1
--------------------------------------------------------------------------------------------*/
[data-s-type="services-grid"] {
  /* ITEM  GLOBALS
--------------------------------------------------------------------------------------------*/
  /*--------------------------------------------------------------------------------------------*/ }
  [data-s-type="services-grid"] .ac_container {
    max-width: 1200px;
    position: relative;
    z-index: 2;
    margin: 2em auto;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    padding: 0 10px; }
  [data-s-type="services-grid"] .ac_item {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    position: relative;
    margin-bottom: 20px;
    padding: 0 20px;
    padding: 0 10px; }
    @media screen and (max-width: 39.9375em) {
      [data-s-type="services-grid"] .ac_item {
        width: 100%;
        max-width: 100%; } }
  [data-s-type="services-grid"] .ac_item_container {
    min-height: 100%;
    width: 100%;
    position: relative;
    transition: all 0.3s ease;
    background: none; }
  @media print, screen and (min-width: 64.0625em) {
    [data-s-type="services-grid"] a.ac_item:hover .ac_item_image {
      -webkit-transform: scale(1.02);
          -ms-transform: scale(1.02);
              transform: scale(1.02);
      opacity: 0.4; }
    [data-s-type="services-grid"] a.ac_item:hover .ac_item_image-container {
      background: #000000; }
    [data-s-type="services-grid"] a.ac_item:hover .ac_item_content {
      background: none; }
    [data-s-type="services-grid"] a.ac_item:hover .ac_item_content_icon {
      background: white; }
      [data-s-type="services-grid"] a.ac_item:hover .ac_item_content_icon svg {
        fill: black; }
    [data-s-type="services-grid"] a.ac_item:hover .ac_item_content_title {
      color: rgba(255, 255, 255, 0.6); }
    [data-s-type="services-grid"] a.ac_item:hover .ac_item_icon svg {
      fill: white; } }
  [data-s-type="services-grid"] .ac_item_image-container {
    height: 240px;
    width: 100%;
    overflow: hidden;
    position: relative;
    transition: all 0.3s ease;
    background: #000000;
    border-radius: 6px; }
  [data-s-type="services-grid"] .ac_item_image {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    opacity: 0.2;
    transition: all 0.3s ease;
    will-change: contents;
    border-radius: 6px; }
  [data-s-type="services-grid"] .ac_item_icon {
    display: none; }
  [data-s-type="services-grid"] .ac_item_content {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    padding: 0;
    transition: all 0.3s ease;
    background: none; }
  [data-s-type="services-grid"] .ac_item_content_copy {
    padding: 10px;
    width: 100%;
    transition: all 0.3s ease; }
    [data-s-type="services-grid"] .ac_item_content_copy * {
      transition: all 0.3s ease; }
  [data-s-type="services-grid"] .ac_item_content_icon_container {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
  [data-s-type="services-grid"] .ac_item_content_icon {
    width: 80px;
    height: 80px;
    background: rgba(255, 255, 255, 0.5);
    padding: 10px;
    margin: 0 0 20px 0;
    border-radius: 100%; }
    [data-s-type="services-grid"] .ac_item_content_icon svg {
      width: 60px;
      height: 60px;
      fill: white; }
  [data-s-type="services-grid"] .ac_item_content_title {
    color: #ffffff; }
  [data-s-type="services-grid"] .ac_item_content_copy-above {
    display: none; }
  [data-s-type="services-grid"] .ac_item_content_copy-below {
    display: none; }
  [data-s-type="services-grid"] .ac_item_icon {
    display: none; }
  [data-s-type="services-grid"] .ac_item {
    height: 240px;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
    @media print, screen and (min-width: 40em) {
      [data-s-type="services-grid"] .ac_item {
        height: 240px; } }
  [data-s-type="services-grid"] .ac_item_image-container {
    height: 100%;
    background: #000000;
    position: absolute; }
    [data-s-type="services-grid"] .ac_item_image-container:before {
      content: '';
      position: absolute;
      width: 100%;
      height: 100%;
      background: linear-gradient(180deg, rgba(0, 0, 0, 0), black);
      z-index: 1;
      bottom: 0; }
  [data-s-type="services-grid"] .ac_item_content {
    position: absolute;
    z-index: 2;
    top: 0;
    border: none;
    height: 100%;
    width: 100%;
    display: -webkit-inline-flex;
    display: -ms-inline-flexbox;
    display: inline-flex;
    left: 0;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    text-align: center; }
  [data-s-type="services-grid"] .ac_item_container {
    overflow: hidden; }
  [data-s-type="services-grid"] .ac_grid_container {
    max-width: 1200px;
    position: relative;
    z-index: 2;
    margin: 0 auto;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: space-around;
        -ms-flex-pack: distribute;
            justify-content: space-around;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    padding: 10px; }
  [data-s-type="services-grid"] .ac_grid_outer-column {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    -webkit-align-content: flex-start;
        -ms-flex-line-pack: start;
            align-content: flex-start;
    width: 100%; }
    @media screen and (min-width: 800px) {
      [data-s-type="services-grid"] .ac_grid_outer-column:nth-child(1) {
        width: 60%;
        max-width: 60%; } }
    [data-s-type="services-grid"] .ac_grid_outer-column:nth-child(2) .ac_item {
      height: 180px;
      margin-bottom: 20px; }
      @media screen and (min-width: 800px) {
        [data-s-type="services-grid"] .ac_grid_outer-column:nth-child(2) .ac_item {
          height: 160px;
          margin-bottom: inherit; } }
    @media screen and (min-width: 800px) {
      [data-s-type="services-grid"] .ac_grid_outer-column:nth-child(2) {
        width: 40%;
        max-width: 40%; } }
    [data-s-type="services-grid"] .ac_grid_outer-column:nth-child(2) .ac_item {
      width: 50%;
      max-width: 50%;
      margin-bottom: 20px; }
  [data-s-type="services-grid"] .ac_grid_column {
    height: 360px;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    width: 100%; }
    [data-s-type="services-grid"] .ac_grid_column .ac_item {
      width: 100%;
      height: calc(100% - 20px); }
    [data-s-type="services-grid"] .ac_grid_column:nth-child(1) {
      height: 180px; }
      [data-s-type="services-grid"] .ac_grid_column:nth-child(1) .ac_item {
        width: 50%;
        max-width: 50%; }
      @media screen and (min-width: 800px) {
        [data-s-type="services-grid"] .ac_grid_column:nth-child(1) {
          height: 360px;
          width: 33.33333%;
          max-width: 33.33333%; }
          [data-s-type="services-grid"] .ac_grid_column:nth-child(1) .ac_item {
            width: 100%;
            max-width: 100%;
            height: 160px; } }
    @media screen and (max-width: 799px) {
      [data-s-type="services-grid"] .ac_grid_column:nth-child(2) {
        height: 252px; } }
    @media screen and (min-width: 800px) {
      [data-s-type="services-grid"] .ac_grid_column:nth-child(2) {
        width: 66.66667%;
        max-width: 66.66667%; } }
  [data-s-type="services-grid"] .ac_item_content_title {
    font-family: "Montserrat", Arial, sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 120%;
    line-height: 1; }
  [data-s-type="services-grid"] .ac_grid_outer-column:nth-child(1) {
    -webkit-flex-direction: column-reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
    margin-bottom: 20px; }
    @media screen and (min-width: 800px) {
      [data-s-type="services-grid"] .ac_grid_outer-column:nth-child(1) {
        width: 50%;
        max-width: 50%; } }
    [data-s-type="services-grid"] .ac_grid_outer-column:nth-child(1) .ac_grid_column {
      width: 100%;
      max-width: 100%; }
      @media screen and (min-width: 800px) {
        [data-s-type="services-grid"] .ac_grid_outer-column:nth-child(1) .ac_grid_column:nth-child(1) {
          height: inherit; } }
      [data-s-type="services-grid"] .ac_grid_outer-column:nth-child(1) .ac_grid_column:nth-child(1) .ac_item {
        width: 50%;
        max-width: 50%; }
      [data-s-type="services-grid"] .ac_grid_outer-column:nth-child(1) .ac_grid_column:nth-child(1) .ac_item {
        height: 180px; }
  @media screen and (min-width: 800px) {
    [data-s-type="services-grid"] .ac_grid_outer-column:nth-child(2) {
      width: 50%;
      max-width: 50%; } }
  [data-s-type="services-grid"] .ac_grid_outer-column:nth-child(2) .ac_item {
    height: 260px; }

/* SERVICES - 1
--------------------------------------------------------------------------------------------*/
[data-s-type="services"] {
  /* ITEM  GLOBALS
--------------------------------------------------------------------------------------------*/
  /*--------------------------------------------------------------------------------------------*/ }
  [data-s-type="services"] .ac_container {
    max-width: 1200px;
    position: relative;
    z-index: 2;
    margin: 2em auto;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
  [data-s-type="services"] .ac_item {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    position: relative;
    margin-bottom: 1.4em;
    padding: 0 20px;
    padding: 0 20px;
    border-left: solid 1px rgba(102, 102, 102, 0.2); }
    @media screen and (max-width: 39.9375em) {
      [data-s-type="services"] .ac_item {
        width: 50%;
        max-width: 50%; } }
  [data-s-type="services"] .ac_item_container {
    min-height: 100%;
    width: 100%;
    position: relative;
    transition: all 0.3s ease;
    border-bottom: solid 1px rgba(102, 102, 102, 0.2);
    background: none; }
  @media print, screen and (min-width: 64.0625em) {
    [data-s-type="services"] a.ac_item:hover .ac_item_image {
      -webkit-transform: scale(1.02);
          -ms-transform: scale(1.02);
              transform: scale(1.02);
      opacity: 0.8; }
    [data-s-type="services"] a.ac_item:hover .ac_item_image-container {
      background: #000000; }
    [data-s-type="services"] a.ac_item:hover .ac_item_content {
      background: none; }
    [data-s-type="services"] a.ac_item:hover .ac_item_content_icon {
      background: rgba(0, 0, 0, 0.6); }
      [data-s-type="services"] a.ac_item:hover .ac_item_content_icon svg {
        fill: rgba(255, 255, 255, 0.4); }
    [data-s-type="services"] a.ac_item:hover .ac_item_content_title {
      color: rgba(0, 0, 0, 0.6); }
    [data-s-type="services"] a.ac_item:hover .ac_item_content_copy-below {
      color: rgba(0, 0, 0, 0.4); }
    [data-s-type="services"] a.ac_item:hover .ac_item_icon svg {
      fill: rgba(255, 255, 255, 0.4); } }
  [data-s-type="services"][data-s-amount="2"] [data-s-amount-item]:nth-child(2n+1) {
    border-left: transparent; }
  [data-s-type="services"][data-s-amount="2"] [data-s-amount-item]:nth-child(2n+1) {
    border-left: transparent; }
  @media screen and (max-width: 49.9375em) {
    [data-s-type="services"][data-s-amount="3"] [data-s-amount-item]:nth-child(2n+1) {
      border-left: transparent; } }
  @media print, screen and (min-width: 50em) {
    [data-s-type="services"][data-s-amount="3"] [data-s-amount-item]:nth-child(3n+1) {
      border-left: transparent; } }
  @media screen and (max-width: 64em) {
    [data-s-type="services"][data-s-amount="4"] [data-s-amount-item]:nth-child(2n+1) {
      border-left: transparent; } }
  @media print, screen and (min-width: 64.0625em) {
    [data-s-type="services"][data-s-amount="4"] [data-s-amount-item]:nth-child(4n+1) {
      border-left: transparent; } }
  [data-s-type="services"][data-s-amount="2"] [data-s-amount-item]:nth-last-child(-n + 2) [data-border-bottom] {
    border-bottom-color: transparent; }
  @media screen and (max-width: 49.9375em) {
    [data-s-type="services"][data-s-amount="3"] [data-s-amount-item]:nth-last-child(-n + 2) [data-border-bottom] {
      border-bottom-color: transparent; } }
  @media print, screen and (min-width: 50em) {
    [data-s-type="services"][data-s-amount="3"] [data-s-amount-item]:nth-last-child(-n + 3) [data-border-bottom] {
      border-bottom-color: transparent; } }
  @media screen and (max-width: 64em) {
    [data-s-type="services"][data-s-amount="4"] [data-s-amount-item]:nth-last-child(-n + 2) [data-border-bottom] {
      border-bottom-color: transparent; } }
  @media print, screen and (min-width: 64.0625em) {
    [data-s-type="services"][data-s-amount="4"] [data-s-amount-item]:nth-last-child(-n + 4) [data-border-bottom] {
      border-bottom-color: transparent; } }
  [data-s-type="services"] .ac_item_image-container {
    height: 160px;
    width: 100%;
    overflow: hidden;
    position: relative;
    transition: all 0.3s ease;
    background: #000000;
    border-radius: 6px; }
  [data-s-type="services"] .ac_item_image {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    opacity: 1;
    transition: all 0.3s ease;
    will-change: contents;
    border-radius: 6px; }
  [data-s-type="services"] .ac_item_icon {
    position: absolute;
    z-index: 2;
    width: 1.6em;
    height: 1.6em;
    right: 0;
    bottom: 20px; }
    [data-s-type="services"] .ac_item_icon svg {
      width: 1.6em;
      height: 1.6em;
      fill: rgba(0, 0, 0, 0.6);
      transition: fill 0.3s ease; }
  [data-s-type="services"] .ac_item_content {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    padding: 0;
    transition: all 0.3s ease;
    background: none; }
  [data-s-type="services"] .ac_item_content_copy {
    padding: 20px 0;
    width: 100%;
    transition: all 0.3s ease; }
    [data-s-type="services"] .ac_item_content_copy * {
      transition: all 0.3s ease; }
  [data-s-type="services"] .ac_item_content_icon_container {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
  [data-s-type="services"] .ac_item_content_icon {
    width: 80px;
    height: 80px;
    background: #000000;
    padding: 10px;
    margin: 0 0 20px 0;
    border-radius: 100%; }
    [data-s-type="services"] .ac_item_content_icon svg {
      width: 60px;
      height: 60px;
      fill: white; }
  [data-s-type="services"] .ac_item_content_title {
    color: #000000; }
  [data-s-type="services"] .ac_item_content_copy-above {
    display: none; }
  [data-s-type="services"] .ac_item_content_copy-below {
    color: rgba(0, 0, 0, 0.6); }
  [data-s-type="services"] .ac_item_icon {
    position: absolute;
    z-index: 2;
    width: 1.6em;
    height: 1.6em;
    right: 0;
    bottom: 20px; }
    [data-s-type="services"] .ac_item_icon svg {
      width: 1.6em;
      height: 1.6em;
      fill: rgba(0, 0, 0, 0.6);
      transition: fill 0.3s ease; }
  [data-s-type="services"] .ac_item_content_icon_container {
    position: absolute;
    width: 100%;
    top: 40px; }

/* AC_S_TEAM - 1
--------------------------------------------------------------------------------------------*/
/* AC_S_TEAM - 01 - GLOBALS
--------------------------------------------------------------------------------------------*/
[data-s-type="team"] {
  position: relative;
  padding: 20px 0; }
  @media print, screen and (min-width: 50em) {
    [data-s-type="team"] {
      padding: 0 0 10px 0; } }

.ac_team_container {
  max-width: 800px;
  position: relative;
  z-index: 2;
  margin: 2em auto;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  padding: 0 10px; }

.ac_team_item {
  width: 100%;
  max-width: 100%;
  margin-bottom: 1.4em;
  text-align: center;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  padding: 0 20px;
  padding: 0 10px; }
  @media print, screen and (min-width: 64.0625em) {
    .ac_team_item:hover .ac_team_item_logo {
      opacity: 1; } }

.ac_team_item_container {
  width: 100%;
  position: relative;
  background: #ffffff;
  padding: 20px 0;
  border-radius: 6px;
  box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1); }

.ac_team_item_content {
  background: transparent;
  padding: 20px; }

.ac_team_item_profile-image_container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center; }

.ac_team_item_profile-image {
  width: 120px;
  height: 120px;
  background-size: cover;
  border: solid 6px #ffffff;
  box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
  border-radius: 100%; }

.ac_team_item_name {
  font-size: 110%;
  margin-bottom: .6em; }

.ac_team_item_job-description {
  text-transform: uppercase;
  font-size: 90%;
  margin-bottom: .6em; }

.ac_team_item_socials {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin-top: .6em;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center; }
  .ac_team_item_socials svg {
    width: 30px;
    height: 30px;
    fill: #ffffff; }
  .ac_team_item_socials a {
    margin-right: .6em;
    background: #000000;
    width: 40px;
    height: 40px;
    padding: 5px;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    transition: all 0.3s ease;
    border-radius: 100%; }
    .ac_team_item_socials a:last-child {
      margin-right: 0; }
    @media print, screen and (min-width: 64.0625em) {
      .ac_team_item_socials a:hover {
        background: #000000; }
        .ac_team_item_socials a:hover svg {
          fill: rgba(255, 255, 255, 0.5); } }

/*--------------------------------------------------------------------------------------------*/
/* AC_S_TOPTASKS_FIXED - 1
--------------------------------------------------------------------------------------------*/
/* AC_S_TOPTASKS - GLOBALS
--------------------------------------------------------------------------------------------*/
[data-s-type="toptasks-fixed"] {
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 3333;
  width: 100%;
  background: #ffffff;
  border: none; }
  @media screen and (max-width: 64em) {
    [data-s-type="toptasks-fixed"] {
      box-shadow: -5px 0 10px rgba(0, 0, 0, 0.1); } }
  @media print, screen and (min-width: 64.0625em) {
    [data-s-type="toptasks-fixed"] {
      box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
      top: 25vh;
      right: 0;
      bottom: inherit;
      left: inherit;
      width: 400px;
      border-radius: 6px;
      -webkit-transform: translateX(340px);
          -ms-transform: translateX(340px);
              transform: translateX(340px); } }

.ac_toptasks_fixed_container_inner {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: space-around;
      -ms-flex-pack: distribute;
          justify-content: space-around;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 10px 0; }
  @media print, screen and (min-width: 40em) {
    .ac_toptasks_fixed_container_inner {
      padding: 0; } }
  @media print, screen and (min-width: 64.0625em) {
    .ac_toptasks_fixed_container_inner {
      display: block; } }

.ac_toptasks_fixed_item_container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center; }
  @media screen and (max-width: 39.9375em) {
    .ac_toptasks_fixed_item_container {
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column; } }
  @media print, screen and (min-width: 64.0625em) {
    .ac_toptasks_fixed_item_container {
      -webkit-justify-content: flex-start;
          -ms-flex-pack: start;
              justify-content: flex-start; } }

.ac_toptasks_fixed_item {
  display: block;
  background: #ffffff;
  border-radius: 6px;
  width: 398px;
  position: relative; }
  @media screen and (max-width: 64em) {
    .ac_toptasks_fixed_item:after {
      content: '';
      position: absolute;
      top: 10%;
      right: 0;
      background: #ffffff;
      width: 1px;
      height: 80%; }
    .ac_toptasks_fixed_item:last-child:after {
      display: none; } }
  @media print, screen and (min-width: 64.0625em) {
    .ac_toptasks_fixed_item {
      margin-bottom: 0;
      transition: -webkit-transform 0.3s ease;
      transition: transform 0.3s ease;
      transition: transform 0.3s ease, -webkit-transform 0.3s ease;
      will-change: contents; }
      .ac_toptasks_fixed_item:hover {
        background: #ffffff;
        -webkit-transform: translateX(-200px);
            -ms-transform: translateX(-200px);
                transform: translateX(-200px); }
        .ac_toptasks_fixed_item:hover .ac_toptasks_fixed_item_icon svg {
          fill: #670309; }
        .ac_toptasks_fixed_item:hover .ac_toptasks_fixed_item_content_title {
          color: #000000; }
        .ac_toptasks_fixed_item:hover .ac_toptasks_fixed_item_content_btn-container {
          color: black; } }

.ac_toptasks_fixed_item_content_title {
  font-size: 90%;
  color: #000000; }
  @media print, screen and (min-width: 64.0625em) {
    .ac_toptasks_fixed_item_content_title {
      display: none; } }
  @media screen and (max-width: 39.9375em) {
    .ac_toptasks_fixed_item_content_title {
      text-align: center; } }

.ac_toptasks_fixed_item_content_btn-container {
  white-space: nowrap;
  display: none;
  color: rgba(0, 0, 0, 0.5); }
  @media print, screen and (min-width: 64.0625em) {
    .ac_toptasks_fixed_item_content_btn-container {
      display: inline-block;
      width: 200px; } }

.ac_toptasks_fixed_item_icon-container {
  position: relative;
  z-index: 1; }

.ac_toptasks_fixed_item_icon {
  width: 21px;
  height: 21px;
  background: inherit;
  padding: 0;
  border-radius: 100%; }
  @media print, screen and (min-width: 40em) {
    .ac_toptasks_fixed_item_icon {
      width: 60px;
      height: 60px;
      padding: 15px; } }
  .ac_toptasks_fixed_item_icon svg {
    width: 21px;
    height: 21px;
    fill: #000000; }
    @media print, screen and (min-width: 40em) {
      .ac_toptasks_fixed_item_icon svg {
        width: 30px;
        height: 30px; } }

/* AC_S_TOPTASKS - 1
--------------------------------------------------------------------------------------------*/
/* AC_S_TOPTASKS - GLOBALS
--------------------------------------------------------------------------------------------*/
[data-s-type="toptasks"] {
  position: relative; }

.ac_toptasks_container {
  max-width: 1200px;
  margin: 2em auto;
  padding: 0; }

.ac_toptasks_container_inner {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  padding: 5px; }

.ac_toptasks_item {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  padding: 10px;
  position: relative;
  width: 100%; }
  @media print, screen and (min-width: 64.0625em) {
    .ac_toptasks_item:hover .ac_toptasks_item_container {
      background: #000000; }
    .ac_toptasks_item:hover .ac_toptasks_item_image {
      opacity: 0.5; }
    .ac_toptasks_item:hover .ac_toptasks_item_icon {
      background: rgba(255, 255, 255, 0.1); }
      .ac_toptasks_item:hover .ac_toptasks_item_icon svg {
        fill: #ffffff; }
    .ac_toptasks_item:hover .ac_toptasks_item_content_title {
      color: #ffffff; } }

.ac_toptasks_item_container {
  background: #fafafd;
  width: 100%;
  border-radius: 6px;
  padding: 20px;
  position: relative;
  transition: all 0.3s ease;
  box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1); }

.ac_toptasks_item_image-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 120px;
  background: #000000;
  border-top-left-radius: 6px;
  border-top-right-radius: 6px; }

.ac_toptasks_item_image {
  display: none; }

.ac_toptasks_item_content {
  position: relative;
  z-index: 1;
  -webkit-flex: 1;
      -ms-flex: 1;
          flex: 1; }

.ac_toptasks_item_content_title {
  font-family: "Montserrat", Arial, sans-serif;
  font-weight: 600;
  font-style: normal;
  font-size: 120%;
  margin-bottom: .4em;
  max-width: 100%;
  line-height: 1;
  color: #000000;
  transition: all 0.3s ease; }

.ac_toptasks_item_content_description {
  display: none; }

.ac_toptasks_item_content_btn-container {
  display: none; }

.ac_toptasks_item_icon-container {
  position: relative;
  z-index: 1;
  margin-bottom: 40px; }

.ac_toptasks_item_icon {
  width: 80px;
  height: 80px;
  background: #ffffff;
  padding: 12px;
  border-radius: 100%;
  transition: all 0.3s ease; }
  .ac_toptasks_item_icon svg {
    width: 56px;
    height: 56px;
    transition: all 0.3s ease;
    fill: #000000; }

/*--------------------------------------------------------------------------------------------*/
@media screen and (min-width: 40em) and (max-width: 49.9375em) {
  .ac_toptasks_item {
    width: 100%;
    max-width: 100%; } }

@media screen and (min-width: 40em) and (max-width: 49.9375em) {
  .ac_toptasks_item:after {
    top: inherit;
    right: inherit;
    left: 20px;
    bottom: 0;
    height: 1px;
    width: calc(100% - 40px); } }

.ac_toptasks_item_container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  overflow: hidden;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }

.ac_toptasks_item_image-container {
  display: block;
  width: 120px;
  height: 100%;
  background: #000000;
  border-top-left-radius: 6px;
  border-top-right-radius: 0;
  border-bottom-left-radius: 6px;
  border-bottom-right-radius: 0; }

.ac_toptasks_item_icon-container {
  -webkit-flex: 0 0 120px;
      -ms-flex: 0 0 120px;
          flex: 0 0 120px;
  margin-bottom: 0; }

.ac_toptasks_item_content_title {
  margin-bottom: 0; }

/* VAC - 3
--------------------------------------------------------------------------------------------*/
/* AC_S_VAC - GLOBALS
--------------------------------------------------------------------------------------------*/
.ac_vac_container {
  max-width: 1200px;
  margin: 0 auto; }

.ac_vac_item_container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin-bottom: 0; }
  @media screen and (max-width: 39.9375em) {
    .ac_vac_item_container {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap;
      margin-bottom: 0; } }

.ac_vac_item_visual {
  position: relative;
  width: 100%;
  height: 250px; }
  @media print, screen and (min-width: 64.0625em) {
    .ac_vac_item_visual {
      width: 60%;
      max-width: 60%;
      min-height: 500px;
      height: inherit; } }

.ac_vac_item_content {
  width: 100%;
  max-width: 100%; }
  @media print, screen and (min-width: 64.0625em) {
    .ac_vac_item_content {
      width: 40%;
      max-width: 40%;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-justify-content: center;
          -ms-flex-pack: center;
              justify-content: center; } }

.ac_vac_item_content_inner {
  max-width: 500px;
  padding: 20px; }

@media print, screen and (min-width: 40em) {
  .ac_vac_item.v_text-right .ac_vac_item_container {
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; } }

.ac_vac_container {
  display: block;
  z-index: inherit;
  max-height: 500px;
  overflow: hidden;
  opacity: 0;
  transition: opacity 0.3s ease; }
  .ac_vac_container.slick-initialized {
    max-height: inherit;
    overflow: visible;
    opacity: 1; }

/*--------------------------------------------------------------------------------------------*/
.ac_vac_item_container {
  min-height: 500px;
  position: relative;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex; }

@media print, screen and (min-width: 40em) {
  .ac_vac_item.v_text-right .ac_vac_item_container {
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-align-items: flex-end;
        -ms-flex-align: end;
            align-items: flex-end; } }

@media print, screen and (min-width: 64.0625em) {
  .ac_vac_item.v_text-right .ac_vac_item_content {
    padding-right: 60px; } }

@media print, screen and (min-width: 64.0625em) {
  .ac_vac_item.v_text-left .ac_vac_item_content {
    padding-left: 60px; } }

.ac_vac_item_visual {
  position: absolute;
  width: 100%;
  max-width: 100%;
  height: 100%;
  top: 0;
  left: 0; }

.ac_vac_item_content {
  margin: 40px 0; }

.ac_vac_item_content_inner {
  width: 90%;
  min-width: initial;
  margin: 0 auto;
  background: #ffffff;
  box-shadow: 10px 10px 20px rgba(34, 34, 34, 0.2);
  z-index: 2;
  position: relative;
  padding: 40px; }
  @media print, screen and (min-width: 64.0625em) {
    .ac_vac_item_content_inner {
      width: initial;
      margin: initial; } }

/* PARTNERS - 1
--------------------------------------------------------------------------------------------*/
/* AC_S_PARTNERS - GLOBALS
--------------------------------------------------------------------------------------------*/
[data-s-type="partners"] {
  position: relative;
  padding: 20px 0; }
  @media print, screen and (min-width: 50em) {
    [data-s-type="partners"] {
      padding: 0 0 10px 0; } }
  [data-s-type="partners"].v_is-slider.v_has-dots .ac_brands_container {
    margin-bottom: 4em; }
  [data-s-type="partners"].v_is-slider .slick-dots {
    bottom: -4em; }

.ac_partners_container {
  position: relative;
  z-index: 2;
  margin: 2em auto;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  padding: 0 10px; }

.ac_partners_item {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  margin-bottom: 0;
  width: 50%;
  max-width: 50%;
  padding: 0 20px;
  padding: 0 10px; }
  .ac_partners_item.v_smaller-logo .ac_partners_item_logo {
    -webkit-transform: scale(0.8);
        -ms-transform: scale(0.8);
            transform: scale(0.8); }
  .ac_partners_item.v_larger-logo .ac_partners_item_logo {
    -webkit-transform: scale(1.2);
        -ms-transform: scale(1.2);
            transform: scale(1.2); }

@media print, screen and (min-width: 64.0625em) {
  a.ac_partners_item:hover .ac_partners_item_logo {
    opacity: 0.6; }
  a.ac_partners_item:hover .ac_partners_item_description {
    color: #000000; } }

.ac_partners_item_container {
  height: 100%;
  position: relative;
  background: none;
  padding: 0; }

.ac_partners_item_description {
  display: none; }

.ac_partners_item_logo_container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center; }
  @media print, screen and (min-width: 40em) {
    .ac_partners_item_logo_container {
      padding: 0; } }

.ac_partners_item_logo {
  width: 60%;
  height: 100px;
  max-width: 140px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center center;
  transition: opacity 0.3s ease;
  opacity: 1; }

[data-s-type="partners"].v_is-slider .ac_partners_container {
  display: block;
  z-index: inherit;
  max-height: 100px;
  overflow: hidden;
  opacity: 0;
  transition: opacity 0.3s ease; }
  [data-s-type="partners"].v_is-slider .ac_partners_container.slick-initialized {
    max-height: 100px;
    overflow: visible;
    opacity: 1; }

[data-s-type="partners"].v_is-slider [data-s-amount-item] {
  margin-bottom: 0; }

[data-s-type="partners"].v_is-slider [data-border-bottom] {
  border-bottom-color: transparent; }

@media screen and (max-width: 39.9375em) {
  [data-s-type="partners"].v_is-slider [data-s-amount-item] {
    border-left-color: transparent; } }

/*--------------------------------------------------------------------------------------------*/
[data-s-type="partners"] .slick-track {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex; }

/* SECTION CONTROL
--------------------------------------------------------------------------------------------*/
[data-s-id="home-toptasks"] {
  margin-top: -60px;
  position: relative;
  z-index: 22; }
  @media print, screen and (min-width: 64.0625em) {
    [data-s-id="home-toptasks"] {
      margin-top: -110px; } }

[data-s-id="home-services"] {
  padding-top: 40px;
  padding-bottom: 120px; }

/* STATE HIDDEN
----------------------------------------------------------------------------------------------------*/
.s_hidden {
  display: none !important; }

/* TEXT ALIGN
----------------------------------------------------------------------------------------------------*/
.a_text-align_left {
  text-align: left !important; }

.a_text-align_center {
  text-align: center !important; }

.a_text-align_right {
  text-align: right !important; }

/* FLEXBOX HELPERS
----------------------------------------------------------------------------------------------------*/
.a_justify_flex-start {
  -webkit-justify-content: flex-start !important;
      -ms-flex-pack: start !important;
          justify-content: flex-start !important; }

.a_justify_center {
  -webkit-justify-content: center !important;
      -ms-flex-pack: center !important;
          justify-content: center !important; }

.a_justify_flex-end {
  -webkit-justify-content: flex-end !important;
      -ms-flex-pack: end !important;
          justify-content: flex-end !important; }

.a_justify_space-around {
  -webkit-justify-content: space-around !important;
      -ms-flex-pack: distribute !important;
          justify-content: space-around !important; }

.a_justify_space-between {
  -webkit-justify-content: space-between !important;
      -ms-flex-pack: justify !important;
          justify-content: space-between !important; }

.a_align-items_center {
  -webkit-align-items: center !important;
      -ms-flex-align: center !important;
          align-items: center !important; }

.a_align-items_flex-start {
  -webkit-align-items: flex-start !important;
      -ms-flex-align: start !important;
          align-items: flex-start !important; }

.a_align-items_flex-end {
  -webkit-align-items: flex-end !important;
      -ms-flex-align: end !important;
          align-items: flex-end !important; }

.a_flex-direction_row {
  -webkit-flex-direction: row !important;
      -ms-flex-direction: row !important;
          flex-direction: row !important; }

.a_flex-direction_row-reverse {
  -webkit-flex-direction: row-reverse !important;
      -ms-flex-direction: row-reverse !important;
          flex-direction: row-reverse !important; }

/* MAX WIDTH
----------------------------------------------------------------------------------------------------*/
.a_max-width-full {
  max-width: 100% !important; }

.a_max-width-600 {
  max-width: 600px !important;
  margin: 0 auto; }

.a_max-width-800 {
  max-width: 800px !important;
  margin: 0 auto; }

.a_max-width-1000 {
  max-width: 1000px !important;
  margin: 0 auto; }

.a_max-width-1200 {
  max-width: 1200px !important;
  margin: 0 auto; }

.a_max-width-1400 {
  max-width: 1400px !important;
  margin: 0 auto; }

.a_max-width-1600 {
  max-width: 1600px !important;
  margin: 0 auto; }

.a_max-width-1800 {
  max-width: 1800px !important;
  margin: 0 auto; }

.a_max-width-2000 {
  max-width: 2000px !important;
  margin: 0 auto; }

/* BACKGROUND ATTACHMENT 
----------------------------------------------------------------------------------------------------*/
@media print, screen and (min-width: 64.0625em) {
  .a_background-attachment_fixed {
    background-attachment: fixed; } }

/* BACKGROUND CONTAIN
----------------------------------------------------------------------------------------------------*/
.a_contain {
  background-size: contain !important;
  background-repeat: no-repeat;
  background-position: center center; }

/* BACKGROUND COVER
----------------------------------------------------------------------------------------------------*/
.a_cover-ct {
  background-size: cover !important;
  background-position: 50% 0% !important; }

.a_cover-cc {
  background-size: cover !important;
  background-position: 50% 50% !important; }

.a_cover-cb {
  background-size: cover !important;
  background-position: 50% 100% !important; }

.a_cover-lt {
  background-size: cover !important;
  background-position: 0% 0% !important; }

.a_cover-lc {
  background-size: cover !important;
  background-position: 0% 50% !important; }

.a_cover-lb {
  background-size: cover !important;
  background-position: 0% 100% !important; }

.a_cover-rt {
  background-size: cover !important;
  background-position: 100% 0% !important; }

.a_cover-rc {
  background-size: cover !important;
  background-position: 100% 50% !important; }

.a_cover-rb {
  background-size: cover !important;
  background-position: 100% 100% !important; }

@media print, screen and (min-width: 40em) {
  .a_medium-portrait_cover-ct {
    background-position: 50% 0% !important; } }

@media print, screen and (min-width: 40em) {
  .a_medium-portrait_cover-cc {
    background-position: 50% 50% !important; } }

@media print, screen and (min-width: 40em) {
  .a_medium-portrait_cover-cb {
    background-position: 50% 100% !important; } }

@media print, screen and (min-width: 40em) {
  .a_medium-portrait_cover-lt {
    background-position: 0% 0% !important; } }

@media print, screen and (min-width: 40em) {
  .a_medium-portrait_cover-lc {
    background-position: 0% 50% !important; } }

@media print, screen and (min-width: 40em) {
  .a_medium-portrait_cover-lb {
    background-position: 0% 100% !important; } }

@media print, screen and (min-width: 40em) {
  .a_medium-portrait_cover-rt {
    background-position: 100% 0% !important; } }

@media print, screen and (min-width: 40em) {
  .a_medium-portrait_cover-rc {
    background-position: 100% 50% !important; } }

@media print, screen and (min-width: 40em) {
  .a_medium-portrait_cover-rb {
    background-position: 100% 100% !important; } }

@media print, screen and (min-width: 50em) {
  .a_medium_cover-ct {
    background-position: 50% 0% !important; } }

@media print, screen and (min-width: 50em) {
  .a_medium_cover-cc {
    background-position: 50% 50% !important; } }

@media print, screen and (min-width: 50em) {
  .a_medium_cover-cb {
    background-position: 50% 100% !important; } }

@media print, screen and (min-width: 50em) {
  .a_medium_cover-lt {
    background-position: 0% 0% !important; } }

@media print, screen and (min-width: 50em) {
  .a_medium_cover-lc {
    background-position: 0% 50% !important; } }

@media print, screen and (min-width: 50em) {
  .a_medium_cover-lb {
    background-position: 0% 100% !important; } }

@media print, screen and (min-width: 50em) {
  .a_medium_cover-rt {
    background-position: 100% 0% !important; } }

@media print, screen and (min-width: 50em) {
  .a_medium_cover-rc {
    background-position: 100% 50% !important; } }

@media print, screen and (min-width: 50em) {
  .a_medium_cover-rb {
    background-position: 100% 100% !important; } }

/* OPACITY
----------------------------------------------------------------------------------------------------*/
.a_opacity-0 {
  opacity: 0 !important; }

.a_opacity-5 {
  opacity: 0.05 !important; }

.a_opacity-10 {
  opacity: 0.1 !important; }

.a_opacity-20 {
  opacity: 0.2 !important; }

.a_opacity-30 {
  opacity: 0.3 !important; }

.a_opacity-40 {
  opacity: 0.4 !important; }

.a_opacity-50 {
  opacity: 0.5 !important; }

.a_opacity-60 {
  opacity: 0.6 !important; }

.a_opacity-70 {
  opacity: 0.7 !important; }

.a_opacity-80 {
  opacity: 0.8 !important; }

.a_opacity-90 {
  opacity: 0.9 !important; }

.a_opacity-100 {
  opacity: 1 !important; }

/* GRAYSCALE
----------------------------------------------------------------------------------------------------*/
.a_grayscale-20 {
  -webkit-filter: grayscale(20%) !important;
          filter: grayscale(20%) !important; }

.a_grayscale-40 {
  -webkit-filter: grayscale(40%) !important;
          filter: grayscale(40%) !important; }

.a_grayscale-60 {
  -webkit-filter: grayscale(60%) !important;
          filter: grayscale(60%) !important; }

.a_grayscale-80 {
  -webkit-filter: grayscale(80%) !important;
          filter: grayscale(80%) !important; }

.a_grayscale-100 {
  -webkit-filter: grayscale(100%) !important;
          filter: grayscale(100%) !important; }

/* BLEND MODES
----------------------------------------------------------------------------------------------------*/
.a_blend-multiply {
  mix-blend-mode: multiply !important; }

.a_blend-screen {
  mix-blend-mode: screen !important; }

.a_blend-overlay {
  mix-blend-mode: overlay !important; }

.a_blend-exclusion {
  mix-blend-mode: exclusion !important; }

.a_blend-difference {
  mix-blend-mode: difference !important; }

/* SHADOWS
----------------------------------------------------------------------------------------------------*/
.a_cast-shadow_top {
  box-shadow: 0px -10px 10px rgba(34, 34, 34, 0.1) !important; }

/* MARGIN HELPERS
----------------------------------------------------------------------------------------------------*/
.a_no-margin {
  margin: 0 !important; }

.a_no-margin-top {
  margin-top: 0 !important; }

.a_no-margin-right {
  margin-right: 0 !important; }

.a_no-margin-bottom {
  margin-bottom: 0 !important; }

.a_no-margin-left {
  margin-left: 0 !important; }

.a_margin-top-0 {
  margin-top: 0px !important; }

.a_margin-bottom-0 {
  margin-bottom: 0px !important; }

.a_margin-top-10 {
  margin-top: 5px !important; }

.a_margin-bottom-10 {
  margin-bottom: 5px !important; }

.a_margin-top-20 {
  margin-top: 10px !important; }

.a_margin-bottom-20 {
  margin-bottom: 10px !important; }

.a_margin-top-40 {
  margin-top: 20px !important; }

.a_margin-bottom-40 {
  margin-bottom: 20px !important; }

.a_margin-top-60 {
  margin-top: 30px !important; }

.a_margin-bottom-60 {
  margin-bottom: 30px !important; }

.a_margin-top-80 {
  margin-top: 40px !important; }

.a_margin-bottom-80 {
  margin-bottom: 40px !important; }

.a_margin-top-100 {
  margin-top: 50px !important; }

.a_margin-bottom-100 {
  margin-bottom: 50px !important; }

@media print, screen and (min-width: 50em) {
  .a_margin-top-0 {
    margin-top: 0px !important; } }

@media print, screen and (min-width: 50em) {
  .a_margin-bottom-0 {
    margin-bottom: 0px !important; } }

@media print, screen and (min-width: 50em) {
  .a_margin-top-10 {
    margin-top: 10px !important; } }

@media print, screen and (min-width: 50em) {
  .a_margin-bottom-10 {
    margin-bottom: 10px !important; } }

@media print, screen and (min-width: 50em) {
  .a_margin-top-20 {
    margin-top: 20px !important; } }

@media print, screen and (min-width: 50em) {
  .a_margin-bottom-20 {
    margin-bottom: 20px !important; } }

@media print, screen and (min-width: 50em) {
  .a_margin-top-40 {
    margin-top: 40px !important; } }

@media print, screen and (min-width: 50em) {
  .a_margin-bottom-40 {
    margin-bottom: 40px !important; } }

@media print, screen and (min-width: 50em) {
  .a_margin-top-60 {
    margin-top: 60px !important; } }

@media print, screen and (min-width: 50em) {
  .a_margin-bottom-60 {
    margin-bottom: 60px !important; } }

@media print, screen and (min-width: 50em) {
  .a_margin-top-80 {
    margin-top: 80px !important; } }

@media print, screen and (min-width: 50em) {
  .a_margin-bottom-80 {
    margin-bottom: 80px !important; } }

@media print, screen and (min-width: 50em) {
  .a_margin-top-100 {
    margin-top: 100px !important; } }

@media print, screen and (min-width: 50em) {
  .a_margin-bottom-100 {
    margin-bottom: 100px !important; } }

/* PADDING HELPERS
----------------------------------------------------------------------------------------------------*/
.a_no-padding {
  padding: 0 !important; }

.a_no-padding-top {
  padding-top: 0 !important; }

.a_no-padding-right {
  padding-right: 0 !important; }

.a_no-padding-bottom {
  padding-bottom: 0 !important; }

.a_no-padding-left {
  padding-left: 0 !important; }

.a_padding-top-0 {
  padding-top: 0px !important; }

.a_padding-bottom-0 {
  padding-bottom: 0px !important; }

@media print, screen and (min-width: 50em) {
  .a_padding-top-0 {
    padding-top: 0px !important; } }

@media print, screen and (min-width: 50em) {
  .a_padding-bottom-0 {
    padding-bottom: 0px !important; } }

.a_padding-top-10 {
  padding-top: 5px !important; }

.a_padding-bottom-10 {
  padding-bottom: 5px !important; }

@media print, screen and (min-width: 50em) {
  .a_padding-top-10 {
    padding-top: 10px !important; } }

@media print, screen and (min-width: 50em) {
  .a_padding-bottom-10 {
    padding-bottom: 10px !important; } }

.a_padding-top-20 {
  padding-top: 10px !important; }

.a_padding-bottom-20 {
  padding-bottom: 10px !important; }

@media print, screen and (min-width: 50em) {
  .a_padding-top-20 {
    padding-top: 20px !important; } }

@media print, screen and (min-width: 50em) {
  .a_padding-bottom-20 {
    padding-bottom: 20px !important; } }

.a_padding-top-40 {
  padding-top: 20px !important; }

.a_padding-bottom-40 {
  padding-bottom: 20px !important; }

@media print, screen and (min-width: 50em) {
  .a_padding-top-40 {
    padding-top: 40px !important; } }

@media print, screen and (min-width: 50em) {
  .a_padding-bottom-40 {
    padding-bottom: 40px !important; } }

.a_padding-top-60 {
  padding-top: 30px !important; }

.a_padding-bottom-60 {
  padding-bottom: 30px !important; }

@media print, screen and (min-width: 50em) {
  .a_padding-top-60 {
    padding-top: 60px !important; } }

@media print, screen and (min-width: 50em) {
  .a_padding-bottom-60 {
    padding-bottom: 60px !important; } }

.a_padding-top-80 {
  padding-top: 40px !important; }

.a_padding-bottom-80 {
  padding-bottom: 40px !important; }

@media print, screen and (min-width: 50em) {
  .a_padding-top-80 {
    padding-top: 80px !important; } }

@media print, screen and (min-width: 50em) {
  .a_padding-bottom-80 {
    padding-bottom: 80px !important; } }

.a_padding-top-100 {
  padding-top: 50px !important; }

.a_padding-bottom-100 {
  padding-bottom: 50px !important; }

@media print, screen and (min-width: 50em) {
  .a_padding-top-100 {
    padding-top: 100px !important; } }

@media print, screen and (min-width: 50em) {
  .a_padding-bottom-100 {
    padding-bottom: 100px !important; } }

.a_padding-top-120 {
  padding-top: 60px !important; }

.a_padding-bottom-120 {
  padding-bottom: 60px !important; }

@media print, screen and (min-width: 50em) {
  .a_padding-top-120 {
    padding-top: 120px !important; } }

@media print, screen and (min-width: 50em) {
  .a_padding-bottom-120 {
    padding-bottom: 120px !important; } }

.a_padding-top-140 {
  padding-top: 70px !important; }

.a_padding-bottom-140 {
  padding-bottom: 70px !important; }

@media print, screen and (min-width: 50em) {
  .a_padding-top-140 {
    padding-top: 140px !important; } }

@media print, screen and (min-width: 50em) {
  .a_padding-bottom-140 {
    padding-bottom: 140px !important; } }

/* BACKGROUND COLOR
----------------------------------------------------------------------------------------------------*/
.a_bg_brand_primary {
  background-color: #e30613 !important; }

.a_bg_brand_primary-darker {
  background-color: #670309 !important; }

.a_bg_brand_secondary {
  background-color: #f2f2f2 !important; }

.a_bg_brand_secondary-darker {
  background-color: #cccccc !important; }

.a_bg_brand_tertiary {
  background-color: #000000 !important; }

.a_bg_brand_tertiary-darker {
  background-color: #000000 !important; }

.a_bg_brand_black {
  background-color: #222222 !important; }

.a_bg_brand_white {
  background-color: #ffffff !important; }

.a_bg_brand_light-gray {
  background-color: #f0f0f0 !important; }

.a_bg_brand_lightest-gray {
  background-color: #fafafd !important; }

.a_bg_default_light {
  background: #ffffff !important; }

.a_bg_default_dark {
  background: #000000 !important; }

/* BACKGROUND GRADIENTS
----------------------------------------------------------------------------------------------------*/
.a_bg_gradient_brand_primary {
  background: linear-gradient(-135deg, #670309, #e30613) !important; }

.a_bg_gradient_brand_secondary {
  background: linear-gradient(-135deg, #cccccc, #f2f2f2) !important; }

.a_bg_gradient_brand_tertiary {
  background: linear-gradient(-135deg, #000000, #000000) !important; }

/* FILL COLOR
----------------------------------------------------------------------------------------------------*/
.a_fill_brand_primary svg {
  fill: #e30613 !important; }

.a_fill_brand_primary-darker svg {
  fill: #670309 !important; }

.a_fill_brand_secondary svg {
  fill: #f2f2f2 !important; }

.a_fill_brand_secondary-darker svg {
  fill: #cccccc !important; }

.a_fill_brand_tertiary svg {
  fill: #000000 !important; }

.a_fill_brand_tertiary-darker svg {
  fill: #000000 !important; }

.a_fill_brand_black svg {
  fill: #222222 !important; }

.a_fill_brand_white svg {
  fill: #ffffff !important; }

.a_fill_brand_light-gray svg {
  fill: #f0f0f0 !important; }

.a_fill_brand_lightest-gray svg {
  fill: #fafafd !important; }

.a_fill_default svg {
  fill: #000000 !important; }

.a_fill_default_light svg {
  fill: #ffffff !important; }

.a_fill_default_dark svg {
  fill: #000000 !important; }

/* BORDERS
----------------------------------------------------------------------------------------------------*/
.a_border-top_brand_light-gray {
  border-top: solid 1px #f0f0f0 !important; }

.a_border-bottom_brand_light-gray {
  border-bottom: solid 1px #f0f0f0 !important; }

/* TEXT COLOR
----------------------------------------------------------------------------------------------------*/
.a_text_brand_primary * {
  color: #e30613 !important; }

.a_text_brand_primary-darker * {
  color: #670309 !important; }

.a_text_brand_secondary * {
  color: #f2f2f2 !important; }

.a_text_brand_secondary-darker * {
  color: #cccccc !important; }

.a_text_brand_tertiary * {
  color: #000000 !important; }

.a_text_brand_tertiary-darker * {
  color: #000000 !important; }

.a_text_brand_black * {
  color: #222222 !important; }

.a_text_brand_white * {
  color: #ffffff !important; }

.a_text_brand_light-gray * {
  color: #f0f0f0 !important; }

.a_text_brand_lightest-gray * {
  color: #fafafd !important; }

.a_text_default * {
  color: #000000 !important; }

.a_text_default_light * {
  color: #ffffff !important; }

.a_text_default_dark * {
  color: #000000 !important; }

/* FIXES
--------------------------------------------------------------------------------------------*/
#breadcrumbs {
  display: none; }

[data-s-type="hero-alt"] {
  background: linear-gradient(-135deg, #cccccc, #f2f2f2) !important; }
  [data-s-type="hero-alt"] h1 {
    color: #222222 !important;
    -webkit-text-decoration-line: underline !important;
            text-decoration-line: underline !important;
    text-underline-offset: 4px;
    -webkit-text-decoration-color: #e30613;
            text-decoration-color: #e30613; }

[data-s-type="hero"] .ac_hero_container {
  height: 60vh;
  min-height: 302px; }

.a_bg_brand_primary {
  background-color: #e30613; }

[data-s-type="hero-alt"] .ac_hero_alt_container {
  height: 100px; }

[data-s-type="hero"] .ac_hero_slide_content_inner {
  background-color: rgba(255, 255, 255, 0.4);
  -webkit-justify-content: left;
      -ms-flex-pack: left;
          justify-content: left;
  padding: 20px 20px 10px 20px;
  width: 450px;
  margin-left: -100px;
  margin-top: 30px;
  border-top: 2px solid #e30613;
  border-bottom: 2px solid #e30613;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start; }
  [data-s-type="hero"] .ac_hero_slide_content_inner h2, [data-s-type="hero"] .ac_hero_slide_content_inner p {
    color: #222222 !important;
    font-weight: 500;
    line-height: 35px;
    text-align: center; }
  [data-s-type="hero"] .ac_hero_slide_content_inner .button.v_has-icon-right {
    background: #e30613; }

@media only screen and (max-width: 1000px) {
  [data-s-type="hero"] .ac_hero_slide_content_inner {
    margin-left: 0; } }

[data-s-type="hero"] .ac_hero_slide_content_text {
  -webkit-flex: 0 1 100%;
  -ms-flex: 0 1 100%;
  flex: 0 1 100%;
  max-width: 100%; }

.ac_image-gallery_item_image_container {
  height: 300px !important; }

[data-s-type="references"] .ac_item_image-container:before {
  background: linear-gradient(180deg, rgba(3, 31, 49, 0), rgba(3, 31, 49, 0.8)); }

[data-s-type="references"] .ac_item_image-container {
  background-color: #f2f2f2; }

.ac_content_1-1 {
  padding-left: 10px;
  padding-right: 10px; }

[data-s-id="46-2-services"] .ac_item_content_icon, .ac_item_content_copy-below {
  display: none; }

[data-s-type="services"] .ac_container {
  max-height: 260px; }

[data-s-id="home-services"] {
  padding: 0px; }
  [data-s-id="home-services"] .ac_item_content_title {
    font-size: 115%; }

@media print, screen and (max-width: 800px) {
  [data-s-type="services"] .ac_item {
    height: 200px; } }

@media screen and (max-width: 39.9375em) {
  [data-s-type="services"] .ac_item {
    width: auto;
    max-width: initial;
    -webkit-flex: 1 0 45%;
        -ms-flex: 1 0 45%;
            flex: 1 0 45%;
    height: 150px; }
    [data-s-type="services"] .ac_item .ac_item_icon {
      display: none; } }

[data-s-type="services"] .ac_item_icon svg {
  fill: #e30613; }

.service-template-default [data-s-type="services"] .ac_item_content_icon svg {
  stroke: #222222; }

.service-template-default [data-s-type="services"] .ac_item_content_icon {
  background: #f0f0f0; }

.service-template-default [data-s-type="services"] .ac_item_content_title {
  color: #222222; }

.service-template-default [data-s-type="services"] a.ac_item:hover .ac_item_content_title {
  color: #000000; }

.service-template-default [data-s-type="services"] a.ac_item:hover .ac_item_icon svg {
  fill: #670309 !important; }

.service-template-default [data-s-type="services"] a.ac_item:hover .ac_item_content_icon {
  background: #e30613; }

.service-template-default [data-s-type="services"] .ac_item_content_title {
  color: #222222 !important; }

.service-template-default [data-s-type="services"] .ac_item {
  height: 150px; }

.service-template-default [data-s-type="services"] .ac_item_content_title {
  font-size: 115%; }

.ac_toptasks_container_inner a:hover, .ac_toptasks_container_inner a:focus {
  color: #670309; }

.ac_toptasks_item {
  position: relative;
  top: 0;
  transition: top ease 0.5s; }

.ac_toptasks_item:hover .ac_toptasks_item_container {
  background: #fafafd;
  top: -5px; }
  .ac_toptasks_item:hover .ac_toptasks_item_container .ac_toptasks_item_icon {
    background: rgba(255, 255, 255, 0.5); }
  .ac_toptasks_item:hover .ac_toptasks_item_container .ac_toptasks_item_content_title {
    color: #222222; }

.ac_toptasks_item_image-container {
  background-color: #e30613; }

.ac_toptasks_item_icon svg {
  stroke: #cccccc; }

[data-m-type="menu-2"] ul.menu.dropdown a:last-of-type {
  font-size: 10pt !important; }

.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
  border-color: #e30613 transparent transparent; }

[data-m-type="menu-2"] ul.is-dropdown-submenu a {
  color: #222222; }

.ac_menu-2_bar_bottom {
  background-color: #000000;
  z-index: auto; }
  .ac_menu-2_bar_bottom a {
    font-weight: 600;
    color: #ffffff; }

.ac_menu-2_bar_bottom_container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.ac_menu-2_bar_top {
  background: transparent; }

.ac_menu-2_bar_top_container {
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.ac_menu-2_main_content .button {
  font-size: 18px; }

@media screen and (max-width: 49.9375em) {
  .ac_menu-2_sticky {
    display: block; }
  #menu-mobile {
    list-style: none;
    width: 100%;
    margin-left: 0;
    padding-left: 0; }
    #menu-mobile li {
      display: block;
      width: 100%;
      text-align: center;
      margin: 0 0 5px 0;
      padding: 0 0 5px 0;
      border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
      #menu-mobile li a {
        text-align: center;
        display: block; }
      #menu-mobile li:last-of-type {
        border-bottom: 0; }
    #menu-mobile .sub-menu {
      background: rgba(0, 0, 0, 0.1);
      padding: 10px 0;
      border-radius: 5px; }
      #menu-mobile .sub-menu li {
        border-bottom: 0; } }

.button.v_has-icon-left .svg-container {
  margin-right: 5px; }

[data-m-type="menu-2"] ul#menu-top a {
  color: #cccccc; }

[data-m-type="menu-2"] ul.menu.dropdown a:last-of-type {
  margin-right: 0.84em; }

.ac_menu-2_logo_img {
  width: 150px;
  transition: all .3s ease;
  max-width: 100% !important;
  -webkit-transform: none;
      -ms-transform: none;
          transform: none;
  margin: 0; }

.ac_menu-2_logo_container {
  margin-right: auto; }

.ac_menu-2_logo_link {
  position: absolute;
  background: white;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
  padding: 25px 10px 10px 10px;
  top: -20px; }

@media only screen and (max-width: 1000px) {
  .ac_menu-2_logo_container .ac_menu-2_logo_link {
    display: block;
    width: 150px;
    height: 80px;
    box-shadow: none;
    padding: 0;
    background-image: url("../img/logo/logo_small.png");
    background-size: 150px auto;
    background-repeat: no-repeat;
    background-position: center center; }
    .ac_menu-2_logo_container .ac_menu-2_logo_link img {
      display: none !important; } }

@media only screen and (max-width: 790px) {
  .ac_menu-2_logo_container .ac_menu-2_logo_link {
    top: 5px !important;
    height: 55px !important;
    background-size: auto 100% !important; } }

.ac_menu-2_sticky.is-stuck .ac_menu-2_logo_img {
  max-width: 100% !important;
  width: 150px !important;
  -webkit-transform: none;
      -ms-transform: none;
          transform: none; }

.ac_menu-2_main_container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }
  .ac_menu-2_main_container a {
    font-size: 15px !important; }
  .ac_menu-2_main_container .ac_menu-2_menu {
    margin-bottom: 14px !important; }
  .ac_menu-2_main_container .button {
    margin-right: 20px;
    padding-right: 20px;
    border-right: 1px solid rgba(0, 0, 0, 0.3);
    border-radius: 0px; }

.ac_menu-2_sticky.is-stuck .ac_menu-2_main_container .button {
  border-right: 1px solid rgba(0, 0, 0, 0.1); }

[data-s-id="home-partners"] h2 {
  -webkit-text-decoration-line: underline !important;
          text-decoration-line: underline !important;
  text-underline-offset: 4px;
  -webkit-text-decoration-color: #e30613;
          text-decoration-color: #e30613; }

h2 {
  padding-bottom: 10px; }

h2.section-title {
  -webkit-text-decoration-line: underline !important;
          text-decoration-line: underline !important;
  text-underline-offset: 4px;
  -webkit-text-decoration-color: #e30613;
          text-decoration-color: #e30613; }

.ac_heading_title > h1 {
  -webkit-text-decoration-line: underline !important;
          text-decoration-line: underline !important;
  text-underline-offset: 4px;
  -webkit-text-decoration-color: #e30613;
          text-decoration-color: #e30613; }

.ac_content_flex > div {
  -webkit-flex: 1;
      -ms-flex: 1;
          flex: 1; }

[data-f-type="footer-1"] .ac_footer_primary {
  background: #000000;
  border-top: 2px solid #f0f0f0; }
  [data-f-type="footer-1"] .ac_footer_primary h2 {
    -webkit-text-decoration-line: underline !important;
            text-decoration-line: underline !important;
    text-underline-offset: 4px;
    -webkit-text-decoration-color: #e30613;
            text-decoration-color: #e30613; }
  [data-f-type="footer-1"] .ac_footer_primary .ac_footer_primary_column {
    -webkit-flex: 1 !important;
        -ms-flex: 1 !important;
            flex: 1 !important;
    max-width: initial !important; }
  [data-f-type="footer-1"] .ac_footer_primary .alignnone {
    width: 90%;
    float: right;
    margin: -100px 0 0 0; }

@media screen and (max-width: 49.9375em) {
  [data-f-type="footer-1"] .ac_footer_primary_column:nth-child(4) {
    display: none !important; }
  [data-f-type="footer-1"] .ac_footer_primary_column:nth-child(3) {
    display: block !important; } }

.main-container [data-s-type="section-content"] a {
  text-decoration: underline;
  color: #e30613; }

[data-s-type="news"] a.ac_item:hover .ac_item_content_copy-above {
  color: #999999; }

[data-s-type="news"] a.ac_item:hover .ac_item_content_title {
  color: #999999; }

[data-s-type="news"][data-s-amount="3"] .ac_item {
  display: block !important; }

@media screen and (min-width: 1000px) {
  [data-s-id="actueel-news"][data-s-amount="3"] .ac_item:nth-child(1) {
    width: 30%;
    max-width: 30%; } }

input[type="radio" i] {
  padding: 0 !important;
  margin: 0 !important; }

.gform_wrapper ul.gfield_checkbox li, .gform_wrapper ul.gfield_radio li {
  padding: 0 !important;
  margin: 0 !important;
  margin-right: 10px !important;
  display: inline; }

.gform_wrapper ul.gfield_checkbox, .gform_wrapper ul.gfield_radio {
  margin-top: -26px !important; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jc3MiLCJfZm9udHMuc2NzcyIsIl92YXJpYWJsZXMuc2NzcyIsIl9mdW5jdGlvbnMuc2NzcyIsIl9taXhpbnMuc2NzcyIsIm1peGlucy9fYm90dG9tLWl0ZW1zLW5vLWJvcmRlci5zY3NzIiwibWl4aW5zL19ib3JkZXItcmVzcG9uc2l2ZW5lc3Muc2NzcyIsIm1peGlucy9fZmluZC1jb250cmFzdC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUvX25vcm1hbGl6ZS1taXhpbi5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUvX3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUvX3ZlcnRpY2FsLXJoeXRobS5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzIiwiX3NldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3VuaXQuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2JyZWFrcG9pbnQuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2hlbHBlcnMuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3RleHQuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19jaGVja2JveC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2xhYmVsLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faGVscC10ZXh0LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faW5wdXQtZ3JvdXAuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19maWVsZHNldC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3NlbGVjdC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2Vycm9yLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24tbWVudS5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24uc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Ryb3Bkb3duLW1lbnUuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Jlc3BvbnNpdmUtZW1iZWQuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21hdGguc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N0aWNreS5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxvYXQuc2NzcyIsImFwcC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay5zY3NzIiwiX3N0cnVjdHVyZS5zY3NzIiwiX2NvbXBvbmVudHMuc2NzcyIsImNvbXBvbmVudHMvZ2VuZXJpY3MvX2FuY2hvcnMuc2NzcyIsImNvbXBvbmVudHMvZ2VuZXJpY3MvX2J1dHRvbnMuc2NzcyIsImNvbXBvbmVudHMvZ2VuZXJpY3MvX2Zvcm0uc2NzcyIsImNvbXBvbmVudHMvZ2VuZXJpY3MvX2hyLnNjc3MiLCJjb21wb25lbnRzL2dlbmVyaWNzL19saXN0LXNlYXJjaC5zY3NzIiwiY29tcG9uZW50cy9nZW5lcmljcy9fbWFwcy5zY3NzIiwiY29tcG9uZW50cy9nZW5lcmljcy9fc2xpY2stc2xpZGVyLnNjc3MiLCJjb21wb25lbnRzL2dlbmVyaWNzL19zdmcuc2NzcyIsImNvbXBvbmVudHMvcGFydHMvX2FjX2NvbnRlbnQuc2NzcyIsImNvbXBvbmVudHMvcGFydHMvX2FjX2RhdGEtcy1hbW91bnQuc2NzcyIsImNvbXBvbmVudHMvcGFydHMvX2FjX2JhY2tkcm9wLnNjc3MiLCJjb21wb25lbnRzL3BhcnRzL19hY19zZWN0aW9uX2RpdmlkZXIuc2NzcyIsImNvbXBvbmVudHMvcGFydHMvYWNfc2VjdGlvbl9kaXZpZGVyL19hbmdsZWQtc3ZnLnNjc3MiLCJjb21wb25lbnRzL3BhcnRzL2FjX3NlY3Rpb25fZGl2aWRlci9fYnV0dC1jaGVla3Muc2NzcyIsImNvbXBvbmVudHMvcGFydHMvYWNfc2VjdGlvbl9kaXZpZGVyL19jdXJ2ZWQtY2hlZWtzLnNjc3MiLCJjb21wb25lbnRzL3BhcnRzL2FjX3NlY3Rpb25fZGl2aWRlci9fZG90dGVkLnNjc3MiLCJjb21wb25lbnRzL3BhcnRzL2FjX3NlY3Rpb25fZGl2aWRlci9fc2VtaS10cmFuc3BhcmVudC5zY3NzIiwiY29tcG9uZW50cy9wYXJ0cy9hY19zZWN0aW9uX2RpdmlkZXIvX3NtaWxlLnNjc3MiLCJjb21wb25lbnRzL3BhcnRzL2FjX3NlY3Rpb25fZGl2aWRlci9fc3Bpa2VkLnNjc3MiLCJjb21wb25lbnRzL3BhcnRzL2FjX3NlY3Rpb25fZGl2aWRlci9fc3Bpa2VkLXNtYWxsLnNjc3MiLCJjb21wb25lbnRzL3BhcnRzL19hY19oZWFkaW5nLnNjc3MiLCJjb21wb25lbnRzL3BhcnRzL2FjX3NvY2lhbHMuc2NzcyIsImNvbXBvbmVudHMvZm9vdGVycy9hY19mX2Zvb3Rlcl8xL19mb290ZXJfMV8xLnNjc3MiLCJjb21wb25lbnRzL2Zvb3RlcnMvYWNfZl9fZm9vdGVyLWdsb2JhbHMvX19mb290ZXJfZ2xvYmFscy5zY3NzIiwiY29tcG9uZW50cy9tZW51cy9hY19tX21lbnVfMi9fbWVudV8yXzEuc2NzcyIsImNvbXBvbmVudHMvbWVudXMvYWNfbV9tZW51XzIvX19tZW51XzJfZ2xvYmFscy5zY3NzIiwiY29tcG9uZW50cy9nZW5lcmljcy9faGFtYnVyZ2VyLnNjc3MiLCJjb21wb25lbnRzL21lbnVzL2FjX21fbWVudV8xMDEvX21lbnVfMTAxXzEuc2NzcyIsImNvbXBvbmVudHMvbWVudXMvYWNfbV9tZW51XzEwMS9fX21lbnVfMTAxX2dsb2JhbHMuc2NzcyIsImNvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19icmFuZHMvX2JyYW5kc180LnNjc3MiLCJjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfYnJhbmRzL19fYnJhbmRzX2dsb2JhbHMuc2NzcyIsImNvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19jdGEvX2N0YV8xLnNjc3MiLCJjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfX2N0YS1nbG9iYWxzL19fY3RhX2dsb2JhbHMuc2NzcyIsImNvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19jdGFfdGV4dC1idXR0b24vX2N0YV90ZXh0LWJ1dHRvbl8yLnNjc3MiLCJjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfY3RhX3RleHQtaW1hZ2UvX2N0YV90ZXh0LWltYWdlXzEuc2NzcyIsImNvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19jdGFfdGV4dC1zb2NpYWxzL19jdGFfdGV4dC1zb2NpYWxzXzMuc2NzcyIsImNvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19oZXJvL19oZXJvXzIuc2NzcyIsImNvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19oZXJvL19faGVyb19nbG9iYWxzLnNjc3MiLCJjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfaGVyb19hbHQvX2hlcm9fYWx0XzEuc2NzcyIsImNvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19oZXJvX2FsdC9fX2hlcm9fYWx0X2dsb2JhbHMuc2NzcyIsImNvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19pbWFnZS9faW1hZ2VfMS5zY3NzIiwiY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX2ltYWdlL19faW1hZ2VfZ2xvYmFscy5zY3NzIiwiY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX2ltYWdlLWJnLWZpeGVkL19pbWFnZS1iZy1maXhlZF8xLnNjc3MiLCJjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfaW1hZ2UtYmctZml4ZWQvX19pbWFnZS1iZy1maXhlZF9nbG9iYWxzLnNjc3MiLCJjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfaW1hZ2UtZ2FsbGVyeV9mdWxsLXNjcmVlbi9faW1hZ2UtZ2FsbGVyeV9mdWxsLXNjcmVlbl8xLnNjc3MiLCJjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfaW1hZ2UtZ2FsbGVyeV9mdWxsLXNjcmVlbi9fX2ltYWdlLWdhbGxlcnlfZnVsbC1zY3JlZW5fZ2xvYmFscy5zY3NzIiwiY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX2ltYWdlLWdhbGxlcnlfZ3JpZC9faW1hZ2UtZ2FsbGVyeV9ncmlkXzIuc2NzcyIsImNvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19pbWFnZS1nYWxsZXJ5X2dyaWQvX19pbWFnZS1nYWxsZXJ5X2dyaWRfZ2xvYmFscy5zY3NzIiwibWl4aW5zL19jb250ZW50LWFsaWdubWVudC5zY3NzIiwiY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX2ltYWdlLWdhbGxlcnkvX2ltYWdlLWdhbGxlcnlfMi5zY3NzIiwiY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX2ltYWdlLWdhbGxlcnkvX19pbWFnZS1nYWxsZXJ5X2dsb2JhbHMuc2NzcyIsImNvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19tYXBzL19tYXBzXzEuc2NzcyIsImNvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19uZXdzL19uZXdzXzMuc2NzcyIsImNvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19faXRlbXMtZ2xvYmFscy9fX2l0ZW1fZ2xvYmFscy5zY3NzIiwiY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX19pdGVtcy1nbG9iYWxzL19pdGVtX2dsb2JhbF9jb250YWluZXIuc2NzcyIsImNvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19faXRlbXMtZ2xvYmFscy9faXRlbV9nbG9iYWxfaXRlbS5zY3NzIiwiY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX19pdGVtcy1nbG9iYWxzL19pdGVtX2dsb2JhbF9pdGVtLWhvdmVyLXN0YXRlcy5zY3NzIiwiY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX19pdGVtcy1nbG9iYWxzL19pdGVtX2dsb2JhbF9saXN0LXN0eWxlLXNtYWxsLnNjc3MiLCJjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfX2l0ZW1zLWdsb2JhbHMvX2l0ZW1fZ2xvYmFsX2ltYWdlLnNjc3MiLCJjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfX2l0ZW1zLWdsb2JhbHMvX2l0ZW1fZ2xvYmFsX2ljb24uc2NzcyIsImNvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19faXRlbXMtZ2xvYmFscy9faXRlbV9nbG9iYWxfY29udGVudC5zY3NzIiwiY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX19pdGVtcy1nbG9iYWxzL19pdGVtX2dsb2JhbF9jb250ZW50LW92ZXItaW1hZ2Uuc2NzcyIsIm1peGlucy9fZmFtaWx5LnNjc3MiLCJjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfcHJvZHVjdHMvX3Byb2R1Y3RzXzEuc2NzcyIsImNvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19xdW90ZXMvX3F1b3Rlc18xLnNjc3MiLCJjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfX2l0ZW1zLWdsb2JhbHMvX2l0ZW1fZ2xvYmFsX3NsaWRlci5zY3NzIiwiY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX3JlZmVyZW5jZXMvX3JlZmVyZW5jZXNfMi5zY3NzIiwiY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX3JlZmVyZW5jZXMtZ3JpZC9fcmVmZXJlbmNlcy1ncmlkXzEuc2NzcyIsImNvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19faXRlbXMtZ2xvYmFscy9faXRlbV9nbG9iYWxfY29sdW1ucy5zY3NzIiwiY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX3NlcnZpY2VzLWdyaWQvX3NlcnZpY2VzLWdyaWRfMi5zY3NzIiwiY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX3NlcnZpY2VzL19zZXJ2aWNlc18xLnNjc3MiLCJjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfdGVhbS9fdGVhbV80LnNjc3MiLCJjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfdGVhbS9fX3RlYW1fZ2xvYmFscy5zY3NzIiwiY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX3RvcHRhc2tzLWZpeGVkL190b3B0YXNrcy1maXhlZF8xLnNjc3MiLCJjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfdG9wdGFza3MtZml4ZWQvX190b3B0YXNrcy1maXhlZF9nbG9iYWxzLnNjc3MiLCJjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfdG9wdGFza3MvX3RvcHRhc2tzXzYuc2NzcyIsImNvbXBvbmVudHMvc2VjdGlvbnMvYWNfc190b3B0YXNrcy9fX3RvcHRhc2tzX2dsb2JhbHMuc2NzcyIsImNvbXBvbmVudHMvc2VjdGlvbnMvYWNfc192YWMvX3ZhY18zLnNjc3MiLCJjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfdmFjL19fdmFjX2dsb2JhbHMuc2NzcyIsImNvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19wYXJ0bmVycy9fcGFydG5lcnNfMS5zY3NzIiwiY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX3BhcnRuZXJzL19fcGFydG5lcnNfZ2xvYmFscy5zY3NzIiwiX3NlY3Rpb24tY29udHJvbC5zY3NzIiwiX2FkanVzdG1lbnRzLnNjc3MiLCJfYnJhbmQtYWRqdXN0bWVudHMuc2NzcyIsIl9maXhlcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQ0FqQjs4RkFDOEY7QUFFOUYsNkdBQVk7QUNIWjs4RkFDOEY7QUFFOUY7O0VBRUU7QUFrREY7O0VBRUU7QUFzQkY7O0VBRUU7QUFlRjs7RUFFRTtBQVFGOztFQUVFO0FBU0Y7O0VBRUU7QUN2SEY7OEZBQzhGO0FDRDlG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dlA2QztFRG1RN0MsZUYzTlM7RUVtT1QsY0FBYTtFQU9iLHNCRnpPaUIsRUUyT3BCOztBQWpDRDtFQUlJLHNCQ3ZQNkM7RURtUTdDLGVGM05TO0VFbU9ULGNBQWE7RUFPYixzQkZ6T2lCLEVFMk9wQjs7QUFqQ0Q7RUFJSSxtQkN2UDZDO0VEbVE3QyxlRjNOUztFRW1PVCxjQUFhO0VBT2Isc0JGek9pQixFRTJPcEI7O0FBakNEO0VBSUksc0JDdlA2QztFRG1RN0MsZUYzTlM7RUVtT1QsY0FBYTtFQU9iLHNCRnpPaUIsRUUyT3BCOztBQWpDRDtFQUlJLHNCQ3ZQNkM7RURtUTdDLGVGM05TO0VFbU9ULGNBQWE7RUFPYixzQkZ6T2lCLEVFMk9wQjs7QUFqQ0Q7RUFJSSxzQkN2UDZDO0VEbVE3QyxlRjNOUztFRW1PVCxjQUFhO0VBT2Isc0JGek9pQixFRTJPcEI7O0FFak5IO0VSbkRGO0lNdU9RLHNCQ3ZQNkMsRURvUmhEO0VBakNEO0lBSUksc0JDdlA2QyxFRG9SaEQ7RUFqQ0Q7SUFJSSxzQkN2UDZDLEVEb1JoRDtFQWpDRDtJQUlJLHNCQ3ZQNkMsRURvUmhEO0VBakNEO0lBSUksc0JDdlA2QyxFRG9SaEQ7RUFqQ0Q7SUFJSSxzQkN2UDZDLEVEb1JoRCxFQUFBOztBTm5HTDtFTTBHQSxxQkFBb0I7RUFDcEIsZWJ0VzJCO0VhdVczQixzQkZyT3lCO0VFdU96QixnQkFBZSxFQWFoQjtFQWxCRDtJQVNJLGFGNU8yRCxFRWdQNUQ7RUFiSDtJQWdCSSxVQUFTLEVBQ1Y7O0FOdktEO0VNNEtBLFlBQVc7RUFFWCx1QkNsVHFEO0VEbVRyRCxVQUFTO0VBQ1Qsd0JGeFB5QjtFRTBQekIsY0FBYTtFQUNiLGdCQUFlO0VBQ2YsaUNGdFZpQjtFRXVWakIsZUFBYyxFQUNmOztBQUdEOzs7RUFHRSxvQkZsUjBCO0VFbVIxQiw2QkZqUXlCO0VFa1F6QixpQkZyUnNCLEVFc1J2Qjs7QUFHRDtFQUNFLG1CQUFrQixFQUNuQjs7QUFHRDtFQUNFLHFCRjNRc0I7RUU0UXRCLHNCRjlRa0IsRUUrUW5COztBQUdEO0VBQ0UscUJGalJz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cUI7SUFDckIsYUFBTztJQUNQLGlCUjBCdUIsRVF6QnhCO0VBZ0NEO0lBb0VRLDBCbkJ6U3FCLEVtQjBTdEI7RUFyRVA7SUEwRVksMEJuQi9TaUIsRW1CZ1RsQjtFQTNFWDtJQTBFWSx1QlJ6UUcsRVEwUUo7RUEzRVg7SUEwRVksMEJSeFFJLEVReVFMO0VBM0VYO0lBMEVZLDBCUnZRSSxFUXdRTDtFQTNFWDtJQTBFWSwwQlJ0UUUsRVF1UUg7RUEzRVg7SUFtRkksWUFBVztJQUNYLFlBQVc7SUFDWCxlQUFnQyxFQUNqQzs7QXJCeXJCTDs7RXNCbjdCRSxlQUFjO0VBQ2QsdUJBQXNCO0VBQ3RCLFlBQVc7RUFDWCxtQkFMaUU7RUFNakUsdUJOS3VEO0VNSnZELG9CQUEwQjtFQUUxQiwwQlQ1Qm1CO0VTNkJuQixpQlRqQmU7RVNrQmYsMEJUM0JhO0VTNEJiLGtEcEJ4RW1CO0VvQjBFbkIscUJUK1B5QjtFUzlQekIsc0JOSnVEO0VNS3ZELGlCckJwRm1DO0VxQnFGbkMsZXBCN0VtQjtFb0JnRmpCLDREVG1ROEQ7RVM5TzlELHlCQUFnQjtVQUFoQixpQkFBZ0IsRUFDakI7RXRCNjVCRDs7SXNCOTZCRSxjQUFhO0lBQ2IsMEJUNUNlO0lTNkNmLDBCVDNDVztJUzRDWCw0QlQvQ2lCO0lTa0RmLDREVHdQNEQsRVN0UC9EOztBYjhkQztFYWpkQSxnQkFBZSxFQUtoQjtFQU5EO0lBSUksYUFBWSxFQUNiOztBQUdIOztFQUlJLGVUNUVlLEVTNkVoQjs7QUFMSDs7RUFJSSxlVDVFZSxFUzZFaEI7O0FBTEg7O0VBSUksZVQ1RWUsRVM2RWhCOztBQUxIOzs7RUFVSSwwQlRuRmM7RVNvRmQsZ0JUc055QixFU3JOMUI7O0F0QjY1Qkw7O0VzQnY1QkkseUJBQWdCO1VBQWhCLGlCQUFnQjtFQUNoQixpQlQvRWEsRVNnRmQ7O0FBR0Q7RUFDRSx1QkFBc0IsRUFDdkI7O0F0Qnc1Qkg7OztFdUJ2aUNJLHVCUDRFcUQsRU8zRXREOztBdkIyaUNIOztFdUJ0aUNJLHNCQUFxQjtFQUNyQix5QkFBd0I7RUFFeEIsd0JBQWtEO0VBQ2xE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LGdCQUErQjtJQUMvQixZQUFXLEVBcURkO0loRDNDQztNakJ5NkVBO1FpRXA2RVUsc0JBQXNEO1lBQXRELGtCQUFzRDtnQkFBdEQsY0FBc0Q7UUFDdEQsZUFBdUQsRUFDMUQ7TWpFcTZFUDtRaUVuNkVVLHNCQUFzRDtZQUF0RCxrQkFBc0Q7Z0JBQXRELGNBQXNEO1FBQ3RELGVBQXVELEVBQzFELEVBQUE7SWhETlA7TWpCMjZFQTtRaUVoNkVVLG1CQUFrQjtRQUNsQixvQi9EakhNLEUrRDJJakI7UWpFdzRFRzs7VWlFLzVFWSxlQUFjLEVBQ2pCLEVBQUE7SWhEckJYO01qQnU3RUE7UWlFOTVFTSxzQkFBYTtRQUFiLHFCQUFhO1FBQWIsY0FBYTtRQUNiLDRCQUFtQjtZQUFuQix1QkFBbUI7Z0JBQW5CLG9CQUFtQixFQWlCMUI7UWpFKzRFRzs7VWlFNzVFUSxtQkFBa0MsRUFDckM7UWpFKzVFTDtVaUU3NUVRLG9DRC9Ja0M7Y0MrSWxDLHFCRC9Ja0M7a0JDK0lsQyw0QkQvSWtDLEVDZ0pyQztRakU4NUVMO1VpRTU1RVEsa0NEakpnQztjQ2lKaEMsbUJEakpnQztrQkNpSmhDLDBCRGpKZ0MsRUNzSm5DO1VqRXk1RUg7O1lpRTM1RVUsa0JBQWlDLEVBQ3BDLEVBQUE7RWpFNjVFZjtJaUV2NUVNLG9CQUFtQixFQUN0QjtFakV3NUVIO0lpRXQ1RU0sZ0MvRDNMYTtJK0Q0TGIsb0JBQW1CLEVBSXRCO0lqRW81RUQ7TWlFdDVFUSxnQy9EOUxTLEUrRCtMWjtFakV1NUVQO0lpRXY0RVUsZ0NBQXVCO1FBQXZCLHNCQUF1QjtZQUF2Qix3QkFBdUIsRUFDMUI7RWhEaEVIO0lqQnk4RUY7TWlFcjRFUSxlQUEwQixFQUM3QixFQUFBO0VqRXM0RVA7SWlFbDRFTSxvQi9EM051QixFK0R1TzFCO0lqRXczRUQ7TWlFbDRFUSxjL0QzTlMsRStENE5aO0loRGpGSDtNakJxOUVBO1FpRWo0RVUsb0IvRC9OSyxFK0RvT1o7UWpFODNFRDtVaUVqNEVZLGMvRG5PVyxFK0RvT2QsRUFBQTtFaERsRlg7SWpCcTlFRjtNZ0VqakZJLHFC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LFNBQVE7UUFDUixVQUFTO1FBQ1QsWUFBVztRQUNYLGFEekgwQjtRQzBIMUIsbUJBQWtCLEVBSWpDLEVBQUE7RS9Fb2dIQztJK0UzL0dNLDJDN0U1SWE7STZFNkliLHdCRHhIb0MsRUN5SHZDO0UvRTQvR0g7SStFei9HVSwyQzdFakpTO0k2RWtKVCxvQjdFbEpTLEU2RW1KWjtFL0UwL0dQO0krRXQvR0UsYUFBWSxFQUNmO0UvRXUvR0M7SStFci9HRSxhQUFZLEVBQ2Y7RS9Fcy9HQzs7SStFbC9HRSx5QkFBd0I7SUFHcEIsaUJBQWdCO0lBQ2hCLFdBQVU7SUFDVixpQkFBZ0I7SUFHWixhRDVKNEI7SUM2SjVCLGNEN0o0QixFQzJMdkM7SUE1Qlc7TS9FZy9HTjs7UStFLytHVSxXRC9Kc0I7UUNnS3RCLFlEaEtzQixFQzBMckMsRUFBQTtJL0V3OUdHOztNK0UvK0dZLGM3RS9LSztNNkVnTEwsYURyS3dCO01Dc0t4QixjRHRLd0I7TUN1S3hCLDBCN0VySW1CLEU2RTBJdEI7TUFKRztRL0VrL0dSOztVK0VqL0dZLFdEeEtrQjtVQ3lLbEIsWUR6S2tCLEVDMkt6QixFQUFBO0k5RDVDUDtNakIraEhBOztRK0U1K0dVLCtCN0U5TEssRTZFK0xSLEVBQUE7SUFJVDtNL0UyK0dFOztRK0UxK0dFLDBCQUF5QixFQUVoQyxFQUFBO0UvRTIrR0M7SStFMzhHVSxhQUFZO0lBQ1osYUR6TmdDO0lDME5oQyxVQUFTO0lBQ1QsdUNBQTJGO1FBQTNGLG1DQUEyRjtZQUEzRiwrQkFBMkYsRUFDOUY7RS9FNDhHUDtJK0UxOEdVLGFBQVk7SUFDWixhRC9OZ0M7SUNnT2hDLFVBQVM7SUFDVCxtQ0FBd0Q7UUFBeEQsK0JBQXdEO1lBQXhELDJCQUF3RCxFQUMzRDtFL0UyOEdQO0krRXQ4R0UsYUR2T3dDLEVDd08zQztFL0V1OEdDO0krRTk3R0UsbUJBQWtCO0lBQ2xCLGNBQWE7SUFDYixZRHZPaUM7SUN3T2pDLFVBQVM7SUFDVCxvQ0FBMkI7UUFBM0IsZ0NBQTJCO1lBQTNCLDRCQUEyQjtJQUV2QixjQUFhLEVBNkJwQjtJOUR2Sks7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QUMzQixFQUFBO0VOb2dJdkI7SW9HNTFJTSxjTmlDcUI7SU1oQ3JCLFlBQVc7SUFDWCxpQkFBZ0I7SUFDaEIsbUJBQWtCO0lBQ2xCLDBCbEdtRDJCO0lrR2pEdkIsb0JsR0VtQjtJa0dDbkIsbUJsRzZDZSxFa0d4QzFCO0VwR3MxSUM7SW9HbjFJTSxtQkFBa0I7SUFDbEIsWUFBVztJQUNYLGFBQVk7SUFDWixPQUFNO0lBQ04sUUFBTztJQUNQLFdOWXVCO0lNWHZCLDBCbEdnQzJCO0lrRy9CM0Isc0JBQXFCO0lBRWpCLG1CbEc0QmUsRWtHdkIxQjtFcEcrMElDO0lxRzUySU0sbUJBQWtCO0lBQ2xCLFdBQVU7SUFDVixhUDBFa0I7SU96RWxCLGNQeUVrQjtJTzVEZCxTUDhEc0I7SU83RHRCLGFuR2tDVSxFbUdwQnJCO0lyR28xSUc7TXFHNzJJUSxhUHNFYztNT3JFZCxjUHFFYztNT3BFZCx5Qm5HRm1CO01tR0duQiwyQm5HNEN1QixFbUczQzFCO0VyRzgySVA7SXNHMzNJRSxzQkFBYTtJQUFiLHFCQUFhO0lBQWIsY0FBYTtJQUNiLCtCQUFzQjtRQUF0QiwyQkFBc0I7WUFBdEIsdUJBQXNCO0lBQ3RCLHVCQUFjO1FBQWQsbUJBQWM7WUFBZCxlQUFjO0lBQ2QsV1IwQ3dCO0lRekN4QiwwQnBHb0QrQjtJb0dsRDNCLGlCUndDMEIsRVF0Q2pDO0V0RzAzSUM7SXNHeDNJRSxnQlJ1QzhDO0lRdEM5QyxZQUFXO0lBQ1gsMEJwRzRDK0IsRW9HcENsQztJdEdrM0lHO01zR3AzSUksMEJwR3NDMkIsRW9HckM5QjtFdEdxM0lIO0lzR3AxSU0sY0FBYSxFQUNoQjtFdEdxMUlIO0lzRy8wSU0sZXBHbER1QixFb0dzRDlCO0V0RzYwSUM7SXNHMTBJTSwwQnBHekR1QixFb0c2RDlCO0V0R3cwSUM7SXNHcjBJTSwwQnBHaEV1QixFb0dvRTlCO0V0R20wSUM7SXNHenpJTSxtQkFBa0I7SUFDbEIsV0FBVTtJQUNWLGFSVmtCO0lRV2xCLGNSWGtCO0lRd0JkLFNSdEJzQjtJUXVCdEIsYXBHbERVLEVvR2dFckI7SXRHaXlJRztN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QUEyQixFQU1sQztROUYweElEO1U4Rjl4SVksV0FBdUI7VUFDdkIsZUFBMkIsRUFDOUIsRUFBQTs7QVd0UGpCOzhGQUM4RjtBekd1aEo5RjtFK0Z4aEpBOzhGQUM4RjtFVXlHMUYsZ0dBQWdHLEVBZ0NuRztFekdrNUlDO0lnR3ZoSk0sa0I5RnFGaUI7SThGbkZyQixtQkFBa0I7SUFDbEIsV0FBVTtJQUNWLGlCQUFnQjtJQUNoQixzQkFBYTtJQUFiLHFCQUFhO0lBQWIsY0FBYTtJQUNiLHdCQUFlO1FBQWYsb0JBQWU7WUFBZixnQkFBZSxFQUtsQjtFaEdtaEpDO0lpRy9oSkUsc0JBQWE7SUFBYixxQkFBYTtJQUFiLGNBQWE7SUFDYixtQkFBa0I7SUFlZCxxQlFXc0I7SVJQdEIsZ0IvRmtDYztJK0YzQlYsZ0IvRjJCVTtJK0Z6QmQsZ0QvRmZpQixFK0ZxQ3hCO0loRndHSztNakI0NElBO1FpR2ppSk0sV0FBc0I7UUFDdEIsZUFBMEIsRUE0Q3JDLEVBQUE7RWpHdS9JQztJaUdwL0lFLGlCQUFnQjtJQUNoQixZQUFXO0lBQ1gsbUJBQWtCO0lBQ2xCLDBCL0ZEK0I7SStGTTNCLGtEL0ZoRGlCO0krRm1EakIsaUJRakRrQixFUnNEekI7RWhGZ0ZLO0lqQjQ1SUY7TWtHNWlKZ0IsK0JBQXNCO1VBQXRCLDJCQUFzQjtjQUF0Qix1QkFBc0I7TUFDdEIsYU84QlUsRVA3QmI7SWxHNmlKYjtNa0d6aUpnQixvQmhHREMsRWdHRUo7SWxHMGlKYjtNa0d0aUpnQixpQk9nQ29CLEVQOUIzQjtJbEdzaUpUO01rR25pSmdCLCtCaEdiVyxFZ0dzQmQ7TWxHNGhKWDtRa0dsaUpzQiwrQmhHZFAsRWdHbUJBO0lsRytoSmpCO01rRzFoSmdCLDBCaEcxQlcsRWdHMkJkO0lsRzJoSmI7TWtHdmhKZ0IsMEJoRy9CVyxFZ0dnQ2Q7SWxHd2hKYjtNa0dwaEpnQiwwQmhHcENXLEVnR3FDZDtJbEdxaEpiO01rR2hoSm9CLHlCaEcxQ08sRWdHMkNWLEVBQUE7RWxHaWhKbkI7SU14eklzQix5QkFBd0IsRUFDM0I7RU55ekluQjtJTTF6SXNCLHlCQUF3QixFQUMzQjtFV25IZjtJakIrNklGO01NN3hJd0IseUJBQXdCLEVBQzNCLEVBQUE7RVd4Sm5CO0lqQnU3SUY7TU0zeEl3Qix5QkFBd0IsRUFDM0IsRUFBQTtFV3hKbkI7SWpCcTdJRjtNTTd2SXdCLHlCQUF3QixFQUMzQixFQUFBO0VXOUxuQjtJakI2N0lGO01NM3ZJd0IseUJBQXdCLEVBQzNCLEVBQUE7RU40dkl2QjtJS3o5SXNCLGlDQUFnQyxFQUNuQztFWThCZjtJakI2N0lGO01LLzhJd0IsaUNBQWdDLEVBQ25DLEVBQUE7RVlZbkI7SWpCcThJRjtNSzM4SXdCLGlDQUFnQyxFQUNuQyxFQUFBO0VZVW5CO0lqQm04SUY7TUtoOEl3QixpQ0FBZ0MsRUFDbkMsRUFBQTtFWVRuQjtJakIyOElGO01LNTdJd0IsaUNBQWdDLEVBQ25DLEVBQUE7RUw2N0l2QjtJb0dsbUpNLGFLa0NvQjtJTGpDcEIsWUFBVztJQUNYLGlCQUFnQjtJQUNoQixtQkFBa0I7SUFDbEIsMEJsR21EMkI7SWtHakR2QixvQmxHSVM7SWtHRFQsbUJsRzZDZSxFa0d4QzFCO0VwRzRsSkM7SW9HemxKTSxtQkFBa0I7SUFDbEIsWUFBVztJQUNYLGFBQVk7SUFDWixPQUFNO0lBQ04sUUFBTztJQUNQLFdLYXVCO0lMWnZCLDBCbEdnQzJCO0lrRy9CM0Isc0JBQXFCO0lBRWpCLG1CbEc0QmUsRWtHdkIxQjtFcEdxbEpDO0lxR2xuSk0sbUJBQWtCO0lBQ2xCLFdBQVU7SUFDVixhSTRFa0I7SUozRWxCLGNJMkVrQjtJSjlEZCxTSWdFc0I7SUovRHRCLGFuR2tDVSxFbUdwQnJCO0lyRzBsSkc7TXFHbm5KUSxhSXdFYztNSnZFZCxjSXVFYztNSnRFZCx5Qm5HRm1CO01tR0duQiwyQm5HNEN1QixFbUczQzFCO0VyR29uSlA7SXNHam9KRSxzQkFBYTtJQUFiLHFCQUFhO0lBQWIsY0FBYTtJQUNiLCtCQUFzQjtRQUF0QiwyQkFBc0I7WUFBdEIsdUJBQXNCO0lBQ3RCLHVCQUFjO1FBQWQsbUJBQWM7WUFBZCxlQUFjO0lBQ2QsV0c0Q3dCO0lIM0N4QiwwQnBHb0QrQjtJb0dsRDNCLGlCRzBDMEIsRUh4Q2pDO0V0R2dvSkM7SXNHOW5KRSxnQkd5QzhDO0lIeEM5QyxZQUFXO0lBQ1gsMEJwRzRDK0IsRW9HcENsQztJdEd3bkpHO01zRzFuSkksMEJwR3NDMkIsRW9HckM5QjtFdEcybkpIO0lzR3JuSlUsc0JBQWE7SUFBYixxQkFBYTtJQUFiLGNBQWE7SUFDYixnQ0FBdUI7UUFBdkIsc0JBQXVCO1lBQXZCLHdCQUF1QixFQUU5QjtFdEdxbkpIO0lzR25uSk0sWUc0QnlCO0lIM0J6QixhRzJCeUI7SUgxQnpCLG9CcEd2QnVCO0lvR3dCdkIsY0cwQjRCO0lIekI1QixtQkcwQmlDO0lIdkI3QixvQkFBbUIsRUFZMUI7SXRHdW1KRDtNc0dobkpRLFlBQWlFO01BQ2pFLGFBQWtFO01BRTlELFlwR2hDSyxFb0dxQ1o7RXRHNG1KUDtJc0dqbUpNLGVwR2xEdUIsRW9Hc0Q5QjtFdEcrbEpDO0lzRzVsSk0sMEJwR3pEdUIsRW9HNkQ5QjtFdEcwbEpDO0lzR3ZsSk0sMEJwR2hFdUIsRW9Hb0U5QjtFdEdxbEpDO0lzRzNrSk0sbUJBQWtCO0lBQ2xCLFdBQVU7SUFDVixhR1JrQjtJSFNsQixjR1RrQjtJSHNCZCxTR3BCc0I7SUhxQnRCLGFwR2xEVSxFb0dnRXJCO0l0R21qSkc7TXNHNWtKUSxhR1pjO01IYWQsY0diYztNSGNkLHlCcEd0Rm1CO01vR3VGbkIsMkJwR3hDdUIsRW9HeUMxQjtFdEc2a0pQO0l5R3JrSk0sMkN2RzNGaUIsRXVHNEZwQjtFekdza0pIO0l5R25rSk0sbUJBQWtCO0lBQ2xCLHNCQUFhO0lBQWIscUJBQWE7SUFBYixjQUFhO0lBQ2Isa0NBQXlCO1FBQXpCLG1CQUF5QjtZQUF6QiwwQkFBeUIsRUFDNUI7RXpHb2tKSDtJeUdsa0pNLDhCQUE2QjtJQUM3QixZQUFXLEVBQ2Q7RXpHbWtKSDtJeUdqa0pNLGdCQUFlLEVBRWxCO0V6R2lrSkg7SXlHOWpKTSxtQkFBa0I7SUFDbEIsU0FBUTtJQUNSLFFBQU87SUFDUCxZQUFXO0lBQ1gsb0J2RzVIMEM7SXVHNkgxQyxldkdySGE7SXVHc0hiLHdCQUFrRDtJQUNsRCwwQkFBeUI7SXhHaEg3Qiw2Q0FsQjBEO0lBbUIxRCxpQkFBZ0I7SUFDaEIsbUJBQWtCLEV3R2dIakI7O0FDeElMOzhGQUM4RjtBMUcyc0o5RjtFK0Y1c0pBOzhGQUM4RjtFV3dHMUYsZ0dBQWdHLEVBc0duRztFMUdpZ0pDO0lnRzNzSk0sa0I5RnFGaUI7SThGbkZyQixtQkFBa0I7SUFDbEIsV0FBVTtJQUNWLGlCQUFnQjtJQUNoQixzQkFBYTtJQUFiLHFCQUFhO0lBQWIsY0FBYTtJQUNiLHdCQUFlO1FBQWYsb0JBQWU7WUFBZixnQkFBZSxFQUtsQjtFaEd1c0pDO0lpR250SkUsc0JBQWE7SUFBYixxQkFBYTtJQUFiLGNBQWE7SUFDYixtQkFBa0I7SUFlZCxxQlNXc0I7SVRMdEIsV0FBVSxFQTZCakI7SWhGd0dLO01qQjhqSkE7UWlHaHRKTSxZQUFXO1FBQ1gsZ0JBQWUsRUF5QzFCLEVBQUE7RWpHeXFKQztJaUd0cUpFLGlCQUFnQjtJQUNoQixZQUFXO0lBQ1gsbUJBQWtCO0lBQ2xCLDBCL0ZEK0I7SStGUzNCLGlCU2pEa0IsRVRzRHpCO0VoRmdGSztJakI2a0pGO01rRzd0SmdCLCtCQUFzQjtVQUF0QiwyQkFBc0I7Y0FBdEIsdUJBQXNCO01BQ3RCLGFRNkJVLEVSNUJiO0lsRzh0SmI7TWtHcnRKZ0IsaUJRK0JvQixFUjdCM0I7SWxHcXRKVDtNa0dyc0pnQiwwQmhHMUJXLEVnRzJCZDtJbEdzc0piO01rR2xzSmdCLDBCaEcvQlcsRWdHZ0NkO0lsR21zSmI7TWtHL3JKZ0IsMEJoR3BDVyxFZ0dxQ2QsRUFBQTtFbEdnc0pmO0lvR2p1Sk0sY0FBYSxFQUVwQjtFcEdpdUpDO0lvRzl0Sk0sbUJBQWtCO0lBQ2xCLFlBQVc7SUFDWCxhQUFZO0lBQ1osT0FBTTtJQUNOLFFBQU87SUFDUCxXTVl1QjtJTlh2QiwwQmxHZ0MyQjtJa0cvQjNCLHNCQUFxQjtJQUVqQixtQmxHNEJlLEVrR3ZCMUI7RXBHMHRKQztJcUd2dkpNLG1CQUFrQjtJQUNsQixXQUFVO0lBQ1YsYUsyRWtCO0lMMUVsQixjSzBFa0I7SUw3RGQsU0srRHNCO0lMOUR0QixhbkdrQ1UsRW1HcEJyQjtJckcrdEpHO01xR3h2SlEsYUt1RWM7TUx0RWQsY0tzRWM7TUxyRWQseUJuR0ZtQjtNbUdHbkIsMkJuRzRDdUIsRW1HM0MxQjtFckd5dkpQO0lzR3R3SkUsc0JBQWE7SUFBYixxQkFBYTtJQUFiLGNBQWE7SUFDYiwrQkFBc0I7UUFBdEIsMkJBQXNCO1lBQXRCLHVCQUFzQjtJQUN0Qix1QkFBYztRQUFkLG1CQUFjO1lBQWQsZUFBYztJQUNkLFdJMkN3QjtJSjFDeEIsMEJwR29EK0I7SW9HbEQzQixpQkl5QzBCLEVKdkNqQztFdEdxd0pDO0lzR253SkUsZ0JJd0M4QztJSnZDOUMsWUFBVztJQUNYLDBCcEc0QytCLEVvR3BDbEM7SXRHNnZKRztNc0cvdkpJLDBCcEdzQzJCLEVvR3JDOUI7RXRHZ3dKSDtJc0cvdEpNLGNBQWEsRUFDaEI7RXRHZ3VKSDtJc0cxdEpNLGVwR2xEdUIsRW9Hc0Q5QjtFdEd3dEpDO0lzR3J0Sk0sMEJwR3pEdUIsRW9HNkQ5QjtFdEdtdEpDO0lzR2h0Sk0sMEJwR2hFdUIsRW9Hb0U5QjtFdEc4c0pDO0lzR3BzSk0sbUJBQWtCO0lBQ2xCLFdBQVU7SUFDVixhSVRrQjtJSlVsQixjSVZrQjtJSnVCZCxTSXJCc0I7SUpzQnRCLGFwR2xEVSxFb0dnRXJCO0l0RzRxSkc7TXNHcnNKUSxhSWJjO01KY2QsY0lkYztNSmVkLHlCcEd0Rm1CO01vR3VGbkIsMkJwR3hDdUIsRW9HeUMxQjtFdEdzc0pQO0kyR3J5Sk0sZUFBYztJQUNkLGlCQUFnQjtJQUdoQixrQkRINEI7SUNJNUIsaUJBQWdCO0lBQ2hCLFdBQVU7SUFDViw4QnpHK0MyQixFeUd2QzlCO0kzRzZ4SkQ7TTJHanlKUSxvQkFBbUI7TUFDbkIsa0JBQWlCO01BQ2pCLFdBQVUsRUFDYjtFM0dreUpQO0kyRzd4Sk0saUJBQWdCLEVBQ25CO0UxRnFJQztJakIwcEpGO00yR2h4SlEsK0JBQThCLEVBQ2pDLEVBQUE7RTNHaXhKUDtJMEcvc0pNLGdDQUF1QjtRQUF2QixzQkFBdUI7WUFBdkIsd0JBQXVCO0lBQ3ZCLG9CQUFtQyxFQUN0QztFMUdndEpIO0kwRzlzSk0saUJBQWdCLEVBQ25CO0V6RjhDQztJakJrcUpGO00wRzdzSlEsV0FBVSxFQUVqQixFQUFBO0UxRzZzSkg7O0kwR3JzSk0sbUJBQWtCLEVBTXJCO0kxR2tzSkQ7O00wR3RzSlEsV0FBVTtNQUNWLFlBQVc7TUFDWCx5QnhHckhtQixFd0dzSHRCO0UxR3dzSlA7STBHcnNKTSxZQUFXO0lBQ1gsYUFBWSxFQUNmO0UxR3NzSkg7STBHcHNKTSxlQUFjO0lBQ2QsY0FBYSxFQUNoQjtFMUdxc0pIO0kwRzlySk0sNkJBQW9CO0lBQXBCLDRCQUFvQjtJQUFwQixxQkFBb0I7SUFDcEIsNEJBQW1CO1FBQW5CLHVCQUFtQjtZQUFuQixvQkFBbUI7SUFDbkIsZ0JBQWUsRUFDbEI7RTFHK3JKSDtJMEd4ckpNLFdBQVU7SUFDVixZQUFXO0lBQ1gsbUJBQWtCO0lBQ2xCLDBCeEdqSmE7SXdHa0piLDRDeEdwR29DO0l3R3FHcEMsb0JBQW1CO0lBQ25CLGtCQUFpQjtJQUNqQix1QkFBYztRQUFkLHFCQUFjO1lBQWQsZUFBYyxFQUNqQjtFMUd5ckpIO0kwR3ZySk0sbUJBQWtCO0lBQ2xCLFlBQVc7SUFDWCxhQUFZO0lBQ1osb0JBQW1CLEVBQ3RCO0UxR3dySkg7STBHanJKTSwwQkFBeUI7SUFDekIsZUFBYztJQUNkLG9CQUFtQixFQUN0QjtFMUdrckpIO0kwR2hySk0sbUJBQWtCO0lBQ2xCLGdCQUFlO0l6R2xLbkIsNkNBbEIwRDtJQW1CMUQsaUJBQWdCO0lBQ2hCLG1CQUFrQjtJeUdrS2QsZ0JBQWUsRUFLbEI7SXpGckNDO01qQnF0SkE7UTBHbHJKTSxnQkFBZSxFQUV0QixFQUFBO0UxR2tySkg7STBHaHJKTSwwQkFBeUI7SUFDekIsZUFBYztJQUNkLG9CQUFtQixFQUN0QjtFMUdpckpIO0kwRzFxSk0sVUFBUztJQUNULHFEQUE0QztRQUE1QyxpREFBNEM7WUFBNUMsNkNBQTRDLEVBQy9DOztBRTdNTDs4RkFDOEY7QTVHMDNKOUY7RStGMzNKQTs4RkFDOEY7RWF1RzFGLGdHQUFnRyxFQWdCbkc7RTVHdXdKQztJZ0cxM0pNLGtCOUZtRmlCO0k4RmpGckIsbUJBQWtCO0lBQ2xCLFdBQVU7SUFDVixpQkFBZ0I7SUFDaEIsc0JBQWE7SUFBYixxQkFBYTtJQUFiLGNBQWE7SUFDYix3QkFBZTtRQUFmLG9CQUFlO1lBQWYsZ0JBQWU7SUFHWCxnQkFBK0IsRUFFdEM7RWhHdTNKQztJaUduNEpFLHNCQUFhO0lBQWIscUJBQWE7SUFBYixjQUFhO0lBQ2IsbUJBQWtCO0lBZWQscUJXWXNCO0lYUnRCLGdCL0ZrQ2M7SStGdEJWLGdCQUErQixFQW1CMUM7SWhGd0dLO01qQit1SkE7UWlHajRKTSxZQUFXO1FBQ1gsZ0JBQWUsRUF5QzFCLEVBQUE7RWpHMDFKQztJaUd2MUpFLGlCQUFnQjtJQUNoQixZQUFXO0lBQ1gsbUJBQWtCO0lBQ2xCLDBCL0ZEK0I7SStGUzNCLGlCV2hEa0IsRVhxRHpCO0VoRmdGSztJakI4dkpGO01rRzk0SmdCLCtCQUFzQjtVQUF0QiwyQkFBc0I7Y0FBdEIsdUJBQXNCO01BQ3RCLGFVOEJVLEVWN0JiO0lsRys0SmI7TWtHMzRKZ0Isb0JoR0hXLEVnR0lkO0lsRzQ0SmI7TWtHeDRKZ0IsaUJVK0JvQixFVjdCM0I7SWxHdzRKVDtNa0dyNEpnQixrQmhHWEMsRWdHb0JKO01sRzgzSlg7UWtHcDRKc0IsWWhHaEJHLEVnR3FCVjtJbEdpNEpqQjtNa0c1M0pnQixnQ2hHeEJDLEVnR3lCSjtJbEc2M0piO01rR3ozSmdCLGdDaEc3QkMsRWdHOEJKO0lsRzAzSmI7TWtHaDNKb0IsWWhHeENILEVnR3lDQSxFQUFBO0VsR2kzSm5CO0lvR3A2Sk0sY1FrQ3FCO0lSakNyQixZQUFXO0lBQ1gsaUJBQWdCO0lBQ2hCLG1CQUFrQjtJQUNsQiwwQmxHbUQyQjtJa0dqRHZCLG9CbEdFbUI7SWtHQ25CLG1CbEc2Q2UsRWtHeEMxQjtFcEc4NUpDO0lvRzM1Sk0sbUJBQWtCO0lBQ2xCLFlBQVc7SUFDWCxhQUFZO0lBQ1osT0FBTTtJQUNOLFFBQU87SUFDUCxhUWF3QjtJUlp4QiwwQmxHZ0MyQjtJa0cvQjNCLHNCQUFxQjtJQUVqQixtQmxHNEJlLEVrR3ZCMUI7RXBHdTVKQztJcUdwN0pNLG1CQUFrQjtJQUNsQixXQUFVO0lBQ1YsYU8yRWtCO0lQMUVsQixjTzBFa0I7SVA3RGQsWW5HbUNVO0ltR2xDVixhbkdrQ1UsRW1HcEJyQjtJckc0NUpHO01xR3I3SlEsYU91RWM7TVB0RWQsY09zRWM7TVByRWQsK0JuR0FTO01tR0NULDJCbkc0Q3VCLEVtRzNDMUI7RXJHczdKUDtJc0duOEpFLHNCQUFhO0lBQWIscUJBQWE7SUFBYixjQUFhO0lBQ2IsK0JBQXNCO1FBQXRCLDJCQUFzQjtZQUF0Qix1QkFBc0I7SUFDdEIsdUJBQWM7UUFBZCxtQkFBYztZQUFkLGVBQWM7SUFDZCxjcEdtRGtCO0lvR2xEbEIsMEJwR29EK0I7SW9HbEQzQixpQk15QzBCLEVOdkNqQztFdEdrOEpDO0lzR2g4SkUsZ0JNd0M4QztJTnZDOUMsWUFBVztJQUNYLDBCcEc0QytCLEVvR3BDbEM7SXRHMDdKRztNc0c1N0pJLDBCcEdzQzJCLEVvR3JDOUI7RXRHNjdKSDtJc0d2N0pVLHNCQUFhO0lBQWIscUJBQWE7SUFBYixjQUFhO0lBQ2IsZ0NBQXVCO1FBQXZCLHNCQUF1QjtZQUF2Qix3QkFBdUIsRUFFOUI7RXRHdTdKSDtJc0dyN0pNLFlNMkJ5QjtJTjFCekIsYU0wQnlCO0lOekJ6QixxQ3BHckJhO0lvR3NCYixjTXlCNEI7SU54QjVCLG1CTXlCaUM7SU50QjdCLG9CQUFtQixFQVkxQjtJdEd5NkpEO01zR2w3SlEsWUFBaUU7TUFDakUsYUFBa0U7TUFFOUQsWXBHaENLLEVvR3FDWjtFdEc4NkpQO0lzR242Sk0sZXBHaERhLEVvR29EcEI7RXRHaTZKQztJc0c5NUpNLGdDcEd2RGEsRW9HMkRwQjtFdEc0NUpDO0lzR3Y1Sk0sY0FBYSxFQUVwQjtFdEd1NUpDO0lzRzc0Sk0sbUJBQWtCO0lBQ2xCLFdBQVU7SUFDVixhTVRrQjtJTlVsQixjTVZrQjtJTnVCZCxZcEdqRFU7SW9Ha0RWLGFwR2xEVSxFb0dnRXJCO0l0R3EzSkc7TXNHOTRKUSxhTWJjO01OY2QsY01kYztNTmVkLCtCcEdwRlM7TW9HcUZULDJCcEd4Q3VCLEVvR3lDMUI7RXRHKzRKUDtJdUdoL0pNLGNLbUNxQjtJTGxDckIsK0JBQXNCO1FBQXRCLDJCQUFzQjtZQUF0Qix1QkFBc0IsRUFXekI7SXRGMElDO01qQjgxSkE7UXVHaC9KTSxjSytCaUIsRUx2QnhCLEVBQUE7RXZHMCtKSDtJdUdwK0pNLGFBQVk7SUFDWixvQnJHVnVCO0lxR1d2QixtQkFBa0IsRUEyQnJCO0l2RzI4SkQ7TXVHMTlKWSxZQUFXO01BQ1gsbUJBQWtCO01BQ2xCLFlBQVc7TUFDWCxhQUFZO01BQ1osNkRBQXdIO01BQ3hILFdBQVU7TUFLTixVQUFTLEVBRWhCO0V2R3M5Slg7SXVHaDlKTSxtQkFBa0I7SUFDbEIsV0FBVTtJQUNWLE9BQU07SUFDTixhQUFZO0lBQ1osYUFBWTtJQUNaLFlBQVc7SUFDWCw2QkFBb0I7SUFBcEIsNEJBQW9CO0lBQXBCLHFCQUFvQjtJQUNwQixRQUFPO0licENQLCtCQUFzQjtRQUF0QiwyQkFBc0I7WUFBdEIsdUJBQXNCO0lBQ3RCLGdDQUF1QjtRQUF2QixzQkFBdUI7WUFBdkIsd0JBQXVCO0lBQ3ZCLDRCQUFtQjtRQUFuQix1QkFBbUI7WUFBbkIsb0JBQW1CO0lBQ25CLG1CQUFrQixFYXFDckI7RXZHazlKSDtJdUdoOUpNLGlCQUFnQixFQUNuQjtFdkdpOUpIO0k0R3o2Sk0sMEIxRzdGYSxFMEc4RmhCO0U1RzA2Skg7STRHeDZKTSxpQkFBZ0IsRUFDbkI7RTVHeTZKSDtJQ25nS0UsNkNBbEIwRDtJQW1CMUQsaUJBQWdCO0lBQ2hCLG1CQUFrQjtJMkc0RmQsZ0JBQWU7SUFDZixlQUFjLEVBQ2pCOztBQ3RITDs4RkFDOEY7QTdHaWlLOUY7RStGbGlLQTs4RkFDOEY7RWN1RzFGLGdHQUFnRyxFQVNuRztFN0dxN0pDO0lnR2ppS00sa0I5Rm1GaUI7SThGakZyQixtQkFBa0I7SUFDbEIsV0FBVTtJQUNWLGlCQUFnQjtJQUNoQixzQkFBYTtJQUFiLHFCQUFhO0lBQWIsY0FBYTtJQUNiLHdCQUFlO1FBQWYsb0JBQWU7WUFBZixnQkFBZTtJQUdYLGdCQUErQixFQUV0QztFaEc4aEtDO0lpRzFpS0Usc0JBQWE7SUFBYixxQkFBYTtJQUFiLGNBQWE7SUFDYixtQkFBa0I7SUFlZCxvQllZcUI7SVpSckIsZ0IvRmtDYztJK0Z0QlYsZ0JBQStCLEVBbUIxQztJaEZ3R0s7TWpCczVKQTtRaUd4aUtNLFlBQVc7UUFDWCxnQkFBZSxFQXlDMUIsRUFBQTtFakdpZ0tDO0lpRzkvSkUsaUJBQWdCO0lBQ2hCLFlBQVc7SUFDWCxtQkFBa0I7SUFDbEIsMEIvRkQrQjtJK0ZTM0IsaUJZaERrQixFWnFEekI7RWhGZ0ZLO0lqQnE2SkY7TWtHcmpLZ0IsK0JBQXNCO1VBQXRCLDJCQUFzQjtjQUF0Qix1QkFBc0I7TUFDdEIsYVc4QlUsRVg3QmI7SWxHc2pLYjtNa0dsaktnQixvQmhHSFcsRWdHSWQ7SWxHbWpLYjtNa0cvaUtnQixpQlcrQm9CLEVYN0IzQjtJbEcraUtUO01rRzVpS2dCLGtCaEdYQyxFZ0dvQko7TWxHcWlLWDtRa0czaUtzQixZaEdoQkcsRWdHcUJWO0lsR3dpS2pCO01rR25pS2dCLGdDaEd4QkMsRWdHeUJKO0lsR29pS2I7TWtHaGlLZ0IsZ0NoRzdCQyxFZ0c4Qko7SWxHaWlLYjtNa0d2aEtvQixZaEd4Q0gsRWdHeUNBLEVBQUE7RWxHd2hLbkI7SW9HM2tLTSxjU2tDcUI7SVRqQ3JCLFlBQVc7SUFDWCxpQkFBZ0I7SUFDaEIsbUJBQWtCO0lBQ2xCLDBCbEdtRDJCO0lrR2pEdkIsb0JsR0VtQjtJa0dDbkIsbUJsRzZDZSxFa0d4QzFCO0VwR3FrS0M7SW9HbGtLTSxtQkFBa0I7SUFDbEIsWUFBVztJQUNYLGFBQVk7SUFDWixPQUFNO0lBQ04sUUFBTztJQUNQLGFTYXdCO0lUWnhCLDBCbEdnQzJCO0lrRy9CM0Isc0JBQXFCO0lBRWpCLG1CbEc0QmUsRWtHdkIxQjtFcEc4aktDO0lxRy9qS00sY0FBYSxFQUdwQjtFckc4aktD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O1FBQ1gsZ0JBQWUsRUF5QzFCLEVBQUE7RWpHeXRLQztJaUd0dEtFLGlCQUFnQjtJQUNoQixZQUFXO0lBQ1gsbUJBQWtCO0lBQ2xCLDBCL0ZEK0I7SStGUzNCLGlCY2hEa0IsRWRxRHpCO0VoRmdGSztJakI2bktGO01rRzd3S2dCLCtCQUFzQjtVQUF0QiwyQkFBc0I7Y0FBdEIsdUJBQXNCO01BQ3RCLGFhOEJVLEViN0JiO0lsRzh3S2I7TWtHMXdLZ0Isb0JoR0hXLEVnR0lkO0lsRzJ3S2I7TWtHdndLZ0IsaUJhK0JvQixFYjdCM0I7SWxHdXdLVDtNa0dwd0tnQixrQmhHWEMsRWdHb0JKO01sRzZ2S1g7UWtHbndLc0IsWWhHaEJHLEVnR3FCVjtJbEdnd0tqQjtNa0czdktnQixnQ2hHeEJDLEVnR3lCSjtJbEc0dktiO01rRzd1S29CLFloR3hDSCxFZ0d5Q0EsRUFBQTtFbEc4dUtuQjtJb0dqeUtNLGNXa0NxQjtJWGpDckIsWUFBVztJQUNYLGlCQUFnQjtJQUNoQixtQkFBa0I7SUFDbEIsMEJsR21EMkI7SWtHakR2QixvQmxHRW1CO0lrR0NuQixtQmxHNkNlLEVrR3hDMUI7RXBHMnhLQztJb0d4eEtNLG1CQUFrQjtJQUNsQixZQUFXO0lBQ1gsYUFBWTtJQUNaLE9BQU07SUFDTixRQUFPO0lBQ1AsYVdhd0I7SVhaeEIsMEJsR2dDMkI7SWtHL0IzQixzQkFBcUI7SUFFakIsbUJsRzRCZSxFa0d2QjFCO0VwR294S0M7SXFHcnhLTSxjQUFhLEVBR3BCO0VyR294S0M7SXNHdHpLRSxzQkFBYTtJQUFiLHFCQUFhO0lBQWIsY0FBYTtJQUNiLCtCQUFzQjtRQUF0QiwyQkFBc0I7WUFBdEIsdUJBQXNCO0lBQ3RCLHVCQUFjO1FBQWQsbUJBQWM7WUFBZCxlQUFjO0lBQ2QsV1MyQ3dCO0lUMUN4QiwwQnBHb0QrQjtJb0dsRDNCLGlCU3lDMEIsRVR2Q2pDO0V0R3F6S0M7SXNHbnpLRSxjU3dDZ0Q7SVR2Q2hELFlBQVc7SUFDWCwwQnBHNEMrQixFb0dwQ2xDO0l0RzZ5S0c7TXNHL3lLSSwwQnBHc0MyQixFb0dyQzlCO0V0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aEIsWUFBVztJQUNYLG1CQUFrQjtJQUNsQiwwQi9GRCtCO0krRk0zQixrRC9GaERpQjtJK0ZtRGpCLGlCZWpEa0IsRWZzRHpCO0VoRmdGSztJakJpMktGO01rR2ovS2dCLCtCQUFzQjtVQUF0QiwyQkFBc0I7Y0FBdEIsdUJBQXNCO01BQ3RCLGFjOEJVLEVkN0JiO0lsR2svS2I7TWtHOStLZ0Isb0JoR0hXLEVnR0lkO0lsRysrS2I7TWtHMytLZ0IsaUJjZ0NvQixFZDlCM0I7SWxHMitLVDtNa0d4K0tnQiwrQmhHYlcsRWdHc0JkO01sR2krS1g7UWtHditLc0IsK0JoR2RQLEVnR21CQTtJbEdvK0tqQjtNa0cvOUtnQiwwQmhHMUJXLEVnRzJCZDtJbEdnK0tiO01rR3Y5S2dCLDBCaEdwQ1csRWdHcUNkO0lsR3c5S2I7TWtHbjlLb0IsK0JoR3hDSCxFZ0d5Q0EsRUFBQTtFbEdvOUtuQjtJTTN2S3NCLHlCQUF3QixFQUMzQjtFTjR2S25CO0lNN3ZLc0IseUJBQXdCLEVBQzNCO0VXbkhmO0lqQmszS0Y7TU1odUt3Qix5QkFBd0IsRUFDM0IsRUFBQTtFV3hKbkI7SWpCMDNLRjtNTTl0S3dCLHlCQUF3QixFQUMzQixFQUFBO0VXeEpuQjtJakJ3M0tGO01NaHNLd0IseUJBQXdCLEVBQzNCLEVBQUE7RVc5TG5CO0lqQmc0S0Y7TU05ckt3Qix5QkFBd0IsRUFDM0IsRUFBQTtFTityS3ZCO0lLNTVLc0IsaUNBQWdDLEVBQ25DO0VZOEJmO0lqQmc0S0Y7TUtsNUt3QixpQ0FBZ0MsRUFDbkMsRUFBQTtFWVluQjtJakJ3NEtGO01LOTRLd0IsaUNBQWdDLEVBQ25DLEVBQUE7RVlVbkI7SWpCczRLRjtNS240S3dCLGlDQUFnQyxFQUNuQyxFQUFBO0VZVG5CO0lqQjg0S0Y7TUsvM0t3QixpQ0FBZ0MsRUFDbkMsRUFBQTtFTGc0S3ZCO0lvR3JpTE0sY1lrQ3FCO0laakNyQixZQUFXO0lBQ1gsaUJBQWdCO0lBQ2hCLG1CQUFrQjtJQUNsQiwwQmxHbUQyQjtJa0dqRHZCLG9CbEdFbUI7SWtHQ25CLG1CbEc2Q2UsRWtHeEMxQjtFcEcraExDO0lvRzVoTE0sbUJBQWtCO0lBQ2xCLFlBQVc7SUFDWCxhQUFZO0lBQ1osT0FBTTtJQUNOLFFBQU87SUFDUCxXWWF1QjtJWlp2QiwwQmxHZ0MyQjtJa0cvQjNCLHNCQUFxQjtJQUVqQixtQmxHNEJlLEVrR3ZCMUI7RXBHd2hMQztJcUdyakxNLG1CQUFrQjtJQUNsQixXQUFVO0lBQ1YsYVc0RWtCO0lYM0VsQixjVzJFa0I7SVg5RGQsU1dnRXNCO0lYL0R0QixhbkdrQ1UsRW1HcEJyQjtJckc2aExHO01xR3RqTFEsYVd3RWM7TVh2RWQsY1d1RWM7TVh0RWQseUJuR0ZtQjtNbUdHbkIsMkJuRzRDdUIsRW1HM0MxQjtFckd1akxQO0lzR3BrTEUsc0JBQWE7SUFBYixxQkFBYTtJQUFiLGNBQWE7SUFDYiwrQkFBc0I7UUFBdEIsMkJBQXNCO1lBQXRCLHVCQUFzQjtJQUN0Qix1QkFBYztRQUFkLG1CQUFjO1lBQWQsZUFBYztJQUNkLFdVNEN3QjtJVjNDeEIsMEJwR29EK0I7SW9HbEQzQixpQlUwQzBCLEVWeENqQztFdEdta0xDO0lzR2prTEUsZ0JVeUM4QztJVnhDOUMsWUFBVztJQUNYLDBCcEc0QytCLEVvR3BDbEM7SXRHMmpMRztNc0c3akxJLDBCcEdzQzJCLEVvR3JDOUI7RXRHOGpMSDtJc0d4akxVLHNCQUFhO0lBQWIscUJBQWE7SUFBYixjQUFhO0lBQ2IsZ0NBQXVCO1FBQXZCLHNCQUF1QjtZQUF2Qix3QkFBdUIsRUFFOUI7RXRHd2pMSDtJc0d0akxNLFlVNEJ5QjtJVjNCekIsYVUyQnlCO0lWMUJ6QixvQnBHdkJ1QjtJb0d3QnZCLGNVMEI0QjtJVnpCNUIsbUJVMEJpQztJVnZCN0Isb0JBQW1CLEVBWTFCO0l0RzBpTEQ7TXNHbmpMUSxZQUFpRTtNQUNqRSxhQUFrRTtNQUU5RCxZcEdoQ0ssRW9HcUNaO0V0RytpTFA7SXNHcGlMTSxlcEdsRHVCLEVvR3NEOUI7RXRHa2lMQztJc0c3aExNLGNBQWEsRUFFcEI7RXRHNmhMQztJc0cxaExNLDBCcEdoRXVCLEVvR29FOUI7RXRHd2hMQztJc0c5Z0xN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QTlIK3RORDtFOEgzdE5JLG9CNUg5WW1CO0U0SCtZbkIsOEI1SHZZc0IsRTRIeVp6QjtFOUgyc05DO0k4SDF0Tk0sbURBQTBDO1lBQTFDLDJDQUEwQztJQUMxQywyQkFBeUI7SUFDekIsdUM1SDFaZTtZNEgwWmYsK0I1SDFaZSxFNEgyWmxCO0U5SDJ0Tkg7SThIeHROTSwyQkFBa0I7UUFBbEIsdUJBQWtCO1lBQWxCLG1CQUFrQjtJQUNsQiw4QkFBNkIsRUFDaEM7RTlIeXROSDtJOEh0dE5NLFdBQVU7SUFDVixhQUFZO0lBQ1oscUJBQW9CLEVBQ3ZCOztBQUdMO0U5SHN0TkU7SThIcHROTSx5QkFBd0IsRUFDM0I7RTlIcXROSDtJOEhsdE5NLDBCQUF5QixFQUM1QixFQUFBOztBQU9MO0VBQ0ksMkJBQTBCO0VBQzFCLGU1SHpibUIsRTRIMGJ0Qjs7QTlIOHNORDtFOEh4c05NLGU1SG5iYyxFNEhvYmY7O0E5SDBzTkw7RThIeHNOUSxlNUh0YlksRTRIdWJmOztBOUgwc05MO0U4SHRzTkksMEJBQXlCLEVBQzVCOztBQUNEO0U5SHdzTkU7SThIdHNOTSxXQUFVO0lBQ1YsZUFBYyxFQUNqQixFQUFBOztBQUlMO0VBQ0ksc0JBQW9CO0VBQ3BCLHFCQUFtQixFQUN0Qjs7QUFFRDtFQUNJLHNCQUFvQjtFQUNwQixxQkFBbUI7RUFDbkIsOEJBQTRCO0VBQzVCLGdCQUFjLEVBQ2pCOztBQUVEO0VBQ0ksNkJBQTJCLEVBQzlCIiwiZmlsZSI6ImFwcC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4vKiBGT05UU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCB1cmwoaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PU1lcnJpd2VhdGhlcjozMDAsNDAwLDYwMCw3MDB8TW9udHNlcnJhdDoyMDAsMzAwLDQwMCw2MDApO1xuLyogVkFSSUFCTEVTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICAgIEJSQU5EIENPTE9SU1xuKi9cbi8qXG4gICAgREVGQVVMVFNcbiovXG4vKlxuICAgIE9USEVSIFZBUklBQkxFU1xuKi9cbi8qXG4gICAgTElTVCBGT1IgREVGQVVMVCBCRyBDT0xPUiBHRU5FUkFUSU9OXG4qL1xuLypcbiAgICBMSVNUIEZPUiBERUZBVUxUIEZPTlQgQ09MT1IgR0VORVJBVElPTlxuKi9cbi8qXG4gICAgTElTVCBGT1IgREVGQVVMVCBGSUxMIENPTE9SIEdFTkVSQVRJT05cbiovXG4vKiBGVU5DVElPTlNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1JWElOU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTUlYSU4gLSBCT1RUT00gSVRFTVMgTk8gQk9SREVSIFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgUmVtb3ZlcyBib3JkZXIgYm90dG9tIGZyb20gbGFzdCBpdGVtcyBpbiBhIGdyaWRcblxuKi9cbi8qIE1JWElOIC0gQk9SREVSIFJFU1BPTlNJVkVORVNTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBUaGlzIG1peGluIGNhbGN1bGF0ZXMgdGhlIHRyYW5wYXJlbnQgYm9yZGVycyBvbiBncmlkcywgc28geW91IGhhdmUgYm9yZGVycyBiZXR3ZWVuIGl0ZW1zLCBidXQgbm90IG9uIHRoZSBsZWZ0IHNpZGUuIFxuICAgIEl0IGFjY2VwdHMgYSBwYXR0ZXJuLCAoUzEtTVAyKSwgd2hpY2ggbWVhbnMgb24gc21hbGwgMSBpdGVtIHBlciByb3csIG9uIG1lZGl1bS1wb3J0cmFpdCAyLCBldGMuIFxuICAgIFRoZSBmaXJzdCBpdGVtIGNhbiBiZSBzZXQgYXMgbGFyZ2UgYW5kIHRoZXJlZm9yZSAxMDAlIHdpZHRoIG9mIHBhcmVudCBjb250YWluZXIgc2l6ZS5cblxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5taXhpbiB0aGF0IGNhbGN1bGF0ZXMgaWYgdGV4dCBuZWVkcyB0byBiZSBsaWdodCBvciBkYXJrXG5kZXBlbmRpbmcgb24gdGhlIGJhY2tncm91bmQgY29sb3IgcGFzc2VkLlxuXG5Gcm9tIHRoaXMgVzNDIGRvY3VtZW50OiBodHRwOi8vd3d3LndlYm1hc3RlcndvcmxkLmNvbS9yLmNnaT9mPTg4JmQ9OTc2OSZ1cmw9aHR0cDovL3d3dy53My5vcmcvVFIvQUVSVCNjb2xvci1jb250cmFzdFxuXHRcdFx0XG5Db2xvciBicmlnaHRuZXNzIGlzIGRldGVybWluZWQgYnkgdGhlIGZvbGxvd2luZyBmb3JtdWxhOiBcbigoUmVkIHZhbHVlIFggMjk5KSArIChHcmVlbiB2YWx1ZSBYIDU4NykgKyAoQmx1ZSB2YWx1ZSBYIDExNCkpIC8gMTAwMFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuICogVmVyc2lvbiA2LjMuMVxuICogZm91bmRhdGlvbi56dXJiLmNvbVxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cbi8qISBub3JtYWxpemUtc2NzcyB8IE1JVC9HUEx2MiBMaWNlbnNlIHwgYml0Lmx5L25vcm1hbGl6ZS1zY3NzICovXG4vKiBEb2N1bWVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGRlZmF1bHQgZm9udCBmYW1pbHkgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDMuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cbiAgICAgKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gICAgICovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDIgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDMgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAzICovIH1cblxuLyogU2VjdGlvbnNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZm9vdGVyLFxuaGVhZGVyLFxubmF2LFxuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICAgICAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAgICAgKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICAgICAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDsgfVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuZmlnY2FwdGlvbixcbmZpZ3VyZSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAgICAgKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7IH1cblxuLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAgICAgKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAgICAgKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDEgKi9cbiAgaGVpZ2h0OiAwO1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi8gfVxuXG4vKiBMaW5rc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gICAgICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICAgICAqL1xuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBSZW1vdmUgdGhlIG91dGxpbmUgb24gZm9jdXNlZCBsaW5rcyB3aGVuIHRoZXkgYXJlIGFsc28gYWN0aXZlIG9yIGhvdmVyZWRcbiAgICAgKiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmUtd2lkdGg6IDA7IH1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIEZpcmVmb3ggMzktLlxuICAgICAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gICAgICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXG4gICAgICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyOyB9XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gICAgICovXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGJhY2tncm91bmQgYW5kIGNvbG9yIGluIElFIDktLlxuICAgICAqL1xubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4vKipcbiAgICAgKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAgICAgKiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuYXVkaW8sXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICAgICAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICAgICAqL1xuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lOyB9XG5cbi8qKlxuICAgICAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIEZvcm1zXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICAgICAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlO1xuICAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIG1hcmdpbjogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gICAgICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICAgICAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4vKipcbiAgICAgKiAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2BcbiAgICAgKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKi9cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqLyB9XG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLyoqXG4gICAgICAgKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICAgICAgICovXG4gIC8qKlxuICAgICAgICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICAgICAgICovIH1cbiAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIGJ1dHRvbjotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7IH1cblxuLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAgICAgKi9cbmlucHV0IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gICAgICovXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAgICAgKi9cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gICAgICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAvKiAyICovXG4gIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAgICAgICAqLyB9XG4gIFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLCBbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICAgICAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBDaGFuZ2UgdGhlIGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtOyB9XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICAgICAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAgICAgKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogdGFibGU7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDMgKi9cbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgLyogMSAqLyB9XG5cbi8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqIDIuIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gICAgICovXG5wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICAgICAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFLCBhbmQgRmlyZWZveC5cbiAgICAgKi9cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07IH1cblxuLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbm1lbnUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKiBTY3JpcHRpbmdcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5jYW52YXMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogSGlkZGVuXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAgICAgKi9cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZm91bmRhdGlvbi1tcSB7XG4gIGZvbnQtZmFtaWx5OiBcInNtYWxsPTBlbSZtZWRpdW0tcG9ydHJhaXQ9NDBlbSZtZWRpdW09NTBlbSZsYXJnZT02NC4wNjI1ZW0meGxhcmdlPTc1ZW0meHhsYXJnZT05MGVtXCI7IH1cblxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogOTUlOyB9XG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IH1cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgZm9udC1mYW1pbHk6IFwiTWVycml3ZWF0aGVyXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzAwMDAwMDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cblxuaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYzsgfVxuXG50ZXh0YXJlYSB7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogNTBweDtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG5zZWxlY3Qge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG4ubWFwX2NhbnZhcyBpbWcsXG4ubWFwX2NhbnZhcyBlbWJlZCxcbi5tYXBfY2FudmFzIG9iamVjdCxcbi5tcWEtZGlzcGxheSBpbWcsXG4ubXFhLWRpc3BsYXkgZW1iZWQsXG4ubXFhLWRpc3BsYXkgb2JqZWN0IHtcbiAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7IH1cblxuYnV0dG9uIHtcbiAgcGFkZGluZzogMDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGJ1dHRvbiB7XG4gICAgb3V0bGluZTogMDsgfVxuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4uaXMtdmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cblxuLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5kaXYsXG5kbCxcbmR0LFxuZGQsXG51bCxcbm9sLFxubGksXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wcmUsXG5mb3JtLFxucCxcbmJsb2NrcXVvdGUsXG50aCxcbnRkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbnAge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjg7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7IH1cblxuZW0sXG5pIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5zdHJvbmcsXG5iIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsgfVxuICBoMSBzbWFsbCxcbiAgaDIgc21hbGwsXG4gIGgzIHNtYWxsLFxuICBoNCBzbWFsbCxcbiAgaDUgc21hbGwsXG4gIGg2IHNtYWxsIHtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBjb2xvcjogI2NhY2FjYTsgfVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMS41Nzg5NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMS4zMTU3OXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oNCB7XG4gIGZvbnQtc2l6ZTogMS4xODQyMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oNSB7XG4gIGZvbnQtc2l6ZTogMS4xMTg0MnJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oNiB7XG4gIGZvbnQtc2l6ZTogMS4wNTI2M3JlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICBoMSB7XG4gICAgZm9udC1zaXplOiAyLjM2ODQycmVtOyB9XG4gIGgyIHtcbiAgICBmb250LXNpemU6IDIuMTA1MjZyZW07IH1cbiAgaDMge1xuICAgIGZvbnQtc2l6ZTogMS44NDIxMXJlbTsgfVxuICBoNCB7XG4gICAgZm9udC1zaXplOiAxLjU3ODk1cmVtOyB9XG4gIGg1IHtcbiAgICBmb250LXNpemU6IDEuMzE1NzlyZW07IH1cbiAgaDYge1xuICAgIGZvbnQtc2l6ZTogMS4wNTI2M3JlbTsgfSB9XG5cbmEge1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIGNvbG9yOiBibGFjazsgfVxuICBhIGltZyB7XG4gICAgYm9yZGVyOiAwOyB9XG5cbmhyIHtcbiAgY2xlYXI6IGJvdGg7XG4gIG1heC13aWR0aDogNzguOTQ3MzdyZW07XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAxLjMxNTc5cmVtIGF1dG87XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1yaWdodDogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1sZWZ0OiAwOyB9XG5cbnVsLFxub2wsXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4gIGxpbmUtaGVpZ2h0OiAxLjg7IH1cblxubGkge1xuICBmb250LXNpemU6IGluaGVyaXQ7IH1cblxudWwge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyB9XG5cbm9sIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07IH1cblxudWwgdWwsIG9sIHVsLCB1bCBvbCwgb2wgb2wge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgZGwgZHQge1xuICAgIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgICBmb250LXdlaWdodDogNzAwOyB9XG5cbmJsb2NrcXVvdGUge1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjU5MjExcmVtIDEuMzE1NzlyZW0gMCAxLjI1cmVtO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjYWNhY2E7IH1cbiAgYmxvY2txdW90ZSwgYmxvY2txdW90ZSBwIHtcbiAgICBsaW5lLWhlaWdodDogMS44O1xuICAgIGNvbG9yOiAjOGE4YThhOyB9XG5cbmNpdGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwLjg1NTI2cmVtO1xuICBjb2xvcjogIzhhOGE4YTsgfVxuICBjaXRlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCLigJQgXCI7IH1cblxuYWJiciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzIyMjIyMjtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGN1cnNvcjogaGVscDsgfVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7IH1cblxuY29kZSB7XG4gIHBhZGRpbmc6IDAuMTMxNThyZW0gMC4zMjg5NXJlbSAwLjA2NTc5cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6ICMyMjIyMjI7IH1cblxua2JkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwLjEzMTU4cmVtIDAuMjYzMTZyZW0gMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGNvbG9yOiAjMjIyMjIyOyB9XG5cbi5zdWJoZWFkZXIge1xuICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICM4YThhOGE7IH1cblxuLmxlYWQge1xuICBmb250LXNpemU6IDExOC43NSU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7IH1cblxuLnN0YXQge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgcCArIC5zdGF0IHtcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTsgfVxuXG4ubm8tYnVsbGV0IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLnRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLnRleHQtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS1wb3J0cmFpdC10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLm1lZGl1bS1wb3J0cmFpdC10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAubWVkaXVtLXBvcnRyYWl0LXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLm1lZGl1bS1wb3J0cmFpdC10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAubWVkaXVtLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubWVkaXVtLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5tZWRpdW0tdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubWVkaXVtLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgLmxhcmdlLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubGFyZ2UtdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLmxhcmdlLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmxhcmdlLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbi5zaG93LWZvci1wcmludCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgcHJpbnQge1xuICAqIHtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgLmhpZGUtZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgdGFibGUuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgdGhlYWQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRib2R5LnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICB0ci5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgdGQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICB0aC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIGEsXG4gIGE6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgYVtocmVmXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7IH1cbiAgLmlyIGE6YWZ0ZXIsXG4gIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gIGFbaHJlZl49JyMnXTphZnRlciB7XG4gICAgY29udGVudDogJyc7IH1cbiAgYWJiclt0aXRsZV06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjsgfVxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM4YThhOGE7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIHRoZWFkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgQHBhZ2Uge1xuICAgIG1hcmdpbjogMC41Y207IH1cbiAgcCxcbiAgaDIsXG4gIGgzIHtcbiAgICBvcnBoYW5zOiAzO1xuICAgIHdpZG93czogMzsgfVxuICBoMixcbiAgaDMge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG4gIC5wcmludC1icmVhay1pbnNpZGUge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvOyB9IH1cblxuLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBwYWRkaW5nOiAwLjg1ZW0gMWVtO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgY29sb3I6ICNmZmZmZmY7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5idXR0b24ge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLmJ1dHRvbi50aW55IHtcbiAgICBmb250LXNpemU6IDAuNnJlbTsgfVxuICAuYnV0dG9uLnNtYWxsIHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLmJ1dHRvbi5sYXJnZSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIC5idXR0b24uZXhwYW5kZWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuYnV0dG9uLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAuYnV0dG9uLnByaW1hcnk6aG92ZXIsIC5idXR0b24ucHJpbWFyeTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5idXR0b24uc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzc3O1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLmJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24uc2Vjb25kYXJ5OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1ZjVmNWY7XG4gICAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAuYnV0dG9uLnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzYWRiNzY7XG4gICAgY29sb3I6ICMyMjIyMjI7IH1cbiAgICAuYnV0dG9uLnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24uc3VjY2Vzczpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjJiYjViO1xuICAgICAgY29sb3I6ICMyMjIyMjI7IH1cbiAgLmJ1dHRvbi53YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwO1xuICAgIGNvbG9yOiAjMjIyMjIyOyB9XG4gICAgLmJ1dHRvbi53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLndhcm5pbmc6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjOGIwMDtcbiAgICAgIGNvbG9yOiAjMjIyMjIyOyB9XG4gIC5idXR0b24uYWxlcnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlYzU4NDA7XG4gICAgY29sb3I6ICMyMjIyMjI7IH1cbiAgICAuYnV0dG9uLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLmFsZXJ0OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkYTMxMTY7XG4gICAgICBjb2xvcjogIzIyMjIyMjsgfVxuICAuYnV0dG9uLmhvbGxvdyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzAwMDAwMDtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAgIC5idXR0b24uaG9sbG93LCAuYnV0dG9uLmhvbGxvdzpob3ZlciwgLmJ1dHRvbi5ob2xsb3c6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmhvbGxvdzpob3ZlciwgLmJ1dHRvbi5ob2xsb3c6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiBibGFjaztcbiAgICAgIGNvbG9yOiBibGFjazsgfVxuICAgIC5idXR0b24uaG9sbG93LnByaW1hcnkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwMDAwMDtcbiAgICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBibGFjaztcbiAgICAgICAgY29sb3I6IGJsYWNrOyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3Nzc7XG4gICAgICBjb2xvcjogIzc3NzsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICMzYzNjM2M7XG4gICAgICAgIGNvbG9yOiAjM2MzYzNjOyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cuc3VjY2VzcyB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjM2FkYjc2O1xuICAgICAgY29sb3I6ICMzYWRiNzY7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICMxNTc1Mzk7XG4gICAgICAgIGNvbG9yOiAjMTU3NTM5OyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cud2FybmluZyB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZhZTAwO1xuICAgICAgY29sb3I6ICNmZmFlMDA7IH1cbiAgICAgIC5idXR0b24uaG9sbG93Lndhcm5pbmc6aG92ZXIsIC5idXR0b24uaG9sbG93Lndhcm5pbmc6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICM4MDU3MDA7XG4gICAgICAgIGNvbG9yOiAjODA1NzAwOyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cuYWxlcnQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2VjNTg0MDtcbiAgICAgIGNvbG9yOiAjZWM1ODQwOyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5hbGVydDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICM4ODFmMGU7XG4gICAgICAgIGNvbG9yOiAjODgxZjBlOyB9XG4gIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b25bZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAwLjI1O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gICAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgIC5idXR0b24uZGlzYWJsZWQucHJpbWFyeSwgLmJ1dHRvbltkaXNhYmxlZF0ucHJpbWFyeSB7XG4gICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgICAgLmJ1dHRvbi5kaXNhYmxlZC5wcmltYXJ5LCAuYnV0dG9uLmRpc2FibGVkLnByaW1hcnk6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQucHJpbWFyeTpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0ucHJpbWFyeSwgLmJ1dHRvbltkaXNhYmxlZF0ucHJpbWFyeTpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF0ucHJpbWFyeTpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLmJ1dHRvbi5kaXNhYmxlZC5zZWNvbmRhcnksIC5idXR0b25bZGlzYWJsZWRdLnNlY29uZGFyeSB7XG4gICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgICAgLmJ1dHRvbi5kaXNhYmxlZC5zZWNvbmRhcnksIC5idXR0b24uZGlzYWJsZWQuc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLnNlY29uZGFyeTpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5LCAuYnV0dG9uW2Rpc2FibGVkXS5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdLnNlY29uZGFyeTpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3Nzc7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLmJ1dHRvbi5kaXNhYmxlZC5zdWNjZXNzLCAuYnV0dG9uW2Rpc2FibGVkXS5zdWNjZXNzIHtcbiAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgICAuYnV0dG9uLmRpc2FibGVkLnN1Y2Nlc3MsIC5idXR0b24uZGlzYWJsZWQuc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZC5zdWNjZXNzOmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXS5zdWNjZXNzLCAuYnV0dG9uW2Rpc2FibGVkXS5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXS5zdWNjZXNzOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNhZGI3NjtcbiAgICAgICAgY29sb3I6ICMyMjIyMjI7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLndhcm5pbmcsIC5idXR0b25bZGlzYWJsZWRdLndhcm5pbmcge1xuICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgIC5idXR0b24uZGlzYWJsZWQud2FybmluZywgLmJ1dHRvbi5kaXNhYmxlZC53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLndhcm5pbmc6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLndhcm5pbmcsIC5idXR0b25bZGlzYWJsZWRdLndhcm5pbmc6aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdLndhcm5pbmc6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwO1xuICAgICAgICBjb2xvcjogIzIyMjIyMjsgfVxuICAgIC5idXR0b24uZGlzYWJsZWQuYWxlcnQsIC5idXR0b25bZGlzYWJsZWRdLmFsZXJ0IHtcbiAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgICAuYnV0dG9uLmRpc2FibGVkLmFsZXJ0LCAuYnV0dG9uLmRpc2FibGVkLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLmFsZXJ0OmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXS5hbGVydCwgLmJ1dHRvbltkaXNhYmxlZF0uYWxlcnQ6aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdLmFsZXJ0OmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VjNTg0MDtcbiAgICAgICAgY29sb3I6ICMyMjIyMjI7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDAuNGVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjZmZmZmZmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuNGVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdzo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cucHJpbWFyeTo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cuc2Vjb25kYXJ5OjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzc3NzsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5zdWNjZXNzOjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzNhZGI3NjsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy53YXJuaW5nOjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmYWUwMDsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5hbGVydDo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNlYzU4NDA7IH1cbiAgLmJ1dHRvbi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgdG9wOiAtMC4xZW07XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuW3R5cGU9J3RleHQnXSwgW3R5cGU9J3Bhc3N3b3JkJ10sIFt0eXBlPSdkYXRlJ10sIFt0eXBlPSdkYXRldGltZSddLCBbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXSwgW3R5cGU9J21vbnRoJ10sIFt0eXBlPSd3ZWVrJ10sIFt0eXBlPSdlbWFpbCddLCBbdHlwZT0nbnVtYmVyJ10sIFt0eXBlPSdzZWFyY2gnXSwgW3R5cGU9J3RlbCddLCBbdHlwZT0ndGltZSddLCBbdHlwZT0ndXJsJ10sIFt0eXBlPSdjb2xvciddLFxudGV4dGFyZWEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMi41NjU3OXJlbTtcbiAgbWFyZ2luOiAwIDAgMS4wNTI2M3JlbTtcbiAgcGFkZGluZzogMC41MjYzMnJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMzQsIDM0LCAzNCwgMC4xKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMS4wNTI2M3JlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6ICMyMjIyMjI7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuICBhcHBlYXJhbmNlOiBub25lOyB9XG4gIFt0eXBlPSd0ZXh0J106Zm9jdXMsIFt0eXBlPSdwYXNzd29yZCddOmZvY3VzLCBbdHlwZT0nZGF0ZSddOmZvY3VzLCBbdHlwZT0nZGF0ZXRpbWUnXTpmb2N1cywgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ106Zm9jdXMsIFt0eXBlPSdtb250aCddOmZvY3VzLCBbdHlwZT0nd2VlayddOmZvY3VzLCBbdHlwZT0nZW1haWwnXTpmb2N1cywgW3R5cGU9J251bWJlciddOmZvY3VzLCBbdHlwZT0nc2VhcmNoJ106Zm9jdXMsIFt0eXBlPSd0ZWwnXTpmb2N1cywgW3R5cGU9J3RpbWUnXTpmb2N1cywgW3R5cGU9J3VybCddOmZvY3VzLCBbdHlwZT0nY29sb3InXTpmb2N1cyxcbiAgdGV4dGFyZWE6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzhhOGE4YTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggI2NhY2FjYTtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDsgfVxuXG50ZXh0YXJlYSB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuICB0ZXh0YXJlYVtyb3dzXSB7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG5cbmlucHV0OjpwbGFjZWhvbGRlcixcbnRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjY2FjYWNhOyB9XG5cbmlucHV0OmRpc2FibGVkLCBpbnB1dFtyZWFkb25seV0sXG50ZXh0YXJlYTpkaXNhYmxlZCxcbnRleHRhcmVhW3JlYWRvbmx5XSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG5bdHlwZT0nc3VibWl0J10sXG5bdHlwZT0nYnV0dG9uJ10ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbmlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG5bdHlwZT0nZmlsZSddLFxuW3R5cGU9J2NoZWNrYm94J10sXG5bdHlwZT0ncmFkaW8nXSB7XG4gIG1hcmdpbjogMCAwIDEuMDUyNjNyZW07IH1cblxuW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcblt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgbWFyZ2luLWxlZnQ6IDAuNTI2MzJyZW07XG4gIG1hcmdpbi1yaWdodDogMS4wNTI2M3JlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsW2Zvcl0sXG4gIFt0eXBlPSdyYWRpbyddICsgbGFiZWxbZm9yXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbmxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG5sYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjUyNjMycmVtOyB9XG5cblt0eXBlPSdmaWxlJ10ge1xuICB3aWR0aDogMTAwJTsgfVxuXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC45MjEwNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuODtcbiAgY29sb3I6ICMyMjIyMjI7IH1cbiAgbGFiZWwubWlkZGxlIHtcbiAgICBtYXJnaW46IDAgMCAxLjA1MjYzcmVtO1xuICAgIHBhZGRpbmc6IDAuNTkyMTFyZW0gMDsgfVxuXG4uaGVscC10ZXh0IHtcbiAgbWFyZ2luLXRvcDogLTAuNTI2MzJyZW07XG4gIGZvbnQtc2l6ZTogMC44NTUyNnJlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBjb2xvcjogIzIyMjIyMjsgfVxuXG4uaW5wdXQtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMS4wNTI2M3JlbTtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cbiAgLmlucHV0LWdyb3VwID4gOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG4gIC5pbnB1dC1ncm91cCA+IDpsYXN0LWNoaWxkID4gKiB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuXG4uaW5wdXQtZ3JvdXAtbGFiZWwsIC5pbnB1dC1ncm91cC1maWVsZCwgLmlucHV0LWdyb3VwLWJ1dHRvbiwgLmlucHV0LWdyb3VwLWJ1dHRvbiBhLFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBpbnB1dCxcbi5pbnB1dC1ncm91cC1idXR0b24gYnV0dG9uLFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBsYWJlbCB7XG4gIG1hcmdpbjogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4uaW5wdXQtZ3JvdXAtbGFiZWwge1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG4gIGNvbG9yOiAjMjIyMjIyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5pbnB1dC1ncm91cC1sYWJlbDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAwOyB9XG4gIC5pbnB1dC1ncm91cC1sYWJlbDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItbGVmdDogMDsgfVxuXG4uaW5wdXQtZ3JvdXAtZmllbGQge1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBmbGV4OiAxIDEgMHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi13aWR0aDogMDsgfVxuXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsZXg6IDAgMCBhdXRvOyB9XG4gIC5pbnB1dC1ncm91cC1idXR0b24gYSxcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBpbnB1dCxcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBidXR0b24sXG4gIC5pbnB1dC1ncm91cC1idXR0b24gbGFiZWwge1xuICAgIGhlaWdodDogMi42MzE1OHJlbTtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBmb250LXNpemU6IDEuMDUyNjNyZW07IH1cblxuZmllbGRzZXQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDsgfVxuXG5sZWdlbmQge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDAuNTI2MzJyZW07IH1cblxuLmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAxLjE4NDIxcmVtIDA7XG4gIHBhZGRpbmc6IDEuMzE1NzlyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7IH1cbiAgLmZpZWxkc2V0IGxlZ2VuZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC4xOTczN3JlbTtcbiAgICBwYWRkaW5nOiAwIDAuMTk3MzdyZW07XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjsgfVxuXG5zZWxlY3Qge1xuICBoZWlnaHQ6IDIuNTY1NzlyZW07XG4gIG1hcmdpbjogMCAwIDEuMDUyNjNyZW07XG4gIHBhZGRpbmc6IDAuNTI2MzJyZW07XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEuMDUyNjNyZW07XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjMjIyMjIyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyB3aWR0aD0nMzInIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAzMiAyNCc+PHBvbHlnb24gcG9pbnRzPScwLDAgMzIsMCAxNiwyNCcgc3R5bGU9J2ZpbGw6IHJnYiUyODEzOCwgMTM4LCAxMzglMjknPjwvcG9seWdvbj48L3N2Zz5cIik7XG4gIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgLTEuMDUyNjNyZW0gY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNTc4OTVyZW07XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBcXDApIHtcbiAgICBzZWxlY3Qge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PVwiKTsgfSB9XG4gIHNlbGVjdDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOGE4YThhO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAjY2FjYWNhO1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0OyB9XG4gIHNlbGVjdDpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgc2VsZWN0OjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIHNlbGVjdFttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyB9XG5cbi5pcy1pbnZhbGlkLWlucHV0Om5vdCg6Zm9jdXMpIHtcbiAgYm9yZGVyLWNvbG9yOiAjZWM1ODQwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRlZWVjOyB9XG4gIC5pcy1pbnZhbGlkLWlucHV0Om5vdCg6Zm9jdXMpOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICNlYzU4NDA7IH1cblxuLmlzLWludmFsaWQtbGFiZWwge1xuICBjb2xvcjogI2VjNTg0MDsgfVxuXG4uZm9ybS1lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi10b3A6IC0wLjUyNjMycmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjA1MjYzcmVtO1xuICBmb250LXNpemU6IDAuNzg5NDdyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiAjZWM1ODQwOyB9XG4gIC5mb3JtLWVycm9yLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDAwMDAwIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtM3B4O1xuICAgIHJpZ2h0OiAxcmVtOyB9XG5cbi5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnRbYXJpYS1leHBhbmRlZD0ndHJ1ZSddID4gYTo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlOyB9XG5cbi5kcm9wZG93bi1wYW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAzMDBweDtcbiAgcGFkZGluZzogMXJlbTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZjBmMGYwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBmb250LXNpemU6IDFyZW07IH1cbiAgLmRyb3Bkb3duLXBhbmUuaXMtb3BlbiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuXG4uZHJvcGRvd24tcGFuZS50aW55IHtcbiAgd2lkdGg6IDEwMHB4OyB9XG5cbi5kcm9wZG93bi1wYW5lLnNtYWxsIHtcbiAgd2lkdGg6IDIwMHB4OyB9XG5cbi5kcm9wZG93bi1wYW5lLmxhcmdlIHtcbiAgd2lkdGg6IDQwMHB4OyB9XG5cbi5kcm9wZG93bi5tZW51ID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgdG9wOiAxMDAlO1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bzsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDEwMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwOyB9XG5cbi5kcm9wZG93bi5tZW51ID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNnB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogIzAwMDAwMCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgcmlnaHQ6IDVweDtcbiAgbWFyZ2luLXRvcDogLTNweDsgfVxuXG5bZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmRyb3Bkb3duLm1lbnUgYSB7XG4gIG91dGxpbmU6IDA7IH1cblxuLm5vLWpzIC5kcm9wZG93bi5tZW51IHVsIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgdG9wOiAwOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgcmlnaHQ6IDEwMCU7XG4gIGxlZnQ6IGF1dG87IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDEwMCU7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaSA+IGE6OmFmdGVyIHtcbiAgcmlnaHQ6IDE0cHg7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMDAwMDAwIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwMDAwMDA7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXBvcnRyYWl0LWhvcml6b250YWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS1wb3J0cmFpdC1ob3Jpem9udGFsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXBvcnRyYWl0LWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXBvcnRyYWl0LWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICMwMDAwMDAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBtYXJnaW4tdG9wOiAtM3B4OyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS1wb3J0cmFpdC12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXBvcnRyYWl0LXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS1wb3J0cmFpdC12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXBvcnRyYWl0LXZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXBvcnRyYWl0LXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMwMDAwMDAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXBvcnRyYWl0LXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMDAwMDAwOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICMwMDAwMDAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBtYXJnaW4tdG9wOiAtM3B4OyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMwMDAwMDAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMDAwMDAwOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDAwMDAwIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbWFyZ2luLXRvcDogLTNweDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzAwMDAwMCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzAwMDAwMDsgfSB9XG5cbi5kcm9wZG93bi5tZW51LmFsaWduLXJpZ2h0IC5pcy1kcm9wZG93bi1zdWJtZW51LmZpcnN0LXN1YiB7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87IH1cblxuLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwge1xuICB3aWR0aDogMTAwcHg7IH1cbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwuYWxpZ24tcmlnaHQge1xuICAgIGZsb2F0OiByaWdodDsgfVxuXG4uaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IGE6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBtYXJnaW4tdG9wOiAtNnB4OyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1pbm5lciA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDEwMCU7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1pbi13aWR0aDogMjAwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4OyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzAwMDAwMCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMDAwMDAwOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBtYXJnaW4tdG9wOiAtMXB4OyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51ID4gbGkge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnJlc3BvbnNpdmUtZW1iZWQsXG4uZmxleC12aWRlbyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAxLjA1MjYzcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogNzUlO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5yZXNwb25zaXZlLWVtYmVkIGlmcmFtZSxcbiAgLnJlc3BvbnNpdmUtZW1iZWQgb2JqZWN0LFxuICAucmVzcG9uc2l2ZS1lbWJlZCBlbWJlZCxcbiAgLnJlc3BvbnNpdmUtZW1iZWQgdmlkZW8sXG4gIC5mbGV4LXZpZGVvIGlmcmFtZSxcbiAgLmZsZXgtdmlkZW8gb2JqZWN0LFxuICAuZmxleC12aWRlbyBlbWJlZCxcbiAgLmZsZXgtdmlkZW8gdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLnJlc3BvbnNpdmUtZW1iZWQud2lkZXNjcmVlbixcbiAgLmZsZXgtdmlkZW8ud2lkZXNjcmVlbiB7XG4gICAgcGFkZGluZy1ib3R0b206IDU2LjI1JTsgfVxuXG4uc3RpY2t5LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uc3RpY2t5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG5cbi5zdGlja3kuaXMtc3R1Y2sge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDU7IH1cbiAgLnN0aWNreS5pcy1zdHVjay5pcy1hdC10b3Age1xuICAgIHRvcDogMDsgfVxuICAuc3RpY2t5LmlzLXN0dWNrLmlzLWF0LWJvdHRvbSB7XG4gICAgYm90dG9tOiAwOyB9XG5cbi5zdGlja3kuaXMtYW5jaG9yZWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiBhdXRvOyB9XG4gIC5zdGlja3kuaXMtYW5jaG9yZWQuaXMtYXQtYm90dG9tIHtcbiAgICBib3R0b206IDA7IH1cblxuLmhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLmhpZGUtZm9yLXNtYWxsLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDBlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuc2hvdy1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bS1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5zaG93LWZvci1tZWRpdW0tcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA0OS45Mzc1ZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bS1wb3J0cmFpdC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bS1wb3J0cmFpdC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuaGlkZS1mb3ItbWVkaXVtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OS45Mzc1ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkgYW5kIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OS45Mzc1ZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAuc2hvdy1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgLmhpZGUtZm9yLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NGVtKSB7XG4gIC5zaG93LWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NGVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5zaG93LWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4uc2hvdy1mb3Itc3IsXG4uc2hvdy1vbi1mb2N1cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTsgfVxuXG4uc2hvdy1vbi1mb2N1czphY3RpdmUsIC5zaG93LW9uLWZvY3VzOmZvY3VzIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bzsgfVxuXG4uc2hvdy1mb3ItbGFuZHNjYXBlLFxuLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLmhpZGUtZm9yLWxhbmRzY2FwZSxcbi5zaG93LWZvci1wb3J0cmFpdCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cblxuLmZsb2F0LWxlZnQge1xuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XG5cbi5mbG9hdC1yaWdodCB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50OyB9XG5cbi5mbG9hdC1jZW50ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuXG4uY2xlYXJmaXg6OmJlZm9yZSwgLmNsZWFyZml4OjphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiAnICc7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIG9yZGVyOiAxOyB9XG5cbi5jbGVhcmZpeDo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDsgfVxuXG4vKiBTTElDSyAqL1xuLyogU2xpZGVyICovXG4uc2xpY2stc2xpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi5zbGljay1saXN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG4gIC5zbGljay1saXN0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG4gIC5zbGljay1saXN0LmRyYWdnaW5nIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY3Vyc29yOiBoYW5kOyB9XG5cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuXG4uc2xpY2stdHJhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgLnNsaWNrLXRyYWNrOmJlZm9yZSwgLnNsaWNrLXRyYWNrOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC5zbGljay10cmFjazphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXRyYWNrIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWNrLXNsaWRlIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBkaXNwbGF5OiBub25lOyB9XG4gIFtkaXI9XCJydGxcIl0gLnNsaWNrLXNsaWRlIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLnNsaWNrLXNsaWRlIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnNsaWNrLXNsaWRlLnNsaWNrLWxvYWRpbmcgaW1nIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5zbGljay1zbGlkZS5kcmFnZ2luZyBpbWcge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5zbGljay1pbml0aWFsaXplZCAuc2xpY2stc2xpZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5zbGljay1sb2FkaW5nIC5zbGljay1zbGlkZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5zbGljay12ZXJ0aWNhbCAuc2xpY2stc2xpZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuXG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBQSE9UT1NXSVBFICovXG4vKiBTVFVDVFVSRVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAwOyB9XG5cbltkYXRhLWFuaW1lLXR5cGU9XCJub25lXCJdIFtkYXRhLWFuaW1lLWVsZW1dIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4vKiBHRU5FUklDU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogR0VORVJJQ1MgLSBBTkNIT1JTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIGFbaHJlZl49XCJ0ZWxcIl0ge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9IH1cblxuLyogR0VORVJJQ1MgLSBCVVRUT04gR1JPVVBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmJ1dHRvbjphY3RpdmUsIC5idXR0b246YWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7IH1cblxuYnV0dG9uOmZvY3VzLCAuYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4uYnV0dG9uIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgcGFkZGluZzogMS4yZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYm9yZGVyOiBzb2xpZCAzcHg7XG4gIGJvcmRlci1jb2xvcjogI2ZmZmZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlO1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6ICNlMzA2MTM7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgtOTBkZWcsICM2NzAzMDksICNlMzA2MTMpO1xuICBjb2xvcjogI2ZmZmZmZjsgfVxuICAuYnV0dG9uIC5zdmctY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHdpZHRoOiAyZW07XG4gICAgaGVpZ2h0OiAyZW07IH1cbiAgLmJ1dHRvbiBzdmcge1xuICAgIHdpZHRoOiAyZW07XG4gICAgaGVpZ2h0OiAyZW07XG4gICAgZmlsbDogY3VycmVudENvbG9yOyB9XG4gIC5idXR0b24udl9leHBhbmRlZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmJ1dHRvbi52X2JyYW5kX3ByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICNlMzA2MTM7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLmJ1dHRvbi52X2JyYW5kX3ByaW1hcnktZGFya2VyIHtcbiAgICBiYWNrZ3JvdW5kOiAjNjcwMzA5O1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5idXR0b24udl9icmFuZF9zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQ6ICNmMmYyZjI7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJ1dHRvbi52X2JyYW5kX3NlY29uZGFyeS1kYXJrZXIge1xuICAgIGJhY2tncm91bmQ6ICNjY2NjY2M7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJ1dHRvbi52X2JyYW5kX3RlcnRpYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5idXR0b24udl9icmFuZF90ZXJ0aWFyeS1kYXJrZXIge1xuICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLmJ1dHRvbi52X2JyYW5kX2JsYWNrIHtcbiAgICBiYWNrZ3JvdW5kOiAjMjIyMjIyO1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5idXR0b24udl9icmFuZF93aGl0ZSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLnZfYnJhbmRfbGlnaHQtZ3JheSB7XG4gICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLnZfYnJhbmRfbGlnaHRlc3QtZ3JheSB7XG4gICAgYmFja2dyb3VuZDogI2ZhZmFmZDtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLnZfZ2hvc3Qge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgLmJ1dHRvbi52X2dob3N0X2JyYW5kX3ByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgY29sb3I6ICNlMzA2MTM7XG4gICAgYm9yZGVyLWNvbG9yOiAjZTMwNjEzOyB9XG4gIC5idXR0b24udl9naG9zdF9icmFuZF9wcmltYXJ5LWRhcmtlciB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBjb2xvcjogIzY3MDMwOTtcbiAgICBib3JkZXItY29sb3I6ICM2NzAzMDk7IH1cbiAgLmJ1dHRvbi52X2dob3N0X2JyYW5kX3NlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBjb2xvcjogI2YyZjJmMjtcbiAgICBib3JkZXItY29sb3I6ICNmMmYyZjI7IH1cbiAgLmJ1dHRvbi52X2dob3N0X2JyYW5kX3NlY29uZGFyeS1kYXJrZXIge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgY29sb3I6ICNjY2NjY2M7XG4gICAgYm9yZGVyLWNvbG9yOiAjY2NjY2NjOyB9XG4gIC5idXR0b24udl9naG9zdF9icmFuZF90ZXJ0aWFyeSB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgICBib3JkZXItY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJ1dHRvbi52X2dob3N0X2JyYW5kX3RlcnRpYXJ5LWRhcmtlciB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgICBib3JkZXItY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJ1dHRvbi52X2dob3N0X2JyYW5kX2JsYWNrIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGNvbG9yOiAjMjIyMjIyO1xuICAgIGJvcmRlci1jb2xvcjogIzIyMjIyMjsgfVxuICAuYnV0dG9uLnZfZ2hvc3RfYnJhbmRfd2hpdGUge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYm9yZGVyLWNvbG9yOiAjZmZmZmZmOyB9XG4gIC5idXR0b24udl9naG9zdF9icmFuZF9saWdodC1ncmF5IHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGNvbG9yOiAjZjBmMGYwO1xuICAgIGJvcmRlci1jb2xvcjogI2YwZjBmMDsgfVxuICAuYnV0dG9uLnZfZ2hvc3RfYnJhbmRfbGlnaHRlc3QtZ3JheSB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBjb2xvcjogI2ZhZmFmZDtcbiAgICBib3JkZXItY29sb3I6ICNmYWZhZmQ7IH1cbiAgLmJ1dHRvbi52X3RyYW5zcGFyZW50IHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgICAuYnV0dG9uLnZfdHJhbnNwYXJlbnQ6aG92ZXIge1xuICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5idXR0b24udl90cmFuc3BhcmVudF9ib2R5IHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gICAgZm9udC1mYW1pbHk6IFwiTWVycml3ZWF0aGVyXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG4gICAgLmJ1dHRvbi52X3RyYW5zcGFyZW50X2JvZHkgLnN2Zy1jb250YWluZXIge1xuICAgICAgd2lkdGg6IDEuNGVtO1xuICAgICAgaGVpZ2h0OiAxLjRlbTsgfVxuICAgIC5idXR0b24udl90cmFuc3BhcmVudF9ib2R5IHN2ZyB7XG4gICAgICB3aWR0aDogMS40ZW07XG4gICAgICBoZWlnaHQ6IDEuNGVtOyB9XG4gICAgLmJ1dHRvbi52X3RyYW5zcGFyZW50X2JvZHk6aG92ZXIge1xuICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5idXR0b24udl9oYXMtaWNvbi1sZWZ0IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgcGFkZGluZzogMC44NGVtOyB9XG4gICAgLmJ1dHRvbi52X2hhcy1pY29uLWxlZnQgLnN2Zy1jb250YWluZXIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxZW07IH1cbiAgLmJ1dHRvbi52X2hhcy1pY29uLXJpZ2h0IHtcbiAgICBwYWRkaW5nOiAwLjg0ZW07IH1cbiAgICAuYnV0dG9uLnZfaGFzLWljb24tcmlnaHQgLnN2Zy1jb250YWluZXIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLWxlZnQ6IDFlbTsgfVxuICAuYnV0dG9uOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAuODsgfVxuXG4vKiBHRU5FUklDUyAtIEZPUk1cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmlucHV0LFxudGV4dGFyZWEsXG5zZWxlY3Qge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAzcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMHJlbSAycmVtIC4ycmVtIDFyZW0gIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7IH1cbiAgaW5wdXQ6ZGlzYWJsZWQsXG4gIHRleHRhcmVhOmRpc2FibGVkLFxuICBzZWxlY3Q6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMSAhaW1wb3J0YW50OyB9XG4gIGlucHV0OjpwbGFjZWhvbGRlcixcbiAgdGV4dGFyZWE6OnBsYWNlaG9sZGVyLFxuICBzZWxlY3Q6OnBsYWNlaG9sZGVyIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KSAhaW1wb3J0YW50OyB9XG4gIGlucHV0OmZvY3VzLFxuICB0ZXh0YXJlYTpmb2N1cyxcbiAgc2VsZWN0OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7IH1cblxuc2VsZWN0IHtcbiAgcGFkZGluZzogMHJlbSAyLjVyZW0gMCAxcmVtICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IC0xOHB4IGNlbnRlcjsgfVxuXG50ZXh0YXJlYSB7XG4gIG1pbi1oZWlnaHQ6IDEwMHB4OyB9XG5cbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdIHtcbiAgcGFkZGluZzogMXJlbSAxcmVtIDFyZW0gMXJlbSAhaW1wb3J0YW50O1xuICBib3JkZXI6IHNvbGlkIDNweCAjZjBmMGYwICFpbXBvcnRhbnQ7IH1cblxuaW5wdXQ6Oi13ZWJraXQtY29udGFjdHMtYXV0by1maWxsLWJ1dHRvbiB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDsgfVxuXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGEsXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGlucHV0LFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBidXR0b24sXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjlyZW07IH1cblxuLyogR0VORVJJQ1MgLSBIUlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaHIge1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggcmdiYSgzNCwgMzQsIDM0LCAwLjE1KTtcbiAgbWFyZ2luOiAzMHB4IDA7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG4vKiBMSVNUIFNFQVJDSFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmFjX2xpc3Qtc2VhcmNoIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXItdG9wOiBzb2xpZCAxcHggcmdiYSgxMDIsIDEwMiwgMTAyLCAwLjIpOyB9XG5cbi5hY19saXN0LXNlYXJjaF9pdGVtIHtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IHJnYmEoMTAyLCAxMDIsIDEwMiwgMC4yKTsgfVxuXG4uYWNfbGlzdC1zZWFyY2hfaXRlbV9saW5rIHtcbiAgcGFkZGluZzogMmVtIDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsgfVxuXG4vKiBHRU5FUklDUyAtIE1BUFNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5nbS1zdHlsZSB7XG4gIGZvbnQtZmFtaWx5OiBcIk1lcnJpd2VhdGhlclwiLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50OyB9XG5cbi8qIEdFTkVSSUNTIC0gU0xJQ0sgU0xJREVSXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uc2xpY2stZG90cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjIyO1xuICBsZWZ0OiA1MCU7XG4gIGJvdHRvbTogLTJlbTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAuc2xpY2stZG90cyB7XG4gICAgICBib3R0b206IC00ZW07IH0gfVxuICAuc2xpY2stZG90cyBidXR0b24ge1xuICAgIGJvcmRlcjogc29saWQgMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICB3aWR0aDogMWVtO1xuICAgIGhlaWdodDogMWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgbWFyZ2luOiAwIC4xNWVtO1xuICAgIHRleHQtaW5kZW50OiAtOTk5OTlweDsgfVxuICAgIC5zbGljay1kb3RzIGJ1dHRvbjpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAuc2xpY2stZG90cyBidXR0b246Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZTsgfVxuICAuc2xpY2stZG90cyAuc2xpY2stYWN0aXZlIGJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogIzAwMDAwMDsgfVxuXG4uc2xpY2stc2xpZGU6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbmJ1dHRvbi5zbGljay1wcmV2LFxuYnV0dG9uLnNsaWNrLW5leHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDIyMjtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgd2lkdGg6IDNlbTtcbiAgaGVpZ2h0OiAzZW07XG4gIHBhZGRpbmc6IC41ZW07XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogNXB4IDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuICBidXR0b24uc2xpY2stcHJldiBzdmcsXG4gIGJ1dHRvbi5zbGljay1uZXh0IHN2ZyB7XG4gICAgd2lkdGg6IDJlbTtcbiAgICBoZWlnaHQ6IDJlbTsgfVxuICBidXR0b24uc2xpY2stcHJldjpob3ZlcixcbiAgYnV0dG9uLnNsaWNrLW5leHQ6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICBidXR0b24uc2xpY2stcHJldjpmb2N1cyxcbiAgYnV0dG9uLnNsaWNrLW5leHQ6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7IH1cblxuYnV0dG9uLnNsaWNrLXByZXYge1xuICBsZWZ0OiAwOyB9XG5cbmJ1dHRvbi5zbGljay1uZXh0IHtcbiAgcmlnaHQ6IDA7IH1cblxuLyogR0VORVJJQ1MgLSBTVkdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBBUlRTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQQVJUIC0gQ09OVEVOVFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmFjX2NvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmFjX2NvbnRlbnRfY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBtYXgtd2lkdGg6IDEwMDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDAgMjBweDsgfVxuICAuYWNfY29udGVudF9jb250YWluZXIuYV9jb2xsYXBzZWQge1xuICAgIHBhZGRpbmc6IDA7IH1cblxuLmFjX2NvbnRlbnRfZmxleCB7XG4gIHBhZGRpbmc6IDAgMTBweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIC5hY19jb250ZW50X2ZsZXgge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBhZGRpbmc6IDAgMTBweDsgfSB9XG5cbi5hY19jb250ZW50X2Z1bGwsXG4uYWNfY29udGVudF9mdWxsd2lkdGgge1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5hY19jb250ZW50X2hhbGYsXG4uYWNfY29udGVudF8xLTIge1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgLmFjX2NvbnRlbnRfaGFsZixcbiAgICAuYWNfY29udGVudF8xLTIge1xuICAgICAgZmxleDogMCAxIDUwJTtcbiAgICAgIG1heC13aWR0aDogNTAlOyB9IH1cblxuLmFjX2NvbnRlbnRfMS0zIHtcbiAgcGFkZGluZzogMCAxMHB4O1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIC5hY19jb250ZW50XzEtMyB7XG4gICAgICBmbGV4OiAwIDEgMzMuMzMzMzMlO1xuICAgICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH0gfVxuXG4uYWNfY29udGVudF8yLTMge1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgLmFjX2NvbnRlbnRfMi0zIHtcbiAgICAgIGZsZXg6IDAgMSA2Ni42NjY2NyU7XG4gICAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfSB9XG5cbi5hY19jb250ZW50XzEtNCB7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAuYWNfY29udGVudF8xLTQge1xuICAgICAgZmxleDogMCAxIDI1JTtcbiAgICAgIG1heC13aWR0aDogMjUlOyB9IH1cblxuLmFjX2NvbnRlbnRfMy00IHtcbiAgcGFkZGluZzogMCAxMHB4O1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIC5hY19jb250ZW50XzMtNCB7XG4gICAgICBmbGV4OiAwIDEgNzUlO1xuICAgICAgbWF4LXdpZHRoOiA3NSU7IH0gfVxuXG4uYWNfY29udGVudF8xLTUge1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgLmFjX2NvbnRlbnRfMS01IHtcbiAgICAgIGZsZXg6IDAgMSAyMCU7XG4gICAgICBtYXgtd2lkdGg6IDQwJTsgfSB9XG5cbi5hY19jb250ZW50XzItNSB7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAuYWNfY29udGVudF8yLTUge1xuICAgICAgZmxleDogMCAxIDQwJTtcbiAgICAgIG1heC13aWR0aDogNDAlOyB9IH1cblxuLmFjX2NvbnRlbnRfMy01IHtcbiAgcGFkZGluZzogMCAxMHB4O1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIC5hY19jb250ZW50XzMtNSB7XG4gICAgICBmbGV4OiAwIDEgNjAlO1xuICAgICAgbWF4LXdpZHRoOiA2MCU7IH0gfVxuXG4uYWNfY29udGVudF80LTUge1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgLmFjX2NvbnRlbnRfNC01IHtcbiAgICAgIGZsZXg6IDAgMSA4MCU7XG4gICAgICBtYXgtd2lkdGg6IDgwJTsgfSB9XG5cbi8qIEdSSUQgLSBCQVNFRCBPTiBEQVRBIEFUVFJJQlVURVNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbltkYXRhLXMtYW1vdW50PVwiMVwiXSBbZGF0YS1zLWFtb3VudC1pdGVtXSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIFtkYXRhLXMtYW1vdW50PVwiMlwiXSBbZGF0YS1zLWFtb3VudC1pdGVtXSB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIFtkYXRhLXMtYW1vdW50PVwiM1wiXSBbZGF0YS1zLWFtb3VudC1pdGVtXSB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gIFtkYXRhLXMtYW1vdW50PVwiM1wiXSBbZGF0YS1zLWFtb3VudC1pdGVtXSB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIFtkYXRhLXMtYW1vdW50PVwiNFwiXSBbZGF0YS1zLWFtb3VudC1pdGVtXSB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgW2RhdGEtcy1hbW91bnQ9XCI0XCJdIFtkYXRhLXMtYW1vdW50LWl0ZW1dIHtcbiAgICB3aWR0aDogMjUlO1xuICAgIG1heC13aWR0aDogMjUlOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgW2RhdGEtcy1hbW91bnQ9XCI1XCJdIFtkYXRhLXMtYW1vdW50LWl0ZW1dIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIG1heC13aWR0aDogNTAlOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICBbZGF0YS1zLWFtb3VudD1cIjVcIl0gW2RhdGEtcy1hbW91bnQtaXRlbV0ge1xuICAgIHdpZHRoOiAyMCU7XG4gICAgbWF4LXdpZHRoOiAyMCU7IH0gfVxuXG4vKiBCQUNLRFJPUCBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5hY19iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5hY19iYWNrZHJvcF9pbWFnZS1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDsgfVxuXG4uYWNfYmFja2Ryb3BfaW1hZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDE7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgb3BhY2l0eTogMTsgfVxuXG4uYWNfYmFja2Ryb3BfdmlkZW8tY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDI7IH1cbiAgLmFjX2JhY2tkcm9wX3ZpZGVvLWNvbnRhaW5lciB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7IH1cblxuLyogU0VDVElPTiAtIERJVklERVIgXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uYWNfc2VjdGlvbl9kaXZpZGVyIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIC8qIFNFQ1RJT04gLSBESVZJREVSIC0gQU5HTEVEIFNWR1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICAvKiBTRUNUSU9OIC0gRElWSURFUiAtIEFOR0xFRCBTVkdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiAgLyogU0VDVElPTiAtIERJVklERVIgLSBBTkdMRUQgU1ZHXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIC8qIFNFQ1RJT04gLSBESVZJREVSIC0gRE9UVEVEXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIC8qIFNFQ1RJT04gLSBESVZJREVSIC0gRE9UVEVEXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIC8qIFNFQ1RJT04gLSBESVZJREVSIC0gQU5HTEVEIFNWR1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICAvKiBTRUNUSU9OIC0gRElWSURFUiAtIFNQSUtFRFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICAvKiBTRUNUSU9OIC0gRElWSURFUiAtIFNQSUtFRCAtIFNNQUxMXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovIH1cbiAgLmFjX3NlY3Rpb25fZGl2aWRlcltkYXRhLXMtZGl2aWRlci10eXBlPVwiYW5nbGVkLXN2Z1wiXSAuYWNfc2VjdGlvbl9kaXZpZGVyX3RvcCB7XG4gICAgdG9wOiAtM3Z3O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxMTtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5hY19zZWN0aW9uX2RpdmlkZXJbZGF0YS1zLWRpdmlkZXItdHlwZT1cImFuZ2xlZC1zdmdcIl0gLmFjX3NlY3Rpb25fZGl2aWRlcl90b3Agc3ZnIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAzdnc7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsgfVxuICAuYWNfc2VjdGlvbl9kaXZpZGVyW2RhdGEtcy1kaXZpZGVyLXR5cGU9XCJhbmdsZWQtc3ZnXCJdIC5hY19zZWN0aW9uX2RpdmlkZXJfYm90dG9tIHtcbiAgICBib3R0b206IC0zdnc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDExO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cbiAgICAuYWNfc2VjdGlvbl9kaXZpZGVyW2RhdGEtcy1kaXZpZGVyLXR5cGU9XCJhbmdsZWQtc3ZnXCJdIC5hY19zZWN0aW9uX2RpdmlkZXJfYm90dG9tIHN2ZyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogM3Z3O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7IH1cbiAgLmFjX3NlY3Rpb25fZGl2aWRlcltkYXRhLXMtZGl2aWRlci10eXBlPVwiYnV0dC1jaGVla3NcIl0gLmFjX3NlY3Rpb25fZGl2aWRlcl90b3Age1xuICAgIHRvcDogLTUwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDExO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgLmFjX3NlY3Rpb25fZGl2aWRlcltkYXRhLXMtZGl2aWRlci10eXBlPVwiYnV0dC1jaGVla3NcIl0gLmFjX3NlY3Rpb25fZGl2aWRlcl9ib3R0b20ge1xuICAgIGJvdHRvbTogLTUwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDExO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfVxuICAuYWNfc2VjdGlvbl9kaXZpZGVyW2RhdGEtcy1kaXZpZGVyLXR5cGU9XCJidXR0LWNoZWVrc1wiXSAuYWNfc2VjdGlvbl9kaXZpZGVyX2NoZWVrX2xlZnQge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1MHB4OyB9XG4gIC5hY19zZWN0aW9uX2RpdmlkZXJbZGF0YS1zLWRpdmlkZXItdHlwZT1cImJ1dHQtY2hlZWtzXCJdIC5hY19zZWN0aW9uX2RpdmlkZXJfY2hlZWtfcmlnaHQge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDUwcHg7IH1cbiAgLmFjX3NlY3Rpb25fZGl2aWRlcltkYXRhLXMtZGl2aWRlci10eXBlPVwiY3VydmVkLWNoZWVrc1wiXSAuYWNfc2VjdGlvbl9kaXZpZGVyX3RvcCB7XG4gICAgdG9wOiAtMTB2dztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTE7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuYWNfc2VjdGlvbl9kaXZpZGVyW2RhdGEtcy1kaXZpZGVyLXR5cGU9XCJjdXJ2ZWQtY2hlZWtzXCJdIC5hY19zZWN0aW9uX2RpdmlkZXJfdG9wIHN2ZyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTB2dztcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpOyB9XG4gIC5hY19zZWN0aW9uX2RpdmlkZXJbZGF0YS1zLWRpdmlkZXItdHlwZT1cImN1cnZlZC1jaGVla3NcIl0gLmFjX3NlY3Rpb25fZGl2aWRlcl9ib3R0b20ge1xuICAgIGJvdHRvbTogLTEwdnc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDExO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cbiAgICAuYWNfc2VjdGlvbl9kaXZpZGVyW2RhdGEtcy1kaXZpZGVyLXR5cGU9XCJjdXJ2ZWQtY2hlZWtzXCJdIC5hY19zZWN0aW9uX2RpdmlkZXJfYm90dG9tIHN2ZyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTB2dztcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpOyB9XG4gIC5hY19zZWN0aW9uX2RpdmlkZXJbZGF0YS1zLWRpdmlkZXItdHlwZT1cImRvdHRlZFwiXSAuYWNfc2VjdGlvbl9kaXZpZGVyX3RvcCB7XG4gICAgdG9wOiAtMTlweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTE7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmFjX3NlY3Rpb25fZGl2aWRlcltkYXRhLXMtZGl2aWRlci10eXBlPVwiZG90dGVkXCJdIC5hY19zZWN0aW9uX2RpdmlkZXJfYm90dG9tIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTE7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm90dG9tOiAtMTkuNTNweDsgfVxuICAgIC5hY19zZWN0aW9uX2RpdmlkZXJbZGF0YS1zLWRpdmlkZXItdHlwZT1cImRvdHRlZFwiXSAuYWNfc2VjdGlvbl9kaXZpZGVyX2JvdHRvbSBzdmcge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfVxuICAuYWNfc2VjdGlvbl9kaXZpZGVyW2RhdGEtcy1kaXZpZGVyLXR5cGU9XCJkb3R0ZWRcIl0gc3ZnIHtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmFjX3NlY3Rpb25fZGl2aWRlcltkYXRhLXMtZGl2aWRlci10eXBlPVwic2VtaS10cmFuc3BhcmVudFwiXSAuYWNfc2VjdGlvbl9kaXZpZGVyX3RvcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDExO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmFjX3NlY3Rpb25fZGl2aWRlcltkYXRhLXMtZGl2aWRlci10eXBlPVwic2VtaS10cmFuc3BhcmVudFwiXSAuYWNfc2VjdGlvbl9kaXZpZGVyX3RvcCBzdmcge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuYWNfc2VjdGlvbl9kaXZpZGVyW2RhdGEtcy1kaXZpZGVyLXR5cGU9XCJzZW1pLXRyYW5zcGFyZW50XCJdIC5hY19zZWN0aW9uX2RpdmlkZXJfdG9wLnBfcG9seWdvbi0xIHtcbiAgICAgIHRvcDogLTMuOXZ3O1xuICAgICAgei1pbmRleDogMTE7IH1cbiAgICAgIC5hY19zZWN0aW9uX2RpdmlkZXJbZGF0YS1zLWRpdmlkZXItdHlwZT1cInNlbWktdHJhbnNwYXJlbnRcIl0gLmFjX3NlY3Rpb25fZGl2aWRlcl90b3AucF9wb2x5Z29uLTEgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiA0dnc7IH1cbiAgICAuYWNfc2VjdGlvbl9kaXZpZGVyW2RhdGEtcy1kaXZpZGVyLXR5cGU9XCJzZW1pLXRyYW5zcGFyZW50XCJdIC5hY19zZWN0aW9uX2RpdmlkZXJfdG9wLnBfcG9seWdvbi0yIHtcbiAgICAgIHRvcDogLTd2dztcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgb3BhY2l0eTogLjM7IH1cbiAgICAgIC5hY19zZWN0aW9uX2RpdmlkZXJbZGF0YS1zLWRpdmlkZXItdHlwZT1cInNlbWktdHJhbnNwYXJlbnRcIl0gLmFjX3NlY3Rpb25fZGl2aWRlcl90b3AucF9wb2x5Z29uLTIgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiA3dnc7IH1cbiAgLmFjX3NlY3Rpb25fZGl2aWRlcltkYXRhLXMtZGl2aWRlci10eXBlPVwic21pbGVcIl0gLmFjX3NlY3Rpb25fZGl2aWRlcl90b3Age1xuICAgIHRvcDogLTEwdnc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDExO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmFjX3NlY3Rpb25fZGl2aWRlcltkYXRhLXMtZGl2aWRlci10eXBlPVwic21pbGVcIl0gLmFjX3NlY3Rpb25fZGl2aWRlcl90b3Agc3ZnIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMHZ3O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7IH1cbiAgLmFjX3NlY3Rpb25fZGl2aWRlcltkYXRhLXMtZGl2aWRlci10eXBlPVwic21pbGVcIl0gLmFjX3NlY3Rpb25fZGl2aWRlcl9ib3R0b20ge1xuICAgIGJvdHRvbTogLTEwdnc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDExO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cbiAgICAuYWNfc2VjdGlvbl9kaXZpZGVyW2RhdGEtcy1kaXZpZGVyLXR5cGU9XCJzbWlsZVwiXSAuYWNfc2VjdGlvbl9kaXZpZGVyX2JvdHRvbSBzdmcge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwdnc7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsgfVxuICAuYWNfc2VjdGlvbl9kaXZpZGVyW2RhdGEtcy1kaXZpZGVyLXR5cGU9XCJzcGlrZWRcIl0gLmFjX3NlY3Rpb25fZGl2aWRlcl90b3Age1xuICAgIHRvcDogLTE5cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDExO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5hY19zZWN0aW9uX2RpdmlkZXJbZGF0YS1zLWRpdmlkZXItdHlwZT1cInNwaWtlZFwiXSAuYWNfc2VjdGlvbl9kaXZpZGVyX2JvdHRvbSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDExO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvdHRvbTogLTI1cHg7IH1cbiAgICAuYWNfc2VjdGlvbl9kaXZpZGVyW2RhdGEtcy1kaXZpZGVyLXR5cGU9XCJzcGlrZWRcIl0gLmFjX3NlY3Rpb25fZGl2aWRlcl9ib3R0b20gc3ZnIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cbiAgLmFjX3NlY3Rpb25fZGl2aWRlcltkYXRhLXMtZGl2aWRlci10eXBlPVwic3Bpa2VkXCJdIHN2ZyB7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5hY19zZWN0aW9uX2RpdmlkZXJbZGF0YS1zLWRpdmlkZXItdHlwZT1cInNwaWtlZC1zbWFsbFwiXSAuYWNfc2VjdGlvbl9kaXZpZGVyX3RvcCB7XG4gICAgdG9wOiAtMTZweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTE7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmFjX3NlY3Rpb25fZGl2aWRlcltkYXRhLXMtZGl2aWRlci10eXBlPVwic3Bpa2VkLXNtYWxsXCJdIC5hY19zZWN0aW9uX2RpdmlkZXJfYm90dG9tIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTE7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm90dG9tOiAtMjBweDsgfVxuICAgIC5hY19zZWN0aW9uX2RpdmlkZXJbZGF0YS1zLWRpdmlkZXItdHlwZT1cInNwaWtlZC1zbWFsbFwiXSAuYWNfc2VjdGlvbl9kaXZpZGVyX2JvdHRvbSBzdmcge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfVxuICAuYWNfc2VjdGlvbl9kaXZpZGVyW2RhdGEtcy1kaXZpZGVyLXR5cGU9XCJzcGlrZWQtc21hbGxcIl0gc3ZnIHtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuLyogUEFSVCAtIFNFQ1RJT04gSEVBRElOR1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmFjX2hlYWRpbmcge1xuICBtYXJnaW46IDAgYXV0bzsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIC5hY19oZWFkaW5nLnZfdGl0bGUtY2VudGVyZWRfYnV0dG9uLXJpZ2h0IC5hY19oZWFkaW5nX3RpdGxlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgLmFjX2hlYWRpbmcudl90aXRsZS1jZW50ZXJlZF9idXR0b24tcmlnaHQgLmFjX2hlYWRpbmdfbGluayB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRvcDogMWVtOyB9IH1cbiAgLmFjX2hlYWRpbmcudl90aXRsZS1jZW50ZXJlZF9idXR0b24tY2VudGVyZWQgLmFjX2hlYWRpbmdfbGluayxcbiAgLmFjX2hlYWRpbmcudl90aXRsZS1jZW50ZXJlZF9idXR0b24tY2VudGVyZWQgLmFjX2hlYWRpbmdfdGl0bGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuYWNfaGVhZGluZy52X3RpdGxlLWxlZnRfYnV0dG9uLXJpZ2h0IC5hY19oZWFkaW5nX2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4uYWNfaGVhZGluZ19jb250YWluZXIge1xuICBwYWRkaW5nOiAwIDIwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uYWNfaGVhZGluZ190aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTsgfVxuXG4uYWNfaGVhZGluZ19saW5rIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4vKiBQQVJUIC0gU09DSUFMU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmFjX3NvY2lhbHMge1xuICBkaXNwbGF5OiBmbGV4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5hY19zb2NpYWxzIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9IH1cbiAgLmFjX3NvY2lhbHMudl9zbWFsbGVyIC5hY19zb2NpYWxzX2xpbmtfaWNvbiB7XG4gICAgd2lkdGg6IDNlbTtcbiAgICBoZWlnaHQ6IDNlbTtcbiAgICBwYWRkaW5nOiAwLjM3NWVtOyB9XG4gICAgLmFjX3NvY2lhbHMudl9zbWFsbGVyIC5hY19zb2NpYWxzX2xpbmtfaWNvbiBzdmcge1xuICAgICAgd2lkdGg6IDIuMjVlbTtcbiAgICAgIGhlaWdodDogMi4yNWVtOyB9XG4gIC5hY19zb2NpYWxzLnZfc21hbGxlc3QgLmFjX3NvY2lhbHNfbGlua19pY29uIHtcbiAgICB3aWR0aDogMmVtO1xuICAgIGhlaWdodDogMmVtO1xuICAgIHBhZGRpbmc6IDAuMjVlbTsgfVxuICAgIC5hY19zb2NpYWxzLnZfc21hbGxlc3QgLmFjX3NvY2lhbHNfbGlua19pY29uIHN2ZyB7XG4gICAgICB3aWR0aDogMS41ZW07XG4gICAgICBoZWlnaHQ6IDEuNWVtOyB9XG4gIC5hY19zb2NpYWxzLnZfaGlkZV90ZXh0IC5hY19zb2NpYWxzX2xpbmtfdGV4dCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuYWNfc29jaWFscy52X2NvbGxhcHNlLW9uLXNtYWxsIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAgIC5hY19zb2NpYWxzLnZfY29sbGFwc2Utb24tc21hbGwgLmFjX3NvY2lhbHNfbGluayB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNmVtOyB9IH1cblxuLmFjX3NvY2lhbHNfbGluayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1yaWdodDogMC4zZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjNlbTsgfVxuXG4uYWNfc29jaWFsc19saW5rX2ljb24ge1xuICB3aWR0aDogNGVtO1xuICBoZWlnaHQ6IDRlbTtcbiAgcGFkZGluZzogMC41ZW07XG4gIGJhY2tncm91bmQ6ICMyMjIyMjI7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOyB9XG4gIC5hY19zb2NpYWxzX2xpbmtfaWNvbiBzdmcge1xuICAgIHdpZHRoOiAzZW07XG4gICAgaGVpZ2h0OiAzZW07XG4gICAgZmlsbDogI2ZmZmZmZjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOyB9XG5cbi5hY19zb2NpYWxzX2xpbmtfdGV4dCB7XG4gIG1hcmdpbi1sZWZ0OiAwLjZlbTsgfVxuXG4vKiBGT09URVJTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGT09URVIgMSAtIDFcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbltkYXRhLWYtdHlwZT1cImZvb3Rlci0xXCJdIHtcbiAgLyogIEZPT1RFUiAxIC0gR0xPQkFMU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgZm9udC1zaXplOiA5MCU7IH1cbiAgW2RhdGEtZi10eXBlPVwiZm9vdGVyLTFcIl0gLmFjX2Zvb3Rlcl9wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwOyB9XG4gICAgW2RhdGEtZi10eXBlPVwiZm9vdGVyLTFcIl0gLmFjX2Zvb3Rlcl9wcmltYXJ5ICoge1xuICAgICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgW2RhdGEtZi10eXBlPVwiZm9vdGVyLTFcIl0gLmFjX2Zvb3Rlcl9wcmltYXJ5X2NvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAxMDAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogNDBweCAxMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjRlbSkge1xuICAgICAgW2RhdGEtZi10eXBlPVwiZm9vdGVyLTFcIl0gLmFjX2Zvb3Rlcl9wcmltYXJ5X2NvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwOyB9IH1cbiAgW2RhdGEtZi10eXBlPVwiZm9vdGVyLTFcIl0gLmFjX2Zvb3Rlcl9wcmltYXJ5X2NvbHVtbiB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjRlbSkge1xuICAgICAgW2RhdGEtZi10eXBlPVwiZm9vdGVyLTFcIl0gLmFjX2Zvb3Rlcl9wcmltYXJ5X2NvbHVtbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgICBbZGF0YS1mLXR5cGU9XCJmb290ZXItMVwiXSAuYWNfZm9vdGVyX3ByaW1hcnlfY29sdW1uOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIGZsZXg6IDAgMSAyMCU7XG4gICAgICAgIG1heC13aWR0aDogMjAlOyB9XG4gICAgICBbZGF0YS1mLXR5cGU9XCJmb290ZXItMVwiXSAuYWNfZm9vdGVyX3ByaW1hcnlfY29sdW1uOm50aC1jaGlsZCgyKSB7XG4gICAgICAgIGZsZXg6IDAgMSA0MCU7XG4gICAgICAgIG1heC13aWR0aDogNDAlOyB9XG4gICAgICBbZGF0YS1mLXR5cGU9XCJmb290ZXItMVwiXSAuYWNfZm9vdGVyX3ByaW1hcnlfY29sdW1uOm50aC1jaGlsZCgzKSB7XG4gICAgICAgIGZsZXg6IDAgMSAyMCU7XG4gICAgICAgIG1heC13aWR0aDogMjAlOyB9XG4gICAgICBbZGF0YS1mLXR5cGU9XCJmb290ZXItMVwiXSAuYWNfZm9vdGVyX3ByaW1hcnlfY29sdW1uOm50aC1jaGlsZCg0KSB7XG4gICAgICAgIGZsZXg6IDAgMSAyMCU7XG4gICAgICAgIG1heC13aWR0aDogMjAlOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OS45Mzc1ZW0pIHtcbiAgICAgIFtkYXRhLWYtdHlwZT1cImZvb3Rlci0xXCJdIC5hY19mb290ZXJfcHJpbWFyeV9jb2x1bW4ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ5LjkzNzVlbSkge1xuICAgICAgW2RhdGEtZi10eXBlPVwiZm9vdGVyLTFcIl0gLmFjX2Zvb3Rlcl9wcmltYXJ5X2NvbHVtbjpudGgtY2hpbGQoMSkge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICBbZGF0YS1mLXR5cGU9XCJmb290ZXItMVwiXSAuYWNfZm9vdGVyX3ByaW1hcnlfY29sdW1uOm50aC1jaGlsZCgzKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICBbZGF0YS1mLXR5cGU9XCJmb290ZXItMVwiXSAuYWNfZm9vdGVyX3ByaW1hcnlfbGluayB7XG4gICAgY29sb3I6IHdoaXRlOyB9XG4gICAgW2RhdGEtZi10eXBlPVwiZm9vdGVyLTFcIl0gLmFjX2Zvb3Rlcl9wcmltYXJ5X2xpbms6aG92ZXIge1xuICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTsgfVxuICBbZGF0YS1mLXR5cGU9XCJmb290ZXItMVwiXSAuYWNfZm9vdGVyX3NlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOyB9XG4gICAgW2RhdGEtZi10eXBlPVwiZm9vdGVyLTFcIl0gLmFjX2Zvb3Rlcl9zZWNvbmRhcnkgKiB7XG4gICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XG4gIFtkYXRhLWYtdHlwZT1cImZvb3Rlci0xXCJdIC5hY19mb290ZXJfc2Vjb25kYXJ5X2NvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAxMDAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogMTBweCAxMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgW2RhdGEtZi10eXBlPVwiZm9vdGVyLTFcIl0gLmFjX2Zvb3Rlcl9zZWNvbmRhcnlfY29sdW1uIHtcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgICAgW2RhdGEtZi10eXBlPVwiZm9vdGVyLTFcIl0gLmFjX2Zvb3Rlcl9zZWNvbmRhcnlfY29sdW1uOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIGZsZXg6IDAgMSA1MCU7XG4gICAgICAgIG1heC13aWR0aDogNTAlOyB9XG4gICAgICBbZGF0YS1mLXR5cGU9XCJmb290ZXItMVwiXSAuYWNfZm9vdGVyX3NlY29uZGFyeV9jb2x1bW46bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgZmxleDogMCAxIDUwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA1MCU7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ5LjkzNzVlbSkge1xuICAgICAgW2RhdGEtZi10eXBlPVwiZm9vdGVyLTFcIl0gLmFjX2Zvb3Rlcl9zZWNvbmRhcnlfY29sdW1uIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gICAgICAgIFtkYXRhLWYtdHlwZT1cImZvb3Rlci0xXCJdIC5hY19mb290ZXJfc2Vjb25kYXJ5X2NvbHVtbiAuYWNfZm9vdGVyX3NlY29uZGFyeV9saW5rLFxuICAgICAgICBbZGF0YS1mLXR5cGU9XCJmb290ZXItMVwiXSAuYWNfZm9vdGVyX3NlY29uZGFyeV9jb2x1bW4gLmFjX2Zvb3Rlcl9zZWNvbmRhcnlfdGV4dCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgICBbZGF0YS1mLXR5cGU9XCJmb290ZXItMVwiXSAuYWNfZm9vdGVyX3NlY29uZGFyeV9jb2x1bW4ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgICAgIFtkYXRhLWYtdHlwZT1cImZvb3Rlci0xXCJdIC5hY19mb290ZXJfc2Vjb25kYXJ5X2NvbHVtbiAuYWNfZm9vdGVyX3NlY29uZGFyeV9saW5rLFxuICAgICAgICBbZGF0YS1mLXR5cGU9XCJmb290ZXItMVwiXSAuYWNfZm9vdGVyX3NlY29uZGFyeV9jb2x1bW4gLmFjX2Zvb3Rlcl9zZWNvbmRhcnlfdGV4dCB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG4gICAgICAgIFtkYXRhLWYtdHlwZT1cImZvb3Rlci0xXCJdIC5hY19mb290ZXJfc2Vjb25kYXJ5X2NvbHVtbjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAgICAgICBbZGF0YS1mLXR5cGU9XCJmb290ZXItMVwiXSAuYWNfZm9vdGVyX3NlY29uZGFyeV9jb2x1bW46bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gICAgICAgICAgW2RhdGEtZi10eXBlPVwiZm9vdGVyLTFcIl0gLmFjX2Zvb3Rlcl9zZWNvbmRhcnlfY29sdW1uOm50aC1jaGlsZCgyKSAuYWNfZm9vdGVyX3NlY29uZGFyeV9saW5rLFxuICAgICAgICAgIFtkYXRhLWYtdHlwZT1cImZvb3Rlci0xXCJdIC5hY19mb290ZXJfc2Vjb25kYXJ5X2NvbHVtbjpudGgtY2hpbGQoMikgLmFjX2Zvb3Rlcl9zZWNvbmRhcnlfdGV4dCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDsgfSB9XG4gIFtkYXRhLWYtdHlwZT1cImZvb3Rlci0xXCJdIC5hY19mb290ZXJfc2Vjb25kYXJ5X3RleHQge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgW2RhdGEtZi10eXBlPVwiZm9vdGVyLTFcIl0gLmFjX2Zvb3Rlcl9zZWNvbmRhcnlfbGluayB7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gICAgW2RhdGEtZi10eXBlPVwiZm9vdGVyLTFcIl0gLmFjX2Zvb3Rlcl9zZWNvbmRhcnlfbGluazpob3ZlciB7XG4gICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpOyB9XG4gIFtkYXRhLWYtdHlwZT1cImZvb3Rlci0xXCJdIC5hY19zb2NpYWxzIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OS45Mzc1ZW0pIHtcbiAgICBbZGF0YS1mLXR5cGU9XCJmb290ZXItMVwiXSAuYWNfc29jaWFscyB7XG4gICAgICBtYXJnaW46IDIwcHggMDsgfSB9XG4gIFtkYXRhLWYtdHlwZT1cImZvb3Rlci0xXCJdIC5hY19zb2NpYWxzX2xpbmtfaWNvbiB7XG4gICAgYmFja2dyb3VuZDogIzAwMDAwMDsgfVxuICAgIFtkYXRhLWYtdHlwZT1cImZvb3Rlci0xXCJdIC5hY19zb2NpYWxzX2xpbmtfaWNvbiBzdmcge1xuICAgICAgZmlsbDogI2ZmZmZmZjsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgICAgIFtkYXRhLWYtdHlwZT1cImZvb3Rlci0xXCJdIC5hY19zb2NpYWxzX2xpbmtfaWNvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7IH1cbiAgICAgICAgW2RhdGEtZi10eXBlPVwiZm9vdGVyLTFcIl0gLmFjX3NvY2lhbHNfbGlua19pY29uOmhvdmVyIHN2ZyB7XG4gICAgICAgICAgZmlsbDogIzAwMDAwMDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ5LjkzNzVlbSkge1xuICAgIFtkYXRhLWYtdHlwZT1cImZvb3Rlci0xXCJdIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA2MHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkgYW5kIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICBbZGF0YS1mLXR5cGU9XCJmb290ZXItMVwiXSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogODBweDsgfSB9XG4gIFtkYXRhLWYtdHlwZT1cImZvb3Rlci0xXCJdIGgyIHtcbiAgICBmb250LXNpemU6IDE2MCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBvcGFjaXR5OiAuNTsgfVxuICBbZGF0YS1mLXR5cGU9XCJmb290ZXItMVwiXSB1bCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7IH1cbiAgW2RhdGEtZi10eXBlPVwiZm9vdGVyLTFcIl0gLmFjX2Zvb3Rlcl9jb2x1bW46bnRoLWNoaWxkKDIpIC5hY19mb290ZXJfbGluayB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gIFtkYXRhLWYtdHlwZT1cImZvb3Rlci0xXCJdIC5hY19mb290ZXJfcHJpbWFyeV9saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICBbZGF0YS1mLXR5cGU9XCJmb290ZXItMVwiXSAuYWNfZm9vdGVyX3ByaW1hcnlfbGlua19jb3B5X2Fib3ZlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG9wYWNpdHk6IC41O1xuICAgIGZvbnQtc2l6ZTogODAlOyB9XG4gIFtkYXRhLWYtdHlwZT1cImZvb3Rlci0xXCJdIC5hY19mb290ZXJfc2Vjb25kYXJ5IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgZm9udC1zaXplOiA5MCU7IH1cbiAgW2RhdGEtZi10eXBlPVwiZm9vdGVyLTFcIl0gLmFjX2Zvb3Rlcl9zZWNvbmRhcnlfbGluayB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLyogTUVOVVNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNFQ1RJT04gLSBNRU5VIDJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIGZvciBtZW51cyB3ZSB1c2UgYSBnbG9iYWwgc2NvcGUsIHNvIHdlIGNhbiBhZGRyZXNzIHRoZSBib2R5IGFzd2VsbFxuXG4qL1xuLyogTUVOVSAyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5bZGF0YS1tLXR5cGU9XCJtZW51LTJcIl0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDkuOTM3NWVtKSB7XG4gICAgW2RhdGEtbS10eXBlPVwibWVudS0yXCJdIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgei1pbmRleDogMjIyMjtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIGJveC1zaGFkb3c6IDVweCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMSk7IH0gfVxuICBbZGF0YS1tLXR5cGU9XCJtZW51LTJcIl0gdWwubWVudS5kcm9wZG93biB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAgIFtkYXRhLW0tdHlwZT1cIm1lbnUtMlwiXSB1bC5tZW51LmRyb3Bkb3duIGEge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyB9XG4gICAgW2RhdGEtbS10eXBlPVwibWVudS0yXCJdIHVsLm1lbnUuZHJvcGRvd24udl9oYXMtaXRlbXMtcmlnaHQgYSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGluaGVyaXQ7XG4gICAgICBtYXJnaW4tbGVmdDogMjBweDsgfVxuICBbZGF0YS1tLXR5cGU9XCJtZW51LTJcIl0gdWwuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogLjRlbSAwOyB9XG4gICAgW2RhdGEtbS10eXBlPVwibWVudS0yXCJdIHVsLmlzLWRyb3Bkb3duLXN1Ym1lbnUgbGkuaXMtc3VibWVudS1pdGVtIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyOyB9XG4gICAgW2RhdGEtbS10eXBlPVwibWVudS0yXCJdIHVsLmlzLWRyb3Bkb3duLXN1Ym1lbnUgYSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBhZGRpbmc6IDAgMWVtOyB9XG4gIFtkYXRhLW0tdHlwZT1cIm1lbnUtMlwiXSBhIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ5LjkzNzVlbSkge1xuICAgIFtkYXRhLW0tdHlwZT1cIm1lbnUtMlwiXSArIC5tYWluLWNvbnRhaW5lciB7XG4gICAgICBwYWRkaW5nLXRvcDogNzBweDsgfSB9XG4gIFtkYXRhLW0tdHlwZT1cIm1lbnUtMlwiXSAuc2VhcmNoLWZvcm0ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cblxuLmFjX21lbnUtMl9jdGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi5hY19tZW51LTJfY3RhX2xpbmsge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuYWNfbWVudS0yX2N0YV9saW5rIHN2ZyB7XG4gICAgd2lkdGg6IDEuNmVtO1xuICAgIGhlaWdodDogMS42ZW07IH1cblxuLmFjX21lbnUtMl9kaXZpZGVyX2FmdGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLXJpZ2h0OiAxZW07IH1cbiAgLmFjX21lbnUtMl9kaXZpZGVyX2FmdGVyOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMnB4O1xuICAgIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuXG4uYWNfbWVudS0yX2RpdmlkZXJfYmVmb3JlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDFlbTsgfVxuICAuYWNfbWVudS0yX2RpdmlkZXJfYmVmb3JlOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAycHg7XG4gICAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cblxuLmFjX21lbnUtMl9zdGlja3lfY29udGFpbmVyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHRyYW5zaXRpb246IGhlaWdodCAuM3MgZWFzZTsgfVxuXG4uYWNfbWVudS0yX3N0aWNreSB7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAyMjIxO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlOyB9XG4gIC5hY19tZW51LTJfc3RpY2t5LmlzLXN0dWNrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIHotaW5kZXg6IDIyMjI7XG4gICAgYm94LXNoYWRvdzogNXB4IDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuICAgIC5hY19tZW51LTJfc3RpY2t5LmlzLXN0dWNrIC5hY19tZW51LTJfbG9nb19pbWcge1xuICAgICAgd2lkdGg6IDk4cHg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDkuOTM3NWVtKSB7XG4gICAgLmFjX21lbnUtMl9zdGlja3kge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5hY19tZW51LTJfbG9nb19jb250YWluZXIge1xuICBwYWRkaW5nOiAyMHB4IDA7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDkuOTM3NWVtKSB7XG4gICAgLmFjX21lbnUtMl9sb2dvX2NvbnRhaW5lciB7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAuYWNfbWVudS0yX2xvZ29fY29udGFpbmVyIHtcbiAgICAgIGZsZXg6IDAgMCAxNDBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgfSB9XG5cbmEuYWNfbWVudS0yX2xvZ29fbGluayB7XG4gIHdpbGwtY2hhbmdlOiBjb250ZW50cztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgZWFzZTtcbiAgbWFyZ2luOiAwOyB9XG4gIGEuYWNfbWVudS0yX2xvZ29fbGluazpob3ZlciB7XG4gICAgb3BhY2l0eTogLjg7IH1cblxuLmFjX21lbnUtMl9sb2dvX2ltZyB7XG4gIHdpZHRoOiAxNDBweDtcbiAgdHJhbnNpdGlvbjogd2lkdGggLjNzIGVhc2U7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDkuOTM3NWVtKSB7XG4gICAgLmFjX21lbnUtMl9sb2dvX2ltZyB7XG4gICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICB3aWR0aDogaW5pdGlhbDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ5LjkzNzVlbSkge1xuICAuYWNfbWVudS0yX2Jhcl90b3Age1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uYWNfbWVudS0yX2Jhcl90b3Age1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDIyMjM7XG4gIGJhY2tncm91bmQ6ICNmMGYwZjA7IH1cblxuLmFjX21lbnUtMl9iYXJfdG9wX2NvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDAgMjBweDtcbiAgbWF4LXdpZHRoOiAxMDAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cblxuLmFjX21lbnUtMl9iYXJfdG9wX2NvbnRlbnQge1xuICBsaW5lLWhlaWdodDogMjsgfVxuXG4uYWNfbWVudS0yX21haW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICB6LWluZGV4OiAyMjIyO1xuICBwYWRkaW5nOiAwIDIwcHg7XG4gIG1heC13aWR0aDogMTAwMHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ5LjkzNzVlbSkge1xuICAgIC5hY19tZW51LTJfbWFpbiB7XG4gICAgICBwYWRkaW5nOiAxMHB4OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgLmFjX21lbnUtMl9tYWluX2NvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlLCB2aXNpYmlsaXR5IDBzIC42czsgfSB9XG5cbi5hY19tZW51LTJfbWFpbl9jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ5LjkzNzVlbSkge1xuICAgIC5hY19tZW51LTJfbWFpbl9jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OS45Mzc1ZW0pIHtcbiAgLmFjX21lbnUtMl9iYXJfYm90dG9tIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmFjX21lbnUtMl9iYXJfYm90dG9tIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyMjIzO1xuICBiYWNrZ3JvdW5kOiAjZjBmMGYwOyB9XG5cbi5hY19tZW51LTJfYmFyX2JvdHRvbV9jb250YWluZXIge1xuICBwYWRkaW5nOiAwIDIwcHg7XG4gIG1heC13aWR0aDogMTAwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG5cbi5hY19tZW51LTJfYmFyX2JvdHRvbV9jb250ZW50IHtcbiAgbGluZS1oZWlnaHQ6IDI7IH1cblxuLmFjX21lbnUtMl9idG4tc2VhcmNoIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmFjX21lbnUtMl9idG4tc2VhcmNoIHN2ZyB7XG4gICAgd2lkdGg6IDEuNmVtO1xuICAgIGhlaWdodDogMS42ZW07IH1cblxuLmFjX21lbnUtMl9tb2JpbGVfY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGZsZXgtZ3JvdzogMTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIC5hY19tZW51LTJfbW9iaWxlX2NvbnRlbnQge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5hY19tZW51LTJfbW9iaWxlX2NvbnRlbnRfZGl2aWRlciB7XG4gIHdpZHRoOiAxcHg7XG4gIG1hcmdpbjogMCAxZW07XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuXG4uYWNfbWVudS0yX21vYmlsZV9idG4ge1xuICBoZWlnaHQ6IDUwcHg7XG4gIHdpZHRoOiA1MHB4O1xuICBwYWRkaW5nOiAxMi41cHggMTIuNXB4OyB9XG4gIC5hY19tZW51LTJfbW9iaWxlX2J0biBzdmcge1xuICAgIHdpZHRoOiAyNXB4ICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAyNXB4ICFpbXBvcnRhbnQ7XG4gICAgZmlsbDogIzAwMDAwMDsgfVxuXG4uYWNfbWVudS0yX21vYmlsZV9idG4taGFtYnVyZ2VyIHtcbiAgaGVpZ2h0OiA1MHB4O1xuICB3aWR0aDogNTBweDtcbiAgcGFkZGluZzogMTJweCAxMHB4OyB9XG4gIC5hY19tZW51LTJfbW9iaWxlX2J0bi1oYW1idXJnZXIgLmJ1cmdlci1pY29uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLXRvcDogNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gICAgLmFjX21lbnUtMl9tb2JpbGVfYnRuLWhhbWJ1cmdlciAuYnVyZ2VyLWljb24sIC5hY19tZW51LTJfbW9iaWxlX2J0bi1oYW1idXJnZXIgLmJ1cmdlci1pY29uOjpiZWZvcmUsIC5hY19tZW51LTJfbW9iaWxlX2J0bi1oYW1idXJnZXIgLmJ1cmdlci1pY29uOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAyNXB4O1xuICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgLW1vei10cmFuc2Zvcm07XG4gICAgICAtby10cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLCAtby10cmFuc2Zvcm07XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLCB0cmFuc2Zvcm07XG4gICAgICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDAuM3M7XG4gICAgICAtbW96LXRyYW5zaXRpb24tZHVyYXRpb246IDAuM3M7XG4gICAgICAtby10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zczsgfVxuICAgIC5hY19tZW51LTJfbW9iaWxlX2J0bi1oYW1idXJnZXIgLmJ1cmdlci1pY29uOjpiZWZvcmUsIC5hY19tZW51LTJfbW9iaWxlX2J0bi1oYW1idXJnZXIgLmJ1cmdlci1pY29uOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBjb250ZW50OiBcIlwiOyB9XG4gICAgLmFjX21lbnUtMl9tb2JpbGVfYnRuLWhhbWJ1cmdlciAuYnVyZ2VyLWljb246OmJlZm9yZSB7XG4gICAgICB0b3A6IC02cHg7IH1cbiAgICAuYWNfbWVudS0yX21vYmlsZV9idG4taGFtYnVyZ2VyIC5idXJnZXItaWNvbjo6YWZ0ZXIge1xuICAgICAgdG9wOiA2cHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAuYWNfbWVudS0yX21vYmlsZV9idG4taGFtYnVyZ2VyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5ib2R5LnNfaXMtb3Blbl9tZW51LW1vYmlsZSAuYnVyZ2VyLWljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG5ib2R5LnNfaXMtb3Blbl9tZW51LW1vYmlsZSAuYnVyZ2VyLWljb246OmJlZm9yZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCkgcm90YXRlKDQ1ZGVnKTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KSByb3RhdGUoNDVkZWcpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCkgcm90YXRlKDQ1ZGVnKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCkgcm90YXRlKDQ1ZGVnKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCkgcm90YXRlKDQ1ZGVnKTsgfVxuXG5ib2R5LnNfaXMtb3Blbl9tZW51LW1vYmlsZSAuYnVyZ2VyLWljb246OmFmdGVyIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTZweCkgcm90YXRlKC00NWRlZyk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02cHgpIHJvdGF0ZSgtNDVkZWcpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02cHgpIHJvdGF0ZSgtNDVkZWcpO1xuICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTZweCkgcm90YXRlKC00NWRlZyk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNnB4KSByb3RhdGUoLTQ1ZGVnKTsgfVxuXG4uYWNfbWVudS0yX292ZXJsYXlfY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAyMjIxO1xuICB3aWR0aDogNDAwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYmFja2dyb3VuZDogI2ZhZmFmZDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwMHB4KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcyBlYXNlO1xuICBwYWRkaW5nLXRvcDogNzBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuYWNfbWVudS0yX292ZXJsYXlfY29udGFpbmVyIHtcbiAgICAgIHdpZHRoOiA5MHZ3O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAuYWNfbWVudS0yX292ZXJsYXlfY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uYWNfbWVudS0yX292ZXJsYXlfc2Nyb2xsX2NvbnRhaW5lciB7XG4gIG92ZXJmbG93OiBzY3JvbGw7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTsgfVxuXG4uYWNfbWVudS0yX292ZXJsYXlfc2Nyb2xsX2NvbnRhaW5lcl9pbm5lciB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoOyB9XG5cbi5hY19tZW51LTJfb3ZlcmxheV9tZW51X2NvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDIwcHg7IH1cblxudWwuYWNfbWVudS0yX292ZXJsYXlfbWVudV9wcmltYXJ5IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXItdG9wOiBzb2xpZCAxcHggcmdiYSgxMDIsIDEwMiwgMTAyLCAwLjIpO1xuICBwYWRkaW5nLWJvdHRvbTogMmVtOyB9XG4gIHVsLmFjX21lbnUtMl9vdmVybGF5X21lbnVfcHJpbWFyeSBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgdWwuYWNfbWVudS0yX292ZXJsYXlfbWVudV9wcmltYXJ5ID4gbGkge1xuICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2JhKDEwMiwgMTAyLCAxMDIsIDAuMik7IH1cbiAgICB1bC5hY19tZW51LTJfb3ZlcmxheV9tZW51X3ByaW1hcnkgPiBsaSA+IGEge1xuICAgICAgcGFkZGluZzogMTBweCAwOyB9XG4gIHVsLmFjX21lbnUtMl9vdmVybGF5X21lbnVfcHJpbWFyeSB1bC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTsgfVxuICAgIHVsLmFjX21lbnUtMl9vdmVybGF5X21lbnVfcHJpbWFyeSB1bC5pcy1hY2NvcmRpb24tc3VibWVudSBhIHtcbiAgICAgIHBhZGRpbmc6IDVweCAwOyB9XG5cbnVsLmFjX21lbnUtMl9vdmVybGF5X21lbnVfc2Vjb25kYXJ5IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwOyB9XG4gIHVsLmFjX21lbnUtMl9vdmVybGF5X21lbnVfc2Vjb25kYXJ5IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiA1cHggMDsgfVxuXG5ib2R5LnNfaXMtb3Blbl9tZW51LW1vYmlsZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgYm9keS5zX2lzLW9wZW5fbWVudS1tb2JpbGUgLmFjX21lbnUtMl9vdmVybGF5X2NvbnRhaW5lciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG5cbi5hY19tZW51LTJfb3ZlcmxheV9iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICB6LWluZGV4OiAyMjIwO1xuICBoZWlnaHQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzIGVhc2UgLjNzLCBoZWlnaHQgMHMgLjZzOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgLmFjX21lbnUtMl9vdmVybGF5X2JhY2tkcm9wIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5ib2R5LnNfaXMtb3Blbl9tZW51LW1vYmlsZSAuYWNfbWVudS0yX292ZXJsYXlfYmFja2Ryb3Age1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IGhlaWdodCAwcywgb3BhY2l0eSAuM3MgZWFzZTsgfVxuXG4uYWNfbWVudS0yX3NlYXJjaF9jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTJlbSk7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2U7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDkuOTM3NWVtKSB7XG4gICAgLmFjX21lbnUtMl9zZWFyY2hfY29udGFpbmVyIHtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgcmlnaHQ6IDFlbTsgfSB9XG5cbmJvZHkuSUUxMCAuYWNfbWVudS0yX3NlYXJjaF9jb250YWluZXIge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5hY19tZW51LTJfc2VhcmNoX2lucHV0IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5hY19tZW51LTJfc2VhcmNoX2Nsb3NlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogLjdlbTtcbiAgdG9wOiAwO1xuICB3aWR0aDogM2VtO1xuICBoZWlnaHQ6IDNlbTtcbiAgcGFkZGluZzogLjdlbTsgfVxuICAuYWNfbWVudS0yX3NlYXJjaF9jbG9zZSBzdmcge1xuICAgIHdpZHRoOiAxLjZlbTtcbiAgICBoZWlnaHQ6IDEuNmVtO1xuICAgIGZpbGw6ICMwMDAwMDA7IH1cblxuYm9keS5zX2lzLW9wZW5fbWVudS1zZWFyY2guSUUxMCAuYWNfbWVudS0yX3NlYXJjaF9jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG5ib2R5LnNfaXMtb3Blbl9tZW51LXNlYXJjaCAuYWNfbWVudS0yX3NlYXJjaF9jb250YWluZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgtNTAlKTtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDkuOTM3NWVtKSB7XG4gICAgYm9keS5zX2lzLW9wZW5fbWVudS1zZWFyY2ggLmFjX21lbnUtMl9zZWFyY2hfY29udGFpbmVyIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSB0cmFuc2xhdGVZKC01MCUpOyB9IH1cblxuLmFjX3NvY2lhbHNfbGlua19pY29uIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjsgfVxuICAuYWNfc29jaWFsc19saW5rX2ljb24gc3ZnIHtcbiAgICBmaWxsOiAjMDAwMDAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgICAuYWNfc29jaWFsc19saW5rX2ljb246aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogIzAwMDAwMDsgfVxuICAgICAgLmFjX3NvY2lhbHNfbGlua19pY29uOmhvdmVyIHN2ZyB7XG4gICAgICAgIGZpbGw6ICNmZmZmZmY7IH0gfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1FTlUtMTAxXzFcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFDX21lbnUtMTAxXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5bZGF0YS1tLXR5cGU9XCJtZW51LTEwMVwiXSB7XG4gIHdpZHRoOiAxODBweDtcbiAgei1pbmRleDogMTExO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ5LjkzNzVlbSkge1xuICAgIFtkYXRhLW0tdHlwZT1cIm1lbnUtMTAxXCJdIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcG9zaXRpb246IGZpeGVkOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICBbZGF0YS1tLXR5cGU9XCJtZW51LTEwMVwiXSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7IH0gfVxuICBbZGF0YS1tLXR5cGU9XCJtZW51LTEwMVwiXSB1bC5tZW51LnZlcnRpY2FsLFxuICBbZGF0YS1tLXR5cGU9XCJtZW51LTEwMVwiXSB1bC5tZW51LmRyb3Bkb3duIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgW2RhdGEtbS10eXBlPVwibWVudS0xMDFcIl0gdWwubWVudS52ZXJ0aWNhbCBhLFxuICAgIFtkYXRhLW0tdHlwZT1cIm1lbnUtMTAxXCJdIHVsLm1lbnUuZHJvcGRvd24gYSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICBbZGF0YS1tLXR5cGU9XCJtZW51LTEwMVwiXSB1bC5tZW51LmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgcGFkZGluZzogLjRlbSAwO1xuICAgIGJveC1zaGFkb3c6IDVweCA1cHggMTBweCByZ2JhKDM0LCAzNCwgMzQsIDAuMSk7IH1cbiAgICBbZGF0YS1tLXR5cGU9XCJtZW51LTEwMVwiXSB1bC5tZW51LmlzLWRyb3Bkb3duLXN1Ym1lbnUgYSB7XG4gICAgICBwYWRkaW5nOiAuMWVtIDEuMmVtOyB9XG4gIFtkYXRhLW0tdHlwZT1cIm1lbnUtMTAxXCJdIHVsLmlzLWFjY29yZGlvbi1zdWJtZW51IHtcbiAgICBsaXN0LXN0eWxlOiBub25lOyB9XG4gIFtkYXRhLW0tdHlwZT1cIm1lbnUtMTAxXCJdIGE6aG92ZXIge1xuICAgIGNvbG9yOiAjNjcwMzA5OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ5LjkzNzVlbSkge1xuICAgIFtkYXRhLW0tdHlwZT1cIm1lbnUtMTAxXCJdICsgLm1haW4tY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiA3MHB4OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICBbZGF0YS1tLXR5cGU9XCJtZW51LTEwMVwiXSArIC5tYWluLWNvbnRhaW5lciB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDE4MHB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDkuOTM3NWVtKSB7XG4gIC5hY19tZW51LTEwMV9jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTExO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7IH0gfVxuXG4uYWNfbWVudS0xMDFfbG9nb19jb250YWluZXIge1xuICBwYWRkaW5nOiAwOyB9XG5cbmEuYWNfbWVudS0xMDFfbG9nb19saW5rIHtcbiAgd2lsbC1jaGFuZ2U6IGNvbnRlbnRzO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlOyB9XG4gIGEuYWNfbWVudS0xMDFfbG9nb19saW5rOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAuODsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYWNfbWVudS0xMDFfbG9nb19tb2JpbGVfY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDkuOTM3NWVtKSB7XG4gIC5hY19tZW51LTEwMV9sb2dvX21vYmlsZV9pbWcge1xuICAgIG1heC1oZWlnaHQ6IDUwcHg7XG4gICAgd2lkdGg6IGluaXRpYWw7IH0gfVxuXG4uYWNfbWVudS0xMDFfbWFpbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxODBweDtcbiAgYm94LXNoYWRvdzogNXB4IDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIC5hY19tZW51LTEwMV9tYWluIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIGFuZCAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgLmFjX21lbnUtMTAxX21haW4ge1xuICAgICAgcGFkZGluZy1ib3R0b206IDExMHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDkuOTM3NWVtKSB7XG4gICAgLmFjX21lbnUtMTAxX21haW4ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5hY19tZW51LTEwMV9tYWluX21lbnUge1xuICBtYXJnaW4tdG9wOiAyZW07IH1cblxuLmFjX21lbnUtMTAxX21vYmlsZV9jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZmxleC1ncm93OiAxOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgLmFjX21lbnUtMTAxX21vYmlsZV9jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uYWNfbWVudS0xMDFfbW9iaWxlX2NvbnRlbnRfZGl2aWRlciB7XG4gIHdpZHRoOiAxcHg7XG4gIG1hcmdpbjogMCAxZW07XG4gIGJhY2tncm91bmQ6ICNmMGYwZjA7IH1cblxuLmFjX21lbnUtMTAxX21vYmlsZV9idG4ge1xuICBoZWlnaHQ6IDUwcHg7XG4gIHdpZHRoOiA1MHB4O1xuICBwYWRkaW5nOiAxMi41cHggMTIuNXB4OyB9XG4gIC5hY19tZW51LTEwMV9tb2JpbGVfYnRuIHN2ZyB7XG4gICAgd2lkdGg6IDI1cHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDI1cHggIWltcG9ydGFudDsgfVxuXG4uYWNfbWVudS0xMDFfbW9iaWxlX2J0bi1oYW1idXJnZXIge1xuICBoZWlnaHQ6IDUwcHg7XG4gIHdpZHRoOiA1MHB4O1xuICBwYWRkaW5nOiAxMnB4IDEwcHg7IH1cbiAgLmFjX21lbnUtMTAxX21vYmlsZV9idG4taGFtYnVyZ2VyIC5idXJnZXItaWNvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAgIC5hY19tZW51LTEwMV9tb2JpbGVfYnRuLWhhbWJ1cmdlciAuYnVyZ2VyLWljb24sIC5hY19tZW51LTEwMV9tb2JpbGVfYnRuLWhhbWJ1cmdlciAuYnVyZ2VyLWljb246OmJlZm9yZSwgLmFjX21lbnUtMTAxX21vYmlsZV9idG4taGFtYnVyZ2VyIC5idXJnZXItaWNvbjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMjVweDtcbiAgICAgIGhlaWdodDogMnB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjIyMjtcbiAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgLXdlYmtpdC10cmFuc2Zvcm07XG4gICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3IsIC1tb3otdHJhbnNmb3JtO1xuICAgICAgLW8tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgLW8tdHJhbnNmb3JtO1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgdHJhbnNmb3JtO1xuICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICAgICAgLW1vei10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICAgICAgLW8tdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcztcbiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuM3M7IH1cbiAgICAuYWNfbWVudS0xMDFfbW9iaWxlX2J0bi1oYW1idXJnZXIgLmJ1cmdlci1pY29uOjpiZWZvcmUsIC5hY19tZW51LTEwMV9tb2JpbGVfYnRuLWhhbWJ1cmdlciAuYnVyZ2VyLWljb246OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgICAuYWNfbWVudS0xMDFfbW9iaWxlX2J0bi1oYW1idXJnZXIgLmJ1cmdlci1pY29uOjpiZWZvcmUge1xuICAgICAgdG9wOiAtNnB4OyB9XG4gICAgLmFjX21lbnUtMTAxX21vYmlsZV9idG4taGFtYnVyZ2VyIC5idXJnZXItaWNvbjo6YWZ0ZXIge1xuICAgICAgdG9wOiA2cHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAuYWNfbWVudS0xMDFfbW9iaWxlX2J0bi1oYW1idXJnZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbmJvZHkuc19pcy1vcGVuX21lbnUtbW9iaWxlIC5idXJnZXItaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbmJvZHkuc19pcy1vcGVuX21lbnUtbW9iaWxlIC5idXJnZXItaWNvbjo6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KSByb3RhdGUoNDVkZWcpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpIHJvdGF0ZSg0NWRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KSByb3RhdGUoNDVkZWcpO1xuICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KSByb3RhdGUoNDVkZWcpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KSByb3RhdGUoNDVkZWcpOyB9XG5cbmJvZHkuc19pcy1vcGVuX21lbnUtbW9iaWxlIC5idXJnZXItaWNvbjo6YWZ0ZXIge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNnB4KSByb3RhdGUoLTQ1ZGVnKTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTZweCkgcm90YXRlKC00NWRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTZweCkgcm90YXRlKC00NWRlZyk7XG4gIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNnB4KSByb3RhdGUoLTQ1ZGVnKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02cHgpIHJvdGF0ZSgtNDVkZWcpOyB9XG5cbi5hY19tZW51LTEwMV9vdmVybGF5X2NvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMTEwO1xuICB3aWR0aDogNDAwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYmFja2dyb3VuZDogI2ZhZmFmZDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwMHB4KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcyBlYXNlO1xuICBwYWRkaW5nLXRvcDogNzBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuYWNfbWVudS0xMDFfb3ZlcmxheV9jb250YWluZXIge1xuICAgICAgd2lkdGg6IDkwdnc7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIC5hY19tZW51LTEwMV9vdmVybGF5X2NvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmFjX21lbnUtMTAxX292ZXJsYXlfc2Nyb2xsX2NvbnRhaW5lciB7XG4gIG92ZXJmbG93OiBzY3JvbGw7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTsgfVxuXG4uYWNfbWVudS0xMDFfb3ZlcmxheV9zY3JvbGxfY29udGFpbmVyX2lubmVyIHtcbiAgbWluLWhlaWdodDogMTAwdmg7IH1cblxuLmFjX21lbnUtMTAxX292ZXJsYXlfbWVudV9jb250YWluZXIge1xuICBwYWRkaW5nOiAyMHB4OyB9XG5cbnVsLmFjX21lbnUtMTAxX292ZXJsYXlfbWVudV9wcmltYXJ5IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXItdG9wOiBzb2xpZCAxcHggcmdiYSgxMDIsIDEwMiwgMTAyLCAwLjIpO1xuICBwYWRkaW5nLWJvdHRvbTogMmVtOyB9XG4gIHVsLmFjX21lbnUtMTAxX292ZXJsYXlfbWVudV9wcmltYXJ5IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICB1bC5hY19tZW51LTEwMV9vdmVybGF5X21lbnVfcHJpbWFyeSA+IGxpIHtcbiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggcmdiYSgxMDIsIDEwMiwgMTAyLCAwLjIpOyB9XG4gICAgdWwuYWNfbWVudS0xMDFfb3ZlcmxheV9tZW51X3ByaW1hcnkgPiBsaSA+IGEge1xuICAgICAgcGFkZGluZzogMTBweCAwOyB9XG4gIHVsLmFjX21lbnUtMTAxX292ZXJsYXlfbWVudV9wcmltYXJ5IHVsLmlzLWFjY29yZGlvbi1zdWJtZW51IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtOyB9XG4gICAgdWwuYWNfbWVudS0xMDFfb3ZlcmxheV9tZW51X3ByaW1hcnkgdWwuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgYSB7XG4gICAgICBwYWRkaW5nOiA1cHggMDsgfVxuXG51bC5hY19tZW51LTEwMV9vdmVybGF5X21lbnVfc2Vjb25kYXJ5IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwOyB9XG4gIHVsLmFjX21lbnUtMTAxX292ZXJsYXlfbWVudV9zZWNvbmRhcnkgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDVweCAwOyB9XG5cbmJvZHkuc19pcy1vcGVuX21lbnUtbW9iaWxlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICBib2R5LnNfaXMtb3Blbl9tZW51LW1vYmlsZSAuYWNfbWVudS0xMDFfb3ZlcmxheV9jb250YWluZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuXG4uYWNfbWVudS0xMDFfb3ZlcmxheV9iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogcmdiYSgyMDQsIDIwNCwgMjA0LCAwLjgpO1xuICB6LWluZGV4OiAxMDk7XG4gIGhlaWdodDogMDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgZWFzZSAuM3MsIGhlaWdodCAwcyAuNnM7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAuYWNfbWVudS0xMDFfb3ZlcmxheV9iYWNrZHJvcCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuYm9keS5zX2lzLW9wZW5fbWVudS1tb2JpbGUgLmFjX21lbnUtMTAxX292ZXJsYXlfYmFja2Ryb3Age1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IGhlaWdodCAwcywgb3BhY2l0eSAuM3MgZWFzZTsgfVxuXG4uYWNfbWVudS0xMDFfc2VhcmNoX2NvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJlbSk7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2U7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDkuOTM3NWVtKSB7XG4gICAgLmFjX21lbnUtMTAxX3NlYXJjaF9jb250YWluZXIge1xuICAgICAgdG9wOiA1MCU7XG4gICAgICByaWdodDogMWVtO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTJlbSk7IH0gfVxuXG5ib2R5LklFMTAgLmFjX21lbnUtMTAxX3NlYXJjaF9jb250YWluZXIge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5hY19tZW51LTEwMV9zZWFyY2hfaW5wdXQge1xuICBtYXJnaW46IDA7IH1cblxuLmFjX21lbnUtMTAxX3NlYXJjaF9jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IC43ZW07XG4gIHRvcDogMDtcbiAgd2lkdGg6IDNlbTtcbiAgaGVpZ2h0OiAzZW07XG4gIHBhZGRpbmc6IC43ZW07IH1cbiAgLmFjX21lbnUtMTAxX3NlYXJjaF9jbG9zZSBzdmcge1xuICAgIHdpZHRoOiAxLjZlbTtcbiAgICBoZWlnaHQ6IDEuNmVtO1xuICAgIGZpbGw6ICMwMDAwMDA7IH1cblxuYm9keS5zX2lzLW9wZW5fbWVudS1zZWFyY2guSUUxMCAuYWNfbWVudS0xMDFfc2VhcmNoX2NvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbmJvZHkuc19pcy1vcGVuX21lbnUtc2VhcmNoIC5hY19tZW51LTEwMV9zZWFyY2hfY29udGFpbmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApIHRyYW5zbGF0ZVkoMCk7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ5LjkzNzVlbSkge1xuICAgIGJvZHkuc19pcy1vcGVuX21lbnUtc2VhcmNoIC5hY19tZW51LTEwMV9zZWFyY2hfY29udGFpbmVyIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSB0cmFuc2xhdGVZKC01MCUpOyB9IH1cblxuLmFjX3NvY2lhbHNfbGlua19pY29uIHtcbiAgYmFja2dyb3VuZDogIzAwMDAwMDsgfVxuICAuYWNfc29jaWFsc19saW5rX2ljb24gc3ZnIHtcbiAgICBmaWxsOiAjZmZmZmZmOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgICAuYWNfc29jaWFsc19saW5rX2ljb246aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG4gICAgICAuYWNfc29jaWFsc19saW5rX2ljb246aG92ZXIgc3ZnIHtcbiAgICAgICAgZmlsbDogIzAwMDAwMDsgfSB9XG5cbi8qIFNFQ1RJT05TXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBCUkFORFMgLSA0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBBQ19TX0JSQU5EUyAtIEdMT0JBTFNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbltkYXRhLXMtdHlwZT1cImJyYW5kc1wiXSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMjBweCAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgW2RhdGEtcy10eXBlPVwiYnJhbmRzXCJdIHtcbiAgICAgIHBhZGRpbmc6IDAgMCAxMHB4IDA7IH0gfVxuXG4uYWNfYnJhbmRzX2NvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbiAgbWFyZ2luOiAyZW0gYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwYWRkaW5nOiAwIDEwcHg7IH1cblxuLmFjX2JyYW5kc19pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXJnaW4tYm90dG9tOiAxLjRlbTtcbiAgd2lkdGg6IDUwJTtcbiAgbWF4LXdpZHRoOiA1MCU7XG4gIHBhZGRpbmc6IDAgMjBweDtcbiAgcGFkZGluZzogMCAxMHB4OyB9XG4gIC5hY19icmFuZHNfaXRlbS52X3NtYWxsZXItbG9nbyAuYWNfYnJhbmRzX2l0ZW1fbG9nbyB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpOyB9XG4gIC5hY19icmFuZHNfaXRlbS52X2xhcmdlci1sb2dvIC5hY19icmFuZHNfaXRlbV9sb2dvIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgIC5hY19icmFuZHNfaXRlbTpob3ZlciAuYWNfYnJhbmRzX2l0ZW1fbG9nbyB7XG4gICAgICBvcGFjaXR5OiAwLjY7IH1cbiAgICAuYWNfYnJhbmRzX2l0ZW06aG92ZXIgLmFjX2JyYW5kc19pdGVtX2Rlc2NyaXB0aW9uIHtcbiAgICAgIGNvbG9yOiAjMDAwMDAwOyB9IH1cblxuLmFjX2JyYW5kc19pdGVtX2NvbnRhaW5lciB7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDIpO1xuICBwYWRkaW5nOiAyMHB4IDA7XG4gIGJveC1zaGFkb3c6IDVweCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cblxuLmFjX2JyYW5kc19pdGVtX2Rlc2NyaXB0aW9uIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uYWNfYnJhbmRzX2l0ZW1fbG9nb19jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuYWNfYnJhbmRzX2l0ZW1fbG9nb19jb250YWluZXIge1xuICAgICAgcGFkZGluZzogMDsgfSB9XG5cbi5hY19icmFuZHNfaXRlbV9sb2dvIHtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDUwJSkgaHVlLXJvdGF0ZSgzMGRlZyk7XG4gIHdpZHRoOiA2MCU7XG4gIGhlaWdodDogMTAwcHg7XG4gIG1heC13aWR0aDogMjAwcHg7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gIG9wYWNpdHk6IDE7IH1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBDVEFcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbltkYXRhLXMtdHlwZT1cImN0YVwiXSB7XG4gIC8qIEFDX1NfQ1RBIC0gR0xPQkFMU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovIH1cbiAgW2RhdGEtcy10eXBlPVwiY3RhXCJdIC5hY19jdGFfY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDEwMDBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgICBwYWRkaW5nOiAwIDIwcHg7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJjdGFcIl0gLmFjX2N0YV9jb250YWluZXIgcCB7XG4gICAgICBsaW5lLWhlaWdodDogMS41OyB9XG4gIFtkYXRhLXMtdHlwZT1cImN0YVwiXSAuYWNfY3RhX2NvbHVtbiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgICAgW2RhdGEtcy10eXBlPVwiY3RhXCJdIC5hY19jdGFfY29sdW1uIC5idXR0b24ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDsgfSB9XG4gICAgW2RhdGEtcy10eXBlPVwiY3RhXCJdIC5hY19jdGFfY29sdW1uIGltZyB7XG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2ZmZmZmZjtcbiAgICAgIG1heC13aWR0aDogMjIwcHg7IH1cbiAgW2RhdGEtcy10eXBlPVwiY3RhXCJdIGgyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gIFtkYXRhLXMtdHlwZT1cImN0YVwiXSAuYWNfY3RhX2NvbHVtbiB7XG4gICAgcGFkZGluZzogMjBweCAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4vKiBDVEEgVEVYVC1CVVRUT05cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbltkYXRhLXMtdHlwZT1cImN0YS10ZXh0LWJ1dHRvblwiXSB7XG4gIC8qIEFDX1NfQ1RBIC0gR0xPQkFMU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovIH1cbiAgW2RhdGEtcy10eXBlPVwiY3RhLXRleHQtYnV0dG9uXCJdIC5hY19jdGFfY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDEwMDBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgICBwYWRkaW5nOiAwIDIwcHg7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJjdGEtdGV4dC1idXR0b25cIl0gLmFjX2N0YV9jb250YWluZXIgcCB7XG4gICAgICBsaW5lLWhlaWdodDogMS41OyB9XG4gIFtkYXRhLXMtdHlwZT1cImN0YS10ZXh0LWJ1dHRvblwiXSAuYWNfY3RhX2NvbHVtbiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgICAgW2RhdGEtcy10eXBlPVwiY3RhLXRleHQtYnV0dG9uXCJdIC5hY19jdGFfY29sdW1uIC5idXR0b24ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDsgfSB9XG4gICAgW2RhdGEtcy10eXBlPVwiY3RhLXRleHQtYnV0dG9uXCJdIC5hY19jdGFfY29sdW1uIGltZyB7XG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2ZmZmZmZjtcbiAgICAgIG1heC13aWR0aDogMjIwcHg7IH1cbiAgW2RhdGEtcy10eXBlPVwiY3RhLXRleHQtYnV0dG9uXCJdIGgyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgW2RhdGEtcy10eXBlPVwiY3RhLXRleHQtYnV0dG9uXCJdIC5hY19jdGFfY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9IH1cbiAgW2RhdGEtcy10eXBlPVwiY3RhLXRleHQtYnV0dG9uXCJdIC5hY19jdGFfY29sdW1uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJjdGEtdGV4dC1idXR0b25cIl0gLmFjX2N0YV9jb2x1bW46bnRoLWNoaWxkKDEpIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgICAgW2RhdGEtcy10eXBlPVwiY3RhLXRleHQtYnV0dG9uXCJdIC5hY19jdGFfY29sdW1uOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIG1heC13aWR0aDogNTAlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogaW5oZXJpdDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogaW5oZXJpdDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogaW5oZXJpdDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgICBbZGF0YS1zLXR5cGU9XCJjdGEtdGV4dC1idXR0b25cIl0gLmFjX2N0YV9jb2x1bW46bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJjdGEtdGV4dC1idXR0b25cIl0gLmFjX3NvY2lhbHMge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cblxuLyogQ1RBIFRFWFQtSU1BR0Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbltkYXRhLXMtdHlwZT1cImN0YS10ZXh0LWltYWdlXCJdIHtcbiAgLyogQUNfU19DVEEgLSBHTE9CQUxTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyB9XG4gIFtkYXRhLXMtdHlwZT1cImN0YS10ZXh0LWltYWdlXCJdIC5hY19jdGFfY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDEwMDBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgICBwYWRkaW5nOiAwIDIwcHg7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJjdGEtdGV4dC1pbWFnZVwiXSAuYWNfY3RhX2NvbnRhaW5lciBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7IH1cbiAgW2RhdGEtcy10eXBlPVwiY3RhLXRleHQtaW1hZ2VcIl0gLmFjX2N0YV9jb2x1bW4ge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAgIFtkYXRhLXMtdHlwZT1cImN0YS10ZXh0LWltYWdlXCJdIC5hY19jdGFfY29sdW1uIC5idXR0b24ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDsgfSB9XG4gICAgW2RhdGEtcy10eXBlPVwiY3RhLXRleHQtaW1hZ2VcIl0gLmFjX2N0YV9jb2x1bW4gaW1nIHtcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gICAgICBtYXgtd2lkdGg6IDIyMHB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgW2RhdGEtcy10eXBlPVwiY3RhLXRleHQtaW1hZ2VcIl0gLmFjX2N0YV9jb250YWluZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJjdGEtdGV4dC1pbWFnZVwiXSAuYWNfY3RhX2NvbHVtbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAgIFtkYXRhLXMtdHlwZT1cImN0YS10ZXh0LWltYWdlXCJdIC5hY19jdGFfY29sdW1uOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIHdpZHRoOiA2MCU7XG4gICAgICAgIG1heC13aWR0aDogNjAlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAgIFtkYXRhLXMtdHlwZT1cImN0YS10ZXh0LWltYWdlXCJdIC5hY19jdGFfY29sdW1uOm50aC1jaGlsZCgyKSB7XG4gICAgICAgIHdpZHRoOiA0MCU7XG4gICAgICAgIG1heC13aWR0aDogNDAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9IH1cbiAgW2RhdGEtcy10eXBlPVwiY3RhLXRleHQtaW1hZ2VcIl0gLmFjX3NvY2lhbHMge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cblxuLyogQ1RBIFRFWFQtQlVUVE9OXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5bZGF0YS1zLXR5cGU9XCJjdGEtdGV4dC1zb2NpYWxzXCJdIHtcbiAgLyogQUNfU19DVEEgLSBHTE9CQUxTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8gfVxuICBbZGF0YS1zLXR5cGU9XCJjdGEtdGV4dC1zb2NpYWxzXCJdIC5hY19jdGFfY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDgwMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIHBhZGRpbmc6IDAgMjBweDsgfVxuICAgIFtkYXRhLXMtdHlwZT1cImN0YS10ZXh0LXNvY2lhbHNcIl0gLmFjX2N0YV9jb250YWluZXIgcCB7XG4gICAgICBsaW5lLWhlaWdodDogMS41OyB9XG4gIFtkYXRhLXMtdHlwZT1cImN0YS10ZXh0LXNvY2lhbHNcIl0gLmFjX2N0YV9jb2x1bW4ge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAgIFtkYXRhLXMtdHlwZT1cImN0YS10ZXh0LXNvY2lhbHNcIl0gLmFjX2N0YV9jb2x1bW4gLmJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4OyB9IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJjdGEtdGV4dC1zb2NpYWxzXCJdIC5hY19jdGFfY29sdW1uIGltZyB7XG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2ZmZmZmZjtcbiAgICAgIG1heC13aWR0aDogMjIwcHg7IH1cbiAgW2RhdGEtcy10eXBlPVwiY3RhLXRleHQtc29jaWFsc1wiXSBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICBbZGF0YS1zLXR5cGU9XCJjdGEtdGV4dC1zb2NpYWxzXCJdIC5hY19jdGFfY29sdW1uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJjdGEtdGV4dC1zb2NpYWxzXCJdIC5hY19jdGFfY29sdW1uOm50aC1jaGlsZCgxKSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIFtkYXRhLXMtdHlwZT1cImN0YS10ZXh0LXNvY2lhbHNcIl0gLmFjX3NvY2lhbHMge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICBbZGF0YS1zLXR5cGU9XCJjdGEtdGV4dC1zb2NpYWxzXCJdIC5hY19zb2NpYWxzX2xpbmsge1xuICAgIHBhZGRpbmc6IDEwcHggMjBweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgW2RhdGEtcy10eXBlPVwiY3RhLXRleHQtc29jaWFsc1wiXSAuYWNfc29jaWFsc19saW5rIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4vKiBIRVJPIC0gMlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuW2RhdGEtcy10eXBlPVwiaGVyb1wiXSB7XG4gIC8qIEFDX1NfSEVSTyAtIEdMT0JBTFNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovIH1cbiAgW2RhdGEtcy10eXBlPVwiaGVyb1wiXSAuYWNfaGVyb19jb250YWluZXIge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGhlaWdodDogODB2aDtcbiAgICBtaW4taGVpZ2h0OiA1MDBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5hY19oZXJvX2NvbnRhaW5lcjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMjV2aDtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2JhKDAsIDAsIDAsIDApLCBibGFjayk7XG4gICAgICB6LWluZGV4OiAxOyB9XG4gIFtkYXRhLXMtdHlwZT1cImhlcm9cIl0gLmFjX2hlcm9fc2xpZGVzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5hY19oZXJvX3NsaWRlcy5zbGljay1pbml0aWFsaXplZCB7XG4gICAgICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgb3BhY2l0eTogMTsgfVxuICBbZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5hY19oZXJvX3NsaWRlIHtcbiAgICB3aWxsLWNoYW5nZTogY29udGVudHM7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIFtkYXRhLXMtdHlwZT1cImhlcm9cIl0gLmFjX2hlcm9fc2xpZGVfaW5uZXIge1xuICAgIG1heC13aWR0aDogODAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWxsLWNoYW5nZTogY29udGVudHM7XG4gICAgcGFkZGluZzogMCAyMHB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTE1MHB4KSB7XG4gICAgICBbZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5hY19oZXJvX3NsaWRlX2lubmVyIHtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4OyB9IH1cbiAgW2RhdGEtcy10eXBlPVwiaGVyb1wiXSAuYWNfaGVyb19zbGlkZV9jb250ZW50X2NvbnRhaW5lciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zZW0pO1xuICAgIHdpbGwtY2hhbmdlOiBjb250ZW50czsgfVxuICBbZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5hY19oZXJvX3NsaWRlX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgW2RhdGEtcy10eXBlPVwiaGVyb1wiXSAuYWNfaGVyb19zbGlkZV9jb250ZW50X2lubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgW2RhdGEtcy10eXBlPVwiaGVyb1wiXSAuYWNfaGVyb19zbGlkZV9jb250ZW50X3RleHQge1xuICAgIGZsZXg6IDAgMSAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICBbZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5hY19oZXJvX3NsaWRlX2NvbnRlbnRfdGV4dCB7XG4gICAgICAgIGZsZXg6IDAgMSA3MCU7XG4gICAgICAgIG1heC13aWR0aDogNzAlOyB9IH1cbiAgW2RhdGEtcy10eXBlPVwiaGVyb1wiXSAuYWNfaGVyb19zbGlkZV9jb250ZW50X2ltYWdlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDAgMSAzMCU7XG4gICAgbWF4LXdpZHRoOiAzMCU7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5hY19oZXJvX3NsaWRlX2NvbnRlbnRfaW1hZ2UgaW1nIHtcbiAgICAgIG1heC13aWR0aDogaW5pdGlhbDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgW2RhdGEtcy10eXBlPVwiaGVyb1wiXSAuYWNfaGVyb19zbGlkZV9jb250ZW50X2ltYWdlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICBtYXgtd2lkdGg6IGluaXRpYWw7IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5zbGljay1kb3RzIGJ1dHRvbiB7XG4gICAgYm9yZGVyOiBzb2xpZCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gIFtkYXRhLXMtdHlwZT1cImhlcm9cIl0gLnNsaWNrLWRvdHMgLnNsaWNrLWFjdGl2ZSBidXR0b24ge1xuICAgIGJvcmRlcjogc29saWQgMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOyB9XG4gIFtkYXRhLXMtdHlwZT1cImhlcm9cIl0gLnNsaWNrLWxpc3Qge1xuICAgIGhlaWdodDogMTAwJTsgfVxuICBbZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5zbGljay10cmFjayB7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIFtkYXRhLXMtdHlwZT1cImhlcm9cIl0gLnNsaWNrLXByZXYsXG4gIFtkYXRhLXMtdHlwZT1cImhlcm9cIl0gLnNsaWNrLW5leHQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB3aWR0aDogMS41ZW07XG4gICAgaGVpZ2h0OiAxLjVlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDExNTBweCkge1xuICAgICAgW2RhdGEtcy10eXBlPVwiaGVyb1wiXSAuc2xpY2stcHJldixcbiAgICAgIFtkYXRhLXMtdHlwZT1cImhlcm9cIl0gLnNsaWNrLW5leHQge1xuICAgICAgICB3aWR0aDogMmVtO1xuICAgICAgICBoZWlnaHQ6IDJlbTsgfSB9XG4gICAgW2RhdGEtcy10eXBlPVwiaGVyb1wiXSAuc2xpY2stcHJldiBzdmcsXG4gICAgW2RhdGEtcy10eXBlPVwiaGVyb1wiXSAuc2xpY2stbmV4dCBzdmcge1xuICAgICAgZmlsbDogI2ZmZmZmZjtcbiAgICAgIHdpZHRoOiAxLjVlbTtcbiAgICAgIGhlaWdodDogMS41ZW07XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMTUwcHgpIHtcbiAgICAgICAgW2RhdGEtcy10eXBlPVwiaGVyb1wiXSAuc2xpY2stcHJldiBzdmcsXG4gICAgICAgIFtkYXRhLXMtdHlwZT1cImhlcm9cIl0gLnNsaWNrLW5leHQgc3ZnIHtcbiAgICAgICAgICB3aWR0aDogMmVtO1xuICAgICAgICAgIGhlaWdodDogMmVtOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgICBbZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5zbGljay1wcmV2OmhvdmVyIHN2ZyxcbiAgICAgIFtkYXRhLXMtdHlwZT1cImhlcm9cIl0gLnNsaWNrLW5leHQ6aG92ZXIgc3ZnIHtcbiAgICAgICAgZmlsbDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3MDBweCkge1xuICAgICAgW2RhdGEtcy10eXBlPVwiaGVyb1wiXSAuc2xpY2stcHJldixcbiAgICAgIFtkYXRhLXMtdHlwZT1cImhlcm9cIl0gLnNsaWNrLW5leHQge1xuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cbiAgW2RhdGEtcy10eXBlPVwiaGVyb1wiXSAuc2xpY2stcHJldiB7XG4gICAgdG9wOiBpbml0aWFsO1xuICAgIGJvdHRvbTogMTBlbTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMC41ZW0pOyB9XG4gIFtkYXRhLXMtdHlwZT1cImhlcm9cIl0gLnNsaWNrLW5leHQge1xuICAgIHRvcDogaW5pdGlhbDtcbiAgICBib3R0b206IDEwZW07XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg5ZW0pOyB9XG4gIFtkYXRhLXMtdHlwZT1cImhlcm9cIl0gLnNsaWNrLWRvdHMge1xuICAgIGJvdHRvbTogMTBlbTsgfVxuICBbZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5hY19oZXJvX2xpbmtfdG8tY29udGVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDExMTE7XG4gICAgYm90dG9tOiA0ZW07XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAgIFtkYXRhLXMtdHlwZT1cImhlcm9cIl0gLmFjX2hlcm9fbGlua190by1jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgICAgIFtkYXRhLXMtdHlwZT1cImhlcm9cIl0gLmFjX2hlcm9fbGlua190by1jb250ZW50OmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyOyB9IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5hY19oZXJvX2xpbmtfdG8tY29udGVudCAuc3ZnLWNvbnRhaW5lciB7XG4gICAgICB3aWR0aDogNGVtO1xuICAgICAgaGVpZ2h0OiA0ZW07IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5hY19oZXJvX2xpbmtfdG8tY29udGVudCBzdmcge1xuICAgICAgd2lkdGg6IDRlbTtcbiAgICAgIGhlaWdodDogNGVtO1xuICAgICAgZmlsbDogI2ZmZmZmZjtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5hY19oZXJvX2xpbmtfdG8tY29udGVudDphY3RpdmUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMnB4KTsgfVxuICAgIFtkYXRhLXMtdHlwZT1cImhlcm9cIl0gLmFjX2hlcm9fbGlua190by1jb250ZW50OmhvdmVyIHN2ZyB7XG4gICAgICBmaWxsOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH1cbiAgW2RhdGEtcy10eXBlPVwiaGVyb1wiXSBoMSwgW2RhdGEtcy10eXBlPVwiaGVyb1wiXSBoMiwgW2RhdGEtcy10eXBlPVwiaGVyb1wiXSBoMyB7XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgW2RhdGEtcy10eXBlPVwiaGVyb1wiXSBwIHtcbiAgICBsaW5lLWhlaWdodDogMS41OyB9XG4gIFtkYXRhLXMtdHlwZT1cImhlcm9cIl0gKjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OS45Mzc1ZW0pIHtcbiAgICBbZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5hY19oZXJvX2NvbnRhaW5lciB7XG4gICAgICBoZWlnaHQ6IDUwdmg7XG4gICAgICBtaW4taGVpZ2h0OiA0MDBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIFtkYXRhLXMtdHlwZT1cImhlcm9cIl0gLmFjX2hlcm9fc2xpZGVfY29udGVudF9jb250YWluZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjVlbSk7IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5hY19oZXJvX3NsaWRlX2NvbnRlbnRfdGV4dCB7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgW2RhdGEtcy10eXBlPVwiaGVyb1wiXSAuYWNfaGVyb19zbGlkZV9jb250ZW50X3RleHRfdGl0bGUgKiB7XG4gICAgZm9udC1zaXplOiAxNDAlO1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAgIFtkYXRhLXMtdHlwZT1cImhlcm9cIl0gLmFjX2hlcm9fc2xpZGVfY29udGVudF90ZXh0X3RpdGxlICoge1xuICAgICAgICBmb250LXNpemU6IDE4MCU7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICBbZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5zbGljay1kb3RzIHtcbiAgICAgIGJvdHRvbTogMmVtOyB9IH1cblxuLyogQUNfU19IRVJPX0FMVCAtIDFcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbltkYXRhLXMtdHlwZT1cImhlcm8tYWx0XCJdIHtcbiAgLyogQUNfU19IRVJPIC0gR0xPQkFMU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIFtkYXRhLXMtdHlwZT1cImhlcm8tYWx0XCJdIC5hY19oZXJvX2FsdF9jb250YWluZXIge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGhlaWdodDogMTUwcHg7XG4gICAgbWluLWhlaWdodDogMjAwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAgIFtkYXRhLXMtdHlwZT1cImhlcm8tYWx0XCJdIC5hY19oZXJvX2FsdF9jb250YWluZXIge1xuICAgICAgICBoZWlnaHQ6IDMwMHB4OyB9IH1cbiAgW2RhdGEtcy10eXBlPVwiaGVyby1hbHRcIl0gLmFjX2hlcm9fYWx0X3NsaWRlcyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDM7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOyB9XG4gICAgW2RhdGEtcy10eXBlPVwiaGVyby1hbHRcIl0gLmFjX2hlcm9fYWx0X3NsaWRlcy5zbGljay1pbml0aWFsaXplZCB7XG4gICAgICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgb3BhY2l0eTogMTsgfVxuICBbZGF0YS1zLXR5cGU9XCJoZXJvLWFsdFwiXSAuYWNfaGVyb19hbHRfc2xpZGUge1xuICAgIHdpbGwtY2hhbmdlOiBjb250ZW50cztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgW2RhdGEtcy10eXBlPVwiaGVyby1hbHRcIl0gLmFjX2hlcm9fYWx0X3NsaWRlX2lubmVyIHtcbiAgICBtYXgtd2lkdGg6IDEwMDBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpbGwtY2hhbmdlOiBjb250ZW50cztcbiAgICBwYWRkaW5nOiAwIDIwcHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwcHgpIHtcbiAgICAgIFtkYXRhLXMtdHlwZT1cImhlcm8tYWx0XCJdIC5hY19oZXJvX2FsdF9zbGlkZV9pbm5lciB7XG4gICAgICAgIHBhZGRpbmc6IDAgODBweDsgfSB9XG4gIFtkYXRhLXMtdHlwZT1cImhlcm8tYWx0XCJdIC5hY19oZXJvX2FsdF9zbGlkZV9jb250ZW50X2NvbnRhaW5lciB7XG4gICAgd2lsbC1jaGFuZ2U6IGNvbnRlbnRzOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAgIFtkYXRhLXMtdHlwZT1cImhlcm8tYWx0XCJdIC5hY19oZXJvX2FsdF9zbGlkZV9jb250ZW50X2NvbnRhaW5lciB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMWVtKTsgfSB9XG4gIFtkYXRhLXMtdHlwZT1cImhlcm8tYWx0XCJdIC5hY19oZXJvX2FsdF9zbGlkZV9jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIFtkYXRhLXMtdHlwZT1cImhlcm8tYWx0XCJdIC5hY19oZXJvX2FsdF9zbGlkZV9jb250ZW50X2lubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgW2RhdGEtcy10eXBlPVwiaGVyby1hbHRcIl0gLmFjX2hlcm9fYWx0X3NsaWRlX2NvbnRlbnRfdGV4dCB7XG4gICAgZmxleDogMCAxIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICBbZGF0YS1zLXR5cGU9XCJoZXJvLWFsdFwiXSAuYWNfaGVyb19hbHRfc2xpZGVfY29udGVudF90ZXh0IHtcbiAgICAgICAgZmxleDogMCAxIDgwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA4MCU7IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJoZXJvLWFsdFwiXSAuYWNfaGVyb19hbHRfc2xpZGVfY29udGVudF9pbWFnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIFtkYXRhLXMtdHlwZT1cImhlcm8tYWx0XCJdIC5zbGljay1saXN0IHtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgW2RhdGEtcy10eXBlPVwiaGVyby1hbHRcIl0gLnNsaWNrLXRyYWNrIHtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgW2RhdGEtcy10eXBlPVwiaGVyby1hbHRcIl0gLnNsaWNrLXByZXYsXG4gIFtkYXRhLXMtdHlwZT1cImhlcm8tYWx0XCJdIC5zbGljay1uZXh0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgd2lkdGg6IDFlbTtcbiAgICBoZWlnaHQ6IDFlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDExNTBweCkge1xuICAgICAgW2RhdGEtcy10eXBlPVwiaGVyby1hbHRcIl0gLnNsaWNrLXByZXYsXG4gICAgICBbZGF0YS1zLXR5cGU9XCJoZXJvLWFsdFwiXSAuc2xpY2stbmV4dCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDExNTBweCkge1xuICAgICAgW2RhdGEtcy10eXBlPVwiaGVyby1hbHRcIl0gLnNsaWNrLXByZXYsXG4gICAgICBbZGF0YS1zLXR5cGU9XCJoZXJvLWFsdFwiXSAuc2xpY2stbmV4dCB7XG4gICAgICAgIHdpZHRoOiAyZW07XG4gICAgICAgIGhlaWdodDogMmVtOyB9IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJoZXJvLWFsdFwiXSAuc2xpY2stcHJldiBzdmcsXG4gICAgW2RhdGEtcy10eXBlPVwiaGVyby1hbHRcIl0gLnNsaWNrLW5leHQgc3ZnIHtcbiAgICAgIGZpbGw6IHdoaXRlO1xuICAgICAgd2lkdGg6IDFlbTtcbiAgICAgIGhlaWdodDogMWVtOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMTUwcHgpIHtcbiAgICAgICAgW2RhdGEtcy10eXBlPVwiaGVyby1hbHRcIl0gLnNsaWNrLXByZXYgc3ZnLFxuICAgICAgICBbZGF0YS1zLXR5cGU9XCJoZXJvLWFsdFwiXSAuc2xpY2stbmV4dCBzdmcge1xuICAgICAgICAgIHdpZHRoOiAyZW07XG4gICAgICAgICAgaGVpZ2h0OiAyZW07IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJoZXJvLWFsdFwiXSAuc2xpY2stcHJldiB7XG4gICAgdG9wOiBpbml0aWFsO1xuICAgIGJvdHRvbTogNGVtO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNmVtKTsgfVxuICBbZGF0YS1zLXR5cGU9XCJoZXJvLWFsdFwiXSAuc2xpY2stbmV4dCB7XG4gICAgdG9wOiBpbml0aWFsO1xuICAgIGJvdHRvbTogNGVtO1xuICAgIHJpZ2h0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02ZW0pOyB9XG4gIFtkYXRhLXMtdHlwZT1cImhlcm8tYWx0XCJdIC5zbGljay1kb3RzIHtcbiAgICBib3R0b206IDRlbTsgfVxuICBbZGF0YS1zLXR5cGU9XCJoZXJvLWFsdFwiXSAuYWNfaGVyb19hbHRfYmFja2Ryb3Age1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogMTtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIFtkYXRhLXMtdHlwZT1cImhlcm8tYWx0XCJdIC5hY19oZXJvX2FsdF9iYWNrZHJvcF9pbWFnZS1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7IH1cbiAgW2RhdGEtcy10eXBlPVwiaGVyby1hbHRcIl0gLmFjX2hlcm9fYWx0X2JhY2tkcm9wX2ltYWdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgb3BhY2l0eTogMC40O1xuICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgICBbZGF0YS1zLXR5cGU9XCJoZXJvLWFsdFwiXSAuYWNfaGVyb19hbHRfYmFja2Ryb3BfaW1hZ2Uge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBtaXgtYmxlbmQtbW9kZTogbm9ybWFsO1xuICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgwJSk7IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJoZXJvLWFsdFwiXSAuYWNfaGVyb19hbHRfYmFja2Ryb3BfdmlkZW8tY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDI7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJoZXJvLWFsdFwiXSAuYWNfaGVyb19hbHRfYmFja2Ryb3BfdmlkZW8tY29udGFpbmVyIHZpZGVvIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgbWluLWhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgW2RhdGEtcy10eXBlPVwiaGVyby1hbHRcIl0gLmFjX2hlcm9fYWx0X2xpbmtfdG8tY29udGVudCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBbZGF0YS1zLXR5cGU9XCJoZXJvLWFsdFwiXSBoMSwgW2RhdGEtcy10eXBlPVwiaGVyby1hbHRcIl0gaDIsIFtkYXRhLXMtdHlwZT1cImhlcm8tYWx0XCJdIGgzIHtcbiAgICBsaW5lLWhlaWdodDogMTsgfVxuICBbZGF0YS1zLXR5cGU9XCJoZXJvLWFsdFwiXSBwIHtcbiAgICBsaW5lLWhlaWdodDogMS41OyB9XG4gIFtkYXRhLXMtdHlwZT1cImhlcm8tYWx0XCJdICo6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7IH1cblxuLyogSU1BR0UgLSAxXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5bZGF0YS1zLXR5cGU9XCJpbWFnZVwiXSB7XG4gIC8qIElNQUdFIC0gR0xPQkFMU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgICBbZGF0YS1zLXR5cGU9XCJpbWFnZVwiXSAuYWNfaW1hZ2Uge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgICBbZGF0YS1zLXR5cGU9XCJpbWFnZVwiXSB7XG4gICAgICBtaW4taGVpZ2h0OiAzMDBweDsgfSB9XG5cbi8qIElNQUdFIC0gMVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuW2RhdGEtcy10eXBlPVwiaW1hZ2UtYmctZml4ZWRcIl0ge1xuICAvKiBJTUFHRSAtIEdMT0JBTFNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNjcwMzA5LCAjZTMwNjEzKTtcbiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovIH1cbiAgW2RhdGEtcy10eXBlPVwiaW1hZ2UtYmctZml4ZWRcIl0gLmFjX2ltYWdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgW2RhdGEtcy10eXBlPVwiaW1hZ2UtYmctZml4ZWRcIl0gLmFjX2ltYWdlIGZpZ3VyZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG9wYWNpdHk6IC4yO1xuICAgICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgW2RhdGEtcy10eXBlPVwiaW1hZ2UtYmctZml4ZWRcIl0ge1xuICAgICAgaGVpZ2h0OiAzMDBweDsgfSB9XG5cbi8qIEFDX1NfSU1BR0UtR0FMTEVSWV9GVUxMLVNDUkVFTiAtIDFcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFDX1NfSU1BR0UtR0FMTEVSWV9GVUxMLVNDUkVFTiAtIEdMT0JBTFNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5hY19pbWFnZS1nYWxsZXJ5X2Z1bGwtc2NyZWVuIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDQ0NDQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIGhlaWdodCAwcyBsaW5lYXIgMC4zcywgdmlzaWJpbGl0eSAwcyBsaW5lYXIgMC4zczsgfVxuICAuYWNfaW1hZ2UtZ2FsbGVyeV9mdWxsLXNjcmVlbi5zX2FjdGl2ZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDBzIGxpbmVhciwgaGVpZ2h0IDBzIGxpbmVhciwgb3BhY2l0eSAwLjNzIGVhc2UgMC4zczsgfVxuXG4uYWNfaW1hZ2UtZ2FsbGVyeV9mdWxsLXNjcmVlbl9jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDsgfVxuXG4uaW1hZ2UtZ2FsbGVyeV9mdWxsLXNjcmVlbl9pdGVtX2NvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uaW1hZ2UtZ2FsbGVyeV9mdWxsLXNjcmVlbl9pdGVtX2NvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjkpOyB9XG5cbi5pbWFnZS1nYWxsZXJ5X2Z1bGwtc2NyZWVuX2l0ZW1fY29udGVudF9pbm5lciB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMDBweDtcbiAgcGFkZGluZzogMjBweDtcbiAgY29sb3I6ICNmZmZmZmY7IH1cblxuLmltYWdlLWdhbGxlcnlfZnVsbC1zY3JlZW5faXRlbV9pbWFnZV9jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMDB2aDsgfVxuXG4uYWNfaW1hZ2UtZ2FsbGVyeV9mdWxsLXNjcmVlbl9jbG9zZSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgei1pbmRleDogNDQ0NTtcbiAgdG9wOiAyMHB4O1xuICByaWdodDogMjBweDtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMTJweDtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgLmFjX2ltYWdlLWdhbGxlcnlfZnVsbC1zY3JlZW5fY2xvc2Uge1xuICAgICAgdG9wOiA0MHB4O1xuICAgICAgcmlnaHQ6IDQwcHg7IH0gfVxuICAuYWNfaW1hZ2UtZ2FsbGVyeV9mdWxsLXNjcmVlbl9jbG9zZSBzdmcge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBmaWxsOiAjMDAwMDAwO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7IH1cbiAgLmFjX2ltYWdlLWdhbGxlcnlfZnVsbC1zY3JlZW5fY2xvc2U6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgICAgIC5hY19pbWFnZS1nYWxsZXJ5X2Z1bGwtc2NyZWVuX2Nsb3NlOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzAwMDAwMDsgfVxuICAgICAgICAuYWNfaW1hZ2UtZ2FsbGVyeV9mdWxsLXNjcmVlbl9jbG9zZTpob3ZlciBzdmcge1xuICAgICAgICAgIGZpbGw6ICNmZmZmZmY7IH0gfVxuICAuYWNfaW1hZ2UtZ2FsbGVyeV9mdWxsLXNjcmVlbl9jbG9zZS5zX2FjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLmFjX2ltYWdlLWdhbGxlcnlfZnVsbC1zY3JlZW5fYmFja2dyb3VuZCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiA0NDQzO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLCBoZWlnaHQgMHMgbGluZWFyIDAuM3MsIHZpc2liaWxpdHkgMHMgbGluZWFyIDAuM3M7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTsgfVxuICAuYWNfaW1hZ2UtZ2FsbGVyeV9mdWxsLXNjcmVlbl9iYWNrZ3JvdW5kLnNfYWN0aXZlIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMgbGluZWFyLCBoZWlnaHQgMHMgbGluZWFyLCAgb3BhY2l0eSAuMnMgZWFzZSAuMnM7IH1cblxuLyogQUNfU19JTUFHRS1HQUxMRVJZLUdSSUQgLSAxXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBBQ19TX0lNQUdFLUdBTExFUlkgLSBHTE9CQUxTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5bZGF0YS1zLXR5cGU9XCJpbWFnZS1nYWxsZXJ5LWdyaWRcIl0gLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9jb250YWluZXI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG4gIFtkYXRhLXMtdHlwZT1cImltYWdlLWdhbGxlcnktZ3JpZFwiXSAuYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX2NvbnRhaW5lcjpudGgtY2hpbGQoZXZlbikgLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9vdXRlci1jb2x1bW46bnRoLWNoaWxkKDEpIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cbiAgW2RhdGEtcy10eXBlPVwiaW1hZ2UtZ2FsbGVyeS1ncmlkXCJdIC5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfY29udGFpbmVyOm50aC1jaGlsZChldmVuKSAuYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX291dGVyLWNvbHVtbjpudGgtY2hpbGQoMikgLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9jb2x1bW4ge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cblxuLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1heC13aWR0aDogMTIwMHB4O1xuICBtYXJnaW46IDAgYXV0bzsgfVxuXG4uYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX291dGVyLWNvbHVtbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODAwcHgpIHtcbiAgICAuYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX291dGVyLWNvbHVtbjpudGgtY2hpbGQoMSkge1xuICAgICAgd2lkdGg6IDYwJTtcbiAgICAgIG1heC13aWR0aDogNjAlOyB9IH1cbiAgLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9vdXRlci1jb2x1bW46bnRoLWNoaWxkKDEpIC5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfY29sdW1uOm50aC1jaGlsZCgxKSB7XG4gICAgaGVpZ2h0OiAyMDBweDsgfVxuICAgIC5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfb3V0ZXItY29sdW1uOm50aC1jaGlsZCgxKSAuYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX2NvbHVtbjpudGgtY2hpbGQoMSkgLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9pdGVtIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODAwcHgpIHtcbiAgICAgICAgLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9vdXRlci1jb2x1bW46bnRoLWNoaWxkKDEpIC5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfY29sdW1uOm50aC1jaGlsZCgxKSAuYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX2l0ZW0ge1xuICAgICAgICAgIG1heC1oZWlnaHQ6IDUwJTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODAwcHgpIHtcbiAgICAgIC5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfb3V0ZXItY29sdW1uOm50aC1jaGlsZCgxKSAuYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX2NvbHVtbjpudGgtY2hpbGQoMSkge1xuICAgICAgICBoZWlnaHQ6IDQwMHB4O1xuICAgICAgICB3aWR0aDogMzMuMzMzMzMlO1xuICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAgICAgICAuYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX291dGVyLWNvbHVtbjpudGgtY2hpbGQoMSkgLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9jb2x1bW46bnRoLWNoaWxkKDEpIC5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfaXRlbSB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMTgwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3OTlweCkge1xuICAgIC5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfb3V0ZXItY29sdW1uOm50aC1jaGlsZCgxKSAuYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX2NvbHVtbjpudGgtY2hpbGQoMikge1xuICAgICAgaGVpZ2h0OiAyODBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgwMHB4KSB7XG4gICAgLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9vdXRlci1jb2x1bW46bnRoLWNoaWxkKDEpIC5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfY29sdW1uOm50aC1jaGlsZCgyKSB7XG4gICAgICB3aWR0aDogNjYuNjY2NjclO1xuICAgICAgbWF4LXdpZHRoOiA2Ni42NjY2NyU7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MDBweCkge1xuICAgIC5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfb3V0ZXItY29sdW1uOm50aC1jaGlsZCgyKSB7XG4gICAgICB3aWR0aDogNDAlO1xuICAgICAgbWF4LXdpZHRoOiA0MCU7IH0gfVxuICAuYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX291dGVyLWNvbHVtbjpudGgtY2hpbGQoMikgLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9pdGVtIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIG1heC13aWR0aDogNTAlOyB9XG5cbi5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfY29sdW1uIHtcbiAgaGVpZ2h0OiA0MDBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICB3aWR0aDogMTAwJTsgfVxuXG4uYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX2l0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBwYWRkaW5nOiAwIDIwcHg7XG4gIHBhZGRpbmc6IDAgMTBweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9pdGVtOmhvdmVyIC5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfaXRlbV9pbWFnZSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xuICAgICAgb3BhY2l0eTogMC41OyB9XG4gICAgLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9pdGVtOmhvdmVyIC5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfaXRlbV9jb250ZW50IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9IH1cblxuLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9pdGVtX2NvbnRhaW5lciB7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4LWdyb3c6IDE7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4uYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX2l0ZW1faW1hZ2UtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxNjBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfaXRlbV9pbWFnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAxO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHdpbGwtY2hhbmdlOiBjb250ZW50czsgfVxuXG4uYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX2l0ZW1fY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBwYWRkaW5nOiAyMHB4OyB9XG5cbi5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfaXRlbV9pbWFnZS1jb250YWluZXIge1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfaXRlbV9jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICB0b3A6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBsZWZ0OiAwO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyMjsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX291dGVyLWNvbHVtbjpudGgtY2hpbGQoMikge1xuICAgIHBhZGRpbmctdG9wOiAxMDBweDsgfVxuICAuYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX2NvbnRhaW5lcjpudGgtY2hpbGQoZXZlbikgLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9vdXRlci1jb2x1bW46bnRoLWNoaWxkKDIpIHtcbiAgICBwYWRkaW5nLXRvcDogaW5pdGlhbDtcbiAgICBtYXJnaW4tdG9wOiAtMTAwcHg7IH0gfVxuXG4vKiBBQ19TX0lNQUdFLUdBTExFUlktU0xJREVSIC0gMVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQUNfU19JTUFHRS1HQUxMRVJZIC0gR0xPQkFMU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmFjX2ltYWdlLWdhbGxlcnlfY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgbWFyZ2luOiAwIGF1dG87IH1cblxuLmFjX2ltYWdlLWdhbGxlcnlfaXRlbSB7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZmxleDogMCAxIDUwJTtcbiAgbWF4LXdpZHRoOiA1MCU7IH1cblxuYS5hY19pbWFnZS1nYWxsZXJ5X2l0ZW06aG92ZXIgLmFjX2ltYWdlLWdhbGxlcnlfaXRlbV9jb250YWluZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cblxuYS5hY19pbWFnZS1nYWxsZXJ5X2l0ZW06aG92ZXIgLmFjX2ltYWdlLWdhbGxlcnlfaXRlbV9pbWFnZSB7XG4gIG9wYWNpdHk6IDAuNTsgfVxuXG5hLmFjX2ltYWdlLWdhbGxlcnlfaXRlbTpob3ZlciAuYWNfaW1hZ2UtZ2FsbGVyeV9pdGVtX2NvbnRlbnRfaW5uZXIge1xuICBjb2xvcjogIzAwMDAwMDsgfVxuXG4uYWNfaW1hZ2UtZ2FsbGVyeV9pdGVtX2NvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBib3JkZXItcmFkaXVzOiA2cHg7IH1cblxuLmFjX2ltYWdlLWdhbGxlcnlfaXRlbV9pbWFnZV9jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDIwMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgYm9yZGVyLXJhZGl1czogNnB4OyB9XG5cbi5hY19pbWFnZS1nYWxsZXJ5X2l0ZW1faW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuXG4uYWNfaW1hZ2UtZ2FsbGVyeV9pdGVtX2NvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweCByZ2JhKDEwMiwgMTAyLCAxMDIsIDAuMik7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmFjX2ltYWdlLWdhbGxlcnlfaXRlbV9jb250ZW50X2lubmVyIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gIGZvbnQtc2l6ZTogOTAlO1xuICBjb2xvcjogIzAwMDAwMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIC5hY19pbWFnZS1nYWxsZXJ5X2l0ZW1fY29udGVudF9pbm5lciB7XG4gICAgICBmb250LXNpemU6IDEwMCU7IH0gfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENUQVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuW2RhdGEtcy10eXBlPVwibWFwc1wiXSB7XG4gIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyB9XG4gIFtkYXRhLXMtdHlwZT1cIm1hcHNcIl0gLmFjX21hcHNfY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQwMHB4OyB9XG5cbi8qIEFDX1NfTkVXUyAtIDFcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbltkYXRhLXMtdHlwZT1cIm5ld3NcIl0ge1xuICAvKiBJVEVNICBHTE9CQUxTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyB9XG4gIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl0gLmFjX2NvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAxMDAwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgbWFyZ2luOiAyZW0gYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdIC5hY19pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjRlbTtcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgcGFkZGluZzogMCAyMHB4O1xuICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgxMDIsIDEwMiwgMTAyLCAwLjIpOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdIC5hY19pdGVtIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl0gLmFjX2l0ZW1fY29udGFpbmVyIHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2JhKDEwMiwgMTAyLCAxMDIsIDAuMik7XG4gICAgYmFja2dyb3VuZDogbm9uZTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgW2RhdGEtcy10eXBlPVwibmV3c1wiXSBhLmFjX2l0ZW06aG92ZXIgLmFjX2l0ZW1faW1hZ2Uge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcbiAgICAgIG9wYWNpdHk6IDAuODsgfVxuICAgIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl0gYS5hY19pdGVtOmhvdmVyIC5hY19pdGVtX2ltYWdlLWNvbnRhaW5lciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwOyB9XG4gICAgW2RhdGEtcy10eXBlPVwibmV3c1wiXSBhLmFjX2l0ZW06aG92ZXIgLmFjX2l0ZW1fY29udGVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gICAgW2RhdGEtcy10eXBlPVwibmV3c1wiXSBhLmFjX2l0ZW06aG92ZXIgLmFjX2l0ZW1fY29udGVudF90aXRsZSB7XG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpOyB9XG4gICAgW2RhdGEtcy10eXBlPVwibmV3c1wiXSBhLmFjX2l0ZW06aG92ZXIgLmFjX2l0ZW1fY29udGVudF9jb3B5LWFib3ZlIHtcbiAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9jb250ZW50X2NvcHktYmVsb3cge1xuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl0gLmFjX2l0ZW0gLmFjX2l0ZW1fY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgb3ZlcmZsb3c6IGluaGVyaXQ7XG4gICAgICBtaW4taGVpZ2h0OiBpbmhlcml0OyB9XG4gICAgW2RhdGEtcy10eXBlPVwibmV3c1wiXSAuYWNfaXRlbSAuYWNfaXRlbV9pbWFnZS1jb250YWluZXIge1xuICAgICAgd2lkdGg6IDgwcHg7XG4gICAgICBoZWlnaHQ6IDgwcHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgZmxleC1zaHJpbms6IDA7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdIC5hY19pdGVtIC5hY19pdGVtX2NvbnRlbnQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgbWluLWhlaWdodDogMTAwcHg7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdIC5hY19pdGVtIC5hY19pdGVtX2NvbnRlbnRfY29weSB7XG4gICAgICBwYWRkaW5nOiAwIDAgMCAxMDBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdIC5hY19pdGVtIC5hY19pdGVtX2NvbnRlbnRfdGl0bGUge1xuICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgZmxleDogMTsgfVxuICAgIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl0gLmFjX2l0ZW0gLmFjX2l0ZW1fY29udGVudF9jb3B5LWFib3ZlIHtcbiAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgIGZsZXg6IDE7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdIC5hY19pdGVtIC5hY19pdGVtX2NvbnRlbnRfY29weS1iZWxvdyB7XG4gICAgICBjb2xvcjogYmxhY2s7XG4gICAgICBmbGV4OiAxOyB9XG4gICAgW2RhdGEtcy10eXBlPVwibmV3c1wiXSAuYWNfaXRlbSBbZGF0YS1ib3JkZXItYm90dG9tXSB7XG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggcmdiYSgxMDIsIDEwMiwgMTAyLCAwLjIpICFpbXBvcnRhbnQ7IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdW2RhdGEtcy1hbW91bnQ9XCIyXCJdIFtkYXRhLXMtYW1vdW50LWl0ZW1dOm50aC1jaGlsZCgybisxKSB7XG4gICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50OyB9XG4gIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl1bZGF0YS1zLWFtb3VudD1cIjJcIl0gW2RhdGEtcy1hbW91bnQtaXRlbV06bnRoLWNoaWxkKDJuKzEpIHtcbiAgICBib3JkZXItbGVmdDogdHJhbnNwYXJlbnQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDkuOTM3NWVtKSB7XG4gICAgW2RhdGEtcy10eXBlPVwibmV3c1wiXVtkYXRhLXMtYW1vdW50PVwiM1wiXSBbZGF0YS1zLWFtb3VudC1pdGVtXTpudGgtY2hpbGQoMm4rMSkge1xuICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdW2RhdGEtcy1hbW91bnQ9XCIzXCJdIFtkYXRhLXMtYW1vdW50LWl0ZW1dOm50aC1jaGlsZCgzbisxKSB7XG4gICAgICBib3JkZXItbGVmdDogdHJhbnNwYXJlbnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgW2RhdGEtcy10eXBlPVwibmV3c1wiXVtkYXRhLXMtYW1vdW50PVwiNFwiXSBbZGF0YS1zLWFtb3VudC1pdGVtXTpudGgtY2hpbGQoMm4rMSkge1xuICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl1bZGF0YS1zLWFtb3VudD1cIjRcIl0gW2RhdGEtcy1hbW91bnQtaXRlbV06bnRoLWNoaWxkKDRuKzEpIHtcbiAgICAgIGJvcmRlci1sZWZ0OiB0cmFuc3BhcmVudDsgfSB9XG4gIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl0gLmFjX2l0ZW1faW1hZ2UtY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDE2MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7IH1cbiAgW2RhdGEtcy10eXBlPVwibmV3c1wiXSAuYWNfaXRlbV9pbWFnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgd2lsbC1jaGFuZ2U6IGNvbnRlbnRzO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDsgfVxuICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdIC5hY19pdGVtX2ljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIHdpZHRoOiAxLjJlbTtcbiAgICBoZWlnaHQ6IDEuMmVtO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMjBweDsgfVxuICAgIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl0gLmFjX2l0ZW1faWNvbiBzdmcge1xuICAgICAgd2lkdGg6IDEuMmVtO1xuICAgICAgaGVpZ2h0OiAxLjJlbTtcbiAgICAgIGZpbGw6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICAgIHRyYW5zaXRpb246IGZpbGwgMC4zcyBlYXNlOyB9XG4gIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl0gLmFjX2l0ZW1fY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl0gLmFjX2l0ZW1fY29udGVudF9jb3B5IHtcbiAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsgfVxuICAgIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl0gLmFjX2l0ZW1fY29udGVudF9jb3B5ICoge1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsgfVxuICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdIC5hY19pdGVtX2NvbnRlbnRfaWNvbl9jb250YWluZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgW2RhdGEtcy10eXBlPVwibmV3c1wiXSAuYWNfaXRlbV9jb250ZW50X3RpdGxlIHtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdIC5hY19pdGVtX2NvbnRlbnRfY29weS1hYm92ZSB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTsgfVxuICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdIC5hY19pdGVtX2NvbnRlbnRfY29weS1iZWxvdyB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTsgfVxuICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdIC5hY19pdGVtX2ljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIHdpZHRoOiAxLjJlbTtcbiAgICBoZWlnaHQ6IDEuMmVtO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMjBweDsgfVxuICAgIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl0gLmFjX2l0ZW1faWNvbiBzdmcge1xuICAgICAgd2lkdGg6IDEuMmVtO1xuICAgICAgaGVpZ2h0OiAxLjJlbTtcbiAgICAgIGZpbGw6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICAgIHRyYW5zaXRpb246IGZpbGwgMC4zcyBlYXNlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl0gLmFjX2l0ZW1fY29udGVudF9jb3B5IHtcbiAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdIC5hY19pdGVtX2NvbnRlbnRfY29weS1hYm92ZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDg1JTtcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4OyB9XG4gIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl0gLmFjX2l0ZW1fY29udGVudF90aXRsZSB7XG4gICAgcGFkZGluZzogMTBweCAwO1xuICAgIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC1zaXplOiAxMTAlOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl0gLmFjX2l0ZW1fY29udGVudF90aXRsZSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwMHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNDBweDsgfSB9XG4gIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl0gLmFjX2l0ZW1fY29udGVudF9jb3B5LWJlbG93IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogODUlO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgW2RhdGEtcy10eXBlPVwibmV3c1wiXSAuYWNfaXRlbV9jb250ZW50X2NvcHktYmVsb3cge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMjBweDsgfSB9XG4gIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl0gLmFjX2l0ZW0ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgW2RhdGEtcy10eXBlPVwibmV3c1wiXSAuYWNfaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGhlaWdodDogMzIwcHg7IH1cbiAgICAgICAgW2RhdGEtcy10eXBlPVwibmV3c1wiXSAuYWNfaXRlbTpmaXJzdC1jaGlsZCAuYWNfaXRlbSB7XG4gICAgICAgICAgaGVpZ2h0OiAxNjBweDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl0gLmFjX2l0ZW06Zmlyc3QtY2hpbGQgLmFjX2l0ZW0ge1xuICAgICAgICBoZWlnaHQ6IDE2MHB4OyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdIC5hY19pdGVtOmZpcnN0LWNoaWxkIC5hY19pdGVtX2ltYWdlLWNvbnRhaW5lciB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgICAgICAgW2RhdGEtcy10eXBlPVwibmV3c1wiXSAuYWNfaXRlbTpmaXJzdC1jaGlsZCAuYWNfaXRlbV9pbWFnZS1jb250YWluZXI6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDAsIDAsIDApLCBibGFjayk7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgYm90dG9tOiAwOyB9XG4gICAgICAgIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl0gLmFjX2l0ZW06Zmlyc3QtY2hpbGQgLmFjX2l0ZW1fY29udGVudCB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cbiAgICAgICAgW2RhdGEtcy10eXBlPVwibmV3c1wiXSAuYWNfaXRlbTpmaXJzdC1jaGlsZCAuYWNfaXRlbV9jb250YWluZXIge1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAgICAgW2RhdGEtcy10eXBlPVwibmV3c1wiXSAuYWNfaXRlbTpmaXJzdC1jaGlsZCAuYWNfaXRlbV9jb250ZW50X2NvcHkge1xuICAgICAgICAgIHBhZGRpbmc6IDIwcHg7IH1cbiAgICAgICAgW2RhdGEtcy10eXBlPVwibmV3c1wiXSAuYWNfaXRlbTpmaXJzdC1jaGlsZCAuYWNfaXRlbV9jb250ZW50X2NvcHktYWJvdmUge1xuICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7IH1cbiAgICAgICAgW2RhdGEtcy10eXBlPVwibmV3c1wiXSAuYWNfaXRlbTpmaXJzdC1jaGlsZCAuYWNfaXRlbV9jb250ZW50X3RpdGxlIHtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAgICAgW2RhdGEtcy10eXBlPVwibmV3c1wiXSAuYWNfaXRlbTpmaXJzdC1jaGlsZCAuYWNfaXRlbV9jb250ZW50X2NvcHktYmVsb3cge1xuICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7IH1cbiAgICAgICAgW2RhdGEtcy10eXBlPVwibmV3c1wiXSAuYWNfaXRlbTpmaXJzdC1jaGlsZCAuYWNfaXRlbV9pY29uIHtcbiAgICAgICAgICByaWdodDogMjBweDsgfVxuICAgICAgICAgIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl0gLmFjX2l0ZW06Zmlyc3QtY2hpbGQgLmFjX2l0ZW1faWNvbiBzdmcge1xuICAgICAgICAgICAgZmlsbDogI2ZmZmZmZjsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgICAgW2RhdGEtcy10eXBlPVwibmV3c1wiXSAuYWNfaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OyB9IH1cbiAgW2RhdGEtcy10eXBlPVwibmV3c1wiXVtkYXRhLXMtYW1vdW50PVwiMlwiXSAuYWNfaXRlbSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl1bZGF0YS1zLWFtb3VudD1cIjJcIl0gLmFjX2l0ZW06bnRoLWNoaWxkKC1uICsgMikge1xuICAgICAgZGlzcGxheTogZmxleDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgICAgIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl1bZGF0YS1zLWFtb3VudD1cIjJcIl0gLmFjX2l0ZW0ge1xuICAgICAgICB3aWR0aDogNDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDQwJTsgfVxuICAgICAgICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdW2RhdGEtcy1hbW91bnQ9XCIyXCJdIC5hY19pdGVtOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgICBtYXgtd2lkdGg6IDYwJTsgfSB9XG4gIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl1bZGF0YS1zLWFtb3VudD1cIjNcIl0gLmFjX2l0ZW0ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdW2RhdGEtcy1hbW91bnQ9XCIzXCJdIC5hY19pdGVtOm50aC1jaGlsZCgtbiArIDMpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1heC13aWR0aDogNDkuOTM3NWVtKSB7XG4gICAgICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdW2RhdGEtcy1hbW91bnQ9XCIzXCJdIC5hY19pdGVtOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMjQwcHg7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgICAgIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl1bZGF0YS1zLWFtb3VudD1cIjNcIl0gLmFjX2l0ZW0ge1xuICAgICAgICB3aWR0aDogMzAlO1xuICAgICAgICBtYXgtd2lkdGg6IDMwJTsgfVxuICAgICAgICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdW2RhdGEtcy1hbW91bnQ9XCIzXCJdIC5hY19pdGVtOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgICBtYXgtd2lkdGg6IDQwJTsgfSB9XG4gIFtkYXRhLXMtdHlwZT1cIm5ld3NcIl1bZGF0YS1zLWFtb3VudD1cIjRcIl0gLmFjX2l0ZW0ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdW2RhdGEtcy1hbW91bnQ9XCI0XCJdIC5hY19pdGVtOm50aC1jaGlsZCgtbiArIDQpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgICBbZGF0YS1zLXR5cGU9XCJuZXdzXCJdW2RhdGEtcy1hbW91bnQ9XCI0XCJdIC5hY19pdGVtIHtcbiAgICAgICAgd2lkdGg6IDIwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAyMCU7IH1cbiAgICAgICAgW2RhdGEtcy10eXBlPVwibmV3c1wiXVtkYXRhLXMtYW1vdW50PVwiNFwiXSAuYWNfaXRlbTpudGgtY2hpbGQoMSkge1xuICAgICAgICAgIHdpZHRoOiAzMCU7XG4gICAgICAgICAgbWF4LXdpZHRoOiAzMCU7IH0gfVxuXG4vKiBBQ19TX1NFUlZJQ0VTIC0gMVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuW2RhdGEtcy10eXBlPVwicHJvZHVjdHNcIl0ge1xuICAvKiBJVEVNICBHTE9CQUxTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyB9XG4gIFtkYXRhLXMtdHlwZT1cInByb2R1Y3RzXCJdIC5hY19jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIG1hcmdpbjogMmVtIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgW2RhdGEtcy10eXBlPVwicHJvZHVjdHNcIl0gLmFjX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNGVtO1xuICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCByZ2JhKDEwMiwgMTAyLCAxMDIsIDAuMik7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgIFtkYXRhLXMtdHlwZT1cInByb2R1Y3RzXCJdIC5hY19pdGVtIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA1MCU7IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJwcm9kdWN0c1wiXSAuYWNfaXRlbV9jb250YWluZXIge1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IHJnYmEoMTAyLCAxMDIsIDEwMiwgMC4yKTtcbiAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgICBbZGF0YS1zLXR5cGU9XCJwcm9kdWN0c1wiXSBhLmFjX2l0ZW06aG92ZXIgLmFjX2l0ZW1faW1hZ2Uge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcbiAgICAgIG9wYWNpdHk6IDAuODsgfVxuICAgIFtkYXRhLXMtdHlwZT1cInByb2R1Y3RzXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9pbWFnZS1jb250YWluZXIge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsgfVxuICAgIFtkYXRhLXMtdHlwZT1cInByb2R1Y3RzXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJwcm9kdWN0c1wiXSBhLmFjX2l0ZW06aG92ZXIgLmFjX2l0ZW1fY29udGVudF9pY29uIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsgfVxuICAgICAgW2RhdGEtcy10eXBlPVwicHJvZHVjdHNcIl0gYS5hY19pdGVtOmhvdmVyIC5hY19pdGVtX2NvbnRlbnRfaWNvbiBzdmcge1xuICAgICAgICBmaWxsOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJwcm9kdWN0c1wiXSBhLmFjX2l0ZW06aG92ZXIgLmFjX2l0ZW1fY29udGVudF90aXRsZSB7XG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpOyB9XG4gICAgW2RhdGEtcy10eXBlPVwicHJvZHVjdHNcIl0gYS5hY19pdGVtOmhvdmVyIC5hY19pdGVtX2NvbnRlbnRfY29weS1hYm92ZSB7XG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOyB9XG4gICAgW2RhdGEtcy10eXBlPVwicHJvZHVjdHNcIl0gYS5hY19pdGVtOmhvdmVyIC5hY19pdGVtX2NvbnRlbnRfY29weS1iZWxvdyB7XG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOyB9XG4gICAgW2RhdGEtcy10eXBlPVwicHJvZHVjdHNcIl0gYS5hY19pdGVtOmhvdmVyIC5hY19pdGVtX2ljb24gc3ZnIHtcbiAgICAgIGZpbGw6IHJnYmEoMCwgMCwgMCwgMC40KTsgfSB9XG4gIFtkYXRhLXMtdHlwZT1cInByb2R1Y3RzXCJdW2RhdGEtcy1hbW91bnQ9XCIyXCJdIFtkYXRhLXMtYW1vdW50LWl0ZW1dOm50aC1jaGlsZCgybisxKSB7XG4gICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50OyB9XG4gIFtkYXRhLXMtdHlwZT1cInByb2R1Y3RzXCJdW2RhdGEtcy1hbW91bnQ9XCIyXCJdIFtkYXRhLXMtYW1vdW50LWl0ZW1dOm50aC1jaGlsZCgybisxKSB7XG4gICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ5LjkzNzVlbSkge1xuICAgIFtkYXRhLXMtdHlwZT1cInByb2R1Y3RzXCJdW2RhdGEtcy1hbW91bnQ9XCIzXCJdIFtkYXRhLXMtYW1vdW50LWl0ZW1dOm50aC1jaGlsZCgybisxKSB7XG4gICAgICBib3JkZXItbGVmdDogdHJhbnNwYXJlbnQ7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIFtkYXRhLXMtdHlwZT1cInByb2R1Y3RzXCJdW2RhdGEtcy1hbW91bnQ9XCIzXCJdIFtkYXRhLXMtYW1vdW50LWl0ZW1dOm50aC1jaGlsZCgzbisxKSB7XG4gICAgICBib3JkZXItbGVmdDogdHJhbnNwYXJlbnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgW2RhdGEtcy10eXBlPVwicHJvZHVjdHNcIl1bZGF0YS1zLWFtb3VudD1cIjRcIl0gW2RhdGEtcy1hbW91bnQtaXRlbV06bnRoLWNoaWxkKDJuKzEpIHtcbiAgICAgIGJvcmRlci1sZWZ0OiB0cmFuc3BhcmVudDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgICBbZGF0YS1zLXR5cGU9XCJwcm9kdWN0c1wiXVtkYXRhLXMtYW1vdW50PVwiNFwiXSBbZGF0YS1zLWFtb3VudC1pdGVtXTpudGgtY2hpbGQoNG4rMSkge1xuICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50OyB9IH1cbiAgW2RhdGEtcy10eXBlPVwicHJvZHVjdHNcIl1bZGF0YS1zLWFtb3VudD1cIjJcIl0gW2RhdGEtcy1hbW91bnQtaXRlbV06bnRoLWxhc3QtY2hpbGQoLW4gKyAyKSBbZGF0YS1ib3JkZXItYm90dG9tXSB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDkuOTM3NWVtKSB7XG4gICAgW2RhdGEtcy10eXBlPVwicHJvZHVjdHNcIl1bZGF0YS1zLWFtb3VudD1cIjNcIl0gW2RhdGEtcy1hbW91bnQtaXRlbV06bnRoLWxhc3QtY2hpbGQoLW4gKyAyKSBbZGF0YS1ib3JkZXItYm90dG9tXSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgW2RhdGEtcy10eXBlPVwicHJvZHVjdHNcIl1bZGF0YS1zLWFtb3VudD1cIjNcIl0gW2RhdGEtcy1hbW91bnQtaXRlbV06bnRoLWxhc3QtY2hpbGQoLW4gKyAzKSBbZGF0YS1ib3JkZXItYm90dG9tXSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICBbZGF0YS1zLXR5cGU9XCJwcm9kdWN0c1wiXVtkYXRhLXMtYW1vdW50PVwiNFwiXSBbZGF0YS1zLWFtb3VudC1pdGVtXTpudGgtbGFzdC1jaGlsZCgtbiArIDIpIFtkYXRhLWJvcmRlci1ib3R0b21dIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgIFtkYXRhLXMtdHlwZT1cInByb2R1Y3RzXCJdW2RhdGEtcy1hbW91bnQ9XCI0XCJdIFtkYXRhLXMtYW1vdW50LWl0ZW1dOm50aC1sYXN0LWNoaWxkKC1uICsgNCkgW2RhdGEtYm9yZGVyLWJvdHRvbV0ge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJwcm9kdWN0c1wiXSAuYWNfaXRlbV9pbWFnZS1jb250YWluZXIge1xuICAgIGhlaWdodDogMjB2dztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4OyB9XG4gIFtkYXRhLXMtdHlwZT1cInByb2R1Y3RzXCJdIC5hY19pdGVtX2ltYWdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICB3aWxsLWNoYW5nZTogY29udGVudHM7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4OyB9XG4gIFtkYXRhLXMtdHlwZT1cInByb2R1Y3RzXCJdIC5hY19pdGVtX2ljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIHdpZHRoOiAxLjZlbTtcbiAgICBoZWlnaHQ6IDEuNmVtO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMjBweDsgfVxuICAgIFtkYXRhLXMtdHlwZT1cInByb2R1Y3RzXCJdIC5hY19pdGVtX2ljb24gc3ZnIHtcbiAgICAgIHdpZHRoOiAxLjZlbTtcbiAgICAgIGhlaWdodDogMS42ZW07XG4gICAgICBmaWxsOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgICB0cmFuc2l0aW9uOiBmaWxsIDAuM3MgZWFzZTsgfVxuICBbZGF0YS1zLXR5cGU9XCJwcm9kdWN0c1wiXSAuYWNfaXRlbV9jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgW2RhdGEtcy10eXBlPVwicHJvZHVjdHNcIl0gLmFjX2l0ZW1fY29udGVudF9jb3B5IHtcbiAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsgfVxuICAgIFtkYXRhLXMtdHlwZT1cInByb2R1Y3RzXCJdIC5hY19pdGVtX2NvbnRlbnRfY29weSAqIHtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7IH1cbiAgW2RhdGEtcy10eXBlPVwicHJvZHVjdHNcIl0gLmFjX2l0ZW1fY29udGVudF9pY29uX2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICBbZGF0YS1zLXR5cGU9XCJwcm9kdWN0c1wiXSAuYWNfaXRlbV9jb250ZW50X2ljb24ge1xuICAgIHdpZHRoOiA4MHB4O1xuICAgIGhlaWdodDogODBweDtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgbWFyZ2luOiAwIDAgMjBweCAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJwcm9kdWN0c1wiXSAuYWNfaXRlbV9jb250ZW50X2ljb24gc3ZnIHtcbiAgICAgIHdpZHRoOiA2MHB4O1xuICAgICAgaGVpZ2h0OiA2MHB4O1xuICAgICAgZmlsbDogd2hpdGU7IH1cbiAgW2RhdGEtcy10eXBlPVwicHJvZHVjdHNcIl0gLmFjX2l0ZW1fY29udGVudF90aXRsZSB7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgW2RhdGEtcy10eXBlPVwicHJvZHVjdHNcIl0gLmFjX2l0ZW1fY29udGVudF9jb3B5LWFib3ZlIHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpOyB9XG4gIFtkYXRhLXMtdHlwZT1cInByb2R1Y3RzXCJdIC5hY19pdGVtX2NvbnRlbnRfY29weS1iZWxvdyB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTsgfVxuICBbZGF0YS1zLXR5cGU9XCJwcm9kdWN0c1wiXSAuYWNfaXRlbV9pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMjtcbiAgICB3aWR0aDogMS42ZW07XG4gICAgaGVpZ2h0OiAxLjZlbTtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDIwcHg7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJwcm9kdWN0c1wiXSAuYWNfaXRlbV9pY29uIHN2ZyB7XG4gICAgICB3aWR0aDogMS42ZW07XG4gICAgICBoZWlnaHQ6IDEuNmVtO1xuICAgICAgZmlsbDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgICAgdHJhbnNpdGlvbjogZmlsbCAwLjNzIGVhc2U7IH1cbiAgW2RhdGEtcy10eXBlPVwicHJvZHVjdHNcIl0gLmFjX2l0ZW1faW1hZ2UtY29udGFpbmVyIHtcbiAgICBib3JkZXI6IHNvbGlkIDFweCByZ2JhKDEwMiwgMTAyLCAxMDIsIDAuMik7IH1cbiAgW2RhdGEtcy10eXBlPVwicHJvZHVjdHNcIl0gLmFjX2l0ZW1fY29udGVudF9wcmljZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICBbZGF0YS1zLXR5cGU9XCJwcm9kdWN0c1wiXSAuYWNfaXRlbV9jb250ZW50X3ByaWNlX2JlZm9yZSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgb3BhY2l0eTogLjY7IH1cbiAgW2RhdGEtcy10eXBlPVwicHJvZHVjdHNcIl0gLmFjX2l0ZW1fY29udGVudF9wcmljZV9jdXJyZW50IHtcbiAgICBmb250LXNpemU6IDEyMCU7IH1cbiAgW2RhdGEtcy10eXBlPVwicHJvZHVjdHNcIl0gLmFjX2l0ZW1fY29udGVudF9sYWJlbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTIlO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogMTE7XG4gICAgYmFja2dyb3VuZDogIzY3MDMwOTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBwYWRkaW5nOiA2LjY2NjY3cHggMTBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuLyogUVVPVEVTIC0gMVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuW2RhdGEtcy10eXBlPVwicXVvdGVzXCJdIHtcbiAgLyogSVRFTSAgR0xPQkFMU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8gfVxuICBbZGF0YS1zLXR5cGU9XCJxdW90ZXNcIl0gLmFjX2NvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgbWFyZ2luOiAyZW0gYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICBbZGF0YS1zLXR5cGU9XCJxdW90ZXNcIl0gLmFjX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNGVtO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgIFtkYXRhLXMtdHlwZT1cInF1b3Rlc1wiXSAuYWNfaXRlbSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJxdW90ZXNcIl0gLmFjX2l0ZW1fY29udGFpbmVyIHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgIFtkYXRhLXMtdHlwZT1cInF1b3Rlc1wiXSBhLmFjX2l0ZW06aG92ZXIgLmFjX2l0ZW1faW1hZ2Uge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcbiAgICAgIG9wYWNpdHk6IDAuODsgfVxuICAgIFtkYXRhLXMtdHlwZT1cInF1b3Rlc1wiXSBhLmFjX2l0ZW06aG92ZXIgLmFjX2l0ZW1fY29udGVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gICAgW2RhdGEtcy10eXBlPVwicXVvdGVzXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9jb250ZW50X3RpdGxlIHtcbiAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJxdW90ZXNcIl0gYS5hY19pdGVtOmhvdmVyIC5hY19pdGVtX2NvbnRlbnRfY29weS1hYm92ZSB7XG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOyB9XG4gICAgW2RhdGEtcy10eXBlPVwicXVvdGVzXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9jb250ZW50X2NvcHktYmVsb3cge1xuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTsgfSB9XG4gIFtkYXRhLXMtdHlwZT1cInF1b3Rlc1wiXSAuYWNfaXRlbV9pbWFnZS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgW2RhdGEtcy10eXBlPVwicXVvdGVzXCJdIC5hY19pdGVtX2ltYWdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICB3aWxsLWNoYW5nZTogY29udGVudHM7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4OyB9XG4gIFtkYXRhLXMtdHlwZT1cInF1b3Rlc1wiXSAuYWNfaXRlbV9pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMjtcbiAgICB3aWR0aDogMS42ZW07XG4gICAgaGVpZ2h0OiAxLjZlbTtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDIwcHg7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJxdW90ZXNcIl0gLmFjX2l0ZW1faWNvbiBzdmcge1xuICAgICAgd2lkdGg6IDEuNmVtO1xuICAgICAgaGVpZ2h0OiAxLjZlbTtcbiAgICAgIGZpbGw6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICAgIHRyYW5zaXRpb246IGZpbGwgMC4zcyBlYXNlOyB9XG4gIFtkYXRhLXMtdHlwZT1cInF1b3Rlc1wiXSAuYWNfaXRlbV9jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgW2RhdGEtcy10eXBlPVwicXVvdGVzXCJdIC5hY19pdGVtX2NvbnRlbnRfY29weSB7XG4gICAgcGFkZGluZzogMjBweCAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJxdW90ZXNcIl0gLmFjX2l0ZW1fY29udGVudF9jb3B5ICoge1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsgfVxuICBbZGF0YS1zLXR5cGU9XCJxdW90ZXNcIl0gLmFjX2l0ZW1fY29udGVudF9pY29uX2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBbZGF0YS1zLXR5cGU9XCJxdW90ZXNcIl0gLmFjX2l0ZW1fY29udGVudF90aXRsZSB7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgW2RhdGEtcy10eXBlPVwicXVvdGVzXCJdIC5hY19pdGVtX2NvbnRlbnRfY29weS1hYm92ZSB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTsgfVxuICBbZGF0YS1zLXR5cGU9XCJxdW90ZXNcIl0gLmFjX2l0ZW1fY29udGVudF9jb3B5LWJlbG93IHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpOyB9XG4gIFtkYXRhLXMtdHlwZT1cInF1b3Rlc1wiXSAuYWNfaXRlbV9pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMjtcbiAgICB3aWR0aDogMS42ZW07XG4gICAgaGVpZ2h0OiAxLjZlbTtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDIwcHg7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJxdW90ZXNcIl0gLmFjX2l0ZW1faWNvbiBzdmcge1xuICAgICAgd2lkdGg6IDEuNmVtO1xuICAgICAgaGVpZ2h0OiAxLjZlbTtcbiAgICAgIGZpbGw6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICAgIHRyYW5zaXRpb246IGZpbGwgMC4zcyBlYXNlOyB9XG4gIFtkYXRhLXMtdHlwZT1cInF1b3Rlc1wiXSAuYWNfY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB6LWluZGV4OiBpbmhlcml0O1xuICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsgfVxuICAgIFtkYXRhLXMtdHlwZT1cInF1b3Rlc1wiXSAuYWNfY29udGFpbmVyLnNsaWNrLWluaXRpYWxpemVkIHtcbiAgICAgIG1heC1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgW2RhdGEtcy10eXBlPVwicXVvdGVzXCJdIFtkYXRhLXMtYW1vdW50LWl0ZW1dIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIFtkYXRhLXMtdHlwZT1cInF1b3Rlc1wiXSBbZGF0YS1zLWFtb3VudC1pdGVtXSB7XG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJxdW90ZXNcIl0gLmFjX2l0ZW0ge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDEuNWVtIDgwcHg7IH1cbiAgW2RhdGEtcy10eXBlPVwicXVvdGVzXCJdIC5hY19pdGVtX2NvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA2MDBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICBbZGF0YS1zLXR5cGU9XCJxdW90ZXNcIl0gLmFjX2l0ZW1fY29udGVudF9jb3B5IHtcbiAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJxdW90ZXNcIl0gLmFjX2l0ZW1fY29udGVudF90aXRsZV9xdW90ZS1sZWZ0LFxuICBbZGF0YS1zLXR5cGU9XCJxdW90ZXNcIl0gLmFjX2l0ZW1fY29udGVudF90aXRsZV9xdW90ZS1yaWdodCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgW2RhdGEtcy10eXBlPVwicXVvdGVzXCJdIC5hY19pdGVtX2NvbnRlbnRfdGl0bGVfcXVvdGUtbGVmdCBzdmcsXG4gICAgW2RhdGEtcy10eXBlPVwicXVvdGVzXCJdIC5hY19pdGVtX2NvbnRlbnRfdGl0bGVfcXVvdGUtcmlnaHQgc3ZnIHtcbiAgICAgIHdpZHRoOiAzZW07XG4gICAgICBoZWlnaHQ6IDNlbTtcbiAgICAgIGZpbGw6IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuICBbZGF0YS1zLXR5cGU9XCJxdW90ZXNcIl0gLmFjX2l0ZW1fY29udGVudF90aXRsZV9xdW90ZS1sZWZ0IHtcbiAgICB0b3A6IC0xLjVlbTtcbiAgICBsZWZ0OiAtMS41ZW07IH1cbiAgW2RhdGEtcy10eXBlPVwicXVvdGVzXCJdIC5hY19pdGVtX2NvbnRlbnRfdGl0bGVfcXVvdGUtcmlnaHQge1xuICAgIGJvdHRvbTogLTEuNWVtO1xuICAgIHJpZ2h0OiAtMS41ZW07IH1cbiAgW2RhdGEtcy10eXBlPVwicXVvdGVzXCJdIC5hY19pdGVtX2F1dGhvciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiAxZW07IH1cbiAgW2RhdGEtcy10eXBlPVwicXVvdGVzXCJdIC5hY19pdGVtX2F2YXRhcl9jb250YWluZXIge1xuICAgIHdpZHRoOiA0ZW07XG4gICAgaGVpZ2h0OiA0ZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlcjogNHB4IHNvbGlkICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogNXB4IDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICAgIGZsZXgtc2hyaW5rOiAwOyB9XG4gIFtkYXRhLXMtdHlwZT1cInF1b3Rlc1wiXSAuYWNfaXRlbV9hdmF0YXJfaW1hZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTsgfVxuICBbZGF0YS1zLXR5cGU9XCJxdW90ZXNcIl0gLmFjX2l0ZW1fY29udGVudF9jb3B5LWFib3ZlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogODUlO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7IH1cbiAgW2RhdGEtcy10eXBlPVwicXVvdGVzXCJdIC5hY19pdGVtX2NvbnRlbnRfdGl0bGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IDExMCU7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgICAgW2RhdGEtcy10eXBlPVwicXVvdGVzXCJdIC5hY19pdGVtX2NvbnRlbnRfdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDE0MCU7IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJxdW90ZXNcIl0gLmFjX2l0ZW1fY29udGVudF9jb3B5LWJlbG93IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogODUlO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7IH1cbiAgW2RhdGEtcy10eXBlPVwicXVvdGVzXCJdIC5zbGljay1kb3RzIHtcbiAgICBib3R0b206IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMTAwJSk7IH1cblxuLyogUkVGRVJFTkNFUyAtIDJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbltkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXNcIl0ge1xuICAvKiBJVEVNICBHTE9CQUxTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyB9XG4gIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXNcIl0gLmFjX2NvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAxMDAwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgbWFyZ2luOiAyZW0gYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlc1wiXSAuYWNfaXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMS40ZW07XG4gICAgcGFkZGluZzogMCAyMHB4O1xuICAgIHBhZGRpbmc6IDAgMTBweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlc1wiXSAuYWNfaXRlbSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzXCJdIC5hY19pdGVtX2NvbnRhaW5lciB7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9pbWFnZSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xuICAgICAgb3BhY2l0eTogMC40OyB9XG4gICAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlc1wiXSBhLmFjX2l0ZW06aG92ZXIgLmFjX2l0ZW1faW1hZ2UtY29udGFpbmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9jb250ZW50X2ljb24ge1xuICAgICAgYmFja2dyb3VuZDogd2hpdGU7IH1cbiAgICAgIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXNcIl0gYS5hY19pdGVtOmhvdmVyIC5hY19pdGVtX2NvbnRlbnRfaWNvbiBzdmcge1xuICAgICAgICBmaWxsOiBibGFjazsgfVxuICAgIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXNcIl0gYS5hY19pdGVtOmhvdmVyIC5hY19pdGVtX2NvbnRlbnRfdGl0bGUge1xuICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTsgfVxuICAgIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXNcIl0gYS5hY19pdGVtOmhvdmVyIC5hY19pdGVtX2NvbnRlbnRfY29weS1hYm92ZSB7XG4gICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpOyB9XG4gICAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlc1wiXSBhLmFjX2l0ZW06aG92ZXIgLmFjX2l0ZW1faWNvbiBzdmcge1xuICAgICAgZmlsbDogd2hpdGU7IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzXCJdIC5hY19pdGVtX2ltYWdlLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAyNDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4OyB9XG4gIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXNcIl0gLmFjX2l0ZW1faW1hZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgd2lsbC1jaGFuZ2U6IGNvbnRlbnRzO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDsgfVxuICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzXCJdIC5hY19pdGVtX2ljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIHdpZHRoOiAxLjZlbTtcbiAgICBoZWlnaHQ6IDEuNmVtO1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIGJvdHRvbTogMjBweDsgfVxuICAgIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXNcIl0gLmFjX2l0ZW1faWNvbiBzdmcge1xuICAgICAgd2lkdGg6IDEuNmVtO1xuICAgICAgaGVpZ2h0OiAxLjZlbTtcbiAgICAgIGZpbGw6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbiAgICAgIHRyYW5zaXRpb246IGZpbGwgMC4zcyBlYXNlOyB9XG4gIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXNcIl0gLmFjX2l0ZW1fY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXNcIl0gLmFjX2l0ZW1fY29udGVudF9jb3B5IHtcbiAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsgfVxuICAgIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXNcIl0gLmFjX2l0ZW1fY29udGVudF9jb3B5ICoge1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsgfVxuICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzXCJdIC5hY19pdGVtX2NvbnRlbnRfaWNvbl9jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlc1wiXSAuYWNfaXRlbV9jb250ZW50X2ljb24ge1xuICAgIHdpZHRoOiA4MHB4O1xuICAgIGhlaWdodDogODBweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBtYXJnaW46IDAgMCAyMHB4IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTsgfVxuICAgIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXNcIl0gLmFjX2l0ZW1fY29udGVudF9pY29uIHN2ZyB7XG4gICAgICB3aWR0aDogNjBweDtcbiAgICAgIGhlaWdodDogNjBweDtcbiAgICAgIGZpbGw6IHdoaXRlOyB9XG4gIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXNcIl0gLmFjX2l0ZW1fY29udGVudF90aXRsZSB7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlc1wiXSAuYWNfaXRlbV9jb250ZW50X2NvcHktYWJvdmUge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7IH1cbiAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlc1wiXSAuYWNfaXRlbV9jb250ZW50X2NvcHktYmVsb3cge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlc1wiXSAuYWNfaXRlbV9pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMjtcbiAgICB3aWR0aDogMS42ZW07XG4gICAgaGVpZ2h0OiAxLjZlbTtcbiAgICByaWdodDogMjBweDtcbiAgICBib3R0b206IDIwcHg7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzXCJdIC5hY19pdGVtX2ljb24gc3ZnIHtcbiAgICAgIHdpZHRoOiAxLjZlbTtcbiAgICAgIGhlaWdodDogMS42ZW07XG4gICAgICBmaWxsOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG4gICAgICB0cmFuc2l0aW9uOiBmaWxsIDAuM3MgZWFzZTsgfVxuICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzXCJdIC5hY19pdGVtIHtcbiAgICBoZWlnaHQ6IDI0MHB4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlc1wiXSAuYWNfaXRlbSB7XG4gICAgICAgIGhlaWdodDogMjQwcHg7IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzXCJdIC5hY19pdGVtX2ltYWdlLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlc1wiXSAuYWNfaXRlbV9pbWFnZS1jb250YWluZXI6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDAsIDAsIDApLCBibGFjayk7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgYm90dG9tOiAwOyB9XG4gIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXNcIl0gLmFjX2l0ZW1fY29udGVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgdG9wOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgbGVmdDogMDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXNcIl0gLmFjX2l0ZW1fY29udGFpbmVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXNcIl0gLmFjX2l0ZW1faW1hZ2UtY29udGFpbmVyIHtcbiAgICBib3JkZXI6IHNvbGlkIDNweCAjZmZmZmZmOyB9XG4gIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXNcIl0gLmFjX2l0ZW1faW1hZ2Uge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlc1wiXSAuYWNfaXRlbV9jb250ZW50X3RpdGxlIHtcbiAgICBmb250LWZhbWlseTogXCJNb250c2VycmF0XCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogMTUwJTtcbiAgICBsaW5lLWhlaWdodDogMTsgfVxuXG4vKiBSRUZFUkVOQ0VTLUdSSUQgLSAxXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5bZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzLWdyaWRcIl0ge1xuICAvKiBJVEVNICBHTE9CQUxTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyB9XG4gIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXMtZ3JpZFwiXSAuYWNfY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDEwMDBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgICBtYXJnaW46IDJlbSBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmc6IDAgMTBweDsgfVxuICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzLWdyaWRcIl0gLmFjX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgcGFkZGluZzogMCAyMHB4O1xuICAgIHBhZGRpbmc6IDAgMTBweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIC5hY19pdGVtIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXMtZ3JpZFwiXSAuYWNfaXRlbV9jb250YWluZXIge1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgYmFja2dyb3VuZDogbm9uZTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9pbWFnZSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xuICAgICAgb3BhY2l0eTogMC40OyB9XG4gICAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9pbWFnZS1jb250YWluZXIge1xuICAgICAgYmFja2dyb3VuZDogIzAwMDAwMDsgfVxuICAgIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXMtZ3JpZFwiXSBhLmFjX2l0ZW06aG92ZXIgLmFjX2l0ZW1fY29udGVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gICAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9jb250ZW50X2ljb24ge1xuICAgICAgYmFja2dyb3VuZDogd2hpdGU7IH1cbiAgICAgIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXMtZ3JpZFwiXSBhLmFjX2l0ZW06aG92ZXIgLmFjX2l0ZW1fY29udGVudF9pY29uIHN2ZyB7XG4gICAgICAgIGZpbGw6IGJsYWNrOyB9XG4gICAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9jb250ZW50X3RpdGxlIHtcbiAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzLWdyaWRcIl0gYS5hY19pdGVtOmhvdmVyIC5hY19pdGVtX2NvbnRlbnRfY29weS1hYm92ZSB7XG4gICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpOyB9XG4gICAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9pY29uIHN2ZyB7XG4gICAgICBmaWxsOiB3aGl0ZTsgfSB9XG4gIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXMtZ3JpZFwiXSAuYWNfaXRlbV9pbWFnZS1jb250YWluZXIge1xuICAgIGhlaWdodDogMjQwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDsgfVxuICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzLWdyaWRcIl0gLmFjX2l0ZW1faW1hZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgb3BhY2l0eTogMC4yO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgd2lsbC1jaGFuZ2U6IGNvbnRlbnRzO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDsgfVxuICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzLWdyaWRcIl0gLmFjX2l0ZW1faWNvbiB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzLWdyaWRcIl0gLmFjX2l0ZW1fY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXMtZ3JpZFwiXSAuYWNfaXRlbV9jb250ZW50X2NvcHkge1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsgfVxuICAgIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXMtZ3JpZFwiXSAuYWNfaXRlbV9jb250ZW50X2NvcHkgKiB7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOyB9XG4gIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXMtZ3JpZFwiXSAuYWNfaXRlbV9jb250ZW50X2ljb25fY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXMtZ3JpZFwiXSAuYWNfaXRlbV9jb250ZW50X2ljb24ge1xuICAgIHdpZHRoOiA4MHB4O1xuICAgIGhlaWdodDogODBweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBtYXJnaW46IDAgMCAyMHB4IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTsgfVxuICAgIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXMtZ3JpZFwiXSAuYWNfaXRlbV9jb250ZW50X2ljb24gc3ZnIHtcbiAgICAgIHdpZHRoOiA2MHB4O1xuICAgICAgaGVpZ2h0OiA2MHB4O1xuICAgICAgZmlsbDogd2hpdGU7IH1cbiAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIC5hY19pdGVtX2NvbnRlbnRfdGl0bGUge1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXMtZ3JpZFwiXSAuYWNfaXRlbV9jb250ZW50X2NvcHktYWJvdmUge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7IH1cbiAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIC5hY19pdGVtX2NvbnRlbnRfY29weS1iZWxvdyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzLWdyaWRcIl0gLmFjX2l0ZW1faWNvbiB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzLWdyaWRcIl0gLmFjX2l0ZW0ge1xuICAgIGhlaWdodDogMjQwcHg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzLWdyaWRcIl0gLmFjX2l0ZW0ge1xuICAgICAgICBoZWlnaHQ6IDI0MHB4OyB9IH1cbiAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIC5hY19pdGVtX2ltYWdlLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIC5hY19pdGVtX2ltYWdlLWNvbnRhaW5lcjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMCwgMCwgMCwgMCksIGJsYWNrKTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBib3R0b206IDA7IH1cbiAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIC5hY19pdGVtX2NvbnRlbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIHRvcDogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGxlZnQ6IDA7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzLWdyaWRcIl0gLmFjX2l0ZW1fY29udGFpbmVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXMtZ3JpZFwiXSAuYWNfZ3JpZF9jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTAwMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmc6IDEwcHg7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzLWdyaWRcIl0gLmFjX2dyaWRfY29udGFpbmVyIC5hY19pdGVtX2ltYWdlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIC5hY19ncmlkX291dGVyLWNvbHVtbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgwMHB4KSB7XG4gICAgICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzLWdyaWRcIl0gLmFjX2dyaWRfb3V0ZXItY29sdW1uOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIHdpZHRoOiA2MCU7XG4gICAgICAgIG1heC13aWR0aDogNjAlOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3OTlweCkge1xuICAgICAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIC5hY19ncmlkX291dGVyLWNvbHVtbjpudGgtY2hpbGQoMikge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzLWdyaWRcIl0gLmFjX2dyaWRfb3V0ZXItY29sdW1uOm50aC1jaGlsZCgyKSAuYWNfaXRlbSB7XG4gICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODAwcHgpIHtcbiAgICAgICAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIC5hY19ncmlkX291dGVyLWNvbHVtbjpudGgtY2hpbGQoMikgLmFjX2l0ZW0ge1xuICAgICAgICAgIGhlaWdodDogMTgwcHg7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogaW5oZXJpdDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODAwcHgpIHtcbiAgICAgIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXMtZ3JpZFwiXSAuYWNfZ3JpZF9vdXRlci1jb2x1bW46bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA0MCU7IH0gfVxuICAgIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXMtZ3JpZFwiXSAuYWNfZ3JpZF9vdXRlci1jb2x1bW46bnRoLWNoaWxkKDIpIC5hY19pdGVtIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgICAgIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXMtZ3JpZFwiXSAuYWNfZ3JpZF9vdXRlci1jb2x1bW46bnRoLWNoaWxkKDIpIC5hY19pdGVtOm50aC1jaGlsZCgxKSAuYWNfaXRlbV9pbWFnZSwgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIC5hY19ncmlkX291dGVyLWNvbHVtbjpudGgtY2hpbGQoMikgLmFjX2l0ZW06bnRoLWNoaWxkKDQpIC5hY19pdGVtX2ltYWdlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIC5hY19ncmlkX2NvbHVtbiB7XG4gICAgaGVpZ2h0OiA0MDBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIFtkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXMtZ3JpZFwiXSAuYWNfZ3JpZF9jb2x1bW4gLmFjX2l0ZW0ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDIwcHgpOyB9XG4gICAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIC5hY19ncmlkX2NvbHVtbjpudGgtY2hpbGQoMSkge1xuICAgICAgaGVpZ2h0OiAyMDBweDsgfVxuICAgICAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIC5hY19ncmlkX2NvbHVtbjpudGgtY2hpbGQoMSkgLmFjX2l0ZW0ge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAgICAgICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzLWdyaWRcIl0gLmFjX2dyaWRfY29sdW1uOm50aC1jaGlsZCgxKSAuYWNfaXRlbTpudGgtY2hpbGQoMSkgLmFjX2l0ZW1faW1hZ2Uge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MDBweCkge1xuICAgICAgICBbZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzLWdyaWRcIl0gLmFjX2dyaWRfY29sdW1uOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgaGVpZ2h0OiA0MDBweDtcbiAgICAgICAgICB3aWR0aDogMzMuMzMzMzMlO1xuICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG4gICAgICAgICAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIC5hY19ncmlkX2NvbHVtbjpudGgtY2hpbGQoMSkgLmFjX2l0ZW0ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDE4MHB4OyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3OTlweCkge1xuICAgICAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIC5hY19ncmlkX2NvbHVtbjpudGgtY2hpbGQoMikge1xuICAgICAgICBoZWlnaHQ6IDI4MHB4OyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MDBweCkge1xuICAgICAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIC5hY19ncmlkX2NvbHVtbjpudGgtY2hpbGQoMikge1xuICAgICAgICB3aWR0aDogNjYuNjY2NjclO1xuICAgICAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfSB9XG4gICAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIC5hY19ncmlkX2NvbHVtbjpudGgtY2hpbGQoMikgLmFjX2l0ZW1faW1hZ2Uge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlcy1ncmlkXCJdIC5hY19pdGVtX2NvbnRlbnRfdGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC1zaXplOiAxMjAlO1xuICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbi8qIFNFUlZJQ0VTLUdSSUQgLSAxXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5bZGF0YS1zLXR5cGU9XCJzZXJ2aWNlcy1ncmlkXCJdIHtcbiAgLyogSVRFTSAgR0xPQkFMU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8gfVxuICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlcy1ncmlkXCJdIC5hY19jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIG1hcmdpbjogMmVtIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgcGFkZGluZzogMCAxMHB4OyB9XG4gIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gLmFjX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgcGFkZGluZzogMCAyMHB4O1xuICAgIHBhZGRpbmc6IDAgMTBweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgW2RhdGEtcy10eXBlPVwic2VydmljZXMtZ3JpZFwiXSAuYWNfaXRlbSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlcy1ncmlkXCJdIC5hY19pdGVtX2NvbnRhaW5lciB7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlcy1ncmlkXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9pbWFnZSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xuICAgICAgb3BhY2l0eTogMC40OyB9XG4gICAgW2RhdGEtcy10eXBlPVwic2VydmljZXMtZ3JpZFwiXSBhLmFjX2l0ZW06aG92ZXIgLmFjX2l0ZW1faW1hZ2UtY29udGFpbmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlcy1ncmlkXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlcy1ncmlkXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9jb250ZW50X2ljb24ge1xuICAgICAgYmFja2dyb3VuZDogd2hpdGU7IH1cbiAgICAgIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gYS5hY19pdGVtOmhvdmVyIC5hY19pdGVtX2NvbnRlbnRfaWNvbiBzdmcge1xuICAgICAgICBmaWxsOiBibGFjazsgfVxuICAgIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gYS5hY19pdGVtOmhvdmVyIC5hY19pdGVtX2NvbnRlbnRfdGl0bGUge1xuICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTsgfVxuICAgIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gYS5hY19pdGVtOmhvdmVyIC5hY19pdGVtX2ljb24gc3ZnIHtcbiAgICAgIGZpbGw6IHdoaXRlOyB9IH1cbiAgW2RhdGEtcy10eXBlPVwic2VydmljZXMtZ3JpZFwiXSAuYWNfaXRlbV9pbWFnZS1jb250YWluZXIge1xuICAgIGhlaWdodDogMjQwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDsgfVxuICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlcy1ncmlkXCJdIC5hY19pdGVtX2ltYWdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG9wYWNpdHk6IDAuMjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIHdpbGwtY2hhbmdlOiBjb250ZW50cztcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7IH1cbiAgW2RhdGEtcy10eXBlPVwic2VydmljZXMtZ3JpZFwiXSAuYWNfaXRlbV9pY29uIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gLmFjX2l0ZW1fY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gLmFjX2l0ZW1fY29udGVudF9jb3B5IHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlcy1ncmlkXCJdIC5hY19pdGVtX2NvbnRlbnRfY29weSAqIHtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7IH1cbiAgW2RhdGEtcy10eXBlPVwic2VydmljZXMtZ3JpZFwiXSAuYWNfaXRlbV9jb250ZW50X2ljb25fY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gLmFjX2l0ZW1fY29udGVudF9pY29uIHtcbiAgICB3aWR0aDogODBweDtcbiAgICBoZWlnaHQ6IDgwcHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgbWFyZ2luOiAwIDAgMjBweCAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlcy1ncmlkXCJdIC5hY19pdGVtX2NvbnRlbnRfaWNvbiBzdmcge1xuICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICBmaWxsOiB3aGl0ZTsgfVxuICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlcy1ncmlkXCJdIC5hY19pdGVtX2NvbnRlbnRfdGl0bGUge1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gLmFjX2l0ZW1fY29udGVudF9jb3B5LWFib3ZlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gLmFjX2l0ZW1fY29udGVudF9jb3B5LWJlbG93IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gLmFjX2l0ZW1faWNvbiB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlcy1ncmlkXCJdIC5hY19pdGVtIHtcbiAgICBoZWlnaHQ6IDI0MHB4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgW2RhdGEtcy10eXBlPVwic2VydmljZXMtZ3JpZFwiXSAuYWNfaXRlbSB7XG4gICAgICAgIGhlaWdodDogMjQwcHg7IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlcy1ncmlkXCJdIC5hY19pdGVtX2ltYWdlLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgW2RhdGEtcy10eXBlPVwic2VydmljZXMtZ3JpZFwiXSAuYWNfaXRlbV9pbWFnZS1jb250YWluZXI6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDAsIDAsIDApLCBibGFjayk7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgYm90dG9tOiAwOyB9XG4gIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gLmFjX2l0ZW1fY29udGVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgdG9wOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgbGVmdDogMDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gLmFjX2l0ZW1fY29udGFpbmVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gLmFjX2dyaWRfY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBwYWRkaW5nOiAxMHB4OyB9XG4gIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gLmFjX2dyaWRfb3V0ZXItY29sdW1uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODAwcHgpIHtcbiAgICAgIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gLmFjX2dyaWRfb3V0ZXItY29sdW1uOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIHdpZHRoOiA2MCU7XG4gICAgICAgIG1heC13aWR0aDogNjAlOyB9IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlcy1ncmlkXCJdIC5hY19ncmlkX291dGVyLWNvbHVtbjpudGgtY2hpbGQoMikgLmFjX2l0ZW0ge1xuICAgICAgaGVpZ2h0OiAxODBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgwMHB4KSB7XG4gICAgICAgIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gLmFjX2dyaWRfb3V0ZXItY29sdW1uOm50aC1jaGlsZCgyKSAuYWNfaXRlbSB7XG4gICAgICAgICAgaGVpZ2h0OiAxNjBweDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiBpbmhlcml0OyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MDBweCkge1xuICAgICAgW2RhdGEtcy10eXBlPVwic2VydmljZXMtZ3JpZFwiXSAuYWNfZ3JpZF9vdXRlci1jb2x1bW46bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA0MCU7IH0gfVxuICAgIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gLmFjX2dyaWRfb3V0ZXItY29sdW1uOm50aC1jaGlsZCgyKSAuYWNfaXRlbSB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gLmFjX2dyaWRfY29sdW1uIHtcbiAgICBoZWlnaHQ6IDM2MHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgW2RhdGEtcy10eXBlPVwic2VydmljZXMtZ3JpZFwiXSAuYWNfZ3JpZF9jb2x1bW4gLmFjX2l0ZW0ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDIwcHgpOyB9XG4gICAgW2RhdGEtcy10eXBlPVwic2VydmljZXMtZ3JpZFwiXSAuYWNfZ3JpZF9jb2x1bW46bnRoLWNoaWxkKDEpIHtcbiAgICAgIGhlaWdodDogMTgwcHg7IH1cbiAgICAgIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gLmFjX2dyaWRfY29sdW1uOm50aC1jaGlsZCgxKSAuYWNfaXRlbSB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIG1heC13aWR0aDogNTAlOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MDBweCkge1xuICAgICAgICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlcy1ncmlkXCJdIC5hY19ncmlkX2NvbHVtbjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgIGhlaWdodDogMzYwcHg7XG4gICAgICAgICAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAgICAgICAgIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gLmFjX2dyaWRfY29sdW1uOm50aC1jaGlsZCgxKSAuYWNfaXRlbSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTYwcHg7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc5OXB4KSB7XG4gICAgICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlcy1ncmlkXCJdIC5hY19ncmlkX2NvbHVtbjpudGgtY2hpbGQoMikge1xuICAgICAgICBoZWlnaHQ6IDI1MnB4OyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MDBweCkge1xuICAgICAgW2RhdGEtcy10eXBlPVwic2VydmljZXMtZ3JpZFwiXSAuYWNfZ3JpZF9jb2x1bW46bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgd2lkdGg6IDY2LjY2NjY3JTtcbiAgICAgICAgbWF4LXdpZHRoOiA2Ni42NjY2NyU7IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlcy1ncmlkXCJdIC5hY19pdGVtX2NvbnRlbnRfdGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC1zaXplOiAxMjAlO1xuICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gLmFjX2dyaWRfb3V0ZXItY29sdW1uOm50aC1jaGlsZCgxKSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MDBweCkge1xuICAgICAgW2RhdGEtcy10eXBlPVwic2VydmljZXMtZ3JpZFwiXSAuYWNfZ3JpZF9vdXRlci1jb2x1bW46bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA1MCU7IH0gfVxuICAgIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gLmFjX2dyaWRfb3V0ZXItY29sdW1uOm50aC1jaGlsZCgxKSAuYWNfZ3JpZF9jb2x1bW4ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgwMHB4KSB7XG4gICAgICAgIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gLmFjX2dyaWRfb3V0ZXItY29sdW1uOm50aC1jaGlsZCgxKSAuYWNfZ3JpZF9jb2x1bW46bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7IH0gfVxuICAgICAgW2RhdGEtcy10eXBlPVwic2VydmljZXMtZ3JpZFwiXSAuYWNfZ3JpZF9vdXRlci1jb2x1bW46bnRoLWNoaWxkKDEpIC5hY19ncmlkX2NvbHVtbjpudGgtY2hpbGQoMSkgLmFjX2l0ZW0ge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAgICAgW2RhdGEtcy10eXBlPVwic2VydmljZXMtZ3JpZFwiXSAuYWNfZ3JpZF9vdXRlci1jb2x1bW46bnRoLWNoaWxkKDEpIC5hY19ncmlkX2NvbHVtbjpudGgtY2hpbGQoMSkgLmFjX2l0ZW0ge1xuICAgICAgICBoZWlnaHQ6IDE4MHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgwMHB4KSB7XG4gICAgW2RhdGEtcy10eXBlPVwic2VydmljZXMtZ3JpZFwiXSAuYWNfZ3JpZF9vdXRlci1jb2x1bW46bnRoLWNoaWxkKDIpIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBtYXgtd2lkdGg6IDUwJTsgfSB9XG4gIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzLWdyaWRcIl0gLmFjX2dyaWRfb3V0ZXItY29sdW1uOm50aC1jaGlsZCgyKSAuYWNfaXRlbSB7XG4gICAgaGVpZ2h0OiAyNjBweDsgfVxuXG4vKiBTRVJWSUNFUyAtIDFcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbltkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdIHtcbiAgLyogSVRFTSAgR0xPQkFMU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8gfVxuICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlc1wiXSAuYWNfY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgICBtYXJnaW46IDJlbSBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdIC5hY19pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjRlbTtcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgcGFkZGluZzogMCAyMHB4O1xuICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgxMDIsIDEwMiwgMTAyLCAwLjIpOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlc1wiXSAuYWNfaXRlbSB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIG1heC13aWR0aDogNTAlOyB9IH1cbiAgW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl0gLmFjX2l0ZW1fY29udGFpbmVyIHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2JhKDEwMiwgMTAyLCAxMDIsIDAuMik7XG4gICAgYmFja2dyb3VuZDogbm9uZTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl0gYS5hY19pdGVtOmhvdmVyIC5hY19pdGVtX2ltYWdlIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7XG4gICAgICBvcGFjaXR5OiAwLjg7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlc1wiXSBhLmFjX2l0ZW06aG92ZXIgLmFjX2l0ZW1faW1hZ2UtY29udGFpbmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7IH1cbiAgICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlc1wiXSBhLmFjX2l0ZW06aG92ZXIgLmFjX2l0ZW1fY29udGVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gICAgW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl0gYS5hY19pdGVtOmhvdmVyIC5hY19pdGVtX2NvbnRlbnRfaWNvbiB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7IH1cbiAgICAgIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9jb250ZW50X2ljb24gc3ZnIHtcbiAgICAgICAgZmlsbDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpOyB9XG4gICAgW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl0gYS5hY19pdGVtOmhvdmVyIC5hY19pdGVtX2NvbnRlbnRfdGl0bGUge1xuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTsgfVxuICAgIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9jb250ZW50X2NvcHktYmVsb3cge1xuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTsgfVxuICAgIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9pY29uIHN2ZyB7XG4gICAgICBmaWxsOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7IH0gfVxuICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlc1wiXVtkYXRhLXMtYW1vdW50PVwiMlwiXSBbZGF0YS1zLWFtb3VudC1pdGVtXTpudGgtY2hpbGQoMm4rMSkge1xuICAgIGJvcmRlci1sZWZ0OiB0cmFuc3BhcmVudDsgfVxuICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlc1wiXVtkYXRhLXMtYW1vdW50PVwiMlwiXSBbZGF0YS1zLWFtb3VudC1pdGVtXTpudGgtY2hpbGQoMm4rMSkge1xuICAgIGJvcmRlci1sZWZ0OiB0cmFuc3BhcmVudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OS45Mzc1ZW0pIHtcbiAgICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlc1wiXVtkYXRhLXMtYW1vdW50PVwiM1wiXSBbZGF0YS1zLWFtb3VudC1pdGVtXTpudGgtY2hpbGQoMm4rMSkge1xuICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlc1wiXVtkYXRhLXMtYW1vdW50PVwiM1wiXSBbZGF0YS1zLWFtb3VudC1pdGVtXTpudGgtY2hpbGQoM24rMSkge1xuICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjRlbSkge1xuICAgIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdW2RhdGEtcy1hbW91bnQ9XCI0XCJdIFtkYXRhLXMtYW1vdW50LWl0ZW1dOm50aC1jaGlsZCgybisxKSB7XG4gICAgICBib3JkZXItbGVmdDogdHJhbnNwYXJlbnQ7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl1bZGF0YS1zLWFtb3VudD1cIjRcIl0gW2RhdGEtcy1hbW91bnQtaXRlbV06bnRoLWNoaWxkKDRuKzEpIHtcbiAgICAgIGJvcmRlci1sZWZ0OiB0cmFuc3BhcmVudDsgfSB9XG4gIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdW2RhdGEtcy1hbW91bnQ9XCIyXCJdIFtkYXRhLXMtYW1vdW50LWl0ZW1dOm50aC1sYXN0LWNoaWxkKC1uICsgMikgW2RhdGEtYm9yZGVyLWJvdHRvbV0ge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ5LjkzNzVlbSkge1xuICAgIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdW2RhdGEtcy1hbW91bnQ9XCIzXCJdIFtkYXRhLXMtYW1vdW50LWl0ZW1dOm50aC1sYXN0LWNoaWxkKC1uICsgMikgW2RhdGEtYm9yZGVyLWJvdHRvbV0ge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdW2RhdGEtcy1hbW91bnQ9XCIzXCJdIFtkYXRhLXMtYW1vdW50LWl0ZW1dOm50aC1sYXN0LWNoaWxkKC1uICsgMykgW2RhdGEtYm9yZGVyLWJvdHRvbV0ge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl1bZGF0YS1zLWFtb3VudD1cIjRcIl0gW2RhdGEtcy1hbW91bnQtaXRlbV06bnRoLWxhc3QtY2hpbGQoLW4gKyAyKSBbZGF0YS1ib3JkZXItYm90dG9tXSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlc1wiXVtkYXRhLXMtYW1vdW50PVwiNFwiXSBbZGF0YS1zLWFtb3VudC1pdGVtXTpudGgtbGFzdC1jaGlsZCgtbiArIDQpIFtkYXRhLWJvcmRlci1ib3R0b21dIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50OyB9IH1cbiAgW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl0gLmFjX2l0ZW1faW1hZ2UtY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDE2MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7IH1cbiAgW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl0gLmFjX2l0ZW1faW1hZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIHdpbGwtY2hhbmdlOiBjb250ZW50cztcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7IH1cbiAgW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl0gLmFjX2l0ZW1faWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgd2lkdGg6IDEuNmVtO1xuICAgIGhlaWdodDogMS42ZW07XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAyMHB4OyB9XG4gICAgW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl0gLmFjX2l0ZW1faWNvbiBzdmcge1xuICAgICAgd2lkdGg6IDEuNmVtO1xuICAgICAgaGVpZ2h0OiAxLjZlbTtcbiAgICAgIGZpbGw6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICAgIHRyYW5zaXRpb246IGZpbGwgMC4zcyBlYXNlOyB9XG4gIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdIC5hY19pdGVtX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgYmFja2dyb3VuZDogbm9uZTsgfVxuICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlc1wiXSAuYWNfaXRlbV9jb250ZW50X2NvcHkge1xuICAgIHBhZGRpbmc6IDIwcHggMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOyB9XG4gICAgW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl0gLmFjX2l0ZW1fY29udGVudF9jb3B5ICoge1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsgfVxuICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlc1wiXSAuYWNfaXRlbV9jb250ZW50X2ljb25fY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdIC5hY19pdGVtX2NvbnRlbnRfaWNvbiB7XG4gICAgd2lkdGg6IDgwcHg7XG4gICAgaGVpZ2h0OiA4MHB4O1xuICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBtYXJnaW46IDAgMCAyMHB4IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTsgfVxuICAgIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdIC5hY19pdGVtX2NvbnRlbnRfaWNvbiBzdmcge1xuICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICBmaWxsOiB3aGl0ZTsgfVxuICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlc1wiXSAuYWNfaXRlbV9jb250ZW50X3RpdGxlIHtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlc1wiXSAuYWNfaXRlbV9jb250ZW50X2NvcHktYWJvdmUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl0gLmFjX2l0ZW1fY29udGVudF9jb3B5LWJlbG93IHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpOyB9XG4gIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdIC5hY19pdGVtX2ljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIHdpZHRoOiAxLjZlbTtcbiAgICBoZWlnaHQ6IDEuNmVtO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMjBweDsgfVxuICAgIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdIC5hY19pdGVtX2ljb24gc3ZnIHtcbiAgICAgIHdpZHRoOiAxLjZlbTtcbiAgICAgIGhlaWdodDogMS42ZW07XG4gICAgICBmaWxsOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgICB0cmFuc2l0aW9uOiBmaWxsIDAuM3MgZWFzZTsgfVxuICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlc1wiXSAuYWNfaXRlbV9jb250ZW50X2ljb25fY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdG9wOiA0MHB4OyB9XG5cbi8qIEFDX1NfVEVBTSAtIDFcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFDX1NfVEVBTSAtIDAxIC0gR0xPQkFMU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuW2RhdGEtcy10eXBlPVwidGVhbVwiXSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMjBweCAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgW2RhdGEtcy10eXBlPVwidGVhbVwiXSB7XG4gICAgICBwYWRkaW5nOiAwIDAgMTBweCAwOyB9IH1cblxuLmFjX3RlYW1fY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiA4MDBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xuICBtYXJnaW46IDJlbSBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHBhZGRpbmc6IDAgMTBweDsgfVxuXG4uYWNfdGVhbV9pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMS40ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogMCAyMHB4O1xuICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgIC5hY190ZWFtX2l0ZW06aG92ZXIgLmFjX3RlYW1faXRlbV9sb2dvIHtcbiAgICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4uYWNfdGVhbV9pdGVtX2NvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIHBhZGRpbmc6IDIwcHggMDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBib3gtc2hhZG93OiA1cHggNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbi5hY190ZWFtX2l0ZW1fY29udGVudCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAyMHB4OyB9XG5cbi5hY190ZWFtX2l0ZW1fcHJvZmlsZS1pbWFnZV9jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4uYWNfdGVhbV9pdGVtX3Byb2ZpbGUtaW1hZ2Uge1xuICB3aWR0aDogMTIwcHg7XG4gIGhlaWdodDogMTIwcHg7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJvcmRlcjogc29saWQgNnB4ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IDVweCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7IH1cblxuLmFjX3RlYW1faXRlbV9uYW1lIHtcbiAgZm9udC1zaXplOiAxMTAlO1xuICBtYXJnaW4tYm90dG9tOiAuNmVtOyB9XG5cbi5hY190ZWFtX2l0ZW1fam9iLWRlc2NyaXB0aW9uIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiA5MCU7XG4gIG1hcmdpbi1ib3R0b206IC42ZW07IH1cblxuLmFjX3RlYW1faXRlbV9zb2NpYWxzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLXRvcDogLjZlbTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLmFjX3RlYW1faXRlbV9zb2NpYWxzIHN2ZyB7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIGZpbGw6ICNmZmZmZmY7IH1cbiAgLmFjX3RlYW1faXRlbV9zb2NpYWxzIGEge1xuICAgIG1hcmdpbi1yaWdodDogLjZlbTtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTsgfVxuICAgIC5hY190ZWFtX2l0ZW1fc29jaWFscyBhOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgICAgLmFjX3RlYW1faXRlbV9zb2NpYWxzIGE6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwOyB9XG4gICAgICAgIC5hY190ZWFtX2l0ZW1fc29jaWFscyBhOmhvdmVyIHN2ZyB7XG4gICAgICAgICAgZmlsbDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9IH1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBBQ19TX1RPUFRBU0tTX0ZJWEVEIC0gMVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQUNfU19UT1BUQVNLUyAtIEdMT0JBTFNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbltkYXRhLXMtdHlwZT1cInRvcHRhc2tzLWZpeGVkXCJdIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDMzMzM7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXI6IG5vbmU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjRlbSkge1xuICAgIFtkYXRhLXMtdHlwZT1cInRvcHRhc2tzLWZpeGVkXCJdIHtcbiAgICAgIGJveC1zaGFkb3c6IC01cHggMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgICBbZGF0YS1zLXR5cGU9XCJ0b3B0YXNrcy1maXhlZFwiXSB7XG4gICAgICBib3gtc2hhZG93OiA1cHggNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgICAgdG9wOiAyNXZoO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IGluaGVyaXQ7XG4gICAgICBsZWZ0OiBpbmhlcml0O1xuICAgICAgd2lkdGg6IDQwMHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDM0MHB4KTsgfSB9XG5cbi5hY190b3B0YXNrc19maXhlZF9jb250YWluZXJfaW5uZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMTBweCAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmFjX3RvcHRhc2tzX2ZpeGVkX2NvbnRhaW5lcl9pbm5lciB7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgIC5hY190b3B0YXNrc19maXhlZF9jb250YWluZXJfaW5uZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuXG4uYWNfdG9wdGFza3NfZml4ZWRfaXRlbV9jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuYWNfdG9wdGFza3NfZml4ZWRfaXRlbV9jb250YWluZXIge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgICAuYWNfdG9wdGFza3NfZml4ZWRfaXRlbV9jb250YWluZXIge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9IH1cblxuLmFjX3RvcHRhc2tzX2ZpeGVkX2l0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB3aWR0aDogMzk4cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgLmFjX3RvcHRhc2tzX2ZpeGVkX2l0ZW06YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDEwJTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIHdpZHRoOiAxcHg7XG4gICAgICBoZWlnaHQ6IDgwJTsgfVxuICAgIC5hY190b3B0YXNrc19maXhlZF9pdGVtOmxhc3QtY2hpbGQ6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgICAuYWNfdG9wdGFza3NfZml4ZWRfaXRlbSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcbiAgICAgIHdpbGwtY2hhbmdlOiBjb250ZW50czsgfVxuICAgICAgLmFjX3RvcHRhc2tzX2ZpeGVkX2l0ZW06aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMHB4KTsgfVxuICAgICAgICAuYWNfdG9wdGFza3NfZml4ZWRfaXRlbTpob3ZlciAuYWNfdG9wdGFza3NfZml4ZWRfaXRlbV9pY29uIHN2ZyB7XG4gICAgICAgICAgZmlsbDogIzY3MDMwOTsgfVxuICAgICAgICAuYWNfdG9wdGFza3NfZml4ZWRfaXRlbTpob3ZlciAuYWNfdG9wdGFza3NfZml4ZWRfaXRlbV9jb250ZW50X3RpdGxlIHtcbiAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAgICAgICAuYWNfdG9wdGFza3NfZml4ZWRfaXRlbTpob3ZlciAuYWNfdG9wdGFza3NfZml4ZWRfaXRlbV9jb250ZW50X2J0bi1jb250YWluZXIge1xuICAgICAgICAgIGNvbG9yOiBibGFjazsgfSB9XG5cbi5hY190b3B0YXNrc19maXhlZF9pdGVtX2NvbnRlbnRfdGl0bGUge1xuICBmb250LXNpemU6IDkwJTtcbiAgY29sb3I6ICMwMDAwMDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgIC5hY190b3B0YXNrc19maXhlZF9pdGVtX2NvbnRlbnRfdGl0bGUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5hY190b3B0YXNrc19maXhlZF9pdGVtX2NvbnRlbnRfdGl0bGUge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cblxuLmFjX3RvcHRhc2tzX2ZpeGVkX2l0ZW1fY29udGVudF9idG4tY29udGFpbmVyIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZGlzcGxheTogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgLmFjX3RvcHRhc2tzX2ZpeGVkX2l0ZW1fY29udGVudF9idG4tY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiAyMDBweDsgfSB9XG5cbi5hY190b3B0YXNrc19maXhlZF9pdGVtX2ljb24tY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxOyB9XG5cbi5hY190b3B0YXNrc19maXhlZF9pdGVtX2ljb24ge1xuICB3aWR0aDogMjFweDtcbiAgaGVpZ2h0OiAyMXB4O1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXItcmFkaXVzOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmFjX3RvcHRhc2tzX2ZpeGVkX2l0ZW1faWNvbiB7XG4gICAgICB3aWR0aDogNjBweDtcbiAgICAgIGhlaWdodDogNjBweDtcbiAgICAgIHBhZGRpbmc6IDE1cHg7IH0gfVxuICAuYWNfdG9wdGFza3NfZml4ZWRfaXRlbV9pY29uIHN2ZyB7XG4gICAgd2lkdGg6IDIxcHg7XG4gICAgaGVpZ2h0OiAyMXB4O1xuICAgIGZpbGw6ICMwMDAwMDA7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmFjX3RvcHRhc2tzX2ZpeGVkX2l0ZW1faWNvbiBzdmcge1xuICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4OyB9IH1cblxuLyogQUNfU19UT1BUQVNLUyAtIDFcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFDX1NfVE9QVEFTS1MgLSBHTE9CQUxTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5bZGF0YS1zLXR5cGU9XCJ0b3B0YXNrc1wiXSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uYWNfdG9wdGFza3NfY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gIG1hcmdpbjogMmVtIGF1dG87XG4gIHBhZGRpbmc6IDA7IH1cblxuLmFjX3RvcHRhc2tzX2NvbnRhaW5lcl9pbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgcGFkZGluZzogNXB4OyB9XG5cbi5hY190b3B0YXNrc19pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogMTBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgLmFjX3RvcHRhc2tzX2l0ZW06aG92ZXIgLmFjX3RvcHRhc2tzX2l0ZW1fY29udGFpbmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7IH1cbiAgICAuYWNfdG9wdGFza3NfaXRlbTpob3ZlciAuYWNfdG9wdGFza3NfaXRlbV9pbWFnZSB7XG4gICAgICBvcGFjaXR5OiAwLjU7IH1cbiAgICAuYWNfdG9wdGFza3NfaXRlbTpob3ZlciAuYWNfdG9wdGFza3NfaXRlbV9pY29uIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsgfVxuICAgICAgLmFjX3RvcHRhc2tzX2l0ZW06aG92ZXIgLmFjX3RvcHRhc2tzX2l0ZW1faWNvbiBzdmcge1xuICAgICAgICBmaWxsOiAjZmZmZmZmOyB9XG4gICAgLmFjX3RvcHRhc2tzX2l0ZW06aG92ZXIgLmFjX3RvcHRhc2tzX2l0ZW1fY29udGVudF90aXRsZSB7XG4gICAgICBjb2xvcjogI2ZmZmZmZjsgfSB9XG5cbi5hY190b3B0YXNrc19pdGVtX2NvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6ICNmYWZhZmQ7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgYm94LXNoYWRvdzogNXB4IDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuXG4uYWNfdG9wdGFza3NfaXRlbV9pbWFnZS1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTIwcHg7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDZweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDZweDsgfVxuXG4uYWNfdG9wdGFza3NfaXRlbV9pbWFnZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmFjX3RvcHRhc2tzX2l0ZW1fY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgZmxleDogMTsgfVxuXG4uYWNfdG9wdGFza3NfaXRlbV9jb250ZW50X3RpdGxlIHtcbiAgZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IDEyMCU7XG4gIG1hcmdpbi1ib3R0b206IC40ZW07XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOyB9XG5cbi5hY190b3B0YXNrc19pdGVtX2NvbnRlbnRfZGVzY3JpcHRpb24ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5hY190b3B0YXNrc19pdGVtX2NvbnRlbnRfYnRuLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmFjX3RvcHRhc2tzX2l0ZW1faWNvbi1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7IH1cblxuLmFjX3RvcHRhc2tzX2l0ZW1faWNvbiB7XG4gIHdpZHRoOiA4MHB4O1xuICBoZWlnaHQ6IDgwcHg7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIHBhZGRpbmc6IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7IH1cbiAgLmFjX3RvcHRhc2tzX2l0ZW1faWNvbiBzdmcge1xuICAgIHdpZHRoOiA1NnB4O1xuICAgIGhlaWdodDogNTZweDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIGZpbGw6ICMwMDAwMDA7IH1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1heC13aWR0aDogNDkuOTM3NWVtKSB7XG4gIC5hY190b3B0YXNrc19pdGVtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1heC13aWR0aDogNDkuOTM3NWVtKSB7XG4gIC5hY190b3B0YXNrc19pdGVtOmFmdGVyIHtcbiAgICB0b3A6IGluaGVyaXQ7XG4gICAgcmlnaHQ6IGluaGVyaXQ7XG4gICAgbGVmdDogMjBweDtcbiAgICBib3R0b206IDA7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDQwcHgpOyB9IH1cblxuLmFjX3RvcHRhc2tzX2l0ZW1fY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4uYWNfdG9wdGFza3NfaXRlbV9pbWFnZS1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEyMHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDZweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDZweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7IH1cblxuLmFjX3RvcHRhc2tzX2l0ZW1faWNvbi1jb250YWluZXIge1xuICBmbGV4OiAwIDAgMTIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmFjX3RvcHRhc2tzX2l0ZW1fY29udGVudF90aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLyogVkFDIC0gM1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQUNfU19WQUMgLSBHTE9CQUxTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uYWNfdmFjX2NvbnRhaW5lciB7XG4gIG1heC13aWR0aDogMTIwMHB4O1xuICBtYXJnaW46IDAgYXV0bzsgfVxuXG4uYWNfdmFjX2l0ZW1fY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuYWNfdmFjX2l0ZW1fY29udGFpbmVyIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuXG4uYWNfdmFjX2l0ZW1fdmlzdWFsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyNTBweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgLmFjX3ZhY19pdGVtX3Zpc3VhbCB7XG4gICAgICB3aWR0aDogNjAlO1xuICAgICAgbWF4LXdpZHRoOiA2MCU7XG4gICAgICBtaW4taGVpZ2h0OiA1MDBweDtcbiAgICAgIGhlaWdodDogaW5oZXJpdDsgfSB9XG5cbi5hY192YWNfaXRlbV9jb250ZW50IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgLmFjX3ZhY19pdGVtX2NvbnRlbnQge1xuICAgICAgd2lkdGg6IDQwJTtcbiAgICAgIG1heC13aWR0aDogNDAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfSB9XG5cbi5hY192YWNfaXRlbV9jb250ZW50X2lubmVyIHtcbiAgbWF4LXdpZHRoOiA1MDBweDtcbiAgcGFkZGluZzogMjBweDsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuYWNfdmFjX2l0ZW0udl90ZXh0LXJpZ2h0IC5hY192YWNfaXRlbV9jb250YWluZXIge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfSB9XG5cbi5hY192YWNfY29udGFpbmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHotaW5kZXg6IGluaGVyaXQ7XG4gIG1heC1oZWlnaHQ6IDUwMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsgfVxuICAuYWNfdmFjX2NvbnRhaW5lci5zbGljay1pbml0aWFsaXplZCB7XG4gICAgbWF4LWhlaWdodDogaW5oZXJpdDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBvcGFjaXR5OiAxOyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmFjX3ZhY19pdGVtX2NvbnRhaW5lciB7XG4gIG1pbi1oZWlnaHQ6IDUwMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5hY192YWNfaXRlbS52X3RleHQtcmlnaHQgLmFjX3ZhY19pdGVtX2NvbnRhaW5lciB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5hY192YWNfaXRlbS52X3RleHQtcmlnaHQgLmFjX3ZhY19pdGVtX2NvbnRlbnQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5hY192YWNfaXRlbS52X3RleHQtbGVmdCAuYWNfdmFjX2l0ZW1fY29udGVudCB7XG4gICAgcGFkZGluZy1sZWZ0OiA2MHB4OyB9IH1cblxuLmFjX3ZhY19pdGVtX3Zpc3VhbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7IH1cblxuLmFjX3ZhY19pdGVtX2NvbnRlbnQge1xuICBtYXJnaW46IDQwcHggMDsgfVxuXG4uYWNfdmFjX2l0ZW1fY29udGVudF9pbm5lciB7XG4gIHdpZHRoOiA5MCU7XG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IDEwcHggMTBweCAyMHB4IHJnYmEoMzQsIDM0LCAzNCwgMC4yKTtcbiAgei1pbmRleDogMjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiA0MHB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgICAuYWNfdmFjX2l0ZW1fY29udGVudF9pbm5lciB7XG4gICAgICB3aWR0aDogaW5pdGlhbDtcbiAgICAgIG1hcmdpbjogaW5pdGlhbDsgfSB9XG5cbi8qIFBBUlRORVJTIC0gMVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQUNfU19QQVJUTkVSUyAtIEdMT0JBTFNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbltkYXRhLXMtdHlwZT1cInBhcnRuZXJzXCJdIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAyMHB4IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICBbZGF0YS1zLXR5cGU9XCJwYXJ0bmVyc1wiXSB7XG4gICAgICBwYWRkaW5nOiAwIDAgMTBweCAwOyB9IH1cbiAgW2RhdGEtcy10eXBlPVwicGFydG5lcnNcIl0udl9pcy1zbGlkZXIudl9oYXMtZG90cyAuYWNfYnJhbmRzX2NvbnRhaW5lciB7XG4gICAgbWFyZ2luLWJvdHRvbTogNGVtOyB9XG4gIFtkYXRhLXMtdHlwZT1cInBhcnRuZXJzXCJdLnZfaXMtc2xpZGVyIC5zbGljay1kb3RzIHtcbiAgICBib3R0b206IC00ZW07IH1cblxuLmFjX3BhcnRuZXJzX2NvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbiAgbWFyZ2luOiAyZW0gYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwYWRkaW5nOiAwIDEwcHg7IH1cblxuLmFjX3BhcnRuZXJzX2l0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHdpZHRoOiA1MCU7XG4gIG1heC13aWR0aDogNTAlO1xuICBwYWRkaW5nOiAwIDIwcHg7XG4gIHBhZGRpbmc6IDAgMTBweDsgfVxuICAuYWNfcGFydG5lcnNfaXRlbS52X3NtYWxsZXItbG9nbyAuYWNfcGFydG5lcnNfaXRlbV9sb2dvIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7IH1cbiAgLmFjX3BhcnRuZXJzX2l0ZW0udl9sYXJnZXItbG9nbyAuYWNfcGFydG5lcnNfaXRlbV9sb2dvIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICBhLmFjX3BhcnRuZXJzX2l0ZW06aG92ZXIgLmFjX3BhcnRuZXJzX2l0ZW1fbG9nbyB7XG4gICAgb3BhY2l0eTogMC42OyB9XG4gIGEuYWNfcGFydG5lcnNfaXRlbTpob3ZlciAuYWNfcGFydG5lcnNfaXRlbV9kZXNjcmlwdGlvbiB7XG4gICAgY29sb3I6ICMwMDAwMDA7IH0gfVxuXG4uYWNfcGFydG5lcnNfaXRlbV9jb250YWluZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZzogMDsgfVxuXG4uYWNfcGFydG5lcnNfaXRlbV9kZXNjcmlwdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmFjX3BhcnRuZXJzX2l0ZW1fbG9nb19jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuYWNfcGFydG5lcnNfaXRlbV9sb2dvX2NvbnRhaW5lciB7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cblxuLmFjX3BhcnRuZXJzX2l0ZW1fbG9nbyB7XG4gIHdpZHRoOiA2MCU7XG4gIGhlaWdodDogMTAwcHg7XG4gIG1heC13aWR0aDogMTQwcHg7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gIG9wYWNpdHk6IDE7IH1cblxuW2RhdGEtcy10eXBlPVwicGFydG5lcnNcIl0udl9pcy1zbGlkZXIgLmFjX3BhcnRuZXJzX2NvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB6LWluZGV4OiBpbmhlcml0O1xuICBtYXgtaGVpZ2h0OiAxMDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7IH1cbiAgW2RhdGEtcy10eXBlPVwicGFydG5lcnNcIl0udl9pcy1zbGlkZXIgLmFjX3BhcnRuZXJzX2NvbnRhaW5lci5zbGljay1pbml0aWFsaXplZCB7XG4gICAgbWF4LWhlaWdodDogMTAwcHg7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMTsgfVxuXG5bZGF0YS1zLXR5cGU9XCJwYXJ0bmVyc1wiXS52X2lzLXNsaWRlciBbZGF0YS1zLWFtb3VudC1pdGVtXSB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuW2RhdGEtcy10eXBlPVwicGFydG5lcnNcIl0udl9pcy1zbGlkZXIgW2RhdGEtYm9yZGVyLWJvdHRvbV0ge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgW2RhdGEtcy10eXBlPVwicGFydG5lcnNcIl0udl9pcy1zbGlkZXIgW2RhdGEtcy1hbW91bnQtaXRlbV0ge1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDsgfSB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuW2RhdGEtcy10eXBlPVwicGFydG5lcnNcIl0gLnNsaWNrLXRyYWNrIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4vKiBTRUNUSU9OIENPTlRST0xcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbltkYXRhLXMtaWQ9XCJob21lLXRvcHRhc2tzXCJdIHtcbiAgbWFyZ2luLXRvcDogLTYwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjI7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgIFtkYXRhLXMtaWQ9XCJob21lLXRvcHRhc2tzXCJdIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xMTBweDsgfSB9XG5cbltkYXRhLXMtaWQ9XCJob21lLXNlcnZpY2VzXCJdIHtcbiAgcGFkZGluZy10b3A6IDQwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMjBweDsgfVxuXG4vKiBTVEFURSBISURERU5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnNfaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi8qIFRFWFQgQUxJR05cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmFfdGV4dC1hbGlnbl9sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG5cbi5hX3RleHQtYWxpZ25fY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH1cblxuLmFfdGV4dC1hbGlnbl9yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cblxuLyogRkxFWEJPWCBIRUxQRVJTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5hX2p1c3RpZnlfZmxleC1zdGFydCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XG5cbi5hX2p1c3RpZnlfY2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsgfVxuXG4uYV9qdXN0aWZ5X2ZsZXgtZW5kIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XG5cbi5hX2p1c3RpZnlfc3BhY2UtYXJvdW5kIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDsgfVxuXG4uYV9qdXN0aWZ5X3NwYWNlLWJldHdlZW4ge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsgfVxuXG4uYV9hbGlnbi1pdGVtc19jZW50ZXIge1xuICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7IH1cblxuLmFfYWxpZ24taXRlbXNfZmxleC1zdGFydCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cblxuLmFfYWxpZ24taXRlbXNfZmxleC1lbmQge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQgIWltcG9ydGFudDsgfVxuXG4uYV9mbGV4LWRpcmVjdGlvbl9yb3cge1xuICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7IH1cblxuLmFfZmxleC1kaXJlY3Rpb25fcm93LXJldmVyc2Uge1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDsgfVxuXG4vKiBNQVggV0lEVEhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmFfbWF4LXdpZHRoLWZ1bGwge1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4uYV9tYXgtd2lkdGgtNjAwIHtcbiAgbWF4LXdpZHRoOiA2MDBweCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgYXV0bzsgfVxuXG4uYV9tYXgtd2lkdGgtODAwIHtcbiAgbWF4LXdpZHRoOiA4MDBweCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgYXV0bzsgfVxuXG4uYV9tYXgtd2lkdGgtMTAwMCB7XG4gIG1heC13aWR0aDogMTAwMHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbi5hX21heC13aWR0aC0xMjAwIHtcbiAgbWF4LXdpZHRoOiAxMjAwcHggIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwIGF1dG87IH1cblxuLmFfbWF4LXdpZHRoLTE0MDAge1xuICBtYXgtd2lkdGg6IDE0MDBweCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgYXV0bzsgfVxuXG4uYV9tYXgtd2lkdGgtMTYwMCB7XG4gIG1heC13aWR0aDogMTYwMHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbi5hX21heC13aWR0aC0xODAwIHtcbiAgbWF4LXdpZHRoOiAxODAwcHggIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwIGF1dG87IH1cblxuLmFfbWF4LXdpZHRoLTIwMDAge1xuICBtYXgtd2lkdGg6IDIwMDBweCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgYXV0bzsgfVxuXG4vKiBCQUNLR1JPVU5EIEFUVEFDSE1FTlQgXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgLmFfYmFja2dyb3VuZC1hdHRhY2htZW50X2ZpeGVkIHtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkOyB9IH1cblxuLyogQkFDS0dST1VORCBDT05UQUlOXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5hX2NvbnRhaW4ge1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW4gIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjsgfVxuXG4vKiBCQUNLR1JPVU5EIENPVkVSXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5hX2NvdmVyLWN0IHtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlciAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMCUgIWltcG9ydGFudDsgfVxuXG4uYV9jb3Zlci1jYyB7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXIgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJSAhaW1wb3J0YW50OyB9XG5cbi5hX2NvdmVyLWNiIHtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlciAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMTAwJSAhaW1wb3J0YW50OyB9XG5cbi5hX2NvdmVyLWx0IHtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlciAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSAwJSAhaW1wb3J0YW50OyB9XG5cbi5hX2NvdmVyLWxjIHtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlciAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSA1MCUgIWltcG9ydGFudDsgfVxuXG4uYV9jb3Zlci1sYiB7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXIgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgMTAwJSAhaW1wb3J0YW50OyB9XG5cbi5hX2NvdmVyLXJ0IHtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlciAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDAlICFpbXBvcnRhbnQ7IH1cblxuLmFfY292ZXItcmMge1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlICFpbXBvcnRhbnQ7IH1cblxuLmFfY292ZXItcmIge1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMTAwJSAhaW1wb3J0YW50OyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5hX21lZGl1bS1wb3J0cmFpdF9jb3Zlci1jdCB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDAlICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuYV9tZWRpdW0tcG9ydHJhaXRfY292ZXItY2Mge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5hX21lZGl1bS1wb3J0cmFpdF9jb3Zlci1jYiB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5hX21lZGl1bS1wb3J0cmFpdF9jb3Zlci1sdCB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgMCUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5hX21lZGl1bS1wb3J0cmFpdF9jb3Zlci1sYyB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTAlICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuYV9tZWRpdW0tcG9ydHJhaXRfY292ZXItbGIge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5hX21lZGl1bS1wb3J0cmFpdF9jb3Zlci1ydCB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAwJSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmFfbWVkaXVtLXBvcnRyYWl0X2NvdmVyLXJjIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmFfbWVkaXVtLXBvcnRyYWl0X2NvdmVyLXJiIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gIC5hX21lZGl1bV9jb3Zlci1jdCB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDAlICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9tZWRpdW1fY292ZXItY2Mge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gIC5hX21lZGl1bV9jb3Zlci1jYiB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gIC5hX21lZGl1bV9jb3Zlci1sdCB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgMCUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gIC5hX21lZGl1bV9jb3Zlci1sYyB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTAlICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9tZWRpdW1fY292ZXItbGIge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gIC5hX21lZGl1bV9jb3Zlci1ydCB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAwJSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgLmFfbWVkaXVtX2NvdmVyLXJjIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgLmFfbWVkaXVtX2NvdmVyLXJiIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbi8qIE9QQUNJVFlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmFfb3BhY2l0eS0wIHtcbiAgb3BhY2l0eTogMCAhaW1wb3J0YW50OyB9XG5cbi5hX29wYWNpdHktNSB7XG4gIG9wYWNpdHk6IDAuMDUgIWltcG9ydGFudDsgfVxuXG4uYV9vcGFjaXR5LTEwIHtcbiAgb3BhY2l0eTogMC4xICFpbXBvcnRhbnQ7IH1cblxuLmFfb3BhY2l0eS0yMCB7XG4gIG9wYWNpdHk6IDAuMiAhaW1wb3J0YW50OyB9XG5cbi5hX29wYWNpdHktMzAge1xuICBvcGFjaXR5OiAwLjMgIWltcG9ydGFudDsgfVxuXG4uYV9vcGFjaXR5LTQwIHtcbiAgb3BhY2l0eTogMC40ICFpbXBvcnRhbnQ7IH1cblxuLmFfb3BhY2l0eS01MCB7XG4gIG9wYWNpdHk6IDAuNSAhaW1wb3J0YW50OyB9XG5cbi5hX29wYWNpdHktNjAge1xuICBvcGFjaXR5OiAwLjYgIWltcG9ydGFudDsgfVxuXG4uYV9vcGFjaXR5LTcwIHtcbiAgb3BhY2l0eTogMC43ICFpbXBvcnRhbnQ7IH1cblxuLmFfb3BhY2l0eS04MCB7XG4gIG9wYWNpdHk6IDAuOCAhaW1wb3J0YW50OyB9XG5cbi5hX29wYWNpdHktOTAge1xuICBvcGFjaXR5OiAwLjkgIWltcG9ydGFudDsgfVxuXG4uYV9vcGFjaXR5LTEwMCB7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDsgfVxuXG4vKiBHUkFZU0NBTEVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmFfZ3JheXNjYWxlLTIwIHtcbiAgZmlsdGVyOiBncmF5c2NhbGUoMjAlKSAhaW1wb3J0YW50OyB9XG5cbi5hX2dyYXlzY2FsZS00MCB7XG4gIGZpbHRlcjogZ3JheXNjYWxlKDQwJSkgIWltcG9ydGFudDsgfVxuXG4uYV9ncmF5c2NhbGUtNjAge1xuICBmaWx0ZXI6IGdyYXlzY2FsZSg2MCUpICFpbXBvcnRhbnQ7IH1cblxuLmFfZ3JheXNjYWxlLTgwIHtcbiAgZmlsdGVyOiBncmF5c2NhbGUoODAlKSAhaW1wb3J0YW50OyB9XG5cbi5hX2dyYXlzY2FsZS0xMDAge1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKSAhaW1wb3J0YW50OyB9XG5cbi8qIEJMRU5EIE1PREVTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5hX2JsZW5kLW11bHRpcGx5IHtcbiAgbWl4LWJsZW5kLW1vZGU6IG11bHRpcGx5ICFpbXBvcnRhbnQ7IH1cblxuLmFfYmxlbmQtc2NyZWVuIHtcbiAgbWl4LWJsZW5kLW1vZGU6IHNjcmVlbiAhaW1wb3J0YW50OyB9XG5cbi5hX2JsZW5kLW92ZXJsYXkge1xuICBtaXgtYmxlbmQtbW9kZTogb3ZlcmxheSAhaW1wb3J0YW50OyB9XG5cbi5hX2JsZW5kLWV4Y2x1c2lvbiB7XG4gIG1peC1ibGVuZC1tb2RlOiBleGNsdXNpb24gIWltcG9ydGFudDsgfVxuXG4uYV9ibGVuZC1kaWZmZXJlbmNlIHtcbiAgbWl4LWJsZW5kLW1vZGU6IGRpZmZlcmVuY2UgIWltcG9ydGFudDsgfVxuXG4vKiBTSEFET1dTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5hX2Nhc3Qtc2hhZG93X3RvcCB7XG4gIGJveC1zaGFkb3c6IDBweCAtMTBweCAxMHB4IHJnYmEoMzQsIDM0LCAzNCwgMC4xKSAhaW1wb3J0YW50OyB9XG5cbi8qIE1BUkdJTiBIRUxQRVJTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5hX25vLW1hcmdpbiB7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50OyB9XG5cbi5hX25vLW1hcmdpbi10b3Age1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH1cblxuLmFfbm8tbWFyZ2luLXJpZ2h0IHtcbiAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cblxuLmFfbm8tbWFyZ2luLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxuXG4uYV9uby1tYXJnaW4tbGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cblxuLmFfbWFyZ2luLXRvcC0wIHtcbiAgbWFyZ2luLXRvcDogMHB4ICFpbXBvcnRhbnQ7IH1cblxuLmFfbWFyZ2luLWJvdHRvbS0wIHtcbiAgbWFyZ2luLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7IH1cblxuLmFfbWFyZ2luLXRvcC0xMCB7XG4gIG1hcmdpbi10b3A6IDVweCAhaW1wb3J0YW50OyB9XG5cbi5hX21hcmdpbi1ib3R0b20tMTAge1xuICBtYXJnaW4tYm90dG9tOiA1cHggIWltcG9ydGFudDsgfVxuXG4uYV9tYXJnaW4tdG9wLTIwIHtcbiAgbWFyZ2luLXRvcDogMTBweCAhaW1wb3J0YW50OyB9XG5cbi5hX21hcmdpbi1ib3R0b20tMjAge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7IH1cblxuLmFfbWFyZ2luLXRvcC00MCB7XG4gIG1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDsgfVxuXG4uYV9tYXJnaW4tYm90dG9tLTQwIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweCAhaW1wb3J0YW50OyB9XG5cbi5hX21hcmdpbi10b3AtNjAge1xuICBtYXJnaW4tdG9wOiAzMHB4ICFpbXBvcnRhbnQ7IH1cblxuLmFfbWFyZ2luLWJvdHRvbS02MCB7XG4gIG1hcmdpbi1ib3R0b206IDMwcHggIWltcG9ydGFudDsgfVxuXG4uYV9tYXJnaW4tdG9wLTgwIHtcbiAgbWFyZ2luLXRvcDogNDBweCAhaW1wb3J0YW50OyB9XG5cbi5hX21hcmdpbi1ib3R0b20tODAge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4ICFpbXBvcnRhbnQ7IH1cblxuLmFfbWFyZ2luLXRvcC0xMDAge1xuICBtYXJnaW4tdG9wOiA1MHB4ICFpbXBvcnRhbnQ7IH1cblxuLmFfbWFyZ2luLWJvdHRvbS0xMDAge1xuICBtYXJnaW4tYm90dG9tOiA1MHB4ICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgLmFfbWFyZ2luLXRvcC0wIHtcbiAgICBtYXJnaW4tdG9wOiAwcHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gIC5hX21hcmdpbi1ib3R0b20tMCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9tYXJnaW4tdG9wLTEwIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9tYXJnaW4tYm90dG9tLTEwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9tYXJnaW4tdG9wLTIwIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9tYXJnaW4tYm90dG9tLTIwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9tYXJnaW4tdG9wLTQwIHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9tYXJnaW4tYm90dG9tLTQwIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9tYXJnaW4tdG9wLTYwIHtcbiAgICBtYXJnaW4tdG9wOiA2MHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9tYXJnaW4tYm90dG9tLTYwIHtcbiAgICBtYXJnaW4tYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9tYXJnaW4tdG9wLTgwIHtcbiAgICBtYXJnaW4tdG9wOiA4MHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9tYXJnaW4tYm90dG9tLTgwIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4MHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9tYXJnaW4tdG9wLTEwMCB7XG4gICAgbWFyZ2luLXRvcDogMTAwcHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gIC5hX21hcmdpbi1ib3R0b20tMTAwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMDBweCAhaW1wb3J0YW50OyB9IH1cblxuLyogUEFERElORyBIRUxQRVJTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5hX25vLXBhZGRpbmcge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IH1cblxuLmFfbm8tcGFkZGluZy10b3Age1xuICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50OyB9XG5cbi5hX25vLXBhZGRpbmctcmlnaHQge1xuICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cblxuLmFfbm8tcGFkZGluZy1ib3R0b20ge1xuICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG5cbi5hX25vLXBhZGRpbmctbGVmdCB7XG4gIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyB9XG5cbi5hX3BhZGRpbmctdG9wLTAge1xuICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7IH1cblxuLmFfcGFkZGluZy1ib3R0b20tMCB7XG4gIHBhZGRpbmctYm90dG9tOiAwcHggIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9wYWRkaW5nLXRvcC0wIHtcbiAgICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9wYWRkaW5nLWJvdHRvbS0wIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG4uYV9wYWRkaW5nLXRvcC0xMCB7XG4gIHBhZGRpbmctdG9wOiA1cHggIWltcG9ydGFudDsgfVxuXG4uYV9wYWRkaW5nLWJvdHRvbS0xMCB7XG4gIHBhZGRpbmctYm90dG9tOiA1cHggIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9wYWRkaW5nLXRvcC0xMCB7XG4gICAgcGFkZGluZy10b3A6IDEwcHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gIC5hX3BhZGRpbmctYm90dG9tLTEwIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweCAhaW1wb3J0YW50OyB9IH1cblxuLmFfcGFkZGluZy10b3AtMjAge1xuICBwYWRkaW5nLXRvcDogMTBweCAhaW1wb3J0YW50OyB9XG5cbi5hX3BhZGRpbmctYm90dG9tLTIwIHtcbiAgcGFkZGluZy1ib3R0b206IDEwcHggIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9wYWRkaW5nLXRvcC0yMCB7XG4gICAgcGFkZGluZy10b3A6IDIwcHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gIC5hX3BhZGRpbmctYm90dG9tLTIwIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweCAhaW1wb3J0YW50OyB9IH1cblxuLmFfcGFkZGluZy10b3AtNDAge1xuICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50OyB9XG5cbi5hX3BhZGRpbmctYm90dG9tLTQwIHtcbiAgcGFkZGluZy1ib3R0b206IDIwcHggIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9wYWRkaW5nLXRvcC00MCB7XG4gICAgcGFkZGluZy10b3A6IDQwcHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gIC5hX3BhZGRpbmctYm90dG9tLTQwIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweCAhaW1wb3J0YW50OyB9IH1cblxuLmFfcGFkZGluZy10b3AtNjAge1xuICBwYWRkaW5nLXRvcDogMzBweCAhaW1wb3J0YW50OyB9XG5cbi5hX3BhZGRpbmctYm90dG9tLTYwIHtcbiAgcGFkZGluZy1ib3R0b206IDMwcHggIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9wYWRkaW5nLXRvcC02MCB7XG4gICAgcGFkZGluZy10b3A6IDYwcHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gIC5hX3BhZGRpbmctYm90dG9tLTYwIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNjBweCAhaW1wb3J0YW50OyB9IH1cblxuLmFfcGFkZGluZy10b3AtODAge1xuICBwYWRkaW5nLXRvcDogNDBweCAhaW1wb3J0YW50OyB9XG5cbi5hX3BhZGRpbmctYm90dG9tLTgwIHtcbiAgcGFkZGluZy1ib3R0b206IDQwcHggIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9wYWRkaW5nLXRvcC04MCB7XG4gICAgcGFkZGluZy10b3A6IDgwcHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gIC5hX3BhZGRpbmctYm90dG9tLTgwIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogODBweCAhaW1wb3J0YW50OyB9IH1cblxuLmFfcGFkZGluZy10b3AtMTAwIHtcbiAgcGFkZGluZy10b3A6IDUwcHggIWltcG9ydGFudDsgfVxuXG4uYV9wYWRkaW5nLWJvdHRvbS0xMDAge1xuICBwYWRkaW5nLWJvdHRvbTogNTBweCAhaW1wb3J0YW50OyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gIC5hX3BhZGRpbmctdG9wLTEwMCB7XG4gICAgcGFkZGluZy10b3A6IDEwMHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9wYWRkaW5nLWJvdHRvbS0xMDAge1xuICAgIHBhZGRpbmctYm90dG9tOiAxMDBweCAhaW1wb3J0YW50OyB9IH1cblxuLmFfcGFkZGluZy10b3AtMTIwIHtcbiAgcGFkZGluZy10b3A6IDYwcHggIWltcG9ydGFudDsgfVxuXG4uYV9wYWRkaW5nLWJvdHRvbS0xMjAge1xuICBwYWRkaW5nLWJvdHRvbTogNjBweCAhaW1wb3J0YW50OyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gIC5hX3BhZGRpbmctdG9wLTEyMCB7XG4gICAgcGFkZGluZy10b3A6IDEyMHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9wYWRkaW5nLWJvdHRvbS0xMjAge1xuICAgIHBhZGRpbmctYm90dG9tOiAxMjBweCAhaW1wb3J0YW50OyB9IH1cblxuLmFfcGFkZGluZy10b3AtMTQwIHtcbiAgcGFkZGluZy10b3A6IDcwcHggIWltcG9ydGFudDsgfVxuXG4uYV9wYWRkaW5nLWJvdHRvbS0xNDAge1xuICBwYWRkaW5nLWJvdHRvbTogNzBweCAhaW1wb3J0YW50OyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gIC5hX3BhZGRpbmctdG9wLTE0MCB7XG4gICAgcGFkZGluZy10b3A6IDE0MHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAuYV9wYWRkaW5nLWJvdHRvbS0xNDAge1xuICAgIHBhZGRpbmctYm90dG9tOiAxNDBweCAhaW1wb3J0YW50OyB9IH1cblxuLyogQkFDS0dST1VORCBDT0xPUlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uYV9iZ19icmFuZF9wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UzMDYxMyAhaW1wb3J0YW50OyB9XG5cbi5hX2JnX2JyYW5kX3ByaW1hcnktZGFya2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY3MDMwOSAhaW1wb3J0YW50OyB9XG5cbi5hX2JnX2JyYW5kX3NlY29uZGFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjIgIWltcG9ydGFudDsgfVxuXG4uYV9iZ19icmFuZF9zZWNvbmRhcnktZGFya2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYyAhaW1wb3J0YW50OyB9XG5cbi5hX2JnX2JyYW5kX3RlcnRpYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50OyB9XG5cbi5hX2JnX2JyYW5kX3RlcnRpYXJ5LWRhcmtlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDsgfVxuXG4uYV9iZ19icmFuZF9ibGFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjIyMjIgIWltcG9ydGFudDsgfVxuXG4uYV9iZ19icmFuZF93aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDsgfVxuXG4uYV9iZ19icmFuZF9saWdodC1ncmF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMCAhaW1wb3J0YW50OyB9XG5cbi5hX2JnX2JyYW5kX2xpZ2h0ZXN0LWdyYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZkICFpbXBvcnRhbnQ7IH1cblxuLmFfYmdfZGVmYXVsdF9saWdodCB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmYgIWltcG9ydGFudDsgfVxuXG4uYV9iZ19kZWZhdWx0X2Rhcmsge1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwICFpbXBvcnRhbnQ7IH1cblxuLyogQkFDS0dST1VORCBHUkFESUVOVFNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmFfYmdfZ3JhZGllbnRfYnJhbmRfcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgtMTM1ZGVnLCAjNjcwMzA5LCAjZTMwNjEzKSAhaW1wb3J0YW50OyB9XG5cbi5hX2JnX2dyYWRpZW50X2JyYW5kX3NlY29uZGFyeSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgtMTM1ZGVnLCAjY2NjY2NjLCAjZjJmMmYyKSAhaW1wb3J0YW50OyB9XG5cbi5hX2JnX2dyYWRpZW50X2JyYW5kX3RlcnRpYXJ5IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KC0xMzVkZWcsICMwMDAwMDAsICMwMDAwMDApICFpbXBvcnRhbnQ7IH1cblxuLyogRklMTCBDT0xPUlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uYV9maWxsX2JyYW5kX3ByaW1hcnkgc3ZnIHtcbiAgZmlsbDogI2UzMDYxMyAhaW1wb3J0YW50OyB9XG5cbi5hX2ZpbGxfYnJhbmRfcHJpbWFyeS1kYXJrZXIgc3ZnIHtcbiAgZmlsbDogIzY3MDMwOSAhaW1wb3J0YW50OyB9XG5cbi5hX2ZpbGxfYnJhbmRfc2Vjb25kYXJ5IHN2ZyB7XG4gIGZpbGw6ICNmMmYyZjIgIWltcG9ydGFudDsgfVxuXG4uYV9maWxsX2JyYW5kX3NlY29uZGFyeS1kYXJrZXIgc3ZnIHtcbiAgZmlsbDogI2NjY2NjYyAhaW1wb3J0YW50OyB9XG5cbi5hX2ZpbGxfYnJhbmRfdGVydGlhcnkgc3ZnIHtcbiAgZmlsbDogIzAwMDAwMCAhaW1wb3J0YW50OyB9XG5cbi5hX2ZpbGxfYnJhbmRfdGVydGlhcnktZGFya2VyIHN2ZyB7XG4gIGZpbGw6ICMwMDAwMDAgIWltcG9ydGFudDsgfVxuXG4uYV9maWxsX2JyYW5kX2JsYWNrIHN2ZyB7XG4gIGZpbGw6ICMyMjIyMjIgIWltcG9ydGFudDsgfVxuXG4uYV9maWxsX2JyYW5kX3doaXRlIHN2ZyB7XG4gIGZpbGw6ICNmZmZmZmYgIWltcG9ydGFudDsgfVxuXG4uYV9maWxsX2JyYW5kX2xpZ2h0LWdyYXkgc3ZnIHtcbiAgZmlsbDogI2YwZjBmMCAhaW1wb3J0YW50OyB9XG5cbi5hX2ZpbGxfYnJhbmRfbGlnaHRlc3QtZ3JheSBzdmcge1xuICBmaWxsOiAjZmFmYWZkICFpbXBvcnRhbnQ7IH1cblxuLmFfZmlsbF9kZWZhdWx0IHN2ZyB7XG4gIGZpbGw6ICMwMDAwMDAgIWltcG9ydGFudDsgfVxuXG4uYV9maWxsX2RlZmF1bHRfbGlnaHQgc3ZnIHtcbiAgZmlsbDogI2ZmZmZmZiAhaW1wb3J0YW50OyB9XG5cbi5hX2ZpbGxfZGVmYXVsdF9kYXJrIHN2ZyB7XG4gIGZpbGw6ICMwMDAwMDAgIWltcG9ydGFudDsgfVxuXG4vKiBCT1JERVJTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5hX2JvcmRlci10b3BfYnJhbmRfbGlnaHQtZ3JheSB7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweCAjZjBmMGYwICFpbXBvcnRhbnQ7IH1cblxuLmFfYm9yZGVyLWJvdHRvbV9icmFuZF9saWdodC1ncmF5IHtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNmMGYwZjAgIWltcG9ydGFudDsgfVxuXG4vKiBURVhUIENPTE9SXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5hX3RleHRfYnJhbmRfcHJpbWFyeSAqIHtcbiAgY29sb3I6ICNlMzA2MTMgIWltcG9ydGFudDsgfVxuXG4uYV90ZXh0X2JyYW5kX3ByaW1hcnktZGFya2VyICoge1xuICBjb2xvcjogIzY3MDMwOSAhaW1wb3J0YW50OyB9XG5cbi5hX3RleHRfYnJhbmRfc2Vjb25kYXJ5ICoge1xuICBjb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50OyB9XG5cbi5hX3RleHRfYnJhbmRfc2Vjb25kYXJ5LWRhcmtlciAqIHtcbiAgY29sb3I6ICNjY2NjY2MgIWltcG9ydGFudDsgfVxuXG4uYV90ZXh0X2JyYW5kX3RlcnRpYXJ5ICoge1xuICBjb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50OyB9XG5cbi5hX3RleHRfYnJhbmRfdGVydGlhcnktZGFya2VyICoge1xuICBjb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50OyB9XG5cbi5hX3RleHRfYnJhbmRfYmxhY2sgKiB7XG4gIGNvbG9yOiAjMjIyMjIyICFpbXBvcnRhbnQ7IH1cblxuLmFfdGV4dF9icmFuZF93aGl0ZSAqIHtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDsgfVxuXG4uYV90ZXh0X2JyYW5kX2xpZ2h0LWdyYXkgKiB7XG4gIGNvbG9yOiAjZjBmMGYwICFpbXBvcnRhbnQ7IH1cblxuLmFfdGV4dF9icmFuZF9saWdodGVzdC1ncmF5ICoge1xuICBjb2xvcjogI2ZhZmFmZCAhaW1wb3J0YW50OyB9XG5cbi5hX3RleHRfZGVmYXVsdCAqIHtcbiAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDsgfVxuXG4uYV90ZXh0X2RlZmF1bHRfbGlnaHQgKiB7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7IH1cblxuLmFfdGV4dF9kZWZhdWx0X2RhcmsgKiB7XG4gIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7IH1cblxuLyogRklYRVNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiNicmVhZGNydW1icyB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuW2RhdGEtcy10eXBlPVwiaGVyby1hbHRcIl0ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoLTEzNWRlZywgI2NjY2NjYywgI2YyZjJmMikgIWltcG9ydGFudDsgfVxuICBbZGF0YS1zLXR5cGU9XCJoZXJvLWFsdFwiXSBoMSB7XG4gICAgY29sb3I6ICMyMjIyMjIgIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb24tbGluZTogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiA0cHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiAjZTMwNjEzOyB9XG5cbltkYXRhLXMtdHlwZT1cImhlcm9cIl0gLmFjX2hlcm9fY29udGFpbmVyIHtcbiAgaGVpZ2h0OiA2MHZoO1xuICBtaW4taGVpZ2h0OiAzMDJweDsgfVxuXG4uYV9iZ19icmFuZF9wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UzMDYxMzsgfVxuXG5bZGF0YS1zLXR5cGU9XCJoZXJvLWFsdFwiXSAuYWNfaGVyb19hbHRfY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDBweDsgfVxuXG5bZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5hY19oZXJvX3NsaWRlX2NvbnRlbnRfaW5uZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG4gIGp1c3RpZnktY29udGVudDogbGVmdDtcbiAgcGFkZGluZzogMjBweCAyMHB4IDEwcHggMjBweDtcbiAgd2lkdGg6IDQ1MHB4O1xuICBtYXJnaW4tbGVmdDogLTEwMHB4O1xuICBtYXJnaW4tdG9wOiAzMHB4O1xuICBib3JkZXItdG9wOiAycHggc29saWQgI2UzMDYxMztcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNlMzA2MTM7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICBbZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5hY19oZXJvX3NsaWRlX2NvbnRlbnRfaW5uZXIgaDIsIFtkYXRhLXMtdHlwZT1cImhlcm9cIl0gLmFjX2hlcm9fc2xpZGVfY29udGVudF9pbm5lciBwIHtcbiAgICBjb2xvcjogIzIyMjIyMiAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDM1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIFtkYXRhLXMtdHlwZT1cImhlcm9cIl0gLmFjX2hlcm9fc2xpZGVfY29udGVudF9pbm5lciAuYnV0dG9uLnZfaGFzLWljb24tcmlnaHQge1xuICAgIGJhY2tncm91bmQ6ICNlMzA2MTM7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDAwcHgpIHtcbiAgW2RhdGEtcy10eXBlPVwiaGVyb1wiXSAuYWNfaGVyb19zbGlkZV9jb250ZW50X2lubmVyIHtcbiAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG5cbltkYXRhLXMtdHlwZT1cImhlcm9cIl0gLmFjX2hlcm9fc2xpZGVfY29udGVudF90ZXh0IHtcbiAgLXdlYmtpdC1mbGV4OiAwIDEgMTAwJTtcbiAgLW1zLWZsZXg6IDAgMSAxMDAlO1xuICBmbGV4OiAwIDEgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5hY19pbWFnZS1nYWxsZXJ5X2l0ZW1faW1hZ2VfY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAzMDBweCAhaW1wb3J0YW50OyB9XG5cbltkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXNcIl0gLmFjX2l0ZW1faW1hZ2UtY29udGFpbmVyOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMywgMzEsIDQ5LCAwKSwgcmdiYSgzLCAzMSwgNDksIDAuOCkpOyB9XG5cbltkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXNcIl0gLmFjX2l0ZW1faW1hZ2UtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjsgfVxuXG4uYWNfY29udGVudF8xLTEge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cblxuW2RhdGEtcy1pZD1cIjQ2LTItc2VydmljZXNcIl0gLmFjX2l0ZW1fY29udGVudF9pY29uLCAuYWNfaXRlbV9jb250ZW50X2NvcHktYmVsb3cge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbltkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdIC5hY19jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyNjBweDsgfVxuXG5bZGF0YS1zLWlkPVwiaG9tZS1zZXJ2aWNlc1wiXSB7XG4gIHBhZGRpbmc6IDBweDsgfVxuICBbZGF0YS1zLWlkPVwiaG9tZS1zZXJ2aWNlc1wiXSAuYWNfaXRlbV9jb250ZW50X3RpdGxlIHtcbiAgICBmb250LXNpemU6IDExNSU7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDgwMHB4KSB7XG4gIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdIC5hY19pdGVtIHtcbiAgICBoZWlnaHQ6IDIwMHB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdIC5hY19pdGVtIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IGluaXRpYWw7XG4gICAgZmxleDogMSAwIDQ1JTtcbiAgICBoZWlnaHQ6IDE1MHB4OyB9XG4gICAgW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl0gLmFjX2l0ZW0gLmFjX2l0ZW1faWNvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl0gLmFjX2l0ZW1faWNvbiBzdmcge1xuICBmaWxsOiAjZTMwNjEzOyB9XG5cbi5zZXJ2aWNlLXRlbXBsYXRlLWRlZmF1bHQgW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl0gLmFjX2l0ZW1fY29udGVudF9pY29uIHN2ZyB7XG4gIHN0cm9rZTogIzIyMjIyMjsgfVxuXG4uc2VydmljZS10ZW1wbGF0ZS1kZWZhdWx0IFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdIC5hY19pdGVtX2NvbnRlbnRfaWNvbiB7XG4gIGJhY2tncm91bmQ6ICNmMGYwZjA7IH1cblxuLnNlcnZpY2UtdGVtcGxhdGUtZGVmYXVsdCBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlc1wiXSAuYWNfaXRlbV9jb250ZW50X3RpdGxlIHtcbiAgY29sb3I6ICMyMjIyMjI7IH1cblxuLnNlcnZpY2UtdGVtcGxhdGUtZGVmYXVsdCBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlc1wiXSBhLmFjX2l0ZW06aG92ZXIgLmFjX2l0ZW1fY29udGVudF90aXRsZSB7XG4gIGNvbG9yOiAjMDAwMDAwOyB9XG5cbi5zZXJ2aWNlLXRlbXBsYXRlLWRlZmF1bHQgW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl0gYS5hY19pdGVtOmhvdmVyIC5hY19pdGVtX2ljb24gc3ZnIHtcbiAgZmlsbDogIzY3MDMwOSAhaW1wb3J0YW50OyB9XG5cbi5zZXJ2aWNlLXRlbXBsYXRlLWRlZmF1bHQgW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl0gYS5hY19pdGVtOmhvdmVyIC5hY19pdGVtX2NvbnRlbnRfaWNvbiB7XG4gIGJhY2tncm91bmQ6ICNlMzA2MTM7IH1cblxuLnNlcnZpY2UtdGVtcGxhdGUtZGVmYXVsdCBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlc1wiXSAuYWNfaXRlbV9jb250ZW50X3RpdGxlIHtcbiAgY29sb3I6ICMyMjIyMjIgIWltcG9ydGFudDsgfVxuXG4uc2VydmljZS10ZW1wbGF0ZS1kZWZhdWx0IFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdIC5hY19pdGVtIHtcbiAgaGVpZ2h0OiAxNTBweDsgfVxuXG4uc2VydmljZS10ZW1wbGF0ZS1kZWZhdWx0IFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdIC5hY19pdGVtX2NvbnRlbnRfdGl0bGUge1xuICBmb250LXNpemU6IDExNSU7IH1cblxuLmFjX3RvcHRhc2tzX2NvbnRhaW5lcl9pbm5lciBhOmhvdmVyLCAuYWNfdG9wdGFza3NfY29udGFpbmVyX2lubmVyIGE6Zm9jdXMge1xuICBjb2xvcjogIzY3MDMwOTsgfVxuXG4uYWNfdG9wdGFza3NfaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwO1xuICB0cmFuc2l0aW9uOiB0b3AgZWFzZSAwLjVzOyB9XG5cbi5hY190b3B0YXNrc19pdGVtOmhvdmVyIC5hY190b3B0YXNrc19pdGVtX2NvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6ICNmYWZhZmQ7XG4gIHRvcDogLTVweDsgfVxuICAuYWNfdG9wdGFza3NfaXRlbTpob3ZlciAuYWNfdG9wdGFza3NfaXRlbV9jb250YWluZXIgLmFjX3RvcHRhc2tzX2l0ZW1faWNvbiB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XG4gIC5hY190b3B0YXNrc19pdGVtOmhvdmVyIC5hY190b3B0YXNrc19pdGVtX2NvbnRhaW5lciAuYWNfdG9wdGFza3NfaXRlbV9jb250ZW50X3RpdGxlIHtcbiAgICBjb2xvcjogIzIyMjIyMjsgfVxuXG4uYWNfdG9wdGFza3NfaXRlbV9pbWFnZS1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTMwNjEzOyB9XG5cbi5hY190b3B0YXNrc19pdGVtX2ljb24gc3ZnIHtcbiAgc3Ryb2tlOiAjY2NjY2NjOyB9XG5cbltkYXRhLW0tdHlwZT1cIm1lbnUtMlwiXSB1bC5tZW51LmRyb3Bkb3duIGE6bGFzdC1vZi10eXBlIHtcbiAgZm9udC1zaXplOiAxMHB0ICFpbXBvcnRhbnQ7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZTMwNjEzIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG5cbltkYXRhLW0tdHlwZT1cIm1lbnUtMlwiXSB1bC5pcy1kcm9wZG93bi1zdWJtZW51IGEge1xuICBjb2xvcjogIzIyMjIyMjsgfVxuXG4uYWNfbWVudS0yX2Jhcl9ib3R0b20ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuICB6LWluZGV4OiBhdXRvOyB9XG4gIC5hY19tZW51LTJfYmFyX2JvdHRvbSBhIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG5cbi5hY19tZW51LTJfYmFyX2JvdHRvbV9jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG5cbi5hY19tZW51LTJfYmFyX3RvcCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG5cbi5hY19tZW51LTJfYmFyX3RvcF9jb250YWluZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG5cbi5hY19tZW51LTJfbWFpbl9jb250ZW50IC5idXR0b24ge1xuICBmb250LXNpemU6IDE4cHg7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDkuOTM3NWVtKSB7XG4gIC5hY19tZW51LTJfc3RpY2t5IHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAjbWVudS1tb2JpbGUge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gICAgI21lbnUtbW9iaWxlIGxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW46IDAgMCA1cHggMDtcbiAgICAgIHBhZGRpbmc6IDAgMCA1cHggMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cbiAgICAgICNtZW51LW1vYmlsZSBsaSBhIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgI21lbnUtbW9iaWxlIGxpOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7IH1cbiAgICAjbWVudS1tb2JpbGUgLnN1Yi1tZW51IHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDsgfVxuICAgICAgI21lbnUtbW9iaWxlIC5zdWItbWVudSBsaSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7IH0gfVxuXG4uYnV0dG9uLnZfaGFzLWljb24tbGVmdCAuc3ZnLWNvbnRhaW5lciB7XG4gIG1hcmdpbi1yaWdodDogNXB4OyB9XG5cbltkYXRhLW0tdHlwZT1cIm1lbnUtMlwiXSB1bCNtZW51LXRvcCBhIHtcbiAgY29sb3I6ICNjY2NjY2M7IH1cblxuW2RhdGEtbS10eXBlPVwibWVudS0yXCJdIHVsLm1lbnUuZHJvcGRvd24gYTpsYXN0LW9mLXR5cGUge1xuICBtYXJnaW4tcmlnaHQ6IDAuODRlbTsgfVxuXG4uYWNfbWVudS0yX2xvZ29faW1nIHtcbiAgd2lkdGg6IDE1MHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2U7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMDsgfVxuXG4uYWNfbWVudS0yX2xvZ29fY29udGFpbmVyIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG5cbi5hY19tZW51LTJfbG9nb19saW5rIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBwYWRkaW5nOiAyNXB4IDEwcHggMTBweCAxMHB4O1xuICB0b3A6IC0yMHB4OyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAwMHB4KSB7XG4gIC5hY19tZW51LTJfbG9nb19jb250YWluZXIgLmFjX21lbnUtMl9sb2dvX2xpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxNTBweDtcbiAgICBoZWlnaHQ6IDgwcHg7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9sb2dvL2xvZ29fc21hbGwucG5nXCIpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTUwcHggYXV0bztcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7IH1cbiAgICAuYWNfbWVudS0yX2xvZ29fY29udGFpbmVyIC5hY19tZW51LTJfbG9nb19saW5rIGltZyB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc5MHB4KSB7XG4gIC5hY19tZW51LTJfbG9nb19jb250YWluZXIgLmFjX21lbnUtMl9sb2dvX2xpbmsge1xuICAgIHRvcDogNXB4ICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiA1NXB4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBhdXRvIDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbi5hY19tZW51LTJfc3RpY2t5LmlzLXN0dWNrIC5hY19tZW51LTJfbG9nb19pbWcge1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDE1MHB4ICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogbm9uZTsgfVxuXG4uYWNfbWVudS0yX21haW5fY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5hY19tZW51LTJfbWFpbl9jb250YWluZXIgYSB7XG4gICAgZm9udC1zaXplOiAxNXB4ICFpbXBvcnRhbnQ7IH1cbiAgLmFjX21lbnUtMl9tYWluX2NvbnRhaW5lciAuYWNfbWVudS0yX21lbnUge1xuICAgIG1hcmdpbi1ib3R0b206IDE0cHggIWltcG9ydGFudDsgfVxuICAuYWNfbWVudS0yX21haW5fY29udGFpbmVyIC5idXR0b24ge1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7IH1cblxuLmFjX21lbnUtMl9zdGlja3kuaXMtc3R1Y2sgLmFjX21lbnUtMl9tYWluX2NvbnRhaW5lciAuYnV0dG9uIHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbltkYXRhLXMtaWQ9XCJob21lLXBhcnRuZXJzXCJdIGgyIHtcbiAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IHVuZGVybGluZSAhaW1wb3J0YW50O1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDRweDtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiAjZTMwNjEzOyB9XG5cbmgyIHtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7IH1cblxuaDIuc2VjdGlvbi10aXRsZSB7XG4gIHRleHQtZGVjb3JhdGlvbi1saW5lOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiA0cHg7XG4gIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogI2UzMDYxMzsgfVxuXG4uYWNfaGVhZGluZ190aXRsZSA+IGgxIHtcbiAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IHVuZGVybGluZSAhaW1wb3J0YW50O1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDRweDtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiAjZTMwNjEzOyB9XG5cbi5hY19jb250ZW50X2ZsZXggPiBkaXYge1xuICBmbGV4OiAxOyB9XG5cbltkYXRhLWYtdHlwZT1cImZvb3Rlci0xXCJdIC5hY19mb290ZXJfcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjZjBmMGYwOyB9XG4gIFtkYXRhLWYtdHlwZT1cImZvb3Rlci0xXCJdIC5hY19mb290ZXJfcHJpbWFyeSBoMiB7XG4gICAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IHVuZGVybGluZSAhaW1wb3J0YW50O1xuICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogNHB4O1xuICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogI2UzMDYxMzsgfVxuICBbZGF0YS1mLXR5cGU9XCJmb290ZXItMVwiXSAuYWNfZm9vdGVyX3ByaW1hcnkgLmFjX2Zvb3Rlcl9wcmltYXJ5X2NvbHVtbiB7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogaW5pdGlhbCAhaW1wb3J0YW50OyB9XG4gIFtkYXRhLWYtdHlwZT1cImZvb3Rlci0xXCJdIC5hY19mb290ZXJfcHJpbWFyeSAuYWxpZ25ub25lIHtcbiAgICB3aWR0aDogOTAlO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW46IC0xMDBweCAwIDAgMDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OS45Mzc1ZW0pIHtcbiAgW2RhdGEtZi10eXBlPVwiZm9vdGVyLTFcIl0gLmFjX2Zvb3Rlcl9wcmltYXJ5X2NvbHVtbjpudGgtY2hpbGQoNCkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICBbZGF0YS1mLXR5cGU9XCJmb290ZXItMVwiXSAuYWNfZm9vdGVyX3ByaW1hcnlfY29sdW1uOm50aC1jaGlsZCgzKSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG5cbi5tYWluLWNvbnRhaW5lciBbZGF0YS1zLXR5cGU9XCJzZWN0aW9uLWNvbnRlbnRcIl0gYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBjb2xvcjogI2UzMDYxMzsgfVxuXG5bZGF0YS1zLXR5cGU9XCJuZXdzXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9jb250ZW50X2NvcHktYWJvdmUge1xuICBjb2xvcjogIzk5OTk5OTsgfVxuXG5bZGF0YS1zLXR5cGU9XCJuZXdzXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9jb250ZW50X3RpdGxlIHtcbiAgY29sb3I6ICM5OTk5OTk7IH1cblxuW2RhdGEtcy10eXBlPVwibmV3c1wiXVtkYXRhLXMtYW1vdW50PVwiM1wiXSAuYWNfaXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAwMHB4KSB7XG4gIFtkYXRhLXMtaWQ9XCJhY3R1ZWVsLW5ld3NcIl1bZGF0YS1zLWFtb3VudD1cIjNcIl0gLmFjX2l0ZW06bnRoLWNoaWxkKDEpIHtcbiAgICB3aWR0aDogMzAlO1xuICAgIG1heC13aWR0aDogMzAlOyB9IH1cblxuaW5wdXRbdHlwZT1cInJhZGlvXCIgaV0ge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50OyB9XG5cbi5nZm9ybV93cmFwcGVyIHVsLmdmaWVsZF9jaGVja2JveCBsaSwgLmdmb3JtX3dyYXBwZXIgdWwuZ2ZpZWxkX3JhZGlvIGxpIHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4ICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGlubGluZTsgfVxuXG4uZ2Zvcm1fd3JhcHBlciB1bC5nZmllbGRfY2hlY2tib3gsIC5nZm9ybV93cmFwcGVyIHVsLmdmaWVsZF9yYWRpbyB7XG4gIG1hcmdpbi10b3A6IC0yNnB4ICFpbXBvcnRhbnQ7IH1cbiIsIi8qIEZPTlRTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbkBpbXBvcnQgdXJsKGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1NZXJyaXdlYXRoZXI6MzAwLDQwMCw2MDAsNzAwfE1vbnRzZXJyYXQ6MjAwLDMwMCw0MDAsNjAwKTtcblxuJGRlZmF1bHQtZm9udC1mYW1pbHktaGVhZGluZ3M6ICdNb250c2VycmF0JywgQXJpYWwsIHNhbnMtc2VyaWY7XG4kZGVmYXVsdC1mb250LXdlaWdodC1oZWFkaW5nczogNDAwO1xuXG4kZGVmYXVsdC1mb250LWZhbWlseS1ib2R5OiAnTWVycml3ZWF0aGVyJyxBcmlhbCwgc2Fucy1zZXJpZjtcbiRkZWZhdWx0LWZvbnQtZmFtaWx5LWJvZHktd2VpZ2h0OiA0MDA7XG4kZGVmYXVsdC1mb250LWZhbWlseS1ib2R5LXdlaWdodC1ib2xkOiA3MDA7XG5cbkBtaXhpbiBmb250LWhlYWRpbmdzLWxpZ2h0KCkge1xuICAgIGZvbnQtZmFtaWx5OiAkZGVmYXVsdC1mb250LWZhbWlseS1oZWFkaW5ncztcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbkBtaXhpbiBmb250LWhlYWRpbmdzLXJlZ3VsYXIoKSB7XG4gICAgZm9udC1mYW1pbHk6JGRlZmF1bHQtZm9udC1mYW1pbHktaGVhZGluZ3M7XG4gICAgZm9udC13ZWlnaHQ6ICRkZWZhdWx0LWZvbnQtd2VpZ2h0LWhlYWRpbmdzO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbkBtaXhpbiBmb250LWhlYWRpbmdzLWJvbGQoKSB7XG4gICAgZm9udC1mYW1pbHk6ICRkZWZhdWx0LWZvbnQtZmFtaWx5LWhlYWRpbmdzO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AbWl4aW4gZm9udC1ib2R5LWxpZ2h0KCkge1xuICAgIGZvbnQtZmFtaWx5OiAkZGVmYXVsdC1mb250LWZhbWlseS1ib2R5O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuQG1peGluIGZvbnQtYm9keS1yZWd1bGFyKCkge1xuICAgIGZvbnQtZmFtaWx5OiAkZGVmYXVsdC1mb250LWZhbWlseS1ib2R5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZGVmYXVsdC1mb250LWZhbWlseS1ib2R5LXdlaWdodDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5AbWl4aW4gZm9udC1ib2R5LWJvbGQoKSB7XG4gICAgZm9udC1mYW1pbHk6ICRkZWZhdWx0LWZvbnQtZmFtaWx5LWJvZHk7XG4gICAgZm9udC13ZWlnaHQ6ICRkZWZhdWx0LWZvbnQtZmFtaWx5LWJvZHktd2VpZ2h0LWJvbGQ7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5cbiIsIi8qIFZBUklBQkxFU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKlxuICAgIEJSQU5EIENPTE9SU1xuKi9cblxuJGJyYW5kLXByaW1hcnk6ICNlMzA2MTM7IFxuJGJyYW5kLXByaW1hcnktZGFya2VyOiBkYXJrZW4oJGJyYW5kLXByaW1hcnksIDI1JSk7IFxuXG4kYnJhbmQtc2Vjb25kYXJ5OiAjZjJmMmYyOyBcbiRicmFuZC1zZWNvbmRhcnktZGFya2VyOiBkYXJrZW4oJGJyYW5kLXNlY29uZGFyeSwgMTUlKTsgXG5cbiRicmFuZC10ZXJ0aWFyeTojMDAwMDAwO1xuJGJyYW5kLXRlcnRpYXJ5LWRhcmtlcjogIzAwMDAwMDtcblxuJGJyYW5kLXdoaXRlOiAjZmZmZmZmO1xuJGJyYW5kLWJsYWNrOiAjMjIyMjIyOyBcbiRicmFuZC1kYXJrZXN0LWdyYXk6ICM0NDQ0NDQ7XG4kYnJhbmQtZGFyay1ncmF5OiAjNjY2NjY2O1xuJGJyYW5kLWdyYXk6ICM5OTk5OTk7XG4kYnJhbmQtbGlnaHQtZ3JheTogI2YwZjBmMDtcbiRicmFuZC1saWdodGVzdC1ncmF5OiAjZmFmYWZkO1xuXG4vLyBmb3IgYWRqdXN0bWVudCBjbGFzc2VzIGdlbmVyYXRpb25cbiRicmFuZC1jb2xvci1saXN0OiAgKFxuICAgIHByaW1hcnk6ICRicmFuZC1wcmltYXJ5LFxuICAgIHByaW1hcnktZGFya2VyOiAkYnJhbmQtcHJpbWFyeS1kYXJrZXIsXG4gICAgc2Vjb25kYXJ5OiAkYnJhbmQtc2Vjb25kYXJ5LFxuICAgIHNlY29uZGFyeS1kYXJrZXI6ICRicmFuZC1zZWNvbmRhcnktZGFya2VyLCBcbiAgICB0ZXJ0aWFyeTogJGJyYW5kLXRlcnRpYXJ5LCBcbiAgICB0ZXJ0aWFyeS1kYXJrZXI6ICRicmFuZC10ZXJ0aWFyeS1kYXJrZXIsXG4gICAgYmxhY2s6ICRicmFuZC1ibGFjaywgXG4gICAgd2hpdGU6ICRicmFuZC13aGl0ZSwgXG4gICAgbGlnaHQtZ3JheTogJGJyYW5kLWxpZ2h0LWdyYXksXG4gICAgbGlnaHRlc3QtZ3JheTogJGJyYW5kLWxpZ2h0ZXN0LWdyYXlcbik7XG5cblxuJGJyYW5kLWJhY2tncm91bmQtcHJpbWFyeTogbGluZWFyLWdyYWRpZW50KC0xMzVkZWcsICRicmFuZC1wcmltYXJ5LWRhcmtlciwgJGJyYW5kLXByaW1hcnkpO1xuJGJyYW5kLWJhY2tncm91bmQtc2Vjb25kYXJ5OiBsaW5lYXItZ3JhZGllbnQoLTEzNWRlZywgJGJyYW5kLXNlY29uZGFyeS1kYXJrZXIsICRicmFuZC1zZWNvbmRhcnkpO1xuJGJyYW5kLWJhY2tncm91bmQtdGVydGlhcnk6IGxpbmVhci1ncmFkaWVudCgtMTM1ZGVnLCAkYnJhbmQtdGVydGlhcnktZGFya2VyLCAkYnJhbmQtdGVydGlhcnkpO1xuXG4kYnJhbmQtYmFja2dyb3VuZC1wcmltYXJ5LXJldmVyc2VkOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAkYnJhbmQtcHJpbWFyeS1kYXJrZXIsICRicmFuZC1wcmltYXJ5KTtcbiRicmFuZC1iYWNrZ3JvdW5kLXNlY29uZGFyeS1yZXZlcnNlZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgJGJyYW5kLXNlY29uZGFyeS1kYXJrZXIsICRicmFuZC1zZWNvbmRhcnkpO1xuJGJyYW5kLWJhY2tncm91bmQtdGVydGlhcnktcmV2ZXJzZWQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICRicmFuZC10ZXJ0aWFyeS1kYXJrZXIsICRicmFuZC10ZXJ0aWFyeSk7XG5cbi8vIGZvciBhZGp1c3RtZW50IGNsYXNzZXMgZ2VuZXJhdGlvblxuJGJyYW5kLWdyYWRpZW50LWxpc3Q6ICAoXG4gICAgcHJpbWFyeTogJGJyYW5kLWJhY2tncm91bmQtcHJpbWFyeSxcbiAgICBzZWNvbmRhcnk6ICRicmFuZC1iYWNrZ3JvdW5kLXNlY29uZGFyeSxcbiAgICB0ZXJ0aWFyeTogJGJyYW5kLWJhY2tncm91bmQtdGVydGlhcnksIFxuKTtcblxuXG4vKlxuICAgIERFRkFVTFRTXG4qL1xuXG4kZGVmYXVsdC1wYWRkaW5nOiAyMHB4O1xuJGRlZmF1bHQtYm9yZGVyLXJhZGl1czogNnB4Oy8vIDZweFxuJGRlZmF1bHQtdHJhbnNpdGlvbi1zcGVlZDogLjNzIGVhc2U7XG4kZGVmYXVsdC1ib3gtc2hhZG93OiA1cHggNXB4IDEwcHggcmdiYShibGFjaywgLjEpO1xuXG4kZGVmYXVsdC10ZXh0LWNvbG9yOiAkYnJhbmQtdGVydGlhcnktZGFya2VyO1xuJGRlZmF1bHQtdGV4dC1jb2xvci1saWdodDogJGJyYW5kLXdoaXRlO1xuJGRlZmF1bHQtdGV4dC1jb2xvci1kYXJrOiAkYnJhbmQtdGVydGlhcnktZGFya2VyO1xuXG4kZGVmYXVsdC1pY29uLWNvbG9yOiAkYnJhbmQtdGVydGlhcnktZGFya2VyO1xuJGRlZmF1bHQtaWNvbi1jb2xvci1saWdodDogJGJyYW5kLXdoaXRlO1xuJGRlZmF1bHQtaWNvbi1jb2xvci1kYXJrOiAkYnJhbmQtdGVydGlhcnktZGFya2VyO1xuXG4kZGVmYXVsdC1iYWNrZ3JvdW5kLWxpZ2h0OiAkYnJhbmQtd2hpdGU7XG4kZGVmYXVsdC1iYWNrZ3JvdW5kLWRhcms6ICRicmFuZC10ZXJ0aWFyeS1kYXJrZXI7XG5cbiRkZWZhdWx0LWJvcmRlci1jb2xvcjogcmdiYSgkYnJhbmQtZGFyay1ncmF5LCAuMik7ICBcbiRkZWZhdWx0LWJvcmRlcjogc29saWQgMXB4ICRkZWZhdWx0LWJvcmRlci1jb2xvcjtcblxuXG4vKlxuICAgIE9USEVSIFZBUklBQkxFU1xuKi9cblxuLy8gU1ZHXG4kc3ZnLWljb24tc2V0LXR5cGU6ICdmaWxsJzsgLy8gc3Ryb2tlIG9yIGZpbGwuIFxuXG4vLyBNQVggQ09OVEVOVCBXSURUSFxuJG1heC1jb250ZW50LTYwMDogNjAwcHg7XG4kbWF4LWNvbnRlbnQtODAwOiA4MDBweDtcbiRtYXgtY29udGVudC0xMDAwOiAxMDAwcHg7XG4kbWF4LWNvbnRlbnQtMTEwMDogMTEwMHB4O1xuJG1heC1jb250ZW50LTEyMDA6IDEyMDBweDtcbiRtYXgtY29udGVudC0xNDAwOiAxNDAwcHg7XG4kbWF4LWNvbnRlbnQtMTYwMDogMTYwMHB4O1xuXG5cbi8qXG4gICAgTElTVCBGT1IgREVGQVVMVCBCRyBDT0xPUiBHRU5FUkFUSU9OXG4qL1xuXG4kZGVmYXVsdC1iZy1saXN0OiAgKFxuICAgIGRlZmF1bHRfbGlnaHQ6ICRkZWZhdWx0LWJhY2tncm91bmQtbGlnaHQsXG4gICAgZGVmYXVsdF9kYXJrOiAkZGVmYXVsdC1iYWNrZ3JvdW5kLWRhcmssXG4pO1xuXG5cbi8qXG4gICAgTElTVCBGT1IgREVGQVVMVCBGT05UIENPTE9SIEdFTkVSQVRJT05cbiovXG5cbiRkZWZhdWx0LXRleHQtY29sb3ItbGlzdDogIChcbiAgICBkZWZhdWx0OiAkZGVmYXVsdC10ZXh0LWNvbG9yLFxuICAgIGRlZmF1bHRfbGlnaHQ6ICRkZWZhdWx0LXRleHQtY29sb3ItbGlnaHQsXG4gICAgZGVmYXVsdF9kYXJrOiAkZGVmYXVsdC10ZXh0LWNvbG9yLWRhcmssXG4pO1xuXG5cbi8qXG4gICAgTElTVCBGT1IgREVGQVVMVCBGSUxMIENPTE9SIEdFTkVSQVRJT05cbiovXG5cbiRkZWZhdWx0LWZpbGwtY29sb3ItbGlzdDogIChcbiAgICBkZWZhdWx0OiAkZGVmYXVsdC1pY29uLWNvbG9yLFxuICAgIGRlZmF1bHRfbGlnaHQ6ICRkZWZhdWx0LWljb24tY29sb3ItbGlnaHQsXG4gICAgZGVmYXVsdF9kYXJrOiAkZGVmYXVsdC1pY29uLWNvbG9yLWRhcmssXG4pO1xuXG5cbiIsIi8qIEZVTkNUSU9OU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuIiwiLyogTUlYSU5TXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbkBpbXBvcnQgJ21peGlucy9mYW1pbHknO1xuXG5AaW1wb3J0ICdtaXhpbnMvYm90dG9tLWl0ZW1zLW5vLWJvcmRlcic7XG5AaW1wb3J0ICdtaXhpbnMvYm9yZGVyLXJlc3BvbnNpdmVuZXNzJztcbkBpbXBvcnQgJ21peGlucy9jb250ZW50LWFsaWdubWVudCc7XG5AaW1wb3J0ICdtaXhpbnMvZHJhdy1hcnJvdyc7XG5AaW1wb3J0ICdtaXhpbnMvZmluZC1jb250cmFzdCc7XG5cbiIsIi8qIE1JWElOIC0gQk9UVE9NIElURU1TIE5PIEJPUkRFUiBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIFJlbW92ZXMgYm9yZGVyIGJvdHRvbSBmcm9tIGxhc3QgaXRlbXMgaW4gYSBncmlkXG5cbiovXG5cblxuQG1peGluIGJvdHRvbS1pdGVtcy1uby1ib3JkZXIoJHBhdHRlcm4pIHtcbiAgICBcbiAgICAvL1xuICAgIC8vICAgICAgUzEgdmVyc2lvbnNcbiAgICAvL1xuXG4gICAgQGlmKCRwYXR0ZXJuID09ICdTMS1NUDInKXsgXG4gICAgICAgICZbZGF0YS1zLWFtb3VudD1cIjJcIl0ge1xuICAgICAgICAgICAgW2RhdGEtcy1hbW91bnQtaXRlbV0geyBcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbGFzdCgxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBbZGF0YS1ib3JkZXItYm90dG9tXSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0tcG9ydHJhaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbGFzdCgyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBbZGF0YS1ib3JkZXItYm90dG9tXSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYoJHBhdHRlcm4gPT0gJ1MxLU1QMi1MMycpeyBcbiAgICAgICAgJltkYXRhLXMtYW1vdW50PVwiM1wiXSB7XG4gICAgICAgICAgICBbZGF0YS1zLWFtb3VudC1pdGVtXSB7IFxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBsYXN0KDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhLWJvcmRlci1ib3R0b21dIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCkge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBsYXN0KDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhLWJvcmRlci1ib3R0b21dIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBsYXN0KDMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhLWJvcmRlci1ib3R0b21dIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZigkcGF0dGVybiA9PSAnUzEtTVAyLUw0Jyl7IFxuICAgICAgICAmW2RhdGEtcy1hbW91bnQ9XCI0XCJdIHtcbiAgICAgICAgICAgIFtkYXRhLXMtYW1vdW50LWl0ZW1dIHsgXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxhc3QoMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGEtYm9yZGVyLWJvdHRvbV0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0KSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxhc3QoMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGEtYm9yZGVyLWJvdHRvbV0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbGFzdCg0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBbZGF0YS1ib3JkZXItYm90dG9tXSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIEBpZigkcGF0dGVybiA9PSAnUzEtTVAyLUw1Jyl7IFxuICAgICAgICAmW2RhdGEtcy1hbW91bnQ9XCI1XCJdIHtcbiAgICAgICAgICAgIFtkYXRhLXMtYW1vdW50LWl0ZW1dIHsgXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxhc3QoMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGEtYm9yZGVyLWJvdHRvbV0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0KSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxhc3QoMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGEtYm9yZGVyLWJvdHRvbV0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbGFzdCg1KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBbZGF0YS1ib3JkZXItYm90dG9tXSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvL1xuICAgIC8vICAgICAgUzIgdmVyc2lvbnNcbiAgICAvL1xuXG4gICAgQGlmKCRwYXR0ZXJuID09ICdTMicpeyBcbiAgICAgICAgJltkYXRhLXMtYW1vdW50PVwiMlwiXSB7XG4gICAgICAgICAgICBbZGF0YS1zLWFtb3VudC1pdGVtXSB7IFxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxhc3QoMikge1xuICAgICAgICAgICAgICAgICAgICBbZGF0YS1ib3JkZXItYm90dG9tXSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZigkcGF0dGVybiA9PSAnUzItTTMnIG9yICRwYXR0ZXJuID09ICdTMi1NUDItTDMnKXsgXG4gICAgICAgICZbZGF0YS1zLWFtb3VudD1cIjNcIl0ge1xuICAgICAgICAgICAgW2RhdGEtcy1hbW91bnQtaXRlbV0geyBcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCBkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxhc3QoMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGEtYm9yZGVyLWJvdHRvbV0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxhc3QoMykge1xuICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGEtYm9yZGVyLWJvdHRvbV0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmKCRwYXR0ZXJuID09ICdTMi1MNCcgb3IgJHBhdHRlcm4gPT0gJ1MyLU1QMi1MNCcpeyBcbiAgICAgICAgJltkYXRhLXMtYW1vdW50PVwiNFwiXSB7XG4gICAgICAgICAgICBbZGF0YS1zLWFtb3VudC1pdGVtXSB7IFxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbGFzdCgyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBbZGF0YS1ib3JkZXItYm90dG9tXSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBsYXN0KDQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhLWJvcmRlci1ib3R0b21dIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZigkcGF0dGVybiA9PSAnUzItTDUnIG9yICRwYXR0ZXJuID09ICdTMi1NUDItTDUnKXsgXG4gICAgICAgICZbZGF0YS1zLWFtb3VudD1cIjVcIl0ge1xuICAgICAgICAgICAgW2RhdGEtcy1hbW91bnQtaXRlbV0geyBcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxhc3QoMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGEtYm9yZGVyLWJvdHRvbV0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbGFzdCg1KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBbZGF0YS1ib3JkZXItYm90dG9tXSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn0iLCIvKiBNSVhJTiAtIEJPUkRFUiBSRVNQT05TSVZFTkVTU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgVGhpcyBtaXhpbiBjYWxjdWxhdGVzIHRoZSB0cmFucGFyZW50IGJvcmRlcnMgb24gZ3JpZHMsIHNvIHlvdSBoYXZlIGJvcmRlcnMgYmV0d2VlbiBpdGVtcywgYnV0IG5vdCBvbiB0aGUgbGVmdCBzaWRlLiBcbiAgICBJdCBhY2NlcHRzIGEgcGF0dGVybiwgKFMxLU1QMiksIHdoaWNoIG1lYW5zIG9uIHNtYWxsIDEgaXRlbSBwZXIgcm93LCBvbiBtZWRpdW0tcG9ydHJhaXQgMiwgZXRjLiBcbiAgICBUaGUgZmlyc3QgaXRlbSBjYW4gYmUgc2V0IGFzIGxhcmdlIGFuZCB0aGVyZWZvcmUgMTAwJSB3aWR0aCBvZiBwYXJlbnQgY29udGFpbmVyIHNpemUuXG5cbiovXG5cblxuQG1peGluIGJvcmRlci1yZXNwb25zaXZlbmVzcygkcGF0dGVybiwgJGZpcnN0LWl0ZW0tbGFyZ2U6IGZhbHNlKSB7XG5cbiAgICAvL1xuICAgIC8vICAgICAgUzEgdmVyc2lvbnNcbiAgICAvL1xuXG4gICAgQGlmKCRwYXR0ZXJuID09ICdTMScpeyBcbiAgICAgICAgJltkYXRhLXMtYW1vdW50PVwiMVwiXSB7XG4gICAgICAgICAgICBbZGF0YS1zLWFtb3VudC1pdGVtXSB7IFxuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZigkcGF0dGVybiA9PSAnUzEtTVAyJyl7IFxuICAgICAgICBAaWYgJGZpcnN0LWl0ZW0tbGFyZ2UgPT0gdHJ1ZSB7XG4gICAgICAgICAgICAmW2RhdGEtcy1hbW91bnQ9XCIyXCJdIHtcbiAgICAgICAgICAgICAgICBbZGF0YS1zLWFtb3VudC1pdGVtXSB7IFxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0tcG9ydHJhaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4rMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAmW2RhdGEtcy1hbW91bnQ9XCIyXCJdIHtcbiAgICAgICAgICAgICAgICBbZGF0YS1zLWFtb3VudC1pdGVtXSB7IFxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0tcG9ydHJhaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgQGlmKCRwYXR0ZXJuID09ICdTMS1NUDItTTMnKXsgXG4gICAgICAgIEBpZiAkZmlyc3QtaXRlbS1sYXJnZSA9PSB0cnVlIHtcbiAgICAgICAgICAgICZbZGF0YS1zLWFtb3VudD1cIjNcIl0ge1xuICAgICAgICAgICAgICAgIFtkYXRhLXMtYW1vdW50LWl0ZW1dIHsgXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCBvbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoM24rMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMSksXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDNuKzIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJltkYXRhLXMtYW1vdW50PVwiM1wiXSB7XG4gICAgICAgICAgICAgICAgW2RhdGEtcy1hbW91bnQtaXRlbV0geyBcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0IG9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDNuKzEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYoJHBhdHRlcm4gPT0gJ1MxLU1QMi1NMy1MNCcpeyBcbiAgICAgICAgQGlmICRmaXJzdC1pdGVtLWxhcmdlID09IHRydWUge1xuICAgICAgICAgICAgJltkYXRhLXMtYW1vdW50PVwiNFwiXSB7XG4gICAgICAgICAgICAgICAgW2RhdGEtcy1hbW91bnQtaXRlbV0geyBcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0IG9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMiksXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgzbisxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIG9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMiksXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgzbisxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMiksXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCg0bisyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICZbZGF0YS1zLWFtb3VudD1cIjRcIl0ge1xuICAgICAgICAgICAgICAgIFtkYXRhLXMtYW1vdW50LWl0ZW1dIHsgXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCBvbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybisxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIG9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDNuKzEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoNG4rMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZigkcGF0dGVybiA9PSAnUzEtTVAyLUw0Jyl7IFxuICAgICAgICBAaWYgJGZpcnN0LWl0ZW0tbGFyZ2UgPT0gdHJ1ZSB7XG4gICAgICAgICAgICAmW2RhdGEtcy1hbW91bnQ9XCI0XCJdIHtcbiAgICAgICAgICAgICAgICBbZGF0YS1zLWFtb3VudC1pdGVtXSB7IFxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0tcG9ydHJhaXQgb25seSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMSksXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDNuKzEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMSksXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDNuKzEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMSksXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDRuKzIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJltkYXRhLXMtYW1vdW50PVwiNFwiXSB7XG4gICAgICAgICAgICAgICAgW2RhdGEtcy1hbW91bnQtaXRlbV0geyBcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0IG9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4rMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCg0bisxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBAaWYoJHBhdHRlcm4gPT0gJ1MxLU1QMi1MNScpeyBcbiAgICAgICAgQGlmICRmaXJzdC1pdGVtLWxhcmdlID09IHRydWUge1xuICAgICAgICAgICAgJltkYXRhLXMtYW1vdW50PVwiNVwiXSB7XG4gICAgICAgICAgICAgICAgW2RhdGEtcy1hbW91bnQtaXRlbV0geyBcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoM24rMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoNW4rMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAmW2RhdGEtcy1hbW91bnQ9XCI1XCJdIHtcbiAgICAgICAgICAgICAgICBbZGF0YS1zLWFtb3VudC1pdGVtXSB7IFxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0tcG9ydHJhaXQgb25seSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4rMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCg1bisxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIC8vXG4gICAgLy8gICAgICBTMiB2ZXJzaW9uc1xuICAgIC8vXG4gICAgXG4gICAgQGlmKCRwYXR0ZXJuID09ICdTMicgb3IgJHBhdHRlcm4gPT0gJ1MyLU1QMicpeyBcbiAgICAgICAgQGlmICRmaXJzdC1pdGVtLWxhcmdlID09IHRydWUge1xuICAgICAgICAgICAgJltkYXRhLXMtYW1vdW50PVwiMlwiXSB7XG4gICAgICAgICAgICAgICAgW2RhdGEtcy1hbW91bnQtaXRlbV0geyBcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMSksXG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuKzIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAmW2RhdGEtcy1hbW91bnQ9XCIyXCJdIHtcbiAgICAgICAgICAgICAgICBbZGF0YS1zLWFtb3VudC1pdGVtXSB7IFxuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybisxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gXG4gICAgfVxuXG4gICAgQGlmKCRwYXR0ZXJuID09ICdTMi1NMycgb3IgJHBhdHRlcm4gPT0gJ1MyLU1QMi1NMycpeyAgXG4gICAgICAgIEBpZiAkZmlyc3QtaXRlbS1sYXJnZSA9PSB0cnVlIHtcbiAgICAgICAgICAgICZbZGF0YS1zLWFtb3VudD1cIjNcIl0ge1xuICAgICAgICAgICAgICAgIFtkYXRhLXMtYW1vdW50LWl0ZW1dIHsgXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0IGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMiksXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybisyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoM24rMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAmW2RhdGEtcy1hbW91bnQ9XCIzXCJdIHtcbiAgICAgICAgICAgICAgICBbZGF0YS1zLWFtb3VudC1pdGVtXSB7IFxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCBkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybisxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgzbisxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmKCRwYXR0ZXJuID09ICdTMi1MNCcgb3IgJHBhdHRlcm4gPT0gJ1MyLU1QMi1MNCcpeyBcbiAgICAgICAgQGlmICRmaXJzdC1pdGVtLWxhcmdlID09IHRydWUge1xuICAgICAgICAgICAgJltkYXRhLXMtYW1vdW50PVwiNFwiXSB7XG4gICAgICAgICAgICAgICAgW2RhdGEtcy1hbW91bnQtaXRlbV0geyBcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMSksXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuKzIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMSksXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDRuKzIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJltkYXRhLXMtYW1vdW50PVwiNFwiXSB7XG4gICAgICAgICAgICAgICAgW2RhdGEtcy1hbW91bnQtaXRlbV0geyBcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4rMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCg0bisxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmKCRwYXR0ZXJuID09ICdTMi1MNScpeyBcbiAgICAgICAgQGlmICRmaXJzdC1pdGVtLWxhcmdlID09IHRydWUge1xuICAgICAgICAgICAgJltkYXRhLXMtYW1vdW50PVwiNVwiXSB7XG4gICAgICAgICAgICAgICAgW2RhdGEtcy1hbW91bnQtaXRlbV0geyBcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0IG9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMiksXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgzbisxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIG9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMiksXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgzbisxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMiksXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCg1bisyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICZbZGF0YS1zLWFtb3VudD1cIjVcIl0ge1xuICAgICAgICAgICAgICAgIFtkYXRhLXMtYW1vdW50LWl0ZW1dIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4rMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCg1bisxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIFxuXG59IiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbm1peGluIHRoYXQgY2FsY3VsYXRlcyBpZiB0ZXh0IG5lZWRzIHRvIGJlIGxpZ2h0IG9yIGRhcmtcbmRlcGVuZGluZyBvbiB0aGUgYmFja2dyb3VuZCBjb2xvciBwYXNzZWQuXG5cbkZyb20gdGhpcyBXM0MgZG9jdW1lbnQ6IGh0dHA6Ly93d3cud2VibWFzdGVyd29ybGQuY29tL3IuY2dpP2Y9ODgmZD05NzY5JnVybD1odHRwOi8vd3d3LnczLm9yZy9UUi9BRVJUI2NvbG9yLWNvbnRyYXN0XG5cdFx0XHRcbkNvbG9yIGJyaWdodG5lc3MgaXMgZGV0ZXJtaW5lZCBieSB0aGUgZm9sbG93aW5nIGZvcm11bGE6IFxuKChSZWQgdmFsdWUgWCAyOTkpICsgKEdyZWVuIHZhbHVlIFggNTg3KSArIChCbHVlIHZhbHVlIFggMTE0KSkgLyAxMDAwXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5AZnVuY3Rpb24gZmluZC1jb250cmFzdCgkbikge1xuICAkY29sb3ItYnJpZ2h0bmVzczogcm91bmQoKHJlZCgkbikgKiAyOTkpICsgKGdyZWVuKCRuKSAqIDU4NykgKyAoYmx1ZSgkbikgKiAxMTQpIC8gMTAwMCk7XG4gICRsaWdodC1jb2xvcjogcm91bmQoKHJlZCgjZmZmZmZmKSAqIDI5OSkgKyAoZ3JlZW4oI2ZmZmZmZikgKiA1ODcpICsgKGJsdWUoI2ZmZmZmZikgKiAxMTQpIC8gMTAwMCk7XG4gIFxuICBAaWYgYWJzKCRjb2xvci1icmlnaHRuZXNzKSA8ICgkbGlnaHQtY29sb3IvMil7XG4gICAgQHJldHVybiAkZGVmYXVsdC10ZXh0LWNvbG9yLWxpZ2h0O1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJGRlZmF1bHQtdGV4dC1jb2xvci1kYXJrO1xuICB9XG59XG5cbiIsIi8qKlxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuICogVmVyc2lvbiA2LjMuMVxuICogZm91bmRhdGlvbi56dXJiLmNvbVxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cblxuLy8gRGVwZW5kZW5jaWVzXG5AaW1wb3J0ICcuLi9fdmVuZG9yL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy9taXNzaW5nLWRlcGVuZGVuY2llcyc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvdHJ1ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9wdXJnZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZW1vdmUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVwbGFjZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy90by1saXN0JztcblxuLy8gU2V0dGluZ3Ncbi8vIGltcG9ydCB5b3VyIG93biBgc2V0dGluZ3NgIGhlcmUgb3Jcbi8vIGltcG9ydCBhbmQgbW9kaWZ5IHRoZSBkZWZhdWx0IHNldHRpbmdzIHRocm91Z2hcbi8vIEBpbXBvcnQgJ3NldHRpbmdzL3NldHRpbmdzJztcblxuLy8gU2FzcyB1dGlsaXRpZXNcbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG5cbi8vIEdsb2JhbCB2YXJpYWJsZXMgYW5kIHN0eWxlc1xuQGltcG9ydCAnZ2xvYmFsJztcblxuLy8gQ29tcG9uZW50c1xuQGltcG9ydCAnZ3JpZC9ncmlkJztcbkBpbXBvcnQgJ3R5cG9ncmFwaHkvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICdmb3Jtcy9mb3Jtcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Zpc2liaWxpdHknO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbG9hdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFkZ2UnO1xuQGltcG9ydCAnY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhbGxvdXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYXJkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2xvc2UtYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJpbGxkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxleCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Jlc3BvbnNpdmUtZW1iZWQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9sYWJlbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lZGlhLW9iamVjdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51LWljb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9vZmYtY2FudmFzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb3JiaXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wYWdpbmF0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmV2ZWFsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2xpZGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3RpY2t5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3dpdGNoJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGl0bGUtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9wLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RodW1ibmFpbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2x0aXAnO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1ldmVyeXRoaW5nKCRmbGV4OiBmYWxzZSkge1xuICBAaWYgJGZsZXgge1xuICAgICRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xuICBAaWYgbm90ICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdyaWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1ncmlkO1xuICB9XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhcmQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudS1pY29uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1sYWJlbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZWRpYS1vYmplY3Q7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb2ZmLWNhbnZhcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vcmJpdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wYWdpbmF0aW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb2dyZXNzLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zbGlkZXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3RpY2t5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJldmVhbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFibGU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFicztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGl0bGUtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvb2x0aXA7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcztcblxuICBAaWYgJGZsZXgge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1jbGFzc2VzO1xuICB9XG59XG4iLCIvLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHRoZSBub3JtYWxpemUoKSBtaXhpbi5cbkBmdW5jdGlvbiBfbm9ybWFsaXplLWluY2x1ZGUoJHNlY3Rpb24sICRleGNsdWRlOiBudWxsKSB7XG4gIC8vIEluaXRpYWxpemUgdGhlIGdsb2JhbCB2YXJpYWJsZXMgbmVlZGVkIGJ5IHRoaXMgZnVuY3Rpb24uXG4gIEBpZiBub3QgZ2xvYmFsX3ZhcmlhYmxlX2V4aXN0cyhfbm9ybWFsaXplLWluY2x1ZGUpIHtcbiAgICAkX25vcm1hbGl6ZS1pbmNsdWRlOiAoKSAhZ2xvYmFsO1xuICAgICRfbm9ybWFsaXplLWV4Y2x1ZGU6ICgpICFnbG9iYWw7XG4gIH1cbiAgLy8gU2luY2Ugd2UgYXJlIGdpdmVuIDIgcGFyYW1ldGVycywgc2V0IHRoZSBnbG9iYWwgdmFyaWFibGVzLlxuICBAaWYgJGV4Y2x1ZGUgIT0gbnVsbCB7XG4gICAgJGluY2x1ZGU6ICRzZWN0aW9uO1xuICAgIC8vIFNhc3MgZG9lc24ndCBoYXZlIHN0YXRpYyB2YXJpYWJsZXMsIHNvIHRoZSB3b3JrLWFyb3VuZCBpcyB0byBzdHVmZiB0aGVzZVxuICAgIC8vIHZhbHVlcyBpbnRvIGdsb2JhbCB2YXJpYWJsZXMgc28gd2UgY2FuIGFjY2VzcyB0aGVtIGluIGZ1dHVyZSBjYWxscy5cbiAgICAkX25vcm1hbGl6ZS1pbmNsdWRlOiBpZih0eXBlLW9mKCRpbmNsdWRlKSA9PSAnbGlzdCcsICRpbmNsdWRlLCAoJGluY2x1ZGUpKSAhZ2xvYmFsO1xuICAgICRfbm9ybWFsaXplLWV4Y2x1ZGU6IGlmKHR5cGUtb2YoJGV4Y2x1ZGUpID09ICdsaXN0JywgJGV4Y2x1ZGUsICgkZXhjbHVkZSkpICFnbG9iYWw7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgJHNlY3Rpb24gaXMgaW4gdGhlICRpbmNsdWRlIGxpc3QuXG4gIEBpZiBpbmRleCgkX25vcm1hbGl6ZS1pbmNsdWRlLCAkc2VjdGlvbikge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICAvLyBJZiAkaW5jbHVkZSBpcyBzZXQgdG8gKGFsbCksIG1ha2Ugc3VyZSAkc2VjdGlvbiBpcyBub3QgaW4gJGV4Y2x1ZGUuXG4gIEBlbHNlIGlmIG5vdCBpbmRleCgkX25vcm1hbGl6ZS1leGNsdWRlLCAkc2VjdGlvbikgYW5kIGluZGV4KCRfbm9ybWFsaXplLWluY2x1ZGUsIGFsbCkge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplKCRpbmNsdWRlOiAoYWxsKSwgJGV4Y2x1ZGU6ICgpKSB7XG4gIC8vIEluaXRpYWxpemUgdGhlIGhlbHBlciBmdW5jdGlvbiBieSBwYXNzaW5nIGl0IHRoaXMgbWl4aW4ncyBwYXJhbWV0ZXJzLlxuICAkaW5pdDogX25vcm1hbGl6ZS1pbmNsdWRlKCRpbmNsdWRlLCAkZXhjbHVkZSk7XG5cbiAgLy8gSWYgd2UndmUgY3VzdG9taXplZCBhbnkgZm9udCB2YXJpYWJsZXMsIHdlJ2xsIG5lZWQgZXh0cmEgcHJvcGVydGllcy5cbiAgQGlmICRiYXNlLWZvbnQtc2l6ZSAhPSAxNnB4XG4gICAgb3IgJGJhc2UtbGluZS1oZWlnaHQgIT0gMjRweFxuICAgIG9yICRiYXNlLXVuaXQgIT0gJ2VtJ1xuICAgIG9yICRoMS1mb250LXNpemUgIT0gMiAgICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoMi1mb250LXNpemUgIT0gMS41ICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoMy1mb250LXNpemUgIT0gMS4xNyAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNC1mb250LXNpemUgIT0gMSAgICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNS1mb250LXNpemUgIT0gMC44MyAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNi1mb250LXNpemUgIT0gMC42NyAqICRiYXNlLWZvbnQtc2l6ZSB7XG4gICAgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG06IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIC8qISBub3JtYWxpemUtc2NzcyB8IE1JVC9HUEx2MiBMaWNlbnNlIHwgYml0Lmx5L25vcm1hbGl6ZS1zY3NzICovXG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShkb2N1bWVudCkge1xuICAgIC8qIERvY3VtZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIENoYW5nZSB0aGUgZGVmYXVsdCBmb250IGZhbWlseSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMy4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxuICAgICAqICAgIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbiAgICAgKi9cblxuICAgIGh0bWwge1xuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5OyAvKiAxICovXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICAvLyBDb3JyZWN0IG9sZCBicm93c2VyIGJ1ZyB0aGF0IHByZXZlbnRlZCBhY2Nlc3NpYmxlIHJlc2l6aW5nIG9mIHRleHRcbiAgICAgICAgLy8gd2hlbiByb290IGZvbnQtc2l6ZSBpcyBzZXQgd2l0aCBweCBvciBlbS5cbiAgICAgICAgZm9udC1zaXplOiAoJGJhc2UtZm9udC1zaXplIC8gMTZweCkgKiAxMDAlO1xuICAgICAgICBsaW5lLWhlaWdodDogKCRiYXNlLWxpbmUtaGVpZ2h0IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTsgLyogMiAqL1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMiAqL1xuICAgICAgfVxuICAgICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDMgKi9cbiAgICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMyAqL1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoc2VjdGlvbnMpIHtcbiAgICAvKiBTZWN0aW9uc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGJvZHkge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgYXJ0aWNsZSxcbiAgICBhc2lkZSxcbiAgICBmb290ZXIsXG4gICAgaGVhZGVyLFxuICAgIG5hdixcbiAgICBzZWN0aW9uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAgICAgKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgaDEge1xuICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDEtZm9udC1zaXplKTtcbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDEtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgLyogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMuICovXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDEtZm9udC1zaXplKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbWFyZ2luOiAwLjY3ZW0gMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgaDIge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoMi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgyLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDItZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDMge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoMy1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgzLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDMtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDQge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNC1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg0LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDQtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNS1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg1LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDUtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDYge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg2LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDYtZm9udC1zaXplKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGdyb3VwaW5nKSB7XG4gICAgLyogR3JvdXBpbmcgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgLyoqXG4gICAgICAgKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICovXG5cbiAgICAgIGJsb2NrcXVvdGUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgJGluZGVudC1hbW91bnQpO1xuICAgICAgfVxuXG4gICAgICBkbCxcbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCk7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogVHVybiBvZmYgbWFyZ2lucyBvbiBuZXN0ZWQgbGlzdHMuXG4gICAgICAgKi9cblxuICAgICAgb2wsXG4gICAgICB1bCB7XG4gICAgICAgIG9sLFxuICAgICAgICB1bCB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGRkIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cblxuICAgICAgb2wsXG4gICAgICB1bCB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwICRpbmRlbnQtYW1vdW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgZmlnY2FwdGlvbixcbiAgICBmaWd1cmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxuICAgICAqL1xuXG4gICAgZmlndXJlIHtcbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAkaW5kZW50LWFtb3VudCk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIG1hcmdpbjogMWVtICRpbmRlbnQtYW1vdW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gICAgICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gICAgICovXG5cbiAgICBociB7XG4gICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICAgICAgaGVpZ2h0OiAwOyAvKiAxICovXG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICAgICAqL1xuXG4gICAgbWFpbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgLyoqXG4gICAgICAgKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICovXG5cbiAgICAgIHAsXG4gICAgICBwcmUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBwcmUge1xuICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gICAgICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUobGlua3MpIHtcbiAgICAvKiBMaW5rc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gICAgICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICAgICAqL1xuXG4gICAgYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogMSAqL1xuICAgICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0czsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICAgICAqIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuXG4gICAgYTphY3RpdmUsXG4gICAgYTpob3ZlciB7XG4gICAgICBvdXRsaW5lLXdpZHRoOiAwO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUodGV4dCkge1xuICAgIC8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBGaXJlZm94IDM5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYWJiclt0aXRsZV0ge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICAgICAqL1xuXG4gICAgYixcbiAgICBzdHJvbmcge1xuICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGIsXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBjb2RlLFxuICAgIGtiZCxcbiAgICBzYW1wIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gICAgICovXG5cbiAgICBkZm4ge1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIG1hcmsge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc21hbGwge1xuICAgICAgZm9udC1zaXplOiA4MCU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gICAgICogYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc3ViLFxuICAgIHN1cCB7XG4gICAgICBmb250LXNpemU6IDc1JTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIH1cblxuICAgIHN1YiB7XG4gICAgICBib3R0b206IC0wLjI1ZW07XG4gICAgfVxuXG4gICAgc3VwIHtcbiAgICAgIHRvcDogLTAuNWVtO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZW1iZWRkZWQpIHtcbiAgICAvKiBFbWJlZGRlZCBjb250ZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgYXVkaW8sXG4gICAgdmlkZW8ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gICAgICovXG5cbiAgICBhdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGhlaWdodDogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIGltZyB7XG4gICAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5cbiAgICBzdmc6bm90KDpyb290KSB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZm9ybXMpIHtcbiAgICAvKiBGb3Jtc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGJ1dHRvbixcbiAgICBpbnB1dCxcbiAgICBvcHRncm91cCxcbiAgICBzZWxlY3QsXG4gICAgdGV4dGFyZWEge1xuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5OyAvKiAxICovXG4gICAgICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAoJGJhc2UtbGluZS1oZWlnaHQgLyAkYmFzZS1mb250LXNpemUpICogMWVtOyAvKiAxICovXG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gICAgICB9XG4gICAgICBtYXJnaW46IDA7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgICAgKi9cblxuICAgIGJ1dHRvbiB7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAgICAgKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgc2VsZWN0IHsgLyogMSAqL1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gICAgICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgaHRtbCBbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuICAgIFt0eXBlPVwicmVzZXRcIl0sXG4gICAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgICB9XG5cbiAgICBidXR0b24sXG4gICAgW3R5cGU9XCJidXR0b25cIl0sXG4gICAgW3R5cGU9XCJyZXNldFwiXSxcbiAgICBbdHlwZT1cInN1Ym1pdFwiXSB7XG5cbiAgICAgIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAgICAgICAqL1xuXG4gICAgICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAgICAgICAqL1xuXG4gICAgICAmOi1tb3otZm9jdXNyaW5nIHtcbiAgICAgICAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gICAgICovXG5cbiAgICBpbnB1dCB7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gICAgICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gICAgW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgICBwYWRkaW5nOiAwOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICAgICAqL1xuXG4gICAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICAgICAqL1xuXG4gICAgW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG5cbiAgICAgIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAgICAgICAqL1xuXG4gICAgICAmOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgICAgIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2UgdGhlIGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGZpZWxkc2V0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgICBtYXJnaW46IDAgMnB4O1xuICAgICAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICAgICAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAgICAgKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIGxlZ2VuZCB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gICAgICBwYWRkaW5nOiAwOyAvKiAzICovXG4gICAgICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqIDIuIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gICAgICovXG5cbiAgICBwcm9ncmVzcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gICAgICovXG5cbiAgICB0ZXh0YXJlYSB7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGludGVyYWN0aXZlKSB7XG4gICAgLyogSW50ZXJhY3RpdmVcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gICAgICovXG5cbiAgICBkZXRhaWxzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc3VtbWFyeSB7XG4gICAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIG1lbnUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIC8qXG4gICAgICAgICAqIDEuIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW4uXG4gICAgICAgICAqIDIuIFNldCBjb25zaXN0ZW50IHNwYWNlIGZvciB0aGUgbGlzdCBzdHlsZSBpbWFnZS5cbiAgICAgICAgICovXG5cbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApOyAvKiAxICovXG4gICAgICAgIHBhZGRpbmc6IDAgMCAwICRpbmRlbnQtYW1vdW50OyAvKiAyICovXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFR1cm4gb2ZmIG1hcmdpbnMgb24gbmVzdGVkIGxpc3RzLlxuICAgICAgICAgKi9cblxuICAgICAgICBtZW51ICYsXG4gICAgICAgIG9sICYsXG4gICAgICAgIHVsICYge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoc2NyaXB0aW5nKSB7XG4gICAgLyogU2NyaXB0aW5nXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgY2FudmFzIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cblxuICAgIHRlbXBsYXRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShoaWRkZW4pIHtcbiAgICAvKiBIaWRkZW5cbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICAgICAqL1xuXG4gICAgW2hpZGRlbl0ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBWYXJpYWJsZXNcbi8vXG4vLyBZb3UgY2FuIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHZhbHVlcyBieSBzZXR0aW5nIHRoZSB2YXJpYWJsZXMgaW4geW91ciBTYXNzXG4vLyBiZWZvcmUgaW1wb3J0aW5nIHRoZSBub3JtYWxpemUtc2NzcyBsaWJyYXJ5LlxuXG4vLyBUaGUgZm9udCBzaXplIHNldCBvbiB0aGUgcm9vdCBodG1sIGVsZW1lbnQuXG4kYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBiYXNlIGxpbmUgaGVpZ2h0IGRldGVybWluZXMgdGhlIGJhc2ljIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtLlxuJGJhc2UtbGluZS1oZWlnaHQ6IDI0cHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBsZW5ndGggdW5pdCBpbiB3aGljaCB0byBvdXRwdXQgdmVydGljYWwgcmh5dGhtIHZhbHVlcy5cbi8vIFN1cHBvcnRlZCB2YWx1ZXM6IHB4LCBlbSwgcmVtLlxuJGJhc2UtdW5pdDogJ2VtJyAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgZm9udCBmYW1pbHkuXG4kYmFzZS1mb250LWZhbWlseTogc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8gVGhlIGZvbnQgc2l6ZXMgZm9yIGgxLWg2LlxuJGgxLWZvbnQtc2l6ZTogMiAgICAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoMi1mb250LXNpemU6IDEuNSAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDMtZm9udC1zaXplOiAxLjE3ICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGg0LWZvbnQtc2l6ZTogMSAgICAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoNS1mb250LXNpemU6IDAuODMgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDYtZm9udC1zaXplOiAwLjY3ICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuXG4vLyBUaGUgYW1vdW50IGxpc3RzIGFuZCBibG9ja3F1b3RlcyBhcmUgaW5kZW50ZWQuXG4kaW5kZW50LWFtb3VudDogNDBweCAhZGVmYXVsdDtcblxuLy8gVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBjb250cm9scyB3aGV0aGVyIG5vcm1hbGl6ZS1zY3NzIHdpbGwgb3V0cHV0XG4vLyBmb250LXNpemVzLCBsaW5lLWhlaWdodHMgYW5kIGJsb2NrLWxldmVsIHRvcC9ib3R0b20gbWFyZ2lucyB0aGF0IGZvcm0gYSBiYXNpY1xuLy8gdmVydGljYWwgcmh5dGhtIG9uIHRoZSBwYWdlLCB3aGljaCBkaWZmZXJzIGZyb20gdGhlIG9yaWdpbmFsIE5vcm1hbGl6ZS5jc3MuXG4vLyBIb3dldmVyLCBjaGFuZ2luZyBhbnkgb2YgdGhlIHZhcmlhYmxlcyBhYm92ZSB3aWxsIGNhdXNlXG4vLyAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB0byBiZSBhdXRvbWF0aWNhbGx5IHNldCB0byB0cnVlLlxuJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG06IGZhbHNlICFkZWZhdWx0O1xuIiwiLy9cbi8vIFZlcnRpY2FsIFJoeXRobVxuLy9cbi8vIFRoaXMgaXMgdGhlIG1pbmltYWwgYW1vdW50IG9mIGNvZGUgbmVlZGVkIHRvIGNyZWF0ZSB2ZXJ0aWNhbCByaHl0aG0gaW4gb3VyXG4vLyBDU1MuIElmIHlvdSBhcmUgbG9va2luZyBmb3IgYSByb2J1c3Qgc29sdXRpb24sIGxvb2sgYXQgdGhlIGV4Y2VsbGVudCBUeXBleVxuLy8gbGlicmFyeS4gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vanB0YXJhbnRvL3R5cGV5XG5cbkBmdW5jdGlvbiBub3JtYWxpemUtcmh5dGhtKCR2YWx1ZSwgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUsICR1bml0OiAkYmFzZS11bml0KSB7XG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gcHgge1xuICAgIEBlcnJvciBcIlRoZSBub3JtYWxpemUgdmVydGljYWwtcmh5dGhtIG1vZHVsZSBvbmx5IHN1cHBvcnRzIHB4IGlucHV0cy4gVGhlIHR5cGV5IGxpYnJhcnkgaXMgYmV0dGVyLlwiO1xuICB9XG4gIEBpZiAkdW5pdCA9PSByZW0ge1xuICAgIEByZXR1cm4gKCR2YWx1ZSAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxcmVtO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09IGVtIHtcbiAgICBAcmV0dXJuICgkdmFsdWUgLyAkcmVsYXRpdmUtdG8pICogMWVtO1xuICB9XG4gIEBlbHNlIHsgLy8gJHVuaXQgPT0gcHhcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxufVxuXG5AbWl4aW4gbm9ybWFsaXplLWZvbnQtc2l6ZSgkdmFsdWUsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplKSB7XG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ3B4JyB7XG4gICAgQGVycm9yIFwibm9ybWFsaXplLWZvbnQtc2l6ZSgpIG9ubHkgc3VwcG9ydHMgcHggaW5wdXRzLiBUaGUgdHlwZXkgbGlicmFyeSBpcyBiZXR0ZXIuXCI7XG4gIH1cbiAgZm9udC1zaXplOiBub3JtYWxpemUtcmh5dGhtKCR2YWx1ZSwgJHJlbGF0aXZlLXRvKTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZS1yaHl0aG0oJHByb3BlcnR5LCAkdmFsdWVzLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICAkdmFsdWUtbGlzdDogJHZhbHVlcztcbiAgJHNlcDogc3BhY2U7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZXMpID09ICdsaXN0JyB7XG4gICAgJHNlcDogbGlzdC1zZXBhcmF0b3IoJHZhbHVlcyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2YWx1ZS1saXN0OiBhcHBlbmQoKCksICR2YWx1ZXMpO1xuICB9XG5cbiAgJG5vcm1hbGl6ZWQtdmFsdWVzOiAoKTtcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZS1saXN0IHtcbiAgICBAaWYgdW5pdGxlc3MoJHZhbHVlKSBhbmQgJHZhbHVlICE9IDAge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgKiBub3JtYWxpemUtcmh5dGhtKCRiYXNlLWxpbmUtaGVpZ2h0LCAkcmVsYXRpdmUtdG8pO1xuICAgIH1cbiAgICAkbm9ybWFsaXplZC12YWx1ZXM6IGFwcGVuZCgkbm9ybWFsaXplZC12YWx1ZXMsICR2YWx1ZSwgJHNlcCk7XG4gIH1cbiAgI3skcHJvcGVydHl9OiAkbm9ybWFsaXplZC12YWx1ZXM7XG59XG5cbkBtaXhpbiBub3JtYWxpemUtbWFyZ2luKCR2YWx1ZXMsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplKSB7XG4gIEBpbmNsdWRlIG5vcm1hbGl6ZS1yaHl0aG0obWFyZ2luLCAkdmFsdWVzLCAkcmVsYXRpdmUtdG8pO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRmb250LXNpemUsICRtaW4tbGluZS1wYWRkaW5nOiAycHgpIHtcbiAgJGxpbmVzOiBjZWlsKCRmb250LXNpemUgLyAkYmFzZS1saW5lLWhlaWdodCk7XG4gIC8vIElmIGxpbmVzIGFyZSBjcmFtcGVkIGluY2x1ZGUgc29tZSBleHRyYSBsZWFkaW5nLlxuICBAaWYgKCRsaW5lcyAqICRiYXNlLWxpbmUtaGVpZ2h0IC0gJGZvbnQtc2l6ZSkgPCAoJG1pbi1saW5lLXBhZGRpbmcgKiAyKSB7XG4gICAgJGxpbmVzOiAkbGluZXMgKyAxO1xuICB9XG4gIEBpbmNsdWRlIG5vcm1hbGl6ZS1yaHl0aG0obGluZS1oZWlnaHQsICRsaW5lcywgJGZvbnQtc2l6ZSk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Fzcy1saW50OmRpc2FibGUgZm9yY2UtYXR0cmlidXRlLW5lc3RpbmcsIGZvcmNlLXBzZXVkby1uZXN0aW5nLCBuby1jb2xvci1saXRlcmFscywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIGdsb2JhbFxuLy8vL1xuXG4vLy8gRm9udCBzaXplIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIGA8aHRtbD5gIGFuZCBgPGJvZHk+YC4gV2UgdXNlIDEwMCUgYnkgZGVmYXVsdCBzbyB0aGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHVzZXIncyBicm93c2VyIHNldHRpbmdzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgd2lkdGggb2YgeW91ciBzaXRlLiBVc2VkIGJ5IHRoZSBncmlkIHRvIGRldGVybWluZSByb3cgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGFsbCB0eXBlLiBgJGdsb2JhbC1saW5laGVpZ2h0YCBpcyAyNHB4IHdoaWxlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgaXMgMTZweFxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcnMgdXNlZCBmb3IgYnV0dG9ucywgY2FsbG91dHMsIGxpbmtzLCBldGMuIFRoZXJlIG11c3QgYWx3YXlzIGJlIGEgY29sb3IgY2FsbGVkIGBwcmltYXJ5YC5cbi8vLyBAdHlwZSBNYXBcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogIzE3NzliYSxcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTGlzdFxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIGFudGlhbGlhc2VkIHR5cGUsIHVzaW5nIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgYW5kIGAtbW96LW9zeC1mb250LXNtb290aGluZ2AgQ1NTIHByb3BlcnRpZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJvZHktYW50aWFsaWFzZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgbWFyZ2luIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwYWRkaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3Igbm9ybWFsIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3IgYm9sZCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXJhZGl1czogMCAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHRleHQgZGlyZWN0aW9uIG9mIHRoZSBDU1MuIENhbiBiZSBlaXRoZXIgYGx0cmAgb3IgYHJ0bGAuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGZvciBjb21wb25lbnRzIHRoYXQgc3VwcG9ydCBpdC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLWZsZXhib3g6IGZhbHNlICFkZWZhdWx0O1xuXG5AaWYgbm90IG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgQGVycm9yICdJbiAkZm91bmRhdGlvbi1wYWxldHRlLCB5b3UgbXVzdCBoYXZlIGEgY29sb3IgbmFtZWQgXCJwcmltYXJ5XCIuJztcbn1cblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIHRleHQgZGlyZWN0aW9uXG4kZ2xvYmFsLWxlZnQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCByaWdodCwgbGVmdCk7XG4kZ2xvYmFsLXJpZ2h0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgbGVmdCwgcmlnaHQpO1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgY29sb3JzXG4kcHJpbWFyeS1jb2xvcjogZ2V0LWNvbG9yKHByaW1hcnkpO1xuJHNlY29uZGFyeS1jb2xvcjogZ2V0LWNvbG9yKHNlY29uZGFyeSk7XG4kc3VjY2Vzcy1jb2xvcjogZ2V0LWNvbG9yKHN1Y2Nlc3MpO1xuJHdhcm5pbmctY29sb3I6IGdldC1jb2xvcih3YXJuaW5nKTtcbiRhbGVydC1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KTtcblxuQG1peGluIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcyB7XG4gIEBpbmNsdWRlIC16Zi1ub3JtYWxpemU7XG5cbiAgLy8gVGhlc2Ugc3R5bGVzIGFyZSBhcHBsaWVkIHRvIGEgPG1ldGE+IHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0XG4gIC5mb3VuZGF0aW9uLW1xIHtcbiAgICBmb250LWZhbWlseTogJyN7LXpmLWJwLXNlcmlhbGl6ZSgkYnJlYWtwb2ludHMpfSc7XG4gIH1cblxuICBodG1sIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXG4gICAgQGlmICgkYm9keS1hbnRpYWxpYXNlZCkge1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgLy8gR3JpZCBkZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxuICB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyBhcmUgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gIHNlbGVjdCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIFN0eWxlcyBHb29nbGUgTWFwcyBhbmQgTWFwUXVlc3QgZW1iZWRzIHByb3Blcmx5XG4gIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8taWRzXG4gIC5tYXBfY2FudmFzLFxuICAubXFhLWRpc3BsYXkge1xuICAgIGltZyxcbiAgICBlbWJlZCxcbiAgICBvYmplY3Qge1xuICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgPGJ1dHRvbj4gc3R5bGVzIGNyZWF0ZWQgYnkgbW9zdCBicm93c2Vyc1xuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcblxuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG5cbiAgLy8gUHJldmVudCB0ZXh0IG92ZXJmbG93IG9uIHByZVxuICBwcmUge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgY2xhc3NlcyB0byBzaG93L2hpZGUgZWxlbWVudHMgaW4gSmF2YVNjcmlwdFxuICAuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gTG9hZHMgbm9ybWFsaXplLmNzcy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiAtemYtbm9ybWFsaXplIHtcbiAgQGluY2x1ZGUgbm9ybWFsaXplKCk7XG59XG4iLCIvLyAgRm91bmRhdGlvbiBmb3IgU2l0ZXMgU2V0dGluZ3Ncbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cbi8vICBUYWJsZSBvZiBDb250ZW50czpcbi8vXG4vLyAgIDEuIEdsb2JhbFxuLy8gICAyLiBCcmVha3BvaW50c1xuLy8gICAzLiBUaGUgR3JpZFxuLy8gICA0LiBCYXNlIFR5cG9ncmFwaHlcbi8vICAgNS4gVHlwb2dyYXBoeSBIZWxwZXJzXG4vLyAgIDYuIEFiaWRlXG4vLyAgIDcuIEFjY29yZGlvblxuLy8gICA4LiBBY2NvcmRpb24gTWVudVxuLy8gICA5LiBCYWRnZVxuLy8gIDEwLiBCcmVhZGNydW1ic1xuLy8gIDExLiBCdXR0b25cbi8vICAxMi4gQnV0dG9uIEdyb3VwXG4vLyAgMTMuIENhbGxvdXRcbi8vICAxNC4gQ2xvc2UgQnV0dG9uXG4vLyAgMTUuIERyaWxsZG93blxuLy8gIDE2LiBEcm9wZG93blxuLy8gIDE3LiBEcm9wZG93biBNZW51XG4vLyAgMTguIEZsZXggVmlkZW9cbi8vICAxOS4gRm9ybXNcbi8vICAyMC4gTGFiZWxcbi8vICAyMS4gTWVkaWEgT2JqZWN0XG4vLyAgMjIuIE1lbnVcbi8vICAyMy4gTWV0ZXJcbi8vICAyNC4gT2ZmLWNhbnZhc1xuLy8gIDI1LiBPcmJpdFxuLy8gIDI2LiBQYWdpbmF0aW9uXG4vLyAgMjcuIFByb2dyZXNzIEJhclxuLy8gIDI4LiBSZXZlYWxcbi8vICAyOS4gU2xpZGVyXG4vLyAgMzAuIFN3aXRjaFxuLy8gIDMxLiBUYWJsZVxuLy8gIDMyLiBUYWJzXG4vLyAgMzMuIFRodW1ibmFpbFxuLy8gIDM0LiBUaXRsZSBCYXJcbi8vICAzNS4gVG9vbHRpcFxuLy8gIDM2LiBUb3AgQmFyXG5cbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG5cbi8vIDEuIEdsb2JhbFxuLy8gLS0tLS0tLS0tXG5cbiRnbG9iYWwtZm9udC1zaXplOiA5NSU7XG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKTtcbiRnbG9iYWwtbGluZWhlaWdodDogMS41O1xuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxuICBwcmltYXJ5OiAkZGVmYXVsdC10ZXh0LWNvbG9yLFxuICBzZWNvbmRhcnk6ICM3NzcsXG4gIHN1Y2Nlc3M6ICMzYWRiNzYsXG4gIHdhcm5pbmc6ICNmZmFlMDAsXG4gIGFsZXJ0OiAjZWM1ODQwLFxuKTtcbiRsaWdodC1ncmF5OiAjZTZlNmU2O1xuJG1lZGl1bS1ncmF5OiAjY2FjYWNhO1xuJGRhcmstZ3JheTogIzhhOGE4YTtcbiRibGFjazogJGJyYW5kLWJsYWNrO1xuJHdoaXRlOiAjZmZmZmZmO1xuJGJvZHktYmFja2dyb3VuZDogJGJyYW5kLXdoaXRlO1xuJGJvZHktZm9udC1jb2xvcjogJGRlZmF1bHQtdGV4dC1jb2xvcjtcbiRib2R5LWZvbnQtZmFtaWx5OiAkZGVmYXVsdC1mb250LWZhbWlseS1ib2R5O1xuJGJvZHktYW50aWFsaWFzZWQ6IHRydWU7XG4kZ2xvYmFsLW1hcmdpbjogMXJlbTtcbiRnbG9iYWwtcGFkZGluZzogMXJlbTtcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogJGRlZmF1bHQtZm9udC1mYW1pbHktYm9keS13ZWlnaHQ7XG4kZ2xvYmFsLXdlaWdodC1ib2xkOiAkZGVmYXVsdC1mb250LWZhbWlseS1ib2R5LXdlaWdodC1ib2xkO1xuJGdsb2JhbC1yYWRpdXM6IDA7XG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHI7XG4kZ2xvYmFsLWZsZXhib3g6IHRydWU7XG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IGZhbHNlO1xuXG5AaW5jbHVkZSBhZGQtZm91bmRhdGlvbi1jb2xvcnM7XG5cbi8vIDIuIEJyZWFrcG9pbnRzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bS1wb3J0cmFpdDogNjQwcHgsXG4gIG1lZGl1bTogODAwcHgsXG4gIGxhcmdlOiAxMDI1cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pO1xuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bS1wb3J0cmFpdCBtZWRpdW0gbGFyZ2UpO1xuXG4vLyAzLiBUaGUgR3JpZFxuLy8gLS0tLS0tLS0tLS1cblxuJGdyaWQtcm93LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJGdyaWQtY29sdW1uLWNvdW50OiAxMjtcbiRncmlkLWNvbHVtbi1ndXR0ZXI6IChcbiAgc21hbGw6IDIwcHgsXG4gIG1lZGl1bTogMzBweCxcbik7XG4kZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZTogdHJ1ZTtcbiRibG9jay1ncmlkLW1heDogODtcblxuLy8gNC4gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cblxuJGhlYWRlci1mb250LWZhbWlseTogJGRlZmF1bHQtZm9udC1mYW1pbHktaGVhZGluZ3M7XG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZGVmYXVsdC1mb250LXdlaWdodC1oZWFkaW5ncztcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsO1xuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4kaGVhZGVyLXN0eWxlczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogMjQpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMTkpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMTgpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTcpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDM2KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDMyKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDI4KSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDI0KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbikgIWRlZmF1bHQ7XG4kaGVhZGVyLWNvbG9yOiAkZGVmYXVsdC10ZXh0LWNvbG9yO1xuJGhlYWRlci1saW5laGVpZ2h0OiAxO1xuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW07XG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4kc21hbGwtZm9udC1zaXplOiA4MCU7XG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheTtcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS44O1xuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtO1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuJGNvZGUtY29sb3I6ICRibGFjaztcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpO1xuJGFuY2hvci1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmU7XG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG87XG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4kbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbTtcbiRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjogMS4yNXJlbTtcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtO1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXk7XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpO1xuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheTtcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjaztcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKTtcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2s7XG5cbi8vIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1O1xuJGxlYWQtbGluZWhlaWdodDogMS42O1xuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQ7XG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5O1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW07XG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtO1xuXG4vLyA2LiBBYmlkZVxuLy8gLS0tLS0tLS1cblxuJGFiaWRlLWlucHV0czogdHJ1ZTtcbiRhYmlkZS1sYWJlbHM6IHRydWU7XG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KTtcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpO1xuJGlucHV0LWVycm9yLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KTtcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuLy8gNy4gQWNjb3JkaW9uXG4vLyAtLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZTtcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogZm9yZWdyb3VuZCgkYWNjb3JkaW9uLWJhY2tncm91bmQsICRwcmltYXJ5LWNvbG9yKTtcbiRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbiRhY2NvcmRpb24taXRlbS1wYWRkaW5nOiAxLjI1cmVtIDFyZW07XG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiBmb3JlZ3JvdW5kKCRhY2NvcmRpb24tYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpO1xuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDFyZW07XG5cbi8vIDguIEFjY29yZGlvbiBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuXG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWU7XG4kYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3I7XG5cbi8vIDkuIEJhZGdlXG4vLyAtLS0tLS0tLVxuXG4kYmFkZ2UtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kYmFkZ2UtY29sb3I6IGZvcmVncm91bmQoJGJhZGdlLWJhY2tncm91bmQpO1xuJGJhZGdlLXBhZGRpbmc6IDAuM2VtO1xuJGJhZGdlLW1pbndpZHRoOiAyLjFlbTtcbiRiYWRnZS1mb250LXNpemU6IDAuNnJlbTtcblxuLy8gMTAuIEJyZWFkY3J1bWJzXG4vLyAtLS0tLS0tLS0tLS0tLS1cblxuJGJyZWFkY3J1bWJzLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKTtcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ6ICRibGFjaztcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XG4kYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW46IDAuNzVyZW07XG4kYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2U6IHRydWU7XG4kYnJlYWRjcnVtYnMtaXRlbS1zbGFzaDogdHJ1ZTtcblxuLy8gMTEuIEJ1dHRvblxuLy8gLS0tLS0tLS0tLVxuXG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW07XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XG4kYnV0dG9uLWZpbGw6IHNvbGlkO1xuJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiRidXR0b24tY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2s7XG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kYnV0dG9uLXNpemVzOiAoXG4gIHRpbnk6IDAuNnJlbSxcbiAgc21hbGw6IDAuNzVyZW0sXG4gIGRlZmF1bHQ6IDAuOXJlbSxcbiAgbGFyZ2U6IDEuMjVyZW0sXG4pO1xuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xuXG4vLyAxMi4gQnV0dG9uIEdyb3VwXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW07XG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4O1xuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiAnLmJ1dHRvbic7XG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNjtcblxuLy8gMTMuIENhbGxvdXRcbi8vIC0tLS0tLS0tLS0tXG5cbiRjYWxsb3V0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRjYWxsb3V0LWJhY2tncm91bmQtZmFkZTogODUlO1xuJGNhbGxvdXQtYm9yZGVyOiAxcHggc29saWQgcmdiYSgkYmxhY2ssIDAuMjUpO1xuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwO1xuJGNhbGxvdXQtcGFkZGluZzogMXJlbTtcbiRjYWxsb3V0LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZDtcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kY2FsbG91dC1saW5rLXRpbnQ6IDMwJTtcblxuLy8gMTQuIENsb3NlIEJ1dHRvblxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcDtcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogMXJlbTtcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IDAuNXJlbTtcbiRjbG9zZWJ1dHRvbi1zaXplOiAyZW07XG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMTtcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheTtcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrO1xuXG4vLyAxNS4gRHJpbGxkb3duXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhcjtcbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlO1xuJGRyaWxsZG93bi1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZTtcblxuLy8gMTYuIERyb3Bkb3duXG4vLyAtLS0tLS0tLS0tLS1cblxuJGRyb3Bkb3duLXBhZGRpbmc6IDFyZW07XG4kZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgJGJyYW5kLWxpZ2h0LWdyYXk7XG4kZHJvcGRvd24tZm9udC1zaXplOiAxcmVtO1xuJGRyb3Bkb3duLXdpZHRoOiAzMDBweDtcbiRkcm9wZG93bi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGRyb3Bkb3duLXNpemVzOiAoXG4gIHRpbnk6IDEwMHB4LFxuICBzbWFsbDogMjAwcHgsXG4gIGxhcmdlOiA0MDBweCxcbik7XG5cbi8vIDE3LiBEcm9wZG93biBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZTtcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3I7XG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHg7XG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuXG4vLyAxOC4gRmxleCBWaWRlb1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJGZsZXh2aWRlby1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNik7XG4kZmxleHZpZGVvLXJhdGlvOiA0IGJ5IDM7XG4kZmxleHZpZGVvLXJhdGlvLXdpZGVzY3JlZW46IDE2IGJ5IDk7XG5cbi8vIDE5LiBGb3Jtc1xuLy8gLS0tLS0tLS0tXG5cbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApO1xuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCk7XG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMyk7XG4kZm9ybS1zcGFjaW5nOiByZW0tY2FsYygxNik7XG4kaGVscHRleHQtY29sb3I6ICRibGFjaztcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWM7XG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2s7XG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW07XG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrO1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuODtcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlO1xuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheTtcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRpbnB1dC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGlucHV0LWJhY2tncm91bmQtZm9jdXM6ICR3aGl0ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAkbGlnaHQtZ3JheTtcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKTtcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5O1xuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogZGVmYXVsdDtcbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWU7XG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjAuIExhYmVsXG4vLyAtLS0tLS0tLS1cblxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGxhYmVsLWNvbG9yOiBmb3JlZ3JvdW5kKCRsYWJlbC1iYWNrZ3JvdW5kKTtcbiRsYWJlbC1mb250LXNpemU6IDAuOHJlbTtcbiRsYWJlbC1wYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbTtcbiRsYWJlbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyMS4gTWVkaWEgT2JqZWN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkOiAxMDAlO1xuXG4vLyAyMi4gTWVudVxuLy8gLS0tLS0tLS1cblxuJG1lbnUtbWFyZ2luOiAwO1xuJG1lbnUtbWFyZ2luLW5lc3RlZDogMXJlbTtcbiRtZW51LWl0ZW0tcGFkZGluZzogMC43cmVtIDFyZW07XG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlO1xuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KTtcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbTtcblxuLy8gMjMuIE1ldGVyXG4vLyAtLS0tLS0tLS1cblxuJG1ldGVyLWhlaWdodDogMXJlbTtcbiRtZXRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJG1ldGVyLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRtZXRlci1maWxsLWdvb2Q6ICRzdWNjZXNzLWNvbG9yO1xuJG1ldGVyLWZpbGwtbWVkaXVtOiAkd2FybmluZy1jb2xvcjtcbiRtZXRlci1maWxsLWJhZDogJGFsZXJ0LWNvbG9yO1xuXG4vLyAyNC4gT2ZmLWNhbnZhc1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJG9mZmNhbnZhcy1zaXplOiAyNTBweDtcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kb2ZmY2FudmFzLXppbmRleDogLTE7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoOiAwLjVzO1xuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZTtcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlO1xuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KTtcbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCc7XG4kbWFpbmNvbnRlbnQtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC41KTtcblxuLy8gMjUuIE9yYml0XG4vLyAtLS0tLS0tLS1cblxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5O1xuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW46IDAuMXJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDogMC44cmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW07XG4kb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC41KTtcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW07XG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KTtcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW07XG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwO1xuXG4vLyAyNi4gUGFnaW5hdGlvblxuLy8gLS0tLS0tLS0tLS0tLS1cblxuJHBhZ2luYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCk7XG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6IHJlbS1jYWxjKDEpO1xuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudDogJHByaW1hcnktY29sb3I7XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6IGZvcmVncm91bmQoJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQpO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7XG4kcGFnaW5hdGlvbi1hcnJvd3M6IHRydWU7XG5cbi8vIDI3LiBQcm9ncmVzcyBCYXJcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJHByb2dyZXNzLWhlaWdodDogMXJlbTtcbiRwcm9ncmVzcy1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kcHJvZ3Jlc3MtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjguIFJldmVhbFxuLy8gLS0tLS0tLS0tLVxuXG4kcmV2ZWFsLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRyZXZlYWwtd2lkdGg6IDYwMHB4O1xuJHJldmVhbC1tYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiRyZXZlYWwtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJHJldmVhbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHJldmVhbC16aW5kZXg6IDEwMDU7XG4kcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNDUpO1xuXG4vLyAyOS4gU2xpZGVyXG4vLyAtLS0tLS0tLS0tXG5cbiRzbGlkZXItd2lkdGgtdmVydGljYWw6IDAuNXJlbTtcbiRzbGlkZXItdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4kc2xpZGVyLWhlaWdodDogMC41cmVtO1xuJHNsaWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kc2xpZGVyLWhhbmRsZS1oZWlnaHQ6IDEuNHJlbTtcbiRzbGlkZXItaGFuZGxlLXdpZHRoOiAxLjRyZW07XG4kc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDogMC4yNTtcbiRzbGlkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMzAuIFN3aXRjaFxuLy8gLS0tLS0tLS0tLVxuXG4kc3dpdGNoLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yO1xuJHN3aXRjaC1oZWlnaHQ6IDJyZW07XG4kc3dpdGNoLWhlaWdodC10aW55OiAxLjVyZW07XG4kc3dpdGNoLWhlaWdodC1zbWFsbDogMS43NXJlbTtcbiRzd2l0Y2gtaGVpZ2h0LWxhcmdlOiAyLjVyZW07XG4kc3dpdGNoLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kc3dpdGNoLW1hcmdpbjogJGdsb2JhbC1tYXJnaW47XG4kc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kc3dpdGNoLXBhZGRsZS1vZmZzZXQ6IDAuMjVyZW07XG4kc3dpdGNoLXBhZGRsZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0O1xuXG4vLyAzMS4gVGFibGVcbi8vIC0tLS0tLS0tLVxuXG4kdGFibGUtYmFja2dyb3VuZDogJHdoaXRlO1xuJHRhYmxlLWNvbG9yLXNjYWxlOiA1JTtcbiR0YWJsZS1ib3JkZXI6IDFweCBzb2xpZCBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKTtcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiU7XG4kdGFibGUtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKyAkdGFibGUtaG92ZXItc2NhbGUpO1xuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtc3RyaXBlOiBldmVuO1xuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSAvIDIpO1xuJHRhYmxlLWZvb3QtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZTtcblxuLy8gMzIuIFRhYnNcbi8vIC0tLS0tLS0tXG5cbiR0YWItbWFyZ2luOiAwO1xuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheTtcbiR0YWItaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkd2hpdGU7XG4kdGFiLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxLjVyZW07XG4kdGFiLWV4cGFuZC1tYXg6IDY7XG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlO1xuJHRhYi1jb250ZW50LWJvcmRlcjogJGxpZ2h0LWdyYXk7XG4kdGFiLWNvbnRlbnQtY29sb3I6IGZvcmVncm91bmQoJHRhYi1iYWNrZ3JvdW5kLCAkcHJpbWFyeS1jb2xvcik7XG4kdGFiLWNvbnRlbnQtcGFkZGluZzogMXJlbTtcblxuLy8gMzMuIFRodW1ibmFpbFxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kdGh1bWJuYWlsLWJvcmRlcjogc29saWQgNHB4ICR3aGl0ZTtcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjIpO1xuJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsIDAuNSk7XG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQ7XG4kdGh1bWJuYWlsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDM0LiBUaXRsZSBCYXJcbi8vIC0tLS0tLS0tLS0tLS1cblxuJHRpdGxlYmFyLWJhY2tncm91bmQ6ICRibGFjaztcbiR0aXRsZWJhci1jb2xvcjogJHdoaXRlO1xuJHRpdGxlYmFyLXBhZGRpbmc6IDAuNXJlbTtcbiR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0OiBib2xkO1xuJHRpdGxlYmFyLWljb24tY29sb3I6ICR3aGl0ZTtcbiR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyOiAkbWVkaXVtLWdyYXk7XG4kdGl0bGViYXItaWNvbi1zcGFjaW5nOiAwLjI1cmVtO1xuXG4vLyAzNS4gVG9vbHRpcFxuLy8gLS0tLS0tLS0tLS1cblxuJGhhcy10aXAtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kaGFzLXRpcC1ib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRkYXJrLWdyYXk7XG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4kdG9vbHRpcC1jb2xvcjogJHdoaXRlO1xuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbTtcbiR0b29sdGlwLWZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiR0b29sdGlwLXBpcC13aWR0aDogMC43NXJlbTtcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2O1xuJHRvb2x0aXAtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMzYuIFRvcCBCYXJcbi8vIC0tLS0tLS0tLS0tXG5cbiR0b3BiYXItcGFkZGluZzogMC41cmVtO1xuJHRvcGJhci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kOiAkdG9wYmFyLWJhY2tncm91bmQ7XG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDFyZW07XG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweDtcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW07XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBDU1MgdHJpYW5nbGUsIHdoaWNoIGNhbiBiZSB1c2VkIGZvciBkcm9wZG93biBhcnJvd3MsIGRyb3Bkb3duIHBpcHMsIGFuZCBtb3JlLiBVc2UgdGhpcyBtaXhpbiBpbnNpZGUgYSBgJjo6YmVmb3JlYCBvciBgJjo6YWZ0ZXJgIHNlbGVjdG9yLCB0byBhdHRhY2ggdGhlIHRyaWFuZ2xlIHRvIGFuIGV4aXN0aW5nIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRyaWFuZ2xlLXNpemUgLSBXaWR0aCBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHRyaWFuZ2xlLWNvbG9yIC0gQ29sb3Igb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHRyaWFuZ2xlLWRpcmVjdGlvbiAtIERpcmVjdGlvbiB0aGUgdHJpYW5nbGUgcG9pbnRzLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuXG5AbWl4aW4gY3NzLXRyaWFuZ2xlKFxuICAkdHJpYW5nbGUtc2l6ZSxcbiAgJHRyaWFuZ2xlLWNvbG9yLFxuICAkdHJpYW5nbGUtZGlyZWN0aW9uXG4pIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG5cbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcblxuICBjb250ZW50OiAnJztcblxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gZG93bikge1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHVwKSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIG1lbnUgaWNvbiB3aXRoIGEgc2V0IHdpZHRoLCBoZWlnaHQsIG51bWJlciBvZiBiYXJzLCBhbmQgY29sb3JzLiBUaGUgbWl4aW4gdXNlcyB0aGUgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIHRoZSBiYXJzIHRvIGRldGVybWluZSBzcGFjaW5nLiA8ZGl2IGNsYXNzPVwiZG9jcy1leGFtcGxlLWJ1cmdlclwiPjwvZGl2PlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3ItaG92ZXIgWyRkYXJrLWdyYXldIC0gQ29sb3IgdG8gdXNlIHdoZW4gdGhlIGljb24gaXMgaG92ZXJlZCBvdmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzIwcHhdIC0gV2lkdGggb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWzE2cHhdIC0gSGVpZ2h0IG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2VpZ2h0IFsycHhdIC0gSGVpZ2h0IG9mIGluZGl2aWR1YWwgYmFycyBpbiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhcnMgWzNdIC0gTnVtYmVyIG9mIGJhcnMgaW4gdGhlIGljb24uXG5AbWl4aW4gaGFtYnVyZ2VyKFxuICAkY29sb3I6ICRibGFjayxcbiAgJGNvbG9yLWhvdmVyOiAkZGFyay1ncmF5LFxuICAkd2lkdGg6IDIwcHgsXG4gICRoZWlnaHQ6IDE2cHgsXG4gICR3ZWlnaHQ6IDJweCxcbiAgJGJhcnM6IDNcbikge1xuICAvLyBib3gtc2hhZG93IENTUyBvdXRwdXRcbiAgJHNoYWRvdzogKCk7XG4gICRob3Zlci1zaGFkb3c6ICgpO1xuXG4gIC8vIFNwYWNpbmcgYmV0d2VlbiBiYXJzIGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIHRvdGFsIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiBlYWNoIGJhclxuICAkc3BhY2luZzogKCRoZWlnaHQgLSAoJHdlaWdodCAqICRiYXJzKSkgLyAoJGJhcnMgLSAxKTtcblxuICBAaWYgdW5pdCgkc3BhY2luZykgPT0gJ3B4JyB7XG4gICAgJHNwYWNpbmc6IGZsb29yKCRzcGFjaW5nKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgJHNoYWRvdzogYXBwZW5kKCRzaGFkb3csIDAgJG9mZnNldCAwICRjb2xvciwgY29tbWEpO1xuICB9XG5cbiAgLy8gSWNvbiBjb250YWluZXJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC8vIEljb24gYmFyc1xuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgICBjb250ZW50OiAnJzsgICAgXG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcbiAgJHJnYjogJ3JnYiUyOCN7cm91bmQocmVkKCRjb2xvcikpfSwgI3tyb3VuZChncmVlbigkY29sb3IpKX0sICN7cm91bmQoYmx1ZSgkY29sb3IpKX0lMjknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHdpZHRoPSczMicgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDMyIDI0Jz48cG9seWdvbiBwb2ludHM9JzAsMCAzMiwwIDE2LDI0JyBzdHlsZT0nZmlsbDogI3skcmdifSc+PC9wb2x5Z29uPjwvc3ZnPlwiKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjBcXDApIHtcbiAgICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA2MCUge1xuICAgICAgLy8gV2hpdGUgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBCbGFjayB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU1CSlJFRlVlTnJFbGxzT2hDQU1SVnN6QzlJbHpVN0tDbVZIVEpzb01XWU1VdHB5djlCZ2J1WFFCNVpTZGdCWVlZNHljZ0Jpdms4S1lGc1FNZk1pVFRCUDRvM25VekNLek9hYkxKYkx5Mi9nMzFldkdrQWdpblI0L1plZ0tINXFYM2JKQ3NjQTN0MHgza2dPNXRRRnloaEZmNTB4UnFGTGJ5TVVOSlF6Z3lqR1Mvd2dDcHZLcWtSQnB1V3JFNFY5ZCsxRTRkUFVYcUlnMTA3U1FPRS8yRFJReE13VER5Z0lJblZERVQ5VDNsQ29qLzZqL1ZDbUdqWk9sMmxLcFo4QUF3RFFQN3pJaW1ER0ZRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIHRoZSBtaWNybyBjbGVhcmZpeCBoYWNrIHBvcHVsYXJpemVkIGJ5IE5pY29sYXMgR2FsbGFnaGVyLiBJbmNsdWRlIHRoaXMgbWl4aW4gb24gYSBjb250YWluZXIgaWYgaXRzIGNoaWxkcmVuIGFyZSBhbGwgZmxvYXRlZCwgdG8gZ2l2ZSB0aGUgY29udGFpbmVyIGEgcHJvcGVyIGhlaWdodC5cbi8vLyBUaGUgY2xlYXJmaXggaXMgYXVnbWVudGVkIHdpdGggc3BlY2lmaWMgc3R5bGVzIHRvIHByZXZlbnQgYm9yZGVycyBpbiBmbGV4Ym94IGVudmlyb25tZW50c1xuLy8vIEBsaW5rIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrLyBNaWNybyBDbGVhcmZpeCBIYWNrXG4vLy8gQGxpbmsgaHR0cDovL2RhbmlzYWRlc2lnbmVyLmNvbS9ibG9nL2ZsZXhib3gtY2xlYXItZml4LXBzZXVkby1lbGVtZW50cy8gRmxleGJveCBmaXhcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vLy8gQWRkcyBDU1MgZm9yIGEgXCJxdWFudGl0eSBxdWVyeVwiIHNlbGVjdG9yIHRoYXQgYXV0b21hdGljYWxseSBzaXplcyBlbGVtZW50cyBiYXNlZCBvbiBob3cgbWFueSB0aGVyZSBhcmUgaW5zaWRlIGEgY29udGFpbmVyLlxuLy8vIEBsaW5rIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWNzcyBRdWFudGl0eSBRdWVyaWVzIGZvciBDU1Ncbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IC0gTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGV0ZWN0LiBUaGUgaGlnaGVyIHRoaXMgbnVtYmVyIGlzLCB0aGUgbW9yZSBDU1MgdGhhdCdzIHJlcXVpcmVkIHRvIGNvdmVyIGVhY2ggbnVtYmVyIG9mIGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gW2xpXSAtIFRhZyB0byB1c2UgZm9yIHNpYmxpbmcgc2VsZWN0b3JzLlxuQG1peGluIGF1dG8td2lkdGgoJG1heCwgJGVsZW06IGxpKSB7XG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJG1heCB7XG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQsXG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQgfiAjeyRlbGVtfSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgxIC8gJGkpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyB0aGUgZm9jdXMgcmluZyBhcm91bmQgYW4gZWxlbWVudCB3aGVuIGEgbW91c2UgaW5wdXQgaXMgZGV0ZWN0ZWQuXG5AbWl4aW4gZGlzYWJsZS1tb3VzZS1vdXRsaW5lIHtcbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddICYge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgc3RpbGwgYWNjZXNzaWJsZSB0byBrZXlib2FyZHMgYW5kIGFzc2lzdGl2ZSBkZXZpY2VzLlxuLy8vIEBsaW5rIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHkgSGlkaW5nIENvbnRlbnQgZm9yIEFjY2Vzc2liaWxpdHlcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbn1cblxuLy8vIFJldmVyc2VzIHRoZSBDU1Mgb3V0cHV0IGNyZWF0ZWQgYnkgdGhlIGBlbGVtZW50LWludmlzaWJsZSgpYCBtaXhpbi5cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvO1xufVxuXG4vLy8gVmVydGljYWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiB2ZXJ0aWNhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gaG9yaXpvbnRhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4vLy8gQWJzb2x1dGVseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBhYnNvbHV0ZS1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4vLy8gSXRlcmF0ZXMgdGhyb3VnaCBicmVha3BvaW50cyBkZWZpbmVkIGluIGAkYnJlYWtwb2ludC1jbGFzc2VzYCBhbmQgcHJpbnRzIHRoZSBDU1MgaW5zaWRlIHRoZSBtaXhpbiBhdCBlYWNoIGJyZWFrcG9pbnQncyBtZWRpYSBxdWVyeS4gVXNlIHRoaXMgd2l0aCB0aGUgZ3JpZCwgb3IgYW55IG90aGVyIGNvbXBvbmVudCB0aGF0IGhhcyByZXNwb25zaXZlIGNsYXNzZXMuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRzbWFsbCBbdHJ1ZV0gLSBJZiBgZmFsc2VgLCB0aGUgbWl4aW4gd2lsbCBza2lwIHRoZSBgc21hbGxgIGJyZWFrcG9pbnQuIFVzZSB0aGlzIHdpdGggY29tcG9uZW50cyB0aGF0IGRvbid0IHByZWZpeCBjbGFzc2VzIHdpdGggYHNtYWxsLWAsIG9ubHkgYG1lZGl1bS1gIGFuZCB1cC5cbkBtaXhpbiAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogdHJ1ZSkge1xuICAkbGlzdDogJGJyZWFrcG9pbnQtY2xhc3NlcztcblxuICBAaWYgbm90ICRzbWFsbCB7XG4gICAgJGxpc3Q6IHNsLXJlbW92ZSgkbGlzdCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICB9XG5cbiAgQGVhY2ggJG5hbWUgaW4gJGxpc3Qge1xuICAgICQtemYtc2l6ZTogJG5hbWUgIWdsb2JhbDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgdGhlIGBAY29udGVudGAgcGFzc2VkIHRvIHRoZSBtaXhpbiB3aXRoIGEgdmFsdWUgYCQtemYtYnAtdmFsdWVgIHJlbGF0ZWQgdG8gYSBicmVha3BvaW50LCBkZXBlbmRpbmcgb24gdGhlIGAkbmFtZWAgcGFyYW1ldGVyOlxuLy8vIC0gRm9yIGEgc2luZ2xlIHZhbHVlLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhpcyB2YWx1ZS5cbi8vLyAtIEZvciBhIGJyZWFrcG9pbnQgbmFtZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgLlxuLy8vIC0gRm9yIFwiYXV0b1wiLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAgYW5kIGlzIHBhc3NlZCB0byBgQGNvbnRlbnRgLCB3aGljaCBpcyBtYWRlIHJlc3BvbnNpdmUgZm9yIGVhY2ggYnJlYWtwb2ludCBvZiBgJG1hcGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJG5hbWUgW2F1dG9dIC0gU2luZ2xlIHZhbHVlIG9yIGJyZWFrcG9pbnQgbmFtZSB0byB1c2UuIFwiYXV0b1wiIGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gTWFwIG9mIGJyZWFrcG9pbnRzIGFuZCB2YWx1ZXMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS5cbkBtaXhpbiAtemYtYnJlYWtwb2ludC12YWx1ZShcbiAgJG5hbWU6IGF1dG8sXG4gICRtYXA6IG51bGxcbikge1xuICBAaWYgJG5hbWUgPT0gYXV0byBhbmQgdHlwZS1vZigkbWFwKSA9PSAnbWFwJyB7XG4gICAgLy8gXCJhdXRvXCJcbiAgICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRrKSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCR2LCAkbWFwKSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIGJyZWFrcG9pbnQgbmFtZVxuICAgIEBpZiB0eXBlLW9mKCRuYW1lKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkbmFtZTogLXpmLWdldC1icC12YWwoJG1hcCwgJG5hbWUpO1xuICAgIH1cblxuICAgIC8vIGJyZWFrcG9pbnQgdmFsdWVcbiAgICAkLXpmLWJwLXZhbHVlOiAkbmFtZSAhZ2xvYmFsO1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWJhc2Vcbi8vLy9cblxuLy8gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuLy8gVGhlc2UgYXJlIHN0eWxlcyBhcHBsaWVkIHRvIGJhc2ljIEhUTUwgdGFncywgaW5jbHVkaW5nOlxuLy8gICAtIFBhcmFncmFwaHMgPHA+XG4vLyAgIC0gQm9sZC9pdGFsaWNzIDxiPiA8c3Ryb25nPiA8aT4gPGVtPlxuLy8gICAtIFNtYWxsIHRleHQgPHNtYWxsPlxuLy8gICAtIEhlYWRpbmdzIDxoMT4tPGg2PlxuLy8gICAtIEFuY2hvcnMgPGE+XG4vLyAgIC0gRGl2aWRlcnMgPGhyPlxuLy8gICAtIExpc3RzIDx1bD4gPG9sPiA8ZGw+XG4vLyAgIC0gQmxvY2txdW90ZXMgPGJsb2NrcXVvdGU+XG4vLyAgIC0gQ29kZSBibG9ja3MgPGNvZGU+XG4vLyAgIC0gQWJicmV2aWF0aW9ucyA8YWJicj5cbi8vICAgLSBDaXRhdGlvbnMgPGNpdGU+XG4vLyAgIC0gS2V5c3Ryb2tlcyA8a2JkPlxuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGhlYWRlciBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0eWxlIChlLmcuIGl0YWxpY2l6ZWQpIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgdXNlZCBmb3IgZWxlbWVudHMgdGhhdCB1c2UgbW9ub3NwYWNlZCB0eXBlLCBzdWNoIGFzIGNvZGUgc2FtcGxlc1xuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgQ291cmllciwgbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIGZvciBoZWFkaW5ncyBhdCB2YXJpb3VzIHNjcmVlbiBzaXplcy4gRWFjaCBrZXkgaXMgYSBicmVha3BvaW50LCBhbmQgZWFjaCB2YWx1ZSBpcyBhIG1hcCBvZiBoZWFkaW5nIHN0eWxlcy5cbi8vLyBAdHlwZSBNYXBcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAyNCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAxOSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNyksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDgpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogNDApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMzEpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjUpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuKSAhZGVmYXVsdDtcblxuLy8gJGhlYWRlci1zdHlsZXMgbWFwIGlzIGJ1aWx0IGZyb20gJGhlYWRlci1zaXplcyBpbiBvcmRlciB0byBlbnN1cmUgZG93bndhcmQgY29tcGF0aWJpbGl0eVxuLy8gd2hlbiAkaGVhZGVyLXNpemVzIGlzIGRlcHJlY2lhdGVkLCAkaGVhZGVyLXN0eWxlcyBuZWVkcyB0byBnZXQgIWRlZmF1bHQgdmFsdWVzIGxpa2Ugc2V0dGluZ3Muc2Nzc1xuQGZ1bmN0aW9uIGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpIHtcbiAgQHdhcm4gJ05vdGUsIHRoYXQgJGhlYWRlci1zaXplcyBoYXMgYmVlbiByZXBsYWNlZCB3aXRoICRoZWFkZXItc3R5bGVzLiAkaGVhZGVyLXNpemVzIHN0aWxsIHdvcmtzLCBidXQgaXQgaXMgZ29pbmcgdG8gYmUgZGVwcmVjaWF0ZWQuJztcbiAgJGhlYWRlci1zdHlsZXM6ICgpO1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zaXplcyB7XG4gICAgJGhlYWRlci1tYXA6ICgpO1xuICAgIEBlYWNoICRoZWFkZXIsICRmb250LXNpemUgaW4gJGhlYWRlcnMge1xuICAgICAgJGhlYWRlci1tYXA6IG1hcC1tZXJnZSgkaGVhZGVyLW1hcCwgKCRoZWFkZXI6ICgnZm9udC1zaXplJzogJGZvbnQtc2l6ZSkpKTsgIFxuICAgIH1cbiAgICAkaGVhZGVyLXN0eWxlczogbWFwLW1lcmdlKCRoZWFkZXItc3R5bGVzLCAoJHNpemU6ICRoZWFkZXItbWFwKSk7XG4gIH1cbiAgQHJldHVybiAkaGVhZGVyLXN0eWxlcztcbn1cblxuLy8gSWYgaXQgZXhpc3RzICRoZWFkZXJzLXNpemVzIGlzIHVzZWQgdG8gYnVpbGQgJGhlYWRlci1zdHlsZXMuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoaGVhZGVyLXNpemVzKSB7XG4gICRoZWFkZXItc3R5bGVzOiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKTtcbn1cblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGA8c21hbGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbWFsbC1mb250LXNpemU6IDgwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGA8c21hbGw+YCBlbGVtZW50cyB3aGVuIHBsYWNlZCBpbnNpZGUgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGluc2lkZSBgPHA+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIGZvciBwYXJhZ3JhcGggdGV4dC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlb2NyYXRpb24gZm9yIGxpbmtzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBMaXN0XG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0byAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gIWRlZmF1bHQ7XG5cbi8vLyBCdWxsZXQgdHlwZSB0byB1c2UgZm9yIHVub3JkZXJlZCBsaXN0cyAoZS5nLiwgYHNxdWFyZWAsIGBjaXJjbGVgLCBgZGlzY2ApLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYyAhZGVmYXVsdDtcblxuLy8vIFBvc2l0aW9uaW5nIGZvciBidWxsZXRzIG9uIHVub3JkZXJlZCBsaXN0IGl0ZW1zLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBsaXN0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgYSBsaXN0IGluc2lkZSBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBgPGRsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBgPGR0PmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYDxkdD5gIGFuZCBgPGRkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgYDxibG9ja3F1b3RlPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpICFkZWZhdWx0O1xuXG4vLy8gU2lkZSBib3JkZXIgZm9yIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBzZXVkbyBjb250ZW50IGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjaXRlLXBzZXVkby1jb250ZW50OiAnXFwyMDE0IFxcMDAyMCcgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIGJvcmRlciBzdHlsZSBmb3IgYDxhYmJyPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjayAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1iYXNlIHtcbiAgLy8gVHlwb2dyYXBoeSByZXNldHNcbiAgZGl2LFxuICBkbCxcbiAgZHQsXG4gIGRkLFxuICB1bCxcbiAgb2wsXG4gIGxpLFxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2LFxuICBwcmUsXG4gIGZvcm0sXG4gIHAsXG4gIGJsb2NrcXVvdGUsXG4gIHRoLFxuICB0ZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBQYXJhZ3JhcGhzXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgIHRleHQtcmVuZGVyaW5nOiAkcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nO1xuICB9XG5cbiAgLy8gRW1waGFzaXplZCB0ZXh0XG4gIGVtLFxuICBpIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTdHJvbmcgdGV4dFxuICBzdHJvbmcsXG4gIGIge1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU21hbGwgdGV4dFxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSGVhZGluZ3NcbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNiB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJGhlYWRlci1mb250LXN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkaGVhZGVyLWNvbG9yO1xuICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xuXG4gICAgc21hbGwge1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICBjb2xvcjogJGhlYWRlci1zbWFsbC1mb250LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhlYWRpbmcgc3R5bGVzXG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXN0eWxlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGhlYWRlciwgJGhlYWRlci1kZWZzIGluICRoZWFkZXJzIHtcbiAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiAxcmVtO1xuICAgICAgICAjeyRoZWFkZXJ9IHtcblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZnMpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZzKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGgpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYygkaGVhZGVyLWxpbmVoZWlnaHQsICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbXQpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtdCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYikpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJGhlYWRlci1tYXJnaW4tYm90dG9tKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMaW5rc1xuICBhIHtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBjb2xvcjogJGFuY2hvci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yLWhvdmVyO1xuICAgICAgQGlmICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyICE9ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhvcml6b250YWwgcnVsZVxuICBociB7XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICBtYXgtd2lkdGg6ICRoci13aWR0aDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAkaHItbWFyZ2luO1xuXG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhyLWJvcmRlcjtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgfVxuXG4gIC8vIExpc3RzXG4gIHVsLFxuICBvbCxcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LW1hcmdpbi1ib3R0b207XG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XG4gICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBMaXN0IGl0ZW1zXG4gIGxpIHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBVbm9yZGVyZWQgbGlzdHNcbiAgdWwge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogJGxpc3Qtc3R5bGUtdHlwZTtcbiAgfVxuXG4gIC8vIE9yZGVyZWQgbGlzdHNcbiAgb2wge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICB9XG5cbiAgLy8gTmVzdGVkIHVub3JkZXJlZC9vcmRlcmVkIGxpc3RzXG4gIHVsLCBvbCB7XG4gICAgJiAmIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmaW5pdGlvbiBsaXN0c1xuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LW1hcmdpbi1ib3R0b207XG5cbiAgICBkdCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tO1xuICAgICAgZm9udC13ZWlnaHQ6ICRkZWZubGlzdC10ZXJtLXdlaWdodDtcbiAgICB9XG4gIH1cblxuICAvLyBCbG9ja3F1b3Rlc1xuICBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDAgMCAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgcGFkZGluZzogJGJsb2NrcXVvdGUtcGFkZGluZztcbiAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAkYmxvY2txdW90ZS1ib3JkZXI7XG5cbiAgICAmLCBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2l0YXRpb25zXG4gIGNpdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGNpdGUtZm9udC1zaXplO1xuICAgIGNvbG9yOiAkY2l0ZS1jb2xvcjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICRjaXRlLXBzZXVkby1jb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIEFiYnJldmlhdGlvbnNcbiAgYWJiciB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFiYnItdW5kZXJsaW5lO1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgIGN1cnNvcjogaGVscDtcbiAgfVxuXG4gIC8vIEZpZ3VyZXNcbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgXG4gIC8vIENvZGVcbiAgY29kZSB7XG4gICAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcblxuICAgIGJvcmRlcjogJGNvZGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkY29kZS1jb2xvcjtcbiAgfVxuXG4gIC8vIEtleXN0cm9rZXNcbiAga2JkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGtleXN0cm9rZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcbiAgICBjb2xvcjogJGtleXN0cm9rZS1jb2xvcjtcblxuICAgIEBpZiBoYXMtdmFsdWUoJGtleXN0cm9rZS1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRrZXlzdHJva2UtcmFkaXVzO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gUmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW0gLSBOdW1iZXIgdG8gc3RyaXAgdW5pdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLy8gQ29udmVydHMgb25lIG9yIG1vcmUgcGl4ZWwgdmFsdWVzIGludG8gbWF0Y2hpbmcgcmVtIHZhbHVlcy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR2YWx1ZXMgLSBPbmUgb3IgbW9yZSB2YWx1ZXMgdG8gY29udmVydC4gQmUgc3VyZSB0byBzZXBhcmF0ZSB0aGVtIHdpdGggc3BhY2VzIGFuZCBub3QgY29tbWFzLiBJZiB5b3UgbmVlZCB0byBjb252ZXJ0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHdyYXAgdGhlIGxpc3QgaW4gcGFyZW50aGVzZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIFRoZSBiYXNlIHZhbHVlIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBgcmVtYC4gSWYgeW91J3JlIHVzaW5nIEZvdW5kYXRpb24gb3V0IG9mIHRoZSBib3gsIHRoaXMgaXMgMTZweC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgYG51bGxgLCB0aGUgZnVuY3Rpb24gd2lsbCByZWZlcmVuY2UgdGhlIGAkYmFzZS1mb250LXNpemVgIHZhcmlhYmxlIGFzIHRoZSBiYXNlLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiBudWxsKSB7XG4gICRyZW0tdmFsdWVzOiAoKTtcbiAgJGNvdW50OiBsZW5ndGgoJHZhbHVlcyk7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcbiAgfVxuXG4gIC8vIFVzaW5nIHJlbSBhcyBiYXNlIGFsbG93cyBjb3JyZWN0IHNjYWxpbmdcbiAgQGlmIHVuaXQoJGJhc2UpID09ICdyZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmICRjb3VudCA9PSAxIHtcbiAgICBAcmV0dXJuIC16Zi10by1yZW0oJHZhbHVlcywgJGJhc2UpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY291bnQge1xuICAgICRyZW0tdmFsdWVzOiBhcHBlbmQoJHJlbS12YWx1ZXMsIC16Zi10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XG59XG5cbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXG5AZnVuY3Rpb24gLXpmLWJwLXRvLWVtKCR2YWx1ZSkge1xuICAvLyBQaXhlbCBhbmQgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gcmVtc1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcgb3IgdW5pdGxlc3MoJHZhbHVlKSB7XG4gICAgJHZhbHVlOiByZW0tY2FsYygkdmFsdWUsICRiYXNlOiAxNnB4KTtcbiAgfVxuXG4gIC8vIFRoZW4gdGhlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBlbXNcbiAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxZW07XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsIHZhbHVlIHRvIG1hdGNoaW5nIHJlbSB2YWx1ZS4gKkFueSogdmFsdWUgcGFzc2VkLCByZWdhcmRsZXNzIG9mIHVuaXQsIGlzIGFzc3VtZWQgdG8gYmUgYSBwaXhlbCB2YWx1ZS4gQnkgZGVmYXVsdCwgdGhlIGJhc2UgcGl4ZWwgdmFsdWUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHJlbSB2YWx1ZSBpcyB0YWtlbiBmcm9tIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFBpeGVsIHZhbHVlIHRvIGNvbnZlcnQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIG51bWJlciBpbiByZW1zLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGhlIGJhc2UgcGl4ZWwgdmFsdWUuIHJlbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzIGlzLlxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnbnVtYmVyJyB7XG4gICAgQHdhcm4gaW5zcGVjdCgkdmFsdWUpICsgJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIGVtIGludG8gcmVtIGlmIHNvbWVvbmUgaGFuZHMgb3ZlciAnZW0nc1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogMXJlbTtcbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSByZW0gaWYgdW5pdHMgZm9yICR2YWx1ZSBpcyBub3QgcmVtIG9yIGVtXG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSkgKiAxcmVtO1xuICB9XG5cbiAgLy8gVHVybiAwcmVtIGludG8gMFxuICBAaWYgJHZhbHVlID09IDByZW0ge1xuICAgICR2YWx1ZTogMDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCwgcGVyY2VudGFnZSwgcmVtIG9yIGVtIHZhbHVlIHRvIGEgdW5pdGxlc3MgdmFsdWUgYmFzZWQgb24gYSBnaXZlbiBmb250IHNpemUuIElkZWFsIGZvciB3b3JraW5nIG91dCB1bml0bGVzcyBsaW5lIGhlaWdodHMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gY29udmVydCB0byBhIHVuaXRsZXNzIGxpbmUgaGVpZ2h0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gVGhlIGZvbnQgc2l6ZSB0byB1c2UgdG8gd29yayBvdXQgdGhlIGxpbmUgaGVpZ2h0IC0gZGVmYXVsdHMgdG8gJGdsb2JhbC1mb250LXNpemVcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBVbml0bGVzcyBudW1iZXJcbkBmdW5jdGlvbiB1bml0bGVzcy1jYWxjKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBGaXJzdCwgbGV0cyBjb252ZXJ0IG91ciAkYmFzZSB0byBwaXhlbHNcblxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcbiAgfVxuXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gTm93IGxldHMgY29udmVydCBvdXIgdmFsdWUgdG8gcGl4ZWxzIHRvb1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICclJyB7XG4gICAgJHZhbHVlOiAoJHZhbHVlIC8gMTAwJSkgKiAkYmFzZTtcbiAgfVxuXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogJGJhc2U7XG4gIH1cblxuICAvLyAncHgnXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyB7XG4gICAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKTtcbiAgfVxuXG4gIC8vIGFzc3VtZSB0aGF0IGxpbmUtaGVpZ2h0cyBncmVhdGVybiB0aGVuIDEwIGFyZSBtZWFudCB0byBiZSBhYnNvbHV0ZSBpbiAncHgnXG4gIEBpZiB1bml0bGVzcygkdmFsdWUpIGFuZCAoJHZhbHVlID4gMTApIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIHN0cmlwLXVuaXQoJGJhc2UpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVha3BvaW50c1xuLy8vL1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDY0MHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsYXJnZXN0IG5hbWVkIGJyZWFrcG9pbnQgaW4gd2hpY2ggdG8gaW5jbHVkZSBwcmludCBhcyBhIG1lZGlhIHR5cGVcbi8vLyBAdHlwZSBLZXl3b3JkXG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2UgIWRlZmF1bHQ7XG5cbiQtemYtemVyby1icmVha3BvaW50OiBzbWFsbCAhZGVmYXVsdDtcblxuJC16Zi1icmVha3BvaW50cy1rZXlzOiBtYXAtdG8tbGlzdCgkYnJlYWtwb2ludHMsICdrZXlzJyk7XG5cbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcbiAgQGVycm9yICdZb3VyIHNtYWxsZXN0IGJyZWFrcG9pbnQgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnRzKSBtdXN0IGJlIHNldCB0byBcIjBcIi4nO1xufVxuQGVsc2Uge1xuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xufVxuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gU2l6ZSBvciBrZXl3b3JkXG4gICRicDogbnRoKCR2YWwsIDEpO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1heDogMDtcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG4gIC8vIEV2ZW50dWFsIG91dHB1dFxuICAkc3RyOiAnJztcbiAgLy8gSXMgaXQgYSBuYW1lZCBtZWRpYSBxdWVyeT9cbiAgJG5hbWVkOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XG4gIH1cbiAgQGVsc2UgaWYgJGJwID09ICdyZXRpbmEnIHtcbiAgICBAcmV0dXJuICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJztcbiAgfVxuXG4gIC8vIFRyeSB0byBwdWxsIGEgbmFtZWQgYnJlYWtwb2ludCBvdXQgb2YgdGhlICRicmVha3BvaW50cyBtYXBcbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG4gICAgICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgICAgICAkYnAtbWF4OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgfVxuXG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgJG5hbWVkOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyICRicmVha3BvaW50cyBzZXR0aW5nLic7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udmVydCBhbnkgcGl4ZWwsIHJlbSwgb3IgdW5pdGxlc3MgdmFsdWUgdG8gZW1cbiAgJGJwOiAtemYtYnAtdG8tZW0oJGJwKTtcbiAgQGlmICRicC1tYXgge1xuICAgICRicC1tYXg6IC16Zi1icC10by1lbSgkYnAtbWF4KSAtICgxLzE2KTtcbiAgfVxuXG4gIC8vIENvbmRpdGlvbnMgdG8gc2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvblxuICAvLyAtIEl0J3MgYSBuYW1lZCBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIGRvd25cIiBvciBcIjAgdXBcIlxuICAvLyAtIEl0J3MgYSBudW1lcmljIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgXCIgKyBhbnl0aGluZ1xuICBAaWYgJGJwID4gMGVtIG9yICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAvLyBgb25seWAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKSBhbmQgKG1heC13aWR0aDogbilgXG4gICAgQGlmICRkaXIgPT0gJ29ubHknIHtcbiAgICAgIC8vIE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBcIm9ubHlcIiByYW5nZVxuICAgICAgQGlmICRuYW1lZCA9PSB0cnVlIHtcbiAgICAgICAgLy8gT25seSB1c2UgXCJtaW4td2lkdGhcIiBpZiB0aGUgZmxvb3IgaXMgZ3JlYXRlciB0aGFuIDBcbiAgICAgICAgQGlmICRicCA+IDBlbSB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcblxuICAgICAgICAgIC8vIE9ubHkgYWRkIFwiYW5kXCIgdG8gdGhlIG1lZGlhIHF1ZXJ5IGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbmx5IHVzZSBcIm1heC13aWR0aFwiIGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skYnAtbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgZG93bmAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWF4LXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkZGlyID09ICdkb3duJyB7XG4gICAgICAkbWF4OiBpZigkbmFtZWQsICRicC1tYXgsICRicCk7XG5cbiAgICAgIC8vIFNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb24gaWYgaW5wdXQgdmFsdWUgaXMgZXhhY3RseSBcIjAgZG93blwiLFxuICAgICAgLy8gdW5sZXNzIHRoZSBmdW5jdGlvbiB3YXMgY2FsbGVkIGFzIFwic21hbGwgZG93blwiLCBpbiB3aGljaCBjYXNlIGl0J3MganVzdCBcInNtYWxsIG9ubHlcIlxuICAgICAgQGlmICRuYW1lZCBvciAkYnAgPiAwZW0ge1xuICAgICAgICBAaWYgJG1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JG1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGB1cGAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkYnAgPiAwZW0ge1xuICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWUpIHtcbiAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuICAkYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHZhbHVlKTtcbiAgJHBicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkcHJpbnQtYnJlYWtwb2ludCk7XG5cbiAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxuICBAaWYgJHN0ciA9PSAnJyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBPdGhlcndpc2UsIHdyYXAgdGhlIGNvbnRlbnQgaW4gYSBtZWRpYSBxdWVyeVxuICBAZWxzZSB7XG4gICAgLy8gRm9yIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAkcHJpbnQtYnJlYWtwb2ludCwgYWRkIHByaW50IHRvIHRoZSBtZWRpYSB0eXBlc1xuICAgIEBpZiAkYnAgIT0gbnVsbCBhbmQgJGJwIDw9ICRwYnAge1xuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIENvbnZlcnMgdGhlIGJyZWFrcG9pbnRzIG1hcCB0byBhIFVSTC1lbmNvZGVkIHN0cmluZywgbGlrZSB0aGlzOiBga2V5MT12YWx1ZTEma2V5Mj12YWx1ZTJgLiBUaGUgdmFsdWUgaXMgdGhlbiBkcm9wcGVkIGludG8gdGhlIENTUyBmb3IgYSBzcGVjaWFsIGA8bWV0YT5gIHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0LiBUaGlzIGlzIGhvdyB3ZSB0cmFuc2ZlciB2YWx1ZXMgZnJvbSBTYXNzIHRvIEphdmFTY3JpcHQsIHNvIHRoZXkgY2FuIGJlIGRlZmluZWQgaW4gb25lIHBsYWNlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gY29udmVydC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1hcCdzIGNvbnRlbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC1zZXJpYWxpemUoJG1hcCkge1xuICAkc3RyOiAnJztcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICRzdHI6ICRzdHIgKyAka2V5ICsgJz0nICsgLXpmLWJwLXRvLWVtKCR2YWx1ZSkgKyAnJic7XG4gIH1cbiAgJHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IGtleSBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBhZnRlciBgJGtleWAsIGlmIGAka2V5YCB3YXMgZm91bmQuIElmIGAka2V5YCB3YXMgbm90IGZvdW5kLCBvciBgJGtleWAgd2FzIHRoZSBsYXN0IHZhbHVlIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dCgkbWFwLCAka2V5KSB7XG5cbiAgLy8gU3RvcmUgdGhlIGtleXMgb2YgdGhlIG1hcCBhcyBhIGxpc3RcbiAgJHZhbHVlczogbWFwLWtleXMoJG1hcCk7XG5cbiAgJGk6IDA7XG5cbiAgLy8gSWYgdGhlIEtleSBFeGlzdHMsIEdldCB0aGUgaW5kZXggb2YgdGhlIGtleSB3aXRoaW4gdGhlIG1hcCBhbmQgYWRkIDEgdG8gaXQgZm9yIHRoZSBuZXh0IGJyZWFrcG9pbnQgaW4gdGhlIG1hcFxuICBAaWYgKG1hcC1oYXMta2V5KCRtYXAsICRrZXkpKSB7XG4gICAgJGk6IGluZGV4KCR2YWx1ZXMsICRrZXkpICsgMTtcbiAgfVxuXG4gIC8vIElmIHRoZSBrZXkgZG9lc24ndCBleGlzdCwgb3IgaXQncyB0aGUgbGFzdCBrZXkgaW4gdGhlIG1hcCwgcmV0dXJuIG51bGxcbiAgQGlmICgkaSA+IGxlbmd0aCgkbWFwKSBvciAkaSA9PSAwKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsIG50aCgkdmFsdWVzLCAkaSkpO1xuICB9XG5cbn1cblxuLy8vIEdldCBhIHZhbHVlIGZvciBhIGJyZWFrcG9pbnQgZnJvbSBhIHJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXQgcmVnYXJkbGVzcyBvZiBgJHZhbHVlYC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGRvZXMgKm5vdCogaGF2ZSB0aGUgYnJlYWtwb2ludCwgdGhlIHZhbHVlIG1hdGNoaW5nIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGluIHRoZSBjb25maWcgbWFwIGlzIHJldHVybmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gUmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtNaXhlZH0gVGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZS5cbkBmdW5jdGlvbiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkdmFsdWUpIHtcbiAgLy8gSWYgdGhlIGdpdmVuIG1hcCBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0XG4gIEBpZiB0eXBlLW9mKCRtYXApID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICRtYXA7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIG1lZGl1bSkge1xuICAkbWVkaXVtLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0pfScpO1xuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcbiAgJGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSl9Jyk7XG4gICRsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktaGVscGVyc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxlYWQtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIHN0YXRpc3RpYyBudW1iZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN0YXQtZm9udC1zaXplOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktaGVscGVycyB7XG4gIC8vIFVzZSB0byBjcmVhdGUgYSBzdWJoZWFkaW5nIHVuZGVyIGEgbWFpbiBoZWFkZXJcbiAgLy8gTWFrZSBzdXJlIHlvdSBwYWlyIHRoZSB0d28gZWxlbWVudHMgaW4gYSA8aGVhZGVyPiBlbGVtZW50LCBsaWtlIHRoaXM6XG4gIC8vIDxoZWFkZXI+XG4gIC8vICAgPGgxPkhlYWRpbmc8L2gxPlxuICAvLyAgIDxoMj5TdWJoZWFkaW5nPC9oMj5cbiAgLy8gPC9oZWFkZXI+XG4gIC5zdWJoZWFkZXIge1xuICAgIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItbWFyZ2luLXRvcDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJHN1YmhlYWRlci1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkc3ViaGVhZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGFuIGludHJvZHVjdG9yeSBsZWFkLCBkZWNrLCBibHVyYiwgZXRjLlxuICAubGVhZCB7XG4gICAgZm9udC1zaXplOiAkbGVhZC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRsZWFkLWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYSBsYXJnZSBudW1iZXIgdG8gZGlzcGxheSBhIHN0YXRpc3RpY1xuICAuc3RhdCB7XG4gICAgZm9udC1zaXplOiAkc3RhdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBwICsgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICB9XG4gIH1cblxuICAvLyBVc2UgdG8gcmVtb3ZlIHRoZSBidWxsZXRzIGZyb20gYW4gdW5vcmRlcmVkIGxpc3RcbiAgLm5vLWJ1bGxldCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tdGV4dC1hbGlnbm1lbnQge1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkYWxpZ24gaW4gKGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnkpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgLnRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSWYgYHRydWVgLCBhbGwgZWxlbWVudHMgd2lsbCBoYXZlIHRyYW5zcGFyZW50IGJhY2tncm91bmRzIHdoZW4gcHJpbnRlZCwgdG8gc2F2ZSBvbiBpbmsuXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBncm91cCBnbG9iYWxcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZSAhZGVmYXVsdDtcbiRwcmludC1ocmVmczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gc2Fzcy1saW50OmRpc2FibGUtYWxsXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByaW50LXN0eWxlcyB7XG4gIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgKiB7XG4gICAgICBAaWYgJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsgLy8gQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vc1xuICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICB0YWJsZS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdGJvZHkuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIHRoLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbiAgICAvLyBEaXNwbGF5IHRoZSBVUkwgb2YgYSBsaW5rIGFmdGVyIHRoZSB0ZXh0XG4gICAgYSxcbiAgICBhOnZpc2l0ZWQgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9XG4gICAgQGlmICRwcmludC1ocmVmcyB7XG4gICAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKGhyZWYpICcpJzsgfVxuICAgIH1cblxuICAgIC8vIERvbid0IGRpc3BsYXkgdGhlIFVSTCBmb3IgaW1hZ2VzIG9yIEphdmFTY3JpcHQvaW50ZXJuYWwgbGlua3NcbiAgICAuaXIgYTphZnRlcixcbiAgICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICAgIGFbaHJlZl49JyMnXTphZnRlciB7IGNvbnRlbnQ6ICcnOyB9XG5cbiAgICAvLyBEaXNwbGF5IHdoYXQgYW4gYWJicmV2aWF0aW9uIHN0YW5kcyBmb3IgYWZ0ZXIgdGhlIHRleHRcbiAgICBhYmJyW3RpdGxlXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cih0aXRsZSkgJyknOyB9XG5cbiAgICAvLyBQcmV2ZW50IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgYSBibG9ja3F1b3RlIG9yIHByZWZvcm1hdHRlZCB0ZXh0IGJsb2NrXG4gICAgcHJlLFxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvLyBoNWJwLmNvbS90XG4gICAgdGhlYWQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cblxuICAgIHRyLFxuICAgIGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuXG4gICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuICAgIEBwYWdlIHsgbWFyZ2luOiAwLjVjbTsgfVxuXG4gICAgcCxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICBvcnBoYW5zOiAzO1xuICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIC8vIEF2b2lkIHBhZ2UgYnJlYWtzIGFmdGVyIGEgaGVhZGluZ1xuICAgIGgyLFxuICAgIGgzIHsgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cblxuICAgIC8vIEhlbHBlciB0byByZS1hbGxvdyBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGNlcnRhaW4gZWxlbWVudHMgKGUuZy4gcHJlLCBibG9ja3F1b3RlLCB0cilcbiAgICAucHJpbnQtYnJlYWstaW5zaWRlIHtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGluc2lkZSBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBhcm91bmQgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZpbGwgZm9yIGJ1dHRvbnMuIENhbiBlaXRoZXIgYmUgYHNvbGlkYCBvciBgaG9sbG93YC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kYnV0dG9uLWZpbGw6IHNvbGlkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGl2ZSBmb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciB3aWR0aCBmb3IgaG9sbG93IG91dGxpbmUgYnV0dG9uc1xuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIG9wYWNpdHkgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgaG9sbG93IGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCUgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsOiBmbGlwIGZyb20gbWFyZ2luLXJpZ2h0IHRvIG1hcmdpbi1sZWZ0IGZvciBkZWZhdWx0c1xuQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAkYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xufVxuXG4vLy8gdHJhbnNpdGlvbnMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8gVE9ETzogRG9jdW1lbnQgYnV0dG9uLWJhc2UoKSBtaXhpblxuQG1peGluIGJ1dHRvbi1iYXNlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG5cbiAgQGlmICh0eXBlLW9mKCRidXR0b24tcGFkZGluZykgPT0gJ21hcCcpIHtcbiAgICBAZWFjaCAkc2l6ZSwgJHBhZGRpbmcgaW4gJGJ1dHRvbi1wYWRkaW5nIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBwYWRkaW5nOiAkYnV0dG9uLXBhZGRpbmc7XG4gIH1cblxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgdHJhbnNpdGlvbjogJGJ1dHRvbi10cmFuc2l0aW9uO1xuXG4gIGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vLy8gRXhwYW5kcyBhIGJ1dHRvbiB0byBtYWtlIGl0IGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHRoZSBleHBhbmQgYmVoYXZpb3IuIFNldCB0byBgZmFsc2VgIHRvIHJldmVyc2UgdGhpcyBiZWhhdmlvci5cbkBtaXhpbiBidXR0b24tZXhwYW5kKCRleHBhbmQ6IHRydWUpIHtcbiAgQGlmICRleHBhbmQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLXN0eWxlKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgfVxuXG4gIEBpZiAkYmFja2dyb3VuZC1ob3ZlciA9PSBhdXRvIHtcbiAgICAkYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJhY2tncm91bmQsICRsaWdodG5lc3M6ICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzcyk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBSZW1vdmVzIGJhY2tncm91bmQgZmlsbCBvbiBob3ZlciBhbmQgZm9jdXMgZm9yIGhvbGxvdyBidXR0b25zLlxuQG1peGluIGJ1dHRvbi1ob2xsb3cge1xuICAmLFxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdy1zdHlsZShcbiAgJGNvbG9yOiAkcHJpbWFyeS1jb2xvcixcbiAgJGhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzLCBcbiAgJGJvcmRlci13aWR0aDogJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoXG4pIHtcbiAgJGNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRob3Zlci1saWdodG5lc3MpO1xuXG4gIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkY29sb3I7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBkaXNhYmxlZCBzdHlsZXMgdG8gYSBidXR0b24gYnkgZmFkaW5nIHRoZSBlbGVtZW50LCByZXNldGluZyB0aGUgY3Vyc29yLCBhbmQgZGlzYWJsaW5nIHBvaW50ZXIgZXZlbnRzLlxuLy8vIEBwYXJhbSBbQ29sb3JdICRiYWNrZ3JvdW5kIFskcHJpbWFyeS1jb2xvcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHBhcmFtIFtDb2xvcl0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGRpc2FibGVkIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLWRpc2FibGVkKFxuICAkYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvclxuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgfVxuXG4gIG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBBZGRzIGEgZHJvcGRvd24gYXJyb3cgdG8gYSBidXR0b24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIFswLjRlbV0gLSBTaXplIG9mIHRoZSBhcnJvdy4gV2UgcmVjb21tZW5kIHVzaW5nIGFuIGBlbWAgdmFsdWUgc28gdGhlIHRyaWFuZ2xlIHNjYWxlcyB3aGVuIHVzZWQgaW5zaWRlIGRpZmZlcmVudCBzaXplcyBvZiBidXR0b25zLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbd2hpdGVdIC0gQ29sb3Igb2YgdGhlIGFycm93LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb2Zmc2V0IFskYnV0dG9uLXBhZGRpbmddIC0gRGlzdGFuY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0IG9mIHRoZSBidXR0b24uIERlZmF1bHRzIHRvIHdoYXRldmVyIHRoZSByaWdodCBwYWRkaW5nIG9mIGEgYnV0dG9uIGlzLlxuQG1peGluIGJ1dHRvbi1kcm9wZG93bihcbiAgJHNpemU6IDAuNGVtLFxuICAkY29sb3I6ICR3aGl0ZSxcbiAgJG9mZnNldDogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodClcbikge1xuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRzaXplLCAkY29sb3IsIGRvd24pO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuNGVtOyAvLyBBbGlnbnMgdGhlIGFycm93IHdpdGggdGhlIHRleHQgb2YgdGhlIGJ1dHRvblxuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtcmlnaHR9O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IGdldC1zaWRlKCRidXR0b24tcGFkZGluZywgcmlnaHQpO1xuICB9XG59XG5cbi8vLyBBZGRzIGFsbCBzdHlsZXMgZm9yIGEgYnV0dG9uLiBGb3IgbW9yZSBncmFudWxhciBjb250cm9sIG92ZXIgc3R5bGVzLCB1c2UgdGhlIGluZGl2aWR1YWwgYnV0dG9uIG1peGlucy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSB0aGUgYnV0dG9uIGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0eWxlIFtzb2xpZF0gLSBTZXQgdG8gYGhvbGxvd2AgdG8gY3JlYXRlIGEgaG9sbG93IGJ1dHRvbi4gVGhlIGNvbG9yIGRlZmluZWQgaW4gYCRiYWNrZ3JvdW5kYCB3aWxsIGJlIHVzZWQgYXMgdGhlIHByaW1hcnkgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24oXG4gICRleHBhbmQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRzdHlsZTogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG5cbiAgQGlmICRzdHlsZSA9PSBzb2xpZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcbiAgfVxuICBAZWxzZSBpZiAkc3R5bGUgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG5cbiAgQGlmICRleHBhbmQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uIHtcbiAgLmJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZXhwYW5kOyB9XG5cbiAgICAvLyBDb2xvcnNcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuI3skbmFtZX0uZHJvcGRvd246OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIb2xsb3cgc3R5bGVcbiAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAmLmhvbGxvdyB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGU7XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERpc2FibGVkIHN0eWxlXG4gICAgJi5kaXNhYmxlZCxcbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQ7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkKCRjb2xvciwgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEcm9wZG93biBhcnJvd1xuICAgICYuZHJvcGRvd24ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRyb3Bkb3duO1xuXG4gICAgICBAaWYgJGJ1dHRvbi1maWxsID09IGhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5ob2xsb3cge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQnV0dG9uIHdpdGggZHJvcGRvd24gYXJyb3cgb25seVxuICAgICYuYXJyb3ctb25seTo6YWZ0ZXIge1xuICAgICAgdG9wOiAtMC4xZW07XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRm9udCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHBsYWNlaG9sZGVyIHRleHQgd2l0aGluIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEZvbnRcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgZm9jdXNlZCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZm9jdXM6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgZGlzYWJsZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBmb2N1c2VkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgaW5zaWRlIHRleHQgaW5wdXRzIHdoZW4gbm90IGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIDAuMSkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IG91dHNpZGUgdGV4dCBpbnB1dHMgd2hlbiBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDdXJzb3IgdG8gdXNlIHdoZW4gaG92ZXJpbmcgb3ZlciBhIGRpc2FibGVkIHRleHQgaW5wdXQuXG4vLy8gQHR5cGUgQ3Vyc29yXG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZCAhZGVmYXVsdDtcblxuLy8vIFByb3BlcnRpZXMgdG8gdHJhbnNpdGlvbiBvbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kaW5wdXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIHRoZSB1cC9kb3duIGJ1dHRvbnMgdGhhdCBDaHJvbWUgYW5kIEZpcmVmb3ggYWRkIHRvIGA8aW5wdXQgdHlwZT0nbnVtYmVyJz5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBSYWRpdXMgZm9yIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBmb3JtIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWVsZW1lbnQge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDI7XG5cbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkaW5wdXQtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdztcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICB9XG5cbiAgLy8gRm9jdXMgc3RhdGVcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZm9jdXM7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdy1mb2N1cztcblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXRleHQge1xuICAvLyBUZXh0IGlucHV0c1xuICAje3RleHQtaW5wdXRzKCl9LFxuICB0ZXh0YXJlYSB7XG4gICAgQGluY2x1ZGUgZm9ybS1lbGVtZW50O1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyBUZXh0IGFyZWFzXG4gIHRleHRhcmVhIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAmW3Jvd3NdIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gIH1cblxuICBpbnB1dCxcbiAgdGV4dGFyZWEge1xuICAgIC8vIFBsYWNlaG9sZGVyIHRleHRcbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yO1xuICAgIH1cblxuICAgIC8vIERpc2FibGVkL3JlYWRvbmx5IHN0YXRlXG4gICAgJjpkaXNhYmxlZCxcbiAgICAmW3JlYWRvbmx5XSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb24gYnV0dG9uLWxpa2UgaW5wdXRzXG4gIFt0eXBlPSdzdWJtaXQnXSxcbiAgW3R5cGU9J2J1dHRvbiddIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6ICRmb3JtLWJ1dHRvbi1yYWRpdXM7XG4gIH1cblxuICAvLyBSZXNldCBOb3JtYWxpemUgc2V0dGluZyBjb250ZW50LWJveCB0byBzZWFyY2ggZWxlbWVudHNcbiAgaW5wdXRbdHlwZT0nc2VhcmNoJ10geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLy8gTnVtYmVyIGlucHV0IHN0eWxlc1xuICBbdHlwZT0nbnVtYmVyJ10ge1xuICAgIEBpZiBub3QgJGlucHV0LW51bWJlci1zcGlubmVycyB7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4XG5cbiAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1jaGVja2JveCB7XG4gIFt0eXBlPSdmaWxlJ10sXG4gIFt0eXBlPSdjaGVja2JveCddLFxuICBbdHlwZT0ncmFkaW8nXSB7XG4gICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXQvbGFiZWwgc2libGluZ3NcbiAgW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcbiAgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblxuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICZbZm9yXSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dHMgaW5zaWRlIGxhYmVsc1xuICBsYWJlbCA+IFt0eXBlPSdjaGVja2JveCddLFxuICBsYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC8vIE5vcm1hbGl6ZSBmaWxlIGlucHV0IHdpZHRoXG4gIFt0eXBlPSdmaWxlJ10ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3IgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgZm9ybSBsYWJlbHMuIFRoZSBoaWdoZXIgdGhlIG51bWJlciwgdGhlIG1vcmUgc3BhY2UgYmV0d2VlbiB0aGUgbGFiZWwgYW5kIGl0cyBpbnB1dCBmaWVsZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjggIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcblxuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvcjtcbn1cblxuQG1peGluIGZvcm0tbGFiZWwtbWlkZGxlIHtcbiAgJGlucHV0LWJvcmRlci13aWR0aDogZ2V0LWJvcmRlci12YWx1ZSgkaW5wdXQtYm9yZGVyLCB3aWR0aCk7XG5cbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyICsgcmVtLWNhbGMoJGlucHV0LWJvcmRlci13aWR0aCkpIDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tbGFiZWwge1xuICBsYWJlbCB7XG4gICAgQGluY2x1ZGUgZm9ybS1sYWJlbDtcblxuICAgICYubWlkZGxlIHtcbiAgICAgIEBpbmNsdWRlIGZvcm0tbGFiZWwtbWlkZGxlO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHN0eWxlIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1oZWxwdGV4dCB7XG4gIC5oZWxwLXRleHQge1xuICAgICRtYXJnaW4tdG9wOiAoJGZvcm0tc3BhY2luZyAqIDAuNSkgKiAtMTtcblxuICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tdG9wO1xuICAgIGZvbnQtc2l6ZTogJGhlbHB0ZXh0LWZvbnQtc2l6ZTtcbiAgICBmb250LXN0eWxlOiAkaGVscHRleHQtZm9udC1zdHlsZTtcbiAgICBjb2xvcjogJGhlbHB0ZXh0LWNvbG9yO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0L3JpZ2h0IHBhZGRpbmcgb2YgYW4gcHJlL3Bvc3RmaXhlZCBpbnB1dCBsYWJlbFxuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXByZXBvc3RmaXgge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICRmb3JtLXNwYWNpbmcgKiAxLjUpO1xuXG4gIC5pbnB1dC1ncm91cCB7XG4gICAgZGlzcGxheTogaWYoJGdsb2JhbC1mbGV4Ym94LCBmbGV4LCB0YWJsZSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDAsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMpO1xuICAgIH1cblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgPiAqIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICVpbnB1dC1ncm91cC1jaGlsZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtbGFiZWwge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmc6IDAgJGlucHV0LXByZWZpeC1wYWRkaW5nO1xuICAgIGJvcmRlcjogJGlucHV0LXByZWZpeC1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kO1xuXG4gICAgY29sb3I6ICRpbnB1dC1wcmVmaXgtY29sb3I7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC1wcmVmaXgtYm9yZGVyKSB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIGEsXG4gICAgaW5wdXQsXG4gICAgYnV0dG9uLFxuICAgIGxhYmVsIHtcbiAgICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcblxuICAgICAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNwZWNpZmljaXR5IGJ1bXAgbmVlZGVkIHRvIHByZXZlbnQgb3ZlcnJpZGUgYnkgYnV0dG9uc1xuICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGJldHdlZW4gdGhlIGxlZ2VuZCB0ZXh0IGFuZCBmaWVsZHNldCBib3JkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMykgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmaWVsZHNldCB7XG4gIG1hcmdpbjogJGZpZWxkc2V0LW1hcmdpbjtcbiAgcGFkZGluZzogJGZpZWxkc2V0LXBhZGRpbmc7XG4gIGJvcmRlcjogJGZpZWxkc2V0LWJvcmRlcjtcblxuICBsZWdlbmQge1xuICAgIC8vIENvdmVycyB1cCB0aGUgZmllbGRzZXQncyBib3JkZXIgdG8gY3JlYXRlIGFydGlmaWNpYWwgcGFkZGluZ1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiByZW0tY2FsYygtMyk7XG4gICAgcGFkZGluZzogJGxlZ2VuZC1wYWRkaW5nO1xuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1maWVsZHNldCB7XG4gIGZpZWxkc2V0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICBsZWdlbmQge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLmZpZWxkc2V0IHtcbiAgICBAaW5jbHVkZSBmaWVsZHNldDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgZHJvcGRvd24gdHJpYW5nbGUgaW5zaWRlIHNlbGVjdCBtZW51cy4gU2V0IHRvIGB0cmFuc3BhcmVudGAgdG8gcmVtb3ZlIGl0IGVudGlyZWx5LlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXRyaWFuZ2xlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1zZWxlY3Qge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcblxuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nIC8gMik7XG5cbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkc2VsZWN0LXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1iYWNrZ3JvdW5kO1xuXG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcblxuICBAaWYgJHNlbGVjdC10cmlhbmdsZS1jb2xvciAhPSB0cmFuc3BhcmVudCB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC10cmlhbmdsZSgkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLW9yaWdpbjogY29udGVudC1ib3g7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogJGdsb2JhbC1yaWdodCAoLSRmb3JtLXNwYWNpbmcpIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcblxuICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogKCRmb3JtLXNwYWNpbmcgKiAxLjUpO1xuICB9XG5cbiAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICB9XG5cbiAgLy8gRm9jdXMgc3RhdGVcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZm9jdXM7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdy1mb2N1cztcblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxuXG4gIC8vIERpc2FibGVkIHN0YXRlXG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIEhpZGUgdGhlIGRyb3Bkb3duIGFycm93IHNob3duIGluIG5ld2VyIElFIHZlcnNpb25zXG4gICY6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmW211bHRpcGxlXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1zZWxlY3Qge1xuICBzZWxlY3Qge1xuICAgIEBpbmNsdWRlIGZvcm0tc2VsZWN0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhYmlkZVxuLy8vL1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGlucHV0cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtaW5wdXRzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGxhYmVscy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtbGFiZWxzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciB0byB1c2UgZm9yIGludmFsaWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB0byB1c2UgZm9yIGxhYmVscyBvZiBpbnZhbGlkIGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtZXJyb3ItY29sb3I6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyIG9mIGFuIGlucHV0IGZpZWxkIHRvIGhhdmUgYW4gZXJyb3Igc3RhdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGFsZXJ0LWNvbG9yXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhY2tncm91bmQtbGlnaHRlbiBbMTAlXSAtIExpZ2h0bmVzcyBsZXZlbCBvZiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBmb3JtLWlucHV0LWVycm9yKFxuICAkYmFja2dyb3VuZDogJGlucHV0LWJhY2tncm91bmQtaW52YWxpZCxcbiAgJGJhY2tncm91bmQtbGlnaHRlbjogMTAlXG4pIHtcbiAgJjpub3QoOmZvY3VzKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtaXgoJGJhY2tncm91bmQsICR3aGl0ZSwgJGJhY2tncm91bmQtbGlnaHRlbik7XG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBlcnJvciBzdHlsZXMgdG8gYSBmb3JtIGVsZW1lbnQsIHVzaW5nIHRoZSB2YWx1ZXMgaW4gdGhlIHNldHRpbmdzIGZpbGUuXG5AbWl4aW4gZm9ybS1lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi10b3A6ICRmb3JtLXNwYWNpbmcgKiAtMC41O1xuICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gIGZvbnQtc2l6ZTogJGlucHV0LWVycm9yLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1lcnJvci1mb250LXdlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1lcnJvci1jb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1lcnJvciB7XG4gIEBpZiAkYWJpZGUtaW5wdXRzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgaW52YWxpZCBpbnB1dHNcbiAgICAuaXMtaW52YWxpZC1pbnB1dCB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWlucHV0LWVycm9yO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkYWJpZGUtbGFiZWxzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgbGFiZWxzIG9mIGludmFsaWQgb3V0cHV0c1xuICAgIC5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZvcm0gZXJyb3IgZWxlbWVudFxuICAuZm9ybS1lcnJvciB7XG4gICAgQGluY2x1ZGUgZm9ybS1lcnJvcjtcblxuICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uLW1lbnVcbi8vLy9cblxuLy8vIFNldHMgaWYgYWNjb3JkaW9uIG1lbnVzIGhhdmUgdGhlIGRlZmF1bHQgYXJyb3cgc3R5bGVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51IHtcbiAgQGlmICRhY2NvcmRpb25tZW51LWFycm93cyB7XG4gICAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplLCAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xICogKCRhY2NvcmRpb25tZW51LWFycm93LXNpemUgLyAyKTtcbiAgICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50W2FyaWEtZXhwYW5kZWQ9J3RydWUnXSA+IGE6OmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd25cbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXdpZHRoOiAzMDBweCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBkcm9wZG93biBwYW5lcy4gRWFjaCBzaXplIGlzIGEgQ1NTIGNsYXNzIHlvdSBjYW4gYXBwbHkuXG4vLy8gQHR5cGUgTWFwXG4kZHJvcGRvd24tc2l6ZXM6IChcbiAgdGlueTogMTAwcHgsXG4gIHNtYWxsOiAyMDBweCxcbiAgbGFyZ2U6IDQwMHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEFwcGxpZXMgc3R5bGVzIGZvciBhIGJhc2ljIGRyb3Bkb3duLlxuQG1peGluIGRyb3Bkb3duLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTA7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAkZHJvcGRvd24td2lkdGg7XG4gIHBhZGRpbmc6ICRkcm9wZG93bi1wYWRkaW5nO1xuXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYm9yZGVyOiAkZHJvcGRvd24tYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkZHJvcGRvd24tcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJvcGRvd24tYmFja2dyb3VuZDtcblxuICBmb250LXNpemU6ICRkcm9wZG93bi1mb250LXNpemU7XG5cbiAgJi5pcy1vcGVuIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duIHtcbiAgLmRyb3Bkb3duLXBhbmUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcjtcbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkZHJvcGRvd24tc2l6ZXMge1xuICAgIC5kcm9wZG93bi1wYW5lLiN7JG5hbWV9IHtcbiAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duLW1lbnVcbi8vLy9cblxuLy8vIEVuYWJsZXMgYXJyb3dzIGZvciBpdGVtcyB3aXRoIGRyb3Bkb3duIG1lbnVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyb3Bkb3ducy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd25tZW51LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gQm9yZGVyIHdpZHRoIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLyBVc2VkIHRvIGFkanVzdCB0b3AgbWFyZ2luIG9mIGEgc3ViLW1lbnUgaWYgYSBib3JkZXIgaXMgdXNlZC5cbi8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGg6IG50aCgkZHJvcGRvd25tZW51LWJvcmRlciwgMSk7XG5cbkBtaXhpbiBsZWZ0LXJpZ2h0LWFycm93cyB7XG4gID4gYTo6YWZ0ZXIge1xuICAgICN7JGdsb2JhbC1yaWdodH06IDE0cHg7XG4gIH1cblxuICAmLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgbGVmdCk7XG4gIH1cblxuICAmLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIHJpZ2h0KTtcbiAgfVxufVxuXG5AbWl4aW4gZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICA+IGxpLm9wZW5zLWxlZnQge1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaS5vcGVucy1yaWdodCB7XG4gICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogMS41cmVtO1xuICAgICAgfVxuXG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcbiAgICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAtMSAqICgkZHJvcGRvd25tZW51LWFycm93LXNpemUgLyAyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgPiBsaSB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1sZWZ0IHtcbiAgICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLm9wZW5zLXJpZ2h0IHtcbiAgICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgbGVmdDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgICBAaW5jbHVkZSBsZWZ0LXJpZ2h0LWFycm93cztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudSB7XG4gIC5kcm9wZG93bi5tZW51IHtcbiAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcblxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICAgIH1cblxuICAgIC5uby1qcyAmIHVsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgICAgJi4jeyRzaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuI3skc2l6ZX0tdmVydGljYWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViIHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gICAgd2lkdGg6IDEwMHB4O1xuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBhOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplO1xuICAgIH1cblxuICAgICYub3BlbnMtaW5uZXIgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG5cbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIEBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgICYub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAxMDAlO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1pbi13aWR0aDogJGRyb3Bkb3dubWVudS1taW4td2lkdGg7XG5cbiAgICBib3JkZXI6ICRkcm9wZG93bm1lbnUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDtcblxuICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgICBAaW5jbHVkZSBsZWZ0LXJpZ2h0LWFycm93cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKHR5cGUtb2YoJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpID09ICdudW1iZXInKSB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIG1hcmdpbi10b3A6ICgtJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLy8gW1RPRE9dIEN1dCBiYWNrIHNwZWNpZmljaXR5XG4gICAgLy8mOm5vdCguanMtZHJvcGRvd24tbm9ob3ZlcikgPiAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQ6aG92ZXIgPiAmLCAvLyB3aHkgaXMgdGhpcyBsaW5lIG5lZWRlZD8gT3BlbmluZyBpcyBoYW5kbGVkIGJ5IEpTIGFuZCB0aGlzIGNhdXNlcyBzb21lIHVnbHkgZmxpY2tlcmluZyB3aGVuIHRoZSBzdWIgaXMgcmUtcG9zaXRpb25lZCBhdXRvbWF0aWNhbGx5Li4uXG4gICAgJi5qcy1kcm9wZG93bi1hY3RpdmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCByZXNwb25zaXZlLWVtYmVkXG4vLy8vXG5cbi8vLyBNYXJnaW4gYmVsb3cgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEFzcGVjdCByYXRpb3MgdXNlZCB0byBkZXRlcm1pbmUgcGFkZGluZy1ib3R0b20gb2YgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXJzLlxuLy8vIEB0eXBlIE1hcFxuJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zOiAoXG4gIGRlZmF1bHQ6IDQgYnkgMyxcbiAgd2lkZXNjcmVlbjogMTYgYnkgOSxcbikgIWRlZmF1bHQ7XG5cbi8vIFdBUk5JTkc6IFdpbGwgYmUgcmVtb3ZlZCBpbiB2ZXJzaW9uIDYuNFxuJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW86IGRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIGEgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtTdHJpbmd8TGlzdH0gJHJhdGlvIFtkZWZhdWx0XSAtIFJhdGlvIG9mIHRoZSBjb250YWluZXIuIENhbiBiZSBhIGtleSBmcm9tIHRoZSBgJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zYCBtYXAgb3IgYSBsaXN0IGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbkBtaXhpbiByZXNwb25zaXZlLWVtYmVkKCRyYXRpbzogZGVmYXVsdCkge1xuICBAaWYgdHlwZS1vZigkcmF0aW8pID09ICdzdHJpbmcnIHtcbiAgICAkcmF0aW86IG1hcC1nZXQoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLCAkcmF0aW8pO1xuICB9XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAkcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tO1xuICBwYWRkaW5nLWJvdHRvbTogcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGlmcmFtZSxcbiAgb2JqZWN0LFxuICBlbWJlZCxcbiAgdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkIHtcbiAgLnJlc3BvbnNpdmUtZW1iZWQsXG4gIC5mbGV4LXZpZGVvIHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWVtYmVkKCRyYXRpbzogZGVmYXVsdCk7XG5cbiAgICAkcmF0aW9zOiBtYXAtcmVtb3ZlKCRyZXNwb25zaXZlLWVtYmVkLXJhdGlvcyxkZWZhdWx0KTtcblxuICAgIEBlYWNoICRuYW1lLCAkcmF0aW8gaW4gJHJhdGlvcyB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC12aWRlbyB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZCgpLiBmb3VuZGF0aW9uLWZsZXgtdmlkZW8oKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjQuJztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xufVxuXG5AbWl4aW4gZmxleC12aWRlbygkcmF0aW86ICRyZXNwb25zaXZlLWVtYmVkLXJhdGlvKSB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IHJlc3BvbnNpdmUtZW1iZWQoKS4gZmxleC12aWRlbygpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSByZXNwb25zaXZlLWVtYmVkKCRyYXRpbyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIEZpbmRzIHRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvciBvZiB0d28gaW50ZWdlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGEgLSBGaXJzdCBudW1iZXIgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGIgLSBTZWNvbmQgbnVtYmVyIHRvIGNvbXBhcmUuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3IuXG5AZnVuY3Rpb24gZ2NkKCRhLCAkYikge1xuICAvLyBGcm9tOiBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvR3JlYXRlc3RfY29tbW9uX2Rpdmlzb3IjSmF2YVNjcmlwdFxuICBAaWYgKCRiICE9IDApIHtcbiAgICBAcmV0dXJuIGdjZCgkYiwgJGEgJSAkYik7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gYWJzKCRhKTtcbiAgfVxufVxuXG4vLy8gSGFuZGxlcyBkZWNpbWFsIGV4cG9uZW50cyBieSB0cnlpbmcgdG8gY29udmVydCB0aGVtIGludG8gYSBmcmFjdGlvbiBhbmQgdGhlbiB1c2UgYSBudGgtcm9vdC1hbGdvcml0aG0gZm9yIHBhcnRzIG9mIHRoZSBjYWxjdWxhdGlvblxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gVGhlIGJhc2UgbnVtYmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZXhwb25lbnQgLSBUaGUgZXhwb25lbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgcHJvZHVjdCBvZiB0aGUgZXhwb25lbnRpYXRpb24uXG5AZnVuY3Rpb24gcG93KCRiYXNlLCAkZXhwb25lbnQsICRwcmVjOiAxNikge1xuICBAaWYgKGZsb29yKCRleHBvbmVudCkgIT0gJGV4cG9uZW50KSB7XG4gICAgJHByZWMyIDogcG93KDEwLCAkcHJlYyk7XG4gICAgJGV4cG9uZW50OiByb3VuZCgkZXhwb25lbnQgKiAkcHJlYzIpO1xuICAgICRkZW5vbWluYXRvcjogZ2NkKCRleHBvbmVudCwgJHByZWMyKTtcbiAgICBAcmV0dXJuIG50aC1yb290KHBvdygkYmFzZSwgJGV4cG9uZW50IC8gJGRlbm9taW5hdG9yKSwgJHByZWMyIC8gJGRlbm9taW5hdG9yLCAkcHJlYyk7XG4gIH1cblxuICAkdmFsdWU6ICRiYXNlO1xuICBAaWYgJGV4cG9uZW50ID4gMSB7XG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkZXhwb25lbnQge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgKiAkYmFzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGV4cG9uZW50IDwgMSB7XG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAtJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogJHZhbHVlIC8gJGJhc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbkBmdW5jdGlvbiBudGgtcm9vdCgkbnVtLCAkbjogMiwgJHByZWM6IDEyKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9OdGhfcm9vdCNKYXZhU2NyaXB0XG4gICR4OiAxO1xuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHByZWMge1xuICAgICR4OiAxIC8gJG4gKiAoKCRuIC0gMSkgKiAkeCArICgkbnVtIC8gcG93KCR4LCAkbiAtIDEpKSk7XG4gIH1cblxuICBAcmV0dXJuICR4O1xufVxuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgaGVpZ2h0IGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgd2lkdGggZm9yIGEgZ2l2ZW4gcmF0aW8uXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmF0aW8gLSBSYXRpbyB0byB1c2UgdG8gY2FsY3VsYXRlIHRoZSBoZWlnaHQsIGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IEEgcGVyY2VudGFnZSB2YWx1ZSBmb3IgdGhlIGhlaWdodCByZWxhdGl2ZSB0byB0aGUgd2lkdGggb2YgYSByZXNwb25zaXZlIGNvbnRhaW5lci5cbkBmdW5jdGlvbiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbykge1xuICAkdzogbnRoKCRyYXRpbywgMSk7XG4gICRoOiBudGgoJHJhdGlvLCAzKTtcbiAgQHJldHVybiAkaCAvICR3ICogMTAwJTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zdGlja3kge1xuICAuc3RpY2t5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLnN0aWNreSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIC5zdGlja3kuaXMtc3R1Y2sge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiA1O1xuXG4gICAgJi5pcy1hdC10b3Age1xuICAgICAgdG9wOiAwO1xuICAgIH1cblxuICAgICYuaXMtYXQtYm90dG9tIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAuc3RpY2t5LmlzLWFuY2hvcmVkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcblxuICAgICYuaXMtYXQtYm90dG9tIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvcigkc2l6ZSkge1xuICAkc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHNpemU6IC16Zi1icC10by1lbSgkc2l6ZSkgLSAoMSAvIDE2KTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgd2l0aGluIGEgY2VydGFpbiBicmVha3BvaW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3Itb25seSgkc2l6ZSkge1xuICAkbG93ZXItYm91bmQtc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHVwcGVyLWJvdW5kLXNpemU6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRzaXplKTtcblxuICAvLyBtb3JlIG9mdGVuIHRoYW4gbm90IHRoaXMgd2lsbCBiZSBjb3JyZWN0LCBqdXN0IG9uZSB0aW1lIHJvdW5kIHRoZSBsb29wIGl0IHdvbid0IHNvIHNldCBpbiBzY29wZSBoZXJlXG4gICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKSAtICgxIC8gMTYpO1xuICAvLyB0ZXN0IGFjdHVhbCBsb3dlci1ib3VuZC1zaXplLCBpZiAwIHNldCBpdCB0byAwZW1cbiAgQGlmIHN0cmlwLXVuaXQoJGxvd2VyLWJvdW5kLXNpemUpID09IDAge1xuICAgICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKTtcbiAgfVxuXG4gIEBpZiAkdXBwZXItYm91bmQtc2l6ZSA9PSBudWxsIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICR1cHBlci1ib3VuZDogLXpmLWJwLXRvLWVtKCR1cHBlci1ib3VuZC1zaXplKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHVwcGVyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvcigkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3Itb25seSgkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzIHtcbiAgLy8gQmFzaWMgaGlkaW5nIGNsYXNzZXNcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5zaG93LWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3ctZm9yKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBzaG93LWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBTY3JlZW4gcmVhZGVyIHZpc2liaWxpdHkgY2xhc3Nlc1xuICAvLyBOZWVkIGEgXCJoaWRlLWZvci1zclwiIGNsYXNzPyBBZGQgYXJpYS1oaWRkZW49J3RydWUnIHRvIHRoZSBlbGVtZW50XG4gIC5zaG93LWZvci1zcixcbiAgLnNob3ctb24tZm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG5cbiAgLy8gT25seSBkaXNwbGF5IHRoZSBlbGVtZW50IHdoZW4gaXQncyBmb2N1c2VkXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICB9XG4gIH1cblxuICAvLyBMYW5kc2NhcGUgYW5kIHBvcnRyYWl0IHZpc2liaWxpdHlcbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZmxvYXRcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcyB7XG4gIC5mbG9hdC1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZsb2F0LXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIC5jbGVhcmZpeCB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cbn1cbiIsIkBjaGFyc2V0ICd1dGYtOCc7XG5cbkBpbXBvcnQgJ2ZvbnRzJztcbkBpbXBvcnQgJ3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdmdW5jdGlvbnMnO1xuQGltcG9ydCAnbWl4aW5zJztcblxuLy8gZm91bmRhdGlvblxuQGltcG9ydCAnc2V0dGluZ3MnO1xuQGltcG9ydCAnZm91bmRhdGlvbic7XG5AaW1wb3J0ICdtb3Rpb24tdWknO1xuXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXM7XG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1ncmlkO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1yYW5nZS1pbnB1dDtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudTtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tYmFkZ2U7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b24tZ3JvdXA7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudS1pY29uO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnU7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWxhYmVsO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1tZWRpYS1vYmplY3Q7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLW9yYml0O1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1wYWdpbmF0aW9uO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb2dyZXNzLWVsZW1lbnQ7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLW1ldGVyLWVsZW1lbnQ7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXNsaWRlcjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tc3RpY2t5O1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1yZXZlYWw7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFibGU7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tdGl0bGUtYmFyO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi10b3AtYmFyO1xuQGluY2x1ZGUgZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXM7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcztcblxuLy9AaW5jbHVkZSBtb3Rpb24tdWktdHJhbnNpdGlvbnM7XG4vL0BpbmNsdWRlIG1vdGlvbi11aS1hbmltYXRpb25zO1xuXG4vKiBTTElDSyAqL1xuQGltcG9ydCBcImJvd2VyX2NvbXBvbmVudHMvc2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2suc2Nzc1wiO1xuXG4vKiBQSE9UT1NXSVBFICovXG4vLyBAaW1wb3J0IFwiYm93ZXJfY29tcG9uZW50cy9waG90b3N3aXBlL3NyYy9jc3MvbWFpbi5zY3NzXCI7XG5cbkBpbXBvcnQgJ3N0cnVjdHVyZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzJztcbkBpbXBvcnQgJ3NlY3Rpb24tY29udHJvbCc7XG5cbkBpbXBvcnQgJ2FkanVzdG1lbnRzJztcbkBpbXBvcnQgJ2JyYW5kLWFkanVzdG1lbnRzJztcbkBpbXBvcnQgJ2ZpeGVzJztcblxuIiwiLyogU2xpZGVyICovXG5cbi5zbGljay1zbGlkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uc2xpY2stbGlzdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmLmRyYWdnaW5nIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjdXJzb3I6IGhhbmQ7XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cblxuLnNsaWNrLXRyYWNrIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbn1cbi5zbGljay1zbGlkZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICAgIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICAmLnNsaWNrLWxvYWRpbmcgaW1nIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJi5kcmFnZ2luZyBpbWcge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAuc2xpY2staW5pdGlhbGl6ZWQgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLnNsaWNrLXZlcnRpY2FsICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG59XG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuIiwiLyogU1RVQ1RVUkVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmJvZHkge1xuXG59XG5cbmZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG5cblxuYSB7XG4gICAgLy8gdHJhbnNpdGlvbjogYWxsICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ7XG59XG5cbi8vIGZpeCBmb3Igbm9uIGFuaW1hdGFibGVzXG5bZGF0YS1hbmltZS10eXBlPVwibm9uZVwiXSBbZGF0YS1hbmltZS1lbGVtXXsgXG4gICAgb3BhY2l0eTogMTsgXG59XG5cbi8vIC5zdmdfbGluZSB7XG4vLyAgICAgc3ZnIHtcbi8vICAgICAgICAgZmlsbDogbm9uZSAhaW1wb3J0YW50O1xuLy8gICAgICAgICBzdHJva2U6IGdyZWVuO1xuLy8gICAgICAgICBzdHJva2Utd2lkdGg6IDVweDtcbi8vICAgICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xuLy8gICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdDogMTAwO1xuLy8gICAgICAgICBzdHJva2UtZGFzaGFycmF5OiAxMDAwO1xuLy8gICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMTAwMDtcbi8vICAgICAgICAgYW5pbWF0aW9uOiBkYXNoIDNzIGVhc2Utb3V0IGZvcndhcmRzO1xuLy8gICAgICAgICBhbmltYXRpb24tZGVsYXk6IDFzO1xuLy8gICAgIH1cbi8vIH1cblxuLy8gQGtleWZyYW1lcyBkYXNoIHtcbi8vICAgdG8ge1xuLy8gICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuLy8gICB9XG4vLyB9XG4iLCJcblxuLyogR0VORVJJQ1Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBpbXBvcnQgJ2NvbXBvbmVudHMvZ2VuZXJpY3MvYW5jaG9ycyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2dlbmVyaWNzL2J1dHRvbnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9nZW5lcmljcy9mb3JtJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZ2VuZXJpY3MvaGFtYnVyZ2VyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZ2VuZXJpY3MvaHInO1xuQGltcG9ydCAnY29tcG9uZW50cy9nZW5lcmljcy9saXN0LXNlYXJjaCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2dlbmVyaWNzL21hcHMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9nZW5lcmljcy9zbGljay1zbGlkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9nZW5lcmljcy9zdmcnO1xuXG5cbi8qIFBBUlRTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdjb21wb25lbnRzL3BhcnRzL2FjX2NvbnRlbnQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wYXJ0cy9hY19kYXRhLXMtYW1vdW50JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcGFydHMvYWNfYmFja2Ryb3AnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wYXJ0cy9hY19zZWN0aW9uX2RpdmlkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9wYXJ0cy9hY19oZWFkaW5nJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcGFydHMvYWNfc29jaWFscyc7XG5cblxuLyogRk9PVEVSU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCAnY29tcG9uZW50cy9mb290ZXJzL2FjX2ZfZm9vdGVyXzEvZm9vdGVyXzFfMSc7XG4vL0BpbXBvcnQgJ2NvbXBvbmVudHMvZm9vdGVycy9hY19mX2Zvb3Rlcl8yL2Zvb3Rlcl8yXzInO1xuXG5cbi8qIE1FTlVTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vIGhvcml6b250YWwgbWVudXNcbi8vQGltcG9ydCAnY29tcG9uZW50cy9tZW51cy9hY19tX21lbnVfMS9tZW51XzFfMSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnVzL2FjX21fbWVudV8yL21lbnVfMl8xJztcbi8vQGltcG9ydCAnY29tcG9uZW50cy9tZW51cy9hY19tX21lbnVfMy9tZW51XzNfMSc7XG4vL0BpbXBvcnQgJ2NvbXBvbmVudHMvbWVudXMvYWNfbV9tZW51XzQvbWVudV80XzEnO1xuLy9AaW1wb3J0ICdjb21wb25lbnRzL21lbnVzL2FjX21fbWVudV81L21lbnVfNV8xJztcblxuLy8gdmVydGljYWwgbWVudXNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudXMvYWNfbV9tZW51XzEwMS9tZW51XzEwMV8xJztcblxuXG5cbi8qIFNFQ1RJT05TXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19icmFuZHMvYnJhbmRzXzQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX2N0YS9jdGFfMSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfY3RhX3RleHQtYnV0dG9uL2N0YV90ZXh0LWJ1dHRvbl8yJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19jdGFfdGV4dC1pbWFnZS9jdGFfdGV4dC1pbWFnZV8xJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19jdGFfdGV4dC1zb2NpYWxzL2N0YV90ZXh0LXNvY2lhbHNfMyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfaGVyby9oZXJvXzInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX2hlcm9fYWx0L2hlcm9fYWx0XzEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX2ltYWdlL2ltYWdlXzEnO1xuXG5AaW1wb3J0ICdjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfaW1hZ2UtYmctZml4ZWQvaW1hZ2UtYmctZml4ZWRfMSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfaW1hZ2UtZ2FsbGVyeV9mdWxsLXNjcmVlbi9pbWFnZS1nYWxsZXJ5X2Z1bGwtc2NyZWVuXzEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX2ltYWdlLWdhbGxlcnlfZ3JpZC9pbWFnZS1nYWxsZXJ5X2dyaWRfMic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfaW1hZ2UtZ2FsbGVyeS9pbWFnZS1nYWxsZXJ5XzInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX21hcHMvbWFwc18xJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19uZXdzL25ld3NfMyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfcHJvZHVjdHMvcHJvZHVjdHNfMSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfcXVvdGVzL3F1b3Rlc18xJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19yZWZlcmVuY2VzL3JlZmVyZW5jZXNfMic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfcmVmZXJlbmNlcy1ncmlkL3JlZmVyZW5jZXMtZ3JpZF8xJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2VjdGlvbnMvYWNfc19zZXJ2aWNlcy1ncmlkL3NlcnZpY2VzLWdyaWRfMic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NlY3Rpb25zL2FjX3Nfc2VydmljZXMvc2VydmljZXNfMSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfdGVhbS90ZWFtXzQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX3RvcHRhc2tzLWZpeGVkL3RvcHRhc2tzLWZpeGVkXzEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX3RvcHRhc2tzL3RvcHRhc2tzXzYnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zZWN0aW9ucy9hY19zX3ZhYy92YWNfMyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NlY3Rpb25zL2FjX3NfcGFydG5lcnMvcGFydG5lcnNfMSc7XG5cblxuXG4iLCIvKiBHRU5FUklDUyAtIEFOQ0hPUlNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmEgeyBcbiAgICAvL2Rpc2FibGUgdGVsIGxpbmtzIG9uIGxhcmdlXG4gICAgJltocmVmXj1cInRlbFwiXSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvLyBkaXNcbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKiBHRU5FUklDUyAtIEJVVFRPTiBHUk9VUFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuJGJ1dHRvbi1zdmctc2l6ZTogMmVtO1xuJGJ1dHRvbi1ib3JkZXI6IHNvbGlkIDNweDtcbiRidXR0b24tcGFkZGluZzogMS4yZW07XG5cbi8vXG4vLyAgICAgQlVUVE9OIEJFSEFWSU9VUlxuLy9cblxuYnV0dG9uLCAuYnV0dG9uIHtcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpO1xuICAgIH1cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgIG91dGxpbmU6IG5vbmU7IFxuICAgICB9XG59XG5cbi5idXR0b24geyAvLyBvbmx5IHN0eWxlIGNsYXNzIGVsZW1lbnRzLCBub3QgdGhlIEhUTUwgYnV0dG9uIGVsZW1lbnRzXG4gICAgXG4gICAgLy9cbiAgICAvLyAgICAgIERFRkFVTFRTXG4gICAgLy9cblxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBwYWRkaW5nOiAkYnV0dG9uLXBhZGRpbmc7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYm9yZGVyOiAkYnV0dG9uLWJvcmRlcjtcbiAgICBib3JkZXItY29sb3I6ICRkZWZhdWx0LXRleHQtY29sb3ItbGlnaHQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzIGVhc2U7XG4gICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIC8vZGVmYXVsdCBiZ1xuICAgIGJhY2tncm91bmQ6ICRicmFuZC1wcmltYXJ5O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgtOTBkZWcsICRicmFuZC1wcmltYXJ5LWRhcmtlciwgJGJyYW5kLXByaW1hcnkpO1xuICAgIGNvbG9yOiAkZGVmYXVsdC10ZXh0LWNvbG9yLWxpZ2h0O1xuICAgIFxuXG4gICAgLnN2Zy1jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB3aWR0aDogJGJ1dHRvbi1zdmctc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkYnV0dG9uLXN2Zy1zaXplO1xuICAgIH1cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogJGJ1dHRvbi1zdmctc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkYnV0dG9uLXN2Zy1zaXplO1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgfVxuICAgICYudl9leHBhbmRlZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvL1xuICAgIC8vICAgICBCUkFORCBDTEFTU0VTXG4gICAgLy9cblxuICAgIC8vIGdlbmVyYXRlIGJyYW5kIGJ1dHRvbiBjbGFzc2VzXG4gICAgQG1peGluIGdlbmVyYXRlLWJ0bi1jbGFzc2VzIHtcbiAgICAgICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRicmFuZC1jb2xvci1saXN0IHtcbiAgICAgICAgICAgICYudl9icmFuZF8jeyRrZXl9IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRicmFuZC1jb2xvci1saXN0LCAka2V5KTtcbiAgICAgICAgICAgICAgICBjb2xvcjogZmluZC1jb250cmFzdChtYXAtZ2V0KCRicmFuZC1jb2xvci1saXN0LCAka2V5KSk7IC8vIHRleHQgaXMgYXV0b21hdGljYWxseSBjaGVja2VkIGZvciBjb250cmFzdC4gQ2FuIGJlIG92ZXJ3dGl0dGVuIG1hbnVhbGx5LlxuICAgICAgICAgICAgfSAgIFxuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIGdlbmVyYXRlLWJ0bi1jbGFzc2VzKCk7XG5cbiAgICAvL1xuICAgIC8vICAgICBCUkFORCBHSE9TVCBDTEFTU0VTXG4gICAgLy9cblxuICAgICYudl9naG9zdCB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gZ2VuZXJhdGUgYnJhbmQgYnV0dG9uIGdob3N0IGNsYXNzZXNcbiAgICBAbWl4aW4gZ2VuZXJhdGUtYnRuLWdob3N0LWNsYXNzZXMge1xuICAgICAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJGJyYW5kLWNvbG9yLWxpc3Qge1xuICAgICAgICAgICAgJi52X2dob3N0X2JyYW5kXyN7JGtleX0ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJGJyYW5kLWNvbG9yLWxpc3QsICRrZXkpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkYnJhbmQtY29sb3ItbGlzdCwgJGtleSk7XG4gICAgICAgICAgICB9ICAgXG4gICAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgZ2VuZXJhdGUtYnRuLWdob3N0LWNsYXNzZXMoKTtcblxuICAgIC8vXG4gICAgLy8gICAgIFRSQU5TUEFSRU5UIENMQVNTRVNcbiAgICAvL1xuXG4gICAgJi52X3RyYW5zcGFyZW50IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgY29sb3I6ICRkZWZhdWx0LXRleHQtY29sb3I7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRkZWZhdWx0LXRleHQtY29sb3I7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi52X3RyYW5zcGFyZW50X2JvZHkge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgY29sb3I6ICRkZWZhdWx0LXRleHQtY29sb3I7XG5cbiAgICAgICAgQGluY2x1ZGUgZm9udC1ib2R5LXJlZ3VsYXI7XG4gICAgICAgIC5zdmctY29udGFpbmVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkYnV0dG9uLXN2Zy1zaXplICogLjc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRidXR0b24tc3ZnLXNpemUgKiAuNztcbiAgICAgICAgfVxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6ICRidXR0b24tc3ZnLXNpemUgKiAuNztcbiAgICAgICAgICAgIGhlaWdodDogJGJ1dHRvbi1zdmctc2l6ZSAqIC43O1xuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRkZWZhdWx0LXRleHQtY29sb3I7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyAgICAgSUNPTlxuICAgIC8vXG5cbiAgICAmLnZfaGFzLWljb24tbGVmdCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICAgICAgcGFkZGluZzogICRidXR0b24tcGFkZGluZyAtICgkYnV0dG9uLXBhZGRpbmcgKiAuMyk7XG4gICAgICAgIC5zdmctY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGJ1dHRvbi1zdmctc2l6ZSAvIDI7XG4gICAgICAgIH1cbiAgICAgICBcbiAgICB9XG4gICAgJi52X2hhcy1pY29uLXJpZ2h0IHtcbiAgICAgICAgcGFkZGluZzogJGJ1dHRvbi1wYWRkaW5nIC0gKCRidXR0b24tcGFkZGluZyAqIC4zKTtcbiAgICAgICAgLnN2Zy1jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRidXR0b24tc3ZnLXNpemUgLyAyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyAgICAgSE9WRVIgU1RBVEVcbiAgICAvL1xuICAgXG4gICAgJjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IC44O1xuICAgIH1cbn1cbiIsIi8qIEdFTkVSSUNTIC0gRk9STVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaW5wdXQsXG50ZXh0YXJlYSxcbnNlbGVjdCB7XG4gICAgXG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKCRicmFuZC10ZXJ0aWFyeSwgLjMpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMHJlbSAycmVtIC4ycmVtIDFyZW0gIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDNyZW0gIWltcG9ydGFudDtcblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKCRicmFuZC10ZXJ0aWFyeSwgLjE1KSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogJGJyYW5kLXRlcnRpYXJ5ICFpbXBvcnRhbnQ7XG4gICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICBjb2xvcjogcmdiYSgkYnJhbmQtdGVydGlhcnksIC42KSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoJGJyYW5kLXRlcnRpYXJ5LCAxKSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuc2VsZWN0IHtcbiAgICBwYWRkaW5nOiAwcmVtIDIuNXJlbSAwIDFyZW0gIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAtMThweCBjZW50ZXI7XG59XG50ZXh0YXJlYSB7XG4gICAgbWluLWhlaWdodDogMTAwcHg7XG59XG5cbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJde1xuICAgICBwYWRkaW5nOiAxcmVtIDFyZW0gMXJlbSAxcmVtICFpbXBvcnRhbnQ7XG4gICAgIGJvcmRlcjogc29saWQgM3B4ICRicmFuZC1saWdodC1ncmF5ICFpbXBvcnRhbnQ7XG59XG5cbmlucHV0Ojotd2Via2l0LWNvbnRhY3RzLWF1dG8tZmlsbC1idXR0b24ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xufVxuLmlucHV0LWdyb3VwLWJ1dHRvbiBhLCAuaW5wdXQtZ3JvdXAtYnV0dG9uIGlucHV0LCAuaW5wdXQtZ3JvdXAtYnV0dG9uIGJ1dHRvbiwgLmlucHV0LWdyb3VwLWJ1dHRvbiBsYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG59IiwiLyogR0VORVJJQ1MgLSBIUlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaHIge1xuICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2JhKCRicmFuZC1ibGFjaywgLjE1KTtcbiAgICBtYXJnaW46IDMwcHggMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59IiwiLyogTElTVCBTRUFSQ0hcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmFjX2xpc3Qtc2VhcmNoIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXItdG9wOiAkZGVmYXVsdC1ib3JkZXI7XG59XG4uYWNfbGlzdC1zZWFyY2hfaXRlbXtcbiAgICBib3JkZXItYm90dG9tOiAkZGVmYXVsdC1ib3JkZXI7XG59XG4uYWNfbGlzdC1zZWFyY2hfaXRlbV9saW5re1xuICAgIHBhZGRpbmc6IDJlbSAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuLmFjX2xpc3Qtc2VhcmNoX2l0ZW1fY29udGVudCB7XG5cbn1cbi5hY19saXN0LXNlYXJjaF9pdGVtX3RpdGxlIHtcbiAgICBcbn1cbiIsIi8qIEdFTkVSSUNTIC0gTUFQU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmdtLXN0eWxlIHtcbiAgICBmb250LWZhbWlseTogJGRlZmF1bHQtZm9udC1mYW1pbHktYm9keSAhaW1wb3J0YW50O1xufSIsIi8qIEdFTkVSSUNTIC0gU0xJQ0sgU0xJREVSXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5zbGljay1kb3RzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMjIyO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBib3R0b206IC0yZW07XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbjogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBib3R0b206IC00ZW07XG4gICAgfVxuXG4gICAgYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAycHggcmdiYSgkYnJhbmQtdGVydGlhcnktZGFya2VyLCAuMSk7IFxuICAgICAgICB3aWR0aDogMWVtO1xuICAgICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwIC4xNWVtO1xuICAgICAgICB0ZXh0LWluZGVudDogLTk5OTk5cHg7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgIH1cblxuICAgIC5zbGljay1hY3RpdmUge1xuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGJyYW5kLXRlcnRpYXJ5LWRhcmtlcjsgXG4gICAgICAgIH0gICBcbiAgICB9XG59XG5cbi5zbGljay1zbGlkZSB7XG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxufVxuXG5idXR0b24uc2xpY2stcHJldixcbmJ1dHRvbi5zbGljay1uZXh0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMjIyO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB3aWR0aDogM2VtO1xuICAgIGhlaWdodDogM2VtO1xuICAgIHBhZGRpbmc6IC41ZW07XG4gICAgYmFja2dyb3VuZDogJGJyYW5kLXdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXMgLyAyO1xuICAgIGJveC1zaGFkb3c6ICRkZWZhdWx0LWJveC1zaGFkb3c7XG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDJlbTtcbiAgICAgICAgaGVpZ2h0OiAyZW07XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbn1cbmJ1dHRvbi5zbGljay1wcmV2IHtcbiAgICBsZWZ0OiAwO1xufVxuYnV0dG9uLnNsaWNrLW5leHQge1xuICAgIHJpZ2h0OiAwO1xufSIsIi8qIEdFTkVSSUNTIC0gU1ZHXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbnN2ZyB7XG4gICAgQGlmICRzdmctaWNvbi1zZXQtdHlwZSA9PSAnc3Ryb2tlJyB7XG4gICAgICAgIHN0cm9rZS13aWR0aDogMi41cHg7XG4gICAgfVxufSIsIlxuLyogUEFSVCAtIENPTlRFTlRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5hY19jb250ZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYWNfY29udGVudF9jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIG1heC13aWR0aDogJG1heC1jb250ZW50LTEwMDA7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogMCAkZGVmYXVsdC1wYWRkaW5nO1xuXG4gICAgJi5hX2NvbGxhcHNlZCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxufVxuLmFjX2NvbnRlbnRfZmxleCB7XG4gICAgcGFkZGluZzogMCAkZGVmYXVsdC1wYWRkaW5nIC8gMjtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwYWRkaW5nOiAwICRkZWZhdWx0LXBhZGRpbmcgLyAyO1xuICAgIH1cbn1cblxuXG5cbi5hY19jb250ZW50X2Z1bGwsXG4uYWNfY29udGVudF9mdWxsd2lkdGgge1xuICAgIHBhZGRpbmc6IDAgJGRlZmF1bHQtcGFkZGluZyAvIDI7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5hY19jb250ZW50X2hhbGYsXG4uYWNfY29udGVudF8xLTIgeyAgICBcbiAgICBwYWRkaW5nOiAwICRkZWZhdWx0LXBhZGRpbmcgLyAyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGZsZXg6IDAgMSBwZXJjZW50YWdlKDEvMik7XG4gICAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSgxLzIpO1xuICAgIH1cbn1cblxuLmFjX2NvbnRlbnRfMS0zIHtcbiAgICBwYWRkaW5nOiAwICRkZWZhdWx0LXBhZGRpbmcgLyAyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGZsZXg6IDAgMSBwZXJjZW50YWdlKDEvMyk7XG4gICAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSgxLzMpO1xuICAgIH1cbn1cbi5hY19jb250ZW50XzItMyB7XG4gICAgcGFkZGluZzogMCAkZGVmYXVsdC1wYWRkaW5nIC8gMjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBmbGV4OiAwIDEgcGVyY2VudGFnZSgyLzMpO1xuICAgICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoMi8zKTtcbiAgICB9XG59XG5cbi5hY19jb250ZW50XzEtNCB7XG4gICAgcGFkZGluZzogMCAkZGVmYXVsdC1wYWRkaW5nIC8gMjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBmbGV4OiAwIDEgcGVyY2VudGFnZSgxLzQpO1xuICAgICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoMS80KTtcbiAgICB9XG59XG4uYWNfY29udGVudF8zLTQge1xuICAgIHBhZGRpbmc6IDAgJGRlZmF1bHQtcGFkZGluZyAvIDI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZmxleDogMCAxIHBlcmNlbnRhZ2UoMy80KTtcbiAgICAgICAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKDMvNCk7XG4gICAgfVxufVxuXG4uYWNfY29udGVudF8xLTUge1xuICAgIHBhZGRpbmc6IDAgJGRlZmF1bHQtcGFkZGluZyAvIDI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGZsZXg6IDAgMSBwZXJjZW50YWdlKDEvNSk7XG4gICAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSgyLzUpO1xuICAgIH1cbn1cbi5hY19jb250ZW50XzItNSB7XG4gICAgcGFkZGluZzogMCAkZGVmYXVsdC1wYWRkaW5nIC8gMjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZmxleDogMCAxIHBlcmNlbnRhZ2UoMi81KTtcbiAgICAgICAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKDIvNSk7XG4gICAgfVxufVxuLmFjX2NvbnRlbnRfMy01IHtcbiAgICBwYWRkaW5nOiAwICRkZWZhdWx0LXBhZGRpbmcgLyAyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBmbGV4OiAwIDEgcGVyY2VudGFnZSgzLzUpO1xuICAgICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoMy81KTtcbiAgICB9XG59XG4uYWNfY29udGVudF80LTUge1xuICAgIHBhZGRpbmc6IDAgJGRlZmF1bHQtcGFkZGluZyAvIDI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZmxleDogMCAxIHBlcmNlbnRhZ2UoNC81KTtcbiAgICAgICAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKDQvNSk7XG4gICAgfVxufSIsIi8qIEdSSUQgLSBCQVNFRCBPTiBEQVRBIEFUVFJJQlVURVNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuW2RhdGEtcy1hbW91bnQ9XCIxXCJdIHtcbiAgICBbZGF0YS1zLWFtb3VudC1pdGVtXSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuW2RhdGEtcy1hbW91bnQ9XCIyXCJdIHtcbiAgICBbZGF0YS1zLWFtb3VudC1pdGVtXSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0KSB7XG4gICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgxLzIpO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKDEvMik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbltkYXRhLXMtYW1vdW50PVwiM1wiXSB7XG4gICAgW2RhdGEtcy1hbW91bnQtaXRlbV0ge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCkge1xuICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMS8yKTtcbiAgICAgICAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSgxLzIpO1xuICAgICAgICB9XG4gICAgfVxuICAgICBbZGF0YS1zLWFtb3VudC1pdGVtXSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgxLzMpO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKDEvMyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbltkYXRhLXMtYW1vdW50PVwiNFwiXSB7XG4gICAgW2RhdGEtcy1hbW91bnQtaXRlbV0ge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCkge1xuICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMS8yKTtcbiAgICAgICAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSgxLzIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIFtkYXRhLXMtYW1vdW50LWl0ZW1dIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMS80KTtcbiAgICAgICAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSgxLzQpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5bZGF0YS1zLWFtb3VudD1cIjVcIl0ge1xuICAgIFtkYXRhLXMtYW1vdW50LWl0ZW1dIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0tcG9ydHJhaXQpIHtcbiAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEvMik7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoMS8yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBbZGF0YS1zLWFtb3VudC1pdGVtXSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEvNSk7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoMS81KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIlxuLyogQkFDS0RST1AgXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5hY19iYWNrZHJvcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmFjX2JhY2tkcm9wX2ltYWdlLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbn1cbi5hY19iYWNrZHJvcF9pbWFnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5hY19iYWNrZHJvcF92aWRlby1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogMjtcbiAgICB2aWRlbyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB9XG59IiwiXG4vKiBTRUNUSU9OIC0gRElWSURFUiBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXG4kYWNfc2VjdGlvbl9kaXZpZGVyOiB0cnVlOyAvL2VuYWJsZSBvciBkaXNhYmxlIGFsbCBzZWN0aW9uIGRpdmlkZXJzXG5cblxuLmFjX3NlY3Rpb25fZGl2aWRlciB7XG5cbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLy8gcHJldmVudCBpbnRlcmZlcmVuY2Ugd2l0aCB1aSBlbGVtZW50c1xuXG4gICAgQGlmICRhY19zZWN0aW9uX2RpdmlkZXIgPT0gZmFsc2Uge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC8vIEBpbXBvcnQgJ2FjX3NlY3Rpb25fZGl2aWRlci9hbmdsZWQnO1xuICAgIEBpbXBvcnQgJ2FjX3NlY3Rpb25fZGl2aWRlci9hbmdsZWQtc3ZnJztcbiAgICBAaW1wb3J0ICdhY19zZWN0aW9uX2RpdmlkZXIvYnV0dC1jaGVla3MnO1xuICAgIEBpbXBvcnQgJ2FjX3NlY3Rpb25fZGl2aWRlci9jdXJ2ZWQtY2hlZWtzJztcbiAgICBAaW1wb3J0ICdhY19zZWN0aW9uX2RpdmlkZXIvZG90dGVkJztcbiAgICBAaW1wb3J0ICdhY19zZWN0aW9uX2RpdmlkZXIvc2VtaS10cmFuc3BhcmVudCc7XG4gICAgQGltcG9ydCAnYWNfc2VjdGlvbl9kaXZpZGVyL3NtaWxlJztcbiAgICBAaW1wb3J0ICdhY19zZWN0aW9uX2RpdmlkZXIvc3Bpa2VkJztcbiAgICBAaW1wb3J0ICdhY19zZWN0aW9uX2RpdmlkZXIvc3Bpa2VkLXNtYWxsJztcblxufVxuXG4iLCIvKiBTRUNUSU9OIC0gRElWSURFUiAtIEFOR0xFRCBTVkdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuJltkYXRhLXMtZGl2aWRlci10eXBlPVwiYW5nbGVkLXN2Z1wiXSB7XG5cbiAgICAvL3JlZHVjZSB0byBtYWtlIHNtYWxsZXIsIGluY3JlYXNlIHRvIG1ha2UgbGFyZ2VyXG4gICAgJGFuZ2xlZC1kaXZpZGVyLWhlaWdodDogM3Z3O1xuXG4gICAgLmFjX3NlY3Rpb25fZGl2aWRlcl90b3Age1xuICAgICAgICB0b3A6IC0kYW5nbGVkLWRpdmlkZXItaGVpZ2h0O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDExO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRhbmdsZWQtZGl2aWRlci1oZWlnaHQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsgLy8gcHJldmVudCBwb3NzaWJsZSBsaW5lIGluIHNhZmFyaVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFjX3NlY3Rpb25fZGl2aWRlcl9ib3R0b20ge1xuICAgICAgICBib3R0b206IC0kYW5nbGVkLWRpdmlkZXItaGVpZ2h0O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDExO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRhbmdsZWQtZGl2aWRlci1oZWlnaHQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsgLy8gcHJldmVudCBwb3NzaWJsZSBsaW5lIGluIHNhZmFyaVxuICAgICAgICB9XG4gICAgfVxufSIsIi8qIFNFQ1RJT04gLSBESVZJREVSIC0gQU5HTEVEIFNWR1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4mW2RhdGEtcy1kaXZpZGVyLXR5cGU9XCJidXR0LWNoZWVrc1wiXSB7XG5cbiAgICAvL3JlZHVjZSB0byBtYWtlIHNtYWxsZXIsIGluY3JlYXNlIHRvIG1ha2UgbGFyZ2VyXG4gICAgJGRpdmlkZXItYnV0dC1jaGVla3MtaGVpZ2h0OiA1MHB4O1xuXG4gICAgLmFjX3NlY3Rpb25fZGl2aWRlcl90b3Age1xuICAgICAgICB0b3A6IC0kZGl2aWRlci1idXR0LWNoZWVrcy1oZWlnaHQ7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMTE7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIC5hY19zZWN0aW9uX2RpdmlkZXJfYm90dG9tIHtcbiAgICAgICAgYm90dG9tOiAtJGRpdmlkZXItYnV0dC1jaGVla3MtaGVpZ2h0O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDExO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICB9XG5cbiAgICAuYWNfc2VjdGlvbl9kaXZpZGVyX2NoZWVrX2xlZnQge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBoZWlnaHQ6ICAkZGl2aWRlci1idXR0LWNoZWVrcy1oZWlnaHQ7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkZGl2aWRlci1idXR0LWNoZWVrcy1oZWlnaHQ7XG4gICAgfSAgIFxuICAgIC5hY19zZWN0aW9uX2RpdmlkZXJfY2hlZWtfcmlnaHQge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBoZWlnaHQ6ICAkZGl2aWRlci1idXR0LWNoZWVrcy1oZWlnaHQ7XG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRkaXZpZGVyLWJ1dHQtY2hlZWtzLWhlaWdodDtcbiAgICB9ICAgXG59IiwiLyogU0VDVElPTiAtIERJVklERVIgLSBBTkdMRUQgU1ZHXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiZbZGF0YS1zLWRpdmlkZXItdHlwZT1cImN1cnZlZC1jaGVla3NcIl0ge1xuXG4gICAgLy9yZWR1Y2UgdG8gbWFrZSBzbWFsbGVyLCBpbmNyZWFzZSB0byBtYWtlIGxhcmdlclxuICAgICRhbmdsZWQtZGl2aWRlci1oZWlnaHQ6IDEwdnc7XG5cbiAgICAuYWNfc2VjdGlvbl9kaXZpZGVyX3RvcCB7XG4gICAgICAgIHRvcDogLSRhbmdsZWQtZGl2aWRlci1oZWlnaHQ7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMTE7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogJGFuZ2xlZC1kaXZpZGVyLWhlaWdodDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpOyAvLyBwcmV2ZW50IHBvc3NpYmxlIGxpbmUgaW4gc2FmYXJpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWNfc2VjdGlvbl9kaXZpZGVyX2JvdHRvbSB7XG4gICAgICAgIGJvdHRvbTogLSRhbmdsZWQtZGl2aWRlci1oZWlnaHQ7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMTE7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogJGFuZ2xlZC1kaXZpZGVyLWhlaWdodDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpOyAvLyBwcmV2ZW50IHBvc3NpYmxlIGxpbmUgaW4gc2FmYXJpXG4gICAgICAgIH1cbiAgICB9XG59IiwiLyogU0VDVElPTiAtIERJVklERVIgLSBET1RURURcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuJltkYXRhLXMtZGl2aWRlci10eXBlPVwiZG90dGVkXCJdIHtcbiAgICAuYWNfc2VjdGlvbl9kaXZpZGVyX3RvcCB7XG4gICAgICAgIHRvcDogLTE5cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMTE7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICAuYWNfc2VjdGlvbl9kaXZpZGVyX2JvdHRvbSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMTE7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3R0b206IC0xOS41M3B4O1xuICAgICAgICBzdmcge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzdmcge1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn0iLCIvKiBTRUNUSU9OIC0gRElWSURFUiAtIERPVFRFRFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4mW2RhdGEtcy1kaXZpZGVyLXR5cGU9XCJzZW1pLXRyYW5zcGFyZW50XCJdIHtcblxuXG4gICAgLmFjX3NlY3Rpb25fZGl2aWRlcl90b3Age1xuICAgICAgIFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDExO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLnBfcG9seWdvbi0xIHtcbiAgICAgICAgICAgIHRvcDogLTMuOXZ3O1xuICAgICAgICAgICAgei1pbmRleDogMTE7XG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGhlaWdodDogNHZ3O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYucF9wb2x5Z29uLTIge1xuICAgICAgICAgICAgdG9wOiAtN3Z3O1xuICAgICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgICAgICBvcGFjaXR5OiAuMztcbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA3dnc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLyogU0VDVElPTiAtIERJVklERVIgLSBBTkdMRUQgU1ZHXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiZbZGF0YS1zLWRpdmlkZXItdHlwZT1cInNtaWxlXCJdIHtcblxuICAgIC8vcmVkdWNlIHRvIG1ha2Ugc21hbGxlciwgaW5jcmVhc2UgdG8gbWFrZSBsYXJnZXJcbiAgICAkYW5nbGVkLWRpdmlkZXItaGVpZ2h0OiAxMHZ3O1xuXG4gICAgLmFjX3NlY3Rpb25fZGl2aWRlcl90b3Age1xuICAgICAgICB0b3A6IC0kYW5nbGVkLWRpdmlkZXItaGVpZ2h0O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDExO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRhbmdsZWQtZGl2aWRlci1oZWlnaHQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsgLy8gcHJldmVudCBwb3NzaWJsZSBsaW5lIGluIHNhZmFyaVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFjX3NlY3Rpb25fZGl2aWRlcl9ib3R0b20ge1xuICAgICAgICBib3R0b206IC0kYW5nbGVkLWRpdmlkZXItaGVpZ2h0O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDExO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRhbmdsZWQtZGl2aWRlci1oZWlnaHQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsgLy8gcHJldmVudCBwb3NzaWJsZSBsaW5lIGluIHNhZmFyaVxuICAgICAgICB9XG4gICAgfVxufSIsIi8qIFNFQ1RJT04gLSBESVZJREVSIC0gU1BJS0VEXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiZbZGF0YS1zLWRpdmlkZXItdHlwZT1cInNwaWtlZFwiXSB7XG4gICAgLmFjX3NlY3Rpb25fZGl2aWRlcl90b3Age1xuICAgICAgICB0b3A6IC0xOXB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDExO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLmFjX3NlY3Rpb25fZGl2aWRlcl9ib3R0b20ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDExO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm90dG9tOiAtMjVweDtcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59IiwiLyogU0VDVElPTiAtIERJVklERVIgLSBTUElLRUQgLSBTTUFMTFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4mW2RhdGEtcy1kaXZpZGVyLXR5cGU9XCJzcGlrZWQtc21hbGxcIl0ge1xuICAgIC5hY19zZWN0aW9uX2RpdmlkZXJfdG9wIHtcbiAgICAgICAgdG9wOiAtMTZweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAxMTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIC5hY19zZWN0aW9uX2RpdmlkZXJfYm90dG9tIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAxMTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvdHRvbTogLTIwcHg7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHN2ZyB7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuIiwiLyogUEFSVCAtIFNFQ1RJT04gSEVBRElOR1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmFjX2hlYWRpbmcge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgJi52X3RpdGxlLWNlbnRlcmVkX2J1dHRvbi1yaWdodCB7XG4gICAgICAgIC5hY19oZWFkaW5nX3RpdGxlIHsgXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuYWNfaGVhZGluZ19saW5rIHsgXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDFlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gICAgXG5cbiAgICAmLnZfdGl0bGUtY2VudGVyZWRfYnV0dG9uLWNlbnRlcmVkIHtcbiAgICAgICAgLmFjX2hlYWRpbmdfbGluayxcbiAgICAgICAgLmFjX2hlYWRpbmdfdGl0bGUgeyBcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYudl90aXRsZS1sZWZ0X2J1dHRvbi1yaWdodCB7XG4gICAgICAgIC5hY19oZWFkaW5nX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH0gICAgXG59XG4uYWNfaGVhZGluZ19jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDAgJGRlZmF1bHQtcGFkZGluZztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5hY19oZWFkaW5nX3RpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG4uYWNfaGVhZGluZ19saW5rIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufSIsIi8qIFBBUlQgLSBTT0NJQUxTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiRhYy1zb2NpYWxzLWljb24tc2l6ZTogNGVtO1xuJGFjLXNvY2lhbHMtaWNvbi1wYWRkaW5nOiAuNWVtO1xuJGFjLXNvY2lhbHMtaWNvbi1iYWNrZ3JvdW5kOiAkYnJhbmQtYmxhY2s7XG4kYWMtc29jaWFscy1pY29uLWJvcmRlci1yYWRpdXM6IDEwMCU7XG4kYWMtc29jaWFscy1pdGVtLW1hcmdpbjogLjZlbTsgLy8gbGVmdCBvciByaWdodCwgZGVvZW5kaW5nIG9uIGFsaWdubWVudFxuXG4uYWNfc29jaWFscyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuICAgICYudl9zbWFsbGVyIHtcbiAgICAgICAgLmFjX3NvY2lhbHNfbGlua19pY29uIHtcbiAgICAgICAgICAgICRhYy1zb2NpYWxzLWljb24tc2l6ZTogJGFjLXNvY2lhbHMtaWNvbi1zaXplICogLjc1O1xuICAgICAgICAgICAgJGFjLXNvY2lhbHMtaWNvbi1wYWRkaW5nOiAkYWMtc29jaWFscy1pY29uLXBhZGRpbmcgKiAuNzU7XG5cbiAgICAgICAgICAgIHdpZHRoOiAkYWMtc29jaWFscy1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRhYy1zb2NpYWxzLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRhYy1zb2NpYWxzLWljb24tcGFkZGluZztcbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRhYy1zb2NpYWxzLWljb24tc2l6ZSAtICgkYWMtc29jaWFscy1pY29uLXBhZGRpbmcgKiAyKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRhYy1zb2NpYWxzLWljb24tc2l6ZSAtICgkYWMtc29jaWFscy1pY29uLXBhZGRpbmcgKiAyKTtcbiAgICAgICAgICAgIH0gICAgXG4gICAgICAgIH1cbiAgICB9XG4gICAgJi52X3NtYWxsZXN0IHtcbiAgICAgICAgLmFjX3NvY2lhbHNfbGlua19pY29uIHtcbiAgICAgICAgICAgICRhYy1zb2NpYWxzLWljb24tc2l6ZTogJGFjLXNvY2lhbHMtaWNvbi1zaXplICogLjU7XG4gICAgICAgICAgICAkYWMtc29jaWFscy1pY29uLXBhZGRpbmc6ICRhYy1zb2NpYWxzLWljb24tcGFkZGluZyAqIC41O1xuXG4gICAgICAgICAgICB3aWR0aDogJGFjLXNvY2lhbHMtaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkYWMtc29jaWFscy1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nOiAkYWMtc29jaWFscy1pY29uLXBhZGRpbmc7XG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkYWMtc29jaWFscy1pY29uLXNpemUgIC0gKCRhYy1zb2NpYWxzLWljb24tcGFkZGluZyAqIDIpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogJGFjLXNvY2lhbHMtaWNvbi1zaXplIC0gKCRhYy1zb2NpYWxzLWljb24tcGFkZGluZyAqIDIpO1xuICAgICAgICAgICAgfSAgICBcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLnZfaGlkZV90ZXh0IHtcbiAgICAgICAgLmFjX3NvY2lhbHNfbGlua190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi52X2NvbGxhcHNlLW9uLXNtYWxsIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgLmFjX3NvY2lhbHNfbGluayB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGFjLXNvY2lhbHMtaXRlbS1tYXJnaW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59ICAgXG4uYWNfc29jaWFsc19saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiAkYWMtc29jaWFscy1pdGVtLW1hcmdpbiAvIDI7XG4gICAgbWFyZ2luLWxlZnQ6ICRhYy1zb2NpYWxzLWl0ZW0tbWFyZ2luIC8gMjtcbn1cbi5hY19zb2NpYWxzX2xpbmtfaWNvbiB7XG4gICAgd2lkdGg6ICRhYy1zb2NpYWxzLWljb24tc2l6ZTtcbiAgICBoZWlnaHQ6ICRhYy1zb2NpYWxzLWljb24tc2l6ZTtcbiAgICBwYWRkaW5nOiAkYWMtc29jaWFscy1pY29uLXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogJGFjLXNvY2lhbHMtaWNvbi1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1yYWRpdXM6ICRhYy1zb2NpYWxzLWljb24tYm9yZGVyLXJhZGl1cztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ7XG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogJGFjLXNvY2lhbHMtaWNvbi1zaXplIC0gKCRhYy1zb2NpYWxzLWljb24tcGFkZGluZyAqIDIpO1xuICAgICAgICBoZWlnaHQ6ICRhYy1zb2NpYWxzLWljb24tc2l6ZSAtICgkYWMtc29jaWFscy1pY29uLXBhZGRpbmcgKiAyKTtcbiAgICAgICAgZmlsbDogJGJyYW5kLXdoaXRlO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgJGRlZmF1bHQtdHJhbnNpdGlvbi1zcGVlZDtcbiAgICB9ICAgIFxufVxuLmFjX3NvY2lhbHNfbGlua190ZXh0IHtcbiAgICBtYXJnaW4tbGVmdDogJGFjLXNvY2lhbHMtaXRlbS1tYXJnaW47XG59IiwiXG4vKiBGT09URVIgMSAtIDFcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuW2RhdGEtZi10eXBlPVwiZm9vdGVyLTFcIl0ge1xuXG5cbiAgICAvLyBmb290ZXJcbiAgICAkZm9vdGVyLWJhY2tncm91bmQ6ICRicmFuZC10ZXJ0aWFyeS1kYXJrZXI7XG4gICAgJGZvb3Rlci1jb250ZW50LXdpZHRoOiAkbWF4LWNvbnRlbnQtMTAwMDtcbiAgICBcbiAgICAvLyBwcmltYXJ5IGNvbnRhaW5lclxuICAgICRmb290ZXItcHJpbWFyeS1lbmFibGVkOiB0cnVlO1xuICAgICRmb290ZXItcHJpbWFyeS1iYWNrZ3JvdW5kOiAkYnJhbmQtdGVydGlhcnktZGFya2VyO1xuICAgICRmb290ZXItcHJpbWFyeS1wYWRkaW5nOiAkZGVmYXVsdC1wYWRkaW5nICogMiAkZGVmYXVsdC1wYWRkaW5nIC8gMjtcbiAgICAkZm9vdGVyLXByaW1hcnktY29sb3I6ICRicmFuZC13aGl0ZTtcbiAgICAkZm9vdGVyLXByaW1hcnktbGluay1jb2xvcjogcmdiYSgkYnJhbmQtd2hpdGUsIDEpO1xuICAgICRmb290ZXItcHJpbWFyeS1saW5rLWhvdmVyLWNvbG9yOiByZ2JhKCRicmFuZC13aGl0ZSwgLjcpO1xuICAgICRmb290ZXItcHJpbWFyeS1jb2x1bW4tMS1lbmFibGVkOiB0cnVlO1xuICAgICRmb290ZXItcHJpbWFyeS1jb2x1bW4tMi1lbmFibGVkOiB0cnVlO1xuICAgICRmb290ZXItcHJpbWFyeS1jb2x1bW4tMy1lbmFibGVkOiB0cnVlO1xuICAgICRmb290ZXItcHJpbWFyeS1jb2x1bW4tNC1lbmFibGVkOiB0cnVlO1xuICAgIC8vIHdpZHRoIG9mIGNvbHVtbnMgYWJvdmUgbWVkaXVtLiBBbnkgY29tYmluYXRpb24gaXMgcG9zc2libGUsIGFzIGxvbmcgYXMgaXQgYWRkcyB1cCB0byAxMDBcbiAgICAkZm9vdGVyLXByaW1hcnktY29sdW1uLXdpZHRoLTE6IDEqLjIwO1xuICAgICRmb290ZXItcHJpbWFyeS1jb2x1bW4td2lkdGgtMjogMSouNDA7XG4gICAgJGZvb3Rlci1wcmltYXJ5LWNvbHVtbi13aWR0aC0zOiAxKi4yMDtcbiAgICAkZm9vdGVyLXByaW1hcnktY29sdW1uLXdpZHRoLTQ6IDEqLjIwO1xuICAgICRmb290ZXItcHJpbWFyeS1jb2xsYXBzZWQtaGlkZS1jb2x1bW4tMTogdHJ1ZTtcbiAgICAkZm9vdGVyLXByaW1hcnktY29sbGFwc2VkLWhpZGUtY29sdW1uLTI6IGZhbHNlO1xuICAgICRmb290ZXItcHJpbWFyeS1jb2xsYXBzZWQtaGlkZS1jb2x1bW4tMzogdHJ1ZTtcbiAgICAkZm9vdGVyLXByaW1hcnktY29sbGFwc2VkLWhpZGUtY29sdW1uLTQ6IGZhbHNlO1xuICAgICRmb290ZXItcHJpbWFyeS1jb2xsYXBzZWQtYWxpZ24tY2VudGVyOiB0cnVlO1xuICAgIFxuICAgIC8vIHNlY29uZGFyeSBjb250YWluZXJcbiAgICAkZm9vdGVyLXNlY29uZGFyeS1lbmFibGVkOiB0cnVlO1xuICAgICRmb290ZXItc2Vjb25kYXJ5LWJhY2tncm91bmQ6IHJnYmEoJGJyYW5kLXdoaXRlLCAuMSk7XG4gICAgJGZvb3Rlci1zZWNvbmRhcnktcGFkZGluZzogJGRlZmF1bHQtcGFkZGluZyAvIDIgJGRlZmF1bHQtcGFkZGluZyAvIDI7XG4gICAgJGZvb3Rlci1zZWNvbmRhcnktY29sb3I6IHJnYmEoJGJyYW5kLXdoaXRlLCAuNSk7XG4gICAgJGZvb3Rlci1zZWNvbmRhcnktbGluay1jb2xvcjogcmdiYSgkYnJhbmQtd2hpdGUsIC41KTtcbiAgICAkZm9vdGVyLXNlY29uZGFyeS1saW5rLWhvdmVyLWNvbG9yOiByZ2JhKCRicmFuZC13aGl0ZSwgLjkpO1xuICAgICRmb290ZXItc2Vjb25kYXJ5LWNvbHVtbi0xLWVuYWJsZWQ6IHRydWU7XG4gICAgJGZvb3Rlci1zZWNvbmRhcnktY29sdW1uLTItZW5hYmxlZDogdHJ1ZTtcbiAgICAkZm9vdGVyLXNlY29uZGFyeS1jb2x1bW4td2lkdGgtMTogMSouNTtcbiAgICAkZm9vdGVyLXNlY29uZGFyeS1jb2x1bW4td2lkdGgtMjogMSouNTtcbiAgICAkZm9vdGVyLXNlY29uZGFyeS1jb2x1bW4tMS1qdXN0aWZ5OiBmbGV4LXN0YXJ0O1xuICAgICRmb290ZXItc2Vjb25kYXJ5LWNvbHVtbi0yLWp1c3RpZnk6IGZsZXgtZW5kO1xuICAgICRmb290ZXItc2Vjb25kYXJ5LWNvbGxhcHNlZC1hbGlnbi1jZW50ZXI6IHRydWU7XG4gICAgXG4gICAgLy8gc29jaWFsc1xuICAgICRmb290ZXItc29jaWFscy1pY29uLWJhY2tncm91bmQ6ICRicmFuZC10ZXJ0aWFyeS1kYXJrZXI7XG4gICAgJGZvb3Rlci1zb2NpYWxzLWljb24taG92ZXItYmFja2dyb3VuZDogJGJyYW5kLXdoaXRlO1xuICAgICRmb290ZXItc29jaWFscy1pY29uLWNvbG9yOiAkYnJhbmQtd2hpdGU7XG4gICAgJGZvb3Rlci1zb2NpYWxzLWljb24taG92ZXItY29sb3I6ICRicmFuZC10ZXJ0aWFyeS1kYXJrZXI7XG4gICAgXG5cbiAgICBAaW1wb3J0ICcuLi9hY19mX19mb290ZXItZ2xvYmFscy9fX2Zvb3Rlcl9nbG9iYWxzJztcblxuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gICAgXG4gICAgLy8gZ2xvYmFsc1xuICAgIEBpZiAkZm9vdGVyLWJhY2tncm91bmQgIT0gdHJhbnNwYXJlbnQgb3IgJGZvb3Rlci1iYWNrZ3JvdW5kICE9IG5vbmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZm9vdGVyLWJhY2tncm91bmQ7XG4gICAgfVxuICAgIGZvbnQtc2l6ZTogOTAlO1xuXG4gICAgLy8gZml4ZWQgdG9wdGFza3Mgc3BhY2VyIGZpeFxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0IGRvd24pIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDYwcHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIG9ubHkpIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDgwcHg7XG4gICAgfVxuICAgIFxuICAgIGgyIHtcbiAgICAgICAgZm9udC1zaXplOiAxNjAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZGVmYXVsdC1wYWRkaW5nO1xuICAgICAgICBvcGFjaXR5OiAuNTtcbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cblxuICAgIC8vXG4gICAgLy8gICAgICBDT0xVTU5cbiAgICAvL1xuXG4gICAgLy8gbWFyZ2luIGZpeCBmb3IgbmV3cyBpdGVtcywgaWYgaW4gc2Vjb25kIGNvbHVtblxuICAgIC5hY19mb290ZXJfY29sdW1uIHtcbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgLmFjX2Zvb3Rlcl9saW5rIHtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRkZWZhdWx0LXBhZGRpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIC8vXG4gICAgLy8gICAgICBQUklNQVJZXG4gICAgLy9cblxuICAgIC5hY19mb290ZXJfcHJpbWFyeV9saW5rIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIC5hY19mb290ZXJfcHJpbWFyeV9saW5rX2NvcHlfYWJvdmUge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgb3BhY2l0eTogLjU7XG4gICAgICAgIGZvbnQtc2l6ZTogODAlO1xuICAgIH1cblxuXG4gICAgLy9cbiAgICAvLyAgICAgIFNFQ09OREFSWVxuICAgIC8vXG4gICAgLmFjX2Zvb3Rlcl9zZWNvbmRhcnkge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgICBmb250LXNpemU6IDkwJTtcbiAgICB9XG4gICAgLmFjX2Zvb3Rlcl9zZWNvbmRhcnlfbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuXG59IC8vIGVuZCBvZiBzY29wZVxuXG4iLCJcbi8qICBGT09URVIgMSAtIEdMT0JBTFNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXG5cbi8vXG4vLyAgICAgUFJJTUFSWVxuLy9cblxuQGlmICRmb290ZXItcHJpbWFyeS1lbmFibGVkID09IHRydWUge1xuICAgIC5hY19mb290ZXJfcHJpbWFyeSB7XG4gICAgICAgIEBpZiAkZm9vdGVyLXByaW1hcnktYmFja2dyb3VuZCAhPSB0cmFuc3BhcmVudCBvciAkZm9vdGVyLXByaW1hcnktYmFja2dyb3VuZCAhPSBub25lIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRmb290ZXItcHJpbWFyeS1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgICAgICoge1xuICAgICAgICAgICAgY29sb3I6ICRmb290ZXItcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hY19mb290ZXJfcHJpbWFyeV9jb250YWluZXIge1xuICAgICAgICBtYXgtd2lkdGg6ICRmb290ZXItY29udGVudC13aWR0aDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHBhZGRpbmc6ICAkZm9vdGVyLXByaW1hcnktcGFkZGluZztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hY19mb290ZXJfcHJpbWFyeV9jb2x1bW4ge1xuICAgICAgICBwYWRkaW5nOiAwICRkZWZhdWx0LXBhZGRpbmcgLyAyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgXG4gICAgICAgIEBpZiAkZm9vdGVyLXByaW1hcnktY29sdW1uLTEtZW5hYmxlZCA9PSBmYWxzZSB7XG4gICAgICAgICAgICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgIH1cbiAgICAgICAgfUBpZiAkZm9vdGVyLXByaW1hcnktY29sdW1uLTItZW5hYmxlZCA9PSBmYWxzZSB7XG4gICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaWYgJGZvb3Rlci1wcmltYXJ5LWNvbHVtbi0zLWVuYWJsZWQgPT0gZmFsc2Uge1xuICAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRmb290ZXItcHJpbWFyeS1jb2x1bW4tNC1lbmFibGVkID09IGZhbHNlIHtcbiAgICAgICAgICAgICAmOm50aC1jaGlsZCg0KSB7XG4gICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZmF1bHQtcGFkZGluZyAqIDI7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICAgICAgZmxleDogMCAxIHBlcmNlbnRhZ2UoJGZvb3Rlci1wcmltYXJ5LWNvbHVtbi13aWR0aC0xKTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoJGZvb3Rlci1wcmltYXJ5LWNvbHVtbi13aWR0aC0xKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgICAgICBmbGV4OiAwIDEgcGVyY2VudGFnZSgkZm9vdGVyLXByaW1hcnktY29sdW1uLXdpZHRoLTIpO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSgkZm9vdGVyLXByaW1hcnktY29sdW1uLXdpZHRoLTIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgICAgICAgICAgIGZsZXg6IDAgMSBwZXJjZW50YWdlKCRmb290ZXItcHJpbWFyeS1jb2x1bW4td2lkdGgtMyk7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKCRmb290ZXItcHJpbWFyeS1jb2x1bW4td2lkdGgtMyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOm50aC1jaGlsZCg0KSB7XG4gICAgICAgICAgICAgICAgZmxleDogMCAxIHBlcmNlbnRhZ2UoJGZvb3Rlci1wcmltYXJ5LWNvbHVtbi13aWR0aC00KTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoJGZvb3Rlci1wcmltYXJ5LWNvbHVtbi13aWR0aC00KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkZm9vdGVyLXByaW1hcnktY29sbGFwc2VkLWFsaWduLWNlbnRlciA9PSB0cnVlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0IGRvd24pIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0IGRvd24pIHtcblxuICAgICAgICAgICAgQGlmICRmb290ZXItcHJpbWFyeS1jb2xsYXBzZWQtaGlkZS1jb2x1bW4tMSA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICRmb290ZXItcHJpbWFyeS1jb2xsYXBzZWQtaGlkZS1jb2x1bW4tMiA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICRmb290ZXItcHJpbWFyeS1jb2xsYXBzZWQtaGlkZS1jb2x1bW4tMyA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICRmb290ZXItcHJpbWFyeS1jb2xsYXBzZWQtaGlkZS1jb2x1bW4tNCA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCg0KSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5hY19mb290ZXJfcHJpbWFyeV9saW5rIHtcbiAgICAgICAgY29sb3I6ICRmb290ZXItcHJpbWFyeS1saW5rLWNvbG9yO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkZm9vdGVyLXByaW1hcnktbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn0gQGVsc2Uge1xuICAgIC5hY19mb290ZXJfcHJpbWFyeSB7IFxuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuXG4vL1xuLy8gICAgIFNFQ09OREFSWVxuLy9cblxuQGlmICRmb290ZXItc2Vjb25kYXJ5LWVuYWJsZWQgPT0gdHJ1ZSB7XG4gICAgLmFjX2Zvb3Rlcl9zZWNvbmRhcnkge1xuICAgICAgICBAaWYgJGZvb3Rlci1zZWNvbmRhcnktYmFja2dyb3VuZCAhPSB0cmFuc3BhcmVudCBvciAkZm9vdGVyLXNlY29uZGFyeS1iYWNrZ3JvdW5kICE9IG5vbmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGZvb3Rlci1zZWNvbmRhcnktYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgICAgICAqIHtcbiAgICAgICAgICAgIGNvbG9yOiAkZm9vdGVyLXNlY29uZGFyeS1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYWNfZm9vdGVyX3NlY29uZGFyeV9jb250YWluZXIge1xuICAgICAgICBtYXgtd2lkdGg6ICRmb290ZXItY29udGVudC13aWR0aDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHBhZGRpbmc6ICAkZm9vdGVyLXNlY29uZGFyeS1wYWRkaW5nO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmFjX2Zvb3Rlcl9zZWNvbmRhcnlfY29sdW1uIHtcbiAgICAgICAgcGFkZGluZzogMCAkZGVmYXVsdC1wYWRkaW5nIC8gMjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIFxuICAgICAgICBAaWYgJGZvb3Rlci1zZWNvbmRhcnktY29sdW1uLTEtZW5hYmxlZCA9PSBmYWxzZSB7XG4gICAgICAgICAgICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgIH1cbiAgICAgICAgfUBpZiAkZm9vdGVyLXNlY29uZGFyeS1jb2x1bW4tMi1lbmFibGVkID09IGZhbHNlIHtcbiAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgICAgICAgIGZsZXg6IDAgMSBwZXJjZW50YWdlKCRmb290ZXItc2Vjb25kYXJ5LWNvbHVtbi13aWR0aC0xKTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoJGZvb3Rlci1zZWNvbmRhcnktY29sdW1uLXdpZHRoLTEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgIGZsZXg6IDAgMSBwZXJjZW50YWdlKCRmb290ZXItc2Vjb25kYXJ5LWNvbHVtbi13aWR0aC0yKTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoJGZvb3Rlci1zZWNvbmRhcnktY29sdW1uLXdpZHRoLTIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRmb290ZXItc2Vjb25kYXJ5LWNvbGxhcHNlZC1hbGlnbi1jZW50ZXIgPT0gdHJ1ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCBkb3duKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRkZWZhdWx0LXBhZGRpbmc7XG4gICAgICAgICAgICAgICAgLmFjX2Zvb3Rlcl9zZWNvbmRhcnlfbGluaywgXG4gICAgICAgICAgICAgICAgLmFjX2Zvb3Rlcl9zZWNvbmRhcnlfdGV4dCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAuYWNfZm9vdGVyX3NlY29uZGFyeV9saW5rLCBcbiAgICAgICAgICAgIC5hY19mb290ZXJfc2Vjb25kYXJ5X3RleHQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGRlZmF1bHQtcGFkZGluZyAvIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiAkZm9vdGVyLXNlY29uZGFyeS1jb2x1bW4tMS1qdXN0aWZ5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogJGZvb3Rlci1zZWNvbmRhcnktY29sdW1uLTItanVzdGlmeTtcbiAgICAgICAgICAgICAgICAuYWNfZm9vdGVyX3NlY29uZGFyeV9saW5rLCBcbiAgICAgICAgICAgICAgICAuYWNfZm9vdGVyX3NlY29uZGFyeV90ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRkZWZhdWx0LXBhZGRpbmcgLyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuICAgIC5hY19mb290ZXJfc2Vjb25kYXJ5X3RleHQge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbiAgICAuYWNfZm9vdGVyX3NlY29uZGFyeV9saW5rIHtcbiAgICAgICAgY29sb3I6ICRmb290ZXItc2Vjb25kYXJ5LWxpbmstY29sb3I7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRmb290ZXItc2Vjb25kYXJ5LWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59IEBlbHNlIHtcbiAgICAuYWNfZm9vdGVyX3NlY29uZGFyeSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5cbi8vXG4vLyAgICAgU09DSUFMU1xuLy9cblxuQGlmICRmb290ZXItc2Vjb25kYXJ5LWVuYWJsZWQgPT0gdHJ1ZSB7XG4gICAgQGlmICRmb290ZXItc2Vjb25kYXJ5LWNvbGxhcHNlZC1hbGlnbi1jZW50ZXIgPT0gdHJ1ZSB7XG4gICAgICAgIC5hY19zb2NpYWxzIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0IGRvd24pIHtcbiAgICAgICAgLmFjX3NvY2lhbHMge1xuICAgICAgICAgICAgbWFyZ2luOiAkZGVmYXVsdC1wYWRkaW5nIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWNfc29jaWFsc19saW5rX2ljb24ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZm9vdGVyLXNvY2lhbHMtaWNvbi1iYWNrZ3JvdW5kO1xuICAgICAgICBzdmcge1xuICAgICAgICAgICAgZmlsbDogICRmb290ZXItc29jaWFscy1pY29uLWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRmb290ZXItc29jaWFscy1pY29uLWhvdmVyLWJhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogICRmb290ZXItc29jaWFscy1pY29uLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCJcbi8qIFNFQ1RJT04gLSBNRU5VIDJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIGZvciBtZW51cyB3ZSB1c2UgYSBnbG9iYWwgc2NvcGUsIHNvIHdlIGNhbiBhZGRyZXNzIHRoZSBib2R5IGFzd2VsbFxuXG4qL1xuXG5cbiRhYy1tZW51LTItdHJhbnNwYXJlbnQ6IGZhbHNlOyBcbiRhYy1tZW51LTItdHJhbnNwYXJlbnQtb24taG9tZTogZmFsc2U7XG4kYWMtbWVudS0yLXotaW5kZXg6IDIyMjI7XG4kYWMtbWVudS0yLWJhY2tncm91bmQ6ICRkZWZhdWx0LWJhY2tncm91bmQtbGlnaHQ7XG4kYWMtbWVudS0yLWdyYWRpZW50LWJlZm9yZTogZmFsc2U7XG4kYWMtbWVudS0yLWdyYWRpZW50LWJlZm9yZS1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1kYXJrO1xuJGFjLW1lbnUtMi1sb2dvLXdpZHRoOiAxNDBweDsgLy8gaGVpZ2h0IGZvciBtZWRpdW0gdXAuIFxuJGFjLW1lbnUtMi1jb250ZW50LXdpZHRoOiAxMDAwcHg7XG5cbiRhYy1tZW51LTItYmFyLXRvcC1lbmFibGVkOiB0cnVlO1xuJGFjLW1lbnUtMi1iYXItdG9wLWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiRhYy1tZW51LTItYmFyLXRvcC1iYWNrZ3JvdW5kOiAkYnJhbmQtbGlnaHQtZ3JheTtcblxuJGFjLW1lbnUtMi1tYWluLWJhY2tncm91bmQ6ICRkZWZhdWx0LWJhY2tncm91bmQtbGlnaHQ7XG4kYWMtbWVudS0yLW1haW4tY29udGVudC1zZWNvbmRhcnktbWVudS1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLCAuNSk7XG5cbiRhYy1tZW51LTItYmFyLWJvdHRvbS1lbmFibGVkOiB0cnVlO1xuJGFjLW1lbnUtMi1iYXItYm90dG9tLWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiRhYy1tZW51LTItYmFyLWJvdHRvbS1iYWNrZ3JvdW5kOiAkYnJhbmQtbGlnaHQtZ3JheTtcblxuLy9zb2NpYWxzIGljb25cbiRhYy1tZW51LTItc29jaWFscy1pY29uLWJhY2tncm91bmQ6ICRkZWZhdWx0LWljb24tY29sb3ItbGlnaHQ7XG4kYWMtbWVudS0yLXNvY2lhbHMtaWNvbi1ob3Zlci1iYWNrZ3JvdW5kOiAkZGVmYXVsdC1pY29uLWNvbG9yLWRhcms7XG4kYWMtbWVudS0yLXNvY2lhbHMtaWNvbi1jb2xvcjogJGRlZmF1bHQtaWNvbi1jb2xvci1kYXJrO1xuJGFjLW1lbnUtMi1zb2NpYWxzLWljb24taG92ZXItY29sb3I6ICRkZWZhdWx0LWljb24tY29sb3ItbGlnaHQ7XG5cbi8vIG1vYmlsZVxuJGFjLW1lbnUtMi1tb2JpbGUtZml4ZWQ6IHRydWU7ICBcbiRhYy1tZW51LTItbW9iaWxlLWhlaWdodDogNzBweDtcbiRhYy1tZW51LTItbW9iaWxlLXBhZGRpbmc6IDEwcHg7XG4kYWMtbWVudS0yLW1vYmlsZS1zdmctc2l6ZTogMjVweDtcbiRhYy1tZW51LTItbW9iaWxlLXN2Zy1jb2xvcjogJGRlZmF1bHQtaWNvbi1jb2xvci1kYXJrO1xuXG4vLyBvdmVybGF5XG4kYWMtbWVudS0yLW92ZXJsYXktY29udGFpbmVyLWJhY2tncm91bmQ6ICRicmFuZC1saWdodGVzdC1ncmF5O1xuJGFjLW1lbnUtMi1vdmVybGF5LW1lbnUtcHJpbWFyeS1ib3JkZXI6ICRkZWZhdWx0LWJvcmRlcjtcbiRhYy1tZW51LTItb3ZlcmxheS1tZW51LXByaW1hcnktdGV4dC1hbGlnbjogY2VudGVyOyAvLyBsZWZ0IG9yIGNlbnRlclxuJGFjLW1lbnUtMi1vdmVybGF5LW1lbnUtc2Vjb25kYXJ5LWJvcmRlcjogbm9uZTsgLy8gJGRlZmF1bHQtYm9yZGVyO1xuJGFjLW1lbnUtMi1vdmVybGF5LW1lbnUtc2Vjb25kYXJ5LXRleHQtYWxpZ246IGNlbnRlcjsgLy8gbGVmdCBvciBjZW50ZXJcblxuLy8gb3ZlcmxheSBiYWNrZ3JvdW5kXG4kYWMtbWVudS0yLW92ZXJsYXktYmFja2Ryb3AtYmFja2dyb3VuZDogcmdiYSgkZGVmYXVsdC1iYWNrZ3JvdW5kLWRhcmssIC44KTtcblxuQGltcG9ydCAnX19tZW51XzJfZ2xvYmFscyc7XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cblxuW2RhdGEtbS10eXBlPVwibWVudS0yXCJdIHtcblxufVxuXG4iLCJcbi8qIE1FTlUgMlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5bZGF0YS1tLXR5cGU9XCJtZW51LTJcIl0ge1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6ICRhYy1tZW51LTItYmFja2dyb3VuZDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0IGRvd24pIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6ICRhYy1tZW51LTItei1pbmRleDtcbiAgICAgICAgQGlmICRhYy1tZW51LTItbW9iaWxlLWZpeGVkID09IHRydWUge1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJGRlZmF1bHQtYm94LXNoYWRvdztcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGFjLW1lbnUtMi1ncmFkaWVudC1iZWZvcmUgPT0gdHJ1ZSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiYSgkYWMtbWVudS0yLWdyYWRpZW50LWJlZm9yZS1jb2xvciwgMCksIHJnYmEoJGFjLW1lbnUtMi1ncmFkaWVudC1iZWZvcmUtY29sb3IsIDEpKTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCBkb3duKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIEBpZiAkYWMtbWVudS0yLXRyYW5zcGFyZW50ID09IHRydWUge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkYWMtbWVudS0yLXotaW5kZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVsLm1lbnUuZHJvcGRvd24ge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRkZWZhdWx0LXBhZGRpbmc7XG4gICAgICAgIH1cbiAgICAgICAgJi52X2hhcy1pdGVtcy1yaWdodHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogJGRlZmF1bHQtcGFkZGluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVsLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IC40ZW0gMDtcbiAgICAgICAgbGkuaXMtc3VibWVudS1pdGVtIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyO1xuICAgICAgICB9XG4gICAgICAgIGEge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDFlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgICYgKyAubWFpbi1jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCBkb3duKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJGFjLW1lbnUtMi1tb2JpbGUtaGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNlYXJjaC1mb3JtIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTBweFxuICAgIH1cbn1cblxuXG5cbi8vXG4vLyAgICAgTUVOVSBDVEFcbi8vXG5cblxuLmFjX21lbnUtMl9jdGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5hY19tZW51LTJfY3RhX3RleHQge1xufVxuLmFjX21lbnUtMl9jdGFfbGluayB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogMS42ZW07XG4gICAgICAgIGhlaWdodDogMS42ZW07XG4gICAgfVxufVxuXG4vL1xuLy8gICAgIE1FTlUgRElWREVSXG4vL1xuXG4uYWNfbWVudS0yX2RpdmlkZXJfYWZ0ZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxZW07XG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDJweDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLWRhcmssIC4xKTtcbiAgICB9XG59XG4uYWNfbWVudS0yX2RpdmlkZXJfYmVmb3JlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1sZWZ0OiAxZW07XG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMnB4O1xuICAgICAgICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoJGRlZmF1bHQtdGV4dC1jb2xvci1kYXJrLCAuMSk7XG4gICAgfVxufVxuXG4vL1xuLy8gICAgICBTVElDS1lcbi8vXG5cbi8vIC5hY19tZW51LTJfdW5zdGlja3lfY29udGFpbmVyIHtcbi8vICAgICB3aWR0aDogMTAwJTtcbi8vICAgICBoZWlnaHQ6IDJweDtcbi8vIH1cbi5hY19tZW51LTJfc3RpY2t5X2NvbnRhaW5lciB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgdHJhbnNpdGlvbjogaGVpZ2h0IC4zcyBlYXNlO1xufVxuLmFjX21lbnUtMl9zdGlja3kge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6ICAkYWMtbWVudS0yLXotaW5kZXggLSAxO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjNzIGVhc2U7XG4gICAgXG4gICAgJi5pcy1zdHVjayB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhYy1tZW51LTItYmFja2dyb3VuZDtcbiAgICAgICAgei1pbmRleDogICRhYy1tZW51LTItei1pbmRleDtcbiAgICAgICAgYm94LXNoYWRvdzogJGRlZmF1bHQtYm94LXNoYWRvdztcblxuICAgICAgICAvL2FuaW1hdGUgZWxlbWVudHMgb24gc3R1Y2tcbiAgICAgICAgLmFjX21lbnUtMl9sb2dvX2ltZyB7XG4gICAgICAgICAgICB3aWR0aDogJGFjLW1lbnUtMi1sb2dvLXdpZHRoICogLjc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0tcG9ydHJhaXQgZG93bikge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuXG4vL1xuLy8gICAgIExPR09cbi8vXG5cbi5hY19tZW51LTJfbG9nb19jb250YWluZXIge1xuICAgIHBhZGRpbmc6ICRkZWZhdWx0LXBhZGRpbmcgMDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCBkb3duKSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGZsZXg6IDAgMCAkYWMtbWVudS0yLWxvZ28td2lkdGg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJGRlZmF1bHQtcGFkZGluZztcbiAgICB9XG59XG5hLmFjX21lbnUtMl9sb2dvX2xpbmsge1xuICAgIHdpbGwtY2hhbmdlOiBjb250ZW50cztcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlO1xuICAgIG1hcmdpbjogMDtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogLjg7XG4gICAgfVxufVxuLmFjX21lbnUtMl9sb2dvX2ltZyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0tcG9ydHJhaXQgZG93bikge1xuICAgICAgICBoZWlnaHQ6ICRhYy1tZW51LTItbW9iaWxlLWhlaWdodCAtICggJGFjLW1lbnUtMi1tb2JpbGUtcGFkZGluZyAqIDIpO1xuICAgICAgICB3aWR0aDogaW5pdGlhbDtcbiAgICB9XG4gICAgd2lkdGg6ICRhYy1tZW51LTItbG9nby13aWR0aDtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAuM3MgZWFzZTtcbn1cblxuXG5cbi8vXG4vLyAgICAgQkFSIFRPUFxuLy9cbi5hY19tZW51LTJfYmFyX3RvcCB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0tcG9ydHJhaXQgZG93bikge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBAaWYgJGFjLW1lbnUtMi1iYXItdG9wLWVuYWJsZWQgPT0gZmFsc2Uge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbkBpZiAkYWMtbWVudS0yLWJhci10b3AtZW5hYmxlZCA9PSB0cnVlIHtcbiAgICAuYWNfbWVudS0yX2Jhcl90b3Age1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogJGRlZmF1bHQtcGFkZGluZyAvIDIgICRkZWZhdWx0LXBhZGRpbmc7O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRhYy1tZW51LTItei1pbmRleCArIDE7XG4gICAgICAgIEBpZiAkYWMtbWVudS0yLXRyYW5zcGFyZW50ID09IGZhbHNlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRhYy1tZW51LTItYmFyLXRvcC1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5hY19tZW51LTJfYmFyX3RvcF9jb250YWluZXIge1xuICAgICAgICBwYWRkaW5nOiAwICRkZWZhdWx0LXBhZGRpbmc7XG4gICAgICAgIG1heC13aWR0aDogJGFjLW1lbnUtMi1jb250ZW50LXdpZHRoO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiAkYWMtbWVudS0yLWJhci10b3AtanVzdGlmeS1jb250ZW50O1xuICAgIH1cbiAgICAuYWNfbWVudS0yX2Jhcl90b3BfY29udGVudCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyO1xuICAgIH1cbn1cblxuXG4vL1xuLy8gICAgICBNQUlOXG4vL1xuXG4uYWNfbWVudS0yX21haW4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHotaW5kZXg6ICRhYy1tZW51LTItei1pbmRleDtcbiAgICBwYWRkaW5nOiAwICRkZWZhdWx0LXBhZGRpbmc7XG4gICAgbWF4LXdpZHRoOiAkYWMtbWVudS0yLWNvbnRlbnQtd2lkdGg7XG4gICAgXG4gICAgQGlmICRhYy1tZW51LTItdHJhbnNwYXJlbnQgPT0gZmFsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYWMtbWVudS0yLW1haW4tYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCBkb3duKSB7XG4gICAgICAgIHBhZGRpbmc6ICRkZWZhdWx0LXBhZGRpbmcgLyAyO1xuICAgIH1cbn1cbi5hY19tZW51LTJfbWFpbl9jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzIGVhc2UsIHZpc2liaWxpdHkgMHMgLjZzO1xuICAgIH1cbn1cbi5hY19tZW51LTJfbWFpbl9jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0IGRvd24pIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8vXG4vLyAgICAgQkFSIEJPVFRPTVxuLy9cbi5hY19tZW51LTJfYmFyX2JvdHRvbSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0IGRvd24pIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgQGlmICRhYy1tZW51LTItYmFyLWJvdHRvbS1lbmFibGVkID09IGZhbHNlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5AaWYgJGFjLW1lbnUtMi1iYXItYm90dG9tLWVuYWJsZWQgPT0gdHJ1ZSB7XG4gICAgLmFjX21lbnUtMl9iYXJfYm90dG9tIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6ICRkZWZhdWx0LXBhZGRpbmcgLyAyICRkZWZhdWx0LXBhZGRpbmc7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJGFjLW1lbnUtMi16LWluZGV4ICsgMTtcbiAgICAgICAgQGlmICRhYy1tZW51LTItdHJhbnNwYXJlbnQgPT0gZmFsc2Uge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGFjLW1lbnUtMi1iYXItYm90dG9tLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmFjX21lbnUtMl9iYXJfYm90dG9tX2NvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmc6IDAgJGRlZmF1bHQtcGFkZGluZztcbiAgICAgICAgbWF4LXdpZHRoOiAkYWMtbWVudS0yLWNvbnRlbnQtd2lkdGg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICRhYy1tZW51LTItYmFyLWJvdHRvbS1qdXN0aWZ5LWNvbnRlbnQ7XG4gICAgfVxuICAgIC5hY19tZW51LTJfYmFyX2JvdHRvbV9jb250ZW50IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI7XG4gICAgfVxufVxuXG5cbi8vXG4vLyAgICAgQlROIFNFQVJDSFxuLy9cblxuLmFjX21lbnUtMl9idG4tc2VhcmNoIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxLjZlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjZlbTtcbiAgICB9XG59XG5cbi8vXG4vLyAgICAgTU9CSUxFIENPTlRFTlRcbi8vXG5cbi5hY19tZW51LTJfbW9iaWxlX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbi5hY19tZW51LTJfbW9iaWxlX2NvbnRlbnRfZGl2aWRlciB7XG4gICAgd2lkdGg6IDFweDtcbiAgICBtYXJnaW46IDAgMWVtO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoJGRlZmF1bHQtdGV4dC1jb2xvci1kYXJrLCAuMSk7XG59XG5cblxuXG4vL1xuLy8gICAgIE1PQklMRSBCVVRUT05TXG4vL1xuXG4uYWNfbWVudS0yX21vYmlsZV9idG4ge1xuXHRoZWlnaHQ6ICRhYy1tZW51LTItbW9iaWxlLWhlaWdodCAtICgkYWMtbWVudS0yLW1vYmlsZS1wYWRkaW5nICogMik7XG4gICAgd2lkdGg6ICRhYy1tZW51LTItbW9iaWxlLXN2Zy1zaXplICsgJGFjLW1lbnUtMi1tb2JpbGUtc3ZnLXNpemU7XG4gICAgcGFkZGluZzogKCgkYWMtbWVudS0yLW1vYmlsZS1oZWlnaHQgLSAoJGFjLW1lbnUtMi1tb2JpbGUtcGFkZGluZyAqIDIpIC0gJGFjLW1lbnUtMi1tb2JpbGUtc3ZnLXNpemUpIC8gMikgJGFjLW1lbnUtMi1tb2JpbGUtc3ZnLXNpemUgLyAyO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6ICRhYy1tZW51LTItbW9iaWxlLXN2Zy1zaXplICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogJGFjLW1lbnUtMi1tb2JpbGUtc3ZnLXNpemUgIWltcG9ydGFudDtcbiAgICAgICAgZmlsbDogJGFjLW1lbnUtMi1tb2JpbGUtc3ZnLWNvbG9yO1xuICAgIH1cblxufVxuXG5cbi8vXG4vLyAgICAgSEFNQlVSR0VSIElDT05cbi8vXG5cbi5hY19tZW51LTJfbW9iaWxlX2J0bi1oYW1idXJnZXIge1xuICAgIGhlaWdodDogJGFjLW1lbnUtMi1tb2JpbGUtaGVpZ2h0IC0gKCRhYy1tZW51LTItbW9iaWxlLXBhZGRpbmcgKiAyKTtcbiAgICB3aWR0aDogJGFjLW1lbnUtMi1tb2JpbGUtc3ZnLXNpemUgKyAkYWMtbWVudS0yLW1vYmlsZS1zdmctc2l6ZTtcbiAgICBwYWRkaW5nOiAxMnB4ICRhYy1tZW51LTItbW9iaWxlLXBhZGRpbmc7IC8vIHBhZGRpbmcgaXMgbWFudWFsXG5cblx0LmJ1cmdlci1pY29uIHtcblx0XHRAaW5jbHVkZSBidXJnZXIoMjVweCwgMnB4LCA0cHgsICRkZWZhdWx0LWljb24tY29sb3IpOyAvLyB3aWR0aCBpcyBtYW51YWxcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuYm9keS5zX2lzLW9wZW5fbWVudS1tb2JpbGUge1xuICAgIC5idXJnZXItaWNvbiB7XG5cdFx0QGluY2x1ZGUgYnVyZ2VyLXRvLWNyb3NzO1xuXHR9XG59XG5cblxuXG4vL1xuLy8gICAgIE9WRVJMQVkgXG4vL1xuXG4uYWNfbWVudS0yX292ZXJsYXlfY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogJGFjLW1lbnUtMi16LWluZGV4IC0gMTtcbiAgICB3aWR0aDogNDAwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kOiAkYWMtbWVudS0yLW92ZXJsYXktY29udGFpbmVyLWJhY2tncm91bmQ7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwMHB4KTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzIGVhc2U7XG4gICAgcGFkZGluZy10b3A6ICRhYy1tZW51LTItbW9iaWxlLWhlaWdodDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICB3aWR0aDogOTB2dztcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbiAgICBcbn1cbi5hY19tZW51LTJfb3ZlcmxheV9zY3JvbGxfY29udGFpbmVyIHtcbiAgICBvdmVyZmxvdzogc2Nyb2xsO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4uYWNfbWVudS0yX292ZXJsYXlfc2Nyb2xsX2NvbnRhaW5lcl9pbm5lciB7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG59XG4uYWNfbWVudS0yX292ZXJsYXlfbWVudV9jb250YWluZXIge1xuICAgIHBhZGRpbmc6ICRkZWZhdWx0LXBhZGRpbmc7XG59XG51bC5hY19tZW51LTJfb3ZlcmxheV9tZW51X3ByaW1hcnkge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIEBpZiAkYWMtbWVudS0yLW92ZXJsYXktbWVudS1wcmltYXJ5LWJvcmRlciAhPSBub25lIHtcbiAgICAgICAgYm9yZGVyLXRvcDogJGFjLW1lbnUtMi1vdmVybGF5LW1lbnUtcHJpbWFyeS1ib3JkZXI7XG4gICAgfVxuICAgIHBhZGRpbmctYm90dG9tOiAyZW07XG5cbiAgICBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246ICRhYy1tZW51LTItb3ZlcmxheS1tZW51LXByaW1hcnktdGV4dC1hbGlnbjtcbiAgICB9XG5cbiAgICA+IGxpIHtcbiAgICAgICAgQGlmICRhYy1tZW51LTItb3ZlcmxheS1tZW51LXByaW1hcnktYm9yZGVyICE9IG5vbmUge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJGFjLW1lbnUtMi1vdmVybGF5LW1lbnUtcHJpbWFyeS1ib3JkZXI7XG4gICAgICAgIH1cbiAgICAgICAgPiBhIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRkZWZhdWx0LXBhZGRpbmcgLyAyIDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdWwuaXMtYWNjb3JkaW9uLXN1Ym1lbnUge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgICAgIGEge1xuICAgICAgICAgICAgcGFkZGluZzogJGRlZmF1bHQtcGFkZGluZyAvIDQgMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxudWwuYWNfbWVudS0yX292ZXJsYXlfbWVudV9zZWNvbmRhcnkge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIEBpZiAkYWMtbWVudS0yLW92ZXJsYXktbWVudS1zZWNvbmRhcnktYm9yZGVyICE9IG5vbmUge1xuICAgICAgICBib3JkZXItdG9wOiAkYWMtbWVudS0yLW92ZXJsYXktbWVudS1zZWNvbmRhcnktYm9yZGVyO1xuICAgIH1cbiAgICBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIEBpZiAkYWMtbWVudS0yLW92ZXJsYXktbWVudS1zZWNvbmRhcnktYm9yZGVyICE9IG5vbmUge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJGFjLW1lbnUtMi1vdmVybGF5LW1lbnUtc2Vjb25kYXJ5LWJvcmRlcjtcbiAgICAgICAgfVxuICAgICAgICB0ZXh0LWFsaWduOiAkYWMtbWVudS0yLW92ZXJsYXktbWVudS1zZWNvbmRhcnktdGV4dC1hbGlnbjtcbiAgICAgICAgcGFkZGluZzogJGRlZmF1bHQtcGFkZGluZyAvIDQgMDtcbiAgICB9XG59XG5cblxuYm9keS5zX2lzLW9wZW5fbWVudS1tb2JpbGUge1xuICAgIC5hY19tZW51LTJfb3ZlcmxheV9jb250YWluZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgfVxuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vXG4vLyAgICAgT1ZFUkxBWSBCQUNLRFJPUFxuLy9cblxuXG4uYWNfbWVudS0yX292ZXJsYXlfYmFja2Ryb3Age1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogJGFjLW1lbnUtMi1vdmVybGF5LWJhY2tkcm9wLWJhY2tncm91bmQ7XG4gICAgei1pbmRleDogJGFjLW1lbnUtMi16LWluZGV4IC0gMjtcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlIC4zcywgaGVpZ2h0IDBzIC42cztcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuYm9keS5zX2lzLW9wZW5fbWVudS1tb2JpbGUge1xuICAgIC5hY19tZW51LTJfb3ZlcmxheV9iYWNrZHJvcCB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDBzLCBvcGFjaXR5IC4zcyBlYXNlO1xuICAgIH1cbn1cblxuXG5cbi8vXG4vLyAgICAgU0VBUkNIXG4vL1xuXG5cbi5hY19tZW51LTJfc2VhcmNoX2NvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlOyBcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC0yZW0pO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0IGRvd24pIHtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHJpZ2h0OiAxZW07XG4gICAgfVxufVxuYm9keS5JRTEwIHtcbiAgICAuYWNfbWVudS0yX3NlYXJjaF9jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmFjX21lbnUtMl9zZWFyY2hfaW5wdXQge1xuICAgIG1hcmdpbjogMDtcbn1cbi5hY19tZW51LTJfc2VhcmNoX2Nsb3NlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IC43ZW07XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAzZW07XG4gICAgaGVpZ2h0OiAzZW07XG4gICAgcGFkZGluZzogLjdlbTtcbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogMS42ZW07XG4gICAgICAgIGhlaWdodDogMS42ZW07XG4gICAgICAgIGZpbGw6ICRhYy1tZW51LTItbW9iaWxlLXN2Zy1jb2xvcjtcbiAgICB9XG59XG5cbmJvZHkuc19pcy1vcGVuX21lbnUtc2VhcmNoIHtcbiAgICAmLklFMTAgeyBcbiAgICAgICAgLmFjX21lbnUtMl9zZWFyY2hfY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5hY19tZW51LTJfc2VhcmNoX2NvbnRhaW5lciB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0tcG9ydHJhaXQgZG93bikge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApIHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLy9cbi8vICAgICBTT0NJQUxTXG4vL1xuXG5cbi5hY19zb2NpYWxzX2xpbmtfaWNvbiB7XG4gICAgYmFja2dyb3VuZDogJGFjLW1lbnUtMi1zb2NpYWxzLWljb24tYmFja2dyb3VuZDtcbiAgICBzdmcge1xuICAgICAgICBmaWxsOiAgJGFjLW1lbnUtMi1zb2NpYWxzLWljb24tY29sb3I7XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYWMtbWVudS0yLXNvY2lhbHMtaWNvbi1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkYWMtbWVudS0yLXNvY2lhbHMtaWNvbi1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIvLyBCdXJnZXIgcGFydHNcbi8vXG4vLyAoLS0tKSB0b3AgICAgLT4gJjo6YmVmb3JlXG4vLyBbLS0tXSBtaWRkbGUgLT4gJlxuLy8gKC0tLSkgYm90dG9tIC0+ICY6OmFmdGVyXG5cblxuLy8gVmVuZG9yIHByZWZpeGVzXG4kc2Fzcy1idXJnZXItYWRkLXZlbmRvci1wcmVmaXhlczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gQnVyZ2VyXG5AbWl4aW4gYnVyZ2VyKCR3aWR0aDogMzBweCwgJGhlaWdodDogNXB4LCAkZ3V0dGVyOiAzcHgsICRjb2xvcjogIzAwMCwgJGJvcmRlci1yYWRpdXM6IDAsICR0cmFuc2l0aW9uLWR1cmF0aW9uOiAuM3MpIHtcbiAgICAkYnVyZ2VyLWhlaWdodDogJGhlaWdodCAhZ2xvYmFsO1xuICAgICRidXJnZXItZ3V0dGVyOiAkZ3V0dGVyICFnbG9iYWw7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLXRvcDogJGhlaWdodCArICRndXR0ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogJGhlaWdodCArICRndXR0ZXI7XG5cbiAgICBAaWYgJHNhc3MtYnVyZ2VyLWFkZC12ZW5kb3ItcHJlZml4ZXMge1xuICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgfVxuICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgJiwgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogJHdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgQGlmICRib3JkZXItcmFkaXVzICE9IDAge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHNhc3MtYnVyZ2VyLWFkZC12ZW5kb3ItcHJlZml4ZXMge1xuICAgICAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgICAgICAgICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgLW1vei10cmFuc2Zvcm07XG4gICAgICAgICAgICAtby10cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLCAtby10cmFuc2Zvcm07XG4gICAgICAgIH1cbiAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgdHJhbnNmb3JtO1xuXG4gICAgICAgIEBpZiAkc2Fzcy1idXJnZXItYWRkLXZlbmRvci1wcmVmaXhlcyB7XG4gICAgICAgICAgICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246ICR0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgICAgICAgICAgLW1vei10cmFuc2l0aW9uLWR1cmF0aW9uOiAkdHJhbnNpdGlvbi1kdXJhdGlvbjtcbiAgICAgICAgICAgIC1vLXRyYW5zaXRpb24tZHVyYXRpb246ICR0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246ICR0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgdG9wOiAtKCRoZWlnaHQgKyAkZ3V0dGVyKTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIHRvcDogJGhlaWdodCArICRndXR0ZXI7XG4gICAgfVxufVxuXG5cbi8vIFNlbGVjdCBwYXJ0cyBvZiB0aGUgYnVyZ2VyXG5AbWl4aW4gYnVyZ2VyLXBhcnRzIHtcbiAgICAmLCAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYnVyZ2VyLXRvcCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYnVyZ2VyLW1pZGRsZSB7XG4gICAgJiB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGJ1cmdlci1ib3R0b20ge1xuICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5cbi8vIEJ1cmdlciBhbmltYXRpb25zXG5AbWl4aW4gYnVyZ2VyLXRvLWNyb3NzKCRjb2xvcjogYXV0bykge1xuICAgICYge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gICAgQGlmICgkY29sb3IgIT0gYXV0bykge1xuICAgICAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBAaWYgJHNhc3MtYnVyZ2VyLWFkZC12ZW5kb3ItcHJlZml4ZXMge1xuICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJGJ1cmdlci1ndXR0ZXIgKyAkYnVyZ2VyLWhlaWdodCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRidXJnZXItZ3V0dGVyICsgJGJ1cmdlci1oZWlnaHQpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRidXJnZXItZ3V0dGVyICsgJGJ1cmdlci1oZWlnaHQpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJGJ1cmdlci1ndXR0ZXIgKyAkYnVyZ2VyLWhlaWdodCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgfVxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJGJ1cmdlci1ndXR0ZXIgKyAkYnVyZ2VyLWhlaWdodCkgcm90YXRlKDQ1ZGVnKTtcbiAgICB9XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBAaWYgJHNhc3MtYnVyZ2VyLWFkZC12ZW5kb3ItcHJlZml4ZXMge1xuICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSgkYnVyZ2VyLWd1dHRlciArICRidXJnZXItaGVpZ2h0KSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtKCRidXJnZXItZ3V0dGVyICsgJGJ1cmdlci1oZWlnaHQpKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSgkYnVyZ2VyLWd1dHRlciArICRidXJnZXItaGVpZ2h0KSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSgkYnVyZ2VyLWd1dHRlciArICRidXJnZXItaGVpZ2h0KSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgIH1cbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0oJGJ1cmdlci1ndXR0ZXIgKyAkYnVyZ2VyLWhlaWdodCkpIHJvdGF0ZSgtNDVkZWcpO1xuICAgIH1cbn0iLCJcbi8qIE1FTlUtMTAxXzFcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuJGFjLW1lbnUtMTAxLW1lbnUtd2lkdGg6IDE4MHB4O1xuJGFjLW1lbnUtMTAxLW1lbnUtZml4ZWQ6IHRydWU7XG4kYWMtbWVudS0xMDEtei1pbmRleDogMTExO1xuJGFjLW1lbnUtMTAxLWxpbmstaG92ZXItY29sb3I6ICRicmFuZC1wcmltYXJ5LWRhcmtlcjsgXG4kYWMtbWVudS0xMDEtYmFja2dyb3VuZDogJGJyYW5kLXdoaXRlO1xuJGFjLW1lbnUtMTAxLXBhZGRpbmctYm90dG9tLWZvci1tZWRpdW06IDExMHB4OyAvLyB0byBmaXggdGhlIGlzc3VlIHdpdGggb3ZlcmxheWluZyBmaXhlZCB0b3B0YXNrc1xuXG4vLyBtb2JpbGVcbiRhYy1tZW51LTEwMS1tb2JpbGUtZml4ZWQ6IHRydWU7IFxuJGFjLW1lbnUtMTAxLW1vYmlsZS1oZWlnaHQ6IDcwcHg7XG4kYWMtbWVudS0xMDEtbW9iaWxlLXBhZGRpbmc6IDEwcHg7XG4kYWMtbWVudS0xMDEtbW9iaWxlLXN2Zy1zaXplOiAyNXB4O1xuXG4vL3NvY2lhbHMgaWNvblxuJGFjLW1lbnUtMTAxLXNvY2lhbHMtaWNvbi1iYWNrZ3JvdW5kOiAkYnJhbmQtdGVydGlhcnktZGFya2VyO1xuJGFjLW1lbnUtMTAxLXNvY2lhbHMtaWNvbi1ob3Zlci1iYWNrZ3JvdW5kOiByZ2JhKCRicmFuZC10ZXJ0aWFyeS1kYXJrZXIsIC4xKTtcbiRhYy1tZW51LTEwMS1zb2NpYWxzLWljb24tY29sb3I6ICRicmFuZC13aGl0ZTtcbiRhYy1tZW51LTEwMS1zb2NpYWxzLWljb24taG92ZXItY29sb3I6ICAkYnJhbmQtdGVydGlhcnktZGFya2VyO1xuXG4vLyBtb2JpbGVcbiRhYy1tZW51LTEwMS1tb2JpbGUtZml4ZWQ6IHRydWU7ICBcbiRhYy1tZW51LTEwMS1tb2JpbGUtaGVpZ2h0OiA3MHB4O1xuJGFjLW1lbnUtMTAxLW1vYmlsZS1wYWRkaW5nOiAxMHB4O1xuJGFjLW1lbnUtMTAxLW1vYmlsZS1zdmctc2l6ZTogMjVweDtcbiRhYy1tZW51LTEwMS1tb2JpbGUtc3ZnLWNvbG9yOiAkYnJhbmQtdGVydGlhcnktZGFya2VyO1xuXG4vLyBvdmVybGF5XG4kYWMtbWVudS0xMDEtb3ZlcmxheS1jb250YWluZXItYmFja2dyb3VuZDogJGJyYW5kLWxpZ2h0ZXN0LWdyYXk7XG4kYWMtbWVudS0xMDEtb3ZlcmxheS1tZW51LXByaW1hcnktYm9yZGVyOiAkZGVmYXVsdC1ib3JkZXI7XG4kYWMtbWVudS0xMDEtb3ZlcmxheS1tZW51LXByaW1hcnktdGV4dC1hbGlnbjogY2VudGVyOyAvLyBsZWZ0IG9yIGNlbnRlclxuJGFjLW1lbnUtMTAxLW92ZXJsYXktbWVudS1zZWNvbmRhcnktYm9yZGVyOiBub25lOyAvLyAkZGVmYXVsdC1ib3JkZXI7XG4kYWMtbWVudS0xMDEtb3ZlcmxheS1tZW51LXNlY29uZGFyeS10ZXh0LWFsaWduOiBjZW50ZXI7IC8vIGxlZnQgb3IgY2VudGVyXG5cbi8vIG92ZXJsYXkgYmFja2dyb3VuZFxuJGFjLW1lbnUtMTAxLW92ZXJsYXktYmFja2Ryb3AtYmFja2dyb3VuZDogcmdiYSgkYnJhbmQtc2Vjb25kYXJ5LWRhcmtlciwgLjgpO1xuXG5AaW1wb3J0ICdfX21lbnVfMTAxX2dsb2JhbHMnO1xuXG5bZGF0YS1tLXR5cGU9XCJtZW51LTEwMVwiXSB7XG5cbn1cblxuIiwiXG4vKiBBQ19tZW51LTEwMVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5bZGF0YS1tLXR5cGU9XCJtZW51LTEwMVwiXSB7XG5cbiAgICB3aWR0aDogJGFjLW1lbnUtMTAxLW1lbnUtd2lkdGg7XG4gICAgei1pbmRleDogJGFjLW1lbnUtMTAxLXotaW5kZXg7XG4gICAgYmFja2dyb3VuZDogJGFjLW1lbnUtMTAxLWJhY2tncm91bmQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCBkb3duKSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBAaWYgJGFjLW1lbnUtMTAxLW1vYmlsZS1maXhlZCA9PSB0cnVlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgXG4gICAgICAgIEBpZiAkYWMtbWVudS0xMDEtbWVudS1maXhlZCA9PSB0cnVlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bC5tZW51LnZlcnRpY2FsLFxuICAgIHVsLm1lbnUuZHJvcGRvd24ge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICB9XG4gICAgIHVsLm1lbnUuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgICAgICAgcGFkZGluZzogLjRlbSAwO1xuICAgICAgICAgYm94LXNoYWRvdzogNXB4IDVweCAxMHB4IHJnYmEoJGJyYW5kLWJsYWNrLCAuMSk7XG4gICAgICAgICBhIHtcbiAgICAgICAgICAgICBwYWRkaW5nOiAuMWVtIDEuMmVtO1xuICAgICAgICAgfVxuICAgICB9XG4gICAgIHVsLmlzLWFjY29yZGlvbi1zdWJtZW51IHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgfVxuXG4gICAgIGEge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWMtbWVudS0xMDEtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgfVxuICAgICB9XG4gICAgXG4gICAgICYgKyAubWFpbi1jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCBkb3duKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJGFjLW1lbnUtMTAxLW1vYmlsZS1oZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGFjLW1lbnUtMTAxLW1lbnUtd2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuXG5cbi8vXG4vLyAgICAgIE1FTlUgQ09OVEFJTkVSXG4vL1xuXG4uYWNfbWVudS0xMDFfY29udGFpbmVyIHtcbiAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0IGRvd24pIHtcbiAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgIHBhZGRpbmc6ICRkZWZhdWx0LXBhZGRpbmcgLyAyO1xuICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICB6LWluZGV4OiAkYWMtbWVudS0xMDEtei1pbmRleDtcbiAgICAgICBiYWNrZ3JvdW5kOiAkYWMtbWVudS0xMDEtYmFja2dyb3VuZDtcbiAgIH1cbn1cblxuXG4vL1xuLy8gICAgIExPR09cbi8vXG5cbi5hY19tZW51LTEwMV9sb2dvX2NvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMDtcbn1cbmEuYWNfbWVudS0xMDFfbG9nb19saW5rIHtcbiAgICB3aWxsLWNoYW5nZTogY29udGVudHM7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgZWFzZTtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogLjg7XG4gICAgfVxufVxuLmFjX21lbnUtMTAxX2xvZ29faW1nIHtcblxufVxuXG4uYWNfbWVudS0xMDFfbG9nb19tb2JpbGVfY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbmEuYWNfbWVudS0xMDFfbG9nb19tb2JpbGVfbGluayB7XG5cbn1cbi5hY19tZW51LTEwMV9sb2dvX21vYmlsZV9pbWcge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0IGRvd24pIHtcbiAgICAgICAgbWF4LWhlaWdodDogJGFjLW1lbnUtMTAxLW1vYmlsZS1oZWlnaHQgLSAoICRhYy1tZW51LTEwMS1tb2JpbGUtcGFkZGluZyAqIDIpO1xuICAgICAgICB3aWR0aDogaW5pdGlhbDtcbiAgICB9XG59XG5cbi8vXG4vLyAgICAgTUFJTiBcbi8vXG4uYWNfbWVudS0xMDFfbWFpbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogJGFjLW1lbnUtMTAxLW1lbnUtd2lkdGg7XG4gICAgYm94LXNoYWRvdzogJGRlZmF1bHQtYm94LXNoYWRvdztcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgIHBhZGRpbmc6ICRkZWZhdWx0LXBhZGRpbmc7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGFjLW1lbnUtMTAxLXBhZGRpbmctYm90dG9tLWZvci1tZWRpdW07XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0IGRvd24pIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG4uYWNfbWVudS0xMDFfbWFpbl90b3Age1xuXG59XG4uYWNfbWVudS0xMDFfbWFpbl9ib3R0b20ge1xuXG59XG4uYWNfbWVudS0xMDFfbWFpbl9jb250ZW50IHtcblxufVxuXG4uYWNfbWVudS0xMDFfbWFpbl9tZW51IHtcbiAgICBtYXJnaW4tdG9wOiAyZW07XG59XG5cblxuLy9cbi8vICAgICBNT0JJTEUgQ09OVEVOVFxuLy9cblxuLmFjX21lbnUtMTAxX21vYmlsZV9jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZmxleC1ncm93OiAxO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG4uYWNfbWVudS0xMDFfbW9iaWxlX2NvbnRlbnRfZGl2aWRlciB7XG4gICAgd2lkdGg6IDFweDtcbiAgICBtYXJnaW46IDAgMWVtO1xuICAgIGJhY2tncm91bmQ6ICRicmFuZC1saWdodC1ncmF5O1xufVxuLy9cbi8vICAgICBNT0JJTEUgQlVUVE9OU1xuLy9cblxuLmFjX21lbnUtMTAxX21vYmlsZV9idG4gIHtcblx0aGVpZ2h0OiAkYWMtbWVudS0xMDEtbW9iaWxlLWhlaWdodCAtICgkYWMtbWVudS0xMDEtbW9iaWxlLXBhZGRpbmcgKiAyKTtcbiAgICB3aWR0aDogJGFjLW1lbnUtMTAxLW1vYmlsZS1zdmctc2l6ZSArICRhYy1tZW51LTEwMS1tb2JpbGUtc3ZnLXNpemU7XG4gICAgcGFkZGluZzogKCgkYWMtbWVudS0xMDEtbW9iaWxlLWhlaWdodCAtICgkYWMtbWVudS0xMDEtbW9iaWxlLXBhZGRpbmcgKiAyKSAtICRhYy1tZW51LTEwMS1tb2JpbGUtc3ZnLXNpemUpIC8gMikgJGFjLW1lbnUtMTAxLW1vYmlsZS1zdmctc2l6ZSAvIDI7XG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogJGFjLW1lbnUtMTAxLW1vYmlsZS1zdmctc2l6ZSAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6ICRhYy1tZW51LTEwMS1tb2JpbGUtc3ZnLXNpemUgIWltcG9ydGFudDtcbiAgICB9XG5cbn1cblxuXG4vL1xuLy8gICAgIEhBTUJVUkdFUiBJQ09OXG4vL1xuXG4uYWNfbWVudS0xMDFfbW9iaWxlX2J0bi1oYW1idXJnZXIge1xuICAgIGhlaWdodDogJGFjLW1lbnUtMTAxLW1vYmlsZS1oZWlnaHQgLSAoJGFjLW1lbnUtMTAxLW1vYmlsZS1wYWRkaW5nICogMik7XG4gICAgd2lkdGg6ICRhYy1tZW51LTEwMS1tb2JpbGUtc3ZnLXNpemUgKyAkYWMtbWVudS0xMDEtbW9iaWxlLXN2Zy1zaXplO1xuICAgIHBhZGRpbmc6IDEycHggJGFjLW1lbnUtMTAxLW1vYmlsZS1wYWRkaW5nOyAvLyBwYWRkaW5nIGlzIG1hbnVhbFxuXG5cdC5idXJnZXItaWNvbiB7XG5cdFx0QGluY2x1ZGUgYnVyZ2VyKDI1cHgsIDJweCwgNHB4LCAkYnJhbmQtYmxhY2spOyAvLyB3aWR0aCBpcyBtYW51YWxcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuYm9keS5zX2lzLW9wZW5fbWVudS1tb2JpbGUge1xuICAgIC5idXJnZXItaWNvbiB7XG5cdFx0QGluY2x1ZGUgYnVyZ2VyLXRvLWNyb3NzO1xuXHR9XG59XG5cblxuXG4vL1xuLy8gICAgIE9WRVJMQVkgXG4vL1xuXG4uYWNfbWVudS0xMDFfb3ZlcmxheV9jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAkYWMtbWVudS0xMDEtei1pbmRleCAtIDE7XG4gICAgd2lkdGg6IDQwMHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZDogJGFjLW1lbnUtMTAxLW92ZXJsYXktY29udGFpbmVyLWJhY2tncm91bmQ7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwMHB4KTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzIGVhc2U7XG4gICAgcGFkZGluZy10b3A6ICRhYy1tZW51LTEwMS1tb2JpbGUtaGVpZ2h0O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgIHdpZHRoOiA5MHZ3O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuICAgIFxufVxuLmFjX21lbnUtMTAxX292ZXJsYXlfc2Nyb2xsX2NvbnRhaW5lciB7XG4gICAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLmFjX21lbnUtMTAxX292ZXJsYXlfc2Nyb2xsX2NvbnRhaW5lcl9pbm5lciB7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG59XG4uYWNfbWVudS0xMDFfb3ZlcmxheV9tZW51X2NvbnRhaW5lciB7XG4gICAgcGFkZGluZzogJGRlZmF1bHQtcGFkZGluZztcbn1cbnVsLmFjX21lbnUtMTAxX292ZXJsYXlfbWVudV9wcmltYXJ5IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBAaWYgJGFjLW1lbnUtMTAxLW92ZXJsYXktbWVudS1wcmltYXJ5LWJvcmRlciAhPSBub25lIHtcbiAgICAgICAgYm9yZGVyLXRvcDogJGFjLW1lbnUtMTAxLW92ZXJsYXktbWVudS1wcmltYXJ5LWJvcmRlcjtcbiAgICB9XG4gICAgcGFkZGluZy1ib3R0b206IDJlbTtcblxuICAgIGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogJGFjLW1lbnUtMTAxLW92ZXJsYXktbWVudS1wcmltYXJ5LXRleHQtYWxpZ247XG4gICAgfVxuXG4gICAgPiBsaSB7XG4gICAgICAgIEBpZiAkYWMtbWVudS0xMDEtb3ZlcmxheS1tZW51LXByaW1hcnktYm9yZGVyICE9IG5vbmUge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJGFjLW1lbnUtMTAxLW92ZXJsYXktbWVudS1wcmltYXJ5LWJvcmRlcjtcbiAgICAgICAgfVxuICAgICAgICA+IGEge1xuICAgICAgICAgICAgcGFkZGluZzogJGRlZmF1bHQtcGFkZGluZyAvIDIgMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICB1bC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkZGVmYXVsdC1wYWRkaW5nIC8gNCAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG51bC5hY19tZW51LTEwMV9vdmVybGF5X21lbnVfc2Vjb25kYXJ5IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBAaWYgJGFjLW1lbnUtMTAxLW92ZXJsYXktbWVudS1zZWNvbmRhcnktYm9yZGVyICE9IG5vbmUge1xuICAgICAgICBib3JkZXItdG9wOiAkYWMtbWVudS0xMDEtb3ZlcmxheS1tZW51LXNlY29uZGFyeS1ib3JkZXI7XG4gICAgfVxuICAgIGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgQGlmICRhYy1tZW51LTEwMS1vdmVybGF5LW1lbnUtc2Vjb25kYXJ5LWJvcmRlciAhPSBub25lIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRhYy1tZW51LTEwMS1vdmVybGF5LW1lbnUtc2Vjb25kYXJ5LWJvcmRlcjtcbiAgICAgICAgfVxuICAgICAgICB0ZXh0LWFsaWduOiAkYWMtbWVudS0xMDEtb3ZlcmxheS1tZW51LXNlY29uZGFyeS10ZXh0LWFsaWduO1xuICAgICAgICBwYWRkaW5nOiAkZGVmYXVsdC1wYWRkaW5nIC8gNCAwO1xuICAgIH1cbn1cblxuXG5ib2R5LnNfaXMtb3Blbl9tZW51LW1vYmlsZSB7XG4gICAgLmFjX21lbnUtMTAxX292ZXJsYXlfY29udGFpbmVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIH1cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vL1xuLy8gICAgIE9WRVJMQVkgQkFDS0RST1Bcbi8vXG5cblxuLmFjX21lbnUtMTAxX292ZXJsYXlfYmFja2Ryb3Age1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogJGFjLW1lbnUtMTAxLW92ZXJsYXktYmFja2Ryb3AtYmFja2dyb3VuZDtcbiAgICB6LWluZGV4OiAkYWMtbWVudS0xMDEtei1pbmRleCAtIDI7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgZWFzZSAuM3MsIGhlaWdodCAwcyAuNnM7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cbmJvZHkuc19pcy1vcGVuX21lbnUtbW9iaWxlIHtcbiAgICAuYWNfbWVudS0xMDFfb3ZlcmxheV9iYWNrZHJvcCB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDBzLCBvcGFjaXR5IC4zcyBlYXNlO1xuICAgIH1cbn1cblxuXG5cbi8vXG4vLyAgICAgU0VBUkNIXG4vL1xuXG5cbi5hY19tZW51LTEwMV9zZWFyY2hfY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwOyBcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyZW0pO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0IGRvd24pIHtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHJpZ2h0OiAxZW07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC0yZW0pO1xuICAgIH1cbn1cbmJvZHkuSUUxMCB7XG4gICAgLmFjX21lbnUtMTAxX3NlYXJjaF9jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmFjX21lbnUtMTAxX3NlYXJjaF9pbnB1dCB7XG4gICAgbWFyZ2luOiAwO1xufVxuLmFjX21lbnUtMTAxX3NlYXJjaF9jbG9zZSB7XG4gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IC43ZW07XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAzZW07XG4gICAgaGVpZ2h0OiAzZW07XG4gICAgcGFkZGluZzogLjdlbTtcbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogMS42ZW07XG4gICAgICAgIGhlaWdodDogMS42ZW07XG4gICAgICAgIGZpbGw6ICRhYy1tZW51LTEwMS1tb2JpbGUtc3ZnLWNvbG9yO1xuICAgIH1cbn1cblxuYm9keS5zX2lzLW9wZW5fbWVudS1zZWFyY2gge1xuICAgICYuSUUxMCB7IFxuICAgICAgICAuYWNfbWVudS0xMDFfc2VhcmNoX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYWNfbWVudS0xMDFfc2VhcmNoX2NvbnRhaW5lciB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSB0cmFuc2xhdGVZKDApO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0tcG9ydHJhaXQgZG93bikge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApIHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLy9cbi8vICAgICBTT0NJQUxTXG4vL1xuXG5cbi5hY19zb2NpYWxzX2xpbmtfaWNvbiB7XG4gICAgYmFja2dyb3VuZDogJGFjLW1lbnUtMTAxLXNvY2lhbHMtaWNvbi1iYWNrZ3JvdW5kO1xuICAgIHN2ZyB7XG4gICAgICAgIGZpbGw6ICAkYWMtbWVudS0xMDEtc29jaWFscy1pY29uLWNvbG9yO1xuICAgIH1cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGFjLW1lbnUtMTAxLXNvY2lhbHMtaWNvbi1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkYWMtbWVudS0xMDEtc29jaWFscy1pY29uLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIlxuLyogQlJBTkRTIC0gNFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBpdGVtc1xuJGFjLWJyYW5kcy1pdGVtcy1zbGlkZXI6IGZhbHNlO1xuJGFjLWJyYW5kcy1pdGVtcy1zbGlkZXItZm91Yy1oZWlnaHQ6IDEwMHB4O1xuJGFjLWJyYW5kcy1pdGVtcy1oYXZlLXBhZGRpbmc6IHRydWU7XG4kYWMtYnJhbmRzLWl0ZW1zLWhhdmUtYm9yZGVyLWRpdmlkZXJzOiBmYWxzZTtcbiRhYy1icmFuZHMtaXRlbXMtb24tc21hbGwtdHdvLWl0ZW1zLWEtcm93OiB0cnVlOyAvLyBpZiB0cnVlIHR3byBpdGVtcyBwZXIgcm93IG9uIHNtYWxsLCBlbHNlIG9uZSBpdGVtXG5cbi8vIGl0ZW1cbiRhYy1icmFuZHMtaXRlbS1tYXJnaW4tYm90dG9tOiAxLjRlbTsgLy8gMS40ZW1cbiRhYy1icmFuZHMtaXRlbS1jb250YWluZXItcGFkZGluZzogJGRlZmF1bHQtcGFkZGluZyAwO1xuJGFjLWJyYW5kcy1pdGVtLWNvbnRlbnQtcGFkZGluZzogJGRlZmF1bHQtcGFkZGluZzsgXG4kYWMtYnJhbmRzLWl0ZW0tY29udGVudC1iYWNrZ3JvdW5kOiByZ2JhKCRkZWZhdWx0LWJhY2tncm91bmQtZGFyaywgMC4wMik7XG4kYWMtYnJhbmRzLWl0ZW0tYm9yZGVyOiAkZGVmYXVsdC1ib3JkZXI7IC8vIGRlZmluZXMgdGhlIGFwcGVhcmFuY2UsIG5vdCB0aGUgZGlzcGxheVxuJGFjLWJyYW5kcy1pdGVtLXNoYWRvdzogdHJ1ZTsgXG5cbi8vIGRlc2NyaXB0aW9uXG4kYWMtYnJhbmRzLWl0ZW1zLWRlc2NyaXB0aW9uLWVuYWJsZTogZmFsc2U7XG4kYWMtYnJhbmRzLWl0ZW1zLWRlc2NyaXB0aW9uLWNvbG9yOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3ItZGFyaywuNik7XG4kYWMtYnJhbmRzLWl0ZW1zLWRlc2NyaXB0aW9uLWhvdmVyLWNvbG9yOiAkZGVmYXVsdC10ZXh0LWNvbG9yLWRhcms7XG5cbi8vIGxvZ29cbiRhYy1icmFuZHMtaXRlbS1sb2dvLW1hcmdpbi1ib3R0b206IC42ZW07IC8vIDEuNGVtXG4kYWMtYnJhbmRzLWl0ZW0tbG9nby1oZWlnaHQ6IDEwMHB4OyBcbiRhYy1icmFuZHMtaXRlbS1sb2dvLW1heC13aWR0aDogMjAwcHg7XG4kYWMtYnJhbmRzLWl0ZW0tbG9nby1pbml0aWFsLW9wYWNpdHk6IDE7XG4kYWMtYnJhbmRzLWl0ZW0tbG9nby1ob3Zlci1vcGFjaXR5OiAuNjtcblxuXG5AaW1wb3J0ICdfX2JyYW5kc19nbG9iYWxzJztcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbkBpZiAkYWMtYnJhbmRzLWl0ZW1zLXNsaWRlciA9PSB0cnVlIHtcbiAgICAuYWNfYnJhbmRzX2l0ZW0ge1xuICAgICAgICBtYXJnaW46ICRkZWZhdWx0LXBhZGRpbmcgMDtcbiAgICB9XG59XG4gICAgIiwiXG4vKiBBQ19TX0JSQU5EUyAtIEdMT0JBTFNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXG5cbi8vXG4vLyAgICAgIFNFQ1RJT04gQlJBTkRTXG4vL1xuXG5cbltkYXRhLXMtdHlwZT1cImJyYW5kc1wiXSB7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogJGRlZmF1bHQtcGFkZGluZyAwO1xuICAgIFxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAkZGVmYXVsdC1wYWRkaW5nIC8gMiAwO1xuICAgIH0gICBcbn1cblxuXG4vL1xuLy8gICAgICBDT05UQUlORVJcbi8vXG5cbi5hY19icmFuZHNfY29udGFpbmVye1xuICAgIC8vIG1heC13aWR0aDogJG1heC1jb250ZW50LTEyMDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgbWFyZ2luOiAyZW0gYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIEBpZiAkYWMtYnJhbmRzLWl0ZW1zLWhhdmUtYm9yZGVyLWRpdmlkZXJzID09IGZhbHNlIGFuZCAkYWMtYnJhbmRzLWl0ZW1zLWhhdmUtcGFkZGluZyA9PSB0cnVlIHtcbiAgICAgICAgcGFkZGluZzogMCAkZGVmYXVsdC1wYWRkaW5nIC8gMjtcbiAgICB9XG59XG5cblxuLy9cbi8vICAgICAgSVRFTVxuLy9cblxuLmFjX2JyYW5kc19pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbi1ib3R0b206ICRhYy1icmFuZHMtaXRlbS1tYXJnaW4tYm90dG9tO1xuXG4gICAgQGlmICRhYy1icmFuZHMtaXRlbXMtb24tc21hbGwtdHdvLWl0ZW1zLWEtcm93ID09IHRydWUge1xuICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgxLzIpO1xuICAgICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoMS8yKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgJGFjLWJyYW5kcy1pdGVtcy1oYXZlLXBhZGRpbmcgPT0gdHJ1ZSB7XG4gICAgICAgIHBhZGRpbmc6IDAgJGRlZmF1bHQtcGFkZGluZztcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICBAaWYgJGFjLWJyYW5kcy1pdGVtcy1oYXZlLWJvcmRlci1kaXZpZGVycyA9PSB0cnVlIHtcbiAgICAgICAgQGlmICRhYy1icmFuZHMtaXRlbXMtaGF2ZS1wYWRkaW5nID09IHRydWUge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkZGVmYXVsdC1wYWRkaW5nO1xuICAgICAgICB9XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkYWMtYnJhbmRzLWl0ZW0tYm9yZGVyO1xuICAgICAgICBcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGlmICRhYy1icmFuZHMtaXRlbXMtaGF2ZS1wYWRkaW5nID09IHRydWUge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkZGVmYXVsdC1wYWRkaW5nIC8gMjtcbiAgICAgICAgfVxuICAgIH0gICBcblxuICAgICYudl9zbWFsbGVyLWxvZ28ge1xuICAgICAgICAuYWNfYnJhbmRzX2l0ZW1fbG9nbyB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKC44KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLnZfbGFyZ2VyLWxvZ28ge1xuICAgICAgICAuYWNfYnJhbmRzX2l0ZW1fbG9nbyB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgLmFjX2JyYW5kc19pdGVtX2xvZ28ge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6ICRhYy1icmFuZHMtaXRlbS1sb2dvLWhvdmVyLW9wYWNpdHk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuYWNfYnJhbmRzX2l0ZW1fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWMtYnJhbmRzLWl0ZW1zLWRlc2NyaXB0aW9uLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBcblxuICAgIEBpZiAkYWMtYnJhbmRzLWl0ZW1zLWhhdmUtYm9yZGVyLWRpdmlkZXJzID09IHRydWUge1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbGFzdCgxKSB7XG4gICAgICAgICAgICAgICAgLmFjX2JyYW5kc19pdGVtX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgIH1cblxufVxuXG4uYWNfYnJhbmRzX2l0ZW1fY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6ICRhYy1icmFuZHMtaXRlbS1jb250ZW50LWJhY2tncm91bmQ7XG4gICAgcGFkZGluZzogJGFjLWJyYW5kcy1pdGVtLWNvbnRhaW5lci1wYWRkaW5nO1xuXG4gICAgQGlmICRhYy1icmFuZHMtaXRlbXMtaGF2ZS1ib3JkZXItZGl2aWRlcnMgPT0gdHJ1ZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRhYy1icmFuZHMtaXRlbS1ib3JkZXI7XG4gICAgfVxuXG4gICAgQGlmICRhYy1icmFuZHMtaXRlbS1zaGFkb3cgPT0gdHJ1ZSB7XG4gICAgICAgIGJveC1zaGFkb3c6ICRkZWZhdWx0LWJveC1zaGFkb3c7XG4gICAgfVxufVxuXG5cbi8vXG4vLyAgICAgIEJPUkRFUiBSRVNQT05TSVZFTkVTU1xuLy9cblxuXG5bZGF0YS1zLXR5cGU9XCJicmFuZHNcIl0ge1xuICAgIEBpZiAkYWMtYnJhbmRzLWl0ZW1zLWhhdmUtYm9yZGVyLWRpdmlkZXJzID09IHRydWUge1xuICAgICAgICBcbiAgICAgICAgQGlmICRhYy1icmFuZHMtaXRlbXMtb24tc21hbGwtdHdvLWl0ZW1zLWEtcm93ID09IGZhbHNlIHtcblxuICAgICAgICAgICAgLy8gYm9yZGVyLWxlZnRcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1yZXNwb25zaXZlbmVzcygnUzEnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1yZXNwb25zaXZlbmVzcygnUzEtTVAyJyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItcmVzcG9uc2l2ZW5lc3MoJ1MxLU1QMi1NMycpO1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJlc3BvbnNpdmVuZXNzKCdTMS1NUDItTTMtTDQnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1yZXNwb25zaXZlbmVzcygnUzEtTVAyLUw1Jyk7XG5cbiAgICAgICAgICAgIC8vIGJvcmRlci1ib3R0b21cbiAgICAgICAgICAgIEBpbmNsdWRlIGJvdHRvbS1pdGVtcy1uby1ib3JkZXIoJ1MxLU1QMicpO1xuICAgICAgICAgICAgQGluY2x1ZGUgYm90dG9tLWl0ZW1zLW5vLWJvcmRlcignUzEtTVAyLUwzJyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3R0b20taXRlbXMtbm8tYm9yZGVyKCdTMS1NUDItTDQnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvdHRvbS1pdGVtcy1uby1ib3JkZXIoJ1MxLU1QMi1MNScpO1xuXG4gICAgICAgIH0gQGVsc2Uge1xuXG4gICAgICAgICAgICAvLyBib3JkZXItbGVmdFxuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJlc3BvbnNpdmVuZXNzKCdTMicpO1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJlc3BvbnNpdmVuZXNzKCdTMi1NMycpO1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJlc3BvbnNpdmVuZXNzKCdTMi1MNCcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJlc3BvbnNpdmVuZXNzKCdTMi1MNScpO1xuXG4gICAgICAgICAgICAvLyBib3JkZXItYm90dG9tXG4gICAgICAgICAgICBAaW5jbHVkZSBib3R0b20taXRlbXMtbm8tYm9yZGVyKCdTMicpO1xuICAgICAgICAgICAgQGluY2x1ZGUgYm90dG9tLWl0ZW1zLW5vLWJvcmRlcignUzItTTMnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvdHRvbS1pdGVtcy1uby1ib3JkZXIoJ1MyLUw0Jyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3R0b20taXRlbXMtbm8tYm9yZGVyKCdTMi1MNScpO1xuXG4gICAgICAgIH1cblxuICAgIH1cbn1cblxuXG4vL1xuLy8gICAgICBERVNDUklQVElPTlxuLy9cblxuLmFjX2JyYW5kc19pdGVtX2Rlc2NyaXB0aW9uIHtcbiAgICBcbiAgICBAaWYgJGFjLWJyYW5kcy1pdGVtcy1kZXNjcmlwdGlvbi1lbmFibGUgPT0gdHJ1ZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogOTUlO1xuICAgIGNvbG9yOiAkYWMtYnJhbmRzLWl0ZW1zLWRlc2NyaXB0aW9uLWNvbG9yO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuXG5cbi8vXG4vLyAgICAgIExPR09cbi8vXG5cbi5hY19icmFuZHNfaXRlbV9sb2dvX2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBAaWYgJGFjLWJyYW5kcy1pdGVtcy1vbi1zbWFsbC10d28taXRlbXMtYS1yb3cgPT0gZmFsc2Uge1xuICAgICAgICBwYWRkaW5nOiAwIDEwdnc7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0KSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxufVxuLmFjX2JyYW5kc19pdGVtX2xvZ28ge1xuICAgIGZpbHRlcjogYnJpZ2h0bmVzcyg1MCUpIGh1ZS1yb3RhdGUoMzBkZWcpO1xuICAgIHdpZHRoOiA2MCU7XG4gICAgaGVpZ2h0OiAkYWMtYnJhbmRzLWl0ZW0tbG9nby1oZWlnaHQ7XG4gICAgbWF4LXdpZHRoOiAkYWMtYnJhbmRzLWl0ZW0tbG9nby1tYXgtd2lkdGg7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgb3BhY2l0eTogJGFjLWJyYW5kcy1pdGVtLWxvZ28taW5pdGlhbC1vcGFjaXR5O1xufVxuXG5cblxuLy9cbi8vICAgICAgU0xJREVSXG4vL1xuXG5cbkBpZiAkYWMtYnJhbmRzLWl0ZW1zLXNsaWRlciA9PSB0cnVlIHtcbiAgICAuYWNfYnJhbmRzX2NvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB6LWluZGV4OiBpbmhlcml0OyAvLyBzbGljayBzbGlkZXIgd2lsbCBoYW5kbGUgei1pbmRleFxuXG4gICAgICAgIC8vc2xpY2sgZnVvYyBmaXhcbiAgICAgICAgbWF4LWhlaWdodDogJGFjLWJyYW5kcy1pdGVtcy1zbGlkZXItZm91Yy1oZWlnaHQ7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJGRlZmF1bHQtdHJhbnNpdGlvbi1zcGVlZDtcblxuICAgICAgICAvLyBkcm9wIGZvdWMgaWYgc2xpY2sgaXMgaW5pdGlhbGl6ZWRcbiAgICAgICAgJi5zbGljay1pbml0aWFsaXplZCAge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIFtkYXRhLXMtYW1vdW50LWl0ZW1dIHtcbiAgICAvLyBiZWNhdXNlIGFsbCBpdGVtcyBhcmUgaW4gb25lIGxpbmUsIG1hcmdpbiBvbiB0aGUgYm90dG9tIG1ha2Ugbm8gc2Vuc2VcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBbZGF0YS1ib3JkZXItYm90dG9tXSB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8vIG92ZXJydWxlIGJvcmRlciBsZWZ0IGJlaGF2aW91clxuICAgIEBpZiAkYWMtYnJhbmRzLWl0ZW1zLWhhdmUtYm9yZGVyLWRpdmlkZXJzID09IHRydWUge1xuICAgICAgICAuc2xpY2stc2xpZGUge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLnNsaWNrLWFjdGl2ZSB+IC5zbGljay1hY3RpdmV7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJGFjLWJyYW5kcy1pdGVtLWJvcmRlciAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gaWYgYW1vdW50IG9uIHNtYWxsID09IDEsIHdlIGNhbiBoaWRlIHRoZSBib3JkZXIgYWxsIHRvZ2V0aGVyLiBUaGlzIGFsc28gcHJldmVudHMgY29udGVudCBncm93IGZsaWNrZXJzXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgIFtkYXRhLXMtYW1vdW50LWl0ZW1dIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCJcbi8qIENUQVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbltkYXRhLXMtdHlwZT1cImN0YVwiXSB7XG4gICAgXG4gICAgLy9jb2x1bW5zXG4gICAgJGFjLWN0YS1tYXgtd2lkdGg6ICRtYXgtY29udGVudC0xMDAwO1xuICAgICRhYy1jdGEtY29sdW1uLWZpcnN0LXdpZHRoOiAxKi41OyAvLyB0YWtlcyBhbnkgcGVyY2VudGFnZSBjYWxjdWxhdGlvblxuICAgICRhYy1jdGEtY29sdW1uLWZpcnN0LXRleHQtYWxpZ246ICdyaWdodCc7IC8vIGxlZnQsIHJpZ2h0IG9yIGNlbnRlci4gXG4gICAgJGFjLWN0YS1jb2x1bW4tc2Vjb25kLXRleHQtYWxpZ246ICdsZWZ0JzsgLy8gbGVmdCwgcmlnaHQgb3IgY2VudGVyLiBcbiAgICAkYWMtY3RhLXJldmVyc2VkLWNvbnRlbnQ6IGZhbHNlOyAvLyBmbGlwIGNvbHVtbnNcblxuICAgIC8vIGNvbHVtbiBnYXBcbiAgICAkYWMtY3RhLWNvbHVtbi1nYXAtaGFzLWRpdmlkZXI6IGZhbHNlO1xuICAgICRhYy1jdGEtY29sdW1uLWdhcDogJGRlZmF1bHQtcGFkZGluZztcbiAgICAkYWMtY3RhLWNvbHVtbi1nYXAtZGl2aWRlcjogc29saWQgMXB4IHJnYmEoJGRlZmF1bHQtdGV4dC1jb2xvci1saWdodCwgLjIpO1xuXG4gICAgJGFjLWN0YS1lbGVtZW50cy1uby1tYXJnaW46IGZhbHNlOyAvLyBwcmV2ZW50cyBuYXN0eSBhbGlnbm1lbnQgZHVlIHRvIG1hcmdpbnMsIG5vdCBhcHBsaWNhYmxlIGZvciBjb2xsYXBzZWQgdmlldy5cblxuICAgIC8vaW1nXG4gICAgJGFjLWltZy1ib3JkZXItYm90dG9tOiB0cnVlO1xuICAgICRhYy1pbWctYm9yZGVyOiBzb2xpZCAxcHggJGRlZmF1bHQtYmFja2dyb3VuZC1saWdodDtcblxuICAgIEBpbXBvcnQgJy4uL2FjX3NfX2N0YS1nbG9iYWxzL19fY3RhX2dsb2JhbHMnO1xuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gICAgXG4gICAgLy9sb2NhbCB2YXJpYWJsZXNcbiAgICAkY2VudGVyZWQtaXRlbXMtZm9yLW1lZGl1bS11cDogdHJ1ZTtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbiAgICBoMiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuXG4gICAgLmFjX2N0YV9jb250YWluZXIge1xuICAgICAgICBAaWYgJGNlbnRlcmVkLWl0ZW1zLWZvci1tZWRpdW0tdXAgPT0gZmFsc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHsgXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBcblxuICAgIC5hY19jdGFfY29sdW1uIHtcbiAgICAgICAgcGFkZGluZzogJGRlZmF1bHQtcGFkZGluZyAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICBAaWYgJGFjLWN0YS1jb2x1bW4tZ2FwLWhhcy1kaXZpZGVyID09IHRydWUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkYWMtY3RhLWNvbHVtbi1nYXA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJGFjLWN0YS1jb2x1bW4tZ2FwLWRpdmlkZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGFjLWN0YS1jb2x1bW4tZ2FwICogMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkgeyBcbiAgICAgICAgICAgIEBpZiAkY2VudGVyZWQtaXRlbXMtZm9yLW1lZGl1bS11cCA9PSBmYWxzZSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgkYWMtY3RhLWNvbHVtbi1maXJzdC13aWR0aCk7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSgkYWMtY3RhLWNvbHVtbi1maXJzdC13aWR0aCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGFjLWN0YS1jb2x1bW4tZ2FwO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogaW5oZXJpdDtcblxuICAgICAgICAgICAgICAgICAgICBAaWYgJGFjLWN0YS1jb2x1bW4tZ2FwLWhhcy1kaXZpZGVyID09IHRydWUge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgJGFjLWN0YS1yZXZlcnNlZC1jb250ZW50ID09IGZhbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRhYy1jdGEtY29sdW1uLWdhcC1kaXZpZGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGFjLWN0YS1jb2x1bW4tZ2FwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICRhYy1jdGEtY29sdW1uLWdhcC1kaXZpZGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkYWMtY3RhLWNvbHVtbi1nYXA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRhYy1jdGEtY29sdW1uLWdhcDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAkYWMtY3RhLWNvbHVtbi1maXJzdC10ZXh0LWFsaWduID09ICdjZW50ZXInIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAkYWMtY3RhLWNvbHVtbi1maXJzdC10ZXh0LWFsaWduID09ICdyaWdodCcge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAtIHBlcmNlbnRhZ2UoJGFjLWN0YS1jb2x1bW4tZmlyc3Qtd2lkdGgpO1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCUgLSBwZXJjZW50YWdlKCRhYy1jdGEtY29sdW1uLWZpcnN0LXdpZHRoKTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAkYWMtY3RhLWNvbHVtbi1zZWNvbmQtdGV4dC1hbGlnbiA9PSAnY2VudGVyJyB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgJGFjLWN0YS1jb2x1bW4tc2Vjb25kLXRleHQtYWxpZ24gPT0gJ3JpZ2h0JyB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gICBcblxufSAvLyBlbmQgb2Ygc2NvcGUiLCJcbi8qIEFDX1NfQ1RBIC0gR0xPQkFMU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmFjX2N0YV9jb250YWluZXIge1xuICAgIG1heC13aWR0aDogJGFjLWN0YS1tYXgtd2lkdGg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgcGFkZGluZzogMCAkZGVmYXVsdC1wYWRkaW5nO1xuXG4gICAgQGlmICRhYy1jdGEtcmV2ZXJzZWQtY29udGVudCA9PSB0cnVlIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIH1cbn0gICBcblxuLmFjX2N0YV9jb2x1bW4ge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHsgXG4gICAgICAgIEBpZiAkYWMtY3RhLWVsZW1lbnRzLW5vLW1hcmdpbiA9PSB0cnVlIHtcbiAgICAgICAgICAgIGgyLGgzLGg0LHAsLmJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGRlZmF1bHQtcGFkZGluZyAvIDI7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuXG4gICAgICAgIEBpZiAkYWMtaW1nLWJvcmRlci1ib3R0b20gPT0gdHJ1ZSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkYWMtaW1nLWJvcmRlcjsgLy8gZmFsbGJhY2tcbiAgICAgICAgfVxuXG4gICAgICAgIG1heC13aWR0aDogMjIwcHg7IC8vIHdhcyAxMDAlO1xuICAgIH1cbn0gICBcblxuXG4iLCJcbi8qIENUQSBURVhULUJVVFRPTlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbltkYXRhLXMtdHlwZT1cImN0YS10ZXh0LWJ1dHRvblwiXSB7XG4gICAgXG4gICAgLy9jb2x1bW5zXG4gICAgJGFjLWN0YS1tYXgtd2lkdGg6ICRtYXgtY29udGVudC0xMDAwO1xuICAgICRhYy1jdGEtY29sdW1uLWZpcnN0LXdpZHRoOiAxKi41OyAvLyB0YWtlcyBhbnkgcGVyY2VudGFnZSBjYWxjdWxhdGlvblxuICAgICRhYy1jdGEtY29sdW1uLWZpcnN0LXRleHQtYWxpZ246ICdyaWdodCc7IC8vIGxlZnQsIHJpZ2h0IG9yIGNlbnRlci4gQXBwbGllcyB0byB2ZXJzaW9uIDFcbiAgICAkYWMtY3RhLWNvbHVtbi1zZWNvbmQtdGV4dC1hbGlnbjogJ2xlZnQnOyAvLyBsZWZ0LCByaWdodCBvciBjZW50ZXIuIEFwcGxpZXMgdG8gdmVyc2lvbiAxXG4gICAgJGFjLWN0YS1yZXZlcnNlZC1jb250ZW50OiBmYWxzZTsgLy8gZmxpcCBjb2x1bW5zXG5cbiAgICAvLyBjb2x1bW4gZ2FwXG4gICAgJGFjLWN0YS1jb2x1bW4tZ2FwLWhhcy1kaXZpZGVyOiB0cnVlO1xuICAgICRhYy1jdGEtY29sdW1uLWdhcDogJGRlZmF1bHQtcGFkZGluZztcbiAgICAkYWMtY3RhLWNvbHVtbi1nYXAtZGl2aWRlcjogc29saWQgMXB4IHJnYmEoJGRlZmF1bHQtYmFja2dyb3VuZC1saWdodCwgLjIpO1xuXG4gICAgJGFjLWN0YS1lbGVtZW50cy1uby1tYXJnaW46IGZhbHNlOyAvLyBwcmV2ZW50cyBuYXN0eSBhbGlnbm1lbnQgZHVlIHRvIG1hcmdpbnMsIG5vdCBhcHBsaWNhYmxlIGZvciBjb2xsYXBzZWQgdmlldy5cblxuICAgIC8vaW1nXG4gICAgJGFjLWltZy1ib3JkZXItYm90dG9tOiB0cnVlO1xuICAgICRhYy1pbWctYm9yZGVyOiBzb2xpZCAxcHggJGRlZmF1bHQtYmFja2dyb3VuZC1saWdodDtcblxuXG4gICAgQGltcG9ydCAnLi4vYWNfc19fY3RhLWdsb2JhbHMvX19jdGFfZ2xvYmFscyc7XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiAgICBcbiAgICAvL2xvY2FsIHZhcmlhYmxlc1xuICAgICRjZW50ZXJlZC1pdGVtcy1mb3ItbWVkaXVtLXVwOiBmYWxzZTtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbiAgICBoMiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmFjX2N0YV9jb250YWluZXIge1xuICAgICAgICBAaWYgJGNlbnRlcmVkLWl0ZW1zLWZvci1tZWRpdW0tdXAgPT0gZmFsc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHsgXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBcblxuICAgIC5hY19jdGFfY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgICAgQGlmICRhYy1jdGEtY29sdW1uLWdhcC1oYXMtZGl2aWRlciA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGFjLWN0YS1jb2x1bW4tZ2FwO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRhYy1jdGEtY29sdW1uLWdhcC1kaXZpZGVyO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRhYy1jdGEtY29sdW1uLWdhcCAqIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHsgXG4gICAgICAgICAgICBAaWYgJGNlbnRlcmVkLWl0ZW1zLWZvci1tZWRpdW0tdXAgPT0gZmFsc2Uge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoJGFjLWN0YS1jb2x1bW4tZmlyc3Qtd2lkdGgpO1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoJGFjLWN0YS1jb2x1bW4tZmlyc3Qtd2lkdGgpO1xuXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRhYy1jdGEtY29sdW1uLWdhcDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IGluaGVyaXQ7XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICRhYy1jdGEtY29sdW1uLWdhcC1oYXMtZGl2aWRlciA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICRhYy1jdGEtcmV2ZXJzZWQtY29udGVudCA9PSBmYWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkYWMtY3RhLWNvbHVtbi1nYXAtZGl2aWRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRhYy1jdGEtY29sdW1uLWdhcDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkYWMtY3RhLWNvbHVtbi1nYXAtZGl2aWRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogJGFjLWN0YS1jb2x1bW4tZ2FwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkYWMtY3RhLWNvbHVtbi1nYXA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBAaWYgJGFjLWN0YS1jb2x1bW4tZmlyc3QtdGV4dC1hbGlnbiA9PSAnY2VudGVyJyB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgJGFjLWN0YS1jb2x1bW4tZmlyc3QtdGV4dC1hbGlnbiA9PSAncmlnaHQnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgLSBwZXJjZW50YWdlKCRhYy1jdGEtY29sdW1uLWZpcnN0LXdpZHRoKTtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlIC0gcGVyY2VudGFnZSgkYWMtY3RhLWNvbHVtbi1maXJzdC13aWR0aCk7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBAaWYgJGFjLWN0YS1jb2x1bW4tc2Vjb25kLXRleHQtYWxpZ24gPT0gJ2NlbnRlcicge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICRhYy1jdGEtY29sdW1uLXNlY29uZC10ZXh0LWFsaWduID09ICdyaWdodCcge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9ICAgXG5cbiAgICAuYWNfc29jaWFscyB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgfVxuXG5cbn0gLy8gZW5kIG9mIHNjb3BlIiwiXG4vKiBDVEEgVEVYVC1JTUFHRVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbltkYXRhLXMtdHlwZT1cImN0YS10ZXh0LWltYWdlXCJdIHtcbiAgICBcbiAgICAvL2NvbHVtbnNcbiAgICAkYWMtY3RhLW1heC13aWR0aDogJG1heC1jb250ZW50LTEwMDA7XG4gICAgJGFjLWN0YS1jb2x1bW4tZmlyc3Qtd2lkdGg6IDEqLjY7IC8vIHRha2VzIGFueSBwZXJjZW50YWdlIGNhbGN1bGF0aW9uXG4gICAgJGFjLWN0YS1jb2x1bW4tZmlyc3QtdGV4dC1hbGlnbjogJ3JpZ2h0JzsgLy8gbGVmdCwgcmlnaHQgb3IgY2VudGVyLiBcbiAgICAkYWMtY3RhLWNvbHVtbi1zZWNvbmQtdGV4dC1hbGlnbjogJ2xlZnQnOyAvLyBsZWZ0LCByaWdodCBvciBjZW50ZXIuICBcbiAgICAkYWMtY3RhLXJldmVyc2VkLWNvbnRlbnQ6IGZhbHNlOyAvLyBmbGlwIGNvbHVtbnNcblxuICAgIC8vIGNvbHVtbiBnYXBcbiAgICAkYWMtY3RhLWNvbHVtbi1nYXAtaGFzLWRpdmlkZXI6IGZhbHNlO1xuICAgICRhYy1jdGEtY29sdW1uLWdhcDogJGRlZmF1bHQtcGFkZGluZztcbiAgICAkYWMtY3RhLWNvbHVtbi1nYXAtZGl2aWRlcjogc29saWQgMXB4IHJnYmEoJGRlZmF1bHQtYmFja2dyb3VuZC1saWdodCwgLjIpO1xuXG4gICAgJGFjLWN0YS1lbGVtZW50cy1uby1tYXJnaW46IGZhbHNlOyAvLyBwcmV2ZW50cyBuYXN0eSBhbGlnbm1lbnQgZHVlIHRvIG1hcmdpbnMsIG5vdCBhcHBsaWNhYmxlIGZvciBjb2xsYXBzZWQgdmlldy5cblxuICAgIC8vaW1nXG4gICAgJGFjLWltZy1ib3JkZXItYm90dG9tOiB0cnVlO1xuICAgICRhYy1pbWctYm9yZGVyOiBzb2xpZCAxcHggcmdiYSgkZGVmYXVsdC1iYWNrZ3JvdW5kLWxpZ2h0LCAuMyk7XG5cbiAgICBAaW1wb3J0ICcuLi9hY19zX19jdGEtZ2xvYmFscy9fX2N0YV9nbG9iYWxzJztcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbiAgICAuYWNfY3RhX2NvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7IFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9IFxuXG4gICAgLmFjX2N0YV9jb2x1bW4ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICBAaWYgJGFjLWN0YS1jb2x1bW4tZ2FwLWhhcy1kaXZpZGVyID09IHRydWUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkYWMtY3RhLWNvbHVtbi1nYXA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJGFjLWN0YS1jb2x1bW4tZ2FwLWRpdmlkZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGFjLWN0YS1jb2x1bW4tZ2FwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7IFxuICAgICAgICAgICAgXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoJGFjLWN0YS1jb2x1bW4tZmlyc3Qtd2lkdGgpO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSgkYWMtY3RhLWNvbHVtbi1maXJzdC13aWR0aCk7XG5cbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkYWMtY3RhLWNvbHVtbi1nYXA7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IGluaGVyaXQ7XG5cbiAgICAgICAgICAgICAgICBAaWYgJGFjLWN0YS1jb2x1bW4tZ2FwLWhhcy1kaXZpZGVyID09IHRydWUge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICBAaWYgJGFjLWN0YS1yZXZlcnNlZC1jb250ZW50ID09IGZhbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogJGFjLWN0YS1jb2x1bW4tZ2FwLWRpdmlkZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRhYy1jdGEtY29sdW1uLWdhcDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogJGFjLWN0YS1jb2x1bW4tZ2FwLWRpdmlkZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogJGFjLWN0YS1jb2x1bW4tZ2FwO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGFjLWN0YS1jb2x1bW4tZ2FwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICBAaWYgJGFjLWN0YS1jb2x1bW4tZmlyc3QtdGV4dC1hbGlnbiA9PSAnY2VudGVyJyB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICRhYy1jdGEtY29sdW1uLWZpcnN0LXRleHQtYWxpZ24gPT0gJ3JpZ2h0JyB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAtIHBlcmNlbnRhZ2UoJGFjLWN0YS1jb2x1bW4tZmlyc3Qtd2lkdGgpO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJSAtIHBlcmNlbnRhZ2UoJGFjLWN0YS1jb2x1bW4tZmlyc3Qtd2lkdGgpO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgQGlmICRhYy1jdGEtY29sdW1uLXNlY29uZC10ZXh0LWFsaWduID09ICdjZW50ZXInIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgJGFjLWN0YS1jb2x1bW4tc2Vjb25kLXRleHQtYWxpZ24gPT0gJ3JpZ2h0JyB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gICBcblxuICAgIC5hY19zb2NpYWxzIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICB9XG5cblxufSAvLyBlbmQgb2Ygc2NvcGUiLCJcbi8qIENUQSBURVhULUJVVFRPTlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbltkYXRhLXMtdHlwZT1cImN0YS10ZXh0LXNvY2lhbHNcIl0ge1xuICAgIFxuICAgIC8vY29sdW1uc1xuICAgICRhYy1jdGEtbWF4LXdpZHRoOiAkbWF4LWNvbnRlbnQtODAwO1xuICAgICRhYy1jdGEtY29sdW1uLWZpcnN0LXdpZHRoOiAxKjA7IC8vIHRha2VzIGFueSBwZXJjZW50YWdlIGNhbGN1bGF0aW9uXG4gICAgJGFjLWN0YS1jb2x1bW4tZmlyc3QtdGV4dC1hbGlnbjogJ3JpZ2h0JzsgLy8gbGVmdCwgcmlnaHQgb3IgY2VudGVyLiBBcHBsaWVzIHRvIHZlcnNpb24gMVxuICAgICRhYy1jdGEtY29sdW1uLXNlY29uZC10ZXh0LWFsaWduOiAnbGVmdCc7IC8vIGxlZnQsIHJpZ2h0IG9yIGNlbnRlci4gQXBwbGllcyB0byB2ZXJzaW9uIDFcbiAgICAkYWMtY3RhLXJldmVyc2VkLWNvbnRlbnQ6IGZhbHNlOyAvLyBmbGlwIGNvbHVtbnNcblxuICAgIC8vIGNvbHVtbiBnYXBcbiAgICAkYWMtY3RhLWNvbHVtbi1nYXAtaGFzLWRpdmlkZXI6IGZhbHNlO1xuICAgICRhYy1jdGEtY29sdW1uLWdhcDogJGRlZmF1bHQtcGFkZGluZztcbiAgICAkYWMtY3RhLWNvbHVtbi1nYXAtZGl2aWRlcjogc29saWQgMXB4IHJnYmEoJGRlZmF1bHQtYmFja2dyb3VuZC1saWdodCwgLjIpO1xuICAgIFxuICAgICRhYy1jdGEtZWxlbWVudHMtbm8tbWFyZ2luOiBmYWxzZTsgLy8gcHJldmVudHMgbmFzdHkgYWxpZ25tZW50IGR1ZSB0byBtYXJnaW5zLCBub3QgYXBwbGljYWJsZSBmb3IgY29sbGFwc2VkIHZpZXcuXG5cbiAgICAvL2ltZ1xuICAgICRhYy1pbWctYm9yZGVyLWJvdHRvbTogdHJ1ZTtcbiAgICAkYWMtaW1nLWJvcmRlcjogc29saWQgMXB4ICRkZWZhdWx0LWJhY2tncm91bmQtbGlnaHQ7XG5cbiAgICBAaW1wb3J0ICcuLi9hY19zX19jdGEtZ2xvYmFscy9fX2N0YV9nbG9iYWxzJztcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICAgIFxuICAgIC8vbG9jYWwgdmFyaWFibGVzXG4gICAgJGNlbnRlcmVkLWl0ZW1zLWZvci1tZWRpdW0tdXA6IHRydWU7XG4gICAgJGhpZGUtZmlyc3QtY29sdW1uOiB0cnVlO1xuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cblxuICAgIGgyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB9XG5cbiAgICAuYWNfY3RhX2NvbnRhaW5lciB7XG4gICAgICAgIEBpZiAkY2VudGVyZWQtaXRlbXMtZm9yLW1lZGl1bS11cCA9PSBmYWxzZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkgeyBcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IFxuXG4gICAgLmFjX2N0YV9jb2x1bW4ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICBAaWYgJGFjLWN0YS1jb2x1bW4tZ2FwLWhhcy1kaXZpZGVyID09IHRydWUgYW5kICRoaWRlLWZpcnN0LWNvbHVtbiA9PSBmYWxzZXtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGFjLWN0YS1jb2x1bW4tZ2FwO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRhYy1jdGEtY29sdW1uLWdhcC1kaXZpZGVyO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRhYy1jdGEtY29sdW1uLWdhcCAqIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgJGhpZGUtZmlyc3QtY29sdW1uID09IHRydWUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHsgXG4gICAgICAgICAgICBAaWYgJGNlbnRlcmVkLWl0ZW1zLWZvci1tZWRpdW0tdXAgPT0gZmFsc2Uge1xuICAgICAgICAgICAgICAgIEBpZiAkaGlkZS1maXJzdC1jb2x1bW4gPT0gZmFsc2Uge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgkYWMtY3RhLWNvbHVtbi1maXJzdC13aWR0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoJGFjLWN0YS1jb2x1bW4tZmlyc3Qtd2lkdGgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkYWMtY3RhLWNvbHVtbi1nYXA7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogaW5oZXJpdDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICRhYy1jdGEtY29sdW1uLWdhcC1oYXMtZGl2aWRlciA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICRhYy1jdGEtcmV2ZXJzZWQtY29udGVudCA9PSBmYWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogJGFjLWN0YS1jb2x1bW4tZ2FwLWRpdmlkZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGFjLWN0YS1jb2x1bW4tZ2FwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogJGFjLWN0YS1jb2x1bW4tZ2FwLWRpdmlkZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkYWMtY3RhLWNvbHVtbi1nYXA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGFjLWN0YS1jb2x1bW4tZ2FwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAkYWMtY3RhLWNvbHVtbi1maXJzdC10ZXh0LWFsaWduID09ICdjZW50ZXInIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICRhYy1jdGEtY29sdW1uLWZpcnN0LXRleHQtYWxpZ24gPT0gJ3JpZ2h0JyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IFxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgLSBwZXJjZW50YWdlKCRhYy1jdGEtY29sdW1uLWZpcnN0LXdpZHRoKTtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlIC0gcGVyY2VudGFnZSgkYWMtY3RhLWNvbHVtbi1maXJzdC13aWR0aCk7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBAaWYgJGFjLWN0YS1jb2x1bW4tc2Vjb25kLXRleHQtYWxpZ24gPT0gJ2NlbnRlcicge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICRhYy1jdGEtY29sdW1uLXNlY29uZC10ZXh0LWFsaWduID09ICdyaWdodCcge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9ICAgXG5cbiAgICAuYWNfc29jaWFscyB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICB9XG4gICAgLmFjX3NvY2lhbHNfbGluayB7XG4gICAgICAgIHBhZGRpbmc6ICRkZWZhdWx0LXBhZGRpbmcgLyAyICRkZWZhdWx0LXBhZGRpbmc7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyAuYWNfc29jaWFsc19saW5rX3RleHQge1xuICAgIC8vICAgICBkaXNwbGF5OiBub25lO1xuICAgIC8vIH1cblxuXG59IC8vIGVuZCBvZiBzY29wZSIsIlxuLyogSEVSTyAtIDJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuW2RhdGEtcy10eXBlPVwiaGVyb1wiXSB7XG5cbiAgICAvLyBoZXJvXG4gICAgJGhlcm8taGVpZ2h0OiA4MHZoOyAvLyAxMDB2aCwgODB2aCwgNDAwcHgsIGV0Y1xuICAgICRoZXJvLW1pbi1oZWlnaHQ6IDUwMHB4OyAvLyBvcHRpb25hbCBhbmQgaGFuZHkgZm9yIHNtYWxsZXIgc2l6ZXMsIHRvIHByZXZlbnQgY29sbGFwc2luZyBvZiBjb250ZW50XG4gICAgJGhlcm8tZ3JhZGllbnQtYmVmb3JlOiB0cnVlO1xuICAgICRoZXJvLWdyYWRpZW50LWJlZm9yZS1oZWlnaHQ6IDI1dmg7XG4gICAgJGhlcm8tZ3JhZGllbnQtYmVmb3JlLXBvc2l0aW9uOiAndG9wJztcbiAgICAkaGVyby1ncmFkaWVudC1jb2xvcjogZGFya2VuKCRkZWZhdWx0LWJhY2tncm91bmQtZGFyaywgMiUpO1xuXG4gICAgLy8gc2xpZGVcbiAgICAkaGVyby1zbGlkZS1tYXgtd2lkdGg6IDgwMHB4O1xuICAgICRoZXJvLXNsaWRlLWNvbnRlbnQtY29ycmVjdGlvbjogLTNlbTsgLy8gLTNlbSAvLyBhbGxvd3MgZm9yIHZpc3VhbCBjb3JyZWN0aW9uIG9mIG91dGxpbmluZyBjb250ZW50LCB3aGVuIHVzaW5nIGEgZGl2aWRlclxuICAgICRoZXJvLXNsaWRlLXR5cGU6ICd0ZXh0LWltYWdlJzsgLy8gdGV4dCBvciB0ZXh0LWltYWdlXG4gICAgJGhlcm8tc2xpZGUtYWxpZ246ICdjZW50ZXInOyAvLyBjZW50ZXIgb3IgbGVmdC4gdGV4dC1pbWFnZSBhbHdheXMgaW1wbGllcyBsZWZ0IGFsaWduZWQgdGV4dFxuICAgICRoZXJvLXNsaWRlLWNvbnRlbnQtdGV4dC13aWR0aDogMSouNzsgLy8gY2FuIGJlIGFueSBwZXJjZW50YWdlIGNhbGN1bGF0aW9uLCBlZyAxKi44IG9yIDEvNC4gVGhlIGltYWdlIChpZiBhcHBsaWNhYmxlKSB3aWxsIHRha2UgdGhlIHNwYWNlIHRoYXQgaXMgbGVmdFxuICAgICRoZXJvLXNsaWRlLWltYWdlLW9uLXNtYWxsOiAnYWJzb2x1dGUnOyAvLyBub25lIG9yIGFic29sdXRlOyBob3cgdG8gc2hvdyB0aGUgb3B0aW9uYWwgaW1hZ2UgaW4gYSBzbGlkZSBvbiBzbWFsbCBkZXZpY2VzXG4gICAgJGhlcm8tc2xpZGUtaW1hZ2Utb24tc21hbGwtb3BhY2l0eTogLjQ7XG5cbiAgICAvLyBhcnJvd3NcbiAgICAkaGVyby1zbGlkZS1hcnJvd3MtZW5hYmxlZDogdHJ1ZTtcbiAgICAkaGVyby1zbGlkZS1hcnJvd3MtZW5hYmxlZC1mcm9tOiA3MDBweDsgLy8gNzAwcHhcbiAgICAkaGVyby1zbGlkZS1hcnJvd3MtaW5jcmVhc2Utc2l6ZS1mcm9tOiAxMTUwcHg7XG4gICAgJGhlcm8tc2xpZGUtYXJyb3dzLXNpemUtc21hbGw6IDEuNWVtO1xuICAgICRoZXJvLXNsaWRlLWFycm93cy1zaXplLWxhcmdlOiAyZW07XG4gICAgJGhlcm8tc2xpZGUtYXJyb3dzLXBvc2l0aW9uOiAnYm90dG9tLWNlbnRlcmVkJzsgLy8gbGVmdC1hbmQtcmlnaHQtY2VudGVyZWQsIGJvdHRvbS1jZW50ZXJlZFxuICAgICRoZXJvLXNsaWRlLWFycm93cy1ib3R0b20tcG9zaXRpb246IDEwZW07IC8vIGlmIGJvdHRvbS1jZW50ZXJlZFxuICAgICRoZXJvLXNsaWRlLWFycm93cy1jb2xvcjogICRkZWZhdWx0LWljb24tY29sb3ItbGlnaHQ7XG4gICAgJGhlcm8tc2xpZGUtYXJyb3dzLWhvdmVyLWNvbG9yOiByZ2JhKCAkZGVmYXVsdC1pY29uLWNvbG9yLWxpZ2h0LCAuNSk7XG5cbiAgICAvLyBkb3RzXG4gICAgJGhlcm8tc2xpZGUtZG90cy1ib3JkZXI6IHNvbGlkIDJweCByZ2JhKCAkZGVmYXVsdC1pY29uLWNvbG9yLWxpZ2h0LCAuNSk7IFxuICAgICRoZXJvLXNsaWRlLWRvdHMtYm9yZGVyLWFjdGl2ZTogc29saWQgMnB4IHJnYmEoICRkZWZhdWx0LWljb24tY29sb3ItbGlnaHQsIC41KTsgXG4gICAgJGhlcm8tc2xpZGUtZG90cy1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgXG4gICAgJGhlcm8tc2xpZGUtZG90cy1iYWNrZ3JvdW5kLWFjdGl2ZTogJGRlZmF1bHQtYmFja2dyb3VuZC1saWdodDsgXG5cbiAgICAvLyBsaW5rIHRvIGNvbnRlbnRcbiAgICAkaGVyby1saW5rLXRvLWNvbnRlbnQtZW5hYmxlZDogdHJ1ZTtcbiAgICAkaGVyby1saW5rLXRvLWNvbnRlbnQtYm90dG9tOiA0ZW07XG4gICAgJGhlcm8tbGluay10by1jb250ZW50LWVuYWJsZS1mb3ItbWVkaXVtLXBvcnRyYWl0LWRvd246IGZhbHNlO1xuICAgICRoZXJvLWxpbmstdG8tY29udGVudC1jb2xvcjogJGRlZmF1bHQtaWNvbi1jb2xvci1saWdodDtcbiAgICAkaGVyby1saW5rLXRvLWNvbnRlbnQtaG92ZXItY29sb3I6IHJnYmEoJGRlZmF1bHQtaWNvbi1jb2xvci1saWdodCwgLjUpO1xuXG5cbiAgICBAaW1wb3J0ICdfaGVyb19nbG9iYWxzJztcblxuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gICAgXG5cbiAgICBoMSwgaDIsIGgzIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuICAgIHAge1xuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIH1cblxuICAgICoge1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWNfaGVyb19jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCBkb3duKXtcbiAgICAgICAgICAgIGhlaWdodDogNTB2aDtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDQwMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFjX2hlcm9fc2xpZGVfY29udGVudF9jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRoZXJvLXNsaWRlLWNvbnRlbnQtY29ycmVjdGlvbiAvIDIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFjX2hlcm9fc2xpZGVfY29udGVudF90ZXh0IHtcbiAgICAgICAgY29sb3I6ICRkZWZhdWx0LXRleHQtY29sb3ItbGlnaHQ7XG4gICAgfVxuICAgIC5hY19oZXJvX3NsaWRlX2NvbnRlbnRfdGV4dF90aXRsZSB7XG4gICAgICAgICoge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNDAlO1xuICAgICAgICAgICAgY29sb3I6ICRkZWZhdWx0LXRleHQtY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTgwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuc2xpY2stZG90cyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XG4gICAgICAgICAgICBib3R0b206IDJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIFxuXG59IC8vIGVuZCBvZiBzY29wZSIsIlxuLyogQUNfU19IRVJPIC0gR0xPQkFMU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vL1xuLy8gICAgICBDT05UQUlORVJcbi8vXG5cbi5hY19oZXJvX2NvbnRhaW5lciB7XG5cbiAgICBAaWYgJGhlcm8tZ3JhZGllbnQtYmVmb3JlID09IHRydWUge1xuICAgICAgICAgICAgXG4gICAgICAgICRncmFkaWVudC1kZWdyZWVzOiAwZGVnO1xuICAgICAgICBcbiAgICAgICAgQGlmICRoZXJvLWdyYWRpZW50LWJlZm9yZS1wb3NpdGlvbiA9PSAnYm90dG9tJyB7XG4gICAgICAgICAgICAkZ3JhZGllbnQtZGVncmVlczogMTgwZGVnO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogJGhlcm8tZ3JhZGllbnQtYmVmb3JlLWhlaWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgkZ3JhZGllbnQtZGVncmVlcywgcmdiYSgkaGVyby1ncmFkaWVudC1jb2xvciwgMCksIHJnYmEoJGhlcm8tZ3JhZGllbnQtY29sb3IsIDEpKTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICBAaWYgJGhlcm8tZ3JhZGllbnQtYmVmb3JlLXBvc2l0aW9uID09ICdib3R0b20nIHtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgaGVpZ2h0OiAkaGVyby1oZWlnaHQ7XG4gICAgbWluLWhlaWdodDogJGhlcm8tbWluLWhlaWdodDsgXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuIFxuLy9cbi8vICAgICAgU0xJREVTXG4vL1xuXG4uYWNfaGVyb19zbGlkZXMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAzO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0bztcblxuICAgIC8vc2xpY2sgZnVvYyBmaXhcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IC8vIG92ZXJmbG93IGhpZGRlbiBzdGF5cyBpbnRhY3QgZm9yIGhlcm8gc2xpZGVyLiBUaGlzIGFsc28gYWxsb3dzIGZvciBmYWRpbmcgY29udGVudCBpbiBhZnRlciBmdW9jIGZpeC5cbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJGRlZmF1bHQtdHJhbnNpdGlvbi1zcGVlZDtcbiAgICBcbiAgICAvLyBkcm9wIGZvdWMgaWYgc2xpY2sgaXMgaW5pdGlhbGl6ZWRcbiAgICAmLnNsaWNrLWluaXRpYWxpemVkICB7XG4gICAgICAgIG1heC1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG59XG4uYWNfaGVyb19zbGlkZSB7XG4gICAgd2lsbC1jaGFuZ2U6IGNvbnRlbnRzO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5hY19oZXJvX3NsaWRlX2lubmVyIHtcbiAgICBtYXgtd2lkdGg6ICRoZXJvLXNsaWRlLW1heC13aWR0aDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpbGwtY2hhbmdlOiBjb250ZW50cztcbiAgICBwYWRkaW5nOiAwICRkZWZhdWx0LXBhZGRpbmc7XG4gICAgQGlmICRoZXJvLXNsaWRlLWFycm93cy1lbmFibGVkID09IHRydWUge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkaGVyby1zbGlkZS1hcnJvd3MtaW5jcmVhc2Utc2l6ZS1mcm9tKSB7XG4gICAgICAgICAgICBAaWYgJGhlcm8tc2xpZGUtYXJyb3dzLXBvc2l0aW9uID09ICdsZWZ0LWFuZC1yaWdodC1jZW50ZXJlZCcge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgJGRlZmF1bHQtcGFkZGluZyAqIDQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgJGhlcm8tc2xpZGUtYXJyb3dzLXBvc2l0aW9uID09ICdib3R0b20tY2VudGVyZWQnIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwICRkZWZhdWx0LXBhZGRpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IFxufVxuLmFjX2hlcm9fc2xpZGVfY29udGVudF9jb250YWluZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkaGVyby1zbGlkZS1jb250ZW50LWNvcnJlY3Rpb24pO1xuICAgIHdpbGwtY2hhbmdlOiBjb250ZW50cztcbn1cblxuLmFjX2hlcm9fc2xpZGVfY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cbi5hY19oZXJvX3NsaWRlX2NvbnRlbnRfaW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaWYgJGhlcm8tc2xpZGUtYWxpZ24gPT0gJ2NlbnRlcicge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG59XG5cbi5hY19oZXJvX3NsaWRlX2NvbnRlbnRfdGV4dCB7XG4gICAgZmxleDogMCAxIHBlcmNlbnRhZ2UoMSk7XG4gICAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKDEpO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0KSB7XG4gICAgICAgIGZsZXg6IDAgMSBwZXJjZW50YWdlKCRoZXJvLXNsaWRlLWNvbnRlbnQtdGV4dC13aWR0aCk7XG4gICAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSgkaGVyby1zbGlkZS1jb250ZW50LXRleHQtd2lkdGgpO1xuICAgIH1cbiAgICBAaWYgJGhlcm8tc2xpZGUtdHlwZSA9PSAndGV4dCcge1xuICAgICAgICBAaWYgJGhlcm8tc2xpZGUtYWxpZ24gPT0gJ2NlbnRlcicge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4uYWNfaGVyb19zbGlkZV9jb250ZW50X2ltYWdlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIEBpZiAkaGVyby1zbGlkZS10eXBlID09ICd0ZXh0JyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIEBpZiAkaGVyby1zbGlkZS10eXBlID09ICd0ZXh0LWltYWdlJyB7XG4gICAgICAgIGZsZXg6IDAgMSAxMDAlIC0gcGVyY2VudGFnZSgkaGVyby1zbGlkZS1jb250ZW50LXRleHQtd2lkdGgpO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCUgLSBwZXJjZW50YWdlKCRoZXJvLXNsaWRlLWNvbnRlbnQtdGV4dC13aWR0aCk7XG4gICAgICAgIFxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBpbml0aWFsO1xuICAgICAgICB9XG4gICAgICAgIEBpZiAkaGVyby1zbGlkZS1pbWFnZS1vbi1zbWFsbCA9PSAnbm9uZSd7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyAvLyBpbWFnZSBpcyBub3Qgc2hvd24gb24gc21hbGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaWYgJGhlcm8tc2xpZGUtaW1hZ2Utb24tc21hbGwgPT0gJ2Fic29sdXRlJ3tcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogJGhlcm8tc2xpZGUtaW1hZ2Utb24tc21hbGwtb3BhY2l0eTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IGluaXRpYWw7XG4gICAgICAgICAgICB9ICAgICAgICAgICAgXG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLy9cbi8vICAgICAgU0xJQ0sgRklYRVNcbi8vXG5cbi5zbGljay1kb3RzIHtcbiAgICBidXR0b24ge1xuICAgICAgICBib3JkZXI6ICRoZXJvLXNsaWRlLWRvdHMtYm9yZGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkaGVyby1zbGlkZS1kb3RzLWJhY2tncm91bmQ7XG4gICAgfVxuICAgIC5zbGljay1hY3RpdmUge1xuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgYm9yZGVyOiAkaGVyby1zbGlkZS1kb3RzLWJvcmRlci1hY3RpdmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkaGVyby1zbGlkZS1kb3RzLWJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgICB9ICAgXG4gICAgfVxufVxuLnNsaWNrLWxpc3Qge1xuICAgIGhlaWdodDogMTAwJTtcbn1cbi5zbGljay10cmFjayB7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLnNsaWNrLXByZXYsXG4uc2xpY2stbmV4dCAge1xuICAgIFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgXG5cbiAgICBAaWYgJGhlcm8tc2xpZGUtYXJyb3dzLWVuYWJsZWQgPT0gdHJ1ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgICAgICAgQGlmICRoZXJvLXNsaWRlLWFycm93cy1lbmFibGVkID09IHRydWUge1xuICAgICAgICAgICAgd2lkdGg6ICRoZXJvLXNsaWRlLWFycm93cy1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkaGVyby1zbGlkZS1hcnJvd3Mtc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGhlcm8tc2xpZGUtYXJyb3dzLWluY3JlYXNlLXNpemUtZnJvbSkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkaGVyby1zbGlkZS1hcnJvd3Mtc2l6ZS1sYXJnZTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRoZXJvLXNsaWRlLWFycm93cy1zaXplLWxhcmdlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkaGVyby1zbGlkZS1hcnJvd3MtY29sb3I7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRoZXJvLXNsaWRlLWFycm93cy1zaXplLXNtYWxsO1xuICAgICAgICAgICAgICAgIGhlaWdodDogJGhlcm8tc2xpZGUtYXJyb3dzLXNpemUtc21hbGw7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGhlcm8tc2xpZGUtYXJyb3dzLWluY3JlYXNlLXNpemUtZnJvbSkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJGhlcm8tc2xpZGUtYXJyb3dzLXNpemUtbGFyZ2U7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJGhlcm8tc2xpZGUtYXJyb3dzLXNpemUtbGFyZ2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRoZXJvLXNsaWRlLWFycm93cy1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRoZXJvLXNsaWRlLWFycm93cy1lbmFibGVkLWZyb20pe1xuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbn1cbkBpZiAkaGVyby1zbGlkZS1hcnJvd3MtZW5hYmxlZCA9PSB0cnVlIHtcblxuICAgIEBpZiAkaGVyby1zbGlkZS1hcnJvd3MtcG9zaXRpb24gPT0gJ2xlZnQtYW5kLXJpZ2h0LWNlbnRlcmVkJyB7XG4gICAgICAgIC5zbGljay1wcmV2IHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKCRoZXJvLXNsaWRlLWFycm93cy1zaXplLXNtYWxsICogMik7XG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkaGVyby1zbGlkZS1hcnJvd3MtaW5jcmVhc2Utc2l6ZS1mcm9tKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoJGhlcm8tc2xpZGUtYXJyb3dzLXNpemUtbGFyZ2UgKiAyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoJGhlcm8tc2xpZGUtYXJyb3dzLXNpemUtbGFyZ2UgKiA0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSkge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKCRoZXJvLXNsaWRlLWFycm93cy1zaXplLWxhcmdlICogNik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gICBcbiAgICAgICAgLnNsaWNrLW5leHQgIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC0kaGVyby1zbGlkZS1hcnJvd3Mtc2l6ZS1zbWFsbCAqIDIpO1xuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGhlcm8tc2xpZGUtYXJyb3dzLWluY3JlYXNlLXNpemUtZnJvbSkge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC0kaGVyby1zbGlkZS1hcnJvd3Mtc2l6ZS1sYXJnZSAqIDIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtJGhlcm8tc2xpZGUtYXJyb3dzLXNpemUtbGFyZ2UgKiA0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSkge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC0kaGVyby1zbGlkZS1hcnJvd3Mtc2l6ZS1sYXJnZSAqIDYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRoZXJvLXNsaWRlLWFycm93cy1wb3NpdGlvbiA9PSAnYm90dG9tLWNlbnRlcmVkJyB7XG4gICAgICAgIC5zbGljay1wcmV2IHtcbiAgICAgICAgICAgIHRvcDogaW5pdGlhbDtcbiAgICAgICAgICAgIGJvdHRvbTogJGhlcm8tc2xpZGUtYXJyb3dzLWJvdHRvbS1wb3NpdGlvbjtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtKCRoZXJvLXNsaWRlLWFycm93cy1zaXplLXNtYWxsICogNikgLSAkaGVyby1zbGlkZS1hcnJvd3Mtc2l6ZS1zbWFsbCk7XG4gICAgICAgIH0gICBcbiAgICAgICAgLnNsaWNrLW5leHQgIHtcbiAgICAgICAgICAgIHRvcDogaW5pdGlhbDtcbiAgICAgICAgICAgIGJvdHRvbTogJGhlcm8tc2xpZGUtYXJyb3dzLWJvdHRvbS1wb3NpdGlvbjtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkaGVyby1zbGlkZS1hcnJvd3Mtc2l6ZS1zbWFsbCAqIDYpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2xpY2stZG90cyB7XG4gICAgYm90dG9tOiAkaGVyby1zbGlkZS1hcnJvd3MtYm90dG9tLXBvc2l0aW9uO1xufVxuXG5cblxuLy9cbi8vICAgICAgTElOSyBUTyBDT05URU5UXG4vL1xuXG4uYWNfaGVyb19saW5rX3RvLWNvbnRlbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxMTExO1xuICAgIGJvdHRvbTogJGhlcm8tbGluay10by1jb250ZW50LWJvdHRvbTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIEBpZiAkaGVyby1saW5rLXRvLWNvbnRlbnQtZW5hYmxlLWZvci1tZWRpdW0tcG9ydHJhaXQtZG93biA9PSBmYWxzZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnN2Zy1jb250YWluZXIge1xuICAgICAgICB3aWR0aDogNGVtO1xuICAgICAgICBoZWlnaHQ6IDRlbTtcbiAgICB9XG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDRlbTtcbiAgICAgICAgaGVpZ2h0OiA0ZW07XG4gICAgICAgIGZpbGw6ICRoZXJvLWxpbmstdG8tY29udGVudC1jb2xvcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgfVxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMnB4KTtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBmaWxsOiAkaGVyby1saW5rLXRvLWNvbnRlbnQtaG92ZXItY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59IiwiXG4vKiBBQ19TX0hFUk9fQUxUIC0gMVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5bZGF0YS1zLXR5cGU9XCJoZXJvLWFsdFwiXSB7XG4gICAgLy8gaGVyb1xuICAgICRoZXJvLWFsdC1oZWlnaHQ6IDMwMHB4OyAvLyAxMDB2aCwgODB2aCwgNDAwcHgsIGV0Y1xuICAgICRoZXJvLWFsdC1taW4taGVpZ2h0OiAyMDBweDtcblxuICAgIC8vIHNsaWRlXG4gICAgJGhlcm8tYWx0LXNsaWRlLW1heC13aWR0aDogMTAwMHB4O1xuICAgICRoZXJvLWFsdC1zbGlkZS1jb250ZW50LWNvcnJlY3Rpb246IC0xZW07IC8vIGFsbG93cyBmb3IgdmlzdWFsIGNvcnJlY3Rpb24gb2Ygb3V0bGluaW5nIGNvbnRlbnQsIHdoZW4gdXNpbmcgYSBkaXZpZGVyXG4gICAgJGhlcm8tYWx0LXNsaWRlLXR5cGU6ICd0ZXh0JzsgLy8gdGV4dCBvciB0ZXh0LWltYWdlXG4gICAgJGhlcm8tYWx0LXNsaWRlLWFsaWduOiAnY2VudGVyJzsgLy8gY2VudGVyIG9yIGxlZnQuIHRleHQtaW1hZ2UgYWx3YXlzIGltcGxpZXMgbGVmdCBhbGlnbmVkIHRleHRcbiAgICAkaGVyby1hbHQtc2xpZGUtY29udGVudC10ZXh0LXdpZHRoOiAxKi44OyAvLyAvLyBjYW4gYmUgYW55IHBlcmNlbnRhZ2UgY2FsY3VsYXRpb24sIGVnIDEqLjggb3IgMS80LiBUaGUgaW1hZ2UgKGlmIGFwcGxpY2FibGUpIHdpbGwgdGFrZSB0aGUgc3BhY2UgbGVmdFxuICAgICRoZXJvLWFsdC1zbGlkZS1pbWFnZS1vbi1zbWFsbDogJ2Fic29sdXRlJzsgLy8gbm9uZSBvciBhYnNvbHV0ZTsgaG93IHRvIHNob3cgdGhlIGltYWdlIG9uIHNtYWxsXG5cbiAgICAvLyBhcnJvd3NcbiAgICAkaGVyby1hbHQtc2xpZGUtYXJyb3dzLWVuYWJsZWQ6IHRydWU7XG4gICAgJGhlcm8tYWx0LXNsaWRlLWFycm93cy1lbmFibGVkLWZyb206IDBweDsgLy8gNzAwcHhcbiAgICAkaGVyby1hbHQtc2xpZGUtaW5jcmVhc2UtYXJyb3dzLXNpemUtZnJvbTogMTE1MHB4O1xuICAgICRoZXJvLWFsdC1zbGlkZS1hcnJvd3Mtc2l6ZS1zbWFsbDogMWVtO1xuICAgICRoZXJvLWFsdC1zbGlkZS1hcnJvd3Mtc2l6ZS1sYXJnZTogMmVtO1xuICAgICRoZXJvLWFsdC1zbGlkZS1hcnJvd3MtcG9zaXRpb246ICdib3R0b20tY2VudGVyZWQnOyAvLyBsZWZ0LWFuZC1yaWdodC1jZW50ZXJlZCwgYm90dG9tLWNlbnRlcmVkXG4gICAgJGhlcm8tYWx0LXNsaWRlLWFycm93cy1ib3R0b20tcG9zaXRpb246IDRlbTsgLy8gaWYgYm90dG9tLWNlbnRlcmVkXG5cbiAgICAkaGVyby1hbHQtYmFja2Ryb3AtdGlsbC1tZWRpdW0tZ3JheXNjYWxlOiBmYWxzZTtcbiAgICAkaGVyby1hbHQtYmFja2Ryb3AtdGlsbC1tZWRpdW0tZmFkZTogLjQ7XG4gICAgJGhlcm8tYWx0LWJhY2tkcm9wLXRpbGwtbWVkaXVtLWJsZW5kLW1vZGU6IG11bHRpcGx5OyAvLyBtdWx0aXBseSAvIG5vcm1hbFxuXG4gICAgJGhlcm8tYWx0LWxpbmstdG8tY29udGVudC1lbmFibGVkOiBmYWxzZTtcbiAgICAkaGVyby1hbHQtbGluay10by1jb250ZW50LWJvdHRvbTogM2VtO1xuICAgICRoZXJvLWFsdC1saW5rLXRvLWNvbnRlbnQtc2hvdy10aWxsLW1lZGl1bTogZmFsc2U7XG5cblxuICAgIEBpbXBvcnQgJ19faGVyb19hbHRfZ2xvYmFscyc7XG5cblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICAgIFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoMSwgaDIsIGgzIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuICAgIHAge1xuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIH1cblxuICAgICoge1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59IiwiXG4vKiBBQ19TX0hFUk8gLSBHTE9CQUxTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vXG4vLyAgICAgIENPTlRBSU5FUlxuLy9cblxuLmFjX2hlcm9fYWx0X2NvbnRhaW5lciB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgaGVpZ2h0OiAkaGVyby1hbHQtaGVpZ2h0IC8gMjtcbiAgICBtaW4taGVpZ2h0OiAkaGVyby1hbHQtbWluLWhlaWdodDsgLy8gb3B0aW9uYWwgZm9yIHNtYWxsZXIgc2l6ZXMsIHRvIHByZXZlbnQgY29sbGFwc2luZyBvZiBjb250ZW50XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGhlaWdodDogJGhlcm8tYWx0LWhlaWdodDtcbiAgICB9XG59XG5cblxuLy9cbi8vICAgICAgU0xJREVTXG4vL1xuXG4uYWNfaGVyb19hbHRfc2xpZGVzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICAvL3NsaWNrIGZ1b2MgZml4XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyAvLyBvdmVyZmxvdyBoaWRkZW4gc3RheXMgaW50YWN0IGZvciBoZXJvIHNsaWRlci4gVGhpcyBhbHNvIGFsbG93cyBmb3IgZmFkaW5nIGNvbnRlbnQgaW4gYWZ0ZXIgZnVvYyBmaXguXG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgXG4gICAgLy8gZHJvcCBmb3VjIGlmIHNsaWNrIGlzIGluaXRpYWxpemVkXG4gICAgJi5zbGljay1pbml0aWFsaXplZCAge1xuICAgICAgICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxufVxuLmFjX2hlcm9fYWx0X3NsaWRlIHtcbiAgICB3aWxsLWNoYW5nZTogY29udGVudHM7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmFjX2hlcm9fYWx0X3NsaWRlX2lubmVyIHtcbiAgICBtYXgtd2lkdGg6ICRoZXJvLWFsdC1zbGlkZS1tYXgtd2lkdGg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWxsLWNoYW5nZTogY29udGVudHM7XG4gICAgcGFkZGluZzogMCAkZGVmYXVsdC1wYWRkaW5nO1xuICAgIEBpZiAkaGVyby1hbHQtc2xpZGUtYXJyb3dzLWVuYWJsZWQgPT0gdHJ1ZSB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRoZXJvLWFsdC1zbGlkZS1hcnJvd3MtZW5hYmxlZC1mcm9tKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRkZWZhdWx0LXBhZGRpbmcgKiA0O1xuICAgICAgICB9XG4gICAgfSBcbn1cbi5hY19oZXJvX2FsdF9zbGlkZV9jb250ZW50X2NvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRoZXJvLWFsdC1zbGlkZS1jb250ZW50LWNvcnJlY3Rpb24pO1xuICAgIH1cbiAgICB3aWxsLWNoYW5nZTogY29udGVudHM7XG59XG5cbi5hY19oZXJvX2FsdF9zbGlkZV9jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuLmFjX2hlcm9fYWx0X3NsaWRlX2NvbnRlbnRfaW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaWYgJGhlcm8tYWx0LXNsaWRlLWFsaWduID09ICdjZW50ZXInIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxufVxuXG4uYWNfaGVyb19hbHRfc2xpZGVfY29udGVudF90ZXh0IHtcbiAgICBmbGV4OiAwIDEgcGVyY2VudGFnZSgxKTtcbiAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoMSk7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0tcG9ydHJhaXQpIHtcbiAgICAgICAgZmxleDogMCAxIHBlcmNlbnRhZ2UoJGhlcm8tYWx0LXNsaWRlLWNvbnRlbnQtdGV4dC13aWR0aCk7XG4gICAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSgkaGVyby1hbHQtc2xpZGUtY29udGVudC10ZXh0LXdpZHRoKTtcbiAgICB9XG4gICAgQGlmICRoZXJvLWFsdC1zbGlkZS10eXBlID09ICd0ZXh0JyB7XG4gICAgICAgIEBpZiAkaGVyby1hbHQtc2xpZGUtYWxpZ24gPT0gJ2NlbnRlcicge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4uYWNfaGVyb19hbHRfc2xpZGVfY29udGVudF9pbWFnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBAaWYgJGhlcm8tYWx0LXNsaWRlLXR5cGUgPT0gJ3RleHQnIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgQGlmICRoZXJvLWFsdC1zbGlkZS10eXBlID09ICd0ZXh0LWltYWdlJyB7XG4gICAgICAgIGZsZXg6IDAgMSAxMDAlIC0gcGVyY2VudGFnZSgkaGVyby1hbHQtc2xpZGUtY29udGVudC10ZXh0LXdpZHRoKTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlIC0gcGVyY2VudGFnZSgkaGVyby1hbHQtc2xpZGUtY29udGVudC10ZXh0LXdpZHRoKTtcblxuICAgICAgICBAaWYgJGhlcm8tYWx0LXNsaWRlLWltYWdlLW9uLXNtYWxsID09ICdub25lJ3tcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IC8vIGltYWdlIGlzIG5vdCBzaG93biBvbiBzbWFsbFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpZiAkaGVyby1hbHQtc2xpZGUtaW1hZ2Utb24tc21hbGwgPT0gJ2Fic29sdXRlJ3tcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogLjU7XG4gICAgICAgICAgICB9ICAgICAgICAgICAgXG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuXG4vL1xuLy8gICAgICBTTElDSyBGSVhFU1xuLy9cblxuICAgIC5zbGljay1saXN0IHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgICAuc2xpY2stdHJhY2sge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICAgIC5zbGljay1wcmV2LFxuICAgIC5zbGljay1uZXh0ICB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgLy8gb3ZlcnJ1bGUgdGhlIFNsaWNrIGpzXG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgICAgICAgQGlmICRoZXJvLWFsdC1zbGlkZS1hcnJvd3MtZW5hYmxlZCA9PSB0cnVlIHtcbiAgICAgICAgICAgIHdpZHRoOiAkaGVyby1hbHQtc2xpZGUtYXJyb3dzLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRoZXJvLWFsdC1zbGlkZS1hcnJvd3Mtc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRoZXJvLWFsdC1zbGlkZS1pbmNyZWFzZS1hcnJvd3Mtc2l6ZS1mcm9tKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkaGVyby1hbHQtc2xpZGUtaW5jcmVhc2UtYXJyb3dzLXNpemUtZnJvbSkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkaGVyby1hbHQtc2xpZGUtYXJyb3dzLXNpemUtbGFyZ2U7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkaGVyby1hbHQtc2xpZGUtYXJyb3dzLXNpemUtbGFyZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGZpbGw6IHdoaXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkaGVyby1hbHQtc2xpZGUtYXJyb3dzLXNpemUtc21hbGw7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkaGVyby1hbHQtc2xpZGUtYXJyb3dzLXNpemUtc21hbGw7XG4gICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGhlcm8tYWx0LXNsaWRlLWluY3JlYXNlLWFycm93cy1zaXplLWZyb20pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICRoZXJvLWFsdC1zbGlkZS1hcnJvd3Mtc2l6ZS1sYXJnZTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkaGVyby1hbHQtc2xpZGUtYXJyb3dzLXNpemUtbGFyZ2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIEBpZiAkaGVyby1hbHQtc2xpZGUtYXJyb3dzLWVuYWJsZWQgPT0gdHJ1ZSB7XG5cbiAgICAgICAgQGlmICRoZXJvLWFsdC1zbGlkZS1hcnJvd3MtcG9zaXRpb24gPT0gJ2xlZnQtYW5kLXJpZ2h0LWNlbnRlcmVkJyB7XG4gICAgICAgICAgICAuc2xpY2stcHJldiB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoJGhlcm8tYWx0LXNsaWRlLWFycm93cy1zaXplLXNtYWxsICogMik7XG4gICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGhlcm8tYWx0LXNsaWRlLWluY3JlYXNlLWFycm93cy1zaXplLWZyb20pIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoJGhlcm8tYWx0LXNsaWRlLWFycm93cy1zaXplLWxhcmdlICogMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKCRoZXJvLWFsdC1zbGlkZS1hcnJvd3Mtc2l6ZS1sYXJnZSAqIDQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHh4bGFyZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoJGhlcm8tYWx0LXNsaWRlLWFycm93cy1zaXplLWxhcmdlICogNik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSAgIFxuICAgICAgICAgICAgLnNsaWNrLW5leHQgIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtJGhlcm8tYWx0LXNsaWRlLWFycm93cy1zaXplLXNtYWxsICogMik7XG4gICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGhlcm8tYWx0LXNsaWRlLWluY3JlYXNlLWFycm93cy1zaXplLWZyb20pIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLSRoZXJvLWFsdC1zbGlkZS1hcnJvd3Mtc2l6ZS1sYXJnZSAqIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtJGhlcm8tYWx0LXNsaWRlLWFycm93cy1zaXplLWxhcmdlICogNCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtJGhlcm8tYWx0LXNsaWRlLWFycm93cy1zaXplLWxhcmdlICogNik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRoZXJvLWFsdC1zbGlkZS1hcnJvd3MtcG9zaXRpb24gPT0gJ2JvdHRvbS1jZW50ZXJlZCcge1xuICAgICAgICAgICAgLnNsaWNrLXByZXYge1xuICAgICAgICAgICAgICAgIHRvcDogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICBib3R0b206ICRoZXJvLWFsdC1zbGlkZS1hcnJvd3MtYm90dG9tLXBvc2l0aW9uO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJGhlcm8tYWx0LXNsaWRlLWFycm93cy1zaXplLXNtYWxsICogNik7XG4gICAgICAgICAgICB9ICAgXG4gICAgICAgICAgICAuc2xpY2stbmV4dCAge1xuICAgICAgICAgICAgICAgIHRvcDogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICBib3R0b206ICRoZXJvLWFsdC1zbGlkZS1hcnJvd3MtYm90dG9tLXBvc2l0aW9uO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kaGVyby1hbHQtc2xpZGUtYXJyb3dzLXNpemUtc21hbGwgKiA2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAuc2xpY2stZG90cyB7XG4gICAgICAgIGJvdHRvbTogJGhlcm8tYWx0LXNsaWRlLWFycm93cy1ib3R0b20tcG9zaXRpb247XG4gICAgfVxuXG5cbi8vXG4vLyAgICAgIEJBQ0tEUk9QXG4vL1xuXG4uYWNfaGVyb19hbHRfYmFja2Ryb3Age1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogMTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmFjX2hlcm9fYWx0X2JhY2tkcm9wX2ltYWdlLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbn1cbi5hY19oZXJvX2FsdF9iYWNrZHJvcF9pbWFnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG9wYWNpdHk6ICRoZXJvLWFsdC1iYWNrZHJvcC10aWxsLW1lZGl1bS1mYWRlO1xuICAgIG1peC1ibGVuZC1tb2RlOiAkaGVyby1hbHQtYmFja2Ryb3AtdGlsbC1tZWRpdW0tYmxlbmQtbW9kZTtcbiAgICBAaWYgJGhlcm8tYWx0LWJhY2tkcm9wLXRpbGwtbWVkaXVtLWdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICAgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIG1peC1ibGVuZC1tb2RlOiBub3JtYWw7XG4gICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDAlKTtcbiAgICB9XG59XG5cbi5hY19oZXJvX2FsdF9iYWNrZHJvcF92aWRlby1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogMjtcbiAgICB2aWRlbyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB9XG59XG5cblxuLy9cbi8vICAgICAgTElOSyBUTyBDT05URU5UXG4vL1xuXG4uYWNfaGVyb19hbHRfbGlua190by1jb250ZW50IHtcbiAgICBAaWYgJGhlcm8tYWx0LWxpbmstdG8tY29udGVudC1lbmFibGVkID09IHRydWUgeyAgICAgICAgXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMTExMTtcbiAgICAgICAgYm90dG9tOiAkaGVyby1hbHQtbGluay10by1jb250ZW50LWJvdHRvbTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgQGlmICRoZXJvLWFsdC1saW5rLXRvLWNvbnRlbnQtc2hvdy10aWxsLW1lZGl1bSA9PSBmYWxzZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuc3ZnLWNvbnRhaW5lciB7XG4gICAgICAgICAgICB3aWR0aDogMmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAyZW07XG4gICAgICAgIH1cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiAyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJlbTtcbiAgICAgICAgfVxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgycHgpO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufSIsIlxuLyogSU1BR0UgLSAxXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cblxuW2RhdGEtcy10eXBlPVwiaW1hZ2VcIl0ge1xuXG5cbiAgICBAaW1wb3J0ICdfX2ltYWdlX2dsb2JhbHMnO1xuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvLyBzZXQgaGVpZ2h0IGZvciBsYXJnZVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgfVxuXG4gICAgXG59IC8vIGVuZCBvZiBzY29wZVxuXG4iLCJcbi8qIElNQUdFIC0gR0xPQkFMU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyByZW5kZXIgZGVmYXVsdHMgd2l0aGluIG1peGluIHRvIGF2b2lkIHNhc3MgZXJyb3Igb2Ygbm90IGNhbGxpbmcgYSBzZWxlY3RvclxuQG1peGluIGRlZmF1bHRzKCkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbkBpbmNsdWRlIGRlZmF1bHRzKCk7XG5cbi5hY19pbWFnZSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuIiwiXG4vKiBJTUFHRSAtIDFcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXG5bZGF0YS1zLXR5cGU9XCJpbWFnZS1iZy1maXhlZFwiXSB7XG5cbiAgICBAaW1wb3J0ICdfX2ltYWdlLWJnLWZpeGVkX2dsb2JhbHMnO1xuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvLyBzZXQgaGVpZ2h0IGZvciBsYXJnZVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgaGVpZ2h0OiAzMDBweDtcbiAgICB9XG5cbiAgICBcbn0gLy8gZW5kIG9mIHNjb3BlXG5cbiIsIlxuLyogSU1BR0UgLSBHTE9CQUxTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vIHJlbmRlciBkZWZhdWx0cyB3aXRoaW4gbWl4aW4gdG8gYXZvaWQgc2FzcyBlcnJvciBvZiBub3QgY2FsbGluZyBhIHNlbGVjdG9yXG5AbWl4aW4gZGVmYXVsdHMoKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6ICRicmFuZC1iYWNrZ3JvdW5kLXByaW1hcnktcmV2ZXJzZWQ7XG59XG5AaW5jbHVkZSBkZWZhdWx0cygpO1xuXG4uYWNfaW1hZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgXG4gICAgZmlndXJlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvcGFjaXR5OiAuMjtcbiAgICAgICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgICB9XG59XG5cbiIsIlxuLyogQUNfU19JTUFHRS1HQUxMRVJZX0ZVTEwtU0NSRUVOIC0gMVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4kYWMtaW1hZ2UtZ2FsbGVyeS1mdWxsLXNjcmVlbi16LWluZGV4OiA0NDQ0O1xuJGFjLWltYWdlLWdhbGxlcnktZnVsbC1zY3JlZW4tYmFja2dyb3VuZDogcmdiYSgkZGVmYXVsdC1iYWNrZ3JvdW5kLWRhcmssIC45KTtcblxuLy8gY29udGVudFxuJGFjLWltYWdlLWdhbGxlcnktZnVsbC1zY3JlZW4tY29udGVudC1iYWNrZ3JvdW5kOiByZ2JhKCRkZWZhdWx0LWJhY2tncm91bmQtZGFyaywgLjkpO1xuJGFjLWltYWdlLWdhbGxlcnktZnVsbC1zY3JlZW4tY29udGVudC1jb2xvcjogJGRlZmF1bHQtdGV4dC1jb2xvci1saWdodDtcbiRhYy1pbWFnZS1nYWxsZXJ5LWZ1bGwtc2NyZWVuLWNvbnRlbnQtbWF4LXdpZHRoOiAkbWF4LWNvbnRlbnQtMTAwMDtcbiRhYy1pbWFnZS1nYWxsZXJ5LWZ1bGwtc2NyZWVuLWNvbnRlbnQtcGFkZGluZzogJGRlZmF1bHQtcGFkZGluZztcblxuLy8gY2xvc2UgaWNvblxuJGFjLWltYWdlLWdhbGxlcnktZnVsbC1zY3JlZW4tY2xvc2UtaWNvbi1zaXplOiA0MHB4O1xuJGFjLWltYWdlLWdhbGxlcnktZnVsbC1zY3JlZW4tY2xvc2UtaWNvbi1ib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzIC8gMjtcbiRhYy1pbWFnZS1nYWxsZXJ5LWZ1bGwtc2NyZWVuLWNsb3NlLWljb24tcGFkZGluZzogMTJweDtcbiRhYy1pbWFnZS1nYWxsZXJ5LWZ1bGwtc2NyZWVuLWNsb3NlLWljb24tYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1saWdodDtcbiRhYy1pbWFnZS1nYWxsZXJ5LWZ1bGwtc2NyZWVuLWNsb3NlLWljb24tYmFja2dyb3VuZC1ob3Zlci1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1kYXJrO1xuJGFjLWltYWdlLWdhbGxlcnktZnVsbC1zY3JlZW4tY2xvc2UtaWNvbi1jb2xvcjogJGRlZmF1bHQtaWNvbi1jb2xvci1kYXJrO1xuJGFjLWltYWdlLWdhbGxlcnktZnVsbC1zY3JlZW4tY2xvc2UtaWNvbi1ob3Zlci1jb2xvcjogJGRlZmF1bHQtaWNvbi1jb2xvci1saWdodDtcblxuQGltcG9ydCAnX19pbWFnZS1nYWxsZXJ5X2Z1bGwtc2NyZWVuX2dsb2JhbHMnO1xuXG4iLCJcbi8qIEFDX1NfSU1BR0UtR0FMTEVSWV9GVUxMLVNDUkVFTiAtIEdMT0JBTFNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXG4uYWNfaW1hZ2UtZ2FsbGVyeV9mdWxsLXNjcmVlbiB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6ICRhYy1pbWFnZS1nYWxsZXJ5LWZ1bGwtc2NyZWVuLXotaW5kZXg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJGRlZmF1bHQtdHJhbnNpdGlvbi1zcGVlZCwgaGVpZ2h0IDBzIGxpbmVhciAuM3MsIHZpc2liaWxpdHkgMHMgbGluZWFyIC4zcztcblxuICAgICYuc19hY3RpdmV7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcyBsaW5lYXIsIGhlaWdodCAwcyBsaW5lYXIsICBvcGFjaXR5ICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQgLjNzO1xuICAgIH1cbn1cblxuLmFjX2ltYWdlLWdhbGxlcnlfZnVsbC1zY3JlZW5fY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xufVxuXG4vL1xuLy8gICAgICBJVEVNXG4vL1xuXG4uaW1hZ2UtZ2FsbGVyeV9mdWxsLXNjcmVlbl9pdGVtICB7XG5cbn1cbi5pbWFnZS1nYWxsZXJ5X2Z1bGwtc2NyZWVuX2l0ZW1fY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cblxuLy9cbi8vICAgICAgQ09OVEVOVFxuLy9cblxuLmltYWdlLWdhbGxlcnlfZnVsbC1zY3JlZW5faXRlbV9jb250ZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAkYWMtaW1hZ2UtZ2FsbGVyeS1mdWxsLXNjcmVlbi1jb250ZW50LWJhY2tncm91bmQ7XG59XG4uaW1hZ2UtZ2FsbGVyeV9mdWxsLXNjcmVlbl9pdGVtX2NvbnRlbnRfaW5uZXIge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1heC13aWR0aDogJGFjLWltYWdlLWdhbGxlcnktZnVsbC1zY3JlZW4tY29udGVudC1tYXgtd2lkdGg7XG4gICAgcGFkZGluZzogJGFjLWltYWdlLWdhbGxlcnktZnVsbC1zY3JlZW4tY29udGVudC1wYWRkaW5nO1xuICAgIGNvbG9yOiAkYWMtaW1hZ2UtZ2FsbGVyeS1mdWxsLXNjcmVlbi1jb250ZW50LWNvbG9yO1xufVxuXG5cblxuLy9cbi8vICAgICAgSU1BR0Vcbi8vXG5cbi5pbWFnZS1nYWxsZXJ5X2Z1bGwtc2NyZWVuX2l0ZW1faW1hZ2VfY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMHZoO1xufVxuLmltYWdlLWdhbGxlcnlfZnVsbC1zY3JlZW5faXRlbV9pbWFnZSB7XG5cbn1cblxuXG4vL1xuLy8gICAgICBCVE4gQ0xPU0Vcbi8vXG5cbi5hY19pbWFnZS1nYWxsZXJ5X2Z1bGwtc2NyZWVuX2Nsb3NlIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6ICRhYy1pbWFnZS1nYWxsZXJ5LWZ1bGwtc2NyZWVuLWNsb3NlLWljb24tc2l6ZTtcbiAgICBoZWlnaHQ6ICRhYy1pbWFnZS1nYWxsZXJ5LWZ1bGwtc2NyZWVuLWNsb3NlLWljb24tc2l6ZTtcbiAgICB6LWluZGV4OiAkYWMtaW1hZ2UtZ2FsbGVyeS1mdWxsLXNjcmVlbi16LWluZGV4ICsgMTtcbiAgICB0b3A6ICRhYy1pbWFnZS1nYWxsZXJ5LWZ1bGwtc2NyZWVuLWNsb3NlLWljb24tc2l6ZSAvIDI7XG4gICAgcmlnaHQ6ICRhYy1pbWFnZS1nYWxsZXJ5LWZ1bGwtc2NyZWVuLWNsb3NlLWljb24tc2l6ZSAvIDI7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwYWRkaW5nOiAkYWMtaW1hZ2UtZ2FsbGVyeS1mdWxsLXNjcmVlbi1jbG9zZS1pY29uLXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogJGFjLWltYWdlLWdhbGxlcnktZnVsbC1zY3JlZW4tY2xvc2UtaWNvbi1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6ICRhYy1pbWFnZS1nYWxsZXJ5LWZ1bGwtc2NyZWVuLWNsb3NlLWljb24tYm9yZGVyLXJhZGl1cztcbiAgICB0cmFuc2l0aW9uOiBhbGwgJGRlZmF1bHQtdHJhbnNpdGlvbi1zcGVlZDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHRvcDogJGFjLWltYWdlLWdhbGxlcnktZnVsbC1zY3JlZW4tY2xvc2UtaWNvbi1zaXplO1xuICAgICAgICByaWdodDogJGFjLWltYWdlLWdhbGxlcnktZnVsbC1zY3JlZW4tY2xvc2UtaWNvbi1zaXplO1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAkYWMtaW1hZ2UtZ2FsbGVyeS1mdWxsLXNjcmVlbi1jbG9zZS1pY29uLXNpemUgLSAoJGFjLWltYWdlLWdhbGxlcnktZnVsbC1zY3JlZW4tY2xvc2UtaWNvbi1wYWRkaW5nICogMik7XG4gICAgICAgIGhlaWdodDogJGFjLWltYWdlLWdhbGxlcnktZnVsbC1zY3JlZW4tY2xvc2UtaWNvbi1zaXplICAtICgkYWMtaW1hZ2UtZ2FsbGVyeS1mdWxsLXNjcmVlbi1jbG9zZS1pY29uLXBhZGRpbmcgKiAyKTtcbiAgICAgICAgZmlsbDogJGFjLWltYWdlLWdhbGxlcnktZnVsbC1zY3JlZW4tY2xvc2UtaWNvbi1jb2xvcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGFjLWltYWdlLWdhbGxlcnktZnVsbC1zY3JlZW4tY2xvc2UtaWNvbi1iYWNrZ3JvdW5kLWhvdmVyLWNvbG9yO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRhYy1pbWFnZS1nYWxsZXJ5LWZ1bGwtc2NyZWVuLWNsb3NlLWljb24taG92ZXItY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNfYWN0aXZlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG5cbi8vXG4vLyAgICAgIEJBQ0tHUk9VTkRcbi8vXG5cbi5hY19pbWFnZS1nYWxsZXJ5X2Z1bGwtc2NyZWVuX2JhY2tncm91bmQge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAkYWMtaW1hZ2UtZ2FsbGVyeS1mdWxsLXNjcmVlbi16LWluZGV4IC0gMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkZGVmYXVsdC10cmFuc2l0aW9uLXNwZWVkLCBoZWlnaHQgMHMgbGluZWFyIC4zcywgdmlzaWJpbGl0eSAwcyBsaW5lYXIgLjNzO1xuICAgIGJhY2tncm91bmQ6ICRhYy1pbWFnZS1nYWxsZXJ5LWZ1bGwtc2NyZWVuLWJhY2tncm91bmQ7XG5cbiAgICAmLnNfYWN0aXZlIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDBzIGxpbmVhciwgaGVpZ2h0IDBzIGxpbmVhciwgIG9wYWNpdHkgLjJzIGVhc2UgLjJzO1xuICAgIH1cbn1cblxuIiwiXG4vKiBBQ19TX0lNQUdFLUdBTExFUlktR1JJRCAtIDFcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLy8gaXRlbXNcbiRhYy1pbWFnZS1nYWxsZXJ5LWdyaWQtaXRlbXMtbWF4LXdpZHRoOiAkbWF4LWNvbnRlbnQtMTIwMDtcbiRhYy1pbWFnZS1nYWxsZXJ5LWdyaWQtaXRlbXMtaGF2ZS1wYWRkaW5nOiB0cnVlO1xuJGFjLWltYWdlLWdhbGxlcnktZ3JpZC1pdGVtcy1jb2x1bW4tYnJlYWtwb2ludDogODAwcHg7IFxuJGFjLWltYWdlLWdhbGxlcnktZ3JpZC1pdGVtcy1jb2x1bW4taGVpZ2h0OiA0MDBweDsgXG4kYWMtaW1hZ2UtZ2FsbGVyeS1ncmlkLWl0ZW1zLWJvcmRlci1yYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXMgLyAyOyBcblxuLy8gaXRlbVxuJGFjLWltYWdlLWdhbGxlcnktZ3JpZC1pdGVtLWJhY2tncm91bmQ6ICRkZWZhdWx0LWJhY2tncm91bmQtZGFyaztcbiRhYy1pbWFnZS1nYWxsZXJ5LWdyaWQtaXRlbS1tYXJnaW4tYm90dG9tOiAyMHB4OyAvLyB1c2Ugc2FtZSBtZWFzdXJlIHVuaXQgYXMgY29sdW1uIHNwZWNzIFxuJGFjLWltYWdlLWdhbGxlcnktZ3JpZC1pdGVtLWNvbnRlbnQtcGFkZGluZzogJGRlZmF1bHQtcGFkZGluZzsgXG4kYWMtaW1hZ2UtZ2FsbGVyeS1ncmlkLWl0ZW0tY29udGVudC1hbGlnbjogJ2NjJzsgLy8gbHQsIGxjLCBsYiwgY3QsIGNjLCBjYiwgcnQsIHJjLCByYlxuJGFjLWltYWdlLWdhbGxlcnktZ3JpZC1pdGVtLWJvcmRlcjogJGRlZmF1bHQtYm9yZGVyOyAvLyBkZWZpbmVzIHRoZSBhcHBlYXJhbmNlLCBub3QgdGhlIGRpc3BsYXlcbiRhYy1pbWFnZS1nYWxsZXJ5LWdyaWQtaXRlbS1oYXMtc2hhZG93OiBmYWxzZTtcblxuLy8gaW1hZ2VcbiRhYy1pbWFnZS1nYWxsZXJ5LWdyaWQtaXRlbS1pbWFnZS1zaXplOiAnY292ZXInOyAvLyBjb250YWluIG9yIGNvdmVyLiBUaGUgSFRNTCBlbGVtZW50IGNhbm5vdCBoYXZlIGEgYV9jb3Zlcl8uLiBjbGFzcy5cbiRhYy1pbWFnZS1nYWxsZXJ5LWdyaWQtaXRlbS1pbWFnZS1pbml0aWFsLW9wYWNpdHk6IDE7XG4kYWMtaW1hZ2UtZ2FsbGVyeS1ncmlkLWl0ZW0taW1hZ2UtaG92ZXItb3BhY2l0eTogLjU7XG5cbi8vIGRlc2NyaXB0aW9uXG4kYWMtaW1hZ2UtZ2FsbGVyeS1ncmlkLWl0ZW0tZGVzY3JpcHRpb24tZW5hYmxlZDogdHJ1ZTtcbiRhYy1pbWFnZS1nYWxsZXJ5LWdyaWQtaXRlbS1kZXNjcmlwdGlvbi1jb2xvcjogJGRlZmF1bHQtdGV4dC1jb2xvci1saWdodDtcbiRhYy1pbWFnZS1nYWxsZXJ5LWdyaWQtaXRlbS1kZXNjcmlwdGlvbi13b3JkLWJyZWFrOiBmYWxzZTtcblxuQGltcG9ydCAnX19pbWFnZS1nYWxsZXJ5X2dyaWRfZ2xvYmFscyc7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbi5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjI7XG59XG5cbiBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIC5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfb3V0ZXItY29sdW1uIHtcbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRhYy1pbWFnZS1nYWxsZXJ5LWdyaWQtaXRlbXMtY29sdW1uLWhlaWdodCAvIDQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX2NvbnRhaW5lciB7XG4gICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgIC5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfb3V0ZXItY29sdW1uIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtJGFjLWltYWdlLWdhbGxlcnktZ3JpZC1pdGVtcy1jb2x1bW4taGVpZ2h0IC8gNDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiXG4vKiBBQ19TX0lNQUdFLUdBTExFUlkgLSBHTE9CQUxTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5bZGF0YS1zLXR5cGU9XCJpbWFnZS1nYWxsZXJ5LWdyaWRcIl0ge1xuICAgIC5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfY29udGFpbmVyIHtcbiAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgICAgICAgLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9vdXRlci1jb2x1bW4ge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAgICAgICAgIC5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfY29sdW1uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1heC13aWR0aDogJGFjLWltYWdlLWdhbGxlcnktZ3JpZC1pdGVtcy1tYXgtd2lkdGg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cblxuLy9cbi8vICAgICAgT1VURVIgQ09MVU1OXG4vL1xuXG4uYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX291dGVyLWNvbHVtbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAvLyBmaXJzdCBvdXRlciBjb2x1bW5cbiAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRhYy1pbWFnZS1nYWxsZXJ5LWdyaWQtaXRlbXMtY29sdW1uLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDMvNSk7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoMy81KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vZmlyc3QgaW5uZXIgY29sdW1uIG9mIGZpcnN0IG91dGVyIGNvbHVtblxuICAgICAgICAuYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX2NvbHVtbiB7XG4gICAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkYWMtaW1hZ2UtZ2FsbGVyeS1ncmlkLWl0ZW1zLWNvbHVtbi1oZWlnaHQgLyAyO1xuICAgICAgICAgICAgICAgIC5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfaXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEvMik7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSgxLzIpO1xuICAgICAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYWMtaW1hZ2UtZ2FsbGVyeS1ncmlkLWl0ZW1zLWNvbHVtbi1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGFjLWltYWdlLWdhbGxlcnktZ3JpZC1pdGVtcy1jb2x1bW4tYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICRhYy1pbWFnZS1nYWxsZXJ5LWdyaWQtaXRlbXMtY29sdW1uLWhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMS8zKTtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKDEvMyk7XG4gICAgICAgICAgICAgICAgICAgIC5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfaXRlbSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogKCRhYy1pbWFnZS1nYWxsZXJ5LWdyaWQtaXRlbXMtY29sdW1uLWhlaWdodCAvIDIpIC0gJGFjLWltYWdlLWdhbGxlcnktZ3JpZC1pdGVtLW1hcmdpbi1ib3R0b20gO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy9zZWNvbmQgY29sdW1uXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGFjLWltYWdlLWdhbGxlcnktZ3JpZC1pdGVtcy1jb2x1bW4tYnJlYWtwb2ludCAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkYWMtaW1hZ2UtZ2FsbGVyeS1ncmlkLWl0ZW1zLWNvbHVtbi1oZWlnaHQgKiAwLjc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRhYy1pbWFnZS1nYWxsZXJ5LWdyaWQtaXRlbXMtY29sdW1uLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMi8zKTtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKDIvMyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAvLyBzZWNvbmQgb3V0ZXIgY29sdW1uXG4gICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYWMtaW1hZ2UtZ2FsbGVyeS1ncmlkLWl0ZW1zLWNvbHVtbi1icmVha3BvaW50KSB7XG4gICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgyLzUpO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKDIvNSk7XG4gICAgICAgIH1cblxuICAgICAgICAuYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX2l0ZW0ge1xuICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMS8yKTtcbiAgICAgICAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSgxLzIpO1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cblxuLy9cbi8vICAgICAgQ09MVU1OXG4vL1xuXG5cbi5hY19pbWFnZS1nYWxsZXJ5X2dyaWRfY29sdW1uIHtcbiAgICBoZWlnaHQ6ICRhYy1pbWFnZS1nYWxsZXJ5LWdyaWQtaXRlbXMtY29sdW1uLWhlaWdodDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuXG5cbi8vXG4vLyAgICAgIElURU1cbi8vXG5cblxuLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbi1ib3R0b206ICRhYy1pbWFnZS1nYWxsZXJ5LWdyaWQtaXRlbS1tYXJnaW4tYm90dG9tO1xuXG4gICAgQGlmICRhYy1pbWFnZS1nYWxsZXJ5LWdyaWQtaXRlbXMtaGF2ZS1wYWRkaW5nID09IHRydWUge1xuICAgICAgICBwYWRkaW5nOiAwICRkZWZhdWx0LXBhZGRpbmc7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgQGlmICRhYy1pbWFnZS1nYWxsZXJ5LWdyaWQtaXRlbXMtaGF2ZS1wYWRkaW5nID09IHRydWUge1xuICAgICAgICBwYWRkaW5nOiAwICRkZWZhdWx0LXBhZGRpbmcgLyAyO1xuICAgIH1cbiAgICBcblxuICAgICY6aG92ZXIge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAuYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX2l0ZW1faW1hZ2Uge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogJGFjLWltYWdlLWdhbGxlcnktZ3JpZC1pdGVtLWltYWdlLWhvdmVyLW9wYWNpdHk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX2l0ZW1fY29udGVudCB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBcbn1cblxuLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9pdGVtX2NvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIC8vIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgQGlmICRhYy1pbWFnZS1nYWxsZXJ5LWdyaWQtaXRlbS1oYXMtc2hhZG93ID09IHRydWUge1xuICAgICAgICBib3gtc2hhZG93OiAkZGVmYXVsdC1ib3gtc2hhZG93O1xuICAgIH1cbiAgICBiYWNrZ3JvdW5kOiAkYWMtaW1hZ2UtZ2FsbGVyeS1ncmlkLWl0ZW0tYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAkYWMtaW1hZ2UtZ2FsbGVyeS1ncmlkLWl0ZW1zLWJvcmRlci1yYWRpdXM7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgLy8gb3B0aW9uYWxcbn1cblxuXG5cbi8vXG4vLyAgICAgIElNQUdFXG4vL1xuXG4uYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX2l0ZW1faW1hZ2UtY29udGFpbmVye1xuICAgIGhlaWdodDogMTYwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGFjLWltYWdlLWdhbGxlcnktZ3JpZC1pdGVtcy1ib3JkZXItcmFkaXVzO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIFxufVxuLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9pdGVtX2ltYWdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG9wYWNpdHk6ICRhYy1pbWFnZS1nYWxsZXJ5LWdyaWQtaXRlbS1pbWFnZS1pbml0aWFsLW9wYWNpdHk7XG4gICAgYm9yZGVyLXJhZGl1czogJGFjLWltYWdlLWdhbGxlcnktZ3JpZC1pdGVtcy1ib3JkZXItcmFkaXVzO1xuICAgIHRyYW5zaXRpb246IGFsbCAkZGVmYXVsdC10cmFuc2l0aW9uLXNwZWVkO1xuICAgIHdpbGwtY2hhbmdlOiBjb250ZW50cztcbiAgICBAaWYgJGFjLWltYWdlLWdhbGxlcnktZ3JpZC1pdGVtLWltYWdlLXNpemUgPT0gJ2NvbnRhaW4nIHtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIH1cbn1cblxuXG4vL1xuLy8gICAgICBDT05URU5UXG4vL1xuXG4uYWNfaW1hZ2UtZ2FsbGVyeV9ncmlkX2l0ZW1fY29udGVudHsgXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIHBhZGRpbmc6ICRhYy1pbWFnZS1nYWxsZXJ5LWdyaWQtaXRlbS1jb250ZW50LXBhZGRpbmc7XG59XG5cblxuXG4vL1xuLy8gICAgICBDT05URU5UIE9WRVIgSU1BR0Vcbi8vXG5cblxuLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9pdGVtX2ltYWdlLWNvbnRhaW5lciB7XG4gICAgYm9yZGVyLXJhZGl1czogJGFjLWltYWdlLWdhbGxlcnktZ3JpZC1pdGVtcy1ib3JkZXItcmFkaXVzO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7ICAgIFxufVxuLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9pdGVtX2ltYWdlIHtcblxufVxuLmFjX2ltYWdlLWdhbGxlcnlfZ3JpZF9pdGVtX2NvbnRlbnQge1xuXG4gICAgQGlmICRhYy1pbWFnZS1nYWxsZXJ5LWdyaWQtaXRlbS1kZXNjcmlwdGlvbi1lbmFibGVkID09IGZhbHNle1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIEBpZiAkYWMtaW1hZ2UtZ2FsbGVyeS1ncmlkLWl0ZW0tZGVzY3JpcHRpb24td29yZC1icmVhayA9PSB0cnVlIHtcbiAgICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICAgICAgfVxuICAgICAgICBjb2xvcjogJGFjLWltYWdlLWdhbGxlcnktZ3JpZC1pdGVtLWRlc2NyaXB0aW9uLWNvbG9yO1xuXG4gICAgICAgIEBpbmNsdWRlIGNvbnRlbnQtYWxpZ24oJGFjLWltYWdlLWdhbGxlcnktZ3JpZC1pdGVtLWNvbnRlbnQtYWxpZ24pO1xuICAgIH1cblxufVxuXG5cbiIsIlxuXG5AbWl4aW4gY29udGVudC1hbGlnbigkYWxpZ25tZW50KSB7XG4gIFxuICAgIEBpZiAkYWxpZ25tZW50ID09ICdsdCcge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgICBAZWxzZWlmICRhbGlnbm1lbnQgPT0gJ2xjJyB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG4gICAgQGVsc2VpZiAkYWxpZ25tZW50ID09ICdsYicge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG4gICAgQGVsc2VpZiAkYWxpZ25tZW50ID09ICdjdCcge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2VpZiAkYWxpZ25tZW50ID09ICdjYycge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgICBAZWxzZWlmICRhbGlnbm1lbnQgPT0gJ2NiJyB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2VpZiAkYWxpZ25tZW50ID09ICdydCcge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICAgIEBlbHNlaWYgJGFsaWdubWVudCA9PSAncmMnIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICAgIEBlbHNlaWYgJGFsaWdubWVudCA9PSAncmInIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn0iLCJcbi8qIEFDX1NfSU1BR0UtR0FMTEVSWS1TTElERVIgLSAxXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vaXRlbXNcbiRhYy1pbWFnZS1nYWxsZXJ5LWl0ZW1zLW1heC13aWR0aDogJG1heC1jb250ZW50LTEyMDA7XG4kYWMtaW1hZ2UtZ2FsbGVyeS1pdGVtcy1oYXZlLXBhZGRpbmc6IGZhbHNlO1xuJGFjLWltYWdlLWdhbGxlcnktaXRlbXMtb24tc21hbGwtdHdvLWl0ZW1zLWEtcm93OiB0cnVlO1xuXG4vLyBpdGVtXG4kYWMtaW1hZ2UtZ2FsbGVyeS1pdGVtLWJhY2tncm91bmQ6ICRicmFuZC13aGl0ZTtcbiRhYy1pbWFnZS1nYWxsZXJ5LWl0ZW0tcGFkZGluZzogMCAkZGVmYXVsdC1wYWRkaW5nIC8gMjtcbiRhYy1pbWFnZS1nYWxsZXJ5LWl0ZW0tYm9yZGVyLXJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1czsgXG4kYWMtaW1hZ2UtZ2FsbGVyeS1pdGVtLWhvdmVyLWJhY2tncm91bmQ6IHJnYmEoJGRlZmF1bHQtYmFja2dyb3VuZC1kYXJrLCAuMSk7XG4kYWMtaW1hZ2UtZ2FsbGVyeS1pdGVtLW1hcmdpbi1ib3R0b206IDIwcHg7IC8vIHVzZSBzYW1lIG1lYXN1cmUgdW5pdCBhcyBjb2x1bW4gc3BlY3MgXG4kYWMtaW1hZ2UtZ2FsbGVyeS1pdGVtLWNvbnRlbnQtcGFkZGluZzogJGRlZmF1bHQtcGFkZGluZzsgXG4kYWMtaW1hZ2UtZ2FsbGVyeS1pdGVtLWNvbnRlbnQtYWxpZ246ICdjYyc7IC8vIGx0LCBsYywgbGIsIGN0LCBjYywgY2IsIHJ0LCByYywgcmJcbiRhYy1pbWFnZS1nYWxsZXJ5LWl0ZW0tYm9yZGVyOiAkZGVmYXVsdC1ib3JkZXI7IC8vIGRlZmluZXMgdGhlIGFwcGVhcmFuY2UsIG5vdCB0aGUgZGlzcGxheVxuJGFjLWltYWdlLWdhbGxlcnktaXRlbS1oYXMtc2hhZG93OiBmYWxzZTtcblxuLy8gaW1hZ2VcbiRhYy1pbWFnZS1nYWxsZXJ5LWl0ZW0taW1hZ2Utc2l6ZTogJ2NvdmVyJzsgLy8gY29udGFpbiBvciBjb3Zlci4gVGhlIEhUTUwgZWxlbWVudCBjYW5ub3QgaGF2ZSBhIGFfY292ZXJfLi4gY2xhc3MuXG4kYWMtaW1hZ2UtZ2FsbGVyeS1pdGVtLWltYWdlLWhlaWdodDogMjAwcHg7XG4kYWMtaW1hZ2UtZ2FsbGVyeS1pdGVtLWltYWdlLWJhY2tncm91bmQ6ICRkZWZhdWx0LWJhY2tncm91bmQtZGFyaztcbiRhYy1pbWFnZS1nYWxsZXJ5LWl0ZW0taW1hZ2UtaW5pdGlhbC1vcGFjaXR5OiAxO1xuJGFjLWltYWdlLWdhbGxlcnktaXRlbS1pbWFnZS1ob3Zlci1vcGFjaXR5OiAuNTtcblxuLy8gZGVzY3JpcHRpb25cbiRhYy1pbWFnZS1nYWxsZXJ5LWl0ZW0tZGVzY3JpcHRpb24tZW5hYmxlZDogZmFsc2U7XG4kYWMtaW1hZ2UtZ2FsbGVyeS1pdGVtLWRlc2NyaXB0aW9uLWNvbG9yOiAkZGVmYXVsdC10ZXh0LWNvbG9yLWRhcms7XG4kYWMtaW1hZ2UtZ2FsbGVyeS1pdGVtLWRlc2NyaXB0aW9uLWhvdmVyLWNvbG9yOiAkZGVmYXVsdC10ZXh0LWNvbG9yLWRhcms7XG4kYWMtaW1hZ2UtZ2FsbGVyeS1pdGVtLWRlc2NyaXB0aW9uLXdvcmQtYnJlYWs6IGZhbHNlO1xuXG5AaW1wb3J0ICdfX2ltYWdlLWdhbGxlcnlfZ2xvYmFscyc7XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4iLCJcbi8qIEFDX1NfSU1BR0UtR0FMTEVSWSAtIEdMT0JBTFNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmFjX2ltYWdlLWdhbGxlcnlfY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXgtd2lkdGg6ICRhYy1pbWFnZS1nYWxsZXJ5LWl0ZW1zLW1heC13aWR0aDtcbiAgICBtYXJnaW46IDAgYXV0bztcbn1cblxuLy9cbi8vICAgICAgSVRFTVxuLy9cblxuLmFjX2ltYWdlLWdhbGxlcnlfaXRlbSB7XG4gICAgcGFkZGluZzogJGFjLWltYWdlLWdhbGxlcnktaXRlbS1wYWRkaW5nO1xuICAgIG1hcmdpbi1ib3R0b206ICRhYy1pbWFnZS1nYWxsZXJ5LWl0ZW0tbWFyZ2luLWJvdHRvbTtcbiAgICBAaWYgJGFjLWltYWdlLWdhbGxlcnktaXRlbXMtb24tc21hbGwtdHdvLWl0ZW1zLWEtcm93ID09IHRydWUge1xuICAgICAgICBmbGV4OiAwIDEgcGVyY2VudGFnZSgxLzIpO1xuICAgICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoMS8yKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgZmxleDogMCAxIHBlcmNlbnRhZ2UoMSk7XG4gICAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSgxKTtcbiAgICB9XG59XG5hLmFjX2ltYWdlLWdhbGxlcnlfaXRlbSB7IFxuICAgICY6aG92ZXIge1xuXG4gICAgICAgIC5hY19pbWFnZS1nYWxsZXJ5X2l0ZW1fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRhYy1pbWFnZS1nYWxsZXJ5LWl0ZW0taG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgICAgICAuYWNfaW1hZ2UtZ2FsbGVyeV9pdGVtX2ltYWdlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6ICRhYy1pbWFnZS1nYWxsZXJ5LWl0ZW0taW1hZ2UtaG92ZXItb3BhY2l0eTtcbiAgICAgICAgfVxuICAgICAgICAuYWNfaW1hZ2UtZ2FsbGVyeV9pdGVtX2NvbnRlbnRfaW5uZXIgeyBcbiAgICAgICAgICAgIGNvbG9yOiAkYWMtaW1hZ2UtZ2FsbGVyeS1pdGVtLWRlc2NyaXB0aW9uLWhvdmVyLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYWNfaW1hZ2UtZ2FsbGVyeV9pdGVtX2NvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6ICRhYy1pbWFnZS1nYWxsZXJ5LWl0ZW0tYmFja2dyb3VuZDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYWxsICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgYm9yZGVyLXJhZGl1czogJGFjLWltYWdlLWdhbGxlcnktaXRlbS1ib3JkZXItcmFkaXVzO1xufVxuXG5cbi8vXG4vLyAgICAgIElNQUdFXG4vL1xuXG4uYWNfaW1hZ2UtZ2FsbGVyeV9pdGVtX2ltYWdlX2NvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJGFjLWltYWdlLWdhbGxlcnktaXRlbS1pbWFnZS1oZWlnaHQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBAaWYgJGFjLWltYWdlLWdhbGxlcnktaXRlbS1pbWFnZS1iYWNrZ3JvdW5kICE9IG5vbmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYWMtaW1hZ2UtZ2FsbGVyeS1pdGVtLWltYWdlLWJhY2tncm91bmQ7XG4gICAgfVxuICAgIEBpZiAkYWMtaW1hZ2UtZ2FsbGVyeS1pdGVtLWJvcmRlci1yYWRpdXMgIT0gMCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRhYy1pbWFnZS1nYWxsZXJ5LWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICB9XG59XG4uYWNfaW1hZ2UtZ2FsbGVyeV9pdGVtX2ltYWdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9wYWNpdHk6ICRhYy1pbWFnZS1nYWxsZXJ5LWl0ZW0taW1hZ2UtaW5pdGlhbC1vcGFjaXR5O1xuICAgIHRyYW5zaXRpb246IGFsbCAkZGVmYXVsdC10cmFuc2l0aW9uLXNwZWVkO1xuICAgIGJvcmRlci1yYWRpdXM6ICRhYy1pbWFnZS1nYWxsZXJ5LWl0ZW0tYm9yZGVyLXJhZGl1cztcblxuICAgIEBpZiAkYWMtaW1hZ2UtZ2FsbGVyeS1pdGVtLWltYWdlLXNpemUgPT0gJ2NvbnRhaW4ne1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXIgIWltcG9ydGFudDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICB9XG59XG5cblxuLy9cbi8vICAgICAgQ09OVEVOVFxuLy9cblxuLmFjX2ltYWdlLWdhbGxlcnlfaXRlbV9jb250ZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogJGRlZmF1bHQtcGFkZGluZztcbiAgICBib3JkZXItdG9wOiAkZGVmYXVsdC1ib3JkZXI7XG4gICAgQGlmICRhYy1pbWFnZS1nYWxsZXJ5LWl0ZW0tZGVzY3JpcHRpb24tZW5hYmxlZCA9PSBmYWxzZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuLmFjX2ltYWdlLWdhbGxlcnlfaXRlbV9jb250ZW50X2lubmVyIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgZm9udC1zaXplOiA5MCU7XG4gICAgY29sb3I6ICRhYy1pbWFnZS1nYWxsZXJ5LWl0ZW0tZGVzY3JpcHRpb24tY29sb3I7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZm9udC1zaXplOiAxMDAlO1xuICAgIH1cbn1cbiIsIlxuLyogQ1RBXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cblxuW2RhdGEtcy10eXBlPVwibWFwc1wiXSB7XG4gICAgXG4gICAgLmFjX21hcHNfY29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogNDAwcHg7XG5cbiAgICB9XG4gICAgXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cblxufSAvLyBlbmQgb2Ygc2NvcGVcblxuXG4iLCJcbi8qIEFDX1NfTkVXUyAtIDFcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuW2RhdGEtcy10eXBlPVwibmV3c1wiXSB7XG5cbiAgICAvLyBpdGVtc1xuICAgICRpdGVtcy1zbGlkZXI6IGZhbHNlO1xuICAgICRpdGVtcy1zbGlkZXItZm91Yy1oZWlnaHQ6IDIwMHB4OyAvLyB3aGF0IG5lZWRzIHRvIGJlIHRoZSBmbGFzaC1vZi11bndhbnRlZC1jb250ZW50IGhlaWdodCBiZWZvcmUgc2xpZGVyIGhhcyBsYW9kZWQuXG5cbiAgICAkaXRlbXMtYW1vdW50OiAwOyAvLyAwIGNvdW50cyBmb3IgdW5kZWZpbmVkLCBpZiBhc3NpZ25lZCB0aGUgY29kZSB3aWxsIGJlIG1vcmUgb3B0aW1pc2VkXG4gICAgJGl0ZW1zLWNvbnRlbnQtb3Zlci1pbWFnZTogZmFsc2U7XG4gICAgJGl0ZW1zLW1heC13aWR0aDogJG1heC1jb250ZW50LTEwMDA7XG4gICAgJGl0ZW1zLWhhdmUtcGFkZGluZzogdHJ1ZTtcbiAgICAkaXRlbXMtaGF2ZS1ib3JkZXItZGl2aWRlcnM6IHRydWU7XG4gICAgJGl0ZW1zLWhhdmUtYm9yZGVyLWJlbG93OiB0cnVlO1xuICAgICRpdGVtcy1oaWRlLWJvcmRlci1iZWxvdy1vbi1sYXN0LXJvdzogZmFsc2U7XG4gICAgJGl0ZW1zLWJvcmRlci1yYWRpdXM6IDA7IFxuICAgICRpdGVtcy1maXJzdC1pdGVtLWZ1bGwtd2lkdGg6IGZhbHNlO1xuICAgICRpdGVtcy1maXJzdC1pdGVtLWZ1bGwtd2lkdGgtaGVpZ2h0LW11bHRpcGxpZXI6IDEuNTtcbiAgICAkaXRlbXMtb24tc21hbGwtdHdvLWl0ZW1zLWEtcm93OiB0cnVlO1xuICAgICRpdGVtLWJhY2tncm91bmQ6IG5vbmU7XG4gICAgJGl0ZW0tYmFja2dyb3VuZC1ob3Zlcjogbm9uZTtcblxuICAgIC8vIGNvbHVtbnNcbiAgICAkaXRlbXMtY29sdW1ucy1lbmFibGVkOiBmYWxzZTtcbiAgICAkaXRlbXMtY29sdW1ucy1icmVha3BvaW50OiA4MDBweDsgXG4gICAgJGl0ZW1zLWNvbHVtbnMtaGVpZ2h0OiA0MDBweDsgXG4gICAgJGl0ZW1zLWNvbHVtbnMtaGlkZS1sYXN0LW9uZS1iZWxvdy1icmVha3BvaW50OiBmYWxzZTtcbiAgICAkaXRlbXMtY29sdW1ucy1pY29uLWltYWdlLWNvbWJpbmF0aW9uOiB0cnVlO1xuXG4gICAgLy8gaXRlbVxuICAgICRpdGVtLW1hcmdpbi1ib3R0b206IDEuNGVtOyAvLyAxLjRlbVxuICAgICRpdGVtLWJvcmRlcjogJGRlZmF1bHQtYm9yZGVyOyAvLyBkZWZpbmVzIHRoZSBhcHBlYXJhbmNlLCBub3QgdGhlIGRpc3BsYXlcbiAgICAkaXRlbS1zaGFkb3ctZW5hYmxlZDogZmFsc2U7XG5cbiAgICAvLyBpbWFnZVxuICAgICRpdGVtLWltYWdlLWNvbnRhaW5lci1lbmFibGVkOiB0cnVlO1xuICAgICRpdGVtLWltYWdlLWVuYWJsZWQ6IHRydWU7XG4gICAgJGl0ZW0taW1hZ2UtaGVpZ2h0OiAxNjBweDtcbiAgICAkaXRlbS1pbWFnZS1pbml0aWFsLWZhZGU6IDE7XG4gICAgJGl0ZW0taW1hZ2UtaG92ZXItZmFkZTogLjg7XG4gICAgJGl0ZW0taW1hZ2UtZ3JhZGllbnQtYmVmb3JlOiB0cnVlOyAvLyB3aGVuIGl0ZW0tY29udGVudC1vdmVyLWltYWdlXG4gICAgJGl0ZW0taW1hZ2UtZ3JhZGllbnQtY29sb3I6ICRkZWZhdWx0LWJhY2tncm91bmQtZGFyaztcbiAgICAkaXRlbS1pbWFnZS1ncmFkaWVudC1iZWZvcmUtcG9zaXRpb246ICdib3R0b20nOyAvLyB0b3Agb3IgYm90dG9tXG4gICAgJGl0ZW0taW1hZ2UtYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtdGV4dC1jb2xvcjtcbiAgICAkaXRlbS1pbWFnZS1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiAkZGVmYXVsdC10ZXh0LWNvbG9yO1xuICAgICRpdGVtLWltYWdlLWJvcmRlci1yYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXM7IFxuXG4gICAgLy8gY29udGVudFxuICAgICRpdGVtLWNvbnRlbnQtcGFkZGluZzogMDsgLy8gJGRlZmF1bHQtcGFkZGluZzsgXG4gICAgJGl0ZW0tY29udGVudC1iYWNrZ3JvdW5kOiBub25lO1xuICAgICRpdGVtLWNvbnRlbnQtYmFja2dyb3VuZC1ob3Zlcjogbm9uZTtcbiAgICAkaXRlbS1jb250ZW50LWFsaWduOiAnbGInOyAvLyBsdCwgbGMsIGxiLCBjdCwgY2MsIGNiLCBydCwgcmMsIHJiIHx8ICB3aGVuIGl0ZW0tY29udGVudC1vdmVyLWltYWdlXG4gICAgJGl0ZW0tY29udGVudC1jb3B5LXBhZGRpbmc6ICRkZWZhdWx0LXBhZGRpbmcgMCA7IFxuICAgICRpdGVtLWNvbnRlbnQtY29weS1hbGlnbjogJ2xlZnQnOyAvLyBsZWZ0IG9yIGNlbnRlclxuXG4gICAgJGl0ZW0tY29udGVudC1pY29uLWVuYWJsZWQ6IGZhbHNlO1xuICAgICRpdGVtLWNvbnRlbnQtaWNvbi1jZW50ZXJlZDogdHJ1ZTtcbiAgICAkaXRlbS1jb250ZW50LWljb24tY29sb3I6IHJnYmEoJGRlZmF1bHQtaWNvbi1jb2xvciwgMSk7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLWhvdmVyLWNvbG9yOiByZ2JhKCRkZWZhdWx0LWljb24tY29sb3ItbGlnaHQsIC40KTtcbiAgICAkaXRlbS1jb250ZW50LWljb24tc2l6ZTogODBweDtcbiAgICAkaXRlbS1jb250ZW50LWljb24tcGFkZGluZzogMjBweDtcbiAgICAkaXRlbS1jb250ZW50LWljb24tbWFyZ2luOiAwIDAgMjBweCAwO1xuICAgICRpdGVtLWNvbnRlbnQtaWNvbi1iYWNrZ3JvdW5kOiByZWQ7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLWJhY2tncm91bmQtaG92ZXI6IGJsdWU7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLXJvdW5kOiB0cnVlO1xuICAgIFxuICAgICRpdGVtLWNvbnRlbnQtdGl0bGUtZW5hYmxlZDogdHJ1ZTsgXG4gICAgJGl0ZW0tY29udGVudC10aXRsZS1jb2xvcjogJGRlZmF1bHQtdGV4dC1jb2xvcjtcbiAgICAkaXRlbS1jb250ZW50LXRpdGxlLWhvdmVyLWNvbG9yOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3IsIC42KTtcblxuICAgICRpdGVtLWNvbnRlbnQtY29weS1hYm92ZS1lbmFibGVkOiB0cnVlOyAgICBcbiAgICAkaXRlbS1jb250ZW50LWNvcHktYWJvdmUtY29sb3I6IHJnYmEoJGRlZmF1bHQtdGV4dC1jb2xvciwgLjYpO1xuICAgICRpdGVtLWNvbnRlbnQtY29weS1hYm92ZS1ob3Zlci1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLCAuNCk7XG5cbiAgICAkaXRlbS1jb250ZW50LWNvcHktYmVsb3ctZW5hYmxlZDogdHJ1ZTsgICAgXG4gICAgJGl0ZW0tY29udGVudC1jb3B5LWJlbG93LWNvbG9yOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3IsIC42KTtcbiAgICAkaXRlbS1jb250ZW50LWNvcHktYmVsb3ctaG92ZXItY29sb3I6IHJnYmEoJGRlZmF1bHQtdGV4dC1jb2xvciwgLjQpO1xuXG4gICAgLy8gaWNvblxuICAgICRpdGVtLXNob3ctaWNvbjogdHJ1ZTtcbiAgICAkaXRlbS1pY29uLWNvbG9yOiByZ2JhKCRkZWZhdWx0LWljb24tY29sb3IsIC42KTtcbiAgICAkaXRlbS1pY29uLWhvdmVyLWNvbG9yOiByZ2JhKCRkZWZhdWx0LWljb24tY29sb3IsIDEpO1xuICAgICRpdGVtLWljb24tc2l6ZTogMS4yZW07XG4gICAgJGl0ZW0taWNvbi1wb3NpdGlvbjogJ3JiJzsgLy8gbHQsIGxiLCBydCwgcmJcbiAgICAkaXRlbS1pY29uLWluc2V0LWxlZnQtcmlnaHQ6IDA7IC8vICRkZWZhdWx0LXBhZGRpbmc7IFxuICAgICRpdGVtLWljb24taW5zZXQtdG9wLWJvdHRvbTogJGRlZmF1bHQtcGFkZGluZzsgXG4gICAgXG5cbiAgICAvLyBsaXN0IHN0eWxlIG9uIHNtYWxsIHwgaW1hZ2UgbGVmdCBhbmQgY29udGVudCByaWdodCB8IGFsbCBiYWNrZ3JvdW5kIHdpbGwgYmUgcmVzZXQgfCBjb250ZW50IGljb24gaXMgc2V0IGFic29sdXRlXG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1vbi1zbWFsbDogdHJ1ZTsgXG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1pbWFnZS13aWR0aDogODBweDtcbiAgICAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtaWNvbi1zaXplOiA2MHB4OyBcbiAgICAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtaWNvbi1wYWRkaW5nOiAxNHB4OyBcbiAgICAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtaWNvbi1iYWNrZ3JvdW5kOiAkZGVmYXVsdC1iYWNrZ3JvdW5kLWxpZ2h0O1xuICAgICRpdGVtLWxpc3Qtc3R5bGUtY29udGVudC1pY29uLWNvbG9yOiAkZGVmYXVsdC1pY29uLWNvbG9yO1xuICAgICRpdGVtLWxpc3Qtc3R5bGUtY29udGVudC10aXRsZS1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLCAxKTtcbiAgICAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtY29weS1hYm92ZS1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLCAxKTtcbiAgICAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtY29weS1iZWxvdy1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLCAxKTtcblxuXG4gICAgQGltcG9ydCAnLi4vYWNfc19faXRlbXMtZ2xvYmFscy9fX2l0ZW1fZ2xvYmFscyc7XG4gICAgXG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8vXG4gICAgLy8gICAgICBBUFBFQVJBTkNFXG4gICAgLy9cbiAgICAuYWNfaXRlbV9jb250ZW50X2NvcHkge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHsgXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5hY19pdGVtX2NvbnRlbnRfY29weS1hYm92ZSB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtc2l6ZTogODUlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgIH1cbiAgICAuYWNfaXRlbV9jb250ZW50X3RpdGxlIHtcbiAgICAgICAgcGFkZGluZzogMTBweCAwO1xuICAgICAgICBAaW5jbHVkZSBmb250LWhlYWRpbmdzLWJvbGQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTEwJTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0tcG9ydHJhaXQpIHsgXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDBweDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkZGVmYXVsdC1wYWRkaW5nICogMjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICB9XG4gICAgLmFjX2l0ZW1fY29udGVudF9jb3B5LWJlbG93IHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC1zaXplOiA4NSU7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0KSB7IFxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAkZGVmYXVsdC1wYWRkaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG5cblxuICAgIC8vXG4gICAgLy8gICAgICBJVEVNXG4gICAgLy9cblxuICAgIC5hY19pdGVtIHtcbiAgICAgICAgXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIFxuICAgICAgICAmOmZpcnN0LWNoaWxkIHsgICAgICAgIFxuICAgICAgICAgICAgXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCkge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb250ZW50LW92ZXItaW1hZ2UoKTtcblxuICAgICAgICAgICAgICAgIC8vIHRoaXMgbmVlZHMgYSBkeW5hbWljIGZpeFxuICAgICAgICAgICAgICAgIGhlaWdodDogJGl0ZW0taW1hZ2UtaGVpZ2h0ICogMjtcblxuICAgICAgICAgICAgICAgIC5hY19pdGVtX2NvbnRlbnRfY29weSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRkZWZhdWx0LXBhZGRpbmc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5hY19pdGVtX2NvbnRlbnRfY29weS1hYm92ZSB7IFxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLWxpZ2h0LCAuNyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5hY19pdGVtX2NvbnRlbnRfdGl0bGUge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLWxpZ2h0LCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmFjX2l0ZW1fY29udGVudF9jb3B5LWJlbG93IHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHJnYmEoJGRlZmF1bHQtdGV4dC1jb2xvci1saWdodCwgLjcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuYWNfaXRlbV9pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRkZWZhdWx0LXBhZGRpbmc7XG4gICAgICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiAkZGVmYXVsdC1pY29uLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDsgXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgfSAgIFxuICAgICAgICBcbiAgICB9ICBcblxuXG4gICAgLy9cbiAgICAvLyAgICAgIE9WRVJSSURFIFdJRFRIIEFUVFJJQlVURVNcbiAgICAvL1xuXG5cbiAgICAmW2RhdGEtcy1hbW91bnQ9XCIyXCJdIHtcbiAgICAgICAgLmFjX2l0ZW0geyBcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaXJzdCgyKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEqLjQpO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSgxKi40KTtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgxKXtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMSouNik7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSgxKi42KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJltkYXRhLXMtYW1vdW50PVwiM1wiXSB7XG4gICAgICAgIC5hY19pdGVtIHsgXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgQGluY2x1ZGUgZmlyc3QoMykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCBvbmx5KSB7XG4gICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpe1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgxKTtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKDEpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICRpdGVtLWltYWdlLWhlaWdodCAqIDEuNTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMSouMyk7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKDEqLjMpO1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpe1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgxKi40KTtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKDEqLjQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmW2RhdGEtcy1hbW91bnQ9XCI0XCJdIHtcbiAgICAgICAgLmFjX2l0ZW0geyBcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaXJzdCg0KSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgxKi4yKTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoMSouMik7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMSl7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEqLjMpO1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoMSouMyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cbn0gLy8gZW5kIHNjb3BlIiwiXG4vKiBJVEVNICBHTE9CQUxTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbkBpbXBvcnQgJ2l0ZW1fZ2xvYmFsX2NvbnRhaW5lcic7XG5AaW1wb3J0ICdpdGVtX2dsb2JhbF9pdGVtJztcbkBpbXBvcnQgJ2l0ZW1fZ2xvYmFsX2l0ZW0taG92ZXItc3RhdGVzJztcbkBpbXBvcnQgJ2l0ZW1fZ2xvYmFsX2xpc3Qtc3R5bGUtc21hbGwnO1xuQGltcG9ydCAnaXRlbV9nbG9iYWxfYm9yZGVyLXJlc3BvbnNpdmVuZXNzJztcbkBpbXBvcnQgJ2l0ZW1fZ2xvYmFsX2ltYWdlJztcbkBpbXBvcnQgJ2l0ZW1fZ2xvYmFsX2ljb24nO1xuQGltcG9ydCAnaXRlbV9nbG9iYWxfY29udGVudCc7XG5AaW1wb3J0ICdpdGVtX2dsb2JhbF9jb250ZW50LW92ZXItaW1hZ2UnO1xuXG5AaW1wb3J0ICdpdGVtX2dsb2JhbF9zbGlkZXInO1xuQGltcG9ydCAnaXRlbV9nbG9iYWxfY29sdW1ucyc7XG4iLCIvL1xuLy8gICAgICBDT05UQUlORVJcbi8vXG5cbi5hY19jb250YWluZXIge1xuICAgIEBpZiAkaXRlbXMtbWF4LXdpZHRoICE9IDEwMCUge1xuICAgICAgICBtYXgtd2lkdGg6ICRpdGVtcy1tYXgtd2lkdGg7XG4gICAgfVxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIG1hcmdpbjogMmVtIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICBAaWYgJGl0ZW1zLWhhdmUtYm9yZGVyLWRpdmlkZXJzID09IGZhbHNlIGFuZCAkaXRlbXMtaGF2ZS1wYWRkaW5nID09IHRydWUge1xuICAgICAgICBwYWRkaW5nOiAwICRkZWZhdWx0LXBhZGRpbmcgLyAyO1xuICAgIH1cbn0iLCJcbi8vXG4vLyAgICAgIElURU1cbi8vXG4uYWNfaXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLy8gZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICBAaWYgJGl0ZW1zLW9uLXNtYWxsLXR3by1pdGVtcy1hLXJvdyA9PSB0cnVlIGFuZCAkaXRlbS1saXN0LXN0eWxlLW9uLXNtYWxsID09IGZhbHNlIHtcbiAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEvMik7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoMS8yKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgQGlmICRpdGVtLW1hcmdpbi1ib3R0b20gIT0gMCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRpdGVtLW1hcmdpbi1ib3R0b207XG4gICAgfVxuXG4gICAgQGlmICRpdGVtcy1oYXZlLXBhZGRpbmcgPT0gdHJ1ZSB7XG4gICAgICAgIHBhZGRpbmc6IDAgJGRlZmF1bHQtcGFkZGluZztcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICBAaWYgJGl0ZW1zLWhhdmUtYm9yZGVyLWRpdmlkZXJzID09IHRydWUge1xuICAgICAgICBAaWYgJGl0ZW1zLWhhdmUtcGFkZGluZyA9PSB0cnVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJGRlZmF1bHQtcGFkZGluZztcbiAgICAgICAgfVxuICAgICAgICBib3JkZXItbGVmdDogJGl0ZW0tYm9yZGVyO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAaWYgJGl0ZW1zLWhhdmUtcGFkZGluZyA9PSB0cnVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJGRlZmF1bHQtcGFkZGluZyAvIDI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGl0ZW1zLWZpcnN0LWl0ZW0tZnVsbC13aWR0aCA9PSB0cnVlIHtcbiAgICAgICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAuYWNfaXRlbV9pbWFnZS1jb250YWluZXIge1xuICAgICAgICAgICAgICAgIEBpZiAkaXRlbS1saXN0LXN0eWxlLW9uLXNtYWxsID09IHRydWUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkaXRlbS1pbWFnZS1oZWlnaHQgKiAkaXRlbXMtZmlyc3QtaXRlbS1mdWxsLXdpZHRoLWhlaWdodC1tdWx0aXBsaWVyOyAgIFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJGl0ZW0taW1hZ2UtaGVpZ2h0ICogJGl0ZW1zLWZpcnN0LWl0ZW0tZnVsbC13aWR0aC1oZWlnaHQtbXVsdGlwbGllcjsgICBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5hY19pdGVtX2NvbnRhaW5lciB7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNpdGlvbjogYWxsICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgQGlmICRpdGVtLXNoYWRvdy1lbmFibGVkID09IHRydWUge1xuICAgICAgICBib3gtc2hhZG93OiAkZGVmYXVsdC1ib3gtc2hhZG93O1xuICAgIH1cbiAgICBAaWYgJGl0ZW1zLWhhdmUtYm9yZGVyLWJlbG93ID09IHRydWUge1xuICAgICAgICBib3JkZXItYm90dG9tOiAkaXRlbS1ib3JkZXI7XG4gICAgfVxuICAgIEBpZiAkaXRlbS1iYWNrZ3JvdW5kICE9IG5vbmUgb3IgJGl0ZW0tYmFja2dyb3VuZCAhPSB0cmFuc3BhcmVudCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRpdGVtLWJhY2tncm91bmQ7XG4gICAgfVxuICAgIEBpZiAkaXRlbXMtYm9yZGVyLXJhZGl1cyAhPSAwIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGl0ZW1zLWJvcmRlci1yYWRpdXM7XG4gICAgfVxufVxuIiwiXG4vL1xuLy8gICAgICBJVEVNIEhPVkVSIFNUQVRFU1xuLy9cblxuXG5hLmFjX2l0ZW0ge1xuICAgICY6aG92ZXIge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICBAaWYgJGl0ZW0taW1hZ2UtZW5hYmxlZCA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICAuYWNfaXRlbV9pbWFnZSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6ICRpdGVtLWltYWdlLWhvdmVyLWZhZGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICAkaXRlbS1pbWFnZS1jb250YWluZXItZW5hYmxlZCA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICAuYWNfaXRlbV9pbWFnZS1jb250YWluZXJ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRpdGVtLWltYWdlLWJhY2tncm91bmQtY29sb3ItaG92ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmFjX2l0ZW1fY29udGVudCB7XG4gICAgICAgICAgICAgICAgQGlmICRpdGVtLWNvbnRlbnQtYmFja2dyb3VuZC1ob3ZlciAhPSBub25lIG9yICRpdGVtLWNvbnRlbnQtYmFja2dyb3VuZC1ob3ZlciAhPSAwIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGl0ZW0tY29udGVudC1iYWNrZ3JvdW5kLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAkaXRlbS1jb250ZW50LWljb24tZW5hYmxlZCA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICAuYWNfaXRlbV9jb250ZW50X2ljb24ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkaXRlbS1jb250ZW50LWljb24tYmFja2dyb3VuZC1ob3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAkc3ZnLWljb24tc2V0LXR5cGUgPT0gJ2ZpbGwnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiAkaXRlbS1jb250ZW50LWljb24taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlaWYgJHN2Zy1pY29uLXNldC10eXBlID09ICdzdHJva2UnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U6ICRpdGVtLWNvbnRlbnQtaWNvbi1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAkaXRlbS1jb250ZW50LXRpdGxlLWVuYWJsZWQgPT0gdHJ1ZSB7XG4gICAgICAgICAgICAgICAgLmFjX2l0ZW1fY29udGVudF90aXRsZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkaXRlbS1jb250ZW50LXRpdGxlLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAkaXRlbS1jb250ZW50LWNvcHktYWJvdmUtZW5hYmxlZCA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICAuYWNfaXRlbV9jb250ZW50X2NvcHktYWJvdmUge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGl0ZW0tY29udGVudC1jb3B5LWFib3ZlLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAkaXRlbS1jb250ZW50LWNvcHktYmVsb3ctZW5hYmxlZCA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICAuYWNfaXRlbV9jb250ZW50X2NvcHktYmVsb3cge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGl0ZW0tY29udGVudC1jb3B5LWJlbG93LWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAkaXRlbS1jb250ZW50LWljb24tZW5hYmxlZCA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICAuYWNfaXRlbV9pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICRpdGVtLWljb24taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IFxufSIsIlxuLy9cbi8vICAgICAgTElTVCBTVFlMRSBTTUFMTFxuLy9cblxuXG4uYWNfaXRlbSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgIEBpZiAkaXRlbS1saXN0LXN0eWxlLW9uLXNtYWxsID09IHRydWUgYW5kICRpdGVtcy1zbGlkZXIgPT0gZmFsc2Uge1xuXG4gICAgICAgICAgICBAaWYgJGl0ZW1zLWNvbnRlbnQtb3Zlci1pbWFnZSA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmFjX2l0ZW1fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAvL21pbi1oZWlnaHQ6ICRpdGVtLWxpc3Qtc3R5bGUtaW1hZ2Utd2lkdGggKyAkZGVmYXVsdC1wYWRkaW5nO1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuYWNfaXRlbV9pbWFnZS1jb250YWluZXJ7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRpdGVtLWxpc3Qtc3R5bGUtaW1hZ2Utd2lkdGg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkaXRlbS1saXN0LXN0eWxlLWltYWdlLXdpZHRoO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5hY19pdGVtX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAkaXRlbS1saXN0LXN0eWxlLWltYWdlLXdpZHRoICsgJGRlZmF1bHQtcGFkZGluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAkaXRlbS1jb250ZW50LWljb24tZW5hYmxlZCA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICAuYWNfaXRlbV9jb250ZW50X2ljb24ge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LWljb24tYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICRpdGVtLWxpc3Qtc3R5bGUtY29udGVudC1pY29uLXNpemU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LWljb24tc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LWljb24tcGFkZGluZztcbiAgICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtaWNvbi1zaXplIC0gKCRpdGVtLWxpc3Qtc3R5bGUtY29udGVudC1pY29uLXBhZGRpbmcgKiAyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LWljb24tc2l6ZSAtICgkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtaWNvbi1wYWRkaW5nICogMik7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgJHN2Zy1pY29uLXNldC10eXBlID09ICdmaWxsJyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LWljb24tY29sb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlaWYgJHN2Zy1pY29uLXNldC10eXBlID09ICdzdHJva2UnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U6ICRpdGVtLWxpc3Qtc3R5bGUtY29udGVudC1pY29uLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmFjX2l0ZW1fY29udGVudF9jb3B5IHtcbiAgICAgICAgICAgICAgICBAaWYgJGl0ZW0taW1hZ2UtZW5hYmxlZCA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgJGRlZmF1bHQtcGFkZGluZyArICRpdGVtLWxpc3Qtc3R5bGUtaW1hZ2Utd2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIC8vbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gKCN7JGRlZmF1bHQtcGFkZGluZ30gKyAjeyRpdGVtLWxpc3Qtc3R5bGUtaW1hZ2Utd2lkdGh9KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRkZWZhdWx0LXBhZGRpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgJGl0ZW0tY29udGVudC10aXRsZS1lbmFibGVkID09IHRydWUge1xuICAgICAgICAgICAgICAgIC5hY19pdGVtX2NvbnRlbnRfdGl0bGUge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LXRpdGxlLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAkaXRlbS1jb250ZW50LWNvcHktYWJvdmUtZW5hYmxlZCA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICAuYWNfaXRlbV9jb250ZW50X2NvcHktYWJvdmUge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LWNvcHktYWJvdmUtY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICRpdGVtLWNvbnRlbnQtY29weS1iZWxvdy1lbmFibGVkID09IHRydWUge1xuICAgICAgICAgICAgICAgIC5hY19pdGVtX2NvbnRlbnRfY29weS1iZWxvdyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtY29weS1iZWxvdy1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBbZGF0YS1ib3JkZXItYm90dG9tXSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJGl0ZW0tYm9yZGVyICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLy9cbi8vICAgICAgSU1BR0Vcbi8vXG5cbi5hY19pdGVtX2ltYWdlLWNvbnRhaW5lcntcbiAgICBAaWYgJGl0ZW0taW1hZ2UtY29udGFpbmVyLWVuYWJsZWQgPT0gdHJ1ZXtcbiAgICAgICAgaGVpZ2h0OiAkaXRlbS1pbWFnZS1oZWlnaHQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAkZGVmYXVsdC10cmFuc2l0aW9uLXNwZWVkO1xuICAgICAgICBAaWYgJGl0ZW0taW1hZ2UtYmFja2dyb3VuZC1jb2xvciAhPSBub25lIG9yICRpdGVtLWltYWdlLWJhY2tncm91bmQtY29sb3IgIT0gMCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkaXRlbS1pbWFnZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgIEBpZiAkaXRlbS1pbWFnZS1ib3JkZXItcmFkaXVzICE9IDAge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGl0ZW0taW1hZ2UtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbi5hY19pdGVtX2ltYWdlIHtcbiAgICBAaWYgJGl0ZW0taW1hZ2UtZW5hYmxlZCA9PSB0cnVlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIG9wYWNpdHk6ICRpdGVtLWltYWdlLWluaXRpYWwtZmFkZTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgICAgIHdpbGwtY2hhbmdlOiBjb250ZW50cztcbiAgICAgICAgQGlmICRpdGVtLWltYWdlLWJvcmRlci1yYWRpdXMgIT0gMCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkaXRlbS1pbWFnZS1ib3JkZXItcmFkaXVzO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuIiwiXG4vL1xuLy8gICAgICBJQ09OIC8vIGUuZy4gYW4gYXJyb3dcbi8vXG5cbi5hY19pdGVtX2ljb24ge1xuICAgIEBpZiAkaXRlbS1zaG93LWljb24gPT0gdHJ1ZSB7XG4gICAgICAgIFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIHdpZHRoOiAkaXRlbS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJGl0ZW0taWNvbi1zaXplO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB3aWR0aDogJGl0ZW0taWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkaXRlbS1pY29uLXNpemU7XG4gICAgICAgICAgICBmaWxsOiAkaXRlbS1pY29uLWNvbG9yO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogZmlsbCAkZGVmYXVsdC10cmFuc2l0aW9uLXNwZWVkO1xuICAgICAgICB9XG4gICAgICAgIEBpZiAkaXRlbS1pY29uLXBvc2l0aW9uID09ICdydCcge1xuICAgICAgICAgICAgcmlnaHQ6ICRpdGVtLWljb24taW5zZXQtbGVmdC1yaWdodDtcbiAgICAgICAgICAgIHRvcDogJGl0ZW0taWNvbi1pbnNldC10b3AtYm90dG9tO1xuICAgICAgICB9XG4gICAgICAgIEBpZiAkaXRlbS1pY29uLXBvc2l0aW9uID09ICdyYicge1xuICAgICAgICAgICAgcmlnaHQ6ICRpdGVtLWljb24taW5zZXQtbGVmdC1yaWdodDtcbiAgICAgICAgICAgIGJvdHRvbTogJGl0ZW0taWNvbi1pbnNldC10b3AtYm90dG9tO1xuICAgICAgICB9XG4gICAgICAgIEBpZiAkaXRlbS1pY29uLXBvc2l0aW9uID09ICdsYicge1xuICAgICAgICAgICAgbGVmdDogJGl0ZW0taWNvbi1pbnNldC1sZWZ0LXJpZ2h0O1xuICAgICAgICAgICAgYm90dG9tOiAkaXRlbS1pY29uLWluc2V0LXRvcC1ib3R0b207XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRpdGVtLWljb24tcG9zaXRpb24gPT0gJ2x0JyB7XG4gICAgICAgICAgICBsZWZ0OiAkaXRlbS1pY29uLWluc2V0LWxlZnQtcmlnaHQ7XG4gICAgICAgICAgICB0b3A6ICRpdGVtLWljb24taW5zZXQtdG9wLWJvdHRvbTtcbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBcbn1cbiIsIi8vXG4vLyAgICAgIENPTlRFTlRcbi8vXG5cbi5hY19pdGVtX2NvbnRlbnR7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIHBhZGRpbmc6ICRpdGVtLWNvbnRlbnQtcGFkZGluZztcbiAgICB0cmFuc2l0aW9uOiBhbGwgJGRlZmF1bHQtdHJhbnNpdGlvbi1zcGVlZDtcbiAgICBAaWYgJGl0ZW0tY29udGVudC1iYWNrZ3JvdW5kICE9IG5vbmUgb3IgJGl0ZW0tY29udGVudC1iYWNrZ3JvdW5kICE9IHRyYW5zcGFyZW50IHtcbiAgICAgICAgYmFja2dyb3VuZDogJGl0ZW0tY29udGVudC1iYWNrZ3JvdW5kO1xuICAgIH1cbn1cbi5hY19pdGVtX2NvbnRlbnRfY29weSB7XG4gICAgcGFkZGluZzogJGl0ZW0tY29udGVudC1jb3B5LXBhZGRpbmc7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYWxsICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgQGlmICRpdGVtLWNvbnRlbnQtY29weS1hbGlnbiA9PSAnY2VudGVyJyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAqIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgfVxufVxuXG5AaWYgICRpdGVtLWNvbnRlbnQtaWNvbi1lbmFibGVkID09IHRydWUge1xuICAgIC5hY19pdGVtX2NvbnRlbnRfaWNvbl9jb250YWluZXIge1xuICAgICAgICBAaWYgJGl0ZW0tY29udGVudC1pY29uLWNlbnRlcmVkID09IHRydWUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5hY19pdGVtX2NvbnRlbnRfaWNvbiB7XG4gICAgICAgIHdpZHRoOiAkaXRlbS1jb250ZW50LWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkaXRlbS1jb250ZW50LWljb24tc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJGl0ZW0tY29udGVudC1pY29uLWJhY2tncm91bmQ7XG4gICAgICAgIHBhZGRpbmc6ICRpdGVtLWNvbnRlbnQtaWNvbi1wYWRkaW5nO1xuICAgICAgICBtYXJnaW46ICRpdGVtLWNvbnRlbnQtaWNvbi1tYXJnaW47XG4gICAgICAgIFxuICAgICAgICBAaWYgJGl0ZW0tY29udGVudC1pY29uLXJvdW5kID09IHRydWUge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6ICRpdGVtLWNvbnRlbnQtaWNvbi1zaXplIC0gKCRpdGVtLWNvbnRlbnQtaWNvbi1wYWRkaW5nICogMik7XG4gICAgICAgICAgICBoZWlnaHQ6ICRpdGVtLWNvbnRlbnQtaWNvbi1zaXplIC0gKCRpdGVtLWNvbnRlbnQtaWNvbi1wYWRkaW5nICogMik7XG4gICAgICAgICAgICBAaWYgJHN2Zy1pY29uLXNldC10eXBlID09ICdmaWxsJyB7XG4gICAgICAgICAgICAgICAgZmlsbDogJGl0ZW0tY29udGVudC1pY29uLWNvbG9yO1xuICAgICAgICAgICAgfSBAZWxzZWlmICRzdmctaWNvbi1zZXQtdHlwZSA9PSAnc3Ryb2tlJyB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlOiAkaXRlbS1jb250ZW50LWljb24tY29sb3I7XG4gICAgICAgICAgICAgICAgZmlsbDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IEBlbHNlIHtcbiAgICAuYWNfaXRlbV9jb250ZW50X2ljb25fY29udGFpbmVyIHsgXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5cbi5hY19pdGVtX2NvbnRlbnRfdGl0bGUge1xuICAgIEBpZiAkaXRlbS1jb250ZW50LXRpdGxlLWVuYWJsZWQgPT0gdHJ1ZSB7XG4gICAgICAgIGNvbG9yOiAkaXRlbS1jb250ZW50LXRpdGxlLWNvbG9yO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbi5hY19pdGVtX2NvbnRlbnRfY29weS1hYm92ZSB7XG4gICAgQGlmICRpdGVtLWNvbnRlbnQtY29weS1hYm92ZS1lbmFibGVkID09IHRydWV7XG4gICAgICAgIGNvbG9yOiAkaXRlbS1jb250ZW50LWNvcHktYWJvdmUtY29sb3I7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuLmFjX2l0ZW1fY29udGVudF9jb3B5LWJlbG93IHtcbiAgICBAaWYgJGl0ZW0tY29udGVudC1jb3B5LWJlbG93LWVuYWJsZWQgPT0gdHJ1ZXtcbiAgICAgICAgY29sb3I6ICRpdGVtLWNvbnRlbnQtY29weS1iZWxvdy1jb2xvcjtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cblxuLy9cbi8vICAgICAgSUNPTiAvLyBlLmcuIGFuIGFycm93XG4vL1xuXG4uYWNfaXRlbV9pY29uIHtcbiAgICBAaWYgJGl0ZW0tc2hvdy1pY29uID09IHRydWUge1xuICAgICAgICBcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICB3aWR0aDogJGl0ZW0taWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRpdGVtLWljb24tc2l6ZTtcbiAgICAgICAgXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB3aWR0aDogJGl0ZW0taWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkaXRlbS1pY29uLXNpemU7XG4gICAgICAgICAgICBmaWxsOiAkaXRlbS1pY29uLWNvbG9yO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogZmlsbCAkZGVmYXVsdC10cmFuc2l0aW9uLXNwZWVkO1xuICAgICAgICB9XG4gICAgICAgIEBpZiAkaXRlbS1pY29uLXBvc2l0aW9uID09ICdydCcge1xuICAgICAgICAgICAgcmlnaHQ6ICRpdGVtLWljb24taW5zZXQtbGVmdC1yaWdodDtcbiAgICAgICAgICAgIHRvcDogJGl0ZW0taWNvbi1pbnNldC10b3AtYm90dG9tO1xuICAgICAgICB9XG4gICAgICAgIEBpZiAkaXRlbS1pY29uLXBvc2l0aW9uID09ICdyYicge1xuICAgICAgICAgICAgcmlnaHQ6ICRpdGVtLWljb24taW5zZXQtbGVmdC1yaWdodDtcbiAgICAgICAgICAgIGJvdHRvbTogJGl0ZW0taWNvbi1pbnNldC10b3AtYm90dG9tO1xuICAgICAgICB9XG4gICAgICAgIEBpZiAkaXRlbS1pY29uLXBvc2l0aW9uID09ICdsYicge1xuICAgICAgICAgICAgbGVmdDogJGl0ZW0taWNvbi1pbnNldC1sZWZ0LXJpZ2h0O1xuICAgICAgICAgICAgYm90dG9tOiAkaXRlbS1pY29uLWluc2V0LXRvcC1ib3R0b207XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRpdGVtLWljb24tcG9zaXRpb24gPT0gJ2x0JyB7XG4gICAgICAgICAgICBsZWZ0OiAkaXRlbS1pY29uLWluc2V0LWxlZnQtcmlnaHQ7XG4gICAgICAgICAgICB0b3A6ICRpdGVtLWljb24taW5zZXQtdG9wLWJvdHRvbTtcbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBcbn1cbiIsIi8vXG4vLyAgICAgIENPTlRFTlQgT1ZFUiBJTUFHRVxuLy9cbkBtaXhpbiBjb250ZW50LW92ZXItaW1hZ2UoKSB7XG4gICAgLmFjX2l0ZW0ge1xuICAgICAgICBoZWlnaHQ6ICRpdGVtLWltYWdlLWhlaWdodDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0KSB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRpdGVtLWltYWdlLWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgJGl0ZW1zLWZpcnN0LWl0ZW0tZnVsbC13aWR0aCA9PSB0cnVlIHtcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRpdGVtLWltYWdlLWhlaWdodCAqICRpdGVtcy1maXJzdC1pdGVtLWZ1bGwtd2lkdGgtaGVpZ2h0LW11bHRpcGxpZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWNfaXRlbV9pbWFnZS1jb250YWluZXIge1xuICAgICAgICBAaWYgJGl0ZW1zLWJvcmRlci1yYWRpdXMgIT0gMCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkaXRlbXMtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgfVxuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRpdGVtLWltYWdlLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXG4gICAgICAgIEBpZiAkaXRlbS1pbWFnZS1ncmFkaWVudC1iZWZvcmUgPT0gdHJ1ZSB7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICRncmFkaWVudC1kZWdyZWVzOiAwZGVnO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBAaWYgJGl0ZW0taW1hZ2UtZ3JhZGllbnQtYmVmb3JlLXBvc2l0aW9uID09ICdib3R0b20nIHtcbiAgICAgICAgICAgICAgICAkZ3JhZGllbnQtZGVncmVlczogMTgwZGVnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoJGdyYWRpZW50LWRlZ3JlZXMsIHJnYmEoJGl0ZW0taW1hZ2UtZ3JhZGllbnQtY29sb3IsIDApLCByZ2JhKCRpdGVtLWltYWdlLWdyYWRpZW50LWNvbG9yLCAxKSk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgICAgICBAaWYgJGl0ZW1zLWJvcmRlci1yYWRpdXMgIT0gMCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRpdGVtcy1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgJGl0ZW0taW1hZ2UtZ3JhZGllbnQtYmVmb3JlLXBvc2l0aW9uID09ICdib3R0b20nIHtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmFjX2l0ZW1fY29udGVudCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAvLyB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgICAgIEBpbmNsdWRlIGNvbnRlbnQtYWxpZ24oJGl0ZW0tY29udGVudC1hbGlnbik7XG5cbiAgICB9XG4gICAgLmFjX2l0ZW1fY29udGFpbmVyIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG59XG5cblxuQGlmICRpdGVtcy1jb250ZW50LW92ZXItaW1hZ2UgPT0gdHJ1ZSB7XG5cbiAgICBAaW5jbHVkZSBjb250ZW50LW92ZXItaW1hZ2UoKTtcblxufSIsIi8vLyBTZWxlY3QgYWxsIGNoaWxkcmVuIGZyb20gdGhlIGZpcnN0IHRvIGAkbnVtYC5cbi8vLyBAZ3JvdXAgd2l0aC1hcmd1bWVudHNcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRudW0gLSBpZCBvZiB0aGUgY2hpbGRcbkBtaXhpbiBmaXJzdCgkbnVtKSB7XG4gIEBpZiAkbnVtID09IDEge1xuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAmOm50aC1jaGlsZCgtbiArICN7JG51bX0pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBjaGlsZHJlbiBmcm9tIHRoZSBsYXN0IHRvIGAkbnVtYC5cbi8vLyBAZ3JvdXAgd2l0aC1hcmd1bWVudHNcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRudW0gLSBpZCBvZiB0aGUgY2hpbGRcbkBtaXhpbiBsYXN0KCRudW0pIHtcbiAgJjpudGgtbGFzdC1jaGlsZCgtbiArICN7JG51bX0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBjaGlsZHJlbiBhZnRlciB0aGUgZmlyc3QgdG8gYCRudW1gLlxuLy8vIEBncm91cCB3aXRoLWFyZ3VtZW50c1xuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cbi8vLyBAcGFyYW0ge251bWJlcn0gJG51bSAtIGlkIG9mIHRoZSBjaGlsZFxuQG1peGluIGFmdGVyLWZpcnN0KCRudW0pIHtcbiAgJjpudGgtY2hpbGQobiArICN7JG51bSArIDF9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gYmVmb3JlIGAkbnVtYCBmcm9tIHRoZSBsYXN0LlxuLy8vIEBncm91cCB3aXRoLWFyZ3VtZW50c1xuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cbi8vLyBAcGFyYW0ge251bWJlcn0gJG51bSAtIGlkIG9mIHRoZSBjaGlsZFxuQG1peGluIGZyb20tZW5kKCRudW0pIHtcbiAgJjpudGgtbGFzdC1jaGlsZCgjeyRudW19KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gYmV0d2VlbiBgJGZpcnN0YCBhbmQgYCRsYXN0YC5cbi8vLyBAZ3JvdXAgd2l0aC1hcmd1bWVudHNcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG5AbWl4aW4gYmV0d2VlbigkZmlyc3QsICRsYXN0KSB7XG4gICY6bnRoLWNoaWxkKG4gKyAjeyRmaXJzdH0pOm50aC1jaGlsZCgtbiArICN7JGxhc3R9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgZXZlbiBjaGlsZHJlbiBiZXR3ZWVuIGAkZmlyc3RgIGFuZCBgJGxhc3RgLlxuLy8vIEBncm91cCB3aXRoLWFyZ3VtZW50c1xuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cbkBtaXhpbiBldmVuLWJldHdlZW4oJGZpcnN0LCAkbGFzdCkge1xuICAmOm50aC1jaGlsZChldmVuKTpudGgtY2hpbGQobiArICN7JGZpcnN0fSk6bnRoLWNoaWxkKC1uICsgI3skbGFzdH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBvZGQgY2hpbGRyZW4gYmV0d2VlbiBgJGZpcnN0YCBhbmQgYCRsYXN0YC5cbi8vLyBAZ3JvdXAgd2l0aC1hcmd1bWVudHNcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG5AbWl4aW4gb2RkLWJldHdlZW4oJGZpcnN0LCAkbGFzdCkge1xuICAmOm50aC1jaGlsZChvZGQpOm50aC1jaGlsZChuICsgI3skZmlyc3R9KTpudGgtY2hpbGQoLW4gKyAjeyRsYXN0fSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgYWxsIGAkbnVtYCBjaGlsZHJlbiBiZXR3ZWVuIGAkZmlyc3RgIGFuZCBgJGxhc3RgLlxuLy8vIEBncm91cCB3aXRoLWFyZ3VtZW50c1xuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cbkBtaXhpbiBuLWJldHdlZW4oJG51bSwgJGZpcnN0LCAkbGFzdCkge1xuICAmOm50aC1jaGlsZCgjeyRudW19bik6bnRoLWNoaWxkKG4gKyAjeyRmaXJzdH0pOm50aC1jaGlsZCgtbiArICN7JGxhc3R9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuXG4vLy8gU2VsZWN0IGFsbCBjaGlsZHJlbiBidXQgYCRudW1gLlxuLy8vIEBncm91cCB3aXRoLWFyZ3VtZW50c1xuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cbi8vLyBAcGFyYW0ge251bWJlcn0gJG51bSAtIGlkIG9mIHRoZSBjaGlsZFxuQG1peGluIGFsbC1idXQoJG51bSkge1xuICAmOm5vdCg6bnRoLWNoaWxkKCN7JG51bX0pKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBjaGlsZHJlbiBlYWNoIGAkbnVtYC5cbi8vLyBAZ3JvdXAgd2l0aC1hcmd1bWVudHNcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRudW0gLSBpZCBvZiB0aGUgY2hpbGRcbi8vLyBAYWxpYXMgZXZlcnlcbkBtaXhpbiBlYWNoKCRudW0pIHtcbiAgJjpudGgtY2hpbGQoI3skbnVtfW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGNoaWxkcmVuIGVhY2ggYCRudW1gLlxuLy8vIEBncm91cCB3aXRoLWFyZ3VtZW50c1xuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cbi8vLyBAcGFyYW0ge251bWJlcn0gJG51bSAtIGlkIG9mIHRoZSBjaGlsZFxuQG1peGluIGV2ZXJ5KCRudW0pIHtcbiAgJjpudGgtY2hpbGQoI3skbnVtfW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IHRoZSBgJG51bWAgY2hpbGQgZnJvbSB0aGUgc3RhcnQgYW5kIHRoZSBgJG51bWAgY2hpbGQgZnJvbSB0aGUgbGFzdC5cbi8vLyBAZ3JvdXAgd2l0aC1hcmd1bWVudHNcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRudW0gLSBpZCBvZiB0aGUgY2hpbGRcbkBtaXhpbiBmcm9tLWZpcnN0LWxhc3QoJG51bSkge1xuICAmOm50aC1jaGlsZCgjeyRudW19KSxcbiAgJjpudGgtbGFzdC1jaGlsZCgjeyRudW19KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuXG4vLy8gU2VsZWN0IHRoZSBpdGVtIGluIHRoZSBtaWRkbGUgb2YgYCRudW1gIGNoaWxkLiBPbmx5IHdvcmtzIHdpdGggb2RkIG51bWJlclxuLy8vIGNoYWluLlxuLy8vIEBncm91cCB3aXRoLWFyZ3VtZW50c1xuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cbi8vLyBAcGFyYW0ge251bWJlcn0gJG51bSAtIGlkIG9mIHRoZSBjaGlsZFxuQG1peGluIG1pZGRsZSgkbnVtKSB7XG4gICY6bnRoLWNoaWxkKCN7cm91bmQoJG51bSAvIDIpfSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gYmV0d2VlbiB0aGUgYCRudW1gIGZpcnN0IGFuZCB0aGUgYCRudW1gIGxhc3QuXG4vLy8gQGdyb3VwIHdpdGgtYXJndW1lbnRzXG4vLy8gQGNvbnRlbnQgW1dyaXRlIHRoZSBzdHlsZSB5b3Ugd2FudCB0byBhcHBseSB0byB0aGUgY2hpbGRyZW4sIGFuZCBpdCB3aWxsIGJlIGFkZGVkIHdpdGhpbiB0aGUgQGNvbnRlbnQgZGlyZWN0aXZlXVxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbnVtIC0gaWQgb2YgdGhlIGNoaWxkXG5AbWl4aW4gYWxsLWJ1dC1maXJzdC1sYXN0KCRudW0pIHtcbiAgJjpudGgtY2hpbGQobiArICN7JG51bX0pOm50aC1sYXN0LWNoaWxkKG4gKyAjeyRudW19KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuXG4vLy8gVGhpcyBxdWFudGl0eS1xdWVyeSBtaXhpbiB3aWxsIG9ubHkgc2VsZWN0IHRoZSBmaXJzdCBvZiBgJGxpbWl0YCBpdGVtcy4gSXQgd2lsbCBub3Rcbi8vLyB3b3JrIGlmIHRoZXJlIGlzIG5vdCBhcyBtdWNoIGFzIGl0ZW0gYXMgeW91IHNldCBpbiBgJGxpbWl0YC5cbi8vLyBAZ3JvdXAgUXVhbnRpdHkgcXVlcmllc1xuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbGltaXRcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG5AbWl4aW4gZmlyc3Qtb2YoJGxpbWl0KSB7XG4gICY6bnRoLWxhc3QtY2hpbGQoI3skbGltaXR9KTpmaXJzdC1jaGlsZCB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFRoaXMgcXVhbnRpdHktcXVlcnkgbWl4aW4gd2lsbCBvbmx5IHNlbGVjdCB0aGUgbGFzdCBvZiBgJGxpbWl0YCBpdGVtcy4gSXQgd2lsbCBub3Rcbi8vLyBpZiB0aGVyZSBpcyBub3QgYXMgbXVjaCBhcyBpdGVtIGFzIHlvdSBzZXQgaW4gYCRsaW1pdGAuXG4vLy8gQGdyb3VwIFF1YW50aXR5IHF1ZXJpZXNcbi8vLyBAcGFyYW0ge251bWJlcn0gJGxpbWl0XG4vLy8gQGNvbnRlbnQgW1dyaXRlIHRoZSBzdHlsZSB5b3Ugd2FudCB0byBhcHBseSB0byB0aGUgY2hpbGRyZW4sIGFuZCBpdCB3aWxsIGJlIGFkZGVkIHdpdGhpbiB0aGUgQGNvbnRlbnQgZGlyZWN0aXZlXVxuQG1peGluIGxhc3Qtb2YoJGxpbWl0KSB7XG4gICY6bnRoLW9mLXR5cGUoI3skbGltaXR9KTpudGgtbGFzdC1vZi10eXBlKDEpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gVGhpcyBxdWFudGl0eS1xdWVyeSBtaXhpbiB3aWxsIHNlbGVjdCBldmVyeSBpdGVtcyBpZiB0aGVyZSBpcyBhdCBsZWFzdCBgJG51bWAgaXRlbXMuIEl0IHdpbGwgbm90XG4vLy8gaWYgdGhlcmUgaXMgbm90IGFzIG11Y2ggYXMgaXRlbSBhcyB5b3Ugc2V0IGluIGAkbnVtYC5cbi8vLyBAZ3JvdXAgUXVhbnRpdHkgcXVlcmllc1xuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbGltaXRcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG5AbWl4aW4gYXQtbGVhc3QoJG51bSkge1xuICAkc2VsZWN0b3I6ICY7XG4gICRjaGlsZDogbnRoKG50aCgkc2VsZWN0b3IsIC0xKSwgLTEpO1xuXG4gICY6bnRoLWxhc3QtY2hpbGQobiArICN7JG51bX0pLFxuICAmOm50aC1sYXN0LWNoaWxkKG4gKyAjeyRudW19KSB+ICN7JGNoaWxkfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFRoaXMgcXVhbnRpdHktcXVlcnkgbWl4aW4gd2lsbCBzZWxlY3QgZXZlcnkgaXRlbXMgaWYgdGhlcmUgaXMgYXQgbW9zdCBgJG51bWAgaXRlbXMuIEl0IHdpbGwgbm90XG4vLy8gaWYgdGhlcmUgaXMgbm90IGFzIG11Y2ggYXMgaXRlbSBhcyB5b3Ugc2V0IGluIGAkbnVtYC5cbi8vLyBAZ3JvdXAgUXVhbnRpdHkgcXVlcmllc1xuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbGltaXRcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG5AbWl4aW4gYXQtbW9zdCgkbnVtKSB7XG4gICRzZWxlY3RvcjogJjtcbiAgJGNoaWxkOiBudGgobnRoKCRzZWxlY3RvciwgLTEpLCAtMSk7XG5cbiAgJjpudGgtbGFzdC1jaGlsZCgtbiArICN7JG51bX0pOmZpcnN0LWNoaWxkLFxuICAmOm50aC1sYXN0LWNoaWxkKC1uICsgI3skbnVtfSk6Zmlyc3QtY2hpbGQgfiAjeyRjaGlsZH0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBUaGlzIHF1YW50aXR5LXF1ZXJ5IG1peGluIHdpbGwgc2VsZWN0IGV2ZXJ5IGl0ZW1zIG9ubHkgaWYgdGhlcmUgaXMgYmV0d2VlbiBgJG1pbmAgYW5kIGAkbWF4YCBpdGVtcy5cbi8vLyBAZ3JvdXAgUXVhbnRpdHkgcXVlcmllc1xuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbGltaXRcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG5AbWl4aW4gaW4tYmV0d2VlbigkbWluLCAkbWF4KSB7XG4gICRzZWxlY3RvcjogJjtcbiAgJGNoaWxkOiBudGgobnRoKCRzZWxlY3RvciwgLTEpLCAtMSk7XG5cbiAgJjpudGgtbGFzdC1jaGlsZChuICsgI3skbWlufSk6bnRoLWxhc3QtY2hpbGQoLW4gKyAjeyRtYXh9KTpmaXJzdC1jaGlsZCxcbiAgJjpudGgtbGFzdC1jaGlsZChuICsgI3skbWlufSk6bnRoLWxhc3QtY2hpbGQoLW4gKyAjeyRtYXh9KTpmaXJzdC1jaGlsZCB+ICN7JGNoaWxkfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCB0aGUgZmlyc3QgZXhhY3QgY2hpbGRcbi8vLyBAZ3JvdXAgbm8tYXJndW1lbnRzXG4vLy8gQGNvbnRlbnQgW1dyaXRlIHRoZSBzdHlsZSB5b3Ugd2FudCB0byBhcHBseSB0byB0aGUgY2hpbGRyZW4sIGFuZCBpdCB3aWxsIGJlIGFkZGVkIHdpdGhpbiB0aGUgQGNvbnRlbnQgZGlyZWN0aXZlXVxuQG1peGluIGZpcnN0LWNoaWxkKCkge1xuICAmOmZpcnN0LW9mLXR5cGUge1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuLy8vIFNlbGVjdCB0aGUgbGFzdCBleGFjdCBjaGlsZFxuLy8vIEBncm91cCBuby1hcmd1bWVudHNcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG5AbWl4aW4gbGFzdC1jaGlsZCgpIHtcbiAgJjpsYXN0LW9mLXR5cGUge1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgZXZlbiBjaGlsZHJlbi5cbi8vLyBAZ3JvdXAgbm8tYXJndW1lbnRzXG4vLy8gQGNvbnRlbnQgW1dyaXRlIHRoZSBzdHlsZSB5b3Ugd2FudCB0byBhcHBseSB0byB0aGUgY2hpbGRyZW4sIGFuZCBpdCB3aWxsIGJlIGFkZGVkIHdpdGhpbiB0aGUgQGNvbnRlbnQgZGlyZWN0aXZlXVxuQG1peGluIGV2ZW4oKSB7XG4gICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBvZGQgY2hpbGRyZW4uXG4vLy8gQGdyb3VwIG5vLWFyZ3VtZW50c1xuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cbkBtaXhpbiBvZGQoKSB7XG4gICY6bnRoLWNoaWxkKG9kZCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3Qgb25seSB0aGUgZmlyc3QgYW5kIGxhc3QgY2hpbGQuXG4vLy8gQGdyb3VwIG5vLWFyZ3VtZW50c1xuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cbkBtaXhpbiBmaXJzdC1sYXN0KCkge1xuICAmOmZpcnN0LWNoaWxkLFxuICAmOmxhc3QtY2hpbGQge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBXaWxsIG9ubHkgc2VsZWN0IHRoZSBjaGlsZCBpZiBpdOKAmXMgdW5pcXVlLlxuLy8vIEBncm91cCBuby1hcmd1bWVudHNcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXG4vLy8gQGFsaWFzIG9ubHlcbkBtaXhpbiB1bmlxdWUoKSB7XG4gICY6b25seS1jaGlsZCB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFdpbGwgb25seSBzZWxlY3QgdGhlIGNoaWxkIGlmIGl04oCZcyB1bmlxdWUuXG4vLy8gQGdyb3VwIG5vLWFyZ3VtZW50c1xuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cbkBtaXhpbiBvbmx5KCkge1xuICAmOm9ubHktY2hpbGQge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBXaWxsIG9ubHkgc2VsZWN0IGNoaWxkcmVuIGlmIHRoZXkgYXJlIG5vdCB1bmlxdWUuIE1lYW5pbmcgaWYgdGhlcmUgaXMgYXRcbi8vLyBsZWFzdCAyIGNoaWxkcmVuLCB0aGUgc3R5bGUgaXMgYXBwbGllZC5cbi8vLyBAZ3JvdXAgbm8tYXJndW1lbnRzXG4vLy8gQGNvbnRlbnQgW1dyaXRlIHRoZSBzdHlsZSB5b3Ugd2FudCB0byBhcHBseSB0byB0aGUgY2hpbGRyZW4sIGFuZCBpdCB3aWxsIGJlIGFkZGVkIHdpdGhpbiB0aGUgQGNvbnRlbnQgZGlyZWN0aXZlXVxuQG1peGluIG5vdC11bmlxdWUoKSB7XG4gICY6bm90KDpvbmx5LWNoaWxkKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuXG4vLy8gVGhpcyBtaXhpbiBpcyB1c2VkIHRvIGF1dG9tYXRpY2FsbHkgc29ydCB6LWluZGV4IGluIG51bWVyaWNhbCBvcmRlci4gQnV0IGl0XG4vLy8gY2FuIGFsc28gc29ydCB0aGVtIGluIGFudGktbnVtZXJpY2FsIG9yZGVyLCBkZXBlbmRpbmcgdGhlIHBhcmFtZXRlcnMgeW91IHVzZS5cbi8vLyBAZ3JvdXAgdXNpbmcgZnVuY3Rpb25zXG4vLy8gQGNvbnRlbnQgW1dyaXRlIHRoZSBzdHlsZSB5b3Ugd2FudCB0byBhcHBseSB0byB0aGUgY2hpbGRyZW4sIGFuZCBpdCB3aWxsIGJlIGFkZGVkIHdpdGhpbiB0aGUgQGNvbnRlbnQgZGlyZWN0aXZlXVxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbnVtIC0gTnVtYmVyIG9mIGNoaWxkcmVuXG4vLy8gQHBhcmFtIHtzdHJpbmd9ICRkaXJlY3Rpb24gW2ZvcndhcmRdIC0gRGlyZWN0aW9uIG9mIHRoZSBzb3J0XG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRpbmRleCBbMF0gLSBJbmRleCBvZiB0aGUgc29ydGluZ1xuQG1peGluIGNoaWxkLWluZGV4KCRudW0sICRkaXJlY3Rpb246ICdmb3J3YXJkJywgJGluZGV4OiAwKSB7XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJG51bSB7XG4gICAgQGlmICgkZGlyZWN0aW9uID09ICdmb3J3YXJkJykge1xuICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgei1pbmRleDogb3JkZXItaW5kZXgoJGksICRpbmRleCk7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gJ2JhY2t3YXJkJykge1xuICAgICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICB6LWluZGV4OiBvcmRlci1pbmRleCgkaSwgJGluZGV4KTtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBVc2VkIGJ5IHRoZSBjaGlsZC1pbmRleCBtaXhpbi4gSXQgd2lsbCByZXR1cm5lZCB0aGUgcHJvcGVyIHNvcnRlZCBudW1iZXJzXG4vLy8gZGVwZW5kaW5nIG9uIHRoZSBgJGluZGV4YCB2YWx1ZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLyBAcGFyYW0ge251bWJlcn0gJG51bSAtIE51bWJlciBvZiBjaGlsZHJlblxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkaW5kZXggLSBJbmRleCBvZiB0aGUgc29ydGluZ1xuQGZ1bmN0aW9uIG9yZGVyLWluZGV4KCRpLCAkaW5kZXgpIHtcbiAgQHJldHVybiAoJGluZGV4ICsgJGkpO1xufVxuIiwiXG4vKiBBQ19TX1NFUlZJQ0VTIC0gMVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5bZGF0YS1zLXR5cGU9XCJwcm9kdWN0c1wiXSB7XG5cbiAgICAvLyBpdGVtc1xuICAgICRpdGVtcy1zbGlkZXI6IGZhbHNlO1xuICAgICRpdGVtcy1zbGlkZXItZm91Yy1oZWlnaHQ6IDIwMHB4OyAvLyB3aGF0IG5lZWRzIHRvIGJlIHRoZSBmbGFzaC1vZi11bndhbnRlZC1jb250ZW50IGhlaWdodCBiZWZvcmUgc2xpZGVyIGhhcyBsYW9kZWQuXG5cbiAgICAkaXRlbXMtYW1vdW50OiAwOyAvLyAwIGNvdW50cyBmb3IgdW5kZWZpbmVkLCBpZiBhc3NpZ25lZCB0aGUgY29kZSB3aWxsIGJlIG1vcmUgb3B0aW1pc2VkXG4gICAgJGl0ZW1zLWNvbnRlbnQtb3Zlci1pbWFnZTogZmFsc2U7XG4gICAgJGl0ZW1zLW1heC13aWR0aDogJG1heC1jb250ZW50LTEyMDA7XG4gICAgJGl0ZW1zLWhhdmUtcGFkZGluZzogdHJ1ZTtcbiAgICAkaXRlbXMtaGF2ZS1ib3JkZXItZGl2aWRlcnM6IHRydWU7XG4gICAgJGl0ZW1zLWhhdmUtYm9yZGVyLWJlbG93OiB0cnVlO1xuICAgICRpdGVtcy1oaWRlLWJvcmRlci1iZWxvdy1vbi1sYXN0LXJvdzogdHJ1ZTtcbiAgICAkaXRlbXMtYm9yZGVyLXJhZGl1czogMDsgXG4gICAgJGl0ZW1zLWZpcnN0LWl0ZW0tZnVsbC13aWR0aDogZmFsc2U7XG4gICAgJGl0ZW1zLWZpcnN0LWl0ZW0tZnVsbC13aWR0aC1oZWlnaHQtbXVsdGlwbGllcjogMS41O1xuICAgICRpdGVtcy1vbi1zbWFsbC10d28taXRlbXMtYS1yb3c6IHRydWU7XG4gICAgJGl0ZW0tYmFja2dyb3VuZDogbm9uZTtcbiAgICAkaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiBub25lO1xuICAgIFxuICAgIC8vIGNvbHVtbnNcbiAgICAkaXRlbXMtY29sdW1ucy1lbmFibGVkOiBmYWxzZTtcbiAgICAkaXRlbXMtY29sdW1ucy1icmVha3BvaW50OiA4MDBweDsgXG4gICAgJGl0ZW1zLWNvbHVtbnMtaGVpZ2h0OiA0MDBweDsgXG4gICAgJGl0ZW1zLWNvbHVtbnMtaGlkZS1sYXN0LW9uZS1iZWxvdy1icmVha3BvaW50OiBmYWxzZTtcbiAgICAkaXRlbXMtY29sdW1ucy1pY29uLWltYWdlLWNvbWJpbmF0aW9uOiB0cnVlO1xuXG4gICAgLy8gaXRlbVxuICAgICRpdGVtLW1hcmdpbi1ib3R0b206IDEuNGVtOyAvLyAxLjRlbVxuICAgICRpdGVtLWJvcmRlcjogJGRlZmF1bHQtYm9yZGVyOyAvLyBkZWZpbmVzIHRoZSBhcHBlYXJhbmNlLCBub3QgdGhlIGRpc3BsYXlcbiAgICAkaXRlbS1zaGFkb3ctZW5hYmxlZDogZmFsc2U7XG5cblxuICAgIC8vIGltYWdlXG4gICAgJGl0ZW0taW1hZ2UtY29udGFpbmVyLWVuYWJsZWQ6IHRydWU7XG4gICAgJGl0ZW0taW1hZ2UtZW5hYmxlZDogdHJ1ZTtcbiAgICAkaXRlbS1pbWFnZS1oZWlnaHQ6IDIwdnc7XG4gICAgJGl0ZW0taW1hZ2UtaW5pdGlhbC1mYWRlOiAxO1xuICAgICRpdGVtLWltYWdlLWhvdmVyLWZhZGU6IC44O1xuICAgICRpdGVtLWltYWdlLWdyYWRpZW50LWJlZm9yZTogZmFsc2U7IC8vIHdoZW4gaXRlbS1jb250ZW50LW92ZXItaW1hZ2VcbiAgICAkaXRlbS1pbWFnZS1ncmFkaWVudC1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1kYXJrO1xuICAgICRpdGVtLWltYWdlLWdyYWRpZW50LWJlZm9yZS1wb3NpdGlvbjogJ2JvdHRvbSc7IC8vIHRvcCBvciBib3R0b21cbiAgICAkaXRlbS1pbWFnZS1iYWNrZ3JvdW5kLWNvbG9yOiAkZGVmYXVsdC1iYWNrZ3JvdW5kLWxpZ2h0O1xuICAgICRpdGVtLWltYWdlLWJhY2tncm91bmQtY29sb3ItaG92ZXI6ICRkZWZhdWx0LWJhY2tncm91bmQtbGlnaHQ7XG4gICAgJGl0ZW0taW1hZ2UtYm9yZGVyLXJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1czsgXG5cblxuICAgIC8vIGNvbnRlbnRcbiAgICAkaXRlbS1jb250ZW50LXBhZGRpbmc6IDA7IC8vICRkZWZhdWx0LXBhZGRpbmc7IFxuICAgICRpdGVtLWNvbnRlbnQtYmFja2dyb3VuZDogbm9uZTtcbiAgICAkaXRlbS1jb250ZW50LWJhY2tncm91bmQtaG92ZXI6IG5vbmU7XG4gICAgJGl0ZW0tY29udGVudC1hbGlnbjogJ2xiJzsgLy8gbHQsIGxjLCBsYiwgY3QsIGNjLCBjYiwgcnQsIHJjLCByYiB8fCAgd2hlbiBpdGVtLWNvbnRlbnQtb3Zlci1pbWFnZVxuICAgICRpdGVtLWNvbnRlbnQtY29weS1wYWRkaW5nOiAkZGVmYXVsdC1wYWRkaW5nIDAgOyBcbiAgICAkaXRlbS1jb250ZW50LWNvcHktYWxpZ246ICdsZWZ0JzsgLy8gbGVmdCBvciBjZW50ZXJcblxuICAgICRpdGVtLWNvbnRlbnQtaWNvbi1lbmFibGVkOiB0cnVlO1xuICAgICRpdGVtLWNvbnRlbnQtaWNvbi1jZW50ZXJlZDogdHJ1ZTtcbiAgICAkaXRlbS1jb250ZW50LWljb24tY29sb3I6IHJnYmEoJGRlZmF1bHQtaWNvbi1jb2xvci1saWdodCwgMSk7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLWhvdmVyLWNvbG9yOiByZ2JhKCRkZWZhdWx0LWljb24tY29sb3ItbGlnaHQsIC40KTtcbiAgICAkaXRlbS1jb250ZW50LWljb24tc2l6ZTogODBweDtcbiAgICAkaXRlbS1jb250ZW50LWljb24tcGFkZGluZzogMTBweDtcbiAgICAkaXRlbS1jb250ZW50LWljb24tbWFyZ2luOiAwIDAgMjBweCAwO1xuICAgICRpdGVtLWNvbnRlbnQtaWNvbi1iYWNrZ3JvdW5kOiAkZGVmYXVsdC1iYWNrZ3JvdW5kLWRhcms7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGRlZmF1bHQtYmFja2dyb3VuZC1kYXJrLCAuNik7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLXJvdW5kOiB0cnVlO1xuICAgIFxuICAgICRpdGVtLWNvbnRlbnQtdGl0bGUtZW5hYmxlZDogdHJ1ZTsgXG4gICAgJGl0ZW0tY29udGVudC10aXRsZS1jb2xvcjogJGRlZmF1bHQtdGV4dC1jb2xvcjtcbiAgICAkaXRlbS1jb250ZW50LXRpdGxlLWhvdmVyLWNvbG9yOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3IsIC42KTtcblxuICAgICRpdGVtLWNvbnRlbnQtY29weS1hYm92ZS1lbmFibGVkOiB0cnVlOyAgICBcbiAgICAkaXRlbS1jb250ZW50LWNvcHktYWJvdmUtY29sb3I6IHJnYmEoJGRlZmF1bHQtdGV4dC1jb2xvciwgLjYpO1xuICAgICRpdGVtLWNvbnRlbnQtY29weS1hYm92ZS1ob3Zlci1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLCAuNCk7XG5cbiAgICAkaXRlbS1jb250ZW50LWNvcHktYmVsb3ctZW5hYmxlZDogdHJ1ZTsgICAgXG4gICAgJGl0ZW0tY29udGVudC1jb3B5LWJlbG93LWNvbG9yOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3IsIC42KTtcbiAgICAkaXRlbS1jb250ZW50LWNvcHktYmVsb3ctaG92ZXItY29sb3I6IHJnYmEoJGRlZmF1bHQtdGV4dC1jb2xvciwgLjQpO1xuXG4gICAgLy8gaWNvblxuICAgICRpdGVtLXNob3ctaWNvbjogdHJ1ZTtcbiAgICAkaXRlbS1pY29uLWNvbG9yOiByZ2JhKCRkZWZhdWx0LWljb24tY29sb3IsIC42KTtcbiAgICAkaXRlbS1pY29uLWhvdmVyLWNvbG9yOiByZ2JhKCRkZWZhdWx0LWljb24tY29sb3IsIC40KTtcbiAgICAkaXRlbS1pY29uLXNpemU6IDEuNmVtO1xuICAgICRpdGVtLWljb24tcG9zaXRpb246ICdyYic7IC8vIGx0LCBsYiwgcnQsIHJiXG4gICAgJGl0ZW0taWNvbi1pbnNldC1sZWZ0LXJpZ2h0OiAwOyAvLyAkZGVmYXVsdC1wYWRkaW5nOyBcbiAgICAkaXRlbS1pY29uLWluc2V0LXRvcC1ib3R0b206ICRkZWZhdWx0LXBhZGRpbmc7IFxuICAgIFxuXG4gICAgLy8gbGlzdCBzdHlsZSBvbiBzbWFsbCB8IGltYWdlIGxlZnQgYW5kIGNvbnRlbnQgcmlnaHQgfCBhbGwgYmFja2dyb3VuZCB3aWxsIGJlIHJlc2V0IHwgY29udGVudCBpY29uIGlzIHNldCBhYnNvbHV0ZVxuICAgICRpdGVtLWxpc3Qtc3R5bGUtb24tc21hbGw6IGZhbHNlOyBcbiAgICAkaXRlbS1saXN0LXN0eWxlLWltYWdlLXdpZHRoOiAxMDBweDtcbiAgICAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtaWNvbi1zaXplOiA2MHB4OyBcbiAgICAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtaWNvbi1wYWRkaW5nOiAxNHB4OyBcbiAgICAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtaWNvbi1iYWNrZ3JvdW5kOiAkZGVmYXVsdC1iYWNrZ3JvdW5kLWxpZ2h0O1xuICAgICRpdGVtLWxpc3Qtc3R5bGUtY29udGVudC1pY29uLWNvbG9yOiAkYnJhbmQtcHJpbWFyeTsgXG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LXRpdGxlLWNvbG9yOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3IsIDEpO1xuICAgICRpdGVtLWxpc3Qtc3R5bGUtY29udGVudC1jb3B5LWFib3ZlLWNvbG9yOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3IsIDEpO1xuICAgICRpdGVtLWxpc3Qtc3R5bGUtY29udGVudC1jb3B5LWJlbG93LWNvbG9yOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3IsIDEpO1xuXG5cbiAgICBAaW1wb3J0ICcuLi9hY19zX19pdGVtcy1nbG9iYWxzL19faXRlbV9nbG9iYWxzJztcbiAgICBcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLmFjX2l0ZW1faW1hZ2UtY29udGFpbmVyIHtcbiAgICAgICAgYm9yZGVyOiAkZGVmYXVsdC1ib3JkZXI7XG4gICAgfVxuXG4gICAgLmFjX2l0ZW1fY29udGVudF9wcmljZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICB9ICAgXG4gICAgLmFjX2l0ZW1fY29udGVudF9wcmljZV9iZWZvcmUge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgb3BhY2l0eTogLjY7XG4gICAgfSBcbiAgICAuYWNfaXRlbV9jb250ZW50X3ByaWNlX2N1cnJlbnQge1xuICAgICAgICBmb250LXNpemU6IDEyMCU7XG5cbiAgICB9XG5cbiAgICAuYWNfaXRlbV9jb250ZW50X2xhYmVsIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEyJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgei1pbmRleDogMTE7XG4gICAgICAgIGJhY2tncm91bmQ6ICRicmFuZC1wcmltYXJ5LWRhcmtlcjtcbiAgICAgICAgY29sb3I6ICRkZWZhdWx0LXRleHQtY29sb3ItbGlnaHQ7XG4gICAgICAgIHBhZGRpbmc6ICRkZWZhdWx0LXBhZGRpbmcgLyAzICRkZWZhdWx0LXBhZGRpbmcgLyAyO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBAaW5jbHVkZSBmb250LWhlYWRpbmdzLWJvbGQ7XG4gICAgfVxuXG59IC8vIGVuZCBzY29wZSIsIlxuLyogUVVPVEVTIC0gMVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5bZGF0YS1zLXR5cGU9XCJxdW90ZXNcIl0ge1xuXG4gICAgLy8gaXRlbXNcbiAgICAkaXRlbXMtc2xpZGVyOiB0cnVlO1xuICAgICRpdGVtcy1zbGlkZXItZm91Yy1oZWlnaHQ6IDIwMHB4OyAvLyB3aGF0IG5lZWRzIHRvIGJlIHRoZSBmbGFzaC1vZi11bndhbnRlZC1jb250ZW50IGhlaWdodCBiZWZvcmUgc2xpZGVyIGhhcyBsYW9kZWQuXG5cbiAgICAkaXRlbXMtYW1vdW50OiAwOyAvLyAwIGNvdW50cyBmb3IgdW5kZWZpbmVkLCBpZiBhc3NpZ25lZCB0aGUgY29kZSB3aWxsIGJlIG1vcmUgb3B0aW1pc2VkXG4gICAgJGl0ZW1zLWNvbnRlbnQtb3Zlci1pbWFnZTogZmFsc2U7XG4gICAgJGl0ZW1zLW1heC13aWR0aDogJG1heC1jb250ZW50LTEyMDA7XG4gICAgJGl0ZW1zLWhhdmUtcGFkZGluZzogZmFsc2U7XG4gICAgJGl0ZW1zLWhhdmUtYm9yZGVyLWRpdmlkZXJzOiBmYWxzZTtcbiAgICAkaXRlbXMtaGF2ZS1ib3JkZXItYmVsb3c6IGZhbHNlO1xuICAgICRpdGVtcy1oaWRlLWJvcmRlci1iZWxvdy1vbi1sYXN0LXJvdzogZmFsc2U7XG4gICAgJGl0ZW1zLWJvcmRlci1yYWRpdXM6IDA7IFxuICAgICRpdGVtcy1maXJzdC1pdGVtLWZ1bGwtd2lkdGg6IGZhbHNlO1xuICAgICRpdGVtcy1maXJzdC1pdGVtLWZ1bGwtd2lkdGgtaGVpZ2h0LW11bHRpcGxpZXI6IDEuNTtcbiAgICAkaXRlbXMtb24tc21hbGwtdHdvLWl0ZW1zLWEtcm93OiB0cnVlO1xuICAgICRpdGVtLWJhY2tncm91bmQ6IG5vbmU7XG4gICAgJGl0ZW0tYmFja2dyb3VuZC1ob3Zlcjogbm9uZTtcblxuICAgIC8vIGNvbHVtbnNcbiAgICAkaXRlbXMtY29sdW1ucy1lbmFibGVkOiBmYWxzZTtcbiAgICAkaXRlbXMtY29sdW1ucy1icmVha3BvaW50OiA4MDBweDsgXG4gICAgJGl0ZW1zLWNvbHVtbnMtaGVpZ2h0OiA0MDBweDsgXG4gICAgJGl0ZW1zLWNvbHVtbnMtaGlkZS1sYXN0LW9uZS1iZWxvdy1icmVha3BvaW50OiBmYWxzZTtcbiAgICAkaXRlbXMtY29sdW1ucy1pY29uLWltYWdlLWNvbWJpbmF0aW9uOiB0cnVlO1xuXG4gICAgLy8gaXRlbVxuICAgICRpdGVtLW1hcmdpbi1ib3R0b206IDEuNGVtOyAvLyAxLjRlbVxuICAgICRpdGVtLWJvcmRlcjogJGRlZmF1bHQtYm9yZGVyOyAvLyBkZWZpbmVzIHRoZSBhcHBlYXJhbmNlLCBub3QgdGhlIGRpc3BsYXlcbiAgICAkaXRlbS1zaGFkb3ctZW5hYmxlZDogZmFsc2U7XG5cbiAgICAvLyBpbWFnZVxuICAgICRpdGVtLWltYWdlLWNvbnRhaW5lci1lbmFibGVkOiBmYWxzZTtcbiAgICAkaXRlbS1pbWFnZS1lbmFibGVkOiB0cnVlO1xuICAgICRpdGVtLWltYWdlLWhlaWdodDogMTYwcHg7XG4gICAgJGl0ZW0taW1hZ2UtaW5pdGlhbC1mYWRlOiAxO1xuICAgICRpdGVtLWltYWdlLWhvdmVyLWZhZGU6IC44O1xuICAgICRpdGVtLWltYWdlLWdyYWRpZW50LWJlZm9yZTogdHJ1ZTsgLy8gd2hlbiBpdGVtLWNvbnRlbnQtb3Zlci1pbWFnZVxuICAgICRpdGVtLWltYWdlLWdyYWRpZW50LWNvbG9yOiAkZGVmYXVsdC1iYWNrZ3JvdW5kLWRhcms7XG4gICAgJGl0ZW0taW1hZ2UtZ3JhZGllbnQtYmVmb3JlLXBvc2l0aW9uOiAnYm90dG9tJzsgLy8gdG9wIG9yIGJvdHRvbVxuICAgICRpdGVtLWltYWdlLWJhY2tncm91bmQtY29sb3I6ICRkZWZhdWx0LWJhY2tncm91bmQtZGFyaztcbiAgICAkaXRlbS1pbWFnZS1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiAgJGRlZmF1bHQtYmFja2dyb3VuZC1kYXJrO1xuICAgICRpdGVtLWltYWdlLWJvcmRlci1yYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXM7IFxuXG5cbiAgICAvLyBjb250ZW50XG4gICAgJGl0ZW0tY29udGVudC1wYWRkaW5nOiAwOyAvLyAkZGVmYXVsdC1wYWRkaW5nOyBcbiAgICAkaXRlbS1jb250ZW50LWJhY2tncm91bmQ6IG5vbmU7XG4gICAgJGl0ZW0tY29udGVudC1iYWNrZ3JvdW5kLWhvdmVyOiBub25lO1xuICAgICRpdGVtLWNvbnRlbnQtYWxpZ246ICdsYic7IC8vIGx0LCBsYywgbGIsIGN0LCBjYywgY2IsIHJ0LCByYywgcmIgfHwgIHdoZW4gaXRlbS1jb250ZW50LW92ZXItaW1hZ2VcbiAgICAkaXRlbS1jb250ZW50LWNvcHktcGFkZGluZzogJGRlZmF1bHQtcGFkZGluZyAwIDsgXG4gICAgJGl0ZW0tY29udGVudC1jb3B5LWFsaWduOiAnbGVmdCc7IC8vIGxlZnQgb3IgY2VudGVyXG5cbiAgICAkaXRlbS1jb250ZW50LWljb24tZW5hYmxlZDogZmFsc2U7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLWNlbnRlcmVkOiB0cnVlO1xuICAgICRpdGVtLWNvbnRlbnQtaWNvbi1jb2xvcjogcmdiYSgkZGVmYXVsdC1pY29uLWNvbG9yLWRhcmssIDEpO1xuICAgICRpdGVtLWNvbnRlbnQtaWNvbi1ob3Zlci1jb2xvcjogcmdiYSgkZGVmYXVsdC1pY29uLWNvbG9yLWxpZ2h0LCAuNCk7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLXNpemU6IDgwcHg7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLXBhZGRpbmc6IDIwcHg7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLW1hcmdpbjogMCAwIDIwcHggMDtcbiAgICAkaXRlbS1jb250ZW50LWljb24tYmFja2dyb3VuZDogbm9uZTtcbiAgICAkaXRlbS1jb250ZW50LWljb24tYmFja2dyb3VuZC1ob3Zlcjogbm9uZTtcbiAgICAkaXRlbS1jb250ZW50LWljb24tcm91bmQ6IHRydWU7XG4gICAgXG4gICAgJGl0ZW0tY29udGVudC10aXRsZS1lbmFibGVkOiB0cnVlOyBcbiAgICAkaXRlbS1jb250ZW50LXRpdGxlLWNvbG9yOiAkZGVmYXVsdC10ZXh0LWNvbG9yO1xuICAgICRpdGVtLWNvbnRlbnQtdGl0bGUtaG92ZXItY29sb3I6IHJnYmEoJGRlZmF1bHQtdGV4dC1jb2xvciwgLjYpO1xuXG4gICAgJGl0ZW0tY29udGVudC1jb3B5LWFib3ZlLWVuYWJsZWQ6IHRydWU7ICAgIFxuICAgICRpdGVtLWNvbnRlbnQtY29weS1hYm92ZS1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLCAuNik7XG4gICAgJGl0ZW0tY29udGVudC1jb3B5LWFib3ZlLWhvdmVyLWNvbG9yOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3IsIC40KTtcblxuICAgICRpdGVtLWNvbnRlbnQtY29weS1iZWxvdy1lbmFibGVkOiB0cnVlOyAgICBcbiAgICAkaXRlbS1jb250ZW50LWNvcHktYmVsb3ctY29sb3I6IHJnYmEoJGRlZmF1bHQtdGV4dC1jb2xvciwgLjYpO1xuICAgICRpdGVtLWNvbnRlbnQtY29weS1iZWxvdy1ob3Zlci1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLCAuNCk7XG5cbiAgICAvLyBpY29uXG4gICAgJGl0ZW0tc2hvdy1pY29uOiB0cnVlO1xuICAgICRpdGVtLWljb24tY29sb3I6IHJnYmEoJGRlZmF1bHQtaWNvbi1jb2xvci1kYXJrLCAuNik7XG4gICAgJGl0ZW0taWNvbi1ob3Zlci1jb2xvcjogcmdiYSgkZGVmYXVsdC1pY29uLWNvbG9yLWRhcmssIDEpO1xuICAgICRpdGVtLWljb24tc2l6ZTogMS42ZW07XG4gICAgJGl0ZW0taWNvbi1wb3NpdGlvbjogJ3JiJzsgLy8gbHQsIGxiLCBydCwgcmJcbiAgICAkaXRlbS1pY29uLWluc2V0LWxlZnQtcmlnaHQ6IDA7IC8vICRkZWZhdWx0LXBhZGRpbmc7IFxuICAgICRpdGVtLWljb24taW5zZXQtdG9wLWJvdHRvbTogJGRlZmF1bHQtcGFkZGluZzsgXG4gICAgXG5cbiAgICAvLyBsaXN0IHN0eWxlIG9uIHNtYWxsIHwgaW1hZ2UgbGVmdCBhbmQgY29udGVudCByaWdodCB8IGFsbCBiYWNrZ3JvdW5kIHdpbGwgYmUgcmVzZXQgfCBjb250ZW50IGljb24gaXMgc2V0IGFic29sdXRlXG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1vbi1zbWFsbDogdHJ1ZTsgXG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1pbWFnZS13aWR0aDogODBweDtcbiAgICAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtaWNvbi1zaXplOiA2MHB4OyBcbiAgICAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtaWNvbi1wYWRkaW5nOiAxNHB4OyBcbiAgICAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtaWNvbi1iYWNrZ3JvdW5kOiAkZGVmYXVsdC1iYWNrZ3JvdW5kLWRhcms7XG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LWljb24tY29sb3I6ICAkZGVmYXVsdC1pY29uLWNvbG9yLWxpZ2h0O1xuICAgICRpdGVtLWxpc3Qtc3R5bGUtY29udGVudC10aXRsZS1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLCAxKTtcbiAgICAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtY29weS1hYm92ZS1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLCAxKTtcbiAgICAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtY29weS1iZWxvdy1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLCAxKTtcblxuXG4gICAgQGltcG9ydCAnLi4vYWNfc19faXRlbXMtZ2xvYmFscy9fX2l0ZW1fZ2xvYmFscyc7XG4gICAgXG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiAgICBcbiAgICAuYWNfaXRlbSB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjVlbSAkZGVmYXVsdC1wYWRkaW5nICogNDtcbiAgICB9XG4gICAgLmFjX2l0ZW1fY29udGFpbmVyIHtcbiAgICAgICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICB9XG4gICAgLmFjX2l0ZW1fY29udGVudF9jb3B5IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7IFxuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH0gICBcblxuICAgIC8vXG4gICAgLy8gICAgICBRVU9URVNcbiAgICAvL1xuXG4gICAgLmFjX2l0ZW1fY29udGVudF90aXRsZV9xdW90ZS1sZWZ0LFxuICAgIC5hY19pdGVtX2NvbnRlbnRfdGl0bGVfcXVvdGUtcmlnaHQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB3aWR0aDogM2VtO1xuICAgICAgICAgICAgaGVpZ2h0OiAzZW07XG4gICAgICAgICAgICBmaWxsOiByZ2JhKCRkZWZhdWx0LWljb24tY29sb3ItZGFyaywgLjIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5hY19pdGVtX2NvbnRlbnRfdGl0bGVfcXVvdGUtbGVmdCB7XG4gICAgICAgIHRvcDogLTEuNWVtO1xuICAgICAgICBsZWZ0OiAtMS41ZW07XG4gICAgfVxuICAgLmFjX2l0ZW1fY29udGVudF90aXRsZV9xdW90ZS1yaWdodCB7XG4gICAgICAgIGJvdHRvbTogLTEuNWVtO1xuICAgICAgICByaWdodDogLTEuNWVtO1xuICAgIH1cblxuICAgIC8vXG4gICAgLy8gICAgICBBVVRIT1JcbiAgICAvL1xuXG4gICAgLmFjX2l0ZW1fYXV0aG9yIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICB9XG5cbiAgICAvL1xuICAgIC8vICAgICAgQVZBVEFSXG4gICAgLy9cblxuICAgIC5hY19pdGVtX2F2YXRhcl9jb250YWluZXIge1xuICAgICAgICB3aWR0aDogNGVtO1xuICAgICAgICBoZWlnaHQ6IDRlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXI6IDRweCBzb2xpZCAkYnJhbmQtd2hpdGU7XG4gICAgICAgIGJveC1zaGFkb3c6ICRkZWZhdWx0LWJveC1zaGFkb3c7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG4gICAgLmFjX2l0ZW1fYXZhdGFyX2ltYWdlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIH1cblxuICAgIC8vXG4gICAgLy8gICAgICBDT05URU5UXG4gICAgLy9cblxuICAgIC5hY19pdGVtX2NvbnRlbnRfY29weS1hYm92ZSB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtc2l6ZTogODUlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgIH1cbiAgICAuYWNfaXRlbV9jb250ZW50X3RpdGxlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtaGVhZGluZ3MtYm9sZDtcbiAgICAgICAgZm9udC1zaXplOiAxMTAlOyAgIFxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0MCU7ICAgXG4gICAgICAgIH1cbiAgICB9XG4gICAgLmFjX2l0ZW1fY29udGVudF9jb3B5LWJlbG93IHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC1zaXplOiA4NSU7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyAgICAgIFNMSUNLXG4gICAgLy9cblxuICAgIC5zbGljay1kb3RzIHtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgxMDAlKTtcbiAgICB9XG5cbn0gLy8gZW5kIHNjb3BlIiwiLy9cbi8vICAgICAgSUYgU0xJREVSXG4vL1xuXG5cbkBpZiAkaXRlbXMtc2xpZGVyID09IHRydWUge1xuICAgIC5hY19jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgei1pbmRleDogaW5oZXJpdDsgLy8gc2xpY2sgc2xpZGVyIHdpbGwgaGFuZGxlIHotaW5kZXhcblxuICAgICAgICAvL3NsaWNrIGZ1b2MgZml4XG4gICAgICAgIG1heC1oZWlnaHQ6ICRpdGVtcy1zbGlkZXItZm91Yy1oZWlnaHQ7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJGRlZmF1bHQtdHJhbnNpdGlvbi1zcGVlZDtcblxuICAgICAgICAvLyBkcm9wIGZvdWMgaWYgc2xpY2sgaXMgaW5pdGlhbGl6ZWRcbiAgICAgICAgJi5zbGljay1pbml0aWFsaXplZCAge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIFtkYXRhLXMtYW1vdW50LWl0ZW1dIHtcbiAgICAvLyBiZWNhdXNlIGFsbCBpdGVtcyBhcmUgaW4gb25lIGxpbmUsIG1hcmdpbiBvbiB0aGUgYm90dG9tIG1ha2Ugbm8gc2Vuc2VcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAvLyBvdmVycnVsZSBib3JkZXIgbGVmdCBiZWhhdmlvdXJcbiAgICBAaWYgJGl0ZW1zLWhhdmUtYm9yZGVyLWRpdmlkZXJzID09IHRydWUge1xuICAgICAgICAuc2xpY2stc2xpZGUge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLnNsaWNrLWFjdGl2ZSB+IC5zbGljay1hY3RpdmV7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJGl0ZW0tYm9yZGVyICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBpZiBhbW91bnQgb24gc21hbGwgPT0gMSwgd2UgY2FuIGhpZGUgdGhlIGJvcmRlciBhbGwgdG9nZXRoZXIuIFRoaXMgYWxzbyBwcmV2ZW50cyBjb250ZW50IGdyb3cgZmxpY2tlcnNcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgW2RhdGEtcy1hbW91bnQtaXRlbV0ge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxufSIsIlxuLyogUkVGRVJFTkNFUyAtIDJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuW2RhdGEtcy10eXBlPVwicmVmZXJlbmNlc1wiXSB7XG5cbiAgICAvLyBpdGVtcyBzbGlkZXJcbiAgICAkaXRlbXMtc2xpZGVyOiBmYWxzZTtcbiAgICAkaXRlbXMtc2xpZGVyLWZvdWMtaGVpZ2h0OiAyMDBweDsgLy8gd2hhdCBuZWVkcyB0byBiZSB0aGUgZmxhc2gtb2YtdW53YW50ZWQtY29udGVudCBoZWlnaHQgYmVmb3JlIHNsaWRlciBoYXMgbGFvZGVkLlxuXG4gICAgLy8gaXRlbXNcbiAgICAkaXRlbXMtYW1vdW50OiAwOyAvLyAwIGNvdW50cyBmb3IgdW5kZWZpbmVkLCBpZiBhc3NpZ25lZCB0aGUgY29kZSB3aWxsIGJlIG1vcmUgb3B0aW1pc2VkXG4gICAgJGl0ZW1zLWNvbnRlbnQtb3Zlci1pbWFnZTogdHJ1ZTtcbiAgICAkaXRlbXMtbWF4LXdpZHRoOiAkbWF4LWNvbnRlbnQtMTAwMDtcbiAgICAkaXRlbXMtaGF2ZS1wYWRkaW5nOiB0cnVlO1xuICAgICRpdGVtcy1oYXZlLWJvcmRlci1kaXZpZGVyczogZmFsc2U7XG4gICAgJGl0ZW1zLWhhdmUtYm9yZGVyLWJlbG93OiBmYWxzZTtcbiAgICAkaXRlbXMtaGlkZS1ib3JkZXItYmVsb3ctb24tbGFzdC1yb3c6IHRydWU7XG4gICAgJGl0ZW1zLWJvcmRlci1yYWRpdXM6IDA7IFxuICAgICRpdGVtcy1maXJzdC1pdGVtLWZ1bGwtd2lkdGg6IGZhbHNlO1xuICAgICRpdGVtcy1maXJzdC1pdGVtLWZ1bGwtd2lkdGgtaGVpZ2h0LW11bHRpcGxpZXI6IDEuNTtcbiAgICAkaXRlbXMtb24tc21hbGwtdHdvLWl0ZW1zLWEtcm93OiBmYWxzZTtcbiAgICAkaXRlbS1iYWNrZ3JvdW5kOiBub25lO1xuICAgICRpdGVtLWJhY2tncm91bmQtaG92ZXI6IG5vbmU7XG5cbiAgICAvLyBjb2x1bW5zXG4gICAgJGl0ZW1zLWNvbHVtbnMtZW5hYmxlZDogZmFsc2U7XG4gICAgJGl0ZW1zLWNvbHVtbnMtYnJlYWtwb2ludDogODAwcHg7IFxuICAgICRpdGVtcy1jb2x1bW5zLWhlaWdodDogNDAwcHg7IFxuICAgICRpdGVtcy1jb2x1bW5zLWhpZGUtbGFzdC1vbmUtYmVsb3ctYnJlYWtwb2ludDogZmFsc2U7XG4gICAgJGl0ZW1zLWNvbHVtbnMtaWNvbi1pbWFnZS1jb21iaW5hdGlvbjogdHJ1ZTtcblxuICAgIC8vIGl0ZW1cbiAgICAkaXRlbS1tYXJnaW4tYm90dG9tOiAxLjRlbTsgLy8gMS40ZW1cbiAgICAkaXRlbS1ib3JkZXI6ICRkZWZhdWx0LWJvcmRlcjsgLy8gZGVmaW5lcyB0aGUgYXBwZWFyYW5jZSwgbm90IHRoZSBkaXNwbGF5XG4gICAgJGl0ZW0tc2hhZG93LWVuYWJsZWQ6IGZhbHNlO1xuXG4gICAgLy8gaW1hZ2VcbiAgICAkaXRlbS1pbWFnZS1jb250YWluZXItZW5hYmxlZDogdHJ1ZTtcbiAgICAkaXRlbS1pbWFnZS1lbmFibGVkOiB0cnVlO1xuICAgICRpdGVtLWltYWdlLWhlaWdodDogMjQwcHg7XG4gICAgJGl0ZW0taW1hZ2UtaW5pdGlhbC1mYWRlOiAuNjtcbiAgICAkaXRlbS1pbWFnZS1ob3Zlci1mYWRlOiAuNDtcbiAgICAkaXRlbS1pbWFnZS1ncmFkaWVudC1iZWZvcmU6IHRydWU7IC8vIHdoZW4gaXRlbS1jb250ZW50LW92ZXItaW1hZ2VcbiAgICAkaXRlbS1pbWFnZS1ncmFkaWVudC1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1kYXJrO1xuICAgICRpdGVtLWltYWdlLWdyYWRpZW50LWJlZm9yZS1wb3NpdGlvbjogJ2JvdHRvbSc7IC8vIHRvcCBvciBib3R0b21cbiAgICAkaXRlbS1pbWFnZS1iYWNrZ3JvdW5kLWNvbG9yOiAkZGVmYXVsdC1iYWNrZ3JvdW5kLWRhcms7XG4gICAgJGl0ZW0taW1hZ2UtYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogJGRlZmF1bHQtYmFja2dyb3VuZC1kYXJrO1xuICAgICRpdGVtLWltYWdlLWJvcmRlci1yYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXM7IFxuXG4gICAgLy8gY29udGVudFxuICAgICRpdGVtLWNvbnRlbnQtcGFkZGluZzogICRkZWZhdWx0LXBhZGRpbmc7IFxuICAgICRpdGVtLWNvbnRlbnQtYmFja2dyb3VuZDogbm9uZTtcbiAgICAkaXRlbS1jb250ZW50LWJhY2tncm91bmQtaG92ZXI6IG5vbmU7XG4gICAgJGl0ZW0tY29udGVudC1hbGlnbjogJ2NjJzsgLy8gbHQsIGxjLCBsYiwgY3QsIGNjLCBjYiwgcnQsIHJjLCByYiB8fCAgd2hlbiBpdGVtLWNvbnRlbnQtb3Zlci1pbWFnZVxuICAgICRpdGVtLWNvbnRlbnQtY29weS1wYWRkaW5nOiAkZGVmYXVsdC1wYWRkaW5nIDAgOyBcbiAgICAkaXRlbS1jb250ZW50LWNvcHktYWxpZ246ICdsZWZ0JzsgLy8gbGVmdCBvciBjZW50ZXJcblxuICAgICRpdGVtLWNvbnRlbnQtaWNvbi1lbmFibGVkOiB0cnVlO1xuICAgICRpdGVtLWNvbnRlbnQtaWNvbi1jZW50ZXJlZDogdHJ1ZTtcbiAgICAkaXRlbS1jb250ZW50LWljb24tY29sb3I6IHJnYmEoJGRlZmF1bHQtaWNvbi1jb2xvci1saWdodCwgMSk7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLWhvdmVyLWNvbG9yOiByZ2JhKCRkZWZhdWx0LWljb24tY29sb3ItZGFyaywgMSk7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLXNpemU6IDgwcHg7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLXBhZGRpbmc6IDEwcHg7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLW1hcmdpbjogMCAwIDIwcHggMDtcbiAgICAkaXRlbS1jb250ZW50LWljb24tYmFja2dyb3VuZDogcmdiYSgkZGVmYXVsdC1iYWNrZ3JvdW5kLWxpZ2h0LCAuNSk7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGRlZmF1bHQtYmFja2dyb3VuZC1saWdodCwgMSk7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLXJvdW5kOiB0cnVlO1xuICAgIFxuICAgICRpdGVtLWNvbnRlbnQtdGl0bGUtZW5hYmxlZDogdHJ1ZTsgXG4gICAgJGl0ZW0tY29udGVudC10aXRsZS1jb2xvcjogJGRlZmF1bHQtdGV4dC1jb2xvci1saWdodDtcbiAgICAkaXRlbS1jb250ZW50LXRpdGxlLWhvdmVyLWNvbG9yOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3ItbGlnaHQsIC42KTtcblxuICAgICRpdGVtLWNvbnRlbnQtY29weS1hYm92ZS1lbmFibGVkOiB0cnVlOyAgICBcbiAgICAkaXRlbS1jb250ZW50LWNvcHktYWJvdmUtY29sb3I6IHJnYmEoJGRlZmF1bHQtdGV4dC1jb2xvci1saWdodCwgLjYpO1xuICAgICRpdGVtLWNvbnRlbnQtY29weS1hYm92ZS1ob3Zlci1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLWxpZ2h0LCAuNCk7XG5cbiAgICAkaXRlbS1jb250ZW50LWNvcHktYmVsb3ctZW5hYmxlZDogZmFsc2U7ICAgIFxuICAgICRpdGVtLWNvbnRlbnQtY29weS1iZWxvdy1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLWxpZ2h0LCAuNik7XG4gICAgJGl0ZW0tY29udGVudC1jb3B5LWJlbG93LWhvdmVyLWNvbG9yOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3ItbGlnaHQsIC40KTtcblxuICAgIC8vIGljb25cbiAgICAkaXRlbS1zaG93LWljb246IHRydWU7XG4gICAgJGl0ZW0taWNvbi1jb2xvcjogcmdiYSgkZGVmYXVsdC1pY29uLWNvbG9yLWxpZ2h0LCAuNCk7XG4gICAgJGl0ZW0taWNvbi1ob3Zlci1jb2xvcjogcmdiYSgkZGVmYXVsdC1pY29uLWNvbG9yLWxpZ2h0LCAxKTtcbiAgICAkaXRlbS1pY29uLXNpemU6IDEuNmVtO1xuICAgICRpdGVtLWljb24tcG9zaXRpb246ICdyYic7IC8vIGx0LCBsYiwgcnQsIHJiXG4gICAgJGl0ZW0taWNvbi1pbnNldC1sZWZ0LXJpZ2h0OiAkZGVmYXVsdC1wYWRkaW5nOyBcbiAgICAkaXRlbS1pY29uLWluc2V0LXRvcC1ib3R0b206ICRkZWZhdWx0LXBhZGRpbmc7IFxuICAgIFxuXG4gICAgLy8gbGlzdCBzdHlsZSBvbiBzbWFsbCB8IGltYWdlIGxlZnQgYW5kIGNvbnRlbnQgcmlnaHQgfCBhbGwgYmFja2dyb3VuZCB3aWxsIGJlIHJlc2V0IHwgY29udGVudCBpY29uIGlzIHNldCBhYnNvbHV0ZS4gTm90IHBvc3NpYmxlIGluIGNvbmp1bmN0aW9uIHdpdGggYSBzbGlkZXJcbiAgICAkaXRlbS1saXN0LXN0eWxlLW9uLXNtYWxsOiBmYWxzZTsgXG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1pbWFnZS13aWR0aDogMTAwcHg7XG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LWljb24tc2l6ZTogNjBweDsgXG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LWljb24tcGFkZGluZzogMTRweDsgXG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LWljb24tYmFja2dyb3VuZDogJGRlZmF1bHQtYmFja2dyb3VuZC1saWdodDtcbiAgICAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtaWNvbi1jb2xvcjogJGRlZmF1bHQtaWNvbi1jb2xvci1kYXJrO1xuICAgICRpdGVtLWxpc3Qtc3R5bGUtY29udGVudC10aXRsZS1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLCAxKTtcbiAgICAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtY29weS1hYm92ZS1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLCAxKTtcbiAgICAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtY29weS1iZWxvdy1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLCAxKTtcblxuICAgIEBpbXBvcnQgJy4uL2FjX3NfX2l0ZW1zLWdsb2JhbHMvX19pdGVtX2dsb2JhbHMnO1xuICAgXG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXG4gICAgLmFjX2l0ZW1faW1hZ2UtY29udGFpbmVyIHtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAzcHggJGJyYW5kLXdoaXRlO1xuICAgIH1cbiAgICAuYWNfaXRlbV9pbWFnZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgfVxuXG4gICAgLmFjX2l0ZW1fY29udGVudF90aXRsZSB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtaGVhZGluZ3MtYm9sZDtcbiAgICAgICAgZm9udC1zaXplOiAxNTAlO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG5cbn0gLy8gZW5kIHNjb3BlIiwiXG4vKiBSRUZFUkVOQ0VTLUdSSUQgLSAxXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbltkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXMtZ3JpZFwiXSB7XG5cbiAgICAvLyBpdGVtcyBzbGlkZXJcbiAgICAkaXRlbXMtc2xpZGVyOiBmYWxzZTsgLy8gY29sdW1ucyBhbmQgc2xpZGVycyBkb24ndCBtaXhcbiAgICAkaXRlbXMtc2xpZGVyLWZvdWMtaGVpZ2h0OiAyMDBweDtcblxuICAgIC8vIGl0ZW1zXG4gICAgJGl0ZW1zLWFtb3VudDogMDsgLy8gMCBjb3VudHMgZm9yIHVuZGVmaW5lZCwgaWYgYXNzaWduZWQgdGhlIGNvZGUgd2lsbCBiZSBtb3JlIG9wdGltaXNlZFxuICAgICRpdGVtcy1jb250ZW50LW92ZXItaW1hZ2U6IHRydWU7IC8vIGhhcyB0byBiZSB0cnVlIGZvciBncmlkIGl0ZW1zXG4gICAgJGl0ZW1zLW1heC13aWR0aDogJG1heC1jb250ZW50LTEwMDA7XG4gICAgJGl0ZW1zLWhhdmUtcGFkZGluZzogdHJ1ZTtcbiAgICAkaXRlbXMtaGF2ZS1ib3JkZXItZGl2aWRlcnM6IGZhbHNlOyAvLyBrZWVwIGZhbHNlIGZvciBncmlkXG4gICAgJGl0ZW1zLWhhdmUtYm9yZGVyLWJlbG93OiBmYWxzZTsgLy8ga2VlcCBmYWxzZSBmb3IgZ3JpZFxuICAgICRpdGVtcy1oaWRlLWJvcmRlci1iZWxvdy1vbi1sYXN0LXJvdzogZmFsc2U7IC8vIGtlZXAgZmFsc2UgZm9yIGdyaWRcbiAgICAkaXRlbXMtYm9yZGVyLXJhZGl1czogMDsgXG4gICAgJGl0ZW1zLWZpcnN0LWl0ZW0tZnVsbC13aWR0aDogZmFsc2U7IC8vIGtlZXAgZmFsc2UgZm9yIGdyaWRcbiAgICAkaXRlbXMtZmlyc3QtaXRlbS1mdWxsLXdpZHRoLWhlaWdodC1tdWx0aXBsaWVyOiAxLjU7XG4gICAgJGl0ZW1zLW9uLXNtYWxsLXR3by1pdGVtcy1hLXJvdzogZmFsc2U7IC8vIGtlZXAgZmFsc2UgZm9yIGdyaWRcbiAgICAkaXRlbS1iYWNrZ3JvdW5kOiBub25lO1xuICAgICRpdGVtLWJhY2tncm91bmQtaG92ZXI6IG5vbmU7XG5cbiAgICAvLyBjb2x1bW5zXG4gICAgJGl0ZW1zLWNvbHVtbnMtZW5hYmxlZDogdHJ1ZTtcbiAgICAkaXRlbXMtY29sdW1ucy1icmVha3BvaW50OiA4MDBweDsgXG4gICAgJGl0ZW1zLWNvbHVtbnMtaGVpZ2h0OiA0MDBweDsgXG4gICAgJGl0ZW1zLWNvbHVtbnMtaGlkZS1sYXN0LW9uZS1iZWxvdy1icmVha3BvaW50OiB0cnVlO1xuICAgICRpdGVtcy1jb2x1bW5zLWljb24taW1hZ2UtY29tYmluYXRpb246IHRydWU7XG5cbiAgICAvLyBpdGVtXG4gICAgJGl0ZW0tbWFyZ2luLWJvdHRvbTogMjBweDsgLy8gMS40ZW1cbiAgICAkaXRlbS1ib3JkZXI6ICRkZWZhdWx0LWJvcmRlcjsgLy8gZGVmaW5lcyB0aGUgYXBwZWFyYW5jZSwgbm90IHRoZSBkaXNwbGF5XG4gICAgJGl0ZW0tc2hhZG93LWVuYWJsZWQ6IGZhbHNlO1xuXG4gICAgLy8gaW1hZ2VcbiAgICAkaXRlbS1pbWFnZS1jb250YWluZXItZW5hYmxlZDogdHJ1ZTtcbiAgICAkaXRlbS1pbWFnZS1lbmFibGVkOiB0cnVlO1xuICAgICRpdGVtLWltYWdlLWhlaWdodDogMjQwcHg7XG4gICAgJGl0ZW0taW1hZ2UtaW5pdGlhbC1mYWRlOiAuMjtcbiAgICAkaXRlbS1pbWFnZS1ob3Zlci1mYWRlOiAuNDtcbiAgICAkaXRlbS1pbWFnZS1ncmFkaWVudC1iZWZvcmU6IHRydWU7IC8vIHdoZW4gaXRlbS1jb250ZW50LW92ZXItaW1hZ2VcbiAgICAkaXRlbS1pbWFnZS1ncmFkaWVudC1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1kYXJrO1xuICAgICRpdGVtLWltYWdlLWdyYWRpZW50LWJlZm9yZS1wb3NpdGlvbjogJ2JvdHRvbSc7IC8vIHRvcCBvciBib3R0b21cbiAgICAkaXRlbS1pbWFnZS1iYWNrZ3JvdW5kLWNvbG9yOiAkZGVmYXVsdC1iYWNrZ3JvdW5kLWRhcms7XG4gICAgJGl0ZW0taW1hZ2UtYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogJGRlZmF1bHQtYmFja2dyb3VuZC1kYXJrO1xuICAgICRpdGVtLWltYWdlLWJvcmRlci1yYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXM7IFxuXG4gICAgLy8gY29udGVudFxuICAgICRpdGVtLWNvbnRlbnQtcGFkZGluZzogMDsgLy8gJGRlZmF1bHQtcGFkZGluZzsgXG4gICAgJGl0ZW0tY29udGVudC1iYWNrZ3JvdW5kOiBub25lO1xuICAgICRpdGVtLWNvbnRlbnQtYmFja2dyb3VuZC1ob3Zlcjogbm9uZTtcbiAgICAkaXRlbS1jb250ZW50LWFsaWduOiAnY2MnOyAvLyBsdCwgbGMsIGxiLCBjdCwgY2MsIGNiLCBydCwgcmMsIHJiIHx8ICB3aGVuIGl0ZW0tY29udGVudC1vdmVyLWltYWdlXG4gICAgJGl0ZW0tY29udGVudC1jb3B5LXBhZGRpbmc6ICRkZWZhdWx0LXBhZGRpbmcgLyAyOyBcbiAgICAkaXRlbS1jb250ZW50LWNvcHktYWxpZ246ICdsZWZ0JzsgLy8gbGVmdCBvciBjZW50ZXJcblxuICAgICRpdGVtLWNvbnRlbnQtaWNvbi1lbmFibGVkOiB0cnVlO1xuICAgICRpdGVtLWNvbnRlbnQtaWNvbi1jZW50ZXJlZDogdHJ1ZTtcbiAgICAkaXRlbS1jb250ZW50LWljb24tY29sb3I6IHJnYmEoJGRlZmF1bHQtaWNvbi1jb2xvci1saWdodCwgMSk7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLWhvdmVyLWNvbG9yOiByZ2JhKCRkZWZhdWx0LWljb24tY29sb3ItZGFyaywgMSk7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLXNpemU6IDgwcHg7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLXBhZGRpbmc6IDEwcHg7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLW1hcmdpbjogMCAwIDIwcHggMDtcbiAgICAkaXRlbS1jb250ZW50LWljb24tYmFja2dyb3VuZDogcmdiYSgkZGVmYXVsdC1iYWNrZ3JvdW5kLWxpZ2h0LCAuNSk7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGRlZmF1bHQtYmFja2dyb3VuZC1saWdodCwgMSk7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLXJvdW5kOiB0cnVlO1xuICAgIFxuICAgICRpdGVtLWNvbnRlbnQtdGl0bGUtZW5hYmxlZDogdHJ1ZTsgXG4gICAgJGl0ZW0tY29udGVudC10aXRsZS1jb2xvcjogJGRlZmF1bHQtdGV4dC1jb2xvci1saWdodDtcbiAgICAkaXRlbS1jb250ZW50LXRpdGxlLWhvdmVyLWNvbG9yOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3ItbGlnaHQsIC42KTtcblxuICAgICRpdGVtLWNvbnRlbnQtY29weS1hYm92ZS1lbmFibGVkOiB0cnVlOyAgICBcbiAgICAkaXRlbS1jb250ZW50LWNvcHktYWJvdmUtY29sb3I6IHJnYmEoJGRlZmF1bHQtdGV4dC1jb2xvci1saWdodCwgLjYpO1xuICAgICRpdGVtLWNvbnRlbnQtY29weS1hYm92ZS1ob3Zlci1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLWxpZ2h0LCAuNCk7XG5cbiAgICAkaXRlbS1jb250ZW50LWNvcHktYmVsb3ctZW5hYmxlZDogZmFsc2U7ICAgIFxuICAgICRpdGVtLWNvbnRlbnQtY29weS1iZWxvdy1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLWxpZ2h0LCAuNik7XG4gICAgJGl0ZW0tY29udGVudC1jb3B5LWJlbG93LWhvdmVyLWNvbG9yOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3ItbGlnaHQsIC40KTtcblxuICAgIC8vIGljb25cbiAgICAkaXRlbS1zaG93LWljb246IGZhbHNlO1xuICAgICRpdGVtLWljb24tY29sb3I6IHJnYmEoJGRlZmF1bHQtaWNvbi1jb2xvci1saWdodCwgLjQpO1xuICAgICRpdGVtLWljb24taG92ZXItY29sb3I6IHJnYmEoJGRlZmF1bHQtaWNvbi1jb2xvci1saWdodCwgMSk7XG4gICAgJGl0ZW0taWNvbi1zaXplOiAxLjZlbTtcbiAgICAkaXRlbS1pY29uLXBvc2l0aW9uOiAncmInOyAvLyBsdCwgbGIsIHJ0LCByYlxuICAgICRpdGVtLWljb24taW5zZXQtbGVmdC1yaWdodDogJGRlZmF1bHQtcGFkZGluZzsgXG4gICAgJGl0ZW0taWNvbi1pbnNldC10b3AtYm90dG9tOiAkZGVmYXVsdC1wYWRkaW5nOyBcbiAgICBcblxuICAgIC8vIGxpc3Qgc3R5bGUgb24gc21hbGwgfCBpbWFnZSBsZWZ0IGFuZCBjb250ZW50IHJpZ2h0IHwgYWxsIGJhY2tncm91bmQgd2lsbCBiZSByZXNldCB8IGNvbnRlbnQgaWNvbiBpcyBzZXQgYWJzb2x1dGUuIE5vdCBwb3NzaWJsZSBpbiBjb25qdW5jdGlvbiB3aXRoIGEgc2xpZGVyXG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1vbi1zbWFsbDogZmFsc2U7IFxuICAgICRpdGVtLWxpc3Qtc3R5bGUtaW1hZ2Utd2lkdGg6IDEwMHB4O1xuICAgICRpdGVtLWxpc3Qtc3R5bGUtY29udGVudC1pY29uLXNpemU6IDYwcHg7IFxuICAgICRpdGVtLWxpc3Qtc3R5bGUtY29udGVudC1pY29uLXBhZGRpbmc6IDE0cHg7IFxuICAgICRpdGVtLWxpc3Qtc3R5bGUtY29udGVudC1pY29uLWJhY2tncm91bmQ6ICRkZWZhdWx0LWJhY2tncm91bmQtbGlnaHQ7XG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LWljb24tY29sb3I6ICRkZWZhdWx0LWljb24tY29sb3I7XG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LXRpdGxlLWNvbG9yOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3IsIDEpO1xuICAgICRpdGVtLWxpc3Qtc3R5bGUtY29udGVudC1jb3B5LWFib3ZlLWNvbG9yOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3IsIDEpO1xuICAgICRpdGVtLWxpc3Qtc3R5bGUtY29udGVudC1jb3B5LWJlbG93LWNvbG9yOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3IsIDEpO1xuXG4gICAgQGltcG9ydCAnLi4vYWNfc19faXRlbXMtZ2xvYmFscy9fX2l0ZW1fZ2xvYmFscyc7XG4gICBcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbiAgICAuYWNfaXRlbV9jb250ZW50X3RpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1oZWFkaW5ncy1ib2xkO1xuICAgICAgICBmb250LXNpemU6IDEyMCU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIH1cblxufSAvLyBlbmQgc2NvcGUiLCJAaWYgJGl0ZW1zLWNvbHVtbnMtZW5hYmxlZCA9PSB0cnVlIHtcblxuXG4gICAgLmFjX2dyaWRfY29udGFpbmVye1xuICAgICAgICBtYXgtd2lkdGg6ICRpdGVtcy1tYXgtd2lkdGg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIHBhZGRpbmc6ICRkZWZhdWx0LXBhZGRpbmcgLyAyO1xuXG4gICAgICAgIEBpZiAkaXRlbXMtY29sdW1ucy1pY29uLWltYWdlLWNvbWJpbmF0aW9uID09IHRydWUge1xuICAgICAgICAgICAgLmFjX2l0ZW1faW1hZ2Uge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvL1xuICAgIC8vICAgICAgT1VURVIgQ09MVU1OXG4gICAgLy9cblxuICAgIC5hY19ncmlkX291dGVyLWNvbHVtbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgLy8gZmlyc3Qgb3V0ZXIgY29sdW1uXG4gICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRpdGVtcy1jb2x1bW5zLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgzLzUpO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSgzLzUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIHNlY29uZCBvdXRlciBjb2x1bW5cbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xuXG4gICAgICAgICAgICBAaWYgJGl0ZW1zLWNvbHVtbnMtaGlkZS1sYXN0LW9uZS1iZWxvdy1icmVha3BvaW50ID09IHRydWUge1xuICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRpdGVtcy1jb2x1bW5zLWJyZWFrcG9pbnQgLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICAuYWNfaXRlbSAge1xuICAgICAgICAgICAgICAgIGhlaWdodDogJGl0ZW1zLWNvbHVtbnMtaGVpZ2h0IC8gMjtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkaXRlbS1tYXJnaW4tYm90dG9tO1xuICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRpdGVtcy1jb2x1bW5zLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAoJGl0ZW1zLWNvbHVtbnMtaGVpZ2h0IC8gMikgLSAkaXRlbS1tYXJnaW4tYm90dG9tO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkaXRlbXMtY29sdW1ucy1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMi81KTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoMi81KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmFjX2l0ZW0ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEvMik7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKDEvMik7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGl0ZW0tbWFyZ2luLWJvdHRvbTtcblxuICAgICAgICAgICAgICAgIC8vIHNlbGVjdCBpdGVtcyB0aGF0IGhhdmUgYW4gaW1hZ2UgaWYgaWNvbi1pbWFnZS1jb21iaW5hdGlvbiBpcyB0cnVlXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMSksXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoNCkge1xuICAgICAgICAgICAgICAgICAgICBAaWYgJGl0ZW1zLWNvbHVtbnMtaWNvbi1pbWFnZS1jb21iaW5hdGlvbiA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hY19pdGVtX2ltYWdlIHsgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuXG4gICAgLy9cbiAgICAvLyAgICAgIENPTFVNTlxuICAgIC8vXG5cblxuICAgIC5hY19ncmlkX2NvbHVtbiB7XG4gICAgICAgIGhlaWdodDogJGl0ZW1zLWNvbHVtbnMtaGVpZ2h0O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIC5hY19pdGVtIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAjeyRpdGVtLW1hcmdpbi1ib3R0b219KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vZmlyc3QgY29sdW1uXG4gICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgIGhlaWdodDogJGl0ZW1zLWNvbHVtbnMtaGVpZ2h0IC8gMjtcbiAgICAgICAgICAgIC5hY19pdGVtIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgxLzIpO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSgxLzIpO1xuICAgICAgICAgICAgICAgIEBpZiAkaXRlbXMtY29sdW1ucy1pY29uLWltYWdlLWNvbWJpbmF0aW9uID09IHRydWUge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgxKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hY19pdGVtX2ltYWdlIHsgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkaXRlbXMtY29sdW1ucy1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkaXRlbXMtY29sdW1ucy1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMS8zKTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoMS8zKTtcbiAgICAgICAgICAgICAgICAuYWNfaXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogKCRpdGVtcy1jb2x1bW5zLWhlaWdodCAvIDIpIC0gJGl0ZW0tbWFyZ2luLWJvdHRvbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy9zZWNvbmQgY29sdW1uXG4gICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRpdGVtcy1jb2x1bW5zLWJyZWFrcG9pbnQgLSAxKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkaXRlbXMtY29sdW1ucy1oZWlnaHQgKiAwLjc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkaXRlbXMtY29sdW1ucy1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMi8zKTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoMi8zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAkaXRlbXMtY29sdW1ucy1pY29uLWltYWdlLWNvbWJpbmF0aW9uID09IHRydWUge1xuICAgICAgICAgICAgICAgIC5hY19pdGVtX2ltYWdlIHsgXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIFxuICAgIH1cblxuXG59IiwiXG4vKiBTRVJWSUNFUy1HUklEIC0gMVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5bZGF0YS1zLXR5cGU9XCJzZXJ2aWNlcy1ncmlkXCJdIHtcblxuICAgIC8vIGl0ZW1zIHNsaWRlclxuICAgICRpdGVtcy1zbGlkZXI6IGZhbHNlOyAvLyBjb2x1bW5zIGFuZCBzbGlkZXJzIGRvbid0IG1peFxuICAgICRpdGVtcy1zbGlkZXItZm91Yy1oZWlnaHQ6IDIwMHB4O1xuXG4gICAgLy8gaXRlbXNcbiAgICAkaXRlbXMtYW1vdW50OiAwOyAvLyAwIGNvdW50cyBmb3IgdW5kZWZpbmVkLCBpZiBhc3NpZ25lZCB0aGUgY29kZSB3aWxsIGJlIG1vcmUgb3B0aW1pc2VkXG4gICAgJGl0ZW1zLWNvbnRlbnQtb3Zlci1pbWFnZTogdHJ1ZTsgLy8gaGFzIHRvIGJlIHRydWUgZm9yIGdyaWQgaXRlbXNcbiAgICAkaXRlbXMtbWF4LXdpZHRoOiAkbWF4LWNvbnRlbnQtMTIwMDtcbiAgICAkaXRlbXMtaGF2ZS1wYWRkaW5nOiB0cnVlO1xuICAgICRpdGVtcy1oYXZlLWJvcmRlci1kaXZpZGVyczogZmFsc2U7IC8vIGtlZXAgZmFsc2UgZm9yIGdyaWRcbiAgICAkaXRlbXMtaGF2ZS1ib3JkZXItYmVsb3c6IGZhbHNlOyAvLyBrZWVwIGZhbHNlIGZvciBncmlkXG4gICAgJGl0ZW1zLWhpZGUtYm9yZGVyLWJlbG93LW9uLWxhc3Qtcm93OiBmYWxzZTsgLy8ga2VlcCBmYWxzZSBmb3IgZ3JpZFxuICAgICRpdGVtcy1ib3JkZXItcmFkaXVzOiAwOyBcbiAgICAkaXRlbXMtZmlyc3QtaXRlbS1mdWxsLXdpZHRoOiBmYWxzZTsgLy8ga2VlcCBmYWxzZSBmb3IgZ3JpZFxuICAgICRpdGVtcy1maXJzdC1pdGVtLWZ1bGwtd2lkdGgtaGVpZ2h0LW11bHRpcGxpZXI6IDEuNTtcbiAgICAkaXRlbXMtb24tc21hbGwtdHdvLWl0ZW1zLWEtcm93OiBmYWxzZTsgLy8ga2VlcCBmYWxzZSBmb3IgZ3JpZFxuICAgICRpdGVtLWJhY2tncm91bmQ6IG5vbmU7XG4gICAgJGl0ZW0tYmFja2dyb3VuZC1ob3Zlcjogbm9uZTtcblxuICAgIC8vIGNvbHVtbnNcbiAgICAkaXRlbXMtY29sdW1ucy1lbmFibGVkOiB0cnVlO1xuICAgICRpdGVtcy1jb2x1bW5zLWJyZWFrcG9pbnQ6IDgwMHB4OyBcbiAgICAkaXRlbXMtY29sdW1ucy1oZWlnaHQ6IDM2MHB4OyBcbiAgICAkaXRlbXMtY29sdW1ucy1oaWRlLWxhc3Qtb25lLWJlbG93LWJyZWFrcG9pbnQ6IGZhbHNlO1xuICAgICRpdGVtcy1jb2x1bW5zLWljb24taW1hZ2UtY29tYmluYXRpb246IGZhbHNlO1xuXG4gICAgLy8gaXRlbVxuICAgICRpdGVtLW1hcmdpbi1ib3R0b206IDIwcHg7IC8vIDEuNGVtXG4gICAgJGl0ZW0tYm9yZGVyOiAkZGVmYXVsdC1ib3JkZXI7IC8vIGRlZmluZXMgdGhlIGFwcGVhcmFuY2UsIG5vdCB0aGUgZGlzcGxheVxuICAgICRpdGVtLXNoYWRvdy1lbmFibGVkOiBmYWxzZTtcblxuICAgIC8vIGltYWdlXG4gICAgJGl0ZW0taW1hZ2UtY29udGFpbmVyLWVuYWJsZWQ6IHRydWU7XG4gICAgJGl0ZW0taW1hZ2UtZW5hYmxlZDogdHJ1ZTtcbiAgICAkaXRlbS1pbWFnZS1oZWlnaHQ6IDI0MHB4O1xuICAgICRpdGVtLWltYWdlLWluaXRpYWwtZmFkZTogLjI7XG4gICAgJGl0ZW0taW1hZ2UtaG92ZXItZmFkZTogLjQ7XG4gICAgJGl0ZW0taW1hZ2UtZ3JhZGllbnQtYmVmb3JlOiB0cnVlOyAvLyB3aGVuIGl0ZW0tY29udGVudC1vdmVyLWltYWdlXG4gICAgJGl0ZW0taW1hZ2UtZ3JhZGllbnQtY29sb3I6ICRkZWZhdWx0LWJhY2tncm91bmQtZGFyaztcbiAgICAkaXRlbS1pbWFnZS1ncmFkaWVudC1iZWZvcmUtcG9zaXRpb246ICdib3R0b20nOyAvLyB0b3Agb3IgYm90dG9tXG4gICAgJGl0ZW0taW1hZ2UtYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1kYXJrO1xuICAgICRpdGVtLWltYWdlLWJhY2tncm91bmQtY29sb3ItaG92ZXI6ICRkZWZhdWx0LWJhY2tncm91bmQtZGFyaztcbiAgICAkaXRlbS1pbWFnZS1ib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzOyBcblxuICAgIC8vIGNvbnRlbnRcbiAgICAkaXRlbS1jb250ZW50LXBhZGRpbmc6IDA7IC8vICRkZWZhdWx0LXBhZGRpbmc7IFxuICAgICRpdGVtLWNvbnRlbnQtYmFja2dyb3VuZDogbm9uZTtcbiAgICAkaXRlbS1jb250ZW50LWJhY2tncm91bmQtaG92ZXI6IG5vbmU7XG4gICAgJGl0ZW0tY29udGVudC1hbGlnbjogJ2NjJzsgLy8gbHQsIGxjLCBsYiwgY3QsIGNjLCBjYiwgcnQsIHJjLCByYiB8fCAgd2hlbiBpdGVtLWNvbnRlbnQtb3Zlci1pbWFnZVxuICAgICRpdGVtLWNvbnRlbnQtY29weS1wYWRkaW5nOiAkZGVmYXVsdC1wYWRkaW5nIC8gMjsgXG4gICAgJGl0ZW0tY29udGVudC1jb3B5LWFsaWduOiAnbGVmdCc7IC8vIGxlZnQgb3IgY2VudGVyXG5cbiAgICAkaXRlbS1jb250ZW50LWljb24tZW5hYmxlZDogdHJ1ZTtcbiAgICAkaXRlbS1jb250ZW50LWljb24tY2VudGVyZWQ6IHRydWU7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLWNvbG9yOiByZ2JhKCRkZWZhdWx0LWljb24tY29sb3ItbGlnaHQsIDEpO1xuICAgICRpdGVtLWNvbnRlbnQtaWNvbi1ob3Zlci1jb2xvcjogcmdiYSgkZGVmYXVsdC1pY29uLWNvbG9yLWRhcmssIDEpO1xuICAgICRpdGVtLWNvbnRlbnQtaWNvbi1zaXplOiA4MHB4O1xuICAgICRpdGVtLWNvbnRlbnQtaWNvbi1wYWRkaW5nOiAxMHB4O1xuICAgICRpdGVtLWNvbnRlbnQtaWNvbi1tYXJnaW46IDAgMCAyMHB4IDA7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLWJhY2tncm91bmQ6IHJnYmEoJGRlZmF1bHQtYmFja2dyb3VuZC1saWdodCwgLjUpO1xuICAgICRpdGVtLWNvbnRlbnQtaWNvbi1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRkZWZhdWx0LWJhY2tncm91bmQtbGlnaHQsIDEpO1xuICAgICRpdGVtLWNvbnRlbnQtaWNvbi1yb3VuZDogdHJ1ZTtcbiAgICBcbiAgICAkaXRlbS1jb250ZW50LXRpdGxlLWVuYWJsZWQ6IHRydWU7IFxuICAgICRpdGVtLWNvbnRlbnQtdGl0bGUtY29sb3I6ICRkZWZhdWx0LXRleHQtY29sb3ItbGlnaHQ7XG4gICAgJGl0ZW0tY29udGVudC10aXRsZS1ob3Zlci1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLWxpZ2h0LCAuNik7XG5cbiAgICAkaXRlbS1jb250ZW50LWNvcHktYWJvdmUtZW5hYmxlZDogZmFsc2U7ICAgIFxuICAgICRpdGVtLWNvbnRlbnQtY29weS1hYm92ZS1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLWxpZ2h0LCAuNik7XG4gICAgJGl0ZW0tY29udGVudC1jb3B5LWFib3ZlLWhvdmVyLWNvbG9yOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3ItbGlnaHQsIC40KTtcblxuICAgICRpdGVtLWNvbnRlbnQtY29weS1iZWxvdy1lbmFibGVkOiBmYWxzZTsgICAgXG4gICAgJGl0ZW0tY29udGVudC1jb3B5LWJlbG93LWNvbG9yOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3ItbGlnaHQsIC42KTtcbiAgICAkaXRlbS1jb250ZW50LWNvcHktYmVsb3ctaG92ZXItY29sb3I6IHJnYmEoJGRlZmF1bHQtdGV4dC1jb2xvci1saWdodCwgLjQpO1xuXG4gICAgLy8gaWNvblxuICAgICRpdGVtLXNob3ctaWNvbjogZmFsc2U7XG4gICAgJGl0ZW0taWNvbi1jb2xvcjogcmdiYSgkZGVmYXVsdC1pY29uLWNvbG9yLWxpZ2h0LCAuNCk7XG4gICAgJGl0ZW0taWNvbi1ob3Zlci1jb2xvcjogcmdiYSgkZGVmYXVsdC1pY29uLWNvbG9yLWxpZ2h0LCAxKTtcbiAgICAkaXRlbS1pY29uLXNpemU6IDEuNmVtO1xuICAgICRpdGVtLWljb24tcG9zaXRpb246ICdyYic7IC8vIGx0LCBsYiwgcnQsIHJiXG4gICAgJGl0ZW0taWNvbi1pbnNldC1sZWZ0LXJpZ2h0OiAkZGVmYXVsdC1wYWRkaW5nOyBcbiAgICAkaXRlbS1pY29uLWluc2V0LXRvcC1ib3R0b206ICRkZWZhdWx0LXBhZGRpbmc7IFxuICAgIFxuXG4gICAgLy8gbGlzdCBzdHlsZSBvbiBzbWFsbCB8IGltYWdlIGxlZnQgYW5kIGNvbnRlbnQgcmlnaHQgfCBhbGwgYmFja2dyb3VuZCB3aWxsIGJlIHJlc2V0IHwgY29udGVudCBpY29uIGlzIHNldCBhYnNvbHV0ZS4gTm90IHBvc3NpYmxlIGluIGNvbmp1bmN0aW9uIHdpdGggYSBzbGlkZXJcbiAgICAkaXRlbS1saXN0LXN0eWxlLW9uLXNtYWxsOiBmYWxzZTsgXG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1pbWFnZS13aWR0aDogMTAwcHg7XG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LWljb24tc2l6ZTogNjBweDsgXG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LWljb24tcGFkZGluZzogMTRweDsgXG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LWljb24tYmFja2dyb3VuZDogJGRlZmF1bHQtYmFja2dyb3VuZC1saWdodDtcbiAgICAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtaWNvbi1jb2xvcjogJGRlZmF1bHQtaWNvbi1jb2xvcjtcbiAgICAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtdGl0bGUtY29sb3I6IHJnYmEoJGRlZmF1bHQtdGV4dC1jb2xvciwgMSk7XG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LWNvcHktYWJvdmUtY29sb3I6IHJnYmEoJGRlZmF1bHQtdGV4dC1jb2xvciwgMSk7XG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LWNvcHktYmVsb3ctY29sb3I6IHJnYmEoJGRlZmF1bHQtdGV4dC1jb2xvciwgMSk7XG5cbiAgICBAaW1wb3J0ICcuLi9hY19zX19pdGVtcy1nbG9iYWxzL19faXRlbV9nbG9iYWxzJztcbiAgIFxuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cblxuICAgIC5hY19pdGVtX2NvbnRlbnRfdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSBmb250LWhlYWRpbmdzLWJvbGQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTIwJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuXG4gICAgLmFjX2dyaWRfb3V0ZXItY29sdW1uIHtcblxuICAgICAgICAvLyBmaXJzdCBvdXRlciBjb2x1bW5cbiAgICAgICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGl0ZW0tbWFyZ2luLWJvdHRvbTtcbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRpdGVtcy1jb2x1bW5zLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgxLzIpO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSgxLzIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmFjX2dyaWRfY29sdW1uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRpdGVtcy1jb2x1bW5zLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAuYWNfaXRlbSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgxLzIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKDEvMik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLmFjX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAoJGl0ZW1zLWNvbHVtbnMtaGVpZ2h0IC8gMik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBzZWNvbmQgb3V0ZXIgY29sdW1uXG4gICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGl0ZW1zLWNvbHVtbnMtYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEvMik7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKDEvMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5hY19pdGVtIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICgkaXRlbXMtY29sdW1ucy1oZWlnaHQgLyAyKSArICgkaXRlbXMtY29sdW1ucy1oZWlnaHQgLyA0KSAtICRpdGVtLW1hcmdpbi1ib3R0b20gLyAyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuXG59IC8vIGVuZCBzY29wZSIsIlxuLyogU0VSVklDRVMgLSAxXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbltkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdIHtcblxuICAgIC8vIGl0ZW1zXG4gICAgJGl0ZW1zLXNsaWRlcjogZmFsc2U7XG4gICAgJGl0ZW1zLXNsaWRlci1mb3VjLWhlaWdodDogMjAwcHg7IC8vIHdoYXQgbmVlZHMgdG8gYmUgdGhlIGZsYXNoLW9mLXVud2FudGVkLWNvbnRlbnQgaGVpZ2h0IGJlZm9yZSBzbGlkZXIgaGFzIGxhb2RlZC5cblxuICAgICRpdGVtcy1hbW91bnQ6IDA7IC8vIDAgY291bnRzIGZvciB1bmRlZmluZWQsIGlmIGFzc2lnbmVkIHRoZSBjb2RlIHdpbGwgYmUgbW9yZSBvcHRpbWlzZWRcbiAgICAkaXRlbXMtY29udGVudC1vdmVyLWltYWdlOiBmYWxzZTtcbiAgICAkaXRlbXMtbWF4LXdpZHRoOiAkbWF4LWNvbnRlbnQtMTIwMDtcbiAgICAkaXRlbXMtaGF2ZS1wYWRkaW5nOiB0cnVlO1xuICAgICRpdGVtcy1oYXZlLWJvcmRlci1kaXZpZGVyczogdHJ1ZTtcbiAgICAkaXRlbXMtaGF2ZS1ib3JkZXItYmVsb3c6IHRydWU7XG4gICAgJGl0ZW1zLWhpZGUtYm9yZGVyLWJlbG93LW9uLWxhc3Qtcm93OiB0cnVlO1xuICAgICRpdGVtcy1ib3JkZXItcmFkaXVzOiAwOyBcbiAgICAkaXRlbXMtZmlyc3QtaXRlbS1mdWxsLXdpZHRoOiBmYWxzZTtcbiAgICAkaXRlbXMtZmlyc3QtaXRlbS1mdWxsLXdpZHRoLWhlaWdodC1tdWx0aXBsaWVyOiAxLjU7XG4gICAgJGl0ZW1zLW9uLXNtYWxsLXR3by1pdGVtcy1hLXJvdzogdHJ1ZTtcbiAgICAkaXRlbS1iYWNrZ3JvdW5kOiBub25lO1xuICAgICRpdGVtLWJhY2tncm91bmQtaG92ZXI6IG5vbmU7XG4gICAgXG4gICAgLy8gY29sdW1uc1xuICAgICRpdGVtcy1jb2x1bW5zLWVuYWJsZWQ6IGZhbHNlO1xuICAgICRpdGVtcy1jb2x1bW5zLWJyZWFrcG9pbnQ6IDgwMHB4OyBcbiAgICAkaXRlbXMtY29sdW1ucy1oZWlnaHQ6IDQwMHB4OyBcbiAgICAkaXRlbXMtY29sdW1ucy1oaWRlLWxhc3Qtb25lLWJlbG93LWJyZWFrcG9pbnQ6IGZhbHNlO1xuICAgICRpdGVtcy1jb2x1bW5zLWljb24taW1hZ2UtY29tYmluYXRpb246IHRydWU7XG5cbiAgICAvLyBpdGVtXG4gICAgJGl0ZW0tbWFyZ2luLWJvdHRvbTogMS40ZW07IC8vIDEuNGVtXG4gICAgJGl0ZW0tYm9yZGVyOiAkZGVmYXVsdC1ib3JkZXI7IC8vIGRlZmluZXMgdGhlIGFwcGVhcmFuY2UsIG5vdCB0aGUgZGlzcGxheVxuICAgICRpdGVtLXNoYWRvdy1lbmFibGVkOiBmYWxzZTtcblxuXG4gICAgLy8gaW1hZ2VcbiAgICAkaXRlbS1pbWFnZS1jb250YWluZXItZW5hYmxlZDogdHJ1ZTtcbiAgICAkaXRlbS1pbWFnZS1lbmFibGVkOiB0cnVlO1xuICAgICRpdGVtLWltYWdlLWhlaWdodDogMTYwcHg7XG4gICAgJGl0ZW0taW1hZ2UtaW5pdGlhbC1mYWRlOiAxO1xuICAgICRpdGVtLWltYWdlLWhvdmVyLWZhZGU6IC44O1xuICAgICRpdGVtLWltYWdlLWdyYWRpZW50LWJlZm9yZTogdHJ1ZTsgLy8gd2hlbiBpdGVtLWNvbnRlbnQtb3Zlci1pbWFnZVxuICAgICRpdGVtLWltYWdlLWdyYWRpZW50LWNvbG9yOiAkZGVmYXVsdC1iYWNrZ3JvdW5kLWRhcms7XG4gICAgJGl0ZW0taW1hZ2UtZ3JhZGllbnQtYmVmb3JlLXBvc2l0aW9uOiAnYm90dG9tJzsgLy8gdG9wIG9yIGJvdHRvbVxuICAgICRpdGVtLWltYWdlLWJhY2tncm91bmQtY29sb3I6ICRkZWZhdWx0LWJhY2tncm91bmQtZGFyaztcbiAgICAkaXRlbS1pbWFnZS1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiAkZGVmYXVsdC1iYWNrZ3JvdW5kLWRhcms7XG4gICAgJGl0ZW0taW1hZ2UtYm9yZGVyLXJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1czsgXG5cblxuICAgIC8vIGNvbnRlbnRcbiAgICAkaXRlbS1jb250ZW50LXBhZGRpbmc6IDA7IC8vICRkZWZhdWx0LXBhZGRpbmc7IFxuICAgICRpdGVtLWNvbnRlbnQtYmFja2dyb3VuZDogbm9uZTtcbiAgICAkaXRlbS1jb250ZW50LWJhY2tncm91bmQtaG92ZXI6IG5vbmU7XG4gICAgJGl0ZW0tY29udGVudC1hbGlnbjogJ2xiJzsgLy8gbHQsIGxjLCBsYiwgY3QsIGNjLCBjYiwgcnQsIHJjLCByYiB8fCAgd2hlbiBpdGVtLWNvbnRlbnQtb3Zlci1pbWFnZVxuICAgICRpdGVtLWNvbnRlbnQtY29weS1wYWRkaW5nOiAkZGVmYXVsdC1wYWRkaW5nIDAgOyBcbiAgICAkaXRlbS1jb250ZW50LWNvcHktYWxpZ246ICdsZWZ0JzsgLy8gbGVmdCBvciBjZW50ZXJcblxuICAgICRpdGVtLWNvbnRlbnQtaWNvbi1lbmFibGVkOiB0cnVlO1xuICAgICRpdGVtLWNvbnRlbnQtaWNvbi1jZW50ZXJlZDogdHJ1ZTtcbiAgICAkaXRlbS1jb250ZW50LWljb24tY29sb3I6IHJnYmEoJGRlZmF1bHQtaWNvbi1jb2xvci1saWdodCwgMSk7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLWhvdmVyLWNvbG9yOiByZ2JhKCRkZWZhdWx0LWljb24tY29sb3ItbGlnaHQsIC40KTtcbiAgICAkaXRlbS1jb250ZW50LWljb24tc2l6ZTogODBweDtcbiAgICAkaXRlbS1jb250ZW50LWljb24tcGFkZGluZzogMTBweDtcbiAgICAkaXRlbS1jb250ZW50LWljb24tbWFyZ2luOiAwIDAgMjBweCAwO1xuICAgICRpdGVtLWNvbnRlbnQtaWNvbi1iYWNrZ3JvdW5kOiAkZGVmYXVsdC1iYWNrZ3JvdW5kLWRhcms7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGRlZmF1bHQtYmFja2dyb3VuZC1kYXJrLCAuNik7XG4gICAgJGl0ZW0tY29udGVudC1pY29uLXJvdW5kOiB0cnVlO1xuICAgIFxuICAgICRpdGVtLWNvbnRlbnQtdGl0bGUtZW5hYmxlZDogdHJ1ZTsgXG4gICAgJGl0ZW0tY29udGVudC10aXRsZS1jb2xvcjogJGRlZmF1bHQtdGV4dC1jb2xvcjtcbiAgICAkaXRlbS1jb250ZW50LXRpdGxlLWhvdmVyLWNvbG9yOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3IsIC42KTtcblxuICAgICRpdGVtLWNvbnRlbnQtY29weS1hYm92ZS1lbmFibGVkOiBmYWxzZTsgICAgXG4gICAgJGl0ZW0tY29udGVudC1jb3B5LWFib3ZlLWNvbG9yOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3IsIC42KTtcbiAgICAkaXRlbS1jb250ZW50LWNvcHktYWJvdmUtaG92ZXItY29sb3I6IHJnYmEoJGRlZmF1bHQtdGV4dC1jb2xvciwgLjQpO1xuXG4gICAgJGl0ZW0tY29udGVudC1jb3B5LWJlbG93LWVuYWJsZWQ6IHRydWU7ICAgIFxuICAgICRpdGVtLWNvbnRlbnQtY29weS1iZWxvdy1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLCAuNik7XG4gICAgJGl0ZW0tY29udGVudC1jb3B5LWJlbG93LWhvdmVyLWNvbG9yOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3IsIC40KTtcblxuICAgIC8vIGljb25cbiAgICAkaXRlbS1zaG93LWljb246IHRydWU7XG4gICAgJGl0ZW0taWNvbi1jb2xvcjogcmdiYSgkZGVmYXVsdC1pY29uLWNvbG9yLCAuNik7XG4gICAgJGl0ZW0taWNvbi1ob3Zlci1jb2xvcjogcmdiYSgkZGVmYXVsdC1pY29uLWNvbG9yLWxpZ2h0LCAuNCk7XG4gICAgJGl0ZW0taWNvbi1zaXplOiAxLjZlbTtcbiAgICAkaXRlbS1pY29uLXBvc2l0aW9uOiAncmInOyAvLyBsdCwgbGIsIHJ0LCByYlxuICAgICRpdGVtLWljb24taW5zZXQtbGVmdC1yaWdodDogMDsgLy8gJGRlZmF1bHQtcGFkZGluZzsgXG4gICAgJGl0ZW0taWNvbi1pbnNldC10b3AtYm90dG9tOiAkZGVmYXVsdC1wYWRkaW5nOyBcbiAgICBcblxuICAgIC8vIGxpc3Qgc3R5bGUgb24gc21hbGwgfCBpbWFnZSBsZWZ0IGFuZCBjb250ZW50IHJpZ2h0IHwgYWxsIGJhY2tncm91bmQgd2lsbCBiZSByZXNldCB8IGNvbnRlbnQgaWNvbiBpcyBzZXQgYWJzb2x1dGVcbiAgICAkaXRlbS1saXN0LXN0eWxlLW9uLXNtYWxsOiBmYWxzZTsgXG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1pbWFnZS13aWR0aDogMTAwcHg7XG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LWljb24tc2l6ZTogNjBweDsgXG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LWljb24tcGFkZGluZzogMTRweDsgXG4gICAgJGl0ZW0tbGlzdC1zdHlsZS1jb250ZW50LWljb24tYmFja2dyb3VuZDogJGRlZmF1bHQtYmFja2dyb3VuZC1saWdodDtcbiAgICAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtaWNvbi1jb2xvcjogJGJyYW5kLXByaW1hcnk7IFxuICAgICRpdGVtLWxpc3Qtc3R5bGUtY29udGVudC10aXRsZS1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLCAxKTtcbiAgICAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtY29weS1hYm92ZS1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLCAxKTtcbiAgICAkaXRlbS1saXN0LXN0eWxlLWNvbnRlbnQtY29weS1iZWxvdy1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLCAxKTtcblxuXG4gICAgQGltcG9ydCAnLi4vYWNfc19faXRlbXMtZ2xvYmFscy9fX2l0ZW1fZ2xvYmFscyc7XG4gICAgXG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIFxuICAgIC5hY19pdGVtX2NvbnRlbnRfaWNvbl9jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0b3A6ICgkaXRlbS1pbWFnZS1oZWlnaHQgLyAyKSAtICgkaXRlbS1jb250ZW50LWljb24tc2l6ZSAvIDIpO1xuICAgICAgICBAaWYgJGl0ZW0tbGlzdC1zdHlsZS1vbi1zbWFsbCA9PSB0cnVlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkaXRlbS1saXN0LXN0eWxlLWltYWdlLXdpZHRoO1xuICAgICAgICAgICAgICAgIHRvcDogMjBweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAyMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFjX2l0ZW1faW1hZ2Uge1xuICAgICAgICBAaWYgJGl0ZW0tbGlzdC1zdHlsZS1vbi1zbWFsbCA9PSB0cnVlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IC40O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59IC8vIGVuZCBzY29wZSIsIlxuLyogQUNfU19URUFNIC0gMVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vL2l0ZW1zXG4kYWMtdGVhbS1pdGVtcy1tYXgtd2lkdGg6ICRtYXgtY29udGVudC04MDA7XG4kYWMtdGVhbS1pdGVtcy1oYXZlLXBhZGRpbmc6IHRydWU7XG4kYWMtdGVhbS1pdGVtcy1oYXZlLWJvcmRlci1kaXZpZGVyczogZmFsc2U7XG4kYWMtdGVhbS1pdGVtcy1oYXZlLWJvcmRlci1iZWxvdzogZmFsc2U7XG4kYWMtdGVhbS1pdGVtcy1oaWRlLWJvcmRlci1vbi1sYXN0LXJvdzogZmFsc2U7XG5cbi8vaXRlbVxuJGFjLXRlYW0taXRlbS1tYXJnaW4tYm90dG9tOiAxLjRlbTsgLy8gMS40ZW1cbiRhYy10ZWFtLWl0ZW0tYm9yZGVyOiAkZGVmYXVsdC1ib3JkZXI7IC8vIGRlZmluZXMgdGhlIGFwcGVhcmFuY2UsIG5vdCB0aGUgZGlzcGxheVxuJGFjLXRlYW0taXRlbS10ZXh0LWFsaWduOiBjZW50ZXI7IC8vIGxlZnQgb3IgY2VudGVyXG4kYWMtdGVhbS1pdGVtLXBhZGRpbmc6ICRkZWZhdWx0LXBhZGRpbmcgMDtcbiRhYy10ZWFtLWl0ZW0tYmFja2dyb3VuZDogJGRlZmF1bHQtYmFja2dyb3VuZC1saWdodDtcbiRhYy10ZWFtLWl0ZW0tYm9yZGVyLXJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cztcbiRhYy10ZWFtLWl0ZW0tc2hhZG93OiB0cnVlO1xuXG4vL2NvbnRlbnRcbiRhYy10ZWFtLWl0ZW0tY29udGVudC1wYWRkaW5nOiAkZGVmYXVsdC1wYWRkaW5nOyBcbiRhYy10ZWFtLWl0ZW0tY29udGVudC1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgXG5cbi8vcHJvZmlsZSBpbWFnZVxuJGFjLXRlYW0taXRlbS1wcm9maWxlLWltYWdlLWVuYWJsZWQ6IHRydWU7XG4kYWMtdGVhbS1pdGVtLXByb2ZpbGUtaW1hZ2Utcm91bmRlZDogdHJ1ZTtcbiRhYy10ZWFtLWl0ZW0tcHJvZmlsZS1pbWFnZS1ib3JkZXI6IHNvbGlkIDZweCAkYnJhbmQtd2hpdGU7XG4kYWMtdGVhbS1pdGVtLXByb2ZpbGUtaW1hZ2Utc2l6ZTogMTIwcHg7IFxuJGFjLXRlYW0taXRlbS1wcm9maWxlLWltYWdlLXNoYWRvdzogdHJ1ZTtcblxuLy9jb250ZW50IGNvcHlcbiRhYy10ZWFtLWl0ZW0tc2hvdy1qb2ItZGVzY3JpcHRpb246IHRydWU7XG4kYWMtdGVhbS1pdGVtLXNob3ctdGVsZXBob25lOiB0cnVlO1xuJGFjLXRlYW0taXRlbS1zaG93LWVtYWlsOiB0cnVlO1xuXG4vL3NvY2lhbHNcbiRhYy10ZWFtLWl0ZW0tc2hvdy1zb2NpYWxzOiB0cnVlO1xuJGFjLXRlYW0taXRlbS1zb2NpYWwtYmFja2dyb3VuZDogJGRlZmF1bHQtYmFja2dyb3VuZC1kYXJrO1xuJGFjLXRlYW0taXRlbS1zb2NpYWwtYmFja2dyb3VuZC1ob3ZlcjogJGRlZmF1bHQtYmFja2dyb3VuZC1kYXJrO1xuJGFjLXRlYW0taXRlbS1zb2NpYWwtcm91bmRlZDogdHJ1ZTtcbiRhYy10ZWFtLWl0ZW0tc29jaWFsLWljb24tZmlsbDogJGRlZmF1bHQtaWNvbi1jb2xvci1saWdodDtcbiRhYy10ZWFtLWl0ZW0tc29jaWFsLWljb24taG92ZXItZmlsbDogcmdiYSgkZGVmYXVsdC1pY29uLWNvbG9yLWxpZ2h0LCAuNSk7XG4kYWMtdGVhbS1pdGVtLXNvY2lhbC1zaXplOiA0MHB4OyAvLyB1c2UgdGhlIHNhbWUgbWVhc3VybWVudCB1bml0IGZvciBzaXplIGFuZCBwYWRkaW5nIVxuJGFjLXRlYW0taXRlbS1zb2NpYWwtcGFkZGluZzogNXB4O1xuXG4kYWMtdGVhbS1pdGVtLWxvZ28tbWFyZ2luLWJvdHRvbTogLjZlbTsgLy8gMS40ZW1cblxuQGltcG9ydCAnX190ZWFtX2dsb2JhbHMnO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8iLCJcbi8qIEFDX1NfVEVBTSAtIDAxIC0gR0xPQkFMU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbi8vXG4vLyAgICAgIFRFQU0gU0VDVElPTlxuLy9cblxuXG5bZGF0YS1zLXR5cGU9XCJ0ZWFtXCJdIHtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAkZGVmYXVsdC1wYWRkaW5nIDA7XG4gICAgXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgcGFkZGluZzogMCAwICRkZWZhdWx0LXBhZGRpbmcgLyAyIDA7XG4gICAgfSAgIFxufVxuXG4vL1xuLy8gICAgICBDT05UQUlORVJcbi8vXG5cblxuLmFjX3RlYW1fY29udGFpbmVye1xuICAgIG1heC13aWR0aDogJGFjLXRlYW0taXRlbXMtbWF4LXdpZHRoO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIG1hcmdpbjogMmVtIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICBAaWYgJGFjLXRlYW0taXRlbXMtaGF2ZS1ib3JkZXItZGl2aWRlcnMgPT0gZmFsc2UgYW5kICRhYy10ZWFtLWl0ZW1zLWhhdmUtcGFkZGluZyA9PSB0cnVlIHtcbiAgICAgICAgcGFkZGluZzogMCAkZGVmYXVsdC1wYWRkaW5nIC8gMjtcbiAgICB9XG59XG5cblxuXG4vL1xuLy8gICAgICBJVEVNXG4vL1xuXG4uYWNfdGVhbV9pdGVtIHtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgxLzEpOyBcbiAgICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoMS8xKTtcbiAgICBtYXJnaW4tYm90dG9tOiAkYWMtdGVhbS1pdGVtLW1hcmdpbi1ib3R0b207XG4gICAgdGV4dC1hbGlnbjogJGFjLXRlYW0taXRlbS10ZXh0LWFsaWduO1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cblxuICAgIEBpZiAkYWMtdGVhbS1pdGVtcy1oYXZlLXBhZGRpbmcgPT0gdHJ1ZSB7XG4gICAgICAgIHBhZGRpbmc6IDAgJGRlZmF1bHQtcGFkZGluZztcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICBAaWYgJGFjLXRlYW0taXRlbXMtaGF2ZS1ib3JkZXItZGl2aWRlcnMgPT0gdHJ1ZSB7XG4gICAgICAgIEBpZiAkYWMtdGVhbS1pdGVtcy1oYXZlLXBhZGRpbmcgPT0gdHJ1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRkZWZhdWx0LXBhZGRpbmc7XG4gICAgICAgIH1cbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRhYy10ZWFtLWl0ZW0tYm9yZGVyO1xuICAgICAgICBcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGlmICRhYy10ZWFtLWl0ZW1zLWhhdmUtcGFkZGluZyA9PSB0cnVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJGRlZmF1bHQtcGFkZGluZyAvIDI7XG4gICAgICAgIH1cbiAgICB9ICAgXG5cbiAgICBcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgLmFjX3RlYW1faXRlbV9sb2dvIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBcbn1cblxuLmFjX3RlYW1faXRlbV9jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiAkYWMtdGVhbS1pdGVtLWJhY2tncm91bmQ7XG4gICAgcGFkZGluZzogJGFjLXRlYW0taXRlbS1wYWRkaW5nO1xuICAgIEBpZiAkYWMtdGVhbS1pdGVtLWJvcmRlci1yYWRpdXMgIT0gMCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRhYy10ZWFtLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICB9XG4gICAgQGlmICRhYy10ZWFtLWl0ZW0tc2hhZG93ID09IHRydWUge1xuICAgICAgICBib3gtc2hhZG93OiAkZGVmYXVsdC1ib3gtc2hhZG93O1xuICAgIH1cbiAgICBAaWYgJGFjLXRlYW0taXRlbXMtaGF2ZS1ib3JkZXItYmVsb3cgPT0gdHJ1ZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRhYy10ZWFtLWl0ZW0tYm9yZGVyO1xuICAgIH1cbn1cblxuXG4vL1xuLy8gICAgICBCT1JERVIgUkVTUE9OU0lWRU5FU1Ncbi8vXG5cblxuW2RhdGEtcy10eXBlPVwidGVhbVwiXSB7XG4gICAgQGlmICRhYy10ZWFtLWl0ZW1zLWhhdmUtYm9yZGVyLWRpdmlkZXJzID09IHRydWUge1xuICAgICAgICBAaW5jbHVkZSBib3JkZXItcmVzcG9uc2l2ZW5lc3MoJ1MxJyk7XG4gICAgICAgIEBpbmNsdWRlIGJvcmRlci1yZXNwb25zaXZlbmVzcygnUzEtTVAyJyk7XG4gICAgICAgIEBpbmNsdWRlIGJvcmRlci1yZXNwb25zaXZlbmVzcygnUzEtTVAyLU0zJyk7XG4gICAgICAgIEBpbmNsdWRlIGJvcmRlci1yZXNwb25zaXZlbmVzcygnUzEtTVAyLUw0Jyk7XG4gICAgfVxufVxuXG5AaWYgJGFjLXRlYW0taXRlbXMtaGF2ZS1ib3JkZXItYmVsb3cgPT0gdHJ1ZSBhbmQgJGFjLXRlYW0taXRlbXMtaGlkZS1ib3JkZXItb24tbGFzdC1yb3cgPT0gdHJ1ZSB7XG4gICAgW2RhdGEtcy10eXBlPVwidGVhbVwiXSB7XG4gICAgICAgIEBpbmNsdWRlIGJvdHRvbS1pdGVtcy1uby1ib3JkZXIoJ1MxLU1QMicpO1xuICAgICAgICBAaW5jbHVkZSBib3R0b20taXRlbXMtbm8tYm9yZGVyKCdTMS1NUDItTDMnKTtcbiAgICAgICAgQGluY2x1ZGUgYm90dG9tLWl0ZW1zLW5vLWJvcmRlcignUzEtTVAyLUw0Jyk7XG4gICAgfVxufVxuXG4vL1xuLy8gICAgICBDT05URU5UXG4vL1xuXG5cbi5hY190ZWFtX2l0ZW1fY29udGVudHtcbiAgICBiYWNrZ3JvdW5kOiAkYWMtdGVhbS1pdGVtLWNvbnRlbnQtYmFja2dyb3VuZDtcbiAgICBwYWRkaW5nOiAkYWMtdGVhbS1pdGVtLWNvbnRlbnQtcGFkZGluZztcbn1cblxuXG5cbi8vXG4vLyAgICAgIFBST0ZJTEUgSU1BR0Vcbi8vXG5cbi5hY190ZWFtX2l0ZW1fcHJvZmlsZS1pbWFnZV9jb250YWluZXIge1xuICAgIEBpZiAkYWMtdGVhbS1pdGVtLXByb2ZpbGUtaW1hZ2UtZW5hYmxlZCA9PSBmYWxzZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbn1cbi5hY190ZWFtX2l0ZW1fcHJvZmlsZS1pbWFnZSB7XG4gICAgQGlmICRhYy10ZWFtLWl0ZW0tcHJvZmlsZS1pbWFnZS1lbmFibGVkID09IHRydWUge1xuICAgICAgICB3aWR0aDogJGFjLXRlYW0taXRlbS1wcm9maWxlLWltYWdlLXNpemU7XG4gICAgICAgIGhlaWdodDogJGFjLXRlYW0taXRlbS1wcm9maWxlLWltYWdlLXNpemU7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIGJvcmRlcjogJGFjLXRlYW0taXRlbS1wcm9maWxlLWltYWdlLWJvcmRlcjtcbiAgICAgICAgQGlmICRhYy10ZWFtLWl0ZW0tcHJvZmlsZS1pbWFnZS1zaGFkb3cgPT0gdHJ1ZSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkZGVmYXVsdC1ib3gtc2hhZG93O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAkYWMtdGVhbS1pdGVtLXByb2ZpbGUtaW1hZ2Utcm91bmRlZCA9PSB0cnVlIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLy9cbi8vICAgICAgTkFNRVxuLy9cblxuLmFjX3RlYW1faXRlbV9uYW1lIHtcbiAgICBmb250LXNpemU6IDExMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogLjZlbTtcbn1cblxuXG5cbi8vXG4vLyAgICAgIEpPQiBERVNDUklQVElPTlxuLy9cblxuLmFjX3RlYW1faXRlbV9qb2ItZGVzY3JpcHRpb24ge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiA5MCU7XG4gICAgbWFyZ2luLWJvdHRvbTogLjZlbTtcblxuICAgIEBpZiAkYWMtdGVhbS1pdGVtLXNob3ctam9iLWRlc2NyaXB0aW9uID09IGZhbHNlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cblxuLy9cbi8vICAgICAgVEVMRVBIT05FXG4vL1xuXG4uYWNfdGVhbV9pdGVtX3RlbGVwaG9uZSB7XG4gICAgQGlmICRhYy10ZWFtLWl0ZW0tc2hvdy10ZWxlcGhvbmUgPT0gZmFsc2Uge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuXG4vL1xuLy8gICAgICBFTUFJTFxuLy9cblxuLmFjX3RlYW1faXRlbV9lbWFpbCB7XG4gICAgQGlmICRhYy10ZWFtLWl0ZW0tc2hvdy1lbWFpbCA9PSBmYWxzZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5cbi8vXG4vLyAgICAgIFNPQ0lBTFNcbi8vXG5cbi5hY190ZWFtX2l0ZW1fc29jaWFscyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tdG9wOiAuNmVtO1xuICAgIFxuICAgIEBpZiAkYWMtdGVhbS1pdGVtLXRleHQtYWxpZ24gPT0gY2VudGVyIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuICAgIEBpZiAkYWMtdGVhbS1pdGVtLXNob3ctc29jaWFscyA9PSBmYWxzZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAkYWMtdGVhbS1pdGVtLXNvY2lhbC1zaXplIC0gJGFjLXRlYW0taXRlbS1zb2NpYWwtcGFkZGluZyAqIDI7XG4gICAgICAgIGhlaWdodDogJGFjLXRlYW0taXRlbS1zb2NpYWwtc2l6ZSAtICRhYy10ZWFtLWl0ZW0tc29jaWFsLXBhZGRpbmcgKiAyO1xuICAgICAgICBmaWxsOiAkYWMtdGVhbS1pdGVtLXNvY2lhbC1pY29uLWZpbGw7XG4gICAgfVxuICAgIGEge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC42ZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRhYy10ZWFtLWl0ZW0tc29jaWFsLWJhY2tncm91bmQ7XG4gICAgICAgIHdpZHRoOiAkYWMtdGVhbS1pdGVtLXNvY2lhbC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRhYy10ZWFtLWl0ZW0tc29jaWFsLXNpemU7XG4gICAgICAgIHBhZGRpbmc6ICRhYy10ZWFtLWl0ZW0tc29jaWFsLXBhZGRpbmc7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgJGRlZmF1bHQtdHJhbnNpdGlvbi1zcGVlZDtcbiAgICAgICAgJjpsYXN0LWNoaWxkKCkge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICAgIEBpZiAkYWMtdGVhbS1pdGVtLXNvY2lhbC1yb3VuZGVkID09IHRydWV7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRhYy10ZWFtLWl0ZW0tc29jaWFsLWJhY2tncm91bmQtaG92ZXI7XG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGFjLXRlYW0taXRlbS1zb2NpYWwtaWNvbi1ob3Zlci1maWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIlxuLyogQUNfU19UT1BUQVNLU19GSVhFRCAtIDFcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLy8gY29udGFpbmVyXG4kYWMtdG9wdGFza3MtZml4ZWQtYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1saWdodDtcbiRhYy10b3B0YXNrcy1maXhlZC16LWluZGV4OiAzMzMzO1xuJGFjLXRvcHRhc2tzLWZpeGVkLXBvc2l0aW9uOiAncnQnOyAvLyBsdCwgbGIsIHJ0LCByYlxuJGFjLXRvcHRhc2tzLWZpeGVkLWJvcmRlcjogbm9uZTtcbiRhYy10b3B0YXNrcy1maXhlZC1ib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzO1xuJGFjLXRvcHRhc2tzLWZpeGVkLXBvc2l0aW9uLW9mZnNldDogMjV2aDsgLy8gdmggdW5pdCBtZWFzdXJlbWVudC4gQ2FsY3VsYXRlZCBmcm9tIHRvcCBvciBmcm9tIGJvdHRvbS5cbiRhYy10b3B0YXNrcy1maXhlZC13aWR0aDogNDAwcHg7XG5cbi8vIGl0ZW1cbiRhYy10b3B0YXNrcy1maXhlZC1pdGVtLW1hcmdpbi1ib3R0b206IDA7IC8vIDEwcHhcbiRhYy10b3B0YXNrcy1maXhlZC1pdGVtLWJvcmRlci1yYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXM7XG4kYWMtdG9wdGFza3MtZml4ZWQtaXRlbS1iYWNrZ3JvdW5kLWNvbG9yOiAkZGVmYXVsdC1iYWNrZ3JvdW5kLWxpZ2h0O1xuJGFjLXRvcHRhc2tzLWZpeGVkLWl0ZW0tYmFja2dyb3VuZC1ob3Zlci1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1saWdodDtcblxuLy8gdGl0bGVcbiRhYy10b3B0YXNrcy1maXhlZC1pdGVtLXRpdGxlLWNvbG9yOiAkZGVmYXVsdC10ZXh0LWNvbG9yO1xuJGFjLXRvcHRhc2tzLWZpeGVkLWl0ZW0tdGl0bGUtaG92ZXItY29sb3I6ICRkZWZhdWx0LXRleHQtY29sb3I7XG5cbi8vIGJ0bi1jb250YWluZXJcbiRhYy10b3B0YXNrcy1maXhlZC1pdGVtLWJ0bi1jb250YWluZXItY29sb3I6IHJnYmEoJGRlZmF1bHQtdGV4dC1jb2xvciwgLjUpO1xuJGFjLXRvcHRhc2tzLWZpeGVkLWl0ZW0tYnRuLWNvbnRhaW5lci1ob3Zlci1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLCAxKTtcblxuLy8gaWNvblxuJGFjLXRvcHRhc2tzLWZpeGVkLWl0ZW0taWNvbi1maWxsOiAkZGVmYXVsdC1pY29uLWNvbG9yO1xuJGFjLXRvcHRhc2tzLWZpeGVkLWl0ZW0taWNvbi1ob3Zlci1maWxsOiAkYnJhbmQtcHJpbWFyeS1kYXJrZXI7XG4kYWMtdG9wdGFza3MtZml4ZWQtaXRlbS1pY29uLXNpemU6IDMwcHg7IC8vIDIwcHhcbiRhYy10b3B0YXNrcy1maXhlZC1pdGVtLWljb24tcGFkZGluZzogMTVweDsgLy8gMjBweFxuXG4vLyBmb3IgbW9iaWxlXG4kYWMtdG9wdGFza3MtbW9iaWxlLWJhY2tncm91bmQ6ICRkZWZhdWx0LWJhY2tncm91bmQtbGlnaHQ7XG5cbi8vIGltcG9ydCBnbG9iYWxzXG5AaW1wb3J0ICdfX3RvcHRhc2tzLWZpeGVkX2dsb2JhbHMnOyIsIlxuLyogQUNfU19UT1BUQVNLUyAtIEdMT0JBTFNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXG4vL1xuLy8gICAgICBUT1BUQVNLUyBGSVhFRCBTRUNUSU9OXG4vL1xuXG5cbltkYXRhLXMtdHlwZT1cInRvcHRhc2tzLWZpeGVkXCJdIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogJGFjLXRvcHRhc2tzLWZpeGVkLXotaW5kZXg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogJGFjLXRvcHRhc2tzLWZpeGVkLWJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyOiAkYWMtdG9wdGFza3MtZml4ZWQtYm9yZGVyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikgeyBcbiAgICAgICAgYm94LXNoYWRvdzogLTVweCAwIDEwcHggcmdiYShibGFjaywgLjEpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7IFxuICAgIFxuICAgICAgICBib3gtc2hhZG93OiAkZGVmYXVsdC1ib3gtc2hhZG93O1xuXG4gICAgICAgIEBpZiAkYWMtdG9wdGFza3MtZml4ZWQtcG9zaXRpb24gPT0gJ3J0JyB7XG4gICAgICAgICAgICB0b3A6ICRhYy10b3B0YXNrcy1maXhlZC1wb3NpdGlvbi1vZmZzZXQ7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogaW5oZXJpdDtcbiAgICAgICAgICAgIGxlZnQ6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRhYy10b3B0YXNrcy1maXhlZC1wb3NpdGlvbiA9PSAncmInIHtcbiAgICAgICAgICAgIGJvdHRvbTogJGFjLXRvcHRhc2tzLWZpeGVkLXBvc2l0aW9uLW9mZnNldDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiBpbmhlcml0O1xuICAgICAgICAgICAgbGVmdDogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgICAgICBAaWYgJGFjLXRvcHRhc2tzLWZpeGVkLXBvc2l0aW9uID09ICdsdCcge1xuICAgICAgICAgICAgdG9wOiAkYWMtdG9wdGFza3MtZml4ZWQtcG9zaXRpb24tb2Zmc2V0O1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogaW5oZXJpdDtcbiAgICAgICAgICAgIHJpZ2h0OiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAkYWMtdG9wdGFza3MtZml4ZWQtcG9zaXRpb24gPT0gJ2xiJyB7XG4gICAgICAgICAgICBib3R0b206ICRhYy10b3B0YXNrcy1maXhlZC1wb3NpdGlvbi1vZmZzZXQ7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiBpbmhlcml0O1xuICAgICAgICAgICAgcmlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICB3aWR0aDogJGFjLXRvcHRhc2tzLWZpeGVkLXdpZHRoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYWMtdG9wdGFza3MtZml4ZWQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgQGlmICRhYy10b3B0YXNrcy1maXhlZC1wb3NpdGlvbiA9PSAncnQnIG9yICRhYy10b3B0YXNrcy1maXhlZC1wb3NpdGlvbiA9PSAncmInIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgjeyRhYy10b3B0YXNrcy1maXhlZC13aWR0aCAtICgkYWMtdG9wdGFza3MtZml4ZWQtaXRlbS1pY29uLXNpemUgKyAoJGFjLXRvcHRhc2tzLWZpeGVkLWl0ZW0taWNvbi1wYWRkaW5nICogMikpfSk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0jeyRhYy10b3B0YXNrcy1maXhlZC13aWR0aCAtICgkYWMtdG9wdGFza3MtZml4ZWQtaXRlbS1pY29uLXNpemUgKyAoJGFjLXRvcHRhc2tzLWZpeGVkLWl0ZW0taWNvbi1wYWRkaW5nICogMikpfSk7XG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG5cbi8vXG4vLyAgICAgIENPTlRBSU5FUlxuLy9cblxuLmFjX3RvcHRhc2tzX2ZpeGVkX2NvbnRhaW5lcl9pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCkgeyBcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkgeyBcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG4uYWNfdG9wdGFza3NfZml4ZWRfaXRlbV9jb250YWluZXJ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIEBpZiAkYWMtdG9wdGFza3MtZml4ZWQtcG9zaXRpb24gPT0gJ2x0JyBvciAkYWMtdG9wdGFza3MtZml4ZWQtcG9zaXRpb24gPT0gJ2xiJyB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7IFxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7IFxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG59XG5cblxuLy9cbi8vICAgICAgSVRFTVxuLy9cblxuLmFjX3RvcHRhc2tzX2ZpeGVkX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQ6ICRhYy10b3B0YXNrcy1maXhlZC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6ICRhYy10b3B0YXNrcy1maXhlZC1pdGVtLWJvcmRlci1yYWRpdXM7XG4gICAgd2lkdGg6ICRhYy10b3B0YXNrcy1maXhlZC13aWR0aCAtIDJweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7IFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRhYy10b3B0YXNrcy1tb2JpbGUtYmFja2dyb3VuZDtcbiAgICAgICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDgwJTtcbiAgICAgICAgfVxuICAgICAgICAmOmxhc3QtY2hpbGQoKSB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICAgICBcblxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkgeyBcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGFjLXRvcHRhc2tzLWZpeGVkLWl0ZW0tbWFyZ2luLWJvdHRvbTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgICAgIHdpbGwtY2hhbmdlOiBjb250ZW50cztcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYWMtdG9wdGFza3MtZml4ZWQtaXRlbS1iYWNrZ3JvdW5kLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgQGlmICRhYy10b3B0YXNrcy1maXhlZC1wb3NpdGlvbiA9PSAncnQnIG9yICRhYy10b3B0YXNrcy1maXhlZC1wb3NpdGlvbiA9PSAncmInIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMHB4KTtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMDBweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuYWNfdG9wdGFza3NfZml4ZWRfaXRlbV9pY29uIHtcbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYWMtdG9wdGFza3MtZml4ZWQtaXRlbS1pY29uLWhvdmVyLWZpbGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmFjX3RvcHRhc2tzX2ZpeGVkX2l0ZW1fY29udGVudF90aXRsZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhYy10b3B0YXNrcy1maXhlZC1pdGVtLXRpdGxlLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmFjX3RvcHRhc2tzX2ZpeGVkX2l0ZW1fY29udGVudF9idG4tY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFjLXRvcHRhc2tzLWZpeGVkLWl0ZW0tYnRuLWNvbnRhaW5lci1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vL1xuLy8gICAgICBDT05URU5UXG4vL1xuXG4uYWNfdG9wdGFza3NfZml4ZWRfaXRlbV9jb250ZW50IHtcbiAgICBAaWYgJGFjLXRvcHRhc2tzLWZpeGVkLXBvc2l0aW9uID09ICdsdCcgb3IgJGFjLXRvcHRhc2tzLWZpeGVkLXBvc2l0aW9uID09ICdsYicge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG59XG4uYWNfdG9wdGFza3NfZml4ZWRfaXRlbV9jb250ZW50X3RpdGxlIHtcbiAgICBmb250LXNpemU6IDkwJTtcbiAgICBjb2xvcjogJGFjLXRvcHRhc2tzLWZpeGVkLWl0ZW0tdGl0bGUtY29sb3I7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn1cbi5hY190b3B0YXNrc19maXhlZF9pdGVtX2NvbnRlbnRfYnRuLWNvbnRhaW5lciB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGNvbG9yOiAkYWMtdG9wdGFza3MtZml4ZWQtaXRlbS1idG4tY29udGFpbmVyLWNvbG9yO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgfVxufVxuXG5cbi8vXG4vLyAgICAgIElDT05cbi8vXG5cbi5hY190b3B0YXNrc19maXhlZF9pdGVtX2ljb24tY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbn1cbi5hY190b3B0YXNrc19maXhlZF9pdGVtX2ljb24ge1xuICAgIHdpZHRoOiAkYWMtdG9wdGFza3MtZml4ZWQtaXRlbS1pY29uLXNpemUgKiAuNztcbiAgICBoZWlnaHQ6ICRhYy10b3B0YXNrcy1maXhlZC1pdGVtLWljb24tc2l6ZSAqIC43O1xuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0tcG9ydHJhaXQpIHtcbiAgICAgICAgd2lkdGg6ICRhYy10b3B0YXNrcy1maXhlZC1pdGVtLWljb24tc2l6ZSArICgkYWMtdG9wdGFza3MtZml4ZWQtaXRlbS1pY29uLXBhZGRpbmcgKiAyKTtcbiAgICAgICAgaGVpZ2h0OiAkYWMtdG9wdGFza3MtZml4ZWQtaXRlbS1pY29uLXNpemUgKyAoJGFjLXRvcHRhc2tzLWZpeGVkLWl0ZW0taWNvbi1wYWRkaW5nICogMik7XG4gICAgICAgIHBhZGRpbmc6ICRhYy10b3B0YXNrcy1maXhlZC1pdGVtLWljb24tcGFkZGluZztcbiAgICB9ICAgXG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogJGFjLXRvcHRhc2tzLWZpeGVkLWl0ZW0taWNvbi1zaXplICogLjc7XG4gICAgICAgIGhlaWdodDogJGFjLXRvcHRhc2tzLWZpeGVkLWl0ZW0taWNvbi1zaXplICogLjc7XG4gICAgICAgIGZpbGw6ICRhYy10b3B0YXNrcy1maXhlZC1pdGVtLWljb24tZmlsbDtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0tcG9ydHJhaXQpIHtcbiAgICAgICAgICAgIHdpZHRoOiAkYWMtdG9wdGFza3MtZml4ZWQtaXRlbS1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRhYy10b3B0YXNrcy1maXhlZC1pdGVtLWljb24tc2l6ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuIiwiXG4vKiBBQ19TX1RPUFRBU0tTIC0gMVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBpdGVtc1xuJGFjLXRvcHRhc2tzLWl0ZW1zLW1heC13aWR0aDogJG1heC1jb250ZW50LTEyMDA7XG4kYWMtdG9wdGFza3MtaXRlbXMtcGFkZGluZzogMDtcbiRhYy10b3B0YXNrcy1pdGVtcy1pbm5lci13cmFwcGVyLWVuYWJsZWQ6IGZhbHNlO1xuJGFjLXRvcHRhc2tzLWl0ZW1zLWlubmVyLXdyYXBwZXItcGFkZGluZzogJGRlZmF1bHQtcGFkZGluZyAvIDQ7XG4kYWMtdG9wdGFza3MtaXRlbXMtaW5uZXItd3JhcHBlci1iYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtbGlnaHRlc3QtZ3JheTtcbiRhYy10b3B0YXNrcy1pdGVtcy1oYXZlLWJvcmRlci1kaXZpZGVyczogZmFsc2U7XG5cbi8vIGl0ZW1cbiRhYy10b3B0YXNrcy1pdGVtLXBhZGRpbmc6ICRkZWZhdWx0LXBhZGRpbmcgLyAyO1xuJGFjLXRvcHRhc2tzLWl0ZW0tY29udGFpbmVyLXBhZGRpbmc6ICRkZWZhdWx0LXBhZGRpbmc7XG4kYWMtdG9wdGFza3MtaXRlbS1oYXMtc2hhZG93OiB0cnVlO1xuJGFjLXRvcHRhc2tzLWl0ZW0tYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLWxpZ2h0ZXN0LWdyYXk7XG4kYWMtdG9wdGFza3MtaXRlbS1iYWNrZ3JvdW5kLWhvdmVyLWNvbG9yOiAkZGVmYXVsdC1iYWNrZ3JvdW5kLWRhcms7XG4kYWMtdG9wdGFza3MtaXRlbS1ib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzOyBcblxuLy8gaW1hZ2VcbiRhYy10b3B0YXNrcy1pdGVtLWhhcy1pbWFnZS1jb250YWluZXI6IHRydWU7IFxuJGFjLXRvcHRhc2tzLWl0ZW0taGFzLWltYWdlLWNvbnRhaW5lci1oZWlnaHQ6IDEyMHB4O1xuJGFjLXRvcHRhc2tzLWl0ZW0taGFzLWltYWdlLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yOiAkZGVmYXVsdC1iYWNrZ3JvdW5kLWRhcms7XG4kYWMtdG9wdGFza3MtaXRlbS1oYXMtaW1hZ2U6IGZhbHNlO1xuJGFjLXRvcHRhc2tzLWl0ZW0taGFzLWltYWdlLWluaXRpYWwtZmFkZTogLjE7XG4kYWMtdG9wdGFza3MtaXRlbS1oYXMtaW1hZ2UtaG92ZXItZmFkZTogLjU7XG5cbi8vIGljb25cbiRhYy10b3B0YXNrcy1pdGVtLWljb24tZW5ibGVkOiB0cnVlO1xuJGFjLXRvcHRhc2tzLWl0ZW0taWNvbi13aWR0aDogODBweDsgLy8gcHggb2YgZW1cbiRhYy10b3B0YXNrcy1pdGVtLWljb24tcGFkZGluZzogMTJweDsgLy8gcHggb3IgZW0gLSBpcyBkZWR1Y3RlZCBmcm9tIGljb24gd2lkdGguIFNheSB3aWR0aCBpcyA4MHB4IGFuZCBwYWRkaW5nIGlzIDE1cHgsIHRoZSBhY3R1YWwgaWNvbiBpcyA1MHB4O1xuJGFjLXRvcHRhc2tzLWl0ZW0taWNvbi1tYXJnaW4tYm90dG9tOiA0MHB4OyBcbiRhYy10b3B0YXNrcy1pdGVtLWljb24tYmc6ICRkZWZhdWx0LWljb24tY29sb3ItbGlnaHQ7XG4kYWMtdG9wdGFza3MtaXRlbS1pY29uLWhvdmVyLWJnOiByZ2JhKCRkZWZhdWx0LWljb24tY29sb3ItbGlnaHQsIC4xKTsgLy8gaW5oZXJpdFxuJGFjLXRvcHRhc2tzLWl0ZW0taWNvbi1maWxsOiAkZGVmYXVsdC1iYWNrZ3JvdW5kLWRhcms7XG4kYWMtdG9wdGFza3MtaXRlbS1pY29uLWhvdmVyLWZpbGw6ICRkZWZhdWx0LWJhY2tncm91bmQtbGlnaHQ7XG5cbi8vIHRpdGxlXG4kYWMtdG9wdGFza3MtaXRlbS10aXRsZS1jb2xvcjogJGRlZmF1bHQtdGV4dC1jb2xvcjtcbiRhYy10b3B0YXNrcy1pdGVtLXRpdGxlLWNvbG9yLWhvdmVyOiAkZGVmYXVsdC10ZXh0LWNvbG9yLWxpZ2h0O1xuXG4vLyBkZXNjcmlwdGlvblxuJGFjLXRvcHRhc2tzLWl0ZW0tZGVzY3JpcHRpb24tZW5hYmxlZDogZmFsc2U7XG4kYWMtdG9wdGFza3MtaXRlbS1kZXNjcmlwdGlvbi1jb2xvcjogJGRlZmF1bHQtdGV4dC1jb2xvcjtcbiRhYy10b3B0YXNrcy1pdGVtLWRlc2NyaXB0aW9uLWNvbG9yLWhvdmVyOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3IsIC45KTtcbiRhYy10b3B0YXNrcy1pdGVtLWRlc2NyaXB0aW9uLW1hcmdpbi1ib3R0b206IDFlbTtcblxuLy8gYnRuLWNvbnRhaW5lclxuJGFjLXRvcHRhc2tzLWl0ZW0tYnRuLWNvbnRhaW5lci1lbmFibGVkOiBmYWxzZTtcbiRhYy10b3B0YXNrcy1pdGVtLWJ0bi1jb250YWluZXItY29sb3I6ICRkZWZhdWx0LXRleHQtY29sb3I7XG4kYWMtdG9wdGFza3MtaXRlbS1idG4tY29udGFpbmVyLWNvbG9yLWhvdmVyOiByZ2JhKCRkZWZhdWx0LXRleHQtY29sb3IsIC45KTtcblxuQGltcG9ydCAnX190b3B0YXNrc19nbG9iYWxzJztcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cblxuLmFjX3RvcHRhc2tzX2l0ZW0ge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0IG9ubHkpIHsgXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCBvbmx5KSB7IFxuICAgICAgICAgICAgQGluY2x1ZGUgYWMtdG9wdGFzay1ib3JkZXItZGl2aWRlci1ib3R0b207XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5hY190b3B0YXNrc19pdGVtX2NvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmFjX3RvcHRhc2tzX2l0ZW1faW1hZ2UtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogJGFjLXRvcHRhc2tzLWl0ZW0taGFzLWltYWdlLWNvbnRhaW5lci1oZWlnaHQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICRhYy10b3B0YXNrcy1pdGVtLWhhcy1pbWFnZS1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkYWMtdG9wdGFza3MtaXRlbS1ib3JkZXItcmFkaXVzO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRhYy10b3B0YXNrcy1pdGVtLWJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG59XG5cbi5hY190b3B0YXNrc19pdGVtX2ljb24tY29udGFpbmVyIHtcbiAgICBmbGV4OiAwIDAgJGFjLXRvcHRhc2tzLWl0ZW0taGFzLWltYWdlLWNvbnRhaW5lci1oZWlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5hY190b3B0YXNrc19pdGVtX2NvbnRlbnQge1xuICAgIFxufVxuLmFjX3RvcHRhc2tzX2l0ZW1fY29udGVudF90aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn0iLCJcbi8qIEFDX1NfVE9QVEFTS1MgLSBHTE9CQUxTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cblxuQG1peGluIGFjLXRvcHRhc2stYm9yZGVyLWRpdmlkZXItYm90dG9tKCkge1xuICAgIHRvcDogaW5oZXJpdDtcbiAgICByaWdodDogaW5oZXJpdDtcbiAgICBsZWZ0OiAkZGVmYXVsdC1wYWRkaW5nO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gI3skZGVmYXVsdC1wYWRkaW5nICogMn0pO1xufVxuXG4vL1xuLy8gICAgICBUT1BUQVNLUyBTRUNUSU9OXG4vL1xuXG5cbltkYXRhLXMtdHlwZT1cInRvcHRhc2tzXCJdIHtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLy9cbi8vICAgICAgQ09OVEFJTkVSXG4vL1xuXG5cbi5hY190b3B0YXNrc19jb250YWluZXJ7XG4gICAgbWF4LXdpZHRoOiAkYWMtdG9wdGFza3MtaXRlbXMtbWF4LXdpZHRoO1xuICAgIG1hcmdpbjogMmVtIGF1dG87XG4gICAgcGFkZGluZzogJGFjLXRvcHRhc2tzLWl0ZW1zLXBhZGRpbmc7IFxufVxuLmFjX3RvcHRhc2tzX2NvbnRhaW5lcl9pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgcGFkZGluZzogJGFjLXRvcHRhc2tzLWl0ZW1zLWlubmVyLXdyYXBwZXItcGFkZGluZztcblxuICAgIEBpZiAkYWMtdG9wdGFza3MtaXRlbXMtaW5uZXItd3JhcHBlci1lbmFibGVkID09IHRydWUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYWMtdG9wdGFza3MtaXRlbXMtaW5uZXItd3JhcHBlci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYWMtdG9wdGFza3MtaXRlbS1ib3JkZXItcmFkaXVzO1xuICAgIH1cblxufVxuXG5cbi8vXG4vLyAgICAgIElURU1cbi8vXG5cbi5hY190b3B0YXNrc19pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBhZGRpbmc6ICRhYy10b3B0YXNrcy1pdGVtLXBhZGRpbmc7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIFxuICAgIEBpZiAkYWMtdG9wdGFza3MtaXRlbXMtaGF2ZS1ib3JkZXItZGl2aWRlcnMgPT0gdHJ1ZSB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDIwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiA2MCU7XG4gICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkgeyBcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhYy10b3B0YXNrLWJvcmRlci1kaXZpZGVyLWJvdHRvbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBsYXN0KDEpIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkgeyAgICBcbiAgICAgICAgICAgIC5hY190b3B0YXNrc19pdGVtX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGFjLXRvcHRhc2tzLWl0ZW0tYmFja2dyb3VuZC1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5hY190b3B0YXNrc19pdGVtX2ltYWdlIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAkYWMtdG9wdGFza3MtaXRlbS1oYXMtaW1hZ2UtaG92ZXItZmFkZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5hY190b3B0YXNrc19pdGVtX2ljb24ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRhYy10b3B0YXNrcy1pdGVtLWljb24taG92ZXItYmc7XG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgIEBpZiAkc3ZnLWljb24tc2V0LXR5cGUgPT0gJ2ZpbGwnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICRhYy10b3B0YXNrcy1pdGVtLWljb24taG92ZXItZmlsbDtcbiAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2VpZiAkc3ZnLWljb24tc2V0LXR5cGUgPT0gJ3N0cm9rZScge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiAkYWMtdG9wdGFza3MtaXRlbS1pY29uLWhvdmVyLWZpbGw7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5hY190b3B0YXNrc19pdGVtX2NvbnRlbnRfdGl0bGUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWMtdG9wdGFza3MtaXRlbS10aXRsZS1jb2xvci1ob3ZlclxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICRhYy10b3B0YXNrcy1pdGVtLWRlc2NyaXB0aW9uLWVuYWJsZWQgPT0gdHJ1ZSB7XG4gICAgICAgICAgICAgICAgLmFjX3RvcHRhc2tzX2l0ZW1fY29udGVudF9kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYWMtdG9wdGFza3MtaXRlbS1kZXNjcmlwdGlvbi1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgJGFjLXRvcHRhc2tzLWl0ZW0tYnRuLWNvbnRhaW5lci1lbmFibGVkID09IHRydWUge1xuICAgICAgICAgICAgICAgIC5hY190b3B0YXNrc19pdGVtX2NvbnRlbnRfYnRuLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYWMtdG9wdGFza3MtaXRlbS1idG4tY29udGFpbmVyLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmFjX3RvcHRhc2tzX2l0ZW1fY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkYWMtdG9wdGFza3MtaXRlbS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRhYy10b3B0YXNrcy1pdGVtLWJvcmRlci1yYWRpdXM7XG4gICAgcGFkZGluZzogJGFjLXRvcHRhc2tzLWl0ZW0tY29udGFpbmVyLXBhZGRpbmc7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IGFsbCAkZGVmYXVsdC10cmFuc2l0aW9uLXNwZWVkO1xuICAgIEBpZiAkYWMtdG9wdGFza3MtaXRlbS1oYXMtc2hhZG93ID09IHRydWUge1xuICAgICAgICBib3gtc2hhZG93OiAkZGVmYXVsdC1ib3gtc2hhZG93O1xuICAgIH1cbn1cblxuXG4vL1xuLy8gICAgICBCT1JERVIgUkVTUE9OU0lWRU5FU1Ncbi8vXG5cbkBpZiAkYWMtdG9wdGFza3MtaXRlbXMtaGF2ZS1ib3JkZXItZGl2aWRlcnMgPT0gdHJ1ZSB7XG5cbiAgICBcbn1cblxuXG4vL1xuLy8gICAgICBJTUFHRVxuLy9cblxuLmFjX3RvcHRhc2tzX2l0ZW1faW1hZ2UtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkYWMtdG9wdGFza3MtaXRlbS1oYXMtaW1hZ2UtY29udGFpbmVyLWhlaWdodDtcbiAgICBiYWNrZ3JvdW5kOiAkYWMtdG9wdGFza3MtaXRlbS1oYXMtaW1hZ2UtY29udGFpbmVyLWJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGFjLXRvcHRhc2tzLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGFjLXRvcHRhc2tzLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICBAaWYgJGFjLXRvcHRhc2tzLWl0ZW0taGFzLWltYWdlLWNvbnRhaW5lciA9PSBmYWxzZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IFxuICAgIH1cbn1cbi5hY190b3B0YXNrc19pdGVtX2ltYWdlIHtcbiAgICBAaWYgJGFjLXRvcHRhc2tzLWl0ZW0taGFzLWltYWdlID09IGZhbHNlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvcGFjaXR5OiAkYWMtdG9wdGFza3MtaXRlbS1oYXMtaW1hZ2UtaW5pdGlhbC1mYWRlO1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkYWMtdG9wdGFza3MtaXRlbS1ib3JkZXItcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGFjLXRvcHRhc2tzLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgICAgIGJveC1zaGFkb3c6ICRkZWZhdWx0LWJveC1zaGFkb3c7XG4gICAgfVxufVxuXG5cbi8vXG4vLyAgICAgIENPTlRFTlRcbi8vXG5cblxuLmFjX3RvcHRhc2tzX2l0ZW1fY29udGVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZmxleDogMTsgLy8gaWUxMSB0ZXh0IG92ZXJmbG93IGZpeFxufVxuLmFjX3RvcHRhc2tzX2l0ZW1fY29udGVudF90aXRsZSB7XG4gICAgQGluY2x1ZGUgZm9udC1oZWFkaW5ncy1ib2xkKCk7XG4gICAgZm9udC1zaXplOiAxMjAlO1xuICAgIG1hcmdpbi1ib3R0b206IC40ZW07XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkYWMtdG9wdGFza3MtaXRlbS10aXRsZS1jb2xvcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgJGRlZmF1bHQtdHJhbnNpdGlvbi1zcGVlZDtcbn1cbi5hY190b3B0YXNrc19pdGVtX2NvbnRlbnRfZGVzY3JpcHRpb24ge1xuICAgIEBpZiAkYWMtdG9wdGFza3MtaXRlbS1kZXNjcmlwdGlvbi1lbmFibGVkID09IGZhbHNlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRhYy10b3B0YXNrcy1pdGVtLWRlc2NyaXB0aW9uLW1hcmdpbi1ib3R0b207XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgY29sb3I6ICRhYy10b3B0YXNrcy1pdGVtLWRlc2NyaXB0aW9uLWNvbG9yO1xuICAgIH1cbn1cbi5hY190b3B0YXNrc19pdGVtX2NvbnRlbnRfYnRuLWNvbnRhaW5lciB7XG4gICAgQGlmICRhYy10b3B0YXNrcy1pdGVtLWJ0bi1jb250YWluZXItZW5hYmxlZCA9PSBmYWxzZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgY29sb3I6ICRhYy10b3B0YXNrcy1pdGVtLWJ0bi1jb250YWluZXItY29sb3I7XG4gICAgfVxufVxuXG5cblxuLy9cbi8vICAgICAgSUNPTlxuLy9cblxuLmFjX3RvcHRhc2tzX2l0ZW1faWNvbi1jb250YWluZXIge1xuICAgIEBpZiAkYWMtdG9wdGFza3MtaXRlbS1pY29uLWVuYmxlZCA9PSB0cnVlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkYWMtdG9wdGFza3MtaXRlbS1pY29uLW1hcmdpbi1ib3R0b21cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG4uYWNfdG9wdGFza3NfaXRlbV9pY29uIHtcbiAgICBAaWYgJGFjLXRvcHRhc2tzLWl0ZW0taWNvbi1lbmJsZWQgPT0gdHJ1ZSB7XG4gICAgICAgIHdpZHRoOiAkYWMtdG9wdGFza3MtaXRlbS1pY29uLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRhYy10b3B0YXNrcy1pdGVtLWljb24td2lkdGg7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhYy10b3B0YXNrcy1pdGVtLWljb24tYmc7XG4gICAgICAgIHBhZGRpbmc6ICRhYy10b3B0YXNrcy1pdGVtLWljb24tcGFkZGluZztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkYWMtdG9wdGFza3MtaXRlbS1pY29uLXdpZHRoIC0gKCRhYy10b3B0YXNrcy1pdGVtLWljb24tcGFkZGluZyAqIDIpO1xuICAgICAgICAgICAgaGVpZ2h0OiAkYWMtdG9wdGFza3MtaXRlbS1pY29uLXdpZHRoIC0gKCRhYy10b3B0YXNrcy1pdGVtLWljb24tcGFkZGluZyAqIDIpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgICAgICAgICBAaWYgJHN2Zy1pY29uLXNldC10eXBlID09ICdmaWxsJyB7XG4gICAgICAgICAgICAgICAgZmlsbDogJGFjLXRvcHRhc2tzLWl0ZW0taWNvbi1maWxsO1xuICAgICAgICAgICAgfSBAZWxzZWlmICRzdmctaWNvbi1zZXQtdHlwZSA9PSAnc3Ryb2tlJyB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlOiAkYWMtdG9wdGFza3MtaXRlbS1pY29uLWZpbGw7XG4gICAgICAgICAgICAgICAgZmlsbDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cblxuXG4iLCJcbi8qIFZBQyAtIDNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuJGFjLXZhYy1pdGVtcy1zbGlkZXI6IHRydWU7XG4kYWMtdmFjLWl0ZW1zLXNsaWRlci1mb3VjLWhlaWdodDogNTAwcHg7IC8vIHdoYXQgbmVlZHMgdG8gYmUgdGhlIGZsYXNoLW9mLXVud2FudGVkLWNvbnRlbnQgaGVpZ2h0IGJlZm9yZSBzbGlkZXIgaGFzIGxhb2RlZC5cbiRhYy12YWMtaXRlbXMtYnJlYWtwb2ludDogbGFyZ2U7XG4kYWMtdmFjLWl0ZW1zLW1heC13aWR0aDogJG1heC1jb250ZW50LTEyMDA7XG5cbiRhYy12YWMtaXRlbS12aXN1YWwtd2lkdGg6IDEqLjY7ICAvLyBjYW4gYmUgYW55IHBlcmNlbnRhZ2UgY2FsY3VsYXRpb24sIGVnIDEqLjggb3IgMS80LiBUaGUgY29udGVudCB3aWxsIHRha2UgdGhlIHNwYWNlIGxlZnQuIE1ha2Ugc3VyZSB0aGUgY29udGVudCBoYXMgZW5vdWdoIHNwYWNlLiBcbiRhYy12YWMtaXRlbS12aXN1YWwtbWluLWhlaWdodDogNTAwcHg7IC8vIG9uIHNtYWxsIHRoZSB2aXN1YWwgaGVpZ2h0IHdpbGwgYmUgc2V0IGFzIDUwJSBvZiB0aGUgbWluLWhlaWdodFxuJGFjLXZhYy1pdGVtLWNvbnRlbnQtaW5uZXItbWF4LXdpZHRoOiA1MDBweDtcbiRhYy12YWMtaXRlbS1jb250ZW50LWlubmVyLW1pbi13aWR0aDogNTAwcHg7IC8vIHNldCB0byAxMDAlIGlmIHRoZSBzcGFjZSBvZiB0aGUgY29udGVudCBsZWZ0IGlzIHNtYWxsZXIgdGhhbiB0aGUgc2V0IHBpeGVscyB5b3Ugd291bGQgcHJlZmVyLiBcbiRhYy12YWMtaXRlbS1tYXJnaW4tYm90dG9tOiAwO1xuJGFjLXZhYy1pdGVtLWhhcy1ib3JkZXItYm90dG9tOiBmYWxzZTtcbiRhYy12YWMtaXRlbS1ib3JkZXI6ICRkZWZhdWx0LWJvcmRlcjtcblxuXG5AaW1wb3J0ICdfX3ZhY19nbG9iYWxzJztcblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXG4uYWNfdmFjX2l0ZW1fY29udGFpbmVyIHtcbiAgICBtaW4taGVpZ2h0OiAkYWMtdmFjLWl0ZW0tdmlzdWFsLW1pbi1oZWlnaHQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbn1cbi5hY192YWNfaXRlbSB7XG4gICAgJi52X3RleHQtcmlnaHQge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCkge1xuICAgICAgICAgICAgLmFjX3ZhY19pdGVtX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgLmFjX3ZhY19pdGVtX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRkZWZhdWx0LXBhZGRpbmcgKiAzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICYudl90ZXh0LWxlZnQge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAuYWNfdmFjX2l0ZW1fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkZGVmYXVsdC1wYWRkaW5nICogMztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0gXG5cbi5hY192YWNfaXRlbV92aXN1YWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xufVxuXG4uYWNfdmFjX2l0ZW1fY29udGVudCB7XG4gICAgbWFyZ2luOiAkZGVmYXVsdC1wYWRkaW5nICogMiAwO1xuICAgIFxufVxuXG4uYWNfdmFjX2l0ZW1fY29udGVudF9pbm5lciB7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBtaW4td2lkdGg6IGluaXRpYWw7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgYmFja2dyb3VuZDogJGJyYW5kLXdoaXRlO1xuICAgIGJveC1zaGFkb3c6IDEwcHggMTBweCAyMHB4IHJnYmEoJGJyYW5kLWJsYWNrLCAuMik7XG4gICAgei1pbmRleDogMjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogJGRlZmF1bHQtcGFkZGluZyAqIDI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRhYy12YWMtaXRlbXMtYnJlYWtwb2ludCkge1xuICAgICAgICB3aWR0aDogaW5pdGlhbDtcbiAgICAgICAgbWFyZ2luOiBpbml0aWFsO1xuICAgIH1cbn1cbiAgICAiLCJcbi8qIEFDX1NfVkFDIC0gR0xPQkFMU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYWNfdmFjX2NvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAkYWMtdmFjLWl0ZW1zLW1heC13aWR0aDtcbiAgICBtYXJnaW46IDAgYXV0bztcbn1cblxuLmFjX3ZhY19pdGVtX2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBAaWYgJGFjLXZhYy1pdGVtLWhhcy1ib3JkZXItYm90dG9tID09IHRydWUge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGFjLXZhYy1pdGVtLW1hcmdpbi1ib3R0b20gLyAyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkYWMtdmFjLWl0ZW0tbWFyZ2luLWJvdHRvbSAvIDI7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRhYy12YWMtaXRlbS1tYXJnaW4tYm90dG9tO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHsgXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGFjLXZhYy1pdGVtLW1hcmdpbi1ib3R0b20gLyAyO1xuICAgIH1cbiAgICBAaWYgJGFjLXZhYy1pdGVtLWhhcy1ib3JkZXItYm90dG9tID09IHRydWUge1xuICAgICAgICBib3JkZXItYm90dG9tOiAkYWMtdmFjLWl0ZW0tYm9yZGVyO1xuICAgfVxufVxuXG4uYWNfdmFjX2l0ZW1fdmlzdWFsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkYWMtdmFjLWl0ZW0tdmlzdWFsLW1pbi1oZWlnaHQgLyAyO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGFjLXZhYy1pdGVtcy1icmVha3BvaW50KSB7IFxuICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgkYWMtdmFjLWl0ZW0tdmlzdWFsLXdpZHRoKTsgXG4gICAgICAgIG1heC13aWR0aDogcGVyY2VudGFnZSgkYWMtdmFjLWl0ZW0tdmlzdWFsLXdpZHRoKTtcbiAgICAgICAgbWluLWhlaWdodDogJGFjLXZhYy1pdGVtLXZpc3VhbC1taW4taGVpZ2h0O1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIFxuICAgIH1cbn1cblxuLmFjX3ZhY19pdGVtX2NvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRhYy12YWMtaXRlbXMtYnJlYWtwb2ludCkgeyBcbiAgICAgICAgd2lkdGg6IDEwMCUgLSBwZXJjZW50YWdlKCRhYy12YWMtaXRlbS12aXN1YWwtd2lkdGgpOyBcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlIC0gcGVyY2VudGFnZSgkYWMtdmFjLWl0ZW0tdmlzdWFsLXdpZHRoKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxufVxuLmFjX3ZhY19pdGVtX2NvbnRlbnRfaW5uZXIge1xuICAgIG1heC13aWR0aDogJGFjLXZhYy1pdGVtLWNvbnRlbnQtaW5uZXItbWF4LXdpZHRoO1xuICAgIHBhZGRpbmc6ICRkZWZhdWx0LXBhZGRpbmc7XG59XG5cbi5hY192YWNfaXRlbSB7XG4gICAgJi52X3RleHQtcmlnaHQge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCkge1xuICAgICAgICAgICAgLmFjX3ZhY19pdGVtX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSAgIFxuXG4vL1xuLy8gICAgICBTTElERVJcbi8vXG5cblxuQGlmICRhYy12YWMtaXRlbXMtc2xpZGVyID09IHRydWUge1xuICAgIC5hY192YWNfY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHotaW5kZXg6IGluaGVyaXQ7IC8vIHNsaWNrIHNsaWRlciB3aWxsIGhhbmRsZSB6LWluZGV4XG5cbiAgICAgICAgLy9zbGljayBmdW9jIGZpeFxuICAgICAgICBtYXgtaGVpZ2h0OiAkYWMtdmFjLWl0ZW1zLXNsaWRlci1mb3VjLWhlaWdodDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkZGVmYXVsdC10cmFuc2l0aW9uLXNwZWVkO1xuXG4gICAgICAgIC8vIGRyb3AgZm91YyBpZiBzbGljayBpcyBpbml0aWFsaXplZFxuICAgICAgICAmLnNsaWNrLWluaXRpYWxpemVkICB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxufSIsIlxuLyogUEFSVE5FUlMgLSAxXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vIGl0ZW1zXG4kYWMtcGFydG5lcnMtaXRlbXMtc2xpZGVyLWZvdWMtaGVpZ2h0OiAxMDBweDtcbiRhYy1wYXJ0bmVycy1pdGVtcy1oYXZlLXBhZGRpbmc6IHRydWU7XG4kYWMtcGFydG5lcnMtaXRlbXMtaGF2ZS1ib3JkZXItZGl2aWRlcnM6IGZhbHNlO1xuJGFjLXBhcnRuZXJzLWl0ZW1zLW9uLXNtYWxsLXR3by1pdGVtcy1hLXJvdzogdHJ1ZTsgLy8gaWYgdHJ1ZSB0d28gaXRlbXMgcGVyIHJvdyBvbiBzbWFsbCwgZWxzZSBvbmUgaXRlbVxuXG4vLyBpdGVtXG4kYWMtcGFydG5lcnMtaXRlbS1tYXJnaW4tYm90dG9tOiAwOyAvLyAxLjRlbVxuJGFjLXBhcnRuZXJzLWl0ZW0tY29udGFpbmVyLXBhZGRpbmc6IDA7XG4kYWMtcGFydG5lcnMtaXRlbS1jb250ZW50LXBhZGRpbmc6ICRkZWZhdWx0LXBhZGRpbmc7IFxuJGFjLXBhcnRuZXJzLWl0ZW0tY29udGVudC1iYWNrZ3JvdW5kOiBub25lO1xuJGFjLXBhcnRuZXJzLWl0ZW0tYm9yZGVyOiAkZGVmYXVsdC1ib3JkZXI7IC8vIGRlZmluZXMgdGhlIGFwcGVhcmFuY2UsIG5vdCB0aGUgZGlzcGxheVxuJGFjLXBhcnRuZXJzLWl0ZW0tc2hhZG93OiBmYWxzZTsgXG5cbi8vIGRlc2NyaXB0aW9uXG4kYWMtcGFydG5lcnMtaXRlbXMtZGVzY3JpcHRpb24tZW5hYmxlOiBmYWxzZTtcbiRhYy1wYXJ0bmVycy1pdGVtcy1kZXNjcmlwdGlvbi1jb2xvcjogcmdiYSgkZGVmYXVsdC10ZXh0LWNvbG9yLWRhcmssLjYpO1xuJGFjLXBhcnRuZXJzLWl0ZW1zLWRlc2NyaXB0aW9uLWhvdmVyLWNvbG9yOiAkZGVmYXVsdC10ZXh0LWNvbG9yLWRhcms7XG5cbi8vIGxvZ29cbiRhYy1wYXJ0bmVycy1pdGVtLWxvZ28tbWFyZ2luLWJvdHRvbTogMDsgLy8gMS40ZW1cbiRhYy1wYXJ0bmVycy1pdGVtLWxvZ28taGVpZ2h0OiAxMDBweDsgXG4kYWMtcGFydG5lcnMtaXRlbS1sb2dvLW1heC13aWR0aDogMTQwcHg7XG4kYWMtcGFydG5lcnMtaXRlbS1sb2dvLWluaXRpYWwtb3BhY2l0eTogMTtcbiRhYy1wYXJ0bmVycy1pdGVtLWxvZ28taG92ZXItb3BhY2l0eTogLjY7XG5cblxuQGltcG9ydCAnX19wYXJ0bmVyc19nbG9iYWxzJztcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbltkYXRhLXMtdHlwZT1cInBhcnRuZXJzXCJdIHtcbiAgICAuc2xpY2stdHJhY2t7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7ICAgICAgIFxuICAgIH1cbn0iLCJcbi8qIEFDX1NfUEFSVE5FUlMgLSBHTE9CQUxTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cblxuXG4vL1xuLy8gICAgICBTRUNUSU9OIFBBUlRORVJTXG4vL1xuXG5cbltkYXRhLXMtdHlwZT1cInBhcnRuZXJzXCJdIHtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAkZGVmYXVsdC1wYWRkaW5nIDA7XG4gICAgXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgcGFkZGluZzogMCAwICRkZWZhdWx0LXBhZGRpbmcgLyAyIDA7XG4gICAgfSAgIFxuXG4gICAgJi52X2lzLXNsaWRlciB7XG4gICAgICAgICYudl9oYXMtZG90cyB7XG4gICAgICAgICAgICAuYWNfYnJhbmRzX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnNsaWNrLWRvdHMge1xuICAgICAgICAgICAgYm90dG9tOiAtNGVtO1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cblxuLy9cbi8vICAgICAgQ09OVEFJTkVSXG4vL1xuXG4uYWNfcGFydG5lcnNfY29udGFpbmVye1xuICAgIC8vIG1heC13aWR0aDogJG1heC1jb250ZW50LTEyMDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgbWFyZ2luOiAyZW0gYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIEBpZiAkYWMtcGFydG5lcnMtaXRlbXMtaGF2ZS1ib3JkZXItZGl2aWRlcnMgPT0gZmFsc2UgYW5kICRhYy1wYXJ0bmVycy1pdGVtcy1oYXZlLXBhZGRpbmcgPT0gdHJ1ZSB7XG4gICAgICAgIHBhZGRpbmc6IDAgJGRlZmF1bHQtcGFkZGluZyAvIDI7XG4gICAgfVxufVxuXG5cbi8vXG4vLyAgICAgIElURU1cbi8vXG5cbi5hY19wYXJ0bmVyc19pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbi1ib3R0b206ICRhYy1wYXJ0bmVycy1pdGVtLW1hcmdpbi1ib3R0b207XG5cbiAgICBAaWYgJGFjLXBhcnRuZXJzLWl0ZW1zLW9uLXNtYWxsLXR3by1pdGVtcy1hLXJvdyA9PSB0cnVlIHtcbiAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMS8yKTtcbiAgICAgICAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKDEvMik7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgQGlmICRhYy1wYXJ0bmVycy1pdGVtcy1oYXZlLXBhZGRpbmcgPT0gdHJ1ZSB7XG4gICAgICAgIHBhZGRpbmc6IDAgJGRlZmF1bHQtcGFkZGluZztcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICBAaWYgJGFjLXBhcnRuZXJzLWl0ZW1zLWhhdmUtYm9yZGVyLWRpdmlkZXJzID09IHRydWUge1xuICAgICAgICBAaWYgJGFjLXBhcnRuZXJzLWl0ZW1zLWhhdmUtcGFkZGluZyA9PSB0cnVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJGRlZmF1bHQtcGFkZGluZztcbiAgICAgICAgfVxuICAgICAgICBib3JkZXItbGVmdDogJGFjLXBhcnRuZXJzLWl0ZW0tYm9yZGVyO1xuICAgICAgICBcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGlmICRhYy1wYXJ0bmVycy1pdGVtcy1oYXZlLXBhZGRpbmcgPT0gdHJ1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRkZWZhdWx0LXBhZGRpbmcgLyAyO1xuICAgICAgICB9XG4gICAgfSAgIFxuXG4gICAgJi52X3NtYWxsZXItbG9nbyB7XG4gICAgICAgIC5hY19wYXJ0bmVyc19pdGVtX2xvZ28ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSguOCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi52X2xhcmdlci1sb2dvIHtcbiAgICAgICAgLmFjX3BhcnRuZXJzX2l0ZW1fbG9nbyB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGFjLXBhcnRuZXJzLWl0ZW1zLWhhdmUtYm9yZGVyLWRpdmlkZXJzID09IHRydWUge1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbGFzdCgxKSB7XG4gICAgICAgICAgICAgICAgLmFjX3BhcnRuZXJzX2l0ZW1fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgfVxuXG59XG5hLmFjX3BhcnRuZXJzX2l0ZW0geyAvLyBsaW5rcyBvbmx5XG4gICAgJjpob3ZlciB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgIC5hY19wYXJ0bmVyc19pdGVtX2xvZ28ge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6ICRhYy1wYXJ0bmVycy1pdGVtLWxvZ28taG92ZXItb3BhY2l0eTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5hY19wYXJ0bmVyc19pdGVtX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFjLXBhcnRuZXJzLWl0ZW1zLWRlc2NyaXB0aW9uLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBcbn1cblxuLmFjX3BhcnRuZXJzX2l0ZW1fY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6ICRhYy1wYXJ0bmVycy1pdGVtLWNvbnRlbnQtYmFja2dyb3VuZDtcbiAgICBwYWRkaW5nOiAkYWMtcGFydG5lcnMtaXRlbS1jb250YWluZXItcGFkZGluZztcblxuICAgIEBpZiAkYWMtcGFydG5lcnMtaXRlbXMtaGF2ZS1ib3JkZXItZGl2aWRlcnMgPT0gdHJ1ZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRhYy1wYXJ0bmVycy1pdGVtLWJvcmRlcjtcbiAgICB9XG5cbiAgICBAaWYgJGFjLXBhcnRuZXJzLWl0ZW0tc2hhZG93ID09IHRydWUge1xuICAgICAgICBib3gtc2hhZG93OiAkZGVmYXVsdC1ib3gtc2hhZG93O1xuICAgIH1cbn1cblxuXG4vL1xuLy8gICAgICBCT1JERVIgUkVTUE9OU0lWRU5FU1Ncbi8vXG5cblxuW2RhdGEtcy10eXBlPVwicGFydG5lcnNcIl0ge1xuICAgICY6bm90KC52X2lzLXNsaWRlcikge1xuICAgICAgICBAaWYgJGFjLXBhcnRuZXJzLWl0ZW1zLWhhdmUtYm9yZGVyLWRpdmlkZXJzID09IHRydWUge1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBAaWYgJGFjLXBhcnRuZXJzLWl0ZW1zLW9uLXNtYWxsLXR3by1pdGVtcy1hLXJvdyA9PSBmYWxzZSB7XG5cbiAgICAgICAgICAgICAgICAvLyBib3JkZXItbGVmdFxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1yZXNwb25zaXZlbmVzcygnUzEnKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItcmVzcG9uc2l2ZW5lc3MoJ1MxLU1QMicpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1yZXNwb25zaXZlbmVzcygnUzEtTVAyLU0zJyk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJlc3BvbnNpdmVuZXNzKCdTMS1NUDItTTMtTDQnKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItcmVzcG9uc2l2ZW5lc3MoJ1MxLU1QMi1MNScpO1xuXG4gICAgICAgICAgICAgICAgLy8gYm9yZGVyLWJvdHRvbVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJvdHRvbS1pdGVtcy1uby1ib3JkZXIoJ1MxLU1QMicpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJvdHRvbS1pdGVtcy1uby1ib3JkZXIoJ1MxLU1QMi1MMycpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJvdHRvbS1pdGVtcy1uby1ib3JkZXIoJ1MxLU1QMi1MNCcpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJvdHRvbS1pdGVtcy1uby1ib3JkZXIoJ1MxLU1QMi1MNScpO1xuXG4gICAgICAgICAgICB9IEBlbHNlIHtcblxuICAgICAgICAgICAgICAgIC8vIGJvcmRlci1sZWZ0XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJlc3BvbnNpdmVuZXNzKCdTMScpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1yZXNwb25zaXZlbmVzcygnUzInKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItcmVzcG9uc2l2ZW5lc3MoJ1MyLU0zJyk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJlc3BvbnNpdmVuZXNzKCdTMi1MNCcpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1yZXNwb25zaXZlbmVzcygnUzItTDUnKTtcblxuICAgICAgICAgICAgICAgIC8vIGJvcmRlci1ib3R0b21cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBib3R0b20taXRlbXMtbm8tYm9yZGVyKCdTMicpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJvdHRvbS1pdGVtcy1uby1ib3JkZXIoJ1MyLU0zJyk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYm90dG9tLWl0ZW1zLW5vLWJvcmRlcignUzItTDQnKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBib3R0b20taXRlbXMtbm8tYm9yZGVyKCdTMi1MNScpO1xuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vL1xuLy8gICAgICBERVNDUklQVElPTlxuLy9cblxuLmFjX3BhcnRuZXJzX2l0ZW1fZGVzY3JpcHRpb24ge1xuICAgIFxuICAgIEBpZiAkYWMtcGFydG5lcnMtaXRlbXMtZGVzY3JpcHRpb24tZW5hYmxlID09IHRydWUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDk1JTtcbiAgICBjb2xvcjogJGFjLXBhcnRuZXJzLWl0ZW1zLWRlc2NyaXB0aW9uLWNvbG9yO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuXG5cbi8vXG4vLyAgICAgIExPR09cbi8vXG5cbi5hY19wYXJ0bmVyc19pdGVtX2xvZ29fY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIEBpZiAkYWMtcGFydG5lcnMtaXRlbXMtb24tc21hbGwtdHdvLWl0ZW1zLWEtcm93ID09IGZhbHNlIHtcbiAgICAgICAgcGFkZGluZzogMCAxMHZ3O1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS1wb3J0cmFpdCkge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbn1cbi5hY19wYXJ0bmVyc19pdGVtX2xvZ28ge1xuICAgIHdpZHRoOiA2MCU7XG4gICAgaGVpZ2h0OiAkYWMtcGFydG5lcnMtaXRlbS1sb2dvLWhlaWdodDtcbiAgICBtYXgtd2lkdGg6ICRhYy1wYXJ0bmVycy1pdGVtLWxvZ28tbWF4LXdpZHRoO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkZGVmYXVsdC10cmFuc2l0aW9uLXNwZWVkO1xuICAgIG9wYWNpdHk6ICRhYy1wYXJ0bmVycy1pdGVtLWxvZ28taW5pdGlhbC1vcGFjaXR5O1xufVxuXG5cblxuLy9cbi8vICAgICAgU0xJREVSXG4vL1xuXG5bZGF0YS1zLXR5cGU9XCJwYXJ0bmVyc1wiXSB7XG4gICAgJi52X2lzLXNsaWRlciB7XG4gICAgICAgIC5hY19wYXJ0bmVyc19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB6LWluZGV4OiBpbmhlcml0OyAvLyBzbGljayBzbGlkZXIgd2lsbCBoYW5kbGUgei1pbmRleFxuXG4gICAgICAgICAgICAvL3NsaWNrIGZ1b2MgZml4XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAkYWMtcGFydG5lcnMtaXRlbXMtc2xpZGVyLWZvdWMtaGVpZ2h0O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ7XG5cbiAgICAgICAgICAgIC8vIGRyb3AgZm91YyBpZiBzbGljayBpcyBpbml0aWFsaXplZFxuICAgICAgICAgICAgJi5zbGljay1pbml0aWFsaXplZCAge1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6ICAkYWMtcGFydG5lcnMtaXRlbXMtc2xpZGVyLWZvdWMtaGVpZ2h0O1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBbZGF0YS1zLWFtb3VudC1pdGVtXSB7XG4gICAgICAgIC8vIGJlY2F1c2UgYWxsIGl0ZW1zIGFyZSBpbiBvbmUgbGluZSwgbWFyZ2luIG9uIHRoZSBib3R0b20gbWFrZSBubyBzZW5zZVxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIFtkYXRhLWJvcmRlci1ib3R0b21dIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gb3ZlcnJ1bGUgYm9yZGVyIGxlZnQgYmVoYXZpb3VyXG4gICAgICAgIEBpZiAkYWMtcGFydG5lcnMtaXRlbXMtaGF2ZS1ib3JkZXItZGl2aWRlcnMgPT0gdHJ1ZSB7XG4gICAgICAgICBcbiAgICAgICAgICAgIC5zbGljay1zbGlkZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuc2xpY2stYWN0aXZlIH4gLnNsaWNrLWFjdGl2ZXtcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogJGFjLXBhcnRuZXJzLWl0ZW0tYm9yZGVyICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGlmIGFtb3VudCBvbiBzbWFsbCA9PSAxLCB3ZSBjYW4gaGlkZSB0aGUgYm9yZGVyIGFsbCB0b2dldGhlci4gVGhpcyBhbHNvIHByZXZlbnRzIGNvbnRlbnQgZ3JvdyBmbGlja2Vyc1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgICAgIFtkYXRhLXMtYW1vdW50LWl0ZW1dIHtcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLyogU0VDVElPTiBDT05UUk9MXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5bZGF0YS1zLWlkPVwiaG9tZS10b3B0YXNrc1wiXSB7XG4gICAgbWFyZ2luLXRvcDogLTYwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDIyO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTExMHB4O1xuICAgIH1cbn1cblxuW2RhdGEtcy1pZD1cImhvbWUtc2VydmljZXNcIl0ge1xuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMjBweDtcbn0iLCIvKiBTVEFURSBISURERU5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnNfaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qIFRFWFQgQUxJR05cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmFfdGV4dC1hbGlnbl9sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG59XG4uYV90ZXh0LWFsaWduX2NlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG59XG4uYV90ZXh0LWFsaWduX3JpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50O1xufVxuXG4vKiBGTEVYQk9YIEhFTFBFUlNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmFfanVzdGlmeV9mbGV4LXN0YXJ0ICB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG59XG4uYV9qdXN0aWZ5X2NlbnRlciB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbn1cbi5hX2p1c3RpZnlfZmxleC1lbmQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDtcbn1cbi5hX2p1c3RpZnlfc3BhY2UtYXJvdW5kIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50O1xufVxuLmFfanVzdGlmeV9zcGFjZS1iZXR3ZWVuIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDtcbn1cblxuXG4uYV9hbGlnbi1pdGVtc19jZW50ZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbn1cbi5hX2FsaWduLWl0ZW1zX2ZsZXgtc3RhcnQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG59XG4uYV9hbGlnbi1pdGVtc19mbGV4LWVuZCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG59XG5cbi5hX2ZsZXgtZGlyZWN0aW9uX3JvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50O1xufVxuLmFfZmxleC1kaXJlY3Rpb25fcm93LXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZSAhaW1wb3J0YW50O1xufVxuXG5cbi8qIE1BWCBXSURUSFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uYV9tYXgtd2lkdGgtZnVsbCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbiRtYXgtd2lkdGgtbGlzdDogNjAwIDgwMCAxMDAwIDEyMDAgMTQwMCAxNjAwIDE4MDAgMjAwMDtcblxuQG1peGluIGdlbmVyYXRlLW1heC13aWR0aC1jbGFzc2VzIHtcbiAgICBAZWFjaCAkaXRlbSBpbiAkbWF4LXdpZHRoLWxpc3Qge1xuICAgICAgICAuYV9tYXgtd2lkdGgtI3skaXRlbX0ge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAoJGl0ZW0gKyAwcHgpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgfSAgIFxuICAgIH1cbn1cbkBpbmNsdWRlIGdlbmVyYXRlLW1heC13aWR0aC1jbGFzc2VzKCk7XG5cblxuLyogQkFDS0dST1VORCBBVFRBQ0hNRU5UIFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uYV9iYWNrZ3JvdW5kLWF0dGFjaG1lbnRfZml4ZWQgeyBcbiAgICAvLyBub3QgYSBzdWl0YWJsZSBlZmZlY3QgZm9yIG1vYmlsZSBkZXZpY2VzXG4gICAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yMzIzNjE1OC9ob3ctdG8tcmVwbGljYXRlLWJhY2tncm91bmQtYXR0YWNobWVudC1maXhlZC1vbi1pb3NcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gICAgfVxufVxuXG4vKiBCQUNLR1JPVU5EIENPTlRBSU5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmFfY29udGFpbiB7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xufVxuXG4vKiBCQUNLR1JPVU5EIENPVkVSXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuJGNvdmVyLWxpc3Q6IGN0IGNjIGNiIGx0IGxjIGxiIHJ0IHJjIHJiO1xuJHBvc2l0aW9uczogKFxuXHRjdDogNTAlIDAlLFxuXHRjYzogNTAlIDUwJSxcbiAgICBjYjogNTAlIDEwMCUsXG4gICAgbHQ6IDAlIDAlLFxuICAgIGxjOiAwJSA1MCUsXG4gICAgbGI6IDAlIDEwMCUsXG4gICAgcnQ6IDEwMCUgMCUsXG4gICAgcmM6IDEwMCUgNTAlLFxuICAgIHJiOiAxMDAlIDEwMCVcbik7XG5cbkBtaXhpbiBnZW5lcmF0ZS1jb3Zlci1jbGFzc2VzIHtcbiAgICBAZWFjaCAkaXRlbSBpbiAkY292ZXItbGlzdCB7XG4gICAgICAgIC5hX2NvdmVyLSN7JGl0ZW19IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXIgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IG1hcC1nZXQoJHBvc2l0aW9ucywgJGl0ZW0pIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAZWFjaCAkaXRlbSBpbiAkY292ZXItbGlzdCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtLXBvcnRyYWl0KSB7IFxuICAgICAgICAgICAgLmFfbWVkaXVtLXBvcnRyYWl0X2NvdmVyLSN7JGl0ZW19IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBtYXAtZ2V0KCRwb3NpdGlvbnMsICRpdGVtKSFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGVhY2ggJGl0ZW0gaW4gJGNvdmVyLWxpc3Qge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkgeyBcbiAgICAgICAgICAgIC5hX21lZGl1bV9jb3Zlci0jeyRpdGVtfSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbWFwLWdldCgkcG9zaXRpb25zLCAkaXRlbSkhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuQGluY2x1ZGUgZ2VuZXJhdGUtY292ZXItY2xhc3NlcygpO1xuXG5cblxuLyogT1BBQ0lUWVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiRvcGFjaXR5LWxpc3Q6IDAgNSAxMCAyMCAzMCA0MCA1MCA2MCA3MCA4MCA5MCAxMDA7XG5cbkBtaXhpbiBnZW5lcmF0ZS1vcGFjaXR5LWNsYXNzZXMge1xuICAgIEBlYWNoICRpdGVtIGluICRvcGFjaXR5LWxpc3Qge1xuICAgICAgICAuYV9vcGFjaXR5LSN7JGl0ZW19IHtcbiAgICAgICAgICAgIG9wYWNpdHk6ICgkaXRlbSAvIDEwMCkgIWltcG9ydGFudDtcbiAgICAgICAgfSAgIFxuICAgIH1cbn1cbkBpbmNsdWRlIGdlbmVyYXRlLW9wYWNpdHktY2xhc3NlcygpO1xuXG5cbi8qIEdSQVlTQ0FMRVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiRncmF5c2NhbGUtbGlzdDogMjAgNDAgNjAgODAgMTAwO1xuXG5AbWl4aW4gZ2VuZXJhdGUtZ3JheXNjYWxlLWNsYXNzZXMge1xuICAgIEBlYWNoICRpdGVtIGluICRncmF5c2NhbGUtbGlzdCB7XG4gICAgICAgIC5hX2dyYXlzY2FsZS0jeyRpdGVtfSB7XG4gICAgICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgoMCUgKyAkaXRlbSkpICFpbXBvcnRhbnQ7XG4gICAgICAgIH0gICBcbiAgICB9XG59XG5AaW5jbHVkZSBnZW5lcmF0ZS1ncmF5c2NhbGUtY2xhc3NlcygpO1xuXG5cblxuLyogQkxFTkQgTU9ERVNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4kYmxlbmQtbW9kZXMtbGlzdDogbXVsdGlwbHkgc2NyZWVuIG92ZXJsYXkgZXhjbHVzaW9uIGRpZmZlcmVuY2U7XG5cbkBtaXhpbiBnZW5lcmF0ZS1ibGVuZC1tb2Rlcy1jbGFzc2VzIHtcbiAgICBAZWFjaCAkaXRlbSBpbiAkYmxlbmQtbW9kZXMtbGlzdCB7XG4gICAgICAgIC5hX2JsZW5kLSN7JGl0ZW19IHtcbiAgICAgICAgICAgIG1peC1ibGVuZC1tb2RlOiAkaXRlbSAhaW1wb3J0YW50O1xuICAgICAgICB9ICAgXG4gICAgfVxufVxuQGluY2x1ZGUgZ2VuZXJhdGUtYmxlbmQtbW9kZXMtY2xhc3NlcygpO1xuXG5cbi8qIFNIQURPV1Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmFfY2FzdC1zaGFkb3dfdG9wIHtcbiAgICBib3gtc2hhZG93OiAwcHggLTEwcHggMTBweCByZ2JhKDM0LCAzNCwgMzQsIDAuMSkgIWltcG9ydGFudDtcbn1cblxuXG4vKiBNQVJHSU4gSEVMUEVSU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uYV9uby1tYXJnaW4ge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuLmFfbm8tbWFyZ2luLXRvcCB7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xufVxuLmFfbm8tbWFyZ2luLXJpZ2h0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cbi5hX25vLW1hcmdpbi1ib3R0b20ge1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cbi5hX25vLW1hcmdpbi1sZWZ0IHtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xufVxuXG4kbWFyZ2luLWxpc3Q6IDAgMTAgMjAgNDAgNjAgODAgMTAwO1xuJG1hcmdpbi1zaWRlczogdG9wIGJvdHRvbTsgLy8gdG9wIHJpZ2h0IGJvdHRvbSBsZWZ0O1xuXG5AbWl4aW4gZ2VuZXJhdGUtbWFyZ2luLWNsYXNzZXMge1xuICAgIEBlYWNoICRpdGVtIGluICRtYXJnaW4tbGlzdCB7XG4gICAgICAgIEBlYWNoICRzaWRlIGluICRtYXJnaW4tc2lkZXMge1xuICAgICAgICAgICAgLmFfbWFyZ2luLSN7JHNpZGV9LSN7JGl0ZW19IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tI3skc2lkZX06ICgwcHggKyAoJGl0ZW0vMikpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGVhY2ggJGl0ZW0gaW4gJG1hcmdpbi1saXN0IHtcbiAgICAgICAgQGVhY2ggJHNpZGUgaW4gJG1hcmdpbi1zaWRlcyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgIC5hX21hcmdpbi0jeyRzaWRlfS0jeyRpdGVtfSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi0jeyRzaWRlfTogKDBweCArICRpdGVtKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbkBpbmNsdWRlIGdlbmVyYXRlLW1hcmdpbi1jbGFzc2VzKCk7XG5cblxuLyogUEFERElORyBIRUxQRVJTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmFfbm8tcGFkZGluZyB7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuLmFfbm8tcGFkZGluZy10b3Age1xuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG59XG4uYV9uby1wYWRkaW5nLXJpZ2h0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG4uYV9uby1wYWRkaW5nLWJvdHRvbSB7XG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cbi5hX25vLXBhZGRpbmctbGVmdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG59XG5cbiRwYWRkaW5nLWxpc3Q6IDAgMTAgMjAgNDAgNjAgODAgMTAwIDEyMCAxNDA7XG4kcGFkZGluZy1zaWRlczogdG9wIGJvdHRvbTsgLy8gdG9wIHJpZ2h0IGJvdHRvbSBsZWZ0O1xuXG5AbWl4aW4gZ2VuZXJhdGUtcGFkZGluZy1jbGFzc2VzIHtcbiAgICBAZWFjaCAkaXRlbSBpbiAkcGFkZGluZy1saXN0IHtcbiAgICAgICAgQGVhY2ggJHNpZGUgaW4gJHBhZGRpbmctc2lkZXMge1xuICAgICAgICAgICAgLmFfcGFkZGluZy0jeyRzaWRlfS0jeyRpdGVtfSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy0jeyRzaWRlfTogKDBweCArICgkaXRlbS8yKSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWFjaCAkc2lkZSBpbiAkcGFkZGluZy1zaWRlcyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgIC5hX3BhZGRpbmctI3skc2lkZX0tI3skaXRlbX0ge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLSN7JHNpZGV9OiAoMHB4ICsgJGl0ZW0pICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuQGluY2x1ZGUgZ2VuZXJhdGUtcGFkZGluZy1jbGFzc2VzKCk7IiwiLyogQkFDS0dST1VORCBDT0xPUlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbkBtaXhpbiBnZW5lcmF0ZS1iYWNrZ3JvdW5kLWNvbG9yLWNsYXNzZXMge1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkYnJhbmQtY29sb3ItbGlzdCB7XG4gICAgICAgIC5hX2JnX2JyYW5kXyN7JGtleX0ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkYnJhbmQtY29sb3ItbGlzdCwgJGtleSkgIWltcG9ydGFudDtcbiAgICAgICAgfSAgIFxuICAgIH1cbn1cbkBpbmNsdWRlIGdlbmVyYXRlLWJhY2tncm91bmQtY29sb3ItY2xhc3NlcygpO1xuXG5cbi8vIGRlZmF1bHQgY29sb3JzXG5AbWl4aW4gZ2VuZXJhdGUtZGVmYXVsdC1iZy1jbGFzc2VzIHtcbiAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJGRlZmF1bHQtYmctbGlzdCB7XG4gICAgICAgIC5hX2JnXyN7JGtleX0ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbWFwLWdldCgkZGVmYXVsdC1iZy1saXN0LCAka2V5KSAhaW1wb3J0YW50O1xuICAgICAgICB9ICAgXG4gICAgfVxufVxuQGluY2x1ZGUgZ2VuZXJhdGUtZGVmYXVsdC1iZy1jbGFzc2VzKCk7XG5cblxuLyogQkFDS0dST1VORCBHUkFESUVOVFNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQG1peGluIGdlbmVyYXRlLWJhY2tncm91bmQtZ3JhZGllbnQtY2xhc3NlcyB7XG4gICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRicmFuZC1ncmFkaWVudC1saXN0IHtcbiAgICAgICAgLmFfYmdfZ3JhZGllbnRfYnJhbmRfI3ska2V5fSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRicmFuZC1ncmFkaWVudC1saXN0LCAka2V5KSAhaW1wb3J0YW50O1xuICAgICAgICB9ICAgXG4gICAgfVxufVxuQGluY2x1ZGUgZ2VuZXJhdGUtYmFja2dyb3VuZC1ncmFkaWVudC1jbGFzc2VzKCk7XG5cblxuXG4vKiBGSUxMIENPTE9SXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLy8gYWxsIGJyYW5kIGNvbG9yc1xuQG1peGluIGdlbmVyYXRlLWZpbGwtY2xhc3NlcyB7XG4gICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRicmFuZC1jb2xvci1saXN0IHtcbiAgICAgICAgLmFfZmlsbF9icmFuZF8jeyRrZXl9IHtcbiAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGZpbGw6IG1hcC1nZXQoJGJyYW5kLWNvbG9yLWxpc3QsICRrZXkpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgfVxuICAgICAgICB9ICAgXG4gICAgfVxufVxuQGluY2x1ZGUgZ2VuZXJhdGUtZmlsbC1jbGFzc2VzKCk7XG5cbi8vIGRlZmF1bHQgY29sb3JzXG5AbWl4aW4gZ2VuZXJhdGUtZGVmYXVsdC1maWxsLWNsYXNzZXMge1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkZGVmYXVsdC1maWxsLWNvbG9yLWxpc3Qge1xuICAgICAgICAuYV9maWxsXyN7JGtleX0ge1xuICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgZmlsbDogbWFwLWdldCgkZGVmYXVsdC1maWxsLWNvbG9yLWxpc3QsICRrZXkpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgfVxuICAgICAgICB9ICAgXG4gICAgfVxufVxuQGluY2x1ZGUgZ2VuZXJhdGUtZGVmYXVsdC1maWxsLWNsYXNzZXMoKTtcblxuXG5cbi8qIEJPUkRFUlNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmFfYm9yZGVyLXRvcF9icmFuZF9saWdodC1ncmF5IHtcbiAgICBib3JkZXItdG9wOiBzb2xpZCAxcHggJGJyYW5kLWxpZ2h0LWdyYXkgIWltcG9ydGFudDtcbn1cbi5hX2JvcmRlci1ib3R0b21fYnJhbmRfbGlnaHQtZ3JheSB7XG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICRicmFuZC1saWdodC1ncmF5ICFpbXBvcnRhbnQ7XG59XG5cblxuXG4vKiBURVhUIENPTE9SXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLy8gYWxsIGJyYW5kIGNvbG9yc1xuQG1peGluIGdlbmVyYXRlLXRleHQtY29sb3ItY2xhc3NlcyB7XG4gICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRicmFuZC1jb2xvci1saXN0IHtcbiAgICAgICAgLmFfdGV4dF9icmFuZF8jeyRrZXl9IHtcbiAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkYnJhbmQtY29sb3ItbGlzdCwgJGtleSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICB9XG4gICAgICAgIH0gICBcbiAgICB9XG59XG5AaW5jbHVkZSBnZW5lcmF0ZS10ZXh0LWNvbG9yLWNsYXNzZXMoKTtcblxuLy8gZGVmYXVsdCBjb2xvcnNcbkBtaXhpbiBnZW5lcmF0ZS1kZWZhdWx0LXRleHQtY29sb3ItY2xhc3NlcyB7XG4gICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRkZWZhdWx0LXRleHQtY29sb3ItbGlzdCB7XG4gICAgICAgIC5hX3RleHRfI3ska2V5fSB7XG4gICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJGRlZmF1bHQtdGV4dC1jb2xvci1saXN0LCAka2V5KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgIH1cbiAgICAgICAgfSAgIFxuICAgIH1cbn1cbkBpbmNsdWRlIGdlbmVyYXRlLWRlZmF1bHQtdGV4dC1jb2xvci1jbGFzc2VzKCk7XG4iLCIvKiBGSVhFU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBIRVJPXG5cbiNicmVhZGNydW1icyB7XG4gICAgZGlzcGxheTpub25lO1xufVxuXG5bZGF0YS1zLXR5cGU9XCJoZXJvLWFsdFwiXSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuLTEzNWRlZ1xuLCAkYnJhbmQtc2Vjb25kYXJ5LWRhcmtlciwgJGJyYW5kLXNlY29uZGFyeSkgIWltcG9ydGFudDtcbiAgICBoMSB7XG4gICAgICAgIGNvbG9yOiRicmFuZC1ibGFjayAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb24tbGluZTogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDo0cHg7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogJGJyYW5kLXByaW1hcnk7XG4gICAgfVxufVxuXG5bZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5hY19oZXJvX2NvbnRhaW5lciB7XG4gICAgaGVpZ2h0OjYwdmg7XG4gICAgbWluLWhlaWdodDogMzAycHg7XG59XG5cbi5hX2JnX2JyYW5kX3ByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1wcmltYXJ5O1xufVxuXG5bZGF0YS1zLXR5cGU9XCJoZXJvLWFsdFwiXSAuYWNfaGVyb19hbHRfY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDEwMHB4O1xufVxuXG5bZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5hY19oZXJvX3NsaWRlX2NvbnRlbnRfaW5uZXJ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjQpO1xuICAgIGp1c3RpZnktY29udGVudDogbGVmdDtcbiAgICBwYWRkaW5nOiAyMHB4IDIwcHggMTBweCAyMHB4O1xuICAgIC8vYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIHdpZHRoOiA0NTBweDtcbiAgICBtYXJnaW4tbGVmdDogLTEwMHB4O1xuICAgIG1hcmdpbi10b3A6MzBweDtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgJGJyYW5kLXByaW1hcnk7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRicmFuZC1wcmltYXJ5O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblxuICAgIGgyLCBwIHtcbiAgICAgY29sb3I6JGJyYW5kLWJsYWNrICFpbXBvcnRhbnQ7XG4gICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICAgIC5idXR0b24udl9oYXMtaWNvbi1yaWdodCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRicmFuZC1wcmltYXJ5O1xuICAgIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDAwcHggKXtcbiAgICBbZGF0YS1zLXR5cGU9XCJoZXJvXCJdIC5hY19oZXJvX3NsaWRlX2NvbnRlbnRfaW5uZXJ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbn1cblxuW2RhdGEtcy10eXBlPVwiaGVyb1wiXSAuYWNfaGVyb19zbGlkZV9jb250ZW50X3RleHQge1xuICAgIC13ZWJraXQtZmxleDogMCAxIDEwMCU7IFxuICAgIC1tcy1mbGV4OiAwIDEgMTAwJTtcbiAgICBmbGV4OiAwIDEgMTAwJTsgXG4gICAgbWF4LXdpZHRoOiAxMDAlOyBcbn1cblxuLy9JTUFHRSBHQUxFUllcbi5hY19pbWFnZS1nYWxsZXJ5X2l0ZW1faW1hZ2VfY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDMwMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi8vIFJFRkVSRU5DRVMgXG5bZGF0YS1zLXR5cGU9XCJyZWZlcmVuY2VzXCJdIC5hY19pdGVtX2ltYWdlLWNvbnRhaW5lcjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMywgMzEsIDQ5LCAwKSwgcmdiYSgzLCAzMSwgNDksIDAuOCkpXG59XG5cbltkYXRhLXMtdHlwZT1cInJlZmVyZW5jZXNcIl0gLmFjX2l0ZW1faW1hZ2UtY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtc2Vjb25kYXJ5O1xufVxuXG4vLyBPVkVSQUxMXG4uYWNfY29udGVudF8xLTEge1xuICAgIHBhZGRpbmctbGVmdDoxMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6MTBweDtcbn1cblxuXG4vL1NFUlZJQ0UgXG5bZGF0YS1zLWlkPVwiNDYtMi1zZXJ2aWNlc1wiXSAuYWNfaXRlbV9jb250ZW50X2ljb24sIC5hY19pdGVtX2NvbnRlbnRfY29weS1iZWxvdyB7XG4gICAgZGlzcGxheTpub25lO1xufVxuXG5bZGF0YS1zLXR5cGU9XCJzZXJ2aWNlc1wiXSAuYWNfY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyNjBweDtcbn1cblxuXG5bZGF0YS1zLWlkPVwiaG9tZS1zZXJ2aWNlc1wiXSB7XG4gICAgcGFkZGluZzowcHg7XG4gICAgLmFjX2l0ZW1fY29udGVudF90aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTE1JTtcbiAgICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MDBweCl7XG4gICAgW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl0gLmFjX2l0ZW0ge1xuICAgICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKXtcbiAgICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlc1wiXSAuYWNfaXRlbSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IGluaXRpYWw7XG4gICAgICAgIGZsZXg6IDEgMCA0NSU7XG4gICAgICAgIGhlaWdodDogMTUwcHg7XG5cbiAgICAgICAgLmFjX2l0ZW1faWNvbntcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl0gLmFjX2l0ZW1faWNvbiBzdmcge1xuICAgIGZpbGw6JGJyYW5kLXByaW1hcnk7XG59XG5cbi5zZXJ2aWNlLXRlbXBsYXRlLWRlZmF1bHQge1xuICAgIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdIC5hY19pdGVtX2NvbnRlbnRfaWNvbiBzdmcge1xuICAgICAgICBzdHJva2U6ICRicmFuZC1ibGFjaztcbiAgICB9XG4gICAgW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl0gLmFjX2l0ZW1fY29udGVudF9pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGJyYW5kLWxpZ2h0LWdyYXk7XG4gICAgfVxuXG4gICAgW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl0gLmFjX2l0ZW1fY29udGVudF90aXRsZSB7XG4gICAgICAgIGNvbG9yOiRicmFuZC1ibGFjaztcbiAgICB9XG4gICAgW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl0gYS5hY19pdGVtOmhvdmVyIC5hY19pdGVtX2NvbnRlbnRfdGl0bGUge1xuICAgICAgICBjb2xvcjokYnJhbmQtdGVydGlhcnk7XG4gICAgfVxuIFxuICAgIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdIGEuYWNfaXRlbTpob3ZlciAuYWNfaXRlbV9pY29uIHN2ZyB7XG4gICAgICAgICAgICBmaWxsOiAkYnJhbmQtcHJpbWFyeS1kYXJrZXIgIWltcG9ydGFudDtcbiAgICAgfVxuXG4gICAgW2RhdGEtcy10eXBlPVwic2VydmljZXNcIl0gYS5hY19pdGVtOmhvdmVyIC5hY19pdGVtX2NvbnRlbnRfaWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRicmFuZC1wcmltYXJ5O1xuICAgIH1cblxuICAgIFtkYXRhLXMtdHlwZT1cInNlcnZpY2VzXCJdIC5hY19pdGVtX2NvbnRlbnRfdGl0bGUge1xuICAgICAgICBjb2xvcjokYnJhbmQtYmxhY2sgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlc1wiXSAuYWNfaXRlbSB7XG4gICAgICAgIGhlaWdodDoxNTBweDtcbiAgICB9XG5cbiAgICBbZGF0YS1zLXR5cGU9XCJzZXJ2aWNlc1wiXSAuYWNfaXRlbV9jb250ZW50X3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxMTUlO1xuICAgIH1cbiAgICBcbn1cblxuLy8gVE9QVEFTS1Ncbi5hY190b3B0YXNrc19jb250YWluZXJfaW5uZXIge1xuICAgIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJGJyYW5kLXByaW1hcnktZGFya2VyO1xuICAgIH1cbn1cbi5hY190b3B0YXNrc19pdGVtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zaXRpb246IHRvcCBlYXNlIDAuNXM7XG59XG5cbi5hY190b3B0YXNrc19pdGVtOmhvdmVyIC5hY190b3B0YXNrc19pdGVtX2NvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZDogJGJyYW5kLWxpZ2h0ZXN0LWdyYXk7XG4gICAgLmFjX3RvcHRhc2tzX2l0ZW1faWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgICB9XG4gICAgLmFjX3RvcHRhc2tzX2l0ZW1fY29udGVudF90aXRsZSB7XG4gICAgICAgIGNvbG9yOiAkYnJhbmQtYmxhY2s7XG4gICAgfVxuICAgIHRvcDogLTVweDtcbn1cblxuLmFjX3RvcHRhc2tzX2l0ZW1faW1hZ2UtY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtcHJpbWFyeTtcbn1cblxuLmFjX3RvcHRhc2tzX2l0ZW1faWNvbiBzdmcge1xuICAgIHN0cm9rZTogJGJyYW5kLXNlY29uZGFyeS1kYXJrZXI7XG59XG5cbi8vIE1FTlVcbltkYXRhLW0tdHlwZT1cIm1lbnUtMlwiXSB1bC5tZW51LmRyb3Bkb3duIGE6bGFzdC1vZi10eXBlIHtcbiAgICBmb250LXNpemU6IDEwcHQgIWltcG9ydGFudDtcbn1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBib3JkZXItY29sb3I6ICRicmFuZC1wcmltYXJ5IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xufVxuXG5bZGF0YS1tLXR5cGU9XCJtZW51LTJcIl0gdWwuaXMtZHJvcGRvd24tc3VibWVudSBhIHtcbiAgICBjb2xvcjogJGJyYW5kLWJsYWNrO1xufVxuXG4uYWNfbWVudS0yX2Jhcl9ib3R0b20ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC10ZXJ0aWFyeTtcbiAgICB6LWluZGV4OiBhdXRvO1xuICAgIC8vYm9yZGVyLWJvdHRvbToycHggc29saWQgJGJyYW5kLXByaW1hcnk7XG4gICAgYSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiRicmFuZC13aGl0ZTtcbiAgICB9XG5cbn1cbi5hY19tZW51LTJfYmFyX2JvdHRvbV9jb250YWluZXIge1xuICAgLy8gbWFyZ2luLXJpZ2h0OjBweDtcbiAgIGRpc3BsYXk6IGZsZXg7XG4gICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG59XG5cbi5hY19tZW51LTJfYmFyX3RvcCB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgLy9ib3JkZXItYm90dG9tOjFweCBkYXNoZWQgJGJyYW5kLWxpZ2h0LWdyYXk7XG59XG5cbi5hY19tZW51LTJfYmFyX3RvcF9jb250YWluZXJ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxufVxuXG4uYWNfbWVudS0yX21haW5fY29udGVudCB7XG4gICAgLmJ1dHRvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ5LjkzNzVlbSl7XG4gICAgLmFjX21lbnUtMl9zdGlja3l7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIFxuXG4gICAgI21lbnUtbW9iaWxle1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgbGl7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgNXB4IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAgNXB4IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLDAsMCwuMSk7XG4gICAgXG4gICAgICAgICAgICBhe1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGV7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zdWItbWVudXtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsLjEpO1xuICAgICAgICAgICAgcGFkZGluZzogMTBweCAwO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgICAgbGl7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmJ1dHRvbi52X2hhcy1pY29uLWxlZnQgLnN2Zy1jb250YWluZXIge1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xufVxuXG5bZGF0YS1tLXR5cGU9XCJtZW51LTJcIl0gdWwjbWVudS10b3AgYXtcbiAgICBjb2xvcjogJGJyYW5kLXNlY29uZGFyeS1kYXJrZXI7XG59XG5cbltkYXRhLW0tdHlwZT1cIm1lbnUtMlwiXSB1bC5tZW51LmRyb3Bkb3duIGE6bGFzdC1vZi10eXBle1xuICAgIG1hcmdpbi1yaWdodDogMC44NGVtO1xufVxuXG4vLyBMT0dPIFxuLmFjX21lbnUtMl9sb2dvX2ltZyB7XG4gICAgd2lkdGg6IDE1MHB4O1xuICAgIHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZTtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4uYWNfbWVudS0yX2xvZ29fY29udGFpbmVye1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLmFjX21lbnUtMl9sb2dvX2xpbmsge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDAsMCwwLC4zKTtcbiAgICBwYWRkaW5nOiAyNXB4IDEwcHggMTBweCAxMHB4O1xuICAgIHRvcDogLTIwcHg7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKCBtYXgtd2lkdGg6IDEwMDBweCApe1xuICAgIC5hY19tZW51LTJfbG9nb19jb250YWluZXIgLmFjX21lbnUtMl9sb2dvX2xpbmsge1xuICAgICAgICBpbWd7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDE1MHB4O1xuICAgICAgICBoZWlnaHQ6IDgwcHg7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2xvZ28vbG9nb19zbWFsbC5wbmcnKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxNTBweCBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIH1cbn1cblxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kICggbWF4LXdpZHRoOiA3OTBweCApe1xuICAgIC5hY19tZW51LTJfbG9nb19jb250YWluZXIgLmFjX21lbnUtMl9sb2dvX2xpbmsge1xuICAgICAgICB0b3A6IDVweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDU1cHggIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBhdXRvIDEwMCUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5hY19tZW51LTJfc3RpY2t5LmlzLXN0dWNrIC5hY19tZW51LTJfbG9nb19pbWcge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxNTBweCAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogbm9uZTtcblxufVxuXG4vL1RPUCBCQVI6IFxuLmFjX21lbnUtMl9tYWluX2NvbnRhaW5lcntcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgYXtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmFjX21lbnUtMl9tZW51e1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmJ1dHRvbntcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDAsMCwwLC4zKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIH1cbn1cblxuLmFjX21lbnUtMl9zdGlja3kuaXMtc3R1Y2sgLmFjX21lbnUtMl9tYWluX2NvbnRhaW5lciAuYnV0dG9ue1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEpO1xufVxuXG4vLyBQQVJUTkVSUyBcbltkYXRhLXMtaWQ9XCJob21lLXBhcnRuZXJzXCJdIHtcbiAgICBoMiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbi1saW5lOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OjRweDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiAkYnJhbmQtcHJpbWFyeTtcbiAgICB9XG59XG5cbmgyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDs7XG59XG5cbmgyLnNlY3Rpb24tdGl0bGUge1xuICAgIHRleHQtZGVjb3JhdGlvbi1saW5lOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6NHB4O1xuICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogJGJyYW5kLXByaW1hcnk7XG59XG5cbi5hY19oZWFkaW5nX3RpdGxlID4gaDEge1xuICAgIHRleHQtZGVjb3JhdGlvbi1saW5lOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6NHB4O1xuICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogJGJyYW5kLXByaW1hcnk7XG59XG5cbi5hY19jb250ZW50X2ZsZXggPiBkaXZ7XG4gICAgZmxleDogMTtcbn1cblxuLy8gRk9PVEVSXG5bZGF0YS1mLXR5cGU9XCJmb290ZXItMVwiXSAuYWNfZm9vdGVyX3ByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICRicmFuZC10ZXJ0aWFyeTtcbiAgICBib3JkZXItdG9wOjJweCBzb2xpZCAkYnJhbmQtbGlnaHQtZ3JheTtcblxuICAgIGgyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IHVuZGVybGluZSAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6NHB4O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6ICRicmFuZC1wcmltYXJ5O1xuICAgIH1cblxuICAgIC5hY19mb290ZXJfcHJpbWFyeV9jb2x1bW57XG4gICAgICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAgICAgbWF4LXdpZHRoOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmFsaWdubm9uZXtcbiAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW46IC0xMDBweCAwIDAgMDtcbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ5LjkzNzVlbSl7XG4gICAgW2RhdGEtZi10eXBlPVwiZm9vdGVyLTFcIl0gLmFjX2Zvb3Rlcl9wcmltYXJ5X2NvbHVtbjpudGgtY2hpbGQoNCl7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBbZGF0YS1mLXR5cGU9XCJmb290ZXItMVwiXSAuYWNfZm9vdGVyX3ByaW1hcnlfY29sdW1uOm50aC1jaGlsZCgzKXtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG59XG5cblxuXG4vLyBMSU5LU1xuLm1haW4tY29udGFpbmVyIFtkYXRhLXMtdHlwZT1cInNlY3Rpb24tY29udGVudFwiXSBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBjb2xvcjogJGJyYW5kLXByaW1hcnk7XG59XG5cblxuLy8gTkVXUyBcbltkYXRhLXMtdHlwZT1cIm5ld3NcIl0gYS5hY19pdGVtOmhvdmVyIHtcbiAgICAuYWNfaXRlbV9jb250ZW50X2NvcHktYWJvdmUge1xuICAgICAgY29sb3I6JGJyYW5kLWdyYXk7XG4gICAgfVxuICAgIC5hY19pdGVtX2NvbnRlbnRfdGl0bGUge1xuICAgICAgICBjb2xvcjokYnJhbmQtZ3JheTtcbiAgICB9XG59XG5cbltkYXRhLXMtdHlwZT1cIm5ld3NcIl1bZGF0YS1zLWFtb3VudD1cIjNcIl0gLmFjX2l0ZW17XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMDBweCl7XG4gICAgW2RhdGEtcy1pZD1cImFjdHVlZWwtbmV3c1wiXVtkYXRhLXMtYW1vdW50PVwiM1wiXSAuYWNfaXRlbTpudGgtY2hpbGQoMSkge1xuICAgICAgICB3aWR0aDogMzAlOyBcbiAgICAgICAgbWF4LXdpZHRoOiAzMCU7IFxuICAgIH1cbn1cblxuLy8gRk9STVNcbmlucHV0W3R5cGU9XCJyYWRpb1wiIGldIHtcbiAgICBwYWRkaW5nOjAgIWltcG9ydGFudDtcbiAgICBtYXJnaW46MCAhaW1wb3J0YW50O1xufVxuXG4uZ2Zvcm1fd3JhcHBlciB1bC5nZmllbGRfY2hlY2tib3ggbGksIC5nZm9ybV93cmFwcGVyIHVsLmdmaWVsZF9yYWRpbyBsaSB7XG4gICAgcGFkZGluZzowICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOjAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6MTBweCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6aW5saW5lO1xufVxuXG4uZ2Zvcm1fd3JhcHBlciB1bC5nZmllbGRfY2hlY2tib3gsIC5nZm9ybV93cmFwcGVyIHVsLmdmaWVsZF9yYWRpbyB7XG4gICAgbWFyZ2luLXRvcDotMjZweCAhaW1wb3J0YW50O1xufSJdfQ== */
