@charset "UTF-8";
/*!
Theme Name: Irving
Author: Anonymous
Author URI:
Version: 1
Description: Irving theme for Wordpress
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: irving
Tags: one-column, two-columns
Theme URI:
*/
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}

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

/**
   * Render the `main` element consistently in IE.
   */
main {
  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
     ========================================================================== */
/**
   * 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 */
}

/**
   * 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 */
}

/* Text-level semantics
     ========================================================================== */
/**
   * Remove the gray background on active links in IE 10.
   */
a {
  background-color: transparent;
}

/**
   * 1. Remove the bottom border in Chrome 57-
   * 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 */
}

/**
   * 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 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
     ========================================================================== */
/**
   * Remove the border on images inside links in IE 10.
   */
img {
  border-style: none;
}

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

/**
   * Show the overflow in IE.
   * 1. Show the overflow in Edge.
   */
button,
input {
  /* 1 */
  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;
}

/**
   * Correct the inability to style clickable types in iOS and Safari.
   */
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

/**
   * Remove the inner border and padding in Firefox.
   */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
   * Restore the focus styles unset by the previous rule.
   */
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
   * Correct the padding in Firefox.
   */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
   * 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 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */
}

/**
   * Add the correct vertical alignment in Chrome, Firefox, and Opera.
   */
progress {
  vertical-align: baseline;
}

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

/**
   * 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 in Chrome and Safari on macOS.
   */
[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 */
}

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

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

/* Misc
     ========================================================================== */
/**
   * Add the correct display in IE 10+.
   */
template {
  display: none;
}

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

html {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
}

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

* {
  max-height: 1000000px;
}

main,
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

ul,
ol,
dl,
p,
h1,
h2,
h3,
h4,
h5,
h6,
address,
form,
table,
blockquote,
applet,
embed,
object,
iframe,
frameset {
  margin: 0 0 20px;
}

blockquote {
  border-left: 4px solid #ddd;
  padding-left: 10px;
  margin-left: 0;
}

table {
  border-collapse: collapse;
}

th,
td {
  border: 1px solid #ddd;
  padding: 3px;
  text-align: left;
  vertical-align: top;
}

th {
  text-align: center;
  vertical-align: middle;
}

ul,
ol {
  padding-left: 20px;
}

ul ul,
ul ol,
ol ul,
ol ol {
  padding-left: 20px;
  margin: 0;
}

ul {
  list-style-type: disc;
}

dl dt {
  float: left;
  clear: left;
  padding-right: 0.3em;
  font-weight: bold;
}
dl dd {
  overflow: hidden;
}

pre {
  max-width: 100%;
  overflow: auto;
}

body {
  color: #050708;
  background: #fff;
  font: 16px/1.2 "Montserrat", "Arial", "Helvetica Neue", "Helvetica", sans-serif;
  min-width: 320px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  margin: 0;
}
@media (min-width: 1024px) {
  body {
    font-size: 24px;
    line-height: 1.4166666667;
  }
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: top;
  display: inline-block;
}

.gm-style img {
  max-width: none;
}

iframe {
  max-width: 100%;
}

.resize-active * {
  transition: none !important;
}

.section-portfolio .images-list, .section-portfolio .residential-list, .section-three-images .images-list, .section-benefits .benefits-list ul, .section-benefits .benefits-list, .section-stages .stages-list, .section-process .process-list, .section-running-line .line-list, .social-networks, [id=footer] .info-list, [id=nav] ul,
[id=footer-nav] ul, .tagcloud {
  margin: 0;
  padding: 0;
  list-style: none;
}

.search-form p:after,
.post-password-form p:after, .search-form:after,
.post-password-form:after, .widget:after, .clearfix:after, dl:after {
  content: "";
  display: block;
  clear: both;
}

.ellipsis {
  white-space: nowrap;
  /* 1 */
  text-overflow: ellipsis;
  /* 2 */
  overflow: hidden;
}

.df-row {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -15px;
}
@media (min-width: 576px) {
  .df-row.df-rr-ph {
    flex-direction: row-reverse;
  }
}
@media (min-width: 576px) {
  .df-row.df-aic-ph {
    align-items: center;
  }
}
@media (min-width: 768px) {
  .df-row.df-rr-sm {
    flex-direction: row-reverse;
  }
}
@media (min-width: 768px) {
  .df-row.df-aic-sm {
    align-items: center;
  }
}
@media (min-width: 1024px) {
  .df-row.df-rr-md {
    flex-direction: row-reverse;
  }
}
@media (min-width: 1024px) {
  .df-row.df-aic-md {
    align-items: center;
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-1 {
    flex: 1 0 calc(8.3333333333% * 1);
    max-width: calc(8.3333333333% * 1);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-2 {
    flex: 1 0 calc(8.3333333333% * 2);
    max-width: calc(8.3333333333% * 2);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-3 {
    flex: 1 0 calc(8.3333333333% * 3);
    max-width: calc(8.3333333333% * 3);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-4 {
    flex: 1 0 calc(8.3333333333% * 4);
    max-width: calc(8.3333333333% * 4);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-5 {
    flex: 1 0 calc(8.3333333333% * 5);
    max-width: calc(8.3333333333% * 5);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-6 {
    flex: 1 0 calc(8.3333333333% * 6);
    max-width: calc(8.3333333333% * 6);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-7 {
    flex: 1 0 calc(8.3333333333% * 7);
    max-width: calc(8.3333333333% * 7);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-8 {
    flex: 1 0 calc(8.3333333333% * 8);
    max-width: calc(8.3333333333% * 8);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-9 {
    flex: 1 0 calc(8.3333333333% * 9);
    max-width: calc(8.3333333333% * 9);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-10 {
    flex: 1 0 calc(8.3333333333% * 10);
    max-width: calc(8.3333333333% * 10);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-11 {
    flex: 1 0 calc(8.3333333333% * 11);
    max-width: calc(8.3333333333% * 11);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-12 {
    flex: 1 0 calc(8.3333333333% * 12);
    max-width: calc(8.3333333333% * 12);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-0 {
    margin-left: calc(8.3333333333% * 0);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-1 {
    margin-left: calc(8.3333333333% * 1);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-2 {
    margin-left: calc(8.3333333333% * 2);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-3 {
    margin-left: calc(8.3333333333% * 3);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-4 {
    margin-left: calc(8.3333333333% * 4);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-5 {
    margin-left: calc(8.3333333333% * 5);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-6 {
    margin-left: calc(8.3333333333% * 6);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-7 {
    margin-left: calc(8.3333333333% * 7);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-8 {
    margin-left: calc(8.3333333333% * 8);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-9 {
    margin-left: calc(8.3333333333% * 9);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-10 {
    margin-left: calc(8.3333333333% * 10);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-11 {
    margin-left: calc(8.3333333333% * 11);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-1 {
    flex: 1 0 calc(8.3333333333% * 1);
    max-width: calc(8.3333333333% * 1);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-2 {
    flex: 1 0 calc(8.3333333333% * 2);
    max-width: calc(8.3333333333% * 2);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-3 {
    flex: 1 0 calc(8.3333333333% * 3);
    max-width: calc(8.3333333333% * 3);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-4 {
    flex: 1 0 calc(8.3333333333% * 4);
    max-width: calc(8.3333333333% * 4);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-5 {
    flex: 1 0 calc(8.3333333333% * 5);
    max-width: calc(8.3333333333% * 5);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-6 {
    flex: 1 0 calc(8.3333333333% * 6);
    max-width: calc(8.3333333333% * 6);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-7 {
    flex: 1 0 calc(8.3333333333% * 7);
    max-width: calc(8.3333333333% * 7);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-8 {
    flex: 1 0 calc(8.3333333333% * 8);
    max-width: calc(8.3333333333% * 8);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-9 {
    flex: 1 0 calc(8.3333333333% * 9);
    max-width: calc(8.3333333333% * 9);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-10 {
    flex: 1 0 calc(8.3333333333% * 10);
    max-width: calc(8.3333333333% * 10);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-11 {
    flex: 1 0 calc(8.3333333333% * 11);
    max-width: calc(8.3333333333% * 11);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-12 {
    flex: 1 0 calc(8.3333333333% * 12);
    max-width: calc(8.3333333333% * 12);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-0 {
    margin-left: calc(8.3333333333% * 0);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-1 {
    margin-left: calc(8.3333333333% * 1);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-2 {
    margin-left: calc(8.3333333333% * 2);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-3 {
    margin-left: calc(8.3333333333% * 3);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-4 {
    margin-left: calc(8.3333333333% * 4);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-5 {
    margin-left: calc(8.3333333333% * 5);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-6 {
    margin-left: calc(8.3333333333% * 6);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-7 {
    margin-left: calc(8.3333333333% * 7);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-8 {
    margin-left: calc(8.3333333333% * 8);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-9 {
    margin-left: calc(8.3333333333% * 9);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-10 {
    margin-left: calc(8.3333333333% * 10);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-11 {
    margin-left: calc(8.3333333333% * 11);
  }
}
@media (min-width: 1024px) {
  .df-row .col-md-1 {
    flex: 1 0 calc(8.3333333333% * 1);
    max-width: calc(8.3333333333% * 1);
  }
}
@media (min-width: 1024px) {
  .df-row .col-md-2 {
    flex: 1 0 calc(8.3333333333% * 2);
    max-width: calc(8.3333333333% * 2);
  }
}
@media (min-width: 1024px) {
  .df-row .col-md-3 {
    flex: 1 0 calc(8.3333333333% * 3);
    max-width: calc(8.3333333333% * 3);
  }
}
@media (min-width: 1024px) {
  .df-row .col-md-4 {
    flex: 1 0 calc(8.3333333333% * 4);
    max-width: calc(8.3333333333% * 4);
  }
}
@media (min-width: 1024px) {
  .df-row .col-md-5 {
    flex: 1 0 calc(8.3333333333% * 5);
    max-width: calc(8.3333333333% * 5);
  }
}
@media (min-width: 1024px) {
  .df-row .col-md-6 {
    flex: 1 0 calc(8.3333333333% * 6);
    max-width: calc(8.3333333333% * 6);
  }
}
@media (min-width: 1024px) {
  .df-row .col-md-7 {
    flex: 1 0 calc(8.3333333333% * 7);
    max-width: calc(8.3333333333% * 7);
  }
}
@media (min-width: 1024px) {
  .df-row .col-md-8 {
    flex: 1 0 calc(8.3333333333% * 8);
    max-width: calc(8.3333333333% * 8);
  }
}
@media (min-width: 1024px) {
  .df-row .col-md-9 {
    flex: 1 0 calc(8.3333333333% * 9);
    max-width: calc(8.3333333333% * 9);
  }
}
@media (min-width: 1024px) {
  .df-row .col-md-10 {
    flex: 1 0 calc(8.3333333333% * 10);
    max-width: calc(8.3333333333% * 10);
  }
}
@media (min-width: 1024px) {
  .df-row .col-md-11 {
    flex: 1 0 calc(8.3333333333% * 11);
    max-width: calc(8.3333333333% * 11);
  }
}
@media (min-width: 1024px) {
  .df-row .col-md-12 {
    flex: 1 0 calc(8.3333333333% * 12);
    max-width: calc(8.3333333333% * 12);
  }
}
@media (min-width: 1024px) {
  .df-row .col-offset-md-0 {
    margin-left: calc(8.3333333333% * 0);
  }
}
@media (min-width: 1024px) {
  .df-row .col-offset-md-1 {
    margin-left: calc(8.3333333333% * 1);
  }
}
@media (min-width: 1024px) {
  .df-row .col-offset-md-2 {
    margin-left: calc(8.3333333333% * 2);
  }
}
@media (min-width: 1024px) {
  .df-row .col-offset-md-3 {
    margin-left: calc(8.3333333333% * 3);
  }
}
@media (min-width: 1024px) {
  .df-row .col-offset-md-4 {
    margin-left: calc(8.3333333333% * 4);
  }
}
@media (min-width: 1024px) {
  .df-row .col-offset-md-5 {
    margin-left: calc(8.3333333333% * 5);
  }
}
@media (min-width: 1024px) {
  .df-row .col-offset-md-6 {
    margin-left: calc(8.3333333333% * 6);
  }
}
@media (min-width: 1024px) {
  .df-row .col-offset-md-7 {
    margin-left: calc(8.3333333333% * 7);
  }
}
@media (min-width: 1024px) {
  .df-row .col-offset-md-8 {
    margin-left: calc(8.3333333333% * 8);
  }
}
@media (min-width: 1024px) {
  .df-row .col-offset-md-9 {
    margin-left: calc(8.3333333333% * 9);
  }
}
@media (min-width: 1024px) {
  .df-row .col-offset-md-10 {
    margin-left: calc(8.3333333333% * 10);
  }
}
@media (min-width: 1024px) {
  .df-row .col-offset-md-11 {
    margin-left: calc(8.3333333333% * 11);
  }
}
.df-row [class*=col-] {
  padding: 0 15px;
}

.hidden {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

h1,
.h1 {
  font-size: 40px;
}

h2,
.h2 {
  font-size: 34px;
}

h3,
.h3 {
  font-size: 28px;
}

h4,
.h4 {
  font-size: 24px;
}

h5,
.h5 {
  font-size: 18px;
}

h6,
.h6 {
  font-size: 14px;
}

@media (min-width: 768px) {
  h1,
  .h1 {
    font-size: 50px;
  }
  h2,
  .h2 {
    font-size: 36px;
  }
  h3,
  .h3 {
    font-size: 32px;
  }
  h4,
  .h4 {
    font-size: 24px;
  }
  h5,
  .h5 {
    font-size: 22px;
  }
  h6,
  .h6 {
    font-size: 16px;
  }
}
@media (min-width: 1024px) {
  h1,
  .h1 {
    font-size: 60px;
  }
  h2,
  .h2 {
    font-size: 44px;
  }
  h3,
  .h3 {
    font-size: 40px;
  }
  h4,
  .h4 {
    font-size: 30px;
  }
  h5,
  .h5 {
    font-size: 26px;
  }
  h6,
  .h6 {
    font-size: 16px;
  }
}
@media (min-width: 1200px) {
  h1,
  .h1 {
    font-size: 98px;
  }
  h2,
  .h2 {
    font-size: 63px;
  }
  h3,
  .h3 {
    font-size: 50px;
  }
  h4,
  .h4 {
    font-size: 40px;
  }
  h5,
  .h5 {
    font-size: 30px;
  }
  h6,
  .h6 {
    font-size: 16px;
  }
}
h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6,
.h {
  font-family: "Montserrat", "Arial", "Helvetica Neue", "Helvetica", sans-serif;
  color: inherit;
  font-weight: 900;
  margin: 0 0 10px;
  line-height: 1.225;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  h1,
  .h1,
  h2,
  .h2,
  h3,
  .h3,
  h4,
  .h4,
  h5,
  .h5,
  h6,
  .h6,
  .h {
    margin-bottom: 20px;
  }
}

p {
  margin: 0 0 20px;
}

a {
  transition: color 0.3s ease-in-out, background 0.3s ease-in-out;
  color: #004e6c;
  text-decoration: none;
}
a:hover, a:focus {
  color: #000;
  text-decoration: none;
}

a[href*="mailto:"] {
  word-wrap: break-word;
}

mark {
  color: #f7b019;
  background: none;
}

form,
fieldset {
  margin: 0;
  padding: 0;
  border-style: none;
}

.gform-theme--foundation input[type=text],
.gform-theme--foundation input[type=tel],
.gform-theme--foundation input[type=email],
.gform-theme--foundation input[type=search],
.gform-theme--foundation input[type=password],
.gform-theme--foundation input[type=url],
.gform-theme--foundation textarea {
  -webkit-appearance: none;
  -webkit-border-radius: 0;
  padding: 10px 20px !important;
  font-size: 16px !important;
  line-height: 18px;
  font-family: "Montserrat", "Arial", "Helvetica Neue", "Helvetica", sans-serif;
  box-sizing: border-box;
  border: 1px solid transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
@media (min-width: 1024px) {
  .gform-theme--foundation input[type=text],
  .gform-theme--foundation input[type=tel],
  .gform-theme--foundation input[type=email],
  .gform-theme--foundation input[type=search],
  .gform-theme--foundation input[type=password],
  .gform-theme--foundation input[type=url],
  .gform-theme--foundation textarea {
    font-size: 18px !important;
  }
}
@media (min-width: 1200px) {
  .gform-theme--foundation input[type=text],
  .gform-theme--foundation input[type=tel],
  .gform-theme--foundation input[type=email],
  .gform-theme--foundation input[type=search],
  .gform-theme--foundation input[type=password],
  .gform-theme--foundation input[type=url],
  .gform-theme--foundation textarea {
    font-size: 24px !important;
    padding: 15px 28px !important;
  }
}
.gform-theme--foundation input[type=text]:not(textarea),
.gform-theme--foundation input[type=tel]:not(textarea),
.gform-theme--foundation input[type=email]:not(textarea),
.gform-theme--foundation input[type=search]:not(textarea),
.gform-theme--foundation input[type=password]:not(textarea),
.gform-theme--foundation input[type=url]:not(textarea),
.gform-theme--foundation textarea:not(textarea) {
  height: 60px !important;
}
@media (min-width: 1200px) {
  .gform-theme--foundation input[type=text]:not(textarea),
  .gform-theme--foundation input[type=tel]:not(textarea),
  .gform-theme--foundation input[type=email]:not(textarea),
  .gform-theme--foundation input[type=search]:not(textarea),
  .gform-theme--foundation input[type=password]:not(textarea),
  .gform-theme--foundation input[type=url]:not(textarea),
  .gform-theme--foundation textarea:not(textarea) {
    height: 73px !important;
  }
}
.gform-theme--foundation input[type=text]:focus,
.gform-theme--foundation input[type=tel]:focus,
.gform-theme--foundation input[type=email]:focus,
.gform-theme--foundation input[type=search]:focus,
.gform-theme--foundation input[type=password]:focus,
.gform-theme--foundation input[type=url]:focus,
.gform-theme--foundation textarea:focus {
  outline: none;
  border-color: #004e6c !important;
}
.gform-theme--foundation input[type=text]::-webkit-input-placeholder,
.gform-theme--foundation input[type=tel]::-webkit-input-placeholder,
.gform-theme--foundation input[type=email]::-webkit-input-placeholder,
.gform-theme--foundation input[type=search]::-webkit-input-placeholder,
.gform-theme--foundation input[type=password]::-webkit-input-placeholder,
.gform-theme--foundation input[type=url]::-webkit-input-placeholder,
.gform-theme--foundation textarea::-webkit-input-placeholder {
  color: #050708 !important;
}
.gform-theme--foundation input[type=text]::-moz-placeholder,
.gform-theme--foundation input[type=tel]::-moz-placeholder,
.gform-theme--foundation input[type=email]::-moz-placeholder,
.gform-theme--foundation input[type=search]::-moz-placeholder,
.gform-theme--foundation input[type=password]::-moz-placeholder,
.gform-theme--foundation input[type=url]::-moz-placeholder,
.gform-theme--foundation textarea::-moz-placeholder {
  opacity: 1;
  color: #050708 !important;
}
.gform-theme--foundation input[type=text]:-moz-placeholder,
.gform-theme--foundation input[type=tel]:-moz-placeholder,
.gform-theme--foundation input[type=email]:-moz-placeholder,
.gform-theme--foundation input[type=search]:-moz-placeholder,
.gform-theme--foundation input[type=password]:-moz-placeholder,
.gform-theme--foundation input[type=url]:-moz-placeholder,
.gform-theme--foundation textarea:-moz-placeholder {
  color: #050708 !important;
}
.gform-theme--foundation input[type=text]:-ms-input-placeholder,
.gform-theme--foundation input[type=tel]:-ms-input-placeholder,
.gform-theme--foundation input[type=email]:-ms-input-placeholder,
.gform-theme--foundation input[type=search]:-ms-input-placeholder,
.gform-theme--foundation input[type=password]:-ms-input-placeholder,
.gform-theme--foundation input[type=url]:-ms-input-placeholder,
.gform-theme--foundation textarea:-ms-input-placeholder {
  color: #050708 !important;
}
.gform-theme--foundation input[type=text].placeholder,
.gform-theme--foundation input[type=tel].placeholder,
.gform-theme--foundation input[type=email].placeholder,
.gform-theme--foundation input[type=search].placeholder,
.gform-theme--foundation input[type=password].placeholder,
.gform-theme--foundation input[type=url].placeholder,
.gform-theme--foundation textarea.placeholder {
  color: #050708 !important;
}
.gform-theme--foundation input[type=submit] {
  min-width: 160px !important;
}
@media (min-width: 1200px) {
  .gform-theme--foundation input[type=submit] {
    height: 73px !important;
    min-width: 232px !important;
  }
}
.gform-theme--foundation button,
.gform-theme--foundation input[type=button],
.gform-theme--foundation input[type=reset],
.gform-theme--foundation input[type=file],
.gform-theme--foundation input[type=submit] {
  -webkit-appearance: none;
  -webkit-border-radius: 0;
  height: 60px !important;
  padding: 20px 20px;
  font-size: 16px !important;
  line-height: 18px;
  color: #050708 !important;
  background: #f7b019 !important;
  transition: 0.3s background ease-in-out, 0.3s color ease-in-out !important;
  font-weight: 500 !important;
  border-width: 1px;
  border-style: solid;
  border-color: #f7b019;
  border-radius: 0 !important;
  cursor: pointer;
  transition: all 0.3s;
}
.gform-theme--foundation button:hover,
.gform-theme--foundation input[type=button]:hover,
.gform-theme--foundation input[type=reset]:hover,
.gform-theme--foundation input[type=file]:hover,
.gform-theme--foundation input[type=submit]:hover {
  background: #004e6c !important;
  color: #f7b019 !important;
}

input[type=search]::-webkit-search-cancel-button {
  -webkit-appearance: none;
}

textarea {
  resize: vertical;
  vertical-align: top;
  overflow: auto;
}

@media (min-width: 1024px) {
  .validation_message {
    font-size: 18px !important;
  }
}

.gform-theme--foundation .gform_fields {
  row-gap: 20px !important;
  column-gap: 20px !important;
}
@media (min-width: 1200px) {
  .gform-theme--foundation .gform_fields {
    column-gap: 77px !important;
    row-gap: 40px !important;
  }
}

.gform-theme--foundation .gfield textarea.large {
  min-block-size: 16rem !important;
}

@media (min-width: 1200px) {
  .gform_footer {
    margin: 48px 0 0 !important;
  }
}

noscript {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  margin: 0;
  font-size: 14px;
  color: #f8f9fa;
  background: #f7b019;
  display: block;
  padding: 5px 0;
  text-align: center;
  z-index: 99999;
}

.accessibility {
  position: absolute;
  left: -200vw;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.accessibility:focus {
  position: static;
  width: auto;
  height: auto;
}

.visually-hidden {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

ul,
ol,
dl,
p,
h1,
h2,
h3,
h4,
h5,
h6,
address,
form,
table,
blockquote,
applet,
embed,
object,
iframe,
frameset {
  margin: 0 0 20px;
}

blockquote {
  border-left: 4px solid #ddd;
  padding-left: 10px;
  margin-left: 0;
}

table {
  border-collapse: collapse;
}

th,
td {
  border: 1px solid #ddd;
  padding: 3px;
  text-align: left;
  vertical-align: top;
}

th {
  text-align: center;
  vertical-align: middle;
}

ul,
ol {
  padding-left: 20px;
}

ul ul,
ul ol,
ol ul,
ol ol {
  padding-left: 20px;
  margin: 0;
}

ul {
  list-style-type: disc;
}

dl dt {
  float: left;
  clear: left;
  padding-right: 0.3em;
  font-weight: bold;
}
dl dd {
  overflow: hidden;
}

pre {
  max-width: 100%;
  overflow: auto;
}

.iblock {
    display: inline-block;
}

.navigation-single, .nav-links,
.navigation,
.navigation-comments {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 20px;
}

.navigation-single .next a,
.navigation-single .prev a, .nav-links .next,
.nav-links .prev,
.navigation .next,
.navigation .prev,
.navigation-comments .next,
.navigation-comments .prev {
  display: inline-block;
  padding: 20px 20px;
  font-size: 16px;
  text-align: center;
  line-height: 18px;
  vertical-align: top;
  transition: all 0.3s;
  border-style: solid;
  border-color: transparent;
  border-width: 1px;
  border-radius: 0;
  color: #050708;
  background: #f7b019;
  border-color: #f7b019;
}
.navigation-single .next a:hover,
.navigation-single .prev a:hover, .nav-links .next:hover,
.nav-links .prev:hover,
.navigation .next:hover,
.navigation .prev:hover,
.navigation-comments .next:hover,
.navigation-comments .prev:hover {
  color: #f7b019;
  background: #004e6c;
  border-color: #f7b019;
}

:root {
  --wp--style--global--content-size: 1675px;
}

.wp-block-group__inner-container {
  padding-left: 15px;
  padding-right: 15px;
  max-width: 1675px;
  margin: 0 auto;
}

@media (min-width: 768px) {
  [id=twocolumns] {
    display: flex;
  }
}

[id=content] {
  padding-top: 30px;
  padding-bottom: 30px;
}
@media (min-width: 768px) {
  [id=content] {
    width: 70%;
  }
}
[id=content]:only-child {
  width: 100%;
}

[id=sidebar] {
  padding-top: 30px;
  padding-bottom: 30px;
}
@media (min-width: 768px) {
  [id=sidebar] {
    width: 30%;
    padding-left: 30px;
  }
}

.widget {
  margin-bottom: 20px;
}
.widget select {
  min-width: 150px;
  width: 100%;
}

.search-form,
.post-password-form {
  margin-bottom: 10px;
}
.search-form label,
.post-password-form label {
  display: block;
}
.search-form input,
.post-password-form input {
  float: left;
  margin-right: 5px;
  -webkit-appearance: none;
  -webkit-border-radius: 0;
  padding: 10px 20px;
  font-size: 16px;
  line-height: 18px;
  font-family: "Montserrat", "Arial", "Helvetica Neue", "Helvetica", sans-serif;
  box-sizing: border-box;
  border: 1px solid transparent;
  border: 1px solid #f7b019;
  box-shadow: none;
}
@media (min-width: 1024px) {
  .search-form input,
  .post-password-form input {
    font-size: 18px;
  }
}
@media (min-width: 1200px) {
  .search-form input,
  .post-password-form input {
    font-size: 24px;
    padding: 15px 28px;
  }
}
@media (min-width: 768px) {
  [id=sidebar] .search-form input,
  [id=sidebar] .post-password-form input {
    width: 100%;
    margin: 0 0 5px;
  }
}
.search-form input[type=submit],
.post-password-form input[type=submit] {
  margin: 0;
  -webkit-appearance: none;
  -webkit-border-radius: 0;
  height: 60px;
  padding: 20px 20px;
  font-size: 16px;
  line-height: 18px;
  color: #050708;
  background: #f7b019;
  transition: 0.3s background ease-in-out, 0.3s color ease-in-out;
  font-weight: 500;
  cursor: pointer;
}
.search-form input[type=submit]:hover,
.post-password-form input[type=submit]:hover {
  background: #004e6c;
  color: #f7b019;
}

.nav-links,
.navigation,
.navigation-comments {
  width: 100%;
  position: relative;
}
.nav-links .screen-reader-text,
.navigation .screen-reader-text,
.navigation-comments .screen-reader-text {
  position: absolute;
  left: -99999px;
}
.nav-links .page-numbers,
.navigation .page-numbers,
.navigation-comments .page-numbers {
  margin: 0 3px;
}
.nav-links .page-numbers:first-child,
.navigation .page-numbers:first-child,
.navigation-comments .page-numbers:first-child {
  margin-left: 0;
}
.nav-links .page-numbers:last-child,
.navigation .page-numbers:last-child,
.navigation-comments .page-numbers:last-child {
  margin-right: 0;
}
.nav-links .next,
.nav-links .prev,
.navigation .next,
.navigation .prev,
.navigation-comments .next,
.navigation-comments .prev {
  transition: background 0.3s ease-in-out;
  max-width: 49%;
}
@media (max-width: 767.98px) {
  .nav-links .next,
  .nav-links .prev,
  .navigation .next,
  .navigation .prev,
  .navigation-comments .next,
  .navigation-comments .prev {
    font-size: 0;
  }
  .nav-links .next:after,
  .nav-links .prev:after,
  .navigation .next:after,
  .navigation .prev:after,
  .navigation-comments .next:after,
  .navigation-comments .prev:after {
    content: "»";
    font-size: 16px;
  }
}
@media (max-width: 767.98px) {
  .nav-links .prev:after,
  .navigation .prev:after,
  .navigation-comments .prev:after {
    content: "«";
  }
}

.navigation-single {
  justify-content: space-between;
  align-items: stretch;
  width: 100%;
}
.navigation-single .next,
.navigation-single .prev {
  display: flex;
  align-items: center;
  padding: 0;
  margin: 0;
  max-width: 49%;
  border: 0;
}
.navigation-single .next a,
.navigation-single .prev a {
  transition: background 0.3s ease-in-out;
  display: block;
  padding: 20px 20px;
}
@media (max-width: 767.98px) {
  .navigation-single .next a,
  .navigation-single .prev a {
    font-size: 0;
  }
  .navigation-single .next a:after,
  .navigation-single .prev a:after {
    content: "»";
    font-size: 16px;
  }
}
@media (max-width: 767.98px) {
  .navigation-single .prev a:after {
    content: "«";
  }
}

.comment-form label {
  display: block;
  padding-bottom: 4px;
}
.comment-form input,
.comment-form textarea {
  margin: 0 4px 0 0;
  width: 100%;
}
@media (min-width: 768px) {
  .comment-form input,
  .comment-form textarea {
    max-width: 300px;
  }
}
.comment-form input[type=submit],
.comment-form textarea[type=submit] {
  display: block;
  width: auto;
}
.comment-form textarea {
  overflow: auto;
  margin: 0;
  height: 120px;
  min-height: 120px;
}

.commentlist {
  margin: 0 0 1.2em;
}
.commentlist .edit-link {
  margin: 0;
}
.commentlist .avatar-holder {
  float: left;
  margin: 0 1.2em 4px 0;
}

.commentlist-item .commentlist-item {
  padding: 0;
}
@media (min-width: 768px) {
  .commentlist-item .commentlist-item {
    padding: 0 0 0 2em;
  }
}

.comment,
.commentlist-holder {
  overflow: hidden;
}

.commentlist-item .commentlist-item,
.commentlist-item + .commentlist-item {
  padding-top: 20px;
}

.widget_calendar th,
.widget_calendar td {
  text-align: center;
}
.widget_calendar #prev {
  text-align: left;
}
.widget_calendar #next {
  text-align: right;
}

#wp-calendar {
  width: 100%;
}

.wp-caption {
  max-width: 100%;
  clear: both;
  padding: 4px;
  margin-bottom: 20px;
  text-align: center;
}
.wp-caption img {
  margin-bottom: 4px;
}
.wp-caption p {
  margin: 0;
}

.aligncenter {
  margin: 0 auto 20px;
}

img.aligncenter {
  display: block;
  margin: 0 auto;
}

.alignleft {
  float: left;
  margin: 0 1.2em 4px 0;
}

.alignright {
  float: right;
  margin: 0 0 4px 1.2em;
}

.mejs-container {
  margin-bottom: 20px;
}

.wp-caption-text,
.gallery,
.alignnone,
.gallery-caption,
.sticky,
.bypostauthor {
  height: auto;
}

.gallery {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
.gallery .gallery-item {
  margin: 0;
  padding: 0 10px 10px;
}
.gallery .gallery-item dt {
  float: none;
  width: 100%;
  margin: 0 0 10px;
  padding: 0;
}

.gallery-columns-2 .gallery-item {
  max-width: 50%;
  width: 50%;
}

.gallery-columns-3 .gallery-item {
  max-width: 33.33%;
  width: 33.33%;
}

.tagcloud {
  display: flex;
  flex-wrap: wrap;
}

.comment-list .comment-body {
  margin-bottom: 20px;
}

.comment-author img {
  margin-right: 10px;
}

@media (max-width: 1023.98px) {
  .nav-active {
    overflow: hidden;
  }
}

[id=header] {
  position: relative;
  padding: 10px 0;
  z-index: 2;
  border-bottom: 6px solid #f7b019;
  background: #fff;
}
@media (min-width: 1200px) {
  [id=header] {
    border-bottom-width: 12px;
    padding: 45px 0;
  }
}
[id=header]:before {
  content: "";
  position: absolute;
  bottom: -3px;
  left: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 185px 0 0;
  border-color: #fff transparent transparent transparent;
}
@media (min-width: 1200px) {
  [id=header]:before {
    bottom: -7px;
    border-width: 10px 250px 0 0;
  }
}

.header-inner {
  display: flex;
  justify-content: space-between;
}
@media (max-width: 1023.98px) {
  .header-inner {
    align-items: center;
  }
}

.logo {
  display: block;
  width: 110px;
  margin-right: 20px;
  position: relative;
  z-index: 22;
}
@media (min-width: 1024px) {
  .logo {
    width: 150px;
  }
}
@media (min-width: 1200px) {
  .logo {
    width: 224px;
  }
}
.logo img {
  width: 100%;
}

@media (max-width: 1023.98px) {
  .menu-drop {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    bottom: 0;
    margin: 6px 0 0;
    height: calc(100vh - 105px);
    background-color: #fff;
    padding: 35px 15px 15px;
    z-index: 20;
    transform: translateX(100%);
    overflow-y: auto;
    overflow-x: hidden;
    transition: 0.35s cubic-bezier(0.4, 0, 1, 1) transform;
  }
}
@media (min-width: 1024px) {
  .menu-drop {
    display: flex;
    flex-wrap: wrap;
    padding: 30px 0 0;
  }
}
@media (max-width: 1023.98px) {
  .nav-active .menu-drop {
    transform: translateX(0);
  }
}

[id=nav],
[id=footer-nav] {
  font-weight: 500;
  font-size: 20px;
}
@media (min-width: 1200px) {
  [id=nav],
  [id=footer-nav] {
    font-size: 26px;
  }
}
[id=nav] .arrow,
[id=footer-nav] .arrow {
  transition: transform 0.3s ease-in-out, border-color 0.3s ease-in-out;
  display: block;
  border-color: #050708 transparent;
  padding: 0;
  background-color: transparent;
  border-radius: 0;
  height: auto;
  margin: 0 0 0 5px;
  border-style: solid;
  border-width: 11px 6px 0;
  min-width: auto !important;
  background: none !important;
  height: auto !important;
}
[id=nav] .drop-holder,
[id=footer-nav] .drop-holder {
  background: #F4F4F4;
  overflow: hidden;
  width: 100%;
}
@media (max-width: 1023.98px) {
  [id=nav] .drop-holder,
  [id=footer-nav] .drop-holder {
    transition: max-height 0.3s ease-in-out;
    max-height: 0;
  }
}
@media (min-width: 1024px) {
  [id=nav] .drop-holder,
  [id=footer-nav] .drop-holder {
    transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: 295px;
    margin: 10px 0 0;
    z-index: 1;
    opacity: 0;
    visibility: hidden;
  }
}
@media (min-width: 1024px) {
  [id=nav] .drop-holder:before,
  [id=footer-nav] .drop-holder:before {
    content: "";
    position: absolute;
    top: -5px;
    left: 0;
    right: 0;
    background: #f7b019;
    transform: rotate(2deg);
    height: 16px;
  }
}
[id=nav] .drop-holder ul,
[id=footer-nav] .drop-holder ul {
  padding: 12px;
}
@media (min-width: 1024px) {
  [id=nav] .drop-holder ul,
  [id=footer-nav] .drop-holder ul {
    padding: 23px 12px 5px;
  }
}
[id=nav] .drop-holder ul .active > a,
[id=footer-nav] .drop-holder ul .active > a {
  color: #f7b019;
  background: #fff;
}
[id=nav] .active > a,
[id=footer-nav] .active > a {
  color: #f7b019;
}
[id=nav] .active .arrow,
[id=footer-nav] .active .arrow {
  border-color: #f7b019 transparent;
}
[id=nav] > ul,
[id=footer-nav] > ul {
  text-transform: uppercase;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
}
@media (min-width: 1024px) {
  [id=nav] > ul,
  [id=footer-nav] > ul {
    gap: 25px;
    flex-direction: row;
  }
}
@media (min-width: 1200px) {
  [id=nav] > ul,
  [id=footer-nav] > ul {
    gap: 50px;
  }
}
[id=nav] > ul > li,
[id=footer-nav] > ul > li {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
@media (max-width: 1023.98px) {
  [id=nav] > ul > li,
  [id=footer-nav] > ul > li {
    justify-content: center;
  }
}
[id=nav] > ul > li.hover > a, [id=nav] > ul > li.item-focused > a,
[id=footer-nav] > ul > li.hover > a,
[id=footer-nav] > ul > li.item-focused > a {
  color: #f7b019;
}
[id=nav] > ul > li.hover .arrow, [id=nav] > ul > li.item-focused .arrow,
[id=footer-nav] > ul > li.hover .arrow,
[id=footer-nav] > ul > li.item-focused .arrow {
  border-color: #f7b019 transparent;
}
@media (max-width: 1023.98px) {
  [id=nav] > ul > li.hover .drop-holder, [id=nav] > ul > li.item-focused .drop-holder,
  [id=footer-nav] > ul > li.hover .drop-holder,
  [id=footer-nav] > ul > li.item-focused .drop-holder {
    max-height: 800px;
  }
}
@media (min-width: 1024px) {
  [id=nav] > ul > li.hover .drop-holder, [id=nav] > ul > li.item-focused .drop-holder,
  [id=footer-nav] > ul > li.hover .drop-holder,
  [id=footer-nav] > ul > li.item-focused .drop-holder {
    opacity: 1;
    visibility: visible;
  }
}
[id=nav] > ul > li > a[aria-expanded=false]:after,
[id=footer-nav] > ul > li > a[aria-expanded=false]:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: calc(100% + 25px);
  opacity: 0;
  visibility: hidden;
}
[id=nav] > ul ul,
[id=footer-nav] > ul ul {
  text-transform: none;
  font-size: 16px;
}
[id=nav] > ul ul a:hover, [id=nav] > ul ul a:focus,
[id=footer-nav] > ul ul a:hover,
[id=footer-nav] > ul ul a:focus {
  background: #E0E0E0;
  color: initial;
}
[id=nav] a,
[id=footer-nav] a {
  color: #050708;
  display: block;
  padding: 11px;
}
@media (min-width: 1024px) {
  [id=nav] a,
  [id=footer-nav] a {
    padding: 11px 5px;
  }
}
[id=nav] a:hover,
[id=footer-nav] a:hover {
  color: #f7b019;
}

.nav-opener {
  position: relative;
  width: 30px;
  height: 30px;
  font-size: 0;
  line-height: 0;
  float: right;
  background: none;
  z-index: 22;
  border: 0;
}
@media (min-width: 1024px) {
  .nav-opener {
    display: none;
  }
}
.nav-opener:before, .nav-opener:after,
.nav-opener span {
  transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out, background 0.3s ease-in-out;
  background: #000;
  position: absolute;
  top: 50%;
  left: 15%;
  right: 15%;
  height: 3px;
  transform: translateY(-50%);
}
.nav-opener:before, .nav-opener:after {
  content: "";
}
.nav-opener:before {
  transform: translateY(-9px);
}
.nav-opener:after {
  transform: translateY(6px);
}
.nav-opener:hover:before, .nav-opener:hover:after,
.nav-opener:hover span {
  background-color: #f7b019;
}
.nav-active .nav-opener span {
  opacity: 0;
  transform: rotate(45deg);
}
.nav-active .nav-opener:before {
  transform: rotate(45deg) translateY(0);
}
.nav-active .nav-opener:after {
  transform: rotate(-45deg) translateY(0);
}

[id=wrapper] {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 100vh;
  overflow: hidden;
}

[id=main] {
  flex-grow: 1;
}

.container {
  width: 100%;
  max-width: 1675px;
  padding: 0 15px;
  margin: 0 auto;
}

.accordion {
  list-style: none;
}
.accordion > li {
  margin-block: 10px;
}
.accordion > li > a {
  display: block;
  text-align: left;
}
.accordion .js-acc-hidden {
  visibility: hidden;
}

.burger-holder {
  position: relative;
}
.burger-holder .burger-drop {
  position: absolute;
  top: 100%;
  left: 0;
  width: 300px;
  background: #fff;
  border: 1px solid #000;
  padding: 20px;
  visibility: hidden;
}
.burger-holder .burger-drop button {
  transition: none;
}
.burger-holder.burger-active .burger-drop {
  visibility: visible;
}

.popup-holder {
  position: relative;
}
.popup-holder .popup {
  position: absolute;
  top: 100%;
  left: 0;
  width: 300px;
  background: #fff;
  border: 1px solid #000;
  padding: 20px;
  visibility: hidden;
}
.popup-holder .popup button {
  transition: none;
}
.popup-holder.popup-active .popup {
  visibility: visible;
}

.open-close {
  position: relative;
}
.open-close .slide {
  width: 300px;
  background: #fff;
  border: 1px solid #000;
  padding: 20px;
}
.open-close .js-slide-hidden {
  visibility: hidden;
}

.line-box {
  width: 600px;
}
.line-box .mask {
  overflow: hidden;
}
.line-box .line {
  width: 99999px;
  display: flex;
}
.line-box .line > * {
  flex: 0 0 auto;
}

/*!
 * tabbyjs v12.0.3
 * Lightweight, accessible vanilla JS toggle tabs.
 * (c) 2019 Chris Ferdinandi
 * MIT License
 * http://github.com/cferdinandi/tabby
 */
/**
 * The tablist
 */
[role=tablist] {
  border-bottom: 1px solid lightgray;
  list-style: none;
  margin: 0;
  padding: 0;
}

[role=tablist] * {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

/**
 * The tablist item
 */
@media (min-width: 30em) {
  [role=tablist] li {
    display: inline-block;
  }
}
/**
 * The tabs
 */
[role=tab] {
  border: 1px solid transparent;
  border-top-color: lightgray;
  display: block;
  padding: 0.5em 1em;
  text-decoration: none;
  /**
     * Active tab styling
     */
  /**
     * Tabs on hover
     */
}

@media (min-width: 30em) {
  [role=tab] {
    border-top-color: transparent;
    border-top-left-radius: 0.5em;
    border-top-right-radius: 0.5em;
    display: inline-block;
    margin-bottom: -1px;
  }
}
[role=tab][aria-selected=true] {
  background-color: lightgray;
}

@media (min-width: 30em) {
  [role=tab][aria-selected=true] {
    background-color: transparent;
    border: 1px solid lightgray;
    border-bottom-color: #ffffff;
  }
}
[role=tab]:hover:not([aria-selected=true]) {
  background-color: #f7f7f7;
}

@media (min-width: 30em) {
  [role=tab]:hover:not([aria-selected=true]) {
    border: 1px solid lightgray;
  }
}
/**
 * [hidden] fallback for IE10 and lower
 */
[hidden] {
  display: none;
}

[id=footer] {
  background: #004e6c;
  color: #fff;
}
@media (max-width: 1023.98px) {
  [id=footer] {
    text-align: center;
  }
}
[id=footer] .footer-content {
  text-align: center;
  text-transform: uppercase;
  font-weight: 900;
  padding: 50px 0;
  font-size: 18px;
}
@media (min-width: 1024px) {
  [id=footer] .footer-content {
    font-size: 30px;
  }
}
[id=footer] .text-block {
  max-width: 875px;
  margin: 0 auto 30px;
  line-height: 1.7;
}
[id=footer] .img-block {
  margin: 0 0 35px;
}
@media (min-width: 768px) {
  [id=footer] .info-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
}
[id=footer] .info-list li {
  margin: 0 0 15px;
}
@media (min-width: 768px) {
  [id=footer] .info-list li {
    margin: 0;
  }
}
@media (min-width: 768px) {
  [id=footer] .info-list li:after {
    content: "|";
    display: inline-block;
    vertical-align: top;
    margin: 0 10px 0 0;
    color: #f7b019;
  }
}
[id=footer] .info-list li:last-child:after {
  display: none;
}
[id=footer] .info-list a {
  color: #fff;
}
[id=footer] .info-list a:hover {
  color: #f7b019;
}
[id=footer] .logo {
  margin: 0 auto 20px;
}
@media (min-width: 1024px) {
  [id=footer] .logo {
    margin: 0 20px 0 0;
  }
}
@media (min-width: 1200px) {
  [id=footer] .logo {
    width: 178px;
  }
}
[id=footer] .footer-holder {
  padding: 16px 0;
}
@media (min-width: 1024px) {
  [id=footer] .footer-holder {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: 16px 15px;
  }
}
[id=footer] .bottom-block {
  background: #F4F4F4;
}
@media (max-width: 1023.98px) {
  [id=footer] .social-networks {
    justify-content: center;
  }
}
@media (min-width: 1024px) {
  [id=footer] .social-networks {
    margin: 0 0 0 auto;
  }
}
@media (min-width: 1200px) {
  [id=footer] [id=footer-nav] {
    padding: 0 0 0 120px;
  }
}
[id=footer] [id=footer-nav] .arrow {
  border-color: #004e6c transparent;
  transform: rotate(180deg);
}
@media (min-width: 1024px) {
  [id=footer] [id=footer-nav] .drop-holder {
    bottom: 100%;
    top: auto;
  }
}
@media (max-width: 1023.98px) {
  [id=footer] [id=footer-nav] > ul {
    justify-content: center;
    margin: 0 0 20px;
  }
}
[id=footer] [id=footer-nav] > ul > li.hover > a, [id=footer] [id=footer-nav] > ul > li.item-focused > a {
  color: #f7b019;
}
[id=footer] [id=footer-nav] > ul > li > a {
  color: #004e6c;
}
[id=footer] [id=footer-nav] > ul > li > a:hover {
  color: #f7b019;
}

.social-networks {
  display: flex;
  gap: 10px;
}
.social-networks svg path {
  transition: fill 0.3s ease-in-out;
}
.social-networks a:hover svg path {
  fill: #f7b019;
}

.btn {
  display: inline-block;
  padding: 20px 20px;
  font-size: 16px;
  text-align: center;
  line-height: 18px;
  vertical-align: top;
  transition: all 0.3s;
  min-width: 180px;
  font-weight: 500;
  border-style: solid;
  border-color: transparent;
  border-width: 1px;
  border-radius: 0;
}
@media (min-width: 1024px) {
  .btn {
    min-width: 232px;
    padding: 26px 20px;
  }
}
.btn-default {
  color: #050708;
  background: #f7b019;
  border-color: #f7b019;
}
.btn-default:hover {
  color: #f7b019;
  background: #004e6c;
  border-color: #f7b019;
}
.btn-primary {
  color: #050708;
  background: #f7b019;
  border-color: #f7b019;
}
.btn-primary:hover {
  color: #fff;
  background: #004e6c;
  border-color: #004e6c;
}
.btn-secondary {
  color: #fff;
  background: #6c757d;
  border-color: #6c757d;
}
.btn-secondary:hover {
  color: #fff;
  background: rgb(84.3605150215, 91.3905579399, 97.6394849785);
  border-color: #6c757d;
}
.btn-sm {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 14px;
  border-radius: 0;
}
.btn-lg {
  padding: 20px 40px;
  font-size: 18px;
  line-height: 20px;
  border-radius: 0;
}

.btn-group {
  margin: 0 -5px -10px;
  display: flex;
  flex-wrap: wrap;
}
.btn-group .btn {
  margin: 0 5px 10px;
}

.section-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 280px;
  border-bottom: 30px solid #f7b019;
}/*
@media (min-width: 1024px) {
  .section-hero {
    min-height: 535px;
    padding-top: 70px;
  }
}
@media (min-width: 1200px) {
  .section-hero {
    min-height: 600px;
    border-width: 60px;
  }
}
@media (min-width: 1440px) {
  .section-hero {
    min-height: 830px;
  }
}*/
.section-hero .container {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    text-align: center;
}
.section-hero .img-block {
  display: inline-block;
  width: 46%;
  max-width: 680px;
}/*
@media (min-width: 768px) {
  .section-hero .img-block {
    width: 200px;
  }
}
@media (min-width: 1200px) {
  .section-hero .img-block {
    width: 375px;
  }
}*/
.section-hero .img-block img {
  width: 100%;
}
.section-hero .video-holder {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: -1;
}
.section-hero .bg-image {
  position: relative;
  width: 100%;
  height: 0;
  min-height: 250px;
  padding: 43.23% 0 0;
  inset: 0;
  z-index: -2;
}
.section-hero .bg-image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.section-hero iframe {
  width: 100vw;
  height: 56.25vw; /* Given a 16:9 aspect ratio, 9/16*100 = 56.25 */
  min-height: 100%;
  min-width: 177.77vh; /* Given a 16:9 aspect ratio, 16/9*100 = 177.77 */
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.section-intro {
  position: relative;
  color: #fff;
  min-height: 300px;
}
@media (min-width: 768px) {
  .section-intro {
    min-height: 400px;
  }
}
@media (min-width: 1200px) {
  .section-intro {
    min-height: 540px;
  }
}
.section-intro .bg-image {
  position: absolute;
  inset: 0;
  z-index: -1;
}
.section-intro .bg-image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.section-intro .holder-block {
  min-height: 300px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 50px 0;
}
@media (min-width: 768px) {
  .section-intro .holder-block {
    min-height: 400px;
    padding: 70px 0;
  }
}
@media (min-width: 1200px) {
  .section-intro .holder-block {
    min-height: 540px;
    padding: 150px 0;
  }
}
.section-intro .img-block {
  margin: 0 0 15px;
  width: 200px;
}
@media (min-width: 1024px) {
  .section-intro .img-block {
    width: 270px;
  }
}
@media (min-width: 1200px) {
  .section-intro .img-block {
    margin: 0 0 35px;
    width: 373px;
  }
}
.section-intro .img-block img {
  width: 100%;
}
.section-intro h2,
.section-intro .h2 {
  font-size: 40px;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .section-intro h2,
  .section-intro .h2 {
    font-size: 60px;
  }
}
@media (min-width: 1024px) {
  .section-intro h2,
  .section-intro .h2 {
    font-size: 80px;
  }
}

.section-faq {
  padding: 35px 0;
}
@media (min-width: 1200px) {
  .section-faq {
    padding: 137px 0 77px;
  }
}

.accordion {
  list-style: none;
  padding: 0;
  margin: 0;
  counter-reset: item;
  border-bottom: 1px solid #f7b019;
}
.accordion .opener {
  display: block;
  background: #F4F4F4;
  border-top: 1px solid #f7b019;
  font-weight: 800;
  color: #050708;
  position: relative;
  font-size: 18px;
  padding: 10px 30px 10px 40px;
}
@media (min-width: 768px) {
  .accordion .opener {
    font-size: 24px;
    padding: 15px 50px 15px 60px;
  }
}
@media (min-width: 1024px) {
  .accordion .opener {
    font-size: 30px;
  }
}
@media (min-width: 1200px) {
  .accordion .opener {
    padding: 18px 45px 18px 90px;
  }
}
.accordion .opener:hover {
  color: #f7b019;
}
.accordion .opener:after, .accordion .opener:before {
  content: "";
  position: absolute;
  background: #f7b019;
  top: 50%;
  transform: translate(0, -50%);
}
.accordion .opener:after {
  width: 17px;
  height: 3px;
  right: 8px;
}
@media (min-width: 768px) {
  .accordion .opener:after {
    right: 15px;
  }
}
@media (min-width: 1200px) {
  .accordion .opener:after {
    right: 16px;
  }
}
.accordion .opener:before {
  transition: transform 0.3s ease-in-out;
  width: 3px;
  height: 17px;
  right: 15px;
}
@media (min-width: 768px) {
  .accordion .opener:before {
    right: 22px;
  }
}
@media (min-width: 1200px) {
  .accordion .opener:before {
    right: 23px;
  }
}
.accordion .slide {
  list-style: none;
  padding: 12px 0 12px 15px;
}
@media (min-width: 1024px) {
  .accordion .slide {
    padding: 20px 0 20px 25px;
  }
}
@media (min-width: 1200px) {
  .accordion .slide {
    padding: 33px 0 18px 52px;
  }
}
.accordion .slide li {
  position: relative;
  padding: 0 0 12px 15px;
}
@media (min-width: 1024px) {
  .accordion .slide li {
    padding: 0 0 15px 20px;
  }
}
@media (min-width: 1200px) {
  .accordion .slide li {
    padding: 0 0 23px 30px;
  }
}
.accordion .slide li:before {
  width: 5px;
  height: 5px;
  content: "";
  position: absolute;
  left: 0;
  top: 10px;
  border-radius: 50%;
  border: 1px solid #050708;
  font-size: 18px;
}
@media (min-width: 1200px) {
  .accordion .slide li:before {
    top: 12px;
  }
}
.accordion > li {
  position: relative;
  margin: 0;
}
.accordion > li:before {
  transition: color 0.3s ease-in-out;
  content: counters(item, ".") ". ";
  counter-increment: item;
  font-weight: 800;
  position: absolute;
  left: 8px;
  top: 10px;
  z-index: 1;
  font-size: 18px;
}
@media (min-width: 768px) {
  .accordion > li:before {
    font-size: 24px;
    left: 12px;
    top: 15px;
  }
}
@media (min-width: 1024px) {
  .accordion > li:before {
    font-size: 30px;
  }
}
@media (min-width: 1200px) {
  .accordion > li:before {
    left: 25px;
    top: 18px;
  }
}
.accordion > li:hover:before {
  color: #f7b019;
}
.accordion > li.active .opener:before {
  transform: translate(0, -50%) rotate(90deg);
}

.section-connection {
  padding: 35px 0;
}
@media (min-width: 1024px) {
  .section-connection {
    padding: 75px 0;
  }
}
@media (min-width: 1024px) {
  .section-connection .holder-block {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
  }
}
@media (min-width: 1024px) {
  .section-connection .text-block,
  .section-connection .connection-block {
    width: 50%;
  }
}
.section-connection .connection-block {
  background: #f7b019;
  text-align: center;
  padding: 25px;
}
@media (min-width: 1200px) {
  .section-connection .connection-block {
    padding: 65px 25px 75px;
  }
}
.section-connection .connection-block h3,
.section-connection .connection-block .h3 {
  color: #fff;
  margin: 0 0 33px;
}
.section-connection .text-wrap {
  padding: 0 0 15px;
}
@media (min-width: 1024px) {
  .section-connection .text-wrap {
    max-width: 715px;
    padding: 20px 20px 0 0;
  }
}
.section-connection .text-frame {
  border-top: 1px solid #fff;
  max-width: 570px;
  margin: 0 auto;
  padding: 30px 0 15px;
}
.section-connection .btn {
  background: #fff;
  color: #f7b019;
}
@media (min-width: 768px) {
  .section-connection .btn {
    min-width: 327px;
  }
}
.section-connection .btn:hover {
  background: #004e6c;
}

.section-contact {
  background: #F4F4F4;
  padding: 50px 0;
}
@media (min-width: 1200px) {
  .section-contact {
    padding: 145px 0;
  }
}
.section-contact .heading-block {
  text-align: center;
  margin: 0 0 30px;
}
@media (min-width: 1200px) {
  .section-contact .heading-block {
    margin: 0 0 80px;
  }
}
.section-contact .form-description {
  margin: 0 0 15px;
}
@media (min-width: 1200px) {
  .section-contact .form-description {
    margin: 0 0 45px;
  }
}
.section-contact .form-holder {
  max-width: 1400px;
  margin: 0 auto;
}
.section-contact h2,
.section-contact .h2 {
  color: #004e6c;
  text-transform: uppercase;
}

.section-visual {
  position: relative;
  min-height: 450px;
}
@media (min-width: 1024px) {
  .section-visual {
    min-height: 500px;
  }
}
@media (min-width: 1200px) {
  .section-visual {
    min-height: 800px;
  }
}

.section-visual .video-holder {
  position: relative;
  padding: 56.25% 0 0;
  inset: 0;
  overflow: hidden;
  z-index: 1;
}
.section-visual .bg-image {
    position: absolute;
    inset: 0;
    z-index: -1;
}
.section-visual .bg-image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.section-visual iframe {
  width: 100vw;
  height: 56.25vw; /* Given a 16:9 aspect ratio, 9/16*100 = 56.25 */
  min-height: 100%;
  min-width: 177.77vh; /* Given a 16:9 aspect ratio, 16/9*100 = 177.77 */
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
/*
.section-visual .bg-image {
  position: absolute;
  inset: 0;
  z-index: -1;
}*/
.section-visual .bg-image img {
  position: relative;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  z-index: 1;
}/*
.section-visual .bg-image:before {
    content: '';
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 40%;
    background: linear-gradient(to bottom,  rgba(0,0,0,0) 0%,rgba(0,0,0,0.8) 100%);
    z-index: 5;
}
.section-visual .holder-block {
  display: flex;
  align-items: flex-end;
  min-height: 450px;
}
@media (min-width: 1024px) {
  .section-visual .holder-block {
    min-height: 500px;
  }
}
@media (min-width: 1200px) {
  .section-visual .holder-block {
    min-height: 800px;
  }
}*/
.section-visual .text-block {
  text-align: center;
  color: #050708;
  font-weight: 400;
  padding: 36px 0;
}
@media (min-width: 768px) {
  .section-visual .text-block {
    padding: 60px 0;
  }
}
@media (min-width: 1200px) {
  .section-visual .text-block {
    padding: 100px 0;
  }
}
.section-visual .text-block p:last-child,
.section-visual .text-block p:only-child {
    margin: 0;
}
.section-visual .text-block strong {
  text-transform: uppercase;
  color: #f7b019;
  font-weight: 900;
}
@media (min-width: 1024px) {
  .section-visual .text-block strong {
    font-size: 30px;
  }
}

.section-intro-text {
  padding: 35px 0;
}
@media (min-width: 1024px) {
  .section-intro-text {
    padding: 50px 30px;
  }
}
@media (min-width: 1200px) {
  .section-intro-text {
    padding: 80px 0 65px;
  }
}
.section-intro-text h2,
.section-intro-text .h2,
.section-intro-text h3,
.section-intro-text .h3 {
  text-transform: uppercase;
  color: #004e6c;
  line-height: 1.225;
}
.section-intro-text h2 strong,
.section-intro-text .h2 strong {
  font-size: 130%;
}

.section-running-line {
  background: #f7b019;
  color: #fff;
  padding: 30px 0;
}
@media (min-width: 1024px) {
  .section-running-line {
    padding: 50px 0;
  }
}
@media (min-width: 1200px) {
  .section-running-line {
    padding: 90px 0;
  }
}
.section-running-line .line-list {
  width: 99999px;
  display: flex;
  text-transform: uppercase;
  font-weight: 900;
  font-size: 30px;
}
@media (min-width: 1200px) {
  .section-running-line .line-list {
    font-size: 50px;
  }
}
.section-running-line .line-list strong {
  color: #004e6c;
}
.section-running-line .line-list > * {
  flex: 0 0 auto;
}
.section-running-line .line-list li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.section-running-line .line-list li:before {
  width: 12px;
  height: 12px;
  content: "";
  display: inline-block;
  vertical-align: top;
  background: #fff;
  border-radius: 50%;
  margin: 0 8px;
}
@media (min-width: 1200px) {
  .section-running-line .line-list li:before {
    width: 17px;
    height: 17px;
    margin: 0 18px;
  }
}
.section-running-line .line-list li p {
  margin: 0;
}
.section-running-line .mask {
  overflow: hidden;
}

@media (min-width: 1024px) {
  .section-image-text .holder-block {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
  }
}
@media (min-width: 1024px) {
  .section-image-text .text-block,
  .section-image-text .image-block {
    width: 50%;
  }
}
@media (min-width: 1200px) {
  .section-image-text .text-block {
    width: 53%;
    padding: 0 0 0 calc((100% - 1665px) / 2);
  }
}
@media (min-width: 1200px) {
  .section-image-text .image-block {
    width: 47%;
  }
}
.section-image-text .image-block img {
  width: 100%;
}
.section-image-text .text-wrap {
  max-width: 815px;
  padding: 25px 15px;
}
@media (min-width: 1024px) {
  .section-image-text .text-wrap p {
    margin: 0 0 40px;
  }
}
@media (min-width: 1200px) {
  .section-image-text .text-wrap p {
    margin: 0 0 60px;
  }
}

.section-process {
  background: #f7b019;
  color: #fff;
  padding: 50px 0 0;
}
@media (min-width: 1200px) {
  .section-process {
    padding: 90px 0 0;
  }
}
.section-process .heading-block {
  color: #fff;
  text-align: center;
}
.section-process .process-list {
  font-weight: 700;
  font-size: 18px;
  line-height: 1.5;
  text-align: center;
  padding: 25px 0 0;
}
@media (min-width: 768px) {
  .section-process .process-list {
    gap: 30px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
}
@media (min-width: 1024px) {
  .section-process .process-list {
    padding: 0;
  }
}
@media (min-width: 1200px) {
  .section-process .process-list {
    gap: 50px;
    font-size: 20px;
  }
}
.section-process .process-list li {
  max-width: 320px;
  padding: 115px 0 0;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .section-process .process-list li {
    width: calc(50% - 23px);
    padding: 85px 0 0;
    margin: 0;
  }
}
@media (min-width: 1024px) {
  .section-process .process-list li {
    width: calc(25% - 23px);
    max-width: none;
  }
}
@media (min-width: 1200px) {
  .section-process .process-list li {
    width: calc(25% - 38px);
    padding: 150px 0 0;
  }
}
.section-process .process-list li:nth-child(even) .list-item::before {
  transform: rotate(-11deg) skew(-11deg, 0);
}
.section-process .process-list p {
  margin: 0;
}
.section-process .list-item {
  background: #E09819;
  padding: 25px 15px 30px;
  position: relative;
  z-index: 1;
  height: 100%;
  min-height: 330px;
}
@media (min-width: 1200px) {
  .section-process .list-item {
    padding: 35px 35px 52px;
  }
}
.section-process .list-item:before {
  content: "";
  position: absolute;
  bottom: 90%;
  left: -1%;
  right: -1%;
  background: #E09819;
  height: 85px;
  transform: rotate(11deg) skew(11deg, 0);
  z-index: -1;
}
.section-process .list-item .icon-block {
  margin: 0 0 25px;
}
@media (min-width: 768px) {
  .section-process .list-item .icon-block {
    min-height: 117px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 35px;
  }
}
@media (min-width: 1200px) {
  .section-process .list-item .icon-block {
    margin: 0 0 45px;
  }
}

.section-info {
  padding: 30px 0;
}
@media (min-width: 1200px) {
  .section-info {
    padding: 70px 0;
  }
}
@media (min-width: 1024px) {
  .section-info .holder-block {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
  }
}
@media (min-width: 1024px) {
  .section-info .text-block {
    width: 59%;
  }
}
@media (min-width: 1200px) {
  .section-info .text-block {
    padding: 0 0 0 24px;
  }
}
@media (min-width: 1024px) {
  .section-info .img-block {
    width: 41%;
  }
}
.section-info .img-block img {
  width: 100%;
}
.section-info .text-wrap {
  padding: 25px 15px;
  max-width: 684px;
  margin: 0 auto;
  line-height: 1.2;
}
.section-info .text-wrap mark {
  font-weight: 900;
}
@media (min-width: 1024px) {
  .section-info .text-wrap mark {
    font-size: 30px;
  }
}
@media (min-width: 1024px) {
  .section-info .text-wrap p {
    margin: 0 0 40px;
  }
}
@media (min-width: 1200px) {
  .section-info .text-wrap p {
    margin: 0 0 70px;
  }
}

.section-detail-intro {
  background: #f7b019;
  text-align: center;
  padding: 35px 0;
}
@media (min-width: 1200px) {
  .section-detail-intro {
    padding: 70px 0 50px;
  }
}
@media (min-width: 1200px) {
  .section-detail-intro .text-block {
    padding: 0 25px;
  }
}
.section-detail-intro .text-block strong {
  color: #fff;
  font-weight: 900;
  font-size: 18px;
}
@media (min-width: 1024px) {
  .section-detail-intro .text-block strong {
    font-size: 30px;
  }
}
.section-detail-intro h1,
.section-detail-intro .h1,
.section-detail-intro h2,
.section-detail-intro .h2,
.section-detail-intro h3,
.section-detail-intro .h3,
.section-detail-intro h4,
.section-detail-intro .h4,
.section-detail-intro h5,
.section-detail-intro .h5,
.section-detail-intro h6,
.section-detail-intro .h6,
.section-detail-intro .h {
  color: #fff;
}
@media (min-width: 1200px) {
  .section-detail-intro h1,
  .section-detail-intro .h1,
  .section-detail-intro h2,
  .section-detail-intro .h2,
  .section-detail-intro h3,
  .section-detail-intro .h3,
  .section-detail-intro h4,
  .section-detail-intro .h4,
  .section-detail-intro h5,
  .section-detail-intro .h5,
  .section-detail-intro h6,
  .section-detail-intro .h6,
  .section-detail-intro .h {
    margin: 0 0 50px;
  }
}
@media (max-width: 767.98px) {
  .section-detail-intro h1 br,
  .section-detail-intro .h1 br,
  .section-detail-intro h2 br,
  .section-detail-intro .h2 br,
  .section-detail-intro h3 br,
  .section-detail-intro .h3 br,
  .section-detail-intro h4 br,
  .section-detail-intro .h4 br,
  .section-detail-intro h5 br,
  .section-detail-intro .h5 br,
  .section-detail-intro h6 br,
  .section-detail-intro .h6 br,
  .section-detail-intro .h br {
    display: none;
  }
}

.section-stages {
  padding: 35px 0;
}
@media (min-width: 1200px) {
  .section-stages {
    padding: 85px 0;
  }
}
.section-stages .container {
  max-width: 1780px;
}
.section-stages .text-block {
  text-align: center;
  max-width: 1165px;
  margin: 0 auto 28px;
}
.section-stages .text-block strong {
  font-weight: 900;
  font-size: 18px;
  color: #004e6c;
}
@media (min-width: 1200px) {
  .section-stages .text-block strong {
    font-size: 30px;
  }
}
.section-stages .text-block h2,
.section-stages .text-block .h2 {
  color: #004e6c;
}
@media (min-width: 1200px) {
  .section-stages .text-block h2,
  .section-stages .text-block .h2 {
    margin: 0 0 50px;
  }
}
.section-stages .holder-block {
  padding: 80px 0 0;
}
@media (min-width: 768px) {
  .section-stages .holder-block {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    padding: 75px 0 0;
  }
}
.section-stages .holder-block .column {
  background: #F4F4F4;
  position: relative;
  display: flex;
  padding: 15px 20px;
  margin: 0 auto 20px;
  max-width: 300px;
}
@media (min-width: 768px) {
  .section-stages .holder-block .column {
    margin: 0;
    max-width: none;
  }
}
@media (min-width: 1024px) {
  .section-stages .holder-block .column {
    width: 25%;
  }
}
@media (min-width: 1200px) {
  .section-stages .holder-block .column {
    width: 21%;
  }
}
.section-stages .holder-block .column:before {
  content: "";
  position: absolute;
  bottom: 88%;
  left: -1%;
  right: -1%;
  background: #F4F4F4;
  height: 85px;
  transform: rotate(11deg) skew(11deg, 0);
  z-index: -1;
}
@media (min-width: 1024px) {
  .section-stages .holder-block .column:before {
    bottom: 95%;
  }
}
.section-stages .holder-block .column:last-child:before {
  transform: rotate(-11deg) skew(-11deg, 0);
}
.section-stages .holder-block .img-block {
  margin: 0 0 100px;
}
@media (max-width: 1023.98px) {
  .section-stages .holder-block .img-block {
    order: 1;
  }
}
@media (min-width: 768px) {
  .section-stages .holder-block .img-block {
    margin: 0;
  }
}
@media (min-width: 1024px) {
  .section-stages .holder-block .img-block {
    width: 47%;
    margin: 0 0 25px;
  }
}
@media (min-width: 1200px) {
  .section-stages .holder-block .img-block {
    width: 56%;
  }
}
.section-stages .stages-list {
  text-align: center;
  line-height: 1.2;
  max-width: 280px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  justify-content: space-between;
  font-size: 16px;
}
@media (min-width: 1200px) {
  .section-stages .stages-list {
    font-size: 24px;
  }
}
.section-stages .stages-list li {
  margin: 0 0 15px;
}
.section-stages .stages-list h1,
.section-stages .stages-list .h1,
.section-stages .stages-list h2,
.section-stages .stages-list .h2,
.section-stages .stages-list h3,
.section-stages .stages-list .h3,
.section-stages .stages-list h4,
.section-stages .stages-list .h4,
.section-stages .stages-list h5,
.section-stages .stages-list .h5,
.section-stages .stages-list h6,
.section-stages .stages-list .h6,
.section-stages .stages-list strong {
  color: #004e6c;
}
.section-stages .stages-list h4,
.section-stages .stages-list .h4 {
  margin: 0;
}
@media (min-width: 1200px) {
  .section-stages .stages-list p:last-child {
    margin: 40px 0 20px;
  }
}

@media (min-width: 1024px) {
  .section-image-right .holder-block {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
  }
}
@media (min-width: 1024px) {
  .section-image-right .image-block {
    width: 46%;
  }
}
.section-image-right .image-block img {
  width: 100%;
}
@media (min-width: 1024px) {
  .section-image-right .text-block {
    width: 54%;
  }
}
@media (min-width: 1200px) {
  .section-image-right .text-block {
    padding: 23px 0 0 38px;
  }
}
.section-image-right .text-wrap {
  padding: 25px 15px;
}
@media (min-width: 1024px) {
  .section-image-right .text-wrap {
    text-align: right;
    max-width: 592px;
    margin: 0 auto;
  }
}

.section-info-content {
  padding: 30px 0;
}
@media (min-width: 1024px) {
  .section-info-content {
    padding: 30px 0 80px;
  }
}
@media (min-width: 1200px) {
  .section-info-content {
    padding: 0 0 140px;
  }
}
@media (min-width: 1024px) {
  .section-info-content .holder-block {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
  }
}
.section-info-content .image-block {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  margin: 0 0 20px;
}
@media (min-width: 1024px) {
  .section-info-content .image-block {
    width: 50%;
  }
}
@media (min-width: 1200px) {
  .section-info-content .image-block {
    gap: 27px;
  }
}
.section-info-content .img-frame {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: calc(50% - 8px);
}
@media (min-width: 1024px) {
  .section-info-content .img-frame {
    width: calc(50% - 27px);
  }
}
.section-info-content .img-frame:last-child {
  flex-direction: column-reverse;
}
.section-info-content .img-frame:last-child .decor {
  margin: 0 0 15px;
}
@media (min-width: 1024px) {
  .section-info-content .img-frame:last-child .decor {
    margin: 0 0 25px;
  }
}
@media (min-width: 1200px) {
  .section-info-content .img-frame:last-child .decor {
    margin: 0 0 63px;
  }
}
.section-info-content .text-block {
  padding: 20px 0;
}
@media (min-width: 1024px) {
  .section-info-content .text-block {
    width: 50%;
    padding: 20px 10px 15px 20px;
  }
}
@media (min-width: 1200px) {
  .section-info-content .text-block p {
    margin: 0 0 35px;
  }
}
.section-info-content .text-wrap {
  max-width: 721px;
}
@media (min-width: 1024px) {
  .section-info-content .text-wrap {
    margin: 0 0 0 auto;
  }
}
.section-info-content .decor {
  margin: 15px 0 0;
}
@media (min-width: 1024px) {
  .section-info-content .decor {
    margin: 25px 0 0;
  }
}
@media (min-width: 1200px) {
  .section-info-content .decor {
    margin: 63px 0 0;
  }
}

.section-benefits {
  background: #004e6c;
  color: #fff;
  padding: 35px 0;
  position: relative;
}
@media (min-width: 1024px) {
  .section-benefits {
    padding: 65px 0 48px;
  }
}
.section-benefits .container {
  max-width: 1735px;
}
.section-benefits .heading-block {
  text-align: center;
  max-width: 400px;
  margin: 0 auto 25px;
}
@media (min-width: 1024px) {
  .section-benefits .heading-block {
    max-width: 853px;
    margin: 0 auto 48px;
  }
}
.section-benefits .decor {
  position: absolute;
  bottom: 0;
  right: 0;
}
@media (max-width: 1023.98px) {
  .section-benefits .decor {
    max-width: 50%;
  }
}
@media (min-width: 768px) {
  .section-benefits .benefits-list {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
  }
}
@media (min-width: 1200px) {
  .section-benefits .benefits-list {
    gap: 24px;
  }
}
.section-benefits .benefits-list > li {
  position: relative;
  padding: 0 0 15px 15px;
}
@media (min-width: 768px) {
  .section-benefits .benefits-list > li {
    width: calc(50% - 8px);
  }
}
@media (min-width: 1024px) {
  .section-benefits .benefits-list > li {
    padding: 0 0 15px 20px;
  }
}
@media (min-width: 1200px) {
  .section-benefits .benefits-list > li {
    width: calc(25% - 18px);
  }
}
.section-benefits .benefits-list > li:before {
  width: 5px;
  height: 5px;
  content: "";
  display: inline-block;
  vertical-align: top;
  border-radius: 50%;
  background: #fff;
  position: absolute;
  left: 0;
  top: 6px;
}
@media (min-width: 1024px) {
  .section-benefits .benefits-list > li:before {
    width: 6px;
    height: 6px;
    top: 15px;
  }
}
.section-benefits .benefits-list > li p {
  display: inline-block;
  vertical-align: top;
  margin: 0;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.section-benefits .benefits-list ul {
  padding: 0 0 0 5px;
}
@media (min-width: 1024px) {
  .section-benefits .benefits-list ul {
    padding: 0 0 0 10px;
    font-size: 20px;
  }
}
.section-benefits .benefits-list ul li {
  position: relative;
  padding: 0 0 0 10px;
}
@media (min-width: 1024px) {
  .section-benefits .benefits-list ul li {
    padding: 0 0 0 17px;
    margin: 0 0 5px;
  }
}
.section-benefits .benefits-list ul li:before {
  content: "";
  width: 5px;
  height: 5px;
  display: inline-block;
  vertical-align: top;
  border-radius: 50%;
  border: 1px solid #fff;
  position: absolute;
  left: 0;
  top: 6px;
}
@media (min-width: 1024px) {
  .section-benefits .benefits-list ul li:before {
    top: 13px;
  }
}

.section-three-images .images-list {
  display: flex;
  flex-wrap: wrap;
}
.section-three-images .images-list .img-block {
  aspect-ratio: 640/618;
}
.section-three-images .images-list li {
  width: 33.33%;
}
.section-three-images .images-list img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.section-portfolio {
  padding: 35px 0;
}
@media (min-width: 1200px) {
  .section-portfolio {
    padding: 78px 0;
  }
}
.section-portfolio .container {
  max-width: 1660px;
}
.section-portfolio .decor {
  margin: 0 auto;
  max-width: 170px;
  padding: 40px 0 0;
}
@media (min-width: 1024px) {
  .section-portfolio .decor {
    max-width: 270px;
  }
}
@media (min-width: 1200px) {
  .section-portfolio .decor {
    padding: 113px 0 0;
  }
}
.section-portfolio .text-block {
  text-align: center;
  margin: 0 auto 25px;
  max-width: 1380px;
}
@media (min-width: 1024px) {
  .section-portfolio .text-block {
    margin: 0 0 50px;
  }
}
@media (min-width: 1200px) {
  .section-portfolio .text-block {
    margin: 0 auto 112px;
  }
}
.section-portfolio .text-block h2,
.section-portfolio .text-block .h2 {
  color: #004e6c;
}
@media (min-width: 1200px) {
  .section-portfolio .text-block h2,
  .section-portfolio .text-block .h2 {
    margin: 0 0 63px;
  }
}
@media (min-width: 1200px) {
  .section-portfolio .text-block p {
    padding: 0 30px;
  }
}
.section-portfolio .residential-list {
  margin: 0 0 25px;
}
@media (min-width: 768px) {
  .section-portfolio .residential-list {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
  }
}
@media (min-width: 1024px) {
  .section-portfolio .residential-list {
    gap: 20px;
    margin: 0 0 50px;
  }
}
@media (min-width: 1200px) {
  .section-portfolio .residential-list {
    gap: 56px;
    margin: 0 0 112px;
  }
}
.section-portfolio .residential-list li {
  margin: 0 0 20px;
}
@media (min-width: 768px) {
  .section-portfolio .residential-list li {
    width: calc(33.3333333333% - 10px);
    margin: 0;
  }
}
@media (min-width: 1024px) {
  .section-portfolio .residential-list li {
    width: calc(33.3333333333% - 14px);
  }
}
@media (min-width: 1200px) {
  .section-portfolio .residential-list li {
    width: calc(33.3333333333% - 38px);
  }
}
.section-portfolio .residential-list img {
  width: 100%;
}
.section-portfolio .images-list {
  overflow: hidden;
  margin: -10px;
}
@media (min-width: 1200px) {
  .section-portfolio .images-list {
    margin: -27px;
  }
}
.section-portfolio .images-list .small,
.section-portfolio .images-list .medium {
  width: 100%;
  float: left;
}
@media (min-width: 768px) {
  .section-portfolio .images-list .small,
  .section-portfolio .images-list .medium {
    width: 45%;
  }
}
@media (min-width: 1200px) {
  .section-portfolio .images-list .small,
  .section-portfolio .images-list .medium {
    width: 43%;
  }
}
@media (min-width: 768px) {
  .section-portfolio .images-list .small .img-block {
    aspect-ratio: 665/363;
  }
}
.section-portfolio .images-list .big {
  width: 100%;
  float: right;
}
@media (min-width: 768px) {
  .section-portfolio .images-list .big {
    width: 55%;
  }
}
@media (min-width: 1200px) {
  .section-portfolio .images-list .big {
    width: 57%;
  }
}
@media (min-width: 768px) {
  .section-portfolio .images-list .big .img-block {
    aspect-ratio: 900/831;
  }
}
@media (min-width: 1024px) {
  .section-portfolio .images-list .big .img-block {
    aspect-ratio: 900/826;
  }
}
@media (min-width: 1200px) {
  .section-portfolio .images-list .big .img-block {
    aspect-ratio: 900/780;
  }
}
.section-portfolio .images-list .medium {
  float: right;
}
@media (min-width: 768px) {
  .section-portfolio .images-list .medium .img-block {
    aspect-ratio: 298/345;
  }
}
@media (min-width: 1024px) {
  .section-portfolio .images-list .medium .img-block {
    aspect-ratio: 298/339;
  }
}
@media (min-width: 1200px) {
  .section-portfolio .images-list .medium .img-block {
    aspect-ratio: 665/780;
  }
}
.section-portfolio .images-list li {
  padding: 10px;
}
@media (min-width: 1200px) {
  .section-portfolio .images-list li {
    padding: 27px;
  }
}
.section-portfolio .images-list img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.section-portfolio h5,
.section-portfolio .h5 {
  color: #004e6c;
  margin: 0 0 27px;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJhc2Utd3AvX2hlYWQtd3Auc2NzcyIsInZlbmRvcnMvX25vcm1hbGl6ZS5zY3NzIiwiYmFzZS9fYmFzZS5zY3NzIiwiYWJzdHJhY3RzL192YXJpYWJsZXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9pbmNsdWRlLW1lZGlhL2Rpc3QvX2luY2x1ZGUtbWVkaWEuc2NzcyIsImJhc2UvX2hlbHBlcnMuc2NzcyIsImFic3RyYWN0cy9fbWl4aW5zLnNjc3MiLCJhYnN0cmFjdHMvX2Z1bmN0aW9ucy5zY3NzIiwiYmFzZS9fdHlwb2dyYXBoeS5zY3NzIiwiYmFzZS9fZm9ybXMuc2NzcyIsImJhc2UvX3dlYl9hY2Nlc3NpYmlsaXR5LnNjc3MiLCJiYXNlLXdwL19jbXMtcmVzZXQuc2NzcyIsImJhc2Utd3AvX3dwLXJlc2V0LnNjc3MiLCJsYXlvdXQvX2hlYWRlci5zY3NzIiwibGF5b3V0L19jb21tb24uc2NzcyIsImxheW91dC9fZm9vdGVyLnNjc3MiLCJjb21wb25lbnRzL19idXR0b24uc2NzcyIsImNvbXBvbmVudHMvX3NlY3Rpb24taGVyby5zY3NzIiwiY29tcG9uZW50cy9fc2VjdGlvbi1pbnRyby5zY3NzIiwiY29tcG9uZW50cy9fc2VjdGlvbi1mYXEuc2NzcyIsImNvbXBvbmVudHMvX3NlY3Rpb24tY29ubmVjdGlvbi5zY3NzIiwiY29tcG9uZW50cy9fc2VjdGlvbi1jb250YWN0LnNjc3MiLCJjb21wb25lbnRzL19zZWN0aW9uLXZpc3VhbC5zY3NzIiwiY29tcG9uZW50cy9fc2VjdGlvbi1pbnRyby10ZXh0LnNjc3MiLCJjb21wb25lbnRzL19zZWN0aW9uLXJ1bm5pbmctbGluZS5zY3NzIiwiY29tcG9uZW50cy9fc2VjdGlvbi1pbWFnZS10ZXh0LnNjc3MiLCJjb21wb25lbnRzL19zZWN0aW9uLXByb2Nlc3Muc2NzcyIsImNvbXBvbmVudHMvX3NlY3Rpb24taW5mby5zY3NzIiwiY29tcG9uZW50cy9fc2VjdGlvbi1kZXRhaWwtaW50cm8uc2NzcyIsImNvbXBvbmVudHMvX3NlY3Rpb24tc3RhZ2VzLnNjc3MiLCJjb21wb25lbnRzL19zZWN0aW9uLWltYWdlLXJpZ2h0LnNjc3MiLCJjb21wb25lbnRzL19zZWN0aW9uLWluZm8tY29udGVudC5zY3NzIiwiY29tcG9uZW50cy9fc2VjdGlvbi1iZW5lZml0cy5zY3NzIiwiY29tcG9uZW50cy9fc2VjdGlvbi10aHJlZS1pbWFnZXMuc2NzcyIsImNvbXBvbmVudHMvX3NlY3Rpb24tcG9ydGZvbGlvLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBRUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDSTtBQUNBO0VBQ0E7QUFDQTs7O0FBR0o7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUlBO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDSTtFQUNBOzs7QUFHSjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0FBQ0E7RUFDQTtBQUNBO0VBQ0E7QUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0FBQ0E7RUFDQTtBQUNBOzs7QUFHSjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBSUE7RUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0FBQ0E7RUFDQTtBQUNBO0VBQ0E7QUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtFQUdJO0FBQ0E7RUFDQTtBQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFJQTtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0k7OztBQUdKO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLSTtBQUNBO0VBQ0E7QUFDQTtFQUNBO0FBQ0E7RUFDQTtBQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFFSTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFFSTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtFQUlJOzs7QUFHSjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtFQUlJO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0VBSUk7OztBQUdKO0FBQUE7QUFBQTtBQUlBO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0k7QUFDQTtFQUNBO0FBQ0E7RUFDQTtBQUNBO0VBQ0E7QUFDQTtFQUNBO0FBQ0E7RUFDQTtBQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFJQTtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFJQTtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7RUFFSTtBQUNBO0VBQ0E7QUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7QUFDQTtFQUNBO0FBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUlBO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDSTtBQUNBO0VBQ0E7QUFDQTs7O0FBR0o7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUlBO0VBQ0k7OztBQUdKO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFJQTtFQUNJOzs7QUN6WEo7RUFDSTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7RUFHSTs7O0FBR0o7RUFDSTs7O0FBSUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBWUk7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBbUJJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0FBQUE7RUFFSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7RUFJSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFNQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7OztBQUlSO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSSxPQ25HTztFRG9HUCxZQzlHSTtFRCtHSjtFQUNBLFdDZGE7RURlYjtFQUNBO0VBQ0E7O0FFcWJBO0VGNWJKO0lBVVEsV0N2QmU7SUR3QmYsYUN2QmlCOzs7O0FENEJ6QjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUdqSko7QUFBQTtFQUNJO0VBQ0E7RUFDQTs7O0FBS0E7QUFBQTtBQUFBO0VBQ0k7RUFDQTtFQUNBOzs7QUFzRFI7RUFDSTtBQUNBO0VBQ0E7QUFDQTtFQUNBOzs7QUFHSjtFQUlJO0VBQ0E7RUFDQTs7QUQ2ZEE7RUVyT0k7SUFFUTs7O0FGbU9aO0VFL05JO0lBRVE7OztBRjZOWjtFRXJPSTtJQUVROzs7QUZtT1o7RUUvTkk7SUFFUTs7O0FGNk5aO0VFck9JO0lBRVE7OztBRm1PWjtFRS9OSTtJQUVROzs7QUY2Tlo7RUVqTlE7SUFFUTtJQUNBOzs7QUY4TWhCO0VFak5RO0lBRVE7SUFDQTs7O0FGOE1oQjtFRWpOUTtJQUVRO0lBQ0E7OztBRjhNaEI7RUVqTlE7SUFFUTtJQUNBOzs7QUY4TWhCO0VFak5RO0lBRVE7SUFDQTs7O0FGOE1oQjtFRWpOUTtJQUVRO0lBQ0E7OztBRjhNaEI7RUVqTlE7SUFFUTtJQUNBOzs7QUY4TWhCO0VFak5RO0lBRVE7SUFDQTs7O0FGOE1oQjtFRWpOUTtJQUVRO0lBQ0E7OztBRjhNaEI7RUVqTlE7SUFFUTtJQUNBOzs7QUY4TWhCO0VFak5RO0lBRVE7SUFDQTs7O0FGOE1oQjtFRWpOUTtJQUVRO0lBQ0E7OztBRjhNaEI7RUV4TVE7SUFFUTs7O0FGc01oQjtFRXhNUTtJQUVROzs7QUZzTWhCO0VFeE1RO0lBRVE7OztBRnNNaEI7RUV4TVE7SUFFUTs7O0FGc01oQjtFRXhNUTtJQUVROzs7QUZzTWhCO0VFeE1RO0lBRVE7OztBRnNNaEI7RUV4TVE7SUFFUTs7O0FGc01oQjtFRXhNUTtJQUVROzs7QUZzTWhCO0VFeE1RO0lBRVE7OztBRnNNaEI7RUV4TVE7SUFFUTs7O0FGc01oQjtFRXhNUTtJQUVROzs7QUZzTWhCO0VFeE1RO0lBRVE7OztBRnNNaEI7RUVqTlE7SUFFUTtJQUNBOzs7QUY4TWhCO0VFak5RO0lBRVE7SUFDQTs7O0FGOE1oQjtFRWpOUTtJQUVRO0lBQ0E7OztBRjhNaEI7RUVqTlE7SUFFUTtJQUNBOzs7QUY4TWhCO0VFak5RO0lBRVE7SUFDQTs7O0FGOE1oQjtFRWpOUTtJQUVRO0lBQ0E7OztBRjhNaEI7RUVqTlE7SUFFUTtJQUNBOzs7QUY4TWhCO0VFak5RO0lBRVE7SUFDQTs7O0FGOE1oQjtFRWpOUTtJQUVRO0lBQ0E7OztBRjhNaEI7RUVqTlE7SUFFUTtJQUNBOzs7QUY4TWhCO0VFak5RO0lBRVE7SUFDQTs7O0FGOE1oQjtFRWpOUTtJQUVRO0lBQ0E7OztBRjhNaEI7RUV4TVE7SUFFUTs7O0FGc01oQjtFRXhNUTtJQUVROzs7QUZzTWhCO0VFeE1RO0lBRVE7OztBRnNNaEI7RUV4TVE7SUFFUTs7O0FGc01oQjtFRXhNUTtJQUVROzs7QUZzTWhCO0VFeE1RO0lBRVE7OztBRnNNaEI7RUV4TVE7SUFFUTs7O0FGc01oQjtFRXhNUTtJQUVROzs7QUZzTWhCO0VFeE1RO0lBRVE7OztBRnNNaEI7RUV4TVE7SUFFUTs7O0FGc01oQjtFRXhNUTtJQUVR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WDs7O0FZbUJPO0VBQ0k7O0FBS1o7RUFDSSxPWjlESjs7QVlnRUk7RUFDSSxPWjdCUDs7QVlrQ0w7RUFDSTs7QVhpZUo7RVdsZUE7SUFJUTs7O0FYOGRSO0VXbGVBO0lBUVE7OztBQUlSO0VBQ0k7O0FYcWRKO0VXdGRBO0lBSVE7SUFDQTtJQUNBO0lBQ0E7OztBQUlSO0VBQ0ksWVoxRkc7O0FDb2lCUDtFV3ZjQTtJQUVROzs7QVhxY1I7RVd2Y0E7SUFNUTs7O0FYaWNSO0VXN2JBO0lBRVE7OztBQUdKO0VBQ0k7RUFDQTs7QVhzYlI7RVduYkk7SUFFUTtJQUNBOzs7QVhnYlo7RVc1YUk7SUFFUTtJQUNBOzs7QUFNSTtFQUNJLE9abEdmOztBWXNHTztFQUNJLE9aN0diOztBWStHYTtFQUNJLE9aMUdmOzs7QVlrSFQ7RUFFSTtFQUNBOztBQUdJO0VUd0ZKLFlBSFc7O0FTN0VDO0VBQ0ksTVpqSVg7OztBYXRDVDtFQUNJO0VBQ0EsU2JvTFU7RWFuTFYsV2JzTFk7RWFyTFo7RUFDQSxhYnVMYztFYXRMZDtFQUNBO0VBQ0E7RUFDQSxhYndISztFYXJIRDtFQUNBO0VBQ0EsY2JvS1c7RWFuS1gsZWJvS1k7O0FDdVhoQjtFWTFpQko7SUFtQlE7SUFDQTs7O0FBR0o7RUFDSSxPYlpHO0VhYUgsWWJhQztFYVpELGNiWUM7O0FhVkQ7RUFDSSxPYlNIO0VhUkcsWWJFTDtFYURLLGNiT0g7O0FhSEw7RUFDSSxPYnhCRztFYXlCSCxZYkNDO0VhQUQ7O0FBRUE7RUFDSSxPYnZDSjtFYXdDSSxZYlZMO0VhV0ssY2JYTDs7QWFlSDtFQUNJLE9iOUNBO0VhK0NBLFlieENHO0VheUNILGNiekNHOztBYTJDSDtFQUNJLE9ibkRKO0Vhb0RJLFlibUtxQjtFYWxLckIsY2I5Q0Q7O0Fha0RQO0VBQ0ksU2IySFM7RWExSFQsV2I2SFc7RWE1SFgsYWIrSGE7RWE5SGIsZWJxSGU7O0FhbEhuQjtFQUNJLFNicUhTO0VhcEhULFdidUhXO0VhdEhYLGFieUhhO0VheEhiLGViK0dlOzs7QWEzR3ZCO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VB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O0lBS1E7SUFDQTtJQUNBOzs7QTlCZ2ZSO0U4QnZmQTtJQVdRO0lBQ0E7OztBOUIyZVI7RThCdmZBO0lBZ0JRO0lBQ0E7OztBQUdKO0VBQ0k7O0E5QmtlUjtFOEJuZUk7SUFJUTtJQUNBOzs7QTlCOGRaO0U4Qm5lSTtJQVNROzs7QTlCMGRaO0U4Qm5lSTtJQWFROzs7QUFJUjtFQUNJOztBQUlSO0VBRUk7RUFDQTs7QTlCMGNKO0U4QjdjQTtJQU1ROzs7QUFHSjtBQUFBO0VBRUk7RUFDQTs7QTlCaWNSO0U4QnBjSTtBQUFBO0lBTVE7OztBOUI4Ylo7RThCcGNJO0FBQUE7SUFVUTs7O0E5QjBiWjtFOEJyYlE7SUFFUTs7O0FBS1o7RUFDSTtFQUNBOztBOUI0YVI7RThCOWFJO0lBS1E7OztBOUJ5YVo7RThCOWFJO0lBU1E7OztBOUJxYVo7RThCbGFRO0lBRVE7OztBOUJnYWhCO0U4QmxhUTtJQU1ROzs7QTlCNFpoQjtFOEJsYVE7SUFVUTs7O0FBS1o7RUFDSTs7QTlCa1pSO0U4QmhaUTtJQUVROzs7QTlCOFloQjtFOEJoWlE7SUFNUTs7O0E5QjBZaEI7RThCaFpRO0lBVVE7OztBQUtaO0VBQ0k7O0E5QmdZUjtFOEJqWUk7SUFJUTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7O0FBSVI7QUFBQTtFQUVJLE8vQjFKRDtFK0IySkMiLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyohXHJcblRoZW1lIE5hbWU6IElydmluZ1xyXG5BdXRob3I6IEFub255bW91c1xyXG5BdXRob3IgVVJJOlxyXG5WZXJzaW9uOiAxXHJcbkRlc2NyaXB0aW9uOiBJcnZpbmcgdGhlbWUgZm9yIFdvcmRwcmVzc1xyXG5MaWNlbnNlOiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MiBvciBsYXRlclxyXG5MaWNlbnNlIFVSSTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0yLjAuaHRtbFxyXG5UZXh0IERvbWFpbjogaXJ2aW5nXHJcblRhZ3M6IG9uZS1jb2x1bW4sIHR3by1jb2x1bW5zXHJcblRoZW1lIFVSSTpcclxuKi8iLCIvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXHJcblxyXG4vKiBEb2N1bWVudFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cclxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXHJcbiAqL1xyXG5cclxuaHRtbCB7XHJcbiAgICBsaW5lLWhlaWdodDogMS4xNTtcclxuICAgIC8qIDEgKi9cclxuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcclxuICAgIC8qIDIgKi9cclxufVxyXG5cclxuLyogU2VjdGlvbnNcclxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAgICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAqL1xyXG5cclxuYm9keSB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gICAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxyXG4gICAqL1xyXG5cclxubWFpbiB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLyoqXHJcbiAgICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxyXG4gICAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXHJcbiAgICovXHJcblxyXG5oMSB7XHJcbiAgICBmb250LXNpemU6IDJlbTtcclxuICAgIG1hcmdpbjogMC42N2VtIDA7XHJcbn1cclxuXHJcbi8qIEdyb3VwaW5nIGNvbnRlbnRcclxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cclxuICAgKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cclxuICAgKi9cclxuXHJcbmhyIHtcclxuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG4gICAgLyogMSAqL1xyXG4gICAgaGVpZ2h0OiAwO1xyXG4gICAgLyogMSAqL1xyXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbiAgICAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAqL1xyXG5cclxucHJlIHtcclxuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcclxuICAgIC8qIDEgKi9cclxuICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgLyogMiAqL1xyXG59XHJcblxyXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICAgKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXHJcbiAgICovXHJcblxyXG5hIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG59XHJcblxyXG4vKipcclxuICAgKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxyXG4gICAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXHJcbiAgICovXHJcblxyXG5hYmJyW3RpdGxlXSB7XHJcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgLyogMSAqL1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAvKiAyICovXHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XHJcbiAgICAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXHJcbiAgICovXHJcblxyXG5iLFxyXG5zdHJvbmcge1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcclxufVxyXG5cclxuLyoqXHJcbiAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cclxuICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAgICovXHJcblxyXG5jb2RlLFxyXG5rYmQsXHJcbnNhbXAge1xyXG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xyXG4gICAgLyogMSAqL1xyXG4gICAgZm9udC1zaXplOiAxZW07XHJcbiAgICAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAqL1xyXG5cclxuc21hbGwge1xyXG4gICAgZm9udC1zaXplOiA4MCU7XHJcbn1cclxuXHJcbi8qKlxyXG4gICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxyXG4gICAqIGFsbCBicm93c2Vycy5cclxuICAgKi9cclxuXHJcbnN1Yixcclxuc3VwIHtcclxuICAgIGZvbnQtc2l6ZTogNzUlO1xyXG4gICAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbn1cclxuXHJcbnN1YiB7XHJcbiAgICBib3R0b206IC0wLjI1ZW07XHJcbn1cclxuXHJcbnN1cCB7XHJcbiAgICB0b3A6IC0wLjVlbTtcclxufVxyXG5cclxuLyogRW1iZWRkZWQgY29udGVudFxyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICAgKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxyXG4gICAqL1xyXG5cclxuaW1nIHtcclxuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcclxufVxyXG5cclxuLyogRm9ybXNcclxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAgICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAgICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxyXG4gICAqL1xyXG5cclxuYnV0dG9uLFxyXG5pbnB1dCxcclxub3B0Z3JvdXAsXHJcbnNlbGVjdCxcclxudGV4dGFyZWEge1xyXG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XHJcbiAgICAvKiAxICovXHJcbiAgICBmb250LXNpemU6IDEwMCU7XHJcbiAgICAvKiAxICovXHJcbiAgICBsaW5lLWhlaWdodDogMS4xNTtcclxuICAgIC8qIDEgKi9cclxuICAgIG1hcmdpbjogMDtcclxuICAgIC8qIDIgKi9cclxufVxyXG5cclxuLyoqXHJcbiAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXHJcbiAgICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cclxuICAgKi9cclxuXHJcbmJ1dHRvbixcclxuaW5wdXQge1xyXG4gICAgLyogMSAqL1xyXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gICAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxyXG4gICAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cclxuICAgKi9cclxuXHJcbmJ1dHRvbixcclxuc2VsZWN0IHtcclxuICAgIC8qIDEgKi9cclxuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG59XHJcblxyXG4vKipcclxuICAgKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxyXG4gICAqL1xyXG5cclxuYnV0dG9uLFxyXG5bdHlwZT1cImJ1dHRvblwiXSxcclxuW3R5cGU9XCJyZXNldFwiXSxcclxuW3R5cGU9XCJzdWJtaXRcIl0ge1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XHJcbn1cclxuXHJcbi8qKlxyXG4gICAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXHJcbiAgICovXHJcblxyXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXHJcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxyXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxyXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XHJcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4vKipcclxuICAgKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXHJcbiAgICovXHJcblxyXG5idXR0b246LW1vei1mb2N1c3JpbmcsXHJcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxyXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxyXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XHJcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gICAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cclxuICAgKi9cclxuXHJcbmZpZWxkc2V0IHtcclxuICAgIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcclxufVxyXG5cclxuLyoqXHJcbiAgICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cclxuICAgKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXHJcbiAgICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxyXG4gICAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAqL1xyXG5cclxubGVnZW5kIHtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAvKiAxICovXHJcbiAgICBjb2xvcjogaW5oZXJpdDtcclxuICAgIC8qIDIgKi9cclxuICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4gICAgLyogMSAqL1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgLyogMSAqL1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIC8qIDMgKi9cclxuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XHJcbiAgICAvKiAxICovXHJcbn1cclxuXHJcbi8qKlxyXG4gICAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXHJcbiAgICovXHJcblxyXG5wcm9ncmVzcyB7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbn1cclxuXHJcbi8qKlxyXG4gICAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxyXG4gICAqL1xyXG5cclxudGV4dGFyZWEge1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcbn1cclxuXHJcbi8qKlxyXG4gICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxyXG4gICAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cclxuICAgKi9cclxuXHJcblt0eXBlPVwiY2hlY2tib3hcIl0sXHJcblt0eXBlPVwicmFkaW9cIl0ge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIC8qIDEgKi9cclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gICAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cclxuICAgKi9cclxuXHJcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxyXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbn1cclxuXHJcbi8qKlxyXG4gICAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxyXG4gICAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxyXG4gICAqL1xyXG5cclxuW3R5cGU9XCJzZWFyY2hcIl0ge1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XHJcbiAgICAvKiAxICovXHJcbiAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcclxuICAgIC8qIDIgKi9cclxufVxyXG5cclxuLyoqXHJcbiAgICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxyXG4gICAqL1xyXG5cclxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG59XHJcblxyXG4vKipcclxuICAgKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxyXG4gICAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cclxuICAgKi9cclxuXHJcbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XHJcbiAgICAvKiAxICovXHJcbiAgICBmb250OiBpbmhlcml0O1xyXG4gICAgLyogMiAqL1xyXG59XHJcblxyXG4vKiBJbnRlcmFjdGl2ZVxyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXHJcbiAgICovXHJcblxyXG5kZXRhaWxzIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4vKlxyXG4gICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cclxuICAgKi9cclxuXHJcbnN1bW1hcnkge1xyXG4gICAgZGlzcGxheTogbGlzdC1pdGVtO1xyXG59XHJcblxyXG4vKiBNaXNjXHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cclxuICAgKi9cclxuXHJcbnRlbXBsYXRlIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi8qKlxyXG4gICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxyXG4gICAqL1xyXG5cclxuW2hpZGRlbl0ge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxufSIsImh0bWwge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcclxufVxyXG5cclxuKixcclxuKjpiZWZvcmUsXHJcbio6YWZ0ZXIge1xyXG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcclxufVxyXG5cclxuKiB7XHJcbiAgICBtYXgtaGVpZ2h0OiAxMDAwMDAwcHg7XHJcbn1cclxuXHJcbi8vLSBIVE1MNSBkaXNwbGF5LXJvbGUgcmVzZXQgZm9yIG9sZGVyIGJyb3dzZXJzXHJcbm1haW4sXHJcbmFydGljbGUsXHJcbmFzaWRlLFxyXG5kZXRhaWxzLFxyXG5maWdjYXB0aW9uLFxyXG5maWd1cmUsXHJcbmZvb3RlcixcclxuaGVhZGVyLFxyXG5oZ3JvdXAsXHJcbm1lbnUsXHJcbm5hdixcclxuc2VjdGlvbiB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxudWwsXHJcbm9sLFxyXG5kbCxcclxucCxcclxuaDEsXHJcbmgyLFxyXG5oMyxcclxuaDQsXHJcbmg1LFxyXG5oNixcclxuYWRkcmVzcyxcclxuZm9ybSxcclxudGFibGUsXHJcbmJsb2NrcXVvdGUsXHJcbmFwcGxldCxcclxuZW1iZWQsXHJcbm9iamVjdCxcclxuaWZyYW1lLFxyXG5mcmFtZXNldCB7XHJcbiAgICBtYXJnaW46IDAgMCAkdmVydGljYWwtcmh5dGhtO1xyXG59XHJcblxyXG5ibG9ja3F1b3RlIHtcclxuICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgJGdyYXk7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBtYXJnaW4tbGVmdDogMDtcclxufVxyXG5cclxudGFibGUge1xyXG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcclxufVxyXG5cclxudGgsXHJcbnRkIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmF5O1xyXG4gICAgcGFkZGluZzogM3B4O1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbn1cclxuXHJcbnRoIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbn1cclxuXHJcbnVsLFxyXG5vbCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XHJcbn1cclxuXHJcbnVsIHVsLFxyXG51bCBvbCxcclxub2wgdWwsXHJcbm9sIG9sIHtcclxuICAgIHBhZGRpbmctbGVmdDogMjBweDtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxudWwge1xyXG4gICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xyXG59XHJcblxyXG5kbCB7XHJcbiAgICBAZXh0ZW5kICVjbGVhcmZpeDtcclxuXHJcbiAgICBkdCB7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgY2xlYXI6IGxlZnQ7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC4zZW07XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgZGQge1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB9XHJcbn1cclxuXHJcbnByZSB7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICBvdmVyZmxvdzogYXV0bztcclxufVxyXG5cclxuYm9keSB7XHJcbiAgICBjb2xvcjogJGJhc2UtdGV4dC1jb2xvcjtcclxuICAgIGJhY2tncm91bmQ6ICRiYXNlLWJhY2tncm91bmQtYm9keTtcclxuICAgIGZvbnQ6ICN7JGZvbnQtc2l6ZS1iYXNlfS8jeyRsaW5lLWhlaWdodC1iYXNlfSAkYmFzZS1mb250LWZhbWlseTtcclxuICAgIG1pbi13aWR0aDogJGJhc2UtbWluLXdpZHRoO1xyXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2UtbGFyZ2U7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlLWxhcmdlO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyBhZGFwdGl2ZSBpbWFnZXNcclxuaW1nIHtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbi8vIGdvb2dsZSBtYXAgZml4XHJcbi5nbS1zdHlsZSBpbWcge1xyXG4gICAgbWF4LXdpZHRoOiBub25lO1xyXG59XHJcblxyXG5pZnJhbWUge1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ucmVzaXplLWFjdGl2ZSAqIHtcclxuICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcclxufSIsIi8vIENvbG9yc1xyXG4vLyBDb2xvciBjYWxjdWxhdG9yIC0gaHR0cDovL3Jhem9yamFtLmdpdGh1Yi5pby9zYXNzY29sb3VyZnVuY3Rpb25jYWxjdWxhdG9yL1xyXG4vLyBDb2xvciBuYW1lcyAtIGh0dHA6Ly9uYW1lLW9mLWNvbG9yLmNvbS9cclxuLy8gQ29sb3Igc3lzdGVtXHJcblxyXG4kd2hpdGU6ICNmZmYgIWRlZmF1bHQ7XHJcbiRncmF5OiAjZGRkICFkZWZhdWx0O1xyXG4kZ3JheS0xMDA6ICNmOGY5ZmEgIWRlZmF1bHQ7XHJcbiRncmF5LTIwMDogI2U5ZWNlZiAhZGVmYXVsdDtcclxuJGdyYXktMzAwOiAjRjRGNEY0O1xyXG4kZ3JheS00MDA6ICNFMEUwRTA7XHJcbiRncmF5LTUwMDogI2FkYjViZCAhZGVmYXVsdDtcclxuJGdyYXktNjAwOiAjNmM3NTdkICFkZWZhdWx0O1xyXG4kZ3JheS03MDA6ICM0OTUwNTcgIWRlZmF1bHQ7XHJcbiRncmF5LTgwMDogIzM0M2E0MCAhZGVmYXVsdDtcclxuJGdyYXktOTAwOiAjMDUwNzA4O1xyXG4kYmxhY2s6ICMwMDAgIWRlZmF1bHQ7XHJcblxyXG4keWVsbG93LWRhcms6ICNFMDk4MTk7XHJcblxyXG4kZ3JheXM6IChcclxuICAgICkgIWRlZmF1bHQ7XHJcbi8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1kZWZhdWx0XHJcbiRncmF5czogbWFwLW1lcmdlKChcIjEwMFwiOiAkZ3JheS0xMDAsXHJcbiAgICAgICAgICAgIFwiMjAwXCI6ICRncmF5LTIwMCxcclxuICAgICAgICAgICAgXCIzMDBcIjogJGdyYXktMzAwLFxyXG4gICAgICAgICAgICBcIjQwMFwiOiAkZ3JheS00MDAsXHJcbiAgICAgICAgICAgIFwiNTAwXCI6ICRncmF5LTUwMCxcclxuICAgICAgICAgICAgXCI2MDBcIjogJGdyYXktNjAwLFxyXG4gICAgICAgICAgICBcIjcwMFwiOiAkZ3JheS03MDAsXHJcbiAgICAgICAgICAgIFwiODAwXCI6ICRncmF5LTgwMCxcclxuICAgICAgICAgICAgXCI5MDBcIjogJGdyYXktOTAwICksXHJcbiAgICAgICAgJGdyYXlzXHJcbik7XHJcblxyXG4kYmx1ZTogIzAwNGU2YztcclxuJGluZGlnbzogIzY2MTBmMiAhZGVmYXVsdDtcclxuJHB1cnBsZTogIzZmNDJjMSAhZGVmYXVsdDtcclxuJHBpbms6ICNlODNlOGMgIWRlZmF1bHQ7XHJcbiRyZWQ6ICNkYzM1NDUgIWRlZmF1bHQ7XHJcbiRvcmFuZ2U6ICNmZDdlMTQgIWRlZmF1bHQ7XHJcbiR5ZWxsb3c6ICNmN2IwMTk7XHJcbiRncmVlbjogIzI4YTc0NSAhZGVmYXVsdDtcclxuJHRlYWw6ICMyMGM5OTcgIWRlZmF1bHQ7XHJcbiRjeWFuOiAjMTdhMmI4ICFkZWZhdWx0O1xyXG5cclxuJGNvbG9yczogKFxyXG4gICAgKSAhZGVmYXVsdDtcclxuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHRcclxuJGNvbG9yczogbWFwLW1lcmdlKChcImJsdWVcIjogJGJsdWUsXHJcbiAgICAgICAgICAgIFwiaW5kaWdvXCI6ICRpbmRpZ28sXHJcbiAgICAgICAgICAgIFwicHVycGxlXCI6ICRwdXJwbGUsXHJcbiAgICAgICAgICAgIFwicGlua1wiOiAkcGluayxcclxuICAgICAgICAgICAgXCJyZWRcIjogJHJlZCxcclxuICAgICAgICAgICAgXCJvcmFuZ2VcIjogJG9yYW5nZSxcclxuICAgICAgICAgICAgXCJ5ZWxsb3dcIjogJHllbGxvdyxcclxuICAgICAgICAgICAgXCJncmVlblwiOiAkZ3JlZW4sXHJcbiAgICAgICAgICAgIFwidGVhbFwiOiAkdGVhbCxcclxuICAgICAgICAgICAgXCJjeWFuXCI6ICRjeWFuLFxyXG4gICAgICAgICAgICBcIndoaXRlXCI6ICR3aGl0ZSxcclxuICAgICAgICAgICAgXCJncmF5XCI6ICRncmF5LTYwMCxcclxuICAgICAgICAgICAgXCJncmF5LWRhcmtcIjogJGdyYXktODAwICksXHJcbiAgICAgICAgJGNvbG9yc1xyXG4pO1xyXG5cclxuJHByaW1hcnk6ICR5ZWxsb3c7XHJcbiRzZWNvbmRhcnk6ICRncmF5LTYwMCAhZGVmYXVsdDtcclxuJHN1Y2Nlc3M6ICRncmVlbiAhZGVmYXVsdDtcclxuJGluZm86ICRjeWFuICFkZWZhdWx0O1xyXG4kd2FybmluZzogJHllbGxvdyAhZGVmYXVsdDtcclxuJGRhbmdlcjogJHJlZCAhZGVmYXVsdDtcclxuJGxpZ2h0OiAkZ3JheS0xMDAgIWRlZmF1bHQ7XHJcbiRkYXJrOiAkZ3JheS04MDAgIWRlZmF1bHQ7XHJcblxyXG4kdGhlbWUtY29sb3JzOiAoXHJcbiAgICApICFkZWZhdWx0O1xyXG4vLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtZGVmYXVsdFxyXG4kdGhlbWUtY29sb3JzOiBtYXAtbWVyZ2UoKFwicHJpbWFyeVwiOiAkcHJpbWFyeSxcclxuICAgICAgICAgICAgXCJzZWNvbmRhcnlcIjogJHNlY29uZGFyeSxcclxuICAgICAgICAgICAgXCJzdWNjZXNzXCI6ICRzdWNjZXNzLFxyXG4gICAgICAgICAgICBcImluZm9cIjogJGluZm8sXHJcbiAgICAgICAgICAgIFwid2FybmluZ1wiOiAkd2FybmluZyxcclxuICAgICAgICAgICAgXCJkYW5nZXJcIjogJGRhbmdlcixcclxuICAgICAgICAgICAgXCJsaWdodFwiOiAkbGlnaHQsXHJcbiAgICAgICAgICAgIFwiZGFya1wiOiAkZGFyayApLFxyXG4gICAgICAgICR0aGVtZS1jb2xvcnNcclxuKTtcclxuXHJcbi8vIGZvbnRzIG5hbWVcclxuJGJhc2UtZm9udC1zYW5zLXNlcmlmOiAnTW9udHNlcnJhdCcsICdBcmlhbCcsICdIZWx2ZXRpY2EgTmV1ZScsICdIZWx2ZXRpY2EnLCBzYW5zLXNlcmlmO1xyXG4kYmFzZS1mb250LXNlcmlmOiAnVGltZXMgTmV3IFJvbWFuJywgJ1RpbWVzJywgJ0Jhc2tlcnZpbGxlJywgJ0dlb3JnaWEnLCBzZXJpZjtcclxuXHJcbiRiYXNlLWZvbnQ6ICRiYXNlLWZvbnQtc2Fucy1zZXJpZjtcclxuXHJcbi8vIEJvZHlcclxuJGJhc2UtdGV4dC1jb2xvcjogJGdyYXktOTAwO1xyXG4kYmFzZS1iYWNrZ3JvdW5kLWJvZHk6ICR3aGl0ZSAhZGVmYXVsdDtcclxuJGJhc2UtYmFja2dyb3VuZC1mb290ZXI6ICRibHVlO1xyXG4kZm9udC1zaXplLWJhc2U6IDE2cHggIWRlZmF1bHQ7XHJcbiRsaW5lLWhlaWdodC1iYXNlOiAxLjIgIWRlZmF1bHQ7XHJcbiRmb250LXNpemUtYmFzZS1sYXJnZTogMjRweDtcclxuJGxpbmUtaGVpZ2h0LWJhc2UtbGFyZ2U6IGNhbGMoMzQgLyAyNCk7XHJcbiRiYXNlLWZvbnQtZmFtaWx5OiAkYmFzZS1mb250ICFkZWZhdWx0O1xyXG4kYmFzZS1taW4td2lkdGg6IDMyMHB4O1xyXG5cclxuLy8gYmFzZSB2YXJpYWJsZXNcclxuJGJhc2UtcmFkaXVzOiAwO1xyXG4kYmFzZS1yYWRpdXMtc21hbGw6IDA7XHJcblxyXG4vLyBjb250YWluZXIgc2V0dGluZ3NcclxuJG1heC13aWR0aC1jZW50ZXItY29udGFpbmVyOiAxNjc1cHg7XHJcbiRndXR0ZXI6IDE1cHg7XHJcbiRwYWRkaW5nLWNvbnRhaW5lcjogMCAkZ3V0dGVyO1xyXG5cclxuJHVuaXQtaW50ZXJ2YWxzOiAoXHJcbiAgICAncHgnOiAwLjAyLFxyXG4gICAgJ2VtJzogMC4wMSxcclxuICAgICdyZW0nOiAwLjEsXHJcbiAgICAnJzogMFxyXG4pO1xyXG5cclxuLy8gZ3JpZCBzaXN0ZW1cclxuJGdyaWQ6IChcclxuICAgIHBoOiAncGhvbmUnLFxyXG4gICAgc206ICd0YWJsZXQnLFxyXG4gICAgbWQ6ICdkZXNrdG9wJ1xyXG4pO1xyXG5cclxuLy8gZm9udCB3ZWlnaHRcclxuJHRoaW46IDEwMDtcclxuJGxpZ2h0LWZvbnQ6IDMwMDtcclxuJG5vcm1hbDogNDAwO1xyXG4kbWVkaXVtOiA1MDA7XHJcbiRzZW1pYm9sZDogNjAwO1xyXG4kYm9sZDogNzAwO1xyXG4kZXh0cmE6IDgwMDtcclxuJGJsYWNrLWZvbnQ6IDkwMDtcclxuXHJcbi8vIGRlZmF1bHQgbWFyZ2luc1xyXG4kdmVydGljYWwtcmh5dGhtOiAkZm9udC1zaXplLWJhc2UgKyA0O1xyXG4kd2lkZ2V0LW1hcmdpbjogMjBweDtcclxuXHJcbi8vIExpa3NcclxuJGJhc2UtbGluay1jb2xvcjogJGJsdWU7XHJcbiRiYXNlLWxpbmstaG92ZXItY29sb3I6ICRibGFjaztcclxuJHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuJHRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZTtcclxuXHJcbi8vIEhlYWRlcnMgc2l6ZVxyXG4kdGl0bGUtcGFsZXR0ZTogKFxyXG4gICAgbW9iaWxlOiAoJ2gxJzogNDAsXHJcbiAgICAgICAgJ2gyJzogMzQsXHJcbiAgICAgICAgJ2gzJzogMjgsXHJcbiAgICAgICAgJ2g0JzogMjQsXHJcbiAgICAgICAgJ2g1JzogMTgsXHJcbiAgICAgICAgJ2g2JzogMTQpLFxyXG4gICAgdGFibGV0OiAoJ2gxJzogNTAsXHJcbiAgICAgICAgJ2gyJzogMzYsXHJcbiAgICAgICAgJ2gzJzogMzIsXHJcbiAgICAgICAgJ2g0JzogMjQsXHJcbiAgICAgICAgJ2g1JzogMjIsXHJcbiAgICAgICAgJ2g2JzogMTYpLFxyXG4gICAgZGVza3RvcDogKCdoMSc6IDYwLFxyXG4gICAgICAgICdoMic6IDUwLFxyXG4gICAgICAgICdoMyc6IDQwLFxyXG4gICAgICAgICdoNCc6IDMwLFxyXG4gICAgICAgICdoNSc6IDI2LFxyXG4gICAgICAgICdoNic6IDE2KSxcclxuICAgIHdpZGVzY3JlZW46ICgnaDEnOiA5OCxcclxuICAgICAgICAnaDInOiA4MCxcclxuICAgICAgICAnaDMnOiA1MCxcclxuICAgICAgICAnaDQnOiA0MCxcclxuICAgICAgICAnaDUnOiAzMCxcclxuICAgICAgICAnaDYnOiAxNilcclxuKTtcclxuXHJcbi8vIGhlYWRpbmdzIHN0eWxlXHJcbiRoZWFkaW5ncy1mb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XHJcbiRoZWFkaW5ncy1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcclxuXHJcbi8vIEJ1dHRvbnNcclxuJGJ0bi1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcclxuJGJ0bi1ib3JkZXItcmFkaXVzOiAwO1xyXG4kYnRuLWJvcmRlci1yYWRpdXMtc206IGNhbGMoJGJ0bi1ib3JkZXItcmFkaXVzIC8gMikgIWRlZmF1bHQ7XHJcbiRidG4tYm9yZGVyLXJhZGl1cy1sZzogY2FsYygkYnRuLWJvcmRlci1yYWRpdXMgKiAyKSAhZGVmYXVsdDtcclxuJGJ0bi1wYWRkaW5nOiAyMHB4IDIwcHg7XHJcbiRidG4tcGFkZGluZy1zbTogNXB4IDEwcHggIWRlZmF1bHQ7XHJcbiRidG4tcGFkZGluZy1sZzogMjBweCA0MHB4ICFkZWZhdWx0O1xyXG4kYnRuLWZvbnQtc2l6ZTogMTZweDtcclxuJGJ0bi1mb250LXNpemUtc206IDEycHggIWRlZmF1bHQ7XHJcbiRidG4tZm9udC1zaXplLWxnOiAxOHB4ICFkZWZhdWx0O1xyXG4kYnRuLWxpbmUtaGVpZ2h0OiAkYnRuLWZvbnQtc2l6ZSArIDI7XHJcbiRidG4tbGluZS1oZWlnaHQtc206ICRidG4tZm9udC1zaXplLXNtICsgMjtcclxuJGJ0bi1saW5lLWhlaWdodC1sZzogJGJ0bi1mb250LXNpemUtbGcgKyAyO1xyXG5cclxuLy8gYnRuIGRlZmF1bHRcclxuJGJ0bi1jb2xvci1kZWZhdWx0OiAkZ3JheS05MDA7XHJcbiRidG4tYmFja2dyb3VuZC1kZWZhdWx0OiAkeWVsbG93O1xyXG4kYnRuLWJvcmRlci1jb2xvci1kZWZhdWx0OiAkYnRuLWJhY2tncm91bmQtZGVmYXVsdCAhZGVmYXVsdDtcclxuXHJcbi8vIGhvdmVyXHJcbiRidG4taG92ZXItY29sb3ItZGVmYXVsdDogJHllbGxvdztcclxuJGJ0bi1ob3Zlci1iYWNrZ3JvdW5kLWRlZmF1bHQ6ICRibHVlO1xyXG4kYnRuLWhvdmVyLWJvcmRlci1jb2xvci1kZWZhdWx0OiAkYnRuLWJhY2tncm91bmQtZGVmYXVsdCAhZGVmYXVsdDtcclxuXHJcbi8vIGJ0biBwcmltYXJ5XHJcbiRidG4tY29sb3ItcHJpbWFyeTogJGdyYXktOTAwO1xyXG4kYnRuLWJhY2tncm91bmQtcHJpbWFyeTogJHByaW1hcnkgIWRlZmF1bHQ7XHJcbiRidG4tYm9yZGVyLWNvbG9yLXByaW1hcnk6ICRwcmltYXJ5ICFkZWZhdWx0O1xyXG4vLyBob3ZlclxyXG4kYnRuLWhvdmVyLWNvbG9yLXByaW1hcnk6ICR3aGl0ZSAhZGVmYXVsdDtcclxuJGJ0bi1ob3Zlci1iYWNrZ3JvdW5kLXByaW1hcnk6ICRibHVlO1xyXG4kYnRuLWhvdmVyLWJvcmRlci1jb2xvci1wcmltYXJ5OiAkYmx1ZTtcclxuXHJcbi8vIGJ0biBzZWNvbmRhcnlcclxuJGJ0bi1jb2xvci1zZWNvbmRhcnk6ICR3aGl0ZSAhZGVmYXVsdDtcclxuJGJ0bi1iYWNrZ3JvdW5kLXNlY29uZGFyeTogJHNlY29uZGFyeSAhZGVmYXVsdDtcclxuJGJ0bi1ib3JkZXItY29sb3Itc2Vjb25kYXJ5OiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xyXG4vLyBob3ZlclxyXG4kYnRuLWhvdmVyLWNvbG9yLXNlY29uZGFyeTogJHdoaXRlICFkZWZhdWx0O1xyXG4kYnRuLWhvdmVyLWJhY2tncm91bmQtc2Vjb25kYXJ5OiBkYXJrZW4oJHNlY29uZGFyeSwgMTAlKSAhZGVmYXVsdDtcclxuJGJ0bi1ob3Zlci1ib3JkZXItY29sb3Itc2Vjb25kYXJ5OiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xyXG5cclxuLy8gRm9ybXNcclxuJGlucHV0LWZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlOyAvLyBmb250IHNpemUgZm9yIGZvcm1zIGVsZW1lbnRzXHJcbiRpbnB1dC1saW5lLWhlaWdodDogJGlucHV0LWZvbnQtc2l6ZSArIDI7IC8vIGxpbmUgaGVpZ2h0IGZvciBmb3JtcyBlbGVtZW50c1xyXG4kaW5wdXQtZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQ7XHJcbiRpbnB1dC1wYWRkaW5nLXZlcnRpY2FsOiAxMHB4ICFkZWZhdWx0OyAvLyBwYWRkaW5nIGZvciBmb3JtcyBlbGVtZW50c1xyXG4kaW5wdXQtcGFkZGluZy1ob3Jpem9udGFsOiAyMHB4ICFkZWZhdWx0OyAvLyBwYWRkaW5nIGZvciBmb3JtcyBlbGVtZW50c1xyXG4kaW5wdXQtcGFkZGluZzogJGlucHV0LXBhZGRpbmctdmVydGljYWwgJGlucHV0LXBhZGRpbmctaG9yaXpvbnRhbCAhZGVmYXVsdDtcclxuJGlucHV0LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0OyAvLyBib3JkZXIgaW5wdXQncyB3aWR0aFxyXG4kaW5wdXQtYm9yZGVyOiAkaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50OyAvLyBib3JkZXIgZm9yIGZvcm1zIGVsZW1lbnRzXHJcbiRpbnB1dC1ib3JkZXItcmFkaXVzOiAwICFkZWZhdWx0OyAvLyBib3JkZXIgcmFkaXVzIGZvciBmb3JtcyBlbGVtZW50c1xyXG4kaW5wSDogJGlucHV0LWJvcmRlci13aWR0aCArIDIgKiAkaW5wdXQtcGFkZGluZy12ZXJ0aWNhbCArICRpbnB1dC1saW5lLWhlaWdodDtcclxuJGlucHV0LWhlaWdodDogNjBweDsgLy8gaGVpZ2h0IGZvciBmb3JtcyBlbGVtZW50c1xyXG4vL3N1Ym1pdFxyXG4kc3VibWl0LWJhY2tncm91bmQ6ICRidG4tYmFja2dyb3VuZC1kZWZhdWx0O1xyXG4kc3VibWl0LWNvbG9yOiAkYnRuLWNvbG9yLWRlZmF1bHQ7XHJcbiRzdWJtaXQtaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0O1xyXG4kc3VibWl0LWJvcmRlci13aWR0aDogJGJ0bi1ib3JkZXItd2lkdGg7XHJcbiRzdWJtaXQtYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuJHN1Ym1pdC1ib3JkZXItY29sb3I6ICRidG4tYm9yZGVyLWNvbG9yLWRlZmF1bHQ7XHJcbiRzdWJtaXQtcGFkZGluZzogJGJ0bi1wYWRkaW5nO1xyXG4kc3VibWl0LWZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcclxuJHN1Ym1pdC1saW5lLWhlaWdodDogJGJ0bi1saW5lLWhlaWdodDtcclxuJHN1Ym1pdC1yYWRpdXM6ICRidG4tYm9yZGVyLXJhZGl1cztcclxuLy8gc3VibWl0IGhvdmVyXHJcbiRzdWJtaXQtaG92ZXItYmFja2dyb3VuZDogJGJ0bi1ob3Zlci1iYWNrZ3JvdW5kLWRlZmF1bHQ7IC8vIHN1Ym1pdCBiYWNrZ3JvdW5kIGhvdmVyXHJcbiRzdWJtaXQtaG92ZXItY29sb3I6ICRzdWJtaXQtYmFja2dyb3VuZDsgLy8gc3VibWl0IGNvbG9yIGhvdmVyXHJcbiRzdWJtaXQtaG92ZXItYm9yZGVyLWNvbG9yOiAkc3VibWl0LWJhY2tncm91bmQ7IC8vIHN1Ym1pdCBjb2xvciBob3ZlclxyXG5cclxuLy9mb2N1c1xyXG4kaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yOiAkYmx1ZTsgLy8gYm9yZGVyIGNvbG9yIGZvciBmb3JtcyBlbGVtZW50c1xyXG4vL3BsYWNlaG9sZGVyXHJcbiRwbGFjZWhvbGRlci1jb2xvcjogJGdyYXktOTAwO1xyXG4vLyBzZWxlY3RcclxuJHNlbGVjdC1oZWlnaHQ6ICRpbnB1dC1oZWlnaHQ7XHJcbiRzZWxlY3QtYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xyXG4kc2VsZWN0LWJvcmRlci1yYWRpdXM6ICRpbnB1dC1ib3JkZXItcmFkaXVzO1xyXG4kc2VsZWN0LXBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xyXG4kc2VsZWN0LWZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcclxuJHNlbGVjdC1saW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0O1xyXG5cclxuLy8gYW5pbWF0aW9uIHNwZWVkXHJcbiRhbmltYXRpb24tc3BlZWQ6IDAuM3M7IiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XG4vL1xuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3Ncbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XG4vL1xuLy8gICAgICAgIGh0dHBzOi8vZWR1YXJkb2JvdWNhcy5naXRodWIuaW8vaW5jbHVkZS1tZWRpYVxuLy9cbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxuLy8gICAgICAgICAgICAgICAgICBLaXR0eSBHaXJhdWRlbCAoQGtpdHR5Z2lyYXVkZWwpXG4vL1xuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICdwaG9uZSc6IDMyMHB4LFxuICAndGFibGV0JzogNzY4cHgsXG4gICdkZXNrdG9wJzogMTAyNHB4XG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcbi8vLyAgKTtcbi8vL1xuJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4gICdzY3JlZW4nOiAnc2NyZWVuJyxcbiAgJ3ByaW50JzogJ3ByaW50JyxcbiAgJ2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcbiAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxuICAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxuICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxuICAncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XG4vLy9cbiR1bml0LWludGVydmFsczogKFxuICAncHgnOiAxLFxuICAnZW0nOiAwLjAxLFxuICAncmVtJzogMC4xLFxuICAnJzogMFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3Jcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICRtZXNzYWdlO1xuICAgICRfOiBub29wKCk7XG4gIH1cblxuICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG5cbi8vL1xuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGltLWxvZygkbWVzc2FnZSkge31cbn1cblxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG4gICAgQGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAgICAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xuXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcbiAgICAgICAgICAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vXG4vLy8gUGFyc2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XG4gIEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xuICAgIEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAgICAgQHJldHVybiAkb3BlcmF0b3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XG4gICRkaW1lbnNpb246ICd3aWR0aCc7XG5cbiAgQGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XG4gICAgJGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XG4gIH1cblxuICBAcmV0dXJuICRkaW1lbnNpb247XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XG4gIEByZXR1cm4gaWYoaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xuXG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgICR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XG4gIH0gQGVsc2Uge1xuICAgICR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gIH1cblxuICAkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xuXG4gIEBpZiBub3QgJGludGVydmFsIHtcbiAgICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gICAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAgIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgICAkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XG4gIH1cblxuICBAaWYgJG9wZXJhdG9yID09ICc+JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgKyAkaW50ZXJ2YWw7XG4gIH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuXG4vLy9cbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2Vcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxuLy8vXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xuICAvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXG4gIC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gIEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xuICB9XG5cbiAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XG4gICRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG5cbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XG59XG5cbi8vL1xuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2Vcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxuLy8vXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xuICBAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XG4gICAgQHJldHVybiAoKTtcbiAgfVxuXG4gICRyZXN1bHQ6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcbiAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy8vXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xuICAgICRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gIH1cblxuICAkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcbiAgJHJlc3VsdDogMDtcbiAgJGRpZ2l0czogMDtcbiAgJG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xuICAkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XG5cbiAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXG4gIEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcbiAgICAkdmFsdWU6IHN0ci1zbGljZSgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XG5cbiAgICBAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XG4gICAgICBAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpKVxuICAgIH1cblxuICAgIEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XG4gICAgICAkZGlnaXRzOiAxO1xuICAgIH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xufVxuXG5cbi8vL1xuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxuLy8vXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcbiAgJHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcblxuICBAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XG4gICAgJF86IGltLWxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XG59XG5cbi8vL1xuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcbi8vLyBmb3IgaW5zdGFuY2UuXG4vLy9cbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2Bcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcbiAgLy8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XG4gICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcblxuICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gIC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cbi8vL1xuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XG4gIEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcbiAgICAgIChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuICAgIEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcbiAgICAgIC8vIFJlY3Vyc2l2ZSBjYWxsXG4gICAgICBAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBsaXN0IHJlc2V0XHJcbiVsaXN0cmVzZXQge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbn1cclxuXHJcbi8vIGNsZWFyZml4XHJcbiVjbGVhcmZpeCB7XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBjbGVhcjogYm90aDtcclxuICAgIH1cclxufVxyXG5cclxuLmNsZWFyZml4IHtcclxuICAgIEBleHRlbmQgJWNsZWFyZml4O1xyXG59XHJcblxyXG4vLyB0cmFuc2l0aW9uXHJcbiV0cmFuc2l0aW9uIHtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xyXG59XHJcblxyXG4vLyBqdXN0aWZ5IG5hdlxyXG4lanVzdGlmeSB7XHJcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xyXG4gICAgZm9udC1zaXplOiAxcHg7XHJcbiAgICBsaW5lLWhlaWdodDogMDtcclxuXHJcbiAgICA+KiB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtYmFzZTtcclxuICAgICAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XHJcbiAgICB9XHJcblxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICB9XHJcbn1cclxuXHJcbiViZ0NvdmVyIHtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG59XHJcblxyXG4lYWJzb2x1dGVDb3ZlciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbn1cclxuXHJcbi8vLyAqIEhlbHBlciBjbGFzcyB0byB0cnVuY2F0ZSBhbmQgYWRkIGVsbGlwc2lzIHRvIGEgc3RyaW5nIHRvbyBsb25nIGZvciBpdCB0byBmaXRcclxuLy8vICogb24gYSBzaW5nbGUgbGluZS5cclxuLy8vICogMS4gUHJldmVudCBjb250ZW50IGZyb20gd3JhcHBpbmcsIGZvcmNpbmcgaXQgb24gYSBzaW5nbGUgbGluZS5cclxuLy8vICogMi4gQWRkIGVsbGlwc2lzIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmUuXHJcblxyXG4uZWxsaXBzaXMge1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIC8qIDEgKi9cclxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgLyogMiAqL1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLmRmLXJvdyB7XHJcbiAgICBAaW5jbHVkZSBhZGQtcGFyYW1zKCk7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQoKTtcclxuXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgbWFyZ2luOiAwICgtJGd1dHRlcik7XHJcblxyXG4gICAgW2NsYXNzKj1cImNvbC1cIl0ge1xyXG4gICAgICAgIHBhZGRpbmc6IDAgJGd1dHRlcjtcclxuICAgIH1cclxufVxyXG5cclxuLmhpZGRlbiB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAtOTk5OXB4O1xyXG4gICAgdG9wOiBhdXRvO1xyXG4gICAgd2lkdGg6IDFweDtcclxuICAgIGhlaWdodDogMXB4O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufSIsIi8vIHZlcnRpY2FsIGFsaWduIGVsIGluc2lkZSBwYXJlbnQgd2l0aCBmaXhlZCBoZWlnaHQvbWluLWhlaWdodFxyXG4vLyB1c2FnZVxyXG4vLyBodG1sIC0gLnBhcmVudD4uY2hpbGRcclxuLy8gc2NzcyAtIEBpbmNsdWRlIHYtYWxpZ247XHJcbi8vICAgICBvciBAaW5jbHVkZSB2LWFsaWduKDI1MHB4KTtcclxuLy8gICAgIG9yIEBpbmNsdWRlIHYtYWxpZ24oMjUwcHgsIGJvdHRvbSwgYmVmb3JlKTtcclxuLy9cclxuQG1peGluIHYtYWxpZ24oJHZhLWhlaWdodDogMTAwJSwgJHZhLWRpcmVjdGlvbjogbWlkZGxlLCAkdmEtcHNldWRvOiBhZnRlcikge1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAmOiN7JHZhLXBzZXVkb30ge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogJHZhLWRpcmVjdGlvbjtcclxuICAgICAgICB3aWR0aDogMDtcclxuICAgICAgICBtaW4taGVpZ2h0OiAkdmEtaGVpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgID4qIHtcclxuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogJHZhLWRpcmVjdGlvbjtcclxuICAgICAgICBtYXgtd2lkdGg6IDk5JTtcclxuICAgIH1cclxufVxyXG5cclxuLy8gdmVydGljYWwgYWxpZ24gYSBwYWlyIG9mIGNoaWxkIGVsIGluc2lkZSBwYXJlbnRcclxuLy8gdXNhZ2VcclxuLy8gaHRtbCAtIC5wb3N0Pi5pbWFnZSsudGV4dFxyXG4vLyBzY3NzIC0gQGluY2x1ZGUgdi1hbGlnbi1wYWlyKGltYWdlLCB0ZXh0KTtcclxuLy8gICAgIG9yIEBpbmNsdWRlIHYtYWxpZ24tcGFpcihpbWFnZSwgdGV4dCwgYm90dG9tKTtcclxuLy8gICAgIG9yIEBpbmNsdWRlIHYtYWxpZ24tcGFpcihpbWFnZSwgdGV4dCwgbWlkZGxlLCAyMDBweCk7XHJcbi8vXHJcbkBtaXhpbiB2LWFsaWduLXBhaXIoJGNoaWxkLW5hbWUxLCAkY2hpbGQtbmFtZTIsICR2YWxpZ246IG1pZGRsZSwgJHdpZHRoMTogYXV0bywgJHdpZHRoMjogYXV0bykge1xyXG4gICAgZGlzcGxheTogdGFibGU7XHJcblxyXG4gICAgLiN7JGNoaWxkLW5hbWUxfSB7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogJHZhbGlnbjtcclxuICAgICAgICB3aWR0aDogJHdpZHRoMTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2hpbGQtbmFtZTJ9IHtcclxuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiAkdmFsaWduO1xyXG4gICAgICAgIHdpZHRoOiAkd2lkdGgyO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyB2ZXJ0aWNhbCBhbGlnbiBlbFxyXG4vLyB1c2FnZTogQGluY2x1ZGUgdmVydGljYWwtYWxpZ24tZWw7XHJcbi8vXHJcbkBtaXhpbiB2ZXJ0aWNhbC1hbGlnbi1lbCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxufVxyXG5cclxuLy8vIE1peGluIGhlbHBpbmcgZGVmaW5pbmcgYm90aCBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBzaW11bHRhbmVvdXNseS5cclxuLy8vXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vXHJcbi8vLyBAYWNjZXNzIHB1YmxpY1xyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGVuZ3RofSAkd2lkdGggLSBFbGVtZW504oCZcyBgd2lkdGhgXHJcbi8vLyBAcGFyYW0ge0xlbmd0aH0gJGhlaWdodCAoJHdpZHRoKSAtIEVsZW1lbnTigJlzIGBoZWlnaHRgXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5mb28ge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNpemUoMTBlbSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5iYXIge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNpemUoMTAwJSwgMTBlbSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1Mgb3V0cHV0XHJcbi8vLyAgIC5mb28ge1xyXG4vLy8gICAgIHdpZHRoOiAxMGVtO1xyXG4vLy8gICAgIGhlaWdodDogMTBlbTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmJhciB7XHJcbi8vLyAgICAgd2lkdGg6IDEwMCU7XHJcbi8vLyAgICAgaGVpZ2h0OiAxMGVtO1xyXG4vLy8gICB9XHJcbi8vL1xyXG5AbWl4aW4gc2l6ZSgkd2lkdGgsICRoZWlnaHQ6ICR3aWR0aCkge1xyXG4gICAgd2lkdGg6ICR3aWR0aDtcclxuICAgIGhlaWdodDogJGhlaWdodDtcclxufVxyXG5cclxuLy8vIGZvbnQtc21vdGhpbmdcclxuLy8vIEBpbmNsdWRlIGZvbnQtc21vb3RoaW5nKG9uKTtcclxuLy8vIEBpbmNsdWRlIGZvbnQtc21vb3RoaW5nKG9mZik7XHJcbkBtaXhpbiBmb250LXNtb290aGluZygkdmFsdWU6IG9uKSB7XHJcbiAgICBAaWYgJHZhbHVlID09b24ge1xyXG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IHN1YnBpeGVsLWFudGlhbGlhc2VkO1xyXG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBhdXRvO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLy8vIEhpZGVzIHRoZSB0ZXh0IGluIGFuIGVsZW1lbnQsIGNvbW1vbmx5IHVzZWQgdG8gc2hvdyBhbiBpbWFnZS4gU29tZSBlbGVtZW50cyB3aWxsIG5lZWQgYmxvY2stbGV2ZWwgc3R5bGVzIGFwcGxpZWQuXHJcbi8vL1xyXG4vLy8gQGxpbmsgaHR0cDovL3plbGRtYW4uY29tLzIwMTIvMDMvMDEvcmVwbGFjaW5nLXRoZS05OTk5cHgtaGFjay1uZXctaW1hZ2UtcmVwbGFjZW1lbnRcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGhpZGUtdGV4dDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbi8vLyAgICAgdGV4dC1pbmRlbnQ6IDEwMSU7XHJcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuLy8vICAgfVxyXG4vLy9cclxuQG1peGluIGhpZGUtdGV4dCB7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgdGV4dC1pbmRlbnQ6IDEwMSU7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59XHJcblxyXG5cclxuLy8vIENyZWF0ZXMgYSB2aXN1YWwgdHJpYW5nbGUuXHJcbi8vLyBNaXhpbiB0YWtlcyAoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbilcclxuLy8vIFRoZSAkc2l6ZSBhcmd1bWVudCBjYW4gdGFrZSBvbmUgb3IgdHdvIHZhbHVlc+KAlHdpZHRoIGhlaWdodC5cclxuLy8vIFRoZSAkY29sb3IgYXJndW1lbnQgY2FuIHRha2Ugb25lIG9yIHR3b1xyXG4vLy8gdmFsdWVz4oCUZm9yZWdyb3VuZC1jb2xvciBiYWNrZ3JvdW5kLWNvbG9yLlxyXG4vLy9cclxuLy8vIEBhdXRob3IgaHR0cDovL2JvdXJib24uaW8vZG9jcy8jdHJpYW5nbGVcclxuLy8vXHJcbi8vLyAkZGlyZWN0aW9uOlxyXG4vLy8gdXAsIGRvd24sIGxlZnQsIHJpZ2h0LCB1cC1yaWdodCwgdXAtbGVmdCwgZG93bi1yaWdodCwgZG93bi1sZWZ0XHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgQGluY2x1ZGUgdHJpYW5nbGUoMTJweCwgZ3JheSwgZG93bik7XHJcbi8vLyAgIEBpbmNsdWRlIHRyaWFuZ2xlKDEycHggNnB4LCBncmF5IGJsdWUsIHVwLWxlZnQpO1xyXG4vLy9cclxuQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcclxuICAgICR3aWR0aDogbnRoKCRzaXplLCAxKTtcclxuICAgICRoZWlnaHQ6IG50aCgkc2l6ZSwgbGVuZ3RoKCRzaXplKSk7XHJcbiAgICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XHJcbiAgICAkYmFja2dyb3VuZC1jb2xvcjogaWYobGVuZ3RoKCRjb2xvcik9PTIsIG50aCgkY29sb3IsIDIpLCB0cmFuc3BhcmVudCk7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbiAgICB3aWR0aDogMDtcclxuXHJcbiAgICBAaWYgKCRkaXJlY3Rpb24gPT11cCkgb3IgKCRkaXJlY3Rpb24gPT1kb3duKSBvciAoJGRpcmVjdGlvbiA9PXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PWxlZnQpIHtcclxuICAgICAgICAkd2lkdGg6ICR3aWR0aCAvIDI7XHJcbiAgICAgICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XHJcblxyXG4gICAgICAgIEBpZiAkZGlyZWN0aW9uID09dXAge1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgICAgICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBlbHNlIGlmICRkaXJlY3Rpb24gPT1yaWdodCB7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBlbHNlIGlmICRkaXJlY3Rpb24gPT1kb3duIHtcclxuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAZWxzZSBpZiAkZGlyZWN0aW9uID09bGVmdCB7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgICAgICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIGlmICgkZGlyZWN0aW9uID09dXAtcmlnaHQpIG9yICgkZGlyZWN0aW9uID09dXAtbGVmdCkge1xyXG4gICAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcblxyXG4gICAgICAgIEBpZiAkZGlyZWN0aW9uID09dXAtcmlnaHQge1xyXG4gICAgICAgICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGVsc2UgaWYgJGRpcmVjdGlvbiA9PXVwLWxlZnQge1xyXG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT1kb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PWRvd24tbGVmdCkge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcblxyXG4gICAgICAgIEBpZiAkZGlyZWN0aW9uID09ZG93bi1yaWdodCB7XHJcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAZWxzZSBpZiAkZGlyZWN0aW9uID09ZG93bi1sZWZ0IHtcclxuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIGlmICgkZGlyZWN0aW9uID09aW5zZXQtdXApIHtcclxuICAgICAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcclxuICAgIH1cclxuXHJcbiAgICBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PWluc2V0LWRvd24pIHtcclxuICAgICAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcclxuICAgIH1cclxuXHJcbiAgICBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PWluc2V0LXJpZ2h0KSB7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT1pbnNldC1sZWZ0KSB7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vLy8gQW5pbWF0ZSBjc3MgcHJvcGVydGllc1xyXG4vLyB1c2FnZVxyXG4vLyBzY3NzIC0gQGluY2x1ZGUgYW5pbWF0ZShjb2xvcik7XHJcbi8vICAgICBvciBAaW5jbHVkZSBhbmltYXRlKGNvbG9yIHdpZHRoKTtcclxuLy8gICAgIG9yIEBpbmNsdWRlIGFuaW1hdGUoY29sb3Igd2lkdGgsIDFzLCBsaW5lYXIpO1xyXG4vL1xyXG4kYW5pbWF0aW9uLXNwZWVkOiAwLjNzICFkZWZhdWx0O1xyXG5cclxuQG1peGluIGFuaW1hdGUoJHByb3BlcnRpZXMsICRkdXJhdGlvbjogJGFuaW1hdGlvbi1zcGVlZCwgJGVhc2luZzogZWFzZS1pbi1vdXQpIHtcclxuICAgICRsaXN0OiAoKTtcclxuXHJcbiAgICBAZWFjaCAkcHJvcCBpbiAkcHJvcGVydGllcyB7XHJcbiAgICAgICAgJHN0cjogI3skcHJvcH0gI3skZHVyYXRpb259ICN7JGVhc2luZ307XHJcbiAgICAgICAgJGxpc3Q6IGpvaW4oJGxpc3QsICN7JHN0cn0sIGNvbW1hKTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFuc2l0aW9uOiAkbGlzdDtcclxufVxyXG5cclxuXHJcbi8vLyBNaXhpbiBmb3Igc3R5bGluZyBmb3JtLXBsYWNlaG9sZGVyc1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyIHtcclxuLy8vICAgIGNvbG9yOiAjMzMzO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICBpbnB1dFt0eXBlPSd0ZXh0J10sXHJcbi8vLyAgIGlucHV0W3R5cGU9J3RlbCddLFxyXG4vLy8gICBpbnB1dFt0eXBlPSdlbWFpbCddIHtcclxuLy8vICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XHJcbi8vLyAgICAgIGNvbG9yOiByZWQ7XHJcbi8vLyAgICAgfVxyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xyXG4gICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XHJcbiAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6LW1vei1wbGFjZWhvbGRlciB7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAmOi1tb3otcGxhY2Vob2xkZXIge1xyXG4gICAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcclxuICAgICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAmLnBsYWNlaG9sZGVyIHtcclxuICAgICAgICBAY29udGVudDtcclxuICAgIH1cclxufVxyXG5cclxuLy8vIEZvbnQtc2l6ZSBweCB0byByZW0gY2FsY1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyBzZWxlY3RvciB7XHJcbi8vLyAgICBAaW5jbHVkZSByZW0tZm9udC1zaXplKDE2cHgpO1xyXG4vLy8gfVxyXG5cclxuQG1peGluIHJlbS1mb250LXNpemUoJHB4LXNpemUpIHtcclxuICAgIGZvbnQtc2l6ZTogJHB4LXNpemU7XHJcbiAgICBmb250LXNpemU6ICgkcHgtc2l6ZSAvIDEwcHgpICsgcmVtO1xyXG59XHJcblxyXG4vL2ZvbnQtZmFjZVxyXG5AbWl4aW4gZm9udC1mYWNlKCRmb250LW5hbWUsICRmb250LXBhdGgsICR3ZWlnaHQsICRzdHlsZSkge1xyXG4gICAgQGZvbnQtZmFjZSB7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6ICcjeyRmb250LW5hbWV9JztcclxuICAgICAgICBzcmM6IHVybCgnZm9udHMvI3skZm9udC1wYXRofS53b2ZmMicpIGZvcm1hdCgnd29mZicpO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xyXG4gICAgICAgIGZvbnQtc3R5bGU6ICRzdHlsZTtcclxuICAgIH1cclxufVxyXG5cclxuLy8gQnV0dG9uIHNpemVzXHJcbkBtaXhpbiBidXR0b24tY29sb3IoJGJ0bi1iYWNrZ3JvdW5kLCAkYnRuLWNvbG9yLCAkYnRuLWJvcmRlciwgJGJ0bi1ob3Zlci1iYWNrZ3JvdW5kLCAkYnRuLWhvdmVyLWJvcmRlciwgJGJ0bi1ob3Zlci1jb2xvcikge1xyXG4gICAgYmFja2dyb3VuZDogJGJ0bi1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRidG4tY29sb3I7XHJcbiAgICBib3JkZXI6ICRidG4tYm9yZGVyO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRidG4taG92ZXItYmFja2dyb3VuZDtcclxuICAgICAgICBjb2xvcjogJGJ0bi1ob3Zlci1jb2xvcjtcclxuICAgICAgICBib3JkZXI6ICRidG4taG92ZXItYm9yZGVyO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gYWRkLXBhcmFtcygpIHtcclxuXHJcbiAgICBAZWFjaCAkdmFsLFxyXG4gICAgJG1lZGlhIGluICRncmlkIHtcclxuICAgICAgICAmLmRmLXJyLSN7JHZhbH0ge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgn4omlJyArICRtZWRpYSkge1xyXG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmRmLWFpYy0jeyR2YWx9IHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJ+KJpScgKyAkbWVkaWEpIHtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIGZsZXggZ3JpZFxyXG5AbWl4aW4gZmxleC1ncmlkKCkge1xyXG5cclxuICAgIEBlYWNoICR2YWwsXHJcbiAgICAkbWVkaWEgaW4gJGdyaWQge1xyXG4gICAgICAgIEBmb3IgJGd1dHRlciBmcm9tIDEgdGhyb3VnaCAxMiB7XHJcbiAgICAgICAgICAgIC5jb2wtI3skdmFsfS0jeyRndXR0ZXJ9IHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCfiiaUnICsgJG1lZGlhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMSAwIGNhbGMoMTAwJSAvIDEyICogI3skZ3V0dGVyfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLyAxMiAqICN7JGd1dHRlcn0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAZm9yICRndXR0ZXIgZnJvbSAwIHRocm91Z2ggMTEge1xyXG4gICAgICAgICAgICAuY29sLW9mZnNldC0jeyR2YWx9LSN7JGd1dHRlcn0ge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJ+KJpScgKyAkbWVkaWEpIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogY2FsYygxMDAlIC8gMTIgKiAjeyRndXR0ZXJ9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIHYtY2VudGVyKCRtaW4taGVpZ2h0OiA0MDBweCkge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgICA+KiB7XHJcbiAgICAgICAgbWluLWhlaWdodDogJG1pbi1oZWlnaHQ7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyBvYmplY3QgZml0IGZvciBpbWFnZVxyXG5AbWl4aW4gaW1nLXNjYWxlIHtcclxuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxufVxyXG5cclxuLy8gQG1peGluIHNjcm9sbC1jdXN0b20oJHdpZHRoOiA4cHgsICRoZWlnaHQ6IDhweCwgJHNjcm9sbC1iZzogI2U5ZTllOSwgJHNjcm9sbC1zbGlkZXItYmc6ICNhMWE1YWQpIHtcclxuQG1peGluIHNjcm9sbC1jdXN0b20oJHdpZHRoOiA1cHgsICRoZWlnaHQ6IDVweCwgJHNjcm9sbC1iZzogI2ZmZiwgJHNjcm9sbC1zbGlkZXItYmc6IHJnYmEoI0I0QjRCNCwgMSkpIHtcclxuICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gICAgICAgIHdpZHRoOiAkd2lkdGg7XHJcbiAgICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRzY3JvbGwtYmc7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogY2FsYygjeyR3aWR0aH0gLyAyKTtcclxuICAgICAgICBtYXJnaW46IDAgNnB4IDAgMDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogY2FsYygjeyR3aWR0aH0gLyAyKTtcclxuICAgICAgICAvLyBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL3RyYWNrLmpwZykgdG9wIGNlbnRlciByZXBlYXQteTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICAgICAgd2lkdGg6ICR3aWR0aDtcclxuICAgICAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJHNjcm9sbC1zbGlkZXItYmc7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogY2FsYygjeyR3aWR0aH0gLyAyKTtcclxuICAgIH1cclxufSIsIi8vLyBjb2xvcnMgYmxhY2sgJiB3aGl0ZVxyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5teS1jbGFzcyB7XHJcbi8vLyAgICAgYmFja2dyb3VuZDogYmxhY2soMC4xNSk7XHJcbi8vLyAgICAgY29sb3I6IHdoaXRlKDAuOSk7XHJcbi8vLyAgIH1cclxuQGZ1bmN0aW9uIGJsYWNrKCRvcGFjaXR5KSB7XHJcbiAgICBAcmV0dXJuIHJnYmEoYmxhY2ssICRvcGFjaXR5KTtcclxufVxyXG5cclxuQGZ1bmN0aW9uIHdoaXRlKCRvcGFjaXR5KSB7XHJcbiAgICBAcmV0dXJuIHJnYmEod2hpdGUsICRvcGFjaXR5KTtcclxufVxyXG5cclxuQG1peGluIHRpdGxlLXNpemUoJHN5bWJvbCkge1xyXG5cclxuICAgIEBlYWNoICRtZWRpYSxcclxuICAgICR0aXRsZXMtc2l6ZSBpbiAkdGl0bGUtcGFsZXR0ZSB7XHJcbiAgICAgICAgQGlmICRtZWRpYSA9PW1vYmlsZSB7XHJcblxyXG4gICAgICAgICAgICBAZWFjaCAkdGl0bGUsXHJcbiAgICAgICAgICAgICRzaXplIGluICR0aXRsZXMtc2l6ZSB7XHJcblxyXG4gICAgICAgICAgICAgICAgI3skdGl0bGV9LFxyXG4gICAgICAgICAgICAgICAgLiN7JHRpdGxlfSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkc2l6ZSArIHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCN7JHN5bWJvbH0jeyRtZWRpYX0pIHtcclxuXHJcbiAgICAgICAgICAgICAgICBAZWFjaCAkdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAkc2l6ZSBpbiAkdGl0bGVzLXNpemUge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAjeyR0aXRsZX0sXHJcbiAgICAgICAgICAgICAgICAgICAgLiN7JHRpdGxlfSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHNpemUgKyBweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vXHJcbi8vIEBmdW5jdGlvbnNcclxuLy9cclxuXHJcbi8vIFNUUklQIFVOSVRcclxuLy8gSXQgc3RyaXBzIHRoZSB1bml0IG9mIG1lYXN1cmUgYW5kIHJldHVybnMgaXRcclxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xyXG4gICAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XHJcbn1cclxuXHJcbi8vIENPTlZFUlQgVE8gUkVNXHJcbkBmdW5jdGlvbiBjb252ZXJ0LXRvLXJlbSgkdmFsdWUsICRiYXNlLXZhbHVlOiAkcmVtLWJhc2UpIHtcclxuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZS12YWx1ZSkgKiAxcmVtO1xyXG5cclxuICAgIEBpZiAoJHZhbHVlID09MHJlbSkge1xyXG4gICAgICAgICR2YWx1ZTogMDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBUdXJuIDByZW0gaW50byAwXHJcbiAgICBAcmV0dXJuICR2YWx1ZTtcclxufVxyXG5cclxuLy8gUkVNIENBTENcclxuXHJcbi8vIE5ldyBTeW50YXgsIGFsbG93cyB0byBvcHRpb25hbGx5IGNhbGN1bGF0ZSBvbiBhIGRpZmZlcmVudCBiYXNlIHZhbHVlIHRvIGNvdW50ZXIgY29tcG91bmRpbmcgZWZmZWN0IG9mIHJlbSdzLlxyXG4vLyBDYWxsIHdpdGggMSwgMiwgMyBvciA0IHBhcmFtZXRlcnMsICdweCcgaXMgbm90IHJlcXVpcmVkIGJ1dCBzdXBwb3J0ZWQ6XHJcbi8vXHJcbi8vICAgcmVtLWNhbGMoMTAgMjAgMzBweCA0MCk7XHJcbi8vXHJcbi8vIFNwYWNlIGRlbGltaXRlZCwgaWYgeW91IHdhbnQgdG8gZGVsaW1pdCB1c2luZyBjb21tYSdzLCB3cmFwIGl0IGluIGFub3RoZXIgcGFpciBvZiBicmFja2V0c1xyXG4vL1xyXG4vLyAgIHJlbS1jYWxjKCgxMCwgMjAsIDMwLCA0MHB4KSk7XHJcbi8vXHJcbi8vIE9wdGlvbmFsbHkgY2FsbCB3aXRoIGEgZGlmZmVyZW50IGJhc2UgKGVnOiA4cHgpIHRvIGNhbGN1bGF0ZSByZW0uXHJcbi8vXHJcbi8vICAgcmVtLWNhbGMoMTZweCAzMnB4IDQ4cHgsIDhweCk7XHJcbi8vXHJcbi8vIElmIHlvdSByZXF1aXJlIHRvIGNvbW1hIHNlcGFyYXRlIHlvdXIgbGlzdFxyXG4vL1xyXG4vLyAgIHJlbS1jYWxjKCgxNnB4LCAzMnB4LCA0OCksIDhweCk7XHJcblxyXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2UtdmFsdWU6ICRyZW0tYmFzZSkge1xyXG4gICAgJG1heDogbGVuZ3RoKCR2YWx1ZXMpO1xyXG5cclxuICAgIEBpZiAkbWF4ID09MSB7XHJcbiAgICAgICAgQHJldHVybiBjb252ZXJ0LXRvLXJlbShudGgoJHZhbHVlcywgMSksICRiYXNlLXZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAkcmVtVmFsdWVzOiAoXHJcbiAgICApO1xyXG5cclxuQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbWF4IHtcclxuICAgICRyZW1WYWx1ZXM6IGFwcGVuZCgkcmVtVmFsdWVzLCBjb252ZXJ0LXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZS12YWx1ZSkpO1xyXG59XHJcblxyXG5AcmV0dXJuICRyZW1WYWx1ZXM7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBlbS1jYWxjKCR2YWx1ZXMsICRiYXNlLXZhbHVlOiAkcmVtLWJhc2UpIHtcclxuICAgICRyZW1WYWx1ZXM6IHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlLXZhbHVlOiAkcmVtLWJhc2UpO1xyXG5cclxuICAgICRtYXg6IGxlbmd0aCgkcmVtVmFsdWVzKTtcclxuXHJcbiAgICBAaWYgJG1heCA9PTEge1xyXG4gICAgICAgIEByZXR1cm4gc3RyaXAtdW5pdChudGgoJHJlbVZhbHVlcywgMSkpICogMWVtO1xyXG4gICAgfVxyXG5cclxuICAgICRlbVZhbHVlczogKFxyXG4gICAgKTtcclxuXHJcbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJG1heCB7XHJcbiAgICAkZW1WYWx1ZXM6IGFwcGVuZCgkZW1WYWx1ZXMsIHN0cmlwLXVuaXQobnRoKCRyZW1WYWx1ZXMsICRpKSkgKiAxZW0pO1xyXG59XHJcblxyXG5AcmV0dXJuICRlbVZhbHVlcztcclxufVxyXG5cclxuLy8vIGNvbG9ycyBibGFjayAmIHdoaXRlXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLm15LWNsYXNzIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kOiBibGFjaygwLjE1KTtcclxuLy8vICAgICBjb2xvcjogd2hpdGUoMC45KTtcclxuLy8vICAgfVxyXG5AZnVuY3Rpb24gYmxhY2soJG9wYWNpdHkpIHtcclxuICAgIEByZXR1cm4gcmdiYShibGFjaywgJG9wYWNpdHkpO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gd2hpdGUoJG9wYWNpdHkpIHtcclxuICAgIEByZXR1cm4gcmdiYSh3aGl0ZSwgJG9wYWNpdHkpO1xyXG59XHJcblxyXG4iLCIvLyBUeXBvZ3JhcGh5XHJcblxyXG5AaW5jbHVkZSB0aXRsZS1zaXplKCfiiaUnKTtcclxuXHJcbmgxLFxyXG4uaDEsXHJcbmgyLFxyXG4uaDIsXHJcbmgzLFxyXG4uaDMsXHJcbmg0LFxyXG4uaDQsXHJcbmg1LFxyXG4uaDUsXHJcbmg2LFxyXG4uaDYsXHJcbi5oIHtcclxuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGluZ3MtZm9udC1mYW1pbHk7XHJcbiAgICBjb2xvcjogJGhlYWRpbmdzLWNvbG9yO1xyXG4gICAgZm9udC13ZWlnaHQ6ICRibGFjay1mb250O1xyXG4gICAgbWFyZ2luOiAwIDAgMTBweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjIyNTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXRhYmxldCcpIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG5wIHtcclxuICAgIG1hcmdpbjogMCAwIDIwcHg7XHJcbn1cclxuXHJcbmEge1xyXG4gICAgQGluY2x1ZGUgYW5pbWF0ZShjb2xvciBiYWNrZ3JvdW5kKTtcclxuICAgIGNvbG9yOiAkYmFzZS1saW5rLWNvbG9yO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkdGV4dC1kZWNvcmF0aW9uO1xyXG5cclxuICAgICY6aG92ZXIsXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgICBjb2xvcjogJGJhc2UtbGluay1ob3Zlci1jb2xvcjtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICR0ZXh0LWRlY29yYXRpb24taG92ZXI7XHJcbiAgICB9XHJcbn1cclxuXHJcbmFbaHJlZio9XCJtYWlsdG86XCJdIHtcclxuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxufVxyXG5cclxubWFyayB7XHJcbiAgICBjb2xvcjogJHllbGxvdztcclxuICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbn0iLCIvLyBmb3Jtc1xyXG5mb3JtLFxyXG5maWVsZHNldCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xyXG59XHJcblxyXG4uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24ge1xyXG4gICAgaW5wdXRbdHlwZT0ndGV4dCddLFxyXG4gICAgaW5wdXRbdHlwZT0ndGVsJ10sXHJcbiAgICBpbnB1dFt0eXBlPSdlbWFpbCddLFxyXG4gICAgaW5wdXRbdHlwZT0nc2VhcmNoJ10sXHJcbiAgICBpbnB1dFt0eXBlPSdwYXNzd29yZCddLFxyXG4gICAgaW5wdXRbdHlwZT0ndXJsJ10sXHJcbiAgICAvLyBpbnB1dFt0eXBlPSdkYXRlJ10sXHJcbiAgICB0ZXh0YXJlYSB7XHJcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcclxuICAgICAgICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZyAhaW1wb3J0YW50O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgIGJvcmRlcjogJGlucHV0LWJvcmRlciAhaW1wb3J0YW50O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1ib3JkZXItcmFkaXVzICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDI4cHggIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bm90KHRleHRhcmVhKSB7XHJcbiAgICAgICAgICAgIGhlaWdodDogJGlucHV0LWhlaWdodCAhaW1wb3J0YW50O1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogNzNweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkcGxhY2Vob2xkZXItY29sb3IgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXRbdHlwZT0nc3VibWl0J10ge1xyXG4gICAgICAgIG1pbi13aWR0aDogMTYwcHggIWltcG9ydGFudDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiA3M3B4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIG1pbi13aWR0aDogMjMycHggIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYnV0dG9uLFxyXG4gICAgaW5wdXRbdHlwZT0nYnV0dG9uJ10sXHJcbiAgICBpbnB1dFt0eXBlPSdyZXNldCddLFxyXG4gICAgaW5wdXRbdHlwZT0nZmlsZSddLFxyXG4gICAgaW5wdXRbdHlwZT0nc3VibWl0J10ge1xyXG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAgICAgaGVpZ2h0OiAkc3VibWl0LWhlaWdodCAhaW1wb3J0YW50O1xyXG4gICAgICAgIHBhZGRpbmc6ICRzdWJtaXQtcGFkZGluZztcclxuICAgICAgICBmb250LXNpemU6ICRzdWJtaXQtZm9udC1zaXplICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRzdWJtaXQtbGluZS1oZWlnaHQ7XHJcbiAgICAgICAgY29sb3I6ICRzdWJtaXQtY29sb3IgIWltcG9ydGFudDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkc3VibWl0LWJhY2tncm91bmQgIWltcG9ydGFudDtcclxuICAgICAgICB0cmFuc2l0aW9uOiAwLjNzIGJhY2tncm91bmQgZWFzZS1pbi1vdXQsIDAuM3MgY29sb3IgZWFzZS1pbi1vdXQgIWltcG9ydGFudDtcclxuICAgICAgICBmb250LXdlaWdodDogJG1lZGl1bSAhaW1wb3J0YW50O1xyXG5cclxuICAgICAgICBib3JkZXI6IHtcclxuICAgICAgICAgICAgd2lkdGg6ICRzdWJtaXQtYm9yZGVyLXdpZHRoO1xyXG4gICAgICAgICAgICBzdHlsZTogJHN1Ym1pdC1ib3JkZXItc3R5bGU7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkc3VibWl0LWJvcmRlci1jb2xvcjtcclxuICAgICAgICAgICAgcmFkaXVzOiAkc3VibWl0LXJhZGl1cyAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAkYW5pbWF0aW9uLXNwZWVkO1xyXG5cclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogJHN1Ym1pdC1ob3Zlci1iYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkc3VibWl0LWhvdmVyLWNvbG9yICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5pbnB1dFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiB7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbn1cclxuXHJcbi8vIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xyXG4vLyAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xyXG4vLyB9XHJcblxyXG50ZXh0YXJlYSB7XHJcbiAgICByZXNpemU6IHZlcnRpY2FsO1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgIG92ZXJmbG93OiBhdXRvO1xyXG59XHJcblxyXG5cclxuXHJcbi52YWxpZGF0aW9uX21lc3NhZ2Uge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcclxuICAgIH1cclxufVxyXG5cclxuLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZm9ybV9maWVsZHMge1xyXG4gICAgcm93LWdhcDogMjBweCAhaW1wb3J0YW50O1xyXG4gICAgY29sdW1uLWdhcDogMjBweCAhaW1wb3J0YW50O1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgY29sdW1uLWdhcDogNzdweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIHJvdy1nYXA6IDQwcHggIWltcG9ydGFudDtcclxuICAgIH1cclxufVxyXG5cclxuLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQgdGV4dGFyZWEubGFyZ2Uge1xyXG4gICAgbWluLWJsb2NrLXNpemU6IDE2cmVtICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5nZm9ybV9mb290ZXIge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICBtYXJnaW46IDQ4cHggMCAwICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbn0iLCJub3NjcmlwdCB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBjb2xvcjogJGxpZ2h0O1xyXG4gICAgYmFja2dyb3VuZDogJHByaW1hcnk7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBhZGRpbmc6IDVweCAwO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgei1pbmRleDogOTk5OTk7XHJcbn1cclxuXHJcbi5hY2Nlc3NpYmlsaXR5IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IC0yMDB2dztcclxuICAgIHRvcDogYXV0bztcclxuICAgIHdpZHRoOiAxcHg7XHJcbiAgICBoZWlnaHQ6IDFweDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcclxuICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB9XHJcbn1cclxuXHJcbi52aXN1YWxseS1oaWRkZW4ge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogLTk5OTlweDtcclxuICAgIHRvcDogYXV0bztcclxuICAgIHdpZHRoOiAxcHg7XHJcbiAgICBoZWlnaHQ6IDFweDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbn0iLCJ1bCxcclxub2wsXHJcbmRsLFxyXG5wLFxyXG5oMSxcclxuaDIsXHJcbmgzLFxyXG5oNCxcclxuaDUsXHJcbmg2LFxyXG5hZGRyZXNzLFxyXG5mb3JtLFxyXG50YWJsZSxcclxuYmxvY2txdW90ZSxcclxuYXBwbGV0LFxyXG5lbWJlZCxcclxub2JqZWN0LFxyXG5pZnJhbWUsXHJcbmZyYW1lc2V0IHtcclxuICAgIG1hcmdpbjogMCAwICR2ZXJ0aWNhbC1yaHl0aG07XHJcbn1cclxuXHJcbmJsb2NrcXVvdGUge1xyXG4gICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAkZ3JheTtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG59XHJcblxyXG50YWJsZSB7XHJcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG59XHJcblxyXG50aCxcclxudGQge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGdyYXk7XHJcbiAgICBwYWRkaW5nOiAzcHg7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxufVxyXG5cclxudGgge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxufVxyXG5cclxudWwsXHJcbm9sIHtcclxuICAgIHBhZGRpbmctbGVmdDogMjBweDtcclxufVxyXG5cclxudWwgdWwsXHJcbnVsIG9sLFxyXG5vbCB1bCxcclxub2wgb2wge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG51bCB7XHJcbiAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XHJcbn1cclxuXHJcbmRsIHtcclxuICAgIEBleHRlbmQgJWNsZWFyZml4O1xyXG5cclxuICAgIGR0IHtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICBjbGVhcjogbGVmdDtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjNlbTtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIH1cclxuXHJcbiAgICBkZCB7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIH1cclxufVxyXG5cclxucHJlIHtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIG92ZXJmbG93OiBhdXRvO1xyXG59IiwiLy8gI21haW4ge1xyXG4vLyAgIEBleHRlbmQgJWNsZWFyZml4O1xyXG4vLyB9XHJcbiVuYXZTdHlsZXMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkdmVydGljYWwtcmh5dGhtO1xyXG59XHJcblxyXG4lbmF2V1BCdG4ge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZzogJGJ0bi1wYWRkaW5nO1xyXG4gICAgZm9udC1zaXplOiAkYnRuLWZvbnQtc2l6ZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGxpbmUtaGVpZ2h0OiAkYnRuLWxpbmUtaGVpZ2h0O1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgIHRyYW5zaXRpb246IGFsbCAkYW5pbWF0aW9uLXNwZWVkO1xyXG5cclxuICAgIGJvcmRlcjoge1xyXG4gICAgICAgIHN0eWxlOiBzb2xpZDtcclxuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgd2lkdGg6ICRidG4tYm9yZGVyLXdpZHRoO1xyXG4gICAgICAgIHJhZGl1czogJGJ0bi1ib3JkZXItcmFkaXVzO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbG9yOiAkYnRuLWNvbG9yLWRlZmF1bHQ7XHJcbiAgICBiYWNrZ3JvdW5kOiAkYnRuLWJhY2tncm91bmQtZGVmYXVsdDtcclxuICAgIGJvcmRlci1jb2xvcjogJGJ0bi1ib3JkZXItY29sb3ItZGVmYXVsdDtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogJGJ0bi1ob3Zlci1jb2xvci1kZWZhdWx0O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRidG4taG92ZXItYmFja2dyb3VuZC1kZWZhdWx0O1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogJGJ0bi1ob3Zlci1ib3JkZXItY29sb3ItZGVmYXVsdDtcclxuICAgIH1cclxufVxyXG5cclxuOnJvb3Qge1xyXG4gICAgLS13cC0tc3R5bGUtLWdsb2JhbC0tY29udGVudC1zaXplOiAjeyRtYXgtd2lkdGgtY2VudGVyLWNvbnRhaW5lcn07XHJcbn1cclxuXHJcbi53cC1ibG9jay1ncm91cF9faW5uZXItY29udGFpbmVyIHtcclxuICAgIHBhZGRpbmctbGVmdDogJGd1dHRlcjtcclxuICAgIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXI7XHJcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGgtY2VudGVyLWNvbnRhaW5lcjtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG59XHJcblxyXG5baWQ9XCJ0d29jb2x1bW5zXCJdIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCfiiaV0YWJsZXQnKSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgIH1cclxufVxyXG5cclxuW2lkPVwiY29udGVudFwiXSB7XHJcbiAgICBwYWRkaW5nOiB7XHJcbiAgICAgICAgdG9wOiAzMHB4O1xyXG4gICAgICAgIGJvdHRvbTogMzBweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgn4omldGFibGV0Jykge1xyXG4gICAgICAgIHdpZHRoOiA3MCU7XHJcbiAgICB9XHJcblxyXG4gICAgJjpvbmx5LWNoaWxkIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxufVxyXG5cclxuW2lkPVwic2lkZWJhclwiXSB7XHJcbiAgICBwYWRkaW5nOiB7XHJcbiAgICAgICAgdG9wOiAzMHB4O1xyXG4gICAgICAgIGJvdHRvbTogMzBweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgn4omldGFibGV0Jykge1xyXG4gICAgICAgIHdpZHRoOiAzMCU7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4ud2lkZ2V0IHtcclxuICAgIEBleHRlbmQgJWNsZWFyZml4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogJHdpZGdldC1tYXJnaW47XHJcblxyXG4gICAgc2VsZWN0IHtcclxuICAgICAgICBtaW4td2lkdGg6IDE1MHB4O1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG59XHJcblxyXG4uc2VhcmNoLWZvcm0sXHJcbi5wb3N0LXBhc3N3b3JkLWZvcm0ge1xyXG4gICAgQGV4dGVuZCAlY2xlYXJmaXg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG5cclxuICAgIGxhYmVsIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuXHJcbiAgICBwIHtcclxuICAgICAgICBAZXh0ZW5kICVjbGVhcmZpeDtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dCB7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcclxuICAgICAgICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZztcclxuICAgICAgICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcclxuICAgICAgICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR5ZWxsb3c7XHJcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDI4cHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBbaWQ9XCJzaWRlYmFyXCJdICYge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgn4omldGFibGV0Jykge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCA1cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICZbdHlwZT0nc3VibWl0J10ge1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgICAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgICAgICAgICBoZWlnaHQ6ICRzdWJtaXQtaGVpZ2h0O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAkc3VibWl0LXBhZGRpbmc7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHN1Ym1pdC1mb250LXNpemU7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc3VibWl0LWxpbmUtaGVpZ2h0O1xyXG4gICAgICAgICAgICBjb2xvcjogJHN1Ym1pdC1jb2xvcjtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogJHN1Ym1pdC1iYWNrZ3JvdW5kO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAwLjNzIGJhY2tncm91bmQgZWFzZS1pbi1vdXQsIDAuM3MgY29sb3IgZWFzZS1pbi1vdXQ7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkbWVkaXVtO1xyXG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzdWJtaXQtaG92ZXItYmFja2dyb3VuZDtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkc3VibWl0LWhvdmVyLWNvbG9yO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4ubmF2LWxpbmtzLFxyXG4ubmF2aWdhdGlvbixcclxuLm5hdmlnYXRpb24tY29tbWVudHMge1xyXG4gICAgQGV4dGVuZCAlbmF2U3R5bGVzO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgLnNjcmVlbi1yZWFkZXItdGV4dCB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6IC05OTk5OXB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5wYWdlLW51bWJlcnMge1xyXG4gICAgICAgIG1hcmdpbjogMCAzcHg7XHJcblxyXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm5leHQsXHJcbiAgICAucHJldiB7XHJcbiAgICAgICAgQGluY2x1ZGUgYW5pbWF0ZShiYWNrZ3JvdW5kKTtcclxuICAgICAgICBAZXh0ZW5kICVuYXZXUEJ0bjtcclxuXHJcbiAgICAgICAgbWF4LXdpZHRoOiA0OSU7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDA7XHJcblxyXG4gICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfCuyc7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRidG4tZm9udC1zaXplO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5wcmV2IHtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcclxuICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnwqsnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4ubmF2aWdhdGlvbi1zaW5nbGUge1xyXG4gICAgQGV4dGVuZCAlbmF2U3R5bGVzO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAubmV4dCxcclxuICAgIC5wcmV2IHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgbWF4LXdpZHRoOiA0OSU7XHJcbiAgICAgICAgYm9yZGVyOiAwO1xyXG5cclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYW5pbWF0ZShiYWNrZ3JvdW5kKTtcclxuICAgICAgICAgICAgQGV4dGVuZCAlbmF2V1BCdG47XHJcblxyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgcGFkZGluZzogJGJ0bi1wYWRkaW5nO1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDA7XHJcblxyXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ8K7JztcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRidG4tZm9udC1zaXplO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5wcmV2IHtcclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnwqsnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uY29tbWVudC1mb3JtIHtcclxuICAgIGxhYmVsIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHB4O1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0LFxyXG4gICAgdGV4dGFyZWEge1xyXG4gICAgICAgIG1hcmdpbjogMCA0cHggMCAwO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgn4omldGFibGV0Jykge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJlt0eXBlPSdzdWJtaXQnXSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGV4dGFyZWEge1xyXG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBoZWlnaHQ6IDEyMHB4O1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4uY29tbWVudGxpc3Qge1xyXG4gICAgbWFyZ2luOiAwIDAgMS4yZW07XHJcblxyXG4gICAgLmVkaXQtbGluayB7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5hdmF0YXItaG9sZGVyIHtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICBtYXJnaW46IDAgMS4yZW0gNHB4IDA7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5jb21tZW50bGlzdC1pdGVtIHtcclxuICAgIC5jb21tZW50bGlzdC1pdGVtIHtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgn4omldGFibGV0Jykge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAgMCAyZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uY29tbWVudCxcclxuLmNvbW1lbnRsaXN0LWhvbGRlciB7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4uY29tbWVudGxpc3QtaXRlbSAuY29tbWVudGxpc3QtaXRlbSxcclxuLmNvbW1lbnRsaXN0LWl0ZW0rLmNvbW1lbnRsaXN0LWl0ZW0ge1xyXG4gICAgcGFkZGluZy10b3A6IDIwcHg7XHJcbn1cclxuXHJcbi53aWRnZXRfY2FsZW5kYXIge1xyXG5cclxuICAgIHRoLFxyXG4gICAgdGQge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAjcHJldiB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIH1cclxuXHJcbiAgICAjbmV4dCB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbiN3cC1jYWxlbmRhciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLndwLWNhcHRpb24ge1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgY2xlYXI6IGJvdGg7XHJcbiAgICBwYWRkaW5nOiA0cHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgIGltZyB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xyXG4gICAgfVxyXG5cclxuICAgIHAge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxufVxyXG5cclxuLmFsaWduY2VudGVyIHtcclxuICAgIG1hcmdpbjogMCBhdXRvICR2ZXJ0aWNhbC1yaHl0aG07XHJcbn1cclxuXHJcbmltZyB7XHJcbiAgICAmLmFsaWduY2VudGVyIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIH1cclxufVxyXG5cclxuLmFsaWdubGVmdCB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIG1hcmdpbjogMCAxLjJlbSA0cHggMDtcclxufVxyXG5cclxuLmFsaWducmlnaHQge1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgbWFyZ2luOiAwIDAgNHB4IDEuMmVtO1xyXG59XHJcblxyXG4ubWVqcy1jb250YWluZXIge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogJHZlcnRpY2FsLXJoeXRobTtcclxufVxyXG5cclxuLndwLWNhcHRpb24tdGV4dCxcclxuLmdhbGxlcnksXHJcbi5hbGlnbm5vbmUsXHJcbi5nYWxsZXJ5LWNhcHRpb24sXHJcbi5zdGlja3ksXHJcbi5ieXBvc3RhdXRob3Ige1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG59XHJcblxyXG4uZ2FsbGVyeSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgLmdhbGxlcnktaXRlbSB7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMTBweCAxMHB4O1xyXG5cclxuICAgICAgICBkdCB7XHJcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMTBweDtcclxuICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5nYWxsZXJ5LWNvbHVtbnMtMiB7XHJcbiAgICAuZ2FsbGVyeS1pdGVtIHtcclxuICAgICAgICBtYXgtd2lkdGg6IDUwJTtcclxuICAgICAgICB3aWR0aDogNTAlO1xyXG4gICAgfVxyXG59XHJcblxyXG4uZ2FsbGVyeS1jb2x1bW5zLTMge1xyXG4gICAgLmdhbGxlcnktaXRlbSB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAzMy4zMyU7XHJcbiAgICAgICAgd2lkdGg6IDMzLjMzJTtcclxuICAgIH1cclxufVxyXG5cclxuLnRhZ2Nsb3VkIHtcclxuICAgIEBleHRlbmQgJWxpc3RyZXNldDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbn1cclxuXHJcbi5jb21tZW50LWxpc3Qge1xyXG4gICAgLmNvbW1lbnQtYm9keSB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIH1cclxufVxyXG5cclxuLmNvbW1lbnQtYXV0aG9yIHtcclxuICAgIGltZyB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gICAgfVxyXG59IiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy8gVGhpcyBmaWxlIGNvbnRhaW5zIGFsbCBzdHlsZXMgcmVsYXRlZCB0byB0aGUgaGVhZGVyIG9mIHRoZSBzaXRlXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi5uYXYtYWN0aXZlIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCc8ZGVza3RvcCcpIHtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgfVxyXG59XHJcblxyXG5baWQ9XCJoZWFkZXJcIl0ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgcGFkZGluZzogMTBweCAwO1xyXG4gICAgei1pbmRleDogMjtcclxuICAgIGJvcmRlci1ib3R0b206IDZweCBzb2xpZCAkeWVsbG93O1xyXG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMTJweDtcclxuICAgICAgICBwYWRkaW5nOiA0NXB4IDA7XHJcbiAgICB9XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBib3R0b206IC0zcHg7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB3aWR0aDogMDtcclxuICAgICAgICBoZWlnaHQ6IDA7XHJcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgICAgICBib3JkZXItd2lkdGg6IDVweCAxODVweCAwIDA7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkd2hpdGUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgICAgIGJvdHRvbTogLTdweDtcclxuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAxMHB4IDI1MHB4IDAgMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5oZWFkZXItaW5uZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPGRlc2t0b3AnKSB7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIH1cclxufVxyXG5cclxuLmxvZ28ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwcHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB6LWluZGV4OiAyMjtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgIHdpZHRoOiAxNTBweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgIHdpZHRoOiAyMjlweDtcclxuICAgIH1cclxuXHJcbiAgICBpbWcge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG59XHJcblxyXG4ubWVudS1kcm9wIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCc8ZGVza3RvcCcpIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAxMDAlO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgIG1hcmdpbjogNnB4IDAgMDtcclxuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxMDVweCk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIHBhZGRpbmc6IDM1cHggMTVweCAxNXB4O1xyXG4gICAgICAgIHotaW5kZXg6IDIwO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcclxuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICAgICAgICB0cmFuc2l0aW9uOiAwLjM1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKSB0cmFuc2Zvcm07XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICBwYWRkaW5nOiAyMnB4IDAgMDtcclxuICAgIH1cclxuXHJcbiAgICAubmF2LWFjdGl2ZSAmIHtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbltpZD1cIm5hdlwiXSxcclxuW2lkPVwiZm9vdGVyLW5hdlwiXSB7XHJcbiAgICBmb250LXdlaWdodDogJG1lZGl1bTtcclxuICAgIGZvbnQtc2l6ZTogMjBweDtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjZweDtcclxuICAgIH1cclxuXHJcbiAgICAuYXJyb3cge1xyXG4gICAgICAgIEBpbmNsdWRlIGFuaW1hdGUgKHRyYW5zZm9ybSBib3JkZXItY29sb3IpO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogJGdyYXktOTAwIHRyYW5zcGFyZW50O1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgbWFyZ2luOiAwIDAgMCA1cHg7XHJcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgICAgICBib3JkZXItd2lkdGg6IDExcHggNnB4IDA7XHJcbiAgICAgICAgbWluLXdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC5kcm9wLWhvbGRlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGdyYXktMzAwO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYW5pbWF0ZShtYXgtaGVpZ2h0KTtcclxuICAgICAgICAgICAgbWF4LWhlaWdodDogMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGFuaW1hdGUob3BhY2l0eSB2aXNpYmlsaXR5KTtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDEwMCU7XHJcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG4gICAgICAgICAgICB3aWR0aDogMjk1cHg7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMTBweCAwIDA7XHJcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgdG9wOiAtNXB4O1xyXG4gICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHllbGxvdztcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDJkZWcpO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDEycHg7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMjNweCAxMnB4IDVweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgICA+IGEge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkeWVsbG93O1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1bCB7XHJcbiAgICAgICAgQGV4dGVuZCAlbGlzdHJlc2V0O1xyXG4gICAgfVxyXG5cclxuICAgIC5hY3RpdmUge1xyXG4gICAgICAgID4gYSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkeWVsbG93O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmFycm93IHtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkeWVsbG93IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICA+IHVsIHtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgIGdhcDogMjVweDtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgICAgIGdhcDogNTBweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgID4gbGkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLmhvdmVyLFxyXG4gICAgICAgICAgICAmLml0ZW0tZm9jdXNlZCB7XHJcbiAgICAgICAgICAgICAgICA+IGEge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkeWVsbG93O1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC5hcnJvdyB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkeWVsbG93IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC5kcm9wLWhvbGRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxkZXNrdG9wJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiA4MDBweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCfiiaVkZXNrdG9wJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgPiBhIHtcclxuICAgICAgICAgICAgICAgICZbYXJpYS1leHBhbmRlZD1cImZhbHNlXCJdIHtcclxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDI1cHgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcblxyXG4gICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JheS00MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGluaXRpYWw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYSB7XHJcbiAgICAgICAgY29sb3I6ICRncmF5LTkwMDtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBwYWRkaW5nOiAxMXB4O1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxMXB4IDVweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBjb2xvcjogJHllbGxvdztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5uYXYtb3BlbmVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgZm9udC1zaXplOiAwO1xyXG4gICAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgei1pbmRleDogMjI7XHJcbiAgICBib3JkZXI6IDA7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgICY6YmVmb3JlLFxyXG4gICAgJjphZnRlcixcclxuICAgIHNwYW4ge1xyXG4gICAgICAgIEBpbmNsdWRlIGFuaW1hdGUodHJhbnNmb3JtIG9wYWNpdHkgYmFja2dyb3VuZCk7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGJsYWNrO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICBsZWZ0OiAxNSU7XHJcbiAgICAgICAgcmlnaHQ6IDE1JTtcclxuICAgICAgICBoZWlnaHQ6IDNweDtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICB9XHJcblxyXG4gICAgJjpiZWZvcmUsXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiAnJztcclxuICAgIH1cclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC05cHgpO1xyXG4gICAgfVxyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICAgICY6YmVmb3JlLFxyXG4gICAgICAgICY6YWZ0ZXIsXHJcbiAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR5ZWxsb3c7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5uYXYtYWN0aXZlICYge1xyXG4gICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGVZKDApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlWSgwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy8gVGhpcyBmaWxlIGNvbnRhaW5zIGFsbCBzdHlsZXMgcmVsYXRlZCB0byB0aGUgY29tbW9uIGxheW91dCBvZiB0aGUgc2l0ZVxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5baWQ9XCJ3cmFwcGVyXCJdIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbltpZD1cIm1haW5cIl0ge1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG59XHJcblxyXG4uY29udGFpbmVyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoLWNlbnRlci1jb250YWluZXI7XHJcbiAgICBwYWRkaW5nOiAkcGFkZGluZy1jb250YWluZXI7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxufVxyXG5cclxuLmFjY29yZGlvbiB7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG5cclxuICAgID5saSB7XHJcbiAgICAgICAgbWFyZ2luLWJsb2NrOiAxMHB4O1xyXG5cclxuICAgICAgICA+YSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuanMtYWNjLWhpZGRlbiB7XHJcbiAgICAgICAgLy8gZm9yIHdlYiBhY2Nlc3NpYmlsaXR5IDogdmlzaWJpbGl0eTogaGlkZGVuOyBvciBkaXNwbGF5OiBub25lICsga2V5ZnJhbWVcclxuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICB9XHJcbn1cclxuXHJcbi5idXJnZXItaG9sZGVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAuYnVyZ2VyLWRyb3Age1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDEwMCU7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB3aWR0aDogMzAwcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XHJcbiAgICAgICAgcGFkZGluZzogMjBweDtcclxuICAgICAgICAvLyBmb3Igd2ViIGFjY2Vzc2liaWxpdHkgOiB2aXNpYmlsaXR5OiBoaWRkZW47IG9yIGRpc3BsYXk6IG5vbmUgKyBrZXlmcmFtZVxyXG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuXHJcbiAgICAgICAgYnV0dG9uIHtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgICYuYnVyZ2VyLWFjdGl2ZSB7XHJcbiAgICAgICAgLmJ1cmdlci1kcm9wIHtcclxuICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG59XHJcblxyXG4ucG9wdXAtaG9sZGVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAucG9wdXAge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDEwMCU7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB3aWR0aDogMzAwcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XHJcbiAgICAgICAgcGFkZGluZzogMjBweDtcclxuICAgICAgICAvLyBmb3Igd2ViIGFjY2Vzc2liaWxpdHkgOiB2aXNpYmlsaXR5OiBoaWRkZW47IG9yIGRpc3BsYXk6IG5vbmUgKyBrZXlmcmFtZVxyXG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuXHJcbiAgICAgICAgYnV0dG9uIHtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgICYucG9wdXAtYWN0aXZlIHtcclxuICAgICAgICAucG9wdXAge1xyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcbn1cclxuXHJcbi5vcGVuLWNsb3NlIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAuc2xpZGUge1xyXG4gICAgICAgIHdpZHRoOiAzMDBweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwMDtcclxuICAgICAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5qcy1zbGlkZS1oaWRkZW4ge1xyXG4gICAgICAgIC8vIGZvciB3ZWIgYWNjZXNzaWJpbGl0eSA6IHZpc2liaWxpdHk6IGhpZGRlbjsgb3IgZGlzcGxheTogbm9uZSArIGtleWZyYW1lXHJcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLmxpbmUtYm94IHtcclxuICAgIHdpZHRoOiA2MDBweDtcclxuXHJcbiAgICAubWFzayB7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIH1cclxuXHJcbiAgICAubGluZSB7XHJcbiAgICAgICAgd2lkdGg6IDk5OTk5cHg7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgICAgICAgPioge1xyXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbi8qIVxyXG4gKiB0YWJieWpzIHYxMi4wLjNcclxuICogTGlnaHR3ZWlnaHQsIGFjY2Vzc2libGUgdmFuaWxsYSBKUyB0b2dnbGUgdGFicy5cclxuICogKGMpIDIwMTkgQ2hyaXMgRmVyZGluYW5kaVxyXG4gKiBNSVQgTGljZW5zZVxyXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9jZmVyZGluYW5kaS90YWJieVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgdGFibGlzdFxyXG4gKi9cclxuW3JvbGU9XCJ0YWJsaXN0XCJdIHtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgbGlnaHRncmF5O1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbltyb2xlPVwidGFibGlzdFwiXSAqIHtcclxuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG59XHJcblxyXG4vKipcclxuICogVGhlIHRhYmxpc3QgaXRlbVxyXG4gKi9cclxuQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcclxuICBbcm9sZT1cInRhYmxpc3RcIl0gbGkge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSB0YWJzXHJcbiAqL1xyXG5bcm9sZT1cInRhYlwiXSB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyLXRvcC1jb2xvcjogbGlnaHRncmF5O1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHBhZGRpbmc6IDAuNWVtIDFlbTtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgLyoqXHJcbiAgICAgKiBBY3RpdmUgdGFiIHN0eWxpbmdcclxuICAgICAqL1xyXG4gIC8qKlxyXG4gICAgICogVGFicyBvbiBob3ZlclxyXG4gICAgICovXHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XHJcbiAgW3JvbGU9XCJ0YWJcIl0ge1xyXG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjVlbTtcclxuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwLjVlbTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIG1hcmdpbi1ib3R0b206IC0xcHg7XHJcbiAgfVxyXG59XHJcblxyXG5bcm9sZT1cInRhYlwiXVthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5O1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xyXG4gIFtyb2xlPVwidGFiXCJdW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xyXG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ZmZmZmZjtcclxuICB9XHJcbn1cclxuXHJcbltyb2xlPVwidGFiXCJdOmhvdmVyOm5vdChbYXJpYS1zZWxlY3RlZD1cInRydWVcIl0pIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xyXG4gIFtyb2xlPVwidGFiXCJdOmhvdmVyOm5vdChbYXJpYS1zZWxlY3RlZD1cInRydWVcIl0pIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBbaGlkZGVuXSBmYWxsYmFjayBmb3IgSUUxMCBhbmQgbG93ZXJcclxuICovXHJcbltoaWRkZW5dIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59IiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy8gVGhpcyBmaWxlIGNvbnRhaW5zIGFsbCBzdHlsZXMgcmVsYXRlZCB0byB0aGUgZm9vdGVyIG9mIHRoZSBzaXRlXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbltpZD1cImZvb3RlclwiXSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkYmFzZS1iYWNrZ3JvdW5kLWZvb3RlcjtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxkZXNrdG9wJykge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAuZm9vdGVyLWNvbnRlbnQge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkYmxhY2stZm9udDtcclxuICAgICAgICBwYWRkaW5nOiA1MHB4IDA7XHJcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDMwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC50ZXh0LWJsb2NrIHtcclxuICAgICAgICBtYXgtd2lkdGg6IDg3NXB4O1xyXG4gICAgICAgIG1hcmdpbjogMCBhdXRvIDMwcHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNztcclxuICAgIH1cclxuXHJcbiAgICAuaW1nLWJsb2NrIHtcclxuICAgICAgICBtYXJnaW46IDAgMCAzNXB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5pbmZvLWxpc3Qge1xyXG4gICAgICAgIEBleHRlbmQgJWxpc3RyZXNldDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxNXB4O1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDEwcHggMCAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkeWVsbG93O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkeWVsbG93O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5sb2dvIHtcclxuICAgICAgICBtYXJnaW46IDAgYXV0byAyMHB4O1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgMjBweCAwIDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgICAgICB3aWR0aDogMTc4cHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5mb290ZXItaG9sZGVyIHtcclxuICAgICAgICBwYWRkaW5nOiAxNnB4IDA7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgcGFkZGluZzogMTZweCAxNXB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYm90dG9tLWJsb2NrIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JheS0zMDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnNvY2lhbC1uZXR3b3JrcyB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxkZXNrdG9wJykge1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgYXV0bztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgW2lkPVwiZm9vdGVyLW5hdlwiXSB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgMTIwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuYXJyb3cge1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRibHVlIHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmRyb3AtaG9sZGVyIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgICAgIGJvdHRvbTogMTAwJTtcclxuICAgICAgICAgICAgICAgIHRvcDogYXV0bztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPiB1bCB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMjBweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgPiBsaSB7XHJcbiAgICAgICAgICAgICAgICAmLmhvdmVyLFxyXG4gICAgICAgICAgICAgICAgJi5pdGVtLWZvY3VzZWQge1xyXG4gICAgICAgICAgICAgICAgICAgID4gYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkeWVsbG93O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICA+IGEge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkeWVsbG93O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnNvY2lhbC1uZXR3b3JrcyB7XHJcbiAgICBAZXh0ZW5kICVsaXN0cmVzZXQ7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZ2FwOiAxMHB4O1xyXG5cclxuICAgIHN2ZyB7XHJcbiAgICAgICAgcGF0aCB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGFuaW1hdGUoZmlsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGEge1xyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBzdmcge1xyXG4gICAgICAgICAgICAgICAgcGF0aCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJHllbGxvdztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vIFRoaXMgZmlsZSBjb250YWlucyBhbGwgc3R5bGVzIHJlbGF0ZWQgdG8gdGhlIGJ1dHRvbiBjb21wb25lbnQuXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi5idG4ge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZzogJGJ0bi1wYWRkaW5nO1xyXG4gICAgZm9udC1zaXplOiAkYnRuLWZvbnQtc2l6ZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGxpbmUtaGVpZ2h0OiAkYnRuLWxpbmUtaGVpZ2h0O1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgIHRyYW5zaXRpb246IGFsbCAkYW5pbWF0aW9uLXNwZWVkO1xyXG4gICAgbWluLXdpZHRoOiAxODBweDtcclxuICAgIGZvbnQtd2VpZ2h0OiAkbWVkaXVtO1xyXG5cclxuICAgIGJvcmRlcjoge1xyXG4gICAgICAgIHN0eWxlOiBzb2xpZDtcclxuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgd2lkdGg6ICRidG4tYm9yZGVyLXdpZHRoO1xyXG4gICAgICAgIHJhZGl1czogJGJ0bi1ib3JkZXItcmFkaXVzO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgbWluLXdpZHRoOiAyMzJweDtcclxuICAgICAgICBwYWRkaW5nOiAyNnB4IDIwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgJi1kZWZhdWx0IHtcclxuICAgICAgICBjb2xvcjogJGJ0bi1jb2xvci1kZWZhdWx0O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRidG4tYmFja2dyb3VuZC1kZWZhdWx0O1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogJGJ0bi1ib3JkZXItY29sb3ItZGVmYXVsdDtcclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkYnRuLWhvdmVyLWNvbG9yLWRlZmF1bHQ7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRidG4taG92ZXItYmFja2dyb3VuZC1kZWZhdWx0O1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRidG4taG92ZXItYm9yZGVyLWNvbG9yLWRlZmF1bHQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYtcHJpbWFyeSB7XHJcbiAgICAgICAgY29sb3I6ICRidG4tY29sb3ItcHJpbWFyeTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkYnRuLWJhY2tncm91bmQtcHJpbWFyeTtcclxuICAgICAgICBib3JkZXItY29sb3I6ICRidG4tYm9yZGVyLWNvbG9yLXByaW1hcnk7XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBjb2xvcjogJGJ0bi1ob3Zlci1jb2xvci1wcmltYXJ5O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYnRuLWhvdmVyLWJhY2tncm91bmQtcHJpbWFyeTtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYnRuLWhvdmVyLWJvcmRlci1jb2xvci1wcmltYXJ5O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLXNlY29uZGFyeSB7XHJcbiAgICAgICAgY29sb3I6ICRidG4tY29sb3Itc2Vjb25kYXJ5O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRidG4tYmFja2dyb3VuZC1zZWNvbmRhcnk7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYnRuLWJvcmRlci1jb2xvci1zZWNvbmRhcnk7XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBjb2xvcjogJGJ0bi1ob3Zlci1jb2xvci1zZWNvbmRhcnk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRidG4taG92ZXItYmFja2dyb3VuZC1zZWNvbmRhcnk7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGJ0bi1ob3Zlci1ib3JkZXItY29sb3Itc2Vjb25kYXJ5O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLXNtIHtcclxuICAgICAgICBwYWRkaW5nOiAkYnRuLXBhZGRpbmctc207XHJcbiAgICAgICAgZm9udC1zaXplOiAkYnRuLWZvbnQtc2l6ZS1zbTtcclxuICAgICAgICBsaW5lLWhlaWdodDogJGJ0bi1saW5lLWhlaWdodC1zbTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAkYnRuLWJvcmRlci1yYWRpdXMtc207XHJcbiAgICB9XHJcblxyXG4gICAgJi1sZyB7XHJcbiAgICAgICAgcGFkZGluZzogJGJ0bi1wYWRkaW5nLWxnO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogJGJ0bi1mb250LXNpemUtbGc7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRidG4tbGluZS1oZWlnaHQtbGc7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJ0bi1ib3JkZXItcmFkaXVzLWxnO1xyXG4gICAgfVxyXG59XHJcblxyXG4uYnRuLWdyb3VwIHtcclxuICAgIG1hcmdpbjogMCAtNXB4IC0xMHB4O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuXHJcbiAgICAuYnRuIHtcclxuICAgICAgICBtYXJnaW46IDAgNXB4IDEwcHg7XHJcbiAgICB9XHJcbn0iLCIuc2VjdGlvbi1oZXJvIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG1pbi1oZWlnaHQ6IDM1MHB4O1xyXG4gICAgcGFkZGluZzogMzVweCAwIDA7XHJcbiAgICBib3JkZXItYm90dG9tOiAzMHB4IHNvbGlkICR5ZWxsb3c7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICBtaW4taGVpZ2h0OiA1MzVweDtcclxuICAgICAgICBwYWRkaW5nOiA3MHB4IDAgMDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDgzNXB4O1xyXG4gICAgICAgIGJvcmRlci13aWR0aDogNjBweDtcclxuICAgIH1cclxuXHJcbiAgICAuaW1nLWJsb2NrIHtcclxuICAgICAgICB3aWR0aDogMTUwcHg7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgd2lkdGg6IDIwMHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgd2lkdGg6IDM3NXB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC52aWRlby1ob2xkZXIge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBpbnNldDogMDtcclxuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIHotaW5kZXg6IC0xO1xyXG4gICAgfVxyXG5cclxuICAgIC5iZy1pbWFnZSB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGluc2V0OiAwO1xyXG4gICAgICAgIHotaW5kZXg6IC0yO1xyXG5cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGluc2V0OiAwO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWZyYW1lIHtcclxuICAgICAgICB3aWR0aDogMTAwdnc7XHJcbiAgICAgICAgaGVpZ2h0OiA1Ni4yNXZ3OyAvKiBHaXZlbiBhIDE2OjkgYXNwZWN0IHJhdGlvLCA5LzE2KjEwMCA9IDU2LjI1ICovXHJcbiAgICAgICAgbWluLWhlaWdodDogMTAwJTtcclxuICAgICAgICBtaW4td2lkdGg6IDE3Ny43N3ZoOyAvKiBHaXZlbiBhIDE2OjkgYXNwZWN0IHJhdGlvLCAxNi85KjEwMCA9IDE3Ny43NyAqL1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgICB9XHJcbn0iLCIuc2VjdGlvbi1pbnRybyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgbWluLWhlaWdodDogMzAwcHg7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgbWluLWhlaWdodDogNTQwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmJnLWltYWdlIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgaW5zZXQ6IDA7XHJcbiAgICAgICAgei1pbmRleDogLTE7XHJcblxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgaW5zZXQ6IDA7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuaG9sZGVyLWJsb2NrIHtcclxuICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgICAgICBwYWRkaW5nOiA1MHB4IDA7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgbWluLWhlaWdodDogNDAwcHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDcwcHggMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDU0MHB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxNTBweCAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuaW1nLWJsb2NrIHtcclxuICAgICAgICBtYXJnaW46IDAgMCAxNXB4O1xyXG4gICAgICAgIHdpZHRoOiAyMDBweDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgd2lkdGg6IDI3MHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMzVweDtcclxuICAgICAgICAgICAgd2lkdGg6IDM3M3B4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGgyLFxyXG4gICAgLmgyIHtcclxuICAgICAgICBmb250LXNpemU6IDQwcHg7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDYwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDgwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiLnNlY3Rpb24tZmFxIHtcclxuICAgIHBhZGRpbmc6IDM1cHggMDtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgIHBhZGRpbmc6IDEzN3B4IDAgNzdweDtcclxuICAgIH1cclxufVxyXG5cclxuLmFjY29yZGlvbiB7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGNvdW50ZXItcmVzZXQ6IGl0ZW07XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHllbGxvdztcclxuXHJcbiAgICAub3BlbmVyIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JheS0zMDA7XHJcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR5ZWxsb3c7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRleHRyYTtcclxuICAgICAgICBjb2xvcjogJGdyYXktOTAwO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgcGFkZGluZzogMTBweCAzMHB4IDEwcHggNDBweDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggNTBweCAxNXB4IDYwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDMwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxOHB4IDQ1cHggMThweCA5MHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkeWVsbG93O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjphZnRlcixcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR5ZWxsb3c7XHJcbiAgICAgICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICB3aWR0aDogMTdweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAzcHg7XHJcbiAgICAgICAgICAgIHJpZ2h0OiA4cHg7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICByaWdodDogMTVweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiAxNnB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGFuaW1hdGUodHJhbnNmb3JtKTtcclxuICAgICAgICAgICAgd2lkdGg6IDNweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxN3B4O1xyXG4gICAgICAgICAgICByaWdodDogMTVweDtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiAyMnB4O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgICAgICAgICAgcmlnaHQ6IDIzcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNsaWRlIHtcclxuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICAgIHBhZGRpbmc6IDEycHggMCAxMnB4IDE1cHg7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMCAyMHB4IDI1cHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAzM3B4IDAgMThweCA1MnB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAxMnB4IDE1cHg7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDE1cHggMjBweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAyM3B4IDMwcHg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNpemUoNXB4KTtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgIHRvcDogMTBweDtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmF5LTkwMDtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuXHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogMTJweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICA+IGxpIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG5cclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGFuaW1hdGUoY29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZW50OiBjb3VudGVycyhpdGVtLCBcIi5cIikgXCIuIFwiO1xyXG4gICAgICAgICAgICBjb3VudGVyLWluY3JlbWVudDogaXRlbTtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRleHRyYTtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBsZWZ0OiA4cHg7XHJcbiAgICAgICAgICAgIHRvcDogMTBweDtcclxuICAgICAgICAgICAgei1pbmRleDogMTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICAgICAgICAgICAgbGVmdDogMTJweDtcclxuICAgICAgICAgICAgICAgIHRvcDogMTVweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDI1cHg7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDE4cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHllbGxvdztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICAub3BlbmVyIHtcclxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKSByb3RhdGUoOTBkZWcpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiLnNlY3Rpb24tY29ubmVjdGlvbiB7XHJcbiAgICBwYWRkaW5nOiAzNXB4IDA7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICBwYWRkaW5nOiA3NXB4IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLmhvbGRlci1ibG9jayB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudGV4dC1ibG9jayxcclxuICAgIC5jb25uZWN0aW9uLWJsb2NrIHtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICB3aWR0aDogNTAlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY29ubmVjdGlvbi1ibG9jayB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJHllbGxvdztcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgcGFkZGluZzogMjVweDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgcGFkZGluZzogNjVweCAyNXB4IDc1cHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoMyxcclxuICAgICAgICAuaDMge1xyXG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgMCAzM3B4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudGV4dC13cmFwIHtcclxuICAgICAgICBwYWRkaW5nOiAwIDAgMTVweDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA3MTVweDtcclxuICAgICAgICAgICAgcGFkZGluZzogMjBweCAyMHB4IDAgMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnRleHQtZnJhbWUge1xyXG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkd2hpdGU7XHJcbiAgICAgICAgbWF4LXdpZHRoOiA1NzBweDtcclxuICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICBwYWRkaW5nOiAzMHB4IDAgMTVweDtcclxuICAgIH1cclxuXHJcbiAgICAuYnRuIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiAgICAgICAgY29sb3I6ICR5ZWxsb3c7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgbWluLXdpZHRoOiAzMjdweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYmx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIuc2VjdGlvbi1jb250YWN0IHtcclxuICAgIGJhY2tncm91bmQ6ICRncmF5LTMwMDtcclxuICAgIHBhZGRpbmc6IDUwcHggMDtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgIHBhZGRpbmc6IDE0NXB4IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLmhlYWRpbmctYmxvY2sge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBtYXJnaW46IDAgMCAzMHB4O1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgMCA4MHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZm9ybS1kZXNjcmlwdGlvbiB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDAgMTVweDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIDAgNDVweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm0taG9sZGVyIHtcclxuICAgICAgICBtYXgtd2lkdGg6IDE0MDBweDtcclxuICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIH1cclxuXHJcbiAgICBoMixcclxuICAgIC5oMiB7XHJcbiAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICB9XHJcbn0iLCIuc2VjdGlvbi12aXN1YWwge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWluLWhlaWdodDogNDUwcHg7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICBtaW4taGVpZ2h0OiA1MDBweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDgwMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5iZy1pbWFnZSB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGluc2V0OiAwO1xyXG4gICAgICAgIHotaW5kZXg6IC0xO1xyXG5cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5ob2xkZXItYmxvY2sge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDQ1MHB4O1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA1MDBweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDgwMHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudGV4dC1ibG9jayB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRibGFjay1mb250O1xyXG4gICAgICAgIHBhZGRpbmc6IDQwcHggMDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgcGFkZGluZzogNjhweCAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3Ryb25nIHtcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgY29sb3I6ICR5ZWxsb3c7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAzMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiLnNlY3Rpb24taW50cm8tdGV4dCB7XHJcbiAgICBwYWRkaW5nOiAzNXB4IDA7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICBwYWRkaW5nOiA1MHB4IDMwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICBwYWRkaW5nOiA4MHB4IDAgNjVweDtcclxuICAgIH1cclxuXHJcbiAgICBoMixcclxuICAgIC5oMiB7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICBjb2xvcjogJGJsdWU7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjI1O1xyXG4gICAgfVxyXG59IiwiLnNlY3Rpb24tcnVubmluZy1saW5lIHtcclxuICAgIGJhY2tncm91bmQ6ICR5ZWxsb3c7XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgcGFkZGluZzogMzBweCAwO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgcGFkZGluZzogNTBweCAwO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgcGFkZGluZzogOTBweCAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5saW5lLWxpc3Qge1xyXG4gICAgICAgIEBleHRlbmQgJWxpc3RyZXNldDtcclxuICAgICAgICB3aWR0aDogOTk5OTlweDtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRibGFjay1mb250O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMzBweDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiA1MHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3Ryb25nIHtcclxuICAgICAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPioge1xyXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc2l6ZSgxMnB4KTtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMCA4cHg7XHJcblxyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBzaXplKDE3cHgpO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAxOHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBwIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubWFzayB7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIH1cclxufSIsIi5zZWN0aW9uLWltYWdlLXRleHQge1xyXG4gICAgLmhvbGRlci1ibG9jayB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudGV4dC1ibG9jayxcclxuICAgIC5pbWFnZS1ibG9jayB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnRleHQtYmxvY2sge1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiA1MyU7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwIGNhbGMoKDEwMCUgLSAxNjY1cHgpIC8gMik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pbWFnZS1ibG9jayB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgd2lkdGg6IDQ3JTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudGV4dC13cmFwIHtcclxuICAgICAgICBtYXgtd2lkdGg6IDgxNXB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDI1cHggMTVweDtcclxuXHJcbiAgICAgICAgcCB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCA0MHB4O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgNjBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIi5zZWN0aW9uLXByb2Nlc3Mge1xyXG4gICAgYmFja2dyb3VuZDogJHllbGxvdztcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICBwYWRkaW5nOiA1MHB4IDAgMDtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgIHBhZGRpbmc6IDkwcHggMCAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5oZWFkaW5nLWJsb2NrIHtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAucHJvY2Vzcy1saXN0IHtcclxuICAgICAgICBAZXh0ZW5kICVsaXN0cmVzZXQ7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRib2xkO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBwYWRkaW5nOiAyNXB4IDAgMDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4gICAgICAgICAgICBnYXA6IDMwcHg7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgZ2FwOiA1MHB4O1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMzIwcHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDExNXB4IDAgMDtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygoMTAwJSAvIDIpIC0gMjNweCk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA4NXB4IDAgMDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC8gNCkgLSAyM3B4KTtcclxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC8gNCkgLSAzOHB4KTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDE1MHB4IDAgMDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xyXG4gICAgICAgICAgICAgICAgLmxpc3QtaXRlbSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTExZGVnKSBza2V3KC0xMWRlZywgMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubGlzdC1pdGVtIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkeWVsbG93LWRhcms7XHJcbiAgICAgICAgcGFkZGluZzogMjVweCAxNXB4IDMwcHg7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDMzMHB4O1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAzNXB4IDM1cHggNTJweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgYm90dG9tOiA5MCU7XHJcbiAgICAgICAgICAgIGxlZnQ6IC0xJTtcclxuICAgICAgICAgICAgcmlnaHQ6IC0xJTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogJHllbGxvdy1kYXJrO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDg1cHg7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDExZGVnKSBza2V3KDExZGVnLCAwKTtcclxuICAgICAgICAgICAgei1pbmRleDogLTE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaWNvbi1ibG9jayB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDI1cHg7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAxMTdweDtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDM1cHg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCA0NXB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiLnNlY3Rpb24taW5mbyB7XHJcbiAgICBwYWRkaW5nOiAzMHB4IDA7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICBwYWRkaW5nOiA3MHB4IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLmhvbGRlci1ibG9jayB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudGV4dC1ibG9jayB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgd2lkdGg6IDU5JTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwIDI0cHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pbWctYmxvY2sge1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiA0MSU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnRleHQtd3JhcCB7XHJcbiAgICAgICAgcGFkZGluZzogMjVweCAxNXB4O1xyXG4gICAgICAgIG1heC13aWR0aDogNjg0cHg7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcclxuXHJcbiAgICAgICAgbWFyayB7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYmxhY2stZm9udDtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDMwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgNDBweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDcwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIuc2VjdGlvbi1kZXRhaWwtaW50cm8ge1xyXG4gICAgYmFja2dyb3VuZDogJHllbGxvdztcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDM1cHggMDtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgIHBhZGRpbmc6IDcwcHggMCA1MHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC50ZXh0LWJsb2NrIHtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIDI1cHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzdHJvbmcge1xyXG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogJGJsYWNrLWZvbnQ7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDMwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaDEsXHJcbiAgICAuaDEsXHJcbiAgICBoMixcclxuICAgIC5oMixcclxuICAgIGgzLFxyXG4gICAgLmgzLFxyXG4gICAgaDQsXHJcbiAgICAuaDQsXHJcbiAgICBoNSxcclxuICAgIC5oNSxcclxuICAgIGg2LFxyXG4gICAgLmg2LFxyXG4gICAgLmgge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDUwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBiciB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIi5zZWN0aW9uLXN0YWdlcyB7XHJcbiAgICBwYWRkaW5nOiAzNXB4IDA7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICBwYWRkaW5nOiA4NXB4IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbnRhaW5lciB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxNzgwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnRleHQtYmxvY2sge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBtYXgtd2lkdGg6IDExNjVweDtcclxuICAgICAgICBtYXJnaW46IDAgYXV0byAyOHB4O1xyXG5cclxuICAgICAgICBzdHJvbmcge1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogJGJsYWNrLWZvbnQ7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICAgICAgY29sb3I6ICRibHVlO1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaDIsXHJcbiAgICAgICAgLmgyIHtcclxuICAgICAgICAgICAgY29sb3I6ICRibHVlO1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDUwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmhvbGRlci1ibG9jayB7XHJcbiAgICAgICAgcGFkZGluZzogODBweCAwIDA7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgZ2FwOiAxMHB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiA3NXB4IDAgMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5jb2x1bW4ge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JheS0zMDA7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgcGFkZGluZzogMTVweCAyMHB4O1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0byAyMHB4O1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDI1JTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAyMSU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgYm90dG9tOiA4OCU7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAtMSU7XHJcbiAgICAgICAgICAgICAgICByaWdodDogLTElO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGdyYXktMzAwO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA4NXB4O1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTFkZWcpIHNrZXcoMTFkZWcsIDApO1xyXG4gICAgICAgICAgICAgICAgei1pbmRleDogLTE7XHJcblxyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBib3R0b206IDk1JTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTFkZWcpIHNrZXcoLTExZGVnLCAwKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmltZy1ibG9jayB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDEwMHB4O1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxkZXNrdG9wJykge1xyXG4gICAgICAgICAgICAgICAgb3JkZXI6IDE7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA0NyU7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAyNXB4O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDU2JTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc3RhZ2VzLWxpc3Qge1xyXG4gICAgICAgIEBleHRlbmQgJWxpc3RyZXNldDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcclxuICAgICAgICBtYXgtd2lkdGg6IDI4MHB4O1xyXG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxNXB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaDEsXHJcbiAgICAgICAgLmgxLFxyXG4gICAgICAgIGgyLFxyXG4gICAgICAgIC5oMixcclxuICAgICAgICBoMyxcclxuICAgICAgICAuaDMsXHJcbiAgICAgICAgaDQsXHJcbiAgICAgICAgLmg0LFxyXG4gICAgICAgIGg1LFxyXG4gICAgICAgIC5oNSxcclxuICAgICAgICBoNixcclxuICAgICAgICAuaDYsXHJcbiAgICAgICAgc3Ryb25nIHtcclxuICAgICAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaDQsXHJcbiAgICAgICAgLmg0IHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogNDBweCAwIDIwcHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIuc2VjdGlvbi1pbWFnZS1yaWdodCB7XHJcbiAgICAuaG9sZGVyLWJsb2NrIHtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pbWFnZS1ibG9jayB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgd2lkdGg6IDQ2JTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudGV4dC1ibG9jayB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgd2lkdGg6IDU0JTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDIzcHggMCAwIDM4cHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC50ZXh0LXdyYXAge1xyXG4gICAgICAgIHBhZGRpbmc6IDI1cHggMTVweDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogNTkycHg7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIi5zZWN0aW9uLWluZm8tY29udGVudCB7XHJcbiAgICBwYWRkaW5nOiAzMHB4IDA7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICBwYWRkaW5nOiAzMHB4IDAgODBweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMCAxNDBweDtcclxuICAgIH1cclxuXHJcbiAgICAuaG9sZGVyLWJsb2NrIHtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmltYWdlLWJsb2NrIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICBnYXA6IDE1cHg7XHJcbiAgICAgICAgbWFyZ2luOiAwIDAgMjBweDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgICAgIGdhcDogMjdweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmltZy1mcmFtZSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgd2lkdGg6IGNhbGMoKDEwMCUgLyAyKSAtIDhweCk7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC8gMikgLSAyN3B4KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcclxuXHJcbiAgICAgICAgICAgIC5kZWNvciB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAxNXB4O1xyXG5cclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMjVweDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDYzcHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnRleHQtYmxvY2sge1xyXG4gICAgICAgIHBhZGRpbmc6IDIwcHggMDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgICAgICAgcGFkZGluZzogMjBweCAxMHB4IDE1cHggMjBweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMzVweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudGV4dC13cmFwIHtcclxuICAgICAgICBtYXgtd2lkdGg6IDcyMXB4O1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgMCAwIGF1dG87XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5kZWNvciB7XHJcbiAgICAgICAgbWFyZ2luOiAxNXB4IDAgMDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAyNXB4IDAgMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogNjNweCAwIDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiLnNlY3Rpb24tYmVuZWZpdHMge1xyXG4gICAgYmFja2dyb3VuZDogJGJsdWU7XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgcGFkZGluZzogMzVweCAwO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgcGFkZGluZzogNjVweCAwIDQ4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbnRhaW5lciB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxNzM1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmhlYWRpbmctYmxvY2sge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBtYXgtd2lkdGg6IDQwMHB4O1xyXG4gICAgICAgIG1hcmdpbjogMCBhdXRvIDI1cHg7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogODUzcHg7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvIDQ4cHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5kZWNvciB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICByaWdodDogMDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxkZXNrdG9wJykge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDUwJVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYmVuZWZpdHMtbGlzdCB7XHJcbiAgICAgICAgQGV4dGVuZCAlbGlzdHJlc2V0O1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgZ2FwOiAxNXB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgZ2FwOiAyNHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPiBsaSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgcGFkZGluZzogMCAwIDE1cHggMTVweDtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC8gMikgLSA4cHgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDE1cHggMjBweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC8gNCkgLSAxOHB4KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc2l6ZSg1cHgpO1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgIHRvcDogNnB4O1xyXG5cclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgc2l6ZSg2cHgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogMTVweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRib2xkO1xyXG4gICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgICBAZXh0ZW5kICVsaXN0cmVzZXQ7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwIDVweDtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDAgMCAxMHB4O1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDAgMCAxMHB4O1xyXG5cclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgMTdweDtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCA1cHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNpemUoNXB4KTtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogNnB4O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDEzcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiLnNlY3Rpb24tdGhyZWUtaW1hZ2VzIHtcclxuICAgIC5pbWFnZXMtbGlzdCB7XHJcbiAgICAgICAgQGV4dGVuZCAlbGlzdHJlc2V0O1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG5cclxuICAgICAgICAuaW1nLWJsb2NrIHtcclxuICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiA2NDAgLyA2MTg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAzMy4zMyU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIuc2VjdGlvbi1wb3J0Zm9saW8ge1xyXG4gICAgcGFkZGluZzogMzVweCAwO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgcGFkZGluZzogNzhweCAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb250YWluZXIge1xyXG4gICAgICAgIG1heC13aWR0aDogMTY2MHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5kZWNvciB7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxNzBweDtcclxuICAgICAgICBwYWRkaW5nOiA0MHB4IDAgMDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAyNzBweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDExM3B4IDAgMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnRleHQtYmxvY2sge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBtYXJnaW46IDAgYXV0byAyNXB4O1xyXG4gICAgICAgIG1heC13aWR0aDogMTM4MHB4O1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgMCA1MHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG8gMTEycHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoMixcclxuICAgICAgICAuaDIge1xyXG4gICAgICAgICAgICBjb2xvcjogJGJsdWU7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj13aWRlc2NyZWVuJykge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgNjNweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcCB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDMwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnJlc2lkZW50aWFsLWxpc3Qge1xyXG4gICAgICAgIEBleHRlbmQgJWxpc3RyZXNldDtcclxuICAgICAgICBtYXJnaW46IDAgMCAyNXB4O1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgZ2FwOiAxNXB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgZ2FwOiAyMHB4O1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgMCA1MHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgZ2FwOiA1NnB4O1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxMTJweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMjBweDtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC8gMykgLSAxMHB4KTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC8gMykgLSAxNHB4KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC8gMykgLSAzOHB4KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pbWFnZXMtbGlzdCB7XHJcbiAgICAgICAgQGV4dGVuZCAlbGlzdHJlc2V0O1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgbWFyZ2luOiAtMTBweDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAtMjdweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zbWFsbCxcclxuICAgICAgICAubWVkaXVtIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDQ1JTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49d2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA0MyU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zbWFsbCB7XHJcbiAgICAgICAgICAgIC5pbWctYmxvY2sge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogNjY1IC8gMzYzO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuYmlnIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA1NSU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogNTclO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuaW1nLWJsb2NrIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBhc3BlY3QtcmF0aW86IDkwMCAvIDgzMTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogOTAwIC8gODI2O1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiA5MDAgLyA3ODA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tZWRpdW0ge1xyXG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XHJcblxyXG4gICAgICAgICAgICAuaW1nLWJsb2NrIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBhc3BlY3QtcmF0aW86IDI5OCAvIDM0NTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMjk4IC8gMzM5O1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiA2NjUgLyA3ODA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMTBweDtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyN3B4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaDUsXHJcbiAgICAuaDUge1xyXG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgICBtYXJnaW46IDAgMCAyN3B4O1xyXG4gICAgfVxyXG59Il19 */
